var t = 240;
var c=0;
var fid=null;
var tid=null;
var expState = 1;
var xmlr = false;
var waiter = false;
var msxmlhttp = new Array(
	'Msxml2.XMLHTTP',
	'Microsoft.XMLHTTP');
for (var i = 0; i < msxmlhttp.length; i++)
{ try { xmlr = new ActiveXObject(msxmlhttp[i]); }
  catch (e) { xmlr = null; } }
if(!xmlr && typeof XMLHttpRequest != "undefined")
	xmlr = new XMLHttpRequest();
if (!xmlr) alert("Could not create connection object.");
exp0 = new Image;
exp0.src = "arrow-closed.gif";
exp1 = new Image;
exp1.src = "arrow-open.gif";

/*--------------------------------------------*/

var dones=0;
var xts=[60,170,252,362,60,142,252,390,60,142,252,390];
var yts=[180,180,180,180,254,282,254,282,384,356,356,384];
var dts=[true,true,true,true,true,true,true,true,true,true,true,true];
var msg=["You nailed it!!",
	"No one is more incredible than you!",
	"The computer is stunned by your brilliance!",
	"Damn you're good!",
	"Were you born awesome or did you study?",
	"You rock!",
	"Unbelievable!",
	"Such good looks and brains too!",
	"You should run for president!",
	"You are the coolest thing on the planet!",
	"A MacArthur Fellowship awaits you!",
	"You surely are a genius!"]
var hbs=["jejudo","seascape","sunset","wasson","dokdo","mountains"];
var hbn=hbs.length;
  
var doDrag=false;
var ocurs=null;
var dObj=null;
var did=0;
var xoff=0;
var yoff=0;
var mPosx=0;
var mPosy=0;

var hobj=null;
var hop=0;

function mouseCoords(ev)
{ if (ev.pageX || ev.pageY) {mPosx=ev.pageX; mPosy=ev.pageY;}
  else
  { mPosx=ev.clientX + document.body.scrollLeft - document.body.clientLeft;
    mPosy=ev.clientY + document.body.scrollTop  - document.body.clientTop; } }
function dragger(e)
{ var cu="-moz-grabbing";
  if (e==null) {e=window.event; cu="move"; var target=e.srcElement;}
  else {var target=e.target;}
  ocurs=target.style.cursor;
  var cn=target.className;
  var a=cn.split("piece");
  var xid=parseInt(a[1]);
  if (/drag/.test(cn) && dts[xid])
  { dObj=target; 
    dObj.style.cursor=cu;
    did=xid;
    doDrag=true;
    mouseCoords(e);
    xoff=mPosx-parseInt(dObj.offsetLeft);
    yoff=mPosy-parseInt(dObj.offsetTop);
    document.onmousemove=mover;
    document.onmouseup=cleanup;
    return false; } }
function mover(e)
{ if (e==null) {e=window.event;} 
  if (doDrag)
  { mouseCoords(e);
    var x=mPosx-xoff; 
    var y=mPosy-yoff;
    if (Math.abs(x-xts[did])<3 && Math.abs(y-yts[did])<3)
    { cleanup();
	++dones; var s="";
	if (dones==12) {s="<h2>Congratulations!</h2>";}
	popAlert(s+msg[did]);
	dObj.style.display="none";
	var v='document.getElementById("jig'+did+'").style.display="block"'; eval(v);
	dts[did]=false;
	if (dones==12) {tid=setTimeout(loveYa,3000);} }
    else
    { dObj.style.left=""+x+"px"; 
      dObj.style.top=""+y+"px"; } 
    return false; } }
function cleanup(e)
{ document.onmousemove=null;
  document.onmouseup=null;
  dObj.style.cursor=ocurs;
  doDrag=false; }

function skipPuzzle()
{ for (i=0; i<12; i++)
  { var x='var obj=document.getElementById("p'+i+'")'; eval(x);
    obj.style.display="none"; }
  loveYa(); }

function moreLove()
{ if (tid) {clearInterval(tid);}
  if (fid) {clearInterval(fid);}
  hop=0; loveYa(); }

function loveYa()
{ if (waiter) {hidealrt();}
  document.onmousedown=null;
  hobj=document.getElementById("hangul");
  doop(hop);
  var i=cvrandom(hbn);
  document.getElementById("hangul").style.backgroundImage="url(images/"+hbs[i]+".jpg)";
  document.getElementById("skip").style.display="none";
  document.getElementById("more").style.display="block";
  document.getElementById("hangul").style.display="block";
  fid = setInterval(fader, 50); }

