		if( gpulina == null )  var gpulina = {};
		if( gpulina.utils == null ) gpulina.utils ={};
		
		gpulina.utils.Countdown = function( htmlTarget, endTime, serverTime) {
			
                        var oContainer = document.getElementById( htmlTarget ); 
			var _endTime = (serverTime) ? endTime + new Date().getTime() - serverTime : endTime + (new Date().getTimezoneOffset() * 60 * 1000); // use milliseconds for constructor
			
			var _intervalId = null;
			
			var _endMessage = "THE END";
			
			this.setEndMessage = function(endMessage) {
				_endMessage = endMessage;
			}
			
			this.stop = function() {
			
				_clearInterval();
			}
			this.start = function() {
			
				_intervalId = setInterval(_updateCountdown, 1000);
			}
			
			var _clearInterval = function() {
				if(_intervalId != null) {
					clearInterval(_intervalId);
					_intervalId = null;
				}
			}
			
                        
			var _updateCountdown = function() {
			
				var now = new Date();
                               
                                
				var remaining = Math.floor (( _endTime  - now.getTime() ) /1000);
			
				if (remaining <= 0) {
					oContainer.innerHTML = _endMessage;
					_clearInterval();
				} else {
                                    
                                        var sec = remaining % 60;
                                        remaining /= 60;
                                        
                                        var min =  Math.floor(remaining % 60);
                                        remaining /= 60;
                                        
                                        var hours = Math.floor(remaining % 24);
                                        remaining /= 24;
                                        
                                        var days =  Math.floor(remaining);
      
                                        theS = (days == 1) ? ("") : ("s");
					oContainer.innerHTML = days + " Day" + theS + "   " + hours + " Hours   " + min + " Minutes  &  " + sec + " Seconds"; 
				}
			}
			
		}