// 2008/10/14 - 13:31:52

jQuery.jsforms={_form_name:'',_error_list:{},_additional:[],_error_count:0,_focused:false,criteria:{},reg_ex:{},form_process:'form_process.php',_set_error:function(fieldName,errorText){if(!jQuery.ct($.jsforms._error_list[fieldName],'object')){$.jsforms._error_list[fieldName]=[errorText];}
else{var newlist=$.jsforms._error_list[fieldName].push(errorText);}
$.jsforms._error_count++;},_set_error_CSS:function(fieldName){var outerbox=document.getElementById("f_"+fieldName);$(outerbox).addClass('wrong');},_add_additional:function(fields){var f_array=((fields.indexOf(',')>-1)?fields.split(','):[fields]);$.each(f_array,function(i,what){var pushed=$.jsforms._additional.push(what);});},_show_errors:function(errorboxID,errorParentID){if($('#'+errorboxID).length<1){var parent_box=($('#'+errorParentID).length?$('#'+errorParentID):document.forms[0]);$(parent_box).prepend('<ul class="formErrors" id="'+errorboxID+'"></ul>');}
var error_box=$('#'+errorboxID);if($.jsforms._error_count>0){$.each($.jsforms._error_list,function(eKey,eArray){$.each(eArray,function(i,eText){$(error_box).append('<li>'+eText+'</li>');$.jsforms._set_error_CSS(eKey);if(!$.jsforms._focused){$('#'+eKey).focus();$.jsforms._focused=true;}});});$(error_box).show();$.each($.jsforms._additional,function(i,adID){$.jsforms._set_error_CSS(adID);});}},_clear_errors:function(errorboxID){var errorBox=$('#'+errorboxID);if(!errorBox.length){$('.formErrors').parent().empty();}else{$(errorBox).remove();}
$('.wrong').removeClass('wrong');$.jsforms._error_list={};$.jsforms._error_count=0;$.jsforms._additional.length=0;},validate:function(formName,errorboxID,errorParentID,options){var ops=($.ct(options,'object')?options:{});$.jsforms._form_name=formName;$.jsforms._clear_errors(errorboxID);$.each($.jsforms.criteria[formName],function(fKey,fArray){$.each(fArray,function(i,f){if(!f.ok()){$.jsforms._set_error(fKey,f.mess);if(!f.next){return false;}}});});if($.jsforms._error_count==0){return true;}else{if(!ops.suppressErrors){$.jsforms._show_errors(errorboxID,errorParentID);if($.ct(ops.errorScroll)){var scr={x:0,y:0};if($.ct(ops.errorScroll,'array')&&(ops.errorScroll.length==2)){scr.x=ops.errorScroll[0];scr.y=ops.errorScroll[1];}else{var place=$('#'+errorboxID).offset();scr.x=$(window).scrollLeft();scr.y=place.top;}
window.scrollTo(scr.x,scr.y);}}
return false;}},_get_info:function(fieldName){var out={field:false,input:[]};out.field=document.forms[$.jsforms._form_name].elements[fieldName];if(typeof $(out.field)=='undefined'){out.field=false;return out;}
var f_value;if($(out.field).attr('type')=='radio'){f_value=$('form[name='+$.jsforms._form_name+'] input[name='+fieldName+']:checked').val();}
else if($(out.field).attr('type')=='checkbox'){f_value=[];$.each($(out.field),function(i,cBox){if($(cBox).attr('checked')=='checked'||$(cBox).attr('checked')==true){f_value.push($(cBox).val());}});}
else{f_value=$(out.field).val()||[];}
var f_array=((typeof f_value!='object')?[f_value]:f_value);$.each(f_array,function(i,fText){var tr_text=$.trim(fText);if(fText!='N/S'&&$.jsforms.hints.not_hint($.jsforms._form_name,fieldName,tr_text)){out.input.push(tr_text);}});return out;},val_filled:function(fieldName){var out=false;var f_info=$.jsforms._get_info(fieldName);if(!f_info.field){return false;}
$.each(f_info.input,function(i,stuff){if(stuff.length){out=true;return false;}});return out;},val_regex:function(fieldName,regex){var out=true;var f_info=$.jsforms._get_info(fieldName);if(!f_info.field){return false;}
if(!$.jsforms.val_filled(fieldName)){return true;}
var reg=new RegExp(($.jsforms.reg_ex[regex])?$.jsforms.reg_ex[regex]:regex);$.each(f_info.input,function(i,stuff){if(!stuff.match(reg)){out=false;return false;}});return out;},val_regex_email:function(fieldName){var out=true;var f_info=$.jsforms._get_info(fieldName);if(!f_info.field){return false;}
if(!$.jsforms.val_filled(fieldName)){return true;}
var rgxs={str_len:new RegExp("^.{6,88}$"),at_symbol:new RegExp("^[^@]+@[^@]+$"),local_name:new RegExp("^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,62}[A-Za-z0-9!#$%&'*+/=?^_`{|}~-])|(\"[^(\\|\")]{0,62}\"))$"),domain_ip:new RegExp("^\[?[0-9\.]+\]?$"),domain_len:new RegExp("^(([A-Za-z0-9][A-Za-z0-9-]{0,88}[A-Za-z0-9])|([A-Za-z0-9]+))$")};$.each(f_info.input,function(i,eStr){if(out&&rgxs.str_len.test(eStr)&&rgxs.at_symbol.test(eStr)&&rgxs.at_symbol.test(eStr)){var email_array=eStr.split("@");var local_array=email_array[0].split(".");$.each(local_array,function(i,lStr){if(!rgxs.local_name.test(lStr)){out=false;return false;}});if(out){if(!rgxs.domain_ip.test(email_array[1])){var domain_array=email_array[1].split(".");if(domain_array.length<2){out=false;return false;}
$.each(domain_array,function(i,dStr){if(!rgxs.domain_len.test(dStr)){out=false;return false;}});}}
else{return false;}}
else{out=false;return false;}});return out;},val_same:function(fieldNames,should){var out=true;if(fieldNames.indexOf(',')<1){return false;}
var field_array=fieldNames.split(',');var example=$.jsforms._get_info(field_array[0]);if(!example.field){return false;}
$.each(field_array,function(i,fStr){var comp=$.jsforms._get_info(fStr);if(!comp.field){out=false;return false;}
if(should){if(comp.input[0]!=example.input[0]){$.jsforms._add_additional(fStr);out=false;return false;}}
else{if(comp.input[0]==example.input[0]){$.jsforms._add_additional(fStr);out=false;return false;}}});return out;},val_length:function(fieldName,minormax,num){var out=true;var f_info=$.jsforms._get_info(fieldName);if(!f_info.field){return false;}
if(!$.jsforms.val_filled(fieldName)){return false;}
$.each(f_info.input,function(i,fStr){var chars=fStr.length;if((minormax=='min')?(chars<num):(chars>num)){out=false;return false;}});return out;},val_amount:function(fieldName,minormax,num){var out=true;var f_info=$.jsforms._get_info(fieldName);if(!f_info.field){return false;}
if(!$.jsforms.val_filled(fieldName)){return false;}
$.each(f_info.input,function(i,fNum){if(fNum.match(/[^0-9]/)){out=false;return false;}
if((minormax=='minAmt')?(fNum<num):(fNum>num)){out=false;return false;}});return out;},hints:{htext:{},set:function(formName,elName,hint){if(typeof this.htext[formName]=='undefined'){this.htext[formName]=[{el:elName,h:hint}];}
else{var pushed=this.htext[formName].push({el:elName,h:hint});}},erased:[],erase:function(field){if($.inArray(field,this.erased)){$(field).val('').removeClass('hint');pushed=this.erased.push(field);}},not_hint:function(formName,elName,compText){var out=true;var formHints=this.htext[formName];if(typeof formHints!='undefined'){$.each(formHints,function(i,fHint){if(typeof fHint.el!='undefined'){if(fHint.h==compText){out=false;return false;}}});}
return out;},start:function(){$.each(this.htext,function(f,elArray){$.each(elArray,function(e,elItem){var field=document.forms[f].elements[elItem.el];if(typeof(field)=='undefined'){return false;}
var f_val=$(field).val();if(f_val.length<1||(f_val==elItem.h)){$(field).addClass('hint');$(field).val(elItem.h);$(field).focus(function(){$.jsforms.hints.erase(field);});}});});}},select_link:function(formName,selectName){sbox=document.forms[formName].elements[selectName];if(typeof(sbox)!='undefined'){destination=sbox.options[sbox.selectedIndex].value;if(destination.length>0){location.href=destination;}}},form_focus:{ok:true,set:function(){if(document.forms.length>0){var focusFields=$('.set_focus');if($.jsforms.form_focus.ok&&($(focusFields).length>0)){$(focusFields)[0].focus();}}},timer:function(){if($.jsforms.form_focus.ok){setTimeout("$.jsforms.form_focus.set()",10);}},cancel:function(e){var targ;if(!e){var e=window.event;}
if(e.target){targ=e.target;}
else if(e.srcElement){targ=e.srcElement;}
if(targ.nodeType==3){targ=targ.parentNode;}
if(targ.nodeName=="INPUT"){$.jsforms.form_focus.ok=false;}},start:function(){$(document).click(function(event){$.jsforms.form_focus.cancel(event);});$.jsforms.form_focus.timer();}},swap_field:function(validationArr,oField,nField,pField,container){if(container==null){container=$('#f_'+oField);}
var pars={validation:validationArr,field:oField,newField:nField,parentField:pField};$(container).load($.jsforms.form_process,pars).removeClass('wrong');}};$(function(){$.jsforms.form_focus.start();$.jsforms.hints.start();});