//*************************************
//***** CLIENT SPECIFIC VARIABLES *****
//*************************************
var pdQsSiteUrl = "http://myaccount.albeebaby.com/";
var pdQsShoppingCartUrl = "http://order.store.yahoo.net/cgi-bin/wg-order?albee-baby";
var pdQsZoneClassName = "pagingItemImg";
//**********************************
//****** MAGIC ZOOM FEATURE ********
//**********************************
var pdQsMagicZoomEnabled = true;
//**********************************
//******* TABBED DISPLAY ***********
//**********************************
var pdQsTabDisplayEnabled = true;
var pdQsActiveItemDataTab = "tabFeatures";
var pdQsDefaultItemDataTab = "tabFeatures";

//*********************************************
//******* BEGIN QUICKSHOP FUNCTIONS ***********
//*********************************************
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) {
	ieHideSelect(true);
	if(pdQsTabDisplayEnabled){
		pdQsActiveItemDataTab = pdQsDefaultItemDataTab;	//*** RESET DEFAULT TAB
	}
	displayQuickShopLoader();
	var url = pdQsSiteUrl + "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();
	centerQuickShop();
	showQuickShop();	
	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 - 0;
	var productInfo_salePrice = productInfo.salePrice - 0;
	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);

	//*************************************************************
	//********** PRODUCT OPTIONS/ ADD TO CART BUTTON **************
	//*************************************************************
	var quantityField = '<div class="pdQsQuantity">Quantity <input type="text" name="vwquantity" value="1" size="3"></div>';
	var addToCartButton = '<input type="image" src="' + pdQsSiteUrl + 'pd_quickShop/skin/addCart.gif" vspace="5" border="0">';
	var outOfStockButton = '<img src="' + pdQsSiteUrl + 'pd_quickShop/skin/outOfStock.gif" vspace="5" border="0">';
	
	var orderButton = '';
	if(productInfo.orderable == 1){
		orderButton += quantityField;
		orderButton += addToCartButton;
	}else{
		orderButton = outOfStockButton;
	}
	templateHTML = templateHTML.replace(/\$\$productInfo.options\$\$/g, productInfo.options);
	templateHTML = templateHTML.replace(/\$\$productInfo.addToCart\$\$/g, orderButton);
	//********************************************
	//********** PRICE DISPLAY *******************
	//********************************************
	if(productInfo_salePrice < productInfo_regPrice){
		priceDisplayHtml += '<div class="pdQsItemRegPrice">Regular: $<s>' + productInfo_regPrice + '</s></div>';
		priceDisplayHtml += '<div class="pdQsItemSalePrice">Online Sale Price $' + productInfo_salePrice + '</div>';
		//priceDisplayHtml += '<div class="pdQsItemYouSave">You Save: ' + productInfo_youSave.toFixed(0) + '%</div>';
	}else{
		priceDisplayHtml += '<div class="pdQsItemPrice">$' + productInfo_regPrice + '</div>';
		priceDisplayHtml += '<div class="pdMyAccountPriceWrapper" style="display:none"><p style="color:#ff6801;"><span><b>Rewards Price</b> </span>';
		priceDisplayHtml += '<span class="pdMyAccountPrice" title="' + productInfo.productId + '">' + productInfo_regPrice + '</span></p></div>';
	}
	templateHTML = templateHTML.replace(/\$\$productInfo.priceDisplay\$\$/g, priceDisplayHtml);

	templateHTML = templateHTML.replace(/\$\$productInfo.productId\$\$/g, productInfo.productId);

	//********************************************
	//******** RATING/REVIEWS DISPLAY ************
	//********************************************
	templateHTML = templateHTML.replace(/\$\$productInfo.reviewsHtml\$\$/g, productInfo.reviewsHtml);
	templateHTML = templateHTML.replace(/\$\$productInfo.overallRating\$\$/g, productInfo.overallRating);

	//********************************************
	//********** IMAGE DISPLAY *******************
	//********************************************
	var imageDisplayHtml = "";
	imageDisplayHtml = '<img src="' + productInfo.imageMediumUrl + '" border="0">';
	if(pdQsMagicZoomEnabled){
		imageDisplayHtml = '<img class="MagicZoomLoading" src="http://site.albeebaby.com/pd_quickShop/magicZoom/ajax-loader.gif" alt="Loading Zoom, Please Wait..."/><a href="' + productInfo.imageLargeUrl + '" class="MagicZoom" id="zoom1" rel="zoom-width:415px;" title="Roll Off Image to Close Zoom Window"><img src="' + productInfo.imageMediumUrl + '" width="275" border="0"></a>';
		imageDisplayHtml += '<br><table border="0" cellpadding="0" cellspacing="0" width="275"><tr><td align="center">';
		imageDisplayHtml += '<div>Rollover Image to Zoom</div>';
		imageDisplayHtml += '</td></tr></table>';
	}
	templateHTML = templateHTML.replace(/\$\$productInfo.imageDisplay\$\$/g, imageDisplayHtml);
	
	//*************************************
	//******** CUSTOM DISPLAYS ************
	//*************************************
	var alternateOptionsHtml = "";
	alternateOptionsHtml += '<div>';
	alternateOptionsHtml += productInfo.alternateOptionsHtml;
	alternateOptionsHtml += '</div>';
	templateHTML = templateHTML.replace(/\$\$productInfo.alternateOptionsHtml\$\$/g, alternateOptionsHtml);

	//**************************************************
	//*** 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 ****************************
	//********************************************
	pdQsItemDataTabs();

	//********************************************
	//***** MAGIC ZOOM DISPLAY *******************
	//********************************************
	if(pdQsMagicZoomEnabled){
		MagicZoom_findZooms();
	}
	
	//***************************
	//*** APPLY PRICING LOGIC ***
	//***************************
	updatePrices("pdQuickShopDisplayWindow");
		
	//********************************************
	//***** SHOW QUICKSHOP ***********************
	//********************************************
	showQuickShop();
	return false;
} 
function showQuickShop() {
	var displayWindow = document.getElementById("pdQuickShopDisplayWindow");
	displayWindow.className = "pdShowQuickShop";
}
function hideQuickShop() {
	var displayWindow = document.getElementById("pdQuickShopDisplayWindow");
	displayWindow.className = "pdHideQuickShop";
	if(pdQsMagicZoomEnabled){
		MagicZoom_stopZooms();
	}
	hideQuickShopBackgroundOverlay();
	ieHideSelect(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 = 750;
	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="' + pdQsShoppingCartUrl + '">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 pdQsGetElementsByClassName(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 = pdQsGetElementsByClassName(document.getElementById("pdQsItems"), "*", pdQsZoneClassName);
	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 = pdQsSiteUrl + 'pd_quickShop/skin/pdQuickShop.png';
			myButtons[imgs[x].title].className = "pdQsButton";
			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 = "block";
}
function pdQsButtonHide(elem){
	elem.getElementsByTagName('img')[0].style.display = "none";
}
//********************************************
//******** ITEM DATA TAB FUNCTIONS ***********
//********************************************
var pdQsActiveTabList = new Array();
function pdQsGetActiveTabList() {
	var defaultTabFound = false;
	var activeTabList = new Array();
	var wrapper = document.getElementById("pdQsItemDataTabs");
	var j=0;
	if(wrapper) {
		var tabs = wrapper.getElementsByTagName("DIV");
		for(var i=0;i<tabs.length;i++) {
			var s = tabs[i].id;
			var subs = s.substring(0,3);
			if(subs == "tab") {
				if(!isBlank(document.getElementById(s + "Content").innerHTML)) {
					activeTabList[j] = new Object();
					activeTabList[j].name = s;
					activeTabList[j].content = s + "Content";
					if(s == pdQsDefaultItemDataTab) {
						activeTabList[j].isDefaultTab = true;
						defaultTabFound = true;
					} else {
						activeTabList[j].isDefaultTab = false;
					}
					j++;
				} else {
					//*** DISABLE TAB
					tabs[i].className = "pdQsItemTabDisable";
					document.getElementById(tabs[i].id + "Content").style.display = "none";
				}
			}
		}
		if(defaultTabFound == false) {
			if(activeTabList[0]) activeTabList[0].isDefaultTab = true;
		}		
	}
	return activeTabList;
}

function pdQsItemDataTabs() {
	pdQsActiveTabList = pdQsGetActiveTabList();
	for(var i=0;i<pdQsActiveTabList.length;i++) {

		var tab = document.getElementById(pdQsActiveTabList[i].name);
		var tabContent = document.getElementById(pdQsActiveTabList[i].content);
		
		//******* MOUSEOVER EVENT ********//
		tab.onmouseover=function(){
			this.className = "pdQsItemTabLinkOn";
		}
		//******* MOUSEOUT EVENT ********//
		tab.onmouseout=function(){
			if(pdQsActiveItemDataTab != this.id){
				this.className = "pdQsItemTabLinkOff";
			}
		}
		//******* ONCLICK EVENT ********//
		tab.onclick=function(){
			pdQsActiveItemDataTab = this.id; //** REMEMBER ACTIVE TAB
			pdQsToggleTab(this.id); //** TURN ON TAB CONTENT
		}
		
		if(pdQsActiveTabList[i].isDefaultTab == true) {
			pdQsToggleTab(pdQsActiveTabList[i].name);
		}		
	}
}

function pdQsToggleTab(tabName) {
	for(var i=0;i<pdQsActiveTabList.length;i++) {
		if(pdQsActiveTabList[i].name == tabName) {
			document.getElementById(pdQsActiveTabList[i].name).className = "pdQsItemTabLinkOn";
			document.getElementById(pdQsActiveTabList[i].name + "Content").style.display = "block";
		} else {
			document.getElementById(pdQsActiveTabList[i].name).className = "pdQsItemTabLinkOff";
			document.getElementById(pdQsActiveTabList[i].name + "Content").style.display = "none";
		}
	}
}

//********************************************
//******** PD UTILITIES FUNCTIONS ************
//********************************************
var pd_ieHideSelectTempState = "";
function ieHideSelect(state){
	var selectTags = document.getElementsByTagName("SELECT");
	for(i=0; i<selectTags.length; i++){
		if(state){
			if(selectTags[i].className != "prSelect"){
				pd_ieHideSelectTempState = selectTags[i].style.display;
				selectTags[i].style.display = "none";
			}
		}else{
			selectTags[i].style.display = pd_ieHideSelectTempState;
		}
	}
}
function isBlank(item) {
	item = String(item).toLowerCase();
	if(item == "undefined" || item == "" || item == "null") return true;
	else return false;
}
