Event.observe(window, 'load',
    function() {

        //********************* Swap images
        var images = document.images;
        for (var i=0; i<images.length; i++){
                //rollover for right arrows on search results page
                if (images[i].getAttribute("id") == "resRight") {
                        document.images['resRight'].onmouseover = resRightOn;
                        document.images['resRight'].onmouseout = resRightOff;
                }
                //rollover for left arrows on search results page
                if (images[i].getAttribute("id") == "resLeft") {
                        document.images['resLeft'].onmouseover = resLeftOn;
                        document.images['resLeft'].onmouseout = resLeftOff;
                }
        }//for

        //********************* Swap for Search button
        if (document.getElementById("searchSubmit") != null){
                var searchSubmit=document.getElementById("searchSubmit");
                searchSubmit.onmouseover = searchSubmiton;
                searchSubmit.onmouseout = searchSubmitoff;
        }


    }
);//window.onload


//functions setting source for Search button image
function searchSubmiton(event){this.src="/images/btn-submit-search-on.gif";}
function searchSubmitoff(event){this.src="/images/btn-submit-search.gif";}

//functions setting source for Search Results arrows
function resRightOn(event){this.src="/images/search/btn-arr-right-on.gif";}
function resRightOff(event){this.src="/images/search/btn-arr-right-off.gif";}
function resLeftOn(event){this.src="/images/search/btn-arr-left-on.gif";}
function resLeftOff(event){this.src="/images/search/btn-arr-left-off.gif";}

//Search Bar functionality
Event.observe(window, 'load', setupSearchFunc);
function setupSearchFunc() {
        if (!document.getElementById) return false;
        if (!document.getElementById("searchBarSelect")) return false;
        if (!document.getElementById("searchBarInput")) return false;
        var searchSelect = document.getElementById("searchBarSelect");
        Event.observe(searchSelect, 'change',
                function(e) {
                        if(Field.present('searchBarInput'))
                                Event.element(e).form.submit();
                });
}

//Search "Sort By" functionality
Event.observe(window, 'load', setupSortBoxFunc);
function setupSortBoxFunc() {
        if (!document.getElementById) return false;
        if (!document.getElementById("sortboxSelect")) return false;
        var sortboxSelect = document.getElementById("sortboxSelect");
        Event.observe(sortboxSelect, 'change',
                function(e) {
                        Event.element(e).form.submit();
                });
}

// platform detection magics
var PlatformDetect = {
    init: function () {
        this.browser = this.searchString(this.dataBrowser)
        || "unknown";
        this.version = this.searchVersion(navigator.userAgent)
        || this.searchVersion(navigator.appVersion)
        || "unknown";
        this.OS = this.searchString(this.dataOS) || "unknown";
    },
    searchString: function (data) {
        for (var i=0;i<data.length;i++){
            var dataString = data[i].string;
            var dataProp = data[i].prop;
            this.versionSearchString = (data[i].versionSearch ||
                                        data[i].identity);
            if (dataString) {
                if (dataString.indexOf(data[i].subString) != -1)
                    return data[i].identity;
            }
            else if (dataProp)
            return data[i].identity;
        }
    },
    searchVersion: function (dataString) {
        var index = dataString.indexOf(this.versionSearchString);
        if (index == -1) return;
        return parseFloat(
            dataString.substring(index+this.versionSearchString.length+1)
            );
    },
    dataBrowser: [
        { string: navigator.userAgent,
          subString: "OmniWeb",
          versionSearch: "OmniWeb/",
          identity: "OmniWeb"
        },
        {
            string: navigator.vendor,
            subString: "Apple",
            identity: "Safari"
        },
        {
            prop: window.opera,
            identity: "Opera"
        },
        {
            string: navigator.vendor,
            subString: "iCab",
            identity: "iCab"
        },
        {
            string: navigator.vendor,
            subString: "KDE",
            identity: "Konqueror"
        },
        {
            string: navigator.userAgent,
            subString: "Firefox",
            identity: "Firefox"
        },
        {
            string: navigator.vendor,
            subString: "Camino",
            identity: "Camino"
        },
        {// for newer Netscapes (6+)
            string: navigator.userAgent,
            subString: "Netscape",
            identity: "Netscape"
        },
        {
            string: navigator.userAgent,
            subString: "MSIE",
            identity: "Explorer",
            versionSearch: "MSIE"
        },
        {
            string: navigator.userAgent,
            subString: "Gecko",
            identity: "Mozilla",
            versionSearch: "rv"
        },
        { // for older Netscapes (4-)
            string: navigator.userAgent,
            subString: "Mozilla",
            identity: "Netscape",
            versionSearch: "Mozilla"
        }
        ],
    dataOS : [
        {
            string: navigator.platform,
            subString: "Win",
            identity: "Windows"
        },
        {
            string: navigator.platform,
            subString: "Mac",
            identity: "Mac"
        },
        {
            string: navigator.platform,
            subString: "Linux",
            identity: "Linux"
        }
        ]

};
PlatformDetect.init();

// some convenience stuff for arrays
Array.prototype.indexOf=function(obj){
    var result=-1;

    for (var i=0;i< this.length;i++){
        if (this[i]==obj){
            result=i;
            break;
        }
    }

    return result;
}

Array.prototype.contains=function(obj){
    return (this.indexOf(obj)>=0);
}

