var Aparelho   = new Array();  // nome do aparelho
var Quantidade = new Array();  // quantidade destes aparelhos
var Potencia   = new Array();  // potência do aparelho
var Horas      = new Array();  // número de horas do tempo de uso
var Minutos    = new Array();  // número de minutos do tempo de uso
var Frequencia = new Array();  // frequência de uso (diária, etc)
var Ativo      = new Array();  // considerar este aparelho ou não

var AparelhoAtual = 0;         // índice do aparelho clicado

// lista dos valores válidos para potência
var PotenciasValidas = [5, 15, 25, 40, 50, 60, 90, 100, 150, 200, 250, 300, 350, 400, 500, 600, 700, 1000, 1200, 1500, 2000, 4000, 4200, 4500, 5000];

function Imp(txt) {
	document.write(txt);
}

// cadastra um aparelho e seus dados
function Cadastra(i, ap, quant, pot, h, m, freq) {
	Aparelho[i]   = unescape(ap);
	Quantidade[i] = quant;
	Potencia[i]   = unescape(pot);
	Horas[i]      = h;
	Minutos[i]    = m;
	Frequencia[i] = unescape(freq);
	Ativo[i]      = false;
}

// imprime tabela de aparelhos e seus dados
function ImprimeListaAparelhos() {
	var metade = Math.floor(Aparelho.length / 2);
	Imp("<table width='100%' style='font-size:10px;'><tr>");
	Imp("<td>");
	for (i = 1; i <= metade; i++) {
		Imp("<a href='javaScript:Click(" + i + ")' name='aparelho" + i + "' style='text-decoration: none; color: aeaeae;'>" + Aparelho[i] + "</a><br>");
	}		
	Imp("</td>")
	Imp("<td>")
	for (i = metade + 1; i <= Aparelho.length - 1; i++) {
		Imp("<a href='javaScript:Click(" + i + ")' name='aparelho" + i + "' style='text-decoration: none; color: aeaeae;'>" + Aparelho[i] + "</a><br>");
	}		
	Imp("</tr></table>")
}

// mapeamento entre dias e frequência de uso
function NomeFrequencia(f) {
	if (f == 30) return unescape(("Di%E1rias"))
	if (f == 4)  return ("Semanal")
	if (f == 1)  return ("Mensal")
	return (f)
}

// preenche o form com os dados do aparelho clicado
function Click(i) {
	AparelhoAtual = i;
	document.form_aparelho.aparelho.value = Aparelho[i];
	document.form_aparelho.quantidade.value = Quantidade[i];
	document.form_aparelho.potencia.value = Potencia[i];
	document.form_aparelho.horas.value = Horas[i];
	if (Minutos[i] < 10) 
		document.form_aparelho.minutos.value = "0" + Minutos[i];
	else
		document.form_aparelho.minutos.value = Minutos[i];

	document.form_aparelho.frequencia.value = NomeFrequencia(Frequencia[i]);

	// trocar imagem do aparelho
	Ativo[i] = !Ativo[i];
	if (Ativo[i]) {
		eval("document.all.i"+ i + ".src = 'imgs/i" + i + "_colorido.gif'");
	} else {
		document.form_aparelho.aparelho.value = "";
		document.form_aparelho.quantidade.value = "";
		document.form_aparelho.potencia.value = "";
		document.form_aparelho.frequencia.value = "";
		document.form_aparelho.horas.value = "";
		document.form_aparelho.minutos.value = "";
		eval("document.all.i"+ i + ".src = 'imgs/i" + i + "_cinza.gif'");
	}
	SomaTudo();
}

function Over(i) {
	//document.form_aparelho.aparelho.value = Aparelho[i];
}

function Out(i) {
	//document.form_aparelho.aparelho.value = "";
}

// calcula o consumo total
function SomaTudo() {
	var total = 0;
	var subtotal = 0;
	for (i = 1; i <= Aparelho.length; i++) {
		if (Ativo[i]) {
			subtotal = Quantidade[i] * Potencia[i] * (Horas[i] + (Minutos[i] / 60)) * Frequencia[i] / 1000;
			total = total + subtotal;
		}
	}
	document.form_aparelho.total.value = Math.round(total);
}

// calcula o consumo total
function DesmarcaTudo() {
	for (i = 1; i < Aparelho.length; i++) {
		Ativo[i] = false;
		eval("document.all.i"+ i + ".src = 'imgs/i" + i + "_cinza.gif'");
	}
	document.form_aparelho.reset();
}


// procura o elemento dentro de vetor e retorna seu indice (0 based)
function Find(vetor, elemento) {
	for (var i = 0; i < vetor.length; i++) {
		if (vetor[i] == elemento) {
			return (i)
		}
	}
	return (-1)
}

