
// custom - adrian

function itemSelected(dropdown)
{
	if (dropdown.options.length > 0)
	{
		for (i=0;i<dropdown.options.length;i++)
		{
			if (dropdown.options[i].selected)
			{
				return true;
			}
		}
	}

	return false;
}

function formatCurrency(num) {

	if (isWhitespace(num.toString()))
	{
		return "";
	}

	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num)) 
		num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10) 
		cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
		num = num.substring(0,num.length-(4*i+3))+','+num.substring(num.length-(4*i+3));
//	return (((sign)?'':'-') + '$' + num + '.' + cents);
	return (((sign)?'':'-') + num + '.' + cents);
}

function getNumber(num)
{
	var result = 0.0;
	num = num.toString().replace(/\$|\,/g,'');
	
	if(!isNaN(num))
		result = parseFloat(num);
		
	return result;
}

function preloadImages() { //v2.0

  if (document.images) {

    var imgFiles = preloadImages.arguments;

    if (document.preloadArray==null) document.preloadArray = new Array();

    var i = document.preloadArray.length;

    with (document) for (var j=0; j<imgFiles.length; j++) if (imgFiles[j].charAt(0)!="#"){

      preloadArray[i] = new Image;

      preloadArray[i++].src = imgFiles[j];

  } }

}

function swapImgRestore() { //v2.0

  if (document.swapImgData != null)

    for (var i=0; i<(document.swapImgData.length-1); i+=2)

      document.swapImgData[i].src = document.swapImgData[i+1];

}

function swapImage() { //v2.0

  var i,j=0,objStr,obj,swapArray=new Array,oldArray=document.swapImgData;

  for (i=0; i < (swapImage.arguments.length-2); i+=3) {

    objStr = swapImage.arguments[(navigator.appName == 'Netscape')?i:i+1];

    if ((objStr.indexOf('document.layers[')==0 && document.layers==null) ||

        (objStr.indexOf('document.all[')   ==0 && document.all   ==null))

      objStr = 'document'+objStr.substring(objStr.lastIndexOf('.'),objStr.length);

    obj = eval(objStr);

    if (obj != null) {

      swapArray[j++] = obj;

      swapArray[j++] = (oldArray==null || oldArray[j-1]!=obj)?obj.src:oldArray[j];

      obj.src = swapImage.arguments[i+2];

  } }

  document.swapImgData = swapArray; //used for restore

}

function getElementPosition(element)
{
	var x = y = 0;
	while (element!=null)
	{
		try 
		{
			x += element.offsetLeft;
			y += element.offsetTop;
			element = element.offsetParent;		
		}
		catch(exception)
		{
			alert(ex.message);
			return {x:0,y:0};
		}
	}
	return {x:x,y:y};
}

function findPos(obj) {
	var curleft = curtop = 0;
	if (obj.offsetParent) {
		curleft = obj.offsetLeft
		curtop = obj.offsetTop
		while (obj = obj.offsetParent) {
			curleft += obj.offsetLeft
			curtop += obj.offsetTop
		}
	}
	return [curleft,curtop];
}

function showObject(toolTipId, control)
{
	var toolTip = document.getElementById(toolTipId);
	if (toolTip == null)
		return false;
		
	toolTip.style.display = "";
	var position = getElementPosition(control);
	toolTip.style.left = position.x - toolTip.offsetWidth;
	toolTip.style.top = position.y;
}

function hideObject(toolTipId)
{
	var toolTip = document.getElementById(toolTipId);
	if (toolTip == null)
		return;

	toolTip.style.display = "none";
}

String.prototype.trim = function(character) {
	if (character != null) {
		var expresion = "^" + character + "+|" + character + "+$";
		return this.replace(new RegExp(expresion, "g"),"");
	}
	return this.replace(/^\s+|\s+$/g,"");
}
String.prototype.ltrim = function(character) {
	if (character != null) {
		var expresion = "^" + character + "+";
		return this.replace(new RegExp(expresion, "g"),"");
	}
	return this.replace(/^\s+/,"");
}
String.prototype.rtrim = function(character) {
	if (character != null) {
		var expresion = character + "+$";
		return this.replace(new RegExp(expresion, "g"),"");
	}
	return this.replace(/\s+$/,"");
}

function isValidEMail(email)
{
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(email)) return true;
	
	return false;
}

function IsDateValid(dateid, fieldname)
{
	var DateTextBox = document.getElementById(dateid);
	if (!isWhitespace(DateTextBox.value))
	{
		if(isDateInValidFormat(DateTextBox.value))
		{
			var dateArray = DateTextBox.value.split("/");
			var sDay = dateArray[0].ltrim('0');
			var sMonth = dateArray[1].ltrim('0');
			var sYear = dateArray[2].ltrim('0');
			
			if (!isDate(sYear, sMonth, sDay))
			{
				alert(fieldname + " is not a valid date");
				DateTextBox.focus();
				DateTextBox.select();
				return false;
			}
		}
		else
		{
			alert(fieldname + " is not in the correct format. Please enter a date in the format d/m/yyyy");
			DateTextBox.focus();
			DateTextBox.select();
			return false;
		}
	}
	return true;
}

function openManagmentPopUp(url, width, height, name)
{
	var popupName = name != null ? name.toString() : 'popup';
	window.open(url, popupName, 'width=' + width + ',height=' + height + ',scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=158,top=155');
}

function openPopUp(url)
{
	window.open(url, 'popup', 'width=800,height=600,scrollbars=yes,resizable=yes,toolbar=no,directories=no,location=no,menubar=no,status=no,left=158,top=155');
}

function isFieldOptionKey(evt)
{
	var charCode = (evt.which) ? evt.which : evt.keyCode;
	return isAlphaNumericKey(evt) || charCode == 32 || charCode == 40 || 
	charCode == 41 || charCode == 45 || charCode == 91 || charCode == 93 || charCode == 43;
}

function isDecimalKey(evt)
{
	var charCode = (evt.which) ? evt.which : evt.keyCode;
	return isNumericKey(evt) || charCode == 46;
}

function isNumericKey(evt)
{
	var charCode = (evt.which) ? evt.which : evt.keyCode
	return isDigit(String.fromCharCode(charCode)) || charCode == 8 ||
	charCode == 37 || charCode == 39 || charCode == 13;
}

function isAphabeticKey(evt)
{
	var charCode = (evt.charCode) ? evt.charCode : evt.keyCode
	return isLetter(String.fromCharCode(charCode)) || charCode == 8 ||
	charCode == 37 || charCode == 39;
}

function isAlphaNumericKey(evt)
{
	var charCode = (evt.charCode) ? evt.charCode : evt.keyCode
	return isLetterOrDigit(String.fromCharCode(charCode)) || charCode == 8 ||
	charCode == 37 || charCode == 39;
}

function isValidDateKey(evt)
{
	return (isNumericKey(evt) || (evt.charCode ? evt.charCode : evt.keyCode) == 47);
}

// Valid format DD/MM/YYYY
function isDateInValidFormat(sDate)
{
	var re = /^\d{1,2}\/\d{1,2}\/\d{4}$/
	return re.test(sDate)
}