//----------------------------------------------
function GetThisYear() {
	//var thisYear = (new Date()).getYear()
	//alert(thisYear)
	//alert("test")
	//alert(ShowTodayDate())
	var now = new Date();
	return now.getFullYear()
//	return thisYear
}

function isAddress1(ss, min, max){
	var inputStr = ss.toString()
	var BadChar = "~!@$%^*_+|`={}<>?[];"
	var inputStr2 = BadChar.toString()
	var SearchItem = " "
	if (inputStr == null || inputStr == ""){// can not empty
		return false
	}
	if((inputStr.length > 0) && (inputStr.search(SearchItem) == 0)){//no leading space
		return false
	}
	if ((inputStr.length >= min)&&(inputStr.length <= max)){
		for (var i = 0; i < inputStr.length; i++){
			for (var j = 0; j < inputStr2.length; j++){
				if((inputStr.charAt(i) == inputStr2.charAt(j))){
					return false;
				}
			}
		}
		return true;
	}
	else{
		return false;
	}
}

/*
function isAddress1(ss, min, max){
	var inputStr = ss.toString()
	var BadChar = "~!@$%^*_+|`={}<>?[];"
	var inputStr2 = BadChar.toString()
	if ((inputStr.length >= min)&&(inputStr.length <= max)){
		for (var i = 0; i < inputStr.length; i++){
			for (var j = 0; j < inputStr2.length; j++){
				if((inputStr.charAt(i) == inputStr2.charAt(j))){
					return false;
				}
			}
		}
		return true;
	}
	else{
		return false;
	}
}
*/

function isAlphaNumericOnly(ss,min,max,bolSpace){
	var inputStr	= ss.toString()
	var OkChar
	var match
	if((inputStr.length >= min)&&(inputStr.length <= max)){
		if(bolSpace){
			OkChar	= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz 1234567890"
		}
		else{
			OkChar	= "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890"
		}
		for (var i = 0; i < inputStr.length; i++){
			match = false;
			for (var j = 0; j < OkChar.length; j++){
				if(inputStr.charAt(i) == OkChar.charAt(j)){
					match=true;
					j=OkChar.length;
				}
			}
			if(!match){
				return false;
			}
		}	
		return true;
	}
	else{
		return false;
	}
}

function isAlphaOnly(ss,min,max,bolSpace){
	var inputStr = ss.toString()
	var OkChar
	var match
	if((inputStr.length >= min)&&(inputStr.length <= max)){
		if(bolSpace){
			OkChar =  "ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz"
		}
		else{
			OkChar =  "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz"
		}
		for(var i = 0; i < inputStr.length; i++){
			match = false
			for (var j = 0; j < OkChar.length; j++){
				if((inputStr.charAt(i) == OkChar.charAt(j))){
					match=true;
					j = OkChar.length
				}
			}
			if (!match){
				return false;
			}
		}
		return true;
	}
	else{
		return false;
	}
	
}
function isName(ss,min,max,bolSpace){
	var inputStr = ss.toString()
	var OkChar
	var match
	if((inputStr.length >= min)&&(inputStr.length <= max)){
		if(bolSpace){
			OkChar =  "ABCDEFGHIJKLMNOPQRSTUVWXYZ'.- abcdefghijklmnopqrstuvwxyz"
		}
		else{
			OkChar =  "ABCDEFGHIJKLMNOPQRSTUVWXYZ'.-abcdefghijklmnopqrstuvwxyz"
		}
		for(var i = 0; i < inputStr.length; i++){
			match = false
			for (var j = 0; j < OkChar.length; j++){
				if((inputStr.charAt(i) == OkChar.charAt(j))){
					match=true;
					j = OkChar.length
				}
			}
			if (!match){
				return false;
			}
		}
		return true;
	}
	else{
		return false;
	}
	
}


function isNumericOnly(ss,min,max,bolSpace){
	var inputStr = ss.toString()
	var OkChar
	var match
	if((inputStr.length >= min)&&(inputStr.length <= max)){
		if(bolSpace){
			OkChar =  "12345 67890"
		}
		else{
			OkChar =  "1234567890"
		}
		for(var i = 0; i < inputStr.length; i++){
			match = false
			for (var j = 0; j < OkChar.length; j++){
				if((inputStr.charAt(i) == OkChar.charAt(j))){
					match=true;
					j = OkChar.length
				}
			}
			if (!match){
				return false;
			}
		}
		return true;
	}
	else{
		return false;
	}
	
}


