if (typeof discover === 'undefined') {
	var discover = {};
}

/**
 * @namespace discover
 */
discover.bank.publicSite = function() {
    return {
        init: function() {

            mcd.util.externalLinkHandler();
            mcd.util.printTriggers();

            discover.bank.rolloverInit();

            var overlays = {
                "overlay-traditional-income-limits": {
                    "offset": {"x": -400, "y": -10}
                },
                "secure-account-overlay": {
                    "offset": {"x": 22, "y": 0}
                },
                "remember-userid-overlay": {
                    "offset": {"x": 22, "y": 0}
                },
                "osa-how-calc-overlay": {
                    "offset": {
                        "x": 180,
                        "y": -210
                    }
                }
            };
            
            mcd.Overlay.manager.init(overlays);
			
			// obtrusive overlay setup
			mcd.ObtrusiveOverlay.manager.init({

				'earnings-calculator-obtrusive': {
					'earnings-calculator-obtrusive-close' : function() {
						mcd.ObtrusiveOverlay.manager.exitObtrusive();
		                return false;
		            }
				}
			});

            var search_field = document.getElementById("searchbox");
            if (search_field !== null) {
                search_field.onfocus = function() {
                    var trimmed_value = this.value.replace(/^\s*/, "");
                    trimmed_value = trimmed_value.replace(/\s*$/, "");
                    if (trimmed_value == "Search Discover") {
                        this.value = "";
                    }
                };

                search_field.onblur = function() {
                    var trimmed_value = this.value.replace(/^\s*/, "");
                    trimmed_value = trimmed_value.replace(/\s*$/, "");
                    if (trimmed_value == "") {
                        document.getElementById("site-search").reset();
                    } else {
                        this.value = trimmed_value;
                    }
                };
            }

            if (document.getElementById("top-questions")) {
                mcd.event.add("top-questions", "click", discover.bank.publicSite.accordion);
            };

            // poll setup
            var poll = document.getElementById("poll-questions");
            if (poll !== null && poll.nodeName == "FORM") {

                var pollRequest;
                var stateChangeCallback = function() {
                    if (pollRequest.readyState != 4) return;
                    var container = document.getElementById("poll-container");
                    container.innerHTML = pollRequest.responseText;
                    mcd.dom.addClass(container, "poll-results");
                };



                pollRequest = mcd.http.request({'uri': "/poll-results.html",
                                                'method': "POST",
                                                'onreadystatechange': stateChangeCallback});

                poll.onsubmit = function() {
                    var element;
                    var data = "";
                    for (var i=0; i < this.elements.length; i++) {
                        element = this.elements[i];
                        if (element.type == "radio" && element.checked == true) {
                            data += element.name + "=" + element.value;
                            break;
                        }
                    }

                    if (data == "") return false;
                    mcd.http.send(pollRequest, data);
                    return false;
                };

                var see_results =  document.getElementById("poll-see-results");
                see_results.onclick = function() {
                    mcd.http.send(pollRequest);
                    return false;
                };

            };

            // rate feed
            discover.rateFeed.initAsynchronous();

            // ira calculator
            var ira_calculator_trigger = document.getElementById("earnings-calculator-trigger");
            if (ira_calculator_trigger && window.location.hash.indexOf("show-calculator") > -1) {
                mcd.ObtrusiveOverlay.manager.enterObtrusive(ira_calculator_trigger.getAttribute("rel"));
            }

        },

        accordion: function(e) {
            var target = mcd.event.getTarget(e);
            if (target.nodeName == "IMG") {
                target = target.parentNode;
            }

            if (target.parentNode.nodeName != "DT") return;

            mcd.event.preventDefault(e);

            var dds = document.getElementById("top-questions").getElementsByTagName("DD");
            var images = document.getElementById("top-questions").getElementsByTagName("IMG");
            var dd_to_show = target.parentNode.nextSibling;

            while (dd_to_show.nodeName != "DD") {
                dd_to_show = dd_to_show.nextSibling;
            }

            var arrow_image = target.parentNode.getElementsByTagName("IMG");
            if (arrow_image.length > 0) {
                arrow_image = arrow_image[0];
            }


            if (mcd.dom.hasClass(dd_to_show, "on")) {
                mcd.dom.removeClass(dd_to_show, "on");
                arrow_image.src = "/images/arrow-circle-grey-right.png";
            } else {
                mcd.dom.addClass(dd_to_show, "on");
                arrow_image.src = "/images/arrow-circle-grey-down.png";
            }
        },

        whyChartAdjust: function() {
            var col1_rate = parseFloat(document.getElementById("col1-rate").innerHTML);
            var col2_rate = parseFloat(document.getElementById("col2-rate").innerHTML);
            var chart_container = document.getElementById("why-chart");
            var chart = chart_container.getElementsByTagName("TABLE")[0];
            var chart_cols = chart.tBodies[0].rows[0].getElementsByTagName("TD");
            var chart_captions = chart.tHead.rows[0].getElementsByTagName("TH");

            var max_height = 110;
            var min_height = 40;

            var ceiling = Math.ceil(Math.max(col1_rate, col2_rate));

            var col1_height = Math.max(min_height, Math.round((col1_rate * max_height)/ceiling));
            var col2_height = Math.max(min_height, Math.round((col2_rate * max_height)/ceiling));

            chart_cols[0].style.height = col1_height + "px";
            chart_cols[1].style.height = col2_height + "px";

            chart_captions[0].style.top = (max_height - col1_height - 3) + "px";
            chart_captions[1].style.top = (max_height - col2_height - 1) + "px";

            mcd.dom.removeClass(chart_container, "hide");

        },

        competitorChartAdjust: function() {
            var chart = document.getElementById("cd-chart");
            var columns = chart.getElementsByTagName("TD");
            var rates = [];

            var max_height = 55;
            var max_rate = 0;
            var min_height = 5;

            for (var i=0; i < columns.length; i++) {
                var rate = columns[i].textContent || columns[i].innerText;
                rate = parseFloat(rate);
                rates.push(rate);

                max_rate = Math.max(rate, max_rate);
            }

            for (i=0; i < columns.length; i++) {
                var col_height = Math.max(min_height,(rates[i] * max_height)/max_rate);
                col_height = Math.round(col_height);

                columns[i].style.height = col_height + "px";
            }

        }

    };
}();

mcd.dom.ready(discover.bank.publicSite.init);