﻿Tygrik.System = function()
{
}

Tygrik.System.ByID = function(sID)
{
   var oReturn = null;
   if (oReturn == null)
   {
      try
      {
         oReturn = document.getElementById(sID);
      }
      catch (e) {}
   }
   if (oReturn == null)
   {
      try
      {
      	oReturn = document.all[sID];
      }
      catch (e) {}
   }
   if (oReturn == null)
   {
//      alert("Internal error: Object with ID=" + sID + " doesn't exist. / Interní chyba: Objekt s ID=" + sID + " neexistuje.");
   }
   return oReturn;
}

Tygrik.System.ByName = function(sName)
{
   var oReturn = null;
   if (oReturn == null)
   {
      try
      {
         var qNames = document.getElementsByName(sName);
         var iNames = qNames.length;
         for (var iName = 0; iName < iNames; iName++)
         {
            if (qNames[iName].name)
            {
               if (qNames[iName].name == sName)
               {
                  oReturn = qNames[iName];
                  break;
               }
            }
         }
      }
      catch (e) {}
   }
   if (oReturn == null)
   {
      try
      {
         var qNames = document.getElementsByTagName("*");
         var iNames = qNames.length;
         for (var iName = 0; iName < iNames; iName++)
         {
            if (qNames[iName].name)
            {
               if (qNames[iName].name == sName)
               {
                  oReturn = qNames[iName];
                  break;
               }
            }
         }
      }
      catch (e) {}
   }
   if (oReturn == null)
   {
      //alert("Internal error: Object with Name=" + sName + " doesn't exist. / Interní chyba: Objekt s Name=" + sName + " neexistuje.");
   }
   return oReturn;
}

Tygrik.System.ByRegion = function(sRegionId, oObjectNow)
{
  if (Tygrik.System.GetAttributeByName(oObjectNow, "user_region") == sRegionId)
  {  
    return oObjectNow;
  }
  else
  {
    var iLength = oObjectNow.children.length;
    for (var iNow = 0; iNow < iLength; iNow++)
    {
      var oRetrurn = Tygrik.System.ByRegion(sRegionId, oObjectNow.children[iNow]);
      if (oRetrurn != null)
      {
        return oRetrurn;
      }
    }
  }
  return null;
}

Tygrik.System.GetAttributeByName = function(oObject, sName)
{
  var sReturn = "";
  var qAttributes = oObject.attributes;
  if (qAttributes!=null)
  {
    var iLength = qAttributes.length;
    for (var iNow = 0; iNow < iLength; iNow++)
    {
        var oAttributeName = qAttributes[iNow];
        if (oAttributeName.nodeName == sName)
        {
            sReturn = oAttributeName.nodeValue;
            break;
        }
    }
  }
  return sReturn;
}


Tygrik.System.Close = function()
{
   window.close();
}

Tygrik.System.Print = function()
{
   window.print();
   window.close();
}

Tygrik.System.Bookmark = function(sURL, sTitle)
{
   var bYet = false;
  
   if (!bYet && document.all) //MSIE
   {
      window.external.AddFavorite("http://" + sURL, sTitle);
      bYet = true;
   }

   if (!bYet && window.sidebar) // firefox
   {
      window.sidebar.addPanel(sTitle, sURL, "");
      bYet = true;
   }
   
   if (!bYet)
   {
//      alert("Your browser doesn't support this. / Váš prohlížeč toto nepodporuje.");
   }
}

Tygrik.System.Multi = function(sFormular, sField)
{
   var oFormular = Tygrik.System.ByID(sFormular);
   var oMulti = Tygrik.System.ByID("Xxx_Reserved_Multi");
   if (oFormular != null && oMulti != null)
   {
      Tygrik.System.Wait();
      Tygrik.Window.JustNow();

      setTimeout('Tygrik.System.Pokus()', 10000);

      oMulti.value = sField;
      oFormular.submit();
   }
}

Tygrik.System.BrowserName = function()
{ 
   var sName = "msie"; 
   var oAgent = navigator.userAgent.toLowerCase(); 

   if (oAgent.indexOf("opera") != -1)
   { 
      sName = "opera"; 
   }
   if (oAgent.indexOf("safari") != -1 )
   {
      sName = "safari"; 
   }
   if (oAgent.indexOf("mozilla") != -1 )
   {
      sName = "mozilla"; 
   } 
   if ( oAgent.indexOf("firefox") != -1 )
   { 
      sName = "firefox"; 
   }
   if (oAgent.indexOf("msie") != -1)
   { 
      sName = "msie"; 
   }

   return sName; 
} 

Tygrik.System.GetURL = function()
{
   return window.location.href;
}

