var CmsttNav = {
	load_subnav : function(rel, level) {
		parent_key = rel 
		// remove query string if any
		parent_key = parent_key.split('?')[0];
		// remove unnecessary characters.
		parent_key = parent_key.replace(/[;,#]/g, '');
		// replace '/' with '_'
		parent_key = parent_key.replace(/\//g, '_');
		subnav_id = 'subnav' + level + '_' + parent_key;
		$('#'+subnav_id).css({'visibility': 'visible', 'display' : 'block'})
	},
	main_nav_mouseover : function() {
		$('.main_nav > li > a').mouseover(function(){
			// clear all sub navi first
			$('.sub_nav').css({'visibility': 'hidden', 'display' : 'none'})
			CmsttNav.load_subnav($(this).attr('rel'), 1);
			// remove 'current' class from all main menu items.
			$('.main_nav > li > a').removeClass('current');
			// set this menu element as the current element.
			$(this).addClass('current'); 
			return false;
		});
	},
	register_nav_handlers : function() {
		// runs on page load.  attaches handlers to navigation items.
		CmsttNav.main_nav_mouseover();
	},
	unregister_nav_handlers : function() {
		$('.main_nav > li > a').unbind('mouseover');
	},
	select_main_nav_on_init : function() {
		$('.main_nav > li > a.current').trigger('mouseover');
	}
}
// on load functions
$(function(){
	CmsttNav.register_nav_handlers();
	CmsttNav.select_main_nav_on_init();
});
// on unload functions
$(window).unload(function(){
	CmsttNav.unregister_nav_handlers();
});

/********************************************************
 simplemodal activation for page & site notes [START]
********************************************************/
$(function(){
    $('.note_switch').click(function(){
        var divid = $(this).attr('href');
        CmsttUtils.open_simplemodal(divid, 450, 400);
        return false;
    });
});
/********************************************************
simplemodal activation for page & site notes [END]
********************************************************/

/************************************
 * Object for utility functions.
 ************************************/
var CmsttUtils = {
	/***********************************************************
	register_media_tag_click:
	
	Hack for media tag searches.
	@todo:
	This should be done with suggestion style drop downs
	*************************************************************/
	register_media_tag_click : function(form_id, tag_field_id){
		$('.media_tag_link').click(function(){
			var t = $(this).text();
			if(t){
				$('#' + tag_field_id).val(t);
				$('#' + form_id).submit();
			}
			return false;
		});		
	},
	/**************************************************
	 *  Utility method for opening simplemodal popups
	 *************************************************/
	open_simplemodal : function(obj_id, width, height){
        $(obj_id).modal({
            escClose : true,
            overlayClose : true,
            minWidth : width,
            minHeight : height,
            maxWidth : width,
            maxHeight : height,
            closeHTML : '<a class="modalCloseImg" title=""></a>'
        });		
	}
}

/****************************************
 * Object for flash message manipulation
 ****************************************/
var CmsttFlashMessages = {
		flash_msg_area : $('#flash_messages'),
		flash_msg_dom : $('#flash_messages > #flash_message'),
		show_flash_message : function(msg, is_error){
			if (is_error){
				msg = '<span class="errors">' + msg + '</span>';
			}
			CmsttFlashMessages.flash_msg_dom.html(msg);
			CmsttFlashMessages.flash_msg_area.show();
		},
		hide_flash_message : function() {
			CmsttFlashMessages.flash_msg_area.hide(null, function(){
				CmsttFlashMessages._clear_msg();
			});
		},
		fade_flash_message : function() {
			CmsttFlashMessages.flash_msg_area.fadeOut(null, function(){
				CmsttFlashMessages._clear_msg();
			});
		},
		_clear_msg : function(){
			CmsttFlashMessages.flash_msg_dom.html('');
		}
}

/* register close button action to flash message close btn */
$(function(){
	$('#flash_messages_close_btn_img').click(function(){
		CmsttFlashMessages.fade_flash_message();
		return false;
	});
});

