/*
    Initialize Events
    ---------------------------------------------------------------*/
    $(document).ready(function(event){
        $('a[rel="external"]').bind('click',external_link);
        $('a[rel="close_overlay"]').bind('click',{'toggle':'close'},page_overlay);

        $('a[rel="facebook"]').bind('click',external_link);
        $('a[rel="twitter"]').bind('click',external_link);
        $('a[rel="friend"]').bind('click',{'load':'/forms/refer_page.form.php'},page_overlay);
        $('a[rel="bov"]').bind('click',external_link);


        $('a[rel="submit"]').bind('click',validate_form);
        $('form#search a[rel="search"]').bind('click',submit_form);
        $('form#search_recipes select[name="category"]').bind('change',search_form);
    });
    
    
    
    
    
/*
    Site Events
    ---------------------------------------------------------------*/
    
    
    /* In Array
    ---------------------------------------------------------------*/
    function in_array(string,array){
        for(i=0; i<array.length; i++){
            if(array[i]            == string){ return true; }
        }
        
        return false;
    }
    
    
    
    /* External Window
    ------------------------------------------------------------------------------------------------------*/
    function external_window(url,width,height,name){
        if(width && height){
            window.open(url,name,"toolbar=0,location=1,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width="+width+",height="+height);
        } else {
            window.open(url,name,"toolbar=0,location=1,directories=0,status=1,menubar=1,scrollbars=1,resizable=1,width=950,height=500");
        }
        
        return false;
    }


    /* External Link
    ---------------------------------------------------------------*/
    function external_link(event){
        if($(this).attr('rev')){
            var $parameters         = $(this).attr('rev').split(',');

            external_window($(this).attr('href'),$parameters[0],$parameters[1]);
        } else {
            external_window($(this).attr('href'));
        }
        
        return false;
    }
    
    
    /* Fade In / Fade Out
    ---------------------------------------------------------------*/
    (function($){
    	$.fn.fade_in = function(speed,callback){
    		$(this).fadeIn(speed,function(){
    			if(jQuery.browser.msie){ $(this).get(0).style.removeAttribute('filter'); }
    			if(callback != undefined){ eval(callback)(); }
    		});
    	};
    	$.fn.fade_out = function(speed,callback){
    		$(this).fadeOut(speed,function(){
    			if(jQuery.browser.msie){ $(this).get(0).style.removeAttribute('filter'); }
    			if(callback != undefined){ eval(callback)(); }
    		});
    	};
    })(jQuery);
    
    
    
    
    /* Page Overlay
    ---------------------------------------------------------------*/
    function page_overlay(event){    
        if(event.data.toggle           != undefined){
            if(event.data.toggle       == 'close'){
                $('#site_backdrop, #site_overlay').hide().remove();
            }
        } else {
            $('#site_backdrop, #site_overlay').remove();
        
            if($('#site_footer').length == 0){
                $('#page_structure').after('<div id="site_backdrop"></div><div id="site_overlay"></div>');
            } else {
                $('#site_footer').after('<div id="site_backdrop"></div><div id="site_overlay"></div>');
            }
            

            $('#site_overlay')
                .load('/pages/cabot/includes/forms/refer_page.form.php',
                    null,
                    function(event){
                        var $width      = $('#site_overlay').children().width() / 2 *-1;
                        var $height     = $('#site_overlay').children().height() / 2 *-1;
                                                
                        $('a[rel="close_overlay"]').bind('click',{'toggle':'close'},page_overlay);
                        
                        $('#site_backdrop').show();
                        $('#site_overlay').css({'width':($width * -2) + 4,'margin-top':$height,'margin-left':$width}).show();
                    }
                );
        }
        
        return false;
    }

    
    
    /* Submit Form
    ---------------------------------------------------------------*/
    function submit_form(event){
        $(this).parents('form').submit();
        
        return false;
    }
    
    
    /* Search Form
    ---------------------------------------------------------------*/
    function search_form(event){
        if($(this).val() != ''){
            var $action         = $(this).parents('form').attr('action');
            $(this).parents('form').attr('action',$action+$(this).val()).submit();
        }
        
        return false;
    }
    
    
    /* Validate Form
    ---------------------------------------------------------------*/
    function validate_form(event){
        var $form                   = $(this).parents('form').attr('id');
        var $form_errors            = 0;
        var $form_message           = '';


        $(this).hide();

        
        if(($('form#'+$form+' [name="antispam"]').val() == '') || ($('form#'+$form+' [name="user_form_antispam"]').val() == '')){
        	$('form#'+$form+' :input').each(function(event){
				if(!in_array($(this).attr('name'),$exceptions)){
					if($(this).attr('type') == 'checkbox'){
						if(!$(this).is(':checked') && $(this).attr('name') == 'agreement'){
							$form_errors   ++;
							$form_message   = $form_message+'\n > '+$(this).siblings('label').text();
							$('[name="'+$(this).attr('name')+'"]').parent().addClass('fail');
						}
					} else {
						if(($(this).siblings('label:eq(0)').children('kbd').length > 0) && (!$(this).val() || ($(this).val() == ''))){
							$form_errors   ++;
							$form_message   = $form_message+'\n > '+$(this).siblings('label:eq(0)').text();
							$('[name="'+$(this).attr('name')+'"]').parent().addClass('fail');
						}
					}
				}
			});
		
        
            if($form_errors        == 0){
                if(event.data      && event.data.callback != undefined){
                    var $callback   = event.data.callback;
                
                    eval($callback)();
                } else {
                    $('form#'+$form).submit();
                }
            } else {
                alert("There are [ "+$form_errors+" ] form errors in your submission.\n\nPlease review your entry, fulfill all required fields, and resubmit.\n\n"+$form_message);
                $(this).show();
            }
        }

        return false;
    }




    /* Send Referral
    ---------------------------------------------------------------*/
    function send_referral(event){
        $('#site_overlay')
            .load(
                '/pages/cabot/includes/forms/refer_page.form.php',
                {
                    antispam    : $('form#refer_page [name="antispam"]').val(),
                    referrer    : $('form#refer_page [name="referrer"]').val(),
                    name        : $('form#refer_page [name="name"]').val(),
                    email       : $('form#refer_page [name="email"]').val(),
                    message     : $('form#refer_page [name="message"]').val()
                }
            );
    }

    
