
function checkFileExtension(fileUID, ext, desc, permittedFlag) {

	var pArray = ext.split(",");
	var dArray = desc.split(",");

	var found = false;
	var availExt = "";

	var ext = $get(fileUID).value;

	if (ext == "" || ext == "undefined") {
		return true;
	}

    var pos = ext.lastIndexOf(".");

    if (pos == -1) { return false; }

	ext = ext.substring(pos + 1);
	ext = ext.toLowerCase();

	for (var i = 0; i < pArray.length; i++) {

		availExt += pArray[i] + " (" + dArray[i] + ")";
		
		if (i < pArray.length - 1) {
			availExt += ", ";
		}

		if (ext == pArray[i]) {
			found = true;
			if (permittedFlag) {
				break;
			}
		}
	
	}

	if (!found && permittedFlag) {
		alert('You selected a .' + ext + ' file; please select one of the following extentions: ' + availExt);
		return false;
	}
	else if (found && !permittedFlag) {
		alert('You selected a .' + ext + ' file; the following file extensions are not allowed: ' + availExt);
		return false;
	}
	else {
		return true;
	}

}

var hvrNtsKey = '0';

function hvr(value, panel, behaviour, delay, parent) {

    if (document.readyState == "loading") { return; }

    var x;
    var y;
    
    if (browser.isIE) {
        x = window.event.clientX;
        y = window.event.clientY;
    }
    if (browser.isNS) {
        x = event.clientX + window.scrollX;
        y = event.clientY + window.scrollY;
    }


    if (hvrNtsKey != value) {

        if (value != '0') {
            var behavior = $find(behaviour);
            if (behavior != null) {
                behavior._onMethodComplete = function(result, response, userContext) {
                    if (result != "") {
                        panel.innerHTML = result;
                        if (parent) {
                            panel.style.left = parseInt(parseInt(parent.style.left) + parent.clientWidth + 10) + "px";
                        }
                        else {
                            panel.style.left = parseInt(x - panel.clientWidth - 100) + "px";
                            if (panel.style.left.startsWith("-"))
                                panel.style.left = "0px";
                        }
                        panel.style.top = parseInt(y - 50) + "px";
                        panel.style.visibility = 'visible';
                    }
                };

                if (behavior) behavior.populate(value);
            }

        } else {

            if (delay > 0) {
                setTimeout("if (hvrNtsKey == '0') $get('" + panel.id + "').style.visibility = 'hidden';", delay);
            }
            else {
                panel.style.visibility = 'hidden';
            }
        }
        hvrNtsKey = value;
    }
}

function TestActiveXFunctions(TempFolder, URL, SessionID) {
    try {
        document.ucSend.TempFolder = TempFolder;
        document.ucSend.URL = URL;
        document.ucSend.SessionID = SessionID;
        document.ucSend.CallHeight();
    }
    catch (e) {

    }
}


function TestOutlookInstalls(strChkID, strChkRvsID) {

    var chkIDs = strChkID.split(",");
    var chkRvs = strChkRvsID.split(",");
    var bInstalled = true;

    try {
        if (document.ucSend == null)
            bInstalled = false;

        if (document.ucSend.WarningText == undefined)
            bInstalled = false;

    }
    catch (e) {
        // first install of components
        bInstalled = false;
    }

    if (!bInstalled) {
        for (var i = 0; i < chkIDs.length; i++) {
            $get(chkIDs[i]).disabled = true;
            $get(chkIDs[i]).checked = false;
            $get(chkIDs[i]).title = "Outlook Active-X not installed, please install for this feature.";
            $get(chkIDs[i]).parentElement.all[1].title = $get(chkIDs[i]).title;
        }
        for (var i = 0; i < chkRvs.length; i++) {
            if (chkRvs[i] != "")
                $get(chkRvs[i]).checked = true;
        }
    }

    return bInstalled
}

