/*******************************************************************************
* System Vars
*******************************************************************************/

	var GlobInt		= false;
	var HandlerURL	= './res/php/Ajax.php';
	var LoadingAni	= '<img src="./res/gr/Ani/Loading.gif" border="0" width="20" height="20" alt="Inhalt wird geladen" tile="Inhalt wird geladen">';


/*******************************************************************************
* Grafischer Unsinn
*******************************************************************************/

	//> Globale Img-Hover Funktion
	function DisplayHover(Sender) {

		//> Init
		var Src		= $(Sender).attr('src');
		var NewSrc	= ((Src.indexOf('-Hover') == -1) ? Src.substring(0, Src.lastIndexOf('.')) + '-Hover' + Src.substring(Src.lastIndexOf('.')) : Src.replace(/-Hover/g, ''));

		//> Neue Bild Quelle setzen
		$(Sender).attr('src', NewSrc);

		//> MouseOut Ereignis zuweisen
		if (NewSrc.indexOf('-Hover') > -1)
		$(Sender).bind("mouseout", function(e) { DisplayHover(this); }); else
		$(Sender).unbind("mouseout");

	}

	function ExtendFetchResult(Mode, Size) {
		if (Mode == '2') {
			var Temp = 124 + 62 * (Size - 2);
			$('#FetchResult').animate({ height: Temp + 'px'}, 500);
			$('#FetchList').animate({ height: (Temp + 16)+ 'px'}, 500);
		} else if (Mode == '1') {
			$('#FetchResult').animate({ height: '124px'}, 500);
			$('#FetchList').animate({ height: '141px'}, 500);
		} else {
			if ($('#FetchList').css("display") != 'none') {
				$('#FetchBox').height('0px');
				$('#FetchList').height('0px');
			}
		}
	}

	function HoverHelper(Sender, Destination) {

		//> Init
		var Src		= $(Destination).attr('src');
		var NewSrc	= ((Src.indexOf('-Hover') == -1) ? Src.substring(0, Src.lastIndexOf('.')) + '-Hover' + Src.substring(Src.lastIndexOf('.')) : Src.replace(/-Hover/g, ''));

		//> Neue Bild Quelle setzen
		$(Destination).attr('src', NewSrc);

		//> MouseOut Ereignis zuweisen
		if (NewSrc.indexOf('-Hover') > -1)
		$(Sender).bind("mouseout", function(e) { HoverHelper(this, Destination); }); else
		$(Sender).unbind("mouseout");
	}

	//> Funktion zum einblenden von Top30 Gruppen
	function DisplayTop30(Element) {

		//> Alte Option löschen
		$('#NewsOpts > div').removeClass();
		$('#NewsOpts > div').addClass('Option');

		//> Zuerst alle Einträge ausblenden
		$('.NewsContainer > div').css('display', 'none');

		//> Einträge gemäß Option einblenden
		if ($(Element).attr('id') != 'Mixed') {
			$('.NewsContainer > .' + $(Element).attr('id')).css('display', 'inline');
		} else {
			$('.NewsContainer > .Movie:first').css('display', 'inline');
			$('.NewsContainer > .Game:first').css('display', 'inline');
			$('.NewsContainer > .TV:first').css('display', 'inline');
			$('.NewsContainer > .Music:first').css('display', 'inline');
			$('.NewsContainer > .XXX:first').css('display', 'inline');
			$('.NewsContainer > .App:first').css('display', 'inline');
			$('.NewsContainer > .Book:first').css('display', 'inline');
		}

		//> Neue Option setzen
		$(Element).addClass("Active"); $(Element).removeClass("Option"); $(Element).removeClass("HoverLa"); $(Element).unbind("mouseout");


		DisplayInit('News');
	}

	function ShowMsg(Msg) {
		if (Msg == '') window.clearInterval(GlobalInterval);
		$(".SearchMsg").html(Msg);

		if (Msg != '')	GlobalInterval = window.setInterval("ShowMsg('');", 1500);
	}

	function ToggleUpdateMode(Blockname) {

		if ($('#FieldSet_Web' + Blockname).css('display') == 'none') {

			$('#FieldSet_Web' + Blockname).slideDown("fas");
			$('#FieldSet_' + Blockname).slideUp("fast");

			$('#IndiFieldSet_' + Blockname).attr("src", "./res/gr/Fam/Drive_web.png");

		} else {

			$('#FieldSet_Web' + Blockname).slideUp("fast");
			$('#FieldSet_' + Blockname).slideDown("fast");

			$('#IndiFieldSet_' + Blockname).attr("src", "./res/gr/Fam/Drive.png");

		}
	}

	function AppenLinkField(Network, Count, Current) {
		var CurrentSize = $("#FieldSet_" + Network + " > .Link").length;
		if (Current == 0 || CurrentSize == (Current + 1))
		for (i = 0; i < Count; i++)
			if ((CurrentSize + i + 1) <= 50) {
				if (Network != 'Torrent' && Network != 'Screenshots')
				$("#FieldSet_" + Network).append('<input type="text" name="Net_'+ Network +'_'+ (CurrentSize + i) +'" value="" class="Link" onblur="if (this.value != \'\') AppenLinkField(\''+ Network +'\', 1, '+ (CurrentSize + i + 1) +');">');	else
				$("#FieldSet_" + Network).append('<input type="file" name="Net_'+ Network +'_'+ (CurrentSize + i) +'" size="69" class="Link" onchange="if (this.value != \'\') AppenLinkField(\''+ Network +'\', 1, 0);">');
			}
	}


	//> Funktion zum initialisieren von aktiven Grafischen Funktionen
	function DisplayInit(Page) {

		//> Gewünschte Seite Initialisieren
		switch (Page) {

			case 'News':
			case 'Details':
				$(".TabBtnArea > .Option").bind("mouseover", function () { $(this).removeClass("Option"); $(this).addClass("HoverLa"); });
				$(".TabBtnArea > .Option").bind("mouseout", function () { $(this).removeClass("HoverLa"); $(this).addClass("Option"); });
				break;

		};

	}

	function ToogleListOpts() {
		$('#ExtFilterOpts').toggle("normal");
		$('#ToggleFilterBtn').attr('src', './res/gr/Btn/ToogleFilter'+ (($('#ToggleFilterBtn').attr('src').indexOf('Filter0') > -1) ? '1' : '0')  +'.gif');
		$('#ToggleFilterBtn').unbind("mouseout");
	}

	function Effect(Method, Element) {

		switch (Method) {

		case 'ResetQuali':
		case 'NewQuali':

			//> Elemente fetchen
			Set = $("#" + arguments[2] + " > " + ".QualiIcon");

			//> Farbe setzen
			for (i = 0; i < arguments[3]; i++) {
				$(Set[i]).removeClass('Color0');
				$(Set[i]).addClass('Color' + (i + 1));
			}

			//> Übrige Felder als Grau makieren
			for (i = arguments[3]; i < 10; i++) {
				$(Set[i]).removeClass('Color' + (i + 1));
				$(Set[i]).addClass('Color0');
			}

			break;
		};
	}

	function UpdateInteractivePage(Obj, Mode) {
		if (Obj == "Layout") { DetailMode = Mode; return; }
		$(".Net_"+ Obj + ((Mode == 1) ? "_Hidden" : "")).addClass("Net_"+ Obj + ((Mode == 0) ? "_Hidden" : ""));
		$(".Net_"+ Obj + ((Mode == 1) ? "_Hidden" : "")).removeClass("Net_"+ Obj + ((Mode == 1) ? "_Hidden" : ""));
	}


	function SimpleAnimation(Element, Indi, BG, Length) {
 		var NewState = '';
 		var OldState = $(Element).text();
		var IndiPos = ((OldState.indexOf(Indi) >= Length || OldState.indexOf(Indi) == -1) ? 0 : OldState.indexOf(Indi));
        for (i = 0; i < Length; i++) NewState += ((i == IndiPos) ? Indi : BG);
		NewState = '['+ NewState  +']';
 		$(Element).text(NewState);

	}


