/*
 * Page navigation and tabbed menu
 */
Event.onReady(function() {  
	// Get current page
	var page = $('page');  
	if (page)
	{
		var pageName = page.classNames();             
	
		// Get all tabs
		var tabList = $('navigation-tabs');
		if (tabList)
		{
			var tabs = tabList.immediateDescendants();    
			for (var i = 0; i < tabs.length; i++) 
			{   
				// Add className to current page tab
				if (tabs[i].hasClassName(pageName)) 
				{
					tabs[i].addClassName('selected');
				}   
				tabs[i].addClassName('link'); 
				// Make tabs to behave as links
				Event.observe(tabs[i].id, 'click', function(evt) 
				{   
					var tab = Event.findElement(evt, 'li');                 
					var tabLink = tab.immediateDescendants(); 
					if (tabLink.length > 0) 
					{    
						// Tab has link, use it
						var url = tabLink[0].href;   
						document.location = url;     
						Event.stop(evt);  
						return false;				
					}  
				});            
			}
		}
	}
});

/*
 * Laajakaista-asiakkaiden sivut
 */
Event.onReady(function() {  
	// Get current page
	var page = $('customer-pages');  
	if (page) 
	{
		var pageName = page.classNames();             
	
		// Get all tabs
		var tabList = $('customer-navigation');
		if (tabList)
		{
			var tabs = tabList.immediateDescendants();    
			for (var i = 0; i < tabs.length; i++) 
			{   
				// Add className to current page tab
				if (tabs[i].hasClassName(pageName)) 
				{
					tabs[i].addClassName('selected');
				}           
			}
		}
	}
});

SiteSettings = Class.create();      
SiteSettings.prototype = {   
	initialize: function() {
		window.SiteSettings = this;
		var container = $('siteSettings');
		if (container)
		{
			this.load();
			this.container = container;
		}
		else
		{
			this.container = null;
		}
	},
	load: function() {
		jar = new CookieJar({  
		    expires: 108000,
		    path: '/'  
		});
		this.settings = jar.get('siteSettings');
		if (!this.settings)
		{
			this.settings = { openExternalLinks: false }
		}
	},
	save: function() {
		jar = new CookieJar({  
		    expires: 108000,
		    path: '/'  
		});
		jar.put('siteSettings', this.settings);
	},
	initLinkSettings: function() {
		if (this.container && window.SiteLinks)
		{
			var form = $form(
				{id: 'linkSettings' },
				$input(
					{
						id: 'externalLinksInNewWindow',
						type: 'checkbox',
						value: 'on',
						checked: ''
					}
				),
				$label(
					'Avaa linkit uudessa ikkunassa'
				)
			);
			this.container.appendChild(form);
		
			var box = $('externalLinksInNewWindow');
			if (box) {
				box.checked = this.settings.openExternalLinks;
				Event.observe('externalLinksInNewWindow', 'click', function(e) {  
					var box = Event.findElement(e, 'input');
					var active = box.checked;
					window.SiteSettings.settings.openExternalLinks = active;
					window.SiteSettings.save();
					window.SiteLinks.update();
				});
			}
		}
	}
}

SiteLinks = Class.create();
SiteLinks.prototype = {   
	initialize: function() {
		window.SiteLinks = this;
		if (window.SiteSettings)
		{
			window.SiteSettings.initLinkSettings();
			this.update();
		}

	},
	update: function() {
		var links = $$('ul.external li a'); 
		if (window.SiteSettings && window.SiteSettings.settings && window.SiteSettings.settings.openExternalLinks)
		{
			for (var i = 0; i < links.length; i++) {   
		 		if (!links[i].id) {
			    	links[i].id = 'site-link-' + i;
				}
				/* links[i].addClassName('ext'); */
				Event.observe(links[i].id, 'click', function(e) {  
					var link = Event.findElement(e, 'a');     
					var newWindow = window.open(link.href, '_blank');
					if (newWindow)
					{
						newWindow.focus();
						Event.stop(e);
						return false;
					}
					else
					{
						return true;
					}
				});      
			}
		}
		else
		{
			if (!Event.observers)
			{
				for (var i = 0; i < links.length; i++) {   
			 		if (links[i].id) {
						/* links[i].removeClassName('ext'); */
						Event.stopObserving(links[i].id, 'click');
					}
				}
			}
		}
	}
}

Event.onReady(function() {  	
	new SiteSettings();
	new SiteLinks();
});

/*
 * Opens external links in new window
 */
Event.onReady(function() {  
	var links = $$('a.external-link'); 
	for(var i = 0; i < links.length; i++) {   
 		if (!links[i].id) {
	    	links[i].id = 'external-link-' + i;
			links[i].addClassName('ext');
		}
		Event.observe(links[i].id, 'click', function(e) {  
			var link = Event.findElement(e, 'a');     
			var newWindow = window.open(link.href, '_blank');
			if (newWindow)
			{
				newWindow.focus();
				Event.stop(e);
				return false;
			}
			else
			{
				return true;
			}
		});      
	} 
});

/*
 * Set as homepage
 */
Event.onReady(function() {  
	var button = $('set-as-homepage');
	if (document.all) {
		button.show();
		// We have IE6, show link
		Event.observe('set-as-homepage', 'click', function(evt) {   
			var link = Event.findElement(evt, 'a');     
			link.style.behavior='url(#default#homepage)';            
			link.setHomePage(window.location.href);
			Event.stop(evt);  
			return false;
		});
	}
});

Event.onReady(function() {  
	var newsfeeds = $$('div.newsfeed');
	if (newsfeeds)
	{
		for (var i = 0; i < newsfeeds.length; i++) 
		{   
			var feed_id = newsfeeds[i].id.gsub('feed_([0-9]+)','#{1}');
			var feed_url = "/feeds/viewItems/" + feed_id;
			new Ajax.PeriodicalUpdater(newsfeeds[i].id, feed_url, {
			  method: 'get', frequency: 5, decay: 10
			});
		}
	}
});
