

function ajax_start()
{

    $("#sleva_last").val('Počítám...');

    $("#sleva_celkem").val('Počítám...');

    $("#cena_celkem_bez_slev").val('Počítám...');

    $("#cena_celkem").val('Počítám...');
}

$(document).ready(function()
{

    prepocitejServer();
    ///////////////server prepocet jine formy

    $('#ulrych_vypocetCeny select#pokoj,#ulrych_vypocetCeny select#dospelych,#ulrych_vypocetCeny select#deti_zdarma,#ulrych_vypocetCeny select#deti,#ulrych_vypocetCeny input#termin_prijezd_date,#ulrych_vypocetCeny input#termin_odjezd_date').change(function()
    {
       
        prepocitejServer();
    }
    );



    //////////////server prepocet end

    //$('#ulrych_vypocetCeny * input,#ulrych_vypocetCeny * select').keyup().change(function() {
    /*
	$('#ulrych_vypocetCeny * input,#ulrych_vypocetCeny * select').change(function() {

		prepocitejServer();

	}
	);
    */



    /*
	$('#ulrych_vypocetCeny * select')
	.change(function() {

		prepocitejServer();

	});
    */

    /*
	$('#vypocitej').click(function() {

		prepocitejServer();

	}
	);
    */
	
	
    /**
	 * nastavit kalendar
	 */

	
    //$('.date-pick').datePicker({displayClose: false} ).val(new Date().asString()).trigger('change');

    //spustí 2x vypocet protoze dojde k zmene formu
    //$('.date-pick').datePicker({displayClose: false} ).trigger('change');
    
    $('.date-pick').datePicker({
        displayClose: false
    } ); //.trigger('change');
	
	

}
);



function prepocitejServer()
{

    ajax_start();

    var options =
    {
        //target:     '#divToUpdate',
        url:        '/rezervace-apartma/VypocetCenyFormSubmited/',
        dataType: 'json',
        type: 'post',
        success:    function(data, statusText) {

            //alert('Thanks for your odeslani!');

            //alert(data);
            console.log(data);
            //alert(obsah);

            modifyForm(data);

        //ziskam data v json

        //celkova cena

        //sleva internet

        //sleva z last moment

        //sleva celkem

        //predam do formulare


        //zmena formu

        }

    };

    noci = parseInt(getPocetDni(),10);

    //nastavime
    if (!isNaN(noci))
        $("#noci").val(noci);
    else
        $("#noci").val('?');

    //form post
    $('form#ulrych_vypocetCeny').ajaxSubmit(options);


  

  

}

function modifyForm(data)
{


    //    $("#sleva_internet").html(Math.round(((sleva_internet) *100)) + "%");

    if (data === false)
    {
        $("#sleva_last").val('?');

        $("#sleva_celkem").val('?');

        $("#cena_celkem_bez_slev").val('?');

        $("#cena_celkem").val('?');

        return;

    }
        


    $("#sleva_last,#sleva_last_hidden").val(data.sleva_last_kc + ' Kč' + ' , ' + data.sleva_last_procent + ' %' );

    $("#sleva_celkem,#sleva_celkem_hidden").val(data.sleva_celkem_kc + ' Kč' + ' , ' + data.sleva_celkem_procent + ' %' );

    $("#cena_celkem_bez_slev,#cena_celkem_bez_slev_hidden").val(data.cena_celkem_bez_slev + ' Kč');

    $("#cena_celkem,#cena_celkem_hidden").val(data.cena_celkem_kc + ' Kč');


//$("#sleva_celkem_hidden").val(

}



