/*global Event, window, $$,$, escape, document, unescape, location, navigator, top */
/* family site shared code */

// navigation code start
function navigation_show_active(link) {
    var parent_li = link.up('li');
    var parent_ul = parent_li.up('ul');
    var parent_container = parent_ul.up();

    if (parent_container.nodeName == 'DIV' && parent_container.className == 'content') {
        var is_child = parent_li.down('ul');

        link.addClassName('current');

        if (is_child) {
            var child = is_child;
            child.addClassName('show');
        }
    } else {
        link.addClassName('current');
        parent_ul.addClassName('show');
        parent_container.down('a').addClassName('current');
    }
}

function navigation_init() {
    var navigation = $$("div.navigation");
    if (navigation.length > 0) {
        var current_location = location.href;
        var links = $$("div.navigation div.content li a");
        for (var i = 0; i < links.length; i++) {
            var link = links[i];
            if (current_location == link.href) {
                navigation_show_active(link);
                break;
            }
        }
    }
}
// navigation code end

// dress link code start
function dress_link(href) {
    var rv = false;
    var is_root = new RegExp("/$");

    if (is_root.test(href)) {
        rv = href + 'index.shtml';
    } else {
        rv = href;
    }

    return rv;
}
// dress link code end

// menubar code start
function menubar_handler() {
    var items = $$("div.menubar li.items");

    var onmouseover_handler = function() {
        this.addClassName('on');
    };
    var onmouseout_handler = function() {
        this.removeClassName('on');
    };
    for (var i = 0; i < items.length; i++) {
        var item = items[i];
        item.onmouseover = onmouseover_handler;
        item.onmouseout = onmouseout_handler;
    }
}

function menubar_show_active() {
    if (dress_link(location.pathname) != '/index.shtml') {
        var i;
        var menubar_links = $$("div.menubar li.items a");
        for (i = 0; i < menubar_links.length; i++) {
            var menubar_link = menubar_links[i];

            if (dress_link(location.href) == dress_link(menubar_link.href)) {
                menubar_link.addClassName('current');
                break;
            }
        }

        var first_level_menus = $$("div.menubar a.title");

        for (i = 0; i < first_level_menus.length; i++) {
            var item = first_level_menus[i];
            var pathname = item.pathname;
            if (!pathname.startsWith('/')) {
                pathname = '/' + pathname;
            }

            if (location.pathname.split('/')[1] == pathname.split('/')[1]) {
                item.up('li.items').addClassName('current');
            }
        }
    }
}

function menubar_init() {
    var browser = navigator.userAgent;

    if (browser.match(/.*MSIE\s6.*/)) {
        menubar_handler();
    }

    menubar_show_active();
}
// menubar code end

// SearchBox code start
var SearchBox = {
    initialize: function() {
        this.box = $('GoogleSearchBoxInput');
        if (this.box !== null) {
            this.box.observe('keypress', this.checkEnter.bind(this));
            this.box.observe('focus', this.clearSearchBox.bind(this));
            this.box.observe('blur', this.labelSearchBox.bind(this));
            this.setBoxValue();
        }
    },

    checkEnter: function(e) {
        if (e.keyCode == 13) {
            this.doSearch();
            return false;
        }
        else {
            return true;
        }
    },

    clearSearchBox: function() {
        if (this.box.value == "Search OANDA for...") {
            this.box.value = "";
            this.box.style.color = "black";
        }
    },

    labelSearchBox: function() {
        if (this.box.value === "") {
            this.box.value = "Search OANDA for...";
            this.box.style.color = "#999999";
        }
    },

    doSearch: function() {
        window.location = '/search_results.shtml?q=' + escape(document.getElementById('GoogleSearchBoxInput').value) + '&start=0';
    },

    getParameters: function() {
        var output = {};
        if (top.location.search.length > 0) {
            var variables = unescape(top.location.search.substr(1));
            var pairs = variables.split("&");
            for (var i = 0; i < pairs.length; i++) {
                var pair = pairs[i].split("=");
                output[pair[0]] = pair[1];
            }
        }
        return output;
    },

    setBoxValue: function() {
        if (!this.getParameters().q) {
            this.labelSearchBox();
        }
        else {
            this.box.value = this.getParameters().q;
            this.box.style.color = "black";
        }
    }
};
// SearchBox code end

Event.observe(window, 'load', menubar_init, false);
Event.observe(window, 'load', navigation_init, false);
Event.observe(window, 'load', SearchBox.initialize.bind(SearchBox));

