﻿if (typeof iGate == 'undefined') iGate = {};
if (typeof iGate.Menu == 'undefined') iGate.Menu = {};

iGate.Menu.VerticalStaticDown = function(){
    var _config = {};
	var _selectedMenu = 0;
	var _selectedSubMenu = 0;
	    
    var _initConfig = function(config){
    	_config.container	= (typeof config.container != "undefined") ? config.container : "staticdownmenu";
    	_config.width = (typeof config.width != "undefined") ? config.width : 120;
    	_config.level1CSS = (typeof config.level1CSS != "undefined") ? config.level1CSS : "menulayer1";
    	_config.level1CSSOver = (typeof config.level1CSSOver != "undefined") ? config.level1CSSOver : "menulayer1over";
    	_config.level1CSSSelected = (typeof config.level1CSSSelected != "undefined") ? config.level1CSSSelected : "menulayer1selected";
    	_config.level2CSS = (typeof config.level2CSS != "undefined") ? config.level2CSS : "menulayer2";
    	_config.level2CSSOver = (typeof config.level2CSSOver != "undefined") ? config.level2CSSOver : "menulayer2over";
    	_config.level2CSSSelected = (typeof config.level2CSSSelected != "undefined") ? config.level2CSSSelected : "menulayer2selected";
    	_config.selectedItemId = (typeof config.selectedItemId != "undefined") ? config.selectedItemId : 0;
    	_config.items = (typeof config.items != "undefined") ? config.items : [];
    };
    
	var _determineSelectedMenu = function(){
		for (var i = 0; i < _config.items.length; i++){
			if (_config.items[i].id == _config.selectedItemId){
				if (_config.items[i].parentId == 0)
					_selectedMenu = _config.items[i].id;
				else {
					_selectedMenu = _config.items[i].parentId;
					_selectedSubMenu = _config.items[i].id;
				}
			}
		}
	};
	
	var _getNoOfChildren = function(parentId){
		var no = 0;
		for (var i = 0; i < _config.items.length; i++)
			if (_config.items[i].parentId == parentId)
				no++;
		return no;
	};
		
	var _subMenuHTML = function(parentId){
		var html = '';
		var noOfChildren = _getNoOfChildren(parentId);
	
		if (noOfChildren == 0)
		    return "";
		
		for (var i = 0; i < _config.items.length; i++)
			if (_config.items[i].parentId == parentId) {
				html +=	"<div id=\"mn" + _config.items[i].id + "\"";
				if (_config.items[i].id == _selectedSubMenu)
					html += " class=\"" + _config.level2CSSSelected + "\"";
				else
					html += " class=\"" + _config.level2CSS + "\"";
				html += " onmouseover=\"iGate.Menu.VerticalStaticDown.changeCSS('mn" + _config.items[i].id + "','" + _config.level2CSSOver + "');\"";
				html += " onmouseout=\"iGate.Menu.VerticalStaticDown.changeCSS('mn" + _config.items[i].id + "','" + _config.level2CSS + "');\"";
				html +=	" onclick=\"iGate.Menu.VerticalStaticDown.gotoLink('" + _config.items[i].link + "')\"";
				html +=	">";
				html +=	_config.items[i].text;
				html +=	"</div>";
			}
		return html;
	};
	
	var _buildMenu = function() {
		var html = "";
		for (var i = 0; i < _config.items.length; i++)
			if (_config.items[i].parentId == 0){
				html +=	"<div id=\"mn" + _config.items[i].id + "\"";
				if (_config.items[i].id == _selectedMenu)
					html += " class=\"" + _config.level1CSSSelected + "\"";
				else
					html += " class=\"" + _config.level1CSS + "\"";
				html += " onmouseover=\"iGate.Menu.VerticalStaticDown.changeCSS('mn" + _config.items[i].id + "','" + _config.level1CSSOver + "');\"";
				html += " onmouseout=\"iGate.Menu.VerticalStaticDown.changeCSS('mn" + _config.items[i].id + "','" + _config.level1CSS + "');\"";
				html +=	" onclick=\"iGate.Menu.VerticalStaticDown.gotoLink('" + _config.items[i].link + "')\"";
				html +=">";
				html +=	_config.items[i].text;
				html +=	"</div>";
				html +=	_subMenuHTML(_config.items[i].id);
			}
		document.getElementById(_config.container).innerHTML = html;
	}
	
	return {
            init: function(config){
                _initConfig(config);
                _determineSelectedMenu();
                _buildMenu();
            },    
		    changeCSS: function(element, newCSS){
			    if ((document.getElementById(element).className != _config.level1CSSSelected)
				    &&(document.getElementById(element).className != _config.level2CSSSelected))
				    document.getElementById(element).className = newCSS;
		    },
		    gotoLink : function(url){
			    window.location = url;
        }
    }
}();