function Zoom(sSinal)
{
	if (sSinal == '+')
	{
		document.States.iWidth.value = parseInt(document.States.iWidth.value) + ((parseInt(document.States.iWidth.value)*10)/100)
		document.States.iHeight.value = parseInt(document.States.iHeight.value) + ((parseInt(document.States.iHeight.value)*10)/100)
//			alert(document.States.iWidth.value + " - " + document.States.iHeight.value)
		document.States.submit()
	}
	if (sSinal == '-')
	{
		document.States.iWidth.value = document.States.iWidth.value - ((document.States.iWidth.value*10)/100)
		document.States.iHeight.value = document.States.iHeight.value - ((document.States.iHeight.value*10)/100)
		document.States.submit()
	}
}

function PopUp2(Janela, iLargura, iAltura)
{
	window.open(Janela, "", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=no, resizable=yes, copyhistory=no, width=" + iLargura + ", height=" + iAltura);
}

function PopUp(Janela, iLargura, iAltura)
{
	window.open(Janela, "", "toolbar=no, location=no, directories=no, status=no, menubar=no, scrollbars=yes, resizable=yes, copyhistory=no, width=" + iLargura + ", height=" + iAltura);
}

function FormatNumber(num,decimalNum,bolLeadingZero,bolParens,bolCommas)
/**********************************************************************
	IN:
		NUM - the number to format
		decimalNum - the number of decimal places to format the number to
		bolLeadingZero - true / false - display a leading zero for
										numbers between -1 and 1
		bolParens - true / false - use parenthesis around negative numbers
		bolCommas - put commas as number separators.
 
	RETVAL:
		The formatted number!
 **********************************************************************/
{ 
        if (isNaN(parseInt(num))) return "NaN";

	var tmpNum = num;
	var iSign = num < 0 ? -1 : 1;		// Get sign of number
	
	// Adjust number so only the specified number of numbers after
	// the decimal point are shown.
	tmpNum *= Math.pow(10,decimalNum);
	tmpNum = Math.round(Math.abs(tmpNum))
	tmpNum /= Math.pow(10,decimalNum);
	tmpNum *= iSign;					// Readjust for sign
	
	
	// Create a string object to do our formatting on
	var tmpNumStr = new String(tmpNum);

	// See if we need to strip out the leading zero or not.
	if (!bolLeadingZero && num < 1 && num > -1 && num != 0)
		if (num > 0)
			tmpNumStr = tmpNumStr.substring(1,tmpNumStr.length);
		else
			tmpNumStr = "-" + tmpNumStr.substring(2,tmpNumStr.length);
		
	// See if we need to put in the commas
	if (bolCommas && (num >= 1000 || num <= -1000)) {
		var iStart = tmpNumStr.indexOf(".");
		if (iStart < 0)
			iStart = tmpNumStr.length;

		iStart -= 3;
		while (iStart >= 1) {
			tmpNumStr = tmpNumStr.substring(0,iStart) + "," + tmpNumStr.substring(iStart,tmpNumStr.length)
			iStart -= 3;
		}		
	}

	// See if we need to use parenthesis
	if (bolParens && num < 0)
		tmpNumStr = "(" + tmpNumStr.substring(1,tmpNumStr.length) + ")";

	return tmpNumStr;		// Return our formatted string!
}

function ShowDetails(iReinjected, iFlyer, iLiquid, iMarket)
{
	var sHTML;
	var iReinjectedPercent, iFlyerPercent, iLiquidPercent, iMarketPercent;
	var iTotal;

	iTotal = parseFloat(iReinjected + iFlyer + iLiquid + iMarket)

	iReinjectedPercent = ((iReinjected * 100) / iTotal);
	iFlyerPercent = ((iFlyer * 100) / iTotal);
	iLiquidPercent = ((iLiquid * 100) / iTotal);
	iMarketPercent = ((iMarket * 100) / iTotal);

	iReinjected = FormatNumber(iReinjected, 2, true, false, true);
	iFlyer = FormatNumber(iFlyer, 2, true, false, true);
	iLiquid = FormatNumber(iLiquid, 2, true, false, true);
	iMarket = FormatNumber(iMarket, 2, true, false, true);
	iTotal = FormatNumber(iTotal, 2, true, false, true);

	iReinjectedPercent = FormatNumber(iReinjectedPercent, 2, true, false, true);
	iFlyerPercent = FormatNumber(iFlyerPercent, 2, true, false, true);
	iLiquidPercent = FormatNumber(iLiquidPercent, 2, true, false, true);
	iMarketPercent = FormatNumber(iMarketPercent, 2, true, false, true);

	sHTML = "<table width='100%' height='100%' border=0 cellspacing=1 cellpadding=1 bgcolor=#000000><tr><td bgcolor=#002A73 class='subtit'>";
	sHTML = sHTML + "&nbsp;Reinjected:&nbsp;" + iReinjected + " - " + iReinjectedPercent + "%";
	sHTML = sHTML + "<br>&nbsp;Flyer:&nbsp;" + iFlyer + " - " + iFlyerPercent + "%";
	sHTML = sHTML + "<br>&nbsp;Liquid:&nbsp;" + iLiquid + " - " + iLiquidPercent + "%";
	sHTML = sHTML + "<br>&nbsp;Market:&nbsp;" + iMarket + " - " + iMarketPercent + "%";
	sHTML = sHTML + "<br>&nbsp;Total:&nbsp;" + iTotal;
	sHTML = sHTML + "</td></tr></table>"

	Det.innerHTML = sHTML;
//	alert((parseInt(Det.style.top) + parseInt(Det.style.height)) + " - " + parseInt(screen.height))
	Det.style.top = parseInt(document.body.scrollTop) + parseInt(event.screenY) - (100 + parseInt(Det.style.height));
	if (((parseInt(document.body.scrollLeft) + parseInt(event.screenX) + 10) + parseInt(Det.style.width)) >= parseInt(screen.width))
		Det.style.left = parseInt(document.body.scrollLeft) + parseInt(event.screenX) - (parseInt(Det.style.width) + 10);
	else
		Det.style.left = parseInt(document.body.scrollLeft) + parseInt(event.screenX) + 10;
	Det.style.visibility = "visible"
}

function ShowObject(Obj)
{
	if (((parseInt(document.body.scrollLeft) + parseInt(event.screenX) + 40) + parseInt(eval(Obj).style.width)) >= parseInt(screen.width))
		eval(Obj).style.left = parseInt(document.body.scrollLeft) + parseInt(event.screenX) - (parseInt(eval(Obj).style.width) + 5);
	else
		eval(Obj).style.left = parseInt(document.body.scrollLeft) + parseInt(event.screenX) + 9;

	if (((parseInt(event.screenY) + 140) + parseInt(eval(Obj).style.height)) >= parseInt(screen.height))
		eval(Obj).style.top = ((parseInt(document.body.scrollTop) + parseInt(event.screenY)) - ((((parseInt(document.body.scrollTop) + parseInt(event.screenY) + 150) + parseInt(eval(Obj).style.height)) - parseInt(screen.height)) + 150)) + parseInt(document.body.scrollTop);
	else
		eval(Obj).style.top = parseInt(document.body.scrollTop) + parseInt(event.screenY) - 175;

	eval(Obj).style.visibility = "visible"
}

//This Function will Create new Options into Select inputs.
function createOptions(Nome,Valor)
{
	document.Laws.Source[document.Laws.Source.length] = new Option(Nome,Valor);
}

// This function will validate the fields in the Laws Form. 
function Validate_Law()
{
	var types;
	var category;
	var sources;
	var month;
	var day;
	var year;
	var lawnumber;
	
	types 		= document.forms[0].elements['Type'].value;
	category	= document.forms[0].elements['Category'].value;
	sources	 	= document.forms[0].elements['Source'].value;
	day			= document.forms[0].elements['Day'].value;	
	month 		= document.forms[0].elements['Month'].value;	
	year		= document.forms[0].elements['Year'].value;
	lawnumber	= document.forms[0].elements['Number'].value;
	if( types.length == 0 || category.length == 0 || sources.length == 0 || month == '0' || year == '-1' || lawnumber.length == 0 )
	{
		alert('The following fields need to filled:\n - Type\n - Category\n - Source\n - Law Number\n - Month\n - Year ');
	}
	else
	{
		if( day == '-1' )
		{
			document.forms[0].elements['Day'].value = '1';	
		}
		document.forms[0].submit();
	}
		
}

// This function will validate the fields in the Sources Form. 
function Validate_Sources()
{
	var country;
	var sourcename;
	
	country 	= document.forms[0].elements['Country'].value;
	sourcename	= document.forms[0].elements['SourceName'].value;
	if(country.length == 0 || sourcename.length == 0)
	{
		alert('Both fields are required in this Form.');
	}
	else
	{
		document.forms[0].submit();
	}
}

function MostraLayer(frmObj, Obj){
	var imgName;

	if (frmObj != null)
	{
		if (frmObj.checked)
		{
			eval(Obj).style.top = Layer0.style.top;
			eval(Obj).style.left = Layer0.style.left;
			eval(Obj).style.visibility = 'visible';
		}
		else
		{
			eval(Obj).style.top = Layer0.style.top;
			eval(Obj).style.left = Layer0.style.left;
			eval(Obj).style.visibility = 'hidden';
		}
	}
	else
	{
		eval(Obj).style.top = Layer0.style.top;
		eval(Obj).style.left = Layer0.style.left;
		eval(Obj).style.visibility == 'visible' ? (eval(Obj).style.visibility = 'hidden') : (eval(Obj).style.visibility = 'visible');
	}
}

function MoveObject(Obj)
{
	GlobalObj = Obj;
	if (move)
	{
		eval(Obj).style.left = parseInt(eval(Obj).style.left) + (event.screenX - xiM);
		eval(Obj).style.top = parseInt(eval(Obj).style.top) + (event.screenY - yiM);
		xiM = event.screenX;
		yiM = event.screenY;
	}
}

function MoveMap()
{
	if (bMoveMap)
	{
		DivMap.style.left = (parseInt(DivMap.style.left) - (parseInt(event.screenX) - parseInt(screen.width)/2));
		DivMap.style.top = (parseInt(DivMap.style.top) - (parseInt(event.screenY) - parseInt(screen.height)/2));
	}
}

function LoadImages(nLayers, sLayer)
{
	var sName;
	var i;
	var NovaImg;

	for (i = 0; i < nLayers; i++)
	{
		sName = sLayer + i;
		NovaImg = new Image();
		NovaImg.src = document.images[sName].src
	}
}

function CenterLayer(Obj, sVisibility, bLeft, bTop)
{
	if(bLeft){
		Obj.style.top = (parseInt(document.body.offsetHeight) / 2) - ((parseInt(Obj.height)/2));
	}
	if(bTop){
		Obj.style.left = (parseInt(document.body.offsetWidth) / 2) - (parseInt(Obj.width)/2);
	}
	Obj.style.visibility = sVisibility
}

function HideInfo(Obj, aObjsHide)
{
	aObjsHide = aObjsHide.split(',');

	if (eval(Obj).style.visibility == 'visible' || (!(eval(Obj).style.visibility)))
	{
		for (i = 0; i < aObjsHide.length; i++)
		{
			if (aObjsHide[i] != '')
			{
				eval(aObjsHide[i] + '.style').visibility = 'hidden';
				eval(aObjsHide[i] + '.style').position = 'absolute';
			}
		}

		eval(Obj).style.visibility = 'hidden';
		eval(Obj).style.position = 'absolute'
	}
	else
	{
		for (i = 0; i < aObjsHide.length; i++)
		{
			if (aObjsHide[i] != '')
			{
				eval(aObjsHide[i] + '.style').visibility = 'hidden';
				eval(aObjsHide[i] + '.style').position = 'absolute';
			}
		}

		eval(Obj).style.position = 'relative';
		eval(Obj).style.visibility = 'visible'
	}
}

function CorrectPosition(iLayers, sLayer, iLeft, iTop)
{
	var i;

	for (i = 0; i <= iLayers; i++)
	{
		eval(sLayer + i).style.top = parseInt(eval(sLayer + i).style.top) - iTop
		eval(sLayer + i).style.left = parseInt(eval(sLayer + i).style.left) - iLeft
		eval(sLayer + i).style.visibility = "visible";
	}
}

//Show the menu items
function ShowMenu(Layer, Obj)
{
	eval(Layer).style.left = parseInt(eval(Obj)[1]) + parseInt(document.body.scrollLeft);
	eval(Layer).style.top = parseInt(document.body.scrollTop);
	eval(Layer).style.visibility = "visible"
}

function Timer(iTime, Layer)
{
	setTimeout('HideMenu(' + Layer + ', 1)', iTime);
}

//Hide the menu items
function HideMenu(Layer, n)
{
	if (n == "")
		Timer(500, Layer)
	else
	{
//		if (!(parent.frames['topMenu'].menuOpen))
//		{
			eval(Layer).style.visibility = "hidden";
//		}
	}
}

function CloseMenu(i)
{
	var j;

	for (j = 0; j < i; j++)
	{
//		alert(parent.frames['topMenu'].aOpenedMenu[j]);
		if (parent.frames['topMenu'].aOpenedMenu[j] != '')
		{
			HideMenu(parent.frames['topMenu'].aOpenedMenu[j], '1');
//			parent.frames['topMenu'].iOpenedMenu = 0;
		}
	}
}

function CloseSubMenu(i)
{
	var j;

	for (j = 0; j < i; j++)
	{
		if (aOpenedSubMenu[j] != '')
		{
			HideMenu(aOpenedSubMenu[j], '');
			iOpenedSubMenu = 0;
		}
	}
}

//Show the menu sub-items
function SubMenu(Layer, Obj, iLevel)
{
	var i, iTop, iIndex;

	eval(Layer).style.left = (131);

	iTop = 0;
	iIndex = 0;

	
	for (i = 1; i <= iLevel; i++)
	{
		iTop = parseInt(((Layer.substr((parseInt(Layer.indexOf("_", iIndex)) + 1), Layer.length) - 1))) * (21);
		iIndex = parseInt(Layer.indexOf("_", iIndex)) + 1;
	}
	eval(Layer).style.top = parseInt(iTop);
	eval(Layer).style.visibility = (eval(Layer).style.visibility == "visible") ? "hidden" : "visible"
}

//Changes de background color of the menu items
function ChangeColor(Obj)
{
	Obj.style.background = (Obj.style.background == "#205aa7") ? "#5288c9" : "#205aa7"
}

function ChangeColorAdmin(Obj)
{
	Obj.style.background = (Obj.style.background == "#edf0f5") ? "#ffffff" : "#edf0f5"
}

//Validates the choosen Year in Tables
function Validate_Date(formName){
	var iYearInit = document.forms[formName].elements['iYearInit'].value;
	var iYearEnd = document.forms[formName].elements['iYearEnd'].value;
	if(iYearInit > iYearEnd){
		alert('The first year must be smaller than the last year.');
	}	
	else
	{
		eval('document.' + formName + '.submit();');
	}
}

function sumTariffs(Id_Company)
{
	var fSum;

//	alert('Fuel_1_' + Id_Company)
	fSum = parseFloat(document.PetroTariffs.elements['Fuel_1_' + Id_Company].value) + parseFloat(document.PetroTariffs.elements['Fuel_2_' + Id_Company].value);
	document.PetroTariffs.elements['Total_' + Id_Company].value = fSum;
	document.PetroTariffs.elements['Total_' + Id_Company].value = document.PetroTariffs.elements['Total_' + Id_Company].value.substring(0, parseInt(document.PetroTariffs.elements['Total_' + Id_Company].value.indexOf(".")) + 3);
}

function ShowComments(num){
	var i;
	num = parseInt(num);
	for(i=1;i <= 20; i++){
		eval('trComment_' + i + '.style.visibility = \'hidden\'');
		eval('trComment_' + i + '.style.position = \'absolute\'');
	}
	for(i=1;i <= num; i++){
		eval('trComment_' + i + '.style.visibility = \'visible\'');
		eval('trComment_' + i + '.style.position = \'relative\'');
	}
	for (i = num + 1; i<=20; i++){
		eval('document.forms[0].NewComment_' + i + '.value = \'\'');
	}
}

function ValidateSource(choice){
	var Sources = document.forms['Sources'].elements['Sources'].value;
	var NewSource = document.forms['Sources'].elements['NewSource'].value;
	if(choice == 'Insert'){
		if(NewSource.length == 0)
			alert('Please specify the new source\'s name');
		else
			document.forms['Sources'].submit();
	}
	else{
		if(choice == 'Delete'){
			if(Sources.length == 0)
				alert('Please select at least one source to be deleted');
			else
				document.forms['Sources'].submit();
		}
	}
}

function ClearSelect(ObjName){
	var i;
	for(i = 0; i < eval(ObjName).length; i++){
		eval(ObjName).options[i].selected = false;
	}
}
