/* Extra String Functions */
function LTrim() {
  var i = 0;
	
	while ((i < this.length) && (this.charAt(i) == " ")) {
	  i++;
	};
	return(this.substr(i));
};

function RTrim() {
  var i = this.length - 1;

	while ((i >= 0) && (this.charAt(i) == " ")) {
	  i--;
	};
	return(this.substr(0,i+1));
};

function Trim() {
  return(this.lTrim().rTrim());
};

function CharAtIsNumber(i) {
  return((this.charCodeAt(i) >= 48) && (this.charCodeAt(i) <= 57));
};

function CharAtAsNumber(i) {
  if (this.charAtIsNumber(i)) {
	  return(this.charCodeAt(i) - 48);
	} else {
	  return(undefined);
	};
};

function CharAtInAToZ(i) {
  var cCode;
	
	cCode = this.charCodeAt(i);
	return(((cCode >= 65) && (cCode <= 90)) || ((cCode >= 97) && (cCode <= 122)));
};

String.prototype.lTrim          = LTrim;
String.prototype.rTrim          = RTrim;
String.prototype.trim           = Trim;
String.prototype.charAtIsNumber = CharAtIsNumber;
String.prototype.charAtAsNumber = CharAtAsNumber;
String.prototype.charAtInAToZ   = CharAtInAToZ;

/* Extra Array Functions */
function Equals(anArray) {
  return(String(this.valueOf()) == String(anArray.valueOf()));
};

Array.prototype.equals          = Equals;



function OpenWindow(pURL, pWidth, pHeight)
{
  var win = window.open(pURL, 'win', 'dependent,width=' + pWidth + ',height=' + pHeight);
}

function OpenScrollWindow(pURL, pWidth, pHeight)
{
  var win = window.open(pURL, 'scrollwin', 'dependent,width=' + pWidth + ',height=' + pHeight + ',scrollbars=1');
}

function OpenPicture(pPicture, pWidth, pHeight)
{
  OpenWindow('/openpicture.asp?picture=' + pPicture, (parseInt(pWidth) + 20), (parseInt(pHeight) + 45));
}

function MailTo(pUsername, pDomain)
{
  var strLink = 'mailto:' + pUsername + '@' + pDomain;
  window.open(strLink);
}

function checkValidEmail(pValue)
{
	var x = pValue;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x)) return true;
	else return false;
}

function isValidAantal(pInput, pLow) {
  var vValue = Number(pInput.value);
  
  if (vValue == undefined) {
    return(false);
  }
  if (isNaN(vValue)) {
    vValue = pLow;
  } else {
    if (vValue < pLow) {
      vValue = pLow;
    } else {
      if (vValue > 999) {
        vValue = 999;
      } else {
        vValue = Math.round(vValue);
      }
    }
  }
  pInput.value = vValue;
  
  return(true);
}

function GetFormDate(form, dateName) {
  var day, month, year;
  var result = new Date();
  day   = form[String(dateName)+'_Day'].value;
  month = form[String(dateName)+'_Month'].value;
  year  = form[String(dateName)+'_Year'].value;
  if((day=="")||(month=="")||(year=="")) {
    return(undefined);
  } else {
    result.setTime(0);
    result.setDate(Number(day));
    result.setMonth(Number(month)-1);
    result.setYear(Number(year));
    return(result);
  }
}

function RadioGroupHasValue(aRadioGroup) {
  return ((!aRadioGroup.length) || (RadioGroupValue(aRadioGroup) != undefined));
};

function RadioGroupValue(aRadioGroup) {
  var i;

  if (aRadioGroup.length) {
    for (i=0;i<aRadioGroup.length;i++) {
      if (aRadioGroup[i].checked) {
		    return(aRadioGroup[i].value);
		  };
	  };			
	  return(undefined);
  };
  return(undefined);
};

function HasValue(aTextEdit) {
  if (aTextEdit) {
    if (aTextEdit.value.trim() == "") {
  	  return(false);
  	} else {
  	  return(true);
  	};
  };
  return(true);
};

function TAlertList() {
  var items   = new Array();
  var n       = 0;
  var message = "";
  var f;
  
  this.AddItem    = addItem;
  this.Show       = show;
  this.SetMessage = setMessage;
  
  function setMessage(msg) {
    message = msg;
  	return(true);
  };
  
  function addItem(item) {
    if((!f) && (arguments.length == 2)) {
      f = arguments[1];
    };
    items[n] = item;
  	return(n++);
  };
  
  function show() {
    var i, msg;
  	
    if (n != 0) {
  	  msg = message + "\n";
  		for (i=0;i<n;i++) {
  		  msg += " - " + items[i] + "\n";
  		};
  		alert(msg);
      f && f.focus();
      return(true);
  	};
    return(false);			
  };
};