var pageTracker;
var analytics_code = "UA-3093433-1";

var hndl = window.setTimeout("StartTracking()", 100);


$(document).ready(function() {
    $('.js_slider').cycle({
 		fx: 'fade',
		speed:  1000,
		zoom: 1
	}); 
});





// zaalflash laden
var init_flashzaal = function(){
	if ($(this).data('slideshowvars') != undefined)
		slideshowvars = $(this).data('slideshowvars');
	else
	{
		slideshowvars = $(this).html();
		$(this).data('slideshowvars', slideshowvars);
	}
	$(this).html("");
	$(this).flash({
		src: slideshowvars,
		width: 950,
		height: 600,
		wmode: 'transparent',
		id: 'swf_stoelkeuze',
		name: 'swf_stoelkeuze',
		swliveconnect: true
	});
};

$(document).ready(function(){	

	var logoClasses = $('.hoverlogo').attr('class');
	$('.changelogo a').hover(function(){
		$('.hoverlogo').attr('src', '/framework/public/img/' + $(this).attr('rel') + '.gif');
		$('.hoverlogo').attr('class', logoClasses);
		$('.hoverlogo').addClass($(this).attr('class'));
	});


    if ($('#seriepopup').length > 0)
    {
       $().colorbox({
        open: true,
        href:"#seriepopup",
        inline:true
       });
    }

	// zaalflash laden
	$('.flashzaal').each(init_flashzaal);

    // Bestellen van een artikel; zet het artikel in het winkelmandje
//    $('.bestel_artikel').click(function(){
//        var artikel = $(this).attr('id').split( '_' );
//        $('#artikel_blok_'+artikel[2]).hide('5');
//
//        // Daadwerkelijke toevoegen van artikel aan winkelmand
//        $.getJSON('/framework/public/ajax/bestel_artikel.php?artikel_id='+artikel[2], function( data ) {
//            // Refresh de pagina
//            location.reload();
//        });
//    });

    $('#uitloggen').click( function() {
        // Daadwerkelijke toevoegen van artikel aan winkelmand
        $.getJSON('/framework/public/ajax/uitloggen.php', function( data ) {
            // Refresh de pagina
            location.reload();
        });
    });

    // Switch betaalmethode pagina
	$('#bethaalmethode_form input[name="betaalmethode"]').click(function(){

		if ($('#bethaalmethode_form input[value="creditcard"]').attr('checked'))
			$('#providers_creditcard').show();
		else
			$('#providers_creditcard').hide();

		if ($('#bethaalmethode_form input[value="ideal"]').attr('checked'))
			$('#banken_ideal').show();
		else
			$('#banken_ideal').hide();

		if ($('#bethaalmethode_form input[value="termijn"]').attr('checked'))
			$('#banken_termijn').show();
		else
			$('#banken_termijn').hide();
	});

    // Geef een waarschuwing bij het verwijderen van een reservering uit de winkelmand
	$(".winkelmand_delete").click(function() { 
        if (!confirm('Weet u zeker dat u deze boeking wilt verwijderen?'))
        {
            return false;
        }
        else
        {
            $(this).parents('form:first').trigger('submit');
        }
    });

    // Voer controles uit als men van de winkelmand naar de betaalstap gaat
    // Controleert of de stoelkeuze verlopen is, geeft alerts als dit niet het geval is
    // en bepaalt eventueel zelf nieuwe stoelen
	$(".winkelmand_bevestigen").click(function() {
        check_reservering_stoelen( 'false' );
    });
    
    // Voer controles uit als men van de winkelmand naar de betaalstap gaat
    // Controleert of de stoelkeuze verlopen is, geeft alerts als dit niet het geval is
    // en bepaal eventueel zelf nieuwe stoelen
	$(".js_betaalmethode_bevestigen").click(function() {
        check_betaling_reservering_stoelen( $(this) );
    });

    // Afhandeling selectie best seat
    $('.bestel_best_seat').click(function() {
        verwerkBestSeat( );
    });

    // Wijziging op het aantal tickets, toon selectievelden voor het selecteren van de prijscode
    $('#aantal_tickets').change( function() { updateShowPrijscodes( $(this) ); return false; });

    // Wijziging op het aantal arrangementen, toon selectievelden voor het selecteren van de prijscode
    $('.aantal_arrangement').change( function() { updateArrangementPrijscodes( $(this) ); return false; });

    // Wijziging op de rangkeuze: haal prijscodes op
    $('#rangkeuze_rang_id').change( function() {
       var rang_id = $('#rangkeuze_rang_id').attr( 'value' );
       var show_id = $('#bestel_show_id').attr( 'value' );

       $.getJSON('/framework/public/ajax/prijscodes.php?show_id='+show_id+'&rang_id='+rang_id, function( data ) {
           var select_options = '';
           var hidden_options = '';

           $.each( data['results'], function( index, pobject ) {
               select_options += '<option value="'+pobject.id+'">'+pobject.omschrijving+' '+display_value( pobject.prijs )+'</option>';
               hidden_options += '<input type="hidden" id="tarief_prijscode_'+pobject.id+'" name="tarief_prijscode_'+pobject.id+'" value="'+pobject.prijs+'" />';
           });

           $('#bestel_tarieven_prijscode').html( hidden_options );

           // Trigger changeevent op selectboxes die toegevoegd zijn via ajax
           $('.bestel_prijscode_ticket').html( select_options ).change( function() {
              bestelPaginaBerekenTotaalprijs();
           });
           
           bestelPaginaBerekenTotaalprijs();
       });
    });

   // Trigger changeevent op selectboxes (editscherm)
   $('.bestel_prijscode_ticket').change( function() {
      bestelPaginaBerekenTotaalprijs();
   });

    bestelPaginaBerekenTotaalprijs();

    $('.cookiecheck').each( function() {
        document.cookie = "itixcookietest=123; path=/";
        if( '' == document.cookie )
        {
            $(this).css('display', 'block');
        }
    });


    $('.datepicker-holder').datepick({
            multiSelect:999,
            useMouseWheel: false,            
            dateFormat: 'yyyy-mm-dd',
            onDate: disableDate,
            changeMonth: false,
            onSelect: function(dates) {
                var datestring = '';
                var type = $('#datepicker-type').html();
                for (var i = 0; i < dates.length; i++) {
                    if( datestring != '' )
                        datestring += ',';
                    datestring += '"'+$.datepick.formatDate( 'yyyy-mm-dd', dates[i] )+'"';
                }

                $.get('/framework/public/ajax/shows_by_date.php?type='+type+'&datestring='+datestring, function( data ) {
                  $('#js_datum_shows-holder').html(data);
                  getShowStatuses();
                });
        }
    });

	// controle kortingscode
	$("#js_winkelmand_kortingscode").click(function() {
        check_kortingscode( );
    });

    init_infohover();
});


