(function($){
	$().ready(function(){
		$.ga.load('UA-12453206-2');

		$("a[rel*='external']").click(function() {
			$.ga.trackPageview('/outgoing/'+ $(this).attr('href'));
		} );
		
		$.metadata.setType('attr','data');
		
		$("div#menu div.menu_item ul li").hover(
			      function () {
			    	  $(this).css("cursor", 'pointer');  
			    	  $(this).css("background-image", 'url("/images/menu_active.png")');
			      }, 
			      function () {
			    	  $(this).css("cursor", 'default');
			    	  $(this).css("background-image", 'url("/images/menu_inactive.png")');
			      }
			    );
		
		if( $("div#sf_guard_signin").length != 0) {
			$("span#UserCenter").hover(
				      function () {
				    	  $(this).css("cursor", 'pointer'); 
				    	  $(this).css("text-decoration", 'underline');  
				      }, 
				      function () {
				    	  $(this).css("cursor", 'default');
				    	  $(this).css("text-decoration", 'none');
				      }
			);
			
			$("span#UserCenter").click(
				      function () {
				    	  $("div#sf_guard_signin").dialog('open');
				      }
			);
			
			$("div#sf_guard_signin").dialog({
				bgiframe: true,
				autoOpen: false,
				height: 250,
				width: 400,
				title: 'Benutzermenu',
				modal: true,
				draggable: false,
				resizable: false
			});
		}
		
		$("div.gt_sort").sortable({
			connectWith: 'div.gt_sort',
			stop: function(event, ui) {
				jQuery.each($("div.gt_sort").children("div"), function(i, val){
					$(this).children("label").text(i+1)
					$(this).children("input").val(i+1)
				});
			}
		});
		
		$("div.gt_sort").disableSelection();

		$.each($("div#header map area"), function(i,n){
	  	  	$($(n).attr('href')).dialog({
					width: 800,
					height: 400,
					modal: true,
					autoOpen: false
				}); 
		});  
		
		$("div#header map area").click(
			      function () {
			    	  $($(this).attr('href')).dialog('open'); 
			      }
		);
		
		$("span#was_sind_gesundheitstypen").hover(
			function () {
				$("img#header_bilder").effect("shake", {}, 200);
		      },
			function () {
		      }
		);
		
		if( $("div#alte_fragebogen").length != 0) {
			$("div#alte_fragebogen").dialog({
				bgiframe: true,
				autoOpen: false,
				height: 350,
				width: 850,
				modal: true,
				draggable: false,
				resizable: false,
			});
			
			$("a#open_alte_fragebogen").click(function(){
				$("div#alte_fragebogen").dialog('open');
				return false;
			});
		}
		
		if( $("div#tabs_gesform").length != 0) {
			
			$("div#tabs_gesform div ul li").hover(function(){
					$(this).css("cursor", "move");
				},function(){
					$(this).css("cursor", "auto");
			});
			
			$("div#tabs_gesform div ul").sortable({ cursor: 'move', cursorAt: { top: -5, left: -5 } }).disableSelection();
			
			var $tabs = $("div#tabs_gesform").tabs();

			function AntwortenMappen(){
				Fragen = new Object();
				
				$.each($("div#tabs_gesform div ul:not(:first)"), function(i,n){
					$.each($(n).children("li"), function(j,k){
						if(typeof($.metadata.get(k).id) != "undefined"){
							Fragen["fragen[" + $.metadata.get(k).id + "]"] = $.metadata.get(n).id; // Frage[frage_id] = antwort_id
						}
					});
				});
				
				return Fragen;
			}
			
			$("div#tabs_gesform_senden").dialog({
				bgiframe: true,
				autoOpen: false,
				height: 300,
				width: 500,
				modal: true,
				buttons: {
					'Absenden': function() {
						var alter = parseInt($("b#tabs_gesform_alter_show").text());
						var geschlecht = $("div#tabs_gesform_senden input:checked").val();
						var plz = $("div#tabs_gesform_senden input#postleitzahl").val();
						if(alter == null || geschlecht == null){
							$("#validateTips").addClass('ui-state-error');
						} else if(plz != "" && isNaN(parseInt(plz))){
							$("div#tabs_gesform_senden input#postleitzahl").addClass('ui-state-error');
						} else {
							$("#validateTips").removeClass('ui-state-error');
							$("div#tabs_gesform_senden input#postleitzahl").removeClass('ui-state-error');
							
							Daten = AntwortenMappen();
							Daten["alter"] = alter;
							Daten["geschlecht"] = geschlecht;
							Daten["plz"] = plz;
							
							$.post("/gesundheitstyp/save", Daten, 
									function(data){
										if(data.msg == "gotoResults"){
											window.location.href="/gesundheitstyp/ergebnisse";
										} else {
											alert("Ihre Daten konnten nicht gespeichert werden");
										}
									}, "json");
							
							$(this).dialog('close');
						}
					},
					'Abbrechen': function() {
						$(this).dialog('close');
					}
				},
				close: function() {
					$("#validateTips").removeClass('ui-state-error');
				}
			});
			
			function getProzent(){
				return parseInt((1 - $("div#tabs_gesform-0 li").length / Number($("b#anzahl_fragen").text())) * 100);
			}
			
			function addSendButton(){
				if($("button#tabs_gesform_senden_button").length == 0){
					$("div#tabs_gesform-0").append('<button id="tabs_gesform_senden_button" class="ui-button ui-state-default ui-corner-all" style="margin: 0 auto; display: block">Gesundheitstyp ermitteln</button>');
					
					$("button#tabs_gesform_senden_button").ready(function(){
						$("button#tabs_gesform_senden_button").click(function(){
							$("div#tabs_gesform_senden").dialog("open");
						});
					});
				}
			}
			
			var $tab_items = $("ul:first li", $tabs).droppable({
				tolerance: 'pointer',
				hoverClass: "ui-state-hover",
				drop: function(ev, ui) {
					var $item = $(this);
					var $list = $($item.find('a').attr('href')).find('.connected');
					
					ui.draggable.hide('slow', function() {
						//$tabs.tabs('select', $tab_items.index($item));
						$(this).appendTo($list).show('slow');
						
						$("#tabs_gesform_progressbar").progressbar('option', 'value', getProzent());
						
						$("b#tabs_gesform_progressbar_prozent").text(getProzent() + "%");
						
						if(getProzent() == 100 && $("button#tabs_gesform_senden_button").length == 0){
							addSendButton();
							$("div#tabs_gesform_senden").dialog("open");
						} else if(($("div#tabs_gesform-0 li").length % 5) == 0){
							$.post("/gesundheitstyp/quickSave", AntwortenMappen(), 
									function(data){
									}, "json");
						}
						
						if(getProzent() < 100 && $("button#tabs_gesform_senden_button").length != 0){
							$("button#tabs_gesform_senden_button").remove();
						}
					});
				}
			});
		
			$("#tabs_gesform_progressbar").progressbar({
				value: getProzent()
			});
			
			$("#tabs_gesform_progressbar").children().append('<b id="tabs_gesform_progressbar_prozent">'+ getProzent() +'%</b>');
			
			if(getProzent() == 100){
				addSendButton();
			}
			
			$("div#tabs_gesform_alter").slider({
				value: parseInt($("b#tabs_gesform_alter_show").text()),
				min: 14,
				max: 100,
				step: 1,
				slide: function(event, ui) {
					$("b#tabs_gesform_alter_show").text(ui.value);
				}
			});
			$("b#tabs_gesform_alter_show").text($("#tabs_gesform_alter").slider("value"));
			
			$("div#film").dialog({
				bgiframe: true,
				autoOpen: false,
				height: 350,
				width: 850,
				modal: true,
				draggable: false,
				resizable: false,
			});
			
			$("a.open_film").click(function(){
				$("div#film").dialog("open");
				return false;
			});
		}
		
		if( $("div#ges_erg_accordion").length != 0) {
			$("div#fragebogen_ergebnisse").accordion({
				autoHeight: false,
				header: 'h3',
				icons: {
	    			header: "ui-icon-circle-arrow-e",
	   				headerSelected: "ui-icon-circle-arrow-s"
				}
			});
			
			$("div#ges_erg_accordion").accordion({
				autoHeight: false,
				header: 'h3',
				icons: {
	    			header: "ui-icon-circle-arrow-e",
	   				headerSelected: "ui-icon-circle-arrow-s"
				}
			});
			
			$("#dialog_feedback").dialog({
				autoOpen: false,
				bgiframe: true,
				draggable: false,
				resizable: false,
				height: 160,
				modal: true,
				buttons: {
							'ok': function() {
								$(".ges_feedback").hide("blind");
								$("div#ges_erg_accordion").accordion("activate", 1);
								$(this).dialog('close');
							}
						},
				Cancel: function() {
					$(this).dialog('close');
				}
			});
			
			$("button#neuen_fragebogen_anlegen").click(function(){
				window.location.href = "/gesundheitstyp/neuenfragebogenanlegen";
			});
			
			$("button#feedback_senden").click(function () {
				Gesundheitstypen = new Object();
				$.each($("input.feedback_gesundheitstyp:checked"), function(i, n){
					Gesundheitstypen["gesundheitstypen[" + $.metadata.get(n).id + "]"] = $(n).val();
				});

				Gesundheitstypen["zutreffend"] = $("input:checked[name='trifft_zu']").val(); 
				Gesundheitstypen["msg"] = $("textarea#feedback_text").val(); 
				
				$.post(	"/gesundheitstyp_herausfinden/feedback", Gesundheitstypen,
						function(data){
							if(data.msg == "feedback_success"){
								$("#dialog_feedback").dialog("open");
							}
						} , 
						"json"
					);
				
				return false;
			});

			$("div.feedback_hover").hover(
				      function () {
				    	  $(this).children("span").css("display", 'block');   
				      }, 
				      function () {
				    	  $(this).children("span").css("display", 'none');   
				      }
			);
			
			$("input.trifft_zu").change(function () {
				if($(this).val() != "ja" && $("div#wiedererkennen").css("display") == "none"){
					$("div#wiedererkennen").show("blind");
				} else if($(this).val() == "ja" && $("div#wiedererkennen").css("display") == "block") {
					$("div#wiedererkennen").hide("blind");
				}
			});	
			
			$("button#ergebnisse_mailen").click(function () {
				// From jquery.validate.js (by joern)
				var mailex = /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/i;
				if($("input#mailen_mail") == null ||
						(	
								mailex.test(	$("input#mailen_mail").val()	) == false
						)
				){
					$("input#mailen_mail").addClass('ui-state-error');
				}  else {
					$("input#mailen_mail").removeClass('ui-state-error');
					$("div#tabs_gesform_senden input#postleitzahl").removeClass('ui-state-error');
						
					$.post(	"/gesundheitstyp_herausfinden/mailen", 
							{ 
								mail: $("input#mailen_mail").val()
							},
							function(data){
								$("#dialog_ergebnisse").dialog("open");
							} , 
							"json"
						);
				}	
			});
			
			$("#dialog_ergebnisse").dialog({
				autoOpen: false,
				bgiframe: true,
				draggable: false,
				resizable: false,
				height: 200,
				modal: true,
				buttons: {
							'ok': function() {
								$("div#ges_erg_accordion").accordion("activate", 2);
								$(this).dialog('close');
							}
						},
				Cancel: function() {
					$(this).dialog('close');
				}
			});
			
			
		}
		
		
	});
})(jQuery)