//
//-------------------------------------------------------------------
// Licensed Materials - Property of IBM
//
// WebSphere Commerce
//
// (c) Copyright IBM Corp. 2006
//
// US Government Users Restricted Rights - Use, duplication or
// disclosure restricted by GSA ADP Schedule Contract with IBM Corp.
//-------------------------------------------------------------------
//

// This checks for a valid browser for the starter store.
// It displays a warning message if the browser is unconformant.


// START SCRIPT ZOOMPANEL MOVEMENT

(function() {

window.DragObject = function (e_o, o)
{
  // private Variabeln
    var obj;            // Dieses Objekt empfängt den Event
    var move;           // Dieses Object wird bewegt
    var start_pos = []; // Die Startposition des elementes
    var zIndex;
    // private Funktionen
    var Index = function(z) { move.style.zIndex = z; };

    this.ini = function(e_o, o)
    {
    if(!e_o) return alert('kein Objekt');
    obj = e_o;
    move = o || e_o;
    zIndex = move.style.zIndex || 0;
    move.style.position = 'absolute';
    obj.style.cursor = 'move';

    // Event aktivieren
    var self = this;
    obj.onmousedown = function(e) { dragObject = self; drag_start(e); };
  }
    this.ondrop = function() {return true;};
    this.ondrag = function() {return true;};
  this.onstart = function() {return true;};
    this.getPos = function()
    {
    var o = move;
    var t = l = 0;
    if(typeof o.offsetTop != 'undefined')
    {
      t += o.offsetTop;
      l += o.offsetLeft;
    }
    return [t, l];
  }
    this.setPos = function(t, l)
    {
    if(typeof t != 'undefined' && t != null && t > 0 ) move.style.top = t + 'px';
    if(typeof l != 'undefined' && l != null ) move.style.left = l + 'px';
    }
    this.start = function(e)
    {
    start_pos = this.getPos();
    var evt_pos = getEvtPos(e);

    start_pos[0] -= evt_pos[0];
    start_pos[1] -= evt_pos[1];
    Index(999);
    this.onstart(e);
    };
    this.move = function(e)
    {
    var evt_pos = getEvtPos(e);
    if( this.ondrag(e) != false) this.setPos( (evt_pos[0] + start_pos[0]), (evt_pos[1] + start_pos[1]) );
    };
    this.end  = function (e) { Index(zIndex); this.ondrop(e); };
    if(e_o) this.ini(e_o, o);

}
var dragObject = null;

function drag_start(e)
{
    if( !dragObject ) return true;
    dragObject.start(e);
    document.onmouseup   = function (e)
    {
         document.onmouseup = document.onmousemove = null;
         dragObject.end(e);
         dragObject = null;
         return false;
    };
    document.onmousemove = function(e)
    {
         if(!dragObject) return end_drag(e);
         dragObject.move( e );
         return false;
    };
    if(e && e.preventDefault) e.preventDefault()
    return false;
}
/*
 * Hilfsfunktion:
 *
 * getEvtPos(e)
 * ermittelt die Position des Events
 * */
function getEvtPos(e)
{
    if(!e) e = window.event;
    var t = e.pageY ? e.pageY : e.clientY + window.document.body.scrollTop;
    var l = e.pageX ? e.pageX : e.clientX + window.document.body.scrollLeft;
    return [t, l];
}
// Ende und Aufruf der anonymen Funktion
})();

// ENDE SCRIPT ZOOMPANEL MOVEMENT



// IMAGES WIDTH RED BORDER ON CLICK

function itemswitch1 ()
{
    document.getElementById('one').style.background = 'url(/wcsstore/McLarenB2C/images/layout/zv_activebg.gif)';
    if (document.getElementById('two')) {
      document.getElementById('two').style.background = 'url(/wcsstore/McLarenB2C/images/layout/zv_inactivebg.gif)';
    }
}

function itemswitch2 ()
{
    document.getElementById('one').style.background = 'url(/wcsstore/McLarenB2C/images/layout/zv_inactivebg.gif)';
    if (document.getElementById('two')) {
    document.getElementById('two').style.background = 'url(/wcsstore/McLarenB2C/images/layout/zv_activebg.gif)';
    }
}


// GET POSITION

function xposition(id)
  {
    var obj = document.getElementById(id);
    var curleft = 0;
    if(obj.offsetParent)
        while(1)
        {
          curleft += obj.offsetLeft;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.x)
        curleft += obj.x;
    return curleft;
  }


