var ProtoTypeExtraElementMethos = 
{
	//Get html options selected text
	getSelectedText: function(element)
	{
		var el = $(element);
		var i = el.selectedIndex;
		if (el.options.length > 0) 
		{
			if (el.options[i]) 
			{
				return el.options[i].text;
			}
		}
		return false;
	},
	get: function(element)
	{
		var element = $(element);
		if (element.tagName.toLowerCase() == "input" ||
		element.tagName.toLowerCase() == "textarea" ||
		element.tagName.toLowerCase() == "select" ||
		element.tagName.toLowerCase() == "radio" ||
		element.tagName.toLowerCase() == "checkbox" ||
		element.tagName.toLowerCase() == "hidden") 
		{
			return element.value;
		}
		else 
		{
			return element.innerHTML;
		}
	},
	
	put: function(element, value, params)
	{
		if (!params) 
		{
			params = {};
		}
		var element = $(element);
		if (element.tagName.toLowerCase() == "input" || element.tagName.toLowerCase() == "textarea") 
		{
			if (typeof value == "object") 
			{
				if (value == false || value == null || value == true) 
				{
					value = "";
				}
				else 
				{
					value = value.innerHTML;
				}
			}
			element.value = value;
		}
		else 
		{
			if (typeof value == "object") 
			{
				if (value == false || value == null || value == true) 
				{
					element.innerHTML = "";
				}
				else 
				{
					element.insert(value)
				}
			}
			else 
			{
				if (params.maintainWidth) 
				{
					element.style.width = element.getWidth() + "px";
					element.style.overflow = "auto";
				}
				element.update(value);
			}
		}
		if (params.doNice) 
		{
			NiceForm.doNice(element);
		}
	},
	setValue: function(element, value)
	{
		$(element).value = value;
	},
	getValue: function(element)
	{
		var el = $(element);
		if (el) 
		{
			if (el.tagName.toLowerCase() == "input") 
			{
				return el.value;
			}
			else 
			{
				alert("aaaaaaaaaa");
			}
		}
	},
	
	isChecked : function(element)
	{
		var el = $(element);
		if (el)
		{
			if (el.checked == true)
			{
				return true;
			}
			else
			{
				return false;
			}
		}
		return false;
	},
	
	setLeft: function(element, value)
	{
		var element = $(element);
		element.style.left = value + "px";
	},
	
	replaceClassName: function(element, fromClassName, toClassName)
	{
		var element = $(element);
		element.removeClassName(fromClassName);
		element.addClassName(toClassName);
	},
	
	appendChildAsFirst: function(element, what, extraElement)
	{
		if (extraElement) 
		{
			var el = $(extraElement);
		}
		else 
		{
			var el = $(element);
		}
		el.insertBefore(what,{position : "after"});
	},
	
	setWidth: function(element, width)
	{
		width = width.toString().replace("px", "");
		$(element).style.width = width + "px";
	},
	
	setHeight: function(element, height)
	{
		height = height.toString().replace("px", "");
		$(element).style.height = height + "px";
	},
	
	increaseWidth: function(element, byNr)
	{
		element = $(element);
		var width = element.getWidth();
		newWidth = width + byNr;
		$(element).style.width = newWidth + "px"
	},
	
	setParam: function(element, paramName, value)
	{
		var el = $(element);
		var paramName = paramName.toString().toLowerCase();
		if (paramName == "class") 
		{
			el.className = value;
		}
		else if (paramName == "cellspacing" && Prototype.Browser.IE) 
		{
			el.cellSpacing = value
		}
		else if (paramName == "cellpadding" && Prototype.Browser.IE) 
		{
			el.cellPadding = value
		}
		else if (paramName == "onclick") 
		{
			if (typeof value == "function") 
			{
				el.onclick = value
			}
			else 
			{
				el.writeAttribute("onclick", value)
			}
		}
		else if (paramName == "ondblclick") 
		{
			if (typeof value == "function") 
			{
				el.ondblclick = value
			}
			else 
			{
				el.writeAttribute("ondblclick", value)
			}
		}
		else if (paramName == "onmouseover") 
		{
			if (typeof value == "function") 
			{
				el.onmouseover = value
			}
			else 
			{
				el.writeAttribute("onmouseover", value)
			}
		}
		else if (paramName == "onmouseout") 
		{
			if (typeof value == "function") 
			{
				el.onmouseout = value
			}
			else 
			{
				el.writeAttribute("onmouseout", value)
			}
		}
		else if (paramName == "onmousedown") 
		{
			if (typeof value == "function") 
			{
				el.onmousedown = value
			}
			else 
			{
				el.writeAttribute("onmousedown", value)
			}
		}
		else if (paramName == "onmouseup") 
		{
			if (typeof value == "function") 
			{
				el.onmouseup = value
			}
			else 
			{
				el.writeAttribute("onmouseup", value)
			}
		}
		else 
		{
			el.writeAttribute(paramName, value);
		}
	},
	posLeft: function(element)
	{
		var element = $(element);
		var pos = element.cumulativeOffset();
		return pos[0];
	},
	posRight: function(element)
	{
		var element = $(element);
		var pos = element.cumulativeOffset();
		return pos[0] + element.getWidth();
	},
	posTop: function(element)
	{
		var element = $(element);
		var pos = element.cumulativeOffset();
		return pos[1];
	},
	posBottom: function(element)
	{
		var element = $(element);
		var pos = element.cumulativeOffset();
		return pos[1] + element.getHeight();
	},
	clonePos: function(target, source, posWhere)
	{
		var source = $(source);
		var target = $(target);
		if (target.style.position) 
		{
			if (target.style.position != "absolute") 
			{
				target.absolutize();
			}
		}
		
		
		var VsetLeft = true;
		var VsetTop = true;
		var VsetWidth = true;
		var VsetHeight = true;
		var VoffsetLeft = 0;
		var VoffsetTop = 0;
		
		
		var sourceDim = source.getDimensions();
		var sourceMiddle = sourceDim.height / 2;
		var sourceCenter = sourceDim.height / 2;
		
		var targetDim = target.getDimensions();
		var targetMiddle = targetDim.height / 2;
		var targetCenter = targetDim.height / 2;
		
		var sourcePose = source.cumulativeOffset();
		var x = sourcePose[0];
		var y = sourcePose[1]
		var x1 = x + source.getWidth();
		var y1 = y + source.getHeight();
		var top = 0;
		var left = 0;
		
		if (posWhere == "rightMiddle") 
		{
			left = x1;
			top = y1 - sourceMiddle - targetMiddle;
		}
		else if (posWhere == "innerTopRight") 
		{
			left = x1 - targetDim[0];
			top = y1 - targetDim[1];
		}
		target.style.left = left + "px";
		target.style.top = top + "px";
		
		return target;
	},
	
	last: function(el)
	{
		var children = $(el).childElements();
		return $(children[children.length - 1])
	}
	
	
}
Element.addMethods(ProtoTypeExtraElementMethos)
String.prototype.toNumber = function()
{
	return this.replace(/,/g, ".");
}
