/*
*************************************************

FEASTERY
JavaScript Functions

Created by the ridiculous Dan Mall
http://www.danielmall.com/

*************************************************
*/


/*-------------------------------------------    
    Global Variables
-------------------------------------------*/
var feastery = {};


/*-------------------------------------------    
    Initial Actions
-------------------------------------------*/

function init() {
    
    loadBackground();
    
    loadMembershipRequest();
    initSignInRollOver(); 
    initOpacityChanges();
    
    initNavRollovers();
    
    initEmailInviteBox();
    initEmailPolicy();
    
}

// this runs EVERYTHING
$(document).ready(function() { init(); });



/*-------------------------------------------    
    Custom Functions
-------------------------------------------*/

function loadMembershipRequest(){
  
  initRequestMembership();    
  enhanceBackToSignIn();   
    
    // if($('#initial').size() > 0){
    // 
    //     // get new content from the Membership page
    //     $('#initial').after('<div id="step2"></div>');
    //     $('#step2').load('/membership #step2 > div', function(){
    //         loadBackground();
    //         initOpacityChanges();
    //         initRequestMembership();            
    //         initSignInRollOver();
    //         enhanceBackToSignIn();
    //     }).hide();       
    //     
    // }

}


function initRequestMembership(){
    $('#request-membership').click(function(){        
        
        if((browser == 'ie6') || (browser == 'ie7') || (browser == 'ie8')){
            $('#initial').hide();
            $('#step2').show();
        }else{
            // animate #initial out, then animate #step2 in        
            $('#initial').css({'position':'absolute'}).fadeOut('slow');
            $('#step2').css({'position':'relative'}).fadeIn('slow');
        }
        
        return false;
        
    });
}

function enhanceBackToSignIn(){
    $('#back-to-sign-in').click(function(){
        
        if((browser == 'ie6')  || (browser == 'ie7') || (browser == 'ie8')){
            $('#initial').show();
            $('#step2').hide();
        }else{            
            $('#initial').fadeIn('slow', function(){
                $(this).css({'position':'relative'});
            });
            $('#step2').fadeOut('slow');
        }
        
        return false;
    });
}

function initOpacityChanges(){
    if(browser == ''){          
        boxTransitionPartners($('#sign-in'), $('#become-member'));        
        boxTransitionPartners($('#request'), $('#nutshell'));        
    }
}

function boxTransitionPartners($box1, $box2){
    
    $($box1).mouseenter(function(){
        $(this).fadeTo('normal', 0.9999);
        $($box2).fadeTo('normal', 0.7);
    }).mouseleave(function(){
        $(this).stop();
    });
    
    $($box2).mouseenter(function(){
        $(this).fadeTo('normal', 0.9999);
        $($box1).fadeTo('normal', 0.7);
    }).mouseleave(function(){
        $(this).stop();
    });
    
}


function initSignInRollOver(){
    $('#sign-in-btn').mouseover(function(){
        $(this).attr('src', '/images/public/sign-in-btn-over.gif');
    }).mouseout(function(){
        $(this).attr('src', '/images/public/sign-in-btn.gif');
    });
    
    $('#submit-btn').mouseover(function(){
        $(this).attr('src', '/images/public/submit-btn-over.gif');
    }).mouseout(function(){
        $(this).attr('src', '/images/public/submit-btn.gif');
    });
    
    
}

function initNavRollovers(){
    if((browser != 'ie6') && (browser != 'ie7') && (browser != 'ie8')){
        $('#nav a').mouseenter(function(){
            // cancelling out normal CSS behavior
            $(this).css({'background-position':'-13px 0px'});
            $(this).animate({
                backgroundPosition: '0px 0px'
            }, 200, 'linear');
        }).mouseleave(function(){
            $(this).animate({
                backgroundPosition: '-13px 0px'
            }, 200, 'linear');
        });
    }
}


// set up fancybox for email invite
function initEmailInviteBox(){
  if ( $(".email_invite_link").length > 0 ) {
    $(".email_invite_link").fancybox({
  		'titlePosition'		: 'inside',
  		'transitionIn'		: 'none',
  		'transitionOut'		: 'none'
  	});
  }
}



// set up fancybox for email invite
function initEmailPolicy(){
  if ( $(".email_policy_link").length > 0 ) {
    $(".email_policy_link").fancybox({
  		'titlePosition'		: 'inside',
  		'transitionIn'		: 'none',
  		'transitionOut'		: 'none'
  	});
  }
}


function loadBackground(){
    
    $('#scalableImage img').one('load', function(){

        // stupid Safari says the image has no width when it's hidden, so it's pushed offscreen instead
        resizeScalableImage($(window));

        $('#scalableImage img').hide().fadeIn(1000);    

        $(window).resize(function(){        
            resizeScalableImage($(this));        
        });
    }).each(function(){ // to solve for browser caching
        if(this.complete){
            $(this).trigger('load');
        }
    });
    
}

// function loadBackground(){
//         
//     $('#scalableImage img').load(function(){
// 
//         // stupid Safari says the image has no width when it's hidden, so it's pushed offscreen instead
//         resizeScalableImage($(window));
//         
//         $('#scalableImage img').css({'left': '50%'})
//         // $('#scalableImage img').hide().css({'left': '50%'}).fadeIn(3000);    
// 
//         $(window).resize(function(){        
//             resizeScalableImage($(this));        
//         });
//     });
//     
// }

function resizeScalableImage($obj){
    
    if(browser != 'ie6'){
    
        var originalWidth = 1193;
        var originalHeight = 792;
        
        // find the scale factor only if the image needs to scale up (if window > default image size )
        var wScaleFactor, hScaleFactor;        
        
		if($($obj).width() > originalWidth){ 		
			wScaleFactor = $($obj).width()/originalWidth;			
		}else{
			wScaleFactor = 1;
		}
		
		if($($obj).height() > originalHeight){ 		
			hScaleFactor = $($obj).height()/originalHeight;			
		}else{
			hScaleFactor = 1;
		}
		
		// scale the image    
		if(wScaleFactor > hScaleFactor){
    	    $('#scalableImage img').width(originalWidth * wScaleFactor);
    	    $('#scalableImage img').height(originalHeight * wScaleFactor);			
	    }else if(hScaleFactor > wScaleFactor){
	        $('#scalableImage img').width(originalWidth * hScaleFactor);
    	    $('#scalableImage img').height(originalHeight * hScaleFactor);
	    }
		
		// center on x-axis
		$('#scalableImage img').css({'margin-left':'-' + $('#scalableImage img').width()/2 + 'px'});    
        
    }
    
}


