var siteUrl = "http://site.emitations.com/";
var shoppingCartUrl = "http://order.store.yahoo.net/cgi-bin/wg-order?tpa";
var activeItemDataTab = "qstabDesc";

function pdShowQuickShopButton(productId) {
	var buttonId = "pdQuickShopButton-" + productId;
	document.getElementById(buttonId).className = "pdShowQuickShopButton";
	return false;
}
function pdHideQuickShopButton(productId) {
	var buttonId = "pdQuickShopButton-" + productId;
	try {document.getElementById(buttonId).className = "pdHideQuickShopButton";} catch(e) {}
	return false;
}

function pdQuickShopClick(productId) {
	displayQuickShopLoader();
	var url = siteUrl + "pd_quickShop/services/getProductInfo.php?productId=" + encodeURIComponent(productId);
	var script = document.createElement('script');
	script.type = 'text/javascript';
	script.src = url;
	document.getElementsByTagName("head")[0].appendChild(script);
}

function displayQuickShopLoader() {
	var loaderHTML = document.getElementById("pdQuickShopTemplateLoader").innerHTML;
	var displayWindow = document.getElementById("pdQuickShopDisplayWindow");
	displayWindow.innerHTML = loaderHTML;
	displayQuickShopBackgroundOverlay();
	showQuickShop();
	centerQuickShop();
	return false;
}

