var browserType;

if (document.all) {
   browserType = 'ie';
} else {
   browserType = 'm6';
}

var timesHidden  = 0;
var HIDE_ON_MENU = new Array();
var hiddenFormElements = new Array();

var phone_field_length=0;
function TabNext(obj,event,len,next_field) {
   if (event == "down") {
      phone_field_length=obj.value.length;
   }
   else if (event == "up") {
      if (obj.value.length != phone_field_length) {
         phone_field_length=obj.value.length;
         if (phone_field_length == len) {
            next_field.focus();
         }
      }
   }
}


function hideFormElements () {
   timesHidden++;
   for (var i in HIDE_ON_MENU) {
      var obj = getElement(i);
      if (isDef(obj)) {
         obj.style.visibility = 'hidden';
      }
   }

   hiddenFormElements = new Array();
   for (var j=0; j<document.forms.length; j++) {
      for (var i=0; i<document.forms[j].elements.length; i++) {
         if (document.forms[j].elements[i].type == 'select-one') {
            if (document.forms[j].elements[i].style.visibility != 'hidden') {
               hiddenFormElements.push(document.forms[j].elements[i]);
               document.forms[j].elements[i].style.visibility = 'hidden';
            }
         }
      }
   }
}

function showFormElements () {
   timesHidden--;
   if (timesHidden <= 0) {
      timesHidden = 0;
      for (var i in HIDE_ON_MENU) {
         var obj = getElement(i);
         if (isDef(obj)) {
            obj.style.visibility = 'visible';
         }
      }
   }

   for (var i=0; i<hiddenFormElements.length; i++) {
      hiddenFormElements[i].style.visibility = 'visible';
   }
}

function getElement (elementId, win) {
   var doc;

   if (isUndef(win)) {
      doc = document;
   } else {
      doc = win.document; 
   }

   if (doc.getElementById) { 
      return doc.getElementById(elementId);
   } else if (doc.all) {
      return doc.all[elementId];
   }

}

function isUndef (varName) {
   if (varName == null) {
      return true;
   } else {
      return false;
   }
}

function isDef (varName) {
   return ! isUndef(varName);
}

function isDef (varName) {
   if (varName == null) {
      return false;
   } else {
      return true;
   }
}

function showSpan (id) {
   var obj = getElement(id);
   obj.style.visibility = 'visible';
}

function hideSpan (id) {
   var obj = getElement(id);
   obj.style.visibility = 'hidden';
}

var allImages = new Array();
function loadAllImages (imageString) {
   var images = imageString.split(',');
   for (var i=0; i<images.length; i++) {
      allImages[i]     = new Image();
      allImages[i].src = images[i]; 
   }
}

var iX;
var iY;

var xOld = 0;
var yOld = 0;

var setOnClose = '';
var setClick   = '';
var setCapture = '';
var setUp      = '';
var dragSpan   = 'menu';
var hasDragged = 0;

var dragOffX   = 0;
var dragOffY   = 0;
               
var dragOldX   = 0;
var dragOldY   = 0;

var dragShowX  = 0;
var dragShowY  = 0;

var canDrag    = 0;
var isDragging = 0;

var rotator    = 0;
var smooveness = 0;

var altText    = 0;
var altTextName = 0;

function debug () {
   var obj = getElement('menu');
   getElement('debug').innerHTML = 'menu: ' + obj.style.left + ',' + obj.style.top + '<br>' + 'mouse: ' + iX + ',' + iY;
}

function captureMouse () {
   if (document.all) {
      document.onmousemove = msMouseMove;
      smooveness = 0;
   } else {
      document.onmousemove = nsMouseMove;
      smooveness = 6;
   }
}

function msMouseMove () {
   iX = window.event.clientX + document.body.scrollLeft;
   iY = window.event.clientY + document.body.scrollTop;
   return generalMouseMove();
}

function nsMouseMove (e) {
   iX =  e.pageX;
   iY =  e.pageY;
   return generalMouseMove();
}