/*******************************************************************************
* Formular Funktionen
*******************************************************************************/

	function SetFilter(Type, ValueSender, SourceForm) {

		switch (Type) {

			case "Letter":
				$('.SelectedLetter').removeClass('SelectedLetter');
				$(ValueSender).addClass('SelectedLetter');
				$('[name=Filter_Letter]').attr('value', $(ValueSender).text());
				$('[name=Offset]').attr('value', '0');
				$('[name=Filter_Str]').attr('value', '');
				break;

			case "Offset":
				$('[name=Offset]').attr('value', ValueSender);
				break;

			case "Sorting":
				var OldID = $(ValueSender).attr('id');
				var OldState = $('#' + OldID + ' > img').attr('src');
				var OldState = OldState.substr(OldState.indexOf('_') + 1, 1);
				$('.Option > img').attr('src', './res/gr/Btn/Sorting_G.gif');
				$('#' + OldID + ' > img').attr('src', './res/gr/Btn/Sorting_'+ ((OldState == 'G' || OldState == 'D') ? 'A' : 'D') +'.gif');
				$('[name=Sorting]').attr('value', ((OldState == 'D' || OldState == 'G') ? 'A' : 'D') + OldID);
				$(ValueSender).unbind("mouseout");
				break;
		};

		AJ_Request('UpdateList', SourceForm);
	}


	function OpenDetailPage(URL) {

		//> Init
		var PopUpAttr = 'width=720,height=500,scrollbars=1,toolbar=0,status=0,menuebar=0,location=0,resizable=0';

		switch (DetailMode) {

			case 'popup':
				var Handle = window.open(URL + '&HideFrameWork=Y', 'SinglePopup', PopUpAttr);
				Handle.focus();
				break;

			case 'popups':
				var Handle = window.open(URL + '&HideFrameWork=Y', URL, PopUpAttr);
				Handle.focus();
				break;

			default:
				location.href = URL;
				break;
		};

	}


