// detodoenventa.js

// -------------------------------------------------------------------------------- //
function UserIsPro()
{
  var ispro = GetElement( "ispro" );
  var prouser = GetElement( "prouser" );
  prouser.style.display = ( ispro.checked ? "block" : "none" );
  return true;
}

// -------------------------------------------------------------------------------- //
function checksuggestion()
{
  var comment = GetElement( "comment" ); 
  var errorstr = "";
  if( isEmpty( comment ) )
  {
    errorstr += "Sugerencia vacía. Debe proporcionar una sugerencia.\n";
  }
  if( errorstr != "" )
  {
    alert( "Se han producido los siguientes errores:\n" + errorstr );
    return false;
  }
  return true;
}
 
// -------------------------------------------------------------------------------- //
function checkaddcomment()
{
  var comment = GetElement( "comment" ); 
  var errorstr = "";
  if( isEmpty( comment ) )
  {
    errorstr += "Comentario vacío. Debe proporcionar un comentario.\n";
  }
  if( errorstr != "" )
  {
    alert( "Se han producido los siguientes errores:\n" + errorstr );
    return false;
  }
  return true;
}
 
// -------------------------------------------------------------------------------- //
function enableautologin()
{
  var ad_province, autologin;
  ad_province = GetElement( "prv" );
  autologin = GetElement( "nprv" );
  autologin.disabled = ( ad_province.value == 0 );
} 

// -------------------------------------------------------------------------------- //
function asearchmoreoptions()
{
  var asearch, ad_category, km, year, fuel, rooms, forn, surface, price, orderby;
  var kmf, kmt, yearf, yeart, fu, roomsf, roomst, fo, surf, surt, order, pricef, pricet;

  asearch = GetElement( "asearch" );
  km = GetElement( "km" );
  year = GetElement( "year" );
  fuel = GetElement( "fuel" );
  rooms = GetElement( "rooms" );
  forn = GetElement( "forn" );
  surface = GetElement( "surface" );
  orderby = GetElement( "orderby" );
  price = GetElement( "price" );

  kmf = GetElement( "kmf" );
  kmt = GetElement( "kmt" );
  yearf = GetElement( "yearf" );
  yeart = GetElement( "yeart" );
  fu = GetElement( "fu" );
  roomsf = GetElement( "roomsf" );
  roomst = GetElement( "roomst" );
  fo = GetElement( "fo" );
  surf = GetElement( "surf" );
  surt = GetElement( "surt" );
  pricef = GetElement( "pricef" );
  pricet = GetElement( "pricet" );
  order = GetElement( "order" );
    
  // Reset the status
  km.style.display = "none";
  year.style.display = "none";
  rooms.style.display = "none";
  forn.style.display = "none";
  surface.style.display = "none";
  fuel.style.display = "none";

  orderby.style.display = price.style.display = ( asearch.checked ? "block" : "none" );
  
  kmf.disabled = true;
  kmt.disabled = true;
  yearf.disabled = true;
  yeart.disabled = true;
  fu.disabled = true;
  roomsf.disabled = true;
  roomst.disabled = true;
  fo.disabled = true;
  surf.disabled = true;
  surt.disabled = true;
  order.disabled = pricef.disabled = pricet.disabled = !asearch.checked;
  
  if( !asearch.checked )
    return true;
  
  ad_category = GetElement( "cat" );
  
  switch( ad_category.value )
  {
    case '11':
    case '12':
    case '13':
    case '15':
      kmf.disabled = false;
      kmt.disabled = false;
      fu.disabled = false;
      km.style.display = "block";
      fuel.style.display = "block";
    case '14':
    case '41':
    case '42':
    case '43':
    case '44':
      yearf.disabled = false;
      yeart.disabled = false;
      year.style.display = "block";
      break;
    case '22':
    case '23':
    case '32':
    case '33':
    case '21':
    case '31':
      roomsf.disabled = false;
      roomst.disabled = false;
      fo.disabled = false;
      rooms.style.display = "block";
      forn.style.display = "block";
    case '25':
    case '26':
    case '35':
    case '36':
      surf.disabled = false;
      surt.disabled = false;
      surface.style.display = "block"; 
      break;
  }
  return true;
}

// -------------------------------------------------------------------------------- //
function checknewpassword()
{
  var errorstr = "";
  var email = GetElement( "email" );
  if( isEmpty( email ) )
  {
    errorstr += "Debe proporcionar el email que usó en su registro.\n";
  }
  else if( !checkemail( email.value ) )
  {
    errorstr += "El email es incorrecto.\n";
  }
  if( errorstr != "" )
  {
    alert( "Se han producido los siguientes errores:\n" + errorstr );
    return false;
  }
  return true;
}

