//Script file (C) MugiMugi - The Doujinshi DB Project
//Feel free to copy whatever from this script file but PLEASE credit me ( enought to keep a comment in the code & URL )


//Register and load up ajax..
var request = false;
try {
 request = new XMLHttpRequest();
} catch (trymicrosoft) {
 try {
   request = new ActiveXObject("Msxml2.XMLHTTP");
 } catch (othermicrosoft) {
   try {
     request = new ActiveXObject("Microsoft.XMLHTTP");
   } catch (failed) {
     request = false;
   }
 }
}

if (!request)
 alert("Ajax is not supported, many functions won't be supported with your webbrowser\nplease contact the admin and let you know about this error,also what browser you have and version.\n( Keep in mind VERY old browsers is NOT supported )!");



var right_menu_data = null;  //The right menu's global data.




//Register an Ajax event for voting....
function submiteVote(score, bookid, PHPSESSID) {
	loading('vote');
	var url = "/tools/vote.php?SCORE=" + escape(score) + "&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	request.open("GET", url, true);
	request.onreadystatechange = updatePageScore;
	request.send(null);
}
function updatePageScore() {
 if (request.readyState == 4) {
   if (request.status == 200) {
     var response = request.responseText.split("|");
			document.getElementById('vote').innerHTML = response[0];
			if (response[1] != '0' && response[1]!= null && response[1] != 0) {
				document.getElementById('score').innerHTML = response[1];
			}
   } else
     alert("Failed to vote!");
 }
}

//Register an Ajax event for voting....
function addsimilar(bookid, PHPSESSID) {
	loading('similar');
	var url = "/tools/similar.php?P=1&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	request.open("GET", url, true);
	request.onreadystatechange = updateSimilar;
	request.send(null);
}
function updateSimilar() {
 if (request.readyState == 4) {
   if (request.status == 200) {
			document.getElementById('similar').innerHTML = request.responseText;
   } else
     alert("Failed to add similar!");
 }
}

//Register an Ajax event for voting....
function addsimilar_step2(bookid, PHPSESSID) {
	var url = "/tools/similar.php?OID=" + escape(document.similar_data.OID.value) + "&P=2&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	loading('similar');
	request.open("GET", url, true);
	request.onreadystatechange = updateSimilar2;
	request.send(null);
	return false;
}

function updateSimilar2() {
 if (request.readyState == 4) {
   if (request.status == 200) {
			document.getElementById('similar_list').innerHTML = request.responseText;
			document.getElementById('similar').innerHTML = "";
   } else
     alert("Failed to add similar!");
 }
}
 

function del_similary(bookid, bookid2, PHPSESSID) {
	if(confirm('Are you sure you want to delete this item?'))
	{
		loading('similar_list');
		var url = "/tools/similar.php?P=3&ID=" + escape(bookid) + "&ID2=" + escape(bookid2) + "&PHPSESSID=" + escape(PHPSESSID);
		request.open("GET", url, true);
		request.onreadystatechange = updateSimilar_del;
		request.send(null);
	}
	
}

function updateSimilar_del() {
 if (request.readyState == 4) {
   if (request.status == 200) {
			document.getElementById('similar_list').innerHTML = request.responseText;
   } else
     alert("Failed to delete similar!");
 }
}


   
//Show loading ICON.
function loading(elementname) {
	document.getElementById(elementname).innerHTML = "<img src='/images/loader.gif'>";   	
}


//Hide left menu functions ^^ very simple but yet so effective.
function hide_right_menu() {
		if (right_menu_data != null)
			return;
		right_menu_data = document.getElementById('rightmenu_holder').innerHTML;
		document.getElementById('rightmenu_holder').innerHTML = hidden_text;
}

function show_right_menu() {
		if (right_menu_data == null)
			return;
		document.getElementById('rightmenu_holder').innerHTML = right_menu_data;
		right_menu_data = null;
}


//Favourite related scripts....

