

function xshowHideMenuNode(node_id, url){

  n = document.getElementById(node_id);
  if(n){
    if (!n.style.display || n.style.display=="none") {
      n.style.display = "block";

      // hide other nodes of the same level
      var classLevel="";
      var classes = n.className.split(" ");
      for (i=0;i<classes.length;i++ ) {
        if (classes[i].substr(0,5)=="level") {
          classLevel = classes[i];
          break;
        }
      }

      var myEls = getElementsByClass(menu,classLevel, 'div');
      for ( i=0;i<myEls.length;i++ ) {
        if (myEls[i].id != n.id) {
          x = document.getElementById(myEls[i].id);
          if (x.style.display=="block") {
            x.style.display="none";
          }
        }
      }

    } else {
      if (url) window.location = url;
    }
  }
}


function getElementsByClass(node,searchClass,tag) {
    var classElements = new Array();
    var els = document.getElementsByTagName(tag); // use "*" for all elements
    var elsLen = els.length;
    var classLevel;
    for (i = 0, j = 0; i < elsLen; i++) {
         if ( els[i].className.indexOf(searchClass)>-1) {
             classElements[j] = els[i];
             j++;
         }
    }
    return classElements;
}

function showHideWindow(eID, showHide) {
  var element = document.getElementById(eID);
  element.style.visibility = showHide;
}

var TimeToFade = 1000.0;
var currentPicture = 0;


function showPatternImage(eID) {
  if (eID == currentPicture) return false;
  var currImg = document.getElementById("productPicture" + currentPicture);
  var newImg = document.getElementById("productPicture" + eID);
  currentPicture = eID;
  fadeOut(currImg);
  fadeIn(newImg);
}

function fadeIn(element)
{
  if(element == null)
    return;

  if (!element.fadeOpacity) element.fadeOpacity = 1;
  if (!element.timeToFade) element.timeToFade = TimeToFade;
  element.FadeTimeLeft = element.timeToFade;
  element.FadeState = 1;

  if (element.displayValue) element.style.display = element.displayValue;
  element.FadeTimer = window.setTimeout("animateFade(" + new Date().getTime() + ",'" + element.id + "')", 20);
}

function fadeOut(element)
{
  if(element == null)
    return;

  element.fadeOpacity = 0;
  if (!element.timeToFade) element.timeToFade = TimeToFade;
  element.FadeTimeLeft = element.timeToFade;
  element.FadeState = -1;
  element.FadeTimer = window.setTimeout("animateFade(" +  new Date().getTime() + ",'" + element.id + "')", 20);
}

function animateFade(lastTick, eID)
{
  var curTick = new Date().getTime();
  var elapsedTicks = curTick - lastTick;
  var element = document.getElementById(eID);

  if (element.FadeTimeLeft <= elapsedTicks)
  {
    element.style.opacity = element.fadeOpacity
    element.style.filter = 'alpha(opacity = ' + (element.fadeOpacity * 100) + ')';
    element.startOpacity = '';
    if (element.FadeTimer) window.clearInterval(element.FadeTimer);
    if (element.displayValue) {
      element.style.display = element.displayValue;
      element.displayValue = "";
    }

    if (element.callBack) {
      var x = element.callBack + "();";
      element.callBackTimer = window.setTimeout(x, 2);
      element.callBack = "";
    }

    return;
  }

  element.FadeTimeLeft -= elapsedTicks;
  var newOpVal = element.FadeTimeLeft/element.timeToFade;
  if(element.FadeState == 1) {
    newOpVal = 1 - newOpVal;
    if (element.startOpacity)    {
      newOpVal = newOpVal + element.startOpacity;
    }
    newOpVal = Math.min(1, newOpVal);
  } else {
    newOpVal = Math.max(element.fadeOpacity, newOpVal);
  }

  try {element.style.filter = 'progid:DXImageTransform.Microsoft.Alpha(Opacity = ' + (newOpVal*100) + ')'; }
  catch (e) {alert ("1 " + element.style.filter );}

  try {element.style.filter = 'alpha(Opacity = ' + (newOpVal*100) + ')'; }
  catch (e) {alert ("2 " + element.style.filter );}

  try {element.style.opacity = newOpVal;}
  catch (e) {alert ("3 " + element.style.opacity );}

  element.FadeTimer = window.setTimeout("animateFade(" + curTick + ",'" + element.id + "')", 20);
}

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function') {
        window.onload = func;
    } else {
        window.onload = function() {
            if (oldonload) {
                oldonload();
            }
            func();
        }
    }
}
function findComponent (c, o) {
  try {
    if (o.hasChildNodes()) {
      var kids = o.childNodes;
      for (var i = 0; i < kids.length; i++) {
        if ((kids[i].className && kids[i].className.indexOf(c) >= 0) || (kids[i].id && kids[i].id.indexOf(c) >= 0)) {
          return kids[i];
        }
      }
    }
  }
  catch (e) {}
}
function addEvent (o, t, f) {
  if (o.attachEvent) o.attachEvent('on'+ t, f);
  else o.addEventListener(t, f, false);
}

