// Multiple file selector by Stickman -- http://www.the-stickman.com 
// with thanks to: [for Safari fixes] Luis Torrefranca -- http://www.law.pitt.edu and Shawn Parker & John Pennypacker -- http://www.fuzzycoconut.com [for duplicate name bug] 'neal'
function MultiSelector( list_target, max ){
	this.list_target = list_target;
	this.count = 0;
	this.id = 0;

	if( max ){
		this.max = max;
	} else {
		this.max = -1;
	};
	this.addElement = function( element ){
		if( element.tagName == 'INPUT' && element.type == 'file' ){
			element.name = 'file_' + this.id++;
			element.multi_selector = this;
			element.onchange = function(){
				var new_element = document.createElement( 'input' );
				new_element.type = 'file';
				this.parentNode.insertBefore( new_element, this );
				this.multi_selector.addElement( new_element );
				this.multi_selector.addListRow( this );
				this.style.position = 'absolute';
				this.style.left = '-1000px';
			};
			if( this.max != -1 && this.count >= this.max ){
				element.disabled = true;
			};
			this.count++;
			this.current_element = element;
		} else {
			alert( 'Erro' );
		};
	};
	this.addListRow = function( element ){
		var new_row = document.createElement( 'div' );
		var new_row_button = document.createElement( 'input' );
		new_row_button.type = 'button';
		new_row_button.value = 'Remover';
		new_row_button.style.font_family = 'Verdana, Arial';
		new_row.element = element;
		new_row_button.onclick= function(){
			this.parentNode.element.parentNode.removeChild( this.parentNode.element );
			this.parentNode.parentNode.removeChild( this.parentNode );
			this.parentNode.element.multi_selector.count--;
			this.parentNode.element.multi_selector.current_element.disabled = false;return false;};
			new_row.innerHTML = element.value;
			new_row.appendChild( new_row_button );
			this.list_target.appendChild( new_row );
	};
};
/* verificaç do formulario*/
function desativa_form() {
texto = document.email.Contrato; //textarea
aceita = document.email.termos; //checkbox
enviar = document.email.enviar; //botao enviar
aceita.disabled=true;
enviar.disabled=true; // desativa botoes (ficam ativados pra quem tem JS desligado)
texto.onmousemove = verifica_scroll;
aceita.onclick = verifica_check;
}
function verifica_scroll() { 
var alt = texto.scrollHeight; //rolagem maxima
var pos = texto.scrollTop; //rolagem atual
if (pos > alt-150) {aceita.disabled=false} //ativa o checkbox quando faltam 150px de texto pra rolar
}
function verifica_check() { //ativa o botãde enviar quando aceitos os termos
enviar.disabled=false;
}
function verifica_envio() { //verifica se os termos foram aceitos
if (aceita.checked) {return true;}
//else {alert("Vocêrecisa concordar com os termos do serviçpara enviar imagens e notías.");return false;}
// ativar a linha acima para pop-up avisando que os termos nao foram aceitos
}
window.onload=desativa_form; // onload pra desativar os botoes termos/enviar

function maskInput(f, m) {
    function mask(e){
        var patterns = {"1": /[A-Z]/i, "2": /[0-9]/, "4": /[Àÿ]/i, "8": /./ },
            rules = { "a": 3, "A": 7, "9": 2, "C":5, "c": 1, "*": 8};
        function accept(c, rule){
            for(var i = 1, r = rules[rule] || 0; i <= r; i<<=1)
                if(r & i && patterns[i].test(c))
                    break;
                return i <= r || c == rule;
        }
        var k, mC, r, c = String.fromCharCode(k = e.key), l = f.value.length;
        (!k || k == 8 ? 1 : (r = /^(.)\^(.*)$/.exec(m)) && (r[0] = r[2].indexOf(c) + 1) + 1 ?
            r[1] == "O" ? r[0] : r[1] == "E" ? !r[0] : accept(c, r[1]) || r[0]
            : (l = (f.value += m.substr(l, (r = /[A|9|C|\*]/i.exec(m.substr(l))) ?
            r.index : l)).length) < m.length && accept(c, m.charAt(l))) || e.preventDefault();
    }
    for(var i in !/^(.)\^(.*)$/.test(m) && (f.maxLength = m.length), {keypress: 0, keyup: 1})
        addEvent(f, i, mask);
} 
//Manipulador de Eventos: addEvent e removeEvent cross-browser
addEvent = function(o, e, f, s){
    var r = o[r = "_" + (e = "on" + e)] = o[r] || (o[e] ? [[o[e], o]] : []), a, c, d;
    r[r.length] = [f, s || o], o[e] = function(e){
        try{
            (e = e || event).preventDefault || (e.preventDefault = function(){e.returnValue = false;});
            e.stopPropagation || (e.stopPropagation = function(){e.cancelBubble = true;});
            e.target || (e.target = e.srcElement || null);
            e.key = (e.which + 1 || e.keyCode + 1) - 1 || 0;
        }catch(f){}
        for(d = 1, f = r.length; f; r[--f] && (a = r[f][0], o = r[f][1], a.call ? c = a.call(o, e) : (o._ = a, c = o._(e), o._ = null), d &= c !== false));
        return e = null, !!d;
    }
};
removeEvent = function(o, e, f, s){
    for(var i = (e = o["_on" + e] || []).length; i;)
        if(e[--i] && e[i][0] == f && (s || o) == e[i][1])
            return delete e[i];
    return false;
};
//Fim do Manipulador de Eventos 



