var originalno = '';
var requiredlabels = ["Order By", "Patient Name", "Shoe Color", "Foot Width", "Foot Width", "Foot Length", "Foot Length", "Shoe Style", "Shoe Style"];

function init() {
	if (elems("postframe") != null)
		elems("postframe").style.display = "none";
	if (document.userform.UserName.value.match(/\w+/)) {
		elems("loginfo").innerHTML = document.userform.UserName.value + ":";
		elems("loginfo").style.display = "inline";
		elems("loginbutton").style.display = "none";
		elems("logoutbutton").style.display = "inline";
	}
	loadshoesizes();
	showslide(0);
}

function showslide(index){
	if (!document.images || !document.images.slide || typeof(slides) == "undefined" || slides.length == 0)
		return;
	if (index >= slides.length)
		index = 0;
	document.images.slide.src = "flash_images/" + slides[index];
	setTimeout("showslide(" + (index + 1) + ")", slidedelay);
}

function login() {
	var loginpanel = elems("loginpanel");
	if (loginpanel.style.display == "none") {
		loginpanel.style.display = "inline";
		document.loginform.UserID.value = "";
		document.loginform.Password.value = "";
		return;
	}
	httpreq.open('POST', 'inc/login.asp', false);
	httpreq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	httpreq.send('UserID=' + document.loginform.UserID.value 
		+ "&Password=" + document.loginform.Password.value);
	elems("loginpanel").style.display = "none";
	if (httpreq.responseText.indexOf(":") < 0)
		return;
	var res = httpreq.responseText.split(":");
	elems("loginfo").innerHTML = res[0] + ":";
	elems("loginfo").style.display = "inline";
	elems("loginbutton").style.display = "none";
	elems("logoutbutton").style.display = "inline";
	if (document.customform) {
		document.customform.UserName.value = res[0];
		document.customform.CUS_ID.value = res[1];
		document.customform.CUS_TYPE.value = res[2];
		document.customform.Session_ID.value = res[3];
	}
	if (document.searchform) {
		document.searchform.UserName.value = res[0];
		document.searchform.CUS_ID.value = res[1];
		document.searchform.CUS_TYPE.value = res[2];
		document.searchform.Session_ID.value = res[3];
	}
	document.userform.UserName.value = res[0];
	document.userform.CUS_ID.value = res[1];
	document.userform.CUS_TYPE.value = res[2];
	document.userform.Session_ID.value = res[3];
}

function logout() {
	document.loginform.UserID.value = "";
	document.loginform.Password.value = "";
	elems("loginfo").style.display = "none";
	elems("loginbutton").style.display = "inline";
	elems("logoutbutton").style.display = "none";
	httpreq.open('GET', 'inc/abandon.asp', false);
	httpreq.send();
	if (elems("results") != null)
		elems("results").innerHTML = "";
	if (document.customform) {
		document.customform.reset();
		document.customform.UserName.value = "";
		document.customform.CUS_ID.value = "";
		document.customform.CUS_TYPE.value = "";
	}
	if (document.searchform) {
		document.searchform.reset();
		document.searchform.CUS_ID.value = "";
		document.searchform.CUS_TYPE.value = "";
		document.searchform.UserName.value = "";
	}
	document.userform.UserName.value = "";
	document.userform.CUS_ID.value = "";
	document.userform.CUS_TYPE.value = "";
	document.userform.Session_ID.value = "";
}

function userLoggedIn() {
	if (document.userform.CUS_ID.value == "") {
		alert("You are not logged in. Please sign in at the top right corner first.");
		return false;
	}
	return true;
}

function readyProceed() {
	if (uploadtimer != null) {
		alert("Please wait.");
		return false;
	}
	return true;
}

