var navRefOne = "";
var navRefTwo = "";
var isExplorer = false;

if (document.layers) {
	navRefOne = "document.layers[";
	navRefTwo = "]";
	
}  else if (document.getElementById) {
	navRefOne = "document.getElementById(\'";
	navRefTwo = "\')";
	
} else if (document.all) {
	navRefOne = "document.all.";
	navRefTwo = "";
	isExplorer = true;
}

var preError = "The following errors have been found:\n------------------------------------\n";
var errorString = "";
var postError = "------------------------------------\nPlease correct these errors and re-submit.";
var errorNumber = 0;
var errorNumDot = ". ";

var currentUpLoop;
var currentDownLoop;
var upTimeout = new Array('pdrLink','serviceLink','armorLink','contactLink','faqsLink','dealerLink','indexLink');
var downTimeout = new Array('pdrLink','serviceLink','armorLink','contactLink','faqsLink','dealerLink','indexLink');
	
var topValue = new Array();
	topValue['pdrLink'] = -20;
	topValue['serviceLink'] = -20;
	topValue['armorLink'] = -20;
	topValue['contactLink'] = -20;
	topValue['faqsLink'] = -20;
	topValue['dealerLink'] = -20;
	topValue['indexLink'] = -20;

function menuPopUp(state,whichDiv,whichLink) {
	clearTimeout(downTimeout[currentDownLoop]);
	clearTimeout(downTimeout[currentUpLoop]);
	if (state == "over") {
		eval(navRefOne + whichLink + navRefTwo + ".style.color = '#000'");
		eval(navRefOne + whichLink + navRefTwo + ".style.zIndex = '100'");
		eval(navRefOne + whichLink + navRefTwo + ".style.backgroundPosition = '0px -22px'");
		moveDown(whichDiv,whichLink);
	} else if (state == "out") {
		eval(navRefOne + whichLink + navRefTwo + ".style.color = '#ccc'");
		eval(navRefOne + whichLink + navRefTwo + ".style.zIndex = '50'");
		eval(navRefOne + whichLink + navRefTwo + ".style.backgroundPosition = '0px 0px'");
		moveUp(whichDiv,whichLink);
	}
}
function moveDown(whichDiv,whichLink) {
	topValue[whichLink] = topValue[whichLink] + 2;
	if (topValue[whichLink] < 1) {
		eval(navRefOne + whichDiv + navRefTwo + ".style.top = '" + topValue[whichLink] + "px'");
		var timeoutSring = "moveDown('" + whichDiv + "','" + whichLink + "');";
		downTimeout[whichLink] = setTimeout(timeoutSring, 0);
	} else {
		eval(navRefOne + whichDiv + navRefTwo + ".style.top = '0'");
	}
	currentDownLoop = whichLink;
}
function moveUp(whichDiv,whichLink) {
	topValue[whichLink] = topValue[whichLink] - 2;
	if (topValue[whichLink] > -21) {
		eval(navRefOne + whichDiv + navRefTwo + ".style.top = '" + topValue[whichLink] + "px'");
		var timeoutSring = "moveUp('" + whichDiv + "','" + whichLink + "');";
		upTimeout[whichLink] = setTimeout(timeoutSring, 0);
	} else {
		eval(navRefOne + whichDiv + navRefTwo + ".style.top = '-20px'");
	}
	currentUpLoop = whichLink;
}



function openVideo(i) {
	var newWin = window.open(i, 'video', 'width=360,height=300,top=0,left=0');
	newWin.focus();
}
var currentAnswer = "";
var answerStaus = "closed";
function showAnswer(answer) {
	if (currentAnswer != "") {
		if (currentAnswer == answer) {
			if (answerStaus == "open") {
				eval(navRefOne + answer + navRefTwo + ".style.display = 'none'");
				answerStaus = "closed";
			} else {
				eval(navRefOne + answer + navRefTwo + ".style.display = 'block'");
				answerStaus = "open";
			}
		} else {
			eval(navRefOne + currentAnswer + navRefTwo + ".style.display = 'none'");
			eval(navRefOne + answer + navRefTwo + ".style.display = 'block'");
			answerStaus = "open";
		}
	} else {
		eval(navRefOne + answer + navRefTwo + ".style.display = 'block'");
		answerStaus = "open";
	}
	currentAnswer = answer;
}

