﻿var docHeight = "";
var docWidth = "";
var reloadOnMapChange = 1;
var mmap = "";

function xmlhttpPost(strURL,query,callback,destDiv) {
    var xmlHttpReq = false;
            
    strURL = live_url + strURL;        
    
    var self = new Object();
        
    if (window.XMLHttpRequest) {
        self.xmlHttpReq = new XMLHttpRequest();
    }
    // IE
    else if (window.ActiveXObject) {
        self.xmlHttpReq = new ActiveXObject("Microsoft.XMLHTTP");
    }

    self.xmlHttpReq.open('POST', strURL, true);
    self.xmlHttpReq.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded;charset=utf-8');
    self.callback = callback;
    //alert(self.callback+" "+destDiv);
    self.destDiv = destDiv;    
    self.xmlHttpReq.onreadystatechange = function() {
    	//alert(self.destDiv+" "+self.xmlHttpReq.readyState);
        if (self.xmlHttpReq.readyState == 4) {        	
        	
        		if (self.destDiv && document.getElementById(self.destDiv))
        			document.getElementById(self.destDiv).innerHTML = self.xmlHttpReq.responseText;
        		else
        		if (self.callback)
            	self.callback(self.xmlHttpReq.responseText);                        
        }
    }
    self.xmlHttpReq.send(query);
}

function loadToDiv(strURL,query,destDiv) {
	xmlhttpPost(strURL,query,'',destDiv);	
}

function jsEval(s)
{		
	//q = "mmap.minimap_slaveSetSize(583,859);";	
	//alert(s+" "+q);
	//alert(s.length+" "+q.length);
	//alert(s[0]);
	eval(s[0]);
}

function traziText()
{	
	var word = document.getElementById("searchText").value;	
  qstr = 'appid=3295c76acbf4caaed33c36b1b5fc2cb1&type=text&sub='+selectedSub+'&munic='+selectedMunic+'&mainp='+selectedMainp+'&prov='+selectedProv+'&dist='+selectedDist+'&naziv=' + word;  // NOTE: no '?' before querystring      
  if (selectedBound.xMin)
  	qstr += "&xMin="+selectedBound.xMin+"&xMax="+selectedBound.xMax+"&yMin="+selectedBound.yMin+"&yMax="+selectedBound.yMax;  
	xmlhttpPost("text.php",qstr,updateSearchBox);	
}

function traziLokFunc()
{	
	var word = document.getElementById("searchLocText").value;
  qstr = 'appid=3295c76acbf4caaed33c36b1b5fc2cb1&type=loc&naziv=' + word;  // NOTE: no '?' before querystring        
	xmlhttpPost("text.php",qstr,updateSearchLocBox);	
}

function trazi()
{		
	var obj = document.getElementById("searchRez");
	obj.style.height = "10px";
	obj.style.display = "block";
	obj.style.visibility = "visible";
	obj.innerHTML = "searching...";
	
	var traziLokacije = document.getElementById("tipPretrageLokacije");
	
	if (traziLokacije && traziLokacije.checked)
		traziLok();
	else
		traziText();
}

function traziLoc()
{	
	var obj = document.getElementById("searchLocRez");
	obj.style.height = "10px";
	obj.style.display = "block";
	obj.style.visibility = "visible";
	obj.innerHTML = "searching...";
	/*
	if (map)
		map.clear();
	*/
	clearCat();
	
	traziLokFunc();	
}


function hideSearchRez()
{
	if (document.getElementById("searchRez"))
	document.getElementById("searchRez").style.display = "none";	
	var traziLokacije = document.getElementById("tipPretrageLokacije");
	//if (traziLokacije && traziLokacije.checked)
	//map.clear();
}

function hideSearchLocRez()
{
	document.getElementById("searchLocRez").style.display = "none";	
	//map.clear();
}


