Your IP : 216.73.216.240


Current Path : /home/juvelize/www/components/com_sexypolling/assets/js/
Upload File :
Current File : /home/juvelize/www/components/com_sexypolling/assets/js/countdown_unpacked.js

(function($) {
	$.fn.extend({
		jCountdown:function(){
			var Flip = function(target){
				//---------------------------------------------------------------------------------------
				//vars
				//---------------------------------------------------------------------------------------
				this._target = target;
				this._width = 50;
				this._height = 64;
				this._frame = 1;
				this._totalFrames = 15;
				this._fps = 24;
				this._intervalId = -1;
				this._value = 0;
				
				//---------------------------------------------------------------------------------------
				//methods
				//---------------------------------------------------------------------------------------
				this.stop = function(){
					clearInterval(this._intervalId);
				};
				
				this.update = function(flag){
					if(flag){
						this.frame(1);
						
						this.stop();
						
						var target = this;
						this._intervalId = setInterval(function(){
							if(target.frame()==target.totalFrames()){
								clearInterval(target._intervalId);
								target.onFinish();
							}else{
								target.frame(target.frame()+1);
							};
						},Math.ceil(1000/this.fps()));
					}else{
						this.frame(this.totalFrames());
					}
				};
				
				this.value = function(v,flag){
					if(v==undefined){
						return this._value;
					}else{
						this._value = v;
						this.update(flag);
					}
				};
				
				this.onFinish = function(){
				};

				this.destroy = function(){
					this.stop();
					this._target = null;
				};

				//---------------------------------------------------------------------------------------
				//properties
				//---------------------------------------------------------------------------------------					
				this.width = function(v){
					if(v==undefined){
						return this._width;
					}else{
						this._width = v;
					}
				};
						
				this.height  = function(v){
					if(v==undefined){
						return this._height;
					}else{
						this._height  = v;
					}
				};
				
				this.frame = function(v){
					if(v==undefined){
						return this._frame;
					}else{
						this._frame = v;
						var left = -(9-this.value())*this.width();
						var top = -(this.frame()-1)*this.height();
						this._target.children(".sexy_text").css("background-position", left+"px"+" "+top+"px");
					}
				};

				this.totalFrames = function(v){
					if(v==undefined){
						return this._totalFrames;
					}else{
						this._totalFrames = v;
					}
				};

				this.fps = function(v){
					if(v==undefined){
						return this._fps;
					}else{
						this._fps = v;
					}
				};

				//---------------------------------------------------------------------------------------
				//init
				//---------------------------------------------------------------------------------------
				this.update(false);
			};

			var Slide = function(target){
				//---------------------------------------------------------------------------------------
				//vars
				//---------------------------------------------------------------------------------------
				this._target = target;
				this._width = 50;
				this._height = 64;
				this._frame = 1;
				this._totalFrames = 15;
				this._fps = 24;
				this._intervalId = -1;
				this._value = 0;
				
				//---------------------------------------------------------------------------------------
				//methods
				//---------------------------------------------------------------------------------------
				this.stop = function(){
					clearInterval(this._intervalId);
				};
				
				this.update = function(flag){
					if(flag){
						this.frame(1);
						
						this.stop();
						
						var target = this;
						this._intervalId = setInterval(function(){
							if(target.frame()==target.totalFrames()){
								clearInterval(target._intervalId);
								target.onFinish();
							}else{
								target.frame(target.frame()+1);
							};
						},Math.ceil(1000/this.fps()));
					}else{
						this.frame(this.totalFrames());
					}
				};
				
				this.value = function(v,flag){
					if(v==undefined){
						return this._value;
					}else{
						this._value = v;
						this.update(flag);
					};
				};
				
				this.onFinish = function(){
				};

				this.destroy = function(){
					this.stop();
					this._target = null;
				};

				//---------------------------------------------------------------------------------------
				//properties
				//---------------------------------------------------------------------------------------					
				this.width = function(v){
					if(v==undefined){
						return this._width;
					}else{
						this._width = v;
					};
				};
						
				this.height  = function(v){
					if(v==undefined){
						return this._height;
					}else{
						this._height  = v;
					};
				};
				
				this.frame = function(v){
					if(v==undefined){
						return this._frame;
					}else{
						this._frame = v;
						var left = 0;
						var top = -((1+this.value())*this.height()) + (Math.sin((this.frame()-1)/(this.totalFrames()-1)*Math.PI/2)*this.height());
						this._target.children(".sexy_text").css("background-position", left+"px"+" "+top+"px");
					};
				};

				this.totalFrames = function(v){
					if(v==undefined){
						return this._totalFrames;
					}else{
						this._totalFrames = v;
					};
				};

				this.fps = function(v){
					if(v==undefined){
						return this._fps;
					}else{
						this._fps = v;
					};
				};

				//---------------------------------------------------------------------------------------
				//init
				//---------------------------------------------------------------------------------------
				this.update(false);
			};
			
			var Metal = function(target){
				//---------------------------------------------------------------------------------------
				//vars
				//---------------------------------------------------------------------------------------
				this._target = target;
				this._width = 60;
				this._height = 60;
				this._frame = 1;
				this._totalFrames = 15;
				this._fps = 24;
				this._intervalId = -1;
				this._value = 0;
				
				//---------------------------------------------------------------------------------------
				//methods
				//---------------------------------------------------------------------------------------
				this.stop = function(){
					clearInterval(this._intervalId);
				};
				
				this.update = function(flag){
					if(flag){
						this.frame(1);
						
						this.stop();
						
						var target = this;
						this._intervalId = setInterval(function(){
							if(target.frame()==target.totalFrames()){
								clearInterval(target._intervalId);
								target.onFinish();
							}else{
								target.frame(target.frame()+1);
							};
						},Math.ceil(1000/this.fps()));
					}else{
						this.frame(this.totalFrames());
					};
				};
				
				this.value = function(v,flag){
					if(v==undefined){
						return this._value;
					}else{
						this._value = v;
						this.update(flag);
					};
				};
				
				this.onFinish = function(){
				};

				this.destroy = function(){
					this.stop();
					this._target = null;
				};

				//---------------------------------------------------------------------------------------
				//properties
				//---------------------------------------------------------------------------------------					
				this.width = function(v){
					if(v==undefined){
						return this._width;
					}else{
						this._width = v;
					};
				};
						
				this.height  = function(v){
					if(v==undefined){
						return this._height;
					}else{
						this._height  = v;
					};
				};
				
				this.frame = function(v){
					if(v==undefined){
						return this._frame;
					}else{
						this._frame = v;
						var lastValue = this.value()+1;
						if(lastValue>9){
							lastValue = 0;
						};
						var progress = this.frame()/this.totalFrames();
						
						var opacity;
						if(progress>=.4 && progress<=.6){
							opacity = 0;
						}else if(progress<=.4){
							opacity = 1-progress/.4;
						}else if(progress>=.6){
							opacity = (progress-.6)/.4;
						};
						
						var left = 0;
						var top = -(progress>.5 ? this.value() : lastValue)*this.height();
						top -= (1-opacity)*3;
											
						this._target.children(".sexy_text").css("background-position", left+"px"+" "+top+"px").css("opacity",opacity);
						this._target.children(".cover").css("opacity",opacity);
					}
				};

				this.totalFrames = function(v){
					if(v==undefined){
						return this._totalFrames;
					}else{
						this._totalFrames = v;
					};
				};

				this.fps = function(v){
					if(v==undefined){
						return this._fps;
					}else{
						this._fps = v;
					};
				};

				//---------------------------------------------------------------------------------------
				//init
				//---------------------------------------------------------------------------------------
				this.update(false);
			};

			var Crystal = function(target){
				//---------------------------------------------------------------------------------------
				//vars
				//---------------------------------------------------------------------------------------
				this._target = target;
				this._width = 60;
				this._height = 60;
				this._widthSmall= 42;
				this._heightSmall = 42;
				this._frame = 1;
				this._totalFrames = 15;
				this._fps = 24;
				this._intervalId = -1;
				this._value = 0;
				
				//---------------------------------------------------------------------------------------
				//methods
				//---------------------------------------------------------------------------------------
				this.stop = function(){
					clearInterval(this._intervalId);
				};
				
				this.update = function(flag){
					if(flag){
						this.frame(1);
						
						this.stop();
						
						var target = this;
						this._intervalId = setInterval(function(){
							if(target.frame()==target.totalFrames()){
								clearInterval(target._intervalId);
								target.onFinish();
							}else{
								target.frame(target.frame()+1);
							};
						},Math.ceil(1000/this.fps()));
					}else{
						this.frame(this.totalFrames());
					};
				};
				
				this.value = function(v,flag){
					if(v==undefined){
						return this._value;
					}else{
						this._value = v;
						this.update(flag);
					};
				};
				
				this.onFinish = function(){
				};

				this.destroy = function(){
					this.stop();
					this._target = null;
				};

				//---------------------------------------------------------------------------------------
				//properties
				//---------------------------------------------------------------------------------------					
				this.width = function(v){
					if(v==undefined){
						return this._width;
					}else{
						this._width = v;
					};
				};
						
				this.height  = function(v){
					if(v==undefined){
						return this._height;
					}else{
						this._height  = v;
					};
				};
				
				this.frame = function(v){
					if(v==undefined){
						return this._frame;
					}else{
						this._frame = v;
						var left = 0;
						var top = -this.value()*this.height();
						var opacity = Math.sin((this.frame()-1)/(this.totalFrames()-1)*Math.PI/2);
						if(opacity>0 && opacity<0.001){
							opacity = 0;
						}else if(opacity<0 && opacity>-0.001){
							opacity = 0;
						};
						
						this._target.children(".sexy_text").css("background-position", left+"px"+" "+top+"px").css("opacity",opacity);
					};
				};

				this.totalFrames = function(v){
					if(v==undefined){
						return this._totalFrames;
					}else{
						this._totalFrames = v;
					};
				};

				this.fps = function(v){
					if(v==undefined){
						return this._fps;
					}else{
						this._fps = v;
					};
				};

				//---------------------------------------------------------------------------------------
				//init
				//---------------------------------------------------------------------------------------
				this.update(false);
			};
			
			var Countdown = function(){
				//---------------------------------------------------------------------------------------
				//vars
				//---------------------------------------------------------------------------------------
				this._days = [];
				this._hours = [];
				this._minutes = [];
				this._seconds = [];
				this._tickId = -1;
				this._tickDelay = 100;
				this._timeText = "";
				this._timeZone = 0;
				this._time = null;

				//---------------------------------------------------------------------------------------
				//methods
				//---------------------------------------------------------------------------------------
				//check time
				this.checkTime = function(update){
					var currentTime = new Date();

					if(this._time.getTime()<(currentTime.getTime())){
						for(var i=0; i<this._days.length; i++){
							this._days[i].value(0);
						};					
						for(var i=0; i<this._hours.length; i++){
							this._hours[i].value(0);
						};					
						for(var i=0; i<this._minutes.length; i++){
							this._minutes[i].value(0);
						};					
						for(var i=0; i<this._seconds.length; i++){
							this._seconds[i].value(0);
						};

						this.stop();
						this.onFinish();

						return true;
					}else{
						var currentTimeText = this.timeFormat(this._time.getTime()-(currentTime.getTime()), this._days.length, this._hours.length, this._minutes.length, this._seconds.length);
						var currentTimeChars = currentTimeText.split("");

						if (!isNaN(this._time)){
							for(var i=0; i<this._days.length; i++){
								var v = parseInt(currentTimeChars.shift(),10);
								
								if(v != this._days[i].value()){
									this._days[i].value(v, update);
								};
							};					
							for(var i=0; i<this._hours.length; i++){
								var v = parseInt(currentTimeChars.shift(),10);
								
								if(v != this._hours[i].value()){
									this._hours[i].value(v, update);
								};
							};						
							for(var i=0; i<this._minutes.length; i++){
								var v = parseInt(currentTimeChars.shift(),10);
								
								if(v != this._minutes[i].value()){
									this._minutes[i].value(v, update);
								};
							};						
							for(var i=0; i<this._seconds.length; i++){
								var v = parseInt(currentTimeChars.shift(),10);
								
								if(v != this._seconds[i].value()){
									this._seconds[i].value(v, update);
								};
							};						
						};
						
						return false;
					};
				};

				//text format
				this.textFormat = function(text, length, fillChar){
					text = text.toString();
					while (text.length<length){
						text = fillChar+text;
					};
					if(text.length>length){
						text = text.substr(text.length-length,length);
					};
					return text;
				};

				//time format
				this.timeFormat = function(msec, dayTextNumber, hourTextNumber, minuteTextNumber, secondTextNumber){
					var time = Math.floor(msec/1000);
					var s = time%60;
					var i = Math.floor(time%(60*60)/60);
					var h = Math.floor(time%(24*60*60)/(60*60));
					var d = Math.floor(time/(24*60*60));
					return this.textFormat(d, dayTextNumber, "0")+this.textFormat(h, hourTextNumber, "0")+this.textFormat(i, minuteTextNumber, "0")+this.textFormat(s, secondTextNumber, "0");
				};
				
				//start
				this.start = function(){
					this.stop();
					
					for(var i=0; i<this._days.length; i++){
						this._days[i].update();
					};				
					for(var i=0; i<this._hours.length; i++){
						this._hours[i].update();
					};				
					for(var i=0; i<this._minutes.length; i++){
						this._minutes[i].update();
					};				
					for(var i=0; i<this._seconds.length; i++){
						this._seconds[i].update();
					};

					var finish = this.checkTime(false);
					
					if(!finish){
						var target = this;
						this._tickId = setInterval(function(){
							target.checkTime(true);
						}, this._tickDelay);
					};
				};
				
				//stop
				this.stop = function(){
					for(var i=0; i<this._days.length; i++){
						this._days[i].stop();
					};				
					for(var i=0; i<this._hours.length; i++){
						this._hours[i].stop();
					};				
					for(var i=0; i<this._minutes.length; i++){
						this._minutes[i].stop();
					};				
					for(var i=0; i<this._seconds.length; i++){
						this._seconds[i].stop();
					};

					clearInterval(this._tickId);
				};
				
				this.onFinish = function(){
				};

				this.destroy = function(){
					for(var i=0; i<this._days.length; i++){
						this._days[i].destroy();
					};				
					for(var i=0; i<this._hours.length; i++){
						this._hours[i].destroy();
					};				
					for(var i=0; i<this._minutes.length; i++){
						this._minutes[i].destroy();
					};				
					for(var i=0; i<this._seconds.length; i++){
						this._seconds[i].destroy();
					};

					this._days = [];
					this._hours = [];
					this._minutes = [];
					this._seconds = [];

					this.stop();
				};

				//---------------------------------------------------------------------------------------
				//properties
				//---------------------------------------------------------------------------------------	
				this.items = function(days, hours, minutes, seconds){
					this._days = days;
					this._hours = hours;
					this._minutes = minutes;
					this._seconds = seconds;
				};
				
				this.timeText = function(v){
					if(v==undefined){
						return this._timeText;
					}else{
						this._timeText = v;
						this.time(this.timeText(), this.timeZone());
					};
				};
				
				this.timeZone = function(v){
					if(v==undefined){
						return this._timeZone;
					}else{
						this._timeZone = v;
						this.time(this.timeText(), this.timeZone());
					};
				};
			
				//time
				this.time = function(tt,tz){
					this._timeText = tt;
					this._timeZone = tz;
					
					var time = this._timeText.split("/").join(" ").split(":").join(" ").split(" ");
					var y = parseInt(time[0],10);
					var m = parseInt(time[1],10)-1;
					var d = parseInt(time[2],10);
					var h = parseInt(time[3],10);
					var i = parseInt(time[4],10)-this._timeZone*60;
					var s = parseInt(time[5],10);
					this._time = new Date(y, m, d, h, i, s, 0);

					this.start();
				};
				//---------------------------------------------------------------------------------------
				//init
				//---------------------------------------------------------------------------------------
			};

			//---------------------------------------------------------------------------------------
			//init
			//---------------------------------------------------------------------------------------
			var getCountdown = function(){
				return target.data("countdown");
			};
			var initCountdown = function(){
				if(getCountdown()==undefined){
					var countdown = new Countdown();
					target.data("countdown", countdown);
					
					return getCountdown();
				};
			};
			var destroyCountdown = function(){
				if(getCountdown()!=undefined){
					getCountdown().destroy();

					target.removeData("countdown");
				};
			};
			var init = function(setting){
				countdown = initCountdown();
					
				var browserVersion = parseInt($.browser.version,10);
				
				var timeText = typeof(setting.timeText)=="string" ? setting.timeText : "";
				var timeZone = parseFloat(setting.timeZone);
				if(isNaN(timeZone)){
					timeZone = 0;
				};			
				var style = typeof(setting.style)=="string" ? setting.style.toLowerCase() : "";
				switch(style){
					case "flip":
						break;
					case "slide":
						break;
					case "crystal":
						break;
					case "metal":
						break;
					default:
						style = "flip";
				};			
				var color = typeof(setting.color)=="string" ? setting.color.toLowerCase() : "";
				switch(color){
					case "black":
						break;
					case "white":
						break;
					default:
						color = "black";
				};			
				var width = parseInt(setting.width,10);
				if(width>=10){
				}else{
					width = 0;
				};
				var textGroupSpace = parseInt(setting.textGroupSpace,10);
				if(textGroupSpace>=0){
				}else{
					textGroupSpace = 15;
				};			
				var textSpace = parseInt(setting.textSpace,10);
				if(textSpace>0){
				}else{
					textSpace = 0;
				};
				var reflection = setting.reflection!=false;
				var reflectionOpacity = parseFloat(setting.reflectionOpacity);
				if(reflectionOpacity>0){
					if(reflectionOpacity>100){
						reflectionOpacity = 100;
					}
				}else{
					reflectionOpacity = 10;
				};			
				var reflectionBlur = parseInt(setting.reflectionBlur,10);
				if(reflectionBlur>0){
					if(reflectionBlur>10){
						reflectionBlur = 10;
					}
				}else{
					reflectionBlur = 0;
				};			
				var dayTextNumber = parseInt(setting.dayTextNumber,10)>2 ? parseInt(setting.dayTextNumber,10) : 2;
				var hourTextNumber = 2;
				var minuteTextNumber = 2;
				var secondTextNumber = 2;
				var displayDay = setting.displayDay!=false;
				var displayHour = setting.displayHour!=false;
				var displayMinute = setting.displayMinute!=false;
				var displaySecond = setting.displaySecond!=false;	
				var displayLabel = setting.displayLabel!=false;	
				var onFinish = typeof(setting.onFinish)=="function" ? setting.onFinish : function(){};

				var html = "";
				var itemClass = "";
				var lastClass = "";

				html += '<div class="jCountdown">';
					if(displayDay){
					var lastItem = (!displayHour && !displayMinute && !displaySecond) ? " lastItem" : "";
					html += '<div class="group day'+lastItem+'">';
						for(var i=0; i<dayTextNumber; i++){
						itemClass = " item"+(i+1);
						lastClass = i==(dayTextNumber-1) ? " lastItem" : "";
						html += '<div class="container'+itemClass+lastClass+'">';
							if(style=="slide" || style=="crystal" || style=="metal"){
								html += '<div class="cover"></div>';
							};
							html += '<div class="sexy_text"></div>';
						html += '</div>';
						};
						if(displayLabel){
						html += '<div class="sexy_label"></div>';
						};
					html += '</div>';
					};
					
					if(displayHour){
					var lastItem = (!displayMinute && !displaySecond) ? " lastItem" : "";
					html += '<div class="group hour'+lastItem+'">';
						for(var i=0; i<hourTextNumber; i++){
						itemClass = " item"+(i+1);
						lastClass = i==(hourTextNumber-1) ? " lastItem" : "";
						html += '<div class="container'+itemClass+lastClass+'">';
							if(style=="slide" || style=="crystal" || style=="metal"){
								html += '<div class="cover"></div>';
							};
							html += '<div class="sexy_text"></div>';
						html += '</div>';
						};
						if(displayLabel){
						html += '<div class="sexy_label"></div>';
						};
					html += '</div>';
					};
					
					if(displayMinute){
					var lastItem = (!displaySecond) ? " lastItem" : "";
					html += '<div class="group minute'+lastItem+'">';
					  for(var i=0; i<minuteTextNumber; i++){
						itemClass = " item"+(i+1);
						lastClass = i==(minuteTextNumber-1) ? " lastItem" : "";
						html += '<div class="container'+itemClass+lastClass+'">';
							if(style=="slide" || style=="crystal" || style=="metal"){
								html += '<div class="cover"></div>';
							};
							html += '<div class="sexy_text"></div>';
						html += '</div>';
						};
						if(displayLabel){
						html += '<div class="sexy_label"></div>';
						};
					html += '</div>';
					};
					
					if(displaySecond){
					html += '<div class="group second lastItem">';
						for(var i=0; i<secondTextNumber; i++){
						itemClass = " item"+(i+1);
						lastClass = i==(secondTextNumber-1) ? " lastItem" : "";
						html += '<div class="container'+itemClass+lastClass+'">';
							if(style=="slide" || style=="crystal" || style=="metal"){
								html += '<div class="cover"></div>';
							};
							html += '<div class="sexy_text"></div>';
						html += '</div>';
						};
						if(displayLabel){
						html += '<div class="sexy_label"></div>';
						};
					html += '</div>';
					};
				html += '</div>';
				
				target.html(html);

				var countdownObject = target.children(".jCountdown");

				countdownObject.addClass(style);
				countdownObject.addClass(color);
				
				countdownObject.children(".group").css("margin-right",textGroupSpace+"px");
				countdownObject.children(".group.lastItem").css("margin-right","0px");
				countdownObject.children(".group").children(".container").css("margin-right",textSpace+"px");
				countdownObject.children(".group").children(".container.lastItem").css("margin-right","0px");
				
				if(reflection){
					if(($.browser.msie && browserVersion<10)){
					}else{
						reflectionObject = countdownObject.clone();
		
						reflectionObject.addClass("reflection");
						if(displayLabel){
							reflectionObject.addClass("displayLabel");
						};
						
						if(reflectionOpacity!=100){
							reflectionObject.css("opacity",reflectionOpacity/100);
						};
						if(reflectionBlur!=0){
							reflectionObject.addClass("blur"+reflectionBlur);
						};
						countdownObject = countdownObject.add(reflectionObject);
					}
				};

				var countdownContainer = $('<div class="jCountdownContainer"></div>');
				countdownContainer.append(countdownObject);

				target.append(countdownContainer);
				
				if(width!=0){
					var countdownScaleObject = $('<div class="jCountdownScale"></div>');
					countdownScaleObject.append(countdownObject);
					
					countdownContainer.append(countdownScaleObject);
					
					var countdownScaleObjectWidth = countdownScaleObject.width();
					var countdownScaleObjectHeight = countdownScaleObject.height();
					
					var scale = width/countdownScaleObjectWidth;
					var left = -(1-scale)*countdownScaleObjectWidth/2;
					var top = -(1-scale)*countdownScaleObjectHeight/2;
					var scaleCss = "scale("+scale+")";
					
					countdownContainer.width(countdownScaleObjectWidth*scale);
					countdownContainer.height(countdownScaleObjectHeight*scale);
					
					if($.browser.msie && browserVersion<=8){
						countdownScaleObject.css("zoom", scale);
					}else{
						countdownScaleObject.css("transform", scaleCss).
						css("-moz-transform", scaleCss).
						css("-webkit-transform", scaleCss).
						css("-o-transform", scaleCss).
						css("-ms-transform", scaleCss);
						
						countdownScaleObject.css("left",left).css("top",top);
					};
				};

				var selector = "";
				var index = 0;
				var days = [];
				var hours = [];
				var minutes = [];
				var seconds = [];
				var itemClass = function(){};
				
				switch(style){
					case "flip":
						itemClass = Flip;
						break;
					case "slide":
						itemClass = Slide;
						break;
					case "crystal":
						itemClass = Crystal;
						break;
					case "metal":
						itemClass = Metal;
						break;
					default:
				};

				index = 1;
				selector = ".group.day>.container.item";
				while(countdownObject.find(selector+index).length){
					days.push(new itemClass(countdownObject.find(selector+index)));
					index++;
				};
				
				index = 1;
				selector = ".group.hour>.container.item";
				while(countdownObject.find(selector+index).length){
					hours.push(new itemClass(countdownObject.find(selector+index)));
					index++;
				};
				
				index = 1;
				selector = ".group.minute>.container.item";
				while(countdownObject.find(selector+index).length){
					minutes.push(new itemClass(countdownObject.find(selector+index)));
					index++;
				};
				
				index = 1;
				selector = ".group.second>.container.item";
				while(countdownObject.find(selector+index).length){
					seconds.push(new itemClass(countdownObject.find(selector+index)));
					index++;
				};

				countdown.items(days, hours, minutes, seconds);

				countdown.onFinish = onFinish;
				countdown.time(timeText, timeZone);
			};
			var destroy = function(){
				destroyCountdown();
				target.children().remove();
			};
			var start = function(){
				countdown.start();
			};
			var stop = function(){
				countdown.stop();
			};

			if(arguments.length>0){
				var target = this;
				var countdown = getCountdown();

				if(arguments.length==1 && typeof(arguments[0])=="object"){
					//destroy the old countdown
					if(countdown!=undefined){
						destroy();
					};

					//init new countdown
					init(arguments[0]);
				}else if(typeof(arguments[0])=="string"){
					//set setting & call method
					if(countdown!=undefined){
						switch(arguments[0]){
							case "stop":
								stop();
								break;
							case "start":
								start();
								break;
							case "destroy":
								destroy();
								break;
							default:
						};
					};
				};
			};

			return this;
		}
	});

})(sexyJ);