$(document).ready(function(){
						  	

$("#addCustom").live("click", function () {
	$(this).colorbox( {
		href :$(this).attr('lang'),
		open :true,
		width:"480", 
		height:"250",
		onComplete : function() {
			$('#back').bind('click', function() {
				$.fn.colorbox.close();
				$.validationEngine.closePrompt('.formError', true);
				return false;
			});
		}
	});
	return false;
});
						
	$("#lostpassword").validationEngine({ 
		scroll : false,
		inlineValidation: false,
		unbindEngine: false,
		success :  function(){ userRegistrationClass.validateLostPassword()}, 
		failure : function(){} 
	});
	
	$("#login").validationEngine({ 
		scroll :  false,
		unbindEngine: false,
		success : function(){ loginClassInstance.validateLogin()}, 
		failure : function(){} 
	});
	
	$("#loginform").validationEngine({ 
		unbindEngine: false,
		success : function(){ userRegistrationClass.validateLoginform()}, 
		failure : function(){} 
	});
	
	$("#signup").validationEngine({ 
		scroll: true,
		unbindEngine: false,
		success :  function(){ userRegistrationClass.validateSignUp();}, 
		failure : function(){} 
	});
	
	$("#changeProfil").validationEngine({ 
		unbindEngine: false,
		success :  function(){ userRegistrationClass.validateProfilChange();}, 
		failure : function(){} 
	});
	
	$("#changePassword").validationEngine({ 
		unbindEngine: false,
		success :  function(){ userRegistrationClass2.validatePasswordChange();}, 
		failure : function(){} 
	});
	
	$("#submitRecipe").validationEngine({ 
		unbindEngine: false,
		success :  function(){ userRegistrationClass.validateSubmitRecipe();}, 
		failure : function(){} 
	});
	
	$(".photoAdd").colorbox({width:640, height:350});
	
	// delete ingredient
	
	$("#deleteIngredientsSubmit").live("click",function () {
		deleteIngredientsAjax($(this).attr('rel'));
		return false;
	});
	
	// print grocery lis
	
	$('#printGroceryList').live("click", function () {
		 var url = $(this).attr('href') + '/type/' + $('#measure').val();
		 window.open(url, 'printWindow');
		 return false;
	 });
	
	
	// delete favourite
	 $('.delfavourite').live("click", function () {
			$(this).colorbox( {
				href :$(this).attr('lang'),
				open :true,
				onComplete : function() {
					$('#back').bind('click', function() {
						$.validationEngine.closePrompt('.formError', true);
						$.fn.colorbox.close();
						return false;
					});
				},
				onCleanup: function () {
				}
			});
			return false;
		});
	 
	$("#deleteFavouriteSubmit").live("click",function () {
		genericPrototype($(this).attr('rel'),'postdeletefavourite');
		return false;
	});
	
	
});


var dummyLayer;

function registrationClass() {
	var host;
	return {
		$ : function() {
			host = this;
			return this;
		},
		validateLostPassword : function() {
			genericPrototype(host.url3, 'genericJson', 'post', $('#lostpassword').serialize());
		},
		validateLogin : function() {
			//fbLogout();
			genericPrototype(host.url1, 'genericJson', 'post', $('#login').serialize());
		},
		validateLoginform : function() {
			//fbLogout();
			genericPrototype(host.url1, 'genericJson', 'post', $('#loginform').serialize());
		},
		validateSignUp : function() {
			genericPrototype(host.url2, 'genericJson', 'post', $('#signup').serialize());
		},
		validatePasswordChange : function() {
			genericPrototype(host.url5, 'genericJson', 'post', $('#changePassword').serialize());
		},
		validateProfilChange : function() {
			genericPrototype(host.url4, 'genericJson', 'post', $('#changeProfil').serialize());
		},
		validateSubmitRecipe : function () {
			genericPrototype(host.url6, 'genericJson', 'post', $('#submitRecipe').serialize());
		},
		url1 : null,
		url2 : null,
		url3 : null,
		url4 : null,
		url5 : null,
		url6 : null
	}.$();
}


//grocery list

function grocerylistClass() {
	var host;
	return {
			$ : function() {
			host = this;
			return this;
		},
		validateAddIngredient : function () {
			genericPrototype(host.urlSaveIngredient, 'updategrocerylistAction', 'post', $('#addCustomIngredient').serialize());
		}, 
		updatemeasurements : function (){
			var data = 'measure='+$('#measure').val();
			genericPrototype(host.urlUpdateMeasurements, 'genericJson', 'POST', data);
		},

		urlSaveCustom : null
	
	}.$();
}



