// $Revision: 1.89.2.1 $:
var worp_banner_js_Revision = "$Revision: 1.89.2.1 $";


// menu setup
var menuRenderer = null;
var helpMenuObject = null;
var toolsMenuObject = null;
var utilitiesMenuObject = null;
var personalizeMenuObject = null;
var importMenuObject = null;

var window_counter = -1;
var window_id_array = null;
var window_obj_array = null;
var window_prop_array = null;
var new_window = null;

var default_win_prop = "";

var win_obj_hash = new Array("GROUP_VIEWS", "height=400,width=360,resizable,scrollbars",
                             "SELECT_LANGUAGE", "height=400,width=360,resizable,scrollbars",
                             "OPTIONS", "height=525,width=550,resizable,scrollbars",
                             "RECENT", "height=400,width=360,resizable,scrollbars",
                             "FAVORITES", "height=400,width=360,resizable,scrollbars",
                             "DOMAIN_SEARCH", "height=,width=,resizable,scrollbars,status",
                             "DEFERRED_STATUS", "",
                             "LIBRARY", "height=,width=,resizable,scrollbars,status",
                             "TREE", "height=425,width=194,resizable",
                             "ABOUT", "height=156,width=500",
                             "WORPHELP", "");

var banner_languageToHelpMenuWidthMap = new Array();
    banner_languageToHelpMenuWidthMap['fc'] = 'XLARGE'; 
    banner_languageToHelpMenuWidthMap['fr'] = 'XLARGE'; 
    banner_languageToHelpMenuWidthMap['br'] = 'XLARGE'; 
    banner_languageToHelpMenuWidthMap['es'] = 'XLARGE'; 

/********************************************************************************************************************/

function banner_getLanguageToHelpMenuWidthMapping() {
  if(banner_languageToHelpMenuWidthMap[menuRender_getLanguage().toLowerCase()] == null) {
    return "LARGE";
  }
  else {
    return banner_languageToHelpMenuWidthMap[menuRender_getLanguage().toLowerCase()];
  }
}

function setPersonalizeMenu(displayName1, displayName2, actionEvent1, actionEvent2, language) {

  setBannerMenuItem(true);

  var menuId = "personalize";

  var menuItems = new Collection()

  var menuItem1 = new MenuItem();
      menuItem1.setDisplayName(displayName1);
      menuItem1.setOnClickEvent(actionEvent1);

  var menuItem2 = new MenuItem();
      menuItem2.setDisplayName(displayName2);
      menuItem2.setOnClickEvent(actionEvent2);

  menuItems.add(menuItem1);
  menuItems.add(menuItem2);

  personalizeMenuObject = new MenuObject(menuId);
  personalizeMenuObject.setMenuWidth("DEFAULT");
  personalizeMenuObject.setOnMouseOutEvent("javascript:hideMenu();");
  personalizeMenuObject.setOnMouseOverEvent("javascript:keepFocused();");
  personalizeMenuObject.setMenuItems(menuItems);
  
  addMenuObject(personalizeMenuObject);

}

/********************************************************************************************************************/

function showPersonalizeMenu(event, isPublicViewFlag) {
  if(!personalizeMenuObject.isRendered()) {   // render it

    menuRenderer = new MenuRenderer(personalizeMenuObject);
    menuRenderer.render();

  }

  showMenu(personalizeMenuObject.getMenuId(), event, null, null, null, isPublicViewFlag);
}

/********************************************************************************************************************/

