$(document).ready(function() {
	$("#form_zoeken").validate();
	$('#term').autofill( {
		value : 'Uw zoekterm',
		prePopulate : ''
	});
	$('.lightbox').lightBox();

	$("#productzelfmenuvak").tabs({
		event: 'mouseover'
	});
	$('#date').datepicker();
	
	
	$('#referenties > li').mouseenter(function(){
		var id = $(this).attr('rel');
		
		var old = $('#referentiegroot li a').attr('rel');
		
		$('#referentiegroot li a').hide();
		$('#referentiegroot li a:[rel='+id+']').toggle();
		
	});

	copy_form_data("input[name='straatnaam']", "input[name='afl_straatnaam']");
	copy_form_data("input[name='huisnr']", "input[name='afl_huisnr']");
	copy_form_data("input[name='postcode']", "input[name='afl_postcode']");
	copy_form_data("input[name='plaatsnaam']", "input[name='afl_plaatsnaam']");

	$( "#huurdatum" ).datepicker({
		defaultDate: "0",
		changeMonth: true,
		numberOfMonths: 1
	});
	

	$("#plaatsnaam_toevoegen").click(function(){
		var plaats = $("#pn").val();
		if(plaats == ""){
			$("#pn").focus();
		}else if($("input[name='transportkosten']").val() == ""){
			alert("Plaatsnaam is niet geldig!\nKies een van de steden die u aangeboden krijgt.");
		}else
		{			
			var verzendkosten = parseFloat($("input[name='transportkosten']").val());	
			var verzendKostenBox = $("<div>");
			verzendKostenBox.attr("id", "kosten_box");
			verzendKostenBox.html('<div class="wink-kolom1">Transportkosten '+plaats+'</div><div class="wink-kolom2" style="display: block;width: 50px;">&nbsp;</div><div class="wink-kolom3 temp_prijs" style="text-align: right;">&euro; '+round_decimals(verzendkosten, 2)+'</div><div class="wink-kolom4"><input type="button" id="transport_aanpassen" value=" " /></div>');
			verzendKostenBox.insertBefore("#wink-subvak");
			$("input[name='transportkosten']").trigger("change");
			$("#plaatsnaam_input_tekst").slideUp(200);
			$("#plaatsnaam_input").slideUp(200, function(){
				$("#container-winkelwagen").find("#bestelform_hidden").removeClass("invisible").slideDown(400);
			});			
		}
	});
	
	$("input[name='transportkosten']").change(function(){
		var verzendkosten;
		var som_producten = 0;
//		var prijzen = $(".temp_prijs");
		$(".temp_prijs").each(function(){
			var itemPrijs = $(this).html();
			itemPrijs = itemPrijs.split(" ").join("");
			itemPrijs = itemPrijs.replace(/\u20ac/g , "");
			itemPrijs = parseFloat(itemPrijs);
			som_producten += itemPrijs;
		});

		var subtotaal = som_producten;
		$("#subtotaal_value").html("&euro; "+round_decimals(subtotaal, 2));
		
		var btw = subtotaal/100*19;
		totaal = subtotaal+btw;
		$("#btw_value").html("&euro; "+round_decimals(btw, 2));
		$("#totaal_value").html("&euro; "+round_decimals(totaal, 2));
	});
	
	$("input[name='transportkosten']").trigger("change");
	
		$("#transport_aanpassen").live("click", function(){
			$("#container-winkelwagen").find("#bestelform_hidden").slideUp(200, function(){
				$("#plaatsnaam_input").slideDown(400);
			});
			$("#kosten_box").remove();
		});
		
		$("#transport_aanpassen_redirect").live("click", function(){
			window.location = '/winkelwagen/?bezorgkosten=reset';
		});
	
});




function copy_form_data (source, target) {
	var source_input = $(source);
	source_input.blur(function(){
		var target_input = $(target);
		if (target_input.val()=='') {
			target_input.val(source_input.val());
		}
		
	});
	}








