/**
 * @author nueysan.waldman
 * @author ferenc.radius
 */
jQuery.fn.wrapper = function() {
	$(this).wrapInner('<div class="wrapper"><div class="wrapper_inner"></div></div>');
}

function isIe6() {

	return !!(
        window.attachEvent && document.compatMode && document.all &&
        document.documentElement.style.maxHeight == undefined
    );

}

function isIE() {
	return !!document.all;
}

jQuery(function($) {

    if($('#flash_homepage').length > 0 && deconcept.SWFObjectUtil.getPlayerVersion().major >= 9) {
        $('#footer').hide();
        $('#flash_homepage').addClass('flashed');
        $('#flash_homepage').prependTo('body').parent('body').css('overflow','hidden');

        // TODO: Make this dynamic by using the class 'flash_var' as selector
        //       Then just add each flash var using the 'id' as name and 'rel' as value
        var highlightUrl = $('#flash_homepage #highlight_url').attr('rel');

        so = new SWFObject('./assets/swf/homepage.swf', 'map', '100%', '100%', '8', '#000000');
        so.addParam('allowScriptAccess', 'sameDomain');
        so.addParam('allowFullScreen', 'true');
        so.addParam('quality', 'high');
        so.addParam('wmode', 'transparent');
        so.addVariable('highlightUrl', highlightUrl);
        so.write('flash_homepage');
    } else if($('#flash_homepage').length > 0) {
        $('#theme_header').css('height', '0');
        $('#home #footer').css('visibility', 'hidden');
    }


    var searchLabel = $('#search_container label').remove().text();
    $('#search_input').val(searchLabel).focus(function(){
      if (this.value == searchLabel) {
        $(this).val('');
      }
      }).blur(function(){
      if (this.value == '') {
        $(this).val(searchLabel);
      }
    });
    $('#search_container :submit').hide();

    // style lists in content
    $('#content ol').css({
        'font-family': 'serif',
        'font-weight': 'bold'
    });
    $('#content ol li').wrapInner('<span></span>');
	$('#content > ul li:odd').addClass('odd');
//	Requires less blunt approach --Nuey

    /* wrappers */

	$('#content div.component, .questions, .formula, .answers, .q_and_a, .error_caption, .success_caption').wrapper();

    /* Section Answer */
    $('.answers').each( function() {
        $(this).addClass('collapsed');

        $(this).find('h3').click( function() {
            var jumpStart = $(this).parent().parent().parent();

            if( jumpStart.is('.collapsed') ) {
                jumpStart.addClass('expanded');
                $(this).next('.answers_body').slideDown(100, function() {
                    jumpStart.removeClass('collapsed');
                });
            }
            else {
                jumpStart.removeClass('expanded').addClass('collapsed');
                $(this).next('.answers_body').slideUp(100);
            }
        });
    });

    /* Search Filters */

    $('.collapsed h3, .expanded h3').hover( function() {
		$(this).css('cursor','pointer');
	} );
     $('.filter_list').each( function() {
        $(this).addClass('collapsed');

        $('.filter_list h3').click( function() {
            var jumpStart = $(this).parent().parent().parent();

            if( jumpStart.is('.collapsed') ) {
                jumpStart.addClass('expanded');
                $(this).next('ul').slideDown(100, function() {
                    jumpStart.removeClass('collapsed');
                });
            }
            else {
                jumpStart.removeClass('expanded');
                $(this).next('ul').slideUp(100, function(){
                    jumpStart.addClass('collapsed');
                });
            }
        });
    });

    /* Section Q and A */
    $('.qa_elaborations, .qa_elaboration').addClass('collapsed').hide();

    $('.qa_answer').each( function() {
        var answer_number = $(this).attr('id');

        // Stripping 'qa_answer_' from id
        if (answer_number != null && answer_number.length > 0) {
            answer_number = answer_number.substr(10);
        }

        $(this).css('cursor','pointer');

        $(this).click( function() {
            // Set answer to answered
            if (!($(this).is('.answered'))) {
                $(this).addClass('answered');
             /* if ($(this).is('.correct'))   { // Do something }
                if ($(this).is('.incorrect')) { // Do something } */
            }

            // Retrieve elaboration body (and show it if needed)
            var elaboration_body = $(this).parent().next('.qa_elaborations');
            if( elaboration_body.is('.collapsed') ) {
                elaboration_body.removeClass('collapsed');
                elaboration_body.show();
            }

            // Hide expanded elaborations
            elaboration_body.children('.expanded').removeClass('expanded').addClass('collapsed').hide();

            // Show elaboration corresponding with answer
            var elaboration = elaboration_body.children('#qa_elaboration_' + answer_number);
            elaboration.removeClass('collapsed').addClass('expanded');
            elaboration.show();
        });
    });

    /* Forms */
    // todo: AJAX the hell out this --Nuey
    $('#password_form, .error_caption, .success_caption').hide();
    $('#forgot_password').click(function(){
       $('#password_form').fadeIn(250);
       return false;
    });

    $('#content div.image_container').each(function(){
        $(this).wrapInner('<div class="image_container_wrapper"></div>');
    });

	// Reactions
    $('<div id="pretty"></div>').appendTo('#reaction_container dd');
    $('#reaction_container dd > ul > li:odd').addClass('odd');
    $('#reaction_container dd > ul > li:even').addClass('even');
    $('#reaction_container dd > ul > li:first').removeClass('even');

    $('#vraagbaak #reaction_container .links > ul > li').removeClass('odd').removeClass('even');

    $('#vraagbaak_table tbody tr:odd').addClass('odd');
    $('.table_default tbody tr:odd').addClass('odd');
    $('#vraagbaak_forms .button_container:first, #vraagbaak_forms legend').hide();

    var vraagbaakSearchLabel = $('#search_vraagbaak label').remove().text();
    $('#search_vraagbaak input#vraagbaak_search').val(vraagbaakSearchLabel).focus(function(){
      if (this.value == vraagbaakSearchLabel) {
        $(this).val('');
      }
      }).blur(function(){
      if (this.value == '') {
        $(this).val(vraagbaakSearchLabel);
      }
    });

    $('#content fieldset, #vraagbaak_form fieldset, #login_container fieldset').each(function(){
        var legendReplacer = $('legend', this).remove().text();
        $('<h4></h4>').text(legendReplacer).prependTo( this );
    });

    $('.moderator_tools .tool a').css('opacity','0.5').hover(
        function(){$(this).css('opacity','1');},
        function(){$(this).css('opacity','0.5');}
    );

    /* Search Page */
    $('#search_results .overview_details').hide();
    $('#search_results .overview_item').hoverIntent( function() {
            $(this).children('.overview_details').slideDown();
        },
        function() {
            $(this).children('.overview_details').slideUp();
        }
    );

    /**
     * give empty children a height
     */

    if($('div#theme_header').children("*").length == 0) {
    	$('div#theme_header').addClass('empty');
    }
    
	if(isIe6()) {
		$('#search_vraagbaak .button_container').pngFix();
        $('#logo').pngFix();
		$('.theme_header').pngFix();	
		$('.download_link').pngFix();
	}

    Cufon.replace('#content > h1,#content > h2, #content > h3, #filter h3, #login_container > h1, #vraagbaak_container > h1, #vraagbaak_container h2, #highlight > h1, #highlight > h2');
});




