// JavaScript Document


//constants

var cstrManutencao = 'Erro/Manutencao.htm';

var cimgMenuOff = 'imgMenuOff.gif';
var cimgMenuOn = 'imgMenuOn.gif';
var cimgMenuTop = 'imgMenuTop.gif';
var cimgMenuMiddle = 'imgMenuMiddle.gif';
var cimgMenuBottom = 'imgMenuBottom.gif';
var cstrMenuOffClass = 'LinkMenu';
var cstrMenuOnClass = 'LinkMenuOn';

var cstrDefaultFlag = 'EN';
var cstrDefaultJan = 'Blank.htm'


//global variables

var gstrSelFlag = QueryStringItem('Lang');
var gstrUrl;


function QueryStringItem(pstrItem, pobjPage)
{
	if (!pobjPage) pobjPage = this;
	
	if (pobjPage.document.location.toString().indexOf('?') == -1) return null;
	
	var strQueryString = pobjPage.document.location.toString().split('?')[1];
	
	var arrItems = strQueryString.split('&');
	for (i = 0; i < arrItems.length; i++)
	{
		if (arrItems[i].indexOf('=') == -1) continue;
		
		var arrItem = arrItems[i].split('=');
		if (arrItem.length > 2) continue;
		if (arrItem[0] == pstrItem) return arrItem[1];
	}
	return null;
}

function TraduzirPagina(pobjPage, pstrDir)
{
	if (!pstrDir) pstrDir = '';
	
	var objDocument = pobjPage.document;
	var strXml = 'xml/Traducao/' + objDocument.getElementsByTagName('Title')[0].innerHTML + '.xml';
	
	var objXml = xmlLoader(strXml);
	
	var objLabel;
	
	var fnCarregador = function(pxml, i)
	{
		objLabel = objDocument.getElementById(pxml.nodeName);
		if (objLabel)
			objLabel.innerHTML = pxml.firstChild.nodeValue;
		return i;
	}
	
	BuscaDados(fnCarregador, objXml, 'Traducao,' + gstrSelFlag);
}

function Manutencao(pobjPage)
{
	pobjPage.location = cstrManutencao;
}

function ReplaceAll(strText, strOld, strNew)
{
	if (strOld != strNew)
		while(strText.indexOf(strOld) > -1) strText = strText.replace(strOld, strNew);
	
	return strText;
}

function xmlLoader(url)
{
	if(window.ActiveXObject)
	{
		//Internet Explorer
        var Loader = new ActiveXObject("Msxml2.DOMDocument.3.0");
        Loader.async = false;
        Loader.load(url);
        return Loader;
    }
    else if(window.XMLHttpRequest)
	{
		//Firefox, Opera...
        var Loader = new XMLHttpRequest();
        Loader.open("GET", url ,false);
        Loader.send(null);
        return Loader.responseXML;
    }
}

function BuscaDados(pfnCarregador, pxml, pstrTags)
{
	var blnRetorno = false;
	
	if (pstrTags == null) pstrTags = '';
	
	var strTag = pstrTags.split(',')[0];
	
	if (pstrTags.indexOf(',') != -1)
		pstrTags = pstrTags.substring(pstrTags.indexOf(',') + 1);
	else
		pstrTags = '';
	
	for (i = 0; i < pxml.childNodes.length; i++)
	{
		if (pxml.childNodes[i].nodeType == 1)
		{
			if (strTag != '')
			{
				if (pxml.childNodes[i].nodeName == strTag)
				{
					return BuscaDados(pfnCarregador, pxml.childNodes[i], pstrTags);
				}
			}
			else
			{
				i = pfnCarregador(pxml.childNodes[i], i);
				blnRetorno = true;
			}
		}
	}
	return blnRetorno;
}

function CarregaNode(pxml, nodeName)
{
	if (pxml.nodeName == nodeName) return pxml.firstChild.nodeValue;
}



/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////



function MontaSemiHTML()
{
	var xmlSemiHTML = xmlLoader('xml/SemiHTML.xml');
	//xmlSemiHTML = xmlSemiHTML.childNodes[0];
	
	var strMainFlag = null;
	var strUnselected = null;
	var strSelected = null;
	
	var strMainMenu = null;
	var strMenuItem = null;
	var strMenuBlank = null;
	
	var fnCarregaFlags = function(pxml, i)
	{
		if (pxml.nodeName == 'Main')
			strMainFlag = pxml.firstChild.nodeValue;
		else if (pxml.nodeName == 'Unselected')
			strUnselected = pxml.firstChild.nodeValue;
		else if (pxml.nodeName == 'Selected')
			strSelected = pxml.firstChild.nodeValue;
		return i;
	}
	
	var fnCarregaMenu = function(pxml, i)
	{
		if (pxml.nodeName == 'Main')
			strMainMenu = pxml.firstChild.nodeValue;
		else if (pxml.nodeName == 'MenuItem')
			strMenuItem = pxml.firstChild.nodeValue;
		else if (pxml.nodeName == 'MenuBlank')
			strMenuBlank = pxml.firstChild.nodeValue;
		return i;
	}
	
	BuscaDados(fnCarregaFlags, xmlSemiHTML, 'SemiHTML,Flags');
	BuscaDados(fnCarregaMenu, xmlSemiHTML, 'SemiHTML,Menu');
	
	BuscaIdioma();
	
	MontaFlags(strMainFlag, strSelected, strUnselected);
	
	MontaMenu(strMainMenu, strMenuItem, strMenuBlank);
}