// -------------------------------------------------------------------------------- //
function checkadalert()
{
  var comment, errormsg;
  comment = GetElement( "comment" );

  errormsg = "";
  if( isEmpty( comment ) )
    errormsg += "Debe proporcionar el motivo del aviso.\n";
  if( errormsg != "" )
  {
    alert( "Se han producido los siguientes errores:\n" + 
        errormsg );
    comment.focus();
    return false;
  }
  return true;
}

// -------------------------------------------------------------------------------- //
function confirmdeletead()
{
  return confirm( "¿Desea realmente borrar el anuncio?" );
}

// -------------------------------------------------------------------------------- //
function checktellfriend()
{
  var sendername, friendname, friendemail, comment, errormsg;
  sendername = GetElement( "sendername" );
  friendname = GetElement( "friendname" );
  friendemail = GetElement( "friendemail" );
  comment = GetElement( "comment" );
  check = GetElement( "check" );

  errormsg = "";
  if( sendername && isEmpty( sendername ) )
    errormsg += "Debe proporcionar su nombre.\n";

  if( isEmpty( friendname ) )
    errormsg += "Debe proporcionar un nombre.\n";

  if( isEmpty( friendemail ) )
    errormsg += "Debe proporcionar un email.\n";
  else if( !checkemail( friendemail.value ) )
    errormsg += "El email proporcionado es incorrecto.\n";

  if( isEmpty( comment ) )
  {
    errormsg += "No ha escrito su mensaje.\n";
  }

  if( check && isEmpty( check ) )
    errormsg += "Debe rellenar el código de validación.\n";

  if( errormsg != "" )
  {
    alert( "Se han producido los siguientes errores:\n" + 
        errormsg );
    friendname.focus();
    return false;
  }
  return true;
}

// -------------------------------------------------------------------------------- //
function checksendmsg()
{
  var name, email, check, comment, errormsg;
  name = GetElement( "name" );
  email = GetElement( "email" );
  check = GetElement( "check" );
  comment = GetElement( "comment" );

  errormsg = "";  
  if( isEmpty( name ) )
    errormsg += "Debe proporcionar un nombre.\n";
  if( isEmpty( email ) )
  {
    errormsg += "Debe proporcionar un email.\n";
  }
  else if( !checkemail( email.value ) )
  {
    errormsg += "El email proporcionado es incorrecto.\n";
  }
  if( isEmpty( comment ) )
  {
    errormsg += "No ha escrito su mensaje.\n";
  }
  if( check && isEmpty( check ) )
    errormsg += "Debe rellenar el código de validación.\n";

  if( errormsg != "" )
  {
    alert( "Se han producido los siguientes errores:\n" + errormsg );
    name.focus();
    return false;
  }
  return true;
}

// -------------------------------------------------------------------------------- //
function processregform()
{
  var logo, defimg;
  var dellogoimg, deldefimg;
  logo = GetElement( "logo" );
  defimg = GetElement( "defimg" );
  dellogoimg = GetElement( "dellogoimg" );
  deldefimg = GetElement( "deldefimg" );
  
  logo.disabled = !dellogoimg.checked;
  defimg.disabled = !deldefimg.checked;
    
}

// -------------------------------------------------------------------------------- //
function checkregform()
{
  var name, nickname, email, password1, password2, errormsg;
  var ispro, valtime, filter;
  name = GetElement( "name" );
  nickname = GetElement( "nickname" );
  phone = GetElement( "phone" );
  email = GetElement( "email" );
  password1 = GetElement( "password1" );
  password2 = GetElement( "password2" );
	ispro = GetElement( "ispro" );
  valtime = GetElement( "valtime" );
  
  
  errormsg = "";
  if( isEmpty( name ) )
  {
    errormsg += "El nombre del usuario es obligatorio.\n";  
  }   
  if( isEmpty( nickname ) )
  {
    errormsg += "Debe especificar un alias de usuario.\n";
  }
  else
  {
    filter = /^[a-zA-Z0-9_\- ,.:]+$/;
    if( !filter.test( nickname.value ) )
    {
      errormsg += "Sólo son válidos en Alias letras, números, espacio y ',.:_-'.\n";
    }
  }
  if( !isEmpty( phone ) )
  {
    filter = /^[0-9\-() .\/]+$/;
    if( !filter.test( phone.value ) )
    {
      errormsg += "Sólo son válidos en el teléfono números, espacio y '.,(,),-,/'\n";
    }
  }
  if( isEmpty( email ) )
  {
    errormsg += "Necesita un email para validar su registro.\n"; 
  }
  else if( !checkemail( email.value ) )
  {
    errormsg += "El email proporcionado es incorrecto.\n";
  }
  if( isEmpty( password1 ) )
  {
    errormsg += "Debe especificar una clave para conectarse.\n";
  } else if( password1.value.length < 6 )
  {
    errormsg += "Debe especificar un password de al menos seis caracteres.\n";
  }  
  if( isEmpty( password2 ) )
  {
    errormsg += "Debe confirmar la clave utilizada.\n";
  } else if( password1.value != password2.value )
  {
    errormsg += "Error en la validación de la clave.\n";
  }
  if( ispro.checked && !IsNumber( valtime.value ) )
  {
    errormsg += "Debe especificar la validez del anuncio por defecto.\n"; 
  }
  if( errormsg != "" )
  {
    alert( "Se han producido los siguientes errores:\n" + errormsg );
    name.focus();
    return false;
  }
  password1.value = hex_md5( password2.value ); 
  password2.value = "";
  password2.disabled = true;
  return true;
}