function captureDrag () {
   captureMouse();
   document.onmouseup   = generalMouseUp;
   document.onmousedown = generalMouseDown;
}

function generalMouseMove () {
   if (canDrag) {
      dragOldX = iX;
      dragOldY = iY;
   }

   if (altText) {
      showAltText(); 
   }

   if (isDragging) {
      hasDragged = 1;
      if (rotator == smooveness) {
         dragShowX = iX - dragOffX;
         dragShowY = iY - dragOffY;

         var obj   = getElement('menu');
         obj.style.left = dragShowX;
         obj.style.top  = dragShowY;
         rotator = 0;
      } else {
         rotator++;
      }
      return false;
   }

   if (setCapture.length) {
      return eval(setCapture + '();');
   }
}

function generalMouseUp (e) {
   isDragging = 0;
   if (setUp.length) {
      eval(setUp + '();');
   } 
}

function generalMouseDown (e) {
   if (dragOldX == iX && dragOldY == iY) {
      isDragging = 1
      dragOffX = iX - dragShowX;
      dragOffY = iY - dragShowY;

      if (setClick.length) {
         return eval(setClick + '();');
      } else {
         return false;
      }

   } else {
      if (setClick.length) {
         return eval(setClick + '();');
      }
      return true; 
   }
}

function willDrag () {
   canDrag = 1;
}

function wontDrag () {
   canDrag = 0;
}

var currentMenuName = '';
var openMenu = 0;
function showMenu (titleName, html, hideId) {
   hideFormElements();
   changeMenu(titleName, html);
   var obj   = getElement('menu'); 
   openMenu = 1;

   if (! hasDragged) {
      var xPosition = menuXPosition();
      var yPosition = menuYPosition();
      obj.style.left = xPosition;
      obj.style.top  = yPosition;
      dragShowX = xPosition;
      dragShowY = yPosition;
   }
   showSpan(dragSpan);
}

function changeMenu (titleName, html) {
   currentMenuName = titleName;
   var title = getElement('menuTitle'); 
   var body  = getElement('menuBody');

   var htmlobj = getElement(html);

   if (htmlobj) {
      body.innerHTML = htmlobj.innerHTML;
   } else if (! isUndef(html)) {
      body.innerHTML = html;
   }
   
   if (! isUndef(titleName)) {
      title.innerHTML = titleName;
   }
}

function closeMenu () {
   showFormElements();
   currentMenuName = '';
   hasDragged = 0;
   openMenu = 0;
   var obj = getElement(dragSpan); 
   hideSpan(dragSpan); 
   draggedX = draggedY = 0;
   if (setOnClose.length) {
      eval(setOnClose + '();');
   }
   showFormElements();
}

function menuXPosition () {
    var menu = getElement('menu');
    var windowWidth  = getWindowWidth();
    var menuWidth = menu.offsetWidth;
    var menuXPosition;
    if (iX + 25 + menuWidth > windowWidth) {
       menuXPosition = iX - menuWidth - 1;
       if (menuXPosition < 0) {
          noArrow = 1;
          menuXPosition = 0;
       }
    } else {
       menuXPosition = iX + 1;
    }
    return menuXPosition;
}

function menuYPosition () {
    var menu = getElement('menu');
    var windowHeight = getWindowHeight();
    var menuHeight = menu.offsetHeight;
    var menuYPosition;
    if (iY + 10 + menuHeight > windowHeight) {
       menuYPosition = iY - menuHeight - 1;
       if (menuYPosition < 0) {
          noArrow = 1;
          menuYPosition = 0;
       }
    } else {
       menuYPosition = iY + 1;
    }
    return menuYPosition;
}

function getWindowWidth () {
    if (window.innerWidth) {
        return window.innerWidth + window.pageXOffset;
    } else {
        return document.body.clientWidth + document.body.scrollLeft;
    }
}

function getWindowHeight () {
    if (window.innerHeight) {
        return window.innerHeight + window.pageYOffset;
    } else {
        return document.body.clientHeight + document.body.scrollTop;
    }
}



