/* Função para barrar qualquer caractere diferente de número */
function numberOnly(e) {
 if ( window.event ) {
  // for IE, e.keyCode or window.event.keyCode can be used
  key = e.keyCode;
 } else if ( e.which ) {
  // netscape
  key = e.which;
 }
 if ( key != 8 || key != 13 || key < 48 || key > 57 ) return ( ( ( key > 47 ) && ( key < 58 ) ) || ( key == 8 ) || ( key == 13 ) );
  {
  return true;
 }
}

/* Máscara para campos de formulário */
function formatField( e, src, mask ) {
 if ( window.event ) {
  _TXT = e.keyCode;
 } else if ( e.which ) {
  _TXT = e.which;
 }
 if ( _TXT > 47 && _TXT < 58 ) {
  var i = src.value.length; 
  var exit = mask.substring(0,1); 
  var texto = mask.substring(i)
  if ( texto.substring(0,1) != exit ) {
   src.value += texto.substring(0,1);
  }
  return true;
 } else {
  if ( _TXT != 8 && _TXT != 13 ) {
   return false;
  } else {
   return true;
  }
 }
}

/* Altera visibilidade do objeto passado como parâmetro */
function alterVisibility(line) {
 if ( document.getElementById(line).style.display == '' ) {
  document.getElementById(line).style.display = 'none';
 } else {
  document.getElementById(line).style.display = '';
 }
}

/* Habilita form desabilitado, e troca a classe dos campos que antes eram transparentes */
function enableForm( frm ) {
	for ( i = 0; i < frm.form.elements.length; i++ ) {
		frm.form.elements[i].disabled = false;
		/* Testa se os campos forem submit ou button não troca a classe */
		if ( frm.form.elements[i].type != "submit" && frm.form.elements[i].type != "button" ) {
			frm.form.elements[i].className = "txt";
		}
		document.getElementById('spanState').style.display = "none";
		frm.form.elements["state"].style.display = "";
	}
}

/* Habilita o form e envia */
function sendForm(frm) {
	enableForm(frm);
	frm.submit();
}

/* Valida se um endereço de email é válido */
function validateEmail(src) {
	emailReg = "^[\\w-_\.]*[\\w-_\.]\@[\\w]\.+[\\w]+[a-zA-Z]$";
	var regex = new RegExp(emailReg);
	return regex.test(src);
}

/* Valida se uma data é válida */
function isDate(Data){
	var dma = -1;
	var data = Array(3);
	var ch = Data.charAt(0); 
	for(i=0; i < Data.length && (( ch >= '0' && ch <= '9' ) || ( ch == '/' && i != 0 ) ); ){
	 data[++dma] = '';
	 if(ch!='/' && i != 0) return false;
	 if(i != 0 ) ch = Data.charAt(++i);
	 if(ch=='0') ch = Data.charAt(++i);
	 while( ch >= '0' && ch <= '9' ){
	 data[dma] += ch;
	 ch = Data.charAt(++i);
	 } 
	}
	if(ch!='') return false;
	if(data[0] == '' || isNaN(data[0]) || parseInt(data[0]) < 1) return false;
	if(data[1] == '' || isNaN(data[1]) || parseInt(data[1]) < 1 || parseInt(data[1]) > 12) return false;
	if(data[2] == '' || isNaN(data[2]) || ((parseInt(data[2]) < 0 || parseInt(data[2]) > 99 ) && (parseInt(data[2]) < 1900 || parseInt(data[2]) > 9999))) return false;
	if(data[2] < 50) data[2] = parseInt(data[2]) + 2000;
	else if(data[2] < 100) data[2] = parseInt(data[2]) + 1900;
	switch(parseInt(data[1])){
	 case 2: { if(((parseInt(data[2])%4!=0 || (parseInt(data[2])%100==0 && parseInt(data[2])%400!=0)) && parseInt(data[0]) > 28) || parseInt(data[0]) > 29 ) return false; break; }
	 case 4: case 6: case 9: case 11: { if(parseInt(data[0]) > 30) return false; break;}
	 default: { if(parseInt(data[0]) > 31) return false;}
	}
	return true;
	
}

