//
var MacStr = "http://support.mdl.ru/cgi-bin/db2www.exe/Goods2.MAC/JSList4aGroup.js?GMask=";
var RowClrs = new Array();	// colors of Goods rows
var ORwClrs = new Array();	// colors of Order rows
var GifDir		= '/gif.nd/';
var TableColor	= '#E8F7E5';
var TableClrEm	= '#FFF799';
var THBgColor	= '#F0CA20';
var TRBgColor	= '#D6E9D1';
var TRBgClrEm	= '#FDE484';
var sec = 0;
var nRows = 0;
// ----------------------Order Object Implementation Begin
var OrderItems	= new Array(); // of AnOrderItem
var OIptrs		= new Array(); // of pointers to OrederItems

var OIppty = ["Name","Id","Qty","PrescribedPrice","DesiredPrice"];
function AnOrderItem (Name, Id, Qty, PrescribedPrice, DesiredPrice) {
	this[OIppty[0]]	= Name;
	this[OIppty[1]]	= Number(Id);
	this[OIppty[2]]	= Number(Qty);
	this[OIppty[3]]	= Number(PrescribedPrice);
	this[OIppty[4]]	= Number(DesiredPrice);
	OIptrs[Id]		= nRows;
}
AnOrderItem.prototype.IsInOrder = function (PId) {
  if (typeof OIptrs[PId] === 'undefined') {
	return false;
  } else {
	return true;
  }
}
AnOrderItem.prototype.toString = function () {
  var outStr = '{';
  var comma = ',';
  for (var i=0; i<OIppty.length; i++) {
	comma = (i==OIppty.length-1)? '':',';
	switch (typeof(this[OIppty[i]])) {
	 case "string":	
		Quot ='\"';
		break;
	 default:	Quot ='';
	}
	outStr += OIppty[i]+':'+Quot+this[OIppty[i]] +Quot+comma;
  }
  return outStr+'}';
}

AnOrderItem.prototype.toNumsOnly = function () {
  var outStr = '';
  var comma = ',';
  for (var i=0; i<OIppty.length; i++) {
	comma = (i==OIppty.length-1)? '':',';
	switch (typeof(this[OIppty[i]])) {
	 case "string":	
		break;
	 default:
		outStr += this[OIppty[i]] +comma;
	}
  }
  return outStr+'';
}

function OrderItemsArray2JS() {
  var eml = document.getElementById('email');
  var outStr	= '';
  var newln	= '\n';
  for (var i=0; i<OrderItems.length; i++) {
	outStr += ''+OrderItems[i].toNumsOnly()+newln;
  }
  return outStr +'\n'+eml.value+'\n'+servDT;
}

function OrderItemsArray2Opera() {
  var eml = document.getElementById('email');
  var outStr	= '';
  var newln	= '%0D%0A';
  for (var i=0; i<OrderItems.length; i++) {
	outStr += ''+OrderItems[i].toNumsOnly()+newln;
  }
  return outStr +eml.value+'%0D%0A'+servDT;
}