function showAltText () {
   var obj = getElement(altTextName); 
   var top = iY + 20;
   var left = iX - 50;
 
   if ((left + 350)  > document.width) {
      left = document.width - 350;
   }
   obj.style.top  = top;
   obj.style.left = left;
   obj.style.visibility = 'visible';
}

function altTextIn (divName) {
   altText = 1;
   altTextName = divName;
}

function altTextOut () {
   var obj = getElement(altTextName); 
   obj.style.visibility = 'hidden';
   altText = 0;
   divName = '';
}

function smallPopup(url,name,x,y) {

   if (isUndef(name)) {
      name = 'MiniPopup';
   }

   if (x == undefined) {
      x = 650;
   }

   if (y == undefined) {
      y = 500;
   }

   var pop = window.open(url, name,
               'toolbar=0,location=0,directories=0,status=0,scrollbars=1,' + 
               'resizable=1,width=' + x + ',height=' + y);
   if (isDef(pop)) {
      pop.focus();
   }
}

function progressPopup(url) {
   var name = 'WorkPopup';
   var x    = 300;
   var y    = 300;

   window.open(url,
               name,
               'toolbar=0,location=0,directories=0,status=0,scrollbars=1,' + 
               'resizable=1,width=' + x + ',height=' + y);
   window.focus();
}

var iMainTableH = 0;
var iMainTableW = 0;

function resizeToTable (tableName) {
   var obj = getElement('detectTableWidth'); 
   window.resizeTo(obj.width + 50, 500);
}

function parseImage (imageString, ws) {
    var image = imageString.split(':2:');
    var imageHash = new Array();
    imageHash['filename'] = image[0];
    imageHash['path']     = image[1];
    imageHash['url']      = image[2];
    imageHash['category'] = image[3];
    if (image[3]) {
        imageHash['quickUrl'] = image[3] + "/" + image[0];
    } else {
        imageHash['quickUrl'] = image[1] + "/" + image[0];
    }
    return imageHash;
}

var hIds = new Array();

function hideIds () {
   alert('hide ids depricated');
}

function showIds () {
   alert('show ids depricated');
}

var iStatus = '';
var iStatusSpan = '';
var iStatusFirst = 0;
var iStatusNext  = 0;

function setIStatus (spanId, string, first, next) {
   iStatusSpan = spanId;
   iStatus = string;

   if (isDef(first)) {
      iStatusFirst = first;
   }

   if (isDef(next)) {
      iStatusNext = next;
   }

   var obj = getElement(iStatusSpan);
   obj.innerHTML = iStatus;
   var timeout = iStatusFirst ? iStatusFirst : 1200;
   iStatusFirst = 0;

   //setTimeout('delIStatus()',  timeout);
}

function delIStatus() {
   if (iStatus.length==0) { 
      iStatusNext = 0;
      return;
   }

   var timeout = iStatusNext ? iStatusNext : 30;

   iStatus = iStatus.substring(0, iStatus.length - 1);
   var obj = getElement(iStatusSpan);
   obj.innerHTML = iStatus;
   setTimeout('delIStatus()', timeout); 
}

function setSelectBox (formName, fieldName, data, dflt) {
   var elem = eval(formName + '.' + fieldName);
   elem.length = data.length; 
   for (var i=0; i<data.length; i++) {
      if (isDef(dflt) && data[i][0] == dflt) {
         elem.selectedIndex = i;
      }
      elem.options[i].value = data[i][1];
      elem.options[i].text  = data[i][0];
   }
}

function focusFirst () {
   for (var j=0; j<document.forms.length; j++) {
      for (var i=0; i<document.forms[j].elements.length; i++) {
         if (document.forms[j].elements[i].type == 'text') {
            document.forms[j].elements[i].focus();
            return;
         }
      }
   }
}

function askLogout () {
   if (confirm("Would you like to log out as your alternate user?")) {
      alert("ok"); 
   }
}

