﻿
/////////////公共代码/////////////////////////////////
//创建命名空间
function $namespace(str) {
    var arr = str.split(',');
    for (var i = 0; i < arr.length; i++) {
        // 将命名空间切成N部分, 比如mini、common等
        arr[i] = arr[i].split(".");
        str = "";
        var strEval = "";
        for (var j = 0; j < arr[i].length; j++) {
            if (j != 0) { str += "." };
            str += arr[i][j];


            // 依次创建构造命名空间对象（假如不存在的话）的语句
            // 比如先创建mini，然后创建mini.common依次下去
            strEval += "if (typeof(" + str + ") == 'undefined'){" + str + " = {}};";
        };
        if (strEval != "") { eval(strEval) };
    }
};


//根据id取dom对象
function $E(id) {
    return document.getElementById(id);
}
//写入COOKIES
function $setCookie(name, value, expiresd, path, domain, secure) {
    var expdate = new Date();
    var expires = arguments[2] || null;
    var path = arguments[3] || "/";
    var domain = arguments[4] || null;
    var secure = arguments[5] || false;
    if (expires) {
        expdate.setMinutes(expdate.getMinutes() + parseInt(expires));
    }
    var cookietemp = escape(name) + '=' + escape(value) + (expires ? '; expires=' + expdate.toGMTString() : '') + (path ? '; path=' + path : '') + (domain ? '; domain=' + domain : '') + (secure ? '; secure' : '');
    document.cookie = cookietemp;
};
//读取COOKIE
function $getCookie(name) {
    var arr, reg = new RegExp("(^| )" + name + "=([^;]*)(;|$)");
    if (arr = document.cookie.match(reg)) {
        return unescape(arr[2]);
    } else {
        return null;
    }
};
//添加事件
function $event_add(obj, type, handle) {
    if (window.addEventListener) {
        obj.addEventListener(type, handle, false);
    } else if (window.attachEvent) {
        obj.attachEvent("on" + type, handle);
    }
};


//标签后的箭头加上hover弹出下拉框效果
function $addHover(obj) {
    var option = {
        outLiID: "",
        hoverSpanID: "",
        downListID: ""
    }
    for (var i in obj) {
        option[i] = obj[i];
    }
    $E(option.hoverSpanID).onmouseover = function() {
        setTimeout(function() {
            $E(option.downListID).className = "now";
            $E(option.outLiID).onmouseover = function() {
                $E(option.downListID).className = "now";
            };
        }, 500);
    };
    $E(option.downListID).onmouseover = function() {
        $E(option.downListID).className = "now";
        $E(option.outLiID).onmouseover = "";
    };
    $E(option.downListID).onmouseout = function() {
        $E(option.downListID).className = "now h";
    };
    $E(option.outLiID).oumouseout = function() {
        $E(option.downListID).className = "now h";
    };
};

//加载js代码
function $loadScript(url, sid) {
    var s = document.createElement("script");
    s.charset = "gb2312";
    s.id = sid + Math.random();
    document.getElementsByTagName("head")[0].appendChild(s);
    s.src = url;
    return s;
};
//js加载器，有回调的
function loadJs(obj) {
    this.success = function() { }; //成功的回调
    this.fail = function() { }; 	//完全失败
    this.error = function() {		//出错了,根据最大错误量来重试,超出最大错误量就抛出完全失败,不建议重写
        if (this.errorNum <= this.maxErrorNum) {
            this.load();
        } else {
            this.fail()
        }
    };
    this.scriptHander = ""; 	//script标签的句柄
    this.errorNum = 0; 		//当前重试的次数
    this.maxErrorNum = 3; 		//出现错误时最多可以重试的次数
    this.jsUrl = ""; 			//js文件的地址,不可以为本地文件,否则无效
    this.jsTag = "load" + Math.random(); //唯一标记
    if (obj) {		//初始化时可以初始化的内容
        if (obj.success) { this.success = obj.success; }
        if (obj.fail) { this.fail = obj.fail; }
        //if(obj.error){this.error=obj.error;}
        if (obj.maxErrorNum) { this.maxErrorNum = obj.maxErrorNum; }
        if (obj.jsUrl) { this.jsUrl = obj.jsUrl; }
        if (obj.jsTag) { this.jsTag = obj.jsTag; }
    };
    //load方法,开始加载文件.这里支持仿佛加载同一个文件的,但会删除原来那个,所以使用时要注意反复加载的问题.
    this.load = function(url, jsonvar, getNew) {
        if (url) this.jsUrl = url; 		//手工调用load时赋值
        if (jsonvar) this.jsTag = jsonvar;
        if (this.jsTag == "" || this.jsUrl == "") { alert("url或者唯一标记为空"); return false; } 	//没有初始化又强制启动LOAD时一定要报错
        if ($E(this.jsTag)) {
            this.success();

            return;
        };
        this.scriptHander = $loadScript(this.jsUrl, this.jsTag);
        var self = this;

        //只支持IE的事件
        this.scriptHander.onreadystatechange = function() {
            if (this.readyState && this.readyState == "loaded") {
                self.success();
            }
        };
        //只支持firefox的事件,可以支持失败状态
        this.scriptHander.onload = function() { self.success(); };
        this.scriptHander.onerror = function() { self.errorNum += 1; self.error(); };
    };
    if (this.jsUrl && this.jsTag) { this.load() } //如果初始化时已经有足够的参数就可以自动LOAD了
};