function searchorders() {
	if (!readyProceed())
		return;
	elems("msg").innerHTML = "";
	var params = '';
	for (var i = 0; i < document.searchform.elements.length - 2; i++) {
		if (params.length > 0)
			params += "&";
		params += document.searchform.elements[i].name 
			+ '=' + document.searchform.elements[i].value;
	}
	var actionscript = 'orderlist.asp';
	if (document.searchform.INVS_NUM.value.match(/^\d+$/)
	|| document.searchform.ORD_NUM.value.match(/^\d+$/))
		actionscript = 'orderdetails.asp';
	httpreq.open('GET', actionscript + '?' + params, false);
	httpreq.send(null);
	if (httpreq.status == 200)
		elems("results").innerHTML = httpreq.responseText;
	else {
		elems("results").innerHTML = "System Error";
		elems("msg").innerHTML = httpreq.responseText;
	}
}

function expanditem(ordno, invno, custid) {
	var spanobj = elems('ORD_' + ordno);
	var txt = spanobj.innerHTML + '';
	txt = txt.replace(/\s+/, '');
	if (txt.length != 0) 
		spanobj.innerHTML = '';
	else {
		httpreq.open('GET', 'orderdetails.asp?CUS_ID=' + custid
		+ '&UserName=' + document.searchform.UserName.value 
		+ '&ORD_NUM=' + ordno 
		+ '&INVS_NUM=' + invno, false);
		httpreq.send(null);
		spanobj.innerHTML = httpreq.responseText;
	}
}

var requireditems = new Array('Contact', 'PatientName',
	'ShoeColor', 'LWidth', 'RWidth', 'LLength', 'RLength', 
	'LShoeStyle', 'RShoeStyle');

function copyvalue(fieldname) {
	var lobj = eval('document.customform.L' + fieldname);
	var robj = eval('document.customform.R' + fieldname);
	if (lobj.value == '' || robj.value != '')
		return;
	lobj.value = lobj.value.toUpperCase();
	robj.value = lobj.value;
}

function formComplete() {
	var err = '';
	for (var i = 0; i < requireditems.length; i++) {
		var formitem = eval("document.customform." + requireditems[i]);
		if ((formitem + "") == "undefined")
			continue;
		var val = formitem.value;
		if (val.match(/^__test__$/i))
			break;
		if (val == '') {
			// check value for the other side
			var j = i;
			if (requireditems[i].indexOf("L") == 0)
				j = i++;
			else if (requireditems[i].indexOf("R") == 0)
				j = i - 1;
			if (j != i) {
				formitem = eval("document.customform." + requireditems[j]);
				val = formitem.value;
			}
		}
	}
	if (err.length > 0) {
		elems("errors").innerHTML = "Required item(s) not filled: " + err;
		return false;
	}
	return true;
}


