/* Validate CGC */
function ValidateCGC(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;
}

/* Função que válida apenas os e-mails */
function ValidateEmail(email) {
	var dot=false;
	var arr=false;
	var char=false;
	for(var i=0; i<email.length; i++) {
		if (email.charAt(i)=="@") arr=true;
        else if (email.charAt(i)==".") dot=true;
        else if (email.charAt(i)!=" ") char=true;
        }
        return (dot & arr & char);
}

// valideate all form objects
function validate(obj,type){	
	var retorno = false;	// avoid submit out of order
	var i    	= 0; 		// init value to verify each form object
	var pos		= true;
	
	if(type != 3 ){
		// loop for all form objects
		while ((i < obj.elements.length)){
			if(obj.elements[i].getAttribute("required")=="yes"){
				if(obj.elements[i].value.length==0){
					document.getElementById("formMsg").innerHTML = "Por favor, preencha ou selecione um valor para o campo "+ obj.elements[i].parentNode.firstChild.nodeValue +".";	
					document.getElementById("formMsg").style.visibility = "visible";
					obj.elements[i].focus();
					var pos	= false;
					break;				
				}else{
					var pos	= true;
				}
			}
			
			if((obj.elements[i].getAttribute("format")=="email") && (obj.elements[i].value.length > 0)){
				if(!ValidateEmail(obj.elements[i].value)){
					document.getElementById("formMsg").innerHTML = "Por favor, preencha o campo "+ obj.elements[i].parentNode.firstChild.nodeValue +" corretamente.";	
					document.getElementById("formMsg").style.visibility = "visible";
					obj.elements[i].focus();
					var pos	= false;
					break;
					return pos;
				}
				
			}
			
			i++;
		}
	}
	if(pos){
		document.getElementById("formMsg").style.visibility = "visible";
		document.getElementById("formMsg").innerHTML = "Aguardando...";
		// type of procedure, 1=new, 2=alter, 3=delete, 0=null		
		// only for delete
		if(type == "3"){			
			// needed to confirm delete action
			if(confirm("Confirma excluir?")){
				pos = true;
			}else{
				pos = false;
				document.getElementById("formMsg").style.visibility = "hidden";
				document.getElementById("formMsg").innerHTML = "";
			}
		}
	}
	
	return pos;
}

// for forms on the page
function activeForm(){	
	// active focus and blur functions to background color styles
	for(var i=0; i<document.forms.length; i++){
		for(var ii=0; ii<document.forms[i].elements.length; ii++){
			if(document.forms[i].elements[ii].getAttribute("type") != "submit"){
				document.forms[i].elements[ii].onfocus = new Function("this.className='input-active'");
				document.forms[i].elements[ii].onblur  = new Function("this.className=''");
				
				if(document.forms[i].elements[ii].getAttribute("required") == "yes"){
					document.forms[i].elements[ii].parentNode.firstChild.nodeValue = "* "+document.forms[i].elements[ii].parentNode.firstChild.nodeValue;
				}
			}
			
			var form  = document.forms[i];
			var field = document.forms[i].elements[ii];
			
			// active function to forms buttons
			// Insert
			if((field.getAttribute("type") == "submit") && field.getAttribute("value") == "Cadastrar"){				
				field.onclick = function(){
					form.wtype.value = 1;
					document.getElementById("formMsg").className = "formMsg-Att";
				}
			}
			
			// Alter
			if((field.getAttribute("type") == "submit") && field.getAttribute("value") == "Alterar"){				
				field.onclick = function(){
					form.wtype.value = 2;
					document.getElementById("formMsg").className = "formMsg-Att";					
				}
			}
			
			// Delete
			if((field.getAttribute("type") == "submit") && field.getAttribute("value") == "Excluir"){				
				field.onclick = function(){
					form.wtype.value = 3;
					document.getElementById("formMsg").className = "formMsg-Att";
				}
			}
		}
	}
	
	// focus on the first input text
	if(document.forms[0] != undefined){
		if((document.forms[0].elements[0] != undefined) && (document.forms[0].elements[0].getAttribute("type") != "hidden" )){
			document.forms[0].elements[0].focus();
		}
	}
}

