
function getXmlHttpObject()
{
	var xmlHttp = null;
	try
	{
		// Firefox, Opera 8.0+, Safari
		xmlHttp = new XMLHttpRequest();
	}
	catch (e)
	{
		// Internet Explorer
		try
		{
			xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
		}
		catch (e)
		{
			xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
		}
	}

	if ( ! xmlHttp )
	{
		alert("Sorry, your browser doesn't support AJAX.");
	}
	
	return xmlHttp;
}

function is_numeric(value)
{
    if ((isNaN(value)) || (value.length == 0))
        return false;
    else
        return true;
}

function updateDays(dayElementID, monthElementID, yearElementID) {
    // Disable function for now, until we get it fixed to work with IE
    // (select into span, HTML to cover the whole select [take care with attributes])
    return false;
    var i=0;
    var text = "";
    var month = $(monthElementID).value;
    if ( !is_numeric(month) ) month = 1;
    
    var days = {1:31, 2:29, 3:31, 4:30, 5:31, 6:30, 7:31, 8:31, 9:30, 10:31, 11:30, 12:31};
    
    if ( !isLeapYear($(yearElementID).value) ) days[2] = 28;
    
    for ( i = 1; i < days[month]+1; i++ ) {
        text += '<option value="' + i + '"';
        if ( $(dayElementID).value == i ) text += ' selected="selected"';
        text += '>' + i + '</option>';
    }
    $(dayElementID).setHTML(text);
}

function isLeapYear(year) {
    var isLeap = true;
    if ( year % 4 != 0 ) isLeap = false;
    if ( year % 100 == 0 ) isLeap = false;
    if ( year % 400 == 0 ) isLeap = true;
    return isLeap;
}

/**
*
*  Javascript trim, ltrim, rtrim
*  http://www.webtoolkit.info/
*
**/

function trim(str, chars) {
	return ltrim(rtrim(str, chars), chars);
}
 
function ltrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("^[" + chars + "]+", "g"), "");
}
 
function rtrim(str, chars) {
	chars = chars || "\\s";
	return str.replace(new RegExp("[" + chars + "]+$", "g"), "");
}

function ismaxlength(obj, value)
{
	if (obj.getAttribute && obj.value.length > value)
	{
		obj.value = obj.value.substring(0, value);
	}
}

document.getElementsByClassName = function(clsName){
    var retVal = new Array();
    var elements = document.getElementsByTagName("*");
    for(var i = 0;i < elements.length;i++){
        if(elements[i].className.indexOf(" ") >= 0){
            var classes = elements[i].className.split(" ");
            for(var j = 0;j < classes.length;j++){
                if(classes[j] == clsName)
                    retVal.push(elements[i]);
            }
        }
        else if(elements[i].className == clsName)
            retVal.push(elements[i]);
    }
    return retVal;
}

function round(val, precision)
{
	return parseFloat(parseFloat(val).toFixed(precision));
}