
function isemail(s) {
	var filter=/^[A-Za-z][A-Za-z0-9_.]*@[A-Za-z0-9_]+\.[A-Za-z0-9_.]+[A-za-z]$/;
	if (s.length == 0 ) return true;
	if (filter.test(s)) {
		return true;
	}
	else {
		return false;
	}
}	

	function isMail(string){
		var regexp = /^\w+([\.-]?\w+)*@\w+([\.-]?\w+)*(\.\w{2,4})+$/;
		return regexp.test(string);
	}


function clean(s) {
	string = trim(s);
	for (var i=0, output='', valid="abcdefghijklmnopqrstuvwxyzáéíóúäëïöüABCDEFGHIJKLMNOPQRSTUVWXYZÁÉÍÓÚÄËÏÖÜ -"; i<string.length; i++)
	   if (valid.indexOf(string.charAt(i)) != -1)
		  output += string.charAt(i)
	return output;
} 

function left(str, n){
	if (n <= 0)
	    return "";
	else if (n > String(str).length)
	    return str;
	else
	    return String(str).substring(0,n);
}
function right(str, n){
    if (n <= 0)
       return "";
    else if (n > String(str).length)
       return str;
    else {
       var iLen = String(str).length;
       return String(str).substring(iLen, iLen - n);
    }
}

function formatCurrency(num) {
	num = num.toString().replace(/\$|\,/g,'');
	if(isNaN(num))
	num = "0";
	sign = (num == (num = Math.abs(num)));
	num = Math.floor(num*100+0.50000000001);
	cents = num%100;
	num = Math.floor(num/100).toString();
	if(cents<10)
	cents = "0" + cents;
	for (var i = 0; i < Math.floor((num.length-(1+i))/3); i++)
	num = num.substring(0,num.length-(4*i+3))+'.'+
	num.substring(num.length-(4*i+3));
	return (((sign)?'':'-') + '' + num );
//	return (((sign)?'':'-') + '' + num + ',' + cents);
}

function trim(str) {
	return str.replace(/^\s+|\s+$/g,"");
}
function ltrim (str) {
	return str.replace(/^\s+/,"");
}
function rtrim(str) {
	return str.replace(/\s+$/,"");
}

function titulo(str) {
  return str.substring(0,1).toUpperCase() + str.substring(1,str.length).toLowerCase();
} 

function encode_utf8( str ) {
  return unescape( encodeURIComponent( str ) );
}

function decode_utf8( str ) {
  return decodeURIComponent( escape( str ) );
}

function encodeToHex(str){
	var r="";
	var e=str.length;
	var c=0;
	var h;
	while(c<e){
		h=str.charCodeAt(c++).toString(16);
		while(h.length<2) h=""+h;
		r+=h;
	}
	return r;
}

function decodeFromHex(str){
    var r="";
    var e=str.length;
    var s;
    while(e>=0){
        s=e-3;
        r=String.fromCharCode("0x"+str.substring(s,e))+r;
        e=s;
    }
    return r;
}

function print_r(theObj){
  if(theObj.constructor == Array ||
	theObj.constructor == Object){
    document.write("<ul>")
    for(var p in theObj){
      if(theObj[p].constructor == Array||
         theObj[p].constructor == Object){
		document.write("<li>["+p+"] => "+typeof(theObj)+"</li>");
        document.write("<ul>")
        print_r(theObj[p]);
        document.write("</ul>")
      } else {
		document.write("<li>["+p+"] => "+theObj[p]+"</li>");
      }
    }
    document.write("</ul>")
  }
}