function setToolsMenu(displayName1, displayName2, displayName3, actionEvent1, actionEvent2, actionEvent3, hasLibrary, hasCaster) {
  setBannerMenuItem(true);

  var menuId = "tools";

  var menuItems = new Collection()
  
  if (hasLibrary) {  
    var menuItem1 = new MenuItem();
        menuItem1.setDisplayName(displayName1);
        menuItem1.setOnClickEvent(actionEvent1);
      menuItems.add(menuItem1);
       var menuItem2 = new MenuItem();
        menuItem2.setDisplayName(displayName2);
        menuItem2.setOnClickEvent(actionEvent2);
      menuItems.add(menuItem2);
  }
 if (hasCaster) {
    var menuItem3 = new MenuItem();
        menuItem3.setDisplayName(displayName3);
        menuItem3.setOnClickEvent(actionEvent3);
        menuItems.add(menuItem3);
  }

  toolsMenuObject = new MenuObject(menuId);
  toolsMenuObject.setMenuWidth("DEFAULT");
  toolsMenuObject.setOnMouseOutEvent("javascript:hideMenu();");
  toolsMenuObject.setOnMouseOverEvent("javascript:keepFocused();");
  toolsMenuObject.setMenuItems(menuItems);
  
  addMenuObject(toolsMenuObject);

}

/********************************************************************************************************************/

function showToolsMenu(event) {

  if(!toolsMenuObject.isRendered()) {   // render it

    menuRenderer = new MenuRenderer(toolsMenuObject);
    menuRenderer.render();

  }

  showMenu(toolsMenuObject.getMenuId(), event, null, null, null, false);
}

/********************************************************************************************************************/

function setUtilitiesMenu(displayName1, displayName2, actionEvent1, actionEvent2, language) {

  setBannerMenuItem(true);

  var menuId = "utilities";

  var menuItems = new Collection()

  var menuItem1 = new MenuItem();
      menuItem1.setDisplayName(displayName1);
      menuItem1.setOnClickEvent(actionEvent1);

  var menuItem2 = new MenuItem();
      menuItem2.setDisplayName(displayName2);
      menuItem2.setOnClickEvent(actionEvent2);

  menuItems.add(menuItem1);
  menuItems.add(menuItem2);

  utilitiesMenuObject = new MenuObject(menuId);
  utilitiesMenuObject.setMenuWidth("MEDIUM");
  utilitiesMenuObject.setOnMouseOutEvent("javascript:hideMenu();");
  utilitiesMenuObject.setOnMouseOverEvent("javascript:keepFocused();");
  utilitiesMenuObject.setMenuItems(menuItems);

  addMenuObject(utilitiesMenuObject);
  
}

/********************************************************************************************************************/

function showUtilitiesMenu(event) {

  if(!utilitiesMenuObject.isRendered()) {   // render it

    menuRenderer = new MenuRenderer(utilitiesMenuObject);
    menuRenderer.render();

  }

  showMenu(utilitiesMenuObject.getMenuId(), event, null, null, null, false);

}

/********************************************************************************************************************/

function setHelpMenu(displayName1, displayName2, adminFlag, language) {
  setBannerMenuItem(true);
  var actionEvent1 = adminFlag ? "javascript:openHelpWin('worpAdminHelp');" : "javascript:openHelpWin('worpUserHelp');";
  var actionEvent2 = "javascript:openHelpWin('about');";
  var menuId = "help";
  var menuItems = new Collection()
  var menuItem1 = new MenuItem();
      menuItem1.setDisplayName(displayName1);
      menuItem1.setOnClickEvent(actionEvent1);
  var menuItem2 = new MenuItem();
      menuItem2.setDisplayName(displayName2);
      menuItem2.setOnClickEvent(actionEvent2);
  menuItems.add(menuItem1);
  menuItems.add(menuItem2);
  helpMenuObject = new MenuObject(menuId);
  helpMenuObject.setMenuWidth(banner_getLanguageToHelpMenuWidthMapping());
  helpMenuObject.setOnMouseOutEvent("javascript:hideMenu();");
  helpMenuObject.setOnMouseOverEvent("javascript:keepFocused();");
  helpMenuObject.setMenuItems(menuItems);
  addMenuObject(helpMenuObject);
}

/********************************************************************************************************************/

