﻿
var gv_invItemAC=new Array();
var gv_invItemName=new Array();
var gv_invItemIndex=0;
var gv_invItemFocusIndex=0; 
var gv_invItemNumPerPage=0;
var gv_invItemCurPage=0; 
var gv_invItemTotPage=0;
var gv_invItemEditingData=0;
var gv_invItemDataCategory=null;
var gv_invItemEditedName=null;  
var gv_invItemEditedValue=null; 
var gv_tempTable;
var gv_invItemRowH=20;
var gv_scrollCurPage=0;
var gv_scrollTotPage=0;
var curPageName=0;
var gv_orderNo=0;

function invItemPageLeft()
{
	if(gv_scrollCurPage<=0) return;

	var selitemcat=document.getElementById('selinvitemcat'); 
	var divtab=document.getElementById('tempTable');
	var tleft=divtab.style.pixelLeft;
	if(tleft>=gv_winw-30) {	
		gv_scrollCurPage--;
		divtab.style.pixelLeft=0;
		if(selitemcat) { 
//			if(gv_invItemEditingData==1) checkSopItemPageEdited(gv_scrollCurPage+1); 
			selitemcat.selectedIndex=gv_scrollCurPage;
			showInvItemDataPage();
		}
		else { 
			gv_invItemCurPage=gv_scrollCurPage;		
			gv_invItemIndex=0;
			showInvList();
		}
	}
	else {
		divtab.style.pixelLeft=tleft+30;
		setTimeout("invItemPageLeft();",75);
	}
}

function invItemPageRight()
{
	
	var selitemcat =document.getElementById('selinvitemcat');
	var divtab=document.getElementById('tempTable');
	
	var tleft=divtab.style.pixelLeft;
	if(tleft<30-gv_winw) {	
		gv_scrollCurPage++;
		divtab.style.pixelLeft=0;
		if(selitemcat) { //Customer data
			selitemcat.selectedIndex=gv_scrollCurPage;
//			if(gv_invItemEditingData==1) checkSopItemPageEdited(gv_scrollCurPage-1); //Save any edited data to memory
			showInvItemDataPage();			
		}
		else { //customer list
			gv_invItemCurPage=gv_scrollCurPage;		
			gv_invItemIndex=0;
			showInvList();
		}
	}
	else {
		divtab.style.pixelLeft=tleft-30;
		setTimeout("invItemPageRight();",75);
	}
}

  function showInvItemDetail(cmdid)
{
	gv_invItemEditingData=0;
	getInvItemDetail();
}

function getInvItemDetail()
{
	var ACIndex=gv_invItemCurPage*gv_invItemNumPerPage+gv_invItemIndex;
	var url = gv_rooturl+"?cmd=InvItemDetail&OrderNo="+gv_orderNo+"&index="+ACIndex;
	var xmlhttp = newHttpRequest(url,true);
	if( xmlhttp==null ) return;
	xmlhttp.onreadystatechange=function() {
		if (xmlhttp.readyState==4 ) {
			if( xmlhttp.status!=200 ) alert("Connection error");
			else {
				gv_invItemDataCategory=xmlhttp.responseXML.getElementsByTagName("DataCategory");
				if(gv_invItemDataCategory.length==0) alert("Cannot load details!");
				else {
					gv_scrollCurPage=0;
					gv_scrollTotPage=gv_invItemDataCategory.length;
					showInvItemDataPage();
				}
			}
			document.getElementById('idloading').style.visibility='hidden';
		}
	}
	xmlhttp.send(null);
	document.getElementById('idloading').style.visibility='visible';
	gv_invItemEditedName=null;
	gv_invItemEditedValue=null;
}

function editInvItemDetail(cmdid)
{
	gv_invItemEditingData=1;
	getInvItemDetail();
}

