/*
* 天涯社区全局js文件，提供全局功能。
* 注意事项：1、该文件必须统一维护；2、cookie必须统一规划；3、任何功能升级必须严格测试才能上线。
* 4、cookie值不能包含&,%和=三个字符。
* 创建人：曾小平
*/
var __global = {

	cityNames : ["北京","上海","天津","重庆","石家庄","保定","唐山","太原","大同","晋城","呼和浩特","包头","沈阳","大连","长春","四平","吉林","哈尔滨","佳木斯","南京","苏州","扬州","无锡","徐州","杭州","温州","绍兴","宁波","合肥","芜湖","安庆","马鞍山","福州","厦门","泉州","南昌","景德镇","赣州","九江","济南","青岛","淄博","威海","郑州","开封","洛阳","安阳","南阳","武汉","宜昌","襄樊","长沙","株洲","常德","岳阳","广州","深圳","佛山","潮州","东莞","南宁","柳州","桂林","海口","三亚","儋州","文昌","乐东","五指山","琼海","万宁","定安","昌江","临高","澄迈","东方","陵水","保亭","屯昌","琼中","白沙","成都","自贡","绵阳","乐山","贵阳","遵义","六盘水","昆明","拉萨","西安","宝鸡","咸阳","兰州","天水","乌鲁木齐","台湾","香港","澳门","西宁","银川","张家口","秦皇岛","沧州","邢台","承德","廊坊","邯郸","衡水","长治","运城","朔州","晋中","吕梁","临汾","忻州","阳泉","通辽","鄂尔多斯","呼伦贝尔","巴彦淖尔市","乌海","兴安盟","赤峰","阿拉善盟","锡林郭勒盟","乌兰察布市","朝阳","本溪","抚顺","鞍山","盘锦","铁岭","锦州","葫芦岛","丹东","阜新","营口","辽阳","通化","白山","延边朝鲜族自治州","辽源","松原","白城","齐齐哈尔","绥化","大兴安岭地区","伊春","鹤岗","双鸭山","黑河","鸡西","大庆","牡丹江","七台河","常州","连云港","南通","盐城","宿迁","泰州","镇江","淮安","丽水","衢州","舟山","台州","湖州","嘉兴","金华","淮北","淮南","亳州","池州","六安","阜阳","蚌埠","滁州","铜陵","宿州","黄山","宣城","巢湖","南平","漳州","龙岩","宁德","莆田","三明","吉安","宜春","抚州","新余","萍乡","上饶","鹰潭","德州","莱芜","聊城","枣庄","潍坊","泰安","东营","烟台","临沂","日照","滨州","荷泽","济宁","许昌","三门峡","平顶山","驻马店","周口","濮阳","鹤壁","济源","焦作","商丘","漯河","新乡","信阳","鄂州","咸宁","孝感","荆州","十堰","黄冈","黄石","恩施土家族苗族自治州","荆门","随州","益阳","永州","郴州","湘西土家族苗族自治州","邵阳","怀化","娄底","湘潭","张家界","衡阳","清远","河源","揭阳","汕头","珠海","肇庆","梅州","中山","云浮","江门","惠州","茂名","韶关","汕尾","湛江","阳江","河池","崇左","钦州","玉林","梧州","贺州","贵港","北海","防城港","百色","来宾","雅安","凉山彝族自治州","宜宾","泸州","资阳","阿坝藏族羌族自治州","甘孜藏族自治州","德阳","攀枝花","广元","内江","巴中","眉山","达州","南充","遂宁","广安","毕节","黔南布依族苗族自治州","黔东南苗族侗族自治州","黔西南布依族苗族自治州","铜仁","安顺","迪庆藏族自治州","文山壮族苗族自治州","德宏德宏傣族景颇族自治州","临沧","玉溪","西双版纳傣族自治州","楚雄彝族自治州","思茅","保山","昭通","曲靖","红河哈尼族彝族自治州","大理大理白族自治州","怒江傈僳族自治州","丽江","日喀则","林芝","阿里","那曲","昌都","山南","榆林","渭南","安康","汉中","商洛","铜川","延安","白银","庆阳","金昌","武威","陇南","甘南藏族自治州","酒泉","张掖","临夏回族自治州","平凉","定西","海西蒙古族藏族自治州","玉树藏族自治州","果洛藏族自治州","海南藏族自治州","海北藏族自治州","黄南藏族自治州","海东","石嘴山","固原","吴忠","阿克苏","塔城","伊犁哈萨克自治州","阿勒泰","巴音郭楞蒙古自治州","克孜勒苏柯尔克孜自治州","克拉玛依","石河子","昌吉回族自治州","伊犁哈萨克自治州","喀什","和田","哈密","博尔塔拉蒙古自治州","吐鲁番","伊吾","顺德"],

	/* 创建cookie，如果关闭浏览器cookie失效,days参数传-1。如无特殊要求，后面三个参数是固定的，见例子。
	*  例子：__global.setCookie("__visit","123",1,"/",".tianya.cn",false)
	*/
	setCookie : function(/*String*/name, /*String*/value,/*Number?*/days, /*String?*/path,/*String?*/domain,/*boolean?*/secure){
		var expires = -1;

		if(value == null){
			var d = new Date();
			d.setTime(d.getTime() - (24*60*60*1000));
			expires = d.toGMTString();
		} else if((typeof days == "number")&&(days >= 0)){
			var d = new Date();
			d.setTime(d.getTime()+(days*24*60*60*1000));
			expires = d.toGMTString();
		}
		document.cookie = name + "=" + escape(value) + ";"
			+ (expires != -1 ? " expires=" + expires + ";" : "")
			+ (path ? "path=" + path : "")
			+ (domain ? "; domain=" + domain : "")
			+ (secure ? "; secure" : "");
	},
	
	/*得到cookie值*/
	getCookie: function(/*String*/name) {
		var cookieValue = null; 
        if (document.cookie && document.cookie != '') { 
            var cookies = document.cookie.split(';'); 
            for (var i = 0; i < cookies.length; i++) { 
                var cookie = cookies[i].replace(/(^\s*)|(\s*$)/g,   "");
                // Does this cookie string begin with the name we want? 
                if (cookie.substring(0, name.length + 1) == (name + '=')) { 
                    cookieValue = unescape(cookie.substring(name.length + 1)); 
                    break; 
                } 
            } 
        } 
        return cookieValue; 
	},
		
	/*创建或设置key-value格式的cookie*/
	setPartCookie: function(/*String*/name,/*String*/partName,/*String*/value,/*Number?*/days, /*String?*/path,/*String?*/domain,/*boolean?*/secure){
		var cookie = this.getCookie(name);
		if(cookie)
		{
			var pairs = cookie.split("&");
			var len = pairs.length;
			var cookieNames = new Array(len);
			var cookieValues = new Array(len);
			var targetIdx = -1;
			for(var i = 0; i < len; i++){
				var pair = pairs[i].split("=");
				cookieNames[i] = pair[0];
				cookieValues[i] = pair[1];

				if(pair[0] == partName){
					targetIdx = i ;
				}
			}

			if(targetIdx == -1){
				cookieNames[len] = partName;
				cookieValues[len++] = value != null ? escape(value) : null;
			}else{
				cookieValues[targetIdx] = value != null ? escape(value) : null;
			}

			var cookieValue = "";
			if(len > 0){
				for(var j = 0; j < len; j++){
					if(cookieValues[j] != null)
						cookieValue += "&" + cookieNames[j] + "=" + cookieValues[j];
				}
				cookieValue = cookieValue.substr(1);
			}
			if(cookieValue == "") cookieValue = null;

			this.setCookie(name,cookieValue,days,path,domain,secure);
		} else {
			if(value != null){
				var cookieValue = partName + "=" + escape(value);
				this.setCookie(name,cookieValue,days,path,domain,secure);
			}
		}

		return null;
	},
	
	/*得到key-value格式的cookie值*/
	getPartCookie: function(/*String*/name,/*String*/partName){
		var cookie = this.getCookie(name);
		if(cookie){
			var pairs = cookie.split("&");
			for(var i = 0; i < pairs.length; i++){
				var pair = pairs[i].split("=");
				if(pair[0] == partName){
					var value = pair[1];
					value = unescape(value);
					return value;
				}
			}
		}

		return null;
	},
	
	/*得到global.js后的参数值*/
	getParameter:function(paramName){
		var scripts = document.getElementsByTagName("script");
		for(var len=scripts.length,i=0;i<len;i++){
			if(scripts[i].src&&scripts[i].src.match(/global\.js(\?.*)?$/)){
				var rs=new RegExp("(^|)"+paramName+"=([^\&]*)(\&|$)","gi").exec(scripts[i].src);
				if(rs){
					return rs[2];
				}
			}
		}

		return null;
	},
	
	/*得到访问用户IP所在城市ID，如果没有则返回null。*/
	getUserCityId:function(){
		return this.getCookie("__cid");
	},
	
	
	/*得到访问用户IP所在城市名称,如果没有则返回缺省城市北京。*/
	getUserCityName:function(){
		var cityId = this.getCookie("__cid");

		if(!isNaN(cityId) && cityId >=1 && cityId <= this.cityNames.length){
			return this.cityNames[cityId-1];
		}else{
			return null;
		}
	},

	/*得到登录用户天涯ID*/
	getUserName:function(){
		var user = this.getCookie("user");
		if(user==null)
			return null;
		else{
			var userName = this.getPartCookie("user","w");
			return userName;
		}
	},
	
	/*得到登录用户天涯idWriter*/
	getUserId:function(){
		var user = this.getCookie("user");	
		if(user==null)
			return null;
		else{
			var userId = this.getPartCookie("user","id");
			return userId;
		}
	},
	
	/*得到登录用户的key*/
	getKey:function(){
		var temp = this.getCookie("temp");	
		if(temp==null)
			return null;
		else{
			var key = this.getPartCookie("temp","k");
			return key;
		}
	},
	
	/*得到sys_grade值*/
	getSysGrad:function(){
		var temp = this.getCookie("temp");	
		if(temp==null)
			return null;
		else{
			var SysGrad = this.getPartCookie("temp","s");
			return SysGrad;
		}
	},
	
	/*得到上次的now()*/
	getCookieTempTime:function(){
		var temp = this.getCookie("temp");	
		if(temp==null){
			return 1000000000;
		}else{
			var cookieTime = this.getPartCookie("temp","t");
			return cookieTime;
		}
	},
	
	/*博客在线加密判断值（MD5加密）*/
	getCookieCheckKey:function(){
		var temp = this.getCookie("temp");	
		if(temp==null){
			return null;
		}else{
			var b = this.getPartCookie("temp","b");
			return b;
		}
	},
	
	/*上次更新cookie时间,为了解决时区问题而加的*/
	getCookieCstmTime:function(){
		var temp = this.getCookie("temp");	
		if(temp==null){
			return -1;
		}else{
			var cookieTime = this.getPartCookie("temp","ct");
			return cookieTime;
		}
	},
	
	/*判断用户是否在线*/
	isOnline:function(){
		this._isOnline = false;
		this._cookieTempTime = this.getCookieTempTime();
		if(this._cookieTempTime != -1 && (!isNaN(this.getUserId())) && this.getUserId() >0 
				&& (!isNaN(this.getKey())) && this.getKey() > 0){
			this._isOnline = true ;
		}
		return this._isOnline;
	},

	/*用来判断本文件是否读取完毕*/
	IsLoadReadCookieFile:true,

	/*刷新用户cookie,保证在线状态*/
	refreshCookie:function(){
		var m35=30 * 60;
		var cookieCstmTime=parseInt(this.getCookieCstmTime());
		var myCstTime=parseInt(new Date().getTime()/1000);
		var Key=this.getKey();
		Key=(Key==null?0:Key);

		if ((cookieCstmTime+m35) < myCstTime && Key > 0){
			var idWriter=this.getUserId();
			var strWriter=this.getUserName();
			var cookieTime=this.getCookieTempTime();
			
			idWriter=(idWriter==null?0:idWriter);
			strWriter=(strWriter==null?"":strWriter);
			cookieTime=parseInt(cookieTime);

			var url="http://www.tianya.cn/user/refleshOnlineByCache_utf-8.asp?t="+cookieTime+"&idwriter="+idWriter+"&key="+Key+"&strwriter="+strWriter+"&s="+Math.random()+"";
			var charset = (document.charset)?document.charset:document.characterSet;
			charset = charset.toLowerCase();
			//if(this.getParameter("c") == "gbk"){
			if(charset == "utf-8") {
				url="http://www.tianya.cn/user/refleshOnlineByCache_utf-8.asp?t="+cookieTime+"&idwriter="+idWriter+"&key="+Key+"&strwriter="+strWriter+"&s="+Math.random()+"";
			} else if(charset == "gbk" || charset == "gb2312" || charset == "x-gbk"){
				/*处理gbk界面登录用户名乱码问题。*/
				url="http://www.tianya.cn/user/refleshOnlineByCache.asp?t="+cookieTime+"&idwriter="+idWriter+"&key="+Key+"&strwriter="+strWriter+"&s="+Math.random()+"";
			} else {
				url="http://www.tianya.cn/user/refleshOnlineByCache.asp?t="+cookieTime+"&idwriter="+idWriter+"&key="+Key+"&strwriter="+strWriter+"&s="+Math.random()+"";
			}
			document.write("<script src=\""+url+"\"><\/script>");
			
		}

		return true;
	}
};

//__global.refreshCookie();