// global variables
var aqv_overButton = false;
var aqv_buttonTimer = null;
var aqv_processing = false;
var aqv_currentItemCount = 0;
var aqv_selectedSku = new Array("productId","colorCode","sizeCode","skuId","quantity");
var aqv_imageExtensions = new Array("?$redesign-thumb$","?$redesign-quickviewMain$","?$redesign-zoom-5x$");
var aqv_catid = null;
var quickshopEnabled = true;
var categoryQuickshopBtnClicked =false;
var cmElemPageId = "QUICKSHOP";
var oldQty = null;
//var aqv_imageExtensions = new Array("?wid=30&hei=50&fmt=jpeg&qlt=85,0&op_sharpen=0&resMode=sharp2&op_usm=1.5,1.0,50,0&iccEmbed=0","?wid=296&hei=482&fmt=jpeg&qlt=95,0&op_sharpen=0&resMode=sharp2&op_usm=1.5,0.75,45,0&iccEmbed=0");
//var aqv_imageExtensions = new Array("?wid=44&hei=67&fmt=jpeg&qlt=85,0&op_sharpen=0&resMode=sharp2&op_usm=1.5,1.0,50,0&iccEmbed=0","?wid=232&hei=348&fmt=jpeg&qlt=95,0&op_sharpen=0&resMode=sharp2&op_usm=1.5,0.75,45,0&iccEmbed=0"); // renders 232 width which is what we want
var aqv_filename = "quickshop.js";
var aqv_rolloverProd;
// global vars for message faders
var opac = 100;
var fadetimer = null;
var msgtimer = null;
var timer = 500;
//var hProt = "http";
/*function isSecure()
{
   return window.location.protocol == 'https:';
}*/



var aqv_allMyImages = null;
var ie = (navigator.userAgent.indexOf("MSIE") > 0) ? true:false;

//show quickshop only when page is fully loaded
var pageisloaded = false;
Event.observe(document, 'dom:loaded', function() {pageisloaded = true;});

/* ---------------------------------------
           		SELECTION DATA
user to track the currently selected product,
sku, color, size, & quantity values helps to 
keep our data nice and neat
-------------------------------------------*/
function clearSelection(){
	aqv_selectedSku["productId"]= "";
	aqv_selectedSku["commerceItemId"] = "";
	aqv_selectedSku["skuId"] = "";
	aqv_selectedSku["quantity"] = "";
	aqv_selectedSku["colorCode"] = "";
	aqv_selectedSku["colorName"] = "";
	aqv_selectedSku["sizeCode"] = "";
	aqv_selectedSku["sizeName"] = "";
	aqv_selectedSku["categoryId"] = "";
}

function getSelectedSku(){
	return aqv_selectedSku;
}

function getSelectedCategoryId(){
	return aqv_selectedSku["categoryId"];
}

function getSelectedSizeName(){
	return aqv_selectedSku["sizeName"];
}

function getSelectedSizeCode(){
	return aqv_selectedSku["sizeCode"];
}

function getSelectedColorCode(){
	return aqv_selectedSku["colorCode"];
}

function getSelectedColorName(){
	return aqv_selectedSku["colorName"];
}

function getSelectedSkuId(){
	return aqv_selectedSku["skuId"];
}

function getSelectedProdId(){
	return aqv_selectedSku["productId"];
}

function getSelectedQuantity(){
	return aqv_selectedSku["quantity"];
}

function getQuantityInput(){
	return $("snapQuantity").value;
}

function setSelectedColorCode(colorCode){
	aqv_selectedSku["colorCode"]= colorCode;
	aqv_selectedSku["skuId"] = "";
	aqv_selectedSku["quantity"] = getQuantityInput();
	aqv_selectedSku["sizeCode"] = "";
}

function setSelectedSizeCode(sizeCode){
	aqv_selectedSku["sizeCode"]= sizeCode;
	//aqv_selectedSku["skuId"] = getSkuId();
	//aqv_selectedSku["quantity"] = getQuantityInput();
}

function setSelectedSku(skuArray){
	aqv_selectedSku = skuArray;
}

function setSelectedSkuId(skuId){
	aqv_selectedSku["skuId"]= skuId;
}

function setSelectedCategoryId(categoryId){
	aqv_selectedSku["categoryId"]= categoryId;
}

function setSelectedProdId(prodId){
	aqv_selectedSku["productId"]= prodId;
	aqv_selectedSku["skuId"] = "";
	aqv_selectedSku["quantity"] = "";
	aqv_selectedSku["colorCode"] = "";
	aqv_selectedSku["sizeCode"] = "";
	aqv_selectedSku["colorName"] = "";
	aqv_selectedSku["sizeName"] = "";
	aqv_selectedSku["categoryId"] = "";
}

function setSelectedQuantity(){
	//use the input value for our quantity value
	aqv_selectedSku["quantity"]= $("snapQuantity").value;
}

function getCategoryIdFromURL(){
	var catId;
	if(aqv_catid === "THERES_ALSO"){
	  catId = aqv_catid;
	  return catId;
	}
	if(aqv_catid === "GoesWith"){
	  catId = aqv_catid;
	  return catId;
	}
	catId= gup('id');
	if (catId == "" || catId == null){
		catId = gup('catId');
	}
	//if catId is still null let's check the ecatalog
	if (catId == "" || catId == null){
		catId = gup('catname');
	}
	//if catId is null check for the parentid, this is when the product is thrown from the product pages
	if (catId == "" || catId == null){
		catId = gup('parentid');
	}
	if (catId == "" || catId == null){
		catId = gup('pushId');
	}
	if (catId == "" || catId == null){
		catId = gup('popId');
	}
	if (catId == "" || catId == null){
		catId = "NO CATEGORY";
	}
	return catId;	
}

function gup( name )
{
  name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
  var regexS = "[\\?&]"+name+"=([^&#]*)";
  var regex = new RegExp( regexS );
  var results = regex.exec( window.location.href );
  if( results == null )
    return "";
  else
    return results[1];
}

function getSkuId(){
	var sku = "";
	try {
		var prodArr = eval("uo"+aqv_selectedSku["productId"]);
		var allSkus = prodArr['skus'];
		
		//get our current color & size values
		var color = aqv_selectedSku["colorCode"];
		var size = aqv_selectedSku["sizeCode"];
		
		// lookup sku
		for (var i=0; i<allSkus.length; i++) {
			var curSku = allSkus[i][0];
			var curSize = allSkus[i][1];
			var curColor = allSkus[i][2];
			if ((color == curColor) && (size == curSize)) {
				sku = curSku;
			}
		}
	} catch (err) {
		alert(aqv_filename+":getSkuId - "+ e);
	}
	return sku;
}

function isSelectionShoppable(){
	if(getSelectedSkuId() !== "" && getQuantityInput() && getSelectedProdId()){
		return true;
	}
	else{
		//alert(aqv_filename + ":isSelectionShoppable - "+"p="+getSelectedProdId()+" s="+getSelectedSkuId()+ " q="+getQuantityInput());
		return false;
	}
}


// get data for ajax request
function getSelectionURL() {	
	var qstring = "";
	if (isSelectionShoppable()){
		// set get values	
		qstring = "?productId="+getSelectedProdId()+"&quantity="+getQuantityInput()+"&skuId="+getSelectedSkuId()+"&catId="+getCategoryIdFromURL();
	}
	return qstring;
}

function showErrorMessage(mess){
	$('qsmessage').innerHTML = mess;
 	$('qsmessage').style.background = "#8c1410";
	$('qsmessage').style.color = "#fff";
	$('qsmessage').style.display = "block";
	// fade message
	timer = 700;
	fadeMsg();
}

