var ie4        = false;
var ie5        = false;
var ns4        = false;
var ns6        = false;
var mac        = false;
var running    = false;
var timerId    = null;
var currentId  = null;
var previousId = null;
var pageId     = null;
var tipId      = null;
var loaded     = false;
var menudelay  = 500;
var tempX      = 0;
var tempY      = 0;
var testing    = false;


if (document.layers) { origWidth=innerWidth;origHeight=innerHeight;onresize=function(){if(innerWidth!=origWidth||innerHeight!=origHeight)location.reload()}}else{onresize=function(){window.location.reload();}}
function Init(id) {
  SetBrowser();
  PreloadImages();
  //LoadMenus();
  pageId = id;
  loaded = true;
}
function SetBrowser() {
  agent = navigator.userAgent.toLowerCase();
  mac   = (agent.indexOf("mac")!=-1);
  ie4   = (document.all && !document.getElementById) ? true : false;
  ie5   = (document.all && document.getElementById)  ? true : false;
  ns4   = (document.layers)                          ? true : false;
  ns6   = (document.getElementById && !document.all) ? true : false;
  iex   = (document.all)                             ? true : false;
  
  //mouse capture for non-ie
  if (!iex){ document.captureEvents(Event.MOUSEMOVE); }
  document.onmousemove = getMouseXY;
}
function getMouseXY(e) {
  if (iex) {
    tempX = event.clientX + document.body.scrollLeft;
    tempY = event.clientY + document.body.scrollTop;
  } else {
    tempX = e.pageX;
    tempY = e.pageY;
  }
  
  //catch possible negative values
  if (tempX < 0){ tempX = 0; }
  if (tempY < 0){ tempY = 0; }  
  
  return true
}
function ShowTip(elementId) {
  tipId = 'tooltip' + elementId + 'Div';
  
  //position near mouse
  SetElementPosition(tipId,tempY-25,tempX-125)
  
  if      (ie4){ eval('document.all.'+tipId+'.style.visibility = "visible"'); }
  else if (ns4){ eval('document.'+tipId+'.visibility = "show"'); }
  else         { eval('document.getElementById("'+tipId+'").style.visibility = "visible"'); }
}
function HideTip() {
  if      (ie4){ eval('document.all.'+tipId+'.style.visibility = "hidden"'); }
  else if (ns4){ eval('document.'+tipId+'.visibility = "hide"'); }
  else         { eval('document.getElementById("'+tipId+'").style.visibility = "hidden"'); }
}
function SetElementPosition(id,top,left) {
  if (testing){ alert("SetElementPosition\nid = "+id+"\ntop = "+top+"\nleft = "+left); }
  if (ns4) {
    eval('document.'+id).top = top;
    eval('document.'+id).left = left;
  } else if (ns6) {
    document.getElementById(id).style.top = top;
    document.getElementById(id).style.left = left;
  } else {
    eval(id).style.top  = top;
    eval(id).style.left = left;
  }
}
function SetVisibility(id,flag) {
  if (ns4) {
    var str = (flag) ? 'show' : 'hide';
    eval("document."+id).visibility = str;
  } else if (ns6) {
    var str = (flag) ? 'visible' : 'hidden';
    document.getElementById(id).style.visibility = str;
  } else {
    var str = (flag) ? 'visible' : 'hidden';
    eval("document.all."+id).style.visibility = str;
  }
}
function getImageObj(id) {
  if (ns6){ anchorObj = eval('document.getElementById("'+id+'")'); }
  else    { anchorObj = eval('document.images["'+id+'"]'); }
  return anchorObj;
}