// Function to send search params
function sendPaging(form,v){
	document[form].currentPage.value = v;
	document[form].search.value = 'change';
	document[form].submit();
}

// validate object extension
function validetaImg(obj){

	var ext = obj.value.substring((obj.value.length-3),obj.value.length);
	if(ext.toUpperCase()=="JPG" || ext.toUpperCase()=="GIF" || ext.toUpperCase()=="PNG"){

	}else{
		alert("Arquivo incorreto, selecione somente extensões dos tipos jpg, gif ou png.");
		obj.value = "";
	}
}

// validate object extension
function validetaExcel(obj){

	var ext = obj.value.substring((obj.value.length-3),obj.value.length);
	if(ext.toUpperCase()=="XLS"){

	}else{
		alert("Arquivo incorreto, selecione somente extensões do tipo xls (Excel).");
		obj.value = "";
	}
}

// to reser a form select
function resetSelect(obj){
	// reset select options
	for (var i=obj.length; i>0; i--){
		try {
			// for FF, Chrome
			obj.remove(i);
		} catch(ex) {
			// for IE
			obj.options[i] = null;
			obj.selectedIndex = 0;
		}
	}
	
	if(obj.options[0] != "undefined"){
		obj.options[0].text = "";
	}
}

// Open up a new popup
function dinamicPopUp(url,w,h){

	// to set window position center center
	var winLeft = (screen.width/2)  - (w/2);
	var winTop  = (screen.height/2) - (h/2);
	
	// open a new window
	windowImg = window.open(url,"Edição","top="+winTop+",left="+winLeft+",width="+w+",height="+h);
	windowImg.focus();
}

// To active tabs from div
function activeTabs(c){	
	var div = document.getElementById("tabs");
	if(div){
		var a 	 = div.getElementsByTagName("a");
		var divs = div.getElementsByTagName("div");
		
		for(var i=0; i<a.length; i++){
			divs[i].style.display = "none";
			a[i].setAttribute("href","javascript:void(0);");
			a[i].onclick = function(j){
				return function(){
					
					for(var ii=0; ii<a.length; ii++){					
						divs[ii].style.display = "none";
						a[ii].className = "tabInactive"
					}
					
					a[j].className = "tabActive"
					divs[j].style.display = "block";
				}
			}(i);			
		}
		
		if(a.length > 0){			
			a[c].className = "tabActive";
			divs[c].style.display = "block";
		}else{			
			a.className = "tabActive";
			divs.style.display = "block";
		}
	}
}

// Creata a calender
function calendar(){

	hoje = new Date();
	dia = hoje.getDate();
	mes = hoje.getMonth();
	ano = hoje.getFullYear();

	nomemes = ["Janeiro","Fevereiro","Março","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"];
	inicio = new Date("1 "+nomemes[mes]+" "+ano);
	letrasSemana = ["D","S","T","Q","Q","S","S"]
	a = 0;

	function bissexto(year) {
		if (year % 4 == 0) // regra básica
			return true // se o ano é bissexto
		else  // neste caso o else não é necessario
			return false // se o ano não é bissexto
	}

	bi = bissexto(ano) ? 29 : 28;
	diasmes = [31,bi,31,30,31,30,31,31,30,31,30,31];
	document.write('<table cellspacing="0" ><tr>');	
	document.write('<td align="center"><b>'+nomemes[mes]+' '+ano+'</b></td></tr><tr>')
	
	for(i=0; i<letrasSemana.length; i++){
		document.write('<td width="15" bgcolor="#CCCCCC" align="center"><b>'+letrasSemana[i]+'</b></td>');
	}

	document.write("</tr><tr>");

	if (inicio.getDay() == 0) increase = 0; else increase = 1;
		for(i=1; a<diasmes[mes]; i++){
			if(i < inicio.getDay()+increase){
				document.write('<td bgcolor="#FFFFCC" align="center">&nbsp;</td>');
			}else{
				a++;
			if (a == dia){
				document.write('<td bgcolor="#CCCCCC" align="center"><b>'+a+'</b></td>');
			}else{ 
				document.write('<td align="center">'+a+'</td>');
			}
		}		
		if(i % 7 == 0) document.write("</tr><tr>");
	}

	document.write("</tr></table>");
}
