// JavaScript Document

function updateLines(){
	var outputDiv = document.getElementById("qsLines");
	var numLines = document.getElementById("cboQSLines").value;
	
	var lineQty = new Array();
	var lineCode = new Array();
	var stockMsg = new Array();
	var mods = new Array();
	var selMod = new Array();
	var titleLeft = '&nbsp;';
	var titleRight = '&nbsp;';
	for(k = 1; k <= numLines; k++){
		if(document.getElementById("txtQty"+k)){
			lineQty[k] = document.getElementById("txtQty"+k).value;
			lineCode[k] = document.getElementById("txtCode"+k).value;
			stockMsg[k] = document.getElementById("stockChk"+k).innerHTML;
			if(document.getElementById("mod"+k)) mods[k] = document.getElementById("mod"+k).innerHTML;
// modifier1
			if(document.getElementById("modifier"+k)) selMod[k] = document.getElementById("modifier"+k).value;
		}
	}
	titleLeft = document.getElementById("titleLeft").innerHTML;
	if(document.getElementById("titleRight")) titleRight = document.getElementById("titleRight").innerHTML;
	
	var output = '';
	output += '<table width="600" cellspacing="4" cellpadding="0" border="0">';
	output += '<tr>';
	output += '<td style="width:70px;" align="center"><span style="font-weight:bold;">Quantity</span></td>';
	output += '<td style="width:230px;" align="left"><span style="font-weight:bold;">Product/Stock Code</span><span id="titleLeft" style="font-weight:bold;">'+titleLeft+'</span></td>';
	output += '<td style="width:70px;" align="center">'+(numLines > 1 ? '<span style="font-weight:bold;">Quantity</span>' : '&nbsp;')+'</td>';
	output += '<td style="width:230px;" align="left">'+(numLines > 1 ? '<span style="font-weight:bold;">Product/Stock Code</span><span id="titleRight" style="font-weight:bold;">'+titleRight+'</span>' : '&nbsp;')+'</td>';	
	output += '</tr>';
	for(j = 1; j <= numLines; j++){
		output += '<tr>';
		output += '<td align="center" valign="top">'+(j <= numLines ? '<input name="txtQty'+j+'" id="txtQty'+j+'" type="textbox" class="formfields" maxlength="4" style="width:30px; text-align:center;" value="'+(lineQty[j] ? lineQty[j] : 1)+'" onblur="javascript: chkQty(\'txtQty'+j+'\');" /><span id="qtyErr'+j+'"></span>' : '&nbsp;')+'</td>';
		output += '<td align="left" valign="top">'+(j <= numLines ? '<input name="txtCode'+j+'" id="txtCode'+j+'" type="textbox" class="formfields" maxlength="100" style="width:120px;" value="'+(lineCode[j] ? lineCode[j] : ' Enter Stock Code ')+'" onfocus="javascript: clearCode(\'txtCode'+j+'\');" onblur="javascript: codePrompt(\'txtCode'+j+'\'); getModifiers('+j+',\'Left\');" onkeyup="javascript: getModifiers('+j+',\'Left\');" /> <span id="mod'+j+'">'+(mods[j] ? (mods[j].replace('value="'+selMod[j]+'"','value="'+selMod[j]+'" selected="selected"')) :'') +'</span><span id="codeErr'+j+'"></span><br /><span id="stockChk'+j+'" style="padding-left:10px;">'+(stockMsg[j] ? stockMsg[j] : '&nbsp;')+'</span>' : '&nbsp;')+'</td>';
		j++;
		output += '<td align="center" valign="top">'+(j <= numLines ? '<input name="txtQty'+j+'" id="txtQty'+j+'" type="textbox" class="formfields" maxlength="4" style="width:30px; text-align:center;" value="'+(lineQty[j] ? lineQty[j] : 1)+'" onblur="javascript: chkQty(\'txtQty'+j+'\');" /><span id="qtyErr'+j+'"></span>' : '&nbsp;')+'</td>';
		output += '<td align="left" valign="top">'+(j <= numLines ? '<input name="txtCode'+j+'" id="txtCode'+j+'" type="textbox" class="formfields" maxlength="100" style="width:120px;" value="'+(lineCode[j] ? lineCode[j] : ' Enter Stock Code ')+'" onfocus="javascript: clearCode(\'txtCode'+j+'\');" onblur="javascript: codePrompt(\'txtCode'+j+'\'); getModifiers('+j+',\'Right\');" onkeyup="javascript: getModifiers('+j+',\'Right\');" /> <span id="mod'+j+'">'+(mods[j] ? (mods[j].replace('value="'+selMod[j]+'"','value="'+selMod[j]+'" selected="selected"')) :'') +'</span><span id="codeErr'+j+'"></span><br /><span id="stockChk'+j+'" style="padding-left:10px;">'+(stockMsg[j] ? stockMsg[j] : '&nbsp;')+'</span>' : '&nbsp;')+'</td>';
		output += '</tr>';
	}
	output += '</table>';
	output += '<input name="lineCount" id="lineCount" type="hidden" value="'+numLines+'" />';
	outputDiv.innerHTML = output;
}


