/*!
 * Ext JS Library 3.0.0
 * Copyright(c) 2006-2009 Ext JS, LLC
 * licensing@extjs.com
 * http://www.extjs.com/license
 */
Ext.BLANK_IMAGE_URL = '/k3/css/blank.gif';

Ext.mbox = function(){
    var msgCt;

    function createBox(t, s){
        return ['<div class="msg">',
                '<div class="x-box-tl"><div class="x-box-tr"><div class="x-box-tc"></div></div></div>',
                '<div class="x-box-ml"><div class="x-box-mr"><div class="x-box-mc"><h3>', t, '</h3>', s, '</div></div></div>',
                '<div class="x-box-bl"><div class="x-box-br"><div class="x-box-bc"></div></div></div>',
                '</div>'].join('');
    }
    return {
        msg : function(title, format){
            if(!msgCt){
                msgCt = Ext.DomHelper.insertFirst(document.body, {id:'msg-div'}, true);
            }
            msgCt.alignTo(document, 't-t');
            var s = String.format.apply(String, Array.prototype.slice.call(arguments, 1));
            var m = Ext.DomHelper.append(msgCt, {html:createBox(title, s)}, true);
            m.slideIn('t').pause(1).ghost("t", {remove:true});
        },

        init : function(){

            var lb = Ext.get('lib-bar');
            if(lb){
                lb.show();
            }
        }
    };
}();

Ext.onReady(Ext.mbox.init, Ext.mbox);

// old school cookie functions
var Cookies = {};
Cookies.set = function(name, value){
     var argv = arguments;
     var argc = arguments.length;
     var expires = (argc > 2) ? argv[2] : null;
     var path = (argc > 3) ? argv[3] : '/';
     var domain = (argc > 4) ? argv[4] : null;
     var secure = (argc > 5) ? argv[5] : false;
     document.cookie = name + "=" + escape (value) +
       ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) +
       ((path == null) ? "" : ("; path=" + path)) +
       ((domain == null) ? "" : ("; domain=" + domain)) +
       ((secure == true) ? "; secure" : "");
};

Cookies.get = function(name){
	var arg = name + "=";
	var alen = arg.length;
	var clen = document.cookie.length;
	var i = 0;
	var j = 0;
	while(i < clen){
		j = i + alen;
		if (document.cookie.substring(i, j) == arg)
			return Cookies.getCookieVal(j);
		i = document.cookie.indexOf(" ", i) + 1;
		if(i == 0)
			break;
	}
	return null;
};

Cookies.clear = function(name) {
  if(Cookies.get(name)){
    document.cookie = name + "=" +
    "; expires=Thu, 01-Jan-70 00:00:01 GMT";
  }
};

Cookies.getCookieVal = function(offset){
   var endstr = document.cookie.indexOf(";", offset);
   if(endstr == -1){
       endstr = document.cookie.length;
   }
   return unescape(document.cookie.substring(offset, endstr));
};


// ================================ lancement des outils communs
Ext.onReady(function(){
	
	Ext.QuickTips.init();
	//Ext.state.Manager.setProvider(new Ext.state.SessionProvider({state: Ext.appState}));
      Ext.state.Manager.setProvider(new Ext.state.CookieProvider());
   

})



// =================== fenetres =======================================
// ========= ouvrir une fenetre avec une url en iframe
function XWinframe(url,width,height,wid,params){
	if (!wid) wid = SHA1(url);
	if (!Ext.getCmp(wid)) {
		
		var xwin = new Ext.Window({
			layout:"fit"
			,id:wid
			,stateful:true
			,border:false
			,constrain   : true
			,bodyBorder:false
			,plain:true
			,width:width
			,height:height
			,autoScroll:false
			,closable:true
			,maximizable:true
			,minimizable:true
			,html:'<iframe id="'+wid+'frame" frameborder="0" width="100%" height="100%" src="'+url+'" style="background-color:#FFFFF"></iframe>'
			,tools:[{
				id:'refresh',
				on:{
					click: function(){
						Kgetbyid(wid+'frame').src= url;
						
					}
				}
			}]
			,listeners: {
				minimize: function(){
					xwin.hide();
				}
			}

		});
		if (Ext.getCmp("xmain")) xwin.render("xmain");
	}
	else {
		if (wid=="amewin") Kgetbyid("amewinframe").src=url;
		Ext.getCmp(wid).toFront();
		Ext.getCmp(wid).show();
	}
	if (width==0) xwin.maximize();
	Ext.getCmp(wid).show();
	var mframe = Kgetbyid(wid+'frame');
	mframe.onload = function(){
			xwin.setTitle(mframe.contentDocument.title);
	}
	
}
// === ouvrir une fenetre avec une iframe en pannel principal au niveau le plus haut possible
function XWinframetop(url,width,height,wid,params){
	var winparent = window;
	while (winparent.parent.XWinframe){
		winparent = winparent.parent;
	}
	winparent.XWinframe(url,width,height,wid,params);
}

