function fcIsValidDate(myCalendar, format, myMessage) {
   dateStr = myCalendar.value; 
   if (dateStr.length == 0) { 
   		return true; 
   } 
   if (format == null) { format = "MDY"; }
   format = format.toUpperCase();
   if (format.length != 3) { format = "MDY"; }
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1) ) { format = "MDY"; }
   if (format.substring(0, 1) == "Y") { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { 
   		alert(myMessage); 
   		return false; 
   }
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } 
   else 
      if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; 
   }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else
      if (format.substring(1, 2) == "D") { var dd = parts[1]; 
   } else { 
  	var dd = parts[2]; 
   }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } 
   else 
      if (format.substring(1, 2) == "Y") { 
	  	var yy = parts[1]; 
	  } else { 
	  	var yy = parts[2]; 
	  }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   if (parseFloat(dd) != dt.getDate()) { 
   		alert(myMessage); 
   		return false; 
   }
   if (parseFloat(mm)-1 != dt.getMonth()) {  
   		alert(myMessage); 
   		return false; 
   }
   strDay = ("0" + dt.getDate());
   strDay = strDay.substring(strDay.length - 2, strDay.length);
   
   strMonth = ("0" + (dt.getMonth() + 1));
   strMonth = strMonth.substring(strMonth.length - 2, strMonth.length);
   
   intYear = dt.getFullYear();
   if (intYear >= 100 && intYear <= 1999) {
   	intYear=intYear + 1900
   }
   strYear = intYear.toString();
   
   myCalendar.value = strDay + "/" + strMonth + "/" + strYear;
   return true;
}

function fcIsValidDateCompare(myCalendar1, myCalendar2, format, myMessage) {
   dateStr = myCalendar1.value; 
   if (dateStr.length == 0) { 
   		return true; 
   } 
   dateStr2 = myCalendar2.value; 
   if (dateStr2.length == 0) { 
   		return true; 
   } 
   
   if (format == null) { format = "MDY"; }
   format = format.toUpperCase();
   if (format.length != 3) { format = "MDY"; }
   if ( (format.indexOf("M") == -1) || (format.indexOf("D") == -1) || (format.indexOf("Y") == -1) ) { format = "MDY"; }
   if (format.substring(0, 1) == "Y") { // If the year is first
      var reg1 = /^\d{2}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
      var reg2 = /^\d{4}(\-|\/|\.)\d{1,2}\1\d{1,2}$/
   } else if (format.substring(1, 2) == "Y") { // If the year is second
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{2}\1\d{1,2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{4}\1\d{1,2}$/
   } else { // The year must be third
      var reg1 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{2}$/
      var reg2 = /^\d{1,2}(\-|\/|\.)\d{1,2}\1\d{4}$/
   }
   // If it doesn't conform to the right format (with either a 2 digit year or 4 digit year), fail
   if ( (reg1.test(dateStr) == false) && (reg2.test(dateStr) == false) ) { 
   		return false; 
   }
   var parts = dateStr.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { var mm = parts[0]; } 
   else 
      if (format.substring(1, 2) == "M") { var mm = parts[1]; } else { var mm = parts[2]; 
   }
   if (format.substring(0, 1) == "D") { var dd = parts[0]; } else
      if (format.substring(1, 2) == "D") { var dd = parts[1]; 
   } else { 
  	var dd = parts[2]; 
   }
   if (format.substring(0, 1) == "Y") { var yy = parts[0]; } 
   else 
      if (format.substring(1, 2) == "Y") { 
	  	var yy = parts[1]; 
	  } else { 
	  	var yy = parts[2]; 
	  }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);

   if ( (reg1.test(dateStr2) == false) && (reg2.test(dateStr2) == false) ) { 
   		return false; 
   }
   parts = dateStr2.split(RegExp.$1); // Split into 3 parts based on what the divider was
   // Check to see if the 3 parts end up making a valid date
   if (format.substring(0, 1) == "M") { mm = parts[0]; } 
   else 
      if (format.substring(1, 2) == "M") { mm = parts[1]; } else { mm = parts[2]; 
   }
   if (format.substring(0, 1) == "D") { dd = parts[0]; } else
      if (format.substring(1, 2) == "D") { dd = parts[1]; 
   } else { 
  	dd = parts[2]; 
   }
   if (format.substring(0, 1) == "Y") { yy = parts[0]; } 
   else 
      if (format.substring(1, 2) == "Y") { 
	  	yy = parts[1]; 
	  } else { 
	  	yy = parts[2]; 
	  }
   if (parseFloat(yy) <= 50) { yy = (parseFloat(yy) + 2000).toString(); }
   if (parseFloat(yy) <= 99) { yy = (parseFloat(yy) + 1900).toString(); }
   var dt2 = new Date(parseFloat(yy), parseFloat(mm)-1, parseFloat(dd), 0, 0, 0, 0);
   
   //alert(dt2 + ' ' + dt);
   if (dt2 < dt) {
	   alert(myMessage);
	   return false;
   }

   return true;
}

