function primeiraMaiuscula(obj){
	if(obj.type!='text'){obj=this;}
	var val=obj.value.toLowerCase();
	var primeira=val.substr(0,1);
	primeira=primeira.toUpperCase();
	val=primeira+val.substr(1,9999999999);
	
	val=val.split(' ');
	for(var i=0;i<val.length;i++){
		temp=val[i].substr(0,1)
		val[i]=temp.toUpperCase()+(val[i].substr(1,99999999999));
	}
	obj.value=val.join(' ');
}

function dateMask(format){
	if(format==''){format='%d/%m/%Y %H:%M:%S';}
	var result='',char;
	format=format.replace(/%/g,'');
	for(var i=0;i<format.length;i++){
		char=format.substr(i,1);
		switch(char){
			case 'C':
			case 'd':
			case 'e':
			case 'g':
			case 'H':
			case 'I':
			case 'm':
			case 'M':
			case 'S':
				result+='##';
				break;
			case 'j':
				result+='###';
				break;
			case 'Y':
			case 'G':
				result+='####';
				break;
			default:
				result+=char;
		}
	}
	return result;
}


function applyMasks(){  //aplica as mascaras aos elementos dos formularios que contenham em seu className as substrings
	var form,element;
	for(var f=0;f<document.forms.length;f++){
		form=document.forms[f];
		for(var i=0;i<form.elements.length;i++){
			element=form.elements[i];
			if(element.type=='text' && element.className.indexOf('nonPrimeiraMaiuscula')<0){
				addEvent(element,'keyup',primeiraMaiuscula);
				primeiraMaiuscula(element);
			}
			
			if(element.className.match('cep')){
				format='#####-###';
				addEvent(element,'keypress',function(event){return mascara(event,this,'#####-###');});
				element.maxLength=format.length;
			}
			if(element.className.match('dateTime')){
				temp=element.className.substr(element.className.indexOf('dateTime')+9,element.className.length);
				temp=temp.substr(0,temp.indexOf('}'));
				format=dateMask(temp);
				addEvent(element,'keypress',function(event){
													temp=this.className.substr(this.className.indexOf('dateTime')+9,this.className.length);
													temp=temp.substr(0,temp.indexOf('}'));
													format=dateMask(temp);
													return mascara(event,this,format);
											});
				element.maxLength=format.length;
			}
			if(element.className.match('CPF')){
				format='###.###.###-##';
				addEvent(element,'keypress',function(event){return mascara(event,this,'###.###.###-##');});
				element.maxLength=format.length;
			}
			
			if(element.className.match('CNPJ')){
				format='##.###.###.####/##';
				addEvent(element,'keypress',function(event){return mascara(event,this,'##.###.###.####/##');});
				element.maxLength=format.length;
			}
			
			if(element.className.match('telefone')){
				format='####-#######';
				addEvent(element,'keypress',function(event){return mascara(event,this,'####-#######');});
				element.maxLength=format.length;
			}
		}
	}
}




//mascara de cep:
//onkeypress="return mascara(event,this,'#####-###');"
function mascara(e,src,mask){
	if(e.which){_TXT=e.which;}
	else if(window.event){_TXT=e.keyCode;}
	
	if(_TXT>47 && _TXT<58){
		var i=src.value.length;
		var saida=mask.substring(0,1);
		var texto=mask.substring(i);
		if(texto==''){return true;}
		if(texto.substring(0,1)!=saida){src.value+=texto.substring(0,1);}
		return true;
	}
	else{
		if(_TXT==13){return true;}
		if(_TXT!=8){return false;}else{return true;}
	}
}
