WidgetTextFilter=new Class({options:{currency_before:'$',currency_after:''},initialize:function(options){this.setOptions(options);},filter_date:function(str,format){var new_str="";if($type(str)=="string"&&$type(format)=="string"){var str_characters=str.split("");var format_characters=format.split("");var end_parsing=false;var index=0;var format_index=0;for(index=0;index<format_characters.length&&index<str_characters.length;index++,format_index++){switch(format_characters[format_index]){case'y':{if(str_characters[index].test(/\d/)){new_str+=str_characters[index];}
else{end_parsing=true;}
break;}
case'm':{if(str_characters[index].test(/\d/)){new_str+=str_characters[index];}
else{end_parsing=true;}
break;}
case'd':{if(str_characters[index].test(/\d/)){new_str+=str_characters[index];}
else{end_parsing=true;}
break;}
default:{if((str_characters[index].test(/\d/)&&format_characters[format_index+1]=='y')||(str_characters[index].test(/\d/)&&format_characters[format_index+1]=='m')||(str_characters[index].test(/\d/)&&format_characters[format_index+1]=='d')){new_str+=format_characters[format_index]+str_characters[index];format_index++;}
else if(str_characters[index].test(format_characters[format_index])){new_str+=str_characters[index];}
else{end_parsing=true;}
break;}}
if(end_parsing){break;}}}
return new_str;},filter_check_email:function(email){var is_valid='0';var at_test=RegExp(/\@/);var decimal_test=RegExp(/\./);var space_test=RegExp(/\s/);if(at_test.test(email)&&decimal_test.test(email)){is_valid='1';}
if(space_test.test(email)){is_valid='0';}
return is_valid;},filter_format_accounting:function(n,m,c,d,t){if(m=='false'){var new_str=n;var paren_test=RegExp(/\(/);var neg_test=RegExp(/\-/);var decimal_test=RegExp(/\./);var sign="";if(neg_test.test(n)||paren_test.test(n)){sign="-";}
if(decimal_test.test(n)){new_str=new_str+"";new_str=new_str.replace(/[^\d\.]/g,"");new_str=parseFloat(new_str).toFixed(2);}else{new_str=new_str+"00";new_str=new_str.replace(/\D/g,"");new_str=(new_str/100).toFixed(2);}
new_str=parseFloat(sign+new_str);return new_str;}else{c=isNaN(c=Math.abs(c))?2:c,d=d==undefined?".":d,t=t==undefined?",":t,s=n<0?"(":"",es=n<0?")":"",i=parseInt(n=Math.abs(+n||0).toFixed(c))+"",j=(j=i.length)>3?j%3:0;return s+this.options.currency_before+(j?i.substr(0,j)+t:"")+i.substr(j).replace(/(\d{3})(?=\d)/g,"$1"+t)+(c?d+Math.abs(n-i).toFixed(c).slice(2):"")+this.options.currency_after+es;}},filter_unformat_accounting:function(str){var new_str=str;var paren_test=RegExp(/\(/);var neg_test=RegExp(/\-/);var decimal_test=RegExp(/\./);var sign="";if(neg_test.test(str)||paren_test.test(str)){sign="-";}
if(decimal_test.test(str)){new_str=new_str+"";new_str=new_str.replace(/[^\d\.]/g,"");new_str=parseFloat(new_str).toFixed(2);}else{new_str=new_str.replace(/\D/g,"");new_str=new_str+"00";new_str=(new_str/100).toFixed(2);}
new_str=(sign+new_str);return parseFloat(new_str);},filter_unformat_number:function(str){var new_str=str.replace(/\D/g,"");return parseFloat(new_str);},filter_format_phone_number:function(str,element_id,nation){var new_str="";str=str.replace(/\D/g,"");var str_characters=str.split("");var format_characters="ddd-ddd-dddd".split("");var number_length=10;if(nation!=""){if(nation=="international"){format_characters="ddd-ddd-ddddddd".split("");number_length=13;}}
var end_parsing=false;var index=0;var format_index=0;for(index=0;index<format_characters.length&&index<str_characters.length&&index<number_length;index++,format_index++){switch(format_characters[format_index]){case'd':{if(str_characters[index].test(/\d/)){new_str+=str_characters[index];}
else{end_parsing=true;}
break;}
default:{if(str_characters[index].test(/\d/)&&format_characters[format_index+1]=='d'){new_str+=format_characters[format_index]+str_characters[index];format_index++}
else if(str_characters[index].test(format_characters[format_index])){new_str+=str_characters[index];}
else{end_parsing=true;}
break;}}
if(end_parsing){break;}}
new_str=new_str+"";if(element_id!=undefined&&new_str!=""){var test_str=new_str.replace(/\D/g,"");if(test_str.length==number_length||test_str.length==0){$(element_id).setStyle('background','white');}else{$(element_id).setStyle('background','#ffa1a1');}}
return new_str;},filter_capitalize_name:function(str){var new_str=str.capitalize();new_str=new_str.replace(/\sOf\s/g," of ");new_str=new_str.replace(/\sThe\s/g," the ");new_str=new_str.replace(/\sIn\s/g," in ");new_str=new_str.replace(/\sIs\s/g," is ");new_str=new_str.replace(/\sOr\s/g," or ");new_str=new_str.replace(/\sOn\s/g," on ");new_str=new_str.replace(/\sTo\s/g," to ");new_str=new_str.replace(/\sAnd\s/g," and ");new_str=new_str.replace(/\'S/g,"\'s");return new_str;},filter_number:function(str,format){var new_str="";if($type(str)=="string"&&$type(format)=="string"){var str_characters=str.split("");var format_characters=format.split("");var end_parsing=false;var index=0;var format_index=0;for(index=0;index<format_characters.length&&index<str_characters.length;index++,format_index++){switch(format_characters[format_index]){case'd':{if(str_characters[index].test(/\d/)){new_str+=str_characters[index];}
else{end_parsing=true;}
break;}
default:{if(str_characters[index].test(/\d/)&&format_characters[format_index+1]=='d'){new_str+=format_characters[format_index]+str_characters[index];format_index++}
else if(str_characters[index].test(format_characters[format_index])){new_str+=str_characters[index];}
else{end_parsing=true;}
break;}}
if(end_parsing){break;}}}
return new_str;},filter_regexp:function(str,format){if($type(str)=="string"&&$type(format)=="string"){var new_str="";var re_entities=new Array();re_entities=this.parse_regexp_entities(format,re_entities);var end_parsing=false;var entity_length=0;for(entity_length=re_entities.length;entity_length>0;entity_length--){var test_format=re_entities.join("");var regexp=new RegExp('^('+test_format+')');if(regexp.exec(str)){new_str=RegExp.$1;end_parsing=true;}
if(end_parsing){break;}
re_entities.pop();}}
return new_str;},parse_regexp_entities:function(str,entities){var possible_entities=new Array(("\\^"),("\\\\d"),("\\\\D"),("\\\\w"),("\\\\W"),("\\\\s"),("\\\\S"),("\\\\b"),("\\\\B"),("\\\\[0-9]{1}"),("\\\\[a-z]{1}"),("\\\\"+"["+"\\\\"+"\\^"+"\\$"+"\\["+"\\]"+"\\{"+"\\}"+"\\("+"\\)"+"\\+"+"\\*"+"\\."+"\\*"+"\\?"+"]"),("\\+"),("\\*"),("\\?"),("\\."),("\\{[^\\}]*\\}"),("\\[[^\\]]*\\]"),("\\([^\\)]*\\)"),("\\$"),("."));var matched=false;for(var i=0;i<possible_entities.length;i++){var re=new RegExp('^('+possible_entities[i]+')');if(re.exec(str)){var data=RegExp.$1;entities.push(data);str=str.replace(re,"");matched=true;break;}}
if(str.length>0&&matched){return this.parse_regexp_entities(str,entities);}
else{return entities;}}});WidgetTextFilter.implement(new Options,new Events);
