Event.observe(window, 'load', init, false);
var _dynarch_menu_url = "/js/hmenu/";
var menuControl = 0;
var activeTabID = 't_colors';
var activePaneID = 'colors';
var ofen = '';
var korpus = '';
var mantel = '';
var mouseX = 0;
var mouseY = 0;
var offsetX = 0;
var offsetY = 0;
var userPicX = 0;
var search = new Hash();
var searchType = '';
var comparisonRow = 0;
var zoomImage = '';

if (typeof Prototip != 'undefined')
{
	Prototip.Styles=
	{
		'default': {
			border: 8,
			borderColor: '#989898',
			className: 'default',
			closeButton: false,
			hideAfter: false,
			hideOn: 'mouseleave',
			hook: false,
			images: 'http://www.rika.at/assets/layout/tips/',
			radius: 5,
			showOn: 'mousemove',
			stem: {
				position: 'bottomRight',
				height: 12,
				width: 15
			},
			offset: { x: 16, y: 0 }
		}
	}
}

function init() {
	// zoomImage = new Image();
	// zoomImage.onload = zoomReady;
	
	if ( $('sitemap') ) {
		var mainmenu = DynarchMenu.setup('sitemap', { lazy: true, shadows: false, electric: 250 });
	}
	mkTrans();
	if ( $('previmg') )
	{
		$('previmg').observe('mousemove', zoom);
		var coords = Position.cumulativeOffset($('previmg'));
		$('vorteil').setStyle({ top: coords[1]+200+'px', left: coords[0]+260+'px'});
		$('vorteil').show();
	}

	$$('div.slider span').each(function(element)
	{
		var id=element.ancestors().first().id;
		new Tip(
			element,
			{
				target: element,
//				title: element.title,
				title: auswahlomatTitle,
				style: 'default',
				viewport: true,
				showOn: 'click',
				hideOn: 'click',
				hideOthers: true,
				closeButton: true,
				width: 'auto',
				hook: { target: 'rightMiddle', tip: 'leftMiddle' },
				stem: false,
				offset: { x: 8, y: 0 },
				ajax: {
					url: '/ajax_content.php',
					options:
					{
						parameters: 'slider='+id+'&type='+search.get('type')+'&lg='+LG
//	     				onCreate:	function() { },
//	     				onComplete:	sliderLoaded
					}
				}
			}
		);
//		$(element).observe('prototip:shown', function(){ trigger(this) });
		Event.observe(element, 'prototip:shown', function(){ buttonActive(this) });
		Event.observe(element, 'prototip:hidden', function(){ buttonDefault(this) });
//		Event.observe(element, 'prototip:shown', function(){ hideOtherPrototips(this.id) });
	});

	$$('#dataoverview span.glossar').each(function(element)
	{
		// element.observe('click', function(event){
		// 	event.stop();
		// 	var string = event.target.innerHTML;
		// 	
		// });
		new Tip(
			element,
			{
				// target: element,
				// target: 'glossarPos',
				target: 'dataoverview',
				// title: element.innerHTML,
				title: glossarTitle,
				style: 'default',
				viewport: true,
				showOn: 'click',
				hideOn: 'click',
				hideOthers: true,
				closeButton: true,
				width: 'auto',
				hook: { target: 'rightMiddle', tip: 'leftMiddle' },
				stem: false,
				offset: { x: -8, y: 0 },
				ajax: {
					url: '/ajax_glossary.php',
					options:
					{
						parameters: 'string='+element.innerHTML
					}
				}
			}
		);

	});

	$$('u').each(function(element)
	{
		element.addClassName('glossary');
		new Tip(
			element,
			{
				target: element,
				// title: element.innerHTML,
				title: glossarTitle,
				style: 'default',
				viewport: true,
				showOn: 'click',
				hideOn: 'click',
				hideOthers: true,
				closeButton: true,
				width: 'auto',
				hook: { target: 'bottomMiddle', tip: 'topMiddle' },
				stem: 'topMiddle',
				offset: { x: 0, y: 0 },
				ajax: {
					url: '/ajax_glossary.php',
					options:
					{
						parameters: 'string='+element.innerHTML
					}
				}
			}
		);
	});

	$$('span.underline').each(function(element)
	{
//		alert (element.getStyle('text-decoration'));
		element.addClassName('glossary');
		new Tip(
			element,
			{
				target: element,
				// title: element.innerHTML,
				title: glossarTitle,
				style: 'default',
				viewport: true,
				showOn: 'click',
				hideOn: 'click',
				hideOthers: true,
				closeButton: true,
				width: 'auto',
				hook: { target: 'bottomMiddle', tip: 'topMiddle' },
				stem: 'topMiddle',
				offset: { x: 0, y: 0 },
				ajax: {
					url: '/ajax_glossary.php',
					options:
					{
						parameters: 'string='+element.innerHTML
					}
				}
			}
		);
	});


	var foldedULs = $$('ul.fold');
	if (foldedULs.length > 0)
	{
		$$('ul.fold ul').each(function(element)
		{
			element.hide();
		});
		$$('ul.fold div.fold').each(function(element)
		{
			Event.observe(element, 'click', function(){ toggleUL(this) });
			Event.observe(element, 'mouseover', function(){ hl(this) });
			Event.observe(element, 'mouseout', function(){ hl(this) });
		});
		$$('ul.fold').first().show();
	}


}
function toggleUL(elem)
{
	var ul = $(elem).next();
	if (ul.hasClassName('ajax'))
	{
		var cont = ul.down();
		if (cont.innerHTML == '')
			new Ajax.Updater(cont, '/ajax_pages.php?pg='+cont.className);
	}
	ul.toggle();
	$(elem).toggleClassName('open');
	
}
function buttonActive(obj)
{
	// alert(obj.up());
	obj.up().setStyle('color: #FFF; background-image: url(/assets/layout/btnWide_active.png)');
}
function buttonDefault(obj)
{
	// alert(obj.up());
	obj.up().setStyle('color: #313131; background-image: url(/assets/layout/btnWide.png)');
}
function trigger(obj)
{
	// alert(obj.up());
	obj.up().setStyle('background-image: url(/assets/layout/btnWide_active.png)');
}
function mkOpaque()
{
	var tds = $$('#header td');
	tds.each(
		function(td)
		{
			td.removeClassName('trans');
		}
	);
	if (menuControl == 0)
	{
		menuControl = setInterval('mkTrans()', 500);
	}
}
function mkTrans()
{
	var tds = $$('#header td');
	var isActive = false;
	tds.each(
		function(td)
		{
			if (td.hasClassName('active') || td.hasClassName('hover'))
			{
				isActive = true;
			}
		}
	);
	if (isActive) return false;
	clearInterval(menuControl);
	menuControl = 0;
	tds.each(
		function(td)
		{
			td.addClassName('trans');
		}
	);
}

