/*

    Suomitech KY, Suomi.Ru map.
    Kopiointi ilman lupaa on kielletty!
    No copying of code is allowed without permission from Suomitech (www.suomitech.fi).

*/

var map_icons = [];
var total_map_icons = 14;
var lastPoint;
var map;
var geocoder;
var icon_clicked = 0;

function map_load() {
    if (GBrowserIsCompatible()) {
	icon_clicked = 0;
	
	var mappi = document.getElementById("map");
	if(mappi == null){
	    return;
	}
	map = new GMap2(mappi);
	geocoder = new GClientGeocoder();
	map.addControl(new GLargeMapControl());
	map.setCenter(new GLatLng(62.404534, 25.677234), 6);
	map.setMapType(G_PHYSICAL_MAP);
	map.addControl(new GMenuMapTypeControl());
	map.enableDoubleClickZoom();
	map.enableScrollWheelZoom();
	
	var dog = true;
	var marker = null;
	var noMore = false;
    
	GEvent.addListener(map, "mousemove", function(point){
	    var latLngStrF = point.lat().toFixed(14) + ', ' + point.lng().toFixed(14);
	    var latLngStr8 = point.lat().toFixed(8) + ', ' + point.lng().toFixed(8);
	    var latLngStr6 = point.lat().toFixed(6) + ', ' + point.lng().toFixed(6);
	    var latLngStr5 = point.lat().toFixed(5) + ', ' + point.lng().toFixed(5);
	    var latLngStr4 = point.lat().toFixed(4) + ', ' + point.lng().toFixed(4);
	    lastPoint = point;
	
	    var map_lo = getObj('map_lo');
    	    var map_fixed = getObj('map_fixed');
	    var fixed_point = getObj('fixed_point');
	    var fixed_main = getObj('fixed_main');
	    
	    if(map_lo != null){
		map_lo.innerHTML = latLngStr5;
	    
		if(!noMore){
		    if(fixed_main == null){
			marker = new GMarker(point,{draggable:true, autoPan:false});
    			map.addOverlay(marker);
    			marker.setImage('mapicons/marker.png');
    			noMore = true;

			GEvent.addListener(marker, 'drag', function(markerPoint){
			    if(!map.getBounds().containsLatLng(markerPoint)){
        			 map.removeOverlay(marker);
    			    }
	
			    if(map_fixed != null){
				var latLngStr5 = lastPoint.lat().toFixed(5) + ', ' + lastPoint.lng().toFixed(5);
				map_fixed.innerHTML = '<b>Отмечено: '+latLngStr5+'</b>';
				fixed_point.value = latLngStr5;
			    }
    			});
		    }
		}
		if(dog){
		    if(marker != null){
    			marker.setLatLng(point);
		    }
		}
	    }
	});
	
	GEvent.addListener(map, "click", function(){
	    var map_fixed = getObj('map_fixed');
	    var fixed_point = getObj('fixed_point');
	
	    if((map_fixed != null) && (lastPoint != null)){
		var latLngStr5 = lastPoint.lat().toFixed(5) + ', ' + lastPoint.lng().toFixed(5);
		map_fixed.innerHTML = '<b>Отмечено: '+latLngStr5+'</b>';
		fixed_point.value = latLngStr5;
	    }
	    dog = false;
	    if(marker != null){
    		marker.setLatLng(lastPoint);
	    }
	});

	GEvent.addListener(map, "infowindowclose", function(){
	    icon_clicked = 0;
	});

	loadMapData();
    }
}

