/*surebert.js v1.4
 * by Paul Visco
 * Creates cross browser compatible, easy to use xmlHTTP handler
 * Copyright (c) Paul Visco, 2005.
 * All rights reserved. This program cannot be used for any commercial work with prior consent from Paul Visco
*/


var surebert=function(){var t=this;t.format='text';t.method='get';t.debug=0;t.data='';t.local=0;t.response=0;t.log=[];t.handler='';t.onlog='';try{t.o=new XMLHttpRequest();}catch(e){}
try{t.o=new ActiveXObject("Msxml2.XMLHTTP");}catch(e){}
try{t.o=new ActiveXObject("Microsoft.XMLHTTP");}catch(e){}
if(!t.o){return null;}};surebert.prototype={addToLog:function(log){var t=this;if(typeof(log)=='number'){log={'data':t.messages[log],'code':log,'type':'error'};}else{log={'data':log,'code':5,'type':'log'};}
if(typeof(t.onlog)=='function'){t.onlog(log);}else{if(t.debug==1){alert(log.data);}}},"messages":{1:'This browser does not support surebert, please visit again with firefox, ie 5.5-7 for win, safari, netscape or opera.',2:'Page not found. status codes explained at http://surebert.com/errorCodes.html ',3:'page found but blank',4:'invalid xml',5:'log sent'},onreadystatechange:function(){var t=this;if(t.o.readyState!=4){return;}
t.addToLog('SENT: '+t.data);try{if(t.o.status!=200&&t.local!==true){t.messages[1]+="\n URL: "+t.url+"\n STATUS: "+t.o.status+"\nSTATUS TEXT: "+t.o.statusText;t.addToLog(2);return;}}catch(e){return;}
if(t.o.responseText===''){t.addToLog(3);}else{t.addToLog("HEADER: "+"\n"+t.o.getAllResponseHeaders()+"\n\nRECEIVED: \n"+t.o.responseText);}
if(t.format=="head"){t.response=t.o.getAllResponseHeaders();}else if(t.format=="xml"){if(t.o.responseXML!==null){t.response=t.o.responseXML.documentElement;}else{t.addToLog(4);}}else if(t.format=="js"){t.response=t.o.responseText;eval(t.response);}else if(t.format=="send"){t.addToLog('DATA TRANSFER COMPLETE');}else{t.response=t.o.responseText;}
if(typeof(t.handler)=='function'){t.handler(t.response);}
t.data='';t.o.abort();return;},fetch:function(url,to){var t=this;t.url=url;if(!t.o){t.addToLog(1);return;}
t.o.onreadystatechange=function(){t.onreadystatechange();};if(t.method=='get'&&t.data!==undefined){url=url+'?'+t.data;}
t.o.open(t.method,url,true);if(t.method=='post'){t.o.setRequestHeader("Content-Type","application/x-www-form-urlencoded");}
if(t.data===''){}
try{t.o.send(t.data);}catch(e){}},eatForm:function(form){var t=this;var e=document.forms[form].elements;var k,v;var p=[];for(x=0;x<e.length;x++){if((k=e[x].name)&&(v=e[x].value)){if(((e[x].type=="radio"||e[x].type=="checkbox")&&e[x].checked===true)||e[x].type=="text"||e[x].type=="hidden"||e[x].type=="textarea"){p.push(k+"="+escape(v));}else if(e[x].type=="select-one"){p.push(k+"="+escape(e[x].options[e[x].selectedIndex].value));}else if(e[x].type=="select-multiple"){for(s=0;s<e[x].options.length;s++){if(e[x].options[s].selected===true){p.push(k+"="+escape(e[x].options[s].value));}}}}}
if(t.data!==''){t.data+="&";}
t.data+=p.join("&");}};
