//广告项对象

function ADItemObj(){
	this.id = 0;
	this.type = 1;
	this.resHeight = 100 ;
	this.resWidth = 100 ; 
	this.hint = "" ; 
	this.resURL = "" ; 
	this.linkURL = "";	
	this.power =1 ;
	this.text = "";

	this.getHtml = getADItemHTML;
}



//产生显示使用的HTML
function getADItemHTML(){
	var str = "";
	var name = "ad_" + this.id;

	switch(this.type) {
		case 1: //图片
			str = "<A TARGET='_blank' HREF='"+this.linkURL+"'><IMG ID='"+name+"' NAME='"+name+"' BORDER=0 HEIGHT=" ;
			str+=  this.resHeight + " WIDTH="+ this.resWidth + " SRC='" 	+ this.resURL + "' title='" + this.hint + "' ALT='" +this.hint+ "'></A>" 
			break;
		case 2: //flash
			str ="<object classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000'  codebase='http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0' ";
			str+=" name='"+ name +"' id='"+name+"'  width='" + this.resWidth + "' 	height='"+ this.resHeight+ "'>";
			str+="<param name='movie' value='"+this.resURL+ "'>";
			//str+="<param name='wmode' value='Transparent'>";
			str+="<param name='quality' value='autohigh'>";
			str+="<embed name='"+ name +" id='"+name+"'  width='" + this.resWidth + "' height='"+ this.resHeight+ "' src='"+this.resURL+"'";
			//str+=" wmode='Transparent'" ;
			str+=" quality='autohigh' pluginspage='http://www.macromedia.com/shockwave/download/index.cgi?P1_Prod_Version=ShockwaveFlash' type='application/x-shockwave-flash'></embed>";
			str+="</object>" ;
			break;
		case 3: //html文本；
			str ="<div>" + this.text + "</div>";
			break;
		case 4: //代码；
			str = "<script>" + this.text + "</script>";
			break;
		case 5: //页面
			str ="<IFRAME FRAMEBORDER=0 SCROLLING=NO FRAMESPACING=0 MAGINWIDTH=0 MARGINHEIGHT=0 HEIGHT=";
			str+=  this.resHeight + " WIDTH="+ this.resWidth + " SRC='" 	+ this.resURL +"'></IFRAME>"; 
	}
//document.write(str);

	return str;
}


//广告浮动块
function ADFloatDIV(id) {
	this.ID = id;
	this.divName="";
	this.status = true; 
	this.virgin = true;
	
	this.adItems = new Array();
	this.currentAD = null;
	this.htmlDIV = null;
	this.floatType = 1;

	this.divWidth = 100;
	this.divHeight = 100;
	
	this.left =  -1;
	this.top =  -1;
	
	this.dx = 2 *(  Math.random() > 0.5 ? 1 :-1);
	this.dy = 1 *(  Math.random() > 0.5 ? 1 :-1);
	this.counter=0;
	this.timer = null;

	this.step = 1 ; 
	this.rate = 10 ; 
	this.delay = 3000;

	this.setADItem = Float_setADItem;
	this.adStart = adStart;
	this.showDIV= Float_showDIV;
	this.floatDIV = Float_floatDIV;
	this.pauseMove=Float_pauseMove;
	this.continueMove=Float_continueMove;
	this.divInvisible = Float_invisible;
	this.getCurrentAD = getRandomObj;
	this.initDiv = FLoat_InitDiv;
	this.popWindow = pop_window;
}

function adStart() {
	if ( this.floatType  <= 10 ) {
		this.showDIV();
  } else if ( this.floatType > 10 )  {
		this.popWindow();
	}
}

