/*--------------------------------------------------------------------------
*	edaView, version 1.0
*	Explore the history of synagogues in Germany
*	Authors ordered alphabetical:
*	
*	(c) 2008 Daniel von der Helm
*  	(c) 2008 Dennis Kleine
*
*	Tue Jul 01 23:35:22 CET 2008
*	http://edaview.sourceforge.org/
*
*  	edaView is freely distributable under the terms of an GNU General Public License.
*  	For details, see the edaView Project Home at: http://www.sourceforge.org/projects/edaview/
*
*	The above copyright notice and this permission notice shall be
*	included in all copies or substantial portions of the Web-Application.
*
*	edaView was developed at the university of applied sience Kaiserslautern (Zweibrücken) as a student project
*	during the course Mediaproduction - and conception. This application is distributed without any warranty. 
*	See the GNU General Public License for more details.
*--------------------------------------------------------------------------*/
var timerlen = 5;
var slideAniLen = 700;

var timerID = new Array();
var startTime = new Array();
var obj = new Array();
var endHeight = new Array();
var endWidth = new Array();
var moving = new Array();
var dir = new Array();

function createTabs(sid, lat, lng)
{
	html = 	'<table cellspacing="0" cellpadding="0" border="0"><tr>'
				+'<td><a href="javascript:closeInterface(\'leftinterface\');"><img src="styles/images/ico_slidein.gif" width="34" height="22" border="0" align="middle" alt="minimieren" title="minimieren" /></a></td>'
				+'<td><a href="javascript:history.go(-1);"><img src="styles/images/btn_back_2.gif" width="34" height="22" border="0" align="middle" alt="zurück" title="Schritt zurück" /></a></td>'
				+'<td><a href="patterns/object_details.php?sid='+sid+'" target="lififrame"><img src="styles/images/btn_home.gif" width="34" height="22" border="0" align="middle" alt="zurück" title="zur Synagoge" /></a></td>'
				+'<td><a href="patterns/object_multimedia.php?sid='+sid+'" target="lififrame"><img src="styles/images/btn_multimedia.gif" width="34" height="22" border="0" align="middle" alt="zurück" title="Multimedia Daten zur Synagoge" /></a></td>'
				+'<td><a href="patterns/object_events.php?sid='+sid+'" target="lififrame"><img src="styles/images/btn_ereignis.gif" width="34" height="22" border="0" align="middle" alt="zurück" title="Ereignisse" /></a></td>'
				+'<td><a href="patterns/object_reports.php?sid='+sid+'" target="lififrame"><img src="styles/images/btn_bericht.gif" width="34" height="22" border="0" align="middle" alt="zurück" title="Berichte bzgl. der Synagoge" /></a></td>'
				+'<td><a href="patterns/object_comments.php?rtyp=sakralbau&rid='+sid+'&sid='+sid+'" target="lififrame"><img src="styles/images/btn_kommentar.gif" width="34" height="22" border="0" align="middle" alt="zurück" title="Kommentare bzgl. der Synagoge" /></a></td>';
	if(lat != '' && lng != '')
	{	
		html +=	'<td><a href="javascript:parent.zoomPoint(\''+lat+'\', \''+lng+'\', 15);" target="lififrame"><img src="styles/images/btn_zoomin2.gif" width="34" height="22" border="0" align="middle" alt="zurück" title="Synagoge heran zoomen" /></a></td>'
				+'<td><a href="javascript:parent.zoomPoint(\''+lat+'\', \''+lng+'\', 6);" target="lififrame"><img src="styles/images/btn_zoomout2.gif" width="34" height="22" border="0" align="middle" alt="zurück" title="heraus zoomen" /></a></td>';
	}
		html +=	'</tr></table>';
			
	parent.$('lifcontrol').innerHTML = html;
}

function hideTabs()
{
	parent.$('lifcontrol').innerHTML = '<table cellspacing="0" cellpadding="0" border="0"><tr>'
										+'<td><a href="javascript:closeInterface(\'leftinterface\');"><img src="styles/images/ico_slidein.gif" width="34" height="22" border="0" align="middle" alt="minimieren" title="minimieren" /></a></td>'
										+'<td><a href="javascript:history.go(-1);"><img src="styles/images/btn_back_2.gif" width="34" height="22" border="0" align="middle" alt="zurück" title="Schritt zurück" /></a></td>'
										+'</tr></table>';
}	

