function calculateRateByPercent(strElementId, iPercent, strValue)
{
	strResult = (strValue) * (iPercent / 100);
	strResult = Math.round(strResult);
	document.getElementById(strElementId).value = strResult;
}
function trim(stringToTrim) 
{
	return stringToTrim.replace(/^\s+|\s+$/g,"");
}
function checkEmail(strEmail) 
{
	if (/^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,6})+$/.test(strEmail))
	{
		return false;
	}
	return true;
}
function calculate_day_by_2_date(date1, date2) 
{	
	var date1 = convert_date_to_js(date1);
	var date2 = convert_date_to_js(date2);

	// The number of milliseconds in one day
	var ONE_DAY = 1000 * 60 * 60 * 24

	// Convert both dates to milliseconds
	var date1_ms = date1.getTime();
	var date2_ms = date2.getTime();

	// Calculate the difference in milliseconds
	var difference_ms = Math.abs(date1_ms - date2_ms);
	
	// Convert back to days and return
	return Math.round(difference_ms/ONE_DAY);

}
function convert_date_to_js(strDate)
{
	var aryDate = strDate.split("-");
	
	var iDay = aryDate[0];
	var iMonth = aryDate[1] - 1;
	var iYear = aryDate[2];
	
	var date =new Date(iYear, iMonth, iDay);
	
	return date;
}
function IsNumeric(str_value_ori, str_id, str_default)
{
	re = /\$|,|@|#|~|`|\%|\*|\^|\&|\(|\)|\+|\=|\[|\_|\]|\[|\}|\{|\;|\:|\'|\"|\<|\>|\?|\||\\|\!|\$|/g;
	
	var str_value = str_value_ori.replace(re, "");
	
	if(str_default == null)
	{
		str_default = '0';
	}
	if(str_value == '')
	{
		document.getElementById(str_id).value = str_default;
	}
	else
	{
		var ValidChars = "0123456789.-,";
		var IsNumber=true;
		var Char;


		for (i = 0; i < str_value.length && IsNumber == true; i++) 
		{ 
			Char = str_value.charAt(i);
			
			if (ValidChars.indexOf(Char) == -1) 
			{
				IsNumber = false;
			}
		}
		
		if(isNaN(str_default))
		{
			if(IsNumber == true)
			{
				document.getElementById(str_id).value = str_value;
			}
			else
			{
				document.getElementById(str_id).value = str_default;
			}
		}
		else
		{
			if(IsNumber == true)
			{
				/*if(str_value < str_default)
				{
					str_value = str_default;
				}*/
				document.getElementById(str_id).value = str_value;
			}
			else
			{
				document.getElementById(str_id).value = str_default;
			}
		}		
	}
}
function IsCharOnly(str_value_ori, str_id, str_default)
{
	re = /\$|,|@|#|~|`|\%|\*|\^|\&|\(|\)|\+|\=|\[|\-|\_|\]|\[|\}|\{|\;|\:|\'|\"|\<|\>|\?|\||\\|\!|\$|/g;
	
	var str_value = str_value_ori.replace(re, "");
	
	if(str_default == null)
	{
		str_default = '';
	}
	if(str_value == '')
	{
		document.getElementById(str_id).value = str_default;
	}
	else
	{
		var ValidChars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ[]{},./<>?!@#$%^&*()_+~";
		var IsChar=true;
		var Char;


		for (i = 0; i < str_value.length && IsChar == true; i++) 
		{ 
			Char = str_value.charAt(i);
			
			if (ValidChars.indexOf(Char) == -1) 
			{
				IsChar = false;
			}
		}
		
		if(isNaN(str_default))
		{
			if(IsChar == true)
			{
				document.getElementById(str_id).value = str_value;
			}
			else
			{
				document.getElementById(str_id).value = str_default;
			}
		}
		else
		{
			if(IsChar == true)
			{
				document.getElementById(str_id).value = str_value;
			}
			else
			{
				document.getElementById(str_id).value = str_default;
			}
		}		
	}
}
function transformMySQLDate(strDate)
{
	var aryDate = strDate.split("-");
	
	var iDay = aryDate[0];
	var iMonth = aryDate[1];
	var iYear = aryDate[2];
	
	return iYear + '-' + iMonth + '-' + iDay;
}
function IsHour(str_value, str_id)
{	
	if(str_value == '')
	{
		document.getElementById(str_id).value = '0000';
	}
	else
	{
		var ValidChars = "0123456789";
		var IsNumber=true;
		var Char;


		for (i = 0; i < str_value.length && IsNumber == true; i++) 
		{ 
			Char = str_value.charAt(i);
			
			if (ValidChars.indexOf(Char) == -1) 
			{
				IsNumber = false;
			}
		}
		
		if(IsNumber == true)
		{
			document.getElementById(str_id).value = str_value;
		}
		else
		{
			document.getElementById(str_id).value = '0000';
		}
	}
}
function validCheckInOutDate(strDate)
{
	var aryDate = strDate.split("-");
	
	var iDay = aryDate[0];
	var iMonth = aryDate[1];
	var iYear = aryDate[2];
	
	var currentTime = new Date();
	var month = currentTime.getMonth() + 1;
	
	if(month < 10)
	{
		month = "0" + month;
	}
	var day = currentTime.getDate();
	
	if(day < 10)
	{
		day = "0" + day;
	}
	
	var year = currentTime.getFullYear();

	var today = year + '-' + Math.round(month) + '-' + Math.round(day);
	var date = iYear + '-' + Math.round(iMonth) + '-' + Math.round(iDay);

	if(iYear == year)
	{
		if(iMonth == month)
		{
			if(iDay == day || iDay > day)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
		else
		{
			if(iMonth > month)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
	else
	{
		if(iYear > year)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}
function compareTwoDate(strDate, strDateCompare)
{
	var aryDate = strDate.split("-");
	
	var iDay = aryDate[0];
	var iMonth = aryDate[1];
	var iYear = aryDate[2];
	
	var strDateCompare = strDateCompare.split("-");
	
	var day = strDateCompare[0];
	var month = strDateCompare[1];
	var year = strDateCompare[2];
	
	if(iYear == year)
	{
		if(iMonth == month)
		{
			if(iDay == day || iDay > day)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
		else
		{
			if(iMonth > month)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
	}
	else
	{
		if(iYear > year)
		{
			return true;
		}
		else
		{
			return false;
		}
	}
}
function convert4DigitTimeToMinute(strTime)
{
	if(isNaN(strTime))
	{
		return 0;
	}
	else
	{
		var strBefore = strTime;
		var strAfter  = '';

		var strHour = strBefore.substr(0, 2);
		var strMinute = strBefore.substr(2, 2);
		
		if(strHour < 10)
		{
			strHour = strHour.substr(1, 1);
		}
		
		var iHour = parseInt(strHour);
		var iMinute = parseInt(strMinute);

		var iTotalMinute = (iHour * 60) + iMinute;
	
		return iTotalMinute;
	}
}
function trimNumber(s) 
{
  while (s.substr(0,1) == '0' && s.length>1) { s = s.substr(1,9999); }
  return s;
}


function isValidDate(dateStr, format) 
{
   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 (parseFloat(dd) != dt.getDate()) { return false; }
   if (parseFloat(mm)-1 != dt.getMonth()) { return false; }
   return true;
}
function trimNoSpaceAll(inputString) {
	var inputString = inputString.toLowerCase();
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf(" ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf(" ")) + retValue.substring(retValue.indexOf(" ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function