﻿function getEl(id){
  if(typeof(id) == "object") return id;
  if (typeof(id) != "string" || id == "") return null;
  if (document.getElementById) return document.getElementById(id);
  if (document.all) return document.all(id);
  try {return eval(id);} catch(e){ return null;}
 }
 function getObj(id){return getEl(id);}
 
 Object.extend=function(a,b){for(var c in b){a[c]=b[c]}return a};Function.prototype.bind=function(){var a=this,args=$A(arguments),object=args.shift();return function(){return a.apply(object,args.concat($A(arguments)))}};Function.prototype.bindAsEventListener=function(b){var c=this,args=$A(arguments),b=args.shift();return function(a){return c.apply(b,[(a||window.event)].concat(args).concat($A(arguments)))}};var $A=function(a){if(!a)return[];if(a.toArray){return a.toArray()}else{var b=[];for(var i=0;i<a.length;i++){b.push(a[i])}return b}};
 
 
 //检测是否IE------------------------------
var sUserAgent=navigator.userAgent;var fAppVersion=parseFloat(navigator.appVersion);var isOpera=sUserAgent.indexOf("Opera")>-1;var isIE=sUserAgent.indexOf("compatible")>-1&&sUserAgent.indexOf("MSIE")>-1&&!isOpera;var isMinIE4=isMinIE5=isMinIE5_5=isMinIE6=false;if(isIE){var reIE=new RegExp("MSIE (\\d+\\.\\d+);");reIE.test(sUserAgent);var fIEVersion=parseFloat(RegExp["$1"]);isMinIE4=fIEVersion>=4;isMinIE5=fIEVersion>=5;isMinIE5_5=fIEVersion>=5.5;isMinIE6=fIEVersion>=6.0}
var isWin = (navigator.platform == "Win32") || (navigator.platform == "Windows");

//自定义事件
var EventUtil = new Object;
EventUtil.addEventHandler=function(a,b,c){if(a==null)return;if(a.addEventListener){a.addEventListener(b,c,false)}else if(a.attachEvent){a.attachEvent("on"+b,c)}else{a["on"+b]=c}};EventUtil.removeEventHandler=function(a,b,c){if(a==null)return;if(a.removeEventListener){a.removeEventListener(b,c,false)}else if(a.detachEvent){a.detachEvent("on"+b,c)}else{a["on"+b]=null}};EventUtil.formatEvent=function(a){if(isIE&&isWin){a.charCode=(a.type=="keypress")?a.keyCode:0;a.eventPhase=2;a.isChar=(a.charCode>0);a.pageX=a.clientX+document.body.scrollLeft;a.pageY=a.clientY+document.body.scrollTop;a.preventDefault=function(){this.returnValue=false};if(a.type=="mouseout"){a.relatedTarget=a.toElement}else if(a.type=="mouseover"){a.relatedTarget=a.fromElement}a.stopPropagation=function(){this.cancelBubble=true};a.target=a.srcElement;a.time=(new Date).getTime()}return a};
//格式化EVENT事件
EventUtil.getEvent=function(){if(window.event){return this.formatEvent(window.event)}else{return EventUtil.getEvent.caller.arguments[0]}};
//---------------------------------------------------------
 
 //获取HTML后面的参数
function QueryString() { 
    //构造参数对象并初始化 
   var url=location.search;//获得浏览器地址栏URL串?后的值 
   if(url.indexOf("?")!=-1){   
        var name,_name,arrtmp,value='',i; 
        str=url.substr(1);//去掉?号  
        arrtmp=str.split('&');
        for(i=0;i < arrtmp.length;i++) { 
	            num=arrtmp[i].indexOf("="); 
	            if(num>0) { 
		           name=arrtmp[i].substring(0,num);//取得参数名称 
		           value=arrtmp[i].substr(num+1); //取得参数值 
		           _name=name.toLowerCase();//取小写名称
		           this[name]=value; //定义对象属性并初始化 
		           this[_name]=value;
		        } 
	     } 
	 }
} 
var Request=new QueryString();//使用new运算符创建参数对象

/*设置Cookie时间*/	
var SetCookieToday = new Date();
var SetCookieExpireDay = new Date();
var SetCookieMsPerMonth = 24*60*60*1000*31;
SetCookieExpireDay.setTime( SetCookieToday.getTime() + SetCookieMsPerMonth );
function setCookie(Key,value,time,noTime) {
    if(time!=null){
	    SetCookieMsPerMonth = 1000*time;
        SetCookieExpireDay.setTime( SetCookieToday.getTime() + SetCookieMsPerMonth );
	}
	strTime=";expires=" +SetCookieExpireDay.toGMTString();
	if(noTime==true)strTime=""; 
	document.cookie = Key + "=" + value + ";path=/"+strTime;
	 
}

