// JavaScript Document

/*---------------------------------------------------------------------*/

function cleanSearchBox(box)
{
	if (box.value == "Buscar" || box.value == "Search")
	{
		box.value = "";
	}
}

/*---------------------------------------------------------------------*/

function listarPorAssunto(slt)
{
	location.href = "lista.php?assunto=" + slt.options[slt.selectedIndex].value;
}

/*---------------------------------------------------------------------*/

function addEvent(obj, evType, fn)
{
	if (obj.addEventListener) /* W3C */
	{
		obj.addEventListener(evType, fn, true);
	}
	if (obj.attachEvent) /* IE */
	{
		obj.attachEvent("on"+evType, fn);
	}
 }

function get(el)
{
	if (typeof(el) === 'string')
		return document.getElementById(el);
	else if (typeof(el) === 'object')
		return el;
	else
		return undefined;
}

/*---------------------------------------------------------------------*/

function validaCadastro(frm) {
	var erro = "";
	if (frm.nome_fantasia.value == "")
		erro += "\nCampo Nome não pode ser vazio";
	if (frm.razao_social.value == "")
		erro += "\nCampo Razão Social não pode ser vazio";
	if (frm.cnpj.value == "")
		erro += "\nCampo CNPJ não pode ser vazio";
	if (!validaCNPJ(frm.cnpj.value))
		erro += "\nCampo CNPJ parece ter sido informado incorretamente";
	if (frm.end_logradouro_1.value == "")
		erro += "\nAo menos um endereço deve ser informado";
	if (frm.end_telefone_1.value == "")
			erro += "\nO telefone do endereço da empresa deve ser informado";
	if (frm.end_cidade_1.value == "")
			erro += "\nA cidade deve ser informada";
	if (frm.contato_nome.value == "")
			erro += "\nUm nome para contato deve ser informado";
	if (frm.contato_telefone.value == "")
			erro += "\nUm telefone para contato deve ser informado";
	if (frm.contato_email.value == "")
			erro += "\nUm email para contato deve ser informado";
	if (erro.length > 0) {
		alert(erro);
		return false;
	} else {
		frm.submit();
	}
}

// ------------------------------------------------------------------------ //

function addNewAdress()
{
	var cr = get("end_count").value;
	cr++;
	var html_code;
	html_code = '<table class="tableForm grayLineTop" id="tableAdress_'+cr+'">';
	html_code += '<tr style="height: 10px;"><td colspan="2"></td></tr>';
	html_code += '<tr><td></td><td><input type="button" name="end_remove" value="Remover" onclick="delAdress('+cr+')" /></td></tr>';
	html_code += '<tr><td class="label">Logradouro</td><td><input type="text" name="end_logradouro_'+cr+'" value="" size="35" /></td></tr>';
	html_code += '<tr><td class="label">N&uacute;mero</td><td><input type="text" name="end_numero_'+cr+'" value="" size="8" /></td></tr>';
	html_code += '<tr><td class="label">Complemento</td><td><input type="text" name="end_complemento_'+cr+'" value="" size="22" /></td></tr>';
	html_code += '<tr><td class="label">Bairro</td><td><input type="text" name="end_bairro_'+cr+'" value="" size="26" /></td></tr>';
	html_code += '<tr><td class="label">Cidade</td><td><input type="text" name="end_cidade_'+cr+'" value="" size="26" /></td></tr>';
	html_code += '<tr><td class="label">UF</td><td>Minas Gerais<input type="hidden" name="end_uf_'+cr+'" value="" size="10" /></td></tr>';
	html_code += '<tr><td class="label">CEP</td><td><input type="text" name="end_cep_'+cr+'" value="" size="15" /></td></tr>';
	html_code += '<tr><td class="label">Hor&aacute;rios de funcionamento</td><td><input type="text" name="end_horario_'+cr+'" value="" size="25" /></td></tr>';
	html_code += '<tr><td class="label">Telefones</td><td><input type="text" name="end_telefone_'+cr+'" value="" size="25" /></td></tr>';
	html_code += '<tr><td class="label">Email</td><td><input type="text" name="end_email_'+cr+'" value="" size="30" /></td></tr>';
	var d = document.createElement("div");
	d.innerHTML = html_code;
	get("end_container").appendChild(d);
	get("end_count").value = cr;
}

function delAdress(s)
{
	var el = get("tableAdress_"+s);
	el.parentNode.parentNode.removeChild(el.parentNode);
	var cr = get("end_count").value;
	cr--;
	get("end_count").value = cr;
}

// ------------------------------------------------------------------------ //

// pick list

/*

This script and many more are available free online at
The JavaScript Source!! http://javascript.internet.com
Original:  Sean Geraty ()
Web Site:  http://www.freewebs.com/sean_geraty/

*/

// Control flags for list selection and sort sequence
// Sequence is on option value (first 2 chars - can be stripped off in form processing)
// It is assumed that the select list is in sort sequence initially

var singleSelect = true;  // Allows an item to be selected once only
var sortSelect = true;  // Only effective if above flag set to true
var sortPick = true;  // Will order the picklist in sort sequence