function OrderForm() {
 if (HM_Opera || HM_IE) {
  return ''+
  ' <form id=\"SendOrder\" action=\"\"'+
  '	onsubmit=\"'+
  '  if	(isEmail(document.getElementById(\'email\'))'+
  '  	) {'+
  '	  this.action=\'mai'+'lto:'+mail.substr(7)+','+oper1.substr(7)+
				 '?subject=www.mdl.ru_order&body=\\n\'+OrderItemsArray2Opera()'+
  '  } else {return false;}\"'+
  ' method=\"POST\" enctype=\"text\/plain\">'+
  ' <input type=\"text\" name=\"email\" id=\"email\" size=\"20\" value=\"Ваш e-mail\" onfocus=\"if (eml1st) {this.value=\'\';eml1st=false;}\" onchange=\"isEmail(this);\" \/>'+
  ' <input type=\"submit\" value=\"Отослать оператору\" \/>'+
  ' <\/form>';
 }
 return ''+
 ' <form id=\"SendOrder\" action=\"\"'+
 '	onsubmit=\"'+
 '  if	(isEmail(document.getElementById(\'email\'))'+
 '  	) {'+
 '	  var OIAjs = document.getElementById(\'OrderItemsArrayJS\');'+
 '    OIAjs.value = \'\\n\'+OrderItemsArray2JS();'+
 '	  this.action=\'mai'+'lto:'+mail.substr(7)+','+oper1.substr(7)+'\';'+
 '  } else {return false;}\"'+
 ((HM_IE)?
	' method=\"GET\">'
  :((HM_Opera)?
	' method=\"GET\">'
  :	' method=\"POST\" enctype=\"text\/plain\">'
  ))+
 ' <input type=\"hidden\" name=\"subject\" id=\"OrderItemsSubject\" value=\"www.mdl.ru_order\" \/>'+
 ' <input type=\"hidden\" name=\"body\" id=\"OrderItemsArrayJS\" value=\"\" \/>'+
 ' <input type=\"text\" name=\"email\" id=\"email\" size=\"20\" value=\"Ваш e-mail\" onfocus=\"if (eml1st) {this.value=\'\';eml1st=false;}\" onchange=\"isEmail(this);\" \/>'+
 ' <input type=\"submit\" value=\"Отослать оператору\" \/>'+
 ' <\/form>';
}
// ----------------------Order Object Implementation End

var GrLoaded = new Array();
var GrIdByMs = new Object();
for (var i=0; i<GrQty; i++) {
 GrLoaded[i] = false;
 GrIdByMs[GrMs[i]] = i;
}
function SGno (CurGrMsk) { // A=0, B=1 etc..., not AA=1 etc!
 return CurGrMsk.charCodeAt(0)-65; //65='A'.charCodeAt(0);
}
function LoadJS4Gr (Gr) {
  if (GrLoaded[GrIdByMs[Gr.charAt(0)]]) {
	return; // already loaded
  }
  var scrpts = document.getElementsByTagName('script');
  var ascrpt = document.createElement('script');
  ascrpt.setAttribute('src', MacStr+Gr.charAt(0)+
	((typeof Cost === 'undefined')?'':'&Cost=Y')+
	((typeof Rsrv === 'undefined')?'':'&Rsrv=Y')
  );
  var tmpStr = ''+scrpts.length;
  for (var i=0; i<scrpts.length; i++) {
	tmpStr+='\n'+scrpts[i].getAttribute('src');
	if ((scrpts[i].getAttribute('src')!=null) &&
		(scrpts[i].getAttribute('src').indexOf(MacStr+Gr.charAt(0)+
									((typeof Cost === 'undefined')?'':'&Cost=Y')+
									((typeof Rsrv === 'undefined')?'':'&Rsrv=Y')
		))) {
	  // already exist, ought to be reloaded
	  //var Aparent = scrpts[i].parentNode;
	  //var ToRplce = scrpts[i];
	  //alert(Gr+' ('+ToRplce.getAttribute('src')+') already exist!')
	  //Aparent.replaceChild(ascrpt,ToRplce);
	  //return;
	}
  }
  //alert(tmpStr);
  scrpts[0].parentNode.appendChild(ascrpt);
}
function DetectHome () {
  var scrpts = document.getElementsByTagName('script');
  // var tmpStr = ''+scrpts.length;
  for (var i=0; i<scrpts.length; i++) {
	// tmpStr+='\n'+scrpts[i].getAttribute('src');
	if ((scrpts[i].getAttribute('src')!=null) &&
		(scrpts[i].getAttribute('src').indexOf('http://www.mdl.ru/usd.js') != -1)) {
		scrpts[i].setAttribute('src',"/usd.js")
	} else if ((scrpts[i].getAttribute('src')!=null) &&
		(scrpts[i].getAttribute('src').indexOf('127.0.0.1') != -1)) {
	  // localhost is used, do not go to inet
	  isLocalhost = true;
	  // tmpStr +=' 127.0.0.1: '+scrpts[i].getAttribute('src').indexOf('127.0.0.1');
	  MacStr = MacStr.replace(/support\.mdl\.ru/gi,"127.0.0.1");
	  // tmpStr +='\nMacStr=\"'+MacStr+'\"\n';
	  return;
	}
  }
  // alert(tmpStr);
}

