var cp=null;
var abo=null;
function init(){
  document.getElementById("commune").style.visibility="hidden";
}
function cpchange(){
  cp=document.getElementById("codepostal").value;
  if(cp.length!=5){
    alert("Code postal invalide");
    return;
  }
  getdatas();
}

function checkdatas(){
  if(cp==null || cp.length!=5){
    alert("Entrez votre code postal svp...");
    return;
  }
  abo=document.getElementById("abo1").checked?true:false;
  var ville=document.getElementById("com").options[document.getElementById("com").options.selectedIndex].text;
  var tmpres=document.getElementById("com").options[document.getElementById("com").options.selectedIndex].value;
  var tmptab=tmpres.split("--");
  var eli=tmptab[0];
  var ext=tmptab[1];


  var retpage="page-c+et-moi-";
  if(abo) retpage+="abonne-";
  else retpage+="non-abonne-";
  if(eli=="OUI") retpage+="tntok-";
  else retpage+="tntpasok-";
  if(ext=="null") retpage+="datepasok";
  else retpage+="dateok";
  retpage+=".php?ville="+ville+"&ext="+ext;

  if(abo){
      s=s_gi('cplusnumeriquepreprod');
      s.linkTrackVars="prop19,zip";
      s.prop19='Num – Etes vous abonnes – C + - oui';
      s.zip=cp;
      s.tl(this,'o');
  }
  else{
      s=s_gi('cplusnumeriquepreprod');
      s.linkTrackVars="prop19,zip";
      s.prop19='Num – Etes vous abonnes – C + - non';
      s.zip=cp;
      s.tl(this,'o');
      }

  //alert(cp+" // "+abo+" // "+eli+" // "+ext+" // "+retpage);
  self.location=retpage;
  //getdatas();
}
function parseresults(xmlres){
  var res=xGetElementsByTagName("res",xmlres);
    populate_select(res);
    if(res.length==1) document.getElementById("abonne").style.visibility="visible";
    else document.getElementById("abonne").style.visibility="hidden";
}
function showvalid(){
  document.getElementById("btvalid").style.visibility="visible";
}
function showabo(){
  unselectabo();
  document.getElementById("abonne").style.visibility="visible";
}
function unselectabo(){
  document.getElementById("abo1").checked=false;
  document.getElementById("abo2").checked=false;
}
function populate_select(res){
  document.getElementById("abonne").style.visibility="hidden";
  document.getElementById("btvalid").style.visibility="hidden";
  var sel=document.getElementById("com");
  while(sel.length>0){
    sel.remove(sel.length-1);
  }
  var inc=0;
  if(res.length>1){
    var opt=new Option("","null");
    sel.options[0]=opt;
    inc=1;
  }
  for(var i=0;i<res.length;i++){
    var opt=new Option(getNodeValue("com",res[i]),getNodeValue("eli",res[i])+"--"+getNodeValue("ext",res[i]));
    sel.options[i+inc]=opt;
  }
  //sel.style.width="150px";
  document.getElementById("commune").style.visibility="visible";
}
function getNodeValue(t,p){
	if(this.xGetElementsByTagName(t,p)[0]==undefined && t.indexOf(":")==-1){
		return null;
	}
	if(document.all){
		if(this.xGetElementsByTagName(t,p)[0].childNodes.length>0)
				return this.xGetElementsByTagName(t,p)[0].childNodes[0].nodeValue;
			else 
				return null;
		}
	else{
		if(t.indexOf(":")!=-1){
			var splitted=t.split(":");
			if(this.xGetElementsByTagName(splitted[1],p)[0].childNodes.length>0)
				return this.xGetElementsByTagName(splitted[1],p)[0].childNodes[0].nodeValue;
			else
				return null;
		}
		else{
			if(this.xGetElementsByTagName(t,p)[0].childNodes.length>0)
				return this.xGetElementsByTagName(t,p)[0].childNodes[0].nodeValue;
			else 
				return null;
		}
	}
}
function createReqObj(){
   var xhr=null;
   try{
     xhr = new XMLHttpRequest(); 
   } catch(e){ 
     try { xhr = new ActiveXObject("Msxml2.XMLHTTP"); } 
     catch (e2)
    { 
       try { xhr = new ActiveXObject("Microsoft.XMLHTTP"); } 
       catch (e) {
		alert("Navigateur incompatible !!");
		return;
	   }
    }
  }
  return xhr;
}
function getdatas(){
  var xhr=createReqObj();
  xhr.onreadystatechange = function(){ 
     var xmlDoc=null;
     //document.ajax.dyn.value="Wait server...";                
     if(xhr.readyState == 4){
        if(xhr.status == 200){ 
          	try{ 
			    var parser=new DOMParser();
			    xmlDoc=parser.parseFromString(xhr.responseText,"text/xml");
                            parseresults(xmlDoc);
			    }
			  catch(e) {
				alert(e.message);
			  }
			
        } 
       else { 
			//document.ajax.dyn.value="Error: returned status code " + xhr.status + " " + xhr.statusText; 
			alert("Error: returned status code " + xhr.status + " " + xhr.statusText);
	   }
    } 
 }; 
 
	xhr.open("GET", "dbreq.php?cp="+cp, true); 
	xhr.send(null); 
}

// xGetElementsByTagName r5, Copyright 2002-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xGetElementsByTagName(t,p)
{
  var list = null;
  t = t || '*';
  p = this.xGetElementById(p) || document;
  if (typeof p.getElementsByTagName != 'undefined') { // DOM1
    list = p.getElementsByTagName(t);
    if (t=='*' && (!list || !list.length)) list = p.all; // IE5 '*' bug
  }
  else { // IE4 object model
    if (t=='*') list = p.all;
    else if (p.all && p.all.tags) list = p.all.tags(t);
  }
  return list || [];
}
// xGetElementById r2, Copyright 2001-2007 Michael Foster (Cross-Browser.com)
// Part of X, a Cross-Browser Javascript Library, Distributed under the terms of the GNU LGPL

function xGetElementById(e)
{
  if(typeof(e)=='string') {
    if(document.getElementById) e=document.getElementById(e);
    else if(document.all) e=document.all[e];
    else e=null;
  }
  return e;
}
if (typeof DOMParser == "undefined") {
   DOMParser = function () {}
   DOMParser.prototype.parseFromString = function (str, contentType) {
      if (typeof ActiveXObject != "undefined") {
         var d = new ActiveXObject("MSXML2.DomDocument");
         d.loadXML(str);
         return d;
      } else if (typeof XMLHttpRequest != "undefined") {
         var req = new XMLHttpRequest;
         req.open("GET", "data:" + (contentType || "application/xml") +";charset=utf-8," + encodeURIComponent(str), false);
         if (req.overrideMimeType) {
            req.overrideMimeType(contentType);
         }
         req.send(null);
         return req.responseXML;
      }
   }
}
