var previous_chat = ''; // Keep track of changes in chat content
var chat_refresh_counter = 0; // Keep track of chat refreshes. Reset if user sends in chat.
var chat_refresh_limit = 720; // Limit to chat refreshes (5 minutes at every 5 seconds)
var chat_initial_load = true;
// AJAX (HttpRequest) Object.
function AJAX(){
if (window.XMLHttpRequest){
return new XMLHttpRequest();
} else if (window.ActiveXObject){
return new ActiveXObject("Msxml2.XMLHTTP");
}
}
function autoSaveInit(){
putHTML('autosave_info','Autosave pending...');
setInterval(autoSave,10000); // Every 10 seconds. Will change this later.
}
function autoSave(){
var posting_content = getHTML('post_content');
if(posting_content != ''){
var ajax = AJAX();
ajax.onreadystatechange = function(){
if((ajax.readyState == 4) && (ajax.status == 200)){
var response = ajax.responseText;
var timestamp = parseJSON(response).timestamp;
var datetime = new Date(timestamp * 1000);
var formatted_datetime = leadingZeroes(datetime.getHours()) + ':' + leadingZeroes(datetime.getMinutes()) + ':' + leadingZeroes(datetime.getSeconds());
putHTML('autosave_info','Most recent autosave at: ' + formatted_datetime);
}
};
ajax.open('POST','ajax',true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var parameters = 'mode=autosave' + '&content=' + encodeURIComponent(posting_content) + '&nocache=' + Math.random();
ajax.send(parameters);
}
}
function autoSaveRetrieve(){
var ajax = AJAX();
ajax.onreadystatechange = function(){
if((ajax.readyState == 4) && (ajax.status == 200)){
var response = ajax.responseText;
var content = parseJSON(response).content;
putHTML('post_content',content);
}
};
ajax.open('POST','ajax',true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var parameters = 'mode=autosave_retrieve' + '&nocache=' + Math.random();
ajax.send(parameters);
}
function previewPost(){
var posting_content = getHTML('post_content');
if(posting_content != ''){
var ajax = AJAX();
ajax.onreadystatechange = function(){
if((ajax.readyState == 4) && (ajax.status == 200)){
var response = ajax.responseText;
var content = parseJSON(response).content;
putHTML('post_preview',content);
}
};
ajax.open('POST','ajax',true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var parameters = 'mode=preview_post&content=' + encodeURIComponent(posting_content) + '&nocache=' + Math.random();
ajax.send(parameters);
document.getElementById('post_preview').style.display = 'block';
}
}
function updateChat(){
if(chat_refresh_counter >= chat_refresh_limit){
alert('You have remained idle for an hour. Please refresh the page in order to view the chat.');
clearInterval(chatInterval);
return false;
}
var ajax = AJAX();
ajax.onreadystatechange = function(){
if((ajax.readyState == 4) && (ajax.status == 200)){
var response = ajax.responseText;
var chat_lines = parseJSON(response).content;
try{
var chat_lines_count = chat_lines.length;
var output = '';
for(var i=0; i\n";
}
putHTML('chat_lines',output);
if(output != previous_chat){
scrollToBottom('chat_lines');
if(!chat_initial_load){
playNotifySound();
}
}
previous_chat = output;
chat_refresh_counter++;
chat_initial_load = false;
} catch(e){
}
}
};
ajax.open('POST','ajax',true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var parameters = 'mode=get_chat&nocache=' + Math.random();
ajax.send(parameters);
}
function sendChatLine(){
var o = document.getElementById('chat_input');
var chat_line = o.value;
if(chat_line != ''){
var ajax = AJAX();
ajax.onreadystatechange = function(){
if((ajax.readyState == 4) && (ajax.status == 200)){
var response = ajax.responseText;
var chat_lines = parseJSON(response).content;
try{
var chat_lines_count = chat_lines.length;
var output = '';
for(var i=0; i\n";
}
putHTML('chat_lines',output);
previous_chat = output;
scrollToBottom('chat_lines');
// playNotifySound();
o.value = '';
chat_refresh_counter = 0;
} catch(e){
}
}
};
ajax.open('POST','ajax',true);
ajax.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
var parameters = 'mode=put_chat&content=' + encodeURIComponent(chat_line) + '&nocache=' + Math.random();
ajax.send(parameters);
}
}