function FillGrLoaded (Gr) {
  function ReallyFill (CurGrMsk) {
	var CurSGno = SGno(CurGrMsk);
	var curGrId = GrIdByMs[CurGrMsk.charAt(0)]
	if (!GrLoaded[curGrId] && (typeof PdID[CurSGno] !== 'undefined')) {
	  SGrLoadedQty++;
	  do {	// mark as loaded all groups with the same 1st letter
		GrLoaded[curGrId] = true;
		curGrId++;
		if (curGrId >= GrQty) break;
	  } while (GrMs[curGrId].charAt(0) == currGr.charAt(0));
	  // make a pointers to goods by it ID
	  for (var j=0; j<PdID[SGno(CurGrMsk)].length; j++) {
		IDptr[PdID[SGno(CurGrMsk)][j]] = {Gr: SGno(CurGrMsk), No: j};
	  }
	}
  }
  if (Gr != '*') {
	ReallyFill(Gr);
  } else {
	var GrMsk = 'A';
	for (var curGrId=0; curGrId<27; curGrId++) {
	  GrMsk = String.fromCharCode(curGrId+65);
	  ReallyFill(GrMsk);
	}
  }
}

var SGrLoadedQty = 0;
var curSec	= 0;
var T2Rpt	= 20; // sec
var HowMany = 4;
var ShedId	= setInterval('DoOnShedule();', 1000);
function DoOnShedule() {
  if (currGr == '_computer') {return};
  FillGrLoaded(currGr)
  DoWriteList4Group(currGr)
  //window.status = 'SGrLoadedQty='+SGrLoadedQty+', curSec='+curSec;
  if (curSec != T2Rpt) {
	curSec++;
  } else {
	curSec = 0;
	// commented rows below displays loaded scripts - 4 debug only
	//var scrpts1 = document.getElementsByTagName('script');
	//var tmpStr = 'alr.loaded: '+scrpts1.length +' scripts:';
	//for (var i=0; i<scrpts1.length; i++) {
	  //tmpStr+='\n'+scrpts1[i].getAttribute('src');
	//}
	//alert(tmpStr);
	if (HowMany > 0) {
	  switch (HowMany) {
		case 4:
		LoadJS4Gr ('A');
		break;
		case 3:
		LoadJS4Gr ('B');
		break;
		case 2:
		LoadJS4Gr ('C');
		break;
		default:
		break;
	  }
	  HowMany--;
	} else {
	  //clearInterval(ShedId);
	}
  }
}

