window.messagesCount = 0; 
var dTitle = document.title;

function showAttachment(triger, ident){
	triger.style.display = 'none';
	a = dojo.byId(ident);
	a.style.display = (a.style.display=='none'?'block':'none');
	return false;
}

function deleteMessage(mid, divId) {	
	var kw = {
		url: '/?mesasges=1&delete=' + mid,
		load: function(data){
			data = dojo.fromJson(data);
			d = dojo.byId(divId);				
			if(data.ok){ 
				d.style.display = 'none';
			} else {
				alert('Nepodařilo se smazat zprávu.');
			}
			
		},
		error: function(data){
				//console.dir(data);
				alert("Nastala chyba.: " + data + ' Prosím zkuste akci znovu, nebo kontaktujte administrátora systému.');
		},
		timeout: 20000
	};			
	dojo.xhrGet(kw);
	return false;
}

function sendMessage(reciever) {	
	message = dojo.byId('message');
	m = new String(message.value);
	//m.replace('+', '<|>');
	if(message.value == '' || message.value == ' ' || message.value == '' || reciever == ''){	
		return false;
	}
	var sc = dojo.byId('sc').value;
	var kw = {		
		url: '/?messages=1&action=sendMessage&message=' + encodeURIComponent(message.value) + '&reciever=' + encodeURIComponent(reciever) + '&sec=' + encodeURIComponent(sc),
		load: function(data){
			data = dojo.fromJson(data);		
			if(data.ok){  
				message.value = '';
			} else {
				alert('Nepodařilo se odeslat zprávu.');
			}
			
		},
		error: function(data){
				//console.dir(data);
				//alert("Nastala chyba.: " + data + ' Prosím zkuste akci znovu, nebo kontaktujte administrátora systému.');
		},
		timeout: 20000
	};			
	dojo.xhrGet(kw);
	return false;
	
}


function getNewMessages(reciever) {	
	lastMessage = dojo.byId('lastMessageTimestamp');
	if(!lastMessage){
		lastMessage = document.getElementById('lastMessageTimestamp');
	}
	
	var kw = {
		url: '/?messages=1&action=getMessages&lastMessage=' + encodeURIComponent(lastMessage.value) + '&reciever=' + encodeURIComponent(reciever),
		load: function(data){
			data = dojo.fromJson(data);
			d = dojo.byId('messagesWindow');				
			if(data.data){ 
				dojo.byId('lastMessageTimestamp').value = data.last;
				dojo.byId('lastMessageTimestamp').value = data.last;
				document.getElementById('lastMessageTimestamp').value = data.last;
				if(data.last || data.last == 0){
					d.innerHTML = data.data + d.innerHTML;
				}
			} else {
				//d.innerHTML = 'Žádné zprávy.';
			}
			setTimeout ( "getNewMessages(dojo.byId('reciever').value)", 10000 );			
		},
		error: function(data){
				//console.dir(data);
				//alert("Nastala chyba.: " + data + ' Prosím zkuste akci znovu, nebo kontaktujte administrátora systému.');
		},
		timeout: 20000
	};			
	dojo.xhrGet(kw);
	return false;
}

function getNewMessagesList() {	
	lastMessage = dojo.byId('lastNewMessageTimestamp');
	var kw = {
		url: '/?messages=1&action=getNewMessages&lastMessage=' + encodeURIComponent(lastMessage.value),
		load: function(data){
			data = dojo.fromJson(data);
			d = dojo.byId('newMessages');				
			if(data.data){  
				lastMessage.value = data.last;
				window.messagesCount = data.count; 
				document.title = "[ " + window.messagesCount  + " ] - " + dTitle;
				d.innerHTML = data.data; 
			} else { 
				//d.innerHTML = 'Žádné zprávy.';
			}
			
			setTimeout ( "getNewMessagesList()", 30000 );    
			  
		},
		error: function(data){
				//console.dir(data);
				//alert("Nastala chyba.: " + data + ' Prosím zkuste akci znovu, nebo kontaktujte administrátora systému.');
		},
		timeout: 20000
	};			
	dojo.xhrGet(kw);
	return false;
}


function showSmiles(){
	d = dojo.byId('smiles').style.display;
	dojo.byId('smiles').style.display = d=='block'?'none':'block';
	try {
		clearTimeout(t);
	} catch (e) {
	}
	return false;
}

function hideSmiles(){
	d = dojo.byId('smiles').style.display = 'none';
}

function addSmile(txtCode){	
	insertAtCursor(dojo.byId('message'), txtCode);
	clearTimeout(t);
	var t = setTimeout("hideSmiles()",1000);
	return false;
}

