/**
 * SiteJay2
 * @link http://www.sitejay.com
 * @author Jozef Sokol <jozef.sokol@sitejay.com>
 * @copyright Copyright (c) 2005 Jozef Sokol Absolutio
 *
 * @name SiteJay.base.js
 * @package SiteJay
 */

var SiteJay=new Object();

/**
 * BrowserInfo
 */
var sAgent = navigator.userAgent.toLowerCase();
SiteJay.IsIE=sAgent.indexOf("msie") != -1;
SiteJay.IsGecko=!SiteJay.IsIE;
SiteJay.IsNetscape=sAgent.indexOf("netscape") != -1;
try
{
	SiteJay.ScreenWidth=screen.width;
	SiteJay.ScreenHeight=screen.height;
}
catch (e)
{
	SiteJay.ScreenWidth=800;
	SiteJay.ScreenHeight=600;
}

function detectBrowser() { 
    var BO = new Object(); 
    BO["ie"]        = false /*@cc_on || true @*/; 
    BO["ie4"]       = BO["ie"] && (document.getElementById == null); 
    BO["ie5"]       = BO["ie"] && (document.namespaces == null) && (!BO["ie4"]); 
    BO["ie6"]       = BO["ie"] && (document.implementation != null) && (document.implementation.hasFeature != null); 
    BO["ie55"]      = BO["ie"] && (document.namespaces != null) && (!BO["ie6"]); 
    /*@cc_on
    BO["ie7"]       = @_jscript_version == '5.7';
    @*/ 
    BO["ns4"]       = !BO["ie"] &&  (document.layers != null) &&  (window.confirm != null) && (document.createElement == null); 
    BO["opera"]     = (self.opera != null); 
    BO["gecko"]     = (document.getBoxObjectFor != null); 
    BO["khtml"]     = (navigator.vendor == "KDE"); 
    BO["konq"]      = ((navigator.vendor == 'KDE') || (document.childNodes) && (!document.all) && (!navigator.taintEnabled)); 
    BO["safari"]    = (document.childNodes) && (!document.all) && (!navigator.taintEnabled) && (!navigator.accentColorName); 
    BO["safari1.2"] = (parseInt(0).toFixed == null) && (BO["safari"] && (window.XMLHttpRequest != null)); 
    BO["safari2.0"] = (parseInt(0).toFixed != null) && BO["safari"] && !BO["safari1.2"]; 
    BO["safari1.1"] = BO["safari"] && !BO["safari1.2"] && !BO["safari2.0"]; 
    return BO; 
} 

var BO = new detectBrowser(); 

function sjGetUrlParam(paramName)
{
	var oRegex=new RegExp('[\?&]'+paramName+'=([^&]+)', 'i');
	var oMatch=oRegex.exec(window.top.location.search);
	if (oMatch && oMatch.length>1)
		return oMatch[1];
	else
		return '';
}

function sjEscapeHTML(text) {
	text=text.replace('\n','');
	text=text.replace('&','&amp;');
	text=text.replace('<','&lt;');
	text=text.replace('>','&gt;');
	return text;
}

function sjRemoveChilds(element)
{
	if (!element)
		return;
	if (element.hasChildNodes())
	{
		for ( var i = 0 ; i < element.childNodes.length ; i++ )
		{
			sjRemoveChilds(element.childNodes[i]);
			element.removeChild(element.childNodes[i]);
		}
		// jebe mu to alebo mne ... nie vzdy odstrani vsetko
		if (element.hasChildNodes())
			sjRemoveChilds(element);
	}
}

function sjOpenWindow(url,width,height,name,scrollbars)
{
	var iLeft=(SiteJay.ScreenWidth-width)/2;
	var iTop=(SiteJay.ScreenHeight-height)/2;

	var sOptions="toolbar=no,status=no,resizable=yes,dependent=yes";
	sOptions+=scrollbars?",scrollbars=yes":",scrollbars=no";
	sOptions+=",width="+width;
	sOptions+=",height="+height;
	sOptions+=",left="+iLeft;
	sOptions+=",top="+iTop;

	if (name)
		name="sjWindow";
	if (SiteJay.IsIE)
	{
		var oWindow=window.open(url,name,sOptions);
		if (oWindow)
			oWindow.opener=window;
		else
			alert("ups") ;
    }
    else
		window.open(url,name,sOptions);
}

/**
 * Events
 */
