﻿objProductObjects = new Object();
var objPO = objProductObjects;


objPO.QUICKLOOKANIMATIONSTEPS = 8;
objPO.QUICKLOOKTARGETXPOS = 23;
objPO.QUICKLOOKTARGETYPOS = 70;
objPO.QUICKLOOKOFFXOFFSET = -20;
objPO.QUICKLOOKANIMATIONSTEPS = 8;


objPO.objQuickLook = new Object();
objPO.objQuickLookLauncher = new Object();
objPO.objMeasurer = new Object();


objPO.isLoaded = false;
objPO.isQuickLookOpen = false;
objPO.isLoodProductData = false;
objPO.quickLookX0 = 0;
objPO.quickLookY0 = 0;
objPO.quickLookX = 0;
objPO.quickLookY = 0;
objPO.quickLookWidth = 0;
objPO.quickLookHeight = 0;

objPO.initializeQuickLook = function() {
	objPO.objQuickLookLauncher = returnObjById("quickLookLauncher");
	objPO.objQuickLook = returnObjById("quickLookWindow");
	objPO.objMeasurer = returnObjById("productStrMeasurer");

	objPO.initializeBag();
//objInlineBag.setInlineShoppingBagData();

	objPO.isLoaded = true;
}

objPO.objQuickLookTarget = function(intItem, strProductId,intCategory,intStuff,strPId,position,obj) {
	this.intItem = intItem;
	this.strProductId = strProductId;
	this.intCategory = intCategory;
	this.intStuff = intStuff;
	this.strPId = strPId;
	this.position = position;
	this.obj = obj;

}

objPO.loadProductData = function(strProductId) {
	var strSource = "/inc/productData.htm?id=" + strProductId;
	strSource += "&cate=" + objPO.objQuickLookTarget.intCategory;
	strSource += "&stuff=" + objPO.objQuickLookTarget.intStuff;
	strSource += "&item=" + objPO.objQuickLookTarget.intItem;
	strSource += "&pid=" + objPO.objQuickLookTarget.strPId;
//alert(strSource);
	// --------------------------------------
	// AJAX TEST
	var myAjax = new Ajax.Updater(
		"productAjaxLoader",
		strSource,
		{
			method: 'get',
			evalScripts: true
			//,
			//onComplete: function(originalRequest) {alert(originalRequest.responseText);}
		});
	// END AJAX TEST
	// ---------------------------------------
}


objPO.loadQuickLook = function() {
	setObjInnerHTML(objPO.objQuickLook,objPO.getQuickLookFrame());
	objPO.isLoodProductData = true;
	objPO.launchQuickLook();
}

objPO.openQuickLookLauncher = function(intItem, strProductId, intCategory, intStuff, strPId, targetImg) {
		if (!objPO.isLoaded) objPO.initializeQuickLook();
	
		var blnOpen = true;
		/*if (objPO.isQuickLookOpen) {
			if (objPO.objQuickLookTarget.strProductId == strProductId) blnOpen = false;
		}*/

		if (blnOpen) {
			objPO.objQuickLookTarget.intItem = intItem;
			objPO.objQuickLookTarget.strProductId = strProductId;
			objPO.objQuickLookTarget.intCategory = intCategory;
			objPO.objQuickLookTarget.intStuff = intStuff;
			objPO.objQuickLookTarget.strPId = strPId;
			objPO.objQuickLookTarget.position = returnObjPosition(targetImg);
			if (!objPO.isQuickLookOpen) objPO.objQuickLookTarget.obj = returnObjById(targetImg);

			setObjPosition(objPO.objQuickLookLauncher,objPO.objQuickLookTarget.position.x + objPO.QUICKLOOKTARGETXPOS,objPO.objQuickLookTarget.position.y + objPO.QUICKLOOKTARGETYPOS);
			setObjVisibility(objPO.objQuickLookLauncher,"visible");
		}
}

objPO.closeQuickLookLauncher = function() {
	setObjVisibility(objPO.objQuickLookLauncher,"hidden");
	setImgSrc('quickLook','/images/quicklook.gif');

	if (!objPO.isQuickLookOpen) objPO.objQuickLookTarget.strProductId = 0;
}