function submitcustom() {
	if (!userLoggedIn() || !readyProceed() || !formComplete())
		return;
	// check if ordering regular shoes
	if (document.customform.cat.value != "0" && document.customform.IncShoes.checked) {
		var errs = new Array();
		document.customform.LShoeStyle.value = document.customform.LShoeStyle.value.toUpperCase();
		document.customform.RShoeStyle.value = document.customform.RShoeStyle.value.toUpperCase();
		document.customform.LShoeSize.value = document.customform.LShoeSize.value.toUpperCase();
		document.customform.RShoeSize.value = document.customform.RShoeSize.value.toUpperCase();
		if (stockshoes.indexOf(" " + document.customform.LShoeStyle.value + " ") < 0)
			errs.push("Style " + document.customform.LShoeStyle.value);
		if (document.customform.RShoeStyle.value != document.customform.LShoeStyle.value
		&& stockshoes.indexOf(" " + document.customform.RShoeStyle.value + " ") < 0)
			errs.push("Style " + document.customform.RShoeStyle.value);
		if (errs.length == 0) { // if style is ok, check size, width and color
			loadshoesizes();
			var ls = document.customform.LShoeSize.value.split(/[ \-]+/);
			var rs = document.customform.RShoeSize.value.split(/[ \-]+/);
			if (stocksizes.indexOf(" " + ls[0] + " ") < 0 || stockwidths.indexOf(" " + ls[1] + " ") < 0)
				errs.push("Size " + document.customform.LShoeSize.value);
			if (document.customform.RShoeSize.value != document.customform.LShoeSize.value 
			&& (stocksizes.indexOf(" " + rs[0] + " ") < 0 || stockwidths.indexOf(" " + rs[1] + " ") < 0))
				errs.push("Size " + document.customform.RShoeSize.value);
			if (stockcolors.indexOf(" " + document.customform.ShoeColor.value + " ") < 0)
				errs.push("Color " + document.customform.ShoeColor.value);
		}
		if (errs.length > 0) {
			var proceed = confirm(errs.join(", ") + " not in stock. Do you still want to submit?");
			if (!proceed)
				return;
		}
	}
	// check whether a file is attached
	if (document.customform.file0.value.match(/\w+/)) {
		// strip off path
		var file_name = "";
		var i = document.customform.file0.value.lastIndexOf("\\");
		if (i < 0)
			i = document.customform.file0.value.lastIndexOf("/");
		if (i >= 0)
			file_name = document.customform.file0.value.substr(i + 1);
		else
			file_name = document.customform.file0.value;
		httpreq.open('GET',"inc/filesent.asp?session_id=" + document.customform.Session_ID.value + "&file=" + escape(file_name), false);
		httpreq.send();
		if (httpreq.responseText == "false") {
			if (!confirm('File "' + file_name + '" has not been uploaded yet.\n'
				+ "Choose OK to proceed without uploading the file, or\n"
				+ "Choose CANCEL and click ATTACH button to upload the file first."))
				return;
		}
	}
	if (document.customform.ORD_NUM.value != "") {
		if (!confirm("This order was saved before, do you want to update?"))
			return;
	}
	var formdata = 'lang=' + document.customform.lang.value; // customform.elements[0] is "lang"
	for (var i = 1; i < document.customform.elements.length; i++) {
		if (document.customform.elements[i].type.match(/radio/i)) {
			if (document.customform.elements[i].checked)
				formdata += "&" + document.customform.elements[i].name + "=" + document.customform.elements[i].value;
		} else if (document.customform.elements[i].type.match(/checkbox/i))
			formdata += "&" + document.customform.elements[i].name + "=" + document.customform.elements[i].checked;
		else if (!document.customform.elements[i].type.match(/button/i))
			formdata += "&" + document.customform.elements[i].name + "=" + document.customform.elements[i].value.replace(/\&/g, "%26");
	}
	formdata = formdata.replace(/\s/g, "+");
	elems("msg").innerHTML = "";
	// disable submit/clear buttons
	document.customform.sendbutton.style.display = "none";

	httpreq.open('POST',"inc/CustomOrder.asp", false);
	httpreq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	httpreq.send(formdata);
	if (httpreq.status != 200) {
		elems("msg").innerHTML = httpreq.responseText;
		// enable submit/clear buttons
		document.customform.sendbutton.style.display = "inline";
		return;
	}
	elems("msg").innerHTML = httpreq.responseText;
	var ordno = httpreq.responseText.replace(/\D/g, "");
	if (ordno == '0') {
		elems("confirmation").innerHTML = "An error occurred while processing your order.";
		// enable submit/clear buttons
		document.customform.sendbutton.style.display = "inline";
		return;
	}
	elems("confirmation").innerHTML = "Confirmed Sales Order No. and Work Order No.: " + " " + ordno + ".";
	// save login
	httpreq.open('GET',"inc/renew.asp?CUSID=" + escape(document.userform.CUS_ID.value)
		+ "&UserName=" + escape(document.userform.UserName.value)
		+ "&CUSTYPE=" + document.userform.CUS_TYPE.value, false);
	httpreq.send();
}

function pickitem() {
	if (!userLoggedIn()) {
		return;
	}
	elems("msg").innerHTML = "";
	httpreq.open('POST',"inc/AddItem.asp", false);
	httpreq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	var formdata = "style=" + document.pickform.ShoeStyle.value 
		+ "&color=" + document.pickform.ShoeColor.value 
		+ "&size=" + document.pickform.ShoeSize.value 
		+ "&width=" + document.pickform.ShoeWidth.value 
		+ "&qty=" + document.pickform.ItemQty.value;
	httpreq.send(formdata);
	var count = httpreq.responseText.replace(/\D/g, "");
	elems("regitems").innerHTML = "(" + count + ")";
}

