var lang = 1;   // 1: Farsi, 0: Eare nglish
var pos = 1;
var curLine = 0;

var beginTime, finishTime;


var farsikey = [
   0x0020, 0x0021, 0x061B, 0x066B, 0x00A4, 0x066A, 0x060C, 0x06AF,
   0x0029, 0x0028, 0x002A, 0x002B, 0x0648, 0x002D, 0x002E, 0x002F,
   0x06F0, 0x06F1, 0x06F2, 0x06F3, 0x06F4, 0x06F5, 0x06F6, 0x06F7,
   0x06F8, 0x06F9, 0x003A, 0x06A9, 0x003E, 0x003D, 0x003C, 0x061F,
   0x066C, 0x0624, 0x200C, 0x0698, 0x0649, 0x064D, 0x0625, 0x0623,
   0x0622, 0x0651, 0x0629, 0x00BB, 0x00AB, 0x0621, 0x004E, 0x005D,
   0x005B, 0x0652, 0x064B, 0x0626, 0x064F, 0x064E, 0x0056, 0x064C,
   0x0058, 0x0650, 0x0643, 0x062C, 0x005C, 0x0686, 0x00D7, 0x0640,
   0x200D, 0x0634, 0x0630, 0x0632, 0x064A, 0x062B, 0x0628, 0x0644,
   0x0627, 0x0647, 0x062A, 0x0646, 0x0645, 0x067E, 0x062F, 0x062E,
   0x062D, 0x0636, 0x0642, 0x0633, 0x0641, 0x0639, 0x0631, 0x0635,
   0x0637, 0x063A, 0x0638, 0x007D, 0x007C, 0x007B, 0x007E
];

function CorrectlyPressed(shift, obj, code){//Correctly pressed the world
	if (obj.getAttribute('shift')){
		if (!shift)
			return false;
	}
	else
		if (shift)
			return false;
	if (code == obj.getAttribute('charcode'))
		return true;

	//The ';' chracter has different codes in IE and FireFox
      if ((code == 59) && (obj.getAttribute('charcode') == 186) )
		return true;

	return false;

};

function FKeyPress(){
    
    var key = window.event.keyCode;
    
   if (lang == 1) { //If Farsi
      if (key == 0x0020 && window.event.shiftKey) // Shift-space -> ZWNJ
         window.event.keyCode = 0x200C;
      else
      window.event.keyCode = farsikey[key - 0x0020];
         if ( farsikey[key-0x0020] == 92){   
            window.event.keyCode = 0x0698;
         }
         if ( farsikey[key-0x0020] == 8205){   
            window.event.keyCode = 0x067E;
         }
   }
   return true;
}


function UnderLineObj(obj){
	obj.style.textDecoration = "underline";
	document.getElementById('nextDiv').innerHTML = obj.innerHTML;
	if (obj.getAttribute('charcode') == '32'){
		if (obj.getAttribute('shift'))
			document.getElementById('nextDiv').innerHTML = 'Shift+SPACE';		
		else
			document.getElementById('nextDiv').innerHTML = 'SPACE';

	};
	document.getElementById('Line').innerHTML = curLine + '/'  + maxLine;
}



function start(){
    beginTime = new Date();

}

function getkey(e)
{
  if (e.which)
	return e.which;
  if (e.keyCode)
	return e.keyCode;
  if (e.charCode)
	return e.charCode;
return null;
}


function onKeyDown(e)
{   
    var code =  e.keyCode?e.keyCode:e.charCode;

    var posn = pos + 1;
    var posnext = pos + 1;
    var divid = 'd'  + pos;
    var dividnext = 'd' + posnext;
    var divobj = document.getElementById(divid);
    var maxlength;
    var divobjNext = document.getElementById(dividnext);


    
    var nextlevel = level + 1;
    var prevlevel = level - 1;


    if (prevlevel < 1)
        prevlevel = 1;
    if (code == 38)
        location.href = "?level=" + nextlevel; 
    if (code == 39)
        location.href = "?level=" + level; 
    if (code == 40)
        location.href = "?level=" + prevlevel; 


    if (!beginTime){
        window.scrollBy(0, -1000);
        start();
    };


    if (!divobj)
        return;


	 



        
    var txt = divobj.innerHTML;

    if (CorrectlyPressed(e.shiftKey, divobj, code))
    {


    if(divobj.getAttribute('doscrollpage')){
       // pos++;
       var ppos = pos  - 1;
       var div_prev = 'd' + ppos;
       var div_prev_obj = document.getElementById(div_prev);
       var dif = divobjNext.offsetTop - div_prev_obj.offsetTop;
       window.scrollBy(0, dif);
       //document.getElementById('bluediv').style.top += dif;

	var nextLine = curLine + 2;
	var lineObj1 = 'dl'+curLine;
	var lineObj2 = 'dl'+nextLine;
	if (document.getElementById(lineObj2)){
		document.getElementById(lineObj1).style.display = "none";							    
		document.getElementById(lineObj2).style.display = "";
	};
	curLine++;
		



    };




          divobj.style.color='red';
          divobj.style.textDecoration = "none";
      if (divobjNext)
		UnderLineObj(divobjNext);
        pos++;


    if (!document.getElementById(dividnext)){
        window.scrollBy(0, -1000);
        finishTime = new Date();
        var speed = 3600 * (finishTime.getHours() - beginTime.getHours())
                + 60 * (finishTime.getMinutes() - beginTime.getMinutes())
                +    (finishTime.getSeconds() - beginTime.getSeconds())

        speed = Math.   ceil(100*pos / speed ) / 100.0;
        document.getElementById('content').innerHTML = "Your speed is <div class=\'divs\'>" + speed + "</div>  key per second";

        return;

    };


    }




    

}
