﻿var errArr = new Array();
var addcount = 0;
var inprocess = false;
var toRemove = new Array();

function getItemId(domItem) {
	return parseInt(domItem.id.substring(domItem.id.lastIndexOf("_") + 1, domItem.id.length));
} //end getItemId


function changeCaptcha() {
	Sell.ChangeCaptcha(changeCaptcha_callback);
} //end changeCaptcha



function changeCaptcha_callback(res) {
	if (res.error != null) {
		document.getElementById('5').style.backgroundColor = "#FF0000";
		document.getElementById('5Error').innerHTML = "Server Error. Refresh Page; Try Again";
	} else if (res.value) {
		document.getElementById('captchaCell').innerHTML = "";
		document.getElementById('captchaCell').innerHTML = "<img src='/hidden/JpegImage.aspx?" + (new Date().getTime()) + "' alt='' />"
	} //end if
} //end changeCaptcha_callback



function sendMail() {
	//are there any machines in the list?
	if (document.getElementById("tr_nomachines")) {
		triggerAlert(document.getElementById("sell_error"), "WARNING", "You have not added any machines. Please Click 'Add Machine' above and complete the form.");
		return;
	} //end if
	
	//are there any tr_add_* rows?
	var pending = document.getElementsByTagName("tr");
	for (var i = 0; i < pending.length; i++) {
		if (pending[i].className == 'pending') {
			triggerAlert(document.getElementById("sell_error"), "WARNING", "There are still machines waiting to be added in the list above (Yellow Rows).");
			return;
		} //end if
	} //end for
	
	triggerAlert(document.getElementById('sell_error'), "INFO", "Processing Request. Please Wait...");
	
	//clear any previous error DOM mutations
	for (var i = 0; i < errArr.length; i++) {
		var errorLoc = errArr[i].charAt(0);
		
		document.getElementById(errArr[i].charAt(0)).style.backgroundColor = "#FFFFFF";
		document.getElementById(errArr[i].charAt(0) + "Error").innerHTML = "";
	} //end for
	
	Sell.SendMail(
		document.getElementById(nameID).value,
		document.getElementById(emailID).value,
		document.getElementById(phoneID).value, ValidatePhone(document.getElementById(phoneID)),
		document.getElementById('comments').value,
		document.getElementById('captcha').value,
		document.getElementById('div_listdump').innerHTML,
		sendMail_callback);
} //end sendMail


function sendMail_callback(res) {
	if (res.error != null) {
		triggerAlert(document.getElementById('sell_error'), "ERROR", "The Server was unable to complete your request. Please try again later. " + res.error);
	} else if (res.value[0] != null) {
		errArr = res.value;
		triggerAlert(document.getElementById('sell_error'), "WARNING", "Could Not Send Email. Please fix input errors before proceeding.");
		document.getElementById('captcha').value = "";
		changeCaptcha();
		
		for (var i = 0; i < res.value.length; i++) {
			var errorLoc = res.value[i].charAt(0);
			var errorMsg;
			
			errorMsg = res.value[i].substring(1, res.value[i].length);
			document.getElementById(errorLoc).style.backgroundColor = "#FFFE91";
			document.getElementById(errorLoc.toString() + "Error").innerHTML = errorMsg;
		} //end for
	} else {
		inprocess = false;
		window.location = "/Default.aspx?msg=emailyes";
	} //end if
} //end sendMail_callback


function addMachine() {
	inprocess = true;
	if (document.getElementById("tr_nomachines")) {
		document.getElementById("tbody").removeChild(document.getElementById("tr_nomachines"));
	} //end if
		
	HTMLtoDOM(Sell.GetAddMachineTemplate(addcount).value, document.getElementById("tbody"));
	addcount++;
} //end addMachine


function cancelMachine(caller) {
	var callerID = getItemId(caller); //UNAVAILABLE... fucking useless
	document.getElementById('tbody').removeChild(document.getElementById('tr_add_' + callerID));

	//any accounts left?
	if (document.getElementById('tbody').getElementsByTagName("tr").length == 0) { 
		HTMLtoDOM(Sell.GetNoMachinesTemplate().value, document.getElementById("tbody"));
		inprocess = false;
	} //end if
} //end cancelMachine


