var ggggg0 = new Date().getTime();
var allversion = 2;

var $d = document;
var $w = window;
var $p = parent;
var $st = $w.setTimeout;
var $ct = function(t){
    if (t != null)
        $w.clearTimeout(t);
    return null;
};

var utility = {
    /* function getPostion              */
    /* PARAM:  e: object                */
    /* RETURN: e's position in document */
    getPosition : function (e)
    {
    	var left = 0;
    	var top  = 0;
    	//while (e!=null)
    	while (e!=null)
    	{
    		left += e.offsetLeft;
    		top  += e.offsetTop;
    		e     = e.offsetParent;
    	}
    	return {x:left, y:top};
    },
    stopEvent : function (ev)
    {
        ev = ev||window.event;
        if (ev.stopPropagation)
            ev.stopPropagation();
        else
            ev.cancelBubble = true;
    },
    stopDefault : function (ev)
    {
        ev = ev||window.event;
        if (ev.preventDefault)
            ev.preventDefault();
        else
        {
            ev.returnValue = false;
        }
    },
    stopAll : function (ev)
    {
        utility.stopDefault(ev);
        utility.stopEvent(ev);
    },
    getMsPosition : function (ev)
    {
        ev = ev||window.event;
        var pos = {};
        pos.x = ev.pageX || (ev.clientX +
               (document.documentElement.scrollLeft || document.body.scrollLeft));
        pos.y = ev.pageY || (ev.clientY +
               (document.documentElement.scrollTop || document.body.scrollTop));
        return pos;
    },
    purge : function (d){
        var a = d.attributes, i, l, n; 
        if (a) { 
            l = a.length;
            for (i = 0; i < l; i += 1) {
                n = a[i].name;         
                if (typeof d[n] === 'function') {    
                    d[n] = null;         
                }        
            }   
        }   
        a = d.childNodes;  
        if (a) {    
            l = a.length;   
            for (i = 0; i < l; i += 1) { 
                this.purge(d.childNodes[i]);     
            }  
        }
    }
}

/* cookie function */
var iCookie = {};
iCookie.cookiename = "default";
iCookie.get2=function(name){
    name = name || iCookie.cookiename;
    var start=$d.cookie.indexOf(name+"=");
    if(start==-1)return null;
    
    var len=start+name.length+1;
    if((!start)&&(name!=$d.cookie.substring(0,name.length))){
        return null;
    }
    
    var end=$d.cookie.indexOf(";",len); 
    if(end==-1)end=$d.cookie.length;
    ckstr = $d.cookie.substring(len,end);
    //while ((ckstr.indexOf("$")==0)&&(ckstr.indexOf("$",2)>0))
    //    ckstr = ckstr.substring(ckstr.indexOf("$",2)+1);
    return (ckstr);
};    
iCookie.get=function(name, parentn){
    
    name = name || iCookie.cookiename;
    
    if (parentn)
    {
        if (typeof parent[name] != 'string')
            return null;
        ckstr = parent[name];
    }else
    {
        if (typeof window[name] != 'string')
            return null;
        ckstr = window[name];
    }    
    //while ((ckstr.indexOf("$")==0)&&(ckstr.indexOf("$",2)>0))
    //    ckstr = ckstr.substring(ckstr.indexOf("$",2)+1);
    return (ckstr);
};            
iCookie.set=function(name, value, upd, parentn){
    name = name || iCookie.cookiename;
    //var n=new Date().getTime();
    //n = parseInt(n/1000);
    //value = "$"+n+"|"+n+"$" + value;
    
    if ((typeof window[name] != 'string')&&(typeof window[name] != 'undefined'))
        return null;
    if (parentn)
        parent[name] = value;
    else
        window[name]=value;

    if (!upd&&(name != 'loginstate')&&(name != 'HPUID')&&(name != 'HP_SESKEY'))
    {
        if (parentn)
            parent.pingback.sendto(name, value);
        else
            pingback.sendto(name, value);
    }
}
iCookie.set2=function(name,value){
    name = name || iCookie.cookiename;
    var loginstate = iCookie.get2('loginstate');
    var expires = "expires=Sun, 1 Jan 2036 00:00:00 UTC;";
    if (loginstate == null)
    {
        loginstate = -1;
        $d.cookie="loginstate=-1;"+expires+"Path=/;Domain="+document.domain;
    }
    
    if ((loginstate == 0)&&(name != 'loginstate')&&(name != 'HPUID'))
        expires = "";
    $d.cookie=name+"="+(value)+";"+expires+"Path=/;Domain="+document.domain;
};              
iCookie.del=function(name){
    var expires = new Date(); 
    expires.setDate(expires.getDate() - 1); 

    name = name || iCookie.cookiename;
    $d.cookie=name+"=;expires="+expires.toGMTString()+";Path=/;Domain="+document.domain;
};

iCookie.clear=function(){
    var strCookie = $d.cookie;
    var arrCookie = strCookie.split(";");
    var i;
    var expires = new Date(); 
    expires.setDate(expires.getDate() - 1); 
    for(i=0; i<arrCookie.length; i++)
    {
        $d.cookie = arrCookie[i].split('=')[0]+'=;expires='+expires.toGMTString()+";Path=/;Domain="+document.domain;;; 
    }
};