function searchDealers() {
	var choice = document.searchForm.search.selectedIndex;
	var city = document.searchForm.search.options[choice].value;
	if (city != "noneChosen") {
		document.searchForm.submit();
	} else {
		alert('Please choose a city!');
	}
	
}

function dentNumber() {
	document.service_form.reloadForm.value = "reload";
	document.service_form.submit();
}

function dayLocation(local) {
	if (local == "home") {
		eval(navRefOne + "vehicleAddress" + navRefTwo + ".style.display = 'none'");
	} else if (local == 'other') {
		eval(navRefOne + "vehicleAddress" + navRefTwo + ".style.display = 'block'");
	}
	document.service_form.vehicleLocation.value = local;
}

function requestService() {
	errorString = "";
	errorNumber = 0;
	var first_name = document.service_form.first_name.value;
	var last_name = document.service_form.last_name.value;
	var address_1 = document.service_form.address_1.value;
	var postal_code_1 = document.service_form.postal_code_1.value;
	var city_1 = document.service_form.city_1.value;
	var email_1 = document.service_form.email_1.value;
	var phone_1 = document.service_form.phone_1.value;
	var vehicle_model = document.service_form.vehicle_model.value;
	var vehicle_location = document.service_form.vehicleLocation.value;
	if (checkNames(first_name,last_name) && checkAddress(address_1,city_1,postal_code_1,'Contact') && checkEmail(email_1) && checkNumbers(phone_1) && checkModel(vehicle_model) && checkVehicleLocation(vehicle_location)) {
		document.service_form.reloadForm.value = "mail";
		document.service_form.submit();
	} else {
		alert(preError + errorString + postError);
	}
}

function autoFill() {
	if (document.service_form.dah_number.value != '') {
		document.service_form.reloadForm.value = "reload";
		document.service_form.cmd.value = "autofill";
		document.service_form.submit();
	} else {
		alert('No Agreement number was entered.');
	}
}

function contact() {
	errorString = "";
	errorNumber = 0;
	var first_name = document.contact_form.first_name.value;
	var last_name = document.contact_form.last_name.value;
	var address_1 = document.contact_form.address_1.value;
	var postal_code_1 = document.contact_form.postal_code_1.value;
	var city_1 = document.contact_form.city_1.value;
	var email_1 = document.contact_form.email_1.value;
	var phone_1 = document.contact_form.phone_1.value;
	var vehicle_model = document.contact_form.vehicle_model.value;
	var message_1 = document.contact_form.message.value;
	
	if (checkNames(first_name,last_name) && checkAddress(address_1,city_1,postal_code_1,'Contact') && checkEmail(email_1) && checkNumbers(phone_1) && checkModel(vehicle_model) && checkMessage(message_1)) {
		document.contact_form.submit();
	} else {
		alert(preError + errorString + postError);
	}
}

function dealerLogIn() {
	var errors = false;
	errorString = "";
	errorNumber = 0;
	var username = document.logInForm.dealerUsername.value;
	var password = document.logInForm.dealerPassword.value;
	
	if (username == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Please enter a Username.\n";
	}
	if (password == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Please enter a Password.\n";
	}
	if (errors) {
		alert(preError + errorString + postError);
	} else {
		document.logInForm.submit();
	}
}

