﻿
//------------------------------------------------------------------------------------------
function miscUnload()
{
   var a;

   if($get('m_loggedInDiv')) {   
      a = new ajaxRequest('main.aspx');
      a.addParameter('unload', '1');
      a.execute();
   }
}

//------------------------------------------------------------------------------------------
function miscOpenWindow(url, name)
{
   window.open(url, name);
}

//------------------------------------------------------------------------------------------
function miscChangePassword()
{
   popupBox('changePassword', 'changePassword.aspx?' + miscCreateRandomRefresh(), null, '350px', '225px', 'none');
}

//------------------------------------------------------------------------------------------
function miscSetView(n)
{
   var el;
   
   for(var i = 0; i < 7; i++) {
      el = $get('view' + i);
      if(el) {
         el.style.display = (n == i ? '' : 'none');
      }
      el = $get('btn' + i);
      if(el) {
         el.className = (n == i ? 'hdrBtnMidActive' : 'hdrBtnMid');
         el.style.width = '100px';
      }

      if(n == i) {
         // Make sure the frame has been loaded.
         el = $get('viewFrame' + i);
         if(el) {
            if(el.pmLoaded == 'n') {
               el.src = el.pmTarget;
               el.pmLoaded = 'y';
            }
            
            // If this is sourcing list then also load part search. Required for some js calls to search.
            if(n == 2) {
               el = $get('viewFrame1');
               if(el) {
                  if(el.pmLoaded == 'n') {
                     el.src = el.pmTarget;
                     el.pmLoaded = 'y';
                  }
               }
            }
         }
      }
   }
}
//------------------------------------------------------------------------------------------
function miscInitTab(n, src)
{
   var el;
   
   el = $get('viewFrame' + n);
   if(el) {
      el.pmTarget = src;
      el.pmLoaded = 'n';
   }
}

//------------------------------------------------------------------------------------------
function miscUpdateGridPanel(name)
{
   miscClick(miscGetElement(name));
}

//------------------------------------------------------------------------------------------
function miscClick(el)
{
   if(!el) {
      return;
   }
   if(el.dispatchEvent) {
      var e = document.createEvent("MouseEvents"); 
      e.initEvent("click", true, true);
      el.dispatchEvent(e); 
   }
   else {
      el.click(); 
   }
}

//------------------------------------------------------------------------------------------
function miscCreateRandomRefresh()
{
   var val = "r=";
   var d = new Date();
   return (val + d.getTime());
}

//------------------------------------------------------------------------------------------
function miscResizeMain()
{
   var a = $get('anonymousContainer');
   var d = $get('container');
   var h = $get('headerTbl');
   var m = $get('hdrMenu');
   var f = $get('footerTbl');
   if(d && h && m && f) {
      d.style.height = Math.max(0, (miscClientHeight() - h.offsetHeight - m.offsetHeight - f.offsetHeight)) + 'px';
   }
   if(a && h && f) {
      a.style.height = Math.max(0, (miscClientHeight() - h.offsetHeight - f.offsetHeight)) + 'px';
   }
}

//------------------------------------------------------------------------------------------
function miscClientHeight()
{
   try {
      if(self.innerHeight)
         return (self.innerHeight);
      if(document.documentElement && document.documentElement.clientHeight)
         return (document.documentElement.clientHeight);
      if(document.body)
         return document.body.clientHeight;
   }
   catch(ex)  {
   }
   return (0);
}
//------------------------------------------------------------------------------------------
function miscClientWidth()
{
   try {
      if(self.innerWidth)
         return (self.innerWidth);
      if(document.documentElement && document.documentElement.clientWidth)
         return (document.documentElement.clientWidth);
      if(document.body)
         return document.body.clientWidth;
   }
   catch(ex)  {
   }
   return (0);
}

//------------------------------------------------------------------------------------------
// Looks from the top window and all child windows for an element.
//
function miscGetElement(id)
{
   return (miscGetChildElement(top, id));
}
//------------------------------------------------------------------------------------------
// Traverse all child windows until element 'id' is found.
//
function miscGetChildElement(w, id)
{
   var el;
   
   if(w == null) {
      return(null);
   }
   
   try {
      // Look in this document for the element.
      el = w.document.getElementById(id);
      if(el != null) {
         return(el);
      }
   }
   catch(ex) {
   }

   try {   
      // Recursively try each child window.
      if(w.frames == null) {
         return(null);
      }
      for(var i = 0; i < w.frames.length; i++) {
         el = miscGetChildElement(w.frames[i], id);
         if(el != null) {
            return(el);
         }
      }
   }
   catch(ex) {
   }
   
   // Not found.
   return(null);
}