function createMarker(posx,posy,name,html1,html2,html3,category,toptitle){
    var point = new GPoint(posy,posx);
    var marker = new GMarker(point,{icon:map_icons[category],title:toptitle});
    marker.mycategory = category;                                 
    marker.myname = name;
/*
    GEvent.addListener(marker, "mouseover", function() {
	    GEvent.trigger(marker,"click");
    });
*/
    GEvent.addListener(marker, "click", function() {
	icon_clicked = 1;
	var infotab = []; var infobrake = ''; var allinfo = ''; var photobrake = '';
	infotab.push(new GInfoWindowTab("Инфо","<div class='infotab'>"+html1+"</div>"));
	if(html2 != ""){
	    photobrake = "<div style='clear:both;'><br></div>";
	}
	if(html3 != ""){
//	    allinfo = "&nbsp;&nbsp;&nbsp;<a href=\"/karta/comm/"+name+"\">Все отзывы</a>";
	    infobrake = '<br><br>';
	}
	
        infotab.push(new GInfoWindowTab("Фото","<div class='infotab_pic'>"+html2+photobrake+"<a href=\""+KPL+"/addpic/"+name+"\">Добавить фотографию</a>&nbsp;&nbsp;&nbsp;<a href=\""+KPL+"/placepic/"+name+"\">Все фотографии</a></div>"));
	infotab.push(new GInfoWindowTab("Отзывы","<div class='infotab' id=\"infotab_"+name+"\">"+html3+infobrake+"<a href=\"javascript:addfeed("+name+")\">Добавить отзыв</a>&nbsp;&nbsp;&nbsp;<a href=\""+KPL+"/comm/"+name+"\">Все отзывы</a>"+allinfo+"<div class='newfeed' id='newfeed_"+name+"'><textarea class=\"feedarea\" id='fa_"+name+"'></textarea><br><a href=\"javascript:addfeedready("+name+")\">Добавить отзыв</a></div></div>"));
	marker.openInfoWindowTabsHtml(infotab);
	}
    );
    map.addOverlay(marker);
    marker.hide();
    map_markers.push(marker);
    return marker;
}

function showAddress(formi) {
  var addr = getObj('addrpoisk');
  address = addr.value;
  
  geocoder.getLatLng(
    address,
    function(point) {
      if (!point) {
        alert(address + " к сожалению не найден. Поищите заново или укажите точку на карте вручную.");
      } else {
	var map_fixed = getObj('map_fixed');
	var fixed_point = getObj('fixed_point');
	var map_msg = getObj('msg');
        map.setCenter(point, 13);
	var latLngStr5 = point.lat().toFixed(5) + ', ' + point.lng().toFixed(5);
	if(map_fixed != null){
	    map_fixed.innerHTML = '<b>Отмечено: '+latLngStr5+'</b>';
	}
	if(fixed_point != null){
	    fixed_point.value = latLngStr5;
	}
	
	var addr_marker = new GMarker(point);
	map.addOverlay(addr_marker);
	addr_marker.setImage(KPL+'/mapicons/marker.png');
	addr_marker.openInfoWindowHtml(address);
	if(map_msg != null){
	    map_msg.value = map_msg.value + "\n" + address;
	}
      }
    }
  );
  if(formi == 1){
    return false;
  }
}


function cat_show(category) {
    var has_markers = 0;
    for (var i=0; i<map_markers.length; i++) {
	if (map_markers[i].mycategory == category) {
    	    map_markers[i].show();
	    has_markers = 1;
        }
    }
    if(map_cats[category] == undefined){
	map_cats.push(category);
    }
    if((has_markers == 0) || (cur_marker > 0)){
	getCategoryData(category);
    }
}

function cat_hide(category) {
    for (var i=0; i<map_markers.length; i++) {
	if (map_markers[i].mycategory == category) {
    	    map_markers[i].hide();
        }
    }
    
    var newcats = new Array();
    for (var i=0; i<map_cats.length; i++) {
	if(map_cats[i] != category){
	    newcats.push(map_cats[i]);
	}
    }
    map_cats = newcats;
}

function cat_click(i,ci) {
    var cat = getObj(ci);
    if(cat.style.fontWeight == 'bold'){
	cat.style.fontWeight = 'normal';
	cat_hide(i);
    } else {
	cat.style.fontWeight = 'bold';
	cat_show(i);
    }
    
    var selcats = '';
    for (var i=0; i<map_cats.length; i++) {
	selcats += map_cats[i]+',';
    }
    selcats = selcats.substring(0,selcats.length);

    var infra = null;

    if(document.selection){
        if(document.frames['catlist'] != null){
    	infra = document.frames['catlist'].document;
        }
    } else {
        infra = getObj('catlist');
        if(infra != null){
    	infra = infra.contentDocument;
        }
    }
    if(infra != null){
	if(selcats.length > 0){
	    selcats = selcats.substring(0,selcats.length-1);
	    infra.location.href = KPL+'/placelist.php?cats='+selcats;
	} else {
	    infra.location.href = KPL+'/placelist.php';
	}
    }
}