function Failure(transport) {
	    alert("出错了!以下是服务器出错的原因: " + transport.responseText.stripTags());
	    transport=null;
}

function getCookie(Key){
var search = Key + "=";
begin = document.cookie.indexOf(search);
if (begin != -1) {
  begin += search.length;
  end = document.cookie.indexOf(";",begin);
  if (end == -1) end = document.cookie.length;
  return document.cookie.substring(begin,end);
  }
} 
function deleteCookie(name){
  var date=new Date();
  date.setTime(date.getTime()-10000);
  document.cookie=name+"=del; expire="+date.toGMTString()+";path=/";
} 

/*
Ajax封装
    Method:"GET",
    Url:null,
    Async:true,
    State:0,
    data:null,
    callback:function(){},
 */
 function getAjax(options){
      Object.extend(this,options || {}); 
      this.init();
}

getAjax.prototype={
    Method:"GET",
    Url:null,
    Async:true,
    State:0,
    data:null,
    callback:function(){},
    onFailure:function(){},
    send:function(data){
        this.Ajax.open(this.Method, this.Url, this.Async);
        if (this.Method.toUpperCase()=="POST") this.Ajax.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
        this.Ajax.send(data);
    },AjaxChange:function(){
         //this.State = this.Ajax.readyState + (typeof(this.Ajax.status)=="unknown" ? 0 : this.Ajax.status);
         if (this.Ajax.readyState == 4) {  
            if(this.State < 400){
               this.callback(this.Ajax);
            
            }else{
                this.onFailure(this.Ajax);
            }
            
            this.Ajax = null;
         }
    },
    init:function(){
            // 创建XmlHttp对象
            this.Ajax = (function ()
            {
                    var XmlHttp = false;
                    if (window.XMLHttpRequest) {
                            XmlHttp = new XMLHttpRequest();
                            if (XmlHttp.overrideMimeType) XmlHttp.overrideMimeType("text/xml");
                    }
                    else if (window.ActiveXObject) {
                            try {
                                    XmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
                            } catch (e) {
                                    try {
                                            XmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
                                    } catch (e) {
                                            XmlHttp = false;
                                    }
                            }
                    }
                    return XmlHttp;
            })();
            
            if (!this.Ajax) return false;
            this.Ajax.onreadystatechange = this.AjaxChange.bind(this);
            this.send(this.data);
    }
}



/*获得下拉菜单
--------------调用方法 dropDownList(DomName,options参数)
*/
function dropDownList(el,options){
        this.options=Object.extend({	
           url:'',
           opt:0,
           defValue:'请选择数据',
		   defSelData:0,
           showDefValue:true,
           selectNode:'RS',
           record:'item',
           parentId:0,
           
           selCallBack:null,//加载完监听的事件
           changeEvent:null,//获取外部Change事件
           asynchronous:true,
           defalueData:true
        },options || {});
        
        this.obj=el;
		
        if(this.options.changeEvent!=null){
            EventUtil.addEventHandler(getObj(this.obj),'change',this.fileEvent.bind(this));
        }
       if(this.options.defalueData==true){
            this.init();
       }
       
 }
 
 dropDownList.prototype={
    init:function(){

       new getAjax({
            Url:this.options.url,
            callback:this.backSelectData.bind(this)
         });  
		
    },
    backSelectData:function(xml){
   
            var addSel=getObj(this.obj); 
                addSel.innerHTML="";
            this.defValueDom=optionAdd(addSel,this.options.defValue,"0");
          //  this.defValueDom.selected=true;  
		  
		      var List=xml.responseText;
			   try { eval(List); }catch(e){  return alert(xml.responseText);} 
			   
           if(List !=null){//检测是否返回XML
                for(var i=0;i<item.length;i++){  
                   var value=item[i][1];
                   var text=item[i][0];
                   var addOption=optionAdd(addSel,text,value);
				   if(this.options.defSelData==value){
					   addOption.selected=true;  
					   }
                }
				
				if(this.options.selCallBack!=null) window[this.options.selCallBack](this,getObj(this.obj).value);

          }
        
           
    },getObj:function(){
        return this.menuInput;
     },getDefValue:function(){
        return this.defValue;
     },
    setOpt:function(opt){
       this.options.opt=opt;
    },
    setUrl:function(url){ 
       this.options.url=url;
    },fileEvent:function(){ 
       window[this.options.changeEvent](this,getObj(this.obj).value);
    },
    setParentId:function(id){ 
       this.options.parentId=id;
    },getMoreSelectData:function(tbN,colN){
   
	   new getAjax({
            Url:this.options.url,
            callback:this.backMoreSelectData.bind(this)
         });  

    },backMoreSelectData:function(xml){
        getObj("_"+this.obj).style.display="none";  
        var obj=getObj(this.obj);
        var text=xml.responseText;
        var value=optionAdd(obj,text,this.selInput.value);
            value.selected=true;
            this.selInput.value="";
        if(this.options.changeEvent!=null){
            this.fileEvent(); 
        }       
        
        if(text.length<20){
           text=parseInt(text.length)*12;
        }else{
           text=parseInt(text.length)*10; 
        }
        if(obj.offsetWidth< text){
            obj.style.width=text+"px";
         }
        
    }
 }
     
 function optionAdd(oListbox,sName,sValue){
    var oOption=document.createElement("option");
        oOption.appendChild(document.createTextNode(sName));
        if(arguments.length==3)oOption.setAttribute("value",sValue);
       oListbox.appendChild(oOption);
       return oOption;
 }

 //移除BODY内容