//Register an Ajax event for voting....
function addfavourite(bookid, PHPSESSID) {
	loading('favourite');
	var url = "/tools/favourite.php?P=ADD&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	request.open("GET", url, true);
	request.onreadystatechange = addfavouriteUPDATE;
	request.send(null);
}
//Register an Ajax event for voting....
function editfavourite(bookid, PHPSESSID) {
	loading('favourite');
	var url = "/tools/favourite.php?P=EDIT&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	request.open("GET", url, true);
	request.onreadystatechange = addfavouriteUPDATE;
	request.send(null);
}
function editfavouritecat(bookid, PHPSESSID) {
	loading('favourite');
	var url = "/tools/favourite.php?P=EDITCAT&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	request.open("GET", url, true);
	request.onreadystatechange = addfavouriteUPDATE;
	request.send(null);
}
function addfavouriteUPDATE() {
 if (request.readyState == 4) {
   if (request.status == 200) {
			document.getElementById('favourite').innerHTML = request.responseText;
   } else
     alert("Failed to add/edit favourite!");
 }
}


function addfavourite_step2(bookid, PHPSESSID) {
	var url = "/tools/favourite.php?info=" + document.favourite_data.info.value + "&cat=" + escape(document.favourite_data.cat.value) + "&newcat=" + escape(document.favourite_data.newcat.value) + "&P=ADD2&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	loading('favourite');
	request.open("GET", url, true);
	request.onreadystatechange = addfavourite_step2UPDATE;
	request.send(null);
	return false;
}
function editfavourite_step2(bookid, PHPSESSID) {
	var url = "/tools/favourite.php?info=" + escape(document.favourite_data.info.value) + "&cat=" + escape(document.favourite_data.cat.value) + "&newcat=" + escape(document.favourite_data.newcat.value) + "&P=EDIT2&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	loading('favourite');
	request.open("GET", url, true);
	request.onreadystatechange = addfavourite_step2UPDATE;
	request.send(null);
	return false;
}
function editfavouritecat_step2(bookid, PHPSESSID) {
	var url = "/tools/favourite.php?info=" + escape(document.favourite_data.info.value) + "&P=EDITCAT2&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	loading('favourite');
	request.open("GET", url, true);
	request.onreadystatechange = addfavourite_step2UPDATE;
	request.send(null);
	return false;
}
function delfavourite_step2(bookid, PHPSESSID) {
	var url = "/tools/favourite.php?P=DEL&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	loading('favourite');
	request.open("GET", url, true);
	request.onreadystatechange = addfavourite_step2UPDATE;
	request.send(null);
	return false;
}
function delfavouritecat_step2(bookid, PHPSESSID) {
	if(confirm('Are you sure you want to remove this category?\nIf you remove it, ALL linked favourites to this will also be removed.'))
	{
		var url = "/tools/favourite.php?P=DELCAT&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
		loading('favourite');
		request.open("GET", url, true);
		request.onreadystatechange = addfavourite_step2UPDATE;
		request.send(null);
		return false;
	}
	return false;
}
function addfavourite_step2UPDATE() {
 if (request.readyState == 4) {
   if (request.status == 200) {
			document.getElementById('favourite_list').innerHTML = request.responseText;
			document.getElementById('favourite').innerHTML = "";
   } else
     alert("Failed to add favourite!");
 }
}


function del_alt(bookid, PHPSESSID, namestr, addtype, delname) {
	if (delname=="") {
		alert("Cannot delete an empty name");
		return false;
	}
	
	var urls = "/tools/e_items.php?name=" + delname + "&P=" + addtype + "&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	var wrong = document.getElementById(namestr).innerHTML;
	loading(namestr);
	request.open("GET", urls, true);
	request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
	request.send(null);
}

function del_alt_obj(bookid, PHPSESSID, namestr, addtype, delname) {
	if (delname=="") {
		alert("Cannot delete an empty name");
		return false;
	}
	
	var urls = "/tools/e_objects.php?name=" + delname + "&P=" + addtype + "&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	var wrong = document.getElementById(namestr).innerHTML;
	loading(namestr);
	request.open("GET", urls, true);
	request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
	request.send(null);
}

