function processForm(prevPage, nextPage) {
	var validInput = false;
	if(readCookie('validate')=='true'){
		validInput = true;
	}
	eraseCookie('validate');
	if(readCookie('doForm')=='process'){
		eraseCookie('doForm');
		if(validInput != true)
			alert('There was an error in the form information. Please fill out the form correctly.');
		else
			document.location.href = nextPage;
	}
	else if(readCookie('doForm')=='cancel'){
		eraseCookie('doForm');
		document.location.href = prevPage;
	}
}

function processLogin(){
	if(readCookie('doForm')=='process'){
		eraseCookie('doForm');
		var validInput = false;
		if(!true)
			alert('invalid input');
		else
			document.location.href = '/login/do/';
	}
}

function processForgotLogin(){
	var validInput = false;
	if(readCookie('doForm')=='process'){
		eraseCookie('doForm');	
		if(readCookie('validate') == 'true'){
			validInput = true;
		}
		eraseCookie('validate');
		if(!validInput) {
			alert('invalid input');
		} else {
			document.location.href = '/forgotlogin/do/';
		}
	}
}

var errorMsg = new Array();
errorMsg['blank'] = "*";
errorMsg['required'] = "required";
errorMsg['webUrl'] = "invalid URL";
errorMsg['url'] = "invalid URL";
errorMsg['description'] = "<= 60 characters";
errorMsg['street'] = "<= 32 characters";
errorMsg['pobox'] = "<= 10 characters";
errorMsg['city'] = "<= 26 characters";
errorMsg['zipcode'] = "= 5 digits";
errorMsg['phone'] = "ex: 555-555-5555";
errorMsg['phoneMain'] = "ex: 555-555-5555";
errorMsg['phoneMainExtension'] = "<=11 digits";
errorMsg['phoneAlt'] = "ex: 555-555-5555";
errorMsg['phoneAltExtension'] = "<=11 digits";
errorMsg['phoneAltTitle'] = "<= 26 characters";
errorMsg['contactFirstName'] = "<= 20 letters";
errorMsg['contactLastName'] = "<= 20 letters";
errorMsg['contactEmail'] = "invalid email";
errorMsg['emailMatch'] = "invalid email or does not match";
errorMsg['contactPhone'] = "ex: 555-555-5555";
errorMsg['name'] = "<= 30 characters";
errorMsg['title'] = "<= 100 characters";
errorMsg['content'] = "<= 1000 characters";
errorMsg['datePublish'] = "ex: 06/19/1978";
errorMsg['dateExpire'] = "ex: 06/19/1978";
errorMsg['password'] = "error1";
errorMsg['password_confirm'] = "error2";

function vErrorDisplay(fieldId,required,check){
	var errorCount = 0;
	var patternDefVal = new RegExp("^--.*--$");
	var curElem = document.getElementById(fieldId);
	var curElemValue = curElem.value;
	var checkDefVal = patternDefVal.test(curElemValue);
	//selection boxes
	if(checkDefVal){
			document.getElementById('errorMsg').style.display = "inline";
			document.getElementById('errorMsg').style.color = "#ff0000";
			document.getElementById('errorMsg').innerHTML = "<< please make a selection";
			errorCount = 1;
	} else {
		if((document.getElementById('errorMsg')) && (!checkDefVal)){
			document.getElementById('errorMsg').innerHTML = "";
		}
		//input fields
		if((curElemValue == "") || (curElemValue == null)){
			if(required){
				curElem.style.border = "1px solid #ff0000";
				curElem.style.backgroundColor = "#ffcccc";
				curElem.style.color = "#ff0000";
				curElem.value = errorMsg['required'];
				errorCount = 1;
			}
		}
		if(((curElemValue != "") || (curElemValue != null)) && (check)){
			curElem.style.border = "1px solid #cccccc";
			curElem.style.backgroundColor = "#ffffff";
			curElem.style.color = "#000000";
			curElem.style.display = "inline";
		}
		if(((curElemValue != "") || (curElemValue != null)) && (check == false) && (required)){
			curElem.style.border = "1px solid #ff0000";
			curElem.style.backgroundColor = "#ffcccc";
			curElem.style.color = "#ff0000";
			curElem.value = errorMsg[fieldId];
			errorCount = 1;
		}
	}
	return errorCount;
}

function vClear(fieldId){
	if(document.getElementById(fieldId)){
		var fieldValue = document.getElementById(fieldId).value;
	}
	if((fieldValue == errorMsg[fieldId]) || (fieldValue == "required")){
		document.getElementById(fieldId).value = "";
	}
}

