
var MM = {
	isInit: false,
	menuRef: null,
	currPos: 0,
	currMenuID: -1,
	currMenuIDOut: null,
	coverRef: null,
	contentRef: [],
	notAvailableText: 'This Menu is not available for your selected order time.<br /><br />To order from this menu please choose a new order time.<br /><br />Next available order time is ',
	
	init: function()
	{
		MM.menuRef = g_el('menutabs');
		MM.menuDescrRef = g_el('menudescr');
		MM.currMenuIDOut = g_el(ihCurrentOpenMenuIDname);
		
		var fline = "<table cellpadding='0' cellspacing='0' border='0'><tr>";
		var line = "<td id='tab_pos_'><table cellpadding='0' cellspacing='0' border='0'><tr><td class='left'></td><td class='center'><a href='javascript:;' class='menulink' onmousedown='MM.click(this.id);' id='mlink_pos_'><span>_menuname_</span></a></td><td class='right'></td></tr></table></td>";
		var lline = "</tr></table>";
		
		var _html = "";
		var expr = /_pos_/g;
		var expr2 = /_menuname_/;
		
		for(var i = 0; i < tabs.length; i++)
		{
			_html += line.replace(expr, "_" + i).replace(expr2, tabs[i].title);
		}
		MM.menuRef.innerHTML = fline + _html + lline;
		
		var els = MM.menuRef.getElementsByTagName('td');
		for(var i = 0, l = els.length; i < l; i++)
		{
			if(els[i].id)
			{
				for(var j = 0; j < tabs.length; j++)
				{
					if('tab_' + tabs[j].pos == els[i].id)
					{
						tabs[j].ref = els[i];
						break;
					}
				}
			}
		}
		
		for(var i = 0; i < tabs.length; i++)
		{
			MM.contentRef[i] = g_el(tabContentName + tabs[i].menuid);
		}
		
		MM.coverRef = document.createElement('div');
		MM.coverRef.className = 'menucover_hidden';
		MM.coverRef.innerHTML = '';
		document.body.appendChild(MM.coverRef);
		
		MM.isInit = true;
	},
	
	click: function(id){
		if(!MM.isInit) MM.init();
		
		var menupos = id.split('_')[1];
		for(var i = 0; i < tabs.length; i++)
		{
			if(tabs[i].pos == menupos) { tabs[i].isFront = true; }
			else tabs[i].isFront = false;
		}
		MM.update();
	},
	
	update: function()
	{
		for(var i = 0; i < tabs.length; i++)
		{
			MM.setCenterClass(tabs[i]);
			MM.setLeftClass(tabs[i]);
			MM.setRightClass(tabs[i]);
			if(tabs[i].isFront)
			{
				MM.menuDescrRef.className = tabs[i].isOn ? "descr_on" : "descr_off";
				MM.menuDescrRef.innerHTML = '<span>' + tabs[i].descr + '</span>';
				MM.currPos = i;
				MM.currMenuID = tabs[i].menuid;
				
				if(tabs[i].isOn) $('#jumpBlock').show();
				else $('#jumpBlock').hide();
			}
		}
		MM.currMenuIDOut.value = MM.currMenuID;
		MM.switchFoodGroup();
		MM.switchContent();
		MM.switchCover();
	},
	
	setCenterClass: function(t)
	{
		t.ref.className = (t.isFront ? 'front_' : 'back_') + (t.isOn ? 'on' : 'off');
	},
	
	setLeftClass: function(t)
	{
		t.ref.className += ' left_' + (t.isFront ? 'front_' : 'back_');
		if(MM.isOnRightSide(t)) t.ref.className += 'blank';
		else t.ref.className += (t.isOn ? 'on_' : 'off_') + MM.getLeftTrail(t);
	},
	
	setRightClass: function(t){
		t.ref.className += ' right_' + (t.isFront ? 'front_' : 'back_');
		if(MM.isOnLeftSide(t)) t.ref.className += 'blank';
		else t.ref.className += (t.isOn ? 'on_' : 'off_') + MM.getRightTrail(t);
	},
	
	isOnLeftSide: function(t){
		for(var i = 0; i < tabs.length; i++){
			if(tabs[i].isFront && t.pos < tabs[i].pos) return true;
		}
		return false;
	},
	
	isOnRightSide: function(t){
		for(var i = 0; i < tabs.length; i++){
			if(tabs[i].isFront && tabs[i].pos < t.pos) return true;
		}
		return false;
	},
	
	getLeftTrail: function(t){
		if(t.pos == 0) return 'blank';
		else return tabs[t.pos - 1].isOn ? 'on' : 'off';
	},
	
	getRightTrail: function(t){
		if(t.pos == tabs.length - 1) return 'blank';
		else return tabs[t.pos + 1].isOn ? 'on' : 'off';
	},
	
	switchFoodGroup: function(){
		var l, r;
		for(var i = 0; i < tabs.length; i++)
		{	
			l = g_el('fgm1_' + tabs[i].menuid);  
			r = g_el('fgm2_' + tabs[i].menuid);
		  
			if(!l || !r) return;
			
			if(i == MM.currPos){
				l.style.display = 'block';
				r.style.display = 'block';
				
				if(!tabs[MM.currPos].isOn){
					var els = l.getElementsByTagName('a');
					for(var k = 0; k < els.length; k++){
						els[k].href = 'javascript:;';
					}
					els = r.getElementsByTagName('a');
					for(var k = 0; k < els.length; k++){
						els[k].href = 'javascript:;';
					}
				}
				
			}
			else{
				l.style.display = 'none';
				r.style.display = 'none';
			}
		}		
	},
	
	switchContent: function(){
		var c = null;
		for(var i = 0; i < tabs.length; i++){
			c = MM.contentRef[i];
			if(!c) continue;
			if(tabs[i].isFront) c.className = 'menucontent';
			else c.className = 'menucontent_hidden';
		}
	},
	
	switchCover: function(){
		if(tabs[MM.currPos].isOn) MM.coverRef.className = 'menucover_hidden';
		else {
			var pos = g_elP(MM.contentRef[MM.currPos].id);
			MM.coverRef.style.left = pos.left + 'px';
			MM.coverRef.style.top = pos.top + 'px';
			MM.coverRef.style.width = MM.contentRef[MM.currPos].offsetWidth + 'px';
			MM.coverRef.style.height = MM.contentRef[MM.currPos].offsetHeight + 'px';
			
			var isChangeTimeButtonVisible = (window.location.href.indexOf('corporate_menu.aspx') > -1) ? false : true;
			for(var i = 0; i < nextTimes.length; i++){
				if(nextTimes[i].id == MM.currMenuID){
					if(isChangeTimeButtonVisible)
						MM.coverRef.innerHTML = MM.notAvailableText + nextTimes[i].time + '<br /><br />' + '<table width=\'100%\'><tr><td align=\'center\'><a class=\'btn changeordertime\' href=\'javascript:;\' onclick=\'return MM.changeOrderTimeToNextAvailable(' + nextTimes[i].id + ');\'></a></td></tr></table>';
					else
						MM.coverRef.innerHTML = MM.notAvailableText + nextTimes[i].time;
				}
			}
			MM.coverRef.className = 'menucover';
		}
	},
	
	changeOrderTimeToNextAvailable: function(menuID){
		var del = (window.location.href.indexOf('?') > -1) ? '&' : '?';
		parent.location.href = window.location.href + del + 'menuid=' + menuID;
		return false;
	}
	
}




