//
// Kamune Web Site
//	Raja, September 24, 2008
// (c) Copyright 2008 Navaraga Corporation
//
var data = [
 {
 	"name" : "Capitals",
	"active" : true,
	"similar" : [ "Moscow", "Ottawa", "Mexico City", "Tokyo",
			"Buenos Aires", "London", "Paris", "Rome", 
			"Singapore", "Madrid", "Bangkok", "Cairo",
			"New Delhi", "Beijing", "Seoul"],
	"odd" : ["Seattle", "Toronto", "Shanghai",
			"Munich", "Sydney", "Venice" ]
  },
  {
  	"name" : "Carnivores",
	"active" : true,
	"similar" : ["Lion", "Tiger", "Wolf", "Cougar", "Leopard", "Hyena",
			"Dog", "Cat", "Mongoose", "Bear", "Fox"],
	"odd" : ["Cow", "Elephant", "Goat", "Donkey", "Giraffe"]
  },
  {
  	"name" : "Ball sports",
	"active" : true,
	"similar" : ["Football", "Baseball", "Basketball",
			"Tennis", "Ping pong", "Soccer",
			"Handball", "Volleyball", "Lacrosse", "Water polo"],
	"odd" : ["Skiing", "Chess", "Running", "Javelin"]
  },
  {
	"name" : "Musical Instruments",
	"active" : true,
	"similar" : ["Guitar", "Violin", "Banjo", "Harp", "Cello",
			"Piano", "Flute", "Clarinet", "Drums", "Trumpet",
			"Accordian", "Harmonica", "Tamborine",
			"Xylophone", "Tuba", "Saxophone"],
	"odd" : ["Microphone", "Speaker", "Headphone", "Radio"]
  }
];

var qlist;
var maxFrames = 5;
var curFrame = 0;
var setSize = 7;

// Savings Calculator

function orgsav() {
	ferr("");

	var nfast = getnum(document.orgSavF.nfast.value);
	var nemps = getnum(document.orgSavF.nemps.value);
	var npay = getnum(document.orgSavF.npay.value);
	var ntime = getnum(document.orgSavF.ntime.value);

	if (nfast < 0 || nfast > 100) {
	ferr("time savings percentage needs to be between 0 and 100, not " +
					nfast);
		return;
	}

	if (ntime < 0 || ntime > 100) {
	ferr("disorganized information processing time percentage needs to be between 0 and 100, not " +
					ntime);
		return;
	}

	var twaste = nemps * npay * 8 * (ntime/100) * (nfast/100) *
			52 * 5;
	var tpercent = ntime * nfast / 100;

	document.getElementById("resDollars").innerHTML = nformat(twaste);
	document.getElementById("resPercentage").innerHTML = nfraction(tpercent);
}

function item(text, iscorrect, category) {
	this.text = text;
	this.iscorrect = iscorrect;
	this.category = category;
	this.chosen = false;
	this.ele = null;
}

function itemsort(a, b) {
	if (a.text < b.text)
		return -1;
	if (a.text > b.text)
		return 1;
	return 0;
}

function shuffle(list) {
	for (var j=0; j<list.length; j++) {
		var k = Math.floor(Math.random() * list.length);
		var t = list[k];
		list[k] = list[j];
		list[j] = t;
	}
}

function gendata() {
	list = new Array();
	ilist = 0;

	for (var i=0; i<data.length; i++) {
		if (!data[i].active)
			continue;
		shuffle(data[i].similar);
		for (var j=0; j<setSize; j++) 
			list[ilist++] = new item(data[i].similar[j], false, i)

		shuffle(data[i].odd);
		list[ilist++] = new item(data[i].odd[0], true, i);
	}

	shuffle(list);

	return list;
}

var tstart;
var resOrg = 0, resDisorg = 0;

function now() {
	var d = new Date();
	return d.getTime();
}

