/*
 * Uitbreiding op Mootools, shake functie
 */
 Element.implement({
     shake:function(radius,duration){
         duration = duration || 500;
         duration = (duration/50).toInt() -1;
         var coords = this.getPosition(this.getOffsetParent());
         var morph = this.retrieve('morph');
         if (morph){
             morph.cancel();
             var oldOptions = morph.options;
         }
         var morph = this.get('morph',{
             duration:50,
             link:'chain'
         });
         for(var i=0;i<duration;i++){
			 morph.start({
				 top:coords.y+$random(-radius,radius),
				 left:coords.x+$random(-radius,radius)
			 });
         }
         morph.start({
             top:coords.y,
             left:coords.x
         }).chain(function(){
             if(oldOptions){
                 this.set('morph',oldOptions);
             }
         }.bind(this));
         return this;
     }
 });
/*
 * Drag en drop functie actief?
 */
var drop = false; //darg en drop !
/*
 * Mootools addevents
 */
window.addEvent('domready', function() {
	/*
	 * Ster voor inschrijvingen
	 */
	var ster = $('ster');
	var top = 100;
	var left = 380;
	
	// drag n drop van de ster
	var dragster = new Drag.Move(ster, {
		onStart: function(el) {
			// bij starten drag en drop drop op true zetten. De ster shaked nu niet meer.
			drop = true;
		},
		onDrop: function(el) {
			// bij droppen teruggaan naar de oude positie
			var fx = new Fx.Morph(el, { duration: 500, wait: true, transition: Fx.Transitions.Elastic.easeOut });
			fx.start( { 'top': top, 'left': left, 
					 	onComplete: function(){
					 		// klaar met herstellen van positie, ster mag weer shaken
							drop = false;	
						}
					});
		}
	});
	
	//invlieg effect van de ster
	var fx = new Fx.Morph(ster, { duration: 1000, wait: true, transition: Fx.Transitions.Bounce.easeOut });
	if(Math.round(Math.random()) == 1) // random van boven of van links
	{
		ster.style.top = top + 'px'; // van links, top instellen
		// van -200px => 780px faden, daarna het shaken aanzetten
		fx.start({ 'left': -700 }).chain(function() {
			this.start.delay(300, this, { 'left': left });
		}).chain(function() {
			
		});
	}
	else
	{
		ster.style.left = left+'px'; // vanaf boven, links instellen
		// van -180px => 60px faden, daarna shaken aanzetten.
		fx.start({ 'top': -680 }).chain(function() {
			this.start.delay(100, this, { 'top': top });
		}).chain(function() {
			
		});
	}
});

/*
 * Eerste keer de ster shaken, de timeout voor de volgenden aanzetten
 */
function shakeStarFirst()
{
	setTimeout('shakeStar()',3000);
}	
/*
 * Ster shaken, daarna de timeout op een random getal instellen
 */
function shakeStar()
{
	if(!drop)
	{
		$('ster').shake(5,700);
	}
	var randomnumber = Math.floor((10-4)*Math.random()) + 2;

	setTimeout('shakeStar()',randomnumber*1000);
}

