/// <reference path="jquery-1.4.1-vsdoc2.js" />
MM_preloadImages('../Resources/Images/navAbout_on.gif', '../Resources/Images/navIndustries_on.gif', '../Resources/Images/navServices_on.gif', '../Resources/Images/navCaseStudies_on.gif', '../Resources/Images/navCareers_on.gif', '../Resources/Images/navContact_on.gif', '../Resources/Images/navWhitepapers_on.gif', '../Resources/Images/navBlogs_on.gif', '../Resources/Images/navWebinars_on.gif', '../Resources/Images/navArticles_on.gif', '../Resources/Images/navPodcasts_on.gif');

$(document).ready(function () {
    $("img[overImage]").hover(
        function () {
            var $this = $(this);
            var currentSrc = $this.attr('src');
            $this.attr('src', currentSrc.replace('.gif', '_on.gif'));
        }
        , function () {
            var $this = $(this);
            var currentSrc = $this.attr('src');
            $this.attr('src', currentSrc.replace('_on.gif', '.gif'));
        }
    );

    $("a[dropdownmenuid]").hover(
        function () {
            var $this = $(this);
            var $dropDown = $('#' + $(this).attr('dropdownmenuid'));
            $dropDown.show();
            $dropDown.hover(
                function () { $this.stop() },
                function () { $dropDown.hide(); }
            );
        },
        function () {
            var $this = $(this);
            var $dropDown = $('#' + $(this).attr('dropdownmenuid'));
            $this.animate({ top: 0 }, 75, function () {
                $dropDown.hide();
            });
        }
    );


    // Tier 2 drop down menu  (Tier 1 in in DropdownTabs.js)
    $('li.drop_link').hover(
                        function () {
                            if ($(this).find('.submenu').length) {
                                $(this).find('a > img').show();
                                $(this).find('.submenu').show();
                                if ($.browser.msie && $.browser.version == 6) {
                                    $('select').hide(); // IE6 select element bleed-through bug
                                }
                            }
                        },
                        function () {
                            if ($(this).find('.submenu').length) {
                                $(this).find('a > img').hide();
                                $(this).find('.submenu').hide();
                                if ($.browser.msie && $.browser.version == 6) {
                                    $('select').show(); // IE6 select element bleed-through bug
                                }
                            }
                        });


    // Scroll bars
    $('#solutionTopics, #list1inner, #list3inner, div.inner_scroll').jScrollPane({ showArrows: true });

    $('li.drop_link .submenu').hide();

    $('.RightColumn #list1, .RightColumn #list2').hide();

    // Solutions modal dialoog
    $('#solutionTopics li a').live('click', function () {
        var thisID = $(this).next('div').attr('id');
        $('#' + thisID).ModalDialog({ width: 550, id: thisID, reattachTo: $(this).parent() });
    });

});

function MakeXHR(handler, data, callback) {
    currentXHR = $.ajax({ url: handler,
        data: data,
        dataType: 'json',
        error: function (xhr, status, error) { },
        type: 'GET',
        success: callback
    });
}

function ProcessSolutionResults(data) {
    if (data == null || !data.length) {
        $('#solutionTopics').data('jsp').getContentPane().html("There are currently no solutions available for this selection.");
        $('#solutionTopics').data('jsp').reinitialise();
        return;
    }

    var currentLetterHead = '';
    var solutionHTML = '';

    for (var i = 0; i < data.length; i++) {
        var thisLetter = data[i].SolutionName.substr(0, 1).toUpperCase();
        thisLetter = !isNaN(thisLetter) ? '#' : thisLetter;

        if (thisLetter != currentLetterHead) {
            currentLetterHead = thisLetter;
            solutionHTML += solutionHTML != '' ? '</ul>\n<h6>' + currentLetterHead + '</h6>\n<ul>' : '\n<h6>' + currentLetterHead + '</h6>\n<ul>';
        }
        var $solutionItemTemplate = $('#SolutionItemTemplate').clone();
        $solutionItemTemplate.find('a').first().html(data[i].SolutionName);
        $solutionItemTemplate.find('div.solutionPopup').attr('id', 'SolutionPopup' + data[i].SolutionItemID);
        $solutionItemTemplate.find('div.solutionPopup h2').html(data[i].SolutionName);
        $solutionItemTemplate.find('div.solutionDesc').html(data[i].SolutionDescription);
        var href = $solutionItemTemplate.find("a.contactPopupLink").attr("href");
        $solutionItemTemplate.find("a.contactPopupLink").attr("href", href + "&SolutionName=" + encodeURIComponent(data[i].SolutionName));
        solutionHTML += $solutionItemTemplate.html();
    }
    solutionHTML += '</ul>';

    $('#solutionTopics').data('jsp').getContentPane().html(solutionHTML);
    $('#solutionTopics').data('jsp').reinitialise();
}

