﻿//==========================================================================
function IS_Serwer()
{
	this.Tydzien = 0;
	this.Dzien = 0;
	this.Mesiac = 0;
	this.Rok = 0;
	this.Godzina = 0;
	this.Minuta = 0;
	this.Sekuna = 0;
	this.rGodzina = 0;
	this.rMinuta = 0;
	this.rSekunda = 0;
//--------------------------------------------------------------------------
	this.ObliczCzas = function()
	{
		var data = new Date();
		this.rGodzina = data.getHours() - this.Godzina;
		this.rMinuta = data.getMinutes() - this.Minuta;
		this.rSekunda = data.getSeconds() - this.Sekuna;
	}
}
//==========================================================================
function IS_ObjBrowser(name, type, isread, html)
{
	this.Nazwa = name;
	this.Typ = type;
	this.isReadable = isread;
	this.Wartosc = html;
}
//==========================================================================
function IS_KodyZnakow(znak, kod)
{
	this.Znak = znak;
	this.Kod = kod;
}
//==========================================================================
function IS_Web()
{
	var d = document;
	var obj_czas, ObjDane, ObjBadany;
	var nazwy_dni = ["<font style=\"color: #c00;\">Niedizela</font>","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota",""];
	var nazwy_mcy = ["","Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"];
	this.Serwer = new IS_Serwer();
	this.KodyZnakow = new Array();
	var NazwaRoot;
	var RodzajRoot;
//--------------------------------------------------------------------------
	this.PokazCzas = function()
	{
		var data = new Date();
		var rok = data.getYear();
		if (rok < 2000)
		{
			rok += 1900;
		}
		
		var godzina = data.getHours() - this.Serwer.rGodzina;
		var minuty = data.getMinutes() - this.Serwer.rMinuta;
		var sekundy = data.getSeconds() - this.Serwer.rSekunda;
		
		if ( sekundy > 59 )
		{
			sekundy -= 60;
			minuty += 1;
		}
		if ( sekundy < 0 )
		{
			sekundy += 60;
			minuty -= 1;
		}
		if ( minuty > 59 )
		{
			minuty -= 60;
			godzina += 1;
		}
		if ( minuty < 0 )
		{
			minuty += 60;
			godzina -= 1;
		}
		godzina = ( godzina > 23 ? godzina - 24 : ( godzina < 0 ? godzina + 24 : godzina ) );
		obj_czas.innerHTML = "<b>Czas lokalny:</b> " + nazwy_dni[data.getDay()] + ", " + data.getDate() + " " + nazwy_mcy[data.getMonth() + 1] + " " + rok + " r., godz.: " + ( data.getHours() < 10 ? "0" + data.getHours() : data.getHours()) + ":" + ( data.getMinutes() < 10 ? "0" + data.getMinutes(): data.getMinutes() ) + "." + (data.getSeconds() < 10 ? "0" + data.getSeconds() : data.getSeconds())+ "<br /><b>Czas serwera:</b> " + nazwy_dni[this.Serwer.Tydzien] + ", " + this.Serwer.Dzien + " " + nazwy_mcy[this.Serwer.Mesiac] + " " + this.Serwer.Rok + " r., godz.: " + ( godzina < 10 ? "0" + godzina : godzina ) + ":" + ( minuty < 10 ? "0" + minuty : minuty ) + "." + ( sekundy < 10 ? "0" + sekundy : sekundy );
		setTimeout("myWeb.PokazCzas()", 1000);
	}
//--------------------------------------------------------------------------
	function GetQuery()
	{
		for (var i = 0; i < window.location.href.length; i++)
		{
			if (window.location.href.charAt(i) == "?")
			{
				return window.location.href.substr(i + 1);
				break;
			}
		}
		return "";
	}
//--------------------------------------------------------------------------
	this.KrCzas = function()
	{
		var data = new Date();
		obj_czas.innerHTML = nazwy_dni[data.getDay()] + ", " + data.getDate() + " " + nazwy_mcy[data.getMonth() + 1] + " " + (data.getYear() + 1900) + " r., godz.: " + ( data.getHours() < 10 ? "0" + data.getHours() : data.getHours()) + ":" + ( data.getMinutes() < 10 ? "0" + data.getMinutes(): data.getMinutes() ) + "." + (data.getSeconds() < 10 ? "0" + data.getSeconds() : data.getSeconds());
		setTimeout("myWeb.KrCzas()", 1000);
	}
//--------------------------------------------------------------------------
	this.NazwyObj = new Array();
	this.DodajObj = function(Nazwa)
	{
		var Ilosc = this.NazwyObj.length;
		this.NazwyObj[Ilosc] = Nazwa;
		PokazObiekty();
	}
	this.UsunObj = function(Nr)
	{
		this.NazwyObj.length = Nr;
		PokazObiekty();
	}
//--------------------------------------------------------------------------
	function PokazObiekty()
	{
		ObjDane = d.getElementById("dane");
		ObjDane.innerHTML = "Zbieram dane. Czekaj.";
		var item;
		var tmp;
		var isReadable;
		var Html;
		var NazwaObj = NazwaRoot;
		var BrowserObj = new Array();
		var BrowserFun = new Array();
		var BrowserInne = new Array();	
		var TypDanych;
		var CurrObject;
		var RootObject;
		var Przeglad = 1;
		var Licznik = [0, 0];
		for (var i = 0; i < myWeb.NazwyObj.length; i++)
		{
			NazwaObj += "." + myWeb.NazwyObj[i];
		}
		try
		{
			RootObject = eval(NazwaObj);
		}
		catch (e)
		{
			Przeglad = 0;
		}
		if (Przeglad = 1)
		{
			for (item in RootObject)
			{
				if ((item != "myWeb") && (item.substr(0,3) != "IS_"))
				{
					try
					{
						CurrObject = eval(NazwaObj + "." + item);
					}
					catch (e)
					{
						CurrObject = null;
					}
					isReadable = 1;
					try
					{
						tmp = String(CurrObject);
					}
					catch(e)
					{
						tmp = "&lt;brak uprawnień&gt;";
						isReadable = 0;
					}
					if (tmp == "null")
					{
						isReadable = 0;
					}
					TypDanych = String(typeof(CurrObject));
					if (TypDanych == "object")
					{
						BrowserObj[BrowserObj.length] = new IS_ObjBrowser(item, TypDanych, isReadable, PoprawHtml(tmp));
					}
					else if (TypDanych == "function")
					{
						BrowserFun[BrowserFun.length] = new IS_ObjBrowser(item, TypDanych, isReadable, PoprawHtml(tmp));
					}
					else
					{
						BrowserInne[BrowserInne.length] = new IS_ObjBrowser(item, TypDanych, isReadable, PoprawHtml(tmp));
					}
				}
			}
		}
		SortujTekst(BrowserObj, 1);
		SortujTekst(BrowserFun, 1);
		SortujTekst(BrowserInne, 1);
		Html = "<div class=\"badanie\"><p>Nadrzędne: <b>";
		if (myWeb.NazwyObj.length > 0)
		{
			Html += "<font class=\"menuactive\" onclick=\"myWeb.UsunObj(0)\">" + RodzajRoot + "</font>";
		}
		else
		{
			Html += RodzajRoot;
		}
		
		for (var j = 0; j < myWeb.NazwyObj.length; j++)
		{
			if (j < myWeb.NazwyObj.length - 1)
			{
				Html += ".<font class=\"menuactive\" onclick=\"myWeb.UsunObj(" + (j + 1) + ")\">" + myWeb.NazwyObj[j] + "</font>";
			}
			else
			{
				Html += "." + myWeb.NazwyObj[j];
			}
		}
		Html += "</b></p>";
		Html += "<h2>Obiekty (" + BrowserObj.length + "):</h2>";
		for (var i = 0; i < BrowserObj.length; i++)
		{
			if (BrowserObj[i].isReadable == 1)
			{
				Html += "<p class=\"obiekt_nazwa_a\" onclick=\"myWeb.DodajObj('" + BrowserObj[i].Nazwa + "')\">" + BrowserObj[i].Nazwa + "</p><pre>" + BrowserObj[i].Wartosc + "</pre>";
			}
			else
			{
				Html += "<p class=\"obiekt_nazwa_p\">" + BrowserObj[i].Nazwa + "</p><pre>" + BrowserObj[i].Wartosc + "</pre>";
			}
		}
		Html += "<h2>Metody (" + BrowserFun.length + "):</h2>";
		for (var i = 0; i < BrowserFun.length; i++)
		{
			Html += "<p class=\"funkcja_nazwa\">" + BrowserFun[i].Nazwa + "</p><pre>" + BrowserFun[i].Wartosc + "</pre>";
		}
		Html += "<h2>Argumenty (" + BrowserInne.length + "):</h2>";
		for (var i = 0; i < BrowserInne.length; i++)
		{
			Html += "<p class=\"argumenty_nazwa\">" + BrowserInne[i].Typ + " <font class=\"argument_nazwa\">" + BrowserInne[i].Nazwa + " = </font> " + (BrowserInne[i].Typ == "string" ? "&quot;" + BrowserInne[i].Wartosc + "&quot;" : BrowserInne[i].Wartosc) + "</p>";
		}
		Html += "</div>";
		ObjDane.innerHTML = Html;
	}
//--------------------------------------------------------------------------
	function SortujTekst(Tablica, Rosnaco)
	{
		var TmpItem = new IS_ObjBrowser("","",1,"");
		for (var i = 0; i < Tablica.length; i++)
		{
			for (var j = 1; j < Tablica.length - i; j++)
			{
				if (Tablica[j - 1].Nazwa > Tablica[j].Nazwa)
				{
					TmpItem = Tablica[j - 1];
					Tablica[j - 1] = Tablica[j];
					Tablica[j] = TmpItem;
				}
			}
		}
	}
//--------------------------------------------------------------------------
	function PoprawHtml(Tekst)
	{
		var Wynik = "";
		for (var j = 0; j < Tekst.length; j++)
		{
			if (Tekst.charAt(j) == "<")
			{
				Wynik += "&lt;";
			}
			else if (Tekst.charAt(j) == ">")
			{
				Wynik += "&gt;";
			}
			else if (Tekst.charAt(j) == "\"")
			{
				Wynik += "&quot;";
			}
			else
			{
				Wynik += Tekst.charAt(j);
			}
		}
		return Wynik;
	}
//--------------------------------------------------------------------------
	this.Init = function()
	{
		if (window.parent.length != 0)
		{
			window.open("http://www.ism.pl","_top","");
		}
		var query = GetQuery();
	}
	this.InitNapisz = function()
	{
		this.Init();
		this.KrCzas();
	}
	this.InitObiektyTop = function()
	{
		this.Init();
		NazwaRoot = "top";
		RodzajRoot = "top";
		PokazObiekty();
	}
	this.InitObiektyDiv = function()
	{
		ObjBadany = document.getElementById("badany");
		this.Init();
		NazwaRoot = "ObjBadany";
		RodzajRoot = "div";
		PokazObiekty();
	}
	this.InitObiektyA = function()
	{
		ObjBadany = document.getElementById("badany");
		this.Init();
		NazwaRoot = "ObjBadany";
		RodzajRoot = "a";
		PokazObiekty();
	}
	this.InitObiektyImg = function()
	{
		ObjBadany = document.getElementById("badany");
		this.Init();
		NazwaRoot = "ObjBadany";
		RodzajRoot = "img";
		PokazObiekty();
	}
	this.InitObiektyInput = function()
	{
		ObjBadany = document.getElementById("badany");
		this.Init();
		NazwaRoot = "ObjBadany";
		RodzajRoot = "input";
		PokazObiekty();
	}
	this.InitIndex = function()
	{
		this.Init();
		obj_czas = d.getElementById("czas");
		this.Serwer.ObliczCzas();
		this.PokazCzas();
	}
//--------------------------------------------------------------------------
	this.PokazKodZnaku = function(Obj)
	{
		if (Obj.value.length == 0)
		{
			return;
		}
		var o = d.getElementById("kod_znaku");
		o.innerHTML = "";
		if (Obj.value == " ")
		{
			o.innerHTML = " Kod: &amp;nbsp;";
			return;
		}
		var Znak;
		for (var i = 0; i < this.KodyZnakow.length; i++)
		{
			Znak = this.KodyZnakow[i].Znak;
			if (Znak.length > 1)
			{
				switch (Znak)
				{
				case "&quot;":
					Znak = "\"";
					break;
				case "&amp;":
					Znak = "&";
					break;
				case "&lt;":
					Znak = "<";
					break;
				case "&gt;":
					Znak = ">";
					break;
				}
			}
			if (Obj.value == Znak)
			{
				o.innerHTML = " Kod: " + this.KodyZnakow[i].Kod;
				return;
			}
		}
	}
//--------------------------------------------------------------------------
	var TimeStat = 0;
	var TimeHndl;
	this.MenuPokaz = function(id)
	{
		clearTimeout(TimeHndl);
		TimeStat = 1;
		var Obj = document.getElementById(id);
		Obj.style.display = "block";
	}
	this.MenuUkryj = function(id)
	{
		if (TimeStat == 1)
		{
			TimeStat = 0;
			TimeHndl = setTimeout("myWeb.MenuUkryj('" + id + "')", 1000);
			return;
		}
		var Obj = document.getElementById(id);
		Obj.style.display = "none";
	}
}
//==========================================================================
