$(function()
{
	$('#osaaminen_slideshow').cycle()
});

// If user agent understands DOM, call these functions after page load
if (document.getElementById && document.createTextNode)
{
	addLoadEvent(hide_us);
	// addLoadEvent(stripe_us);
	addLoadEvent(unobtrusive_links);
	// addLoadEvent(unobtrusive_form_elements);
	// addLoadEvent(unobtrusive_extend);
}


/**
* By Simon Willison @ http://simonwillison.net/2004/May/26/addLoadEvent/
*/
function addLoadEvent(func)
{
	var oldonload = window.onload;
	if (typeof window.onload != 'function')
	{
		window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			if (oldonload)
			{
				oldonload();
			}
			func();
		}
	}
}


/**
* Unobtrusively handle certain links
* ujs_back: history.back(-1)
*/
function unobtrusive_links()
{
	var links = document.getElementsByTagName('a');
	
	for (var i = 0; i < links.length; i++)
	{
		if (/ujs_back/.test(links[i].className))
		{
			links[i].onclick = function() { history.back(-1); return false; }
		}
		else if (/ujs_debug_oou/.test(links[i].className))
		{
			links[i].onclick = function() { alert('Tämä ominaisuus ei ole vielä käytössä.'); return false; }
		}
		else if (/ujs_toggle_content/.test(links[i].className))
		{
			links[i].onclick = function() { return toggle_content(this); }
			// as[i].onkeypress = function() { return toggle_visibility(this); }
		}
		else if (/ujs_toggle_me/.test(links[i].className))
		{
			links[i].onclick = function() { return toggle_me(this); }
			// as[i].onkeypress = function() { return toggle_visibility(this); }
		}
	}
}


/**
*
*/
function unobtrusive_form_elements()
{
	var inputs = document.getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++)
	{
		if (/ujs_form_text/.test(inputs[i].className))
		{
			inputs[i].onfocus = function() { return style_form_text_element(this); }
			inputs[i].onblur = function() { return style_form_text_element(this); }
		}
	}
	
	var textareas = document.getElementsByTagName('textarea');
	for (var j = 0; j < textareas.length; j++)
	{
		if (/ujs_form_text/.test(textareas[j].className))
		{
			textareas[j].onfocus = function() { return style_form_text_element(this); }
			textareas[j].onblur = function() { return style_form_text_element(this); }
		}
	}
}


/**
*
*/
function unobtrusive_extend()
{
	var inputs = document.getElementsByTagName('input');
	for (var i = 0; i < inputs.length; i++)
	{
		if (/ujs_extend/.test(inputs[i].className))
		{
			inputs[i].onfocus = function() { return extend_input(this, 'focus'); }
			// inputs[i].onblur = function() { return extend_input(this, 'blur'); }
		}
	}
}


/**
*
*/
function extend_input(o, action)
{
	var show_me = o.nextSibling.nextSibling;
	
	if (action == 'focus')
	{
		show_me.style.display = 'inline';
	}
	else if (action == 'blur')
	{
		if (!o.checked)
		{
			show_me.style.display = 'none';
		}
	}
	
	return true;
}


/**
*
*/
function style_form_text_element(o)
{
	var border_color = o.style.borderColor;
	
	if (border_color == '#909090')
	{
		o.style.border = '1px solid #c6c6c6';
		o.style.color = '#898d8d';
	}
	else
	{
		o.style.border = '1px solid #909090';
		o.style.color = '#656567';
	}
	
	return true;
}


/**
* Hides all div elements with class 'hide_me'
*/
function hide_us()
{
	var divs, spans, i;
	divs = document.getElementsByTagName('div');
	spans = document.getElementsByTagName('span');
	
	for (i = 0; i < divs.length; i++)
	{
		if (/ujs_hide/.test(divs[i].className))
		{
			divs[i].style.display = 'none';
		}
	}
	
	for (var j = 0; j < spans.length; j++)
	{
		if (/ujs_hide/.test(spans[j].className))
		{
			spans[j].style.display = 'none';
		}
	}
}


/**
* Stripe all list elements with class 'stripe_me'
*/
function stripe_us()
{
	var uls = document.getElementsByTagName('ul');
	var ols = document.getElementsByTagName('ol');
	
	for (var i = 0; i < uls.length; i++)
	{
		if(/ujs_stripe/.test(uls[i].className))
		{
			var id = uls[i].getAttribute('id');
			stripe(id);
		}
	}
	
	for (var j = 0; j < ols.length; j++)
	{
		if(/ujs_stripe/.test(ols[j].className))
		{
			var id = ols[j].getAttribute('id');
			stripe(id);
		}
	}
}


