/*
 * jCountdown
 * Creates a countdown timer from a jQuery object. Allows you to format
 * the way the time is displayed.
 *
 * $(<selector>).countdown({params});
 *
 * If you want to replace the
 *
 */
jQuery.fn.countdown2 = function(params) {
	var self = this;

	//Properties
	//----------------------------------------------
	//set the time and day to work with
	self.display = $(this);
	self.target = params.date;
	self.message = params.message?params.message:"It's Here!!";
	self.addZeros = params.addZeros?params.addZeros:false;
	self.button = params.button?params.button:null;
	self.baseUrl = params.baseUrl?params.baseUrl:"http://www.spartopia.de";

	//Events
	//----------------------------------------------
	self.onTick = params.onTick?params.onTick:function() {
		return true;
	};
	self.onFinish = params.onFinish?params.onFinish:function() {
		return true;
	};

	//Methods
	//----------------------------------------------
	//Updates the text for the countdown timer
	self._tick = function() {

		//get the time difference
		var now = (self.target - new Date());

		//make sure success hasn't been reached
		if (now.valueOf() < 0) {

			//clear the interval and run the event
			window.clearInterval(self._interval);
			if (!self.onFinish(self.display)) {
				return;
			}

			//display the finish message
			self.display.html("<span class=\"finished\">" + self.message +  "</span>");

			$("#" + self.button).attr("disabled", "disabled");

			return;

		};

		//update the values
		var seconds = now.valueOf()/1000;
		var day = (Math.floor(seconds/86400))%86400;
		var hrs = (Math.floor(seconds/3600))%24;
		var min = (Math.floor(seconds/60))%60;
		var sec = (Math.floor(seconds/1))%60;

		//run the event if needed
		if (!self.onTick(self.display,day,hrs,min,sec)) {
			return;
		};

		//check for zeros
		if (self.addZeros) {
			hrs = (hrs+"").length<2?"0"+hrs:hrs;
			min = (min+"").length<2?"0"+min:min;
			sec = (sec+"").length<2?"0"+sec:sec;
		};


		var valueSet = "";
		

		var month1 = self.target.getMonth()+1;
		var year1 = self.target.getFullYear();
		var day1 = self.target.getDate();
		if(day1<10) day1 = "0" + day1;
		if(month1<10) month1= "0" + month1;

		var hour1 = self.target.getHours();
		var minute1 = self.target.getMinutes();
		var second1 = self.target.getSeconds();

		if(hour1<10) hour1 = "0" + hour1;
		if(minute1<10) minute1 = "0" + minute1;
		if(second1<10) second1 = "0" + second1;

		var imgCalendar = self.baseUrl + "/images/calendar.png";
		var imgClock = self.baseUrl + "/images/clock.png";
		var imgCount = self.baseUrl + "/images/count.png";
		// &nbsp;

		valueSet += "<div>";
		valueSet += "<img src='" + imgCalendar + "' title='Auktion endet am' alt='Auktion endet am' />";
		valueSet += " am: " + day1 + "." + month1 + "." + year1;
		valueSet += "</div>";
		valueSet += "<div>";
		valueSet += "<img src='" + imgClock + "' title='Auktion endet am' alt='Auktion endet am' />";
		valueSet += " um: " + hour1 + ":" + minute1 + ":" + second1;
		valueSet += "</div>";
		valueSet += "<div>";
		valueSet += "<img src='" + imgCount + "' title='Auktion endet am' alt='Auktion endet am' />";
		valueSet += " in: ";
		if (day != 0 || day != "00") {
			valueSet += day + "<span> Tagen</span><br/>";
		}
		if (hrs != 0 || hrs != "00") {
			valueSet += hrs + "<span>:</span>";
		}
		valueSet += min + "<span>:</span>";
		valueSet += sec + "<span></span>";
		valueSet += "</div>";
//		valueSet += "am: " + day1 + "." + month1 + "." + year1 + "<br/>";
//		valueSet += "um: " + hour1 + ":" + minute1 + ":" + second1 +  "<br/>";

//		valueSet += "in: ";
//		if (day != 0 || day != "00") {
//			valueSet += day + "<span> Tagen</span><br/>";
//		}
//		if (hrs != 0 || hrs != "00") {
//			valueSet += hrs + "<span>:</span>";
//		}
//		valueSet += min + "<span>:</span>";
//		valueSet += sec + "<span></span>";
		//display the new time
		self.display.html(valueSet);
	};


	//Setup Routine
	//----------------------------------------------
	self._interval = window.setInterval(
		self._tick,
		params.interval?params.interval:1000
		);

	//run immediately by default
	//	if (!params.delayStart) {
	//		self.update();
	//	};

	//return itself
	return this;

};