function check_kortingscode( )
{
    var kortingscode = $('#js_input_kortingscode').attr('value');

    $.getJSON('/framework/public/ajax/kortingscode.php?kortingscode='+kortingscode, function( data ) {
        if( true == data.success )
        {
            $('#js_input_kortingscode').attr('value', '');
            alert( data.message );
            $(location).attr( 'href', '/winkelmand' );
        }
        else
        {
            $('#js_input_kortingscode').attr('value', '');
            alert( data.message );
        }
   });
}


// Preset de data die selecteerbaar zijn voor de kalender
function disableDate( date, inMonth )
{        
    if( typeof( showDates ) != 'undefined' && inMonth ) {
        for (var i = 0; i < showDates.length; i++) {
                if (date.getMonth() + 1 == showDates[i][0] &&
                        date.getDate() == showDates[i][1] &&
                        $.datepick.formatDate( 'yyyy', date ) == showDates[i][2] )
                {
                    return {dateClass: 'datepicker_enabled', selectable: true};
                }
            }
        }
    return {dateClass: 'datepicker_disabled', selectable: false};
}
    
// Wordt aangeroepen door de stoelkeuze flash wanneer deze gereed is
// Sluit de colorbox en ga naar de volgende stap in de bestelprocedure
function verwerkStoelkeuze( )
{
    $.fn.colorbox.close();

    var sessie_id = $('#stoelkeuze_sessie_id').attr('value');

    $.getJSON('/framework/public/ajax/stoelkeuze.php?sessie_id='+sessie_id+'&choice=flash_map', function( data ) {
        var stoelen_stoelkeuze = data.stoelen.join(',');
        $('#aantal_tickets').val( data.stoelen.length );
        $('#aantal_tickets_old').val( data.stoelen.length );
        $('#stoelen_stoelkeuze').val( stoelen_stoelkeuze );
        $('#rangkeuze_rang_id').val( data.prijscode );
        $('#aantal_tickets').trigger( 'change' );
    });

    $('#bestel_stap_3').trigger('click');
}

