function viewDialogSource()
{
      d=window.open();
      d.document.open('text/plain').write(document.documentElement.outerHTML);
}

function dump_props(obj, obj_name)
{
   var result = ""
   for (var i in obj) 
      result += obj_name + "." + i + " = " + obj[i] + "<br>\n"
   return result
}

function ISValidCartName(cnam)
{
   if(!allowNotInString(cnam,"<\"~@^*+\t"))
      return(0);
   return(1);
}

function ISQuickCartName(fld)
{
   var sQN = spaceTrim(fld.toLowerCase());
   var nQC = sQN.indexOf("quick cart");

   if(nQC == 0)
      return(1);
   return(0);
}

function SetIdxPosEX(form,idxn,val,nMatch,caseIgnore)
{
   var nIdx = 0;
   var pMatch;

   if(caseIgnore)
      val = val.toLowerCase();	   

   for(nIdx = 0; nIdx < idxn.length; nIdx++)
   {
       pMatch = (nMatch == 0) ? idxn[nIdx].value : idxn[nIdx].text;
       if(caseIgnore)
	  pMatch = pMatch.toLowerCase();	   
       if(pMatch == val)
       {
          idxn.selectedIndex = nIdx;
	  return(nIdx);	
       }	
   }
}

function SetIdxPos(form,idxn,val)
{
   var nIdx = 0;

   for(nIdx = 0; nIdx < idxn.length; nIdx++)
   {
       if(idxn[nIdx].value == val)
       {
          idxn.selectedIndex = nIdx;
	  return(nIdx);	
       }	
   }
}

function getCookieVal (offset) {
  var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie (name) {
  var arg = name + "=";
  var alen = arg.length;
  var clen = document.cookie.length;
  var i = 0;
  while (i < clen) {
    var j = i + alen;
    if (document.cookie.substring(i, j) == arg)
      return getCookieVal (j);
    i = document.cookie.indexOf(" ", i) + 1;
    if (i == 0) break; 
  }
  return null;
}

function SetCookie (name, value) {
  var argv = SetCookie.arguments;
  var argc = SetCookie.arguments.length;
  var expires = (argc > 2) ? argv[2] : null;
  var path = (argc > 3) ? argv[3] : null;
  var domain = (argc > 4) ? argv[4] : null;
  var secure = (argc > 5) ? argv[5] : false;
  document.cookie = name + "=" + escape (value) +
    ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
    ((path == null) ? "" : ("; path=" + path)) +
    ((domain == null) ? "" : ("; domain=" + domain)) +
    ((secure == true) ? "; secure" : "");
}

function FldX(sStr,nPos,cDelim)
{
   var nIdx,nOff;
   nIdx = 0;

   while(true)
   {
      nOff  = sStr.indexOf(cDelim);
      if(nOff == -1)
         return(sStr);

       pF = sStr.substring(0,nOff);
       if(nIdx == nPos)
          return(pF);
       sStr = sStr.substring(nOff + 1,sStr.length);
       nIdx = nIdx + 1;
   }
   return("");
} 

function leftString (InString, num)  
{
	OutString=InString.substring (InString, num);
	return (OutString);
}

function rightString (InString, num)  
{
	OutString=InString.substring (InString.length-num, InString.length);
	return (OutString);
}

function allowNotInString (InString, RefString)  {
	if(InString.length==0) return (false);
	for (Count=0; Count < InString.length; Count++)  {
		TempChar= InString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)!=-1)  
			return (false);
	}
	return (true);
}

function allowInString (InString, RefString)  {
	if(InString.length==0) return (false);
	for (Count=0; Count < InString.length; Count++)  {
		TempChar= InString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)==-1)  
			return (false);
	}
	return (true);
}

function spaceTrim(InString) 
{
	var LoopCtrl=true;

	if(InString == "")
	   return(InString)

	while (LoopCtrl) {
		if (InString.indexOf("  ") != -1) {
			Temp = InString.substring(0, InString.indexOf("  "))
			InString = Temp + InString.substring(InString.indexOf("  ")+1, 
				InString.length)
		} else
			LoopCtrl = false;
	}
	if (InString.substring(0, 1) == " ")
		InString = InString.substring(1, InString.length)
	if (InString.substring (InString.length-1) == " ")
		InString = InString.substring(0, InString.length-1)
	return (InString)
}