//------------------------------------------------------------------------------------------
function miscViewDocs(uid, catid, mpn)
{
   popupBox('docsList', 'getDocuments.aspx?pn=' + uid + '&cat=' + catid + '&mpn=' + mpn + '&' + top.miscCreateRandomRefresh(), null, '50%', '40%');
}
//------------------------------------------------------------------------------------------
function miscViewDoc(id)
{
   popupBox('docs', 'getDocuments.aspx?id=' + id + '&' + top.miscCreateRandomRefresh(), null);
}
//------------------------------------------------------------------------------------------
function miscViewTechData(uid, catid, mpn)
{
   popupBox('techdata', 'getTechData.aspx?uid=' + uid + '&cat=' + catid + '&mpn=' + mpn + '&' + top.miscCreateRandomRefresh(), null, '500px', null);
}
//------------------------------------------------------------------------------------------
function miscViewCrosses(uid, catid, mpn, direct)
{
   popupBox('crosses', 'getCrossRefs.aspx?uid=' + uid + '&cat=' + catid + '&mpn=' + mpn + '&dir=' + direct + '&' + top.miscCreateRandomRefresh(), null);
}
//------------------------------------------------------------------------------------------
function miscViewMaterial(uid, mpn, mfrId)
{
   popupBox('material', 'getMaterial.aspx?uid=' + uid + '&mpn=' + mpn + '&mfrId=' + mfrId + '&' + top.miscCreateRandomRefresh(), null, '600px', null);
}
//------------------------------------------------------------------------------------------
function miscViewMarket(pn, mid, mfr)
{
   popupBox('marketData', 'getMarketData.aspx?pn=' + pn + '&mid=' + mid + '&mfr=' + mfr + '&' + top.miscCreateRandomRefresh(), null, '800px', '500px',
            new Array(resource.buttonGetQuote, 'miscRfq();', resource.buttonDetails, 'miscViewMarketDetails(\"' + pn + '\", \"' + mid + '\", \"' + mfr + '\");', resource.buttonClose, 'top.popupHide(\"marketData\");'));
}
function miscViewMarketDetails(pn, mid, mfr)
{
   popupBox('marketData', 'getMarketDetailData.aspx?pn=' + pn + '&mid=' + mid + '&mfr=' + mfr + '&' + top.miscCreateRandomRefresh(), null, '800px', '500px',
            new Array(resource.buttonGetQuote, 'miscRfq();', resource.buttonOverview, 'miscViewMarket(\"' + pn + '\", \"' + mid + '\", \"' + mfr + '\");', resource.buttonClose, 'top.popupHide(\"marketData\");'));
}
//------------------------------------------------------------------------------------------
function miscRfq(bSmall)
{
   if(bSmall) {
      popupBox('rfq', 'rfqSubmit.aspx?t=1&'+top.miscCreateRandomRefresh(), null, '530px', '270px', 'none');
   }
   else {
      popupBox('rfq', 'rfqSubmit.aspx?'+top.miscCreateRandomRefresh(), null, '670px', '380px', 'none');
   }
}
//------------------------------------------------------------------------------------------
function miscPurchase(ids)
{
   if(ids.length == 0) {
      popupShowError(resource.promptMustSelectRow);
      return;
   }
   popupBox('purchase', 'purchase.aspx?ids=' + ids + '&' + top.miscCreateRandomRefresh(), null, '600px', '500px', 'none');
}

