var file = 'home';
var lfixed = 0;
var busy = 0;
var xmlhttp;

function setContent(value) {
 if (document.getElementById) {
 var mainpage = document.getElementById('mainpage');
 }

 mainpage.innerHTML = value;
}

function startAJAX() {
 try {
 xmlhttp = new XMLHttpRequest();
 } catch(err1) {
 var ieXmlHttpVersions = [];
 ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.7.0";
 ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.6.0";
 ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.5.0";
 ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.4.0";
 ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp.3.0";
 ieXmlHttpVersions[ieXmlHttpVersions.length] = "MSXML2.XMLHttp";
 ieXmlHttpVersions[ieXmlHttpVersions.length] = "Microsoft.XMLHttp";

 var i;
 for (i=0;i < ieXmlHttpVersions.length;i++) {
 try {
 xmlhttp = new ActiveXObject(ieXmlHttpVersions[i]);
 break;
 } catch (err2) {
 }
 }
 }

 if (typeof xmlhttp == "undefined") {
 setContent("<h1>XMLHttp cannot be created!</h1>");
 return false;
 } else {
 return xmlhttp;
 }
}

function showPage() {
 if (xmlhttp.readyState==4) {
 setContent(xmlhttp.responseText);
 window.scroll(0,0);
 busy = 0;
 }
}

function getPage(page) {
 busy = 1;
 var myurl = "gc.php?p="+page+"&t="+Date.parse(new Date());
 if ((xmlhttp = startAJAX())) {
 xmlhttp.open("GET",myurl,true);
 xmlhttp.onreadystatechange=showPage;
 xmlhttp.send(null);
 } else {
 alert ("AJAX failed");
 }
}

function loadPage(value) {
 getPage(value);
}

function fixLinks() {
 var test;
 busy = 1;
 lfixed = 1;
 for (var count = 1;count < 99999;count ++) {
 if ((test = document.getElementById('link'+count))) {
 text = test.href;
 tp = text.indexOf('?p=');
 if (tp < 0) {
 var pp = text.indexOf('.');
 test.href = "#"+text.slice(7, pp);
 } else {
 test.href = "#"+text.slice(tp + 3);
 }
 } else {
 break;
 }
 }
 busy = 0;
}


/**
 * Get control of an element, across all browsers.
 *
 */
function gEl(value) {
  if (document.getElementById) {
    return document.getElementById(value);
  } else if (document.layers) {
    return document.layers[value];
  } else if (document.all) {
    return document.all[value];
  }
}


/**
 * Hide a displayed element.
 *
 */
function hidePiece(name) {
  gEl(name).style.display="none";
}


/**
 * Display a hidden element.
 *
 */
function showPiece(name) {
  gEl(name).style.display="";
}


/**
 * Toggle a certain element. The element will display
 * if hidden, and hide if displayed.
 *
 */
function togglePiece(name) {
  if (gEl(name).style.display == "") {
    hidePiece(name);
  } else {
    showPiece(name);
  }
}


//One-Line Comment Test
function upd() {
 /*if (busy == 0) {
 var text = document.location.href;
 var tp = text.indexOf("#")+1;
 if (tp > 0) {
 var file2 = text.slice(tp);
 if (file2 != file) {
 file = file2;
 loadPage(file);
 }
 } else if (lfixed == 0) {
 //fixLinks();
 }
 }*/
}

var timeDiff = {
 setStartTime:function (){
 d = new Date();
 time = d.getTime();
 },

 getDiff:function (){
 d = new Date();
 return (d.getTime()-time);
 }
}

function procRate() {
 if (gEl('rate_rate').value < 10) {
 gEl('desc').style.display = '';
 gEl('nodesc').style.display = 'none';
 } else {
 gEl('nodesc').style.display = '';
 gEl('desc').style.display = 'none';
 }
}

function toTitleCase(str) {
 if (str.substr(1) == str.substr(1).toUpperCase() || str.substr(1) == str.substr(1).toLowerCase()) {
 return str.replace(/\w\S*/g, function(txt){return txt.charAt(0).toUpperCase() + txt.substr(1).toLowerCase();});
 } else {
 return str.charAt(0).toUpperCase() + str.substr(1);
 }
}

function fixSentences(str) {
 str = str.replace(/[\.\?!]\s*[a-zA-Z]/g, function(txt){return txt.charAt(0)+" "+txt.charAt(txt.length-1).toUpperCase();});
 str = str.replace(/[\?!]*/g, function(txt){return txt.charAt(0);});
 str = str.replace(/\s{1,10}/g, " ");
 str = str.replace(/[\.]{4,}/g, "...");
 str = str.replace(" i ", " I ");
 return str.charAt(0).toUpperCase() + str.substr(1);
}

function evalIntro() {
 var str = gEl('intro').value;
 var sentcount = 0;
 var lock = 0;
 var message = '';
 var tooshort = 0;

 if (str.length < 128) {
 message = 'Your description could definitely be expanded. Try to add at least '+(128-str.length)+' more letters';
 var tooshort = 1;
 }

 for (var i = 0;i < str.length;i++) {
 if (str.charAt(i) == '.' || str.charAt(i) == '!' || str.charAt(i) == '?') {
 if (lock == 0) {
 sentcount++;
 lock = 1;
 }
 } else {
 lock = 0;
 }
 }
 if (sentcount < 2) {
 if (tooshort > 0) {
 message += ' an';
 } else {
 message = 'Your description could definitely be expanded. Try to ad';
 }
 message += 'd '+(2-sentcount)+' more sentences.';
 } else {
 if (tooshort > 0) {
 message += '. Need ideas?';
 } else if (sentcount < 3) {
 message = 'Don\'t forget to close off your third sentence.';
 }
 }

 if (message.length > 0) {
 gEl('inteval').style.backgroundColor='#FFDDDD';
 gEl('inteval').innerHTML=message;
 } else {
 gEl('inteval').style.backgroundColor='#DDFFDD';
 gEl('inteval').innerHTML='Your description looks great so far, but keep writing if you want. When you\'re satisfied, be sure to take a moment to fix any spelling or grammar errors before you submit.';
 }
}

