var $j = jQuery.noConflict();

//
// Preloading FUnction not in jQuery Framework yet
// 
// ... taken from http://engineeredweb.com/blog/09/12/preloading-images-jquery-and-javascript
//
(function($) {
  var cache = [];
  // Arguments are image paths relative to the current page.
  $.preLoadImages = function() {
    var args_len = arguments.length;
    for (var i = args_len; i--;) {
      var cacheImage = document.createElement('img');
      cacheImage.src = arguments[i];
      cache.push(cacheImage);
    }
  }
})(jQuery)

//
// set content div height
//
function checkBrowserName(name){
    var agent = navigator.userAgent.toLowerCase();
    if (agent.indexOf(name.toLowerCase())>-1) {
        return true;
    }
    return false;
}


function init() {
    DrawEverything()
}

function getPosition(who){
    var T= 0,L= 0;
    while(who){
        L+= who.offsetLeft;
        T+= who.offsetTop;
        who= who.offsetParent;
    }
    return [L,T];    
}

function js_merken(finca_ident, finca_name) {
    alert("Die Finca "+finca_name+" wurde zu Ihrer Merkliste hinzugefügt. ")
    set_cookie('EposMerkliste_'+finca_ident,finca_name)
    location.reload();
}

function js_vergessen(finca_ident, finca_name) {
    // alert("Die Finca "+finca_name+" wurde von Ihrer Merkliste entfernt. ")
    alert("Die Finca ("+finca_ident+") "+finca_name+" wurde von Ihrer Merkliste entfernt. ")

    var date = new Date();
    name = 'EposMerkliste_'+finca_ident
    path = "/"
    domain = ""

    document.cookie = name + "=" +
    ( ( path ) ? ";path=" + path : "") +
    ( ( domain ) ? ";domain=" + domain : "" ) +
    ";expires=Thu, 01-Jan-1970 00:00:01 GMT";

    location.reload();
}




$j(document).ready(function() { 


   // 
   // Input Feld onFocus highlight, weil der IE das nicht kann
   //
   $j('input').focus(function() {

	$j(this).fadeTo(0.1,"fast", function () {
	  $j(this).css("background-color", "#FEEFA6");
	  $j(this).fadeIn("slow");
	});

   });
   $j('input').blur(function() {
     $j(this).css('background-color','#ffffff')
     $j(this).css('border','1px solid #bed5f9');
   });
	
	

    //
    // Content anzeigen
    //
    $j('#content_center').css('display','block');

    //
    // Button gradient fuellen
    //
    $j(".raro_button").backgroundCanvas();
    
    
    //
    // Header Click goes to start
    //
    $j("#header_slide, #menu_logo, #header_wave").click(function() {
        window.location = "/home/";
    });
    
    
    //
    // Hover Effekte
    //
    $j(".raro_button_rahmen, .form_search_input_button").hover(function() {$j(this).toggleClass("highlight");},function(){$j(this).toggleClass("highlight");});

    $j(".menu_sub > li").hover( 
                    function() {$j(this).toggleClass("menu_sub_highlight");}, 
                    function(){$j(this).toggleClass("menu_sub_highlight");});

    //
    // Menu Click auf eines der 4 Top-Menüs
    //
    $j(".menu_sub > li").click(function() { 
        //
        // Get the Top-Level Menu that is used
        //
        var act_top_menu_selected = $j(this).parent().attr('id');
    
        //
        // Get the Text that was clicked on
        //
        var new_url="";
        new_url = jQuery.trim( $j(this).attr('id') );
        new_url =  "/menu/" + act_top_menu_selected + "/" + new_url; 
        window.location = new_url;
    });

    //
    // Click auf einen der vier dicken Buttons unter dem Hauptmenü
    //
    $j(".menu_big").click(function() { 
        new_url = jQuery.trim( $j(this).attr('id') );
        new_url =  "/menu/top/" + new_url; 
        window.location = new_url;
    });
    

    // 
    // Suchebox füllen
    //
    populateElement('#form_search', 'Suche ... ');
    
    //
    // Radio Buttons des Reisetermins auswerten
    //
    $j('#reisetermin_flex, #reisetermin_fix').click( function() {
        fn_check_anznaechte();
    });


    //
    // Highlight Menu according to URL 
    //
    
    // open top menu
    p = window.location.pathname.look4menu('menu\/([^/]+)\/');
    if (p!='') {
        //
        // Check if menu-ID exists in DOM
        //
        obj_m = $j("#"+p).prev()
        if ( typeof obj_m === "object" ) {
            //
            // if exists, than toggle that menu
            //
            var temp = obj_m.attr('id');
            if (typeof temp === "string" ) {
                toggle_menu( document.getElementById( obj_m.attr('id') ) )
            }
            //
            // bold submenu
            //
            p2 = window.location.pathname.look4menu(p+'\/([^/]+)');
            if ( $j('#'+p2).length> 0) {
                $j('#'+p2).addClass('menu_sub_selected');
            }
        }

    }

    //
    // Change Header Image
    //
    timeout_millisecs = 2000;
    slide_nummer=1;
    headerslide_timeout = window.setTimeout("swap(timeout_millisecs)",timeout_millisecs );

    $j('a.schnellsuche_hinweise').cluetip( {       
        positionBy:     'mouse',
        arrows:         true, 
        clickThrough:   true,
        closePosition: 'title',
        sticky:true,
        height: '550px',
        width: '600px',
        leftOffset: 50
    }
    );

    $j('#mallorca_weather_div, #1afincas_logo_bottom').cluetip({
        positionBy:     'mouse',
        arrows:         true, 
        titleAttribute: 'title', 
        dropShadow:     true, 
        cluetipClass:   'jtip',
        splitTitle:     '|' ,
        clickThrough:   true,
        hoverIntent: {
            sensitivity:  1,
            interval:     750,
            timeout:      750    
        }

    });

    $j('.menu_sub > li').cluetip({
        positionBy:     'mouse',
        arrows:         true, 
        Attribute: 'title', 
        titleAttribute: 'title', 
        dropShadow:     true, 
        cluetipClass:   'jtip',
        clickThrough:   true,
        hoverIntent: {
            sensitivity:  1,
            interval:     750,
            timeout:      750    
        }

    });


});


