// browser sniffer
var Browser = function(){
  this.uA = navigator.userAgent.toLowerCase();
  this.aN = navigator.appName.toLowerCase();
  this.iE = this.aN.indexOf('microsoft') != -1 ? 1 : 0;
  this.mac =  this.uA.indexOf('mac') != -1 ? 1 : 0;
  this.win = this.uA.indexOf('windows') != -1 ? 1 : 0;
  this.safari =  this.uA.indexOf('webkit') != -1 ? 1 : 0;
  this.opera =  this.uA.indexOf('opera') != -1 ? 1 : 0;   
  this.operaMini =  this.uA.indexOf('mini') != -1 ? 1 : 0;  
  this.mozilla = this.aN.indexOf('netscape') != -1 && !this.safari ? 1 : 0;
  this.winMozilla = this.mozilla && this.win ? 1 : 0;
  this.winIE = this.iE && this.win && !this.opera ? 1 : 0;
  this.winIE6Down = this.winIE && /msie|MSIE 6/.test(navigator.userAgent) == 1 ? 1 : 0;
  this.macIE = this.iE && this.mac ? 1 : 0;
};
var browser = new Browser();
	

// addStyle
var addStyle = function(selector,properties){
  if (document.styleSheets) {
    var s = document.getElementsByTagName('STYLE');
    if (s.length == 0){
      var sheet = document.createElement('style');
      sheet.setAttribute('type','text/css');
      document.getElementsByTagName('HEAD')[0].appendChild(sheet);}
    if (browser.winIE){
      var lastSheet = document.styleSheets[document.styleSheets.length - 1];
      lastSheet.addRule(selector, properties);}
    else {var lastSheet = s[0];
      lastSheet.appendChild(document.createTextNode(selector + ' { ' + properties + ' }'));}
  	}
};
addStyle('.drempel','display:none;');
addStyle('.noscript','display: block !important;');


//incl. .js
var jsPath = "/Scripts/";

document.write('<scr'+'ipt type="text/javascript" src="' + jsPath + 'jquery.corner.js"><\/scr'+'ipt>');
document.write('<scr'+'ipt type="text/javascript" src="' + jsPath + 'jquery.corners.js"><\/scr'+'ipt>');
document.write('<scr'+'ipt type="text/javascript" src="' + jsPath + 'jquery.ui.core.js"><\/scr'+'ipt>');
document.write('<scr'+'ipt type="text/javascript" src="' + jsPath + 'jquery.ui.tabs.js"><\/scr'+'ipt>');
document.write('<scr'+'ipt type="text/javascript" src="' + jsPath + 'jquery.thickbox.js"><\/scr'+'ipt>');
document.write('<scr' + 'ipt type="text/javascript" src="' + jsPath + 'jquery.dropshadow.js"><\/scr' + 'ipt>');
document.write('<scr' + 'ipt type="text/javascript" src="' + jsPath + 'external.js"><\/scr' + 'ipt>');
if (browser.winIE6Down){
	document.write('<scr'+'ipt type="text/javascript" src="' + jsPath + 'jquery.ifixpng.js"><\/scr'+'ipt>');
};

