var ns4 = (document.layers)? true:false
var ie4 = (document.all)? true:false
var opera = (window.opera)?true:false
var gecko = null;

var domain = document.domain;

var main_tab_states = new Array();
main_tab_states[0] = new Array('main', true);
main_tab_states[1] = new Array('about', false);
main_tab_states[2] = new Array('help', false);
main_tab_states[3] = new Array('feedback', false);
main_tab_states[4] = new Array('faq', false);

var side_tab_states = new Array();
side_tab_states[0] = new Array('search', true);
//side_tab_states[1] = new Array('layers', false);
side_tab_states[1] = new Array('legend', false);

var toolbox_states = new Array();
toolbox_states[0] = new Array('zoomin', false, true);
toolbox_states[1] = new Array('zoomout', false, false);
toolbox_states[2] = new Array('pan', false, false);
toolbox_states[3] = new Array('info', false, false);
toolbox_states[4] = new Array('report', false, false);
toolbox_states[5] = new Array('full_extent', false, true);
toolbox_states[6] = new Array('back', false, false);
toolbox_states[7] = new Array('forward', false, false);
toolbox_states[8] = new Array('bookmark', false, true);

function teh_sux () {
/*
    for(var i =0; i<1337; i++){
            alert('aa');
        }
*/
}

function switchMainTab (tab_name) {
    for(var i=0; i < main_tab_states.length; i++){
        if(main_tab_states[i][1] == true && tab_name != main_tab_states[i][0]){
            document.getElementById('mtab_'+main_tab_states[i][0]).className='';
            document.getElementById('tabc_'+main_tab_states[i][0]).style.display='none';
            main_tab_states[i][1] = false;
        }else if(tab_name == main_tab_states[i][0]){
            document.getElementById('mtab_'+main_tab_states[i][0]).className='sel';
            document.getElementById('tabc_'+main_tab_states[i][0]).style.display='block';
                document.getElementById('mtab_'+main_tab_states[i][0]).style.marginLeft='0px';
            if(ie4){

            }
            main_tab_states[i][1] = true;
        }
    }
    return false;
}

function switchSideTab (tab_name) {
    for(var i=0; i < side_tab_states.length; i++){
        if(side_tab_states[i][1] == true && tab_name != side_tab_states[i][0]){
            document.getElementById('stab_'+side_tab_states[i][0]).className='';
            document.getElementById('tabc_'+side_tab_states[i][0]).style.display='none';
            side_tab_states[i][1] = false;
        }else if(tab_name == side_tab_states[i][0]){
            document.getElementById('stab_'+side_tab_states[i][0]).className='sel';
            document.getElementById('tabc_'+side_tab_states[i][0]).style.display='block';
            document.getElementById('stab_'+side_tab_states[i][0]).style.marginLeft='0px';
            side_tab_states[i][1] = true;
        }
    }
    return false;
}

function switchInfoTab (tab) {
    for(var i = 0; i < active_layers.length; i++ ){
        if(active_layers[i][0] == tab){
            active_layers[i][1] = true;
            document.getElementById('info_tab_'+tab).className = 'sel';
            document.getElementById('info_tabc_'+tab).style.display = 'block';
        }else{
            active_layers[i][1] = false;
            document.getElementById('info_tab_'+active_layers[i][0]).className = '';
            document.getElementById('info_tabc_'+active_layers[i][0]).style.display = 'none';
        }
    }
}

function closeInfo () {
    document.getElementById('info_box').style.display='none';
    return false;
}

function selectTool (tool_name) {
	if(tool_name=='full_extent') {
		full_extent();
		return;
	}
//	else if(tool_name=='bookmark') {
//		bookmark();
//		return;
//	}
	else if(tool_name=='back' && toolbox_states[6][2] == true) {
		navigation_back();
		return;
	}
	else if(tool_name=='forward' && toolbox_states[7][2] == true) {
		navigation_forward();
		return;
	}
	
    for(var j=0; j < toolbox_states.length; j++){	
		if(tool_name == toolbox_states[j][0] && toolbox_states[j][2] == true){    		
		    for(var i=0; i < toolbox_states.length; i++){
		        if(toolbox_states[i][1] == true && tool_name != toolbox_states[i][0]){
		            document.getElementById('tabc_tool_'+toolbox_states[i][0]).className='';
		            toolbox_states[i][1] = false;
		
		//        }else if(tool_name == toolbox_states[i][0] && toolbox_states[i][1] == true){
		//            toolbox_states[i][1] = false;
		//            document.getElementById('tabc_tool_'+toolbox_states[i][0]).className='';
		
		        }else if(tool_name == toolbox_states[i][0]){
		            document.getElementById('tabc_tool_'+toolbox_states[i][0]).className='sel'
		            toolbox_states[i][1] = true;
		        }
		    }			
		}
    }
	
    return false;
}

