function sideEffectSeverityToolTip(event, element, severity) {
   var message;
   if (severity == "Major") {
      message = "Major - May be life threatening.";
   }
   else if (severity == "Minor") {
       message = "Minor - Not life threatening.";
   }
    toolTip_enable(event,element,message);


}

function contraindicationSeverityToolTip(event, element, severity) {
   var message;
   if (severity == "Absolute Contraindications") {
      message = "<b>Absolute Contraindication - Most significant contraindication warning</b>.  <br/>Indicates that the drug should never be given to patients with <br/>one of the listed conditions because harm is likely to occur.";
   }
   else if (severity == "Relative Contraindications") {
       message = "<b>Relative Contraindication - Clinically significant contraindication warning</b>.  <br/>Indicates that the listed conditions can be managed/treated <br/>before the drug may be given safely.";
   }
   else if (severity == "Contraindication Warnings") {
      message = "<b>Contraindication Warning - Least significant contraindication warning</b>.  <br/>Indicates that adequate monitoring of patients with the <br/>listed conditions may make it safer for the drug's use.";
   }
    toolTip_enable(event,element,message);

}

function interactionSeverityToolTip(event, element, severity) {
   var message;
   if (severity == "Severe") {
      message = "Severe - These medicines are contraindicated and not usually taken together.";
   }
   else if (severity == "Serious") {
       message = "Serious - These medicines may interact and cause very harmful effects.";
   }
   else if (severity == "Moderate") {
      message = "Moderate - These medicines may cause some risk when taken together.";
   }
   else if (severity == "Unknown") {
      message = "Unknown - These medicines may cause some risk when taken together.";
   }
    toolTip_enable(event,element,message);

}



  function removeTip(event, element, name) {
    toolTip_enable(event,element,'<b> Remove ' + 
                   name + ' from survey</b>');
  }

  function  infoTip(event, element, name) {
    toolTip_enable(event,element,'<b> Click to View <br/>' +
                   name + 
                   '<br/>Drug Information Sheet</b>');
  }

  function graphInfoTip(event, element, medName, ade) {
    toolTip_enable(event,element,'<b> ' +
                   medName + ' - </br> ' +
	           ade + ' </b>');
  }

function getScrollWidth()
{

  var myWidth = 0, myHeight = 0;
  if( typeof( window.innerWidth ) == 'number' ) {
    //Non-IE
    myWidth = window.innerWidth;
    myHeight = window.innerHeight;
  } else if( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) ) {
    //IE 6+ in 'standards compliant mode'
    myWidth = document.documentElement.clientWidth;
    myHeight = document.documentElement.clientHeight;
  } else if( document.body && ( document.body.clientWidth || document.body.clientHeight ) ) {
    //IE 4 compatible
    myWidth = document.body.clientWidth;
    myHeight = document.body.clientHeight;
  }
           
   return myWidth;
} 


function XDSOC() {
    var iebody=(document.compatMode && document.compatMode != "BackCompat")? document.documentElement : document.body;

    return document.all? iebody.scrollLeft : pageXOffset;
}

function toolTip_enable(evt,obj,tip, width, color){
    evt=(evt)?evt:((window.event)?event:null);
    var target_x=evt.pageX?evt.pageX:evt.clientX+getScrollXY()[0];
    var target_y=evt.pageY?evt.pageY:evt.clientY+getScrollXY()[1];
    if(toolTip_init()){
    tt_target = obj;
    if(!tip){tip = obj.getAttribute("htmldb:tip");}
    var iframe =  '<!--[if lte IE 6.5]><iframe class="hideSelect"></iframe><![endif]-->';
    if(gToolTipContent){gToolTipContent.innerHTML=tip+iframe;}else{gToolTip.innerHTML=tip+iframe;}
    if(!!width){gToolTip.style.width=width+"px";}
    if(!!color){gToolTip.style.backgroundColor=color;}else{gToolTip.style.backgroundColor="lightyellow";}
    gToopTipPointer.style.left = ( 10 + target_x ) +"px";
    gToopTipPointer.style.top  = (15 + target_y ) +"px";
    gToolTip.style.top  = ( 28 + target_y ) +"px";
    gToolTip.style.left = ( 7 + target_x ) +"px";

    gToolTip.style.visibility="visible";
    gToolTip.style.zIndex=10000;
    gToopTipPointer.style.zIndex=10001;
    gToopTipPointer.style.visibility="visible";

    if ((gToolTip.scrollWidth + 7 + target_x) > (getScrollWidth() + XDSOC())) {
       var rightMarginOffset = document.all? 5 : 20;

       var new_left = (getScrollWidth() +XDSOC() - gToolTip.scrollWidth - rightMarginOffset);
       gToopTipPointer.style.left = (target_x) + "px";
       if (target_x + gToopTipPointer.scrollWidth > new_left + gToolTip.scrollWidth) {
         gToopTipPointer.style.left = (getScrollWidth() + XDSOC() - gToopTipPointer.scrollWidth - rightMarginOffset) + "px";  
       }
       gToolTip.style.left = new_left + "px";
    }

    try {obj.addEventListener("mouseout",toolTip_disable, false);}
        catch(e){obj.attachEvent('onmouseout',toolTip_disable);}
   }

    return false;
}
 

function stopDingOnEnter(fieldName) {
   if (document.all) {
       document.getElementById(fieldName).onkeypress = function () {return stopRKey(event);};
   } else {
       document.getElementById(fieldName).onkeypress = function (e) {return stopRKey(e);};
   }
}

function nothing() { return; };

