var counter
var hasFocus = true;
var objekat, lokacija = 0, odeljak = 0, str = 0
// Za chat
var backoff = 42;

function $(o){return(document.getElementById(o))}
function $S(o){return(o.style)}
function $A(o,a){return(o.getAttribute(a))}
function addEvt(o,e,f){if(o.addEventListener)o.addEventListener(e,f,true);else o.attachEvent("on"+e, f);}
function removeEvt(o,e,f){if(o.detachEvent)o.detachEvent('on'+e,f);else o.removeEventListener(e,f,false);}
function remove(o){o.parentNode.removeChild(o)}

function replaceHtml(el,html){
var oldEl=typeof el==="string"?$(el):el
/*@cc_on // Pure innerHTML is slightly faster in IE
	oldEl.innerHTML = html
	return oldEl
@*/
var newEl=oldEl.cloneNode(false)
newEl.innerHTML=html
oldEl.parentNode.replaceChild(newEl,oldEl)
return newEl
}

function isInt(s){
	return (s.toString().search(/^[0-9]+$/) == 0);
}

function getStyle(o,s){
	if (o.currentStyle)
		var y = o.currentStyle[s];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(o,null).getPropertyValue(s);
	return y;
}

function trim(str){
str = str.replace(/^\s+/, '');
for (var i = str.length - 1; i >= 0; i--) {
if (/\S/.test(str.charAt(i))) {
str = str.substring(0, i + 1);
break}
}
return str;
}
function isArray(o){return o.constructor == Array}
Function.prototype.bind = function (scope, args) {
args = args || []
scope = scope || window
var fn = this
return function(){return fn.apply(scope, args)}
}
if(!Array.prototype.map){
Array.prototype.map=function(fun){
var len=this.length
if(typeof fun!='function') throw new TypeError()
var res=new Array(len)
var thisp=arguments[1]
for (var i=0;i<len;i++)if(i in this)res[i]=fun.call(thisp,this[i],i,this)
return res
}
}
function SetOpacity(elem, opacityAsInt){
var opacityAsDecimal = opacityAsInt;
if (opacityAsInt > 100) opacityAsInt = opacityAsDecimal = 100;
else if (opacityAsInt < 0) opacityAsInt = opacityAsDecimal = 0;
opacityAsDecimal /= 100;
if (opacityAsInt < 1) opacityAsInt = 1;
elem.style.opacity = opacityAsDecimal;
elem.style.filter = "alpha(opacity=" + opacityAsInt + ")";
}
function oboji(o){
	var coords = $A(o,'coords').split(",").map(Number);
	var loc = o.alt.split(":").map(Number);
	var dim = $("objekat").value.split("x").map(Number);
	if($("rot").checked) dim.reverse();
	//$("status").innerHTML=o.alt+((o.getAttribute("puno")!="0")?" Изграђено! (Објекат "+o.getAttribute("puno")+")":"");
	if (loc[0]+dim[0]>20) return;
	if (loc[1]+dim[1]>20) return;
	for (i = loc[1]; i < loc[1]+dim[1]; i++){
		for (j = loc[0]; j < loc[0]+dim[0]; j++){
			if ($("p"+j+"."+i).getAttribute("puno")!="0") return;
		}
	}
	$("polje").style.display="block";
	$("polje").style.left=coords[0]+"px";
	$("polje").style.bottom=($("mreza").height-coords[7]-10*(dim[1]-1))+"px";
	$("polje").src=$('preview').src;
}
function brisi(r){
	if(r && $('obj'+r)) {
		var o = $('obj'+r);
		$("objekti").removeChild(o);
		$("p"+r).setAttribute("puno","0");
	}
	opcije_grada(grad_id);
	prozor_close();
}
function gradi(r){
	function prikazi(){
		//$("p"+r[1]).setAttribute("tiptitle",$A($("p"+r[1]),"oldtitle"));
		$("obj"+r[1]).src="slike/zgrade/"+r[2]+".png";
		opcije_grada(grad_id);
	}
	if(r){
		if(typeof(r) == 'string'){
			greska(r);
			return;
		}
		var coords = $A($("p"+r[1]),'coords').split(",").map(Number);
		if(!$("obj"+r[1])){
			var newObj = document.createElement('img');
			newObj.id="obj"+r[1];
			newObj.style.left=coords[0]+"px";
			newObj.style.bottom=(480-coords[coords.length-1])+"px";
			newObj.style.zIndex = r[1];
			$("objekti").appendChild(newObj);
			newObj.src="slike/zgrade/"+r[2]+"_const.png";
		}
		$("p"+r[1]).setAttribute("puno",r[0]);
		//$("p"+r[1]).setAttribute("oldtitle",$A($("p"+r[1]),"tiptitle"));
		$("p"+r[1]).setAttribute("tiptitle",r[4]);
		setTimeout(prikazi, r[3]*1000*60);
		checkStatus();
		opcije_grada(grad_id);
		prozor_close();
	} else {greska("Немате довољно ресурса!")}
}
function izgradnja(r){
	if (r==''){
		prozor_close();
		return;
	}
	$("loader").style.display="none";
	replaceHtml($("sadrzaj"),r);
	clearTimeout(counter);
	init_CountDown();
	sliderInit();
	tooltip.init();
}
function online_igraci(r){
	if ($("online")) replaceHtml($("online"),r);
}
function izaberi(o){
	var coords = $A(o,'coords').split(",").map(Number);
	$("mreza").style.display="none";
	loader();
	lokacija = o.alt;
	objekat = o.getAttribute("puno");
	if (objekat != "0"){
		x_prozor(lokacija,objekat,odeljak,str,izgradnja);
	} else {
		x_prozor(lokacija,izgradnja);
	}
}
function show(id){SetOpacity($(id),35)}
function hide(id){SetOpacity($(id),0)}
function profil(id){objekat=44;lokacija=id;prozor_refresh()} //Prikazuje profil igraca
function select_odeljak(o){odeljak=o;prozor_refresh();return false}
function prozor_refresh(r){
if(!r)r='';
if(r!=''){
greska(r);
}else{
if (typeof(lokacija) == 'undefined' || typeof(objekat) == 'undefined' || (objekat == 0 && typeof(lokacija) == 'undefined' )) {
	prozor_close();
}else{
	loader();x_prozor(lokacija,objekat,odeljak,str,izgradnja);
}
}
}
function prozor_close(){
	$('popup').style.display='none';if($('mreza'))$('mreza').style.display='block';replaceHtml($("sadrzaj"),'');
	lokacija=0;objekat=0;odeljak=0;str=0;
	checkStatus();
}
function precice_refresh(r){
if(typeof(r)=='string'){greska(r);return;}
for (var i = 0; i < 10; i++) {
$('b'+i).parentNode.setAttribute('class','okvir'+((r[i][0]!=0)?5:6))
if(r[i][0]!=0){
$('b'+i).setAttribute('objekat',r[i][0])
$('b'+i).setAttribute('lokacija',r[i][2])
$('b'+i).innerHTML='<img style="width:32px;height:32px;cursor: pointer" title="'+r[i][1]+'" src="slike/zgrade/male/'+r[i][0]+'.png">'
}
}
tooltip.init()
}
function calcage(secs, n1, n2) {
s=((Math.floor(secs/n1))%n2);
if(s<10)s="0"+s;
return s;
}
function CountDown(o) {
var t=new Array()
secs=$A(o,'secs');
if (secs>0){
secs-=1;
o.setAttribute('secs',secs)
d=Math.floor(secs/86400);
secs=secs%86400;
h=Math.floor(secs/3600);
secs=secs%3600;
m=Math.floor(secs/60);
if(m<10)m="0"+m;
secs=secs%60;
s=Math.floor(secs);
if(s<10)s="0"+s;
o.innerHTML=((d>0)?(d+dan+' '):'')+h+":"+m+":"+s;
setTimeout(CountDown.bind(null, [o]), 1000);// else prozor_refresh();
} else if($A(o,'onfinish'))setTimeout('eval("'+$A(o,'onfinish')+'")',1000);
}
function init_CountDown(){
var e=document.getElementsByTagName("span");
var o;
for(var i=0;i<e.length;i++){
o=e[i];
if($A(o,"rel")){
var t=$A(o,"rel");
if((t.indexOf("counter")!=-1)||t.toLowerCase()=="counter"){
if($A(o,"secs")>0){o.setAttribute("rel","");CountDown(o);}}}}}
function loop(i){return(i<0)?(i+128):(i>127)?(i-128):i}
function drzava_pan(dx,dy){
sila=($('sila'))?$('sila').value:1;
x=parseInt($('polje_x').value)+dx;
if(x>127)x-=128;
if(x<0)x+=128;
y=parseInt($('polje_y').value)+dy;
if(y>127)y-=128;
if(y<0)y+=128;
x_drzava_show(x,y,sila,drzava_refresh);
if($('arialview')){$('arialview').style.left=(x+y-4)+"px";$('arialview').style.top=(64+Math.round((y-x)/2)-3)+"px";}
$('polje_x').value=x;
$('polje_y').value=y;
xx=-1;
yy=-1;
for (var i = 0; i <= 8; i++){
if($('home_x') && $('home_x').value == loop(x-4+i)) xx=i;
$("x"+i).innerHTML=loop(x-4+i);
}
for (var i = 0; i <= 6; i++){
if($('home_y') && $('home_y').value == loop(y-3+i)) yy=i;
$("y"+i).innerHTML=loop(y-3+i);
}
}
function drzava_home(x,y){
sila=($('sila'))?$('sila').value:1;
if(x>127)x-=128;
if(x<0)x+=128;
if(y>127)y-=128;
if(y<0)y+=128;
x_drzava_show(x,y,sila,drzava_refresh);
if($('arialview')){$('arialview').style.left=(x+y-4)+"px";$('arialview').style.top=(64+Math.round((y-x)/2)-3)+"px";}
$('polje_x').value=x;
$('polje_y').value=y;
xx=-1;
yy=-1;
for (var i = 0; i <= 8; i++){
if($('home_x') && $('home_x').value == loop(x-4+i)) xx=i;
$("x"+i).innerHTML=loop(x-4+i);
}
for (var i = 0; i <= 6; i++){
if($('home_y') && $('home_y').value == loop(y-3+i)) yy=i;
$("y"+i).innerHTML=loop(y-3+i);
}
}
function drzava_refresh(r){
slika=$("xy00")
polje=$("mxy00")
if($('home_ico'))$('home_ico').style.display='none';
for (var y = 0; y <= 6; y++){
for (var x = 0; x <= 8; x++){
if(r[0][(y*9+x)])slika.src="slike/putevi3d/"+r[0][(y*9+x)]+".gif";
o=polje
o.removeAttribute('tiptitle');
v=r[1][(y*9+x)];
if(v!='')o.setAttribute('title',v);
o.href = ($('arialview'))?'javascript:drzava_crtaj('+x+','+y+')':'javascript:opcije_grada('+r[2][(y*9+x)]+')';
if($('home_ico') && grad_id==r[2][(y*9+x)]){
$('home_ico').style.left=(x+y)*50+41+'px';
$('home_ico').style.top=400-(6+x-y)*25+'px';
$('home_ico').style.display='block';}
slika=slika.nextSibling
polje=polje.nextSibling
}}
tooltip.init()}
function drzava_crtaj(x,y){
sila=($('sila'))?$('sila').value:1;
x+=parseInt($('polje_x').value)-4;
y+=parseInt($('polje_y').value)-3;
x=loop(x);
y=loop(y);
x_crtaj(x,y,$('olovka').value,sila,function(){x_drzava_show($('polje_x').value,$('polje_y').value,$('sila').value,drzava_refresh)});
}