function setBannerHelpMenu(displayName1, displayName2, actionEvent1, actionEvent2, language) {
  setBannerMenuItem(true);
  var menuId = "help";
  var menuItems = new Collection()
  var menuItem1 = new MenuItem();
      menuItem1.setDisplayName(displayName1);
      menuItem1.setOnClickEvent(actionEvent1);
  var menuItem2 = new MenuItem();
      menuItem2.setDisplayName(displayName2);
      menuItem2.setOnClickEvent(actionEvent2);
  menuItems.add(menuItem1);
  menuItems.add(menuItem2);
  helpMenuObject = new MenuObject(menuId);
  helpMenuObject.setMenuWidth(banner_getLanguageToHelpMenuWidthMapping());
  helpMenuObject.setOnMouseOutEvent("javascript:hideMenu();");
  helpMenuObject.setOnMouseOverEvent("javascript:keepFocused();");
  helpMenuObject.setMenuItems(menuItems);
  addMenuObject(helpMenuObject);  
}

/********************************************************************************************************************/

function showHelpMenu(event) {

  if(!helpMenuObject.isRendered()) {   // render it

    menuRenderer = new MenuRenderer(helpMenuObject);
    menuRenderer.render();

  }

  showMenu(helpMenuObject.getMenuId(), event, null, null, null, false);

}

/********************************************************************************************************************/

function set_win_prop(win_id, win_prop) {

  var win_index = getArrayItemIndex(window_id_array, win_id);

  if(win_index < 0)
    return;

  win_prop = win_prop == null || win_id == "undefined" ? default_win_prop : win_prop;
  win_prop_array[win_index] = win_prop;
}

/********************************************************************************************************************/

function set_default_win_prop(default_win_prop) {

  this.default_win_prop = default_win_prop;

}

/********************************************************************************************************************/

function init_win_obj() {

  window_counter = 0;
  window_id_array = new Array();
  window_obj_array = new Array();
  window_prop_array = new Array();
  winInit = true;

}

/********************************************************************************************************************/

function load_win_obj() {

  for(var i=0; i < win_obj_hash.length; i+=2) {

    putWindow(win_obj_hash[i], null, win_obj_hash[i+1]);

  }
}

/********************************************************************************************************************/

function putWindow(win_id, win_obj, win_prop) {

  win_id = win_id == null ? "win_id_" + window_counter : win_id;
  win_prop = win_prop == null ? default_win_prop : win_prop;

  var win_index = getArrayItemIndex(window_id_array, win_id);
  var win_index_variant = win_index < 0 ? window_counter : win_index;

  window_id_array[win_index_variant] = win_id;
  window_obj_array[win_index_variant] = win_obj;
  window_prop_array[win_index_variant] = win_prop;
  updateWindowCounter(win_index < 0);

  return win_id;

}

/********************************************************************************************************************/

function getArrayItemIndex(target_array, target_value) {

  var return_index = -1;

  for(var i=0; i < target_array.length; i++) {

    if(target_array[i] == target_value) {

      return_index = i;
      break;

    }

  }

  return return_index;

}

/********************************************************************************************************************/

function updateWindowCounter(is_new_window) {

  if(is_new_window) {

    window_counter++;

  }
}

/********************************************************************************************************************/

function getWindowProp(win_id) {

  var win_index = getArrayItemIndex(window_id_array, win_id);

  return window_prop_array[win_index];

}

/********************************************************************************************************************/

function getWindowObj(win_id) {

  var win_index = getArrayItemIndex(window_id_array, win_id);

  return window_obj_array[win_index];

}

/********************************************************************************************************************/

function openHelpWin(winContent) {

  var prefix = "";
  if(winContent == "worpUserHelp"){
    prefix = getHelpMapping() + "/bidhelp.htm#user";
    openWindowById(prefix, 'help');
  }
  else if(winContent == "worpAdminHelp"){
    prefix = getHelpMapping() + "/bidhelp.htm#admin";
    openWindowById(prefix, 'help');
  }
  else if(winContent == "about"){
     prefix = getJspMapping() + "/WORP_HelpAbout.jsp";
    openWindowById(prefix, 'about');
  }
}