var IDptr = new Array();
 function init() {
  //
  AllowDWR();	// allow to change prescribed price to one of: Dealer/WareHouse/Retail
  DoWriteList4Group(currGr)
 }
 function trackTime() {
	var el = document.getElementById('loadTime');
	if (el != null) {
	  if (sec == 0) {
		el.appendChild(document.createTextNode('0'));
	  } else if (sec <10) {
		el.childNodes[0].data += ' '+Gqty.length;
	  } else {
	  }
	  sec++;
	}
 }
 function D(obj) {
	obj.style.backgroundColor = THBgColor;
 }
 function L(obj) {
	var j = obj.id.substr(2);	// obj.id -> "Rw*"
	obj.style.backgroundColor = RowClrs[j];
 }
 function oL(obj) {
	var j = obj.id.substr(2);	// obj.id -> "Or*"
	obj.style.backgroundColor = ORwClrs[j];
 }
 function ChClr(obj) {
	var RwPId = obj.id.substr(2);	// obj.id -> "Rw*"
	var el;
	el = document.getElementById('Rw' +RwPId);
	var curPId = el.firstChild.getAttribute('id').substr(2);
	switch (RowClrs[RwPId]) {
		case TableColor :
			RowClrs[RwPId] = TableClrEm;
		break;
		case TRBgColor :
			RowClrs[RwPId] = TRBgClrEm;
		break;
		case TableClrEm :
			RowClrs[RwPId] = TableColor;
		break;
		case TRBgClrEm :
			RowClrs[RwPId] = TRBgColor;
	}
	if ((OrderItems.length !=0) && (OrderItems[0].IsInOrder(curPId))) {
	if ((OrderItems[OIptrs[curPId]].Id) &&
		(OrderItems[OIptrs[curPId]].Qty) > 0) { // PdID is in Order in qty>0
	  RowClrs[RwPId]	= ((RwPId%2 == 0)? TableClrEm : TRBgClrEm);
	}}
	el.style.backgroundColor = RowClrs[RwPId];
  }

  // Begin of preparing Order functions
	function IncOrderTotal(PId) {
		var OrderTotalObj = document.getElementById('OrderTotal');
		var OrderTotal = Number(OrderTotalObj.firstChild.data) -0+Number((OrderItems[OIptrs[PId]].DesiredPrice)?OrderItems[OIptrs[PId]].DesiredPrice:OrderItems[OIptrs[PId]].PrescribedPrice);
		OrderTotalObj.firstChild.data = cent(OrderTotal);
	}
	function DecOrderTotal(PId) {
		var OrderTotalObj = document.getElementById('OrderTotal');
		var OrderTotal = Number(OrderTotalObj.firstChild.data) -Number((OrderItems[OIptrs[PId]].DesiredPrice)?OrderItems[OIptrs[PId]].DesiredPrice:OrderItems[OIptrs[PId]].PrescribedPrice);
		OrderTotalObj.firstChild.data = cent(OrderTotal);
	}
	function CreateOrderRow4(PId,Qty,PrescribedPrice,DesiredPrice) {
		ORwClrs[nRows]	= ((nRows%2 == 0)? TableColor : TRBgColor);
		if (PId > 0) {
		  OrderItems[nRows] = new AnOrderItem(
			Name[IDptr[PId].Gr][IDptr[PId].No],
			PdID[IDptr[PId].Gr][IDptr[PId].No],
			(Qty)?Qty:1,
			(PrescribedPrice)?PrescribedPrice:PrscrbdPrice(PId),
			(typeof DesiredPrice==='undefined')? 0:
			 (PrescribedPrice==PrscrbdPrice(PId))? DesiredPrice:
			  (Number(DesiredPrice)!=0)? Math.min(PrescribedPrice,DesiredPrice):
				PrescribedPrice
		  )
		} else if (PId == 0) { // zero Product?!
		  return
		} else { // Computer
		  OrderItems[nRows] = new AnOrderItem(
			PCShNm[PCptrs[PId]],
			PId,
			(Qty)?Qty:1,
			(PrescribedPrice)?PrescribedPrice:PrscrbdPrice(PId),
			(typeof DesiredPrice==='undefined')? 0:
			 (PrescribedPrice==PrscrbdPrice(PId))? DesiredPrice:
			  (Number(DesiredPrice)!=0)? Math.min(PrescribedPrice,DesiredPrice):
				PrescribedPrice
		  )
		}
		var orderObj = document.getElementById('order');
		var row = document.createElement('tr');
		row.style.backgroundColor = ORwClrs[nRows];
		var aCell	= new Object();
		var aInner	= new Object();
		row.setAttribute('id','Or' +nRows);
		row.onmouseover	= function() {D(this)};
		row.onmouseout	= function() {oL(this)};
		aCell = document.createElement('td');
		aCell.ondblclick	= function() {DecQtyOrderRow4(this.parentNode)};
		aCell.appendChild(document.createTextNode(OrderItems[OIptrs[PId]].Name +'[' +OrderItems[OIptrs[PId]].Id +']'));
		row.appendChild(aCell);
		row.firstChild.setAttribute('id','Oi' +OrderItems[OIptrs[PId]].Id);
		aCell = document.createElement('td');
		aCell.ondblclick	= function() {DecQtyOrderRow4(this.parentNode)};
		aCell.setAttribute('id','Oq' +PId.toString());
		aCell.appendChild(document.createTextNode(''+OrderItems[OIptrs[PId]].Qty+'x'));
		row.appendChild(aCell);
		aCell = document.createElement('td');
		aCell.ondblclick	= function() {DecQtyOrderRow4(this.parentNode)};
		aCell.appendChild(document.createTextNode(OrderItems[OIptrs[PId]].PrescribedPrice));
		aCell.setAttribute('id','Op' +PId.toString());
		row.appendChild(aCell);
		if ((typeof isPriceFishy)!=='undefined') isPriceFishy(aCell);
		aCell = document.createElement('td');
		aCell.setAttribute('id','Od' +PId.toString());
		aInner = document.createElement('input');
		aInner.setAttribute('type','text');
		aInner.setAttribute('class',((nRows % 2) ? 'odd':'even'));
		aInner.setAttribute('size','1');
		aInner.setAttribute('id','Ot' +PId.toString());
		aInner.setAttribute('value','' +OrderItems[OIptrs[PId]].DesiredPrice);
		aInner.onchange = function() {
		  if (!regular(this.value)) {
			this.focus();
			this.select();
			alert('недопустимое значение');
			this.value	= OrderItems[OIptrs[PId]].DesiredPrice;
		  } else {
			var OrderTotalObj = document.getElementById('OrderTotal');
			var OrderTotal = Number(OrderTotalObj.firstChild.data)
			OrderTotal	-= OrderItems[OIptrs[PId]].Qty*Number((OrderItems[OIptrs[PId]].DesiredPrice)?OrderItems[OIptrs[PId]].DesiredPrice:OrderItems[OIptrs[PId]].PrescribedPrice);
			OrderTotal	+= OrderItems[OIptrs[PId]].Qty*Number((Number(this.value))?this.value:OrderItems[OIptrs[PId]].PrescribedPrice);
			OrderItems[OIptrs[PId]].DesiredPrice	= Number(this.value);
			OrderTotalObj.firstChild.data = cent(OrderTotal);
		  }
		};
		aInner.style.borderStyle = 'none';
		aInner.style.paddingLeft = '4px';
		aInner.style.fontSize = '10px';
		aInner.style.backgroundColor = ORwClrs[nRows];
		aCell.appendChild(aInner)
		row.appendChild(aCell);
		var curRow = orderObj.appendChild(row);
		if ((typeof isPriceFishy)!='undefined') isPriceFishy(aCell);
		nRows++;
		IncOrderTotal(PId);
	}
	function DecQtyOrderRow4(obj2) {
		var oRwId = obj2.id.substr(2);	// row to delete from order: obj2.id -> "Or*"
		var el;
		el = document.getElementById('Or' +oRwId);
		var cr2PId = el.firstChild.getAttribute('id').substr(2);
		OrderItems[OIptrs[cr2PId]].Qty--;
		DecOrderTotal(cr2PId);
		if (OrderItems[OIptrs[cr2PId]].Qty > 0) {
		  var orderObj = document.getElementById('Oq' +OrderItems[OIptrs[cr2PId]].Id);
		  orderObj.firstChild.data = ''+OrderItems[OIptrs[cr2PId]].Qty+'x';
		} else {	// delete a row: self row, proper orderItems and recalc ORwClrs[nRows]
		  el.parentNode.removeChild(el);
		  var brnNme = document.getElementById('id'+cr2PId);
		  if (brnNme) {
			var brnRow = brnNme.parentNode;
			brnRowNo = brnRow.id.substr(2);
			RowClrs[brnRowNo]	= ((brnRowNo%2 == 0)? TableColor : TRBgColor); //repare clr
			brnRow.style.backgroundColor = RowClrs[brnRowNo];
		  }
		  var aInr;
		  var tmpORw;
		  var tmpORwPId;
		  for (var kk=oRwId-0+1.0; kk<nRows; kk++) { // recalc order rows colors, reId its
			tmpORw	= document.getElementById('Or'+kk);	// obj.id -> "Or*"
			tmpORwPId	= tmpORw.firstChild.getAttribute('id').substr(2);
			tmpORw.setAttribute('id','Or'+(kk-1));
			tmpORw.style.backgroundColor = ORwClrs[kk-1];
			aInr = document.getElementById('Ot' +tmpORwPId);
			aInr.style.backgroundColor = ORwClrs[kk-1];
			OrderItems[kk-1]	= OrderItems[kk];
			OIptrs[tmpORwPId]	= kk-1;
		  }
		  delete ORwClrs[nRows];
		  delete OrderItems[nRows];
		  delete OIptrs[cr2PId];
		  nRows--;
		}
	}
	function IncQtyOrderRow4(PId) {
		OrderItems[OIptrs[curPId]].Qty++;
		var orderObj = document.getElementById('Oq' +OrderItems[OIptrs[PId]].Id);
		orderObj.firstChild.data = ''+OrderItems[OIptrs[curPId]].Qty+'x';
		IncOrderTotal(PId);
	}	
 //-- end of preparing Order functions

 var curPId;
 function Add2Order(obj) {
	ChClr(obj)
	var RwId = obj.id.substr(2);	// obj.id -> "Rw*"
	var el;
	el = document.getElementById('Rw' +RwId);
	curPId = el.firstChild.getAttribute('id').substr(2);
	if (OrderItems.length ==0) {
	  CreateOrderRow4(curPId);
	} else if (OrderItems[0].IsInOrder(curPId)) {
	  IncQtyOrderRow4(curPId);
	} else {
	  CreateOrderRow4(curPId);
	}
 }

