var globalKartenGetStep = false;


function kartenAbheben(number){
	
	var position = $('#schub').position();
	var left = parseInt(position.left);
	
	
	var defaultwidth = kartenGetStep();
	var delta = -number * defaultwidth;
	
	var minimumLeft = ($('#schub div.karte').length - 1) * -defaultwidth;
	//alert(minimumLeft);
	if(left + delta > 0){
		left = minimumLeft;
	}	else
	if(left + delta < minimumLeft){
		left = 0;
	}	else	{
		left += delta
	}
	
	//MSIE obviously can't calculate
	if(left/kartenGetStep() != parseInt(left/kartenGetStep())){
		left = Math.round(left/kartenGetStep()) * kartenGetStep();
	}
	
	//if(navigator.userAgent.indexOf('MSIE 8') != -1){
	//	alert(left)
	//}
	/*if(navigator.userAgent.indexOf('MSIE') != -1){
		left -= 14;
	}*/
	//alert('min:'+minimumLeft +'\nleft:'+ left+'\ndelta:'+delta);
	//alert(left);
	$('#schub').css({left:left+'px'});
	var current = karteOben();
	//$('ul.middle li a').removeClass('active');
	//$($($('div.karte')[current]).find('ul.middle li a')[current]).addClass('active');
	
	if($($('div.karte')[current]).attr('id')){
		window.location.hash = '#'+$($('div.karte')[current]).attr('id').split('karte-')[1];
	}


}

function karteOben()	{
	var position = $('#schub').position();
	var left = parseInt(position.left);
	var current = Math.round(Math.sqrt(Math.pow(left/kartenGetStep(),2)));
	return current;
}

function karteZiehen(number){
	kartenAbheben(number-karteOben());
	//alert(number-current);
}

function toggleInfo()	{
	//visible or not
	if(toggleInfo.arguments.length == 2){
		var selection = $(toggleInfo.arguments[0]).parents('div.bild');
		var flag = toggleInfo.arguments[1];
	}	else	{
		if(	$('#schub div.info')[0].style.display == 'none'){
			var flag = true;
			var selection = $('#schub');
		}	else	{
			flag = false;
		}
	}
	
	if(flag){
		$(selection).find('div.info').each(function(index,div){
			div.style.display = 'block';
			//alert(  $(div).parents('div.karte').find('img').offset().top  );
			$(div).css({
				top:7+Math.floor($(div).parents('div.karte').find('img').offset().top - $(div).parents('div.karte').offset().top) + 'px'
				,left:7+Math.floor($(div).parents('div.karte').find('img').offset().left - $(div).parents('div.karte').offset().left) + 'px'
				,width:-14+$(div).parents('div.karte').find('img').width() - 12 + 'px'
				,height:-14+$(div).parents('div.karte').find('img').height() - 12 + 'px'
			})
		});
		$(selection).find('div.schatten').each(function(index,div){
			div.style.display = 'block';
			
			if(navigator.userAgent.indexOf('MSIE 6') != -1){
				$(div).css({
					top:Math.floor($(div).parents('div.karte').find('img').offset().top - $(div).parents('div.karte').offset().top) + 'px'
					,left:Math.floor($(div).parents('div.karte').find('img').offset().left - $(div).parents('div.karte').offset().left) + 'px'
					,width: ($(div).parents('div.karte').find('img').width() - 12 + 14) + 'px'
					,height: ($(div).parents('div.karte').find('img').height() - 5 + 7) + 'px'
				});
			}	else	{
				
				/*
				$(div).css({
					top:Math.floor($(div).parents('div.karte').find('img').offset().top - $(div).parents('div.karte').offset().top) + 'px'
					,left:Math.floor($(div).parents('div.karte').find('img').offset().left - $(div).parents('div.karte').offset().left) + 'px'
					,width:$(div).parents('div.karte').find('img').width() - 12 + 'px'
					,height:$(div).parents('div.karte').find('img').height() - 5 + 'px'
				});
				*/
				$(div).css({
					top:Math.floor($(div).parents('div.karte').find('img').offset().top - $(div).parents('div.karte').offset().top) + 'px'
					,left:Math.floor($(div).parents('div.karte').find('img').offset().left - $(div).parents('div.karte').offset().left) + 'px'
					,width:$(div).parents('div.karte').find('img').width() - 12 + 'px'
					,height:$(div).parents('div.karte').find('img').height() - 5 + 'px'
				});
				
			}
		});
	}	else	{
		//invisible
		$(selection).find('div.info').each(function(index,div){
			div.style.display = 'none';
		});
		$(selection).find('div.schatten').each(function(index,div){
			div.style.display = 'none';
		});
		
	}
	
}


