﻿var isIE = false;
var isOpera = false;
var isMozilla = false;
var isSafari = false;
var isKonq = false; 

function CheckBrowserVersion()
{
  sUserAgent = navigator.userAgent;
  isOpera = sUserAgent.indexOf("Opera") > -1;
  isIE = sUserAgent.indexOf("compatible") > -1 &&
         sUserAgent.indexOf("MSIE") > -1 &&
         !isOpera;
  isKHTML = sUserAgent.indexOf("KHTML") > -1 &&
            sUserAgent.indexOf("AppleWebKit") > -1;
  if (isKHTML)
  {
    isSafari = sUserAgent.indexOf("AppleWebKit") > -1;
    isKonq = sUserAgent.indexOf("Konqueror") > -1;
  }
  isMozilla = sUserAgent.indexOf("Gecko") > -1 &&
              !isKHTML;
}
CheckBrowserVersion();

function attachEventToElement(eventElement, eventName, eventFunction)
{
  if (isIE)
  {        
    eventElement.attachEvent("on" + eventName, eventFunction);
  }
  else
  {
    eventElement.addEventListener(eventName, eventFunction, true);
  }
}

function getDocumentBodyElement()
{
  if (isIE || isMozilla)
  {
    return document.documentElement;
  }
  else if (isOpera)
  {
    return document.body;
  }
  else
  {
    if (document.documentElement)
    {
      return document.documentElement;
    }
    else if (document.body)
    {
      return document.body;
    }
  }
  return null;
}

function getCurrStyle(defObj)
{
  if (defObj)
  {
    if (defObj.currentStyle) 
    {
      return defObj.currentStyle;
    } 
    else if (window.getComputedStyle) 
    {
      return document.defaultView.getComputedStyle(defObj, null);
    }
  }
  return null;
}
function getCurrStyleValue(defObj, IEstyleProp, MozStyleProp) 
{
  if (defObj.currentStyle) 
  {
    return defObj.currentStyle[IEstyleProp];
  } 
  else if (window.getComputedStyle) 
  {
    return document.defaultView.getComputedStyle(defObj, null).getPropertyValue(MozStyleProp);
  }
  return null;
}
function getCurrStyleFloat(defObj)
{
  if (defObj)
  {
    if (defObj.currentStyle) 
    {
      return defObj.currentStyle.styleFloat;
    } 
    else if (window.getComputedStyle) 
    {
      return document.defaultView.getComputedStyle(defObj, null).cssFloat;
    }
  }
  return null;
}
function getStyleFloat(defObj)
{
  if (defObj)
  {
    if (defObj.style.styleFloat || (defObj.style.styleFloat == "")) 
    {
      return defObj.style.styleFloat;
    } 
    else if (defObj.style.cssFloat || (defObj.style.cssFloat == "")) 
    {
      return defObj.style.cssFloat;
    }
  }
  return null;
}
function setStyleFloat(defObj, value)
{
  if (defObj)
  {
    if (defObj.style.styleFloat || (defObj.style.styleFloat == "")) 
    {
      defObj.style.styleFloat = value;
    } 
    else if (defObj.style.cssFloat || (defObj.style.cssFloat == "")) 
    {
      defObj.style.cssFloat = value;
    }
  }
}

function getDimensions(defObj)
{
    if (defObj.style.display != 'none' && defObj.style.display != null) // Safari bug
        return { width: defObj.offsetWidth, height: defObj.offsetHeight };

    return { width: defObj.clientWidth, height: defObj.clientHeight };
}


function YesNoCancelMsgBox(question)
{
  if (isIE || window.VBYesNoCancelMsgBox)
  {
    return VBYesNoCancelMsgBox(question);
  }
  else
  {
    return confirm(question) ? 6 : 7;
  }
}

function YesNoMsgBox(question)
{
  if (isIE || window.VBYesNoMsgBox)
  {
    return VBYesNoMsgBox(question);
  }
  else
  {
    return confirm(question) ? 6 : 7;
  }
}

function YesNoWarrningMsgBox(question)
{
  if (isIE || window.VBYesNoWarrningMsgBox)
  {
    return VBYesNoWarrningMsgBox(question);
  }
  else
  {
    return confirm(question) ? 6 : 7;
  }
}

function OKInformationMsgBox(infoText)
{
  if (isIE || window.VBOKInformationMsgBox)
  {
    VBOKInformationMsgBox(infoText);
  }
  else
  {
    alert(infoText);
  }
}

function isLeftButtonClick(ev)
{
  if (isIE)
  {
    return ev.button == 1;
  }
  else
  {
    return ev.button == 0;
  }
}

function isRightButtonClick(ev)
{
  return ev.button == 2;
}

function IsAppPath(path)
{
  return window.location.href.substr(0, window.location.href.length - 'default.aspx'.length) == file.href;
}

function GetRelativePath(path)
{
  prefix = window.location.href.substr(0, location.href.length - location.pathname.length);  
  if (path.indexOf(prefix) >= 0)
  {
    return path.substr(prefix.length, path.length - prefix.length);
  }
  else
  {
    return path;
  }
}
function RefreshLabel4Disable(controlID, isFormDisabled)
{
  // its necessary to refresh label because on show property page
  // (disable current page) label duplicate text
  control = document.getElementById(controlID);
  if (control)
  {
    if (isFormDisabled)
    {
      control.style.visibility = 'visible';    
    }
    else
    {
      control.style.visibility = '';    
    }
  }
}

function SetSelectControlsVisible(parentControl, value)
{
    // value - 'hidden', 'visible'
	for( var i = 0; i < parentControl.childNodes.length; i++) 
	{
	   if (parentControl.childNodes[i].tagName && 
	       (parentControl.childNodes[i].tagName.toLowerCase() == 'select'))
	   {
         parentControl.childNodes[i].style.visibility = value;
	   }
	   SetSelectControlsVisible(parentControl.childNodes[i], value);
	}
}
function HideSelectControls(parentControlID)
{
    parentControl = document.getElementById(parentControlID);
    if (parentControl)
    {
      SetSelectControlsVisible(parentControl, 'hidden');
    }
}
function ShowSelectControls(parentControlID)
{
    parentControl = document.getElementById(parentControlID);
    if (parentControl)
    {
      SetSelectControlsVisible(parentControl, 'visible');
    }
}

function ConvertStringToBool(strValue)
{
  if (strValue && (strValue == 't'))
  {
    return true;
  }
  else
  {
    return false;
  }
}

function setDiabledAllElements(parentElement, isDisabled)
{
  if ((parentElement.disabled != null) &&
      (parentElement.disabled != undefined))
  {
    parentElement.disabled = isDisabled;
  }
  if (parentElement.childNodes)
  {
    for(var i = 0; i < parentElement.childNodes.length; i++) 
    {    
      setDiabledAllElements(parentElement.childNodes[i], isDisabled)
    }
  }
}