/* Valida o formulário */
function validateForm( frm ) {
	var initMessage = "Por favor, preencha o campo ";
	
	if ( document.getElementById('idCategory').value == "" ) {
		alert( initMessage + "Tipo de produto." );
		document.getElementById('idCategory').focus();
		return false;
	} else if ( document.getElementById('serialNumber').value == "" ) {
		alert( initMessage + "Número de série." );
		document.getElementById('serialNumber').focus();
		return false;
	} else if ( document.getElementById('peddler').value == "" ) {
		alert( initMessage + "Onde adquiriu." );
		document.getElementById('peddler').focus();
		return false;
	} else if ( document.getElementById('nf').value == "" ) {
		alert( initMessage + "Nota fiscal." );
		document.getElementById('nf').focus();
		return false;
	} else if ( document.getElementById('datePurchase').value == "" ) {
		alert( initMessage + "Data da emissão da NF." );
		document.getElementById('datePurchase').focus();
		return false;
	} else if ( !isDate(document.getElementById('datePurchase').value) ) {
		alert( "A Data da emissão da NF é inválida." );
		document.getElementById('datePurchase').focus();
		return false;
	} else if ( document.getElementById('defect').value == "" ) {
		alert( initMessage + "Defeito." );
		document.getElementById('defect').focus();
		return false;
	}
	
	if ( document.getElementById('questionValue').value == "not" || document.getElementById('questionValue').value == "" ) {
		if ( document.getElementById('name').value == "" ) {
			alert( initMessage + "Nome." );
			document.getElementById('name').focus();
			return false;
		} else if ( document.getElementById('cpfCnpj').value == "" ) {
			alert( initMessage + "CPF/CNPJ." );
			document.getElementById('cpfCnpj').focus();
			return false;
		} else if ( document.getElementById('cep').value == "" ) {
			alert( initMessage + "CEP." );
			document.getElementById('cep').focus();
			return false;
		} else if ( document.getElementById('uf').value == "" ) {
			alert( initMessage + "Estado." );
			document.getElementById('uf').focus();
			return false;
		} else if ( document.getElementById('localidade').value == "" ) {
			alert( initMessage + "Cidade." );
			document.getElementById('localidade').focus();
			return false;
		} else if ( document.getElementById('dddPhone').value == "" ) {
			alert( initMessage + "DDD do telefone." );
			document.getElementById('dddPhone').focus();
			return false;
		} else if ( document.getElementById('phone').value == "" ) {
			alert( initMessage + "Telefone." );
			document.getElementById('phone').focus();
			return false;
		}
		
		if ( document.getElementById('email').value != "" ) {
			if ( !validateEmail(document.getElementById('email').value) ) {
				alert( "O E-mail digitado está incorreto." );
				document.getElementById('email').focus();
				return false;
			}
		}
		
	} else {
		if ( document.getElementById('cnpjLogin').value == "" ) {
			alert( initMessage + "CPF/CNPJ." );
			document.getElementById('cnpjLogin').focus();
			return false;
		}/* else if ( document.getElementById('fieldPass').value == "" ) {
			alert( initMessage + "senha." );
			document.getElementById('fieldPass').focus();
			return false;
		}*/
	}
	return true;
}

/* Valida o formulário */
function validateFormH( frm ) {
	var initMessage = "Por favor, preencha o campo ";
	if ( document.getElementById('name').value == "" ) {
		alert( initMessage + "Nome." );
		document.getElementById('name').focus();
		return false;
	} else if ( document.getElementById('cpfCnpj').value == "" ) {
		alert( initMessage + "CPF/CNPJ." );
		document.getElementById('cpfCnpj').focus();
		return false;
	} else if ( document.getElementById('zip').value == "" ) {
		alert( initMessage + "CEP." );
		document.getElementById('zip').focus();
		return false;
	} else if ( document.getElementById('address').value == "" ) {
		alert( initMessage + "Endereço." );
		document.getElementById('address').focus();
		return false;
	} else if ( document.getElementById('number').value == "" ) {
		alert( initMessage + "Número." );
		document.getElementById('number').focus();
		return false;
	} else if ( document.getElementById('state').value == "" ) {
		alert( initMessage + "Estado." );
		document.getElementById('state').focus();
		return false;
	} else if ( document.getElementById('city').value == "" ) {
		alert( initMessage + "Cidade." );
		document.getElementById('city').focus();
		return false;
	} else if ( document.getElementById('dddPhone').value == "" ) {
		alert( initMessage + "DDD do telefone." );
		document.getElementById('dddPhone').focus();
		return false;
	} else if ( document.getElementById('phone').value == "" ) {
		alert( initMessage + "Telefone." );
		document.getElementById('phone').focus();
		return false;
	} else if ( document.getElementById('idCategory').value == "" ) {
		alert( initMessage + "Tipo de produto." );
		document.getElementById('idCategory').focus();
		return false;
	} else if ( document.getElementById('serialNumber').value == "" ) {
		alert( initMessage + "Número de série." );
		document.getElementById('serialNumber').focus();
		return false;
	} else if ( document.getElementById('peddler').value == "" ) {
		alert( initMessage + "Onde adquiriu." );
		document.getElementById('peddler').focus();
		return false;
	} else if ( document.getElementById('nf').value == "" ) {
		alert( initMessage + "Nota fiscal." );
		document.getElementById('nf').focus();
		return false;
	} else if ( document.getElementById('datePurchase').value == "" ) {
		alert( initMessage + "Data da emissão da NF." );
		document.getElementById('datePurchase').focus();
		return false;
	} else if ( !isDate(document.getElementById('datePurchase').value ) ) {
		alert( "A data da emissão da NF é inválida." );
		document.getElementById('datePurchase').focus();
		return false;
	} else if ( document.getElementById('defect').value == "" ) {
		alert( initMessage + "Defeito." );
		document.getElementById('defect').focus();
		return false;
	}
	
	if ( document.getElementById('email').value == "" ) {
		alert( initMessage + "E-mail." );
		document.getElementById('email').focus();
		return false;
	}  else if ( !validateEmail(document.getElementById('email').value) ) {
		alert( "O e-mail digitado está incorreto." );
		document.getElementById('email').focus();
		return false;
	}
	
	return true;
}

