var theme_count = 0;
var theme_array = new Array();
var info_show = 0;

// Die Funktion togglt die Themenauswahl.
jQuery.fn.showChoice = function(){
	
		if(theme_count != 0){
			
			jQuery(this).slideToggle("fast");	
		
			if(jQuery('#mask').is(':hidden')){	
				
				//Get the screen height and width  
	      var maskHeight = jQuery(document).height();  
	      var maskWidth = jQuery(window).width();  
	      	     	
	      //Set height and width to mask to fill up the whole screen  
	      jQuery('#mask').css({'width':maskWidth,'height':maskHeight});  
	         
	      //transition effect             
	      jQuery('#mask').fadeTo("slow",0.8); 
	      
	    }else{
	    	
	    	jQuery('#mask').hide();
	    	
	    }   
		
		}else{
			// Wenn der Info-Dialog ausgeblendet ist soll er angezeigt werden.
			jQuery('.info_text').html("Die Merkliste enthält im Moment<br /> keine Objekte.");
			jQuery('.info_dialog').showInfoDialog();	
		}	
}

// Timer
jQuery.fn.wait = function(time, type) {
    time = time || 2500;
    type = type || "fx";
    return this.queue(type, function() {
        var self = this;
        setTimeout(function() {
            jQuery(self).dequeue();
        }, time);
    });
};


// Funktion zum Setzen der Session-Variable 'data'.
jQuery.setData = function(){
		
		// Session-Variable 'data' setzen.
		jQuery.ajax({
		   type: "POST",
		   url: "fileadmin/templates/matoma.de/includes/setData.php",
		   data: "data=" + jQuery.toJSON(theme_array)
		});	
}

// Funktion zum Setzen der Session-Variable 'data'.
jQuery.setInfoFlag = function(){
				
		// Session-Variable 'data' setzen.
		jQuery.ajax({
		   type: "POST",
		   url: "fileadmin/templates/matoma.de/includes/setData.php",
		   data: "info=" + info_show		   	          
		});	
}

// Funktion zum Abrufen der Session-Variable 'data'.
jQuery.getData = function(){
		// Session-Variable 'data' abrufen.
		jQuery.ajax({
		   type: "POST",
		   url: "fileadmin/templates/matoma.de/includes/getData.php",
		   data: "name=data",
		   success: function(data){ 
		   								   	
		   						theme_array = jQuery.parseJSON(data); 
		   						if(theme_array == null)
		   							theme_array = new Array();		   						
		   						
									// Themenauswahl befüllen.
									jQuery.each(all_themes, function(index, value){if(jQuery.inArray(value)){jQuery(this).addThemes(index, value)}});
									
									theme_count = theme_array.length;
									
									if(theme_count > 0){
										if(jQuery('.merkliste_senden').is(":hidden")){
											jQuery('.merkliste_senden').slideDown("fast");
										}	
										
										if(theme_count == 1){	
											var mtext = 'Es befindet sich <b style="font-size: 1.3em">' + theme_count + '</b> Anfrage in der Merkliste';
											jQuery('#merkliste_count').html(mtext);					
										}else {
											var mtext = 'Es befinden sich <b style="font-size: 1.3em">' + theme_count + '</b> Anfragen in der Merkliste';
											jQuery('#merkliste_count').html(mtext);	
										}
																				
										if(jQuery('#form_themes')){
											jQuery('#form_themes').changeFormThemes();
										}
										jQuery('input[name=themes]').val(theme_array.join(","));
									}
									jQuery('#themen_dialog').changeDialogThemes();
		   					}			          
		});	
}


// Funktion zum Abrufen der Session-Variable 'info'.
jQuery.getInfoFlag = function(){
		jQuery.ajax({
			 type: "POST",
		   url: "fileadmin/templates/matoma.de/includes/getData.php",
		   data: "name=info",
		   success: function(data){		
		   			  
		   			info_show = parseInt(data);
		   				  			
		   			// Info-Dialog anzeigen.
						if(info_show){
							jQuery('.info_dialog').showInfoDialog();
							info_show = 0;
							jQuery.setInfoFlag();
						}		   		
		   }
		});
}

