/*
#######################################
Calculadora de Imposto
#######################################
*/

function addValue() {
	var valor = document.getElementById("valor");
	if (valor != null) {
		var valorValue = to_number(valor.value);
		valor.value = format_number(valorValue, 2);
		if (valorValue > 0) {
			var total = document.getElementById("total");
			if (total != null) {
				var totalValue = to_number(total.value);
				if (totalValue > 0) {
					totalValue = totalValue + valorValue;
					total.value = format_number(totalValue, 2);
				} else {
					total.value = format_number(valorValue, 2);
				}
			}
		}
		var resumo = document.getElementById("resumo");
		if (resumo != null) {
			if(resumo.value.length > 0) {
				resumo.value += "\n";
				resumo.value += "+";
				resumo.value += "\n";
			}
			resumo.value += format_number(valorValue, 2);
		}
	}
	calculate_tax();
	calculate_total();
	if (valor != null) {
		valor.value = "";
		valor.focus();
	}
}

function to_number(strvalue) {
	if (strvalue=='') { 
		return 0;
	}
	if (isNaN(strvalue)) {
		strvalue = strvalue.replace(/,/, ".");
		strvalue *= 1;
		if (isNaN(strvalue)) {
			return 0
		}
	} else {
		strvalue *= 1;
	}
	return strvalue;
}
function format_number(pnumber,decimals){
	if (pnumber=='') { 
		return "0,00";
	}
	if (isNaN(pnumber)) {
		return "0,00";
	}

	var snum = new String(pnumber);
	var sec = snum.split('.');
	var whole = parseFloat(sec[0]);
	var result = '';

	if(sec.length > 1){
		var dec = new String(sec[1]);
		dec = String(parseFloat(sec[1])/Math.pow(10,(dec.length - decimals)));
		dec = String(whole + Math.round(parseFloat(dec))/Math.pow(10,decimals));
		var dot = dec.indexOf('.');
		if(dot == -1){
			dec += ','; 
			dot = dec.indexOf(',');
		} else {
			dec = dec.replace(".", ",");
		}
		while(dec.length <= (dot + decimals)) {
			dec += '0'; 
		}
		result = dec;
	} else{
		var dot;
		var dec = new String(whole);
		dec += ',';
		dot = dec.indexOf(',');
		while(dec.length <= (dot + decimals)) {
			dec += '0';
		}
		result = dec;
	}	
	return result;
}

function calculate_tax() {
	var totalObj = document.getElementById("total");
	var total = to_number(totalObj.value);
	var cotaObj = document.getElementById("cota");
	var cota = to_number(cotaObj.value);
	var declaracaoObj = document.getElementById("declaracao");
	var imposto = to_number("0,00");
	if ((total - cota) > 0) {
		if (declaracaoObj.checked) {
			imposto = (total - cota) * 0.50;
		} else {
			imposto = (total - cota) * 1.00;
		}
	}
	var impostoObj = document.getElementById("imposto");
	impostoObj.value = format_number(imposto, 2);
}
function calculate_total() {
	var generalObj = document.getElementById("geral");
	var totalObj = document.getElementById("total");
	var impostoObj = document.getElementById("imposto");
	var total = to_number(totalObj.value);
	var imposto = to_number(impostoObj.value);
	generalObj.value = format_number((total + imposto), 2);
}

function clear_all() {
	document.getElementById("valor").value = "";
	document.getElementById("imposto").value = "";
	document.getElementById("geral").value = "";
	document.getElementById("resumo").value = "";
	document.getElementById("total").value = "";
}




/*
#######################################
Calculadora de Medidas
#######################################
*/

function DoConvertion()
{
	var eleUnits;
	var eleUnitType;
	var eleResult;
	var Units =0;
	var UnitType='';
	var unit = 0;

	eleUnits = document.getElementById("Units");
	eleUnitType = document.getElementById("UnitType");
	eleResult = document.getElementById("Result");

	if (eleUnits != null) 
		Units =  eleUnits.value;

	if (eleUnitType != null) 
		UnitType = eleUnitType.value;

	switch(UnitType)
	{
		case "flMl" :
			unit = 29.5735296875;
			break;

		case "GalLi" :
			unit = 3.7854;
			break;

		case "IncCm" :
			unit = 2.540;
			break;

		case "FooCm" :
			unit = 30.48;
			break;

		case "FooMt" :
			unit = 0.3048;
			break;

		case "YarMt" :
			unit = 0.9144;
			break;

		case "MilMt" :
			unit = 1609.344;
			break;

		case "MilKm" :
			unit = 1.609344;
			break;

		case "OunGr" :
			unit = 28.3495;
			break;

		case "LibKi" :
			unit = 453.6;
			break;
			
		case "CmInc" :
			unit = 0.393700787;
			break;
			
	}

	if ((unit != 0) && (Units != 0))
		eleResult.value = (Units * unit);
}



/*
#######################################
Generic
#######################################
*/
function toggleLayer(whichLayer,parentLink)
{
	var elem, elemParent, vis; 
	var parentPos;
	
	if( document.getElementById ) // this is the way the standards work
	{
		elem = document.getElementById( whichLayer );
		elemParent = document.getElementById( parentLink );
	}
	else if( document.all ) // this is the way old msie versions work
	{
		elem = document.all[whichLayer];
		elemParent = document.all[parentLink];
	}
	else if( document.layers ) // this is the way nn4 works
		elem = document.layers[whichLayer];
	vis = elem.style;
	
	parentPos =  findPosition(elemParent)
	
	elem.style.left = parentPos[0] +'px';   //X postion
	elem.style.top = (parentPos[1] + 24) +'px';  //Y position

	// if the style.display value is blank we try to figure it out here
	if(vis.display==''&&elem.offsetWidth!=undefined&&elem.offsetHeight!=undefined)
		vis.display = (elem.offsetWidth!=0&&elem.offsetHeight!=0)?'block':'none';
	vis.display = (vis.display==''||vis.display=='block')?'none':'block';
}



function findPosition( oElement ) {
  if( typeof( oElement.offsetParent ) != 'undefined' ) {
    for( var posX = 0, posY = 0; oElement; oElement = oElement.offsetParent ) {
      posX += oElement.offsetLeft;
      posY += oElement.offsetTop;
    }
    return [ posX, posY ];
  } else {
    return [ oElement.x, oElement.y ];
  }
}



