/* javascript incude file 0.84 versios publish date:2007/06/04 coder by nt2003 */ /* xmlhttp状态显示字符 */ var xml_http_building_link = '建立连接'; var xml_http_sending = '发送命令'; var xml_http_loading = '接收回传'; var xml_http_data_in_processed = '处理数据'; var xml_http_load_failed = '服务器响应错,错误代码:[err:errcode]'; /* 浏览器判断 */ var useragent = navigator.useragent.tolowercase(); var is_webtv = useragent.indexof('webtv') != -1; var is_kon = useragent.indexof('konqueror') != -1; var is_mac = useragent.indexof('mac') != -1; var is_saf = useragent.indexof('applewebkit') != -1 || navigator.vendor == 'apple computer, inc.'; var is_opera = useragent.indexof('opera') != -1 && opera.version(); var is_moz = (navigator.product == 'gecko' && !is_saf) && useragent.substr(useragent.indexof('firefox') + 8, 3); var is_ns = useragent.indexof('compatible') == -1 && useragent.indexof('mozilla') != -1 && !is_opera && !is_webtv && !is_saf; var is_ie = (useragent.indexof('msie') != -1 && !is_opera && !is_saf && !is_webtv) && useragent.substr(useragent.indexof('msie') + 5, 3); /* 基础函数 */ function $(id) { return document.getelementbyid(id); } function in_array(targetstr, sourcearry) { if (typeof sourcearry == 'string') { for (var i in sourcearry) { if (sourcearry[i] == targetstr) { return true; } } } return false; } function add2array(targetarry, newstr) { targetarry[targetarry.length] = newstr; return targetarry.length; } function del4array(targetarry, newstr) { for (i in targetarry) { if (targetarry[i] == newstr) { targetarry[i] = null; } } return targetarry; } var ajaxs = new array(); function ajaxrequest(recvtype, targetid) { var ajax = new object(); ajax.targetid = targetid ? document.getelementbyid(targetid) : null; ajax.targeturl = ''; ajax.para = ''; ajax.paratype = ''; ajax.recvtype = recvtype ? recvtype : 'xml'; ajax.resulthandle = null; ajax.labelname = ''; ajax.currentpage = ''; ajax.sourcename = ''; ajax.total = ''; ajax.pagesize = ''; ajax.createxmlhttprequest = function () { var oxmlhttp = false; if (window.xmlhttprequest) { oxmlhttp = new xmlhttprequest(); if (oxmlhttp.overridemimetype) { oxmlhttp.overridemimetype('text/xml'); } } else if (window.activexobject) { var xmlobjectarry = ["microsoft.xmlhttp", "msxml.xmlhttp", "msxml2.xmlhttp.7.0", "msxml2.xmlhttp.6.0", "msxml2.xmlhttp.5.0", "msxml2.xmlhttp.4.0", "msxml2.xmlhttp.3.0", "msxml2.xmlhttp"]; for (var i = 0; i < xmlobjectarry.length; i++) { try { oxmlhttp = new activexobject(xmlobjectarry[i]); if (oxmlhttp) { return oxmlhttpt; } } catch (oerror) { } } } return oxmlhttp; } ajax.xmlhttprequest = ajax.createxmlhttprequest(); ajax.processhandle = function () { if (ajax.targetid) { ajax.targetid.style.display = ''; } if (ajax.xmlhttprequest.readystate == 1 && ajax.targetid) { ajax.targetid.innerhtml = xml_http_building_link; } else if (ajax.xmlhttprequest.readystate == 2 && ajax.targetid) { ajax.targetid.innerhtml = xml_http_sending; } else if (ajax.xmlhttprequest.readystate == 3 && ajax.targetid) { ajax.targetid.innerhtml = xml_http_loading; } else if (ajax.xmlhttprequest.readystate == 4) { if (ajax.xmlhttprequest.status == 200) { ajaxs = del4array(ajaxs, ajax.targeturl); if (ajax.recvtype == 'html') { ajax.resulthandle(ajax.xmlhttprequest.responsetext); } else if (ajax.recvtype == 'xml') { if (window.xmlhttprequest) { ajax.resulthandle(ajax.xmlhttprequest.responsetext); } else { ajax.resulthandle(ajax.xmlhttprequest.responsexml); } } } else { if (ajax.targetid) { ajax.targetid.innerhtml = xml_http_load_failed.replace('[err:errcode]', ajax.xmlhttprequest.status); } } } } ajax.createxmldom = function (xmlstry) { var oxmldom = false; if (is_ie) { var aversions = ["microsoft.xmldom", "msxml2.domdocument.6.0", "msxml2.domdocument.5.0", "msxml2.domdocument.4.0", "msxml2.domdocument.3.0", "msxml2.domdocument"]; for (var i = 0; i < aversions.length; i++) { try { oxmldom = new activexobject(aversions[i]); if (oxmldom) { break; } } catch (oerror) { } } } else { oxmldom = document.implementation.createdocument("", "", null); } if (xmlstry != null) { oxmldom.async = false; if (!is_ie) { var oparser = new domparser(); oxmldom = oparser.parsefromstring(xmlstry, "text/xml"); } else { if (is_ie == '7.0') { oxmldom.loadxml(xmlstry); } else { if (window.xmlhttprequest) { oxmldom.loadxml(xmlstry); } else { oxmldom.load(xmlstry); } } } } return oxmldom; } ajax.get = function (targeturl, resulthandle) { if (in_array(targeturl, ajaxs)) { return false; } else { add2array(ajaxs, targeturl); } ajax.targeturl = targeturl; ajax.xmlhttprequest.onreadystatechange = ajax.processhandle; ajax.resulthandle = resulthandle; if (window.xmlhttprequest) { ajax.xmlhttprequest.open('get', ajax.targeturl); ajax.xmlhttprequest.send(null); } else { ajax.xmlhttprequest.open("get", targeturl, true); ajax.xmlhttprequest.send(); } } ajax.post = function (usemethod, targeturl, resulthandle) { if (in_array(targeturl, ajaxs)) { return false; } else { add2array(ajaxs, targeturl); } ajax.targeturl = targeturl; var xml_dom = ajax.createxmldom(); xml_dom.async = false; if (!is_opera) /* opera不需要声明这一段 */ { var xmlproperty = xml_dom.createprocessinginstruction("xml", "version=\"1.0\" encoding=\"utf-8\""); xml_dom.appendchild(xmlproperty); } var objroot = xml_dom.createelement("root"); var objfield = xml_dom.createelement("type"); var otext = xml_dom.createtextnode(usemethod); objfield.appendchild(otext); objroot.appendchild(objfield); switch (usemethod) { case 'updatelabel': objfield = xml_dom.createelement("labelname"); otext = xml_dom.createtextnode(ajax.labelname); objfield.appendchild(otext); objroot.appendchild(objfield); objfield = xml_dom.createelement("currentpage"); otext = xml_dom.createtextnode(ajax.currentpage); objfield.appendchild(otext); objroot.appendchild(objfield); var objattrib; for (var i = 0; i < ajax.para.length; i++) { objfield = xml_dom.createelement("attrib"); if (i < ajax.paratype.length) { switch (ajax.paratype[i]) { case 'innerhtml': objattrib = xml_dom.createelement(ajax.para[i]); otext = xml_dom.createtextnode($(ajax.para[i]).innerhtml); break; case 'innertext': objattrib = xml_dom.createelement(ajax.para[i]); otext = xml_dom.createtextnode($(ajax.para[i]).innertext); break; case 'value': objattrib = xml_dom.createelement(ajax.para[i]); otext = xml_dom.createtextnode($(ajax.para[i]).value); break; case 'text': objattrib = xml_dom.createelement(ajax.para[i]); otext = xml_dom.createtextnode($(ajax.para[i]).text); break; case 'select': var optioncount = $(ajax.para[i]).length; for (var m = 0; m < optioncount; m++) { var option = $(ajax.para[i]).options[m]; if (option.selected) { otext = xml_dom.createtextnode(option.value); } } break; case 'innerhtml.nohtml': objattrib = xml_dom.createelement(ajax.para[i]); otext = xml_dom.createtextnode(removehtml($(ajax.para[i]).innerhtml)); break; case 'innertext.nohtml': objattrib = xml_dom.createelement(ajax.para[i]); otext = xml_dom.createtextnode(removehtml($(ajax.para[i]).innertext)); break; case 'value.nohtml': objattrib = xml_dom.createelement(ajax.para[i]); otext = xml_dom.createtextnode(removehtml($(ajax.para[i]).value)); break; case 'text.nohtml': objattrib = xml_dom.createelement(ajax.para[i]); otext = xml_dom.createtextnode(removehtml($(ajax.para[i]).text)); break; default: objattrib = xml_dom.createelement(ajax.para[i].split('=')[0]); otext = xml_dom.createtextnode(ajax.para[i].split('=')[1]); break; } } else { objattrib = xml_dom.createelement(ajax.para[i].split('=')[0]); otext = xml_dom.createtextnode(ajax.para[i].split('=')[1]); } objattrib.appendchild(otext); objfield.appendchild(objattrib); objroot.appendchild(objfield); } break; case 'updatepage': objfield = xml_dom.createelement("labelname"); otext = xml_dom.createtextnode(ajax.labelname); objfield.appendchild(otext); objroot.appendchild(objfield); objfield = xml_dom.createelement("sourcename"); otext = xml_dom.createtextnode(ajax.sourcename); objfield.appendchild(otext); objroot.appendchild(objfield); objfield = xml_dom.createelement("currentpage"); otext = xml_dom.createtextnode(ajax.currentpage); objfield.appendchild(otext); objroot.appendchild(objfield); objfield = xml_dom.createelement("total"); otext = xml_dom.createtextnode(ajax.total); objfield.appendchild(otext); objroot.appendchild(objfield); objfield = xml_dom.createelement("pagesize"); otext = xml_dom.createtextnode(ajax.pagesize); objfield.appendchild(otext); objroot.appendchild(objfield); break; default: for (var i = 0; i < ajax.para.length; i++) { if (ajax.para[i].indexof('=') >= 0) { objfield = xml_dom.createelement(ajax.para[i].split('=')[0]); otext = xml_dom.createtextnode(ajax.para[i].split('=')[1]); objfield.appendchild(otext); objroot.appendchild(objfield); } else { objfield = xml_dom.createelement(ajax.para[i]); if (i < ajax.paratype.length) { if ($(ajax.para[i]) != null) { switch (ajax.paratype[i]) { case 'innerhtml': otext = xml_dom.createtextnode($(ajax.para[i]).innerhtml); break; case 'innertext': otext = xml_dom.createtextnode($(ajax.para[i]).innertext); break; case 'text': otext = xml_dom.createtextnode($(ajax.para[i]).text); break; case 'select': var optioncount = $(ajax.para[i]).length; for (var m = 0; m < optioncount; m++) { var option = $(ajax.para[i]).options[m]; if (option.selected) { otext = xml_dom.createtextnode(option.value); } } break; case 'innerhtml.nohtml': otext = xml_dom.createtextnode(removehtml($(ajax.para[i]).innerhtml)); break; case 'innertext.nohtml': otext = xml_dom.createtextnode(removehtml($(ajax.para[i]).innertext)); break; case 'nohtml': otext = xml_dom.createtextnode(removehtml($(ajax.para[i]).value)); break; case 'text.nohtml': otext = xml_dom.createtextnode(removehtml($(ajax.para[i]).text)); break; default: otext = xml_dom.createtextnode($(ajax.para[i]).value); break; } objfield.appendchild(otext); } } else { if ($(ajax.para[i]) != null) { otext = xml_dom.createtextnode($(ajax.para[i]).value); objfield.appendchild(otext); } } objroot.appendchild(objfield); } } break; } xml_dom.appendchild(objroot); ajax.xmlhttprequest.onreadystatechange = ajax.processhandle; ajax.resulthandle = resulthandle; ajax.xmlhttprequest.open('post', targeturl); ajax.xmlhttprequest.setrequestheader('content-type', 'application/x-www-form-urlencoded'); ajax.xmlhttprequest.send(xml_dom); } return ajax; } /* 用户登录部分 */ function showuserlogin(showuserstat) { var x = new ajaxrequest('xml', showuserstat); if (getloginedusername() == "err") { x.labelname = "用户登录界面"; } else { x.labelname = '用户登录成功'; } x.pagename = ""; x.currentpage = 1; x.post('updatelabel', '/ajax.aspx', function (s) { var xml = x.createxmldom(s); $(showuserstat).innerhtml = xml.getelementsbytagname("body")[0].firstchild.data; }); } function senduserlogin(showrequeststat, showuserstat) { var x = new ajaxrequest('xml', showrequeststat); x.para = ['username', 'password', 'checkcode']; x.post('userlogin', '/ajax.aspx', function (s) { var xml = x.createxmldom(s); if (xml.getelementsbytagname("status")[0].firstchild.data == "ok") { $(showrequeststat).style.display = 'none'; showuserlogin(showuserstat); } else { $(showrequeststat).innerhtml = xml.getelementsbytagname("body")[0].firstchild.data; ; } }); } function quitlogin() { var x = new ajaxrequest('xml', ''); x.post('userlogout', '/ajax.aspx', function (s) { }); } function getloginedusername() { var outstr; var x = new ajaxrequest('xml', ''); var xml_dom = x.createxmldom(); xml_dom.async = false; if (!is_opera) /* opera不需要声明这一段 */ { var xmlproperty = xml_dom.createprocessinginstruction("xml", "version=\"1.0\" encoding=\"utf-8\""); xml_dom.appendchild(xmlproperty); } var objroot = xml_dom.createelement("root"); var objfield = xml_dom.createelement("type"); var otext = xml_dom.createtextnode("logincheck"); objfield.appendchild(otext); objroot.appendchild(objfield); xml_dom.appendchild(objroot); var userhttp = x.createxmlhttprequest(); userhttp.open("post", "/ajax.aspx", false); userhttp.onreadystatechange = function () { if (userhttp.readystate == 4 && userhttp.status == 200) { var xml = x.createxmldom(userhttp.responsetext); outstr = xml.getelementsbytagname("username")[0].firstchild.data; } } userhttp.send(xml_dom); return outstr; } /* 用户注册部分 */ function regusernamecheck(showuserstat) { var x = new ajaxrequest('xml', showuserstat); x.para = ['username']; x.post('usercheck', '/ajax.aspx', function (s) { var xml = x.createxmldom(s); if (xml.getelementsbytagname("status")[0].firstchild.data == "ok") { $(showuserstat).innerhtml = "本用户可以注册"; } else { $(showuserstat).innerhtml = "本用户已存在,请另换一个用户名"; } }); } /* 重写firefox下的xmldocument.xml与innertext方法 */ if (is_moz) { node.prototype.__definegetter__ ( "xml", function () { return (new xmlserializer).serializetostring(this); } ); htmlelement.prototype.__definegetter__ ( "innertext", function () { return this.textcontent; } ); htmlelement.prototype.__definesetter__ ( "innertext", function (stext) { this.textcontent = stext; } ); }; /* 过滤html符号 */ function removehtml(instr) { var d = document.createelement("div"); d.innerhtml = instr; d.id = "tempremovehtmlcontent"; d.style.display = "none"; return d.innertext; } /* 改变图片大小 */ function resizepic(thispic) { if (thispic.width > 550) { thispic.height = thispic.height * 550 / thispic.width; thispic.width = 550; } } /* 无级缩放图片大小 */ function bbimg(o) { return true; } /* 隐藏域 */ function hiddencoupon(me) { if (me.checked) { document.getelementbyid('divcoupon').style.display = ''; } else { document.getelementbyid('divcoupon').style.display = 'none'; } }