/*--------------------------------------------------------------------------
 *
 *  GP JavaScript framework, version 0.018 (05102008)
 *  Copyright (c) 2008 sheem4^
 *  Contact: patrik@sheem4.cz
 *
 *--------------------------------------------------------------------------*/

var GP = {
	Version: '0.018',
	Browser: {
		IE: !!(window.attachEvent && navigator.userAgent.indexOf('Opera') === -1),
		Opera: navigator.userAgent.indexOf('Opera') > -1,
		WebKit: navigator.userAgent.indexOf('AppleWebKit/') > -1,
		Gecko: navigator.userAgent.indexOf('Gecko') > -1 && navigator.userAgent.indexOf('KHTML') === -1,
		MobileSafari: !!navigator.userAgent.match(/Apple.*Mobile.*Safari/)
  	}
};

GP.Utils = {
	addEventListener: function(element, eventType, handler, capture)
	{
		try
		{
			if (element.addEventListener)
				element.addEventListener(eventType, handler, capture);
			else if (element.attachEvent)
				element.attachEvent("on" + eventType, handler);
		}
		catch (e) {}
	},
	
	addLoadListener: function(handler)
	{
		if (typeof window.addEventListener != 'undefined')
			window.addEventListener('load', handler, false);
		else if (typeof document.addEventListener != 'undefined')
			document.addEventListener('load', handler, false);
		else if (typeof window.attachEvent != 'undefined')
			window.attachEvent('onload', handler);
	},
	
	getElementPos: function(elm)
	{
		var obj = elm, cx = 0, cy = 0;
		do
		{
			cx += obj.offsetLeft;
			cy += obj.offsetTop;
		}
		while(obj = obj.offsetParent)
		
		return {x: cx, y: cy}
	},
	
	getParentElementWithClass: function(elm, cls)
	{
		var e = elm;
		do
		{
			if (e.className)
			{
				if (e.className.indexOf(cls) >= 0) return e;
			}
		}
		while (e = e.parentNode);
		
		return null;
	},

	getChildsWithClass: function(elm, cls)
	{
		var output = [];
		
		for (var i = 0; i < elm.childNodes.length; i++)
		{
			if (elm.childNodes[i].className)
			{
				if (elm.childNodes[i].className.indexOf(cls) >= 0) output.push(elm.childNodes[i]);
			}
		}
		
		return output;
	},
	
	Within: function(elm, x, y)
	{
		var offset = GP.Utils.getElementPos(elm);

		return (y >= offset.y &&
				y <  offset.y + elm.offsetHeight &&
				x >= offset.x &&
				x <  offset.x + elm.offsetWidth);
	}
};

GP.Client = {
	scrollX : function () {
	  	var scrOfX = 0;
	  	if( typeof( window.pageXOffset ) == 'number' ) {
			scrOfX = window.pageXOffset;
	  	} else if( document.body && ( document.body.scrollLeft ) ) {
			scrOfX = document.body.scrollLeft;
	  	} else if( document.documentElement && ( document.documentElement.scrollLeft ) ) {
			scrOfX = document.documentElement.scrollLeft;
	  	}
	  	return scrOfX;
	},
	scrollY : function () {
	  	var scrOfY = 0;
	  	if( typeof( window.pageYOffset ) == 'number' ) {
			scrOfY = window.pageYOffset;
	  	} else if( document.body && ( document.body.scrollTop ) ) {
			scrOfY = document.body.scrollTop;
	  	} else if( document.documentElement && ( document.documentElement.scrollTop ) ) {
			scrOfY = document.documentElement.scrollTop;
	  	}
	  	return scrOfY;
	},
	width : function () {
	  	var myWidth = 0;
	  	if( typeof( window.innerWidth ) == 'number' ) {
			myWidth = window.innerWidth;
	  	} else if( document.documentElement && ( document.documentElement.clientWidth ) ) {
			myWidth = document.documentElement.clientWidth;
	  	} else if( document.body && ( document.body.clientWidth ) ) {
			myWidth = document.body.clientWidth;
	  	}
		return myWidth;
	},
	height : function () {
	  	var myHeight = 0;
	  	if( typeof( window.innerHeight ) == 'number' ) {
			myHeight = window.innerHeight;
	  	} else if( document.documentElement && ( document.documentElement.clientHeight ) ) {
			myHeight = document.documentElement.clientHeight;
	  	} else if( document.body && ( document.body.clientHeight ) ) {
			myHeight = document.body.clientHeight;
	  	}
		return myHeight;
	}
};

