﻿//<!--
/*
 * GTAjax.js 
 * @abstract: General-Targeted Ajax 
 * @author: wadelau@hotmail.com,wadelau@gmail.com
 * @since: 2006-2-17 14:04
 * @update: 2007-5-16 19:24
 * @code: 2.01 // a.bc , funcs added b+, errs updated c+ 
 * @NOTICE: DO NOT USE THIS COMMERICALLY WITHOUT AUTHOR'S PAPER AUTHORIZATION
 */
var sRe="";
var iTm=0;
var sTd=0;
var sPtWi="myPOstWIn";
var sUrl="?";
var sMtd="GET";
var iItl=1000;
var isWtRp=false;
var sForm="";
var sFld="";
var sBkCt="";
var nEmt=null;
var wFl=false;
var tErr=new Error();
var nEmt2=null;
var gtFDiv="icld200607232107";
var tBro=navigator.appName;
var myBdTt=null;
var rtns=null;
var cA=new Array();
var vA=new Array();
vA["sbv"]="Submit";
vA["mul"]=3*60*1000;
vA["ta"]="";
vA["rn"]=" Return ";
vA["ib"]=false;
vA["rdo"]=false;
vA["ic"]=true;
vA["cf"]="";
vA["ff"]=false;
vA["pb"]=true;
vA["bl"]=true;
vA["fft"]="fftag";
function GTAjax(_1){
if(!isWtRp){
_PSD();
sForm=_1;
sRe="";
rtns="";
var _2="";
var _3=false;
_DBG(vA["ib"],"sForm",_1);
try{
var _4=document.forms[sForm];
}
catch(eFNm){
}
if(_4!=null&&typeof _4!="undefined"){
_DBG(vA["ib"],"ta-1",vA["ta"]);
document.getElementById(sForm).onsubmit=function(){
return false;
};
try{
if(vA["ta"]==""&&vA["rdo"]==false){
var _5="targetarea is empty.";
if(typeof _4!="undefined"){
vA["ta"]=_4.parentNode.getAttribute("id");
}else{
tErr.message=_5;
return _RGT("formElement",tErr);
}
if(typeof vA["ta"]=="undefined"||vA["ta"]==""||vA["ta"]==null){
tErr.message=_5;
return _RGT("formElement1",tErr);
}else{
_DBG(vA["ib"],"ta",vA["ta"]);
}
}
}
catch(e8){
return _RGT("parentArea",e8);
}
try{
sUrl=_4.action;
sMtd=_4.method;
for(var i=_4.elements.length-1;i>=0;i--){
var el=_4.elements[i];
var _8=_CFM;
if(el.tagName.toLowerCase()=="select"){
for(var j=0;j<el.options.length;j++){
var op=el.options[j];
if(op.selected){
if(typeof cA[el.name]!="undefined"){
if(!_8(sForm,el.name,op.value,cA[el.name])){
return false;
}
}
_2+="&"+encodeURIComponent(el.name)+"="+encodeURIComponent(op.value);
}
}
}else{
if(el.tagName.toLowerCase()=="textarea"){
if(typeof cA[el.name]!="undefined"){
if(!_8(sForm,el.name,el.value,cA[el.name])){
return false;
}
}
_2+="&"+encodeURIComponent(el.name)+"="+encodeURIComponent(el.value);
}else{
if(el.tagName.toLowerCase()=="input"){
if(el.type.toLowerCase()=="checkbox"||el.type.toLowerCase()=="radio"){
if(el.checked){
_2+="&"+encodeURIComponent(el.name)+"="+encodeURIComponent(el.value);
}
if(typeof cA[el.name]!="undefined"){
if(!_8(sForm,el.name,el.value,cA[el.name])){
return false;
}
}
}else{
if(el.type.toLowerCase()=="file"){
if(typeof cA[el.name]!="undefined"){
if(!_8(sForm,el.name,el.value,cA[el.name])){
return false;
}
}
if(el.value!=""&&el.value!=null){
wFl=true;
_DBG(vA["ib"],"fileUpload2",wFl);
if(eval(cA.length)==0){
break;
}
}
}else{
if(el.type.toLowerCase()!="button"&&el.type.toLowerCase()!="submit"){
if(typeof cA[el.name]!="undefined"){
if(!_8(sForm,el.name,el.value,cA[el.name])){
return false;
}
}
_2+="&"+encodeURIComponent(el.name)+"="+encodeURIComponent(el.value);
}else{
if(el.type.toLowerCase()=="submit"){
if(el.name){
sFld=el.name;
}else{
sFld=el.id;
}
vA["sbv"]=el.value;
if(sFld!=null&&typeof sFld!="undefined"&&sFld!=""){
document.getElementById(sFld).disabled=true;
document.getElementsByName(sFld).disabled=true;
}else{
tErr.message="submit field in form:["+_4+"] not NAMEed or IDed.";
return _RGT("invalidsubmit",tErr);
}
_SAY(sFld,"Data Collecting",false);
}
}
}
}
}
}
}
}
}
catch(e2){
return _RGT("formElement3",e2);
}
}else{
_DBG(vA["ib"],"handleurl",sForm);
try{
if(vA["ta"]==""&&vA["rdo"]==false){
var _b=document.links;
var _c="";
for(var i=0;i<_b.length;i++){
_c=_b[i].href;
if(_c.indexOf(sForm)>-1){
_4=_b[i];
sUrl=sForm;
break;
}
}
var _5="targetarea is empty.";
if(typeof _4!="undefined"){
vA["ta"]=_4.parentNode.getAttribute("id");
}else{
tErr.message=_5;
return _RGT("formElement2",tErr);
}
if(typeof vA["ta"]=="undefined"||vA["ta"]==""||vA["ta"]==null){
tErr.message=_5;
return _RGT("formElement3",tErr);
}else{
_DBG(vA["ib"],"ta",vA["ta"]);
}
_b=null;
_4=null;
sBkCt=document.getElementById(vA["ta"]).innerHTML;
}else{
if(vA["ta"]!=""){
if(!document.getElementById(vA["ta"])){
tErr.message="cant find target:["+vA["ta"]+"].";
return _RGT("invalidta",tErr);
}
}
}
if(sUrl=="?"){
sUrl=sForm;
}
}
catch(e9){
return _RGT("parentElement",e9);
}
}
if(wFl||vA["ff"]){
try{
_SAY(sFld,"Loading data...",false);
var _d=(new Date).getMilliseconds();
sPtWi=sPtWi+_d;
var _e="<iframe name=\""+sPtWi+"\" id=\""+sPtWi+"\"  "+"style=\"border:0px;width:0px;height:0px\"></iframe>"+"";
var _f=null;
if(document.getElementById(gtFDiv)){
_f=document.getElementById(gtFDiv);
}else{
_DBG(vA["ib"],"iframefail",document.getElementById(gtFDiv).innerHTML);
}
nEmt=document.createElement("div");
nEmt.setAttribute("id","icld"+sPtWi);
_f.appendChild(nEmt);
document.getElementById("icld"+sPtWi).innerHTML=_e;
var dgt=document;
var fgt=dgt.frames?dgt.frames[sPtWi]:dgt.getElementById(sPtWi);
fgt.src="about:blank";
_SUB(sForm,sUrl,sPtWi,vA["ib"],vA["ff"]);
isWtRp=true;
sTd=setTimeout("_LOP()",iItl);
_e=null;
_d=null;
_DBG(vA["ib"],"iframeListen","starting");
}
catch(e4){
return _RGT("fileUpload",e4);
}
}else{
var _12=null;
var _13=false;
_SAY(sFld,"Initiating",false);
try{
if(window.XMLHttpRequest){
_12=new XMLHttpRequest();
_DBG(vA["ib"],"xmlhttp1",_12+",type:["+(typeof _12)+"]");
}else{
if(window.ActiveXObject){
try{
_12=new ActiveXObject("Msxml2.XMLHTTP");
_DBG(vA["ib"],"xmlhttp2",_12+",type:["+(typeof _12)+"]");
}
catch(e){
try{
_12=new ActiveXObject("Microsoft.XMLHTTP");
_DBG(vA["ib"],"xmlhttp3",_12+",type:["+(typeof _12)+"]");
}
catch(e1){
_SAY(sFld,vA["sbv"],true);
vA["ff"]=true;
sTd=setTimeout("_LOP()",iItl);
}
}
}
}
}
catch(e39){
_SAY(sFld,vA["sbv"],true);
vA["ff"]=true;
sTd=setTimeout("_LOP()",iItl);
}
_SAY(sFld,"Communicating",false);
sMtd=sMtd.toUpperCase();
if(_12!=null&&typeof _12!="undefined"){
_SAY(sFld,"Transacting",false);
try{
if(sMtd=="GET"){
if(!vA["ic"]){
var ici=Math.random();
_2+="&ici="+ici;
ici=null;
}
sUrl+=(sUrl.indexOf("?")>0)?"&":"?";
sUrl+=_2;
_12.open(sMtd,sUrl,_13);
if(!vA["ic"]){
_12.setRequestHeader("If-Modified-Since","Sat, 1 Jan 2000 00:00:00 GMT");
}
_2=null;
}else{
_12.open(sMtd,sUrl,_13);
_12.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
_12.setRequestHeader("Accept","text/*");
try{
_12.setRequestHeader("Accept-Language",navigator.language);
}
catch(e1101){
}
}
_DBG(vA["ib"],"sMtd",sMtd+",sUrl: "+sUrl+", sPara:"+_2);
_12.onreadystatechange=function(){
if(_12.readyState==4&&!_3){
_3=true;
sRe=_12.responseText;
rtns="complete";
}else{
_SAY(sFld,"Loading",false);
_DBG(vA["ib"],"sRe","waiting content....");
}
};
_12.send(_2);
if(sRe==""){
sRe=_12.responseText;
if(sRe!=""){
rtns="complete";
}
}
_DBG(vA["ib"],"xmlhttp-sRe",sRe+", rtns:["+rtns+"] ");
}
catch(e3){
_SAY(sFld,vA["sbv"],true);
vA["ff"]=true;
sTd=setTimeout("_LOP()",iItl);
}
_12=null;
}
}
if(_3){
_SAY(sFld,"Loaded Successfully",false);
}
}else{
if(isWtRp){
try{
if(!dgt){
var dgt=document;
var fgt=dgt.frames?dgt.frames[sPtWi]:dgt.getElementById(sPtWi);
}
var pgt=fgt.document||fgt.contentWindow.document;
var _16=pgt.body.innerHTML;
_DBG(vA["ib"],"sRe-sRe2","sRe:["+sRe+"], sRe2:["+_16+"] ");
rtns=pgt.readyState;
if(rtns!=null&&typeof rtns!="undefined"){
sRe=_16;
}else{
if((sRe!=null&&_16!=null&&sRe!="")&&sRe.length==_16.length){
rtns="complete";
}
sRe=_16;
iItl=1500;
}
if(tBro.indexOf("Opera")>-1){
sRe=sRe.replace(/\n{3,}/,"");
}
_DBG(vA["ib"],"rtns",rtns+",sRe:["+sRe+"]");
if(rtns==null||typeof rtns=="undefined"){
rtns="";
}
if(rtns.toLowerCase()!="complete"){
if(iTm<vA["mul"]){
iTm+=iItl;
sTd=setTimeout("_LOP()",iItl);
}else{
_DBG(vA["ib"],"connTimeOut","connection timeout");
}
}else{
window.clearTimeout(sTd);
}
_16=null;
}
catch(e7){
if(vA["ib"]){
e7.message+="\nmsg not ready, keep waiting on....\n";
_RPT("accessRe",e7);
}
sTd=setTimeout("_LOP()",iItl);
}
}
}
if(rtns!=null&&typeof rtns!="undefined"&&rtns.toLowerCase()=="complete"){
_SAY(sFld,vA["sbv"],true);
try{
if(nEmt2){
if(myBdTt!=null&&typeof myBdTt!="undefined"){
try{
myBdTt.removeChild(nEmt2);
}
catch(erm){
}
}else{
document.body.removeChild(nEmt2);
}
nEmt2=null;
}
if(sFld!=""&&!vA["rdo"]){
if(vA["bl"]){
sBkCt=document.getElementById(vA["ta"]).innerHTML;
sRe+="&nbsp;&nbsp;<a href=\"javascript:goGTAjaxBack('"+vA["ta"]+"');\">"+"<font face=\"Wingdings 3\">@</font>"+vA["rn"]+"</a><br/>&nbsp;";
}
}
if(wFl||vA["ff"]||(!wFl&&!vA["rdo"])){
document.getElementById(vA["ta"]).innerHTML=sRe;
}
_RGT("done",tErr);
return sRe;
sRe=null;
if(_16){
_16=null;
}
}
catch(e5){
return _RGT("finishJob",e5);
}
}else{
if(!isWtRp){
_DBG(vA["ib"],"serverResponse"," emptyValue");
}else{
_DBG(vA["ib"],"sRe-waiting","sRe:["+sRe+"],state:["+rtns+"]");
}
}
}
function _LOP(){
GTAjax(sForm);
}
function _DBG(ib,_18,_19){
if(ib){
window.alert("the "+_18+" is:["+_19+"]");
}
}
function _RPT(_1a,_1b){
try{
var _1c="err@GTAjax: "+_1a;
if(_1b.name){
_1c+="\n name:"+_1b.name+"\n message:"+_1b.message;
if(tBro.indexOf("Explorer")!=-1){
_1c+="\n location:"+_1b.location;
}
_1c+="\n description:"+_1b.description;
}else{
_1c=_1b;
}
//window.alert(_1c);
}
catch(rpte){
//window.alert("_RPT: "+rpte+", sObj:"+(typeof _1b)+", sTag: "+_1a);
return false;
}
}
function _SAY(_1d,_1e,_1f){
if(_1d!=null&&typeof _1d!="undefined"&&_1d!=""){
var _20="....";
if(_1f){
document.getElementById(_1d).disabled=false;
document.getElementsByName(_1d).disabled=false;
}
if(_1e!=vA["sbv"]){
_1e+=_20;
}
document.getElementById(_1d).value=_1e;
document.getElementsByName(_1d).value=_1e;
}else{
if(_1d==""&&!vA["rdo"]){
}
}
}
function _SUB(_21,_22,_23,ib,fft){
var _26=null;
if(document.getElementById(_21)){
_26=document.getElementById(_21);
}else{
var _27="myff200607251525";
var _28=_27+"_f";
try{
if(!document.getElementById(_27)){
nEmt=document.createElement("div");
nEmt.setAttribute("id",_28);
document.body.appendChild(nEmt);
document.getElementById(_28).innerHTML="<form id=\""+_27+"\" name=\""+_27+"\"></form>";
}
_26=document.getElementById(_27);
}
catch(efrmdiv){
_RGT("postFormInit",efrmdiv);
}
}
_26.lang=navigator.language;
if(wFl){
_26.encoding="multipart/form-data";
}else{
_26.encoding="application/x-www-form-urlencoded";
}
_26.target=_23;
var _29=_22.indexOf("?");
var _2a;
if(_29>0){
_2a=_22.substring(0,_29);
}else{
_2a=_22;
}
if(fft){
if(_29>0){
_22+="&";
}else{
_22+="?";
}
_22+=vA["fft"]+"=1";
}
if(_2a.indexOf(".htm")>0||_2a.indexOf(".txt")>0){
_26.method="GET";
}else{
_26.method="POST";
}
_26.action=_22;
_26.submit();
_DBG(vA["ib"],"_SUB",_21+":"+_26.method+":"+_22+":"+_23+",ff:["+fft+"]");
_26=null;
}
function _RGT(_2b,_2c){
if(_2b!=""&&_2b!="done"){
_RPT(_2b,_2c);
}
if(_2b!="done"){
_SAY(sFld,vA["sbv"],true);
}
if(nEmt2){
if(myBdTt!=null&&typeof myBdTt!="undefined"){
try{
myBdTt.removeChild(nEmt2);
}
catch(erm){
}
}else{
document.body.removeChild(nEmt2);
}
}
iTm=0;
sTd=0;
sUrl="?";
sMtd="GET";
iItl=1000;
isWtRp=false;
sForm="";
sFld="";
nEmt=null;
wFl=false;
tErr=new Error();
nEmt2=null;
myBdTt=null;
rtns=null;
cA=new Array();
vA=new Array();
vA["sbv"]="Submit";
vA["mul"]=3*60*1000;
vA["ta"]="";
vA["rn"]=" Return ";
vA["ib"]=false;
vA["rdo"]=false;
vA["ic"]=true;
vA["cf"]="";
vA["ff"]=false;
vA["pb"]=true;
vA["bl"]=true;
vA["fft"]="fftag";
return false;
}
function goGTAjaxBack(_2d){
document.getElementById(_2d).innerHTML=sBkCt;
}
function setGTAjax(_2e,_2f){
var _30=new Array();
_30["subbtnval"]="sbv";
_30["maxuploadfiletime"]="mul";
_30["targetarea"]="ta";
_30["returnname"]="rn";
_30["isdebug"]="ib";
_30["returndataonly"]="rdo";
_30["iscache"]="ic";
_30["chkform"]="cf";
_30["forceframe"]="ff";
_30["processbar"]="pb";
_30["backlink"]="bl";
_30["forceframetag"]="fft";
try{
if(_2e=="chkform"){
if(_2f!=null&&_2f!=""){
var _31=_2f.split(":",3);
if(_31[0]!=null&&_31[0]!=""){
if(_31[1]==null||_31[1]==""){
_31[1]="notvalue=";
}
if(_31[2]==null||_31[2]==""){
_31[2]=" has not expected value.";
}
cA[_31[0]]=_31[1]+","+_31[2];
}
if(cA.length==0){
cA[100]="1";
}
}
}else{
vA[_30[_2e]]=_2f;
}
if(vA["ff"]&&vA["rdo"]){
tErr.message="rdo cannot be with ff!";
return _RGT("setGTAjax2",tErr);
}
}
catch(e6){
return _RGT("setGTAjax",e6);
}
}
function _PSD(){
var _32=0;
try{
if(!document.getElementById(gtFDiv)){
var _33="position:absolute;top:0px;left:0px;z-index:11";
if(vA["ta"]!=""){
myBdTt=document.getElementById(vA["ta"]);
}
nEmt2=document.createElement("div");
nEmt2.setAttribute("id",gtFDiv);
nEmt2.style.cssText=_33;
if(myBdTt!=null){
myBdTt.appendChild(nEmt2);
}else{
document.body.appendChild(nEmt2);
}
_32=1;
}
if(vA["pb"]){
var ns=(tBro.indexOf("Netscape")!=-1);
var pX,pY;
pY=ns?pageYOffset:document.documentElement&&document.documentElement.scrollTop?document.documentElement.scrollTop:document.body.scrollTop;
var _36="<nobr><img src=\"/images/loader.gif\">读取..</nobr>";
var _37="<div id=\""+gtFDiv+"_x\" style=\"position:absolute;left:0;top:"+pY+";height:"+"20px;background-color:#FFFF99;color:#ff0000;font-size:12px;font-weight:700;z-index:11\">"+_36+"</div>";
document.getElementById(gtFDiv).innerHTML=_37;
}
}
catch(eDiv){
return _RGT("prcsDiv",eDiv);
}
}
function _CFM(_38,_39,_3a,_3b){
try{
var _3c=_3b.split(",",2);
var _3d=_3c[0];
var _3e=_3c[1];
var _3f=0;
var _40=true;
if(_3d.indexOf("+")>-1){
_3d=_3d.replace("+","");
if(eval(_3a.length)==_3f){
_40=false;
}
}
if(_40){
if(_3d.indexOf("=")>-1){
var _41=_3d.split("=");
_3d=_41[0];
if(_41[0]==null||_41==""){
_41[1]=0;
}
_3f=_41[1];
}
if(_3d=="req"||_3d=="required"||_3d=="notvalue"){
if(_3a.length==_3f){
_40=false;
}
}else{
if(_3d=="maxlength"||_3d=="maxlen"){
if(_3a.length>_3f){
_40=false;
}
}else{
if(_3d=="minlength"||_3d=="minlen"){
if(_3a.length<_3f){
_40=false;
}
}else{
if(_3d=="alnum"||_3d=="alphanumeric"){
var _42=_3a.search(/[^A-Za-z0-9]/);
if(_3a.length>0&&_42>=0){
_40=false;
}
}else{
if(_3d=="num"||_3d=="numeric"){
var _42=_3a.search(/[^0-9]/);
if(_3a.length>0&&_42>=0){
_40=false;
}
}else{
if(_3d=="alphabetic"||_3d=="alpha"){
var _42=_3a.search(/[^A-Za-z]/);
if(_3a.length>0&&_42>=0){
_40=false;
}
}else{
if(_3d=="alnumhyphen"){
var _42=_3a.search(/[^A-Za-z0-9\-_]/);
if(_3a.length>0&&_42>=0){
_40=false;
}
}else{
if(_3d=="email"){
if(_3a==""||_3a.match(/^[\w-\.]+\@[\w\.-]+\.[a-z]{2,4}$/)==null){
_40=false;
}
}else{
if(_3d=="lt"||_3d=="lessthan"){
if(isNaN(_3a)||(eval(_3a)>=_3f)){
_40=false;
}
}else{
if(_3d=="gt"||_3d=="greaterthan"){
if(isNaN(_3a)||(eval(_3a)<=_3f)){
_40=false;
}
}else{
if(_3d=="regexp"){
if(_3a.length>0){
if(!_3a.match(_3f)){
_40=false;
}
}
}else{
_3e="Unpredefined form validate type:["+_3d+"]";
_40=false;
}
}
}
}
}
}
}
}
}
}
}
}
if(!_40){
window.alert("Attention: "+_3e);
eval("document."+_38+"."+_39+".style.background='#FFFF99'");
eval("document."+_38+"."+_39+".focus()");
return _RGT("",tErr);
}
return _40;
}
catch(echk){
return _RGT("formValidate",echk);
}
}
//-->