/*****************************************************************
*                                                                *
*	supportus.js                                                 *
*	For use with vote18.org websites                             *
*                                                                *
*	written by Michael Rathmann                                  *
*	(c)2003 RathmannDesign.com. All rights reserved.             *
*	adapted by Roger Weber 2008                                  *
*                                                                *
*****************************************************************/

if (window.focus) { self.focus() }

var chasm = screen.availWidth;
var mount = screen.availHeight;
var width = 0;
var height = 0;
var aux = null;

function sendVerisign(form) {

 	document.sendit.LOGIN.value = "vote18corp209402";
	document.sendit.PARTNER.value = "centralbancard";
	document.sendit.TYPE.value="S";

	if (form.donationType[0].checked) {
		document.sendit.AMOUNT.value="25.00";
	} else if (form.donationType[1].checked) {
		document.sendit.AMOUNT.value="50.00";
	} else if (form.donationType[2].checked) {
		document.sendit.AMOUNT.value="100.00";
	} else if (form.donationType[3].checked) {
		document.sendit.AMOUNT.value="250.00";
	} else if (form.donationType[4].checked) {
		document.sendit.AMOUNT.value="500.00";
	} else if (form.donationType[5].checked) {
		document.sendit.AMOUNT.value="1000.00";		
	} else if (form.donationType[6].checked) {
		document.sendit.AMOUNT.value="2500.00";
	} else if (form.donationType[7].checked) {
		document.sendit.AMOUNT.value="5000.00";
	} else if (form.donationType[8].checked) {
		document.sendit.AMOUNT.value=form.AMOUNT.value;
	}

	document.sendit.DESCRIPTION.value="Vote 18 Donation";
	document.sendit.NAME.value=form.contactName.value;
	document.sendit.ADDRESS.value=form.contactAddress01.value;
	document.sendit.CITY.value=form.contactCity.value;
	document.sendit.STATE.value=form.contactState.value;
	document.sendit.ZIP.value=form.contactZip.value;
 	document.sendit.CARDNUM.value=form.cardNumber.value;
	document.sendit.EXPDATE.value=form.cardExpdate.value;
	document.sendit.CSC.value=form.cardCSC.value;
	document.sendit.PHONE.value=form.contactHome.value;
	document.sendit.EMAIL.value=form.contactEmail.value;	
	document.sendit.COMMENT1.value=form.MONTHLY.value;
	document.sendit.COMMENT2.value=form.friendName.value;

	document.sendit.submit();
	return true;
}

function formWindow(width,height) {
	if (aux != null && aux.open) aux.close();
	aux = window.open('','form','resizable=yes,status=yes,toolbar=yes,scrollbars=yes,width=' + width + ',height=' + height + ',left=' + ((chasm - width - 10) * .5) + ',top=' + ((mount - height - 30) * .5));
}

function eradic() {
	if (aux != null && aux.open) aux.close();
}

// form validation
function validateForm(form) {

	alertStart = "In order to submit your donation, please ";

	// Section 2: Contributor's Information
	if (!form.contactName.value) {
		alert(alertStart + "indicate the name that appears on the credit card.");
		form.contactName.focus(); return false;
	} if (!form.contactAddress01.value) {
		alert(alertStart + "indicate your mailing address.");
		form.contactAddress01.focus(); return false;
	} if (!form.contactCity.value) {
		alert(alertStart + "indicate the city of your mailing address.");
		form.contactCity.focus(); return false;
	} if (!form.contactState.value) {
		alert(alertStart + "indicate the state of your mailing address.");
		form.contactState.focus(); return false;
	} if (!form.contactZip.value) {
		alert(alertStart + "indicate the zip code of your mailing address.");
		form.contactZip.focus(); return false;
	} if (form.contactHome.value) {
		var str = form.contactHome.value;
		if (!isPhoneNum(str)) {
			alert("" + str + " is an invalid phone number!\r\nUse this format: ###-###-####");
			form.contactHome.focus(); form.contactHome.select(); return false;
		}
	} if (form.contactEmail.value) {
		var str = form.contactEmail.value;
		if (!isEmail(str)) {
			alert("" + str + " is an invalid email address!");
			form.contactEmail.focus(); form.contactEmail.select(); return false;
		}
	} // end section two


	// Section 3: Payment Information
	if (!form.cardNumber.value) {
		alert(alertStart + "indicate the account number of the credit card.");
		form.cardNumber.focus(); return false;
	} if (!form.cardExpdate.value) {
		alert(alertStart + "indicate the expiration date of the credit card.");
		form.cardExpdate.focus(); return false;
	} var str = form.cardExpdate.value;
	if (!isExpDate(str)) {
		alert("" + str + " is an invalid expiration date!\r\nUse this format: mm/yy");
		form.cardExpdate.focus(); form.cardExpdate.select(); return false;
	} // end section three
    if (!optionChecked(form)) {
		alert(alertStart + "select a contribution amount.");
		form.donationType[2].focus(); return false;
	}
	if (form.donationType[8].checked) {
	    if (!isNumeric(form.AMOUNT.value)) {
	        alert(alertStart + "amount '" + form.AMOUNT.value + "' must be a number");
	        return false;
	    }
        var numVal = form.AMOUNT.value * 1;
        if (5.00 > numVal) {
            alert("Amount: '" + form.AMOUNT.value + "' minimum credit card donation is five dollars.");
            return false;
        }
	}

	sendVerisign(form);
    return false;
}

function optionChecked(form) {
	for (i=0; i<form.donationType.length; i++) {
		if (form.donationType[i].checked) { return true; }
	} return false;
}

function validateInteger(strValue) {
	var objRegExp = /(^-?\d\d*$)/; return objRegExp.test(strValue);
}

function isEmail(str) {
	if (str.length <= 6) { return false; }
	else { return ((str != "") && (str.indexOf("@") != -1) && (str.indexOf(".") != -1)); }
}

function isPhoneNum(str) {
	if (str.length != 12) { return false; }
	for (j=0; j<str.length; j++) {
		if (j == 3) { if (str.charAt(j) != "-") { return false; } }
		else if (j == 7) { if (str.charAt(j) != "-") { return false; } }
		else { if ((str.charAt(j) < "0") || (str.charAt(j) > "9")) { return false; } }
	} return true;
}

function isExpDate(str) {
	if (str.length != 5) { return false; }
	for (j=0; j<str.length; j++) {
		if (j == 2) { if (str.charAt(j) != "/") { return false; } }
		else { if ((str.charAt(j) < "0") || (str.charAt(j) > "9")) { return false; } }
	}
	var month = str.charAt(0) == "0" ? parseInt(str.substring(1,2)) : parseInt(str.substring(0,2));
	if (month == 0 || month > 12) { return false; }
	return true;
}

function validateAmount(value) 
{
    valid = isNumeric(value);
    if (!valid ) 
    {
        alert("Amount: '" + value + "' is not a valid number.");
        return valid;
    }

    var numVal = value * 1;
    valid = 5.00 <= numVal; 
    if (!valid) 
    {
        alert("Amount: '" + value + "' minimum credit card donation is five dollars.");
        return valid;
    }

    return valid; 
}

function isNumeric(value) 
{
    return ! (value == null || !value.toString().match(/^[-]?\d*\.?\d*$/)); 
}

