﻿var type_os_current  ;
var current_sub_show = Array();
String.prototype.trim = function() {
a = this.replace(/^\s+/, '');
return a.replace(/\s+$/, '');
};
var jsonRequest;

function load_etablissements(select,dont_clean_div,dont_clean_others){
    var type_os = select.attributes['type_os'].nodeValue;
    var valeur = select.value;
    if(valeur == "tous"){
        charger_tous(select);
    }
    if(!dont_clean_div){
        if(type_os_current && type_os_current != type_os){
            vide_type_os_current();        
        }
        type_os_current = type_os ; 
    }
    if(!dont_clean_others && type_os_current){
        document.getElementById('block_etablissement_'+type_os_current).innerHTML = "";
    }
    if(valeur.indexOf("sub_") > 0){
        
        if(current_sub_show[type_os]){
            current_sub_show[type_os].style.display = 'none';
        }
        current_sub_show[type_os] = document.getElementById(valeur);
        current_sub_show[type_os].style.display = 'block';
        
    }
    else{   
        
        if(valeur != ""){
            var callback =
            {
              success: function(o) {  
                    AddHTMLToDiv('block_etablissement_'+o.argument[0],o.responseText,o.argument[1]);                    
              },
              failure: function(o) {/*failure handler code*/},
              argument: [  type_os,dont_clean_div],
              cache:false
            };
           
                var transaction = YAHOO.util.Connect.asyncRequest('GET',"VueThematique.aspx?path=/ThematiqueOS/xml"+valeur+"&old_lg="+old_langue+"&iso_lg="+langue,callback);
           
            
             //jsonRequest = new Request.HTML().get("AjaxHTMLContent.aspx?path=/ThematiqueOS/xml"+valeur+"&old_lg="+old_langue+"&iso_lg="+langue);
           //jsonRequest.success = load_complete;
            //PageMethods.LoadEtablissement("/ThematiqueOS/xml"+valeur,old_langue,langue,load_complete,load_error,load_timeout);
        }              
    }
}

function AddHTMLToDiv(id,html,dont_clean){
    if(!dont_clean){
        if( tab_produits)
             tab_produits = new Array();
         document.getElementById(id).innerHTML = html;
    }
    else{
       document.getElementById(id).innerHTML +=html;
    }
    var js = document.getElementById('input_js');
    eval(js.value);
    js.parentNode.removeChild(js);
}

