//Gestionnaire de la page html
/**
 *
 * @access public
 * @return void
 **/

(function(){

function F(){}

Object.create = function( o ) {
F.prototype = o;
return new F();
};

})();

/*if (typeof Object.create !== 'function') {
	    Object.create = function (o) {
	        function F() {}
	        F.prototype = o;
	        return new F();
	    };
	}*/


/*Fin class heritage*/

 function Page_Mng(){

  this.forms= [];
  this.controls= [];

  this.addForm = function(name,j_form){
	var i = this.findForm(name);
    if (i == null) {
        this.forms.push({nom:name, value:j_form});
    } else {
       //alert('form existe replacing :' + j_form.$elem.attr('id'));
       /*var frm =this.getForm(i);
	   frm['value'].$elem.find("#calculer").unbind();
       frm['value'].$elem.remove();*/

	   this.forms[i]['value'] = j_form;
	}
  };

  this.addFormHandlers = function(formhandlers){
    /*var i = this.findForm(name);
    if (i == null) {
    	this.forms.push({nom:name, value:j_form});
    } else this.forms[i]['value'] = j_form;*/
    //var handlers = $.evalJSON(formhandlers);
    var handlers = formhandlers;

    for(form_id in handlers){
		//if (handlers[form_id]['control_handler']) {
			var plug_name='Formulaire';
			var ses_options_str={}
			if (handlers[form_id] && handlers[form_id]['plugin']) {
				plug_name = handlers[form_id]['plugin'];
			}

			if (handlers[form_id]) {
				 ses_options_str = json2str(handlers[form_id]);
			} else ses_options_str="{}";

			eval("$('#" + form_id + "')." + plug_name + "(" + ses_options_str + ")");
		//}

		//$("#" + form_id).Formulaire(handlers[form_id]);
    }
  };

  this.formCount=function(){
   return this.forms.length;
  }

  this.getForm = function(name){
     var i= this.findForm(name);
     if (i!=null) {
     	return this.forms[i]['value'];
     }  else {alert("Le formulaire " + name + " n'a pas été trouvé"); return null};
   };

    this.findForm= function(name)
    {
       for(var i=0; i< this.forms.length; i++)
       {
           if (this.forms[i]['nom'] == name) {
              return i;
           }
        }
        return null;
    };

    this.showLoading= function(div, replace)
    {
      var jq_div;
      if (typeof jq_div == 'string') {
          jq_div = $("#" + div);
      } else jq_div = div;

      if (replace == true) {
		jq_div.html("<img src='squelettes/images/loading.gif' />");
	  }
	  else {
		jq_div.addClass('loading').animeajax();
	  }
    };

    this.hideLoading= function(div)
    {
      var jq_div;
      if (typeof jq_div == 'string') {
          jq_div = $("#" + div);
      } else jq_div = div;

      jq_div.removeClass('loading');
    };
	
	this.setWindowClose = function(module) {
		if ($("#" + module).find(".entete_placeholder_window").length == 0) {
			$("<div class='entete_placeholder_window'><a id='fermer_mod_" + module +"' href='javascript:void(0)' ><img src='plugins/zpip/img/fermer_icone.png' alt='Fermer'></a></div>").insertBefore($("#" + module).find(".ajax:first,.ajaxbloc:first"));
		} 
	};
	
	this.alert_success_msg = function(titre,sous_titre){
		var j_msg = $("#msg_success");
		
		$("#cw_gedmask").show();
		j_msg.show();
		
		var wnd_height = $(window).height();
		var top = $(document).scrollTop() + ($(window).height()/2) - (j_msg.height()/2);// - $("#content").offset().top;
		var left = $(document).width()/2 - (j_msg.width()/2) ;
		
		var my_elem_offset = j_msg.offset();
		my_elem_offset.top = top;
		my_elem_offset.left = left;

		j_msg.offset(my_elem_offset);
		
		j_msg.find(".titre").html(titre);
		if (sous_titre)	j_msg.find(".sous_titre").html(sous_titre);
		
		
		
		setTimeout(function(){$("#msg_success").hide();$("#cw_gedmask").hide();},2000);
    };

    /*Ajoute un control avec son plugin dans la page
    Des controls peuvent ne pas appartenir à un formualaire
    */
   this.addControl=function(control_id,control_obj){
	 var i = this.findControl(control_id);
     if (i == null) {
    	this.controls.push({id:control_id,elt:control_obj});
     } else this.controls[i]['elt'] = control_obj;
   };
   /**/
   this.getControl=function(control_id){
     var i= this.findControl(control_id);
     if (i!=null) {
     	return this.controls[i]['elt'];
     }  else {alert("Le control " + control_id + " n'a pas été trouvé"); return null};
   };
   this.findControl=function(control_id){
     for(var i=0; i<this.controls.length; i++){
       if (this.controls[i]['id'] == control_id) {
       	  return i;
       	  break;
       }
     }
     return null;
   };
   
   this.is_comptabible_mask = function()
   {
	var bool = true;
	//version avant ie7 n'est pas compatible
	if (/MSIE (\d+\.\d+);/.test(navigator.userAgent)){ //test for MSIE x.x;
		
		var ieversion=new Number(RegExp.$1) // capture x.x portion and store as a number
		if (ieversion<=7)
		{
			bool = false;
		}
	}
	
	return bool;
   }

}

var PageMng = new Page_Mng();

