/* Código javascript */
function refreshElementos(tipo,url){
      new Ajax.Updater('lista_elementos', url, {});
      $('elementos_titulo').value = tipo;
}

function refreshModelos(select_tag, url, updater_div){
  new Ajax.Updater(updater_div, url+'/id_marca/'+select_tag.value, {});
}


function refreshProductos(url){
  //alert('tipo:'+$('elementos_titulo').value+' id:'+$('lista_elementos').value);
  new Ajax.Updater('unassociated_producto', url+'/id/'+$('lista_elementos').value+'/tipo/'+$('elementos_titulo').value, {});
}

function double_list_delete(src, dest){
  for (var i = 0; i < src.options.length; i++)  {
    if (src.options[i].selected)    {
      src.options[i] = null;
      --i;
      }
    }
}

function double_list_add(src, dest, url){
  for (var i = 0; i < src.options.length; i++)  {
    if (src.options[i].selected) {
      new Ajax.Updater('lista_articulos',url+"/id/"+src.options[i].value, {
        method: 'get',
        asynchronous:true,
        insertion: Insertion.Bottom,
        on404: function () {alert('Ocurrió un error inesperado en la llamada')},
        onSuccess: function(transport) {}
        });
      src.options[i] = null;
      --i;
      }
    }
}


function aniadeDireccion(url){
  //alert('Esta URL: '+url);
  new Ajax.Updater('lista_direcciones',url+"/orden/"+$('num_direcciones').value, {
    method: 'get',
    asynchronous: true,
    insertion: Insertion.Bottom,
    on404: function () { alert('Ocurrió un error inesperado en la llamada')},
    onSuccess: function(transport) {
      //Le sumamos uno al campo del orden de preguntas
      $('num_direcciones').value=(parseInt($('num_direcciones').value)+1);
      }
    });
}

function aniadeContacto(url){
  //alert('Esta URL: '+url);
  new Ajax.Updater('lista_contactos',url+"/orden/"+$('num_contactos').value, {
    method: 'get',
    asynchronous:true,
    insertion: Insertion.Bottom,
    on404: function () {alert('Ocurrió un error inesperado en la llamada')},
    onSuccess: function(transport) {
      //Le sumamos uno al campo del orden de preguntas
      $('num_contactos').value=(parseInt($('num_contactos').value)+1);
      }
    });
}

function eliminaDireccion(num){  
  var div = 'direccion_'+num+'_div';
  $(div).remove();
  /*for (var i = num+1; i <= $('num_direcciones').value; i++) {
    div = 'direccion_'+i; new_div = 'direccion_'+(i-1);
    if ($(div)){
      $(div).writeAttribute("name",new_div);
      $(div).writeAttribute("id",new_div);
      }
    }*/
  }
    
function eliminaContacto(num){
  var div = 'contacto_'+num+'_div';
  $(div).remove();
  /*for (var i = num+1; i <= $('num_contactos').value; i++) {
    div = 'contacto_'+i; new_div = 'contacto_'+(i-1);
    if ($(div)){
      $(div).writeAttribute("name",new_div);
      $(div).writeAttribute("id",new_div);
      }
    }*/
  }  


function addPhoto(url){
  //alert('Esta URL: '+url);
  new Ajax.Updater('lista_fotos',url+"/orden/"+$('num_fotos').value, {
    method: 'get',
    asynchronous:true,
    insertion: Insertion.Bottom,
    on404: function () {alert('Ocurrió un error inesperado en la llamada')},
    onSuccess: function(transport) {
      //Le sumamos uno al campo del orden de preguntas
      $('num_fotos').value=(parseInt($('num_fotos').value)+1);
      }
    });
}


//Function for over the menu
function showMenuEntries(what) {
  $(what+'_entries').show();
}

function hideMenuEntries(what) {
  $(what+'_entries').hide();
}

var foto_noticia_position = 1;