function addOption(o){
var elOptNew = document.createElement('option')
c=o.previousSibling
b=c.previousSibling
a=b.previousSibling
if(c.value==0 || !isFinite(c.value))return
var co1=b.options[b.selectedIndex]
elOptNew.text = co1.text+' - '+c.value+' kom'
elOptNew.value = b.value+':'+c.value
c.value=0
try{o.nextSibling.add(elOptNew, null)}catch(ex){o.nextSibling.add(elOptNew)}
sumOption(a,o.nextSibling)
}
function remOption(o){
var i
for(i= o.length-1;i>=0;i--)if(o.options[i].selected)o.remove(i)
sumOption($('transport'),o)
}
function sumOption(o,l){
var i,sum=0
var co=o.options[o.selectedIndex]
var kap=$A(co,'kapacitet')
for (i=l.length-1;i>=0;i--)sum+=parseInt(l.options[i].value.split(":")[1])
$('kapacitet_slanje').innerHTML=(sum>kap)?'<font color="red">'+sum+'/'+kap+'</font>':sum+'/'+kap
$("list_submit").disabled=(sum>kap)?true:false;
}
function opcije_grada(polje){
if($('grad_info'))x_grad_info(polje,function(r){$('grad_info').innerHTML=r;init_CountDown();tooltip.init()})
if($('grad_opcije'))x_grad_opcije(polje,function(r){$('grad_opcije').innerHTML=r;init_CountDown();tooltip.init()})
}

