var jsStartTime = new Date();
var qParams = jt_parseQuery();

var traceCount = 0; // trace feature
var traceAreaDIV; // trace feature
var stickerInfoDIV;

if (typeof fixPNG == 'undefined') {
    var fixPNG = false;
}

function clearTrace() {
  traceAreaDIV.style.color = "#FFFFFF";
  traceAreaDIV.innerHTML = '<a href="javascript:clearTrace()">clear trace</a><br>';
  }

function setTableReflowColumns(x,y) {}

function traceMsg(msg) { // trace feature
  if (!traceAreaDIV) {
    traceAreaDIV = document.createElement("div");
    traceAreaDIV.style.position = "absolute";
    traceAreaDIV.style.top = "30px";
    traceAreaDIV.style.left = "0px";
    document.body.appendChild(traceAreaDIV);
    }
  if (traceCount % 40 == 0) clearTrace();
  traceAreaDIV.innerHTML += msg + "<br>";
  traceCount++;
  }

function popUpWin(popUrl, w, h) {
  w = w ? w : 380;
  h = h ? h : 580;
  var popWin = window.open(popUrl,"imvuPopWin","width=" + w + ",height=" + h + ",scrollbars=yes,resizable=yes,location=no,menubars=no,toolbars=no");
  popWin.focus();
  }

var isIE = (window.showModalDialog);

function isPNG(imgName) {
  var imgNameUC = imgName.toUpperCase();
  return (imgNameUC.substring(imgNameUC.length-3, imgNameUC.length) == "PNG");
  }

function correctPNG(imgObj) {
  // IE only - must call after making stickers/images visible
  if (isPNG(imgObj.src)) {
    imgObj.style.width = imgObj.offsetWidth + "px";
    imgObj.style.height = imgObj.offsetHeight + "px";
    imgObj.style.filter = "progid:DXImageTransform.Microsoft.AlphaImageLoader(src='" + imgObj.src + "', sizingMethod='scale')";
    imgObj.src = "/catalog/web_images/space.gif";
    }
  }

var allImgs = false;
function correctAllPNG_iter(i) {
  if( ! allImgs ) {
    allImgs = document.getElementsByTagName( "img" );
  }
  if( allImgs && i < allImgs.length ) {
    correctPNG(allImgs[i]);
    i++;
    setTimeout("correctAllPNG_iter("+i+")", 15);
    window.status = "Correcting png "+i+"/"+allImgs.length+"...";
  } else {
    window.status = "Done correcting all "+allImgs.length+" pngs";
    allImgs = false;
  }     
}

function correctAllPNG() {
  // IE only - must call after making stickers/images visible
  if (isIE) {
    return correctAllPNG_iter(0);
    //var imgs = document.getElementsByTagName( "img" );
    //for (var i=0; i<imgs.length; i++) correctPNG(imgs[i]);
    }
  }

var stickerInfoTimer;

function stickerInfoShow(ev) {
  clearTimeout(stickerInfoTimer);
  var e = jt_fixE(ev);
  var node = e.target ? e.target : e.srcElement;
  var loc = jt_getOffsetXY(node);
  jt_ShowNoneElm(stickerInfoDIV, true, "block");
  jt_moveTo(stickerInfoDIV, loc.x + 10, loc.y + 10);
  var id = node.getAttribute("id");
  var restricted = node.getAttribute("restricted");

  while( node && (id == "undefined" || !id) ) {
    node = node.parentNode;
    id = node.getAttribute("id");
  }
  
  stickerInfoDIV.innerHTML = '<a target="_top" href="/catalog/product_info.php?sticker_id=' + id + '" onMouseOver="clearTimeout(stickerInfoTimer)">buy sticker</a>';
  
  //restricted stickers will have a pink background in the buy sticker rollover box
  if ( restricted == '1' ) {
    stickerInfoDIV.style.background = 'rgb(255,120,155)';
  } else {
    stickerInfoDIV.style.background = 'rgb(255,255,175)';
  }
}

function stickerInfoHide() {
  jt_ShowNoneElm(stickerInfoDIV, false);
}

function stickerInfoOut() {
  stickerInfoTimer = setTimeout("stickerInfoHide()", 400);
}

function initSticker(stickerDIV) {
  stickerDIV.style.display = "block";
  stickerDIV.style.cursor = "move";
  Drag.init(stickerDIV);
  stickerDIV.onDragStart = pickSticker;
  stickerDIV.onDrag = dragSticker;
  stickerDIV.onDragEnd = dropSticker;
  stickerDIV.onmouseover = mp_stickers.showStickerLoc;
  stickerDIV.onmouseout = mp_stickers.hideStickerLoc;
  if (!stickerDIV.getAttribute("altSrcA")) stickerDIV.setAttribute("altSrcA", stickerDIV.src);
  if (!stickerDIV.getAttribute("altSrcB")) stickerDIV.setAttribute("altSrcB", stickerDIV.src);
  }

function initPublic(editMode) {
  stickerInfoDIV = document.getElementById("stickerInfo");
  if (editMode && mp_stickers.stickerList) {
    var listOfStickers = mp_stickers.stickerList.split(',');
    for (var i=0; i<listOfStickers.length; i++) {
      var stickerDIV = document.getElementById(listOfStickers[i]);
      initSticker(stickerDIV);
      stickerTray.dockSticker(listOfStickers[i]);
      }
    }

  if (mp_stickers.assignedStickers) {
    setTimeout("setupStickers(0, "+editMode+")", 50);
  } else {
      if (fixPNG) {
        correctAllPNG();
      }
  }
  jt_ShowNone("LoadingPage", false);

  if (qParams.jsb) {
    var now = new Date();
    var msg = "JS Benchmark: " + (now.getTime() - jsStartTime.getTime());
    if (phpDbElapsed) msg += " - PHP/DB, seconds: " + phpDbElapsed;
    traceMsg(msg);
    }
  }

var listOfStickers = false;

function setupStickers(i, editMode) {
  if( !listOfStickers ) {
    listOfStickers = mp_stickers.assignedStickers.split(',');
  }
    if(i<listOfStickers.length) {
      window.status = "Sticking sticker "+i+"/"+listOfStickers.length+"...";
      var sData = listOfStickers[i].split('|');
      var stickerDIV = document.getElementById(sData[0]); // actually, this is the <img> object
      var dropTarget = document.getElementById( (sData[1] == "document") ? "stickers_anchor" : sData[1] ); // "stickers_anchor" div OR panel div
      if (dropTarget) { 
        dropTarget.appendChild(stickerDIV);
        if (editMode) {
          initSticker(stickerDIV);
          mp_stickers.assigned[stickerDIV.id] = new mp_stickers.stickerNodes(stickerDIV, dropTarget);
        } else {
          stickerDIV.style.display = "block";
          stickerDIV.onmouseover = stickerInfoShow;
          stickerDIV.onmouseout = stickerInfoOut;
        }
      } else {
        // bad DB data!
      }
      i++;
      setTimeout("setupStickers("+i+", "+editMode+")", 50);
    } else {
        if (fixPNG) {
            correctAllPNG();
        }
      window.status = "Done sticking all "+listOfStickers.length+" stickers.";
      listOfStickers = false;
    }      
}

