/*
 *		GLOBAL VARIABLES
 */

var array_of_busy_dates = null;

// today's date
var today = new Date();

// gallery
var mouse_x = 0;
var mouse_y = 0;

// basepath
var basepath = "http://www.najdi-ansambel.si/";
//var basepath = "http://localhost/jereb_najdi-ansambel-prenova/";

$(document).ready(function() {
	// update listeners on page load
	updateListeners();
	
	// initialize
	pageInitialization();
	
	$("#datepicker-podatki").datepicker({
		onChangeMonthYear: function(year, month, inst) {
			// set busy dates
			$.ajax({
				url: basepath + "actions/ajax.php",
				type: "POST",
				data: "action=get_busy_dates&month=" + month,
				success: function(data) {
					array_of_busy_dates = eval('(' + data + ')');
				},
				async: false
			});
		},
		numberOfMonths: 2,
		onSelect: function(dateText, inst) { 
			$(".input-error.jq_calendar_empty_error").hide();
			
			$.ajax({
				url: basepath + "actions/ajax.php",
				type: "POST",
				data: "action=data_mark_busy_day&date_text=" + dateText,
				success: function(data) {
					if(data != 0) {
						var date_found = false;
						var new_array = [];
						
						for(var i = 0; i < array_of_busy_dates.length; i++) {
							if(array_of_busy_dates[i] != data)
								new_array[new_array.length] = array_of_busy_dates[i];
							else
								date_found = true;								
						}
						if(!date_found)
							new_array[new_array.length] = data;
						array_of_busy_dates = new_array;
						
						$("#datepicker-register").datepicker("refresh");
					}
				},
				async: false
			});
		},
		beforeShowDay: function(date) {
			var month = date.getMonth() + 1;
			var day = date.getDate();
			var date_format = date.getFullYear() + "-" + month + "-" + day;
			
			if(date < new Date().setHours(0,0,0,0))
				return [false, ""];
			
			var date_found = false;
			for(var i = 0; i < array_of_busy_dates.length; i++) {
				if(array_of_busy_dates[i] == date_format)
					date_found = true;
			}
			
			if(date_found)
				return [true, "ui-state-busy", "Ta dan ste zasedeni"];
			else
				return [true, "ui-state-default"];
		}
	});
	
	$("#datepicker").datepicker({
		 onSelect: function(dateText, inst) { alert($(this).attr("id")); }
	});
	
	// things that need to be done right on page load
	//pageInitialization();

	$("#jq_zamenjaj_predstavitveno_sliko").click(function() {
		$(this).parent().slideUp();
		$(this).parent().next().slideDown();
	});
	
	// lightbox
	$("a.lightbox-handle").lightBox();
	
	/*
	 *		FORMS
	 */
	
	//form submit link
	$(".form_submit_link").click(function(e) {
		e.preventDefault();
		
		var formId = $(this).attr("rel");
		var formHandle = $("form[rel=" + formId + "]");
		
		if(formHandle.length == 1) {
			if(validateForm(formHandle)) {
				formHandle.submit();
			} else {
				$(".input-error").show();
				$(document).scrollTop(0);
			}
		}
	});
	
	$("input, textarea").keydown(function(e) {
		var form_handle = $(this).parents("form.submit_on_enter").eq(0);
		if(form_handle.size() > 0 && e.keyCode == 13) {
			var form_rel = form_handle.attr("rel");
			$("a[rel=" + form_rel + "]").trigger("click");
		}
	});
	
	$("input, textarea, select").focus(function(e) {
		$(this).parent().removeClass("input-row-error");
		$(this).next(".ajax_msg").html("");
		
		$(this).parent().parent().parent().parent().children(".offer_line_error").hide();
	});
	$("input[type=checkbox]").click(function(e) {
		$(this).parent().removeClass("input-row-error");
	});
	
	// get post name
	$("#jq_post_id").blur(function() {
		var post_id = $(this).val();
		$.ajax({
			url: basepath + "actions/ajax.php",
			type: "POST",
			data: "action=get_post_name&post_id=" + post_id,
			success: function(data) {
				if(data != 0)
					$("#jq_post_name").val(data);
			}
		});
	});
	// limit post number size
	$("#jq_post_id").keydown(function(e) {
		var size = ($(this).val()).length;
		if(e.keyCode != 8 && e.keyCode != 9 && size >= 4) {
			e.preventDefault();
		}
	});
	
	// add memeber
	$("#jq_add_member").click(function() {
		$(this).before('Ime in priimek: <input type="text" name="clani[]" class="text" /><br />Opis člana: <br /><textarea name="opis_clana[]" class="long jq_limited_description_200" rows="2" cols="50"></textarea><div class="description">Na voljo imate še <span class="jq_limited_description_200_left">200</span> znakov</div>');
	
		updateListeners();
	});	
	
	// AJAX: check if this email already exists
	$(".ajax_email_check").blur(function() {
		var email = $(this).val();
		var element_handle = $(this);
		
		$.ajax({
			url: basepath + "actions/ajax.php",
			type: "POST",
			data: "action=check_registration_email&email=" + email,
			success: function(data) {
				if(data == 1) {
					element_handle.parent().addClass("input-row-error");
					element_handle.next(".ajax_msg").html(" Email je že uporabljen. Prosimo, vpišite drug email.");
					element_handle.val("");
				}
			}
		});
	});
	
	$(".jq_is_valid_email").blur(function() {
		var email = $(this).val();
		var element_handle = $(this);
		
		$.ajax({
			url: basepath + "actions/ajax.php",
			type: "POST",
			data: "action=is_valid_email&email=" + email,
			success: function(data) {
				if(data == 1) {
					element_handle.val("");
					element_handle.parent().addClass("input-row-error");
					element_handle.next(".ajax_msg").html(" Vpisali ste napačen e-mail. Prosimo, vpišite pravilen e-mail.");
				}
			}
		});
	});
	
	$(".jq_is_valid_year").blur(function() {
		var year = $(this).val();
		var element_handle = $(this);
		
		$.ajax({
			url: basepath + "actions/ajax.php",
			type: "POST",
			data: "action=is_valid_year&year=" + year,
			success: function(data) {
				if(data == 1) {
					element_handle.val("");
					element_handle.parent().addClass("input-row-error");
					element_handle.next(".ajax_msg").html(" Vpisali ste napačno letnico.");
				}
			}
		});
	});
	
	$(".jq_is_valid_price").blur(function() {
		var price = $(this).val();
		var element_handle = $(this);
		
		$.ajax({
			url: basepath + "actions/ajax.php",
			type: "POST",
			data: "action=is_valid_price&price=" + price,
			success: function(data) {
				if(data == 1) {
					element_handle.val("");
					element_handle.parent().addClass("input-row-error");
					element_handle.nextAll(".ajax_msg").eq(0).html(" Cena mora biti večja od 100 EUR in manjša od 10,000 EUR.");
					element_handle.nextAll(".commission_sum").eq(0).html("<strong>" + element_handle.attr("rel") + " EUR</strong>");
				}
			}
		});
	});
	
	$(".jq_add_commission").keyup(function(e) {
		var value = parseFloat($(this).val());
		var commission = parseInt($(this).attr("rel"));
		
		if(!isNaN(value)) {
			var sum = value + commission;
			$(this).nextAll(".commission_sum").eq(0).html("<strong>" + sum + " EUR</strong>");
			$(this).nextAll(".ajax_msg").eq(0).html("");
		} else {
			$(this).nextAll(".commission_sum").eq(0).html("<strong>" + commission + " EUR</strong>");
			$(this).nextAll(".ajax_msg").eq(0).html(" Napaka - niste vnesli pravilne cene.");
		}
	});
	
	/**
	 * 		INQUIRY & REGISTER FORM
	 */
	
	$("#jq_tip_dogodka").change(function() {
		var dogodekid = $(this).val();
		
		$(".jq_budget_info").hide();
		$("#jq_budget_info_" + dogodekid).show();
	});
	
	$("#jq_register_account_type").change(function() {
		var typeid = $(this).val();
		
		if(typeid == 1) {
			$("#jq_register_account_ds").children("input").eq(0).addClass("required");
			$("#jq_register_account_ds").show();
			$("#jq_register_change_name").html("Naziv društva/podjetja");
		} else {
			$("#jq_register_account_ds").children("input").eq(0).removeClass("required");
			$("#jq_register_account_ds").hide();
			$("#jq_register_change_name").html("Ime in priimek");
		}
	});
	
	/**
	 * 		OFFERS
	 */
	
	$(".offer_sender, .offer_content, .offer_date, .offer_status").click(function(e) {
		if($(this).parent().prevAll(".offer_line").size() == 0) {
		
			$(this).parent().nextAll(".offer_line").slideToggle();
			$(this).parent().nextAll(".offer_line_error").hide();
			
			var offer_handle = $(this).parent().parent();
			if(offer_handle.hasClass("new")) {
				var povprasevanjeid = offer_handle.attr("id");
				$.post(basepath + "actions/ajax.php", {action: "mark_inquiry_as_read", pid: povprasevanjeid}, function(data) {
					if(data != "0") {
						offer_handle.removeClass("new");
						var povpid = offer_handle.attr("id");
						var form_handle = $("form[name=offer_form_" + povpid + "]");
					}
				});
			}
		}
	});
	
	$(".jq_slide_inquiry").click(function(e) {
		e.preventDefault();
	});
	
	$(".offer_submit").click(function(e) {
		e.preventDefault();
		
		var formId = $(this).attr("name");
		var formHandle = $("form[name=" + formId + "]");
		
		if(formHandle.length == 1) {
			if(validateOffer(formHandle)) {
				formHandle.submit();
			}
		}
	});
	
	// on radio change show offer form
	$(".jq_toggle_offer_form").change(function() {
		$(".offer_line_error").hide();
		
		if($(this).parent().children("#jq_show_offer_form").eq(0).is(":checked"))
			$(this).parent().nextAll(".jq_offer_form").eq(0).show();
		else
			$(this).parent().nextAll(".jq_offer_form").eq(0).hide();
	});
	
	$("textarea.jq_prevent_ctrl").keydown(function(e) {
		if(e.ctrlKey && e.keyCode == 86 || e.ctrlKey) {	// ctrl is pressed 
			e.preventDefault();
		}
	});
	$("textarea.min200").keyup(function() {
		var znakov = ($(this).val()).length;
		var potrebno = 200 - znakov;
		if(potrebno < 0)
			potrebno = 0;
		
		$(this).nextAll("div.description").eq(0).html("Vpisali ste " + znakov + " znakov. Vnesti morate vsaj še " + potrebno + " znakov.");
	});
	
	// FILTERS
	$(".filter_odgovorjene").change(function() {
		var filter_setting = -1;
		
		if($(this).is(":checked")) {
			$(".filter_odgovorjene").attr("checked", "checked");
			$(".offer.answered:not(.spam)").slideDown();
			filter_setting = 1;
		} else {
			$(".filter_odgovorjene").attr("checked", "");
			$(".offer.answered").slideUp();
			filter_setting = 0;
		}

		$.post(basepath + "actions/ajax.php", {action: "change_filter_setting", filter: "setting_filter_odgovorjene", value: filter_setting});
	});
	$(".filter_potekle").change(function() {		
		var filter_setting = -1;
		
		if($(this).is(":checked")) {
			$(".filter_potekle").attr("checked", "checked");
			$(".offer.overdue:not(.spam)").slideDown();
			filter_setting = 1;
		} else {
			$(".filter_potekle").attr("checked", "");
			$(".offer.overdue").slideUp();
			filter_setting = 0;
		}
		
		$.post(basepath + "actions/ajax.php", {action: "change_filter_setting", filter: "setting_filter_potekle", value: filter_setting});
	});
	$(".filter_preklicane").change(function() {		
		var filter_setting = -1;
		
		if($(this).is(":checked")) {
			$(".filter_preklicane").attr("checked", "checked");
			$(".offer.hidden:not(.spam)").slideDown();
			filter_setting = 1;
		} else {
			$(".filter_preklicane").attr("checked", "");
			$(".offer.hidden").slideUp();
			filter_setting = 0;
		}
		
		$.post(basepath + "actions/ajax.php", {action: "change_filter_setting", filter: "setting_filter_preklicane", value: filter_setting});
	});
	
	/* ANSAMBEL */
	
	$(".ansambel_povprasevanje_link").click(function(e) {
		e.preventDefault();
		
		var location = window.location.toString().split("#");
		
		window.location = location[0] + "#oddaj-povprasevanje";
	});
	
	/* BILLING */
	
	$("#jq_add_billing").click(function(e) {
		e.preventDefault();
		
		$("#jq_add_billing_form").dialog({
			modal: true,
			width: "auto"
		});
	});
	$(".jq_ui_button").button();
	$("#jq_add_billing_form").submit(function(e) {
		if($("#jq_add_billing_select").val() == "null") {
			$("#jq_add_billing_msg").html("Izberite povpraševanje za katerega želite prijaviti nastop.");
			e.preventDefault();
		}
	});
	$("#jq_add_billing_select").change(function() {
		$("#jq_add_billing_msg").html("");
	});
});