// Validierung und Versandt des E-Mail Formulars.
jQuery.formValidation = function(){
		// validate and process form here 
    var error = "";
         
    jQuery('.error').hide();  
    
    var firstname = jQuery("input#firstname").val();  
    if (firstname == "") {		  
		  error += 'Vorname ist ein Pflichtfeld.<br />';	
		  jQuery('input#firstname').css('background-color', '#d7e8ec');
		  jQuery('span#firstname_span').css('color', '#4a95b1');		   
		}else if(!firstname.match(/^[-a-zA-ZÄÖÜäöüß\s]+$/)){
			error += 'Der Vorname enthält ungültige Zeichen!<br />';
			jQuery('input#firstname').css('background-color', '#d7e8ec');
		  jQuery('span#firstname_span').css('color', '#4a95b1');	
		}  
    
    var lastname = jQuery("input#lastname").val(); 
    if (lastname == "") { 		  		   
		  error += 'Nachname ist ein Pflichtfeld.<br />';
		  jQuery('input#lastname').css('background-color', '#d7e8ec'); 
		  jQuery('span#lastname_span').css('color', '#4a95b1');	
		}else if(!lastname.match(/^[-a-zA-ZÄÖÜäöüß\s]+$/)){
			error += 'Der Nachname enthält ungültige Zeichen!<br />';
			jQuery('input#lastname').css('background-color', '#d7e8ec');
		  jQuery('span#lastname_span').css('color', '#4a95b1');	
		}
		
		var company = jQuery("input#company").val();  
	  if (company == "") {		 		   
		  error += 'Firma ist ein Pflichtfeld.<br />';
		  jQuery('input#company').css('background-color', '#d7e8ec');
		  jQuery('span#company_span').css('color', '#4a95b1');	
		}else if(!company.match(/^[-.a-zA-Z0-9ÄÖÜäöüß\s]+$/)){
			error += 'Der Firmenname enthält ungültige Zeichen!<br />';
			jQuery('input#company').css('background-color', '#d7e8ec');
		  jQuery('span#company_span').css('color', '#4a95b1');	
		}		
		 
		var contact_type = jQuery('input[name=contact_type]:checked').val();  
		 
		var phone = jQuery("input#phone").val();
    if (phone == "" && contact_type == "Telefon") {		   
		  error += 'Telefon ist ein Pflichtfeld.<br />';
		  jQuery('input#phone').css('background-color', '#d7e8ec');
		  jQuery('span#phone_span').css('color', '#4a95b1');	
		  jQuery('input#email').css('background-color', 'white');
		  jQuery('span#email_span').css('color', 'white');
		}else if(!phone.match(/^[\d\/\\\s+-]+$/) && contact_type == "Telefon"){
			error += 'Die Telefonnummer enthält ungültige Zeichen!<br />';
			jQuery('input#phone').css('background-color', '#d7e8ec');
		  jQuery('span#phone_span').css('color', '#4a95b1');	
		}   
		      
    var email = jQuery("input#email").val();
    if (email == "" && contact_type == "E-Mail") {  		    
		  error += 'E-Mail ist ein Pflichtfeld.<br />';
		  jQuery('input#email').css('background-color', '#d7e8ec');
		  jQuery('span#email_span').css('color', '#4a95b1');	
		  jQuery('input#phone').css('background-color', 'white');
		  jQuery('span#phone_span').css('color', 'white');	
		}else if(!email.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/) && contact_type == "E-Mail"){
			error += 'Die E-Mail Adresse hat das falsche Format.<br />';
			jQuery('input#email').css('background-color', '#d7e8ec');
		  jQuery('span#email_span').css('color', '#4a95b1');	
		}    
		
		var message = jQuery("textarea#nachricht").val();
		/*if(message != ""){
			if(!message.match(/^[-a-zA-ZÄÖÜäöüß0-9.!?\s\n]+$/)) {
				error += 'Die Nachricht enthält ungültige Zeichen!<br />';
				jQuery('textarea#nachricht').css('background-color', '#d7e8ec');
			} 
		} */
		
		if(theme_count == 0) {
			error += 'Bitte wählen Sie unter "Unsere Dienstleistungen" die Dienstleistungen aus, an denen Sie interessiert sind.';
		}
		
		var themes = jQuery('input#themes').val();
			
		if(error){
			jQuery('label#error').html('<p>' + error + '</p>');			
			jQuery('label#error').show();
			return false;
		} 
		
		var dataString = 'firstname='+ firstname + '&lastname='+ lastname + '&company='+ company + '&email=' + email + '&phone=' + phone + '&contact=' + contact_type + '&themes=' + themes + '&nachricht=' + message;  
		 
		jQuery.ajax({  
		  type: "POST",  
		  url: "fileadmin/templates/matoma.de/includes/sendMail.php",  
		  data: dataString,  
		  success: function(data) {  
		    jQuery('#contact_form').html("<div id='message'></div>");  
		  	if(data) {
			  jQuery('#message').html("<h2>Ihre Anfrage wurde erfolgreich übermittelt!</h2>")  
		    .append("<p>Wir werden Sie in Kürze kontaktieren.</p>")  
		    .hide()  
		    .fadeIn(1500, function() {  
		      jQuery('#message').append("<img id='checkmark' src='fileadmin/templates/matoma.de/images/sendebestaetigung.png' />");  
		    });  
			  }else {
			  	jQuery('#message').html("<h2>Ihre Anfrage konnte nicht übermittelt werden!</h2>");
			  }
		  }  
		});  
		return false;
}

