var AbstractResponseParser=function(){this.getArray=function(){return null;};};var DefaultResponseParser=Class.create();var ResponseTextParser=Class.create();var ResponseXmlParser=Class.create();var ResponseHtmlParser=Class.create();var ResponseXmlToHtmlParser=Class.create();var ResponseCallBackXmlParser=Class.create();var ResponsePlainTextXmlToHtmlParser=Class.create();var ResponseXmlToHtmlListParser=Class.create();var ResponseXmlToHtmlLinkListParser=Class.create();DefaultResponseParser.prototype=Object.extend(new AbstractResponseParser(),{initialize:function(){this.type="xml";},getArray:function(){return this.itemList;},load:function(request){this.content=request.responseXML;this.parse();this.prepareData(this.itemList);},prepareData:function(dataarray){},parse:function(){root=this.content.documentElement;responseNodes=root.getElementsByTagName("response");this.itemList=[];if(responseNodes.length>0){responseNode=responseNodes[0];itemNodes=responseNode.getElementsByTagName("item");for(i=0;i<itemNodes.length;i++){nameNodes=itemNodes[i].getElementsByTagName("name");valueNodes=itemNodes[i].getElementsByTagName("value");if(nameNodes.length>0&&valueNodes.length>0){name=nameNodes[0].firstChild?nameNodes[0].firstChild.nodeValue:"";myData=[];myData.push(name);for(j=0;j<valueNodes.length;j++){value=valueNodes[j].firstChild?valueNodes[j].firstChild.nodeValue:"";myData.push(value);}
this.itemList.push(myData);}}}}});ResponseTextParser.prototype=Object.extend(new AbstractResponseParser(),{initialize:function(){this.type="text";},load:function(request){this.content=request.responseText;this.split();},split:function(){this.itemList=[];var lines=this.content.split('\n');for(i=0;i<lines.length;i++){this.itemList.push(lines[i].split(','));}}});ResponseXmlParser.prototype=Object.extend(new DefaultResponseParser(),{prepareData:function(request,dataarray){}});ResponseHtmlParser.prototype=Object.extend(new AbstractResponseParser(),{initialize:function(){this.type="html";},load:function(request){this.content=request.responseText;}});ResponseXmlToHtmlParser.prototype=Object.extend(new DefaultResponseParser(),{initialize:function(){this.type="xmltohtml";this.plaintext=false;},prepareData:function(dataarray){this.contentdiv=document.createElement("div");for(i=0;i<dataarray.length;i++)
{h1=document.createElement("h1");if(!this.plaintext){h1.innerHTML+=dataarray[i][0];}else{h1.appendChild(document.createTextNode(dataarray[i][0]));}
this.contentdiv.appendChild(h1);for(j=1;j<dataarray[i].length;j++){div=document.createElement("div");if(!this.plaintext){div.innerHTML+=dataarray[i][j];}else{div.appendChild(document.createTextNode(dataarray[i][j]));}
this.contentdiv.appendChild(div);}}
if(dataarray.length>=1){this.content=this.contentdiv.innerHTML;}
else{this.content="";}}});ResponseCallBackXmlParser.prototype=Object.extend(new DefaultResponseParser(),{initialize:function(){this.type="xml";},prepareData:function(dataarray){this.items=[];for(i=0;i<dataarray.length;i++)
{this.items.push([dataarray[i][0],dataarray[i][1],(dataarray[i][2]?true:false)]);}}});ResponsePlainTextXmlToHtmlParser.prototype=Object.extend(new ResponseXmlToHtmlParser(),{initialize:function(){this.type="xmltohtml";this.plaintext=true;}});ResponseXmlToHtmlListParser.prototype=Object.extend(new DefaultResponseParser(),{initialize:function(){this.type="xmltohtmllist";this.plaintext=true;},prepareData:function(dataarray){this.contentdiv=document.createElement("div");ul=document.createElement("ul");for(i=0;i<dataarray.length;i++)
{liElement=document.createElement("li");liElement.id=dataarray[i][1];if(this.plaintext){liElement.appendChild(document.createTextNode(dataarray[i][0]));}else{liElement.innerHTML=dataarray[i][0];}
ul.appendChild(liElement);}
this.contentdiv.appendChild(ul);this.content=this.contentdiv.innerHTML;}});ResponseXmlToHtmlLinkListParser.prototype=Object.extend(new AbstractResponseParser(),{initialize:function(){this.type="xmltohtmllinklist";},load:function(request){this.xml=request.responseXML;this.collapsedClass=request.collapsedClass;this.treeClass=request.treeClass;this.nodeClass=request.nodeClass;this.expandedNodes=[];this.parse();},parse:function(){var ul=document.createElement('ul');ul.className=this.treeClass;var root=this.xml.documentElement;var responseNodes=root.getElementsByTagName("response");if(responseNodes.length>0){responseNode=responseNodes[0];itemNodes=responseNode.getElementsByTagName("item");if(itemNodes.length===0){ul=null;}
for(i=0;i<itemNodes.length;i++){nameNodes=itemNodes[i].getElementsByTagName("name");valueNodes=itemNodes[i].getElementsByTagName("value");urlNodes=itemNodes[i].getElementsByTagName("url");collapsedNodes=itemNodes[i].getElementsByTagName("collapsed");leafnodes=itemNodes[i].getElementsByTagName("leaf");if(nameNodes.length>0&&valueNodes.length>0){name=nameNodes[0].firstChild.nodeValue;value=valueNodes[0].firstChild.nodeValue;url="#";try{url=urlNodes[0].firstChild.nodeValue;}catch(ex){}
leaf=false;try{leaf=leafnodes[0].firstChild.nodeValue;}catch(ex){}
collapsed=false;try{collapsed=parseBoolean(collapsedNodes[0].firstChild.nodeValue);}catch(ex){}
li=document.createElement('li');li.id="li_"+value;ul.appendChild(li);if(!parseBoolean(leaf))
{span=document.createElement('span');li.appendChild(span);span.id="span_"+value;span.className=this.collapsedClass;}
link=document.createElement('a');li.appendChild(link);link.href=url;link.className=this.nodeClass;link.appendChild(document.createTextNode(name));div=document.createElement('div');li.appendChild(div);div.id=value;div.setAttribute("style","");div.style.display="none";if(!collapsed){this.expandedNodes.push(value);}}}}
this.content=ul;}});