/*
 *		CUSTOM FUNCTIONS
 */

/**
 * 	Validates froms
 * 
 * 	@param formHandle - form DOM element
 */
function validateForm(formHandle) {
	var ok = true;
	
	formHandle.find("input.required").each(function() {
		if($(this).attr("type") == "text" || $(this).attr("type") == "password") {
			var defValue = $(this).attr("rel");
			if(defValue === undefined)
				defValue = "";
			
			if($(this).val() == "" || $(this).val() == defValue) {
				ok = false;
				$(this).parent().addClass("input-row-error");
			} else if($(this).hasClass("integer")) {
				var parsed_int = parseInt($(this).val());
				if(isNaN(parsed_int)) {
					ok = false;
					$(this).val("");
					$(this).parent().addClass("input-row-error");
				} else {
					$(this).val(parsed_int);
				}
			} else if($(this).hasClass("float")) {
				var parsed_float = parseFloat(($(this).val()).replace(",", "."));
				if(isNaN(parsed_float)) {
					ok = false;
					$(this).val("");
					$(this).parent().addClass("input-row-error");
				} else {
					$(this).val(parsed_float);
				}
			}
		}
		else if($(this).attr("type") == "checkbox") {
			if(!$(this).is(":checked")) {
				ok = false;
				$(this).parent().addClass("input-row-error");
			}
		}
		
	});
	
	// textarea
	formHandle.find("textarea.required").each(function() {
		var defValue = $(this).attr("rel");
		if(defValue === undefined)
			defValue = "";
		if($(this).val() == "" || $(this).val() == defValue) {
			ok = false;
			$(this).parent().addClass("input-row-error");
		}
		if($(this).hasClass("min200")) {
			if(($(this).val()).length < 200) {
				ok = false;
				$(this).parent().addClass("input-row-error");
			}
		}
	});
	
	// select
	formHandle.find("select.required").each(function() {
		if($(this).val() == "null") {
			ok = false;
			$(this).parent().addClass("input-row-error");
		}
	});
	
	// checkbox groups
	formHandle.find("input[type=checkbox].group_required").each(function() {
		var name = $(this).attr("name");
		var group_ok = false;
		
		$("input[name=" + name + "]").each(function() {
			if($(this).is(":checked"))
				group_ok = true;
		});
		if(!group_ok) {
			ok = false;
			$(this).parent().addClass("input-row-error");
		}
	});
	
	// checkbox groups
	formHandle.find("input[type=radio].group_required").each(function() {
		var name = $(this).attr("name");
		var group_ok = false;
		
		$("input[name=" + name + "]").each(function() {
			if($(this).is(":checked"))
				group_ok = true;
		});
		if(!group_ok) {
			ok = false;
			$(this).parent().addClass("input-row-error");
		}
	});
	
	// validate event date
	if($("#jq_date_start_d").size() > 0) {
		if(!validate_event_date())
			ok = false;
	}
	
	return ok;
}