function remChild(bodys){
    if(bodys==null)return ;
    for(var i=bodys.childNodes.length-1;i>=0;i--){
        Eremove(bodys.childNodes[i]);
    }
}
function Eremove(element) {
    element = getEl(element);
    element.parentNode.removeChild(element);
    return element;
 }
 
 function crtTd(str,css,align){
	 var sTd=document.createElement("td");
	 if(align==null)align='left';
	 sTd.align=align;
	 if(css==null)css="rows_td";
	 sTd.className=css;
	 sTd.innerHTML=''+str+'';
	 return sTd;
}

//循环输入固定格式的内容
function crtEtbody(ttbody,obj){
	 var Etbody=getEl(ttbody);
			 remChild(Etbody);
				for(var i=0;i<obj.length;i++)
				{
					 var sTr2=document.createElement("tr"); 
				   		sTr2.className='rows_tr';
						if((i+1)%2==0)sTr2.className='rows_tr2';
				   for(var j=0;j<obj[i].length;j++){
						if(j==0){sTr2.appendChild(crtTd(obj[i][j]+":",'rows_td_L'));
						}else{sTr2.appendChild(crtTd(obj[i][j]));}
					}	
					Etbody.appendChild(sTr2);
				}
	}
	
	//获取服务器列表
	function getLoadServer(){
	 new getAjax({
		 Url:'/getserver.aspx?type=1',
		 callback:backMsg,
		 onFailure:Failure
	 });
	 
   function backMsg(Request){
       var strBack=Request.responseText;
	  // alert(strBack)
		if(strBack=="")return ;
		eval(strBack);
		    var ttbody=getEl("serverList");
       			 remChild(ttbody);
			 for(var i=0;i<List.length;i++){
				var da=List[i];
				//alert(da)
				var sTr=document.createElement("tr"); 
						sTr.appendChild(crtTd('<img src="/images/jm.gif" width="16" height="16" />')); 
						sTr.appendChild(crtTd('<a target="_blank" href="/bbs/my/gamestart.php?serverid='+da.id+'">'+decodeURIComponent(da.server)+'</a>')); //
						//lv
						var st=decodeURIComponent(da.status);
						var cs=null;
						if(st=="流畅")cs="lv";
						sTr.appendChild(crtTd('['+st+']',cs,'right')); 
						ttbody.appendChild(sTr);		
						
			 }  
			 
  } 

}

//用户排行
	function getuserPaiHang(){
	 new getAjax({
		 Url:'/getserver.aspx?type=3&severId='+getEl("serverType").value,
		 callback:backMsg,
		 onFailure:Failure
	 });
	 
   function backMsg(Request){
       var strBack=Request.responseText;
	   		    var ttbody=getEl("userpaiming");
       			 remChild(ttbody);
		if(strBack=="")return ;
		//alert(strBack)
		eval(strBack);
			 for(var i=0;i<List.length;i++){
					//alert(List[i][0])
				var sTr=document.createElement("tr"); 
						sTr.appendChild(crtTd("<div>"+decodeURIComponent(List[i][0])+"</div>",'bl')); 
						sTr.appendChild(crtTd(List[i][1],null,'center')); //
						sTr.appendChild(crtTd("第"+(i+1)+"名",null,'center')); 
						ttbody.appendChild(sTr);				
			 }  
  } 

}

function getServer(){
	new dropDownList('serverType',{			 
			   defValue:'请选择所属服务器',
			   defSelData:1,
			   url:'/getserver.aspx?type=2',
			   selCallBack:'getuserPaiHang',
			   changeEvent:'getuserPaiHang'				 
	 	});
	}
	
