//Main menu declaration (JSON)
var currSelId;
var mainMenu = new Array();
mainMenu['m1'] = {
	xmlUrl:	'data/page1.xml',
	xslUrl:	'content.xsl',
	enableGalleryEngine: false};
mainMenu['m2'] = {
	xmlUrl:	'data/page2.xml',
	xslUrl:	'content.xsl',
	enableGalleryEngine: true};
mainMenu['m3'] = {
	xmlUrl:	'data/page3.xml',
	xslUrl:	'content.xsl',
	enableGalleryEngine: true};
mainMenu['m4'] = {
	xmlUrl:	'data/page4.xml',
	xslUrl:	'content.xsl',
	enableGalleryEngine: false};
//Menu functions
function getCurrSelectedId(){
	var iniSelId = getParamFromUrl(location.href, 'show');
	if (iniSelId == ''){iniSelId = 'm2'};
	return iniSelId.toLowerCase();
};
function showTabContent(HTML){
	//alert(HTML);
	var container = $('dataContainer');
	if (container){
		if (HTML == '$load_indicator'){HTML = '<img src="img/load.gif" alt="loading..." >'};
		container.innerHTML = HTML;
	};
};
function selectMenuItem(id, activate, doAlways){
	var obj=$(id);
	if (obj && (doAlways || id!=currSelId)){
		if (activate){
			obj.className = "menuItemSel";
		} else {
			obj.className = "menuItem";
		};
	};
};
function switchTab(id, doAlways){
	if (doAlways || id!=currSelId){
		showTabContent('$load_indicator');
		selectMenuItem(currSelId, false, true);
		selectMenuItem(id, true, true);
		currSelId = id;
		showTabContent(doXSLT(mainMenu[id].xmlUrl, mainMenu[id].xslUrl));
		if (mainMenu[id].enableGalleryEngine){initLightbox()};
	};
};

//Common functions
function $(id){return document.getElementById(id)};
function getParamFromUrl(urlstr, keystr){
	var returnstr = '';
	if (urlstr.indexOf(keystr+'=') != -1){
		returnstr = urlstr.substring(urlstr.indexOf(keystr+'=')+keystr.length+1,urlstr.length);
		var endPos = returnstr.indexOf('&');
		if (endPos == -1){endPos = returnstr.length}
		returnstr = returnstr.substring(0, endPos);
	};
	return returnstr;
};
function setMaxWidth(id){
	var obj=$(id);
	if (obj){
		
		obj.style.width = (screen.availWidth - 170)
		
	};
};
// XMLHTTP request function(Ajax)
function doXMLHttpRequest(url, returnFunc){
	var xmlHttp = false;		// Create xmlHttp object
	
	// Set xmlHttp object value - Microsoft browsers approach
	try {
		xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
	} catch (e) {
		try {xmlHttp = new ActiveXObject("Microsoft.XMLHTTP")}
		catch (e2) {xmlHttp = false	};
	};

	// Set xmlHttp object value - Non-Microsoft browsers approach (FireFox, Opera, ...)
	if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {xmlHttp = new XMLHttpRequest()};

	xmlHttp.open("GET", url, true);
	xmlHttp.onreadystatechange = function(){
		if (xmlHttp.readyState == 4){
			returnFunc(xmlHttp.responseText);
		};
	};
	xmlHttp.send(null);
};
// XML Functions
function loadXML(XMLPath){
	var xmlDoc = false;
	//load xml file
	if (window.ActiveXObject){
		// code for IE
		xmlDoc = new ActiveXObject("Microsoft.XMLDOM");
		xmlDoc.async=false;
		xmlDoc.load(XMLPath);
		return xmlDoc;
	}else if (document.implementation && document.implementation.createDocument){
		try{// code for Mozilla, etc.
			xmlDoc= document.implementation.createDocument("","",null);
			xmlDoc.async=false;
			xmlDoc.load(XMLPath);
			return xmlDoc;
		}catch(err){
			try{
				xmlDoc = new XMLHttpRequest();                       
				xmlDoc.open("GET", XMLPath, false);                        
				xmlDoc.send();                        
				xmlDoc=xmlDoc.responseXML;
				return xmlDoc;
			}catch(e){
				//alert(XMLPath)
				//alert(e);
			}
		}
	}else{
		alert('Your browser cannot handle this script');
	};
};
function doXSLT(xmlDocPath, xslDocPath) {
	var xmlDoc = loadXML(xmlDocPath);	// Load XML
	var xslDoc = loadXML(xslDocPath);	// Load XSL
	
	if (typeof ActiveXObject != 'undefined') {
		// code for IE
		return xmlDoc.transformNode(xslDoc);
	} else {
		// code for Mozilla, etc.
		var xslt = new XSLTProcessor();
		var xmls = new XMLSerializer();
		xslt.importStylesheet(xslDoc);
		return xmls.serializeToString(xslt.transformToDocument(xmlDoc));
	};
};
//Page event - onLoad
function doOnLoad(){
	setMaxWidth('dataContainer');		//set max width of the screen (for ms explorer)
	currSelId = getCurrSelectedId();	//set global variable
	switchTab(currSelId, true)			//switch to initial Tab
};	
