var MenuC

function MenuCxClass() {
	this.CxMenu = null
	this.NomMenu = null
	this.O = null
	this.Obj = null
	this.Menus = {
		'Fiche' : [[
			{ text: "Modifier", onclick: { fn: this.MajFiche } },
			{ text: "Ajouter", onclick: { fn: this.AjFiche } },
			{ text: "Extraction", onclick: { fn: this.Extract } }
		],
		[
			{ text: "Déployer titres", onclick: { fn: ACreer } },
			{ text: "Afficher commentaires", onclick: { fn: ACreer } }
		]],
		'Zone' : [
			//{ text: "Ajouter", onclick: { fn: Init } }
		]
	}
}

MenuCxClass.prototype.TriggerCxMenu = function() {
	var Obj, O, Menu=''
	MenuC.O = O = this.contextEventTarget
	if ((Obj=ElemPAt(O,'cl1')))  Menu='Fiche'
	else if ((Obj=ElemPAt(O,'ZoneAction')))  Menu='Zone'
	MenuC.Obj = Obj;  MenuC.NomMenu = Menu
	if (!Obj) { this.cancel() }
}

MenuCxClass.prototype.beforeShowCxMenu = function() {
	//alert(NomMenu+crr+Lout(Obj))
	if (!MenuC.NomMenu)  return
	this.clearContent();
	var TM = MenuC.Menus[MenuC.NomMenu]
	//TM[0].text='Modifier' + ' '
	this.addItems(TM)
	this.setItemGroupTitle(LX(MenuC.Obj,'Titre'), 0);
	this.addItems(MenuC.Menus.Tous)
	this.setItemGroupTitle('Tous', 1);
	this.render()
}

MenuCxClass.prototype.MajFiche = function() {
	//alert(Lout(MenuC.Obj)
	//ExecAction([{"Action":"Form", "NomR":"SimpleFiche", "NomT":"l_base", "ValCle":LX(MenuC.Obj,'cl1'), "Bin":"SIP"}])
	MajFiche(MenuC.Obj)
	//var Ad = '/SIP/Fich.php?ValCle=' + LX(MenuC.Obj,'cl1') + '&id=' + LX(MenuC.Obj,'id') + AjUrl
	//window.open(Ad, '', 'toolbar=no,menubar=no,scrollbars=yes,resizable=yes,status=yes,width=740,height=600')
}

MenuCxClass.prototype.AjFiche = function() {
  //ExecAction([{"Action":"Form", "NomR":"SimpleFiche", "NomT":"l_base", "clp":LX(MenuC.Obj,'cl1'), "Lien":LX(MenuC.Obj,'Cle'), "TypL":LX(MenuC.Obj,'TypL'), "Bin":"SIP"}])
	MajFiche(MenuC.Obj, 1)
//   var Ad = '/SIP/Fich.php?clp=' + LX(MenuC.Obj,'cl1') + AjUrl
//   window.open(Ad, "", "toolbar=no,menubar=no,scrollbars=yes,resizable=yes,status=yes,width=740,height=600")
}

MenuCxClass.prototype.Extract = function() {
  //var Ad = MajListe(location.href, "Cle", LX(MenuC.Obj,'cl1'), "&", "=", true)
  var Ad = MajListe(location.href, 'Action', '[{"Action":"Win","MonoZone":"volet2","CodTree":' + LX(MenuC.Obj,'cl1') + '}]', "&", "=", true)
  window.open(Ad)
}


// ====================================             ===============================

if (window.Profil && Profil>0 && Profil<=10) {
	LoadMenu()
}


function LoadMenu() {
	MenuC = new MenuCxClass()
	var loader = new YAHOO.util.YUILoader({
		require: ['menu'],
		base: PathYui,
		loadOptional: true,
		onSuccess: InitY,
		onFailure: function(o) { alert("Erreur: " + YAHOO.lang.dump(o)); }
	});
	loader.insert();
}

function InitY() {
	var CxMenu
	MenuC.CxMenu = CxMenu = new YAHOO.widget.ContextMenu("mycontextmenu", { trigger:"Body", lazyload:true, itemdata:MenuC.Menus.Zone })
	CxMenu.subscribe("triggerContextMenu", MenuC.TriggerCxMenu);
  CxMenu.subscribe("beforeShow", MenuC.beforeShowCxMenu);
}


// ====================================      Popup YUI       ===============================

function WinClass(Nom, Width, btn) {
	this.Nom		= Nom
	this.Dial   = null
	this.Pgm    = ''
	this.w			= Width
	this.btn		= btn
}

WinClass.prototype.Init = function() {}
WinClass.prototype.Aff  = function(Opt) { if (this.Dial) { this.Dial.show();  Win.onSuccess(this.Dial) }  else  this.Load(); }

