﻿// JScript File

// CallbackTrigger
function KGConceptWhatListControl_CallbackTrigger_Wrapped(event, 
                                                          _title, 
                                                          _currentId, 
                                                          _currentLevel, 
                                                          _mode,
                                                          _cbreference,
                                                          _controlName)
{
  if(_title != null && _title !='') 
  {
     _title = 'What ' + _title + '?';
  }
  else
  {
     _title = 'What?';
  }
  SetSessionProperty('PageSession_ConceptWhatListControl_title', _title);
  if(_currentId != -2) // when click Search Button is not clicked
    SetSessionProperty('PageSession_ConceptWhatListControl_currentId', _currentId);
  SetSessionProperty('PageSession_ConceptWhatListControl_currentLevel', _currentLevel);
  SetSessionProperty('PageSession_ConceptWhatListControl_mode', _mode);
  var args = 'para1=1';
  if(_currentId!=-1)
  { // Trigger call back when currentId is not -1
    eval(_cbreference);
  } 
  if( _mode==0 && _title!=null && _title!='')
  { 
    // Update Control Title
    eval('Update' + _controlName + 'Title(\'' + _title + '\');');
    // Calculate current mouse position on the target element
    //var imageDiv = event.srcElement;
    var posLeft = (Math.floor(event.clientX /23))*23 - 21;
    var posTop = (Math.floor(event.clientY/19))*19 + 14;
    if(posLeft < 0) posLeft=0;
      if(posTop < 0) posTop=0;
        // Update Control Postion
        eval('Update' + _controlName + 'Pos(\'absolute\', \'' + posLeft + '\', \'' + posTop + '\');');
  } 
  CancelBubble(event);
}

// this will rerender table after call back
function KGConceptWhatListControl_CallbackDone_wrapped(args, 
                                                       context,
                                                       _thisClientIDtableID,
                                                       _controlName)
{
  // Check for a session time out before completing the callback
  if (CheckSessionTimeout())
    return;
  
  var holder = document.getElementById(_thisClientIDtableID)
  if(holder != null)
  {
    SetOuterHtml(holder,args);
    eval('Show' + _controlName + '();');   
  }
  else
  {
    eval(_controlName + '_ProcessCallBackError(\'ConceptWhatListControl not found in RegisterJavaScripts().\', \'\');');
  }
}

// OnClick Handler
function KGConceptWhatListControl_OnTableRowClickHandler_Wrapped(rowId,
                                                                 _idSeparator,
                                                                 _controlName)
{
  var currentId = -1;
  var currentLevel = -1;
  var title = '';
  var mode = 0; // Knowde
  if(rowId != null)
  {
    if(rowId != null)
    {
      var itemValues = rowId.split(_idSeparator);
      // only needs the first two params
      if(itemValues != null && itemValues.length>=2) 
      {
        currentId = itemValues[0];
        currentLevel = itemValues[1];
        title = '';
        mode = 1;  // Knowde
        if(currentId != -1)
        { 
          // ConceptWhatListControl Callback Trigger
          eval(_controlName + '_CallbackTrigger(event, \'' + title + '\', \'' + currentId + '\', \'' + currentLevel + '\', \'' + mode + '\');');
          // Change Background color of the clicked Table Row
        }
      }
    }    
  }
}

// Embedded Search Control - OnClick Handler
function KGConceptWhatListControl_KGSearchControlButtonOnClickHandler_Wrapped(_controlName)
{
  var searchPhrase = '';
  searchPhrase = eval(_controlName + '_GetSearchPhrase();');
  if(searchPhrase == null || searchPhrase =='')
    searchPhrase = '';
    SetSessionProperty('PageSession_ConceptWhatListControl_searchPhrase', searchPhrase);
  var currentId = -2;
  var currentLevel = -1;
  var title = '';
  var mode = 2; // SearchResult
  if(currentId != -1)
  { 
    // ConceptWhatListControl Callback Trigger
    eval(_controlName + '_CallbackTrigger(event, \'' + title + '\', \'' + currentId + '\', \'' + currentLevel + '\', \'' + mode + '\');');
  }
}

// Search Box - KeyUpHandler_NoDelay
function KGConceptWhatListControl_KeyUpHandler_NoDelay_Wrapped(_searchControl_OnClickHandler)
{
   // Call SearchControl OnClick Handler
   eval(_searchControl_OnClickHandler);
}

// Search Box - KeyUpHandler With Delay - keyup event handler
function KGConceptWhatListControl_KGSearchControlKeyUpHandler_Wrapped(_KEYUP_EVENT_DELAY_MS,
                                                                      _controlName)
{
  var globalKeyUpDelay = eval(_KEYUP_EVENT_DELAY_MS) ;
  if(keyUpTimer != null)
  {
    window.clearTimeout(keyUpTimer);
    delete keyUpTimer;
    keyUpTimer = null;
  }
  if(keyUpTimer == null)
  {
    keyUpTimer = eval ('window.setTimeout(\'' + _controlName + '_KeyUpHandler_NoDelay()\', \'' + globalKeyUpDelay + '\');')
  }
}

// Return Search Phrase
function KGConceptWhatListControl_GetSearchPhrase_Wrapped(_embedSearchControlTextBoxId)
{
  var searchPhrase = '';
  var SearchBox = document.getElementById(_embedSearchControlTextBoxId);
  if(SearchBox != null)
  {
    searchPhrase = SearchBox.value;     
  }
  else
  {
    searchPhrase = '';
  }
  return searchPhrase;
}