//------------------------------------------------------------------------------------------
function miscLoadList(pname)
{
   var u;
   
   u = "./listSearchLoad.aspx?" + top.miscCreateRandomRefresh();
   if(pname) {
      u += "&proj=" + pname;
   }
   top.popupBox("loadList", u, null, "500px", "225px", "none")
}
//------------------------------------------------------------------------------------------
function miscExportList(l)
{
   var list;
   
   if(l) {
      popupBox('export', 'listSearchExport.aspx?l=' + l + '&' + top.miscCreateRandomRefresh(), null, '300px', '175px', "none");
   }
   else {
      popupBox('export', 'listSearchExport.aspx?' + top.miscCreateRandomRefresh(), null, '300px', '175px', "none");
   }
}
//------------------------------------------------------------------------------------------
function miscSaveList()
{
   top.popupBox("saveList", "./saveList.aspx?" + top.miscCreateRandomRefresh(), null, "300px", "210px", "none");
}
//------------------------------------------------------------------------------------------
function miscCompare(ids)
{
   top.popupBox("compare", "./compare.aspx?ids=" + ids + "&" + top.miscCreateRandomRefresh(), null, null, '500px', null);
}
//------------------------------------------------------------------------------------------
function miscFilter(id, col)
{
   top.popupBox("filter", "./filter.aspx?id=" + id + "&col=" + col + "&" + top.miscCreateRandomRefresh(), null, "300px", "240px", "none");
}

//------------------------------------------------------------------------------------------
function miscVqRet(id, ln)
{
   top.popupBox("vqList", "./vqList.aspx?id=" + id + "&ln=" + ln + "&" + top.miscCreateRandomRefresh(), null, null, "500px", null);
}
//------------------------------------------------------------------------------------------
function miscMkBtn(name, onc)
{
   var s;
   
   s  = '<table width="100%" class="popButRow" cellpadding="0" cellspacing="0"><tr class="hdrBtnRow"><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td>';
   s += '<td class="hdrBtnLt">&nbsp;</td><td width="75px" class="hdrBtnMid" onclick="' + onc + '">' + name + '</td><td class="hdrBtnRt"></td>';
   s += "<td>&nbsp;</td>";
   s += '<td>&nbsp;</td><td>&nbsp;</td><td>&nbsp;</td></tr></table>';
}
//------------------------------------------------------------------------------------------
function miscValidNum(ele, bNumOnly, eve) 
{
   try {
	   if((eve.keyCode >= 48 && eve.keyCode <= 57) || (eve.keyCode >= 96 && eve.keyCode <= 105)) {
		  return (true);
	   }
	   if(eve.keyCode == 46 || eve.keyCode == 8 || eve.keyCode == 13 || eve.keyCode == 9 || eve.keyCode == 27 || (eve.keyCode >= 37 && eve.keyCode <= 40)) {
		  return (true);
	   }
	   if(!bNumOnly) {
		  if(eve.keyCode == 110  || (eve.shiftKey == false && eve.keyCode == 190)) {
			 if(ele.value.indexOf(".") == -1) {
				return (true);
			 }
		  }
	   }
      return (false);
   }
   catch(ex) {
      return (true);
   }
}
//------------------------------------------------------------------------------------------
function miscValidDate(ele)
{
   var ar;
   var dteDate;

   try {
	   if(ele.value.length == 0) {
		  return (true);   
	   }
	   ar = ele.value.split("/");
	   if(ar.length < 3) {
		  return (false);
	   }
	   dteDate=new Date(ar[2],ar[0]-1,ar[1]);

	   return ((ar[1]==dteDate.getDate()) && (ar[0]-1==dteDate.getMonth()) && (ar[2]==dteDate.getFullYear()));
   }
   catch(ex) {
      return (true);
   }
}

//------------------------------------------------------------------------------------------
function miscValidText(eve) 
{
   try {
   if((eve.keyCode >= 48 && eve.keyCode <= 57) || (eve.keyCode >= 65 && eve.keyCode <= 90) || (eve.keyCode >= 96 && eve.keyCode <= 105) || 
      (eve.keyCode >= 186 && eve.keyCode <= 192) || (eve.keyCode >= 219 && eve.keyCode <= 222) || eve.keyCode == 32 || eve.keyCode == 110) {
      return (true);
   }   
   
   if(eve.keyCode == 46 || eve.keyCode == 8 || eve.keyCode == 13 || eve.keyCode == 9 ||  eve.keyCode == 27 || (eve.keyCode >= 37 && eve.keyCode <= 40)) {
      return (true);
   }
   
   return (false);
   }
   catch(ex) {
      return (true);
   }
}

//------------------------------------------------------------------------------------------
function miscGetChartPrompt(b)
{
   if(b) {
      return (resource.promptHideCharts);
   }
   else {
      return (resource.promptShowCharts);
   }
}

function miscIsIe()
{
   return (navigator.appName == "Microsoft Internet Explorer");
}
function miscIsFireFox()
{
   return (navigator.appName == "Netscape");
}
