/* -----[BASIC VALIDATION]----------------------------------------- */
var digits = "0123456789";
var phoneNumberDelimiters = "()- ";
var validWorldPhoneChars = phoneNumberDelimiters + "+";
var minDigitsInIPhoneNumber = 10;

function isInteger(s) {  
	var i;
	
    for (i=0; i<s.length; i++) {   
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
	
    return true;
}

function stripCharsInBag(s, bag) {   
	var i;
    var returnString = "";

    for (i=0; i<s.length; i++) {   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
	
    return returnString;
}

function checkPhone(strPhone) {
	s = stripCharsInBag(strPhone,validWorldPhoneChars);
	return (isInteger(s) && s.length >= minDigitsInIPhoneNumber);
}

function isLetter(s) {  
	var i;
	
    for (i=0; i<s.length; i++) {   
    	var c = s.charAt(i);
		
        if (((c < "a") || (c > "z")) && ((c < "A") || (c > "Z"))) return false;
    }
	
    return true;
}
/* -----[BASIC VALIDATION]----------------------------------------- */

// form validation controller.
function validate_form(form) {
	result = false;
	
	switch (form) {
		case "provider":
			result = validate_provider();
		break;
		
		case "payer":
			result = validate_payer();
		break;
		
		case "partner":
			result = validate_other();
		break;
		
		case "other":
			result = validate_other();
		break;
	}
	
	return result;
}

// validate provider web-form.
function validate_provider() {
	valid = true;
	var error = "";
	
	if (document.web_form.company.value == "") {
		error += "Please enter your Company Name.\n";
		valid = false;
	}
	
	//check if First Name is valid
	if (document.web_form.first_name.value == "") {
		error += "Please enter your First Name.\n";
		valid = false;
	} else if (isLetter(document.web_form.first_name.value) == false) {
		error += "Please enter a valid First Name.\n";
		valid = false;
	}
	
	//check if Last Name is valid
	if (document.web_form.last_name.value == "") {
		error += "Please enter your Last Name.\n";
		valid = false;
	} else if (isLetter(document.web_form.last_name.value) == false) {
		error += "Please enter a valid Last Name.\n";
		valid = false;
	}
	
	//check if Phone Number is valid
	if (document.web_form.phone.value == "") {
		error += "Please enter your Phone.\n";
		valid = false;
	} else if (checkPhone(document.web_form.phone.value) == false) {
		error += "Please enter a valid Phone number.\n";
		valid = false;
	}
	
	//check if Email is valid
	if (document.web_form.email.value == "") {
		error += "Please enter your Email.\n";
		valid = false;
	} else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.web_form.email.value))) {
		error += "Please enter a valid Email address.\n";
		valid = false;
	}
	
	if (document.web_form.source_name.value == "") {
		error += "Please tell us how you heard of InstaMed.\n";
		valid = false;
	}
	
	if ((document.web_form.source_name.value == "Other") && (document.web_form.source_other.value == "")) {
		error += "Please tell us how you heard of InstaMed.\n";
		valid = false;
	}
	
	if ((document.web_form.source_name.value == "InstaMed Partner") && (document.web_form.source_other.value == "")) {
		error += "Please tell us which Partner did you hear of InstaMed from.\n";
		valid = false;
	}
	
	if (document.web_form.source_other.value != "") {
		document.getElementById('00N50000001R6oP').value = document.web_form.source_name.value;
		document.getElementById('00N50000001hfLz').value = document.web_form.source_other.value;
	} else {
		document.getElementById('00N50000001R6oP').value = document.web_form.source_name.value;
	}
	
	if ((document.getElementById('00N30000000pUVV').value != "") && (isLetter(document.getElementById('00N30000000pUVV').value) == true)) {
		error += "Number of Doctors must be a number.\n";
		valid = false;
	}
	
	if (valid == false) {
		alert(error);
		
		return valid;
	} else {
		//if lead input is valid, create cookie and store in hard drive
		create_cookie('instamed_cookie', 'pdf_download', 90);
		create_cookie('instamed_company', document.web_form.company.value, 90);
		create_cookie('instamed_firstname', document.web_form.first_name.value, 90);
		create_cookie('instamed_lastname', document.web_form.last_name.value, 90);
		create_cookie('instamed_phone', document.web_form.phone.value, 90);
		create_cookie('instamed_email', document.web_form.email.value, 90);
		
		var leadDate = new Date();
		leadDate = (leadDate.getMonth() + 1) + "/" + leadDate.getDate() + "/" + leadDate.getFullYear();
		document.getElementById('00N50000001Sp4T').value = leadDate;
		
		return valid;
	}
}

