
function checkHash() {
	hash = (window.location.hash).replace("#app_","");
	if(hash && hash != "") {
		$('#main').fadeOut('fast');
		$('#appImageHolder').fadeOut('fast');
		var app = hash;
		
		$.ajax({
			type: "POST",  
			url: "?app="+app,
			data: { "view":"content" },
			success: function(msg) {
				$('#appImageHolder').html('<img src="/images/apps/' + app + 'Main.png" />').fadeIn('fast');
				$('#main').html(msg).fadeIn('fast');
			}
		});
	}
}


//APPS

(function($) {
	$.fn.sorted = function(customOptions) {
		var options = {
			reversed: false,
			by: function(a) {
				return a.text();
			}
		};
		$.extend(options, customOptions);
	
		$data = $(this);
		arr = $data.get();
		arr.sort(function(a, b) {
			
		   	var valA = options.by($(a));
		   	var valB = options.by($(b));
			if (options.reversed) {
				return (valA < valB) ? 1 : (valA > valB) ? -1 : 0;				
			} else {		
				return (valA < valB) ? -1 : (valA > valB) ? 1 : 0;	
			}
		});
		
		return $(arr);
	};

})(jQuery);


$(function() {

	var $list = $('#appList');
	var $data = $list.clone();
	
	var $preferences = {
		duration: 600,
		easing: 'easeInOutQuad',
		adjustHeight: false
	};

	$('.sortControls').each(function(i) {
	    
		var $control = $(this);
		var $buttons = $control.find('a');
		
		$buttons.bind('click', function(e) {
		
			var $button = $(this);
			var $button_container = $button.parent();
			
			if (!$button.hasClass('on')) {
				$button.addClass('on');
				$button.siblings().removeClass("on");
				
				var $filtered_data = $data.find('li');
				
				var sorting_type = $button.attr("name");
				
				if (sorting_type == 'popularity') {
					var $sorted_data = $filtered_data.sorted({
						by: function(v) {
							return parseFloat($(v).find('a').attr('sort'));
						}
					});
				} else if(sorting_type == 'newest') {
					var $sorted_data = $filtered_data.sorted({
						reversed: true,
						by: function(v) {
							return parseFloat($(v).find('a').attr('created'));
						}
					});
				} else if(sorting_type == 'alphabetic') {
					var $sorted_data = $filtered_data.sorted({
						by: function(v) {
							return $(v).find('a').attr('name').toLowerCase();
						}
					});
				} else if(sorting_type == 'platform') {
					var $sorted_data = $filtered_data.sorted({
						by: function(v) {
							return $(v).find('a').attr('platform').toLowerCase();
						}
					});
				}
			
				$list.quicksand($sorted_data, $preferences);
			
			}
			
			e.preventDefault();
			
		});
	
	});

});


function advanceImages() {
	item = $(".imagesControls a.on");
	length = $(".imagesControls a").size();
	index = $(item).parent().children().index($(item));
	
	if(index == (length - 1)) {
		newIndex = 0;
	} else {
		newIndex = index + 1;
	}
	
	newItem = $(".imagesControls a").eq(newIndex);
	slideImages(newItem);
}

function slideImages(item) {
	index = $(item).parent().children().index($(item));
	$(".imagesHolder").animate({left:(index * -620)+"px"},300);
	
	$(item).siblings().each(function() {
		$(this).removeClass("on");
	});
	
	$(item).addClass("on");
}


//FEATURES

function advanceFeatures() {
	item = $("#featureDots a.on");
	length = $("#featureDots a").size();
	index = $(item).parent().children().index($(item));
	
	if(index == (length - 1)) {
		newIndex = 0;
	} else {
		newIndex = index + 1;
	}
	
	newItem = $("#featureDots a").eq(newIndex);
	slideFeatures(newItem);
}

function slideFeatures(item) {
	index = $(item).parent().children().index($(item));
	$("#features").animate({left:(index * -960)+"px"},300);
	
	$(item).siblings().each(function() {
		$(this).removeClass("on");
	});
	
	$(item).addClass("on");
}


//CONTACT

function checkContactForm() {
	if($('input[name="contactName"]').val() == "") {
		$('#contactOutput').html("You must provide your name.");
		return false;
	} else if($('input[name="contactEmail"]').val() == "") {
		$('#contactOutput').html("You must provide your email address.");
		return false;
	} else if($('textarea[name="contactMessage"]').val() == "") {
		$('#contactOutput').html("You must provide a message.");
		return false;
	} else {
		return true;
	}
}

function showContactForm() {
	$('#contactForm').fadeIn();
	$('#bgCurtain').fadeIn();
}

function closeContactForm() {
	$('#contactForm').fadeOut();
	$('#bgCurtain').fadeOut();
}

function closeContactConfirm() {
	$('#contactConfirm').fadeOut();
	$('#bgCurtain').fadeOut();
}

function closeContactFormAndConfirm() {
	$('#contactForm').fadeOut();
	$('#contactConfirm').fadeOut();
	$('#bgCurtain').fadeOut();
}
