var g_roller;
var g_roller_count = 0;
var g_showDetail_activePicture = 1;
var g_lastWindowHeight = -1;
var g_scrollContainerHeight = 470;

function changePicture(id, name, switchername, switcherid) {
    pic = document.getElementById(id);
    if (pic != null) {
        pic.src = name;
    }
    if (switchername) {
        // alle Switcher deselektieren
	for (var i = 0; i <= 20; i++) {
            var ref = document.getElementById(switchername+i);
            if (ref != null)
		ref.className="";
            else
                break;
	}
	// selektierten Switcher selektieren
	var ref = document.getElementById(switchername+switcherid);
	if (ref != null)
            ref.className="sel";
    }
}


/* begin Scrollbuttons */
var g_upNorm = new Image();
g_upNorm.src = "../resource/up.gif";
var g_upSel = new Image();
g_upSel.src = "../resource/up_sel.gif";
var g_downNorm = new Image();
g_downNorm.src = "../resource/down.gif";
var g_downSel = new Image();
g_downSel.src = "../resource/down_sel.gif";
var g_maxContentHeight = 0;
var g_scroller;
var g_scrollPos = 0;

function upBtn(active){
    if (active) {
        document.images["scrollUp"].src = g_upSel.src;
        scrollContent(true);
    } else {
        document.images["scrollUp"].src = g_upNorm.src;
        stopScrollContent();
    }
}

function downBtn(active){
    if (active) {
        document.images["scrollDown"].src = g_downSel.src;
        scrollContent(false);
     } else {
        document.images["scrollDown"].src = g_downNorm.src;
        stopScrollContent();
     }
}

function scrollContent(up) {
	g_scroller = window.setInterval("doScrollContent("+up+")", 25);
}
function stopScrollContent() {
	window.clearInterval(g_scroller);
}

function doScrollContent(up) {
    var f = document.getElementById("content");
    var step = 6;
    var max = f.offsetHeight - g_scrollContainerHeight + step;
    if (!up) {
        step = step*-1;
    }
    g_scrollPos = g_scrollPos + step;
    if ((g_scrollPos > 0) || (g_scrollPos < -max)) {
        stopScrollContent();
        g_scrollPos = g_scrollPos - step;
    } else {
        f.style.top = g_scrollPos + "px";
    }
}
/* end Scrollbuttons */

function open_window(name, url, left, top, width, height, toolbar, menubar, statusbar, scrollbar, resizable)
{
  var toolbar_str = toolbar ? 'yes' : 'no';
  var menubar_str = menubar ? 'yes' : 'no';
  var statusbar_str = statusbar ? 'yes' : 'no';
  var scrollbar_str = scrollbar ? 'yes' : 'no';
  var resizable_str = resizable ? 'yes' : 'no';
  var popup = window.open(url, name, 'left='+left+',top='+top+',width='+width+',height='+height+',toolbar='+toolbar_str+',menubar='+menubar_str+',status='+statusbar_str+',scrollbars='+scrollbar_str+',resizable='+resizable_str);
  popup.focus();
}

function open_popup(url) {
	open_window('popup', url, 20, 20, 620, 510, 0, 0, 0, 1, 0);
}

function showContent(contentNo) {
	// alle Contents verstecken
	for (var i = 1; i <= 10; i++) {
		var j = 1;
		while (true) {
			var ref = document.getElementById("cont"+i+"_"+j);
			if (ref != null)
				ref.className="cHidden";
			else break;
			j++;
		}
	}
	// selektierten Content anzeigen
	var j = 1;
	while (true) {
		var ref = document.getElementById("cont"+contentNo+"_"+j);
		if (ref != null)
			ref.className="";
		else break;
		j++;
	}
}

function switchContentTemporarly(showContentNo, hideContentNo, duration) {
	switchContent(showContentNo, hideContentNo);
	window.setTimeout(switchContent, duration, hideContentNo, showContentNo);
}

function switchContent(showContentNo, hideContentNo) {
	// selektierten Content verstecken
	var j = 1;
	while (true) {
		var ref = document.getElementById("cont"+hideContentNo+"_"+j);
		if (ref != null)
			ref.className="cHidden";
		else break;
		j++;
	}
	// selektierten Content anzeigen
	j = 1;
	while (true) {
		var ref = document.getElementById("cont"+showContentNo+"_"+j);
		if (ref != null)
			ref.className="";
		else break;
		j++;
	}
}