/**
*
*
*
*Prostě bude-li spát kdekoli jedna
*osoba, tak platí ( bude-li jen jednu noc) 435,- a od dvou noc? 400,-
*
*Dobrý den,
*> > nevím sice přesně o co jde, ale pokoje obslujeme 1-4 s tím, že č.1 a
*> > č.2 mají cenu 325,- kč/osobu a den, 245,- kč/dítě do 9-ti let a den.
*> > Jedna noc je za 365,- kč/os. a 275,- kč/dítě?
*> >
*>* > č.3 a č.4 jsou za 365,-kč/os. a den, 275,- kč/os (dítě). Jedna noc je
*> > za 400,- kč/os. a 310,-kč/d?t?
*> >
*
*Pak je ještě jedna osoba v apartma (v jakčm apartma ? v každém apartma. ) = 435,- kč /
*jedna noc a od dvou noc? je to za 400,- kč (v jakém apartma ?v každém apartma.)
*/
function prepocitej()
{
    console.log("prepocitavam..");
	
    //getDateParts();

    var cena_dospely;
    var cena_dite;
    var cena_za_pobyt;
    var sleva = 1; //n?sob?me slevou //100 procent

    var sleva_internet = 0.03;
    //var sleva_internet = 0;
    //var sleva_vice_dni = 0.1;


    sleva -= sleva_internet;
	
	

    //var noci = parseInt($("#noci").val(),10);
	
    noci = parseInt(getPocetDni(),10);
	
    //nastavime
    if (!isNaN(noci))
        $("#noci").val(noci);
    else
        $("#noci").val('?');
	

    //console.log("ht: " + $("#pokoj").html() );

    var cena_za_den = getCenaZaDen();

    if (isNaN(cena_za_den) || isNaN(noci) )
    {
        cena_za_pobyt = "?";
    }
    else
    {
        /*
		if (noci > 10)
		{
		sleva -= sleva_vice_dni;
		}
		*/

        cena_za_pobyt =  Math.round((noci * cena_za_den) * sleva );

        cena_za_pobyt = (cena_za_pobyt) + ' Kč';

    }

    console.log("cena za den: " + cena_za_den  );

    console.log("cena za pobyt: " + cena_za_pobyt );



    $("#sleva_internet").html(Math.round(((sleva_internet) *100)) + "%");

    var sleva_celkem = Math.round(((1 - sleva) *100)) + "%";

    //hiden forms must be sended
    $("#sleva_celkem").val(sleva_celkem);

    $("#cena_celkem").val(cena_za_pobyt);

    //table for user
    $("#sleva_celkem_hidden").val(sleva_celkem);

    $("#cena_celkem_hidden").val(cena_za_pobyt);

    //pust formular s kontakty
    if (cena_za_pobyt != "?")
    {


}


}

function getDateParts(date)  //dd.mm.yyyy or ./-
{
    //http://stackoverflow.com/questions/52066/dynamic-regex-for-date-time-formats
	
    //var date = '24.12.2008'
	
    reg_string = "\\b(0?[1-9]|[12][0-9]|3[01])[- /.](0?[1-9]|1[012])[- /.]([19|20]?[0-9]{4})\\b";
	
    //alert(reg_string);
	
    if (date.match(reg_string))
    {
        console.log('vyhovuje');
        var reg = new RegExp(reg_string);
        var  reg_result = reg.exec(date);
			
        console.log('vysledek pole');
        console.log(reg_result);
			
        return reg_result;
    }
    else
    {
        //console.log('nic');
        console.log(reg_string);
        return false

    }
	
	
}

function getPocetDni(){
    var one_day = 1000 * 60 * 60 * 24; //	//Set 1 day in milliseconds
    var prijezd = $("#termin_prijezd_date").val();
    var odjezd = $("#termin_odjezd_date").val();
	
    //regex na datum nebo metoda kalendare ?
    var prijezd_pole = getDateParts(prijezd);
    var odjezd_pole = getDateParts(odjezd);
	
    if (!prijezd_pole || !odjezd_pole) {
		
    /*
		alert('Nepodařilo se vypočítat počet dní. Prosím upravte ručně.');
		
		$('form #noci').attr('disabled', 'false');
		$('form #noci').removeAttr('disabled');
		$('form #noci').removeAttr('readonly');
		*/
    }
	
	
    //nebo metody setFullYear(year,month,day);
    DatePrijezd = new Date(prijezd_pole[3], prijezd_pole[2] -1, prijezd_pole[1]); //Month is 0-11 in JavaScript
    DateOdjezd = new Date(odjezd_pole[3], odjezd_pole[2] -1, odjezd_pole[1]); //Month is 0-11 in JavaScript
	
    //ziskat milisekundy a prevest na pocet dnu
    var pocet_noci = Math.ceil((DateOdjezd.getTime() - DatePrijezd.getTime()) / (one_day));
	
    if (pocet_noci < 0)
        pocet_noci = 0;
	
    console.log('vypocteny pocet noci');
    console.log(pocet_noci);
	
	
	
    return pocet_noci;
	
}