function showInvItemDataPage()
{ 
 var widstyle="style='width:"+Math.round(gv_winw/2).toString()+"px' ";
 var tabstr="<table cellpadding='1' cellspacing='0' style='position:absolute;background-color:#98F898;width:"+(gv_winw-4)+"px;left:2px;'>"; 
 var ycur=gv_tempTable.style.pixelTop=gv_device==Nokia ? 28:26;
 var tdh="height='"+gv_invItemRowH+"px'";  //height='24px'
 var rowJump="<tr><td align=right "+tdh+">Jump to Page</td><td><select class='edtxt' "+widstyle+" id='selinvitemcat' onchange='jumpToInvItemCat();'>";
    for(var ic=0; ic<gv_invItemDataCategory.length; ic++) {
  var attName0=gv_invItemDataCategory[ic].attributes.getNamedItem("title");
  if(attName0) {
   var tname=attName0.value.replace('_',' ');
   rowJump+="<option label='"+tname+"'";
   if(ic==gv_scrollCurPage) rowJump+=" selected=true";
   rowJump+=">"+tname+"</option>";
  }
 } 
 rowJump+="</select></td></tr>";
 

 for(var ic=gv_scrollCurPage; ic<gv_invItemDataCategory.length; ic++) {
  var attName=gv_invItemDataCategory[ic].attributes.getNamedItem("title"); 
  if(attName==null) continue;
  var rowtxt=ic==gv_scrollCurPage ? rowJump:'';
  rowtxt += "<tr><td colspan=2 align=center "+tdh+" style='color:blue;font-weight:bold;text-decoration:underline;'>"
   +attName.value+"</td></tr>";
   
   ycur+=gv_invItemRowH;
 var curNode=gv_invItemDataCategory[ic].firstChild;
  var end_tdr = gv_invItemEditingData==1 ? "></td></tr>":" ReadOnly></td></tr>"; 

   while( curNode ) 
  {
   var itemName=curNode.nodeName;
   var itemId=ic.toString()+"_"+itemName;
   var ndv=curNode.firstChild;
//   var itemVal=getEditedInvItemData(itemId);
//   if(itemVal==null) itemVal=ndv?ndv.nodeValue:'';
   var itemVal = "";
    if(ndv != null)
    {
      itemVal = ndv.nodeValue;
    }
      if(itemName == "Comment1")
      {
        rowtxt+="<tr><td align=right "+tdh+">Comment 1 &nbsp</td>";
        rowtxt+="<td "+tdh+"><input type='text' class='edtxt'  "+widstyle+
        "value='"+itemVal+"' id='"+itemId+"'"+end_tdr;
      }
       else if(itemName == "Comment2")
      {
        rowtxt+="<tr><td align=right "+tdh+">Comment 2 &nbsp</td>";
        rowtxt+="<td "+tdh+"><input type='text' class='edtxt'  "+widstyle+
        "value='"+itemVal+"' id='"+itemId+"'"+end_tdr;
      }
       else if(itemName == "Order_Line_Reference")
      {
        rowtxt+="<tr><td align=right "+tdh+">Order Line &nbsp<br>Reference &nbsp</td>";
        rowtxt+="<td "+tdh+"><input type='text' class='edtxt'  "+widstyle+
        "value='"+itemVal+"' id='"+itemId+"'"+end_tdr;
      }
       else if(itemName == "Unit_Price_GBP")
      {
        rowtxt+="<tr><td align=right "+tdh+">Unit Price GBP &nbsp</td>";
        rowtxt+="<td "+tdh+"><input type='text' class='edtxt' "+widstyle+
        "value='"+itemVal+"' id='"+itemId+"'"+end_tdr;
      }
       else if(itemName == "Discount")
      {
        rowtxt+="<tr><td align=right "+tdh+">Discount % &nbsp</td>";
        rowtxt+="<td "+tdh+"><input type='text' class='edtxt' "+widstyle+
        "value='"+itemVal+"' id='"+itemId+"'"+end_tdr;
      }

      else 
      {
        rowtxt+="<tr><td align=right "+tdh+">"+itemName.replace('_',' ')+"&nbsp&nbsp"+"</td>";
        rowtxt+="<td "+tdh+"><input type='text' class='edtxt' "+widstyle+
        "value='"+itemVal+"' id='"+itemId+"'"+end_tdr;
      }
   curNode=curNode.nextSibling;
   ycur+=gv_invItemRowH;
   }
  
  
  //if(ic==gv_scrollCurPage || ycur+45<gv_winh) tabstr+=rowtxt; else break;
  if(ic==gv_scrollCurPage) tabstr+=rowtxt;
   }
    tabstr += "</table>";
    gv_tempTable.innerHTML = tabstr;
    if(document.getElementById('saveinvitemdata')==null) 
//    setInvItemPageScrollCommands('','');
    setInvItemPageScroll();
    setTopTitle('Sop -> Invoice Item Data');
    doNokiaMenuInvItemPage();
}

function doNokiaMenuInvItemPage()
{
	if(window.widget) {
		window.menu.clear();
		var mBack = new MenuItem('Back',2102);
		mBack.onSelect=backSops;
		window.menu.append(mBack);
	}
}
function setInvItemPageScroll()
{
    var pncur1=document.getElementById('pn_cur3');
    pncur1.innerHTML='Page '+(gv_scrollCurPage+1)+' of '+gv_scrollTotPage;
    var pnleft1=document.getElementById('pn_left3');
    pnleft1.innerHTML=gv_scrollCurPage>0 ? gv_scrollCurPage.toString():'';
    var pnright1=document.getElementById('pn_right3');
    pnright1.innerHTML=gv_scrollCurPage<gv_scrollTotPage-1 ? (gv_scrollCurPage+2).toString():'';    
}

//function setInvItemPageScrollCommands(cmd1,cmd2)
//{
//	document.getElementById('invitembtn1').innerHTML=cmd1;
//	document.getElementById('invitembtn2').innerHTML=cmd2;
//	var sopitemcmd=document.getElementById('sopItemCmds').style;
//	var ncmds=cmd1.length<5 ? 0:1;
//	if(cmd2.length>5) ncmds++;
//	sopitemcmd.pixelWidth=150+50*ncmds;
//	sopitemcmd.pixelLeft=gv_winw-sopitemcmd.pixelWidth-1;
//}