// < LOGIN > //
// -------------------------------------------------------------------------------- //
function checklogin()
{
  var hash, user, passwd, newhash;
  var errmsg = "";
  hash = GetElement( "hash" );
  user = GetElement( "user" );
  passwd = GetElement( "passwd" );
  if( isEmpty( hash ) )
  {
    errmsg += 'Error Inesperado. Si se repite contacte con el administrador.\n';
  }
  if( isEmpty( user ) )
  {
    errmsg += 'Por favor intruduzca el nombre de usuario.\n';
  }
  if( isEmpty( passwd ) )
  {
    errmsg += 'Por favor introduzca el password.\n';
  }
  if( errmsg != "" )
  {
    alert( errmsg );
    return false;
  }
  newhash = hex_md5( hash.value+user.value.toLowerCase()+hex_md5(passwd.value) );
  passwd.value = "";
  passwd.disabled = true;
  hash.value = newhash;
  return true;
}


// < SHOWAD > //
// -------------------------------------------------------------------------------- //
function UpdateImage( ImageName ) 
{
	var bigimage = GetElement( 'bigimage' );
	var thuimage = GetElement( 'thumbimg' + ImageName );
	var imgcmt   = GetElement( 'imgcmt' );
	bigimage.src = thuimage.href;
	bigimage.onclick = Function( "return UpdateImage(" + thuimage.attributes[ 'nref' ].value + ");" );
	if( imgcmt )
	{
	  imgcmt.firstChild.data = thuimage.attributes[ 'cmt' ].value;
	}
 	return false;
}

