// JavaScript Document

String.prototype.trim = function(){return this.replace(/^\s*|\s*$/g,"");}

String.prototype.count=function(s1) { 
	return (this.length - this.replace(new RegExp(s1,"g"), '').length) / s1.length;
}

function PRADO_isCEP(sender, param) {
	var re = new RegExp("[0-9]{8}");
	return re.test(param);
}

function isCPF(str) {

  if (str.length != 11) return false;

  var mult = 2;
  var sum = 0;

  for(var i = 8; i >= 0; --i) {
		sum += parseInt(str.charAt(i)) * mult;
    ++mult;
  }

  d1 = sum % 11 < 2 ? 0 : 11 - (sum % 11);

  var mult = 2;
  var sum = 0;

  for(i = 9; i >= 0; --i) {
    sum += parseInt(str.charAt(i)) * mult;
    ++mult;
  }

  d2 = sum % 11 < 2 ? 0 : 11 - (sum % 11);

  return (d1.toString() == str.charAt(9)) && (d2.toString() == str.charAt(10));

}

function PRADO_isCPF(sender, param) {
	// Esta função requer o arquivo "http://intranet.facef.br/functions_javascript.js"
	return isCPF(param) && param.length > 0;
}

function PRADO_isPresentDate(sender, param) {
	var re = new RegExp("[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]");
	if (re.test(param) && isDate(param)) {
		thisDate = parseDate(param);
		return thisDate <= todayDate;
	}
	return false;
}

function PRADO_hasValidAge(sender, param) {
	var re = new RegExp("[0-9][0-9]/[0-9][0-9]/[0-9][0-9][0-9][0-9]");
	if (re.test(param) && isDate(param)) {
		thisDate = parseDate(param);
		return (thisDate >= minAgeDate && thisDate <= maxAgeDate);
	}
	return false;
}

function PRADO_isListSel(sender, param) {
	if (sender.control.disabled) return true;
	return sender.control.selectedIndex > 0;
}

function PRADO_isSingleParagraph(sender, param) {
	
	var t = param.trim();
	
	if(t.length == 0) return true;

	var n = t.count('\n');
	
	return (t.length > 0) && (n == 0);
	
}

function listCallback(list, callback) {
	Prado.Callback(callback, $F(list), null,  {'CausesValidation':false});
}

function PRADO_isValidName(sender, param) {
	//return false;
	//alert(param);
	var val = param.trim();
	return val.length >= 5 && val.split(" ").length > 1;
}

function focusFirstElement() {

	var fef = function easyFoco() {

		var j=0;

		outer: while(document.forms[j] ) {

			var f = document.forms[j];

			for(var i=0; i < f.elements.length; i++)

				if ((f.elements[i].type == "text" || f.elements[i].type == "textarea") && !f.elements[i].readOnly) {

					window.setTimeout("document.forms[" + j + "].elements[" + i + "].focus();", 500);
					break outer;

				}

				j++;

		}

	}

 	fef = "" + fef;

	window.setTimeout( fef.substring(23, fef.length - 2), 1000);

}


function confirmDelete() {
	return confirm('Deseja realmente excluir este registro?');
}

function confirmCancel() {
	return confirm('Ao cancelar, quaisquer alterações ainda não salvas serão perdidas.\nDeseja continuar?');
}

function alwaysTrue(sender, param) {
	return true;
}

function exibirPopup(urlPopup, nomePopup, eventoFechar) {

	popup = window.open(urlPopup, nomePopup,'top = 50, left=20, menubar=no, status=no, toolbar=no, resizable=no, scrollbars=no');

	popup.onunload = eventoFechar;

	if (window.focus) {
		popup.focus();
	}

}

function exibirOcultarMenu(nomeBaseMenu, nomeBaseSubMenu, numMenu) {

	menu = $(nomeBaseMenu + numMenu.toString());

	subMenu = $(nomeBaseSubMenu + numMenu.toString());

	if (subMenu.className == 'uliSubMenu') {
		//menu.className = 'lblTituloMenuRet';
		subMenu.className = 'uliSubMenuInvisivel';
	}
	else {
		menu.className = 'lblTituloMenu';
		subMenu.className = 'uliSubMenu';
	}


}

function isNumberKey(evt)
{
	 var charCode = (evt.which) ? evt.which : event.keyCode;
	 if (charCode > 31 && (charCode < 48 || charCode > 57))
			return false;
}

function checkDate(evt, elem)
{
	var charCode = (evt.which) ? evt.which : event.keyCode;

	switch(elem.value.length) {
		case 0:
		case 1:
		case 3:
		case 4:
		case 6:
		case 7:
		case 8:
		case 9:
			return !(charCode > 31 && (charCode < 48 || charCode > 57));
			break;
		default:
			return (charCode <= 31 || charCode == 47);
	}

}

function popWindowUp(url, name, width, height, top, left) {

	var params = "menubar=yes, status=no, toolbar=yes, resizable=yes, scrollbars=yes";

	if(width) params += ", width = " + width.toString();
	if(height) params += ", height = " + height.toString();
	if(top) params += ", top = " + top.toString();
	if(left) params += ", left = " + left.toString();

	popup = window.open(url, name, params);

	if (window.focus) {
		popup.focus();
	}

}

/*window.onload = function() { focusFirstElement() };*/