function fnTextCounter(field, countfield, maxlimit) {
	/*
	* formname   - the form name
	* field      - the field name
	* countfield - the field that holds the number of chars remaining
	* maxlimit   - the maximum number of characters
	*
	*/
	if (field.value.length > maxlimit) {
		field.value = field.value.substring(0, maxlimit);
	} else {
		countfield.value = maxlimit - field.value.length;
	}
}

function changeimage(imgx,placex)  {
	if (document.images) {
		document.images[placex].src = eval(imgx + ".src");
	}
}


function addSelectItem(lstFrom, lstTo) {
	var i ;
	var arySort = new Array() ;
	var aryValue = new Array() ;

	for ( i = 0; i < lstFrom.length; i++ ) {
		if ( lstFrom.options[i].selected ) {
			var addOption = lstFrom.options[i] ;
			lstTo.options[lstTo.length] = new Option(addOption.text, addOption.value, 0, 1) ;
		}
	}

	for ( i = 0; i < lstTo.length; i++ ) {
		arySort[i] = lstTo.options[i].text ;
		aryValue[arySort[i]] = lstTo.options[i].value ;
	}

	lstTo.length = 0 ;
	arySort.sort() ;

	for ( i = 0; i < arySort.length; i++ ) {
		lstTo.options[lstTo.length] = new Option(arySort[i], aryValue[arySort[i]], 0, 0) ;
	}
}


function removeSelectItem(lstFrom) {
	var i ;
	var arySort = new Array() ;
	var aryValue = new Array() ;

	for ( i = 0; i < lstFrom.length; i++ ) {
		if ( lstFrom.options[i].selected ) {
			var addOption = lstFrom.options[i] ;
			lstFrom.options[i] = null ;
			i-- ;
		}
	}

}

function focusPage(strField)
{
	eval('document.'+ strField +'.focus()')
}

function validDate(lngYear, lngMonth, lngDay) {
	var aryMonthNormal	= new Array(31,28,31,30,31,30,31,31,30,31,30,31);
	var aryMonthLeap	= new Array(31,29,31,30,31,30,31,31,30,31,30,31);

	var blnIsValid		= true;

	if (lngYear % 4 == 0 && (lngYear % 100 != 0 || lngYear % 400 == 0)) {
		if (lngDay < 1 || lngDay > aryMonthLeap[lngMonth - 1]) { blnIsValid = false; }
	} else {
		if (lngDay < 1 || lngDay > aryMonthNormal[lngMonth - 1]) { blnIsValid = false; }
	}

	if (blnIsValid) {
		var dteNow	= new Date();
		var dteToday	= new Date(dteNow.getYear(), dteNow.getMonth(), dteNow.getDate());
		var dteParam	= new Date(lngYear, lngMonth - 1, lngDay);

		if (dteToday > dteParam) { blnIsValid = false; }
	}

	return blnIsValid;
}

var whitespace = " tnr";

function isWhitespace (s) {
	var i;
		for (i = 0; i < s.length; i++)
		{
				var c = s.charAt(i);
				if (whitespace.indexOf(c) == -1) return false;
		}
		return true;
}

function isEmail (s) {
		if (isWhitespace(s)) return false;
		var i = 1;
		var sLength = s.length;
		while ((i < sLength) && (s.charAt(i) != "@"))
		{ i++
		}
		var x = i; if ((i >= sLength) || (s.charAt(i) != "@")) return false;
		else i += 2;
		while ((i < sLength) && (s.charAt(i) != "."))
		{ i++
		}
		if ((i - x) < 2) return false;
		if ((i >= sLength - 2) || (s.charAt(i) != ".")) return false;
		else return true;
}

