// verwendet jquery-1.4.2.min.js

var Indmask = {

  act_model : '#model_femme_act', //Vorbelegung
  running : false, // global alle func sperren
  speedout : 100, // ausfaden ms
  speedin : 500, // einfaden ms

  switchModel : function(gender, view){

    if (!this.running){

        var self = this;

       //sperren
       this.running = true;

       // CSS-IDs/Klassen
       var el_model = '#model_' + gender + '_act';
	   
       var el_view_on = '.box_body_' + gender + '_' + view;
	   var el_view_off = '.box_body_' + gender + '_' + (view == 'adult' ? 'child' : 'adult');
      // var el_view_off = '.box_body_' + gender + '_' + (view == 'front' ? 'back' : 'front');
	
		
		
		// to.do -- Ersetzen durcfh schleife
		if(view == 'child')
		{
			var el_control_on = '#model_child_inact'
			// var el_control_off = '#model_' + gender + '_inact';	
			
			var ell_control_off = new Array('#model_homme_inact', '#model_femme_inact');			
		}
		else
		{
			var el_control_on = '#model_' + (gender == 'femme' ? 'homme' : 'femme') + '_inact';
			//var el_control_on = '#model_' + (gender == 'femme' ? 'homme' : 'femme') + '_inact';
			// var el_control_off = '#model_' + gender + '_inact';	
			
			var ell_control_off = new Array('#model_' + gender + '_inact', '#model_child_inact');	
		
		}


		for(i = 0; i < ell_control_off.length; i++)
		{
			// je nach entscheidung männlich oder weiblich ausblenden
			$(ell_control_off[i]).fadeOut(this.speedout, function(){
				$(el_control_on).fadeIn(self.speedin, function(){
				  // aktives Modell speichern
				  self.act_model = el_model;
				  // freigeben
				  self.running = false;
				});
			});			
		}
		
      // Ansicht schalten (front/back)
      $(el_view_on).css("display","block");
      $(el_view_off).css("display","none");

      // Modell umswitchen (femme/homme)
      $(this.act_model).fadeOut(this.speedout, function(){
        $(el_model).fadeIn(self.speedin);
      });


    }
    return false;
  },

  switchView : function(gender, view){

    if (!this.running){

      var self = this;

       // CSS-IDs/Klassen
       var el_view_on = '.box_body_' + gender + '_' + view;
	    var el_view_off = '.box_body_' + gender + '_' + (view == 'adult' ? 'child' : 'adult');
       //var el_view_off = '.box_body_' + gender + '_' + (view == 'front' ? 'back' : 'front');

       if($(el_view_on).css('display') == 'none') {
           //sperren
          this.running = true;
          $(el_view_off).fadeOut(this.speedout, function(){
          $(el_view_on).fadeIn(self.speedin, function(){
            // freigeben
            self.running = false;
          });
        });
       }
    }
    return false;
  },

  //--------------------------------------------------------------------------------------------
  
  // Handle für AjaxRequests
  ajaxrequest : {
    indication : null,
    clinic : null
  },

  loadIndications : function (gender, bodypart){

    // closure für unlock
    var self = this;
    var requestname = 'indication';
    var url = '/parts/ajax_indikationssuche.php';
    var querystring = 'gender=' + gender + '&' +'bodypart=' + bodypart;
    var target = '#target_indikationen';
    var loadingclass = 'ajax_loading';
    var errormsg = '<p class="error">Fehler: Konnte Daten nicht laden.</p>';

    if(this.ajaxrequest[requestname]){
      //laufenden request abbrechen
      this.ajaxrequest[requestname].abort();
      // zurücksetzen
      //this.ajaxrequest[requestname] = null;
    }

    // AusgabeContainer leeren
    $(target).empty();
    // Lade-Gif
    $(target).addClass(loadingclass);
    // Ausgabe Daten
    var callback = function(html){
      $(target).removeClass(loadingclass);
      $(target).append(html);
    }
    // Ausgabe Fehlermeldung
    var errorHandler = function(){
      $(target).removeClass(loadingclass);
      $(target).append(errormsg);
    }
    // freigeben
    var onComplete = function(){
      self.ajaxrequest.indication = null;
    }

   this.loadData(requestname, url, querystring, callback, errorHandler, onComplete);
    
  },
   
   //Bundesland
  
    loadBundesland : function (bland){

        // closure für unlock
        var self = this;
        var requestname = 'indication';
        var url = '/parts/ajax_bundesland.php';
        var querystring = 'bland=' + bland;
        var target = '#target_bundesland';
        var loadingclass = 'ajax_loading';
        var errormsg = '<p class="error">Fehler: Konnte Daten nicht laden.</p>';

        if(this.ajaxrequest[requestname]){
          //laufenden request abbrechen
          this.ajaxrequest[requestname].abort();
          // zurücksetzen
          //this.ajaxrequest[requestname] = null;
        }

        // AusgabeContainer leeren
        $(target).empty();
        // Lade-Gif
        $(target).addClass(loadingclass);
        // Ausgabe Daten
        var callback = function(html){
          $(target).removeClass(loadingclass);
          $(target).append(html);
          
          //Feld markieren
        }
        // Ausgabe Fehlermeldung
        var errorHandler = function(){
          $(target).removeClass(loadingclass);
          $(target).append(errormsg);
        }
        // freigeben
        var onComplete = function(){
          self.ajaxrequest.indication = null;
        }

       this.loadData(requestname, url, querystring, callback, errorHandler, onComplete);
        
    },
   
  //Bland Indikationen
  
    loadBlandIndications : function (bland){ //gender, bodypart

        // closure für unlock
        var self = this;
        var requestname = 'indication';
        var url = '/parts/ajax_bundindikationssuche.php';
        var querystring = 'bland=' + bland;
        var target = '#target_indikationen';
        var loadingclass = 'ajax_loading';
        var errormsg = '<p class="error">Fehler: Konnte Daten nicht laden.</p>';

        if(this.ajaxrequest[requestname]){
          //laufenden request abbrechen
          this.ajaxrequest[requestname].abort();
          // zurücksetzen
          //this.ajaxrequest[requestname] = null;
        }

        // AusgabeContainer leeren
        $(target).empty();
        // Lade-Gif
        $(target).addClass(loadingclass);
        // Ausgabe Daten
        var callback = function(html){
          $(target).removeClass(loadingclass);
          $(target).append(html);
          
          //Feld markieren
        }
        // Ausgabe Fehlermeldung
        var errorHandler = function(){
          $(target).removeClass(loadingclass);
          $(target).append(errormsg);
        }
        // freigeben
        var onComplete = function(){
          self.ajaxrequest.indication = null;
        }

       this.loadData(requestname, url, querystring, callback, errorHandler, onComplete);
        
    },
  
    //Bland Klinikien
    loadBlandMultiClinics : function (){

	var gender = 0;
	var bodypart = 0;  
   
	//alert(gender);
	//alert(bodypart);
    
    //Ermittle Plz
    var plz = document.getElementById("plz").value;
    
    //Ermittle Bundesland
    var bland = document.getElementById("bland").value;
    
    //Ermittle VMK
    
     
    if( document.getElementById("vmk").checked == true){
        var vmk = document.getElementById("vmk").value;
    }
    else{
        var vmk = 0;
    }
    
   // alert(vmk);
    
    //alert(bland);
   
   //Ermittle die Anzahl aller Checkboxen
	var indicationsarraylaenge = document.getElementsByName("indikationen[]").length;
	//alert(indicationsarraylaenge);
	
	//Hole alle Checkboxen
	
	var indications = new Array();
	for (var i=0; i<indicationsarraylaenge;i++){
		var elements = document.getElementById('indikationen_'+i).value;
		if(document.getElementById('indikationen_'+i).checked == true){
			indications[i] = elements;
			//alert(elements);
		}
		else{
			indications[i] = 0;
		}
	}
		   
    // closure für unlock
    var self = this;
    var requestname = 'target_indikationen';
    var url = '/parts/ajax_kliniksuchemulti.php';
    var querystring = 'gender=' + gender + '&' +'bodypart=' + bodypart + '&' + 'indication=' + indications + '&' + 'plz=' + plz + '&' + 'bland='+ bland + '&' + 'vmk='+ vmk + '';
    var target = '#klinik_ergebnise';
    var loadingclass = 'ajax_loading';
	// var loadingclassAfter = 'targetBG';
    var errormsg = '<p class="error">Fehler: Konnte Daten nicht laden.</p>';

    if(this.ajaxrequest[requestname]){
      //laufenden request abbrechen
      this.ajaxrequest[requestname].abort();
      // zurücksetzen
      //this.ajaxrequest[requestname] = null;
    }

    // AusgabeContainer leeren
    $(target).empty();
    // Lade-Gif
	// $(target).removeClass(loadingclassAfter);
    $(target).addClass(loadingclass);
    // Ausgabe Daten
    var callback = function(html){
      $(target).removeClass(loadingclass);
      $(target).append(html);
    }
	
	// $(target).addClass(loadingclassAfter);
	
    // Ausgabe Fehlermeldung
    var errorHandler = function(){
      $(target).removeClass(loadingclass);
      $(target).append(errormsg);
    }
    // freigeben
    var onComplete = function(){
      self.ajaxrequest.clinic = null;
    }

   this.loadData(requestname, url, querystring, callback, errorHandler, onComplete);
   
  },

  loadClinics : function (gender, bodypart, indication){

    // closure für unlock
    var self = this;
    var requestname = 'clinic';
    var url = '/parts/ajax_kliniksuche.php';
    var querystring = 'gender=' + gender + '&' +'bodypart=' + bodypart + '&' + 'indication=' + indication;
    var target = '#target_kliniken';
    var loadingclass = 'ajax_loading';
    var errormsg = '<p class="error">Fehler: Konnte Daten nicht laden.</p>';

    if(this.ajaxrequest[requestname]){
      //laufenden request abbrechen
      this.ajaxrequest[requestname].abort();
      // zurücksetzen
      //this.ajaxrequest[requestname] = null;
    }

    // AusgabeContainer leeren
    $(target).empty();
    // Lade-Gif
    $(target).addClass(loadingclass);
    // Ausgabe Daten
    var callback = function(html){
      $(target).removeClass(loadingclass);
      $(target).append(html);
    }
    // Ausgabe Fehlermeldung
    var errorHandler = function(){
      $(target).removeClass(loadingclass);
      $(target).append(errormsg);
    }
    // freigeben
    var onComplete = function(){
      self.ajaxrequest.clinic = null;
    }

   this.loadData(requestname, url, querystring, callback, errorHandler, onComplete);


  },
  
    checkPlzInput : function(){ 		

     
        var plzinput = document.getElementById("plz").value.length;
        
 
        if(document.getElementById("plz").value == "" || (plzinput <5) || (plzinput >5) ) 
        { 
            document.getElementById("plzmsg").style.display = "block";	// Hinweis einblenden
            document.getElementById("klinik_suche_submit").style.display = "none";	// Submit-Button ausblenden
        } 
        else
        { 
            //document.getElementById("plzmsg").style.display = "block";		// Hinweis ausblenden
            document.getElementById("klinik_suche_submit").style.display = "block";	// Submit-Button einblenden
        } 
    },   
    
    checkPlzInputIndikation : function(){
        
        var plzinput = document.getElementById("plz").value.length;
        
 
        if(document.getElementById("plz").value == "" || (plzinput <5) || (plzinput >5) ) 
        { 
            document.getElementById("plzmsg").style.display = "block";	// Hinweis einblenden
            $("input[name$=indikation_submit]").attr("disabled", "disabled");
            //document.getElementById("klinik_suche_submit").style.display = "none";	// Submit-Button ausblenden
        } 
        else
        { 
            //document.getElementById("plzmsg").style.display = "none";		// Hinweis ausblenden
            //document.getElementById("klinik_suche_submit").style.display = "inline";	// Submit-Button einblenden
            $("input[name$=indikation_submit]").attr("disabled", false);
        } 
    
    },
    
     checkPlzInputStartseite : function(){ 		

     
        var plzinput = document.getElementById("plz").value.length;
        
 
        if(document.getElementById("plz").value == "" || (plzinput <5) || (plzinput >5) ) 
        { 
            document.getElementById("plzmsg").style.display = "block";	// Hinweis einblenden
            $("input[name$=indikation_submit]").attr("disabled", "disabled");
            //document.getElementById("klinik_suche_submit").style.display = "none";	// Submit-Button ausblenden
        } 
        else
        { 
            //document.getElementById("plzmsg").style.display = "none";		// Hinweis ausblenden
            //document.getElementById("klinik_suche_submit").style.display = "inline";	// Submit-Button einblenden
            $("input[name$=indikation_submit]").attr("disabled", false);
        } 
    },   
  
    loadMultiClinics : function (){

	var gender = document.getElementById("gender").value;
	var bodypart = document.getElementById("bodypart").value;
   
	//alert(gender);
	//alert(bodypart);
    
    //Ermittle Plz
    var plz = document.getElementById("plz").value;
   
   //Ermittle die Anzahl aller Checkboxen
	var indicationsarraylaenge = document.getElementsByName("indikationen[]").length;
	//alert(indicationsarraylaenge);
	
	//Hole alle Checkboxen
	
	var indications = new Array();
	for (var i=0; i<indicationsarraylaenge;i++){
		var elements = document.getElementById('indikationen_'+i).value;
		if(document.getElementById('indikationen_'+i).checked == true){
			indications[i] = elements;
			//alert(elements);
		}
		else{
			indications[i] = 0;
		}
	}
		   
    // closure für unlock
    var self = this;
    var requestname = 'clinic';
    var url = '/parts/ajax_kliniksuchemulti.php';
    var querystring = 'gender=' + gender + '&' +'bodypart=' + bodypart + '&' + 'indication=' + indications + '&' + 'plz=' + plz;
    var target = '#klinik_ergebnise';
    var loadingclass = 'ajax_loading';
	// var loadingclassAfter = 'targetBG';
    var errormsg = '<p class="error">Fehler: Konnte Daten nicht laden.</p>';

    if(this.ajaxrequest[requestname]){
      //laufenden request abbrechen
      this.ajaxrequest[requestname].abort();
      // zurücksetzen
      //this.ajaxrequest[requestname] = null;
    }

    // AusgabeContainer leeren
    $(target).empty();
    // Lade-Gif
	// $(target).removeClass(loadingclassAfter);
    $(target).addClass(loadingclass);
    // Ausgabe Daten
    var callback = function(html){
      $(target).removeClass(loadingclass);
      $(target).append(html);
    }
	
	// $(target).addClass(loadingclassAfter);
	
    // Ausgabe Fehlermeldung
    var errorHandler = function(){
      $(target).removeClass(loadingclass);
      $(target).append(errormsg);
    }
    // freigeben
    var onComplete = function(){
      self.ajaxrequest.clinic = null;
    }

   this.loadData(requestname, url, querystring, callback, errorHandler, onComplete);
   
  },

  loadData : function(requestname, url, querystring, callback, errorhandler, oncomplete){

    this.ajaxrequest[requestname] = $.ajax({
        url: url,
        global: true,
        async: true,
        data: querystring,
        dataType: "text",
        success: callback,
        error : errorhandler,
        complete : oncomplete
      }
    );
  }

}//Indmask 

