var watchPageLeave = false; //true, false - zapnutie alebo vypnutie kontroly kliknutia na zvoleny submit  vid.allowedOrderSubmit
var allowedPageLeaveElement = null; // element ktory chceme aby boli clicknuty
var pageLeaveMessage = 'Naozaj chcete íst na túto linku?' // notifikacna sprava


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


window.onbeforeunload = function () {
	if (watchPageLeave)
	{
		return pageLeaveMessage;
	}
}

//kontrola submitnutia objednavky v poslednom kroku, aby nebola zbytocna strata klienta
function validatePageLeaveClick(event)
{
	if (!event) var event = window.event;

	var tg = (window.event) ? event.srcElement : event.target;
	var reltg = $((event.relatedTarget) ? event.relatedTarget : event.toElement);

	if (tg != allowedPageLeaveElement)
	{
		alert(pageLeaveMessage);
        event.stop();
	}
    else
    {
        watchPageLeave = false;
    }
}

function runAutoFunctions() 
{ 
	autoBlur();
	autoOver();	
	autoTooltip();
    if(watchPageLeave)
    {
        pageLeaveClick();
    }
	
	
	var option = {
		ajaxUse: false,			
		ajaxBubbleId: 'userMenuOptions',
		ajaxInvokerIdPrefix: 'userMenuLink',	
		useCSSPosition: true,								
		offsetX: 0,
		offsetY: 0 
	}
	Bubbles.create('userMenuLink',option);
	
}

function pageLeaveClick()
{
	$$('a', 'input[type=submit]', 'input[type=image]').each
	(
		function(element)
		{
			element.observe('click',validatePageLeaveClick);
		}
	);
}

function autoBlur()
{
	$$('a', 'input[type=checkbox]', 'input[type=submit]', 'input[type=image]').each
	(
		function(element) 
		{
			element.observe('focus', blur);
		}
	);
}

function blur(event)
{
	Event.element(event).blur();
}


function autoOver()
{
	$$('.autoOver').each
	(
		function(element) 
  	    {
		  	 element.onmouseover = mouseOver;
		 	 element.onmouseout  = mouseOut;
   	    }
   	);
}

function mouseOver(obj)
{
	var element = obj;
	if((element == null || element.type == "mouseover") && this)
	{
		element = this;
	}
	
	if(element.tagName == "INPUT" || element.tagName == "IMG")
	{
  		var image_src       = element.src;
  		var extension_index = image_src.lastIndexOf('.');
  		element.src         = image_src.substring(0,extension_index) + '-over' + image_src.substring(extension_index);
	}
	
	if(!element.hasClassName('over'))
	{
		element.addClassName('over');
	}
	
}

function mouseOut(obj)
{
	var element = obj;
	if((element == null || element.type == "mouseout") && this)
	{
		element = this;
	}
	
	if(element.tagName == "INPUT" || element.tagName == "IMG")
	{
		var image_src = element.src;
  		element.src   = image_src.replace('-over\.','\.');
	}
	
	if(element.hasClassName('over'))
	{
		element.removeClassName('over');
	}
	
}


function blur(event)
{
	Event.element(event).blur();
}

function autoTooltip()
{
	toggleTooltips();
	
	$$('html').first().observe('click', domNodeClicked);
	$$('.autoTooltip').each
	(
		function(element) 
		{
			//console.log(element);
			var tooltip = element.select('.tooltip').first();
			element.select('input', 'textarea').each
			(
				function(tooltip, input)
				{
					input.observe('focus', toggleTooltips);
//					input.onfocus = function(input, tooltip) {toggleTooltips(input) }.bind(this, input, tooltip);
				}.bind(this, tooltip)
			)
		}
	);
}
function domNodeClicked(event)
{
	var element = Event.element(event);
	//console.log(element);
	toggleTooltips(event);
}

function toggleTooltips(event)
{ 
	var focusedElement = event ?  Event.element(event) : null;
	
	$$('.autoTooltip').each
	(
		function(focusedElement, element) 
		{
			var tooltip = element.select('.tooltip').first();
			element.select('input', 'textarea').each
			(
				function(tooltip, focusedElement, input)
				{
					if(input == focusedElement)
					{
						tooltip.hide();
						$(focusedElement.parentNode).addClassName('active');
					}
					else
					{
						tooltip.hide();
						if(!input.value)
						{
							tooltip.show();
						}
						$(input.parentNode).removeClassName('active');
					}
				}.bind(this, tooltip, focusedElement)
			)
		}.bind(this, focusedElement)
	);
}
 


