
function GAFSlideshow(elem, attrName, options) {
	this.elem = elem;
	this.attrName = attrName;
	this.feeds_url = elem.href;
	this.options = options;
}

GAFSlideshow.prototype.createSlideshow = function() {
	var parentNode = this.elem.parentNode;
	var ssNode = document.createElement('div');
	var loadingNode = document.createElement('div');

	var randN = new Date().toGMTString();

	ssNode.id = 'ajaxslideshow-'+randN;
	ssNode.className = 'gslideshow';
	loadingNode.className = 'feed-loading';
	loadingNode.innerHTML = 'Loading...';

	ssNode.appendChild(loadingNode);
	parentNode.removeChild(this.elem);
	parentNode.appendChild(ssNode);

	new GFslideShow(this.feeds_url, 'ajaxslideshow-'+randN, this.options);
}


GAFSlideshow.prototype.parseNode = function() {
	var rel = this.elem.getAttribute(this.attrName);

	if (rel == undefined || rel.indexOf('ajaxslideshow') == -1) {
		return false;
	} 

	return true;
}


AJAXSlideshowPlugin.prototype.consumeContainer = function() {
	var elems = document.getElementsByTagName('a');
	var cur = null;
	var index = 0;

	while ((cur = elems.item(index))) {
		var slideshow = new GAFSlideshow(cur, "rel", this.options);
		if (slideshow.parseNode()) this.slideshows.unshift(slideshow);
		else delete slideshow;

		index++;
	}
}


AJAXSlideshowPlugin.prototype.createSlideshow = function() {
	var slideshow;
	while (slideshow = this.slideshows.pop()) {
		slideshow.createSlideshow();
		delete slideshow;
	}
}

function AJAXSlideshowPlugin(options) {
	this.slideshows = new Array;
	this.options = options;
	this.consumeContainer();
	this.createSlideshow();
}

function AJAXSlideshowPluginInit(options) {
	var oldOnLoad = window.onload;

	var inst = function() {
		new AJAXSlideshowPlugin(options);
	}

	if (typeof window.onload != 'function') {
		window.onload = inst;
	} else {
		window.onload = function() {
			oldOnLoad();
			inst();
		}
	}

}