function submitregular() {
	if (!userLoggedIn() || eval(document.itemform.noitems.value) < 5) {
		elems("msg").innerHTML = eval(document.itemform.noitems.value);
		return;
	}
	var formdata = 'lang=' + document.itemform.lang.value; // customform.elements[0] is "lang"
	for (var i = 1; i < document.itemform.elements.length; i++) {
		if (!document.itemform.elements[i].type.match(/button/i))
			formdata += "&" + document.itemform.elements[i].name + "=" + document.itemform.elements[i].value.replace(/\&/g, "%26");
	}
	formdata = formdata.replace(/\s/g, "+");
	elems("msg").innerHTML = "";
	httpreq.open('POST',"inc/RegOrder.asp", false);
	httpreq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	httpreq.send(formdata);
//	elems("msg").innerHTML = httpreq.responseText;
	if (httpreq.status != 200) {
		elems("msg").innerHTML = httpreq.responseText;
		return;
	}
	elems("confirmation").innerHTML = "Confirmed Sales Order No.: " + " " + httpreq.responseText + ".";
	// remove all items, but no refresh page
	httpreq.open('POST',"inc/RemoveItem.asp", false);
	httpreq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	httpreq.send("item=-1");
	// hide submit button
	document.itemform.sendbutton.style.display = "none";
	document.itemform.clearbutton.style.display = "none";
	// save login
	httpreq.open('GET',"inc/renew.asp?CUSID=" + escape(document.userform.CUS_ID.value)
		+ "&UserName=" + escape(document.userform.UserName.value)
		+ "&CUSTYPE=" + document.userform.CUS_TYPE.value, false);
	httpreq.send();
}

function removeitem(itemindex) {
	httpreq.open('POST',"inc/RemoveItem.asp", false);
	httpreq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	httpreq.send("item=" + itemindex);
	location.reload(true);
}

function searchitem() {
	if (document.itemsearch.keywords.value.match(/\w+/)) {
		document.itemsearch.dept.value = "";
		document.itemsearch.cat.value = "";
		document.itemsearch.submit();
	}
	return;
}

function loadshoesizes()  {
	if (document.URL.indexOf("customform.asp?category=") < 0)
		return;
	var s = document.customform.LShoeStyle.value.replace(/\s+/g, "");
	if (s == "")
		s = document.customform.RShoeStyle.value.replace(/\s+/g, "");
	if (s == "")
		return;
	httpreq.open('GET',"inc/ItemSizes.asp?style=" + s, false); 
	httpreq.send();
	var attrs = httpreq.responseText.split(/[\r\n]+/);
	if (attrs.length == 0)
		return;
	var cell = document.getElementById("shoesizelabel");
	cell.title = "Stock sizes: " + attrs[0] + " Widths: " + attrs[1];
	stocksizes = " " + attrs[0] + " ";
	stockwidths = " " + attrs[1] + " ";
	cell = document.getElementById("shoecolorlabel");
	cell.title = "";
	if (attrs.length < 3)
		attrs[2] = "";
	stockcolors = " " + attrs[2] + " ";
	cell.title = "Stock colors: " + attrs[2];
	var stdcolors = ["black", "white", "brown", "wine brown", "tan", "beige", "bone", "taupe"];
	var clrs = attrs[2].split(" ");
	var i = 0;
	while (i < clrs.length) {
		if (document.customform.ShoeColor.options.length < i || document.customform.ShoeColor.options[i].value != clrs[i])
			document.customform.ShoeColor.options[i] = new Option(clrs[i], clrs[i]);
		i++;
	}
	for (var j = 0; j < stdcolors.length; j++, i++) {
		if (document.customform.ShoeColor.options.length < i || document.customform.ShoeColor.options[i].value != clrs[i])
			document.customform.ShoeColor.options[i] = new Option(stdcolors[j], stdcolors[j]);
	}
	document.customform.ShoeColor.options.length = i;
}
