/********************************************************************************************************** CONSTANTS */

var SS_OPERATION_OK   = 1;
var SS_OPERATION_FAIL = 2;

/********************************************************************************************************** J Helpers */

function roundNumber(num, dec) {
	var result = Math.round(num*Math.pow(10,dec))/Math.pow(10,dec);
	return result;
}

function MM_preloadImages() 
{ //v3.0
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=MM_preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}}
}

function MM_findObj(n, d) 
{ //v4.01
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
    d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

function MM_nbGroup(event, grpName) 
{ //v6.0
  var i,img,nbArr,args=MM_nbGroup.arguments;
  if (event == "init" && args.length > 2) {
    if ((img = MM_findObj(args[2])) != null && !img.MM_init) {
      img.MM_init = true; img.MM_up = args[3]; img.MM_dn = img.src;
      if ((nbArr = document[grpName]) == null) nbArr = document[grpName] = new Array();
      nbArr[nbArr.length] = img;
      for (i=4; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
        if (!img.MM_up) img.MM_up = img.src;
        img.src = img.MM_dn = args[i+1];
        nbArr[nbArr.length] = img;
    } }
  } else if (event == "over") {
    document.MM_nbOver = nbArr = new Array();
    for (i=1; i < args.length-1; i+=3) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = (img.MM_dn && args[i+2]) ? args[i+2] : ((args[i+1])? args[i+1] : img.MM_up);
      nbArr[nbArr.length] = img;
    }
  } else if (event == "out" ) {
    for (i=0; i < document.MM_nbOver.length; i++) {
      img = document.MM_nbOver[i]; img.src = (img.MM_dn) ? img.MM_dn : img.MM_up; }
  } else if (event == "down") {
    nbArr = document[grpName];
    if (nbArr)
      for (i=0; i < nbArr.length; i++) { img=nbArr[i]; img.src = img.MM_up; img.MM_dn = 0; }
    document[grpName] = nbArr = new Array();
    for (i=2; i < args.length-1; i+=2) if ((img = MM_findObj(args[i])) != null) {
      if (!img.MM_up) img.MM_up = img.src;
      img.src = img.MM_dn = (args[i+1])? args[i+1] : img.MM_up;
      nbArr[nbArr.length] = img;
  } }
}


//pads left
String.prototype.lpad = function(padString, length) 
{
	var str = this;

   	while (str.length < length)
        	str = padString + str;
    	return str;
}
 
//pads right
String.prototype.rpad = function(padString, length) 
{
	var str = this;

    	while (str.length < length)
        	str = str + padString;
    	return str;
}

Array.prototype.find = function(searchStr) {
  var returnArray = false;
  for (i=0; i<this.length; i++) {
    if (typeof(searchStr) == 'function') {
      if (searchStr.test(this[i])) {
        if (!returnArray) { returnArray = [] }
        returnArray.push(i);
      }
    } else {
      if (this[i]===searchStr) {
        if (!returnArray) { returnArray = [] }
        returnArray.push(i);
      }
    }
  }
  return returnArray;
}


jQuery.fn.ForceNumericOnly =
function()
{
    return this.each(function()
    {
        $(this).keydown(function(e)
        {
            var key = e.charCode || e.keyCode || 0;
            // allow backspace, tab, delete, arrows, numbers and keypad numbers ONLY
            return (
                key == 8 || 
                key == 9 ||
                key == 46 ||
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 96 && key <= 105));
        })
    })
};

