/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------ GENERAL UTILITY ------------------------------------- */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */

function browsertype(){
    if (navigator.appName.indexOf("Microsoft Internet Explorer") >= 0) {
        if(navigator.appVersion<=5){
             return  "MSIE5";
        }else{
             return  "MSIE7";
        }
    }
    if (navigator.appName.indexOf("Netscape") >= 0) {
        return "Netscape";
    }
    else {
        return "unknown";
    }
}

function trim(cadena) {
    while (cadena.charAt(0) == ' ' && cadena != '') cadena = cadena.substr(1);
    while (cadena.charAt(cadena.length - 1) == ' ' && cadena != '') cadena = cadena.substr(0, cadena.length - 1);
    return cadena;
}

function activBox(box){
    var state_box=$(box).getStyle('display');
    if(state_box=="none"){
        new Effect.BlindDown(box, {duration:2});
    }else{
        new Effect.BlindUp(box, {duration:2});
    }
 }


    document.observe ('dom:loaded', function() {
    $$('a([rel=#scrolltop])').each(function(element) {
        element.observe('click', function(event) {
              new Effect.ScrollTo("page");
              Event.stop(event);
        }.bindAsEventListener(element))
     })
})


/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  --------------------------------------- SET IMAGE GALERY --------------------------------------- */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */


function reloadListImagen(box,num,action,itemId,menu){
    var state_box=$(box).getStyle('display');

     new Ajax.Updater(box, action,{
         onLoading:loadImgAdmin('page'),
         onComplete: function closeload(){new Effect.Appear(box, {duration:1, from:0, to:1.0,onComplete:removimgLoad()});},
         parameters:{evalScripts:true,asynchronous:true,id:itemId,num_img:num,typomenu:menu}
       });
 }

function viewImage(action,path_image){
     //Param box windows
     var w='100%';
     var h='0';
     if($('page').getHeight()>1100){
           h= $('page').getHeight()+"px";
     }else{h='1100px';}

     var bgbox='#FFFFFF';
     var bgbody='#000';
     // var bgbody='#000 url("themes/default/img/layout/bg_view_print.png")';

     var boxWindow="<div id='view_image' style='display:none;z-index:10000;'><div id='image_box'><div id='image'><table class='menu_image'><tr><td><a href='#' onclick='closeZoomImage();'>cerrar&nbsp;&nbsp;</a></td></tr><tr><td><img name='name' src='"+path_image+"' alt='' /></td></tr></table></div></div></div>";
     $('utils_area1').insert({ before: boxWindow });

     $('view_image').setStyle({
        position: 'absolute',
        height: h,
        width: w,
        top:0,
        left: 0
    });

     new Effect.Appear('view_image', {duration:1, from:0, to:1.0});
     var bord='1px solid #ffffff'

//     new Ajax.Updater('view_image', action,{
//         onLoading:loadImgAdmin('page'),
//         onComplete: function closeload(){new Effect.Appear('view_image', {duration:1, from:0, to:1.0,onComplete:removimgLoad()});},
//         parameters:{evalScripts:true,asynchronous:true,image:path_image}
//       });


    $('utils_area1').setStyle({
        position: 'absolute',
        display:'block',
        background: bgbody,
        height: h,
        opacity:0.8,
        width: w,
        top:0,
        left: 0
    });


}

function closeZoomImage(){
     $('view_image').remove();
     $('utils_area1').setStyle({display:'none', background:'', height:'', opacity:'', width:''});
}

/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  -------------------------------------- SEND AMIGO CONTENIDO ------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */

