var start1=true, start2=true;
if(document.all) Node = {ELEMENT_NODE: 1};
function checkText(e) {

    var test,chr;

    if(window.event)

        test = e.keyCode;

    else if(e.which)

        test = e.which;

    chr = String.fromCharCode(test);

    allow = /[\u0041-\u005a\u0061-\u007a\u0008\u0009\u0020]/;

    return allow.test(chr);

}



function checkAddr(e) {

    var test,chr;

    if(window.event)

        test = e.keyCode;

    else if(e.which)

        test = e.which;

    chr = String.fromCharCode(test);

    allow = /[\u0041-\u005a\u0061-\u007a\u0008\u0009\u0020\.\:\,\-0-9\/]/;

    return allow.test(chr);

}



function checkNum(e) {

    var test,chr;

    if(window.event)

        test = e.keyCode;

    else if(e.which)

        test = e.which;

    chr = String.fromCharCode(test);

    allow = /[0-9\u0008\u0009]/;

    return allow.test(chr);

}



function checkZIP(e) {

    var test,chr;

    if(window.event)

        test = e.keyCode;

    else if(e.which)

        test = e.which;

    chr = String.fromCharCode(test);

    allow = /[0-9\u0041-\u005a\u0061-\u007a\u0008\u0009]/;

    return allow.test(chr);

}



function checkAmt(e) {

    var test,chr;

    if(window.event)

        test = e.keyCode;

    else if(e.which)

        test = e.which;

    chr = String.fromCharCode(test);

    allow = /[0-9\u0008\u0009\.]/;

    return allow.test(chr);

}

function chkForm(f){
	var errs='', radioChk=false, otherValue=false, allChk=true, elm=$('err'), elm1=$('erropt');
    var n=f.elements.length;;
	function chkamt(){
		for(var j=0; j<n; j++){
			var el=f.elements[j];
			if(el.type=='radio' && el.name=='donationValue' && el.checked) radioChk=true;
			if(el.name=='donationValueOther' && el.value) otherValue=true;
		}
		if(radioChk || otherValue) return true;
		return false;
	}
	for(var i=0; i<n; i++){
		var el=f.elements[i];
		if(el.name=='donationValue' || el.name=='donationValueOther' || el.name=='token' || el.name=='submit') continue;
		if(el.name=='Email') {
            errs+=validateEmail(el.value);
        } else if(el.getAttribute('required')!=null && !el.value) {
            allChk=false;
        }
	}
	if(!allChk) errs+='<br />Please fill out all required fields (all but receive Charity box).';
	if(!chkamt()) errs+='<br />Please select or type in the amount of your donation.';
	if(errs){
		errs += '<br />Thank You.';
		elm.innerHTML=errs;
		elm.style.display='block';
		self.location.href='#ers';
		return false;
	}
    elm.innerHTML='';
    if($('jy').checked){
        var checkoptOcc1=false;
        if(f.optDate1.value=='') errs+='Please type in the date of your sponsorship.';
        for(i=0; i<n; i++) {
            var elmo=f.elements[i];
            if(elmo.name=='optOcc1' && elmo.checked==true)  checkoptOcc1=true;
            if(elmo.name=='optOcc1Oth' && elmo.value!='') checkoptOcc1=true;
            if(elmo.name=='name1' && !elmo.value) errs+='<br />Please type in the name: "Of"';
        }
        if(!checkoptOcc1) errs+='<br />Please select or type in the occasion: "In honor of the"';
    }
    if($('rb').checked){
        if($('optDate2').value=='') errs+='Please type in the date of your sponsorship.';
        if(!($('elv').checked || $('recv').checked)) errs+='<br />Please select one of the two options under "Remember a loved one".';
        if($('elv').checked && !f.passName.value)
            errs+='<br />Please type the name of the person into the field "in commemoration..."';
        else if($('recv').checked && !f.recvName.value)
            errs+='<br />Please type the name of the person into the field under "This donation is for speedy recovery"';
    }
    if($('jy').checked || $('rb').checked){
        alert('one at least is checked');
        if(!($('m').checked || $('e').checked))
            errs+='<br />Please selet the option for how to post you a copy of the placard.';
        if(!($('pa0').checked || $('pa1').checked))
            errs+='<br />Please select option for which address should we post your placard to';
        if($('pa1').checked && !(f.newAddrName.value && f.newAddrAddr.value && f.newAddrCity.value && f.newAddrState.value && f.newAddrZip.value && f.newAddrPhone.value && f.newAddrEmail.value))
            errs+='<br />You have selected option to get a copy of your placrd to address different then the billing address. Please fill out all fields for new address.';
    }
    if(errs){
        alert( 'errs');
            errs += '<br />Thank You.';
            elm1.innerHTML=errs;
            elm1.style.display='block';
            self.location.href='#ersopt';
            return false;
        }
	return true;

}

function deselRadio(f){

	for(var i=0; i<f.elements.length; i++){

		var el=f.elements[i];

		if(el.type=='radio' && el.checked) el.checked=false;

	}

}

function deselectOptions(f){

	for(var i=0; i<f.elements.length; i++){

		var el=f.elements[i];

		if(el.name=='optOcc1' && el.checked) el.checked=false;

	}

}

