﻿function getCookie(h) {
    var i = document.cookie.match("(?:^|;)\\s*" + h + "=([^;]*)");
    return i ? unescape(i[1]) : "";
}

function getCookies(objName, keyName) {
    var result = "";
    if (document.cookie.length > 0) {
        var objArray = document.cookie.split(";");
        var objSearch = objName + "=";
        var nameSearch = keyName + "=";
        for (var objItem in objArray) {
            if (objArray[objItem].indexOf(objSearch) != -1) {
                begin = objArray[objItem].indexOf(nameSearch);
                if (begin != -1) {
                    begin += nameSearch.length;
                    end = objArray[objItem].indexOf("&", begin);
                    if (end == -1) {
                        end = objArray[objItem].length;
                    }
                    result = decodeURIComponent(objArray[objItem].substring(begin, end));
                }
            }
        }
    }
    return result;
}

//xmlhttp对象
var xmlhttp = null;
function createXmlHttp() {
    if (window.XMLHttpRequest) {
        xmlhttp = new XMLHttpRequest();
    }
    else if (!xmlhttp && window.ActiveXObject) {
        var IEXMLHttpVersion = [
			"Msxml2.XMLHttp.5.0",
			"Msxml2.XMLHttp.4.0",
			"Msxml2.XMLHttp.3.0",
			"Msxml2.XMLHttp",
			"Microsoft.XMLHttp"
		];
        for (var i = 0; i < IEXMLHttpVersion.length; i++) {
            try {
                xmlhttp = new ActiveXObject(IEXMLHttpVersion[i]);
            } catch (e) {
            }
        }
    }
    //if (!xmlhttp) { }
}

function isTest(tReg, tText, intEmpty) {
    try {
        if (intEmpty == "" && (tText == "" || tText == "undefined" || tText == null)) { return true; }
        var regX = new RegExp(tReg, "ig");
        if (regX.test(tText)) {
            return true;
        } else {
            return false;
        }
    } catch (e) {
        return false;
    }
}

function getID(objID, objType) {
    var strR = "";
    var obj = document.getElementById(objID);
    if (obj != null) {
        if (objType == "html") { strR = obj.innerHTML; } else { strR = obj.value; }         
    }
    return strR;
}

function setID(objID, objText, objType) {
    var obj = document.getElementById(objID);
    if (obj != null) {
        if (objType == "value") { obj.value = objText; } else { obj.innerHTML = objText; }
    }
}

function getSelect(selectID, objType) {
    var obj = document.getElementById(selectID);
    var strR = "";
    var index = obj.selectedIndex;
    if (index >= 0) {
        if (objType == "text") { strR = obj.options[index].text; } else { strR = obj.options[index].value; }        
    }
    return strR;
}

function setSelect(setectID, selectValue) {
    var objSelect = document.getElementById(setectID);
    for (var i = 0; i < objSelect.options.length; i++) {
        if (objSelect.options[i].value == selectValue) {
            objSelect.options[i].selected = true;
            break;
        }
    }
}

function getCheckbox(objName) {
    var temp = document.getElementsByName(objName);
    var strR = "";
    for (var i = 0; i < temp.length; i++) {
        if (temp[i].checked) {
            strR += temp[i].value;
            if (temp.length > 1) { strR += ","; }
        }
    }
    return strR;
}

function setCheckbox(objName, objValue) {    
    var temp = document.getElementsByName(objName);
    if (temp == null) { return; }
    objValue = "," + objValue + ",";
    var iv = "";
    for (var i = 0; i < temp.length; i++) {
        iv = temp[i].value;
        if (iv == "" && objValue == ",,") { temp[i].checked = true; }
        if (iv != "") {
            if (objValue.indexOf("," + iv + ",") != -1) {
                temp[i].checked = true;
            }
        }
    }
}

function getRadio(objName) {
    var temp = document.getElementsByName(objName);
    if (temp == null) { return ""; }
    for (var i = 0; i < temp.length; i++) {
        if (temp[i].checked) {
            return temp[i].value;
        }
    }
    return "";
}

function setRadio(objName, objValue) {
    var temp = document.getElementsByName(objName);
    if (temp == null) { return; }
    for (var i = 0; i < temp.length; i++) {
        if (temp[i].value == objValue) {
            temp[i].checked = true;
        } else {
            temp[i].checked = false;
        }
    }
}

function writeTopLeft() {
    var nHtmls = "欢迎来到GPSspg";
    document.writeln(nHtmls);
}

