﻿function allowRegExpValue(e, strRegExp, element, pattern) {
    alert('allowRegExp: ' + allowRegExp(e, strRegExp) + '\nlength: ' + (element.value.length == 0) + '\ntestRegEx: ' + testRegEx(element, pattern));
    return allowRegExp(e, strRegExp) && (element.value.length == 0 || testRegEx(element, pattern));
}
function allowRegExp(e, strRegExp) {
    var key, keychar;
    if (window.event) key = window.event.keyCode;
    else if (e) key = e.which;
    else return true;

    if (key == 13) return true; //Return true for enter key.

    var reg = new RegExp("[^" + strRegExp + "]")
    keychar = String.fromCharCode(key);
    var matchedArr = keychar.match(reg)
    return (matchedArr == null);
}
function allowCurrency() {
    if (allowRegExp(event, '0-9\.')) { }
}
function validateForm() {
    var boolBadFormElements = 0;
    var strErrString = '';

    boolBadFormElements += (ge('ddlAmount').value == 'other' && ge('txtAmount').value.length == 0);
    ge('txtAmount_error').style.display = (boolBadFormElements == 0 ? 'none' : 'inline');
//    boolBadFormElements += validateElement('txtAmount');
//    if (!validateElement('txtAmount')) { var newNum = new Number(ge('txtAmount').value);newNum.toFixed(2);alert(newNum); ge('txtAmount').value = newNum; }
    boolBadFormElements += validateElement('txtFirstName');
    boolBadFormElements += validateElement('txtLastName');
    boolBadFormElements += validateElement('txtAddress1');
    boolBadFormElements += validateElement('txtCity');
    boolBadFormElements += validateElement('txtState');
    boolBadFormElements += validateElement('txtZip');
    //	boolBadFormElements += validateElement('txtCountry');
    boolBadFormElements += validateElement('txtCreditCardNumber');
    boolBadFormElements += validateElement('txtCVV2');
    boolBadFormElements += ge('ddlExpMonth').value.length == 0 || ge('ddlExpYear').value.length == 0;
    ge('ddlExpDate_error').style.display = (ge('ddlExpMonth').value.length == 0 || ge('ddlExpYear').value.length == 0 ? 'inline' : 'none');
    //	boolBadFormElements += validateElement('ddlExpDate');
    if (boolBadFormElements > 0) { strErrString += 'marked fields are required\n'; }
    if (strErrString.length > 0) { alert(strErrString); }
    return boolBadFormElements == 0;
}
function validateElement(id) {
    ge(id + '_error').style.display = (ge(id).value.length == 0 ? 'inline' : 'none');
    return ge(id).value.length == 0;
}
function testRegEx(element, pattern) {
    var reg = new RegExp(pattern);
    return reg.test(element.value);

}
function checkOther(amount) { ge('otherSpan').style.display = (amount == 'other' ? '' : 'none'); }

function ge(elementID) { return document.getElementById(elementID); }
// [0-9]+\.?\d{0,2}

function donate() { window.location = 'donate.aspx?amount=' + ge('donateamount').value; }

