﻿//
// Copyrights 2011
// Braulio Pico - Piko Development - http://www.pikodev.com/
//
var userMessage=null;var loginMessage='';var execProperties=false;
$(document).ready(function(){if ($("#btn-send").length > 0){$("#btn-send").click(function(){sendMessage();});$("#txt-message").textLimit(100);$("#lnk-logout").click(function(){logout();}).show();$("#btn-users").click(function(){getUsers();});$('#txt-message').keypress(function(e){if (e.keyCode==13){e.preventDefault(); sendMessage();}});} else{$("#btn-login").click(function(){login();});$('#txt-login').keypress(function(e){if (e.keyCode==13){e.preventDefault(); login();}});}loginMessage=$(".box-form span").text();userMessage=new UserMessage();userMessage.MessageID=0;getMessage();});
function UserMessage(){var MessageID=0;var Name=null;var Text=null;var DateAdded=null;}
function login(){var pattern=/^\w{4,10}$/;var name=$.trim($('#txt-login').val());var request={Name:name};if (!pattern.test(name)){showError('Formato de nombre de usuario inválido!');return false;}$.ajax({type:'POST',contentType:'application/json; charset=utf-8',url:'/WebService/ChatService.asmx/validateLogin',data:$.toJSON({"jsonString":$.toJSON(request)}),dataType:'json',success:function(result){eval(result.d);},error:function(result){alert($.evalJSON(result.responseText).Message);}});}
function getUsers(){if ($(".box-users").css('display')=='none'){$(".box-users").html('');$.ajax({type:'POST',contentType:'application/json; charset=utf-8',url:'/WebService/ChatService.asmx/getUsers',dataType:'json',success:function(result){$.each(result.d,function(index,data){$(".box-users").append('<div><strong>' + data.Name + '</strong></div>');});$(".box-users").slideRightShow(500,function(){try{userProperties();} catch (e){;}});$("#btn-users").addClass('on');},error:function(result){alert($.evalJSON(result.responseText).Message);}});} else{$(".box-users").slideRightHide(500);$("#btn-users").removeClass('on');}}
function getMessage(){$(".box-messenger").oneTime(2500,function(){$.ajax({type:'POST',contentType:'application/json; charset=utf-8',url:'/WebService/ChatService.asmx/getMessage',data:$.toJSON({"jsonString":$.toJSON(userMessage)}),dataType:'json',success:function(result){if (result.d==null){window.location.href='/Banned.aspx';}var numOfMessages=$(".box-messenger").children().length;$.each(result.d,function(index,data){$(".box-messenger").append('<div><strong>' + data.Name + ':</strong>' + data.Text + '</div>');userMessage.MessageID=data.MessageID;});if ($(".box-messenger").children().length > numOfMessages){$(".box-messenger").scrollTo('div:last',500);}getMessage();},error:function(result){getMessage();}});});}
function showError(msg){$(".box-form span").html(msg);$(".box-form span").css('background','red');}
function hideError(){$(".box-form span").html(loginMessage);$(".box-form span").removeAttr('style');}
function displayMessenger(){$(".box-form").html('<span class="chat-list" id="btn-users">En linea</span><textarea id="txt-message"></textarea><button type="button" id="btn-send">Enviar</button>');$("#btn-send").click(function(){sendMessage();});$("#btn-users").click(function(){getUsers();});$("#txt-message").textLimit(100);$("#lnk-logout").click(function(){logout();}).show();$('#btn-login').unbind('click');$('#txt-message').keypress(function(e){if (e.keyCode==13){e.preventDefault(); sendMessage();}});userMessage.Text='';}
function sendMessage(){userMessage.Text=$('#txt-message').val();if (userMessage.Text != ''){$.ajax({type:'POST',contentType:'application/json; charset=utf-8',url:'/WebService/ChatService.asmx/sendMessage',data:$.toJSON({"jsonString":$.toJSON(userMessage)}),dataType:'json',success:function(result){$('#txt-message').val('');},error:function(result){alert($.evalJSON(result.responseText).Message);}});}}
function logout(){$.ajax({type:'POST',contentType:'application/json; charset=utf-8',url:'/WebService/ChatService.asmx/logout',data:{},dataType:'json',success:function(result){eval(result.d);},error:function(result){alert($.evalJSON(result.responseText).Message);}});}
function hideMessenger(){$(".box-form").html('<span>Para usar el chat ingresa tu nombre:</span><input type="text" id="txt-login" /><button type="button" id="btn-login">Entrar</button>');$("#btn-login").click(function(){login();});$('#txt-login').keypress(function(e){if (e.keyCode==13){e.preventDefault(); login();}});$('#lnk-logout').unbind('click').hide();$("#btn-send").unbind('click');$("#btn-users").unbind('click');userMessage.Name=userMessage.Text='';if ($(".box-users").css('display')=='block'){$(".box-users").slideRightHide(500,function(){});$("#btn-users").removeClass('on');}}
jQuery.fn.extend({slideRightShow:function(speed,callback){return this.each(function(){$(this).show('slide',{direction:'right'},speed,callback);});},slideLeftHide:function(speed,callback){return this.each(function(){$(this).hide('slide',{direction:'left'},speed,callback);});},slideRightHide:function(speed,callback){return this.each(function(){$(this).hide('slide',{direction:'right'},speed,callback);});},slideLeftShow:function(speed,callback){return this.each(function(){$(this).show('slide',{direction:'left'},speed,callback);});}});
