var CURRENT = 0;
var FIELDS = 0;
var SUBMIT_CAPTION = '';
function stepTo(n) {
    FIELDS = 0; // Reset variable.
    if (document.forms['pageForm'] == null && document.forms['pageForm'] == undefined) {
	return;
    }
    var div = document.getElementsByTagName('div');
    var fields = document.forms['pageForm'].elements;
    var foundDivs = new Array();
    var haveStep = false;
    var button = document.getElementById("continue");

    for (var i = 0; i < fields.length; i++) {
	if (fields[i].id == 'continue') {
	    fields[i].setAttribute('type', 'button');
	    fields[i].onclick = function() {  validate(CURRENT + 1); };
	    continue;
	}
    }

    for (var i = 0; i < div.length; i++) {
	if (div[i].getAttribute('id') && div[i].getAttribute('id').toUpperCase().indexOf('STEP') > -1) {
	    foundDivs.push(div[i]);
	    div[i].style.display = 'none';
	    FIELDS++;
	}
	if (div[i].id == 'step' + n) {
	    div[i].style.display = 'block';
	    CURRENT = n;
	    haveStep = true;
	}
    }

    if (!haveStep) {
	for (var i = 0; i < foundDivs.length; i++) {
	    foundDivs[i].style.display = 'block';
	}
	document.forms['pageForm'].submit();
    }

    var anchors = document.getElementsByTagName('a');
    for (var i = 0; i != anchors.length; i++) {
	var a = anchors[i];
	var alabel = a.innerHTML.toUpperCase();
	if (alabel.indexOf('STEP ') > -1) { // Is a stepper anchor!
	    if (alabel.indexOf('STEP ' + CURRENT) > -1) { // Is the chosen stepper anchor!
		a.setAttribute('class', 'currentStep');
		if (navigator.appName == 'Microsoft Internet Explorer') {
		    a.setAttribute('className', 'currentStep');
		}
	    }
	    else { // Is a stepper anchor, but hasn't been chosen!
		a.removeAttribute('class');
	    }
	}
    }
    if (CURRENT == FIELDS) {
	button.innerHTML = "<img alt=\"\" src=\"/common/images/arrows-double-right.gif\" /> " + SUBMIT_CAPTION;
    }
    else {
	button.innerHTML = "<img alt=\"\" src=\"/common/images/arrows-double-right.gif\" /> Submit &amp; Continue";
    }
    if (CURRENT > 1) {
	document.getElementById('notice').style.display = 'none';
    }
    else {
	document.getElementById('notice').style.display = 'block';
    }
}

//PARAM test: item that require validation
//PARAM whitespace: include white space character
//example: isPhone(test);
function isAlpha(test, whitespace) {
	var reg = null;
	if (whitespace) {
		reg = /[a-zA-Z\s]/;
	} else {
		reg = /[a-zA-Z]/;
	}
	return reg.test(test);
}

//PARAM test: item that require validation
//PARAM whitespace: include white space character
//example: isPhone(test);
function isNum(test, whitespace) {
	var reg = null;
	if (whitespace) {
		reg = /[0-9\s]/;
	} else {
		reg = /[0-9]/;
	}
	return reg.test(test);
}

//PARAM test: item that require validation
//PARAM whitespace: include white space character
//example: isPhone(test);
function isAlphaNum(test, whitespace) {
	var reg = null;
	if (whitespace) {
		reg = /[a-zA-Z0-9\s]/;
	} else {
		reg = /[a-zA-Z0-9]/;
	}
	return reg.test(test);
}

//PARAM test: item that require validation
//example: isPhone(test);
function isEMail(test) {
	var reg = /^[^_]{1}[0-9a-zA-Z_]*@[0-9a-zA-Z\-_\.]*(\..{2,5})$/;
	return reg.test(test);
}

//PARAM test: item that require validation
//example: isPhone(test);
function isPhone(test) {
	var reg = /[0-9]{3}\-[0-9]{3}\-[0-9]{4}/;
	return reg.test(test);
}

function isDate(test) {
	var reg = /[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{4}/;
	return reg.test(test);
}

//receives array of items that require validation.
//PARAM alpha: takes an array of items that require alpha validation
//PARAM alphanum: takes an array of items that require alphanum validation
//PARAM num: takes an array of items that require num validation
//PARAM email: takes an array of items that require email validation
//PARAM phone: takes an array of items that require phone validation
//Example: validateFrom(new Array(document.getElementById('stuff')), new Array(document.getElementById('stuff')), 
//		   	new Array(document.getElementById('stuff')), new Array(document.getElementById('stuff')), 
//		   	new Array(document.getElementById('stuff')));
//if items are not valid, the background of the invalid items turn red.
function validateForm(alpha, alphanum, num, email, phone, date, multiple) {
	var returner = true;
	for (i = 0; i < alpha.length; ++i) {
		if (!isAlpha(document.getElementById(alpha[i]).value)) {
			document.getElementById(alpha[i]+"-label").style.color = "rgb(184,0,0)";
			returner = false;
		} else {
			document.getElementById(alpha[i]+"-label").style.color = "#04264B";			
		}
	}
	
	for (i = 0; i < alphanum.length; ++i) {
		if (!isAlphaNum(document.getElementById(alphanum[i]).value)) {
			document.getElementById(alphanum[i]+"-label").style.color = "rgb(184,0,0)";
			returner = false;
		} else {
			document.getElementById(alphanum[i]+"-label").style.color = "#04264B";			
		}
	}
	
	for (i = 0; i < num.length; ++i) {
		if (!isNum(document.getElementById(num[i]).value)) {
			document.getElementById(num[i]+"-label").style.color = "rgb(184,0,0)";
			returner = false;
		} else {
			document.getElementById(num[i]+"-label").style.color = "#04264B";			
		}
	}
	
	for (i = 0; i < email.length; ++i) {
		if (!isEMail(document.getElementById(email[i]).value)) {
			document.getElementById(email[i]+"-label").style.color = "rgb(184,0,0)";
			returner = false;
		} else {
			document.getElementById(email[i]+"-label").style.color = "#04264B";			
		}
	}
	
	for (i = 0; i < phone.length; ++i) {
		if (!isPhone(document.getElementById(phone[i]).value)) {
			document.getElementById(phone[i]+"-label").style.color = "rgb(184,0,0)";
			returner = false;
		} else {
			document.getElementById(phone[i]+"-label").style.color = "#04264B";			
		}
	}
	for (i = 0; i < date.length; ++i) {
		if (!isDate(document.getElementById(date[i]).value)) {
			document.getElementById(date[i]+"-label").style.color = "rgb(184,0,0)";
			returner = false;
		} else {
			document.getElementById(date[i]+"-label").style.color = "#04264B";			
		}
	}	

	for(i = 0; i < multiple.length; ++i) {		
		lstvalid = false;
		for (x = 0; x < 2; ++x) {
			if (document.getElementById(multiple[i] + "_" + x).checked == true) {		
				lstvalid = true;		
			}					
		}	
		if (lstvalid == true) {
			document.getElementById(multiple[i]+"-label").style.color = "#04264B";				
		} else {
			document.getElementById(multiple[i]+"-label").style.color = "rgb(184,0,0)";		
			returner = false;
		}					
	}
	
	return returner;
}
