/* 
	goin.basket.js version 004 /WH
	Aktualisiert die Mengenangabe des Warenkorbes im Hauptmenü.
*/
(function($) {
	// public variables and methods
	$.extend({
		// produkt warenkorb
		basket: {
			// plugin defaults
			defaults: {
				Url: $.goin.defaults.ajaxSubmitToCartUrl,
				SiteStat: ''
			},
			
			// initialisieren
			init: function() {
				$.basket.update('');
			},
			
			// warenkorb eintrag hinzufügen
			add: function(amount) {
				$.basket.update(amount);
//				if ($.basket.defaults.SiteStat != '') {
//					$.get($.basket.defaults.SiteStat);
//				}
			},
			
			// warenkorb eintrag löschen
			remove: function(amount) {
				$.basket.update(amount);
			},
			
			// menge des warenkorb menüeintrags aktualisieren
			update: function(amount) {
				$.ajaxSettings.global = false;
				$.get($.basket.defaults.Url + amount, function(data) {
					$.basket.updateText(data);
				});
				$.ajaxSettings.global = true;
			},
			
			// text im menü aktualisieren
			updateText: function(data) {
				var $item = $('#main-cart-button');
				if ($item.length==0) return; 
				// wenn der tag noch nicht existiert 
				if (!$item.find('SPAN.red').length > 0) 
					// wird er neu angelegt
					$item.find('A').append(' / <span class="red"></span>');
				// tag mit dem geladenen ergebniss füllen
				sFill=$(data).text();
				$item.find('SPAN.red').html(sFill);
				if (sFill > 0) {
					$item.addClass('filled');
				}else{
					$item.removeClass('filled');
				}
				Cufon.refresh('#language A');
			}
			
		}
	});
	// verhalten initialisieren
	$(function() { 
		//$.basket.init();
	});
})(jQuery);




/* 
	goin.fastlogin.js version 003
	Bestimmt das Verhalten des Login Formulares der Seite.
*/
(function($) {
	$.fn.fastLogout = function() {
		$(this).click(function() {
			$.get(this.href, function(data) {
				$("SPAN.wellcome-message").replaceWith(data);
				$("DIV#login").fastLogin();
				Cufon.refresh("DIV#login LABEL");
				Cufon.refresh("DIV#login A");
			});
			return false;
		});
	};
	$.fn.fastLogin = function(options) {
		// plugin konfigurations parammeter
		var options = $.extend({}, $.fn.fastLogin.defaults, options);
		var $target = $(this); // referenz auf den login form container
		var $inputs = $("INPUT:not(.form-submit),A", $target); // refernez auf die eingabefelder
		var numb = $("INPUT:eq(0)", $target).val(); // standard wert des nummern feldes
		var pass = $("INPUT:eq(1)", $target).val(); // standard wert des passwort feldes
		var password = ""; // passwort eingabe das benutzers
		var clientid = ""; // kundennummer eingabe des benutzers
		// ajax loading indicator
		var $loader = $('<div id="login-loader" style="background:#FFF;display:block;float:right;position:relative;left:0;padding:5px 0 0 10px;vertical-align:bottom;width:16px;z-index:10;"><img src="' + $.goin.defaults.ajaxLoadingImage + '" alt="Loading …" /></div>');
		
		
		$("INPUT.form-submit", $target).hide();
		$("INPUT:eq(2)", $target).val(""); // no javascript standard wert löschen
		$target.addClass("js"); // markierung für die javascript fähige eingabemaske
		$inputs.hide().eq(0).show(); // alle eingabefelder bis auf das erste verstecken
		
		// verhalten für das nummern eingabefeld
		$("INPUT:eq(0)", $target)
		.focus(function(){
			$inputs.fadeIn("fast").eq(2).hide(); // sichtbarkeit der felder setzen
			// wenn das passwort gesetzt wurde das fake feld verstecken
			if (password != "") $inputs.show().eq(1).hide();
			if ($(this).val() == numb) $(this).val(""); // standard wert löschen
		})
		.blur(function() {
			clientid = $(this).val();
			if ($(this).val() == "") { // nur wenn kein text eingegeben wurde
				$inputs.hide().eq(0).show(); // sichtbarkeit der felder setzen
				$(this).val(numb); // das feld auf standard wert zurücksetzen
			}
		});
		
		// verhalten für das fake passwort eingabefeld
		$("INPUT:eq(1)", $target)
		.blur(function() { $(this).hide(); })
		.focus(function(){
			$inputs.show().eq(1).hide(); // das fake eingabefeld verstecken
			$inputs.eq(2).focus(); // das passwort eingabefeld fokusieren
		});
		
		// verhalten für das passwort eingabefeld
		$("INPUT:eq(2)", $target).blur(function() {
			password = $(this).val(); // die passwort eingabe speichern
			// wenn kein passwort gesetzt wurde das feld verstecken
			if (password == "") $inputs.show().eq(2).hide();
			if (password == "" && clientid == "") $inputs.hide().eq(0).show();
		});
		
		$("A.login-submit").click(function() {
			//$(this).parent().submit();
			/* */
			var url = this.href;
			url += '&user=' + $("INPUT:eq(0)", $target).val();
			var s=$("INPUT:eq(2)", $target).val();
			url += '&pass=' + $.md5(encodeURIComponent(s));
			$(this).append($loader);
			$.ajaxSettings.global = false;
			$.get(url, function(data) {
				$loader.remove();
				var $result = $('<span />').html(data);
				if ($result.find('.error-message').length) {
					if ($('BODY').find('.error-message').length) $('BODY').find('.error-message').replaceWith("");
					$target.after(data);
				} else {
					$('.error-message').remove();
					$target.replaceWith(data);
					Cufon.refresh('DIV.footer SPAN.wellcome-message SPAN.logout');
					$('SPAN.logout A','DIV.footer').fastLogout();
					/*
					$('SPAN.logout A','DIV.footer').click(function() {
						$.get(this.href, function(data) {
							//if (data == "") return;
							$target.replaceWith(data);
							$("DIV#login").fastLogin();
							Cufon.refresh("DIV#login LABEL");
							Cufon.refresh("DIV#login A");
						});
						return false;
					});*/
				}
			});
			$.ajaxSettings.global = true;
			return false;
		});
		
		$('#login-number, #login-password','DIV#login').keydown(function(event) {
			if (event.keyCode == 13) { 
				if ($('BODY').find('.error-message').length) $('BODY').find('.error-message').replaceWith("");
				$("A.login-submit").click();
				return false;
			}
		});
		
	};
	// plugin defaults
	$.fn.fastLogin.defaults = {
		color:'red'
	};
	$(function() { 
		$("DIV#login").fastLogin();
		$('SPAN.logout A','DIV.footer').fastLogout();
	});
})(jQuery);




