// JavaScript Document
function getBrowserObject(nameStr) {
	var ie  = (document.all);
	var ns4 = document.layers? true : false;
	var dom = document.getElementById && !document.all ? true : false;
	if (dom) {
		return document.getElementById(nameStr);
	} else if (ie) {
		return document.all[nameStr];
	} else if (ns4) {
		return document.layers[nameStr];
	}
}
function ajaxObject(url, callbackFunction) {
	var that=this;
	this.updating = false;
	this.abort = function() {    
		if (that.updating) {     
			that.updating=false;
			that.AJAX.abort();
			that.AJAX=null;
		}  
	}  
	this.update = function(passData,postMethod) {     
	if (that.updating) { return false; }    
	that.AJAX = null;                              
	if (window.XMLHttpRequest) {                    
		that.AJAX=new XMLHttpRequest();                  
	} else {                                        
		that.AJAX=new ActiveXObject("Microsoft.XMLHTTP");
	}                                                 
	if (that.AJAX==null) {                                   
		return false;
	} else {      
		that.AJAX.onreadystatechange = function() {          
			if (that.AJAX.readyState==4) {                       
				that.updating=false;                          
				that.callback(that.AJAX.responseText,that.AJAX.status,that.AJAX.responseXML);                  
				that.AJAX=null;                                                 
			}                                                            
		}                                                              
		that.updating = new Date();                                    
		if (/post/i.test(postMethod)) {        
			var uri=urlCall+'?'+that.updating.getTime();        
			that.AJAX.open("POST", uri, true);        
			that.AJAX.setRequestHeader("Content-type", "application/x-www-form-urlencoded");        
			that.AJAX.setRequestHeader("Content-Length", passData.length);        
			that.AJAX.send(passData);      
		} else {        
			var uri=urlCall+'?'+passData+'&timestamp='+(that.updating.getTime());         
			that.AJAX.open("GET", uri, true);                                     
			that.AJAX.send(null);                                               
		}                    
		return true;                                                 
	}                                                                             
}  
var urlCall = url;          
this.callback = callbackFunction || function () { };}


function ajaxAddToBasket(levelNav,prodID,freq){
	var pageURL = levelNav + '/code/code-add-to-basket.cfm';
	var oForm = document.forms['frm' + prodID];
	var qty = oForm.qty.value;
	var sku = oForm.skuid.value;
	var ajaxAdd = new ajaxObject(pageURL);
	var oQtyTop = getBrowserObject('cQty');
	var iCurQtyTop = parseInt(oQtyTop.innerHTML);
	ajaxAdd.callback = function(responseText,responseStatus){
		if(responseStatus=='200'){
			var aResponse = responseText.split('|');
			//alert(aResponse[0]);
			if(aResponse[2].length > 0){
				alert(aResponse[2]);
			}
			oQtyTop.innerHTML = iCurQtyTop + parseInt(aResponse[1]);
			new Effect.Highlight('product_' + prodID);
			new Effect.toggle('prodadded_' + prodID,'Appear');
			setTimeout("new Effect.toggle('prodadded_" + prodID +"','Appear');",2500);
			ajaxUpdateMiniCart(levelNav,prodID);
		}else{
			alert('Error!');
		}
	}
	ajaxAdd.update('&skuid=' + sku + '&qty=' + qty + '&prodID=' + prodID + '&freq=' + freq,'POST');
}

function addToRepeat(levelNav,skuID,customerID,thispage){
	var pageURL = '../code/code-AJAX-update-repeat-order.cfm';
	var ajaxAdd = new ajaxObject(pageURL);
	//alert(skuID);
	var qty = document.forms['frm_' + skuID].qty.value;
	ajaxAdd.callback = function(responseText,responseStatus){
		if(responseStatus=='200'){
			parent.ajaxUpdateRepeat(levelNav,customerID,thispage);
			new Effect.Highlight('product_' + skuID);
			new Effect.toggle('prodadded_' + skuID,'Appear');
			setTimeout("new Effect.toggle('prodadded_" + skuID +"','Appear');",2500);
			//parent.Shadowbox.close();
		}else{
			alert('Error!');
		}
	}
	//alert('&skuID=' + skuID + '&qty=' + qty + '&customerID=' + customerID);
	ajaxAdd.update('skuID=' + skuID + '&qty=' + qty + '&customerID=' + customerID,'GET');
}