function displayQuickShopBackgroundOverlay() {
	//************************************************************
	//***** DEFINE ELEMENTS FOR FADE AND CONTENT DISPLAY *********
	//************************************************************
	var fadeBg = document.getElementById('pdQuickShopBackgroundOverlay');
	fadeBg.className = "pdQuickShopBackgroundOverlayOn";
	//************************************************************
	//***** FIND AND SET USER WINDOW HEIGHT/WIDTH ****************
	//************************************************************
	var height;
	var winHeight = (typeof window.innerHeight != 'undefined' ? window.innerHeight : document.body.offsetHeight);
	var scrollHeight = window.document.body.scrollHeight;
	var winWidth = window.document.body.scrollWidth;
	if(winHeight > scrollHeight){
		height = winHeight;
	}else{
		height = scrollHeight;
	}
	//************************************************************
	//*********** DISPLAY FADE BG AND CONTENT DIV ****************
	//************************************************************
	fadeBg.style.height = height + 'px';
	fadeBg.style.width = winWidth + 'px';
	return false;
}
function hideQuickShopBackgroundOverlay() {
	document.getElementById("pdQuickShopBackgroundOverlay").className = "pdQuickShopBackgroundOverlayOff";
	return false;
}
function displayQuickShop(productId) {
	var productInfo = getProductInfo();
	var productInfo_regPrice = productInfo.price;
	var productInfo_salePrice = productInfo.salePrice;
	var productInfo_youSave = ((productInfo_regPrice - productInfo_salePrice) / productInfo_regPrice) * 100;
	var priceDisplayHtml = '';
	
	var templateHTML = document.getElementById("pdQuickShopTemplate").innerHTML;
	templateHTML = templateHTML.replace(/\$\$productInfo.imageSmallUrl\$\$/g, productInfo.imageSmallUrl);
	templateHTML = templateHTML.replace(/\$\$productInfo.imageMediumUrl\$\$/g, productInfo.imageMediumUrl);
	templateHTML = templateHTML.replace(/\$\$productInfo.imageLargeUrl\$\$/g, productInfo.imageLargeUrl);
	templateHTML = templateHTML.replace(/\$\$productInfo.name\$\$/g, productInfo.name);
	templateHTML = templateHTML.replace(/\$\$productInfo.productId\$\$/g, productInfo.productId);
	templateHTML = templateHTML.replace(/\$\$productInfo.code\$\$/g, productInfo.code);
	templateHTML = templateHTML.replace(/\$\$productInfo.caption\$\$/g, productInfo.caption);
	templateHTML = templateHTML.replace(/\$\$productInfo.caption255\$\$/g, productInfo.caption255);
	templateHTML = templateHTML.replace(/\$\$productInfo.details\$\$/g, productInfo.details);
	templateHTML = templateHTML.replace(/\$\$productInfo.abstract\$\$/g, productInfo.abstract);

	templateHTML = templateHTML.replace(/\$\$productInfo.ratingDisplay\$\$/g, productInfo.ratingDisplay);
	//*************************************************************
	//********** PRODUCT OPTIONS/ ADD TO CART BUTTON **************
	//*************************************************************
	var addToCartButton = '<input type="image" src="http://lib.store.yahoo.net/lib/tpa/itemAddCart.gif" vspace="5" border="0">';
	var reserveNowButton = '<input type="image" src="http://site.emitations.com/images/reserveNow.gif" vspace="5" border="0">';
	var orderButton;
	if(productInfo.preorder == 1){
		orderButton = reserveNowButton;
	}else{
		orderButton = addToCartButton;
	}
	templateHTML = templateHTML.replace(/\$\$productInfo.options\$\$/g, productInfo.options);
	templateHTML = templateHTML.replace(/\$\$productInfo.addToCart\$\$/g, orderButton);
	//********************************************
	//********** PRICE DISPLAY *******************
	//********************************************
	if(productInfo_salePrice < productInfo_regPrice){
		priceDisplayHtml = '<table><tr><td colspan="2">';
		priceDisplayHtml += '<div class="itemPrice">On Sale! $' + productInfo_salePrice + '</div>';
		priceDisplayHtml += '</td></tr><tr><td>';
		priceDisplayHtml += '<div class="itemRegPrice">Was: $<s>' + productInfo_regPrice + '</s></div>';
		priceDisplayHtml += '</td><td>';
		priceDisplayHtml += '<div class="itemYouSave">You Save: ' + productInfo_youSave.toFixed(0) + '%</div>';
		priceDisplayHtml += '</td></tr></table>';
	}else{
		priceDisplayHtml = '<div class="itemPrice">Our Price $' + productInfo_regPrice + '</div>';
	}
	templateHTML = templateHTML.replace(/\$\$productInfo.priceDisplay\$\$/g, priceDisplayHtml);
	
	templateHTML = templateHTML.replace(/\$\$productInfo.productId\$\$/g, productInfo.productId);
	templateHTML = templateHTML.replace(/\$\$productInfo.alternateOptionsHtml\$\$/g, productInfo.alternateOptionsHtml);
	templateHTML = templateHTML.replace(/\$\$productInfo.relatedItemsHtml\$\$/g, productInfo.relatedItemsHtml);

	//********************************************
	//******** RATING/REVIEWS DISPLAY ************
	//********************************************
	templateHTML = templateHTML.replace(/\$\$productInfo.reviewsHtml\$\$/g, productInfo.reviewsHtml);
	templateHTML = templateHTML.replace(/\$\$productInfo.overallRating\$\$/g, productInfo.overallRating);
	templateHTML = templateHTML.replace(/\$\$productInfo.overallRatingMini\$\$/g, productInfo.overallRatingMini);

	//********************************************
	//********** IMAGE DISPLAY *******************
	//********************************************
	var imageDisplayHtml = "";
	//var isIE6 = /msie|MSIE 6/.test(navigator.userAgent);
	//isIE6 = false;
	//if(isIE6) {
		imageDisplayHtml = '<img src="' + productInfo.imageMediumUrl + '" border="0">';
	//} else {
		imageDisplayHtml = '<img class="MagicZoomLoading" src="http://site.emitations.com/pd_magicZoom/ajax-loader.gif" alt="Loading Zoom, Please Wait..."/><a href="' + productInfo.imageLargeUrl + '" class="MagicZoom" id="zoom1" title="Roll Off Image to Close Zoom Window"><img src="' + productInfo.imageMediumUrl + '" border="0"></a>';
		imageDisplayHtml += '<div class="itemImgBot">';
		imageDisplayHtml += '<div style="float:right;"><img src="http://site.emitations.com/images/zoomarrow.gif" hspace="3">Rollover Image to Zoom</div>';
		imageDisplayHtml += '</div>';
	//}
	templateHTML = templateHTML.replace(/\$\$productInfo.imageDisplay\$\$/g, imageDisplayHtml);
	
	//**************************************************
	//*** STRIP TEMPLATE PREFIX TO CREATE UNIQUE IDs ***
	//**************************************************
	templateHTML = templateHTML.replace(/\$\$template\$\$/g, "");
	templateHTML = templateHTML.replace(/\$\$template\$\$/g, "");

	var displayWindow = document.getElementById("pdQuickShopDisplayWindow");
	displayWindow.innerHTML = templateHTML;

	//********************************************
	//***** ITEM TABS ****************************
	//********************************************
	itemDataTabsQs();

	//********************************************
	//***** MAGIC ZOOM DISPLAY *******************
	//********************************************
	MagicZoom_findZooms();
	
	//********************************************
	//***** SHOW QUICKSHOP ***********************
	//********************************************
	showQuickShop();
	return false;
} 
function showQuickShop() {
	var displayWindow = document.getElementById("pdQuickShopDisplayWindow");
	displayWindow.className = "showQuickShop";
}
function hideQuickShop() {
	var displayWindow = document.getElementById("pdQuickShopDisplayWindow");
	displayWindow.className = "hideQuickShop";
	activeItemDataTab = "qstabDesc";	//*** RESET DEFAULT TAB
	var success = MagicZoom_stopZooms();
	var success = hideQuickShopBackgroundOverlay();
	return false;
}