/**
 * 	Validates froms
 * 
 * 	@param formHandle - form DOM element
 */
function validateOffer(formHandle) {
	var ok = true;
	var ponudba = false;
	if($("#jq_show_offer_form").size() > 0)
		ponudba = true;
	
	if(($("#jq_show_offer_form").is(":checked") && ponudba) || !ponudba) {
		formHandle.find("input.required").each(function() {
			if($(this).attr("type") == "text" || $(this).attr("type") == "password") {
				var defValue = $(this).attr("rel");
				if(defValue === undefined)
					defValue = "";
				
				if($(this).val() == "" || $(this).val() == defValue) {
					ok = false;
					$(".offer_line_error").show();
				} else if($(this).hasClass("integer")) {
					var parsed_int = parseInt($(this).val());
					if(isNaN(parsed_int)) {
						ok = false;
						$(this).val("");
						$(".offer_line_error").show();
					} else {
						$(this).val(parsed_int);
					}
				} else if($(this).hasClass("float")) {
					var parsed_float = parseFloat(($(this).val()).replace(",", "."));
					if(isNaN(parsed_float)) {
						ok = false;
						$(this).val("");
						$(".offer_line_error").show();
					} else {
						$(this).val(parsed_float);
					}
				}
			}
			else if($(this).attr("type") == "checkbox") {
				if(!$(this).is(":checked")) {
					ok = false;
					$(".offer_line_error").show();
				}
			}
		});
		
		// textarea
		formHandle.find("textarea.required").each(function() {
			var defValue = $(this).attr("rel");
			if(defValue === undefined)
				defValue = "";
			if($(this).val() == "" || $(this).val() == defValue) {
				ok = false;
				$(".offer_line_error").show();
			}
			if($(this).hasClass("min200")) {
				if(($(this).val()).length < 200) {
					ok = false;
					$(".offer_line_error").show();
				}
			}
		});
	}
	
	// radio groups
	formHandle.find("input[type=radio].group_required").each(function() {
		var name = $(this).attr("name");
		var group_ok = false;
		
		$("input[name=" + name + "]").each(function() {
			if($(this).is(":checked"))
				group_ok = true;
		});
		if(!group_ok) {
			ok = false;
			$(".offer_line_error").show();
		}
	});
	
	return ok;
}

