/**
* Librería: jQuery
* @package PHPlus
* Document Load
*/
var PATH_FILES = PATH_AB+"/content/_files/";
var PATH_JS = PATH_AB+"/engine/js/";

$(document).ready(function(){
    $(function(){
        $(".date").each(function(i){
            //$(this).datepicker();
            format=$(this).attr('format');
            if(format=='' || format == null)
                format='dd/mm/yy';
            $(this).datepicker({dateFormat: format});
        });
    });
    
/*  
     $("img").each(function(){
	var src_t = $(this).attr("src");
	src_t = src_t.replace(".jpg",",jpg");
	var t_a = $('<a class="img_preview"  href="'+ROOT+'/admin/Imagen'+src_t+'"></a>').appendTo($(this).parent());
	$(this).appendTo(t_a);
	//$(t_a).SexyLightbox();
    });
*/
    
    $(".timepicker").timePicker();
    
/*
    $('.img_preview').Jcrop({
	    aspectRatio: 0
    });
*/
    
    //text editor wysiwyg
    
    $().ready(function() {
        $("textarea[modo='wysiwyg_full']").tinymce({
            // Location of TinyMCE script
            script_url : PATH_JS+'tiny_mce.js',
	    
	    relative_urls : false,
	    remove_script_host : true,


            // General options
            theme : "advanced",
            plugins : "pagebreak,markettoimages,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,advlist",

            // Theme options
            theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
            theme_advanced_buttons2 : "cut,copy,paste,pastetext,pasteword,|,search,replace,|,bullist,numlist,|,outdent,indent,blockquote,|,undo,redo,|,link,unlink,anchor,markettoimages,image,cleanup,help,code,|,insertdate,inserttime,preview,|,forecolor,backcolor",
            theme_advanced_buttons3 : "tablecontrols,|,hr,removeformat,visualaid,|,sub,sup,|,charmap,emotions,iespell,media,advhr,|,print,|,ltr,rtl,|,fullscreen",
            theme_advanced_buttons4 : "insertlayer,moveforward,movebackward,absolute,|,styleprops,|,cite,abbr,acronym,del,ins,attribs,|,visualchars,nonbreaking,template,pagebreak",
            theme_advanced_toolbar_location : "top",
            theme_advanced_toolbar_align : "left",
            theme_advanced_statusbar_location : "bottom",
            theme_advanced_resizing : true,

            // Example content CSS (should be your site CSS)
            content_css : "css/content.css",

            // Drop lists for link/image/media/template dialogs
            template_external_list_url : "lists/template_list.js",
            external_link_list_url : "lists/link_list.js",
            external_image_list_url : "lists/image_list.js",
            media_external_list_url : "lists/media_list.js",

            // Replace values for the template plugin
            template_replace_values : {
                username : "Some User",
                staffid : "991234"
            }
        });
        
        $("textarea[modo='wysiwyg_simple']").tinymce({
            // Location of TinyMCE script
            script_url : PATH_JS+'tiny_mce.js',
	    
	    relative_urls : false,
	    remove_script_host : true,


            // General options
            theme : "advanced",
            plugins : "pagebreak,markettoimages,style,layer,table,save,advhr,advimage,advlink,emotions,iespell,inlinepopups,insertdatetime,preview,media,searchreplace,print,contextmenu,paste,directionality,fullscreen,noneditable,visualchars,nonbreaking,xhtmlxtras,template,advlist",

            // Theme options
            theme_advanced_buttons1 : "save,newdocument,|,bold,italic,underline,strikethrough,|,justifyleft,justifycenter,justifyright,justifyfull,styleselect,formatselect,fontselect,fontsizeselect",
            theme_advanced_buttons2 : "search,replace,|,bullist,numlist,|,blockquote,|,undo,redo,|,link,unlink,anchor,markettoimages,image,cleanup,code,|,preview,|,forecolor,backcolor,|,tablecontrols",
            theme_advanced_toolbar_location : "top",
            theme_advanced_toolbar_align : "right",
            theme_advanced_statusbar_location : "bottom",
            theme_advanced_resizing : true,

            // Example content CSS (should be your site CSS)
            content_css : "css/content.css",

            // Drop lists for link/image/media/template dialogs
            template_external_list_url : "lists/template_list.js",
            external_link_list_url : "lists/link_list.js",
            external_image_list_url : "lists/image_list.js",
            media_external_list_url : "lists/media_list.js",

            // Replace values for the template plugin
            template_replace_values : {
                username : "Some User",
                staffid : "991234"
            }
        });
    });

    
    //uploader
    
    $(function(){
       
    $(".up_file[modo='imagen']").each(function(indx){
            
        var id_t = "up_file_img_"+indx;
        
        $(this).attr('id',id_t);
            
        var tthis = "#"+id_t;
        
        $(tthis).fileUpload({
        'uploader': PATH_FILES+'uploadify/uploader.swf',
        'cancelImg': PATH_FILES+'uploadify/cancel.png',
        'script': PATH_FILES+'uploadify/upload.php',
        'folder': PATH_FILES+'files/',
        'multi': false,
        'displayData': 'speed',
        'fileDesc': 'Archivos de imagen',
        'fileExt': '*.jpg;*.jpeg;*.gif;*.png',
        'onComplete': function(k,h,j,i,l){
            //$(tthis).parent().find(".up_file_btimg").attr("src", settings.folder+j.name);
            $(tthis).parent().find(".fileUploadQueueItem").remove();
            $('<div>').html('<div class="cancel"><a onclick="$(this).parent().parent().remove(); return false;" href="#"><img border="0" src="/content/_files/uploadify/cancel.png"></a></div><img width=\"100px\" class=\"img_preview\" height=\"150px\" src="'+i+'" />').css('width','150px').addClass('fileUploadQueueItem').append($("<input>").attr("type","hidden").attr("name",$(tthis).attr("name")).val(i)).appendTo($(tthis).parent()).append();
	    $('.img_preview', $(tthis)).Jcrop({
					aspectRatio: 1,
					onSelect: updateCoords
				});
            //$("<input>").attr("type","hidden").attr("name",$(tthis).attr("name")).val(settings.folder+j.name).appendTo($(tthis).parent());
        }
        });
        
        $(this).parent().find(".up_file_btup").click(function(){
            $(tthis).fileUploadStart();
        });
        
        $(this).parent().find(".up_file_btcl").click(function(){
            $(tthis).fileUploadClearQueue();
        });
        
    });
    
    $(".up_file[modo='solo']").each(function(indx){
            
        var id_t = "up_file_solo_"+indx;
        
        $(this).attr('id',id_t);
            
        var tthis = "#"+id_t;
        
        $(tthis).fileUpload({
        'uploader': PATH_FILES+'uploadify/uploader.swf',
        'cancelImg': PATH_FILES+'uploadify/cancel.png',
        'script': PATH_FILES+'uploadify/upload.php',
        'folder': PATH_FILES+'files/',
        'multi': false,
        'displayData': 'speed',
        'onComplete': function(k,h,j,i,l){
            //$(tthis).parent().find(".up_file_btimg").attr("src", settings.folder+j.name);
            //$(tthis).parent().find(".up_file_btval").val(settings.folder+j.name);
            $(tthis).parent().find(".fileUploadQueueItem").remove();
            $('<div>').html('<div class="cancel"><a onclick="$(this).parent().parent().remove(); return false;" href="#"><img border="0" src="/content/_files/uploadify/cancel.png"></a></div><span class="fileName">'+i.replace(settings.folder,'')+'</span>').addClass('fileUploadQueueItem').append($("<input>").attr("type","hidden").attr("name",$(tthis).attr("name")).val(i)).appendTo($(tthis).parent()).append();
            
            //$("<input>").attr("type","hidden").attr("name",$(tthis).attr("name")).val(settings.folder+j.name).appendTo($(tthis).parent());
  
        }
        });
        
        $(this).parent().find(".up_file_btup").click(function(){
            $(tthis).fileUploadStart();
        });
        
        $(this).parent().find(".up_file_btcl").click(function(){
            $(tthis).fileUploadClearQueue();
        });
        
    });
    
    $(".up_file[modo='multiple']").each(function(indx){
            
        var id_t = "up_file_multiple_"+indx;
        
        $(this).attr('id',id_t);
            
        var tthis = "#"+id_t;
        
        $(tthis).fileUpload({
        'uploader': PATH_FILES+'uploadify/uploader.swf',
        'cancelImg': PATH_FILES+'uploadify/cancel.png',
        'script': PATH_FILES+'uploadify/upload.php',
        'folder': PATH_FILES+'files/',
        'multi': true,
        'displayData': 'speed',
        'onComplete': function(k,h,j,i,l){
            //$(tthis).parent().find(".up_file_btimg").attr("src", settings.folder+fileName);
            //$("<input>").attr("type","hidden").attr("name",$(tthis).attr("name")+"[]").val(settings.folder+j.name).appendTo($(tthis).parent());
            $('<div>').html('<div class="cancel"><a onclick="$(this).parent().parent().remove(); return false;" href="#"><img border="0" src="/content/_files/uploadify/cancel.png"></a></div><span class="fileName">'+i.replace(settings.folder,'')+'</span>').addClass('fileUploadQueueItem').append($("<input>").attr("type","hidden").attr("name",$(tthis).attr("name")+"[]").val(i)).appendTo($(tthis).parent()).append();
            //$(tthis).parent().find(".up_file_btval").val(settings.folder+j.name);
        }
        });
        
        $(this).parent().find(".up_file_btup").click(function(){
            $(tthis).fileUploadStart();
        });
        
        $(this).parent().find(".up_file_btcl").click(function(){
            $(tthis).fileUploadClearQueue();
        });
        
    });
    
    });
    
    // Value x valor
    var fun_resetval = function(){
    //Select value
    $("select[valor]").each(function(){
	var $_cut;
	if($(this).attr("valor"))
	$_cut = $(this).attr("valor").split(',');
	
	var $elm_tm = this;
	
	$("option",$elm_tm).removeAttr("selected");
	
       $($_cut).each(function(){
       if($("option[value='"+this+"']",$elm_tm).size() > 0){
       $("option[value='"+this+"']",$elm_tm).attr("selected","selected");
       }
       });
       //if($(this).val().toLowercase != $(this).attr("valor").toLowercase)
       //$(this).val("otro");             
    }); 
    
    $("input[type='checkbox'][valor]").each(function(){
       if($(this).val() == $(this).attr("valor"))
       $(this).attr("checked","checked");
       else
       $(this).removeAttr("checked");
    });
    
    $("input[type='radio'][valor]").each(function(){
       if($(this).val() == $(this).attr("valor")){
       $("input[name='"+$(this).attr("name")+"']").removeAttr("checked");
       $(this).attr("checked","checked");
       }else{
       if($("input[name='"+$(this).attr("name")+"']:checked").size() == 0)
       $("input[name='"+$(this).attr("name")+"']").eq(0).attr("checked","checked");
       $(this).removeAttr("checked");
       }
       
    });
    
    }
    
    fun_resetval();
    
    // Reset form
    jQuery.fn.reset = function () {
      $(this).each (function() { this.reset(); });
    }

        $(function(){
        jQuery.fn.jlistbox = function(){
        $("*[list='multiselect']",$(this)).each(function(){
         
        $("li",$(this)).click(function(){
        //if($(this).attr("class") != "")
        //$(this).attr("class","select_item");
     
	
        if($(this).attr("class") == "select_item"){
        $(this).removeAttr("class");
        $(this).find("input").removeAttr("checked");
        }else{
        $(this).attr("class","select_item");
        $(this).find("input").attr("checked","checked");
        }
        });

        var tli = $(this);
        var cortes;
        if($(this).attr("valor")){
        if($(this).attr("valor").indexOf(","))
        cortes = $(this).attr("valor").split(","); 
        else
        cortes = new Array($(this).attr("valor"));
        
        
        $.each(cortes,function(index,valor){
        var corteli = valor;
        $("li",tli).each(function(){   
        if(corteli == $(this).find("input").val()){ 
        $(this).attr("class","select_item");       
        $(this).find("input").attr("checked","checked");
        } 
        });    
        });
        }   
        });
        
        }
         $(this).jlistbox();
    });

    jQuery.fn.plusButton = function(){  
    
    $(this).find(".plusval").click(function(){
       var valnow = parseInt($(this).parent().parent().find("*[inpval]").val()); 
       if(!valnow)
       $(this).parent().parent().find("*[inpval]").val("1");
       else
       $(this).parent().parent().find("*[inpval]").val(valnow+1);
    });
    
    $(this).find(".resval").click(function(){
       var valnow = parseInt($(this).parent().parent().find("*[inpval]").val()); 
       if(!valnow || valnow <= 1)
       $(this).parent().parent().find("*[inpval]").val("1");
       else
       $(this).parent().parent().find("*[inpval]").val(valnow-1);
    });
    
    $(this).find("*[inpval]").keyup(function(){
       var valnow = parseInt($(this).val()); 
       if(!valnow)
       $(this).val("1");
       else
        $(this).val(valnow);
    });
    
   }

   
    
    $(function(){
        $('*[resume]').each(function(){
        
        $(this).css("font-weight","normal");
            
        $(this).jTruncate({
        length: $(this).attr("resume"),
        minTrail: 0,
        ellipsisText: "..."
        });
        
        $("*[class='clearboth']").remove();
        $("*[class='truncate_more']").remove();  
        $("*[class='truncate_ellipsis']").attr("class","");
        });
    });
    
    $(function(){
        $("*[check]").each(function(i){
            var hiddentmp = $(document.createElement("input"));
                $(hiddentmp).attr("value","0");
                $(hiddentmp).attr("type","hidden");
                $(hiddentmp).attr("name",$(this).attr("name"));  
            var checktmp = $(document.createElement("input"));
                $(checktmp).attr("value",$(this).attr("default"));
                $(checktmp).attr("type","checkbox");
                $(checktmp).attr("name",$(this).attr("name"));
            if($(this).attr("value") == $(this).attr("default"))
                $(checktmp).attr("checked","checked");
                
            var contenedor = $(this).parent();
                $(contenedor).append($(hiddentmp));
                $(contenedor).append($(checktmp));
                $(this).remove();
        });
    });
    
    $(function(){
        $("*[tooltip]").each(function(){
            
            
         $(this).mouseover(function(){
         var currentTime_tem = new Date();
         if($(this).attr("id") == "") $(this).attr("id", "tmid_"+currentTime_tem.getTime());
         toolTip(document.getElementById($(this).attr("id")),$(this).attr('tooltip'));  
         });
         
         $(this).mouseout(function(){
         toolTip(document.getElementById($(this).attr("id")),"");    
         });
           
        });  
    });
    
    // Rich edit
    /*
    $(".full-edit").wysiwyg({
        controls: {
          strikeThrough : { visible : true },
          underline     : { visible : true },
          separator00 : { visible : true },
          justifyLeft   : { visible : true },
          justifyCenter : { visible : true },
          justifyRight  : { visible : true },
          justifyFull   : { visible : true },
          separator01 : { visible : true },
          indent  : { visible : true },
          outdent : { visible : true },
          separator02 : { visible : true },
          subscript   : { visible : true },
          superscript : { visible : true },
          separator03 : { visible : true },
          undo : { visible : true },
          redo : { visible : true },
          separator04 : { visible : true },
          insertOrderedList    : { visible : true },
          insertUnorderedList  : { visible : true },
          insertHorizontalRule : { visible : true },
          h4mozilla : { visible : true && $.browser.mozilla, className : 'h4', command : 'heading', arguments : ['h4'], tags : ['h4'], tooltip : "Header 4" },
          h5mozilla : { visible : true && $.browser.mozilla, className : 'h5', command : 'heading', arguments : ['h5'], tags : ['h5'], tooltip : "Header 5" },
          h6mozilla : { visible : true && $.browser.mozilla, className : 'h6', command : 'heading', arguments : ['h6'], tags : ['h6'], tooltip : "Header 6" },
          h4 : { visible : true && !( $.browser.mozilla ), className : 'h4', command : 'formatBlock', arguments : ['<H4>'], tags : ['h4'], tooltip : "Header 4" },
          h5 : { visible : true && !( $.browser.mozilla ), className : 'h5', command : 'formatBlock', arguments : ['<H5>'], tags : ['h5'], tooltip : "Header 5" },
          h6 : { visible : true && !( $.browser.mozilla ), className : 'h6', command : 'formatBlock', arguments : ['<H6>'], tags : ['h6'], tooltip : "Header 6" },
          separator07 : { visible : true },
          cut   : { visible : true },
          copy  : { visible : true },
          paste : { visible : true }
        }
    });
    $(".edit").wysiwyg();
    */

    // Mensajes de error
    if($('.sys-msg').length!=0){
        $(this).oneTime(2000,function(){
            $('.sys-msg').hide('slow');
        })
    }
    if($('.error-msg').length!=0){
        $(this).oneTime(5000,function(){
            $('.error-msg').hide('slow');
        })
    }
    
    // Checkall
    $(".checkall").click(function(){
        $(this).parents('form').find(':checkbox').attr('checked', this.checked);
    });
    
	/**
	 * Función para capturar los formularios por GET
	 * y procesar las variables para enviarlas en formato
	 * correcto.
     * También verifica que el formato de cada input sea el correcto en caso 
     * de que tenga una regla de validación desde el HTML
	 */
	/*
	$("form").submit(function(){
		var uri="";
		var ret=true;
	 	$(this).find("input[type='text'],input[type='password'],textarea,input[type='hidden'],select").each(function(i){
			if(($(this).attr('validate')=="no-empty" || $(this).attr('validate')=="") && this.value==""){
				if($(this).attr('error')!="" && $(this).attr('error')!=null){
					displayError($(this).attr('error'));
				}else{
					displayError("Favor de llenar el campo: "+$(this).attr('name'));
				}
                this.focus();
				ret=false;
				return false;
			}else if($(this).attr('validate')=="email"){
				// Validamos que sea email
				var emailre=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
				if(!emailre.test($(this).attr('value'))){
					if($(this).attr('error')!='' && $(this).attr('error')!=null){
						displayError($(this).attr('error'));
					}else{
						displayError("Favor de introducir una dirección de correo válida");
					}
					this.focus();
					ret=false;
					return false;
				}
			}else if($(this).attr('validate')=="number"){
				// Validamos campo de tipo numerico
				if(isNaN($(this).attr('value')) || $(this).attr('value')==""){
					if($(this).attr('error')!='' && $(this).attr('error')!=null){
						displayError($(this).attr('error'));
					}else{
						displayError("Favor de introducir un valor numérico");
					}
					$(this).attr('value',"");
					this.focus();
					ret=false;
					return false;
				}
			}else if($(this).attr('validate')=="custom" || $(this).attr('validate')=="regex"){
				// Validamos la RegEx
				if($(this).attr('regex')!="" && $(this).attr('regex')!=null){
					var filter=eval("/"+$(this).attr('regex')+"/");
					if(!filter.test($(this).attr('value'))){
						if($(this).attr('error')!='' && $(this).attr('error')!=null){
							displayError($(this).attr('error'));
						}else{
							displayError("Favor de introducir un valor numérico");
						}
						this.focus();
						ret=false;
						return false;
					}
				}
			}
			uri+=this.name+','+this.value+"/";
		});
		if(ret==false)
			return false;
		if($(this).attr("method").toLowerCase()=="post")
			return true;
		if(ret)
			window.location.href=uri;
		return false;
	});
	*/
    
    // Alt
    $("input[alt!='']").each(function(){
        var caption=$(this).attr('alt');
        if(caption!='' && caption!=null){
            if($(this).attr('value')=='' || $(this).attr('value')==null){
                $(this).attr('value',caption);
                $(this).css('color','#cccccc');
            }
            $(this).focus(function(){
                if($(this).attr('value')==caption){
                    $(this).attr('value','');
                    $(this).css('color','black');
                }
            });
            $(this).blur(function(){
                if($(this).attr('value')==''){
                    $(this).css('color','#cccccc');
                    $(this).attr('value',caption);
                }    
            });
        }
    });
});