function sendAmigoContent(action,itemId,pathContent,titleinfo){
     //Param box windows
     var w='100%';

     if($('page').getHeight()>1100){
        var h= $('page').getHeight()+"px";
     }else{var h='1100px';}

     var bgbox='#FFFFFF';
     var bgbody='#000 url("themes/default/img/layout/bg_send_amigo.png")';

     var boxWindow="<div id='print_box' style='display:none;z-index:10000;'></div>";
     $('utils_area1').insert({ before: boxWindow });

     $('print_box').setStyle({
        position: 'absolute',
        height: h,
        width: w,
        top:0,
        left: 0
    });

     var bord='1px solid #ffffff'

     new Ajax.Updater('print_box', action,{
         onLoading:loadImgAdmin('page'),
         onComplete: function closeload(){new Effect.Appear('print_box', {duration:1, from:0, to:1.0,onComplete:removimgLoad()});},
         parameters:{evalScripts:true,asynchronous:true,id:itemId,pathContent:pathContent,titleinfo:titleinfo}
       });

    $('utils_area1').setStyle({
        position: 'absolute',
        display:'block',
        background: bgbody,
        height: h,
        opacity:0.5,
        width: w,
        top:0,
        left: 0
    });

}

function closeSendMail(){
     $('print_box').remove();
     $('utils_area1').setStyle({display:'none', background:'', height:'', opacity:'', width:''});
}


/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  --------------------------------------- SET PRINT CONTENIDO ------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */

function printContent(action,itemId,type,menuid){
     //Param box windows
     var w='100%';

     if($('page').getHeight()>1100){
        var h= $('page').getHeight()+"px";
     }else{var h='1100px';}
    
     var bgbox='#FFFFFF';
     var bgbody='#000 url("themes/default/img/layout/bg_view_print.png")';    

     var boxWindow="<div id='print_box' style='display:none;z-index:10000;'></div>";
     $('utils_area1').insert({ before: boxWindow });

     $('print_box').setStyle({
        position: 'absolute',
        height: h,
        width: w,
        top:0,
        left: 0
    });   
    
     var bord='1px solid #ffffff'

     new Ajax.Updater('print_box', action,{
         onLoading:loadImgAdmin('page'),
         onComplete: function closeload(){new Effect.Appear('print_box', {duration:1, from:0, to:1.0,onComplete:removimgLoad()});},
         parameters:{evalScripts:true,asynchronous:true,id:itemId,type:type,menuId:menuid}
       });

    $('utils_area1').setStyle({
        position: 'absolute',
        display:'block',
        background: bgbody,
        height: h,
        opacity:0.7,
        width: w,
        top:0,
        left: 0
    });

}

function closePrint(){
     $('print_box').remove();
     $('utils_area1').setStyle({display:'none', background:'', height:'', opacity:'', width:''});
}

/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  -------------------------------------- SET PARAM FORM CONTROL ---------------------------------- */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */

function setTipe(val,campoinput){
    del_image(campoinput);
    $(campoinput).value=val;
    //alert($(campoinput).value);
}

function setMultiTypeCheck(campoinput){
    //alert(campoinput);
    var valcampo="";
    var allCheck=$$('input[type="checkbox"]');

    for(j=0; j < allCheck.length; j++){
    //del_image(campoinput);
        if(allCheck[j].checked){
            if(valcampo==""){
                valcampo=allCheck[j].value;
            }else{valcampo=valcampo+" "+allCheck[j].value;}
        }
    }

    if(valcampo!=""){
        $(campoinput).value=valcampo;
    }else{$(campoinput).value="";}
    //alert($(campoinput).value);
}

/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------- GENERAL FORM VALIDATION ---------------------------------- */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */

//Ejemplos gestion campos
//<input class="textfield ['required']" id="${id_campo}" name="${id_campo}" />
//<div id="hlp_${id_campo}" style="display:none;">&nbsp;</div>
//------------------------------------------------------------------------------------
//<input class="textfield ['chaar','required']" id="${id_campo}" name="${id_campo}" />
//<div id="hlp_${id_campo}" style="display:none;">&nbsp;</div>
//------------------------------------------------------------------------------------
//<input class="textfield ['int','required']" id="${id_campo}" name="${id_campo}" />
//<div id="hlp_${id_campo}" style="display:none;">&nbsp;</div>
//------------------------------------------------------------------------------------
//<input class="textfield ['mail','required']" id="${id_campo}" name="${id_campo}" />
//<div id="hlp_${id_campo}" style="display:none;">&nbsp;</div>
//------------------------------------------------------------------------------------
//<input class="textfield ['password','required']" id="${id_campo}" name="${id_campo}" />
//<div id="hlp_${id_campo}" style="display:none;">&nbsp;</div>
//------------------------------------------------------------------------------------
//<input class="textfield ['fechaformat','required']" id="${id_campo}E" name="${id_campo}E" />
//<div id="hlp_${id_campo}" style="display:none;">&nbsp;</div>
//<input type="hidden" id="{id_campo}" name="{id_campo}" value="" />

