﻿
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;
            }
        });
//        $(element).change(function(name) {
//            return (new jQuery).change(name);
//        });
    }
}

function submitAutoComplete(oForm, sController, sAction, sPrompt, sBaseUrl) {

    var sValue = new String();
    for (i = 0; i < oForm.elements.length; i++) {

        // find the first Text Box        
        var oFormElement = oForm.elements[i];
        if (oFormElement.type != "text") {
            continue;
        }

        sValue = oFormElement.value;

        // if the Text Box contains an invalid value, exit
        if (sValue == sPrompt) {
            return false;
        }
        if(sValue.length == 0){
            alert("Please enter a value.");
            oFormElement.focus();
            return false;
        }

        // found a valid Text Box - search no further
        break;
    }

    sBaseUrl = formatBaseUrl(sBaseUrl);

    if (sAction.length > 0) {
        sAction += '/';
    }

    RedirectUrl = sBaseUrl + sController + '/' + sAction + escapeSearchValue(sValue).toUpperCase();

    setTimeout("window.location.href = RedirectUrl", 0);
    return false;
}

function submitHeaderSearch(sArgument, sUrl)
{
    if(sArgument.length > 0) {
        var oTextBox = document.getElementById(sArgument);
        if (oTextBox != null) {
            sArgument = oTextBox.value;
        }
    }
    
    if (sArgument.length == 0) {
        alert('Please, enter a Symbol or other Search criteria');
        return false;
    }

    var sBaseUrl = formatBaseUrl(sUrl);

    RedirectUrl = sBaseUrl + 'Quote/' + escapeSearchValue(sArgument).toUpperCase();   //TODO: call the www3 search URL
    
    setTimeout("window.location.href = RedirectUrl", 0);
    return false;
}

function clearDefaultText(oTextBox, sDefault) {
    if (oTextBox == null) {
        return;
    }

    if (oTextBox.value == sDefault) {
        oTextBox.value = '';
    }
}

function formatBaseUrl(sBaseUrl) {
    var sOut = new String();
    sOut = sOut.concat(sBaseUrl);
    if (sOut.length == 0 || sOut.substring(sOut.length, sOut.length - 1) != '/') {
        sOut += '/';
    }

    return sOut;
}


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;
    }
}

function showOverlay(sDivName, bVisible) {
    if (navigator.appVersion.indexOf('MSIE 6') == -1) {
        return;
    }

    var aDivs = document.getElementsByTagName('div');
    if (aDivs == null || aDivs.length == 0) {
        return;
    }

    var oDiv = null;
    for (var i = 0; i < aDivs.length; i++) {
        oDiv = aDivs[i];
        if (oDiv.name == sDivName) {
            break;
        }
    }

    if (oDiv != null) {
        oDiv.style.display = (bVisible) ? 'block' : 'none';
        oDiv.style.visibility = (bVisible) ? 'visible' : 'hidden';
    }
}
