 /* globals */
String.trim = function(s) {
  if (s==null) {
    return s;
  }
  return s.replace(/^\s+/, "").replace(/\s+$/, "");
}

var EU = {};
EU.txtSearch_cleared = false;
EU.txtSearch_checkvalue = function(obj) {
  if (!EU.txtSearch_cleared) {
    obj.value = '';
    EU.txtSearch_cleared = true;
  }
}

EU.Popover = {};
EU.Popover.tagId = 'a_popover';
EU.Popover.close = function() {
  // Are we in the div tag?
  var interstitialDivTag = null;
  if (window.parent &&
    window.parent.document &&
    window.parent.document.getElementById(EU.Popover.tagId)) {
    interstitialDivTag  = window.parent.document.getElementById(EU.Popover.tagId)
    interstitialDivTag.style.visibility='hidden';
    return 0;
  }

  // Not in the popover
  interstitialDivTag = $(EU.Popover.tagId);
  if (interstitialDivTag!=null) {
    interstitialDivTag.style.visibility='hidden';
  }
  return 0;
}


/*
  Popover creator
*/
EU.Popover.open = function(url, width, height, isText) {
  var interstitialDivTag = $(EU.Popover.tagId);
  var i_width = (width<=0 || undefined == width)?500:width;
  var i_height = (height<=0 || undefined == height)?400:height;

  if (interstitialDivTag==null) {
    interstitialDivTag = document.createElement('DIV');
    interstitialDivTag.style.position='absolute';
    interstitialDivTag.style.margin='0 0 0 0';
    interstitialDivTag.style.border = "1px ridge Black";
    interstitialDivTag.style.width =  i_width + 'px';
    interstitialDivTag.style.height = i_height + 'px';
    interstitialDivTag.style.zIndex = 102;
    interstitialDivTag.id = EU.Popover.tagId;
    document.body.insertBefore(interstitialDivTag, document.body.firstChild);
  }

  if (isText) {
    interstitialDivTag.innerHTML = url;
  } else {
    var iHtml = '<iframe sr';
    iHtml = iHtml + "c='" + url;
    iHtml = iHtml + "' style='width:100%; height: 100%' ";
    iHtml = iHtml + "scrolling='yes' id='interstitialFrame' name='interstitialFrame'></iframe>";

    interstitialDivTag.innerHTML = iHtml;
  }

  interstitialDivTag.style.left=((document.body.clientWidth - i_width)/3 + "px");

  var topOffSet = window.pageYOffset
    || document.documentElement.scrollTop
    || document.body.scrollTop
    || 0;

  interstitialDivTag.style.top=(topOffSet + 30) + "px";

  interstitialDivTag.style.visibility='visible';
}


EU.Popover.currentPopover=null;
EU.Popover.showPopover=function (elementName) {
  if (EU.Popover.currentPopover!=null) {
    EU.Popover.hidePopover(elementName);
  }

  /* Reset the top and left - these need fixed */
  var topOffSet = window.pageYOffset
    || document.documentElement.scrollTop
    || document.body.scrollTop
    || 0;
  $(elementName).style.top = (topOffSet + 20) + "px";
	$(elementName).style.zIndex=102;
  var defaultWidth = 400;
  if ($(elementName).style.width) {
    defaultWidth = $(elementName).style.width.replace(/[a-z ]+/,"");
  }

  $(elementName).style.left = ((document.body.scrollWidth-defaultWidth)/2) + "px";

  Effect.BlindDown($(elementName));
  EU.Popover.currentPopover = elementName;
}
EU.Popover.hidePopover = function() {
  if (EU.Popover.currentPopover!=null) {
    Effect.SlideUp($(EU.Popover.currentPopover));
    EU.Popover.currentPopover = null;
  }
}

EU.Popover.togglePopover=function(elementName) {
  if (EU.Popover.currentPopover==null || EU.Popover.currentPopover!=elementName) {
    EU.Popover.showPopover(elementName);
  } else {
    EU.Popover.hidePopover(elementName);
  }
}