//GESTION COLORE DE FONDO DE LOS CAMPOS INPUT EN ERROR
var bgbox="#e6e4c8";

//DEFINIR ICONOS
var path_warning="themes/default/img/admin/warning.gif";

function chk_image(id,error){
    var campoimg="img_"+id;
    var campoins="hlp_"+id;

    //GESTIONE MENSAJE DE ERROR ICONO

    if(error=='msg_required_es'){
        var errortext="Error, el campo no puede estar vacio";
    }else if(error=='msg_int_es'){
        var errortext="Error, el valor no es numerico";
    }else if(error=='msg_chaar_es'){
        var errortext="Error, el campo no puede ser vacio y contener numeros";
    }else if(error=='msg_mail_es'){
        var errortext="Error, el email no es válido";
    }else if(error=='msg_fechaformat_es'){
        var errortext="Error, la fecha no es correcta";
    }else{ error="Error no definito llamar el administrador de sistema"}


   if($(campoins)==null){
       alert('ERROR Administradores: El campo DIV Help no existe el nombre no coincide');
       return false;
   }

   if($(campoimg)==null || $(campoimg)==undefined){
        //alert("creo la immagen alert per il campo:" + campoimg);
        var imagen = document.createElement("img");
        imagen.setAttribute("id", campoimg);
        imagen.setAttribute("src",path_warning);
        imagen.setAttribute("alt","Info");
        imagen.setAttribute("title", errortext);
        $(campoins).appendChild(imagen);
        $(campoins).setStyle({display: 'inline'});

    }else{

       $(campoimg).remove();

       var imagen = document.createElement("img");
        imagen.setAttribute("id", campoimg);
        imagen.setAttribute("src",path_warning);
        imagen.setAttribute("alt","Info");
        imagen.setAttribute("title", errortext);
        $(campoins).appendChild(imagen);
        $(campoins).setStyle({display: 'inline'});

       new Effect.Pulsate($(campoimg));

   }

}

function del_image(id){
    var campoimg="img_"+id;

    if($(campoimg)!=null){
        $(campoimg).remove();
        $(id).setStyle({backgroundColor: '#fff', float:'none'});
    }
    var error;
    return error = 0;
}

function fechatrasform(valore,idcampo) {
    var espressione = /^[0-9]{2}\/[0-9]{2}\/[0-9]{4}$/;
    if (!espressione.test(valore))
    {
        //alert("FECHA NO");
        return false;
    }else{
        //alert("FECHA SI");
        var fecha_trasform = valore.split('/')[2] + '-' + valore.split('/')[1] + '-' + valore.split('/')[0];
        var cut = idcampo.length -1;
        idcampo=idcampo.truncate(cut,'');
        if($(idcampo)!=null || $(idcampo)!=undefined){
        $(idcampo).value=fecha_trasform;
        }else{alert('Falta el campo fecha hidden')}
        return true;
    }

}

function mailceck(campo){
    var emailReg = /^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,4}$/;
	return emailReg.test($(campo).value);
}


