function show(e)
{
	if ($defined(e))
	e.style.display = 'block';
	
}

function hide(e)
{
	if ($defined(e))
	e.style.display = 'none';
	
	
}

function str_replace_reg(haystack, needle, replacement) {
	//alert(needle);
		if ($type(needle) == 'regexp')
		{
			var r = needle;
		} else {
		var r = new RegExp("("+needle+")", 'gi');
		}
		return haystack.replace(r,replacement);
}	



String.prototype.startsWith = function(str)
{return (this.match("^"+str)==str)}

 Native.implement([Element, Window, Document], {
	 hasEvent: function(type){
			 var events = this.retrieve('events', {});
			 if (events && events[type]) return true;
			 else return false;
	 }
});

function switch_radio(el)
{
	if (el.getProperty('checked') == true)
	{
		el.removeProperty('checked');
	} else {
		el.setProperty('checked','checked');
	}
}
function display_errors(errorDetails, div)
{
	var errorText = '<b>Please, fix these errors:</b><br /><ul>';
	
	for (e in errorDetails)
	{
		errorText += '<li>'+errorDetails[e] + '</li>';
	}
	
	errorText += '</ul>';
	
	$(div).set({'html': errorText, 'class': 'error', styles: { 'display':'block'}}); 
	
	new Fx.Tween($(div), 20).start('background-color', '#6b1d1d', '#ffc3c3');
}