/*
	Desabilita tecla Enter
*/
blockEnter = true;
function kH(e) {
	if (blockEnter) {
		var pK = e ? e.which : window.event.keyCode;
		return pK != 13;
	}
}

document.onkeypress = kH;
if (document.layers) document.captureEvents(Event.KEYPRESS);

/*
	Strip whitespace from the beginning and end of a string
	Input : a string
*/
function trim(str)
{
	return str.replace(/^\s+|\s+$/g,'');
}

function isInStr(pattern, string) {
	var _m = pattern.toLowerCase(); // pattern to match.
	var _s = string.toLowerCase();
	var _c = 0; // count
	for (var i=0;i<_s.length;i++) {
		if (_m == _s.substr(i,_m.length))
		 _c++;
	}
	if (_c > 0) {
		return true;
	} else {
		return false;
	}
}

/*
	Make sure that textBox only contain number (accepts dots)
*/
function checkNumber(textBox)
{
	while (textBox.value.length > 0 && isNaN(textBox.value)) {
		textBox.value = textBox.value.substring(0, textBox.value.length - 1)
	}
	
	textBox.value = trim(textBox.value);
/*	if (textBox.value.length == 0) {
		textBox.value = 0;		
	} else {
		textBox.value = parseInt(textBox.value);
	}*/
}

function checkNumberOnly(textBox)
{
	var i;
	for (i = 0; i < textBox.value.length; i++) {
		if (textBox.value.charAt(i) == '.') {
			textBox.value = textBox.value.substring(0, i);
		}
	}
	while (textBox.value.length > 0 && isNaN(textBox.value)) {
		textBox.value = textBox.value.substring(0, textBox.value.length - 1)
	}
	
	textBox.value = trim(textBox.value);
/*	if (textBox.value.length == 0) {
		textBox.value = 0;		
	} else {
		textBox.value = parseInt(textBox.value);
	}*/
}

