/**********************************************************\
' Name     : _common.js
' Purpose  : Common scripts
' Created  : 2007-01-24; jimmy.simonsen@drumedar.se
' Modified : 2007-03-15; jimmy.simonsen@drumedar.se
' Comment  : 
\**********************************************************/


// Opens a popup window
var objPopupWindow=0;
function PopupWindow(sUrl, iWidth, iHeight)
{
  if (objPopupWindow) {
    if (!objPopupWindow.closed) objPopupWindow.close();
  }
  var iLeft = (screen.width/2) - iWidth/2;
  var iTop = (screen.height/2) - iHeight/2;
  objPopupWindow = open(sUrl, 'PopupWindow', 'toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbar=no,resizable=no,copyhistory=yes,width=' + iWidth + ',height=' + iHeight + ',left=' + iLeft + ', top=' + iTop + ',screenX=' + iLeft + ',screenY='+ iTop +'');
}


// Return a trimmed version of a string
function FormValidation_Trim(sText)
{
	return sText.replace(/^\s+|\s+$/g,"");
}


// Is field empty?
function FormValidation_IsEmpty(sFieldId)
{
	try {
		var strFieldValue = document.getElementById(sFieldId).value;
		strFieldValue = FormValidation_Trim(strFieldValue);
		return (strFieldValue == "")? true: false;
	}
	catch(err) {
	}
	return true;
}


//Does field consists entirely of numerals?
function FormValidation_IsNumeric(sFieldId)
{
	try {
		var strFieldValue = document.getElementById(sFieldId).value;
		var strPattern = /^[0-9]+$/;
		return (strPattern.test(strFieldValue))? true: false;
	}
	catch(err) {
	}
	return false;
}


//Does field consists entirely of non-numerals?
function FormValidation_IsNonNumeric(sFieldId)
{
	try {
		var strFieldValue = document.getElementById(sFieldId).value;
		var strPattern = /\d+/;
		return (strPattern.test(strFieldValue))? false: true;
	}
	catch(err) {
	}
	return false;
}


// Is two fields equal?
function FormValidation_IsEqual(sFieldId1, sFieldId2)
{
	try {
		var strFieldValue1 = document.getElementById(sFieldId1).value;
		var strFieldValue2 = document.getElementById(sFieldId2).value;
		return (strFieldValue1==strFieldValue2)? true: false;
	}
	catch(err) {
	}
	return false;
}


// Is field a valid emailaddress?
function FormValidation_IsEmail(sFieldId)
{
	try {
		var strFieldValue = document.getElementById(sFieldId).value;
		var strPattern = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
		return (strPattern.test(strFieldValue))? true: false;
	}
	catch(err) {
	}
	return false;
}

// Is field a valid url?
function FormValidation_IsUrl(sFieldId)
{
	try {
		var strFieldValue = document.getElementById(sFieldId).value;
		var strPattern = "^[A-Za-z]+://[A-Za-z0-9-_]+\\.[A-Za-z0-9-_%&\?\/.=]+$";
		return (strPattern.test(strFieldValue))? true: false;
	}
	catch(err) {
	}
	return false;
}

// Is field a valid date (YYYY-MM-DD?
function FormValidation_IsDate(sFieldId)
{
	try {
		var strFieldValue = document.getElementById(sFieldId).value;
		var strPattern = /^(\d{4})(\/|-)(\d{1,2})(\/|-)(\d{1,2})$/;
		var arrMatches = strFieldValue.match(strPattern);
		if (arrMatches != null){
			intYear = parseInt(arrMatches[1]);
			intMonth = parseInt(arrMatches[3]);
			intDay = parseInt(arrMatches[5]);
			
			if (intMonth==1 || intMonth==3 || intMonth==5 || intMonth==7 || intMonth==8 || intMonth==12) {
				return (intDay >=1 && intDay<=31)? true: false;
			}
			else if (intMonth==4 || intMonth==6 || intMonth==9 || intMonth==11) {
				return (intDay >=1 && intDay<=30)? true: false;
			}
			else if (intMonth==2) {
				if (intDay >=1 && intDay<=28) {
					return true;
				}
				else if (intDay==29) {  // Handle leap year
					return (intYear % 4 == 0 && (intYear % 100 != 0 || intYear % 400 == 0))? true: false;
				}
			}
		}
	}
	catch(err) {
	}
	return false;
}

function FormSubmitOnEnterKey(keyEvent, sButtonId, sEvaluateFunction)
{
	var code;
	if (!keyEvent) var keyEvent = window.event;
	if (keyEvent.keyCode) code = keyEvent.keyCode;
	else if (keyEvent.which) code = keyEvent.which;
		
	if(code == 13){
		if (sEvaluateFunction!=null){
			if(eval(sEvaluateFunction)){
				__doPostBack(sButtonId.replace(/:/g,'$'),'');
			}
		}
		else{
		  __doPostBack(sButtonId.replace(/:/g,'$'),'');
		}
		return false;
	}
	return true;
}
