//添加onload事件,只需在需要添加的相应函数后面使用该函数,为了避免覆盖其他的初始化函数
function addLoadEvent(func){
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
		window.onload = func;
	}else{
		window.onload = function(){
			oldonload();
			func();
		}
	}
}

//使用$(id)获取元素,来自prototype.js
function $(element) {
	if (arguments.length > 1) {
		for (var i = 0, elements = [], length = arguments.length; i < length; i++)
			elements.push($(arguments[i]));
		return elements;
	}
	if (typeof element == 'string')
		element = document.getElementById(element);
	return element;
}

//2级DOM的兼容写法,为元素添加事件监听
function addEventHandler(oTarget, sEventType, fnHandler) {
    if (oTarget.addEventListener) {
        oTarget.addEventListener(sEventType, fnHandler, false);
    } else if (oTarget.attachEvent) {
        oTarget.attachEvent("on" + sEventType, fnHandler);
    } else {
        oTarget["on" + sEventType] = fnHandler;
    }
}

//把一个元素添加到目标元素的后面,insertBefore的增强版
function insertAfter(newElement,targetElement){
	var parent = targetElement.parentNode;
	if(parent.lastChild == targetElement){
		parent.appendChild(newElement);
	}else{
		parent.insertBefore(newElement,targetElement.nextSibling);
	}
}

//--以下3个函数来自PPK谈JS,建立XMLHTTP对象并获取数据--
var XMLHttpFactories = [
	function(){return new XMLHttpRequest()},
	function(){return new ActiveXObject("Msxml2.XMLHTTP")},
	function(){return new ActiveXObject("Msxml3.XMLHTTP")},
	function(){return new ActiveXObject("Microsoft.XMLHTTP")}
];
function createXMLHTTPObject(){
	var xmlhttp = false;
	for(var i=0;i<XMLHttpFactories.length;i++){
		try{
			xmlhttp = XMLHttpFactories[i]();
		}catch(e){
			continue;
		}
		break;
	}
	return xmlhttp;
}
function sendRequest(url,callback,postData){
	var req = createXMLHTTPObject();
	if(!req) return;
	var method = (postData) ? "POST":"GET";
	req.open(method,url,true);
	req.setRequestHeader('User-Agent','XMLHTTP');
	if(postData)
		req.setRequestHeader('Content-type','application/x-www-form-urlencoded;text/html;charset=gb2312');
	req.onreadystatechange = function(){
		if(req.readyState != 4) return;
		if(req.status != 200 && req.status != 304){
			alert('HTTP error : '+req.status);
			return;
		}
		callback(req);
	}
	if(req.readyState == 4) return;
	req.send(postData);
}


//此函数是兼容IE,FF的下一个兄弟节点的
function next(e){
	if(!e) return;
	do e = e.nextSibling;
	while(e && e.nodeType != 1)
	return e;
}

//屏蔽空格键
function isNull() 
{
    if (window.event != null && window.event.keyCode==32) {
        return false;
    }
}

/*----------------------------------------------------------------------------------------------------

		上面是工具函数
		下面才是功能函数

----------------------------------------------------------------------------------------------------*/

//添加收藏--兼容FF
function addFav(url,title){//(链接,标题)
	if(document.all) window.external.addFavorite(url,title);
    else if(window.sidebar) window.sidebar.addPanel(title,url,'');
}

//设置为首页--兼容FF
function setHomepage(url){//(链接)
	if(document.all){
		document.body.style.behavior='url(#default#homepage)';
		document.body.setHomePage(url);
	}
	else if(window.sidebar){
		if(window.netscape){
			try{netscape.security.PrivilegeManager.enablePrivilege("UniversalXPConnect");}  
			catch(e){alert( "对不起！该操作被浏览器拒绝．\r\n如果想启用该功能，请在地址栏内输入 about:config，然后将项 signed.applets.codebase_principal_support 值该为 true" );return false;}
		} 
	var prefs = Components.classes['@mozilla.org/preferences-service;1'].getService(Components. interfaces.nsIPrefBranch);
	prefs.setCharPref('browser.startup.homepage',url);
	}
}


