/*
 * jQuery Raptorize Plugin 1.0
 * www.ZURB.com/playground
 * Copyright 2010, ZURB
 * Free to use under the MIT license.
 * http://www.opensource.org/licenses/mit-license.php
*/


(function($) {

    $.fn.raptorize = function(options) {

        //Yo' defaults
        var defaults = {
            enterOn: 'click', //timer, konami-code, click
            delayTime: 300, //time before raptor attacks on timer mode
            imageID: 'imageID',
            //  audioID: 'audioID',
            animationDelay: '300',
            animationSpeed: '3000',
            side: 'left'
           
        };

        //Extend those options
        var options = $.extend(defaults, options);

        var direction = "right";
        switch (options.side) {
            case 'top':
                var direction = "right";
                break;
            case 'bottom':
                var direction = "right";
                break;
            case 'left':
                var direction = "top";
                break;
            case 'right':
                var direction = "top";
                break;
            default: ;
        }


        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;
            }*/

            //Raptor Vars
            var raptorImageMarkup = $('#' + options.imageID).html();
            //   var raptorAudioMarkup = '<audio id="elRaptorShriek" preload="auto"><source src="raptor-sound.mp3" /><source src="raptor-sound.ogg" /></audio>';
            var raptorAudioMarkup = $('#' + options.audioID).html();

            var locked = false;

          
                //Append Raptor and Style
                //   $('body').append(raptorImageMarkup);
                // if (audioSupported) { $('body').append(raptorAudioMarkup); }
                var aniArgs = {};
                aniArgs["position"] = "fixed";
                aniArgs[options.side] = "-700px";
                aniArgs[direction] = "0";
                aniArgs["display"] = "block";
                aniArgs["z-index"] = "99999";

                var raptor = $('#' + options.imageID).css(aniArgs)
          
            // Animating Code
            function init() {
                locked = true;

                 //Sound Hilarity
                if (audioSupported) {
                    function playSound() {
                        //alert("'" + options.audioID + "'");
                        var stringname = "elRaptorShriek";
                        //alert(stringname);
                        document.getElementById(stringname).play();
                        //alert(document.getElementById(stringname));
                    }
                    playSound();
                }

                //var side = options.side;

                var aniArgs1 = {};
                var aniArgs2 = {};
                var aniArgs3 = {};
                aniArgs1[options.side] = "0";
                aniArgs2[options.side] = "0px";

                aniArgs3[options.side] = "-700px";
                aniArgs3[direction] = "0";

                // Movement Hilarity
              
                    raptor.animate(
                      aniArgs1
                , function() {
                    $(this).animate(aniArgs2, 100, function() {
                        var offset = (($(this).position().left) + 1000);
                        var aniArgs4 = {};
                        aniArgs4[direction] = offset;
                        $(this).delay(options.animationDelay).animate(aniArgs4, options.animationSpeed, function() {
                            raptor = $('#' + options.imageID).css(aniArgs3)
                            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.raptorz", function(e) {
                    kkeys.push(e.keyCode);
                    if (kkeys.toString().indexOf(konami) >= 0) {
                        init();
                        $(window).unbind('keydown.raptorz');
                    }
                }, true);

            }

        }); //each call
    } //orbit plugin call
})(jQuery);