function rollHor(direction, maxOffset) {
	g_roller = window.setInterval("doRollHor("+direction+", "+maxOffset+")", 50);
}
function stopRoll() {
	window.clearInterval(g_roller);
	g_roller_count = 0;	// Dynamisierung der Scrollweite zuruecksetzen
}
function doRollHor(direction, maxOffset) {
	var scrollDistance;
	var areaToScroll;
	var offset;
	var scrollWidth = 4;	// default Scrollweite
	g_roller_count += 1;	// Anzahl der Durchlaeufe
	// Dynamisierung der Scrollweite
	if ((g_roller_count > 10) &&  (g_roller_count <= 20))
		scrollWidth = 8;
	if ((g_roller_count > 20) &&  (g_roller_count <= 30))
		scrollWidth = 16;
	if ((g_roller_count > 30))
		scrollWidth = 16;
	scrollDistance = direction * scrollWidth;
	areaToScroll = document.getElementById("scrollArea");
	offset = parseInt(areaToScroll.style.left) + scrollDistance;
	if (offset > 0) offset = 0;
	if (offset < maxOffset) offset = maxOffset;
	areaToScroll.style.left = offset + "px";
}

function showDetail(id) {
	var detailPicture;
	var oldPreviewPicture;
	var actPreviewPicture;
	if (g_showDetail_activePicture != id) {
		oldPreviewPicture = document.getElementById("pic"+g_showDetail_activePicture);
		oldPreviewPicture.src = "../resource/kollektion/f"+g_showDetail_activePicture+".jpg";
		actPreviewPicture = document.getElementById("pic"+id);
		actPreviewPicture.src = "../resource/kollektion/f"+id+"s.jpg";
		detailPicture = document.getElementById("detail");
		detailPicture.src = "../resource/kollektion/d"+id+".jpg";
		g_showDetail_activePicture = id;
		actPreviewPicture.blur(); // entfernt den gestrichelten Rahmen im IE. Muss am Ende der Funktion stehen, weil der Safari nach Aufruf von blur() die Abarbeitung der Funktion abbricht.
	}
}

function showDetailpane(id) {
    var pane;
    var pic;
    pane = document.getElementById("detailpane");
    pane.className = "";
    pic = document.getElementById("detailwindowpicture");
    pic.src = "resource/managed/"+id+"_detail.jpg";
}

function closeDetailpane() {
    var pane;
    pane = document.getElementById("detailpane");
    pane.className = "cHidden";
}

function checkHeightForCenteredDisplay(areaHeight, checkInterval){
	doCheckHeightForCenteredDisplay(areaHeight);
	if (checkInterval > 0) {	// laufend ueberpruefen
		window.setInterval("doCheckHeightForCenteredDisplay("+areaHeight+")", checkInterval);
	}
}

function doCheckHeightForCenteredDisplay(areaHeight){
	var actHeight = innerWindowHeight();
	if (g_lastWindowHeight != actHeight) {
		var area = document.getElementById("verticalCentered");
		if (actHeight < areaHeight) {	// Hoehe nicht ausreichend
			area.className = "verticalCenteredFallback";
		} else {			// Hoehe ist ausreichend
			area.className = "verticalCenteredDefault";
		}
		g_lastWindowHeight = actHeight;
	}
}


// von QuirksMode.com
// Ermitteln der inneren Hoehe und Breite des Fensters
function innerWindowWidth() {
	var x;
	if (self.innerHeight) {		// all except Explorer
		x = self.innerWidth;
		return x;
	}
	if (document.documentElement && document.documentElement.clientHeight) {	// Explorer 6 Strict Mode
		x = document.documentElement.clientWidth;
		return x;
	}
	if (document.body) {		// other Explorers
		x = document.body.clientWidth;
		return x;
	}
	return x;
}

function innerWindowHeight() {
	var y = 0;
	if (self.innerHeight) {		// all except Explorer
		y = self.innerHeight;
		return y;
	} 
	if (document.documentElement && document.documentElement.clientHeight) {	// Explorer 6 Strict Mode
		y = document.documentElement.clientHeight;
		return y;
	} 
	if (document.body) {		// other Explorers
		y = document.body.clientHeight;
		return y;
	}
	return y;
}