/*******************************************************************************
* Pril Handlungs Routinen
*******************************************************************************/

	//> Basis Pril Funkton
	function AJ_Request(Request) {

		//> Init
		var Param1 = arguments[1]; var Param2 = arguments[2]; var Param3 = arguments[3];
		var Param4 = arguments[4]; var Param5 = arguments[5];

		//> Requests Verarbeiten
		switch (Request) {

			//> News nachladen
			case 'GetNewsContent':

            	//> Ladestatus anzeigen
				$('#NewsHeadline').text('News werden geladen...');
				$('#NewsContent').html('<br>'+ LoadingAni +'<br><br>');

				//> Daten holen
				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
						data: "Request=GetNewsContent&Timestamp=" + Param1,
						success: function(json) {

							//> Details eintragen
							$('#NewsHeadline').text(json.Headline);
							$('.NewsSelection').html(json.Selection);

							//> Content verarbeiten
							var NewsList = json.Template.process(json.Data);
							$('#NewsContent').html(NewsList);

						}
						});
				break;

			case 'RequestRight':
				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
					data: "Request=GetRight&Param1=" + Param1,
					success: function(json) {
						alert(json.Msg);
					}
				});
				break;

			case 'PostComment':

				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
					data: "Request=SetComment&" + $("#Form_Comment").serialize(),
					success: function(json) {
						if      (json.Error == '1')	alert(json.Msg);
						else if (json.Error == '2') $("#MainDet").html(json.Content);
						else {	window.status = json.Msg; $("#Comments").append(json.Content); }
					}
				});

				break;

			case "DeleteComment":

				//> Sicherheitsabfrage
				if (!confirm('Bist Du Dir sicher, dass Du diesen Kommentar löschen willst?')) return;

				//> EditBox Inhalt holen
				$.ajax({type: "POST",url: HandlerURL, dataType: "json", data: "Request=SetThirdPartyInfo&Type=Comment&ID=" + Param1,
						success: function(Result) {
							if (Result.Success == 1)
								$('#Comment_' + Param1).remove();
						}
				});

				break;

			case 'SetQuali':
				$(((Param1 == 'Video') ? '#Q0' : '#Q1')).html('<i>Lade...</i>');
				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
						data: "Request=SetQuali&Param1="+ Param1 +"&Param2=" + Param2 +"&Param3=" + Param3,
						success: function(json) {
							$(((Param1 == 'Video') ? '#Q0' : '#Q1')).html(json.Content);
							if (json.Error == '1') alert(json.Msg);
						}});
				break;

			case 'ReceiveFetchList':

				//> Gesuchten Titel ermitteln
				var FetchTitle = $('#Entry_Title').attr('value');

				if (FetchTitle == '' || FetchTitle == undefined) {
					$('.Ajo_Msg').text('Bitte spzifiziere die Suche ...');
				} else {

					//> Statusmeldung anzeigen
					$('.Ajo_Msg').text('Fetchskript wurde gestartet ...');

					GlobalInterval = top.setInterval("SimpleAnimation('#FetchProgress', '+', '∙', 45)", 150);

					if ($('#FetchList').css("display") != 'none') {
						$('#FetchList').html('');
						$('#FetchList').hide("fast");
					}

					$.ajax({type: "POST",url: HandlerURL, dataType: "json", data: "Request=GetFetchList&Title=" + escape(FetchTitle),
							success: function(Result) {

								//> Keine Ergebnisse gefunden?
								window.clearInterval(GlobalInterval);
								$('#FetchProgress').text('');
								if (Result.Size == 0) {

									$('.Ajo_Msg').text('Keine Ergebnisse gefunden');
									$('#FetchList').html('');
									$('#FetchList').hide("slow");

								} else {

									$('.Ajo_Msg').text('Ergebnisse werden angezeigt');
									$('#FetchList').html(Result.FetchResult);
									$('#FetchList').show("slow");

								}
							}
					});

				}

				break;


			case 'Fetch':

				//> Fetch Skript starten
				$(Param3).attr('src', './res/gr/Ani/Loading.gif');
				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
					data: "Request=GetFetch&Mode=" + escape(Param1) + "&Data=" + escape(Param2),
					success: function(json) {

						//> Suchergebnis zurück setzen
						$('#FetchList').html('');
						$('#FetchList').hide("fast");

						//> Datenmenge eintragen
						$('#Entry_Title').attr('value', json.Title);
						$('#Entry_ThumbWeb').attr('value', json.Thumb);
						$('#Entry_Description').attr('value', json.Description);

						//> Details eintragen
						for (Detail in json.Details)
							if ($('.' + Detail).length == 1)
								$('.' + Detail).attr('value', json.Details[Detail]);

						//> Info
						$('.Ajo_Msg').text('Auto-Vervollständigung abgeschlossen');

					}
				});
				break;

			case 'ClearEntryCache':

            	//> Ladestatus anzeigen
				$('#EntryCacheState').html(' (<i>Lade</i>)');

				//> Daten holen
				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
						data: "Request=SetEntry&Opt=ClearCache&ID=" + Param1,
						success: function(json) {

			            	//> Resultat anzeigen
							$('#EntryCacheState').html(' (<i>'+ json.Msg +'</i>)');

						}
						});
				break;

			case 'Register':

				$("#RegBtn").addClass("BoxLoading");
				$("#RegBtn").attr("value", "");

				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
						data: "Request=SetNewUser&" + $("#RegisterForm").serialize(),
						success: function(json) {

							$("#RegBtn").removeClass("BoxLoading");
							$("#RegBtn").attr("value", "Jetzt registrieren");

							//> Auswertung parsen
							var MsgBox = json.Template.process(json);

							$('#RegError').html('');
							if (json.ERROR == 0)
							$("#RegInfo").html(MsgBox);  else
							$('#RegError').html(MsgBox);

						}});

				break;

			case 'GetTopTen':

				//> Ladestatus anzeigen
				$('#TopTenList').html(LoadingAni);

				//> Liste abfragen
				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
						data: "Request=GetTopTen&Type=" + Param1,
						success: function(json) {

							var List = json.Template.process(json);
							$('#TopTenList').html(List);

						}
				});

				break;


			case 'GetResultsFor':

				//> Ladestatus anzeigen
				$('[class=Input_SearchString]').attr('value', Param1);
				$('[name=Filter_Section]').attr('value', Param2);
				if (Param2 == '2')
					$('[name=Filter_StrType]').attr('value', 'Strict');
				else
					$('[name=Filter_StrType]').attr('value', '');
				AJ_Request('QuickSeach', 'QuickSearchForm');

				break;


			case 'QuickSeach':

				//> Ladestatus anzeigen
				$('[class=Input_SearchString]').addClass('BoxLoading');

				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
						data: "Request=GetList&" + $('#' + Param1).serialize(),
						success: function(json) {

							var List = json.Template.process(json);
							$('#Content').html(json.Upgrade);
							$('#ListResult').html(List);

							if (json.Error == 0) {

								$.tablesorter.defaults.widgets = ['zebra'];

								$(".SektionTable").tablesorter({
									sortList: [[ json.SortCol , json.SortOrd]],
									headers: {
										1: { sorter:'List_Title'},
										2: { sorter:'List_Seeder'},
										3: { sorter:'List_Date'}
									}});
							}

							//> Ladestatus verbergen
							$('.BoxLoading').removeClass('BoxLoading');

						}
				});


				break;
			case 'UpdateList':

				if (Param1 == 'QuickSearchForm') {
					AJ_Request('QuickSeach', 'QuickSearchForm');
					return;
				}

				//> Ladestatus anzeigen
				$('#Load_Page').html(LoadingAni);
				$('#ErrorMsgIcon').html(LoadingAni);
				$('#FilerStateImg').attr('src', $('#FilerStateImg').attr('src').replace(/State_0.gif/g, 'State_0-Hover.gif'));
				$('[name=Filter_Str]').addClass('BoxLoadingX');

				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
						data: "Request=GetList&" + $('#' + Param1).serialize(),
						success: function(json) {

							var List = json.Template.process(json);
							$('#ListResult').html(List);

							if (json.Error == 0) {

								$.tablesorter.defaults.widgets = ['zebra'];

								$(".SektionTable").tablesorter({
									sortList: [[ json.SortCol , json.SortOrd]],
									headers: {
										1: { sorter:'List_Title'},
										2: { sorter:'List_Seeder'},
										3: { sorter:'List_Date'}
									}});
							}

							//> Ladestatus verbergen
							$('#FilerStateImg').attr('src', $('#FilerStateImg').attr('src').replace(/State_0-Hover.gif/g, 'State_0.gif'));
							$('[name=Filter_Str]').removeClass('BoxLoadingX');

						}
				});

				break;

			case 'UpdateSLVal':

				$('#SeederVal').text('...');
				$('#LeecherVal').text('...');

				$.ajax({type: "POST", url: HandlerURL, dataType: "json", data: "Request=GetSLValue&ID=" + Param1,
					success: function(json) {
						$('#SeederVal').text(json.Seeder);
						$('#LeecherVal').text(json.Leecher);
					}});

				break;


			case 'LoadDetails':
				if ($(Param1).attr("class") != 'HoverLa') return;
				$("#MainDet").html('<div class="Loading"><br><br><br><br>'+ LoadingAni +'</div>');
				$(".MainDetails > .Active").addClass("Option"); 
				$(".MainDetails > .Active").removeClass("Active");
				$(".MainDetails > .Active").removeClass("Active");
				$(Param1).addClass("Active");
				$(Param1).removeClass("Option"); 
				$(Param1).removeClass("HoverLa"); 
				$(Param1).unbind("mouseout"); DisplayInit('Details');

				$.ajax({type: "POST", url: HandlerURL, dataType: "html",
						data: "Request=GetDetailData&Param1="+ $(Param1).attr("id") +"&Param2=" + Param2,
						success: function(html) { $("#MainDet").html(html); }});

				break;


			case 'SetOption':

				$.ajax({type: "POST", url: HandlerURL, dataType: "text",
						data: "Request=SetOption&Param1=" + Param1 + "&Param2=" + Param2,
						success: function(Msg) {
							if (Msg != 'NAR') {
								$("#" + Param1 + "Btn").attr("src","./res/gr/Btn/Opt-" + Param1 + "-" + Msg + ".png");
								UpdateInteractivePage(Param1, Msg);
							}
						}});

				break;

			case 'LoadExtras':

				if ($(Param1).attr("class") != 'HoverLa') return;

				$(".MoreDetails > .Active").addClass("Option"); $(".MoreDetails > .Active").removeClass("Active");
				$(Param1).addClass("Active"); $(Param1).removeClass("Option"); $(Param1).removeClass("HoverLa"); $(Param1).unbind("mouseout"); DisplayInit('Details');

				$("#Extras > div").hide();

				if (Param3 == 'Extras_Screenshots') {
					if ($("#" + Param3).html() == '') {
						$("#" + Param3).html('<div class="Loading"><br><br><br><br>'+ LoadingAni +'</div>');
						$.ajax({type: "POST", url: HandlerURL, dataType: "html",
							data: "Request=GetDetailData&Param1=Btn_Screenshots&Param2=" + Param2,
							success: function(html) { $("#" + Param3).html(html); }
							//$("a.lightbox").lightBox(); aus oberer Zeile (ende) entfernt 10/02/09
						});
					}
				}

				$("#" + Param3).show();

				break;

			case 'Login':

				//> Warte-Animation einblenden
				$("#LoginField").addClass("BoxLoading");

				//< Vorgang durchführen
				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
						data: "Request=GetLogin&" + $("#LoginForm").serialize(),
						success: function(json) {

                            //> Ladestatus verbergen
							$("#LoginField").removeClass("BoxLoading");

                            if (json.ERROR == '0') {

								if (json.Menu1 != '') $("#UsrMenu1").html(json.Menu1);
								if (json.Menu2 != '') {
									$("#UsrMenu2").html(json.Menu2);
									$("#ComInterface").removeClass();
									$("#ComInterface").addClass("Commercial_C");
								}

							} else {

								var Msg = json.Template.process(json.Msg);
								$('#Content').html(Msg);

							}
						}});

				break;

			case 'Logout':
				$("#UsrMenu1").html('<br><br>' + LoadingAni + '<br><br>');
				$("#UsrMenu2").html("");
				$("#ComInterface").removeClass(); $("#ComInterface").addClass("Commercial_B");
				$.ajax({type: "POST", url: HandlerURL, dataType: "json",
						data: "Request=SetLogout",
						success: function(json) {
							$("#UsrMenu1").html(json.Menu1);
							$("#Content").html(json.ContentMsg);
						}});
				break;


			case 'GetSectionValues':

				//> Überprüfen ob überhaupt notwendig
				var CurrentSection = $('#CurrencyID').attr('value');

				if (CurrentSection != Param1) {
					$.ajax({type: "POST", url: HandlerURL, dataType: "json",
							data: "Request=SetEntry&Opt=GetSectionAttr&SectionID=" + Param1,
							success: function(Data) {

								//> Details anzeigen
								$('#SectionDetails').html(Data.Attrbutes);

								//> Letzte ID merken
								$('#CurrencyID').attr('value', Data.SectionID);
							}});
				}

				break;

		}
	}