function writeTopRight() {
    var nHtmls = "<ul><li class=\"b0\">";
    var u_name = getCookies("user", "mail");
    var u_pass = getCookies("user", "pass");
    if (isTest("^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$", u_name) && isTest("^[A-Z0-9]{20,50}$", u_pass)) {
        nHtmls += u_name + " &nbsp; <a href=\"/my/\">我的账户</a> &nbsp; <a href=\"/exit.aspx\">退出</a></li>";
    } else {
        nHtmls += "<a href=\"/login.htm\">登录</a></li><li><a href=\"/join.htm\">免费注册</a></li>";
    }
    nHtmls += "<li><a href=\"/\">首页</a></li><li><a href=\"/publish_poi.htm\" class=\"hot\"><strong>免费发布黄页</strong></a></li><li><a href=\"/jiaoyou.htm\" class=\"hot\"><strong>同城交友</strong></a></li><li><a href=\"/maps.htm\">在线地图</a></li><li><a href=\"/feedback.htm\">意见反馈</a></li></ul>";
    document.writeln(nHtmls);
}

//Validator:初始化页面
function initValidator() {
    if (arrX == null || arrX.length < 1) {
        return false;
    }
    var i, j;
    var regX;
    var obj;
    var objMsg;
    for (i = 0; i < arrX.length; i++) {
        if (arrX[i].length != 7) { break; }
        regX = /^(text|select|checkbox|radio|repeat|cookie)$/i;
        if (!regX.test(arrX[i][0])) { break; }
        switch (arrX[i][0].toLowerCase()) {
            case "checkbox":
            case "radio":
                obj = document.getElementsByName(arrX[i][1]);
                break;
            default:
                obj = document.getElementById(arrX[i][1]);
        }
        if (obj == null) { break; }
        if (obj.disabled == true) { break; }
        objMsg = document.getElementById(arrX[i][2]);
        if (objMsg == null) { break; }
        switch (arrX[i][0].toLowerCase()) {
            case "select":
                obj.setAttribute("onchange", "isValidator(" + i + ");");
                break;
            case "checkbox":
            case "radio":
                for (j = 1; j <= obj.length; j++) {
                    if (document.getElementById(arrX[i][1] + "_" + j) != null) {
                        document.getElementById(arrX[i][1] + "_" + j).setAttribute("onclick", "isValidator(" + i + ");");
                    } else {
                        break;
                    }
                }
                break;
            default:
                obj.setAttribute("onfocus", "focusValidator(" + i + ");");
                obj.setAttribute("onblur", "isValidator(" + i + ");");
        }
    }
}

