<!-- hide JavaScript from non-JavaScript browsers

    // convert all characters to lowercase to simplify testing
    var agt=navigator.userAgent.toLowerCase();
    var appVer = navigator.appVersion.toLowerCase();

    // *** BROWSER VERSION ***

    var is_minor = parseFloat(appVer);
    var is_major = parseInt(is_minor);

    var is_opera = (agt.indexOf("opera") != -1);
    var is_opera2 = (agt.indexOf("opera 2") != -1 || agt.indexOf("opera/2") != -1);
    var is_opera3 = (agt.indexOf("opera 3") != -1 || agt.indexOf("opera/3") != -1);
    var is_opera4 = (agt.indexOf("opera 4") != -1 || agt.indexOf("opera/4") != -1);
    var is_opera5 = (agt.indexOf("opera 5") != -1 || agt.indexOf("opera/5") != -1);
    var is_opera6 = (agt.indexOf("opera 6") != -1 || agt.indexOf("opera/6") != -1); // new 020128- abk
    var is_opera7 = (agt.indexOf("opera 7") != -1 || agt.indexOf("opera/7") != -1); // new 021205- dmr
    var is_opera5up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4);
    var is_opera6up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5); // new020128
    var is_opera7up = (is_opera && !is_opera2 && !is_opera3 && !is_opera4 && !is_opera5 && !is_opera6); // new021205 -- dmr

    // Note: On IE, start of appVersion return 3 or 4
    // which supposedly is the version of Netscape it is compatible with.
    // So we look for the real version further on in the string

    var iePos  = appVer.indexOf('msie');
    if (iePos !=-1) {
       is_minor = parseFloat(appVer.substring(iePos+5,appVer.indexOf(';',iePos)))
       is_major = parseInt(is_minor);
    }

    // ditto Konqueror
                                      
    var is_konq = false;
    var kqPos   = agt.indexOf('konqueror');
    if (kqPos !=-1) {                 
       is_konq  = true;
       is_minor = parseFloat(agt.substring(kqPos+10,agt.indexOf(';',kqPos)));
       is_major = parseInt(is_minor);
    }                                 

    var is_getElementById   = (document.getElementById) ? "true" : "false"; // 001121-abk
    var is_getElementsByTagName = (document.getElementsByTagName) ? "true" : "false"; // 001127-abk
    var is_documentElement = (document.documentElement) ? "true" : "false"; // 001121-abk

    var is_safari = ((agt.indexOf('safari')!=-1)&&(agt.indexOf('mac')!=-1))?true:false;
    var is_khtml  = (is_safari || is_konq);

    var is_gecko = ((!is_khtml)&&(navigator.product)&&(navigator.product.toLowerCase()=="gecko"))?true:false;
    var is_gver  = 0;
    if (is_gecko) is_gver=navigator.productSub;

    var is_moz   = ((agt.indexOf('mozilla/5')!=-1) && (agt.indexOf('spoofer')==-1) &&
                    (agt.indexOf('compatible')==-1) && (agt.indexOf('opera')==-1)  &&
                    (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)     &&
                    (is_gecko) && 
                    ((navigator.vendor=="")||(navigator.vendor=="Mozilla")));
    if (is_moz) {
       var is_moz_ver = (navigator.vendorSub)?navigator.vendorSub:0;
       if(!(is_moz_ver)) {
           is_moz_ver = agt.indexOf('rv:');
           is_moz_ver = agt.substring(is_moz_ver+3);
           is_paren   = is_moz_ver.indexOf(')');
           is_moz_ver = is_moz_ver.substring(0,is_paren);
       }
       is_minor = is_moz_ver;
       is_major = parseInt(is_moz_ver);
    }

    var is_nav  = ((agt.indexOf('mozilla')!=-1) && (agt.indexOf('spoofer')==-1)
                && (agt.indexOf('compatible') == -1) && (agt.indexOf('opera')==-1)
                && (agt.indexOf('webtv')==-1) && (agt.indexOf('hotjava')==-1)
                && (!is_khtml) && (!(is_moz)));

    // Netscape6 is mozilla/5 + Netscape6/6.0!!!
    // Mozilla/5.0 (Windows; U; Win98; en-US; m18) Gecko/20001108 Netscape6/6.0
    // Changed this to use navigator.vendor/vendorSub - dmr 060502   
    // var nav6Pos = agt.indexOf('netscape6');
    // if (nav6Pos !=-1) {
    if ((navigator.vendor)&&
        ((navigator.vendor=="Netscape6")||(navigator.vendor=="Netscape"))&&
        (is_nav)) {
       is_major = parseInt(navigator.vendorSub);
       // here we need is_minor as a valid float for testing. We'll
       // revert to the actual content before printing the result. 
       is_minor = parseFloat(navigator.vendorSub);
    }

    var is_nav2 = (is_nav && (is_major == 2));
    var is_nav3 = (is_nav && (is_major == 3));
    var is_nav4 = (is_nav && (is_major == 4));
    var is_nav4up = (is_nav && is_minor >= 4);  // changed to is_minor for
                                                // consistency - dmr, 011001
    var is_navonly      = (is_nav && ((agt.indexOf(";nav") != -1) ||
                          (agt.indexOf("; nav") != -1)) );

    var is_nav6   = (is_nav && is_major==6);    // new 010118 mhp
    var is_nav6up = (is_nav && is_minor >= 6) // new 010118 mhp

    var is_nav5   = (is_nav && is_major == 5 && !is_nav6); // checked for ns6
    var is_nav5up = (is_nav && is_minor >= 5);

    var is_nav7   = (is_nav && is_major == 7);
    var is_nav7up = (is_nav && is_minor >= 7);

    var is_ie   = ((iePos!=-1) && (!is_opera) && (!is_khtml));
    var is_ie3  = (is_ie && (is_major < 4));

    var is_ie4   = (is_ie && is_major == 4);
    var is_ie4up = (is_ie && is_minor >= 4);
    var is_ie5   = (is_ie && is_major == 5);
    var is_ie5up = (is_ie && is_minor >= 5);
    
    var is_ie5_5  = (is_ie && (agt.indexOf("msie 5.5") !=-1)); // 020128 new - abk
    var is_ie5_5up =(is_ie && is_minor >= 5.5);                // 020128 new - abk
	
    var is_ie6   = (is_ie && is_major == 6);
    var is_ie6up = (is_ie && is_minor >= 6);