// Die Funktion blendet die Informationsdialog ein.
jQuery.fn.showInfoDialog = function(){
		jQuery(this).show().wait().fadeOut(2000);					
}

jQuery.inArray = function(value){
		var result;
				
		for(var i in theme_array){
			if(value == theme_array[i]){
				result = true;
			}
		}
		
		return result;
}

// Die Funktion überprüft ob der Name des Objekts im Array enthalten ist.
jQuery.fn.inArray = function(){
		var result;
		var id = parseInt(jQuery(this).attr('name'));
		
		for(var i in theme_array){
			if(all_themes[id] == theme_array[i]){
				result = true;
			}
		}
		
		return result;
}

// Die Funktion fügt ein Thema zur Themenauswahl hinzu.
jQuery.fn.addThemes = function(index, value){
		jQuery('#themen_element_container').append('<div class="themen_element" name="' + index + '"><div class="themen_info" name="' + index + '"><a>&nbsp;</a></div><div class="themen_text">Ich interessiere mich für ' + value + '</div><div class="thema_loeschen" name="' + index + '">Löschen</div><div class="clearer">&nbsp;</div></div>');
		
		// Buttons an entsprechende Clickmethoden binden.
		jQuery('.thema_loeschen').bind('click', function(){jQuery(this).removeInterest()});
		jQuery('.themen_info').bind('click', function(){jQuery(this).infoClick()});
		
		// Interesse Button aktivieren.
		jQuery('.interesse[name=' + index + ']').children().addClass("selected");
}

// Die Funktion fügt ein Thema zur Themenauswahl hinzu.
jQuery.fn.addTheme = function(){
		
		var id = parseInt(jQuery(this).attr('name'));
	
		jQuery('#themen_element_container').append('<div class="themen_element" name="' + id + '"><div class="themen_info" name="' + id + '"><a>&nbsp;</a></div><div class="themen_text">Ich interessiere mich für ' + all_themes[id] + '</div><div class="thema_loeschen" name="' + id + '">Löschen</div><div class="clearer">&nbsp;</div></div>');		
		
		// Buttons an entsprechende Clickmethoden binden.
		jQuery('.thema_loeschen').bind('click', function(){jQuery(this).removeInterest()});
		jQuery('.themen_info').bind('click', function(){jQuery(this).infoClick()});
		
		// Interesse Button aktivieren.
		jQuery('.interesse[name=' + id + ']').children().addClass("selected");
}

