$(document).ready(function () {

	// Step 1 - Home type
	// ======================================

	// Auto update consumption amount (kWh) depending on estate choice
	switch ($('#estate-type').val()) {
		case "villa":
			$('#consumption').val("20000");
			break;
		case "radhus":
			$('#consumption').val("7500");
			break;
		case "lagenhet":
			$('#consumption').val("2500");
			break;
		default:
			$('#consumption').val("2500");
			break;
	}

	$('#estate-type').change(function () {
		switch ($('#estate-type').val()) {
			case "villa":
				$('#consumption').val("20000");
				break;
			case "radhus":
				$('#consumption').val("7500");
				break;
			case "lagenhet":
				$('#consumption').val("2500");
				break;
			default:
				$('#consumption').val("20000");
				break;
		}
	});

	// Step 2 - Deal type
	// ======================================

	// Add a "more info"-link when javascript is on
	$('#step-2 #deal .radio.more-info > div > label').append('<a href="#"><span>(Mer info)</span></a>');
	$('#step-2 #deal .radio.more-info').removeClass('more-info');

	// Show more info box if a radio has been checked earlier
	$('#step-2 #deal .deal-opt input[type=radio]:checked').closest('.deal-opt').addClass('more-info');

	// Hide update price info button
	$('#step-2 .update-price-info').remove();

	// Show more info on click
	$('#step-2 #deal .radio a').click(function (e) {
		e.preventDefault();
		var radioDiv = $(this).parent().parent().parent();

		if ((radioDiv.hasClass('more-info'))) {
			radioDiv.removeClass('more-info');
			$(this).find('> span').html('(Mer info)');
		}
		else {
			radioDiv.addClass('more-info');
			$(this).find('> span').html('(Mindre info)');
		}
	});


	// Handle the selection and behaviour of radio buttons
	$('#step-2 #deal input[type=radio]').click(function (e) {
		// Handle the main radio buttons (Fastpris, rörligt, el-kombi)
		if ($(this).parent().parent().hasClass('deal-opt')) {
			var radioDiv = $(this).parent().parent();
			radioDiv.addClass('more-info');
			$(this).parent().find('> label span').html('(Mindre info)');
			radioDiv.has('fieldset').find('.radio input').first().attr("checked", "checked").trigger('change');
			var selDeal = $(this).val();

			if (radioDiv.has('fieldset')) {
				var years = radioDiv.find('.radio input').first().val();
			}

			$('.info').removeClass('show');
			if (selDeal == "fastpris") {
				$('.fastpris').addClass('show');
				$('.compare').addClass('show');
			}
			else if (selDeal == "rorligtpris") {
				$('.rorligtpris').addClass('show');
				$('.compare').addClass('show');
			}
			else if (selDeal == "elkombi") {
				$('.elkombi').addClass('show');
				$('.compare').addClass('show');
			}
		}
		// Handle the suboptions (years)
		else {
			var years = $(this).val();
			var selDeal = $(this).closest('.deal-opt').find('> div > input').val();
		}

		var radioDiv = $(this).closest('.radio');

		if (radioDiv.hasClass('deal-opt')) {
			$('.deal-opt').find('fieldset input').removeAttr("checked");
			radioDiv.find('fieldset input').first().attr("checked", "checked");
		}
		else if ($(this).attr('name') == 'deal-suboption') {
			$('.deal-opt').find('fieldset input').removeAttr("checked");
			radioDiv.closest('.deal-opt').find('> div> input').attr("checked", "checked");
			$(this).attr("checked", "checked");
		}
	});

	$('#step-2 #deal .deal-opt .radio input[type=radio]').bind('change', function (e) {
		$(this).updateInfo(this);
	});

	$('#step-2 .extras .radio input[type=radio]').bind('change', function (e) {
		$(this).updateInfo(this);
	});

	// Step 3 - Customer data
	// ======================================

	// Add close button for the info boxes	

	$('#step-3 .info').prepend('<img src="/i/close-info.png" style=""/>');

	/*$('#step-3 .info.terms').prepend('<img src="/i/close-info.png" style=""/>');
	$('#step-3 .info.plantid').prepend('<img src="/i/close-info.png" style=""/>');
	$('#step-3 .info.areaid').prepend('<img src="/i/close-info.png" style=""/>');*/


	// Hide info boxes (Later show via click) 
	$('#step-3 .info').hide();

	// Show info boxes on info or terms click
	$('#step-3 label a').click(function (e) {
		e.preventDefault();
		id = $(this).closest('div').find('input').attr('id');
		if (id == "terms") {
			$('.terms').show();
		}
		else if (id == "plantid") {
			$('.plantid').show();
		}
		else if (id == "areaid") {
			$('.areaid').show();
		}
	});

	// Hide info boxes when clicking the close image
	$('#step-3 .info img').click(function (e) {
		e.preventDefault();
		if ($(this).parent().hasClass('info')) {
			$(this).parent().hide();
		}
	});

	// Automatically display info for checked alternative on load
	$('#step-2 #deal .deal-opt .radio input[type=radio]:checked:first').trigger('change');

	// Step 4 - Finish
	// ======================================


	// General
	// ======================================
	// Info boxes with "static" class are shown
	$('.info.static').addClass('show');

});