function findPos(obj) {
  var pos = new Object;
  pos.left = 0;
  pos.top = 0;
        if (obj.offsetParent)   {
                while (obj.offsetParent) {
                  pos.left += obj.offsetLeft;
                        pos.top  += obj.offsetTop;
                        obj = obj.offsetParent;
                };
        }       else if (obj.x) {
          pos.left = obj.x;
          pos.top = obj.y;
        };
        return pos;
};

function show_hidden_layer(objname){
      var o = getObj(objname);
      if(o.style.display == 'none') {
        o.style.display = 'block';
      } else {
        o.style.display = 'none';
      }
}

function getObj(name){
      if (document.getElementById)
      {
            return document.getElementById(name);
      }
      else if (document.all)
      {
            return document.all[name];
      }
      else if (document.layers)
      {
            return document.layers[name];
      }
}

function togglePaymore(){
    var ob_type = getObj('ob_type');
    var ob_add_table = getObj('ob_add_table');
    
    if(ob_type.value == 1){
	ob_add_table.style.background = '#FFEE60';
    } else {
	ob_add_table.style.background = '#EEEEFF';
    }
}

function checkPostForm(){
    var ret = true;
    
    var ob_cat = getObj('ob_cat');
    if(ob_cat.value == 0){
	showAlert('Выбранной Вами категории не существует. Скорее всего Вы выбрали просто общее название категории, тогда выберете подкатегорию.');
	return false;
    }

    var zag = getObj('zag');
    if(zag.value.length == 0){
	showAlert('Заголовок пуст! Введите заголовок.');
	return false;
    }

    var msg = getObj('msg');
    if(msg.value.length == 0){
	showAlert('Содержимое пусто! Укажите подробную информацию об объекте!');
	return false;
    }

    var fixed_point = getObj('fixed_point');
    if(msg.value.length == 0){
	showAlert('Место нахождения на карте не выбрано! Нажмите мышкой на карту и выберите место нахождения данного объекта!');
	return false;
    }

    var vbuser = getObj('vbuser');
    var num = getObj('num');
    
    if((vbuser.value == 0) && (num.value.length == 0)){
	showAlert('Впишите код безопасности.');
	return false;
    }

    var msg = getObj('msg');
    var msgval = msg.value;

    var ttl = getObj('title');
    
    if(ttl != null){
	var ttlval = ttl.value;
	ttl.value = ttlval.replace('д','&auml;');
	ttl.value = ttlval.replace('Д','&Auml;');
	ttl.value = ttlval.replace('ц','&ouml;');
	ttl.value = ttlval.replace('Ц','&Ouml;');
    }

    msg.value = msgval.replace('д','&auml;');
    msg.value = msgval.replace('Д','&Auml;');
    msg.value = msgval.replace('ц','&ouml;');
    msg.value = msgval.replace('Ц','&Ouml;');

    
    return ret;
}

function checkPostFormEdit(){
    var ret = true;
    
    var zag = getObj('edit_title');
    if(zag.value.length == 0){
	showAlert('Заголовок пуст! Введите заголовок.');
	ret = false;
    }

    var msg = getObj('msg');
    if(msg.value.length == 0){
	showAlert('Содержимое пусто! Укажите подробную информацию об объекте!');
	ret = false;
    }

/*
    var msg = getObj('msg');
    var msgval = msg.value;

    var ttl = getObj('edit_title');
    
    if(ttl != null){
	var ttlval = ttl.value;
	ttl.value = ttlval.replace('д','&auml;');
	ttl.value = ttlval.replace('Д','&Auml;');
	ttl.value = ttlval.replace('ц','&ouml;');
	ttl.value = ttlval.replace('Ц','&Ouml;');
    }

    msg.value = msgval.replace('д','&auml;');
    msg.value = msgval.replace('Д','&Auml;');
    msg.value = msgval.replace('ц','&ouml;');
    msg.value = msgval.replace('Ц','&Ouml;');
*/

    return ret;
}

