var q = new QJAXQueue()
var rId = 0
var xslt
var repeat = 0

logging__ = false;
xsltdebug = false;
var allBehaviors=new Array()
var rssUrl='http://training.gowls.com/popular.aspx'
var blogUrl='http://noahpeters.blogspot.com/atom.xml'
var xrssUrl='/rssreader/rssclient/rss2.xsl'
var xatomUrl='/rssreader/rssclient/atom03b.xsl'

QJAXRequest.prototype.parent=null

function blogLoad() {
	loadXsltReq(xatomUrl,blogUrl,'blog')
}

function rssLoad() {
	loadXsltReq(xrssUrl,rssUrl,'pop')
}

function loadXsltReq(url,feed,destination) {
	var r = new QJAXRequest()
    	r.method="GET"
	r.url=url
	r.callback=loadXsltRes
	r.callerror=function(id,xml,text,time,req) {alert(req.status);alert(text)}
	r.addHeader('Content-Type','text/xml; charset=utf-8')
	r.data = null
	r.feed=feed
	r.destination=destination
	rId=q.add(r)
}


function loadObjectReq(url,parent) {
	repeat++
    	var r = new QJAXRequest()
    	r.method="GET"
    	r.parent=parent
    	r.url=url
    	r.callback=loadObjectRes
	r.callerror=function(id,xml,text,time,req) {alert(req.status);alert(text)}
    	r.addHeader('Content-Type','text/xml; charset=utf-8')
    	r.data = null
	rId=q.add(r)
}

function loadXsltRes(id,xml,text,time,req) {
	try {
		xslt = xmlParse(text)
	} catch (ex) {
		alert (ex.toString())
	}
	xslt=xml
	loadObjectReq('/rssreader/proxyRequest?url=' + req.feed,document.getElementById(req.destination))
}

function loadObjectRes(id,xml,text,time,req) {
	if (!xml)
		xml = xmlParse(text)
	var html = xsltProcess(xml, xslt)
	var d = document.createElement('div')
	//var id=xml.getElementsByTagName('object')[0].id
	d.id = id
	d.className='object'
	d.innerHTML = html
	var behaviors = xml.getElementsByTagName('behavior')
	if (behaviors)
		for (var i=0;i<behaviors.length;i++) {
			if(!allBehaviors[behaviors[i].firstChild.nodeValue]) {
				eval(behaviors[i].firstChild.nodeValue + '= function() {alert("not loaded")}')
				loadBehavior(behaviors[i].firstChild.nodeValue)
				allBehaviors[behaviors[i].firstChild.nodeValue]=true
			}
			//eval('d[behaviors[i].attributes[1].value]=function(e) {'+behaviors[i].attributes[0].value+'(e)}')
		}
	if (req.parent) {
		req.parent.appendChild(d)
		try {req.parent.parentNode.style.display='block'} catch (ex) {}
	} else {
		document.body.appendChild(d)
	}
	d=document.getElementById(id)
	if (req.parent.id=='pop') 
		blogLoad();
}