// Functions
// ======================================
$.fn.updateInfo = function (object) {

	t = object;

	if ($(t).closest('.extras').length > 0) {
		// EXECUTE CODE FOR EXTRAS HERE

		$(t).updateInfo($('.deal-opt fieldset input[type=radio]:checked'));
	}
	else {
		// EXECUTE CODE FOR OTHER CHOICES HERE

		dealOpt = $(t).closest('.deal-opt').find('> div > input[type=radio]').attr('id');
		dealId = '#' + dealOpt;

		dealOptLabel = $(t).closest('.deal-opt').find('> div > label');
		link = dealOptLabel.find('a').clone().wrap('<div>').parent().html();
		dealOptLabel = dealOptLabel.html();
		if (link != null && link != "") {
			dealOptLabel = dealOptLabel.replace(link, "");
		}

		dealSubOpt = $(t).val();
		years = dealSubOpt.substring(dealSubOpt.lastIndexOf("-") + 1);

		extras = null;
		extrasString = null;
		if ($('.extras input[type=radio]:checked').val() > 0) {
			extras = $('.extras input[type=radio]:checked').val();

			switch (extras) {
				case "1":
					extrasString = "Bra milj&ouml;val";
					extras = "&extra=environment";
					break;
				case "2":
					extrasString = "Eskilstuna Bio El";
					extras = "&extra=bio";
					break;
				default:
					extrasString = "";
					extras = "";
					break;
			}
		}

		// Update info box
		$.ajax({
			url: '/ajax/elavtal.ashx',
			dataType: 'json',
			data: 'action=info&item=' + encodeURIComponent(dealOpt),
			success: function (d) {

				$('#price-module .info.fixed').remove();
				$('#price-module .info.floating').remove();
				$('#price-module .info.combined').remove();
				$('#price-module .column-2').prepend('<div class="info ' + dealOpt + '"><h3>' + d.heading + '</h3>' + d.description + '</div>');
			},
			error: function (d) {
			}
		});

		if (extras) {
			dataString = 'action=price&item=' + dealSubOpt + extras;
		}
		else {
			dataString = 'action=price&item=' + dealSubOpt;
		}

		// Update price info
		$.ajax({
			url: '/ajax/elavtal.ashx',
			dataType: 'json',
			data: dataString,
			success: function (d) {

				$('#price-module .column-2 .price-info').remove();
				$('#price-module .column-2').append('<div class="info price-info"></div>');
				priceInfoDiv = $('#price-module .column-2 .price-info');

				if (dealOpt == "fixed") {
					priceInfoDiv.append('<h3>Med ' + dealOptLabel + '</h3>');
				}
				else {
					priceInfoDiv.append('<h3>Pris med ' + dealOptLabel + '</h3>');
				}

				if (dealSubOpt != "floating-1") {
					$(priceInfoDiv).find('h3').append(' i ' + years + ' &aring;r');
				}

				if (extrasString != "" && extrasString != null) {
					$(priceInfoDiv).find('h3').append(' och ' + extrasString);
				}

				if (dealOpt == "fixed") {
					$(priceInfoDiv).find('h3').append(' blir ditt elpris:');
				}

				$(priceInfoDiv).append('<ul></ul>');
				$(priceInfoDiv).find('ul').append('<li><span class="price-type">Elpris:</span>' + d.price + ' &ouml;re/kWh</li>');

				if (dealOpt == "floating") {
					$(priceInfoDiv).find('ul').append('<li><span class="price-type">Elcertifikat:</span>' + d.cert + ' &ouml;re/kWh</li>');
					$(priceInfoDiv).find('ul').append('<li><span class="price-type">P&aring;slag:</span>' + d.profit + ' &ouml;re/kWh</li>');
				}

				$(priceInfoDiv).find('ul').append('<li><span class="price-type">Energiskatt:</span>' + d.tax + ' &ouml;re/kWh</li>');
				$(priceInfoDiv).find('ul').append('<li><span class="price-type">Moms:</span>' + d.moms + ' &ouml;re/kWh</li>');
				$(priceInfoDiv).find('ul').append('<li><span class="price-type">Totalt:</span>' + d.sum + ' &ouml;re/kWh</li>');

				$(priceInfoDiv).find('ul').append('<li class="monthly"><span class="price-type">Fast avgift/m&aring;nad:</span>' + d.monthly + ' kr</li>');

				$(priceInfoDiv).find('ul').append('<li class="total">Genomsnittlig m&aring;nadskostnad:<span>ca ' + d.total + ' kr</span></li>');
			},
			error: function (d) {
			}
		});
	}
};