function updateSearchBox(str){				

	  var obj = document.getElementById("searchRez");	  	  
	  if (!obj) return;
	  var h = 200;
	  if (!str || str == "&error=invalid_name" || str == "&error=&error=")
	  {
	  	rez = "no result";
	  	window.setTimeout(hideSearchRez,2000);
	  }
	  else
	  {	  		  	
			
			rez = '<div class="searchList" id="searchList" style="background-color:#ffffff; border:1px solid #999999">'+str+'</div>';			
			rez += '<input type="button" onclick="hideSearchRez()" value="^" style="width:175px;height:15px;"/>';

			obj.style.height = h+"px";											
		}
		
    obj.innerHTML = rez;  
    obj.style.display = "block";
  /*
		if (srch.childNodes.length > 0)
		{
			var fobj = srch.childNodes[0].id.substring(7);
			listSelect(srch.childNodes[0],fobj);
		}*/
				
    obj = document.getElementById("searchList");	  
    if (obj)
    {	   
    obj.style.height = (h-15)+"px";
    obj.style.display = "block";
  	}
}	

function updateSearchLocBox(str){			
	  var obj = document.getElementById("searchLocRez");	  	  
	  if (!str || str == "&error=invalid_name" || str == "&error=&error=")
	  {
	  	rez = "no result";
	  	window.setTimeout(hideSearchLocRez,2000);
	  }
	  else
	  {	  		  	
			
			rez = '<div id="searchLocList" class="searchList" style="width:180px">'+str+'</div>';			
			rez += '<input type="button" onclick="hideSearchLocRez()" value="^" style="width:180px;height:15px;"/>';

			var h = 200;
			obj.style.height = h+"px";		
									
		}
		
		obj.style.width = "185px";
		
    obj.innerHTML = rez;      
    obj.style.display = "block";
        
		var srch = document.getElementById("searchLocList");
		var allids = "";
		var allidsNum = 0;			
			for (i=0; i < srch.childNodes.length; i++)
			{				
				var tmpid = srch.childNodes[i].id;				
				if (tmpid && tmpid.substring(0,7) == "itmlok_")		
				{		
					srch.childNodes[i].loc = true;
					allids += tmpid.substring(7)+",";
					allidsNum++;				
				}
			}		
		if (allids)		
		{
			allids = allids.substring(0,allids.length-1);								
			map.showSubject(allids);
			if (allidsNum == 1)
			listSelect(srch.childNodes[0],"");
		}
			
    obj = document.getElementById("searchLocList");	  	   
    obj.style.height = (h-15)+"px";
    obj.style.display = "block";
    
}	

function updateLanguage(str){				
	  var jezik = str.split("%");	
	  
	  var len = (jezik.length-1)/3;
	  //alert(jezik.length+"  "+len);
	  //alert(jezik[2]+" "+jezik[3]);
	  var obj;	
	  for (i = 0; i < len; i++)
		{									
			if (jezik[i*3+2] == "1")
			{			 	
				obj = document.getElementById("txt_"+jezik[i*3]);								
				if (obj)
				{
					if (obj.value)
						obj.value = jezik[i*3+1];
					else
	  				obj.innerHTML = jezik[i*3+1];	  			
	  		}
	  	}
	  	else
	  		{
	  			obj = document.getElementById("txt_"+jezik[i*3]);					  				  			
	  			
	  			if (obj && obj.title)  
	  					obj.title = jezik[i*3+1];	  					  			
	  		}
		}		
}	

function setLang(lang)
{	
	var currentTime = new Date();	
	xmlhttpPost("get_lang.php","lang="+lang+"&rand="+currentTime.getTime(),updateLanguage);
}

function dummy() {};
	
function	maxMinMap()
	{
		var doc = document.getElementById("rightCont");		
		
		if (doc.style.display == "none")
		{			
			doc.style.display = "block";			
			var doc = document.getElementById("leftCont");					
			doc.style.marginRight = "212px";
			
		}
		else
		{
			doc.style.display = "none";			
			var doc = document.getElementById("leftCont");		
			doc.style.marginRight = "0px";
		}
		
		
	}
	
      
function srediga(obj)
{
	map.getContainer().focus();	
	obj.focus();		
}

