//-----------------------------------------------
//	CautaMedic.ro
//	Copyright (c) 2007 - 2008 Sysmart S.R.L.
//	
//	This code is the property of Sysmart S.R.L.
//	Do not copy, distribute, or modify this code. 
//	Un-licensed use of this code is prohibited.
//-----------------------------------------------

// disables form submission on enter 
function all_noenter()
{
	if (document.getElementsByTagName)
	{ 
		var objs = document.getElementsByTagName("input");
		for (var i=0; objs[i]; i++)
		{
			if(objs[i].className.indexOf("skip") == -1 && objs[i].className != "but" && objs[i].className != "but-sml")
			{
				ie ? objs[i].attachEvent('onkeypress', noenterFilter) : objs[i].addEventListener('keypress', noenterFilter, false);
			}
		}
		
		objs = document.getElementsByTagName("checkbox");
		for (i=0; objs[i]; i++)
		{
			ie ? objs[i].attachEvent('onkeypress',noenter) : objs[i].addEventListener('keypress',noenter,false);
		}
							
		objs = document.getElementsByTagName("select");
		for (i=0; objs[i]; i++)
		{
			ie ? objs[i].attachEvent('onkeypress',noenter) : objs[i].addEventListener('keypress',noenter,false);
		}	
		
		objs = document.getElementsByTagName("radio");
		for (i=0; objs[i]; i++)
		{
			ie ? objs[i].attachEvent('onkeypress',noenter) : objs[i].addEventListener('keypress',noenter,false);
		}	
	}
}

function on_focus()
{
	if(!this)
		return;
		
	if (this.focus)
		this.blur();	
}

//eliminates the firefox box around hrefs, buttons when clicked
//onFocus="if(this.focus)this.blur();"	
//todo...find a way to do the same for dropdowns...seems impossible
function all_nobox()
{ 	
	if (ie)
		return;
	
	var o = null;

	var els = document.getElementsByTagName('a');
	for(var i=0; i<els.length; i++)
	{	
		o = els[i];
		o.addEventListener('focus',on_focus,false);		
	}
	
	els = getElementsByClassName(document, 'input', 'but');
	for(i=0; i<els.length; i++)
	{	
		o = els[i];
		o.addEventListener('focus',on_focus,false);		
	}
	
	els = getElementsByClassName(document, 'input', 'but-sml');
	for(i=0; i<els.length; i++)
	{	
		o = els[i];
		o.addEventListener('focus',on_focus,false);		
	}
}

//turns autocomplete off on all inputs and by this fixes known mozilla bug: error when calling focus() blur() in onKeyUp/Down events
function all_autocompleteoff()
{
	if (document.getElementsByTagName){ 
		var objs = document.getElementsByTagName("input");
		for (var i=0; objs[i]; i++)
			objs[i].setAttribute("autocomplete","off");
	}	
}

function noenterFilter(e)
{
	e = fixEvent(e);
	var o = eventSource(e);
	
	var chars = o.getAttribute('_filterChars');
	var charsNot = o.getAttribute('_filterCharsNot');
	var ret = noenter(e);
	
	if(chars != null)
		ret = filterChars(e, chars, true) && ret;
	
	if(charsNot != null)
		ret = filterChars(e, charsNot, false) && ret;
	
	if(!ret){
		if (e.preventDefault) 
		{
			e.preventDefault();
		} 
		else 
		{
			e.returnValue = false;
		}
	}
		
	return ret;
}

function noenter(e) 
{
	e = (e) ? e : ((window.event) ? window.event : "")
	if (!e)
		return;
		
	var k = e.which ? e.which : e.keyCode;
	
	if (k == 13)
	{
		if (e.preventDefault) 
		{
			e.preventDefault();
			e.stopPropagation();
		} 
		else 
		{
			e.keyCode = 0;
			e.returnValue = false;
		}
	}

	return !(k == 13); 
}


