
// Variables
var email2_ajax_url = "/wp-content/plugins/email2/email2.php";
var email2 = new sack(email2_ajax_url);
var email2_max_allowed = '5';
var email2_verify = '';
var email2_p = 0;
var email2_pageid = 0;
var email2_yourname = '';
var email2_youremail2 = '';
var email2_yourremarks = '';
var email2_friendname = '';
var email2_friendemail2 = '';
var email2_friendnames = '';
var email2_friendemail2s = '';
var email2_imageverify = '';

// email2 Form Validation
function validate_email2_form() {
	// Variables
	var errFlag = false;
	var errMsg = "The Following Error Occurs:\n";	
	errMsg = errMsg + "__________________________________\n\n";

	// Your Name Validation
	if(document.getElementById('yourname')) {
		if(isEmpty(email2_yourname)) {
			errMsg = errMsg + "- Your Name is empty\n";
			errFlag = true;
		}
		if(!is_valid_name(email2_yourname)) {
			errMsg = errMsg + "- Your Name is invalid\n";
			errFlag = true;
		}
	}
	// Your email2 Validation
	if(document.getElementById('youremail2')) {
		if(isEmpty(email2_youremail2)) {
			errMsg = errMsg + "- Your EMail is empty\n";
			errFlag = true;
		}
		if(!is_valid_email2(email2_youremail2)) {
			errMsg = errMsg + "- Your EMail is invalid\n";
			errFlag = true;
		}
	}
	// Your Remarks Validation
	if(document.getElementById('yourremarks')) {
		if(!isEmpty(email2_yourremarks)) {
			if(!is_valid_remarks(email2_yourremarks)) {
				errMsg = errMsg + "- Your Remarks is invalid\n";
				errFlag = true;
			}
		}
	}

	// Your Remarks Validation
	if(document.getElementById('friendname')) {
		if(!isEmpty(email2_friendname)) {
			if(!is_valid_remarks(email2_friendname)) {
				errMsg = errMsg + "- Your Phone is invalid\n";
				errFlag = true;
			}
		}
	}

	// Friend email2(s) Validation
	if(isEmpty(email2_friendemail2)) {
		errMsg = errMsg + "- State is empty\n";
		errFlag = true;
	} else {
		for(i = 0; i < email2_friendemail2s.length; i++) {
			if(isEmpty(email2_friendemail2s[i])) {
				errMsg = errMsg + "- State is empty: " + email2_friendemail2s[i] + "\n";
				errFlag = true;
			}
			if(!is_valid_email2(email2_friendemail2s[i])) {
				errMsg = errMsg + "- State EMail is invalid: " + email2_friendemail2s[i] + "\n";
				errFlag = true;
			}
		}
	}
	if(email2_friendemail2s.length > email2_max_allowed) {
		errMsg = errMsg + "- Maximum 5 State allowed\n";
		errFlag = true;
	}
	// Friend Name(s) And email2(s) Validation
	if(document.getElementById('friendname')) {
		if(email2_friendnames.length != email2_friendemail2s.length) {
			errMsg = errMsg + "- State(s) count does not tally with State(s) count\n";
			errFlag = true;
		}
	}
	if(document.getElementById('imageverify')) {
		if(isEmpty(email2_imageverify)) {
			errMsg = errMsg + "- Image Verification is empty\n";
			errFlag = true;
		}
	}
	// If There Is Error Alert It
	if (errFlag == true){
		alert(errMsg);
		return false;
	} else {
		return true;
	}
}

// Check Form Field Is Empty
function isEmpty(value){
	if (trim(value) == "") {
		return true;
	}
	return false;
}

// Trim White Spaces
function trim(strText) { 
	// this will get rid of leading spaces 
	while (strText.substring(0,1) == ' ') 
		strText = strText.substring(1, strText.length);
	// this will get rid of trailing spaces 
	while (strText.substring(strText.length-1,strText.length) == ' ')
		strText = strText.substring(0, strText.length-1);
   return strText;
}

// Check Name
function is_valid_name(name) {
	var name = trim(name);
	var filter  = /[(\*\(\)\[\]\+\,\/\?\:\;\'\"\`\~\\#\$\%\^\&\<\>)+]/;
	return !filter.test(name);
}

// Check email2
function is_valid_email2(email2) {
	var email2 = trim(email2);
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	return filter.test(email2);
}

// Check Remarks
function is_valid_remarks(remarks) {
	var remarks = trim(remarks);
	var injection_strings = new Array('apparently-to', 'cc', 'bcc', 'boundary', 'charset', 'content-disposition', 'content-type', 'content-transfer-encoding', 'errors-to', 'in-reply-to', 'message-id', 'mime-version', 'multipart/mixed', 'multipart/alternative', 'multipart/related', 'reply-to', 'x-mailer', 'x-sender', 'x-uidl');
	for(i = 0; i < injection_strings.length; i++) {
		if(remarks.indexOf(injection_strings[i]) != -1) {
			return false;
		}
	}
	return true;
}

// WP-email2 Popup
function email2_popup(email2_url) {
	window.open(email2_url, "_blank", "width=500,height=580,toolbar=0,menubar=0,location=0,resizable=0,scrollbars=1,status=0");
}

// email2 Form AJAX
function email2_form() {
	if(document.getElementById('yourname')) {
		email2_yourname = document.getElementById('yourname').value;
	}
	if(document.getElementById('youremail2')) {
		email2_youremail2 = document.getElementById('youremail2').value;
	}
	if(document.getElementById('yourremarks')) {
		email2_yourremarks = document.getElementById('yourremarks').value;
	}
	if(document.getElementById('friendname')) {
		email2_friendname = document.getElementById('friendname').value;
		email2_friendnames = email2_friendname.split(",");
	}
	email2_friendemail2 = document.getElementById('friendemail2').value;
	email2_friendemail2s = email2_friendemail2.split(",");
	if(document.getElementById('imageverify')) {
		email2_imageverify = document.getElementById('imageverify').value;
	}
	if(document.getElementById('p')) {
		email2_p = document.getElementById('p').value;
	}
	if(document.getElementById('page_id')) {
		email2_pageid = document.getElementById('page_id').value;
	}
	if(validate_email2_form()) {
		document.getElementById('wp-email2-submit').disabled = true;
		document.getElementById('wp-email2-loading').style.display = 'block';
		email2.reset();
		if(document.getElementById('yourname')) {			
			email2.setVar('yourname', email2_yourname);
			document.getElementById('yourname').disabled = true;
		}
		if(document.getElementById('youremail2')) {
			email2.setVar('youremail2', email2_youremail2);
			document.getElementById('youremail2').disabled = true;
		}
		if(document.getElementById('yourremarks')) {
			email2.setVar('yourremarks', email2_yourremarks);
			document.getElementById('yourremarks').disabled = true;
		}
		if(document.getElementById('friendname')) {
			email2.setVar('friendname', email2_friendname);
			document.getElementById('friendname').disabled = true;
		}
		email2.setVar('friendemail2', email2_friendemail2);
		document.getElementById('friendemail2').disabled = true;
		if(document.getElementById('imageverify')) {
			email2.setVar('imageverify', email2_imageverify);
			document.getElementById('imageverify').disabled = true;
		}
		if(document.getElementById('p')) {
			email2.setVar('p', email2_p);
		}
		if(document.getElementById('page_id')) {
			email2.setVar('page_id', email2_pageid);
		}
		email2.setVar('wp-email2', '1');
		email2.setVar('popup', document.getElementById('popup').value);
		email2.method = 'POST';
		email2.element = 'wp-email2';
		email2.runAJAX();
	}
}