
  var req;
  var responsecontainer;
  var ajax_EnableDebug=false;

  var pagerequestarray=new Array();
  var isRequesting=false;
  var ShowProgressBar=false;
  var AllowQueuingRequest=true;
  var NOIFRAMES=true;
  
 function HoldState()
 {
	var ResponseContainerObj;
	var url;
	var PostString;
 }
  
function initReq()
{
	if (window.XMLHttpRequest) {
		try { req = new XMLHttpRequest(); }
		catch (e) {}
	} else if (window.ActiveXObject) {
		try { req = new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (e) {
		try { req = new AciveXObject("Microsoft.XMLHTTP"); }
		catch (e) {}
		}
	}

 }
 
function ajax_SelfDestruct(Element)
{
	if (Element.parentNode)
	{
		Element.parentNode.removeChild(Element);
	}
}

 function processReqChange()
 {
	if (req.readyState==4)
	{
		//responsecontainer.innerHTML="";
		responsecontainer.innerHTML=req.responseText;
		
		if (ajax_EnableDebug==true)
			ajax_OpenWindowWithText(req.responseText);

		//responsecontainer.parentNode should be the ModalNode!
		
		try // try executing code!!!
		{
			var spanblocks=document.getElementsByName("ExecutableCode");
			for (var i=0;i < spanblocks.length;++i)
			{
				//spanblocks[i].onblur();
				eval(spanblocks[i].innerHTML);
				ajax_SelfDestruct(spanblocks[i]);
			}
		}
		catch(e)
		{
			alert(e);
		}
		
		//done. Now check for more requests
		if (pagerequestarray.length > 0 && AllowQueuingRequest==true)
		{
			isRequesting=false;
			GetPage(pagerequestarray[0].ResponseContainerObj,pagerequestarray[0].url,pagerequestarray[0].PostString);
			pagerequestarray.shift();
		}
		else
		{
			isRequesting=false;
		}
	}
 }
 
 function GetPage(responsecontainerobj,URL,poststring)
 {
	if (isRequesting==true)
	{
		if (AllowQueuingRequest==true)
		{
			var newrequest=new HoldState();
			newrequest.ResponseContainerObj=responsecontainerobj;
			newrequest.url=URL;
			newrequest.PostString=poststring;
			
			pagerequestarray.push(newrequest);
		}
	}
	else
	{
		isRequesting=true;
		if(req) 
 		{
 			req.abort();
		}
		req=null;
		initReq();
		responsecontainer=responsecontainerobj;
		//responsecontainer.innerHTML="";
		if (ShowProgressBar==true)
			responsecontainer.appendChild(CreateProgressBar());
		req.onreadystatechange = processReqChange;
		if (poststring.length==0)
			req.open("GET",URL,true);
		else
			req.open("POST",URL,true);
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		req.send(poststring);
	}
 }


 function GetPageWithHandler(responsehandler,URL,poststring,ResponseObj,usenormalhandlertoo)
 {
	if (isRequesting==true)
	{
		var newrequest=new HoldState();
		newrequest.ResponseContainerObj=ResponseObj;
		newrequest.url=URL;
		newrequest.PostString=poststring;
		pagerequestarray.push(newrequest);
	}
	else
	{
		isRequesting=true;
		if(req) 
 		{
 			req.abort();
		}
		req=null;
		initReq();
		if (ResponseObj!=null)
		{
			responsecontainer=ResponseObj;
			//responsecontainer.innerHTML="";
			if (ShowProgressBar==true)
				responsecontainer.appendChild(CreateProgressBar());
			if (usenormalhandlertoo!=null)
			{
				req.onreadystatechange = processReqChange;
				req.onreadystatechange += responsehandler;
			}
			else
			{
				req.onreadystatechange = responsehandler;
			}

		}
		else
		{
			req.onreadystatechange = responsehandler;
		}
		if (poststring.length==0)
			req.open("GET",URL,true);
		else
			req.open("POST",URL,true);
		req.setRequestHeader('Content-Type','application/x-www-form-urlencoded');
		req.send(poststring);
	}
 }


function CreateProgressBar()
{
	var img=document.createElement("img");
	img.style.position="absolute";
	img.style.left="40%";
	img.style.top="48%";
	img.style.height="4%";
	img.style.width="20%";
	img.src="Images/PleaseWait.gif";



	return img;
}

function ajax_GetPostArguments(Form)
{
	var output="";
	for (var i=0;i < Form.childNodes.length;++i)
	{
		try
		{
			if (Form.childNodes[i].tagName.toLowerCase()=="input")
			{
			//alert("processing input of "+Form.childNodes[i].name+"="+Form.childNodes[i].value);
			if (Form.childNodes[i].type=="checkbox")
				output+=Form.childNodes[i].name+"="+Form.childNodes[i].checked+"&";
			else			
				output+=Form.childNodes[i].name+"="+Form.childNodes[i].value+"&";
			}
			else
			if (Form.childNodes[i].tagName.toLowerCase()=="textarea")
			{
				//alert("processing input of "+Form.childNodes[i].name+"="+Form.childNodes[i].value);
				output+=Form.childNodes[i].name+"="+Form.childNodes[i].value+"&";
			}
			else
			if (Form.childNodes[i].tagName.toLowerCase()=="select")
			{
			//	alert("processing input of "+Form.childNodes[i].name+"="+Form.childNodes[i].selectedIndex);
				output+=Form.childNodes[i].name+"="+Form.childNodes[i].selectedIndex+"&";
			}
			else
			{
			//	alert("moving into "+Form.childNodes[i].tagName);
				output=output+ajax_GetPostArguments(Form.childNodes[i]);
			}
		}
		catch(e)
		{
			if (Form.childNodes[i])
			{
			//	alert("TryCatch Event...moving now into "+Form.childNodes[i].tagName);
				output=output+ajax_GetPostArguments(Form.childNodes[i]);
			}
				
		}
	}
	if (output.indexOf("undefined") > -1)
		return "";
	return output;
}


function ajax_setOpacity(Element,value)
{
    Element.style.opacity = value/10;
    Element.style.filter = 'alpha(opacity=' + value*10 + ')';
}

function ajax_myInfoType()
{
    var Form=null;
    var BackgroundNode=null;
    var HasIFrame=false;
}


function ajax_DoAJAXPopUp(doc,URL,postparameters,ResponseEvent,width,height,top,left,hidecontainer)
{
    //var Form=doc.forms[0];
    var Form=doc.body;
    var ModalNode = doc.createElement("span");
    var BackgroundNode = doc.createElement("span");
   
    Form.appendChild(BackgroundNode);

    BackgroundNode.style.zIndex=170;
    BackgroundNode.style.position="absolute";
    BackgroundNode.style.left="0px";
    BackgroundNode.style.top="0px";
    BackgroundNode.style.height="200%";
    BackgroundNode.style.width="100%";
    BackgroundNode.style.backgroundColor="gray";
    BackgroundNode.style.display="inline";
    BackgroundNode.innerHTML="<br>";

    ajax_setOpacity(BackgroundNode,6);
   
    ModalNode.style.zIndex=170;
    ModalNode.style.display="inline";
    ModalNode.style.position="absolute";
    if (left!=null)
    {
		ModalNode.style.left=left;
		ModalNode.CustomLeft=left;
	}
	else
		ModalNode.style.left="20%";
    if (top!=null)
    {
		ModalNode.style.top=top;
		ModalNode.CustomTop=top;
	}
	else
		ModalNode.style.top="30%";
    if (height!=null)
	{
		ModalNode.style.height=height;
		ModalNode.CustomHeight=height;
	}
	else
		ModalNode.style.height="60%";
    if (width!=null)
	{
		ModalNode.style.width=width;
		ModalNode.CustomWidth=width;
	}
	else
		ModalNode.style.width="60%";

    ModalNode.myInfo=new ajax_myInfoType();
    ModalNode.myInfo.Form=Form;
    ModalNode.myInfo.BackgroundNode=BackgroundNode;
    if (hidecontainer==true)
	{
	}
	else
    {
		ModalNode.style.border="solid 1px black";
		ModalNode.style.backgroundColor="whitesmoke";
    }
    ModalNode.id="ModalNode";
    ModalNode.style.overflow="visible";
   
    //ModalNode.appendChild(contentspancontainer);

    var contentspancontainer=doc.createElement("span");
    ModalNode.appendChild(contentspancontainer);
    contentspancontainer.style.position="relative";
    //contentspancontainer.style.display="inline";
    contentspancontainer.style.left="0px";
    contentspancontainer.style.top="0px";
    contentspancontainer.style.width="100%";
    contentspancontainer.style.height="10px";
    contentspancontainer.style.overflow="visible";
    contentspancontainer.innerHTML=" ";

    GetPage(contentspancontainer,URL,postparameters);

    var spantag=doc.createElement("span");
    spantag.style.position="relative";
    spantag.style.display="inline";
    spantag.style.left="0px";
    spantag.style.top="0px";
    spantag.style.height="30px";

    var okbutton=doc.createElement("input");
    okbutton.type="button";
    okbutton.value="OK";
    okbutton.style.position="absolute";
    okbutton.style.left="130px";
    okbutton.style.top="2px";
    okbutton.style.width="60px";
    okbutton.style.height="24px";
    spantag.appendChild(okbutton);

 	ModalNode.appendChild(spantag);

    spantag.style.width="100%";
  
    if (hidecontainer==true)
	{
		spantag.style.width="0px";
		spantag.style.height="0px";
		spantag.style.overflow="hidden";
		spantag.style.display="none";
	}
	
    ModalNode.okbutton=okbutton;
    ModalNode.TextResponse="";

    ModalNode.style.overflow="visible";
	if (ajax_IsIE6orOlder())
	{
		ajax_EncapsulateWithAnIFrame(doc,ModalNode);
	}

    okbutton.onclick=function(){return ajax_ReturnAJAXPopUp(ModalNode,true,ResponseEvent);};
    Form.appendChild(ModalNode);
}


function setOpacity(Element,value)
{
    Element.style.opacity = value/10;
    Element.style.filter = 'alpha(opacity=' + value*10 + ')';
}

function myInfoType()
{
    var Form=null;
    var BackgroundNode=null;
}

function ajax_DoAlert(doc,s_caption,s_message)
{
    var HeaderBackgroundColor="LightSkyBlue";
    var OtherBackgroundcolor="whitesmoke";
    //var Form=doc.forms[0];
    var Form=doc.body;
    var ModalNode = doc.createElement("span");
    var BackgroundNode = doc.createElement("span");
   
    Form.appendChild(BackgroundNode);
    Form.appendChild(ModalNode);

    BackgroundNode.style.zIndex=170;
    BackgroundNode.style.position="absolute";
    BackgroundNode.style.left="0px";
    BackgroundNode.style.top="0px";
    BackgroundNode.style.height="100%";
    BackgroundNode.style.width="100%";
    BackgroundNode.style.backgroundColor="gray";
    BackgroundNode.style.display="inline";
    BackgroundNode.innerHTML="<br>";

    setOpacity(BackgroundNode,6);
   
    ModalNode.style.zIndex=170;
    ModalNode.style.display="inline";
    ModalNode.style.position="absolute";
    ModalNode.style.left="20%";
    ModalNode.style.top="30%";
    ModalNode.style.height="150px";
    ModalNode.style.width="400px";

    ModalNode.myInfo=new myInfoType();
    ModalNode.myInfo.Form=Form;
    ModalNode.myInfo.BackgroundNode=BackgroundNode;
    //ModalNode.style.border="solid 1px black";
    //ModalNode.style.backgroundColor="whitesmoke";

  var Top=doc.createElement("b");
    Top.style.backgroundColor="transparent";
    Top.style.display="block";
 
    var Top1=doc.createElement("b");
    Top1.style.backgroundColor=HeaderBackgroundColor;
    Top1.style.display="block";
     Top1.style.height="1px";
    Top1.style.overflow="hidden";
   Top1.style.margin="0 5px";
    Top.appendChild(Top1);

   var Top2=doc.createElement("b");
    Top2.style.backgroundColor=HeaderBackgroundColor;
    Top2.style.display="block";
     Top2.style.height="1px";
    Top2.style.overflow="hidden";
   Top2.style.margin="0 3px";
    Top.appendChild(Top2);

   var Top3=doc.createElement("b");
    Top3.style.backgroundColor=HeaderBackgroundColor;
    Top3.style.display="block";
     Top3.style.height="1px";
    Top3.style.overflow="hidden";
   Top3.style.margin="0 2px";
    Top.appendChild(Top3);

   var Top4=doc.createElement("b");
    Top4.style.backgroundColor=HeaderBackgroundColor;
    Top4.style.display="block";
     Top4.style.height="2px";
    Top4.style.overflow="hidden";
   Top4.style.margin="0 1px";
    Top.appendChild(Top4);

    ModalNode.appendChild(Top);




    var HTML="<div style=\"position:relative;Top:0px;Left:0px;Width:400px;Height:24px;background-Color:"+HeaderBackgroundColor+";background-image:url('Images/button_ltblue.jpg');background-repeat:repeat-x;font-size:larger;font-weight:bold;\">"
    HTML+="&nbsp;&nbsp;"+s_caption+"\n";
    HTML+="</div>\n";
    HTML+="<div style=\"z-index:170;position:relative;Top:25px;Left:0px;Width:100%;color:black;\">&nbsp;"+s_message+"<br>&nbsp;</div><br>";
    var Header=doc.createElement("div");
    Header.innerHTML=HTML;
    Header.style.backgroundColor=OtherBackgroundcolor;
    Header.style.position="relative";

    ModalNode.appendChild(Header);
 //   ModalNode.innerHTML=HTML;

    var spantag=doc.createElement("div");
    ModalNode.appendChild(spantag);
    spantag.style.position="relative";
    spantag.style.display="block";
    spantag.style.left="0px";
    spantag.style.top="0px";
    spantag.style.width="100%";
    spantag.style.height="30px";
    spantag.style.textAlign="center";
    spantag.style.backgroundColor=OtherBackgroundcolor;
    //spantag.innerHTML="<br>";
   
    var okbutton=doc.createElement("input");
    okbutton.type="button";
    spantag.appendChild(okbutton);
    okbutton.value="OK";
    okbutton.style.position="relative";
    //okbutton.style.left="170px";
    okbutton.style.top="2px";
    okbutton.style.width="60px";
    okbutton.style.height="24px";
	okbutton.focus();
   
  	if (ajax_IsIE6orOlder())
	{
		ajax_EncapsulateWithAnIFrame(doc,ModalNode);
	}
   okbutton.onclick=function(){return ajax_ReturnAlert(ModalNode,true,null);};

  var Bottom=doc.createElement("b");
    Bottom.style.backgroundColor="transparent";
    Bottom.style.display="block";
 
    var Bottom1=doc.createElement("b");
    Bottom1.style.backgroundColor=OtherBackgroundcolor;
    Bottom1.style.display="block";
     Bottom1.style.height="2px";
    Bottom1.style.overflow="hidden";
   Bottom1.style.margin="0 1px";
    Bottom.appendChild(Bottom1);

   var Bottom2=doc.createElement("b");
    Bottom2.style.backgroundColor=OtherBackgroundcolor;
    Bottom2.style.display="block";
     Bottom2.style.height="1px";
    Bottom2.style.overflow="hidden";
   Bottom2.style.margin="0 2px";
    Bottom.appendChild(Bottom2);

   var Bottom3=doc.createElement("b");
    Bottom3.style.backgroundColor=OtherBackgroundcolor;
    Bottom3.style.display="block";
     Bottom3.style.height="1px";
    Bottom3.style.overflow="hidden";
   Bottom3.style.margin="0 3px";
    Bottom.appendChild(Bottom3);

   var Bottom4=doc.createElement("b");
    Bottom4.style.backgroundColor=OtherBackgroundcolor;
    Bottom4.style.display="block";
     Bottom4.style.height="1px";
    Bottom4.style.overflow="hidden";
   Bottom4.style.margin="0 5px";
    Bottom.appendChild(Bottom4);

    ModalNode.appendChild(Bottom);

}


function ajax_DoConfirm(doc,s_caption,s_message,ResponseEvent)
{
   //var Form=doc.forms[0];
    var Form=doc.body;
   var ModalNode = doc.createElement("span");
    var BackgroundNode = doc.createElement("span");
   
    Form.appendChild(BackgroundNode);
    Form.appendChild(ModalNode);

    BackgroundNode.style.zIndex=170;
    BackgroundNode.style.position="absolute";
    BackgroundNode.style.left="0px";
    BackgroundNode.style.top="0px";
    BackgroundNode.style.height="100%";
    BackgroundNode.style.width="100%";
    BackgroundNode.style.backgroundColor="gray";
    BackgroundNode.style.display="inline";
    BackgroundNode.innerHTML="<br>";

    setOpacity(BackgroundNode,6);
   
    ModalNode.style.zIndex=170;
    ModalNode.style.display="inline";
    ModalNode.style.position="absolute";
    ModalNode.style.left="20%";
    ModalNode.style.top="30%";
    ModalNode.style.height="150px";
    ModalNode.style.width="400px";

    ModalNode.myInfo=new myInfoType();
    ModalNode.myInfo.Form=Form;
    ModalNode.myInfo.BackgroundNode=BackgroundNode;
    ModalNode.style.border="solid 1px black";
    ModalNode.style.backgroundColor="whitesmoke";

    var HTML="<div style=\"position:absolute;Top:0px;Left:0px;Width:398px;Height:24px;background-image:url('Images/button_ltblue.jpg');background-repeat:repeat-x;font-size:larger;font-weight:bold;\">"
    HTML+="&nbsp;&nbsp;"+s_caption+"\n";
    HTML+="</div>\n";
    HTML+="<div style=\"z-index:170;position:absolute;Top:25px;Left:0px;Width:400px;Height:95px;color:black;\"><br>&nbsp;&nbsp;"+s_message+"<br><br></div>";

    ModalNode.innerHTML=HTML;

    var spantag=doc.createElement("span");
    ModalNode.appendChild(spantag);
    spantag.style.position="absolute";
    spantag.style.display="inline";
    spantag.style.left="0px";
    spantag.style.top="120px";
    spantag.style.width="100%";
    spantag.style.height="30px";
   
    var okbutton=doc.createElement("input");
    okbutton.type="button";
    spantag.appendChild(okbutton);
    okbutton.value="Yes";
    okbutton.style.position="absolute";
    okbutton.style.left="130px";
    okbutton.style.top="2px";
    okbutton.style.width="60px";
    okbutton.style.height="24px";
   
    var cancelbutton=doc.createElement("input");
    cancelbutton.type="button";
    spantag.appendChild(cancelbutton);
    cancelbutton.value="No";
    cancelbutton.style.position="absolute";
    cancelbutton.style.left="210px";
    cancelbutton.style.top="2px";
    cancelbutton.style.width="60px";
    cancelbutton.style.height="24px";
	
	okbutton.focus();

 	if (ajax_IsIE6orOlder())
	{
		ajax_EncapsulateWithAnIFrame(doc,ModalNode);
	}
    okbutton.onclick=function(){return ajax_ReturnConfirm(ModalNode,true,ResponseEvent);};
    cancelbutton.onclick=function(){return ajax_ReturnConfirm(ModalNode,false,ResponseEvent);};
}

function ajax_DoPrompt(doc,s_caption,s_message,DefaultValue,ResponseEvent)
{
   //var Form=doc.forms[0];
    var Form=doc.body;
   var ModalNode = doc.createElement("span");
    var BackgroundNode = doc.createElement("span");
   
    Form.appendChild(BackgroundNode);
    Form.appendChild(ModalNode);

    BackgroundNode.style.zIndex=170;
    BackgroundNode.style.position="absolute";
    BackgroundNode.style.left="0px";
    BackgroundNode.style.top="0px";
    BackgroundNode.style.height="100%";
    BackgroundNode.style.width="100%";
    BackgroundNode.style.backgroundColor="gray";
    BackgroundNode.style.display="inline";
    BackgroundNode.innerHTML="<br>";

    setOpacity(BackgroundNode,6);
   
    ModalNode.style.zIndex=170;
    ModalNode.style.display="inline";
    ModalNode.style.position="absolute";
    ModalNode.style.left="20%";
    ModalNode.style.top="30%";
    ModalNode.style.height="150px";
    ModalNode.style.width="400px";

    ModalNode.myInfo=new myInfoType();
    ModalNode.myInfo.Form=Form;
    ModalNode.myInfo.BackgroundNode=BackgroundNode;
    ModalNode.style.border="solid 1px black";
    ModalNode.style.backgroundColor="whitesmoke";


    var HTML="<div style=\"z-index:170;position:absolute;Top:0px;Left:0px;Width:400px;Height:24px;background-image:url('Images/button_ltblue.jpg');background-repeat:repeat-x;font-size:larger;font-weight:bold;\">"
    HTML+="&nbsp;&nbsp;"+s_caption+"\n";
    HTML+="</div>\n";
    HTML+="<div style=\"z-index:170;position:absolute;Top:25px;Left:0px;Width:400px;Height:65px;color:black;\"><br>&nbsp;&nbsp;"+s_message+"<br><br></div>";

    ModalNode.innerHTML=HTML;

    var Textspantag=doc.createElement("span");
    ModalNode.appendChild(Textspantag);
    Textspantag.style.position="absolute";
   // Textspantag.style.display="inline";
    Textspantag.style.left="0px";
    Textspantag.style.top="90px";
    Textspantag.style.width="100%";
    Textspantag.style.height="30px";
    Textspantag.style.zIndex=170;

    var TextResponseInput=doc.createElement("input");
    TextResponseInput.type="text";
    Textspantag.appendChild(TextResponseInput);
    TextResponseInput.value=DefaultValue;
    TextResponseInput.style.position="absolute";
    TextResponseInput.style.left="20px";
    TextResponseInput.style.top="2px";
    TextResponseInput.style.width="360px";
    TextResponseInput.style.height="24px";

    var spantag=doc.createElement("span");
    ModalNode.appendChild(spantag);
    spantag.style.position="absolute";
  //  spantag.style.display="inline";
    spantag.style.left="0px";
    spantag.style.top="120px";
    spantag.style.width="100%";
    spantag.style.height="30px";
    spantag.style.zIndex=170;
   
    var okbutton=doc.createElement("input");
    okbutton.type="button";
    spantag.appendChild(okbutton);
    okbutton.value="OK";
    okbutton.style.position="absolute";
    okbutton.style.left="130px";
    okbutton.style.top="2px";
    okbutton.style.width="60px";
    okbutton.style.height="24px";
   
    var cancelbutton=doc.createElement("input");
    cancelbutton.type="button";
    spantag.appendChild(cancelbutton);
    cancelbutton.value="Cancel";
    cancelbutton.style.position="absolute";
    cancelbutton.style.left="210px";
    cancelbutton.style.top="2px";
    cancelbutton.style.width="60px";
    cancelbutton.style.height="24px";

	TextResponseInput.select();

 	if (ajax_IsIE6orOlder())
	{
		ajax_EncapsulateWithAnIFrame(doc,ModalNode);
	}
    okbutton.onclick=function(){return ajax_ReturnPrompt(ModalNode,true,TextResponseInput.value,ResponseEvent);};
    cancelbutton.onclick=function(){return ajax_ReturnPrompt(ModalNode,false,TextResponseInput.value,ResponseEvent);};
}

function ajax_ReturnAlert(ModalNode,Result,ResponseEvent)
{
    try
    {
        ajax_setOpacity(ModalNode,3);
		try
		{
	       ResponseEvent(Result);
		}
		catch (e2)
		{
		}
        ModalNode.myInfo.Form.removeChild(ModalNode.myInfo.BackgroundNode);
        ModalNode.myInfo.Form.removeChild(ModalNode);
        return Result;
    }
    catch(e)
    {
        return false;
    }
}

function ajax_ReturnConfirm(ModalNode,Result,ResponseEvent)
{
    try
    {
        setOpacity(ModalNode,3);
		try
		{
	       ajax_ResponseEvent(Result);
		}
		catch (e2)
		{
		}
        ModalNode.myInfo.Form.removeChild(ModalNode.myInfo.BackgroundNode);
        ModalNode.myInfo.Form.removeChild(ModalNode);
        return Result;
    }
    catch(e)
    {
        return false;
    }
}

function ajax_ReturnPrompt(ModalNode,Result,TextResponse,ResponseEvent)
{
    try
    {
        ajax_setOpacity(ModalNode,3);
		try
		{
	       ajax_ResponseEvent(Result,TextResponse);
		}
		catch (e2)
		{
		}
        ModalNode.myInfo.Form.removeChild(ModalNode.myInfo.BackgroundNode);
        ModalNode.myInfo.Form.removeChild(ModalNode);
        return Result;
    }
    catch(e)
    {
        return false;
    }
}


function ajax_IsIE6orOlder()
{
	if (window.XMLHttpRequest) 
	{
		// IE 7, mozilla, safari, opera 9
		return false;
	} else 
	{
		// IE6, older browsers
		return true;
	}
}

function ajax_EncapsulateWithAnIFrame(doc,myObject)
{
	if (NOIFRAMES==true)
		return;
	var somespan=doc.createElement("span");
	somespan.style.top="0px";
	somespan.style.left="0px";
	somespan.style.width=myObject.style.width;
	somespan.style.height=myObject.style.height;
	somespan.style.zIndex="170";
    somespan.style.overflow="visible";
	somespan.style.position="absolute";
	
	for (i=0;i < myObject.childNodes.length;++i)
	{
		var count=myObject.childNodes.length;

		somespan.appendChild(myObject.childNodes[i]);
		try
		{
			if (count==myObject.childNodes.length)
				myObject.removeChild(myObject.childNodes[i]);
		}
		catch(e)
		{
		}
	}
	
	var theiframe=doc.createElement("iframe");
	theiframe.style.top="0px";
	theiframe.style.left="0px";
	theiframe.style.width="100%";
	theiframe.style.height="100%";
	theiframe.style.zIndex="169";
	theiframe.style.position="absolute";
	//theiframe.src="";
	
	myObject.appendChild(somespan);
	myObject.appendChild(theiframe);
	myObject.myInfo.HasIFrame=true;
}

function ajax_ReturnAJAXPopUp(ModalNode,Result,ResponseEvent)
{
    try
    {
    
        ajax_setOpacity(ModalNode,3);
		try
		{
	       ajax_ResponseEvent(Result,ModalNode.TextResponse);
		}
		catch (e2)
		{
		}
        ModalNode.myInfo.Form.removeChild(ModalNode.myInfo.BackgroundNode);
        ModalNode.myInfo.Form.removeChild(ModalNode);
        return Result;
    }
    catch(e)
    {
        return false;
    }
}

function ajax_CreateHiddenField(doc,FieldName,FieldValue,parentControl)
{
	var HiddenField=doc.createElement("input");
	HiddenField.type="hidden";
	HiddenField.name=FieldName;
	HiddenField.id=FieldName;
	HiddenField.value=FieldValue;
	try
	{
		if (parentControl!=null)
			parentControl.appendChild(HiddenField);
	}
	catch(e)
	{
	}
	return HiddenField;
}

function get_RadioListSelectedIndex(doc,Name)
{
	var RadioList=document.getElementsByName(Name);
	for (var i=0;i < RadioList.length;++i)
	{
		if (RadioList[i].checked==true)
			return i;
	}
	return -1;
	
}

function createContainerObj()
{
    var spantag=document.createElement("span");
    spantag.style.position="absolute";
    spantag.style.overflow="hidden";
    spantag.style.left="0px";
    spantag.style.top="0px";
    spantag.style.height="0px";
    spantag.style.width="0px";

	return spantag;
}

function UpdateDropDown(DropDown,URL)
{
	theDropDown=DropDown;
	try
	{
		if (UpdateTrue==null)
			UpdateTrue=true;
	}
	catch(e)
	{
		UpdateTrue=true;
	}
	if (UpdateTrue==true)
	{
		var PostString="Purpose=UpdateControl&"+theDropDown.name+"="+theDropDown.selectedIndex+"&";
		UpdateTrue=false;
		GetPageWithHandler(UpdateDropDown,URL,PostString);
		UpdateTrue=true;
	}
	else
	{
		try
		{
			if (req.readyState==4)
			{
				var temp=createContainerObj();
				temp.innerHTML=req.responseText;
				if (temp.childNodes[0].tagName.toLowerCase()=="select")
				{
					CopyDropDown(temp.childNodes[0],theDropDown);
					
				}
				theDropDown=null;
				UpdateTrue=null;
			}
		}
		catch(e)
		{
		}
	}
}

function CopyDropDown(dropdownA,dropdownB)
{
	dropdownB=dropdownA;
	//dropdownB.selectedIndex=dropdownA.selectedIndex;
}

function ajax_getScrollXY() {
  var scrOfX = 0, scrOfY = 0;
  if( typeof( window.pageYOffset ) == 'number' ) {
    //Netscape compliant
    scrOfY = window.pageYOffset;
    scrOfX = window.pageXOffset;NOIFRAMES
  } else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ) {
    //DOM compliant
    scrOfY = document.body.scrollTop;
    scrOfX = document.body.scrollLeft;
  } else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ) {
    //IE6 standards compliant mode
    scrOfY = document.documentElement.scrollTop;
    scrOfX = document.documentElement.scrollLeft;
  }
  return [ scrOfX, scrOfY ];
}


