/**************************************************//* generic javascript functions for use site-wide *//**************************************************/function maxLength(obj,len) {  if (obj.value.length > len);  obj.value=obj.value.substring(0,len);}function makeSafe(obj,type) {  switch (type) {      /* strip anything that isn't alphanumeric or an underscore */    case 1:      var text = obj.value;      text = text.replace(/\W/g, '');      obj.value = text;      break;    default:      break;  }}

function feedback(sw) {
  switch (sw) {
    case 'open':
      document.getElementById('fbbutton').style.display='none';
      document.getElementById('fbform').style.display='block';
      break;

    case 'close':
      document.getElementById('fbbutton').style.display='block';
      document.getElementById('fbform').style.display='none';
      break;

    case 'submit':
      document.getElementById('fbbutton').style.display='block';
      document.getElementById('fbform').style.display='none';
      email = document.getElementById('fbemail').value;
      reason = document.getElementById('fbreason').value;
      message = document.getElementById('fbmessage').value;
      document.getElementById('fbmessage').value = '';
      vars = '&email=' + urlencode(email) + '&reason=' + reason + '&message=' + urlencode(message);
      sndReq('feedback',vars);
      break;

    default:
      alert('you are clever');
      break;
  }
}

    function makeReqObject() {
      if (navigator.appName == "Microsoft Internet Explorer") ro = new ActiveXObject("Microsoft.XMLHTTP");
      else ro = new XMLHttpRequest();
      return ro;
    }

    function sndReq(action,vars) {
      http = makeReqObject();
      Stamp = new Date();
      ts = Stamp.getTime();
      http.open('get', '/ajax.php?action='+action+'&vars='+vars+'&ts='+ts);
      http.onreadystatechange = handleResponse;
      http.send(null);
    }

    function handleResponse() {
      if (http.readyState == 4) {
        var response = http.responseText;
        if (response == 'favourite::1::added') document.getElementById('favimg').src = 'http://img.tindeck.com/unmarkasfavourite.png';
        if (response == 'favourite::1::deleted') document.getElementById('favimg').src = 'http://img.tindeck.com/markasfavourite.png';
        if (response == 'bg::success') document.getElementById('bgnotice').innerHTML = 'Background updated. Click to choose a new background.';
        if (response == 'bg::error') document.getElementById('bgnotice').innerHTML = 'Error updating. Click to choose a new background.';
        if (response.substring(0,11) == 'nf::success') addFolder(response);
        if (response == 'nf::error') addFolder(response);
      }
    }

  function urlencode(plaintext) {
    var SAFECHARS = "0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz-_.!~*'()";
    var HEX = "0123456789ABCDEF";
    var encoded = "";
    for (var i = 0; i < plaintext.length; i++ ) {
      var ch = plaintext.charAt(i);
      if (ch == " ") encoded += "+";
      else if (SAFECHARS.indexOf(ch) != -1) encoded += ch;
      else {
        var charCode = ch.charCodeAt(0);
        if (charCode > 255) encoded += "+";
        else {
          encoded += "%";
          encoded += HEX.charAt((charCode >> 4) & 0xF);
          encoded += HEX.charAt(charCode & 0xF);
        }
      }
    }
    return encoded;
  }