/*NumeroCampo = 0;
function Add() {
        NumeroCampo++;
        data = "<div id='campo"+NumeroCampo+"'><input type='file' name=\"file_\"+NumeroCampo><input type=\"button\" value=\"Remover\" onclick=\"Delcampo('campo"+NumeroCampo+"')\"><br></div>";
          document.getElementById("campos").innerHTML += data;
}
function Delcampo(IDDiv) {
    var d = document.getElementById('campos');
    var olddiv = document.getElementById(IDDiv);
    d.removeChild(olddiv);
    NumeroCampo--;
}*/
NumeroCampo = 0;
function Add() {
        NumeroCampo++;
        data = "<div id='campo"+NumeroCampo+"' ><input type='file' name=\"file_\"+NumeroCampo><a href=\"#\" onclick=\"Delcampo('campo"+NumeroCampo+"')\"><br>&nbsp; <font size=\"10px\">Remover</font></a></div>";
          document.getElementById("campos").innerHTML += data;
}
function Delcampo(IDDiv) {
    var d = document.getElementById('campos');
    var olddiv = document.getElementById(IDDiv);
    d.removeChild(olddiv);
    NumeroCampo--;
}



function checa_formulario(email){

        f = document.email;

        if (f.nome.value == ""){  
                alert("O campo " + f.nome.name + " deve ser preenchido!");
                f.nome.focus();
                return (false);
        }
        if (f.email.value == ""){  
                alert("O campo " + f.email.name + " deve ser preenchido!");
                f.email.focus();
                return (false);
        }
	if (f.email.value.indexOf("@") == -1 || f.email.value.indexOf(".") == -1) {
                alert("E-mail inválido!");
                f.email.focus();
                return (false);
	}
        if (f.rg.value == ""){ 
                alert("O campo " + f.rg.name + " deve ser preenchido!");
                f.rg.focus();
                return (false);
        }
        if (f.cpf.value == ""){  
                alert("O campo " + f.cpf.name + " deve ser preenchido!");
                f.cpf.focus();
                return (false);
        }
        if (!validarCPF(f.cpf.value)){  
                f.cpf.focus();
                return (false);
        }
        if (f.cidade.value == ""){  
                alert("O campo " + f.cidade.name + " deve ser preenchido!");
                f.cidade.focus();
                return (false);
        }

        if (f.cep.value == ""){  
                alert("O campo cep deve ser preenchido!");
 		f.cep.focus();
                return (false);
        }
        if (f.uf.value == ""){  
                alert("O campo estado deve ser preenchido!");
                f.uf.focus();
                return (false);
        }
        if (f.pais.value == ""){  
                alert("O campo país deve ser preenchido!");
                f.pais.focus();
                return (false);
        }
        if (f.cell.value == ""  &&  f.telefone.value == "" ){  
                alert("Telefone ou celular com seu ddd deve ser preenchido!");
                f.dddcell.focus();
                return (false);
        }
        if (f.mensagem.value == ""){  
                alert("O campo descrição deve ser preenchido!");
                f.mensagem.focus();
                return (false);
        } 

        if (f.cidadenot.value == ""){  
                alert("O campo cidade deve ser preenchido!");
                f.cidadenot.focus();
                return (false);
        }
        if (f.ufnot.value == ""){  
                alert("O campo estado deve ser preenchido!");
                f.ufnot.focus();
                return (false);
        }
        if (f.paisnot.value == ""){  
                alert("O campo país deve ser preenchido!");
                f.paisnot.focus();
                return (false);
        }
        if (f.date.value == ""){  
                alert("O campo data deve ser preenchido!");
                f.date.focus();
                return (false);
        }
	if (verifica_data(f.date)==false){
                f.date.focus();
                return (false);

	}
}