// KNOWN BUG: On AOL4, returns false if IE3 is embedded browser
    // or if this is the first browser window opened.  Thus the
    // variables is_aol, is_aol3, and is_aol4 aren't 100% reliable.

    var is_aol   = (agt.indexOf("aol") != -1);
    var is_aol3  = (is_aol && is_ie3);
    var is_aol4  = (is_aol && is_ie4);
    var is_aol5  = (agt.indexOf("aol 5") != -1);
    var is_aol6  = (agt.indexOf("aol 6") != -1);
    var is_aol7  = ((agt.indexOf("aol 7")!=-1) || (agt.indexOf("aol7")!=-1));
    var is_aol8  = ((agt.indexOf("aol 8")!=-1) || (agt.indexOf("aol8")!=-1));

    var is_webtv = (agt.indexOf("webtv") != -1);
    
    // new 020128 - abk
    
    var is_TVNavigator = ((agt.indexOf("navio") != -1) || (agt.indexOf("navio_aoltv") != -1)); 
    var is_AOLTV = is_TVNavigator;

    var is_hotjava = (agt.indexOf("hotjava") != -1);
    var is_hotjava3 = (is_hotjava && (is_major == 3));
    var is_hotjava3up = (is_hotjava && (is_major >= 3));

    // end new
	
// -->




var arrImages = new Array();
var arrAlphaImages = new Array();
var arrLipImages = new Array();

var arrHovers = new Array('1001', '1011', '1021', '1031', '1041', '1051', 
	'1141', '1201', '1221', '1301', '1311', '1321', '1331', '1341', '1351',
	'1361', '1371', '1381', '1501', '1511', '1521', '1541', '1601', '1621', '1631');

var arrAlphaHovers = new Array('Ee', 'Gg', 'Jj', 'Pp', 'Xx'); 

var arrLipHovers = new Array('2000', '2003', '2005', '2007', '2009', '2011',
	'2013', '2015', '2017', '2019', '2020', '2022', '2024', '2027', '2029');

function preloadHovers()
{
	var ct, img;
	for(ct = 0;ct < arrHovers.length;ct++)
	{
		img = new Image();
		img.src = 'image/symb/'+arrHovers[ct]+'_hover.gif';
		arrImages[ct] = img;
	}
	for(ct = 0;ct < arrAlphaHovers.length;ct++)
	{
		img = new Image();
		img.src = 'image/alpha/'+arrAlphaHovers[ct]+'_hover.gif';
		arrAlphaImages[ct] = img;
	}
	for(ct = 0;ct < arrLipHovers.length;ct++)
	{
		img = new Image();
		img.src = 'image/huuliot/'+arrLipHovers[ct]+'_hover.gif';
		arrLipImages[ct] = img;
	}
}

//preloadHovers();