/********************************************************************************************************************/
function openDeferredStatusWindow(url) {
	url += "IBIMR_Random="+getNextRandom();
	openWindowById(url, 'deferred_status');
}

/********************************************************************************************************************/

function openWindow(content, content_source, win_id) {

  if(content_source == "jsp") {

    var queryHandler = new QueryHandler(getJspMapping() + "/" + content);
        queryHandler.append("IBIMR_random", getNextRandom());

    processBannerRequest(win_id, queryHandler.getQueryString());

  }

  else if(content_source == "servlet") {

    var queryHandler = new QueryHandler(null);
        queryHandler.setEventHandler(getActionHandler());
        queryHandler.appendRaw(content);
        queryHandler.append("IBIMR_random", getNextRandom());

    if(win_id == "OPTIONS") {
      content = appendScreenParams(queryHandler.getQueryString());
    }
    else {
      content = queryHandler.getQueryString();
    }

    processBannerRequest(win_id, content);

  }

  else {

    processBannerRequest(win_id, content);

  }
}

/********************************************************************************************************************/

function checkBrowser(string)
{
  var detectBrowser = navigator.userAgent.toLowerCase();
  var found = detectBrowser.indexOf(string) + 1;
  return found;
}

/********************************************************************************************************************/

function processBannerRequest(win_id, win_content) {

  var win_prop = "";

  if(win_id == "WORPADMINHELP"|| win_id == "WORPUSERHELP") {

      win_id = "WORPHELP";

    win_prop = getWindowProp(win_id);

    window.open(win_content, win_id, win_prop);

  }
  else {

    if(!checkBrowser("safari")){
      closeWindow(win_id);
  }

    win_prop = getWindowProp(win_id);

    new_window = window.open(win_content, win_id, win_prop);

    putWindow(win_id, new_window, win_prop);

  }
}

/********************************************************************************************************************/

function closeNewWindow() {

  if(new_window != null) {

    new_window.close();

  }
}

/********************************************************************************************************************/

function closeAllWindows() {

  for(var i=0; i < window_counter; i++) {

    closeWindow(window_id_array[i]);

  }

  reset_win_obj();

}

/********************************************************************************************************************/

function closeWindow(win_id) {

  var win_obj = getWindowObj(win_id);

  if(win_obj != null) {

    win_obj.close();

  }

}

/********************************************************************************************************************/


function reset_win_obj() {

  window_counter = -1;
  window_id_array = null;
  window_obj_array = null;
  window_prop_array = null;

}

/********************************************************************************************************************/

function appendScreenParams(content) {

  var SCREEN_WIDTH = 800;
  var SCREEN_HEIGHT = 600;

  try {

    SCREEN_WIDTH = screen.availWidth;
    SCREEN_HEIGHT = screen.availHeight;

  }

  catch(Exception) {
  }

  content += "SCREEN_WIDTH=" + SCREEN_WIDTH + "&";
  content += "SCREEN_HEIGHT=" + SCREEN_HEIGHT + "&";

  return content;

}

/********************************************************************************************************************/

function setAddEditBlockNewWindow() {

    init_win_obj();
    putWindow("DOMAIN_SEARCH", null, "");

}

/********************************************************************************************************************/

