/****************************************************
 * Hangman Game                                     *
 * Unobtrusive JavaScripts                          *
 * copyright Stephen Chapman http://www.felgall.com *
 * March 2007                                       *
 *                                                  *
 * You may use this script provided that you        *
 * include this copyright notice with the code.     *
 ****************************************************/
/****************************************************
 * Functionality added by iPhone Hangaman.com       *
 * March 2007                                       *
 ****************************************************/

var dc = '7!3@4#1$^5*~:6 +8=`<2-0>_/?9';
var al;
var turn;
var answer;
var sol;
var optso = opts.slice();

function start() {
al = '--------------------------';
turn = 0;
if(opts.length == 0){
 opts = optso.slice();
}
var opt = Math.floor(Math.random()*opts.length);
answer = trans2(opts[opt]);
opts.splice(opt,1);
sol = trans(answer);
var h = document.getElementById('hang');
var t = h.getElementsByTagName('*');
while (t.length > 0) {
   t[0].parentNode.removeChild(t[0]);
   }
h.appendChild(displayImg());
h.appendChild(displaySolution());
h.appendChild(availLetter());
}

function trans(op) {
var opn = '';
var len = op.length;
for (var i = 0; i < len; i++) {
   if (' ' === op.substr(i,1)) {opn += ' ';}
   else {opn += '-';}
}
return opn;
}

function trans2(op) {
var opn = '';
var len = op.length;
for (var i = 0; i < len; i++) {
   var ch = op.substr(i,1);
   if (ch == dc.substr(27,1)) break;
   if (ch == dc.substr(0,1)) opn += ' ';
   else opn += String.fromCharCode(dc.indexOf(ch)+64);
   }
return opn;}

function displayResult(txt,win) {
 var ht = document.getElementById('hangt');
 var newD2 = document.createElement("div");
 newD2.id = 'hangr';
 var newP = document.createElement("p");
 var newT = document.createTextNode(txt);
 win ? newP.className = "won" : newP.className = "lost";
 newP.appendChild(newT);
 newD2.appendChild(newP);
 var newD3 = document.createElement("div");
 newD3.onclick = start;
 //newD3.style.color = '#00f';
 //newD3.style.cursor = 'pointer';
 var newT2 = document.createTextNode('PLAY AGAIN?');
 newD3.appendChild(newT2);
 newD2.appendChild(newD3);
 ht.parentNode.replaceChild(newD2,ht);
}

function selectLetter(ltr) {
 var ch = String.fromCharCode(ltr+65);
 var match = false;
 for (var i = sol.length - 1; i >= 0; i--) {
 if (ch === answer.substr(i,1)) {
    sol = sol.substring(0,i) + ch + sol.substring(i+1);
    match = true;
    }
 }
 if (!match) {turn++;}
 if (-1 !== answer.indexOf(ch)) {
    al = al.substring(0,ltr) + ch + al.substring(ltr+1);
 }
 if (sol === answer) {
 	updateScore(true);
    displayResult('You Win  : )',true);
    } else if (8 > turn) {
    document.getElementById('hl'+ltr).childNodes[0].data = '-';
    document.getElementById('hl'+ltr).className  = 'not';
    document.getElementById('hl'+ltr).onclick = '';
    } else {
    updateScore(false);
    displayResult('You Lose : (',false);
    document.getElementById('hanga').innerHTML = "<span class='lost'>"+answer+"</span>";
    }
 document.getElementById('hangi').src = 'hang' + turn + '.png';
 document.getElementById('hanga').childNodes[0].data = sol;
}

function updateScore(win){
	if(win){
		document.getElementById('wins').innerHTML = intWins;
		intWins++
	}else{
		document.getElementById('kills').innerHTML = intKills;
		intKills++;
	}
}

function availLetter() {
var newD = document.createElement("div");
newD.id = 'hangt';
var len = al.length;
for (var i = 0; i < len; i++) {
   var ltr = String.fromCharCode(i + 65);
   var newS = document.createElement("span");
   newS.id = 'hl'+i;
   if (ltr !== al.charAt(i)) {
     newS.onclick = Function('selectLetter('+i+')');
     var newT = document.createTextNode(ltr);
     newS.appendChild(newT);
   }
  newD.appendChild(newS);
}
return newD;
}

function displayImg() {
var newI = document.createElement("img");
newI.id = 'hangi';
newI.src = 'hang' + turn + '.png';
return newI;
}

function displaySolution() {
var newD = document.createElement("div");
newD.id = 'hanga';
var newT = document.createTextNode(sol);
newD.appendChild(newT);
return newD;
}

var pageLoaded = 0;
window.onload = function() {pageLoaded = 1;}
function loaded(i,f) {
if (document.getElementById && document.getElementById(i) != null) f();
else if (!pageLoaded) setTimeout('loaded(\''+i+'\','+f+')',100);
}
loaded('hang',start);
