/* $Id: slider.min.js 6310 2009-09-29 10:58:05Z bhillebrand $ */
"use strict";
var itemsPerPage,numberPages,page=1,slideModelConfigureOverviewTable_status=0,slideModelOverviewTable_status=0,slideTeaserSlider_status=0,ulDatabase,ulDatabaseLength,ulTarget,ulTargetLength=0,widthTeaserElement;

function getPage(a)
{
	var c,b=page;
		if(a>0)
		{
			for(c=0;c<a;c+=1){
				if(b===numberPages){b=1;}
				else{b+=1;}
			}
		}
		else
		{
			if(a<0)
			{
				for(c=0;c<a;c+=1)
				{
					if(b===1){b=numberPages;
				}
				else{b-=1;}}
			}
			else {b=page;}
		}
	return b;
}

function generateSliderPageIdentificator()
{
	var c,b,a=$("div#containerTeaserStage div.sliderPageIdenticator");
	$(a).empty();
	for(b=1;b<=numberPages;b+=1)
	{
		if(b<page)
		{
			c="slideTeaser(-1,"+(page-b)+")";
		}
		else
		{
			if(b>page)
			{
				c="slideTeaser(+1,"+(b-page)+")";
			}
		}
		if(page===b)
		{
			$(a).append("<span class='pageActive'>&nbsp;</span>");
		}
		else
		{
			$(a).append("<span class='pagePassive' onclick='"+c+"'>&nbsp;</span>");
		}
	}
}

function generateTeaserItems(f,c,a)
{
	var d,g,e,b;
	for(d=0;d<itemsPerPage;d+=1)
	{
		b=d+(itemsPerPage*(f-1));
		e=document.createElement("li");
			if(c==="last")
			{
				e.className="last";
			}
		e.style.width=widthTeaserElement+"px";
		if(ulDatabase.getElementsByTagName("li")[b].className!=="spacer")
		{
			g=ulDatabase.getElementsByTagName("li")[b].getElementsByTagName(a)[0].cloneNode(true);
		}
		else
		{
			g=ulDatabase.getElementsByTagName("li")[b].getElementsByTagName(a)[0].cloneNode(true);
		}
		e.appendChild(g);ulTarget.appendChild(e);
	}
}

function initTeaserSlider()
{
	var d,c,b,e,a;
	itemsPerPage=3;
	page=1;
	ulTarget=document.getElementById("displayTeaserSlider");
	ulDatabase=document.getElementById("teaserDatabase");
	ulDatabaseLength=ulDatabase.getElementsByTagName("li").length;
	numberPages=Math.ceil(ulDatabaseLength/itemsPerPage);
	widthTeaserElement=230;
	$("#teaserScreen").append("<table class='progressIndicator'><tr><td valign='middle' align='center'><img src='/assets/images/global/ajax-loader.gif'/></td></tr></table>");

	if(ulDatabaseLength-ulDatabaseLength%itemsPerPage!==0)
	{
		d=itemsPerPage-(ulDatabaseLength%itemsPerPage);
		for(c=0;c<d;c+=1)
		{
			a=document.createElement("li");
			a.className="spacer";
			b=document.createElement("div");
			b.className="spacer";
			b.style.visibility="hidden";
			b.style.width=widthTeaserElement+"px";
			e=document.createTextNode("-");
			b.appendChild(e);
			a.appendChild(b);
			ulDatabase.appendChild(a);
		}
		ulDatabaseLength=ulDatabase.getElementsByTagName("li").length;
	}
	$("#teaserScreen > table.progressIndicator").remove();
	if(numberPages>2)
	{
		generateTeaserItems(numberPages,"last","div");
		generateTeaserItems(page,"","div");
		generateTeaserItems(getPage(+1),"","div");
		$(ulTarget).css("left","0px");
	}
	else
	{
		if(numberPages===2)
		{
			generateTeaserItems(numberPages,"last","div");
			generateTeaserItems(page,"","div");
			generateTeaserItems(numberPages,"","div");
			$(ulTarget).css("left","100px");
		}
		else
		{
			if(numberPages===1)
			{
				generateTeaserItems(page,"","div");
				$(ulTarget).css("left","100px");
			}
		}
	}
	if(numberPages>1)
	{
		$(ulTarget).animate({left:"0px"},1100);
		$(ulTarget).animate({left:"0px"},340,"easing",function()
			{
				$("ul#displayTeaserSlider li.last").css("visibility","visible");
				generateSliderPageIdentificator();
				$("#containerTeaserStage").prepend("<div class='buttonLeft' onclick='slideTeaser(-1,1);'></div>");
				$("#containerTeaserStage").append("<div class='buttonRight' onclick='slideTeaser(+1,1);'></div>");
			});
	}
}