// Wordt aangeroepen wanneer de gebruiker kiest voor de best seat optie
function verwerkBestSeat( )
{
    var sessie_id = $('#stoelkeuze_sessie_id').attr('value');

    $.getJSON('/framework/public/ajax/stoelkeuze.php?sessie_id='+sessie_id+'&choice=best_seat', function( ) {
        $('#aantal_tickets').trigger( 'change' );
    });

    $('#stoelen_stoelkeuze').val( '' );
    $('#bestel_stap_3').trigger('click');
}

// Bereken en toon totaalprijsen
function bestelPaginaBerekenTotaalprijs()
{
    var totaal         = 0;
    var totaal_kaarten = 0;
    var totaal_extraas = 0;
    
    $('.bestel_prijscode_ticket').each( function() {
        totaal_kaarten = totaal_kaarten + parseFloat( $('#tarief_prijscode_'+$(this).attr( 'value' ) ).attr( 'value' ) );
    });

    $('.bestel_prijscode_arrangement').each( function() {
        var arrangement = $(this).attr( 'id' ).split( '_' );
        var arrangement_id = arrangement[3].substring( 0, strpos( arrangement[3], '[' ) );
        totaal_extraas = totaal_extraas + parseFloat( $('#tarief_arrangement_'+arrangement_id+'_prijscode_'+$(this).attr( 'value' ) ).attr( 'value' ) );       
    });

    totaal = totaal + totaal_kaarten + totaal_extraas;

    if( 0 <= totaal_kaarten )
    {
        $('#bestel_stap4_totaal_kaarten').html( 'totaal kaarten: &euro;&nbsp;'+display_value( totaal_kaarten ) );
    }

    if( 0 <= totaal_extraas )
    {
        $('#bestel_stap4_totaal_opties').html( 'totaal extra opties: &euro;&nbsp;'+display_value( totaal_extraas ) );
    }

    if( 0 <= totaal )
    {
        $('#bestel_stap4_totaal').html( 'totaal: &euro;&nbsp;'+display_value( totaal ) );
    }
}


function updateShowPrijscodes( current )
{
    var aantal_tickets = parseInt( current.attr('value') );
    var aantal_tickets_old = $('#aantal_tickets_old').attr('value');
    
    // Als het aantal tickets wijzigd
    if( aantal_tickets_old != '' && aantal_tickets_old != aantal_tickets )
    {
        if( !confirm( 'Als u het aantal tickets wijzigt, vervallen de voor u gereserveerde stoelen. Klik op oke om door te gaan met de best beschikbare plaatsen, of klik op annuleren om uw huidige plaatsen te behouden.' ) )
        {
            $('#aantal_tickets').attr('value', $('#aantal_tickets_old').attr('value' ) );
            return;
        }
    }

    var blok = '';

    for( i = 1; i <= aantal_tickets; i++ )
    {
        blok += '<div class="stapblok2">'
             + '    <div class="aantal">1</div>'
             + '    <span>x</span>'
             + '    <select class="list bestel_prijscode_ticket" id="bestel_prijscode_ticket['+i+']" name="bestel_prijscode_ticket['+i+']">'
             + '    </select>'
             + '</div>';
    }

    $('#selectie_aantal_kaarten').html( blok );
    $('#rangkeuze_rang_id').trigger( 'change' );
}