function changeBlog(ref) {
    for (i = 1; i < 4; i++) {
        if (i == ref) {
            document.getElementById("blog" + i).style.display = 'block';
            document.getElementById("tabBlog" + i).src = '../Resources/Images/tabBlog' + i + '_on.gif';
        } else {
            if (document.getElementById("blog" + i)) {
                document.getElementById("blog" + i).style.display = 'none';
                document.getElementById("tabBlog" + i).src = '../Resources/Images/tabBlog' + i + '.gif';
            }
        }
    }
}

function solutionDesc(ref) {
    var descID = document.getElementById(ref);
    if (descID.style.display == 'block') {
        descID.style.display = 'none';
    } else {
        descID.style.display = 'block';
    }
}

function changeResources(ref) {
    document.getElementById("tabResources1").src = '../Resources/Images/tabByTopic.gif';
    document.getElementById("tabResources2").src = '../Resources/Images/tabByIndustry.gif';

    for (i = 1; i < 3; i++) {
        if (i == ref) {
            document.getElementById("list" + i).style.display = 'block';
        } else {
            document.getElementById("list" + i).style.display = 'none';
        }
    }

    if (ref == "1") {
        document.getElementById("tabResources1").src = '../Resources/Images/tabByTopic_on.gif';
    } else if (ref == "2") {
        document.getElementById("tabResources2").src = '../Resources/Images/tabByIndustry_on.gif';
    }
}

function showList(ref) {
    var descID = document.getElementById(ref);
    if (descID != null) {
        if (descID.style.display == 'block') {
            descID.style.display = 'none';
            document.getElementById("btn_" + ref).src = '../Resources/Images/btnExpand.gif';

        } else {
            descID.style.display = 'block';
            document.getElementById("btn_" + ref).src = '../Resources/Images/btnCollapse.gif';
        }
    }
}

function showNext(ref, idPrefix, totalCount) {
    var to = 0;
    if (ref == totalCount)
        to = 1;
    else
        to = ref + 1;

    for (i = 1; i <= totalCount; i++) {
        if (i == to)
            document.getElementById(idPrefix + i).style.display = 'block';
        else
            document.getElementById(idPrefix + i).style.display = 'none';
    }
}

function changeTabs(ref, tab1, tab2, tab3) {
    //first, set all tab images to "off" state
    document.getElementById("tab1").src = '../Resources/Images/' + tab1 + '.gif';
    document.getElementById("tab2").src = '../Resources/Images/' + tab2 + '.gif';
    document.getElementById("tab3").src = '../Resources/Images/' + tab3 + '.gif';

    //hide all associated content divs
    document.getElementById("list1").style.display = 'none';
    document.getElementById("list2").style.display = 'none';
    document.getElementById("list3").style.display = 'none';

    //turn on selected tab section
    if (ref == "tab1") {
        document.getElementById("tab1").src = '../Resources/Images/' + tab1 + '_on.gif';
        document.getElementById("list1").style.display = 'block';
    } else if (ref == "tab2") {
        document.getElementById("tab2").src = '../Resources/Images/' + tab2 + '_on.gif';
        document.getElementById("list2").style.display = 'block';
    } else if (ref == "tab3") {
        document.getElementById("tab3").src = '../Resources/Images/' + tab3 + '_on.gif';
        document.getElementById("list3").style.display = 'block';
    }

}

