<?xml version="1.0" encoding="UTF-8" ?> 


<Module>


<ModulePrefs title="Fullpage Comics"


     height="50" 


     author="Sergio Haro" 


     scrolling="true"


     description="Displays multiple comics of your choosing. This version only works with Google Homepage"


     screenshot="http://scripts.mit.edu/~sharo/comics/comics.jpg"


     thumbnail="http://scripts.mit.edu/~sharo/comics/comictbn.png"


     author_affiliation="Massachusetts Institute of Technology"


     author_quote="What I thought I'd do, I 'd pretend to be one of those deaf mutes"


     author_email="sharo@mit.edu">

</ModulePrefs>


<UserPref name="9chickweedlane" display_name="9 Chickweed Lane" datatype="bool"/>


<UserPref name="adamathome" display_name="Adam @ Home" datatype="bool"/>


<UserPref name="andycapp" display_name="Andy Capp " datatype="bool"/>


<UserPref name="arloandjanis" display_name="Arlo and Janis " datatype="bool"/>


<UserPref name="bc" display_name="B.C." datatype="bool"/>





<UserPref name="baldo" display_name="Baldo" datatype="bool"/>


<UserPref name="ballardstreet" display_name="Ballard Street" datatype="bool"/>


<UserPref name="betty" display_name="Betty" datatype="bool"/>


<UserPref name="bignate" display_name="Big Nate" datatype="bool"/>


<UserPref name="bloomcounty" display_name="Classic Bloom County" datatype="bool"/>


<UserPref name="bobthesquirrel" display_name="Bob the Squirrel" datatype="bool"/>


<UserPref name="boondocks" display_name="Boondocks" datatype="bool"/>





<UserPref name="bornloser" display_name="Born Loser" datatype="bool"/>


<UserPref name="brewsterrockit" display_name="Brewster Rockit" datatype="bool"/>

<UserPref name="calvinandhobbes" display_name="Calvin and Hobbes" datatype="bool"/>

<UserPref name="candorville" display_name="Candorville" datatype="bool"/>


<UserPref name="cathy" display_name="Cathy" datatype="bool"/>


<UserPref name="clearbluewater" display_name="Clear Blue Water" datatype="bool"/>





<UserPref name="cleats" display_name="Cleats" datatype="bool"/>


<UserPref name="closetohome" display_name="Close to Home" datatype="bool"/>


<UserPref name="cowandboy" display_name="Cow and Boy" datatype="bool"/>


<UserPref name="dilbert" display_name="Dilbert" datatype="bool"/>


<UserPref name="doonesbury" display_name="Doonesbury" datatype="bool"/>


<UserPref name="drabble" display_name="Drabble" datatype="bool"/>

<UserPref name="theflyingmccoys" display_name="The Flying McCoys" datatype="bool"/>





<UserPref name="forbetterorforworse" display_name="For Better or For Worse" datatype="bool"/>


<UserPref name="foxtrot" display_name="FoxTrot" datatype="bool"/>


<UserPref name="frankandernest" display_name="Frank and Ernest" datatype="bool"/>


<UserPref name="fredbasset" display_name="Fred Basset" datatype="bool"/>


<UserPref name="frazz" display_name="Frazz" datatype="bool"/>





<UserPref name="fuscobrothers" display_name="The Fusco Brothers" datatype="bool"/>


<UserPref name="garfield" display_name="Garfield" datatype="bool"/>


<UserPref name="getfuzzy" display_name="Get Fuzzy" datatype="bool"/>


<UserPref name="heathcliff" display_name="Heathcliff" datatype="bool"/>


<UserPref name="housebroken" display_name="Housebroken" datatype="bool"/>





<UserPref name="herman" display_name="Herman" datatype="bool"/>


<UserPref name="inthebleachers" display_name="In the Bleachers" datatype="bool"/>


<UserPref name="janesworld" display_name="Jane's World" datatype="bool"/>