function set_putevi_izbor(x,y){
$('putevi_izbor').style.left=x+'px';
$('putevi_izbor').style.bottom=y+'px';
$('putevi_izbor').style.display='block';
}

function hide_putevi_izbor(){
$('putevi_izbor').style.display='none';
}

function update_status(r){
if(!r||typeof(r)=='undefined'){
location.reload(true)
return
}
var l=r.split(',')
if($('status')){
var stat=$('status').getElementsByTagName('td')
for(var i=0;i<4;i++){
stat[i].innerHTML=Math.floor(l[i])
}}
if($('status1')){
var stat=$('status1').getElementsByTagName('td')
for(var i=0;i<12;i++){
stat[i].innerHTML=Math.floor(l[i+4])
}}
if($('nove_poruke')){
$('nove_poruke').innerHTML=l[16]
$('nove_poruke').previousSibling.src=(l[16]>0)?'slike/new_ico.png':'slike/mail_ico.png'
$('nove_poruke').parentNode.style.fontWeight=(l[16]>0)?'bold':'normal';
if(l[16]>0&&!hasFocus)blinkTitle(l[16]+nova_poruka_info, 3);
}}

function proveri_status(){
var http = false;
if(navigator.appName == "Microsoft Internet Explorer") {
	http = new ActiveXObject("Microsoft.XMLHTTP");
} else {
	http = new XMLHttpRequest();
}
http.open("GET", "status.php");
http.onreadystatechange=function() {
	if(http.readyState == 4) {
		update_status(http.responseText);
	}
}
http.send(null);
}

