var cmTimer;  /*global variable to hold the timer handle */
 var dummyImg = new Image();  /*used to hold new image */
 var oLastChange = dummyImg;  /* used to point to the last image_object made active-active to change back to active-passive */
 var cLastChange;   /* the grade (ie. ABCDF) that the last image was  */
 var bChangeFlag = 0;  /* flag to determine if the control was active(1) or not(0) */
 
var ie=document.all  //detect IE
var dom = document.getElementById  //detect mozilla
var ns4 = document.layers  //detect NS4
 
 var gradeArray = new Array(5);
 gradeArray[5] = 'A';
 gradeArray[4] = 'B';
 gradeArray[3] = 'C';
 gradeArray[2] = 'D';
 gradeArray[1] = 'F';
 
 function preLoader() 
{
   /*
   *  Preload images
   */
    
objImg = new Image(); 

objImg.src = "a_colour.png";   /* active-active,  passive-active */
objImg.src = "a_white.png";    /* passive-passive */
objImg.src = "a_grey.png";     /* active-passive  */

objImg.src = "b_colour.png";
objImg.src = "b_white.png";
objImg.src = "b_grey.png";

objImg.src = "c_colour.png";
objImg.src = "c_white.png";
objImg.src = "c_grey.png";

objImg.src = "d_colour.png";
objImg.src = "d_white.png";
objImg.src = "d_grey.png";

objImg.src = "e_colour.png";
objImg.src = "e_white.png";
objImg.src = "e_grey.png";

objImg.src = "undefined_colour.png";
objImg.src = "undefined_white.png";
objImg.src = "undefined_grey.png";

 return;

}
 
 
 
 function changeMode(bMode, cName, cImg) {
    /*
    *  bMode => true   :: change target image (cImg) to active-active and others to active-passive... used from changing from image to image within the same control
    *           false  :: change ALL image (cImg + siblings) to passive-passive...   used for changing from image to outside control
    */
     
     clearTimeout(cmTimer); /* Cancel any outstanding changeMode timers */
     var oImg = document.getElementById(cImg); /* get the img object being targeted */
     
     if(bChangeFlag==0){   /* if the control was not active */
        var oTp = oImg.parentNode;  /*get the parent DIV*/
        var oChildren = oTp.childNodes; /*now get the target img and siblings nodes */
        var j = oChildren.length;  
        for(i=0;i<j;i++){          /*go through and for each sibling IMG change img to active-passive */
            if(oChildren[i].nodeName == "IMG") {
                var cTSp = oChildren[i].className.substr(0,1);  /* the second character of the class name a/b/c/d/f */
                oChildren[i].src = cTSp + '_grey.png';  
            }
        }
        
        bChangeFlag = 1;  
     }
         
     
     
     if(bMode=='true'){
        oImg.src = cName + '_colour.png'; /* change target image to active-active */
        oLastChange.src = cLastChange + '_grey.png';   /*change the previously selected image to active-passive */
        cLastChange = cName;  /* set the grade of the image (ie. ABCDF) */
        oLastChange = oImg;  /*point the previously slected to the new target image */
    }else{
        
        var oTp = oImg.parentNode;
        var oChildren = oTp.childNodes;
        var j = oChildren.length;
        for(i=0;i<j;i++){
            if(oTp.childNodes[i].nodeName == "IMG") {
                var cTTp = oTp.childNodes[i].className.substr(1,1);  /* the first character of the class name 1= default grade before change */
                var cTSp = oTp.childNodes[i].className.substr(0,1);  /* the second character of the class name a/b/c/d/f */
                if(cTTp!='0'){
                    oTp.childNodes[i].src = cTSp + '_colour.png';
                }else{
                    oTp.childNodes[i].src = cTSp + '_white.png';
                }
            }
        }
        
        oLastChange = dummyImg;
        cLastChange = 'undefined';
        bChangeFlag = 0;
    }
     return;
 }
 
 
 
 function parseGrade(oGrade){
    
    
    var sGrade = oGrade.id; //convert id into  a string
    
    var grade = sGrade.substr(0,1).toUpperCase();  //convert to uppercase
    
    
    var gradeValue = 0;
    for(var i=1;i<=5;i++){
        if(gradeArray[i] == grade) {
        gradeValue = i;
        break;
        }
    }
    return gradeValue;
 }
 
 
 function parseMid(oGrade){
    var sGrade = oGrade.id; //convert id into  a string
    var mid = sGrade.substr(3);  //return the mid
    return mid;
 }
 
 
 
 function submitGrade(oGrade, cConfirm, cConfirmImage){
    var oConfirm = document.getElementById(cConfirm);
    var oConfirmImage = document.getElementById(cConfirmImage);
    var oSubmitGrade = document.getElementById('submit_grade');
    var oSubmitMid = document.getElementById('submit_mid');
    var oSubmitEmail = document.getElementById('submit_email');
    
    var grade = parseGrade(oGrade);
    var mid = parseMid(oGrade);
    
    oSubmitGrade.value = grade;
    oSubmitMid.value = mid;
    var sGrade = oGrade.id; //convert id into  a string
    var slGrade = sGrade.substr(0,1).toLowerCase()  //convert to lower case
    
    oConfirmImage.src = slGrade + '_colour.png';
        
    var scroll_top=(ie)? document.body.scrollTop : window.pageYOffset;  //get the top of the page relative to the window
    var scroll_left=(ie)? document.body.scrollLeft : window.pageXOffset;  //get the top of the page relative to the window
    oConfirm.style.top = scroll_top + 100;
    oConfirm.style.left = scroll_left + 100;
    
    
    oConfirm.style.visibility = 'visible';
    oSubmitEmail.focus();    
 }
 
 function dismissbox(cConfirm, cConfirmImage){
        var oConfirm = document.getElementById(cConfirm); 
        var oConfirmImage = document.getElementById(cConfirmImage); 
        var oSubmitGrade = document.getElementById('submit_grade');
        var oSubmitMid = document.getElementById('submit_mid');
        var oSubmitEmail = document.getElementById('submit_email');    
        
        oConfirmImage.src = '';
        oSubmitEmail.value = '';
        oSubmitGrade.value = '';
        oSubmitMid.value = '';
        
        
        oSubmitEmail.blur();
        oConfirm.style.visibility = "hidden"; //hide box
}