﻿
var marked_row = new Array;

/**
* Sets/unsets the pointer and marker in browse mode
*
* @param   object    the table row
* @param   interger  the row number
* @param   string    the action calling this script (over, out or click)
* @param   string    the default background color
* @param   string    the color to use for mouseover
* @param   string    the color to use for marking a row
*
* @return  boolean  whether pointer is set or not
*/
function setPointer(theRow, theRowNum, theAction, theDefaultColor, thePointerColor, theMarkColor) {
   var theCells = null;

   // 1. Pointer and mark feature are disabled or the browser can't get the
   //    row -> exits
   if ((thePointerColor == '' && theMarkColor == '')
        || typeof (theRow.style) == 'undefined') {
      return false;
   }

   // 2. Gets the current row and exits if the browser can't get it
   if (typeof (document.getElementsByTagName) != 'undefined') {
      theCells = theRow.getElementsByTagName('td');
   }
   else if (typeof (theRow.cells) != 'undefined') {
      theCells = theRow.cells;
   }
   else {
      return false;
   }

   // 3. Gets the current color...
   var rowCellsCnt = theCells.length;
   var domDetect = null;
   var currentColor = null;
   var newColor = null;
   // 3.1 ... with DOM compatible browsers except Opera that does not return
   //         valid values with "getAttribute"
   if (typeof (window.opera) == 'undefined'
        && typeof (theCells[0].getAttribute) != 'undefined') {
      currentColor = theCells[0].getAttribute('bgcolor');
      domDetect = true;
   }
   // 3.2 ... with other browsers
   else {
      currentColor = theCells[0].style.backgroundColor;
      domDetect = false;
   } // end 3

   // 4. Defines the new color
   // 4.1 Current color is the default one
   if (currentColor == ''
        || currentColor.toLowerCase() == theDefaultColor.toLowerCase()) {
      if (theAction == 'over' && thePointerColor != '') {
         newColor = thePointerColor;
      }
      else if (theAction == 'click' && theMarkColor != '') {
         newColor = theMarkColor;
         marked_row[theRowNum] = true;
      }
   }
   // 4.1.2 Current color is the pointer one
   else if (currentColor.toLowerCase() == thePointerColor.toLowerCase()
             && (typeof (marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])) {
      if (theAction == 'out') {
         newColor = theDefaultColor;
      }
      else if (theAction == 'click' && theMarkColor != '') {
         newColor = theMarkColor;
         marked_row[theRowNum] = true;
      }
   }
   // 4.1.3 Current color is the marker one
   else if (currentColor.toLowerCase() == theMarkColor.toLowerCase()) {
      if (theAction == 'click') {
         newColor = (thePointerColor != '')
                                  ? thePointerColor
                                  : theDefaultColor;
         marked_row[theRowNum] = (typeof (marked_row[theRowNum]) == 'undefined' || !marked_row[theRowNum])
                                  ? true
                                  : null;
      }
   } // end 4

   // 5. Sets the new color...
   if (newColor) {
      var c = null;
      // 5.1 ... with DOM compatible browsers except Opera
      if (domDetect) {
         for (c = 0; c < rowCellsCnt; c++) {
            theCells[c].setAttribute('bgcolor', newColor, 0);
         } // end for
      }
      // 5.2 ... with other browsers
      else {
         for (c = 0; c < rowCellsCnt; c++) {
            theCells[c].style.backgroundColor = newColor;
         }
      }
   } // end 5

   return true;
} // end of the 'setPointer()' function




function generateGuid() {
   var result, i, j;
   result = '';
   for (j = 0; j < 32; j++) {
      if (j == 8 || j == 12 || j == 16 || j == 20)
         result = result + '-';
      i = Math.floor(Math.random() * 16).toString(16).toUpperCase();
      result = result + i;
   }
   return result
}

function createCookie(name, value, days) {
   if (days) {
      var date = new Date();
      date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
      var expires = "; expires=" + date.toGMTString();
   }
   else var expires = "";
   document.cookie = name + "=" + value + expires + "; path=/";
}

function readCookie(name) {
   var nameEQ = name + "=";
   var ca = document.cookie.split(';');
   for (var i = 0; i < ca.length; i++) {
      var c = ca[i];
      while (c.charAt(0) == ' ') c = c.substring(1, c.length);
      if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
   }
   return null;
}

function fnHideShow(clientID, type) {
   try {
      arrVal = clientID.split("#");
      if (type == '0') // MouseOver effect
      {
         for (i = 0; i <= arrVal.length; i++) {
            document.getElementById(arrVal[i]).className = "hightlighrow";
         }
      }
      else // MouseOut effect
      {
         for (i = 0; i <= arrVal.length; i++) {
            document.getElementById(arrVal[i]).className = "normalrow";
         }
      }
   }
   catch (e) { }
} //fnHideShow

function openclose(divId, imgId) {

   var divDetail = document.getElementById(divId);
   if (divDetail == null)
      divDetail = document.getElementById('ctl00_ContentPlaceHolder1_' + divId);
   //alert(divDetail);
   var img = document.getElementById(imgId);
   if (img == null)
      img = document.getElementById('ctl00_ContentPlaceHolder1_' + imgId);

   if (divDetail.style.display == 'none') {
      divDetail.style.display = 'block';
      img.src = '/images/minus.gif';
   } else {
      divDetail.style.display = 'none';
      img.src = '/images/plus.gif';
   }

   return true;
}
