/**
 * @author Cipi
 * Widget management functions
 */

var spwidgets = {
	
	/*
	 * ----------------------------------------------------------------------------------------------------
	 * @author Cipi
	 * cdTimer object
	 * 
	 * endingTimeStamp : variabila numerica de tip unixtimestamp
	 * iTimeWidgetID : contine id-ul timer-ului javascript pornit
	 * createTimerWidget : functie verifica daca trebuie sa porneasca timer-ul si il porneste.
	 * updateTimerWidget : functia ce va fi apelata la un anumit interval
	 * destroyTimerWidget : functia care distruge timer-ul javascript. poate fi apelata oricand e nevoie si
	 * 						va fi apelata automat cand endingTimeStamp = currentTimeStamp
	 * 
	 * Widget, face parte din namespace-ul spwidgets
	 * Contine variabile si metode care se ocupa de countdown timer-ul ce apare in sectiunea din dreapta
	 * a paginilor
	 * ----------------------------------------------------------------------------------------------------
	 */
	cdTimer : {
		/*
		 * ----------------------------------------------------------------------------------------------------
		 * Variabile private pt obiectul cdTimer
		 * endingTimeStamp : Trebuie introdusa data si ora pt timeout in formatul mm/dd/yyyy hh:mm:ss
		 * iTimeWidgetID : ID-ul numeric ce ii revine timerului
		 * ----------------------------------------------------------------------------------------------------
		 */
		endingTimeStamp : Date.parse("06/12/2009 00:00:00")/1000,
		serverTimeStamp : $('#widget-cp-user-time-value').attr('value'),
		clientServerTimeDiff : Math.round(new Date().getTime()/1000) - $('#widget-cp-user-time-value').attr('value'),
		iTimeWidgetID : 0,
		
		/*
		 * ----------------------------------------------------------------------------------------------------
		 * Functia verifica daca exista div-ul ce contine timer-ul. Daca este existent porneste timerul
		 * ----------------------------------------------------------------------------------------------------
		 */
		createTimerWidget : function(){
			if(arguments[0] && arguments[0]!='') this.endingTimeStamp = Date.parse(arguments[0])/1000;
			var iTimeWidgetID = setInterval('spwidgets.cdTimer.updateTimerWidget()', 1000);
			$("#widget-cp-user-time div.dday").css({'opacity':0})
		},
		
		/*
		 * ----------------------------------------------------------------------------------------------------
		 * Functia ce trebuie apelata la un anumit interval pt a actualiza valorile timer-ului
		 * ----------------------------------------------------------------------------------------------------
		 */
		updateTimerWidget : function(){
			var currentTimeStamp = Math.round(new Date().getTime()/1000);
			//apply the server time diff
			currentTimeStamp -= this.clientServerTimeDiff;
			if (this.endingTimeStamp > currentTimeStamp) {
				//secondsRemaining seconds to go until endingTimeStamp
				var secondsRemaining = this.endingTimeStamp - currentTimeStamp;
				var daysRemaining = Math.floor(secondsRemaining/86400);
					secondsRemaining -= daysRemaining * 86400;
				var hoursRemaining = Math.floor(secondsRemaining/3600);
					secondsRemaining -= hoursRemaining * 3600;
				var minutesRemaining = Math.floor(secondsRemaining/60);
					secondsRemaining -= minutesRemaining * 60;

				if(daysRemaining >= 10)	$(".t-zile").html(daysRemaining+"<br/><em>zile</em>");
				if(daysRemaining > 1 && daysRemaining < 10)	$(".t-zile").html("0" + daysRemaining+"<br/><em>zile</em>");
				if(daysRemaining == 1)	$(".t-zile").html("0" + daysRemaining+"<br/><em>zi</em>");
				if(daysRemaining == 0)	$(".t-zile").html("00<br/><em>zile</em>");
				
				if(hoursRemaining >= 10) $(".t-ore").html(hoursRemaining+"<br/><em>ore</em>");
				if((hoursRemaining >1 && hoursRemaining < 10) || hoursRemaining == 0) $(".t-ore").html("0" + hoursRemaining+"<br/><em>ore</em>");
				if(hoursRemaining == 1) $(".t-ore").html("0" + hoursRemaining+"<br/><em>ora</em>");
				if(hoursRemaining == 0 && daysRemaining == 0) $(".t-ore").html("00<br/><em>ore</em>");
				
				if(minutesRemaining >= 10) $(".t-min").html(minutesRemaining+"<br/><em>min</em>");
				if(minutesRemaining >= 0 && minutesRemaining < 10) $(".t-min").html("0" + minutesRemaining+"<br/><em>min</em>");
				if(minutesRemaining == 0 && hoursRemaining == 0 && daysRemaining == 0) $(".t-min").html("00<br/><em>min</em>");

				if(secondsRemaining >= 10) $(".t-sec").html(secondsRemaining+"<br/><em>sec</em>");
				if(secondsRemaining >= 0 && secondsRemaining < 10) $(".t-sec").html("0" + secondsRemaining+"<br/><em>sec</em>");
				if(secondsRemaining == 0 && minutesRemaining == 0 && hoursRemaining == 0 && daysRemaining == 0) $(".t-sec").html("00<br/><em>sec</em>");

				if ($("#widget-cp-user-time div.dday").css('opacity') < 1) {
					$("#widget-cp-user-time div.dday").stop().animate({
						'opacity': 1
					}, function(){
						if($.browser.msie) $(this).css('opacity','');
					});
				}
				
			}else{
				//done waiting
				this.destroyTimerWidget();
			}
		},
		
		/*
		 * ----------------------------------------------------------------------------------------------------
		 * Functia ce trebuie apelata in cazul in care se doreste oprirea timer-ului
		 * ----------------------------------------------------------------------------------------------------
		 */
		destroyTimerWidget : function(){
			clearInterval(this.iTimeWidgetID);
		}
	}
}