function setMask(strField, sMask, evtKeyPress) {
	var i, nCount, sValue, fldLen, mskLen,bolMask, sCod, nTecla;
	
	if(document.all) { // Internet Explorer
		nTecla = evtKeyPress.keyCode; }
	else if(document.layers) { // Nestcape
		nTecla = evtKeyPress.which;
	}
	
	sValue = strField.value;
	
	// Limpa todos os caracteres de formatação que
	// já estiverem no campo.
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( "-", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( ".", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "/", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( "(", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( ")", "" );
	sValue = sValue.toString().replace( " ", "" );
	sValue = sValue.toString().replace( " ", "" );
	fldLen = sValue.length;
	mskLen = sMask.length;
	
	i = 0;
	nCount = 0;
	sCod = "";
	mskLen = fldLen;
	
	while (i <= mskLen) {
		bolMask = ((sMask.charAt(i) == "-") || (sMask.charAt(i) == ".") || (sMask.charAt(i) == "/"))
		bolMask = bolMask || ((sMask.charAt(i) == "(") || (sMask.charAt(i) == ")") || (sMask.charAt(i) == " "))
		
		if (bolMask) {
			sCod += sMask.charAt(i);
			mskLen++; }
		else {
			sCod += sValue.charAt(nCount);
			nCount++;
		}
		
		i++;
	}
	
	strField.value = sCod;
	
	if (nTecla != 8) { // backspace
		if (sMask.charAt(i-1) == "9") { // apenas números...
			return ((nTecla > 47) && (nTecla < 58)); } // números de 0 a 9
		else { // qualquer caracter...
			return true;
		}
	} else {
		return true;
	}
}

/*
	Check if a form element is empty.
	If it is display an alert box and focus
	on the element
*/
function isEmpty(formElement, message) {
	_isEmpty = true;
	
	if (formElement) {
		formElement.value = trim(formElement.value);
		
		_isEmpty = false;
		
		if (formElement.value == '') {
			_isEmpty = true;
			if (message != '') {
				alert(message);
				formElement.focus();
			}
		}
	}
	
	return _isEmpty;
}

/*
	Set one value in combo box as the selected value
*/
function setSelect(listElement, listValue)
{
	for (i=0; i < listElement.options.length; i++) {
		if (listElement.options[i].value == listValue)	{
			listElement.selectedIndex = i;
		}
	}	
}

/*
	Verifica se o cep está preenchido e contém 8 caracteres
*/
function valida_cep(obj) {
	 form = document.frmCart;
	 if (obj['cepDest'].value.length == 0) {
		alert("Por favor digite um CEP !");
		form['cepDest'].focus();
		return false;
	 }
	 s = limpa_string(obj['cepDest'].value);
	 if (s.length != 8) {
		alert("O CEP deve ter 8 caracteres numericos !");
		obj['cepDest'].focus();
		return false;
	 }
	 return true;
}

/*
	Deixa so' os digitos no numero
*/
function limpa_string(S){
	var Digitos = "0123456789";
	var temp = "";
	var digito = "";
	for (var i=0; i<S.length; i++) {
	  digito = S.charAt(i);
	  if (Digitos.indexOf(digito)>=0){temp=temp+digito}
	}
	return temp
}

function popUp(arquivo)
{
	attr = "toolbars=no,status=no,resize=no,scrollbars=no,width=633,height=530,top=50,left=100";
	window.open(arquivo,"",attr);
}

function validateForm(fields, form) {
	erro = '';
	fldNP = ''; // Nao preenchidos
	fldNE = ''; // Não definidos
	fldIN = ''; // Preenchidos incorretamente
	fldQty = fields.length;
	
	for (i = 0; i < fldQty; i++) {
		field = document.getElementById(fields[i][0]);
		if (!field) {
			fldNE += '   - ' + fields[i][2] + '\n';
		} else {
			fldValue = trim(field.value);
			fldType  = fields[i][1];
			fldDescription = fields[i][2];
			
			
			// Campo de Texto
			if (fldType == 'text') {
				if (fldValue.length == 0) {
					fldNP += '   - ' + fldDescription + '\n';
				}
				
			// Campo de Radio
				} else if (fldType == 'radio') {
					if (field.type != 'radio') {
						fldNE += '   - ' + fldDescription + '\n';
					} else {
						
						if (checkRadioButton(fields[i][0], form) == null) {
							fldNP += '   - ' + fldDescription + '\n';
						} 
					}
					
			// Campo de Radio
			/*
			} else if (fldType == 'radio') {
				if (field.type != 'radio') {
						fldNE += '   - ' + fldDescription + '\n';
					} else {
						field = form.eval(fields[i][0]);
						
						size = field.length;
						checked = false;
						for (j=0; j < size; j++) {
							if (field[j].checked) {
								checked = true;
							}
						}
						if (!checked) {
							fldNP += '   - ' + fldDescription + '\n';
						} 
					}
			*/
				
			// Campop de Senha
			} else if (fldType == 'pass') {
				if (fldValue.length == 0) {
					fldNP += '   - ' + fldDescription + '\n';
				} else if (fldValue.length < 6) {
					fldIN += '   - ' + fldDescription + ' (mínimo 6 caracteres)\n';
				} else {
					fldCheck = fields[i][0] + '2';
					fldCheck = document.getElementById(fldCheck);
					if (fldCheck) {
						if (fldCheck.value != '' && fldCheck.value != fldValue) {
							fldIN += '   - As duas senhas digitadas não são iguais\n';
						}
					}
				}
				
				
			// Campop de Usuario
			} else if (fldType == 'user') {
				if (fldValue.length == 0) {
					fldNP += '   - ' + fldDescription + '\n';
				} else if (fldValue.length < 6) {
					fldIN += '   - ' + fldDescription + ' (mínimo 6 caracteres)\n';
				}
				
				
			// Campop de CPF
			} else if (fldType == 'cpf') {
				if (fldValue.length == 0) {
					fldNP += '   - ' + fldDescription + '\n';
				} else if (!checkCPF(fldValue)) {
					fldIN += '   - ' + fldDescription + '\n';
				}
				
				
			// Campop de CNPJ
			} else if (fldType == 'cnpj') {
				if (fldValue.length == 0) {
					fldNP += '   - ' + fldDescription + '\n';
				} else if (!checkCNPJ(fldValue)) {
					fldIN += '   - ' + fldDescription + '\n';
				}
				
				
			// Campop de CEP
			} else if (fldType == 'cep') {
				if (fldValue.length == 0) {
					fldNP += '   - ' + fldDescription + '\n';
				} else if (!checkCEP(fldValue)) {
					fldIN += '   - ' + fldDescription + ' (8 caracteres numéricos)\n';
				}
				
				
			// Campop de Email
			} else if (fldType == 'email') {
				if (fldValue.length == 0) {
					fldNP += '   - ' + fldDescription + '\n';
				} else {
					var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
					if (!filter.test(field.value)) {
						fldIN += '   - ' + fldDescription + '\n';
					} else {
						fldCheck = fields[i][0] + '2';
						fldCheck = document.getElementById(fldCheck);
						if (fldCheck) {
							if (fldCheck.value != '' && fldCheck.value != fldValue) {
								fldIN += '   - Os dois emails digitados não são iguais\n';
							}
						}
					}
				}
			}
		}
	}
		
	if (fldNE != '') {
		erro += 'Campo(s) não encontrado(s)\n\n';
		erro += fldNE + '\n';
	}
	if (fldNP != '') {
		erro += 'Campo(s) não preenchido(s)\n\n';
		erro += fldNP + '\n';
	}
	if (fldIN != '') {
		erro += 'Campo(s) invalido(s)\n\n';
		erro += fldIN;
	}
	
	return erro;
}

function checkCPF(s)
{
	var i;
	s = limpa_string(s);
	var c = s.substr(0,9);
	var dv = s.substr(9,2);
	var d1 = 0;
	for (i = 0; i < 9; i++)
	{
		d1 += c.charAt(i)*(10-i);
	}
        if (d1 == 0) return false;
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		return false;
	}

	d1 *= 2;
	for (i = 0; i < 9; i++)
	{
		d1 += c.charAt(i)*(11-i);
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
	{
		return false;
	}
        return true;
}

function checkCGC(s)
{
	var i;
	s = limpa_string(s);
	var c = s.substr(0,12);
	var dv = s.substr(12,2);
	var d1 = 0;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+(i % 8));
	}
        if (d1 == 0) return false;
        d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(0) != d1)
	{
		return false;
	}

	d1 *= 2;
	for (i = 0; i < 12; i++)
	{
		d1 += c.charAt(11-i)*(2+((i+1) % 8));
	}
	d1 = 11 - (d1 % 11);
	if (d1 > 9) d1 = 0;
	if (dv.charAt(1) != d1)
	{
		return false;
	}
        return true;
}

function checkCEP(cep) {
     s = limpa_string(cep);
     if (s.length != 8) {
        return false;
     }
     return true;
}

function checkRadio(obj)
{
	checked = false;
	for (i=0;i<obj.length;i++) {
		if (obj[i].checked) {
			checked = true;
		}
	}
	return checked;
}



function checkMail(field)
{
	var x = field.value;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (!filter.test(x)) {
		alert('O email informado é inválido');
		return false;
	} else {
		return true;
	}
}

function checkRadioButton(group, form) {
    if (typeof group == 'string') group = form.elements[group];
    for (var i = 0, n = group.length; i < n; ++i)
        if (group[i].checked) return group[i];
    return null;
}