//改变style的href属性,达到切换皮肤的目的
function changeStyle(skin){
	var skinNow = document.getElementById('skin_now');
	var href = skinNow.href;
	href = href.replace(/skin.\.css/,'skin'+skin+'.css');
	skinNow.href = href;
}

//图片轮换效果
function switchImg(img){
	var wrap = $(img);
	if(!wrap) return false;
	var imgs = this.imgs = wrap.getElementsByTagName('dd');
	var numbers = this.numbers = wrap.getElementsByTagName('dt');
	var ass = wrap.getElementsByTagName('a'),as = this.as = [],o = this;
	this.asn = 0;
	for(var i=0;i<ass.length;i++){
		if(ass[i].parentNode.nodeName.toUpperCase() == 'DT'){
			as.push(ass[i]);
		}
	}
	//给每个数字注册事件处理函数
	for(var i=0;i<as.length;i++){
		as[i].onmouseover = (function(n){
			return function(){
				o.asn = n;
				o.play();
			}
		})(i);
		as[i].onclick = function(){this.blur();return false};
	}
	//给整个包含块注册鼠标移进/出的播放控制
	wrap.onmouseover = function(){o.stop()};
	wrap.onmouseout = function(){o.auto()};
	
	//加载的时候自动播放
	this.auto();
}

switchImg.prototype.play = function(){
	for(var i=0;i<this.as.length;i++){
		this.imgs[i].className = this.as[i] == this.as[this.asn]?'switch_now':'';
		this.numbers[i].className = this.as[i] == this.as[this.asn]?'switch_now':'';
	}
}

switchImg.prototype.auto = function(){
	var o = this;
	function doplay(){
		o.asn = o.asn == (o.imgs.length-1) ? 0 : ++o.asn;
		o.play();
	}
	o.timer = setInterval(doplay,5000);
}
switchImg.prototype.stop = function(){clearInterval(this.timer);}

//复制函数
function copyValue(value){
	if(window.clipboardData){
		window.clipboardData.setData('Text',value);
	}else{
		if(!document.getElementById('flashcopier')){
			var flashcopier = document.createElement('div');
			flashcopier.id = 'flashcopier';
			document.body.appendChild(flashcopier);
		}
		document.getElementById('flashcopier').innerHTML = '<embed src="_clipboard.swf" FlashVars="clipboard='+escape(value)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';
	}
}


//文字或图片滚动效果
function rollBody(elm,dir,timer,speed,speedType,rollType){
	//elm(element)元素,可以是ID名或者元素的引用
	//dir(direction)方向,上下左右.up,down,left,right
	//timer计时器,有则认为是滚动一下,停一段时间,否则是一直滚动

	//检测是否获取了元素,没有则退出
	if(typeof(elm)=='string') elm = $(elm);
	if(typeof(elm)!='object') return false;

	//初始化需要输入的属性
	this.elm = elm;//设置元素的引用
	this.dir = dir ? dir : 'up';//设置滚动方向,默认是向上滚动
	this.timer = timer ? timer : 0;//设置滚动暂停间隔,默认为0则没有间隔
	this.speed = speed ? speed :20;//设置滚动的速度,越小越快
	this.speedType = speedType ? speedType : 1;//设置滚动速度的方式,有3种,匀速1,先快后慢2,先慢后快3
	this.rollType = rollType ? rollType : 1;//设置滚动方式,有2种,一项一项的滚1,翻屏滚动2

	if(this.dir == 'up'|| this.dir == 'down'){
		this.length = elm.clientHeight;
		this.maxLength = elm.scrollHeight;
		this.offset = 'scrollTop';
	}
	else if(this.dir == 'left'|| this.dir == 'right'){
		this.length = elm.clientWidth;
		this.maxLength = elm.scrollWidth;
		this.offset = 'scrollLeft';
	}

	
	//设置2倍内容,实现无间隙滚动
	elm.innerHTML += elm.innerHTML;

	var obj = this;
	elm.onmouseover = function() {obj.paused = 1;}
	elm.onmouseout = function() {obj.paused = 0;}
	obj.play();
}
rollBody.prototype.roll = function(){
	var o = this,end = (Math.floor(o.elm[o.offset]/o.length)+1) * o.length;
	function doRoll(){
		if(o.paused){
			o.rollTimer = setTimeout(doRoll,20);
		}else if(o.elm[o.offset] < end){
			o.elm[o.offset] += 1;
			o.rollTimer = setTimeout(doRoll,20);
		}else{
			if(o.elm[o.offset] >= o.maxLength){
				o.elm[o.offset] -= o.maxLength;
			}
			o.play();
		}
//		$('dasdf').innerHTML += o.elm[o.offset] +'---------'+end +'<br />';
	}
	doRoll();
}
rollBody.prototype.play = function(){
	var o = this;
	o.playTimer = setTimeout(function(){o.roll()},3000)
}