function runAbbySurvey(isAbbySurvey) {
   if (isAbbySurvey == 'TRUE') {
     var get = new htmldb_Get(
       null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=generateNewAbbySurvey',0
     );
     gReturn = get.GetAsync(nothing);
   }

}
function checkIfSurveyIsDone(buttonName) {
   var get = new htmldb_Get(
     null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=checkIfSurveyIsDone',0
   );

   gReturn = get.get();
   if (gReturn != "0") {
      var x=document.getElementById(buttonName);
      x.disabled = false;
   }
   else {
      setTimeout("checkIfSurveyIsDone('" + buttonName + "')", 1000);
   }
}

 var v_oldValues = new Array();
 var v_selectListContainers = new Array();

 var v_appItemTable   = new Array();
 var v_appItemColumn  = new Array();
 var v_matchcolor     = new Array();
 var v_nomatchcolor   = new Array();

 var v_enterFunctions = new Array();
 var c_SelectListSize = 8;
 
function register(p_TextFieldName, p_TableName, p_ColumnName, p_matchColor, p_noMatchColor, p_enterFunction) {
   v_oldValues[p_TextFieldName] = html_GetElement(p_TextFieldName).value;

   v_selectListContainers[p_TextFieldName] = document.createElement("div");
   v_selectListContainers[p_TextFieldName].setAttribute("id", "_"+p_TextFieldName+"_CONTAINER");
   v_selectListContainers[p_TextFieldName].style.zIndex = 1000;

   v_selectListContainers[p_TextFieldName].style.position = "relative";
   v_selectListContainers[p_TextFieldName].style.left = "0px";
   v_selectListContainers[p_TextFieldName].style.top = "0px";

   html_GetElement(p_TextFieldName).parentNode.appendChild(v_selectListContainers[p_TextFieldName]);
// move the text field into the new div
   v_selectListContainers[p_TextFieldName].appendChild(html_GetElement(p_TextFieldName));	

   if (document.all) {
     html_GetElement(p_TextFieldName).onkeyup = function () {return showSelectList(event);};
     html_GetElement(p_TextFieldName).onkeypress = function () {return stopRKey(event);};

   } else {
     html_GetElement(p_TextFieldName).onkeyup = function (e) {return showSelectList(e);};
     html_GetElement(p_TextFieldName).onkeypress = function (e) {return stopRKey(e);};
  }
   
   v_appItemTable[p_TextFieldName] = p_TableName;
   v_appItemColumn[p_TextFieldName] = p_ColumnName;
   v_matchcolor[p_TextFieldName] = p_matchColor;
   v_nomatchcolor[p_TextFieldName] = p_noMatchColor;
   v_enterFunctions[p_TextFieldName] = p_enterFunction;
 }

