//Product Page Functions //

var added=[];
var totalItems;


function selectThisOption(obj,id,num){
	var selectionName=obj.title;
	if (document.getElementById('d1')){
		if(id=='rFit'||id=='rSize'||id=='rColor'){
			if (id=='rFit') {var opt=document.getElementById('d1');}
			if (id=='rColor') {var opt=document.getElementById('d2');}
			if (id=='rSize') {var opt=document.getElementById('d3');}
			var li=opt.getElementsByTagName('li');
			document.getElementById(id).innerHTML=selectionName;
			var parentObj=obj.parentNode.parentNode.parentNode;
			parentObj.getElementsByTagName('b')[0].innerHTML=selectionName;
			for (i=0;i<parentObj.getElementsByTagName('li').length;i++){
				parentObj.getElementsByTagName('li')[i].className='';
			}
			obj.parentNode.className='selected';
		} else {
			var parentObj=obj.parentNode.parentNode.parentNode;
			parentObj.previousSibling.previousSibling.innerHTML=selectionName;
			parentObj.style.display="none";
			var b=document.getElementById(id);
			b.innerHTML=selectionName;
			var nextSibling=b.parentNode.nextSibling.nextSibling;
			var li=nextSibling.getElementsByTagName('li');
			for (i=0;i<li.length;i++){
				li[i].className='';
			}
			li[num].className='selected';
		}
	} else {
		document.getElementById(id).innerHTML=selectionName;
		var parentObj=obj.parentNode.parentNode.parentNode;
		var li=parentObj.getElementsByTagName('li');
		parentObj.getElementsByTagName('b')[0].innerHTML=selectionName;
		for (i=0;i<parentObj.getElementsByTagName('li').length;i++){ 
			parentObj.getElementsByTagName('li')[i].className='';
		}
		obj.parentNode.className='selected';
	}
}
// Force IE to know indexOffunction //
if(!Array.indexOf){
    Array.prototype.indexOf = function(obj, start){
        for(var i=(start||0); i<this.length; i++){
            if(this[i]==obj){
                return i;
            }
        }
    }
}