function e_items_alt(bookid, PHPSESSID, namestr, addtype) {
	if (document.favourite_data.name.value=="") {
		alert("Alt Name is empty, please enter a value");
		return false;
	}
	
	var urls = "/tools/e_items.php?name=" + document.favourite_data.name.value + "&P=" + addtype + "&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	var wrong = document.getElementById(namestr).innerHTML;
	loading(namestr);
	request.open("GET", urls, true);
	request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
	request.send(null);
	document.favourite_data.name.value = ""; //Empty it.
	return false;
}

function e_objects_alt(bookid, PHPSESSID, namestr, addtype) {
	if (document.favourite_data.name.value=="") {
		alert("Alt Name is empty, please enter a value");
		return false;
	}
	
	var urls = "/tools/e_objects.php?name=" + document.favourite_data.name.value + "&P=" + addtype + "&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	var wrong = document.getElementById(namestr).innerHTML;
	loading(namestr);
	request.open("GET", urls, true);
	request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
	request.send(null);
	document.favourite_data.name.value = ""; //Empty it.
	return false;
}

function ajaxUPDATE(update, wrong) {
 if (request.readyState == 4) {
   if (request.status == 200) {
			document.getElementById(update).innerHTML = request.responseText;
   } else {
   		document.getElementById(update).innerHTML = wrong;
      alert("Failed!");
   }
 }
}


function searchq(dbtype, PHPSESSID, namestr, strname) {
	if (document.getElementById(strname).name.value=="") {
		alert("Search cannot be empty");
		return false;
	}
	var urls = "/tools/searchq.php?TYPE=" + escape(dbtype) +  " &NAME=" + document.getElementById(strname).name.value + "&P=search&PHPSESSID=" + escape(PHPSESSID);
	var wrong = document.getElementById(namestr).innerHTML;
	loading(namestr);
	request.open("GET", urls, true);
	request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
	request.send(null);
	return false;
}


function del_link(bookid, PHPSESSID, namestr, addtype, dbtype) {
	if (dbtype=="") {
		alert("Cannot delete an empty link");
		return false;
	}
	
	var urls = "/tools/e_items.php?TID=" + escape(dbtype) + "&P=" + addtype + "&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	var wrong = document.getElementById(namestr).innerHTML;
	loading(namestr);
	request.open("GET", urls, true);
	request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
	request.send(null);
}


function del_link_obj(bookid, PHPSESSID, namestr, addtype, dbtype) {
	if (dbtype=="") {
		alert("Cannot delete an empty link");
		return false;
	}
	
	var urls = "/tools/e_objects.php?TID=" + escape(dbtype) + "&P=" + addtype + "&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	var wrong = document.getElementById(namestr).innerHTML;
	loading(namestr);
	request.open("GET", urls, true);
	request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
	request.send(null);
}

function e_items_link2(bookid, PHPSESSID, namestr, addtype, dbtype) {
	var urls = "/tools/e_items.php?link=" + escape(document.author_data_link2.link.value) + "&TID=" + escape(dbtype) + "&TYPE=" + escape(document.author_data_link2.type2.value) + "&P=" + addtype + "&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	var wrong = document.getElementById(namestr).innerHTML;
	loading(namestr);
	request.open("GET", urls, true);
	request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
	request.send(null);
	document.favourite_data.name.value = ""; //Empty it.
	return false;
}

function e_items_link(bookid, PHPSESSID, namestr, addtype, dbtype) {
	if (document.link_data.link.value=="") {
		alert("Please select an item to add");
		return false;
	}
	
	var urls = "/tools/e_items.php?link=" + escape(document.link_data.link.value) + "&TID=" + escape(dbtype) + "&P=" + addtype + "&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	var wrong = document.getElementById(namestr).innerHTML;
	loading(namestr);
	request.open("GET", urls, true);
	request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
	request.send(null);
	document.favourite_data.name.value = ""; //Empty it.
	return false;
}

