G3PO Productivity PlugIn

By CloudKicker Last update Mar 12, 2009 — Installed 567 times.

There are 5 previous versions of this script.

// ==UserScript==
// @name         G3PO Productivity PlugIn 
// @namespace     http://www.CollectItStoreIt.com/GCloud_About.html
// @description   Adds Toodle Do, Zoho projects, and Zoho notebook to Gmail 3.0 
// @include       http*toodledo.com*
// @include       http*flowchart.com*
// @include       http*zoho.com*
// @include       http*mail.google.com*
// ==/UserScript==

/*
 * Version 1.2 March 12, 2009
 * Written by Benjamin Paige III
 * This script is Public Domain. You are welcome to use it in any way you like.
 */

//############################## Toodle-Do ##############################//  BEGIN 
if(G3PO) {
	var productName = "ToodleDo";
	var host = "www.toodledo.com";
	var createLink = "http://www.toodledo.com/folders.php";
	var icon = "http://www.toodledo.com/favicon.ico";
	var logo = "http://www.kolabora.com/news/images/toodledo_logo.gif";
	var urlRegEx = /toodledo/;
	
	G3PO.addSite(productName,host,createLink,icon,logo,urlRegEx);
	
	if(document.location.host == "www.toodledo.com")
		toodleDo_injectSiteClouds();
}

function toodleDo_injectSiteClouds() {
		
	var divs = document.getElementsByTagName("DIV");
	for(var i in divs)
		if(/^tab(on)?$/.test(divs[i].className))
			addToodleDoCloud(divs[i]);
			
	var overflowcount = 0;
	setInterval(function(){
		var taboverflow = document.getElementById("taboverflow");
		if(taboverflow.childNodes.length > 0 && taboverflow.childNodes.length != overflowcount) {
		
			addToodleDoCloud(taboverflow);
			
			overflowcount = taboverflow.childNodes.length;
		}
	},1000);
}

function addToodleDoCloud(targetNode) {
 
	var anchors = targetNode.getElementsByTagName("A");
	
	for (var i in anchors) {
		var btnGCloud = G3PO.getCloudIcon();
		targetNode.insertBefore(btnGCloud,anchors[i].nextSibling);
		btnGCloud.addEventListener("click", function(){G3PO.launchComposeGmail("","",this.previousSibling.innerHTML,this.previousSibling.href,"todo task tasks dos do",true)},false);
	}
}
//############################## Toodle-Do ##############################//  END 

//############################## Flowchart ##############################//  BEGIN 
if(G3PO) {

	var productName = "Flowchart";
	var host = "www.flowchart.com";
	var createLink = "http://www.flowchart.com/editor/";
	var icon = "http://www.xmenus.com/LabelLinks/icons/flowchart.gif";
	var logo = "http://www.tradevibes.com/ugenimage/logo/company_13699/50176.png";
	var urlRegEx = /flowchart\.com/i;
	
	G3PO.addSite(productName,host,createLink,icon,logo,urlRegEx);
	
	if(document.location.host == host)
		flowchart_injectSiteClouds();
}

function flowchart_injectSiteClouds() {

	var elements = document.getElementsByTagName("div");
	
	var done = false;
	setInterval(function(){
	if(!done)
		for(var i in elements) {
			
			if(elements[i].className == 'ObjectsPanel Panel') {
				done = true;
				var btnGCloud = G3PO.getCloudIcon();
				elements[i].appendChild(btnGCloud);
				btnGCloud.addEventListener("click", function(){G3PO.launchComposeGmail("","",flowchart_getName(),document.URL,"flowchart visio",true)},false);
				break;
			}
		}
	},1000);
}

function flowchart_getName() {

	var elements = document.getElementsByTagName("div");
	
	for(var i in elements)
		if(elements[i].className == "TabPart TabPart-center")
			return elements[i].innerHTML;
}

//############################## Flowchart ##############################//  END 


//############################## Notebook ##############################//  BEGIN 
if(G3PO) {

	var productName = "Notebook";
	var host = "notebook.zoho.com";
	var createLink = "https://notebook.zoho.com/nb/index.do";
	var icon = "http://www.zoho.com/images/notebook.gif";
	var logo = "http://notebook.zoho.com/nb/images/notelogo.gif";
	var urlRegEx = /notebook\.zoho/;
	
	G3PO.addSite(productName,host,createLink,icon,logo,urlRegEx);
	
	if(document.location.host == host)
		zoho_notebook_injectSiteClouds();
}

function zoho_notebook_injectSiteClouds() {
	
	var state = "";
	setInterval(function(){
		var bookContainer = document.getElementById('mybooklist');
		if(bookContainer && state != bookContainer.innerHTML) {
			state = bookContainer.innerHTML;
			var bookIcons  = bookContainer.getElementsByTagName('img');
			
			for(var i in bookIcons) {
						
				var btnGCloud = G3PO.getCloudIcon();
				btnGCloud.style.marginRight = "2px";
				bookIcons[i].parentNode.replaceChild(btnGCloud,bookIcons[i]);
				btnGCloud.addEventListener("click", function(){G3PO.launchComposeGmail("","",this.nextSibling.textContent,zoho_notebook_getIdLinkFromIcon(this),"draw scribble notebook",true)},false);
			}
		}
	},1000);
		
}

function zoho_notebook_getIdLinkFromIcon(icon) {

	var id = icon.parentNode.id;
	return "https://notebook.zoho.com/nb/index.do#bookId=" + id.match(/\d+/)[0];
}
//############################## Notebook ##############################//  END 

//############################## Project ##############################//  BEGIN 
if(G3PO) {

	var productName = "Project";
	var host = "projects.zoho.com";
	var createLink = "https://projects.zoho.com/login.do";
	var icon = "https://projects.zoho.com/images20/favicon.ico";
	var logo = "http://www.arflex.com.tw/tw/product/zoho/zoho-projects-logo.gif";
	var urlRegEx = /projects\.zoho/;
	
	G3PO.addSite(productName,host,createLink,icon,logo,urlRegEx);
	
	if(/projects.zoho.com/.test(document.location.host))
		zoho_projects_injectSiteClouds();
}

function zoho_projects_injectSiteClouds() {

	var projectContainer = document.getElementById('lnavcont');
	
	if(projectContainer) {
	
		var rows  = projectContainer.getElementsByTagName('tr');
		for(var i in rows) {
		
			var btnGCloud = G3PO.getCloudIcon();
			rows[i].lastChild.appendChild(btnGCloud);
			btnGCloud.addEventListener("click", function(){G3PO.launchComposeGmail("","",this.parentNode.previousSibling.childNodes[1].innerHTML,"https://projects.zoho.com?gCloud=" + this.previousSibling.id,"draw scribble notebook",true)},false);	
		}
	}
	
}
//############################## Project ##############################//  END