
/**
 * @class analog clock class
 * @author Janusz Rygał
 * @date 19.09.2008 
 */
AnalogClock = function(container_){
	/**clock container*/
	var el = container_;

	/**face colour*/	
	var fCol='FFFFFF';
	/**seconds colour*/
	var sCol='FF0000';
	/**minutes colour*/
	var mCol='FFFFFF';
	/**hours colour*/
	var hCol='FFFFFF';
	/**clock height*/	
	var Ybase=30;
	/**clock width*/
	var Xbase=30;
		
		
	var H='___';
	var H=H.split('');
	var M='____';
	var M=M.split('');
	var S='_____';
	var S=S.split('');
	var NS4=(document.layers);
	var NS6=(document.getElementById&&!document.all);
	var IE4=(document.all);
	var Ypos=0;
	var Xpos=0;
	var dots=12;
	var Split=360/dots;	
	
	/**
	 * method to prepare clock
	 */
	this.prepareClock = function(){
				if (NS6){
						for (i=1; i < dots+1; i++){
							el.innerHTML += '<div id="n6Digits'+i+'" style="position:absolute;top:0px;left:0px;width:30px;height:30px;font-family:Arial;font-size:10px;color:#'+fCol+';text-align:center;padding-top:10px">'+i+'</div>';
						}
						for (i=0; i < M.length; i++){
							el.innerHTML += '<div id="Ny'+i+'" style="position:absolute;top:0px;left:0px;width:2px;height:2px;font-size:2px;background:#'+mCol+'"></div>';
						}
						for (i=0; i < H.length; i++){
							el.innerHTML += '<div id="Nz'+i+'" style="position:absolute;top:0px;left:0px;width:2px;height:2px;font-size:2px;background:#'+hCol+'"></div>';
						}
						for (i=0; i < S.length; i++){
							el.innerHTML += '<div id="Nx'+i+'" style="position:absolute;top:0px;left:0px;width:2px;height:2px;font-size:2px;background:#'+sCol+'"></div>';
						}
				}
				if (NS4){
						dgts='1 2 3 4 5 6 7 8 9 10 11 12';
						dgts=dgts.split(' ')
						for (i=0; i < dots; i++){
							el.innerHTML += '<layer name=nsDigits'+i+' top=0 left=0 height=30 width=30><center><font face=Arial size=1 color='+fCol+'>'+dgts[i]+'</font></center></layer>';
						}
						for (i=0; i < M.length; i++){
							el.innerHTML += '<layer name=ny'+i+' top=0 left=0 bgcolor='+mCol+' clip="0,0,2,2"></layer>';
						}
						for (i=0; i < H.length; i++){
							el.innerHTML += '<layer name=nz'+i+' top=0 left=0 bgcolor='+hCol+' clip="0,0,2,2"></layer>';
						}
						for (i=0; i < S.length; i++){
							el.innerHTML += '<layer name=nx'+i+' top=0 left=0 bgcolor='+sCol+' clip="0,0,2,2"></layer>';
						}
				}
				if (IE4){
						el.innerHTML += '<div style="position:absolute;top:0px;left:0px"><div style="position:relative">';
						for (i=1; i < dots+1; i++){
							el.innerHTML += '<div id="ieDigits" style="position:absolute;top:0px;left:0px;width:30px;height:30px;font-family:Arial;font-size:10px;color:'+fCol+';text-align:center;padding-top:10px">'+i+'</div>';
						}
						el.innerHTML += '</div></div>';
						el.innerHTML += '<div style="position:absolute;top:0px;left:0px"><div style="position:relative">';
						for (i=0; i < M.length; i++){
							el.innerHTML += '<div id=y style="position:absolute;width:2px;height:2px;font-size:2px;background:'+mCol+'"></div>';
						}
						el.innerHTML += '</div></div>';
						el.innerHTML += '<div style="position:absolute;top:0px;left:0px"><div style="position:relative">';
						for (i=0; i < H.length; i++){
							el.innerHTML += '<div id=z style="position:absolute;width:2px;height:2px;font-size:2px;background:'+hCol+'"></div>';
						}
						el.innerHTML += '</div></div>';
						el.innerHTML += '<div style="position:absolute;top:0px;left:0px"><div style="position:relative">';
						for (i=0; i < S.length; i++){
							el.innerHTML += '<div id=x style="position:absolute;width:2px;height:2px;font-size:2px;background:'+sCol+'"></div>';
						}
						el.innerHTML += '</div></div>'
				}
	}
	
	/**
	 * method to display clock
	 */
	this.display = function(){
					time = new Date ();
					secs = time.getSeconds();
					sec = -1.57 + Math.PI * secs/30;
					mins = time.getMinutes();
					min = -1.57 + Math.PI * mins/30;
					hr = time.getHours();
					hrs = -1.57 + Math.PI * hr/6 + Math.PI*parseInt(time.getMinutes())/360;
					
					if (NS6){
					Ypos=window.pageYOffset+window.innerHeight-Ybase-25;
					Xpos=window.pageXOffset+window.innerWidth-Xbase-30;
					for (i=1; i < dots+1; i++){
					 document.getElementById("n6Digits"+i).style.top=Ypos-15+Ybase*Math.sin(-1.56 +i *Split*Math.PI/180)
					 document.getElementById("n6Digits"+i).style.left=Xpos-15+Xbase*Math.cos(-1.56 +i*Split*Math.PI/180)
					 }
					for (i=0; i < S.length; i++){
					 document.getElementById("Nx"+i).style.top=Ypos+i*Ybase/4.1*Math.sin(sec);
					 document.getElementById("Nx"+i).style.left=Xpos+i*Xbase/4.1*Math.cos(sec);
					 }
					for (i=0; i < M.length; i++){
					 document.getElementById("Ny"+i).style.top=Ypos+i*Ybase/4.1*Math.sin(min);
					 document.getElementById("Ny"+i).style.left=Xpos+i*Xbase/4.1*Math.cos(min);
					 }
					for (i=0; i < H.length; i++){
					 document.getElementById("Nz"+i).style.top=Ypos+i*Ybase/4.1*Math.sin(hrs);
					 document.getElementById("Nz"+i).style.left=Xpos+i*Xbase/4.1*Math.cos(hrs);
					 }
					}
					if (NS4){
					Ypos=window.pageYOffset+window.innerHeight-Ybase-20;
					Xpos=window.pageXOffset+window.innerWidth-Xbase-30;
					for (i=0; i < dots; ++i){
					 document.layers["nsDigits"+i].top=Ypos-5+Ybase*Math.sin(-1.045 +i*Split*Math.PI/180)
					 document.layers["nsDigits"+i].left=Xpos-15+Xbase*Math.cos(-1.045 +i*Split*Math.PI/180)
					 }
					for (i=0; i < S.length; i++){
					 document.layers["nx"+i].top=Ypos+i*Ybase/4.1*Math.sin(sec);
					 document.layers["nx"+i].left=Xpos+i*Xbase/4.1*Math.cos(sec);
					 }
					for (i=0; i < M.length; i++){
					 document.layers["ny"+i].top=Ypos+i*Ybase/4.1*Math.sin(min);
					 document.layers["ny"+i].left=Xpos+i*Xbase/4.1*Math.cos(min);
					 }
					for (i=0; i < H.length; i++){
					 document.layers["nz"+i].top=Ypos+i*Ybase/4.1*Math.sin(hrs);
					 document.layers["nz"+i].left=Xpos+i*Xbase/4.1*Math.cos(hrs);
					 }
					}
					
					if (IE4){
					Ypos=document.body.scrollTop+window.document.body.clientHeight-Ybase-20;
					Xpos=document.body.scrollLeft+window.document.body.clientWidth-Xbase-20;
					for (i=0; i < dots; ++i){
					 ieDigits[i].style.pixelTop=Ypos-15+Ybase*Math.sin(-1.045 +i *Split*Math.PI/180)
					 ieDigits[i].style.pixelLeft=Xpos-15+Xbase*Math.cos(-1.045 +i *Split*Math.PI/180)
					 }
					for (i=0; i < S.length; i++){
					 x[i].style.pixelTop =Ypos+i*Ybase/2.1*Math.sin(sec);
					 x[i].style.pixelLeft=Xpos+i*Xbase/4.1*Math.cos(sec);
					 }
					for (i=0; i < M.length; i++){
					 y[i].style.pixelTop =Ypos+i*Ybase/4.1*Math.sin(min);
					 y[i].style.pixelLeft=Xpos+i*Xbase/4.1*Math.cos(min);
					 }
					for (i=0; i < H.length; i++){
					 z[i].style.pixelTop =Ypos+i*Ybase/4.1*Math.sin(hrs);
					 z[i].style.pixelLeft=Xpos+i*Xbase/4.1*Math.cos(hrs);
					 }
					}
					setTimeout('context.clock.clock.display()',100);
	}				
}	

/**
 * @class clock class
 * @author Janusz Rygał
 * @date 19.09.2008 
 */
 Clock = function(containerName_){
 	  /**DOM clock container name*/
 	  this.containerName = containerName_;
 	  /**DOM clock container*/
 	  this.container;
 	  /**clock object*/
 	  this.clock;
 	  
 	  var version = 'analog';
 	  
 	  this.init = function(){
 	  	this.container = document.getElementById(this.containerName);
 	  	if(version == 'analog'){
 	  		this.clock = new AnalogClock(this.container);	
 	  	}
 	  	else{
 	  	}
 	  }
 	  
 	  /**
 	   * method to start analog or digit clock
 	   */
 	  this.start = function(){
 	  	 this.clock.prepareClock();
 	  	 this.clock.display();
 	  }
 	  
 	  /**
 	   * method to set version of the clock
 	   */
 	  this.setVersion = function(version_){
 	  		version = version_;
 	  }
 	   
 }