jQuery(document).ready(function() {
	
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    ///// GENERAL JS //////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////
	
	// Drop downs
	jQuery('#pagenav > li ul').mouseover(function(){
		jQuery(this).parent().addClass('current_page_item');
	});
	jQuery('#pagenav > li ul').mouseleave(function(){
		jQuery(this).parent().removeClass('current_page_item');
	});

	// Remove borders, etc
	jQuery("#nav ul li:last").css("background","none");
	jQuery("#featured-tabs li:first").css("border-top","0");
	jQuery("#featured-tabs li:last").css("border-bottom","0");
	jQuery("#news ul li:last").css("border-bottom","0");
	jQuery("#comments_wrap ol li ul.children li").css("border-bottom","0");
	jQuery(".widget ul li:last-child").each(function(){
		jQuery(this).css("border-bottom","0");
	});

	// Equal heights for featured area
	var featured_left;
	featured_left = jQuery("#tab-1").height();

	if(jQuery("#tab-2").height() > featured_left){featured_left = jQuery("#tab-2").height();}
	if(jQuery("#tab-3").height() > featured_left){featured_left = jQuery("#tab-3").height();}
	if(jQuery("#tab-4").height() > featured_left){featured_left = jQuery("#tab-4").height();}
	if(jQuery("#tab-5").height() > featured_left){featured_left = jQuery("#tab-5").height();}
	if(jQuery("#tab-6").height() > featured_left){featured_left = jQuery("#tab-6").height();}

	featured_left = featured_left;
	
	var featured_right;
	featured_right = jQuery("#featured-tabs").height();
	featured_right = featured_right;

	if(featured_left > featured_right){
		jQuery('#featured-tabs').height(featured_left + 40);
		jQuery('.information').height(featured_left);
	}
	else if(featured_right > featured_left){
		jQuery('.information').height(featured_right - 40);						
	};

	var tabs; tabs = jQuery("#featured-tabs").height();
	
    ///////////////////////////////////////////////////////////////////////////////////////////////////
    ///// VALIDATION AND LOGIN STUFF///////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////
  
    //Registration - populate second postcode on blur
    jQuery('#postcode').blur( function() {
      var postcodeval = jQuery(this).val();
      jQuery('#subpostcode').val(postcodeval);
    });
  
    //Validation for normal
	function valNorm(element) {
	//If it's empty, add error class
		if (jQuery(element).val().length == 0){
		    jQuery(element).addClass('error');
		    jQuery(element).next('.errormsg').addClass('active');
		} else {
		    jQuery(element).next('.errormsg').removeClass('active');
		    jQuery(element).removeClass('error');
		}
	};
    //Validation for email
    function valEmail(element) {
	    //If it doesn't have a valid email, add error class
	    var emailRegex = /^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i;
	    var str = jQuery(element).val();
	    //Run if statement
	    if ( emailRegex.test(str) ) {
	        jQuery(element).next('.errormsg').removeClass('active');
	        jQuery(element).removeClass('error');
	    } else {
	        jQuery(element).addClass('error');
		    jQuery(element).next('.errormsg').addClass('active');
	    }
	};
    //Validation for checkbox
    function valCheckbox(element) {
	    if ( jQuery(element).is(':checked') ) {
		    jQuery(element).removeClass('error');
		    jQuery(element).next('.errormsg').removeClass('active');
	    } else {
		    jQuery(element).addClass('error');
	        jQuery(element).next('.errormsg').addClass('active');
	    }
	};
    
    //Run functions inline
    jQuery('.required').live( 'blur', function() {
    	valNorm(this);
    });
    jQuery('.required_email').live( 'blur', function() {
    	valEmail(this);
    });
    
    //'Continue' function for validation
    function valRunAll(element) {
    	//Normal submissions
    	jQuery('#loginreg').find('.required').each( function() {
			valNorm(this);
		});
		//Email submissions
		jQuery('#loginreg').find('.required_email').each( function() {
			valEmail(this);
		});
		//First and last seen
		jQuery('#loginreg').find('.required_checkbox').each( function() {
			valCheckbox(this);
		});
	}
    
    //Run all validation on submit
    jQuery('#loginreg input[type="submit"]').click( function() {
    	valRunAll(this);
    	if (jQuery('#loginreg').find('.error').size() == 0) {
	      jQuery(this).siblings('.enderror').slideUp();
	    } else {
	    	jQuery(this).siblings('.enderror').slideDown();
	    	return false;
	    }
    });
    
    //Password matching
    jQuery('#password_2').live('blur', function() {
    	var normPass = jQuery('#password_1').val();
    	var repeatPass = jQuery('#password_2').val();
    	if ( normPass == repeatPass ) {
    		jQuery(this).removeClass('error');
    		jQuery(this).siblings('.match').addClass('active');
    		jQuery(this).siblings('.nomatch').removeClass('active');
    	} else {
    		jQuery(this).addClass('error');
    		jQuery(this).siblings('.nomatch').addClass('active');
    		jQuery(this).siblings('.match').removeClass('active');
    	}
    });

    ///////////////////////////////////////////////////////////////////////////////////////////////////
    ///// LIGHTBOXES //////////////////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////
  
	jQuery('a[name=modal]').click(function(e) {
	    //Cancel the link behavior
	    e.preventDefault();
	    //Get the A tag
	    var box = jQuery(this).attr('href');  
	    //Get the window height and width
	    var winH = jQuery(window).height();
	    var winW = jQuery(window).width();  
	    //Get the height of the modal
	    var modalH = jQuery('#' + box).height();
	    //Define value of setTop for winH < modalH
	    if ( winH < modalH ) {
	    	var setTop = jQuery(window).scrollTop() + 20;
	    }
	    //Define value of setTop for winH > modalH
	    if ( winH > modalH ) {
	    	var setTop = (winH/2-modalH/2) + jQuery(window).scrollTop();
	    }
	    //Set the popup window to center
	    jQuery('#' + box).css('top', (setTop + 'px'));
	    jQuery('#' + box).css('left', winW/2-jQuery('#' + box).width()/2);
	    //transition effect
	    jQuery('#' + box).fadeIn(500);
	    //Get the screen height and width
	    var maskHeight = jQuery(document).height() + 20;
	    var maskWidth = jQuery(window).width();
	    //Set height and width to mask to fill up the whole screen
	    jQuery('#mask').css({'width':maskWidth,'height':maskHeight,opacity: 0.85});
	    //transition effect     
	    jQuery('#mask').fadeIn(300);
	    //Change body height if necessary
	    if ( maskHeight > bodyHeight ) {
	    	jQuery('body').css('min-height', maskHeight);
	    }
	});
	
    //if close button is clicked
    jQuery('.window .close').click(function (e) {
        //Cancel the link behavior
        e.preventDefault();
        jQuery('#mask, .window').fadeOut(300);
        jQuery("body").css('min-height', '100%');
    });
    
    //if mask is clicked
    jQuery('#mask').click(function () {
        jQuery(this).hide();
        jQuery('.window').hide();
    });

    ///////////////////////////////////////////////////////////////////////////////////////////////////
    ///// CUSTOM JS FOR COMMENTS //////////////////////////////////////////////////////////////////////
    ///////////////////////////////////////////////////////////////////////////////////////////////////
  
    jQuery('span.comments').each( function() {
    	var commentNumber = jQuery(this).find('a').html();
    	if ( commentNumber > 0 ) {
    		jQuery(this).find('a').css('background-color', '#eb5f00');
    		jQuery(this).find('.bg').addClass('hascomments');
    	}
    });
	
});