function mapSelect(obj)
{	
	if (reloadOnMapChange)
	{
		var loc = obj.value;
		if (loc == "hrv")
			loc = "hrvatska";
		window.location.href = "http://www.kartegradova.com/"+loc;
	}
	else
		map.getMap(obj.value);
	
}

function themeSelect(obj)
{	
	//document.getElementById("imeKarte").innerHTML = obj.options[obj.selectedIndex].innerHTML;
	map.setTheme(obj.value);
	xmlhttpPost("set_theme.php","theme="+obj.value,dummy);
}

function setMapInfoFromId(id)
{	
	var karteList = document.getElementById("karteList");	
	for (i=0; i < karteList.length;i++)
	if (karteList.options[i].value == id)
	{
		karteList.selectedIndex = i;
		document.getElementById("imeKarte").innerHTML = karteList.options[i].innerHTML;
		break;
	}	
	if (trazi_tekst)
	{
		trazi_tekst = 0;
		trazi();
	}
}

function listItemOver(obj)
{
	if (!obj || !obj.parentNode) return;
	if (obj.parentNode.selectedItem == obj) return;	
	obj.className = "searchItemHover";
}

function listItemOut(obj)
{
	if (!obj || !obj.parentNode) return;
	if (obj.parentNode.selectedItem == obj) return;
	obj.className = "searchItem";
}

function degToRad(val)
{
	return val * (Math.PI/180);
}

function convertToMerc(latitude,longitude)
{
	var obj = new Object();
	var con = 0.0818191908426214943*Math.sin(latitude*0.017453292519943295);
	obj.x = 6378137.0*(longitude*0.017453292519943295-0*0.017453292519943295);
	obj.y = 6378137.0*Math.log(Math.tan(0.5*(1.570796326794896619-latitude*0.017453292519943295))/Math.pow((1.0-con)/(1.0+con), 0.040909595421310747));
	return obj;
}

function listSelect(obj,params)
{	
	var val = params.split(';');				
	var selstreet = document.getElementById('fn_selstreet');
	if (selstreet && val[2])
  selstreet.value = val[2];
  selectedStreetName = obj.innerHTML;
	clearCat();
	if (obj.parentNode.selectedItem != obj)
	{
	
	if (obj.parentNode.selectedItem)
			obj.parentNode.selectedItem.className = "searchItem";
	
	obj.parentNode.selectedItem  = obj;		
	obj.className = "searchItemSelected";		
	obj.params = params;
	}				
	if (val[3]) setDropDown2("searchSel6",val[3],searchSelect6);				
	if (val[4]) setDropDownLookInArray2("searchSel5",val[4],searchSelect5);			
	//if (val[5]) setDropDown2("searchSel4",val[5],searchSelect4);		
	if (val[6]) setDropDown2("searchSel3",val[6],searchSelect3);	
	if (val[7]) setDropDown2("searchSel2",val[7],searchSelect2);
	
	if (obj.loc)
	{				
		if (params)
			map.showSubject(params);		
	}
	else
	{						
		var c = convertToMerc(val[0],val[1]);
		map.getMap("test5",c.x,c.y,2500,true)
		//map.modifyObjectsColor("rd"+val[0]);
	}	
	locationUpdate();
}

function searchKeyPress(e)
{		
	keynum = 0;
	if(window.event) // IE
	{
		keynum = window.event.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}		
	if (keynum == 13) trazi();
}

function searchLocKeyPress(e)
{		
	keynum = 0;
	if(window.event) // IE
	{
		keynum = window.event.keyCode;
	}
	else if(e.which) // Netscape/Firefox/Opera
	{
		keynum = e.which;
	}		
	if (keynum == 13) traziLoc();
}