function vPassword(fieldId,required){
	var pattern = new RegExp ("\\w{8,}");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = pattern.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	return vErrorDisplay(fieldId,required,check);
}

function vPasswordMatch(fieldId,required){
	var password1 = document.getElementById('password').value;
	var password2 = document.getElementById(fieldId).value;
	var pattern = new RegExp ("^\\w{8,}");
	var check = pattern.test(document.getElementById(fieldId).value);
	var checked = false;
	if(check){
		if(password1 == password2){
			checked = true;
		}
	}
	check = checked;
	return vErrorDisplay(fieldId,required,check);
}

function vEmail(fieldId,required){
	var pattern = new RegExp ("^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = pattern.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	return vErrorDisplay(fieldId,required,check);
}

function vEmailMatch(fieldId,required){
	var email1 = document.getElementById('contactEmail').value;
	var email2 = document.getElementById(fieldId).value;
	var pattern = new RegExp ("^\\w+([\\.-]?\\w+)*@\\w+([\\.-]?\\w+)*(\\.\\w{2,3})+$");
	var check = pattern.test(document.getElementById(fieldId).value);
	var checked = false;
	if(check){
		if(email1 == email2){
			checked = true;
		}
	}
	check = checked;
	return vErrorDisplay(fieldId,required,check);
}

function vWebURL(fieldId,required){
	var pattern = new RegExp("^([\\w-]+\\.)*([\\w-]+\\.\\w{2,4})(\\.\\w{2,3})*(\\/[1](\\w+)*)*(\\.([\\w-])+)*");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = pattern.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	return vErrorDisplay(fieldId,required,check);
}

function vWebURL2(fieldId,required){
	var pattern = new RegExp("^([\\w-]+\\.)*([\\w-]+\\.\\w{2,4})(\\.\\w{2,3})*(\\/[1](\\w+)*)*(\\.([\\w-])+)*");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = pattern.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	if(document.getElementById('file_name').value){
		return vErrorDisplay(fieldId,required,check);
	}
}

function vText(fieldId,required,fieldLength){
	var pattern = new RegExp ("^.{0," + fieldLength + "}(\\n\\r)*");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = pattern.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	return vErrorDisplay(fieldId,required,check);
}

function vText2(fieldId,required,fieldLength){
	var pattern = new RegExp ("^.{0," + fieldLength + "}(\\n\\r)*");
	var pattern2 = new RegExp ("(_|/)");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = !pattern2.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	return vErrorDisplay(fieldId,required,check);
}

function vPoBox(fieldId,required,fieldLength){
	var pattern = new RegExp ("^.{0," + fieldLength + "}$");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = pattern.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	return vErrorDisplay(fieldId,required,check);
}

function vZipCode(fieldId,required,fieldLength){
	var pattern = new RegExp ("^\\d{" + fieldLength + "}$");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = pattern.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	return vErrorDisplay(fieldId,required,check);
}

function vPhone(fieldId,required){
	var pattern = new RegExp ("^\\d{3}[-]\\d{3}[-]\\d{4}$");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = pattern.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	return vErrorDisplay(fieldId,required,check);
}

function vPhoneExtension(fieldId,required,fieldLength){
	var pattern = new RegExp ("^\\d{0," + fieldLength + "}$");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = pattern.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	return vErrorDisplay(fieldId,required,check);
}

function vDate(fieldId,required,fieldLength){
	var pattern = new RegExp ("^\\d{2}/\\d{2}/\\d{4}$");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = pattern.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	return vErrorDisplay(fieldId,required,check);
}

function vEventSort(fieldId,required,fieldLength){
	var pattern = new RegExp ("^\\d{1,10}$");
	if((pattern.test(document.getElementById(fieldId).value)) && (document.getElementById(fieldId).value) != errorMsg[fieldId]){
		var check = pattern.test(document.getElementById(fieldId).value);
	} else {
		var check = false;
	}
	return vErrorDisplay(fieldId,required,check,true);
}

function forgotLogin(errorCountTally){
	var errorCountTally = 0;
	errorCountTally += vEmail('contactEmail',1,60);
	errorCountTally += vEmailMatch('emailMatch',1,60);
	if(errorCountTally == 0){
		createCookie('validate', 'true', 1);
	} else {
		createCookie('validate', 'false', 1);
	}
	createCookie('doForm', 'process', 1);
}

function formValidation(errorCountTally){
	var pattern = new RegExp("^frm_.*$");
	var formCount = document.getElementsByTagName("form").length;
	for(var i=0; i<formCount; i++){
		var formNameTmp = document.forms[i].getAttribute('id');
		if(pattern.test(formNameTmp)){
			var formName = formNameTmp;
		}
	}
	if(document.forms[formName]){
		var elementCount = document.forms[formName].elements.length;
	}
	var element = new Array();
	var errorCountTally = 0;
	for(var i=0; i<elementCount; i++){
		element[i] = document.forms[formName].elements[i];
		//is required?
		var patternReq = new RegExp("^.*id,1.*$");
		var reqFlag = (new String(element[i].getAttribute('onBlur'))).match("id,1");
		if((reqFlag == "id,1") || (element[i].getAttribute('required') == "true")){
			elementReq = 1;
		} else if(!(element[i].getAttribute('onBlur')) && !(element[i].getAttribute('required'))){
			elementReq = null;
		} else {
			elementReq = 0;
		}
		//field length
		if(element[i].getAttribute('onBlur')){
			var parenRmv = (new String(element[i].getAttribute('onBlur'))).split(",");
			if(parenRmv[2]){
				var fieldLength = parenRmv[2].match(".*[^(\);)]");
			}
		}
		var patternFunc = new RegExp("v[^(\()]*");
		var checkElem = (new String(element[i].getAttribute('onBlur'))).match(patternFunc);
		var elemId = (element[i].id.substring(0, 1).toUpperCase()) + (element[i].id.substr(1));
		if(checkElem){
			if(ie){
				var execString = checkElem + "\(\'" + element[i].id + "\'," + elementReq + "," + fieldLength;
			} else {
				var execString = checkElem + "\(\'" + element[i].id + "\'," + elementReq + "," + fieldLength + "\);";
			}
			if(checkElem != 'vWebURL2'){
				errorCountTally += eval(execString);
				vClear(element[i].id);
			}
		}
	}
//	alert('error count = ' + errorCountTally + " / " + execString);
	if(!document.getElementById('frm_forgot_login')){
		if(errorCountTally == 0){
			createCookie('validate', 'true', 1);
		} else {
			createCookie('validate', 'false', 1);
		}
		createCookie('doForm', 'process', 1);
	} else {
		if(errorCountTally == 0){
			createCookie('validate', 'true', 1);
		} else {
			createCookie('validate', 'false', 1);
		}
		createCookie('doForm', 'process', 1);
		processForgotLogin();
	}
}

function formCheckBoxValidation(){
	var pattern = new RegExp("^frm_.*$");
	var formCount = document.getElementsByTagName("form").length;
	for(var i=1; i<formCount; i++){
		var formNameTmp = (new String(document.forms[i].getAttribute('name')));
		if(pattern.test(formNameTmp)){
			var formName = formNameTmp;
		}
	}
	var elementCount = document.forms[formName].elements.length;
	var audCount = 0;
	var topCount = 0;
	var eventCount = 0;
	var patternAud = new RegExp("^category_aud_.*$");
	var patternTop = new RegExp("^category_top_.*$");
	var patternEvent = new RegExp("^event_.*$");
	var eventFlag= false;
	for(i=0; i<elementCount; i++){
		var element = document.forms[formName].elements[i];
		if((patternAud.test(element.name)) && (element.checked == true)){
			audCount += 1;
		}
		else if((patternTop.test(element.name)) && (element.checked == true)){
			topCount +=1;
		}
		else if(patternEvent.test(element.name)){
			eventFlag = true;
			if(element.checked == true){
				eventCount +=1;
			}
		}
	}
	if(document.getElementById('formName').value){
		var whichForm = document.getElementById('formName').value;
	}
	if(eventFlag == true){
		if((audCount > 0) && (topCount > 0) && (eventCount > 0)){
			createCookie('validate', 'true', 1);
		} else if((audCount > 0) || (topCount > 0) && (whichForm == 'news')){
			createCookie('validate', 'true', 1);
		} else {
			createCookie('validate', 'false', 1);
		}
	} else {
		if((audCount > 0) && (topCount > 0)){
			createCookie('validate', 'true', 1);
		} else if((audCount > 0) || (topCount > 0) && (whichForm = 'hotlines')){
			createCookie('validate', 'true', 1);
		} else {
			createCookie('validate', 'false', 1);
		}
		
	}
	createCookie('doForm', 'process', 1);
}

function formEmailValidation(){
	var errorCount = 0;
	errorCount += vEmail('contactEmail',1);
	vClear('contactEmail');
	errorCount += vEmailMatch('emailMatch',1);
	vClear('emailMatch');
	var pattern = new RegExp("^frm_.*$");
	var formCount = document.getElementsByTagName("form").length;
	for(var i=1; i<formCount; i++){
		var formNameTmp = (new String(document.forms[i].getAttribute('id')));
		if(pattern.test(formNameTmp)){
			formName = formNameTmp;
		}
	}
	var topSubCount = 0;
	var topUnsubCount = 0;
	var elementCount = document.forms[formName].elements.length;
	var patternSub = new RegExp("^frm_subscribe_.*$");
	var emailSub = new Array();
	var emailUnsub = new Array();
	for(i=0; i<elementCount; i++){
		var element = document.forms[formName].elements[i];
		if((patternSub.test(element.id)) && (element.checked == true)){
			if(element.value == "true"){
				emailSub[topSubCount] = element.getAttribute('list') + "-request@mc-cares.org";
				topSubCount += 1;
			} else {
				if(element.value == "false"){
					emailUnsub[topUnsubCount] = element.getAttribute('list') + "-request@mc-cares.org";
					topUnsubCount += 1;
				}
			}
		}
	}
	if(((errorCount == 0) && (topSubCount > 0)) || ((errorCount == 0) && (topUnsubCount > 0))){
		createCookie('validate', 'true', 1);
		submitEmail(formName,emailSub,emailUnsub);
	} else {
		createCookie('validate', 'false', 1);
	}
	createCookie('doForm', 'process', 1);
}

function submitEmail(formName,emailSub,emailUnsub){
	var subLength = emailSub.length;
	var unsubLength = emailUnsub.length;
	var emailSubList = '';
	var emailUnsubList = '';
	for(i=0; i<=subLength; i++){
		if(emailSub[i]){
			var subListName = emailSub[i].replace(/ /g, '_');
			subListName = subListName.replace(/&/g, 'and');
			emailSubList += subListName + ',';
		}
	}
	for(i=0; i<=unsubLength; i++){
		if(emailUnsub[i]){
			var unsubListName = emailUnsub[i].replace(/ /g, '_');
			unsubListName = unsubListName.replace(/&/g, 'and');
			emailUnsubList += unsubListName + ',';
		}
	}
	document.getElementById('subscribe_list').value = emailSubList;
	document.getElementById('unsubscribe_list').value = emailUnsubList;
}

function submitToList(){
	if(document.getElementById(frameName)){
		document.body.removeChild(document.getElementById(frameName));
	}
	var submitIframe = document.createElement('Iframe');
	submitIframe.src = "mcdrt/app/view/template/blank.html";
	submitIframe.name = frameName;
	submitIframe.id = frameName;
	submitIframe.style.position = "absolute";
	submitIframe.style.zIndex = 50;
	submitIframe.style.top = 1;
	submitIframe.style.left = 1;
	submitIframe.style.width = "600px";
	submitIframe.style.height = "100px";
	submitIframe.style.border = "1px";
	submitIframe.scrolling = "no";
	document.body.appendChild(submitIframe);
	
	//ie bug fix
	if(self.frames[frameName].name != document.getElementById(frameName).name) {
		self.frames[frameName].name = frameName;
	}
	var subLength = emailSub.length;
	var unsubLength = emailUnsub.length;
	var emailSubList = '';
	var emailUnsubList = '';
	for(i=0; i<=subLength; i++){
		if(emailSub[i]){
			emailSubList += emailSub[i] + ',';
		}
	}
	for(i=0; i<=unsubLength; i++){
		if(emailUnsub[i]){
			emailUnsubList += emailUnsub[i] + ',';
		}
	}
	
	document.getElementById('subscribe_list').value = emailSubList;
	document.getElementById('unsubscribe_list').value = emailUnsubList;
//	alert(document.getElementById('subscribe_list').value);
//	alert(document.getElementById('unsubscribe_list').value);
//	document.forms[formName].action= "mcdrt/app/view/phpinclude/email.php";
	document.forms[formName].target= frameName;
//	document.forms[formName].value = inputName;
//	document.forms[formName].submit();
}

function createCookie(name,value,days) {
	if (days) {
		var date = new Date();
		date.setTime(date.getTime()+(days*24*60*60*1000));
		var expires = "; expires="+date.toGMTString();
	}
	else var expires = "";
	document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(name) {
	var nameEQ = name + "=";
	var ca = document.cookie.split(';');
	for(var i=0;i < ca.length;i++) {
		var c = ca[i];
		while (c.charAt(0)==' ') c = c.substring(1,c.length);
		if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length,c.length);
	}
	return null;
}

function eraseCookie(name) {
	createCookie(name,"",-1);
}