function chkQty(eleID){
	var eleQty = document.getElementById(eleID);
	var qtyEntered = eleQty.value;
	if(qtyEntered.length == 0)	qtyEntered = 0;
	if(isNaN(qtyEntered))	qtyEntered = 0;
	eleQty.value = qtyEntered;
}

function clearCode(eleID){
	var eleCode = document.getElementById(eleID);
	var codeEntered = eleCode.value;
	if(codeEntered == ' Enter Stock Code ') codeEntered = '';
	eleCode.value = codeEntered;
}

function codePrompt(eleID){
	var eleCode = document.getElementById(eleID);
	var codeEntered = eleCode.value;
	if(codeEntered.length == 0) codeEntered = ' Enter Stock Code ';
	eleCode.value = codeEntered;
}

function checkStock(lineID){
	var xmlHttp = checkxmlHttp();
	var msg = '&nbsp;';
	var qtyMsgSpan = document.getElementById("stockChk" + lineID);
	var modID = document.getElementById("modifier" + lineID).value;
	var qtyZero = document.getElementById("txtQty" + lineID);
	if(modID.length > 0){
		var url = 'http://' + siteURL + '/qsStockCheck.php?modID=' + modID + '&action=stock';
		if(xmlHttp){
			xmlHttp.open("GET",url,false);
			xmlHttp.send(null);
			msg = xmlHttp.responseText;
		}
	}
	qtyMsgSpan.innerHTML = msg;
}

function getModifiers(lineID,side){
	var xmlHttp = checkxmlHttp();
	var msg = '&nbsp;';
	var modSpan = document.getElementById("mod" + lineID);
	var titleSpan = document.getElementById("title" + side);
	var qtyMsgSpan = document.getElementById("stockChk" + lineID);
	var sCode = document.getElementById("txtCode" + lineID).value;
	qtyMsgSpan.innerHTML = msg;
	if(sCode.length >= 6){ // full code is 6 chars
		var qty = document.getElementById("txtQty" + lineID).value;
		var url = 'http://' + siteURL + '/qsStockCheck.php?stockcode=' + sCode + '&qty=' + qty + '&lineID=' + lineID + '&action=modifiers';
		if(xmlHttp){
			xmlHttp.open("GET",url,false);
			xmlHttp.send(null);
			msg = xmlHttp.responseText;
		}
	}
	if(msg != '&nbsp;' && msg.indexOf('|') > 0){
		msgArr = msg.split('|');
		modSpan.innerHTML = msgArr[1];
		titleSpan.innerHTML = msgArr[0];
	}else{
		modSpan.innerHTML = msg;
		titleSpan.innerHTML = (titleSpan.innerHTML == msg ? msg : titleSpan.innerHTML);
	}
	if(sCode.length >= 6){
		checkStock(lineID);
	}
}



function GetXmlHttpObject() {
	var objXMLHttp=null;
	if (window.XMLHttpRequest) {
		objXMLHttp=new XMLHttpRequest();
	} else if (window.ActiveXObject) {
		objXMLHttp=new ActiveXObject("Msxml2.XMLHTTP");
		if(!objXMLHttp){
			objXMLHttp=new ActiveXObject("Microsoft.XMLHTTP");
		}
	}
	return objXMLHttp;
}

function checkxmlHttp(){
	var notAvail = false;
	var tmpxmlHttp = GetXmlHttpObject();
	if(tmpxmlHttp == null){
		alert("Your browser does not support xml Http Request.\n\nPlease use either Internet Explorer 6+ or Mozilla Firefox");
		return notAvail;
	}else{
		return tmpxmlHttp;
	}
}