/*----------------------------------------------------------------------------------------------------
    错误提示
----------------------------------------------------------------------------------------------------*/

var errObj;
var enableCode = false;

// 显示错误提示层
function ShowErrAlert(errinfo,targetUrl)
{
    if(!targetUrl)
        targetUrl ="";
        
    var errAlert = $("errAlert");
	if(!errAlert){
		errAlert = document.createElement('div');
		errAlert.className = 'popdiv';
		errAlert.id = 'errAlert';
		errAlert.innerHTML = "<div class='popdiv_bg'></div>\
		    <!--[if IE 6]>\
		    <iframe id=\"popdiv_iframe\" src=\"#\" width=\"100%\" height=\"100%\" class=\"popdiv_bg\"></iframe>\
		    <![endif]-->\
		    <div class='popdiv_wrap'>\
		    <div class='pop_score'>\
		    <h3>友情提示：<a href='' onclick=\"return CloseErrAlert('" + targetUrl + "');\" title='关闭'>&nbsp;</a></h3>\
		    <div id='errInfo'></div>\
		    </div>\
		    </div>";
		document.body.appendChild(errAlert);
	}
	setTimeout(function(){
    $("errInfo").innerHTML = "<p>" + errinfo + "</p>";
    errAlert.style.display = "block";
	},50);
	return false;
}

// 关闭错误提示层
function CloseErrAlert(targetUrl)
{
    if($("errAlert") != null)
    {
	    $("errAlert").style.display = "none";
    	
	    //alert(targetUrl);
    	
	    if(enableCode)
	    {
		    enableCode = false;
    		
		    if(targetUrl.length > 0)
		    {
                window.location.href= targetUrl;
		    }
		    else
		    {
		        window.location.reload();
		    }
	    }
	    else
	    {
	        if(errObj != null)
	        {
		        errObj.focus();
		        errObj.select();
		    }
	    }
	}
	
	return false;
}

/*----------------------------------------------------------------------------------------------------
    用户登录
----------------------------------------------------------------------------------------------------*/

var rootPath = "/";

// 刷新验证码
function reloadcode(ispop)
{ 
    var valcode = $('valcode');
    
    if(ispop)
    {
        valcode = $('valcode_pop');
    }
    
    valcode.src = rootPath + "ascx/genvalidecode.aspx?time="+Math.random();
}

