var ajaxRequestCollection = new Array();

function Ajax(requestId){
	this.id = requestId;
	this.elementId = "";
	this.request = null;
	this.response = null;
	this.url = null;
	this.message = "";
	this.method = "POST";
	this.async = true;
	this.sendRequest = function(){
		if(this.request!=null){
			this.request.open(this.method, this.url, this.async);
			this.request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
			this.request.setRequestHeader("Content-length", this.message.length);
			//this.request.setRequestHeader("Connection", "close");
			this.request.send(this.message);
		}
	}
	this.createRequest = function(){
		this.request = null;
		try{
			this.request = new XMLHttpRequest();// Firefox, Opera 8.0+, Safari
		}catch(e){
			try{
				this.request = new ActiveXObject("Msxml2.XMLHTTP");// Internet Explorer
			}catch(e){
				this.request = new ActiveXObject("Microsoft.XMLHTTP");// Internet Explorer
			}
		}
		return this.request;
	}
	ajaxRequestCollection[requestId] = this;
}

function removeChildNodes(element){
	if(element!=null){
		for(var i=element.childNodes.length;i>0;i--){
			element.removeChild(element.firstChild)
		}
	}
}
function removeNode(element){
	if(element!=null){
		element.parentNode.removeChild(element);
	}
}
function setAjaxStatus(elementId, imageSource, altValue){
	var rootElement = document.getElementById(elementId);
	if(rootElement!=null){
		removeChildNodes(rootElement)
		var imgElem = document.createElement("img");
			imgElem.setAttribute("id", "img_"+elementId);
			imgElem.setAttribute("src", imageSource);
			imgElem.setAttribute("alt", altValue);
			imgElem.setAttribute("title", altValue);
			imgElem.setAttribute("width", "16");
			imgElem.setAttribute("height", "16");
			imgElem.setAttribute("class", "pp_ajaxStatus");
			imgElem.className = "pp_ajaxStatus";
		rootElement.appendChild(imgElem);
	}
}
function onAjaxError(ajax) {
	var str = ajax.request.responseText;
	if (str.length > 2000) {
		alert(str.substr(str.length-2000,2000));
	} else {
		alert(str);
	}
	window.location.href = "login.asp";
}
function doSomethingElse3(){
	alert("doSomethingElse3");
}
function getAjaxContent(ajaxUrl, placeHolderId, ajaxImageId){
	document.getElementById(ajaxImageId).innerHTML = "<img src=\"partialContent/productDescriptions/images/ajaxLoader.gif\" alt=\"\" style=\"margin-top:10px;\" />";
	var ajax = new Ajax(placeHolderId);
	ajax.message = "";
	ajax.method = "GET";
	ajax.elementId = placeHolderId;
	ajax.createRequest();
	ajax.url = ajaxUrl+"&reqId="+new Date().getTime();
	ajax.request.onreadystatechange = function(){onAjaxResponseReady_getAjaxContent(placeHolderId);};
	ajax.sendRequest();
}
function onAjaxResponseReady_getAjaxContent(placeHolderId){
	var ajax = ajaxRequestCollection[placeHolderId];
	if(ajax.request.readyState == 4) {
		if(ajax.request.status == 200) {
			document.getElementById(ajax.elementId).innerHTML = ajax.request.responseText;
		}//else{
			//onAjaxError(ajax);
		//}
	}
}
// Simple generic function using GET request to get html output from .asp.,.html or any external web site into inner HTML of element 
function getHTML(id,sourceUrl){
		var ajax = new Ajax("getHTML");
		ajax.message = "";
		ajax.method = "GET";
		ajax.elementId = id;
		ajax.createRequest();
		ajax.url = sourceUrl;
		ajax.request.onreadystatechange = function(){onAjaxResponseReady_getHTML();};
		ajax.sendRequest();
}
function onAjaxResponseReady_getHTML() {
	var ajax = ajaxRequestCollection["getHTML"];
	if(ajax.request.readyState == 4) {
		if(ajax.request.status == 200) {
			document.getElementById(ajax.elementId).innerHTML = ajax.request.responseText;
		}else{
			onAjaxError(ajax);			
		}
	}
}