function jumpToInvItemCat()
{
	var selitemcat = document.getElementById('selinvitemcat');
//	if(gv_sopItemEditingData==1) checkSopItemPageEdited(gv_scrollCurPage); //Save any edited data to memory
	gv_scrollCurPage=selitemcat.selectedIndex;	
//	curPageName="SopItemDetails";
	showInvItemDataPage();
}

//function checkSopItemPageEdited(pagenum)
//{
//	var itemEle=null;
//    for(var ic=pagenum; ic<gv_sopItemDataCategory.length; ic++) 
//    {
//		var attName=gv_sopItemDataCategory[ic].attributes.getNamedItem("title");	
//		if(attName==null) continue;
//		var curNode=gv_sopItemDataCategory[ic].firstChild;
//		while( curNode ) 
//		{
//			var ndv=curNode.firstChild;
//			var oldv=ndv?ndv.nodeValue:''
//			var itemId=ic.toString()+"_"+curNode.nodeName;
//			itemEle=document.getElementById(itemId);
//			if(itemEle==null) break;
//			var newv=itemEle.value;
//			if(oldv!=newv) setEditSopItemData(itemId,newv);
//			curNode=curNode.nextSibling;
//		}
//		if(itemEle==null) break;
//    }
//}

//function getEditedSopItemData(itemName)
//{
//	if(!gv_sopItemEditedName) return null;	
//	for(var i=0; i<gv_sopItemEditedName.length; i++) {
//		if(gv_sopItemEditedName[i]==itemName) return gv_sopItemEditedValue[i];
//	}
//}

//function setEditSopData(itemName,edValue)
//{
//	if(!gv_sopEditedName) {
//		gv_sopEditedName=new Array();
//		gv_sopEditedValue=new Array();
//	}
//	for(var i=0; i<gv_sopEditedName.length; i++){
//		if(gv_sopEditedName[i]==itemName) {	gv_sopEditedValue[i]=edValue; return; }
//	}
//	gv_sopEditedValue[gv_sopEditedName.length]=edValue;	
//	gv_sopEditedName[gv_sopEditedName.length]=itemName;
//}

//function getEditedSopData(itemName)
//{
//	if(!gv_sopEditedName) return null;	
//	for(var i=0; i<gv_sopEditedName.length; i++) {
//		if(gv_sopEditedName[i]==itemName) return gv_sopEditedValue[i];
//	}
//}

//function showSaveSopItemDataButton()
//{
//	if(document.getElementById('saveitemsopdata')) return;
//	setSopItemPageScrollCommands("<input type='button' id='saveitemsopdata' value='Save' onclick='saveSopItemData(0);' />","");
//}

//function checkSopItemPageEdited(pagenum)
//{
//	var itemEle=null;
//    for(var ic=pagenum; ic<gv_sopItemDataCategory.length; ic++) {
//		var attName=gv_sopItemDataCategory[ic].attributes.getNamedItem("title");	
//		if(attName==null) continue;
//		var curNode=gv_sopItemDataCategory[ic].firstChild;
//		while( curNode ) 
//		{
//			var ndv=curNode.firstChild;
//			var oldv=ndv?ndv.nodeValue:''
//			var itemId=ic.toString()+"_"+curNode.nodeName;
//			itemEle=document.getElementById(itemId);
//			if(itemEle==null) break;
//			var newv=itemEle.value;
//			if(oldv!=newv) setEditSopItemData(itemId,newv);
//			curNode=curNode.nextSibling;
//		}
//		if(itemEle==null) break;
//    }
//}
//function saveSopItemData(cmdid)
//{
//	checkSopItemPageEdited(gv_scrollCurPage);
//	if(gv_sopItemEditedName==null) return;
//	var ACIndex=gv_sopItemCurPage*gv_sopItemNumPerPage+gv_sopItemIndex;
//	var url=gv_rooturl+"?cmd=SaveSopItemData&OrderNo="+gv_invItemAC[ACIndex]+"&index="+ACIndex;
//	for(var i=0; i<gv_sopItemEditedName.length; i++) 
//		url += "&"+gv_sopItemEditedName[i]+"="+gv_sopItemEditedValue[i];	
//	var xmlhttp = newHttpRequest(url,true);
//	if( xmlhttp==null ) return;
//	xmlhttp.onreadystatechange=function() {
//		if (xmlhttp.readyState==4 ) {
//			if( xmlhttp.status!=200 ) alert("Connection error");
//			else if(xmlhttp.responseTEXT=='1') {
//				alert("Data saved OK.");
//				gv_sopItemEditedName=null;
//				gv_sopItemEditedValue=null;
//				backSops();
//			}
//			else alert("Server error!");
//			document.getElementById('idloading').style.visibility='hidden';
//			document.getElementById('idSaving').style.visibility='hidden';
//		}
//	}
//	xmlhttp.send(null);
//	document.getElementById('idloading').style.visibility='visible';
//	document.getElementById('idSaving').style.visibility='visible';
//}