function DeleteList4Group(GrNm) {
 var GrNo	= GrNm.charCodeAt(0)-65;
 var RwNo = 0;
 for (i=0; i<Gqty[GrNo]; i++) {
  if (PdGr[GrNo][i] === GrNm) {
	document.getElementById('Rw' +RwNo);
	RwNo++;
  }
 }
}

function clearContents() {
 var cntntTbl = document.getElementById('contents');
 var nr = cntntTbl.rows.length-1;
 while (nr > 0) {
	cntntTbl.deleteRow(nr);
	nr--;
 }
}

var HowLongLoading = 0;

function DoWriteList4Group(CurGrMsk) {
 var cntntHdr = document.getElementById('CntntHead');
 if (cntntHdr == null) return;			// space to write do not exist
 if (typeof PdID[SGno(CurGrMsk)] === 'undefined') {	// till nothing to write, wait for info
	if (cntntHdr.firstChild.data.substring(0,MiddleHead.length) != MiddleHead) {
	  // this is first call on loading
	  HowLongLoading = 0;
	  cntntHdr.firstChild.data = MiddleHead;
	  clearContents();
	}
	cntntHdr.firstChild.data +='.';
	HowLongLoading++;
	//var tmpStr11 = window.status;
	//window.status = CurGrMsk+', '+SGno(CurGrMsk)+', '+'SGrLoadedQty='+SGrLoadedQty+', curSec='+curSec;
	return;
 }
 if ((cntntHdr.firstChild.data.indexOf(MiddleHead) == -1) &&
	 (GrOnBr == CurGrMsk))	return;		// already writed
 //alert(SGno(CurGrMsk)+'\n'+CurGrMsk+'\nGrIdByMs.CurGrMsk='+GrIdByMs[CurGrMsk]+'\nGrLoaded='+GrLoaded[GrIdByMs[CurGrMsk]].toString()+'\ntypeof PdID[SGno(CurGrMsk)]===\'undefined\''+(typeof PdID[SGno(CurGrMsk)]==='undefined').toString())
 //window.status = CurGrMsk+', '+SGno(CurGrMsk)+', '+'SGrLoadedQty='+SGrLoadedQty+', curSec='+curSec;
 var jj = 1;
 for (i=0; i<GrMs.length; i++) {
  if (GrMs[i] === CurGrMsk.charAt(0)) {
	cntntHdr.firstChild.nodeValue = GrNm[i];
	while (CurGrMsk.length > jj) {
		i++;
		if (GrMs[i].charAt(jj) === CurGrMsk.charAt(jj)) {
			cntntHdr.firstChild.nodeValue += '> '+ GrNm[i];
			jj++;
		}
	}
	break;
  }
 }
 var cntntTbl = document.getElementById('contents');
 var nr = cntntTbl.rows.length-1;
 while (nr > 0) {
	cntntTbl.deleteRow(nr);
	nr--;
 }
 var GrNo	= SGno(CurGrMsk);
 var RwNo	= 0;
 var row	= new Object();
 var aCell	= new Object();
 var aHref	= new Object();
 for (i=0; i<Gqty[GrNo]; i++) {
  if (PdGr[GrNo][i] === CurGrMsk) {
	row = document.createElement('tr');
	RowClrs[RwNo]	= ((RwNo%2 == 0)? TableColor : TRBgColor);
	if ((OrderItems.length !=0) && (OrderItems[0].IsInOrder(PdID[GrNo][i]))) {
	if (OrderItems[OIptrs[PdID[GrNo][i]]].Qty > 0) { // PdID is in Order at qty>0
	  RowClrs[RwNo]	= ((RwNo%2 == 0)? TableClrEm : TRBgClrEm);
	}}
	row.style.backgroundColor = RowClrs[RwNo];
	row.setAttribute('id','Rw' +RwNo);
	row.onmouseover	= function() {D(this)};
	row.onmouseout	= function() {L(this)};
	row.ondblclick	= function() {Add2Order(this)};
	aCell = document.createElement('td');
	aCell.appendChild(document.createTextNode(Name[GrNo][i] +'[' +PdID[GrNo][i] +']'));
	row.appendChild(aCell);
	row.firstChild.setAttribute('id','id' +PdID[GrNo][i]);
	if (typeof Cost !== 'undefined') {
	  aCell = document.createElement('td');
	  aHref = document.createElement('a');
	  aHref.setAttribute('href',"javascript:actn(\'/Php/GoodsIncome.php?PdID="+PdID[GrNo][i]+"\')");
	  aHref.appendChild(document.createTextNode(Cost[GrNo][i]));
	  aCell.appendChild(aHref);
	  row.appendChild(aCell);
	}
	aCell = document.createElement('td');
	aCell.appendChild(document.createTextNode((onSt[GrNo][i]!=0)?onSt[GrNo][i]:''));
	row.appendChild(aCell);
	if (typeof Rsrv !== 'undefined') {
	  aCell = document.createElement('td');
	  aHref = document.createElement('a');
	  aHref.setAttribute('href',"javascript:actn(\'/Php/ReservedGoods.php?PdID="+PdID[GrNo][i]+"\')");
	  aHref.appendChild(document.createTextNode(Rsrv[GrNo][i]));
	  aCell.appendChild(aHref);
	  row.appendChild(aCell);
	}
	aCell = document.createElement('td');
	//aCell.setAttribute('class','numClmn');
	aCell.appendChild(document.createTextNode(DlPr[GrNo][i]));
	row.appendChild(aCell);
	aCell = document.createElement('td');
	//aCell.setAttribute('class','numClmn');
	aCell.appendChild(document.createTextNode(WsPr[GrNo][i]));
	row.appendChild(aCell);
	aCell = document.createElement('td');
	//aCell.setAttribute('class','numClmn');
	aCell.appendChild(document.createTextNode(RtPr[GrNo][i]));
	row.appendChild(aCell);
	cntntTbl.appendChild(row)
	RwNo++;
  }
 }
 GrOnBr = CurGrMsk;
}