function removeEvent (o, t, f) {
  if (o.detachEvent) o.detachEvent('on'+ t, f);
  else o.removeEventListener(t, f, false);
}
function findOffsetTop (o) {
  var t = 0;
  try {
    if (o.offsetParent) {
      while (o.offsetParent) {
        t += o.offsetTop;
        o  = o.offsetParent;
      }
    }
  }
  catch (e) {t=0;}

  return t;
}

function findOffsetLeft (o) {
  var t = 0;
  try {
    if (o.offsetParent) {
      while (o.offsetParent) {
        t += o.offsetLeft;
        o  = o.offsetParent;
      }
    }
  }
  catch (e) {t=0;}
  return t;
}
	document.getElementsByClassName = function(className, node)
	{
		var hasClassName = new RegExp("(?:^|\\s)" + className + "(?:$|\\s)");
		var allElements = null;
		if (node) {
	          allElements = node.getElementsByTagName("*");
	          if (!allElements) return false;
                } else {
	          allElements = document.getElementsByTagName("*");
                }
		var results = [];

		var element;
		for (var i = 0; (element = allElements[i]) != null; i++) {
			var elementClass = element.className;
			if (elementClass && elementClass.indexOf(className) != -1 && hasClassName.test(elementClass))
				results.push(element);
		}

		return results;
	}
	
function getObjTop (o) {
   var t = 0;
   if (!o) return t;
   if(o.offsetTop!=null) {
      t = o.offsetTop;
   }
   else if(o.clientTop!=null) {
      t = o.clientTop;
   }
   else if(document.implementation.hasFeature("CSS", "2.0")) {
     try {
      t = document.defaultView.getComputedStyle(o,null).getPropertyCSSValue("top").getFloatValue( 5);
     }
     catch (e) {
       t = 0;
     }
   }
   return t;
}

function getObjLeft (o) {
   var t = 0;
   if (!o) return t;
   if(o.offsetLeft!=null) {
      t = o.offsetLeft;
   }
   else if(o.clientLeft!=null) {
      t = o.clientLeft;
   }
   else if(document.implementation.hasFeature("CSS", "2.0")) {
     try {
      t = document.defaultView.getComputedStyle(o,null).getPropertyCSSValue("left").getFloatValue( 5);
     }
     catch (e) {
       t = 0;
     }
   }
   return t;
}
function getObjHeight (o) {

   var t = 0;
   if (!o) return t;
   if(o.offsetHeight!=null) {
      t = o.offsetHeight;
   }
   else if(o.clientHeight!=null) {
      t = o.clientHeight;
   }
   else if(document.implementation.hasFeature("CSS", "2.0")) {
     try {
      t = document.defaultView.getComputedStyle(o,null).getPropertyCSSValue("height").getFloatValue( 5);
     }
     catch (e) {
       t = 0;
     }
   }
   return t;
}

function getObjWidth (o) {

   var t = 0;
   if (!o) return t;

   if(o.offsetWidth!=null) {
      t = o.offsetWidth;
   }
   else if(o.clientWidth!=null) {
      t = o.clientWidth;
   }
   else if(document.implementation.hasFeature("CSS", "2.0")) {
     try {
      t = document.defaultView.getComputedStyle(o,null).getPropertyCSSValue("width").getFloatValue( 5);
     }
     catch (e) {
       t = 0;
     }
   }
   return t;
}

function get_cookie(Name) {
  var search = Name + "="
  var returnvalue = "";
  if (document.cookie.length > 0) {
    offset = document.cookie.indexOf(search)
    // if cookie exists
    if (offset != -1) { 
      offset += search.length
      // set index of beginning of value
      end = document.cookie.indexOf(";", offset);
      // set index of end of cookie value
      if (end == -1) end = document.cookie.length;
      returnvalue=unescape(document.cookie.substring(offset, end))
      }
   }
  return returnvalue;
}
