/**
 * @author leeppolis
 */

var chat_container = "";
var chat_url = "";

function chat_submit() {
	$(document).stopTime("chatUpdater");
	chat_setcookie('chat_action', 1);
	var message = $('#chat_message').val();
	if (message.indexOf('\n') > 1) {
		var data = {
			action:'post',
			message:message
		};
		$.post(
			chat_url,
			data,
			chat_update_list
		);
		$('#chat_message').val('');
	}
	if (message.indexOf('\n') <= 1 && message.indexOf('\n') >= 0) {
	  $('#chat_message').val('');
	}
}

function chat_play_sound() {
	$('#chatSound').html('').html('<object type="application/x-shockwave-flash" id="chatSoundPlayer" width="2" height="2" data="/chat/bip.swf" wmode="transparent"><param name="movie" value="/chat/bip.swf" /><param name="wmode" value="transparent" /></object>');
	window.focus();
}

function chat_start_blinking() {
	if ($('#chatCommands.active').length > 0) {
		$('#chatCommands').removeClass('active');
	} else {
		$('#chatCommands').addClass('active');
		
	}
}

function chat_blink() {
	$(document).everyTime(250, 'chatBlinker', chat_start_blinking, 20);
}

function chat_update_list(data) {
	if (data != "") {
		if ($('#chatMessages ul').length > 0) {
			var $current = $('#chatMessages ul').html().toLowerCase().replace(/<br>/gi, '<br />').replace(/\"/gi,'').replace(/\n/g,'').replace(/\s+/g,"").replace(/^\s+/,"").replace(/\s+$/,"");
			$('#chatSound').html(data);
			var $tmp = $('#chatSound').html().toLowerCase().replace(/<br>/gi, '<br />').replace(/\"/gi,'').replace(/\n/g,'').replace(/\s+/g,"").replace(/^\s+/,"").replace(/\s+$/,"");
			$('#chatSound').html('');
			// alert (data);
			// alert ($current + " - " + $tmp);
			if ($current != $tmp) {
				$('#chatMessages ul').html(data);
				chat_play_sound();
				chat_blink();
			}
		}
		chat_move_messages();
	}
	if ($('.waiting').length > 0)
		$('#chatAddMessage').hide();
	else 
		$('#chatAddMessage').show();
	chat_set_refresh();
}

function chat_set_refresh() {
	$(document).everyTime(2500, 'chatUpdater', chat_update_messages);
}

function chat_move_messages() {
	$('#chatMessages').scrollTo('max',500);
}

function chat_update_messages() {
	$(document).stopTime("chatUpdater");
	var data = {
		action:'update'
	};
	$.post(
		chat_url,
		data,
		chat_update_list
	);
}

function chat_logout() {
	var $msg = undefined;
	if (chat_readcookie('chat_action') == 1) {
		$msg = undefined;
	} else {
		$msg = 'Sicuro?\nUscendo dalla chat perderai il tuo posto in coda.';
	}
	if ($msg != undefined) {
		if (confirm($msg)) {
			chat_deletecookie('chat_minimize');
			chat_deletecookie('chat_action');
			$(document).stopTime("chatUpdater");
			var data = {
				action:'logout'
			};
			$.post(
				chat_url,
				data,
				chat_destroy
			);
		}
	} else {
		chat_deletecookie('chat_minimize');
		chat_deletecookie('chat_action');
		$(document).stopTime("chatUpdater");
		var data = {
			action:'logout'
		};
		$.post(
			chat_url,
			data,
			chat_destroy
		);
	}
}

function chat_ended() {
	chat_deletecookie('chat_minimize');
	$(document).stopTime("chatUpdater");
	var data = {
		action:'logout'
	};
	$.post(
		chat_url,
		data,
		chat_end
	);
}

function chat_end(data) {
	$('#chatGalbu').remove();
	document.location.href = '/vivereinarmonia/';
}

function chat_destroy() {
	$('#chatGalbu').remove();
}

function chat_minimize() {
	var $h = $('#chatGalbu').css('height');
	if ($h == '400px') {
		chat_setcookie('chat_minimize', 1);
		$('#chatGalbu').css('height','28px');
		$('#chatMinimizeSession').css('background-image','url(/images/chat/ico-max.gif)');
	} else {
		chat_deletecookie('chat_minimize');
		$('#chatGalbu').css('height','400px');
		$('#chatMinimizeSession').css('background-image','url(/images/chat/ico-min.gif)');
	}
}

function chat_invite() {
	txtCont = "/vivereinarmonia/dynamic/chat_invite.php";
	Shadowbox.open({
		player:     'iframe',
		title:      'Invita alla chat',
		content:    txtCont,
		height:     288,
		width:      595
	});
}

function chat_login_submit() {
	var username = $('#chat_username').val();
	var password = $('#chat_password').val();
	var action = "login";
	var post_data = {
		username: username,
		password: password,
		action: action
	}
	$('#' + chat_container).html('<p class="message">Verifico username e password...</p>');
	$.post(
		chat_url,
		post_data,
		function (data) {
			if (data == 'KO') {
				chat_init();
			} else {
				$('#' + chat_container).html(data);
				chat_move_messages();
				chat_set_refresh();
			}
		}
	);
}

function chat_set_first_move() {	
	chat_move_messages();
}

function chat_init (container,url) {
 	chat_container = container;
	chat_url = url;
 	var chat_init_num_messages = 30;
  $('#' + chat_container).html('<p class="message">Inizializzo la chat...</p>').load(chat_url,{num:chat_init_num_messages},chat_set_first_move);
	chat_set_refresh();
	if (chat_readcookie('chat_minimize') == 1) {
		chat_minimize();
	}
}

//------------------------------------------------
// Utilities
//------------------------------------------------

function chat_setcookie( name, value, expires, path, domain, secure ) {
	var today = new Date();
	today.setTime( today.getTime() );
	if ( expires ) {
		expires = expires * 1000 * 60 * 60;
	}
	var expires_date = new Date( today.getTime() + (expires) );
	document.cookie = name + "=" +escape( value ) +
		( ( expires ) ? ";expires=" + expires_date.toGMTString() : "" ) +
		( ( path ) ? ";path=" + path : "" ) +
		( ( domain ) ? ";domain=" + domain : "" ) +
		( ( secure ) ? ";secure" : "" );
}

function chat_readcookie( check_name ) {
	var a_all_cookies = document.cookie.split( ';' );
	var a_temp_cookie = '';
	var cookie_name = '';
	var cookie_value = '';
	var b_cookie_found = false; // set boolean t/f default f
	for ( i = 0; i < a_all_cookies.length; i++ ) {
		a_temp_cookie = a_all_cookies[i].split( '=' );
		cookie_name = a_temp_cookie[0].replace(/^\s+|\s+$/g, '');
		if ( cookie_name == check_name ) {
			b_cookie_found = true;
			if ( a_temp_cookie.length > 1 ) {
				cookie_value = unescape( a_temp_cookie[1].replace(/^\s+|\s+$/g, '') );
			}
			return cookie_value;
			break;
		}
		a_temp_cookie = null;
		cookie_name = '';
	}
	if ( !b_cookie_found ) {
		return null;
	}
}

function chat_deletecookie( name, path, domain ) {
	if ( chat_readcookie( name ) )
		document.cookie = name + "=" +( ( path ) ? ";path=" + path : "") +
			( ( domain ) ? ";domain=" + domain : "" ) +
			";expires=Thu, 01-Jan-1970 00:00:01 GMT";
}