function dealerSignup() {
	errorString = "";
	errorNumber = 0;
	var companyName= document.signUpForm.companyName.value;
	var companyAddress= document.signUpForm.companyAddress.value;
	var companyCity= document.signUpForm.companyCity.value;
	var companyPostalCode= document.signUpForm.companyPostalCode.value;
	var contactName= document.signUpForm.contactName.value;
	var contactPosition= document.signUpForm.contactPosition.value;
	var contactPhone= document.signUpForm.contactPhone.value;
	var contactEmail= document.signUpForm.contactEmail.value;
	
	if (checkCompany(companyName) && checkAddress(companyAddress,companyCity,companyPostalCode,'Company') && checkFullname(contactName) && checkPosition(contactPosition) && checkNumbers(contactPhone) && checkEmail(contactEmail)) {
		document.signUpForm.submit();
	} else {
		alert(preError + errorString + postError);
	}
}
function submitAgreement() {
	var errors = false;
	var agree = false;
	errorString = "";
	errorNumber = 0;
	var name= document.agreementForm.authorized_name.value;
	if (document.agreementForm.agree[1].checked) {
		agree = true;
	}
	if (name == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Please enter an authorized representatives name.\n";
	}
	if (!agree) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "You must agree to the terms and conditions of the dealer agreement.\n";
	}
	if (!errors) {
		document.agreementForm.submit();
	} else {
		alert(preError + errorString + postError);
	}
}

function submitSupplies() {
	var errors = false;
	var agree = false;
	errorString = "";
	errorNumber = 0;
	var rForms_index = document.suppliesForm.readmittanceForms.selectedIndex;
	var rEnvelopes_index = document.suppliesForm.readmittanceEnvelopes.selectedIndex;
	var brochures_index = document.suppliesForm.brochures.selectedIndex;
	var contracts_index = document.suppliesForm.contracts.selectedIndex;
	var windowCling_index = document.suppliesForm.windowCling.selectedIndex;
	var topperTent_index = document.suppliesForm.topperTent.selectedIndex;
	var posters_index = document.suppliesForm.posters.selectedIndex;
	var backlits_index = document.suppliesForm.backlits.selectedIndex;
	var banners_index = document.suppliesForm.banners.selectedIndex;
	var tableTopSign_index = document.suppliesForm.tableTopSign.selectedIndex;
	var tableTopSignHolder_index = document.suppliesForm.tableTopSignHolder.selectedIndex;
	
	if (rForms_index == 0 && rEnvelopes_index == 0 && brochures_index == 0 && contracts_index == 0 && windowCling_index == 0 && topperTent_index == 0 && posters_index == 0 && backlits_index == 0 && banners_index == 0 && tableTopSign_index == 0 && tableTopSignHolder_index == 0) {
		alert('You haven\'t chosen a quantity of any product.');
	} else {
		document.suppliesForm.submit();
	}
	
}

function dealerRequestService() {
	var errors = false;
	errorString = "";
	errorNumber = 0;
	var modelName = document.service_form.vehicle_model.value;
	
	if (modelName == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Please enter a vehicle model.\n";
	}
	if (!errors) {
		document.service_form.reloadForm.value = "mail";
		document.service_form.submit();
	} else {
		alert(preError + errorString + postError);
	}
}
function dealerlogOut() {
	document.dealerLogOut.submit();
}