// 找回密码
function getpassword(ispop)
{
	function GetPwdCall(req)
	{
		var rs = req.responseText.replace(/[\s\t]/gmi,'');
									
		if(rs.search(/^true/) != -1)
		{
			$("getpwdpanel").innerHTML = "成功!";                
			return false;
		}
		else if(rs.search(/^false/) != -1)
		{		    
			$("getpwdpanel").innerHTML = "错误!";
			return false;
		}
		return false;
	}	
	// 检测用户名输入
	errObj = $("getpwusername");
	
	if(errObj.value == "")
	{
	    if(!ispop)
	    {
		    ShowErrAlert("请输入用户名!");
		}
        else
        {
            $('getpwdpanel').innerHTML = "请输入用户名!";
        }
		return false;
	}	
	sendRequest(rootPath + "ascx/login_index_process.aspx", GetPwdCall, "type=getpwd&uname=" + $("getpwusername").value);
}

// 用户登录
function login(ispop)
{    
    function LoginCall(req)
    {
        var rs = req.responseText.replace(/[\s\t]/gmi, '');
                        
        if(rs.search(/^0/) != -1)
	    {
	        window.location.reload();
	    }
	    else if(rs.search(/^-1/) != -1)
	    {		    
	        errObj = $("uli_tbCode");
	        if(!ispop)
	        {
                ShowErrAlert("验证码输入错误!");
            }
            else
            {
                $('find_pass').style.display = 'block';
                $('getpwdpanel').innerHTML = "验证码输入错误!";
            }
            return false;
	    }
	    else if(rs.search(/^-2/) != -1)
	    {		    
	        if(!ispop)
	        {
                ShowErrAlert("用户名或密码输入错误!");
                enableCode = true;
            }
            else
            {
                $('find_pass').style.display = 'block';
                $('getpwdpanel').innerHTML = "用户名或密码输入错误!";
            }
            return false;
	    }
        return false;
    }
            
    // 检测用户名输入
    errObj = $("username");
    
    if(errObj.value == "")
    {
        if(!ispop)
	    {
            ShowErrAlert("请输入用户名!");
        }
        else
        {
            $('find_pass').style.display = 'block';
            $('getpwdpanel').innerHTML = "请输入用户名!";
        }
        return false;
    }
    
    // 检测密码输入

    errObj = $("password");
    
    if(errObj.value == "")
    {
        if(!ispop)
	    {
            ShowErrAlert("请输入密码!");
        }
        else
        {
            $('find_pass').style.display = 'block';
            $('getpwdpanel').innerHTML = "请输入密码!";
        }
        return false;
    }

    sendRequest(rootPath + "ascx/login_index_process.aspx", LoginCall, "type=login&uname=" + $("username").value + "&pwd=" + $("password").value+ "&valcode=" + ($("uli_tbCode")?$("uli_tbCode").value:"null"));
    
    return false;
}

// 弹出登陆层
function Pop_Login()
{
    var pop = $("login_pop");
	if(!pop){
		pop = document.createElement('div');
		pop.className = 'popdiv';
		pop.id = 'login_pop';
		pop.innerHTML = "<div class='popdiv_bg'></div>\
		    <!--[if IE 6]>\
		    <iframe id=\"popdiv_iframe\" src=\"#\" width=\"100%\" height=\"100%\" class=\"popdiv_bg\"></iframe>\
		    <![endif]-->\
		    <div class='popdiv_wrap'>\
		    <div class='pop_login'>\
		    <div class='pop_login_title'><a href='#' title='关闭' class='login_form_x' onclick='return Close_Login()'>&nbsp;</a></div>\
		    <div id='mod_login_form'>\
		    <label class='login_name'>用户名<input type='text' id='username' /></label>\
		    <label class='login_pass'>密&nbsp;&nbsp;码<input type='password' id='password' /></label>\
		    <p class='login_validate'>验证码<input type='text' id='uli_tbCode' />\
		    <img id='valcode_pop' style='cursor:pointer;' src=\"" + rootPath + "user/ajax/genvalidecode.aspx?time=Math.random()\" onclick='reloadcode(1)' alt='点击切换'/>\
		    </p>\
		    <label class='login_rem'>\
		    <input id='remmberCode' type='checkbox' name='password' />记住通行证</label>\
		    <a class='login_reg' href=\"" + rootPath + "user/reg.aspx\" target=\"_blank\">注册通行证</a>\
		    <input class='login_ok' type='submit' value='登录门户' onclick='return login(1)' />\
		    <a href='#' id='find_pass_a' onclick='return toggleFindPass(1)'>取回密码</a>\
		    <div id='find_pass'>\
		    <a href='#' title='关闭' onclick='return toggleFindPass()'>&nbsp;</a>\
		    <p class='find_pass_input' id='getpwdpanel'>\
		    <label>你的帐号: <input id='getpwusername' type='text' /></label>\
		    <input type='radio' value='by_email' checked='checked' />通过您的邮箱取回密码\
		    <input type='button'  id='find_pass_ok' onclick='getpassword(1)' value='确认' />\
		    </p>\
		    </div></div></div></div>";
		document.body.appendChild(pop);
		$('find_pass').aa = $('getpwdpanel').innerHTML;
		pop.aa = $("mod_login_form").innerHTML;
	}
	else
	{
        $("mod_login_form").innerHTML = pop.aa;
	    pop.style.display = "block";
	}
   return false;
}