function FLoat_InitDiv() {
	if( this.virgin == false )  return;
	this.virgin = false;

	//匀速漂移 ---变速漂移
	if ( this.floatType == 1 || this.floatType == 2 || this.floatType ==3 || this.floatType == 4) {
		if( this.left < 0 ) {
  		this.left = 500 +  500 * Math.random() * ( Math.random() > 0.5 ? 1 :-1)  ;
		}
		if( this.top < 0 ) {
			this.top = 300 +  300 * Math.random() * ( Math.random() > 0.5 ? 1 :-1) ;
		}
	//
	//中央投影,随屏滚动。
  } else if (this.floatType== 5 || this.floatType == 6) {
		if( this.left == -1 ) {
  		this.left = ( window.document.body.offsetWidth-this.divWidth) / 2 ; 
		} else if( this.left == -2 ) {
			this.left = window.document.body.offsetWidth - this.divWidth ;
		} 
		/*
		if( this.top == -1 ) {
			this.top = ( window.document.body.offsetHeight-this.divHeight - this.dy) / 2  ;
		} else if (this.top == -2 ) {
			this.top = window.document.body.offsetHeight - this.divHeight - this.dy*2  ;
			alert(this.top);
		} 
		*/
		
		var sHeight = document.documentElement.clientHeight|| document.body.clientHeight;
		if( this.top == -1 ) {
			this.top = ( sHeight-this.divHeight - this.dy-22) / 2  ;
		} else if (this.top == -2 ) {
			this.top = sHeight - this.divHeight - this.dy*2-22;
		} 
	}
	 if (this.left >  (window.document.body.offsetWidth - this.divWidth)) {
			this.left = (window.document.body.offsetWidth - this.divWidth) / window.screen.width * this.left;
			if (this.left >  (window.document.body.offsetWidth - this.divWidth)) {
				this.left = (window.document.body.offsetWidth - this.divWidth) ;
			}			
	  }
		if (this.top >  ( window.document.body.offsetHeight - this.divHeight - this.dy*2-22)) {
			this.top = ( window.document.body.offsetHeight - this.divHeight - this.dy*2-22) / window.screen.width * this.top ;
			if (this.top >  ( window.document.body.offsetHeight - this.divHeight - this.dy*2-22)) {
				this.top = ( window.document.body.offsetHeight - this.divHeight - this.dy*2-22) ;
			}
		}
}