//----------------------------------------------
function ReplaceQuotes(s)
{return s.replace(/\"/g, "'");}

function MaxLength(obj, max)
{if (obj.value.length > max) obj.value = obj.value.substr(0, max);}

function TabFirst(obj, e)
{
	if (e.keyCode != 9 || e.shiftKey) return;
	cantGetFocus = String("radio;hidden");
	for (i = 0; i < obj.form.length; i++)
		if (cantGetFocus.search(obj.form.elements[i].type) == -1)
			return obj.form.elements[i].focus();
}

function BackTabLast(obj, e)
{
	if (e.keyCode != 9 || !e.shiftKey) return;
	cantGetFocus = String("radio;hidden");
	for (i = obj.form.length - 1; i >= 0 ; i--)
		if (cantGetFocus.search(obj.form.elements[i].type) == -1)
			return obj.form.elements[i].focus();
}

function AutoTab(obj, max, e)
{
	if (e.keyCode == 9 || e.keyCode == 13 || e.keyCode == 16) return;
// this function should be called from the onKeyUp event
	if (obj.type == "text" && obj.value.length == max)
	{
		j = -1;
		cantGetFocus = String("radio;hidden");
		for (i = 0; i < obj.form.length; i++)
		{
			if (obj.form.elements[i] == obj || j > -1)
			{
				j = (i == obj.form.length - 1 ? 0 : i + 1);
				if (cantGetFocus.search(obj.form.elements[j].type) == -1)
				{
					obj.form.elements[j].focus();
					i = obj.form.length;
				}
				else if (j == 0)
					i = -1;
			}
		}
	}
}

function ResetUI(focusObj, ErrMsg)
{
	if (ErrMsg > "") {
		alert(ErrMsg);
	}
	focusObj.focus();
	return (false);
}

function isEmpty(s)
{ return ((s == null) || (s.length == 0)); }

function isFloat(s, emptyOK)
{
// Returns true if valid float
  if(isEmpty(s))
    if(isFloat.arguments.length == 1) return false;
    else return (emptyOK == true);

  AlreadyHaveDecimalPoint = new Number(0);
  for(i = new Number(0); i < s.length; i++)
  {
    if((s.charAt(i) >= "0") && (s.charAt(i) <= "9")) continue;
    if(s.charAt(i) != ".") return false;
    if(AlreadyHaveDecimalPoint == 1) return false;
    AlreadyHaveDecimalPoint = 1;
  }
  return true;
}

function isCurrency(s, emptyOK)
{
// Returns true if valid currency
  if(!isFloat(s, emptyOK)) return false;
  if (s=="0") return false;
	pos = new Number(0);
  for(i = new Number(s.length) - 1; i >= 0; i--)
  {
    pos++;
    if(s.charAt(i) == ".")
			if(pos > 3) return false;
			else return true;
  }
  return true;
}

function isNumber(s, emptyOK)
{
// Returns true if positive number
  if(isEmpty(s))
    if(isNumber.arguments.length == 1) return false;
    else return (emptyOK == true);

  for(i =0; i < s.length; i++)
    if(!((s.charAt(i) >= "0") && (s.charAt(i) <= "9"))) return false;
  return true;
}

function isWhiteSpace(s)
{
  var whitespace = " \t\n\r";
  if(isEmpty(s)) return true;

  for(i = new Number(0); i < s.length; i++)
    if(whitespace.indexOf(s.charAt(i)) == -1) return false;

  return true;
}

function isEmail(s, emptyOK)
{
// Must conform to a@b.c
  if(isEmpty(s))
    if(isEmail.arguments.length == 1) return false;
    else return (emptyOK == true);

  i = new Number(s.indexOf("@", 1));
  if(i == -1) return false;

  i = (s.indexOf(".", i + 2));
  if(i == -1) return false;
  
  return (s.length > i + 1);
}

function isPhoneNbr(areacode, exchange, nbr, emptyOK)
{
  
  if(isEmpty(areacode.value + exchange.value + nbr.value)){
    if(isPhoneNbr.arguments.length == 3) return false;
    else return (emptyOK == true);
  }

  if(!isNumber(areacode.value + exchange.value + nbr.value)) return false;
  else
  {
    if (!isNumber(exchange.value + nbr.value)) return false;
    else
      if (!isNumber(nbr.value)) return false;
  }
  return true;
}