function e_objects_link(bookid, PHPSESSID, strname, addtype, dbtype, namestr) {
	var short = document.getElementById(strname);
	if (short.link.value=="") {
		alert("Didn't find the object");
		return false;
	}
	
	var urls = "/tools/e_objects.php?extra=" + short.extra.value + "&link=" + escape(short.link.value) + "&TID=" + escape(dbtype) + "&TYPE=" + escape(short.type2.value) + "&P=" + addtype + "&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
	var wrong = document.getElementById(namestr).innerHTML;
	loading(namestr);
	request.open("GET", urls, true);
	request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
	request.send(null);
	document.favourite_data.name.value = ""; //Empty it.
	return false;
}


function fill_conv(PHPSESSID) {
	if (document.post.rdate.value=="") {
		alert("Date not filled out");
		return;
	}	
	
	var urls = "/tools/date.php?date=" + escape(document.post.rdate.value) + "&P=CONV&PHPSESSID=" + escape(PHPSESSID);
	request.open("GET", urls, true);
	request.onreadystatechange = updateDate;
	request.send(null);
}

function updateDate() {
 if (request.readyState == 4) {
   if (request.status == 200) {
			var AMN = document.post.release;
			for ( var i = 0; i < AMN.options.length; i++ ) {
				if ( AMN.options[i].value== request.responseText ) {
					AMN.selectedIndex = i;
					break;
				}
			}
   } else {
      alert("Failed!");
   }
 }	
}


//Register an Ajax event for voting....
function parody_char_list(bookid, PHPSESSID) {
		var namestr = 'search_list_H';
		var wrong = document.getElementById(namestr).innerHTML;
		loading(namestr);
		var url = "/tools/e_objects.php?P=PLIST&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
		request.open("GET", url, true);
		request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
		request.send(null);
		return false;
}

//Register an Ajax event for voting....
function author_char_list(bookid, PHPSESSID) {
		var namestr = 'search_list_A';
		var wrong = document.getElementById(namestr).innerHTML;
		loading(namestr);
		var url = "/tools/e_objects.php?P=ALIST&ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
		request.open("GET", url, true);
		request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
		request.send(null);
		return false;
}



//Register an Ajax event for voting....
function submiteUserList(bookid, PHPSESSID) {
		var namestr = 'userlist';
		var wrong = document.getElementById(namestr).innerHTML;
		
		var trimmed = wrong.replace(/^\s+|\s+$/g, '') ;
	if(confirm('Do you want to ' + trimmed + ' this Item from your user list?')) {
	

		loading(namestr);
	
		var url = "/tools/userlist.php?ID=" + escape(bookid) + "&PHPSESSID=" + escape(PHPSESSID);
		request.open("GET", url, true);
		request.onreadystatechange = function() { ajaxUPDATE(namestr, wrong) };
		request.send(null);
	}
}



function select(idstr, namestr, extrastr, amn, db) {
	
	if (document.getElementById(db) ) {
			with ( document.getElementById(db)) {
				for ( var i = 0; i < link.options.length; i++ ) { 
					if ( link.options[i].value== idstr ) {
						link.selectedIndex = i;
						break;
					}
				}
				
				if ( i >= link.options.length ) {
					var INSERTME = new Option;
					INSERTME.value = idstr;
					INSERTME.text = namestr;
					if ( navigator.appName.indexOf('Netscape') != -1 ) {
						link.add(INSERTME, null);
					} else {
						link.add(INSERTME);
					}
					link.selectedIndex = link.options.length-1;
					
				}
				extra.value=extrastr;
				for ( var i = 0; i < type2.options.length; i++ ) {
					if ( type2.options[i].value== amn ) {
						type2.selectedIndex = i;
						break;
					}
				}
		}
	}
}










