//==================================================================================
// Variables et constantes
//==================================================================================
var AlphaRIBConvert = "12345678912345678923456789";
var AlphaChars      = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
var DigitChars      = "0123456789";
var ACharCode       = "A".charCodeAt(0);

//==================================================================================
// Fonction permettant de réceptionner une valeur transmise à une URL
//==================================================================================
function getHTTPObject(aDestination)
{
  var xmlhttp = false;

  /* Compilation conditionnelle d'IE */
  /*@cc_on
  @if (@_jscript_version >= 5)
     try
     {
        xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
     }
     catch (e)
     {
        try
        {
           xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
        }
        catch (E)
        {
           xmlhttp = false;
        }
     }
  @else
     xmlhttp = false;
  @end @*/

  /* on essaie de créer l'objet si ce n'est pas déjà fait */
  /*if (!xmlhttp && typeof XMLHttpRequest != 'undefined')
  {
     try
     {
        xmlhttp = new XMLHttpRequest();
     }
     catch (e)
     {
        xmlhttp = false;
     }
  }*/
  
  
  //Création de l'objet XHR.
  if(window.XMLHttpRequest) // Firefox et autres
  xmlhttp = new XMLHttpRequest();
  else if(window.ActiveXObject){ // Internet Explorer
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (e1) {
        xmlhttp = null;
      }
    }
  }
  else { // XMLHttpRequest non supporté par le navigateur
    alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
  }
  
  
  if (xmlhttp)
  {
     /* on définit ce qui doit se passer quand la page répondra */
     xmlhttp.onreadystatechange=function()
     {
        if (xmlhttp.readyState == 4) /* 4 : état "complete" */
        {
           if (xmlhttp.status == 200) /* 200 : code HTTP pour OK */
           {
           	var resultat
           	resultat = xmlhttp.responseText.split(";")
           	for (var ind=0;ind < resultat.length-1;ind++) {
           		document.getElementById(aDestination).options[ind] = new Option(resultat[ind],resultat[ind]);
           	}
           }
        }
     }
  }
  return xmlhttp;
}

