﻿// NEWS
var myJsonVar;

var req;
var bIExplorer = false;
var bPocketIE = false;

function getNewsJson(thenewsname) {
    
    url="/homepage/rss/" + thenewsname + ".js";
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        bIExplorer=true;
        
        if (!document.all & !document.layer & !document.getElementById) {
          bPocketIE=true;
        }
        
    }
try {
    req.onreadystatechange = processRequestJson;    

    req.open("GET", url, true);
    req.send(null);
} catch (e) { // alert(e); 
}
}

function processRequestJson() {
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
        
	        // response = req.responseText;
	        
	        response = req.responseText;
	        //response = req.responsetext.documentElement;
//alert (response);

// alert('before');
myJsonVar = eval('(' + response  + ')');
// alert('after');

//var myJsonVar = eval(response );

showNewsJS();


        } else {
            //alert("There was a problem retrieving the XML data:\n" + req.statusText);
        }
    }
    
}


function getBrowser(){
    
  if (window.ActiveXObject) {
    bIExplorer=true;        
    //if (!document.all & !document.layer & !document.getElementById) {
    // more recent pocket ie has document.all
    if (!document.layer & !document.getElementById) {
      bPocketIE=true;
    }
  }
  
}


function showNewsJS(){

getBrowser();

var iNews=0;
var iFocus=0;
var iField=0;
var JSitem;
          	 

if (typeof fieldnews=='undefined') {fieldnews=0;}
if (typeof fieldnewsposition=='undefined') {fieldnewsposition=0;}



  for (JSitem in myJsonVar.items) {   
         
    if (myJsonVar.items[JSitem].type=='news') {      
       
      iNews=iNews+1;
      
      if (iNews==1) {        
        createTextJS_NewsFocus(0, myJsonVar.items[JSitem]);                      
      }
      if (iNews<=4) {        
          // should check if one of the news has to be filled by a field item                
        createTextJS_NewsFocus(iNews, myJsonVar.items[JSitem]);                      
      } 
    } else if (myJsonVar.items[JSitem].type=='FOCUS ON THE ISSUES' || myJsonVar.items[JSitem].type=='DOSSIERS DE FOND' || myJsonVar.items[JSitem].type=='A FONDO'  || myJsonVar.items[JSitem].type =='تركيز على القضايا' || myJsonVar.items[JSitem].type=='焦点问题') {
    	// when non-utf, arabic MUST have an extra space, otherwise will make the chinese fail
        iFocus=iFocus+1;
        if (iFocus<=2) {          	       
            createTextJS_NewsFocus((iFocus+4), myJsonVar.items[JSitem]);                  
        }
    } else if (myJsonVar.items[JSitem].type=='FAO IN THE FIELD' || myJsonVar.items[JSitem].type=='LA FAO SUR LE TERRAIN' || myJsonVar.items[JSitem].type=='FAO EN EL TERRENO' || myJsonVar.items[JSitem].type =='المنظمة في الميدان' || myJsonVar.items[JSitem].type =='粮农组织在实地') {
    	// when non-utf, arabic MUST have an extra space, otherwise will make the chinese fail
        iField=iField+1;
        if (iField<=2) {   
          if (fieldnews==iField) {     
            //look if some of these should be put in place of a news item
            if (fieldnewsposition>0 && fieldnewsposition<=4) {
              createTextJS_NewsFocus(fieldnewsposition, myJsonVar.items[JSitem]);        
            }
          }
        }
    } // end if
    
    } // for jsitem
   
}  // end function


