
// Functions to popup go big
var slideDist = 450;

var slideDebug;

//======================================
function goSizeChart() {
//======================================

  var xy = getPosXY('positioner_gobig');
  var chartdiv = document.getElementById('size_chart');
  //chartdiv._initial_y = xy.y - slideDist;
  //chartdiv._final_y = xy.y;

  chartdiv.style.visibility = 'visible';
  fadeBehind();
  msie6formfix('hidden');

  /*
  if (chartdiv._animState != "sliding") {
    chartdiv.style.left = xy.x-1;
    chartdiv.style.top = chartdiv._initial_y;
    chartdiv.style.clip = 'rect('+slideDist+'px auto auto auto)';
    chartdiv.style.visibility = 'visible';
    chartdiv._animState = 'sliding';
    chartdiv._slideStarted = new Date().getTime();

    msie6formfix('hidden');

    animPP('size_chart');
    }*/
}

function goBigWindow(imgurl) {

  // load the image if necessary
  var bigimg = document.images['go_big_stub'];
  if (bigimg.src != imgurl) {
    bigimg.src = imgurl;
  }

  var bigdiv = document.getElementById('go_big');
  bigdiv.style.visibility = 'visible';
  var xy = getPosXY(bigdiv);
  // when the browser is smaller than the div it can creep up beyond
  // the top left corner.  This pegs it in the top left corner if nec.
  if (xy.x < 0) { bigdiv.style.left = '330px'; }
  if (xy.y < 0) { bigdiv.style.top = '275px'; }
  fadeBehind();

  msie6formfix("hidden");

  /*
  var xy = getPosXY('positioner_gobig');
  var bigdiv = document.getElementById('go_big');
  // params for animation
  bigdiv._initial_y = xy.y - slideDist;
  bigdiv._final_y = xy.y;

  if (bigdiv._animState != "sliding") {
    bigdiv.style.left = xy.x - 1;
    bigdiv.style.top = bigdiv._initial_y;
    bigdiv.style.clip = 'rect('+slideDist+'px auto auto auto)';
    bigdiv.style.visibility = 'visible';
    bigdiv._animState = "sliding";
    bigdiv._slideStarted = new Date().getTime();

    msie6formfix("hidden");

    animPP('go_big');
    }*/


}

// Function to show 360 inside the page
function load360(url,width,height){
  var rotatediv = document.getElementById('rotater');
  var rotatediv2 = document.getElementById('rotater_buttons');
  var staticdiv = document.getElementById('static_pic');
  var staticdiv2 = document.getElementById('static_pic_buttons');
  staticdiv.style.display = 'none';
  staticdiv2.style.display = 'none';
  rotatediv.style.display = 'block';
  rotatediv2.style.display = 'block';

  // load the iframe if necessary
  if (rotatediv.innerHTML.indexOf('<iframe') < 0) {
    rotatediv.innerHTML = '<iframe src="'+url+'" width="'+width+'" height="'+height+'" frameborder="0" scrolling="no"></iframe>';
  }
}

function hide360() {
  var rotatediv = document.getElementById('rotater');
  var rotatediv2 = document.getElementById('rotater_buttons');
  var staticdiv = document.getElementById('static_pic');
  var staticdiv2 = document.getElementById('static_pic_buttons');
  staticdiv.style.display = 'block';
  staticdiv2.style.display = 'block';
  rotatediv.style.display = 'none';
  rotatediv2.style.display = 'none';
}

function zoom360(url) {
  hide360();
  var width = 800;
  var height = 500;
  var rotatebigdiv = document.getElementById('rotate_zoom');

  rotatebigdiv.style.display = 'block';
  rotatebigdiv.style.visibility = 'visible';
  var xy = getPosXY(rotatebigdiv);
  // when the browser is smaller than the div it can creep up beyond
  // the top left corner.  This pegs it in the top left corner if nec.
  if (xy.x < 0) { rotatebigdiv.style.left = '400px'; }
  if (xy.y < 0) { rotatebigdiv.style.top = '250px'; }
  fadeBehind();

  //var xy = getPosXY('positioner_gobig');
  //rotatebigdiv.style.left = xy.x;
  //rotatebigdiv.style.top = xy.y;
  //rotatebigdiv.style.display = 'block';

  //var primary_div = document.getElementById('product_details');
  //primary_div.style.display = 'none';

  if (rotatebigdiv.innerHTML.indexOf('<iframe') < 0) {
    rotatebigdiv.innerHTML = '<iframe src="'+url+'" width="'+width+'" height="'+height+'" frameborder="0" scrolling="no"></iframe>';
  }
  
}

// temporary for old holdover 360s
function popZoom360(url) {
  hide360();
  var w = 600;
  var h = 485
  var myWin; if(!myWin || myWin.closed){myWin = window.open(url,'popzoom','width='+w+',height='+h+',toolbar=0,location=0,directories=0,status=0,menubar=0,scrollbars=0,resizable=0,top='+((screen.height/2)-(h/2))+',left='+((screen.width/2)-(w/2))+'')}else{myWin.focus();};void(0);
}