//Validar formulario 
    
jQuery.fn.jvalidarForm = function(){
    
    $(this).each(function(){
        $(this).submit(function(){
	    
            var rt = true;
            var tform = $(this);
            var formnow = $(this);
            var elementos = $(this).find("input,select,textarea");

            $(elementos).change(function() {
                //

                hideError($(this));

                var streq = $(this).attr("validar");
                var nombre = $(this).parent().find("label").html();
                var msgcam = "campo '"+nombre+"'";
                var msgend = "en la solicitud";
                var corte = "";

                if(!streq)
                    streq = "";

                if(streq.indexOf("norequerido") < 0){
                    if($(this).val() == ""){
                       rt = displayError("El campo es requerido "+msgend,$(this));
                    }
                }

                if(streq.indexOf("urlval") >= 0){
                    if(!($(this).attr("aprobado") == $(this).val())){
                        var url = $(this).attr("url");
                        var valor = $(this).val();
                        var telem = $(this);

                       rt = displayError("Revisando, esperando respuesta...",$(this));
                        $(this).css("background","#F3F781");

                        if(url){
                            $.ajax({
                                url: url,
                                type:"POST",
                                dataType: 'json',
                                data: "texto="+valor,
                                success: function(data){
                                    if(data['res']){
                                        hideError($(telem));
                                        $(telem).attr("aprobado",$(telem).val());
                                        //$(formnow).submit();
                                    } else {
                                        hideError($(telem));
                                        if(data['error'])
                                           rt = displayError(data['error'],$(telem));
                                        else
                                           rt = displayError("El codigo de verificacion ingresado no coincide con la imagen",$(telem));
                                    }
                                }
                            });
                        }
                    }
                }

                if(streq.indexOf("email") >= 0){
                    if($(this).val().indexOf('@')<0){
                       rt = displayError("Por favor introduce un e-mail válido",$(this));
                    }
                    if ( $(this).val().indexOf('.',$(this).val().indexOf('@'))<0 ) {
                       rt = displayError("Por favor introduce un e-mail válido",$(this));
                    }
                }

                if(streq.indexOf("fecha") >= 0){
                    if(!/^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/.test($(this).val())){
                   rt = displayError("Por favor introduce una fecha válida",$(this));
                    }
                }

                if(streq.indexOf("igual[") >= 0){
                    corte = streq.split("igual[");
                    corte = corte[1].split("]");
                    //$("*[name='"+corte[0]+"']",formnow).change(function(){$(telement).change()});
                    if($("*[name='"+corte[0]+"']",formnow).val() != $(this).val()){
                       rt = displayError("Es incorrecto el dato del campo",$(this));
                    }
                }
                if(streq.indexOf("minimo[") >= 0){
                    corte = streq.split("minimo[");
                    corte =corte[1].split("]");
                    if($(this).val().length < parseInt(corte[0])){
                       rt = displayError("El campo debe contener minimo "+corte[0]+" caracteres",$(this));
                    }
                }
            });
            $(elementos).blur(function(){
                $(this).change();
            });

            $(elementos).change();

            if($("*[error_camp]",$(this)).length){
                $("*[error_camp]:first",$(this)).focus();
                alert("Error en: "+$("*[error_camp]:first",$(this)).attr("name"));
                return false;
            }

            return rt;
        });
    });
}

