/*
    This validation script is copyrighted
    It cannot be copied without permission
    (c) 2009 Mark Bleshenski
*/

function ValidateThisForm(whichForm) {
    var str = '';
    var elem = whichForm.elements;
    var isMobile = false;
    var UA = navigator.userAgent.toUpperCase();
    if (UA.indexOf("CLDC") > 0 ||
    UA.indexOf("MIDP") > 0 ||
    UA.indexOf("BLACKBERRY") > 0 ||
    UA.indexOf("IPHONE") > 0 ||
    UA.indexOf("IPOD") > 0
    ) {
        isMobile = true;
    }

    try {
        for (var i = 0; i < elem.length; i++) {
            if (elem[i].name.toLowerCase().indexOf('_required') > -1) {
                if (elem[i].type == 'text') {
                    if (elem[i].value == '') {
                        alert("\'" + getName(elem[i].name) + "\' is a required field.")
                        elem[i].focus();
                        elem[i].select();
                        return false;
                    }
                } else if (elem[i].type == 'select-one' && elem[i].selectedIndex == 0) {
                    alert(getName(elem[i].name) + " is a required field. Please select something other than the first item.")
                    elem[i].focus();
                    return false;
                } else if (elem[i].type == 'select-mulitple' && elem[i].selectedIndex == 0) {
                    alert(getName(elem[i].name) + " is a required field. Please at least one item.")
                    elem[i].focus();
                    return false;
                } else if (elem[i].type == 'checkbox' && !isMobile) {
                if (!whichForm[elem[i].name].checked) {
                    if (!validateCheckbox(whichForm, elem[i])) {
                        alert(getName(elem[i].name) + " is a required field. Please check at least one item.")
                        elem[i].focus();
                        elem[i].select();
                        return false;
                    }
                };
                } else if (elem[i].type == 'radio' && !isMobile) {
                    if (!validateCheckbox(whichForm, elem[i])) {
                        alert(getName(elem[i].name) + " is a required field. Please check one item.")
                        elem[i].focus();
                        elem[i].select();
                        return false;
                    };
                }
            }
            if (elem[i].name.toLowerCase().indexOf('email') > -1) {
                if (!isEmailValid(elem[i].value) && elem[i].value != '') {
                    alert("The email address in the \'" + getName(elem[i].name) + "\' field is not valid.")
                    elem[i].focus();
                    elem[i].select();
                    return false;
                }
            }
            if (elem[i].value != "") {
                if (ContainsHTML(elem[i].value)) {
                    alert(getName(elem[i].name) + " field cannot contain HTML and < or > symbols.")
                    elem[i].focus();
                    elem[i].select();
                    return false;
                }
            }
        }
    }
    catch (err) {
	if(!isMobile){
        	txt = "There was an error on this page.\n\n";
        	txt += "Error description: " + err.description + "\n\n";
        	txt += "Click OK to continue.\n\n";
        	alert(txt);
	}
	else
	{
        	return true;
	}
    }

    return true;
}

function getName(value){
	return value.replace(/_required/,"");
}

function isEmailValid(inputvalue){	
    var pattern=/^([a-zA-Z0-9_.-])+@([a-zA-Z0-9_.-])+\.([a-zA-Z])+([a-zA-Z])+/;
    if(pattern.test(inputvalue)){         
	return true;   
    }else{
	return false; 
    }
}

function ContainsHTML(inputvalue) {
    var pattern = /^[^<>]+$/;
    if (pattern.test(inputvalue)) {
        return false;
    } else {
        return true;
    }
}

function toNum(checkString) {
    newString = "";
    count = 0;
    for (i = 0; i < checkString.length; i++) {
        ch = checkString.substring(i, i + 1);
        if ((ch >= 0 && ch <= 9)) {
            newString += ch;
        }
    }
    return newString;
}

function validateCheckbox(whichForm, myfld) {
    vfld = whichForm[myfld.name]
    var count = 0;
    for (var j = 0; j < vfld.length; j++)
        if (vfld[j].checked) return true;

    return false;
}

