// JavaScript Document

// Konflikte mit andeen Libraries umgehen
jQuery.noConflict();

jQuery(document).ready(function($) {

	target      = 'http://www.junge-buehne-kiel.de/typo3conf/ext/jbk_anmeldung/pi1/ajax.php';
	user        = '';
	pass        = '';
	bid         = '';
	tstamp      = '';
	upload_id   = '';
	upload_path = '/fileadmin/user_upload/bewerbungen';
	img_path    = '/fileadmin/jbk_template/images/';

	/**
	 * jbk_anmeldung_fe_pi1
	 */
	 
	/*
	 * Registrierungsformular anzeigen
	 */
	$("#register > a").click(function (e) {
	
		$("#l_col").fadeOut(500, function () {
			$.get(
				target +'?action=register',
				function (xml) {
					$("#l_col").html($(xml).find('op').text());
					reg_band();
					$("#l_col").fadeIn(500);
					bgfit();
					$("input[name=email]").delay(500).keyup(function(){
						chk_email();
					});

				},
				'xml'
			);
		});
		e.preventDefault();
	
	});
	
	/*
	 * Loginbereich einblenden
	 */
	$("#login > a").click(function (e) {
	
		$("#l_col").fadeOut(500, function () {
			$.get(
				target +'?action=login',
				function (xml) {
					$("#l_col").html($(xml).find('op').text()).fadeIn(500);;
					post_login();
					bgfit();
				},
				'xml'
			);
		});
		e.preventDefault();
		
	});
	
	/*
	 * Loginprozedur
	 */
	function post_login() {
	
		$(".button[action=login_post]").click(function (e) {
			$("#ajaxfield").fadeOut(500, function () {
				$.post(
					target +'?action=post_login',
					{
						user    : $("input[name=user]").val(),
						password: $("input[name=password]").val()
					},
					function (xml) {
						$("#ajaxfield").html($(xml).find('fb').text()).fadeIn(500);
						if($(xml).find('status').text() == 'true') {
							$(".item.menu").hide('blind', false, 500, function() {
								$(".item.menu").html($(xml).find('op').text());
								user   = $(xml).find('user').text();
								pass   = $(xml).find('pass').text();
								bid    = $(xml).find('bid').text();
								tstamp = $(xml).find('tstamp').text();
								register_panel();
								$(".item.menu").show('blind', false, 500);
							});
						}
						bgfit();
					},
					'xml'
				);
			});
			e.preventDefault();
		});
		
	}
	
	/*
	 * Daten aus Bandformular speichern
	 */
	function post_band(){ 
		
		$(".button[action=reg_post]").click(function (e) {
			if(formchk(Array('input[name=interpret]','textarea[name=kurzbio]','input[name=genre]','input[name=zeitziel]')) == true) {
				$("#ajaxfield").fadeOut(500, function() {
					$.post(
						target +'?action=post_band',
						{
							user     : user,
							password : pass,
							bid      : bid,
							tstamp   : tstamp,
							interpret: $("input[name=interpret]").val(),
							kurzbio  : $("textarea[name=kurzbio]").val(),
							erfolge  : $("input[name=erfolge]").val(),
							genre    : $("input[name=genre]").val(),
							zeitziel : $("input[name=zeitziel]").val(),
							url      : $("input[name=url]").val(),
							myspace  : $("input[name=myspace]").val()
						},
						function (xml) {
							$("#ajaxfield").html($(xml).find('op').text()).fadeIn(500);
							tstamp = $(xml).find('tstamp').text();
							bgfit();
						},
						'xml'
					);
				});
			}
			e.preventDefault();
		});
		
	}
	
	/*
	 * Speicherbutton von write_mem registrieren
	 */
	function post_mem(mid) {

		$(".button[action=post_mem]").click(function (e) {
			if(formchk(Array('input[name=nachname]','input[name=vorname]','input[name=alter]','input[name=plz]','input[name=ort]','input[name=strasse]','input[name=phon]','input[name=email]')) == true) {
				$("#l_col").fadeOut(500, function() {
					$.post(
						target +'?action=post_mem',
						{
								user     : user,
								password : pass,
								bid      : bid,
								tstamp   : tstamp,
								mid      : mid,
								nachname : $("input[name=nachname]").val(),
								vorname  : $("input[name=vorname]").val(),	
								alter    : $("input[name=alter]").val(),	
								plz      : $("input[name=plz]").val(),	
								ort      : $("input[name=ort]").val(),	
								strasse  : $("input[name=strasse]").val(),	
								phon     : $("input[name=phon]").val(),	
								email    : $("input[name=email]").val()
						},
						function (xml) {
							$("#l_col").html($(xml).find('op').text()).fadeIn(500);
							tstamp = $(xml).find('tstamp').text();
							reg_mem_buttons();
							bgfit();
						},
						'xml'
					);
				});
			e.preventDefault();	
			}
		});
		
	}
	
	/*
	 * Buttons der Membersektion registrieren
	 */
	function reg_mem_buttons() {
	
		$(".button[action=write_mem]").click(function (e) {
			$("#l_col").fadeOut(500, function() {
				$.post(
					target +'?action=write_mem',
					{
						user     : user,
						password : pass,
						bid      : bid,
						tstamp   : tstamp
					},
					function (xml) {
						$("#l_col").html($(xml).find('op').text()).fadeIn(500);
						tstamp = $(xml).find('tstamp').text();
						post_mem();
						bgfit();
					},
					'xml'
				);
			});
			e.preventDefault();
		});
		
		$(".button[action=edit_mem]").click(function (e) {
			mid =  $(this).attr('mid');
			$("#l_col").fadeOut(500, function() {
				$.post(
					target +'?action=edit_mem',
					{
						user     : user,
						password : pass,
						bid      : bid,
						tstamp   : tstamp,
						mid      : mid
					},
					function (xml) {
						$("#l_col").html($(xml).find('op').text()).fadeIn(500);
						tstamp = $(xml).find('tstamp').text();
						post_mem(mid);
						bgfit();
					},
					'xml'
				);
			});
			e.preventDefault();
		});
		
		$(".button[action=delete_mem]").click(function (e) {
			mid = $(this).attr('mid');
			$.post(
				target +'?action=delete_mem',
				{
					user     : user,
					password : pass,
					bid      : bid,
					tstamp   : tstamp,
					mid      : mid
				},
				function (xml) {
					$("td[mid="+mid+"]").fadeOut(500);
					tstamp = $(xml).find('tstamp').text();
					bgfit();
				},
				'xml'
			);
			e.preventDefault();
		});
	}
	
	/*
	 * Links des Controlpanels werden registriert
	 */
	function register_panel() {
	
		$(".panel[action=get_band]").click(function (e) {
			menuchk(this);
			$("#l_col").fadeOut(500, function() {
				$.post(
					target +'?action=get_band',
					{
						user      : user,
						password  : pass,
						bid       : bid,
						tstamp    : tstamp
					},
					function (xml) {
						$("#l_col").html($(xml).find('op').text()).fadeIn(500);
						tstamp = $(xml).find('tstamp').text();
						post_band();
						bgfit();
					},
					'xml'
				);
			});
			e.preventDefault();
		});
		
		$(".panel[action=get_members]").click(function (e) {
			menuchk(this);
			$("#l_col").fadeOut(500, function() {
				$.post(
					target +'?action=get_members',
					{
						user      : user,
						password  : pass,
						bid       : bid,
						tstamp    : tstamp
					},
					function (xml) {
						$("#l_col").html($(xml).find('op').text()).fadeIn(500);
						tstamp = $(xml).find('tstamp').text();
						reg_mem_buttons();
						bgfit();
					},
					'xml'
				);
			});
			e.preventDefault();
		});

		$(".panel[action=get_songs]").click(function (e) {
			menuchk(this);
			$("#l_col").fadeOut(500, function() {
				$.post(
					target +'?action=get_songs',
					{
						user      : user,
						password  : pass,
						bid       : bid,
						tstamp    : tstamp
					},
					function (xml) {
						$("#l_col").html($(xml).find('op').text()).fadeIn(500);
						tstamp = $(xml).find('tstamp').text();
						reg_song_buttons();
						bgfit();
					},
					'xml'
				);
			});
			e.preventDefault();
		});
		
		$(".panel[action=get_upload]").click(function (e) {
			menuchk(this);
			$("#l_col").fadeOut(500, function () {
				$.post(
					target +'?action=get_upload',
					{
						user      : user,
						password  : pass,
						bid       : bid,
						tstamp    : tstamp,
						filepath  : upload_path
					},
					function (xml) {
						$("#l_col").html($(xml).find('op').text());
						tstamp = $(xml).find('tstamp').text();
						upload_id = $(xml).find('id').text();
						reg_upload();
						if($(xml).find('fb').text() == 'uploadButton') {
							reg_uploadButton();
						}
						$("#l_col").fadeIn(500);
						bgfit();
					},
					'xml'
				);
			});
			e.preventDefault();
		});
		
		$(".panel[action=get_complete]").click(function (e) {
			menuchk(this);
			$("#l_col").fadeOut(500, function () {
				$.post(
					target +'?action=get_complete',
					{
						user      : user,
						password  : pass,
						bid       : bid,
						tstamp    : tstamp,
						filepath  : upload_path
					},
					function (xml) {
						$("#l_col").html($(xml).find('op').text()).fadeIn(500);
						tstamp = $(xml).find('tstamp').text();
						reg_complete();
						bgfit();
					},
					'xml'
				);
			});
			e.preventDefault();
		});
		
	}
	
	/*
	 * Button der Completesektion registrieren
	 */
	function reg_complete() {
		
		$(".button[action=post_complete]").click(function (e) {
			$("#l_col").fadeOut(500, function () {
				$.post(
					target +'?action=post_complete',
					{
						user     : user,
						password : pass,
						bid      : bid,
						tstamp   : tstamp,
						filepath : upload_path 
					},
					function (xml) {
						$("#l_col").html($(xml).find('op').text()).fadeIn(500);
						tstamp = $(xml).find('tstamp').text();
						bgfit();
					},
					'xml'
				);
			});
		});
		
	}
	
	/*
	 * Buttons der Uploadsektion registrieren
	 */
	function reg_upload() {
		
		$(".button[action=delete_upload]").click(function (e) {
			$("#l_col").fadeOut(500, function () {
				$.post(
					target +'?action=delete_upload',
					{
						user     : user,
						password : pass,
						bid      : bid,
						tstamp   : tstamp,
						filepath : upload_path 
					},
					function (xml) {
						$("#l_col").html($(xml).find('op').text()).fadeIn(500);
						tstamp = $(xml).find('tstamp').text();
						reg_upload();
						if($(xml).find('fb').text() == 'uploadButton') {
							reg_uploadButton();
						}
						bgfit();
					},
					'xml'
				);
			});
			e.preventDefault();
		});
		
	}
	
	function reg_uploadButton() {

		var uploader = new qq.FileUploader({
    		// pass the dom node (ex. $(selector)[0] for jQuery users)
    		element: document.getElementById('file-uploader'),
   			 // path to server-side upload script
    		action: target +'?action=post_upload',
			params: {
				user      : user,
				password  : pass,
				bid       : bid,
				tstamp    : tstamp,
				filepath  : upload_path
			},
			allowedExtensions: ['mp3'],
			sizeLimit: 32000000,
			onSubmit: function() {
				$(".cUpload").fadeIn(500);
				$(".qq-upload-button").hide('blind', false, 500);
				
			},
			onComplete: function() {
				$("#l_col").fadeOut(500, function () {
					$.post(
						target +'?action=get_upload',
						{
							user      : user,
							password  : pass,
							bid       : bid,
							tstamp    : tstamp,
							filepath  : upload_path
						},
						function (xml) {
							$("#l_col").html($(xml).find('op').text());
							tstamp = $(xml).find('tstamp').text();
							upload_id = $(xml).find('id').text();
							reg_upload();
							$("#l_col").fadeIn(500); 
							bgfit();
						},
						'xml'
					);
				});
			},
	        messages: {
				typeError: "{file} ist eine ungültige Datei. Nur {extensions} ist erlaubt.",
				sizeError: "{file} ist zu groß, es sind maximal 32 MB erlaubt.",
				minSizeError: "{file} is too small, minimum file size is {minSizeLimit}.",
				emptyError: "{file} ist eine leere Datei, bitte wähle eine andere aus.",
				onLeave: "Die Datei wird hochgeladen, ein verlassen führt zum Abbruch."            
			},
			showMessage: function(message) {
				alert(message);
			}
		});
		
	}
		
	/*
	 * Button von Songssektion registrieren
	 */
	function reg_song_buttons() {
	
		$(".button[action=write_song]").click(function (e) {
			$("#l_col").fadeOut(500, function() {
				$.post(
					target +'?action=write_song',
					{
						user      : user,
						password  : pass,
						bid       : bid,
						tstamp    : tstamp
					},
					function (xml) {
						$("#l_col").html($(xml).find('op').text()).fadeIn(500);
						tstamp = $(xml).find('tstamp').text();
						post_song();
						bgfit();
					},
					'xml'
				);
			});
			e.preventDefault();
		});
		
		$(".button[action=edit_song]").click(function (e) {
			sid =  $(this).attr('sid');
			$("#l_col").fadeOut(500, function() {
				$.post(
					target +'?action=edit_song',
					{
						user     : user,
						password : pass,
						bid      : bid,
						tstamp   : tstamp,
						sid      : sid
					},
					function (xml) {
						$("#l_col").html($(xml).find('op').text()).fadeIn(500);
						tstamp = $(xml).find('tstamp').text();
						post_song(sid);
						bgfit();
					},
					'xml'
				);
			});
			e.preventDefault();
		});
		
		$(".button[action=delete_song]").click(function (e) {
			sid = $(this).attr('sid');
			$.post(
				target +'?action=delete_song',
				{
					user     : user,
					password : pass,
					bid      : bid,
					tstamp   : tstamp,
					sid      : sid
				},
				function (xml) {
					$("td[sid="+sid+"]").fadeOut(500);
					tstamp = $(xml).find('tstamp').text();
					bgfit();
				},
				'xml'
			);
			e.preventDefault();
		});
		
	}
	
	/**
	 * Speicherbutton von write_song registrieren
	 */
	
	function post_song(sid) {

		$(".button[action=post_song]").click(function (e) {
			if(formchk(Array('input[name=interpret]','input[name=title]','input[name=urheber]','input[name=gema]')) == true) {
				$("#l_col").fadeOut(500, function() {
					$.post(
						target +'?action=post_song',
						{
								user      : user,
								password  : pass,
								bid       : bid,
								tstamp    : tstamp,
								sid       : sid,
								interpret : $("input[name=interpret]").val(),
								title     : $("input[name=title]").val(),	
								urheber   : $("input[name=urheber]").val(),	
								gema      : $("input[name=gema]").val()	
						},
						function (xml) {
							$("#l_col").html($(xml).find('op').text()).fadeIn(500);
							tstamp = $(xml).find('tstamp').text();
							reg_song_buttons();
							bgfit();
						},
						'xml'
					);
				});
			}
			e.preventDefault();	
		});
		
	}
	
	/*
	 * Registrierung absenden
	 */
	function reg_band() {

		$(".button[action=reg_post]").click(function (e) {
			if(formchk(Array('input[name=interpret]','textarea[name=kurzbio]','input[name=genre]','input[name=zeitziel]','input[name=nachname]','input[name=vorname]','input[name=alter]','input[name=plz]','input[name=ort]','input[name=strasse]','input[name=phon]','input[name=email]')) == true) {
				var email = $("input[name=email]").val();
				if(isValidEmailAddress(email)) {
					$("#ajaxfield").fadeOut(500, function() {
						$.post(
							target +'?action=reg_band',
							{
								interpret: $("input[name=interpret]").val(),
								kurzbio  : $("textarea[name=kurzbio]").val(),
								erfolge  : $("input[name=erfolge]").val(),
								genre    : $("input[name=genre]").val(),
								zeitziel : $("input[name=zeitziel]").val(),
								url      : $("input[name=url]").val(),
								myspace  : $("input[name=myspace]").val(),
						
								nachname : $("input[name=nachname]").val(),
								vorname  : $("input[name=vorname]").val(),	
								alter    : $("input[name=alter]").val(),	
								plz      : $("input[name=plz]").val(),	
								ort      : $("input[name=ort]").val(),	
								strasse  : $("input[name=strasse]").val(),	
								phon     : $("input[name=phon]").val(),	
								email    : $("input[name=email]").val()
							},
							function (xml) {
								$("#ajaxfield").html($(xml).find('op').text()).fadeIn(500);
								bgfit();
							},
							'xml'
						);
					});
				} else {
					$("input[name=email]").addClass('empty');
					$("#ajaxfield").prepend('<div id="fehler" class="highlight">Es muss eine gültige eMail-Adresse angegeben werden.</div>');
					$("#fehler").show('blind');					
				}
			}
			e.preventDefault()
		});
	}
	 
	/**
	 * Formularcheck
	 */
	 function formchk(a) {
		 
		 empty = false;
		 $("#fehler").fadeOut(500);
		 $.each(a,function (i,v) {
			 
			 $(v).removeClass('empty');
			 if($(v).val() == '') {
				 $(v).addClass('empty');
				 empty = true;
			 }
			 
		 });
		 if(empty == true) {
			 $("#ajaxfield").prepend('<div id="fehler" class="highlight">Rot markierte Felder m&uuml;ssen ebenfalls ausgef&uuml;llt werden.</div>');
			 $("#fehler").show('blind');
			 return false;
		 } else {
			 return true;
		 }
		 
	 }
	 
	 function menuchk(act) {
		
		$(".m_link.border.sub").each(function () {
			$(this).removeClass("act");
		});
		$(act).parent().addClass("act");
		 
	 }

	/**
	 * Ausgabekonsole
	 */
	function console(msg) {
		$("#console").html($("#console").html()+msg+'<br />');
	}
	
	/**
	 * Managed die Anzeige des Layer-Hintergrundes
	 */
	function bgfit() {
		if($.browser.webkit == true) {
			$("#layer").height(document.body.scrollHeight);
		} else {
			$("#layer").height(document.body.parentNode.scrollHeight);
		}
	}
	bgfit();

	/**
	 * Ein- und Ausblenden des Footers
	 */
	$(".foot_item").each(function () {
		$(this).width($(this).outerWidth());
	});
	$(".foot_text").hide();

	$("#foot").hoverIntent(
		function () {
			$(".foot_text").show('blind');
		}, function () {
			$(".foot_text").hide('blind');
		}
	);

	/**
	 * Newsletter
	 */
	$("div.item:has(.text > #newsletter)").hoverIntent({
		over    : function () {
					$("#newsletter").show('blind');
					bgfit();
		},
		timeout :  3000,
		out     : function () {
					$("#newsletter").hide('blind');
		}
	});
	
	/*
	 * Newsletter-Button
	 */
	$(".button[action=post_nl]").click(function (e) {
		name  = $("input[id=nl_name]").val();
		email = $("input[id=nl_email]").val();
		$("#nl_text").hide('blind', function () {
			$.post(
				'typo3conf/ext/jbk_newsletter_fe/pi1/ajax.php?action=post_nl',
				{
					name : name,
					email: email
				},
				function (xml) {
					$("#nl_text").html($(xml).find('op').text()).show('blind');
				},
				'xml'
			);
		});
		e.preventDefault();
	});
	
	/**
	 * Headerimage-Animation
	 */
	var out_left  = -600;
	var out_right = 950;
	var speed_in  = 2000;
	var speed_out = 500;
	var speed_img = 750;
	var delay     = 4000;
	
	var easeTextIn  = 'easeOutElastic';
	var easeTextOut = 'easeInExpo';
	var easeImg     = 'easeInOutExpo';
	
	function header_animation() {
		
		$(".head_text").each(function() {
			if($(this).hasClass('left')) {
				$(this).animate(
					{
						left: out_left,
						top: $(this).attr('top')
					},
					0
				);
			} else {
				$(this).animate(
					{
						left: out_right,
						top: $(this).attr('top')
					},
					0
				);
			}
		});
		$("#head_03_text_01").animate({left: $("#head_03_text_01").attr('left')},speed_in,easeTextIn, function() {
			$("#head_03_text_02").animate({left: $("#head_03_text_02").attr('left')},speed_in,easeTextIn, function() {
				$("#head_03_text_01").delay(delay).animate({left: out_right},speed_out,easeTextOut, function() {
					$("#head_03_text_02").animate({left: out_left},speed_out,easeTextOut, function() {
						$("#head_image").animate({left: '-900'},speed_img,easeImg, function() {
/*							$("#head_02_text_01").animate({left: $("#head_02_text_01").attr('left')},speed_in,easeTextIn, function() {
								$("#head_02_text_02").animate({left: $("#head_02_text_02").attr('left')},speed_in,easeTextIn, function () {
									$("#head_02_text_01").delay(delay).animate({left: out_right},speed_out,easeTextOut, function() {
										$("#head_02_text_02").animate({left: out_left},speed_out,easeTextOut, function() {
*/											$("#head_image").animate({left: '-900'},speed_img,easeImg, function() {
												$("#head_05_text_01").animate({left: $("#head_05_text_01").attr('left')},speed_in,easeTextIn, function() {
													$("#head_05_text_02").animate({left: $("#head_05_text_02").attr('left')},speed_in,easeTextIn, function () {
														$("#head_05_text_01").delay(delay).animate({left: out_right},speed_out,easeTextOut, function() {
															$("#head_05_text_02").animate({left: out_left},speed_out,easeTextOut, function() {
																$("#head_image").animate({left: '-1800'},speed_img,easeImg, function() {
																	$("#head_06_text_01").animate({left: $("#head_06_text_01").attr('left')},speed_in,easeTextIn, function() {
																		$("#head_06_text_02").animate({left: $("#head_06_text_02").attr('left')},speed_in,easeTextIn, function () {
																			$("#head_06_text_01").delay(delay).animate({left: out_right},speed_out,easeTextOut, function() {
																				$("#head_06_text_02").animate({left: out_left},speed_out,easeTextOut, function() {
																					$("#head_image").animate({left: '0'},speed_img,easeImg, function() {
																						header_animation();
		}); }); }); }); }); }); }); }); }); }); }); }); }); }); });	});	/*});	});	});	});*/	
		
	}
	header_animation();

	function isValidEmailAddress(emailAddress) {
		var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);
		return pattern.test(emailAddress);
	}
	
	function chk_email() {
		var email = $("input[name=email]").val();
	 
		if(email != 0) {
			if(isValidEmailAddress(email)) {
				$("#emailVal").css({ "background-image": "url('"+img_path+"validyes.png')" });
			} else {
				$("#emailVal").css({ "background-image": "url('"+img_path+"validno.png')" });
			}
		} else {
			$("#emailVal").css({ "background-image": "none" });
		}
	}
	
	$("#mailformer").click(function (e) {

		var a = new Array();
		var p = {};
		empty = false;
		$("[name*=formmailer]").each(function(index, value) {
			name = $(this).attr('name');
			val  = $(this).val();
			$(this).removeClass('empty');
			$("#fehler").fadeOut(500);
			if($(this).attr('requested') == 'true' && val == '') {
				$(this).addClass('empty');
				empty = true;
			}
			name = name.substring(11,name.lastIndexOf(']'));
			p[name] = val;
		
		});

		 if(empty == true) {
			 $("#ajaxfield").prepend('<div id="fehler" class="highlight">Rot markierte Felder m&uuml;ssen ebenfalls ausgef&uuml;llt werden.</div>');
			 $("#fehler").show('blind');
		} else {
			$.post(
				'typo3conf/ext/kjr_mailformer/pi1/ajax.php?action=post_mail',
				p,
				function (xml) {
					$("#ajaxfield").fadeOut(500, function() {
						$("#ajaxfield").html($(xml).find('op').text()).fadeIn(500);
					});
				},
				'xml'
			);
		}
		
		e.preventDefault();
		
	});
	
	
});
