﻿
// Amir Tal: this section is caching images for buttons
// this has a minor performance increase when hovering over buttons.
// * will only cache files with Absolute URL.
PicsCacheArr=new Array();
PicsCacheArr[0]=new Image; 
PicsCacheArr[0].src="http://www.interlect.co.il/bagrut/le/Images/tab_idle.gif";
PicsCacheArr[0]=new Image; 
PicsCacheArr[0].src="http://www.interlect.co.il/bagrut/le/Images/tab_selected.gif";

// JScript File
var uiCtrl = null;
//getTime() - Number of milliseconds since 1/1/1970 @ 12:00 AM 
var currentDate = new Date();
var lastMouseMoveTime = currentDate.getTime();
// give the mouse last coordinates initial values
var lastMouseX = 0;
var lastMouseY = 0;

//Methods
 function InitController(numOfViewers)
{
   
   //Add Iframe for Timer
   createTimerIframe();
   
   uiCtrl = new UIController();
   uiCtrl.viewers = new Array(numOfViewers);
  
   
   //------------------------------------------------------------------------- MICK
   // test
   //CreatePreloaderIframe(); 
  
   
   if (top.Populate_0 && top.Populate_1 && top.Populate_2)
   {
   //CR:Explain what is populate
        top.Populate_0();
        top.Populate_1();
        top.Populate_2();
   
       // restore style
       for(i=0;i<uiCtrl.viewers.length;i++)
       {
            for(j=0;j<uiCtrl.viewers[i].length;j++)
           {
                if (uiCtrl.viewers[i][j].visible == true)
                {
                      uiCtrl.viewers[i][j].iframe.className = "showIframe";
                      if  (uiCtrl.viewers[i][j].button != null)
                      {
                      uiCtrl.viewers[i][j].button.className = "TabOn";
                      }
                      uiCtrl.viewers[i][j].state = '1';
                }
                else
                {
                      uiCtrl.viewers[i][j].iframe.className = "hideIframe";
                      if  (uiCtrl.viewers[i][j].button != null)
                      {
                      uiCtrl.viewers[i][j].button.className = "TabOff";
                      }
                      uiCtrl.viewers[i][j].state = '0';
                }
           }
       }
       
       uiCtrl.IsReady = true;
   }
   createHistoryIframe();
   //preload controllers
   CreatePreloaderIframe(); 
}



//CR: move to controller
function Controller_OnClick(buttonId, objectId)
{
    
    if (uiCtrl != null && uiCtrl.IsReady)
    {
        //CR: change to this
        // switch with this.id or this.name
        switch(buttonId)
        {
            case BTN_PARAGRAPH:
            var request = new Request();
            request.type = REQ_PARAGRAPH_TYPE;
            break;
            case BTN_CLOCK:
            var request = new Request();
            request.type = REQ_CLOCK_TYPE;
            break;
            case BTN_FORUM:
            var request = new Request();
            request.type = REQ_FORUM_TYPE;
            break;
            case BTN_REPORTBUG:
            var request = new Request();
            request.type = REQ_FEEDBACK_TYPE;
            break;
            case BTN_ANSWERS:
            var request = new Request();
            request.type = REQ_ANSWERS_TYPE;
            break;
            case BTN_SYLLABUS:
            var request = new Request();
            request.type = REQ_SYLLABUS_TYPE;
            break;
            case BTN_FORMULAS:
            var request = new Request();
            request.type = REQ_FORMULAS_TYPE;
            break;
            case BTN_CALCULATOR:
            var request = new Request();
            request.type = REQ_CALCULATOR_TYPE;
            break;
            case BTN_DICTIONARY:
            var request = new Request();
            request.type = REQ_DICTIONARY_TYPE;
            break;
            
            case BTN_CATALOG_SEARCH:
            var request = new Request();
            request.type = REQ_CATALOG_SEARCH_TYPE;
            break;
            
            case BTN_CHANGE_COURSE:
            var request = new Request();
            request.type = REQ_CHANGE_COURSE_TYPE;
            break;
            case BTN_NOTES:
            var request = new Request();
            request.type = REQ_NOTES_TYPE;
            break;
            case BTN_TASKS:
            var request = new Request();
            request.type = REQ_TASKS_TYPE;
            break;
            case BTN_NEWMODULE:
            var request = new Request();
            request.type = REQ_NEWMODULE_TYPE;
            break;
            case BTN_MESSAGE:       
            var request = new Request();
            request.type = REQ_MESSAGE_TYPE;
            break;
            

            case BTN_PERIODIC_TABLE:   //<<== located in Contstants.js
            var request = new Request();
            request.type = REQ_PERIODIC_TABLE_TYPE;    //<<== located in Constants.js
            break;

            
            
            /*
            case BTN_[modulename]:   //<<== located in Contstants.js
            var request = new Request();
            request.type = REQ_[modulename]_TYPE;    //<<== located in Constants.js
            break;
            */
            
            default: return;
        }
        request.objectId = objectId;
        top.uiCtrl.sendData(request);
    }
}




function Tab_NumOfRows(objId)
{

alert( 'objId.offsetHeight = ' + objId.offsetHeight + ':'
    + 'objId.scrollHeight = ' + objId.scrollHeight
    + 'URL' + objId.style.backgroundImage 
    );
    if (objId.offsetHeight > objId.scrollHeight)
    {    
    
      
     objId.style.paddingTop = "17px";
     
         
    }
    else
    {
     objId.style.paddingTop = "0px";
     objId.style.paddingLeft= "3px";
     objId.style.paddingRight= "3px";
    }

}