// $(function() {
// var availableTags = ["ActionScript", "AppleScript", "Asp", "BASIC", "C",
// "C++", "Clojure", "COBOL", "ColdFusion", "Erlang", "Fortran", "Groovy",
// "Haskell", "Java", "JavaScript", "Lisp", "Perl", "PHP", "Python", "Ruby",
// "Scala", "Scheme"];
// $("#birds").autocomplete({
// source: availableTags
// });
// });


$(function() {
	var cache = {};
	// $( "#pn" ).focus(function(){$(this).val();})
	$( ".input-afl-plaatsnaam" ).autocomplete({
		minLength: 2,
		source: function(request, response) {
			if ( request.term in cache ) {
				response( cache[ request.term ] );
				return cache[ request.term ];
			}
			$.ajax({
				url: "ajax/city_autocomplete.php",
				dataType: "json",
				data: request,
				success: function( data ) {
					cache[ request.term ] = data;
					response( data );
				}
			});
		},
		focus: function(event, ui) {
			$('.input-afl-plaatsnaam').val(ui.item.value);
			return false;
		},
		select: function(event, ui) {
			price= round_decimals((Math.round((ui.item.km*1.6)*100)/100),2);
			price=price.replace(".", ",");
			$('.bezorg_prijs').html('&euro; '+ price);
			transportkosten = Math.round((ui.item.km*1.6)*100)/100;
			transportstad = ui.item.value;
			$("input[name='transportkosten']").val(transportkosten);
			$("input[name='transportstad']").val(transportstad);
//			alert ('transportkosten:'+transportkosten);
//			alert ('transportstad:'+transportstad);
//			return false;
			$.ajax({
				type: "POST",
				url: "ajax/save_in_session.php",
				data: "transportkosten="+transportkosten+"&transportstad="+transportstad
			});
			
			
			return false;
		}
	});
	
});

$(function() {
	var cache = {};
	// $( "#pn" ).focus(function(){$(this).val();})
	$( ".input-plaatsnaam" ).autocomplete({
		minLength: 2,
		source: function(request, response) {
			if ( request.term in cache ) {
				response( cache[ request.term ] );
				return cache[ request.term ];
			}
			$.ajax({
				url: "ajax/city_autocomplete.php",
				dataType: "json",
				data: request,
				success: function( data ) {
					cache[ request.term ] = data;
					response( data );
				}
			});
		},
		focus: function(event, ui) {
			$('.input-plaatsnaam').val(ui.item.value);
			return false;
		},
		select: function(event, ui) {
			price= round_decimals((Math.round((ui.item.km*1.6)*100)/100),2);
			price=price.replace(".", ",");
			transportkosten = Math.round((ui.item.km*1.6)*100)/100;
			transportstad = ui.item.value;
			$.ajax({
				type: "POST",
				url: "ajax/save_in_session.php",
				data: "transportkosten="+transportkosten+"&transportstad="+transportstad
			});
			
			return false;
		}
	});
});

function round_decimals(original_number, decimals) {
    var result1 = original_number * Math.pow(10, decimals)
    var result2 = Math.round(result1)
    var result3 = result2 / Math.pow(10, decimals)
    return pad_with_zeros(result3, decimals)
}

function pad_with_zeros(rounded_value, decimal_places) {

    // Convert the number to a string
    var value_string = rounded_value.toString()
    
    // Locate the decimal point
    var decimal_location = value_string.indexOf(".")

    // Is there a decimal point?
    if (decimal_location == -1) {
        
        // If no, then all decimal places will be padded with 0s
        decimal_part_length = 0
        
        // If decimal_places is greater than zero, tack on a decimal point
        value_string += decimal_places > 0 ? "." : ""
    }
    else {

        // If yes, then only the extra decimal places will be padded with 0s
        decimal_part_length = value_string.length - decimal_location - 1
    }
    
    // Calculate the number of decimal places that need to be padded with 0s
    var pad_total = decimal_places - decimal_part_length
    
    if (pad_total > 0) {
        
        // Pad the string with 0s
        for (var counter = 1; counter <= pad_total; counter++) 
            value_string += "0"
        }
    return value_string
}