function addMachineToList(caller) {
	document.getElementById("tbl_location").style.backgroundColor = "#ffffff";
	var callerID = getItemId(caller);

	//verify the information
	if (document.getElementById("txt_add_quantity_" + callerID).value.length <= 0) {
		triggerAlert(document.getElementById('sell_listError'), "WARNING", "Please Enter a Quantity");
		return;
	} //end if
	
	if (document.getElementById("txt_add_make_" + callerID).value.length <= 0) {
		triggerAlert(document.getElementById("sell_listError"), "WARNING", "Please Enter a Make");
		return;
	} //end if
	
	if (document.getElementById("txt_add_model_" + callerID).value.length <= 0) {
		triggerAlert(document.getElementById("sell_listError"), "WARNING", "Please Enter a Model");
		return;
	} //end if
	
	//verify the address
	if (document.getElementById(companyName).value.length <= 0 || document.getElementById("txt_address1").value.length <= 0 ||
			document.getElementById("txt_city").value.length <= 0 || document.getElementById("txt_state").value.length <= 0 ||
			document.getElementById("txt_zip").value.length <= 0) {
		triggerAlert(document.getElementById("sell_listError"), "WARNING", "Please Enter the Location of the Machine");
		document.getElementById("tbl_location").style.backgroundColor = "#FFFE91";
		return;		
	} //end if
	
	//everything's coming up Milhouse!
	document.getElementById("sell_listError").className = "errorEmpty";
	document.getElementById("sell_listError").innerHTML = "";
	
	//Fucking DO IT!
	//get a template from the server and use javascript to put the info into it...
	
	var newRow = Sell.AddMachine(parseInt(callerID),
		document.getElementById("txt_add_quantity_" + callerID).value,
		document.getElementById("ddl_add_equipment_" + callerID).options[document.getElementById("ddl_add_equipment_" + callerID).selectedIndex].text,
		document.getElementById("txt_add_make_" + callerID).value,
		document.getElementById("txt_add_model_" + callerID).value,
		document.getElementById("txt_add_accessories_" + callerID).value,
		document.getElementById(companyName).value,
		document.getElementById("txt_address1").value,
		document.getElementById("txt_address2").value,
		document.getElementById("txt_city").value,
		document.getElementById("txt_state").value,
		document.getElementById("txt_zip").value,
		document.getElementById("rb_stairsYes").checked
	);
	
	if (newRow.error != null) {
		triggerAlert(document.getElementById("sell_listError"), "ERROR", "Error Adding to List! Please Try Again Later or Call 800-487-6798");
		return;
	} else {
		document.getElementById("tbody").replaceChild(HTMLtoDOM(newRow.value, document.createElement("div")), document.getElementById("tr_add_" + callerID));
	} //end if
} //end addMachine


function deleteMark(caller) {
	var callerID = getItemId(caller);
	
	if (caller.checked) {
		toRemove.push(callerID);
		document.getElementById("tr_" + callerID).style.backgroundColor = "#FFFE91";
	} else {
		for (var i = 0; i < toRemove.length; i++) {
			if (toRemove[i] == callerID) {
				toRemove.splice(i, 1);
				document.getElementById("tr_" + callerID).style.backgroundColor = "#f7f9fa";
			} //end if
		} //end for
	} //end if
} //end deleteMark


function deleteMachines() {
	if (toRemove.length == 0) { return; }
	
	for (var i = 0; i < toRemove.length; i++) {
		document.getElementById("tbody").removeChild(document.getElementById("tr_" + toRemove[i]));
	} //end for
	
	toRemove = new Array();
	
	//any accounts left?
	if (document.getElementById('tbody').getElementsByTagName("tr").length == 0) { 
		HTMLtoDOM(Sell.GetNoMachinesTemplate().value, document.getElementById("tbody"));
		inprocess = false;
	} //end if
} //end removeModels


function confirmExit() {
	if (inprocess) {
		return "You have not yet submitted this information to Midwest Copier Exchange. This list is NOT saved or seen by Midwest Copier until you submit the form. If you leave the page now, you will lose any information that has been filled out.";
	} //end if
} //end confirmExit


window.onbeforeunload = confirmExit;