function updateArrangementPrijscodes( current )
{
    var items_arrangement = current.attr('id').split('_');
    var arrangement_id    = items_arrangement[2];

    var aantal            = parseInt( current.attr('value') );
    var blok              = '';

    for( i = 1; i <= aantal; i++ )
    {
        blok +='<div class="stapblok2">'
             + '    <div class="aantal">1</div>'
             + '    <span>x</span>'
             + '    <select class="list bestel_prijscode_arrangement bestel_prijscode_arrangement_'+arrangement_id+'" id="bestel_prijscode_arrangement_'+arrangement_id+'['+i+']" name="bestel_prijscode_arrangement['+arrangement_id+']['+i+']">'
             + '    </select>'
             + '</div>';
    }
          
    // Ophalen beschikbare prijscodes
    var select_options    = '';
    var hidden_options    = '';
    $.getJSON('/framework/public/ajax/prijscodes.php?arrangement_id='+arrangement_id, function( data ) {
       $.each( data['results'], function( index, pobject ) {
           select_options += '<option value="'+pobject.id+'">'+pobject.omschrijving+' '+display_value( pobject.prijs )+'</option>';
           hidden_options += '<input type="hidden" id="tarief_arrangement_'+arrangement_id+'_prijscode_'+pobject.id+'" name="tarief_arrangement_'+arrangement_id+'_prijscode_'+pobject.id+'" value="'+pobject.prijs+'" />';
           $('#bestel_tarieven_prijscode_arrangement_'+arrangement_id).html( hidden_options );

       });
           
       $('.bestel_prijscode_arrangement_'+arrangement_id).html( select_options ).change( function() {
          bestelPaginaBerekenTotaalprijs();
       });
       bestelPaginaBerekenTotaalprijs();
    });

    $('#selectie_aantal_arrangement_'+arrangement_id).html( blok );
}

// Voer controles uit als men van de betaalstap naar ogone gaat
// Controleert of de stoelkeuze verlopen is, geeft alerts als dit niet het geval is
// en bepaalt eventueel zelf nieuwe stoelen
function check_betaling_reservering_stoelen( submitlink )
{
    // Controleer of de stoelen nog beschikbaar zijn
    $.getJSON('/framework/public/ajax/check_stoelen.php', function( data ) {
        if( true != data.success )
        {
            if (confirm('Je stoelkeuze van 1 of meerdere gekozen voorstellingen is verlopen. Klik op oke om door te gaan met de best beschikbare plaatsen, of klik op annuleren om nieuwe plaatsen te kiezen.'))
            {
                $.getJSON('/framework/public/ajax/check_stoelen.php?renew_seats=true', function( ) {
                    submitlink.parents('form:first').append('<input type="hidden" name="javascriptsubmit" value="true" />').trigger('submit');
                    return false;
                });
            }
            else
            {
                $(location).attr( 'href', '/winkelmand' );
            }
        }
        else
        {
            submitlink.parents('form:first').append('<input type="hidden" name="javascriptsubmit" value="true" />').trigger('submit');
            return false;
        }
    });
}

function check_reservering_stoelen( retry )
{
    // Controleer of de stoelen nog beschikbaar zijn
    $.getJSON('/framework/public/ajax/check_stoelen.php', function( data ) {
        if( true == data.success )
        {
            addReserveringToAnalytics();
            $(location).attr( 'href', '/betaalmethode' );
        }
        else
        {
            if ( false != retry )
            {
                if (confirm('Uw stoelkeuze van 1 of meerdere gekozen voorstellingen is verlopen. Klik op oke om door te gaan met de best beschikbare plaatsen, of klik op annuleren om nieuwe plaatsen te kiezen.'))
                {
                    $.getJSON('/framework/public/ajax/check_stoelen.php?renew_seats=true', function( ) {
                        check_reservering_stoelen( 'true' );
                    });
                }
            }
            else
            {
                alert('Helaas is het niet meer mogelijk om in dezelfde rang plaatsen voor u te boeken. Eventueel kunt u wel nog handmatig andere plaatsen selecteren.');
            }
        }
    });
}

