var wait=null; 
	tweens = {},
    timers = {},
    counts = {},
    currents = {},
    ztop = 9999,
    modal_zoom = null;

timers['topmenu'] = false;


function initWaitWin() {
  wait = new TModalWin();
  wait.color = '#fff';
  wait.opacity = 0.6;
  wait.content = TDOM.firstChild(TDOM.getElement('waitmsg'));
}

function initLayerWin() {
  layer = new TModalWin(true);
  layer.color = '#000';
  layer.opacity = 0.6;
  layerdiv = document.createElement('div');
  layerdiv.id = 'layerwin';
  layerdiv.innerHTML = '';
  layer.content = layerdiv;
}

function openLayerWin(url,params) {
  wait.open();
  THttp.send(url+'&xhr', openLayerWinCallback, 'POST', params);
  return false;
}

function openLayerWinCallback(e) {
  var js = [];
  var html = e.target.toString();
  var regex = new RegExp(/<script[\s\S]*?>([\s\S]+)<\/script>/ig);
  var match = regex.exec(html);
  while (match) {
    js.push(match[1]);
    match = regex.exec(html);
  }
  html = html.replace(/<script[\s\S]*?>([\s\S]+)<\/script>/g, '');
  layerdiv.innerHTML = html;
  layer.open();
  wait.close();
  for (var i=0,l=js.length; i<l; i++) { eval(js[i]); }
}

/* ----- VARIOS ----- */

function getModalZoomWin() {
  if (modal_zoom === null) {
    modal_zoom = new TModalWin(false);
    modal_zoom.color = '#000';
    modal_zoom.opacity = 0.5;
    modal_zoom.back.style.zIndex = 999950;
    modal_zoom.front.style.zIndex = 999951;
  }
}

function cambiarCaptcha(id,url) {
  var date = new Date();
  TDOM.getElement(id).src = url+'&'+date;
}

/* ----- ENVIAR A AMIGO ----- */

var current_dia = '',
    current_codimg = '',
    current_grupo = '',
    enviando_amigo = false;