/* For Homepage */
function changeTabsHome(ref, tab4, tab5) {
/*
    //first, set all tab images to "off" state
    document.getElementById("tab4").src = '../Resources/Images/' + tab4 + '.gif';
    document.getElementById("tab5").src = '../Resources/Images/' + tab5 + '.gif';

    //hide all associated content divs
    document.getElementById("list4").style.display = 'none';
    document.getElementById("list5").style.display = 'none';

    //turn on selected tab section
    if (ref == "tab4") {
        document.getElementById("tab4").src = '../Resources/Images/' + tab4 + '_on.gif';
        document.getElementById("list4").style.display = 'block';
    } else if (ref == "tab5") {
        document.getElementById("tab5").src = '../Resources/Images/' + tab5 + '_on.gif';
        document.getElementById("list5").style.display = 'block';
    }
    */
}

function sifr628(ref, divID) {
    var so = new SWFObject("../Resources/swf/sifr628x23.swf", "sifr628x23", "628", "23", "7", "#336699");
    ref = ref.replace("&#8217;", "\'");
    ref = ref.replace("&", "%26");
    so.addParam("wmode", "transparent");
    so.addVariable("titleText", ref);
    so.write("flashcontent" + divID);
}

function sifr450(ref, divID) {
    var so = new SWFObject("../Resources/swf/sifr450x23.swf", "sifr450x23", "450", "23", "7", "#336699");
    ref = ref.replace("&#8217;", "\'");
    ref = ref.replace("&", "%26");
    so.addParam("wmode", "transparent");
    so.addVariable("titleText", ref);
    so.write("flashcontent" + divID);
}

function sifr245(ref, divID) {
    var so = new SWFObject("../Resources/swf/sifr245x23.swf", "sifr245x23", "245", "23", "7", "#336699");
    ref = ref.replace("&#8217;", "\'");
    ref = ref.replace("&", "%26");
    so.addParam("wmode", "transparent");
    so.addVariable("titleText", ref);
    so.write("flashcontent" + divID);
}

function sifr140(ref, divID) {
    var so = new SWFObject("../Resources/swf/sifr140x23.swf", "sifr140x23", "140", "23", "7", "#336699");
    ref = ref.replace("&#8217;", "\'");
    ref = ref.replace("&", "%26");
    so.addParam("wmode", "transparent");
    so.addVariable("titleText", ref);
    so.write("flashcontent" + divID);
}

function GetQueryVariable(variable) {
    var query = window.location.search.substring(1);
    var vars = query.split('&');
    for (var i = 0; i < vars.length; i++) {
        var pair = vars[i].split('=');
        if (pair[0] == variable) {
            return pair[1];
        }
    }
    return "";
}

function GetSearchQueryVariable() {
    var query = window.location.search.substring(1);

    if (query.length > 0) {
        return query.substring(5, query.length);
    }
    else {
        return "";
    }
}

function SetDropDownValue(o, v) {
    for (var c = 0; c < o.options.length; c++) {
        if (o.options[c].value == v) {
            o.selectedIndex = c;
            break;
        }
    }
}

function validateContact() {
    var msg = "";

    if (document.getElementById('firstname').value == "") { msg += "-- First Name\n"; }
    if (document.getElementById('lastname').value == "") { msg += "-- Last Name\n"; }
    if (document.getElementById('title').value == "") { msg += "-- Title\n"; }
    if (document.getElementById('company').value == "") { msg += "-- Company\n"; }
    if (document.getElementById('phone').value == "") { msg += "-- Phone Number\n"; }
    if (ValidateEmail(document.getElementById('email')) == false) { msg += "-- E-mail Address\n"; }
    if (document.getElementById('industry').value == "") { msg += "-- Your Industry\n"; }

    var currentClientValue = $("input[@name=currentClient]:checked").val();
    if (!currentClientValue) {
        msg += "-- If you are a current client\n";
    }

    if (msg != "") {
        alert("The following required field(s) are missing:\n\n" + msg + "\nPlease complete the form and resubmit.");

    } else {
        var x = getFormElementsXML("formfield", "contactUs");
        Wipfli.AjaxAPI.WipfliAjax.FormSave(x, Process_SubmitForm);
    }
}