function preloadHandshapeHovers()
{
	var ct, img;
	for(ct = 0;ct < arrHovers.length;ct++)
	{
		img = new Image();
		img.src = 'image/symb/'+arrHovers[ct]+'_hover.gif';
		arrImages[ct] = img;
	}
}

function preloadAlphaHovers()
{
	var ct, img;
	for(ct = 0;ct < arrAlphaHovers.length;ct++)
	{
		img = new Image();
		img.src = 'image/alpha/'+arrAlphaHovers[ct]+'_hover.gif';
		arrAlphaImages[ct] = img;
	}
}

function preloadLipshapeHovers()
{
	var ct, img;
	for(ct = 0;ct < arrLipHovers.length;ct++)
	{
		img = new Image();
		img.src = 'image/huuliot/'+arrLipHovers[ct]+'_hover.gif';
		arrLipImages[ct] = img;
	}
}




function on(elementID)
{
	var x, y, z, ypos, xpos, curHover;
	
	x = document.getElementById('Img_'+elementID);
	x.src = 'image/symb/'+elementID+'_on.gif';
	x.className='critimageselected';

	if( (curHover = inArr(elementID, arrHovers)) != -1)
	{
		z = document.getElementById('Img_shapegroup');
		z.src = arrImages[curHover].src;
		
		ypos = findPosY(x);
		xpos = findPosX(x);
		
		y = document.getElementById('shapegroup');
		
		if(is_nav)
		{
			y.style.left = xpos + 65;
			y.style.top = ypos + 65;
		}
		else
		{
			y.style.posLeft = xpos + 65;
			y.style.posTop = ypos + 65;
		}

		y.style.visibility = 'visible';

	}
}

function off(elementID, selected)
{
	var x, y, z;
	x = document.getElementById('Img_'+elementID);
	x.src = 'image/symb/'+elementID+'.gif';
	if(!selected)
		x.className='critimage';

	if(inArr(elementID, arrHovers) != -1)
	{
		y = document.getElementById('shapegroup');
		y.style.visibility = 'hidden';
		z = document.getElementById('Img_shapegroup');
		z.src = '';
	}
}

function alphaon(elementID)
{
	var x, y, z, ypos, xpos, curHover;
	
	x = document.getElementById('Img_'+elementID);
	x.className='alphaimageselected';

	y = document.getElementById('shapegroup');
	if( (curHover = inArr(elementID, arrAlphaHovers)) != -1)
	{
		z = document.getElementById('Img_shapegroup');
		z.src = arrAlphaImages[curHover].src;
		
		ypos = findPosY(x);
		xpos = findPosX(x);
		
		if(is_nav)
		{
			y.style.left = xpos + 65;
			y.style.top = ypos + 65;
		}
		else
		{
			y.style.posLeft = xpos + 65;
			y.style.posTop = ypos + 65;
		}

		y.style.visibility = 'visible';
	}
	else
		y.style.visbility = 'hidden';
}

function alphaoff(elementID, selected)
{
	var x, y, z;
	x = document.getElementById('Img_'+elementID);
	x.src = 'image/alpha/'+elementID+'.gif';
	if(!selected)
		x.className='alphaimage';

	y = document.getElementById('shapegroup');
	y.style.visibility = 'hidden';
}

function alphadivoff()
{
	y = document.getElementById('shapegroup');
	y.style.visibility = 'hidden';
	z = document.getElementById('Img_shapegroup');
	z.src = '';
}


function lipon(elementID)
{
	var x, y, z, ypos, xpos, curHover;
	
	x = document.getElementById('Img_'+elementID);
	x.src = 'image/huuliot/'+elementID+'_on.gif';

	y = document.getElementById('shapegroup');
	if( (curHover = inArr(elementID, arrLipHovers)) != -1)
	{
		z = document.getElementById('Img_shapegroup');
		z.src = arrLipImages[curHover].src;
		
		ypos = findPosY(x);
		xpos = findPosX(x);
		
		if(is_nav)
		{
			y.style.left = xpos + 65;
			y.style.top = ypos + 65;
		}
		else
		{
			y.style.posLeft = xpos + 65;
			y.style.posTop = ypos + 65;
		}

		y.style.visibility = 'visible';
	}
	else
		y.style.visbility = 'hidden';
}

function lipoff(elementID, selected)
{
	var x, y, z;
	x = document.getElementById('Img_'+elementID);
	x.src = 'image/huuliot/'+elementID+'.gif';

//	if(!selected)
//		x.className='alphaimage';

	y = document.getElementById('shapegroup');
	y.style.visibility = 'hidden';
}


function grammaron(elementID)
{
	var x;
	
	x = document.getElementById('Img_'+elementID);
	x.src = 'image/grammar/'+elementID+'_on.gif';
}

