function $(element) {
  return document.getElementById(element);
}
function hide(element, hide) {
    $(element).style.display = (hide ? 'none' : 'block');
}

function toggle(element) {
     $(element).style.display = $(element).style.display == 'block' ? 'none' : 'block';
}
function resetDropdown (id) {
    if ($(id)) $(id).selectedIndex = 0;
}
function toCurrency(amt) {
    var s = toFixed(amt,2);
    var i = s.indexOf('.');
    while (i > 3) {
        s = s.substr(0,i-3) + ',' + s.substr(i-3);
        i = s.indexOf(',');
    }
    return s;
}
function toFixed(n, dp) {
    n = Math.round(n * Math.pow(10,dp)) + '';
    for (var i=n.length; i<dp; i++)
        n = '0' + n;
    l = n.length;
    if (l==dp)
        n = '0.' + n;
    else
        n = n.substr(0,l-dp) + '.' + n.substr(l-dp);
    return n;
}
function isValidDate (y,m,d) {
    var date = new Date();
    date.setTime(new Date(y, m, d).getTime());
    return (date.getMonth() == m);
}
var months = new Array ('January','February','March','April','May','June','July',
 'August','September','October','November','December');
var dow =  new Array ('Sunday','Monday','Tuesday','Wednesday','Thursday','Friday',
 'Saturday');
function getMonthStr(m, fmt) {
    var s = months[m];
    return (fmt == 'MMM' ? s.substr(0,3) : s);
}
function getDayStr(d, fmt) {
    var s = dow[d];
    return (fmt == 'ddd' ? s.substr(0,3) : s);
}
function foreachChild(n, name, func, data1, data2) {
    var i = 0;
    for (c = n.firstChild;c;c = c.nextSibling) {
        if (c.nodeName == name) {
            func(c,i,data1,data2);
            i++;
        }
    }
}
function toDate (str) {
    // Converts to date from format yyyyMMdd
    return new Date (parseInt(str.substr(0,4)),
         parseInt(str.substr(4,1) == '0' ? str.substr(5,1) : str.substr(4,2))-1,
         parseInt(str.substr(6,1) == '0' ? str.substr(7,1) : str.substr(6,2)));
}
function lastDateOfMonth (year, month) {
    var d = new Date( month < 11 ? year : year + 1, month < 11 ? month+1 : 0, 1);  // 1st day of next month
    d.setTime(d.getTime()-86400000); // Subtract 24hrs
    return d;
}