//////////////////////////////////////////////////
//
//
//  oblig. input consts for goods_grops description:
//  GrQty	= $(gdsGrpTable_ROWS)
//  GrNm	= [ ... ,]
//  GrMs	= [ ... ,]
//  CallName - Name of html query, ones uses this menu
var W2Dclose = ''
var pcCalcURL	= 'http://pc.mdl.ru';
var GoodJS_mac	= '/cgi-bin/db2www.exe/GoodS.Mac/';
var fromMenu = false;			// call is made from Menu?
if ((ToCall == '') && (CmntEd == '')) {	// ToCall what proc. to Call by selecting in menu used
  var HtmlReport	= CallName + '?GdsGrMask=';
} else if ((ToCall == '') && (CmntEd != '')) {
  var HtmlReport	= CallName + '?CmntEd=' + CmntEd + '&GdsGrMask=';
} else if ((ToCall != '') && (CmntEd == '')) {
  var HtmlReport	= CallName + '?ToCall=' + ToCall + '&GdsGrMask=';
} else if ((ToCall != '') && (CmntEd != '')) {
  var HtmlReport	= CallName + '?ToCall=' + ToCall + '&CmntEd=' + CmntEd + '&GdsGrMask=';
}

function addBSlash(inStr) {
  len		= inStr.length;
  outStr	= '';
  for (var i=0; i<len; i++) {
	switch (inStr.charAt(i)) {
	  case '\b' :
		outStr += '\\\b';
		break;
	  case '\f' :
		outStr += '\\\f';
		break;
	  case '\n' :
		outStr += '\\\n';
		break;
	  case '\r' :
		outStr += '\\\r';
		break;
	  case '\t' :
		outStr += '\\\t';
		break;
	  case '\'' :
		outStr += '\\\'';
		break;
	  case '\"' :
		outStr += '\\\"';
		break;
	  case '\\' :
		outStr += '\\\\';
		break;
	  default : 
		outStr += inStr.charAt(i);
	};
  };
  return outStr;
}

function MakeArray(calledFrom) {
  document.write('<scr' + 'ipt language="JavaScript1.2">\n<!-- hide scripts\n');
  var GrQtyL = GrMs.length;
  var GrMsLcl	= new Array;
  var GrNmLcl	= new Array;
  var WhatToDo	= '#?';
  var outStr='';
  switch (calledFrom) {
	case "PC_Elaboration":
	case "PC_calc":
	  GrQtyL = GrMsAd.length;
	  for (var i=0; i<GrQtyL; i++) {
		GrMsLcl[i] = GrMsAd[i];
	  }
	  var j=0;
	  for (var i=0; i<GrMs.length; i++) {
		if (GrMsLcl[j] === GrMs[i]) {
		  GrNmLcl[j] = GrNm[i];
		  j++;
		  if (j > GrQtyL) {
			break;
		  };
		};
	  };
	  outStr += 'HM_Array1 = [\n[100,\n50],\n';
		//javascript:changeActive(' + i + ',\'' + CallName + '\')
	  WhatToDo = (calledFrom == "PC_calc") ? (calledFrom + "?SystemID=" + PCSet_ID + "&GdsGrMask=") : "";
	  break;
	case "BaseStats":
	  GrQtyL = GrMs.length;
	  for (var i=0; i<GrQtyL; i++) {
		GrMsLcl[i] = GrMs[i];
	  }
	  var Tt = 0;
	  for (var i=0; i<GrMs.length; i++) {
		for (var j=0; j<GdsMsk.length; j++) { // GdsMsk orded by Total
		  if ((GrMs[i] == GdsMsk[j]) || (GrMs[i] == GdsMsk[j].charAt(0))) {
			Tt += GdsTot[j]/100;
			//break;
		  };
		};
		GrNmLcl[i] = GrNm[i] + ' $' + Math.floor(Tt);
		Tt = 0;
	  };
	  outStr += 'HM_Array1 = [\n[100,\n50],\n["&nbsp;Computers","' + pcCalcURL + '",1,0,0],\n';
	  WhatToDo = HtmlReport;
	  break;
	case "GoodEd":
	  GrQtyL = GrMs.length;
	  for (var i=0; i<GrQtyL; i++) {
		GrMsLcl[i] = GrMs[i];
		GrNmLcl[i] = GrNm[i];
	  }
	  WhatToDo = 'javascript:fromMenu=true;var obF=PrepareChanges();obF.action=\\"'+HtmlReport;
	  W2Dclose = '\\";document.PassPars.submit()'
	  outStr += 'HM_Array1 = [\n[100,\n50],\n["&nbsp;Computers","' + WhatToDo + '_computer' + W2Dclose + '",1,0,0],\n';
	  break;
	case "MdlPrice2":
	case "MdlOperator":
	  GrQtyL = GrMs.length;
	  for (var i=0; i<GrQtyL; i++) {
		GrMsLcl[i] = GrMs[i];
		GrNmLcl[i] = GrNm[i];
	  }
	  outStr += 'HM_Array1 = [\n[180,\n50,,,,,,,,,,,,,,,,,,true,true,,],\n["&nbsp;Computers","javascript:currGr=\'_computer\';DoWriteList4PC();",1,0,0],\n';
	  //WhatToDo = 'javascript:DoWriteList4Group(\\"';
	  //W2Dclose = '\\")'
	  WhatToDo = 'javascript:currGr=\\"';
	  W2Dclose = '\\";LoadJS4Gr(currGr);';
	  break;
	case "List":
	default:
	  GrQtyL = GrMs.length;
	  for (var i=0; i<GrQtyL; i++) {
		GrMsLcl[i] = GrMs[i];
		GrNmLcl[i] = GrNm[i];
	  }
	  outStr += 'HM_Array1 = [\n[180,\n50,,,,,,,,,,,,,,,,,,true,true,,],\n["&nbsp;Computers","' + pcCalcURL + '",1,0,0],\n';
	  WhatToDo = HtmlReport;
	  break;
  };
  var toDo	=GrQtyL-1;
  var depth	=1;
  var first =true;
  while (toDo>0) {
	for (var i=0; i<GrQtyL-1; i++) {
	  if ((depth>1) && ((depth-1) == GrMsLcl[i].length) && (depth == GrMsLcl[i+1].length)) {
		// forming HM_Array name for second and higher level...
		if (!first) {	// closing not first array
		  document.write(outStr + ']\n');
		}
		first =false;
		outStr = 'HM_Array1';
		for (var j=0; j<depth-1; j++) {
		  outStr += '_' + (GrMsLcl[i].charCodeAt(j) - 63 - ((j > 0)? 1:0));// 1:0 because of PC
		}
		outStr += ' = [\n[],\n';
	  }
	  if (GrMsLcl[i].length == depth)	{
		outStr += '["&nbsp;' + addBSlash(GrNmLcl[i]) + '","' + WhatToDo + GrMsLcl[i] + W2Dclose +'",1,0,' + ((GrMsLcl[i+1].length > depth)?"1":"0") + '],\n';
		toDo--;
	  }
	}
	if ((GrMsLcl[i].length == depth) && (i==(GrQtyL-1))) { 
		outStr += '["&nbsp;' + addBSlash(GrNmLcl[i]) + '","' + WhatToDo + GrMsLcl[i] + W2Dclose +'",1,0,0],\n';
	}
	document.write(outStr + ']\n');
	first =true;
	depth++;
  }
  document.write('\/\/-->\n<\/script>');
}

//
//////////////////////////////////////////////////