function centerQuickShop() {
	var browserHeight = (typeof window.innerHeight != 'undefined' ? window.innerHeight : document.body.offsetHeight);
	var scrollHeight = window.document.body.scrollHeight;
	var scrollWidth = window.document.body.scrollWidth;
	var scrollPositionX = 0;
	var scrollPositionY = 0;
	try {
		scrollPositionX = pageXOffset;
		scrollPositionY = pageYOffset;
	} catch(e) {
		scrollPosistionX = document.body.scrollLeft;
		scrollPositionY = document.body.scrollTop;
	}

	var displayWindow = document.getElementById("pdQuickShopDisplayWindow");
	var displayWindowWidth = 820;
	var displayWindowHeight = displayWindow.scrollHeight;
	
	displayWindow.style.top = scrollPositionY + 90;
	displayWindow.style.left = (scrollWidth - scrollPositionX)/2 - (displayWindowWidth/2) - 10;
	
	return false;
}

var pdAddToCartActivated = false;
var pdAddToCartIsLoaded = false;

function pdQuickShopAddToCartIsLoaded() {
	if(pdAddToCartActivated == true) {
		//alert("add to cart completed");
		pdAddToCartIsLoaded = true;
	}
	return false;
}

function performAddToCartAnimation() {
	pdAddToCartActivated = true;
	//var displayWindow = document.getElementById("pdQuickShopDisplayWindow");
	//displayWindow.innerHTML = renderAddToCartAnimation();
	setTimeout(renderAddToCartAnimation,100);
	setTimeout(displayAddedToCart, 500);
	return false;
}

function renderAddToCartAnimation() {
	var displayWindow = document.getElementById("pdQuickShopDisplayWindow");
	var html = "";
	html += '<div style="border:3px solid #ffffff;width:300px;height:300px;background-color:#ffffff;text-align:center;">';
	html += 'Adding to cart...';
	html += '</div>';
	displayWindow.innerHTML = html;
	centerQuickShop();
	return true;
}