<UserPref name="jumpstart" display_name="Jump Start" datatype="bool"/>


<UserPref name="lacucaracha" display_name="La Cucaracha" datatype="bool"/>


<UserPref name="lostsheep" display_name="Lost Sheep" datatype="bool"/>





<UserPref name="luann" display_name="Luann" datatype="bool"/>


<UserPref name="marmaduke" display_name="Marmaduke" datatype="bool"/>


<UserPref name="momma" display_name="Momma" datatype="bool"/>


<UserPref name="monty" display_name="Monty" datatype="bool"/>


<UserPref name="nonsequitur" display_name="Non Sequitur" datatype="bool"/>





<UserPref name="onebighappy" display_name="One Big Happy" datatype="bool"/>


<UserPref name="overthehedge" display_name="Over the Hedge" datatype="bool"/>


<UserPref name="peanuts" display_name="Peanuts" datatype="bool"/>


<UserPref name="pearlsbeforeswine" display_name="Pearls Before Swine" datatype="bool"/>


<UserPref name="phd" display_name="PhD" datatype="bool"/>


<UserPref name="preteena" display_name="PreTeena" datatype="bool"/>





<UserPref name="pricklycity" display_name="Prickly City" datatype="bool"/>


<UserPref name="roseisrose" display_name="Rose is Rose" datatype="bool"/>


<UserPref name="rubes" display_name="Rubes" datatype="bool"/>


<UserPref name="shoe" display_name="Shoe" datatype="bool"/>


<UserPref name="speedbump" display_name="Speed Bump" datatype="bool"/>





<UserPref name="stonesoup" display_name="Stone Soup" datatype="bool"/>


<UserPref name="strangebrew" display_name="Strange Brew" datatype="bool"/>


<UserPref name="tankmcnamara" display_name="Tank McNamara" datatype="bool"/>


<UserPref name="coffee" display_name="Too Much Coffee Man" datatype="bool"/>


<UserPref name="thequigmans" display_name="The Quigmans" datatype="bool"/>





<UserPref name="wizardofid" display_name="Wizard of Id" datatype="bool"/>


<UserPref name="workingdaze" display_name="Working Daze" datatype="bool"/>


<UserPref name="ziggy" display_name="Ziggy" datatype="bool"/>


<Content type="html-inline">