// Die Funktion fügt ein neues Thema hinzu.
jQuery.fn.addInterest = function(){
		
		if(jQuery('.merkliste_senden').is(":hidden")){
			jQuery('.merkliste_senden').slideDown("fast");
		}	
		
		if(!(jQuery(this).inArray())){	
			theme_count++;	
			theme_array.push(all_themes[parseInt(jQuery(this).attr('name'))]);				
			
			if(theme_count == 1){	
				var mtext = 'Es befindet sich <b style="font-size: 1.3em">' + theme_count + '</b> Anfrage in der Merkliste';
				jQuery('#merkliste_count').html(mtext);					
			}else {
				var mtext = 'Es befinden sich <b style="font-size: 1.3em">' + theme_count + '</b> Anfragen in der Merkliste';
				jQuery('#merkliste_count').html(mtext);	
			}
						
			// Wenn der Info-Dialog ausgeblendet ist soll er angezeigt werden.
			jQuery('.info_text').html("Ein Objekt wurde zur Merkliste<br /> hinzugefügt.");
			jQuery('.info_dialog').showInfoDialog();
						
			jQuery(this).addTheme();
			jQuery('#themen_dialog').changeDialogThemes();
			if(jQuery('#form_themes')){
				jQuery('#form_themes').changeFormThemes();
			}
			jQuery('input[name=themes]').val(theme_array.join(","));
			
			jQuery.setData();	
		}	
}

// Die Funktion entfernt ein Thema.
jQuery.fn.removeInterest = function(){
		
		var id = parseInt(jQuery(this).attr('name'));
		var name = all_themes[id];
			
		jQuery('.interesse[name=' + id + ']').children().removeClass("selected");
						
		var new_array = new Array();
			
		jQuery.each(theme_array, function(index, value){
			if(value != name){
				new_array.push(value);
			}
		});
				
		theme_array = new_array;
		theme_count = theme_array.length;						
			
		if(theme_count == 1){	
			var mtext = 'Es befindet sich <b style="font-size: 1.3em">' + theme_count + '</b> Anfrage in der Merkliste';
			jQuery('#merkliste_count').html(mtext);					
		}else {
			var mtext = 'Es befinden sich <b style="font-size: 1.3em">' + theme_count + '</b> Anfragen in der Merkliste';
			jQuery('#merkliste_count').html(mtext);	
		}			
		
		if(theme_count == 0){
			jQuery('.merkliste_senden').slideUp("fast");
			jQuery('.themen_auswahl').hide();	
			jQuery('#mask').hide();
		}
			
		jQuery('.themen_element[name=' + id + ']').remove();
		jQuery('#themen_dialog').changeDialogThemes();
		if(jQuery('#form_themes')){
			jQuery('#form_themes').changeFormThemes();
		}
			
		jQuery('input[name=themes]').val(theme_array.join(","));	
			
		jQuery.setData();	
		
}

// Funktion zum Füllen des Themenauswahl Dialogs
jQuery.fn.changeDialogThemes = function(){
		
		jQuery('#themen_dialog').html("");
		
		jQuery.each(all_themes, function(index, value){
			if(jQuery.inArray(value))
				jQuery('#themen_dialog').append('<div class="themen_element" name="' + index + '"><div class="themen_info" name="' + index + '"><a>&nbsp;</a></div><div class="themen_text">Ich interessiere mich für ' + value + '</div><div class="thema_loeschen" name="' + index + '">Löschen</div><div class="clearer">&nbsp;</div></div>');
			else
				jQuery('#themen_dialog').append('<div class="themen_element" name="' + index + '"><div class="themen_info" name="' + index + '"><a>&nbsp;</a></div><div class="themen_text">Ich interessiere mich für ' + value + '</div><div class="thema_hinzu" name="' + index + '">Hinzufügen</div><div class="clearer">&nbsp;</div></div>');	
		});		
		
		// Buttons an entsprechende Clickmethoden binden.
		jQuery('.thema_hinzu').bind('click', function(){jQuery(this).addInterest()});
		jQuery('.thema_loeschen').bind('click', function(){jQuery(this).removeInterest()});
		jQuery('.themen_info').bind('click', function(){jQuery(this).infoClick()});
}

// Funktion zum Füllen der Formularthemen 
jQuery.fn.changeFormThemes = function(){
		
		jQuery('#form_themes').html("");
		
		jQuery.each(all_themes, function(index, value){
			if(jQuery.inArray(value))
				jQuery('#form_themes').append('<div class="themen_element" name="' + index + '"><div class="themen_info" name="' + index + '"><a>&nbsp;</a></div><div class="themen_text">Ich interessiere mich für ' + value + '</div><div class="thema_loeschen" name="' + index + '">Löschen</div><div class="clearer">&nbsp;</div></div>');			
		});		
		
		// Buttons an entsprechende Clickmethoden binden.
		jQuery('.thema_hinzu').bind('click', function(){jQuery(this).addInterest()});
		jQuery('.thema_loeschen').bind('click', function(){jQuery(this).removeInterest()});
		jQuery('.themen_info').bind('click', function(){jQuery(this).infoClick()});
}