//显示DIV，并在屏幕浮动。
function Float_floatDIV() {
  screenX=document.documentElement.scrollLeft|| document.body.scrollLeft;//window.document.body.scrollLeft;
  screenY=document.documentElement.scrollTop|| document.body.scrollTop;//window.document.body.scrollTop;
  //screenW=window.document.body.offsetWidth-this.divWidth - 22;
  //screenH=window.document.body.offsetHeight-this.divHeight - this.dy*2 ;
  screenW=document.documentElement.clientWidth || document.body.clientWidth;
  screenW=screenW-this.divWidth;// - 22;
  screenH=document.documentElement.clientHeight|| document.body.clientHeight;
  screenH=screenH-this.divHeight - this.dy*2 ;
  this.initDiv();
	var theLeft , theTop ;
	//匀速漂移
	if ( this.floatType == 1 ) {
		theLeft = this.left + this.dx * this.step 
		theTop = this.top + this.dy * this.step  ;
		if( ( theLeft >= screenW && this.dx> 0 ) || ( theLeft <=0 &&  this.dx <0 ))      this.dx= -1 * this.dx ;
		if( ( theTop >= screenH &&  this.dy >0  ) || ( theTop <= 0 && this.dy <0 )) 	   this.dy= -1 * this.dy ;
	//变速漂移
	} else if ( this.floatType == 2) 	{
		if( this.counter >= ( 200 / this.rate )) {
			this.dx = ( this.dx > 0 ? 1 : -1 ) * Math.random() * 5; 
			this.dy = ( this.dy > 0 ? 1 : -1 ) * Math.random() * 5 ;
			this.counter = 0 ; 
		}
		this.counter+=1 ;
		theLeft = this.left ; 
		theTop = this.top + this.dy * this.step  ;
		if( ( theLeft >= screenW && this.dx> 0 ) || ( theLeft <=0 &&  this.dx <0 ))      this.dx= -1 * this.dx ;
		if( ( theTop >= screenH &&  this.dy >0  ) || ( theTop <= 0 && this.dy <0 )) 	   this.dy= -1 * this.dy ;
	//垂直上下
	} else if( this.floatType == 3 )	{
		this.dx=0;
		theLeft = this.left + this.dx * this.step 
		theTop = this.top + this.dy * this.step  ;
		if( ( theLeft >= screenW ) || ( theLeft <=0 ))    {   this.left = this.left + this.currentAD.resWidth; }
		if( ( theTop >= screenH &&  this.dy >0  ) || ( theTop <= 0 && this.dy <0 )) 	   this.dy= -1 * this.dy ;

	//水平滚动。
	} else if( this.floatType ==4 )	{
		this.dy=0;
		theLeft = this.left + this.dx * this.step 
		theTop = this.top + this.dy * this.step  ;
		//if( ( theLeft >= screenW ) || ( theLeft <=0 ))    {   this.left = this.left + this.currentAD.resWidth; }
		if((theLeft <=0 )) {this.dx=-1 * this.dx;}
		//if( ( theLeft >= screenW &&  this.dx >0  ) || ( theTop <= 0 && this.dy <0 )) 	   this.dx= -1 * this.dx ;
		if( ( theLeft >= screenW &&  this.dx >0  )) {
			this.dx= -1 * this.dx ;
			//alert("left:" +theLeft+",divWidth:" + this.divWidth + ",screenW:" + screenW + ",dx:"+this.dx);
		}
	//随屏滚动。
	} else if( this.floatType== 5 ) {
		this.dx = 0;
		this.dy = 0;
		//this.left = screenX ; 
		//this.top = screenY ; 
	//中央投影
  } else if (this.floatType = 6) {
	  if(document.all){
  	    this.htmlDIV.style.pixelLeft= this.left;
		this.htmlDIV.style.pixelTop= this.top; 
	  }else{
  	    this.htmlDIV.style.left= this.left+"px";
		this.htmlDIV.style.top= this.top+"px"; 
	  }
		this.htmlDIV.timer=setTimeout( this.ID +".divInvisible()",this.delay);
		return ; 
	}
  this.left = this.left + this.dx * this.step ;
	this.top = this.top + this.dy * this.step  ;
	if(document.all){
	  this.htmlDIV.style.pixelLeft=this.left  + screenX;
	  this.htmlDIV.style.pixelTop=this.top  + screenY;
	}else{
	  this.htmlDIV.style.left=this.left  + screenX+"px";
	  this.htmlDIV.style.top=this.top  + screenY+"px";
	}
  var	delay = 80 / this.rate;
	clearTimeout(this.htmlDIV.timer)
  this.htmlDIV.timer=setTimeout( this.ID +".floatDIV()",delay);
}


//得到整个块的显示使用的HTML。
function Float_showDIV() {
	this.currentAD = this.getCurrentAD(this.adItems);
	this.divHeight =	this.currentAD.resHeight; 
	this.divWidth = this.currentAD.resWidth ;

	//为空不显示。
	if( this.currentAD == null || this.currentAD=="") return ; 
	this.divName = "ADF_" + this.ID;
	this.divHeight = this.divHeight+22;
 	var str = "<DIV id='"+ this.divName + "' onMouseOver='" + this.ID+".pauseMove()' onMouseOut='" +this.ID+ ".continueMove()"  ;
	str += "' STYLE='position:absolute; visibility:visible; z-index:1; width:" ;
	if(document.all){
	str	+= this.divWidth + "; height:" + this.divHeight + "; left:" + this.left+ ";top:" + this.top + "'>";
	}else{
	str	+= this.divWidth + "; height:" + this.divHeight + "; left:" + this.left+ "px;top:" + this.top + "px'>";	
	}
	str += this.currentAD.getHtml();
	//if(this.currentAD.type!=4){
		str += "<span  STYLE='display:block;background-color:#ECE9D8;font-size:12px; width:30px; line-height:1.5;text-align:right;padding:2px;cousor:hand'  ><A HREF='javascript:"+this.ID+".divInvisible()'''>"+I18n.adClose+"</A>&nbsp;</span>";
	//}
	str +="</DIV>";

	document.write(str);
	this.htmlDIV = document.getElementById(this.divName);
	this.floatDIV();
}