function doop(o)
{ if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
  { hobj.style.filter = "alpha(opacity=" + o + ")"; }
  else { hobj.style.opacity = (o / 100); } }

function fader()
{ ++hop; doop(hop);
  if (hop>99)
  { clearInterval(fid); tid=false;
    document.getElementById("jigbox").style.display="none";
    for (i=0; i<12; i++)
    { var x='var obj=document.getElementById("jig'+i+'").style.display="none"'; eval(x); }
    document.getElementById("eclipse").style.display="block";
    document.getElementById("arch").style.display="block";
    document.getElementById("opera").style.display="block";
    document.getElementById("resume").style.display="block";
    document.getElementById("ghana").style.display="block";
    fid=setTimeout(hangset, 2000); } }

function hangset()
{ fid=setInterval(fadex, 50); }

function fadex()
{ --hop; doop(hop);
  if (hop<1)
  { clearInterval(fid); tid=false;
    document.getElementById("hangul").style.display="none";
    tid=setTimeout(bangYa,100); } }

function bangYa()
{ tid=setInterval(bang, t); }

/*--------------------------------------------*/

function scramble()
{ for (i=0; i<12; i++)
  { var x='var obj=document.getElementById("p'+i+'")'; eval(x);
    obj.style.top=""+cvrandom(480)+"px";
    obj.style.left=""+cvrandom(640)+"px";
    obj.style.display="block"; }
  document.onmousedown=dragger; }

function cvrandom(v)
{ return Math.floor(Math.random()*v); }

function hidealrt()
{ if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent))
  { document.getElementById("bkg").style.display = "none"; }
  document.getElementById("alrt").style.display = "none";
waiter=false;
  return false; }

function popAlert(txt)
{ txt += '<p /><a href="#" onclick="return hidealrt();">continue</a>';
  var newdiv = document.createElement("div");
  document.getElementById("alrt").innerHTML = "";
  newdiv.innerHTML = txt;
  var container = document.getElementById("alrt");
  container.appendChild(newdiv);
  if (!/MSIE (5\.5|6\.)/.test(navigator.userAgent))
  { if (/MSIE (\d+\.\d+);/.test(navigator.userAgent))
    { document.getElementById("bkg").style.filter = "alpha(opacity=30)"; }
    else { document.getElementById("bkg").style.opacity = .3; }
    document.getElementById("bkg").style.display = "block"; }
  document.getElementById("alrt").style.display = "block";
waiter=true;
  return false; }

function callServer()
{ var x = document.getElementById("lst").value;
  var y = document.getElementById("frs").value;
  var url = "database/ajax.php?lst=" + escape(x) + "&frs=" + escape(y);
  xmlr.open("GET", url, true);
  xmlr.onreadystatechange = updatePage;
  xmlr.send(null); }	 
function updatePage()
{ if (xmlr.readyState == 4)
  { var response = xmlr.responseText;
    document.getElementById("showme").value = response; } }	 
function bang()
{ if (c == 0) {x = 1;}
  else if (c == 40) {x = -1;}
  c = c + x;
  document.getElementById("arch").style.left = "" + (120 - c) + "px";
  document.getElementById("arch").style.top = "" + (192 - c) + "px";
  document.getElementById("opera").style.left = "" + (72 - c) + "px";
  document.getElementById("opera").style.top = "" + (346 + c) + "px";
  document.getElementById("resume").style.left = "" + (324 + (4*c)) + "px";
  document.getElementById("resume").style.top = "" + (228 - c) + "px";
  document.getElementById("ghana").style.left = "" + (286 + (3*c)) + "px";
  document.getElementById("ghana").style.top = "" + (368 + (2*c)) + "px"; }
function speeder()
{ t= document.getElementById("speed").value;
  clearInterval(tid);
  tid=setInterval(bang, t);
  return false; }
function aColor(n)
{n.style.background="rgb(204,204,204)"; n.style.color="rgb(0,0,0)"; n.style.fontWeight="normal"; }
function bColor(n)
{n.style.background="white"; n.style.color="rgb(0,0,128)"; n.style.fontWeight="bold"; }
function expander()
{ if (expState==0)
  {expState = 1; document["exp"].src = exp1.src; document.getElementById("hider").style.display = "block"; }
  else
  {expState = 0; document["exp"].src = exp0.src; document.getElementById("hider").style.display = "none"; }
  return false; }
