//Usada para melhorar a administração do BlockUI
var blockUiTimer;


$(document).ready(function() { 

	//Inicialização das chamadas em ajax - Debug
	$.ajaxSetup({
		'error':function(XMLHttpRequest,textStatus, errorThrown) {
			alert(textStatus);
			alert(errorThrown);
			$('#erroMsg').html(XMLHttpRequest.responseText);
			alert(XMLHttpRequest.responseText);
		}
	});
}); 


function formataSoNumeros(s) {
	var res = "";
	for (var i = 0; i < s.length; i++) {
		if (((s.charAt(i) >= "0") && (s.charAt(i) <= "9")) || (s.charAt(i) < " ")) {
			res += s.charAt(i);
		}
	}
	return res;
}



function blockUiAux(msg) {
	$.blockUI({ 
		message: msg,
		css: { 
			border: 'none', 
			padding: '15px', 
			backgroundColor: '#FFF', 
			'-webkit-border-radius': '10px', 
			'-moz-border-radius': '10px', 
			opacity: .8, 
			color: '#000',
			lineHeight: '32px',
			width: '300px',
			left: '50%'
		}	
	})
}


function blockUi(msg) {
	//Prepara a mensagem ou cria uma mensagem padrão
	if (msg == '' || !msg) msg ='Por favor, aguarde...';
	msg = '<img class=\'blockUiImg\' src=\'imagem/indicator_medium.gif\' /><div class=\'blockUiTxt\'>' + msg + "</div>"

	//So mostra o aviso se o procedimento demorar mais de 500 milissegundos
	blockUiTimer = setTimeout('blockUiAux("' + msg + '");',500)
}

function unblockUi() {
	//Cancela o timer do aviso
	clearTimeout (blockUiTimer);
	//Remove (se necessário) o aviso da tela
	$.unblockUI();
}

function isNumeric(strString)
   //  check for valid numeric strings	
   {
   var strValidChars = "0123456789.-";
   var strChar;
   var blnResult = true;

   if (strString.length == 0) return false;

   //  test strString consists of valid characters listed above
   for (i = 0; i < strString.length && blnResult == true; i++)
      {
      strChar = strString.charAt(i);
      if (strValidChars.indexOf(strChar) == -1)
         {
         blnResult = false;
         }
      }
   return blnResult;
   }


function DaysArray(n,year) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
	}
	// February has 29 days in any year evenly divisible by four,
	// EXCEPT for centurial years which are not also divisible by 400.
	this[2] = (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );

	return this
}

function isDate(dtStr){
	var dtCh= "/";
	var minYear=1900;
	var maxYear=2100;

	var pos1=dtStr.indexOf(dtCh)
	var pos2=dtStr.indexOf(dtCh,pos1+1)
	var strDay=dtStr.substring(0,pos1)
	var strMonth=dtStr.substring(pos1+1,pos2)
	var strYear=dtStr.substring(pos2+1)

	if (dtStr.length != 10) {
		return false
	}
	if (eval(strMonth) < 1 || eval(strMonth) > 12){
		return false
	}
	if (eval(strDay)<1 || eval(strDay) > DaysArray(12,parseInt(strYear))[parseInt(strMonth)]){
		return false
	}
	if (eval(strYear)<minYear || eval(strYear)>maxYear){
		return false
	}
	return true
}


function isTime (timeStr) {

	if (!timeStr) {return false}

	var timePat = /^(\d{1,2}):(\d{2})(:(\d{2}))?(\s?(AM|am|PM|pm))?$/;
	var matchArray = timeStr.match(timePat);
	if (matchArray == null) {return false;}

	hour = matchArray[1];
	minute = matchArray[2];
	second = matchArray[4];
	ampm = matchArray[6];

	if (hour < 0  || hour > 23) {return false;}
	if (minute<0 || minute > 59) {return false;}
	if (second < 0 || second > 59) {return false;}
	return true;
}


//Simula o queryString do ASP
function queryString(name) {
	name = name.replace(/[\[]/,'\\\[').replace(/[\]]/,'\\\]');
	var regexS = '[\\?&]'+name+'=([^&#]*)';
	var regex = new RegExp( regexS );
	var results = regex.exec( window.location.href );
	if( results == null )
		return '';
	else
		return decodeURIComponent(results[1].replace(/\+/g, ' '));
}


function validaEmail_possuiCarateresInvalidos(string){

	var exChar="*"+unescape("%7E%5E%B4%60%27%22%21%24%25%23%26%28%29%3C%3E%2C%3B%3A%3F%5C%5D%5B%7B%7D ");
	var c;
	for(var i=0; i<exChar.length; i++){
		c=exChar.charAt(i);
		if(!(string.indexOf(c)==-1))
			return true;
	}
	return false;
}


function validaEmail (email){
	if(validaEmail_possuiCarateresInvalidos(email)) // verificar caracteres nao validos
		return false;

	var i=email.indexOf("@");                   // posicao de @ no email fornecido
	var sLength=email.length - 1;               // comprimento do valor do campo
	if((i>0)&&(i<sLength)){                     // se i<0 ou i==sLengt=> ERRO!
		email=email.substring(i+1, sLength+1);  // substring depois de @
		i=email.indexOf(".");                   // posicao do . na substring
		sLength=email.length - 1;
		if((!(email.charAt(sLength)=="."))&&(email.indexOf("@")==-1))
		if(i>0 && i<sLength)                    // se i>0 e i<Length=> OK!
			return true;
	}
	return false;
}