function getImageTop(imgID) {
  if (ns4) return eval(imgID).y;
  else return getRealTop(imgID);
}
function getImageLeft(imgID) {
  if (ns4) return eval(imgID).x
  else return getRealLeft(imgID);
}
function getRealTop(imgElem) {
  yPos = eval(imgElem).offsetTop;
  tempEl = eval(imgElem).offsetParent;
  while (tempEl != null) {
    yPos += tempEl.offsetTop;
    tempEl = tempEl.offsetParent;
  }
  return yPos;
}
function getRealLeft(imgObj) {
  xPos = eval(imgObj).offsetLeft;
  tempObj = eval(imgObj).offsetParent;
  while (tempObj != null) {
    xPos   += tempObj.offsetLeft;
    tempObj = tempObj.offsetParent;
  }
  return xPos;
}
function getImageWidth(id) {
  if (ie4) {
    return eval('document.all.nav'+id).style.pixelWidth;
  } else if (ns4) {
    return eval('document.nav'+id).width;
  } else {
    return document.getElementById('nav'+id).offsetWidth;
  }
}
function getElementWidth(id) {
  if      (ie4){ return eval('document.all.menu'+id+'Div').offsetWidth; }
  else if (ns4){ return eval('document.menu'+id+'Div').clip.width; }
  else         { return document.getElementById('menu'+id+'Div').offsetWidth; }
}
function getElementHeight(id) {
  if      (ie4){ return eval('document.all.menu'+id+'Div').offsetHeight; }
  else if (ns4){ return eval('document.menu'+id+'Div').clip.height; }
  else         { return document.getElementById('menu'+id+'Div').offsetHeight; }
}
function LoadMenus(){
  for (var i=0; i<7; i++){
    menuId = 'menu'+i+'Div';
    
    if (i != 4){
      if (ns6){ anchorObj = eval('document.getElementById("nav'+i+'")'); }
      else    { anchorObj = eval('document.images["nav'+i+'"]'); }
      
      menuWidth   = getElementWidth(i);
      menuHeight  = getElementHeight(i);
      menuTop     = getImageTop(anchorObj) + 22;
      anchorLeft  = getImageLeft(anchorObj);
      anchorWidth = getImageWidth(i);
      menuLeft    = anchorLeft + anchorWidth - menuWidth;
      SetElementPosition(menuId,menuTop,menuLeft);
      }
    }
  }
function PreloadImages(){
  var num_images = 31;
  NavOff = new Array(num_images);
  for (var i=0; i<num_images; i++){ NavOff[i] = new Image(); }
  NavOff[0].src = "images/nav_personal_items_a.gif";
  NavOff[1].src = "images/nav_contract_items_a.gif";
  NavOff[2].src = "images/nav_browse_items_a.gif";
  NavOff[3].src = "images/nav_view_order_a.gif";
  NavOff[4].src = "images/nav_customer_service_a.gif";
  NavOff[5].src = "images/nav_log_out_a.gif";
  NavOff[6].src = "images/btn_submit_a.gif";
  NavOff[7].src = "images/btn_clear_a.gif";
  NavOff[8].src = "images/nav_pending_orders_a.gif";
  NavOff[9].src = "images/nav_past_5_a.gif";
  NavOff[10].src = "images/btn_add_items_a.gif";
  NavOff[11].src = "images/btn_update_personal_items_a.gif";
  NavOff[12].src = "images/btn_update_order_a.gif";
  NavOff[13].src = "images/btn_save_order_a.gif";
  NavOff[14].src = "images/btn_continue_a.gif";
  NavOff[15].src = "images/btn_edit_order_a.gif";
  NavOff[16].src = "images/btn_complete_order_a.gif";
  NavOff[17].src = "images/btn_back_to_complete_order_a.gif";
  NavOff[18].src = "images/btn_submit_a.gif";
  NavOff[19].src = "images/btn_add_items_a.gif";
  NavOff[20].src = "images/btn_approve_order_a.gif";
  NavOff[21].src = "images/btn_delete_order_a.gif";
  NavOff[22].src = "images/btn_save_order_a.gif";
  NavOff[23].src = "images/btn_login_a.gif";
  NavOff[24].src = "images/btn_view_item_hist_a.gif";
  NavOff[25].src = "images/btn_view_order_hist_a.gif";
  NavOff[26].src = "images/btn_new_order_a.gif";
  NavOff[27].src = "images/btn_note_a.gif";
  NavOff[28].src = "images/btn_add_lineitem_note_a.gif";
  NavOff[29].src = "images/nav_rapid_order_a.gif";
  NavOff[30].src = "images/btn_add_5_lines_a.gif";
  

  NavOn = new Array(num_images);
  for (var i=0; i<num_images; i++){ NavOn[i] = new Image(); }
  NavOn[0].src = "images/nav_personal_items_b.gif";
  NavOn[1].src = "images/nav_contract_items_b.gif";
  NavOn[2].src = "images/nav_browse_items_b.gif";
  NavOn[3].src = "images/nav_view_order_b.gif";
  NavOn[4].src = "images/nav_customer_service_b.gif";
  NavOn[5].src = "images/nav_log_out_b.gif";
  NavOn[6].src = "images/btn_submit_b.gif";
  NavOn[7].src = "images/btn_clear_b.gif";
  NavOn[8].src = "images/nav_pending_orders_b.gif";
  NavOn[9].src = "images/nav_past_5_b.gif";
  NavOn[10].src = "images/btn_add_items_b.gif";
  NavOn[11].src = "images/btn_update_personal_items_b.gif";
  NavOn[12].src = "images/btn_update_order_b.gif";
  NavOn[13].src = "images/btn_save_order_b.gif";
  NavOn[14].src = "images/btn_continue_b.gif";
  NavOn[15].src = "images/btn_edit_order_b.gif";
  NavOn[16].src = "images/btn_complete_order_b.gif";
  NavOn[17].src = "images/btn_back_to_complete_order_b.gif";
  NavOn[18].src = "images/btn_submit_b.gif";
  NavOn[19].src = "images/btn_add_items_b.gif";
  NavOn[20].src = "images/btn_approve_order_b.gif";
  NavOn[21].src = "images/btn_delete_order_b.gif";
  NavOn[22].src = "images/btn_save_order_b.gif";
  NavOn[23].src = "images/btn_login_b.gif";
  NavOn[24].src = "images/btn_view_item_hist_b.gif";
  NavOn[25].src = "images/btn_view_order_hist_b.gif";
  NavOn[26].src = "images/btn_new_order_b.gif";
  NavOn[27].src = "images/btn_note_b.gif";
  NavOn[28].src = "images/btn_add_lineitem_note_b.gif";
  NavOn[29].src = "images/nav_rapid_order_b.gif";
  NavOn[30].src = "images/btn_add_5_lines_b.gif";
}