function toggleTabs(tab)
{
	var allTabs = $(tab).siblings();
	allTabs.each(
		function(t)
		{

			t.removeClassName('active');
			if (t.id.startsWith('t_'))
			{
				paneID = t.id.substring(2);
				if ($(paneID))
				{
					$(paneID).hide();
				}
			}
		}
	)

	activeTabID = tab.id;
	activeTab = $(tab);
	activeTab.addClassName('active');
	activePaneID = (activeTab.id.startsWith('t_')) ? activeTab.id.substring(2) : NULL;
	if ($(activePaneID))
	{
		$(activePaneID).show();
	}
}
function setField(field,value,content)
{
	var field = $(field);
	if (value == '')
	{
		search.unset(field.id);
		search.unset(field.id+'_string');
	}
	else
	{
		search.set(field.id, value);
		search.set(field.id+'_string', content);
	}
	field.setStyle('background-image: url(/assets/layout/btnWide.png)');
	field.down().innerHTML=content;
	Tips.hideAll();
	loadSelection();
}
function hl(elem)
{
	$(elem).toggleClassName('highlight');
}
function toggleRadio(elem)
{
	Tips.hideAll();
	var radio = $(elem);
	if (search.get(radio.id) == 1)
	{
		radio.setStyle('background-position: 0 0');
		search.unset(radio.id);
		// search.set(radio.id, 0);
	}
	else
	{
		radio.setStyle('background-position: 0 -20px');
		search.set(radio.id, 1);
	}
	loadSelection();
}
function loadSelection()
{
	if (search.size() == 1)
	{
//		$('showAll').hide();
//		return false;
	}
//	alert(search.inspect())
	new Ajax.Request(
		'/ajax_selection.php',
		{
			parameters: search.toQueryString(),
			onComplete:selectionLoaded
		}
	);
	savePrefs('search'+search.get('type'), search);
}
function selectionLoaded(t)
{
	// IDs der selektierten oefen werden uebergeben, alle anderen werden ausgeblendet.
	var data = t.responseText.evalJSON();
	var visible = data.ids;
	$('debug').innerHTML = data.vars;
	if (visible.length == 0)
	{
//		alert($('noMatchMsg').innerHTML);
		Lightview.show({
			href: '#noMatchMsg',
		    rel: 'inline',
		    options: {
				topclose: true,
				menubar: false,
				closeButton: false,
				width: 300,
				height: 90
			}
		});
//		return;
	}
//	$('showSel').hide();
//	$('showAll').show();
	var oefen = $$('#ofenliste div.ofen')
	var counter = 0;
	oefen.each(
		function(o)
		{
			if ( visible.indexOf( o.id ) == -1 )
			{
				if (o.visible())
					o.fade();
			}
			else
			{
				if (!o.visible())
					o.show();
				var margin = (++counter % 4) ? 16 : 0;
				o.setStyle('margin: 16px '+margin+'px 16px 16px');
			}
		}
	)
	
}
function showAll()
{
	var oefen = $$('#ofenliste div.ofen')
	var counter = 0;
	// $('showSel').show();
	// $('showAll').hide();
	oefen.each(
		function(o)
		{
			var margin = (++counter % 4) ? 16 : 0;
			if ( o.visible() )
			{
				o.setStyle('margin: 16px '+margin+'px 16px 16px');
			}
			else
			{
				o.appear();
//				Effect.Grow(o);
				o.setStyle('margin: 16px '+margin+'px 16px 16px');
			}
		}
	)
	
}
function resetSearch()
{
	search.each(
		function (p)
		{
			if (p[1] > 0)
			{
				if (p[0] == 'type')
				{
				
				}
				else if ( $(p[0]).hasClassName('slider') )
				{
					$(p[0]).down().innerHTML=auswahlomatAlle;
				}
				else if ( $(p[0]).hasClassName('radio') )
				{
					$(p[0]).setStyle('background-position: 0 0');
				}
			}
		}
	);
	search = new Hash();
	search.set('type', searchType);
	savePrefs('search'+searchType, search);
}
function setCorpus(col,button)
{
	korpus = col;
	var otherButtons = $(button).siblings();
	otherButtons.each(
		function(t)
		{
			t.removeClassName('active');
		}
	)
	$(button).addClassName('active');
	$('previmg').src='http://media.networx.at/www.rika.at/oefen/'+ofen+'/prev_'+korpus+'_'+mantel+'.jpg';
	$('zoom').down('span').show();
//	$('zoom').setStyle('background-image: url(http://media.networx.at/www.rika.at/oefen/'+ofen+'/full_'+korpus+'_'+mantel+'.jpg)');
	zoomImage.src = 'http://media.networx.at/www.rika.at/oefen/'+ofen+'/full_'+korpus+'_'+mantel+'.jpg';
	savePrefs(ofen, [korpus, mantel] );
}
function setColor(col,button)
{
	mantel = col;
	var otherButtons = $$('div.colors div.color');
	otherButtons.each(
		function(t)
		{
			t.removeClassName('active');
		}
	)
	$(button).addClassName('active');
	$('previmg').src='http://media.networx.at/www.rika.at/oefen/'+ofen+'/prev_'+korpus+'_'+mantel+'.jpg';
	$('zoom').down('span').show();
//	$('zoom').setStyle('background-image: url(http://media.networx.at/www.rika.at/oefen/'+ofen+'/full_'+korpus+'_'+mantel+'.jpg)');
	zoomImage.src = 'http://media.networx.at/www.rika.at/oefen/'+ofen+'/full_'+korpus+'_'+mantel+'.jpg';
	savePrefs(ofen, [korpus, mantel] );
}
function zoomPreload()
{
	zoomImage = new Image();
	zoomImage.src = 'http://media.networx.at/www.rika.at/oefen/'+ofen+'/full_'+korpus+'_'+mantel+'.jpg';
	zoomImage.onload = zoomReady;
}
function zoomReady()
{
//	alert('zoom ready');
	$('zoom').down('span').hide();
	$('zoom').setStyle('background-image: url('+zoomImage.src+')');
}
function zoomPane()
{
	XY = $('previmg').cumulativeOffset();
	offsetX = XY[0];
	offsetY = XY[1];
}
function zoom(e)
{
	mouseX = Event.pointerX(e) - offsetX;
	mouseY = Event.pointerY(e) - offsetY;
	previewerX = Event.pointerX(e) - 25;
	previewerY = Event.pointerY(e) - 40;
	$('zoom').setStyle('background-position: -'+mouseX*3+'px -'+mouseY*3+'px');

}
function scrollUserpics(direction)
{
//	Position.prepare();
	var containerOffset = Position.cumulativeOffset('viewport');
	var elementOffset = Position.cumulativeOffset($('glider'));
	if (direction)
		new Effect.SmoothScroll('viewport',
				{duration:2, x:200, y:0});
	else
		new Effect.SmoothScroll('viewport',
				{duration:2, x:(elementOffset[0]-containerOffset[0]), y:(elementOffset[1]-containerOffset[1])});
}
function scrollUserpics2(direction)
{
//	Position.prepare();
	var containerOffset = Position.cumulativeOffset('viewport');
	var elementOffset = Position.cumulativeOffset($('glider'));
	if (direction)
		userPicX -= 300;
	else
		userPicX += 300
	new Effect.SmoothScroll('viewport',{duration:1, x:userPicX, y:0});
}
function scrollStrip(id, direction)
{
	var strip = $(id);
	var viewport = strip.down('div.viewport');
	var glider = viewport.down('div.glider');
//	Position.prepare();
	var containerOffset = Position.cumulativeOffset(viewport);
	var elementOffset = Position.cumulativeOffset(glider);
	if (direction)
		userPicX -= 485;
	else
		userPicX += 485;
	new Effect.SmoothScroll(viewport,{duration:1, x:userPicX, y:0});
}

