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); } }