var pleaseSelect = 'Please make a selection to see product\'s availability.';
function addItem(item, catEntryId, stock,isStorePick){
	if(catEntryId == 0 || catEntryId=='undefined') {
		//alert(pleaseSelect);
		showErrorMsgPopUpBox(item,pleaseSelect,'Cart');
		return;
	}
	
	if(stock == 'false' && isStorePick =='false') {
		//alert('This item is out of stock');
		var mesg = 'This item is out of stock';
		showErrorMsgPopUpBox(item,mesg,'Cart');
		return;
	}
	if(document.getElementById('addedItems')){
		var addedItem=item.parentNode.parentNode.parentNode.id;
		var checkItemPrice = parseFloat(document.getElementById(addedItem+"_price").innerHTML.split("$")[1]);
		if(checkItemPrice == null || checkItemPrice == "" || isNaN(checkItemPrice) ){		
			//alert("Item cannot be added to cart");
			var mesg = 'Item cannot be added to cart';
			showErrorMsgPopUpBox(item,mesg,'Cart');
			return;
		}

		var itemQty=document.getElementById(addedItem+"_qty").value;
		var indexNum=added.indexOf(addedItem);
		if(itemQty==''){
			//alert('Please Enter Quantity');
			var mesg = 'Please Enter Quantity';
			showErrorMsgPopUpBox(item,mesg,'Cart');
		} else {
			if(addedItem==added[indexNum]){
				// Add Qty  //
				if(document.getElementById("qty"+indexNum)){
					var catEntryIndex = indexNum + 1;
					var qty=document.getElementById("qty"+indexNum)
					var qtyHidden = document.getElementById("quantityHidden_" + catEntryIndex);
					var catEntryHidden = document.getElementById("catEntryHidden_" + catEntryIndex);
					catEntryHidden.value = catEntryId;
					qtyHidden.value = document.getElementById(addedItem+"_qty").value;
					qty.innerHTML=document.getElementById(addedItem+"_qty").value;
					//updateTotal();
					//This is the new price from the main jsp
					var itemPrice=document.getElementById(addedItem+"_price").innerHTML;
					//This is the old price in the product actions side
					var priceActions = document.getElementById("price"+indexNum);
					priceActions.innerHTML = itemPrice;
					//The total is updated after the new changes have been updated into the product actions
					//side
					updateTotal();	

				}
				return false;
			} else {
				// add to array //
				//added.push(addedItem);
				var test = addedItem.split("p");
				var num = test[1];
				
				added[num] = addedItem;
				

				
				indexNum=added.indexOf(addedItem);
				// grab variables //
				var addHere=document.getElementById('addedItems');
				var itemName=document.getElementById(addedItem+"_title").innerHTML;
				if (document.getElementById(addedItem+"_selectFit")){
					var itemFit=document.getElementById(addedItem+"_fit").innerHTML;
				} else {itemFit="";}
				if (document.getElementById(addedItem+"_selectColor")){
					var itemColor=document.getElementById(addedItem+"_color").innerHTML;
				} else {itemColor="";}
				if (document.getElementById(addedItem+"_selectSize")){
					var itemSize=document.getElementById(addedItem+"_size").innerHTML;
				} else {itemSize="";}
				var itemPrice=document.getElementById(addedItem+"_qty").value;
				var itemPrice=document.getElementById(addedItem+"_price").innerHTML;
				// add new div //
				var newdiv = document.createElement('div');
				var divIdName = "added_"+indexNum;
				newdiv.setAttribute('id',divIdName);
				newdiv.innerHTML+=itemName;
				if (document.getElementById(addedItem+"_selectFit")){
					newdiv.innerHTML+="\n<br>fit: "+itemFit;
				} else {itemFit="";}
				if (document.getElementById(addedItem+"_selectColor")){
					newdiv.innerHTML+="<br>color: \n"+itemColor;
				} else {itemColor="";}
				if (document.getElementById(addedItem+"_selectSize")){
					newdiv.innerHTML+="<br>size: \n"+itemSize;
				} else {itemSize="";}
				newdiv.innerHTML+= "<br><br>\n<small id=\"price"+indexNum+"\" class=\"saveStory\">"+itemPrice+"</small>\n</div>\n";
				newdiv.innerHTML+= "<br><small>\nQty:<span id=\"qty"+indexNum+"\">"+itemQty+"</span></small> ";
				newdiv.innerHTML+="<a href=\"javascript:;\" onclick=\"removeItem("+indexNum+");\">remove</a>\n<br><br>\n<hr>\n";
				var catEntryIndex = indexNum + 1;
				newdiv.innerHTML+="<input id=\"catEntryHidden_" + catEntryIndex + "\" type=\"hidden\" name=\"catEntryId_" + catEntryIndex + "\" value=\"" + catEntryId + "\" />\n";
				newdiv.innerHTML+="<input id=\"quantityHidden_" + catEntryIndex + "\" type=\"hidden\" name=\"quantity_" + catEntryIndex + "\" value=\"" + itemQty + "\" />\n";
				addHere.appendChild(newdiv);
				// create msg node to indicate item was added //
				if(!document.getElementById('msg_'+indexNum)){
					var newMsg = document.createElement('div');
					newMsg.setAttribute('class','addedMsg');
					newMsg.setAttribute('id','msg_'+indexNum);
					newMsg.innerHTML="Item selected. Continue to select more items or click \"Add to Cart\" to add selected items to cart.\n";
					item.parentNode.parentNode.appendChild(newMsg);
				} else {
					document.getElementById('msg_'+indexNum).innerHTML="Item selected. Continue to select more items or click \"Add to Cart\" to add selected items to cart.\n";
				}
				updateTotal();
			}
		}
	}
	document.forms['addToCart'].numOfAddedItem.value = addedLength();
}

function removeItem(item){
	if(document.getElementById('addedItems')){
		
		var remove=added[item];
		
		/*var index=added.indexOf(remove);
		if (index==-1){index=0;}*/
		if(remove!=null){
			var d = document.getElementById('addedItems');
			var olddiv = document.getElementById("added_"+item);
			d.removeChild(olddiv);
			var m = document.getElementById('midCol');
			var addedMsg = document.getElementById("msg_"+item);
			addedMsg.innerHTML="";
			//added.splice(added.indexOf(remove),1);
			added[item]=null;
			updateTotal();
			flag = isAddedEmpty();
			if (flag){updateTotal('reset');}
		} else {
			return false;
		}
	}
	document.forms['addToCart'].numOfAddedItem.value = addedLength();
}

