All pastes #825251 Raw Edit

Mine

public text v1 · immutable
#825251 ·published 2007-12-20 13:15 UTC
rendered paste body

/*
 * myqna - tektek.org GaiaOnline Toolbar
 *
 * Copyright (c) 2007 tektek Foundation
 * GaiaOnline content (c) Copyright 2003-2007 Gaia Interactive
 */
 
/*--------------- 
	
	INIT FUNCTIONS
	
----*/

	var myqnaPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("myqna.");

	try{			var searchquotes = myqnaPrefs.getCharPref("searchquotes");
	}catch (e){		myqnaPrefs.setCharPref("searchquotes", "Y");
	}

	try{myqnaPrefs.getIntPref("autoformat_messages");}catch(e){myqnaPrefs.setIntPref("autoformat_messages", 0);}
	try{myqnaPrefs.getIntPref("autoformat_guilds");}catch(e){myqnaPrefs.setIntPref("autoformat_guilds", 0);}
	try{myqnaPrefs.getIntPref("autoformat_pms");}catch(e){myqnaPrefs.setIntPref("autoformat_pms", 0);}
	try{myqnaPrefs.getIntPref("autoformat_comments");}catch(e){myqnaPrefs.setIntPref("autoformat_comments", 0);}

	try{myqnaPrefs.getIntPref("Formatstyle");}catch(e){myqnaPrefs.setIntPref("Formatstyle", 0);}
	try{myqnaPrefs.getIntPref("Format2style");}catch(e){myqnaPrefs.setIntPref("Format2style", 0);}
	try{myqnaPrefs.getIntPref("Format3style");}catch(e){myqnaPrefs.setIntPref("Format3style", 0);}
	
	try{myqnaPrefs.getIntPref("gaiaForgetMail");}catch(Exception){myqnaPrefs.setIntPref("gaiaForgetMail", 0);}
	try{myqnaPrefs.getIntPref("gaiaForgetComments");}catch(Exception){myqnaPrefs.setIntPref("gaiaForgetComments", 0);}
	try{myqnaPrefs.getIntPref("gaiaForgetJournals");}catch(Exception){myqnaPrefs.setIntPref("gaiaForgetJournals", 0);}
	try{myqnaPrefs.getIntPref("gaiaForgetSubscriptions");}catch(Exception){myqnaPrefs.setIntPref("gaiaForgetSubscriptions", 1);}
			
		
	try{	
		myqnaPrefs.getCharPref("Formatbegin");
		myqnaPrefs.getCharPref("Formatend");
	}
	catch(Exception){

		myqnaPrefs.setCharPref("Formatbegin", "[color=red]Text to go before each message\n");
		myqnaPrefs.setCharPref("Formatend", "Text at the end of each message[/color]\n");
	}

	try{	
		myqnaPrefs.getCharPref("Format2begin");
		myqnaPrefs.getCharPref("Format2end");
	}
	catch(Exception){
		myqnaPrefs.setCharPref("Format2begin", "[b]");
		myqnaPrefs.setCharPref("Format2end", "[/b]\n");
	}

	try{	
		myqnaPrefs.getCharPref("Format3begin");
		myqnaPrefs.getCharPref("Format3end");
	}
	catch(Exception){
		myqnaPrefs.setCharPref("Format3begin", "[size=9]\n");
		myqnaPrefs.setCharPref("Format3end", "[/size]");
	}

	try{	
		myqnaPrefs.getCharPref("MyLinksList");
	}
	catch(Exception){
		myqnaPrefs.setCharPref("MyLinksList", "");
	}


	try{			var searchquotes = myqnaPrefs.getIntPref("rightclick_menu");
	}catch (e){		myqnaPrefs.setIntPref("rightclick_menu", 0);
	}

	function toolbarLoad()
	{
		var myqnaPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("myqna.");

		var toolbar = document.getElementById("myqnaXULToolbar");

		if(myqnaPrefs.prefHasUserValue("display_self"))
		{
			if (myqnaPrefs.getBoolPref("display_self"))
				toolbar.setAttribute("collapsed", false);
			else
				toolbar.setAttribute("collapsed", true);
		}
		else
		{
			myqnaPrefs.setBoolPref("display_self", true);
			toolbar.setAttribute("collapsed", false);
		}
		
		try
		{			
			if (myqnaPrefs.getCharPref("MyLinksList"))
				if (myqnaPrefs.getCharPref("MyLinksList").length > 5)
				{
					document.getElementById("myqna_tmenu_mylinks").setAttribute("hidden", "false");
				}
		}
		catch(e){}
	}

	function toolbarUnload()
	{

		var myqnaPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("myqna.");

		var toolbar = document.getElementById("myqnaXULToolbar");

		if(toolbar.collapsed)
			myqnaPrefs.setBoolPref("display_self", false);
		else
			myqnaPrefs.setBoolPref("display_self", true);

	}
	
	// dear lord... 
	// to-do: clean
	
	function myqnaFetch(x)
	{	
		try
		{
			var myqnaQuery = new XMLHttpRequest();
			
			myqnaQuery.addr = x+'';
			myqnaQuery.open('get', x+'', true);
			myqnaQuery.onreadystatechange = function() {
			
				if (myqnaQuery.readyState == 4)
				{
					if (myqnaQuery.status == 200)
						{					
						var myqnaPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("myqna.");
						var data = myqnaQuery.responseText;
						
						if (data.indexOf('<input type="checkbox" id="autologin" name="autologin" />') == -1)
						{
							if (myqnaQuery.addr == addressMail && data.indexOf('<span class="postdetails">') > 0)
							{
								try{myqnaPrefs.getCharPref("gaiaFetchMail");}catch(Exception){myqnaPrefs.setCharPref("gaiaFetchMail", "");}
							
								data = data.substr(data.indexOf('<span class="postdetails">') + 26, 30);
								data = data.substr(0, data.indexOf('<'));
								data = escape(data);
								
								if (myqnaPrefs.getCharPref("gaiaFetchMail") != '' && myqnaPrefs.getCharPref("gaiaFetchMail") != data)
								{
									document.getElementById("myqna_tmenu_mygaia").style.listStyleImage = "url(chrome://myqna/skin/newpm.png)";
									document.getElementById("myqna_tmenu_mygaia_mail").style.listStyleImage = "url(chrome://myqna/skin/newpm.png)";
									document.getElementById('myqna_tmenu_mygaia_mail').label = 'Mail (new)';
								}
								
								myqnaPrefs.setCharPref("gaiaFetchMail", data);
							}
							
							if (myqnaQuery.addr == addressComments && data.indexOf('<p class="date">') > 0)
							{
								try{myqnaPrefs.getCharPref("gaiaFetchComments");}catch(Exception){myqnaPrefs.setCharPref("gaiaFetchComments", "");}
							
								data = data.substr(data.indexOf('<p class="date">') + 16, 30);
								data = data.substr(0, data.indexOf('<'));
								data = escape(data);
								
								if (myqnaPrefs.getCharPref("gaiaFetchComments") != '' && myqnaPrefs.getCharPref("gaiaFetchComments") != data)
								{
									document.getElementById("myqna_tmenu_mygaia").style.listStyleImage = "url(chrome://myqna/skin/new.png)";
									document.getElementById("myqna_tmenu_mygaia_comments").style.listStyleImage = "url(chrome://myqna/skin/new.png)";
									document.getElementById('myqna_tmenu_mygaia_comments').label = 'Profile Comments (new)';
								}
								
								myqnaPrefs.setCharPref("gaiaFetchComments", data);
							}
													
							if (myqnaQuery.addr == addressJournals && data.indexOf('<span class="postdetails">') > 0)
							{
								try{myqnaPrefs.getCharPref("gaiaFetchJournals");}catch(Exception){myqnaPrefs.setCharPref("gaiaFetchJournals", "");}
							
								data = data.substr(data.indexOf('<span class="postdetails">') + 26, 40);
								data = data.substr(0, data.indexOf('<'));
								data = escape(data);
								
								if (myqnaPrefs.getCharPref("gaiaFetchJournals") != '' && myqnaPrefs.getCharPref("gaiaFetchJournals") != data)
								{
									document.getElementById("myqna_tmenu_mygaia").style.listStyleImage = "url(chrome://myqna/skin/new.png)";
									document.getElementById("myqna_tmenu_mygaia_journals").style.listStyleImage = "url(chrome://myqna/skin/new.png)";
									document.getElementById('myqna_tmenu_mygaia_journals').label = 'Subscribed Journals (new)';
								}
								
								myqnaPrefs.setCharPref("gaiaFetchJournals", data);
							}
													
							if (myqnaQuery.addr == addressSubscriptions && data.indexOf('btn-unsubscribe') > 0)
							{
								try{myqnaPrefs.getCharPref("gaiaFetchSubscriptions");}catch(Exception){myqnaPrefs.setCharPref("gaiaFetchSubscriptions", "");}
							
								var fulldata = data.substr(data.indexOf('btn-unsubscribe'));
								fulldata = fulldata.substr(fulldata.indexOf('<tr') + 3);
								fulldata = fulldata.substr(0, fulldata.indexOf('</table>'));
								
								data = data.substr(data.indexOf('<td class="lastupdated">') + 24);
								data = data.substr(0, data.indexOf('<'));
								data = trim(data);
								data = escape(data);
								
								if (fulldata.indexOf('<tr') > 0)
								{
								
									var menu = document.getElementById("myqna-forum-subscriptions");

									for (var i = menu.childNodes.length - 1; i >= 0; i--)
									{
										menu.removeChild(menu.childNodes.item(i));
									}

									var subthreads = new Array();
									subthreads = fulldata.split('<tr');
									
									if (subthreads.length > 10)
										subthreads.length = 10;
									
									for (var i = 0; i < subthreads.length; i++)
									{
										var subthread_title = subthreads[i].substr(subthreads[i].indexOf('title="') + 7)
										subthread_title = subthread_title.substr(0, subthread_title.indexOf('"'));
										subthread_title = unescape(subthread_title);
										subthread_title = subthread_title.replace('&#039;', "'");
										
										if (subthread_title.length > 25)
											subthread_title = subthread_title.substr(0, 25) + '...';									
										
										var subthread_date = subthreads[i].substr(subthreads[i].indexOf('<td class="lastupdated">') + 25);
										subthread_date = subthread_date.substr(1, subthread_date.indexOf('<') - 1);	
										subthread_date = trim(subthread_date);
										
										var subthread_by = subthreads[i].substr(subthreads[i].lastIndexOf('<a href="/prof') + 14);
										var subthread_by = subthread_by.substr(subthread_by.indexOf('>') + 1);
										var subthread_by = subthread_by.substr(0, subthread_by.indexOf('<'));
										
										if (subthread_by.length > 15)
											subthread_by = subthread_by.substr(0, 15) + '...';
										
										var subthread_label = subthread_title + ' (' + subthread_date + ' by ' + subthread_by + ')';
										
										var subthread_url = subthreads[i].substr(subthreads[i].lastIndexOf('<a class="gotolastpost" href="') + 30);									
										subthread_url = subthread_url.substr(0, subthread_url.indexOf('"'));
										subthread_url = 'http://www.gaiaonline.com' + subthread_url;
																							
										tempItem = document.createElement("menuitem");	
										tempItem.setAttribute("label", subthread_label);
										tempItem.setAttribute("tooltiptext", subthread_label);
										tempItem.setAttribute("onclick","myqnaURL('"+escape(subthread_url)+"',event);");
										//tempItem.setAttribute("onclick","alert("+subthread_url+");");
										tempItem.setAttribute("class","menuitem-iconic");
										menu.appendChild(tempItem);
									}
								}
								
								try{myqnaPrefs.getIntPref("gaiaForgetSubscriptions");}catch(Exception){myqnaPrefs.setIntPref("gaiaForgetSubscriptions", 1);}
		
								if (myqnaPrefs.getIntPref("gaiaForgetSubscriptions") == 0)
								{
									if (myqnaPrefs.getCharPref("gaiaFetchSubscriptions") != '' && myqnaPrefs.getCharPref("gaiaFetchSubscriptions") != data)
									{
										document.getElementById("myqna_tmenu_mygaia").style.listStyleImage = "url(chrome://myqna/skin/new.png)";
										document.getElementById("myqna_tmenu_mygaia_threads").style.listStyleImage = "url(chrome://myqna/skin/new.png)";
										document.getElementById('myqna_tmenu_mygaia_threads').label = 'Subscribed Threads (new)';
									}
								}
								
								myqnaPrefs.setCharPref("gaiaFetchSubscriptions", data);
							}
							
							
						}
						
						delete myqnaQuery;
						delete data;
						delete fulldata;
					}
					else
					{
						delete myqnaQuery;
						delete data;
					}
				}
			};
			myqnaQuery.send(null);
		}
		catch(e)
		{	
			delete myqnaQuery;
			delete data;
		}
	}
	
	// en taro tassadar
	
	var addressMail = 'http://www.gaiaonline.com/profile/privmsg.php';
	var addressComments = 'http://www.gaiaonline.com/profiles/?mode=comments';
	var addressJournals = 'http://www.gaiaonline.com/journal/?mode=list&sub_mode=subscription';
	var addressSubscriptions = 'http://www.gaiaonline.com/forum/subscription';
	
	function myqna_getMail()
	{
		var myqnaPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("myqna.");
		try{myqnaPrefs.getIntPref("gaiaForgetMail");}catch(Exception){myqnaPrefs.setIntPref("gaiaForgetMail", 0);}
	
		if (myqnaPrefs.getIntPref("gaiaForgetMail") == 0)
		{
			myqnaFetch(addressMail);
			setTimeout('myqna_getMail()', getTimeLapse());
		}
	}	
	
	function myqna_getComments()
	{
		var myqnaPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("myqna.");
		try{myqnaPrefs.getIntPref("gaiaForgetComments");}catch(Exception){myqnaPrefs.setIntPref("gaiaForgetComments", 0);}
	
		if (myqnaPrefs.getIntPref("gaiaForgetComments") == 0)
		{
			myqnaFetch(addressComments);
			setTimeout('myqna_getComments()', getTimeLapse());
		}
	}
	function myqna_getJournals()
	{
		var myqnaPrefs = Components.classes["@mozilla.org/preferences-service;1"].getService(Components.interfaces.nsIPrefService).getBranch("myqna.");
		try{myqnaPrefs.getIntPref("gaiaForgetJournals");}catch(Exception){myqnaPrefs.setIntPref("gaiaForgetJournals", 0);}
	
		if (myqnaPrefs.getIntPref("gaiaForgetJournals") == 0)
		{
			myqnaFetch(addressJournals);
			setTimeout('myqna_getJournals()', getTimeLapse());
		}
	}
	function myqna_getSubscriptions()
	{
		myqnaFetch(addressSubscriptions);
		setTimeout('myqna_getSubscriptions()', getTimeLapse());
	}

	setTimeout('myqna_getMail()', 6500);
	setTimeout('myqna_getComments()', 10500);
	setTimeout('myqna_getJournals()', 15500);
	setTimeout('myqna_getSubscriptions()', 20500);
		
	function getTimeLapse()
	{
		return (Math.floor(Math.random()*4) + 5) * 60000;
	}