/*
 * jqModal - Minimalist Modaling with jQuery
 *
 * Copyright (c) 2007 Brice Burgess <bhb@iceburg.net>, http://www.iceburg.net
 * Licensed under the MIT License:
 * http://www.opensource.org/licenses/mit-license.php
 * 
 * $Version: 2007.08.17 +r11
 * 
 */
(function($) {
$.fn.jqm=function(o){
var _o = {
zIndex: 3000,
overlay: 50,
overlayClass: 'jqmOverlay',
closeClass: 'jqmClose',
trigger: '.jqModal',
ajax: false,
target: false,
modal: false,
toTop: false,
onShow: false,
onHide: false,
onLoad: false
};
return this.each(function(){if(this._jqm)return; s++; this._jqm=s;
H[s]={c:$.extend(_o, o),a:false,w:$(this).addClass('jqmID'+s),s:s};
if(_o.trigger)$(this).jqmAddTrigger(_o.trigger);
});};

$.fn.jqmAddClose=function(e){hs(this,e,'jqmHide'); return this;};
$.fn.jqmAddTrigger=function(e){hs(this,e,'jqmShow'); return this;};
$.fn.jqmShow=function(t){return this.each(function(){if(!H[this._jqm].a)$.jqm.open(this._jqm,t)});};
$.fn.jqmHide=function(t){return this.each(function(){if(H[this._jqm].a)$.jqm.close(this._jqm,t)});};

$.jqm = {
hash:{},
open:function(s,t){var h=H[s],c=h.c,cc='.'+c.closeClass,z=(/^\d+$/.test(h.w.css('z-index')))?h.w.css('z-index'):c.zIndex,o=$('<div></div>').css({height:'100%',width:'100%',position:'fixed',left:0,top:0,'z-index':z-1,opacity:c.overlay/100});h.t=t;h.a=true;h.w.css('z-index',z);
 if(c.modal) {if(!A[0])F('bind');A.push(s);o.css('cursor','not-allowed');}
 else if(c.overlay > 0)h.w.jqmAddClose(o);
 else o=false;

 h.o=(o)?o.addClass(c.overlayClass).prependTo('body'):false;
 if(ie6){$('html,body').css({height:'100%',width:'100%'});if(o){o=o.css({position:'absolute'})[0];for(var y in {Top:1,Left:1})o.style.setExpression(y.toLowerCase(),"(_=(document.documentElement.scroll"+y+" || document.body.scroll"+y+"))+'px'");}}

 if(c.ajax) {var r=c.target||h.w,u=c.ajax,r=(typeof r == 'string')?$(r,h.w):$(r),u=(u.substr(0,1) == '@')?$(t).attr(u.substring(1)):u;
  r.load(u,function(){if(c.onLoad)c.onLoad.call(this,h);if(cc)h.w.jqmAddClose($(cc,h.w));e(h);});}
 else if(cc)h.w.jqmAddClose($(cc,h.w));

 if(c.toTop&&h.o)h.w.before('<span id="jqmP'+h.w[0]._jqm+'"></span>').insertAfter(h.o);	
 (c.onShow)?c.onShow(h):h.w.show();e(h);return false;
},
close:function(s){var h=H[s];h.a=false;
 if(A[0]){A.pop();if(!A[0])F('unbind');}
 if(h.c.toTop&&h.o)$('#jqmP'+h.w[0]._jqm).after(h.w).remove();
 if(h.c.onHide)h.c.onHide(h);else{h.w.hide();if(h.o)h.o.remove();} return false;
}};
var s=0,H=$.jqm.hash,A=[],ie6=$.browser.msie&&($.browser.version == "6.0"),
i=$('<iframe src="javascript:false;document.write(\'\');" class="jqm"></iframe>').css({opacity:0}),
e=function(h){if(ie6)if(h.o)h.o.html('<p style="width:100%;height:100%"/>').prepend(i);else if(!$('iframe.jqm',h.w)[0])h.w.prepend(i); f(h);},
f=function(h){try{$(':input:visible',h.w)[0].focus();}catch(e){}},
F=function(t){$()[t]("keypress",m)[t]("keydown",m)[t]("mousedown",m);},
m=function(e){var h=H[A[A.length-1]],r=(!$(e.target).parents('.jqmID'+h.s)[0]);if(r)f(h);return !r;},
hs=function(w,e,y){var s=[];w.each(function(){s.push(this._jqm)});
 $(e).each(function(){if(this[y])$.extend(this[y],s);else{this[y]=s;$(this).click(function(){for(var i in {jqmShow:1,jqmHide:1})for(var s in this[i])if(H[this[i][s]])H[this[i][s]].w[i](this);return false;});}});};
})(jQuery);

$.fn.center=function(){
	$(this).css({
		position: "absolute",
		margin	: "0",
		top		: $(window).height()/2 + document.documentElement.scrollTop - $(this).height()/2,
		left	: $(window).width()/2 + document.documentElement.scrollLeft - $(this).width()/2
	});
	return $(this);
}

