﻿// ****************************************************
// * twAjax version 1.1
// * **************************************************
// * Copyright (C) Django (Oznog) Blais 2005 - 2006.
// * Voir : http://www.trucsweb.com/xml/
// *
// * - Mise à jour : 2010-03-21 08:56:09
// * 
// * Cet ensemble de scripts représentre des années de
// * recherche dans le domaine. La possibilité de créer
// * un portail entièrement transformé localement par
// * le navigateur via le DOM représente un rêve depuis
// * 1997. Veuillez respecter le travail de l'auteur en
// * laissant cette remarque.
// *                                             Merci!
// ****************************************************
var oXMLhttp2
var isIE = false;
var calque = "statut";
iled = new Image(); iled.src = "/images/a_rouge.gif";

var sAgent = navigator.userAgent.toLowerCase();
var bGecko    = (sAgent.indexOf("gecko")!=-1);
var bIE    = (sAgent.indexOf("msie 6")!=-1);
var bIE7    = (sAgent.indexOf("msie 7")!=-1);
var bIE8    = (sAgent.indexOf("msie 8")!=-1);
var bSafari = (sAgent.indexOf("safari")!=-1);
var sNavigateur = sAgent;
if (bGecko) sNavigateur = '-Gecko';
if (bIE) sNavigateur = '-IE 6';
if (bIE7) sNavigateur = '-IE 7';
if (bIE8) sNavigateur = '-IE 8';
if (bSafari) sNavigateur = '-Safari';

