window.addEventListener("load", function() { blogcrypt.init(); }, false); // a kiegészítő betöltődése
window.addEventListener("unload", function() {blogcrypt.uninit()}, false); // a kiegészítő megszünése

//----------------------------------------------------------------------------
//BLOGCRYPT BASE METHODS
//----------------------------------------------------------------------------
var blogcrypt =
{
	 perfs: null,
//extension init function
	init: function() 
	{
		var appcontent = document.getElementById("appcontent");   // browser
		if(appcontent)
		{
			appcontent.addEventListener("DOMContentLoaded", blogcrypt.onLoad, false); //pageload eseményre regisztrálás
		}
		this.prefs = Components.classes["@mozilla.org/preferences-service;1"]
         .getService(Components.interfaces.nsIPrefService)
         .getBranch("blogcrypt."); //a beállítások elkérése a beállításkezelőtől
		this.prefs.QueryInterface(Components.interfaces.nsIPrefBranch2);
		this.initperfs(); // a beállítások inicializálása
	// a szerkesztő mód beállítása
	 var edimode=this.prefs.getBoolPref("editormode"); 
	 if(edimode)
	 {
		document.getElementById("blogcrypt_editor_mode").label="Switch Editor mode OFF";
	 }
	 else
	 {
		document.getElementById("blogcrypt_editor_mode").label="Switch Editor mode ON";
	 }
	 
	},

	uninit: function() 
	{
	// mesterjelszó törlése
		blogcrypt_FileIO.remove_master_passwd();
	},

	initperfs: function()
	{
		// ha nincs érvényes editormode beállítás, akkor az érték legyen false
		if(!this.prefs.prefHasUserValue('editormode'))
			this.prefs.setBoolPref("editormode",false);
			
		// ha nincs érvényes keys beállítás, akkor az érték legyen ""
		if(!this.prefs.prefHasUserValue('keys'))
			this.prefs.setCharPref("keys","");
	},
	
	manual_decrypt_launch: function()
	{
			// az aktív browser-document elkérése
				var focusedWindow = new XPCNativeWrapper(document.commandDispatcher.focusedWindow,
	    			'document',
	   		 	'getSelection()');
			// a visszafejtés meghívása az aktív dokumentumra
				blogcrypt_decryption.deCrypt(focusedWindow.document);
	},
	
	switchEditorMode: function()
	{
		// az aktuális beállítás lekérése
		var blogcrypt_editor_mode=this.prefs.getBoolPref("editormode");
		// beállítás negálása
		blogcrypt_editor_mode=!blogcrypt_editor_mode;
		
		// az eredménytől függően a grafikus felület módosítása
		if(blogcrypt_editor_mode)
		{
			document.getElementById("blogcrypt_editor_mode").label="Switch Editor mode OFF";
		}
		else
		{
			document.getElementById("blogcrypt_editor_mode").label="Switch Editor mode ON";
		}
		// beállítás mentás
		this.prefs.setBoolPref("editormode",blogcrypt_editor_mode);
	},
	
	//on page load
	onLoad:function(aEvent)
	{
	// ha szerkesztő módban vagyunk, akkor ne csináljunk semmit
	if(blogcrypt.prefs.getBoolPref("editormode")) return;
	// ellenkező esetben az éppen betöltődő oldalt fejtsük vissza
	  var doc = aEvent.originalTarget; // doc is document that triggered "onload" event
      blogcrypt_decryption.deCrypt(doc);
	  
	},
	

	//settings window
	passmanager: function() 
	{
		window.openDialog("chrome://blogcrypt/content/passwordmanager.xul", "", "chrome,left=50,top=50,width=500,height=500",gBrowser.selectedBrowser.contentDocument.domain);
	}
}



