// JavaScript Document

function isie6()
{
	return ($.browser.msie && $.browser.version.search(/6/)==0) ? true : false;
}

function get(id)
{
	return document.getElementById(id);	
}

var errors = new Array(
	new Array("missing","MI"),
	new Array("damaged/decayed","DA"),
	new Array("broken/failing","BR"),
	new Array("crooked/misshaped","CM"),
	new Array("tooth OK","OK"),
	new Array("all upper missing","UM"),
	new Array("all lower missing","LM"),
	new Array("all missing","UL"),
	new Array("clear all","00")
);

var setbug = new Array();
var tooth = 16;
var offsetfog = new Array(0,2,14,-4);
var target = new Array();
target['up'] = new Array("upr","upl");
target['dn'] = new Array("lor","lol");

var upfogak = new Array(
	new Array(63,5),new Array(52,9),new Array(40,20),new Array(31,33),new Array(23,47),new Array(18,62),new Array(15,84),new Array(11,102),
	new Array(84,6),new Array(101,11),new Array(109,21),new Array(117,36), new Array(125,50), new Array(129,63), new Array(133,86), new Array(136,104)
);

var dnfogak = new Array(
	new Array(69,111),new Array(57,111),new Array(46,104),new Array(38,92),new Array(29,79),new Array(21,58),new Array(15,36),new Array(13,16),
	new Array(85,111),new Array(98,109),new Array(107,103),new Array(117,89),new Array(123,76),new Array(128,53),new Array(134,32),new Array(138,12)
);


var upt = new Array();
upt.push("74,29,79,28,81,23,83,15,84,8,81,5,77,5,72,6,66,6,64,8,64,11,67,17,70,25,72,28,74,29,74,29");
upt.push("66,29,67,24,66,17,64,11,62,9,59,9,56,12,53,15,52,17,52,20,57,25,63,30,66,29,66,29");
upt.push("41,31,41,26,44,22,47,19,51,19,57,26,59,30,58,34,55,36,49,36,44,34,41,31,41,31");
upt.push("32,38,36,34,40,33,44,34,49,37,51,42,51,48,47,51,42,51,37,50,32,46,31,40,32,38,32,38");
upt.push("24,50,27,48,32,47,36,48,42,54,43,59,41,63,37,65,33,64,27,63,24,60,23,53,24,50,24,50");
upt.push("19,67,23,63,26,62,31,64,37,66,40,71,38,78,34,86,27,86,19,84,18,78,19,69,19,67,19,67");
upt.push("19,84,17,85,15,89,15,100,18,102,24,103,30,105,31,102,36,96,36,91,33,87,29,86,24,85,19,84,19,84");
upt.push("24,121,30,117,32,111,31,106,24,103,16,102,13,103,11,110,12,115,16,120,21,122,24,121,24,121");
/* */
upt.push("94,29,97,27,101,19,104,12,103,9,97,7,89,6,85,6,84,8,85,15,86,24,89,29,92,29,94,29,94,29");
upt.push("104,31,107,30,113,25,117,21,117,18,113,14,108,11,105,12,102,16,101,27,101,30,104,31,104,31");
upt.push("111,36,116,38,121,38,125,36,127,33,126,26,124,22,120,21,116,22,112,26,109,31,109,34,111,36,111,36");
upt.push("120,40,118,43,117,46,119,51,123,53,127,53,133,50,136,45,135,39,131,36,126,36,122,38,120,40,120,40");
upt.push("135,49,140,49,144,53,145,59,143,62,138,65,133,67,128,66,125,62,126,56,129,52,135,49,135,49");
upt.push("147,63,149,66,150,75,150,83,149,86,141,87,136,86,132,82,129,76,129,72,133,68,141,65,147,63,147,63");
upt.push("133,100,133,95,134,90,137,87,144,86,150,87,154,91,154,99,152,104,146,104,138,104,133,100,133,100");
upt.push("139,106,137,108,136,113,140,118,145,121,151,123,155,119,156,114,156,108,154,105,150,104,143,105,139,106,139,106");

