/*
Lifecapture Interactive
Code: E.Talos
Date: 2008-01-12
Function:
Use xmlHttpRequest Object to update cart items without page reload.
*/

var xmlHttp;
var isBusy = false;
var ns4 = (document.layers);
var ie4 = (document.all && !document.getElementById);
var ie5 = (document.all && document.getElementById);
var ns6 = (!document.all && document.getElementById);

var optArray = new Array();

//optArray[0] = 'attr_opt_2'; //Size
//optArray[1] = 'attr_opt_3'; //Colour


if( GetXmlHttpObject() ){
	//AJAX Functionality is present... show AJAX_Controls.
	changeCSS('.AJAX_Controls','display','inline');
}

function buyNow(prodID,sID){

	var sXHR = 'mini';
	var sOptions = '';


	var addToCartImgID = 'add_to_cart_btn'; //'/shop/images/btn_addtocart_wait.gif';
	var addToCartImg;

	if(ns4){
		if(document.layers[addToCartImgID]){
			addToCartImg = document.layers[addToCartImgID];
		}
	}else if(ie4){
		if(document.all[addToCartImgID]){
			addToCartImg = document.all[addToCartImgID];
		}
	}else if(ie5 || ns6){
		if(document.getElementById(addToCartImgID)){
			addToCartImg = document.getElementById(addToCartImgID);
		}
	}

	addToCartImg.src = '/shop/images/btn_addtocart_wait.gif';


	xmlHttp=GetXmlHttpObject()
	{
		xmlHttp.onreadystatechange=buyNow_XHR;

		if(document.getElementById('miniCart') && document.getElementById('mainCart')){
		//request to update both boxes
			sXHR = 'mini_main';
		}else if (document.getElementById('mainCart')){
		//request to update only main cart box
			sXHR = 'main';
		}else if (document.getElementById('miniCart')){
		//request to update only mini cart box
			sXHR = 'mini';
		}

		//sOptions = getAllOptions();
		var sizeValue = '';
		var colourValue = '';
		
		if(document.getElementById('e_attr_opt_2').value){
			sizeValue = '&attr_opt_2='+document.getElementById('e_attr_opt_2').value;
		}
		
		if(document.getElementById('e_attr_opt_3').value){
			colourValue = '&attr_opt_3='+document.getElementById('e_attr_opt_3').value;
		}
		
		
		//make xhr object call
		var sURL = 'ajaxCart.php?f=buyNow' + '&sid=' + sID + '&xhr=' + sXHR + '&action=buy_now&products_id=' + prodID + sizeValue + colourValue + '&r=' + Math.random();

		xmlHttp.open('GET', sURL , true);

		isBusy = true;
		xmlHttp.send(null);
	}

	return false;
}

function buyNow_XHR(sID){
	if (xmlHttp.readyState==4){
	  var xmlDoc=xmlHttp.responseXML.documentElement;

	  if(document.getElementById('miniCart')){
		 document.getElementById('miniCart').innerHTML = xmlDoc.getElementsByTagName("miniCart")[0].childNodes[0].nodeValue;
	  }

	  var addToCartImgID = 'add_to_cart_btn'; //'/shop/images/btn_addtocart_wait.gif';
	var addToCartImg;

	if(ns4){
		if(document.layers[addToCartImgID]){
			addToCartImg = document.layers[addToCartImgID];
		}
	}else if(ie4){
		if(document.all[addToCartImgID]){
			addToCartImg = document.all[addToCartImgID];
		}
	}else if(ie5 || ns6){
		if(document.getElementById(addToCartImgID)){
			addToCartImg = document.getElementById(addToCartImgID);
		}
	}

	addToCartImg.src = '/shop/images/btn_addtocart.jpg';
	}
}


function updateCart(prodID,doAction,sID,aParam){

	var sOptions = '';
	xmlHttp=GetXmlHttpObject()
	xmlHttp.onreadystatechange=updateCart_XHR;

	//sOptions = getAllOptions();

	var sURL = 'ajaxCart.php?f=updateCart' + '&sid=' + sID + '&xhr=mini_main&action=' + doAction + '&cart_quantity=' + aParam + '&products_id=' + prodID + '&r=' + Math.random();

	xmlHttp.open('GET', sURL , true);

	xmlHttp.send(null);

	return false;

}


function updateCart_XHR(){

	if (xmlHttp.readyState==4){
	  var xmlDoc=xmlHttp.responseXML.documentElement;

	//update center shopping cart if available
	if(document.getElementById('mainCart') && xmlDoc.getElementsByTagName("mainCart")[0]){
		document.getElementById('mainCart').innerHTML = xmlDoc.getElementsByTagName("mainCart")[0].childNodes[0].nodeValue;
	}

	//update mini shopping cart box if available
	if(document.getElementById('miniCart') && xmlDoc.getElementsByTagName("miniCart")[0]){
		document.getElementById('miniCart').innerHTML = xmlDoc.getElementsByTagName("miniCart")[0].childNodes[0].nodeValue;
	}

  }
}


function getAllOptions(){

	var sOpt = '';
	//get all product attributes options
	for (var i=0;i<optArray.length;i++){
		if(getAttributeOption(optArray[i]) != -1){
			sOpt+='&' + optArray[i] + '=' + getAttributeOption(optArray[i]);
		}
	}

	return sOpt;
}

function getAttributeOption(optID){
//example: optID = 'attr_opt_3'
	var optValue = -1;

	if(ns4){
		if(document.layers[optID]){
			optValue = document.layers[optID];
		}
	}else if(ie4){
		if(document.all[optID]){
			optValue = document.all[optID];
		}
	}else if(ie5 || ns6){
		if(document.getElementById(optID)){
			optValue = document.getElementById(optID);
		}
	}

	if(optValue != -1){
		return optValue.options[optValue.selectedIndex].value;
	}else{
		return -1;
	}
}


//used for showing AJAX_Controls
function changeCSS(theClass,element,value) {
	var cssRules;
	if (document.all) {
		cssRules = 'rules';
	}
	else if (document.getElementById) {
	  cssRules = 'cssRules';
	 }
	for (var S = 0; S < document.styleSheets.length; S++){
		for (var R = 0; R < document.styleSheets[S][cssRules].length; R++) {
			if (document.styleSheets[S][cssRules][R].selectorText == theClass) {
				document.styleSheets[S][cssRules][R].style[element] = value;
			}
		}
	}
}