function ime_karte(id)
{
	var obj = new Object();
	switch(id)
	{	
	case 'zagreb':
		obj.hr = "Zagreba";
		obj.eng = "Zagreb";
		break;
	case 'rijeka':
		obj.hr = "Rijeke";
		obj.eng = "Rijeka";
		break;		
	case 'split':
		obj.hr = "Splita";
		obj.eng = "Split";
		break;
	case 'osijek':
		obj.hr = "Osijeka";
		obj.eng = "Osijek";
		break;							
	case 'pula':
		obj.hr = "Pule";
		obj.eng = "Pula";
		break;								
	case 'zadar':
		obj.hr = "Zadra";
		obj.eng = "Zadar";
		break;						
	case 'sibenik':
		obj.hr = "Šibenika";
		obj.eng = "Šibenik";
		break;									
	case 'dubrovnik':
		obj.hr = "Dubrovnika";
		obj.eng = "Dubrovnik";
		break;											
	case 'dubrovnikc':
		obj.hr = "Dubrovnika - Stari grad";
		obj.eng = "Dubrovnik - Old town";
		break;														
	  
}
	return obj;
}

function kodZaUgradnjuCallback(id,w,h,x,y,zoom,locX,locY)
{
		
}

function str_hex(str) {
    var hex='';    
    for (i=0; i < str.length; i++){
        hex += str.charCodeAt(i).toString(16);
    }
    return hex;
}

function hex_str(hex) {
    var str='';        
    
    for (i=0; i < hex.length/2; i++){
        str += String.fromCharCode(parseInt(hex.substring(i*2,i*2+2),16));
    }
    return str.split(";");
}


function linkNaKartuCallback(id,w,h,x,y,zoom)
{
	var obj = document.getElementById('linkNaKartu');
	var r = id+";"+x+";"+y+";"+Math.round(zoom*100);	
	obj.value = "http://www.karteGradova.com/karta"+str_hex(r);
	obj.focus();
	obj.select();
}

function pageLoad()
{		
	getSize();			
	//alert("pero");
	//if (mmap)
	//window.setTimeout(new Function(";	"),1000);
	//map.minimap_SetMaster();
}
function getSize(dontSetMap)
		{
			var docwidth,docheight;
			
			hideSearchRez();
	
			if (window.innerWidth || window.innerHeight){ 
				docwidth = window.innerWidth; 
				docheight = window.innerHeight; 				
			} 
			else
			if (document.body.clientWidth || document.body.clientHeight)
			{ 
				docwidth = document.body.clientWidth; 
				docheight = document.body.clientHeight; 				
			} 
				
				
				
				docWidth  = docwidth;
				docHeight = docheight;
												
				docheight -= 148;
				
				if (docheight > 1000) 
					docheight = 550;				
				
				
				//if (!dontSetMap)
				{
				var obj1 = document.getElementById("flashNavigator");				
				var obj2 = document.getElementById("leftCont");
				var obj3 = document.getElementById("rightCont");
								
				if (obj1)
				obj1.style.height = docheight+"px";	
				}
				
				return docheight;
				//obj3.style.height = docheight+"px";					
				
			}
			
//obj = document.getElementById("kodZaUgradnju");

//obj.value = '<script type="text/javascript" src="http://www.kartegradova.com/mywebmap/flashnavigator.js"></script>\n<div id="karteGradova_karta" style="border:1px solid #C5C5C5;"></div>\n<script type="text/javascript">\n  var map = new flashNavigator("00a03ec6533ca7f5c644d198d815329c", "465", "301");\n  map.getMap("hrv");\n  map.show("karteGradova_karta");\n</script>';
	
function setDisplay(elem,disp)
{
	if (document.getElementById(elem))
	document.getElementById(elem).style.display = disp;
}

function toggleDisplay(elem)
{
	var obj = document.getElementById(elem);
	if (obj.style.display == 'block')
		obj.style.display = 'none';			
	else
		obj.style.display = 'block';
}


var flashObj = "";
var flashN = 0;

function flashBox()
{
	if (flashN == 0) 
	{
		flashObj = "";
		return;	
	}
	if (flashN % 2)
	{
		flashObj.style.borderColor = flashObj.origBorder;		
	}
	else
	{
		flashObj.style.borderColor = "#ff0000";		
	}
	flashN --;
	window.setTimeout(flashBox,100);
}