function hideError(element){
    $(element).each(function(){
        $("*[tooltip_msg='"+$(this).attr("numtooltip")+"']").remove();
    });                        
    $(element).removeAttr("error_camp");
    $(element).css("background","");
}

/**
 * Librería: MooTools
 * Document Load
 * Descomentar la función si se tiene
 * habiliada la librería mootools (comentar la función de arriba)
 */
/*
window.addEvent('domready',function(){
	$(document.body).getElements("form").addEvent('submit',function(){
		var uri='';
		var ret=true;
		$each(this.getElements("input[type=text],input[type=password],textarea,input[type=hidden]"),function(item,index){
			if((item.get('validate')=="no-empty" || item.get('validate')=="empty") && item.get('value')==""){
				// Validamos campo vacío
				if(item.get('error')!='' && item.get('error')!=null){
					displayError(item.get('error'));
				}else{
					displayError("Favor de llenar el campo: "+item.get('name'));
				}
				item.focus();
				ret=false;
				return false;
			}else if(item.get('validate')=="email"){
				// Validamos campo de tipo email
				var emailre=/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
				if(!emailre.test(item.get('value'))){
					if(item.get('error')!='' && item.get('error')!=null){
						displayError(item.get('error'));
					}else{
						displayError("Favor de introducir una dirección de correo válida");
					}
					item.focus();
					ret=false;
					return false;
				}
			}else if(item.get('validate')=="number"){
				// Validamos campo de tipo numerico
				if(isNaN(item.get('value')) || item.get('value')==""){
					if(item.get('error')!='' && item.get('error')!=null){
						displayError(item.get('error'));
					}else{
						displayError("Favor de introducir un valor numérico");
					}
					item.set('value',"");
					item.focus();
					ret=false;
					return false;
				}
			}else if(item.get('validate')=="custom" || item.get('validate')=="regex"){
				// Validamos la RegEx
				if(item.get('regex')!="" && item.get('regex')!=null){
					var filter=eval("/"+item.get('regex')+"/");
					if(!filter.test(item.get('value'))){
						if(item.get('error')!='' && item.get('error')!=null){
							displayError(item.get('error'));
						}else{
							displayError("Favor de introducir un valor numérico");
						}
						item.focus();
						ret=false;
						return false;
					}
				}
			}
			uri+=item.get('name')+','+item.get('value')+"/";
		});
		if(this.get('method').toLowerCase()=="post" && ret!=false)
			return true;
		if(ret!=false){
			window.location.href=uri;
		}
		return false;
	});
    
    // Alt
    $$('input[alt!=""]').each(function(el){
        var caption=el.get('alt');
        if(caption!='' && caption!=null){
            el.set('value',caption);
            el.setStyle('color','#cccccc');
            el.addEvent('focus',function(){
                if(this.get('value')==caption){
                    this.set('value','');
                    this.setStyle('color','black');
                }
            });
            el.addEvent('blur',function(){
                if(this.get('value')==''){
                    this.setStyle('color','#cccccc');
                    this.set('value',caption);
                }    
            });
        }
    });	
});
*/