function isBlank (InString) 
{
   if(InString != "")
      InString = spaceTrim(InString)

   if(InString == "") return(!false)

	if (InString==null) return (!false)
	if (InString.length!=0)
		return (!true);
	else
		return (!false);
}

function isNumberString (InString)  
{
	if(InString.length==0) 
		return (false);
	RefString="1234567890";
	for (Count=0; Count < InString.length; Count++)  
	{
		TempChar= InString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)==-1)  
			return (false);
	}
	return (true);
}

function ltrimStr(str)
{
   return str.replace(/^\s+/, '');
}

function rtrimStr(str) 
{
   return str.replace(/\s+$/, '');
}

function alltrimStr(str) 
{
   return str.replace(/^\s+|\s+$/g, '');
}

function repChar(sStr,repC,repW)  
{
   var sOut = "";
   var TempChar;

   if(sStr.length==0) 
      return(sStr);

   for(var Count=0; Count < sStr.length; Count++)  
   {
      TempChar = sStr.substring(Count,Count + 1);
      if(TempChar == repC)
         sOut = sOut + repW;
      else sOut = sOut + TempChar;
    }
    return(sOut);
}

function complain(field,prompt)
{
   alert(prompt)
   field.focus()
}

function getSelButton(buttonGroup)
{
   for(var i = 0; i < buttonGroup.length; i++)
      if(buttonGroup[i].checked)
         return(i);
   return(-1);
}

function getSelButtonEX(buttonGroup)
{
   var x = buttonGroup.length  + "";

   if(x == "null" || x == "undefined")
   {
      if(buttonGroup.checked)
         return(-2);
      return(-1);	
   }

   for(var i = 0; i < buttonGroup.length; i++)
      if(buttonGroup[i].checked)
         return(i);
   return(-1);
}

function getSelButtonVAL(buttonGroup)
{
   var x = buttonGroup.length  + "";

   if(x == "null" || x == "undefined")
   {
      if(buttonGroup.checked)
         return(buttonGroup.value);
      return("");
   }
   for(var i = 0; i < buttonGroup.length; i++)
      if(buttonGroup[i].checked)
         return(buttonGroup[i].value);
   return("");
}

function QuoteEsc(InString) 
{
   var LoopCtrl=true;
   var nPos;
   var pStr = InString;
   var NewStr = "";

   if(InString == "")
      return(InString)

  while(LoopCtrl)
  {
    nPos = pStr.indexOf("'");
    if(nPos != -1) 
    {
       NewStr = NewStr + pStr.substring(0,nPos + 1) + "'";
       pStr = pStr.substring(nPos + 1,pStr.length)
    } 
    else
    {
       NewStr = NewStr + pStr;
       LoopCtrl = false;
    }
  }
  return(NewStr)
}

function stripChar (InString, StripThis)  {
	OutString="";
	for (Count=0; Count < InString.length; Count++)  {
		TempChar=InString.substring (Count, Count+1);
		if (TempChar!=StripThis)
			OutString=OutString+TempChar;
	}
	return (OutString);
}
function isDollarString (InString)  
{
	if(InString.length==0) 
		return (false);
	RefString="1234567890.";
	for (Count=0; Count < InString.length; Count++)  
	{
		TempChar= InString.substring (Count, Count+1);
		if (RefString.indexOf (TempChar, 0)==-1)  
			return (false);
	}
	return (true);
}

var WinNSModal = null;
 
function IgnoreEvents(e)
{
  return false
}

function HandleFocus()
{
  if(WinNSModal)
  {
    if(!WinNSModal.closed)
       WinNSModal.focus()
    else
    {
       window.releaseEvents (Event.CLICK|Event.FOCUS)
       window.onclick = ""
    }
  }
  return false
}

function OpenModalNSDlg(url,winname,width,height) 
{
   var left = 0;
   var top = 0;
   var win;
   var wW = window.outerWidth;
   var wH = window.outerHeight;

   left = window.screenX + ((wW - width) / 2)
   top  = window.screenY + ((wH - height) / 2)
   attr = "dependent=yes,left=" + left + ",top=" + top + ",resizable=no,scrollbars=yes,width=" + width + ",height=" + height;

   win = window.open(url,winname,attr);
   if(!win)
      return(win);

   window.captureEvents (Event.CLICK|Event.FOCUS)
   window.onclick=IgnoreEvents
   window.onfocus=HandleFocus 
   win.focus();
   WinNSModal = win;
   return(win);
}