function fn_check_anznaechte() {
    //
    // Radio Buttons "Reisetermin"
    //
    if ( $j('#reisetermin_flex').attr('checked') ) {
        //
        // Flexibler Reistermin -> Auswahl zur Anzahl Nächte einschalten
        // 
        $j('#s_anznaechte').removeAttr("disabled");
        $j('#s_anznaechte').css("background-color","#FFFFFF");
    } else {
        //
        // Fixer Reistermin -> Auswahl zur Anzahl Nächte ausschalten
        // 
        $j('#s_anznaechte').val("");
        $j('#s_anznaechte').attr("disabled",true);
        $j('#s_anznaechte').attr("disabled",true);
        $j('#s_anznaechte').css("background-color","#CACACA");
    }
}

function fn_toggle_belegplan(fincaid) {

        var belegplan_block = 'belegungsplan_' + fincaid;

        $j('.belegungsplan_button:not(#belegungsplan_button_'+fincaid+')').attr('src', 'images/bt_slide_zu.gif');
        $j('.belegungsplan:not(#belegungsplan_'+fincaid+')').css('display','none');
        $j('.belegungsplan:not(#belegungsplan_'+fincaid+')').html('... lade den Belegungsplan ...');

        if ( $j('#belegungsplan_'+fincaid).css('display') != 'block' ) {
            $j('#belegungsplan_'+fincaid).css('height', 350 );
            $j('#belegungsplan_'+fincaid).slideDown('1200');
            $j('#belegungsplan_'+fincaid).load( '/a1/inc/x_cal_2009_2.php?id='+fincaid );
            $j('#belegungsplan_button_'+fincaid).attr('src', 'images/bt_slide_auf.gif') ;
            // Load Belegungsplan
            $j('#belegungsplan_'+fincaid).css('width', '700');
            $j('#belegungsplan_'+fincaid).css('height', $j('#belegungskalender_all').height() );
            $j('#belegungsplan_'+fincaid).slideDown('1200', DrawEverything);
            
        } else {
            $j('#belegungsplan_button_'+fincaid).attr('src', 'images/bt_slide_zu.gif');
            $j('#belegungsplan_'+fincaid).slideUp('1200', DrawEverything );
            $j('#belegungsplan_'+fincaid).load( '/a1/inc/loading.php' );
        };
}