function openiWindow(link, title, width, height)
{
	myLightWindow.activateWindow({
		href: link,
		title: title,
		width: width,
		height: height,
		iframeEmbed: true
	});
}

function openeWindow(link, title, width, height)
{
	myLightWindow.activateWindow({
		href: link,
		title: title,
		width: width,
		height: height
	});
}

function closeiWindow(){
	myLightWindow.deactivate();
}

function reloadIF(element) {
	var iF = document.getElementById(element);
	iF.src = iF.src;
}

function loadIFC(element, content) {
	var iF = document.getElementById(element);
	iF.src = content;
}

function reloadAll() {
	window.location.href = window.location.pathname;
}

function slidedown(element)
{
	if(moving[element])
		return;
 
	if(document.getElementById(element).style.display != 'none')
		return;
 
	moving[element] = true;
	dir[element] = 'down';
	startslide(element);
}

function slideup(element)
{
	if(moving[element])
		return;
 
	if(document.getElementById(element).style.display == 'none')
		return;
 
	moving[element] = true;
	dir[element] = 'up';
	startslide(element);
}

function slideLeft(element)
{
	if(moving[element])
		return;
 
	if(document.getElementById(element).style.display == 'none')
		return;
 
	moving[element] = true;
	dir[element] = 'left';
	startslide(element);
}

function slideRight(element)
{
	if(moving[element])
		return;
 
	if(document.getElementById(element).style.display != 'none')
		return;
 
	moving[element] = true;
	dir[element] = 'right';
	startslide(element);
}

function startslide(element)
{
	obj[element] = document.getElementById(element);
	
	if(dir[element] == 'up' || dir[element] == 'down')
		endHeight[element] = parseInt(obj[element].style.height);
		
	if(dir[element] == 'left' || dir[element] == 'right')
		endWidth[element] = parseInt(obj[element].style.width);
		
	startTime[element] = (new Date()).getTime();
 
	if(dir[element] == 'down')
		obj[element].style.height = '1px';
	
	if(dir[element] == 'right')
		obj[element].style.width = '1px';
 
	obj[element].style.display = 'block';
 
	timerID[element] = setInterval("slidetick('"+element+"');", timerlen);
}

function slidetick(element)
{
	var elapsed = (new Date()).getTime() - startTime[element];
	
	if (elapsed > slideAniLen)
		endSlide(element)
	else 
	{
		if(dir[element] == 'up' || dir[element] == 'down')
		{
			var d = Math.round(elapsed / slideAniLen * endHeight[element]);
			if(dir[element] == 'up')
				d = endHeight[element] - d;
	 
			obj[element].style.height = d + 'px';
		}
		
		if(dir[element] == 'left' || dir[element] == 'right')
		{			
			var d = Math.round(elapsed / slideAniLen * endWidth[element]);
			if(dir[element] == 'left')
				d = endWidth[element] - d;
	 
			obj[element].style.width = d + 'px';
		}
	}
 
	return;
}

function endSlide(element)
{
	clearInterval(timerID[element]);
 
	if(dir[element] == 'up')
		obj[element].style.display = 'none';
		
	if(dir[element] == 'left')
		obj[element].style.display = 'none';
 
	if(dir[element] == 'up' || dir[element] == 'down')
		obj[element].style.height = endHeight[element] + 'px';
	
	if(dir[element] == 'left' || dir[element] == 'right')
		obj[element].style.width = endWidth[element] + 'px';	
		
	delete(moving[element]);
	delete(timerID[element]);
	delete(startTime[element]);
	delete(endHeight[element]);
	delete(endWidth[element]);
	delete(obj[element]);
	delete(dir[element]);
 
	return;
}

function closeInterface(element)
{
	slideLeft(element);
	slideRight(element+'_o');
	/*
	if(element == 'leftinterface')
	{
		slideLeft('rightinterface');
		slideRight('rightinterface_o');
	}
	*/
}

