//<![CDATA[
//AUTHOR:JULLYCAT(ZHANGYANJUN)

/**获取DOM中id
 * @param {object} id 获取的id值
 */

$=function(id){
	return document.getElementById(id);
}

/**自定义多重类对象
 * @param {Object} namespace 自定义类名
 */
Namespace = new Object();
Namespace.register = function(namespace){
	var nsArray = namespace.split('.');
	var sEval = "";
    var sNS = "";
	for (var i = 0; i < nsArray.length; i++){
        if (i != 0) sNS += ".";
        sNS += nsArray[i];
        sEval += "if (typeof(" + sNS + ") == 'undefined') " + sNS + " = new Object();"
    }
    if (sEval != "") eval(sEval);
}

/**
 * 对数组Array对象扩展unite方法；
 * @method unite 类似concat，但FF不支持concat；
 * @param (arg) arg是需要增加的数组对象；
 */
Array.prototype.unite = function(arg){
	var temparg = new Array();
	var len1 = this.length;
	var len2 = arg.length;
	for(var i=0;i<(len1+len2);i++){
		if(i<len1) this[i] = this[i];
		else this[i] = arg[i-len1];
	}
	return this;
}

/**
 * 给数组扩展add方法.
 * @method add 类似push,需要增加的元素同元数组进行比较，如果没有相同值则追加，如果有则不追加;
 * @param {Object} obj 需要add的对象.
 */
Array.prototype.add = function(obj){
	var add_flag = true;
	for(var i=0;i<this.length;i++){
		if(this[i]==obj){
			add_flag = false;
			break;
		}
	}
	if(add_flag==true){
		this[this.length] = obj;
	}
}

//]]>
//<![CDATA[
//AUTHOR:JULLYCAT(ZHANGYANJUN)

Namespace.register("Hc.widget.cookie");
Namespace.register("Hc.widget.movebox");
Namespace.register("Hc.util.setDiv");
Namespace.register("Hc.util.move");
Namespace.register("Hc.util.showDiv");
Namespace.register("Hc.util.hotClass");
Namespace.register("Hc.widget.hotword");
/**
 *应用类方法定义
 */
(function(){
	Hc.widget.cookie = {
		/**
		 * 新增或者修改cookie.
		 * @param {Object} name cookie名.
		 * @param {Object} value cookie值.
		 * @param {Object} time 有效时间单位为毫秒.
		 */
		newAndModif:function(name,value,time){
			if(time!=null&&this.time!=''){
				document.cookie = name+"="+value+"; expires="+this.createTime(time)+";";
			}else{
				document.cookie = name+"="+value+"; expires=Fri, 31 Dec 2100 23:59:59 GMT;";
			}
		},
		/**
		 * 创建cookie的有效时间.
		 * @param {Object} time
		 */
		createTime:function(time){
			var nowTime = new Date();
			time = parseInt(time)*24*60*60*1000 + parseInt(nowTime.getTime());
			var needTime = new Date(time);
			return needTime.toGMTString();
		},
		getValue:function(name){
			if(document.cookie != null){
				var cookieStrArr = document.cookie.split("; ");
				for(var i=0;i<cookieStrArr.length;i++){
					if(cookieStrArr[i].split("=")[0]==name){
						return cookieStrArr[i].split("=")[1];
					}
				}
			}else{
				return null;
			}
		}
	}
})();

/*
 *
 *
 */
 (function(){
	
	Hc.util.hotClass = {
		/*@method initAttention(),初始化热词展现区域及a对象的事件
		 *@param (cookie的前缀名,需要获取热词的父级id,热词显示区父级id,热词显示区的id,需要获取热词的上级tagName,显示热词的最大个数)
		 */
		 concat : function(arg1,arg2){
			var arg = new Array();
			var len1 = arg1.length;
			var len2 = arg2.length;
			for(var i=0;i<(len1+len2);i++){
				if(i<len1) arg[i] =arg1[i];
				else arg[i] = arg2[i-arg1.length];
			}
			arg1 = arg
			return arg1;
		},
		initAttention:function(cookiename,mainbox,disbox,conbox,tagName,max){
			var curObj = this;
			var parCodes;
			var childCodes = new Array;
			var temparr1=new Array,temparr2 = new Array;
			var hotwords = new Array();
			if(Hc.widget.cookie.getValue(cookiename) != null){
				var hotwords = curObj.getCookievalue(cookiename);
				curObj.getAttention(hotwords,conbox);
			}else{
					$(disbox).style.display = "none";
			}
			parCodes = $(mainbox).getElementsByTagName(tagName);
			for(var i=0;i<parCodes.length;i++){
				temparr = parCodes[i].getElementsByTagName("A");
				childCodes = this.concat(childCodes,temparr);
			}
			for(var j=0;j<childCodes.length;j++){
				childCodes[j].n = childCodes[j].childNodes[0].nodeValue;
				childCodes[j].u = childCodes[j].href;
				childCodes[j].onclick = function(){
					var curhotwords = new Array();
					curhotwords = curObj.getCookievalue(cookiename);
					curObj.setAttention(cookiename,curhotwords,this.u,this.n,max);
				}
			}
			
		},
		/*@method getCookievalue(),获取cookie值的后缀并返回Hc.widget.hotword对象的数组
		 *@param (cookie的前缀名)
		 */
		getCookievalue:function(cookiename){
			var word,hotword;
			var hotwords = new Array();
			if(Hc.widget.cookie.getValue(cookiename)!=null){
				var cookieValue = unescape(Hc.widget.cookie.getValue(cookiename));
				var wordarr = cookieValue.split("&");
				for(var i=0;i<wordarr.length;i++){
					word = wordarr[i].split("|");
					hotword = new Hc.widget.hotword(word[0],word[1]);
					hotwords.push(hotword);
				}
			}
			return hotwords;
		},
		/*@method setAttenttion(),获取最新热词
		 *@param (cookie的前缀名,最新热词数组,当前事件触发的对象,热词最大个数)
		 */
		setAttention:function(cookiename,arg,aurl,aword,max){
			var hotwords = new Array;
			var hotword = new Hc.widget.hotword(aword,aurl);
			var cookiestr = "";
			var flag = true;
			for(var i=0;i<arg.length;i++){
				hotwords[i] = arg[i];
			}
			if ((hotwords.length<max) && (hotwords.length!=0))
			{
				for(var j=0;j<hotwords.length;j++){
					if((hotwords[j].name == hotword.name) && (hotwords[j].url == hotword.url)){
//						flag=false;
						hotwords.splice(j,1);
					}
				}
//				if(flag) 
					hotwords.unshift(hotword);
			}else{
				hotwords.push(hotword);
				if(hotwords.length==max){
					hotwords.shift();
				}
			}
			for(var n=0;n<hotwords.length;n++){
				cookiestr = cookiestr + hotwords[n].name + "|" + hotwords[n].url +"&"
			}
			cookiestr = escape(cookiestr.substring(0,cookiestr.length-1));
			Hc.widget.cookie.newAndModif(cookiename,cookiestr);
		},
		/*@method getAttention(),
		 *@param (最新热词数组,热词显示区域id)
		 */
		getAttention:function(arg,conbox){
			var wordstr = "";
			for(var j=0;j<arg.length;j++){
				wordstr = wordstr + "<a href=\"" + arg[j].url + "\">" + arg[j].name + "</a> | ";
				if (((j+1)%3 == 0) || (j==arg.length-1))
				{
					wordstr = wordstr.substring(0,wordstr.length-3);
					wordstr = wordstr + "<br />";
				}
			}
			$(conbox).innerHTML = wordstr;
			
		}
	}
 })();



