
var haveSlideImages = false;
var debug = true;

function setStyleProp(elem, propName, value, unit)
{
	// Default-Argument
	if (setStyleProp.arguments.length < 4) unit = "px";

	// Tests im Vorfeld
	if (debug)
	{
		if (elem == null)
		{
			alert("invalid element reference");
			return;
		}
		
		if (elem.style == null)
		{
			alert("element has no member with name 'style'");
			return;
		}		

		if (elem.style[propName] == null)
		{
			alert("invalid property name");
			return;
		}
		
		if (value == null)
		{
			alert("invalid value");
			return;
		}
	}

	// Wert zusammenbauen
	var propVal = new String(value);
	propVal = propVal.concat(unit);
	
	// Wert setzen
	elem.style[propName] = propVal;
}

function incStyleProp(elem, propName, value)
{
	var currVal = parseFloat(elem.style[propName]);
	setStyleProp(elem, propName, currVal + value);
}

function getComputedStyleProp(el, prop) 
{
	if (document.defaultView) 
	{
		return document.defaultView.getComputedStyle(el, null).getPropertyValue(prop);
	} 
	else 
	{
		if (prop == 'opacity') prop = 'filter';
		var val = el.currentStyle[prop.replace(/\-(\w)/g, function (a, b){ return b.toUpperCase(); })];
		
		if (prop == 'filter') 
			val = val.replace(/alpha\(opacity=([0-9]+)\)/, function (a, b) { return b / 100 });

		return val === '' ? 1 : val;
	} 
}

// --- Suche -------------------------------------------------------------------

function search()
{
	var searchFor = document.getElementById("searchTextBox").value;
	window.location = "http://www.google.de/#?hl=de&source=hp&q=" + searchFor + "+site%3Awww.musikundevents.de"
}


// --- SlideShow ---------------------------------------------------------------

var imgSlide;
var imgSlideBox;
var mouseDownTimeout;
var scrollSpeed = 10;
var scrollValMax = 24;
var scrollValMin;

function initSlideShow()
{
	imgSlideBox = document.getElementById("image_slide");
	
	if (!haveSlideImages || imgSlideBox == null) window.setTimeout("initSlideShow()", 500);
	else
	{
		setStyleProp(imgSlide, "marginTop", 30);

		var contentHeight = parseInt(getComputedStyleProp(imgSlide, "height"));
		var boxHeight = parseInt(getComputedStyleProp(imgSlideBox, "height"));
		
		// muss negativ sein, da margin-top negativ wird, um div nach oben zu schieben
		scrollValMin = boxHeight - contentHeight - 30;
	}	
}

function btnUp_MouseDown()
{
	var marginTop = parseInt(imgSlide.style.marginTop);
	if (marginTop > scrollValMax - scrollSpeed)
	{
		// oben angekommen
		setStyleProp(imgSlide, "marginTop", scrollValMax);
	}
	else
	{
		// weiter scrollen
		incStyleProp(imgSlide, "marginTop", scrollSpeed);
		mouseDownTimeout = window.setTimeout("btnUp_MouseDown()", 40);
	}
}

function btnDown_MouseDown()
{
	var marginTop = parseInt(imgSlide.style.marginTop);
	if (marginTop < scrollValMin + scrollSpeed)
	{
		// unten angekommen
		setStyleProp(imgSlide, "marginTop", scrollValMin);
	}
	else
	{
		// weiter scrollen
		incStyleProp(imgSlide, "marginTop", -scrollSpeed);
		mouseDownTimeout = window.setTimeout("btnDown_MouseDown()", 40);
	}
}

function btn_MouseUp()
{
	window.clearTimeout(mouseDownTimeout);
}


// --- Date --------------------------------------------------------------------

var dateText;

function initDateText()
{
	dateText = document.getElementById("date_text");
	
	if (dateText == null) window.setTimeout("initDateText()", 500);
	else
	{
		var weekdayNames = new Array(
			"Sonntag", "Montag", "Dienstag", "Mittwoch",
			"Donnerstag", "Freitag", "Samstag"
		);

		var monthNames = new Array(
			"Januar", "Februar", "M&auml;rz", "April", 
			"Mai", "Juni", "Juli", "August", 
			"September", "Oktober", "November", "Dezember"
		);

		var now = new Date();
		var day = weekdayNames[now.getDay()];
		var dayNo = now.getDate();
		var month = monthNames[now.getMonth()];
		var year = now.getYear() + 1900;

		// in Ermangelung einer Format-Funktion
		dateText.innerHTML = day + ", " + dayNo + ". " + month + " " + year;
	}
}


// --- Preload hidden Images ---------------------------------------------------

var imgs;

function preloadImages()
{
	imgSlide = document.getElementById("images");
	
	if (imgSlide == null) window.setTimeout("preloadImages()", 500);
	else
	{
		var imgCount = 0;
		for (var i = 0; i < imgSlide.childNodes.length; i++)
		{
			var nodeName = imgSlide.childNodes[i].nodeName.toLowerCase();
			if (nodeName == "div") imgCount++;
		}

		imgs = new Array();
		for (var i = 0; i < imgCount - 1; i++)
		{
			var name = (i < 10) ? "0"+i : i;
			imgs[i] = new Image(); imgs[i].src = "images/" + name + ".jpg";
		}
		
		imgs[imgCount] = new Image(); imgs[0].src = "gfx/lp_anim.gif";	
		haveSlideImages = true;
	}
}

preloadImages();
initDateText();
initSlideShow();

