// New Functions

function aLostFocus_Password(password) {
	spanObj = document.getElementById(document.forms[0].txtLoginPassword.name);
	
	if (document.forms[0].txtLoginPassword.value != password.value)
	{
		alert("Both passwords must match. Please correct.");
		document.forms[0].txtLoginPassword.value = "";
		document.forms[0].txtLoginPasswordVerify.value = "";
		spanObj.style.color = "#FF0000";
		return false;
	} 
	else if (!validatePassword(document.forms[0].txtLoginPassword,1))
	{
		password.value = "";
		document.forms[0].txtLoginPassword.value = "";
		document.forms[0].txtLoginPasswordVerify.value = "";
		return false;	
	}
	else
	{
		return true;
	}

}

function validate_s1_form() {
	$errors = true;
	
	if (validateEmail(document.forms[0].txtLoginUsername) == false)
	{
		$errors = false;
	}
	else if (aLostFocus_Password(document.forms[0].txtVerifyLoginPassword) == false)
	{
		$errors = false;
	} 
	
	
	return $errors;
}

function validate_s4_form() {
	var errors = 0;
	var aFields = new Array ("txtCompanyName","txtContactName","txtAddress","txtCity","txtZip","txtPhone");

	// If invoicing method is "Postal Mail"
	var iFields = new Array ("txtInvoiceAddress","txtInvoiceCity","txtInvoiceZip");
	
	for (var i=0;i<aFields.length;i++)
	{
		if (!validateField(eval("document.forms[0]." + aFields[i]),0)) { errors = 1; }	
	}
	
	if (document.forms[0].radioInvoiceMethod[0].checked == false) 
	{
		for (i=0;i<iFields.length;i++)
		{
			if (!validateField(eval("document.forms[0]." + iFields[i]),0)) { errors = 1; }	
		}
	}
		
	if (errors == 1)
	{
		alert("Not all fields were filled out correctly. Please go back and fix the fields highlighted in red.");
	}
	
	return errors == 0;
}

function validate_account_settings_form() {
	var errors = 0;
	var budget_type = 0;

	if (validate_s4_form() == true)
	{
		var BudgetRegex = /^(\d*\.?\d*[0-9]+\d*$)|(^[0-9]+\d*\.\d*)$/;
		var Budget = document.forms[0].txtBudgetDAmount.value;
		var adType = "degree-specific";

		if (document.forms[0].radioBudgetDDuration[1].checked) {
			budget_type = 1;
		}

		if (trim(Budget) == "" || (!Budget.match(BudgetRegex))) {
			errors = 1;
		} else if (budget_type == 1 && parseFloat(Budget) < 0.35) {
			errors = 2;
		} else if (budget_type == 0 && parseFloat(Budget) < 10) {
			errors = 3;
		}

		var spanObj = document.getElementById("txtBudgetDAmount");
		
		if (errors > 0)
		{
			if (errors == 1) {
				alert("You must set a valid " + adType + " daily limit!");
			} else if (errors == 2) {
				alert("Your " + adType + " daily limit must be at least $0.35!");
			} else if (errors == 3) {
				alert("Your " + adType + " monthly limit must be at least $10.00!");
				Budget = document.forms[0].txtBudgetDAmount.defaultValue;
			}
			
			spanObj.style.color = "#FF0000";
		} else {
			spanObj.style.color = "#000000";
		}

		budget_type = 0;
		
		if (document.forms[0].radioBudgetSWDuration[1].checked) {
			budget_type = 1;
		}

		var Budget = document.forms[0].txtBudgetSWAmount.value;
		adType = "site-wide"
		
		if (trim(Budget) == "" || (!Budget.match(BudgetRegex))) {
			errors = 1;
		} else if (budget_type == 1 && parseFloat(Budget) < 0.35) {
			errors = 2;
		} else if (budget_type == 0 && parseFloat(Budget) < 10) {
			errors = 3;
		}

		var spanObj = document.getElementById("txtBudgetSWAmount");
		
		if (errors > 0)
		{
			if (errors == 1) {
				alert("You must set a valid " + adType + " daily limit!");
			} else if (errors == 2) {
				alert("Your " + adType + " daily limit must be at least $0.35!");
			} else if (errors == 3) {
				alert("Your " + adType + " monthly limit must be at least $10.00!");
				Budget = document.forms[0].txtBudgetSWAmount.defaultValue;
			}
			
			spanObj.style.color = "#FF0000";
		} else {
			spanObj.style.color = "#000000";
		}
	} else {
		errors = 1;
	}
	
	return errors == 0;
}

function validateEmail(email) {
	emailRE = /^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$/i;
	spanObj = document.getElementById(email.name);
	
	if (!email.value.match(emailRE)) 
	{
		alert("Please enter a valid e-mail address.")
		spanObj.style.color = "#FF0000";
		return false;
	}
	else
	{
		spanObj.style.color = "#000000";
		return true;
	}		
}

