var READY_STATE_UNINITIALIZED=0; 
var READY_STATE_LOADING=1; 
var READY_STATE_LOADED=2;
var READY_STATE_INTERACTIVE=3; 
var READY_STATE_COMPLETE=4;
 
var peticion_http;

// The variables currElem, datos, feeds and numberItems, are for the blockView
var currElem = -1;
//var datos = ?php echo $docJson ?;
var datos;
//var feeds = datos.rss.value.channel.value.item;
var feeds;
var numberItems = 0;

function inicializa_xhr() {
  if(window.XMLHttpRequest) {
    return new XMLHttpRequest();
  }
  else if(window.ActiveXObject) {
    return new ActiveXObject("Microsoft.XMLHTTP");
  }
}


function postResponse(asText) {
  if(peticion_http.readyState == READY_STATE_COMPLETE) {
    if(peticion_http.status == 200)
    	if(peticion_http.responseText.length>0)
     	document.getElementById('allView').innerHTML = "<h2>MESSAGE SENT<BR/><BR/>Thank you</h2>";
  }
}

function loadContent(url, metodo, funcion) {
  peticion_http = inicializa_xhr();
  if(peticion_http) {
    peticion_http.onreadystatechange = funcion;
    peticion_http.open(metodo, url, true);
    peticion_http.send(null);
  }
}

function showContentHtml() {
  document.getElementById('blockView').style.display = "none"; // makes invisible the block view
  if(peticion_http.readyState == READY_STATE_COMPLETE) {
    if(peticion_http.status == 200)
     	document.getElementById('allView').innerHTML = peticion_http.responseText;
  }
}


function showContentBlock() {
  if(peticion_http.readyState == READY_STATE_COMPLETE) {
    if(peticion_http.status == 200)
    {	
    	feeds = JSON.parse(peticion_http.responseText);
     	document.getElementById('allView').innerHTML = "";
		document.getElementById('blockView').style.display = "block";
		
     	currElem = -1;
		numberItems = 0;
		if(is_array(feeds))
		{	// it has more than one item
			//alert(" is array?: " + is_array(feeds) + " has " + feeds.length + " items");
			numberItems = feeds.length;
			document.getElementById("titleNext").style.visibility = "visible";
			document.getElementById("titlePrev").style.visibility = "visible";
			document.getElementById("plus").disabled = false;
			document.getElementById("last").disabled = false;
			document.getElementById("minus").disabled = true;
			document.getElementById("first").disabled = true;
			changefeed("plus");	
		}
		else
		{	//alert(" is object?: " + is_object(feeds)+ " has one item only?" + feeds.length);
			numberItems = 1;
			document.getElementById("titleNext").style.visibility = "hidden";
			document.getElementById("titlePrev").style.visibility = "hidden";
			document.getElementById("plus").disabled = true;
			document.getElementById("minus").disabled = true;
			document.getElementById("last").disabled = true;
			document.getElementById("first").disabled = true;
			loadFeed(feeds);
		}
		// clean the other view and dislplay the block view
				
     }
  }
}

function updateWithFeed(rss, format){

//loadContent("dataInterface.php?channel="+chan+"&action=getFeeds", "GET", showContentBlock);
	if (format == "block")
		loadContent("getRss2.php?channel="+rss+"&format=json", "GET", showContentBlock);
	else // if all
		loadContent("getRss2.php?channel="+rss+"&format="+format, "GET", showContentHtml);
		
	parent.location.hash = rss;

}

function updateWithPage(id,page){
	
	loadContent(page, "GET", showContentHtml);
	parent.location.hash = id;
}

// this function is to send a Form (the contact.php)
function sendPost(file, str)
{
	peticion_http = inicializa_xhr();
  	if(peticion_http) {
		peticion_http.open( "POST", file, true );
		peticion_http.onreadystatechange = showContentHtml;
   		peticion_http.setRequestHeader("Content-Type","application/x-www-form-urlencoded; charset=UTF-8");
		peticion_http.send(str);
	}
}


// These fonctions are to update the main feed in different blocks with the arrows to navigate in them
function is_object( mixed_var ){
	if(is_array(mixed_var)) 
    	return false;
    else 
        return (mixed_var !== null) && (typeof( mixed_var ) == "object");
}

function is_array(input){
    return typeof(input)=="object"&&(input instanceof Array);
}

function loadFeed(xfeed)
{	
	
	document.getElementById("mainFeed_title").innerHTML = xfeed.title;
	//document.getElementById("feed_link").innerHTML = xfeed.link.value;
	//.getElementById("feed_guid").innerHTML = xfeed.guid.value;
	document.getElementById("feed_description").innerHTML = xfeed.description;
	document.getElementById("feed_pubDate").innerHTML = xfeed.pubDate;

}

function changefeed(dir)
{
 	if(dir == "first") currElem = 0;
 	else if(dir=="last") currElem = numberItems-1;
 	else if(dir =="plus") currElem++;
	else currElem--;
	
	loadFeed(feeds[currElem]);
	
	document.getElementById("titleNext").innerHTML = "";
	document.getElementById("titlePrev").innerHTML = "";
	
	if(currElem+1 == numberItems){
		document.getElementById("last").disabled = true;
		document.getElementById("plus").disabled = true;

	}
	else{
		document.getElementById("plus").disabled = false;
		document.getElementById("last").disabled = false;
		document.getElementById("titleNext").innerHTML = feeds[currElem+1].title;
	}	
		
	if(currElem == 0){
		document.getElementById("first").disabled = true;
		document.getElementById("minus").disabled = true;
	}
	else{
		document.getElementById("first").disabled = false;
		document.getElementById("minus").disabled = false;
		document.getElementById("titlePrev").innerHTML = feeds[currElem-1].title;
	}
}

 
// THIS FUNCTION IS TO SEND AN EMAIL THROUGH THE CONTACT.PHP
function checkfields(fobj)
{	// it recieves the form as parameter.
	var str = "";
	for(var i = 0;i < fobj.elements.length;i++){
		if(fobj.elements[i].value==""){
			alert("Please introduce your "+ fobj.elements[i].name);
			fobj.elements[i].focus();
			return false;
		}
      	else str += fobj.elements[i].name + "=" + fobj.elements[i].value + "&";
     }
     str = str.substr(0,(str.length - 1)); 
    
     sendPost(fobj.getAttribute("action"), str);
     //submit
}

//window.onload = updateWithFeed("news","block");

