﻿
function cleanUpDate(uID, setEmpty) {

	var now = new Date();
	var str = "";
	var txtDate = ""+document.getElementById(uID).value;

	// make separators consistent
	for (var i = 0; i <= 4; i++) {
		switch (i) {
			case 0 : str="."; break;
			case 1 : str="/"; break;
			case 2 : str="\\"; break;
			case 3 : str=" "; break;
		}
		do {
			txtDate = txtDate.replace(str, "-");
		} while (txtDate.indexOf(str) >= 0)
	}

	if (txtDate == "") {
		if (setEmpty) { txtDate = "" + now.getDate(); } else { return; }
	}

	var sep1 = txtDate.indexOf("-");
	var sep2 = txtDate.lastIndexOf("-");

	if (sep1 == -1 || sep1 == (txtDate.length - 1)) {
		if (sep1 == -1) { txtDate += "-"; }
		txtDate += (now.getMonth() + 1);
		sep1 = txtDate.indexOf("-");
	}
	if (sep2 == -1 || sep1 == sep2 || sep2 == (txtDate.length - 1)) {
		if (sep2 == -1 || sep1 == sep2) { txtDate += "-"; }
		txtDate += now.getYear();
		sep2 = txtDate.lastIndexOf("-");
	}

	var day = txtDate.substring(0, sep1);
	var mon = txtDate.substring(sep1+1, sep2);
	var yea = txtDate.substring(sep2 + 1);

	// remove extra letters
	for (var i = 1; i <= 12; i++) {
		switch (i) {
			case 1 : str="Jan"; break;
			case 2 : str="Feb"; break;
			case 3 : str="Mar"; break;
			case 4 : str="Apr"; break;
			case 5 : str="May"; break;
			case 6 : str="Jun"; break;
			case 7 : str="Jul"; break;
			case 8 : str="Aug"; break;
			case 9 : str="Sep"; break;
			case 10 : str="Oct"; break;
			case 11 : str="Nov"; break;
			case 12 : str="Dec"; break;
		}

		if (mon.toLowerCase().indexOf(str.toLowerCase()) >= 0) {
			if (mon.toLowerCase() != str.toLowerCase()) {
				mon = str;
			}
		} else if (mon == i || mon == ("0"+i)) {
			mon = str;
		}
	}

	document.getElementById(uID).value = day + "-" + mon + "-" + yea;

	// typical JS problems first on works on my machine and second doesn't
	// and vise versa when run on the server
	try { document.getElementById(uID).onchange(); }
	catch (e) { try { document.getElementById(uID).onchange; } catch (e) { } }

}

function convertToUpper(clientID) {
	document.getElementById(clientID).value = document.getElementById(clientID).value.toUpperCase();
}

function transferValue(clientID1, clientID2) {
	if (document.getElementById(clientID1) != null) {
		document.getElementById(clientID2).value = document.getElementById(clientID1).value;
	}
}

function showPanel(div, show) {
    if (show) {
        document.getElementById(div).style.visibility = 'visible';
    } else {
        document.getElementById(div).style.visibility = 'hidden';
    }
    findDropLists(!show);
    return false;
}

function findDropLists(bHidden) {
	var max = document.forms[0].elements.length;
	for (var i = 0; i < max; i++) {
		if (document.forms[0].elements[i].type == "select-one") {
			document.forms[0].elements[i].style.visibility = (bHidden ? "visible" : "hidden");
		}
	}
}

function evTR(iLevelMax, iLevelTo, sBase) {

    while (iLevelMax > iLevelTo) {

        var oRadio = document.getElementsByName(sBase + "$gp" + iLevelMax);

        for (i = 0; i < oRadio.length; i++) {
            oRadio[i].checked = false;
        }

        iLevelMax -= 1;
    }

}

function evTC(iLevel, me, sBase, sParent, sSister, sChildren) {

    if (iLevel > 0 && me.checked) {
        var sParents = sParent.split(',');
        for (var i = 0; i < sParents.length; i++) {
            $get(sBase + '_chk' + (iLevel - 1 - i) + 'key' + sParents[i]).checked = true;
        }
    }

    if (sChildren != '') {
        var sKeys = sChildren.split(',');

        for (var i = 0; i < sKeys.length; i++) {
            var chk = $get(sBase + '_chk' + (iLevel + 1) + 'key' + sKeys[i]);
            chk.checked = me.checked;
        }
    }
    if (iLevel > 0 && sSister != '') {
        var sKeys = sSister.split(',');
        var bAllSame = true;

        for (var i = 0; i < sKeys.length; i++) {
            var chk = $get(sBase + '_chk' + iLevel + 'key' + sKeys[i]);
            if (me.checked != chk.checked) { bAllSame = false; break; }
        }
        if (bAllSame) {
            var sParents = sParent.split(',');
            for (var i = 0; i < sParents.length; i++) {
                $get(sBase + '_chk' + (iLevel - 1 - i) + 'key' + sParents[i]).checked = me.checked;
            }
        }
    }

}
