function isValidEmail(str){
	if(str.length<6)return false;
	if(str.indexOf(" ")!=-1)return false;
	return (str.indexOf(".") > 2) && (str.indexOf("@") > 0);
}

function html_entity_decode(str) {
  var ta=document.createElement("textarea");
  ta.innerHTML=str.replace(/</g,"&lt;").replace(/>/g,"&gt;");
  return ta.value;
}

function $(o){return document.getElementById(o)}

function removeElement(el){
	if(el.parentNode && el.parentNode.removeChild) {
		el.parentNode.removeChild(el);
	}
}

//trim funcs de: http://blog.stevenlevithan.com/archives/faster-trim-javascript
String.prototype.trim =
function() {
		var str = this.replace(/^\s\s*/, ''),
                ws = /\s/,
                i = str.length;
        while (ws.test(str.charAt(--i)));
        return str.slice(0, i + 1);
}

//ajax request object
var request = false;
try { request = new XMLHttpRequest(); }
catch (tryMS1) { try { request = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (tryMS2) { try { request = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (failed) { request = false; } } } 
if (!request){ alert("Error al inicializar XMLHttpRequest."); }

//ajax rq object
var rq = false;
try { rq = new XMLHttpRequest(); }
catch (tryMS1) { try { rq = new ActiveXObject("Msxml2.XMLHTTP"); }
catch (tryMS2) { try { rq = new ActiveXObject("Microsoft.XMLHTTP"); }
catch (failed) { rq = false; } } } 
if (!rq){ alert("Error al inicializar XMLHttpRequest."); }
