
schedule("window", initForm);


String.prototype.validEmail = function() {
	if (this.match(/^[\w\.\-]+@([\w\-]+\.)+[a-zA-Z]+$/))
	{
		return true;
	}
	
	return false;
}
function isAlien(a) {
   return isObject(a) && typeof a.constructor != 'function';
}
function isArray(a) {
    return isObject(a) && a.constructor == Array;
}
function isBoolean(a) {
    return typeof a == 'boolean';
}
function isEmpty(o) {
    var i, v;
    if (isObject(o)) {
        for (i in o) {
            v = o[i];
            if (isUndefined(v) && isFunction(v)) {
                return false;
            }
        }
    }
    return true;
}
function isFunction(a) {
    return typeof a == 'function';
}
function isNull(a) {
    return typeof a == 'object' && !a;
}
function isNumber(a) {
	return typeof a == 'number' && isFinite(a);
}
function isObject(a) {
    return (a && typeof a == 'object') || isFunction(a);
}
function isString(a) {
    return typeof a == 'string';
}
function isUndefined(a) {
    return typeof a == 'undefined';
} 
function valueNaN(i) {
	return !(parseInt(i) > -1);
}
function validEmailFormat(txtValue) {
	var re = /^(([^<>()[\]\\.,;:\s@\"]+(\.[^<>()[\]\\.,;:\s@\"]+)*)|(\".+\"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/
	if (! txtValue.match(re)) {
		return (false);
	}
	return (true);
}
function validpostcodeFormat(txtValue) {
	var re = /^([0-9]{1,4})$/
	if (!txtValue.match(re)) {
		return (false);
	}
	return (true);
}

function trim(value){
	if(value.length < 1){
		return"";
	}
	value = rTrim(value);
	value = lTrim(value);
	if(value==""){
		return "";
	} else {
		return value;
	}
} //End Function

function rTrim(value){
	var w_space = String.fromCharCode(32);
	var v_length = value.length;
	var strTemp = "";
	if(v_length < 0){
		return "";
	}
	var iTemp = v_length -1;
	
	while(iTemp > -1){
		if(value.charAt(iTemp) == w_space){
		} else {
			strTemp = value.substring(0,iTemp +1);
			break;
		}
		iTemp = iTemp-1;	
	} //End While
	return strTemp;

} //End Function

function lTrim(value){
	var w_space = String.fromCharCode(32);
	if(v_length < 1){
		return"";
	}
	var v_length = value.length;
	var strTemp = "";
	
	var iTemp = 0;
	
	while(iTemp < v_length){
		if(value.charAt(iTemp) == w_space){
		} else {
			strTemp = value.substring(iTemp,v_length);
			break;
		}
		iTemp = iTemp + 1;
	} //End While
	return strTemp;
} //End Function


function initForm()
{
	if (document.getElementById("contactform"))
	{
		var downloadForm = document.getElementById("contactform");	
		downloadForm.onsubmit = checkForm;
	}

};

function checkForm()
{
	clearRequired();
	if (fieldValidEmail(document.getElementById("email")) == false) return false;
	
	return true;
};

function clearRequired()
{
	attentionItems = getElementsByClassName(document.getElementById("contactform"), 'span', 'attention');
	for(i=0;i<attentionItems.length;i++)
	{
		attentionItems[i].className = 'attention hide';
	}
};

function fieldNotEmpty(fieldElement)
{
	if (trim(fieldElement.value).length == 0)
	{
		var title = getElementsByClassName(fieldElement.parentNode, 'span', 'label-text')[0].firstChild.nodeValue;
		if (title == "") alert(fieldElement.parentNode.getElementsByTagName("label")[0].childNode[1].value);
		
		showError = getElementsByClassName(fieldElement.parentNode, 'span', 'attention hide')[0].className = "attention";
		
		alert("Please Enter your " + title);
		fieldElement.focus();
		return false;
	}
	
	return true;
};
function somethingNotSelected(wrapperElement, inputType)
{
	var lastElement;
	var somethingChecked = false;
	var inputs = wrapperElement.getElementsByTagName("input");
	for(i=0; i<inputs.length; i++)
	{ 
		lastElement = inputs[i];
		if(inputs[i].checked)
		{
			somethingChecked = true;
		}
	}
	if (!somethingChecked)
	{
		if(wrapperElement.getElementsByTagName("input")[0].type == inputType) alert("Please select at least one option.");
		else alert("Please choose a Position Type.");
		
		showError = getElementsByClassName(wrapperElement.parentNode, 'span', 'attention hide')[0].className = "attention";
		lastElement.focus();
		return false;
	}
	
	return true;
};
function fieldValidPostcode(fieldElement)
{
	if (trim(fieldElement.value).length == 4){
		if (!validpostcodeFormat(fieldElement.value))
		{
			alert("Please Enter a 4 digit Postcode");
			showError = getElementsByClassName(fieldElement.parentNode, 'span', 'attention hide')[0].className = "attention";
			fieldElement.focus();
			return false;
		}
	}else if (trim(fieldElement.value).length > 0){
		alert("Please Enter a 4 digit Postcode");
		showError = getElementsByClassName(fieldElement.parentNode, 'span', 'attention hide')[0].className = "attention";
		fieldElement.focus();
		return false;
	}
};
function fieldValidEmail(fieldElement)
{
	if(fieldNotEmpty(fieldElement)) {
		if (!validEmailFormat(fieldElement.value))
		{
			alert("Please Enter a Valid Email Address");
			showError = getElementsByClassName(fieldElement.parentNode, 'span', 'attention hide')[0].className = "attention";
			fieldElement.focus();
			return false;
		}
	}
	else
	{
		return false;
	}
		
	return true;
};

function quantityAdded(fieldElement)
{
	var textFields = fieldElement.getElementsByTagName('input');
	
	for (var i=0; i<textFields.length; i++)
	{
		if (trim(textFields[i].value) == 0)
		{
			checker = false;
		}
		else
		{
			if (!validpostcodeFormat(textFields[i].value))
			{
				alert("Please Enter a Valid Quantity.");
				showError = getElementsByClassName(textFields[i].parentNode, 'span', 'attention hide')[0].className = "attention";
				fieldElement.focus();
				return false;
			}
			else
			{
				checker = true;
				break;
			}
		}
	}
	
	if (checker == true){
		return true;
	}else{
		alert("Please Enter a Quantity Amount.");
		showError = document.getElementById("quantity-attention").className = "attention";
		return false;
	}
};



function validatepostandmeail(fieldElement1, fieldElement2)
{
	if (trim(fieldElement1.value).length == 0  && trim(fieldElement2.value).length == 0)
		{
			alert("Please Enter either a Phone Number or and Email Address");
			showError = getElementsByClassName(fieldElement1.parentNode, 'span', 'attention hide')[0].className = "attention";			
			showError = getElementsByClassName(fieldElement2.parentNode, 'span', 'attention hide')[0].className = "attention";
			fieldElement1.focus();
			return false;
		}
	else if (trim(fieldElement1.value).length > 0)
		{
			if (fieldValidEmail(fieldElement1) == false) return false;
		}
		
	return true;
};