function showAlert(txt){
    var ob_alert = getObj('ob_alert');
    ob_alert.innerHTML = txt;
    ob_alert.style.display = 'block';
}
function showSendReply(postid,userid){
    var sendmail = getObj('sendmail');
    if((sendmail.style.display == 'none') || (sendmail.style.display == '')){
	sendmail.style.display='block';
	var email_name = getObj('email_name');
	email_name.focus();
    } else {
	sendmail.style.display='none';
    }
}
function showSendComment(postid,userid){
    var sendcomment = getObj('sendcomment');
    if((sendcomment.style.display == 'none') || (sendcomment.style.display == '')){
	sendcomment.style.display='block';
	var comment_msg = getObj('comment_msg');
	comment_msg.focus();
    } else {
	sendcomment.style.display='none';
    }
}
function sendSignal(postid,userid){
    var conf = confirm('Сообщить модератору о возможном нарушении правил доски объявлений?');
    if(conf){
	ajax_sendSignal(postid,userid);
    }
}

function addPhotoMore(){
    var tt = getObj('ob_pics');
    var newCell;
    var newRow = tt.insertRow(tt.rows.length);
    nc1 = newRow.insertCell(0);
    nc2 = newRow.insertCell(1);

    nc1.innerHTML = "Фотография:";
    nc1.id = 'obm_1_'+tt.rows.length;
    nc1.name = 'obm_1_'+tt.rows.length;
    
    nc2.innerHTML = "<input type=\"file\" name=\"bimage[]\" size=\"20\"><br><div class=\"ob_addmore\"><a href=\"javascript:addPhotoMore()\">Добавить еще одну фотографию</a></div>";
    nc2.id = 'obm_2_'+tt.rows.length;
    nc2.name = 'obm_2_'+tt.rows.length;
}

function do_fastmove(){
    var ret = false;
    var tt = getObj('fastmove');
    if(tt.value.length > 3){
	window.location.href = KPL+'/post/'+tt.value;
	ret = true;
    }
    return ret;
}

function select_latest_cat(){
    var tt = getObj('ob_latest_cat');
    if(tt.value > 0){
	window.location.href = KPL+'/places/'+tt.value;
    } else {
	if(tt.value == -1){
	    window.location.href = KPL+'/places';
	}
    }
}

function ob_add_translit(){
    var ob_title = getObj('zag');
    var ob_body = getObj('msg');
    
    ob_title.value = translitTagAware(ob_title.value);
    ob_body.value = translitTagAware(ob_body.value);
}

function ob_edit_translit(){
    var ob_title = getObj('edit_title');
    var ob_body = getObj('msg');
    
    ob_title.value = translitTagAware(ob_title.value);
    ob_body.value = translitTagAware(ob_body.value);
}

function marsh_sel(){
    var ob_cat = getObj('ob_cat');
    var marsh = getObj('marsh');

    if(marsh != null){
	var cat = ob_cat[ob_cat.selectedIndex].value;
	if((cat == 11) || (cat == 12)){
	    marsh.style.visibility='visible';
	} else {
	    marsh.style.visibility='hidden';
	}
    }
}

function addfeed(place){
    feed = getObj('newfeed_'+place);
    fa = getObj('fa_'+place);
    feed.style.display = 'block';
    fa.value = '';
    fa.focus();
}
function addfeedready(place){
    feed = getObj('newfeed_'+place);
    infotab = getObj('infotab_'+place);
    fa = getObj('fa_'+place);

    feed.style.display = 'none';
    ajax_addfeed(place,fa.value);
    infotab.innerHTML = fa.value+"<br><br><a href=\"javascript:addfeed("+place+")\">Добавить отзыв</a>&nbsp;&nbsp;&nbsp;<a href=\""+KPL+"/comm/"+place+"\">Все отзывы</a><div class='newfeed' id='newfeed_"+place+"'><textarea class=\"feedarea\" id='fa_"+place+"'></textarea><br><a href=\"javascript:addfeedready("+place+")\">Добавить отзыв</a></div>";
    fa.value = '';
}
function addfeedready_large(place,auth){
    feed = getObj('hidden_comment');
    tt = getObj('latestposts');
    fa = getObj('fa_'+place);
    feed.style.display = 'none';
    ajax_addfeed(place,fa.value,auth);
    
    var newRow = tt.insertRow(1);
    newCell = newRow.insertCell(0);
    newCell.className = 'pokaz_body';
    newCell.innerHTML = fa.value;

    var newRow = tt.insertRow(1);
    newCell = newRow.insertCell(0);
    newCell.className = 'pokaz_title';
    newCell.innerHTML = "Отзыв успешно добавлен";

    fa.value = '';
}