function ajaxUpdateRepeat(levelNav,customerID,thispage){
	var pageURL = levelNav + '/code/code-AJAX-show-repeat-form.cfm';
	var ajaxAdd = new ajaxObject(pageURL);
	ajaxAdd.callback = function(responseText, responseStatus){
		if(responseStatus=='200'){
			getBrowserObject('repeatItems').innerHTML = responseText;
			new Effect.Highlight('repeatItems');
		}else{
			alert('Error occured. Error code - UPRFRM');
		}
	}
	ajaxAdd.update('customerID=' + customerID + '&thispage=' + thispage);
}

function addToVirtual(levelNav,skuID,virtualOrderID,thispage){
	var pageURL = '../code/code-AJAX-update-virtual-order.cfm';
	var ajaxAdd = new ajaxObject(pageURL);
	//alert(skuID);
	var qty = document.forms['frm_' + skuID].qty.value;
	ajaxAdd.callback = function(responseText,responseStatus){
		if(responseStatus=='200'){
			new Effect.Highlight('product_' + skuID);
			new Effect.toggle('prodadded_' + skuID,'Appear');
			parent.ajaxUpdateVirtual(levelNav,virtualOrderID,thispage);
			setTimeout("new Effect.toggle('prodadded_" + skuID +"','Appear');",2500);
		}else{
			alert('Error!');
		}
	}
	//alert('&skuID=' + skuID + '&qty=' + qty + '&virtualorderID=' + virtualOrderID);
	ajaxAdd.update('skuID=' + skuID + '&qty=' + qty + '&virtualorderID=' + virtualOrderID,'GET');
}

function ajaxUpdateVirtual(levelNav,voID,thispage){
	var pageURL = levelNav + '/code/code-AJAX-show-virtual-form.cfm';
	var ajaxAdd = new ajaxObject(pageURL);
	ajaxAdd.callback = function(responseText, responseStatus){
		if(responseStatus=='200'){
			getBrowserObject('virtualItems').innerHTML = responseText;
			new Effect.Highlight('virtualItems');
		}else{
			alert('Error occured. Error code - UPVFRM');
		}
	}
	ajaxAdd.update('virtualorderid=' + voID + '&thispage=' + thispage);
}
var globalProdID = '';

function ajaxAddToBasketPopup(levelNav,prodID){
	var pageURL = levelNav + '/code/code-add-to-basket.cfm';
	var oForm = document.forms['AddToCart'];
	var qty = oForm.qty.value;
	var sku = oForm.skuid.value;
	parent.globalProdID = prodID;
	var ajaxAdd = new ajaxObject(pageURL);
	ajaxAdd.callback = setParentCarts;
	ajaxAdd.update('&skuid=' + sku + '&qty=' + qty + '&prodID=' + prodID,'POST');
	return false;
}


function setParentCarts(responseText,responseStatus){
		var oQtyTop = parent.getBrowserObject('cQty');
		var iCurQtyTop = parseInt(oQtyTop.innerHTML);
		if(responseStatus=='200'){
			var aResponse = responseText.split('|');
			//alert(aResponse[0]);
			if(aResponse[2].length > 0){
				alert(aResponse[2]);
			}
			oQtyTop.innerHTML = iCurQtyTop + parseInt(aResponse[1]);
			parent.ajaxUpdateMiniCart(parent.globallevelNav,parent.globalProdID);
			getBrowserObject('popup_added_qty').innerHTML = document.forms['AddToCart'].qty.value;
			getBrowserObject('basketaddednotification').style.display = 'block';
			setTimeout("new Effect.toggle('basketaddednotification','Appear');",5000);
//			parent.Shadowbox.close();
		}else{
			alert('Error!');
		}	
}

function ajaxUpdateMiniCart(levelNav,prodID){
	var pageURL = levelNav + '/code/code-show-minibasket.cfm';
	var ajaxUpdate = new ajaxObject(pageURL);
	ajaxUpdate.callback = function(responseText,responseStatus){
		if(responseStatus=='200'){
			getBrowserObject('ajaxcart').innerHTML = responseText;
			//getBrowserObject('lineItem_' + prodID).style.display = "none";
			setTimeout("new Effect.Highlight('lineItem_" +  prodID + "')",250);
		}
	}
	
	ajaxUpdate.update('isCalledByAjax=true','POST');
}

function updateFromIframe(){
	setTimeout("new Effect.ScrollTo('ajaxcartHeading');",500);
	setTimeout("ajaxUpdateMiniCart(globallevelNav,globalProdID);",750);	
}