function yposition(id)
  {
    var obj = document.getElementById(id);
    var curtop = 0;
    if(obj.offsetParent)
        while(1)
        {
          curtop += obj.offsetTop;
          if(!obj.offsetParent)
            break;
          obj = obj.offsetParent;
        }
    else if(obj.y)
        curtop += obj.y;
    return curtop;
  }

// START SCRIPT SHOW DETAILVIEW

function detailview(img)
{
  var zoompanelDiv = document.getElementById('zoompanel');
  var zoompanelLeft = pxValueToNumber(zoompanelDiv.style.left);
  var windowWidth = document.body.clientWidth;
  var leftdiv = document.getElementById('detailview_left');
  var rightdiv = document.getElementById('detailview_right');
  var statusl = (leftdiv.style.display == 'block');
  var statusr = (rightdiv.style.display == 'block');
  var imgWidth = 502;
  if (statusr) {
    var panWidth = 189
  } else {
    var panWidth = 196
  }
  var oldImg = leftdiv.style.backgroundImage;
  var newImg = 'url(' + img + ')';
  var changeImg = (oldImg != newImg) && (statusl || statusr);
  var windowMiddle = (windowWidth / 2) - (196 / 2);

  if (changeImg) {
    if (statusl && (xposition('zoompanel') < 0) && (xposition('zoompanel') + imgWidth < windowMiddle)) {
      leftdiv.style.display = 'none';
      zoompanelDiv.style.left = zoompanelLeft + imgWidth + 'px';
      rightdiv.style.display = 'block';
    }
    if (statusr && (xposition('zoompanel') + panWidth + imgWidth > windowWidth) && (xposition('zoompanel') > windowMiddle)) {
      rightdiv.style.display = 'none';
      leftdiv.style.display = 'block';
      zoompanelDiv.style.left = zoompanelLeft - imgWidth + 'px';
    }
    leftdiv.style.backgroundImage = newImg;
    rightdiv.style.backgroundImage = newImg;
  }
  else {
    leftdiv.style.backgroundImage = newImg;
    rightdiv.style.backgroundImage = newImg;
    if (xposition('zoompanel') > windowMiddle) {
      if (statusl) {
        leftdiv.style.display = 'none';
        zoompanelDiv.style.left = zoompanelLeft + imgWidth + 'px';
      }
      else {
        if (!statusr) {
          leftdiv.style.display = 'block';
          zoompanelDiv.style.left = zoompanelLeft - imgWidth + 'px';
        }
        else {
          rightdiv.style.display = 'none';
        }
      }
    }

    else {
      if (statusr) {
        rightdiv.style.display = 'none';
      }
      else {
        if (!statusl) {
          rightdiv.style.display = 'block';
        }
        else {
          leftdiv.style.display = 'none';
          zoompanelDiv.style.left = zoompanelLeft + imgWidth + 'px';
        }
      }
    }
  }
}


function killDetailview() {
  var leftdiv = document.getElementById('detailview_left');
  var rightdiv = document.getElementById('detailview_right');
  var statusl = (leftdiv.style.display == 'block');
  var statusr = (rightdiv.style.display == 'block');
  var imgWidth = 502;
  var zoompanelDiv = document.getElementById('zoompanel');
  var zoompanelLeft = pxValueToNumber(zoompanelDiv.style.left);
  if (statusl) {
    leftdiv.style.display = 'none';
    zoompanelDiv.style.left = zoompanelLeft + imgWidth + 'px';
  }
  rightdiv.style.display = 'none';
}


// SCRIPTS FOR IMAGE- AND BACKGROUND-CHANGERS

function ImgChg (name, img) {
  document.getElementById(name).src = img;
}

function bgChg (name, img) {
  name.style.background = 'url(' + img + ')';
}

function bgClear (name) {
  name.style.background = 'none';
}



zoomLevel=0;

// START SCRIPT ADD AND SUB SLIDER

var currentZoomLevel;

function zoomCursorCheck() {
  var erezDiv = document.getElementById('erez_1_outer');
  if(currentZoomLevel==0) {
    erezDiv.style.cursor = 'auto';
  }
  else {
    erezDiv.style.cursor = 'move';
  }
}


function increaseZoomLevel(){
  if (currentZoomLevel < 8){
    currentZoomLevel = currentZoomLevel + 1;
    shiftSlider(+1);
  }
  var slider = document.getElementById('slider');
  if (currentZoomLevel > 7) {
    slider.style.left = '104px';
  }
  zoomCursorCheck();
}

