var Clock = Class.create({
	initialize: function(handle) {
		this.handle = $(handle);
	},
	parsePaddedString: function(part){
		return (part.split('')[0] == '0') ? parseInt(part.split('')[1]) : parseInt(part);
	},
	formatString: function(obj){
		return obj.hour.toPaddedString(2)+':'+obj.minute.toPaddedString(2)+':'+obj.second.toPaddedString(2)+' '+obj.daytime;
	},
	calculate: function(){
		var time_parts = this.handle.innerHTML.split(':');
		var current_time = {
			'hour': this.parsePaddedString(time_parts[0]),
			'minute': this.parsePaddedString(time_parts[1]),
			'second': this.parsePaddedString(time_parts[2].split(' ')[0]),
			'daytime': time_parts[2].split(' ')[1]
		};
		
		var new_time = current_time;
		if(60 <= (new_time.second+1)){
			new_time.second = 0;
			new_time.minute++;
			if(60 <= new_time.minute){
				new_time.minute = 0;
				new_time.hour++;
				if(12 == new_time.hour){
					new_time.hour = 1;
					new_time.daytime = (new_time.daytime == 'AM') ? 'PM' : 'AM';
				}
			}
		}
		else new_time.second++;
		this.new_timestring = this.formatString(new_time);
	},
	update: function(){
		this.calculate();
		this.handle.update(this.new_timestring);
	}
});