var xyataBase={
	setCookie:function(sName, sValue,sTime){//sTime单位为秒
		var date=new Date();
		date.setTime(date.getTime()+sTime);
		document.cookie = sName + "=" + escape(sValue) + "; expires=" + date.toGMTString();
	},
    delCookie:function(sName){
        if(xyataBase.getCookie(sName)){
//          document.cookie=sName+"=; expires=Thu, 01-Jan-70 00:00:01 GMT";//保留sName
        	xyataBase.setCookie(sName);//删除sName
        }
    },
	getCookie:function(sName){
		var aCookie = document.cookie.split("; ");
		for (var i=0; i < aCookie.length; i++)
		{
			var aCrumb = aCookie[i].split("=");
			if (sName == aCrumb[0]){
				return unescape(aCrumb[1]);
			}
		}
		return "";
	},
    trimL:function(txt){
		return txt.replace(/^\s*/,"");
	},
    trimR:function(txt){
		return txt.replace(/\s*$/,"");
	},
    trim:function(txt){
		return this.trimL(this.trimR(txt));
	},
	/*check explorer type
	*/
	//判断是什么浏览器？
	isIE:function(version){
		return navigator.userAgent.indexOf(version)>=0;
		}
};

var jsonBase={//json字符串处理
	setValue:function(json,obj,num){//将obj对象设置到json字符串中，并始终保持json数组含最新的num个对象
		try{
		var jsonStr = eval('(' + json + ')');
		for(var j=0;j<jsonStr.length;j++){
			if(jsonStr[j].id == obj.id){
				return json;
			}
		}
		var size = jsonStr.length > num?num:jsonStr.length;
		var newStr = "[";
		for(var i=-1;i<size;i++){
			if(i==-1){
				newStr += "{id:'"+obj.id+"',title:'"+obj.title+"',href:'"+obj.href+"'}";
			}else{
				newStr += ",{id:'"+jsonStr[i].id+"',title:'"+jsonStr[i].title+"',href:'"+jsonStr[i].href+"'}";
			}
		}
		newStr +="]";
		return newStr;
		}catch(e){
			return json;
		}
	},
	remove:function(json,num){//移除json数组的第num个元素，num从0开始
		var jsonStr = eval('(' + json + ')');
		var newStr = "[";
		for(var i=0;i < jsonStr.length;i++){
			if(i != num){
				if(newStr=="["){
					newStr += "{id:'"+jsonStr[i].id+"',title:'"+jsonStr[i].title+"',href:'"+jsonStr[i].href+"'}";
				}else{
					newStr += ",{id:'"+jsonStr[i].id+"',title:'"+jsonStr[i].title+"',href:'"+jsonStr[i].href+"'}";
				}
			}
		}
		newStr +="]";
		return newStr;
	},
	getValue:function(json,num){//获取json数组的第num个元素，num从0开始
		var jsonStr = eval('(' + json + ')');
		for(var i=0;i < jsonStr.length;i++){
			if(i == num){
				return jsonStr[i];
			}
		}
		return null;
	},
	getJsonArray:function(json){//返回json数组
		try{
			return eval('(' + json + ')');
		}catch(e){
			return null;
		}
	},
	getLength:function(json){//获取json字符串长度
		try{
			var jsonStr = eval('(' + json + ')');
			return jsonStr.length;
		}catch(e){
			return 0;
		}
	}
}
/**
 * 将浏览信息记录到cookie中
 * @param {} id 浏览信息的ID
 * @param {} title 浏览信息的标题
 * @param {} href 浏览信息的url地址
 * @param {} coName 存储到cookie中的key名称
 */
function setBrowseHistory(id,title,href,coName){
	var obj = "{id:'"+id+"',title:'"+title+"',href:'"+href+"'}";
	obj = eval('(' + obj + ')');
	var json = xyataBase.getCookie(coName);
	if(json.length == 0){
		json = "[]";
	}
	xyataBase.setCookie(coName,jsonBase.setValue(json,obj,9),864000000);
}
/**
 * 展示cookie中key为coName的信息到showDiv中
 * @param {} coName cookie的key名称
 * @param {} showDiv 展示的信息div的Id
 * @param {} wSize 显示字符数
 */
function showBrowseHistory(coName,showDiv,wSize){
	var jsonStr = xyataBase.getCookie(coName);
	if(jsonStr.length == 0){
		jsonStr = "[]";
	}
	var obj;
	var str = "";
	var jArray = jsonBase.getJsonArray(jsonStr);
	if(jArray != null){
		for(var i = 0;i < jsonBase.getLength(jsonStr);i++){
			obj = jArray[i];
			if(obj != null){
			str += "<li><a title='" +obj.title+ "' href=\"" +obj.href+"\">" +cutString(obj.title,wSize)+ "</a></li>";
			}
		}
		var bObj = document.getElementById(showDiv);
		if(bObj != null){
			bObj.innerHTML = str;
		}
	}
}
/**
 * 裁剪字符串
 * @param {} str 需要裁剪的字符串
 * @param {} size 保留str的最大长度
 * @return 如果str的长度小于size则不进行剪裁，否则将超过size的部分用...代替
 */
function cutString(str,size){//剪切字符串str为size个字符 
var totalCount = 0; 
var newStr = ""; 
	for (var i=0; i < str.length;i++){
		c = str.charCodeAt(i); 
		if ((c >= 0x0001 && c <= 0x007e) || (0xff60<=c && c<=0xff9f)) { 
			totalCount++; 
		}else { 
			totalCount+=2; 
		} 
	}
	if(totalCount > 2*size){
		newStr = str.substring(0,size);
		return newStr; 
	}else{
		return str;
	}
} 