function showBig(title)
{
	Lightview.show({
		href: 'http://media.networx.at/www.rika.at/oefen/'+ofen+'/full_'+korpus+'_'+mantel+'.jpg',
		rel: 'image',
		title: title,
		options: {
			resizeDuration: 0,
			menubar: 'bottom',
			topclose: false
		}
	});
}


Effect.SmoothScroll = Class.create();
Object.extend(Object.extend(Effect.SmoothScroll.prototype, Effect.Base.prototype), {
  initialize: function(element) {
    this.element = $(element);
    var options = Object.extend({
      x:    0,
      y:    0,
      mode: 'absolute'
    } , arguments[1] || {}  );
    this.start(options);
  },
  setup: function() {
    if (this.options.continuous && !this.element._ext ) {
      this.element.cleanWhitespace();
      this.element._ext=true;
      this.element.appendChild(this.element.firstChild);
    }

    this.originalLeft=this.element.scrollLeft;
    this.originalTop=this.element.scrollTop;

    if(this.options.mode == 'absolute') {
      this.options.x -= this.originalLeft;
      this.options.y -= this.originalTop;
    }
  },
  update: function(position) {
    this.element.scrollLeft = this.options.x * position + this.originalLeft;
    this.element.scrollTop  = this.options.y * position + this.originalTop;
  }
});

