var mm = {}


mm.Splitscreen = {
    buttons:new Array(),
    config: {
        duration:2000,
        minSize:.45,
        maxSize:1,
        ease: 'easeOutCubic'
    },
    init:function() {
        $('a.split-screen-item').eq(0).wrap('<div id="left"></div>');
        mm.Splitscreen.buttons.push( new mm.Splitscreen.Button({
            which:'left',selector:'#left',index:mm.Splitscreen.buttons.length
        }));
        $('a.split-screen-item').eq(1).wrap('<div id="right"></div>');
        mm.Splitscreen.buttons.push( new mm.Splitscreen.Button({
            which:'right',selector:'#right',index:mm.Splitscreen.buttons.length
        }));
    },
    getButtonBySelector:function(selector) {
        for(var i=0; i<mm.Splitscreen.buttons.length; i++) {
            if(mm.Splitscreen.buttons[i].getSelector() == selector) {
                return(mm.Splitscreen.buttons[i]);
            }
        }
        return({});
    },
    scaleButton:function(selector) {
        var button = mm.Splitscreen.getButtonBySelector(selector);
        //var org = button.getOrigData();
        //button.getImage().height(org.height * button.getImage().width() / org.width);
        button.getImage().css({
            top: ((button.getElement().parent().height() - button.getImage().height()) / 2) +50
        });
    },
    clearButtonQueue:function() {
        for(var i=0; i<mm.Splitscreen.buttons.length; i++) {
            mm.Splitscreen.buttons[i].getImage().stop(true);
        }
    }

};

mm.Splitscreen.Button = function(options) {
    this.init(options);
}
$.extend(mm.Splitscreen.Button.prototype, {
   element:null,
   options:{},
   _origData:{},
   init:function(options) {
       this.options = options;
       this.element = $(this.options.selector),
       this.image = this.element.find('.image-buttons'),
       
       this.setOrigData({
           height: this.getElement().find('img').attr('height'),
           width:this.getElement().find('img').attr('width')
       });
/*
       this.getElement().width(this.getOrigData().width);
       this.getElement().height(this.getOrigData().height);
*/
       this.getImage().width(this.getOrigData().width * this.getConfig().minSize);
       this.getImage().height(this.getOrigData().height * this.getConfig().minSize);


       this.getImage().css({
           position:'absolute',
           top: ((this.getElement().parent().height() - this.getImage().height()) / 2)+50
       });
       if(this.options.which == 'left') {
           this.getImage().css({
               right: 0
           });
       } else {
            this.getImage().css({
               left: 0
           });
       }
       

      this.bind();

       //this.options.element.find('.image-buttons').css({position:'absolute', top:'50%'})
   },
   bind:function() {
       var stepFn ;
       var sizeMax = this.getOrigData().width * this.getConfig().maxSize;
       var sizeHMax = this.getOrigData().height * this.getConfig().maxSize;
       var topMax =  ((this.getElement().parent().height() - sizeHMax) / 2)+50;

       var sizeMin = this.getOrigData().width * this.getConfig().minSize;
       var sizeHMin = this.getOrigData().height * this.getConfig().minSize;
       var topMin =  ((this.getElement().parent().height() - sizeHMin) / 2)+50;


       var duration = this.getConfig().duration;
       var ease = this.getConfig().ease;
        this.getElement().find('img').bind('click', function(){
            var href = $(this).parent().parent().attr('href');
            if(href.substr(0,7) == 'http://' || href.substr(0,8) == 'https://')
                document.location.href = href;
            else
                document.location.href = '/' + href;
            return(false);
        });
       if(this.options.which == 'left') {
           /*
            stepFn = function() {
                mm.Splitscreen.scaleButton('#right','#left');
           };
           */
            this.getElement().find('img').bind('mouseenter', function(){
                //mm.Splitscreen.clearButtonQueue();
                mm.Splitscreen.getButtonBySelector('#left').getImage().stop(true);
                mm.Splitscreen.getButtonBySelector('#left').getImage().animate({width:sizeMax, height:sizeHMax, top:topMax}, {duration: duration, specialEasing: {width: ease,height: ease,top: ease}, step:function(){
                    // mm.Splitscreen.scaleButton('#left')
                }});
            /*
                mm.Splitscreen.getButtonBySelector('#right').getImage().animate({width:sizeMin}, {duration: duration, specialEasing: {width: ease}, step:function(){
                     mm.Splitscreen.scaleButton('#right')
                }});
            */
            });
            this.getElement().find('img').bind('mouseleave', function(){
                //mm.Splitscreen.clearButtonQueue();
                mm.Splitscreen.getButtonBySelector('#left').getImage().stop(true);
                mm.Splitscreen.getButtonBySelector('#left').getImage().animate({width:sizeMin,height:sizeHMin, top:topMin}, {duration: duration, specialEasing: {width: ease,height: ease,top: ease}, step:function(){
                   //  mm.Splitscreen.scaleButton('#left')
                }});
            });
       } else {
            this.getElement().find('img').bind('mouseenter', function(){
                //mm.Splitscreen.clearButtonQueue();
                mm.Splitscreen.getButtonBySelector('#right').getImage().stop(true);
                mm.Splitscreen.getButtonBySelector('#right').getImage().animate({width:sizeMax, height:sizeHMax, top:topMax}, {duration: duration, specialEasing: {width: ease,height: ease,top: ease}, step:function(){
                   //  mm.Splitscreen.scaleButton('#right')
                }});
                /*
                mm.Splitscreen.getButtonBySelector('#left').getImage().animate({width:sizeMin}, {duration: duration, specialEasing: {width: ease}, step:function(){
                     mm.Splitscreen.scaleButton('#left')
                }});
                */
            });
            this.getElement().find('img').bind('mouseleave', function(){
                //mm.Splitscreen.clearButtonQueue();
                mm.Splitscreen.getButtonBySelector('#right').getImage().stop(true);
                mm.Splitscreen.getButtonBySelector('#right').getImage().animate({width:sizeMin,height:sizeHMin, top:topMin}, {duration: duration, specialEasing: {width: ease,height: ease,top: ease}, step:function(){
                   //  mm.Splitscreen.scaleButton('#right')
                }});
            });
       }
       
   },
    getConfig:function() {
        return( mm.Splitscreen.config );
    },
   getElement:function() {
     return(this.element);
   },
   getImage:function() {
     return(this.image);
   },
   getOrigData:function() {
     return(this._origData);
   },
   getSelector:function() {
     return(this.options.selector);
   },
   setOrigData:function(data) {
     this._origData = data;
   }
});


$(document).ready(function(){
    mm.Splitscreen.init();
});