function showSuccessMessage(mess){
	$('qsmessage').innerHTML = mess;
 	$('qsmessage').style.background = "#fff";
	$('qsmessage').style.color = "#d20018";
	$('qsmessage').style.display = "block";
	// fade message
	timer = 700;
	fadeMsg();
}

/***********************************
		BROWSER FUNCTIONS
 functions needed for quick view positioning
 and placement on the users browser
***********************************/
// return browser width
function getBrowserWidth() {
	var val = 0;
	if ((document.documentElement) && (document.documentElement.clientWidth != 0)) {
		val = document.documentElement.clientWidth;
	} else if (document.body) {
		val = document.body.clientWidth;
	} else if (window.innerWidth) {
		val = window.innerWidth;
	}
	return val;
};

// return browser height
function getBrowserHeight() {
	var val = 0;
	if ((document.documentElement) && (document.documentElement.clientWidth != 0)) {
		val = document.documentElement.clientHeight;
	} else if (window.innerHeight) {
		val = window.innerHeight;
	} else if (document.body) {
		val = document.body.clientHeight;
	}	
	return val;
};

// get y scolling offset
function getOffsetY() {
	var offset = 0;
	if ((document.documentElement) && (document.documentElement.scrollTop)) {
		offset = document.documentElement.scrollTop;
	} else if ((document.body) && (document.body.scrollTop)) {
		offset = document.body.scrollTop;
	} else if (window.pageYOffset) {
		offset = window.pageYOffset;
	}
	return offset;
}
function getOffsetX() {
	var offset = 0;
	if ((document.documentElement) && (document.documentElement.scrollTop)) {
		offset = document.documentElement.scrollTop;
	} else if ((document.body) && (document.body.scrollTop)) {
		offset = document.body.scrollTop;
	} else if (window.pageYOffset) {
		offset = window.pageYOffset;
	}
	return offset;
}

/*
	snapshot image functions
*/
function preloadProductImages(productID) {
	if (document.images) {
        //aqv_allMyImages = new Array('b','c','g','h','u');
		aqv_allMyImages = eval("uo"+productID);
		
		var imagePath = window.location.protocol+"//images.anthropologie.com/is/image/Anthropologie/";
		var checkalpha = /^[a-z]{1}/; //the first character must be a letter for alternative view
        for (var i=0; i<aqv_allMyImages.length; i++) {
			var test_bool = checkalpha.test(aqv_allMyImages[i]);
			if (!test_bool) // use this as a failsafe
			{
				aqv_allMyImages[i] = "b";
			}
			var imgViewSrc = imagePath + productID + "_" + aqv_allMyImages[i];
			if(window.useModelViews == true){
			  imgViewSrc = swapForModelViews(imgViewSrc);
			}
			
            aqv_allMyImages[aqv_allMyImages[i]] = new Array("thumb","main","zoom");
            aqv_allMyImages[aqv_allMyImages[i]]["thumb"] = new Image();
            aqv_allMyImages[aqv_allMyImages[i]]["thumb"].src = imgViewSrc + aqv_imageExtensions[0];
			aqv_allMyImages[aqv_allMyImages[i]]["main"] = new Image();
            aqv_allMyImages[aqv_allMyImages[i]]["main"].src = imgViewSrc + aqv_imageExtensions[1];
			aqv_allMyImages[aqv_allMyImages[i]]["zoom"] = new Image();
            aqv_allMyImages[aqv_allMyImages[i]]["zoom"].src = imgViewSrc + aqv_imageExtensions[2];
		}
    }
}

// create thumbnails
function createThumbnails(colorName, productColorId) {
	var thumbnails = $("thumbnails");
	var content = "";
	if (thumbnails) {
		thumbnails.innerHTML = "";
		//var colors = new Array('b','c','g','h','u');
		var colors = eval("uo"+productColorId);
		colors = colors.uniq();
		for (var j=0; j<colors.length; j++) {
			var cur = colors[j];
			var selected = "";
			if (j == 0) {
				selected = ' class="selected"';
			}
			content += '<li class="thumb"><a href="javascript:changeThumbNail(\'' + cur + '\')"><img src="' + aqv_allMyImages[cur]["thumb"].src + '" alt="' + colorName + '"' + selected + '/></a></li>';        	
		}
		thumbnails.innerHTML = content;
	}
}

// create swatch 
function createSwatch(styleNum, colorCode, colorName, selected) {
	var swatchPath = "/anthro/images/swatches/";
	var swatchSuffix = "_s.png";
	var swatch = "";
	swatch += '<a href="javascript:changeSwatch(\'' + colorCode + '\')">';
	swatch += '<img id="' + styleNum + 'swatches" src="' + swatchPath + styleNum + '_' + colorCode + swatchSuffix + '" alt="' + colorName + '" title = "'+colorName+'"' + selected + '" height="10" width="21" />'; 
	swatch += '</a>';
	return swatch;
}

// change swatch images
function changeSwatch(colorID) {
	if (!colorID){
	  colorID = eval("uo"+getSelectedProdId()+"['colors'][0][0]"); 
	}
	
	try{
		setSelectedColorCode(colorID);
		disableAddToBagButton();
		var detailMain = $("detailMain");
		if (detailMain) {
			var productID = detailMain.src.substring(detailMain.src.lastIndexOf("/")+1, detailMain.src.indexOf("_"));
			productID += ("_" + getSelectedColorCode());
			preloadProductImages(productID);
			detailMain.src = aqv_allMyImages['b']["main"].src;
		}	
		var swatches = $$("#swatches img");
		  var switchswatchdone = 0;
		  if (swatches) {
				 swatches.each(function(s) {
					   if (switchswatchdone == 0 && s.src.indexOf(colorID) > 0)
					   {
							  switchswatchdone = 1;
							  s.addClassName("selected");
							  s.up().blur();
					   }
					   else {
							  s.removeClassName("selected");    
					   }
				 });
		  }
		initializeSizes();
			updateZoomViewer('b');
	} catch(e){
		showErrorMessage(aqv_filename + ":changeSwatch - "+colorID+" e:"+e);
	}
}

// change thumbnails
function changeThumbNail(thumbID) {
	// change detailMain
	var detailMain = $("detailMain");
	if (detailMain) {
		detailMain.src = aqv_allMyImages[thumbID]["main"].src;
	}
	// change thumbnail classes
	var thumbNails = $$("#thumbnails img");
	if (thumbNails) {
			thumbNails.each(function(t) {
			// update thumbnail class if it's not already selected
			if (t.hasClassName("selected") && t.src.indexOf("_"+thumbID+"?") < 0) {
				t.removeClassName("selected");	
			} else if (t.src.indexOf("_"+thumbID+"?") > 0) {
				t.addClassName("selected");
				t.up().blur();
			}
		});

		updateZoomViewer(thumbID);
	}
}

