var ar = Array();
for(i=1; i lte Len(str); i=i+1){
ar[i] = Mid(str,i,1);
}
return ar;
// cap and lowers string handed to it (for titles and such)
var result ='';
lst_exception = 'an,the,at,by,for,of,in,up,on,to,and,as,but,if,or,nor,a';
for(i=1; i lte ListLen(trim(str),' '); i=i+1) {
str_first = '';
str_last = '';
str_word = ListGetAt(Trim(str),i,' ');
count = len(trim(str_word));
ar = ArrayNew(1);
// create a localized instance of array class
ar = server.obj.ar.StringToArray(trim(str_word));
for(j=1; j LTE count; j=j+1) {
if(ar[1] IS ar[j]) {
if(i NEQ 1 AND listfind(lst_exception,str_word,',') GT 0) {
str_first = ar[1];
} else {
str_first = UCase(ar[1]);
}
} else {
str_last = str_last & lcase(ar[j]);
}
str_temp = str_first & str_last;
}
result = result & ' ' & str_temp;
}
return trim(result);