function formvalidation(frm,type_ajx){
    var error=0;

   //ARRAY CON CAMPOS DE SELECION EN EL FORM
   var tipo_dati=new Array("input","textarea","select");

    var tipo_dato;
    var tipo_regex;
    var obbligatorio;

    for (j = 0; j < tipo_dati.length; j++) {
        var x = document.getElementsByTagName(tipo_dati[j]);

        for (i = 0; i < x.length; i++) {
            var campo = x.item(i).name;

            if (campo != "") {
                var valore = x.item(i).value;
                var test = x.item(i).attributes;

                for (g = 0; g < test.length; g++) {
                    obbligatorio="";
                    tipo_dato="";
                    var valpr_name = test[g].name;

                    if (valpr_name == "class") {
                        var valproperty = test[g].value;
                        //CONTROLLO PROPRIEDAD EN EL ATRIBUTO CSS
                        var required = valproperty.search("required");
                        var reqhide = valproperty.search("reqhide");
                        var chaar = valproperty.search("chaar");
                        var inter = valproperty.search("int");
                        var mail = valproperty.search("mail");
                        var password = valproperty.search("password");
                        var fechaformat = valproperty.search("fechaformat");

                        //CONDICIONES PROPRIEDAD DEL CAMPO CSS PRELEVADO
                        if (required > 0) {obbligatorio = 1;}
                        if (reqhide > 0) {obbligatorio = 1; var typecampo = "hide";}
                        if (chaar > 0) {tipo_dato = "chaar";}
                        if (inter > 0) {tipo_dato = "int";}
                        if (password > 0) {tipo_dato = "password";}
                        if (mail > 0) {tipo_dato = "mail";}
                        if (fechaformat > 0) {tipo_dato = "fechaformat";}

                        //alert(campo +" " + " obbligatorio: " +obbligatorio+ " valore del campo: " +valore+ " tipo dato: " +tipo_dato);


                        //INICIO CONDICIONES POR DEFINIER EL ERROR
                        if (obbligatorio == 1 && valore == "") {//alert('CONTROL-CAMPO: REQUIRED+REQHIDE');
                            var typeerror='msg_required_es';
                            chk_image(campo, typeerror);
                            if (typecampo != "hide") {
                                $(campo).setStyle({backgroundColor: bgbox, display:'inline'});
                            }
                             error = 1;
                        }

                        if (obbligatorio == 1 && valore != "" && tipo_dato == "") {//alert('CONTROL-CAMPO: REQUIRED GENERAL');
                           del_image(campo);
                        }

                        if (obbligatorio == 1 && valore != "" && tipo_dato != "") {//alert('CONTROL-CAMPO ESPECIFICO');
                            if (tipo_dato == "chaar" && !isNaN(valore)) {//alert('CONTROL-CAMPO: CHAAR');
                                var typeerror='msg_chaar_es';
                                chk_image(campo, typeerror);
                                if (typecampo != "hide") {
                                    $(campo).setStyle({backgroundColor: bgbox});
                                }
                                 error = 1;
                            } else if (tipo_dato == "int" && isNaN(valore)) {//alert('CONTROL-CAMPO:INT');
                                var typeerror='msg_int_es';
                                chk_image(campo, typeerror);
                                if (typecampo != "hide") {
                                    $(campo).setStyle({backgroundColor: bgbox});
                                }
                                 error = 1;
                            }else if (tipo_dato == "fechaformat" && !fechatrasform(valore,campo)) {//alert('CONTROL-CAMPO: FECHAFORMAT');
                                if (typecampo != "hide") {
                                    $(campo).setStyle({backgroundColor: bgbox});
                                }
                                var typeerror='msg_fechaformat_es';
                                    chk_image(campo, typeerror);
                                     error = 1;
                            }else if (tipo_dato == "mail" && !mailceck(campo)) {//alert('CONTROL-CAMPO: FECHAFORMAT');
                                if (typecampo != "hide") {
                                    $(campo).setStyle({backgroundColor: bgbox});
                                }
                                var typeerror='msg_mail_es';
                                    chk_image(campo, typeerror);
                                     error = 1;
                            }else {
                                del_image(campo);
                            }
                        }

                    }
                }
            }
        }
    }

      //ESECUCIONE FINAL

      if(error==0){
          //alert("Estoy enviando el formulario");
          if(type_ajx=="" || type_ajx==undefined){
            $(frm).submit();
          }else{return "send-ajaxform";}
       }else{alert("Rellenar correctamente todos los campos obligatorios");}

}

/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------- AJAX FORM VALIDATION ---------------------------------- */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */

function send_ajx_form(frm,idbox,action){
    var type_ajx=1;

    if(formvalidation(frm,type_ajx)){

        new Ajax.Updater(idbox, action,{
             onLoading:loadImgAdmin('title'),
             onComplete: function closeload(){new Effect.Appear(idbox, {duration:1, from:0, to:1.0,onComplete:removimgLoad()});},
             parameters: Form.serialize(frm), evalScripts:true, asynchronous:true});

    }

}