function hideBig360() {
  var rotatebigdiv = document.getElementById('rotate_zoom');
  rotatebigdiv.style.left = '50%';
  rotatebigdiv.style.top = '50%';
  rotatebigdiv.style.visibility = 'hidden';
  rotatebigdiv.style.display = 'none';
  //rotatebigdiv.style.display = 'none';
  //var primary_div = document.getElementById('product_details');
  //primary_div.style.display = 'block';
  hideGroundCover();
}

function sendToFriend(url) {

  // load the iframe if necessary
  // (how to check?)
  var iframediv = document.getElementById('send_to_iframe');
  iframediv.innerHTML = '<iframe src="'+url+'" width="600" height="493" frameborder="0" scrolling="no"></iframe>';
  var sharediv = document.getElementById('send_to_friend');
  sharediv.style.visibility = 'visible';
  fadeBehind();

  //  var xy = getPosXY('positioner_gobig');
  /*

  if (sharediv._animState != "sliding") {
    sharediv.style.left = xy.x;
    sharediv.style.top = xy.y;
    sharediv.style.display = 'block';

    var primary_div = document.getElementById('product_details');
    primary_div.style.display = 'none';

    msie6formfix("hidden");

    }*/


}


function msie6formfix(hideOrShow) {
  if (document.all) {
    // on IE6, hide the form inputs
    var verString = navigator.appVersion;
    var MSIEpos = verString.indexOf("MSIE ");
    var majorV = verString.charAt(MSIEpos+5);
    if (majorV < '7') {
      qtydiv = document.getElementById("input_qty");
      qtydiv.style.visibility = hideOrShow;
      sizediv = document.getElementById("input_size");
      sizediv.style.visibility = hideOrShow;
    }
  }
}

function animPP(animWhat) {
  var timeNow = new Date().getTime();
  var loadTimeout = 1000; // wait at most 1000ms for pic to load
  var bigdiv = document.getElementById(animWhat);
  var elapsed = timeNow - bigdiv._slideStarted;

  if (animWhat == 'go_big' && elapsed < loadTimeout) {
    // check if image has loaded...
    var bigimg = document.images['go_big_stub'];
    if (typeof bigimg.naturalWidth != "undefined" && bigimg.naturalWidth < 10) {
      // image not loaded, try again later
      setTimeout("animPP('"+animWhat+"')",50);
      return;
    }
  }
  // got here? image is loaded (or timed out waiting)
  if (parseInt(bigdiv.style.top) == bigdiv._initial_y) {
    // first time here -- start the animation clock at zero (well, almost zero - 50ms)
    bigdiv._slideStarted = timeNow - 50;
    elapsed = 50;
  }

  var pct = elapsed / 400.0; // take 400ms to reach destination
  if (pct > 1.0) {
    // jump to final pos
    bigdiv.style.top = bigdiv._final_y;
    bigdiv._animState = "target_acquired";
    bigdiv.style.clip = "rect(auto auto auto auto)";
  } else {
    var totalDist = bigdiv._final_y - bigdiv._initial_y;
    var movedBy = parseInt(pct * totalDist);
    var whereNow = bigdiv._initial_y + movedBy;
    bigdiv.style.top = whereNow;
    bigdiv.style.clip = "rect(" + (slideDist - movedBy) + "px auto auto auto)";
    // update again in 50 ms
    setTimeout("animPP('"+animWhat+"')",50);
  }
}

function hideSizeChart() {
  var chartdiv = document.getElementById('size_chart');
  chartdiv.style.visibility = 'hidden';
  msie6formfix("visible");
  hideGroundCover();
}

function hideGiantImage() {
  var bigdiv = document.getElementById('go_big');
  bigdiv.style.left = '50%';
  bigdiv.style.top = '50%';
  bigdiv.style.visibility = 'hidden';
  msie6formfix("visible");
  hideGroundCover();
}

function fadeBehind() {
  var coverdiv = document.getElementById('GroundCover');
  coverdiv.style.display = 'block';
}

function hideGroundCover() {
  var coverdiv = document.getElementById('GroundCover');
  coverdiv.style.display = 'none';
}

function hideFriend() {
  var sharediv = document.getElementById('send_to_friend');
  //var primary_div = document.getElementById('product_details');
  //primary_div.style.display = 'block';
  //sharediv.style.display = 'none';
  sharediv.style.visibility = 'hidden';
  hideGroundCover();
  msie6formfix("visible");
}

//////// UTILITY FNs

// get the true offset of anything on NS4, IE4/5 & NS6, even if it's in a table!
function getAbsX(elt) { return (elt && elt.x) ? elt.x : getAbsPos(elt,"Left"); }
function getAbsY(elt) { return (elt && elt.y) ? elt.y : getAbsPos(elt,"Top"); }
function getAbsPos(elt,which) {
 iPos = 0;
 depth = 0;

 while (elt != null) {
  iPos += elt["offset" + which];
  elt = elt.offsetParent;
  // don't recurse forever -- this works around weird out of memory errors in MSIE
  depth++;
  if (depth > 10) { return iPos; }
 }
 return iPos;
}

function getPosXY(marker) {
  var coord = new Object();
  var item = (typeof(marker) == 'string') ? document.getElementById(marker) : marker;
  coord.x = parseInt(getAbsX(item));
  coord.y = parseInt(getAbsY(item));
  return coord;
}