//ppc 2002 has document.something
//ppc 2003 does not - needs top.something or simply something
function createTextJS_NewsFocus(divnum, jsItem) {

var bNews=true;

switch(divnum) {
          // special case for top news
          case 0:          
          if (bPocketIE) {          
            theArea=top.pienews1top;
            theArea2=top.pienews1topsumm;                 
          } else { 
            theArea=document.getElementById('news1top');
            theArea2=document.getElementById('news1topsumm');
          } 
          break;
        case 1:          
          if (bPocketIE) {          
            theArea=top.pienews1;                 
          } else { 
            theArea=document.getElementById('news1');
          } 
          break;
        case 2:
          if (bPocketIE) {
            theArea=top.pienews2;
          } else { 
            theArea=document.getElementById('news2');
          } 
          break;
        case 3:
          if (bPocketIE) {
            theArea=top.pienews3;
          } else { 
            theArea=document.getElementById('news3');
          } 
          break;
        case 4:
          if (bPocketIE) {
            theArea=top.pienews4;
          } else { 
            theArea=document.getElementById('news4');
          } 
          break;          
        case 5:
          bNews=false;          
          if (bPocketIE) {
            theArea=top.piefocus1;            
          } else { 
            theArea=document.getElementById('focus1');
          } 
          break;
        case 6:        
          bNews=false;          
          if (bPocketIE) {
            theArea=top.piefocus2;
          } else { 
            theArea=document.getElementById('focus2');
          } 
          break;
        default:
        
      } // switch (iNews)
      
// the difference between IE and Firefox is "xml" or "nodevalue" :-(

// check if theArea exists 

if (theArea) { 

  if (bPocketIE) {
  // bug - at #6 it stops here

     theArea.innerHTML = '<a class=\'headl\' href=\'' + jsItem.url + '\'>' + jsItem.title + '</a>'   

     if (bNews) {
       theArea.innerHTML = theArea.innerHTML + '<br>' + jsItem.summary + ' ';
     }
   
  } else if (bIExplorer & !bPocketIE) {
      
          
     theArea.innerHTML ='<a href="' + jsItem.url + '" class="headl">' + jsItem.title + '</a>' 
     // alert (theArea.innerHTML);
     if (bNews) {
       
       if (jsItem.url.length>=31) {
       // guess lang from address
         var sNewsURLLang=jsItem.url.substring(0,31);
         if (sNewsURLLang=='http://www.fao.org/newsroom/en/') {
           sMoreText='more...';
        } else if (sNewsURLLang=='http://www.fao.org/newsroom/fr/') {
           sMoreText='suite...';
         } else if (sNewsURLLang=='http://www.fao.org/newsroom/es/') {
           sMoreText='más...';
         } else if (sNewsURLLang=='http://www.fao.org/newsroom/ar/') {
           // sMoreText='للمزي...';
           sMoreText='للمزيد...';
         } else if (sNewsURLLang=='http://www.fao.org/newsroom/zh/') {
          sMoreText='更多…';
         } else if (sNewsURLLang=='http://www.fao.org/newsroom/ru/') {
          sMoreText='more...';
         } else {
          sMoreText='more...';
         }
       }
       
       
       if (divnum==0) {
        // theArea.innerHTML = theArea.innerHTML + '<br>' + jsItem.summary + ' ';
        if (theArea2) { 
          theArea2.innerHTML = '<p class="bodytext">' + jsItem.abstract + ' ' + '[<a href="' + jsItem.url + '">' + sMoreText + '</a>]</p>'          			 
          }
      } else {
       theArea.innerHTML = theArea.innerHTML //+ '<br>' + jsItem.summary + ' ';
      }
     }
   
  // never used? only previous versions?
  // para = document.createElement('a');
  //   para.setAttribute('class', 'headl');
  // para.setAttribute('href', jsItem.url );
  //   para.appendChild(document.createTextNode(jsItem.title ) );
   // theArea.appendChild(para);
  // createElement deR #$%$ 
  //   para = document.createElement('div');   
  //   para.innerHTML = newsItem.getElementsByTagName('title')[0].firstChild.xml + ' ';   
  //   div.appendChild(para);
    // alert (div.innerHTML);
  
  } else {
  
     theArea.innerHTML ='<a href="' + jsItem.url + '" class="headl">' + jsItem.title + '</a>' 
     // alert (theArea.innerHTML);
     if (bNews) {
      
       if (jsItem.url.length>=31) {
       // guess lang from address
         var sNewsURLLang=jsItem.url.substring(0,31);
         if (sNewsURLLang=='http://www.fao.org/newsroom/en/') {
           sMoreText='more...';
        } else if (sNewsURLLang=='http://www.fao.org/newsroom/fr/') {
           sMoreText='suite...';
         } else if (sNewsURLLang=='http://www.fao.org/newsroom/es/') {
           sMoreText='más...';
         } else if (sNewsURLLang=='http://www.fao.org/newsroom/ar/') {
           // sMoreText='للمزي...';
           sMoreText='للمزيد...';
         } else if (sNewsURLLang=='http://www.fao.org/newsroom/zh/') {
          sMoreText='更多…';
         } else if (sNewsURLLang=='http://www.fao.org/newsroom/ru/') {
          sMoreText='more...';
         } else {
          sMoreText='more...';          
         }
       }
       
       if (divnum==0) {        
        // theArea.innerHTML = theArea.innerHTML + '<br>' + jsItem.summary + ' ';
        if (theArea2) { 
          theArea2.innerHTML = '<p class="bodytext">' + jsItem.abstract + ' ' + '[<a href="' + jsItem.url + '">' + sMoreText + '</a>]</p>'          			 
          }
      } else {
       theArea.innerHTML = theArea.innerHTML //+ '<br>' + jsItem.summary + ' ';
      }
     }
  
  }   
   
// end check if theArea exists 
}
   
}