function input_sum(t){
var s=0
o=$(t).getElementsByTagName('input')
for(var i=0;i<o.length;i++) s += parseInt(o[i].value);
return s
}

/*function Prinos(o) {
msecs=$A(o,'vreme');
kol=o.innerHTML;
if (msecs>0){
o.innerHTML=int(kol)+1;
setTimeout(Prinos.bind(null, [o]), msecs);
}
}
function init_Prinos(){
var e = document.getElementsByTagName("span");
var o;
for(var i=0;i<e.length;i++){
o = e[i];
if($A(o,"rel")) {
var t = $A(o,"rel");
if ((t.indexOf("counter") != -1) || t.toLowerCase() == "counter") {
o.setAttribute("rel","");
CountDown(o);}}}}*/

function chat_add() {
	$('chat_submit').disabled=true;
	var line;
	line = $("line").value;
	if (line == "") {
		$('chat_submit').disabled=false;
		return false;
	}
	//odeljak=(odeljak)?odeljak:0;
	//last_id=$('chat').contentWindow.$('chat').firstChild.getAttribute('last_id');
	//x_add_line(line,odeljak,last_id,function(r){$('chat_submit').disabled=false;chat_show(r)});
	$("line").value = "";
	x_add_line(line,odeljak,function(r){$('chat_submit').disabled=false;$('chat').contentWindow.chat_refresh()});
	return false;
}