/**
 * 	Updates listeners on various elements
 */
function updateListeners() {
	// paginator
	$(".switch-page").click(function(e) {
		e.preventDefault();
		
		if(!$(this).hasClass("page-disabled")) {
			var page = parseInt($(this).attr("rel"));
			var nr_pages = parseInt($("#js_holder_nr_pages").html());
		
			$(".ansabmli-stran").hide();
			$(".ansambli-stran, .stran" + page).fadeIn(500);
			
			$(".switch-page").removeClass("page-selected");
			$(".switch-page[rel=" + page + "]").not(".relative-pager").addClass("page-selected");
			
			// determine page range
			var pages_length = Math.min(5, nr_pages);
			var subtract_value = Math.floor(pages_length / 2);
			
			var starting_page = Math.max(1, page - subtract_value);
			var end_page = starting_page + pages_length - 1;
			if(end_page > nr_pages) {
				end_page = nr_pages;
				starting_page = end_page - pages_length + 1;
			}
			
			var pagination_content = '<a href="" title="Pojdi na prvo stran" class="switch-page relative-pager ';
			if(page == 1) pagination_content += 'page-disabled';
			pagination_content += '" rel="1">&lt;&lt;</a>&nbsp;&nbsp;' + 
				'<a href="" title="Pojdi na prejšnjo stran" class="switch-page relative-pager ';
			if(page == 1) pagination_content += 'page-disabled';
			pagination_content += '" rel="' + (page-1) + '">&lt;</a>&nbsp;&nbsp;';
			
			for(var i = starting_page; i <= end_page; i++) {
				pagination_content += '<a href="" title="Pojdi na stran ' + i + '" class="switch-page ';
				if(i == page) pagination_content += 'page-selected';
				pagination_content += '" rel="' + i + '">' + i + '</a>&nbsp;&nbsp;';
			}
			
			pagination_content += '<a href="" title="Pojdi na naslednjo stran" class="switch-page relative-pager ';
			if(page == nr_pages) pagination_content += 'page-disabled';
			pagination_content += '" rel="' + (page + 1) + '">&gt;</a>&nbsp;&nbsp;';
			pagination_content += '<a href="" title="Pojdi na zadnjo stran" class="switch-page relative-pager ';
			if(page == nr_pages) pagination_content += 'page-disabled';
			pagination_content += '" rel="' + nr_pages + '">&gt;&gt;</a>&nbsp;&nbsp;';
			
			$(".right-pagination").html(pagination_content);
			updateListeners();
		}
	});
	
	// limit description to 800 characters
	$(".jq_limited_description_800").keydown(function(e) {
		var nr_chars = ($(this).val()).length;
		var char_diff = 800 - nr_chars;
		
		/*
		if(e.ctrlKey && e.keyCode == 86 || e.ctrlKey) {	// ctrl is pressed 
			e.preventDefault();
		} else 
		*/
		
		if(char_diff <= 0 && e.keyCode != 8) {
			e.preventDefault();
		} else {
			if(e.keyCode != 8) {
				if(char_diff > 0);
					char_diff--;
			} else {
				if(char_diff < 800)
					char_diff++;
			}
			$(this).parent().find(".jq_limited_description_800_left").eq(0).html(char_diff);
		}
	});
	
	// limit description to 200 characters
	$(".jq_limited_description_200").keydown(function(e) {
		var nr_chars = ($(this).val()).length;
		var char_diff = 200 - nr_chars;

		if(e.ctrlKey && e.keyCode == 86 || e.ctrlKey) {	// ctrl is pressed 
			e.preventDefault();
		} else if(char_diff <= 0 && e.keyCode != 8) {
			e.preventDefault();
		} else {
			if(e.keyCode != 8) {
				if(char_diff > 0);
					char_diff--;
			} else {
				if(char_diff < 200)
					char_diff++;
			}
			$(this).nextAll(".description").eq(0).find(".jq_limited_description_200_left").eq(0).html(char_diff);
		}
	});
}