function updateZoomViewer(thumbID){
	var viewerElement = getElement("zoomViewerqs");
	var container = document.createElement("div");
	viewerElement.innerHTML="";
	container.setAttribute("class", "containerqs");
	viewerElement.appendChild(container);

	var image = document.createElement("img");
	container.innerHTML="";
	image.setAttribute("id", "detailMain");
	image.setAttribute("data-zoomsrc", aqv_allMyImages[thumbID]["zoom"].src);
	image.setAttribute("data-zoomsrc2", aqv_allMyImages[thumbID]["zoom"].src);
	image.setAttribute("src", aqv_allMyImages[thumbID]["main"].src);
	container.appendChild(image);
	MojoZoom.init();
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

// display main image + thumbnails + swatches
function addProductImages(styleNum,colorID) {
 try{	
	var prodArr = eval("uo"+styleNum);
	var total = prodArr["colors"].length;
	var swatches = $("swatches");
	var swatchesLabel = $("swatchesLabel");	
	// reset main image
	MM_preloadImages("/anthro/images/spinner.gif");
	$("detailMain").src = "/anthro/images/spinner.gif";
	// reset swatches
	if (swatches) {
		swatches.innerHTML = "";
	}
	// reset swatches label
	if (swatchesLabel) {
		swatchesLabel.style.display = "none";
	}
	// get index of selected color
	var selectedIndex = getSelectedIndex(prodArr,colorID);
	// loop through all colors for a given product				
	for (var i=0; i<total; i++) {
		var selected = "";
		var cur = prodArr["colors"][i];
		// add option to drop down menu -- not for anthro
//		addSelectOptions(cur[0], cur[1], $("snapColors"));
		// set-up initial detail main image and thumbnails
		if (i == selectedIndex) {
			// preload product images
			preloadProductImages(styleNum+'_'+cur[0]);
			// set selected index for color drop down
			$("snapColors").selectedIndex = i;
			// set detail main image
			$("detailMain").src = aqv_allMyImages["b"]["main"].src;
			$("detailMain").alt = getProductTitle(prodArr["title"]);
			$("detailMain").title = getProductTitle(prodArr["title"]);
			// create thumbnails
			createThumbnails(cur[1], styleNum+'_'+cur[0]);
			// if more than one color way, display swatches
			if ((total > 1) && (swatches)) {
				// display swatches
				swatchesLabel.style.display = "block";
				selected = ' class="selected"';
				swatches.innerHTML += createSwatch(styleNum, cur[0], cur[1], selected);
			}
		} else if (swatches) {
			// display swatches
			swatches.innerHTML += createSwatch(styleNum, cur[0], cur[1], selected);
		}
	}
 }catch(e){
 	showErrorMessage(aqv_filename+"-addProductImages("+styleNum+","+colorID+")-"+e);
 }
}

/*
	color + size drop down menu functions
*/

// loop through array and return index of selected swatch color
function getSelectedIndex(obj,colorID) {
	var total = obj["colors"].length;
	var selectedIndex = 0;
	for (var i=0; i<total; i++) {
		var cur = obj["colors"][i];
		if (cur[0] == colorID) {
			selectedIndex = i;
			break;
		}	
	}
	return selectedIndex;
}

function initializeSizes(){
  try{
	var sizeTypes = new Array("regular", "petite", "tall", "short");
	var regCount =0;
	var petCount =0;
	var tallCount =0;
	var shortCount =0;
	
	var regHTML = document.createElement("div");
	regHTML.setAttribute("id", "size-regular");
	var petiteHTML = document.createElement("div");
	petiteHTML.setAttribute("id", "size-petite");
	var tallHTML  = document.createElement("div");
	tallHTML.setAttribute("id", "size-tall");
	var shortHTML = document.createElement("div");
	shortHTML.setAttribute("id", "size-short");
	
	
	
	var curProd = getSelectedProdId();
	var curColor = getSelectedColorCode();
	
	if (curProd && curColor){
		var prodArr = eval("uo"+curProd);
		var total = prodArr["sizes"].length;

		//Loop through color array, recreate thumbnails b/c we may have more or less diff alt views
		var totalcolors = prodArr["colors"].length;
		var selectedIndex = getSelectedIndex(prodArr,curColor);
		for (var i=0; i<totalcolors; i++) {
			var cur = prodArr["colors"][i];
			if (i == selectedIndex) {
				createThumbnails(cur[1], curProd+'_'+cur[0]);
			}
		}
		
		var skuTotal = prodArr["skus"].length;
		$("snapSizes").innerHTML = ""; //reset
		$("snapSizesOutput").innerHTML = ""; //reset
		//Loop through our size array
		for (var i=0; i<total; i++) { 
			var cur = prodArr["sizes"][i][0]; 
			var sizeId = "size"+getSelectedProdId()+"_"+cur;
			var divnewSize = document.createElement('span');
			var newSize = document.createElement('a');
			//newSize.setAttribute('href', "");
			newSize.setAttribute('id', "size"+getSelectedProdId()+"_"+cur);
			//newSize.setAttribute('class','unavailable');
			divnewSize.innerHTML = "&nbsp; ";
			newSize.innerHTML = cur;
			for (var j =0; j<skuTotal; j++){
				//if the color for the sku that's selected, let's make sure the color matches
				if(prodArr["skus"][j][2] == curColor){
					if (total == 1) // if there's only one size option, then default select it
					{
						setDetailsSelectedSize(cur,prodArr["skus"][j][0]);
						Element.addClassName(newSize, 'available selected');
					}
					//if the sku size matches the size array name 
					if (prodArr["skus"][j][1] == cur){
						newSize.setAttribute('aqv_id', prodArr["skus"][j][0]);
						if(prodArr["skus"][j][3] == '1001' || prodArr["skus"][j][3] == '1004' || prodArr["skus"][j][3] == '1005' || prodArr["skus"][j][3] == '1006'){
							// add rules for sold out items
							//newSize.setAttribute('href','javascript:return false;');
							//newSize.setAttribute('class','unavailable');
							Element.addClassName(newSize, 'unavailable');
							newSize.onmouseover = function() {ddrivetip("sold out",'#FFFFFF','#c7c7c7')};
							newSize.onmouseout = function() {hideddrivetip()};
						}
						else if (prodArr["skus"][j][3] == '1003'){
							//add unique rules for backorder items
							//add tooltip for backorder sizes
							//newSize.setAttribute('class','backorder');
							Element.addClassName(newSize, 'backorder');
							newSize.setAttribute('href', "javascript:setDetailsSelectedSize('"+cur+"','"+prodArr['skus'][j][0]+"');");
							
//							newSize.setAttribute('onmouseover', "ddrivetip('available "+prodArr["skus"][j][4]+"','#FFFFFF','#C17E15')");
//							newSize.setAttribute('onmouseout', 'hideddrivetip()');
							var temp = "available <div id='availdate'>"+prodArr["skus"][j][4]+"</div>";
							newSize.onmouseover = function() {ddrivetip(temp,'#FFFFFF','#c7c7c7')};
							newSize.onmouseout = function() {hideddrivetip()};
						}
						else{
							//newSize.setAttribute('class','available');
							Element.addClassName(newSize, 'available');
							newSize.setAttribute('href', "javascript:setDetailsSelectedSize('"+cur+"','"+prodArr['skus'][j][0]+"');");
							
						}
						/*** only display these sizes if it's for the swatch b/c it may be different (denim temp.)***/
						if (prodArr["sizes"][i][2] == sizeTypes[1]){
							petCount++;
							petiteHTML.appendChild(newSize);
							petiteHTML.appendChild(divnewSize);
						}
						else if (prodArr["sizes"][i][2] == sizeTypes[2]){
							tallCount++;
							tallHTML.appendChild(newSize);
							tallHTML.appendChild(divnewSize);
						
						}
						else if (prodArr["sizes"][i][2] == sizeTypes[3]){
							shortCount++;
							shortHTML.appendChild(newSize);
							shortHTML.appendChild(divnewSize);
						}
						else{
							//console.log(regCount + " Reg:"+prodArr["sizes"][i][2]);
							regCount++;
							regHTML.appendChild(newSize);
							regHTML.appendChild(divnewSize);
						}
						/********************************************************************************************/
					}
				}
			}
//			alert (prodArr["sizes"][i][0]);
		}
		
		var tabs = document.createElement("ul");
		tabs.setAttribute('id', 'tabList');
		Element.addClassName(tabs.id, 'sizeTypeTabs');
		//tabs.setAttribute('class', 'sizeTypeTabs');
		var divTotal = document.createElement("div");
		divTotal.setAttribute('id', 'size-divcontainer');
		Element.addClassName(divTotal.id, 'sizeTypeTabs');
		//divTotal.setAttribute('class', 'sizeTypeContainer');
		if(regCount>0){
			//console.log("we have regular sizes");
			var regTab = document.createElement("li");
			regTab.setAttribute("id", "size-regular-tab");
			var regA = document.createElement("a");
			regA.setAttribute("href", "javascript:showSizeTab('size-regular');");
			if (petCount == 0 && tallCount ==0 && shortCount ==0){
				regTab.style.display = "none";
				divTotal.setAttribute('id', 'size-divcontainer1tab');
			}
			regA.innerHTML = "regular";
			regTab.appendChild(regA);
			tabs.appendChild(regTab);
			divTotal.appendChild(regHTML);
		}
		if(petCount>0){
			//console.log("we have petite sizes");
			var petiteTab = document.createElement("li");
			petiteTab.setAttribute("id", "size-petite-tab");
			var petA = document.createElement("a");
			petA.setAttribute("href", "javascript:showSizeTab('size-petite');");
			petA.innerHTML = "petite";
			petiteTab.appendChild(petA);
			if (regCount == 0 && tallCount ==0 && shortCount ==0){
				petiteTab.style.display = "none";
				divTotal.setAttribute('id', 'size-divcontainer1tab');
			}
			tabs.appendChild(petiteTab);
			petiteHTML.style.display = "none";
			divTotal.appendChild(petiteHTML);
		}
		if(tallCount>0){
			//console.log("we have tall sizes");
			var tallTab = document.createElement("li");
			tallTab.setAttribute("id", "size-tall-tab");
			var tallA = document.createElement("a");
			tallA.setAttribute("href", "javascript:showSizeTab('size-tall');");
			tallA.innerHTML = "tall";
			tallTab.appendChild(tallA);
			if (regCount == 0 && petCount ==0 && shortCount ==0){
				tallTab.style.display = "none";
				divTotal.setAttribute('id', 'size-divcontainer1tab');
			}
			tabs.appendChild(tallTab);
			tallHTML.style.display = "none";
			divTotal.appendChild(tallHTML);
		}
		if(shortCount >0){
			//console.log("we have short sizes");
			var shortTab = document.createElement("li");
			shortTab.setAttribute("id", "size-short-tab");			
			var shortA = document.createElement("a");
			shortA.setAttribute("href", "javascript:showSizeTab('size-short');");
			shortA.innerHTML = "short";
			shortTab.appendChild(shortA);
			if (regCount == 0 && tallCount ==0 && petCount ==0){
				shortTab.style.display = "none";
				divTotal.setAttribute('id', 'size-divcontainer1tab');
			}
			tabs.appendChild(shortTab);
			shortHTML.style.display = "none";
			divTotal.appendChild(shortHTML);
		}
		$("snapSizes").appendChild(tabs);
		$("snapSizesOutput").appendChild(divTotal);
		
		// set the selected tab -- there is no separate tab for Short
		// need to check to see if tab also exists b/c Short sizes are in the PETITE categories
		if (getCategoryIdFromURL().match("TALL") && tallCount>0)
		{
			var tabname = "size-tall";
		}
		else if (getCategoryIdFromURL().match("PETITE") && petCount>0)
		{
			var tabname = "size-petite";
		}
		else if (getCategoryIdFromURL().match("SHORT") && shortCount>0)
		{
			var tabname = "size-short";
		}
		else
		{
			var tabname = "size-regular";
		}
		showSizeTab(tabname);
	}
  }catch(e){
    showErrorMessage(aqv_filename+"-createProductSizes()-"+e.name + ":"+e.message);
  }
}

function disableAddToBagButton(){
	var btn = $$("#addtobag a");
	//btn[0].href="javascript:return false;";
	btn[0].disabled= true;
}

function enableAddToBagButton(){
	var btn = $$("#addtobag a");
	//btn[0].href="javascript:addToCart()";
	btn[0].disabled= false;
}

function showSizeTab(divId){
	if (divId){
		//reset the tabs as unselected
		var sizeTypeTabs = $$("div#snapSizes ul li");
		for (var i=0; i<sizeTypeTabs.length; i++){
			//console.log(sizeTypeTabs[i]);
						Element.removeClassName(sizeTypeTabs[i].id, 'selected');
		}
		//reset the divs as hidden
		var sizeTypeDivs = $$("div#snapSizesOutput div div");
		for (var i=0; i<sizeTypeDivs.length; i++){
			sizeTypeDivs[i].style.display="none";	
		}
		
		var sel = $(divId);
		sel.style.display = "block";
		
		var selTab = $(divId+"-tab");
		Element.addClassName(selTab.id, 'selected');
	}
}

function showTopTab(divId){ //TODO: cleanup
	if (divId){
		//setCMPageElemId("Tab:"+divId);
//			console.log(sizeTypeTabs[1]);
		//reset the divs as hidden
		$('essentials').style.display="none";	
		$('extras').style.display="none";	
		
		var sel = $(divId);
		sel.style.display = "block";
		var tabbg = $("toptabList");
		tabbg.style.background ="url(/anthro/images/detailstoptab-"+divId+".gif)";
		
		var selTab = $(divId+"-tab");
		Element.addClassName(selTab.id, 'selected');
	}
}

function setDetailsSelectedSize(current, skuId){
  try{
	//console.log("setDetailsSelectedSize("+current+","+skuId+") called");
	if(current){
		enableAddToBagButton()
		var selSize = getSelectedSizeCode();
		if(selSize){
			var oldSelectedSize = $("size"+getSelectedProdId()+"_"+selSize);
			Element.removeClassName(oldSelectedSize.id, 'selected');
		}
		
		setSelectedSizeCode(current);
		//console.log(getSelectedSizeCode());
		if (skuId === null){
			skuId = getSkuId();
		}
		setSelectedSkuId(skuId);
		//$('addToBagBtn').disabled=false;
		//console.log(getSelectedSkuId());
		//var newSelectedSize = $("size"+getSelectedProdId()+"_"+getSelectedSizeCode());
		Element.addClassName("size"+getSelectedProdId()+"_"+getSelectedSizeCode(), 'selected');
		//alert(newSelectedSize.id);
		//$(newSelectedSize.id).addClassName('selected');
		//console.log(newSelectedSize.id);
			
	}
  }catch(e){
  	showErrorMessage(aqv_filename+"-setDetailsSelectedSize("+current+","+skuId+")-"+e.name + ":"+e.message);
  }
}

// title: replace html entities
function getProductTitle(prodtitle) {
	var temptitle = prodtitle.replace(/&gt;/g, ">");
	temptitle = temptitle.replace(/&lt;/g, "<");
	temptitle = temptitle.replace(/&amp;#46;/g, ".");
	temptitle = temptitle.replace(/&amp;#39;/g, "'");
	return temptitle;
}

// add product title, price, description, sku, colors
function addProductCopy(styleNum) {
	try{
		var prodArr = eval("uo"+styleNum);
		//console.log("prodArray:"+prodArr["title"]);
		if ($("snapTitle")) {
			$("snapTitle").innerHTML = getProductTitle(prodArr["title"]);
		}
		
		var catId = getCategoryIdFromURL();
		if (catId) {
			// call coremetrics JS functions
			setCoreMetrics(styleNum, getProductTitle(prodArr["title"]), catId);
			
		}
		// price 
		if ($("snapPrice")) {
			$("snapPrice").innerHTML = prodArr["price"];
		}
		// description -- should we replace html entities here too?
		// change snapDescription to scrollbar_content if using scrollbars
		if ($("snapDescription")) {
			$("snapDescription").innerHTML = prodArr["description"];

		}
		// sku
		if ($("snapSku")) {
			$("snapSku").innerHTML = "style #" + styleNum;	
		}
		// product details url
		if ($("viewFullDetails")) {
			var formaturl = prodArr["url"];
			formaturl = formaturl.replace(/&amp;/g, "&");
			$("viewFullDetails").href = formaturl; // fix navigation
			//$("viewFullDetails").onclick=function(){setCMPageElemId("View Full Details");};
		}
		// size guide link
		if ($("qssizeguide")) {
			$("qssizeguide").href = "javascript:openProductPopupWindow('/anthro/popups/popup_sizeguide.jsp?sizeguideurl=/html/sizeguide.html');";
		}
		// share icon urls
		if ($("facebook")) {
			$("facebook").href = "http://www.facebook.com/share.php?u=http%3A%2F%2Fwww.anthropologie.com%2Fanthro%2Fcatalog%2Fproductdetail.jsp%3FnavAction%3Djump%26id%3D"+styleNum+"%26t%3D"+prodArr["title"];
		}
		if ($("twitter")) {
			$("twitter").href = "http://twitter.com/home?status="+prodArr["title"]+"%3A%20http%3A%2F%2Fwww.anthropologie.com%2Fanthro%2Fcatalog%2Fproductdetail.jsp%3Fid%3D"+styleNum+"%26navAction%3Djump";
		}
		if ($("digg")) {
			$("digg").href = "http://digg.com/submit?phase=2&url=http%3A%2F%2Fwww.anthropologie.com%2F2Fanthro%2Fcatalog%2Fproductdetail.jsp%3FnavAction%3Djump%26id%3D"+styleNum+"&title=Anthropologie.com%20%3E%20"+prodArr["title"];
		}
		if ($("delicious")) {
			$("delicious").href = "http://del.icio.us/post?noui&jump=close&url=http%3A%2F%2Fwww.anthropologie.com%2Fanthro%2Fcatalog%2Fproductdetail.jsp%3FnavAction%3Djump%26id%3D"+styleNum+"&title=Anthropologie.com%20%3E%20"+prodArr["title"];
		}
		if ($("myspace")) {
			$("myspace").href = "http://www.myspace.com/Modules/PostTo/Pages/?l=3&u=http%3A%2F%2Fwww.anthropologie.com%2Fanthro%2Fcatalog%2Fproductdetail.jsp%3FnavAction%3Djump%26id%3D"+styleNum+"&t=Anthropologie.com%20%2D%20"+prodArr["title"];
		}
		// populate sizes drop down menu
		//addProductSizes(styleNum);
		
	} catch (e){
		alert(aqv_filename + ":addProductCopy("+styleNum+") - "+e.name + "-"+e.message + "----"+e);
//		showErrorMessage(aqv_filename + ":addProductCopy("+styleNum+") - "+e.name + "-"+e.message);
	}
}

function launchRemoteQuickshop(styleNum, colorId){
	eval("uo"+styleNum+" = getProductXML("+styleNum+");");
	
}


// create only one snapshot object for all products
function launchQuickshop(styleNum, updatedColorId, newSizeCode, newQty, newSkuId, newCommerceItemId) {
	try{
		prodArray = eval("uo"+styleNum+";");

	if(prodArray){
	//eval("uo"+styleNum);
	setSelectedProdId(styleNum);
	
	// reset quantity selected index for quantity drop down
	var snapQuantity = $("snapQuantity");
	if (snapQuantity) {
		if(newQty){
			snapQuantity.value = newQty;
		}else{
		snapQuantity.value = 1;
	}
	}
	// set hidden productId field value
	var productId = $("productId");
	if (productId) {
		productId.value = styleNum;
	}
	// temporarily hide select color menu
	var selectColorMenu = $("productColorSelection");
	if (selectColorMenu) {
		selectColorMenu.style.display = "none";
	}
	// get the user's screen dimensions and calculate center point
	var screenWidth = getBrowserWidth();
	var screenHeight = getBrowserHeight();
	// snapshot dimensions
//	var quickshopWidth = 542;
//	var quickshopHeight = 553;
	var quickshopWidth = 507;
	var quickshopHeight = 466;
	// scrolling offset
	var scrollY = getOffsetY();
	var scrollX = getOffsetX();
	// set snapshot coordinates
	var x = Math.floor(screenWidth/2) - Math.floor(quickshopWidth/2) + "px";
	var y = Math.floor(screenHeight/2) - Math.floor(quickshopHeight/2) + scrollY + "px";
	// set snapshotObj
	var quickshop = $("quickshop");
	var quickshopInner = $("quickshopInner");
	var quickshopMiddle = $("quickshopMiddle");
	var wrapperObj = $("quickshopWrapper"); // set an overlay to background
/*		wrapperObj.style.display = "block";*/ //test
	if ((quickshop) && (wrapperObj)) {
		// make snapshot visible
		quickshop.style.top = y;
		quickshop.style.left = x;
		// set snapshotWrapper height
		if (wrapperObj) {
			if( window.innerHeight && window.scrollMaxY ) // Firefox
			{
				pageWidth = window.innerWidth + window.scrollMaxX;
				pageHeight = window.innerHeight + window.scrollMaxY;
			}
			else if( document.body.scrollHeight > document.body.offsetHeight ) // all but Explorer Mac
			{
				pageWidth = document.body.scrollWidth;
				pageHeight = document.body.scrollHeight;
			}
			else // works in Explorer 6 Strict, Mozilla (not FF) and Safari
			{
				pageWidth = document.body.offsetWidth + document.body.offsetLeft;
				pageHeight = document.body.offsetHeight + document.body.offsetTop;
			}
			wrapperObj.style.height = pageHeight + "px";	
			if (ie) {
				wrapperObj.style.width = screenWidth + "px";	
			}
		}
		// reset color + size options -- not used for anthro
//		resetSelectOptions($("snapColors"));
//		resetSelectOptions($("snapSizes"));
		// display main image + thumbnails + swatches
		addProductImages(styleNum,updatedColorId);
		// populate snapshot with product data
		addProductCopy(styleNum);
		// display snapshot
		if(document["frm"+styleNum] != null){
			if(document["frm"+styleNum].color !==null){
				///console.log(styleNum+"swatch is selected on the page: "+document["frm"+styleNum].color.value);
				//console.log("catpage:"+ styleNum+"_"+document["frm"+styleNum].color.value);
				changeSwatch(document["frm"+styleNum].color.value);
				//setSelectedColorCode(document["frm"+styleNum].color.value);
			}
		}
		else if(updatedColorId != null)
		{
			changeSwatch(updatedColorId);
		}
		else{
			changeSwatch();
		}
		
		if (typeof(newSizeCode) !== 'undefined' && typeof(newSkuId) !== 'undefined'){
		  	//alert(newSizeCode + "::"+newSkuId);
			setDetailsSelectedSize(newSizeCode, newSkuId)
		}
		if(typeof(newCommerceItemId) !== 'undefined' ){
		  	aqv_selectedSku["commerceItemId"] = newCommerceItemId;
			changeAddToBagToUpdate();
		}
		
		showTopTab("essentials"); //reset so that essentials tab displays first always
		if (ie == true) {
		hideshowSelectTags(0); //pass boolean for hide or show
		}
		wrapperObj.style.display = "block";
		quickshop.style.display = "block";
		quickshopInner.style.display = "block";
		quickshopMiddle.style.display = "block";

		// hide snapshot button
		over(false);
		checkForBtn();	
	}
	}else{
		//launchQuickshop(styleNum, updatedColorId);
		//return;
	}
	}catch(e){
		console.log("launchQuickshop:"+e);
	}
}

function changeAddToBagToUpdate(){
  	var atb = $$('#addtobag a')[0];
	atb.href="javascript:updateCommerceItem();";
	atb.innerHTML="update";
}

function updateCommerceItem(){
  if (co){
	    if (getSelectedProdId() === ""){
			showErrorMessage("Sorry there was a problem updating item. Please refresh the page & attempt to add to bag again.");
			return;
		}
		else if(getSelectedSkuId() === ""){
			if(getSelectedColorCode() === ""){
				showErrorMessage("Sorry there was a problem updating item. You currently have no color selected. Please refresh the page & attempt to add to bag again.");
				return;
			}else if(getSelectedSizeCode() === ""){
				showErrorMessage("Please select a size before attempting to update your item.");
				//$('snapSizes').style.border = "2px solid #8c1410";
				return;
			}
		}
	    co.updateCommerceItem(aqv_selectedSku["commerceItemId"], $("snapQuantity").value, aqv_selectedSku["skuId"],oldQty); 
        hideQuickshop();
   }
}

// show or hide select tags -- FOR IE6
function hideshowSelectTags(showorhide,wishlist)
{
		var nAgt = navigator.userAgent;
		var fullVersion  = ''+parseFloat(navigator.appVersion); 
		var verOffset,ix;
		
		// In MSIE, the true version is after "MSIE" in userAgent
		if ((verOffset=nAgt.indexOf("MSIE"))!=-1) {
		 fullVersion = nAgt.substring(verOffset+5);
		}
		// trim the fullVersion string at semicolon/space if present
		if ((ix=fullVersion.indexOf(";"))!=-1) fullVersion=fullVersion.substring(0,ix);
		if ((ix=fullVersion.indexOf(" "))!=-1) fullVersion=fullVersion.substring(0,ix);
		
		var majorVersion = parseInt(''+fullVersion,10);
		if (isNaN(majorVersion)) {
		 fullVersion  = ''+parseFloat(navigator.appVersion); 
		 majorVersion = parseInt(navigator.appVersion,10);
		}
		
		if (majorVersion == 6) //ie6 only
		{
			if (showorhide == 0)
				var showhidecss = "hidden";
			else if (showorhide == 1)
				var showhidecss = "visible";
			
			var selectstuff = document.getElementsByTagName("select");
			for (var i = 0;i<selectstuff.length;i++)
			{
				if ((wishlist==1 && i >0 && i < 3) || wishlist==null)
				{
					selectstuff[i].style.visibility = showhidecss;
				}
			}
		}
}

// close snapshot
function hideQuickshop() {
	//setCMPageElemId("Close");
	// make sure that snapshot is not in the process of adding to bag
	if (!aqv_processing) {
		var wrapperObj = $("quickshopWrapper");
		var snapshot = $("quickshop");
		var selectColorMenu = $("productColorSelection");
		if ((wrapperObj) && (snapshot)) {
			wrapperObj.style.display = "none";
			snapshot.style.display = "none";
			clearSelection();
			if (ie == true) {
			hideshowSelectTags(1); //pass boolean for hide or show
			}
			// redisplay color menu
//			selectColorMenu.style.display = "block";
		}
		// cleartimeout
		resetTimer();
	}
	
}

/*
	functions to create snapshot button on product thumbnail
*/
// create only one snapshot button for all products
function showQuickshopBtn(styleNum) {
  categoryQuickshopBtnClicked = true;
  
  if(quickshopEnabled && pageisloaded){	
		// remove previous buttons
		checkForBtn();
		resetButtonTimer();
		// check for object
		over(false);
		var obj = $("imageWrapper"+styleNum);
		// write to imageWrapper
		if (obj)		{
			if (obj.innerHTML.indexOf("quickshopBtn") < 0)			{
				// dynamically create anchor tag to launch
				var newanchor = document.createElement('a');
				newanchor.setAttribute("id", "quickshopBtn");
				newanchor.setAttribute("href", "javascript:launchQuickshop('" + styleNum + "')");
				if (!ie)				{
					newanchor.setAttribute("onmouseover", "javascript:over(true)");
					newanchor.setAttribute("onmouseout", "javascript:over(false)");
				}				else				{
					newanchor.onmouseover = function()					{ 
						over(true); 
					}
					newanchor.onmouseout = function()					{
						over(false);
					}
				}
				var sometext = document.createTextNode('');
				newanchor.appendChild(sometext);
				obj.appendChild(newanchor);
			}
			aqv_rolloverProd = styleNum;//setSelectedProdId(styleNum);
		}
	}
  else{
    //console.log('quickshop is disabled');
  }
}

// boolean variable tracking mouseover/mouseout state of snapshot button
function over(bool) {
	aqv_overButton = bool;
}

// hide snapshot executes on a 200th sec delay
function hideQuickshopBtn() {
	
    var obj = $('quickshopBtn');
	if(obj){
		aqv_buttonTimer = setTimeout("checkForBtn()", 200);	
	}
}

// add snapshot button only once
function checkForBtn() {
	var childObj = $("quickshopBtn");
	var obj = $("imageWrapper"+aqv_rolloverProd);
	if ((childObj) && (obj) && (aqv_rolloverProd != null) && (!aqv_overButton)) {
		try {
			obj.removeChild(childObj);
		} catch (e)	{
			childObj.parentNode.removeChild(childObj);
		}
	} else {
		resetButtonTimer();
	}
	// fix ie6 select bug
	this.focus();
}

// clear snapshot button timer
function resetButtonTimer() {
	clearTimeout(aqv_buttonTimer);
	aqv_buttonTimer = null;
}

function replaceHtmlEntities(string) {
	var newstring = string.replace(/&gt;/g, ">");
	return newstring.replace(/&lt;/g, "<");
}

/* 
	ajax add to bag functions
*/
// add to cart
function addToCart() {
	/*
		make sure user cannot hit add to bag more than once until 
		initial add to bag request has been processed
	*/
	if ((!aqv_processing) && ($('qsmessage'))) {
		//setCMPageElemId("Add to Bag");
		// set boolean flag to disable all other events while aqv_processing
		aqv_processing = true;
		// disable checkout button, links, and drop down menus
		disableContent();
		// hide message and reset fade timers
		resetTimer();
		// check current cart count
		//aqv_currentItemCount = getCartItemCount();
		// display aqv_processing message
		showTopTab("essentials"); //reset so that essentials tab displays
		$('qsmessage').innerHTML = "Processing ...";
		$('qsmessage').style.background = "#eeeeee";
		$('qsmessage').style.display = "block";
		
		if (getSelectedProdId() === ""){
			showErrorMessage("Sorry there was a problem adding to bag. Please refresh the page & attempt to add to bag again.");
			return;
		}
		else if(getSelectedSkuId() === ""){
			if(getSelectedColorCode() === ""){
				showErrorMessage("Sorry there was a problem adding to bag. You currently have no color selected. Please refresh the page & attempt to add to bag again.");
				return;
			}else if(getSelectedSizeCode() === ""){
				showErrorMessage("Please select a size before attempting to add to bag.");
				//$('snapSizes').style.border = "2px solid #8c1410";
				return;
			}
		}
		// format uri to post
		//var url = "/anthro/catalog/common/snapshot_addtocart.jsp";
		var url="/anthro/hws/addToBagAjax.jsp"
		// submit ajax call to jsp + return messaging
		var qstring = getSelectionURL();
		if (qstring.length > 0) {
			url += qstring+"&tstmp="+Number(new Date());
			new Ajax.Request(url, {
				method: 'get',
				onSuccess: function(transport) {
			    	// update cart quantity
			    	updateCartCount();
			    	// check cart item count innerHTML
			    	//var curCount = getCartItemCount();
			    	// display success message
					
					var formatmsg = transport.responseText;
					formatmsg = formatmsg.replace(/\+/g, " ");
					formatmsg = formatmsg.replace(/%27/g, "'");
					formatmsg = formatmsg.replace(/%26/g, "&");
					formatmsg = formatmsg.replace(/&%2346/g, ".");
					formatmsg = formatmsg.replace(/%3B/g, "");
					formatmsg = formatmsg.replace(/%3F/g, "?");
					formatmsg = formatmsg.replace(/%2C/g, ",");
			    	$('qsmessage').innerHTML = formatmsg;
			    	// fade message
					if (transport.responseText.indexOf("added to your bag") < 0) {
			    		timer = 500;
			    		$('qsmessage').style.background = "#8c1410";
			    		$('qsmessage').style.color = "#fff";
						cmCreatePageviewTag("Quickshop - Add To Bag Error", null, "Quickshop"); 

			    		// check current cart item count
			    		//if (curCount > aqv_currentItemCount) {
			    			// add messaging that additional items were added to your cart
			    			//var diff = curCount - aqv_currentItemCount;
			    			//$('qsmessage').innerHTML += diff + " items added to your cart.";
			    		//}
			    	} else {
				    	timer = 500;
			    		$('qsmessage').style.background = "#eeeeee";
						try{
					//console.log("cmCreateShopAction5Tag("+getSelectedProdId()+", "+$('snapTitle').innerHTML+", "+getQuantityInput()+","+$$('#snapPrice p')[0].innerHTML+", "+getCategoryIdFromURL()+","+ getSelectedColorCode()+","+ getSelectedSizeCode()+");");
						cmCreateShopAction5Tag(getSelectedProdId(), $('snapTitle').innerHTML, getQuantityInput(),$$('#snapPrice p')[0].innerHTML, getCategoryIdFromURL(),getSelectedColorCode(),getSelectedSizeCode());
						cmDisplayShop5s();
						}catch(e){
							alert("addtocart:"+e.name+":"+e.message);
							//console.log('e:'+e.name+ ":"+e.message);
							cmCreatePageviewTag("Quickshop - Add To Bag Error", null, "Quickshop"); 
			    		
						}
			    	}
			    	// fade message
			    	fadeMsg();
					
	
			    },
			    onFailure: function(transport) {
			    	// display ajax error message
			    	$('qsmessage').innerHTML = "Sorry, but the Quick Shop is unable to submit your order at this time. Please click the 'View Full Details' link to purchase from the product detail page.";
			    	$('qsmessage').style.background = "#8c1410";
					$('qsmessage').style.color = "#fff";
					cmCreatePageviewTag("Quickshop - Add To Bag Error", null, "Quickshop"); 
			    		
			    	// fade message
			    	timer = 750;
			    	fadeMsg();
			    }
			});
		} else {
			// display ajax error message
	    	$('qsmessage').innerHTML = "Sorry, but the Quick Shop is unable to submit your order at this time. Please click the 'View Full Details' link to purchase from the product detail page.";
	    	$('qsmessage').style.background = "#8c1410";
			$('qsmessage').style.color = "#fff";
			cmCreatePageviewTag("Quickshop - Add To Bag Error", null, "Quickshop"); 
			    		
	    	// fade message
	    	timer = 750;
	    	fadeMsg();
		}
	}
}	

// update cart item count
function updateCartCount(){
	//find the item container
	var itemDiv = $("header-account-shoppingbag-items");
	var randQuery = Number(new Date());
	if(itemDiv === null){
		return;
	}
	itemDiv.innerHTML="";
	//grab the latest from /common/shopping_cart_item_count.jsp
	new Ajax.Request('/anthro/common/shopping_cart_item_count.jsp?'+randQuery, {
			method:'get',
			onSuccess: function(transport){
				// return value
				itemDiv.innerHTML = transport.responseText;
          },
			onFailure: function(transport){ 
		    	// return 0
				}
		});
}

/*
	disable/enable page content while aqv_processing add to bag request
*/

// disables buttons, links, + drop down menus while aqv_processing add to bag request
function disableContent() {
	try {
		var arr = new Array("snapColors","snapSizes","snapQuantity","addToBagBtn","checkoutBtn");
		for (var i=0; i<arr.length; i++) {
			if ($(arr[i])) {
				$(arr[i]).disabled = true;
			}
		}	
		$("viewFullDetails").disabled=true;
		$("continueShopping").disabled=true;
	} catch(e) {
		// alert(e);
	}
}

// enables buttons, links, + drop down menus after aqv_processing add to bag request
function enableContent() {
	try {
		var arr = new Array("snapColors","snapSizes","snapQuantity","addToBagBtn","viewFullDetails","checkoutBtn","continueShopping");
		for (var i=0; i<arr.length; i++) {
			if ($(arr[i])) {
				$(arr[i]).disabled = false;
			}
		}	
		$("viewFullDetails").disabled=false;
		$("continueShopping").disabled=false;
	} catch(e) {
		// alert(e);
	}
}

/*
	ajax response functions to display messaging
*/

// wait x number of secs before fading out message
function fadeMsg() {
	// fade message out
	msgtimer = setTimeout("fadeAway()",timer);
}

// decrements opacity by 1 until reaches 0
function fadeAway() {
	var ie = (document.all) ? true : false;
	if (msgtimer != null) {
		clearTimeout(msgtimer);
		msgtimer = null;
	}
	if (opac > 0) {
		// decrement var
		opac-=5;
		// update styles
		if (ie) {
			$('qsmessage').style.filter = "alpha(opacity=" + opac + ")";
		} else {
			$('qsmessage').style.opacity = opac/100;
		}
		// set timer
		fadetimer = setTimeout("fadeAway()",7);	
	} else {
		// reset timer
		resetTimer();
		// re-enable other event aqv_processing
		aqv_processing = false;
		enableContent();
	}	
}

// resets msg styles + fade timers + global var
function resetTimer() {
	clearTimeout(fadetimer);
	fadetimer = null;
	// reset display
	$('qsmessage').style.display = "none";
	// reset opacity
	if (ie) {
		$('qsmessage').style.filter = "alpha(opacity=100)";
	} else {
		$('qsmessage').style.opacity = 1.0;
	}
	// reset opac var
	opac = 100;
}


/*
	CoreMetrics functions
*/
function setCoreMetrics(styleNum, prodTitle, catID) { 
	//cmSetProduction();
	cmCreateProductviewTag(styleNum, prodTitle, catID);
}

/***************************************
     REMOTE QUICKSHOP FUNCTIONS
***************************************/
/* fetch our product data from the repository and return it in xml */
function getProductXML(productId, colorCode, newSizeCode, commerceItemId, qty, skuId){
	if(productId){
		try{
			var url='/anthro/quickview/xml-product.jsp?prodid='+productId;
			new Ajax.Request(url, { 
			  method:'get', 
			  onSuccess: function(transport){
				//console.log("returned success");
				var xml = transport.responseXML;
				if(xml.hasChildNodes()) {
				  createProductArray(xml, colorCode, newSizeCode, commerceItemId, qty, skuId);
				}else{ alert("getProductXML - Problem with XML transfer, connected successfully but no nodes returned");}
			  },
			  onFailure: function(transport){
			    alert("getProductXML - No response XML available from the xml-product.jsp");
			  }
		    });
		}catch (e){
			alert("getProductXML - "+productId+ ": " +e.name + "-"+e.message);
		}
	}
}

/* after we have an xml object - we'll parse it and store it in the arrays of the same format used by quickview */
function createProductArray(prodXML, colorCode, newSizeCode, newQty, newSkuId, newCommerceItemId){
	if(prodXML){
		try{
			var prodArray = new Array("title","price","url","description", "selectedColor", "colors","sizes","skus");
			prodArray["sizes"] = new Array();
			prodArray["colors"] = new Array();
			prodArray["skus"] = new Array();
			prodArray["selectedColor"] = "";
			var skusXML = prodXML.getElementsByTagName('Skus')[0];
			var sizesXML = prodXML.getElementsByTagName('Sizes')[0];
			
			var colorsXML = prodXML.getElementsByTagName('Colors')[0];
			var styleNum = prodXML.getElementsByTagName("StyleNum")[0].firstChild.nodeValue;
			
			prodArray["title"] = replaceHtmlEntities(prodXML.getElementsByTagName("DisplayName")[0].firstChild.nodeValue);
			prodArray["price"] = replaceHtmlEntities(prodXML.getElementsByTagName("Price")[0].firstChild.nodeValue);
			prodArray["url"] = prodXML.getElementsByTagName("Url")[0].firstChild.nodeValue;
			prodArray["description"] = replaceHtmlEntities(prodXML.getElementsByTagName("Description")[0].firstChild.nodeValue);
			
			//loop through sizes 
			for (var i=0; i<sizesXML.getElementsByTagName("Size").length; i++){
				var size = sizesXML.getElementsByTagName("Size")[i];
				var code = size.getElementsByTagName("Code")[0].firstChild.nodeValue;
				var name = size.getElementsByTagName("Name")[0].firstChild.nodeValue;
				var type = size.getElementsByTagName("Type")[0].firstChild.nodeValue;
				var sizeArr = new Array();
				sizeArr.push(name);
				sizeArr.push(code);
				sizeArr.push(type);
				prodArray["sizes"].push(sizeArr);
				
			}
			
			//add our colors & image views 
			for (var j=0; j<colorsXML.getElementsByTagName("Color").length; j++){
				var cco = colorsXML.getElementsByTagName("Color")[j];
				var cCode = cco.getElementsByTagName("Code")[0].firstChild.nodeValue;
				var cName = cco.getElementsByTagName("Name")[0].firstChild.nodeValue;
				var cViews = cco.getElementsByTagName("ImageViews")[0];
				var prodArray_color = new Array();
				for (var k=0; k<cViews.getElementsByTagName("ImageView").length; k++){
					var imgView = "";
					prodArray_color.push(cViews.getElementsByTagName("Code")[k].firstChild.nodeValue);
				}
				eval("uo"+styleNum+"_"+cCode+" = prodArray_color;");
				prodArray["colors"].push(new Array(cCode,cName,prodArray_color));
			}
			
			//finally let's add our skus
			for (var l=0; l<skusXML.getElementsByTagName("Sku").length; l++){
				var sku = skusXML.getElementsByTagName("Sku")[l];
				var skuId = sku.getAttribute("id");
				var avStatus = sku.getElementsByTagName("AvailabilityStatus")[0].firstChild.nodeValue;
				var avDate = sku.getElementsByTagName("AvailabilityDate")[0].firstChild.nodeValue;
				var colorId = sku.getElementsByTagName("Color")[0].getAttribute("id");
				var sizeId = sku.getElementsByTagName("Size")[0].getElementsByTagName("Name")[0].firstChild.nodeValue;
				prodArray["skus"].push(new Array(skuId, sizeId, colorId, avStatus, avDate));
			}
			
			eval("uo"+styleNum+" = prodArray");
			launchQuickshop(styleNum, colorCode, newSizeCode, newQty, newSkuId, newCommerceItemId);
			//setCMPageElemId();
			return prodArray;	
			
		}catch(e){
			alert("e:"+e.name+":"+e.message);
		}
	}
	else{ return "NOTHING";}
}

function setCMPageElemId(elem){
  if(quickshopEnabled){ // B segment
	  if(categoryQuickshopBtnClicked){ // category clicker
	      if(elem){
			  cmCreatePageElementTag(elem,"QUICKSHOP-A-CATEGORY");
		  }else{
			  cmCreatePageElementTag("Opened","QUICKSHOP-A-CATEGORY");
		  }
	  }else{
		  if(elem){
			  cmCreatePageElementTag(elem,"QUICKSHOP-A-LANDING");
		  }else{
			  cmCreatePageElementTag("Opened","QUICKSHOP-A-LANDING");
		  }
	  }
  }else{ // A segment
	  if(categoryQuickshopBtnClicked){
		   if(elem){
			  cmCreatePageElementTag(elem,"QUICKSHOP-B-CATEGORY");
		  }else{
			  cmCreatePageElementTag("Opened","QUICKSHOP-B-CATEGORY");
		  }
	  }else{
		  if(elem){
			  cmCreatePageElementTag(elem,"QUICKSHOP-B-LANDING");
		  }else{
			  cmCreatePageElementTag("Opened","QUICKSHOP-B-LANDING");
		  }
	  }	  
  }
  return;
}
function openDetailsPopup(productId, promoId, loc, colorCode, commerceItemId, sizeCode, qty, skuId) { 
     var elemTag;
	 
	 try{
		if(promoId){
			aqv_catid = promoId;
			//format the element tag
		if (loc){
		  elemTag = "F-" + productId + "-"+ loc;
		}else{
		  elemTag = "F-" + productId;}
		  //throw coremetrics element tag
		  cmCreatePageElementTag("'"+elemTag+"'","'"+promoId+"'");
		  //cmCreateManualLinkClickTag("'"+promoId+"'","'"+elemTag+"'","'"+promoId+"'");
	 	}
		if(qty !== null){
		 $("snapQuantity").value = qty;	
		 oldQty = qty;
		}
		
	 	getProductXML(productId, colorCode, sizeCode, qty, skuId, commerceItemId );
		
	}catch (e){
	  alert("openDetailsPopup - uncaught exception:" + e);
	}
	
}

/*try{
Event.observe(document,'dom:loaded',function(ev2){
 $$('#quickshop #extras-tab	a').each(function(x){
  x.observe('click', function(ev1){
	cmCreatePageElementTag("EXTRAS TAB","QUICKSHOP");						  
  });
 });
 $$('#quickshop #checkout a').each(function(x){
  x.observe('click', function(ev3){
	cmCreatePageElementTag("CHECKOUT BUTTON","QUICKSHOP");						  
  });
 });
 $$('#quickshop #fulldetailslink a').each(function(x){
  x.observe('click', function(ev4){
	cmCreatePageElementTag("VIEW FULL DETAILS LINK","QUICKSHOP");						  
  });
 });
 $$('#quickshop #facebook a').each(function(x1){
  x1.observe('click', function(ev5){
	cmCreatePageElementTag("FACEBOOK SHARE","QUICKSHOP");						  
  });
 });
 $$('#quickshop #twitter a').each(function(x2){
  x2.observe('click', function(ev6){
	cmCreatePageElementTag("TWITTER SHARE","QUICKSHOP");						  
  });
 });
});
}catch(e){
}*/
