var searchString = "Suchen";
var partnerPLZString = "Bitte PLZ eingeben";
var activeGalleryImage = 0;
var IsiPad = navigator.userAgent.indexOf("iPad") != -1 ;


$(document).ready(function() {

    var container = $('div.sliderGallery');
    var ul = $('ul', container);

    var itemsWidth = 1905;// ul.innerWidth() - container.outerWidth();
    //console.log(itemsWidth);
    $("#searchOverlay").css("left", ($("li.headNavSearch").position().left+14) + "px");
    //$("#languageOverlay").css("left", ($("li.headNavLanguage").position().left-8) + "px");

    
    $('.slider', container).slider({
        min: 0,
        max: itemsWidth,
        stop: function (event, ui) {
            ul.animate({
                'left' : ui.value * -1
                }, 500);
        },
        slide: function (event, ui) {
            ul.css('left', ui.value * -1);
        }
    });

    

    jQuery("#gallery").jcarousel({
        scroll: 1
    });

    $("#searchInput").focus(function() {
        if (this.value == searchString) this.value='';
        showSearchOverlay();
    });
    $("#searchInput").blur(function() {
        if (this.value=='') this.value=searchString;
    });

    $(".partnerSucheInput").blur(function(){
        if(this.value=='') this.value=partnerPLZString;
    });

    $(".partnerSucheInput").click(function(){
        if(this.value==partnerPLZString) this.value='';
    });

    $(".partnerSucheInputOrt").blur(function(){
        if(this.value=='') this.value=partnerPLZString;
    });

    $(".partnerSucheInputOrt").click(function(){
        if(this.value==partnerPLZString) this.value='';
    });

    $(".partnerSucheButton").click(function(){
        $("#searchPartnerForm").submit();
    });

    $(".menuWrapper").hover( function () {
        var offset = $(this).offset ();
        var width = $(this).width ();

        $(this).find (".subMenuItem").slideDown ();
    }, function () {
        $(this).find (".subMenuItem").slideUp ();
    });

    $("#newsSwitcherBox a").click ( function () {
        $("#newsSwitcherBox a").removeClass ();
        $("#newsSwitcherBox a").addClass ("newsSwitchItem");
        $(this).addClass ("newsSwitchItemActive");

        var x = $(this);

        $(".leftNewsTeaser").hide ();
        $("#leftNewsTeaser_" + x.attr ("rel")).fadeIn ();
    } );


    $(".imageGallery").live("click", function ()
    {
        $("#ImageContainer").attr("style", "background:url(" + $(this).attr ("href") + ") no-repeat center #ddd", 1000);
        $("#ImageCaption").html ($(this).find ("img").attr ("alt"));
        var id = this.id.split("_")[1];
        activeGalleryImage = id;

        if (($(".imageGallery").length-1) == activeGalleryImage)
        {
            $("#buttonNext").fadeOut();
        }
        else
        {
            $("#buttonNext").fadeIn();
        }
        if (activeGalleryImage == 0)
        {
            $("#buttonPrev").fadeOut();
        }
        else
        {
            $("#buttonPrev").fadeIn();
        }
        return false;
    } );

    $("a.fancybox").fancybox(
     {
            overlayShow: false,
            cyclic:true,
            showNavArrows: false,
            type: 'image',
            titleShow: false,
            onComplete: function()
            {
               if ($.browser.msie)
               {
                        $("#fancybox-ie").height(parseInt($("#fancybox-inner img").height()+40));
                        $("#fancybox-wrap").height(parseInt($("#fancybox-inner img").height()+40));
                        $("#fancybox-ie").width(parseInt($("#fancybox-inner img").width()+40));
                        $("#fancybox-wrap").width(parseInt($("#fancybox-inner img").width()+40));
               }
            }

        }
     );
    $("a.productInfoBoxOpen").fancybox({
        overlayShow: false,
        cyclic:true,
        showNavArrows: false,
        autoScale : true,
        titleShow: false,
        autoDimensions: true,
        onComplete: function() {

            if (IsiPad) {
                $("#fancybox-inner").height(parseInt($(".productSet").height()+60));
                $("#fancybox-wrap").height(parseInt($(".productSet").height()+60));
            }

            if ($.browser.msie)
            {
               //if ($("#fancybox-wrap").height() < $("#fancybox-inner").height())
               //{
                    $("#fancybox-ie").height(parseInt($("#fancybox-inner").height()+30));
                    $("#fancybox-wrap").height(parseInt($("#fancybox-inner").height()+45));
               //}
            }
}
    });

    $(".openProductOverlay").fancybox({
        overlayShow: false,
        autoScale : true,
        autoDimensions: true,
        titleShow: false,
        onComplete: function(){
            if ($.browser.msie)
            {
               if ($("#fancybox-wrap").height() < $("#fancybox-inner").height())
               {
                   $("#fancybox-ie").height($("#fancybox-inner").height()+30);
                   $("#fancybox-wrap").height($("#fancybox-inner").height()+45);
               }
            }

            if($("#overlayContainer").height()+20 > $("#fancybox-inner").height()) {
                $("#fancybox-wrap").width( $("#fancybox-wrap").width() + 24 );
                $("#fancybox-inner").width( $("#fancybox-inner").width() + 24 );
            } else {
                $("#fancybox-inner").css("overflow", "hidden");
            }

            if (IsiPad) {
                $("#fancybox-inner").height(parseInt($("#overlayContainer").height()+60));
                $("#fancybox-wrap").height(parseInt($("#overlayContainer").height()+60));
                $("#fancybox-inner").width(parseInt($("#overlayContainer").width()+40));
                $("#fancybox-wrap").width(parseInt($("#overlayContainer").width()+40));
            }
        }


    });

    $("a.galleryBoxOpen").fancybox({
        overlayShow: false,
        autoScale : true,
        autoDimensions: true,
        scrolling:'no',
        titleShow: false,
        onComplete: function(){
            //alert("make it bigger!! " + $("#fancybox-inner").height() + "px");
            if ($.browser.msie)
            {
                
                if($("#fancybox-wrap").height() <  495) {
                    $("#fancybox-inner").height(460);
                    $("#fancybox-ie").height(460);
                    $("#fancybox-wrap").height(495);

                } else {
                    $("#fancybox-inner").css("overflow", "hidden");
                }
            }
            else
            {
                if($("#fancybox-inner").height() <  456 || $("#fancybox-inner").width() < 536) {
                    $("#fancybox-inner").height(456);
                    $("#fancybox-wrap").height(476);
                    $("#fancybox-inner").width(536);
                    $("#fancybox-wrap").width(556);
                } else {

                    $("#fancybox-inner").css("overflow", "hidden");
                }
            }
        }
    });




    

    $("#contact_form").validate({
       rules: {
           gender:
           {
               required:true
           },
           firstname:
           {
                required:true
           },
           lastname:
           {
                required:true
           },
           street:
           {
                required:true
           },
           city:
           {
                required:true
           },
           phone:
           {
                required:true
           },
           constadress:
           {
                required:true
           },
           constzip:
           {
                required:true
           },
           constcity:
           {
                required:true
           },
           consttype:
           {
                required:true
           }
       },
       messages: {
           gender:"",
           firstname: "",
           lastname: "",
           street: "",
           city: "",
           phone: "",
           constadress: "",
           constzip: "",
           constcity: "",
           consttype: ""
       }
    });


    $("#cad_form").validate({
       rules: {
           firstname:
           {
                required:true
           },
           lastname:
           {
                required:true
           },
           company:
           {
                required:true
           },
           street:
           {
                required:true
           },
           country:
           {
                required:true
           },
           phone:
           {
                required:true
           },
           mail:
           {
                required:true
           }
       },
       messages: {
           firstname: "",
           lastname: "",
           company: "",
           street: "",
           city: "",
           country: "",
           phone: "",
           mail: ""
       }
    });

     $("#accommodation_form").validate({
       rules: {
           firstname:
           {
                required:true
           },
           lastname:
           {
                required:true
           },
           street:
           {
                required:true
           },
           city:
           {
                required:true
           },
           zip:
           {
                required:true
           },
           phone:
           {
                required:true
           },
           mail:
           {
                required:true
           }
       },
       messages: {
           firstname: "",
           lastname: "",
           street: "",
           city: "",
           zip: "",
           
           phone: "",
           mail: ""
       }
    });
    
    $("#searchForm").validate({
        submitHandler: function(e) {
                   if (searchString == $("#searchForm").val())
                   {
                      return false;
                   }
                   else
                   {
                       e.submit();
                   }
                   
               },
       rules: {
           searchkey:
           {
               required:true,
               minlength:3
           }
       },
       messages: {
           searchkey:""
       }
    });

    $("#searchPartnerForm").validate({
         submitHandler: function(e) {
                    
                   if (parseInt($(".partnerSucheInput").val()) || parseInt($(".partnerSucheInputOrt").val()))
                   {                         
                       e.submit();                      
                   }
                   else
                   {
                       $(".partnerSucheInput").addClass("error");
                      $(".partnerSucheInput").val(partnerPLZString);
                      $(".partnerSucheInputOrt").addClass("error");
                      $(".partnerSucheInputOrt").val(partnerPLZString);
                      return false;
                   }
               },
        rules: {
            country:{
                required:true
            },
            zip:{
                required:true
                
            }
        },
        messages: {
            country:"",
            zip:""
        }
    });

    $("*").keypress(function(e) {
        if (e.keyCode==27)
        {
            //closeLanguageOverlay();
            closeSearchOverlay();
        }
            
    });

    if (jQuery.browser.msie == true)
    {
        $("input")
            .bind("focus", function()
            {
                $(this).addClass("ieActive");
            })
            .bind ("blur", function() 
            {
                $(this).removeClass("ieActive")
            });

    }

    $("#searchInput").keypress(function(e) {
        if (e.keyCode == 13)
        {
            $("#searchForm").submit();
        }
    });


    if ($(".sliderGallery").is(":visible"))
    {
        
        $(document).keydown(function(e){
            var inputSelected;
            if (jQuery.browser.msie == true)
            {
                inputSelected = $("input.ieActive").length;
                
            }
            else
            {
                inputSelected = $("input:focus").length;
            }
            
            if (e.keyCode == 37) {                                
                if (!getHoldLeft() && (!$("#fancybox-outer").is(":visible")) && !inputSelected){
                    slideLeftDown();
                }
            }
            if (e.keyCode == 39 && (!$("#fancybox-outer").is(":visible"))  && !inputSelected) {
                if (!getHoldRight()) {
                    slideRightDown();
                }
            }
            if (inputSelected)
            {
             
            }

            
        });
        $(document).keyup(function(e) {
           if (e.keyCode == 37) {
               slideLeftUp();
           }
           if (e.keyCode == 39) {
               slideRightUp();
           }
        });

    }
    $(document).keydown(function(e) {
        //alert("visible : " + $("#ImageContainer").is(":visible"));
        if ($("#ImageContainer").length)
        {            
            if (e.keyCode == 39) {
                galleryNext();
            }
            if (e.keyCode == 37) {
                galleryPrev();
            }
        }
    });
});

