var num_caracteres=0;
jQuery(function($) {
	
	$("#enviarChat").click(function(){ enviar();	});
	$("#input_chat").keydown(function(e){
			if(e.keyCode==13)
			{
				enviar();
			}else
			{
				if(num_caracteres>=36)
				{
						$(this).val($(this).val()+"\n");
						num_caracteres=1;
				}else	num_caracteres++;
			}
		});	
	
	$("#iniciarConv").click(function(){		valideNick();	});
	$("#nick").keydown(function(e){if(e.keyCode==13)	valideNick();	});
		
	$("#limpiarChat").click(
		function()
		{
			$.ajax({
			type: "POST",
			url: "Ping.php",
			data: "accion=limpiar&nick="+$("#nick").val(),
			success: function(msg_res)
					{	
						session_started=false;
						$("#area_chat_conver").html("");
						$("#nick").removeAttr("disabled");						
						$("#iniciarConv").removeClass("conv_on").addClass("conv_off");
						$("#iniciarConv").children("span").html('INICIAR CONVERSACION');	
						$("#iniciarConv").click(function(){	valideNick();	});
						$("#area_chat_online").hide();
						$("#area_chat_offline").show("slow");
											
					}
					});	
	});
		
		/***************formulario contacto***************/
		$("#enviar_form").click(
			function()
			{
				$.ajax({
				type: "POST",
				url: "Mail.php",
				data: "nombre="+$("#nombre").val()+"&email="+$("#email").val()+"&fono="+$("#fono").val()+"&descr="+
				$("#descr").val(),
				beforeSend:function(){ $("#load_send").show(); },
				success: function(msg_res)
						{					
							if(msg_res=="true")
							{
								$("#msg_contact").removeClass("labelErr").addClass("labelSucess")
								.html("Su mensaje a sido enviado satisfactoriamente!!!").show();
								$("#nombre").val(""); $("#email").val("");$("#fono").val("");$("#descr").val("");
							}else
							{
								$("#msg_contact").removeClass("labelSucess").addClass("labelErr")
								.html("Error!! su mensaje no pudo ser enviado, intente de nuevo!.").show();
							}
							$("#load_send").hide();					
						}
						});		
			});
		
		/****** if session is started******/
		if(session_started)
		{
			$("#iniciarConv").unbind();
			pingContacto();
		}		
	
});

function enviar()
{
	var msg=$("#input_chat").val();		if(msg==""){	$("#input_chat").focus();	return;	}
	$.ajax({
			type: "POST",
			url: "Ping.php",
			data: "accion=send&nick="+$("#nick").val()+"&msg="+msg,
			beforeSend:function(){ $("#load_sendMsg").show(); },
			success: function(msg_res)
					{
						num_caracteres=1;
						$("#load_sendMsg").hide();
						$("#input_chat").val("");												
						//addMsg(msg,$("#nick").val());	
					},
			error: function(data) {
					try { addMsg( "Error al enviar el Msg: "+msg,"SYSTEMA"); } 
					catch (e) {}  }
			});
	
}

function valideNick()
{
	if($("#nick").val()=="")
	{
		$("#nick_error").html("Error!!! Debe ingresar su nick.").show();
		return;
	}
	$("#nick").val(removeHtml($("#nick").val()));
	$.ajax({
		type: "POST",
		url: "Ping.php",
		data: "accion=valideNick&nick="+$("#nick").val(),
		success: function(msg)
		{	
			if(msg=="true")
			{
				$("#nick_error").hide();
				$("#iniciarConv").removeClass("conv_off").addClass("conv_on");
				$("#iniciarConv").children("span").html('CONVERSACION INICIADA');
				$("#nick").attr({disabled:"disabled"});
				$("#area_chat_offline").hide();
				$("#area_chat_online").show("slow");
				$("#iniciarConv").unbind();
				$("#input_chat").focus();
				session_started=true;
				pingContacto();
								
			}else
			{
				$("#nick_error").html("Error!!! Este nick ya esta en uso.").show();
			}
		}
				
			});
}

function addMsg(msg,alias,hra)
{
	msg=removeHtml(msg);	
	var palabras=msg.split(" ");
	msg="";
	for(i=0;i<palabras.length;i++)
	{
		if(palabras[i].length>25)//<wbr/>
		{
			var palabraL="";
			for(j=0;j<palabras[i].length;j+=25)
			{					
				palabraL+=palabras[i].substring(j,j+25)+"<wbr/>";					
			}
			palabras[i]=palabraL;
		}
		msg+=" "+palabras[i];
	}
	$("#area_chat_conver").append(hra+" Hrs.<wbr/><p>"+alias+" Dice:</p>");
	$("#area_chat_conver").append("<p>"+msg+"</p><br/>");
	
	document.getElementById("area_chat_conver").scrollTop=document.getElementById("area_chat_conver").scrollHeight;
	//$("#area_chat_conver").scrollTop($("#area_chat_conver").scrollHeight); version jquery 1.3	
	$("#input_chat").focus();
}

function removeHtml(msg)
{
	msg=msg.replace(/<wbr\/>/g,"=_=_=");
	msg=msg.replace(/</g,"@");
	//msg=msg.replace(/./g,"@ ");
	msg=msg.replace(/>/g,"@");
	msg=msg.replace(/location./g,"l@cation.");
	msg=msg.replace(/alert/g,"@lert");
	msg=msg.replace(/prompt/g,"pr@mt");
	msg=msg.replace(/confirm/g,"c@nfirm");
	msg=msg.replace(/history./g,"hist@ry");
	msg=msg.replace(/back/g,"b@ck");
	msg=msg.replace(/innerH/g,"inn@rH");
	msg=msg.replace(/history./g,"hist@ry.");
	msg=msg.replace(/functio/g,"functi@");
	msg=msg.replace(/=_=_=/g,"<wbr/>");
	return msg;
}

function pingContacto()
{
	if(session_started)
	{		
  		$.getJSON("Ping.php",{nick:$("#nick").val(), cant:($("#area_chat_conver").children("p").size())/2},
		  RespuestaJson);	
		setTimeout('pingContacto()', 4000);
	}
	return false;	
}

function RespuestaJson(data)
{
	$.each
	(
		data.rows,
		function(i,row) 
	 	{			
			addMsg(row.msg,row.name_emisor,row.hra);			
		}		
	);
	/*****************valide state of asistente*******************/
		
		if(data.estado_asistente=="1")
		{			
			if($("#estado_asistente").attr("lang")=="off")
			{
				$("#estado_asistente").attr({"src":"../image/conctact_asist.png"});
				$("#estado_asistente").parent("p").children("span").text("Asistente en Línea");
				$("#asistente_off").hide();
				$("#estado_asistente").attr({"lang":"on"});
			}
		}else
		{			
			if($("#estado_asistente").attr("lang")=="on")
			{
				$("#estado_asistente").attr({"src":"../image/conctact_nasist.png"});
				$("#estado_asistente").parent("p").children("span").text("Asistente Desconectado");
				$("#asistente_off").show();
				$("#estado_asistente").attr({"lang":"off"});
			}else
			$("#asistente_off").show();
		}
}
		