function ComponentArt_Callback(id)
{
	this.Id=id;
	this.DomElement=document.getElementById(id+'_div');
	this.Parameter=null;
};

ComponentArt_Callback.prototype.ReadData=function(qzau)
{
	return qzau.firstChild.nodeValue;
};

ComponentArt_Callback.prototype.Callback=function(param)
{
	
	if(this.Parameter!=param)
	{
		this.Parameter=param;
		var oParamObj=document.getElementById(this.Id+'_ParamField');
		if(oParamObj)
		{
			oParamObj.value=param;
		};
	}
	else if(this.IsDownLevel)
	{
		return false;
	};
	
	if(this.IsDownLevel)
	{
		if(!window.CallbackPostingBack)
		{
			setTimeout(this.Id+'.Postback();',300);
			window.CallbackPostingBack=true;
		};
		return false;
	};
	if(this.Cache)
	{
		var sContent=this.Cache[param];
		if(sContent)
		{
			this.ProcessContent(sContent);
			return true;
		};
	};
	if(this.CallbackInProgress)
	{
		return false;
	}
	else
	{
		this.CallbackInProgress=true;
	};
	if(this.ClientSideOnCallback)
	{
		this.ClientSideOnCallback(param);
	};
	if(this.LoadingPanelClientTemplate)
	{
		this.DomElement.innerHTML=this.LoadingPanelClientTemplate;
	};
	var url=this.CallbackPrefix,
		postData="Cart_"+this.Id+"_Callback_Param="+escape(param);
	if(this.Debug)
	{
		alert('Performing callback: '+param);
	};
	this.DoCallback(url,postData,param);
	return true;
};

ComponentArt_Callback.prototype.DoCallback=function(url,postData,param)
{
	var ajaxbox=this,
		xmlHttpRequest=false,
		qzzc;
	function qzAjj()
	{
		ajaxbox.CallbackInProgress=false;
		if(ajaxbox.ClientSideOnCallbackComplete)
		{
			ajaxbox.ClientSideOnCallbackComplete();
		};
	};
	function qzzs()
	{
		if(qzzc.readyState&&qzzc.readyState!=4&&qzzc.readyState!='complete')
		{
			return;
		};
		var responseText=qzzc.responseText;
		if(ajaxbox.Debug)
		{
			//if(responseText)
		//	{
				alert('Received content:\n'+responseText);
		//	};
		};
		if(xmlHttpRequest)
		{
			qzzc=qzzc.responseXML;
		};
		if(qzzc&&qzzc.documentElement)
		{
			var arData=qzzc.documentElement,
				sEncodedContent=ajaxbox.ReadData(arData),
				sContent=sEncodedContent.replace(/\$\$\$CART_CDATA_CLOSE\$\$\$/g,"]]>");
			if(ajaxbox.Cache)
			{
				ajaxbox.Cache[param]=sContent;
			};
			ajaxbox.ProcessContent(sContent);
		}
		else
		{
			alert('The data could not be loaded.');
		};
		qzAjj();
	};
	if(window.XMLHttpRequest)
	{
		xmlHttpRequest=true;
		var qzzc=new XMLHttpRequest();
		qzzc.onreadystatechange=qzzs;
		qzzc.open("POST",url,true);
		qzzc.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		qzzc.send(postData);
	}
	else if(document.implementation&&document.implementation.createDocument)
	{
		qzzc=document.implementation.createDocument("","",null);
		qzzc.onload=qzzs;
	}
	else if(document.all)
	{
		var qzac=this.Id+'_island',
			qzv=document.getElementById(qzac);
		if(!qzv)
		{
			qzv=document.createElement('xml');
			qzv.id=qzac;document.body.appendChild(qzv);
		};
		if(qzv.XMLDocument)
		{
			qzzc=qzv.XMLDocument;
			qzzc.onreadystatechange=qzzs;
		}
		else
		{
			return false;
		};
	}
	else
	{
		if(this.Postback)
		{
			this.Postback();
		};
		return false;
	};
	if(!xmlHttpRequest)
	{
		qzzc.async=true;
		try
		{
			qzzc.load(url+postData);
		}
		catch(ex)
		{
			qzAjj();
			alert("Data not loaded: "+(ex.message?ex.message:ex));
		};
	};
	return true;
};

ComponentArt_Callback.prototype.GetParameter=function(){if(this.Parameter){return this.Parameter;}else{var oParamObj=document.getElementById(this.Id+'_ParamField');if(oParamObj){this.Parameter=oParamObj.value;};};return this.Parameter;};ComponentArt_Callback.prototype.ProcessContent=function(sContent){var qzzv="",sProcessContent=sContent.toLowerCase();while(true){var iStartIndex=sProcessContent.indexOf("<script");if(iStartIndex<0){break;}else{var iStartScriptIndex=sProcessContent.indexOf(">",iStartIndex)+1,iEndScriptIndex=sProcessContent.indexOf("</scr"+"ipt>",iStartIndex);if(iEndScriptIndex>=iStartScriptIndex){if(iEndScriptIndex==iStartScriptIndex){var iStartFileNameIndex=sProcessContent.indexOf('src="',iStartIndex);if(iStartFileNameIndex>0){iStartFileNameIndex+=5;var iEndFileNameIndex=sProcessContent.indexOf('"',iStartFileNameIndex),sFileName=sContent.substring(iStartFileNameIndex,iEndFileNameIndex);if(sFileName.length>0){var scriptElement=document.createElement("script");scriptElement.setAttribute("type","text/javascript");scriptElement.setAttribute("src",sFileName);document.getElementsByTagName("head").item(0).appendChild(scriptElement);};};};var iEndIndex=iEndScriptIndex+9;if(iEndScriptIndex>iStartScriptIndex){var sScriptBlock=sContent.substring(iStartScriptIndex,iEndScriptIndex);qzzv+=sScriptBlock+"\n";};sContent=sContent.substring(0,iStartIndex)+sContent.substring(iEndIndex);sProcessContent=sProcessContent.substring(0,iStartIndex)+sProcessContent.substring(iEndIndex);};};};this.DomElement.innerHTML=sContent;if(qzzv.length>0){window.eval(qzzv);};};
	var ComponentArt_Callback_Loaded=true;