function MM_preloadImages() { //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_swapImgRestore() { //v3.0
  var i,x,a=document.MM_sr; for(i=0;a&&i<a.length&&(x=a[i])&&x.oSrc;i++) x.src=x.oSrc;
}

function MM_findObj(n, d) { //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_swapImage() { //v3.0
  var i,j=0,x,a=MM_swapImage.arguments; document.MM_sr=new Array; for(i=0;i<(a.length-2);i+=3)
   if ((x=MM_findObj(a[i]))!=null){document.MM_sr[j++]=x; if(!x.oSrc) x.oSrc=x.src; x.src=a[i+2];}
}


var currentPaneStyle = 0;
var currentTab = 0;

function tabstrip() {
	this.tabs = new Array();
	this.add = addTab;
	this.write = writeTabstrip;
}

function tab(caption,content) {
	this.setId = setId;
	this.caption = caption;
	this.content = content;
	this.write = writeTab;
	this.writeContent = writePane;
}

function addTab(tab) {
	tab.setId("tab" + this.tabs.length);
	this.tabs[this.tabs.length] = tab;
}

function setId(id) {
	this.id = id;
}

function initiate() {
	var div = document.getElementById("tab0");
	showPane(div);
}

function showPane(div) {
	if ( currentTab != 0 ) {
		currentTab.style.backgroundColor = "#DEDEDE";
	}
	div.style.backgroundColor = "#F3F3F3";
	currentTab = div;
	
	if ( currentPaneStyle != 0 )
		currentPaneStyle.display = "none";
	var paneId = "pn_" + div.id;
	var objPaneStyle = document.getElementById(paneId).style;
	objPaneStyle.display = "block";
	currentPaneStyle = objPaneStyle;
}

function writePane() {
	document.write("<div class='pane' id='pn_" + this.id + "'>" + this.content + "</div>");
}

function writeTab() {
	document.write("<td class=\"tabs\" style=\"padding-left: 3px; padding-right: 3px;\"><div class=\"tabs\" id=\"" + this.id + "\" onclick=\"showPane(this)\">" + this.caption + "</div></td>");
}

function writeTabstrip() {
	document.write("<table class=\"tabs\" cellpadding=\"0\" cellspacing=\"0\" style=\"padding-left: 3px\"><tr>");
	for ( var i = 0; i < this.tabs.length; i++ ) {
		this.tabs[i].write();
	}
	document.write("</tr></table>");
	
	for ( var k = 0; k < this.tabs.length; k++ ) {
		this.tabs[k].writeContent();
	}
	initiate();
}

function validateProcessor() {
	var processorName = document.getElementById('processorName');
	var processorLink = document.getElementById('processorLink');
	
	if ( processorName.value == '' ) {
		alert('Por favor, digite um nome para o processador');
		processorName.focus();
		return false;
	} else  if ( processorLink.value == '' ) {
		alert('Por favor, digite um link para o processador');
		processorLink.focus();
		return false;
	}
	
	return true;
}