function referredBy(formName) {
	if (eval("document." + formName + ".referral_source[1].checked")) {
		eval(navRefOne + "referral_dealer" + navRefTwo + ".style.display = 'block'");
		eval(navRefOne + "referral_other" + navRefTwo + ".style.display = 'none'");
	} else if (eval("document." + formName + ".referral_source[2].checked")) {
		eval(navRefOne + "referral_dealer" + navRefTwo + ".style.display = 'none'");
		eval(navRefOne + "referral_other" + navRefTwo + ".style.display = 'block'");
	} else {
		eval(navRefOne + "referral_dealer" + navRefTwo + ".style.display = 'none'");
		eval(navRefOne + "referral_other" + navRefTwo + ".style.display = 'none'");
	}
}
function updateTotal() {
	document.daPurchaseForm.da_action.value = "update";
	document.daPurchaseForm.submit();
}
function checkCard() {
	var errors = false;
	errorString = "";
	errorNumber = 0;
	var cardNum = document.daPurchaseForm.discount_code.value;
	cardNum = cardNum.toUpperCase();
	if (cardNum == '' ) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "No card number was entered.\n";
	} else if (cardNum.substr(0,3) != 'DAI') {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Card is formatted wrong. Please correct and try again.\n";
	} else if (cardNum.indexOf('-') == -1) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Card is formatted wrong. Please correct and try again.\n";
	}
	
	if (errors == false) {
		document.daPurchaseForm.da_action.value = "giftcard";
		document.daPurchaseForm.submit();
	} else {
		alert(preError + errorString + postError);
	}
	
	
}
function purchaseDa() {
	var total_amount = document.daPurchaseForm.total_amount.value;
	
	if (total_amount == "") {
		alert('Please click the Update Total button before purchasing. Thanks!');
	} else {
	errorString = "";
	errorNumber = 0;
	var gift_card_purchase;
	var discount_code_purchase;
	var first_name = document.daPurchaseForm.first_name.value;
	var last_name = document.daPurchaseForm.last_name.value;
	var baddress = document.daPurchaseForm.baddress.value;
	var bcity = document.daPurchaseForm.bcity.value;
	var bzip = document.daPurchaseForm.bzip.value;
	var email = document.daPurchaseForm.email.value;
	var bphone = document.daPurchaseForm.bphone.value;
	var vin = document.daPurchaseForm.vin.value;
	var vehicle_model = document.daPurchaseForm.vehicle_model.value;
	var odometer = document.daPurchaseForm.odometer.value;
	var ccname = document.daPurchaseForm.ccname.value;
	var ccnumber = document.daPurchaseForm.ccnumber.value;
	var ccidentifier1 = document.daPurchaseForm.ccidentifier1.value;
	var code = document.daPurchaseForm.discount_code.value.toUpperCase();
	
	
	// determine if this is a gift card transaction
	if (code != "") {
		var dai = code.substr(0,3);
		if (dai != "DAI") {
			gift_card_purchase = false;
			discount_code_purchase = true;
		} else {
			gift_card_purchase = true;
			discount_code_purchase = false;
		}
	} else {
		gift_card_purchase = false;
		discount_code_purchase = false;
	}
	
	if (gift_card_purchase == true && total_amount < 1) {
		if (checkAgree() && checkNames(first_name,last_name) && checkAddress(baddress,bcity,bzip,'Billing') && checkNumbers(bphone) && checkEmail(email) && checkVin(vin) && checkModel(vehicle_model) && checkOdometer(odometer)) {
			document.daPurchaseForm.da_action.value = "purchase";
			document.daPurchaseForm.submit();
		} else {
			alert(preError + errorString + postError);
		}
	} else {
		if (checkAgree() && checkNames(first_name,last_name) && checkAddress(baddress,bcity,bzip,'Billing') && checkNumbers(bphone) && checkEmail(email) && checkVin(vin) && checkModel(vehicle_model) && checkOdometer(odometer) && checkValidateNum(ccidentifier1) && checkCreditCard(ccname,ccnumber)) {
			document.daPurchaseForm.da_action.value = "purchase";
			document.daPurchaseForm.submit();
		} else {
			alert(preError + errorString + postError);
		}
	}
	
	
	}
	
}