/**
 * Initializes page
 */
function pageInitialization() {
	var month = today.getMonth() + 1;
	
	// set busy dates
	if($("#datepicker-podatki").size() > 0) {
		$.ajax({
			url: basepath + "actions/ajax.php",
			type: "POST",
			data: "action=get_busy_dates&month=" + month,
			success: function(data) {
				array_of_busy_dates = eval('(' + data + ')');
			},
			async: false
		});
	}
	
	// load pictures for gallery
	$.ajax({
		url: basepath + "actions/ajax.php",
		type: "POST",
		data: "action=fetch_gallery_pictures",
		success: function(data) {
			$("#jq_ajax_picture_holder").html(data);
			if($(".inner").size() > 0) {
				$(".inner").find("img").load(function() {
					gallery_roll(1);
				});
			}
		},
		async: false
	});
}

/**
 * Date entry check
 */
function validate_event_date() {
	var date_valid = true;
	
	var s_d = parseInt($("#jq_date_start_d").val());
	var s_m = parseInt($("#jq_date_start_m").val()) - 1;
	var s_y = parseInt($("#jq_date_start_y").val());
	var s_h = parseInt($("#jq_date_start_h").val());
	
	var e_d = parseInt($("#jq_date_end_d").val());
	var e_m = parseInt($("#jq_date_end_m").val()) - 1;
	var e_y = parseInt($("#jq_date_end_y").val());
	var e_h = parseInt($("#jq_date_end_h").val());
	
	if(!isNaN(s_d) && !isNaN(s_m) && !isNaN(s_y) && !isNaN(s_h) && !isNaN(e_d) && !isNaN(e_m) && !isNaN(e_y) && !isNaN(e_h)) {
	
		var date_start 	= new Date(s_y, s_m, s_d, s_h, 0, 0);
		var date_end 	= new Date(e_y, e_m, e_d, e_h, 0, 0);
		var now			= new Date();
		
		var date_diff = date_start - date_end;
		
		// validate
		if(date_start < now) {
			date_valid = false;
			$("#jq_date_start_d").val(now.getDate());
			$("#jq_date_start_m").val(now.getMonth() + 1);
			$("#jq_date_start_y").val(now.getFullYear());
			$("#jq_date_start_h").val(now.getHours() + 1);
			
			$("#jq_date_start_d").parent().addClass("input-row-error");
			$("#jq_date_end_d").parent().removeClass("input-row-error");
		} else if(date_end < date_start) {
			date_valid = false;
			$("#jq_date_end_d").val(s_d);
			$("#jq_date_end_m").val(s_m + 1);
			$("#jq_date_end_y").val(s_y);
			$("#jq_date_end_h").val(s_h);
			
			$("#jq_date_end_d").parent().addClass("input-row-error");
			$("#jq_date_start_d").parent().removeClass("input-row-error");
		} else if(date_diff == 0) {
			date_valid = false;
			
			$("#jq_date_end_d").parent().addClass("input-row-error");
			$("#jq_date_start_d").parent().removeClass("input-row-error");
		} else {
			$("#jq_date_start_d").parent().removeClass("input-row-error");
			$("#jq_date_end_d").parent().removeClass("input-row-error");
		}
	} else {
		date_valid = false;
	}
	
	return date_valid;
}

/**
 * GALLERY
 */
function gallery_roll(direction) {
	var inner_width = 0;
	$(".inner").children().each(function() {
		inner_width += 2 + $(this).width();
	});
	inner_width = inner_width - 595 - 4;
	if(inner_width < 0)
		inner_width = 0;
	var move_width = -inner_width;
	if(direction == -1)
		move_width = 0;
		
	if(inner_width > 0) {
		$(".inner").animate({left: move_width + "px"}, inner_width*50, function() {
			gallery_roll(direction * -1);
		});
	}
}
