if(typeof(JKL)=='undefined')JKL=function(){};JKL.ParseXML=function(url,query,method){this.http=new JKL.ParseXML.HTTP(url,query,method,false);return this;};JKL.ParseXML.VERSION="0.22";JKL.ParseXML.MIME_TYPE_XML="text/xml";JKL.ParseXML.MAP_NODETYPE=["","ELEMENT_NODE","ATTRIBUTE_NODE","TEXT_NODE","CDATA_SECTION_NODE","ENTITY_REFERENCE_NODE","ENTITY_NODE","PROCESSING_INSTRUCTION_NODE","COMMENT_NODE","DOCUMENT_NODE","DOCUMENT_TYPE_NODE","DOCUMENT_FRAGMENT_NODE","NOTATION_NODE"];JKL.ParseXML.prototype.async=function(func,args){this.callback_func=func;this.callback_arg=args;};JKL.ParseXML.prototype.onerror=function(func,args){this.onerror_func=func;};JKL.ParseXML.prototype.parse=function(){if(!this.http)return;if(this.onerror_func){this.http.onerror(this.onerror_func);}
if(this.callback_func){var copy=this;var proc=function(){if(!copy.http)return;var data=copy.parseResponse();copy.callback_func(data,copy.callback_arg);};this.http.async(proc);}
this.http.load();if(!this.callback_func){var data=this.parseResponse();return data;}};JKL.ParseXML.prototype.setOutputArrayAll=function(){this.setOutputArray(true);}
JKL.ParseXML.prototype.setOutputArrayAuto=function(){this.setOutputArray(null);}
JKL.ParseXML.prototype.setOutputArrayNever=function(){this.setOutputArray(false);}
JKL.ParseXML.prototype.setOutputArrayElements=function(list){this.setOutputArray(list);}
JKL.ParseXML.prototype.setOutputArray=function(mode){if(typeof(mode)=="string"){mode=[mode];}
if(mode&&typeof(mode)=="object"){if(mode.length<0){mode=false;}else{var hash={};for(var i=0;i<mode.length;i++){hash[mode[i]]=true;}
mode=hash;if(mode["*"]){mode=true;}}}
this.usearray=mode;}
JKL.ParseXML.prototype.parseResponse=function(){var root=this.http.documentElement();var data=this.parseDocument(root);return data;}
JKL.ParseXML.prototype.parseDocument=function(root){if(!root)return;var ret=this.parseElement(root);if(this.usearray==true){ret=[ret];}else if(this.usearray==false){}else if(this.usearray==null){}else if(this.usearray[root.nodeName]){ret=[ret];}
var json={};json[root.nodeName]=ret;return json;};JKL.ParseXML.prototype.parseElement=function(elem){if(elem.nodeType==7){return;}
if(elem.nodeType==3||elem.nodeType==4){var bool=elem.nodeValue.match(/[^\x00-\x20]/);if(bool==null)return;return elem.nodeValue;}
var retval;var cnt={};if(elem.attributes&&elem.attributes.length){retval={};for(var i=0;i<elem.attributes.length;i++){var key=elem.attributes[i].nodeName;if(typeof(key)!="string")continue;var val=elem.attributes[i].nodeValue;if(!val)continue;if(typeof(cnt[key])=="undefined")cnt[key]=0;cnt[key]++;this.addNode(retval,key,cnt[key],val);}}
if(elem.childNodes&&elem.childNodes.length){var textonly=true;if(retval)textonly=false;for(var i=0;i<elem.childNodes.length&&textonly;i++){var ntype=elem.childNodes[i].nodeType;if(ntype==3||ntype==4)continue;textonly=false;}
if(textonly){if(!retval)retval="";for(var i=0;i<elem.childNodes.length;i++){retval+=elem.childNodes[i].nodeValue;}}else{if(!retval)retval={};for(var i=0;i<elem.childNodes.length;i++){var key=elem.childNodes[i].nodeName;if(typeof(key)!="string")continue;var val=this.parseElement(elem.childNodes[i]);if(!val)continue;if(typeof(cnt[key])=="undefined")cnt[key]=0;cnt[key]++;this.addNode(retval,key,cnt[key],val);}}}
return retval;};JKL.ParseXML.prototype.addNode=function(hash,key,cnts,val){if(this.usearray==true){if(cnts==1)hash[key]=[];hash[key][hash[key].length]=val;}else if(this.usearray==false){if(cnts==1)hash[key]=val;}else if(this.usearray==null){if(cnts==1){hash[key]=val;}else if(cnts==2){hash[key]=[hash[key],val];}else{hash[key][hash[key].length]=val;}}else if(this.usearray[key]){if(cnts==1)hash[key]=[];hash[key][hash[key].length]=val;}else{if(cnts==1)hash[key]=val;}};JKL.ParseXML.Text=function(url,query,method){this.http=new JKL.ParseXML.HTTP(url,query,method,true);return this;};JKL.ParseXML.Text.prototype.parse=JKL.ParseXML.prototype.parse;JKL.ParseXML.Text.prototype.async=JKL.ParseXML.prototype.async;JKL.ParseXML.Text.prototype.onerror=JKL.ParseXML.prototype.onerror;JKL.ParseXML.Text.prototype.parseResponse=function(){var data=this.http.responseText();return data;}
JKL.ParseXML.JSON=function(url,query,method){this.http=new JKL.ParseXML.HTTP(url,query,method,true);return this;};JKL.ParseXML.JSON.prototype.parse=JKL.ParseXML.prototype.parse;JKL.ParseXML.JSON.prototype.async=JKL.ParseXML.prototype.async;JKL.ParseXML.JSON.prototype.onerror=JKL.ParseXML.prototype.onerror;JKL.ParseXML.JSON.prototype.parseResponse=function(){var text=this.http.responseText();if(typeof(text)=='undefined')return;if(!text.length)return;var data=eval("("+text+")");return data;}
JKL.ParseXML.DOM=function(url,query,method){this.http=new JKL.ParseXML.HTTP(url,query,method,false);return this;};JKL.ParseXML.DOM.prototype.parse=JKL.ParseXML.prototype.parse;JKL.ParseXML.DOM.prototype.async=JKL.ParseXML.prototype.async;JKL.ParseXML.DOM.prototype.onerror=JKL.ParseXML.prototype.onerror;JKL.ParseXML.DOM.prototype.parseResponse=function(){var data=this.http.documentElement();return data;}
JKL.ParseXML.CSV=function(url,query,method){this.http=new JKL.ParseXML.HTTP(url,query,method,true);return this;};JKL.ParseXML.CSV.prototype.parse=JKL.ParseXML.prototype.parse;JKL.ParseXML.CSV.prototype.async=JKL.ParseXML.prototype.async;JKL.ParseXML.CSV.prototype.onerror=JKL.ParseXML.prototype.onerror;JKL.ParseXML.CSV.prototype.parseResponse=function(){var text=this.http.responseText();var data=this.parseCSV(text);return data;}
JKL.ParseXML.CSV.prototype.parseCSV=function(text){text=text.replace(/\r\n?/g,"\n");var pos=0;var len=text.length;var table=[];while(pos<len){var line=[];while(pos<len){if(text.charAt(pos)=='"'){var nextquote=text.indexOf('"',pos+1);while(nextquote<len&&nextquote>-1){if(text.charAt(nextquote+1)!='"'){break;}
nextquote=text.indexOf('"',nextquote+2);}
if(nextquote<0){}else if(text.charAt(nextquote+1)==","){var quoted=text.substr(pos+1,nextquote-pos-1);quoted=quoted.replace(/""/g,'"');line[line.length]=quoted;pos=nextquote+2;continue;}else if(text.charAt(nextquote+1)=="\n"||len==nextquote+1){var quoted=text.substr(pos+1,nextquote-pos-1);quoted=quoted.replace(/""/g,'"');line[line.length]=quoted;pos=nextquote+2;break;}else{}}
var nextcomma=text.indexOf(",",pos);var nextnline=text.indexOf("\n",pos);if(nextnline<0)nextnline=len;if(nextcomma>-1&&nextcomma<nextnline){line[line.length]=text.substr(pos,nextcomma-pos);pos=nextcomma+1;}else{line[line.length]=text.substr(pos,nextnline-pos);pos=nextnline+1;break;}}
if(line.length>=0){table[table.length]=line;}}
if(table.length<0)return;return table;};JKL.ParseXML.CSVmap=function(url,query,method){this.http=new JKL.ParseXML.HTTP(url,query,method,true);return this;};JKL.ParseXML.CSVmap.prototype.parse=JKL.ParseXML.prototype.parse;JKL.ParseXML.CSVmap.prototype.async=JKL.ParseXML.prototype.async;JKL.ParseXML.CSVmap.prototype.onerror=JKL.ParseXML.prototype.onerror;JKL.ParseXML.CSVmap.prototype.parseCSV=JKL.ParseXML.CSV.prototype.parseCSV;JKL.ParseXML.CSVmap.prototype.parseResponse=function(){var text=this.http.responseText();var source=this.parseCSV(text);if(!source)return;if(source.length<0)return;var title=source.shift();var data=[];for(var i=0;i<source.length;i++){var hash={};for(var j=0;j<title.length&&j<source[i].length;j++){hash[title[j]]=source[i][j];}
data[data.length]=hash;}
return data;}
JKL.ParseXML.LoadVars=function(url,query,method){this.http=new JKL.ParseXML.HTTP(url,query,method,true);return this;};JKL.ParseXML.LoadVars.prototype.parse=JKL.ParseXML.prototype.parse;JKL.ParseXML.LoadVars.prototype.async=JKL.ParseXML.prototype.async;JKL.ParseXML.LoadVars.prototype.onerror=JKL.ParseXML.prototype.onerror;JKL.ParseXML.LoadVars.prototype.parseResponse=function(){var text=this.http.responseText();text=text.replace(/\r\n?/g,"\n");var hash={};var list=text.split("&");for(var i=0;i<list.length;i++){var eq=list[i].indexOf("=");if(eq>-1){var key=decodeURIComponent(list[i].substr(0,eq).replace("+","%20"));var val=decodeURIComponent(list[i].substr(eq+1).replace("+","%20"));hash[key]=val;}else{hash[list[i]]="";}}
return hash;};JKL.ParseXML.HTTP=function(url,query,method,textmode){this.url=url;if(typeof(query)=="string"){this.query=query;}else{this.query="";}
if(method){this.method=method;}else if(typeof(query)=="string"){this.method="POST";}else{this.method="GET";}
this.textmode=textmode?true:false;this.req=null;this.xmldom_flag=false;this.onerror_func=null;this.callback_func=null;this.already_done=null;return this;};JKL.ParseXML.HTTP.REQUEST_TYPE="application/x-www-form-urlencoded";JKL.ParseXML.HTTP.ACTIVEX_XMLDOM="Microsoft.XMLDOM";JKL.ParseXML.HTTP.ACTIVEX_XMLHTTP="Microsoft.XMLHTTP";JKL.ParseXML.HTTP.EPOCH_TIMESTAMP="Thu, 01 Jun 1970 00:00:00 GMT"
JKL.ParseXML.HTTP.prototype.onerror=JKL.ParseXML.prototype.onerror;JKL.ParseXML.HTTP.prototype.async=function(func){this.async_func=func;}
JKL.ParseXML.HTTP.prototype.load=function(){if(window.ActiveXObject){var activex=JKL.ParseXML.HTTP.ACTIVEX_XMLHTTP;if(this.method=="GET"&&!this.textmode){activex=JKL.ParseXML.HTTP.ACTIVEX_XMLDOM;}
this.req=new ActiveXObject(activex);}else if(window.XMLHttpRequest){this.req=new XMLHttpRequest();}
var async_flag=this.async_func?true:false;if(typeof(this.req.send)!="undefined"){this.req.open(this.method,this.url,async_flag);}
if(typeof(this.req.setRequestHeader)!="undefined"){this.req.setRequestHeader("Content-Type",JKL.ParseXML.HTTP.REQUEST_TYPE);}
if(typeof(this.req.overrideMimeType)!="undefined"&&!this.textmode){this.req.overrideMimeType(JKL.ParseXML.MIME_TYPE_XML);}
if(async_flag){var copy=this;copy.already_done=false;var check_func=function(){if(copy.req.readyState!=4)return;var succeed=copy.checkResponse();if(!succeed)return;if(copy.already_done)return;copy.already_done=true;copy.async_func();};this.req.onreadystatechange=check_func;}
if(typeof(this.req.send)!="undefined"){this.req.send(this.query);}else if(typeof(this.req.load)!="undefined"){this.req.async=async_flag;this.req.load(this.url);}
if(async_flag)return;var succeed=this.checkResponse();}
JKL.ParseXML.HTTP.prototype.checkResponse=function(){if(this.req.parseError&&this.req.parseError.errorCode!=0){if(this.onerror_func)this.onerror_func(this.req.parseError.reason);return false;}
if(this.req.status-0>0&&this.req.status!=200&&this.req.status!=206&&this.req.status!=304){if(this.onerror_func)this.onerror_func(this.req.status);return false;}
return true;}
JKL.ParseXML.HTTP.prototype.documentElement=function(){if(!this.req)return;if(this.req.responseXML){return this.req.responseXML.documentElement;}else{return this.req.documentElement;}}
JKL.ParseXML.HTTP.prototype.responseText=function(){if(!this.req)return;if(navigator.appVersion.match("KHTML")){var esc=escape(this.req.responseText);if(!esc.match("%u")&&esc.match("%")){return decodeURIComponent(esc);}}
return this.req.responseText;}