function menu_over(src, cursor) {
	if (!src.contains(event.fromElement)) {
		src.style.cursor = cursor;
		src.bgColor = '#D5D7AF';
	}
}

function menu_out(src) {
	if (!src.contains(event.toElement)) {
		src.style.cursor = 'default';
		src.bgColor = '#E2E3CF';
	}
}

function menu_over2(src, cursor) {
	if (!src.contains(event.fromElement)) {
		src.style.cursor = cursor;
		src.bgColor = '#FFFFEE';
	}
}

function menu_out2(src) {
	if (!src.contains(event.toElement)) {
		src.style.cursor = 'default';
		src.bgColor = '#FFFFFF';
	}
}

function MM_jumpMenu(targ,selObj,restore){
	eval(targ+".location='"+selObj.options[selObj.selectedIndex].value+"'");
	if (restore) selObj.selectedIndex=0;
}

function ClearList(OptionList, TitleName) {
    OptionList.length = 0;
}

function move(side, formulario, campo1, campo2) {
    var temp1 = new Array();
    var temp2 = new Array();
    var current1 = 0;
    var current2 = 0;
    var attribute;
    //assign what select attribute treat as attribute1 and attribute2
    if (side == "right") {
       attribute1 = eval("document."+formulario+"."+campo1);
       attribute2 = eval("document."+formulario+"."+campo2);
    } else {
       attribute1 = eval("document."+formulario+"."+campo2);
       attribute2 = eval("document."+formulario+"."+campo1);
    }
    //fill an array with old values
    for (var i = 0; i < attribute2.length; i++) {
       temp1[current1++] = attribute2.options[i].value;
    }
    //assign new values to arrays
    for (var i = 0; i < attribute1.length; i++) {
        if ( attribute1.options[i].selected ) {
            temp1[current1++] = attribute1.options[i].value;
        } else {
            temp2[current2++] = attribute1.options[i].value;
        }
    }
    temp1.sort();
    temp2.sort();
    //generating new options
    for (var i = 0; i < temp1.length; i++) {
        attribute2.options[i] = new Option();
        attribute2.options[i].value = temp1[i];
        attribute2.options[i].text =  temp1[i];
    }
    //generating new options
    ClearList(attribute1,attribute1);
    if (temp2.length>0) {
        for (var i = 0; i < temp2.length; i++) {
            attribute1.options[i] = new Option();
            attribute1.options[i].value = temp2[i];
            attribute1.options[i].text =  temp2[i];
        }
    }
}

function nova_janela_param(meuURL, minhaLargura, minhaAltura, meuAlvo)	{
	var localX = (screen.width - minhaLargura) /3;
	var localY = (screen.height - minhaAltura) /4;		
	
	propriedades='width='+minhaLargura+',height='+minhaAltura+',left='+localX+',top='+localY+', scrollbars=yes, status=yes';
	
	window.open(meuURL, meuAlvo, propriedades)
}

function nova_janela(meuURL, minhaLargura, minhaAltura)	{
	var localX = (screen.width - minhaLargura) /3;
	var localY = (screen.height - minhaAltura) /4;		
	
	propriedades='width='+minhaLargura+',height='+minhaAltura+',left='+localX+',top='+localY+'';
	
	window.open(meuURL, "_blank", propriedades)
}