objPO.checkQuickLookLauncher = function(event0) {
	if (objPO.objQuickLookTarget.strProductId) {
		if (objPO.objQuickLookTarget.strProductId != 0) {
			var objImg = objPO.objQuickLookTarget.obj;
			var xmin = objPO.objQuickLookTarget.position.x + objPO.QUICKLOOKOFFXOFFSET;
			var xmax = objPO.objQuickLookTarget.position.x + objImg.width;
			var ymin = objPO.objQuickLookTarget.position.y;
			var ymax = objPO.objQuickLookTarget.position.y + objImg.height;
			var scrollLeft = (document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
			var scrollTop = (document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
			if (isIE) {
				var x1 = event.clientX + scrollLeft;
				var y1 = event.clientY + scrollTop;
			} else {
				var x1 = event0.pageX;
				var y1 = event0.pageY;
			}
			if (x1 > xmax || x1 < xmin || y1 > ymax || y1 < ymin) {
				objPO.closeQuickLookLauncher();
			}
		}
	}
}


objPO.launchQuickLook = function(strTarget) {
	var strProductId = objPO.objQuickLookTarget.strProductId;
	
	if (strTarget) {
		objPO.objQuickLookTarget.position = returnObjPosition(strTarget);
		objPO.objQuickLookTarget.obj = returnObjById(strTarget);
	}

	if (objPO.isLoaded) {
		if (!objInlineBag.isOpen) {
			if (!objPO.isQuickLookOpen) {
				if (objPO.isLoodProductData) {
					objPO.closeQuickLookLauncher();
					objPO.isQuickLookOpen = true;

					objPO.loadQuickLookAnimate(strProductId);
				} else {
					objPO.loadProductData(strProductId);
				}
			} else {
				objPO.closeQuickLook();
				setTimeout("objPO.launchQuickLook();",500);
			}
		} else {
			objInlineBag.closeInlineBag();
			setTimeout("objPO.launchQuickLook();",500);
		}
	} else {
		setTimeout("objPO.launchQuickLook();",250);
	}
}

objPO.loadQuickLookAnimate = function() {
	if (isIE) {
		var browserWidth = (document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth);
		var browserHeight = (document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight);
	} else {
		var browserWidth = window.outerWidth;
		var browserHeight = window.outerHeight-150;
	}
	
	var scrollLeft = (document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
	var scrollTop = (document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
	var minX = scrollLeft;
	var maxX = browserWidth + scrollLeft;
	var minY = scrollTop;
	var maxY = browserHeight + scrollTop;

	//position = returnObjPosition(targetImg);

	objPO.quickLookHeight = objPO.objQuickLook.offsetHeight;
	objPO.quickLookWidth = objPO.objQuickLook.offsetWidth;
	objPO.quickLookX0 = objPO.objQuickLookTarget.position.x + 61;
	objPO.quickLookY0 = objPO.objQuickLookTarget.position.y + 83;
	objPO.quickLookX = objPO.quickLookX0 - 161;
	objPO.quickLookY = objPO.quickLookY0 - 280;


	if (objPO.quickLookX+objPO.quickLookWidth > maxX) objPO.quickLookX = maxX - objPO.quickLookWidth - 30;
	if (objPO.quickLookX < minX) objPO.quickLookX = minX + 25;
	if (objPO.quickLookY+objPO.quickLookHeight > maxY) objPO.quickLookY = maxY - objPO.quickLookHeight - 25;
	if (objPO.quickLookY < minY) objPO.quickLookY = minY + 25;
	
	var animationDX = (objPO.quickLookX-objPO.quickLookX0)/objPO.QUICKLOOKANIMATIONSTEPS;
	var animationDY = (objPO.quickLookY-objPO.quickLookY0)/objPO.QUICKLOOKANIMATIONSTEPS;
	//var animationDW = Math.round(objPO.quickLookWidth/objPO.QUICKLOOKANIMATIONSTEPS);
	//var animationDH = Math.round(objPO.quickLookHeight/objPO.QUICKLOOKANIMATIONSTEPS);
	animationDW = 48
	animationDH = 29

	setObjPosition(objPO.objQuickLook,objPO.quickLookX,objPO.quickLookY);
	setObjVisibility(objPO.objMeasurer,"visible");

	
	//alert(objPO.objQuickLook.offsetLeft);
	//window.event.returnValue=false;


	var temptimer = 40;
	for (i=1;i<=objPO.QUICKLOOKANIMATIONSTEPS;i++) {
		var x1 = animationDX*i+objPO.quickLookX0;
		var y1 = animationDY*i+objPO.quickLookY0;
		var w = animationDW*i;
		var h = animationDH*i;
		var html = objPO.getLoadAnimation(w,h);

		setTimeout("setObjPosition(objPO.objMeasurer," + x1 + "," + y1 + ");setObjInnerHTML(objPO.objMeasurer,'" + html + "');",temptimer);
		temptimer+=50;
	}
	
	setTimeout("setObjVisibility(objPO.objMeasurer,'hidden');",500);
	setTimeout("setObjVisibility(objPO.objQuickLook,'visible');",350)

}

objPO.getLoadAnimation = function(w,h) {
	var html = '<div id="quickLookLoadAnimation" style="width:'+w+'px;height:'+h+'px;"></div>';
	return html;
}

objPO.closeQuickLook = function() {
	var x = objPO.quickLookX0;
	var y = objPO.quickLookY0;
	objPO.clearQuickLook();

	var animationDX = (objPO.quickLookX-objPO.quickLookX0)/objPO.QUICKLOOKANIMATIONSTEPS;
	var animationDY = (objPO.quickLookY-objPO.quickLookY0)/objPO.QUICKLOOKANIMATIONSTEPS;
	//var animationDW = Math.round(objPO.quickLookWidth/objPO.QUICKLOOKANIMATIONSTEPS);
	//var animationDH = Math.round(objPO.quickLookHeight/objPO.QUICKLOOKANIMATIONSTEPS);
	animationDW = 48
	animationDH = 29
	
	setObjVisibility(objPO.objMeasurer,"visible");

	var temptimer = 50;
	for (i=objPO.QUICKLOOKANIMATIONSTEPS;i>=1;i--) {
		var x1 = animationDX*i+objPO.quickLookX0;
		var y1 = animationDY*i+objPO.quickLookY0;
		var w = animationDW*i;
		var h = animationDH*i;
		var html = objPO.getLoadAnimation(w,h);
		setTimeout("setObjPosition(objPO.objMeasurer," + x1 + "," + y1 + ");setObjInnerHTML(objPO.objMeasurer,'" + html + "');",temptimer);
		temptimer+=50;
	}

	setTimeout("objPO.clearQuickLook();",temptimer)
	setTimeout("objPO.isQuickLookOpen=false;",temptimer);
}

objPO.clearQuickLook = function() {
	setObjVisibility(objPO.objQuickLook,"hidden");
	setObjVisibility(objPO.objMeasurer,"hidden");

	setObjInnerHTML(objPO.objQuickLook,'');

	intItem = 0;
	strProductName = "";
	strPId = "";
	strPrice = "";
	intStuff = "";
	intPid = "";
	strProductPic = "";
	strStyle = "";
	strProductDesc = "";
	intCategory = 0;
	objPO.isLoodProductData = false;
}

objPO.grabQuickLook = function(event0) {
	if (objPO.isQuickLookOpen && isIE) {
		var pageWidth = (document.documentElement && document.documentElement.clientWidth ? document.documentElement.clientWidth : document.body.clientWidth);
		var pageHeight = (document.documentElement && document.documentElement.clientHeight ? document.documentElement.clientHeight : document.body.clientHeight);
		var scrollLeft = (document.documentElement && document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
		var scrollTop = (document.documentElement && document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
		var x = event.clientX;
		var y = event.clientY;
		var Qx = x-objPO.objQuickLook.style.left.substring(0,objPO.objQuickLook.style.left.length-2) + scrollLeft;
		var Qy = y-objPO.objQuickLook.style.top.substring(0,objPO.objQuickLook.style.top.length-2) + scrollTop;
		if (((Qx < -10 || Qx > (objPO.quickLookWidth+10)) && x < pageWidth) || 
				((Qy < -10 || Qy > (objPO.quickLookHeight+50)) && y < pageHeight)) {
				setTimeout("objPO.closeQuickLook()",50); // fix IE crash
		}
	}




	/*if (objPO.isQuickLookOpen) {
		if (isIE) {
			if (event.srcElement.id == "") objPO.closeQuickLook();
		} else {
			if (event0.target.id == "") objPO.closeQuickLook();
		}
	}*/
}

objPO.quickLookViewTarget = function(intTargetId) {
	objTarget01 = returnObjById("pstyle");
	objTarget02 = returnObjById("pdesc");

	if (intTargetId == 1) {
		objTarget01.className = "display1";
		objTarget02.className = "display0";
	} else {
		objTarget01.className = "display0";
		objTarget02.className = "display1";
	}
}

objPO.getQuickLookFrame = function() {
	var str =	'' +
  '<div id="Layer2"> ' +
  '  <table width="384" height="232" border="0" cellpadding="0" cellspacing="0">' +
  '    <tr> ' +
  '      <td align="left" valign="top" background="../images/quicklook-bg.gif">' +
  '        <table width="374" border="0" cellspacing="0" cellpadding="0">' +
  '          <tr> ' +
  '            <td width="19" height="12"></td>' +
  '            <td width="355" height="12"></td>' +
  '          </tr>' +
  '          <tr> ' +
  '            <td>&nbsp;</td>' +
  '            <td align="left" valign="top">' +
  '              <table width="100%"  border="0" cellspacing="0" cellpadding="0">' +
  '                <tr> ' +
  '                  <td width="59%">' + strProductPic + '<br>' +
  '                  </td>' +
  '                  <td width="41%" align="left" valign="top" class="shopcar-text">' +
  '                    <table width="100%" height="20"  border="0" cellpadding="0" cellspacing="0">' +
  '                      <tr> ' +
  '                        <td class="quicklook-title"><a href="javascript:objPO.quickLookViewTarget(1)"><span class="quicklook-title">商品規格</span></a> <span class="style1">I</span>　　　　' +
  //'                          <a href="javascript:objPO.quickLookViewTarget(2)"><span class="quicklook-title">商品介紹</span></a>ll
  '                        <a href="javascript:objPO.closeQuickLook()"><img src="../images/close.gif" width="14" height="12" border="0"></a></td>' +
  '                      </tr>' +
  '                    </table>' +
  '                    <div id="pstyle" class="display1">' +
  '                      <span class="p-d-text">' +
  '                        商品名稱 : ' + strProductName + '<br>' +
  '                        商品編號 : ' + strPId + '<br>' +
  '                        商品價格 : ' + strPrice + '<br>'
                          if (intItem == 1 && strStyle != ""){
                             str += ' 商品尺寸 : ' + strStyle + '<br>'
                          }
                          if (intItem == 1){
  str += '                 選擇數量 : ' + strQty + '<br><br>' 
                          }
  str += '                        <span class="style2"><a href="product.htm?sf=' + intStuff + '&cate=' + intCategory + '&id=' + intPid + '">看產品詳細介紹</a></span>'
                           if (intCategory == 2){
  str += '                   <BR><span class="style2"><a href="../../rule.htm" target="_blank">如何挑選戒圍</a></span>'
                           }  
                           if (intItem == 1) {
                             if (intMemId != 0) {
								 str += '<br><br><span class="style2"><a href="javascript:objPO.addToBag(intQty)"><img src="../../images/add_cart.gif" border = "0"></a></span>'
						     } else {
								str += "<br><br><span class='style2'>"
							    str += " <a href='javascript:alert(strMsg);location.href=\"../../dlounge/index-6.htm\" '>"
								str += "<img src='images/add_cart.gif'  border='0'></a></span>"
							 }
                           }

  str += '               </span>' +
  '                    </div>' +
  '                    <div id="pdesc" class="display0">' +
  '                      <span class="p-d-text">' +
  '                        ' + strProductDesc + '<br><br>' +
  '                        <span class="style2"><a href="product.htm?sf=' + intStuff + '&cate=' + intCategory + '&id=' + intPid + '">看產品詳細介紹</a></span>'
  
                           if (intItem == 1 && intMemId != 0) str += '<br><br><span class="style2"><a href="javascript:objPO.addToBag(intQty)">加入購物車</a></span>'

  str += '               </span>' +
  '                    </div>' +
  '                  </td>' +
  '                </tr>' +
  '              </table>' +
  '            </td>' +
  '          </tr>' +
  '        </table>' +
  '      </td>' +
  '    </tr>' +
  '  </table>' +
  '</div>'
//alert(str);
	return str;
}
