// holds an instance of XMLHttpRequest
var xmlHttp = createXmlHttpRequestObject();
 
// when set to true, display detailed error messages
var showErrors = true;

// creates an XMLHttpRequest instance
function createXmlHttpRequestObject() {
 
	// will store the reference to the XMLHttpRequest object
	var xmlHttp;
	// this should work for all browsers except IE6 and older
	try	{
		// try to create XMLHttpRequest object
		xmlHttp = new XMLHttpRequest();
	} catch(e) {
		// assume IE6 or older
		var XmlHttpVersions = new Array("MSXML2.XMLHTTP.6.0",
		"MSXML2.XMLHTTP.5.0",
		"MSXML2.XMLHTTP.4.0",
		"MSXML2.XMLHTTP.3.0",
		"MSXML2.XMLHTTP",
		"Microsoft.XMLHTTP");
 
		// try every prog id until one works
		for (var i=0; i<XmlHttpVersions.length && !xmlHttp; i++) {
		 
			try {
				// try to create XMLHttpRequest object
				xmlHttp = new ActiveXObject(XmlHttpVersions[i]);
			} catch (e) {} // ignore potential error
		}
	}
 
	// return the created object or display an error message
	if (!xmlHttp)
		alert("Error creating the XMLHttpRequest object.");
	else
		return xmlHttp;
}
 
// function that displays an error message
function displayError($message) {
	// ignore errors if showErrors is false
	if (showErrors) {
		// turn error displaying Off
		showErrors = false;
		// display error message
		alert("Error encountered: \n" + $message);
	}
}
 
// Retrieve titles from a feed and display them
function getFeed(feedLink, url) {
	// only continue if xmlHttp isn't void
	if (xmlHttp) {
		// try to connect to the server
		try {
			if (xmlHttp.readyState == 4 || xmlHttp.readyState == 0) {
				// Change the class name for the clicked feed so it becomes // highlighted
				//feedLink.className = "active";
				// Display "Loading..." message while loading feed
				//document.getElementById("loading").style.display = "block";
				// Call the server page to execute the server-side operation
				params = "url=" + url;
				xmlHttp.open("POST", "getrss.php", true);
				xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
				xmlHttp.onreadystatechange = handleHttpGetFeeds;
				xmlHttp.send(params);
			} else {
				// if connection was busy, try again after 1 second
				setTimeout("getFeed('" + feedLink + "', '" + url + "');", 1000);
			}
		}
		// display the error in case of failure
		catch (e) {
			displayError(e.toString());
		}
	}
}
 
// function that retrieves the HTTP response
function handleHttpGetFeeds() {
	// continue if the process is completed
	if (xmlHttp.readyState == 4) {
		// continue only if HTTP status is "OK"
		if (xmlHttp.status == 200) {
			try {
				displayFeed();
			} catch(e) {
				// display error message
				displayError(e.toString());
			}
		} else {
			displayError(xmlHttp.statusText);
		}
	}
}

function showRss(feedName, obj, maxFeeds) {
	for(i=1;i<=maxFeeds;i++) {
	  linkId = "linkrs"+i;
	  contentId = "feedrs"+i;
	  if ( document.getElementById(linkId).parentNode.className = "active" ) {
	    document.getElementById(linkId).parentNode.className = "";
	  }
	  if ( document.getElementById(contentId).style.display = "block" ) {
	    document.getElementById(contentId).style.display = "none";
	  }
	}
	document.getElementById("feed"+feedName).style.display = "block";
	document.getElementById("feed"+feedName).className = "";
	obj.parentNode.className = "active";
    getFeed(document.getElementById("feed"+feedName),feedName);
    return false;
}

// Processes server's response
function displayFeed() {
	// read server response as text, to check for errors
	var response = xmlHttp.responseText;
	// server error?
	if (response.indexOf("ERRNO") >= 0
		|| response.indexOf("error:") >= 0
		|| response.length == 0)
		throw(response.length == 0 ? "Void server response." : response);
	
	var divName = "feed" + response.substr(5,3);
	// hide the "Loading..." message upon feed retrieval
	//document.getElementById("loading").style.display = "none";
	 
	// append XSLed XML content to existing DOM structure
	var titlesContainer = document.getElementById(divName);
	titlesContainer.innerHTML = response;
	 
	// make the feed container visible
	document.getElementById(divName).style.display = "block";
	document.getElementById(divName).className = "";
	
	// clear home page text
	//document.getElementById("home").innerHTML = "";
	 
}

function setAsHomePage(obj,url) {
  if (navigator.appName == 'Microsoft Internet Explorer' && document.all) {
    obj.style.behavior='url(#default#homepage)';
    obj.setHomePage(url);
  }
  return false;
} 

function checkit() {
    if (document.getElementById('question').options.selectedIndex==6) document.getElementById('question-own').style.display = 'block'
	else document.getElementById('question-own').style.display = 'none';
}

function captcha_refresh() {
    if (document.getElementById('captcha')) document.getElementById('captcha').src = "captcha.php?" + Math.floor(Math.random()*1000000);
}