// 关闭登陆层
function Close_Login()
{
    if($("login_pop") != null)
    {
        $("login_pop").style.display = "none";
    }
    return false;
}

// 显示|关闭找回密码层
function toggleFindPass(find){
	var e = $('find_pass');
	if(!e.aa) e.aa = $('getpwdpanel').innerHTML;
	if(e.style.display == 'none' && find) $('getpwdpanel').innerHTML = e.aa;
	e.style.display = e.style.display == 'block'?'none':'block';
	if(e.style.display == 'none' && errObj && errObj.id != "getpwusername")
	{
		errObj.focus();
		errObj.select();
	}
	return false;
}

/*----------------------------------------------------------------------------------------------------
    修改密码
----------------------------------------------------------------------------------------------------*/

//控制密码强弱显示
function showdiv()
{
    var ff = $("dddd");
    var newPwd = $("tbPwd");
    
    ff.style.display = 'block';
    if(newPwd.value.length<=10)
        ff.innerHTML = "<p>弱</p>";
    if(newPwd.value.length>10 && newPwd.value.length<=15)
        ff.innerHTML = "<p class='pass_qd2'>中</p>";
    if(newPwd.value.length>15)
        ff.innerHTML = "<p class='pass_qd3'>强</p>";
}

// 显示提示消息
function ShowTipSpan(afterObj,spanID,className,spanInfo)
{
    var errSpan = $(spanID);
    if(!errSpan){
        errSpan = document.createElement("span");
        errSpan.id = spanID;
        insertAfter(errSpan,afterObj);
    }
	
    errSpan.className = className;
    errSpan.innerHTML = spanInfo;
    errSpan.style.display = "block";
	
    return false;
}

function search(obj) {
    alert(obj);
}

/*----------------------------------------------------------------------------------------------------
    页面加载事件
----------------------------------------------------------------------------------------------------*/
// 添加设为首页和收藏功能
addLoadEvent(
function() {
    if (!$('add_favorite') || !$('set_homepage')) return false;
    $('add_favorite').onclick = function() { addFav('http://www.9ishua.com/', '爱耍游戏平台') };
    $('set_homepage').onclick = function() { setHomepage('http://www.9ishua.com/') };
}
)

addLoadEvent(
function(){
	if($('site_notice_ul')) rollbody1 = new rollBody('site_notice_ul');//设置公告滚动

	if($('switchImg1')) switchImg2 = new switchImg('switchImg1');//设置图片切换

	if($('copyLink')){
		$('copyLink').onclick = function(){
		copyValue(this.previousSibling.value);
		this.value="复制成功";
	}}
}
)