function loadPrefs(name) 
{
	var cookies = document.cookie.split('; ');
	var ret = false;
	Object.extend(cookies);
	cookies.each(
		function(c)
		{
			if (c.startsWith('prefs_'+name+'='))
			{
				var thisPrefs = unescape( String(c).gsub('prefs_'+name+'=','') );
				ret = thisPrefs.evalJSON();
			}
		}
	)
	return ret;
}

function savePrefs(name, payload, expires, path) 
{
	var n = name || 'prefs';
	var d = expires || new Date(2020, 02, 02);
	var p = path || '/';
	//alert(Object.toJSON(payload));
	document.cookie = 'prefs_' + n + '='
					+ escape(Object.toJSON(payload))
					+ ';path=' + p
					+ ';expires=' + d.toUTCString();
}
function applyPrefs(name)
{
	var n = name || 'prefs';
	var done = false;
	prefs = $H( loadPrefs(n) );
//	alert(prefs.toQueryString());
	prefs.each(
		function (p)
		{
			if (p[1] > 0)
			{
//				alert( p[0] + '=' + p[1])
				if (p[0] == 'type')
				{
				
				}
				else if ( $(p[0]).hasClassName('slider') )
				{
					string = prefs.get(p[0]+'_string');

					search.set(p[0], p[1]);
					search.set(p[0]+'_string', string);
					$(p[0]).down().innerHTML=string;
					done = true;
				}
				else if ( $(p[0]).hasClassName('radio') )
				{
					search.set(p[0], p[1]);
					$(p[0]).setStyle('background-position: 0 -20px');
					done = true;
				}
			}
		}
	);
	if (done) loadSelection();	
}