function BuscaIdioma()
{
	var xmlFlags = xmlLoader('xml/Flags.xml');
	//xmlFlags = xmlFlags.childNodes[0];
	
	var fnCarregador = function(pxml, i){return i;}
	
	if (gstrSelFlag)
	{
		if (BuscaDados(fnCarregador, xmlFlags, 'Flags,' + gstrSelFlag)) return;
	}
	
	var strNavLang = (navigator.language ? navigator.language : navigator.userLanguage).substring(0, 2).toUpperCase();
	if (BuscaDados(fnCarregador, xmlFlags, 'Flags,' + strNavLang))
	{
		gstrSelFlag = strNavLang;
		return;
	}
	
	gstrSelFlag = cstrDefaultFlag;
	return;
}

function MontaFlags(pstrMain, pstrSelected, pstrUnselected)
{
	var xmlFlags = xmlLoader('xml/Flags.xml');
	//xmlFlags = xmlFlags.childNodes[0];
	
	var strFlags = '';
	
	var strName;
	var strImagemS;
	var strImagemU;
	var strImagemM;
	var strAltText;
	
	var fnCarregaDados = function(pxml, i)
	{
		if (pxml.nodeName == 'Name')
			strName = pxml.firstChild.nodeValue;
		if (pxml.nodeName == 'ImagemS')
			strImagemS = pxml.firstChild.nodeValue;
		if (pxml.nodeName == 'ImagemU')
			strImagemU = pxml.firstChild.nodeValue;
		if (pxml.nodeName == 'ImagemM')
			strImagemM = pxml.firstChild.nodeValue;
		if (pxml.nodeName == 'AltText')
			strAltText = pxml.firstChild.nodeValue;
		return i;
	}
	
	var fnCarregaFlags = function(pxml, i)
	{
		var strFlag;
		
		strName = '';
		strImagemS = '';
		strImagemU = '';
		strImagemM = '';
		strAltText = '';
		BuscaDados(fnCarregaDados, pxml);
		if (strName == gstrSelFlag)
		{
			strFlag = ReplaceSel(pstrSelected, strImagemS, strAltText);
		}
		else
		{
			strFlag = ReplaceUnSel(pstrUnselected, strImagemU, strImagemM, strAltText, strName);
		}
		strFlags += strFlag;
		return i;
	}
	
	BuscaDados(fnCarregaFlags, xmlFlags, 'Flags');
	
	document.getElementById('divFlags').innerHTML = ReplaceAll(pstrMain, '@@FLAGS@@', strFlags)
}

function ReplaceSel(pstrSelected, pstrImagemS, pstrAltText)
{
	return ReplaceAll(ReplaceAll(pstrSelected, '@@IMAGEMS@@', pstrImagemS), '@@ALTTEXT@@', pstrAltText);
}

function ReplaceUnSel(pstrUnselected, pstrImagemU, pstrImagemM, pstrAltText, pstrName)
{
	return ReplaceAll(ReplaceAll(ReplaceAll(ReplaceAll(pstrUnselected, '@@IMAGEMU@@', pstrImagemU), '@@IMAGEMM@@', pstrImagemM), '@@ALTTEXT@@', pstrAltText), '@@NAME@@', pstrName);
}

function MontaMenu(pstrMain, pstrMenuItem, pstrMenuBlank)
{
	var vxml = xmlLoader('xml/Menu.xml');
	//vxml = vxml.childNodes[0];
	
	var strJanela = QueryStringItem('Janela');
	var objFrame = document.getElementById('ifrHome');
	
	var intMenuIndex = 0;
	
	var strText;
	var strUrl;
	
	var strMenuItens = '';
	
	var intContItens = 0;
	
	var fnCarregaDados = function(pxml, i)
	{
		if (pxml.nodeName == 'text')
			strText = pxml.firstChild.nodeValue;
		if (pxml.nodeName == 'url')
			strUrl = pxml.firstChild.nodeValue;
		return i;
	}
	
	var fnCarregaMenuItens = function(pxml, i)
	{
		var strMenuItem;
		
		strText = '';
		strUrl = '';
		BuscaDados(fnCarregaDados, pxml);
		if (strUrl == 'null')
		{
			strMenuItem = pstrMenuBlank;
		}
		else
		{
			strMenuItem = ReplaceAll(ReplaceAll(ReplaceAll(pstrMenuItem, '@@URL@@', strUrl), '@@TEXT@@', strText), '@@MENUINDEX@@', intMenuIndex);
			intMenuIndex++;
			if (strUrl == strJanela)
			{
				strMenuItem = ReplaceAll(strMenuItem, '@@MENUIMAGE@@', cimgMenuOn)
				objFrame.src = strUrl;
			}
			else
			{
				strMenuItem = ReplaceAll(strMenuItem, '@@MENUIMAGE@@', cimgMenuOff)
			}
		}
		strMenuItens += strMenuItem;
		intContItens++;
		return i;
	}
	
	BuscaDados(fnCarregaMenuItens, vxml, 'Menu,' + gstrSelFlag);
	
	document.getElementById('lblMenu').innerHTML = 
		ReplaceAll(ReplaceAll(pstrMain, '@@MENUITENS@@', strMenuItens), 
	                                    '@@LARGURA@@', Math.round(100/(intContItens > 0 ? intContItens : 1)).toString() + '%');
	
	if (!objFrame.src) objFrame.src = cstrDefaultJan;
}

function MenuClick(Menu)
{
	SetAllMenuOff();
	SetMenuOn(Menu);
}

function SetAllMenuOff()
{
	var intMenuIndex = 0;
	var objMenuItem;
	
	while(objMenuItem = document.getElementById('lnkMenuItem' + intMenuIndex++))
	{
		objMenuItem.className = cstrMenuOffClass;
	}
}

function SetMenuOn(Menu)
{
	document.getElementById('lnkMenuItem' + Menu).className = cstrMenuOnClass;
}