function getHTTPObject() {

  var xmlhttp;

  /*@cc_on
  @if (@_jscript_version >= 5)
    try {
      xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
    } catch (e) {
      try {
        xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      } catch (E) {
        xmlhttp = false;
      }
    }
  @else
  xmlhttp = false;
  @end @*/

  if (!xmlhttp && typeof XMLHttpRequest != 'undefined') {
    try {
      xmlhttp = new XMLHttpRequest();
    } catch (e) {
      xmlhttp = false;
    }
  }

  return xmlhttp;
}

var http = getHTTPObject();

function newCaptcha()
{
	var url = '/captcha.php?dat=' + new Date().valueOf();
    http.open('GET', url, true);
    http.onreadystatechange = handleResponse;
    http.send(null);
}

function doAction(action, morevars)
{
	var url = '/action.php';
	var vars = 'action=' + action + '&dat=' + new Date().valueOf();
	http.open('POST', url, true);
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http.onreadystatechange = handleAction;
	if (morevars.length > 0)
	{
		vars += "&" + morevars;
	}
	http.send(vars);
}

function handleAction()
{
	if (http.readyState == 4)
	{
		var response = http.responseText;
		var r = response.split('|');

		switch (r[0])
		{
			case "add_comment":
				var x = document.getElementById('comment_result');
				x.innerHTML = r[2];
				switch (r[1])
				{
					case '0': // success
						// just reload the document for now...
						window.location.reload();
						//clearCommentForm();
						//doAction('get_comments', 'id=' + r[3]);
						break;
					case '2': // wrong captcha
						var f = document.getElementById('add_comm');
						//f['private_key'].style.border = '1px solid #ff0000';
						f['private_key'].style.backgroundColor = '#ff9999';
						break;
					case '3': // missing required fields
						var f = document.getElementById('add_comm');
						var i;
						for(i=3;i<r.length;i++)
						{
							f[r[i]].style.backgroundColor = '#ff9999';
						}
						break;
				}
				break;
			case "get_comments":
				var x = document.getElementById('comm_body');
				x.innerHTML = response.substring(13, response.length);
				document.getElementById('add_comm_form').style.display = 'none';
				document.getElementById('add_comm_a').style.display = 'block';
				break;
			case "admin_login":
				document.getElementById('admin_login_result').innerHTML = r[2];
				switch (r[1])
				{
					case '0': // success
						window.location.reload();
						break;
					case '1': // failed
						break;
				}
				break;
			case "admin_news_add":
				document.getElementById('admin_news_add_result').innerHTML = r[2];
				break;
			case "album_get_image":
			case "album_get_next_image":
				if (r[1] == 1)
				{
					var i = document.getElementById('img_disp');
					var t = document.getElementById('album_pic_text');
					var x = document.getElementById('img_id');
					i.src = r[2];
					i.width = r[3];
					i.height = r[4];
					i.alt = r[5];
					t.innerHTML = r[6];
					//x.innerHTML = r[7];
				}
				else
				{
					alert(r);
					document.getElementById('wait_outer').style.display = 'none';
				}
				break;
			case "album_add_dir":
				var s = document.getElementById('add_status');
				if (r[1] == 1)
				{
					s.innerHTML = 'add successful! (' + r[2] + ')';
				}
				else
				{
					s.innerHTML = 'add failed. ' + r[2];
				}
				break;
		}
	}
}

function clearCommentForm()
{
	var f = document.getElementById('add_comm');

	f.name.value = '';
	f.email.value = '';
	f.url.value = '';
	f.subject.value = '';
	f.body.value = '';
	f.private_key.value = '';
}

function handleResponse()
{
    if(http.readyState == 4)
	{
        var response = http.responseText;

        switch (response)
        {
        	case "valid":
        		break;
        	case "bad":
        		break;
        	default:
        	{
        		var i = document.getElementById('captcha_img');
        		var a = response.split('|');
        		i.src = a[0];
        		
        		i = document.getElementById('public_key');
        		i.value = a[1];
        	}
        }
    }
}
