function blurLink() {
  if (this.blur) this.blur();
}
	
function checkEmail(str) {
  var emailPattern = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
  return emailPattern.test(str); 
}

function checkUsername(str) {
  if (str.length < 5 || str.length > 12) return false;  
  var pattern=/^[a-zA-Z]+[0-9a-zA-Z_.-]+$/i;
  return pattern.test(str);
}

function checkUsername32(str) {
  if (str.length < 5 || str.length > 32) return false;  
  var pattern=/^[a-zA-Z]+[0-9a-zA-Z_.-]+$/i;
  return pattern.test(str);
}

function checkPassword(str) {
  if (str.length < 6 || str.length > 16) return false;
  
  var pattern1=/^[0-9a-z]+[0-9a-z_.&!@#%$?*\^+-]+$/i;
  var pattern2=/[0-9]+/;
  var pattern3=/[a-z]+/;
  var pattern4=/[A-Z]+/;
  var pattern5=/[_.&!@#%$*?\^+-]+/;
  
  if(pattern1.test(str) && pattern2.test(str) && pattern3.test(str) && pattern4.test(str) && pattern5.test(str)) {
    return true;
  } else {
	return false;
  }
}

function checkDigits(str) {  
  var pattern=/^[0-9]+$/i;
  return pattern.test(str);
}

function checkPhoneNumber(str) {
  var pattern1=/^\([0-9]{3}\) [0-9]{3} [0-9]{4}$/i;
  var pattern2=/^\([0-9]{3}\) [0-9]{3}\-[0-9]{4}$/i;
  var pattern3=/^\([0-9]{3}\)[0-9]{3} [0-9]{4}$/i;
  var pattern4=/^\([0-9]{3}\)[0-9]{3}\-[0-9]{4}$/i;	
  var pattern5=/^[0-9]{3}\-[0-9]{3}\-[0-9]{4}$/i;
  var pattern6=/^[0-9]{3} [0-9]{3} [0-9]{4}$/i;
	
  if (pattern1.test(str) || pattern2.test(str) || pattern3.test(str) || pattern4.test(str) || pattern5.test(str) || pattern6.test(str)) {
	return true;
  } else {
	return false;
  }
}

function checkDate(str) {
  var pattern1=/^[0-9]\/[0-9]\/20[0-9]{2}$/i;/* 1/1/2010 */
  var pattern2=/^[0-9]\/[0-2][0-9]\/20[0-9]{2}$/i; /* 1/22/2010 */
  var pattern3=/^[0-9]\/3[0-1]\/20[0-9]{2}$/i; /* 1/31/2010 */
  var pattern4=/^0[0-9]\/[0-9]\/20[0-9]{2}$/i;/* 01/1/2010 */
  var pattern5=/^0[0-9]\/[0-2][0-9]\/20[0-9]{2}$/i; /* 01/22/2010 */
  var pattern6=/^0[0-9]\/3[0-1]\/20[0-9]{2}$/i; /* 01/31/2010 */
  var pattern7=/^1[0-2]\/[0-9]\/20[0-9]{2}$/i;/* 11/1/2010 */
  var pattern8=/^1[0-2]\/[0-2][0-9]\/20[0-9]{2}$/i; /* 11/22/2010 */
  var pattern9=/^1[0-2]\/3[0-1]\/20[0-9]{2}$/i; /* 11/30/2010 */
	
  if (pattern1.test(str) || pattern2.test(str) || pattern3.test(str) ||
	  pattern4.test(str) || pattern5.test(str) || pattern6.test(str) ||
	  pattern7.test(str) || pattern8.test(str) || pattern9.test(str) ) {
	return true;
  } else {
	return false;
  }
}

function checkNumber (str) {
	var start_format = " .+-0123456789";
	var number_format = " .0123456789";
	var check_char;
	var decimal = false;
	var trailing_blank = false;
	var digits = false;
	
    if(str.length == 0) return false;

	check_char = start_format.indexOf(str.charAt(0));

	if (check_char == 1) decimal = true;
	else if (check_char < 1) return false;

	for (var i = 1; i < str.length; i++) {
	  check_char = number_format.indexOf(str.charAt(i));
	  if (check_char < 0) return false;
	  else if (check_char == 1) {
	    if (decimal) return false;
		else decimal = true;
	  }	else if (check_char == 0) {
	    if (decimal || digits) trailing_blank = true;
	  } else if (trailing_blank) return false;
	  else digits = true;
	}	

	return true
}

function isTelRecAddr(addr) {
  strAddr = addr.value;
  for (i = 0; i < strAddr.length; i++) {
	ch = strAddr.charAt(i);
	if (!((ch >= "a" && ch <= "z") || (ch >= "A" && ch <= "Z") || (ch >= "0" && ch <= "9") || ch == " " || ch == ":" || ch == "'" || ch == "-" || ch == "/" || ch == "#" || ch == "." )) return false;
  }
  return true;
}

function getCheckedValue(fieldObj) {
  var checkedValue = null;
  if (fieldObj.length) {
	for (var i = 0; i < fieldObj.length; i++) {
	  if (fieldObj[i].checked) {
		if (checkedValue) checkedValue = checkedValue + ',' + fieldObj[i].value;
		else checkedValue = fieldObj[i].value;
	  }
	}
  } else {
	if (fieldObj.checked) checkedValue = fieldObj.value;
  }
  return checkedValue;
}

function popup_small(url, h) {
  var width=615;
  var height= h || 415;
	
  var nScrW = 1024;
  var nScrH = 768;
  if (screen && screen.availWidth) {
    nScrW = screen.availWidth;
    nScrH = screen.availHeight;
  }
  var leftPos = (nScrW-width)/2;
  var topPos = (nScrH-height)/2;
  window.open (url, '_blank', 'width=' + width + ',height=' + height + ',location=no,menubar=no,toolbar=no,status=yes,scrollbars=yes,resizable=yes,top=' + topPos + ',left=' + leftPos);
  return;
}

function popup_large(url, h) {
  var width=766;
  var height= h || 550;
	
  var nScrW = 1024;
  var nScrH = 768;
  if (screen) {
    nScrW = screen.availWidth;
    nScrH = screen.availHeight;
  }
  var leftPos = (nScrW-width)/2;
  var topPos = (nScrH-height)/2;
  window.open (url, '_blank', 'width=' + width + ',height=' + height + ',location=no,menubar=no,toolbar=no,status=yes,scrollbars=yes,resizable=yes,top=' + topPos + ',left=' + leftPos);
  return;
}

function popup (url, w, h) {
  var width=w || 550;
  var height= h || 415;
	
  var nScrW = 1024;
  var nScrH = 768;
  if (screen && screen.availWidth) {
    nScrW = screen.availWidth;
    nScrH = screen.availHeight;
  }
  var leftPos = (nScrW-width)/2;
  var topPos = (nScrH-height)/2;
  window.open (url, '_blank', 'width=' + width + ',height=' + height + ',location=no,menubar=no,toolbar=no,status=yes,scrollbars=yes,resizable=yes,top=' + topPos + ',left=' + leftPos);
  return;
}

function openAndClose(url) {
  window.open(url, '_blank');
  window.close();
}

function autotab(object1, object2, objectsize) {
  if (object1.value.length == objectsize)
    object2.focus();
}

function getUUID() {
  return (new Date()).getTime();
}