﻿var basketId = "";
var objActivator;
var clientName = "";
var sales_url = "/sales/Basket/";
var cookieXpDays = 100; 

//Send an Async Requests to a url.
//parameters : itemid = the item id
//			 : obj = the sender
//			 : itemid = the item to send to basket
//			 : saleType = 1 : new, 2 : from rent (prp )
function Basket_AddItem_Async(itemid, obj, saleType, promotionId){	
	var id = "img_"+Math.round(Math.random()*1000000);
	objActivator = obj;
	
	//change add to cart image to wait mode:
	if(typeof(objActivator) != 'undifined' && objActivator != null){
		if (objActivator.childNodes[0].id != "" && objActivator.childNodes[0].id != "ready") return;

		if( objActivator.childNodes[0].src != undefined ){
			objActivator.childNodes[0].id = id;
			objActivator.childNodes[0].src = "images/buttons/wait.gif"; 
			objActivator.childNodes[0].alt = "Please wait..."; 
		}
		else{
			objActivator.childNodes[0].innerText = "אנא המתן...   ";
		}		
	}
	
	url = sales_url + 'Add.aspx';
	var parameters = 'itemid=' + itemid 					
					+ '&saleType=' + saleType
					+ '&imageId=' + id;
					
	if( promotionId != undefined && promotionId != 'undefined')
		parameters += '&promoid=' + promotionId
	
	window.setTimeout(function() { 
		document.Ajax.Request("GET", url, parameters, true, false, processReqChange);
	}, 1000);
}
//Send an Async Requests to a url.
//parameters : obj = the sender
//			 : parameters = the items parameters ( saleType, promotionid and itemid )
function Basket_AddBundleItems_Async(obj, parameters)
{	
	var id = "img_"+Math.round(Math.random()*1000000);
	objActivator = obj;
	if (objActivator.childNodes[0].id != "" && objActivator.childNodes[0].id != "ready") return;

	if( objActivator.childNodes[0].src != undefined ){
		objActivator.childNodes[0].id = id;
		objActivator.childNodes[0].src = "images/buttons/wait.gif"; 
		objActivator.childNodes[0].alt = "Please wait..."; 
	}
	else{
		objActivator.childNodes[0].innerText = "אנא המתן...   ";
	}		
	url = sales_url + 'Add.aspx';
	parameters += '&bundle=true&imageId=' + id;
	
	window.setTimeout(function() { 
		document.Ajax.Request("GET", url, parameters, true, false, processReqChange);
	}, 1000);
}
function ImagePostAdd(id)
{
	if( document.all[id] && document.all[id].src != undefined ){
		document.all[id].src = "images/buttons/add2cart.gif"; 
		document.all[id].alt = "Add to cart"; 
		document.all[id].id = "ready";	
	}
	else{
		objActivator.childNodes[0].innerText = "למכירה מהשכרה : ";
	}	
}
//Delegate for async requests 
function processReqChange(status) 
{
	var imageId = getNodeText(status.responseXML,".//ImageId");//status.responseXML.selectSingleNode(".//ImageId").text;
	
    // only if "OK"
    if (status.errorCode == 0) {
		var errorCode = getNodeText(status.responseXML,".//ErrorCode");
		if( errorCode != 0 )
		{
			alert( getNodeText(status.responseXML,".//ErrorMessage") );
			if(imageId != "")
				ImagePostAdd(imageId);
		}
		else
		{
			if( document.all[imageId] && document.all[imageId].src != undefined ){
				document.all[imageId].src = "images/buttons/nosaf.gif"; 
				document.all[imageId].alt = "Added to cart"; 
			}
			else if(objActivator){
				objActivator.childNodes[0].innerText = "נוסף בהצלחה...   ";
			}
			
			window.setTimeout(function() { 
				ImagePostAdd(imageId);
			},2500);
			document.location.href='/Sales/Basket/show.aspx';
		}
    } else {
		alert(status.reason);
	}
	return;
}
//Get xml string and returns an xmlDOM Object
function LoadXMLString(xmlString)
{
    var err
    var xmlObj = new ActiveXObject('Microsoft.XMLDOM')
    if (xmlObj == null) {
        alert('Error: Unable to create server resources.')
        return
    }
    xmlObj.async = false
    xmlObj.loadXML(xmlString)
    err = xmlObj.parseError
    if (err.errorCode != 0) { // error on load redirect to error page
		alert('Error loading XML: ' + err.reason)
	}
    return xmlObj
}

/*********************************/
/**************Ajax******************/
/*********************************/
document.Ajax = {
	getTransport: function() {
		return createXmlHttpObject();
		/*
		var transports = new Array(
				function() { return new XMLHttpRequest(); },
				function() { return new ActiveXObject("Msxml2.XMLHTTP"); }, 
				function() { return new ActiveXObject("Microsoft.XMLHTTP"); }
								);
		for (var i=0;i<transports.length;i++) {
			try {
				var x = transports[i]();
				return x; 
			} catch (e) {
			}
		}
		return false;
		*/
	},
	PleaseWait:false
}

document.Ajax.transport = document.Ajax.getTransport();

document.Ajax.transports = new Array();

document.Ajax.createTransport = function() {
	for (var i=this.transports.length-1;i>=0;i--) {
		if (this.transports[i].readyState == 4) return this.transports[i];
	}
	var position = this.transports.length;
	this.transports[position] = document.Ajax.getTransport();
	return this.transports[position];
}

document.Ajax.Request = function AjaxRequest(method, url, parameters, async, catchError, callback) {
	this.callback = callback;
	this.catchError = catchError;
	if (method == "GET") url += (url.match(/\?/) ? "&" : "?")+parameters;

	var transport = this.createTransport();
	transport.open(method, url, async);
	if (async) transport.onreadystatechange = function() { document.Ajax.HandleOnreadystatechange(transport); }; 
	if (method == "POST") transport.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
	
	transport.send((method == "POST") ? parameters : "");
	
	if (!async) this.HandleResponse(transport);
}

document.Ajax.HandleOnreadystatechange = function(transport) {
	if (transport.readyState == 4) {
		document.Ajax.HandleResponse(transport);
	}
}

document.Ajax.HandleResponse = function(transport) {
	var status = {errorCode:0, reason:"",responseText:"",responseXML:null};
	
	if (transport.status != 200) {
		status.errorCode = "-1";
		status.reason = transport.status+" - "+transport.statusText;
	} else {
		if (transport.responseXML) {
			if (transport.responseXML.parseError && transport.responseXML.parseError.errorCode != 0) {
				status.errorCode = transport.responseXML.parseError.errorCode;
				status.reason = transport.responseXML.parseError.reason;
			} else {
				var statusNode = getNode(transport.responseXML,".//status");//transport.responseXML.selectSingleNode(".//status");
				if (statusNode) {
					status.errorCode = statusNode.getAttribute("id");
					status.reason = statusNode.text ? statusNode.text : statusNode.textContent;
				}
			}
		}
	}
	status.responseText = transport.responseText;
	if (transport.responseXML && transport.responseXML.xml != "") status.responseXML = transport.responseXML;

	if (this.catchError && status.errorCode != 0) {
		alert(status.reason);
	}
	this.callback(status);
}

document.Ajax.Dispose = function() {
}