function displayAddedToCart() {
	if(pdAddToCartIsLoaded == true) {
		var displayWindow = document.getElementById("pdQuickShopDisplayWindow");
		pdShoppingCart = getShoppingCart();
		displayShoppingCart(pdShoppingCart);
		displayWindow.innerHTML = renderAddedToCart();
		pdAddToCartIsLoaded = false;
		centerQuickShop();
	} else {
		setTimeout(displayAddedToCart, 200);
	}
	return false;
}

function renderAddedToCart() {
	var html = "";
	html += '<div style="border:3px solid #ffffff;width:300px;height:300px;background-color:#ffffff;text-align:center;">';
	html += '<br><br>';
	html += '<h1>Added To Cart Successfully</h1>';
	html += '<a href="' + shoppingCartUrl + '">Proceed to Checkout</a>';
	html += '&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
	html += '<a href="#" onclick="hideQuickShop();return false;">Continue Shopping</a>';
	html += '</div>';
	return html;
}

function trim (str) {
	str = String(str);
	return str.replace(/^\s+|s+$/g, '');
}
//********************************************
//******** EVENT MANAGEMENT FUNCTIONS ********
//********************************************
function pdAddEvent(obj, evType, fn) {
	if (obj.addEventListener) {
   		obj.addEventListener(evType, fn, false);
   		return true;
	} else if (obj.attachEvent) {
   		var r = obj.attachEvent("on"+evType, fn);
   		return r;
 	} else {
   		return false;
 	}
}
function pdRemoveEvent(obj, type, fn ) {
	if (obj.detachEvent) {
		obj.detachEvent('on'+type, fn);
		obj[type+fn] = null;
	} else {
		obj.removeEventListener( type, fn, false);
	}
}
//********************************************
//******* GET ELEMENTS BY CLASS NAME *********
//********************************************
function getElementsByClassName(elm,tag,className){
	var testClass = new RegExp("(^|\\s)" + className + "(\\s|$)");
	var tag = tag || "*";
	var elm = elm || document;
	var elements = (tag == "*" && elm.all)? elm.all : elm.getElementsByTagName(tag);
	var returnElements = [];
	var current;
	var length = elements.length;
	for(var i=0; i<length; i++){
		current = elements[i];
		if(testClass.test(current.className)){
			returnElements.push(current);
		}
	}
	return returnElements;
}
//*********************************************************
//******* GENERATE QUICK SHOP BUTTONS ON THUMBNAILS *******
//*********************************************************
var myButtons = new Object();
function pdQsButtons(){
	var imgs = getElementsByClassName(document.getElementById("pdQsItems"), "*", "sectionImg");
	if(imgs){
		for(var x = 0; x < imgs.length; x++){

			//******************************************
			//******* QUICK SHOP BUTTON ARRAY **********
			//******************************************
			myButtons[imgs[x].title] = document.createElement('img');
			myButtons[imgs[x].title].src = "http://site.emitations.com/pd_quickShop/expressShop.gif";
			myButtons[imgs[x].title].className = "qsButton";
			myButtons[imgs[x].title].onclickFunction = new Function("", "return pdQuickShopClick('" + imgs[x].title + "');");	
			pdAddEvent(myButtons[imgs[x].title], "click", myButtons[imgs[x].title].onclickFunction);				

			if(!isBlank(imgs[x].title)){
				//********************************************
				//******* INJECT QUICK SHOP BUTTON ***********
				//********************************************
				imgs[x].insertBefore(myButtons[imgs[x].title],imgs[x].getElementsByTagName('a')[0]); 
				//********************************************
				//******* APPLY MOUSEOVER EVENT **************
				//********************************************
				imgs[x].onmouseover=function(){
					pdQsButtonShow(this);
				}			
				//********************************************
				//******* APPLY MOUSEOUT EVENT ***************
				//********************************************
				imgs[x].onmouseout=function(){
					pdQsButtonHide(this);
				}
			}
		}
	}
}
function pdQsButtonShow(elem){
	elem.getElementsByTagName('img')[0].style.display = "inline";
}
function pdQsButtonHide(elem){
	elem.getElementsByTagName('img')[0].style.display = "none";
}
