var hash = '';
var defhelp = '';

// for use with RSH and mootools 1.2
window.dhtmlHistory.create(
{
	toJSON: function(o)
	{
		return JSON.encode(o); 
	},
	fromJSON: function(s)
	{
		return JSON.decode(s); 
	} 
}); 

window.addEvent('load', function() {
	// get RSH to work
	dhtmlHistory.initialize();
	dhtmlHistory.addListener(Page.update);
	
	// call hash or set home as default
	if ( dhtmlHistory.isFirstLoad() )
	{
		var site = ( window.location.hash == '' ) ? 'weingut' : window.location.hash.replace('#', '');
		Page.update(site);
	}
});


Page = {
	loaderShow: function()
		{
			$('loader').innerHTML = '<img src="images/ajax-loader.gif" alt="" /> lade...';
		},
	loaderHide: function()
		{
			$('loader').innerHTML = '';
		},
	show: function(id)
		{
			$(id).setStyle('display', 'block');
		},
	hide: function(id)
		{
			$(id).setStyle('display', 'none');
		},
	toggle: function(id)
		{
			if ( $(id).getStyle('display') == 'none' )
			{
				Page.show(id);
			}
			else
			{
				Page.hide(id);
			}
		},
	update: function(newLocation, historyData)
		{
			if ( newLocation.match(/\#mb_/i) )
			{
				return false;
			}
			
			dhtmlHistory.add(newLocation, true);
			
			// for use with other functions
			hash = newLocation;			
			
			new Request.HTML({ 
				update: $('content'),
				method: 'post',  
				url: 'geco.php',  
				data: 'hash=' + hash, 
				evalScripts: true,
				onRequest: function()
					{
						Page.loaderShow();
					},
				onComplete: function()
					{
						Page.loaderHide();
						Page.hideDashes();
						Page.preventHash();
						Page.setActive(hash);
						
						// google analytics
						pageTracker._trackPageview('/' + hash);
						
						Slimbox.scanPage();
													
					}			
				}).send();		
		},
	popup: function(url, width, height)
		{
		 win = window.open(url, 'popup', 'width=' + width + ',height=' + height + ',status=no,scrollbars=no,resizable=no');
		 win.focus();
		},
	preventHash: function()
		{
			// prevent a href="#" from opening
			$$('a').each(function(el) {
				if ( el.href.lastIndexOf("#") === el.href.length - 1 )
				{
					el.addEvent('click', function(e){
						new Event(e).preventDefault(); // no stop !
					});									
				}
			});
		},
	jumpTo: function(id)
		{
			var myjump = new Fx.Scroll(id, {
				wait: false,
				duration: 100
			});
			
			myjump.toTop();
		},
	hideDashes: function()
		{
			// gestrichelten rand um links verbergen
			var a=document.getElementsByTagName('a');
			var inp=document.getElementsByTagName('input');
			var arr=[];
			
			for (var i=0;i<a.length;i++) {
				arr[i] = a[i]; // Hier aus dem ObjectRange ein Array machen, um den nächsten Range angenehm per concat mit einzubinden (push ginge auch, doch ich benutze concat wegen der Abwärtskompatibilität)
			}
			
			for (i=0;i<inp.length;i++) {
				if(inp[i].type == 'submit' || inp[i].type == 'image' || inp[i].type == 'reset' || inp[i].type == 'button' || inp[i].type == 'checkbox' || inp[i].type == 'radio') {
				 arr = arr.concat([inp[i]]);
				}
			}
			
			a = arr;
			
			for (i=0;i<a.length;i++) {
				a[i].onmousedown = function()
				{
				 this.onfocus = function()
				 {
						this.blur();
				 }
				}
				a[i].onmouseup = function()
				{
				 this.onfocus = function(){}
				}
				a[i].onmouseout = a[i].onmouseup;
			}			
		},
	setActive: function(site)
		{
			// sets color of links
			$$('.alink').each(function(el)
				{
					 el.setStyle('color', '#333333');
				}
			);
			
			// go norm if leaving galerie
			if ( !site.match(/^galerie/) )
			{
					Page.goNorm();
			}
			
			if ( site == 'weingut' || site == 'weine' || site == 'weinberge' || site == 'keller' )
			{
				$('aweingut').setStyle('color', '#92a924');
				$('pic').setStyle('background-image', 'url(images/pics/weingut.jpg)');
				$('stylesheet').href = 'style_green.css';
				
				// submenu
				if ( site == 'weinberge' )
				{
					$('aweingut').setStyle('color', '#5F88A6');
					$('pic').setStyle('background-image', 'url(images/pics/weinberge.jpg)');
					$('stylesheet').href = 'style_weinberge.css';
				}
				if ( site == 'weine' )
				{
					$('aweingut').setStyle('color', '#a47204');
					$('pic').setStyle('background-image', 'url(images/pics/weine.jpg)');
					$('stylesheet').href = 'style_weine.css';
				}
				if ( site == 'keller' )
				{
					$('aweingut').setStyle('color', '#ee7f00');
					$('pic').setStyle('background-image', 'url(images/pics/keller.jpg)');
					$('stylesheet').href = 'style_keller.css';
				}
			}
			else if ( site == 'gutsausschank' || site == 'garten' || site == 'innenbereich' || site == 'speisekarte' || site == 'beletage' )
			{
				$('agutsausschank').setStyle('color', '#a55a30');
				$('pic').setStyle('background-image', 'url(images/pics/gutsausschank.jpg)');
				$('stylesheet').href = 'style_gutsausschank.css';
				
				// submenu
				if ( site == 'garten' )
				{
					$('agutsausschank').setStyle('color', '#7a0b0e');
					$('pic').setStyle('background-image', 'url(images/pics/garten.jpg)');
					$('stylesheet').href = 'style_garten.css';
				}
				if ( site == 'innenbereich' )
				{
					$('agutsausschank').setStyle('color', '#653e43');
					$('pic').setStyle('background-image', 'url(images/pics/innenbereich.jpg)');
					$('stylesheet').href = 'style_innenbereich.css';
				}
				if ( site == 'beletage' )
				{
					$('agutsausschank').setStyle('color', '#CD8404');
					$('pic').setStyle('background-image', 'url(images/pics/beletage.jpg)');
					$('stylesheet').href = 'style_orange.css';
				}
			}
			else if ( site.match(/^galerie/) )
			{
				$('agalerie').setStyle('color', '#92a924');
				Page.goWide();
				$('stylesheet').href = 'style_green.css';
			}
			else if ( site == 'shop' || site == 'shop_msg' )
			{
				$('ashop').setStyle('color', '#92a924');
				$('pic').setStyle('background-image', 'url(images/pics/weingut.jpg)');
				$('stylesheet').href = 'style_green.css';
			}
			else if ( site == 'events' )
			{
				$('aevents').setStyle('color', '#92a924');
				$('pic').setStyle('background-image', 'url(images/pics/weingut.jpg)');
				$('stylesheet').href = 'style_green.css';
			}
			else
			{
				// default
				$('pic').setStyle('background-image', 'url(images/pics/weingut.jpg)');
				$('stylesheet').href = 'style_green.css';
			}
		},
	goWide: function()
	{
		Page.hide('pic');
		Page.hide('logo-box');
		Page.hide('wappen');
		Page.hide('wappen-overlay');
		Page.hide('wappen-txt');
		Page.hide('ad');
	},
	goNorm: function()
	{
		Page.show('pic');
		Page.show('logo-box');
		Page.show('wappen');
		Page.show('wappen-overlay');
		Page.show('wappen-txt');
		Page.show('ad');
	}
} // end Page

Shop = {
	chkBasket: function()
		{
			new Request.HTML({
				update: $('basket-ad'),
				method: 'post',  
				url: 'ajax/shop_chkBasket.php',
				onRequest: function()
					{
						Page.loaderShow();
					},
				onComplete: function()
					{
						Page.loaderHide();
					}
				}).send();
		},
	delCat: function(id, name)
		{
			if ( confirm('Kategorie "' + name + '" wirklich loeschen?') )
			{
				new Request.HTML({ 
					update: $('ajax-update'),
					method: 'post',  
					url: 'ajax/shop_adminCats.php',
					data: 'mode=del&id=' + id, 
					evalScripts: true,
					onRequest: function()
						{
							Page.loaderShow();
						},
					onComplete: function()
						{
							Page.loaderHide();													
						}			
					}).send();
			}
		},
	delArticle: function(id, name)
		{
			if ( confirm('Artikel "' + name + '" wirklich loeschen?') )
			{
				new Request.HTML({ 
					update: $('ajax-update'),
					method: 'post',  
					url: 'ajax/shop_adminArticles.php',
					data: 'mode=del&id=' + id, 
					evalScripts: true,
					onRequest: function()
						{
							Page.loaderShow();
						},
					onComplete: function()
						{
							Page.loaderHide();													
						}			
					}).send();
			}
		},
	setdefhelp: function(msg)
		{
			defhelp = ( msg ) ? msg : defhelp;
		},
	help: function(msg)
		{			
			var title = '<h2>Wie Sie bestellen:</h2><p>';
			$('help').innerHTML = ( msg ) ? title + msg + '</p>' : title + defhelp;
		}
	
} // end Shop

