
function Ajax_GetXMLHttpRequest(){if(window.XMLHttpRequest){return new XMLHttpRequest();}else{if(window.Ajax_XMLHttpRequestProgID){return new ActiveXObject(window.Ajax_XMLHttpRequestProgID);}else{var progIDs=["Msxml2.XMLHTTP.5.0","Msxml2.XMLHTTP.4.0","MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP","Microsoft.XMLHTTP"];for(var i=0;i<progIDs.length;++i){var progID=progIDs[i];try{var x=new ActiveXObject(progID);window.Ajax_XMLHttpRequestProgID=progID;return x;}catch(e){}}}}
return null;}
function Ajax_CallBack(url,type,id,method,args,clientCallBack,clientCallBackArg,debugRequestText,debugResponseText,debugErrors,includeControlValuesWithCallBack,updatePageAfterCallBack){var x=Ajax_GetXMLHttpRequest();var result=null;if(!x){result={"value":null,"error":"NOXMLHTTP"};if(debugErrors){alert("error: "+result.error);}
if(clientCallBack){clientCallBack(result,clientCallBackArg);}
return result;}
x.open("POST",url?url:Ajax_DefaultURL,clientCallBack?true:false);x.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=utf-8");if(clientCallBack){x.onreadystatechange=function(){if(x.readyState!=4){return;}
if(debugResponseText){alert(x.responseText);}
result=Ajax_GetResult(x);if(debugErrors&&result.error){alert("error: "+result.error);}
if(updatePageAfterCallBack){Ajax_UpdatePage(result);}
clientCallBack(result,clientCallBackArg);delete x.onreadystatechange;x=null;}}
var encodedData="Ajax_CallBackType="+type;if(id){encodedData+="&Ajax_CallBackID="+id.split(":").join("_");}
encodedData+="&Ajax_CallBackMethod="+method;if(args){for(var argsIndex=0;argsIndex<args.length;++argsIndex){if(args[argsIndex]instanceof Array){for(var i=0;i<args[argsIndex].length;++i){encodedData+="&Ajax_CallBackArgument"+argsIndex+"="+encodeURIComponent(args[argsIndex][i]);}}else{encodedData+="&Ajax_CallBackArgument"+argsIndex+"="+encodeURIComponent(args[argsIndex]);}}}
if(updatePageAfterCallBack){encodedData+="&Ajax_UpdatePage=true";}
if(includeControlValuesWithCallBack&&document.forms.length>0){var form=document.getElementById(Ajax_FormID);for(var elementIndex=0;elementIndex<form.length;++elementIndex){var element=form.elements[elementIndex];if(element.name){var elementValue=null;if(element.nodeName=="INPUT"){var inputType=element.getAttribute("TYPE").toUpperCase();if(inputType=="TEXT"||inputType=="PASSWORD"||inputType=="HIDDEN"){elementValue=element.value;}else if(inputType=="CHECKBOX"||inputType=="RADIO"){if(element.checked){elementValue=element.value;}}}else if(element.nodeName=="SELECT"){if(element.multiple){elementValue=[];for(var i=0;i<element.length;++i){if(element.options[i].selected){elementValue.push(element.options[i].value);}}}else{elementValue=element.value;}}else if(element.nodeName=="TEXTAREA"){elementValue=element.value;}
if(elementValue instanceof Array){for(var i=0;i<elementValue.length;++i){encodedData+="&"+element.name+"="+encodeURIComponent(elementValue[i]);}}else if(elementValue){encodedData+="&"+element.name+"="+encodeURIComponent(elementValue);}
elementValue=null;}}
if(typeof form.__VIEWSTATE=="undefined"||form.__VIEWSTATE.value.length==0){encodedData+="&__VIEWSTATE=";}
if(typeof form.__EVENTTARGET=="undefined"||form.__EVENTTARGET.value.length==0){encodedData+="&__EVENTTARGET=";}}
if(debugRequestText){alert(encodedData.split("&").join("\n&"));}
x.send(encodedData);if(!clientCallBack){if(debugResponseText){alert(x.responseText);}
result=Ajax_GetResult(x);if(debugErrors&&result.error){alert("error: "+result.error);}
if(updatePageAfterCallBack){Ajax_UpdatePage(result);}}
delete x;return result;}
function Ajax_GetResult(x){var result={"value":null,"error":"BADRESPONSE"};try{result=eval("("+x.responseText+")");}catch(e){}
return result;}
function Ajax_FireEvent(eventTarget,clientCallBack,clientCallBackArg,includeControlValuesWithCallBack,updatePageAfterCallBack){var form=document.getElementById(Ajax_FormID);var eventTargetControl=null;if(form.__EVENTTARGET){var input=form.__EVENTTARGET;input.value=eventTarget;}else{var input=document.createElement("input");input.setAttribute("name","__EVENTTARGET");input.setAttribute("type","hidden");input.setAttribute("value",eventTarget);form.appendChild(input);form.__EVENTTARGET=input;}
Ajax_CallBack(null,"Ajax.Manager",null,"FireEvent",[],clientCallBack,clientCallBackArg,false,false,false,includeControlValuesWithCallBack,updatePageAfterCallBack);form.__EVENTTARGET.value="";}
function Ajax_UpdatePage(result){if(result.viewState){var form=document.getElementById(Ajax_FormID);form.__VIEWSTATE.value=result.viewState;}
if(result.controls){for(var id in result.controls){var control=document.getElementById("__"+id+"__");if(control){control.innerHTML=result.controls[id];}}}}