Event.observe(window, 'load', init);

var myLightWindow = null;
var myLightWindowPage = '';
var iMetaLayerDelay = 0;
var iMetaLayerDelayId = 0;
var aEmailDebugArray = [];

function showLightWindow(url, title, width, height)
{
	if(!myLightWindow)
	{
		myLightWindow = new lightwindow();
	}
	myLightWindow.activateWindow({
		href: url,
		title: title,
		width: width,
		height: height,
		iframeEmbed: true,
		type: 'external'
	});
}

function toogleGreenBoxItem(sId)
{
	var oContent = $(sId + '_content');
	Effect.toggle(sId + '_content', 'slide', {duration: 0.4});

	if (oContent.style.display == 'none')
	{
		$(sId).removeClassName('box-pfeil');
		$(sId).addClassName('box-pfeil-active');
	}
	else
	{
		$(sId).addClassName('box-pfeil');
		$(sId).removeClassName('box-pfeil-active');
	}
}

function getIdfromEvent(event)
{
	var id = '';

	if (window.event != null && window.event.toElement != null)
	{
		id = window.event.toElement.id;
	}
	else
	{
		if (event != null && event.relatedTarget != null)
		{
			id = event.relatedTarget.id;
		}
	}

	return id;
}

function init()
{
	if( $('meta-wrapper')!=null )
	{

		$('meta-wrapper').observe('mouseleave', hideMetaLayer);

		$('meta-wrapper').onclick = function (event)
		{
			var id = '';

				switch (navigator.appName)
				{
					case "Microsoft Internet Explorer":
						id = window.event.srcElement.id;
						break;

					default:
						if (event != null)
						{
							id = event.target.id;
						}
						break;
				}

			if (id == '' || id == 'meta-wrapper-full-width' || id == 'meta-layer')
			{
				hideMetaLayer();
			}
		}


		if ($('references-sorting-bar') != null)
		{
			$('references-sorting-bar').show();
		}

		initShowreel();
	}

	if ($('accordion-div') != null)
	{
		initAccordion();
	}


	myLightWindow = new lightwindow();
}

function initReferenceDetail(iBranch)
{
	if($('all_references'))
	{
		$('all_references').removeClassName('active');
		$('branch').addClassName('active');
		$('branch_' + iBranch).addClassName('active');
		$('branch_all').removeClassName('active');
	}

	$('view_chess').removeClassName('chessboard-active');
	$('view_list').addClassName('list-active');
	$('view_chess').addClassName('chessboard');
}

function showMetaLayer()
{
	iMetaLayerDelay = 0;
	
	if($('meta-wrapper'))
	{
		if($('meta-wrapper').style.display == 'none')
		{
			Effect.toggle('meta-wrapper', 'slide', {duration: 0.4});
		}
	}
}

function startMetaLayerTimer()
{
	iMetaLayerDelay ++;

	if(iMetaLayerDelay > 5)
	{
		showMetaLayer();
	}
	else
	{
		iMetaLayerDelayId = setTimeout('startMetaLayerTimer()', 100);
	}
}

function clearMetaLayerTimer()
{
	clearTimeout(iMetaLayerDelayId);
	iMetaLayerDelay = 0;
}

function hideMetaLayer()
{
	if ($('meta-wrapper').style.display != 'none')
	{
//		window.setTimeout("$('meta-wrapper').hide()", 1000);
	//	$('meta-wrapper').hide();
		Effect.toggle('meta-wrapper', 'slide', {duration: 0.4});
	}
}

function resetReferences(bFilter)
{
	$('a_z').name = 'asc';
	$('a_z').removeClassName('active');
	$('a_z').removeClassName('down-arrow-active');
	$('a_z').removeClassName('up-arrow-active');

	if (bFilter == true)
	{
		$$('#references_branches ul a').each(function(item) {
			item.removeClassName('active');
		});

		$$('#references_solutions ul a').each(function(item) {
			item.removeClassName('active');
		});

		$('branch').removeClassName('active');
		$('solution').removeClassName('active');
	}
}

