﻿//CONFIG
var espr_light_types=[
    [{led: 6, other: 40}, {led: 10, other: 60}],
    [{led: 5, other: 25}],
    [{led: 6, other: 40}],
    [{led: 5, other: 25}],
    [{led: 4, other: 20}]
];
//NATIVE FUNCTIONS
var sprint=function(){
    $(".acc_content:visible").attr("style", "visibility:visible;");
    $(".acc_content").show();
    window.print();
    $(".acc_content").hide().filter("[visibility='visible']").attr("style", "").show();
    return;
}
function mainmenu(){
    $(" #nav ul ").css({display: "none"}); // Opera Fix
    $("#nav a").click(function(){
        $li=$(this).parent();
        if($li.find("ul:first").length!=0)
        {
            if($li.find("ul:first:visible").length!=0)
            {
                $li.find('ul:first, ul:first ul:visible').css({visibility: "hidden"});
            }
            else
            {
                var $list=$li.parent().filter("ul").find(">li");
                var index=$list.index($li);
                $list.filter(":not(:eq("+index+"))").find("> ul").slideUp(400);
                $("#nav > li > ul > li:not(:eq("+$("#nav > li > ul > li").index($li.parents("li").filter(":last").find("> ul > li"))+")) ul:visible").slideUp(400);
                $li.find('ul:first:hidden').css({visibility: "visible",display: "none"}).slideDown(400);
            }
        }
        else
        {
            return true;
        }
        return false;
    });
}
//HANDLER FUNCTIONS
var espr_s1_light_type_input = function(){
    var type=$(this).val();
    var $espr_s2_vergleich_select=$("#espr_s2_vergleich_select");
    $espr_s2_vergleich_select.removeOption(/./);
    /*$espr_s2_vergleich_select.addOption("", "Bitte w&auml;hlen");*/
    switch(type)
    {
        case "0":
                $espr_s2_vergleich_select.addOption(0, "LED "+(espr_light_types[0][0].led)+"W (&asymp; "+(espr_light_types[0][0].other)+" Watt)");
                $espr_s2_vergleich_select.addOption(1, "LED "+(espr_light_types[0][1].led)+"W (&asymp; "+(espr_light_types[0][1].other)+" Watt)");
            break;
        case "1":
                $espr_s2_vergleich_select.addOption(0, "LED "+(espr_light_types[1][0].led)+"W (&asymp; "+(espr_light_types[1][0].other)+" Watt)");
            break;
        case "2":
                $espr_s2_vergleich_select.addOption(0, "LED "+(espr_light_types[2][0].led)+"W (&asymp; "+(espr_light_types[2][0].other)+" Watt)");
            break;
        case "3":
                $espr_s2_vergleich_select.addOption(0, "LED "+(espr_light_types[3][0].led)+"W (&asymp; "+(espr_light_types[3][0].other)+" Watt)");
            break;
        case "4":
                $espr_s2_vergleich_select.addOption(0, "LED "+(espr_light_types[4][0].led)+"W (&asymp; "+(espr_light_types[4][0].other)+" Watt)");
            break;
    }
    //IE BUG FIX
    $espr_s2_vergleich_select.find("option").each(function(){
        $(this).html($(this).text());
    });
    $espr_s2_vergleich_select.selectOptions("");
};
var espr_s4_submit = function(){
    $("#espr_form").validate({
        errorClass: "error",
        success: "valid",
        ignoreTitle: true,
        errorPlacement: function(error, element) {
            if ( element.is(":radio") )
                error.appendTo( element.parent() );
            else if ( element.is(":checkbox") )
                error.appendTo ( element.parent() );
            else
                error.appendTo( element.parent() );
        },
        success: function(label) {
            /*label.addClass("valid").html("Valid")*/
        }
    });

    if(!$("#espr_form").valid())
    {
        return false;
    }
    var input_wattage_other_light = espr_light_types[$(".espr_s1_light_type_input:checked").val()][$("#espr_s2_vergleich_select").val()].other;
    var input_wattage_led_light = espr_light_types[$(".espr_s1_light_type_input:checked").val()][$("#espr_s2_vergleich_select").val()].led;
    var input_stromkosten = parseFloat($(".espr_number_input[name='stromkosten']").val().replace(",", "."));
    var input_brenndauer_stunden = parseFloat($(".espr_number_input[name='taegliche_brenndauer']").val().replace(",", "."));
    var input_brenndauer_tage = parseFloat($(".espr_number_input[name='jaehrliche_brenndauer']").val().replace(",", "."));
    var input_anzahl = parseInt($(".espr_number_input[name='anzahl']").val().replace(",", "."));
    var input_jahre = parseFloat($(".espr_number_input[name='jahre']").val().replace(",", "."));
    var result_energieverbrauch_other = input_wattage_other_light * input_brenndauer_stunden * input_brenndauer_tage * input_jahre * input_anzahl / 1000;
    var result_energieverbrauch_led = input_wattage_led_light * input_brenndauer_stunden * input_brenndauer_tage * input_jahre * input_anzahl / 1000;
    var result_energiekosten_other = result_energieverbrauch_other * input_stromkosten;
    var result_energiekosten_led = result_energieverbrauch_led * input_stromkosten;
    var result_emession_other = result_energieverbrauch_other * 0.43;
    var result_emession_led = result_energieverbrauch_led * 0.43;
    var result_energiekosten = result_energiekosten_other - result_energiekosten_led;
    var result_prozent = 100 / result_energiekosten_other * result_energiekosten / 100;
    var result_emession_kg = result_emession_other - result_emession_led;
    var result_emession_trees = result_emession_kg / 6;
    var result_emession_km = result_emession_kg * 1000 / 130.35;
    var result_energiekosten = Math.round(result_energiekosten*100)/100;
    var result_prozent = Math.round(result_prozent*100);
    var result_emession_kg = Math.round(result_emession_kg*100)/100;
    var result_emession_trees = Math.ceil(Math.round(result_emession_trees*10)/10);
    var result_emession_km = Math.round(result_emession_km);
    $(".espr_result_prozent").text(result_prozent+"%");
    $(".espr_result_betrag").text(result_energiekosten+" EUR");
    $("#result_emession_kg").html(result_emession_kg+" kg");
    $("#result_emession_trees").html(result_emession_trees+" B&auml;ume");
    $("#result_emession_km").html(result_emession_km+" km");
    $(".espr_screen1").hide();
    $(".espr_screen2").show();
    return false;
};
var espr_reset = function(){
    $(".espr_screen1").show();
    $(".espr_screen2").hide();
    return false;
};
var espr_radio_label = function(){
    $(this).parent().find("input").trigger("click");
    return true;
};
var espr_radio_label_direct = function(){
    $(this).find("input").trigger("click");
    return true;
};
var competition_submit = function(){
    $("#comp_form").validate({
        errorClass: "error",
        success: "valid",
        ignoreTitle: true,
        errorPlacement: function(error, element) {
            if ( element.is(":radio") )
                error.appendTo( element.parent() );
            else if ( element.is(":checkbox") )
                error.appendTo ( element.parent() );
            else
                error.appendTo( element.parent() );
        },
        success: function(label) {
            /*label.addClass("valid").html("Valid")*/
        }
    });
    if(!$("#comp_form").valid())
    {
        return false;
    }
    else
    {
        $("#comp_form").submit();
    }
};
//DOCUMENT MANIPULATION
$(document).ready(function(){
    //Energiesparrechner
    $(".espr_s1_light_type_input").click(espr_s1_light_type_input);/*
    $(".espr_number_input[name='jahre']").setMask({mask:'99,99', type : 'reverse'});
    $(".espr_number_input[name='stromkosten']").setMask({mask:'99,9', type : 'reverse'});
    $(".espr_number_input[name='taegliche_brenndauer']").setMask({mask:'99,9', type : 'reverse'});
    $(".espr_number_input[name='jaehrliche_brenndauer']").setMask({mask:'999', type : 'reverse'});*/
    $("#espr_s4_submit").click(espr_s4_submit);
    $("#espr_reset").click(espr_reset);
    $(".espr_radio_text, .espr_icon_lamp").click(espr_radio_label);
    $(".espr_lamp_auswahl_bg_box").click(espr_radio_label_direct);
    $(".espr_radio_text, .espr_icon_lamp").css("cursor", "pointer");
    $(".espr_lamp_auswahl_bg_box").css("cursor", "pointer");
    $(".espr_s1_light_type_input:first").trigger("click");
    $("#competition_submit").click(competition_submit);
    //Navigation
    mainmenu();
    //Anfahrtsplan
    var dialog = $("<div title=\"Anfahrtsplan\"><iframe id=\"modalIframeId\" width=\"100%\" height=\"100%\" marginWidth=\"0\" marginHeight=\"0\" frameBorder=\"0\" scrolling=\"auto\" title=\"Dialog Title\">Your browser does not suppr</iframe></div>").appendTo(".site");
      dialog.dialog({
        autoOpen: false,
        modal: true,
        height: 370,
        width: 800,
        closeOnEscape: true,
        resizable: false
    });
    $(".anfahrtsplan").attr("href", "#");
    $(".anfahrtsplan").click(function(){
       dialog.dialog("open");
       $("#modalIframeId").attr("src", $(this).attr("rel"));
        return false;
    });
    //Accordion
    $(".accordion").each(function(){
       var $this=$(this);
        $this.find(".acc_content").hide().parent().find(".acc_headline_icon img").attr("src", "/media/images/layout/accordion_arrow_right.jpg");
        $this.find(".acc_headline").click(function(){
            $this.find(".acc_content").hide();
            if ($(this).find(".acc_headline_icon img").attr("src") == "/media/images/layout/accordion_arrow_right.jpg") {
            $this.find(".acc_headline_icon img").attr("src", "/media/images/layout/accordion_arrow_right.jpg");
            $(this).next(".acc_content").toggle("fast");
            $(this).find(".acc_headline_icon img").attr("src", "/media/images/layout/accordion_arrow_down.jpg");
            } else {
            $this.find(".acc_headline_icon img").attr("src", "/media/images/layout/accordion_arrow_right.jpg");
            }
        });
    });
    //special anchor active tabbing
    /*
    $stabcontainer=$(".stabcontainer");
    $(".stablink").click(function(){
        $this=$(this);
        //hide container
        $stabcontainer.hide();
        //show clicked content
        $stabcontainer.find("> h1 > a[name='"+$this.attr("href").split("#")[1]+"']").parent().parent().show();
        return true;
    });
    if($stabcontainer.length>0)
    {
        if(location.href.split("#")[1]!="" && location.href.split("#")[1]!=undefined)
        {
            $(".stablink[href='#"+(location.href.split("#")[1])+"']").trigger("click");
        }
        else
        {
            $(".stablink:first").trigger("click");
        }
    }*/
    //Tabbed
    var $tabbed_content=$("body");
    $("ul.tab_links a").click(function(){
        var $this=$(this);
        var $parent=$this.parent();
        //remove last active
        $tabbed_content.find("div.tabbed_layer.active").removeClass("active");
        $tabbed_content.find("ul.tab_links li.active_left").removeClass("active_left");
        $tabbed_content.find("ul.tab_links li.active_link").removeClass("active_link");
        $tabbed_content.find("ul.tab_links li.active_right").removeClass("active_right");
        //set new active
        $parent.prev().addClass("active_left")
        $parent.addClass("active_link");
        $parent.next().addClass("active_right")
        $($this.attr("href")).addClass("active");
        return true;
    });
    if($tabbed_content.length==1)
    {
        if(location.href.split("#")[1]!="" && location.href.split("#")[1]!=undefined)
        {
            $tabbed_content.find("ul.tab_links a[href='#"+(location.href.split("#")[1])+"']").trigger("click");
        }
        else
        {
            $tabbed_content.find("ul.tab_links a:first").trigger("click");
        }
    }
    //PRODUCT OVERVIEW
    //vars
    $overview_text=$("#overview_text");
    $overview_image=$("#overview_image");
    $product_overview_text_img=$("#product_overview_text img");
    $product_overview_images_img=$("#product_overview_images img");
    $filter_options=$("#product_overview_filter_options input.product_overview_filter_type, #product_overview_filter_options input.product_overview_filter_power, #product_overview_filter_options input.product_overview_filter_base, #product_overview_filter_options input.product_overview_filter_special");
    $table_product_text_entries=$("#overview_text table tr:not(:first)");
    //init
    $overview_text.hide();
    //view switch
    $("#product_overview_text").click(function(){
        $overview_text.show();
        $overview_image.hide();
        $product_overview_text_img.attr("src", "/media/images/layout/liste_active.gif");
        $product_overview_images_img.attr("src", "/media/images/layout/bilder_inactive.gif");
        return false;
    });
    $("#product_overview_images").click(function(){
        $overview_text.hide();
        $overview_image.show();
        $product_overview_text_img.attr("src", "/media/images/layout/liste_inactive.gif");
        $product_overview_images_img.attr("src", "/media/images/layout/bilder_active.gif");
        return false;
    });
    //onclick link
    $(".product_overview_entry_link").each(function(){
        var $this=$(this);
        $this.parent().click(function(){
            location.href=$this.find("a").attr("href");
            return false;
        });
        $this.parent().css("cursor", "pointer");
    });
    //filter init
    $table_product_text_entries.each(function(){
        var $this=$(this);
        var option_active=true;
        var index=$table_product_text_entries.index($this);
        //test type
        if(!$filter_options.filter("[name='"+$this.find("td:eq(2)").attr("class")+"']").is(":checked"))
        {
            option_active=false;
        }
        //test power
        if(!$filter_options.filter("[name='"+$this.find("td:eq(3)").attr("class")+"']").is(":checked"))
        {
            option_active=false;
        }
        //test base
        if(!$filter_options.filter("[name='"+$this.find("td:eq(5)").attr("class")+"']").is(":checked"))
        {
            option_active=false;
        }
        //test special
        if($this.find("td:eq(6)").text()!="" && $filter_options.filter("[name='filter_special']").filter(":checked").val()==0)
        {
            option_active=false;
        }
        if($this.find("td:eq(6)").text()=="" && $filter_options.filter("[name='filter_special']").filter(":checked").val()==1)
        {
            option_active=false;
        }
        //show/hide
        if(option_active)
        {
            $this.show()
            $("#overview_image > div:eq("+index+")").show();
        }
        else
        {
            $this.hide()
            $("#overview_image > div:eq("+index+")").hide();
        }
        //set row color
        if($table_product_text_entries.filter(":visible").index(this) % 2 == 0)
        {
            $("td", this).css("background-color", "#fbe6cd");
        }
        else
        {
            $("td", this).css("background-color", "#FFFFFF");
        }
    });
    //filter handler
    $filter_options.click(function(){
        $table_product_text_entries.each(function(){
            var $this=$(this);
            var option_active=true;
            var index=$table_product_text_entries.index($this);
            //test type
            if(!$filter_options.filter("[name='"+$this.find("td:eq(2)").attr("class")+"']").is(":checked"))
            {
                option_active=false;
            }
            //test power
            if(!$filter_options.filter("[name='"+$this.find("td:eq(3)").attr("class")+"']").is(":checked"))
            {
                option_active=false;
            }
            //test base
            if(!$filter_options.filter("[name='"+$this.find("td:eq(5)").attr("class")+"']").is(":checked"))
            {
                option_active=false;
            }
            //test special
            if($this.find("td:eq(6)").text()!="" && $filter_options.filter("[name='filter_special']").filter(":checked").val()==0)
            {
                option_active=false;
            }
            if($this.find("td:eq(6)").text()=="" && $filter_options.filter("[name='filter_special']").filter(":checked").val()==1)
            {
                option_active=false;
            }
            //show/hide
            if(option_active)
            {
                $this.show()
                $("#overview_image > div:eq("+index+")").show();
            }
            else
            {
                $this.hide()
                $("#overview_image > div:eq("+index+")").hide();
            }
            //set row color
            if($table_product_text_entries.filter(":visible").index(this) % 2 == 0)
            {
                $("td", this).css("background-color", "#fbe6cd");
            }
            else
            {
                $("td", this).css("background-color", "#FFFFFF");
            }
        });
    });
    //ie hacks
    $(".product_info_bottom table").css("margin-left", "0px");
    $(".product ul").css("margin-left", "3px");
});