Dl = 0;
Ws = 1;
Rt = 2;
In = 3;
var CurPrescribedPrice = Rt;
function PrscrbdPrice(PId) {
 if (PId > 0) {
  switch (CurPrescribedPrice) {
	case Dl :
	  return DlPr[IDptr[PId].Gr][IDptr[PId].No];
	case Ws :
	  return WsPr[IDptr[PId].Gr][IDptr[PId].No];
	case Rt :
	  return RtPr[IDptr[PId].Gr][IDptr[PId].No];
	case In :
	  return Cost[IDptr[PId].Gr][IDptr[PId].No];
 }} else if (PId == 0) { // zero Product?!
	return
 } else { // Computer
  switch (CurPrescribedPrice) {
	case Dl :
	  return PCDlPr[PCptrs[PId]];
	case Ws :
	  return PCWsPr[PCptrs[PId]];
	case Rt :
	  return PCRtPr[PCptrs[PId]];
	case In :
	  return PCCost[PCptrs[IPId]];
 }}
}

function AllowDWR() {
 if (typeof Cost !== 'undefined') {
	var InPr = document.getElementById('Cost');
	InPr.ondblclick	= function() {Recalc2(In)};
 }
 var Deal = document.getElementById('Deal');
 Deal.ondblclick	= function() {Recalc2(Dl)};
 var Wrhs = document.getElementById('Wrhs');
 Wrhs.ondblclick	= function() {Recalc2(Ws)};
 var Retl = document.getElementById('Retl');
 Retl.ondblclick	= function() {Recalc2(Rt)};
}