var updatePrice = function(id,saveStory){
	// change object price once a selection is made //
	var price=document.getElementById(id);
	price.innerHTML=saveStory;
}

var oldTotalValue;

//Returns true if the variable added has null values
function isAddedEmpty(){

	for(i=0;i<totalItems;i++){
		if(added[i] != null)
			return false;
	}
	return true;
}

//This returns the number of items selected by checking which of the array elements are not null
function addedLength(){
	var addedSize = 0;
	for(i=0;i<totalItems;i++){
		if(added[i] != null)
			addedSize+=1;
	}
	
	return addedSize;
}		
var updateTotal = function(r){
	var total=document.getElementById('total');
	if(!oldTotalValue){ oldTotalValue=total.innerHTML; }
	if (r=='reset'){
		total.innerHTML=oldTotalValue;
	} else {
		// update total //
		//var addedItems=document.getElementById('addedItems');
		//var span=addedItems.getElementsByTagName('span');
		var newTotal=0;
		for (var s=0;s<totalItems;s++){
			if (document.getElementById("qty"+s) && document.getElementById("price"+s)){
				var price=parseFloat(document.getElementById("price"+s).innerHTML.split("$")[1]);
				var qty=parseInt(document.getElementById("qty"+s).innerHTML);
				var itemTotal=(price*qty);
				newTotal+=itemTotal;
			} 
		}
		total.innerHTML="<b>Total Price:</b><br>\n"+"<b>$"+Math.abs(newTotal).toFixed(2)+"</b>\n";
	}
}

// SELECTION WIDGET CONTROLS //
function initSwatches(){
	if (document.getElementById("shoppingcart") || document.getElementById("softline") || document.getElementById("collection")){
		var ul=document.getElementsByTagName("ul");
		for(u=0;u<ul.length;u++){
			if(ul[u].className=="swatches"){
				var li=ul[u].getElementsByTagName("li");
				for(l=0;l<li.length;l++){
					li[l].onclick=selectSwatch;
				}
			}
			if(ul[u].className=="fitSelect"){
				var li=ul[u].getElementsByTagName("li");
				for(l=0;l<li.length;l++){
					li[l].onclick=selectFit;
				}
			}
			if(ul[u].className=="sizeSelect"){
				var li=ul[u].getElementsByTagName("li");
				for(l=0;l<li.length;l++){
					li[l].onclick=selectSize;
				}
			}
		}
	}
}
function selectSwatch(){
	var li=this.parentNode.getElementsByTagName("li");
	for(l=0;l<li.length;l++){
		li[l].className="";
	}
	this.className="selected";
	var img=this.parentNode.parentNode.getElementsByTagName("img");
	for(i=0;i<img.length;i++){
		if (img[i].name=="switch"){
			img[i].src=this.getElementsByTagName("img")[0].src;
		}
	}
	this.parentNode.parentNode.getElementsByTagName("b")[0].innerHTML=this.getElementsByTagName("img")[0].alt;
}
function selectFit(){
	var li=this.parentNode.getElementsByTagName("li");
	for(l=0;l<li.length;l++){
		li[l].className="";
	}
	this.className="selected";
	this.parentNode.parentNode.getElementsByTagName("b")[0].innerHTML=this.getElementsByTagName("b")[0].innerHTML;
}
function selectSize(){
	var li=this.parentNode.getElementsByTagName("li");
	for(l=0;l<li.length;l++){
		li[l].className="";
	}
	this.className="selected";
	if(this.getElementsByTagName("a")[0].innerText){
		//this.parentNode.parentNode.getElementsByTagName("b")[0].innerHTML=this.getElementsByTagName("a")[0].innerText;
	}else{
		//this.parentNode.parentNode.getElementsByTagName("b")[0].innerHTML=this.firstChild.text;
	}
}
addLoadEvent(initSwatches);
// Set up page to do multiple loads //
function addLoadEvent(func) {
	
	//start
	
	var a=document.getElementsByTagName('a');
		for (i=0;i<a.length;i++)
		{
			if (a[i].rel=='emailMe')
			{
				
				a[i].onclick = function (){
					mePop(this.getAttribute('info'),this.rel);
				};
			}
			
		}
	
	//end
		
}