function flashIt(elem)
{
	var obj = document.getElementById(elem);
	if (obj.style.display != 'block') return;
	obj.origBorder = obj.style.borderColor;	
	flashObj = obj;
	flashN = 5;
	flashBox();
}

var tooltip_obj;
var tooltip_x;
var tooltip_y;
var tooltip_readyToHide = 0;
var ifrRef = "";



function showDelay()
{		
	if (tooltip_readyToHide)
		return;
	if (tooltip_obj)
	{									
		tooltip_obj.showTimer = "";
		tooltip_obj.style.visibility = "hidden";
		tooltip_obj.style.display = "block";									

		if (docWidth && (tooltip_x+tooltip_obj.offsetWidth+5 > docWidth))
			tooltip_obj.style.left = (docWidth-tooltip_obj.offsetWidth-5)+"px";
		else
			tooltip_obj.style.left = tooltip_x+"px";
		if (docHeight && (tooltip_y+tooltip_obj.offsetHeight+5 > docHeight))
			tooltip_obj.style.top = (docHeight-tooltip_obj.offsetHeight-5)+"px";
		else
			tooltip_obj.style.top = tooltip_y+"px";
		tooltip_obj.style.zIndex = 10;					
		if (document.all && !window.opera)
		{
			if (!ifrRef)
			{				
				ifrRef = document.createElement("iframe");									
				ifrRef.src = "javascript:false";
				ifrRef.style.position = "absolute";
				ifrRef.style.width = "1px";
				ifrRef.style.height = "1px";
				ifrRef.border = "1px solid";
				ifrRef.style.display = "none";
				ifrRef.scrolling="no";
				ifrRef.frameborder="0";
				ifrRef.id = "blabla";			
				document.body.appendChild(ifrRef);						
		
			}		
			ifrRef.style.width = tooltip_obj.offsetWidth;
    	ifrRef.style.height = tooltip_obj.offsetHeight;
    	ifrRef.style.top = tooltip_obj.style.top;
    	ifrRef.style.left = tooltip_obj.style.left;
    	ifrRef.style.zIndex = tooltip_obj.style.zIndex - 1;
    	ifrRef.style.display = "block";
  	}
				
		tooltip_obj.style.visibility = "visible";
	}
}

function hideDelay()
{	
	if (tooltip_readyToHide && tooltip_obj)
	{
		if (ifrRef)
			ifrRef.style.display = "none";    
			
		if (tooltip_obj.showTimer)
			window.clearTimeout(tooltip_obj.showTimer);
		tooltip_obj.showTimer = "";
		
		tooltip_obj.style.display = "none";
		tooltip_obj.hideTimer = "";
		tooltip_obj = undefined;
	}
}

function showTooltip(id,ev)
{				
	obj = document.getElementById(id);		
	if (tooltip_obj && obj.id != tooltip_obj.id)
	{								
		if (tooltip_obj.hideTimer)
		window.clearTimeout(tooltip_obj.hideTimer);
		tooltip_obj.hideTimer = "";
		tooltip_readyToHide = 1;
		hideDelay();
	}
	if (tooltip_obj)
	return;
	tooltip_obj = obj;		
	if (!tooltip_obj)
		return;
	if (ev && ev.pageX)
	{
		tooltip_x = ev.pageX-10;
		tooltip_y = ev.pageY-10;
	}
	else
	{
		tooltip_x = window.event.clientX-10;
		tooltip_y = window.event.clientY-10;
	}
	//alert(tooltip_obj+" "+tooltip_x+" "+tooltip_y);
	tooltip_readyToHide = 0;	
	
	tooltip_obj.showTimer = window.setTimeout(showDelay,500);
}

function hideTooltip(ev,now)
{	
	if (!tooltip_obj)
		return;
	tooltip_readyToHide = 1;	
	if (now)
		hideDelay();
	else
		tooltip_obj.hideTimer = window.setTimeout(hideDelay,200);
}

function mouseOverTooltip()
{
	tooltip_readyToHide = 0;
}

