var bPageLoaded=false;

function setLoaded()
{
	bPageLoaded=true;
}

function RedShift(curText)
{
	if (bPageLoaded)
	{
		document.all(curText).style.color = "FF0000";
	}
}

function Exit(curText)
{
	if (bPageLoaded)
	{
		document.all(curText).style.color = "FFFFFF";
	}
}

function d2h(d) { return d.toString(16); }
function h2d(h) { return parseInt(h, 16); } 

function error_field(form,ele) {
    document.forms[form].elements[ele].focus();
    alert("Invalid " + document.forms[form].elements[ele].name);
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return clean_link(results[1]);
}

function clean_link(data) {
    var regex = /%([0-9A-F]{1,2})/gi;
    var tar;
    var rep;
    while (data.search(regex) != -1) {
        tar = "%" + RegExp.$1;
        rep = String.fromCharCode(h2d(RegExp.$1));
        data = data.replace(tar, rep);
    }
    return(data);
}

function set_form_params()
{
	document.contact_form.email.value = gup('email');
	for (i = 0; i < document.contact_form.elements.length; i++) {
		document.contact_form.elements[i].value = gup(document.contact_form.elements.name);	
	}
}


function validate_form ( )
{
    var str;
    var name;
    var type;
    counter = 0;
    var regEmail = /^[A-Z0-9._&%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}$/i;
    var regNumeric = /^[0-9-() -]{0,25}$/;
    var regText = /^[A-Z0-9._&%+,;:()'" -]*$/i;
    var regLink = /<A HREF\s?=/i;

    for (i = 0; i < document.contact_form.elements.length; i++) {
        name = document.contact_form.elements[i].name.toUpperCase();
        type = document.contact_form.elements[i].type.toUpperCase();
        str = document.contact_form.elements[i].value;
        counter = counter + str.length;

        if (regLink.test(str))
        { error_field(0, i); return false; }
        
        if (type == "TEXT") {
            if (str.length > 0) {
                if (name == "EMAIL") {
                    if (regEmail.test(str) == false)
                    { error_field(0, i); return false; }
                }
                else if (name == "PHONE" || name == "FAX" || name == "ZIP") {
                    if (regNumeric.test(str) == false)
                    { error_field(0, i); return false; }
                }
                else {
                    if (regText.test(str) == false)
                    { error_field(0, i); return false; }
                }
            }
        }
    }

    if (counter < 10)
    { alert("Incomplete Form"); return false; }
    
    return true;
}