// Fonction de vérification de controle
function CtrlHadText(Ctrl, Msg){
 if(Ctrl.value == ''){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else return true;
}

//==================================================================================
// Fonction de récupération du code postale
//==================================================================================
function getCityFromNPA(aNPA,aDestination) { 
	document.getElementById(aDestination).innerHTML = '';
	if (aNPA.length >= 4) {
		var xmlhttp = getHTTPObject(aDestination); 
		//xmlhttp.open("GET", "http://localhost:93/ws/getCityFromNPAFrance.asp?npa="+aNPA,true);
		xmlhttp.open("GET", "http://www.hollystar.fr/ws/getCityFromNPAFrance.asp?npa="+aNPA,true);
		//xmlhttp.open("GET", "http://192.168.0.89:93/ws/getCityFromNPAFrance.asp?npa="+aNPA,true);
		xmlhttp.send(null);
	}
}

//==================================================================================
// Fonction de remplacement des lettre en chiffres pour les RIBS
//==================================================================================
function ReplaceRIBLetters(RIBStr){
 // Variables locales
 var Txt, CharCode, result;

 // Récupération du code
 Txt=RIBStr.toUpperCase();
 result="";
 for(i=0; i<Txt.length; i++){
  if( AlphaChars.indexOf( Txt.charAt(i) )!=-1 ){
   CharCode=Txt.charCodeAt( i ) - ACharCode ;
   result += AlphaRIBConvert.charAt( CharCode );
  }else
   result += Txt.charAt( i );
 };
 
 // Retourne le résultat
 return result;
}

//==================================================================================
// Fonction de vérification de caractères
//==================================================================================
function CheckChars(TxtToCheck, CharsNeeded){
 // Récupération du code
 for( i=TxtToCheck.length-1; i>=0; i--){
  if( CharsNeeded.indexOf( TxtToCheck.charAt(i) )==-1 )
   return false;
 };

 // Retourne vrai
 return true;
}

//==================================================================================
// Fonction de vérification de la validité d'un RIB
//==================================================================================
function IsRibValid( RibStr ){
 // Variables locales
 var RIB, A, B, C, Cle, CleCalc, result;

 // Initialisation
 RIB=ReplaceRIBLetters(RibStr)
 if(! CheckChars(RIB, DigitChars ) )
  return false;

 // Le RIB est de bonne longueur ?
 if(RIB.length==23){
  // Récupération des données de clacul
  A=   Number(RIB.substr( 0, 7));
  B=   Number(RIB.substr( 7, 7));
  C=   Number(RIB.substr(14, 7));
  Cle= Number(RIB.substr(21, 2));
  
  // Calcul la clé
  CleCalc=97-(62*A+34*B+3*C) % 97;
   
  // Détermine la validité de la clé
  if(Cle == CleCalc){
  return true;
  }
  else
  {
  return false;
  }
 }; // Fin test longeur

 // Retourne le résultat
 alert("pas bon nb");
}



// Fonction de vérification de controle
function CtrlHadText(Ctrl, Msg){
 if(Ctrl.value == ''){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else return true;
}

function CtrlAboIsChecked(Msg){  
  if(document.getElementById("ID_TSB_CHOICE")==null){;
	if(document.getElementById("DEC_SILVER")!=null)
		limitAbo=document.getElementById("DEC_SILVER")
	else
		limitAbo=document.getElementById("BUD_SILVER")
	if(
		!limitAbo.checked
		&& !document.getElementById("SILVER").checked
		&& !document.getElementById("GOLD").checked
		&& !document.getElementById("PLATINIUM").checked
		)
	{
	alert(Msg);
	return false;
	}else return true;
  }
  else return true;	
}

function CtrlEqual(Ctrl1, Ctrl2, Msg){
 if(Ctrl1.value != Ctrl2.value){
  Ctrl1.focus();
  alert(Msg);
  return false;
 }else return true;
}

function CtrlIsDate(Ctrl, Msg){
 if(! isDate(Ctrl.value)){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else return true;
}

function CtrlIsPhone(Ctrl, Obl, Msg){
 if(! isPhone(Ctrl.value, Obl)){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else return true;
}


function CtrlIsPhoneFrance(Ctrl, Obl, Msg){
 if(! isPhoneFrance(Ctrl.value, Obl)){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else return true;
}


function CtrlIsEmail(Ctrl, Msg){
 if(! isEmail(Ctrl.value)){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else return true;
}

function CtrlIsRIB(Ctrl, Msg){
 if(! IsRibValid(Ctrl.value)){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else return true;
}

function CtrlIsDigit(Ctrl, Msg){
 for(I=0;I<String(Ctrl.value).length;I++){
   if (Ctrl.value.charAt(I)=='' || DigitChars.indexOf(Ctrl.value.charAt(I)) == -1){
     alert(Msg);
     Ctrl.focus();
     return false; 
     break;           
   }
 }
 return true; 
}

function CtrlIsFrenchMetropolitanZipCode(Ctrl, Msg){
 var Dep, Ct;
 Ct=String(Ctrl.value);
 if( Ct.length!=5 ){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else{
  // Récupération des deux premiers caractères
  Dep = Ct.substring(0,2);
  for(var i=0;i<Ct.length;i++){
   if( "0123456789".indexOf(Ct.charAt(i))==-1){
    Ctrl.focus();
    alert(Msg);
    return false;
   }
  }
  if( Dep=="97" || Dep=="98"){
   Ctrl.focus();
   alert(Msg);
   return false;
  }else return true;
 };
}

function CtrlMaxSize(Ctrl, MaxSize, Msg){
 if( String(Ctrl.value).length >MaxSize ){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else return true;
}

function CtrlMinSize(Ctrl, MinSize, Msg){
 if( String(Ctrl.value).length <MinSize ){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else return true;
}

function CtrlNeedSize(Ctrl, aSize, Msg){
 if( String(Ctrl.value).length!=aSize ){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else return true;
}

function LostCodes(){
 location.href="lost_codes.asp";
}
function Connect(aform, Msg){
 var frm=document.forms[aform];
 frm.login.value = frm.login.value.replace(/\s+$/,"");
 frm.password.value = frm.password.value.replace(/\s+$/,"");
 if(! frm.AutoConnect.checked || (frm.AutoConnect.checked && confirm(Msg))){
  if(frm.redir.value==""){frm.redir.value="default_abn.asp"}
  frm.action='connect.asp';
  frm.submit();
 };
}

function ConnectVOD(aform){
 var frm=document.forms[aform];
  if(frm.redir.value==""){frm.redir.value="vod_movies_streaming.asp"}
  frm.action="vod_connect.asp";
  frm.submit();
}

function openVodPlayer(url){
    location.href="vod.asp";
    params="width=1,height=1,left=3000,top=3000,toolbar=0,menubar=0,location=0,status=0,scrollbars=0,resizable=0"    
    win = window.open("", "openVodPlayer",params);
    win.window.document.write("<script>");
    win.window.document.write("document.write(\"<html><body bgcolor=000000></body></html>\");");
    win.window.document.write("try{ ");
        win.window.document.write("location.href=\""+url+"\";");
    win.window.document.write("}");
    win.window.document.write("catch(err){");
        win.window.document.write("location.href=\"http://www.hollystar.ch/player/dvdfly%20Player%20setup.exe\";");
        win.window.document.write(" setTimeout(\"self.close();\",5000);");
    win.window.document.write("}");
    win.window.document.write("<\/script>");
    win.close();
}

function CtrlIsAdult(Ctrl, Msg) {
 if(! isAdult(Ctrl.value)){
  Ctrl.focus();
  alert(Msg);
  return false;
 }else return true;
}

function isAdult(d) { 
 j = parseInt(d.split("/")[0],10); // jour
 m = parseInt(d.split("/")[1],10); // mois
 a = parseInt(d.split("/")[2],10); // année
  
 // Si l'année n'est composée que de 2 chiffres on complète automatiquement
 if (a < 1000) {
  if (a < 30)    a+=2000; // Si a < 30 alors on ajoute 2000 sinon on ajoute 1900
  else a+=1900;
 }
 
 var date = new Date();
 date.setFullYear(a,m-1,j); //date entrée
 var actdate= new Date();	//date actuelle
 
 if(actdate.getFullYear()-date.getFullYear()<=18)
	if(actdate.getFullYear()-date.getFullYear()==18){
		if(actdate.getMonth()-date.getMonth()<=0)			
			if(actdate.getMonth()-date.getMonth()==0)
				if(actdate.getDate()-date.getDate()<0)
					return false;
				else
					return true;
			else
				return false;
		else
			return true;
	}
	else			
		return false;
  else
	return true;
}

// Vérification d'une date
function isDate(d) {
 // si la variable est vide on retourne faux
 if (d == "") return false;
 
 // Vérification du format de la date
 var I=0; var Digits="0123456789";
 if( d.charAt(I)=='' || Digits.indexOf(d.charAt(I++)) == -1) return false;
 if( d.charAt(I)=='' || Digits.indexOf(d.charAt(I)) != -1) I++;
 if( d.charAt(I)=='' || d.charAt(I++)!="/") return false;
 if( d.charAt(I)=='' || Digits.indexOf(d.charAt(I++)) == -1) return false;
 if( Digits.indexOf(d.charAt(I)) != -1) I++;
 if( d.charAt(I)=='' || d.charAt(I++)!="/") return false;
 if( d.charAt(I)=='' || Digits.indexOf(d.charAt(I++)) == -1) return false;
 if( d.charAt(I)=='' || Digits.indexOf(d.charAt(I++)) == -1) return false;
 if( d.charAt(I)!='' && Digits.indexOf(d.charAt(I)) != -1){
  I++;
  if( d.charAt(I)=='' || Digits.indexOf(d.charAt(I++)) == -1) return false;
 }
 if( I!=d.length ) return false;    

 // On sépare la date en 3 variables pour vérification, parseInt() converti du texte en entier
 j = parseInt(d.split("/")[0],10); // jour
 m = parseInt(d.split("/")[1],10); // mois
 a = parseInt(d.split("/")[2],10); // année
 
 // Si l'année n'est composée que de 2 chiffres on complète automatiquement
 if (a < 1000) {
  if (a < 30)    a+=2000; // Si a < 30 alors on ajoute 2000 sinon on ajoute 1900
  else a+=1900;
 }

 // Définition du dernier jour de février
 // Année bissextile si annnée divisible par 4 et que ce n'est pas un siècle, ou bien si divisible par 400
 if (a%4 == 0 && a%100 !=0 || a%400 == 0) fev = 29;
 else fev = 28;

 // Nombre de jours pour chaque mois
 nbJours = new Array(31,fev,31,30,31,30,31,31,30,31,30,31);

 // Enfin, retourne vrai si le jour est bien entre 1 et le bon nombre de jours, idem pour les mois, sinon retourn faux
 return ( m >= 1 && m <=12 && j >= 1 && j <= nbJours[m-1] );
}

// Vérification du format du téléphone
function isPhone(d,Obl) {
 // si la variable est vide on retourne faux
 if (d == "" && Obl == 1) return false;
 var separ = " "
 
 if (d != ""){
   if( d.charAt(0)=='' || DigitChars.indexOf(d.charAt(0)) != 0) return false;
   if( d.charAt(1)=='' || DigitChars.indexOf(d.charAt(1)) == -1) return false;
   
   if(( d.charAt(2)== separ && d.charAt(3)== separ ) || ( d.charAt(2)!= separ && d.charAt(3)!= separ ))return false;
   
   if( d.charAt(2)== separ ){
     if( d.charAt(1)=='' || DigitChars.indexOf(d.charAt(1)) != 1) return false;
     for(I=3;I<10;I++)       
       if( d.charAt(I)=='' || DigitChars.indexOf(d.charAt(I)) == -1) return false;
     if( I != d.length ) return false;
   }
        
   if( d.charAt(3)== separ ){
     for(I=4;I<11;I++)
       if( d.charAt(I)=='' || DigitChars.indexOf(d.charAt(I)) == -1) return false;
     if( I != d.length ) return false;
   }
 }
   return true;
}

// Vérification du format du téléphone Francais, c'est à dire 10 chiffres
function isPhoneFrance(d,Obl) {
 // si la variable est vide on retourne faux
 if (d == "" && Obl == 1) return false;
 
 if (d != ""){
	 // on supprime tous les espaces
	 d = d.split(" ");
	 d = d.join("");
	
	 //si le résultat ne contient pas 10 chiffres, alors retourne faux
	 if (d.length != 10 || isNaN(d)==true)
	 	return false;
	 else
	 	return true;
	}
	return true;
}

// Vérification du format de l'email
function isEmail(d) {
 var at=0; var atPos=0; var point=0;
 for(I=0;I<d.length;I++)
   if(d.charAt(I)== " ")
     return false; 
 if(d.charAt(0)!= "@"){
   for(I=1;I<d.length-3;I++)
     if(d.charAt(I) == "@"){
		at=at+1;
		atPos=I;
		if(d.charAt(I-1) == "." || d.charAt(I+1) == ".")
		  return false;
     }
   for(I=atPos+2;I<d.length-2;I++)
	 if(d.charAt(I) == "."){
		point=point+1;
	 }
   }
   if(at != 1 || point<1)
     return false;   
 for(I=0;I<d.length;I++)
   if(d.charAt(I) == "." && d.charAt(I+1) == ".")
       return false;    
 for(I=d.length-2;I<d.length;I++)
   if(d.charAt(I)== "@" || d.charAt(I)== ".")
	 return false;
 return true;
}

function toggle(id){    
    if(document.getElementById(id).style.display=="")
        document.getElementById(id).style.display="none";
    else
        document.getElementById(id).style.display="";
}