function fnPopup(url, name, width, height, left, top, surround) {
	if (surround == 1) {
		var extra = ',scrollbars=1,resizable=1,toolbar=1,location=1,directories=0,status=1,menubar=1,copyhistory=0';
	} else {
		var extra = ',scrollbars=0,resizable=0,toolbar=0,location=0,directories=0,status=0,menubar=0,copyhistory=0';
	}
	return window.open(url,name,'left=' + left + ',top=' + top + ',screenX=' + left + ',screenY=' + top + ',width=' + width + ',height=' + height + extra)
}

function isAlphaNumeric(strString) {
    var valid="0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";

    for (var i=0; i<strString.length; i++) {
    	if (valid.indexOf(strString.charAt(i)) < 0) {
            return false;
        }
    }
    return true;
}

function getCheckedValue(radioObj) {
	if(!radioObj)
		return "";
	var radioLength = radioObj.length;
	if(radioLength == undefined)
		if(radioObj.checked)
			return radioObj.value;
		else
			return "";
	for(var i = 0; i < radioLength; i++) {
		if(radioObj[i].checked) {
			return radioObj[i].value;
		}
	}
	return "";
}

function check_date(strDate){
var checkstr = "0123456789";
var Datevalue = "";
var DateTemp = "";
var seperator = "/";
var day;
var month;
var year;
var leap = 0;
var err = 0;
var i;
   err = 0;
   DateValue = strDate;
   /* Delete all chars except 0..9 */
   for (i = 0; i < DateValue.length; i++) {
	  if (checkstr.indexOf(DateValue.substr(i,1)) >= 0) {
	     DateTemp = DateTemp + DateValue.substr(i,1);
	  }
   }
   DateValue = DateTemp;
   /* Always change date to 8 digits - string*/
   /* if year is entered as 2-digit / always assume 20xx */
   if (DateValue.length == 6) {
      DateValue = DateValue.substr(0,4) + '20' + DateValue.substr(4,2); }
   if (DateValue.length != 8) {
      err = 19;}
   /* year is wrong if year = 0000 */
   year = DateValue.substr(4,4);
   if (year == 0) {
      err = 20;
   }
   /* Validation of month*/
   month = DateValue.substr(2,2);
   if ((month < 1) || (month > 12)) {
      err = 21;
   }
   /* Validation of day*/
   day = DateValue.substr(0,2);
   if (day < 1) {
     err = 22;
   }
   /* Validation leap-year / february / day */
   if ((year % 4 == 0) || (year % 100 == 0) || (year % 400 == 0)) {
      leap = 1;
   }
   if ((month == 2) && (leap == 1) && (day > 29)) {
      err = 23;
   }
   if ((month == 2) && (leap != 1) && (day > 28)) {
      err = 24;
   }
   /* Validation of other months */
   if ((day > 31) && ((month == "01") || (month == "03") || (month == "05") || (month == "07") || (month == "08") || (month == "10") || (month == "12"))) {
      err = 25;
   }
   if ((day > 30) && ((month == "04") || (month == "06") || (month == "09") || (month == "11"))) {
      err = 26;
   }
   /* if 00 ist entered, no error, deleting the entry */
   if ((day == 0) && (month == 0) && (year == 00)) {
      err = 0; day = ""; month = ""; year = ""; seperator = "";
   }
   /* if no error, write the completed date to Input-Field (e.g. 13.12.2001) */
   if (err == 0) {
      //DateField.value = day + seperator + month + seperator + year;
      return true;
   }
   /* Error-message if err != 0 */
   else {
   	  return false;
      //alert("Date is incorrect!");
      //DateField.select();
	  //DateField.focus();
   }
}


var minYear=1900;
var maxYear=2100;

function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30}
		if (i==2) {this[i] = 29}
   }
   return this
}

function isDate(strDay, strMonth, strYear){
	var daysInMonth = DaysArray(12)
	month=parseInt(strMonth)
	day=parseInt(strDay)
	year=parseInt(strYear)
	if (strMonth.length<1 || month<1 || month>12){
		return false
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month]){
		return false
	}
return true
}