function Show(elementId) {
  if (running) StopTimer();
  currentId = elementId;
  if (currentId != previousId && previousId != null) Hide(previousId);
  if (ie4 || ns4) {
    document.images["nav" + currentId].src = NavOn[currentId].src;
  } else {
    document.getElementById("nav" + currentId).src = NavOn[currentId].src;
  }
  previousId = currentId;
}

function Hide(elementId) {
  if (elementId == null) return;
  if (ie4 || ns4) {
    if (elementId != pageId) document.images["nav" + elementId].src = NavOff[elementId].src;
  } else {
    if (elementId != pageId) document.getElementById("nav" + elementId).src = NavOff[elementId].src;
  }
}
function StartTimer(){running = true; timerId = setTimeout('Hide(currentId)',menudelay);}
function StopTimer(){running = false; clearTimeout(timerId);}
function SetFocus(fieldname,formname) {
  if (!formname) formname = 'form';
  eval("document."+formname+".elements[fieldname].focus();"); 
}
function Popup(title,filename,w,h,scroll,resizable){if (title == ''){ title = 'popup'; }if (scroll == 'scroll'){ scroll = 'yes'; }else{ scroll = 'no'; }if (resizable == 'lock'){ resizable = 'no'; }else{ resizable = 'yes'; }winOptions = eval("'width="+w+",height="+h+",toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars="+scroll+",resizable="+resizable+",copyhistory=no'");window.open(filename,title,winOptions);return;}
function FormatMoney(num){num = num.toString().replace(/[^.0-9]/g,'');if(isNaN(num)) num = "0";sign = (num == (num = Math.abs(num)));num = Math.floor(num*100+0.50000000001);cents = num%100;num = Math.floor(num/100).toString();if(cents<10) cents = "0" + cents;for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++) num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));return (((sign)?'':'-') + '$' + num + '.' + cents);}
function SafeMail(name,domain,display){displayed = (typeof(display) == "undefined") ? name+"@"+domain : display;document.write('<a href=mailto:'+name+'@'+domain+'>'+displayed+'</a>');}

Xoffset = 10;    // modify these values to ...
Yoffset = 20;    // change the popup position.
tooltip_orientation = 'belowleft';
tooltip_timer = null;
tooltip_displayed = false;
tooltip_adjusted = false;
tooltip_mouseover = false;

