$(document).ready(function(){start();});
var msg = '';
function alertMsg(){alert(msg);}
function start()
{
    //    $('.block').each(function(){alert($(this).width());});
    //moveSky();

    manageDate();
    $('#clean_date').click(cleanDate);
    $('#img_flow img').click(changeImage);
    $('#direct_ref_form').submit(gotoRef);

    initTooltip();
    initDaySlider(30, 7);

    $('#mlk_act').attr("value", "4M4wNll0zOfCODE");
    msg = $('#alert_msg').attr('value');
    $('#butresa').click(gotoResa);
    if(msg) setTimeout('alertMsg()', 500);


    $("#search_form").submit(function(){
	    if($("#search_date").val() != '')
		{
		    var date = $("#search_date").datepicker("getDate");
		    var locdate = '';
		    locdate+= date.getFullYear();
		    locdate+= '-'+(date.getMonth()+1);
		    locdate+= '-'+date.getDate();
		    $("#search_date_formated").val(locdate);

		}
	    else
		{
		    $("#search_date_formated").val('');
		}
	});

    /*
    $("#loc_dispo").datepicker({
	    minDate: 0,
		maxDate: '+1Y',
		numberOfMonths: 3,
		showButtonPanel: false,
		onSelect: manageDateDispo,
		beforeShowDay: checkDispo,
		onChangeMonthYear:dateSelectionChange
		});
    */

    $("#search_date").datepicker({
	    minDate: 0,
		maxDate: '+2Y',
		showAnim: 'slideDown'});


    $("#resadate").datepicker({
	    minDate: 0,
		maxDate: '+2Y',
		showAnim: 'slideDown',
		onSelect: setResaPrice
		});

    
    $('#resalength').change(setResaPrice);


    if($("#search_date_formated").val() != '')
	{
	    var tmp = $("#search_date_formated").val();
	    var date = new Date(tmp.split('-')[0],(tmp.split('-')[1]-1),tmp.split('-')[2]);
	    $("#search_date").datepicker("setDate", date);
	    manageDate();
	}


    $("#search_date").change(manageDate);
    /*
    if($.browser.msie && $.browser.version.substr(0,3) < 9)
	$('#slideshow').coinslider({ height: 250, width: 660, effect: 'straight'});
    else
    */
	$('#slideshow').nivoSlider({
		effect:'fold', //Specify sets like: 'fold,fade,sliceDown'
		    slices:15,
		    animSpeed:500, //Slide transition speed
		    pauseTime:5000,
		    startSlide:0, //Set starting Slide (0 index)
		    directionNav:true, //Next & Prev
		    directionNavHide:true, //Only show on hover
		    controlNav:true, //1,2,3...
		    keyboardNav:true, //Use left & right arrows
		    pauseOnHover:true, //Stop animation while hovering
		    manualAdvance:false //Force manual transitions
		    });
}


function setResaPrice()
{
    var l = $('#resalength').val();
    var date = $("#resadate").datepicker("getDate");
    if(!date) $('input#resaprice').val('n/a');
    
    var datestr = '';
    datestr+= date.getDate()+'-';
    datestr+= (date.getMonth()+1)+'-';
    datestr+= date.getFullYear();




    l *= 1;
    var price = 0;


    for(var i = 0; i < l; i++)
	{
	    price+= getPriceByDay(datestr);
	    datestr = getNextDate(datestr);
	}

    price = Math.round(price);    
    price *= 1;
    if(price < 10)
	$('input#resaprice').val('n/a');
    else
	$('input#resaprice').val(price+' EUR');

}

function getPriceByDay(datestr)
{
    var y = datestr.split('-')[2];
    var m = datestr.split('-')[1] - 1;
    var d = datestr.split('-')[0];
    var date = new Date(y, m, d);
    var ts = date.getTime()/1000;
    var pr = getPriceRange(ts);
    if(priceValue[pr] != undefined)
	return(priceValue[pr]/7);
    return(1);
}

function getPriceRange(ts)
{
    for(k in priceRange)
	{
	    var s = k.split('-')[0];
	    var e = k.split('-')[1];
	    s*=1;e*=1;
	    if((ts >= s) && (ts < e))
		return(priceRange[k]);
	}
    return(false);
}



function getNextDate(datestr)
{
    var y = datestr.split('-')[2];
    var m = datestr.split('-')[1] - 1;
    var d = datestr.split('-')[0];
    var date = new Date(y, m, d);
    date.setDate(date.getDate()+1);
    var locdate = '';
    locdate+= date.getDate()+'-';
    locdate+= (date.getMonth()+1)+'-';
    locdate+= date.getFullYear();
    return locdate;
}


















function initDaySlider(mymaxval, mycurval)
{
    $("#day_slider").slider({
	    value:mycurval,
		range: "min",
		min: 1,
		max: mymaxval,
		step: 1,
		slide: function(event, ui){dateSelection(event, ui);}
	});
}

function initTooltip()
{
    $('#picto span.picto').each(function()
			  {
			      var bubble = $(this).children('span.bubble');
			      var p = $(this).position();
			      var o = Math.round(($(bubble).width()+10)/2);
			      $(bubble).css('top', (p.top-30)+'px');
			      $(bubble).css('left', (p.left-o+30)+'px');
			      
			      $(this).mouseover(function(){$(bubble).show();});
			      $(this).mouseout(function(){$(bubble).hide();});
			  });
}