function sjAddLoadEvent(func)
{
	if (typeof window.addEventListener != "undefined")
	{
		window.addEventListener("load",func,false);
	}
	else if (typeof window.attachEvent != "undefined")
	{
		window.attachEvent("onload",func);
	}
	else
	{
		if (window.onload != null) {
			var oldOnload = window.onload;
			window.onload = function ( e ) {
				oldOnload( e );
				func();
			};
		}
		else
			window.onload = func;
	}
}

function before_unload(evt) {
    try {return confirmleaving();}
    catch (e) {}
}
window.onbeforeunload=before_unload


function sjShowHide(objid)
{
	var obj=document.getElementById(objid);
	if (obj)
	{
		if (obj.style.display=="none")
		{
			if (obj.tmpdisplay)
				obj.style.display=obj.tmpdisplay
			else
				obj.style.display="block";
		}
		else
		{
			obj.tmpdisplay=obj.style.display;
			obj.style.display="none";
		}
	}
}

/**
 * Popup menu
 */
sjMenuPop = function() {
    if (!document.getElementsByTagName) return false;
	var menus=document.getElementsByTagName("UL");
	for (var m=0; m<menus.length; m++)
	{
		if (menus[m].className=="sjMenu" || menus[m].className=="sjact")
		{
			var sfEls = menus[m].getElementsByTagName("LI");
			for (var i=0; i<sfEls.length; i++)
			{
		        sfEls[i].onmouseover=function(){this.className+=" sfhover";}
				sfEls[i].onmouseout=function(){this.className=this.className.replace(new RegExp(" sfhover\\b"), "");}
			}
		}
	}
}
//ie
if (window.attachEvent) window.attachEvent("onload", sjMenuPop);


//sjFixFlash = function () 
//{
//	var objects = document.getElementsByTagName("object");
//	var out = '';
//	for (var i=0; i<objects.length; i++) 
//	{
//		out = '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,0,0" ';
//		out += 'data="' + objects[i].getAttribute("data") + '" ';
//		out += 'type="' + objects[i].getAttribute("type") + '" ';
//		out += 'width="' + objects[i].getAttribute("width") + '" ';
//		out += 'height="' + objects[i].getAttribute("height") + '" ';
//		out += '/>'+"\n";
//		for (var j = 0; j < objects[i].childNodes.length; j++) 
//		{
//			if(objects[i].childNodes[j].tagName.toLowerCase() == 'param') 
//			{
//				out += '<param name="' + objects[i].childNodes[j].getAttribute("name") +
//				'" value="' + objects[i].childNodes[j].getAttribute("value") + '" />'+"\n"
//			}
//		}
//		out += '</object>';
//		objects[i].outerHTML = out;
//	}
//}
//ie
//if (window.attachEvent) window.attachEvent("onload", sjFixFlash);



function sjPrepareInputsForHints() {
  var inputs = document.getElementsByTagName("input");
  for (var i=0; i<inputs.length; i++){
    inputs[i].onfocus = function () {
		if (spns=this.parentNode.getElementsByTagName("span"))
			if (spns[0]) spns[0].style.display = "inline";
    }
    inputs[i].onblur = function () {
		if (spns=this.parentNode.getElementsByTagName("span")) 
			if (spns[0]) spns[0].style.display = "none";
    }
  }
  var selects = document.getElementsByTagName("select");
  for (var k=0; k<selects.length; k++){
    selects[k].onfocus = function () {
    	if (spns=this.parentNode.getElementsByTagName("span"))
      		if (spns[0]) spns[0].style.display = "inline";
    }
    selects[k].onblur = function () {
    	if (spns=this.parentNode.getElementsByTagName("span"))
      		if (spns[0]) spns[0].style.display = "none";
    }
  }
  var textareas = document.getElementsByTagName("textarea");
  for (var m=0; m<textareas.length; m++){
    textareas[m].onfocus = function () {
    	if (spns=this.parentNode.getElementsByTagName("span"))
      		if (spns[0]) spns[0].style.display = "inline";
    }
    textareas[m].onblur = function () {
    	if (spns=this.parentNode.getElementsByTagName("span"))
      		if (spns[0]) spns[0].style.display = "none";
    }
  }
}
sjAddLoadEvent(sjPrepareInputsForHints);

function sjClusterLinks() {
    if (!document.getElementsByTagName) return false;
	var anchors=document.getElementsByTagName("A");
	for (var a=0; a<anchors.length; a++)
	{
		if (anchors[a].rel && anchors[a].rel.substr(0,8)=="cluster:")
		{
			var clusterId=anchors[a].rel.substr(8);
			if (clusterId)
				anchors[a].onclick=function(){return reloadCluster(this,clusterId);}
		}
	}
}
sjAddLoadEvent(sjClusterLinks);


/**
 * Common functions
 */
