jQuery.fn.fadeToggle = function(speed, easing, callback) {
    return this.animate({ opacity: 'toggle' }, speed, easing, callback);
};

(function($) {

    $.fn.clickableGrid = function(o) {

        //Highlight row when mouse over
        $(o).find("tr.gridRow,tr.gridAltRow").mouseover(function() { $(this).addClass("gridRowHover"); }).mouseout(function() { $(this).removeClass("gridRowHover"); });

        //Clickable row
        $(o).find("tr.gridRow,tr.gridAltRow").each(function() {

            if ($(this).find("a[Clickable]").length > 0) {
                var url1 = $(this).find("a[Clickable]")[0].href;
                var $kids = $(this).find("td");
                $kids.each(function() {
                    if ($(this).find("a").length > 0) {
                        var a = 0;
                    }
                    else {
                        $(this).css("cursor", "pointer");
                        $(this).click(function() {
                            window.location = url1;
                        });
                    }
                });

            }
            //            var $kids = $(this).find("a[Clickable]");
            //            if ($kids.length > 0) {
            //                $(this).css("cursor", "pointer");
            //                $(this).click(function() {
            //                    window.location = $kids[0].href;
            //                });
            //            }
        });

        return this;
    };


})(jQuery);

$(document).ready(function() {

    //    $(".signin").click(function() {
    //        $("#signBox").toggle();
    //        $("#loginBox a.signin").toggleClass("signinhover");
    //        return false;
    //    });
    function megaHoverOver() {
        var test = $(this).find(".sub");
        if (test.length == 0)
            return false;

        $(this).find(".sub").toggle();

        var parent = $(this);
        parent.toggleClass("hover");

        //Set Width
        var rowWidth = $(this).find(".sub").outerWidth();
        $(this).find(".sub").css({ 'position': 'absolute', 'top': parent.position().top + parent.height() - 1, 'left': parent.position().left + parent.width() - rowWidth + 8 , 'z-index':9000});

        if (!$.browser.msie)
            $(this).corner("5px top");
    }

    function megaHoverOut() {
        var test = $(this).find(".sub");
        if (test.length == 0)
            return false;

        var parent = $(this);
        parent.toggleClass("hover");

        $(this).find(".sub").toggle();
    }


    var config = {
        sensitivity: 2, // number = sensitivity threshold (must be 1 or higher)    
        interval: 100, // number = milliseconds for onMouseOver polling interval    
        over: megaHoverOver, // function = onMouseOver callback (REQUIRED)    
        timeout: 400, // number = milliseconds delay before onMouseOut    
        out: megaHoverOut // function = onMouseOut callback (REQUIRED)    
    };

    $("ul#topnav li.menuItem").hoverIntent(config);

    if (!$.browser.msie)
        $(".sub").corner('bottom left 5px');

    $("#brand label").inFieldLabels();
    $("#footer label").inFieldLabels();
    $("#contactForm label").inFieldLabels();
    $("#firstStep .stepcontent label").inFieldLabels();
    $(".validationbox label").inFieldLabels();
    $("label.inFieldLabels").inFieldLabels();



    $(".languageMenu a").click(function() {
        $(".languages").css({ top: $(this).offset().top - $(".languages").height() - 20, left: $(this).offset().left });
        $(".languages").toggle();
        return false;
    });

    $(".languages a").click(function() {
        $(".languages").toggle();
    });

    $(".grid").clickableGrid();
    
    

    jQuery.event.add(window, "load", resizeFrame);
    jQuery.event.add(window, "resize", resizeFrame);

    $("#faq .fullboxbottom ul li span").after(" <a class='backToTop' href='#top5'>Back to the top</a>");
    $('#faq').localScroll();
    $('.localScroll').localScroll();

    $('.Date').datepicker({ gotoCurrent: true, dateFormat: 'dd/mm/yy', constrainInput:true });
    $('#homeAnimation').flash({
        src: 'anim_accueil.swf',
        width: 920,
        height: 253,
        wmode: 'transparent'
    });
    $('#homeAnimationEn').flash({
        src: 'anim_accueil_eng.swf',
        width: 920,
        height: 253,
        wmode: 'transparent'
    });
});