Tygrik.System.GetURLParameter = function(sParameterName)
{
   var sParameterValue = "";
   var sPart = "";
   var sURL = Tygrik.System.GetURL();
   var qURL = sURL.split("/");
   for(var u = 0; u < qURL.length; u++)
   {	
      sPart = qURL[u];
   }
   if (sPart.length > 4)
   {
      var iDot = sPart.lastIndexOf(".htm", sPart.lenght);
      if (iDot == sPart.length - 4)
      {
          sPart = sPart.substring(0, iDot);
      }
   }
   var qPart = sPart.split(",");
   for(var p = 0; p < qPart.length; p++)
   {	
      var sParameter = qPart[p];
      var iRovno = sParameter.indexOf("=", 0);
      if (iRovno != -1)
      {
         var sName = sParameter.substring(0, iRovno);
         if (sName == sParameterName)
         {
            var sValue = sParameter.substring(iRovno + 1, sParameter.length);
            sParameterValue = sValue;
         }
      }
   }
   return sParameterValue;
}

// barvy

Tygrik.System.ColorConvert = function(sColor)
{ 
   if (sColor[0]=='r')
   // Handle rgb(redValue, greenValue, blueValue) format of Mozilla
   {
      var sTrimColor = sColor.substring(sColor.indexOf('(')+1, sColor.indexOf(')'));
      var oSplitColor = sTrimColor.split(',', 3);
      var oColor = new Object();
      oColor[0] = parseInt(oSplitColor[0]);
      oColor[1] = parseInt(oSplitColor[1]);
      oColor[2] = parseInt(oSplitColor[2]);		
      return oColor;
   }
   if (sColor.substring(0,1) == "#")
   // Handle the #RRGGBB' format of Internet Explorer
   {
      var oColor = new Object();
      oColor[0] = parseInt(sColor.substring(1, 3), 16);
      oColor[1] = parseInt(sColor.substring(3, 5), 16);
      oColor[2] = parseInt(sColor.substring(5, 7), 16);
      return oColor;
   }
   return null;
}

Tygrik.System.ColorHex = function(iColor)
{
   return ('0' + iColor.toString(16)).slice(-2);
}

Tygrik.System.ColorHashRGBText = function(oColor)
{
   if (oColor != null)
   {
      return "#" + Tygrik.System.ColorHex(oColor[0]) + Tygrik.System.ColorHex(oColor[1]) + Tygrik.System.ColorHex(oColor[2]);
   }
   else
   {
      return "";
   }
}

Tygrik.System.ColorShade = function(oColor, iLevel)
{
   var oShade = new Object();
   var i = 0;
   for(i = 0; i < 3; i++)
   {
      oShade[i] = Math.round(oColor[i] * iLevel);
      oShade[i] = (oShade[i] > 255 ? 255 : oShade[i]);
      oShade[i] = (oShade[i] < 0 ? 0 : oShade[i]);
   }
   return oShade;
}

// rozmery
Tygrik.System.ScrollerWidth = function()
{
    var oScr = document.createElement('div');
    oScr = document.createElement('div');
    oScr.style.position = 'absolute';
    oScr.style.top = '-1000px';
    oScr.style.left = '-1000px';
    oScr.style.width = '100px';
    oScr.style.height = '50px';
    oScr.style.overflow = 'hidden';

    var oInn = document.createElement('div');
    oInn.style.width = '100%';
    oInn.style.height = '200px';

    oScr.appendChild(oInn);
    document.body.appendChild(oScr);
    var wNoScroll = oInn.offsetWidth;
    oScr.style.overflow = 'auto';
    var wScroll = oInn.offsetWidth;
    document.body.removeChild(oScr);

    return (wNoScroll - wScroll);
}

// Popora Message
Tygrik.System.oMessage = null;

Tygrik.System.Message = function(sCaption, sText)
{
   if (Tygrik.System.oMessage == null)
   {
      Tygrik.System.oMessage = new Tygrik.Window();
      if (sText.length <= 100)
      {
         Tygrik.System.oMessage.Create("Window_System_Message", "", 300, 150, "WindowDefault");
      }
      else
      {
         Tygrik.System.oMessage.Create("Window_System_Message", "", 600, 300, "WindowDefault");
      }
      Tygrik.System.oMessage.Title(sCaption);
      Tygrik.System.oMessage.Buttons("<a href='javascript:Tygrik.System.MessageClose()' class='ClassABandXLink Class-BandXBlock Class-BandXAdminNormal Class-BandCancelEnabled' title='Zavřít'></a>");
      Tygrik.System.oMessage.Area(sText);
   }
   
   Tygrik.System.oMessage.Show();
}

Tygrik.System.MessageClose = function()
{
   if (Tygrik.System.oMessage != null)
   {
      Tygrik.System.oMessage.Exit("Tygrik.System.MessageExit");
      Tygrik.System.oMessage.Hide();
   }
}