function showPhoto(event) {
  //tomamso el valor de la noticia que demandan
  foto_noticia_id = event.identify().split("_")[1];
  move_action = event.identify().split("_")[0];
  //fotos totales
  num_fotos = parseInt($('fotos_noticia').childElements().length);

  //prev y primera foto, nada
  if ((parseInt(foto_noticia_id) == 1) && (move_action == "prev"))
  {
  }
  //next y ultima foto, nada
  else if ((parseInt(foto_noticia_id) == num_fotos) && (move_action == "next"))
  {
  }
  else
  {
    if (move_action == "next")
    {
      id_foto_a_mostrar = parseInt(foto_noticia_id) + 1;
    }
    else if (move_action == "prev")
    {
      id_foto_a_mostrar = parseInt(foto_noticia_id) - 1;
    }
    //ocultamos antiguo, mostramos lo nuevo
    $('foto_'+foto_noticia_id).hide();
    $('foto_'+id_foto_a_mostrar).show();
  }
  
}

function changePhoto(event) {

  layer_data = event.id.split("_");

  move_action = layer_data.pop();
  id_active_photo = parseInt(layer_data.pop());
  root_name = layer_data.join("_");
  count_photos = parseInt($('list_div_'+root_name).childElements().length);
  //prev y primera foto, nada
  if ((id_active_photo == 1) && (move_action == "prev"))
  {
  }
  //next y ultima foto, nada
  else if ((id_active_photo == count_photos) && (move_action == "next"))
  {
  }
  else
  {
    if (move_action == "next")
    {
      other_move_action = "prev";
      id_new_active_photo = id_active_photo + 1;
    }
    else if (move_action == "prev")
    {
      other_move_action = "next";
      id_new_active_photo = id_active_photo - 1;
    }
    //hide old, show new
    $('div_'+root_name+'_'+id_active_photo).hide();
    $('div_'+root_name+'_'+id_new_active_photo).show();
    //set the links to new position
    $(root_name+'_'+id_active_photo+'_'+move_action).writeAttribute({'id': root_name+'_'+id_new_active_photo+'_'+move_action});
    $(root_name+'_'+id_active_photo+'_'+other_move_action).writeAttribute({'id': root_name+'_'+id_new_active_photo+'_'+other_move_action});

    //set the id foto
    $(root_name + '_now').innerHTML = id_new_active_photo;
  }
}

function refreshModeloFromMarca(event,url) {
  new Ajax.Updater('modelo_marca',url+'/id_marca/'+event.value, {
    method: 'get',
    asynchronous:true,
    on404: function () {alert('Ocurrió un error inesperado en la llamada')}
    });
}

function getProductosAllForPurchase(url)
{
  id_modelo = $('pedido_modelo').value
  precio_ver = $('pedido_ver_precio').value
  //si esta la marca ya definida y el tipo de precio a ver
  if (id_modelo && precio_ver)
  {
  
    new Ajax.Updater('todos_lista_productos',url+'/id_modelo/'+id_modelo+'/ver_precio/'+precio_ver, {
      method: 'get',
      asynchronous:true,
      on404: function () {alert('Ocurrió un error inesperado en la llamada')}
      });
  }
}

function addProductToPurchase(url,producto_link)
{

  //id del producto 
  producto_link_data = producto_link.id.split('_')
  id_producto = producto_link_data[2]
  base_name = producto_link_data[0]+"_"+producto_link_data[1]+"_"+producto_link_data[2];

  //siempre ocultamos la tr de no hay pedidos
  $('producto_empty').hide();
  new Ajax.Request(url + "/id_producto/" + id_producto, {
    method: 'get',
    asynchronous:true,
    onSuccess: function(transport) {

      if ($('purchase_producto_'+id_producto))
      {
        //ya esta creado
        alert('El producto ya esta añadido al pedido');
      } else {

        $(base_name+"_data").removeClassName("addproducttopurchase");
        $(base_name+"_data").addClassName("addedproducttopurchase");
        producto_link.innerHTML = "Producto añadido al pedido";
        $(base_name+"_selectcantidad").show();

        //añadimos al resumen
        $('listas_productos').insert(transport.responseText, { position: "bottom" });
      }
    },
    on404: function () {alert('Ocurrió un error inesperado en la llamada. Producto no encontrado'); return false; }
    });
}

function refreshCantidadProducto(id_producto)
{
  $('purchase_producto_'+id_producto+'_cantidad').value =  $('purchase_producto_'+id_producto+'_cantidad_pre').value;
  $('purchase_producto_'+id_producto+'_cantidad_span').update($('purchase_producto_'+id_producto+'_cantidad_pre').value);
}