function validateProduct() {
	var productName = document.getElementById('productName');
	var idCategory = document.getElementById('idCategory');
	var idProcessor = document.getElementById('idProcessor');
	var description = document.getElementById('description');
	
	if ( productName.value == '' ) {
		alert('Por favor, digite um nome para o produto.');
		productName.focus();
		return false;
	} else if ( idCategory.value == '' ) {
		alert('Por favor, selecione uma categoria.');
		idCategory.focus();
		return false;
	} else if ( radio.value == '' ) {
		alert('Por favor, selecione uma opção.');
		radio.focus();
		return false;
	} else if ( description.value == '' ) {
		alert('Por favor, digita uma descrição para o produto.');
		description.focus();
		return false;
	}
	
	return true;
}

function validateCategoria(){
	var titulo = document.getElementById('titulo');
	var texto  = document.getElementById('texto');
	
	if ( titulo.value == '' ) {
		alert('Por favor, digite a Título.');
		titulo.focus();
		return false;
	} else if ( texto.value == '' ) {
		alert('Por favor, digite o Texto.');
		texto.focus();
		return false;
	}
	
	return true;
}

function validateTelefone(){
	var descricao = document.getElementById('descricao');
	var numero = document.getElementById('numero');
	
	if ( descricao.value == '' ) {
		alert('Por favor, digite a Descrição.');
		descricao.focus();
		return false;
	} else if ( numero.value == '' ) {
		alert('Por favor, digite o Número.');
		numero.focus();
		return false;
	}
	
	return true;
}

function validateContato(){
	var titulo = document.getElementById('titulo');
	var nome = document.getElementById('nome');
	
	if ( titulo.value == '' ) {
		alert('Por favor, digite o Título.');
		titulo.focus();
		return false;
	} else if ( nome.value == '' ) {
		alert('Por favor, digite o Nome.');
		nome.focus();
		return false;
	}
	
	return true;
}

function validateCategory() {
	var category = document.getElementById('category');
	
	if ( category.value == "" ) {
		alert('Por favor, digite um nome para a categoria');
		category.focus();
		return false;
	}
	
	return true;
}

function validateSubCategory() {
	var subCategory = document.getElementById('subCategory');
	var idCategory = document.getElementById('idCategory');
	
	if ( subCategory.value == "" ) {
		alert('Por favor, digite um nome para a sub categoria');
		subCategory.focus();
		return false;
	} else if ( idCategory.value == "" ) {
		alert('Por favor, selecione uma categoria');
		idCategory.focus();
		return false;
	}
	
	return true;
}

function validateDownload(param) {
	var downloadName = document.getElementById('downloadName');
	var file = document.getElementById('file');
	var idCategory = document.getElementById('idCategory');
	//var idSubcategory = document.getElementById('idSubcategory');
	
	if ( downloadName.value == '' ) {
		alert('Por favor, digite um nome para o link do arquivo');
		downloadName.focus();
		return false;
	} else if ( file.value == '' ) {
		if ( param != 'edit' ) {
			alert('Por favor, selecione um arquivo');
			file.focus();
			return false;
		}
	} else if ( idCategory.value == '' ) {
		alert('Por favor, selecione uma categoria');
		idCategory.focus();
		return false;
	}/* else if ( idSubcategory == '' ) {
		alert('Por favor, selecione uma subcategoria');
		idSubcategory.focus();
		return false;
	}*/
	
	return true;
}

function validatePartner() {
	var partnerName = document.getElementById('partnerName');
	var photo = document.getElementById('photo');
	
	if ( partnerName.value == '' ) {
		alert('Por favor, digite o nome do parceiro');
		partnerName.focus();
		return false;
	} else  if ( photo.value == '' ) {
		alert('Por favor, selecione o logotipo do parceiro');
		photo.focus();
		return false;
	}
	
	return true;
}

function validateCertification() {
	var certification = document.getElementById('certification');
	var description = document.getElementById('description');
	
	if ( certification.value == '' ) {
		alert('Por favor, digite um nome para a certificação');
		certification.focus();
		return false;
	} else  if ( description.value == '' ) {
		alert('Por favor, digite uma descrição');
		description.focus();
		return false;
	}
	
	return true;
}

function validateRepresentativeType() {
	var type = document.getElementById('type');
	
	if ( type.value == '' ) {
		alert('Por favor, digite o tipo de representante');
		type.focus();
		return false;
	}
	
	return true;
}