
var requestType = "json"; //Use jsonp for crossdomain chatServers

var chatServer = '';

if(loggedIn == "employer"){
	chatusertype = 1;	
} else if(loggedIn == "jobseeker") {
	chatusertype = 0;
} else {
	chatusertype = -1;
}

var peer = 0;
var lastRecievedTimestamp = 0;

function msgPullCallback(response,errorcode){
	if(errorcode == "success") {
		//Add now messages to chat if the chat is open, else show chat.
		if(typeof(response.status) == "undefined"){
			if(peer != 0){
				addMessagesToChat(response);
			} else {
				peer = (chatusertype == 0) ? response[0].compid : response[0].persid;
				
				createChatPopup();
				addMessagesToChat(response);
			} 
		}
	} else {
		alert('chat error: '+errorcode);	
	}
	pullMessages();

}
function addMessagesToChat(messages){
	addHTML = '';
	for(i=0; i<messages.length; i++){
		addHTML += '<strong>'+((messages[i].sender == 0) ? 'Jobsøger:' : 'Virksomhed:')+'</strong><br/>'+messages[i].msg+'<br /><br />';
		lastRecievedTimestamp = messages[i].timestamp;
	}
	$("#chatMessages").append(addHTML);
	scrollChatToBottom();
}
function createChatPopup(){

	if(chatusertype != -1){
		$.ajax({url:'chat_gui.php?peer='+peer,async:false,success:function(gui){
			createPopupSimpleContent('chat',gui,583);
                        $('#chatInput').focus();
	    }});
	}
}

function startChat(pers){
	if(chatusertype !=1 ){
		alert('Du skal være logget ind som virksomhed for at chatte med en jobsøger.');
	} else if(chatusertype==1) {
		peer = pers;
		$.post(chatServer+'chat_sync.php',{action:'startsession',peer:pers},function(response){
			if(response.status == "OK"){
				createChatPopup();	
			} else if(response.status == "CONTACTERROR"){
				if(response.credits == 0){
					if(confirm('Du kan ikke chatte med denne bruger, da du ikke har kreditter til CV-kontakt.\nØnsker du at købe CV-kontakter nu?')){
						window.location.href = 'planning.php';
					}
				} else {
					
					if(/*confirm('Du har ikke købt adgang til denne jobsøger endnu. Du har '+response.credits+' CV-kontakter til rådighed,\nVil du bruge en CV-kontakt nu?\n(Du vil fremover have adgang til chat og kontaktinformation for denne jobsøger)')*/ 1){
						$.post(chatServer+'chat_sync.php',{action:'startsession',peer:peer,usecontact:1},function(response){
							if(response.status == "OK"){
								createChatPopup();
								
							} else {
								alert('1'+response.status);	
							}
					    },requestType);
					}
			
			
				}
			} else {
				alert('2'+response.status);	
			}
	    },requestType);

	}
}
function gotoWebcamChat(){
	pullRequest.abort();
	$.post('chat_sync.php',{action:'invitewebcam',peer:peer}, function(response){ pullMessages(); });
}
function confirmVideoChat(lobbyid,reply){
	webcamlobbyid = lobbyid;
	webcamreply	  = reply;
	
	if(reply == true){ replyStr = 'accept'; } else { replyStr = "decline"; }
	
	$.post('chat_sync.php',{action:'acceptwebcam',lobbyid:lobbyid,reply:replyStr,peer:peer}, function(response){
		if(	webcamlobbyid && webcamreply == true ){
			window.location.href = 'video_lobby.php?id='+webcamlobbyid;
		}
    });
}

function sendChatMessage(){
	pullRequest.abort();
	msg = $("#chatInput").val();
	if(msg != ""){
		addHTML = '<strong>'+((chatusertype == 0) ? 'Jobsøger:' : 'Virksomhed:')+'</strong><br/>'+msg+'<br /><br />';
		$("#chatMessages").append(addHTML);
		$.post(chatServer+'chat_sync.php',{action:'send',msg:msg,reciever:peer},function(response){
			if(response.status == "OK"){ 
				lastRecievedTimestamp = response.timestamp;
			} else {
				alert(response.status);
			}
			pullMessages();
		},requestType);
	}
	scrollChatToBottom();
	$("#chatInput").val('');
}

var pullRequest;
function pullMessages(){
		pullRequest = $.post(chatServer+'chat_sync.php',{action:'pull',timestamp:lastRecievedTimestamp,peer:peer},msgPullCallback,requestType);
}

if(chatusertype != -1){
	$(document).ready(function(){ pullMessages(); });
}

function scrollChatToBottom(){
	$("#chatMessages").scrollTop(	document.getElementById('chatMessages').scrollHeight   );
}

function exitChat(){
	$.post(chatServer+'chat_sync.php',{action:'exit',peer:peer},function(){
		Popup.hide('chat');
 	});
	peer = 0;	
	lastRecievedTimestamp = 0;	
}
