var focusNames = new Array('userTCPin1','userTCPin2','pinSubmit');
var focusOPKNames = new Array('userTCPasscode1','userTCPasscode2','userTCPasscode3','userTCPasscode4','userTCPasscode5','userTCPasscode6','userTCPasscode7','userTCPasscode8','userTCPasscode9','userTCPasscode10','pinSubmit');

function getKeyCode(anEvent) {
        var key;
        if (anEvent.charCode == undefined){
            key = anEvent.keyCode;
        }else{
            key = anEvent.charCode;
            if (key == 0 && (anEvent.keyCode == 13||anEvent.keyCode == 9)){
                return anEvent.keyCode;
            }
        }
        return key;
   }

function inputKey(object,event) {
    var keyCode = getKeyCode(event);

    if (keyCode == 13 || keyCode == 9||keyCode == 0) return true;
    //MAC backspace             delete             <-                    ->       numpad enter
    if (  keyCode=='8'|| keyCode=='63272'|| keyCode=='63234'|| keyCode=='63235'|| keyCode=='3' ||
       ((keyCode >32) && (keyCode < 48)))
         return true;
      object.value=String.fromCharCode(keyCode);
}

function inputKey2(object,event){
    if (!event){
        event = window.event;
    }
    if (typeof(event)== "undefined"){
        return;
    }
    var keyCode = getKeyCode(event);
    if (!event.altKey && (event.ctrlKey || isControlKey(event,keyCode))) return;
    if(keyCode==34){
        try{
            event.keyCode=39;
            event.returnValue=true;
            if (navigator.appVersion.indexOf("Safari")> -1 || navigator.appVersion.indexOf("Konqueror")> -1){
                if (event.preventDefault) {
                  event.preventDefault();
                }
                event.returnValue=false;
                event.cancel = true;
            }
        }catch (e){
            try{
                var newEvent = document.createEvent("KeyEvents")
                newEvent.initKeyEvent("keypress", true, true, document.defaultView,
                                      event.ctrlKey, event.altKey, event.shiftKey,
                                      event.metaKey, 0, 39);
                if (event.preventDefault) {
                  event.preventDefault();
                }
                event.returnValue=false;
                event.cancel = true;
                event.target.dispatchEvent(newEvent);
            } catch (e){}
        }
    }

    if(!((keyCode >= 97 && keyCode <= 122) || (keyCode >= 65 && keyCode <= 90) || (keyCode >= 48 && keyCode <= 57))) {
      if (event.preventDefault) {
        event.preventDefault();
      }
      event.returnValue = false;
      event.cancel = true;
      return false;
	}
    
/*  Opera - needed condition for some special keys

    page up   33
    page down 34
    end       35
    home      36
    up key    38
    down key  40
    insert    45
    delete    46 
    F1       112
    ...
    F12      123
*/
    if((navigator.userAgent.indexOf('Opera') != -1) && ((keyCode >= 33 && keyCode <= 40) || 
    		(keyCode == 45) || (keyCode == 46) || (keyCode >= 112 && keyCode <= 123))) {
    	event.cancel = false;
    	return false;
    }        
    
    if(!event.cancel) {
        object.value=String.fromCharCode(keyCode);
        return true;
    }
    return false;
}

function focusShift(focusNames, object, event, type) {
    var keyCode = getKeyCode(event);
    if (keyCode == 9||keyCode == 0) return true;
    if (  keyCode=='8'|| keyCode=='63272'|| keyCode=='63234'|| keyCode=='63235') return true;
     var name = object.name;     
     var el;    

     for(var i=0; i<focusNames.length; i++) {
        if(name == focusNames[i]) {    
         break;
        }
     }
        
     if(event.shiftKey) {
     	//Shift+Enter je krok zpet
        if((i>0)&&(keyCode==13)) {
          document.getElementById(focusNames[i-1]).focus();         
        } 
        if((i<(focusNames.length-1))&&((keyCode >= 65 && keyCode <= 90) || (keyCode >= 48 && keyCode <= 57))) {
          document.getElementById(focusNames[i+1]).focus();
        }
     } else if (!event.shiftKey) {    	 
        if(i<(focusNames.length-1)) {
        
         try{
             var obj = document.getElementById(focusNames[i+1])
             if (obj.tagName.toUpperCase() == "IMG" && (keyCode == 13 || keyCode == 3)){
                if (event.preventDefault) {
                  event.preventDefault();
                }
                event.returnValue=false;
                event.cancel = true;
                doSubmit();
                return false;
             }
             
             //Workaround pro IE a Operu. Duvodem je, ze v IE
             //skocil focus driv, nez se hodnota vypsala.
             if((window.navigator.appName == "Microsoft Internet Explorer")||
             	(window.navigator.appName == "Opera")){             
            	 
            	 //1)Podminka proti skoceni z pole pred tim, nez bude do pole vypsana hodnota
            	 //2)Podminku muze porusit pouze enter(posun na dalsi pole)
            	 if((object.value.length>0)||(keyCode == 13)){            	 	
            		 obj.focus();
            	 }
             }else{
             	//Ostatni prohlizece(Firefox)se chovaji korektne,proto zadne podminky
            	 	obj.focus();
             }
             
         }catch(e){       
         	 alert('catch!'); 	 
             document.getElementById('pinSubmit').click();
         }
        }
     }
   	
   		if(type == 'opk') return false;
   
   
	    if (event.preventDefault) {
	      event.preventDefault();
	    }
	      event.returnValue=false;
	      event.cancel = true;
    
    return false;
}


/*
function getAppletVersion(){
   ver = "1.0";
   try {

     ver = document.MujObjekt.getVersion();
   } catch(e){

   }

   return ver;
}
*/
