
// Misc functions

function jQuery_FormToURL(formarray)
	{
	var result = '';
	var i,val;
	for (i = 0; i < formarray.length; i++)
		{
		val = jQuery('#'+formarray[i]).val();
		result = result+'&'+formarray[i]+'='+encodeURIComponent(val);
		}
	return(result);
	}

function htmlspecialchars(string)
{
	string = string.replace(/&/g,'&amp;');
	string = string.replace(/"/g,'&quot;');
	string = string.replace(/'/g,'&#039;');
	string = string.replace(/</g,'&lt;');
	string = string.replace(/>/g,'&gt;');
	return(string);
}

function YouHaveMail()
{
	var hidden,opacity,mail = jQuery('a.youhavemail img');
	if (jQuery(mail).data('hidden'))
		{
		hidden = false;
		opacity = 1;
		}
	else
		{
		hidden = true;
		opacity = 0.1;
		}
	jQuery(mail).clearQueue().animate({ opacity: opacity },100);
	jQuery(mail).data('hidden',hidden);
}

// jQuery extensions

jQuery.fn.extend({

	makeVisible: function(align,offset) {

		if (align == 'top')
			{
			jQuery(window).scrollTop(parseInt(jQuery(this).offset().top)+offset);
			return;
			}
		var elemBottom = parseInt(jQuery(this).offset().top+jQuery(this).height())+offset;
		var windBottom = parseInt(jQuery(window).scrollTop()+jQuery(window).height());
		if (elemBottom > windBottom)
			{
			jQuery(window).scrollTop(parseInt(jQuery(window).scrollTop())+(elemBottom-windBottom));
			var elemTop = parseInt(jQuery(this).offset().top);
			var windTop = parseInt(jQuery(window).scrollTop());
			if (elemTop < windTop) jQuery(window).scrollTop(elemTop);
			}
	}

});

// Ajax

jQuery(document).ready(function() {

	jQuery('body').append('<div id="loading"><p>Chargement...</p></div>');
	jQuery('body').append('<div id="loadingerr"><p>Une erreur s\'est produite, veuillez recommencer.</p></div>');
	jQuery('#loading').ajaxStart(function() {
		jQuery('#loadingerr').clearQueue().hide();
		jQuery(this).show();
		});
	jQuery('#loading').ajaxStop(function() {
		jQuery(this).delay(250).fadeOut('fast');
		});
	jQuery('#loadingerr').ajaxError(function() {
		jQuery('#loading').hide();
		jQuery(this).show().delay(3000).fadeOut('fast');
		});

	if (jQuery('a.youhavemail').length) setInterval("YouHaveMail()",400);

});