function setDefaultSearchCaption(val)
{
    searchString = val;
}

function galleryNext()
{
    if (($(".imageGallery").length-1) > activeGalleryImage)
    {
        activeGalleryImage=parseInt(activeGalleryImage)+1;
        $("#ImageContainer").attr("style", "background:url(" + $("#galleryImage_" + activeGalleryImage).attr ("href") + ") no-repeat center #ddd", 1000);
        $("#ImageCaption").html ($("#galleryImage_" + activeGalleryImage).find ("img").attr ("alt"));

        if (($(".imageGallery").length-1) == activeGalleryImage)
        {
            $("#buttonNext").fadeOut(100);
        }
        else
        {
            $("#buttonNext").fadeIn(100);
        }
        $("#buttonPrev").fadeIn(100);

    }    
}

function galleryPrev()
{
    if (activeGalleryImage > 0)
    {
        activeGalleryImage=parseInt(activeGalleryImage)-1;
        $("#ImageContainer").attr("style", "background:url(" + $("#galleryImage_" + activeGalleryImage).attr ("href") + ") no-repeat center #ddd", 1000);
        $("#ImageCaption").html ($("#galleryImage_" + activeGalleryImage).find ("img").attr ("alt"));
        if (activeGalleryImage == 0 )
        {
            $("#buttonPrev").fadeOut(100);
        }
        else
        {
            $("#buttonPrev").fadeIn(100);
        }
        $("#buttonNext").fadeIn(100);
    }
}
function openGallery ()
{
    var overlay = $("#galleryPopUp");
    overlay.css ("left", ($(window).width ()/2)-(overlay.outerWidth ()/2));
        
    $("#overlay").fadeIn ();

    /*$("#overlay").animate ( {
		opacity: "0.8"
	} );*/

    overlay.fadeIn ();
}

