
function readCookie(name) {
 var nameEQ = name + "=";
 var ca = document.cookie.split(';');
 for (var i = 0; i < ca.length; i++) {
  var c = ca[i];
  while (c.charAt(0) == ' ') c = c.substring(1, c.length);
  if (c.indexOf(nameEQ) == 0) {
   var value = c.substring(nameEQ.length, c.length);
   value = value.replace(/%3b/g, ";");
   return value;
  }
 }
 return "";
}
function setCookie(name, value, days) {
 if (value) value = value.replace(/;/g, "%3b");
 var expires = "";
 if (days) {
  var date = new Date();
  date.setTime(date.getTime() + (days*24*60*60*1000));
  expires = "; expires=" + date.toGMTString();
 }
 document.cookie = name + "=" + value + expires + "; path=/";
}
function setCookieDomain(name, value, days) {
 if (value) value = value.replace(/;/g, "%3b");
 var expires = "";
 var localDomain="";
 var lGetDomain = getLocalDomain();
 if (days) {
  var date = new Date();
  date.setTime(date.getTime() + (days*24*60*60*1000));
  expires = "; expires=" + date.toGMTString();
 }
 localDomain = "; domain=" + lGetDomain;
 if (!lGetDomain) {
  document.cookie = name + "=" + value + expires + "; path=/";
 } else { 
  document.cookie = name + "=" + value + expires + localDomain + "; path=/";
 } 
}
function getLocalDomain ( ) {
 var myList = window.location.hostname.split(".");
 var returnCode = "";
 if (myList.length > 1) {
  returnCode =  "." + myList[myList.length - 2] + "." +  myList[myList.length - 1];
 }
 return returnCode;
}
function getOption( value, preselect, label ) {
 var option = "<option ";
 if (value == preselect) option += "selected ";
 option += "value=\"" + value + "\">" + label + "\n";
 return option;
}
function addToMyCookie(object, objectId) {
 var MY_MAX = 8;
 var visited = readCookie("MY" + object + "IDS");
 if (!visited) visited = "_";
 if (visited.indexOf("_" + objectId + "_") == -1) {
  visited = "_" + objectId + visited;
  var newVisited = "_";
  for (var i = 0; ((i < MY_MAX) && (visited.length > newVisited.length)); i++) {
   var nextUScoreIndex = visited.indexOf("_", newVisited.length) + 1;
   if (nextUScoreIndex == 0) nextUScoreIndex = visited.length;
   newVisited += visited.substring(newVisited.length, nextUScoreIndex);
  }
  setCookie("MY" + object + "IDS", newVisited, 60);
 }
}
function setAccessCode(varName) {
	var myVar = document.getElementById(varName);
	if (myVar) {
		var d = new Date();
		var code = d.getDate() + 99;
		myVar.value = code;
	}
}
function scaleUpArea(obj, noOfCols, noOfRows) {
 if (obj) {
  obj.cols = noOfCols;
  obj.rows = noOfRows;
 }
 return false;
}
function setBreadCrumbTrail(siteId, newLink, newName, newLogo, maxItems) {
 var linkInTrail = false;
 var MAX_RECENT = maxItems;
 for (var i = 0; ((i < MAX_RECENT) && (linkInTrail == false)); i++) {
  if (readCookie("recentLink" + i).indexOf(newLink + "xx-y") == 0) linkInTrail = true;
 }
 if (linkInTrail == false) {
  for (var i = (MAX_RECENT - 1); i > 0; i--) {
   switch(siteId) {
   case 7:
   case 8:
    setCookieDomain("recentLink" + i, readCookie("recentLink" + (i - 1)), 31);
    break;
   default:
    setCookie("recentLink" + i, readCookie("recentLink" + (i - 1)), 31);
    break;
   }
  }
  switch(siteId) {
  case 7:
  case 8:
   setCookieDomain("recentLink0", newLink + "xx-y" + newName + "xx-y" + newLogo, 31);
   break;
  default:
   setCookie("recentLink0", newLink + "xx-y" + newName + "xx-y" + newLogo, 31);
   break;
  }
 }
}
function getBreadCrumbTrailCh(label, siteId, newLink, newName, newLogo, maxItems) {
 return getBreadCrumbTrail(label, siteId, newLink, newName, newLogo, maxItems);
}
function getBreadCrumbTrail(label, siteId, newLink, newName, newLogo, maxItems) {
 var resultStr = "";
 var MAX_RECENT = maxItems;
 var counter = 0;
 for (var i = (MAX_RECENT - 1); i >= 0; i--) {
  var recentLink = readCookie("recentLink" + i);
  if (recentLink != "") {
   var recentName = null;
   var recentLogo = null;
   var values = recentLink.split('xx-y');
   for (var j = 0; j < values.length; j++) {
    switch(j) {
    case 0: recentLink = values[j]; break;
    case 1: recentName = values[j]; break;
    case 2: recentLogo = values[j]; break;
    }
   }
   if (recentName == null) recentName = "";
   if (recentName != "") { 
    var folder = "";
    if (recentLink.indexOf("/") == -1) { // recentLink only contains company ID
     while (recentLink.length < 6) {
      recentLink = "0" + recentLink;
     }
     folder = "/" + siteId + "/company/";
     folder += recentLink.substring(0, 2) + "/" + recentLink.substring(2, 4) + "/" + recentLink.substring(4, 6) + "/";
     recentLink = folder + "company_" + siteId + ".html";
    }
    if (recentLink.indexOf("?") == -1) {
     recentLink += "?";
    } else {
     recentLink += "&";
    }
    recentLink += "org=zbf";
    if (counter == 0) {
     switch(siteId) {
     case 7:
     case 8:
      resultStr += "<span class='tableBlack'>" + label + "</span><br><div class='cell'>";
      break;
     default:
      resultStr += "<br><p class='noprint'><table width='100%' bgcolor='white' cellpadding='3' cellSpacing='1'><tr height='17' class='tableBlack'><td colspan='5' width='100%' align='left' valign='middle' class='tableBlack'>" + label;
      resultStr += "</td></tr></table></p><p><table border='0' cellpadding='0' cellspacing='0'><tr class='tableCentered'><td><img border='0' src='/";
      resultStr += siteId + "/graphics/catalog/" + siteId + "/triangle6x13.gif' alt=''></td><td width='15'>&nbsp;</td><td>";
      break;
     }
    } else {    // if (counter == 0)
     switch(siteId) {
     case 7:
     case 8:
      resultStr += "<div class='cell'>";
      break;
	default:
      resultStr += "</td><td width='15'>&nbsp;</td><td><img border='0' src='/" + siteId + "/graphics/catalog/" + siteId;
      resultStr += "/triangle6x13.gif' alt=''></td><td width='15'>&nbsp;</td><td>";
      break;
     }
    }
    counter++;
    if (recentLogo == null) recentLogo = "";
    if (recentLogo != "") {
     if (recentLogo.indexOf("/") == -1) recentLogo = folder + recentLogo;
     switch(siteId) {
     case 7:
     case 8:
      resultStr += "<a href=\"" + recentLink + "\"><img border=\"0\" src=\"" + recentLogo + "\" alt=\"\"></a><br><a href=\"" + recentLink + "\">" + recentName + "</a></div>";
      break;
     default:
      resultStr += "<a href=\"" + recentLink + "\" class=\"popupImg\"><img border=\"0\" src=\"" + recentLogo + "\" alt=\"\"></a></td><td>&nbsp;</td><td><a href=\"" + recentLink + "\" class=\"bctNameWithLogo\">" + recentName + "</a>";
      break;
     }
    } else {
	    switch(siteId) {
	    case 7:
	    case 8:
	     resultStr += "<br><a href=\"" + recentLink + "\">" + recentName + "</a></div>";
	     break;
	    default:
	     resultStr += "<a href=\"" + recentLink + "\" class=\"bctNameNoLogo\">" + recentName + "</a>";
	     break;
	    }
    }
   }
  }
 }
 if (counter > 0) {
  switch(siteId) {
  case 7:
  case 8:
   break;
  default:
   resultStr += "</td></tr></table></p>";
   break;
  }
 }
 if ((newLink != null) && (newName != null)) {
  setBreadCrumbTrail(siteId, newLink, newName, newLogo, maxItems);
 }
 return resultStr;
}
function utf8Decode(utftext) {
 // From http://www.webtoolkit.info/javascript-url-decode-encode.html
 utftext = unescape(utftext);
 var result = "";
 var i = 0;
 var c = c1 = c2 = 0;
 while (i < utftext.length) {
  c = utftext.charCodeAt(i);
  if (c < 128) {
   result += String.fromCharCode(c);
   i++;
  }
  else if((c > 191) && (c < 224)) {
   c2 = utftext.charCodeAt(i+1);
   result += String.fromCharCode(((c & 31) << 6) | (c2 & 63));
   i += 2;
  }
  else {
   c2 = utftext.charCodeAt(i+1);
   c3 = utftext.charCodeAt(i+2);
   result += String.fromCharCode(((c & 15) << 12) | ((c2 & 63) << 6) | (c3 & 63));
   i += 3;
  }
 }
 return result;
}
function changeCss(myClass, element, value) {
 //documentation for this script at http://www.shawnolson.net/a/503/
 var cssRules;
 if (document.all) {
  cssRules = 'rules';
 } else {
  if (document.getElementById) cssRules = 'cssRules';
 }
 if (document.styleSheets) {
  for (var i = 0; i < document.styleSheets.length; i++){
   if (document.styleSheets[i][cssRules]) {
    for (var j = 0; j < document.styleSheets[i][cssRules].length; j++) {
     if (document.styleSheets[i][cssRules][j].selectorText == myClass) {
      document.styleSheets[i][cssRules][j].style[element] = value;
     }
    }
   }
  }
 } 
}
function printableVersion() { 
 changeCss('.tableBlack','color','black');
 changeCss('.tableDarkGrey','color','black');
 changeCss('.tableBlack','background','white');
 changeCss('.tableDarkGrey','background','white');
 changeCss('.tableVeryVeryLightGrey','background','white');
 var nonPrintEls = document.getElementsByName("noprint");	// to be removed with all name="noprint" attributes
 if (nonPrintEls) {
  for (var i = 0; i < nonPrintEls.length; i++) {
   nonPrintEls[i].style.display = "none";
  }
 }
 var nonPrintEls2 = getElementsByClassName("noprint");
 if (nonPrintEls2) {
  for (var i = 0; i < nonPrintEls2.length; i++) {
   nonPrintEls2[i].style.display = "none";
  }
 }
 var backBut = document.getElementById("backToNormalViewButton");
 if (backBut) backBut.style.display = "";
 if (window.print) setTimeout("window.print()", 1000);   // Time out required for FireFox.
};
function normalVersion() {
 normalVersion(1);
}
function normalVersion(siteId) {
 changeCss('.tableBlack','color','white');
 changeCss('.tableDarkGrey','color','white');
 changeCss('.tableBlack','background',getBackgroundColor('tableBlack', siteId));
 changeCss('.tableDarkGrey','background',getBackgroundColor('tableDarkGrey', siteId));
 changeCss('.tableVeryVeryLightGrey','background','#EEEEEE');
 var nonPrintEls = document.getElementsByName("noprint");	// to be removed with all name="noprint" attributes
 if (nonPrintEls) {
  for (var i = 0; i < nonPrintEls.length; i++) {
   nonPrintEls[i].style.display = "";
  }
 }
 var nonPrintEls2 = getElementsByClassName("noprint");
 if (nonPrintEls2) {
  for (var i = 0; i < nonPrintEls2.length; i++) {
   nonPrintEls2[i].style.display = "";
  }
 }
 var backBut = document.getElementById("backToNormalViewButton");
 if (backBut) backBut.style.display = "none";
};
function getBackgroundColor(styleType, siteId) {
 if (styleType == "tableDarkGrey") {
  switch(siteId) {
  case 5: return "#ff0000";
  case 7:
  case 8: return "#ce2810";
  default: return "#7E8CA6";
  }
 } else {
  if (styleType == "tableBlack") {
   switch(siteId) {
   case 5:
   case 7:
   case 8: return "#6a0000";
   case 11: return "#D8C5BE";
   case 17: return "#093e8e";
   default: return "#082862";
   }
  } else {
   return "white";
  }
 }
}
// RFI tool tips
// http://www.bitterpill.org/bp/2004-10/alt-alt-text.html
var rfitt_bgcol = "#FFFFAF";
var rfitt_brdr = " solid #7e8ca6 1px";
var padding = "5px 5px 5px 5px";
var live = new Object();
var nofade = new Object();
var fastfade = false;
var moz_opacity = false;
var ie_opacity = false;
var nodes = new Object();
var tempX = 0;
var tempY = 0;
var ison = false;
var IE = document.all?true:false;
// If NS -- that is, !IE -- then set up for mouse capture
if (!IE) document.captureEvents(Event.MOUSEMOVE);
// Set-up to use getMouseXY function onMouseMove
document.onmousemove = getMouseXY;
function setOff(altid) {
 var nodeInst = nodes[altid];
 nodeInst['on'] = false;
 ison = false;
}
function onMouseOutSetOffAndHide(node, altid) {
 node.onmouseout = function offnhide() { setOff(altid); hideAltAlt(altid); };
}
function showAltAlt(node, altid, width) {
    showAltAlt2(node, altid, width, 2000); // 2000 = time in millis before info fades
}
function showAltAlt2(node, altid, width, hidetime) {
 if (hidetime == null) hidetime = 2000;
 var status = true;
 var nodeInst = nodes[altid];
 if(nodeInst && nodeInst['on'] == true) {
  status = false;
 }
 if(browserDetect() && status) {
  var nodeInst = new Object();
  nodeInst['altid'] = altid;
  nodeInst['width'] = width;
  nodeInst['on'] = true;
  nodes[altid] = nodeInst;  
  node.onmouseout = function offit() { setOff(altid); };
  setTimeout("run('" + altid + "'," + hidetime + ")", 500); 
 }
}
function run(altid, hidetime) {
 var nodeInst = nodes[altid];
 if(nodeInst['on'] == true) {
  altalt(nodeInst['altid'], nodeInst['width'], hidetime);
 }
}
function hideAltAlt(altid) {
 fadeit(altid, 3);
}
function altalt(altid, width, hidetime) {
 nid = altid + '-altalt'; 
 try {    
  if(live[nid]) {
   return;
  } else {
   live[nid] = true;
  }
  leftx = tempX + 5; // show box a short distance away from the mouse pointer, so that the user can still click checkbox/radio inputs
  bottomy = tempY + 5; 
  var span = document.getElementById(altid).getElementsByTagName("span")[0];
  var newDiv = document.createElement("DIV");
  newDiv.setAttribute("id", nid);
  newDiv.style.position = "absolute";
  newDiv.style.visibility = "hidden";
  newDiv.style.overflow = "hidden";
  newDiv.style.top = bottomy + "px";
  newDiv.style.left = leftx + "px";
  newDiv.style.border = rfitt_brdr;
  newDiv.style.width = width + "px";
  newDiv.style.padding = padding;
  newDiv.style.paddingRight = "3px";
  newDiv.style.backgroundColor = rfitt_bgcol;
  var newSpan = document.createElement("SPAN");
  newSpan = span.cloneNode(true);
  newDiv.appendChild(newSpan);  
  var body = document.getElementsByTagName("body")[0]; 
  body.appendChild(newDiv);     
  newDiv.style.visibility = 'visible';
  setTimeout('fadeit("' + altid + '", 10)', hidetime);
 } catch(err) { 
  alert(err);
 }
}
function fadeit(altid, op) {
 nid = altid + '-altalt';
 var node = document.getElementById(nid);  
 if(nofade[nid] == true) {
  node.style.opacity = "1";
  nofade[nid] = false;
  return;
 }
 if(op > 0 && fastfade == false) {
  op = op - 1;
  if(ie_opacity) {
   var ieop = op * 10;  
   if (node) node.style.filter = "alpha(opacity="+ ieop + ")";
  } else if (moz_opacity) {
   //alert('mozo');
   var mozop = op * 10;
   if (node) node.style.MozOpacity= mozop + "/100";
  } else {
   if (node) node.style.opacity = "." + op;
  }
  fadefunct = 'fadeit("' + altid + '", ' + op + ')';
  setTimeout(fadefunct, 30);
 } else {
  var node = document.getElementById(nid);
  if (node) node.style.visibility = 'hidden';   
  var body = document.getElementsByTagName("body")[0];
  if (node) body.removeChild(node); 
  live[nid] = false;
 } 
}
function browserDetect() {
 var isgood = false;
 var agt=navigator.userAgent.toLowerCase();
 var is_major = parseInt(navigator.appVersion); 
 if(agt.indexOf('safari')!=-1) {
  isgood = true;
 } else if((agt.indexOf('mozilla')!=-1) && (agt.indexOf('gecko')!=-1)) {
  var rvindex = agt.indexOf("rv:");
  var rv2end = agt.substring(rvindex + 3, agt.length);
  var parenIndex = rv2end.indexOf(")");
  var rev = rv2end.substring(0, parenIndex); 
  if(rev < 1.7) {
   fastfade = true;
   //alert( moz_opacity );
  }
  isgood = true;
 } else if(agt.indexOf('opera')!=-1) {
  fastfade = true;
  isgood = true;
  //moz_opacity = true;
 } else if(agt.indexOf('msie')!=-1) {
  if(agt.indexOf('mac')!=-1) { 
   ie_opacity = false;
   fastfade = true;
  } else {
   ie_opacity = true;
  }
  isgood = true;
 }
 return isgood;
}
function getMouseXY(e) {
 if (IE) { // grab the x-y pos.s if browser is IE
   tempX = event.clientX;
   if ((document.body) && (document.body.scrollLeft)) {
     tempX += document.body.scrollLeft;
   } else {
     if ((document.documentElement) && (document.documentElement.scrollLeft)) {
        tempX += document.documentElement.scrollLeft;
     }
   }
   tempY = event.clientY;
   if ((document.body) && (document.body.scrollTop)) {
     tempY += document.body.scrollTop;
   } else {
     if ((document.documentElement) && (document.documentElement.scrollTop)) {
        tempY += document.documentElement.scrollTop;
     }
   }
  } else { // grab the x-y pos.s if browser is NS
   tempX = e.pageX;
   tempY = e.pageY;
  }
} 
function setSearchTerm() {
 setSearchTerm(1);
}
function setSearchTerm(siteId) {
	 var kw = readCookie("SEARCHTERM");
	 if (kw == "") {
	  var myRef = document.referrer;
	  if ((myRef != null) && (myRef != "")) {
	   if (myRef.indexOf(".google.") != -1) {
	    var qIndex = myRef.indexOf("?q=");
	    if (qIndex == -1) qIndex = myRef.indexOf("&q=");
	    if (qIndex != -1) {
	     kw = myRef.substring(qIndex + 3, myRef.length);
	     var nextVarIndex = kw.indexOf("&");
	     if (nextVarIndex != -1) kw = kw.substring(0, nextVarIndex);
	     kw = utf8Decode(kw);
	     kw = kw.replace(/\+/g, " ");
	    }
	   }
	  }
	 }
	 kw = unescape(kw);
	 if (siteId == 11) {
	  kw = kw.replace(/&#369;/g, "\u0171");
	  kw = kw.replace(/&#368;/g, "\u0170");
	  kw = kw.replace(/&#337;/g, "\u0151");
	  kw = kw.replace(/&#336;/g, "\u0150");
	 }
	 if (siteId == 17) {
	  kw = kw.replace(/&#368;/g, "\u0170");
	  kw = kw.replace(/&#268;/g, "\u010C");
	  kw = kw.replace(/&#269;/g, "\u010D");
	  kw = kw.replace(/&#270;/g, "\u010E");
	  kw = kw.replace(/&#271;/g, "\u010F");
	  kw = kw.replace(/&#282;/g, "\u011A");
	  kw = kw.replace(/&#283;/g, "\u011B");
	  kw = kw.replace(/&#327;/g, "\u0147");
	  kw = kw.replace(/&#328;/g, "\u0148");
	  kw = kw.replace(/&#344;/g, "\u0158");
	  kw = kw.replace(/&#345;/g, "\u0159");
	  kw = kw.replace(/&#352;/g, "\u0160");
	  kw = kw.replace(/&#353;/g, "\u0161");
	  kw = kw.replace(/&#356;/g, "\u0164");
	  kw = kw.replace(/&#357;/g, "\u0165");
	  kw = kw.replace(/&#366;/g, "\u016E");
	  kw = kw.replace(/&#367;/g, "\u016F");
	  kw = kw.replace(/&#381;/g, "\u017D");
	  kw = kw.replace(/&#382;/g, "\u017E");
	 }
	 var myBox = document.getElementById("searchBox");
	 if (myBox) {
		if (kw != "") {
			myBox.value = kw;
		} else {
			var myValue = myBox.value;
			if ((myValue == null) || (myValue == "")) {
				myBox.focus();
				if (siteId == 1) myBox.style.backgroundColor = "#ffffc3";
			}
		}
	 }
}
function getParameter(paramName) {
 var result = null;
 if (paramName) {
  var myLocation = String(window.location);
  if (myLocation != null) {
   var idx = myLocation.indexOf('?');
   if (idx != -1) {
    var pairs = myLocation.substring(idx + 1, myLocation.length).split('&');
    for (var i = 0; i < pairs.length; i++) {
     var nameVal = pairs[i].split('=');
     if (nameVal[0] == paramName) result = nameVal[1];
    }
   }
  }
 }
 return result;
}
/*
Developed by Robert Nyman, http://www.robertnyman.com
Code/licensing: http://code.google.com/p/getelementsbyclassname/
*/ 
var getElementsByClassName = function (className, tag, elm){
 if (document.getElementsByClassName) {
  getElementsByClassName = function (className, tag, elm) {
   elm = elm || document;
   var elements = elm.getElementsByClassName(className),
    nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
    returnElements = [],
    current;
   for(var i=0, il=elements.length; i<il; i+=1){
    current = elements[i];
    if(!nodeName || nodeName.test(current.nodeName)) {
     returnElements.push(current);
    }
   }
   return returnElements;
  };
 }
 else if (document.evaluate) {
  getElementsByClassName = function (className, tag, elm) {
   tag = tag || "*";
   elm = elm || document;
   var classes = className.split(" "),
    classesToCheck = "",
    xhtmlNamespace = "http://www.w3.org/1999/xhtml",
    namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
    returnElements = [],
    elements,
    node;
   for(var j=0, jl=classes.length; j<jl; j+=1){
    classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
   }
   try {
    elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
   }
   catch (e) {
    elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
   }
   while ((node = elements.iterateNext())) {
    returnElements.push(node);
   }
   return returnElements;
  };
 }
 else {
  getElementsByClassName = function (className, tag, elm) {
   tag = tag || "*";
   elm = elm || document;
   var classes = className.split(" "),
    classesToCheck = [],
    elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
    current,
    returnElements = [],
    match;
   for(var k=0, kl=classes.length; k<kl; k+=1){
    classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
   }
   for(var l=0, ll=elements.length; l<ll; l+=1){
    current = elements[l];
    match = false;
    for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
     match = classesToCheck[m].test(current.className);
     if (!match) {
      break;
     }
    }
    if (match) {
     returnElements.push(current);
    }
   }
   return returnElements;
  };
 }
 return getElementsByClassName(className, tag, elm);
};