// ========= ouvrir une fenetre avec une url en iframe
function XWingridame(urlgrid,urlame,width,height,params){
	wid = SHA1(urlgrid);
	if (!Ext.getCmp("X"+wid+"_win")) {
		var xwin = new Ext.Window({
			layout:"border"
			,bufferResize:true
			,hideMode:"visibility"
			,id:"X"+wid+"_win"
			,stateful:true
			,border:false
			,constrain:true
			,bodyBorder:false
			,plain:true
			,autoScroll:false
			,closable:true
			,maximizable:true
			,minimizable:true
			,width:width
			,height:height
			,items: [{
				region: 'center'
				,id:"X"+wid+"_gridregion"
				,layout:"fit"
				,header:false
				,collapsible: false
				,html:'<iframe id="X'+wid+'_gridframe" frameborder="0" width="100%" height="100%" src="'+urlgrid+'"></iframe>'
			},{
				region:'east'
				,id:"X"+wid+"_ameregion"
				,layout:"fit"
				,header:false
				,split: true
				,width:500
				,resizable:true
				,collapsible: true
				,collapseMode:"mini"
				,collapsed: true
				,animCollapse:false
				,html:'<iframe id="X'+wid+'_ameframe" frameborder="0" width="100%" height="100%" src="'+urlame+'"></iframe>'
			}]
			,tools:[{
				id:'refresh',
				on:{
					click: function(){
						Kgetbyid('X'+wid+'_gridframe').src = urlgrid;
						Kgetbyid('X'+wid+'_ameframe').src = urlame;
					}
				}
			}]
			,listeners: {
				minimize: function(){
					xwin.hide();
				}
			}

		});
		if (Ext.get("xmain")) xwin.render("xmain");
		else  xwin.render(Ext.getBody());
		Kgetbyid('X'+wid+'_gridframe').onload = function(){
			Ext.getCmp("X"+wid+"_win").setTitle(Kgetbyid('X'+wid+'_gridframe').contentDocument.title);
		}
		Ext.getCmp("X"+wid+"_win").show();
	}
	else {
		if (wid=="amewin") Kgetbyid("amewinframe").src=url;
		if (urlame!="") Kgetbyid("X"+wid+"_ameframe").src=urlame;
		Ext.getCmp("X"+wid+"_win").toFront();
		Ext.getCmp("X"+wid+"_win").show();
	}
	if (width==0) Ext.getCmp("X"+wid+"_win").maximize();
	
	
}

// ====================== files ====================================================
// == annulation de l'envoi d'un fichier par upload
function XFileInput_reset(fld)
{
	Ext.getCmp(fld+'_text').reset();
	var parent = document.getElementById(fld+'_xdiv');
	newFileInput = document.createElement('input');
	parent.removeChild(document.getElementById(fld));
	newFileInput.setAttribute('type', 'file');
	newFileInput.setAttribute('id', fld);
	newFileInput.setAttribute('title', 'Ajouter un fichier.');
	// ff only
	newFileInput.setAttribute('onChange', "Ext.getCmp('"+fld+"_text').setValue(document.getElementById('"+fld+"').value);");
	parent.appendChild(newFileInput);
	
	var formulaire = document.getElementById(fld);
	//ff
	//if (formulaire.addEventListener) { 
	  //formulaire.addEventListener("onchange",updateFileInput,false); 
	//} 
	//ie
	if (formulaire.attachEvent) { 
		formulaire.attachEvent("onchange",XFileInput_update); 
	}
}
function XFileInput_update(evt){
	if (evt.target? e_out=evt.target.id : e_out=evt.srcElement.id);
	Ext.getCmp(e_out+'_text').setValue(document.getElementById(e_out).value);
}

// == suppression d'un fichier lié
function XFile_delete(fid)
{
	Ext.Msg.show({
	   title:'Effacer ce fichier ?',
	   msg: 'Confirmez vous la suppression de ce fichier ?<br>La suppression est définitive.',
	   buttons: Ext.Msg.YESNO,
	   fn: function(btn){
		   if(btn=='yes') {
			   Ext.Ajax.request({
				   url: '/k3/functions/kdb_delete.php?table=k_files&id='+fid,
				   success: function(){
					   Ext.get('f'+fid).remove();
					},
				   failure: function(){Ext.Msg.alert('Erreur', 'Erreur lors de la tentative de suppression.');},
				   method:"GET"
				});
			   
		   }
	   },
	   //animEl: 'elId',
	   icon: Ext.MessageBox.QUESTION
	});
}

function XFile_preview(fpath)
{   
	var winparent = window;
	while (winparent.parent.XWinframe){
		winparent = winparent.parent;
	}
	winparent.XWinframe(fpath);

}
function XFile_edit(fid)
{   
	var winparent = window;
	while (winparent.parent.XWinframe){
		winparent = winparent.parent;
	}
	winparent.XWinframe('/k3/functions/file_edit.php?id='+fid,500,600,'filedit');

}
function XFile_download(fid)
{   
   document.getElementById('hidden_iframe').src="/k3/functions/kfiles_download.php?id="+fid;

}

// =================== alertes

function Xconfirm(msg,fnc){
	Ext.MessageBox.buttonText.yes = "Oui";
	Ext.MessageBox.buttonText.no = "Non";
	Ext.Msg.show({
	   title:'Confirmation'
	   ,msg: msg
	   ,buttons: Ext.Msg.YESNO
	   ,icon: Ext.MessageBox.QUESTION
	   ,fn: function(btn){
			if(btn=='yes') {
				eval(fnc);
			}
		}
	});	
}

function Xalert(msg){
	Ext.Msg.show({
	   title:'Alerte'
	   ,msg: msg
	   ,icon: Ext.MessageBox.ALERT
	});	
}

function Xinfo(msg){
	Ext.Msg.show({
	   title:'Information'
	   ,msg: msg
	   ,icon: Ext.MessageBox.INFO
	});	
}

function Xwarning(msg){
	Ext.Msg.show({
	   title:'Attention'
	   ,msg: msg
	   ,icon: Ext.MessageBox.WARNING
	});	
}