//Validator:单次验证
function isValidator(cItem) {
    var obj;
    var objMsg;
    //类型
    switch (arrX[cItem][0].toLowerCase()) {
        case "checkbox":
        case "radio":
            obj = document.getElementsByName(arrX[cItem][1]);
            break;
        default:
            obj = document.getElementById(arrX[cItem][1]);
    }
    if (obj == null) { return; }
    if (obj.disabled == true) { return; }
    objMsg = document.getElementById(arrX[cItem][2]);
    if (objMsg == null) { return; }
    var iValue = "";
    var iValues = "";
    var iType = 0;
    switch (arrX[cItem][0].toLowerCase()) {
        case "select":
            iValue = getSelect(arrX[cItem][1]);
            iType = 1;
            break;
        case "checkbox":
            iValue = getCheckbox(arrX[cItem][1]);
            iType = 1;
            break;
        case "radio":
            iValue = getRadio(arrX[cItem][1]);
            iType = 1;
            break;
        case "repeat":
            iValue = obj.value;
            if (document.getElementById(arrX[cItem][3]) != null) {
                iValues = document.getElementById(arrX[cItem][3]).value;
            }
            if (iValues != "" && iValues == iValue) {
                if (objMsg.style.display != "none") { objMsg.style.display = "none"; }
            } else {
                if (objMsg.style.display != "block") { objMsg.style.display = "block"; }
                if (iValues != "") {
                    objMsg.innerHTML = arrX[cItem][5];
                } else {
                    objMsg.innerHTML = arrX[cItem][6];
                }
                objMsg.className = "msg error";
                booValidator = false;
            }            
            return;
        default:
            iValue = obj.value;
    }
    var booEmpty = true;
    if (arrX[cItem][6] != "") { booEmpty = false;}
    if (iValue == null) { iValue = ""; }
    if (iValue == "") {
        if (booEmpty == true) {
            if (objMsg.style.display != "none") { objMsg.style.display = "none"; }
        } else {
            booValidator = false;
            if (objMsg.style.display != "block") { objMsg.style.display = "block"; }
            objMsg.innerHTML = arrX[cItem][6];
            objMsg.className = "msg error";
        }
        return;
    }
    if (iValue != "") {        
        if (iType == 1) {
            if (objMsg.style.display != "none") { objMsg.style.display = "none"; }
            return;
        }        
        var regT = arrX[cItem][3].toString();
        if (arrX[cItem][0].toLowerCase() == "cookie") {
            regT = getCookie(regT);
        }
        switch (regT) {
            case "mail":
                regT = "^\\w+([-+.]\\w+)*@\\w+([-.]\\w+)*\\.\\w+([-.]\\w+)*$";
                break;
            case "phone":
                regT = "^((\\(\\d{2,3}\\))|(\\d{3}\\-))?(\\(0\\d{2,3}\\)|0\\d{2,3}-)?[1-9]\\d{6,7}(\\-\\d{1,5})?$";
                break;
            case "mobile":
                regT = "^(1[358]\\d{9})$";
                break;
            case "url":
                regT = "^((http:\\/\\/|\\/)[A-Za-z0-9]+\\.[A-Za-z0-9]+[\\/=\\?%\\-&_~`@[\\]\\':+!]*([^<>\"])*)|(\\/)$";
                break;
            case "urls":
                regT = "^(http|https|ftp|thunder|qqdl|flashget|rayfile|fs2you):\\/\\/(.[^\\<\\>\"\n]*)$";
                break;
            case "ip":
                regT = "^(0|[1-9]\\d?|[0-1]\\d{2}|2[0-4]\\d|25[0-5]).(0|[1-9]\\d?|[0-1]\\d{2}|2[0-4]\\d|25[0-5]).(0|[1-9]\\d?|[0-1]\\d{2}|2[0-4]\\d|25[0-5]).(0|[1-9]\\d?|[0-1]\\d{2}|2[0-4]\\d|25[0-5])$";
                break;
            case "currency":
                regT = "^\\d+(\\.\\d+)?$";
                break;
            case "number":
                regT = "^\\d+$";
                break;
            case "qq":
                regT = "^[1-9]\\d{4,15}$";
                break;
            case "skype":
                regT = "^[A-Za-z0-9\\-\\_\\.]{6,32}$";
                break;
            case "zip":
                regT = "^[1-9]\\d{5}$";
                break;
            case "integer":
                regT = "^[-\\+]?\\d+$";
                break;
            case "name":
                regT = "^[A-Za-z0-9\\u0391-\\uFFE5]{1,16}$";
                break;
            case "pass":
                regT = "^[A-Za-z0-9\u0391-\uFFE5]{6,16}$";
                break;
            case "answer":
                regT = "^[^\\<\\>\\\\\:\"\\?\\*\\|\\'\\;]{6,20}$";
                break;
            case "birth":
                regT = "^((?:19|20)\\d\\d)(-|\\/)(0[1-9]|1[012])(-|\\/)(0[1-9]|[12][0-9]|3[01])$";
                break;
            default:
                regT = regT;
        }
        var regX = new RegExp(regT, "i");
        if (!regX.test(iValue)) {
            booValidator = false;
            if (objMsg.style.display != "block") { objMsg.style.display = "block"; }
            objMsg.innerHTML = arrX[cItem][5];
            objMsg.className = "msg error";
            return;
        } else {
            if (objMsg.style.display != "none") { objMsg.style.display = "none"; }
            return;
        }
    }
}

//Validator:提示
function focusValidator(cItem) {
    objMsg = document.getElementById(arrX[cItem][2]);
    if (objMsg.style.display != "block") { objMsg.style.display = "block"; }
    objMsg.className = "msg tips";
    objMsg.innerHTML = arrX[cItem][4];
}

//Validator:全部验证
function runValidator(booMsgUnity) {
    if (arrX == null || arrX.length < 1) {
        return true;
    }
    booValidator = true;   
    for (var i = 0; i < arrX.length; i++) {
        isValidator(i);
        if (booMsgUnity == 1) {
            if (booValidator == false) { break; }
        }
    }
    if (booValidator == false) {
        return false;
    } else {
        return true;
    }
}