function doTeaserSlide(b,c,a)
{
	slideTeaserSlider_status=1;
	$(b).css("overflow","hidden");
	$(b).animate({width:a},340,"easing",function()
		{
			var d,e;
			if(c===-1)
			{
				e=ulTarget.getElementsByTagName("li").length;
				d=ulTarget.getElementsByTagName("li")[(e-1)];
				ulTarget.removeChild(d);e-=1;
			}
			else
			{
				if(c===+1)
				{
					e=ulTarget.getElementsByTagName("li").length;
					d=ulTarget.getElementsByTagName("li")[0];
					ulTarget.removeChild(d);
				}
				else
				{
					alert("Unsupported Error.");
				}
			}
			slideTeaserSlider_status+=1;
			
			if(slideTeaserSlider_status>itemsPerPage)
			{
				slideTeaserSlider_status=0;
				generateSliderPageIdentificator();
			}
			
			slideTeaserSlider_status=0;
			generateSliderPageIdentificator();
		});
}

function slideTeaser(h,b)
{
	var d,c,a=[],e,f,k,g;if(h===+1&&slideTeaserSlider_status===0)
	{
		if(slideTeaserSlider_status===0)
		{
			slideTeaserSlider_status+=1;
			for(d=0;d<(itemsPerPage*b);d+=1)
			{
				if(d===0||d%itemsPerPage===0)
				{
					c=0;if(page===numberPages){page=1;}
					else{page+=1;}
					if(page===numberPages){g=1;}
					else{g=page+1;}
				}
			a[d]=ulTarget.getElementsByTagName("li")[d];
			k=document.createElement("li");
			k.style.width=widthTeaserElement+"px";
			f=ulDatabase.getElementsByTagName("li")[(c+(itemsPerPage*(g-1)))].getElementsByTagName("div")[0].cloneNode(true);
			k.appendChild(f);ulTarget.appendChild(k);
			c+=1;}e="0px;";
		}
	}
	else
	{
		if(h===-1&&slideTeaserSlider_status===0)
		{
			slideTeaserSlider_status+=1;
			for(d=((itemsPerPage*b));d>0;d-=1)
			{
				if(d===((itemsPerPage*b))||d%itemsPerPage===0)
				{
					c=2;
					if(page===1){page=numberPages;}
					else{page-=1;}
					
					if(page===1){g=numberPages;}
					else{g=page-1;}
				}
				k=document.createElement("li");
				f=ulDatabase.getElementsByTagName("li")[(c+(itemsPerPage*(g-1)))].getElementsByTagName("div")[0].cloneNode(true);
				k.style.width="0px";
				k.appendChild(f);
				$(ulTarget).prepend(k);
				a[(d-1)]=k;
				c-=1;
			}
			e="240px;";
		}
	}
	doTeaserSlide(a,h,e);
}

function changeImage(d)
{
	var b=$("ul.database.active li.active:first"),a,c=new Image();
	if(d===+1)
	{
		a=($(b).next().length>0)?$(b).next():$("ul.database.active li:first");
	}
	else
	{
		if(d===-1)
		{
			a=($(b).prev().length>0)?$(b).prev():$("ul.database.active li:last");
		}
		else{a=b;}
	}
	$(a).siblings().removeClass("active");
	$(a).addClass("active");
	$("div#sliderScreen").append("<div class='mLoad'></div>");
	$(c).load(function()
		{
			$("div#sliderScreen").find("img").remove();
			$("div#sliderScreen").append(c);
			$(this).fadeIn("slow",function()
				{
					$(this).css({filter:null});
				});
		}).error(function()
			{
				$("div.mLoad").remove();
			}).attr("src",$(a).text());
	$("div.mLoad").remove();
}

function initModelOverviewSlider()
{
	$("ul#databaseExterior li:first").attr("class","active");
	$("ul#databaseInterior li:first").attr("class","active");
	$("div#mediaStageControlButtons div.control3").addClass("active");
	changeImage(0);
}

function changeDb(a)
{
	$("div#mediaStageControlButtons div").removeClass("active");
	if(a==="interior")
	{
		$("ul#databaseExterior").removeClass("active");
		$("ul#databaseInterior").addClass("active");
		$("div#mediaStageControlButtons div.control4").addClass("active");
	}
	else
	{
		$("ul#databaseInterior").removeClass("active");
		$("ul#databaseExterior").addClass("active");
		$("div#mediaStageControlButtons div.control3").addClass("active");
	}
	changeImage(0);
}

