/* Some of these methods are dependent on the jQuery library. Be sure to include, at a minimumn, the jquery.min.js prior to loading this script. */

function TellAFriend() { // This is the funtion that is called by the flash... "Multimodal_interactiveShell.swf" 
	openTAF();
}
function openTAF() {
	$("#tafWrapper").fadeIn(500); //show the form
	//Omniture Code
	var s=s_gi(s_account);
	s.pageName="hillspet:USARG:US:en:ENGAGER:Products:Science Diet:Hill's Simple Essentails Treats Tell a Friend Form";
	s.t();
}
function closeTAF() {
	$("#tafWrapper").fadeOut(1000); //hide the form
	cleanTAF(); // reset TAF form
}

/*------ Start: Email Validation ------*/
function validateForm(thisform, thisformID, formhandler) { 
	hasError = false;

	var errMess = document.getElementById("errMess");
	var senderEmail = thisform.senderEmail.value;
	var senderName = thisform.senderName.value;
	var friendEmailValue = thisform.friendEmail.value;
	var message = thisform.message.value;
	var silverpopListId = thisform.listID.value;
 
	//Check to see if any required fields are missing or invalid
	if (senderEmail == null || senderEmail == '') { // Check that sender's email is not empty
		errMess.innerHTML = '<p>! Please enter your email address.</p>';
		thisform.senderEmail.focus();
		thisform.senderEmail.style.background = '#FFD06C';
		hasError = true;
		return false;
	}
	else { thisform.senderEmail.style.background = '#FFFFFF'; }

	if (!validateEmail(senderEmail)) { // Check that sender's email is a valid email address format
		errMess.innerHTML = '<p>! Please enter a valid email address.</p>';
		thisform.senderEmail.focus();
		thisform.senderEmail.style.background = '#FFD06C';
		hasError = true;
		return false;
	}
	else { thisform.senderEmail.style.background = '#FFFFFF'; }

	if (friendEmailValue == null || friendEmailValue == '') { // Check that friend's email is not empty
		errMess.innerHTML = '<p>! Please enter an email address for your friend.</p>';
		thisform.friendEmail.focus();
		thisform.friendEmail.style.background = '#FFD06C';
		hasError = true;
		return false;
	}
	else { thisform.friendEmail.style.background = '#FFFFFF'; }

	if (!validateEmail(friendEmailValue)) { // Check that friend's email is a valid email address format
		errMess.innerHTML = '<p>! Please enter a valid email address.</p>';
		thisform.friendEmail.focus();
		thisform.friendEmail.style.background = '#FFD06C';
		hasError = true;
		return false;
	}
	else { thisform.friendEmail.style.background = '#FFFFFF'; }

	if (!validateMultipleEmail(friendEmailValue)){ // Check that all friend's email addresses are seperated by a comma
		errMess.innerHTML = '<p>! Please separate email addresses with a comma.</p>';
		thisform.friendEmail.focus();
		thisform.friendEmail.style.background = '#FFD06C';
		hasError = true;
		return false;
	}
	else { thisform.friendEmail.style.background = '#FFFFFF'; }

	
	if (!hasError) { // form data is valid... proceed with AJAX calls
		errMess.innerHTML = '&nbsp;';
		submitTAF(thisform, thisformID, formhandler, senderEmail, senderName, friendEmailValue, message, silverpopListId);
	}
	return false;
}

function validateEmail(strng) { // Email validation function
	var emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[\\w]$";
	var regex = new RegExp(emailReg);
	return regex.test(strng);
}
function validateMultipleEmail(string) { // Multiple email validation function
	var expression=/^(([a-zA-Z0-9\-\._]+)@(([a-zA-Z0-9\-_]+\.)+)([a-z]{2,3})(,(?!$))?)+$/;
	var regex = new RegExp(expression);	
	return regex.test(string);
}
/*------ End: Email Validation ------*/

/*----- Start: AJAX Calls -----*/
function submitTAF(thisform, thisformID, formhandler, senderEmail, senderName, friendEmailValue, message, silverpopListId) {
	var url = formhandler;
	var formdata = "senderEmail=" + senderEmail + "&senderName=" + senderName + "&friendEmail=" + friendEmailValue + "&message=" + message + "&silverpopListId=" + silverpopListId;
	var xmlHttp;
	
	//alert(formdata); return false;
	
	// Setup HttpRequest
	try { xmlHttp=new XMLHttpRequest(); } // Firefox, Opera 8.0+, Safari  
	catch (e) { // Internet Explorer  
		try { xmlHttp=new ActiveXObject("Msxml2.XMLHTTP"); } // Internet Explorer 6.0+
	  catch (e) {
			try { xmlHttp=new ActiveXObject("Microsoft.XMLHTTP"); } // Internet Explorer 5.5+
	    catch (e) {
				alert("Your browser does not support AJAX!"); // user has a very outdated browser
				return false;     
			}   
		}  
	} 
	
	// Process the TellAFriend Form
	if (thisformID=="form_tellAfriend") {
		xmlHttp.onreadystatechange=function() {
			if(xmlHttp.readyState > 0 && xmlHttp.readyState < 4) { // 4 = Loaded (show processing wheel until loaded)
				document.getElementById("taf_formContent").className="hide";
				document.getElementById("submitProcessingCopy").className="show";
			}
			if(xmlHttp.readyState==4) { // 4 = Loaded
				if (xmlHttp.status==200) { // 200 = OK
					// ...code to execute
					document.getElementById("submitProcessingCopy").className="hide";
					document.getElementById("submitSuccessCopy").className="show";
					//alert(xmlHttp.responseXML); 
		    }
				else { 
					document.getElementById("submitProcessingCopy").className="hide";
					document.getElementById("submitErrorCopy").className="show";
					//alert(xmlHttp.responseText); 
				}
				var s=s_gi(s_account);
				s.pageName="hillspet:USARG:US:en:ENGAGER:Products:Science Diet:Hill's Simple Essentails Treats Tell a Friend Thank You";
				s.events="event26";
				s.t();
			}
		}
		
		xmlHttp.open("POST", url, true);
		xmlHttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
		xmlHttp.setRequestHeader("Content-length", formdata.length);
		xmlHttp.setRequestHeader("Connection", "close");
		xmlHttp.send(formdata);
		//staps the form from submitting normally
		return false;
	}
	
	// Handle Exception
	else {
		alert('There was an unexpected error processing the request.');
		return false;
	}
}
//==== END: Tell a Friend Functionality ========//

function cleanTAF() {
	document.getElementById("submitProcessingCopy").className="hide";
	document.getElementById("submitErrorCopy").className="hide";
	document.getElementById("submitSuccessCopy").className="hide";
	
	document.getElementById("friendEmail").value = "";
	document.getElementById("senderName").value = "";
	document.getElementById("senderEmail").value = "";
	document.getElementById("message").value = "";
}