/////////////搜索框代码/////////////////////////////////

$namespace("PP.head");
PP.head.init = function() {
    //初始化下拉菜单的功能
    //PP.head.bindDownMenus();
    //输出用户欢迎语
    //PP.head.showWelcome();
    //显示公告内容
    //PP.head.showNotic();
    //初始化选择搜索类别
    PP.head.changeType();
    //初始化搜索提示功能
    PP.head.bindSearchTips();
    //关闭所有下拉菜单
    //PP.head.closeAllTips();
    //showMenu
    //PP.head.showMenu();
};
//显示公告内容
PP.head.showNotic = function() {
    if ($E("noticetext").innerHTML.replace(/ /g, "").length > 0 && $getCookie("noticeState") != "1") {
        $E("topnotice").style.display = "block";
    }
    $event_add($E("noticeclose"), "click", closeClick);
    function closeClick() {
        $E("topnotice").style.display = "none";
        $setCookie('noticeState', "1", 60 * 24, '/', 'paipai.com');
    }
};
//绑定搜索类型改变事件
PP.head.changeType = function() {
    var typeTab = $E("searchTab"), typeItem;
    var typeNodes = typeTab.getElementsByTagName("p");
    var changeFun = function() {
        var typeTab = $E("searchTab"), typeItem;
        var typeNodes = typeTab.getElementsByTagName("p");
        var t = this.getAttribute("attr");
        for (var n = 0; n < typeNodes.length; n++) {
            if (n == t) {
                    //价格
//                if (t == 2) {
//                    $E("searchKeyword").style.display = "none";
//                    $E("searchKeywordPrice").style.display = "block";
//                }
//                else {
//                    $E("searchKeyword").style.display = "block";
//                    $E("searchKeywordPrice").style.display = "none";
//                }
                typeNodes[n].className = "now";
                $E("searchType").value = t;
            } else {
                typeNodes[n].className = "";
            }
        }
    };
    for (var i = 0; i < typeNodes.length; i++) {
        typeNodes[i].setAttribute("attr", i);
        typeNodes[i].onclick = changeFun;
    }
};
//初始化下拉菜单的功能
PP.head.bindDownMenus = function() {
    //我的拍拍下拉菜单
    $addHover({
        outLiID: "myPPLi", //外层元素的id
        hoverSpanID: "myPPSpan", //hover元素的id
        downListID: "myPPList"	//下拉框的id	
    });
    //帮助下拉菜单
    $addHover({
        outLiID: "helpLi", //外层元素的id
        hoverSpanID: "helpSpan", //hover元素的id
        downListID: "helpList"	//下拉框的id	
    });
    //更多下拉菜单的触发
    $E("moreSpan").onmouseover = function() {
        window._headShowMoreList = true;
        window.morefunc = setTimeout(function() {
            $E("moreList").style.visibility = 'visible';
        }, 500);
    };
    $E("moreSpan").onmouseout = function() {
        window._headShowMoreList = false;
        setTimeout(function() {
            if (!window._headShowMoreList) {
                $E("moreList").style.visibility = 'hidden';
            }
        }, 2000);
        clearTimeout(window.morefunc);
    };
    $E("moreList").onmouseover = function() {
        window._headShowMoreList = true;
        $E("moreList").style.visibility = 'visible';
    };
    $E("moreList").onmouseout = function() {
        window._headShowMoreList = false;
        $E("moreList").style.visibility = 'hidden';
        clearTimeout(window.morefunc);
    };

    //所有类目的下拉菜单
    $E("allCatDt").onmouseover = function() {
        window._headShowAllCat = true;
        window.downfunc = setTimeout(function() {
            var _t = $E("catFrame");
            var _f = $E("catFrameItem");
            (!_f.src) ? _f.src = _f.getAttribute("src1") : "";
            _t.className = (_t.getAttribute("isOpen") == "0") ? 'm' : 'm h';
            _t.setAttribute("isOpen", (_t.getAttribute("isOpen") != "0") ? "0" : "1");
        }, 500);

    };
    $E("allCatDt").onmouseout = function() {
        window._headShowAllCat = false;

        setTimeout(function() {
            if (!window._headShowAllCat) {
                $E("catFrame").className = 'm h';
                $E("catFrame").setAttribute("isOpen", "0");
            }
        }, 500);
        clearTimeout(window.downfunc);
    };
    $E("catFrameItem").onmouseover = function() {
        window._headShowAllCat = true;
        $E("catFrame").className = 'm';
        $E("catFrame").setAttribute("isOpen", "1");
    };
    $E("catFrameItem").onmouseout = function() {
        window._headShowAllCat = false;
        $E("catFrame").className = 'm h';
        $E("catFrame").setAttribute("isOpen", "0");
        clearTimeout(window.downfunc);
    };
};
//输出用户欢迎语
PP.head.showWelcome = function() {
    var hs = unescape($getCookie("hs"));
    var userName = hs ? hs.replace(/[0,1]\/\d+\/[0,1]\//, "") : "";
    if (userName && $getCookie("skey")) {
        $E("headLogin").innerHTML = '欢迎您，' + userName + '<a href="http://member.paipai.com/cgi-bin/c2cUser_LoginOut" class="blue">[退出]</a>';
    }
    if (userName && $getCookie("skey") == null) {
        $E("headLogin").innerHTM = '欢迎您，' + userName + '<a href="http://member.paipai.com/cgi-bin/login_entry?PTAG=20034.1.1">登录</a>　<a href="http://freereg.qq.com/?PTAG=20034.1.2">免费注册</a>';
    }
};
//初始化搜索提示功能
PP.head.bindSearchTips = function() {
    //存储进行搜索的值，如果没有变化则不启动
    window._searchValue = "";
    //鼠标在动态结果上移动
    var nowLink = -1;
    var preLink = 0;
    var keyNumber = 0;



    //鼠标外部点击后隐藏搜索和选择的下拉框
    $event_add(document, "click", docclick);

    function docclick() {
        if ($E("showAutoResult").style.display == "block") {
            hideResult();
        }
    };
    $E("wd").onclick = function() {
        if (this.value == '办公用品配送服务') this.value = '';
    };
    $E("wd").onkeydown = function() {
        val = this.value;
    };
    $E("wd").onkeyup = function(e) {
        e = window.event ? window.event : e;
        var keyCode = window.event ? e.keyCode : e.which;
        //var keyCode=$getKeyCode();
        if (keyCode != 13 & keyCode != 38 && keyCode != 40 && this.value != '') {
            if (this.value != _searchValue) {
                hideResult();
                showResult(this.value);
            };
        } else if (keyCode == 13) {
            if (val != '') {
                submitTo();
            }
        } else if (this.value == '') {
            hideResult();
        };
        _searchValue = this.value;
    };

    //$event_add(window,"load",function(){$E("KeyWord").focus();});


    //绑定提交事件	
    function submitclick() {
        submitTo();
    };
    $event_add($E("headSubmitBtn"), "click", submitclick);

    //选择搜索结果的操作
    function showKeyDown(code) {
        if (code == 38 || code == 40) {
            preLink = nowLink;
            if (code == 38) {
                nowLink--;
            } else if (code == 40) {
                nowLink++;
            };
            if (nowLink < 0) {
                nowLink = keyNumber - 1;
            } else if (nowLink > keyNumber - 1) {
                nowLink = 0;
            };
            var objNowLink = $E("showAutoResult").childNodes[0].childNodes[nowLink];
            if (objNowLink) {
                objNowLink.className = "autoResultLink";
                $E("KeyWord").value = dataSearch[nowLink][0];
            };
            if (nowLink != -1) {
                var objPreLink = $E("showAutoResult").childNodes[0].childNodes[preLink];
                if (objPreLink) {
                    objPreLink.className = "";
                }
            }
        } else if (code == 13) {
            if (nowLink != -1) {
                $E("KeyWord").value = dataSearch[nowLink][0];
                hideResult();
            };
            submitTo();
        }
    };
    //搜索提交操作
    function submitTo() {
        var v = $E('wd').value, t = $E("searchType").value;//p1=$E("startprice").value;p2=$E("endprice");
        if (v == '办公用品配送服务') {
            v = $E('wd').value = '';
        };
        if (v == "") {return;
//			if(p1 != "" || p2 != ""){
//				$E("searchForm").action = "/list.aspx";
//				$E("searchForm").submit();
//			}
        } else {
            if (t && t == "1") {
                $E("searchForm").action = "/list.aspx";
            } else {
            $E("searchForm").action = "/list.aspx";
            }
            $E("searchForm").submit();
        }
    };
    //开始加载相关关键词，并显示
    function showResult(theValue) {
        var searchType = $E("searchType").value;
        if (searchType != "1") {
            var findLoader = new loadJs();
            findLoader.success = function() {
                if (typeof (dataSearch) != "undefined") {
                    var L = dataSearch.length;
                    if (L > 0) {
                        var strAuto = '<ul>';
                        for (var i = 0; i < dataSearch.length; i++) {
                            strAuto += '<li><a href="http://search.paipai.com/cgi-bin/comm_search?keywordtype=goods&KeyWord=' + dataSearch[i][0] + '&ADTAG=40.1.1"><span>' + dataSearch[i][0] + '</span>';
                            if (dataSearch[i][1] != 0) {
                                strAuto += '<em>约' + dataSearch[i][1] + '结果</em>';
                            };
                            strAuto += '</a></li>';
                        };
                        strAuto += '</ul>';
                        $E("showAutoResult").innerHTML = strAuto;
                        $E("showAutoResult").style.display = "block";
                        $E("maskAuto").style.display = "block";
                        nowLink = -1;
                        preLink = 0;
                        keyNumber = L;
                        $E("wd").onkeydown = function(e) {
                            e = window.event ? window.event : e;
                            var keyCode = window.event ? e.keyCode : e.which;
                            //var keyCode=$getKeyCode();	
                            showKeyDown(keyCode);
                        }
                    }
                }
            };
            findLoader.fail = function() { alert("载入“http://search.paipai.com/cgi-bin/isuggest?KeyWord=”" + theValue + "失败"); };
            findLoader.load("http://search.paipai.com/cgi-bin/isuggest_new?KeyWord=" + theValue);
        }
    };
    //隐藏搜索结果列表
    function hideResult() {
        $E("showAutoResult").style.display = "none";
        $E("maskAuto").style.display = "none";
    };

};

PP.head.showMenu = function() {
    var locArr = window.location.href.replace("http://", "").split("/");

    if (locArr[0] == "www.paipai.com" && locArr.length <= 2) {
        $E("homeMenu").className += " now";
        return;
    }
    var menu = locArr[1];
    var menu2 = window.location.href.replace("http://", "").split(".")[0];
    if ($E(menu + "Menu")) {
        var nowMenuClass = $E(menu + "Menu").className;
        if (nowMenuClass != "") {
            nowMenuClass += " now";
        }
        else {
            nowMenuClass = "now";
        }
        $E(menu + "Menu").className = nowMenuClass;
    }

    if ($E(menu2 + "Menu")) {
        var nowMenuClass = $E(menu2 + "Menu").className;
        if (nowMenuClass != "") {
            nowMenuClass += " now";
        }
        else {
            nowMenuClass = "now";
        }
        $E(menu2 + "Menu").className = nowMenuClass;
    }

    if ($E("navBar")) {
        $E("navBar").className += " " + menu + "_skin";
    }
};