function decreaseZoomLevel(){
  if (currentZoomLevel > 0){
    currentZoomLevel = currentZoomLevel - 1;
    shiftSlider(-1);
  }
  var slider = document.getElementById('slider');
  if (currentZoomLevel < 1) {
    slider.style.left = '0px';
  }
  zoomCursorCheck();
}

function resetZoomLevel(){
  currentZoomLevel = 0;
  document.getElementById('slider').style.left = '0px';
}

function shiftSlider(value) {
  var sliderDiv = document.getElementById('slider');
  var pureValue = pxValueToNumber(document.getElementById('slider').style.left);
  var newvalue = pureValue + (value*13);
  if ((pxValueToNumber(sliderDiv.style.left) > 4) || (pxValueToNumber(sliderDiv.style.left) < 100)) {
    sliderDiv.style.left = newvalue + 'px';
  }
}

function sliderreset () {
  document.getElementById('slider').style.left = '0px';
}

function sliderOutgrey () {
  document.getElementById('slider').style.background = 'url(/wcsstore/McLarenB2C/images/layout/zv_slider.gif)';
}

// END SCRIPT ADD AND SUB SLIDER

function centerZoomImg() {
  var innerDiv = document.getElementById('erez_1_inner');
  var outerDiv = document.getElementById('erez_1_outer');
  var innerWidth = pxValueToNumber(innerDiv.style.width);
  var outerWidth = pxValueToNumber(outerDiv.style.width);
  var innerHeight = pxValueToNumber(innerDiv.style.height);
  var outerHeight = pxValueToNumber(outerDiv.style.height);

  innerDiv.style.left = ((outerWidth - innerWidth) / 2) + 'px';
  innerDiv.style.top = ((outerHeight - innerHeight) / 2) + 'px';
  //Bild fuer update zentriert halten
  innerDiv.erez_posx = 0.5;
  innerDiv.erez_posy = 0.5;

  erezview_update('1');
}


// HELPFUL FUNCTION TO GET ABSOLUTE VALUES INSTEAD OF STRINGS WITH ENDING PX

function pxValueToNumber (value) {
  var int = eval(value.substring(0, value.length-2));
  return int
}


// TOOL TIPP


var showDivActivate = new Array();

function initShowHideArray(size){
  for (var i = 0; i <= size; i++){
    showDivActivate[i+1] = false;
  }
}

function initShowHideArrayStepByStep(id,pos){
  setShowHideEvent(id,pos);
  showDivActivate[pos] = false;
}

function showDiv(id,pos) {
  document.onmousemove = updateFadeInDiv;
  showDivActivate[pos] = true;
  window.setTimeout('timerShowDiv(\''+id+'\','+pos+')',1000);
}

function hideDiv(id,pos) {
  showDivActivate[pos] = false;
  window.setTimeout('timerHideDiv(\''+id+'\','+pos+')',500);
}

function timerShowDiv(id,pos) {
  document.getElementById(id).style.left = (x + 10) + "px";
  document.getElementById(id).style.top 	= (y + 15) + "px";
  if (showDivActivate[pos]==true) {
    fadeInDiv = document.getElementById(id);
    var differx = pxValueToNumber(fadeInDiv.style.left) + fadeInDiv.offsetWidth - xposition('marketing_spot'+pos) - document.getElementById('marketing_spot'+pos).offsetWidth + 5;
    var differy = pxValueToNumber(fadeInDiv.style.top) + fadeInDiv.offsetHeight - yposition('marketing_spot'+pos) - document.getElementById('marketing_spot'+pos).offsetHeight + 5;
    if (differx > 0) {
      fadeInDiv.style.left = pxValueToNumber(fadeInDiv.style.left) - differx + 'px';
    }
    if (differy > 0) {
      fadeInDiv.style.top = pxValueToNumber(fadeInDiv.style.top) - differy + 'px';
    }
    fadeInDiv.style.visibility = "visible";
  }
}

function timerHideDiv(id,pos) {
  if (showDivActivate[pos]==false) {
    fadeInDiv = document.getElementById(id);
    fadeInDiv.style.visibility = "hidden";
  }
}

function setShowHideEvent(id,pos){
  /*
  window.addEvent('domready', function() {
    $('marketing_spot'+pos).addEvent('mouseleave', function() {
      hideDiv(id,pos);
    });
    $('marketing_spot'+pos).addEvent('mouseenter', function() {
      showDiv(id,pos);
    });
  });
  */
}

var x,y;

function updateFadeInDiv(e) {
  x = (document.all) ? window.event.x + getScrollLeft() : e.pageX;
  y = (document.all) ? window.event.y + getScrollTop()  : e.pageY;
}

