$(document).ready(function(){    
	$('.regenerateCaptcha').live("click",function () {
		$.ajax({url: '/image/ajaxreloadcaptcha/',type: 'get',
			   success: function (response) {
							$('#captchabox').html(response);
						}
			 });
	});

	
});


function empty(mixed_var) {
	var key;
	if (mixed_var === "" || mixed_var === 0 || mixed_var === "0"
			|| mixed_var === null || mixed_var === false
			|| mixed_var === undefined) {
		return true;
	}
	if (typeof mixed_var == 'object') {
		for (key in mixed_var) {
			return false;
		}
		return true;
	}
	return false;
}



function genericPrototype(url, successFunc, method, parameters) {
	method = empty(method) ? 'post' : method;
	successFunc = empty(successFunc) ? 'emptyFct' : successFunc;
	if (!empty(parameters)) {
		$.ajax( {
			url :url,
			type :method,
			data :parameters,
			success :eval(successFunc),
			error :eval(failureFunc)
		});
	} else {
		$.ajax( {
			url :url,
			type :method,
			success :eval(successFunc),
			error :eval(failureFunc)
		});
	}
}

function generiqueStatusCbk(transport, textStatus) {
	if (textStatus == 'success') {
		response = $.evalJSON(transport);
		if (0 == response.error) {
			// successMessageForm();
		} else {
			failureFunc(response);
			if (response.currentStatus == 1)
				$('#status_' + response.id).checked = true;
			else
				$('#status_' + response.id).checked = false;
		}
	} else {
		failureFunc(response);
	}
}

function generiqueActiveCbk(transport, textStatus) {
	if (textStatus == 'success') {
		response = $.evalJSON(transport);
		if (0 == response.error) {
			successMessageForm();
		} else {
			failureFunc(response);
			if (response.currentStatus == 1)
				$('#active_' + response.id).checked = true;
			else
				$('#active_' + response.id).checked = false;
		}
	} else {
		failureFunc(response);
	}
}

function failureFunc(response) {
	errorMessageForm(response.error);
}

function emptyFct(response) {
	return;
}

function errorMessageForm(msg,id) {

	var idDiv = empty(id) ? '#statusLayer' : '#'+id;
	
	if ($(idDiv) == undefined) {
		alert('Element "'+id+'" do not exist');
	}
	$(idDiv).show();
	showMsg = empty(msg) ? 'Error data save / Erreur de sauvegarde' : msg;
	$(idDiv).attr("class", 'errorBox');
	$(idDiv).html(showMsg);
//	$("html").animate( {
//		scrollTop :100
//	}, "slow");
	
	setTimeout(function(){
		$("#statusLayer").fadeOut("slow");
	}, 4000);
}


function removeRow(transport, textStatus) {
	if (textStatus == 'success') {
		response = $.evalJSON(transport);
		if (0 == response.error) {
			var result = parseInt($('#intResultTotal').innerHTML);
			$('#contentRow_' + response.row).hide();
			$('#intResultTotal').html(result - 1);
		} else {
			failureFunc(transport, textStatus);
		}
	} else {
		failureFunc(transport, textStatus);
	}
}

function removeRowList(transport, textStatus) {
	if (textStatus == 'success') {
		response = $.evalJSON(transport);
		if (0 == response.error) {
			$('#contentRow_' + response.row).hide();
			// verifie le nombre d'asset pour recharger le message vide
			var resultatPage = parseInt($('#intResultPage').val());
			var PageInfo = parseInt($('#PageInfo').val());
			var result = parseInt($('#intResultTotal').html());
			$('#intResultTotal').html(result - 1);
			$('#intResultPage').val(resultatPage - 1);
			// si le total des asset est vide on recharge la page
			if ($('#intResultTotal').html() == '0') {
				window.location.href = response.urlReload;
				// si le nombre d'asset est vide dans la page on recule d'une
				// page
			} else if ($('#intResultPage').val() == '0') {
				if (PageInfo > 1) {
					Page = PageInfo - 1;
				} else {
					Page = 1;
				}
				window.location.href = response.urlReload;
			}
		} else {
			failureFunc(transport, textStatus);
		}
	} else {
		failureFunc(transport, textStatus);
	}
}


function successMessageForm(msg) {
	var showMsg;

	if ($(idDiv) == undefined) {
		alert('Element "statusLayer" do not exist');
	}
	$(idDiv).show();
	var showMsg = empty(msg) ? 'Data saved / Sauvegardé' : msg;
	$(idDiv).attr("class", 'confirmBox');
	$(idDiv).html(showMsg);
	$("html").animate( {
		scrollTop :100
	}, "slow");
	
	setTimeout(function(){
		$("#statusLayer").fadeOut("slow");
	}, 4000);
	


}

function hide(layer) {
	$(layer).hide();
}

function show(layer) {
	$(layer).show();
}

function reloadPage() {
	window.location.reload();
}

function formsClass() {
	var host;

	return {
		$ : function() {
			return host = this;
		},

		saveAction : function(callback, msg) {
			//if (empty(callback))
				//var callback = 'formsSaveAction';
			//pendingMessageForm(msg);
			genericPrototype(host.urlSave, callback, 'post', $(host.formName).serialize());
		},
		
		saveActionNoajax : function(callback, msg) {
		//	pendingMessageForm(msg);
			$(host.formName).unbind('submit')
			$(host.formName).attr('action',host.urlSave);
			calling = $(host.formName)
	
				$(host.formName).trigger("submit")

		},
		
		saveCategoryAction : function() {
			if (empty(callback))
				var callback = 'formsSaveAction';
			//pendingMessageForm();
			genericPrototype(host.urlSave, 'saveCategoryActionCbk', 'post', $(host.formName).serialize());
		},
		urlSave :null,
		idElementUpload :null,
		formName :null
	}.$();
}

function formsSaveAction(transport, textStatus) {
	if (textStatus == 'success') {
		response = $.evalJSON(transport);
		if (empty(response.error)) {		
			$("input[type=file]").each( function() {
				ajaxFileUpload(response.urlSaveFile, $(this).attr("id"));
			})
			
			successMessageForm();
			if (response.type == 'insert') {
				setTimeout(function(){
					window.location.href = response.redirection;
				}, 2500);
			}
		} else {
			failureFunc(response);
		}
	} else {
		failureFunc(response);
	}
}

function reloadCaptcha(layer)
{
	if (!isset(layer)) return;
	var c1=jml.obj,c4=jml.server,c5=new displayScreenClass();
	var cx = new c4.connection();
	var id = layer;
	cx.url = '/ajax/ajaxreloadcaptcha';
	cx.onLoad = function(data) {
					var dta = decode(data);
					c1.set(id, 'innerHTML', data);
					c5.remove();
				};
	cx.connect();
}