var dnt = new Array();
dnt.push("71,131,76,132,82,132,85,129,86,123,85,116,83,113,81,111,78,111,76,113,74,115,74,118,72,123,70,126,70,129,71,131,71,131");
dnt.push("70,111,73,113,74,116,72,122,69,127,67,129,65,130,61,128,57,125,57,123,58,119,64,114,68,111,70,111,70,111");
dnt.push("47,115,48,120,52,123,56,123,59,118,63,114,65,111,64,107,61,105,58,104,54,105,51,108,48,111,47,115,47,115");
dnt.push("39,97,38,102,39,106,42,108,46,110,49,109,54,105,55,101,54,96,52,93,49,92,46,92,43,94,40,95,39,97,39,97");
dnt.push("30,83,29,90,31,95,36,97,39,96,42,94,45,93,48,91,47,84,44,81,40,79,38,81,34,82,30,83,30,83");
dnt.push("21,64,21,69,23,76,26,80,29,82,34,81,39,80,42,76,43,70,42,65,38,60,35,58,32,58,27,59,23,60,21,64,21,64");
dnt.push("23,59,19,58,16,53,15,46,16,41,19,38,24,37,29,37,33,40,35,45,36,50,35,55,33,57,29,58,26,59,23,59,23,59");
dnt.push("13,24,16,19,21,16,25,16,29,18,32,23,33,30,31,35,27,37,21,38,17,37,15,34,13,29,13,24");
/* */
dnt.push("86,116,88,113,91,111,95,111,98,114,100,120,103,125,103,129,98,132,93,133,89,132,86,129,86,124,86,116,86,116");
dnt.push("105,110,113,117,116,120,116,123,112,125,106,127,103,127,100,120,98,114,99,111,101,109,105,110,105,110");
dnt.push("109,104,116,103,121,105,126,107,126,112,124,116,118,119,115,119,111,114,107,110,107,107,109,104,109,104");
dnt.push("117,95,119,90,122,89,128,91,132,94,133,100,132,103,128,106,124,106,121,104,117,102,117,97,117,95,117,95");
dnt.push("124,85,124,82,127,78,130,76,136,77,140,80,141,85,139,91,135,93,131,93,128,91,125,88,124,85,124,85");
dnt.push("128,70,128,64,130,59,133,55,136,53,139,55,143,56,147,56,150,58,150,62,148,72,144,76,139,78,135,77,130,76,128,73,128,70,128,70");
dnt.push("134,46,135,39,138,34,140,32,144,34,150,35,152,35,154,37,154,42,153,49,153,52,150,54,148,55,144,55,140,55,137,54,136,50,134,46,134,46");
dnt.push("139,26,139,19,140,15,143,13,148,13,153,15,156,19,156,23,156,30,154,32,150,34,146,34,142,33,139,31,139,26,139,26");

$(document).ready(function(){
	makehotspot($('#upimg'),'up');
	makefogak($('#upimgs'),'up');
	makehotspot($('#dnimg'),'dn');
	makefogak($('#dnimgs'),'dn');
});

function makehotspot(img, type)
{
	var map = document.createElement("MAP");
	$(map).attr({name:type+'map'});
	$(map).attr({id:type+'map'});
	$(img).parent().append(map);
	
	$(img).attr({usemap:'#'+type+'map'});	
	for(var i=0;i<tooth;i++)
	{
		var area = document.createElement("AREA");
		area.shape = "poly";
		area.coords = (type=="up") ? upt[i] : dnt[i];
		area.id = type+"a_"+i;
		area.href ="javascript:void(0);";
		area.rel = type+'f_'+i;
		area.set = 0;
		$(area).click(function(){
			setteeth(this, type);
		})
		$(area).mouseover(function(){
			switcher('show',this)
		}).mouseout(function(){
			switcher('hide',this);
		});
		$(map).append(area);
	}	
}

function makefogak(div, type)
{
	for(var i=0;i<tooth;i++)
	{
		var fog = new Image();
		fog.src = "/images/sodcjaw/"+type+i+"."+((isie6()) ? "gif" : "png");
		fog.style.position = "absolute";
		fog.style.marginLeft = (type=='up') ? upfogak[i][0]+"px" : dnfogak[i][0]+"px";
		fog.style.marginTop = (type=='up') ? upfogak[i][1]+"px" : dnfogak[i][1]+"px";
		fog.id = type+"f_"+i;
		fog.set = 0;
		fog.className = "fogjel";
		$(fog).hide();
		$(div).append(fog);
	}
}

function switcher(t,a)
{
	var id = '#'+$(a).attr('rel');
	if(!Number(a.set))
	{
		switch(t)
		{
			case 'show':
				$(id).show();
			break;
			case 'hide':
				$(id).hide();
			break;
		}
	}
}