/* #################### form validation #################### */
function checkAgree() {
	var errors = false;
	if (document.daPurchaseForm.agree[0].checked) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "You must agree to the terms and conditions of the agreemet.\n";
	}
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkCreditCard(cc_name,cc_number) {
	var errors = false;
	var cardType = cc_number.charAt(0);
	if (cc_name == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Please enter the name on the credit card.\n";
	} else if (cc_number == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Please enter a credit card number.\n";
	} else if (cc_number.length < 15) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Credit card number must be 15 or 16 digits long.\n";
	} else if (isNaN(cc_number)) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Credit card number must be a number. No spaces.\n";
	} else if (cardType != 3 && cardType != 4 && cardType != 5 && cardType != 6) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "We only accept Visa, Mastercard, Discover and American Express.\n";
	}
	
	
	
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkValidateNum(number) {
	var errors = false;
	if ((document.daPurchaseForm.cc_verify_present[0].checked) && (number == "")) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Please enter a credit card verification code or select another option.\n";
	}
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkVin(vin_num) {
	var errors = false;
	if (vin_num == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Please enter a VIN number.\n";
	} else if (vin_num.length < 17) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "VIN number has too few characters, please re-enter.\n";
	}
	
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkOdometer(odom_num) {
	var errors = false;
	if (odom_num == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Please enter an Odometer reading.\n";
	} else if (isNaN(odom_num)) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Odometer reading must be a number. No spaces or commas.\n";
	} else if (parseInt(odom_num) > 75000) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Odometer reading is higher then the maximum of 75,000 miles. Sorry your vehicle is not eligable for Dent Armor\n";
	}
	if (errors) {
		return false;
	} else {
		return true;
	}

}
function checkMessage(message) {
	var errors = false;
	if (message == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Please submit a question, comment, or message in the box provided.\n";
	}
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkCompany(company) {
	var errors = false;
	if (company == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "A company name was not entered.\n";
	}
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkPosition(position) {
	var errors = false;
	if (position == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "A company position was not entered.\n";
	}
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkFullname(name) {
	var errors = false;
	if (name == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "A contact name was not entered.\n";
	}
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkNames(first,last) {
	var errors = false;
	if (first == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "First name was not entered.\n";
	}
	if (last == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Last name was not entered.\n";
	}
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkAddress(address,city,zip,type) {
	var errors = false;
	if (address == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + type + " address was not entered.\n";
	}
	if (city == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + type + " city was not entered.\n";
	}
	if (zip == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + type + " postal code was not entered.\n";
	}
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkNumbers(phone,fax) {
	var errors = false;
	if (phone == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Phone number was not entered.\n";
	}
	if (fax != null) {
		if (fax == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Fax number was not entered.\n";
		}
	}
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkEmail(emailAddress) {
	var errors = false;
	var theAt = emailAddress.indexOf("@");
	var theDot = emailAddress.lastIndexOf(".");
	var aSpace = emailAddress.indexOf(" ");
	var illegalChar = false;
	var theChar = "";
	var illegalChars = "!#$%^&*()/:;,+";
	/* check if address exists */
	if (emailAddress == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Email address was not entered!\n";
	} else 
	/* check the formatting */
	if ((theAt == -1) || (theAt == 0) || (theDot == -1) || (theDot < theAt + 1) || (theDot > emailAddress.length - 1) || (aSpace != -1)) {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Email address is formatted wrong!\n";
	} else {
	/* check for illegal characters */
		for (x = 0; x < illegalChars.length; x++) {
			theChar = illegalChars.charAt(x);
			if (emailAddress.indexOf(theChar) != -1) {
				illegalChar = true;
			}
		}
		if (illegalChar == true) {
			errors = true;
			errorNumber++;
			errorString += errorNumber + errorNumDot + "Email address contains illegal characters!\n";
		}
	}
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkModel(model) {
	var errors = false;
	if (model == "") {
		errors = true;
		errorNumber++;
		errorString += errorNumber + errorNumDot + "Vehicle model was not entered.\n";
	}
	if (errors) {
		return false;
	} else {
		return true;
	}
}
function checkVehicleLocation(local) {
	if (local == "other") {
		var address_2 = document.service_form.address_2.value;
		var postal_code_2 = document.service_form.postal_code_2.value;
		var city_2 = document.service_form.city_2.value;
		if (!checkAddress(address_2,city_2,postal_code_2,'Vehicle location')) {
			return false;
		} else {
			return true;
		}
	} else {
		return true;
	}
}