var loaded = false;
var req = false;
var md5;
var str;
var d = document;
var w = window;
var v = false;

var root = "";

function ke(evt) 
{
   evt.cancelBubble = true;
   if (evt.stopPropogation) evt.stopPropogation();
}

function md5sc()
{
   if (req.readyState == 4)
   {
      if (req.status == 200)
      {
         loaded = true;
         str = req.responseText;  
         finishLogin();
      }
   }
}

function finishLogin(r)
{
  	var p = d.getElementById("pass");
  	var s = d.getElementById("sPass");
	var f = d.getElementById("loginform");
   eval(r.responseText);
	s.value = hex_md5(p.value);
   p.value = "";
	f.submit();
}

function login() 
{
   if (!loaded) 
   {
      sr(root + "/admin/md5.js", finishLogin);
   }
   else
   {
      finishLogin();
   }
}

function logout()
{
	var f = d.getElementById("loginform");
	f.submit();
}

function rc(d1, d2)
{
   var height = Math.max(d.body.parentNode.scrollHeight, d.body.scrollHeight) + "px"; 
   d1.style.height = height; 
   d2.style.height = height;
}

function vi(h,e)
{
   if (!v) {
      
      var height = d.body.scrollHeight + "px";
      var div = d.createElement("div");
      div.id = "cover";
      div.style.height = height;
      div.style.backgroundImage = "url(" + root + "/img/load.gif)";
      d.body.appendChild(div);
      
      var div2 = d.createElement("div");
      div2.id = "image_c";
      div2.style.height = height;
      d.body.appendChild(div2);
      
      div2.onclick = function () {
         d.body.removeChild(div);
         d.body.removeChild(div2); 
         v = false;
      };

      rc(div, div2);
   
      if (!e) var e = w.event;
      try {
         sr(root + "/gallery/jsonimg/" + h, di);
      }
      catch (ex) {
         return true;
      }
      ke(e);
      v = true;
   }
   
   return false;
}

function di(r)
{
   var image;
   eval(r.responseText);
   
   var div = d.getElementById("cover");
   var div2 = d.getElementById("image_c");
   
   div.style.backgroundImage = "";
   
   var div3 = d.createElement("div");
   var f = function () {
      rc(div, div2); 
   };
   window.onscroll = f;
   
   div3.id = "image";
   div2.appendChild(div3);
      
   var h1 = d.createElement("h1");
   h1.innerHTML = image.name;
   div3.appendChild(h1);
   
   var img = d.createElement("img");
   img.src = image.large;
   img.alt = image.description;
   img.title = image.description;
   div3.appendChild(img);
   
   f();
}

// From Quirksmode at http://www.quirksmode.org/js/xmlhttp.html
function sr(u,c,d) {
	var req = cx();
	if (!req) return;
	var m = (d) ? "POST" : "GET";
	req.open(m,u,true);
	req.setRequestHeader('User-Agent','XMLHTTP/1.0');
	if (d)
		req.setRequestHeader('Content-type','application/x-www-form-urlencoded');
	req.onreadystatechange = function () {
		if (req.readyState != 4) return;
		if (req.status != 200 && req.status != 304) {
//			alert('HTTP error ' + req.status);
			return;
		}
		c(req);
	}
	if (req.readyState == 4) return;
	req.send(d);
}

var xf = [
	function () {return new XMLHttpRequest()},
	function () {return new ActiveXObject("Msxml2.XMLHTTP")},
	function () {return new ActiveXObject("Msxml3.XMLHTTP")},
	function () {return new ActiveXObject("Microsoft.XMLHTTP")}
];

var wf = false;

function cx() {
   if (wf) return wf();
	var x = false;
	for (var i=0;i<xf.length;i++) {
		try {
			x = xf[i]();
         wf = xf[i];
		}
		catch (e) {
			continue;
		}
		break;
	}
   if (!x) { throw new Error("XHR unsupported"); }
	return x;
}