/**
* Esta funcion se ejecutara cada ves que el campo
* de tipo input tenga una regla de validacion y la regla
* no se haya cumplido
* - Esta funcion puede personalizarse para desplegar otro tipo de error -
*/
function displayError($msg){
    alert($msg);
    return false;
}

function number_format( number, decimals, dec_point, thousands_sep ) {
    // http://kevin.vanzonneveld.net
    // +   original by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +   improved by: Kevin van Zonneveld (http://kevin.vanzonneveld.net)
    // +     bugfix by: Michael White (http://crestidg.com)
    // +     bugfix by: Benjamin Lupton
    // +     bugfix by: Allan Jensen (http://www.winternet.no)
    // +    revised by: Jonas Raoni Soares Silva (http://www.jsfromhell.com)
    // +     bugfix by: Howard Yeend
    // *     example 1: number_format(1234.5678, 2, '.', '');
    // *     returns 1: 1234.57     
 
    var n = number, c = isNaN(decimals = Math.abs(decimals)) ? 2 : decimals;
    var d = dec_point == undefined ? "." : dec_point;
    var t = thousands_sep == undefined ? "," : thousands_sep, s = n < 0 ? "-" : "";
    var i = parseInt(n = Math.abs(+n || 0).toFixed(c)) + "", j = (j = i.length) > 3 ? j % 3 : 0;
    
    return s + (j ? i.substr(0, j) + t : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + t) + (c ? d + Math.abs(n - i).toFixed(c).slice(2) : "");
}