function ajax_LoadGallery(doc,ImageArray,CaptionArray,index,width,height,top,left,showcontainer,ResponseEvent)
{
	var URL="LoadImage.aspx";
    var Form=doc.forms[0];
    var ModalNode = doc.createElement("span");
    var BackgroundNode = doc.createElement("span");
   
    Form.appendChild(BackgroundNode);

    BackgroundNode.style.zIndex=170;
    BackgroundNode.style.position="absolute";
    BackgroundNode.style.left="0px";
    BackgroundNode.style.top="0px";
    BackgroundNode.style.height="200%";
    BackgroundNode.style.width="100%";
    BackgroundNode.style.backgroundColor="gray";
    BackgroundNode.style.display="inline";
    BackgroundNode.innerHTML="<br>";

    ajax_setOpacity(BackgroundNode,6);
   
    ModalNode.style.zIndex=170;
    ModalNode.style.display="inline";
    ModalNode.style.position="absolute";
    if (left!=null)
    {
		ModalNode.style.left=left;
		ModalNode.CustomLeft=left;
	}
	else
		ModalNode.style.left="20%";
	var scrolly=ajax_getScrollXY()[1];
    if (top!=null)
    {
		ModalNode.style.top=top;
		ModalNode.CustomTop=top;
	}
	else
		ModalNode.style.top="10%";
	if (scrolly > 0)
		ModalNode.style.top=(scrolly+30)+"px";
    if (height!=null)
	{
		ModalNode.style.height=height;
		ModalNode.CustomHeight=height;
	}
	else
		ModalNode.style.height="60%";
    if (width!=null)
	{
		ModalNode.style.width=width;
		ModalNode.CustomWidth=width;
	}
	else
		ModalNode.style.width="60%";

    ModalNode.myInfo=new ajax_myInfoType();
    ModalNode.myInfo.Form=Form;
    ModalNode.myInfo.BackgroundNode=BackgroundNode;
    if (showcontainer!=true)
	{
	}
	else
    {
		ModalNode.style.border="solid 1px black";
		ModalNode.style.backgroundColor="whitesmoke";
    }
    ModalNode.id="ModalNode";
    ModalNode.style.overflow="visible";
	ModalNode.ImageIndex=index;
	ModalNode.ImageArray=ImageArray;
	ModalNode.CaptionArray=CaptionArray;
    ModalNode.style.marginRight="auto";
    ModalNode.style.marginLeft="auto";

    var contentspancontainer=doc.createElement("div");
    ModalNode.appendChild(contentspancontainer);
    contentspancontainer.style.position="relative";
    //contentspancontainer.style.display="inline";
    contentspancontainer.style.left="0px";
    contentspancontainer.style.top="0px";
    //contentspancontainer.style.width="100%";
    //contentspancontainer.style.height="10px";
    contentspancontainer.style.overflow="visible";
    contentspancontainer.innerHTML=" ";

	var postparameters="ImageLoc="+ModalNode.ImageArray[ModalNode.ImageIndex]+"&";

	try
	{
		postparameters+="Caption="+ModalNode.CaptionArray[ModalNode.ImageIndex]+"&";
	}
	catch(e)
	{
		postparameters+="Caption="+"&";
	}

    GetPage(contentspancontainer,URL,postparameters);

    var spantag=doc.createElement("div");
    spantag.style.position="relative";
    //spantag.style.display="inline";
    spantag.style.left="0px";
    spantag.style.top="15px";
    spantag.style.height="34px";
    //spantag.style.width="100%";
    spantag.style.marginRight="auto";
    spantag.style.marginLeft="auto";
/*	spantag.style.backgroundColor="#333333";
	spantag.style.border="ridge 2px gray";
*/
	
    var leftbutton=doc.createElement("input");
    leftbutton.type="button";
	if (ModalNode.ImageIndex <= 0)
		leftbutton.disabled=true;
	else
		leftbutton.disabled=false;
    leftbutton.value="Left";

    leftbutton.style.position="relative";
    leftbutton.style.left="0px";
    leftbutton.style.top="2px";
    leftbutton.style.width="60px";
    leftbutton.style.height="24px";
    spantag.appendChild(leftbutton);

   var okbutton=doc.createElement("input");
    okbutton.type="button";
    okbutton.value="OK";
    okbutton.style.position="relative";
    okbutton.style.left="10px";
    okbutton.style.top="2px";
    okbutton.style.width="60px";
    okbutton.style.height="24px";
    spantag.appendChild(okbutton);

    var rightbutton=doc.createElement("input");
    rightbutton.type="button";
	if (ModalNode.ImageIndex >= ModalNode.ImageArray.length-1)
		rightbutton.disabled=true;
	else
		rightbutton.disabled=false;
    rightbutton.value="Right";
    rightbutton.style.position="relative";
    rightbutton.style.left="20px";
    rightbutton.style.top="2px";
    rightbutton.style.width="60px";
    rightbutton.style.height="24px";
    spantag.appendChild(rightbutton);

 	ModalNode.appendChild(spantag);

  
/*    if (showcontainer!=true)
	{
		spantag.style.width="0px";
		spantag.style.height="0px";
		spantag.style.overflow="hidden";
		spantag.style.display="none";
	}
*/	
    ModalNode.okbutton=okbutton;
    ModalNode.TextResponse="";

    ModalNode.style.overflow="visible";
	//if (ajax_IsIE6orOlder())
	//{
	//	ajax_EncapsulateWithAnIFrame(doc,ModalNode);
	//}

     rightbutton.onclick=function(){return CycleGalleryRight(ModalNode,leftbutton,rightbutton,contentspancontainer,URL);};
    leftbutton.onclick=function(){return CycleGalleryLeft(ModalNode,leftbutton,rightbutton,contentspancontainer,URL);};
   okbutton.onclick=function(){return ajax_ReturnAJAXPopUp(ModalNode,true,ResponseEvent);};
    Form.appendChild(ModalNode);
}