function insertSelectLanguage() {

  if((dropmenuid = document.getElementById("ibidropmenu")) == null || multiLanguage == 0) {

    return;

  }

  //var currentLanguage = window.opener.language;
  //var myActionHandler = window.opener.actionHandler;
  var query = window.opener.top.location.href;
  var queryHandler = new QueryHandler(query);
  var action = queryHandler.getParameter("action");
  var redirectId = queryHandler.getParameter("redirectId");
  var folder = queryHandler.getParameter("folder");
  var myMpv = queryHandler.getParameter("WORP_MPV");


  var buf  = "<FORM NAME='languageForm' METHOD='GET'        ACTION='" + actionHandler + "'>";

      buf += "<INPUT TYPE='hidden' NAME='WORP_REQUEST_TYPE' VALUE='WORP_INIT_VIEW'>";
      //buf += "<INPUT TYPE='hidden' NAME='action'            VALUE='" + action + "'>";
      //buf += "<INPUT TYPE='hidden' NAME='redirectId'        VALUE='" + redirectId + "'>";
      //buf += "<INPUT TYPE='hidden' NAME='folder'            VALUE='" + folder + "'>";
      //buf += "<INPUT TYPE='hidden' NAME='WORP_MPV'          VALUE='" + myMpv + "'>";
      buf += "<INPUT TYPE='hidden' NAME='IBIWF_language'    VALUE=''>";

      buf += "<TABLE ALIGN='center' WIDTH='100%' HEIGHT='100%' VALIGN='middle'>";
      buf += "<TR>";
      buf += "<TD>";
      buf += "<TABLE>";

  for(i=0; i < ArrayofLanguage.length; i++) {
    if(currentLanguage == ArrayofLanguage[i][0]) {
    }
    else {

      buf +="<TR>";
      buf +="<TD>";
      buf += "<A HREF=\"javascript:setLanguageCookie('" + ArrayofLanguage[i][0] + "');\">";

      var imgPath  = ibi_html + "/intl";
          imgPath += "/" + ArrayofLanguage[i][0].toUpperCase();
          imgPath += "/" + ArrayofLanguage[i][0].toUpperCase() + "language.gif";

      buf += "<IMG SRC='" + imgPath + "' BORDER=0>";
      buf += "</A>"
      buf += "</TD>";
      buf += "</TR>";
    }

  }

  buf += "</TABLE>";
  buf += "</TD>";
  buf += "</TR>";
  buf += "</TABLE>";
  buf += "</FORM>";

  dropmenuid.innerHTML = buf;

}

/********************************************************************************************************************/

function setLanguageCookie(value) {

    var newLanguage = value;

    var expdate = new Date();

    expdate.setTime (expdate.getTime() + (365 * 24 * 60 * 60 * 1000));  // 1 year

    setLangCookie("IBIWF_LANGPERM",newLanguage,expdate,"/");
    setLangCookie("IBIWF_language",newLanguage,null,"/");

    document.languageForm.target = "mainWindow";
    document.languageForm.IBIWF_language.value = value;

    document.languageForm.submit();

    window.close();
}

/********************************************************************************************************************/

function setLangCookie(name, value, expires, path, domain, secure) {

  var newCookie = name + "=" + escape(value) +
                  ( (expires) ? "; expires=" + expires.toGMTString() : "" ) +
                  ( (path)    ? "; path="    + path                  : "" ) +
                  ( (domain)  ? "; domain="  + domain                : "" ) +
                  ( (secure)  ? "; secure"                           : "" );

  document.cookie = newCookie;

}

/********************************************************************************************************************/

function setGroupView(action) {

  if(self == top) {
    opener.parent.location = action;
    self.close();
  }
  else {
    top.location = action;
  }


}

/********************************************************************************************************************/

function gotoVB(eventQuery) {
  parent.location = eventQuery;
}
/********************************************************************************************************************/

function toggleUser508(eventQuery) {
  parent.location = eventQuery;
}
/********************************************************************************************************************/

function deleteCookie(name)
{
        var exp = new Date();
        exp.setTime (exp.getTime() - 1);
        document.cookie = name + "=dummy" + "; expires=" + exp.toGMTString();
}
/********************************************************************************************************************/
function banner_gotoToolsDomainSelectionPage() {
  var url = new QueryHandler(getActionHandler() + "?");
      url.append("WORP_REQUEST_TYPE", "WORP_TOOLS_DOMAIN_SELECTION");
  openWindowById(url.getQueryString(), 'tools_domains_selection');
}
/********************************************************************************************************************/
function createGenericSynonym() {
  launchCreateSynonymTool(null, null);
}
/********************************************************************************************************************/
