function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}// JavaScript Document

function validateEmail(email) {
	//checks for email that contains any character/number/. followed by @
	//followed by character/number/. and should end with .xx or .xxx
	var emailExpr = /^(\S+@)[A-Za-z0-9\-^\.]+((\.com)|(\.biz)|(\.edu)|(\.gov)|(\.mil)|(\.net)|(\.org)|(\.int)|(\.arpa)|(\.aero)|(\.name)|(\.coop)|(\.info)|(\.pro)|(\.museum)|(\.[A-Za-z]{2}))$/;
	
	//var emailExpr = /(^(\w)(\w|\d|\.)*@(\w|\d|\.)*(\w)(\.(\w){2,3})$)/;
	if (email.value.length > 0) 
		if (!email.value.match(emailExpr)) {
			/*alert("Please enter a valid email in the format abc@xyz.com");
			email.focus();
			return false;*/
			return 'Enter a valid email in the format abc@xyz.com';
		}
	return '';
}

function validateZip(zip) {
	//checks for zip code - 12345-6789
	var zipExpr = /(^((\d){5})$|^((\d){5}-(\d){4})$)/;
	if (zip.value.length) {
		if (!zip.value.match(zipExpr)) {
			/*alert("Please enter a valid US Zip Code.");
			zip.focus();
			return false;*/
			return 'Enter a valid US Zip Code.';
		}
	}
	return '';
}

function validatePosNumber(field, msg) {
	//checks for a number greater than zero
	if(isNaN(field.value) || (field.value < 0)) {
		/*alert("Please enter a valid " + msg + ".");
		field.focus();
		return false;*/
		return "Please enter a valid " + msg + " (without commas or dollar signs).";
	}
	return '';
}

function validateUSPhone(phone) {
	var phExpr1 = /^\d{3}\-\d{3}\-\d{4}\s*$/g;
	var phExpr2 = /^\(\d{3}\)\d{3}\-\d{4}\s*$/g;
	//var phExpr1 = /^\s*\d{3}([ \-\/\.])?\d{3}([ \-\/\.])?\d{4}\s*$/g;
	//var phExpr2 = /^\s*\(\d{3}\)([ \-\/\.])?\d{3}([ \-\/\.])?\d{4}\s*$/g;
	if (!phone.value.match(phExpr1) && !phone.value.match(phExpr2)) {
		/*alert("Please enter a valid US phone number in the format 123-456-7890 or (123)456-7890.");
		phone.focus();
		return false;*/
		return 'Enter a valid US phone number in the format 123-456-7890 or (123)456-7890.';
	}
	else
		return '';
}

function validateDay(day){
	Err = validatePosNumber(day, 'number');
	if (Err == ''){
		num = parseInt(day.value);
		if (isNaN(num))
			num = 0;
		if (num < 1 || num > 31)
			  Err = 'Enter a day of the month between 1 and 31';
	}
	return Err;
}
function validateMonth(month){
Err = validatePosNumber(month, 'number');
	if (Err == ''){
		num = parseInt(month.value);
		if (isNaN(num))
			num = 0;
		if (num < 1 || num > 12)
		Err = 'Enter a month between 1 and 12';
	}
	return Err;
}

function validateDate(dateFld) {
	var dateExpr = /^(\d){1,2}\/(\d){1,2}\/(\d){4}$/;
	if (!dateFld.value.match(dateExpr)) {
		/*alert("Please enter a valid date in the format mm/dd/yyyy");
		dateFld.focus();
		return false;*/
		return 'Enter a valid date in the format mm/dd/yyyy.';
	}
	else
	{
		//check date
		dArray = dateFld.value.split('/');
		dteDate=new Date();
		dteDate.setFullYear(dArray[2], dArray[0]-1, dArray[1]);
		if(!((dArray[1]==dteDate.getDate()) && ((dArray[0]-1)==dteDate.getMonth()) && (dArray[2]==dteDate.getFullYear())))
		{
			/*alert("Please enter a valid date.");
			dateFld.focus();
			return false;*/
			return 'Enter a valid date.';
		}
	}
	return '';
}
//canSubmit = false;
function ValidateByID(el, kind){
	element = document.getElementById(el);
	validateThis = '';
	switch (kind){
		case 'date':{
			validateThis = validateDate(element);
			break;
		}
		case 'money':{
			if (element)
				validateThis = validatePosNumber(element, 'dollar amount');
			break;
		}
		case 'integer':{
			if (element)
				validateThis = validatePosNumber(element, 'number');
			break;
		}
		case 'day':{
			if (element)
				validateThis = validateDay(element);
			break;
		}
		case 'month':{
			if (element)
				validateThis = validateMonth(element);
			break;
		}
		case 'year':{
		
			break;
		}
		case 'zip':{
			if (document.getElementById('noValidate_'+el)){
				if (document.getElementById('noValidate_'+el).checked == false){
					validateThis = validateZip(element);
				}
				else{
					document.getElementById('validation_'+el).innerHTML = '';
					document.getElementById('validation_'+el).style.display = 'none';			
				}
			}
			break;
		}
		case 'phone':{
			if (document.getElementById('noValidate_'+el)){
				if (document.getElementById('noValidate_'+el).checked == false){
					validateThis = validateUSPhone(element);
				}
				else{
					document.getElementById('validation_'+el).innerHTML = '';
					document.getElementById('validation_'+el).style.display = 'none';			
				}
			}
			break;
		}
		case 'email':{	
			if (element)		
				validateThis = validateEmail(element);
			break;
		}
		default:{
		}
	}
	if (validateThis != ''){
		if (document.getElementById('noValidate_'+el)){
			document.getElementById('validation_'+el).innerHTML = validateThis;
			document.getElementById('validation_'+el).style.display = 'block';
		}
	}
	else{
		if (document.getElementById('noValidate_'+el)){
			document.getElementById('validation_'+el).innerHTML = validateThis;
			document.getElementById('validation_'+el).style.display = 'none';
		}
	}
	
	if (element.value == ''){
		if (document.getElementById('noValidate_'+el)){
			document.getElementById('validation_'+el).innerHTML = validateThis;
			document.getElementById('validation_'+el).style.display = 'none';
		}
	}
}