function abrirAmigo(codgru, dia, codimg) {
  var div = TDOM.getElement('enviar_amigo'),
      shdw = TDOM.getElement('enviar_amigo_shadow'),
      envi = TDOM.getElement('enviar_amigo_enviando');
  var rec = TDOM.getBounds(div);
  current_dia = dia == undefined ? current_dia : dia;
  current_codimg = codimg == undefined ? current_codimg : codimg;
  current_grupo = codgru == undefined ? current_grupo : codgru;  
  TDOM.setStyle(shdw,'opacity',0.35);
  shdw.style.height = (rec.height-22)+'px';
  div.style.display = 'block';
  shdw.style.display = 'block';
  if (enviando_amigo) {
    TDOM.setStyle(envi,'opacity',0.75);
    envi.style.height = (rec.height-22)+'px';
    envi.style.display = 'block';
  }
  return false;
}
function cambiarAmigoCaptcha(url) {
  var img = TDOM.getElement('amigo_captcha_imagen'),
      cap = TDOM.getElement('amigo_captcha');
  url = img.src.split('?')[0];
  img.src = url+'?'+Math.random();
  cap.value = '';
}
function cerrarAmigo() {
  var div = TDOM.getElement('enviar_amigo'),
      shdw = TDOM.getElement('enviar_amigo_shadow'),
      envi = TDOM.getElement('enviar_amigo_enviando');
  div.style.display = 'none';
  shdw.style.display = 'none';
  envi.style.display = 'none';
  return false;
}
function enviarAmigo(url) {
  var name_from = TDOM.getElement('amigo_nombre_from'),
      name_to = TDOM.getElement('amigo_nombre_to'),
      email_from = TDOM.getElement('amigo_email_from'),
      email_to = TDOM.getElement('amigo_email_to'),
      heading = TDOM.getElement('amigo_heading'),
      captcha = TDOM.getElement('amigo_captcha'),
      mensaje = TDOM.getElement('amigo_mensaje'),
      err = TDOM.getElement('amigo_errores'),
      lis = TDOM.getElement('amigo_errores_lista'),
      errors = [],
      params = [];

  if (name_from.value == '') {
    errors.push("Debe completar su nombre.");
    name_from.style.borderColor = '#ff8b94';
  }
  if (name_to.value == '' || name_to.value == 'Ingrese el nombre de su amigo') {
    errors.push("Debe completar el nombre de su amigo.");
    name_to.style.borderColor = '#ff8b94';
  }
  if (!(/^[A-Z0-9._-]+@[A-Z0-9._-]+\.[A-Z]+$/i).test(email_from.value)) {
    errors.push("Su casilla de correos no parece ser válida.");
    email_from.style.borderColor = '#ff8b94';
  }
  if (!(/^[A-Z0-9._-]+@[A-Z0-9._-]+\.[A-Z]+$/i).test(email_to.value)) {
    errors.push("La casilla de correos de su amigo no parece ser válida.");
    email_to.style.borderColor = '#ff8b94';
  }
  if (captcha.value == '') {
    errors.push("Antes de continuar deberá completar el código de confirmación. ");
    captcha.style.borderColor = '#ff8b94';
  }
  if (errors.length) {
    lis.innerHTML = '<li>'+errors.join('</li><li>')+'</li>';
    err.style.display = 'block';
    abrirAmigo();
  } else {
    params.push('from_name='+name_from.value);
    params.push('to_name='+name_to.value);
    params.push('from_email='+email_from.value);
    params.push('to_email='+email_to.value);
    params.push('heading='+heading.innerHTML);
    params.push('captcha='+captcha.value);
	
    params.push('codgrp='+current_grupo);
    params.push('coddia='+current_dia);
    params.push('codimg='+current_codimg);	
	
    params.push('mensaje='+(mensaje.value == 'Utilice este campo para enviar un mensaje adicional.' ? '' : mensaje.value));

    err.style.display = 'none';
    enviando_amigo = true;
    abrirAmigo();
    THttp.send(url, enviarAmigoCallback,'POST',params.join('&'));
  }
  return false;
}
function enviarAmigoCallback(e) {
  enviando_amigo = false;
  var err = TDOM.getElement('amigo_errores'),
      lis = TDOM.getElement('amigo_errores_lista'),
      msgs = TDOM.getElement('amigo_alertas'),
      envi = TDOM.getElement('enviar_amigo_enviando'),
      email_to = TDOM.getElement('amigo_email_to'),
      errors = parseErrors(e.target.toString());
  err.style.display = 'none';
  envi.style.display = 'none';
  cambiarAmigoCaptcha();
  if (errors.length) {
    lis.innerHTML = '<li>'+errors.join('</li><li>')+'</li>';
    err.style.display = 'block';
    abrirAmigo();
  } else {
    if ((/<enviado \/>/ig).test(e.target.toString())) {
      msgs.innerHTML = '<h1 style="margin-bottom:0px;padding-bottom:4px;color:#0060ff">MENSAJE ENVIADO CON EXITO!</h1>'+
                       '<p style="color:#003ea5">Su mensaje ha sido enviado a <b>'+email_to.value+'</b></p>';
      msgs.style.display = 'block';
      cerrarAmigo();
    } else {
      lis.innerHTML = '<li>La respuesta del servidor no ha sido la esperada por la aplicación, intente nuevamente.</li>';
    }
  }
}

function parseErrors(html) {
  var errors = [];
  var regex = new RegExp(/<error>([\s\S]*?)<\/error>/ig);
  var match = regex.exec(html);
  while (match) {
    errors.push(match[1]);
    match = regex.exec(html)
  }
  if (errors.length == 0) {
    var regex = new RegExp(/<exception>([\s\S]*)<\/exception>/ig);
    var match = regex.exec(html);
    while (match) {
      errors.push(match[1]);
      match = regex.exec(html)
    }
  }
  return errors;
}

function doInputFocusClear(inp,txt,col) {
  if (inp.value.toLowerCase() == txt.toLowerCase()) {
    inp.style.color = col || '';
    inp.value = '';
  }
}

function doInputBlurClear(inp,txt,col) {
  if (inp.value == '' || inp.value == txt.toLowerCase()) {
    inp.style.color = col || '#89c1be';
	inp.value = txt;
  }
}