function validateNGP() {
    var msg = "";

    if (document.getElementById('firstname').value == "") { msg += "-- First Name\n"; }
    if (document.getElementById('lastname').value == "") { msg += "-- Last Name\n"; }
    if (document.getElementById('title').value == "") { msg += "-- Title\n"; }
    if (document.getElementById('company').value == "") { msg += "-- Company\n"; }
    if (document.getElementById('city').value == "") { msg += "-- City\n"; }
    if (document.getElementById('state').value == "") { msg += "-- State\n"; }
    if (document.getElementById('phone').value == "") { msg += "-- Phone Number\n"; }
    if (ValidateEmail(document.getElementById('email')) == false) { msg += "-- E-mail Address\n"; }

    /*  if (document.getElementById('interest').value == ""){msg += "-- Software interests\n";}   validate Interest checkboxes here  */
    var chk = validateCheckboxes('MainContainer');
    if (chk == 'false') {
        msg += "-- SoftwareInterests\n";
    }

    if (document.getElementById('fiscalyear').value == "") { msg += "-- Fiscal Year\n"; }
    if (document.getElementById('goal').value == "") { msg += "-- Goal for Implementation\n"; }

    if (msg != "") {
        alert("The following required field(s) are missing:\n\n" + msg + "\nPlease complete the form and resubmit.");

    } else {
        var x = getFormElementsXML("formfield", "SageAssessment");
        Wipfli.AjaxAPI.WipfliAjax.NGPForm(x, Process_SubmitForm);
    }
}


function validateOrderForm() {
    var msg = "";

    if (document.getElementById('firstname').value == "") { msg += "-- First Name\n"; }
    if (document.getElementById('lastname').value == "") { msg += "-- Last Name\n"; }
    if (document.getElementById('title').value == "") { msg += "-- Title\n"; }
    if (document.getElementById('company').value == "") { msg += "-- Company\n"; }
    if (document.getElementById('address').value == "") { msg += "-- Address\n"; }
    if (document.getElementById('city').value == "") { msg += "-- City\n"; }
    if (document.getElementById('state').value == "") { msg += "-- State\n"; }
    if (document.getElementById('zip').value == "") { msg += "-- Zip Code\n"; }
    if (document.getElementById('phone').value == "") { msg += "-- Phone Number\n"; }
    if (ValidateEmail(document.getElementById('email')) == false) { msg += "-- E-mail Address\n"; }

    //  If product ordered, then Payment Method field required  
    var chk = validateCheckboxes('productlist');
    if (chk == 'true') {
        var pay = validateCheckboxes('tblPayment');
        if (pay == 'false') {
            msg += "-- Payment Method\n";
        }
    }

    if (msg != "") {
        alert("The following required field(s) are missing:\n\n" + msg + "\nPlease complete the form and resubmit.");

    } else {
        var x = getFormElementsXML("formfield", "OrderForm");
        Wipfli.AjaxAPI.WipfliAjax.OrderForm(x, Process_OrderForm);
    }
}


function validateUserList() {

    var x = getFormElementsXMLUserList();
    Wipfli.AjaxAPI.WipfliAjax.OrderFormUserList(x, Process_OrderFormUserList);

}



function validateCheckboxes(div)  //  validate checkboxes or radio buttons  
{
    var checked = 'false';
    var chkArray = document.getElementById(div).getElementsByTagName('input');
    for (var i = 0; i < chkArray.length; i++) {
        if (chkArray[i].type == 'checkbox' || chkArray[i].type == 'radio') {
            if (chkArray[i].checked) {
                checked = 'true';
            }
        }
    }
    return checked;
}


function updateOrderTotal() {
    var orderTotal = 0;

    var productlist = document.getElementById("productlist").getElementsByTagName('input');

    for (i = 0; i < productlist.length; i++) {
        if (productlist[i].type == 'checkbox') {
            if (productlist[i].checked) {
                orderTotal = orderTotal + parseFloat(productlist[i].value);
            }
        }
    }
    document.getElementById('orderTotalDiv').innerHTML = "$" + orderTotal;
}


function Process_SubmitForm(res) {
    if (res.error) {
        alert("An error occurred.\nYour inquiry could not be processed.  " + res.error.Message)
    }
    else {
        /*
        document.getElementById('divForm').style.display = 'none';
        document.getElementById('divConfirmation').style.display = 'block';
        */
        document.location.href = "Page_NeedsAssessmentFormThankyou.aspx";
    }
}

