// Kennzeichnet den Einsatz der jQuery-Bibliothek in den Dateien.
// Alle jQuery-Funktionen werden ausschließlich über "jsapi" aufgerufen.

var jsapi = $;
var config_directory = '/' + pathname;
var config_theme = config_directory + 'themes/stratosys/';

// Javascript-Funktionen für u.a. jQuery werden beim Aufruf der Seite ausgeführt.

jQuery(function($) {

  // Automatisch anhand der URL bestimmte Tabs auf den Detailseiten laden.

  var hash = window.location.hash;
  var hash = hash.substring(1);
  var tabs = ['general', 'reviews', 'items', 'downloads', 'recommend'];

  if (hash != '' && jQuery.inArray(hash, tabs) != -1) {
    toggle_tabs(hash);
  }

  // Beim Klick auf einen Link mit der CSS-Klasse "contentpapst_content_load" wird die Zielseite direkt per AJAX eingebunden.

  jsapi('.contentpapst_content_load').live('click', function(event) {

    var url = jsapi(this).attr('href');

    if (jsapi('#contentpapst_content')) {

      jsapi('#contentpapst_content').prepend('<div style=\"float: right\"><img src=\"' + config_directory + 'themes/backend/images/ajax_loading_bar.gif\" border=\"0\" alt=\"\" /></div>');

      if (url.search(/clean=yes/) == -1) {
        if (url.search(/index.php/) != -1) {
          url = url + '&clean=yes';
        } else {
          url = url + '?clean=yes';
        }
      }

      event.preventDefault();
      jsapi('#contentpapst_content').fadeTo('fast', 0.5);

      jsapi.get(url, function(data) {
        jsapi('html, body').animate({ scrollTop: 0 }, 0);
        jsapi('#contentpapst_content').fadeTo('fast', 1);
        jsapi('#contentpapst_content').html(data);
      });

		}

  });

  // Beim Klick auf einen Link mit der CSS-Klasse "contentpapst_content_refresh" wird die URL aufgerufen und die bisherige Seite neu geladen.

  jsapi('.contentpapst_content_refresh').live('click', function(event) {

    var url = jsapi(this).attr('href');
    var url_refresh = document.URL;

    if (jsapi('#contentpapst_content')) {

      jsapi('#contentpapst_content').prepend('<div style=\"float: right\"><img src=\"' + config_directory + 'themes/backend/images/ajax_loading_bar.gif\" border=\"0\" alt=\"\" /></div>');

      if (url.search(/clean=yes/) == -1) {
        if (url.search(/index.php/) != -1) {
          url = url + '&clean=yes';
        } else {
          url = url + '?clean=yes';
        }
      }

      if (url_refresh.search(/clean=yes/) == -1) {
        if (url_refresh.search(/index.php/) != -1) {
          url_refresh = url_refresh + '&clean=yes';
        } else {
          url_refresh = url_refresh + '?clean=yes';
        }
      }

      event.preventDefault();

      jsapi.get(url, function(data) {
        jsapi.get(url_refresh, function(data) {
          jsapi('#contentpapst_content').html(data);
        });
      });

		}

  });

  // Container werden ohne Wechsel der Seite neu geladen, wenn ein darin vorhandenes Formular abgeschickt wird.

  jsapi('.contentpapst_content_container form').live('submit', function(event) {

    var form_id = jsapi(this).parent('span').attr('id');
    var form_url = this.action;
    var form_url_refresh = jsapi(this).parent('span').attr('rel');

    if (form_id != '' && form_url != '' && form_url.search(/clean=yes/) != -1 && form_url_refresh != '') {

      event.preventDefault();
      form_url += '&' + jsapi(this).serialize();

      jsapi.get(form_url, function(data) {
        jsapi.get(form_url_refresh, function(data) {
          jsapi('#' + form_id).html(data);
        });
      });
    }

  });

});

// Wechselt zwischen den einzelnen Tabs der Detailansicht.

function toggle_tabs(name) {

  var tabs = ['general', 'reviews', 'items', 'downloads', 'recommend'];

	for (i = 0; i < tabs.length; i++) {
		jsapi('#layout_details_tabs_' + tabs[i]).hide();
		jsapi('#layout_details_tabs_' + tabs[i] + 'tab').removeClass('layout_details_tabs_selected');
	};

	jsapi('#layout_details_tabs_' + name).show();
	jsapi('#layout_details_tabs_' + name + 'tab').addClass('layout_details_tabs_selected');

}

// Überprüft, ob ein Formular vollständig ausgefüllt wurde.

function check_form_content(form, fields, errordiv, validateemail, texterror, textemailerror) {

	var show_error = 0;

	for (i = 0; i < fields.length; i++) {
		jsapi('#' + fields[i]).removeClass('inputerror');
		if (jsapi('#' + fields[i]).val() == '') {
			jsapi('#' + fields[i]).focus();
			jsapi('#' + fields[i]).addClass('inputerror');
			show_error = 1;
		}
	}

	jsapi('.layout_form_error').hide();

	if (validateemail && textemailerror) {

  	var filter = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;

    if (jsapi('#' + validateemail).val() != '' && filter.test(jsapi('#' + validateemail).val()) == false) {
  		jsapi('#' + errordiv).html(textemailerror);
  		jsapi('#' + errordiv).fadeIn();
  		jsapi('#' + validateemail).addClass('inputerror');
			jsapi('#' + validateemail).focus();
  		show_error = 2;
  	}

  }

	if (show_error == 0) {
		document.getElementById(form).submit();
	} else if (show_error == 2) {
	} else if (texterror) {
		jsapi('#' + errordiv).html(texterror).fadeIn();
	} else {
		jsapi('#' + errordiv).fadeIn();
	}

}