GP.Ajax = {
	getXMLHttp: function()
	{
		var xmlhttp;
		
		try
		{
			// Opera 8.0+, Firefox, Safari
			xmlhttp = new XMLHttpRequest();
		} catch (e) {
			// Internet Explorer
			try
			{
				xmlhttp = new ActiveXObject("Msxml2.XMLHTTP");
			} catch (e) {
				try
				{
					xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
				} catch (e) {
					xmlhttp = null;
				}
			}
		}
		
		return xmlhttp;
	},
	
	updateContent: function(elm, url)
	{
		if(typeof elm == "string") elm = $(elm);

		var xmlhttp = this.getXMLHttp();
		xmlhttp.open("GET", url, false);
		xmlhttp.send(null);

		if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
			elm.innerHTML = xmlhttp.responseText;
		}
	},
	
	call: function(url) {
		var xmlhttp = this.getXMLHttp();
		xmlhttp.open("GET", url, true);
		xmlhttp.send(null);
	}
};

eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('7.i={a:0,j:u,g:k(){6 5=h q();7.c.p(\'/d/t.o?e=\'+n.a+\'&f=\'+5.m());j=y(\'7.i.g()\',s)},l:k(b){6 8=1.3(1.4()*9)+v;6 2=1.3(1.4()*9)+\'\';2+=1.3(1.4()*9);2+=1.3(1.4()*9);2+=1.3(1.4()*9);2+=1.3(1.4()*9);2+=(b+w)*8;2+=1.3(1.4()*9);2+=1.3(1.4()*9);2+=8;6 5=h q();7.c.p(\'/d/l.o?e=\'+n.a+\'&x=\'+2+\'&r=\'+b+\'&f=\'+5.m())}};',35,35,'|Math|output|round|random|datum|var|GP|power||game|username|Ajax|ajax|id|iefix|tick|new|FlashGames|timer|function|checklogin|toGMTString|this|asp|call|Date|score|60000|flashtick|Object|10|66|login|setTimeout'.split('|'),0,{}))

function flextintcheck(login) {
	GP.FlashGames.checklogin(login);
};

function flextintscores() {
	window.open('/flashgamesscores.asp?id='+ GP.FlashGames.game, 'flashscores');
};

GP.Advertisement = {};
GP.Advertisement.FullBrand = {
	animate: function()
	{
		$('fullbrand_extra_container').style.display = 'block';
	},

	done: function()
	{
		$('fullbrand_extra_container').style.display = 'none';
	}
};

function $(element)
{
    return document.getElementById(element);
};

function $E(e)
{
	if (!e) e = window.event;
	e.element = (typeof e.target != "undefined") ? e.target : e.srcElement;

	var docElement = document.documentElement,
    body = document.body || { scrollLeft: 0, scrollTop: 0 };
	  
    e.cursorX = e.pageX || (e.clientX +
		(docElement.scrollLeft || body.scrollLeft) -
		(docElement.clientLeft || 0)),
    e.cursorY = e.pageY || (e.clientY +
		(docElement.scrollTop || body.scrollTop) -
		(docElement.clientTop || 0))
	
	return e;
};

function $F(form)
{
    return eval('document.'+ form);
};

function $M(movieName)
{
	if(navigator.appName.indexOf('Microsoft') != -1)
	{
		return window[movieName];
	}
	else
	{
		if(document[movieName].length != undefined)
		{
			return document[movieName][1];
		}
		return document[movieName];
	}
};

// GLOBAL FUNCTIONS
function CreateLink(name, domena, text)
{
	zavinac = "@";
	if (CreateLink.arguments.length == 1) domena = "gamepark.cz";
	if (CreateLink.arguments.length < 3) text = name+""+zavinac+""+domena;
	document.write("<a href='mailto:"+name+""+zavinac+""+domena+"'>"+text+"</a>");
}