function mouseOutTooltip(obj)
{	
	if (tooltip_obj)
	{
		tooltip_readyToHide = 1;
		tooltip_obj.hideTimer = window.setTimeout(hideDelay,200);
	}
}
function pageLoaded()
{	
	map.loaded();
}

function updateEmbedPreview()
{
	setEmbedPreview();
}

function updateMapSize()
{
	var ew = document.getElementById("embed_w");
	var eh = document.getElementById("embed_h");
	
	var valw = parseInt(ew.value);
	var valh = parseInt(eh.value);
	//alert(val);
	if (!valw)
		valw = embed_w_def;	
		
	if (!valh)
		valh = embed_h_def;		
		
		
	ew.value = valw;	
	eh.value = valh;	
	embed_w_def = valw;
	embed_h_def = valh;
	
	setEmbedPreview();
				
	xmlhttpPost("set_embedsize.php","ew="+valw+"&eh="+valh,dummy);
		
}

function setEmbedPreview()
{
	var obj = document.getElementById("show_embed_p");
	if (obj.checked)
	{
		var ew = document.getElementById("embed_w");
		var eh = document.getElementById("embed_h");		
		map.showEmbedPreview(ew.value,eh.value);
	}
	else
	{
		map.showEmbedPreview(0,0);
	}
	return false;
}

function login()
{		
	
	var u = document.getElementById("prijava_user");
	var p = document.getElementById("prijava_pass");	
	
	xmlhttpPost("forms/korisnik/login.php","a=login&u="+u.value+"&p="+p.value,loginCallback);		
}

function logout()
{
	document.getElementById("leftCont").style.marginLeft = "0px";		
	xmlhttpPost("forms/korisnik/login.php","a=logout",loginCallback);			
}

function lostpassword()
{
	var u = document.getElementById("prijava_lostUser");
	var e = document.getElementById("prijava_lostEmail");	
	
	xmlhttpPost("forms/korisnik/login.php","a=lost&u="+u.value+"&e="+e.value,loginCallback);
}

function loginCallback(str)
{		
	if (str == "login")
	{
		//document.getElementById("leftCont").style.marginLeft = "205px";		
  	registered = 1;
  	//	setDisplay("leftBox","block");			
  	setDisplay("setLokBox","none");
		setDisplay("korLokBox","block");
		setDisplay("prijavaBox","none");
		loadToDiv("forms/korisnik/lokacije.php","","korLokBox");	
		loadToDiv("forms/lokacija/step1.php","","setLokBox");	
		loadToDiv("forms/menus/top.php","","topMenu");
		document.getElementById("leftCont").style.marginLeft = "205px";
		setDisplay("leftBox","block");
	}
	else
	if (str == "logout")
	{
		registered = 0;
		setDisplay("korLokBox","none");
		setDisplay("leftBox","none");
		setDisplay("topBox","none");
		loadToDiv("forms/korisnik/lokacije.php","","korLokBox");	
		loadToDiv("forms/lokacija/step1.php","","setLokBox");	
		loadToDiv("forms/menus/top.php","","topMenu");
	}
	else
	if (str == "lost")
	{		
		alert(document.getElementById("txt_genMsg2").value);
		document.getElementById('prijava_lostUser').value = "";
		document.getElementById('prijava_lostEmail').value = "";
		setDisplay("prijavaBox2","none");
		setDisplay("prijavaBox1","block");
		document.getElementById('prijava_user').focus();		
	}
	else		
	{		
		setDisplay("txt_logMsg1","block");
	}
		
}

function showLoginForm()
{
	setDisplay("txt_logMsg1","none");
	setDisplay("prijavaBox","block");
	document.getElementById('prijava_user').focus();
}

function showMojeLokacije()
{	
	document.getElementById("leftCont").style.marginLeft = "205px";											
	document.getElementById("leftBox").style.display = "block";						
	//document.getElementById("setLokBox").style.display = "none";	
	setDisplay("korLokBox","block");
}

function hideMojeLokacije()
{	
	document.getElementById("leftCont").style.marginLeft = "0px";											
	document.getElementById("leftBox").style.display = "none";							
}