function insertAtCursor(myField, myValue) {
	//IE support
	if (document.selection) {
		myField.focus();
		sel = document.selection.createRange();
		sel.text = myValue;
	} else if (myField.selectionStart || myField.selectionStart == '0') { //MOZILLA/NETSCAPE support
		var startPos = myField.selectionStart;
		var endPos = myField.selectionEnd;
		myField.value = myField.value.substring(0, startPos)
		+ myValue
		+ myField.value.substring(endPos, myField.value.length);
	} else {
		myField.value += myValue;
	}
}

var MaxLengthLock = false; 
function MaxLengthCount(fieldObj,fieldMaxLength)
{
	if (!MaxLengthLock){
		MaxLengthLock = true;
		if (fieldObj.value.length > fieldMaxLength) {
			alert("Text je delší než " + fieldMaxLength + " znaků!");
			fieldObj.value = fieldObj.value.substring(0,fieldMaxLength);
		}
			var percentage = parseInt(100 - (( fieldMaxLength - fieldObj.value.length) * 100)/fieldMaxLength);
			document.getElementById(fieldObj.id + "_PBar").style.width = parseInt((parseInt(fieldObj.offsetWidth)*percentage)/100)+"px";
			MaxLengthLock = false;
	}
}

/* noticeboard */
function showNotice(){
	dojo.byId('messBoardForm').style.display = 'block';
	return false;
}

function hideNotice(){
	dojo.byId('messBoardForm').style.display = 'none';
	return false;
}

function sendOnKey(event)					
{
   var KeyID = event.keyCode;
   switch(KeyID)
   {
      case 13:
     	sendMessage(dojo.byId('reciever').value)
      break;      
   }
}


/* CHAT */
function getNewChatMessages() {	
	lastMessage = dojo.byId('lastMessageTimestamp');
	if(!lastMessage){
		lastMessage = document.getElementById('lastMessageTimestamp');
	}
		
	var kw = {
		url: '/?messages=1&action=getChatMessages&lastMessage=' + encodeURIComponent(lastMessage.value),
		load: function(data){
			data = dojo.fromJson(data);
			d = dojo.byId('messagesWindow');				
			if(data.data){ 
				dojo.byId('lastMessageTimestamp').value = data.last;
				dojo.byId('lastMessageTimestamp').value = data.last;
				document.getElementById('lastMessageTimestamp').value = data.last;
				if(data.last || data.last == 0){
					d.innerHTML = data.data + d.innerHTML;
				}
			} else {
				//d.innerHTML = 'Žádné zprávy.';
			}
			setTimeout ( "getNewChatMessages()", 10000 );			
		},
		error: function(data){
				//console.dir(data);
				//alert("Nastala chyba.: " + data + ' Prosím zkuste akci znovu, nebo kontaktujte administrátora systému.');
		},
		timeout: 20000
	};			
	dojo.xhrGet(kw);
	return false;
}

function sendChatMessage() {	
	message = dojo.byId('message');
	m = new String(message.value);
	if(message.value == '' || message.value == ' '){	
		return false;
	}
	
	color = dojo.byId('myChatColor').value;
	pohlavi = dojo.byId('myPohlavi').value;
	
	var kw = {
		url: '/?messages=1&action=sendChatMessage&message=' + encodeURIComponent(message.value)  + "&color=" + encodeURIComponent(color) + "&pohlavi=" + encodeURIComponent(pohlavi),
		load: function(data){
			data = dojo.fromJson(data);		
			if(data.ok){ 
				message.value = '';
			} else {
				alert('Nepodařilo se odeslat zprávu.');
			}
			
		},
		error: function(data){
				//console.dir(data);
				//alert("Nastala chyba.: " + data + ' Prosím zkuste akci znovu, nebo kontaktujte administrátora systému.');
		},
		timeout: 20000
	};			
	dojo.xhrGet(kw);
	return false;
	
}

function sendOnKeyChat(event)					
{
   var KeyID = event.keyCode;
   switch(KeyID)
   {
      case 13:
     	sendChatMessage()
      break;      
   }
}

function getChatUsers() { 
		
	var kw = {
		url: '/?messages=1&action=getChatusers',
		load: function(data){
			data = dojo.fromJson(data);
			d = dojo.byId('chaters');
			if(data.data){ 
				d.innerHTML = data.data;
			} else {
				//d.innerHTML = 'Žádné zprávy.';
			}
			setTimeout ( "getChatUsers()", 30000 );			
		},
		error: function(data){
				//console.dir(data);
				//alert("Nastala chyba.: " + data + ' Prosím zkuste akci znovu, nebo kontaktujte administrátora systému.');
		},
		timeout: 20000
	};			
	dojo.xhrGet(kw);
	return false;
}