/*
  Spawn a popup. returns false to cancel the click.
  Usage:
  DEFAULT
    <a href="wacky.html"
       onclick="return a_popup(this)">
      Foo
    </a>
  Set width/height
    <a href="wacky.html"
       onclick="return a_popup(this, 200, 300)">
      Foo
    </a>

  Custom style - not resizeable
    <a href="wacky.html"
       onclick="return a_popup(this, 200, 300, 'titlebar,scrollbars=yes,resizable=no')">
      Foo
    </a>

  Custom style - and text
    <a href="wacky.html"
       onclick="return a_popup(this, 200, 300, 'titlebar,scrollbars=yes,resizable=no', 'doh')">
      Foo
    </a>
*/
function a_popup() {
  var a_element=null;
  var a_width=null;
  var a_height=null;
  var a_windowStyle=null;
  var a_customText=null;

  switch (a_popup.arguments.length) {
    case 5:
      a_customText = a_popup.arguments[4];
    case 4:
      a_windowStyle = a_popup.arguments[3];
    case 3:
      a_height = a_popup.arguments[2];
    case 2:
      a_width = a_popup.arguments[1];
    case 1:
      a_element = a_popup.arguments[0];
    default:
  }

  var aTarget = a_element.target;

  if (aTarget==null || aTarget=="") {
    aTarget = "pop";
  }

  /* Because we can't do real design work - only kludge things up */
  if (a_element.href!=null && a_element.href.match(/\/(fs|dar|floor_selector)\.asp/)) {
    aTarget = "eieio";
  }

  if (a_windowStyle==null) {
    a_windowStyle = "titlebar,scrollbars=yes,resizable=yes";
  }

  if (a_width==null || a_width <=0) {
    a_width=400;
  }
  if (a_height==null || a_height <=0) {
    a_height=400;
  }

  a_windowStyle+= (",left="+((screen.availWidth - a_width) / 2));
  a_windowStyle+= (",width="+a_width);

  a_windowStyle+= (",top="+(((screen.availHeight - a_height) / 2 ) - 30));
  a_windowStyle+= (",height="+a_height);



   var w;
  if (a_customText!=null) {
    w = window.open('', aTarget, a_windowStyle);
    try {
      w.document.close();
      w.document.open();
      w.document.writeln(a_customText);
      try {
        w.document.close();
      } catch(e){}
    } catch(e){}
  } else {
    w = window.open(a_element.href, aTarget, a_windowStyle);
  }
  w.focus();

  return false;
}



EU.Cookie = {};

/**
 * Sets a Cookie with the given name and value.
 *
 * name       Name of the cookie
 * value      Value of the cookie
 * [path]     Path where the cookie is valid (default: path of calling document)
 * [expires]  Expiration date of the cookie (default: end of current session)
 * [domain]   Domain where the cookie is valid
 *              (default: domain of calling document)
 * [secure]   Boolean value indicating if the cookie transmission requires a
 *              secure transmission
 */
EU.Cookie.set = function(name, value, path, expires, domain, secure) {
    document.cookie= name + "=" + encodeURIComponent(value) +
        ((expires) ? "; expires=" + expires.toGMTString() : "") +
        ((path) ? "; path=" + path : "") +
        ((domain) ? "; domain=" + domain : "") +
        ((secure) ? "; secure" : "");
}

/**
 * Gets the value of the specified cookie.
 * Returns null if cookie does not exist.
 */
EU.Cookie.get = function(name) {
  try {
    var cookies = document.cookie;
    var index = cookies.indexOf(name + "=");
    if (index == -1) return null;
    index = cookies.indexOf("=", index) + 1;
    var endstr = cookies.indexOf(";", index);
    if (endstr == -1) endstr = cookies.length;
    return decodeURIComponent(cookies.substring(index, endstr));
  } catch(e) {}
  return null;
}