function delOtherVal(){

	document.getElementById('valueOther').value='';

}

function validateEmail(email){

    var err='';

    var checkTLD=1;

    var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum)$/;

    var emailPat=/^(.+)@(.+)$/;

    var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";

    var validChars="\[^\\s" + specialChars + "\]";

    var quotedUser="(\"[^\"]*\")";

    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;

    var atom=validChars + '+';

    var word="(" + atom + "|" + quotedUser + ")";

    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");

    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");

    var matchArray=email.match(emailPat);

    if (matchArray == null) {

        err+="Email address seems incorrect. Please check '@' and dots.";

        return err;

    }

    var user=matchArray[1];

    var domain=matchArray[2];

    for (i = 0; i < user.length; i++) {

        if (user.charCodeAt(i) > 127) {

            err+="The e-mail username contains invalid characters.";

            return err;

        }

    }

    for (i = 0; i < domain.length; i++) {

        if (domain.charCodeAt(i) > 127) {

            err+="The e-mail domain name contains invalid characters.";

            return err;

        }

    }

    if (user.match(userPat) == null) {

        err+="The e-mail username doesn't seem to be valid.";

        return err;

    }

    var IPArray=domain.match(ipDomainPat);

    if (IPArray != null) {

        for (var i = 1; i <= 4; i++) {

            if (IPArray[i] > 255) {

                err+="Destination IP address of your e-mail is invalid.";

                return err;

            }

        }

    }

    var atomPat=new RegExp("^" + atom + "$");

    var domArr=domain.split(".");

    var len=domArr.length;

    for (i = 0; i < len; i++) {

        if (domArr[i].search(atomPat) == -1) {

            err+="The domain name in e-mail address does not seem to be valid.";

            return err;

        }

    }

    if (checkTLD && domArr[domArr.length-1].length != 2 && domArr[domArr.length-1].search(knownDomsPat) == -1) {

        err+="The e-mail address must end in a well-known domain or two letter country.";

        return err;

    }

    if (len < 2) {

        err+="This e-mail address is missing a hostname.";

        return err;
    }
    return '';
}

function checkMailingForm(f){

	var el, errs='', chall=true, er=document.getElementById('err');

	for(var i=0;i<f.elements.length;i++){

		el=f.elements[i];

		if(el.name=='token' || el.name=='submit') continue; 

		if(el.name=='Email') errs+=validateEmail(el.value);

		if(!el.value) chall=false;

	}

	if(!chall) errs+='<br />Please fill out and select all required fields.<br />Thank You.';

	if(errs){

		er.innerHTML=errs;

		er.style.display='block';

		return false;

	}

	return true;

}

function togglePane() {
    this.elmo = $('dedicateDonation');
    this.dbt = $('ddBtn');
    var de = this.elmo;
    this.dbt.onclick = function () {
        $A(de.childNodes).each(function(child){
            if(child.nodeType==Node.ELEMENT_NODE) Effect.toggle(child, 'slide', {duration:1,transition:Effect.Transitions.sinoidal});
        }
    );
    }
}
function hideAltAddr() {
    var elmo = $('altAddr');
    if (elmo.style.display!='none') Effect.BlindUp(elmo);
}
function showAltAddr() {
    var elmo = $('altAddr');
    if (elmo.style.display=='none') Effect.BlindDown(elmo);
}

function enableMyFields(my) {
    var jy = $('jy');
    var rb = $('rb');
    switch(my){
        case 'jyc':
            if (jy.checked){
            $('optDate1').disabled=false;
            $('wdg').disabled=false;
            $('bir').disabled=false;
            $('bbm').disabled=false;
            $('anw').disabled=false;
            $('optOcc1Oth').disabled=false;
            $('name1').disabled=false;
            if(!rb.checked){
            $('elv').disabled=true;
            $('optDate2').disabled=true;
            $('passName').disabled=true;
            $('recv').disabled=true;
            $('recvName').disabled=true;
            }
            }else{
            $('optDate1').disabled=true;
            $('wdg').disabled=true;
            $('bir').disabled=true;
            $('bbm').disabled=true;
            $('anw').disabled=true;
            $('optOcc1Oth').disabled=true;
            $('name1').disabled=true;
            }
            break;
        case 'rmb':
            if(rb.checked){
            if(!jy.checked){
            $('optDate1').disabled=true;
            $('wdg').disabled=true;
            $('bir').disabled=true;
            $('bbm').disabled=true;
            $('anw').disabled=true;
            $('optOcc1Oth').disabled=true;
            $('name1').disabled=true;
            }
            $('elv').disabled=false;
            $('optDate2').disabled=false;
            $('passName').disabled=true;
            $('recv').disabled=false;
            $('recvName').disabled=true;
            }else{
            $('elv').disabled=true;
            $('optDate2').disabled=true;
            $('passName').disabled=true;
            $('recv').disabled=true;
            $('recvName').disabled=true;
            }
            break;
        case  'elv':
            $('passName').disabled=false;
            $('recvName').disabled=true;
            break;
        case  'recv':
            $('passName').disabled=true;
            $('recvName').disabled=false;
            break;
    }
}