function slideModelOverviewTable(g)
{
	var b=document.getElementById("tableScreen").getElementsByTagName("table")[0],f=3,e=210,h=parseInt(b.getElementsByTagName("tr")[0].getElementsByTagName("td").length,10),c,i=h-f,d=0-(i*e),a=0;
	if(b.style.marginLeft)
	{
		c=parseInt(b.style.marginLeft,10);
	}
	else{c=0;}
	
	if(h>f&&slideModelOverviewTable_status===0)
	{
		if(g===1&&c<a)
		{
			slideModelOverviewTable_status=1;
			$(b).animate({marginLeft:c+e+"px"},300,"",function()
				{
					slideModelOverviewTable_status=0;});
					if((c+e)===0)
					{
						$(".sliderButtonLeft").addClass("inactive");
					}
					else
					{
						$(".sliderButtonLeft").removeClass("inactive");
					}
					
					if((c+e)>a)
					{
						$(".sliderButtonRight").addClass("inactive");
					}
					else
					{
						$(".sliderButtonRight").removeClass("inactive");
					}
		}
		else
		{
			if(g===0&&c>d)
			{
				slideModelOverviewTable_status=1;
				$(b).animate({marginLeft:c-e+"px"},300,"",function()
					{
						slideModelOverviewTable_status=0;
					});
				if((c-e)===0)
				{
					$(".sliderButtonLeft").addClass("inactive");
				}
				else
				{
					$(".sliderButtonLeft").removeClass("inactive");
				}
				
				if((c-e)<=d)
				{
					$(".sliderButtonRight").addClass("inactive");
				}
				else
				{
					$(".sliderButtonRight").removeClass("inactive");
				}
			}
		}
	}
}

function slideModelConfigureOverviewTable(g)
{
	var b=document.getElementById("tableScreen").getElementsByTagName("table")[0],f=4,e=210,h=parseInt(b.getElementsByTagName("tr")[0].getElementsByTagName("td").length,10),c,i=h-f,d=0-(i*e),a=0;
	if(b.style.marginLeft)
	{
		c=parseInt(b.style.marginLeft,10);
	}
	else{c=0;}
	
	if(h>f&&slideModelConfigureOverviewTable_status===0)
	{
		if(g===1&&c<a)
		{
			slideModelConfigureOverviewTable_status=1;
			$(b).animate({marginLeft:c+e+"px"},300,"",function()
				{
					slideModelConfigureOverviewTable_status=0;
				});
				
			if((c+e)===0){$(".sliderButtonLeft").addClass("inactive");}
			else{$(".sliderButtonLeft").removeClass("inactive");}
			
			if((c+e)>a)
			{
				$(".sliderButtonRight").addClass("inactive");
			}
			else
			{
				$(".sliderButtonRight").removeClass("inactive");
			}
		}
		else
		{
			if(g===0&&c>d)
			{
				slideModelConfigureOverviewTable_status=1;
				$(b).animate({marginLeft:c-e+"px"},300,"",function()
					{
						slideModelConfigureOverviewTable_status=0;
					});
				if((c-e)===0)
				{
					$(".sliderButtonLeft").addClass("inactive");
				}
				else
				{
					$(".sliderButtonLeft").removeClass("inactive");
				}
				
				if((c-e)<=d){$(".sliderButtonRight").addClass("inactive");}
				else{$(".sliderButtonRight").removeClass("inactive");}
			}
		}
	}
}

function writeModelPrice()
{
	var a=ulDatabase.getElementsByTagName("li")[(page-1)].getElementsByTagName("p")[0].innerHTML;
	a=a+"<span class='price'>";a=a+ulDatabase.getElementsByTagName("li")[(page-1)].getElementsByTagName("span")[0].innerHTML;
	a=a+"&nbsp;";a=a+ulDatabase.getElementsByTagName("li")[(page-1)].getElementsByTagName("span")[1].innerHTML;
	a=a+"</span>";$("#modelnameViewer").html(a);
}

function updateModelThumbnailSlider()
{
	var d,a,c,e,b;
	for(d=0;d<ulDatabaseLength;d+=1)
	{
		a=ulDatabase.getElementsByTagName("li")[d].getElementsByTagName("img")[0].src;
		c=a.split(".png");
		e=document.getElementById("thumbnails").getElementsByTagName("li")[d];
		b=c[0]+"-thumbnail-active.jpg";
		e.style.backgroundImage="url("+b+")";
	}
	$("#thumbnails").children("li").children("img").css("visibility","visible");
	e=document.getElementById("thumbnails").getElementsByTagName("li")[(page-1)].getElementsByTagName("img")[0];
	$(e).css("visibility","hidden");
}