function returnCurrency(subtotal){
	subtotal = subtotal.replace(/\$/g, "");
	subtotal = subtotal.replace(/,/g, "");	
	subtotal = parseFloat(subtotal, 10);
	if ((subtotal == '') ||(isNaN(subtotal))){
		subtotal = 0.00;
	}
	subtotal = subtotal + 0.005;
	subtintonly = Math.floor(subtotal);
	subtfloatpart = subtotal-subtintonly;
	subtfloatpart = subtfloatpart + "0.00";
	subtsec = subtfloatpart.indexOf(".");
	subtotal = subtintonly+subtfloatpart.substring(subtsec, subtsec+3);
	return subtotal;
}

function ShowForm(NameOfForm, typeToHide){
	if (typeToHide != '')
		HideForm(typeToHide);
	if (NameOfForm != 'selectMe'){
	var el = document.getElementById(NameOfForm);
		el.style.display = 'block';
		//alert ('should have shown '+NameOfForm);
	}
}

function HideEl(NameOfEl){

	var el = document.getElementById(NameOfEl);
	el.style.display = 'none';
}
function ShowEl(NameOfEl){

var el = document.getElementById(NameOfEl);
el.style.display = 'block';
var bodyWidth = document.body.clientWidth;
var bodyHeight = document.body.clientHeight;
el.style.width = bodyWidth+ 'px';
el.style.height = bodyHeight+ 'px';
}

function HideForm(typeToHide){
	var els = document.getElementsByTagName('div');
	var i;
	for (i = 0; i < els.length; i++){
		if (els[i].className == typeToHide){
		els[i].style.display = 'none';
		}
	}
}
function gotoPage(currForm, startRow)
	{
		//alert(currForm.action);
		//alert(startRow);
		currForm.startRow.value = startRow;
		currForm.submit();
	}
//Standard AJAX request object
function createRequestObject() {
    var ro;
    var browser = navigator.appName;
    if(browser == "Microsoft Internet Explorer"){
        ro = new ActiveXObject("Microsoft.XMLHTTP");
    }else{
        ro = new XMLHttpRequest();
    }
    return ro;
}
//Function to pull get data from the ajax script.
function pullData(url, requestor, ioaction, readitem, opt) {
    if (busy == false) {
		rand=Math.random();
		busy = true;
		fullURL = url+'?ioaction='+ioaction+'&requestor='+requestor+'&readitem='+readitem+opt+'&rand='+rand;
		//alert (fullURL);
		http.open('get', fullURL);
		http.onreadystatechange = handleResponse;
		http.send(null);
    }
    else {
        window.setTimeout("pullData('"+ url +"', '" + requestor + "', '" + ioaction + "', '" + readitem + "', '" +opt + "')", 20);
    }
}
function postData(url, requestor, ioaction, readitem, postdata) {
    if (busy == false) {
		busy = true;
		http.open('post', url+'?ioaction='+ioaction+'&requestor='+requestor+'&readitem='+readitem);
		http.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
		http.send(postdata);
		http.onreadystatechange = handleResponse;
    }
    else {
        window.setTimeout("postData('"+ url +"', '" + requestor + "', '" + ioaction + "', '" +postdata + "')", 20);
    }
}
function handleResponse() {
    if(http.readyState == 4){
        var response = http.responseText;
		var update = new Array();
        if(response.indexOf('|~~|' != -1)) {
			try {
				update = response.split('|~~|');
				document.getElementById(update[0]).innerHTML = update[1];
			}
			catch (e) {
				try{
					var wrappingDiv = document.createElement('div');
					wrappingDiv.innerHTML = update[1];
					document.getElementById(update[0]).appendChild(wrappingDiv);
				}
				catch (e) {
					document.getElementById('error').innerHTML = 'There was an error with your request. (writeback error).<div class="bold_black">'+response+'</div>';
				}
			}
		}
		else{
			document.getElementById('error').innerHTML = 'There was an error with your request. (improper write-to error).'+response;
		}
	busy = false;

    }
}
function ValidateForm(){
	return true;
}
var http = createRequestObject();
var breaker = 0;
var submitted = false;

var busy = false;