function Float_pauseMove() {
	clearTimeout(this.htmlDIV.timer)
}


function Float_continueMove() {
	if( this.status )	this.floatDIV();
}

//设置当前广告项。
function Float_setADItem(ItemObj) {
	 var thisLine = this.adItems.length;
	 this.adItems[thisLine] = new Array( ItemObj , ItemObj.power);
}

// 去掉显示。
function Float_invisible() {
		clearTimeout(this.htmlDIV.timer)
		this.htmlDIV.style.visibility="hidden";
		this.status = false;
}


//弹出窗口。
function pop_window() {
	var popC = getCookie("_cmsPopAD");
	if(popC && popC > 0){
		return;
	}

	this.currentAD = this.getCurrentAD(this.adItems);
	this.divHeight =	this.currentAD.resHeight; 
	this.divWidth = this.currentAD.resWidth ;

	//为空不显示。
	if( this.currentAD == null || this.currentAD=="") return ; 

	 var str = "width=" + this.divWidth + "px,height="  +this.divHeight + "px,toolbar=0,location=0,status=0,menubar=0,scrollbars=0,resizable=0,";
	 str +="Top=" + this.top + ",Left=" + this.left;

	var url = "http://" + window.location.host + _contextPath + "/cad?_cmsADC=" + this.currentAD.id;
	//alert(url);
	//alert(this.floatType);
	//前置窗口
	if( this.floatType == 11 ) {
		window.open(url , "" , str);
	//背投窗口
	} else if (this.floatType == 12) {
		window.open( url , "" , str);
		window.focus();
	//对话筐
	} else if (this.floatType == 13)  {		
		if(browser.isNS){
			window.open(url , "" , "modal=yes," + str);
		}else{
			if(browser.isIE7){
				str = "dialogWidth:" + this.divWidth + "px;dialogHeight:" + this.divHeight + "px;dialogLeft:" + this.left + "px;dialogTop:" + this.top + "px;";
			}else if(browser.isIE){
				str = "dialogWidth:" + (this.divWidth+6) + "px;dialogHeight:" + (this.divHeight + 56) + "px;dialogLeft:" + this.left + "px;dialogTop:" + this.top + "px;";
			}else{
				str = "dialogWidth:" + this.divWidth + "px;dialogHeight:" + this.divHeight + "px;dialogLeft:" + this.left + "px;dialogTop:" + this.top + "px;";
			}
			
			window.showModalDialog(url,window,str);
		}
	}

	setCookie("_cmsPopAD",this.delay,this.delay);
}

function getRandomObj( array ){
	var totalPower = 0 ; 
	var start = 0 ; 
	for( ii = 0 ; ii < array.length ; ii++) {
		totalPower += array[ii][1];
		array[ii][2] = start;
		array[ii][3] = start + array[ii][1];
		start = array[ii][3];
	}
	var theSelected = Math.random() * totalPower ; 	

	var counter = 0 ; 
	for( ii = 0 ; ii< array.length ; ii++ ) {
		if( theSelected > array[ii][2] && theSelected < array[ii][3] ) {
		   return array[ii][0];
		}
	} //end for
}

//静态广告信息块
function staticADDIV(id) {
	this.ID = id;
	this.adItems = new Array();
	this.currentAD = null;
  this.setADItem = static_setADItem;
	this.setHtml = positionADHTML;
	this.getCurrentAD = getRandomObj;
}

function positionADHTML(divName) {
  var divObj = document.getElementById( divName);
 	this.currentAD = this.getCurrentAD(this.adItems);
	var str = this.currentAD.getHtml();
	//alert(str);
	divObj.innerHTML  =  str;
}

//设置当前广告项。
function static_setADItem(ItemObj) {
	 var thisLine = this.adItems.length;
	 this.adItems[thisLine] = new Array( ItemObj , ItemObj.power);
}