function Controller_OnTabOver(objId)
{
    if (objId.state && objId.state != '1')
    { 
        //objId.style.backgroundImage = "url(Images/tab_selected.gif)";   
        objId.className = "TabOver";
      
    }
}

function Controller_OnTabOut(objId)
{
    if (objId.state && objId.state == '1')
    {
        //objId.style.backgroundImage = "url(Images/tab_selected.gif)";
        objId.className = "TabOn";
     
    }
    else
    {
        //objId.style.backgroundImage = "url(Images/tab_idle.gif)";
        objId.className = "TabOff";
       
    }
}

function createTimerIframe() 
{
    //This frame is set to auto refresh for billing events
    var iframe = document.createElement("iframe");
    iframe.setAttribute("src", TIMER_MV); //Timer page
    iframe.setAttribute("id", "frmTimer");
    iframe.setAttribute("name", "frmTimer");
    iframe.setAttribute("width", "1px");
    iframe.setAttribute("height", "1px");
    
    var isIE = (navigator.appName.indexOf("Microsoft") > -1);
    if(isIE){
        iframe.style.display = "none";
    } else {
        // cannot use display none, because FF wont submit the form programmatically.
        // using visibility instead
        iframe.style.visibility = "hidden";
    }

    iframe.style.position = "absolute";
    
    document.body.appendChild(iframe);
}

function createHistoryIframe() 
{
    var iframe = document.createElement("iframe"); 
    iframe.setAttribute("src", HISTORY_MV); //History page
    iframe.setAttribute("id", "frmHistory");
    iframe.setAttribute("name", "frmHistory");
    iframe.setAttribute("width", "1px"); 
    iframe.setAttribute("height", "1px"); 
    iframe.style.display = "none";
    document.body.appendChild(iframe); 
}

function CreatePreloaderIframe() 
{    
    
    var iframe = document.createElement("iframe"); 
    iframe.setAttribute("src", PRELOADER_MV);
    iframe.setAttribute("id", "frmPreloade");
    iframe.setAttribute("name", "frmPreloade");
    iframe.setAttribute("width", "1px"); 
    iframe.setAttribute("height", "1px");
    iframe.style.display = "none";
    document.body.appendChild(iframe); 
}

function returnToSite(message, siteUrl)
{
    alert(message);
    //opener.window.location = siteUrl;
}

function showBillingAlert(message)
{
    alert(message);
}

function ExitApplication()
{
    /***** disable the unload event on screen *****/
    window.onunload = function(){void(0)}
    try
    {
        if(confirm("? האם ברצונך לצאת מסביבת הלמידה"))
         {
            window.close();
         }
    }catch(e)
    {
         if(confirm("? האם ברצונך לצאת מסביבת הלמידה"))
         {
            window.close();
         }
    }

}

 

 

/*****

**************Minimize Application*****************************************************

***********************************************************************************

Function that Minimize the application and Get focuse on the 

opener window the "for" loop is because one time dont minimize the application

*****/

var sizewidth=0

function MinimizeApplication()
{

   if (typeof(parent.opener.document) != "object") {parent.close();return}

   var str=navigator.appVersion;

             oper_sys=str.split(";")[1];

             oper_sys=(oper_sys.split(" ")[2])*1;

             /***** Minimize screen *****/

               if(oper_sys>=5.5){

                  for(i=0;i<2;i++){ parent.opener.document.focus();window.blur();}

                }

               else

                {window.blur()}  /***** Minimize screen This work with IE ver 5 *****/

              

  }

/*
// depreached - replaced by a faster IsActiveTab(className) function
// check wether a tab is active by tab page name
// tabName: the name of the tab page, for example: "Paragraph.aspx"
function IsActiveTab(tabName)
{
    _ret = 0;
    for(i=0;i<uiCtrl.viewers.length;i++)
    {
        for(j=0;j<uiCtrl.viewers[i].length;j++)
       {
            if (uiCtrl.viewers[i][j].iframe.src == tabName)
            {
                  if(uiCtrl.viewers[i][j].iframe.className == "showIframe")
                  {                  
                    _ret = 1;
                    return _ret;
                  }
            }
       }
    }  
    return _ret;    
}
*/

function IsActiveTab(className)
{
    _ret = 0;    
    if(className == "showIframe")
    {                  
        _ret = 1;
        return _ret;
    }
    return _ret;
}

function UpdatePreloaderStatus(url, className)
{
    if(IsActiveTab(className) == 1)
    {
        try
        {
            // call the preloader in preloader.js
            top.myPreloader.check(url);            
        }catch(e){}
    }
}

// redirect guest to trial page in the portal
function OpenTrialInPortal(url)
{
    // change the portal url (the opener) to trial page    
    if(window.opener)
    {
        window.opener.location.href = url;
        window.close();
    }
    else
    {        
        // if the LE was opened directly, open the trial page in a new window
        var win = window.open(url,null,"top=0 ,width=" +screen.width+ ",height= "+ screen.height + ",left=0, status=yes,menubar=yes,scrollbars=yes,resizable=yes,titlebar=yes,toolbar=yes");
        if (win == null)
        {
            // if the new window does not open, change current url to trial page
            window.location.href = url;
        }
    }
}