function validarCPF(valorCPF){
	var cpf = valorCPF;
	var filtro = /^\d{3}.\d{3}.\d{3}-\d{2}$/i;
	if(!filtro.test(cpf)){
		window.alert("CPF invádo. Tente novamente.");
		return false;
	}
   
	cpf = remove(cpf, ".");
	cpf = remove(cpf, "-");
    
	if(cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" ||
		cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" ||
		cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" ||
		cpf == "88888888888" || cpf == "99999999999"){
		window.alert("CPF invádo. Tente novamente.");
		return false;
	}

	soma = 0;
	for(i = 0; i < 9; i++)
   		soma += parseInt(cpf.charAt(i)) * (10 - i);
	resto = 11 - (soma % 11);
	if(resto == 10 || resto == 11)
		resto = 0;
	if(resto != parseInt(cpf.charAt(9))){
		window.alert("CPF invádo. Tente novamente.");
		return false;
	}
	soma = 0;
	for(i = 0; i < 10; i ++)
		soma += parseInt(cpf.charAt(i)) * (11 - i);
	resto = 11 - (soma % 11);
	if(resto == 10 || resto == 11)
		resto = 0;
	if(resto != parseInt(cpf.charAt(10))){
		window.alert("CPF invádo. Tente novamente.");
		return false;
	}
	return true;
}
 
function remove(str, sub) {
	i = str.indexOf(sub);
	r = "";
	if (i == -1) return str;
		r += str.substring(0,i) + remove(str.substring(i + sub.length), sub);
	return r;
}


function verifica_data (obj) { 

            dia = (obj.value.substring(0,2)); 
            mes = (obj.value.substring(3,5)); 
            ano = (obj.value.substring(6,10)); 

            situacao = ""; 
            // verifica o dia valido para cada mes 
            if ((dia < 01)||(dia < 01 || dia > 30) && (  mes == 04 || mes == 06 || mes == 09 || mes == 11 ) || dia > 31) { 
                situacao = "falsa"; 
            } 

            // verifica se o mes e valido 
            if (mes < 01 || mes > 12 ) { 
                situacao = "falsa"; 
            } 

            // verifica se e ano bissexto 
            if (mes == 2 && ( dia < 01 || dia > 29 || ( dia > 28 && (parseInt(ano / 4) != ano / 4)))) { 
                situacao = "falsa"; 
            } 
    
            if (situacao == "falsa") { 
                alert("Data inváda!"); 
		return false;
            } 
} 

function mudacor(ref,cor){
        ref.style.backgroundColor=cor;
}

function mascaraHora(input){
        if (input.value.length == 2){
                input.value += ":";
        }

}

function verifica_horas(obj)
{
        if(obj.value.length <5){
                alert('O campo hora não está preenchido corretamente');
                return false;
        }else{

                hr = obj.value.substring(0,2);
                mi = obj.value.substring(3,5);

                if(!isNumber(hr) || !isNumber(mi)){
                        alert('O campo hora não está preenchido corretamente');
                        return false;
                }

                if((hr < 0 || hr > 23) || (mi < 0 || mi > 60)){
                        obj.value = '';
                        alert('O campo hora não está preenchido corretamente');
                return false;
                }
        }
        return true;
}

function in_array(needle) {

      return new RegExp('(^|\,)'+needle+'(\,|$)','gi').test([0,1,2,3,4,5,6,7,8,9]);
}

function isNumber(numero){

        for(i=0; i<numero.length; i++){
                var c = numero.charAt(i);
                if(!in_array(c)){
                        return false;
                }
        }
        return true;
}

function mascara(o,f){
    v_obj=o
    v_fun=f
    setTimeout("execmascara()",1)
}

function execmascara(){
    v_obj.value=v_fun(v_obj.value)
}

function soNumeros(v){
    return v.replace(/\D/g,"")
}
