
/** makes current page occupies entire browser window */
function occupyFullBrowser() {
    if (top.location != window.location) {
	top.location = window.location;
    }
}

/** places cursor on the first form element */
function placeCursorOnFirstElm() {
    var frms = document.forms;
    var frmCount = frms.length;

    for (var i = 0; i < frmCount; i++) {
	var frm = frms[i];
	var sz = frm.elements.length;

	for (var j = 0; j < sz; j++) {
	    var elm = frm.elements[j];

	    if (elm.type != "hidden") {
		elm.focus();
		return;
	    }
	}
    }
}

/** writes the corresponding css based on browser type */
function writeCSS() {
    var css = '../css/css_generic.css';

    if (is_gecko || is_ie5up) { // Netscape6/Mozilla or IE5
	css = '../css/css_ie5win.css';
    } else if (is_nav4 && is_win) { // Netscape 4 Windows
	css = '../css/css_ns4win.css';
    } else if (is_nav4 && is_sun) { // Netscape 4 Solaris
	css = '../css/css_ns4sol.css';
    }

    document.write(
	"<link href='" + css + "' type='text/css' rel='stylesheet'>");
}

/**
 * marks button
 *
 * @param label of button
 * @param href of button
 */
function markupButton(label, href) {
    label = "&nbsp;" + strTrim(label) + "&nbsp;";
    document.write("<table border=\"0\" cellpadding=\"1\" cellspacing=\"0\"");
    document.write(" class=\"button-frame-enabled\">");
    document.write("<tr><td>");
    document.write("<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\"");
    document.write(" class=\"button-content-enabled\">");
    document.write("<tr><td align=\"center\" valign=\"middle\" nowrap>");
    document.write("<div class=\"button-link-enabled-text\"><a href=\"");
    document.write(href);
    document.write("\" class=\"button-link\">");
    document.write(label);
    document.write("</a></div></td></tr></table>");
    document.write("</td></tr></table>");
}

/**
 * aggregrates all the form elements in different forms into
 * a hidden form
 */
function aggSubmit() {
    var frms = document.forms;
    var hiddenFrm = frms['Login'];

    if (hiddenFrm != null) {
	for (var i = 0; i < elmCount; i++) {
	    var frm = frms['frm' + i];

	    if (frm != null) {
		var elm = frm.elements[0];

		if (elm != null) {
		    if (elm.type == 'radio') {
			hiddenFrm.elements[i].value =
			    getSelectedRadioValue(frm);
		    } else if (elm.type == 'checkbox') {
			hiddenFrm.elements[i].value = 
                            getSelectedCheckBoxValues(frm);
		    } else {
			hiddenFrm.elements[i].value = elm.value;
		    }
		}
	    }
	}
    }
}

/**
 * gets selected radio value
 *
 * @param frmObj - form object
 */
function getSelectedRadioValue(frmObj) {
    for (var i = 0; i < frmObj.elements.length; i++) {
	var elm = frmObj.elements[i];

	if (elm.checked) {
	    return elm.value;
	}
    }
    return "";
}

/**
 * gets selected check box values separated by "|"
 *
 * @param frmObj - form object
 */
function getSelectedCheckBoxValues(frmObj) {
    var checked = "";
    for (var i = 0; i < frmObj.elements.length; i++) {
	var elm = frmObj.elements[i];

        if ((elm.checked) && (elm.type == 'checkbox')) {
            checked = checked + elm.value + "|";
        }
    }
    return checked;
}

/**
 * trims leading and trailing spaces of a string
 *
 * @param str - string to trim
 * @return trimmed string
 */
function strTrim(str){
    return str.replace(/^\s+/,'').replace(/\s+$/,'')
}

/**
 * clears all form elements
 *
 * @param frm - form obj
 */
function clearFormElms(frm) {
    if (frm != null) {
	var elms = frm.elements;

	if ((elms != null) && (elms.length > 0)) {
	    for (var i = 0; i < elms.length; i++) {
		var elm = elms[i];
		elm.value = "";
	    }
	}
    }
}
