var DayooFP=new DayooFloatingPaneClass();

if(typeof(dojo) == undefined){
	dojo.addOnLoad(
		function(){
		DayooFP.init();
		}
	);
}else{
	DayooFP.init();
}


function DayooFloatingPaneClass(){
	var browserName = navigator.appName;
	var browse=0;
	if (browserName == "Microsoft Internet Explorer") browse=1;
	if (browserName == "Netscape") browse=2;
	
	//主控件对象
	var objArr=[
				["DFP","DayooFloatingPane"],
				["DFPContainer","DayooFloatingPane_container"],
				["DFPContent","DayooFloatingPane_content"],
				["DFPTool","DayooFloatingPane_tool"],
				["DFPClose","DayooFloatingPane_close"],
				["DFPSetting","DayooFloatingPane_setting"],
				["DFPNew","DayooFloatingPane_new"],
				["DFPUp","DayooFloatingPane_up"],
				["DFPDown","DayooFloatingPane_down"],
				
				["DFPSet","DayooFloatingPaneSet"],
				["DFPSHidden","DayooFloatingPaneSet_hidden"],
				["DFPSCloseScroll","DayooFloatingPaneSet_closescroll"],
				["DFPSCloseWin","DayooFloatingPaneSet_closewin"],
				["DFPSClose","DayooFloatingPaneSet_close"],
				
				["DFPNews","DayooFloatingPaneNews"],
				["DFPNTitle","DayooFloatingPaneNews_title"],
				["DFPNClose","DayooFloatingPaneNews_close"],
				["DFPNContent","DayooFloatingPaneNews_content"],
				
				["DFPMini","DayooFloatingPaneMini"],
				["DFPTip","DayooFloatingPaneTip"],
				["DFPTipContent","DayooFloatingPaneTip_Content"]

				];
	
	//定义对象
	for(var i=0;i<objArr.length;i++){
		eval("var "+objArr[i][0]+"=null;");
	}
	
	//cookie对象
	var cookieObj=[
					"Cookie_CloseDFP",
					"Cookie_HiddenDFP",
					"Cookie_CloseScroll",
					"Cookie_CloseWin",
					"Cookie_NewsTime",
					"Cookie_NewsWinTime",
					"Cookie_NewsWinTimeTemp",
					"Cookie_Tip"
				 ];
	//定义对象
	for(var j=0;j<cookieObj.length;j++){
		eval("var "+cookieObj[j]+"=null;");
	}
		
	//----------------------
	var sourceURL="http://app5.dayoo.com/roll_bar/getNews.php";
	
	var max_timer2=50;
	var min_timer2=1;
	
	var timer1=100;
	var timer2=max_timer2;
	var timer3=5000;
	var timeout1=null;
	var timeout2=null;
	var timeout3=null;
	var timeout5=null;
	
	var timeoutAfterUpdateWinOpen=null;
	
	var lock_move=0;
	var timeout_lockmove=null;
	
	
	//默认的开始滚动时间
	var scrollOpenTimer=10000;
	//弹出窗口打开时间
	var winOpenTimer=15000;
	//获取数据时间间隔
	var getSourceTimer=120000;//2分钟
	
	//滚动的次数
	var scrollTimes=0;
	//滚动方向
	var scrollDirection=1;
	
	//当前操作对象
	var nowObj=null;
	var nowObj2=null;
	
	//第一次进入页面时为0
	var initMark=0;
	

	//初始化
	this.init=function(){
		//创建对象
		var i=0;
		for(i=0;i<objArr.length;i++){
			eval(objArr[i][0].toString()+"=getId('"+objArr[i][1].toString()+"')");
		}
		i=0;
		for(i=0;i<cookieObj.length;i++){
			eval(cookieObj[i]+"={name:'"+cookieObj[i]+"',value:''}");
		}
		
		//默认当前对象
		//nowObj=DFP;
				
		//绑定事件
		DFPContent.onmouseover=DFPContent_onmouseover;
		DFPContent.onmouseout=DFPContent_onmouseout;
		DFPClose.onclick=planeClose;
		DFPMini.onclick=planeOpen;
		DFPSetting.onclick=DFPSetting_onclick;
		DFPNew.onclick=DFPNew_onclick;
		
		DFPUp.onclick=DFPUp_onclick;
		DFPDown.onclick=DFPDown_onclick;
		
		DFPSClose.onclick=DFPSClose_onclick;
		DFPSHidden.onclick=DFPSHidden_onclick;
		DFPSCloseScroll.onclick=DFPSCloseScroll_onclick;
		DFPSCloseWin.onclick=DFPSCloseWin_onclick;
		
		DFPNClose.onclick=DFPNClose_onclick;

		DFPTipContent.onclick=DFPTip_onclick;

		window.onscroll=move;
		window.onresize=move;
		try{document.body.onmousewheel=move;}catch(e){}
		
		if(GetCookie(Cookie_CloseDFP)==null)SetCookie(Cookie_CloseDFP,'true');
		if(GetCookie(Cookie_HiddenDFP)==null)SetCookie(Cookie_HiddenDFP,'true');
		if(GetCookie(Cookie_CloseScroll)==null)SetCookie(Cookie_CloseScroll,'false');
		if(GetCookie(Cookie_CloseWin)==null)SetCookie(Cookie_CloseWin,'false');
		if(GetCookie(Cookie_NewsTime)==null)SetCookie(Cookie_NewsTime,'0');
		if(GetCookie(Cookie_NewsWinTime)==null)SetCookie(Cookie_NewsWinTime,'0');
		if(GetCookie(Cookie_NewsWinTimeTemp)==null)SetCookie(Cookie_NewsWinTimeTemp,'0');
		if(GetCookie(Cookie_Tip)==null)SetCookie(Cookie_Tip,'true');
	
		//move();
		objDisplay(DFP,2);
		objDisplay(DFPNews,2);
		objDisplay(DFPSet,2);
		objDisplay(DFPTip,2);
		objDisplay(DFPMini,2);
		
		logAccess();
		getSource();


	}
	
	//回调函数
	this.run=function(obj){
		var str="";
		var newstime=GetCookie(Cookie_NewsTime);//获取更新时间
		var newswintime=GetCookie(Cookie_NewsWinTime);//获取更新时间(弹出窗口的)
		
		var WinOT=0;
		var ScrollOT=0;

		if(initMark==0 || newstime<obj.newsTime){
			var length=obj.news.length;
			str+="<br>";
			for(var i=0;i<length;i++){
				//循环内容
				str+="<font>"+obj.news[i][0].substring(11,16)+"</font><a target='_blank' href="+obj.news[i][2]+">"+obj.news[i][1];
				if(newstime<obj.newsTime && i<2){
					str+="<img src='http://images.dayoo.com/2008/19434.files/img/new.gif' />";
				}
				str+="</a>";
				
				if((i+1)%2==0 || (i+1)==length){
					str+="<br>";
				}
			}
			str+="<a href='http://2008.dayoo.com' target='_blank'><font color='#ffffff'>更多精彩的奥运即时新闻,请关注大洋奥运网 2008.dayoo.com.....</font></a><br><br>";
			if(str!=''){
				DFPContent.innerHTML=str;
				addLinkLogAccess(DFPContent);
			}
			
			SetCookie(Cookie_NewsTime,obj.newsTime);
			if(newstime<obj.newsTime)window.setTimeout(cleanNewImg,60000);//20秒后清除最新图片
		}
		
		if(initMark==0 || newswintime<obj.win_time){
			DFPNTitle.innerHTML=obj.win_title;
			DFPNContent.innerHTML=obj.win_content;

			addLinkLogAccess(DFPNTitle);
			addLinkLogAccess(DFPNContent);

		}
		
		
		//第一进入页面
		if(initMark==0){
			
			WinOT=winOpenTimer;
			ScrollOT=scrollOpenTimer;
			
			if(GetCookie(Cookie_CloseDFP)=='true' || GetCookie(Cookie_CloseScroll)=="true"){
				planeClose();
				if(GetCookie(Cookie_Tip)=='true'){//只显示一次
					SetCookie(Cookie_Tip,'false');
					window.setTimeout(showTip,1000);
				}
			}else{
				planeOpen();
			}
		}
		//有新的消息(弹出窗口)
		if(newswintime<obj.win_time){
			
			SetCookie(Cookie_NewsWinTimeTemp,obj.win_time);
			
			//不是首次进入
			if(initMark!=0){
				WinOT=winOpenTimer-scrollOpenTimer;
			}
			if(GetCookie(Cookie_CloseWin)=="false"){
				timeoutAfterUpdateWinOpen=window.setTimeout(DFPNew_onclick,WinOT);
			}
			
		}
		//有新的消息(滚动条)
		if(newstime<obj.newsTime){
			//不是首次进入
			if(initMark!=0){
				ScrollOT=0;
			}
			if(GetCookie(Cookie_CloseScroll)=="false"){
				window.setTimeout(planeOpen,ScrollOT);
			}
		}

		if(initMark==0)initMark=1;
		
		window.setTimeout(getSource,getSourceTimer);

	}
	
	
	//--------------------------------------------------------------
	//滚动条中的函数 start
		
		//鼠标移到内容框时
		var DFPContent_onmouseover=function(){
			window.clearTimeout(timeout3);
			window.clearTimeout(timeout2);
		}
	
		//鼠标离开内容框架
		var DFPContent_onmouseout=function(){
			window.clearTimeout(timeout3);
			window.clearTimeout(timeout2);
			timeout3=window.setTimeout(Scroll,500);
		}
	
		//关闭滚动框架
		var planeClose=function(){
			SetCookie(Cookie_CloseDFP,"true");
			nowObj=DFPMini;
			nowObj2=null;
			
			objDisplay(DFP,2);
			objDisplay(DFPSet,2);
			objDisplay(DFPNews,2);
			
			objOpacity(DFPMini,0);
			objDisplay(DFPMini,1);
			moveSetTop();
			objOpacity(DFPMini,100);
			
			window.clearTimeout(timeout3);
			window.clearTimeout(timeout2);
			
		}
		
		//打开滚动框架
		var planeOpen=function(){
			if(DFPContent.innerHTML.replace(/&nbsp;/g,'')=='')return;
			if(DFP.style.display!='none')return;

			SetCookie(Cookie_CloseDFP,"false");
			nowObj=DFP;
			
			objDisplay(DFPTip,2);
			objDisplay(DFPMini,2);
			
			objOpacity(DFP,0);
			objDisplay(DFP,1);
			moveSetTop();
			objOpacity(DFP,100);
			
			window.clearTimeout(timeout3);
			window.clearTimeout(timeout2);
			DFPContainer.scrollTop=0;
			Scroll();
		}
		
		//设置滚动方向
		var setDirection=function(direction){
			scrollDirection=direction;
		}
		
		//点击滚上
		var DFPUp_onclick=function(){
			window.clearTimeout(timeout3);
			window.clearTimeout(timeout2);
			timer2=min_timer2;
			setDirection(-1);
			Scroll();
		}
	
		//点击滚下
		var DFPDown_onclick=function(){
			window.clearTimeout(timeout3);
			window.clearTimeout(timeout2);
			timer2=min_timer2;
			setDirection(1);
			Scroll();
		}
	
		//显示设置控件框
		var DFPSetting_onclick=function(){
			nowObj2=DFPSet;
			
			objDisplay(DFPNews,2);
			
			objOpacity(DFPSet,0);
			objDisplay(DFPSet,1);
			moveSetTop();
			objOpacity(DFPSet,100);
			
			if(GetCookie(Cookie_HiddenDFP)=='true')DFPSHidden.checked=true;
			else DFPSHidden.checked=false;
			
			if(GetCookie(Cookie_CloseScroll)=='true')DFPSCloseScroll.checked=true;
			else DFPSCloseScroll.checked=false;
			
			if(GetCookie(Cookie_CloseWin)=='true')DFPSCloseWin.checked=true;
			else DFPSCloseWin.checked=false;
		}
		
		//打开新闻窗口
		var DFPNew_onclick=function(){
			SetCookie(Cookie_NewsWinTime,GetCookie(Cookie_NewsWinTimeTemp));
			window.clearTimeout(timeoutAfterUpdateWinOpen);
			nowObj2=DFPNews;
			
			objDisplay(DFPSet,2);
			
			objOpacity(DFPNews,0);
			objDisplay(DFPNews,1);
			objTop(DFPNews,(winCH()+winST()));
			objOpacity(DFPNews,100);
			
			DFPNews_show();
		}
		
		//打开新窗口的显示效果
		var DFPNews_show=function(){
			var DFP_CH=0;
			if(DFP.style.display!='none'){
				DFP_CH=DFP.clientHeight;
			}
			var top=objTop(DFPNews);
			if(top>=(winCH()+winST()-DFP_CH-DFPNews.clientHeight-1)){
				objTop(DFPNews,top-10);
				window.setTimeout(DFPNews_show,1);
			}else{
				objTop(DFPNews,(winCH()+winST()-DFPNews.clientHeight-DFP_CH-1));
				return;
			}
		}
		
		//隐藏提示
		var tipDisplay=function(){
			objDisplay(DFPTip,2);
		}
		
		var showTip=function(){
			objOpacity(DFPTip,0);
			objDisplay(DFPTip,1);
			nowObj2=DFPTip;
			window.setTimeout(tipDisplay,10000);
			moveSetTop();
			objOpacity(DFPTip,100);
		}
		
		var DFPTip_onclick=function(){
			planeOpen();
		}
	
	//滚动条中的函数 end
	
	//--------------------------------------------------------------
	//设置窗中口选项 start
	
		//关闭设置框
		var DFPSClose_onclick=function(){
			objDisplay(DFPSet,2);
			nowObj2=null;
		}
		
		//设置是否滚动时隐藏
		var DFPSHidden_onclick=function(){
			if(DFPSHidden.checked==true)
				SetCookie(Cookie_HiddenDFP,'true');
			else
				SetCookie(Cookie_HiddenDFP,'false');
		}
		
		//永远关闭滚动窗口
		var DFPSCloseScroll_onclick=function(){
			if(DFPSCloseScroll.checked==true)
				SetCookie(Cookie_CloseScroll,'true');
			else
				SetCookie(Cookie_CloseScroll,'false');
		}
		
		//设置是否永远新闻窗口
		var DFPSCloseWin_onclick=function(){
			if(DFPSCloseWin.checked==true)
				SetCookie(Cookie_CloseWin,'true');
			else
				SetCookie(Cookie_CloseWin,'false');
		}

	//设置窗中口选项 end
	
	//--------------------------------------------------------------
	//新闻窗口事件 start
		
		//关闭新闻消息框
		var DFPNClose_onclick=function(){
			objDisplay(DFPNews,2);
			nowObj2=null;
		}
	
	//新闻窗口事件 end
	
	
	//--------------------------------------------------------------
	//其它辅佐函数 start
		
		//获取对象
		var getId=function(id){return document.getElementById(id);}
		var winCH=function(){
			if(document.documentElement.clientHeight==0) return document.body.clientHeight;
			if(browse==2 && document.documentElement.clientHeight>document.body.clientHeight)return document.body.clientHeight
			else return document.documentElement.clientHeight;
		}
		var winCW=function(){
			if(document.documentElement.clientWidth==0) return document.body.clientWidth;
			if(browse==2 && document.documentElement.clientWidth>document.body.clientWidth)return document.body.clientWidth
			else return document.documentElement.clientWidth;
		}
		var winST=function(){
			if(document.documentElement.scrollTop==0) return document.body.scrollTop;
			else return document.documentElement.scrollTop;
		}
		var objTop=function(obj,top){
			if(top!=null)obj.style.top=top+"px";
			else return parseInt(obj.style.top.replace('px',''));
		}
		var objDisplay=function(obj,display){
			if(display==1)display='block';
			if(display==2)display='none';
			obj.style.display=display;
		}
		
		//获取对象透明度
		var objOpacity=function(obj,opacity){
			if(browse==1){
				if(opacity==null){
					return parseInt(obj.filters[0].Opacity);
				}else{
					obj.filters[0].Opacity=opacity;
				}
			}else{
				if(opacity==null){
					return parseFloat(obj.style.opacity);
				}else{
					obj.style.opacity=opacity;
				}
			}
		}
	
		//获取信息
		var getSource=function(){
			if(getId('DFPSourceScript')!=null){
				document.getElementsByTagName("head")[0].removeChild(getId('DFPSourceScript'));
			}
			
			var e=document.createElement('script');   
			e.id='DFPSourceScript';
			e.type='text/javascript';   
			e.src=sourceURL+"?cleanCache="+new Date();   
			document.getElementsByTagName("head")[0].appendChild(e);  
		}  
			
		//字幕滚动
		var Scroll=function(){
			
			if(DFPContent.offsetHeight<30){//不用滚
				return;
			}
			
			if(scrollDirection==1){
				if(DFPContent.offsetHeight<=DFPContainer.scrollTop+25){
					DFPContainer.scrollTop=0;
				}
			}else{
				if(DFPContainer.scrollTop<5){
					DFPContainer.scrollTop=DFPContent.offsetHeight-25;
				}
			}
			DFPContainer.scrollTop=DFPContainer.scrollTop+scrollDirection; 
			if(DFPContainer.scrollTop%22==0){
				window.clearTimeout(timeout3);
				window.clearTimeout(timeout2);
				setDirection(1);
				timer2=max_timer2;
				timeout3=window.setTimeout(Scroll,timer3);
				return;
			}
			timeout2=window.setTimeout(Scroll,timer2);
		}
		
		//隐藏
		var hidden=function(){
			if(nowObj==null)return;
			
			var stepValue=0;
			var MaxValue=0;
			
			if(browse==1){
				stepValue=20;
				MaxValue=100;
			}else{
				stepValue=0.2;
				MaxValue=1;
			}
			
			var Opacity=objOpacity(nowObj);
			objOpacity(nowObj,Opacity+stepValue);
			if(nowObj2!=null && nowObj2.style.display!='none')objOpacity(nowObj2,Opacity+stepValue);
			if((Opacity+stepValue)>=MaxValue){
				window.clearTimeout(timeout1);
				return;
			}
			
			timeout1=window.setTimeout(hidden,timer1);
		}
		
		
		//浮动位置移动和效果
		var move=function(){
			if(DFPContent.innerHTML.replace(/&nbsp;/g,'')=='')return;
			
			if(GetCookie(Cookie_HiddenDFP)!='true'){//不隐藏
				moveSetTop();
				moveSetScroll();
			}else{

				//if(lock_move==0){
					objOpacity(nowObj,0);
					window.clearTimeout(timeout1);
					window.clearTimeout(timeout5);
					objOpacity(nowObj,0);
					
					if(nowObj2!=null && nowObj2.style.display!='none'){
						objOpacity(nowObj2,0);
					}
					lock_move=1;
				//}
				window.clearTimeout(timeout_lockmove);
				timeout_lockmove=window.setTimeout(move_action,800);
			}
			
		}
		
		
		var move_action=function(){
			lock_move=0;
			moveSetTop();
			hidden();
			moveSetScroll();
		}
		
		var moveSetTop=function(){

			objTop(nowObj,(winCH()+winST()-nowObj.clientHeight-1));
			
			if(nowObj2!=null && nowObj2.style.display!='none'){
				objTop(nowObj2,(winCH()+winST()-nowObj2.clientHeight-nowObj.clientHeight-1));
			}

		}
	
		//控件滚动时文字滚动效果
		var moveSetScroll=function(){
			
			window.clearTimeout(timeout3);
			window.clearTimeout(timeout2);
			if(DFPContainer.scrollTop!=0 && DFPContainer.scrollTop%22==0){
				window.clearTimeout(timeout_lockmove);
				timeout_lockmove=window.setTimeout(Scroll,2500);
			}else{
				Scroll();
			}
		}
		
		//清除滚动新闻中的最新图片
		var cleanNewImg=function(){
			var imgs=DFPContent.getElementsByTagName('img');
			var length=imgs.length;
			for(var i=0;i<length;i++){
				
				objDisplay(imgs[i],2);
			}
		}
	
	//其它辅佐函数 end
	
	//--------------------------------------------------------------
	//cookie start
		var GetCookieVal=function(offset){
			//获得Cookie解码后的值
			var endstr = document.cookie.indexOf (";", offset);
			if (endstr == -1)
				endstr = document.cookie.length;
			return unescape(document.cookie.substring(offset, endstr));
		}
		
		var SetCookie=function(obj, value){
			//设定Cookie值
			
			var name=obj.name;
			
			var expdate = new Date();
			var argv = SetCookie.arguments;
			var argc = SetCookie.arguments.length;
			var expires = (argc > 2) ? argv[2] : 365;
			var path = (argc > 3) ? argv[3] : '/';
			var domain = (argc > 4) ? argv[4] : 'dayoo.com';
			var secure = (argc > 5) ? argv[5] : false;
			if(expires!=null) expdate.setTime(expdate.getTime() + ( expires * 24*60*60 ));
			document.cookie = name + "=" + escape (value) +((expires == null) ? "" : ("; expires="+ expdate.toGMTString()))
			+((path == null) ? "" : ("; path=" + path)) +((domain == null) ? "" : ("; domain=" + domain))
			+((secure == true) ? "; secure" : "");
			
			eval(obj.name+".value='"+value+"'");
		}
		
		var GetCookie=function(obj){
			//获得Cookie的原始值
			var name='';
			if(obj.value!='')
				return obj.value;
			else
				name=obj.name;

			var arg = name + "=";
			var alen = arg.length;
			var clen = document.cookie.length;
			var i = 0;
			while (i < clen){
				var j = i + alen;
				if (document.cookie.substring(i, j) == arg){
					eval(obj.name+".value='"+GetCookieVal(j)+"';");
					return eval(obj.name+".value");
				}
				i = document.cookie.indexOf(" ", i) + 1;
				if (i == 0) break;
			}
			return null;
		}
	//cookie end


	//访问量统计
	var logAccess=function(){
		var e=document.createElement('script');   
		e.type='text/javascript';   
		e.src='http://rnd.dayoo.com/javascript/ad/logAccess.js';   
		document.getElementsByTagName("head")[0].appendChild(e);  
	}  

	//链接添加访问量统计的oclick事件
	var addLinkLogAccess=function(obj){
		var aArr=obj.getElementsByTagName('a');
		var i=0;
		for(i=0;i<aArr.length;i++){
			aArr[i].onclick=function(){
				dayoo_ad_logAccess('DFP','onclick','http://rnd.dayoo.com/icon/logAccess/pv.gif');
			}
		}
	}
	
}
