function baseUrl(url) {
	return (url == null) ? $('#baseUrl').attr('href') : $('#baseUrl').attr('href') + url;
}

function loadSlots(id) {
	var url = baseUrl('/slots/options/id/' + id);
	$.getJSON(url, null, function(j) {
		var options = '';
		for (var i = 0; i < j.length; i++) {
			options += '<option value="' + j[i].value + '">' + j[i].display + '</option>';
		}
    	$('#slot_id').html(options);
	});
}

function formatDate(date) {
	return date.replace(/-/g, '/');
}

function openDialog() {
	if (!$("#dialog").dialog('open')) {
		$("#dialog").dialog('open');
	}
}

function closeDialog() {
	if ($("#dialog").dialog('open')) {
		$("#dialog").dialog('close');
	}
}

function loadDialog(url) {
	$("#dialog").load(url, null, function() {
		openDialog();
	});
}

function openPhoto(id) {
	var url = baseUrl('/view/id/' + id);
	loadDialog(url);
}

function selectProduct(pictureId, productId, elmItem) {
    $('#pictureId').val(pictureId);
    $('#productId').val(productId);
    $('.selectable').removeClass('productSelected');
    $(elmItem).addClass('productSelected');
}

function addProduct() {
	var url = baseUrl('/cart/add');
	var pictureId = $('#pictureId').val();
	var productId = $('#productId').val();
	
	if (!pictureId || !productId) {
		alert('Please select a product.');
		return false;
	}

	params = {
		picture_id: pictureId,
		product_id: productId
	};

	$.post(
		url,
		params,
		function(data) {
			addProductCallback(data, pictureId, productId);
		},
		'json'
	);

	return false;
}

function addProductCallback(data, pictureId, productId) {
	if (data == true) {
		var url = baseUrl('/index/confirm/picture/' + pictureId + '/product/' + productId);
		loadDialog(url);
	} else {
		alert(data.message);
	}
}

function gotoCart() {
	closeDialog();
	window.location = baseUrl('/cart');
}

$(function() {
	// Datepicker Setup
	var today = new Date();
	var formDate = new Date(formatDate($('#date').val()));
	$("#datePicker").datepicker({
		dateFormat: 'yy-mm-dd',
		changeMonth: true,
		changeYear: true,
		yearRange: '2009:' + today.getFullYear(),
		defaultDate: formDate,
		altField: '#date'
	});
	
	// Dialog Setup
	$("#dialog").dialog({
		bgiframe: true,
		autoOpen: false,
		position: ['center', 'top'],
		width: 800,
		modal: true
	});
	
	// Deal with location changes
	$('#location_id').change(function() {
		var id = parseInt($('#location_id').val());
		if (id) {
			loadSlots(id);
		}
	});
	
	// Initial Load
	if (!$('#slot_id').val()) {
		loadSlots($('#location_id').val());
	}
});