function CycleGalleryRight(ModalNode,leftbutton,rightbutton,contentspancontainer,URL)
{
	if (ModalNode.ImageIndex >= ModalNode.ImageArray.length-1)
		return;
	ModalNode.ImageIndex++;
	var postparameters="ImageLoc="+ModalNode.ImageArray[ModalNode.ImageIndex]+"&";

	try
	{
		postparameters+="Caption="+ModalNode.CaptionArray[ModalNode.ImageIndex]+"&";
	}
	catch(e)
	{
		postparameters+="Caption="+"&";
	}

    GetPage(contentspancontainer,URL,postparameters);
	if (ModalNode.ImageIndex <= 0)
		leftbutton.disabled=true;
	else
		leftbutton.disabled=false;
   rightbutton.type="button";
	if (ModalNode.ImageIndex >= ModalNode.ImageArray.length-1)
		rightbutton.disabled=true;
	else
		rightbutton.disabled=false;

}

function CycleGalleryLeft(ModalNode,leftbutton,rightbutton,contentspancontainer,URL)
{
	if (ModalNode.ImageIndex <= 0)
		return;
	ModalNode.ImageIndex--;
	var postparameters="ImageLoc="+ModalNode.ImageArray[ModalNode.ImageIndex]+"&";

	try
	{
		postparameters+="Caption="+ModalNode.CaptionArray[ModalNode.ImageIndex]+"&";
	}
	catch(e)
	{
		postparameters+="Caption="+"&";
	}

    GetPage(contentspancontainer,URL,postparameters);
	if (ModalNode.ImageIndex <= 0)
		leftbutton.disabled=true;
	else
		leftbutton.disabled=false;
   rightbutton.type="button";
	if (ModalNode.ImageIndex >= ModalNode.ImageArray.length-1)
		rightbutton.disabled=true;
	else
		rightbutton.disabled=false;

}