function swap( timeout_millisecs ) {

    fadetime =3000;

    if ( slide_nummer=="") {slide_nummer=1}

    $j('#slide'+slide_nummer).fadeTo(fadetime,1);
    $j('#slide'+slide_nummer).fadeOut(fadetime);
    slide_nummer=(slide_nummer*1)+1;
    if (slide_nummer=="6") { slide_nummer=1; }
    $j('#slide'+slide_nummer).fadeTo(fadetime,1);
    $j('#slide'+slide_nummer).fadeIn(fadetime);

    window.setTimeout("swap(timeout_millisecs)" ,timeout_millisecs*5);
    // $j('#s_search_form').val(slide_nummer);
}


//
// String nach "menu" durchsuchen
// 
String.prototype.getvars = [];
String.prototype.look4menu = function(p){
    var match = this.match(new RegExp( p ));
    return this.getvars[p] = (match) ? match[1] : false;
}


function check_reisetermin() {
    //
    // Radio Buttons "Reisetermin"
    //
    if ( $j('#reisetermin_flex').checked ) {
        //
        // Flexibler Reistermin -> Auswahl zur Anzahl Nächte einschalten
        // 
        $j('#s_anznaechte').removeAttr("disabled");
    } else {
        //
        // Fixer Reistermin -> Auswahl zur Anzahl Nächte ausschalten
        // 
        $j('#s_anznaechte').attr("disabled",true);
    }
}

function customRange(input) {
			
			if(input.id == "abreise") {
				return {minDate: $j('#anreise').datepicker('getDate') ? new Date(new Date($j('#anreise').datepicker('getDate')).getTime() + 86400000 *5) : new Date()}
			}
			else if(input.id == "bis") {
				return {minDate: $j('#von').datepicker('getDate') ? new Date(new Date($j('#von').datepicker('getDate')).getTime() + 86400000 *5) : new Date()}
			}
			else if(input.id == "bisDetails") {
				return {minDate: $j('#vonDetails').datepicker('getDate') ? new Date(new Date($j('#vonDetails').datepicker('getDate')).getTime() + 86400000 *5) : new Date()}
			}			
			else {
				return {minDate: new Date()}
			}
			
}// Ende customRange()



function toggle_menu(obj) {
     // close everything
     $j('.menu_sub').css('display','none');
     document.getElementById('menu_1').src = document.getElementById('menu_1').src.replace(/_1/g, "_0");
     document.getElementById('menu_2').src = document.getElementById('menu_2').src.replace(/_1/g, "_0");
     document.getElementById('menu_3').src = document.getElementById('menu_3').src.replace(/_1/g, "_0");
     document.getElementById('menu_4').src = document.getElementById('menu_4').src.replace(/_1/g, "_0");
     // now open or close the clicked one
     var sav_src = obj.src;
     if ( obj.src.indexOf('_0')>1 ) {
        obj.src = obj.src.replace(/_0/g, "_1");
     } else {
        obj.src = obj.src.replace(/_1/g, "_0");
     } 
     $j('#'+obj.id).next().toggle();
}