function all_events(){
	var objs = getElementsByClassName(document, '*', 'inputform');
	for(i=0; i<objs.length; i++)
	{	
		o = objs[i];
		ie ? o.attachEvent('onfocus', event_focus) 			: o.addEventListener('focus',event_focus,false);	
		ie ? o.attachEvent('onblur', event_blur) 			: o.addEventListener('blur',event_blur,false);	
		ie ? o.attachEvent('onmouseover', event_mouseover) 	: o.addEventListener('mouseover',event_mouseover,false);	
		ie ? o.attachEvent('onmouseout', event_mouseout) 	: o.addEventListener('mouseout',event_mouseout,false);	
	}
	
	objs = getElementsByClassName(document, '*', 'inputform-medicard');
	for(i=0; i<objs.length; i++)
	{	
		o = objs[i]; 
		ie ? o.attachEvent('onfocus', event_focus2) 		: o.addEventListener('focus',event_focus2,false);	
		ie ? o.attachEvent('onblur', event_blur2) 			: o.addEventListener('blur',event_blur2,false);	
		ie ? o.attachEvent('onmouseover', event_mouseover2) : o.addEventListener('mouseover',event_mouseover2,false);	
		ie ? o.attachEvent('onmouseout', event_mouseout2) 	: o.addEventListener('mouseout',event_mouseout2,false);	
	}
}

function event_focus(e, color)
{		
	e = fixEvent(e);
	var o = eventSource(e);
	if(!o)
		return;
	var tmp = "";
	if(o.style && o.style.borderColor)
		tmp = o.style.borderColor;
	if(tmp == ""){
		tmp = !color ? '#cccccc' : '#365276';
	}
	if(!color)
		color = '#8a8a8a';
	o.setAttribute("_oldBorderColor",tmp);
	o.style.borderColor = color;
}

function event_focus2(e)
{
	event_focus(e, '#a8bbd4');
}

function event_blur(e, color)
{		
	e = fixEvent(e);
	var o = eventSource(e);
	if(!o)
		return;
	var tmp = "";
	if(o.style && o.style.borderColor)
		tmp = o.style.borderColor;
	if(!color)
		color = '#cccccc';
	o.setAttribute("_oldBorderColor",tmp);
	o.style.borderColor = color;
}

function event_blur2(e)
{
	event_blur(e, '#365276');
}

function event_mouseover(e, color)
{			
	e = fixEvent(e);
	var o = eventSource(e);
	if(!o)
		return;
	var tmp = "";
	if(o.style && o.style.borderColor)
		tmp = o.style.borderColor;
	if(tmp == ""){
		tmp = !color ? '#cccccc' : '#365276';
	}
	if(!color)
		color = '#8a8a8a';		
	o.setAttribute("_oldBorderColor",tmp);//alert(1 + " " + tmp);
	o.style.borderColor = color;
}

function event_mouseover2(e)
{
	event_mouseover(e, '#a8bbd4');
}

function event_mouseout(e, color)
{		
	e = fixEvent(e);
	var o = eventSource(e);
	if(!o)
		return;
	var tmp = o.getAttribute("_oldBorderColor"); 
	if(!color)
		color = '#cccccc';
	if(!tmp)
		tmp = "";
	if(tmp != "")
		o.style.borderColor = tmp;  //alert(2 + " " + tmp);
}

function event_mouseout2(e)
{
	event_mouseout(e, '#365276');
}

function saveScrollPos()
{
	var o = document.getElementById('__SCROLLPOS');
	if (o)
		o.value = getDocumentScrollTop();
}

function refreshScrollPos()
{
	var o = document.getElementById('__SCROLLPOS');
	if (o) 
		setDocumentScrollTop(o.value);
}

function do_all()
{		
	ie ? document.body.attachEvent("onscroll",saveScrollPos) : document.addEventListener("scroll",saveScrollPos,false);			
	
	refreshScrollPos();
	
	if(!ie)
		all_nobox();
	
	all_autocompleteoff();
	
	all_events();
		
	all_noenter();	
}
ie ? window.attachEvent('onload', do_all) : window.addEventListener('load', do_all, false);