var DEBUG_AJAX=false;
function Ajax(bDebug){var bShowLoadingLayer=false;this.setLoadingLayer=function(bTurnOn,nPosX,nPosY){if(bTurnOn&&nPosX&&nPosY)if(typeof ID_AJAX_LOADING=="undefined"){var strHTML="<div id=ID_AJAX_LOADING style='position:absolute;display:none;top:"+nPosY+"px;left:"+nPosX+"px;'><table border=0><td bgcolor=red style='font-face:verdana;font-size:11px'>Loading...</td></table></div>";document.body.insertAdjacentHTML("afterBegin",strHTML)}bShowLoadingLayer=bTurnOn};this.sendRequest=function(strURL,arrData,
strMethod,strCallBackFunc,strRecvDataType,bSync){if(DEBUG_AJAX)oDebugWindow.printText("called sendRequest : "+"\n- URL : "+strURL+"\n- Method : "+strMethod+"\n- CallBack Function : "+strCallBackFunc+"\n- Receive Data Type : "+strRecvDataType+"\n- Sync Mode : "+(bSync?"true":"false"));if(strMethod)strMethod=strMethod.toUpperCase();if(!bSync)bSync=false;if(strRecvDataType)strRecvDataType=strRecvDataType.toUpperCase();var params=new Object;for(var key in arrData)if(Object.prototype.toString.call(arrData[key])==
"[object Array]")params[key]=arrData[key].toString();else params[key]=arrData[key];if(bShowLoadingLayer)try{document.all.ID_AJAX_LOADING.style.display=""}catch(e){}var retVal;$.ajax({type:strMethod,url:strURL,data:params,beforeSend:function(XMLHttpRequest){XMLHttpRequest.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");if(bShowLoadingLayer)try{document.all.ID_AJAX_LOADING.style.display="none"}catch(e){}},complete:function(XMLHttpRequest,textStatus){if(DEBUG_AJAX)oDebugWindow.printText("=*#*= Received "+
strRecvDataType+" Data =*#*= \n"+XMLHttpRequest.getAllResponseHeaders()+XMLHttpRequest.responseText)},success:function(data,textStatus){if(strRecvDataType=="JSON"){eval("var result = "+data);data=result}if(strCallBackFunc){if(DEBUG_AJAX)oDebugWindow.printText("XMLHTTP DATA RECEIVE OK & CallBackFunc "+strCallBackFunc+" call...");eval(strCallBackFunc)(data)}if(bSync)retVal=data},error:function(XMLHttpRequest,textStatus,errorThrown){if(DEBUG_AJAX)oDebugWindow.printText("XMLHTTP ERROR : "+XMLHttpRequest.status+
" - "+textStatus)},async:!bSync});return retVal};this.formSubmit=function(oForm,strCallBackFunc,strRecvDataType,bSync){if(!oForm||!oForm.action)return;var arrData=new Array;var strElementType;for(i=0;i<oForm.elements.length;i++){strElementType=oForm.elements.item(i).type;if(strElementType=="text"||strElementType=="hidden"||strElementType=="textarea"||strElementType=="password")arrData[oForm.elements.item(i).name]=oForm.elements.item(i).value;else if(strElementType=="radio"){if(oForm.elements.item(i).checked)arrData[oForm.elements.item(i).name]=
oForm.elements.item(i).value}else if(strElementType=="checkbox"){if(oForm.elements.item(i).checked){if(arrData[oForm.elements.item(i).name])arrData[oForm.elements.item(i).name]+=",";else arrData[oForm.elements.item(i).name]="";arrData[oForm.elements.item(i).name]+=oForm.elements.item(i).value}}else if(strElementType.indexOf("select")==0)for(j=0;j<oForm.elements.item(i).options.length;j++)if(oForm.elements.item(i).options[j].selected){if(arrData[oForm.elements.item(i).name])arrData[oForm.elements.item(i).name]+=
",";else arrData[oForm.elements.item(i).name]="";arrData[oForm.elements.item(i).name]+=oForm.elements.item(i).options[j].value}}return this.sendRequest(oForm.action,arrData,oForm.method,strCallBackFunc,strRecvDataType,bSync)}};