function closePopUp ()
{
    var overlay = $("#galleryPopUp");
    overlay.fadeOut ();

    $("#overlay").hide ();
}

function toggleLanguageOverlay ()
{
    $("#languageOverlay").toggle ("slow");
    closeSearchOverlay();
}

function closeLanguageOverlay()
{
    $("#languageOverlay").hide("slow");
}

function toggleproductDetailOverlayContainer ()
{
    $("#productDetailOverlayContainer").toggle ("slow");
}

function toggleproductDetailOverlayContainer2 ()
{
    $("#productDetailOverlayContainer2").toggle ("slow");
}

function toggleproductDetailOverlayContainer3 ()
{
    $("#productDetailOverlayContainer3").toggle ("slow");
}

function toggleSearchOverlay ()
{
    $("#searchOverlay").toggle ("slow");
}
function showSearchOverlay()
{
    $("#searchOverlay").show("slow");
    closeLanguageOverlay();
}
function closeSearchOverlay ()
{
    $("#searchOverlay").hide ("slow");
}


var sliderMinLeft = -1902;
function setSliderPosition(x)
{
    var style = parseInt(x) + "px";
    
    $(".sliderGallery ul").css("left",style);
    // 100% -> -1902 px
    
    var percent = x / (sliderMinLeft)*100;
    $(".ui-slider-handle").css("left", percent + "%");
}