function Process_OrderForm(res) {
    if (res.error) {
        alert("An error occurred.\nYour inquiry could not be processed.  " + res.error.Message)
    }
    else {
        var govpro = $(res.value).find('root').attr('govpro');
        if (govpro == 'true') {
            document.location.href = "Page_GovProUsers.aspx";
        }
        else {
            document.location.href = "Page_OrderFormThankyou.aspx";
        }
    }
}


function Process_OrderFormUserList(res) {
    if (res.error) {
        alert("An error occurred.\nYour inquiry could not be processed.  " + res.error.Message)
    }
    else {
        document.location.href = "Page_OrderFormThankyou.aspx";
    }
}

function isValidEmail(str) {
    if (str) {
        var re = /[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,6}/gi;
        return str.match(re);
    } else {
        return false;
    }
}

function ValidateEmail(obj) {
    var str = obj.value;
    if (str == "")
        return false;

    var at = "@";
    var dot = ".";
    var lat = str.indexOf(at);
    var lstr = str.length;
    var ldot = str.indexOf(dot);
    if (str.indexOf(at) == -1) {
        //EmailAlert(obj);
        return false;
    }

    if (str.indexOf(at) == -1 || str.indexOf(at) == 0 || str.indexOf(at) == lstr) {
        //EmailAlert(obj);
        return false;
    }

    if (str.indexOf(dot) == -1 || str.indexOf(dot) == 0 || str.indexOf(dot) == lstr) {
        //EmailAlert(obj);
        return false;
    }

    if (str.indexOf(at, (lat + 1)) != -1) {
        //EmailAlert(obj);
        return false;
    }

    if (str.substring(lat - 1, lat) == dot || str.substring(lat + 1, lat + 2) == dot) {
        //EmailAlert(obj);
        return false;
    }

    if (str.indexOf(dot, (lat + 2)) == -1) {
        //EmailAlert(obj);
        return false;
    }

    if (str.indexOf(" ") != -1) {
        //EmailAlert(obj);
        return false;
    }

    return true;
}

function EmailAlert(obj) {
    obj.focus();
    obj.select();
    alert("The email address entered is not valid.\r\nPlease enter an email address with the format email@domain.com.");
}

function checkNumber(strfield) {
    var space = /[1234567890]/;
    var field = document.getElementById(strfield);
    var lchar = field.value.charAt((field.value.length) - 1);
    if (lchar.search(space) == -1) {
        field.value = field.value.substring(0, (field.value.length) - 1);
    }
}

function getFormElementsXML(strAttributeName, strAttributeValue) {
    var arrElements = document.body;
    if (!arrElements.all) {
        arrElements = arrElements.getElementsByTagName('*');
    }
    else {
        arrElements = arrElements.all;
    }

    var arrRetEl = new Array();
    var oAttribVal = (typeof strAttributeValue != "undefined") ? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
    var oCurrent;
    var oAttribute;
    var sReturn = '';

    var aReturn = new Array();
    aReturn.push('<root>');

    for (var i = 0; i < arrElements.length; i++) {
        oCurrent = arrElements[i];
        oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);

        if (typeof oAttribute == "string" && oAttribute.length > 0) {

            if (typeof strAttributeValue == "undefined" || (oAttribVal && oAttribVal.test(oAttribute))) {
                if (oCurrent.type == "checkbox" || oCurrent.type == "radio") {
                    aReturn.push('<' + oCurrent.name + ' id=\"' + oCurrent.id + '\"><![CDATA[' + oCurrent.checked + ']]></' + oCurrent.name + '>');
                } else {
                    aReturn.push('<' + oCurrent.id + '><![CDATA[' + oCurrent.value + ']]></' + oCurrent.id + '>');
                }
            }
        }
    }
    aReturn.push('</root>');
    sReturn = aReturn.join('');

    return sReturn;
}



