﻿
//公告文字特效
var bulletin=new function(){
	var bool=false;
	var speed=500;
	var color1 = "#FFFF00"; //文字的颜色     
	var color2 = "#CCFF66"; //转换的颜色  
	 
	this.changeCharColor=changeCharColor;
	this.startTimers=startTimers;
	this.stopFade=stopFade;
	this.continueFade=continueFade;
	this.initLinks=initLinks;
	this.startFade=startFade;
	
	function changeCharColor(){
		var obj=document.getElementById("babo");
		if(bool){
			obj.style.color=color1;
			bool=false;
		}else{
			obj.style.color=color2;
			bool=true;
		}
	}
	// convert a single digit (0 - 16) into hex
	function enHex(aDigit){
	    return("0123456789ABCDEF".substring(aDigit, aDigit+1))
	}
	// convert a hex digit into decimal
	function deHex(aDigit){
	    return("0123456789ABCDEF".indexOf(aDigit))
	}
	// Convert a 24bit number to hex
	function toHex(n){
	    return (enHex((0xf00000 & n) >> 20) +
	            enHex((0x0f0000 & n) >> 16) +
	            enHex((0x00f000 & n) >> 12) +
	            enHex((0x000f00 & n) >>  8) +
	            enHex((0x0000f0 & n) >>  4) +
	            enHex((0x00000f & n) >>  0))
	}
	// Convert a six character hex to decimal
	function toDecimal(hexNum){
	   	var tmp = ""+hexNum.toUpperCase()
	    while (tmp.length < 6) tmp = "0"+tmp
	   	return ((deHex(tmp.substring(0,1)) << 20) +
	       	    (deHex(tmp.substring(1,2)) << 16) + 
	            (deHex(tmp.substring(2,3)) << 12) +
	            (deHex(tmp.substring(3,4)) << 8) +
	            (deHex(tmp.substring(4,5)) << 4) +
	   	        (deHex(tmp.substring(5,6))))
	}
	//global variables
	var hoverColour;
	var numLinks;
	var rate;
	var numFadeLevels;
	var bgR;
	var bgG;
	var bgB;
	var currR;
	var currG;
	var currB;
	var count;
	var fadeOut;
	var continuous;
	var newColour;
	var tID;
	var redInterval;
	var greenInterval;
	var blueInterval;
	function initLinks(mouseOverColour, numberOfLinks, fadeOutColour)
	{
		hoverColour = mouseOverColour;
		numLinks = numberOfLinks;
		rate = 1;
		numFadeLevels = 30;
		function initArray(theArray, length, val){
			for(i=0;i<length;i++){
				theArray[i] = val;
			}
		}
		bgR = '0000' + fadeOutColour.substring(1,3)
		bgG = '0000' + fadeOutColour.substring(3,5)
		bgB = '0000' + fadeOutColour.substring(5,7)
		currR = new Array(numLinks);
		currG = new Array(numLinks);
		currB = new Array(numLinks);
		count = new Array(numLinks);
		fadeOut = new Array(numLinks);
		continuous = new Array(numLinks);
		newColour = new Array(numLinks);
		tID = new Array(numLinks);
		redInterval = toDecimal(bgR) / numFadeLevels;
		greenInterval = toDecimal(bgG) / numFadeLevels;
		blueInterval = toDecimal(bgB) / numFadeLevels;
		initArray(currR,numLinks,0);
		initArray(currG,numLinks,0);
		initArray(currB,numLinks,0);
		initArray(count,numLinks,0);
		initArray(fadeOut,numLinks,true);
		initArray(continuous,numLinks,true);
	}	
	function startFade(id)
	{
		if(fadeOut[id] == true){ /*move colour towards background colour (increment)*/
			currR[id] += redInterval;
			currG[id] += greenInterval;
			currB[id] += blueInterval;
			newColour[id] = '#' + (toHex(currR[id])).substring(4,6) + (toHex(currG[id])).substring(4,6) + (toHex(currB[id])).substring(4,6);
			if(++count[id] == numFadeLevels)
			{
				fadeOut[id] = false;
			}
		}else{
			currR[id] -= redInterval;
			currG[id] -= greenInterval;
			currB[id] -= blueInterval;
			newColour[id] = '#' + (toHex(currR[id])).substring(4,6) + (toHex(currG[id])).substring(4,6) + (toHex(currB[id])).substring(4,6);
			if(--count[id] == 0){
				fadeOut[id] = true;
			}
		}
		if(continuous[id] == true){
			document.getElementById(id).style.color = newColour[id];		
		}
	
		else{
			document.getElementById(id).style.color = hoverColour;
		}
		clearTimeout(tID[id]);
		tID[id]=setTimeout('bulletin.startFade(' + id + ')', rate);
	}
	
	function continueFade(id){
		continuous[id] = true;
	}
	
	function stopFade(id){
		continuous[id] = false;
	}
	
	function startTimers(){	//set up an initial set of timers to start the shimmering effect
		for(id=0; id<numLinks; id++)
		{
			t=setTimeout('bulletin.startFade(' + id + ')', id*100);
		}
	}
}

function setWinHeight(obj)
{
 var win=obj;
 if (document.getElementById)
 {
  if (win && !window.opera)
  {
   if (win.contentDocument && win.contentDocument.body.offsetHeight) 

    win.height = win.contentDocument.body.offsetHeight; 
   else if(win.Document && win.Document.body.scrollHeight)
    win.height = win.Document.body.scrollHeight;
  }
 }
}

//format = initLinks('mouse-over colour', 'number of links', 'fade-out colour')
bulletin.initLinks('#FF0000', 6, '#FFCC77');

function show_affiche(url){
	var left=screen.width/2-215;
	var top=screen.height/2-300
	window.open(url,'_blank','height=430,width=602,left='+left+',top='+top+',status=yes,toolbar=no,menubar=no,location=no');
}

function divshow(strobj,div_name)
{
	var divObj=document.getElementById(div_name);
 	var pc = document.getElementById(strobj);
  	var point = fGetXY(pc);
	var left = point.x+1;
	var top  = point.y+pc.offsetHeight;
	divObj.style.left=left;
	divObj.style.top=top;	
	if(divObj.style.visibility=="hidden"){
		divObj.style.visibility="visible";
	}else{	
		divObj.style.visibility="hidden";
	}
}

function divhid(id)
{
	$(id).style.display="none";
}
