/**************************************************************************************************************************
     Author              :      PA
     Version             :      1.0
     Date Created        :         
	   
     Change history      :
	
     Task/Bug                  Date(mm-dd-yyyy)       Author            Change Description	
   
     Trac 1680                 09-08-2009             HGolla            Code modified for creativeImageOverride, lead image functionality.
***************************************************************************************************************************/
var colorList = new Array();

//string constants for scene7 images
var scene7Url = "http://images.anthropologie.com/is/image/Anthropologie/";
var thumbSize = "?$redesign-thumb$";
//var scene7ImgSize = "?wid=300&hei=449";
var scene7ImgSize = "?$redesign-product-zoom$";
var scene7Zoom4x = "?$redesign-product-4x$";
var scene7Zoom10x = "?$product-10x$";
var openLargerImg = "?$redesign-openLarger$";
var loaded = false; 
var defaultView = "";
function addEvent(element, ev, handler) 
{
	var doHandler = function(e) {
		return handler(e||window.event);
	};
	if (element.addEventListener) { 
		element.addEventListener(ev, doHandler, false); 
	} else if (element.attachEvent) { 
		element.attachEvent("on" + ev, doHandler); 
	}
}


function addColor(pColorCode, pColorName, pProductImageURL){
	colorList.push(new Color(pColorCode, pColorName, pProductImageURL));
}

function getColor(pColorCode){
	for(var i=0;i<colorList.length;i++){
		if(colorList[i].colorCode == pColorCode){
			return colorList[i];
		}
	}
	return null;
}

function addView(pColorCode, pViewName, pViewURL){
	var color = getColor(pColorCode);
	if(color !== null){
		color.addView(pViewName, pViewURL);
	}
}

function getViewList(pColor){
	if(pColor !== null){
		return pColor.viewList;
	} else {
		return null;
	}	
}

function setViewer(pSku, viewCode){
	if (pSku === null){return false;}
	if(pSku.substr(0,4)!="http"){
		pSku = scene7Url+pSku;
	}
	//alert(defaultView);
	if(defaultView !== undefined){
	if(defaultView!==null && defaultView !== ""){
		if(productSelectorArray[0] !== undefined && productSelectorArray[0].productId !== undefined && productSelectorArray[0].colorList[0].colorCode !== undefined){
	  var newProductURL = scene7Url+productSelectorArray[0].productId+'_'+productSelectorArray[0].colorList[0].colorCode+'_'+defaultView;
	  pSku = newProductURL;
	}
		else{
	      var newProductURL = pSku.replace('_b','_'+defaultView+'');
		  pSku = newProductURL;
		}
	}
	}
	
	var viewerElement = getElement("zoomViewer");
	//check if it returned anything & there was a param passed in
	if (viewerElement !== null && pSku!== null){
		viewerElement.innerHTML="";
		var image = document.createElement("img");
		image.setAttribute("data-zoomsrc", pSku+scene7Zoom4x);
		image.setAttribute("data-zoomsrc2", pSku+scene7Zoom10x);
		image.setAttribute("src", pSku+scene7ImgSize);
		viewerElement.appendChild(image);
		var elemOpenLarger = getElement('openLarger');
		elemOpenLarger.setAttribute('href', pSku+"?$openLarger$");
		elemOpenLarger.setAttribute('title', '');
		MojoZoom.init();
		
	}
}

function altViewClickHandler(event){
	//clear all the other classes out there
	var altViewElement = $$("#alternateviewlist .chosen");
	altViewElement.each(function(el){
		el.className = "";
	});
	//add the selected class name to the clicked object
	var altView = Event.element(event);
	altView.addClassName('chosen');
}

function altViewAnchorClickHandler(event){
	//var element = Event.element(event);
	//setViewer(element.href);
	setViewer(this.href);
	return false;
}

function setAlternateViews(pColor){
	var viewList = getViewList(pColor);
	var altViewMain = getElement("alternateViews");
	var viewCode = new Array();	
	if(viewList!== null && viewList.length>0 && altViewMain!== null){		
		if (viewList.length==1){return false;}
		var altViewElement = getElement("alternateviewlist");
		altViewElement.innerHTML = "";
		for(var i=0;i<viewList.length;i++){
	        var code = getImageViewCode(viewList);
			var listItem = document.createElement("li");
			listItem.setAttribute("id", 'addlImg'+i);
			viewCode =	(viewList[i].viewURL).split('_');
			//create & set anchor element
			var anchorTag = document.createElement("a");
			anchorTag.setAttribute("href", scene7Url+viewList[i].viewURL);
			anchorTag.onclick = function (){
				setViewer(this.href);
				return false;
			};
			//create & set image element
			var image = document.createElement("img");
			image.setAttribute("src", scene7Url+viewList[i].viewURL+thumbSize); 
			image.setAttribute("alt", viewList[i].viewName); 
			image.setAttribute("id", 'addlImg'+i);
			
			//append the newly created elements
			anchorTag.appendChild(image);
			listItem.appendChild(anchorTag);
			Event.observe(image, 'click', altViewClickHandler);
			
			if(defaultView !== "" && productSelectorArray[0] !== undefined && productSelectorArray[0].productId !== undefined && productSelectorArray[0].colorList[0].colorCode !== undefined){
				if(productSelectorArray[0].productId+'_'+productSelectorArray[0].colorList[0].colorCode+'_'+defaultView === viewList[i].viewURL){
				  image.className = "chosen";
				}
				else{
				  image.className = "";
				}
			}
			else if (defaultView === "" && (viewCode[2] == code)){
			  image.className = "chosen";
			}
			
			altViewElement.appendChild(listItem);
		}

	} else {		
		altViewMain.style.display="none";
	}
	defaultView = "";
}



function setViewerWithColor(pColorCode){
	var color = getColor(pColorCode);
	var viewList = getViewList(color);
	var imageUrl = "";
	for(var i=0; i < viewList.length; i++){
        var viewCode =	(viewList[i].viewURL).split('_');
	    var code = getImageViewCode(viewList);
	    if (viewCode[2] == code){
	        imageUrl = viewList[i].viewURL
	    }
	}
	if(imageUrl == ""){
	   imageUrl = color.productImageURL;
	}
	if (!loaded){
		    var ev1 = new Event.observe(window, 'load', function(){
			setViewer(imageUrl);
			setAlternateViews(color);
		});
		loaded = true;
	} else{
		setViewer(imageUrl);
		setAlternateViews(color);
	} 
}

function setOpenLargerViewer(pSku){
	if (pSku===null){return false;}
	if(pSku.substr(0,4)!="http"){
		pSku = scene7Url+pSku;
	}
	var viewerElement = getElement("zoomViewer");
	//check if it returned anything & there was a param passed in
	if (viewerElement !== null && pSku!== null){
		viewerElement.innerHTML="";
		var image = document.createElement("img");
		image.setAttribute("src", pSku+openLargerImg);
		viewerElement.appendChild(image);
	}
}

function getImageViewCode(pViewList){
	var code = "";
	for(var i=0; i < pViewList.length; i++){
	   var viewCode =	(pViewList[i].viewURL).split('_'); 
	   if (typeof(isBigImage) != "undefined" && typeof(creativeImage) != "undefined" 
		                                     && isBigImage!= "" && viewCode[2] == creativeImage){
		   code=creativeImage;
		   break;
		}
		if(typeof(imageViewCode) != "undefined" && viewCode[2] == imageViewCode){
		   code=imageViewCode;
		}
	}

	if(code == ""){
	  code = "b";
	}
    
  return code;
  
}
