var ticket = {

    priceList : new Array(),
    i : 0,

    init : function(){
        $(".ticketDetailsCheckbox").each(function(){
            if($(this).attr("checked") == ""){
                $(this).parent().next().hide();    
            }else{
                $(this).parent().next().slideDown();    
            }
        });
        
        $(".ticketDetailsCheckbox").click(function(){
            if($(this).attr("checked") == ""){
                $(this).parent().next().slideUp();    
            }else{
                $(this).parent().next().slideDown();    
            }
        });
        
        $(".removeTicket").click(function(){
            $(this).parent().parent().remove();
            ticket.i--;
            ticket.count();
            return false;
        });
        
        $(".extrasI").click(function(){
            ticket.count();
            return true;
        });

        $("#orderForm input[name=type_distribution]").click(function(){
            ticket.count();
            ticket.disablePayments();
            return true;
        });    
		
		$("#orderForm input[name=type_payment]").click(function(){
            ticket.count();
            ticket.disablePayments();
            return true;
        });   
		
        $(".gender").unbind("change").change(function(){
                var select =    $(this).parent().next().find("select");
                if(this.value == "male"){
                        if(($(select).find("option[value=XXL]").html()) == null){
                                $(select).append("    <option value=\"XXL\">XXL</option>");
                        }
                }else{
                        $(select).find("option[value=XXL]").remove();
                }                
        })
        
        ticket.count();
    }, 
    
    get : function(type){
        ticket.i++;
        $.ajax({
            type: "POST",
            url: prefix + 'jAjax.php',
            data: "do="+type+"&i="+ticket.i,
            async: true,
            dataType: "json",
            success: function(data){
                if(data.text){
                    $("#tickets").append(data.text);
                    ticket.init();
                }
            }
        })
    },
    
    validate : function(){
		var good = true;

		// zkontroluj údaje
		$("#orderForm .required").each(function(){
			if(this.value == ""){
				good = false;
				$(this).addClass("noEmpty");
			}
		});        
		if(good == false){
			alert("Vyplňte všechny potřebné údaje.");
			return false;
		}
	
		// doruceni
		var zpusobyDoruceni = $("#orderForm input[name=type_distribution]");
		var checked = -1;
		for(i=0; i<zpusobyDoruceni.length; i++){
			if(zpusobyDoruceni[i].checked && $(zpusobyDoruceni[i]).attr("disabled") == ""){
				checked = i;
				break;
			}
		}
		if(checked == -1){
			alert("Vyberte způsob doručení.");
			return false;
		}
		// platba
		var zpusobyPlatby = $("#orderForm input[name=type_payment]");
		checked = -1;
		for(i=0; i<zpusobyPlatby.length; i++){
			if(zpusobyPlatby[i].checked && $(zpusobyPlatby[i]).attr("disabled") == ""){
				checked = i;
				break;
			}
		}
		if(checked == -1){
			alert("Vyberte způsob platby.");
			return false;
		}
		
		// zpočítej letenky a balení
		var letenky = $(".singleTicketI");
		var darkoveBaleni = $(".singleBasketI");
		if(letenky.length == 0 && darkoveBaleni.length == 0){
			alert("Musíte mít vloženou alespoň jednu letenku nebo dárkové balení.");
			return false;
		}
	    var form = $("#orderForm input");
	    var send = "";
	    //data for sending
        var i=0;
        while (i >= 0) {
	        if(!form[i]){
                break;
            }
            if(form[i].type=="checkbox"){
                if(form[i].checked == false){
                    i++;
                    continue;
                }
            }
			if(form[i].value){
				//adding what to validate to send data
				send += form[i].name + "=" + Url.encode(form[i].value) + "&";
			}
			
			i++;
		}

		//sending more options
		success = false;
		send += "do=pgCheckTicket";
			 
			// ajax query
		$.ajax({
			type: "POST",
			url: prefix + 'jAjax.php',
			data: send,
			async: false,
			dataType: "json",
			success: function(data){
				
							if(data.messages){
									$("#sencha-messages").hide();
									$("#sencha-messages").html(data.messages);
									messagesInit();
									$("#sencha-messages").show("fast");
							}
                            
                            if(data.onsubmit){
                                eval(data.onsubmit);
                            }
						
							success = data.text;	// returning
			}
		});
	
	
        return success;
    },
    
	disableDistribution : function()
	{
		var zpusobyDoruceni = $("#orderForm input[name=type_distribution]");
		var zpusobyDoruceniLabel = $("#orderForm .type_distributionLabel");
		var darkoveBaleni = $(".singleBasketI");
		
		if(darkoveBaleni.length > 0){
			$(zpusobyDoruceni[0]).attr("disabled", "disabled");
			$(zpusobyDoruceni[0]).attr("checked", "");
			$(zpusobyDoruceniLabel[0]).addClass("textDisabled");
		}else{
			$(zpusobyDoruceni[0]).attr("disabled", "");
			$(zpusobyDoruceniLabel[0]).removeClass("textDisabled");
		}
		
		//ticket.count();
	},
    
    disablePayments : function(){
        var zpusobyDoruceni = $("#orderForm input[name=type_distribution]");
        var checked = -1;
        for(i=0; i<zpusobyDoruceni.length; i++){
            if(zpusobyDoruceni[i].checked){
                checked = i;
                break;
            }
        }
        
        if(checked == -1) return false;
        var zpusobyPlatby = $("#orderForm input[name=type_payment]");
        zpusobyPlatby.each(function(){
            $(this).attr("disabled", "");
        });
        
        var zpusobyPlatbyLabel = $("#orderForm .type_paymentLabel");
        zpusobyPlatbyLabel.each(function(){
            $(this).removeClass("textDisabled");
        });
        
        /* NASTAVENI ZAKAZU
         * 
         * case cislo znamena zvolene cislo volby (cisluje se od 0)
         * volba je spolecna az do "break;", proto muze byt vice polozek pod sebou
         * 
         * zpusobyPlatby[cislo] je volici zatrzitko - kolecko
         * zpusobyPlatbyLabel[cislo] je popisek
         * */
        switch(checked){
            case 0:
				$(zpusobyPlatby[1]).attr("disabled", "disabled");
                $(zpusobyPlatby[1]).attr("checked", "");
                $(zpusobyPlatby[2]).attr("disabled", "disabled");
                $(zpusobyPlatby[2]).attr("checked", "");
                $(zpusobyPlatby[3]).attr("disabled", "disabled");
                $(zpusobyPlatby[3]).attr("checked", "");
                $(zpusobyPlatby[4]).attr("disabled", "disabled");
                $(zpusobyPlatby[4]).attr("checked", "");
                $(zpusobyPlatbyLabel[1]).addClass("textDisabled");
                $(zpusobyPlatbyLabel[2]).addClass("textDisabled");
                $(zpusobyPlatbyLabel[3]).addClass("textDisabled");
                $(zpusobyPlatbyLabel[4]).addClass("textDisabled");
				break;
            case 1:
            case 2:
            case 3:
                $(zpusobyPlatby[3]).attr("disabled", "disabled");
                $(zpusobyPlatby[3]).attr("checked", "");
                $(zpusobyPlatbyLabel[3]).addClass("textDisabled");
                break;
            case 4:
            case 5:
                $(zpusobyPlatby[1]).attr("disabled", "disabled");
                $(zpusobyPlatby[1]).attr("checked", "");
                $(zpusobyPlatbyLabel[1]).addClass("textDisabled");
                break;
                
        }
        
    
		ticket.count();
    },
    
    
    
    count : function(){
        
        var cenaSluzby = 0;
        var cenaDopravy = 0;
        //ticket
        $(".singleTicketI").each(function(){
            cenaSluzby += ticket.priceList['ticket-price'];
        });
        
        //darkove baleni
        $(".singleBasketI").each(function(){
            cenaSluzby += ticket.priceList['basket-price'];
        });
        
        //sluzby + priplatky
        $(".extrasI").each(function(){
            if(this.checked){
                cenaSluzby += ticket.priceList['extras'][this.value];
            }
        });
        
        //zpusob doruceni
        $("#orderForm input[name=type_distribution]").each(function(){
            if(this.checked){
                //    value = 
                cenaDopravy = ticket.priceList['type_distribution'][$(this).attr("value")];
            }
        });
        
		//zpusob platby
        $("#orderForm input[name=type_payment]").each(function(){
            if(this.checked){
                //    value = 
                cenaDopravy += ticket.priceList['type_payment'][$(this).attr("value")];
            }
        });
        
		//zakaz dorucovacich
		ticket.disableDistribution();
		
        $("#price_services span").html(cenaSluzby);
        $("#price_distribution span").html(cenaDopravy);
        $("#price_total span").html(cenaSluzby + cenaDopravy);
        
    
    }
    
    
    
    
}



$(document).ready(function(){

    ticket.init();

    $("#otherAddressDiv").hide();
    $("#asCompanyDiv").hide();
    

    $("#otherAddressCheckbox").click(function(){
        if($(this).attr("checked") == ""){
            $("#otherAddressDiv").slideUp();    
        }else{
            $("#otherAddressDiv").slideDown();    
        }
    });
    $("#asCompanyCheckbox").click(function(){
        if($(this).attr("checked") == ""){
            $("#asCompanyDiv").slideUp();    
        }else{
            $("#asCompanyDiv").slideDown();    
        }
    });
    
    $("#addTicket").click(function(){
        ticket.get("pgTicketForm");
        ticket.init();
        return false;
    });
    
    $("#addBasket").click(function(){
        ticket.get("pgBasketForm");
        ticket.init();
        return false;
    });
    
    $("#orderForm").submit(function(){
            $(".noEmpty").removeClass("noEmpty");
        if(ticket.validate()){
            return true;
        }else{
            return false;
        }
    });
    



});

