/*--------------------------------------------------------------------------
 *  YOJA-WEB.COM : module popup
 *  Copyright (c) Jamal Chaqouri, Yohann Fontaine, of yoja team (http://www.yoja-web.com)
 *
 *  module popup is a yoja-web.com work.
 *  For details, see the yoja web site: http://www.yoja-web.com
/*--------------------------------------------------------------------------*/

var POPUP_WINDOW_CLASS = ".yojaPopup";

var popupParameters = new Array();

function initPopupWindows() {
	
 	$j(POPUP_WINDOW_CLASS).each(function(i){
		var popupWindow = $j(this);
		var params = getPopupParameters(popupWindow);
		
		params.trigger = params.trigger || "."+this.id+"Trigger";
		popupWindow.addClass(params.windowClass);
		if(params.windowClass == "jqmWindow"){
			popupWindow.prepend("<img src='http://yoja-web.com/commons/scripts/modules/popup/images/x.gif' title='close' alt='close' class='yojaClose'/>");
		}
		
		
		
		switch(params.animation){
			
			case "appear" :
				 params.onShow = function(hash) { hash.w.fadeIn(params.speed) };
				 params.onHide = function(hash) { hash.w.fadeOut(params.speed); if(hash.o) hash.o.remove(); };
			break;
			case "slideVertical" :
				 params.onShow = function(hash) { hash.w.slideDown(params.speed) };
				 params.onHide = function(hash) { hash.w.slideUp(params.speed); if(hash.o) hash.o.remove(); };
			break;
			case "slideHorizontal" :
				 params.onShow = function(hash) { hash.w.animate({ width:"show"}, params.speed);};
				 params.onHide = function(hash) { hash.w.animate({ width:"hide"}, params.speed); if(hash.o) hash.o.remove(); };
			break;
			case "grow" :
				 params.onShow = function(hash) { 
					 var wHeight=hash.w.height();
					 var wWidth=hash.w.width();
					 hash.w.css({top:"50%", left:"50%", margin:0, height:0, width:0});
					 hash.w.animate({ 
								width:wWidth,
								left:-wWidth/2,
								height:wHeight,
								top:-wHeight/2
								}, params.speed);
				 };
				 params.onHide = function(hash) {
					 var wHeight=hash.w.height();
					 var wWidth=hash.w.width();
					 hash.w.animate({ 
								width:0,
								height:0,
								margin:0,
								left:"50%",
								top:"50%"
								}, function (){$j(this).hide(); $j(this).css({width:wWidth,height:wHeight}); });
					
					 if(hash.o) hash.o.remove(); 
				};
			break;						
		
			default:
			break; 
		}
	
		popupWindow.jqm(params); 
		
	});

};


function getPopupParameters(popup){
  var params = 	popupParameters[popup.attr("id")] || [];
  params.onShow = params.onShow || function(hash) { hash.w.show() };
  params.onHide = params.onHide || function(hash) { hash.w.hide(); if(hash.o) hash.o.remove();};
  params.style = params.style || "basic";
  params.speed = params.speed || 250;
  params.overlayClass = params.overlayClass || "yojaOverlay";
  params.closeClass  = params.closeClass  || "yojaClose";
  params.windowClass = params.windowClass || "jqmWindow";
 // params.zIndex = params.zIndex || 1000000000;
  return params;
}

function openPopupWindow(){
	
	var popupStyle = arguments[1].style;
	var popupWindow = $j("#"+arguments[0]+":first");

	switch(popupStyle){
		
		case "custom":
		break;
		default:
			popupWindow.addClass("jqmWindow");
			popupWindow.prepend("<img src='x.gif' title='close' alt='close' class='yojaClose'/>");
		 break; 
	}

	 // open function
	var onShow = arguments[1].onShow || function(hash) { hash.w.show() }; 
	// close fonction
	var onHide = arguments[1].onHide ||  function(hash) { hash.w.hide(); if(hash.o) hash.o.remove();};

	if(arguments.length>1){
		$j.extend(arguments[1], {onShow:onShow, onHide : onHide});
		popupWindow.jqm(arguments[1]).jqmShow();
	} else {
		popupWindow.jqm({onShow: onShow, onHide : onHide}).jqmShow();
	}

}

DocumentReadyExecuter.addTraitement(initPopupWindows);