function DrawEverything() {

    if ( $j('#belegungskalender_all').height() >5 )  $j('#belegungsplan').css('height', $j('#belegungskalender_all').height() );

    //
    // Display menu and content
    //
    if ( $j('#content').css('display') != 'block' ) $j('#content').css('display', 'block');
    if ( $j('#menu').css('display') != 'block' )    $j('#menu').css('display', 'block');

    //
    // Service Menue immer ausgeklappt anzeigen
    //
    document.getElementById('menu_4').src = document.getElementById('menu_4').src.replace(/_0/g, "_1");
    $j('#menu_4').next().show();

    //
    // Logo at bottom of menu
    //
    $j("#td_menu").css('height', Math.max( $j("#td_menu").height(), 1100) );
    
    var logo_y = $j("#td_menu").height() + 264 - 185;
    
    $j(".menu_logo").css( 'position', 'absolute' ) ;
    $j(".menu_logo").css( 'top',  logo_y ) ;
    $j(".menu_logo").css( 'left', $j(".menu_logo").parent().parent().position().left + 30 ) ;
    $j(".menu_logo").css( 'display', 'block' ) ;

    //
    // Canvas Button Painting
    //
    $j(".raro_button").backgroundCanvasPaint(BackgroundPaintFkt);

    //
    // background-shadow
    //
    var centerpos = $j("#header_slide").position();
    var centerpos2 = $j("#td_menu").position();
    var rahmen_dicke = 0; 
    var numRand = Math.floor(Math.random()*5)

    $j("#slide1").css('left',centerpos2.left - rahmen_dicke);
    $j("#slide2").css('left',centerpos2.left - rahmen_dicke);
    $j("#slide3").css('left',centerpos2.left - rahmen_dicke);
    $j("#slide4").css('left',centerpos2.left - rahmen_dicke);
    $j("#slide5").css('left',centerpos2.left - rahmen_dicke);
    $j('#slide'+numRand).fadeIn(1)
    
    $j("#background_shadow").css('top', centerpos.top - rahmen_dicke ) ; 
    $j("#background_shadow").css('left', centerpos2.left - rahmen_dicke   ) ; 
    $j("#background_shadow").css('z-index', '-1' ) ; 
    
    $j("#background_shadow").css('height', $j("#td_content").height() + 237 + rahmen_dicke  ) ; 
    $j("#background_shadow").css('width', 996+rahmen_dicke  ) ; 
    $j("#background_shadow").css('position', 'absolute' ) ; 

    // $j('#belegungsplan_'+fincaid).css('height', $j('#belegungskalender_all').height() );

}

    
// Draw the background on load and resize
$j(window).load(function () { DrawEverything(); });
$j(window).resize(function() { DrawEverything(); });

function BackgroundPaintFkt(context, width, height, elementInfo)
{
    var options = {x:0, height: height, width: width, radius:0, border: 0 };
    // Draw the gradient filled inner rectangle
    var backgroundGradient = context.createLinearGradient(0, 0, 0, height - 5);
    backgroundGradient.addColorStop(0 ,'#FEFEFE');
    backgroundGradient.addColorStop(1, '#7DB7F9');
    options.border = 1;
    context.fillStyle = backgroundGradient;
    $j.canvasPaint.roundedFButton(context,options);
}

//
// Search INput Box passend füllen  
//
function populateElement(selector, defvalue) {
    $j(selector).each(function() {
        if($j.trim(this.value) == "") {
            this.value = defvalue;
        }
    });
  
    $j(selector).focus(function() {
        if(this.value == defvalue) {
            this.value = "";
        }
    });
    
    $j(selector).blur(function() {
        if($j.trim(this.value) == "") {
            this.value = defvalue;
        }
    });
}

/**
* function get_cookie()
*/
if(typeof get_cookie == 'function') {
    // function exists
} else {
    function get_cookie(c) {
            var cookies = document.cookie.split(";");
            var wert = '';
            for (var i = 0; i <= cookies.length-1; i++) {
                wert = cookies[i];
                    wert = wert.split("=");
                    wert[0] = wert[0].replace(/ /, "");
                    if (wert.length>1 && wert[0] == c) {
                            return wert[1];
                    }
            }
            return 'undefined';
    }
}

/**
* function set_cookie()
*/
if(typeof set_cookie == 'function') {
    // function exists
} else {
    function set_cookie(c,w) {
            var ablauf = new Date();
            var ablauf_dann = 0; ablauf_dann = ablauf.getTime() + (7 * 24 * 60 * 60 * 1000);
            var ablauf_cookie = new Date(); ablauf_cookie.setTime( ablauf_dann );
            document.cookie = c+"="+w+"; expires=" + ablauf_cookie.toGMTString() +"; path=/"
    }
}    

