/* ----------------------------------------------------------------------
	SCREEN SIZE
---------------------------------------------------------------------- */
function getScreenSize(mode)
{
	if (self.innerHeight)
	{
        if(mode == 'width') return self.innerWidth;
        else return self.innerHeight;
        
	}
	else if (document.documentElement || document.body)
	{
        if(mode == 'width')
        	return document.documentElement.clientWidth ?
        		document.documentElement.clientWidth : document.body.clientWidth;
        else
			return document.documentElement.clientHeight ?
        		document.documentElement.clientHeight : document.body.clientHeight;
	}
	
	return 0;
}

/*=============================================================================
    RESIZE DOCUMENT IF IT'S TOO SHORT
==============================================================================*/
function resizeDoc()
{
	// something mess up when administration mode is on
	//	if(document.getElementById("preview_warning"))
	//		return;
	if(!document.getElementById("top")) return;

	// height of top and bottom + content padding
	var offset = 24 + 44 + parseInt(document.getElementById("top").offsetHeight) 
				+ parseInt(document.getElementById("bottom").offsetHeight);
	
	var content = document.getElementById("content");
	if(!content)
		return;

	var screenHeight = getScreenSize("height");
	
	var containerHeight = document.getElementById("container").offsetHeight;
	
	if(containerHeight < screenHeight)
		content.style.height =  (screenHeight - offset) + "px";

}

function mainMenu()
{
	var menu = document.getElementById("main_menu");
	if(!menu) return false;
	var elements = menu.getElementsByTagName("li");
	var menuArray = new Array();
	var j = 0;
	for(var i = 0; i < elements.length; i++)
	{
		if(elements[i].className.indexOf("main") != -1)
		{
			elements[i].onmouseover = function() 
			{
			   this.className += " hover"; 
			}
		}
		elements[i].onmouseout = function() { this.className = this.className.replace(/hover/i,""); }
	}
	preloadImages();
	
	function preloadImages()
	{
		var img1 = new Image();
		img1.src = "/images/menu/parties_o.gif";
		var img2 = new Image();
		img2.src = "/images/menu/clubs_o.gif";
		var img3 = new Image();
		img3.src = "/images/menu/parties_o.gif";
		var img4 = new Image();
		img4.src = "/images/menu/records_o.gif";
		var img5 = new Image();
		img5.src = "/images/menu/texts_o.gif";
		var img6 = new Image();
		img6.src = "/images/menu/forum_o.gif";
	}
}

function setNotActiveLinks()
{
	var links = document.getElementsByTagName("a");
	for(var i = 0; i < links.length; i++)
		if(links[i].href.slice(-1) == "#")
			links[i].onclick = function() 
			{ 
				alert("Przepraszamy, opcja nie jest jeszcze dost\u0119pna :(\nZapraszamy wkr\u00F3tce");
				return false;
			}
}

function setBlankImages()
{
	var images = document.getElementsByTagName("img");
	for(var i = 0; i < images.length; i++)
	{
		if(!images[i].complete)
			setDefaultImage(images[i]);
		else if(typeof images[i].naturalWidth != "undefined" && images[i].naturalWidth == 0)
			setDefaultImage(images[i]);
	}
}

function setDefaultImage(img)
{
	var pattern = /(.*)img=(.*)/i;
	img.src = img.src.replace(pattern,"$1img=/images/no_photo.jpg");
}