function setTime(diff) {
	diff /= 1000;
	var id;

	id = (curFrame == 1) ? "disorgTime" : "orgTime";
	if (curFrame == 1) {
		id = "disorgTime";
		resDisorg = diff;
		document.getElementById("res1").innerHTML = diff;
		document.getElementById("link1").style.display = "block";
	}
	else {
		id = "orgTime";
		resOrg = diff;
		document.getElementById("res2").innerHTML = diff;
		document.getElementById("link2").style.display = "block";
	}
	document.getElementById(id).innerHTML = diff;

	var p = "save ? %";

	if (resDisorg && resOrg) {
		p = Math.round((resDisorg - resOrg) * 100 /  resDisorg);
		document.orgSavF.nfast.value = p;

		if (p > 0)
			p = "save " + p + "%"
		else
			p = "lose " + (-p) + "%"
		document.getElementById("extraRes").style.display = "none";
		orgsav();
		document.getElementById("savCalc").style.display = "block";
	}
	else {
		document.getElementById("extraRes").style.display = "block";
		document.getElementById("savCalc").style.display = "none";
		// orgsav();
	}
	
	document.getElementById("TimePercentage").innerHTML = p;
}

function showAns() {
	for (var i=0; i<qlist.length; i++)
		with (qlist[i]) 
			if (iscorrect)
				ele.className = "correct";
	setTime(0);
}

function isAllDone() {
	for (var i=0; i<qlist.length; i++)
		with (qlist[i]) 
			if (iscorrect && !chosen)
				return;
	setTime( now() - tstart );
}

function check(evt) {
	evt = (evt) ? evt : event;
	var ele = (evt.srcElement) ? evt.srcElement : evt.target;
	if (qlist[ele.pointer].iscorrect) {
		ele.className = "correct" ;
		qlist[ele.pointer].chosen = true;
	}
	else 
		ele.className = "incorrect";

	isAllDone();
}

function addHead(parent, cat) {
	var ele = document.createElement( "li" );
	ele.innerHTML = cat;
	ele.className = "cathdr";
	parent.appendChild(ele);
}

function display(parent, list, cat) {
	for (var j=0; j<list.length; j++) 
		if ((cat >= 0 && list[j].category == cat) || cat < 0) {
			var ele = document.createElement( (cat < 0) ? "div" : "li");
			ele.innerHTML = list[j].text;
			ele.onclick = check;
			ele.className = "question";
			ele.pointer = j;
			list[j].ele = ele;
			parent.appendChild(ele);
		}
}

function disorg() {
	var canvas = document.getElementById("f1");
	canvas.innerHTML = "";

	qlist = gendata();
	resOrg = 0;
	tstart = now();
	display(canvas, qlist, -1);
}


function org() {
	var canvas = document.getElementById("f2");
	canvas.innerHTML = "";

	qlist = gendata();
	qlist = qlist.sort(itemsort);
	resOrg = 0;
	tstart = now();

	for (var i=0; i<data.length; i++) {
		var listele = document.createElement( "ul" );
		listele.className = (i%2) ? "oddcol" : "evencol";
		addHead(listele, data[i].name);
		display(listele, qlist, i);
		canvas.appendChild(listele);
	}
}

function test() {
	// disorg();
	// org();
}

function goFrame(n) {
	curFrame = n;
	for (var i=0; i<maxFrames; i++) {
		document.getElementById("f" + i).style.display = "none";
		document.getElementById("p" + i).style.display = "none";
	}

	document.getElementById("link1").style.display = "none";
	document.getElementById("link2").style.display = "none";

	document.getElementById("f" + n).style.display = "block";
	document.getElementById("p" + n).style.display = "block";

	if (n==1)
		disorg();
	else if (n==2)
		org();
}

function init3() {
	var buf = navigator.userAgent.toLowerCase();
	var ele = document.getElementById("canvas");
	if (document.all && buf.indexOf('msie')!=-1) {
		ele.style.height = 
			document.getElementById("footer").offsetTop -
			document.getElementById("panel").clientHeight -
			document.getElementById("hdr").clientHeight;
	}
	else {
		ele.style.height = 
			window.innerHeight - 
			document.getElementById("footer").clientHeight -
			document.getElementById("panel").clientHeight -
			document.getElementById("hdr").clientHeight + "px";
	}

	// document.body.onmousemove = show;
	// ele = document.getElementById("canvas");
	// originX = ele.offsetLeft;
	// if (originX == 0)
		// originX = document.getElementById("wrap").offsetLeft;
	// originY = ele.offsetTop;

	// test();

	goFrame(0);
}