function Recalc2(propClm) {
 CurPrescribedPrice = propClm;
 var OrderTotalObj = document.getElementById('OrderTotal');
 var OrderTotal = -0.0;
 var tmpORw;
 var prsbPrObj;
 var prsbPr = 0;
 for (var i=0; i<nRows; i++) {
	tmpORw	= document.getElementById('Or'+i);	// obj.id -> "Or*"
	tmpORwPId	= tmpORw.firstChild.getAttribute('id').substr(2);
	prsbPrObj	= document.getElementById('Op'+tmpORwPId);
	prsbPr		= PrscrbdPrice(tmpORwPId);
	prsbPrObj.firstChild.data	= prsbPr;
	OrderItems[OIptrs[tmpORwPId]].PrescribedPrice	= prsbPr;
	OrderTotal += OrderItems[OIptrs[tmpORwPId]].Qty*Number((OrderItems[OIptrs[tmpORwPId]].DesiredPrice)?OrderItems[OIptrs[tmpORwPId]].DesiredPrice:prsbPr);
 }
 OrderTotalObj.firstChild.data = cent(OrderTotal);
}

function DoWriteList4PC() {
 var cntntHdr = document.getElementById('CntntHead');
 if (cntntHdr == null) return;			// space to write do not exist
 cntntHdr.firstChild.nodeValue = 'Module Computers';
 var cntntTbl = document.getElementById('contents');
 var nr = cntntTbl.rows.length-1;
 while (nr > 0) {
	cntntTbl.deleteRow(nr);
	nr--;
 }
 var RwNo	= 0;
 var row	= new Object();
 var aCell	= new Object();
 var aSpan	= new Object();
 var aBr	= new Object();
 var aHref	= new Object();
 for (i=0; i<PCqty; i++) {
	row = document.createElement('tr');
	RowClrs[RwNo]	= ((RwNo%2 == 0)? TableColor : TRBgColor);
	row.style.backgroundColor = RowClrs[RwNo];
	row.setAttribute('id','Rw' +RwNo);
	row.onmouseover	= function() {D(this)};
	row.onmouseout	= function() {L(this)};
	row.ondblclick	= function() {Add2Order(this)};
	aCell = document.createElement('td');
	aSpan = document.createElement('span');
	aSpan.appendChild(document.createTextNode('Module '+PCShNm[i]+' ['+PCid[i].toString()+']'));
	aSpan.appendChild(document.createElement('br'));
	aSpan.appendChild(document.createTextNode(PCName[i]));
	aCell.appendChild(aSpan);
	row.appendChild(aCell);
	row.firstChild.setAttribute('id','id' +PCid[i].toString());
	if (typeof Cost !== 'undefined') {
	  aCell = document.createElement('td');
	  aHref = document.createElement('a');
	  aHref.setAttribute('href',"javascript:actn(\'\')");
	  aHref.appendChild(document.createTextNode(PCCost[i]));
	  aCell.appendChild(aHref);
	  row.appendChild(aCell);
	}
	aCell = document.createElement('td');
	aCell.appendChild(document.createTextNode('+'));
	row.appendChild(aCell);
	if (typeof Rsrv !== 'undefined') {
	  aCell = document.createElement('td');
	  aHref = document.createElement('a');
	  aHref.setAttribute('href',"javascript:actn(\'\')");
	  aHref.appendChild(document.createTextNode('-'));
	  aCell.appendChild(aHref);
	  row.appendChild(aCell);
	}
	aCell = document.createElement('td');
	//aCell.setAttribute('class','numClmn');
	aCell.appendChild(document.createTextNode(PCDlPr[i]));
	row.appendChild(aCell);
	aCell = document.createElement('td');
	//aCell.setAttribute('class','numClmn');
	aCell.appendChild(document.createTextNode(PCWsPr[i]));
	row.appendChild(aCell);
	aCell = document.createElement('td');
	//aCell.setAttribute('class','numClmn');
	aCell.appendChild(document.createTextNode(PCRtPr[i]));
	row.appendChild(aCell);
	cntntTbl.appendChild(row)
	RwNo++;
 }
 GrOnBr = '_computer';
}