function stopRKey(evt) {
  var evt = (evt) ? evt : ((event) ? event : null);
  var node = (evt.target) ? evt.target : ((evt.srcElement) ? evt.srcElement : null);
  if ((evt.keyCode == 13) && (node.type=="text"))  {return false;}
} 

 function showSelectList(e) {
   var keynum;
   var p_TextFieldName;
   if(document.all)  {
     keynum = e.keyCode;
     p_TextFieldName = e.srcElement.getAttribute("id");
   } else {
     keynum = e.which;
     p_TextFieldName = e.target.getAttribute("id");
   }

   if (v_oldValues[p_TextFieldName] != html_GetElement(p_TextFieldName).value) {
     v_oldValues[p_TextFieldName] = html_GetElement(p_TextFieldName).value;
     if (html_GetElement(p_TextFieldName).value != "") {
       do_showSelectList(p_TextFieldName);
     } else {
       removeSelectList(p_TextFieldName);
     }
   } else {
     if (keynum == 40 || keynum == 38 || keynum == 9) {
       if (!e.shiftKey) {
         if (html_GetElement("_"+p_TextFieldName+"SELECTLIST")) {
           html_GetElement("_"+p_TextFieldName+"SELECTLIST").focus();
         }
       }
     } 
     if (keynum == 13) {
       do_pushBackValue(p_TextFieldName);
     }
   }
   return false;
 }


 function do_showSelectList(p_TextFieldName) { 
   var l_Return = null;
   var l_SelectList = html_GetElement("_"+p_TextFieldName+"SELECTLIST");
   if (!l_SelectList) {
     l_SelectList = createSelectList(p_TextFieldName);
   } else {
     l_SelectList.disabled = false;
     l_SelectList.style.visibility="visible";
   }

   var isFirefox3 = navigator.userAgent.indexOf('Firefox/3.0') != -1; 
   do {
     var valueUsed = html_GetElement(p_TextFieldName).value; 
     var get = new htmldb_Get(
       null,html_GetElement('pFlowId').value,'APPLICATION_PROCESS=getSearchList',0
     );
     get.add('TF_SL_SEARCH', valueUsed);
     get.add('TF_SL_TABLE', v_appItemTable[p_TextFieldName]);
     get.add('TF_SL_COLUMN', v_appItemColumn[p_TextFieldName]);
     gReturn = get.get('XML');
   } while (isFirefox3 && valueUsed != html_GetElement(p_TextFieldName).value)

   if(gReturn && l_SelectList){
     var l_Count = gReturn.getElementsByTagName("row").length;
     l_SelectList.length = 0;
     if (l_Count > 0) {
       if (l_Count < c_SelectListSize) {
         l_SelectList.size = l_Count;
       } else {
         l_SelectList.size = c_SelectListSize;
       }
       for(var i=0;i<l_Count;i++){
         var l_ReturnedItem = gReturn.getElementsByTagName("row")[i];
          appendToSelect(l_SelectList, l_ReturnedItem.firstChild.nodeValue, l_ReturnedItem.firstChild.nodeValue);
       }
       setFieldColor(p_TextFieldName, v_matchcolor[p_TextFieldName]);
       l_SelectList.options[0].selected=true;

     } else if (l_Count == 0) {
       removeSelectList(p_TextFieldName);
       setFieldColor(p_TextFieldName, v_nomatchcolor[p_TextFieldName]);
     } 
   }
 }

 function setFieldColor(pField, pColor) {
   html_GetElement(pField).style.color = pColor;
 }

 function createSelectList(p_TextFieldName) {
   var v_SelectList = document.createElement("select");
   v_SelectList.setAttribute("id", "_" + p_TextFieldName + "SELECTLIST");
   v_SelectList.style.position = "absolute";
   v_SelectList.style.display = "block";
   v_SelectList.style.width = "100%";
   v_SelectList.style.left = "0px";
   v_SelectList.style.top = "20px";
   v_SelectList.size = c_SelectListSize;
   if (document.all) {
     v_SelectList.onclick = function () {return pushBackValue(event);};
     v_SelectList.onkeyup = function () {return pushBackValueReturn(event);};
     v_SelectList.onkeypress = function () {return pushBackValueReturn(event);};
   } else {
     v_SelectList.onclick = function (e) {return pushBackValueReturn(e);};
     v_SelectList.onkeyup = function (e) {return pushBackValueReturn(e);};
     v_SelectList.onkeypress = function (e) {return pushBackValueReturn(e);};
  }

   v_selectListContainers[p_TextFieldName].appendChild(v_SelectList);

   return v_SelectList;
 }


 function removeSelectList(p_TextFieldName) {
   var v_SelectList = html_GetElement("_" + p_TextFieldName + "SELECTLIST");
   v_SelectList.style.visibility="hidden";
   html_GetElement(p_TextFieldName).focus();
   v_SelectList.disabled = true;

 }
  
 function do_pushBackValue(p_TextFieldName) {

   var v_SelectList = html_GetElement("_" + p_TextFieldName + "SELECTLIST");
   if (v_SelectList && v_SelectList.style.visibility!="hidden") {
       html_GetElement(p_TextFieldName).value = html_GetElement("_" + p_TextFieldName + "SELECTLIST").value;

       v_oldValues[p_TextFieldName] = html_GetElement(p_TextFieldName).value;

       setFieldColor(p_TextFieldName, v_matchcolor[p_TextFieldName]);
       removeSelectList(p_TextFieldName);
       html_GetElement(p_TextFieldName).focus();
   }
   else {
       var enterFunction = v_enterFunctions[p_TextFieldName];
       if (enterFunction) {
          enterFunction();
       }
   }
 }

 function pushBackValue(e) {
   var p_TextFieldName;
   if(document.all)  {
     p_TextFieldName = e.srcElement.getAttribute("id");
   } else {
     p_TextFieldName = e.target.parentNode.getAttribute("id");
   }
   if (p_TextFieldName) {
     if (p_TextFieldName.lastIndexOf("_CONTAINER") == p_TextFieldName.length - "_CONTAINER".length) {
         do_pushBackValue(p_TextFieldName.substring(1, p_TextFieldName.indexOf("_CONTAINER")));
     }
     else {
         do_pushBackValue(p_TextFieldName.substring(1, p_TextFieldName.indexOf("SELECTLIST")));
     }
   }
 }

 function pushBackValueReturn(e) {
   var keynum;
   var p_TextFieldName;
   if(document.all)  {
     keynum = e.keyCode;
     p_TextFieldName = e.srcElement.getAttribute("id");
   } else {
     keynum = e.which;
     p_TextFieldName = e.target.getAttribute("id");
     if (p_TextFieldName == null) {
         p_TextFieldName = e.target.parentNode.getAttribute("id");
     }
   }

   if (keynum == 13 || keynum == 1 ) {
     do_pushBackValue(p_TextFieldName.substring(1, p_TextFieldName.indexOf("SELECTLIST")));
   }
 }


 function appendToSelect(pSelect, pValue, pContent) {
   var l_Item = document.createElement("option");
   l_Item.value = pValue;
   if(document.all){
     pSelect.options.add(l_Item);
     l_Item.innerText = pContent;
   } else {
     l_Item.appendChild(document.createTextNode(pContent));
     pSelect.appendChild(l_Item);
   }
 }
 
// Simple function that sets an apex application item with a new value 
// on the server
function setItem(pItem,pValue,appId,sessionId){
		var get = new htmldb_Get(null,appId,'APPLICATION_PROCESS=returnNothing',0,sessionId);
		get.add(pItem,pValue);
		gReturn = get.get();
}

// Simple function that gets an apex application item's value from the server
function getItem(pItem,appId,sessionId){
		var get = new htmldb_Get(null,appId,'APPLICATION_PROCESS=returnItem',0,sessionId);
		get.add('RETURNITEM',pItem);
		gReturn = get.get();
		return gReturn;
}

// Checks to see if the app item AI_PAGE_REQUESTED is currently set
// to "NO". If it is NO then the user has most likely hit the back 
// button and the page needs to be refreshed to insure it is in a 
// proper state. If the value is not NO then set it to "NO" to 
// insure that what ever page is visit next can be properly tested            
function needRefresh(appId, sessionId) {
  var requested = getItem('AI_PAGE_REQUESTED', appId, sessionId);
  if (requested == "NO") {
      window.location = window.location;
  }
  else {
      setItem('AI_PAGE_REQUESTED', "NO",appId, sessionId);
  }
}



function probToGraphic(prob) {
   var imageName = "RiskGraph-";

   if (prob == 0) {
      imageName += "0";
   }
   else if (prob <= 1) {
	imageName += "1";
   }
   else if (prob <= 5) {
	imageName += "2";   
   }
   else if (prob <= 10) {
	imageName += "3";   
   }
   else if (prob <= 23) {
	imageName += "4";   
   }
   else if (prob <= 50) {
	imageName += "5";   
   }
   else if (prob <= 100) {
	imageName += "6";   
   }
 
   imageName += ".gif";
   
   return imageName;
}


