// JavaScript Core
// Copyright by johannes.wedenigg@linea7.com © 2007

//*************************************
// lineacore Namespace 
// alle hier definierten funktionen sind über lineacore.funktionsname ansprechbar
//*************************************


function L7Namespace() {
	
	/*	Globale Eigenschaften in lineacore       */
	
	
	
	/* 	Test Funktion zum Testen der korrekten Namespace Adressierung
		Diese Funktion öffnet einfach eine Messagebox und gibt den Test "nachricht" aus    */
		
	this.gibLaut = function(nachricht) {
		window.alert(nachricht);
	}
	
	/* Funktion zum einfachen austauschen von Bildern über "src" */
	
	this.changeImgSrc = function(element,newsrc) {
		element = $(element);
		element.src = newsrc;
	}
	
	/* fading von Elementen erreichen */
	this.toggleBlindElement = function(element) {
		blind_target = $(element);
		
		if (blind_target.style.display) {
			new Effect.BlindDown(blind_target, {duration:0.25});
		} else {
			new Effect.BlindUp(blind_target, {duration:0.25});
		}
	}
	
	
	
	/* Menü Funktionen */
	
	this.closeSpecificSubmenu = function(submenu_ID) {
		var submenu = $(submenu_ID);
		
		
		if (submenu.style.display != "none") {
			new Effect.BlindUp(submenu, {duration:0.25, queue: {position: 'end', scope: 'menuscope', limit: 2} } );
		}
	}
	
	this.openSpecificSubmenu = function(submenu_ID) {
		var submenu = $(submenu_ID);
		
		
		if (submenu.style.display) {
			new Effect.BlindDown(submenu, {duration:0.25, queue: {position: 'end', scope: 'menuscope', limit: 2} } );
		}
	}
	
	
	this.closeAllOpenedSubmenus = function() {
		var submenu = $('submenu-strategischeGestaltung');
		
		/*lineacore.closeSpecificSubmenu(submenu);*/
	
		if (submenu.style.display != "none") {
			new Effect.BlindUp(submenu, {duration:0.25, queue: {position: 'end', scope: 'menuscope', limit: 2} } );
		}
	
		
		submenu = $('submenu-linea7');
	
		/*lineacore.closeSpecificSubmenu(submenu);*/
		
		if (submenu.style.display != "none") {
			new Effect.BlindUp(submenu, {duration:0.25, queue: {position: 'end', scope: 'menuscope', limit: 2} } );
		}
		
		
		submenu = $('submenu-Technik');
	
		/*lineacore.closeSpecificSubmenu(submenu);*/
		
		if (submenu.style.display != "none") {
			new Effect.BlindUp(submenu, {duration:0.25, queue: {position: 'end', scope: 'menuscope', limit: 2} } );
		}
	}
	
	
	
	
	
	/* Ein-Ausblenden Kunden/Referenzen */
	
	this.switchToClients = function() {
			var clientsBox = $("box-kunden");
			var refBox = $("box-referenzen");
			
			if (clientsBox.style.display) {
				new Effect.BlindDown(clientsBox, {duration:0.75, queue: {position: 'end', scope: 'clientscope'} } );
			}
			
			if (refBox.style.display != "none") {
				new Effect.BlindUp(refBox, {duration:0.75, queue: {position: 'end', scope: 'refscope'} } );
			}
			
	}
	
	
	this.switchToRefs = function() {
			var clientsBox = $("box-kunden");
			var refBox = $("box-referenzen");
			
			if (refBox.style.display) {
				new Effect.BlindDown(refBox, {duration:0.75, queue: {position: 'end', scope: 'refscope'} } );
			}
			
			if (clientsBox.style.display != "none") {
				new Effect.BlindUp(clientsBox, {duration:0.75, queue: {position: 'end', scope: 'clientscope'} } );
			}
			
	}
	
	
	/* Ergebnis wechseln zwischen Freie Objekte und alle Objekte */
	
	
	this.showAllObjects = function() {
		button_alle = $("bt-alle-objekte");
		button_freie = $("bt-freie-objekte");
		
		results_alle = $("result-box-alle");
		results_freie = $("result-box-freie");
		
		if (results_alle.style.display = "none") {
			button_alle.className = "image-replacement alle-objekte-aktiv";
			button_freie.className = "image-replacement freie-objekte-inaktiv";
			results_alle.style.display = "block";
			results_freie.style.display = "none";
		}
	}
	
	this.showFreeObjects = function() {
		button_alle = $("bt-alle-objekte");
		button_freie = $("bt-freie-objekte");
		
		results_alle = $("result-box-alle");
		results_freie = $("result-box-freie");
		
		if (results_freie.style.display = "none") {
			button_alle.className = "image-replacement alle-objekte-inaktiv";
			button_freie.className = "image-replacement freie-objekte-aktiv";
			results_alle.style.display = "none";
			results_freie.style.display = "block";
		}
	}
	
	
	
	
	
	
	
	
	
	
	
	
	
	this.changeBoxStatus = function(element) {
		op_target = $(element);
		
		if(op_target) {
			if (op_target.style.display != "none") {
				new Effect.BlindUp(op_target, {duration:0.25});
			}
		}
	}
	
	
	this.blindUp = function(element) {
		blind_target = $(element);
		
		if (blind_target.style.display != "none") {
			new Effect.BlindUp(blind_target, {duration:0.25});
		}
	}
	
	this.blindDown = function(element) {
		blind_target = $(element);
		
		if (blind_target.style.display != "block") {
			new Effect.BlindDown(blind_target, {duration:0.25});
		}
	}
	
	
	
	
	
	this.showTab = function(tab) {
		var panel = $(tab);
		panel.style.display = "block";
	}

	this.hideTab = function(tab) {
		var panel = $(tab);
		panel.style.display = "none";
	}
	
	
	
	
	
	
	
	
	
	// direktes Veränderen von InnerHTML
	
	this.updateInnerHTML = function(elementID,neuerInhalt) {
		$(elementID).innerHTML = neuerInhalt;
	}
	
	// direktes Erweitern eines Attributs, neuer Inhalt wird angehängt
	
	this.appendToAttribute = function(elementID,attributName,neuerInhalt) {
		$(elementID).attributName = $(elementID).attributName + neuerInhalt;
	}
	
	// direktes Einblenden eines Elements (div)
	this.showElement = function(elementID) {
		$(elementID).style.display = "block";
	}
	
	//direktes Ausblenden eines Elements (div)
	this.hideElement = function(elementID) {
		$(elementID).style.display = "none";
	}
	
			
}  // Ende des Namespace Objekts ----> Diese Klammer NICHT ENTFERNEN!!!!