function changeInfoPic(pic){
    mp = getObj('imagemain');
    mp.style.display = 'none';

    var iw = 0; var ih = 0;

    if(image_sizes_w[pic] > image_sizes_h[pic]){
	iw = 699;
	ih = 479;
    } else {
	iw = 395;
	ih = 479;
    }
    
    mp.innerHTML = "<img src=\""+KPL+"/"+images[pic]+"\" style=\"width:"+iw+"px;height:"+ih+"px;\" onClick=\"showLarge('"+images[pic]+"',this,'prev_layer',"+iw+","+ih+")\">";

    mp.style.display = 'block';
}

function add_com_hidden(pid){
    mp = getObj('hidden_comment');
    pidfa = getObj('pidfa');
    ta = getObj('fa_'+pid);
    mp.style.display = 'block';
    ta.focus();
    pidfa.innerHTML = 'Добавить отзыв';
}

function zoomMap(city,level){
    var gorod = city-1;
    var ci_h = new Array('60.16688','60.44926','61.49887','60.29464','60.39367','61.05164','61.17834','61.68784','62.24067','60.20537','62.89369');
    var ci_w = new Array('24.94205','22.26688','23.76411','25.03784','25.65788','28.20671','28.77766','27.27030','25.74268','24.65581','27.67636');
    
    if(map != null){
	map.setCenter(new GLatLng(ci_h[gorod], ci_w[gorod]), level);
    } else {
	alert('null map');
    }
}

function cat_count(cat){
/*
    var ot_cat_count = getObj('ot_cat_count');
    var catcount = getObj('catcount');

    if(category_counts[cat] != null){
        catcount.innerHTML = category_counts[cat];
    } else {
        catcount.innerHTML = '0';
    }
    ot_cat_count.style.display = 'block';
*/
}

function do_fastlook(){
    var ret = false;
    var tt = getObj('fastlook');
    if(tt.value.length > 3){
        window.location.href = KPL+'/index.php?ac=9&search_body='+tt.value;
        ret = true;
    }
    return ret;
}

function cleanList(){
    var obj_list = getObj('obj_list');
}

function showList(){
    var map = getObj('map');
    map.style.display = 'none';
    var obj_list = getObj('obj_list');
    obj_list.style.display = 'block';
}

function showMap(){
    var map = getObj('map');
    map.style.display = 'block';
    var obj_list = getObj('obj_list');
    obj_list.style.display = 'none';
}

function showMapAll(){
    var show_all_obj = getObj('show_all_obj');
    show_all_obj.innerHTML = 'Загружаем, подождите...';
    getAllData();
    showMap();
}

function clearList(){
    var tab1 = getObj('obj_list_table_1');
    var tab2 = getObj('obj_list_table_2');
    var tab3 = getObj('obj_list_table_3');

    var tab1_rows = tab1.getElementsByTagName("tr");
    for (var i = 0; i < tab1_rows.length; i++) {
        tab1.deleteRow(0);
    }
    var tab2_rows = tab2.getElementsByTagName("tr");
    for (var i = 0; i < tab2_rows.length; i++) {
        tab2.deleteRow(0);
    }
    var tab3_rows = tab3.getElementsByTagName("tr");
    for (var i = 0; i < tab3_rows.length; i++) {
        tab3.deleteRow(0);
    }
}

function full_map(){
    var map_status = getObj('map_status');
    var map = getObj('map');
    var map_surr = getObj('map_surr');
    var res_map_link = getObj('res_map_link');
    
    if(map_status != null){
	if(map_status.value == 1){
	    map_status.value = 2;
	    map.style.width = '800px';
	    map.style.height = '480px';
	    map_surr.style.width = '812px';
	    map_surr.style.height = '510px';
	    res_map_link.innerHTML = "<a href=\"javascript:full_map()\">- Уменьшить размер карты</a>";
	} else {
	    map.style.width = '508px';
	    map.style.height = '300px';
	    map_surr.style.width = '520px';
	    map_surr.style.height = '330px';
	    map_status.value = 1;
	    res_map_link.innerHTML = "<a href=\"javascript:full_map()\">- Увеличить размер карты</a>";
	}
    }
}

function showcomm(){
    document.location.href='http://www.russian.fi/reklama';
}