function alert(text, titre) {
	if(!titre) { titre = ' '; }
	if ($('#alert').length) {
		$('#alert .jqmAlertContent').html(text);
		$('#alert .jqmAlertTitle h1').html(titre);
	} else {
		$('body').append($('<div class="jqmAlert" id="alert"><div class="jqmAlertWindow"><div class="jqmAlertTitle clearfix"><h1>'+titre+'</h1><a href="#" class="jqmClose"><em>Fermer</em></a></div><div class="jqmAlertContent">'+text+'</div></div></div>').jqm({zIndex:9999, modal:true, overlay:50, trigger:false}));
	}
	$('#alert').center().jqmShow();
}

function over(id, text, titre, suffix, modal, close, trigger, width, height, show, overflow, zIndex) {
	var closeLink = '';
	if(!suffix) { suffix = ''; }
	if(!titre) { titre = ' '; }
	if(!text && $('#'+id).length) {
		text = $('#'+id+' .jqmWindowContent'+suffix).html();
		if(!text) {
			text = $('#'+id).html();
		}
	}
	if(modal !== false) { modal = true}
	if(close === true) { close = 'jqmClose'+suffix; closeLink = '<a href="#" class="'+close+'"><em>Fermer</em></a>'; }
	if(!trigger) { trigger = false; }
	if(!width) { width = '500px'; } else { width += 'px'; }
	if(!height) { heigth = 'auto'; } else { height += 'px'; }
	if(!show) { show = false; }
	if(!overflow) { overflow = false; }
	if(!zIndex) { zIndex = 3000 }
	$(document).ready(function(){
		if ($('#'+id).length) {
			$('#'+id).remove();
		}
		$('body').append($(	'<div class="jqmWindow'+suffix+'" id="'+id+'" style="width:'+width+'; height:'+height+';'+((overflow === true) ? 'overflow:auto;' : '')+'">'
							+	'<div class="jqmWindowTitle'+suffix+' clearfix">'
							+		'<h1>'+titre+'</h1>'
							+		closeLink
							+	'</div>'
							+	'<div class="jqmWindowContent'+suffix+'">'+text+'</div>'
							+'</div>').jqm({
										zIndex		: zIndex,
										modal		: modal,
										closeClass	: close,
										overlay		: 50,
										trigger		: trigger,
										onShow		: function(hash){ hash.w.center().show(); }
									}));
		if(show) {
			$('#'+id).center().jqmShow();
		}
	});
}

function overShow(id, text, titre, suffix, modal, close, trigger, width, height, overflow, zIndex) {
	over(id, text, titre, suffix, modal, close, false, width, height, true, overflow, zIndex);
}

function overAjax(id, ajax, titre, suffix, modal, close, trigger, width, height, target, show, overflow, zIndex) {
	var closeLink = '';
	if(!suffix) { suffix = ''; }
	if(!titre) { titre = ' '; }
	if(modal !== false) { modal = true}
	if(close === true) { close = 'jqmClose'+suffix; closeLink = '<a href="#" class="'+close+'"><em>Fermer</em></a>'; }
	if(!trigger) { trigger = false; }
	if(!width) { width = '500px'; } else { width += 'px' }
	if(!height) { heigth = 'auto'; } else { height += 'px' }
	if(!target) { target = '.jqmWindowContent'}
	if(!show) { show = false; }
	if(!overflow) { overflow = false; }
	if(!zIndex) { zIndex = 3000 }
	$(document).ready(function(){
		if ($('#'+id).length) {
			$('#'+id).remove();
		}
		$('body').append($(	'<div class="jqmWindow'+suffix+'" id="'+id+'" style="width:'+width+'; height:'+height+';'+((overflow === true) ? 'overflow:auto;' : '')+'">'
							+	'<div class="jqmWindowTitle'+suffix+' clearfix">'
							+		'<h1>'+titre+'</h1>'
							+		closeLink
							+	'</div>'
							+	'<div class="jqmWindowContent'+suffix+'"><div class="loading" style="border:0px; background-color:transparent;">Veuillez patienter... <img src="/images/busy'+suffix+'.gif" alt="chargement" /></div></div>'
							+'</div>').jqm({
										zIndex		: zIndex,
										ajax		: ajax,
										modal		: modal,
										closeClass	: close,
										overlay		: 50,
										trigger		: trigger,
										target		: target+suffix,
										onLoad		: function(hash){ hash.w.center().show(); }
									}));
		if(show) {
			$('#'+id).center().jqmShow();
		}
	});
}

function overAjaxShow(id, ajax, titre, suffix, modal, close, trigger, width, height, target, overflow, zIndex) {
		overAjax(id, ajax, titre, suffix, modal, close, false, width, height, target, true, overflow, zIndex);
}