function resizeFrame() {
    $("#frame").height($(window).height() - $("#contentShowcase").height() - 5);
}

function showFilter() {
    if ($("#filterunderlay").length == 0) {
        $(".filter").before("<div id='filterunderlay'>&nbsp;</div>");
        $("#filterunderlay").css({ position: "fixed", top: 0, left: 0, width: $(window).width(), height: $(window).height() });
        $("#filterunderlay").click(function() {
            showFilter();
        });
    }
    else {
        $("#filterunderlay").toggle();
    }
    
    $(".filter").toggle();
    $(".filter").css({ top: $("#filterLink").position().top + $("#filterLink").outerHeight() - 4, left: $("#filterLink").position().left + $("#filterLink").outerWidth() - $(".filter").outerWidth() });
}

function collapse(header) {
        header.next(".box-body").slideToggle(500, function() {
        header.toggleClass("box-head-closed");
    })
    return false;
}

function OnLoad(sceneUrl, Dx10Scene) {
            var nomnav = navigator.appName;
            if (nomnav == 'Microsoft Internet Explorer') {
                try {
                    webPlugin.style.display = "";
                    var webPlayer = document.getElementById("webplayer");
                    webPlayer.Null();
                    checkPlugin.style.display = "none";
                    installPlugin.style.display = "none";
                    
                    webPlayer.ShowContextMenu = true;
                    webPlayer.Initialize(Dx10Scene);
                    webPlayer.SetDownloadCache("Nova Download Cache", 150);

                    setTimeout(function() {
                        var webPlayer = document.getElementById("webplayer");
                        webPlayer.SceneURL = sceneUrl;
                        webPlayer.Refresh();


                    }, 500);

                }
                catch (e) {
                    checkPlugin.style.display = "none";
                    installPlugin.style.display = "";
                    webPlugin.style.display = "none";
                }
            }
            else {
                var divPlugin = document.getElementById("pluginContainer");
                divPlugin.innerHTML = '<embed id="webplayer" type="application/x-novamxc" Style="width:450px; height:300px;" height="300" width="450"></embed>'
                setTimeout(function() {
                    document.getElementById("webPlugin").style.display = "";
                }, 1000);
                setTimeout(function() {
                    try {
                        var webPlayer = document.getElementById("webplayer");
                        webPlayer.Null();
                        
                        document.getElementById("checkPlugin").style.display = "none";
                        document.getElementById("installPlugin").style.display = "none";

                        webPlayer.Initialize(Dx10Scene);
                        webPlayer.ShowContextMenu = true;
                        webPlayer.SetDownloadCache("Nova Download Cache", 150);
                        

                        setTimeout(function() {
                            var webPlayer = document.getElementById("webplayer");
                            webPlayer.SceneURL = sceneUrl;
                            webPlayer.Refresh();

                            
                        }, 500);

                        //il est necessaire de faire un refresh dans ce cas pour firefox
                        window.onscroll = function() {
                            var webPlayer = document.getElementById("webplayer");
                            webPlayer.Refresh();
                        };
                        //il est necessaire de faire un refresh dans ce cas pour firefox
                        window.onresize = function() {
                            var webPlayer = document.getElementById("webplayer");
                            webPlayer.Refresh();
                        };
                    }
                    catch (e) {
                        document.getElementById("checkPlugin").style.display = "none";
                        document.getElementById("installPlugin").style.display = "";
                        document.getElementById("webPlugin").style.display = "none";
                    }
                }, 2000);
 
            }
        }
        function OnUnload() {
            try {
                var id = document.getElementById("webplayer");
                id.Close();
            }
            catch (e) { } 
        }

