﻿// JavaScript Document
function isEmpty(val){
	return (typeof val==undefined || !val);
}

function trim(str){
	return str.replace(/^\s+/, "").replace(/\s+$/, "");
}

function setCookie(c_name,value,expiredays){
	var exdate=new Date();
	exdate.setDate(exdate.getDate()+expiredays);
	document.cookie=c_name+'='+escape(value)+((expiredays==null)?'':';expires='+exdate.toGMTString())+';path=/';
}

function getCookie(name){
	var cookies=document.cookie.split(";");
	for(var i=0;i<cookies.length;i++){
		var params=cookies[i].split("=");
		if(trim(params[0])==name){
			return params[1];
		}
	}
	return false;
}

function show_search_district(id){
	var id=id;

	$('.search_district_on').hide();
	$('.search_district_off').show();
	$('#search_district_'+id+'_off').hide();
	$('#search_district_'+id+'_on').show();

	$(document).click(function(e){
		if(e.target.id=='search_district_'+id+'_off' || e.target.parentNode.id=='search_district_'+id+'_off') return false;

		$(document).unbind(e);
		$('#search_district_'+id+'_on').unbind('click');
		hide_search_district(id);
	});

	$('#search_district_'+id+'_on').click(function(e){
		e.stopPropagation();
	});
}

function hide_search_district(id){
	$('#search_district_'+id+'_on').hide();
	$('#search_district_'+id+'_off').show();
}

function select_region(el){
	var id=el.id.split("_")[1];
	var ids=($("#search_region_ids").val()?$("#search_region_ids").val().split("|"):[]);
	var index=$.inArray(id, ids);

	if(el.checked){
		$(el).parent().css('background','#7cbabb');
		if(index<0) ids.push(id);
	}
	else{
		$(el).parent().css('background','none');
		if(index>-1) ids.splice(index, 1);
	}
	$("#search_region_ids").val(ids.join("|"));
	$("#search_region_count").html(ids.length);
}

function default_cusel(selector){
	var params = {
		changedEl: selector,
		visRows: 7,
		scrollArrows: true
	}
	cuSel(params);
}

function default_cusel_refresh(selector){
	var params = {
		changedEl: selector,
		visRows: 7,
		scrollArrows: true
	}
	cuSelRefresh(params);
}

function reload_list(nc_list, name, id, value, selected, cssclass, nocusel){
	var nc_list=nc_list||'';
	var name=name||'';
	var id=id||'';
	var value=value||0;
	var selected=selected||0;
	var cssclass=cssclass||'';
	var nocusel=nocusel||false;
	if(!nc_list || !name || !id) return '';
	
	$.ajax({
		url: "/images/med/scripts/ajax_get_nc_list.php",
		data: {list: nc_list, name: name, id: id, value: value, selected: selected, cssclass: cssclass},
		dataType: 'text',
		success: function(text){
			if(!nocusel){
				$("#cuselFrame-"+id).replaceWith(text);
				var params = {
					changedEl: "#"+id,
					visRows: 7,
					scrollArrows: true
				}
				cuSel(params);
			}
			else {
				$("#"+id).replaceWith(text);
			}
		}
	});
}

SearchMap=function(container, _type, _subtype){
	this.container=container;
	this._type=_type||0;
	this._subtype=_subtype||0;
	return this;
}

SearchMap.prototype.showBalloon=function(geoPoint){
	var lat=geoPoint.getLat();
	var lon=geoPoint.getLng();
	var text="Показать мед. учреждения на карте:<br/>\
&bull; <a href='#' onclick='searchMap.search("+lat+", "+lon+", 1, 221);return false;'>рядом</a><br/>\
&bull; <a href='#' onclick='searchMap.search("+lat+", "+lon+", 2, 221);return false;'>в радиусе 2.5 км</a><br/>\
&bull; <a href='#' onclick='searchMap.search("+lat+", "+lon+", 3, 221);return false;'>в радиусе 5 км</a>";
	this.map.openBalloon(geoPoint, text);
}