function getFormElementsXMLUserList() {

    var sReturn = '';
    var aReturn = new Array();
    aReturn.push('<userlist>');

    var fname = "";
    var lname = "";
    var title = "";
    var phone = "";
    var email = "";
    var role = "";

    $('div.user').each(function (index, user) {
        var i = index + 1;
        // $(user + ':input');  // all inputs   
        fname = $(user).find("input[id^='firstname']").val();
        lname = $(user).find("input[id^='lastname']").val();
        title = $(user).find("input[id^='title']").val();
        phone = $(user).find("input[id^='phone']").val();
        email = $(user).find("input[id^='email']").val();
        //role = $(user).find("input[id^='role']").val();   	
        role = $(user).find("select option:selected").val();

        if (fname == "" && lname == "") {
            // skip it  
        }
        else {
            aReturn.push('<user>');
            aReturn.push('<firstname>' + fname + '</firstname>');
            aReturn.push('<lastname>' + lname + '</lastname>');
            aReturn.push('<title>' + title + '</title>');
            aReturn.push('<phone>' + phone + '</phone>');
            aReturn.push('<email>' + email + '</email>');
            aReturn.push('<role>' + role + '</role>');
            aReturn.push('</user>');
        }

    });

    aReturn.push('</userlist>');
    sReturn = aReturn.join('');

    return sReturn;
}



function getFormElementsArray(strAttributeName, strAttributeValue) {
    var arrElements = document.body;
    if (!arrElements.all) {
        arrElements = arrElements.getElementsByTagName('*');
    }
    else {
        arrElements = arrElements.all;
    }

    var arrRetEl = new Array();
    var oAttribVal = (typeof strAttributeValue != "undefined") ? new RegExp("(^|\\s)" + strAttributeValue + "(\\s|$)") : null;
    var oCurrent;
    var oAttribute;
    var sReturn = '';

    var aReturn = new Array();

    for (var i = 0; i < arrElements.length; i++) {
        oCurrent = arrElements[i];
        oAttribute = oCurrent.getAttribute && oCurrent.getAttribute(strAttributeName);
        if (typeof oAttribute == "string" && oAttribute.length > 0) {
            if (typeof strAttributeValue == "undefined" || (oAttribVal && oAttribVal.test(oAttribute))) {
                aReturn.push(oCurrent.id);
            }
        }
    }

    return aReturn;
}

function Modal_Open(ref) {
    document.getElementById(ref).style.top = getScrollY();
    document.getElementById(ref).style.display = "block";
    window.onscroll = function () { document.getElementById(ref).style.top = getScrollY(); };
}

function ModalFixed_Open(ref) {
    //document.getElementById(ref).style.top = getScrollY();
    document.getElementById(ref).style.top = "100px";
    document.getElementById(ref).style.display = "block";
}

function Modal_Close(ref) {
    document.getElementById(ref).style.display = "none";
}

function getScrollY() {
    scrollY = 0;
    if (document.documentElement && document.documentElement.scrollTop) {
        scrollY = document.documentElement.scrollTop;
    } else if (document.body && document.body.scrollTop) {
        scrollY = document.body.scrollTop;
    } else if (window.pageYOffset) {
        scrollY = window.pageYOffset;
    } else if (window.scrollY) {
        scrollY = window.scrollY;
    }
    return scrollY + "px";
}

function CookieSet(name, value) {
    var date = new Date();
    date.setTime(date.getTime() + (24 * 60 * 60 * 1000 * 365));
    expires = "; expires=" + date.toGMTString();
    document.cookie = name + "=" + escape(value) + expires + "; path=/";
}

function CookieRead(name) {
    var value = document.cookie.match('(^|;) ?' + name + '=([^;]*)(;|$)');
    if (value) {
        return unescape(value[2]);
    }
    else {
        return null;
    }
}

function PageSwap(to, id) {
    aDivs = new Array();
    aDivs = getFormElementsArray(id, 'true');

    for (var i = 0; i < aDivs.length; i++) {
        var d = document.getElementById(id + (i + 1));

        if (i + 1 == to)
            d.style.display = 'block';
        else
            d.style.display = 'none';
    }
}

function addLoadEvent(func) {
    var oldonload = window.onload;
    if (typeof window.onload != 'function')
        window.onload = func;
    else {
        window.onload = function () {
            if (oldonload)
                oldonload();
            func();
        }
    }
}