function vide_type_os_current(){
    if(type_os_current){
        document.getElementById('block_etablissement_'+type_os_current).innerHTML = "";    
        var tab_select = document.getElementById("filtres_"+type_os_current).getElementsByTagName("select");
        for(var i = 0;i<tab_select.length;i++){
            tab_select[i].options[0].selected = true;
            if(i > 0){
                tab_select[i].parentNode.style.display = 'none';
            }
        }
    }
}
function load_complete(responseTree, responseElements, responseHTML, responseJavaScript){    
    document.getElementById('block_etablissement_'+type_os_current).innerHTML = responseTree;
    eval(document.getElementById('input_js').value);
}
function load_error(){alert('Error');}
function load_timeout(){alert('timeout');}
var current_os_show;
var calendar_deb ;
var calendar_fin ;
function montrer(id_os){
    if(current_os_show && current_os_show.id == 'detail_os_'+id_os)
    {
        current_os_show.style.display = 'none';
        current_os_show = null;
    }
    else
    {
        if(current_os_show)
        {
            current_os_show.style.display = 'none';
        }
        current_os_show = document.getElementById('detail_os_'+id_os);
        current_os_show.style.display = 'block';        
        var tbdate_deb = document.getElementById('tb_deb_'+id_os);
        var tbdate_fin = document.getElementById('tb_fin_'+id_os);
        
        calendar_deb = date_select = new SelectDate(id_os,'deb','calendar_deb'); //new Calendar('calendar_deb_'+id_os,tbdate_deb,[{inputField:'debut_'+id_os,dateFormat:"dd/MM/yyyy",numMonths:2,language:langue}]);
        calendar_fin = new SelectDate(id_os,'fin','calendar_fin');//new Calendar('calendar_fin_'+id_os,tbdate_deb,[{inputField:'fin_'+id_os,dateFormat:"dd/MM/yyyy",numMonths:2,language:langue}]);
        calendar_deb._calendar_sup = calendar_fin;
    }
}
function ouvrir_reserve_os(id_os){
    var os = tab_produits['os_'+id_os];
    var date_deb = document.getElementById('tb_deb_'+id_os).value;
    var date_fin = document.getElementById('tb_fin_'+id_os).value;
    if(date_deb == '' || date_fin == ''){
        alert(message_date_obligatoire);
        return false;
    }
    var prods = document.getElementsByName("rad_prod_"+id_os);
    var type_hebergement = "";
    var id_produit = 0;
    if(prods.length == 0){// cas ou aucun produit n'est affecté donc affecté a un type de produit
        var types = document.getElementsByName("type_prod_"+id_os);
        if(types.length == 1){
             type_hebergement = types[0].value;
        }
        else{
            var tout_emplacement = false;
            var tout_chambre = false;
            var tout_locatif = false;
            for(var i = 0;i<types.length;i++){
                if(types[i].value == "EN")
                    tout_emplacement = true;
                if(types[i].value == "LN")
                    tout_locatif = true;
                if(types[i].value == "CN")
                    tout_chambre = true;
            }
            if(tout_locatif)
                type_hebergement = 'LN';
            else if(tout_emplacement)
                type_hebergement = 'EN';
            else if (tout_chambre)
                type_hebergement = 'CN';
        }
    }
    else{ //sur un produit specifique va chercher son ID        
        if(prods.length == 1){//cas ou il n'y a qu'un produit
            id_produit = prods[0].value;
        }
        if(prods.length > 1){
            for(var i = 0;i<prods.length;i++){
                if(prods[i].checked)
                    id_produit = prods[i].value;
            }
        }
        if(id_produit == 0){
            alert(message_prod_obligatoire);
            return false;
        }            
        type_hebergement = os['prod_'+id_produit].type_pro;
    }
    //pour la date cherche la bonne periode
    var id_periode = 0;
    var date_deb_compare = formate_date_pour_compare(date_deb);
    var date_fin_compare = formate_date_pour_compare(date_fin);
    for(var i = 0;i<os.periode.length && id_periode == 0;i++){
        var p = os.periode[i];
        if( formate_date_pour_compare(p.date_deb) <= date_deb_compare &&  formate_date_pour_compare(p.date_fin) >= date_fin_compare && date_deb_compare < date_fin_compare){
            id_periode = p.id;
        }
    }
    if(id_periode == 0){
        alert(message_date_incorrect);
        return false;   
    } 
    date_deb = formate_date_pour_re(date_deb);
    date_fin = formate_date_pour_re(date_fin);
    redir_os_sh(os.nc,moteur,old_langue,type_hebergement,date_deb,date_fin,os.type_os,id_periode,id_produit);          
}
function redir_os_sh(nc,mo,old_lg,type_prod,date_deb,date_fin,type_os,id_periode,id_produit){
    var url = "http://www.secureholiday.net/reservation.asp?nc="+nc+"&lg="+old_lg+"&mo="+mo+"&re="+type_prod+"@"+date_deb+"@"+date_fin+"&osmark="+type_os+"@"+id_periode;
    if(id_produit != 0){
        url += "&pmark="+id_produit;
    }
    window.open(url);      
}
function montrer_dmds(id_os,id_prod){
    var os = tab_produits['os_'+id_os];
    var prod = os['prod_'+id_prod];
    var periode = os.periode[0];
    
    redir_os_sh(os.nc,moteur,old_langue,prod.type_pro,formate_date_pour_re(periode.date_deb),formate_date_pour_re(periode.date_fin),os.type_os,periode.id,id_prod);
}
function formate_date_pour_compare(date){
    var date_array = date.split('/');   
    return date_array[2].trim()+'/'+date_array[1].trim()+'/'+date_array[0].trim();
}
function formate_date_pour_re(date){
    var date_array = date.split('/');   
    return date_array[0].trim()+'@'+date_array[1].trim()+'@'+date_array[2].trim();
}
function charger_tous(liste){
    var opts = liste.options;
    for(var i = 0;i<opts.length;i++){
         if(opts[i].value!="tous" && opts[i].value!=""){
            opts[i].selected = true;        
            load_etablissements(liste,true,true);
         }
    }
    for(var i = 0;i<opts.length;i++){
        if(opts[i].value=="tous"){ 
            opts[i].selected = true;
        }
    }   
    
}
var getElementsByClassName = function (className, tag, elm){
	if (document.getElementsByClassName) {
		getElementsByClassName = function (className, tag, elm) {
			elm = elm || document;
			var elements = elm.getElementsByClassName(className),
				nodeName = (tag)? new RegExp("\\b" + tag + "\\b", "i") : null,
				returnElements = [],
				current;
			for(var i=0, il=elements.length; i<il; i+=1){
				current = elements[i];
				if(!nodeName || nodeName.test(current.nodeName)) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	else if (document.evaluate) {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = "",
				xhtmlNamespace = "http://www.w3.org/1999/xhtml",
				namespaceResolver = (document.documentElement.namespaceURI === xhtmlNamespace)? xhtmlNamespace : null,
				returnElements = [],
				elements,
				node;
			for(var j=0, jl=classes.length; j<jl; j+=1){
				classesToCheck += "[contains(concat(' ', @class, ' '), ' " + classes[j] + " ')]";
			}
			try	{
				elements = document.evaluate(".//" + tag + classesToCheck, elm, namespaceResolver, 0, null);
			}
			catch (e) {
				elements = document.evaluate(".//" + tag + classesToCheck, elm, null, 0, null);
			}
			while ((node = elements.iterateNext())) {
				returnElements.push(node);
			}
			return returnElements;
		};
	}
	else {
		getElementsByClassName = function (className, tag, elm) {
			tag = tag || "*";
			elm = elm || document;
			var classes = className.split(" "),
				classesToCheck = [],
				elements = (tag === "*" && elm.all)? elm.all : elm.getElementsByTagName(tag),
				current,
				returnElements = [],
				match;
			for(var k=0, kl=classes.length; k<kl; k+=1){
				classesToCheck.push(new RegExp("(^|\\s)" + classes[k] + "(\\s|$)"));
			}
			for(var l=0, ll=elements.length; l<ll; l+=1){
				current = elements[l];
				match = false;
				for(var m=0, ml=classesToCheck.length; m<ml; m+=1){
					match = classesToCheck[m].test(current.className);
					if (!match) {
						break;
					}
				}
				if (match) {
					returnElements.push(current);
				}
			}
			return returnElements;
		};
	}
	return getElementsByClassName(className, tag, elm);
};