/*=============================================================================
    CALENDAR
==============================================================================*/
function calendarAjax()
{
	var next = document.getElementById("calendar_next");
	var prev = document.getElementById("calendar_prev");
	
	if(!next)
		return;

	next.onclick = getResults;
	prev.onclick = getResults;
	
	// hilight rows
	var elements = document.getElementById("calendar").getElementsByTagName("tbody").item(0).getElementsByTagName("a");
	var days = document.getElementById("calendar").getElementsByTagName("thead").item(0).getElementsByTagName("th")
	for(var i = 0; i < elements.length; i++)
	{
		elements[i].parentNode.positionNumber = position(elements[i].parentNode);
		elements[i].parentNode.onmouseover = hilightDay;
		elements[i].parentNode.onmouseout = normalizeDay;
	}
	
	function hilightDay()
	{
		days[this.positionNumber].className += " hilight";
	}
	function normalizeDay()
	{
		days[this.positionNumber].className = days[this.positionNumber].className.replace("hilight","");
	}
	
	function position(element)
	{
		var siblings = element.parentNode.getElementsByTagName(element.nodeName);
		for( var i = 0; i < siblings.length; i++ )
			if(siblings[i] == element)
				return i;
	}
	
}

function getResults()
{
	calendarLayer(true);
	
	var url  = "/portlets/calendar.xml" + this.search + "&media=ajax";

	// ajax object
	var req;
	if(window.XMLHttpRequest)
	{
		req = new XMLHttpRequest();
	}
	else if(window.ActiveXObject)
	{
		req = new ActiveXObject("Microsoft.XMLHTTP");
	}
	
	// if browser doesn't support ajax send normal request
	if(!req)
	{
		return true;
	}
	
	req.open("GET", url , true );
	
	// process function
 	req.onreadystatechange=function()
 	{
 		if (req.readyState == 4 && req.status == 200) 
		{
			document.getElementById("calendar").innerHTML = req.responseText;
			calendarAjax();
			calendarLayer(false);
		}
	}
	
	// send request
	req.send(null);
	
	return false;
}

function calendarLayer(status)
{
	var calendar = document.getElementById("calendar");
	var layerId = "calendar_layer";
	var layer = status ? document.createElement("div") : document.getElementById(layerId);
	if(status)
	{	
		layer.id = layerId;
		calendar.appendChild(layer);
		layer.style.width = layer.parentNode.offsetWidth + "px";
		layer.style.height = layer.parentNode.offsetHeight + "px";
		var opacity = 40;
		layer.style.opacity = opacity/100;
		layer.style.filter = "alpha(opacity="+opacity+")";
	}
	else if(layer)
	{
		layer.parentNode.removeChild(layer);
	}
}

/*=============================================================================
    ADD MULTIPLE EVENTS
==============================================================================*/
function addEvent(obj, evType, fn)
{
	if(obj.addEventListener)
	{
		obj.addEventListener(evType, fn, false); 
		return true;
	}
	else if (obj.attachEvent)
	{
		var r = obj.attachEvent('on'+evType, fn);
		return r;
	}
	else 
	{
		return false;
	}
}

function ShowMMedia(no)
{
	return false;
}

function run()
{
	setTimeout(resizeDoc,50);
	mainMenu();
	calendarAjax();
//	setNotActiveLinks();
	setBlankImages();
} 

addEvent(window, "load", run);

/* cookies */
function getCookie(name)
{
	var arg	= name + '=';
	var alen = arg.length;
	var	clen =document.cookie.length;
	var i = 0;
	while (i<clen)
	{
		var j = i + alen;
		if (document.cookie.substring(i,j)==arg) return getCookieVal(j);
		i = document.cookie.indexOf(" ",i) + 1;
		if (i==0) break;
	};
	return null;
}

function setCookie(name,value,path,expires)
{
	str = name + "=" + value;
	if (expires) str += " ;expires="+expires;
        if (path) str += " ;path="+path;
	document.cookie = str;
}

function getCookieVal(offset)
{
	var endstr = document.cookie.indexOf(";", offset);
	if (endstr==-1) endstr = document.cookie.length;
	return unescape(document.cookie.substring(offset,endstr));
};

function delCookie(name)
{
	if (getCookie(name))
    	document.cookie = name + "=; expires=Thu, 01-Jan-70 00:00:01 GMT";
}

// render
function setOpacity(el, o)
{
	el.style.opacity = o/100;
	el.style.filter = "alpha(opacity="+o+")";
}