function isValidEmailAddress(emailAddress) 
{  
	var pattern = new RegExp(/^(("[\w-\s]+")|([\w-]+(?:\.[\w-]+)*)|("[\w-\s]+")([\w-]+(?:\.[\w-]+)*))(@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$)|(@\[?((25[0-5]\.|2[0-4][0-9]\.|1[0-9]{2}\.|[0-9]{1,2}\.))((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\.){2}(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[0-9]{1,2})\]?$)/i);  

	return pattern.test(emailAddress); 
} 

/********************************************************************************************************** Conf Business */

var currentlocation = '';

function ChangeLanguage(lang)
{
	//DEV:TODO: Implement.
	
	return false;
}

function load()
{
	currentlocation = location.href;

	currentlocation = currentlocation.substring( currentlocation.lastIndexOf('/')  + 1 );
	
	if ( currentlocation == '' )
	{
		currentlocation = 'index.php';
	}
}

function Loading()
{
	$("#loading").css('opacity',0.4) 	
	$("#loading").show();
}

function EndLoading()
{
	$("#loading").hide();
}

function Login()
{
	if ( $("#email").val() == "" )
	{
		alert ( 'Debe completar el nombre de usuario');
		$("#email").focus();
		return false;
	}


	if ( $("#password").val() == "" )
	{
		alert ( 'Debe completar la contraseÃ±a');
		$("#password").focus();
		return false;
	}

	Loading();

	$(document).ready(function()
	{
		$.ajax
			(
				{
					type: "POST",
					url:  "index.php",
					data: "&serverfunction=login" + "&email=" + $( "#email" ).val() + "&password=" + $( "#password" ).val() + "&cancelload=true",
					error: function(xhr, desc, err) 
					{ 
						EndLoading();
						alert("Hubo un error inesperado al intentar esta operación. Un Administrador ya fue notificado.");
					},
					success: function(data, status) 
					{
						EndLoading();
						if ( data == 1 )
						{
							location.reload();
						}
						else if ( data == 2 )
						{
							alert ( 'La contraseña es incorrecta' );
						}
						else if ( data == 3 )
						{
							alert ( 'Usuario no encontrado' );
						}
						else if ( data == 5 )
						{
							alert ( 'Su cuenta todavia no ha sido activada' );
						}
						else
							alert(data);
					}
				}
			 );
	});
}

function Logout()
{
	Loading();

	$(document).ready(function()
	{
		$.ajax
			(
				{
					type: "POST",
					url:  "index.php",
					data: "&serverfunction=logout",
					error: function(xhr, desc, err) 
					{ 
						EndLoading();
						alert("Hubo un error inesperado al intentar esta operación. Un Administrador ya fue notificado.");
					},
					success: function(data, status) 
					{
						location.reload();
					}
				}
			 );
	});
}

var confRequestPending = false;

function GetConfCallNumber()
{
	if ( confRequestPending )
		return false;
	
	confRequestPending = true;
	
	$(document).ready(function()
	{
		$("#div_conferencia")
		.load
		( 
			"conferencia.php" , { serverfunction:'create' , cancelload:true } , function() { confRequestPending = false; }  
		);
	});		
}

function GoTo(url)
{
	window.location = url;
}

function IrRegistrarse()
{
	LoadMenuItem('registrarse.php');
}

function Contactar()
{
	if  ( !ValidaContacto() )
	{
		return false;
	}

	Loading();

	$(document).ready(function()
	{
		$.ajax
			(
				{
					type: "POST",
					url:  "contacto.php",
					data: "&serverfunction=contacto" 	+ 	
										"&email=" 		+ $("#email_contacto").val() 	+ 
										"&nombre=" 		+ $('#nombre').val() 	 	+  
										"&apellido=" 		+ $('#apellido').val() 	 	+
										"&comentario=" 		+ $('#comentario').val() 	+
										"&cancelload=true",
					error: function(xhr, desc, err) 
					{ 
						EndLoading();

						alert("Hubo un error inesperado al intentar esta operación. Un Administrador ya fue notificado.");
					},
					success: function(data, status) 
					{
						EndLoading();

						if ( data == SS_OPERATION_OK )
						{
							alert  ( 'Su inquietud fue enviada a un operador, nos pondremos en contacto con usted a la brevedad.'  );
							ClearContactoFields();
						}
						else
							alert(data);
					}
				}
			 );
	});

	return false;
}

function ClearContactoFields()
{
	$('#email').val(""); 
	$('#nombre').val("");  
	$('#apellido').val("");
	$('#comentario').val("");
}

function registrarse(sender)
{
	if ( $('#' + sender ).attr('cursor') != 'pointer' )
	{
		return false;
	}
	
	if  ( !validarUsuario() )
	{
		return false;
	}

	Loading();

	$(document).ready(function()
	{
		$.ajax
			(
				{
					type: "POST",
					url:  "registro.php",
					data: "&serverfunction=register" + 	
										"&email=" 		+ $( '#emailregistro' ).val() 		+ 
										"&password=" 	+ $( '#password_registro' ).val() 	+ 
										"&nombre=" 		+ $( '#nombre').val() 				+  
										"&apellido=" 	+ $( '#apellido').val() 			+
										"&telefono=" 	+ $( '#telefono').val() 			+
										"&cancelload=true",
					error: function(xhr, desc, err) 
					{ 
						EndLoading();
						alert("Hubo un error inesperado al intentar esta operación. Un Administrador ya fue notificado.");
					},
					success: function(data, status) 
					{
						EndLoading();

						if ( data == 1 )
						{
							window.location='index.php';
						}
						else if ( data == 4 )
						{
							alert ( 'La dirección de correo indicada ya se encuentra registrada, por favor eliga otra!' );
						}
						else
							alert(data);
					}
				}
			 );
	});

	return false;	
}

function ValidaContacto()
{
	if ( 
		( $("#nombre").val()   == "" ) &&
		( $("#apellido").val() == "" ) 
	)
	{
		alert ( 'Debe completar al menos un dato personal ( nombre / apellido )' );

		$("#nombre").focus();

		return false;
	}
	
	if ( ! isValidEmailAddress( $("#email_contacto").val() ) )
	{
		alert ( 'Debe completar la dirección de correo electronico');

		$("#email_contacto").focus();

		return false;
	}

	if ( $("#comentario").val() == '' )
	{
		alert ( 'Debe dejarnos su inquietud en el comentario');

		$("#comentario").focus();

		return false;
	}

	return true;
}

function validarUsuario()
{
	if ( 
			( $("#nombre").val()   == "" ) &&
			( $("#apellido").val() == "" ) 
		)
	{
		alert ( 'Debe completar al menos un dato personal ( nombre / apellido )' );

		$("#nombre").focus();

		return false;
	}
	
	if ( $("#emailregistro").val() == "" )
	{
		alert ( 'Debe completar la dirección de correo electronico' );
		$("#emailregistro").focus();
		return false;
	}

	if ( ! isValidEmailAddress( $("#emailregistro").val() ) )
	{
		alert ( 'La dirección de correo ingresada no parece ser valida');
		$("#emailregistro").focus();
		return false;		
	}
	
	if ( $("#emailregistro").val() !=  $("#confirmar_emailregistro").val() )
	{
		alert ( 'La dirección de correo electronico que ingresó no concuerda, recuerde ingresarla exactamente igual en ambos lugares.');
		$("#confirmar_emailregistro").focus();
		return false;
	}

	if ( $("#password_registro").val() == "" )
	{
		alert ( 'Debe completar la contraseña');
		$("#password_registro").focus();
		return false;
	}

	if ( $("#password_registro").val() !=  $("#password_registro_confirm").val() )
	{
		alert ( 'La contraseña que ingresó no concuerda, recuerde de ingresarla exactamente igual en ambos lugares.');
		$("#password_registro_confirm").focus();
		return false;
	}

	return true;
}

function goIndex(id)
{
	// $( '#index_box_' + id ).animate( { width: "800px" },"slow"); 
}