function toolStates () {
	scale = getMapScale();	
	if(scale < fe_data_scale && fe_data_scale != 0){
		toolbox_states[1][2] = true;
		toolbox_states[2][2] = true;
	}else{
		toolbox_states[1][2] = false;		
		toolbox_states[2][2] = false;				
	}
	
	// info
	if(scale < 30000){
		toolbox_states[3][2] = true;
		toolbox_states[4][2] = true;				
	}else{
		toolbox_states[3][2] = false;		
		toolbox_states[4][2] = false;				
	}
	
	// zoom in
	if(scale > 4050){
		toolbox_states[0][2] = true;
	}else{
		if(toolbox_states[0][1] == true){
			selectTool('pan');
			toolbox_states[0][2] = false;
		}
	}

	// back
	if(hist_current == 0) {
		toolbox_states[6][2] = false;
	}else{
		toolbox_states[6][2] = true;
	}

	// forward
	if(hist_current == hist_max) {
		toolbox_states[7][2] = false;
	}else{
		toolbox_states[7][2] = true;
	}

    for(var j=0; j < toolbox_states.length; j++){
    	if(toolbox_states[j][2] == true){
	    	setOpacity('1', 'tabc_tool_'+toolbox_states[j][0]);
    	}else{
    		setOpacity('.3', 'tabc_tool_'+toolbox_states[j][0]);
    	}
    }
}

function switchSearchBy (active) {
    document.getElementById('d_search_by'+search_by).className='';
    document.getElementById('d_search_by'+active).className='sel';
    
    if(active == 3){
    	document.getElementById('search_by_nr_b').style.display = 'none';
    	document.getElementById('search_by_addr_b').style.display = 'block';    	
    }else if(search_by == 3){
    	document.getElementById('search_by_nr_b').style.display = 'block';
    	document.getElementById('search_by_addr_b').style.display = 'none';    	    	
    }

    
    search_by = active;

    return false;
}

function doSearch () {
	beginrecord = 1;
	if(search_by == 3){
    	search_nr = trim(document.getElementById('tabc_search_addr').value);
	}else{
    	search_nr = trim(document.getElementById('tabc_search_nr').value);
	}
    
    //document.getElementById('tabc_results').style.display = 'block';
    getData('search');

    //loadingOn();
    return false;
}

function loadingOn (text) {
    isLoadingOn = true;
    load_left = findPosX('tabc_main_map') + Math.round((map_width - 400) / 2);
    load_top = findPosY('tabc_main_map') + Math.round((map_height - 66) / 2);
    loading_i = document.getElementById('loading');
    loading_i.style.top = load_top+'px';
    loading_i.style.left = load_left+'px';
    if(text==null){
    	text = 'Notiek ielāde, lūdzu uzgaidiet...';
    }
    loading_i.innerHTML = text;    
    loading_i.style.display = 'block';
    loading_o = document.getElementById('loading_overlay');
    loading_o.style.width = (document.getElementById('hb').offsetWidth)+'px';    
    loading_o.style.height = (document.getElementById('hb').offsetHeight)+'px';
    loading_o.style.display='block';
}

function loadingOff () {
    isLoadingOn = false;
    loading_i = document.getElementById('loading');
    loading_o = document.getElementById('loading_overlay');
    loading_i.style.display = 'none';
    loading_o.style.display = 'none';
}

function overlayOn () {
    loading_o = document.getElementById('loading_overlay');
    loading_o.style.width = (document.getElementById('hb').offsetWidth)+'px';    
    loading_o.style.height = (document.getElementById('hb').offsetHeight)+'px';
    loading_o.style.display='block';
}

function overlayOff () {
    loading_o = document.getElementById('loading_overlay');
    loading_o.style.display = 'none';
}

function populateLayers () {
    xhtml = '<table border="0">';
    for(var i = 0; i < map_layers.length; i++){
        xhtml += '<tr>';
        xhtml += '<td width="25">';
        if(map_layers[i][2] == true){
            xhtml += '<a href="#" title="IzslÄ�?gt slÄ�ni" class="layer_eye_on" id="layer_eye_'+map_layers[i][0]+'" onclick="toggleLayer('+map_layers[i][0]+')"></a>';
        }else{
            xhtml += '<a href="#" title="IeslÄ�?gt slÄ�ni" class="layer_eye_off" id="layer_eye_'+map_layers[i][0]+'" onclick="toggleLayer('+map_layers[i][0]+')"></a>';
        }
        xhtml += '</td>';
        xhtml += '<td>'+map_layers[i][1]+'</td>';
        xhtml += '</tr>';
    }
    xhtml += '</table>';
    layer_box = document.getElementById('layer_data');
    layer_box.innerHTML = xhtml;
}