jQuery.noConflict();
(function($) {

    //layout on DomLoad
    $.fn.layOut = function() {

        //// frontend

        //rounded background corners (use corner with border, use corners without border)
        //$('#frontend .btn-sidebar').corner("3px");
        $('#frontend .rnd-small').corner("3px");
        $('#frontend .rnd-big').corner("6px");

        if (browser.winIE) {
            $('#container.wide .right-pane:first').insertBefore("#container.wide .content-pane");
        };

        if (!browser.safari && !browser.winIE6Down) {

            $('#frontend #toolbar').corner("4px");
            $('#frontend #toolbar a').corner("4px");
            $('#frontend .toolbarUser a').corner("4px");

            if (!browser.winIE) {
                $('#frontend input.loginButton').corner("3px");
                $('#frontend input.button').corner("3px");
            };
        };



        //// backend

        $("#backend .dropshadow").css({ border: "none" });

        if (!browser.safari) {
            //render dropshadows (safari uses css)
            $("#backend .dropshadow").each(function() {
                var myHeight = $(this).height() - 14;
                var myWidth = $(this).width() - 14;
                $(this).prepend('<div class="tl"></div><div style="width:' + myWidth + 'px !important;" class="tm"></div><div class="tr"></div><div style="height:' + myHeight + 'px !important;" class="ml"></div><div style="height:' + myHeight + 'px !important;" class="mr"></div><div class="bl"></div><div style="width:' + myWidth + 'px !important;" class="bm"></div><div class="br"></div>');
            });
            //rounded corners or border (safari uses css)
            $('#backend .rnd-small').corners("3px");
            $('#backend .rnd-big').corners("6px");
            $('#backend .rnd-big-bott').corners("6px bottom");
            $('#backend ul.edit-article li a').corners("6px transparent top");
            $('#backend .tabs-container').corners("6px bottom right");
            $('#backend .rnd-title').corners("6px top");
            //$('.tabs-container .rnd-title').corner("6px hiddenParent tl tr");
            $('#backend .infobox').corner("6px");
        };


        // jquery UI tabs
        $('ul.edit-article').tabs();

        //show infobox
        $("#backend .icon-sprite a").each(function() {
            if (!$(this).hasClass("disabled")) {
                xxOffset = -18;
                yyOffset = -202;
                $(this).hover(function(e) {
                    // get the defining span for this element
                    var ele = $(this).parent().children()[1]

                    if (ele) {
                        if (ele.children) {
                            $("#backend .infobox").children()[0].innerHTML = ele.children[0].innerHTML
                            $("#backend .infobox").children()[1].innerHTML = ele.children[1].innerHTML
                        }
                        else {
                            $("#backend .infobox").children()[0].innerHTML = ele.childElements()[0].innerHTML
                            $("#backend .infobox").children()[1].innerHTML = ele.childElements()[1].innerHTML
                        }
                    }
                    else {
                        $("#backend .infobox").children()[0].innerHTML = ""
                        $("#backend .infobox").children()[1].innerHTML = ""
                    }
                    $("#backend .infobox")
					.css("top", (e.pageY - xxOffset) + "px")
					.css("left", (e.pageX + yyOffset) + "px")
					.show();
                }, function() {
                    $("#backend .infobox").hide();
                });
                $(this).click(function() {
                    return false;
                });
            };
        });

        $('#backend input#wide').click(
    function(e) {
        if ($('#backend input#wide').is(':checked')) {
            //$(e).attr('checked',true);
            $("#backend .right-pane").animate({ opacity: 'toggle' }, 1000);
            window.setTimeout(function() {
                $("#backend .left-pane").animate({ width: '100%' }, 600);
            }, 500);
        } else {
            $("#backend .left-pane").animate({ width: '570px' }, 600);
            window.setTimeout(function() {
                $("#backend .right-pane").animate({ opacity: 'toggle' }, 1000);
            }, 500);
        }
    });

    }; // end layout on DomLoad


    //toggle input value
    $.fn.toggleVal = function() {
        return this.focus(function() {
            if (this.value == this.defaultValue) {
                this.value = "";
            }
        }).blur(function() {
            if (!this.value.length) {
                this.value = this.defaultValue;
            }
        });
    };


    //toggle div sequence
    $.fn.toggleSeq = function(id, class1, class2) {
        $('#' + id + ' li a:first').addClass(class2);
        $('#' + id + ' li div:first').show();
        $('#' + id + ' li a').click(function() {
            var checkElement = $(this).next();
            if ((checkElement.is('div.drempel')) && (checkElement.is(':visible'))) {
                return false;
            }
            if ((checkElement.is('div.drempel')) && (!checkElement.is(':visible'))) {
                $('#' + id + ' li a').removeClass(class2);
                $(this).addClass(class2);
                $('#' + id + ' div.drempel:visible').animate({ height: 'toggle' }, { queue: true, duration: 600 }); //, opacity: 'toggle' breaks cleartype IE7	
                checkElement.animate({ height: 'toggle' }, { queue: true, duration: 600 }); //, opacity: 'toggle' breaks cleartype IE7
                return false;
            }
        });
    };


    //toggle div
    $.fn.toggleDiv = function(text1, text2, class1, class2) {
        return this.toggle(function() {
            var el = $('#' + this.href.split('#')[1]);
            $(this).text(text2);
            $(this).removeClass(class1);
            $(this).addClass(class2);
            el.animate({ height: 'toggle' }, { queue: false, duration: 600 }); //, opacity: 'toggle' breaks cleartype IE7
        }, function() {
            var el = $('#' + this.href.split('#')[1]);
            $(this).text(text1);
            $(this).removeClass(class2);
            $(this).addClass(class1);
            el.animate({ height: 'toggle' }, { queue: false, duration: 400 }); //, opacity: 'toggle' breaks cleartype IE7
        });
    };


    //open external links in new window
    $.fn.externalLinks = function() {
        var localDomain = (location.href.split('/')[2]);
        var localExtensionsInNewWindow = Array('doc', 'xls', 'pdf');
        var list = document.getElementsByTagName('A');
        for (var i = 0; i < list.length; i++) {
            var aEl = list[i];
            var aElHref = aEl.href;
            // check for extensions
            var extension = (aElHref.substring(aElHref.length - 4, aElHref.length)).toLowerCase();
            var foundExtension = false;
            for (var j = 0; j < localExtensionsInNewWindow.length; j++) {
                if (extension == '.' + localExtensionsInNewWindow[j]) {
                    foundExtension = true;
                    break;
                }
            };


            // open in new window if conditions are right
            if ((aElHref.split('/')[2] != localDomain && aElHref.indexOf('mailto:') == -1 && aElHref.indexOf('javascript:') == -1) || foundExtension) {
                $(aEl).addClass('external').attr('title', 'external link');
                aEl.onclick = function() {
                    window.open(this.href);
                    return false;
                }
            }
        }
    };


    //tooltip
    $.fn.tooltip = function() {
        xOffset = -20;
        yOffset = 0;
        $("a.tooltip").hover(function(e) {
            this.t = this.title;
            this.title = "";
            $("body").append("<p id='tooltip'>" + this.t + "</p>");
            $("#tooltip")
			.css("top", (e.pageY - xOffset) + "px")
			.css("left", (e.pageX + yOffset) + "px")
			.fadeIn("fast");
        },
	function() {
	    this.title = this.t;
	    $("#tooltip").remove();
	});
        $("a.tooltip").mousemove(function(e) {
            $("#tooltip")
			.css("top", (e.pageY - xOffset) + "px")
			.css("left", (e.pageX + yOffset) + "px");
        });
    };


    //suckerfish navigation
    $(document).ready(function() {
        $("ul.nav li").hover(
    function() { $(this).addClass("active"); },
    function() { $(this).removeClass("active"); }
  );
    });



    //DomLoad
    $(document).ready(function() {

        externalLinks();
        //start onload events

        $('html').layOut();
        $('html').tooltip();
        $('.togval').toggleVal();

        //$('a.toggle').toggleDiv('meer opties','minder opties','icon-plus','icon-min');
        //$('html').toggleSeq('faq','faq-plus','faq-min');

        if (browser.winIE6Down) {
            $('img[src$=.png]').ifixpng();
            try { document.execCommand('BackgroundImageCache', false, true); } catch (e) { };
        };
        if (browser.winIE) {
            $('input:checkbox, input:radio,, input:hidden').css({ border: "none", background: "none" });
        };
        if (browser.safari) { $('input[type=file]').css({ backgroundColor: "transparent", border: "none" }); };

        //end onload events

    });

})(jQuery);