function openInterface(element)
{
	slideLeft(element+'_o');
	slideRight(element);
	if(element == 'leftinterface')
	{
		slideLeft('rightinterface_o');
		//slideRight('rightinterface');
	}
	/*
	if(element == 'rightinterface')
	{
		slideLeft('leftinterface_o');
		slideRight('leftinterface');
	}
	*/
}

function openRightInterface(link)
{
	if($('rightinterface').style.display == 'none')
		slideRight('rightinterface');
	$('rififrame').src = link;
}

function openLeftInterface(link)
{
	if($('leftinterface').style.display == 'none')
		slideRight('leftinterface');
	$('lififrame').src = link;
	//closeInterface('rightinterface')
}

function switchFooterContent(link)
{
	var iF = document.getElementById('footeriframe');
	iF.src = link;
}

function toggleUD(element)
{
	if(document.getElementById(element).style.display == 'none')
	{
		slidedown(element);
	}
	else
	{
		slideup(element);
	}
}

function toggleDropdown(element)
{
	if(document.getElementById(element).style.display == 'none')
	{
		$('dropdown').style.backgroundImage = 'url(../styles/images/ico_dropdown_u.gif)';
		$('dropdown').style.backgroundRepeat = 'no-repeat';
		$('dropdown').style.backgroundPosition = 'left top';
		slidedown(element);
	}
	else
	{
		$('dropdown').style.backgroundImage = 'url(../styles/images/ico_dropdown_d.gif)';
		$('dropdown').style.backgroundRepeat = 'no-repeat';
		$('dropdown').style.backgroundPosition = 'left top';
		slideup(element);
	}
}

function toggleOptions(element)
{
	if(document.getElementById(element).style.display == 'none')
	{
		document.getElementById('btnoptleft').style.backgroundImage = 'url(../styles/images/btn_optleft_u.gif)';
		document.getElementById('btnoptleft').style.backgroundRepeat = 'no-repeat';
		document.getElementById('btnoptleft').style.backgroundPosition = 'left top';
		slidedown(element);
	}
	else
	{
		document.getElementById('btnoptleft').style.backgroundImage = 'url(../styles/images/btn_optleft_d.gif)';
		document.getElementById('btnoptleft').style.backgroundRepeat = 'no-repeat';
		document.getElementById('btnoptleft').style.backgroundPosition = 'left top';
		slideup(element);
	}
}

function toggleOptions2(element, element2)
{
	if(document.getElementById(element).style.display == 'none')
	{
		document.getElementById(element2).src = '../styles/images/ico_dropdown_u.gif';
		document.getElementById(element2).style.backgroundRepeat = 'no-repeat';
		document.getElementById(element2).style.backgroundPosition = 'left top';
		slidedown(element);
	}
	else
	{
		document.getElementById(element2).src = '../styles/images/ico_dropdown_d.gif';
		document.getElementById(element2).style.backgroundRepeat = 'no-repeat';
		document.getElementById(element2).style.backgroundPosition = 'left top';
		slideup(element);
	}
}		
		
//minimiert/maximiert das Sidepanel
function minmaxSidePanel(){
	if(SidePanelMax){
		resizeSidePanel(SidePanelMinWidth);
	}else{
		resizeSidePanel(SidePanelMaxWidth);
	}
	SidePanelMax = !SidePanelMax;
	
}

function iFrameBack(element)
{
	frames[element].history.back();
}

//---------------------DragNDrop SidePanel------------------------------------------------------------------------------------------
			
//Browser und -version feststellen
function Browser() 
{
  var ua, s, i;

  this.isIE    = false;
  this.isNS    = false;
  this.version = null;

  ua = navigator.userAgent;

  s = "MSIE";
  if ((i = ua.indexOf(s)) >= 0) 
  {
	this.isIE = true;
	this.version = parseFloat(ua.substr(i + s.length));
	return;
  }

  s = "Netscape6/";
  if ((i = ua.indexOf(s)) >= 0) 
  {
	this.isNS = true;
	this.version = parseFloat(ua.substr(i + s.length));
	return;
  }

  s = "Gecko";
  if ((i = ua.indexOf(s)) >= 0) 
  {
	this.isNS = true;
	this.version = 6.1;
	return;
  }
}