<![CDATA[ 

<script type="text/javascript">


var yahooComics__MODULE_ID__ = new Array("9chickweedlane", "adamathome", "andycapp",
 "arloandjanis", "bc", "baldo", "ballardstreet",
"betty", "bignate","bloomcounty", "bobthesquirrel", "boondocks", "bornloser", 
"brewsterrockit", "candorville", "cathy", "clearbluewater","cleats", "closetohome",
"cowandboy", "dilbert", "doonesbury","drabble", "theflyingmccoys", "forbetterorforworse",
"foxtrot", "frankandernest","fredbasset", "frazz", "fuscobrothers", "garfield", 
"getfuzzy", "heathcliff", "housebroken", "herman", "inthebleachers","janesworld",
"jumpstart", "lacucaracha", "lostsheep", "luann", "marmaduke", "momma", "monty", 
"nonsequitur", "onebighappy","overthehedge", "peanuts", "pearlsbeforeswine", "preteena",
"pricklycity", "roseisrose", "rubes", "shoe", "speedbump",
"stonesoup","strangebrew", "tankmcnamara", "coffee", "thequigmans", "wizardofid","workingdaze", "ziggy");

var phdComics__MODULE_ID__ = new Array("phd");

var calvinComics__MODULE_ID__ = new Array("calvinandhobbes");

var yahoo = 0;
var phd = 1;
var calvin = 2;

function ComicSet__MODULE_ID__(set, url, comictype){
	this.comics = set;
	this.starturl = url;
	this.type = comictype;
}

var comicSets__MODULE_ID__ = new Array( 
new ComicSet__MODULE_ID__(yahooComics__MODULE_ID__, "http://news.yahoo.com/comics/", yahoo),
new ComicSet__MODULE_ID__(phdComics__MODULE_ID__, "http://www.phdcomics.com/comics.php", phd),
new ComicSet__MODULE_ID__(calvinComics__MODULE_ID__, "http://www4.webng.com/PeterSimonis/ch.asp", calvin)
);

var displayed_comics__MODULE_ID__ = new Array(yahooComics__MODULE_ID__.length + phdComics__MODULE_ID__.length + calvinComics__MODULE_ID__.length);

var prefs__MODULE_ID__ = new _IG_Prefs(__MODULE_ID__);

function buildYahoo__MODULE_ID__(response){
	subindex = response.indexOf("prevnext");
	
	if (subindex >= 0){
	
		// get image src
		startindex = response.indexOf("<img", subindex);
		startindex = startindex + 4;
		srcStart = response.indexOf("src=\"", startindex);
		srcStart = srcStart + 5;
		srcEnd = response.indexOf("\"", srcStart);
		this.imgsrc = response.substring(srcStart, srcEnd);
		
		//get image height
		hStart = response.indexOf("height=\"", startindex);
		hStart = hStart + 8;
		hEnd = response.indexOf("\"", hStart);
		this.imgHeight = parseInt(response.substring(hStart, hEnd ));
		
		//get image width
		wStart = response.indexOf("width=\"", startindex);
		wStart = wStart + 7;
		wEnd = response.indexOf("\"", wStart);
		this.imgWidth = parseInt(response.substring(wStart, wEnd));
		
		// get prev url
		endindex = response.indexOf("Previous", subindex);
		checkindex = response.indexOf("</a>", endindex);
		if(checkindex == (endindex + 8) ){
			endindex = endindex - 2;
			startindex = response.lastIndexOf("\"", endindex - 1);
			this.prev = "http://news.yahoo.com" + response.substring(startindex + 1, endindex);
		}else{
			this.prev = null;
		}
		
		// get next url
		endindex = response.indexOf("Next", subindex);
		checkindex = response.indexOf("</a>", endindex);
		if(checkindex == (endindex + 4) ){
			endindex = endindex - 2;
			startindex = response.lastIndexOf("\"", endindex - 1);
			this.next = "http://news.yahoo.com" + response.substring(startindex + 1, endindex);
		}else{
			this.next = null;
		}
		
		this.display();
		
	}
}

function buildPhd__MODULE_ID__(response){
	prevstring = "archive.php?comicid=";
	baseurl = "http://www.phdcomics.com/comics/";
	subindex = response.indexOf(prevstring);
	
	if (subindex >= 0){
	
		// get prev url
		startindex = subindex + prevstring.length;
		if( startindex < prevstring.length){
			this.prev = null;
		}else {
			endindex = response.indexOf(">", startindex);
			num = parseInt(response.substring(startindex, endindex));
			this.prev = baseurl + "archive.php?comicid=" + num;
		}

		
		// get image src
		startindex = response.indexOf(baseurl + "archive/", subindex);
		endindex = response.indexOf(" ", startindex);
		this.imgsrc = response.substring(startindex, endindex);	
		
		// get next url
		if(this.prev == null){
			this.next = null;
		}else {
			url = "archive.php?comicid=" + (num+2);
			if( response.indexOf( url, subindex) >= 0 ){
				this.next = baseurl + url;
			}else {
				this.next = null;
			}
		}

		
		this.display();
		
	}
}

function buildCalvin__MODULE_ID__(response){
	prevstring = "img id=\"content\" src=\"";
	baseurl = "http://www4.webng.com/PeterSimonis/";
	subindex = response.indexOf(prevstring);
	
	if (subindex >= 0){
	
		// get image src
		startindex = subindex + 22;
		endindex = response.indexOf("\"", startindex);
		this.imgsrc = response.substring(startindex, endindex);	
	
		// get prev url
		endindex = response.indexOf("\" title=\"Previous", subindex);
		if( endindex < 0){
			this.prev = null;
		}else {
			startindex = response.lastIndexOf("=\"", endindex) + 2;
			url = response.substring(startindex, endindex);
			this.prev = baseurl + url;
		}
		
		// get next url
		if(this.prev == null){
			this.next = null;
		}else {
			endindex = response.indexOf("\" title=\"Next",subindex);
			if( endindex < 0){
				this.next = null;
			}else {
				startindex = response.lastIndexOf("=\"", endindex) + 2;
				url = response.substring(startindex, endindex);
				this.next = baseurl + url;
			}
		}

		
		this.display();
		
	}
}

function display__MODULE_ID__(){

	table = _gel("table__MODULE_ID__");
	cell = table.rows[this.rownumber].cells[0];
	comichtml = "<div class=\"modbox\" style=\"" +
						"float: center;" +
						"text-align: center;\">" +
						
						"<div class=\"modtitle\"" +
								"style=\"text-align:center;" +
								"width: " + 602 + "px;\">" + 
								"<button style=\"margin-right: 100px;\" onclick=\"shrinkImage__MODULE_ID__('" + this.name + "')\">-</button>";
	if( this.prev != null ){
		comichtml += "<a onclick=\"displayed_comics__MODULE_ID__['" + this.name + "'].gotoPrev()\" style=\"margin-right: 20px; cursor: pointer; font-weight: bold; font-size: large;\">&lt&lt</a>";
	}else{
		comichtml += "<a style=\"margin-right: 20px; cursor: default; font-weight: bold;\">~</a>";
	}
		comichtml += this.name;
		
	if( this.next != null){
		comichtml += "<a onclick=\"displayed_comics__MODULE_ID__['" + this.name + "'].gotoNext()\" style=\"margin-left: 20px; cursor: pointer; font-weight: bold; font-size: large;\">&gt&gt</a>";
	}else{
		comichtml += "<a style=\"margin-left: 20px; cursor: default; font-weight: bold;\">~</a>";
	}
	
	comichtml += 	"<button style=\"margin-left: 100px;\" onclick=\"enlargeImage__MODULE_ID__('" + this.name + "')\">+</button>" +
						"</div>" + 	
						"<div class=\"modboxin\" style=\"height: " + this.imgHeight + "px;";
	if( this.imgWidth == "undefined" || 600 > this.imgWidth) {
		comichtml +=	"width: 600px;"
	} else {
		comichtml +=	"width: " + this.imgWidth + "px;"
	}
						
	comichtml +=		"background-color: white;" +
						"background-position: center;" + 
						"background-repeat: no-repeat;\">" +
						"<img id=\"" + this.name + "-Image\" src=\"" + this.imgsrc + "\"";
	if( this.imgHeight != "undefined"){
		comichtml += 	" height=\"" + this.imgHeight + "\"";
	}
	
	if( this.imgWidth != "undefined"){
		comichtml += 	" width=\"" + this.imgWidth + "\"";
	}
	comichtml +=	 	" />" + "</div>" + "</div>";
					
	cell.innerHTML = comichtml;
}

function gotoNext__MODULE_ID__(){
	if(this.next != null)
		MakeRow__MODULE_ID__(this.next, this.name);
}

function gotoPrev__MODULE_ID__(){
	if(this.prev != null)
		MakeRow__MODULE_ID__( this.prev, this.name);
}

function Comic__MODULE_ID__(comicName, type, url, row){
	this.name = comicName;
	
	this.rownumber = row;
	
	this.prev = null;
	
	this.next = null;
	
	this.imgsrc = null;
	
	this.imgHeight = "undefined";
	
	this.imgWidth = "undefined";
	
	if( type == yahoo){
		this.build = buildYahoo__MODULE_ID__;
		this.baseurl = url + this.name;
	}else if( type == phd) {
		this.build = buildPhd__MODULE_ID__;
		this.baseurl = url;
	}else if( type == calvin) {
		this.build = buildCalvin__MODULE_ID__;
		this.baseurl = url;
	}else {
		this.build = display__MODULE_ID__;
		this.baseurl = "";
	}
		
	this.display = display__MODULE_ID__;
		
	this.gotoNext = gotoNext__MODULE_ID__;
	
	this.gotoPrev = gotoPrev__MODULE_ID__;
}

function MakeRow__MODULE_ID__(comicURL, comicname){
		_IG_FetchContent( comicURL, _IG_Callback(observer__MODULE_ID__,comicname));

}

function observer__MODULE_ID__(response, comicname){
	displayed_comics__MODULE_ID__[comicname].build(response);
}

function MakeDisplay__MODULE_ID__(){

	comicscount = 0;

	for( k = 0; k < comicSets__MODULE_ID__.length; k = k +1){
		comicSet = comicSets__MODULE_ID__[k];
		for(i = 0; i < comicSet.comics.length; i = i+1){
	
			if (prefs__MODULE_ID__.getBool(comicSet.comics[i]) == true){
				comicname = comicSet.comics[i];
				table = document.getElementById("table__MODULE_ID__");
				table.insertRow(comicscount + 2);
				table.rows[comicscount + 2].insertCell(0);
				comic = new Comic__MODULE_ID__(comicname,comicSet.type, comicSet.starturl, comicscount + 2);
				displayed_comics__MODULE_ID__[comic.name] = comic;
				MakeRow__MODULE_ID__( comic.baseurl , comic.name );
				comicscount = comicscount + 1;
			}
		}
	}
}

function enlargeImage__MODULE_ID__(image){
	comic = displayed_comics__MODULE_ID__[image];
	comicImage = _gel(image+"-Image");
	comic.imgHeight = comicImage.height * 1.1;
	comic.imgWidth = comicImage.width * 1.1;
	comic.display();
}


function shrinkImage__MODULE_ID__(image){
	comic = displayed_comics__MODULE_ID__[image];
	if (comic.imgHeight < 25 || comic.imgWidth < 25){
		return;
	} else{
		comicImage = _gel(image+"-Image");
		comic.imgHeight = comicImage.height * 0.9;
		comic.imgWidth = comicImage.width * 0.9;
	}
	comic.display();
}

function goBack__MODULE_ID__(){
	 for (var name in displayed_comics__MODULE_ID__){
	 	displayed_comics__MODULE_ID__[name].gotoPrev();
	 }
	
}

function goForward__MODULE_ID__(){
	for (var name in displayed_comics__MODULE_ID__){
	 	displayed_comics__MODULE_ID__[name].gotoNext();
	 }
}

_IG_RegisterOnloadHandler(function () {

    	var old= _gel("footerwrap");
		var oldtext = old.innerHTML;
		var test = "<table align=Center id=\"table__MODULE_ID__\" ><tr bgcolor=\"#99C6D7\"> <td align=Center> <div class=\"modtitle\" style=\"font-size: larger;\"><a onclick=\"goBack__MODULE_ID__()\" style=\"margin-right: 20px; cursor: pointer; font-weight: bold; font-size: large;\">&lt&lt&lt</a>Comics<a onclick=\"goForward__MODULE_ID__()\" style=\"margin-left: 20px; cursor: pointer; font-weight: bold; font-size: large;\">&gt&gt&gt</a></div> </td> </tr>	<tr class=\"modtitle\" style=\"text-align: center;\"><td> Updated (Sept 11, 2007). Now featuring Calvin and Hobbes. </td> </tr></table>";
		old.innerHTML =  "<div id=\"Comics__MODULE_ID__\">"+ test +"</div>" + oldtext;
		MakeDisplay__MODULE_ID__();
    });


</script>

<div> Choose your comics in the Settings then view your comics at the bottom of the homepage. </div>


]]>


	</Content>


</Module>