/* cookie parse function */
var ckMod = {};
ckMod.getOne=function(modArray, modid){
    if (modid == "")
        return;
    for(var i in modArray)
    {
        for(var j in modArray[i])
        {
            if (modArray[i][j].indexOf(modid) == 0)
            {
                return modArray[i][j];
            }
        }
    }
    return "";
}
ckMod.newparseAll=function(){
    var ckstr = iCookie.get();
    if (!ckstr)
        return null;
    var str = ckstr.replace(/}{/g, "||");
    str = str.replace(/{/g, "||");
    str = str.replace(/}/g, "");
    var colArray = str.split("||");

    var ckarr = [colArray[0]];
    for(var i = 1; i < colArray.length; i++)
    {
        if (colArray[i] != '')
            ckarr.push(colArray[i].split("|"));
        else
            ckarr.push([]);
    }
    return ckarr;
}
ckMod.newgenAll=function(ckarr, retv){
    if (!ckarr)
        return;

    var ret = ckarr[0];
    for(var i = 1; i < ckarr.length; i++)
        ret += "{"+ckarr[i].join('|')+"}";
        
    if (retv)
        return ret;
    if (iCookie.get() != ret)
        iCookie.set(null,ret);
}

//update
ckMod.update=function(ckarr,oldck,newck){
    if (oldck == "")
        return;
    for(var i = 1; i < ckarr.length; i++)
    {
        for(var j = 0; j < ckarr[i].length; j++)
        {
            if (ckarr[i][j] == oldck)
            {
                ckarr[i][j] = newck;
                return ckarr;
            }
        }
    }
    return ckarr;
}

//remove ckstr from modArray
ckMod.remove=function(ckarr,ckstr){
    if (ckstr == "")
        return;
    for(var i = 1; i < ckarr.length; i++)
    {
        for(var j = 0; j < ckarr[i].length; j++)
        {
            if (ckarr[i][j] == ckstr)
            {
                ckarr[i].splice(j,1);
                return ckarr;
            }
        }
    }
    return ckarr;
}
//inset ckstr into modArray
ckMod.insert=function(ckarr, ckdiv, colid, divid)
{
    if (colid)
        //insert into colend
        ckarr[colid].push(ckdiv);
    else
    {
        //insert before divid
        for(var i=1; i < ckarr.length; i++)
        {
            for(var j = 0; j < ckarr[i].length; j++)
            {
                if (ckarr[i][j].indexOf(divid) == 0)
                {
                    var tmparr = ckarr[i].splice(0,j);
                    ckarr[i] = tmparr.concat(ckdiv,ckarr[i]);
                    return ckarr;
                }
            }
        }
    }
    return ckarr;
}
ckMod.insertOne=function(ckdiv, colid, divid){
    var ckarr = ckMod.newparseAll();
    if (!ckarr)
        return null;
    ckarr = ckMod.remove(ckarr, ckdiv);
    ckarr = ckMod.insert(ckarr, ckdiv, colid, divid);
    ckMod.newgenAll(ckarr);
}


var autoMouseOverOut = function(overdiv, outdiv, displaydiv, timeV)
{
    var timer = null;
    var that = this;
    this.overit = null;
    this.outit = null;
    this.overnow = null;
    this.outnow = null;
    
    this.cancel = function (){
        timer = $ct(timer);
    };
    timeV = timeV || 10;
    function displayIt(){
        for (var i in displaydiv)
            if (displaydiv[i]&&displaydiv[i].style)
                displaydiv[i].style.display = "block";
        if (that.overit)
                that.overit();
    }
    function hideIt(){
        for (var i in displaydiv)
            if (displaydiv[i]&&displaydiv[i].style)
                displaydiv[i].style.display = "none";
        if (that.outit)
                that.outit();

    }
    for (var i in overdiv)
    {
        eventutil.newevent(overdiv[i], "onmouseover", function (ev)
            {
                $ct(timer);
                if (that.overnow)
                    that.overnow();
                timer = $st(displayIt, timeV);
            }
        );
    }
    for (var i in outdiv)
    {
        eventutil.newevent(overdiv[i], "onmouseout", function (ev)
            {
                $ct(timer);
                if (that.outnow)
                    that.outnow();
                timer = $st(hideIt, timeV);
            }
        );
    }
}

var eventutil = new(function (){
    var eventhandle = [];
    var eventname = [];
    this.newevent = function (el, nm, fn)
    {
        el[nm] = fn;
        eventhandle.push(el);
        eventname.push(nm);
    }
    this.cleanup = function ()
    {
        for (var i = 0; i < eventhandle.length; i++)
        {
            eventhandle[i][eventname[i]] = null;
        }
    }
})();

function overOutTab(btnit, srcname)
{
    btnit.src = srcname;
}
function overBtn(btnit, srcname)
{
    btnit.className = srcname;
}


