/**============ÏÂÀ­ËÑË÷==========**/
HeaderV3("headerv3_search_modMusicPer")
function HeaderV3(asWrapperId){
    var U = iUtil();
    
    
    if(!asWrapperId){
		return false;
    }
    var leSearchMod = document.getElementById(asWrapperId);
	if(!leSearchMod){
		return false;
	}
	var dom = {
        searchMod:leSearchMod,        
        searchKeyWord:leSearchMod.getElementsByTagName("input")[0],
        searchType:leSearchMod.getElementsByTagName("label")[0],
        searchTypeList:leSearchMod.getElementsByTagName("ul")[0],
        searchSubmit:leSearchMod.getElementsByTagName("a")[0],
        mask:document.getElementById("uniform_headerv3_mask")
    };
    var ctrl = {
        cssOver:"overApp",
        cssLast:"last",        
        searchType:"searchall.php?"
    };

    listen();
    
    function listen(){

        U.addEvent(dom.searchType,"mouseover",onOverSearchType);
        U.addEvent(dom.searchType,"mouseout",onOutSearchType);
        U.addEvent(dom.searchTypeList,"mouseover",onOverSearchType);
        U.addEvent(dom.searchTypeList,"mouseout",onOutSearchType);
        
        U.addEvent(dom.searchTypeList,"click",onClickSearchItem);
        
        U.addEvent(dom.searchKeyWord,"keyup",onKeyUpSearchKeyWord);
        U.addEvent(dom.searchSubmit,"click",doSearch);        
    }
    
  function onKeyUpSearchKeyWord(event){
		event = event || window.event;
		if(event.keyCode==13){
			doSearch();
		}
	}   
    function doSearch(){
    	setTimeout(function(){
	        location.href="http://cso.myspace.cn/search/"+ctrl.searchType+"kw="+encodeURIComponent(dom.searchKeyWord.value);    		
    	},0);
    }
    function onClickSearchItem(event){
        event = event || window.event;
        var leTarget = event.srcElement || event.target;
        if(leTarget.tagName.toLowerCase()=="a"){
            var lsText = leTarget.innerHTML;
            if(lsText.length==2){
                //lsText="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;"+lsText;
            }
            dom.searchType.innerHTML = lsText;
            ctrl.searchType=leTarget.getAttribute("itype");
            onOutSearchType();
        }
    }
    function sizeMask(){
    	if(!dom.mask){
    		return;
    	}
    	var leParent = dom.mask.parentNode;
    	dom.mask.style.width=leParent.offsetWidth-1+"px";
    	dom.mask.style.height=leParent.offsetHeight-1+"px";
    }
    
    function onOverApp(){    	
        U.addClass(dom.myLinks,ctrl.cssOver);
        dom.appMod.style.display="block";
        sizeMask();
    }
    function onOutApp(){
        U.removeClass(dom.myLinks,ctrl.cssOver);
        dom.appMod.style.display="none";
    }
    function onOverSearchType(){
		dom.searchTypeList.style.display="block";
    }
    function onOutSearchType(){
        dom.searchTypeList.style.display="none";    
    }    

    
    function iUtil(){
        return {        
            loadJsonP: function(asUrl, afCallback){
                if (!asUrl) {
                    return false;
                }
                var lsUrl = asUrl;
                if (lsUrl.indexOf("callback=") == -1) {
                    var lsGUID="_autoCallBack"+Math.floor(Math.random()*16000).toString(16);
                    lsUrl = lsUrl + (lsUrl.indexOf("?") != -1 ? "&" : "?") + "callback=" + lsGUID;
                }
                window[lsGUID] = afCallback;
                
                var leTag = document.createElement('script');
                leTag.setAttribute('type', 'text/javascript');
                leTag.setAttribute('src', lsUrl);
                document.getElementsByTagName('head')[0].appendChild(leTag);				
            },  
			domReady: function(afCallback){
				if (!afCallback){
					return;
				}
				if (document.addEventListener) {
					document.addEventListener("DOMContentLoaded", function(){
						afCallback()
					}, false);
				}else{
					(function(){
						try {
							document.documentElement.doScroll("left");
						} catch(error) {
							setTimeout( arguments.callee,0);
							return;
						}
						afCallback();
					})();
				}
			},                 	
            addEvent:function(aeTag, asEvt, afHandler){
                if (!aeTag) {
                    return false;
                }
                if (navigator.userAgent.indexOf("IE") != -1) {
                    aeTag.attachEvent("on" + asEvt, afHandler);
                } else {
                    aeTag.addEventListener(asEvt, afHandler, false);
                }
            }, 
            byClass:function(asClass, aeP, asTag){
                var lxNew = [];
                asClass = asClass == null ? "" : asClass;
                aeP = aeP == null ? document : aeP;
                asTag = asTag == null ? "*" : asTag;
                
                var lxTag = aeP.getElementsByTagName(asTag);
                var pattern = new RegExp("(^|\s)" + asClass + "(\s|$)");
                for (var i = 0; i < lxTag.length; i++) {
                    if ((" " + lxTag[i].className + " ").indexOf(" " + asClass + " ") != -1) {
                        lxNew.push(lxTag[i]);
                    }
                }
                return lxNew;
            },            
            hasClass:function(aeTag,asClass){
                if (!aeTag || !aeTag.className) {
                    return false;
                }
                if ((" " + aeTag.className + " ").indexOf(" " + asClass + " ") == -1) {
                    return false;
                }
                return true;		
            },
            addClass:function(aeTag, asClass){
                if (!aeTag) {
                    return false;
                }		
                asClass = asClass == null ? 'cnViOver' : asClass;
                if ((" " + aeTag.className + " ").indexOf(" " + asClass + " ") == -1) {
                    aeTag.className = (aeTag.className + ' ' + asClass).replace(/(^\s*)|(\s*$)/g, "");
                }
                return aeTag;
            },
            removeClass:function(aeTag, asClass){
                if (!aeTag) {
                    return false;
                }		
                asClass = asClass == null ? 'cnViOver' : asClass;
                aeTag.className = aeTag.className.replace(new RegExp('(^|\\s)' + asClass + '(?:\\s|$)'), '$1').replace(/(^\s*)|(\s*$)/g, "");
            },
            trim:function(asStr){
                asStr = asStr == null ? "" : asStr;
                return asStr.replace(/(^\s*)|(\s*$)/g, "");
            },        
            smartView:function(asHTML, axData){
                var lxLeft = asHTML.split("{K:");
                var lxHTML = [];
                if(!axData){
                    return false;
                }
                if(axData.constructor != Array){
                    if(axData.constructor == Number){
                        var liIndex = axData;
                        axData = [];				
                        axData[liIndex - 1] = {};
                    }else{
                        axData = [axData];	
                    }
                }
                for (var i = 0; axData && i < axData.length; i++) {
                    for (var j = 0; j < lxLeft.length; j++) {
                        var lsProp = lxLeft[j].substring(0, lxLeft[j].indexOf("}"));
                        if (lsProp != "") {
                            if(lsProp == "k"){            		
                                lxHTML[lxHTML.length] = i;
                                lxHTML[lxHTML.length] = lxLeft[j].substring(lxLeft[j].indexOf("}") + 1);
                            }else{
                                lxHTML[lxHTML.length] = axData[i][lsProp];
                                lxHTML[lxHTML.length] = lxLeft[j].substring(lxLeft[j].indexOf("}") + 1);
                            }
                           
                        }
                        else {
                            lxHTML[lxHTML.length] = lxLeft[j];
                        }
                    }
                }
                return lxHTML.join("");
            }
        }
    }
    // end of util
}