function ClosePopup()
{
   if(WinNSModal != null && !WinNSModal.closed)
      WinNSModal.close();
}

function OpenNavWinEX(wname,warg,prop)
{
   var win = window.open(warg,wname,prop);
   if(win.focus)
      win.focus();
}

function OpenNavWin(wname,warg)
{
   var win = window.open(warg,wname,"toolbar=yes,location=yes,directories=no,status=no,scrollbars=yes,menubar=yes,resizable=yes,width=550,height=400");
   if(win.focus)
      win.focus();
}

function FillADiv(divname,bFile,sName)
{
   var obj = document.getElementById(divname);

   if(!obj)
      return;
   var sData;

   if(bFile)
     sData = fastAJXGet(sName);
   else sData = unescape(sName);

   obj.innerHTML = sData;
}

function makeAJAXHttpRequest(type,url,urldata,contentType,target,nErrorCode) 
{
    var req = false;
    var sMSG = "";
    var sErrCode = "0";

    // branch for native XMLHttpRequest object
    if(window.XMLHttpRequest) 
    {
    	try {
			req = new XMLHttpRequest();
        } catch(e) {
			req = false;
        }
    // branch for IE/Windows ActiveX version
    } else if(window.ActiveXObject) {
       	try {
        	req = new ActiveXObject("Msxml2.XMLHTTP");
      	} catch(e) {
        	try {
          		req = new ActiveXObject("Microsoft.XMLHTTP");
        	} catch(e) {
          		req = false;
        	}
		}
    }
    if(!req)
    {
      sMsg = "Error:<br>Creating HttpRequest Object.<br>";
      if(target && nErrorCode <= 1) 
         target = sMsg;
      if(nErrorCode)
         return("1@" + sMsg);
      return(sMsg);
    }
    if(type == "GET")
    {
       req.open("GET",url,false);
       req.send(null);
    }
    else
    {
	req.open("POST",url,false);
	req.setRequestHeader("Content-Type",contentType);
	req.send(urldata);
    }
    if(req.readyState == 4)
    {
      if(req.status == 200 || window.location.href.indexOf("http") == -1) // only if req is "loaded" and "OK"
         sMsg = req.responseText;
      else
      {
         sMsg = "Error:<br>Status:" + req.status + "<br>Message:" + req.statusText + "</br>";
	 sErrCode = "2@" + req.readyState + "@" + req.status + "@" + req.statusText + "~";
      }
   }
   else
   {
       sMsg = "Error:<br>" + "Code:" + req.readyState + "<br>Message:" + req.statusText + "</br>";
       sErrCode = "3@" + req.readyState + "@" + req.status + "@" + req.statusText + "~";
   }
   if(target && nErrorCode <= 1) 
      target = sMsg;
   if(nErrorCode > 0)
      return(sErrCode + sMsg);
   return(sMsg);
}

function fastAJXGet(url)
{
   var sRes = makeAJAXHttpRequest("GET",url,null,null,null,0);
   return(sRes);
}

function fastAJXPost(url,urldata,bXML)
{
   var sContent = (bXML) ? "text/xml" : "application/x-www-form-urlencoded";
   var sRes = makeAJAXHttpRequest("POST",url,urldata,sContent,null,0);
   return(sRes);
}


function LSFileStampMark(sFlag)
{
   var Minute_1  = 1000 * 60;
   var Minute_30 = Minute_1 * 30;
   var Hour_1    = Minute_1 * 60;
   var delay;

   if(!sFlag || sFlag.length == 0)
      return;
   delay = parseInt(FldX(sFlag,0,"@"),10);
   if(delay <= 0)
      return;
   window.setTimeout("LSFileStampExec(1,'" + sFlag + "')",Minute_1 * delay);
}

function LSFileStampExec(ID,sFlag)
{
   var sDO = FldX(sFlag,1,"@");
   var sMsg = fastAJXGet(sDO);

   if(sDO && sDO.length)
      LSFileStampMark(sFlag);
}