function handleViewReferences(sType)
{
	if (sType == 'list')
	{
		$('view_list').removeClassName('list');
		$('view_list').addClassName('list-active');

		$('view_chess').removeClassName('chessboard-active');
		$('view_chess').addClassName('chessboard');
	}

	if (sType == 'chess')
	{
		$('view_chess').removeClassName('chessboard');
		$('view_chess').addClassName('chessboard-active');

		$('view_list').removeClassName('list-active');
		$('view_list').addClassName('list');
	}
}

function handleSort(mFilter)
{
	if (mFilter == 'asc')
	{
		$('a_z').name = 'desc';
		$('a_z').addClassName('up-arrow-active');
	}
	else
	{
		$('a_z').name = 'asc';
		$('a_z').addClassName('down-arrow-active');
	}
	$('a_z').addClassName('active');
}

function showPagerContentReferences(sUrl, iPage)
{
	new Ajax.Updater('overview', sUrl,{
		  parameters: { page: iPage, action: 'reference'}
		});
}

var iLastBranch   = 0;

function showOverview(sType, sUrl, mFilter, iPage)
{
	var iBranch   = 0;
	var iSolution = 0;
	var sSort     = '';
	var sAll      = '';

	if (sType != 'list' && sType != 'chess')
	{
		resetReferences(false);
	}
	handleViewReferences(sType);

	if (mFilter == 'all')
	{
		iBranch   = 0;
		iSolution = 0;
		resetReferences(true);
		sAll = mFilter;
		$('all_references').addClassName('active');
		$('branch_all').addClassName('active');
		$('solution_all').addClassName('active');
	}
	else
	{
		if (mFilter != null)
		{
			if (mFilter == 'asc' || mFilter == 'desc')
			{
				handleSort(mFilter);
				sSort = mFilter;
				$('all_references').removeClassName('active');
			}
			else
			{
				var sFilter = $(mFilter).id;
				var aFilter = sFilter.split('_');

				if (aFilter[0] == 'branch')
				{
					iBranch = aFilter[1];

					$$('#references_branches ul a').each(function(item) {
						item.removeClassName('active');
					});

					$('branch').addClassName('active');
					$(mFilter).addClassName('active');
				//	$('solution').removeClassName('active');
				}

				if (aFilter[0] == 'solution')
				{
					iSolution = aFilter[1];

					$$('#references_solutions ul a').each(function(item) {
						item.removeClassName('active');
					});

					$('solution').addClassName('active');
					$(mFilter).addClassName('active');
				//	$('branch').removeClassName('active');
				}

				$('all_references').removeClassName('active');
			}
		}
	}

	if(mFilter == 'branch_all')
	{
		$('branch').removeClassName('active');
	}

	if(mFilter == 'solution_all')
	{
		$('solution').removeClassName('active');
	}

	new Ajax.Updater('overview', sUrl,{
		  asynchronous: false,
		  parameters: { view: sType, action: 'reference', all: sAll, branch: iBranch, solution: iSolution, sort: sSort, page: iPage}
		});

	emailOutput(aEmailDebugArray['p1'], aEmailDebugArray['p2'], aEmailDebugArray['p3'], aEmailDebugArray['element'], aEmailDebugArray['title'], aEmailDebugArray['subject']);
}

function emailOutput(sPart1, sPart2, sPart3, elementid, title, subject )
{
	// Daten der Greenbox abspeichern
	// Bugfix für das AJAX Funktion "showOverview"
	if(elementid == 'inputmail')
	{
		aEmailDebugArray['p1'] = sPart1;
		aEmailDebugArray['p2'] = sPart2;
		aEmailDebugArray['p3'] = sPart3;
		aEmailDebugArray['element'] = elementid;
		aEmailDebugArray['title'] = title;
		aEmailDebugArray['subject'] = subject;
	}
	sEmailAdresse = sPart1 + '@' + sPart2 + sPart3;

	if(title == '' || title == undefined)
	{
		title = sEmailAdresse;
	}

	if(subject != '' && subject != undefined)
	{
		subject = '?subject='+subject;
	}
	else
	{
		subject = '';
	}

	if ($(elementid) != null)
	{
		$(elementid).innerHTML = '<a href="mailto:' + sEmailAdresse + subject + '">' + title + '</a>';
	}
}