function createTextJSON(div, newsItem) {

// the difference is "xml" or "nodevalue" :-(

if (bPocketIE) {

   div.innerHTML = '<a class=\'headl\' href=\'' + newsItem.url + '\'>' + newsItem.title + '<br>' + newsItem.summary + ' ';
} else if (bIExplorer & !bPocketIE) {
   para = document.createElement('a');
   para.setAttribute('class', 'headl');
   para.setAttribute('href', newsItem.url );
   para.appendChild(document.createTextNode(newsItem.title ) );
   div.appendChild(para);

// createElement deR #$%$ 
//   para = document.createElement('div');   
//   para.innerHTML = newsItem.getElementsByTagName('title')[0].firstChild.xml + ' ';   
//   div.appendChild(para);
   
   div.innerHTML = div.innerHTML + '<br>' + newsItem.summary + ' ';
 
// alert (div.innerHTML);
} else {
   para = document.createElement('a');
   para.setAttribute('class', 'headl');
   para.setAttribute('href', newsItem.url );
   para.appendChild(document.createTextNode(newsItem.title ) );
   div.appendChild(para);
   div.innerHTML = div.innerHTML + '<br>' + newsItem.summary + ' ';
}   
   
}


function getNewsXML(thenewsname) {
    
    url="/homepage/rss/" + thenewsname + ".xml";
    if (window.XMLHttpRequest) {
        req = new XMLHttpRequest();
    } else if (window.ActiveXObject) {
        req = new ActiveXObject("Microsoft.XMLHTTP");
        bIExplorer=true;
    }
try {
    req.onreadystatechange = processRequestXML;
    req.open("GET", url, true);
    req.send(null);
} catch (e) { //alert(e); 
}
}

function processRequestXML() {
    // only if req shows "complete"
    if (req.readyState == 4) {
        // only if "OK"
        if (req.status == 200) {
        
	        response = req.responseXML.documentElement;
	        //response = req.responsetext.documentElement;
	        if (response.getElementsByTagName('item')[0])
	          createTextXML(document.getElementById('news1'),response.getElementsByTagName('item')[0]);	        
	        if (response.getElementsByTagName('item')[1])
	          createTextXML(document.getElementById('news2'),response.getElementsByTagName('item')[1]);
	        if (response.getElementsByTagName('item')[2])
	          createTextXML(document.getElementById('news3'),response.getElementsByTagName('item')[2]);
		      if (response.getElementsByTagName('item')[3])
		        createTextXML(document.getElementById('news4'),response.getElementsByTagName('item')[3]);
        } else {
            // alert("There was a problem retrieving the XML data:\n" + req.statusText);
        }
    }
}

function createTextXML(div, newsItem) {

// the difference is "xml" or "nodevalue" :-(

if (bIExplorer) {
   para = document.createElement('a');
   para.setAttribute('class', 'headl');
   para.setAttribute('href', newsItem.getElementsByTagName('link')[0].firstChild.xml );
   para.appendChild(document.createTextNode(newsItem.getElementsByTagName('title')[0].firstChild.xml ) );
   div.appendChild(para);

// createElement der @#$@#$
//   para = document.createElement('div');   
//   para.innerHTML = newsItem.getElementsByTagName('title')[0].firstChild.xml + ' ';   
//   div.appendChild(para);
   
   div.innerHTML = div.innerHTML + '<br>' + newsItem.getElementsByTagName('drophead')[0].firstChild.xml + ' ';
 
 //alert (div.innerHTML);
} else {
   para = document.createElement('a');
   para.setAttribute('class', 'headl');
   para.setAttribute('href', newsItem.getElementsByTagName('link')[0].firstChild.nodeValue );
   para.appendChild(document.createTextNode(newsItem.getElementsByTagName('title')[0].firstChild.nodeValue ) );
   div.appendChild(para);
   div.innerHTML = div.innerHTML + '<br>' + newsItem.getElementsByTagName('drophead')[0].firstChild.nodeValue + ' ';
}   
   
}