//this function shoud be useful for debugging
function ajax_OpenWindowWithText(param_Text)
{
	WindowHandle=window.open ("", "_blank", "height=480, width=800, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no");
	Headers="<html><head></head><body><p mode=\"wrap\"><xmp style=\"word-wrap: normal; word-break:break-all; WIDTH: 100%; HEIGHT: 100%\">";
	End="</xmp></p></body></html>";
	WindowHandle.document.write(Headers+param_Text+End);
	return WindowHandle;
}

function ajax_OpenExceptionWindow(param_Text)
{
	WindowHandle=window.open ("", "_blank", "height=480, width=800, toolbar=no, menubar=no, scrollbars=yes, resizable=yes, location=no, directories=no, status=no");
	WindowHandle.document.write(param_Text);
	return WindowHandle;
}


var escapeChars = new Array(";" , "/" , "?" , ":" ,
                            "@" , "&" , "=" , "+" ,
                            "$" , "," , "[" , "]",
                            "#", "!", "'", "(",
                            ")", "*");
                            
                            
var replaceChars = new Array("%3B" , "%2F" , "%3F" ,
                            "%3A" , "%40" , "%26" ,
                            "%3D" , "%2B" , "%24" ,
                            "%2C" , "%5B" , "%5D",
                            "%23", "%21", "%27",
                            "%28", "%29", "%2A");
                            
                            
function urlEncodePostData(data)
{
	return encodeURIComponent(data);
//	var changedData = escape(data);
//	for (var i=0;i < escapeChars.length;++i)
//	{
//		changedData.replace(escapeChars[i],replaceChars[i]);
//	}
//	
//	return changedData;
}