function removeProductoFromPurchase(id_producto)
{
  //cuando quitamos un producto hay que quitarlo de dos sitios, la lista definitiva, y su aparición en productos
  $('purchase_producto_'+id_producto).remove()
  $('purchase_producto_'+id_producto+'_data').removeClassName("addedproducttopurchase");
  $('purchase_producto_'+id_producto+'_data').addClassName("addproducttopurchase");
  //precantidad a 1
  $('purchase_producto_'+id_producto+"_selectcantidad").hide();
  $('purchase_producto_'+id_producto+'_cantidad_pre').value = 1;
  $('purchase_producto_'+id_producto+'_link').update("Añadir producto al pedido");

}


function validateForm(formObject)
{
  if (formObject.identify() == "sf_admin_edit_form_concesionario")
  {
    to_return = true;
    msj_return = "";
    msj_title = "";
    //validar contactos
    num_contactos = parseInt($('num_contactos').value);
    for (i=0;i<num_contactos;i++)
    {
      //existe el contacto
      if($('contacto_'+i+'_div'))
      {
        //repasamos nombre, email y telefono
        if ($('contacto_'+i+'_nombre').value == "" )
        {
          to_return = false;
          error_div = 'contacto_'+i+'_nombre';
          msj_title = "Nombre contacto: ";
          msj_return = "Debe especificar un nombre para el contacto";
        }
        if ($('contacto_'+i+'_email').value == "" )
        {
          to_return = false;
          error_div = 'contacto_'+i+'_email';
          msj_title = "Email contacto: ";
          msj_return = "Debe especificar un email para el contacto";
        }
        if ($('contacto_'+i+'_telefono').value == "" )
        {
          to_return = false;
          error_div = 'contacto_'+i+'_telefono';
          msj_title = "Teléfono contacto: ";
          msj_return = "Debe especificar un teléfono para el contacto";
        }
      }
    }
    //validar direcciones
    num_direcciones = parseInt($('num_direcciones').value);
    for (i=0;i<num_direcciones;i++)
    {

      //existe la direccion
      if($('direccion_'+i+'_div'))
      {
        //repasamos direccion, provincia, localidad, cp, telefono
        if ($('direccion_'+i+'_direccion').value == "" )
        {

          to_return = false;
          error_div = 'direccion_'+i+'_direccion';
          msj_title = "Dirección: ";
          msj_return = "Debe especificar una dirección";
        }
        if ($('direccion_'+i+'_provincia').value == "" )
        {
          to_return = false;
          error_div = 'direccion_'+i+'_provincia';
          msj_title = "Pronvincia: ";
          msj_return = "Debe especificar una provincia";
        }
        if ($('direccion_'+i+'_localidad').value == "" )
        {
          to_return = false;
          error_div = 'direccion_'+i+'_localidad';
          msj_title = "Localidad: ";
          msj_return = "Debe especificar una localidad";
        }
        if ($('direccion_'+i+'_postal').value == "" )
        {
          to_return = false;
          error_div = 'direccion_'+i+'_postal';
          msj_title = "Postal: ";
          msj_return = "Debe especificar un código postal";
        }
        if ($('direccion_'+i+'_telefono').value == "" )
        {
          to_return = false;
          error_div = 'direccion_'+i+'_telefono';
          msj_title = "Teléfono: ";
          msj_return = "Debe especificar un teléfono para la dirección";
        }
      }
    }
  }
  if (!to_return)
  {
    if($$('div.save-ok')[0])
    {
      $$('div.save-ok')[0].remove();
    }

    if($$('div.form-errors')[0])
    {
      div_error = $$('div.form-errors')[0];
      old_dl = div_error.childElements()[1]
      old_dl.remove();
    }
    else
    {

      div_error = new Element("div", { 'class': 'form-errors' })
      h2 = new Element("h2").update("Ocurrieron Errores en el proceso del Formulario");
      div_error.insert(h2);
      $('sf_admin_header').insert(div_error)


    }

    dt = new Element("dt").update(msj_title);
    dd = new Element("dd").update(msj_return);

    dl = new Element("dl").insert(dt);
    dl.insert(dd);

    div_error.insert(dl);


    $(error_div).setStyle({'border': "1px solid red"});
    
    return false;
  }

}