function sjPopupImage(sURL)
{
	sjOpenWindow("/image.html?"+sURL,200,200,"sjImagePopup");
	return false;
}

function sjPopupPanorama(sURL)
{
	sjOpenWindow("/panorama.html?"+sURL,600,400,"sjImagePanorama");
	return false;
}

function sjaShowAMenu(id,e)
{
	var allDivs=document.getElementsByTagName("div");
	for(var key in allDivs)
	{
		var cls=allDivs[key].className;
		if (cls=="sjactm-box" || cls=="sjacte-box")
		{
			if (allDivs[key].id == id)
				allDivs[key].style.display="block";
			else
				allDivs[key].style.display="none";
		}
	}
}

function sjActToolbar(sjmaot)
{
	var tb=document.getElementById(sjmaot);
	if (tb)
	{
		if (tb.sjmaot)
			return;
			
		tb.sjmaot=true;
		tb.style.display="block";
		window.setTimeout("sjActToolbarClose('"+sjmaot+"')",5000);
	}
}

function sjActToolbarClose(sjmaot)
{
	var tb=document.getElementById(sjmaot);
	if (tb)
	{
		tb.sjmaot=false;
		tb.style.display="none";
	}
}

function reloadCluster(anchor,clusterId)
{
	return true;
//	var cluster=document.getElementById(clusterId);
//	
//	if (!cluster)
//		return true;
//	if (!anchor.href)
//		return true;
//		
//	var fail=true;
//
//	this.centerdiv         = new center_div();
//	this.centerdiv.divname = 'sjloading';
//	this.centerdiv.move_div();
//	
//	document.getElementById("sjbusy").style.visibility="visible";
//	new Ajax.Request(anchor.href+"?cluster="+cluster.id,
//	  {
//	    method:'get',
//	    asynchronous:false,
//	    onSuccess: function(transport){
//	      var response = transport.responseText || "no response text";
//	      cluster.innerHTML=response;
//	      sjClusterLinks();
//	      sjPrepareInputsForHints();
//	      
//	      fail=false;
//	    },
//	  });	
//	  
//	this.centerdiv.clear_div();	
//	document.getElementById("sjbusy").style.visibility="hidden";
//	return fail;
}


function center_div()
{
	this.divname = '';
	this.divobj  = '';
};
center_div.prototype.clear_div = function()
{
	try
	{
		if ( ! this.divobj )
		{
			return;
		}
		else
		{
			this.divobj.style.display  = 'none';
		}
	}
	catch(e)
	{
		return;
	}
};
center_div.prototype.Ywindow = function()
{
	var scrollY = 0;
	
	if ( document.documentElement && document.documentElement.scrollTop )
	{
		scrollY = document.documentElement.scrollTop;
	}
	else if ( document.body && document.body.scrollTop )
	{
		scrollY = document.body.scrollTop;
	}
	else if ( window.pageYOffset )
	{
		scrollY = window.pageYOffset;
	}
	else if ( window.scrollY )
	{
		scrollY = window.scrollY;
	}
	
	return scrollY;
};
center_div.prototype.move_div = function()
{
	try
	{
		this.divobj = document.getElementById( this.divname );
	}
	catch(e)
	{
		return;
	}
	
	var my_width  = 0;
	var my_height = 0;
	
	if ( typeof( window.innerWidth ) == 'number' )
	{
		my_width  = window.innerWidth;
		my_height = window.innerHeight;
	}
	else if ( document.documentElement && ( document.documentElement.clientWidth || document.documentElement.clientHeight ) )
	{
		my_width  = document.documentElement.clientWidth;
		my_height = document.documentElement.clientHeight;
	}
	else if ( document.body && ( document.body.clientWidth || document.body.clientHeight ) )
	{
		my_width  = document.body.clientWidth;
		my_height = document.body.clientHeight;
	}
	
	this.divobj.style.position = 'absolute';
	this.divobj.style.display  = 'block';
	this.divobj.style.zIndex   = 99;
	
	var divheight = parseInt( this.divobj.style.Height );
	var divwidth  = parseInt( this.divobj.style.Width );
	
	divheight = divheight ? divheight : 50;
	divwidth  = divwidth  ? divwidth  : 200;
	
	var scrolly = this.Ywindow();
	
	var setX = ( my_width  - divwidth  ) / 2;
	var setY = ( my_height - divheight ) / 2 + scrolly;
	
	setX = ( setX < 0 ) ? 0 : setX;
	setY = ( setY < 0 ) ? 0 : setY;
	
	this.divobj.style.left = setX + "px";
	this.divobj.style.top  = setY + "px";
};


