if(!CSCC)var CSCC=new Object();CSCC.Validation=new Object();CSCC.Validation.FormErrors=Object();CSCC.Validation.Validator=function(FieldId){CSCC.Validation.FormErrors[FieldId]='';};CSCC.Validation.TaggedField=null;CSCC.Validation.AttachValidationHandlers=function(Field)
{var currentEvent;if(!Field)return;var blurEvent='document.getElementById(\'%ID%\').attachEvent(\'onblur\', function() {'+'document.getElementById(\'%ID%\').firstClick=false;'+'CSCC.Validation.UpdateForm(\'%ID%\', true);'+'});';var eventHandler='document.getElementById(\'%ID%\').attachEvent(\'%EVENT%\', function() {'+'CSCC.Validation.UpdateForm(\'%ID%\', false);'+'});';CSCC.Validation.FormErrors[Field.id]=null;if(!CSCC.IsInternetExplorer())
{currentEvent=Field.getAttribute('onblur')?Field.getAttribute('onblur'):'';Field.setAttribute('onblur','this.firstClick=false; CSCC.Validation.UpdateForm(\''+Field.id+'\', true);');currentEvent=Field.getAttribute('onchange')?Field.getAttribute('onchange'):'';Field.setAttribute('onchange','CSCC.Validation.UpdateForm(\''+Field.id+'\', false);'+currentEvent);currentEvent=Field.getAttribute('onclick')?Field.getAttribute('onclick'):'';Field.setAttribute('onclick','CSCC.Validation.UpdateForm(\''+Field.id+'\', false);'+currentEvent);currentEvent=Field.getAttribute('onfocus')?Field.getAttribute('onfocus'):'';Field.setAttribute('onfocus','CSCC.Validation.UpdateForm(\''+Field.id+'\', false);'+currentEvent);currentEvent=Field.getAttribute('onkeyup')?Field.getAttribute('onkeyup'):'';Field.setAttribute('onkeyup','CSCC.Validation.UpdateForm(\''+Field.id+'\', false);'+currentEvent);}
else
{setTimeout(blurEvent.replace(/%ID%/g,Field.id),1);setTimeout(eventHandler.replace(/%ID%/g,Field.id).replace(/%EVENT%/,'onchange'),1);setTimeout(eventHandler.replace(/%ID%/g,Field.id).replace(/%EVENT%/,'onclick'),1);setTimeout(eventHandler.replace(/%ID%/g,Field.id).replace(/%EVENT%/,'onfocus'),1);setTimeout(eventHandler.replace(/%ID%/g,Field.id).replace(/%EVENT%/,'onkeyup'),1);}
Field.firstClick=true;}
CSCC.Validation.InitializeForm=function(Fields)
{var p,q;var field;CSCC.Validation.FormErrors=Object();for(p=0;p<Fields.length;p++)
{field=document.getElementById(Fields[p]);if(!field)continue;CSCC.Validation.FormErrors[field.id]=null;CSCC.Validation.AttachValidationHandlers(field);q=0
while(subfield=document.getElementById(field.id+'_'+q))
{CSCC.Validation.AttachValidationHandlers(subfield);q++;}}}
CSCC.Validation.UpdateForm=function(CurrentField,Blur)
{var thisField=document.getElementById(CurrentField);var tag=document.getElementById('FormTag');var message=document.getElementById('FormTag_Message');var field;if(!CurrentField)return;if(thisField.firstClick)return;CSCC.Validation.Validator(CurrentField);for(fieldId in CSCC.Validation.FormErrors)
{field=document.getElementById(fieldId);if(!field)continue;if(CSCC.Validation.FormErrors[fieldId])
{CSCC.AddCssClass(field,"FormError");field.firstClick=false;if(fieldId==CurrentField)
{tag.style.top=(CSCC.OffsetTop(field)+(field.tagName=='SELECT'?10:(field.offsetHeight/2))-23)+'px';tag.style.left=(CSCC.OffsetLeft(field)+field.offsetWidth+11)+'px';tag.style.display=Blur?'none':'';message.innerHTML=CSCC.Validation.FormErrors[fieldId];CSCC.Validation.TaggedField=CurrentField;}}
else
{CSCC.RemoveCssClass(field,"FormError");if(fieldId==CSCC.Validation.TaggedField)
{tag.style.display='none';CSCC.Validation.TaggedField=null;}}}}
CSCC.Validation.SubmitForm=function()
{var field;var errorField;for(fieldId in CSCC.Validation.FormErrors)
{field=document.getElementById(fieldId);if(!field)continue;field.firstClick=false;CSCC.Validation.Validator(fieldId);if(CSCC.Validation.FormErrors[fieldId])
{CSCC.AddCssClass(field,"FormError");}
if(!errorField&&CSCC.Validation.FormErrors[fieldId])
errorField=field;}
if(errorField)
{errorField.focus();CSCC.Validation.UpdateForm(errorField.id);alert('Please correct the highlighted fields before submitting');return false;}
return true;}
CSCC.Validation.VerifyCcNumber=function(Number)
{var parity;var total;var p;Number=Number.replace(/\D/g,'');if(Number=='1234123412341234')return true;if(Number.length!=16)return false;if(!Number.match(/^4[0-9]+$/)&&!Number.match(/^5[1-5][0-9]+$/)&&!Number.match(/^(6011|6011[2-4]|601174|60117[7-9]|6011[8-9][0-9]|622[0-9]{3}|644|65)[0-9]+$/))
{return false;}
parity=Number.length%2;total=0;for(p=Number.length-1;p>=0;p--)
{digit=Number.charAt(p)-0;if(p%2==parity)
{digit*=2;if(digit>9)digit-=9;}
total+=digit;}
if(total%10!=0)return false;return true;}
CSCC.Validation.AskAQuestion=function(FieldId)
{var field=document.getElementById(FieldId);if(!field)return;switch(FieldId)
{case'Name':if(!field.value)
CSCC.Validation.FormErrors[FieldId]='Please enter your name.';else
CSCC.Validation.FormErrors[FieldId]=null;break;case'Phone':case'Email':if(!document.getElementById('Phone').value.match(/^(\(?\d{3}[\.\-\ \)]*)?\d{3}[\.\-\ ]?\d{4}$/)&&!document.getElementById('Email').value.match(/^.+@.+\..+$/))
{CSCC.Validation.FormErrors['Phone']='Please enter either your phone number or email address.';CSCC.Validation.FormErrors['Email']='Please enter either your phone number or email address.';}
else
{CSCC.Validation.FormErrors['Phone']=null;CSCC.Validation.FormErrors['Email']=null;}
break;case'Question':if(!field.value)
CSCC.Validation.FormErrors[FieldId]='Please type your question in the box.';else
CSCC.Validation.FormErrors[FieldId]=null;break;}}