function manageDateDispo()
{
    var date = $("#resadate").datepicker("getDate");
    var locdate = '.';
    locdate+= 'locdate-';
    locdate+= date.getDate()+'-';
    locdate+= (date.getMonth()+1)+'-';
    locdate+= date.getFullYear();
    //    $('span#day_resa').text($.datepicker.formatDate('DD d MM yy', date));
    var inputValue = '';
    inputValue+= date.getDate()+'-';
    inputValue+= (date.getMonth()+1)+'-';
    inputValue+= date.getFullYear();
    //$('input#startdate').val(inputValue);


    // set maximum days for the slider
    //var numday = 1;
    //dateflow = locdate;
    //while((dateflow = getNextDateCell(dateflow.substring(9)))
    //	  && (numday <= 30)) numday++;

    var curday = $("#resalength").val();
}

function dateSelectionChange()
{
    setTimeout('manageDateDispo()', 50);
    //    alert('ok');

}

function dateSelection(event, ui)
{
    var price = 0;
    if(ui==undefined)
	var sliderValue = $("#day_slider").slider('value');
    else
	var sliderValue = ui.value;
    var dateflow = $('input#startdate').val();
    dateflow = ".locdate-" + dateflow;
    //$('#debug').html($('#debug').html()+'<br />dateflow = '+dateflow);
    var k = 0;
    for(var i = 0;(i < $("#day_slider").slider('option', 'max')) && (dateflow != false); i++)
	{
	    if(i < sliderValue)
		{
		    $(dateflow).addClass('selected');
		    price+= getPriceByDay(dateflow.substring(9));
		}
	    else
		$(dateflow).removeClass('selected');
	    dateflow = getNextDateCell(dateflow.substring(9));
	}   
    if(sliderValue == 1)
	$("span#num_day").text(sliderValue+" jour");
    else
	$("span#num_day").text(sliderValue+" jours");

    // PRICE
    price = Math.round(price);
    $('#resa_price').text(price + ' €');
    
}


function getNextDateCell(datestr)
{
    var y = datestr.split('-')[2];
    var m = datestr.split('-')[1] - 1;
    var d = datestr.split('-')[0];
    var date = new Date(y, m, d);
    date.setDate(date.getDate()+1);
    var locdate = '.';
    locdate+= 'locdate-';
    locdate+= date.getDate()+'-';
    locdate+= (date.getMonth()+1)+'-';
    locdate+= date.getFullYear();
    if(($(locdate).hasClass('ui-datepicker-unselectable')) ||
       $(locdate).size() == 0)
	return(false);
    return locdate;
}



function gotoInfo()
{
    $('#locResa').removeClass('selected');
    $('#locInfo').addClass('selected');
    $('#locResa_data').css('display', 'none');
    $('#locInfo_data').css('display', 'block');
}

function gotoResa()
{
    $('#locResa').addClass('selected');
    $('#locInfo').removeClass('selected');
    $('#locResa_data').css('display', 'block');
    $('#locInfo_data').css('display', 'none');
}

function checkDispo(date)
{
    var locdate = '';
    var dispo = false;
    var i = 0;
    var time = date.getTime() / 1000;
    $('.dispo_data').each(function(){
	    var start = $('#dispo_start_'+i).val() * 1;
	    var end = $('#dispo_end_'+i).val() * 1;
	    if((time >= start) &&
	       (time < end))
		{
			dispo = true;
			return true;
		}
	    i++;
	});
    locdate+= 'locdate-';
    locdate+= date.getDate()+'-';
    locdate+= (date.getMonth()+1)+'-';
    locdate+= date.getFullYear();
    return [dispo, locdate];
}

function cleanDate()
{
    $("#search_date").val('');
    manageDate();
}

function manageDate()
{
    if($("#search_date").val() != '')
	{
	    $("#search_date").width(122);
	    $('#clean_date').css('display', 'block');
	}
    else
	{
	    $("#search_date").width(140);
	    $('#clean_date').css('display', 'none');
	}
}

function changeImage()
{
    $('#main_info_img img').attr('src', $(this).attr('src'));
}

function gotoRef()
{
    var ref = $('#direct_ref').val();
    ref = ref.toLowerCase();
    if(ref=='') ref="empty";
    ref = './location-vacances-'+ref+'.html';
    $('#direct_ref_form').attr('action', ref);
    return(true);
}

function moveSky()
{
    $('body').css('background-position', '0px 0px');
    $('body').animate({backgroundPosition : '-1000px 0px'}, 100000, 'linear', moveSky);
}

function checkForm()
{
    if(isEmpty($("input[name='bw8_email']").attr('value')))
        return('Veuillez entrer votre nom.');
    if(!isEmpty($("input[name='bw8_phone']").attr('value')) && !isEmail($("input[name='bw8_phone']").attr('value')))
	return('L\'email entrée semble non valide.');
    if(isEmpty($("input[name='bw8_phone']").attr('value')) && isEmpty($("input[name='bw8_name']").attr('value')))
        return('Veuillez entrer un email ou un numéro de téléphone.');
    if(isEmpty($("textarea").attr('value')))
        return('Vous n\'avez pas entré de message.');
    return(false);
}

function isEmpty(str)
{
    var str = trim(str);
    if(str == '')
        return(true);
    return(false);
}

function isEmail(str)
{
    var rgx = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
    var str = trim(str);
    return(rgx.test(str));
}

function trim(str)
{
    return str.replace(/^\s+/g,'').replace(/\s+$/g,'');
}

function envoyer()
{
    var error = checkForm();
    if(!error)
        $('#contact_form').submit();
    else
        {
	    alert(error);
        }
}

