// Place your application-specific JavaScript functions and classes here
// This file is automatically included by javascript_include_tag :defaults
function getActualLinkTarget(alleged_link_target){
	if (alleged_link_target.is('a')){
		return alleged_link_target;
	} else {
		return alleged_link_target.parents('a');
	}
}
function bindImageRadios(id) {
	$("input:radio[@name='photo_action_" + id + "']").click(
		function(e){
			toggleReplaceImageForm(id);
		}
	);
};
function toggleReplaceImageForm(id) {
	switch($("input:radio[@name='photo_action_" + id + "']:checked").val()){
		case 'replace':
			$('#photo_' + id + '_replacement').show();
			$('#photo_' + id + '_keeper').hide();
			break;
		case 'keep':
			$('#photo_' + id + '_keeper').show();
			$('#photo_' + id + '_replacement').hide();
			break;
		case 'delete':
			$('#photo_' + id + '_replacement').hide();
			$('#photo_' + id + '_keeper').hide();
			break;
	}
};
$(document).ready(function(){
	bindLimitedTextAreas();
});
function bindLimitedTextAreas(){
	$("[validation_binding='textarea_limit']").keyup(function(e){
		limitChars($(e.target), parseInt($(e.target).attr('validation_limit')),$(e.target).attr('validation_feedback_element'));
	});
};
function limitChars(textarea, limit, infodiv){
	var text = textarea.val(); 
	var textlength = text.length;
	if(textlength > limit){
		$('#' + infodiv).html('You exceeded the limit of '+limit+' characters, your content was truncated.');
		textarea.css({'background-color':'#FF9999'});
		$('#' + infodiv).css({'text-decoration':'blink','color':'#FF0000'});
		textarea.val(text.substr(0,limit));
		return false;
	} else {
		$('#' + infodiv).html('You have '+ (limit - textlength) +' characters left.');
		textarea.css({'background-color':'white'});
		$('#' + infodiv).css({'text-decoration':'none','color':'#000000'});
		return true;
	}
};
function bindTabs(){
	$(document).ready(function(){
		$("[ui_binding='tab']").click(function(e){
			switch($(e.target).attr('ui_binding')){
				case 'tab':
					real_target = $(e.target)
					break;
				default:
					real_target = $(e.target).parents("[ui_binding='tab']");
					break;
			}
			$("[ui_binding='tab']").removeClass('selected');
			real_target.addClass('selected');
			$("[ui_binding='tab_content']").hide();
			$('#' + real_target.attr('ui_tab')).show();
		});
	});
};
function bindSortables(){
	$(document).ready(function(){
		$("[ui_binding='sortable']").sortable({
			update: function(e,ui){
				$.ajax({
					type: 'PUT', 
					url: $(this).attr('ui_url'),
					data: $(this).sortable('serialize')
				})
			}
		});
	});
}
function bindPagers(){
	$("[data-page_role='page_arrow']").unbind('click');
	$("[data-page_role='page_arrow']").click(function(e){
		real_target = getActualLinkTarget($(e.target));
		right_arrow = $("[data-page_role='page_arrow'][data-page_direction='right'][data-page_id='" + real_target.attr('data-page_id') + "']");
		right_arrow.stopTime('feature_slideshow');
		slidePage(real_target);
	});
}
function slidePage(real_target){
	right_arrow = $("[data-page_role='page_arrow'][data-page_direction='right'][data-page_id='" + real_target.attr('data_page_id') + "']");
	pager_id = real_target.attr('data-page_id');
	container = $("[data-page_role='container'][data-page_id='" + pager_id + "']");
	direction = real_target.attr('data-page_direction');
	if (!container.data('page_position')){
		container.data('page_position',0);
	}
	viewport_width = parseInt(container.attr('data-viewport_width'));
	item_count = parseInt(container.attr('data-item_count'));
	page_views = item_count - parseInt(container.attr('data-items_per_page'));
	if(direction == 'left'){
		left_arrow = real_target;
		right_arrow = $("[data-page_role='page_arrow'][data-page_direction='right'][data-page_id='" + pager_id + "']");
		container.data('page_position',container.data('page_position') - 1);
	} else {
		right_arrow = real_target;
		left_arrow = $("[data-page_role='page_arrow'][data-page_direction='left'][data-page_id='" + pager_id + "']");
		container.data('page_position',container.data('page_position') + 1);
	}
	left_arrow_wrapper = left_arrow.parents("[data-page_role='page_arrow_wrapper']:first");
	right_arrow_wrapper = right_arrow.parents("[data-page_role='page_arrow_wrapper']:first");
	if (container.data('page_position') == 0) {
		left_arrow_wrapper.hide();
	}
	if (container.data('page_position') == page_views) {
		right_arrow_wrapper.hide();
	}
	if (container.data('page_position') != 0) {
		left_arrow_wrapper.show();
	}
	if (container.data('page_position') != page_views) {
		right_arrow_wrapper.show();
	}
	left_position = container.data('page_position') * viewport_width;
	left_position = -left_position;
	left_position_css = left_position + 'px';
	container.animate({left:left_position_css},1000);
	return false;
}
function clickRefreshImageLink(id){
	$('#refresh_images_link').attr('href',$('#refresh_images_link').attr('href') + '/' + id);
	$('#refresh_images_link').click();
	$('#post_element_new').empty();
	$('#post_element_new_links').show();
}
function handlePostElementCount(){
	if($("#post_element_list").children().length >= 5) {
		$("#post_element_controls").hide();
	} else {
		$("#post_element_controls").show();
	}
}