var m_s = function()
{
    var n=new Date().getTime();
    var c=Math.round((n+Math.random())*1000);
    with(document){
        if(cookie.indexOf("SUV=")<0)
            cookie="SUV="+c+";path=/;expires=Sun, 29 July 2026 00:00:00 UTC;domain=sogou.com";
        var i=new Image(0,0);
        i.src="http://pv.sogou.com/pv.gif?t?="+c+"?r?="+referrer;
    }
};

//backup$
if ( typeof $ != "undefined" )
	_$ = $;

var $ = function (id){
    return document.getElementById(id)||null;
};

var $aS = function (el, name, value){
    if (el&&el.style)
        el.style[name] = value;
};

var $aShow = function(els){
    if (els.length > 0)
        for (var i = 0; i < els.length; i++)
            $aS(els[i], 'display', 'block');
};
var $aHide = function(els){
    if (els.length > 0)
        for (var i = 0; i < els.length; i++)
            $aS(els[i], 'display', 'none');
};

var $isHide = function(el){
    if (!el||!el.style)
        return true;
    if (el.style.display&&el.style.display == 'none')
        return true;
    return false;
};

var $isUndef = function(el){
    if (typeof el == 'undefined')
        return true;
    return false;
};

var $aH = function (el, v){
    if (v === 0)
        v = '0';
    if (el)
        el.innerHTML = v||"";
};

var $aA = function (els, attrib, value){
    if (els.length > 0)
        for (var i = 0; i < els.length; i++)
            if (els[i])
                els[i][attrib] = value;
};

// If IE is used, create a wrapper for the XMLHttpRequest object
if ( !window.XMLHttpRequest )
	XMLHttpRequest = function(){
		return new ActiveXObject("Microsoft.XMLHTTP");
	};
	
var $ajax = function(surl, stype, sdata, scallback, scall, mod){
    var xmlhttp=new XMLHttpRequest();
    
    if(!xmlhttp)
        scallback('error', scall, false);
    else
    {
        xmlhttp.onreadystatechange=function(){
            if (xmlhttp.readyState==4)
            {
                if(xmlhttp.status==200)
                {
                    var ret=xmlhttp.responseText;
                    if (ret.indexOf('错误提示</title>') > 0)
                        ret = 'error';
                    if (scallback)
                        scallback(ret||"", scall, true);
                }
                else
                    scallback('error', scall, false);
            }
        };
        xmlhttp.open(stype||"get",surl||"",true);
    
        xmlhttp.setRequestHeader("Content-Type", "text/html");
        if (!mod)
            xmlhttp.setRequestHeader("If-Modified-Since", "Thu, 01 Jan 1970 00:00:00 GMT" );
        xmlhttp.send(sdata);
    }

};

var autoPage = function(pageLen, nextp, prevp, nextf, prevf){
    var len = pageLen; //tatoal pages
    var mn = nextp; //next page button
    var mp = prevp; //prev page button
    var nf = nextf||function(){}; //next page function
    var pf = prevf||nextf; //prev page function
    var cp = 0; //current page
    
    var next = function(){
        if (cp < len - 1){
            cp++;
            nf(cp);
            $aS(mp, 'visibility', 'visible');
            if (cp == len - 1)
                $aS(mn, 'visibility', 'hidden');
        }
    };
    var prev = function(){
        if (cp > 0){
            cp--;
            pf(cp);
            $aS(mn, 'visibility', 'visible');
            if (cp == 0)
                $aS(mp, 'visibility', 'hidden');
        }
    };
    mn.onclick = next;
    mp.onclick = prev;
    
    this.set = function(curPage, pageLen){
        cp = curPage;
        len = pageLen;
        if (cp == 0)
            $aS(mp, 'visibility', 'hidden');
        else
            $aS(mp, 'visibility', 'visible');
        if (len > 1)
            $aS(mn, 'visibility', 'visible');
        else
            $aS(mn, 'visibility', 'hidden');
    };
    
    this.set(cp, len);
};

function getdragOffset(target, ev)
{
	var docPos    = utility.getPosition(target);
	var mousePos  = utility.getMsPosition(ev);
	return {x:mousePos.x - docPos.x, y:mousePos.y - docPos.y};
}

var makeDrag = function (div, mdiv){
    if (!div)
        return;
        
    var dragOffset;
    var dragging = false;
    var thisdiv = div;
    var movediv = mdiv;
    var oldmove;
    var oldup;
    
    thisdiv.onmousedown = function (ev){
        ev = ev||window.event;
        dragOffset = getdragOffset(movediv, ev);
        dragging = true;
        oldmove = document.onmousemove||null;
        oldup = document.onmouseup||null;
        document.onmousemove = mousemove;
        document.onmouseup = mouseup;
    };
    
    var mousemove = function (ev){
        if (!dragging) return;
        try{
            var mousePos  = utility.getMsPosition(ev);
            movediv.style.top = (mousePos.y - dragOffset.y)+"px";
            movediv.style.left = (mousePos.x - dragOffset.x)+"px";
        }catch(e){
        }
    };
    
    var mouseup = function (ev){
        dragging = false;
        document.onmousemove = oldmove;
        document.onmouseup = oldup;
    };    
};

