//objekt statu na mape
var states = new Array();
function State( name, file ) {	
    this.name = name;
    this.fileName = file+'';
}
//konec objektu statu na mape

var direction = null;
var speed = 100;
var step = 20;
var i = 0;
var timer;
var holderId = 'holder';
var contentId = 'map';

// funkce pro vycentrovani mapy
function findPoint(){
    var outerWidth = $("#"+holderId).innerWidth();
    var outerHeight = $("#"+holderId).innerHeight();
    
    var innerWidth = $("#"+contentId).innerWidth();
    var innerHeight = $("#"+contentId).innerHeight();
    
    var pointX = (outerWidth - innerWidth) / 2;
    var pointY = (outerHeight - innerHeight) / 2;
    
    $("#"+holderId).css("left" , "-"+pointX+"px");
    //$("#"+holderId).css("top" , "-"+pointY+"px");
    $("#"+holderId).css("top" , "-45px");
    
}

//samotny pohyb mapy
function move(){

    if(direction == null) {
        stopMove();
        return;
    }
        
    switch(direction){
        case 1:
            if( (parseFloat($("#"+holderId).css("top")) + step) >= 0) return; 
            else $("#"+holderId).animate({top: "+="+step+"px"}, speed );
        break;
        
        case 2:
            if( (parseFloat($("#"+holderId).css("left")) - step + $("#"+holderId).innerWidth() ) <= $("#"+contentId).innerWidth() ) return;
            else $("#"+holderId).animate({left: "-="+step+"px"}, speed );
        break;
        
        case 3:
            if( (parseFloat($("#"+holderId).css("top")) - step + $("#"+holderId).innerHeight() ) <= $("#"+contentId).innerHeight() ) return;
            else $("#"+holderId).animate({top: "-="+step+"px"}, speed );
        break;
        
        case 4:
            if( (parseFloat($("#"+holderId).css("left")) + step) >= 0) return; 
            else $("#"+holderId).animate({left: "+="+step+"px"}, speed );
        break;
    }   
            
}

//vybere smer a spusti pohyb mapy
function startMove(cursor){
                                    
    //vybrani smeru, pokud jeste nebyl vybran
    if(direction == null){
        switch(cursor.attr('id')){
            case 'move_up_button':direction = 1;
            break;
            
            case 'move_right_button':direction = 2;
            break;
            
            case 'move_down_button':direction = 3;
            break;
            
            case 'move_left_button':direction = 4;
            break;
        }
    }
        
    //spusteni animace pohybu
    timer = setInterval(
        move, 
        speed);
    
}

//zastavi pohyb mapy
function stopMove(){
    direction = null;   //vynulovani smeru
    clearInterval(timer); // vypnuti intervalu
    timer = null; // vynulovani promenne s timerem
    //window.alert("zastaveno");
}


//validace formulare
function validateForm(form){
     
    var result =  new Array();
    
    if(form.name.value.length < 3) result.push('Vyplňte prosím své Jméno.');
    if(form.telefon.value.length < 6) result.push('Vyplňte prosím Vaše telefonní číslo.');
    if(form.vek.value.length < 1) result.push('Vyplňte prosím Váš věk.');
    if(form.vek.value.length < 1) result.push('Vyplňte prosím počet lekcí týdně.');
    
    var regu = /^[^.]+(\.[^.]+)*@([^.]+[.])+[a-z]{2,3}$/;
    var email = form.email.value;
    if(!(email.search(regu) == 0)) result.push('Vyplňte prosím svou e-mailovou adresu.');
    
    return result;
}


//nastartovani anmiace
$(document).ready(function(){        
    findPoint(); // vycentrovani mapy
    
    $(".cursor_button").hover(
        function () {
            startMove($(this));
        },
        function () {
            stopMove();
        }
    );       
    
    /* odstranenim komentu se spusti interaktivni formular
    //nastaveni dialogovych oken
    $( "#dialog" ).dialog({
			autoOpen: false,
			show: "blind",
			hide: "drop",
            draggable: false,
            modal: true,
            resizable: false,
            close: function(event, ui) { 
                $('#dialog p.bad').remove();
                $('#dialog p.good').remove();
            }
		});

		$( ".open_dialog" ).click(function() {
			$( "#dialog" ).dialog( "open" );
			return false;
		});
        
        
     //nastaveni udaju do dialog okna
    var opener = $("#holder .open_dialog");
    $('.open_dialog').click(function() {
        var index = opener.index(this);
        $( "#dialog" ).dialog({title: states[index].name});
        $( "#dialog #state_name" ).val(states[index].name );
        $( "#dialog #state_name_show" ).text(states[index].name );
        if(states[index].fileName == '') $( "#dialog #pdf_file" ).text('');
        else $( "#dialog #pdf_file" ).html('<a href="' + states[index].fileName + '" target="_blank">Informace o studiu v PDF.</a>');
    });
    
    //odeslani formulare
    $('#dialog #submit').click(function() {
        var form = document.getElementById("mapForm"); 
        
        $('#dialog p.bad').remove();
        $('#dialog p.good').remove();
        var validation = validateForm(form);
        
        //validace v poradku, pole je prazdne
        if(validation.length == 0){            
            $.post("./ajax/mapSave.php", { jmeno: form.name.value, telefon: form.telefon.value, email: form.email.value, vek: form.vek.value, lekci: form.lekci.value, zeme: form.zeme.value, od: form.od.value, to: form.to.value, ubytovani: form.ubytovani.value }, function(vystup){
              if(vystup == 1){//v poradku odeslano
                $('#dialog').prepend("<p class=\"good\">Děkujeme za odeslání. Naši jazykoví koordinátoři Vás brzy kontaktují.</p>");
              }
              else $('#dialog').prepend("<p class=\"bad\">Při odesílání požadavku došlo k chybě.</p>"); 
            });
        }
        else{//vypisu chybove hlasky
            for(i=0; i < validation.length; i++){
              $('#dialog').prepend("<p class=\"bad\">" + validation[i] + "</p>");
            }
        }
    });
    */
});