// Copyright: hc360.com
// Author: Dakular
// Useage: HCmarquee(滚动对象id, 可见范围宽度, 可见范围高度, 滚动条数, 可见条数, 滚动速度, 停留时间, 方向); 方向有left和up两种
function HCmarquee(id,mw,mh,mr,sr,ms,pause){
	
	var obj=document.getElementById(id);
	obj.ss=false; //stop tag
	obj.mr=mr; //marquee rows
	obj.sr=sr; //marquee display rows
	obj.mw=mw; //marquee width
	obj.mh=mh; //marquee height
	obj.ms=ms; //marquee speed
	obj.pause=pause; //pause time
	obj.pt=0; //pre top
	obj.st=0; //stop time
	obj.mul=1;
	obj.con="";
	with(obj){
		style.width=mw+"px";
		style.height=mh+"px";
		noWrap=false;
		onmouseover=stopm;
		onmouseout=startm;
		scrollTop=0+"px";
		scrollLeft=0+"px";
	}

	if(obj.mr!=1){
				obj.tt=mh*mr/sr;
				obj.ct=mh; //current top
				obj.innerHTML+=obj.innerHTML;
				setInterval(scrollUp,obj.ms);
	}
	function scrollUp(){
		if(obj.ss==true) return;
		obj.ct+=1;
		if(obj.ct==obj.mh+1){
			obj.st+=1; obj.ct-=1;
			if(obj.st==(obj.pause*obj.mul)){
				obj.ct=0; obj.st=0;
				if(obj.mul==1) obj.mul = 1;
				else obj.mul = 1;
			}
		}else {
			obj.pt=(++obj.scrollTop);
			if(obj.pt==obj.tt){obj.scrollTop=0;}
		}
	}

	function stopm(){obj.ss=true;}
	function startm(){obj.ss=false;}
	
}
//]]>
// Copyright: hc360.com
// Author: Dakular
// Useage: HCmarquee(滚动对象id, 可见范围宽度, 可见范围高度, 滚动条数, 可见条数, 滚动速度, 停留时间, 方向); 方向有left和up两种
function HCmarquee(id,mw,mh,mr,sr,ms,pause){
	
	var obj=document.getElementById(id);
	obj.ss=false; //stop tag
	obj.mr=mr; //marquee rows
	obj.sr=sr; //marquee display rows
	obj.mw=mw; //marquee width
	obj.mh=mh; //marquee height
	obj.ms=ms; //marquee speed
	obj.pause=pause; //pause time
	obj.pt=0; //pre top
	obj.st=0; //stop time
	obj.mul=1;
	obj.con="";
	with(obj){
		style.width=mw+"px";
		style.height=mh+"px";
		noWrap=false;
		onmouseover=stopm;
		onmouseout=startm;
		scrollTop=0+"px";
		scrollLeft=0+"px";
	}

	if(obj.mr!=1){
				obj.tt=mh*mr/sr;
				obj.ct=mh; //current top
				obj.innerHTML+=obj.innerHTML;
				setInterval(scrollUp,obj.ms);
	}
	function scrollUp(){
		if(obj.ss==true) return;
		obj.ct+=1;
		if(obj.ct==obj.mh+1){
			obj.st+=1; obj.ct-=1;
			if(obj.st==(obj.pause*obj.mul)){
				obj.ct=0; obj.st=0;
				if(obj.mul==1) obj.mul = 1;
				else obj.mul = 1;
			}
		}else {
			obj.pt=(++obj.scrollTop);
			if(obj.pt==obj.tt){obj.scrollTop=0;}
		}
	}

	function stopm(){obj.ss=true;}
	function startm(){obj.ss=false;}
	
}//]]>
