$(document).ready(function() {

	$('html').addClass('js');
	
	Cufon.replace('h2');
	
	// setup login page
	$('#login-problems').hide();
	$('#login-problems-trigger').click(function() {
		$("#login-problems").toggle();
		return false;
	});
	
	// add placeholders and autoresize to certain special form items
	if($('.comment-box textarea, #find-store input[type=text]').length > 0 ) {
		$('.comment-box textarea, #find-store input[type=text]').placeholder().autoResize({
			animate: false,
			extraSpace: 0
		});
	}
	
	// follow/unfollow
	$('.profile-pic .follow, .profile-pic .unfollow').click(function() {
		var clicked = $(this);
		$.post(this.href, function(data) {
			if(parseInt(data.follow) === 1) {
				clicked.parent().removeClass('not-following').addClass('following');
			} else {
				clicked.parent().removeClass('following').addClass('not-following');
			}
		},
		'json');
		return false;
	});
	
	// setup faq page
	$('.faq li h4').toggle(function() {
		$(this).next().slideDown();
	}, function() {
		$(this).next().slideUp();
	});
	
	// setup unlimited photo uploads for "complete task" form
	var addImageBtn = $('<a href="#add-image-field" class="button">+ image</a>');
	$('.input.multiple')
		.wrap('<div class="file-container">')
		.parent().append(addImageBtn.click(
			function() {
				// replace this
				var clone = $(this).prev().clone();
		      	var parts = $(clone).children('label').attr('for').split('-');
			    var count = Number(parts[1].substr(0,parts[1].length)) + 1;

			    $(clone).children('label').attr('for', parts[0] + '-' + count);
			    $(clone).children('input').attr('id', parts[0] + '-' + count);
				$(clone).children('input').val(""); 

				$(this).before(clone);
			})
		);
		
	// change event for filter/sort-by elements in community
	$('#community-controls select').change(communityControlHandler);
	$('#community-controls input').click(communityControlHandler);
	function communityControlHandler() {
		$(this).parents('form').submit();
	}
	
	sortableRows();
});

//Set rows to be drag-n-drop sortable
sortableRows = function() {
	if($("ul#sortable_rows").length > 0 ) {
	   $("ul#sortable_rows").sortable({
	         opacity:       '0.8',
	         revert:        true,
	         scroll:        true,
	         items:         "li",
	         handle:        ".move_handle",
	         tolerance:     'pointer',
	         containment:   'parent',
	         update : function () {
	            $.post(
	              $(this).attr('rel'), 
	              $(this).sortable('serialize'),
	              function(data) {                 
	                 if(data.ordering) {
	                    var ids = data.ordering.split('-');
	                    for(var i = 0; i < ids.length; i++) {
							var row_id = data.model + '_' + ids[i];
							$('ul#sortable_rows').append($('#' + row_id));
	                    }
	                 }
	              },
	              'json'
	           );
	         }
	   });
	}
	else return false;     
};