function convertProbabilitiesToGraphs (imageDirectory) {
 var x=document.getElementById("innerSurveyTable");
 var tableBody = x.tBodies[0];
 for (var i = 1; i < tableBody.rows.length; i++) {
    var row = tableBody.rows[i];
    var firstColumnToConvert;
    for (var j = 0; j < row.cells.length; j++) {
      firstColumnToConvert = j;
      var element = row.cells[j].firstChild;
      if (element.className == 'riskValue') {
         break;
      }
    }
    convertProbabilityToGraph(row.cells[firstColumnToConvert], 'riskCurrent', imageDirectory);
    for (var j = firstColumnToConvert+1; j < row.cells.length; j++) {
      convertProbabilityToGraph(row.cells[j], 'riskDrugCurrent', imageDirectory);
    }
 }
}

function convertProbabilityToGraph(cell, className, imageDirectory) {
   var prob = cell.firstChild.innerHTML;
   var imageName = probToGraphic(prob);
   var result = '<div class="' + className + '">';
   result += '<img src="' + imageDirectory + imageName + '">';
   result += '</div> ';
   cell.innerHTML = result;
}

function convertToInteractions() {
 var x=document.getElementById("innerSurveyTable");
 var tableBody = x.tBodies[0];
 for (var i = 1; i < tableBody.rows.length; i++) {
    var row = tableBody.rows[i];
    var firstColumnToConvert;
    for (var j = 0; j < row.cells.length; j++) {
      firstColumnToConvert = j;
      var element = row.cells[j].firstChild;
      if (element.className == 'riskValue') {
         break;
      }
    }
    convertInteraction(row.cells[firstColumnToConvert], 'riskCurrent');
    for (var j = firstColumnToConvert+1; j < row.cells.length; j++) {
      convertInteraction(row.cells[j], 'riskDrugCurrent');
    }
 }
}

function convertInteraction(cell, className) {
   var value = cell.firstChild.innerHTML;
   var result = '<div class="' + className + '">';
   if (value == 1) {
     result += '<div class="interactionIcon"> &nbsp </div>';
   }
   else {
     result += "&nbsp;"
   }
   result += '</div>';
   cell.innerHTML = result;
}


function moveSearchBox() {
    var riskTab=document.getElementById("risk_tab");    
    var newPlace=document.getElementById("shSurveySubtitlePart1");
    newPlace.innerHTML = riskTab.innerHTML;
    newPlace=document.getElementById("shSurveySubtitlePart2"); 
    var searchField=document.getElementById("search_field");    
    newPlace.innerHTML = searchField.innerHTML;
    // remove the old searchField so that two fields with the same
    // name are not submitted
    searchField.innerHTML = '';
}

function showSearchBox() {
    var riskTab=document.getElementById("risk_tab");    
    var searchField=document.getElementById("search_field");    
    riskTab.style.display = "inline";
    searchField.style.display = "inline";

}

function addSortArrowsToTable(divId, imageDirectory) {
   var div = document.getElementById(divId);
   if (div) {
      var outterTable = div.firstChild;
      var innerTable = outterTable.tBodies[0].rows[1].cells[0].firstChild;
      var headerRow = innerTable.tBodies[0].rows[0];
      var image = "sort_arrow_up_empty.gif";

      for (var i = 0; i < headerRow.cells.length; i++) {
          var header = headerRow.cells[i];
          var html = header.innerHTML;
          if (html.indexOf("Sort by") != -1) {
             var anchor = header.firstChild;
             if (html.indexOf("up.gif") == -1 && html.indexOf("down.gif") == -1) {
                anchor.innerHTML += " <img src='" + imageDirectory +
                                    "themes/theme_106/" + image +
                                    "' alt='sort' title=''/>";
             }
             else {
                // this moves the img tag into the anchor tag, so that ths 
                // sort arrow is clickable.
                var img = header.childNodes[1];
                anchor.appendChild(img);
             }
          }
      }
   }
}



var curElement = null;
var curDeleteId;
var curDeleteName;

function showMenu(event, element, deleteName, deleteId, leftOffset, titleDivName, popupDivName) {
    if (curElement != null) {
       timer = true;
       closePopup(curElement, popupDivName);
    }
    
    curDeleteId = deleteId;
    curDeleteName = deleteName;
    var parentNode = element.parentNode;
    var h = (element.clientHeight)?element.clientHeight:(element.scrollHeight + 2);

    var dTitle = document.getElementById(titleDivName);
    dTitle.innerHTML = curDeleteName;
    var div = document.getElementById(popupDivName);
    
    var windowWidth = getScrollWidth();
    var popupWidth = 200;
    var left = (getLeft(element) + leftOffset);
    if (windowWidth < left + popupWidth) {
       var rightMarginOffset = document.all? 37 : 22;
       left = left - popupWidth + rightMarginOffset;
    }
    div.style.left = left + 'px';
    div.style.top = (getTop(element) + h) + 'px';
    div.style.display = "inline";
  }

var timer = false;
function stopTimer() {
  timer = false;
}

function closeCurrent(popupDivName) {
  timer = true;
  closePopup(curElement, popupDivName);
}

function closePopup(element, popupDivName) {
   if (element != null && timer) {
      curElement = null;
      document.getElementById(popupDivName).style.display = "none";
  }
}

function closePopupCountDown(element, popupDivName) {
   curElement = element;
   var func_def = "closePopup(curElement, '" + popupDivName + "')";
   timer = true;
   setTimeout(func_def, 500);
}

function getLeft(element) {
    if (element.offsetParent) {
       return element.offsetLeft + getLeft(element.offsetParent);
    }
    else {
       return 0;
    }
}

function getTop(element) {
    if (element.offsetParent) {
       return element.offsetTop + getTop(element.offsetParent);
    }
    else {
       return 0;
    }
}

function containsDOM (container, containee) {
  var isParent = false;
  do {
    if ((isParent = container == containee))
      break;
    containee = containee.parentNode;
  }
  while (containee != null);
  return isParent;
}

