jQuery.fn.suckerfish = function() {
	if ($.browser.msie && $.browser.version*1 < 7) {
		this.find('li').hover(function() {
			$(this).addClass('over');
			},
		function() {
			$(this).removeClass('over');
		});
	}
}

///SWFObject wird erst hier geladen
if(typeof flashvars != 'undefined' && typeof params != 'undefined') {
	//console.log('Load swfobject',flashvars,params);
	swfobject.embedSWF(
		"/fileadmin/templates/swf/main.swf",
		"altContent", "682", "450", "9.0.0",
		"/fileadmin/templates/swf/expressInstall.swf",
		flashvars, params
	);
}

$(document).ready(function() {
	$('ul#navMain').suckerfish();
	$('div#stageArea > div#slider').stageSlider();
	$('div#stageArea > div#fanbank').fanbankSlider();
	$('div.smallStage').fanbankSlider();
	$('input#email').focus(function(event) {
		$(this).val('');
	});

	//Step 1 der Fanbank
	$('.image-thumb a').click(function(e){
		e.preventDefault();
		var idToActive = this.hash.replace(/#/,'');

		$('input#default').val(idToActive + '.');
		$('div.stage-image').hide();
		$('div#use-avatar-' + idToActive).show();

		//Uploader einblenden oder nicht?
		if($(this).hasClass('noCrop'))
			$('div#upload-container').hide('fast');
		else
			$('div#upload-container').show('fast');
	});

	$('#tx-coba-pi4-register').validate();
	if(typeof showPreview != 'undefined') {
		$('img#cropimage').Jcrop({
			aspectRatio: 1,
			onChange: showPreview,
			onSelect: showPreview,
			setSelect: [ 100, 100, 200, 200 ]
		});
	}
	$("#stoerer_fans img").ifixpng();
	$('a.prev img, a.next img').ifixpng();
	$('img#layer-preview').ifixpng();

});



jQuery.fn.stageSlider = function() {
	var imgWidth = this.find('img').width();
	var imgCount = this.find('img').size();
	if(imgCount > 0)
		this.easySlider({
			auto: (imgCount > 1 ? true : false),
			controlsShow: false,
			pause: 5000
		});
}

jQuery.fn.fanbankSlider = function() {
	var obj = this.find('ul');
	var dist = this.find('ul li img').width();
	var orgPos = obj.css('margin-left');
	var container = (typeof initialContainer != 'undefined' ? initialContainer : []);
	var maxIndex = container.length-1;
	var showImages = this.find('ul li img').length;
	var start = 0;
	var moreImagesRemote = true;
	var excludeString = (typeof initialExclude != 'undefined' ? initialExclude : []);


	this.find('a.prev').mouseover(function(e){
		e.preventDefault();
		var objPos = obj.css('margin-left');
		var target = parseInt(objPos) + parseInt(dist);
		obj.animate ({
			marginLeft:target+'px'
		},300,'swing',function(){
			obj.find('li:last').remove();
			obj.css('margin-left',orgPos);
			var prependImage = getNextImg();
			obj.prepend(prependImage);
		});
	});

	this.find('a.next').mouseover(function(e){
		e.preventDefault();
		var objPos = obj.css('margin-left');
		var target = parseInt(objPos) - parseInt(dist);
		obj.animate ({
			marginLeft:target+'px'
		},300,'swing',function(){
			obj.find('li:first').remove();
			obj.css('margin-left',orgPos);
			appendImage = getPrevImg();
			obj.append(appendImage);
		});
	});

	var getPrevImg = function() {
		if(typeof initialContainer != 'undefined')
			getFreshImagesFromServer();
		var img = getFromStack(1);

		//Here goes AJAX call and control mechanisms
		return '<li><img src="' + img + '" /></li>';
	}

	var getNextImg = function() {
		if(typeof initialContainer != 'undefined')
			getFreshImagesFromServer();
		var img = getFromStack(-1);

		//Here goes AJAX call and control mechanisms
		return '<li><img src="' + img + '" /></li>';
	}

	var getFreshImagesFromServer = function () {
		if(moreImagesRemote) {
			$.getJSON('/json.do',{exclude: excludeString.join(',')},function(data) {
				if(data.images.length > 0) {
					$.merge(container,data.images);
					excludeString = data.exclude;
					maxIndex = container.length-1;
				} else {
					//console.log('no more images on server');
					moreImagesRemote = false;
				}
			});
		}
	}

	var getFromStack = function (direction) {
		if(direction == +1) {
			start = ((start+1) > maxIndex ? 0 : start+1);
			var end = (start + showImages);
			if(end > maxIndex) {
				var real = end - (maxIndex + 1);
			} else { var real = end }

			//console.log('einen vor ',start,',',end,'real: ',real);
			return container[ real ];
		} else {
			start = (start == 0 ? maxIndex : start-1);

			//console.log('einen zurueck ',start,',',end,'real: ',real);
			return container[ start ];
		}
	}


}

/*
 * Translated default messages for the jQuery validation plugin.
 * Language: DE
 * Skipped date/dateISO/number.
 */
jQuery.extend(jQuery.validator.messages, {
	required: "Dieses Feld ist ein Pflichtfeld.",
	maxlength: jQuery.validator.format("Geben Sie bitte maximal {0} Zeichen ein."),
	minlength: jQuery.validator.format("Geben Sie bitte mindestens {0} Zeichen ein."),
	rangelength: jQuery.validator.format("Geben Sie bitte mindestens {0} und maximal {1} Zeichen ein."),
	email: "Geben Sie bitte eine gültige E-Mail Adresse ein.",
	url: "Geben Sie bitte eine gültige URL ein.",
	dateDE: "Bitte geben Sie ein gültiges Datum ein.",
	numberDE: "Geben Sie bitte eine Nummer ein.",
	digits: "Geben Sie bitte nur Ziffern ein.",
	equalTo: "Bitte denselben Wert wiederholen.",
	range: jQuery.validator.format("Geben Sie bitten einen Wert zwischen {0} und {1}."),
	max: jQuery.validator.format("Geben Sie bitte einen Wert kleiner oder gleich {0} ein."),
	min: jQuery.validator.format("Geben Sie bitte einen Wert größer oder gleich {0} ein."),
	creditcard: "Geben Sie bitte ein gültige Kreditkarten-Nummer ein."
});