SearchMap.prototype.search=function(lat, lon, radius, classid){
	$('#search_lat').val(lat);
	$('#search_lon').val(lon);
	$('#search_radius').val(radius);

	this.objManager.removeAll();
	var map=this.map;
	var objManager=this.objManager;
	var th=this;
	
	$.ajax({
		url: '/images/med/scripts/ajax_get_near_objects.php',
		data: {lat: lat, lon: lon, radius: radius, classid: classid, type: th._type, subtype: th._subtype},
		dataType: 'text',
		success: function(text){
			map.closeBalloon();
			var data=text.split(';');
			var found=false;
			for(var i=0; i<data.length; i++){
				if(data[i]=='') continue;
				found=true;
				var addrdata=data[i].split('#');
				var placemark = new YMaps.Placemark(new YMaps.GeoPoint(addrdata[2], addrdata[3]), {style: 'default#hospitalIcon'});
				placemark.name = '<a href="'+addrdata[4]+'">'+addrdata[0]+'</a>';
				placemark.description = addrdata[1];
				objManager.add(placemark, 1, 18);
			}
			if(found){
				$('#place_search_img').attr('src', '/images/med/button_select_act.jpg');
			}
			else {
				$('#place_search_img').attr('src', '/images/med/button_select_unact.jpg');
				$('#search_lat').val('');
				$('#search_lon').val('');
				$('#search_radius').val('');
			}
		}
	});
}
SearchMap.prototype.showFound=function(){
	this.objManager.removeAll();

	$('input[type=hidden]').each(function(index, el){
		if(el.id.substr(0, 5)!='found') return;
		var addrdata=el.value.split('#');
		var placemark = new YMaps.Placemark(new YMaps.GeoPoint(addrdata[2], addrdata[3]));
		placemark.name = addrdata[0];
		placemark.description = addrdata[1];
		searchMap.objManager.add(placemark, 1, 18);
	});
}
SearchMap.prototype.init=function(){
	this.centerLon=37.609218;
	this.centerLat=55.753559;
	this.map = new YMaps.Map(document.getElementById(this.container));
	this.map.setCenter(new YMaps.GeoPoint(this.centerLon, this.centerLat), 10, YMaps.MapType.MAP);
	this.zoom=10;
	this.objManager = new YMaps.ObjectManager();
	this.map.addOverlay(this.objManager);
	var zoomControl = new YMaps.Zoom({noTips: true});
	this.map.addControl(zoomControl);

	var myEventListener = YMaps.Events.observe(this.map, this.map.Events.Click, function(map, mEvent){
		searchMap.showBalloon(mEvent.getGeoPoint());
	}, this);
	searchMap.showBalloon(this.map.getCenter());
	
	if(getCookie("search_clinic_place")){
		var data=unescape(getCookie("search_clinic_place")).split("#");
		setCookie("search_clinic_place", "", 0);
		searchMap.search(data[0], data[1], data[2], 221);
	}
}

$(function(){
	function cb_check(el){
		el.css("backgroundPosition", "0px 13px");
	}
	function cb_uncheck(el){
		el.css("backgroundPosition", "0px 0px");
	}
	$(".cb_check").each(function(){
		var input=$(this).find("input")[0];
		if(input.checked && $(this).hasClass(input.name+input.value)) cb_check($(this));

		$(this).click(function(e){
			e.preventDefault();

			if(input.type=='checkbox'){
				if(input.checked){
					cb_uncheck($(this));
					input.checked = false;
				} else {
					cb_check($(this));
					input.checked = true;
				}
			}
			else if(input.type=='radio'){
				$("input[name="+input.name+"]").parent().each(function(){
					cb_uncheck($(this));
				});
				cb_check($(this));
				input.checked = true;
			}
		});
	});
	$(".lightbox").lightbox();
	var params = {
		changedEl: ".sel_city_form select, .gold_f_select select, .select_spec_w, .forum_sort_by, .forum_sort_order, .forum_q_reply_form select",//, .calc_selects select",
		visRows: 7,
		scrollArrows: true
	}
	cuSel(params);
});