function toggleLayer (layer_id) {
    eye = document.getElementById('layer_eye_'+layer_id);
    if(eye.className == 'layer_eye_on'){
        eye.className = 'layer_eye_off';
    }else{
        eye.className = 'layer_eye_on';
    }
    document.getElementById('layer_toggle_apply').style.display='block';
    return false;
}

function showError (err_box_text) {
    err_box_top = Math.round((map_height - 66) / 2);
    err_box_left = Math.round((map_width - 400) / 2);
    err_box = document.getElementById('errbox');
    err_box.style.top = err_box_top+'px';
    err_box.style.left = err_box_left+'px';
    //err_box.innerHTML = err_box_text;
	err_box.innerHTML = 'Tehnisku iemeslu dēļ, karti šobrīd nav iespējams attēlot';
    err_box.style.display = 'block';
}

function SearchKeyUp(e) {
	if(e.keyCode==13)
		doSearch();
}

function addEvent(obj, evType, fn, useCapture) {
	if(obj.addEventListener) {
		obj.addEventListener(evType, fn, useCapture);
		return true;
	} else if(obj.attachEvent) {
		var r = obj.attachEvent("on"+evType, fn);
		return r;
	}
}

function SelectStart() {
	if(infoDragOn || selectionOn || panningOn)
		return false;
	else
		return true;
	
}

function make_abbr(objname) {
	if(!ns4) {
		document.documentElement.setAttribute("xmlns:acc", "http://www.w3.org/1999/xhtml");
		document.getElementById(objname).innerHTML = document.getElementById(objname).innerHTML.replace(/<abbr/gi, "<acc:abbr").replace(/<\/abbr/gi, "</acc:abbr");
	}
}

function startUp() {
    teh_sux();

	gecko = parseFloat(navigator.userAgent.replace(/^.*rv\:|\).*$/g,''));

    addEvent(document.getElementById('tabc_search_nr'),'keyup',SearchKeyUp,false);
    addEvent(document.getElementById('tabc_search_addr'),'keyup',SearchKeyUp,false);

	if (ns4) {document.captureEvents(Event.MOUSEMOVE);}
	document.onmousemove=mousemove;

	make_abbr('tabc_legend');

	//resizeToFit(true);	

   	map_width = document.getElementById('tabc_main_map').offsetWidth - 90;
    map_height = Math.round(map_width / 4 * 3);
    mapSX = findPosX('tabc_main_map');
    mapSY = findPosY('tabc_main_map');
    mapEX = mapSX + map_width;
    mapEY = mapSY + map_height;
    map_left = document.getElementById('tabc_main_map').offsetLeft;
    map_top = document.getElementById('tabc_main_map').offsetTop;

    document.getElementById('tabc_main_map').style.width = (map_width)+'px';
    document.getElementById('tabc_main_map').style.height = map_height+'px';
    document.getElementById('tabc_main').style.height = (map_height+30)+'px';
    document.getElementById('tabc_main_map_o').style.height = map_height+'px';
    document.getElementById('tabc_main_map_o').style.width = map_width+'px';
    document.getElementById('tabc_results').style.height = (map_height-207)+'px';
	document.getElementById('tabc_results_table').style.height = map_height-227+'px';    
    document.getElementById('tabc_main_map').style.position = 'absolute';
    document.getElementById('tabc_main_map').style.left = map_left;
    document.getElementById('tabc_main_map').style.top = map_top;
    document.getElementById('tabc_main_map_o').style.left = map_left;
    document.getElementById('tabc_main_map_o').style.top = map_top;		

    var ieversion = getInternetExplorerVersion();

    if(ieversion == 8) {
        document.getElementById('tabc_main_map').style.top = 115;
        document.getElementById('tabc_main_map_o').style.top = 115;
    }

    document.getElementById('tabc_about').style.height = map_height+30+'px';
    document.getElementById('tabc_help').style.height = map_height+30+'px';
    document.getElementById('tabc_feedback').style.height = map_height+30+'px';
    document.getElementById('tabc_faq').style.height = map_height+30+'px';
	
    document.getElementById('tabc_main_map').onmousemove = mousemuuv;
    //alert(map_top);

	document.onselectstart = SelectStart; // ie
	//document.getElementById('tabc_search_nr').onselectstart = onSelectStart() // ie
//	document.onmousedown = function() {return false;} // mozilla
	selectTool('zoomin');
	
	//getData('changedate');
	req('/core.php?changedate',function(res) { getDataParse(res.responseXML); }	);

    getData('image');
	toolStates();    
    //populateLayers();
}


function getInternetExplorerVersion() {
    var rv = -1; // Return value assumes failure.
    if (navigator.appName == 'Microsoft Internet Explorer') {
        var ua = navigator.userAgent;
        var re = new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");
        if (re.exec(ua) != null)
            rv = parseFloat(RegExp.$1);
    }
    return rv;
}