/**
 * Deletes the specified cookie.
 * delete is areserved word in javascript
 *
 * name      name of the cookie
 * [path]    path of the cookie (must be same as path used to create cookie)
 */
EU.Cookie.remove = function (name, path) {
    if (EU.Cookie.get(name)) {
        document.cookie = name + "=" +
            ((path) ? "; path=" + path : "") +
            "; expires=Thu, 01-Jan-70 00:00:01 GMT";
    }
}


EU.Menu = {};
EU.Menu.startList=function(){
  if (document.all&&document.getElementById&&window.mainMenuBar){
    // Add a shim to hide select items for drop down menus.
    if (navigator.appVersion.substr(22,3)!="5.0")
      window.mainMenuBar.innerHTML=('<iframe id="menushim" src="about:blank" scrolling="no" frameborder="0" style="position:absolute;display:none;filter: progid:DXImageTransform.Microsoft.Alpha(style=0,opacity=0);"></iframe>' + window.mainMenuBar.innerHTML);
    navRoot=document.getElementById("mainMenu");
    for (i=0;i<navRoot.childNodes.length;i++){
      node=navRoot.childNodes[i];
      if (node.nodeName=="LI"&&node.getElementsByTagName("UL").length>0){
        node.onmouseover=function(){
          if(this.className.indexOf("over")==-1){
            this.className+=" over";
            EU.Menu.hideDropdowns(this.getElementsByTagName("UL")[0],true);
          }
        }
        node.onmouseout=function(){
          if(!EU.Menu.isInParent(event.toElement, this)){
            this.className=this.className.replace(" over","");
            EU.Menu.hideDropdowns(this.getElementsByTagName("UL")[0],false);
          }
        }
      }
    }
  }
}
EU.Menu.isInParent = function(el, parent){
  if (!el || ! parent)
    return false;

  var aEls=parent.getElementsByTagName(el.tagName)
  if (!aEls)
      return false;
  if(aEls.length==0)
    return false;
  for(var i=0;i<aEls.length;i++){
    if(el==aEls[i])
      return true;
  }
  return false;
}
EU.Menu.hideDropdowns = function(obj, bool){
  if (navigator.appVersion.substr(22,3)=="5.0"){
    if(bool)
      EU.Menu.hideSelects();
    else
      EU.Menu.showSelects();
    return;
  }
  var mnuShim=document.getElementById("menushim");
  if(bool){
    mnuShim.style.left=EU.Menu.getPageOffsetLeft(obj)+"px";
    mnuShim.style.top=EU.Menu.getPageOffsetTop(obj)+"px";
    mnuShim.style.width=obj.offsetWidth+"px";
    mnuShim.style.height=obj.offsetHeight+"px";
    obj.style.zIndex="101";
    mnuShim.style.zIndex="0";
    mnuShim.style.display="block";
  } else
    mnuShim.style.display="none";
}
EU.Menu.getPageOffsetLeft=function (el){
  var x;
  x=el.offsetLeft;
  if (el.offsetParent!=null)
    x+=EU.Menu.getPageOffsetLeft(el.offsetParent);
  return x;
}
EU.Menu.getPageOffsetTop = function(el){
  var y;
  y=el.offsetTop;
  if (el.offsetParent!=null)
    y+=EU.Menu.getPageOffsetTop(el.offsetParent);
  return y;
}
EU.Menu.hideSelects = function(){
  var oSelects=document.getElementsByTagName("select");
  for(var i=0;i<oSelects.length;i++)
    oSelects[i].className+=" hide";
}
EU.Menu.showSelects = function(){
  var oSelects=document.getElementsByTagName("select");
  for(var i=0;i<oSelects.length;i++)
    oSelects[i].className=oSelects[i].className.replace(" hide","");
}
EU.Menu.addEvent = function(obj, evType, fn) {
  // adds an eventListener for browsers which support it
  // Written by Scott Andrew: nice one, Scott
  if (obj.addEventListener){
    obj.addEventListener(evType,fn,true);
    return true;
  } else if (obj.attachEvent){
    var r = obj.attachEvent("on"+evType,fn);
    return r;
  } else {
    return false;
  }
}