WinClass.prototype.Load = function() {
	var Dial
	var loader = new YAHOO.util.YUILoader({
		require: ['container','dragdrop','button','tabview'],
		base: PathYui,
		loadOptional: true,
		onSuccess: function() {
		  Aff(Win.Nom)
			Win.Dial = Dial = new YAHOO.widget.Dialog(Win.Nom, {
				x:'1', y:'1', width:Win.w, visible:false, modal:false, constraintoviewport:true, fixedcenter : true
			} );
			Dial.parent = Win
			Dial.validate = function() { alert('Dial.validate') };
			Dial.render();
			if (Win.btn)  Dial.cfg.setProperty("buttons", [ { text:'Valider', handler:Win.Submit, isDefault:true }, { text:'Quitter', handler:Win.Quit } ])
			Dial.show()
			Win.onSuccess(Dial)
		},
		onFailure: function(o) { alert("Erreur: " + YAHOO.lang.dump(o)); }
	});
	loader.insert()
}

WinClass.prototype.onSuccess = function(Dial) { }

WinClass.prototype.Quit = function() { this.hide(); }


// ====================================      Dialog       ===============================

function DialogClass(Nom, Width) {
	this.Nom		= Nom
	this.Dial   = null
	this.w			= Width
}

DialogClass.prototype.Init = function() {}
DialogClass.prototype.Aff  = function() { if (this.Dial) this.Dial.show();  else  this.Load(); }

DialogClass.prototype.Load = function() {
	var Dial
	var loader = new YAHOO.util.YUILoader({
		require: ['container','dragdrop','button','tabview'],
		base: PathYui,
		loadOptional: true,
		onSuccess: function() {
		  Aff(Dialog.Nom)
			Dialog.Dial = Dial = new YAHOO.widget.Dialog(Dialog.Nom, {
				x:'1', y:'1', width:Dialog.w, visible:false, modal:false, constraintoviewport:true, fixedcenter : true,
				buttons : [ { text:'Sauvegarder', handler:Dialog.Submit, isDefault:true }, { text:'Quitter', handler:Dialog.Quit } ]
			} );
			//new YAHOO.widget.Button('Submit');  var btnQ = new YAHOO.widget.Button("Quit");
			Dial.parent = Dialog
			Dial.validate = function() { alert('Dial.validate') };
			Dial.render();
			Dial.show()
			Dialog.onSuccess(Dial)
		},
		onFailure: function(o) { alert("Erreur: " + YAHOO.lang.dump(o)); }
	});
	loader.insert()
}

DialogClass.prototype.onSuccess = function(Dial) { }

DialogClass.prototype.Submit = function(e,Dial) {
	Dial.parent.onSubmit()
	this.hide();  //this.destroy();
}
DialogClass.prototype.onSubmit = function() { }

DialogClass.prototype.Quit = function() { this.hide(); }



// ====================================      Divers       ===============================

function LoadDialog(NomDialog, Width) {  // obsolète, mais conservé pour functions imbriqués et this
	var loader = new YAHOO.util.YUILoader({
		require: ['container','dragdrop','button','tabview'],
		base: PathYui,
		loadOptional: true,
		onSuccess: function() {
		  Aff(NomDialog)
			Dial = new YAHOO.widget.Dialog(NomDialog, {
				x:'1', y:'1', width:Width, visible:false, modal:false, constraintoviewport:true, fixedcenter : true,
				buttons : [ { text:'Sauvegarder', handler:DialBlogSubmit, isDefault:true }, { text:'Quitter', handler:DialBlogQuit } ]
			} );
			Dial.validate = function() { alert('Dial.validate') };
			Dial.render();
			Dial.show()
			if (App.onSuccess_Suite) { App.onSuccess_Suite(Dial);  App.onSuccess_Suite=null }
		},
		onFailure: function(o) { alert("Erreur: " + YAHOO.lang.dump(o)); }
	});
	loader.insert()

	var DialBlogSubmit = function() {
		if (App.DebSubmit)  { App.DebSubmit();  App.DebSubmit=null }
		//BD.Tables['l_base'].NomCle = 'Cle'    // Pour ne pas mémoriser le cl1 qd
		//var data = this.getData();  alert(JSON(data))
		this.hide();  //this.destroy();
		Submit('Form', {Suite:this.Submit})
	};
	var DialBlogQuit = function() { this.hide(); }
	var Submit = function() {
		var Param, re, Cle
		Cle = getContextZone('volet2', 'Cle')
		Param = ParamForm('Form');
		re = '[{Action:"Sov"},{Action:"Win",TypL:"SIT",ValCle:'+App.Vars.AjBlog_CleZone+'}]';     //alert('Sov'+crr+Param+AjUrl+crr+re);
		re = ExecAction(re,Param,{noPush:1, Suite:App.finSubmit});  if (Bug)  DivOther.innerHTML = re
	}
}


function ACreer() {
  alert("Cette fonctionnalité n'est pas encore implémentée")
}
// JavaScript Document