var iInputCounter = 0;
var iCountFiles = 0;
var aElements = new Array();

function newInputFile()
{
	iInputCounter++;

	var fileinput = new Element("input");
	fileinput.name = "files[]";
	fileinput.type = "file";
	fileinput.addClassName('uploadfield');
	fileinput.id = "Filedata" + iInputCounter;
	fileinput.onchange = addUploadInput;
	return fileinput;
}

function addUploadInput()
{
	var fileinput = newInputFile();

	var li = new Element("li", { id : "uploadelement"+(iInputCounter-1)}).update($("Filedata"+(iInputCounter-1)).value).insert(
		new Element("small").insert(
			new Element("a", { href : 'javascript: delFile('+(iInputCounter-1)+');'}).update('Löschen')
		)
	);

	$('fileinputs').appendChild(fileinput);
	$('filelist').appendChild(li);

	$$('#fileupload .uploadfield').invoke('hide').last().show();

	iCountFiles++;
}

function delFile(id)
{
	$("uploadelement" + id).remove();
	$("Filedata" + id).remove();
	--iCountFiles;

	var fileinput = newInputFile();

	$('fileinputs').appendChild(fileinput);

	$$('#fileupload .uploadfield').each(function(item) {
		item.hide();
	});

	var aTest = $$('#fileupload .uploadfield');

	aTest.last().show();
}

function bookmark()
{
	var url = eval(self.location);
	var title = document.title;
	var msg = 'Konnte Favoriten nicht erstellen.\n\nBitte speichern Sie ' + url + ' manuell ab.';

	try
	{
		if (window.sidebar) // Mozilla Firefox Bookmark
		{
			return window.sidebar.addPanel(title, url, "");
		}
		else if( window.external )
		{ // IE Favorite
				   return window.external.AddFavorite( url, title);
		}
		else if(window.opera && window.print)
		{ // Opera Hotlist
				   alert(msg);
		}
	}

	catch(err)
	{
				alert(msg);
	}
}

var sLast;

function openAccordion(event)
{

	var aPartsHead = event.target.id.split('-');
	var sEntryID = 'accordion-content-' + aPartsHead[2];

	if(sLast != sEntryID)
	{
		Effect.BlindDown($(sEntryID), {duration: 0.5});
		$('accordion-main-' + aPartsHead[2]).addClassName('active');
	}

	if(sLast != null && sLast != sEntryID)
	{
		Effect.BlindUp($(sLast), {duration: 0.5});

		aPartsHead = sLast.split('-');
		$('accordion-main-' + aPartsHead[2]).removeClassName('active');
	}

	sLast = sEntryID;
}

function initAccordion()
{
	$$('#accordion-div .accordion-content').each(
			function(node)
			{
				node.style.display = 'none';
			}
	)

	$$('#accordion-div .accordion-headline').each(
			function(node)
			{
				node.observe('click', openAccordion);
			}
	)
}

var iShowreelMapid = null;

function initShowreel()
{
	if(iShowreelMapid != null)
	{
		var so = new SWFObject("/customer/flash/videoplayer/videoplayer.swf", "videoplayer", 748, 420, "9.0.115", '#ffffff');
		so.addVariable("xmlPath","/customer/xml/showreel_" + iShowreelMapid + ".xml");
		so.addParam("wmode", "transparent");
		so.addParam("allowFullScreen", "true");
		so.write("showreel_" + iShowreelMapid);
	}
}

function trackForm(event)
{
	sTitle = Event.element(event).title;

	if(pageTracker)
	{
		$$('.formular .pflichterror').each(
			function(oNode){
				if(oNode.name)
				{
					pageTracker._trackEvent('Validierung - ' + sTitle, oNode.name, oNode.value);
				}
			}
		);
	}
}