var browser = new Browser();
var dragObj = new Object();
dragObj.zIndex = 5;

function dragLeftStart(event, id) 
{
  var x;
  
  if (browser.isIE) 
  {
	x = window.event.clientX + document.documentElement.scrollLeft
	  + document.body.scrollLeft;
  }
  if (browser.isNS) 
  {
	x = event.clientX + window.scrollX;
  }
  
  dragObj.cursorStartX = x;
  dragObj.widthStartX  = parseInt($('leftinterface').style.width, 10);

  if (browser.isIE) 
  {
	document.attachEvent("onmousemove", dragGo);
	document.attachEvent("onmouseup",   dragStop);
	window.event.cancelBubble = true;
	window.event.returnValue = false;
  }
  if (browser.isNS) 
  {
	document.addEventListener("mousemove", dragGo,   true);
	document.addEventListener("mouseup",   dragStop, true);
	event.preventDefault();
  }
}

function dragRightStart(event, id) 
{
  var x;

  if (browser.isIE) 
  {
	x = window.event.clientX + document.documentElement.scrollLeft
	  + document.body.scrollLeft;
  }
  if (browser.isNS) 
  {
	x = event.clientX + window.scrollX;
  }

  dragObj.cursorStartX = x;
  dragObj.widthStartX  = parseInt($('rightinterface').style.width, 10);

  if (browser.isIE) 
  {
	document.attachEvent("onmousemove", dragRightGo);
	document.attachEvent("onmouseup",   dragRightStop);
	window.event.cancelBubble = true;
	window.event.returnValue = false;
  }
  if (browser.isNS) 
  {
	document.addEventListener("mousemove", dragRightGo,   true);
	document.addEventListener("mouseup",   dragRightStop, true);
	event.preventDefault();
  }
}

function dragGo(event) 
{
  var x;

  if (browser.isIE) 
  {
	x = window.event.clientX + document.documentElement.scrollLeft
	  + document.body.scrollLeft;
  }
  if (browser.isNS) 
  {
	x = event.clientX + window.scrollX;
  }

  newsize = dragObj.widthStartX + (x - dragObj.cursorStartX);
  
  if(newsize < 695 && newsize > 375)
  {  
	$('leftinterface').style.width =  newsize + "px";
  }
  if (browser.isIE) 
  {
	window.event.cancelBubble = true;
	window.event.returnValue = false;
  }
  if (browser.isNS)
	event.preventDefault();
}

function dragRightGo(event) 
{
  var x;

  if (browser.isIE) 
  {
	x = window.event.clientX + document.documentElement.scrollLeft
	  + document.body.scrollLeft;
  }
  if (browser.isNS) 
  {
	x = event.clientX + window.scrollX;
  }

  newsize = dragObj.widthStartX - (x - dragObj.cursorStartX);
  
  if(newsize < 400 && newsize > 200)
  {  
	$('rightinterface').style.width =  newsize + "px";
  }
  if (browser.isIE) 
  {
	window.event.cancelBubble = true;
	window.event.returnValue = false;
  }
  if (browser.isNS)
	event.preventDefault();
}

function dragStop(event) 
{
  if (browser.isIE) 
  {
	document.detachEvent("onmousemove", dragGo);
	document.detachEvent("onmouseup",   dragStop);
  }
  if (browser.isNS) 
  {
	document.removeEventListener("mousemove", dragGo,   true);
	document.removeEventListener("mouseup",   dragStop, true);
  }
  map.checkResize();
}

function dragRightStop(event) 
{
  if (browser.isIE) 
  {
	document.detachEvent("onmousemove", dragRightGo);
	document.detachEvent("onmouseup",   dragRightStop);
  }
  if (browser.isNS) {
	document.removeEventListener("mousemove", dragRightGo,   true);
	document.removeEventListener("mouseup",   dragRightStop, true);
  }
  map.checkResize();
}
