/*
    Initialize Events
    ------------------------------------------------------------------------------------------------------*/
    $(document).ready(function(event){
        $banner_slide                           = setInterval('banner_slide()',7500);
        $interval                               = setInterval('sidebar_slide()',5000); 
        $sidebar_slideshow                      = $('#page_sidebar #slideshow');
        $slideshow                              = '#page_sidebar #slideshow #slides';
        $pause_slide                            = false;
    

        $('a[rel="guideline"]').live('click',toggle_guide);
        
        $('form input, form select, form textarea').live('focus',{'type':'focus'},field_foci);
        $('form input, form select, form textarea').live('blur',{'type':'blur'},field_foci);
        $('form input, form select, form textarea').live('keydown',{'type':'max_length'},field_foci);
        $('[name*="email"],[name*="password"],[name*="tax_id"]').bind({'paste':field_safe,'contextmenu':field_safe}).attr({'ondragstart':'return false;','ondragenter':'return false;','ondragover':'return false;','ondrop':'return false;','onselectstart':'return false;','onselectend':'return false;'});
        
        $('form#contact_us a[rel="send"]').live('click',{'form':'contact_us'},verify_form);
        $('form#subscribe a[rel="subscribe"]').live('click',{'form':'subscribe'},verify_form);
        $('form#unsubscribe a[rel="unsubscribe"]').live('click',{'form':'unsubscribe'},verify_form);
        
    
    
        $('#site_navigation a[name='+jQuery.url.segment(0)+']').addClass('current_section');
    
        $('#page_sidebar #slideshow').mouseover(function(event){ toggle_slideshow(); });
        $('#page_sidebar #slideshow').mouseout(function(event){  toggle_slideshow(); });
        
        if(jQuery.url.segment(1)){
            $('#site_footer a[name='+jQuery.url.segment(1).replace('.php','')+']').addClass('current_page');
        }
        
        
        $('#page_content a.tag').each(function(event){
            var $tag        = $(this);
            var $tag_info   = $tag.attr('info');
            var $info       = $tag.attr('name');
            
            if($info == 'info_tag_10'){
                $tag.append('<div tag="'+$info+'" class="tag_info" style="top:-215px; left:-200px; width:600px; border:1px solid #5E573D;">'+$tag_info+'</div>');
            } else if($info == 'info_tag_9'){
                $tag.append('<div tag="'+$info+'" class="tag_info" style="top:-335px;">'+$tag_info+'</div>');
            } else if($info == 'info_tag_8'){
                $tag.parent().append('<div tag="'+$info+'" class="tag_info" style="top:35px;">'+$tag_info+'</div>');
            } else {
                $tag.parent().append('<div tag="'+$info+'" class="tag_info">'+$tag_info+'</div>');
            }
        });
        $('#page_content a.tag').mouseover(function(event){ $('<div[tag='+$(this).attr('name')+']').show(); });
        $('#page_content a.tag').mouseout(function(event){  $('<div[tag='+$(this).attr('name')+']').hide(); });
    });




    /* $ URL
    ------------------------------------------------------------------------------------------------------*/
    jQuery.url=function(){var segments={};var parsed={};var options={url:window.location,strictMode:false,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*):?([^:@]*))?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}};var parseUri=function(){str=decodeURI(options.url);var m=options.parser[options.strictMode?"strict":"loose"].exec(str);var uri={};var i=14;while(i--){uri[options.key[i]]=m[i]||""}uri[options.q.name]={};uri[options.key[12]].replace(options.q.parser,function($0,$1,$2){if($1){uri[options.q.name][$1]=$2}});return uri};var key=function(key){if(!parsed.length){setUp()}if(key=="base"){if(parsed.port!==null&&parsed.port!==""){return parsed.protocol+"://"+parsed.host+":"+parsed.port+"/"}else{return parsed.protocol+"://"+parsed.host+"/"}}return(parsed[key]==="")?null:parsed[key]};var param=function(item){if(!parsed.length){setUp()}return(parsed.queryKey[item]===null)?null:parsed.queryKey[item]};var setUp=function(){parsed=parseUri();getSegments()};var getSegments=function(){var p=parsed.path;segments=[];segments=parsed.path.length==1?{}:(p.charAt(p.length-1)=="/"?p.substring(1,p.length-1):path=p.substring(1)).split("/")};return{setMode:function(mode){strictMode=mode=="strict"?true:false;return this},setUrl:function(newUri){options.url=newUri===undefined?window.location:newUri;setUp();return this},segment:function(pos){if(!parsed.length){setUp()}if(pos===undefined){return segments.length}return(segments[pos]===""||segments[pos]===undefined)?null:segments[pos]},attr:key,param:param}}();


    /* Form Message
    -------------------------------------------*/
    $.fn.extend({
        form_message                            : function(message){
            $(this).find('.form_message').remove();
            message                             ? $(this).find('.form_guidelines').after('<div class="form_message">'+message+'</div>') : '';         
        }
    });
    
    
    /* 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);
    
    
    
    
    /* Site Banner
    ------------------------------------------------------------------------------------------------------*/
    function banner_slide(event){
        var $current        = $('#site_banner ol li.current');
        
        if($current.length == 0){ $current = $('#site_banner ol li:last'); };
        var $next = $current.next().length ? $current.next() : $('#site_banner ol li:first');
        
        $current.addClass('previous');
        $next.hide().addClass('current').fade_in(1500,function(event){ $current.removeClass(); });
    }


    /* Sidebar Gallery
    ------------------------------------------------------------------------------------------------------*/    
    function sidebar_slide(event){
        var $current        = $($slideshow+' div.current');
        
        if($current.length == 0){ $current = $($slideshow+' div:last'); };
        var $next = $current.next().length ? $current.next() : $($slideshow+' div:first');
        
        $current.addClass('previous');
        $next.hide().addClass('current').fade_in(1000,function(event){ $current.removeClass(); });
    }
    
    function toggle_slideshow(event){
        if($pause_slide){ 
            $interval       = setInterval('sidebar_slide()',5000); 
            $pause_slide    = false;
        } else { 
            clearInterval($interval); 
            $pause_slide    = true; 
        }
    }
    
    
    
    
    
    
    
    function charity_window(id){
        window.open('/what_we_do/recipient.php?id='+id,'NLGCF','width=530,height=300,scrollbars=yes,resizable=yes');
    }
    
    function external_window(locale){
        window.open(locale,'NLGCF','width=900,height=500,scrollbars=yes,resizable=yes');
    }



    /* Toggle Guide
    -------------------------------------------*/
    function toggle_guide(event){
        var $link                               = $(this);
        var $guideline                          = $link.parent().siblings('ol');
        
        if($guideline.is(':visible')){
            $link.addClass('closed');
            $guideline.slideUp();
        } else {
            $link.removeClass('closed');
            $guideline.slideDown();
        }
        
        
        return false;
    }
    
    

    /* Field Focus
    -------------------------------------------*/
    function field_foci(event){
        var $container                          = $(this).parents('div:eq(0)');
    
    
        switch(event.data.type){
            case 'focus'                        : $container.addClass('current'); break;
            case 'blur'                         : $container.removeClass('current'); break;
            case 'max_length'                   : if(($(this).attr('maxlength')) && ($(this).attr('maxlength').length > 0)){ return ($(this).val().length <= $(this).attr('maxlength')); };
        }
    }
    
    
    /* Field Focus
    -------------------------------------------*/
    function field_safe(event){          
        return $(this).attr('name')            == 'password_reset';
    }
    
    
    
    
    /* Verify Form
    -------------------------------------------*/
    function verify_form(event){
        var $form                               = event.data.form;
        var $action                             = '';
        var $button                             = $(this);
        
        $button.hide();
        
        
        switch($form){
            case 'contact_us'                   : $action = '/application/includes/functions/user.functions.php?function=user_contact'; break;
            case 'subscribe'                    : $action = '/application/includes/functions/user.functions.php?function=user_subscription'; break;
            case 'unsubscribe'                  : $action = '/application/includes/functions/user.functions.php?function=user_subscription&type=unsubscribe'; break;
        }
        
        
        $('form#'+$form).attr('action',$action);
        validate_form($form,$button);
        
        
        return false;
    }
    
    
    
    /* Validate Form
    -------------------------------------------*/
    function validate_form(form,button,action){
        var $form                               = $('form#'+form);
        var $form_errors                        = 0;
        var $form_fields                        = [];
        var $form_message                       = '';
        var $button                             = button;
        var $action                             = action ? action : '/application/includes/functions/user.functions.php?function=user_antihack&form='+$form.attr('id');
        
        
        $form.find('[type!="file"]:input:visible').each(function(event){
            var $input                          = $(this);
            var $container                      = $input.parents('div:eq(0)');
            var $section                        = $container.siblings('h2').text() ? '<b>'+$container.siblings('h2').text()+':</b> ':'';
            var $label                          = $container.find('label sup').length > 0 ? ($container.find('label sup sub').length > 0 ? $container.find('label sup sub') : $container.find('label sup')) : $container.find('label');
        
        
            $container.removeClass('fail');
        
            if($container.children('kbd').length > 0){            
            	if($input.val()                == ''){
                    $form_errors               ++;
                    $form_message               = $form_message+'<li>'+$section+$label.text()+'</li>';
                    $form_fields.push($input.attr('name'));
                    $container.addClass('fail');
            	} else if($input.parents('ol').hasClass('field_radio') && $('[name="'+$input.attr('name')+'"]:checked').length == 0){
                    if(!in_array($input.attr('name'),$form_fields)){                    
                        $form_errors           ++;
                        $form_message           = $form_message+'<li>'+$section+$label.text()+'</li>';
                        $form_fields.push($input.attr('name'));
                    }
                    
                    $container.addClass('fail');
                }
            }
        });


        if(($form_errors == 0) && ($form.find('input[name="antispam"]').val() == '')){
            $form.submit();
        } else {
            $form.attr('action',$action).form_message('<span class="fail">Please correct your form before submitting.</span><p>The following fields are invalid:</p><br/><ol>'+$form_message+'</ol><br/><p>Please review and resubmit.</p>');
            $button.show();
            $('html,body').animate({scrollTop:$($form).offset().top});
        }
    }