
function fixHeight()
{
  if (document.getElementById('sidenav'))
  {
    var elHeight = document.getElementById('sidenav').offsetHeight;
    var mlHeight = document.getElementById('main').offsetHeight;
    elHeight += 20;
    if (mlHeight < elHeight)
    {
      document.getElementById('main').style.height = elHeight+'px';
    }
  }
}

function pemail(ints,name)
{
  var proEmail='';
  if (ints.length>0)
  {
    for (i=0;i<ints.length;i++)
      proEmail+=String.fromCharCode(ints[i])
    document.write('<a href="mailto:'+proEmail+'">'+name+'</a>');
    proEmail='';
  }
}

// IE PNG fix
if (document.all && document.styleSheets && document.styleSheets[0] && document.styleSheets[0].addRule) 
{
    document.styleSheets[0].addRule ('img', 'behavior: url(/fics/iepngfix.htc)');
    document.styleSheets[0].addRule ('div', 'behavior: url(/fics/iepngfix.htc)');
}

var xhreq;

function checkNameInUse (type, value, destid) {
    var dest = document.getElementById (destid);

    if (value == "") {
        dest.innerHTML = "";
        return;
    }

    if (type == "name" && !value.match (new RegExp ('[A-Za-z0-9]'))) {
        dest.style.color = "#800000";
        dest.innerHTML = "Invalid username!";
        return;
    }

    if (type == "email" && (!value.match ('@') || value.match (' '))) {
        dest.style.color = "#800000";
        dest.innerHTML = "Invalid email!";
        return;
    }

    xhreq = false;
    dest.innerHTML = "trying...";
    if (window.XMLHttpRequest) {
        dest.innerHTML += " has XHR...";
        try {
            xhreq = new XMLHttpRequest();
            dest.innerHTML += " it worked...";
        } catch (e) {
            xhreq = false;
            dest.innerHTML += " it didn't work...";
        }
    } else if (window.ActiveXObject) {
        dest.innerHTML += " has AXO...";
        try {
            xhreq = new ActiveXObject ("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                xhreq = new ActiveXObject ("Microsoft.XMLHTTP");
            } catch (e) {
                xhreq = false;
            }
        }
    } else {
        dest.innerHTML += " has nothing...";
        xhreq = false;
    }
    
    if (xhreq) {
        dest.style.color = '#888888';
        dest.innerHTML = "(checking...)";
        xhreq.open ("GET", "http://annewalsh.trycanta.com/fics/checkavail.php?type=" + type + "&value=" + escape (value), true);
        xhreq.onreadystatechange = function() {
            if (xhreq.readyState == 4) { // loaded
                if (xhreq.status == 200) {
                    var rtext = xhreq.responseText;
                    if (rtext.indexOf ("OK") >= 0) {
                        dest.style.color = '#00c000';
                    } else {
                        dest.style.color = '#c00000';
                    }
                    dest.innerHTML = rtext;
                } else {
                    dest.style.color = '#80000';
                    dest.innerHTML = "(HTTP error " + xhreq.status + " while checking)";
                }
            }
        };
        xhreq.send (null);
    } else {
        dest.style.color = '#800000';
        //        dest.innerHTML = "(unverifiable)";
    }
}