// Initialise - invoked on load
function initIt() {
	var selectList = get("SelectList");
	var pickList = get("PickList");
	var pickOptions = pickList.options;
	pickOptions[0] = null;  // Remove initial entry from picklist (was only used to set default width)
	selectList.focus();  // Set focus on the selectlist
}

// Adds a selected item into the picklist
function addIt(ele) {
  var selectList = get("SelectList_" + ele);
  var selectIndex = selectList.selectedIndex;
  var selectOptions = selectList.options;
  var pickList = get("PickList_" + ele);
  var pickOptions = pickList.options;
  var pickOLength = pickOptions.length;

  // An item must be selected
  if (selectIndex > -1) {
    pickOptions[pickOLength] = new Option(selectList[selectIndex].text);
    pickOptions[pickOLength].value = selectList[selectIndex].value;

    // If single selection, remove the item from the select list
    if (singleSelect) {
      selectOptions[selectIndex] = null;
    }

    if (sortPick) {
      var tempText;
      var tempValue;

      // Sort the pick list
      while (pickOLength > 0 && pickOptions[pickOLength].value < pickOptions[pickOLength-1].value) {
        tempText = pickOptions[pickOLength-1].text;
        tempValue = pickOptions[pickOLength-1].value;
        pickOptions[pickOLength-1].text = pickOptions[pickOLength].text;
        pickOptions[pickOLength-1].value = pickOptions[pickOLength].value;
        pickOptions[pickOLength].text = tempText;
        pickOptions[pickOLength].value = tempValue;
        pickOLength = pickOLength - 1;
      }
    }
  }
}

// Deletes an item from the picklist
function delIt(ele) {
  var selectList = get("SelectList_" + ele);
  var selectOptions = selectList.options;
  var selectOLength = selectOptions.length;
  var pickList = get("PickList_" + ele);
  var pickIndex = pickList.selectedIndex;
  var pickOptions = pickList.options;
  if (pickIndex > -1) {

    // If single selection, replace the item in the select list
    if (singleSelect) {
      selectOptions[selectOLength] = new Option(pickList[pickIndex].text);
      selectOptions[selectOLength].value = pickList[pickIndex].value;
    }

    pickOptions[pickIndex] = null;
    if (singleSelect && sortSelect) {
      var tempText;
      var tempValue;

      // Re-sort the select list
      while (selectOLength > 0 && selectOptions[selectOLength].value < selectOptions[selectOLength-1].value) {
        tempText = selectOptions[selectOLength-1].text;
        tempValue = selectOptions[selectOLength-1].value;
        selectOptions[selectOLength-1].text = selectOptions[selectOLength].text;
        selectOptions[selectOLength-1].value = selectOptions[selectOLength].value;
        selectOptions[selectOLength].text = tempText;
        selectOptions[selectOLength].value = tempValue;
        selectOLength = selectOLength - 1;
      }
    }
  }
}

function selectAll(ele) {
  var pickList = get(ele);
  var pickIndex = pickList.selectedIndex;
  var pickOptions = pickList.options;
  for (var x = 0; x < pickOptions.length; x++)
  {
	  pickOptions[x].selected = true;
  }
}

// ------------------------------------------------------------------------ //

function validaCNPJ(CNPJ) {
	erro = new String;
	if (CNPJ.length < 18) erro += "É necessario preencher corretamente o número do CNPJ! \n\n";
	if ((CNPJ.charAt(2) != ".") || (CNPJ.charAt(6) != ".") || (CNPJ.charAt(10) != "/") || (CNPJ.charAt(15) != "-")) {
		if (erro.length == 0) erro += "É necessário preencher corretamente o número do CNPJ! \n\n";
	}
	//substituir os caracteres que não são números
	if(document.layers && parseInt(navigator.appVersion) == 4){
		x = CNPJ.substring(0,2);
		x += CNPJ. substring (3,6);
		x += CNPJ. substring (7,10);
		x += CNPJ. substring (11,15);
		x += CNPJ. substring (16,18);
		CNPJ = x;
	} else {
		CNPJ = CNPJ. replace (".","");
		CNPJ = CNPJ. replace (".","");
		CNPJ = CNPJ. replace ("-","");
		CNPJ = CNPJ. replace ("/","");
	}
	var nonNumbers = /\D/;
	if (nonNumbers.test(CNPJ)) erro += "A verificação de CNPJ suporta apenas números! \n\n";
	var a = [];
	var b = new Number;
	var c = [6,5,4,3,2,9,8,7,6,5,4,3,2];
	for (i=0; i<12; i++) {
		a[i] = CNPJ.charAt(i);
		b += a[i] * c[i+1];
	}
	if ((x = b % 11) < 2) { a[12] = 0 } else { a[12] = 11-x }
	b = 0;
	for (y=0; y<13; y++) {
		b += (a[y] * c[y]);
	}
	if ((x = b % 11) < 2) { a[13] = 0; } else { a[13] = 11-x; }
	if ((CNPJ.charAt(12) != a[12]) || (CNPJ.charAt(13) != a[13])) {
		erro +="Dígito verificador com problema!";
	}
	if (erro.length > 0) {
		//alert(erro);
		return false;
	} else {
		//alert("CNPJ valido!");
	}
	return true;
}


