var serversync_request = false;

var serversync_handler = function(response, responseText) {
	var i=0;
	var item=false;
	var usermessages_parsed=false;
	if (!response) return;
	
	for (i=0;i<response.length;i++)
	{
		item = response[i];
		if (item.sdo=='echo')
		{
			alert(item.text);
		}
		if (item.sdo=='playwav')
		{
			var el = new Element('embed',{
				'src' : item.file,
				'controller' : true,
				'autoplay': true,
				'autostart' : true,
				'type' : "audio/wav",
				'loop' : false,
				'volume' : 100,
				'hidden' : true 
			})
			
			el.inject($('mainContainerLeft'));			
		}
		if (item.sdo=='addusermessage')
		{
			addusermessage(item.type,item.text);
		}
		if (item.sdo=='usermessages')
		{
			parse_usermessages(item.data);
			usermessages_parsed=true;
		}
		if (item.sdo=='chatentry' || item.sdo=='teamchatentry')
		{
			var gender = 'male';
			if (item.sex=='w') { gender='female'; }
			
			var span_date = new Element('span',{'class': 'date',   'html':item.time});
			var userlink  = new Element('span',{'class': 'user', 'html':item.userlink, 'href':'/profil/'+item.username+'/'});
			var span_text = new Element('span',{'class': 'text',   'html':item.text});
			
			var chatpost_name = (item.sdo=='teamchatentry')? 'teamchatpost_':'chatpost_';
			var last_chat_id = (item.sdo=='teamchatentry') ? item.team_chat_id : item.chat_id;
			var ele = new Element('li', { 'id': chatpost_name+last_chat_id, 'style': 'display:none'});
			
			var chat_name= (item.sdo=='teamchatentry')? '.teamchat':'.chat';
			$$(chat_name+' .msglist').each(function (chatbox){
				chatbox.grab(ele,'top');
			});
			ele.grab(span_date);
			ele.grab(userlink);
			if (Team && item.sdo=='chatentry')
			{
				var span_del = new Element('span',{'class': 'text',   'html':'(<a onclick="delchatpost('+item.chat_id+')" class="pointer">del</a>)'});
				ele.grab(span_del);
			}
			ele.grab(span_text);
			chatparse(span_text);
			var last_li = $$(chat_name+' .msglist li').getLast();
			new Fx.Reveal(last_li,{
				onComplete: function () {last_li.dispose(); }
				
			}).dissolve();
			new Fx.Reveal(ele).toggle();
			
//			last_li.dispose();			
		}
		
		if (item.sdo=='chatentrydel' && $('chatpost_'+item.chat_id))
		{
			$('chatpost_'+item.chat_id).dispose();
		}
	}
	
	if (!usermessages_parsed && $('usermessages'))
	{
		$('usermessages').destroy();
	}
	
	serversync_request=false;
}

var serversync = (function ()
{
	if (serversync_request==true) { return;	}
	serversync_request = true;
	
	var serversync_data={method:'pull'};
	if(typeof(js_profil_user_id) != undefined) 
	{
		serversync_data.js_profil_user_id = js_profil_user_id;
	}
	
	var chatpost_item = $$('.chat').getElement('.msglist').getFirst();
	if (chatpost_item.length>0)
	{
		serversync_data.last_chat_id = chatpost_item[0].get('id').replace(/chatpost_/,'');
	}
	
	var teamchatpost_item = $$('.teamchat').getElement('.msglist').getFirst();
	if (teamchatpost_item.length>0)
	{
		serversync_data.last_team_chat_id = teamchatpost_item[0].get('id').replace(/teamchatpost_/,'');
	}
	
	new Request.JSON({
	    method: 'get',
	    headers: {'Accept':'', 'Accept-Language':'', 'Accept-Encoding':'', 'Accept-Charset':'', 'User-Agent':'' },
	    url: '/ajax/serversync/',
/*	    initialDelay: 1000,
	    delay: 5000,
	    limit: 15000,
   */
	    onSuccess : serversync_handler
	}).get(serversync_data);

});
//serversync();
serversync.periodical(20000);


var last_usermessage_data;
function parse_usermessages(data)
{
	if (data==last_usermessage_data) return;
	
	if (data.pn && data.pn>0)
	{
			addusermessage('pn','<a class="pn" href="/pn/box/posteingang/">'+((data.pn==1)?'Neue Nachricht':'('+data.pn+') Neue Nachrichten')+'</a>');
	} else
	{
		delusermessage('pn');
	}
	
	if (data.kugel && data.kugel>0)
	{
			addusermessage('kugel','<a class="kugel" href="/meinekugel/">'+((data.kugel==1)?'Neue Kugelnachricht':'('+data.kugel+') Neue Kugelnachricht')+'</a>');
	} else
	{
		delusermessage('kugel');
	}
	
	if (data.befriend && data.befriend>0)
	{
		addusermessage('befriend','<a class="befriend" href="/myfriends/befriend/waiting/">'+((data.befriend==1)?'Freundschaftsantrag':'('+data.befriend+') Freundschaftsanträge')+'</a>');
	}
	else
	{
		delusermessage('befriend');
	}
	last_usermessage_data=data;
}

function delusermessage(type)
{
	var messagesbox = $('usermessages');
	if (!messagesbox) return;
	var liele = messagesbox.getElement('li.'+type);
	if (!liele) return;
	liele.destroy();
	
	var lieles = messagesbox.getElement('li');
	if (!lieles || lieles.length==0)
	{
		messagesbox.destroy();
	}
}

function addusermessage(type, text)
{
	var messagesbox = $('usermessages');
	if (!messagesbox)
	{
		var ul = new Element('ul');
		var head = new Element('div',{
			'text':'Neue Mitteilungen',
			'class': 'boxHeader color5'
		});
		var leftmenue = new Element('div',{
			'class': 'leftMenue'
		});
		var messagesbox  = new Element('div',{
					'id':'usermessages',
					'class': 'small box'
				}
		);
		head.inject(messagesbox);
		ul.inject(leftmenue);
		leftmenue.inject(messagesbox);
		messagesbox.inject($('mainContainerLeft'),'top');
	}
	
	var liele = messagesbox.getElement('li.'+type);
	if (!liele)
	{
		if (!ul)
		{
			var ul=messagesbox.getElement('ul');
		}
		var liele = new Element('li',{
			'class':type
		})
		liele.inject(ul);
	}
	liele.innerHTML=text;
	
}