function _help()  
{
    //Set the two dates
    today=new Date();
    var christmas=new Date(today.getFullYear(), 11, 25); //Month is 0-11 in JavaScript
    if (today.getMonth()==11 && today.getDate()>25); //if Christmas has passed already
    christmas.setFullYear(christmas.getFullYear()+1); //calculate next year's Christmas
    //Set 1 day in milliseconds
    var one_day=1000*60*60*24;
	
    //Calculate difference btw the two dates, and convert to days
    document.write(Math.ceil((christmas.getTime()-today.getTime())/(one_day))+ 	" days left until Christmas!");

    var today       =new Date();
    var in_a_week   =new Date().setDate(today.getDate()+7);
    var ten_days_ago=new Date().setDate(today.getDate()-10);


    //I want to create a javascript
    //function that will add/subtract 1 day from a date string stored in a hidden field.
    //The format is 0000-00-00 (YYYY-MM-DD)

    //So far I have....
    function dateNav(direction) {    
        var curdate = document.getElementById('date').value;
        curdate = curdate.replace("-",",");
        var dt = Date.parse(curdate);
        if(direction=='back'){
            var newdate = new Date(dt.getYear(),dt.getMonth(),dt.getDay()-1);
        }else{
            var newdate = new Date(dt.getYear(),dt.getMonth(),dt.getDay()+1);
        }
        newdate = y2k(newdate.getYear()+'-'+months[newdate.getMonth()]+'- '+newdate.getDay());
        document.getElementById('date').value=newdate;
        var selObj = document.getElementById('userid');
        var selIndex = selObj.selectedIndex;
        getUser(selObj.options[selIndex].value);
    }    


	
}

function getCenaZaDen()
{

    var noci = parseInt($("#noci").val(),10);
    if 	(isNaN(noci)) noci = 0;
	
    var apartma_cislo = parseInt($("#pokoj").val(),10);

    var dospelych = parseInt($("#dospelych").val(),10);

    var deti = parseInt($("#deti").val(),10);
    if 	(isNaN(deti)) deti = 0;

    var dospelych_a_deti = dospelych + deti;
    if 	(isNaN(dospelych_a_deti)) dospelych_a_deti = 0;

    console.log("dosp a deti: " + dospelych_a_deti );
    console.log("apartma: " + apartma_cislo );

    //pokud jedna osoba a jedna noc nezavisle na apartma
    if (dospelych_a_deti == 1)
    {
        if (noci == 1)  return 460;
        if (noci > 1 && noci < 6)  return 425;
        if (noci > 5)  return 400;
    }



    //@todo jedna osoba v apartma
    //pokud vice osob (tj. napr. jeden dospely a dite) pak dle apartmanu

    if (dospelych_a_deti > 1)
    {
		
        switch (apartma_cislo)
        {
            case 0:
            case 1:
				
                console.log("case 1");
				
                if (noci == 1) {
                    return (dospelych * 390 + deti * 300);
                }
                else {
                    if (noci > 1 && noci < 6) {
                        return (dospelych * 350 + deti * 270);
                    }
                    else {
                        return (dospelych * 325 + deti * 245);
                    }
					
                }
				
                break;
				
            case 2:
            case 3:
				
                if (noci == 1) {
                    return (dospelych * 425 + deti * 335);
                }
                else {
                    if (noci > 1 && noci < 6) {
                        return (dospelych * 390 + deti * 300);
                    }
                    else {
                        return (dospelych * 365 + deti * 275);
                    }
					
                }
				
				
                break;
				
				
            default:
                return "?";
				
        }
    }

    console.log("konec");

    return "?"; // 9999999;

}