function setteeth(a, m)
{
	a.set = 1;
	var img = '#'+a.rel;
	var i, rev = {up:'dn', dn:'up'};
	$("#teethbug").remove();
	var f = '.'+m+'fogsor';
	// amelyik fog nem hibas az reset
	var allteeth = $('#'+m+'imgs img').get();
	var inverses = $('#'+rev[m]+'imgs img').get();// elentetes oldalon is leszedi ami nem hibas (atkattintaskor van)
	for(i=0; i<allteeth.length; i++)
	{
		var	allnode = allteeth[i].id.replace(/f_/,"a_");
		var allinve = inverses[i].id.replace(/f_/,"a_");
		if(!setbug[allnode] && allnode!=a.id)
		{			
			$("#"+allnode).attr("set", 0); // area reset
			$("#"+allteeth[i].id).hide(); // fog image hide
		}		
		if(!setbug[allinve] && allinve!=a.id)
		{
			$("#"+allinve).attr("set", 0); // area reset
			$("#"+inverses[i].id).hide(); // fog image hide
		}
	}	
  sendlist(m)
	sendlist(rev[m]);
	
	$(img).show();
	var l = parseInt($(img).css("margin-left"))+parseInt($(img).width()/2);
	var t = parseInt($(img).css("margin-top"))+parseInt($(img).height()/2);
	var list = "";

	for(i in errors)
	{
		// hibalista felso vagy also szures //
		if((m=="up" && i!=6) || (m=="dn" && i!=5))
		{
			var cls = (setbug[a.id] == errors[i][1]) ? ' class="bugfixed"' : '';
			list += '<a href="#"'+cls+' rel="'+i+'">'+errors[i][0]+'</a>';
		}
	}
	list += '<div class="bugfoot"><div class="floatleft"></div><div class="floatright"></div></div>';
	var tb = document.createElement("DIV");
	$(tb).attr("id","teethbug");
	$(tb).html(list);		
	$(tb).css("margin-left",l-30);
	$(tb).css("margin-top",t);
	$('.'+m+'fogsor').prepend(tb);
	
	// set bug
	$('#teethbug a').click(function(){
		$(f+' a').removeClass("bugfixed");
		$(this).addClass("bugfixed");
		setbug[a.id] = errors[this.rel][1];
		$('#teethbug').hide();
		
		// osszes  felso hianyzik
		if(errors[this.rel][1]=='UM' || errors[this.rel][1]=='UL')
		{
			for(i=0;i<tooth;i++)
			{
				$('#upa_'+i).attr("set",1);
				$('#upf_'+i).show();
				setbug['upa_'+i] = errors[this.rel][1];
			}
			if(errors[this.rel][1]=='UL')sendlist(rev[m]);
		}
		
		// osszes  also hianyzik
		if(errors[this.rel][1]=='LM' || errors[this.rel][1]=='UL')
		{
			for(i=0;i<tooth;i++)
			{
				$('#dna_'+i).attr("set",1);
				$('#dnf_'+i).show();
				setbug['dna_'+i] = errors[this.rel][1];
			}
			if(errors[this.rel][1]=='UL')sendlist(rev[m]);
		}
		
		// minden torlese
		if(errors[this.rel][1]=='00')
		{			
			for(i=0;i<tooth;i++)
			{
				$('#upa_'+i).attr("set",0);
				$('#upf_'+i).hide();
				setbug['upa_'+i] = null;
				$('#dna_'+i).attr("set",0);
				$('#dnf_'+i).hide();
				setbug['dna_'+i] = null
			}
			sendlist(rev[m]);
		}
		sendlist(m);
		return false;
	});
	
	// close
	$('#teethbug .bugfoot .floatright').click(function(){
		if(!setbug[a.id])
		{
			$(img).hide();
			a.set = 0;
		}
		$("#teethbug").hide();
		sendlist(m);
		return false;
	});
	
		// clear
	$('#teethbug .bugfoot .floatleft').click(function(){
		$(f+' a').removeClass("bugfixed");
		setbug[a.id] = null;
		$(img).hide();
		a.set = 0;
		$("#teethbug").hide();
		sendlist(m);
		return false;
	});
}

function sendlist(t)
{
	var f = '#'+t+'imgs';
	var allbug = "";
	var allteeth = $(f+' img').get();
	var i, allnode, s, n, b=new Array(0,0);
	if(t=='dn') { b[0] = 30; b[1] = 10; }
	/* ellenorzeshez kell */
	/*for(i=0;i<target[t].length;i++)
	{
		$("#"+target[t][i]).empty();
	}*/

	for(i=0; i<allteeth.length; i++)
	{
		allnode = allteeth[i].id.replace(/f_/,"a_");		
		okt = parseInt(i/8);
		s = i+11+okt*2+b[okt];
		if(setbug[allnode])
		{
			allbug += s+":"+setbug[allnode]+",";
		}
		
		// ez csak nekem kell az ellenorzeshez...
		//n = (setbug[allnode]) ? '<span class="redfog">'+s+' </span>' : s+" ";
		//if(!(okt%2)) $("#"+target[t][okt]).prepend(n); else $("#"+target[t][okt]).append(n);
		// ------------------------------
	}	
	$("#jawbugsinput"+t).val(allbug.substring(0,allbug.length-1));
}

$(document).ready(function(){
	if(jQuery.browser.msie)
	{
		$("#custom_description").mouseover(function(){
			$(this).data("origWidth", "232px");
			$(this).css("width", "auto");
		}).change(function(){
			$(this).css("width", $(this).data("origWidth"));
		});
		
		$(document).click(function(e){			
			if ($(e.target).parents(".cdesc").length == 0) {
				$("#custom_description").css("width", $("#custom_description").data("origWidth"));
			}	
		})
	}
});