//显示code
function checkCode() {
    var code = "";
    var codeLength = 6;    
    var selectChar = new Array(0, 1, 2, 3, 4, 5, 6, 7, 8, 9, "A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
    for (var i = 0; i < codeLength; i++) {
        var charIndex = Math.floor(Math.random() * 36);
        code += selectChar[charIndex];
    }
    var expire;
    expire = new Date((new Date()).getTime() + 0.1 * 3600000);
    expire = ";expires=" + expire.toGMTString() + ";path=/;";
    document.cookie = "code=" + encodeURI(code) + expire;
    if (document.getElementById("login_code") != null) {
        setID("login_code", code, "value");
    } else {
        html_code = "&nbsp;&nbsp;&nbsp;<input id=\"login_code\" type=\"text\" readonly=\"readonly\" style=\"width:80px;height:24px;text-align:center;border:0;line-height:24px;color:red;font-family:Arial;font-weight:bolder;letter-spacing:3px;font-style:italic;background-color:#eaf3ff;cursor:pointer;\" value=\"" + code + "\" title=\"刷新验证码\" onclick=\"checkCode();\" />";
        document.write(html_code);
    }
    if (document.getElementById("u_code") != null) setID("u_code", "", "value");
}

function writeGoogleADs(adSlot, adW, adH, adNote) {
    document.writeln("<script type=\"text/javascript\"><!--");
    document.writeln("google_ad_client = \"pub-8683919961926629\";");
    document.writeln("google_ad_slot = \"" + adSlot + "\";");
    document.writeln("google_ad_width = " + adW + ";");
    document.writeln("google_ad_height = " + adH + ";");
    document.writeln("//-->");
    document.writeln("</script>");
    document.writeln("<script type=\"text/javascript\" src=\"http://pagead2.googlesyndication.com/pagead/show_ads.js\">");
    document.writeln("</script>");
}

function processRegion(b_i) {
    var t_id = "";
    if (b_i == null) {
        var o_a = document.getElementById("s_r_a");
        var o_b = document.getElementById("s_r_b");
        var o_c = document.getElementById("s_r_c");
        if (o_c.disabled == false) { t_id = getSelect("s_r_c"); }
        if (t_id == "" && o_b.disabled == false) { t_id = getSelect("s_r_b"); }
        if (t_id == "" && o_a.disabled == false) { t_id = getSelect("s_r_a"); }
    }
    if (t_id == "") { t_id = 0; }
    window.location = "/c-" + t_id + "-" + the_cid + "-0.htm";
}

function changeRegionA() {
    var o_a = document.getElementById("s_r_a");
    var o_b = document.getElementById("s_r_b");
    var o_c = document.getElementById("s_r_c");
    o_b.options.length = 0;
    o_b.options.add(new Option("全部", ""));
    o_b.disabled = true;
    o_c.options.length = 0;
    o_c.options.add(new Option("全部", ""));
    o_c.disabled = true;
    var t_id = o_a.options[o_a.selectedIndex].value;
    var t_text = o_a.options[o_a.selectedIndex].text;
    if (t_id == null || t_id == "") { return; }
    var arrR = dataRegion.split(",");
    for (var i = 0; i < arrR.length - 1; i++) {
        if (arrR[i].substring(0, 2) == t_id.substring(0, 2) && arrR[i].substring(2, 6) != "0000") {
            if (arrR[i].substring(4, 6) == "00" || arrR[i].substr(2, 1) == "9" || t_text.substr((t_text.length - 1), 1) == "市") {
                o_b.options.add(new Option(arrR[i].substring(7, arrR[i].length), arrR[i].substring(0, 6)));
            }
        }
    }
    if (o_b.options.length > 1) { o_b.disabled = false; }
}

function changeRegionB() {
    var o_a = document.getElementById("s_r_a");
    var o_b = document.getElementById("s_r_b");
    var o_c = document.getElementById("s_r_c");
    o_c.options.length = 0;
    o_c.disabled = true;
    o_c.options.add(new Option("全部", ""));
    var t_id = o_b.options[o_b.selectedIndex].value;
    var a_text = o_a.options[o_a.selectedIndex].text;
    a_text = a_text.substr((a_text.length - 1), 1);
    if (t_id == null || t_id == "" || t_id.substr(2, 1) == "9" || a_text == "市") { return; }
    var arrR = dataRegion.split(",");
    for (var i = 0; i < arrR.length - 1; i++) {
        if (arrR[i].substring(0, 4) == t_id.substring(0, 4) && arrR[i].substring(4, 6) != "00") {
            o_c.options.add(new Option(arrR[i].substring(7, arrR[i].length), arrR[i].substring(0, 6)));
        }
    }
    if (o_c.options.length > 1) { o_c.disabled = false; }
}

function initSelectRegion(t_id) {
    var o_a = document.getElementById("s_r_a");
    var o_b = document.getElementById("s_r_b");
    var o_c = document.getElementById("s_r_c");
    if (o_a == null || o_b == null || o_c == null || dataRegion == null) { return; }
    o_a.options.add(new Option("全部", ""));
    var arrR = dataRegion.split(",");
    for (var i = 0; i < arrR.length - 1; i++) {
        if (arrR[i].substring(2, 6) == "0000") {
            o_a.options.add(new Option(arrR[i].substring(7, arrR[i].length), arrR[i].substring(0, 6)));
        }
    }
    if (window.attachEvent) { o_a.attachEvent("onchange", changeRegionA); o_b.attachEvent("onchange", changeRegionB); }
    if (window.addEventListener) { o_a.addEventListener("change", changeRegionA, false); o_b.addEventListener("change", changeRegionB, false); }
    if (t_id != null) {
        setSelect("s_r_a", t_id.substring(0, 2) + "0000");
        changeRegionA();
        if (o_b.disabled == false) {
            setSelect("s_r_b", t_id.substring(0, 4) + "00");
            setSelect("s_r_b", t_id);
            changeRegionB();
            if (o_c.disabled == false) { setSelect("s_r_c", t_id); }
        }
    }    
}
