$(document).ready(function()
{
	function Design ()
	{
		// ==============
		// Farben
		// ==============
		
		$('p a').hover(function()
		{
			$(this).animate (
			{
				color: '#000'
			});
		},
		function()
		{
			$(this).animate (
			{
				color: '#FFF'
			});
		});
		
		$('input, textarea, select').corner("7px");
		
		// ==============
		// Content
		// ==============
		
		$('div .Box').corner("4px");
		
		// ==============
		// Cufon
		// ==============
		
		Cufon.replace('h1',
		{
			color: '#FFF'
		});
		
		Cufon.replace('.Menu',
		{
			color: '#FFF'
		});
		
		// ==============
		// Join
		// ==============
		
		$('.Join_Submit').attr ('disabled', true);
	}
	
	// Navigation
	$('.Menu').hover (function ()
	{
		$(this).animate ({ opacity: 1 }).find('span').animate ({ opacity: 1 });
	}, 
	function ()
	{
		if (!$(this).hasClass('Active'))
		{
			$(this).animate ({ opacity: 0.5 }).find('span').animate ({ opacity: 0.5 });
		}
	})
	.click (function ()
	{
		// Suche den aktiven Link
		var Active = $('.Active').removeClass('Link Active Menu').attr('class');
		
		// Suche den aktuellen Link
		var Current = $(this).removeClass('Link Menu').attr('class');
		
		// Wenn der aktuell angeklickte Link nicht mit dem aktiven Link uebereinstimmt
		if (Active != Current)
		{
			// Aktiven Block blass machen
			$('.' + Active).animate ({ opacity: 0.5 }).find('span').animate ({ opacity: 0.5 }).removeClass('Active');
			
			// Angeklickten Block aktiv halten
			$('.' + Current).addClass('Active');
		}
		else
		{
			$('.' + Active).addClass('Active');
		}
	});
	
	// Affiliate
	$('.Affi').click (function ()
	{
		// Suche den aktiven Link
		var Active = $('.Active').removeClass('Link Active Menu').attr('class');
		
		$('.' + Active).animate ({ opacity: 0.5 }).find('span').animate ({ opacity: 0.5 }).removeClass('Active');
		$('.Start').addClass('Active');
	});
	
	// About
	$('.faq').live ('click', function ()
	{
		var Id = $(this).removeClass('faq').attr('class').replace ('prt_', '');
		
		$('.shw_' + Id).slideToggle (1000);
		
		$(this).addClass('faq');
	});
	
	// Passwort vergessen
	$('.Pass').click (function ()
	{
		// Suche den aktiven Link
		var Active = $('.Active').removeClass('Link Active Menu').attr('class');
		
		$('.' + Active).animate ({ opacity: 0.5 }).find('span').animate ({ opacity: 0.5 }).removeClass('Active');
		$('.Start').addClass('Active');
	});
	
	// Hintergrund
	function Rld_Css (Clr, Img)
	{
		$('.Frame').fadeOut (function ()
		{
			$(this).css (
			{
				backgroundImage: 'url()'
			});
			
			$('body').animate (
			{ 
				backgroundColor: Clr 
			});
		});
	}
	
	// Address
	$.address.init (function (event) 
	{
		$('.Link').address();
	})
	.change (function (event)
	{
		var Url = $.address.value().replace('/', '');
		
		$.get ('offline_new.php',
		{
			action: Url
		},
		function (data)
		{
			var Divi = $('.Divi', data).html();
			
			$('.Divi').fadeOut ('slow', function ()
			{
				$(this).html(Divi).fadeIn('slow');
				Design ();
			});
			
			var Titel = data.match (/<title>(.*?)<\/title>/);
			var Titel = Titel[1];
			
			$.address.title(Titel);
			
			var Img;
			var Clr;
			var Width;
			var Height = 21;
			var Logo;
			
			switch (Url)
			{
				// Gelb
				case 'about':
					Img = 2;
					Clr = '#F1B900';
					Set_Act = 'About';
					Logo = 'summer';
					Width = 91;
				break;
				// Gruen
				case 'demo':
				case 'numeric':
				case 'pidoku':
				case 'pinon':
					Img = 3;
					Clr = '#45B100';
					Set_Act = 'Demo';
					Logo = 'spring';
					Height = 24;
					Width = 76;
				break;
				// Blau
				case 'join':
					Img = 4;
					Clr = '#0095B1';
					Set_Act = 'Join';
					Logo = 'winter';
					Width = 76;
				break;
				// Lila
				case 'jobs':
					Img = 5;
					Clr = '#8900F1';
					Set_Act = 'Jobs';
					Logo = 'autumn';
					Width = 86;
				break;
				// Rot
				default:
					Img = 1;
					Clr = '#B10B00';
					Set_Act = 'Start';
					Logo = 'season';
					Width = 93;
			}
			
			$('.Sub').fadeOut (1000, function ()
			{
				$(this).fadeIn(1000).css (
				{
					'background-image': 'url(offline_logo_' + Logo + '.png)',
					'width': Width + 'px',
					'height': Height + 'px'
				});
			});
			
			Rld_Css (Clr, Img);
			
			$('.' + Set_Act).addClass ('Active');
		});
	});
	
	// Spiel: NUMERIC BREAKER
	$('.Numeric').live ('click', function ()
	{
		// Startseite
		if ($(this).hasClass('Easy') || $(this).hasClass('Hard'))
		{
			var Lvl = ($(this).hasClass('Easy')) ? 1 : 2;
			
			$.post ('offline.game.numeric.php',
			{
				act: 1,
				lvl: Lvl
			},
			function (data)
			{
				// Titel aendern
				$('.Gme_Ttl').fadeOut (function ()
				{
					var Dsp_Lvl = (Lvl == 1) ? 'Einfach' : 'Schwer';
					$(this).fadeIn ().html ('Level: ' + Dsp_Lvl);
				});
				
				// Feld einblenden
				$('.Gme_Fld').fadeOut (function ()
				{
					$(this).fadeIn ().html (data);
					Design ();
				});
			});
		}
		
		// Aufgeben
		if ($(this).hasClass('Resign'))
		{
			var Lvl = ($(this).hasClass('Easy')) ? 1 : 2;
			
			$.post ('offline.game.numeric.php',
			{
				act: 3
			},
			function (data)
			{
				// Titel aendern
				$('.Gme_Ttl').fadeOut (function ()
				{
					$(this).fadeIn ().html ('Du hast aufgegebn');
				});
				
				// Feld einblenden
				$('.Gme_Fld').fadeOut (function ()
				{
					$(this).fadeIn ().html (data);
					Design ();
				});
			});
		}
	})
	.live ('submit', function ()
	{
		// Wort erraten
		if ($(this).hasClass('Guess'))
		{
			if (!$('.Num_Inp').val())
			{
				alert ('Bitte geben ein Wort ein.');
			}
			else
			{
				$.post ('offline.game.numeric.php',
				{
					act: 2,
					wrd: $('.Num_Inp').val()
				},
				function (data)
				{
					$('.Gme_Fld').fadeOut (function ()
					{
						$(this).fadeIn ().html (data);
						Design ();
					});
				});
			}
		}
		
		return false;
	});
	
	// Spiel: Pidoku
	$('.Pidoku').live ('click', function ()
	{
		// Startseite
		if ($(this).hasClass('Easy') || $(this).hasClass('Medi') || $(this).hasClass('Hard'))
		{
			var Lvl = ($(this).hasClass('Easy')) ? 1 : (($(this).hasClass('Medi')) ? 2 : 3);
			
			$.post ('offline.game.pidoku.php',
			{
				act: 1,
				lvl: Lvl
			},
			function (data)
			{
				// Titel aendern
				$('.Gme_Ttl').fadeOut (function ()
				{
					var Dsp_Lvl = (Lvl == 1) ? 'Einfach' : ((Lvl == 2) ? 'Mittel' : 'Schwer');
					$(this).fadeIn ().html ('Level: ' + Dsp_Lvl);
				});
				
				// Feld einblenden
				$('.Gme_Fld').fadeOut (function ()
				{
					$(this).fadeIn ().html (data);
					Design ();
				});
			});
		}
		
		// Aufgeben
		if ($(this).hasClass('Resign'))
		{
			var Lvl = ($(this).hasClass('Easy')) ? 1 : 2;
			
			$.post ('offline.game.pidoku.php',
			{
				act: 3
			},
			function (data)
			{
				// Titel aendern
				$('.Gme_Ttl').fadeOut (function ()
				{
					$(this).fadeIn ().html ('Du hast aufgegebn');
				});
				
				// Feld einblenden
				$('.Gme_Fld').fadeOut (function ()
				{
					$(this).fadeIn ().html (data);
					Design ();
				});
			});
		}
	})
	.live ('submit', function ()
	{
		// Pidoku erraten
		if ($(this).hasClass('Guess'))
		{
			var Pdk = new Array ();
			
			$('.Pdk').each (function ()
			{
				Rtn = ($(this).val().length < 0) ? 0 : $(this).val();
				Pdk.push (Rtn);
			});
			
			var Pdk_End = Pdk.join (',');
			
			$.post ('offline.game.pidoku.php',
			{
				act: 2,
				str: Pdk_End
			},
			function (data)
			{
				$('.Gme_Fld').fadeOut (function ()
				{
					$(this).fadeIn ().html (data);
					Design ();
				});
			});
		}
		
		return false;
	});
	
	// Spiel: Pinon Man
	$('.Pinon').live ('click', function ()
	{
		// Startseite
		if ($(this).hasClass('Start_') || $(this).hasClass('Medi') || $(this).hasClass('Hard'))
		{
			$.post ('offline.game.pinon.php',
			{
				act: 1
			},
			function (data)
			{
				// Titel aendern
				$('.Gme_Ttl').fadeOut (function ()
				{
					$(this).fadeIn ().html ('Spiel wurde gestartet');
				});
				
				// Feld einblenden
				$('.Gme_Fld').fadeOut (function ()
				{
					$(this).fadeIn ().html (data);
					Design ();
				});
			});
		}
		
		// Aufgeben
		if ($(this).hasClass('Resign'))
		{
			$.post ('offline.game.pinon.php',
			{
				act: 3
			},
			function (data)
			{
				// Titel aendern
				$('.Gme_Ttl').fadeOut (function ()
				{
					$(this).fadeIn ().html ('Du hast aufgegebn');
				});
				
				// Feld einblenden
				$('.Gme_Fld').fadeOut (function ()
				{
					$(this).fadeIn ().html (data);
					Design ();
				});
			});
		}
	})
	.live ('submit', function ()
	{
		// Pinon Man erraten
		
		var Word = $('.Text_').val();
		
		$.post ('offline.game.pinon.php',
		{
			act: 2,
			word: Word
		},
		function (data)
		{
			$('.Gme_Fld').fadeOut (function ()
			{
				$(this).fadeIn ().html (data);
				Design ();
			});
		}); 
		
		return false;
	});
	
	// Funktionen
	// Spiel: NUMERIC BREAKER, PINON MAN
	// Nur Buchstaben erlauben
	$('.Num_Inp').live ('keyup', function ()
	{
		var Crt = $(this).val().replace(/[-_\W\d\s]/g , '');
		$(this).val(Crt);
	});
	
	// Spiel: PIDOKU
	// Nur Zahlen
	$('.Pdk').live ('keyup', function ()
	{
		var Crt = $(this).val().replace(/[-_\D\s]/g , '');
		$(this).val(Crt);
	});
	
	// Join
	$('.Joining').live ('submit', function ()
	{
		var Check = $('.Register_Code').val().length;
		
		if (Check < 1)
		{
			$('.Message').fadeIn(function ()
			{
				$(this).css (
				{
					color: 'red',
					display: 'block',
					width: '100%'
				})
				.html ('Bitte gebe einen Joincode ein!');
			});
		}
		else
		{
			$.post ('offline.register.php',
			{
				act: 1,
				code: $('.Register_Code').val()
			},
			function (data)
			{
				if (data == '0')
				{
					$('.Message').css (
					{
						color: 'red',
						display: 'block',
						width: '100%'
					})
					.html ('Der Code ist ung&uuml;ltig.');
				}
				else
				{
					$('.Display_Field').fadeIn (function ()
					{
						$(this).html (data);
					}).css (
					{
						textAlign: 'left'
					}).unwrap();
					
					Design();
				}
			});
		}
		
		return false;
	});
	
	$('.Join_Input').live ('focus', function ()
	{
		$(this).next().html (function ()
		{
			if ($('.Join_Table').attr ('id') != $(this).find('span').attr ('class'))
			{
				$('.Join_Span').find('span').fadeOut('slow', function ()
				{
					$(this).css (
					{
						display: 'none'
					});
				});
			}
			
			$(this).find('span').fadeIn(function ()
			{
				$(this).css (
				{
					display: 'block'
				});
				
				$('.Join_Table').attr ('id', $(this).attr ('class') );
			});
		});
	});
	
	$('.Join_Input').live ('focusout change', function ()
	{
		$(this).html (function ()
		{
			var Val = $(this).find('input, select').val();
			
			if (Val.length > 0)
			{
				// Kontrolle, ob es die Passwortfelder sind
				if ($(this).find('input[type=password]').length > 0)
				{
					// Nur wenn beide Passwortfelder ausgefuellt wurden
					if ($('.Join_Passwort').val().length > 0 && $('.Join_Passwort_2').val().length > 0)
					{
						if ($('.Join_Passwort').val() == $('.Join_Passwort_2').val())
						{
							$('.Join_Passwort, .Join_Passwort_2').fadeIn (5000, function ()
							{
								$(this).css (
								{
									backgroundImage: 'url(images/offline/accept.png)',
									backgroundRepeat: 'no-repeat',
									backgroundPosition: '97% 5px'
								});
							}).removeClass('Error');
						}
						else
						{
							$('.Join_Passwort, .Join_Passwort_2').fadeIn (5000, function ()
							{
								$(this).css (
								{
									backgroundImage: 'url(images/offline/cross.png)',
									backgroundRepeat: 'no-repeat',
									backgroundPosition: '97% 5px'
								});
							}).addClass('Error');
						}
					}
					else
					{
						$('.Join_Passwort').fadeIn (function ()
						{
							$(this).css (
							{
								backgroundImage: 0
							});
						});
					}
				}
				// Feldkontrollen fuer Nickname, E-Mail und Code
				else if ($(this).find('.Join_Name, .Join_Email, .Join_Code').length > 0)
				{
					var Art;
					var Class = $(this).find('input').attr ('class').split(' ');
					Class = Class[0];
					
					switch (Class)
					{
						// 0 = Name, 1 = E-Mail, 2 = Code
						case 'Join_Email':	Art = 1;	break;
						case 'Join_Code':	Art = 2;	break;
						default:		Art = 0;
					}
					
					$.post ('offline.register.php',
					{
						act: 2,
						art: Art,
						name: $('.Join_Name').val(),
						email: $('.Join_Email').val(),
						code: $('.Join_Code').val()
					},
					function (data)
					{
						var Img = (data == 1) ? 'accept' : 'cross';
						
						$('.' + Class).fadeIn (function ()
						{
							$(this).css (
							{
								backgroundImage: 'url(images/offline/' + Img + '.png)',
								backgroundRepeat: 'no-repeat',
								backgroundPosition: '97% 5px'
							});
						});
						
						if (data == 1)
						{
							$('.' + Class).removeClass('Error');
						}
						else
						{
							$('.' + Class).addClass('Error');
						}
					});
				}
				// Feldkontrollen fuer das Geburtsdatum
				else if ($(this).find('.Birth_Day, .Birth_Month, .Birth_Year').length > 0)
				{
					var Img = 'cross';
					if ($('.Birth_Day').val() > 0 && $('.Birth_Month').val() > 0 && $('.Birth_Year').val() > 0)
					{
						Img = 'accept';
						$('.Birth_Day, .Birth_Month, .Birth_Year').removeClass('Error');
					}
					else
					{
						$('.Birth_Day, .Birth_Month, .Birth_Year').addClass('Error');
					}
					
					$('.Birth_Day, .Birth_Month').fadeIn (function ()
					{
						$(this).css (
						{
							backgroundImage: 'url(images/offline/' + Img + '.png)',
							backgroundRepeat: 'no-repeat',
							backgroundPosition: '89.5% 5px'
						});
					});
					
					$('.Birth_Year').fadeIn (function ()
					{
						$(this).css (
						{
							backgroundImage: 'url(images/offline/' + Img + '.png)',
							backgroundRepeat: 'no-repeat',
							backgroundPosition: '93% 5px'
						});
					});
				}
				// Geschlechts Felder
				else if ($(this).find('.Gender').length > 0)
				{
					var Img = ($('.Gender').val() > 0) ? 'accept' : 'cross';
						
					$('.Gender').fadeIn (function ()
					{
						$(this).css (
						{
							backgroundImage: 'url(images/offline/' + Img + '.png)',
							backgroundRepeat: 'no-repeat',
							backgroundPosition: '95% 5px'
						});
					});
						
					if ($('.Gender').val() > 0)
					{
						$('.' + Class).removeClass('Error');
					}
					else
					{
						$('.' + Class).addClass('Error');
					}
				}
				// Select Felder
				else if ($(this).find('.Account_Type').length > 0)
				{
					var Img = ($('.Account_Type').val() > 0) ? 'accept' : 'cross';
						
					$('.Account_Type').fadeIn (function ()
					{
						$(this).css (
						{
							backgroundImage: 'url(images/offline/' + Img + '.png)',
							backgroundRepeat: 'no-repeat',
							backgroundPosition: '96.5% 5px'
						});
					});
						
					if ($('.Account_Type').val() > 0)
					{
						$('.' + Class).removeClass('Error');
					}
					else
					{
						$('.' + Class).addClass('Error');
					}
				}
				// Normale Inputfelder editieren
				else
				{
					$(this).find('input').fadeIn (function ()
					{
						$(this).css (
						{
							backgroundImage: 'url(images/offline/accept.png)',
							backgroundRepeat: 'no-repeat',
							backgroundPosition: '97% 5px'
						});
					});
				}
			}
		});
	});
	
	$('.Join_Form').live ('focusout change keyup', function ()
	{
		if ($('.Join_Name').val().length > 0 && $('.Join_Email').val().length > 0 && $('.Join_Passwort').val().length > 0 && $('.Join_Passwort_2').val().length > 0 && $('.Gender').val() > 0 && $('.Birth_Day').val() > 0 && $('.Birth_Month').val() > 0 && $('.Birth_Year').val() > 0 && $('.Account_Type').val() > 0 && $('.Join_Code').val().length > 0 && $('.Join_Passwort').val() == $('.Join_Passwort_2').val())
		{
			if ($('.Error').length == 0)
			{
				$('.Join_Submit').css ('display', 'inline').attr ('disabled', false);
			}
			else
			{
				$('.Join_Submit').css ('display', 'none').attr ('disabled', true);
			}
		}
		else
		{
			$('.Join_Submit').css ('display', 'none').attr ('disabled', true);
		}
	});
	
	$('.Join_Form').live ('submit', function ()
	{
		if ($('.Join_Name').val().length > 0 && $('.Join_Email').val().length > 0 && $('.Join_Passwort').val().length > 0 && $('.Join_Passwort_2').val().length > 0 && $('.Gender').val() > 0 && $('.Birth_Day').val() > 0 && $('.Birth_Month').val() > 0 && $('.Birth_Year').val() > 0 && $('.Account_Type').val() > 0 && $('.Join_Code').val().length > 0 && $('.Join_Passwort').val() == $('.Join_Passwort_2').val() && $('.Error').length == 0)
		{
			$.post ('offline.register.php',
			{
				act: 3,
				name: $('.Join_Name').val(),
				email: $('.Join_Email').val(),
				password: $('.Join_Passwort').val(),
				password_2: $('.Join_Passwort_2').val(),
				gender: $('.Gender').val(),
				birthday: $('.Birth_Day').val(),
				birthmonth: $('.Birth_Month').val(),
				birthyear: $('.Birth_Year').val(),
				type: $('.Account_Type').val(),
				code: $('.Join_Code').val(),
				herkunft: $('.Join_Herkunft').val(),
				homepage: $('.Join_Homepage').val(),
				msn: $('.Join_MSN').val(),
				icq: $('.Join_ICQ').val(),
				joincode: $('.Join_Code_').val(),
				msg: $('.Account_Message').val()
			},
			function (data)
			{
				$('.Join_Form').fadeOut (function ()
				{
					$(this).html (data).fadeIn();
					Design ();
					return false;
				});
			});
		}
		
		return false;
	});
	
	// Login
	$('.Login_Form').live ('submit', function ()
	{
		var Name = $('.Form_Name').val();
		var Pass = $('.Form_Pass').val();
		
		$.post ('index.php', 
		{
			login: 1,
			nme: Name,
			pwd: Pass
		},
		function (data)
		{
			$('.Login_Form').fadeOut ('slow', function ()
			{
				$(this).html(data).fadeIn('slow');
				Design ();
			});
		});
		
		return false;
	});
	
	// Passwort vergessen
	$('.Forget').live ('submit', function ()
	{
		if ($('.Frg_Nme').val().length > 0)
		{
			var Nme = $('.Frg_Nme').val();
			$.post ('index.php',
			{
				forget: 1,
				name: Nme
			},
			function (data)
			{
				$('.Forget').fadeOut (function ()
				{
					$('.Forget').html(data).fadeIn();
					Design ();
				});
			});
		}
		
		return false;
	});
	
	// Passwort vergessen - Schritt 2
	$('.Forget_2').live ('submit', function ()
	{
		$.post ('index.php',
		{
			resend: 1,
			name: $('.Frg_2_Nme').val(),
			pass: $('.Frg_2_Pwd').val(),
			pass_2: $('.Frg_2_Pwd_2').val(),
			code: $('.Frg_Cde').val()
		},
		function (data)
		{
			$('.Forget_2').fadeOut (function ()
			{
				$(this).html(data).fadeIn();
				Design ();
			});
		});
		
		return false;
	});
	
	// CSS laden
	Design ();
});