function grammaroff(elementID, selected)
{
	var x;
	x = document.getElementById('Img_'+elementID);
	x.src = 'image/grammar/'+elementID+'.gif';
}


function HSon(HSnumber, obj)
{
	var x, y, z, xpos, ypos;
	x = document.getElementById('Img_Handshape');
	x.src = 'image\\symb\\' + HSnumber + '_valittu.gif';
	
	z = document.getElementById('HS_'+HSnumber)

	ypos = findPosY(obj);
	xpos = findPosX(obj);
		
	y = document.getElementById('handshape');
	if(is_nav)
	{
		y.style.left = xpos + 5;
		y.style.top = ypos + 5;
	}
	else
	{
		y.style.posLeft = xpos + 15;
		y.style.posTop = ypos + 10;
	}

	y.style.visibility = 'visible';
}

function HSoff(HSnumber)
{
	var x, y;
	x = document.getElementById('Img_Handshape');
	x.src = '';

	y = document.getElementById('handshape');
	y.style.visibility = 'hidden';
}


function lipshapeChange(selobj)
{
	var lsText;
	lsText = selobj.options[selobj.selectedIndex].text;

	document.getElementById('divLipshape').innerText = lsText;
}

function grammarChange(selobj)
{
	var lsText;
	lsText = selobj.options[selobj.selectedIndex].text;

	document.getElementById('divGrammar').innerText = lsText;
}

function xReplace(inputString, fromString, toString)
{
	var regString = new RegExp(fromString, "gi");
	return inputString.replace(regString, toString);
}


function finWord(sel)
{
	var i;
	var fin = document.forms[0].TxtFinnish.value;
	if(fin == '')
		return;
	var selFin = document.getElementById('SelFinwords');
	
	if(fin.length > 0 && (i = search_select_text(selFin, fin)) != -1)
	{
		selFin[i].selected = true;
		selFin.onchange();
	}
}


function printOpen(page)
{
	window.open(page, 'Suvi', 'status=no,toolbar=no,menubar=yes,resizable=yes,scrollbars=yes');
}

function numeralVideoOpen(page, videoID)
{
	window.open(page, 'Suvinumvideo'+videoID, 'height=324,width=336,status=no,toolbar=no,menubar=no,resizable=yes,scrollbars=no');
	return false;
}

function numeralSmallVideoOpen(page, videoID)
{
	window.open(page, 'Suvipocketnumvideo'+videoID, 'height=236,width=192,status=no,toolbar=no,menubar=no,resizable=yes,scrollbars=no');
	return false;
}

function numeralQTVideoOpen(page, videoID)
{
	window.open(page, 'SuviQTnumvideo'+videoID, 'height=300,width=336,status=no,toolbar=no,menubar=no,resizable=yes,scrollbars=no');
	return false;
}

function search_select_text(select_1,s1_text) 
{
  var s1_low = 0;
  var s1_high = select_1.options.length;
  var s1_mid = 0;

  s1_text = s1_text.replace('-', '');
  
  var text_length = s1_text.length;

  while (s1_low <= s1_high) 
  {
    s1_mid = Math.floor(s1_low + ((s1_high - s1_low) / 2));
    if((fix_select_search(select_1.options[s1_mid].text)).substr(0, text_length).toLowerCase() == s1_text)
    {
	 while(s1_mid > 0)
	 {
	    if((fix_select_search(select_1.options[s1_mid-1].text)).substr(0, text_length).toLowerCase() != s1_text)
			break;
		s1_mid--;
	 }
		return s1_mid;
    } 
    else 
    {
      if (s1_text < fix_select_search(select_1.options[s1_mid].text)) 
        s1_high = s1_mid - 1;
      else 
        s1_low = s1_mid + 1;
    }
  }
  return -1;
}

function fix_select_search(str)
{
	str = str.toLowerCase();
	str = str.replace('-', '');
	if(str.charAt(0) == '-')
		return str.substr(1);
	return str;	
}

function findPosX(obj)
{
	var curleft = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curleft += obj.offsetLeft
			obj = obj.offsetParent;
		}
	}
	else if (obj.x)
		curleft += obj.x;
	return curleft;
}

function findPosY(obj)
{
	var curtop = 0;
	if (obj.offsetParent)
	{
		while (obj.offsetParent)
		{
			curtop += obj.offsetTop
			obj = obj.offsetParent;
		}
	}
	else if (obj.y)
		curtop += obj.y;
	return curtop;
}

function inArr(val,arr)
{
	var ct;
	for(ct=0;ct<arr.length;ct++)
	{
		if(arr[ct] == val)
			return ct;
	}
	return -1;
}
