var Psa = { version: '1.3' };
Psa.$ = jQuery.noConflict();

// Fait un postBack sur la page actuelle.
Psa.doPostBack = function(controlId, serverEvent) {
	serverEvent = (serverEvent) ? 'call:' + serverEvent : '';
	__doPostBack(controlId.replace(/([^$])_/g, "$1$"), serverEvent);
};

// Soumet les éléments du formulaire vers une autre page par le biais de la méthode post.
Psa.postToUrl = function(url) {
	Psa.$('body').append('<form method="post" action="' + url + '" style="display: none;" />');
	var $o_form = Psa.$('form:first');
	var $n_form = Psa.$('form:last');
	var re = new RegExp('^__\\w.*');
	$o_form.find(':input, select').each(function() {
		var $obj = Psa.$(this);
		if ($obj.attr('type') != 'button' &&
			$obj.attr('type') != 'submit' &&
			!re.test($obj.attr('name'))) {
			$obj.clone().appendTo($n_form.selector);
		}
	});
	$n_form.get(0).submit();
};

// Plugin jQuery qui permet de centrer les éléments sélectionnés horizontalement et/ou verticalement.
(function($) {
	$.fn.center = function(options) {
		var defaults = {
			alignment: 'both'
		};
		options = $.extend(defaults, options);
	
		return this.each(function() {
			var $obj = $(this).css('position', 'relative');
			if (options.alignment == 'both' || options.alignment == 'horizontal') {
				var width = this.offsetWidth;
				var delta = (width % 2 == 0) ? width / 2 : parseInt(width / 2) + 1;
				$obj.css('left', '50%')
					.css('width', width + 'px')
					.css('margin-left', '-' + delta + 'px');
			}
			if (options.alignment == 'both' || options.alignment == 'vertical') {
				var height = this.offsetHeight;
				var delta = (height % 2 == 0) ? height / 2 : parseInt(height / 2) + 1;
				$obj.css('top', '50%')
					.css('height', height + 'px')
					.css('margin-top', '-' + delta + 'px');
			}
		});
	};
})(Psa.$);

// Récupére les paramètres de l'url et les retournes sous la forme d'un hash.
Psa.getQueryString = function() {
	var params = {};
	var keyValuePairs = window.location.search.substring(1).split(/&/);
	for (var i = 0; i < keyValuePairs.length; i++) {
		var keyValuePair = keyValuePairs[i].split(/=/);
		params[keyValuePair[0]] = keyValuePair[1];
	}
	return params;
};