Tygrik.System.MessageExit = function(sID)
{
   if (Tygrik.System.oMessage != null)
   {
      if (Tygrik.System.oMessage.ID() == sID)
      {
         Tygrik.System.oMessage.Destroy();     
         Tygrik.System.oMessage = null;
      }
   }
}

// Popora Zoom
Tygrik.System.oZoom= null;

Tygrik.System.Zoom = function(sPicture, sCaption, iWidth, iHeight)
{
   if (Tygrik.System.oZoom == null)
   {
      Tygrik.System.oZoom = new Tygrik.Window();
      Tygrik.System.oZoom.Create("Window_System_Zoom", "", iWidth + 42, iHeight + 72, "WindowDefault");
      Tygrik.System.oZoom.Title(sCaption);
      Tygrik.System.oZoom.Buttons("<a href='javascript:Tygrik.System.ZoomClose()' class='ClassABandXLink Class-BandXBlock Class-BandXAdminNormal Class-BandCancelEnabled' title='Zavřít'></a>");      
      Tygrik.System.oZoom.Area("<a href='javascript:Tygrik.System.ZoomClose()'><img src='" + sPicture + "' width='" + iWidth + "' height='" + iHeight + "' class='ClassImgZoom' alt='" + sCaption + "' /></a>");
   }
   
   Tygrik.System.oZoom.Show();
}

Tygrik.System.ZoomClose = function()
{
   if (Tygrik.System.oZoom != null)
   {
      Tygrik.System.oZoom.Exit("Tygrik.System.ZoomExit");
      Tygrik.System.oZoom.Hide();
   }
}

Tygrik.System.ZoomExit = function(sID)
{
   if (Tygrik.System.oZoom != null)
   {
      if (Tygrik.System.oZoom.ID() == sID)
      {
         Tygrik.System.oZoom.Destroy();     
         Tygrik.System.oZoom = null;
      }
   }
}

// Popora Wait
Tygrik.System.oWait = null;

Tygrik.System.Wait = function()
{
   if (Tygrik.System.oWait == null)
   {
      Tygrik.System.oWait = new Tygrik.Window();
      Tygrik.System.oWait.Create("Window_System_Message", "", 240, 270, "WindowDefault");
      Tygrik.System.oWait.Title("Moment prosím...");
      Tygrik.System.oWait.Area("<img src='Images/Wait.gif' width='21' height='21' alt='Moment prosím...' class='ClassImgWait'/><br/>Pracuji...");
   }
   
   Tygrik.System.oWait.Show();
}

Tygrik.System.WaitClose = function()
{
   if (Tygrik.System.oWait != null)
   {
      Tygrik.System.oWait.Exit("Tygrik.System.WaitExit");
      Tygrik.System.oWait.Hide();
   }
}

Tygrik.System.WaitExit = function(sID)
{
   if (Tygrik.System.oWait != null)
   {
      if (Tygrik.System.oWait.ID() == sID)
      {
         Tygrik.System.oWait.Destroy();     
         Tygrik.System.oWait = null;
      }
   }
}

Tygrik.System.NoSubmit = function()
{
   try
   {
      event.returnValue = false;
   }
   catch (e) {}

   return false;   
}

Tygrik.System.Pokus = function()
{
   var oAjax = new Tygrik.Ajax();
   oAjax.Parameter("Face", "Pokus");
   oAjax.DoGet("Tygrik-Ajax", "Tygrik.System.onFirePokus");
}

Tygrik.System.onFirePokus = function(sResult)
{
   Tygrik.System.oWait.DoFire(sResult);

   setTimeout('Tygrik.System.Pokus()', 10000);
}

Tygrik.System.GetValue = function(oElement)
{
    return oElement.value;
}

Tygrik.System.SetValue = function(oElement, sValue)
{
    oElement.value = sValue;
}

Tygrik.System.EventHandler = function()
{
	var qArray = new Array();

	this.Add = function(oAdd)
	{
		qArray[qArray.length] = oAdd;
	}

	this.Parameter = function(sAkce, oValue)
	{
		switch(sAkce)
		{
			case "Add":
				this.Add(oValue);
			break;
			case "Do":
				if(oValue)
				{
					this.Do();
				}
			break;
		}
	}

	this.Do = function()
	{
		var iLength = qArray.length;
		var bRet = true;
		for(var iNow = 0; iNow < iLength; iNow++)
		{
			var oNow = qArray[iNow];
			if(oNow != null)
			{
				switch(typeof oNow)
				{
					case "function":
						bRet = bRet && oNow();
						break;
			
					  case "string":
					  	bRet = bRet && eval(oNow);
						break;
				}
			}
		}
		return bRet;
	}
	
}
