var ua={
    ie:function()
        {return this._ie;},
    firefox:function()
        {return this._firefox;},
    opera:function()
        {return this._opera;},
    safari:function()
        {return this._safari;},
    windows:function()
        {return this._windows;},
    osx:function()
        {return this._osx;},
    populate:function()
        {
            var agent=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera.(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))/.exec(navigator.userAgent);
            var os=/(Mac OS X;)|(Windows;)/.exec(navigator.userAgent);
            if(agent)
            {
                ua._ie=agent[1]?parseFloat(agent[1]):NaN;
                ua._firefox=agent[2]?parseFloat(agent[2]):NaN;
                ua._opera=agent[3]?parseFloat(agent[3]):NaN;
                ua._safari=agent[4]?parseFloat(agent[4]):NaN;
            }
            else
            {
                ua._ie=ua._firefox=ua._opera=ua._safari=NaN;
            }
            if(os)
            {
                ua._osx=!!os[1];
                ua._windows=!!os[2];
            }
            else
            {
                ua._osx=ua._windows=false;
            }
        }
};

/*var ua={ie:function(){return this._ie;},firefox:function(){return this._firefox;},opera:function(){return this._opera;},safari:function(){return this._safari;},windows:function(){return this._windows;},osx:function(){return this._osx;},populate:function(){var agent=/(?:MSIE.(\d+\.\d+))|(?:(?:Firefox|GranParadiso|Iceweasel).(\d+\.\d+))|(?:Opera.(\d+\.\d+))|(?:AppleWebKit.(\d+(?:\.\d+)?))/.exec(navigator.userAgent);var os=/(Mac OS X;)|(Windows;)/.exec(navigator.userAgent);if(agent){ua._ie=agent[1]?parseFloat(agent[1]):NaN;ua._firefox=agent[2]?parseFloat(agent[2]):NaN;ua._opera=agent[3]?parseFloat(agent[3]):NaN;ua._safari=agent[4]?parseFloat(agent[4]):NaN;}else{ua._ie=ua._firefox=ua._opera=ua._safari=NaN;}
if(os){ua._osx=!!os[1];ua._windows=!!os[2];}else{ua._osx=ua._windows=false;}}};*/

function editor_date_month_change(month_el, day_el, year_el) 
{
    var month_el = ge(month_el);
    var day_el = ge(day_el);
    var year_el = year_el ? ge(year_el) : false;
    var new_num_days = month_get_num_days(month_el.value, year_el.value && year_el.value != -1 ? year_el.value : false);
    var b = day_el.options[0].value == -1 ? 1 : 0;
    for (var i = day_el.options.length; i > new_num_days + b; i--) 
    {
        remove_node(day_el.options[i - 1]);
    }
    for (var i = day_el.options.length; i < new_num_days + b; i++) 
    {
        day_el.options[i] = new Option(i + (b ? 0 : 1));
    }
}


function ge(id)
{
    if(typeof(id)=='undefined')
    {
        Util.error('Tried to get an undefined element!');
        return null;
    }
    var obj;
    if(typeof(id)=='string')
    {
        obj=document.getElementById(id);
        if(!(ua.ie()>=7))
        {
            return obj;
        }
        if(!obj)
        {
            return null;
        }
        else if(typeof(obj.id)=='string'&&obj.id==id)
        {return obj;}
        else
        {
            var candidates=document.getElementsByName(id);
            if(!candidates||!candidates.length)
            {return null;}
            var maybe=[];
            for(var ii=0;ii<candidates.length;ii++)
            {
                var c=candidates[ii];
                if(!c.id&&id){continue;}
                if(typeof(c.id)=='string'&&c.id!=id){continue;}
                maybe.push(candidates[ii]);
            }
            if(maybe.length!=1)
            {
                Util.error('ge() failed in a bizarre complicated edge case. Check comments.');
                return null;
            }
            return maybe[0];
        }
    }
    else
    {
        return id;
    }
    return null;
}

function editor_date_year_change(month, day, year) 
{
    editor_date_month_change(month, day, year);
}

function month_get_num_days(month,year)
{
    var temp_date;if(month==-1)
    {
        return 31;
    }
    temp_date=new Date(year?year:1912,month,0);
    return temp_date.getDate();
}

function remove_node(node)
{
    if(node.removeNode)
    { 
        node.removeNode(true);
    }
    else
    {
        for(var ii=node.childNodes.length-1;ii>=0;ii--)
        {
            remove_node(node.childNodes[ii]);
        }
        node.parentNode.removeChild(node);
    }
    return null;
}

function textLimit(ta, count) 
{
    var text = ge(ta);
    if (text.value.length > count) 
    {
        text.value = text.value.substring(0, count);
        if (arguments.length > 2) 
        {
            $(arguments[2]).style.display = "block";
        }
    }
}


function $()
{
    var el=ge.apply(null,arguments);
    if(!el)
    {
        Util.warn('Tried to get element %q, but it is not present in the page. (Use ge() '+'to test for the presence of an element.)',arguments[0]);
    }
    return el;
}

function show()
{
    for(var i=0;i<arguments.length;i++)
    {
        var element=ge(arguments[i]);
        if(element&&element.style)
            element.style.display='';
    }
    return false;
}

function hide()
{
    for(var i=0;i<arguments.length;i++)
    {
        var element=ge(arguments[i]);
        if(element&&element.style)
            element.style.display='none';
    }
    return false;
}

function showTableRow() 
{
    for (var i = 0; i < arguments.length; i++) 
    {
        var element = ge(arguments[i]);
        if (element && element.style) 
        {
            element.style.display = getTableRowShownDisplayProperty();
        }
    }
    return false;
}

function getTableRowShownDisplayProperty() 
{
    if (ua.ie()) 
    {
        return "inline";
    } 
    else 
    {
        return "table-row";
    }
}

function trimAll(sString)
{
  while (sString.substring(0,1) == ' ')
  {
    sString = sString.substring(1, sString.length);
  }
  while (sString.substring(sString.length-1, sString.length) == ' ')
  {
    sString = sString.substring(0,sString.length-1);
  }
  return sString;
}

ua.populate();

function search_blank()
{
    if(document.frm_search.search.value == "")
    {
        alert('Please enter a keyword to search on');
        return false;
    }
}