var bHoldRight = false;
var bHoldLeft = false;

function slideRightUp()
{
    bHoldRight=false;
}
function slideRightDown()
{
    bHoldRight=true;
    slideRight();
}
function slideRight()
{
    var posLeft = $(".sliderGallery ul").position().left;
    if (!bHoldLeft) { posLeft = posLeft - 50;}
    if (bHoldRight)
    {
        if (posLeft>sliderMinLeft)
        {
            $(".sliderGallery ul").animate({left: posLeft + "px"}, 50, function() {setTimeout(slideRight,0);});
            var percent = posLeft / (sliderMinLeft)*100;
            $(".ui-slider-handle").css("left",percent + "%");
   
        }
        else
        {
            $(".sliderGallery ul").animate({left:sliderMinLeft + "px"}, 50);
            $(".ui-slider-handle").css("left","100%");
        }
    }
}
function getHoldRight()
{
    return bHoldRight;
}
function getHoldLeft()
{
    return bHoldLeft;
}
function slideLeftUp()
{
    bHoldLeft = false;
}
function slideLeftDown()
{
    bHoldLeft = true;
    slideLeft();
}
function slideLeft()
{
    var posLeft = $(".sliderGallery ul").position().left;
    if (!bHoldRight) { posLeft = posLeft + 50;}
    if (bHoldLeft)
    {
        if (posLeft<0)
        {
            $(".sliderGallery ul").animate({left: posLeft + "px"}, 50, function (){setTimeout(slideLeft,0);});

            var percent = posLeft / (sliderMinLeft)*100;
            $(".ui-slider-handle").css("left",percent + "%");
            
        }
        else
        {
            $(".sliderGallery ul").animate({left:"0px"}, 50);
            $(".ui-slider-handle").css("left","0%");
        }
    }
}

function changeProduct (nr){
    $(".productSet").hide();
    $(".productSet:eq("+ nr +")").show();

    //parent.$("#fancybox-wrap").height( $("#fancybox-content-holder").height() + 40 );
    //parent.$("#fancybox-inner").height( $("#fancybox-content-holder").height() + 20 );
};

function fancyprev () {
                $.fancybox.prev();
            }

            function fancynext () {
                $.fancybox.next();
            }


function isiPad()
{
    alert($_SERVER['HTTP_USER_AGENT'] + "df");
    return (ereg('iPad',$_SERVER['HTTP_USER_AGENT'])) > 0;
}