$(document).ready(function(){
	replaceSubmits();
	ajaxEvents();
});

var currentContentPath = getContentPath(location.pathname),
	currentQueryString = location.search.substring(1);

function getContentPath(pathname){
	var response = $.ajax({
		url: '/content/includes/ajax-requests.php',
		type: 'GET',
		async: false,
		data: 'ajaxPageContent=true&ajaxPathName=' + pathname,
		dataType: 'html'
	}).responseText;
	
	return response;
}

function getPageContent(){
	$.ajax({
		url: currentContentPath,
		type: 'GET',
		data: 'ajaxPathName=' + location.pathname + '&' + currentQueryString,
		dataType: 'html',
		success: function(html){
			$('.content').children().remove();
			$('.content').append(html);
			replaceSubmits();
			ajaxEvents();
		}
	});
}
	
function ajaxEvents(){
	$('.lightboxAjax').click(function(e){
		e.preventDefault();
		e.stopPropagation();
		
		var dataIndex = $(this).attr('href').search('\\?'),
			data = $(this).attr('href').substring(dataIndex+1),
			url = getContentPath($(this).attr('href').substring(0, dataIndex)),
			type = 'GET';
		
		if($(this).hasClass('submit')){
			type = 'POST';			
		}
		
		$.ajax({
			url: url,
			type: type,
			data: data,
			dataType: 'html',
			success: function(html){
				ajaxLightbox(html);
			}
		});
	});
	
	$('.ajaxReturn').click(function(){	
		getPageContent();
	});
}

function ajaxLightbox(html){
	$('.lightbox').remove();
	$('.overlay').remove();
	
	$lightbox = $(this).lightbox({
		contents:html,
		className:'lightboxStyle00'
	});
	replaceSubmits();
	ajaxEvents();
}

function replaceSubmits(){
	$('.ajaxSubmit').each(function(){
		$node = $(this);
		updateSubmits($node);
		
		$(this).parent().find('input').each(function(){
			$(this).keyup(function(){
				updateSubmits($node);
				ajaxEvents();
			});
			$(this).change(function(){
				updateSubmits($node);
				ajaxEvents();					
			});
		});
		$(this).parent().find('textarea').each(function(){
			$(this).keyup(function(){
				updateSubmits($node);
				ajaxEvents();
			});									 
		});
	});
}

function updateSubmits($node){
	$node.next('.listStyle00').remove();
	var data = getSubmitData($node),
		$list = $('<ul class="listStyle00">').appendTo($node.parent()),
		action = $node.parent().attr('action');
		
	$node.find('input').each(function(){
		$list.append('<li class="' + $(this).attr('class') + '"><a class="lightboxAjax submit" href="' + action + '?' + data + $(this).attr('name') + '=' + $(this).val() + '">' + $(this).val() + '</a></li>');					
	});
	$node.parent().append('</ul>');
	$node.hide();
}

function getSubmitData($node){
	var data = '';
	$node.parent().find('input').each(function(){
		if($(this).attr('type') != 'submit'){
			if(($(this).attr('type') != 'radio') || ($(this).is(':checked'))){
				var val = $(this).val().replace(/"/g,'&quot;');
				data += $(this).attr('name') + '=' + val + '&';	
			}
		}
	});
	$node.parent().find('textarea').each(function(){
		var val = $(this).val().replace(/"/g,'&quot;');
		data += $(this).attr('name') + '=' + val + '&';	
	});
	
	return data;
}

function scrollContent(){
	var $olderLink = $('.older a'),
		prevData = '',
		url = $olderLink.attr('href').split('?')[0],
		data = $olderLink.attr('href').split('?')[1];
	
	$(window).scroll(function(){
		if(window.pageYOffset + $(window).height() == $(document).height()){
			if($olderLink.length){
				if(prevData != data){
					$.ajax({
						url: url,
						type: 'GET',
						data: data,
						dataType: 'html',
						success: function(html){
							$ajaxContent = $(html).find('.content').children();
							$('.content').append($ajaxContent);
							$olderLink.remove();
							$olderLink = $('.older a');
							$('.newer').remove();
							prevData = data;
							if($olderLink.length){
								url = $olderLink.attr('href').split('?')[0];
								data = $olderLink.attr('href').split('?')[1];
							}
							applyLightbox();
						}
					});
				}
			}
		}
	});
}