function AumentaQuantidade() {
	if (AparelhoAtual > 0) {
		Quantidade[AparelhoAtual] =	document.form_aparelho.quantidade.value * 1 + 1;
		document.form_aparelho.quantidade.value = Quantidade[AparelhoAtual];
		SomaTudo();
	}
}

function DiminuiQuantidade() {
	if (AparelhoAtual > 0) {
		var atual = document.form_aparelho.quantidade.value * 1;
		if (atual > 0) {
			Quantidade[AparelhoAtual] =	atual - 1;
			document.form_aparelho.quantidade.value = Quantidade[AparelhoAtual];
			SomaTudo();
		}
	}
}

function AumentaPotencia() {
	if (AparelhoAtual > 0) {
		var atual = document.form_aparelho.potencia.value;
		var i = Find(PotenciasValidas, atual);
		if ((i > -1) && (i < PotenciasValidas.length - 1)) {
			Potencia[AparelhoAtual] = PotenciasValidas[i+1];
			document.form_aparelho.potencia.value = Potencia[AparelhoAtual];
			SomaTudo();
		}
	}
}

function DiminuiPotencia() {
	if (AparelhoAtual > 0) {
		var atual = document.form_aparelho.potencia.value;
		var i = Find(PotenciasValidas, atual);
		if (i > 0) {
			Potencia[AparelhoAtual] = PotenciasValidas[i-1];
			document.form_aparelho.potencia.value = Potencia[AparelhoAtual];
			SomaTudo();
		}
	}
}

function AumentaHoras() {
	if (AparelhoAtual > 0) {
		Horas[AparelhoAtual] = document.form_aparelho.horas.value * 1 + 1;
		document.form_aparelho.horas.value = Horas[AparelhoAtual];
		SomaTudo();
	}
}

function DiminuiHoras() {
	if (AparelhoAtual > 0) {
		var atual = document.form_aparelho.horas.value * 1;
		if (atual > 0) {
			Horas[AparelhoAtual] = atual  - 1;
			document.form_aparelho.horas.value = Horas[AparelhoAtual];
			SomaTudo();
		}
	}
}

function Padding(valor) {
	if (valor < 10)	return "0" + valor
	return valor
}

function AumentaMinutos() {
	if ((AparelhoAtual > 0) && (Minutos[AparelhoAtual] < 55)) {
		Minutos[AparelhoAtual] = document.form_aparelho.minutos.value * 1 + 5;
		document.form_aparelho.minutos.value = Padding(Minutos[AparelhoAtual]);
		SomaTudo();
	}
}

function DiminuiMinutos() {
	if (AparelhoAtual > 0) {
		var atual = document.form_aparelho.minutos.value * 1;
		if (atual > 0) {
			Minutos[AparelhoAtual] = atual - 5;
			document.form_aparelho.minutos.value = Padding(Minutos[AparelhoAtual]);
			SomaTudo();
		}
	}
}

function AumentaFrequencia() {
	if (AparelhoAtual > 0) {
		var atual = Frequencia[AparelhoAtual];
		if (atual == 1) Frequencia[AparelhoAtual] = 4;
		if (atual == 4) Frequencia[AparelhoAtual] = 30;
		document.form_aparelho.frequencia.value = NomeFrequencia(Frequencia[AparelhoAtual]);
		SomaTudo();
	}
}

function DiminuiFrequencia() {
	if (AparelhoAtual > 0) {
		var atual = Frequencia[AparelhoAtual];
		if (atual == 30) Frequencia[AparelhoAtual] = 4;
		if (atual == 4)  Frequencia[AparelhoAtual] = 1;
		document.form_aparelho.frequencia.value = NomeFrequencia(Frequencia[AparelhoAtual]);
		SomaTudo();
	}
}

function Popup() {
	// verificar se há pelo menos 1 aparelho selecionado
	ok = false;
	for (var i = 1; i < Aparelho.length; i++) {
		if (Ativo[i]) {
			ok = true;
			break;
		}
	}
	if (ok) {
		popup = window.open('/html/popupestimativa.htm', 'popuplista', 'width=480, height=500, status=no, menubar=no, toolbar=no, resizable=yes, scrollbars=yes');
	} else {
		alert("Selecione pelo menos um aparelho")
	}
}

function Conta(){
	//opener.location="index_ai.cfm?Conteudo_ID=333";
	popup = window.open('http://agenciavirtual.aeseletropaulo.com.br/show_form.cfm?page=portal/calcula_conta_js.cfm','popupconta','width=500, height=500, status=no, menubar=no, toolbar=no, resizable=yes, scrollbars=yes');
}  