$(window).load(function(){
	//$('#schub').hide();
	$('div.thumbnails img').fadeIn();
	$('a.image img').fadeIn();
});

function karteSuchen(id){
	//alert('here');
	//alert($('#'+id).html());
	//alert($('#'+id).prevAll().length);
	//alert($('div#schub').css('height'));
	//window.location.hash = '';
	//clear hash
	
	//alert(window.location.hash+'');
	$('div.karte').each(function(index,karte){
		if($(this).attr('id').indexOf(id) != -1){
			karteZiehen(index);
		}
	});
	//window.location = window.location.protocol+'//'+window.location.host+''+window.location.pathname;
	
	//window.location = window.location;
	
}

function insertPageNumbers(){
	
	var numberOfPages = $('div.karte').length;
	
	var availableWidth = parseInt($('div.karte').first().width())-15;
	$('div.karte').each(function(index,karte){
		
		$(this).find('div.abheben ul.left').after('<ul class="abheben middle"><li><a href="javascript:kartenAbheben(-1);">'+(index+1)+'/</a></li><li><a href="javascript:karteZiehen('+(numberOfPages-1)+')">'+numberOfPages+'</a></li></ul>');
		var width = $(this).find('div.abheben ul.middle').width();
		//var correction = 16;
		var correction = 8;
		var paddingHorizontal = Math.floor((availableWidth - width)/2);
		$(this).find('div.abheben ul.left').css({width:(paddingHorizontal+correction)+'px'});
		$(this).find('div.abheben ul.right').css({width:(paddingHorizontal-correction)+'px'});
		
	});
	
}

function alignMenus(selector){
	
	//msie has trouble with hr
	$(selector).find('hr').css({width:'10px'});
	
	var availableHeight = $('div.karte').first().height();
	var availableWidth = $('div.karte').first().width();
	if(!$(selector).parent().hasClass('thumbnails')){
		$(selector).each(function(index,list){
			var maxHeight = 400;
			if($(this).height() > maxHeight){
				var numChild = $(this).children().length - 1;
				while(numChild > 0 && $(this).height() > maxHeight){
					$($(this).children()[numChild]).css({display:'none'});
					numChild--;
					if(numChild >= 0){
						$($(this).children()[numChild]).find('a').first().text('…');
					}
				}
			}
			var actualHeight = $(this).height();
			//alert($(this).prevUntil('div').length);
			//return;
			$(this).prevUntil('div').each(function(a,b){
				actualHeight += $(this).height() + parseInt($(this).css('margin-top')) + parseInt($(this).css('margin-bottom'));
				//availableHeight -= 100;
			});
			var actualWidth = $(this).width();
			var marginTop = Math.floor((parseInt(availableHeight) - parseInt(actualHeight))/2)
			$(this).css({marginTop:marginTop+'px'});
		
			//reduce width until height changes to minimize width to actual width
			while($(this).height() == actualHeight){
				$(this).css({width:actualWidth+'px'});
				actualWidth--;
			}
			var extraSpace = 16; //prevent breaking lines in firefox
			var paddingLeft = Math.floor((parseInt(availableWidth) - parseInt(actualWidth) + extraSpace)/2);
			$(this).css({width:(actualWidth + extraSpace)+'px',paddingLeft:paddingLeft+'px'});
			$(selector).find('li hr').css({width:actualWidth+'px',marginLeft:'0'});
	
		});
		
	}
	$(selector).fadeIn();
	
}

