// åäö
var IS_TOUCH_DEVICE = false;

$(document).ready(function() {
	IS_TOUCH_DEVICE = is_touch_device();
	if (IS_TOUCH_DEVICE) {
		$(".gridThumb").die("mouseenter");
		$(".gridThumb").die("mouseleave");
	}
	$('input[placeholder]').placeholder({ color: '#cccccc' });
});

$(".gridThumb").live("mouseenter", showGridThumbDate);
$(".gridThumb").live("mouseleave", hideGridThumbDate);

function showGridThumbDate(e) {
	var el = $(this);
	if ($("span", this).length) return;
	var img = $("img", el);
	el.append('<span><div class="day">' + img.data('day') + '</div><div class="month">' + img.data('month') + '</div><div class="year">' + img.data('year') + '</div></span>');
	var span = $("span", el);
	span.width(img.width()).height(img.height());
}

function hideGridThumbDate(e) {
	$("span", this).remove();
}

function is_touch_device() {
  try {
    document.createEvent("TouchEvent");
    return true;
  } catch (e) {
    return false;
  }
}


function helpWithFormattingTags(event, textarea) {
	event = event || window.event;
	var char = String.fromCharCode(event.charCode ? event.charCode : event.keyCode);
	var key = event.keyCode ? event.keyCode : event.which;

	var validTags = [ "b", "B", "i", "I", "u", "U" ];
	if (char == ">" && textarea.value.length >= 2) {
		for (tag in validTags) {
			var caretPosition = getCaretPosition(textarea);
			if (caretPosition >= 2 && textarea.value.substr(caretPosition - 2, 2) == "<" + validTags[tag]) {
				textarea.value =
				textarea.value.substr(0, caretPosition) +
				"></" + validTags[tag] + ">" +
				textarea.value.substr(caretPosition);
				setCaretPosition(textarea, caretPosition + 1);
				event.returnValue = false;
				return cancel(event);
			}
		}
	}
	else if (key == 8 && textarea.value.length >= 7) { // backspace
		for (tag in validTags) {
			var caretPosition = getCaretPosition(textarea);
			if (caretPosition >= 3 && textarea.value.substr(caretPosition - 3, 7) == "<" + validTags[tag] + "></" + validTags[tag] + ">") {
				textarea.value =
				textarea.value.substr(0, caretPosition - 3) +
				textarea.value.substr(caretPosition + 4);
				setCaretPosition(textarea, caretPosition - 3);
				return cancel(event);
			}
		}
	}

	function cancel(event) {
		if (event.preventDefault) {
			event.preventDefault();
		}
		if (event.stopPropagation) {
			event.stopPropagation();
		}
		event.returnValue = false;
		return false;
	}

	function getCaretPosition(el) {
		if (!(typeof(el.selectionStart) == "undefined")) {
			return el.selectionStart;
		}
		if (document.selection && document.selection.createRange) {
			var range = document.selection.createRange();
			if (range && range.duplicate && range.moveToElementText && range.setEndPoint) {
				var dummyRange = range.duplicate();
				dummyRange.moveToElementText(el);
				dummyRange.setEndPoint("EndToEnd", range);
				return dummyRange.text.length - range.text.length;
			}
		}
		return null;
	}

	function setCaretPosition(el, position) {
		if (el.setSelectionRange) {
			el.setSelectionRange(position, position);
			return true;
		}
		if (el.createTextRange) {
			var range = el.createTextRange();
			if (range && range.collapse && range.moveStart && range.moveEnd && range.select) {
				range.collapse(true);
				range.moveStart("character", position);
				//range.moveEnd("character", position);
				range.select();
				return true;
			}
		}
		return false;
	}
}

function loadFrontThumbs() {
	loadThumbs('earlier', $('.thumbs a img').last().data('id'), 64, $('#gridContainer .contentContainer'), 'front', true);
}

function loadSingleEntryThumbs(direction) {
	var images = $('.thumbs a img');
	loadThumbs(direction, direction == 'earlier' ? images.last().data('id') : images.first().data('id'), 36, $('#thumbContainer .thumbWrapper'), 'single', false);
}

function loadThumbs(direction, from, entryCount, container, mode, add) {
	if (this.loading) return;
	this.loading = true;
	var self = this;
	$.ajax(
		'/fotodagbok/thumbnails/',
		{
			data: {
				direction: direction,
				refEntryId: from,
				entryCount: entryCount,
				mode: mode
			},
			success: function(data, textStatus, jqXHR) {
				if (add) {
					$(container).append(data);
				}
				else {
					$(container).html(data);
				}
				self.loading = false;
			},
			error: function(jqXHR, textStatus, errorThrown) {
				self.loading = false;
			}
		}
		)
}
