// Y! KR F2E

YAHOO.util.Connect.syncRequest=function(method,uri,callback,postData)
{var o=this.getConnectionObject();if(!o){return null;}
else{if(this._isFormSubmit){if(method=='GET'){uri+="?"+this._sFormData;}
else if(method=='POST'){postData=this._sFormData;}
this._sFormData='';this._isFormSubmit=false;}
try
{o.conn.open(method,uri,false);}
catch(e)
{return false;}
this.handleReadyState(o,callback);if(postData){this.initHeader('Content-Type','application/x-www-form-urlencoded');}
if(this._has_http_headers){this.setHeader(o);}
postData?o.conn.send(postData):o.conn.send(null);return o.conn;}}
YAHOO.namespace("KR.widget");YAHOO.KR.widget.AjaxManager=function(pObj)
{this.init(pObj);};YAHOO.KR.widget.AjaxManager.prototype={bDebug:false,bCache:true,bSynced:false,nTimeout:3000,sCallUrl:"",sParam:"",sMethod:"GET",sFormat:"OBJ",sFormName:"",sDebugDiv:"",oConnection:null,aCACHE:{},success:null,fail:null,vars:{},sErrorMsg:{"Err_1":"ERROR : URL not defined"},setValue:function(key,value)
{switch(key)
{case"sCallUrl":this.sCallUrl=value;break;case"sParam":this.sParam=value;break;case"sMethod":this.sMethod=value;break;case"sDivName":this.sDivName=value;break;case"sDivName":this.sDivName=value;break;case"sFormat":this.sFormat=value;break;case"sFormName":this.sFormName=value;break;case"bSynced":this.bSynced=value;break;case"bCache":this.bCache=value;break;case"bUpload":this.bUpload=value;break;case"bDebug":this.bDebug=value;break;break;}},toJSON:function(pData)
{try
{return eval('('+pData+')');}
catch(e)
{return false;}},parseURL:function(pUrl,pParam,pMethod,pFormName)
{var THIS=this;var nParam=pUrl.indexOf("?");var aUrlParse=new Array();if(pMethod.toUpperCase()=="POST")
{if(nParam<0||pFormName)
{aUrlParse['URL']=pUrl;aUrlParse['PARAM']=pParam;}
else
{aUrlParse['URL']=pUrl.substring(0,nParam);aUrlParse['PARAM']=pUrl.substring(nParam+1);}
aUrlParse['KEY']="key_"+aUrlParse['URL']+"?"+aUrlParse['PARAM'];aUrlParse['METHOD']="POST";}
else
{aUrlParse['PARAM']=null;if(nParam<0&&pParam!="")
{aUrlParse['URL']=pUrl+"?"+pParam;}
else if(pParam!="")
{aUrlParse['URL']=pUrl+"&"+pParam;}
else
{aUrlParse['URL']=pUrl;}
aUrlParse['KEY']="key_"+aUrlParse['URL'];aUrlParse['METHOD']="GET";}
return aUrlParse;},mReplaces:function(pString,a,b)
{try
{return String(pString).replace(eval("/"+a+"/g"),b);}
catch(e)
{return false;s}},mSupplant:function(pTemplates,pData)
{if(pTemplates&&pData)
{var oReplace=function(sVar,sKey)
{var sValue=pData[sKey];if(typeof(sValue)=='string')return sValue;else return sKey;};return pTemplates.replace(/{([^{}]*)}/g,oReplace);}},mSetHtml:function(pData,pTemplates,pDiv)
{if(!pData)return"";if(!pTemplates)
{if(pDiv&&typeof(document.getElementById(pDiv))=="object")document.getElementById(pDiv).innerHTML=pData;else return pData;}
else
{var sAllData="";var nDataLen=pData.length||0;if(nDataLen>0)
{for(i=0;i<nDataLen;i++)
{sAllData+=this.mSupplant(pTemplates,pData[i]);}}
else
{sAllData=this.mSupplant(pTemplates,pData);}
return sAllData;}},mCallText:function(pObj)
{var sData;if(typeof(pObj)=="string")
{sData=pObj;}
else if(typeof(pObj)=="object"&&typeof(pObj.responseText)=="string")
{sData=pObj.responseText;}
else
{return"";}
var nDataLen=sData.lastIndexOf("<!--");return(nDataLen>=0)?sData.substring(0,nDataLen):sData;},mData:function(pObj,pFormat)
{var THIS=this;var sFormat=pFormat.toUpperCase();if(sFormat=="TEXT")
{return THIS.mCallText(pObj.responseText);}
else if(sFormat=="JSON")
{return THIS.toJSON(THIS.mCallText(pObj.responseText));}
else if(sFormat=="XML")
{return pObj.responseXML;}
else
{return pObj;}},mHandleSuccess:function(pObj)
{var THIS=this;if(pObj.argument.bCache&&THIS.aCACHE[pObj.argument.sCACHE_KEY])return;var sDiv=pObj.argument.sDivName||null;var sFormat=pObj.argument.sFormat||THIS.vars.sFormat||THIS.sFormat;if(!pObj.argument.bSynced&&THIS.bDebug)
{var sTitle="DATA info";var sDescription="";sDescription+="Header = "+pObj.getAllResponseHeaders+"\n\n";sDescription+="Return Type = "+sFormat+"\n\n";sDescription+="CACHE = "+pObj.argument.bCache+"\n\n";sDescription+="Timeout = "+pObj.argument.sTimeout+"\n\n";sDescription+="DATA = \n"+pObj.responseText+"\n\n";THIS.mDebug(sTitle,sDescription);}
var oData=THIS.mData(pObj,sFormat);if(pObj.argument.bCache)THIS.aCACHE[pObj.argument.sCACHE_KEY]=oData;if(sDiv&&typeof(oData)=="string"&&typeof(document.getElementById(sDiv))=="object")
{THIS.mSetHtml(oData,null,sDiv);}
else if(THIS.success)
{THIS.success(oData,pObj.argument);}},mHandleFail:function(pObj)
{var THIS=this;var sFormat=pObj.argument.sFormat||THIS.vars.sFormat||THIS.sFormat;if(THIS.bDebug)
{var sTitle="DATA info";var sDescription="";sDescription+="Header = "+pObj.getAllResponseHeaders+"\n\n";sDescription+="Return Type = "+sFormat+"\n\n";sDescription+="CACHE = "+pObj.argument.bCache+"\n\n";sDescription+="Timeout = "+pObj.argument.sTimeout+"\n\n";sDescription+="DATA = "+pObj.responseText+"\n\n";THIS.mDebug(sTitle,sDescription);}
if(THIS.fail)THIS.fail(pObj);},mDebug:function(pTitle,pDescription)
{var THIS=this;pDescription=THIS.mReplaces(pDescription,"<","&lt;");pDescription=THIS.mReplaces(pDescription,">","&gt;");pDescription=THIS.mReplaces(pDescription,"\\n","<br>");var oDate=new Date();var sDate=oDate.getYear()+"-"+oDate.getMonth()+"-"+oDate.getDate()+" "+oDate.getHours()+":"+oDate.getMinutes()+":"+oDate.getSeconds();var sMsg="Debugging : "+pTitle+" ("+sDate+")<br>";sMsg+="######################################################################<br>";sMsg+=pDescription;sMsg+="<br>######################################################################<br><br><br><br><br>";try
{var targetDiv=document.getElementById(THIS.sDebugDiv);}
catch(e)
{var targetDiv=null;}
if(targetDiv==null)
{var oDiv=document.createElement("div");oDiv.id=THIS.sDebugDiv;oDiv.style.top="0px";oDiv.style.left="0px";oDiv.style.height="600px";oDiv.style.width="600px";oDiv.style.fontSize="10px";oDiv.style.borderColor="black";oDiv.style.borderWidth="1px";oDiv.style.borderStyle="solid";oDiv.style.textAlign="left";oDiv.style.clear="both";oDiv.style.overflow="scroll";document.body.appendChild(oDiv);}
document.getElementById(THIS.sDebugDiv).innerHTML+=sMsg;},mRequest:function(pCallUrl,pParam,pMethod,pDivName,pFormat,pFormName,pSynced,pCACHE,pUpload)
{var THIS=this;var sFormName=pFormName||THIS.sFormName||false;if(sFormName)
{var oForm=document.getElementById(sFormName)||document.forms[sFormName];var bUpload=pUpload||THIS.bUpload||false;YAHOO.util.Connect.setForm(sFormName,bUpload);var oParam=YAHOO.util.Connect._sFormData;var sCallUrl=oForm.action||pCallUrl||THIS.sCallUrl||"";var sParam=oParam;var sMethod=oForm.method||pMethod||THIS.sMethod||"GET";}
else
{var sCallUrl=pCallUrl||THIS.sCallUrl||"";var sParam=pParam||THIS.sParam||"";var sMethod=pMethod||THIS.sMethod||"GET";}
var sDivName=pDivName||THIS.sDivName||"";var sFormat=pFormat||THIS.sFormat;var pSynced=pSynced||THIS.bSynced;var pCache=pCache||THIS.bCache;var bSynced=(String(pSynced)=="true"||String(THIS.bSynced)=="true")?true:false;var bCache=(String(pCache)=="false"||String(THIS.bCache)=="false")?false:true;var aUrl=THIS.parseURL(sCallUrl,sParam,sMethod,sFormName);var sUrl=aUrl['URL'];var sKey=aUrl['KEY'];var sPostData=aUrl['PARAM'];if(THIS.bDebug)
{var sTitle="URL info";var sDescription="";sDescription+="METHOD = "+aUrl['METHOD']+"\n\n";sDescription+="URL = "+aUrl['URL']+"\n\n";sDescription+="PARAM = "+aUrl['PARAM']+"\n\n";sDescription+="CACHE KEY = "+aUrl['KEY'];THIS.mDebug(sTitle,sDescription);}
if(!sUrl)
{if(sDivName&&typeof(document.getElementById(sDivName))=="object")THIS.mSetHtml(THIS.sErrMsg1.Err_1,null,sDivName);else return THIS.sErrorMsg.Err_1;return;}
var callback={timeout:THIS.vars.nTimeout||THIS.nTimeout,upload:THIS.mHandleSuccess,success:THIS.mHandleSuccess,failure:THIS.mHandleFail,argument:{},scope:THIS};if(THIS.vars.success)THIS.success=THIS.vars.success;if(THIS.vars.fail)THIS.fail=THIS.vars.fail;if(THIS.vars.oArgs)callback.argument.oArgs=THIS.vars.oArgs;if(sDivName)callback.argument.sDivName=sDivName;if(bCache==true)
{callback.argument.sCACHE_KEY=sKey;callback.argument.bCache=true;}
else
{callback.argument.bCache=false;}
callback.argument.bSynced=bSynced;callback.argument.sFormat=sFormat;callback.argument.sTimeout=callback.timeout;if(THIS.vars.sLoadTemplates&&sDivName)THIS.mSetHtml(THIS.vars.sLoadTemplates,null,sDivName);if(bCache==true&&THIS.aCACHE[sKey])
{if(THIS.bDebug)
{THIS.mDebug("CACHE DATA",THIS.aCACHE[sKey]);}
if(sDivName&&typeof(THIS.aCACHE[sKey])=="string"&&typeof(document.getElementById(sDivName))=="object")
{THIS.mSetHtml(THIS.aCACHE[sKey],null,sDivName);}
else if(THIS.success)
{THIS.success(THIS.aCACHE[sKey],callback.argument);}
else
{return THIS.aCACHE[sKey];}
return;}
if(pSynced)
{var oObj=YAHOO.util.Connect.syncRequest(sMethod,sUrl,callback,sPostData);var oData=THIS.mData(oObj,sFormat);THIS.aCACHE[sKey]=oData;if(sDivName&&typeof(THIS.aCACHE[sKey])=="string"&&typeof(document.getElementById(sDivName))=="object")
{THIS.mSetHtml(THIS.aCACHE[sKey],null,sDivName);}
if(THIS.bDebug)
{THIS.mDebug("DATA info",THIS.mCallText(oObj));}
return oData;}
else
{return YAHOO.util.Connect.asyncRequest(sMethod,sUrl,callback,sPostData);}},init:function(pObj)
{this.sDebugDiv="debug_"+new Date().getTime();if(pObj)this.vars=pObj;}};