if(typeof(TRENDERO) == 'undefined' ){
    TRENDERO = {};
}
//module pattern
TRENDERO.menu = function(){
    //private
    var menuOpacity = 0.90;
    var speed = 250;
    var flashObject; 
    var hotspotters = {};
    var hotspots = {};
    var timelines = {};
    var selectedClass;
    var menuItemClass;

    function getFlashMovie(movieName) {
        var isIE = navigator.appName.indexOf("Microsoft") != -1;
        return (isIE) ? window[movieName] : document[movieName];
    }
    function closeAllMenus(){
        var openMenus = $("."+selectedClass);
        openMenus.find("ul").slideUp(speed, function(){openMenus.removeClass(selectedClass);});
    }
    function closeSelectedDropDown(){
        var menuItem = $(this)
        var dropdown = menuItem.find("ul");
        var t = setTimeout(
            function(){
                dropdown.slideUp(speed, function(){menuItem.removeClass(selectedClass);});
                menuItem.css("opacity", 1.0) 
            },1000);
        menuItem.bind("mouseover", function(){clearTimeout(t)});
    }

    //public
    return {
        init: function(item, selected, hover){
            selectedClass = selected;
            menuItemClass = item;
            var menuItems = $("."+item);
            menuItems.bind('click', function(e){
                var menuItem = $(this);
                var dropdown = menuItem.find("ul");
                if(menuItem.hasClass(selectedClass)){
                        //close the menu
                        dropdown.slideUp(speed, function(){menuItem.removeClass(selectedClass);});
                        menuItem.css("opacity", 1.0) 
                }
                else {
                        //close all open menus
                        closeAllMenus();
                        //open the menu
                        menuItem.addClass(selectedClass);
                        dropdown.slideDown(speed);
                        dropdown.css("opacity",menuOpacity)
                        menuItem.bind("mouseout", closeSelectedDropDown);
                }
            });
            menuItems.bind('mouseover', function(e){
                var menuItem = $(this)
                menuItem.addClass(hover);
                menuItem.css("opacity", menuOpacity);
            });
            menuItems.bind('mouseout', function(e){
                var menuItem = $(this);
                menuItem.removeClass(hover);
                menuItem.css("opacity", 1.0);
            });
            $(".show_all").bind('click', closeAllMenus);
            $(".dropdown_category").bind('click', function(e){
            		var catName = $(this).text();
            		if (catName.indexOf("Film") >= 0) {
            			catName = "Film";
            		}
                    var req = '{"requestType":"filter","category":"'+catName+'"}';
                    getFlashMovie("map").jsRequest(req);
            });
            $(".dropdown_hotspotter").bind('click', function(e){
                    var name = $(this).text();
                    var req = '{"requestType":"filter","hotspotter":{"name":"'+$(this).text()+'","pk":'+hotspotters[name]+'}}';
                    getFlashMovie("map").jsRequest(req);
            });
            $(".dropdown_hotspot").bind('click', function(e){
                    var name = $(this).text();
                    var req = '{"requestType":"filter","hotspot":{"name":"'+$(this).text()+'","lat":'+hotspots[name].lat+',"lon":'+hotspots[name].lon + '}}';
                    getFlashMovie("map").jsRequest(req);
            });
            $(".dropdown_latest").bind('click', function(e){
                    var num = parseInt(this.id);
                    var req = '{"requestType":"filter","latest":"'+timelines[num]+'"}';
                    getFlashMovie("map").jsRequest(req);
            });
            $(".show_all").bind('click', function(e){
                    var req = '{"requestType":"filter"}';
                    getFlashMovie("map").jsRequest(req);
            });
        },
        setHotspotters: function(hs){
            hotspotters = hs;
        },
        setHotspots: function(hs){
            hotspots = hs;
        },
        setTimelines: function(hs){
            timelines = hs;
        },
    	setdefault: function() {
        	var tempVal = location.href;
        	if (tempVal.indexOf("home") < 0) {
        		return;
        	}
        	var myDate=new Date();
        	myDate.setDate(myDate.getDate()-90);
        	var monthStr = myDate.getMonth() + 1;
        	if (monthStr.toString().length < 2) {
        		monthStr = "0" + monthStr;
        	}
        	
        	var dateStr = myDate.getFullYear() + "-" + monthStr + "-" + myDate.getDate() + " 01:00:00";
            var req = '{"requestType":"filter","latest":"' + dateStr + '"}';
    		getFlashMovie("map").jsRequest(req);
    	},
        setFilter: function(str){
            $('#filterData').html(str);        
        }
    }
}();