function kartenGetStep(){
	if(!globalKartenGetStep){
		var karten = $('#schub div.karte');
		var position = karten.last().position();
		var width = Math.floor(position.left/(karten.length-1));
		
		globalKartenGetStep = width;
	}
	//if(navigator.userAgent.indexOf('MSIE 8') != -1){
	//	alert(globalKartenGetStep);
	//}
	return globalKartenGetStep;
}

function fixMsie6(){
	/*#enter_home{
		filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='buttons/enter_home_grau.png', sizingMethod='scale');
	}
	*/
	if(navigator.userAgent.indexOf('MSIE 6') != -1){
		$('div.home').each(function(index,div){
			var src = $(div).css('background-image').replace('url("','').replace('")','');
			$(div).css({background:'none'})
			$(div).unbind('click');
			$('#screen').append("<img id=\"msie6-background\" height=\"666\" src=\"/controller/themes/schreine.de/default/transparent.png\" style=\"position:absolute;left:0;top:0;z-index:2;filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='image');\" />");
			$('#msie6-background').offset($(div).offset());
			$('#msie6-background').click(function(){
				$('#msie6-background').attr('style',"position:absolute;left:0;top:0;z-index:0;filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src.replace('zu','offen')+"', sizingMethod='image');")
				$('#msie6-background').offset($(div).offset());
				$('div.home ul').css({display:'block'});
				//$('div#schachtel.home').css({background:"url('/controller/themes/schreine.de/default/schachtel_offen.png')",cursor:'auto'});
				$('div.home').unbind();
				$('div#schachtel').css({position:'absolute',zIndex:'2',left:$(div).position().left+'px',top:$(div).position().top+'px'});
				
			})
		});
		$('div.standard').each(function(index,div){
			var src = $(div).css('background-image').replace('url("','').replace('")','');
			$(div).css({background:'none'})
			$('#screen').append("<img id=\"msie6-background\" height=\"666\" src=\"/controller/themes/schreine.de/default/transparent.png\" style=\"position:absolute;left:0;top:0;z-index:0;filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='image');\" />");
			$('#msie6-background').offset($(div).offset());
			$('div#schachtel').css({position:'absolute',zIndex:'2',left:$(div).position().left+'px',top:$(div).position().top+'px'});
		});
		$('div.home ul li a').each(function(index,anchor){
			var src = $(anchor).css('background-image').replace('url("','').replace('")','');
			var title = $(anchor).find('span').html();
			$(anchor).css({paddingTop:'0',background:'none'})
			$(anchor).bind('mouseover',function(){
				$(this).find('img').attr('style',"filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src.replace('_grau.png','.png')+"', sizingMethod='image');")
				$(this).find('div').show();
			});
			$(anchor).bind('mouseout',function(){
				$(this).find('img').attr('style',"filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='image');")
				$(this).find('div').hide();
			})
			$(anchor).html("<img height=\"140\" src=\"/controller/themes/schreine.de/default/transparent.png\" style=\"filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='image');\" /><br /><div style=\"display:none;\">"+title+"</div>" );
		});
		$('div#buttons ul li a').each(function(index,anchor){
			var src = $(anchor).css('background-image').replace('url("','').replace('")','');
			var title = $(anchor).find('span').html();
			$(anchor).css({paddingTop:'0',background:'none'})
			$(anchor).bind('mouseover',function(){
				$(this).find('img').attr('style',"filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src.replace('_grau.png','.png')+"', sizingMethod='image');")
				$(this).find('div').show();
			});
			$(anchor).bind('mouseout',function(){
				$(this).find('img').attr('style',"filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='image');")
				$(this).find('div').hide();
			})
			$(anchor).html("<img height=\"70\" src=\"/controller/themes/schreine.de/default/transparent.png\" style=\"filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='image');\" /><br /><div style=\"display:none;color:#fff;\">"+title+"</div>" );
		});
		$('ul.abheben li a').each(function(index,anchor){
			var src = $(anchor).css('background-image').replace('url("','').replace('")','');
			var title = $(anchor).find('span').html();
			$(anchor).css({paddingTop:'0',background:'none'})
			$(anchor).bind('mouseover',function(){
				$(this).find('img').attr('style',"filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src.replace('.png','_rot.png')+"', sizingMethod='image');")
				$(this).find('div').show();
			});
			$(anchor).bind('mouseout',function(){
				$(this).find('img').attr('style',"filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='image');")
				$(this).find('div').hide();
			})
			$(anchor).html("<img height=\"28\" src=\"/controller/themes/schreine.de/default/transparent.png\" style=\"filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src+"', sizingMethod='image');\" /><span style=\"display:none;color:#fff;\">"+title+"</span>" );
		});
	}
	
	
	
	
}

$(document).ready(function(){
	
	//$('#schub').css({left:kartenGetStep()+'px'});
	//$('#schub').hide();
	$('#schub ul.karten').hide();
	$('#schub ul.kartenstapel').hide();
	$('#schub').css({display:'block'});
	$('div.thumbnails img').hide();
	$('a.image img').hide();
	alignMenus('#schub ul.karten');
	alignMenus('#schub ul.kartenstapel');
	
	//alert($('#schub').css('width')+' '+$('#schub div.karte').length * 540);
	//extend schub so nothing floats around below the first object
	$('#schub').css({width:$('#schub div.karte').length * 540+'px'});
	globalKartenGetStep = kartenGetStep();
	
	
	insertPageNumbers();
	
	
	
	//schachtel schliessen
	$('div#schachtel.home').css({
		background:"url('/controller/themes/schreine.de/default/schachteldeckel.png')"
		,cursor:'pointer'
	});
	$('div.home ul').css({display:'none'});
	
	//hide image info
	$('#schub div.bild div.info').each(function(index,div){
		$(div).css({display:'none'});
	});
	$('#schub div.schatten').each(function(index,div){
		$(div).css({display:'none'});
	});
	$('div.bild a.image').attr('href','');
	$('div.bild a.image').bind('mouseover',function(){
		//kartenAbheben(+1);
		toggleInfo(this,true);
	});
	$('div.bild div.schatten').bind('mouseout',function(){
		//kartenAbheben(+1);
		toggleInfo(this,false);
	});
	/*$('div.bild div.info').bind('mouseout',function(){
		//kartenAbheben(+1);
		toggleInfo();
	});*/
	/*$('div.bild div.info').click(function(){
		kartenAbheben(+1);
	});*/
	//alert(window.location.hash);
	if(window.location.hash.length > 0){
		karteSuchen(window.location.hash.split('#')[1])
	}
	//alert(''+window.location);
	//get rid of ids, to prevent jumping around
	$('#schub div.karte').each(function(index,div){
		//$(div).attr('id','');
		$(div).attr('id','karte-'+$(div).attr('id'));
	});

	//beauty
	$('a').each(function(index,anchor){
		$(anchor).attr('onfocus','this.blur();')
	});
	
	//schachtel öffnen
	$('div.home').click(function(){
		$('div.home ul').css({display:'block'});
		$('div#schachtel.home').css({background:"url('/controller/themes/schreine.de/default/schachtel_offen.png')",cursor:'auto'});
		$('div.home').unbind();
	})

	$('div.karte.bild div.schatten').css({
		opacity:'0.85'
	});

	//preload
	var preloads = new Array();
	$('div#buttons a').each(function(index,anchor){
		var length = preloads.length;
		var background = $(anchor).css('background-image').replace('url("','').replace('")','');
		if(background.indexOf('_grau') != -1){
			preloads[length] = new Image; preloads[length].src = background.replace('_grau','');
			//alert(preloads[length].src)
		}
		
	});
	$('div.home div.karte ul a').each(function(index,anchor){
		var length = preloads.length;
		var background = $(anchor).css('background-image').replace('url("','').replace('")','');
		if(background.indexOf('_grau') != -1){
			preloads[length] = new Image; preloads[length].src = background.replace('_grau','');
			//alert(preloads[length].src)
		}
		
	});

	fixMsie6();
	
	//$('#schub').show();

	
	

});