//*************************************
// Ende des lineacore Namespace
// Initialisieren des Namespace Objekts

var lineacore = new L7Namespace;

// Jetzt können alle Methoden und Eigenschaften von algCoreNamespace über lineacore.blblbla angesprochen werden

// Es folgen weitere Funktionen die noch in den lineacore Namespace überführt werden müssen
//*************************************







//*************************************
// Skripte zum Verändern der Layer-Größen, Einblenden/Ausblenden der Station etc.
//*************************************



function resizeContainer(div_id, div_height)
{
 var div = document.getElementById(div_id);

 if(div.offsetHeight < div_height) {
 
	  var h = div.offsetHeight + 15;
	  
	  if (h < div_height) {	  
		  div.style.height = h+'px';
		  window.setTimeout("resizeContainer('" + div_id +"'," + div_height + ");", 5);
		} else {
	  	  div.style.height = div_height+'px';
	  }
	  
 } else if(div.offsetHeight > div_height) {
 
	  var h = div.offsetHeight - 15;
	  
	  if (h > div_height) {	  
		  div.style.height = h+'px';
		  window.setTimeout("resizeContainer('" + div_id +"'," + div_height + ");", 5);
		} else {
	  	  div.style.height = div_height+'px';
		}
 }
}






//*************************************
// Skripte für Popup Overlay
//*************************************

function hide_popup() {
	
	var popup_box = document.getElementById("popup_box");
	var popup_background = document.getElementById("popup_background");
	
	popup_box.style.display = "none";
	popup_background.style.display = "none";
	
	popup_box.style.top = "0px";
	popup_box.style.left = "0px";
	
	popup_background.style.top = "0px";
	popup_background.style.left = "0px";
	
	popup_box.style.width = "0px";
	popup_box.style.height = "0px";
		
	popup_background.style.width = "0px";
	popup_background.style.height = "0px";
	
	window.onscroll = "";
	window.onresize = "";
}



function show_popup(url,width,height) {
	
	var popup_box = document.getElementById("popup_box");
	var popup_background = document.getElementById("popup_background");
	
	popup_box.style.width = width+"px";
	popup_box.style.height = height+"px";
	
	var screen_size = new getPageSize();
	
	popup_background.style.width = screen_size.width+"px";
	popup_background.style.height = screen_size.height+"px";
	
	popup_background.style.opacity = ".2";
	popup_background.style.filter = 'alpha(opacity=' + '20' + ')';
	
	popup_box.style.display = "block";
	popup_background.style.display = "block";
	
	maintPos();
	
	docClickLoader.loadInto(url, 'popup_content');
	
	window.onscroll = maintPos;
	window.onresize = maintPos;
}

posToCenter = function(elem) {
	var scrollPos = new getScrollPos();
	var pageSize = new getPageSize();
	var emSize = new getElementSize(elem);
	var x = Math.round(pageSize.width/2) - (emSize.width /2) + scrollPos.scrollX;
	var y = Math.round(pageSize.height/2) - (emSize.height /2) + scrollPos.scrollY;	
	elem.style.left = x+'px';
	elem.style.top = y+'px';	
}

getScrollPos = function() {
	var docElem = document.documentElement;
	this.scrollX = self.pageXOffset || (docElem&&docElem.scrollLeft) || document.body.scrollLeft;
	this.scrollY = self.pageYOffset || (docElem&&docElem.scrollTop) || document.body.scrollTop;
}

getPageSize = function() {
	var docElem = document.documentElement
	this.width = self.innerWidth || (docElem&&docElem.clientWidth) || document.body.clientWidth;
	this.height = self.innerHeight || (docElem&&docElem.clientHeight) || document.body.clientHeight;
}

getElementSize = function(elem) {
	this.width = elem.offsetWidth ||  elem.style.pixelWidth;
	this.height = elem.offsetHeight || elem.style.pixelHeight;
}	

maintPos = function() {
	var popup_box = document.getElementById("popup_box");
	posToCenter(popup_box);
	
	var popup_background = document.getElementById('popup_background');
	var pagesize = new getPageSize();
	var scrollPos = new getScrollPos();
	var ua = navigator.userAgent;

	if(ua.indexOf("MSIE ") != -1) {popup_background.style.width = pagesize.width+'px';} 
	else {popup_background.style.width = pagesize.width+'px';}

	if(ua.indexOf("Opera/9") != -1) {popup_background.style.height = document.body.scrollHeight+'px';}
	else {popup_background.style.height = pagesize.height+scrollPos.scrollY+'px';}

	
}

			




