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


/* 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_scroller_count = 0;
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_count = 0;
	g_scroller = window.setInterval("doScrollContent("+up+")", 25);
}
function stopScrollContent() {
	window.clearInterval(g_scroller);
}

function doScrollContent(up) {
    var f = document.getElementById("content");
    var step = 4; //6
    g_scroller_count += 1;	// Anzahl der Durchlaeufe
	// Dynamisierung der Scrollweite
	if ((g_scroller_count > 20))
		step = 8;
    var max = f.offsetHeight - g_scrollContainerHeight + step;
    if (!up) {
        step = step*-1;
    }
    g_scrollPos = g_scrollPos + step;
    if ((g_scrollPos > 0) || (g_scrollPos < -max)) {
        g_scrollPos = g_scrollPos - step;
        stopScrollContent();
    } 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;
    var fenster;
    var fensterContent;
    pane = document.getElementById("detailpane");
    pane.className = "";
    var offset = 20 + scrollPosY();
    fenster = document.getElementById("detailwindow");
    fenster.style.top = offset +"px";
    var fensterHeight = innerWindowHeight() - 20 - 20;
    fenster.style.height = fensterHeight + "px";
    fensterContent = document.getElementById("detailwindowcontent");
    fensterContent.style.height = (fensterHeight - 25) + "px";
    pic = document.getElementById("detailwindowpicture");
    pic.src = "resource/managed/sn"+id+".pdf";    
}

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

function showInfobox(show) {
    var pane;
    pane = document.getElementById("infobox");
    if (show)
        pane.className="";
    else
        pane.className="cHidden";
}

function showNamedInfoContainer(name, show) {
    var pane;
    pane = document.getElementById(name);
    if (pane != null) {
        if (show)
            pane.className="infoContainer";
        else
            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;
	}
}



// Ermitteln der inneren Breite des Fensters, von QuirksMode.com
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;
}

// Ermitteln der inneren Hoehe des Fensters, von QuirksMode.com
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;
}


// Ermitteln der vertikalen Scrollposition
function scrollPosY() {
    var pos = 0;
    if (window.pageYOffset) {
        pos = window.pageYOffset;
        return pos;
    }
    if (document.documentElement && document.documentElement.scrollTop) {	// Explorer 6 Strict Mode
		pos = document.documentElement.scrollTop;
		return pos;
	}
    if (document.body) {		// other Explorers
		pos = document.body.scrollTop;
		return pos;
	}
    return pos;
}

// Ermitteln der horizontalen Scrollposition
function scrollPosX() {
    var pos = 0;
    if (window.pageXOffset) {
        pos = window.pageXOffset;
        return pos;
    }
    if (document.documentElement && document.documentElement.scrollLeft) {	// Explorer Strict Mode
		pos = document.documentElement.scrollLeft;
		return pos;
	}
    if (document.body) {		// other Explorers
		pos = document.body.scrollLeft;
		return pos;
	}
    return pos;
}