EU.Menu.addEvent(window,"load",EU.Menu.startList);

EU.updateCartCount = function updateCartCount() {
  var opt = {
    method: 'post',
    onSuccess: function(t) {
      $('cartCount').innerHTML  = String.trim(t.responseText);
      EU.Cookie.set('cartCount', String.trim(t.responseText), "/");
    }
  }


  new Ajax.Request('cart_count.asp', opt);
}


var s_linkTrackEvents;
EU.Omniture = {};
EU.Omniture.addLinkTrackEvents = function(myEvent) {
  if (s_linkTrackEvents != null && s_linkTrackEvents != "") {
    s_linkTrackEvents += "," + myEvent;
  } else {
    if (myEvent.indexOf('event') > 0) {
      s_linkTrackVars = 's_events';
      s_linkTrackEvents = myEvent;
    } else
    s_linkTrackEvents = myEvent;
  }
}

/* for focus fun */
EU.hack1 =  function() {
    try {
    var x = function(inputs) {
      for (var i=0; i<inputs.length; i++) {
        if (!inputs[i].type.match(/(button|radio|check|image)/)) {
          inputs[i].onfocus=function() {
            this.className+=" focussy";
          }
          inputs[i].onblur=function() {
            this.className=this.className.replace(new RegExp(" focussy\\b"), "");
          }
        }
      }
    }
    x(document.getElementById("content").getElementsByTagName("INPUT"));
    x(document.getElementById("content").getElementsByTagName("TEXTAREA"));
    x(document.getElementById("content").getElementsByTagName("SELECT"));
  } catch(aintsupported) {
  }
}
/* Set focus on first visible text field */
EU.skipHack2 = false;
EU.hack2 =  function() {
  if(EU.skipHack2) {
    return;
  }
    try {
    var x = function(inputs) {
      for (var i=0; i<inputs.length; i++) {
        if (inputs[i].type.match(/text/i)) {
          inputs[i].focus();
          return;
        }

      }
    }
    x(document.getElementById("content").getElementsByTagName("INPUT"));
  } catch(aintsupported) {
  }
}

if (window.attachEvent) window.attachEvent("onload", EU.hack1);
Event.observe(window, "load", EU.hack2);

EU.setFocusOnLoad = function(fieldName) {
  EU.skipHack2 = true;
  var f = function() {
    var nodes = document.getElementById("content").getElementsByTagName("SELECT");
    for (var i=0; i<nodes.length; i++) {
      if (fieldName == nodes[i].name) {
        nodes[i].focus();
        return;
      }
    }
    nodes = document.getElementById("content").getElementsByTagName("INPUT");
    for (var i=0; i<nodes.length; i++) {
      if (fieldName == nodes[i].name) {
        nodes[i].focus();
        return;
      }
    }
  }
  Event.observe(window, "load", f);
};


if (window.location.pathname!=null && window.location.pathname.match(/eu1\/pl\//)) {
  /*
    The stragegy is to go as recursively deep as possible to make the change.
  */
  EU.dontForgetPoland1 = function(aNode, aTagName) {
    var nodes = aNode.getElementsByTagName(aTagName);
    if (nodes==null || nodes.length==0) {
      // no inner nodes
      if (aNode.innerHTML.match(/\s[izo]\s+/)) {
        aNode.innerHTML = aNode.innerHTML.replace(/\s([izo])\s+/g, " $1\&nbsp;");
      }
    } else {
      for (var i=0; i<nodes.length; i++) {
        if (nodes[i].innerHTML.match(/\s[izo]\s+/)) {
          EU.dontForgetPoland1(nodes[i], aTagName);
        }
      }
    }
  };

  Event.observe(window, "load", function() {
      EU.dontForgetPoland1(document.getElementById("content"), "P");
      EU.dontForgetPoland1(document.getElementById("content"), "TD");
    }
  );
}


