jQuery(document).ready(function(){

	//Adjust panel height
	jQuery.fn.adjustPanel = function(){
		jQuery(this).find("ul, .subpanel").css({ 'height' : 'auto'}); //Reset subpanel and ul height

		var windowHeight = jQuery(window).height(); //Get the height of the browser viewport
		var panelsub = jQuery(this).find(".subpanel").height(); //Get the height of subpanel
		var panelAdjust = windowHeight - 100; //Viewport height - 100px (Sets max height of subpanel)
		var ulAdjust =  panelAdjust - 25; //Calculate ul size after adjusting sub-panel (27px is the height of the base panel)

		if ( panelsub >= panelAdjust ) {	 //If subpanel is taller than max height...
			jQuery(this).find(".subpanel").css({ 'height' : panelAdjust }); //Adjust subpanel to max height
			jQuery(this).find(".wrapper").css({ 'height' : ulAdjust}); //Adjust subpanel ul to new size
		}
		else if ( panelsub < panelAdjust ) { //If subpanel is smaller than max height...
			jQuery(this).find(".wrapper").css({ 'height' : 'auto'}); //Set subpanel ul to auto (default size)
		}
	};

	//Execute function on load
	jQuery("#loginbox, #profilebox, #msgbox, #alertbox, #friendbox, #groupbox, #toolbox").adjustPanel(); //Run the adjustPanel function

//Each time the viewport is adjusted/resized, execute the function
	jQuery(window).resize(function () {
		jQuery("#loginbox, #profilebox, #msgbox, #alertbox, #friendbox, #groupbox, #toolbox").adjustPanel();
	});

	//Click event on Panels
	jQuery("#loginbox a:first, #profilebox a:first, #msgbox a:first, #alertbox a:first, #groupbox a:first, #friendbox a:first, #toolbox a:first").click(function() { //If clicked on the first link...
		if(jQuery(this).next(".subpanel").is(':visible')){ //If subpanel is already active...
			jQuery(this).next(".subpanel").hide(); //Hide active subpanel
			jQuery("#menupanel li a, #uipanel li a").removeClass('active'); //Remove active class on the subpanel trigger
		}
		else { //if subpanel is not active...
			jQuery(".subpanel").hide(); //Hide all subpanels
			jQuery(this).next(".subpanel").toggle(); //Toggle the subpanel to make active
			jQuery("#menupanel li a, #uipanel li a").removeClass('active'); //Remove active class on all subpanel trigger
			jQuery(this).toggleClass('active'); //Toggle the active class on the subpanel trigger
		}
		return false; //Prevent browser jump to link anchor
	});

	//Click event outside of subpanel
	jQuery(document).click(function() { //Click anywhere and...
		jQuery(".subpanel").hide(); //hide subpanel
		jQuery("#menupanel li a, #uipanel li a").removeClass('active'); //remove active class on subpanel trigger
	});
	jQuery('.subpanel .wrapper').click(function(e) {
		e.stopPropagation(); //Prevents the subpanel ul from closing on click
	});

});