function changePerfil(select_perfil)
{
  $('modelos_error_perfil').hide()
  $('concesionario_error_perfil').hide()

  //precios
  if((select_perfil.value == '3') || (select_perfil.value == '4') || (select_perfil.value == '5')) {
    $('for_price').show();
  } else {
    $('for_price').hide();
  }

  if((select_perfil.value == '3') || (select_perfil.value == '4')) {
    $('for_concesionarios').show();
  } else {
    $('for_concesionarios').hide();
    //Aviso sobre modelos y concesionario
    if ($('associated_modelos').options.length > 0)
    {
      $('modelos_error_perfil').show()
    }
    if ($('usuarios_id_concesionario').value != "")
    {
      $('concesionario_error_perfil').show()
    }
  }

} 


function refreshPaginas()
{
  //url de fresco
  url = $('refresh_paginas_url').value + "/id_marca/" + $('catalogos_id_marca').value
  new Ajax.Updater('select_paginas', url, {
    method: 'get',
    asynchronous:true,
    on404: function () {alert('Ocurrió un error inesperado en la llamada');}
    });
}

function addToCatalog(nombre, url) {
  if ($('pagina_null'))
  {
    $('pagina_null').hide();
  }
  //existe ya la página en el catálogo
  paginas_seleccionadas = $$('input.pagina_data');
  var existe = false;
  for (var i = 0; i < paginas_seleccionadas.length; i++)  {
    if (paginas_seleccionadas[i].name == 'catalogos[paginas]['+url+']')
    {
      existe = true;
    }
  }

  if (existe)
  {
    alert('La página seleccionada ya ha sido añadida');
  }
  else
  {

    //numero de paginas
    num_paginas = $('numero_paginas').value
    num_paginas = parseInt(num_paginas) + 1;
    $('numero_paginas').value = num_paginas;
    //fila
    tr = new Element("tr", {'id': "pagina_catalogo_"+num_paginas});
    //datos
    td_nombre = new Element("td").update(nombre);
    input_orden = new Element("input",{'size' : "5", 'type' : "text", 'name': "catalogos[paginas]["+url+"]", 'value' : num_paginas, 'class': "pagina_data" });
    td_orden = new Element("td").update(input_orden);
    a_ver = new Element("a", {'href':url,'class':'blue','target':"_blank"}).update("Ver");
    a_eliminar = new Element("a", {'href':'#','class':'orange','onclick': "$('pagina_catalogo_"+num_paginas+"').remove()" }).update("Eliminar");
    td_acciones = new Element("td").insert(a_ver)
    td_acciones.insert(" | ");
    td_acciones.insert(a_eliminar);
    //se añaden
    tr.insert(td_nombre);
    tr.insert(td_orden);
    tr.insert(td_acciones);
  
    $('catalogos_paginas').insert(tr);
   }
}


  function moveToStep(step_link)
  {
    step_data = step_link.id.split('_');
    generic_name = step_data[0]
    actual_step = step_data[1]
    move_step_to = step_data[2]
    old_div = step_data[0] + "_" + step_data[1] + "_div";
    old_menu = step_data[0] + "_" + step_data[1] + "_menu";

    if (move_step_to == "prev")
    {
      new_step = parseInt(actual_step) - 1;
    }
    else
    {
      new_step = parseInt(actual_step) + 1;
    }

    
    move_to_div = step_data[0] + "_" + new_step + "_div";
    move_to_menu = step_data[0] + "_" + new_step + "_menu";

    // no move posible
    if (new_step <= 0 )
    {
      //nothing
    }
    if (!$(move_to_div))
    {
      //nothing
    }
    else
    {

      $(old_div).hide();
      $(old_menu).removeClassName("purchase_active");

      $(move_to_div).show();
      $(move_to_menu).addClassName("purchase_active");
    }

  }



function changeViewPrice() {
  to_hide =  $$('.'+last_price_view);

  for (var i = 0; i < prices.length; i++)  {
    //para seleccionar cual sera el siguiente precio a ver
    //si no es el ultimo
    if(prices[i] == last_price_view)
    {
      index_lenght = parseInt(prices.length) - 1;
      if(i != index_lenght)
      {
        selected_price = prices[i+1];
      }
      else
      {
        selected_price = prices[0];
      }
    }
  }

  last_price_view = selected_price;

  to_show = $$('.'+selected_price);

  for (i=0;i<to_show.length;i++)
  {
    to_show[i].show();
  }

  for (i=0;i<to_hide.length;i++)
  {
    to_hide[i].hide();
  }


}