// This popup is used explicitly for the tool tips. (Note naming difference: popup vs. Popup)
function popup(msg, front_color, back_color, border_color, width, hide_selects, orientation) {
  document.getElementById("tooltip").innerHTML = '<table cellpadding="0" cellspacing="0" border="0" bgcolor="' + border_color + '"><tr><td><table width="' + width + '" border="0" cellpadding="2" cellspacing="1"><tr><td bgcolor="' + back_color + '"><div style="margin-left: 5px; color:' + front_color + '; font-size: 11px; font-family: tahoma, verdana, sans-serif;">' + msg + '</div></td></tr></table></td></tr></table>';
  if (!tooltip_adjusted) {
    switch (tooltip_orientation) {
      case 'aboveleft':
      case 'belowleft':
      default:
        adjustX = -250;
        break;
    }
    with (document.getElementById("tooltip")) {
      old_left = style.left;
      style.left = parseInt(style.left) + adjustX;
    }
  }
  if (ie5 && hide_selects != '') {
    var selects = document.getElementsByTagName('select');
    for (i = 0; i < selects.length; ++i) {
      selects[i].style.display = 'none';
    }
  }
  document.getElementById("tooltip").style.display = 'block';
  tooltip_orientation = orientation;
  tooltip_displayed = true;
  if (!tooltip_adjusted) {
    switch (tooltip_orientation) {
      case 'aboveleft':
        adjustX = -(document.getElementById("tooltip").scrollWidth) + 250;
        adjustY = -(document.getElementById("tooltip").scrollHeight);
        break;
      case 'belowright':
        adjustX = 0;
        adjustY = 0;
        break;
      case 'aboveright':
        adjustX = 0;
        adjustY = -(document.getElementById("tooltip").scrollHeight);
        break;
      case 'belowleft':
      default:
        adjustX = -(document.getElementById("tooltip").scrollWidth) + 250;
        adjustY = 0;
        break;
    }
    with (document.getElementById("tooltip")) {
      old_left = style.left;
      old_top = style.top;
      style.left = parseInt(style.left) + adjustX;
      style.top = parseInt(style.top) + adjustY;
    }
    tooltip_adjusted = true;
  }
}

function get_mouse(e) {
  try { if (e) event = e; } catch (e2) {}
  switch (tooltip_orientation) {
    case 'aboveleft':
      adjustX = -(Xoffset + document.getElementById("tooltip").scrollWidth);
      adjustY = -(Yoffset + document.getElementById("tooltip").scrollHeight);
      break;
    case 'belowright':
      adjustX = Xoffset;
      adjustY = Yoffset;
      break;
    case 'aboveright':
      adjustX = Xoffset;
      adjustY = -(Yoffset + document.getElementById("tooltip").scrollHeight);
      break;
    case 'belowleft':
    default:
      adjustX = -(Xoffset + document.getElementById("tooltip").scrollWidth);
      adjustY = Yoffset;
      break;
  }
  if (document.getElementById("tooltip").scrollWidth == 0) {
    tooltip_adjusted = false;
  } else {
    tooltip_adjusted = true;
  }
  if (event.pageY) {
    document.getElementById("tooltip").style.left = event.pageX + adjustX;
    document.getElementById("tooltip").style.top = event.pageY + adjustY;
  } else {
    document.getElementById("tooltip").style.left = event.clientX + document.body.scrollLeft + adjustX;
    document.getElementById("tooltip").style.top = event.clientY + document.body.scrollTop + adjustY;
  }
}

function killTooltip(hide_selects) {
  if (ie5 && hide_selects != '') {
    var selects = document.getElementsByTagName('select');
    for (i = 0; i < selects.length; ++i) {
      selects[i].style.display = 'inline';
    }
  }
  document.getElementById("tooltip").style.display = 'none';
  tooltip_displayed = false;
}

function attachTooltip(id, tip, front_color, back_color, border_color, width, hide_selects, orientation, delay) {
  if (!front_color) front_color = '#000000';
  if (!back_color) back_color = '#dddddd';
  if (!border_color) border_color = '#000000';
  if (!width) width = 250;
  if (!hide_selects) hide_selects = '';

  if (delay > 0) {
    document.getElementById(id).onmousemove = function(e) { get_mouse(e); if (!tooltip_displayed && tooltip_mouseover) { clearTimeout(tooltip_timer); tooltip_timer = setTimeout('popup("' + tip + '", "' + front_color + '", "' + back_color + '", "' + border_color + '", "' + width + '", "' + hide_selects + '", "' + orientation + '")', delay); } };
    document.getElementById(id).onmouseover = function(e) { get_mouse(e); tooltip_timer = setTimeout('popup()', delay, tip, front_color, back_color, border_color, width, hide_selects, orientation); tooltip_mouseover = true; };
    document.getElementById(id).onmouseout = function() { killTooltip(hide_selects); clearTimeout(tooltip_timer); tooltip_mouseover = false; };
  } else {
    document.getElementById(id).onmousemove = get_mouse;
    document.getElementById(id).onmouseover = function() { popup(tip, front_color, back_color, border_color, width, hide_selects, orientation); };
    document.getElementById(id).onmouseout = function() { killTooltip(hide_selects); };
  }
}