function initModelsSlider()
{
	var d,a,b,c;
	itemsPerPage=1;
	page=1;
	ulTarget=document.getElementById("displayModelsSlider");
	ulDatabase=document.getElementById("modelsSliderDatabase");
	ulDatabaseLength=ulDatabase.getElementsByTagName("li").length;
	numberPages=Math.ceil(ulDatabaseLength/itemsPerPage);
	widthTeaserElement=200;
	$(".containerViewAllModelsStage").append("<table class='progressIndicator'><tr><td valign='middle' align='center'><img src='/assets/images/global/ajax-loader.gif'/></td></tr></table>");
	
	if(numberPages>2)
	{
		generateTeaserItems((numberPages-1),"last","a");
		generateTeaserItems(numberPages,"last","a");
		generateTeaserItems(page,"","a");
		generateTeaserItems(getPage(+1),"","a");
		generateTeaserItems(getPage(+2),"","a");
		$(ulTarget).css("left","0px");
	}
	else
	{
		if(numberPages===2)
		{
			generateTeaserItems(numberPages,"last","a");
			generateTeaserItems(page,"","a");
			generateTeaserItems(numberPages,"","a");
			$(ulTarget).css("left","0px");
		}
		else
		{
			if(numberPages===1)
			{
				generateTeaserItems(page,"","a");
				$(ulTarget).css("left","0px");
			}
		}
	}
	if(numberPages>1)
	{
		$(ulTarget).animate({left:"0px"},1100);
		$(ulTarget).animate({left:"-655px"},340,"easing",function()
			{
				$("ul#displayModelsSlider li.last").css("visibility","visible");
				writeModelPrice();
				
			});
		$("#boxThumbnails").append("<ul id='thumbnails'></ul>");
		
		for(d=0;d<ulDatabaseLength;d+=1)
		{
			a=ulDatabase.getElementsByTagName("li")[d].getElementsByTagName("img")[0].src;
			b=ulDatabase.getElementsByTagName("li")[d].getElementsByTagName("p")[0].innerHTML;
			c=a.split(".png");
			$("ul#thumbnails").append("<li onclick=''><img src='"+c[0]+"-thumbnail.jpg'/><span>"+b+"</span></li>");
		}
		$(document).ready(function()
			{
				var f=0,e=$("ul#thumbnails").children("li").children("img");
				
				$.each(e,function(){var g=$(this).width();f=f+g;$(this).parent("li").css("width",g+"px");$(this).parent("li").children("span").css("width",g+"px");});
				
				$("ul#thumbnails").css("width",f+"px");
				$("ul#thumbnails").ready(function(){updateModelThumbnailSlider();});
			});
	}
}

function doModelSlide(b,c,a)
{
	slideTeaserSlider_status=1;
	$(b).css("overflow","hidden");
	$(b).animate({width:a},340,"easing",function()
		{
			var d,e;
			if(c===-1)
			{
				e=ulTarget.getElementsByTagName("li").length;
				d=ulTarget.getElementsByTagName("li")[(e-1)];
				ulTarget.removeChild(d);
				e-=1;
			}
			else
			{
				if(c===+1)
				{
					e=ulTarget.getElementsByTagName("li").length;d=ulTarget.getElementsByTagName("li")[0];
					ulTarget.removeChild(d);
				}
				else{alert("Unsupported Error.");}
			}
			slideTeaserSlider_status+=1;
			
			if(slideTeaserSlider_status>itemsPerPage)
			{
				slideTeaserSlider_status=0;
				updateModelThumbnailSlider();
			}
			slideTeaserSlider_status=0;
			updateModelThumbnailSlider();
		});
}

function slideModels(g,d)
{
	var b,f,h,e,a,c=[];
	if(g===+1&&slideTeaserSlider_status===0)
	{
		if(slideTeaserSlider_status===0)
		{
			slideTeaserSlider_status+=1;
			if(page===numberPages){page=1;}
			else{page+=1;}
			
			if(page===numberPages){a=1;}
			else{a=page+1;}
			
			writeModelPrice();
			f=page+1;
			if(f===numberPages){f=0;}
			if(f>numberPages){f=1;}
			
			c[0]=ulTarget.getElementsByTagName("li")[0];
			e=document.createElement("li");
			e.style.width=widthTeaserElement+"px";
			h=ulDatabase.getElementsByTagName("li")[f].getElementsByTagName("a")[0].cloneNode(true);
			e.appendChild(h);
			ulTarget.appendChild(e);
			b="0px;";
		}
	}
	else
	{
		if(g===-1&&slideTeaserSlider_status===0)
		{
			slideTeaserSlider_status+=1;
			if(page===1)
			{
				page=numberPages;
			}
			else{page-=1;}
			
			if(page===1){a=numberPages;}
			else{a=page-1;}
			
			writeModelPrice();
			f=page-3;
			if(f===-1){f=(numberPages-1);}
			if(f===-2){f=(numberPages-2);}
			
			e=document.createElement("li");
			h=ulDatabase.getElementsByTagName("li")[f].getElementsByTagName("a")[0].cloneNode(true);
			e.style.width="0px";
			e.appendChild(h);
			$(ulTarget).prepend(e);
			c[0]=e;b="570px;";
		}
		else{}
	}
	doModelSlide(c,g,b);
}