//Valida se caractere é numérico Inteiro
function ValidaNum(campo) {
	var codCar = event.keyCode;
	//alert(codCar);
	var validity = true;
	if ((codCar < 48 || codCar > 57) && codCar != 9 && codCar != 13 && codCar != 8){
		alert ("Este campo aceita somente caracteres numéricos.");
		validity = false;
		campo.focus;
	}
	return validity;
}
function fcTextLength (myText, myMessage) {
	if (myText.value.length == 0) { 
		alert(myMessage);
		if (myText.type != "hidden") {
			myText.focus();
		} 
		return false;
	} else {
		return true;
	}
}

function fcSelect(mySelect, myMessage) {
	count = false;
	for (i=0;i<mySelect.options.length;i++) {
		if (mySelect.options[i].selected) {
			if (mySelect.options[i].value!="" && mySelect.options[i].value!="0") {
				count = true;
			}
		}
	}
	return count;
}

function fcRadio(myRadio, myMessage) {
	count = false;
	for(i=0;i<myRadio.length;i++) {
		if (myRadio[i].checked) {
			count = true;
		}
	}
	if (!count) {
		alert(myMessage);
		myRadio[0].focus();
	}
	return count;
}

function fcFileExtension(myFile, myExtensions, myMessage) {
	var myReturn = true;
	objFileExtension = myFile.value.substr(myFile.value.lastIndexOf(".")+1);
	if (objFileExtension!='') {
		myReturn = false;
		for (i=0;i<myExtensions.length;i++) {
			if(objFileExtension.toLowerCase()==myExtensions[i].toLowerCase()) {
				myReturn = true;
			}
		}
	}
	if (!myReturn) {
		alert(myMessage);
		myFile.select();
	}
	return myReturn;
}

function fcTextAreaMaxLength(myTextArea, myForm, myMaxLength, myMessage, myShowCounter) {
	objTextArea = eval('myForm.' + myTextArea);
	if (myShowCounter) {
		objTextAreaCounter = eval('myForm.' + myTextArea + '_counter');
	}
	if (objTextArea.value.length > myMaxLength) {
		alert(myMessage);
		objTextArea.value = objTextArea.value.substring(0, myMaxLength);
		objTextArea.focus();
	}
	if (myShowCounter) {
		objTextAreaCounter.value = objTextArea.value.length;
	}
}

function fcTextIsNumeric(sText) {
   var ValidChars = "0123456789.";
   var IsNumber=true;
   var Char;
   for (i = 0; i < sText.length && IsNumber == true; i++) { 
      Char = sText.charAt(i); 
      if (ValidChars.indexOf(Char) == -1) { 
         IsNumber = false;
		}
	}
   return IsNumber;
}

//Localiza um apóstrofo e substitui por ´
function SubstituiApostrofo() {
           try { 
           		if (allRTEs) {
                          	var vRTEs = allRTEs.split(";");
                          	for (var i = 0; i < vRTEs.length; i++) {
                                          	if (document.all) {
                                            	oRTE = frames[vRTEs[i]];
                                          	} else {
                                            	oRTE = document.getElementById(rte).contentWindow;
                                          	}
                                          	oRTE.document.body.innerHTML = oRTE.document.body.innerHTML.replace("'", "´"); 
                          }
           		}
           	} catch(err) {}

	var form = null;
	for (var intfrmCount=0; intfrmCount <window.document.forms.length; intfrmCount++) {
		form = window.document.forms[intfrmCount];
		for (var i=0; i < form.elements.length; i++) {
			if (form.elements[i].type == "text" || form.elements[i].type == "textarea") {
				if (form.elements[i].value != ""){
					texto = form.elements[i].value;
					var regexp = /'/g;
					texto = texto.replace(regexp, "´");
					form.elements[i].value = texto;
				}
			}
		}
	}
}

function getElement(whichLayer) {
	if (document.getElementById) {
		// this is the way the standards work
		var frmObj = document.getElementById(whichLayer);
	} else if (document.all) {
		// this is the way old msie versions work
		var frmObj = document.all[whichLayer];
	} else if (document.layers) {
		// this is the way nn4 works
		var frmObj = document.layers[whichLayer];
	}
	
	return frmObj;
}

function fcTextIsEmail(myText, myMessage) {
	checkEmail = myText.value;
	if ((checkEmail.indexOf('@') < 0) || ((checkEmail.charAt(checkEmail.length-4) != '.') && (checkEmail.charAt(checkEmail.length-3) != '.'))) {
		alert(myMessage);
		myText.select();
		return false;
	} else {
		return true; 
	} 
} 