function Mascarar_Data(keypress, objeto){
	campo = eval (objeto);
	caracteres = '1234567890';
	if ((caracteres.search(String.fromCharCode (keypress)) == -1) || (keypress == 36) || (keypress == 41) || (keypress == 46) || (keypress == 94) || (keypress == 124)) {
		event.returnValue = false;
	}
	else {
		if (campo.value.length == 2 ) { 
	 		campo.value = campo.value;
	 		campo.value = campo.value + '/';
		}
		if (campo.value.length == 5 ) { 
	 		campo.value = campo.value;
	 		campo.value = campo.value + '/';
		}
	}
}
function maskcnpj(txt){ 
	if (txt.value.length == 2){
		txt.value = txt.value +'.';
	}
	if (txt.value.length == 6){
		txt.value = txt.value + '.';
	}
	if (txt.value.length == 10){
		txt.value = txt.value + '/';
	}
	if (txt.value.length == 15){
		txt.value = txt.value + '-';
	}
}
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 valida_cnpj(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 filtro(tipo) {
	if (tipo == 'num') {
		if ((event.keyCode >= 0 && event.keyCode <= 47) || 
			(event.keyCode >= 58 && event.keyCode <= 255)) {
			event.returnValue = false;
		}
	}
	if (tipo == 'let') {
		if ((event.keyCode >= 0 && event.keyCode <= 31) || 
			(event.keyCode >= 33 && event.keyCode <= 64) ||
			(event.keyCode >= 91 && event.keyCode <= 96) ||
			(event.keyCode >= 123 && event.keyCode <= 128) ||
			(event.keyCode >= 155 && event.keyCode <= 159) ||
			(event.keyCode >= 166 && event.keyCode <= 180) ||
			(event.keyCode >= 184 && event.keyCode <= 190)) {
			event.returnValue = false;
		}
	}
	if (tipo == 'fon') {
		if ((event.keyCode >= 0 && event.keyCode <= 31) || 
			(event.keyCode >= 33 && event.keyCode <= 44) ||
			(event.keyCode >= 58 && event.keyCode <= 255) ||
			event.keyCode == 46 || 
			event.keyCode == 47) {
			event.returnValue = false;
		}
	}
}

function emailCheck (emailStr) {
    var checkTLD=1;
    var knownDomsPat=/^(com|net|org|edu|int|mil|gov|arpa|biz|aero|name|coop|info|pro|museum|br|ind|inc|adv)$/;
    var emailPat=/^(.+)@(.+)$/;
    var specialChars="\\(\\)><@,;:\\\\\\\"\\.\\[\\]";
    var validChars="\[^\\s" + specialChars + "\]";
    var quotedUser="(\"[^\"]*\")";
    var ipDomainPat=/^\[(\d{1,3})\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})\]$/;
    var atom=validChars + '+';
    var word="(" + atom + "|" + quotedUser + ")";
    var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
    var domainPat=new RegExp("^" + atom + "(\\." + atom +")*$");
    var matchArray=emailStr.match(emailPat);

    // se não achar @ ou . no email
    if (matchArray==null) return false;

    var user=matchArray[1];
    var domain=matchArray[2];
    for (i = 0; i < user.length; i++) {
        // se o usuario tiver caracteres invalidos
        if (user.charCodeAt(i) > 127) return false;
    }
    for (i = 0; i < domain.length; i++) {
        // se o dominio tiver caracteres invalidos
        if (domain.charCodeAt(i) > 127) return false;
    }
    // se o usuario tiver caracteres inválidos
    if (user.match(userPat)==null) return false;

    var IPArray=domain.match(ipDomainPat);
    
    // se o dominio for um ip
    if (IPArray != null) {
        for (var i = 1; i <= 4; i++) {
            if (IPArray[i]>255) return false;
        }
        return true;
    }
    
    var atomPat=new RegExp("^" + atom + "$");
    var domArr=domain.split(".");
    var len=domArr.length;
    
    for (i = 0; i < len; i++) {
        // se o dominio for invalido
        if (domArr[i].search(atomPat) == -1) return false;
    }

    // se o tipo do dominio for menor que 2(tamanho) ou diferente dos informados em knownDomsPat
    if (checkTLD && domArr[domArr.length-1].length != 2 && 
        domArr[domArr.length-1].search(knownDomsPat) == -1) return false;

    // se o dominio nao tiver pelo menos 1 ponto
    if (len < 2) return false;

    return true;
}

function Executar(alvo, var01){
	document.form_param.action = alvo;
	document.form_param[0].value = var01;
	/* 
	Verifica se foram passados argumentos adicionais
	e faz um loop pra montar o form. Os campos devem
	ser definidos em um formulario de nome form_param.
	O nome dos campos é indiferente.
	*/
	var numArgs = parseInt(Executar.arguments.length - 1);
	
	if(numArgs > 1){
		for(i=1; i < numArgs; i++){
			var j = parseInt(i+1);
			document.form_param[i].value = Executar.arguments[j];
			//alert(numArgs+' '+document.form_param[i].value);
		}			
	}
	document.form_param.submit();
}

function placeFocus(iForm) {
	if (document.forms.length > 0) {
		var field = document.forms[iForm];
		for (i = 0; i < field.length; i++) {
			if ((field.elements[i].type == "text") 
				|| (field.elements[i].type == "textarea") 
				|| (field.elements[i].type == "password") 
				|| (field.elements[i].type.toString().charAt(0) == "s")) {
				document.forms[iForm].elements[i].focus();
				break;
			}
		}
	}
}