/**
* Toggles
*/
function toggle_content(o)
{
	// Get link address and extract id from it
	var link = o.href;
	var element_id = link.substring(link.lastIndexOf('#') + 1);
	
	// Check if the desired element exists
	var element = document.getElementById(element_id);
	if (element)
	{
		// Retrieve its parent and hide all or her children
		var parent = element.parentNode;
		var all_children = parent.getElementsByTagName('div');
		for (var i = 0; i < all_children.length; i++)
		{
			all_children[i].style.display = 'none';
		}
		
		// Display the desired element
		element.style.display = 'block';
	}
	
	// Change link's style
	alter_navigation(o, 'asiakkaat-cases', 'selected');
	
	return false;
}


/**
* Toggles element with id from current link
*/
function toggle_me(o)
{
	// Get link address and extract id from it
	var link = o.href;
	var element_id = link.substring(link.lastIndexOf('#') + 1);
	
	// Check if the desired element exists
	var element = document.getElementById(element_id);
	if (element)
	{
		// Toggle visibility
		if (element.style.display == 'none')
		{
			element.style.display = 'block';
			o.parentNode.style.backgroundImage = "url('./inc/gfx/site_fold_minus.gif')";
		}
		else
		{
			element.style.display = 'none';
			o.parentNode.style.backgroundImage = "url('./inc/gfx/site_fold_plus.gif')";
		}
	}
	
	return false;
}


/**
*
*/
function alter_navigation(o, nav_id, active_class)
{
	// Get link address and extract id from it
	var link = o.href;
	var element_id = link.substring(link.lastIndexOf('#') + 1);
	
	// Get navigation and all of its items (li) for looping
	var navigation = document.getElementById(nav_id);
	if (navigation)
	{
		var items = navigation.childNodes;
		for (var i = 0; i < items.length; i++)
		{
			items[i].className = ''; // Empty all class names
			
			// If current link was for linked item, add class name
			//var li_link = items[i].firstChild.href;
			//var li_link_id = li_link.substring(li_link.lastIndexOf('#') + 1);
			//if (element_id == li_link_id)
			//{
				//items[i].className = active_class;
				//alert(li_link);
			//}
		}
		
		o.parentNode.className = active_class;
	}
	
	return false;
}


/**
* Toggles element and its sibling's visibility.
* Element in question will become visible and all of its siblings hidden.
* Also alters the navigation styles to create visual clue as to where the user is.
*/
function toggle_group_content(o)
{
	// Get link address and extract id from it
	var link = o.href;
	var element_id = link.substring(link.lastIndexOf('#') + 1);
	
	// Check if the desired element exists
	var element = document.getElementById(element_id);
	if (element)
	{
		// Retrieve its parent and hide all or her children
		var parent = element.parentNode;
		var all_children = parent.getElementsByTagName('div');
		for (var i = 0; i < all_children.length; i++)
		{
			all_children[i].style.display = 'none';
		}
		
		// Display the desired element
		element.style.display = 'block';
	}
	
	// Finally change link's style
	// First get all links in current navigation
	var link_mother = o.parentNode.parentNode;
	if (link_mother)
	{
		// Retrieve all links in navigation and clear class names
		var link_siblings = link_mother.getElementsByTagName('li');
		for (var i = 0; i < link_siblings.length; i++)
		{
			link_siblings[i].className = '';
		}
		
		// Finally change the class name of the link that was clicked
		o.parentNode.className = 'box_active';
	}
	
	return false;
}


/**
* Loop through list element's items and add "odd" to their class name(s).
* Modified from Jop de Klein's code @ http://validweb.nl/artikelen/javascript/better-zebra-tables/
* which modified David F. Miller's original @ http://www.alistapart.com/articles/zebratables
*/
function stripe(id)
{
	// Flag that keeps track of whether the current item is odd or even
	var even = false;
	
	// Get desired element. If not found, abort.
	var element = document.getElementById(id);
	if (!element)
	{
		return;
	}
	
	// Get all children, loop through them and add class name 'odd' to them
	var lis = element.getElementsByTagName('li');
	for (var i = 0; i < lis.length; i++)
	{
		if (!even)
		{
			lis[i].className += ' odd';
		}
		
		// Flip from odd to even, or vice-versa
		even = !even;
	}
}