function izbrisi_poruku(id){
	$('poruka'+id).style.background='#7F7F7F'
	x_dijalog_submit('izbrisi_poruku',id,function(r){remove($('poruka'+id));replaceHtml($('poruka'),'')})
}

// Providnost - Fade
function SetOpacity(elem, opacityAsInt){
var opacityAsDecimal = opacityAsInt;
if (opacityAsInt > 100) opacityAsInt = opacityAsDecimal = 100;
else if (opacityAsInt < 0) opacityAsInt = opacityAsDecimal = 0;
opacityAsDecimal /= 100;
if (opacityAsInt < 1) opacityAsInt = 1; // IE7 bug, text smoothing cuts out if 0
elem.style.opacity = opacityAsDecimal;
elem.style.filter  = "alpha(opacity=" + opacityAsInt + ")";
}
function FadeOpacity(e, fromOpacity, toOpacity, time, fps){
var steps = Math.ceil(fps * (time / 1000));
var delta = (toOpacity - fromOpacity) / steps;
FadeOpacityStep(e, 0, steps, fromOpacity, delta, (time / steps));
}
function FadeOpacityStep(e, stepNum, steps, fromOpacity, delta, timePerStep){
SetOpacity($(e), Math.round(parseInt(fromOpacity) + (delta * stepNum)));
if (stepNum < steps) setTimeout("FadeOpacityStep('" + e + "', " + (stepNum+1) + ", " + steps + ", " + fromOpacity + ", " + delta + ", " + timePerStep + ");", timePerStep);
}
function fadein(e){
$(e).style.display="block";
FadeOpacity(e, 0, 100, 250, 10);
}
function fadeout(e){
$(e).style.display="none";
//FadeOpacity(e, 0, 100, 500, 10);
}

function izaberi_poruku(o){
var sve = o.parentNode.childNodes
for(var i=0,l=sve.length;i<l;i++)sve[i].setAttribute('class','')
o.setAttribute('class','def_poruka')
o.style.color="";
$('poruka').innerHTML='<img src="slike/loader1.gif" style="margin-left:386px">'
x_dijalog_submit('sanduce',$A(o,'rb'),function(r){$('poruka').innerHTML=r})
}

function izaberi_teh(o){
n=$('naucnik')
n.style.width=($A(o,'n0')*13)+'px'
n.firstChild.style.width=($A(o,'n')*13)+'px'
n.nextSibling.innerHTML=$A(o,'n')+'/'+$A(o,'n0')
n.parentNode.setAttribute('sel',$A(o,'t'))
$('teh_info').innerHTML='<img src="slike/loader1.gif">'
x_akcija('teh_info',$A(o,'t'),function(r){$('teh_info').innerHTML=r})
}

function oznakeFunkcija(x){
var str='';
if(x==2)
	for(i=0; i<document.izabrani.elements.length; i++){
		if(document.izabrani.elements[i].type=='checkbox'){
			if(document.izabrani.elements[i].checked==true)str+=document.izabrani.elements[i].value+',';
		}
	}
if(x==1)
	for(i=0; i<document.pozicije.elements.length; i++){
		if(document.pozicije.elements[i].type=='checkbox'){
			if(document.pozicije.elements[i].checked==true)str+=document.pozicije.elements[i].value+',';
		}
	}
return str;
}

originalTitle=document.title

function blinkTitle(message, count) {
	blinkingTitle(count, message, true);
}
function blinkingTitle(count, message, blink){
	if(blink){
		document.title=message;
	}else{
		document.title=originalTitle;
		count--;
	}
	if(count>0)blinkTimer=setTimeout("blinkingTitle("+count+",'"+message+"',"+!blink+")",800);
}

function setFocusEvents(){
	active_element = document.activeElement;
	if(/*@cc_on!@*/false){
		document.onfocusout = function() {hasFocus = false;}
		document.onfocusin = function() {hasFocus=true;}
	}else{
		window.onblur = function() {hasFocus = false;}
		window.onfocus = function() {hasFocus=true;}
	}
}