function checkMouseEnter (element, evt) {
  if (element.contains && evt.fromElement) {
    return !element.contains(evt.fromElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

function checkMouseLeave (element, evt) {
  if (element.contains && evt.toElement) {
    return !element.contains(evt.toElement);
  }
  else if (evt.relatedTarget) {
    return !containsDOM(element, evt.relatedTarget);
  }
}

function setCustomSort(imageDirectory, curSort, curOrder) {
 // add empty sort arrows to each header that is not sorted
 var table = document.getElementById('innerSurveyTable');
 if (table) {
   var tableBody = table.tBodies[0];
   firstRow = tableBody.rows[0];
   for (var i = 0; i < firstRow.cells.length; i++) {
      var cell = firstRow.cells[i];
      var link = cell.getAttribute("id") + "";
      link.replace(/COL0?([0-9]*)/);
      var colNum = RegExp.$1;
      if (colNum != 6) {
         var headerTitle = cell.innerHTML;
         var image = (colNum == 4)?"sort_arrow_up_empty.gif":"sort_arrow_down_empty.gif";
         if (curSort == colNum) {
            image = (curOrder == "asc")?"blue_arrow_up.gif":"blue_arrow_down.gif";
         }
         cell.innerHTML = '<a href="javascript:sort(' + colNum + ')"' + 
                          "onmouseover=\"toolTip_enable(event, this,'Click to Sort');\"/" + 
                          '>' +
                          headerTitle + " <img src='" + imageDirectory +
                          "themes/theme_106/" + image +
                          "' alt='sort' title='' /></a>";
      }
   }
 }
}

function prepare600Table(imageDirectory, tab, curSort, curOrder) {
  var table = document.getElementById('innerSurveyTable');
  var oldLocation = document.getElementById('search_and_view');
  var newLocation;

  if (table) {
     checkForAndRunTemplates(table);
     if (tab != "Interactions") {
        newLocation = table.tHead.rows[0].cells[0];
        newLocation.innerHTML = oldLocation.innerHTML;
        addSearchLabels600(newLocation);

        oldLocation.innerHTML = "";
     }
     else {
        setInteractionNames600(imageDirectory + "themes/theme_106/");
     }
     setCustomSort(imageDirectory, curSort, curOrder);
     moveTopPaginationToBottomLeft600();
     setSurveyTableBGColors();
  }
  else if (tab != "Interactions") {
     newLocation = document.getElementById('new_search_home');
     if (newLocation) {
        newLocation.innerHTML = oldLocation.innerHTML;
        addSearchLabels600(newLocation);
        oldLocation.innerHTML = "";
     }
     else {
        addSearchLabels600(oldLocation);
        oldLocation.style.display = "inline";
     }
  }
  changeViewSelectOnChange600();
  setColSpan();
}

function addSearchLabels600(fields) {
        var viewField = fields.firstChild.tBodies[0].rows[0].cells[1];
        viewField.innerHTML = "<span class='t106OptionalLabel'>View:&nbsp;</span>" + viewField.innerHTML;

        var searchField = fields.firstChild.tBodies[0].rows[1].cells[1];
        searchField.innerHTML = "<span class='t106OptionalLabel'>Search side effects for my symptoms:</span><br/>" + searchField.innerHTML;

}

function setColSpan() {
  var surveyOptimalsTitle = document.getElementById('SurveyOptimalsTitle');
  if (surveyOptimalsTitle) {
     var table = document.getElementById('innerSurveyTable');
     var row = table.tBodies[0].rows[0];
     var colspan = 0;
     for (i = 0; i < row.cells.length; i++) {
         var cell = row.cells[i].innerHTML;
         if (cell.indexOf("Risk") != -1) {
            colspan = row.cells.length - i - 1 ;
            surveyOptimalsTitle.setAttribute("colSpan", colspan);
            break;
         }         
    }
    var shDrugsRegimensTitle = document.getElementById('shDrugsRegimensTitle2');
    if (shDrugsRegimensTitle) {
        shDrugsRegimensTitle.setAttribute("colSpan", colspan -1);
    }
  }
}

function checkPagination(minToDisplay) {
    var table = document.getElementById('innerSurveyTable');
    if (table) {
      var paginationTable = table.parentNode.parentNode.parentNode;
      var paginationText = paginationTable.lastChild.innerHTML;
      paginationText.replace(/[0-9]* - ([0-9]*)/);
      var totalCount = RegExp.$1;

      if (paginationText.indexOf("Next") == -1 && 
          paginationText.indexOf("Previous") == -1 && 
          totalCount <= minToDisplay) {

         paginationTable.lastChild.style.display = "none";
      }
    }
}

function moveTopPaginationToBottomLeft600() {
    var table = document.getElementById('innerSurveyTable').tBodies[0];
    var topPag = document.getElementById('topPagination');
    var numRows = table.rows.length;
    var pagRow = table.rows[numRows - 1];
    var pagCell = pagRow.cells[0];
    var colspan = pagCell.getAttribute("colSpan");
    pagCell.setAttribute("colSpan", colspan - 2);
    pagCell.setAttribute("colspan", colspan - 2);

    pagCell.setAttribute('align', 'center');
    var bottomRight = pagCell.innerHTML;
    pagCell.innerHTML="<table width='100%'><tr><td align='left'>" + 
                      topPag.innerHTML + 
                      "</td><td align='right'>" + 
                      bottomRight + 
                      "</td></tr></table>";
    topPag.innerHTML = '';
    var test = '';
}

function setSurveyTableBGColors () {
 var table=document.getElementById("innerSurveyTable");
 var tableBody = table.tBodies[0];
 for (var i = 1; i < tableBody.rows.length; i++) {
    var row = tableBody.rows[i];

  
    for (var j = 0; j < row.cells.length; j++) {
	var cell = row.cells[j];
        if (cell.style && cell.firstChild.style) {
          var styles;
          if (cell.firstChild.currentStyle) {
              styles = cell.firstChild.currentStyle;
          }
          else {
              styles = window.getComputedStyle(cell.firstChild, null);
          }
          if (styles.backgroundColor != "transparent") {
             cell.style.backgroundColor = styles.backgroundColor;
          }
        }
    }
 }
}

function printPage(appId, pageNum, sessionId) {
     var address = "f?p=" + appId + ":" + pageNum + ":" +
	sessionId + "::::AI_PRINTER_FRIENDLY:YES";
     var myWindow = 
     window.open (address,
"print","location=0,status=1,scrollbars=1,menubar=1,toolbar=0");
     myWindow.focus();
}

function openNews(address) { 
     var myWindow = 
     window.open (address,
"news","location=1,status=1,scrollbars=1,menubar=1,toolbar=1,height=600, width=800");
     myWindow.focus();

}

function openPartner(address) { 
     var myWindow = 
     window.open (address,
"partner","location=1,status=1,scrollbars=1,menubar=1,toolbar=1,height=700, width=1050");
     myWindow.focus();

}

function getMedicationsFromHTML(medRow, firstMedIndex) {
    var medNames = [];
    for (var i = firstMedIndex; i < medRow.cells.length; i++) {
       var html = medRow.cells[i].innerHTML;
       html = html.substring(html.indexOf("event,this,'"));
       html = html.substring(html.indexOf("'")+1);
       html = html.substring(0, html.indexOf("'"));
       medNames[i+1] = html;
    }
    return medNames;
}

function getMedicationsFromHTML600(medRow, firstMedIndex) {
    var medNames = [];
    for (var i = firstMedIndex; i < medRow.cells.length; i++) {
       var html = medRow.cells[i].innerHTML;
       html = html.substring(html.indexOf("event,this,'"));
       html = html.substring(html.indexOf("'")+1);
       html = html.substring(0, html.indexOf(" <br"));
       medNames[i] = html;
    }
    return medNames;
}


function addGraphMouseovers() {
 var x=document.getElementById("innerSurveyTable");
 var medicationRow = x.tHead.rows[1];
 var medNames = getMedicationsFromHTML(medicationRow, 2);


 var tableBody = x.tBodies[0];
 for (var i = 1; i < tableBody.rows.length; i++) {
    var row = tableBody.rows[i];
    var firstColumnToConvert;
    var ade;
    for (var j = 0; j < row.cells.length; j++) {
      firstColumnToConvert = j;
      var element = row.cells[j].lastChild;
      var value = element.innerHTML;
      if (value.indexOf('RiskGraph-') != -1) {
         break;
      }
      else if (element.className == 'adeFeature') {
         ade = element.innerHTML;
      }
    }
    for (var j = firstColumnToConvert+1; j < row.cells.length; j++) {
      addGraphMouseover(row.cells[j], medNames[j],ade);
    }
 }
}

var matchMouseover = /onmouseover=""/g;
function addGraphMouseover(cell, medName, ade) {
   var node = cell.lastChild.innerHTML;

   if (medName) {
       ade = stripHTML(ade);
       var newMouseover = 'onmouseover="graphInfoTip(event,this,\''+
                          medName +  '\',\'' + ade + '\')"';
       node = node.replace(matchMouseover, newMouseover);
       cell.lastChild.innerHTML = node;
   }
}

function stripHTML(text) {
       var matchTag = /<(?:.|\s)*?>/g;
       text = text.replace(matchTag, "");
       matchTag = /'/g;
       return text.replace(matchTag, "\\'");
}

function setInteractionNames600(imageDirectory) {
 var x=document.getElementById("innerSurveyTable");
 var tableBody = x.tBodies[0];
 var medicationRow = x.tHead.rows[3];
 var medNames = getMedicationsFromHTML600(medicationRow, 0);
 
 for (var i = 1; i < tableBody.rows.length-1; i++) {
    var row = tableBody.rows[i];

    var firstColumnToConvert;
    for (var j = 0; j < row.cells.length; j++) {
      firstColumnToConvert = j;
      var value = row.cells[j].firstChild.innerHTML;
      if (value.indexOf('interact.gif') != -1) {
         break;
      }
    }
    var medCombo = null;
    for (var j = firstColumnToConvert+1; j < row.cells.length; j++) {
      var value = row.cells[j].firstChild.innerHTML;
      var inInteraction = (value != undefined && value.indexOf('interact.gif') != -1);

      if (inInteraction) {
        if (medCombo == null) {
          medCombo = medNames[j-firstColumnToConvert-1];
        }
        else {
          medCombo += " - " + medNames[j-firstColumnToConvert-1];
        }
      }
    }
    var interaction = row.cells[1];
    var interactionText = interaction.firstChild.firstChild;
    var myHREF = interactionText.getAttribute("href");
    myHREF = myHREF.replace(/\)/, ", '" + medCombo + "')");
    interactionText.setAttribute("href", myHREF); 
    interactionText.innerHTML = "<b style='font-size:8pt'>" + medCombo + " Interaction:</b> " + interactionText.innerHTML;
    interactionText.innerHTML = "<img src='" + imageDirectory + "mono.gif' height='13' width='13' style='float:right; vertical-align: middle;'/>" + interactionText.innerHTML; 
 }
}

function setInteractionNames(imageDirectory) {
 var x=document.getElementById("innerSurveyTable");
 var tableBody = x.tBodies[0];
 var medicationRow = x.tHead.rows[1];
 var medNames = getMedicationsFromHTML(medicationRow, 2);
 for (var i = 1; i < tableBody.rows.length; i++) {
    var row = tableBody.rows[i];
    var firstColumnToConvert;
    for (var j = 0; j < row.cells.length; j++) {
      firstColumnToConvert = j;
      var value = row.cells[j].innerHTML;
      if (value.indexOf('interact.gif') != -1) {
         break;
      }
    }
    var medCombo = null;
    for (var j = firstColumnToConvert+1; j < row.cells.length; j++) {
      var value = row.cells[j].innerHTML;
      var inInteraction = (value != undefined && value.indexOf('interact.gif') != -1);
      if (inInteraction) {
        if (medCombo == null) {
          medCombo = medNames[j];
        }
        else {
          medCombo += " - " + medNames[j];
        }
      }
    }
    var interaction = row.cells[1];
    var interactionText = interaction.lastChild.firstChild;
    var myHREF = interactionText.getAttribute("href");
    myHREF = myHREF.replace(/\)/, ", '" + medCombo + "')");

    interactionText.setAttribute("href", myHREF);
    interactionText.innerHTML = "<b style='font-size:8pt'>" + medCombo + " Interaction:</b> " + interactionText.innerHTML;
    interactionText.innerHTML = "<img src='" + imageDirectory + "mono.gif' height='15' width='15' style='float:right; vertical-align: middle;'/>" + interactionText.innerHTML;
 }
}

function convertInteraction(cell, className) {
   var value = cell.firstChild.innerHTML;
   var inInteraction = (value.indexOf('interact.gif') != -1);
   cell.innerHTML = cell.firstChild.innerHTML;
   return inInteraction;
}


function moveSearchFields() {
        var  newPlace = document.getElementById("new_search_field");;
        var searchField=document.getElementById("search_field");
        var viewSelect=document.getElementById("view_select");
        newPlace.innerHTML = "<span class='shLabel'>Search side effects for my symptoms:</span><br/>"  + searchField.innerHTML;
        newPlace = document.getElementById("new_view_select");
        newPlace.innerHTML = "<table><tr><td><span class='shLabel'>View:</span></td><td>" + viewSelect.innerHTML + "</td></tr></table>";

        // remove the old searchField so that two fields with the same
        // name are not submitted
        searchField.innerHTML = '';
        viewSelect.innerHTML = '';


        changeViewSelectOnChange();

}

function changeViewSelectOnChange() {
        var viewSelect = document.getElementById('P4002_SURVEY_VIEW');
        var locationText = viewSelect.getAttribute('onchange') + '';
        locationText  = getRequestParamater(locationText);

        viewSelect.onchange = function(){disableThenSubmit(locationText);}

}

function changeViewSelectOnChange600() {
        var viewSelect = document.getElementById('P3003_VIEW_SELECT');
        var locationText = viewSelect.getAttribute('onchange') + '';
        locationText  = getRequestParamater(locationText);
        viewSelect.onchange = function(){disableThenSubmit(locationText);}
}

function enablePage() {
   if (document.getElementById('wholePage')) {
      document.getElementById('wholePage').style.display = "none";
      document.getElementById('processingPage').style.display = "none";
   }
}
 
function disablePage() {
       document.getElementById('wholePage').style.display = "inline";
       document.getElementById('processingPage').style.display = "inline";
}

function disablePageForPrinting() {
   var myDiv = document.getElementById('wholePage');
   if (myDiv != null) {
       myDiv.style.display = "inline";
       myDiv.style.cursor = 'default';
       myDiv.style.opacity = 0;
       myDiv.style.filter = 'alpha(opacity=0)';
   }
}

function disableThenRedirect(address) {
   disablePage();
   location.href = address;
}

function disableThenSubmit(request) {
   disablePage();
   doSubmit(request);
}

function getRequestParamater(locationText) {
  var start = locationText .indexOf("'");
  var end = locationText .lastIndexOf("'");
  return locationText .substring(start+1, end);
}

function moveFirstDataRowToHeader() {
        var dataTable = document.getElementById("zpGrid0DataTableTable");
        var headerTable = document.getElementById("zpGrid0Head").parentNode.parentNode;
        headerTable.tBodies[0].appendChild(dataTable.rows[0]);

        var fixedLeftFirstRow = document.getElementById("zpGrid0Row0Fixed");
        var fixedLeftTableBody = fixedLeftFirstRow.parentNode;
        var fixedLeftHeaderBody = document.getElementById("zpGrid0HeadFixed").parentNode;
        fixedLeftHeaderBody.appendChild(fixedLeftFirstRow);
}

function showSearchBox() {
    var errorMessage = document.getElementById("errorMessage");
    var searchField=document.getElementById("search_field");    
    var viewSelect = document.getElementById("view_select");
    var table = 
     '<table cellpadding="0" cellspacing="0">' +
      '<tr>' +
         '<td class="shLabel">View:&nbsp;</td>' +
         '<td class="shEntryField" id="new_view_select">' +
           viewSelect.innerHTML +
         '</td>' +
      '</tr>' +
      '<tr>' +
         '<td class="shLabel">Search side effects for my symptoms:&nbsp;</td>' +
         '<td class="shEntryField" id="new_view_select">' + 
            searchField.innerHTML + 
         '</td>' +
     '</tr>' +
    '</table>';
	    errorMessage.innerHTML = table + 
                                     errorMessage.innerHTML;
    errorMessage.style.marginTop = "1px";
    viewSelect.innerHTML = '';
    searchField.innerHTML = '';

    changeViewSelectOnChange();
}

function hideLabels() {
 var sourceTable=document.getElementById("innerSurveyTable");
 var tableHead = sourceTable.tHead;
 tableHead.rows[0].cells[0].innerHTML = '&nbsp;';
 tableHead.rows[1].cells[0].innerHTML = '&nbsp;';
}


function checkForAndRunTemplates(table) {
  var tHead = table.tHead;
  var numRows = tHead.rows.length;
  var i;
  for (i = 0; i < numRows; i++) {
    var row = tHead.rows[i];
    var numCells = row.cells.length;
    var j;
    for (j = 0; j < numCells; j++) {
       checkForAndRunTemplate(row.cells[j]);
    }
  }
}


function checkForAndRunTemplate(cell) {
  var checkHere = cell.firstChild;
  if (checkHere && checkHere.nodeName.toUpperCase() == "DIV") {
     var className = checkHere.getAttribute("class");
     if (className == null) {
         className = checkHere.className;
     }

     if (className == "template") {
        var values = checkHere.innerHTML;
        var indexOfFirstSeparator = values.indexOf(":::");
        var templateName = values.substring(0, indexOfFirstSeparator);
        values = values.substring(indexOfFirstSeparator + 3, values.length);
        var valueArray = values.split(":::");
        var names = getNamesForTemplate(templateName);
        var template = getTemplateByName(templateName);
        cell.innerHTML = runTemplate(template, names, valueArray);
     }
  }
}

function runTemplate(template, names, values) {
   var length = names.length;
   var i = 0;
   for (i = 0; i < length; i++) {
      var value = values[i];
      var name = names[i];
      
      var r = new RegExp(name, 'g');
      template = template.replace(r, value); 
   }
   template = template.replace(/&APP_ID./, getAppId());
   template = template.replace(/&APP_SESSION./, getSessionId());
   return template;
}

function templatizeDrugHeader(cell, drugTemplate) {
  var value = cell.firstChild.innerHTML;
  var values = value.split(":::");
  var names = new Array(3);
  names[0] = "\\*ESCAPED_DRUG_NAME\\*";
  names[1] = "\\*DRUG_GPI_ID\\*";
  names[2] = "\\*DRUG_NAME\\*";
 
  cell.innerHTML = runTemplate(drugTemplate, names, values);
}

function prepareSourceTable(numMeds, imageDirectory, drugTemplate) {
 var sourceTable=document.getElementById("innerSurveyTable");
 var tableHead = sourceTable.tHead;

 var firstRow = tableHead.rows[1];
 var magicWidth = 135;
 var firstDataRow = sourceTable.tBodies[0].rows[1];
 var firstDrugCell = 2;

 firstRow.cells[firstDrugCell].setAttribute("span", numMeds);
 var minDrugWidth = 70;
 if (numMeds == 1 && magicWidth > firstRow.cells[firstDrugCell].scrollWidth) {
     firstRow.cells[firstDrugCell].setAttribute("width", magicWidth);
     firstRow.cells[firstDrugCell].style.width = magicWidth + "px";
     templatizeDrugHeader(firstRow.cells[firstDrugCell], drugTemplate);
 } else {
   for (var i = firstDrugCell; i < firstRow.cells.length; i++) {
       var newWidth = minDrugWidth;
       var cell = firstRow.cells[i];
       templatizeDrugHeader(cell, drugTemplate);
       if (cell.scrollWidth > minDrugWidth) {
         newWidth = cell.scrollWidth;
       }
       cell.setAttribute("width",newWidth);
       cell.style.width = newWidth + "px";
   }
 }

 for (var i = 0; i < firstDataRow.cells.length; i++) {
    var cell = firstDataRow.cells[i];
    var width = 0;
    if (i == 0) { width = 80; }
    else if (i == 1) { width = 100; }
    else if (i == 2) { width = 100; } 
    else { width = firstRow.cells[i-1].getAttribute("width"); }

    var image = '<img src="' + imageDirectory + '1px_trans.gif" width="'+ width + '" height="1" border="0"/>';
    cell.innerHTML = image + "<br/>" + cell.innerHTML;
 }

 moveTopPaginationToBottomLeft();
}


function isIE() {
   return (navigator.appName.indexOf('Internet Explorer') != -1);
}

var finalPagDiv = document.getElementById('finalPagDiv');
var finalPagDivWidth = 570;
var currentFinalPagDivLeft = 0;

function moveTopPaginationToBottomLeft() {
   var topPag = document.getElementById('topPagination');
   var mainTableBody = document.getElementById('innerSurveyTable').parentNode.parentNode.parentNode;
   var row = mainTableBody.lastChild;
   var cell = row.lastChild;
   cell.setAttribute("align", "left");
   var numRowSelectRegion = document.getElementById('numRowsToDisplay');

   cell.innerHTML = "<div style='position: relative; left: 0px' id='finalPagDiv'><table cellpadding='0' cellspacing='0' width='" + finalPagDivWidth + "px'><tr><td align='left'>" + numRowSelectRegion.innerHTML + "</td><td align='right'>" + cell.innerHTML + "</td></tr></table></div>";
   numRowSelectRegion.innerHTML = "";
}

function movePagination() {
  if (finalPagDiv) {
    var windowWidth = getScrollWidth();
    var elementLeft = getLeft(finalPagDiv);
    var windowLeft = XDSOC();
    var windowRight = windowWidth + windowLeft;
    var maxWidth = document.getElementById('innerSurveyTable').offsetWidth;
    var reachedEdge = false;
    while (windowLeft > elementLeft && !reachedEdge) {
        windowLeft = XDSOC();
        elementLeft = getLeft(finalPagDiv);

        currentFinalPagDivLeft +=  10;

        if (currentFinalPagDivLeft + finalPagDivWidth > maxWidth) {
           currentFinalPagDivLeft = maxWidth - finalPagDivWidth;
           reachedEdge = true;
        }

        finalPagDiv.style.left = currentFinalPagDivLeft + "px";
    }
    windowRight = windowWidth + windowLeft;
    var elementRight = elementLeft + finalPagDivWidth;
    reachedEdge = false;
    while (elementRight > windowRight && !reachedEdge) {
        currentFinalPagDivLeft -= 10;
        if (currentFinalPagDivLeft < 0) {
           currentFinalPagDivLeft = 0;
           reachedEdge = true;
        }
        finalPagDiv.style.left = currentFinalPagDivLeft + "px";
        
        elementLeft = getLeft(finalPagDiv);
        windowLeft = XDSOC();
        windowRight = windowWidth + windowLeft;
        elementRight = elementLeft + finalPagDivWidth;
    }
    

  }
  else {
    finalPagDiv = document.getElementById('finalPagDiv');
  }

}

function moveNewSurveyButton() {
        var addMedsButton=document.getElementById("new_survey_button");
        var newPlace = document.getElementById("spotForNewSurveyButton");
        newPlace.innerHTML = addMedsButton.innerHTML;
}