// -------------------------------------------------------------------
// Image Thumbnail Viewer Script- By Dynamic Drive, available at: http://www.dynamicdrive.com
// Last updated: July 7th, 2008- Fixed enlarged image not showing in IE sometimes
// -------------------------------------------------------------------

var thumbnailviewer={
enableTitle: true, //Should "title" attribute of link be used as description?
enableAnimation: true, //Enable fading animation?
definefooter: '<div class="footerbar">CLOSE X</div>', //Define HTML for footer interface
defineLoading: '<img src="/style/loading.gif" /> Loading Image...', //Define HTML for "loading" div

/////////////No need to edit beyond here/////////////////////////

scrollbarwidth: 16,
opacitystring: 'filter:progid:DXImageTransform.Microsoft.alpha(opacity=10); -moz-opacity: 0.1; opacity: 0.1',
targetlinks:[], //Array to hold links with rel="thumbnail"

createthumbBox:function(){
//write out HTML for Image Thumbnail Viewer plus loading div
document.write('<div id="thumbBox" onClick="thumbnailviewer.closeit()"><div id="thumbImage"></div>'+this.definefooter+'</div>')
document.write('<div id="thumbLoading">'+this.defineLoading+'</div>')
this.thumbBox=document.getElementById("thumbBox")
this.thumbImage=document.getElementById("thumbImage") //Reference div that holds the shown image
this.thumbLoading=document.getElementById("thumbLoading") //Reference "loading" div that will be shown while image is fetched
this.standardbody=(document.compatMode=="CSS1Compat")? document.documentElement : document.body //create reference to common "body" across doctypes
},


centerDiv:function(divobj){ //Centers a div element on the page
var ie=document.all && !window.opera
var dom=document.getElementById
var scroll_top=(ie)? this.standardbody.scrollTop : window.pageYOffset
var scroll_left=(ie)? this.standardbody.scrollLeft : window.pageXOffset
var docwidth=(ie)? this.standardbody.clientWidth : window.innerWidth-this.scrollbarwidth
var docheight=(ie)? this.standardbody.clientHeight: window.innerHeight
var docheightcomplete=(this.standardbody.offsetHeight>this.standardbody.scrollHeight)? this.standardbody.offsetHeight : this.standardbody.scrollHeight //Full scroll height of document
var objwidth=divobj.offsetWidth //width of div element
var objheight=divobj.offsetHeight //height of div element
var topposition=(docheight>objheight)? scroll_top+docheight/2-objheight/2+"px" : scroll_top+10+"px" //Vertical position of div element: Either centered, or if element height larger than viewpoint height, 10px from top of viewpoint
divobj.style.left=docwidth/2-objwidth/2+"px" //Center div element horizontally
divobj.style.top=Math.floor(parseInt(topposition))+"px"
divobj.style.visibility="visible"
},

showthumbBox:function(){ //Show ThumbBox div
thumbnailviewer.thumbLoading.style.visibility="hidden" //Hide "loading" div
this.centerDiv(this.thumbBox)
if (this.enableAnimation){ //If fading animation enabled
this.currentopacity=0.1 //Starting opacity value
this.opacitytimer=setInterval("thumbnailviewer.opacityanimation()", 20)
}
},


loadimage:function(link){ //Load image function that gets attached to each link on the page with rel="thumbnail"
if (this.thumbBox.style.visibility=="visible") //if thumbox is visible on the page already
this.closeit() //Hide it first (not doing so causes triggers some positioning bug in Firefox
var imageHTML='<img src="'+link.getAttribute("href")+'" style="'+this.opacitystring+'" />' //Construct HTML for shown image
if (this.enableTitle && link.getAttribute("title")) //Use title attr of the link as description?
imageHTML+='<br />'+link.getAttribute("title")
this.centerDiv(this.thumbLoading) //Center and display "loading" div while we set up the image to be shown
this.thumbImage.innerHTML=imageHTML //Populate thumbImage div with shown image's HTML (while still hidden)
this.featureImage=this.thumbImage.getElementsByTagName("img")[0] //Reference shown image itself
if (this.featureImage.complete)
thumbnailviewer.showthumbBox()
else{
this.featureImage.onload=function(){ //When target image has completely loaded
thumbnailviewer.showthumbBox() //Display "thumbbox" div to the world!
}
}
if (document.all && !window.createPopup) //Target IE5.0 browsers only. Address IE image cache not firing onload bug: panoramio.com/blog/onload-event/
this.featureImage.src=link.getAttribute("href")
this.featureImage.onerror=function(){ //If an error has occurred while loading the image to show
thumbnailviewer.thumbLoading.style.visibility="hidden" //Hide "loading" div, game over
}
},

setimgopacity:function(value){ //Sets the opacity of "thumbimage" div per the passed in value setting (0 to 1 and in between)
var targetobject=this.featureImage
if (targetobject.filters && targetobject.filters[0]){ //IE syntax
if (typeof targetobject.filters[0].opacity=="number") //IE6
targetobject.filters[0].opacity=value*100
else //IE 5.5
targetobject.style.filter="alpha(opacity="+value*100+")"
}
else if (typeof targetobject.style.MozOpacity!="undefined") //Old Mozilla syntax
targetobject.style.MozOpacity=value
else if (typeof targetobject.style.opacity!="undefined") //Standard opacity syntax
targetobject.style.opacity=value
else //Non of the above, stop opacity animation
this.stopanimation()
},

opacityanimation:function(){ //Gradually increase opacity function
this.setimgopacity(this.currentopacity)
this.currentopacity+=0.1
if (this.currentopacity>1)
this.stopanimation()
},

stopanimation:function(){
if (typeof this.opacitytimer!="undefined")
clearInterval(this.opacitytimer)
},


closeit:function(){ //Close "thumbbox" div function
this.stopanimation()
this.thumbBox.style.visibility="hidden"
this.thumbImage.innerHTML=""
this.thumbBox.style.left="-2000px"
this.thumbBox.style.top="-2000px"
},

cleanup:function(){ //Clean up routine on page unload
this.thumbLoading=null
if (this.featureImage) this.featureImage.onload=null
this.featureImage=null
this.thumbImage=null
for (var i=0; i<this.targetlinks.length; i++)
this.targetlinks[i].onclick=null
this.thumbBox=null
},

dotask:function(target, functionref, tasktype){ //assign a function to execute to an event handler (ie: onunload)
var tasktype=(window.addEventListener)? tasktype : "on"+tasktype
if (target.addEventListener)
target.addEventListener(tasktype, functionref, false)
else if (target.attachEvent)
target.attachEvent(tasktype, functionref)
},

init:function(){ //Initialize thumbnail viewer script by scanning page and attaching appropriate function to links with rel="thumbnail"
if (!this.enableAnimation)
this.opacitystring=""
var pagelinks=document.getElementsByTagName("a")
for (var i=0; i<pagelinks.length; i++){ //BEGIN FOR LOOP
if (pagelinks[i].getAttribute("rel") && pagelinks[i].getAttribute("rel")=="thumbnail"){ //Begin if statement
pagelinks[i].onclick=function(){
thumbnailviewer.stopanimation() //Stop any currently running fade animation on "thumbbox" div before proceeding
thumbnailviewer.loadimage(this) //Load image
return false
}
this.targetlinks[this.targetlinks.length]=pagelinks[i] //store reference to target link
} //end if statement
} //END FOR LOOP
//Reposition "thumbbox" div when page is resized
this.dotask(window, function(){if (thumbnailviewer.thumbBox.style.visibility=="visible") thumbnailviewer.centerDiv(thumbnailviewer.thumbBox)}, "resize")


} //END init() function

}

thumbnailviewer.createthumbBox() //Output HTML for the image thumbnail viewer
thumbnailviewer.dotask(window, function(){thumbnailviewer.init()}, "load") //Initialize script on page load
thumbnailviewer.dotask(window, function(){thumbnailviewer.cleanup()}, "unload")