/* 
	goin.fastsearch.js version 002
	Bestimmt das Verhalten des Suchbox Formulares der Seite.
*/
(function($) {
	$.extend({
		fastSearch: {
			init: function(data) {
				var isSearchpage = $('BODY').hasClass('page-search');
				var $search = $("DIV.search");
				
				$('LABEL',$search).after('<a class="reset" href="#"></a>');
				
				$('.reset',$search)
					.css('display','none')
					.click(function() {
						$('INPUT.form-text',$search).val("").focus().change();
						return false;
					});
				$('INPUT.form-text',$search).typeWatch({
					callback:function(){ $('INPUT.form-text',$search).change(); },
					wait:0,
					highlight:false,
					captureLength:0
				}).change(function() {
					var cond = ($(this).val() != "");
					$search.find('.reset').css('display',cond ? 'inline' : 'none');
				}).blur(function() {
					if (isSearchpage) return;
					if ($(this).val() == "") {
						$search.removeClass('focus').find('LABEL').css('color','#999');
						Cufon.refresh('DIV.search LABEL');
						$search.find('.reset').fadeOut('fast');
					}
				}).focus(function() {
					if (isSearchpage) return;
					$search.addClass('focus').find('LABEL').css('color','#FFF');
					Cufon.refresh('DIV.search LABEL');
				})
				.change()
				// autocomplete funktion
				.autocomplete($.goin.defaults.ajaxKeywordServiceUrl+"&L="+escape( $('INPUT#edit-lang',$search).val() ), {
					width: 206,
					minChars: 1,
					/*max: 14,*/
					autoFill: false,
					selectFirst: false,
					multiple: true,
					mustMatch: false, 
					matchCase: false,
					matchContains: true,
					matchSubset: true,
					maxItemsToShow: -1,
					multipleSeparator: ' ',
					cacheLength: 1,
					scroll: true,
					scrollHeight: 300,
					extraParams: {
						L: function () { return escape( $('INPUT#edit-lang',$search).val() ); },
						search: function () { return escape( $('INPUT.form-text',$search).val() ); }
					}
				}).result(function(event, data, formatted) {
					var resultURL = $('DIV.search FORM').attr('action') + '?search=';
					if (data)
						location.href = resultURL + data + "&L=" + escape( $('INPUT#edit-lang',$search).val() );
				});
				
				if (isSearchpage) $search.find('.reset').fadeIn('fast');
			}
		}
	});
	$(function() { 
		$.fastSearch.init();
	});
})(jQuery);

function getUrlVars(url)
{
  var vars = [], hash;
  var hashes = url.slice(url.indexOf('?') + 1).split('&');
  for(var i = 0; i < hashes.length; i++)
  {
      hash = hashes[i].split('=');
      vars.push(hash[0]);
      vars[hash[0]] = hash[1];
  }
  return vars;
}
