function clocker(variableName, 
hours, minutes, seconds, 
separator, alternateSeparator, twelveFormat, addPmAm, 
currentTime, toGreenwich,
yourPrintFunction
){
this.variableName=variableName;/*1st argument: String with name of initialized variable name*/
this.hours=(parseFloat(hours))?parseFloat(hours):0;
this.minutes=(parseFloat(minutes))?parseFloat(minutes):0;
this.seconds=this.seconds2=(parseFloat(seconds))?parseFloat(seconds):0;
this.currentTime=currentTime;
	this.startDate=new Date();
	var timezone=-this.startDate.getTimezoneOffset()/60;
	this.toGreenwich=(! isNaN(parseFloat(toGreenwich)) )?parseFloat(toGreenwich):timezone;
	this.toGreenwich=(this.toGreenwich<-11 || this.toGreenwich>12)?timezone:this.toGreenwich;
	this.toGreenwich=(timezone<=this.toGreenwich)? this.toGreenwich-timezone: -Math.abs(this.toGreenwich-timezone);/*to relative GMT zone conversion*/
this.toGreenwich=this.toGreenwich*60*60*1000;
		this.startDate.setHours(this.hours);
		this.startDate.setMinutes(this.minutes);
		this.startDate.setSeconds(this.seconds+(this.toGreenwich/1000));
this.separator=(separator)?separator:":"; this.alternateSeparator=(alternateSeparator)?alternateSeparator:":";
this.twelveFormat=(twelveFormat)?1:0; this.addPmAm=(addPmAm)?1:0;
this.yourPrintFunction=yourPrintFunction;
	this.result=""; this.odds=0; this.timer=0;
this.execute=function(){
		var date;
			if(this.currentTime){
			date=new Date();
			date=new Date(date.getTime()+this.toGreenwich);
			}
			else{
			date=this.startDate;
			date.setSeconds(this.seconds2);
			this.seconds2=date.getSeconds()+1;
			};
	this.hours=date.getHours();
		var pmam=(!this.addPmAm)?"":(this.hours>11)?"pm":"am";
	this.hours=(this.twelveFormat && this.hours>12)?this.hours-12:this.hours;
	this.minutes=date.getMinutes();
	this.seconds=date.getSeconds();
	this.hours=(this.hours<10)?"0"+this.hours:this.hours;
	this.minutes=(this.minutes<10)?"0"+this.minutes:this.minutes;
	this.seconds=(this.seconds<10)?"0"+this.seconds:this.seconds;
		var separate=(!this.odds)?this.separator:this.alternateSeparator;
		this.odds=(!(this.odds%2))?1:0;
	this.result=this.hours + separate + this.minutes + separate + this.seconds + pmam;
		if(this.yourPrintFunction){
			if(typeof(this.yourPrintFunction)=="function"){ this.yourPrintFunction(this.result); }
			else{this.yourPrintFunction.value=this.result;};
		};
	return this.result;
};
this.run=function(){
	this.stop(); eval(this.variableName+ ".execute()");/*trick, so it prints from the VERY FIRST second*/
	this.timer=setInterval(this.variableName+ ".execute()", 1000);
};
this.stop=function(){ clearInterval(this.timer); };
/* keep this comment to reuse freely:
http://www.unitedscripters.com */}