function validatePassword(pwObj,showAlert) {
	passwordRE = /^.*(?=.{6,})(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$/i;
	
	if (showAlert == undefined) {
		showAlert = 1;
	}

	spanObj = document.getElementById(pwObj.name);
	
	if (!pwObj.value.match(passwordRE))
	{
		if (showAlert == 1)
		{
			alert("Password entered does not meet complexity requirements. Passwords must be at least 6 characters in length, have at least one number, and have at least one uppercase letter.");
		}
		
		spanObj.style.color = "#FF0000";
		return false;
	}
	else
	{
		spanObj.style.color = "#000000";
		return true;
	}
}

/*
function signup_4_payment_change(sObj)
{
	var cc_disp, ck_disp;

	if (sObj.value == "Check")
	{
		cc_disp = "NONE";
		ck_disp = "";
	} 
	else if (sObj.value == "Credit Card")
	{
		cc_disp = "";
		ck_disp = "NONE";
	}
	else
	{
		cc_disp = "NONE";
		ck_disp = "NONE";
	}
	
	document.getElementById("pm_cc").style.display = cc_disp;
	document.getElementById("pm_ck").style.display = ck_disp;
}
*/

function signup_4_copy_billing()
{
	fObj = document.forms[0];
	
	fObj.txtInvoiceAddress1.value = fObj.txtAddress1.value;
	fObj.txtInvoiceCity1.value = fObj.txtCity1.value;
	fObj.lstInvoiceState.selectedIndex = fObj.lstState.selectedIndex;
	fObj.txtInvoiceZip1.value = fObj.txtZip1.value;	
	
	validateField(fObj.txtInvoiceAddress,0);
	validateField(fObj.txtInvoiceCity,0);
	validateField(fObj.txtInvoiceZip,0);
	
}

// ##############################################################
// Old Functions 
// ##############################################################
function fillAdForm(curIndex,name) {
	var Obj = new Array();
	var fill;

	if (null != (Obj = document.getElementById("ex_" + curIndex + "_" + name))) {
		fill = "document.forms[0].ads_" + curIndex + "_" + name;
		if (eval(fill).value == "") {
			Obj.innerHTML = eval(fill).defaultValue;
		} else {
			Obj.innerHTML = eval(fill).value;
		}

	}
	
	return true;
}

function validateAdField(Object,showAlert) {
	var res = new Array();
	if (showAlert == undefined) {
		showAlert = 1;
	}
	
	nameRE = /^ads_([0-9]+)_(title|line1|line2|targeturl|dispurl)$/;
	res = nameRE.exec(Object.name);
	if (res != null) {
		name = res[2];
		num = res[1];

	
		spanObj = document.getElementById(name + "_" + num);
		catName = document.getElementById("cat_" + num).innerHTML;
		if (this.name == "targeturl") {
			urlRE = /^(http|https?:\/\/)+[a-zA-Z0-9\-\.]+\.[a-zA-Z]{2,3}(\/\S*)?$/i;
			if (!Object.value.match(urlRE)) {
				if (showAlert == 1) { alert("Please enter a valid target URL for '" + catName + "'") }
				spanObj.style.color = "#FF0000";
				return false;
			} else {
				spanObj.style.color = "#000000";
				return true;
			}
		} else if (name != "") {
			if (trim(Object.value) == "") {
				if (showAlert == 1) { alert("You must fill in a value for '" + spanObj.innerHTML + "' (" + catName + ").") }
				spanObj.style.color = "#FF0000";
				return false;
			} else {
				spanObj.style.color = "#000000";
				return true;
			}
		}
	}
	return true;
}

function validateAdForm() {
	var count = document.forms[0].elements.length;
	var errors = 0;
	for (var x=0;x<count;x++) {
		if (!validateAdField(document.forms[0].elements[x],0)) { errors = 1; }
	}
	
	if (errors == 1) { 
		alert("Not all fields were filled out correctly. Please go back and fix the fields highlighted in red.");
	}

	return errors == 0;
}

function copyAdFields(prevNum) {
	var cResults = new Array();
	var currentNum = prevNum + 1;
	var names = new Array();
	var errors = 0;
	
	names[0] = "title";
	names[1] = "line1";
	names[2] = "line2";
	names[3] = "dispurl";
	names[4] = "targeturl";

	var count = names.length;
	
	for (var x=0;x<count;x++) {
		curName = names[x];
		eval("document.forms[0].ads_" + currentNum + "_" + curName).value = eval("document.forms[0].ads_" + prevNum + "_" + curName).value;
		if (validateAdField(eval("document.forms[0].ads_" + prevNum + "_" + curName))) {
			fillAdForm(currentNum,names[x]);
		} else {
			errors = 1;
		}
	}
	
	if (errors == 1) {
		alert("Not all fields were filled out correctly. Please go back and fix the fields highlighted in red.");
	}
	
	return true;
};

function clearField(Object) {
	if (Object.value == Object.defaultValue) {
		Object.value = '';
	}
}

function copyBidToParent(adID)
{
	this.parent.document.forms[0].elements['bids_' + adID].value = document.forms[0].elements['bid_max'].value;
}

function submitAdBidForm(num,budget) {
	var errors = 0;
	var adid = 0;
	
	if (budget == undefined)
	{
		budget = 1;
	}
	
	for (var x=0;x<num;x++) {
		frameField = frames['iframe_' + x].document.forms[0].bid_max.value;
		var qs = frames['iframe_' + x].document.location.search;
		
		if (qs.search("adid") > 0)
		{
			params = qs.split("=");
			adid = params[1];
		}
		
		if (trim(frameField) == "" || frameField == null) {
			errors = 1;
		} else if (parseFloat(frameField) < 0.05) {
			errors = 5;
		} else {
			eval("document.forms[0].bids_" + adid).value = frameField;
		}
	}
	
	if (budget == 1)
	{
		$errors = verifyBudgetForm();
	}
	
	if (errors == 1) {
		alert("You must enter bid values for each ad!");
	} else if (errors == 2) {
		alert("You must set a valid daily limit!");
	} else if (errors == 3) {
		alert("Your daily limit must be at least $0.35!");
		document.forms[0].budget.value = "0.35";
	} else if (errors == 4) {
		alert("Your monthly limit must be at least $10.00!");
		document.forms[0].budget.value = document.forms[0].budget.defaultValue;
	} else if (errors == 5) {
		alert("Bids must be at least $0.05!");
	}
	
	return errors == 0;
}

function verifyBudgetForm() {
	var budget_type = 0;
	
	if (document.forms[0].radioBudgetDuration[1].checked) {
		budget_type = 1;
	}

	var BudgetRegex = /^(\d*\.?\d*[0-9]+\d*$)|(^[0-9]+\d*\.\d*)$/;
	var Budget = document.forms[0].txtBudgetAmount.value;
	if (trim(Budget) == "" || (!Budget.match(BudgetRegex))) {
		return 2;
	} else if (budget_type == 1 && parseFloat(Budget) < 0.35) {
		return 3;
	} else if (budget_type == 0 && parseFloat(Budget) < 10) {
		return 4;
	} else {
		return 0;
	}
}

/*
function validateBillField(Object,showAlert,required) {	
	var res = new Array();
	
	if (showAlert == undefined) {
		showAlert = 1;
	}
	
	if (required == undefined) {
		required = 1;
	}
	
	nameRE = /^(b|c)_(contactname|companyname|email|address1|city|state|zip|phone|phoneext|phonefax|invoicemeth)$/;
	res = nameRE.exec(Object.name);

	if (res != null) {
		borc = res[1];
		name = res[2];
	
		spanObj = document.getElementById(borc + "_" + name);
	
		if (this.name == "email") {
			emailRE = /^(([A-Za-z0-9]+_+)|([A-Za-z0-9]+\-+)|([A-Za-z0-9]+\.+)|([A-Za-z0-9]+\++))*[A-Za-z0-9]+@((\w+\-+)|(\w+\.))*\w{1,63}\.[a-zA-Z]{2,6}$/i;
			if (!Object.value.match(emailRE)) {
				if (showAlert == 1) { alert("Please enter a valid e-mail address.") }
				spanObj.style.color = "#FF0000";
				return false;
			} else {
				spanObj.style.color = "#000000";
				return true;
			}			
		} else if (this.name != "" && required == 1) {
			if (trim(Object.value) == "") {
				if (showAlert == 1) { alert("You must fill in a value for '" + spanObj.innerHTML + "'.") }
				spanObj.style.color = "#FF0000";
				return false;
			} else {
				spanObj.style.color = "#000000";
				return true;
			}
		}
	}
	
	return true;
}

function validateBillForm() {
	
	var nrqA = new Array();
	
	var count = document.forms[0].elements.length;
	var errors = 0;
	var required = 1;
	
	nrqA[0] = "b_address2";
	nrqA[1] = "b_phoneext";
	nrqA[2] = "b_phonefax";
	nrqA[4] = "c_phoneext";
	
	for (var x=0;x<count;x++) {
		required = 1;
		for (var i=0;i<nrqA.length;i++) {
			if (nrqA[i] == document.forms[0].elements[x].name) { required = 0;	} 
		}
		if (!validateBillField(document.forms[0].elements[x],0,required)) { errors = 1; }
	}
	
	if (errors == 1) { 
		alert("Not all fields were filled out correctly. Please go back and fix the fields highlighted in red.");
	}

	return errors == 0;
}

/*
function displayBillMethod(id) {
	items = new Array();
	
	items[0] = "cc";
	items[1] = "check";
	items[2] = "po";
	
	Obj = document.getElementById("show_" + id);

	for (i=0;i<items.length;i++) {
		if (items[i] == id) {
			Obj.style.display = "";
		} else {
			document.getElementById("show_" + items[i]).style.display = "none";
		}
	}
}



function copyCompanyInfo(username) {
	nameRE = /^c_(contactname|phone|phoneext)$/;
	form = document.forms[0];

	for (var x=0;x<form.elements.length;x++) {
		res = nameRE.exec(form.elements[x].name);
		
		if (res != null) {
			
			eval("form.b_" + res[1] + ".value = form.c_" + res[1] + ".value");
		}
	}
	
	form.b_email.value = username;
}

*/

trim = function(text) {
	a = text.replace(/^\s+/, '');
	return text.replace(/\s+$/, '');
}