function twXMLChargeur(url,action) {
	try {
    // Gecko, Mozilla, Safari
    if (window.XMLHttpRequest) {
      oXMLhttp2 = new XMLHttpRequest();
      if (oXMLhttp2.overrideMimeType) {
      	// Pour les vieux Mozilla
      	oXMLhttp2.overrideMimeType('text/xml');
      }
    }
    // Microsoft
    else if (window.ActiveXObject) {
    	isIE = true;
      try {
        oXMLhttp2 = new ActiveXObject("Msxml2.XMLHTTP");
      }
      catch (e) {
        try {
          oXMLhttp2 = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (e) {}
      }
    }
    if (!oXMLhttp2) {
      alert('Impossible de créer l\'instance XMLHTTP');
      return false;
    }
    oXMLhttp2.onreadystatechange = eval(action);
    // GET POST HEAD...
    oXMLhttp2.open("GET",url,true);
    oXMLhttp2.send(null);
  }
  catch(e) {
    alert('Erreur de script');
  }
}

function twXMLhttpRSS() {
	if (oXMLhttp2.readyState==0) {document.getElementById("statutG").innerHTML = '<img src="/images/espaceur.gif" width="16" height="16" alt="Chargement..." title="Chargement..." class="milieu"/> Non initialisé...';}
  if (oXMLhttp2.readyState==1) {document.getElementById("statutG").innerHTML = '<img src="/images/a_webotheque.gif" width="16" height="16" alt="Chargement..." title="Chargement..." class="milieu"/> Chargement...';}
  if (oXMLhttp2.readyState==4) {
    switch (oXMLhttp2.status) { 
      case (200) :  
        document.getElementById("statutG").innerHTML = "chargé : "+ oXMLhttp2.status;
        var oXML = oXMLhttp2.responseXML;
        var TWCanal = oXMLhttp2.responseXML.getElementsByTagName("channel");
        var TWCanalTitre = getElementTextNS("", "title", TWCanal[0], 0);
        var TWCanalUrl = getElementTextNS("", "link", TWCanal[0], 0);
        var TWCanalDate = twISOdateVersJS(getElementTextNS("dc", "date", TWCanal[0], 0));
        //var TWCanalDate = getElementTextNS("dc", "date", TWCanal[0], 0);
        var TWCanalXML = getElementTextNS("dc", "source", TWCanal[0], 0);
        //var TWCanalDate = TWCanal[0].getElementsByTagName('dc:date').nodeValue;
        //var TWCanalXML = TWCanal[0].getElementsByTagName('dc:source').getAttribute("rdf:resource").text;
        
        var TWCanalXML = TWCanal[0].getElementsByTagName('dc:source')[0].getAttribute("rdf:resource");
        //var TWCanalXML-URL = TWCanalXML.getAttribute("rdf:resource")
        // -----------
        // Test
        var TWCanalTEST = oXMLhttp2.responseXML.getElementsByTagName("item");
        var TWTest = TWCanalTEST[0].getElementsByTagName('dc:publisher').item(0).firstChild.data;
        // -----------
        
        if (bSafari) {
        	TWCanalTitre = TWCanal[0].childNodes[1].firstChild.nodeValue;
        }
        //document.getElementById("statutG").innerHTML = 'MAJ : ' + TWCanalDate.twDate('fr-ca');
        document.getElementById("statutG").innerHTML = '<img src="/images/b_rss.gif" width="16" height="16" alt="rss" title="'+TWCanalXML+'" class="milieu" /> ' + TWCanalTitre;
        document.getElementById("RevueXHTMLG").innerHTML = '';
        var TWitem = oXMLhttp2.responseXML.getElementsByTagName("item");
        for ( i=0; i < 7; i++ ) {   		
        	var TWtitre = getElementTextNS("", "title", TWitem[i], 0);
          var TWlien = getElementTextNS("", "link", TWitem[i], 0);
          var TWdescription = getElementTextNS("", "description", TWitem[i], 0);
          var TWAuteur = TWitem[i].getElementsByTagName('dc:publisher').item(0).firstChild.data;
          var TWArticleDate = TWitem[i].getElementsByTagName('dc:date').item(0).firstChild.data;
          //var TWArticleDate = twISOdateVersJS(getElementTextNS("dc", "date", TWitem[i], 0));
          if (bSafari) {
        	  TWtitre = TWitem[i].childNodes[1].firstChild.nodeValue;
        	  TWlien = TWitem[i].childNodes[2].firstChild.nodeValue;
        	  TWAuteur = TWitem[i].childNodes[9].firstChild.nodeValue;
        	  TWdescription = TWitem[i].childNodes[3].firstChild.nodeValue;
        	  TWArticleDate = TWitem[i].childNodes[5].firstChild.nodeValue;
          }
          document.getElementById("RevueXHTMLG").innerHTML += '<p><img src="/images/b_titre.gif" width="16" height="16" alt="-" title="'+TWArticleDate+'" class="milieu"/> <span class="petit" style="color:#ccc;">'+TWAuteur+' ('+twISOdateVersJS(TWArticleDate).twDate('fr-ca')+') </span><br /><a href="'+TWlien+'" title="'+TWdescription+'">'+TWtitre+'</a></p>';
         }
         document.getElementById("RevueXHTMLG").innerHTML += '<p class="droite"><span class="petit"><a href="'+TWCanalUrl+'">Plus de nouvelles ></a></p>';
        break; 
      case (404) : 
        document.getElementById("statutG").innerHTML = '<img src="/images/b_adv_pt.gif" width="16" height="16" alt="-" title="ERREUR 404" class="milieu"/> Fichier innexistant!';
        break; 
      case (500) : 
        document.getElementById("statutG").innerHTML = '<img src="/images/b_adv_pt.gif" width="16" height="16" alt="-" title="ERREUR 500" class="milieu"/>  Erreur interne du serveur!';
        break; 
      default   : 
        document.getElementById("statutG").innerHTML = '<img src="/images/b_adv_pt.gif" width="16" height="16" alt="-" title="ERREUR ' + oXMLhttp2.status + '" class="milieu"/> ' + oXMLhttp2.statusText;  
    } 
  }
}

function twXMLhttpRSSMeteo() {
	if (oXMLhttp2.readyState==0) {document.getElementById("statutM").innerHTML = '<img src="/images/espaceur.gif" width="16" height="16" alt="Chargement..." title="Chargement..." class="milieu"/> Non initialisé...';}
  if (oXMLhttp2.readyState==1) {document.getElementById("statutM").innerHTML = '<img src="/images/a_webotheque.gif" width="16" height="16" alt="Chargement..." title="Chargement..." class="milieu"/> Chargement...';}
  if (oXMLhttp2.readyState==4) {
    switch (oXMLhttp2.status) { 
      case (200) :  
        document.getElementById("statutM").innerHTML = "chargé : "+ oXMLhttp2.status;
        document.getElementById("RevueXHTMLMeteo").innerHTML = '';
        var oXML = oXMLhttp2.responseXML;
        var TWCanal = oXMLhttp2.responseXML.getElementsByTagName("channel");
        var TWitem = oXMLhttp2.responseXML.getElementsByTagName("item");     
        var TWCanalTitre = getElementTextNS("", "title", TWitem[0], 0);
        var TWCanalUrl = getElementTextNS("", "link", TWitem[0], 0);
        document.getElementById("statutM").innerHTML = '<img src="/images/b_rss.gif" width="16" height="16" alt="rss" title="'+TWCanalUrl+'" class="milieu"/> ' + TWCanalTitre;
        document.getElementById("RevueXHTMLMeteo").innerHTML += TWitem[0].getElementsByTagName('dc:subject').item(4).firstChild.data+'<br />';
        document.getElementById("RevueXHTMLMeteo").innerHTML += TWitem[0].getElementsByTagName('dc:subject').item(6).firstChild.data+'<br />';
        //for ( i=0; i < 25; i++ ) {   		
         // document.getElementById("RevueXHTMLMeteo").innerHTML += i + ' : '+TWitem[0].getElementsByTagName('dc:subject').item(i).firstChild.data+'<br />';
        
       // 0 : 22/03/2010 9:10:41 AM
//1 : 22/03/2010
//2 : 38
//3 : Rivière-du-Loup
//4 : Ensoleillé
//5 : a
//6 : -3,0°C
//7 : 6
//8 : -7,1
//9 : 1
//10 : -8
//11 : 96 %
//12 : 102,0 kPa
//13 : 2
        
        //}
        //document.getElementById("RevueXHTMLMeteo").innerHTML += '<p class="droite"><span class="petit"><a href="/meteo/">Plus ></a></p>';
        break; 
      case (404) : 
        document.getElementById("statutM").innerHTML = '<img src="/images/b_adv_pt.gif" width="16" height="16" alt="-" title="ERREUR 404" class="milieu"/> Fichier innexistant!';
        break; 
      case (500) : 
        document.getElementById("statutM").innerHTML = '<img src="/images/b_adv_pt.gif" width="16" height="16" alt="-" title="ERREUR 500" class="milieu"/>  Erreur interne du serveur!';
        break; 
      default   : 
        document.getElementById("statutM").innerHTML = '<img src="/images/b_adv_pt.gif" width="16" height="16" alt="-" title="ERREUR ' + oXMLhttp2.status + '" class="milieu"/> ' + oXMLhttp2.statusText;  
    } 
  }
}

function getElementTextNS(prefix, local, parentElem, index) {
  // Récupéré de » Reading XML Data from iTunes RSS Feeds »
  // http://developer.apple.com/internet/webcontent/XMLHttpRequestExample/example.html
    var result = "";
    if (prefix && isIE && !bIE7) {
        // IE/Windows way of handling namespaces
        result = parentElem.getElementsByTagName(prefix + ":" + local)[index];
    } else {
        // the namespace versions of this method 
        // (getElementsByTagNameNS()) operate
        // differently in Safari and Mozilla, but both
        // return value with just local name, provided 
        // there aren't conflicts with non-namespace element
        // names
        result = parentElem.getElementsByTagName(local)[index];
    }
    if (result) {
        // get text, accounting for possible
        // whitespace (carriage return) text nodes 
        if (result.childNodes.length > 1) {
            return result.childNodes[1].nodeValue;
        } else {
            return result.firstChild.nodeValue;    		
        }
    } else {
        return "Non disponible.";
    }
}
