﻿var W3CDOM = (document.getElementsByTagName && document.createElement);

window.onload = function () 
{
	document.forms[0].elements[0].focus();
	
	document.forms[0].onsubmit = function () 
	{
		return formCheck(this)
	}
}

function writeError(obj,message)
{
	validForm = false;
	if (!firstError) firstError = obj;
	if (obj.hasError) return;
	if (W3CDOM)
	{
		obj.className += ' error';
		obj.onchange = removeError;
		var sp = document.createElement('span');
		sp.className = 'error';
		sp.appendChild(document.createTextNode(message));
		obj.parentNode.appendChild(sp);
		obj.hasError = sp;
	}
	else
	{
		errorstring += '- ' + message + '\n';
		obj.hasError = true;
	}
}

function removeError()
{
	this.className = this.className.substring(0,this.className.lastIndexOf(' '));
	this.parentNode.removeChild(this.hasError);
	this.hasError = null;
	this.onchange = null;
}

// requires there be a theForm.required object to contain the bit flags to determine which fields are required.
function checkRequired(theForm)
{
	validForm = true;
	firstError = null;
	errorstring = '_____________________________________________________________\n\n';
	errorstring += 'Please correct the following error(s) and resubmit.\n';
	errorstring += '_____________________________________________________________\n\n';
	
	for (var i=0; i<theForm.elements.length; i++) 
	{
		var formElement = theForm.elements[i];
		
		if(formElement.getAttribute('required') == 'required') 
		{
		    if(formElement.type == "checkbox") 
		    {
		        var isChecked = false;
				if(formElement.checked && formElement.value != "") isChecked = true;
				if(!isChecked)
					writeError(formElement,'The ' + getFieldName(formElement) + ' field is required.');
			}
//			else if (formElement.type == "radio") {
//			    var isChecked = false;
//			    // if there is only one radio button lets see if its checked.
//			    if (theForm[formElement.name].length == undefined && formElement.checked) {
//			        isChecked = true;
//			        break;
//			    }
//			    for (j = 0; j < theForm[formElement.name].length; j++) {
//			        var formRadio = theForm[formElement.name][j];
//			        if (formRadio.checked) {
//			            isChecked = true;
//			            break;
//			        }
//			    }
//			    if (!isChecked) {
//			        alert("'" + getFieldName(formElement) + "' is a required field.\nPlease select one to continue.");
//			        formElement.focus();
//			        return (false);
//			    }
//			}
			else if (formElement.type == "select") {
			    var j = formElement.selectedIndex;
			    if (formElement.options[j].value == '') {
			        alert("The '" + getFieldName(formElement) + "' select-box is a required field.\nPlease choose a valid selection to continue.");
			        formElement.focus();
			        return (false);
			    }
			}
			else if (!formElement.value)
		        writeError(formElement,'The ' + getFieldName(formElement) + ' field is required.');
		    else if (formElement.getAttribute('validate') == 'email') 
		    {
                var apos = formElement.value.indexOf("@");
                var dotpos = formElement.value.lastIndexOf(".");
                var lastpos = formElement.value.length-1;
                if (apos<1 || dotpos-apos<2 || lastpos-dotpos>3 || lastpos-dotpos<2) 
                    writeError(formElement,'This is not a valid email address');
			}
		}
	}
	if (!W3CDOM)
		alert(errorstring);
	if (firstError)
		firstError.focus();
	if (validForm)
		return true;
}

// requires there be a theForm.alias object to contain the relationships between variables and their aliases.
function setFieldAlias(theForm)
{
	for (var i=0;i<theForm.elements.length;i++)
	{
		var formElement = theForm.elements[i];
		if(formElement.name)
		{
			formElement.alias = theForm.alias[formElement.name];
		}
	}
	return true;
}

function getFieldName(checkField)
{
    var fieldName = '';
    fieldName = checkField.alias;
    if(!fieldName)
    {
        fieldName = checkField.name;
    }
    if (fieldName == 'cm-atujh-atujh' || fieldName == 'cm-dyjiiu-dyjiiu')
    {
        fieldName = "Email Address";
    }
    if (fieldName == 'cm-name') {
        fieldName = "Name";
    }
    if (fieldName == 'cm-fo-jjtdii') {
        fieldName = "Preferred Store";
    }
    return fieldName;
}
