function RegularExp(McObject, McPattern) {
    if (McPattern != "") {
      var pattern = new RegExp();
      pattern.compile(McPattern,"i");
      if (pattern.exec(McObject.value)) {
	  	alert('File type disallowed.');
		self.location.reload();
		//window.open(window.location, 'attach', 'height=200, width=600', true)
      } 
    } 
  }

function hasValue(obj, obj_type)
{
    if (obj_type == "text" || obj_type == "password")
	{
    	if (obj.value.length == 0) 
      		return false;
    	else 
      		return true;
    	}
    else if (obj_type == "select")
	{
        for (i=0; i < obj.length; i++)
	    	{
		if (obj.options[i].selected && obj.options[i].value != "")
			return true;
		}

       	return false;	
	}
    else if (obj_type == "single_radio" || obj_type == "single_checkbox")
	{

		if (obj.checked)
			return true;
		else
       		return false;	
	}
    else if (obj_type == "radio" || obj_type == "checkbox")
	{

        for (i=0; i < obj.length; i++)
	    	{
		if (obj[i].checked)
			return true;
		}

       	return false;	
	}
}

function isoftype(the_val, data_type)
{
	if (data_type == "date")
	{
		if (isNaN(Date.parse(the_val)))
		{
			return false;
		} else {
			return true;
		}
	}

	if (data_type == "time")
	{
		if (isNaN(Date.parse("01/01/1970 "+the_val)))
		{
			return false;
		} else {
			return true;
		}
	}

	if (data_type == "monetary" || data_type == "numeric")
	{
		if (isNaN(the_val))
		{
			return false;
		} else {
			return true;
		}
	}
}

function dateValidate(theDate) {
	dateArray 	=  theDate.split("/");
	if (dateArray.length < 3)	{
		return "invalidFormat";
	}

	var month = parseFloat(dateArray[0]);
	var date  = parseFloat(dateArray[1]);
	var year  = parseFloat(dateArray[2]);

	// handle the year
	if (isNaN(year) || (year < 1900 && year > 99) || isNaN(month) || month < 1 || month > 12 || isNaN(date) || date > 32) {
		return "invalidDate"
	}

	switch (month) {
		case 2:
			if (date > 29) {
				return "invalidDate";
				break;
			}
		case 4:
		case 6:
		case 9:
		case 11:
			if (date > 30) {
				return "invalidDate";
				break;
			}
	}
	
	var today = new Date();
	var thisyear = today.getYear() % 2000;
	if (year < 100) {
		if (year < thisyear + 30) {
			year += 2000;
		}
		else {
			year += 1900;
		}
	}
	var thisDate = new Date(year,month-1,date);
	if (today > thisDate + 1) {
		return "pastDate";
	}
	if (today < thisDate) {
		return "futureDate";
	}
	return true;
}

function timeValidate(theTime) {
	var timeArray = theTime.split(":");
	if (timeArray.length < 2)
		return "invalidFormat";

	var hours = parseFloat(timeArray[0].replace(/[apm]/gi,""));
	var minutes = parseFloat(timeArray[1].replace(/[apm]/gi,""));
	if (timeArray.length > 2)
		var seconds = parseFloat(timeArray[2].replace(/[apm]/gi,""));
	else
		var seconds = 0;
	var mer = timeArray[timeArray.length-1].replace(/[ ,0-9]/gi,"").toUpperCase();

	if (isNaN(hours) || isNaN(minutes) || isNaN(seconds)) return "invalidTime";
	if (hours < 0 || hours > 23 || minutes < 0 || minutes > 59 || seconds < 0 || seconds > 59) return "invalidTime";
	if (!(mer == "AM" || mer == "PM" || mer == "A" || mer == "P" || mer == "")) return "invalidTime";
	if (hours > 12 && mer != "") return "invalidTime";

	return true;
}