function resizeToFit (is_first_time) {
	if(is_first_time){
	   	map_width = document.getElementById('tabc_main_map').offsetWidth - 90;
	}else{
	   	map_width = document.getElementById('tabc_main_map').offsetWidth;		
	}
    map_height = Math.round(map_width / 4 * 3);
    mapSX = findPosX('tabc_main_map');
    mapSY = findPosY('tabc_main_map');
    mapEX = mapSX + map_width;
    mapEY = mapSY + map_height;
    map_left = document.getElementById('tabc_main_map').offsetLeft;
    map_top = document.getElementById('tabc_main_map').offsetTop;

    document.getElementById('tabc_main_map').style.width = (map_width)+'px';
    document.getElementById('tabc_main_map').style.height = map_height+'px';
    document.getElementById('tabc_main').style.height = (map_height+30)+'px';
    document.getElementById('tabc_main_map_o').style.height = map_height+'px';
    document.getElementById('tabc_main_map_o').style.width = map_width+'px';
    document.getElementById('tabc_results').style.height = (map_height-203)+'px';
    document.getElementById('tabc_main_map').style.position = 'absolute';
    document.getElementById('tabc_main_map').style.left = map_left;
    document.getElementById('tabc_main_map').style.top = map_top;
    document.getElementById('tabc_main_map_o').style.left = map_left;
    document.getElementById('tabc_main_map_o').style.top = map_top;	
}

function getMapScale() {
	return (Math.abs(data_miny-data_maxy) / map_height) * ((1000/25.4) * 96);
}

function findPosLeft(objname) {
    obj = document.getElementById(objname);
	var curleft = 0;
	while (obj.offsetParent) {
		curleft += obj.offsetLeft
		obj = obj.offsetParent;
	}

	return curleft;
}

function findPosTop(objname) {
    obj = document.getElementById(objname);
	var curtop = 0;
	while (obj.offsetParent) {
		curtop += obj.offsetTop
		obj = obj.offsetParent;
	}

	return curtop;
}

function loading_overlay(id) {
	var top = findPosTop(id);
	var left = findPosLeft(id);
	var width = document.getElementById(id).offsetWidth;
	var height = document.getElementById(id).offsetHeight;
	
	var html = '';
	html += '<div style="background: url(/img/loading_overlay.gif); position: absolute; top: '+top+'px; left: '+left+'px; width: '+width+'px; height: '+height+'px;">';
//	html += '<img src="/img/loading_ajax.gif" style="position: absolute; top: '+top+'px; left: '+Math.round(width/2)+'px;" />';
	html += '</div>';

	document.getElementById(id).innerHTML = document.getElementById(id).innerHTML + html;
	alert(document.getElementById(id).innerHTML);
}

function send_feedback () {
	var feedback_name = document.getElementById('feedback_name').value;
	var feedback_phone = document.getElementById('feedback_phone').value;
	var feedback_text = document.getElementById('feedback_text').value;
	
	if(feedback_text == '') {
		alert('Lūdzu aizpildiet oblig�?tos laukus!');
		return false;
	}

	var url = '/core.php?feedback';
   	var contents = 'name='+feedback_name+'&phone='+feedback_phone+'&text='+feedback_text;

	http.open("POST", url, true);
	http.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
	http.onreadystatechange = getDataResponse;
	http.send(contents);

	document.getElementById('feedback').innerHTML = '<p align="center"><img src="/img/loading_ajax.gif" alt="Loading.." /></p>';

	return false;
}

function feedbackResponse() {
	html = '<div style="text-align: center; font-size: 20px; padding-top: 18px;"><strong>Paldies!<br/>Jūsu komentārs ir veiksmīgi nosūtīts.</strong></div>';
	
	document.getElementById('feedback').innerHTML = html;
}

function req(url, user_function) {
    var http_request = false;

    if (window.XMLHttpRequest) {
        http_request = new XMLHttpRequest();
        if (http_request.overrideMimeType) {
            http_request.overrideMimeType('text/xml');
        }
    } else if (window.ActiveXObject) {
        try {
            http_request = new ActiveXObject("Msxml2.XMLHTTP");
        } catch (e) {
            try {
                http_request = new ActiveXObject("Microsoft.XMLHTTP");
            } catch (e) {}
        }
    }

    if (!http_request) {
        return false;
    }
    http_request.open('GET', url, true);
    http_request.onreadystatechange = function() { statechange(http_request, user_function); };
    http_request.send(null);

}

function statechange(http_request, user_function) {
    if (http_request.readyState == 4) {
        if (http_request.status == 200) {
    	    user_function(http_request);
        } else {
            alert('There was a problem with the request.');
        }
    }
}

function limit_length(obj) {
	if(obj.value.length >= 11) { 	
		obj.value = obj.value.substring(0,11);
	}
}