var _$ = function(elmId)
{
	return document.getElementById(elmId);
}

function setEvent(obj, event, fnc)
{
	try {
		return obj.attachEvent(event, fnc);
	} catch (e) {
		return obj.addEventListener(event.replace(/^on/, ''), fnc, false);
	}
}

function InputDefaultValueOnFocus(e)
{
	e = e || window.event;
	elm = e.srcElement || e.target;

	InputDefaultValue.eventFocus(elm);
}

function InputDefaultValueOnBlur(e)
{
	e = e || window.event;
	elm = e.srcElement || e.target;
	
	InputDefaultValue.eventBlur(elm);
}

var InputDefaultValue = {

	'settings' : {},

	'add' : function(elmId, defaultValue, autoClear, required, styles)
	{
	   var elm = _$(elmId);

		if(!elm)
		{
		   return null;
		}
		else
		{
			InputDefaultValue.settings[elm.id] = {
			   'elmId' : elmId,
			   'defaultValue' : defaultValue,
			   'autoClear' : autoClear,
			   'required' : required,
			   'styles' : styles
			};
			
			setEvent(elm, 'onfocus', InputDefaultValueOnFocus);
			setEvent(elm, 'onblur', InputDefaultValueOnBlur);
		
			this.eventBlur(elm);
		}
	},

	'eventBlur' : function(elm)
	{
	   var sett = InputDefaultValue.settings[elm.id];

	   if(!elm.value.length && sett.required)
	   {
	      elm.value = sett.defaultValue;
	   }
	   
	   if(typeof(sett.styles) == 'object' && elm.value == sett.defaultValue)
		{
			var key;
			for(key in sett.styles)
			{
			   elm.style[key] = sett.styles[key];
			}
		}
	},

	'eventFocus' : function(elm)
	{
	   var sett = InputDefaultValue.settings[elm.id];

	   if(elm.value == sett.defaultValue && sett.autoClear)
	   {
	      elm.value = '';
	      if(typeof(sett.styles) == 'object')
			{
				var key;
				for(key in sett.styles)
				{
				   elm.style[key] = '';
				}
			}
	   }
	},
	
	'clear' : function(elm)
	{
		var sett = InputDefaultValue.settings[elm.id];
	   if(elm.value == sett.defaultValue)
	      elm.value = '';
	}
}

function SwitchCollapsable(elm)
{
	var regExp = new RegExp('\/');
	
	if(!elm.title.length)
		elm.title = elm.innerHTML;
		
	var labels = elm.title.split(regExp);	
	
	if(!elm.nextSibling.style.display || elm.nextSibling.style.display == 'none')
	{
		elm.nextSibling.style.display = 'inline';
		elm.innerHTML = labels.length == 2 ? labels[1] : labels[0];
	}
	else
	{
		elm.nextSibling.style.display = 'none';
		elm.innerHTML = labels[0];
	} 	
}

function InitCollapsable()
{
	var elms = document.getElementsByTagName('span');
	
	for(var i = 0; i < elms.length; i++)
	{
		if(elms[i].className == 'collapsable-text')
		{
			var child = elms[i].children[0];
			if(child.tagName && child.tagName == 'SPAN' && child.className == 'more')
			{
				var regExp = new RegExp('\/');
				child.title = child.innerHTML.replace(/"/, '');
									
				var labels = child.title.split(regExp);
				child.innerHTML = labels[0];
			}
		} 
	}
}

try{
	window.attachEvent('onload', InitCollapsable);
} catch(e) {
	window.addEventListener('load', InitCollapsable, false);
}

