if(window.ActiveXObject&&!window.XMLHttpRequest){
window.XMLHttpRequest=function(){
return new ActiveXObject((navigator.userAgent.toLowerCase().indexOf('msie 5')!=-1)?'Microsoft.XMLHTTP':'Msxml2.XMLHTTP');
};
}
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.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.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;
if(arguments.length>=3){
this._async=async;
}
if(arguments.length>3){
opera.postError('XMLHttpRequest.open() - user/password not supported');
}
this._headers=[];
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());
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();
if(stream){
var reader=new java.io.BufferedReader(new java.io.InputStreamReader(stream));
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':
return new XMLHttpRequest();
}
return null;
};
}
function sendInfo(){
var handler=sendInfo.arguments[0];
var id=sendInfo.arguments[1];
var req=new XMLHttpRequest();
if(req){
req.onreadystatechange=function(){
if(req.readyState==4&&(req.status==200||req.status==304)){
document.getElementById(id).innerHTML=req.responseText;
}
};
}else{
alert("XMLHTTPRequest failed");
return null;
}
if(sendInfo.arguments.length==2){
req.open('GET',handler);
req.send(null);
}else{
var obj=sendInfo.arguments[2];
var poststr="ajax_used=1&";
var tmp;
var show;
for(i=0;i<obj.length;i++){
tmp="";
show=1;
switch(obj.elements[i].type){
case "text":
case "textarea":
case "hidden":
case "submit":
case "button":
case "password":
tmp=obj.elements[i].value;
break;
case "checkbox":
tmp=obj.elements[i].checked;
if(tmp){
tmp=1;
}else{
show=0;
}
break;
case "select-one":
tmp=obj.elements[i].options[obj.elements[i].selectedIndex].value;
break;
case "radio":
tmp=obj.elements[i].checked;
if(tmp){
tmp=obj.elements[i].value;
}else{
show=0;
}
break;
}
if(show&&obj.elements[i].id){
tmp=tmp.replace(/&/g,"%26");
poststr+=obj.elements[i].id+'='+tmp+'&';
}
}
req.open('POST',handler,true);
req.setRequestHeader("Content-type","application/x-www-form-urlencoded");
req.setRequestHeader("Content-length",poststr.length);
req.setRequestHeader("Connection","close");
req.send(poststr);
}
}
