// Cross-Browser XMLHttpRequest v1.2
// by Andrew Gregory
// Copyright 2005 PLPTFT, Daum Communications Corp.

var ajaxAPI={};ajaxAPI.callMethod=function(APIMethod,params,listener,urlroot,server){if(typeof APIMethod=='undefined'||APIMethod==null)
return false;debug("AJAX CALL API: "+APIMethod);var reqType=ajaxAPI.getReqType(APIMethod);if(typeof params!='object')params={};if(typeof urlroot=='undefined')
var URLROOT=ajaxAPI.getUrlroot(APIMethod);else
var URLROOT=urlroot;if(server)URLROOT=server+URLROOT;if(reqType=='ilog'){var PARAMS='method='+APIMethod+'&PCPHOMEUSER='+homeUserParam;}else if(reqType=='plog'){var PARAMS='method='+APIMethod+'&pid='+global_pId+'&pcode='+global_pCode;}else if(reqType=='footer'||reqType=='plogtop'){var PARAMS='method='+APIMethod;}
for(var p in params){if(p!='extend'){debug("params: "+params[p]+" :: "+encodeURIComponent(params[p]));PARAMS+='&'+p+'='+encodeURIComponent(params[p]);}}
var req=new XMLHttpRequest();if(req){req.onreadystatechange=function(){if(req.readyState==4){ajaxAPI.handleResponse(req.responseText,req.responseXML,APIMethod,params,listener);}}
req.open('POST',URLROOT,true);debug('AJAX CALL URL: '+URLROOT+'?'+PARAMS);req.setRequestHeader('X-Requested-With','PLPTFT,Daum+Communications+Corp');req.setRequestHeader('Connection','close');req.setRequestHeader('Content-Type','application/x-www-form-urlencoded; charset=utf-8');req.send(PARAMS);}}
ajaxAPI.getReqType=function(APIMethod){var methods=APIMethod.split(".");var reqType;if(methods[0]=='ilog'){reqType='ilog';}else if(methods[0]=='plog'){reqType='plog';}else if(methods[0]=='footer'){reqType='footer';}else if(methods[0]=='plogtop'){reqType='plogtop';}else{return false;}
return reqType;}
ajaxAPI.getUrlroot=function(APIMethod){var methods=APIMethod.split(".");if(methods[0]=='ilog'&&methods[1]=='photo'){urlroot=global_contextPath+'/board/PhotoMemo.do';}else if(methods[0]=='plog'&&methods[1]=='photo'){urlroot=global_contextPath+'/plog/photomemo/PhotoMemoPlog.do';}else if(methods[0]=='ilog'&&methods[1]=='home'&&methods[2]=='visitor'){urlroot=global_contextPath+'/home/VisitorDelete.do';}else if(methods[0]=='plog'&&methods[1]=='home'&&methods[2]=='visitor'){urlroot=global_contextPath+'/plog/home/VisitorDelete.do';}else{urlroot=global_contextPath+'/plog/common/Janitor.do';}
return urlroot;}
ajaxAPI.getCallBackName=function(dotted){return dotted.split('.').join('_')+'_onLoad';}
ajaxAPI.handleResponse=function(responseText,responseXML,APIMethod,params,listener){debug('AJAX responseText: '+responseText);var success;if(responseXML&&responseXML.documentElement){success=(responseXML.documentElement.getAttribute('success')=='true')?true:false;}
listener=(listener)?listener:this;listener[ajaxAPI.getCallBackName(APIMethod)](success,responseText,responseXML);}
ajaxAPI.getValue=function(responseXML,param){if(responseXML.documentElement.getElementsByTagName(param)){if(responseXML.documentElement.getElementsByTagName(param)[0].firstChild)
return(responseXML.documentElement.getElementsByTagName(param)[0].firstChild.nodeValue);else
return false;}}
if(window.ActiveXObject&&!window.XMLHttpRequest){window.XMLHttpRequest=function(){var msxmls=new Array('Msxml2.XMLHTTP.5.0','Msxml2.XMLHTTP.4.0','Msxml2.XMLHTTP.3.0','Msxml2.XMLHTTP','Microsoft.XMLHTTP');for(var i=0;i<msxmls.length;i++){try{return new ActiveXObject(msxmls[i]);}catch(e){}}
return null;};}
if(window.opera&&!window.XMLHttpRequest){window.XMLHttpRequest=function(){this.readyState=0;this.status=0;this.statusText='';this._headers=[];this._aborted=false;this._async=true;this._defaultCharset='ISO-8859-1';this._getCharset=function(){var charset=_defaultCharset;var contentType=this.getResponseHeader('Content-type').toUpperCase();val=contentType.indexOf('CHARSET=');if(val!=-1){charset=contentType.substring(val);}
val=charset.indexOf(';');if(val!=-1){charset=charset.substring(0,val);}
val=charset.indexOf(',');if(val!=-1){charset=charset.substring(0,val);}
return charset;};this.abort=function(){this._aborted=true;};this.getAllResponseHeaders=function(){return this.getAllResponseHeader('*');};this.getAllResponseHeader=function(header){var ret='';for(var i=0;i<this._headers.length;i++){if(header=='*'||this._headers[i].h==header){ret+=this._headers[i].h+': '+this._headers[i].v+'\n';}}
return ret;};this.getResponseHeader=function(header){var ret=getAllResponseHeader(header);var i=ret.indexOf('\n');if(i!=-1){ret=ret.substring(0,i);}
return ret;};this.setRequestHeader=function(header,value){this._headers[this._headers.length]={h:header,v:value};};this.open=function(method,url,async,user,password){this.method=method;this.url=url;this._async=true;this._aborted=false;this._headers=[];if(arguments.length>=3){this._async=async;}
if(arguments.length>3){opera.postError('XMLHttpRequest.open() - user/password not supported');}
this.readyState=1;if(this.onreadystatechange){this.onreadystatechange();}};this.send=function(data){if(!navigator.javaEnabled()){alert("XMLHttpRequest.send() - Java must be installed and enabled.");return;}
if(this._async){setTimeout(this._sendasync,0,this,data);}else{this._sendsync(data);}}
this._sendasync=function(req,data){if(!req._aborted){req._sendsync(data);}};this._sendsync=function(data){this.readyState=2;if(this.onreadystatechange){this.onreadystatechange();}
var url=new java.net.URL(new java.net.URL(window.location.href),this.url);var conn=url.openConnection();for(var i=0;i<this._headers.length;i++){conn.setRequestProperty(this._headers[i].h,this._headers[i].v);}
this._headers=[];if(this.method=='POST'){conn.setDoOutput(true);var wr=new java.io.OutputStreamWriter(conn.getOutputStream(),this._getCharset());wr.write(data);wr.flush();wr.close();}
var gotContentEncoding=false;var gotContentLength=false;var gotContentType=false;var gotDate=false;var gotExpiration=false;var gotLastModified=false;for(var i=0;;i++){var hdrName=conn.getHeaderFieldKey(i);var hdrValue=conn.getHeaderField(i);if(hdrName==null&&hdrValue==null){break;}
if(hdrName!=null){this._headers[this._headers.length]={h:hdrName,v:hdrValue};switch(hdrName.toLowerCase()){case'content-encoding':gotContentEncoding=true;break;case'content-length':gotContentLength=true;break;case'content-type':gotContentType=true;break;case'date':gotDate=true;break;case'expires':gotExpiration=true;break;case'last-modified':gotLastModified=true;break;}}}
var val;val=conn.getContentEncoding();if(val!=null&&!gotContentEncoding)this._headers[this._headers.length]={h:'Content-encoding',v:val};val=conn.getContentLength();if(val!=-1&&!gotContentLength)this._headers[this._headers.length]={h:'Content-length',v:val};val=conn.getContentType();if(val!=null&&!gotContentType)this._headers[this._headers.length]={h:'Content-type',v:val};val=conn.getDate();if(val!=0&&!gotDate)this._headers[this._headers.length]={h:'Date',v:(new Date(val)).toUTCString()};val=conn.getExpiration();if(val!=0&&!gotExpiration)this._headers[this._headers.length]={h:'Expires',v:(new Date(val)).toUTCString()};val=conn.getLastModified();if(val!=0&&!gotLastModified)this._headers[this._headers.length]={h:'Last-modified',v:(new Date(val)).toUTCString()};var reqdata='';var stream=conn.getInputStream();java.lang.System.err.println(stream);if(stream){var reader=new java.io.BufferedReader(new java.io.InputStreamReader(stream,this._getCharset()));var line;while((line=reader.readLine())!=null){if(this.readyState==2){this.readyState=3;if(this.onreadystatechange){this.onreadystatechange();}}
reqdata+=line+'\n';}
reader.close();this.status=200;this.statusText='OK';this.responseText=reqdata;this.readyState=4;if(this.onreadystatechange){this.onreadystatechange();}
if(this.onload){this.onload();}}else{this.status=404;this.statusText='Not Found';this.responseText='';this.readyState=4;if(this.onreadystatechange){this.onreadystatechange();}
if(this.onerror){this.onerror();}}};};}
if(!window.ActiveXObject&&window.XMLHttpRequest){window.ActiveXObject=function(type){switch(type.toLowerCase()){case'microsoft.xmlhttp':case'msxml2.xmlhttp':case'msxml2.xmlhttp.3.0':case'msxml2.xmlhttp.4.0':case'msxml2.xmlhttp.5.0':return new XMLHttpRequest();}
return null;};}