/**
 * @author thespiritx
 */
$RSS = function(l,u,n,o,s,c){
	var p = $RSS.elm(l,u,n);
	$RSS.loading(p,'Loading',(o != null && o.indexOf("altload") >= 0)?true:false);
	$RSS.ajax.addQueue(p,u,n,o,s,c);
};
$RSS.ajax = function(){
	if (typeof(XMLHttpRequest) == "undefined") {
	  XMLHttpRequest = function() {
	    try { return new ActiveXObject("Msxml2.XMLHTTP.6.0"); }
	      catch(e) {}
	    try { return new ActiveXObject("Msxml2.XMLHTTP.3.0"); }
	      catch(e) {}
	    try { return new ActiveXObject("Msxml2.XMLHTTP"); }
	      catch(e) {}
	    try { return new ActiveXObject("Microsoft.XMLHTTP"); }
	      catch(e) {}
	    throw new Error("This browser does not support XMLHttpRequest.");
	  };
	}
};
$RSS.ajax.processKey = true;
$RSS.ajax.queue = [];
$RSS.ajax.addQueue = function(p,u,n,o,s,c){
	$RSS.ajax.queue[$RSS.ajax.queue.length] = {'p':p,'u':u,'n':n,'o':o,'s':s,'c':c};
	$RSS.ajax.processQueue();
};
$RSS.ajax.processQueue = function(){
	if(typeof $RSS.call == 'undefined' || $RSS.call._complete == true){
		var p = $RSS.ajax.queue[0].p;
		var u = $RSS.ajax.queue[0].u;
		var n = $RSS.ajax.queue[0].n;
		var o = $RSS.ajax.queue[0].o;
		var s = $RSS.ajax.queue[0].s;
		var c = $RSS.ajax.queue[0].c;
		if(typeof jQuery != 'undefined'){
			$RSS.jq(p,u,n,o,s,c);
		}else
			if(typeof Prototype!= 'undefined'){
				$RSS.ptype(p,u,n,o,s,c);	
			}else{
				$RSS.indy(p,u,n,o,s,c);
			}
		$RSS.ajax.queue.splice(0,1);
	}else{
		setTimeout($RSS.ajax.processQueue,500);
	}
};
$RSS.call = undefined;
$RSS.results = [];
$RSS.loading = function(l,text,t){
	var e = document.getElementById(l);
	e.innerHTML = '';
	var img = document.createElement('img');
	img.setAttribute('border', '0');
	img.setAttribute('alt', text);
	var pre = '';
	if (location.protocol === 'https:') {
	    pre = '/external'
	}
	img.setAttribute('src', t?pre+'/wgte/images/search/ajax-loader.gif':pre+'/modules/quickrss/74.gif');
	e.appendChild(img);
	img.setAttribute('width', '32');
	img.setAttribute('height', '32');
};
$RSS.jq = function(p,u,n,o,s,c){
	var pre = '';
	if (location.protocol === 'https:') {
	    pre = '/external'
	}
	var url = pre+'/modules/quickrss/feedtojson.php';
	$RSS.call = {};
	$.ajax({
		url: surl,
		type: 'post',
		data: {
			'url': u,
			'num': n,
			'sort': s
		},
		beforeSend: function(){
			$RSS.call._complete = false;
		},
		success: function(data){
			$RSS.results = data;
			$RSS.form(p,o,true);
			if(c) c();
			$RSS.call._complete = true;
		},
		error: function(xhr, textStatus, errorThrown){
			var e = document.getElementById(p);
			e.innerHTML = errorThrown;
		},
		dataType: "json"
	});
};
$RSS.indy = function(){
	return false;
};
$RSS.ptype = function(p,u,n,o,s,c){
	var pre = '';
	if (location.protocol === 'https:') {
	    pre = '/external'
	}
	var url = pre+'/modules/quickrss/feedtojson.php';
	$RSS.call = new Ajax.Request(url, {
		method: 'post',
		parameters: {
			'url': u,
			'num': n,
			'sort': s
		},
		onLoading: function(){

		},
		onException: function(transport){

		},
		onFailure: function(transport){

		},
		onInteractive: function(transport){

		},
		onLoaded: function(transport){

		},
		onComplete: function(transport){
			var json = transport.responseText.evalJSON(true);
			$RSS.results = json;
			$RSS.form(p,o);
			if(c) c();
		},
		onUninitialized: function(transport){

		},
		onSuccess: function(transport){

		},
		onCreate: function(transport){

		},
		on100: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '100';
		},
		on101: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '101';
		},
		on102: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '102';
		},
		on200: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '200';
		},
		on201: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '201';
		},
		on202: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '202';
		},
		on203: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '203';
		},
		on204: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '204';
		},
		on205: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '205';
		},
		on206: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '206';
		},
		on207: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '207';
		},
		on300: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '300';
		},
		on301: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '301';
		},
		on302: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '302';
		},
		on303: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '303';
		},
		on304: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '304';
		},
		on305: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '305';
		},
		on306: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '306';
		},
		on307: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '307';
		},
		on400: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '400';
		},
		on401: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '401';
		},
		on402: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '402';
		},
		on403: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '403';
		},
		on404: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '404';
		},
		on405: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '405';
		},
		on406: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '406';
		},
		on407: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '407';
		},
		on408: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '408';
		},
		on409: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '409';
		},
		on410: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '410';
		},
		on411: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '411';
		},
		on412: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '412';
		},
		on413: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '413';
		},
		on414: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '414';
		},
		on415: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '415';
		},
		on416: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '416';
		},
		on417: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '417';
		},
		on418: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = 'Teapot!';
		},
		on422: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '422';
		},
		on423: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '423';
		},
		on424: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '424';
		},
		on425: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '425';
		},
		on426: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '426';
		},
		on449: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '449';
		},
		on500: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '500';
		},
		on501: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '501';
		},
		on502: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '502';
		},
		on503: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '503';
		},
		on504: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '504';
		},
		on505: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '505';
		},
		on506: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '506';
		},
		on507: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '507';
		},
		on509: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '509';
		},
		on510: function(transport){
			var e = document.getElementById(p);
			e.innerHTML = '510';
		}
	});
};
$RSS.elm = function(l,u,n){
	var a = document.getElementById(l);
	var e = document.createElement('div');
	var s = u.split(".");
	var uid = 'rss_'+s[1]+'n'+l;
	a.appendChild(e);
	e.setAttribute('id', uid);
	return uid;
};
$RSS.form = function(p,o,t){
	if(t){
		var l = document.getElementById(p);
		l.innerHTML = '';
		for(var n in $RSS.results){
			if(!isNaN(Number(n))){
				if ($RSS.results[n].link == "FeedTitle") {
					var i = document.createElement('h3');
					i.innerHTML = $RSS.results[n].title;
					l.appendChild(i);
				}else{
					var i = document.createElement('div');
					i.setAttribute('class', 'item');
					var io = document.createElement('div');
					io.setAttribute('class', 'info');
					var il = $RSS.results[n].link;
					var it = "<h5><a href=\"" + il + "\">" + $RSS.results[n].title + "</a></h5>";
					var id = '';
					if (o != null && o.indexOf("date") >= 0) {
						id = "<span style=\"color:gray;font-size:90%;\">" + $RSS.date($RSS.results[n].date) + "</span>";
					}
					//var id = $RSS.date($RSS.results[n].date);
					var ib = '';
					if (o != null && o.indexOf("description") >= 0) {
						ib = "<br />" + $RSS.results[n].body;
					}
					if (ib.indexOf("<a") >= 1) {
						ib = ib.substring(0, ib.indexOf("<a"))
					}
					io.innerHTML = it + id + ib;
					i.appendChild(io);
					l.appendChild(i);
				}
			}
		}
		var i = document.createElement('div');
		i.setAttribute('class','item');
		l.appendChild(i);
	}else{
		var e = document.getElementById(p);
		e.innerHTML = '';
		var l = document.createElement('ul');
		e.appendChild(l);
		for(var n in $RSS.results){
			if(!isNaN(Number(n))){
				if ($RSS.results[n].link != "FeedTitle") {
					var i = document.createElement('li');
					var il = $RSS.results[n].link;
					var it = "<a href=\"" + il + "\">" + $RSS.results[n].title + "</a> ";
					var id = '';
					if (o != null && o.indexOf("date") >= 0) {
						id = "<span style=\"color:gray;font-size:90%;\">" + $RSS.date($RSS.results[n].date) + "</span>";
					}
					//var id = $RSS.date($RSS.results[n].date);
					var ib = '';
					if (o != null && o.indexOf("description") >= 0) {
						ib = "<br />" + $RSS.results[n].body;
					}
					if (ib.indexOf("<a") >= 1) {
						ib = ib.substring(0, ib.indexOf("<a"))
					}
					i.innerHTML = it + id + ib;
					l.appendChild(i);
				}
			}
		}
	}
}
$RSS.date = function(d){
	if(!isNaN(Number(d))){
		var t = new Date(Number(d)*1000);	
	}else{
		var t = new Date(d);	
	}
	var d = [];
	d[d.length] = t.getDay();
	switch(d[0]){
		case 0:
			d[0] = "Sunday";
			break;
		case 1:
			d[0] = "Monday";
			break;
		case 2:
			d[0] = "Tuesday";
			break;
		case 3:
			d[0] = "Wednesday";
			break;
		case 4:
			d[0] = "Thursday";
			break;
		case 5:
			d[0] = "Friday";
			break;
		case 6:
			d[0] = "Saturday";
			break;
	}
	d[d.length] = t.getMonth();
	switch(d[1]){
		case 0:
			d[1] = "January";
			break;
		case 1:
			d[1] = "February";
			break;
		case 2:
			d[1] = "March";
			break;
		case 3:
			d[1] = "April";
			break;
		case 4:
			d[1] = "May";
			break;
		case 5:
			d[1] = "June";
			break;
		case 6:
			d[1] = "July";
			break;
		case 7:
			d[1] = "August";
			break;
		case 8:
			d[1] = "September";
			break;
		case 9:
			d[1] = "October";
			break;
		case 10:
			d[1] = "November";
			break;
		case 11:
			d[1] = "December";
			break;
	}
	d[d.length] = t.getDate();
	d[d.length] = t.getFullYear();
	d[d.length] = t.getHours();
	d[d.length] = t.getMinutes();
	d[d.length] = t.getSeconds();
	d[d.length] = (d[4]<12)?'AM':'PM';
	if(d[4] == 0){
		d[4] = 12;
	}else
		if(d[4] > 12){
			d[4] = d[4]-12;
		}
	return d[0]+', '+d[1]+' '+d[2]+', '+d[3]+' '+d[4]+':'+((d[5]<10)?'0':'')+d[5]+':'+((d[6]<10)?'0':'')+d[6]+' '+d[7];
};