jQuery.fn.infoClick = function(){
	var id = jQuery(this).attr('name');
	
	jQuery('#theme_info_dialog').attr('title', all_themes[id]);
	jQuery('.dcontent').html(theme_info[id]); 
	jQuery('#theme_info_dialog').dialog('open');
	return false;
}

// Die Funktion initialisiert einen Themendialog.
jQuery.fn.initThemeDialog = function(){
	jQuery(this).dialog({
		autoOpen: false,			
		title: 'Information',
		draggable: false,
		resizable: false,
		position: [230, 'center'],
		zIndex: 300,
		modal: true		
	});
}

// Content soll automatisch breiter werden wenn keine Box gesetzt ist
jQuery.fn.setNoBoxContent = function(){
	
	if(jQuery('#box_container').is(':empty')){
		jQuery(this).remove();
		jQuery('#content_container').css({width: '707px', padding: '0 0 100px 22px'});
	}
	
}


jQuery(document).ready(function() {
		
	//Sessionvariable auslesen.	
	jQuery.getData();		
	jQuery.getInfoFlag();	
	
	// Inhaltsbreite festlegen.
	jQuery('#right_container').setNoBoxContent();
	
	// Slides verstecken.				
	jQuery('.merkliste_senden').hide();
	//jQuery('#chosen_topics_count').val(theme_count);
	jQuery('.themen_auswahl').hide();
	jQuery('.info_dialog').hide();
		
	// Funktion an das Click-Event der beiden Buttons binden.	
	jQuery('.mbutton').bind('click', function(){jQuery('.themen_auswahl').showChoice()});	
	jQuery('.merkliste_senden').bind('click', function(){jQuery('.themen_auswahl').showChoice()});
	
	// transparente Maske soll bei Click verschwinden.
  jQuery('#mask').bind('click', function(){ jQuery('.themen_auswahl').showChoice(); });

	// Thema hinzufuegen.
	jQuery('.interesse').bind('click', function(){jQuery(this).addInterest()});	
	
	// Themenauswahl Dialog
	jQuery('#themen_dialog').dialog({
		width: 600,
		height: 350,
		autoOpen: false,		
		draggable: false,
		resizable: false,
		position: [230, 'center'],
		zIndex: 200,
		modal: true,
		buttons: {
			Ok: function() {
				jQuery(this).dialog('close');
			}
		}
		
	});
	
	// Hilfe Dialog
	jQuery('#help_dialog').dialog({
		width: 530,
		height: 270,
		autoOpen: false,		
		draggable: false,
		resizable: false,
		position: [230, 'center'],
		zIndex: 200,
		modal: true		
		
	});
	
	jQuery('.help_icon').bind('click', function(){
			jQuery('#help_dialog').dialog('open');
	});
	
	jQuery('.more_themes').bind('click', function(){
			jQuery('#themen_dialog').dialog('open');
			
			// Dialog Button Hover-Effekt
  		jQuery('.ui-dialog-buttonpane').children().bind('mouseenter', function() { jQuery(this).addClass('on') });
  		jQuery('.ui-dialog-buttonpane').children().bind('mouseleave', function() { jQuery(this).removeClass('on') });
	});	

	// Informations Dialog
	jQuery('#theme_info_dialog').initThemeDialog();	
	jQuery('.info').bind('click', function(){jQuery(this).infoClick()});	
	
	// E-Mail Formular
	jQuery('.error').hide();  
  jQuery(".button").bind('click', function() { jQuery.formValidation();});   
  jQuery('span#email_span').css('color', 'white');
  
  jQuery('input[name=contact_type]').bind('change', function(){
  	
  	if(jQuery('input[name=contact_type]:checked').val() == "Telefon") {
	  	jQuery('span#email_span').css('color', 'white');
	  	jQuery('span#phone_span').css('color', '#696459');
	  } else {
	  	jQuery('span#phone_span').css('color', 'white');
	  	jQuery('span#email_span').css('color', '#696459');
	  }
	   
  });
    
  		
});
