/*
 * jQuery radshawize Plugin 0.1 hastily hacked from the raptorize plugin by ZURB
 */

function RandRange( intFrom, intTo, intSeed ){
	// Make sure that we have integers.
	intFrom = Math.floor( intFrom );
	intTo = Math.floor( intTo );
	 
	// Return the random number.
	return(
		Math.floor(
		intFrom +
		(
			(intTo - intFrom + 1) *
		 
			// Seed the random number if a value was passed.
			Math.random(
				(intSeed != null) ? intSeed : 0
			)
		))
	);
}


var audio = ["HeyGuys","YepYepTotally","breakfast","northstation"];

(function($) {

    $.fn.radshawize = function(options) {

        //Yo' defaults
        var defaults = {  
            enterOn: 'click', //timer, konami-code, click
            delayTime: 5000 //time before radshaw attacks on timer mode
            };  
        
        //Extend those options
        var options = $.extend(defaults, options); 
	
        return this.each(function() {

			var _this = $(this);
			var audioSupported = false;
			//Stupid Browser Checking which should be in jQuery Support
			if ($.browser.mozilla && $.browser.version.substr(0, 5) >= "1.9.2" || $.browser.webkit) { 
				audioSupported = true;
			}
			
			//radshaw Vars
			var radshawImageMarkup = '<img id="elradshaw" style="display: none" src="/radshaw/radshaw.png" />'
			
			function createAudioMarkup() {
				var selectTrackIndex = RandRange(0,audio.length-1);
				var radshawAudioMarkup = '<audio id="elradshawShriek" preload="auto"><source src="/radshaw/'+audio[selectTrackIndex]+'.mp3" /><source src="/radshaw/'+audio[selectTrackIndex]+'.ogg" /></audio>';
				
				return radshawAudioMarkup;
			}
			var radshawAudioMarkup = createAudioMarkup();
			var locked = false;
			
			//Append radshaw and Style
			$('body').append(radshawImageMarkup);
 			if(audioSupported) { $('body').append(radshawAudioMarkup); }
			var radshaw = $('#elradshaw').css({
				"position":"fixed",
				"bottom": "-1117px",
				"right" : "0",
				"display" : "block"
			})
			
			// Animating Code
			function init() {
				locked = true;
			
				//Sound Hilarity
				if(audioSupported) { 				
					function playSound() {
						if(audioSupported) {
							$('#elradshawShriek').remove();
							var radshawAudioMarkup = createAudioMarkup();
							$('body').append(radshawAudioMarkup);
						}
						document.getElementById('elradshawShriek').play();
					}
					playSound();
				}
								
				// Movement Hilarity	
				radshaw.animate({
					"bottom" : "0"
				}, function() { 			
					$(this).animate({
						"bottom" : "-520px"
					}, 100, function() {
						var offset = (($(this).position().left)+700);
						$(this).delay(300).animate({
							"right" : offset
						}, 2200, function() {
							radshaw = $('#elradshaw').css({
								"bottom": "-1117px",
								"right" : "0"
							})
							locked = false;
						})
					});
				});
			}
			
			
			//Determine Entrance
			if(options.enterOn == 'timer') {
				setTimeout(init, options.delayTime);
			} else if(options.enterOn == 'click') {
				_this.bind('click', function(e) {
					e.preventDefault();
					if(!locked) {
						init();
					}
				})
			} else if(options.enterOn == 'konami-code'){
			    var kkeys = [], konami = "38,38,40,40,37,39,37,39,66,65";
			    $(window).bind("keydown.radshawz", function(e){
			        kkeys.push( e.keyCode );
			        if ( kkeys.toString().indexOf( konami ) >= 0 ) {
			        	init();
			        	//$(window).unbind('keydown.radshawz');
			        	kkeys=[];
			        }
			        if(kkeys.length>500)
			        	kkeys=[];
			    }, true);
	
			}
			
        });//each call
    }//orbit plugin call
})(jQuery);