/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------- GESTION LAYOUT SISTEMA DE ADMINISTRACION ----------------------------- */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */

function loadImgAdmin(v){
    if(v=="page"){
        var imgloading = "<img id='imgloading' src='themes/default/img/icons/loading.gif' width='16' height='16' />";
        $('load_command').insert(imgloading);}
    if(v=="title"){
        var imgloading = "<img id='imgloading' src='themes/default/img/icons/loading.gif' width='16' height='16' />";
        $('loadtile').insert(imgloading);}
}

function removimgLoadAdmin(){
    $('imgloading').remove();
}

function uploadBoxAdmin(idbox,action){
    var pag_width=$('bodypage').getDimensions();
        pag_width=pag_width.width;

    if(pag_width==null){
       pag_width=screen.width;
    }

    var boxarea=$('boxarea').getDimensions();
    var positionmenus=($('boton_admin').offsetLeft)-15;

    //alert(positionmenus + " POSITION MENU");
    //alert(pag_width + " ANCHO VENTANA BROWSER");
    //alert(boxarea.width + " ANCHO PAGINA");

    var typebrowser =browsertype() ;
    //alert(typebrowser);

    if(typebrowser=="Netscape"){
        var margenbox=positionmenus+15;
        if(positionmenus>0){positionmenus=margenbox;}
    }else if(typebrowser=="MSIE5"){
        var margenbox=positionmenus+27;
        if(positionmenus>0){positionmenus=margenbox;}
    }else if(typebrowser=="MSIE7"){
        var margenbox=positionmenus+15;
        if(positionmenus>0){positionmenus=margenbox;}
    }else{
        var margenbox=positionmenus+15;
        if(positionmenus>0){positionmenus=margenbox;}
    }

    var idcontrol=$(idbox).getStyle('display');

    function setPosition(){$(idbox).setStyle({left:positionmenus+'px', top:'296px'})};
    //alert(idcontrol);
    if(idcontrol=="block"){$(idbox).setStyle({display: 'none', left:positionmenus+'px'});}

     new Ajax.Updater(idbox, action,{
         onLoading:loadImgAdmin('page'),
         onComplete: function closeload(){setPosition(); new Effect.SlideDown(idbox, {duration:1,onComplete:removimgLoad()});},
         parameters:{evalScripts:true,asynchronous:true}
       });
}

/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  --------------------------------- UTIL SPOTLIGHT NAVIGATION ------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */
/*  ------------------------------------------------------------------------------------------------ */

function navMenuList(idboxmenu,idmenu,idtype,action){
     //alert(idboxmenu + "-----" + idmenu + "-----" + action );
     var typeajx="ajx";
     new Ajax.Updater(idboxmenu, action,{
         onLoading:loadImgAdmin('title'),
         onComplete: function closeload(){new Effect.Appear(idboxmenu, {duration:1, from:0, to:1.0,onComplete:removimgLoad()});},
         parameters:{evalScripts:true,asynchronous:true,menu:idmenu,type:idtype,ajx:typeajx}
       });
}

function navMenuListParent(idboxmenu,idmenu,idtype,parent,action){
     //alert(idboxmenu + "-----" + idmenu + "-----" + action );
     var typeajx="ajx";
     new Ajax.Updater(idboxmenu, action,{
         onLoading:loadImgAdmin('title'),
         onComplete: function closeload(){new Effect.Appear(idboxmenu, {duration:1, from:0, to:1.0,onComplete:removimgLoad()});},
         parameters:{evalScripts:true,asynchronous:true,menu:idmenu,type:idtype,ajx:typeajx,parentId:parent}
       });
}

function nextNoticia(idboxmenu,action,nlist){
    //alert(action+nlist);
     new Ajax.Updater(idboxmenu, action,{
         onLoading:loadImgAdmin('page'),
         onComplete: function closeload(){new Effect.Appear(idboxmenu, {duration:1, from:0, to:1.0,onComplete:removimgLoad()});},
         parameters:{evalScripts:true,asynchronous:true,numlist:nlist}
       });
}

function closeAdminBox(idbox){
    new Effect.SlideUp(idbox, {duration:0.5});
    return false;
}

