$(document).ready(function () {
    /* SAME HEIGHT TESTIMONIALS
       ---------------------------------------------------*/
    $("#testimonials li").css('height',($("#testimonials ul").height()+10)+'px');

    /* SLIDER
       ---------------------------------------------------*/
    $("#next, #prev").click(function(e) {
        e.preventDefault();
        moveAround($(this));
    });

    sliderMargin = 0;
    distance = 960;

    function moveAround(button) {
        sliderWidth = $("#testimonials ul li").length*240;
        if(button.attr("id") == "next") tempMargin = sliderMargin - distance;
        else tempMargin = sliderMargin + distance;
        if(((-1)*tempMargin < sliderWidth)&&tempMargin<=0) {
            sliderMargin = tempMargin;
            $("#testimonials ul").animate({"margin-left" : sliderMargin+"px"},600);
        }
    }

    /* HISTORY
       ---------------------------------------------------*/
    $("#history > li > a").live("click", function(e){
        e.preventDefault();
        $('.expanded').slideUp("fast", function(){$(this).removeClass("expanded")});
        $(this).next().slideDown("fast", function(){$(this).addClass("expanded")});
    });

    /* LOGOS
       ---------------------------------------------------*/
    $("#logos").mouseover(function(){$(this).find('img').fadeIn();}).mouseleave(function(){$(this).find('img').fadeOut();});

    isExpanded = true;
    expand = 'Show version history';
    hide = 'Hide version history';
    $("#expand").click(function(e){
        e.preventDefault();
        if(!isExpanded) {
            $("#notes").slideDown();
            $(this).text(hide);
            isExpanded = true;
        }
        else {
            $("#notes").slideUp();
            $(this).text(expand);
            isExpanded = false;
        }

    });
});

function trackAction(actionId)
{
    pageTracker._trackPageview(actionId);
    secondTracker._trackPageview(actionId);
    return true;
}

function trackDownload(identifier)
{
    return trackAction("downloads/" + identifier);
}

function initializeDownloadPage()
{
    var BrowserDetect = getBrowserDetect();
    BrowserDetect.init();

    var map = { 'Windows' : '#download-windows',
                'Mac' : '#download-mac',
                'Ubuntu' : '#download-ubuntu',
                'Linux' : '#download-linux'
              };

    $.each(map,function(key,value)
           {
               if (key == BrowserDetect.OS)
               {
                   $(value).parent().effect("bounce",
                                            {times:3,distance:30},
                                            300);
               }
               else
               {
                   $(value).parent().fadeTo('slow',
                                            0.5);
                   $(value).parent().mouseenter(function()
                                                {
                                                    $(this).fadeTo('slow',
                                                                   1);
                                                });
                   $(value).parent().mouseleave(function()
                                                {
                                                    $(this).fadeTo('slow',
                                                                   0.5);
                                                });
               }
           });
}

/* http://www.quirksmode.org/js/detect.html */
function getBrowserDetect()
{
    return {
        init: function () {
            this.browser = this.searchString(this.dataBrowser) || "An unknown browser";
            this.version = this.searchVersion(navigator.userAgent)
                || this.searchVersion(navigator.appVersion)
                || "an unknown version";
            this.OS = this.searchString(this.dataOS) || "an unknown OS";
        },
        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: "Chrome",
                identity: "Chrome"
            },
            {       string: navigator.userAgent,
                    subString: "OmniWeb",
                    versionSearch: "OmniWeb/",
                    identity: "OmniWeb"
            },
            {
                string: navigator.vendor,
                subString: "Apple",
                identity: "Safari",
                versionSearch: "Version"
            },
            {
                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.userAgent,
                subString: "iPhone",
                identity: "iPhone/iPod"
            },
            {
                string: navigator.userAgent,
                subString: "Ubuntu",
                identity: "Ubuntu"
            },
            {
                string: navigator.platform,
                subString: "Linux",
                identity: "Linux"
            },
        ]
    };
}