// < EDIT_AD, NEW_AD > //
// -------------------------------------------------------------------------------- //
function checkadform()
{
  var errormsg = "";
  var ad_province = GetElement( "ad_province" );
  var ad_category = GetElement( "ad_category" );
  var ad_title = GetElement( "ad_title" );
  var ad_text = GetElement( "ad_text" );
  var ad_email = GetElement( "ad_email" );
  var ad_price = GetElement( "ad_price" );
  var ad_year, ad_km, ad_rooms, ad_surface, ad_parcel;

  switch( ad_category.value )
  {
    case '11':
    case '12':
    case '13':
    case '15':
      ad_year = GetElement( "ad_year0" );
      ad_km = GetElement( "ad_km0" );
      break;
    case '14':
    case '41':
    case '42':
    case '43':
    case '44':
      ad_year = GetElement( "ad_year1" );
      break;
    case '22':
    case '23':
    case '32':
    case '33':
      ad_rooms = GetElement( "ad_rooms2" );
      ad_surface = GetElement( "ad_surface2" );
      ad_parcel = GetElement( "ad_parcel2" );
      break;
    case '21':
    case '31':
      ad_rooms = GetElement( "ad_rooms3" );
      ad_surface = GetElement( "ad_surface3" );
      break;
    case '25':
    case '26':
    case '35':
    case '36':
      ad_surface = GetElement( "ad_surface4" );
      break;
    case '24':
    case '34':
      ad_surface = GetElement( "ad_surface5" );
      ad_parcel = GetElement( "ad_parcel5" );
      break;
  }

  if( ad_province.value == 0 )
  { 
    errormsg += "Debe seleccionar una Provincia.\n"; 
    ad_province.focus(); 
  }
  if( ad_category.value == 0 )
  { 
    errormsg += "Debe seleccionar una Categoría.\n"; 
    ad_category.focus(); 
  }
  if( isEmpty( ad_title ) )
  { 
    errormsg += "Debe proporcionar un título para el anuncio.\n"; 
    ad_title.focus(); 
  }
  if( !isEmpty( ad_price ) && !IsNumber( ad_price.value ) )
  {
    errormsg += "El precio debe ser numérico.\n";
    ad_price.focus();
  }
  if( isEmpty( ad_text ) )
  { 
    errormsg += "Debe proporcionar una descripción para el anuncio.\n"; 
    ad_text.focus(); 
  }
  if( !isEmpty( ad_email ) && !checkemail( ad_email.value ) )
  {
    errormsg += "El email proporcionado es incorrecto.\n";
  }
  if( !isEmpty( ad_km ) && !IsNumber( ad_km.value ) )
  {
    errormsg += "Los kilómetros debe ser numérico.\n";
    ad_km.focus();
  }
  if( !isEmpty( ad_year ) && ( ( ad_year.value.length != 4 ) || !IsNumber( ad_year.value ) ) )
  {
    errormsg += "El año debe ser numérico y de cuatro cifras.\n"; 
    ad_year.focus(); 
  }
  if( !isEmpty( ad_rooms ) && !IsNumber( ad_rooms.value ) )
  {
    errormsg += "Sólo se permiten números en el campo 'Habitaciones'.\n";
    ad_rooms.focus();
  }
  if( !isEmpty( ad_surface ) && !IsNumber( ad_surface.value ) )
  {
    errormsg += "Sólo se permiten números en el campo 'Superficie'.\n";
    ad_surface.focus();
  }
  if( !isEmpty( ad_parcel ) && !IsNumber( ad_parcel.value ) )
  {
    errormsg += "Sólo se permiten números en el campo 'Parcela'.\n";
    ad_parcel.focus();
  }
  if( errormsg != "" )
  { 
    alert( "Se han encontrado los siguientes errores:\n" + errormsg );
    return false; 
  }
  return true;
}

// < EDIT IMAGES //
// -------------------------------------------------------------------------------- //
function startupload()
{
  var progress = GetElement( "progress" );
  progress.style.display = "block";
  return true;
}

// < EDIT_AD > //
// -------------------------------------------------------------------------------- //
function processadform()
{
  var disbg = '#cccccc'; //'#e5eef9;';
  //var enabg = '#ffffea';
  var ad_datetime = GetElement( "ad_datetime" );
  var ad_category = GetElement( "ad_category" );
  var cats = new Array( 7 );
  for( index = 0; index < 7; index++ )
  {
    cats[ index ] = GetElement( "cat0" + index );
    cats[ index ].style.display = "none";
  }

  ad_datetime.disabled = true;
  ad_datetime.style.background = disbg;
  
  switch( ad_category.value )
  {
    case '11':
    case '12':
    case '13':
    case '15':
      cats[ 0 ].style.display = "block";
      break;
    case '14':
    case '41':
    case '42':
    case '43':
    case '44':
      cats[ 1 ].style.display = "block";
      break;
    case '22':
    case '23':
    case '32':
    case '33':
      cats[ 2 ].style.display = "block";
      break;
    case '21':
    case '31':
      cats[ 3 ].style.display = "block";
      break;
    case '25':
    case '26':
    case '35':
    case '36':
      cats[ 4 ].style.display = "block";
      break;
    case '24':
    case '34':
      cats[ 5 ].style.display = "block";
      break;
    default:
      cats[ 6 ].style.display = "block";
  }

  return true;
}

// < GENERAL FUNCTIONS > //
// -------------------------------------------------------------------------------- //
function IsNumber( str )
{
  var filter = /^([0-9.])+(,*[0-9])*$/;
  return filter.test( str );
}

// -------------------------------------------------------------------------------- //
function checkemail( str )
{
  var filter = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
  return filter.test( str );
}

// -------------------------------------------------------------------------------- //
function isEmpty( mytext ) 
{
  var re = /^\s{1,}$/g; //match any white space including space, tab, form-feed, etc.
  return !( mytext && mytext.value && 
            ( mytext.value.length > 0 ) && 
            ( mytext.value.search( re ) == -1 ) );  
}

// -------------------------------------------------------------------------------- //
function GetElement( name ) 
{
	if( document.layers ) 
		return document.layers[ name ];
	else if( document.all )
		return document.all[ name ];
	else if ( document.getElementById )
		return document.getElementById( name );
}

// -------------------------------------------------------------------------------- //