Cadastra(1,  "V%EDdeo-cassete",               1,   25,  2,  0, 30);
Cadastra(2,  "Televis%E3o",                   1,  100,  6,  0, 30);
Cadastra(3,  "Aparelho de som",             1,  100,  2,  0, 30);
Cadastra(4,  "L%E2mpada incandescente (60W)", 1,   60,  6,  0, 30);
Cadastra(5,  "Ar-condicionado",             1, 1000,  6,  0, 30);
Cadastra(6,  "DVD",                         1,   30,  2,  0, 30);
Cadastra(7,  "Microondas",                  1, 1200,  0, 30, 30);
Cadastra(8,  "Liquidificador",              1,  350,  1,  0, 30);
Cadastra(9,  "Batedeira",                   1,  100,  6,  0,  4);
Cadastra(10, "Torradeira",                  1, 1000,  2,  0,  4);
Cadastra(11, "Geladeira",                   1,  250,  6,  0, 30);
Cadastra(12, "Freezer",                     1,  250,  6,  0, 30);
Cadastra(13, "Torneira el%E9trica",           1,  400,  1,  0, 30);
Cadastra(14, "Lava-lou%E7a",                  1, 1200,  1,  0, 30);
Cadastra(15, "Forno el%E9trico",              1, 2000,  1,  0, 30);
Cadastra(16, "L%E2mpada fluorescente",        1,   40,  6,  0, 30);
Cadastra(17, "Ferro de passar",             1, 1000,  1,  0, 30);
Cadastra(18, "Aspirador de p%F3",             1,  700,  4,  0,  4);
Cadastra(19, "Secadora de roupa",           1,  800,  1,  0, 30);
Cadastra(20, "M%E1quina de lavar roupa",      1,  600,  1,  0, 30);
Cadastra(21, "Secador de cabelo",           1, 1000,  2,  0,  4);
Cadastra(22, "Chuveiro el%E9trico",           1, 4200,  1,  0, 30);
Cadastra(23, "Barbeador",                   1,   50,  0, 10, 30);
Cadastra(24, "Aquecedor central (boiler)",  1, 2000,  1,  0, 30);
Cadastra(25, "L%E2mpada incandescente (100W)",1,  100,  6,  0, 30);
Cadastra(26, "Ventilador de teto",          1,  250,  6,  0, 30);
Cadastra(27, "Aquecedor",                   1, 1500,  1,  0, 30);
Cadastra(28, "Computador",                  1,  150,  3,  0, 30);
Cadastra(29, "L%E2mpada incandescente (40W)", 1,   40,  6,  0, 30);
Cadastra(30, "Impressora",                  1,   90,  1,  0, 30);
Cadastra(31, "Carregador de bateria",       1,   70,  1,  0, 30);
Cadastra(32, "Videogame",                   1,   10,  2,  0, 30);
Cadastra(33, "Ventilador",                  1,  100,  3,  0, 30);



var hexVals = new Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
              "A", "B", "C", "D", "E", "F");
var unsafeString = "\"<>%\\^[]`\+\$\,";


function changeIt(val){

var len     = val.length;
var backlen = len;
var i       = 0;
 
var newStr  = "";
var frag    = "";
var encval  = "";
var original = val;

    for (i=0;i <= len; i++) {
    
          if (val.substring(i,i+1).charCodeAt(0) < 255) {
              if (isUnsafe(val.substring(i,i+1)) == false) {
              		newStr += val.substring(i,i+1);
              	}
              else {
              		newStr += convert(val.substring(i,i+1));
              	}
             }
          else {
               //alert ("Found a non-ISO-8859-1 character at position: " + (i+1) + ",\nPlease eliminate before continuing.");
               newStr = original;
               i = len;
        	}
    }
    return newStr;
}


function convert(val) // this converts a given char to url hex form
{ return  "%" + decToHex(val.charCodeAt(0), 16); }
 
 
function isUnsafe(compareChar)
// this function checks to see if a char is URL unsafe.
// Returns bool result. True = unsafe, False = safe
{
if (unsafeString.indexOf(compareChar) == -1 && compareChar.charCodeAt(0) > 32
    && compareChar.charCodeAt(0) < 123)
   { return false; } // found no unsafe chars, return false
else
   { return true; }
}

function decToHex(num, radix)
// part of the hex-ifying functionality
{
var hexString = "";
while (num >= radix)
      {
       temp = num % radix;
       num = Math.floor(num / radix);
       hexString += hexVals[temp];
      }
hexString += hexVals[num];
return reversal(hexString);
}

function reversal(s) // part of the hex-ifying functionality
{
var len = s.length;
var trans = "";
for (i=0; i<len; i++)
    { trans = trans + s.substring(len-i-1, len-i); }
s = trans;
return s;
}
