

/* This function call is specific to EW */
tii_callFunctionOnWindowLoad (function () {
		var submittedForm = document.getElementById('subform');
		if (!submittedForm) {
			submittedForm = document.getElementById ('servicesform');
		}
		if (submittedForm) {
			var submittedFormValidation = new tii_ValidatedForm (submittedForm);
		}
/*	
		var cancelAndClose = document.getElementById ('cancelandclose');
		if (cancelAndClose) {
			function cancelAndCloseWindow (event) {
				if ((event.type == 'keydown' || event.type == 'keypress') && event.keyCode != 13) {
					return false;
				}
				window.close ();
			}
			tii_addEventHandler (cancelAndClose, 'click', cancelAndCloseWindow, false);
			var keyevent = ew_issafari || ew_isie ? 'keydown' : 'keypress';
			tii_addEventHandler (cancelAndClose, keyevent, cancelAndCloseWindow, false);
		} 
*/
	});

/* Override default declaration with this one */
tii_ValidatedForm.prototype.printErrors=function () {
	var ul=this.invalid [0].node.parentNode;
	tii_dom_removeWhitespaceTextNodes (ul);
	this.invalid [0].element.focus ();
	if (this.msg != null) {
		ul.parentNode.parentNode.parentNode.removeChild (this.msg);
	}
	this.msg=document.createElement ("div");
	this.msg.className="formerror";
	ul.parentNode.parentNode.parentNode.insertBefore (this.msg, ul.parentNode.parentNode);
	var message="WE'RE SORRY, we need you to correct or provide more information.  Please see each marked section below and resubmit.";
	this.msg.innerHTML = message;

	var ulChildren = ul.childNodes;
	for (var k = 0; k < ulChildren.length; k++) {
		var ulChild = ulChildren.item (k);
		if (ulChild.firstChild.className == 'formerror') {
			ul.removeChild (ulChild);
			k--;
		}
	}

	for (var j = 0; j < ul.childNodes.length; j++) {
		var ulChild = ul.childNodes.item (j);
		var label = (ulChild.className.indexOf('agree') > -1) ? ulChild.firstChild.nextSibling : ulChild.firstChild;
		var compareId = ew_isie ? label.getAttribute('htmlFor') : label.getAttribute('for');
		for (var i = 0; i < this.invalid.length; i++) {
			var item = this.invalid [i];
			if (compareId == item.element.id) {
				var previousSib = ulChild.previousSibling;
				if (previousSib == null || previousSib.firstChild.className != 'formerror') {
					var errorLi = document.createElement ('li');
					errorLi.innerHTML = '<div class="formerror">' + item.message + '</div>';
					ul.insertBefore (errorLi, ulChild);
				}
			}
		}
	}
}

/* Override the default declaration */
tii_ValidatedItem.prototype.updateCharLeft=function(e){
	if(this.updating||this.max==Number.POSITIVE_INFINITY)return;
	this.updating=true;
	var curr=this.max-this.element.value.length;
	if(curr<0) {
		this.element.value=this.element.value.substring(0,this.max);
		this.element.scrollTop=this.element.scrollHeight;
		curr=0;
	}
	if(this.note!=null&&this.last!=curr){
		this.note.firstChild.data = curr + ' Characters';
		this.last=curr;
	}
	this.updating=false;
}

/* Customized */
function isValidEmail(str) {
	var filter  = /^([a-zA-Z0-9_.-])+@(([a-zA-Z0-9-])+.)+([a-zA-Z0-9]{2,4})$/;
	return (filter.test(str));
}
function tii_validateEmail(){
	if(!this.validateRequired()) {
		return false;
	}
	var emails=this.value.split(",");
	pluralObject = (this.max==1 ? "email" : "emails");
	if(emails.length>this.max){
		this.message="There is a limit of "+this.max+" "+pluralObject+" for this field";
		return false;
	}
	for(var i=0;i<emails.length;i++){
		var email=emails[i];
		if(!isValidEmail(email)){
			this.message=this.type.errorMsg;
			return false;
		}
	}
	return true;
}

/* Customized */
function tii_validateURL(){
	if(!this.validateRequired())
		return false;
	if (!this.required && this.value == '')	{
		return true;
	}
	if(this.value!=""){
		var split1=this.value.split("://");
		if(split1.length!=2||split1[1].split(".").length<2){
			this.message=this.type.errorMsg;
			return false;
		}
	}
	return true;
}

function validateSubform(f) {
	
	var error1 = "";
	var error2 = "";
	
	if (!isValidEmail(f.email.value)) {
		error1 = "Please enter a valid email.<br /><br />"
		document.getElementById("emailError").innerHTML = error1;
		document.getElementById("emailError").className = "errormsg";
	} else {
		document.getElementById("emailError").innerHTML = "";
		document.getElementById("emailError").className = "";
	}

	var subBoxes = f.sub;
	var count = 0;
	for (var i=0; i < subBoxes.length; i++) {
		if (subBoxes[i].checked) {
			count++;
		}
	}
	
	if (count == 0) {
		error2 = "Please select at least one newsletter or alert.<br /><br />"
		document.getElementById("subsError").innerHTML = error2;
		document.getElementById("subsError").className = "errormsg";
	}
	else {
		document.getElementById("subsError").innerHTML = "";
		document.getElementById("subsError").className = "";
	}
	var result = (error1 == "" && error2 == "");
	
	return result
}


function validateNewletterEmail(f, urlPref) {
	
	var subBoxes = f.sub;
	var urlId = '';

	for (var i = 1; i <= 5; i++ ) {
		if ( i < 10 ) {
			var id = 'choice0' + i;
		} else {
			var id = 'choice' + i;
		}
		if (document.getElementById(id).checked){
			if ( urlId.length > 0 ) urlId = urlId + '-'; 
			urlId = urlId + document.getElementById(id).value;
		}
	}
	
	var formValue = urlPref + '/ew/inside/newsletter/thankyou/0,,INSERT_HERE,00.html';
	var re = /INSERT_HERE/;
	formValue = formValue.replace( re, urlId );
	document.getElementById('re').value = formValue;
	
	return validateSubform(f)
}


function validateOptInNewletterEmail(f, urlPref) {
	var urlId = f.fsub.value;
	var formValue = urlPref + '/ew/inside/newsletter/thankyou/0,,INSERT_HERE,00.html';
	var re = /INSERT_HERE/;
	formValue = formValue.replace( re, urlId );
	document.getElementById('re').value = formValue;
	var error1 = "";
	if (!isValidEmail(f.email.value)) {
		error1 = "Please enter a valid email.<br />"
		document.getElementById("emailError").innerHTML = error1;
		document.getElementById("emailError").className = "errormsg";
	}
	else {
		document.getElementById("emailError").innerHTML = "";
		document.getElementById("emailError").className = "";
	}
	var result = (error1 == "");
	return result
	

}