function confirmEmail() {
    // check to make sure the email addresses match
    // let a null value go -- we'll check it again during form submission
    if ((document.getElementById('emailConfirm').value != document.getElementById('email').value) && (document.getElementById('emailConfirm').value != "")) {
        alert("The e-mail addresses do not match.\n\nPlease re-enter your e-mail address.");
        document.getElementById('emailConfirm').value = "";

        document.getElementById('emailConfirm').focus();   // doesn't work in FF
    }
}

function validateEmailSignup(ref) {
    var msg = "";

    if (ValidateEmail(document.getElementById('email')) == false) { msg += "-- Valid E-mail Address\n"; }
    if ((document.getElementById('emailConfirm').value != document.getElementById('email').value) || (document.getElementById('emailConfirm').value == "")) { msg += "-- Confirm E-mail Address\n"; }

    if (ref == "subscribe") {
        if (document.getElementById('firstname').value == "") { msg += "-- First Name\n"; }
        if (document.getElementById('lastname').value == "") { msg += "-- Last Name\n"; }
        if (document.getElementById('title').value == "") { msg += "-- Title\n"; }
        if (document.getElementById('company').value == "") { msg += "-- Company\n"; }
        if (document.getElementById('address').value == "") { msg += "-- Address\n"; }
        if (document.getElementById('city').value == "") { msg += "-- City\n"; }
        if (document.getElementById('state').value == "") { msg += "-- State\n"; }
        if (document.getElementById('zip').value == "") { msg += "-- Zip Code\n"; }

        if (document.getElementById('phone').value == "") { msg += "-- Phone Number\n"; }
    }

    if (msg != "") {
        alert("The following required field(s) are missing:\n\n" + msg + "\nPlease complete the form and resubmit.");

    } else {
        var x = getFormElementsXML("formfield", "emailSignup");
        //convert email to lowercase before saving to database
        var emailLC = document.getElementById('email').value.toLowerCase();

        if (ref == "subscribe") {
            document.getElementById('subscribe').value = "subscribe";
            //alert("Thank you for subscribing.");
            Wipfli.AjaxAPI.WipfliAjax.EmailSignup(emailLC, x, Process_EmailSignup);
        } else if (ref == "unsubscribe") {
            document.getElementById('subscribe').value = "unsubscribe";
            //alert("You will be unsubscribed from all e-mail newsletter topics.");
            Wipfli.AjaxAPI.WipfliAjax.EmailSignup(emailLC, x, Process_EmailUnSubscribe);
        }
    }
}

function Process_EmailSignup(res) {
    if (res.error) {
        //alert("An error occurred.\nYour request could not be processed.  " + res.error.Message)
    }
    document.location.href = "Page_EmailSubscriptionThankYou.aspx";
}
function Process_EmailUnSubscribe(res) {
    if (res.error) {
        //alert("An error occurred.\nYour request could not be processed.  " + res.error.Message)
    }
    document.location.href = "Page_EmailUnsubscribe.aspx";
}

function GFPlogin() {
    var msg = "";

    if (document.getElementById('login').value == "") {
        msg += "-- User ID\n";
    }
    if (document.getElementById('password').value == "") {
        msg += "-- Password\n";
    }

    if (msg != "") {
        alert("Please enter the following required fields:\n\n" + msg);
    } else {
        var frm = document.getElementsByTagName("form")[1];
        frm.action = "https://gfponline.wipfli.com/iMISWeb/gfpredirect.aspx";
        frm.method = "get";
        frm.submit();
    }
}


function checkGFPCookie() {
    Wipfli.AjaxAPI.WipfliAjax.ProcessGFPCookie(updateGFPForm);
}

function updateGFPForm(res) {

    if (res.error) {
        alert("An error occurred.\n Your request could not be processed. " + res.error.Message)
    }
    else {
        var t = res.value;
        if (t.length > 0) {
            //t = "<p>testing here...</p>"; 
            $(".GFPWelcome").html(t);
            $(".GFPWelcome").show();

        }
        else {
            $(".GFPLogin").show();
        }
    }
}

function payNow() {
    var frm = document.getElementsByTagName("form")[1];
    frm.action = "https://payflowlink.paypal.com";
    frm.method = "post";
    frm.submit();
}

String.prototype.format = function () {
    var formatted = this;
    for (arg in arguments) {
        formatted = formatted.replace("{" + arg + "}", arguments[arg]);
    }
    return formatted;
};