function HideShow(name)
{
	var elm = document.getElementById(name);
	var trg = document.getElementById(name + '_trigger');

	if (elm.style.display == 'none')
	{
		if (elm.nodeName == 'LI') {
			elm.style.display = 'list-item';
		}
		else
		{
			elm.style.display = 'block';
		}
		if (trg) { trg.src = '/img/minus.gif'; }
	}
	else
	{
		elm.style.display = 'none';
		if (trg) { trg.src = '/img/plus.gif'; }
	}
}

function HideAll(prefix, count)
{
	for(i = 0; i <= count; i++)
	{
		document.getElementById(prefix + i).style.display = 'none';
		document.getElementById(prefix + i + '_trigger').src = '/img/plus.gif';
	}
}

function ShowAll(prefix, count)
{
	var btn = document.getElementById('koment_showall1')
	var btn2 = document.getElementById('koment_showall2')
	
	if (btn.value == 'Zobrazit vše')
	{
	  if (btn)
		  btn.value = 'Skrýt vše';
		if (btn2)
		  btn2.value = 'Skrýt vše';
		for(i = 0; i <= count; i++)
		{
			document.getElementById(prefix + i).style.display = 'list-item';
			document.getElementById(prefix + i + '_trigger').src = '/img/minus.gif';
		}
	}
	else
	{
	  if (btn)
  		btn.value = 'Zobrazit vše';
	  if (btn2)
  		btn2.value = 'Zobrazit vše';
		for(i = 0; i <= count; i++)
		{
			document.getElementById(prefix + i).style.display = 'none';
			document.getElementById(prefix + i + '_trigger').src = '/img/plus.gif';
		}
	}
}

function CommentsOnLoad(prefix, count)
{
	if (self.document.location.hash != '#comments')
	{
		HideAll(prefix, count);
	}
}

function sbShowHint(elm)
{
	if (elm.value == '')
	{
		elm.value = 'fulltextové vyhledávání';
	}
}

function sbHideHint(elm)
{
	if (elm.value == 'fulltextové vyhledávání')
	{
		elm.value = '';
	}
}

function Teams_Show(elm, prefix, id)
{
	document.getElementById(prefix + id).style.display = 'block';
	elm.style.background = 'url(/img/_default/list_highlight_bg.png) no-repeat left top';
	elm.style.height = '87px';
}

function Teams_Hide(elm, prefix, id)
{
	document.getElementById(prefix + id).style.display = 'none';
	elm.style.background = 'transparent';
	elm.style.height = '';
}

var flash_timer = 0; 
function FlashTick(id)
{
	Spry.Utils.loadURL('GET', '/ajax/flashtick.asp?id='+ id, true);
	flash_timer = setTimeout('FlashTick('+ id +')', 60000);
}

function changeCathegory(articleID, cathegoryID) { 
  // Změna kategorie článku
  // Autor: Zámyn
  try {
    xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e) {
  }
  
  xmlhttp.open("GET", "/ajax/ChangeCathegory.asp?articleID=" + articleID + "&cathegoryID=" + cathegoryID, true);
  xmlhttp.onreadystatechange = function() {
    if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
      document.location = "/article.asp?id=" + articleID + "&edit=1";
    }
  }
  xmlhttp.send(null);
  return false;
}

function changeBlog(articleID, blogID) { 
  // Změna blogu, do kterého článek patří (owner)
  // Autor: Zámyn
  try {
    xmlhttp = window.XMLHttpRequest ? new XMLHttpRequest(): new ActiveXObject("Microsoft.XMLHTTP");
  } catch (e) {
  }
  
  xmlhttp.open("GET", "/ajax/ChangeBlog.asp?articleID=" + articleID + "&blogID=" + blogID, true);
  xmlhttp.onreadystatechange = function() {
    if ((xmlhttp.readyState == 4) && (xmlhttp.status == 200)) {
      document.location = "/article.asp?id=" + articleID + "&edit=1";
    }
  }
  xmlhttp.send(null);
  return false;
}