// validate payer web-form.
function validate_payer() {
	valid = true;
	var error = "";
	
	if (document.web_form.company.value == "") {
		error += "Please enter your Company Name.\n";
		valid = false;
	}
	
	//check if First Name is valid
	if (document.web_form.first_name.value == "") {
		error += "Please enter your First Name.\n";
		valid = false;
	} else if (isLetter(document.web_form.first_name.value) == false) {
		error += "Please enter a valid First Name.\n";
		valid = false;
	}
	
	//check if Last Name is valid
	if (document.web_form.last_name.value == "") {
		error += "Please enter your Last Name.\n";
		valid = false;
	} else if (isLetter(document.web_form.last_name.value) == false) {
		error += "Please enter a valid Last Name.\n";
		valid = false;
	}
	
	//check if Phone Number is valid
	if (document.web_form.phone.value == "") {
		error += "Please enter your Phone.\n";
		valid = false;
	} else if (checkPhone(document.web_form.phone.value) == false) {
		error += "Please enter a valid Phone number.\n";
		valid = false;
	}
	
	//check if Email is valid
	if (document.web_form.email.value == "") {
		error += "Please enter your Email.\n";
		valid = false;
	} else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.web_form.email.value))) {
		error += "Please enter a valid Email address.\n";
		valid = false;
	}
	
	if (document.web_form.source_name.value == "") {
		error += "Please tell us how you heard of InstaMed.\n";
		valid = false;
	}
	
	if ((document.web_form.source_name.value == "Other") && (document.web_form.source_other.value == "")) {
		error += "Please tell us how you heard of InstaMed.\n";
		valid = false;
	}
	
	if ((document.web_form.source_name.value == "InstaMed Partner") && (document.web_form.source_other.value == "")) {
		error += "Please tell us which Partner did you hear of InstaMed from.\n";
		valid = false;
	}
	
	if (document.web_form.source_other.value != "") {
		document.getElementById('00N50000001R6oP').value = document.web_form.source_name.value;
		document.getElementById('00N50000001hfLz').value = document.web_form.source_other.value;
	} else {
		document.getElementById('00N50000001R6oP').value = document.web_form.source_name.value;
	}
	
	if ((document.getElementById('00N50000001hfNT').value != "") && (isLetter(document.getElementById('00N50000001hfNT').value) == true)) {
		error += "Number of Members must be a number.\n";
		valid = false;
	}
	
	if (valid == false) {
		alert(error);
		
		return valid;
	} else {
		//if lead input is valid, create cookie and store in hard drive
		create_cookie('instamed_cookie', 'pdf_download', 90);
		create_cookie('instamed_company', document.web_form.company.value, 90);
		create_cookie('instamed_firstname', document.web_form.first_name.value, 90);
		create_cookie('instamed_lastname', document.web_form.last_name.value, 90);
		create_cookie('instamed_phone', document.web_form.phone.value, 90);
		create_cookie('instamed_email', document.web_form.email.value, 90);
		
		var leadDate = new Date();
		leadDate = (leadDate.getMonth() + 1) + "/" + leadDate.getDate() + "/" + leadDate.getFullYear();
		document.getElementById('00N50000001Sp4T').value = leadDate;
		
		return valid;
	}
}

