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) {
                header.innerHTML += " <img src='" + imageDirectory +
                                    "themes/theme_106/" + image +
                                    "' alt='sort'/>";
             }
          }
      }
   }
}



var curElement = null;
var curDeleteId;
var curDeleteName;
function showDeleteMenu(event, element, deleteName, deleteId, leftOffset) {
    if (curElement != null) {
       timer = true;
       closePopup(curElement);
    }
    
    curDeleteId = deleteId;
    curDeleteName = deleteName;
    var parentNode = element.parentNode;
    var h = (element.clientHeight)?element.clientHeight:(element.scrollHeight + 2);

    var dTitle = document.getElementById('changeDrugTitle');
    dTitle.innerHTML = curDeleteName;
    var div = document.getElementById('removePopup');
    
    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() {
  timer = true;
  closePopup(curElement);
}

function closePopup(element) {
   if (element != null && timer) {
      curElement = null;
      document.getElementById('removePopup').style.display = "none";
  }
}

function closePopupCountDown(element) {
   curElement = element;
   var func_def = "closePopup(curElement)";
   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');
 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 + ')">' +
                        headerTitle + " <img src='" + imageDirectory +
                        "themes/theme_106/" + image +
                        "' alt='sort'/></a>";
    }
 }
}

function prepare600Table(imageDirectory, tab, curSort, curOrder) {
  var table = document.getElementById('innerSurveyTable');
  var oldLocation = document.getElementById('search_and_view');
  var newLocation;

  if (table) {
     if (tab != "Interactions") {
        newLocation = table.tHead.rows[0].cells[0];
        newLocation.innerHTML = oldLocation.innerHTML;
        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;
        oldLocation.innerHTML = "";
     }
     else {
        oldLocation.style.display = "inline";
     }
  }
  changeViewSelectOnChange600();
  setColSpan();
}

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 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 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] = html;
    }
    return medNames;
}

function addGraphMouseovers() {
 var x=document.getElementById("innerSurveyTable");
 var medicationRow = x.tHead.rows[1];
 var medNames = getMedicationsFromHTML(medicationRow, 3);


 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].firstChild;
      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.firstChild.innerHTML;

   if (medName) {
       ade = stripHTML(ade);
       var newMouseover = 'onmouseover="graphInfoTip(event,this,\''+
                          medName +  '\',\'' + ade + '\')"';
       node = node.replace(matchMouseover, newMouseover);
       cell.firstChild.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 = getMedicationsFromHTML(medicationRow, 0);

 for (var i = 1; i < tableBody.rows.length-2; 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, 3);

 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].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];
        }
        else {
          medCombo += " - " + medNames[j];
        }
      }
    }
    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 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 = searchField.innerHTML;
        newPlace = document.getElementById("new_view_select");
        newPlace.innerHTML = viewSelect.innerHTML;
        // remove the old searchField so that two fields with the same
        // name are not submitted
        searchField.innerHTML = '';
        viewSelect.innerHTML = '';

        document.getElementById('ps4tabcontainer1').style.marginBottom = '1px';

        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() {
   var isLoggedIn = document.getElementById('P0_IS_LOGGED_IN');
   if (isLoggedIn && isLoggedIn.value == "TRUE") {
      document.getElementById('wholePage').style.display = "inline";
     document.getElementById('processingPage').style.display = "inline";
  }
}

function disablePageForPrinting() {
   var myDiv = document.getElementById('wholePage');
   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">Filter ADEs:&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;';
 document.getElementById('ps4tabcontainer1').style.marginBottom = '2px';
}

function prepareSourceTable(numMeds, imageDirectory) {
 var sourceTable=document.getElementById("innerSurveyTable");
 var tableHead = sourceTable.tHead;

 var firstRow = tableHead.rows[1];
 var magicWidth = 135;
 var firstDataRow = sourceTable.tBodies[0].rows[1];

 firstRow.cells[3].setAttribute("span", numMeds);
 firstRow.cells[3].setAttribute("spanTitle", "<img src='" + imageDirectory + "1px_trans.gif' width='" + magicWidth + "' height='35' border='0'/>");

 var minDrugWidth = 70;
 if (numMeds == 1 && magicWidth > firstRow.cells[3].scrollWidth) {
     firstRow.cells[3].setAttribute("width", magicWidth);
     firstRow.cells[3].style.width = magicWidth + "px";

 } else {
   for (var i = 3; i < firstRow.cells.length; i++) {
       var newWidth = minDrugWidth;
       if (firstRow.cells[i].scrollWidth > minDrugWidth) {
         newWidth = firstRow.cells[i].scrollWidth;
       }
       firstRow.cells[i].setAttribute("width",newWidth);
       firstRow.cells[i].style.width = newWidth + "px";
   }
 }

 for (var i = 0; i < firstDataRow.cells.length; i++) {
    var cell = firstDataRow.cells[i];
    var width = firstRow.cells[i].getAttribute("width"); 
    if (i == 2) { width = 100; } 
    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');
  }

}

