﻿
jQuery.ajaxSetup({
    type: 'POST'
});

function addPrintLink(target, linkText) {
    if (!window.print) { return; }
    var link = '<a href="#" class="printLink" onclick="javascript: window.print(); return false; ">' + linkText + '</a>'
    $(target).append(link);
}

function hideOverlay() {
    $('#overlayBox').fadeOut('fast');
    $('#fullOverlay').fadeOut('slow');
}

function updateView(element, location) {
    $.post(location, null, function(responseText, textStatus) {
        $(element).html(responseText);
    });
}

function updateView(element, map, location) {
    $.post(location, map, function(responseText, textStatus) {
        $(element).html(responseText);
    });
}

function autocompleter(element, location, limit, prompt) {
    $(element).autocomplete(location, {
        dataType: 'json',
        parse: function(data) {
            var rows = Array();
            for (var i = 0; i < data.length; i++) {
                rows[i] = { data: data[i], value: data[i].Key, result: data[i].Key };
            }
            return rows;
        },
        formatItem: function(row, i, n) {
            return '<span style="font-weight: bold;">' + row.Key + '</span> ' + row.Value;
        },
        width: 270,
        autoFill: true,
        max: limit
    });
    if ((prompt != null) && (prompt.length > 0)) {
        $(element).focus(function() {
            if (this.value == prompt) {
                this.value = "";
            }
        });
        $(element).blur(function() {
            if (this.value.length == 0) {
                this.value = prompt;
            }
        });
    }
}

function submitAutoComplete(f, controller, action, prompt) {
    var s = "";

    for (i = 0; i < f.elements.length; i++) {
        if (f.elements[i].type == "text") {
            s = f.elements[i].value;
            if (s == "") {
                alert("Please enter a value.");
                f.elements[i].focus();
                return false;
            } else if (s == prompt) {
                return false;
            } else {
                break;
            }
        }
    }

    if (action == "") {
        RedirectUrl = '/' + controller + '/' + escapeSearchValue(s).toUpperCase();
        //window.location = '/' + controller + '/' + escapeSearchValue(s).toUpperCase();
    } else {
        RedirectUrl = '/' + controller + '/' + action + '/' + escapeSearchValue(s).toUpperCase();
        //window.location = '/' + controller + '/' + action + '/' + escapeSearchValue(s).toUpperCase();
    }
    setTimeout("window.location.href = RedirectUrl", 0);
    return false;
}

function submitSearchForm(f, controller) {
    var s = "";

    for (i = 0; i < f.elements.length; i++) {
        if (f.elements[i].type == "text") {
            s = f.elements[i].value;
            if (s == "") {
                f.elements[i].focus();
                return false;
            } else {
                break;
            }
        }
    }

    if (controller == '') {
        window.location = '/Search/' + escapeSearchValue(s);
    } else {
        window.location = '/Search/' + controller + '/' + escapeSearchValue(s);
    }
    return false;
}

function escapeSearchValue(t) {
    r = new String(t.toString().replace(/\//g, ''));
    r = r.replace(/\./g, '');

    return escape(r);
}

function clearField(formfield) {
    if (formfield.defaultValue == formfield.value) {
        formfield.value = "";
    }
}

function setPrompt(formfield, prompt) {
    if (formfield.value == "") {
        formfield.value = prompt;
    }
}

function makeFieldPassword(formfield) {
    formfield.type = "password";
}

function makeFieldText(formfield) {
    if (formfield.value == "") {
        formfield.type = "text";
    }
}

function hidePasswordPrompt() {
    var passwordPrompt = document.getElementById("passwordPrompt");
    var password = document.getElementById("password");

    password.style.display = "inline";
    passwordPrompt.style.display = "none";
    password.focus();
}

function showPasswordPrompt() {
    var passwordPrompt = document.getElementById("passwordPrompt");
    var password = document.getElementById("password");

    if (password.value == "") {
        password.style.display = "none";
        passwordPrompt.style.display = "inline";
    }
}

function getFormValues(fobj) {
    var str = "";
    var valueArr = null;
    var val = "";
    var cmd = "";

    for (var i = 0; i < fobj.elements.length; i++) {
        switch (fobj.elements[i].type) {
            case "hidden":
                if (fobj.elements[i].value != "") {
                    str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
                }
                break;
            case "text":
                if (fobj.elements[i].value != "") {
                    str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
                }
                break;
            case "password":
                if (fobj.elements[i].value != "") {
                    str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
                }
                break;
            case "select-one":
                str += fobj.elements[i].name + "=" + fobj.elements[i].options[fobj.elements[i].selectedIndex].value + "&";
                break;
            case "file":
                if (fobj.elements[i].value != "") {
                    str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
                }
                break;
            case "textarea":
                if (fobj.elements[i].value != "") {
                    str += fobj.elements[i].name + "=" + escape(fobj.elements[i].value) + "&";
                }
                break;
        }
    }

    str = str.substr(0, (str.length - 1));
    return str;
}

//return true if browser is IE
function isBrowserIE() {
    var navAgent = navigator.userAgent.toLowerCase();

    if (typeof navAgent == "undefined") {
        return false;
    }
    if (navAgent.indexOf('msie') != -1) {
        return true;
    } else {
        return false;
    }
}

//return true if browser is IE 7
function isBrowserIE7() {
    var navAgent = navigator.userAgent.toLowerCase();

    if (typeof navAgent == "undefined") {
        return false;
    }
    if (navAgent.indexOf('msie 7.0') != -1) {
        return true;
    } else {
        return false;
    }
}