// validate other web-form.
function validate_other() {
	valid = true;
	var error = "";
	
	if (document.web_form.company.value == "") {
		error += "Please enter your Company Name.\n";
		valid = false;
	}
	
	//check if First Name is valid
	if (document.web_form.first_name.value == "") {
		error += "Please enter your First Name.\n";
		valid = false;
	} else if (isLetter(document.web_form.first_name.value) == false) {
		error += "Please enter a valid First Name.\n";
		valid = false;
	}
	
	//check if Last Name is valid
	if (document.web_form.last_name.value == "") {
		error += "Please enter your Last Name.\n";
		valid = false;
	} else if (isLetter(document.web_form.last_name.value) == false) {
		error += "Please enter a valid Last Name.\n";
		valid = false;
	}
	
	//check if Phone Number is valid
	if (document.web_form.phone.value == "") {
		error += "Please enter your Phone.\n";
		valid = false;
	} else if (checkPhone(document.web_form.phone.value) == false) {
		error += "Please enter a valid Phone number.\n";
		valid = false;
	}
	
	//check if Email is valid
	if (document.web_form.email.value == "") {
		error += "Please enter your Email.\n";
		valid = false;
	} else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.web_form.email.value))) {
		error += "Please enter a valid Email address.\n";
		valid = false;
	}
	
	if (document.web_form.source_name.value == "") {
		error += "Please tell us how you heard of InstaMed.\n";
		valid = false;
	}
	
	if ((document.web_form.source_name.value == "Other") && (document.web_form.source_other.value == "")) {
		error += "Please tell us how you heard of InstaMed.\n";
		valid = false;
	}
	
	if ((document.web_form.source_name.value == "InstaMed Partner") && (document.web_form.source_other.value == "")) {
		error += "Please tell us which Partner did you hear of InstaMed from.\n";
		valid = false;
	}
	
	if (document.web_form.source_other.value != "") {
		document.getElementById('00N50000001R6oP').value = document.web_form.source_name.value;
		document.getElementById('00N50000001hfLz').value = document.web_form.source_other.value;
	} else {
		document.getElementById('00N50000001R6oP').value = document.web_form.source_name.value;
	}
	
	if (valid == false) {
		alert(error);
		
		return valid;
	} else {
		//if lead input is valid, create cookie and store in hard drive
		create_cookie('instamed_cookie', 'pdf_download', 90);
		create_cookie('instamed_company', document.web_form.company.value, 90);
		create_cookie('instamed_firstname', document.web_form.first_name.value, 90);
		create_cookie('instamed_lastname', document.web_form.last_name.value, 90);
		create_cookie('instamed_phone', document.web_form.phone.value, 90);
		create_cookie('instamed_email', document.web_form.email.value, 90);
		
		var leadDate = new Date();
		leadDate = (leadDate.getMonth() + 1) + "/" + leadDate.getDate() + "/" + leadDate.getFullYear();
		document.getElementById('00N50000001Sp4T').value = leadDate;
		
		return valid;
	}
}

// validate self-service page.
function validate_self_service() {
	valid = true;
	var error = "";
	
	for (var i=0; i < document.ip.location.length; i++) {
		if (document.ip.location[i].checked) {
			var location = document.ip.location[i].value;
		}
	}
	
	for (var i=0; i < document.ip.connection.length; i++) {
		if (document.ip.connection[i].checked) {
			var connection = document.ip.connection[i].value;
		}
	}
   
	if ((location == "Other") && (document.ip.location2.value == "")) {
		error += "Please enter the location you are connecting from.\n";
		valid = false;
	}
	
	if ((connection == "Other") && (document.ip.connection2.value == "")) {
		error += "Please enter the type of internet connection you have.\n";
		valid = false;
	}
	
	if (document.ip.InstaMed_Account_Number.value == "") {
		error += "Please enter your InstaMed Account Number.\n";
		valid = false;
	}
	
	if (valid == false) {
		alert(error);
		
		return valid;
	} else {
		if ((location == "Other") || (connection == "Other")) {
			document.getElementById("sort").value = "InstaMed_Customer_Number, IP_Address, Host, Browser, location, location2, connection, connection2";
		} else {
			document.getElementById("sort").value = "InstaMed_Customer_Number, IP_Address, Host, Browser, location, connection";
		}
		
		return valid;
	}
}

function validate_service() {
	valid = true;
	var error = "";
	
	//check if First Name is valid
	if (document.web_form.first_name.value == "") {
		error += "Please enter your First Name.\n";
		valid = false;
	} else if (isLetter(document.web_form.first_name.value) == false) {
		error += "Please enter a valid First Name.\n";
		valid = false;
	}
	
	//check if Last Name is valid
	if (document.web_form.last_name.value == "") {
		error += "Please enter your Last Name.\n";
		valid = false;
	} else if (isLetter(document.web_form.last_name.value) == false) {
		error += "Please enter a valid Last Name.\n";
		valid = false;
	}
	
	//check if Phone Number is valid
	if (document.web_form.phone.value == "") {
		error += "Please enter your Phone.\n";
		valid = false;
	} else if (checkPhone(document.web_form.phone.value) == false) {
		error += "Please enter a valid Phone number.\n";
		valid = false;
	}
	
	//check if Email is valid
	if (document.web_form.email1.value == "") {
		error += "Please enter your Email.\n";
		valid = false;
	} else if (!(/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,3})+$/.test(document.learn_more.email1.value))) {
		error += "Please enter a valid Email address.\n";
		valid = false;
	}
	
	if (valid == false) {
		alert(error);
		return valid;
	}
}