var Browser = {
	open: function(win_name, src, width, height, scrollbar, menubar) {
	    var open_window = window.open(src, win_name,
	            'width='+width+',height='+height+',marginwidth=0, marginheight=0,'+
	            'status=no,resizable=0,scrollbars='+scrollbar+',menubar='+menubar);
	    open_window.focus();
		return open_window;
	}
}

function addEvent(obj, evType, fn, useCapture)
{
    if (obj.addEventListener) {
        obj.addEventListener(evType, fn, useCapture);
        return true;
    } else if (obj.attachEvent) {
        var r = obj.attachEvent("on"+evType, function() { fn.apply(obj); });
        return r;
    } else {
        alert("Handler could not be attached");
    }
}

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;
}

/**
 * @param boolean isCheck
 * @param DOM object(s) targetElements
 */
function checkAll(isCheck, targetElements)
{
    if (targetElements.length) {
        for (var i=0; i<targetElements.length; i++)
            targetElements[i].checked = isCheck;
    } else {
        targetElements.checked = isCheck;
    }
}