/****************************************************/
// Javascript Form Helper
// @copyright Fonqi, 23. oct 2008 
/****************************************************/
if(typeof Base != "object")
	throw("Base.js must be included before Form.js!");
	
Form = {};

Form.ClearSelect = function(element)
{
	Base.Get(element).options.length = 0;
}
	
Form.AddOption = function(option, element)
{
    try
    {
        Base.Get(element).add(option, null); // standards compliant; doesn't work in IE
    }
    catch(ex) 
    {
       Base.Get(element).add(option); // IE only
    }   
}

Form.GetSelectedValue = function(element)
{
	var dropDown = Base.Get(element);//document.getElementById(selectId);
    var selectedIndex = dropDown.selectedIndex;
	return dropDown.options[selectedIndex].value;
}

Form.GetSelectedText = function(element)
{ 
    var dropDown = Base.Get(element);
    var selectedIndex = dropDown.selectedIndex;
	return dropDown.options[selectedIndex].text;
}

Form.SetSelectedValue = function(element, value)
{
	var dropDown = Base.Get(element);
	for(i=0; i<dropDown.options.length; i++)
	{
		if(dropDown.options[i].value = value)
			dropDown.options[i].selected = true;			
	}
}

Form.SetSelectedText = function(element, value)
{ 
    var dropDown = Base.Get(element);
	for(i=0; i<dropDown.options.length; i++)
	{
		if(dropDown.options[i].text = value)
			dropDown.options[i].selected = true;			
	}
}

Form.CheckCheckBoxes = function(group)
{
 	var boxes = Base.Get("$"+group);	
	for(var i = 0; i<boxes.length; i++)
	{
		if(boxes[i].getAttribute("type")=="checkbox")
			boxes[i].checked = true;
	}	
}

Form.UnCheckCheckBoxes = function(group)
{
	//var boxes = document.getElementsByTagName("input");
 	var boxes = Base.Get("$"+group);
	for(var i = 0; i<boxes.length; i++)
	{
		if(boxes[i].getAttribute("type")=="checkbox")
			boxes[i].checked = false;			
	}	
}

Form.ToggledCheckBoxesIsChecked = false;
Form.ToggleCheckBoxes = function(group)
{
	//var boxes = document.getElementsByTagName("input");
	var boxes = Base.Get("$"+group);
	if(this.ToggledCheckBoxesIsChecked) 		
	{
		this.ToggledCheckBoxesIsChecked = false;
		this.UnCheckCheckBoxes(group);
	}
	else
	{
		this.ToggledCheckBoxesIsChecked = true;
		this.CheckCheckBoxes(group)
	}
}

Form.LimitTextArea = function(textarea, limit, charsLeftElement, charsElement)
{
	Form.NumCharsLeft = limit;
	var area = Base.Get(textarea);
	var charsLeft = Base.Get(charsLeftElement);
	var chars = Base.Get(charsElement);	
	
	var func = function()
	{
		if(area.value.length > limit)
		{
			area.value = area.value.substr(0, limit);
		}	
		if(Base.Exists(charsLeft))
			charsLeft.innerHTML = limit - area.value.length ;			
		if(Base.Exists(chars))
			chars.innerHTML = area.value.length;
			
	}
	Base.AttachEvent("keyup", area, func); 
}

Form.SetDefaultText = function(_element, _text)
{
	var element = Base.Get(_element);
	element.value = _text;
	element.style.color = "#666";
	var onFocus = function()
	{
		if(element.value == _text)
		{
			element.value = "";
			element.style.color = "#000";
		}
	};
	var onBlur = function()
	{		
		if(Base.IsStringEmpty(element.value))
		{
			element.value = _text;
			element.style.color = "#666";
		}
		else
		{
			element.style.color = "#000";
		}
	}	
	Base.AttachEvent("focus", element, onFocus);
	Base.AttachEvent("blur", element, onBlur);
}
/****************************************************/