function updategrocerylistAction (transport, textStatus) {
	
	// generic json
	genericJson(transport, textStatus);
	
	// generic success
	if (textStatus == 'success') {
		response = $.evalJSON(transport);
		if (empty(response.error)) {		
			if (!empty(response.customInsert)) {
				$('#customIngredientWrapper').show();
				if($('#customIngredients').children().children('tr').size() > 0) {
					$('#customIngredients tr:last').after(response.customInsert);
				} else {
					$('#customIngredients').html(response.customInsert);
				}
				$.validationEngine.closePrompt('.formError', true);
				$.fn.colorbox.close();
			}
		}
	} 
}


//ingredient

function deleteIngredient (url, all) {
	if(($("input[name='customCheck\\[\\]']:checked").size()>  0) || ($("input[name='check\\[\\]']:checked").size()>  0) || all) {
		$(this).colorbox( {
			href :url + '/all/' + all,
			open :true,
			onComplete : function() {
				$('#back').bind('click', function() {
					$.validationEngine.closePrompt('.formError', true);
					$.fn.colorbox.close();
					return false;
				});
			},
			onCleanup: function () {
			}
		});
	}
}

function deleteIngredientsAjax(url) {
	if(url.indexOf('all/1') > 0) {
		var data = '';
	} else {
		var data1 = data2 = '';
		
		if($("input[name='check\\[\\]']:checked").size()>  0){
			data1=$("input[name='check\\[\\]']:checked").serialize();
			nbelement1=$("input[name='check\\[\\]']:checked").size();
		}
	
		if($("input[name='customCheck\\[\\]']:checked").size()>  0){
			data2=$("input[name='customCheck\\[\\]']:checked").serialize();
			nbelement2=$("input[name='customCheck\\[\\]']:checked").size();
		}
		data = data1 + '&' + data2;
	}
	genericPrototype(url, 'postdeleteingredientAction', 'post', data);
}



function postdeleteingredientAction(transport, textStatus) {
	
	// generic json
	genericJson(transport, textStatus);
	
	// generic success
	if (textStatus == 'success') {
		response = $.evalJSON(transport);
		if (empty(response.error)) {	
			var i;
			var divId;
			
			if (!empty(response.all)) {
				$(".ingrRow").remove();
				$(".ingredientWrapper").remove();
			}
			
			$("input[name='check\\[\\]']:checked").parent().parent().remove();
			$("input[name='customCheck\\[\\]']:checked").parent().parent().remove();
			
			$(".ingrTable:not(:has(tr))").parent().remove();
			$("#customIngredients:not(:has(tr))").parent().hide();
			
			setTimeout('$.fn.colorbox.close()', 1000);
			
		}
	} 
}


function postdeletefavourite(transport, textStatus) {
	
	// generic json
	genericJson(transport, textStatus);
	
	// generic success
	if (textStatus == 'success') {
		response = $.evalJSON(transport);
		if (empty(response.error) && empty(response.home)) {	
			//content row
			$('#' + response.row).remove();
			
			// verifie le nombre d'asset pour recharger le message vide
			var resultatPage = parseInt($('#intResultPage'+ response.object).val());
			var PageInfo = parseInt($('#PageInfo'+ response.object).val());
			var result = parseInt($('#intResultTotal'+ response.object).html());
			$('#intResultTotal'+ response.object).html(result - 1);
			$('#intResultPage'+ response.object).val(resultatPage - 1);
			
			// si le total des asset est vide on recharge la page
			if ($('#intResultTotal'+ response.object).html() == '0') {
				
				if(response.urlReload != null)
					window.location.href = response.urlReload;
				else
					location.reload(true);
				// si le nombre d'asset est vide dans la page on recule d'une
				// page
			} else if ($('#intResultPage'+ response.object).val() == '0') {
				if (PageInfo > 1) {
					Page = PageInfo - 1;
				} else {
					Page = 1;
				}
				window.location.href = response.urlReload+'/page/'+Page;
			}
		}
        $.validationEngine.closePrompt('.formError', true);
        $.fn.colorbox.close();
	} 
}