/* flo */

function XXXshow360(flashOfen)
{
	Lightview.show({
		href: 'http://media.networx.at/www.rika.at/flash/360core.swf?ofen='+flashOfen+'',
		// href: 'http://media.networx.at/www.rika.at/flash/360oefen/'+flashOfen+'.swf',
		rel: 'flash',
		title: 'Klicken und Maus links oder rechts bewegen um den Ofen zu drehen.',
		options: {
			resizeDuration: 0,
			menubar: true,
			topclose: true,
			width: 450,
			height: 600
		}
	});
}
function show360(flashOfen)
{
	Lightview.show(flashOfen);
}
function toggleTooltip(id)
{
	var tts = $$('div.tooltip');
	tts.each(function(tt){
		if (tt.id == 'tooltip'+id)
		{
			if (tt.visible())
				tt.hide();
			else
				tt.show();
		}
		else if (tt.visible())
		{
			tt.hide();
		}
	});
/*	
	var tt = $('tooltip'+id);
	if (tt.visible())
	{
		tt.blindUp();
	}
	else
	{
		tt.blindDown();
	}
*/	
/*	Lightview.show({
		href: '#tooltip'+id,
		rel: 'inline',
		options: {
			resizeDuration: 0,
			menubar: true,
			topclose: true,
			autosize: true
		}
	});*/
}
function loadComparison(select)
{
	var loadOfen = $(select).getValue();
	var contentOfen = $(select).up().next('div.data');
	new Ajax.Updater(contentOfen, '/ajax_data.php?IDofen='+loadOfen);
}
function showOfenSelektor(id)
{
	comparisonRow = id;
	Lightview.show({
		href: '#ofenselektor',
		rel: 'inline',
		title: $('ofenselektor').title,
		options: {
			resizeDuration: 0,
			menubar: 'top',
			topclose: true,
			autosize: true
		}
	});	
}
function compareOfen(ofen)
{
	var selectedID = ofen.id.replace('ofen','');
	Lightview.hide();
	var contentOfen = $('data'+comparisonRow);
	new Ajax.Updater(contentOfen, '/ajax_data.php?IDofen='+selectedID);
}
function toggleSearch(ofen)
{
	var alleOfen = $$('div.ofen360');
	alleOfen.each(
		function(o)
		{
			o.removeClassName('active');
			if (o.id == 'ofen' + ofen.id)
			{
				o.addClassName('active');
				$('ofenselect').value = ofen.id
			}
		}
	)
}
function editData(type)
{
	switch (type)
	{
		case 'zeiten':
			height=200;
			break;
		case 'oefen':
			height=500;
			break;
		case 'box1':
		case 'box2':
			height=440;
			break;
		default:
			return;
	}
	Lightview.show({
		href: '/ajax_edit.php?type='+type,
		rel: 'iframe',
		options: {
			resizeDuration: 0,
			menubar: false,
			topclose: true,
			width: 700,
			height: height
		}
	});		
}

function doDownload ()
{
	var imageAddress = Lightview.view.href;
	window.location.href = imageAddress.replace('media.networx.at', 'downloads.networx.at');
}
