var timeout;
var retries = 0;
$(document).ready(function(){
	pageinit();
});

function pageinit(){
	
	if($('#preview').length){
		site_preview('#preview', $('#preview').attr('class'));
	}
	if($('.preview_img').length){
		$('.preview_img').each(function(){
			site_preview('#'+$(this).attr('id'), $(this).attr('class').replace('preview_img', '').replace(' ', ''), 100);
		});
	}
	if($('select.qty').length){
		$('select.qty').change(function(){
			update_basket();
			return true;
		});		
	}
	
	if($('input.remove').length){
		$('input.remove').change(function(){
			if(confirm('Are you sure you want to do that?')){
				update_basket();
			}else return false;
		});		
	}
	
	if($('#user_message_box').length){
		$('#user_message_box').fadeOut(4500);
	}
	
}

function site_preview(target_id, param, size){
	retries++;
	if(typeof(size) != "number") size = 400;
	$.ajax({
		type:'GET',
		url:'/thumbnail/'+param+'?size='+size,
		complete: function(response){
			clearTimeout(timeout);
			if(response.responseText.indexOf('queues')>0){
				$(target_id).parent().find('p.preview, p.error').replaceWith('<p class="queued">Your request has been queued... we will keep trying.</p>');
				$(target_id).html(response.responseText).css('background-image', 'none').css('padding', '0');
				timeout = setTimeout("site_preview('"+target_id+"','"+param+"', "+size+");", 6000);
			}else if(response.responseText.indexOf('files/') > 0){
				$(target_id).parent().find('p.preview,p.error').replaceWith('<p class="loaded">Preview loaded!</p>');
			}else if(response.responseText.length == 0){
				timeout = setTimeout("site_preview('"+target_id+"','"+param+"', "+size+");", 6000);
			}
			if(response.responseText.indexOf('files/')>0) $(target_id).html(response.responseText).css('background-image', 'none').css('padding', '0');
		},
		error:function(request_obj, status, error){
			$(target_id).parent().find('p.preview').replaceWith('<p class="error">Preview failed! Don\'t worry we will still process your request manually.</p>');
			$(target_id).css('background-image', 'none').css('border-width', '0').css('padding', '0');
			timeout = setTimeout("site_preview('"+target_id+"','"+param+"', "+size+");", 6000);
		},
		timeout:3500		
	});
}

function update_basket(){
	$('.update_basket').addClass('updating').attr('disabled', 'disabled').val('updating..');
	$('#update_basket').fadeTo("fast", 0.3);
	$.ajax({
		type:'POST',
		data: $('#update_basket').serialize(),
		url: '/basket/update.ajax',
		error:function(request, status, error){
			$('.update_basket').removeClass('updating').attr('disabled', '').val('update failed!');
		},
		complete:function(response){
			$('#update_basket').replaceWith(response.responseText);
			$('.update_basket').removeClass('updating').attr('disabled', '');
			pageinit();
		},
		timeout:2000
	});		
		
	
}