// stoelkeuze foutafhandeling
function getFlashMovieObject(movieName)
{
  if (window.document[movieName])
  {
      return window.document[movieName];
  }
  if (navigator.appName.indexOf("Microsoft Internet")==-1)
  {
    if (document.embeds && document.embeds[movieName])
      return document.embeds[movieName];
  }
  else // if (navigator.appName.indexOf("Microsoft Internet")!=-1)
  {
    return document.getElementById(movieName);
  }
}

function zaalFout(msg)
{
	alert(msg);
	if ($("#plaatskeuze").size() > 0)
	{
		var flashmovie = getFlashMovieObject('swf_stoelkeuze');
		flashmovie.maakZaal();
	}
}

function addReserveringToAnalytics()
{
	if(typeof pageTracker != 'undefined')
	{
       var reserveringsnummer     = $("#winkelmandje_reservering_id").val();
       var totaalbedrag           = $("#winkelmandje_totaalprijs_value").val().replace(/\./, "").replace(/\,/, ".");
       var btw                    = '';
       var reserveringskosten     = ''; //$("#winkelmandje_reserveringskosten_value").text().replace(/\./, "").replace(/\,/, ".");

       pageTracker._addTrans(
             reserveringsnummer,        // order ID - required
             "Theater De Leest",        // affiliation or store name
             totaalbedrag,              // total - required
             btw,                       // tax
             reserveringskosten,        // shipping
             "",                        // city
             "",                        // state or province
             ""                         // country
       );

       $(".winkelmandje_voorstelling").each(function()
       {
             var item_categorie = $(".winkelmandje_item_categorie", this).val();

             if (item_categorie)
             {
                    var pre_item_id = 'vst_';
                    if (item_categorie == 'artikel')
                           pre_item_id = 'art_';
                    else if (item_categorie == 'service')
                           pre_item_id = 'srv_';
                    else if (item_categorie == 'arrangement')
                           pre_item_id = 'arr_';

                    var item_id         = pre_item_id + $(".winkelmandje_item_id", this).val();
                    var item_naam       = $(".winkelmandje_item_naam", this).val();
                    var item_stukprijs  = $(".winkelmandje_item_stukprijs", this).val();
                    var item_aantal     = $(".winkelmandje_item_aantal", this).val();

                    pageTracker._addItem(
                           reserveringsnummer,                     // order ID - necessary to associate item with transaction
                           item_id,                                // SKU/code - required
                           item_naam,                              // product name
                           item_categorie,                         // category or variation
                           item_stukprijs,                         // unit price - required
                           item_aantal                             // quantity - required
                    );
             }
       });

       pageTracker._trackTrans();
    }
}

function init_infohover( )
{
    $('.icon.info').hover(
        function () {
            $('.tooltip').html('<div class="tooltiptext">'+$(this).html()+'<div style="clear: both;"></div></div>');
            tmpHeight = $('.tooltip').height();
            tmpHeight = tmpHeight / 2;
            $(this).mousemove(function(e){
                $('.tooltip').css('top',(e.pageY - tmpHeight) + 'px');
                $('.tooltip').css('left',(e.pageX + 10) + 'px');
                $('.tooltip').fadeIn('fast');
            })
        },
        function () {
            $('.tooltip').fadeOut('fast');
        }
    );
}

function StartTracking(){
	if (typeof(_gat) == 'object')
	{
		window.clearTimeout(hndl);
		pageTracker =_gat._getTracker(analytics_code);
		pageTracker._initData();
		pageTracker._trackPageview();
	} else {
		hndl = window.setTimeout("StartTracking()", 1000);
	}
}
