
// Функции для компаний
//

function addPointsForEvent(id)
{
	
	var link = $("#event_"+id+"_addpoints_button");
	
	link.addClass('ajax_loading');

    $.get("/events/addpoints/id/"+id, {}, function(data) {
     	
		var message = $("message", data).text();
		var event_points = $("event_points", data).text();
		
		link.removeClass('ajax_loading');
		
		//if <span class="points" id="event_{@id}_points">
		
		if (!$("#event_"+id+"_points").length) {
		    $("<span class='points' id='event_"+id+"_points'>").insertBefore(link);
		}
		
		$("#event_"+id+"_points").html(event_points+" баллов");
			
		showArcadePoints(link, message);
		
	});
	
}

function initCompanyMap(geo_long, geo_lat, text, title)
{
	var map = new YMaps.Map(document.getElementById("company_map"));
	map.setCenter(new YMaps.GeoPoint(geo_long, geo_lat), 15);
	
	ml = new YMaps.YMapsML( 'http://company.yandex.ru/inside/address.xml' );
	map.addOverlay(ml);

	map.addControl(new YMaps.TypeControl());
	map.addControl(new YMaps.SmallZoom(), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEFT));
	
	var point = new YMaps.GeoPoint(geo_long, geo_lat);
    //var placemark = new YMaps.Placemark(point,  {hasBalloon: false});
    //map.addOverlay(placemark);
    
    var placemark = new YMaps.Placemark(point,
		{
			hasBalloon: true,
			balloonOptions: {hasCloseButton: true, maxWidth:200, mapAutoPan: 1},
			hasHint: true,
			hintOptions: {maxWidth: 100, showTimeout: 200, hintOffset: new YMaps.Size(5,5)}
		});
	placemark.description = text;
	placemark.setHintContent(title);
    
    map.addOverlay(placemark);
    placemark.openBalloon();
    
	//map.openBalloon(point, text, {hasCloseButton: true, maxWidth:200, mapAutoPan: 1});
	
	//YMaps.Events.observe(ml, ml.Events.Fault, function (error) {
	//	alert('Ошибка' + error);
	//});
    
    return map;
	
}

function addNearbyCompanyPlacemark(map, geo_long, geo_lat, title, uri)
{
	/*var t = new YMaps.Template();
	t.text = '<div style="color:#0A0">$[description]</div>';
	YMaps.Templates.add("example#template", t);
	var s = new YMaps.Style();
	s.balloonContentStyle = new YMaps.BalloonContentStyle("example#template");*/
	
	var point = new YMaps.GeoPoint(geo_long, geo_lat);
    var placemark = new YMaps.Placemark(point,
		{
			hasBalloon: true,
			balloonOptions: {hasCloseButton: true, maxWidth:200, mapAutoPan: 1},
			hasHint: true,
			hintOptions: {maxWidth: 100, showTimeout: 200, hintOffset: new YMaps.Size(5,5)}
		});
	placemark.description = "<a href='/"+uri+"'>"+title+"</a>";
	placemark.setHintContent(title);
	
    map.addOverlay(placemark);
}

function setGeoPoint(companyId, geo_long, geo_lat)
{
	if (!geo_long) geo_long = 38.9797;
	if (!geo_lat) geo_lat = 45.0534;
	
	form = $("<form action='/companies/setgeopoint' method='POST'>"
		+"<hr class='space' />"
		+"<input type='hidden' name='company_id' value='"+companyId+"' />"
		+"<input type='hidden' name='geo_long' id='hidden_geo_long' value='"+geo_long+"' />"
		+"<input type='hidden' name='geo_lat' id='hidden_geo_lat' value='"+geo_lat+"' />"
		+"<div id='setgeopoint_map' style='height:400px; width:100%; border: 1px solid gray;'></div>"
		+"<hr class='space' />"
		+"<input type='submit' value='Сохранить' />"
		+"</form>");
	
	$("#company_setgeopoint").remove();
	
	div = $("<div id='company_setgeopoint' style='display:none;'></div>");
	div.append(form);
	
	//div.insertAfter($('#setgeopoint_link'));
	div.appendTo($("body"));
	divId = "company_setgeopoint";
	
	// Откроем thickbox-окошко
	tb_show('Отметь расположение компании на карте','#TB_inline?height=500&width=500&inlineId='+divId);
	
	// Карта
	var map = new YMaps.Map(document.getElementById("setgeopoint_map"));
	map.setCenter(new YMaps.GeoPoint(geo_long, geo_lat), 15);
	
	ml = new YMaps.YMapsML( 'http://company.yandex.ru/inside/address.xml' );
	map.addOverlay(ml);

	map.addControl(new YMaps.TypeControl());
	map.addControl(new YMaps.SmallZoom(), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEFT));
	
	//map.addControl(new YMaps.ToolBar());
	
	YMaps.Events.observe(map, map.Events.Click, function (mEvent) {
		var myHtml = "Значение: " + mEvent.getGeoPoint();
		map.openBalloon(mEvent.getGeoPoint(), myHtml, {hasCloseButton: false, maxWidth:200, mapAutoPan: 1});
		$("#hidden_geo_long").attr("value", mEvent.getGeoPoint().getLng());
		$("#hidden_geo_lat").attr("value", mEvent.getGeoPoint().getLat());
	});
	
	var point = new YMaps.GeoPoint(geo_long, geo_lat);
    var placemark = new YMaps.Placemark(point,  {hasBalloon: false});
    map.addOverlay(placemark);
}

function initCityMap(geo_long, geo_lat)
{
	map = new YMaps.Map(document.getElementById("city_map"));
	map.setCenter(new YMaps.GeoPoint(geo_long, geo_lat), 13);
	
	ml = new YMaps.YMapsML( 'http://company.yandex.ru/inside/address.xml' );
	map.addOverlay(ml);

	map.addControl(new YMaps.TypeControl());
	map.addControl(new YMaps.SmallZoom(), new YMaps.ControlPosition(YMaps.ControlPosition.TOP_LEFT));	
}

function addCompanyPlacemark(geo_long, geo_lat, title, uri, collection)
{
	/*var t = new YMaps.Template();
	t.text = '<div style="color:#0A0">$[description]</div>';
	YMaps.Templates.add("example#template", t);
	var s = new YMaps.Style();
	s.balloonContentStyle = new YMaps.BalloonContentStyle("example#template");*/
	
	var point = new YMaps.GeoPoint(geo_long, geo_lat);
    var placemark = new YMaps.Placemark(point,
		{
			hasBalloon: true,
			balloonOptions: {hasCloseButton: true, maxWidth:200, mapAutoPan: 1},
			hasHint: true,
			hintOptions: {maxWidth: 100, showTimeout: 200, hintOffset: new YMaps.Size(5,5)}
		});
	placemark.description = "<a href='/"+uri+"'>"+title+"</a>";
	placemark.setHintContent(title);
	
	if (collection) {
		collection.add(placemark);
	}
	
    //map.addOverlay(placemark);
}

function loadCompaniesToGeoCollection(collection, cat_id)
{
	var uri = "/companies/bycategory/id/"+cat_id+".ajax";
    
	$.get(uri, null, function(data) {
		
		$("item", data).each(function(){
            
            title = $("title", this).text();
            address = $("address", this).text();
            geo_long = $("geo_long", this).text();
            geo_lat = $("geo_lat", this).text();
            uri = $("uri", this).text();
     	    id = $(this).attr("id");
            
            //alert(title);
            
            addCompanyPlacemark(geo_long, geo_lat, title, uri, collection);
            
        }
        );
		
	});
}

function hideComment(id, link, t)
{
	var a = [];
	a.push({name: 'id', value: id});
	
	//link = $(this);
	link.unbind("click");
	link.html("<i>Обработка...</i>");
    
    var uri = t=='event' ? "/eventscomments/hide" : "/comments/hide";
	
	$.post(uri, a, function(data) {
		
		//alert(data.text());
		
		// форма принята
		if ($("result", data).text() == "Ok") {
			
			link.hide();
			$("#comment"+id).effect("highlight", {}, 1000);
			
		}
		else {
			link.html("Ошибка!");
		}
		
	});
	
}

function showEditCommentForm(comment_id, t)
{
	link = $("#comment_"+comment_id+"_edit_link");
	cont = $("#comment_"+comment_id+"_content").html();
    
    var uri = t=='event' ? "/eventscomments/update" : "/comments/update";
	
	form = $("<form action='"+uri+"' method='POST'>"
		+"<input type='hidden' name='comment_id' value='"+comment_id+"' />"
		+"<br/>"
		+"<textarea id='comment_"+comment_id+"_textarea' class='comment_answer_content' name='content'>"
		+cont
		+"</textarea>"
		+"<br/>"
		+"<input type='submit' value='Отправить' />"
		+"</form>");
	
	div = $("<div id='comment_"+comment_id+"_div' class='comment_answer_form_div'></div>");
	div.append(form);
	
	div.insertAfter(link);
	divId = "comment_"+comment_id+"_div";
	
	openNiceForm(link, divId);
	
	$("#comment_"+comment_id+"_textarea").focus();
	
}

function showAnswerForm(comment_id, cont, t)
{
	$(".inline_block").remove();
	
	link = $("#comment_"+comment_id+"_answer_link");
	
	if (!cont)
		cont = "";
        
    var uri = t=='event' ? "/eventscomments/answer" : "/comments/answer";
	
	form = $("<form action='"+uri+"' method='POST'>"
		+"<input type='hidden' name='comment_id' value='"+comment_id+"' />"
		+"<textarea id='comment_"+comment_id+"_textarea' class='comment_answer_content' name='answer'>"
		+cont
		+"</textarea>"
		+"<br/>"
		+"<input type='submit' value='Отправить' />"
		+"</form>");
	
	//div = $("<div id='comment_"+comment_id+"_div' class='comment_answer_form_div'></div>");
	div = $("<div id='comment_"+comment_id+"_div' class='inline_block'></div>");
	div.append("<div style='text-align: right;'><a href='#' onclick=\"$('.inline_block').remove(); return false;\">Закрыть</a></div>");
	div.append(form);
	
	//div.insertAfter(link);
	div.insertAfter($("#comment_"+comment_id+"_controls"));
	divId = "comment_"+comment_id+"_div";
	
	//openNiceForm(link, divId);
	div.show(100);
	
	$("#comment_"+comment_id+"_textarea").focus();
	
}

function showCommentAnswerForm(answer_id, cont) // ответ на ответ к вопросу :)
{
	$(".inline_block").remove();
	
	var link = $("#answer_"+answer_id+"_comment_link");
	
	if (!cont)
		cont = "";
        
    var uri = "/questions/comment_answer";
	
	form = $("<form action='"+uri+"' method='POST'>"
		+"<input type='hidden' name='answer_id' value='"+answer_id+"' />"
		+"<textarea id='comment_"+answer_id+"_textarea' class='comment_answer_content' name='content'>"
		+cont
		+"</textarea>"
		+"<br/>"
		+"<input type='submit' value='Отправить' />"
		+"</form>");
	
	div = $("<div id='comment_"+answer_id+"_div' class='inline_block'></div>");
	div.append("<div style='text-align: right;'><a href='#' onclick=\"$('.inline_block').remove(); return false;\">Закрыть</a></div>");
	div.append(form);
	
	div.insertAfter($("#answer_"+answer_id+"_controls"));
	divId = "comment_"+answer_id+"_div";
	
	//openNiceForm(link, divId);
	div.show(100);
	
	$("#comment_"+answer_id+"_textarea").focus();
	
}

function setRating(r) {
	input = $("input[name='rating']");
	input.attr('value', r);
	//alert(input.attr('value'));
	
	$(".rating_control").addClass('off');
	$("#rating"+r).removeClass('off');
	
	$(".rating_label").addClass('off');
	$("#rating"+r+"_label").removeClass('off');
	
}

function editOpeningHours()
{
	var divId = "openingHours_edit";
	tb_show('Часы работы','#TB_inline?height=290&width=400&inlineId='+divId);
	
}

function getDistricts(f)
{
	select = $("select[name='district_id']");
	parentId = $("select#city_id").val();
	
	select.empty();
	
    $("<option></option>")  
        .attr("value", 0)  
        .html("идет загрузка...") 
        .appendTo(select);
		
	$.get("/reviews/getdistricts/id/"+parentId+".ajax", function(data) {
        
		select.empty();
		
		 $("<option></option>") 
            .attr("value", '0') 
            .html('не выбрано') 
            .appendTo(select);
        
        $("item", data).each(function(){
            
            name = $(this).text();
     	    id = $(this).attr("id");
            
            //alert(name);
            
            $("<option></option>") 
            .attr("value", id) 
            .html(name) 
            .appendTo(select);
        }
        );
		
		if (f) f();
		
	});
	
}

function getSubCategories(f)
{
	select = $("select[name='sub_category_id']");
	parentId = $("select[name='category_id']").val();
	
	//$('#sub_category_holder').show();
	select.empty();
	
    $("<option></option>")  
        .attr("value", 0)  
        .html("идет загрузка...") 
        .appendTo(select);
		
	//$.get("/companies/getsubcategories_ajax/id/"+parentId, function(data) {
	$.get("/companies/getsubcategories/id/"+parentId+".ajax", function(data) {
        
        //alert(data);
        
        select.empty();
        //select.removeAttr('disabled');
		
		 $("<option></option>") 
            .attr("value", '0') 
            .html('не выбрано') 
            .appendTo(select);
        
        $("item", data).each(function(){
            
            name = $(this).text();
     	    id = $(this).attr("id");
            
            //alert(name);
            
            $("<option></option>") 
            .attr("value", id) 
            .html(name) 
            .appendTo(select);
        }
        );
		
		if (f) f();
		
	});
	
}

function reviewUpdateCustomFields()
{
	div = $("#custom_fields");
	div.html("<i>Идет загрузка...</i>");
	//div.show();
	
	setId = $("select[name='category_id']").val();
	
	$.get("/companies/getfieldsbycategory/id/"+setId+".ajax", {}, function(data) {
		
		div.empty();
		
		div.append("<ul>");
		
		$("item", data).each(function(){
            
            var name = $(this).attr("name");
     	    var id = $(this).attr("id");
            
            div.append("<li><b>"+name+"</b>&#160;");
			
			$("option", this).each(function(){
				
				input = $("<input type='radio' />")
				.attr('name', 'option'+id)
				.attr('id', 'option'+id+'-'+$(this).attr('id'))
				.attr('value', $(this).attr('id'))
				;
				div.append(input);
				div.append("<label for='option"+id+"-"+$(this).attr('id')+"'>"+$(this).text()+"</label>");
			}
			);
			
			div.append("</li>");
        }
        );
		
		div.append("</ul>");
		
	});
}

function getMatchesCompanies()
{
	var wrapper = $("#matches_box");
	var div = $("#matches");
	div.html("<i>Идет загрузка...</i>");
	
	wrapper.slideDown('slow');
	
	var name = $("input#ctitle").val();
	
	$.get("/companies/matches.ajax?q="+name, {}, function(data) {
		
		div.empty();
		
		if (!$("item", data).length) {
			$("#matches_box").hide(); // почему-то не работает...
			return;
		}
		
		div.append("<ul class='side_list'>");
		
		$("item", data).each(function(){
            
			var id = $(this).attr("id");
			var name = $("title", this).text();
			var uri = $("uri", this).text();
			var address = $("address", this).text();
			var phone = $("phone", this).text();
			var website = $("website", this).text();
			var category_id = $("category_id", this).text();
            
			div.append("<li><a id='match_"+id+"' href='/"+uri+"'>"+name+"</a></li>");
			$("#match_"+id).click(function(){
				
				var data = [];
				data[0] = name;
				data[1] = id;
				data[2] = address;
				data[3] = '';
				data[4] = category_id;
				data[5] = '';
				data[6] = phone;
				data[7] = website;
				data[8] = '';
				
				reviewSelectCompany(data);
				return false;
				
			});
        }
        );
		
		div.append("</ul>");
		
	});
}

function checkThisUserreview()
{
    companyId = $("input[name='company_id']").val();
    div = $("#company_review");
    subm = $("#companies_review_subm");
    contentArea = $("#reviewarea");
    
    if (companyId == "" || companyId == 0) {
        div.html("");
        return;
    }
    
    /*
	div.show();
    div.html("<i>Идет загрузка...</i>");
    */
    
    subm.attr("disabled","disabled");
    contentArea.attr("disabled","disabled");
	//$("#review_controls").attr("disabled","disabled");
    
    contentArea.val("Идет загрузка...");
    
    $.get("/reviews/getthisuserreview_ajax/cid/"+companyId, {}, function(data) {
     	
        //alert(data);
        
        contentArea.val("");
		
     	if ($("id", data).text() != "") {
     		
            /*
			html = "";
			html += "<div class='review_content'>";
            html += "<i>Вы уже оставили отзыв к этой компании<br/>Оставить новый отзыв можно только через 15 дней<br/></i>"
            html += "<div class='review_head'>";
            html += ("<div class='review_postdate'>"+$("post_time", data).text() + "</div></div>");
            //html += ("<h1>" + $("company_rating", data).text() + "</h1><br/>");
			html += "<div class='review_text'>";
            html += $("content", data).text();
            html += "</div>";
			html += "</div>";
            
			div.html(html);
            */
			
			txt = "Вы уже оставили отзыв к этой компании\nОставить новый отзыв можно только через 15 дней";
			contentArea.val(txt);
            
            subm.attr("disabled","disabled");
            contentArea.attr("disabled","disabled");
            
            //$("#review_controls").attr("disabled","disabled");
            //$("#custom_fields").hide();
            
     	}
        else {
        
            //div.html("<div class='review_content'><i>Вы можете оставить отзыв</i></div>");
			div.html("");
			div.hide();
            subm.removeAttr("disabled");
            contentArea.removeAttr("disabled").val('');
            //$("#review_controls").removeAttr("disabled");
            //$("#custom_fields").show();
			reviewUpdateCustomFields();
            
            contentArea.focus();
        }
	});
}

//
function reviewSetNewCompany()
{    
    $("#newcompanycontrols").show(300);
	
	subm = $("#companies_review_subm");
    contentArea = $("#reviewarea");
    
    // выберем "создать новое" в списке
    //$("select[name='company_id'] option[value=0]").attr("selected", true);
    
    $("#company_review").html("");
	$("#company_review").hide();
	
    $("#companies_review_subm").removeAttr("disabled");
    $("#reviewarea").removeAttr("disabled");
	
	// fields
	$("select#city_id").removeAttr("disabled");
	$("select[name='district_id']").removeAttr("disabled");
	$("select[name='category_id']").removeAttr("disabled");
	$("textarea[name='address']").removeAttr("disabled").val(' ');
	$("input[name='phone']").removeAttr("disabled").val('');
	$("input[name='website']").removeAttr("disabled").val('');
	// --
	
	getMatchesCompanies();
	
	//$("#company").hide();
    //$("#review_controls").removeAttr("disabled");
	subm.removeAttr("disabled");
    contentArea.removeAttr("disabled"); //.val('');
    
    //$("#custom_fields").show();
	reviewUpdateCustomFields();
	
	$("select[name='sub_category_id']").empty().removeAttr("disabled");
	getSubCategories();
	
    $("#title_change").hide();
    
    //$("input[name='title']").attr("value", "Новое заведение");
    $("#ctitle").removeAttr("disabled");
    
    $("#ctitle").focus();
    
}

//
function reviewSelectCompany(data)
{
    $("#company_id").attr("value", !data ? "0" : data[1]);
    var cid = !data ? 0 : data[1];
    
    $("#ctitle").attr("disabled","disabled");
	
	if (cid > 0)
		$("#ctitle").val(data[0]);
    
    if (cid <= 0) {
        $("#newcompanycontrols").show(300);
        reviewSetNewCompany();
        return;
    }
    else {
        $("#newcompanycontrols").hide();
        checkThisUserreview();
    }
    
    var img = data[3].length > 0 ? "<img src='" + data[3] + "' />" : "";
    var address = data[2];
    var phone = data[6];
    var website = data[7];
    var city_id = data[5];
    var category_id = data[4];
	var sub_category_id = data[8];
	
	$("select[name='category_id'] option").removeAttr("selected");
	$("select[name='sub_category_id'] option").removeAttr("selected");
    $("select#city_id option").removeAttr("selected");
	
	// fields
	$("select#city_id").attr("disabled", "disabled");
	$("select[name='district_id']").attr("disabled", "disabled");
	$("select[name='category_id']").attr("disabled", "disabled");
	$("select[name='sub_category_id']").attr("disabled", "disabled");
	$("textarea[name='address']").attr("disabled", "disabled").val('');
	$("input[name='phone']").attr("disabled", "disabled").val('');
	$("input[name='website']").attr("disabled", "disabled").val('');
	// --
	
	// здесь нужно подгрузить поля выбранной компании
    $("select[name='category_id'] option[value="+category_id+"]").attr("selected", true);
	getSubCategories(function() {
		$("select[name='sub_category_id'] option[value="+sub_category_id+"]").attr("selected", true);
		}
	);
	//alert(sub_category_id);
	//$("select[name='sub_category_id'] option[value="+sub_category_id+"]").attr("selected", true);
	$("select#city_id option[value="+city_id+"]").attr("selected", true);
	$("textarea[name='address']").val(address);
	$("input[name='phone']").val(phone);
	$("input[name='website']").val(website);
	// --
    
    /*
    html = "";
    html += "<div class='review_content_full'>";
    html += "<br/>";
    html += img;
    html += "<br/>";
    html += ("Адрес: "+adrs+"<br/><br/>");
    html += "<a href='/companies/view/item/"+companyId+"'>Перейти на страницу компании</a>";
    html += "</div>";
    $("#company").html(html);
    $("#company").show();
    */
    
    $("#title_change").show();
}

function reviewSetCompanyNotSelected()
{
	$("#matches_box").hide();
	$("#matches").empty();

	var subm = $("#companies_review_subm");
    var contentArea = $("#reviewarea");
	
    $("#newcompanycontrols").hide();
    
    $("#company_review").html("");
	$("#company_review").hide();
	
    subm.attr("disabled","disabled");
    contentArea.attr("disabled","disabled"); //.val('');
	
    //$("#review_controls").attr("disabled", "disabled");
    $("#custom_fields").empty();
	
	//$("#company").hide();
    $("#title_change").hide();
	
	// fields
	$("select[name='city_id']").attr("disabled", "disabled");
	$("select[name='category_id']").attr("disabled", "disabled");
	$("textarea[name='address']").attr("disabled", "disabled").val('');
	$("input[name='phone']").attr("disabled", "disabled").val('');
	$("input[name='website']").attr("disabled", "disabled").val('');
	// --
    
    $("#ctitle").attr("value", "");
    $("#ctitle").removeAttr("disabled");
    
    $("#ctitle").focus();
    
}

function formatItem(row) {
    var adrs = row[2].length > 0 ? " (<i>" + row[2] + "</i>)" : "";
    var img = row[3].length > 0 ? "<img height='102px' width='102px' src='" + row[3] + "' />" : "";
    //return img + "&#160;" + row[0] + adrs;
    return row[0] + adrs;
}

function formatResult(row) {
    if (row[1] > 0) {
        return row[0].replace(/(<.+?>)/gi, '');
    }
    else return $("#ctitle").val();
}

function testtt()
{
    //alert("getCompaniesByTag");
    
    //
    $.get("/companies/ajaxsearch?q=хол", function(data) {
        
        alert(data);
           
        }
        );
        
}

// Подгружает список компаниий по тегу
function getCompaniesByTag()
{
    //alert("getCompaniesByTag");
    
    var parentTag = $("select[name='parent_tag']").val();
    
    $("select[name='company_id']").empty();
    $("<option></option>")  
        .attr("value", 0)  
        .html("идет загрузка...") 
        .appendTo($("select[name='company_id']"));
    
    // получаем список компаний
    $.get("/companies/getcompaniesbytag_ajax/id/"+parentTag, function(data) {
        
        //alert(data);
        
        $("select[name='company_id']").empty();
        
        $("<option></option>") 
        .attr("value", 0)
        .html("-----Создать новое-----") 
        .appendTo($("select[name='company_id']"));
        
        $("item", data).each(function(){
            
            name = $(this).text();
     	    id = $(this).attr("id");
            
            //alert(tagname);
            
            $("<option></option>") 
            .attr("value", id) 
            .html(name) 
            .appendTo($("select[name='company_id']"));   
        }
        );
        
        reviewSelectCompany();
        
    });
}

// Редактируем сведения о компании с помощью ajax
function ajaxSubmitCompanyAddTag(company_id)
{
	var formId = "addtag_form";
    var a = srlzForm(formId);
     
    subm = $("#submit_tag");
    subm.attr("value", "Идет загрузка...");
	subm.attr("disabled","disabled");
    
    //div = $("#company_tags"); // div с тегами
     
     $.post("/companies/addcompanytag", a, function(data) {
		
        // обновим теги на странице
        /*div.load("/companies/gettags_ajax/id/"+company_id, {}, function(){
            // ...
            subm.attr("value", "Добавить");
            subm.removeAttr("disabled");
        });*/
	
		$("#company_tags").empty();
        
		$("item", data).each(
		
			function(i)
			{
				id = $(this).attr("id");
				name = $(this).attr("name");
				
				if (i != 0) {
					$("<li>&#160;|&#160;</li>")
					.appendTo($("#company_tags"));
				}
				
				html = "";
				
                /*
				if ($("parent", this).length) {
					pid = $("parent", this).attr('id');
					pname = $("parent", this).text();
					html += "<a href='/companies/bytag/id/"+pid+"'>"+pname+"</a> >";
				}
                */
				
				html += "<a href='/companies/bytag/id/"+id+"'>"+name+"</a>";
				
				li = $("<li></li>")
				.append(html)
				.appendTo($("#company_tags"))
				.effect("highlight", {}, 1000);  
			}
			
		);
		
		subm.attr("value", "Добавить");
        subm.removeAttr("disabled");
		
		closeAllNiceForms();
     	
	});
}

// Редактируем часы работы с помощью ajax
function ajaxSubmitOpeningHours()
{
	var formId = "edit_openinghours_form";
	var a = srlzForm(formId);

	link = $("#edit_openinghours_link");
    link.replaceWith("<small id='edit_openinghours_link'><u>Идет загрузка...</u></small>");
     
    $.post("/companies/postopeninghours", a, function(data) {
     	
     	// если форма принята, уведомим юзера
     	if ($("result", data).text() == "Ok") {
     		//alert("Ваша правка будет рассмотрена модератором");
			$("#edit_openinghours_link").replaceWith("<small><u>Ваша правка будет рассмотрена модератором</u></small>");
     	}
		
		// если ошибка, выводим
     	if ($("result", data).text() == "Error") {
     		alert("Произошла ошибка: "+$("result", data).attr("description")); 
     	}
     	
	});
	 
	tb_remove();
}

// Редактируем сведения о компании с помощью ajax
function ajaxSubmitEditCompany(fieldName)
{
	var formId = fieldName+"form";
	var a = srlzForm(formId);
     
    div = $("#companyedit_"+fieldName);
	div.hide();
    
    divc = $("#companyedit_"+fieldName+"_controls");
    divc.html("<small><u>Идет загрузка...</u></small>");
     
     $.post($("#"+formId).attr("action"), a, function(data) {
     	
     	// если форма принята, уведомим юзера
     	if ($("result", data).text() == "Ok") {
     		
			if ($("newvalue", data).length > 0) {
				$("#field_value_"+fieldName).html($("newvalue", data).text())
				.effect("highlight", {}, 1000);
				divc.html("<small><u>Изменения приняты</u></small>");
			}
			else {
				divc.html("<small><u>Ваша правка будет рассмотрена модератором</u></small>");
			}
			
     	}
		
		// если ошибка, выводим
     	if ($("result", data).text() == "Error") {
     		alert("Произошла ошибка: "+$("result", data).attr("description")); 
     	}
     	
	});
}

// Редактируем кастомное с помощью ajax
function ajaxSubmitCompanyCustomField(fieldId, companyId)
{
	var formId = "field"+fieldId+"form";
	var a = srlzForm(formId);
     
    div = $("#field"+fieldId+"edit");
	div.hide();
    
    divc = $("#companycustomfield_"+fieldId+"_controls");
    divc.html("<small><u>Идет загрузка...</u></small>");
     
     $.post($("#"+formId).attr("action"), a, function(data) {
     	
		//alert(data);
		
     	// если форма принята, уведомим юзера
     	if ($("result", data).text() == "Ok") {
     		
			divc.html("<small><u>Ваш голос засчитан</u></small>");
			
			// Обновим значение поля
			if ($("newvalue", data).length > 0) {
				//alert($("newvalue", data).text());
				$("#companycustomfield_"+fieldId+"_value").html($("newvalue", data).text());
			}
			
     	}
		
		// если ошибка, выводим
     	if ($("result", data).text() == "Error") {
     		alert("Произошла ошибка: "+$("result", data).attr("description")); 
     	}
     	
	});
}

// Собирает и упаковывает теги компании перед отправкой при регистрации
function getCompanyTags()
{
    var str = "";
	$("input:checkbox").each(function(i){
		if (this.checked) {
		    //alert(this.id+"="+this.value);
			str=str+this.value+'|';
		}
	});
	$("#tags_packed").attr("value", str);
}

// Показывает подч. теги на странице регистр. компании (флажки)
function showSubTags(tagId)
{
	var div = $("#tag"+tagId+"_subtags_div");
	if (div.length) {
		div.show(300);
	}
}

function showArcadePoints(el, message)
{
	var p = el.position();
			
	// Покажем аркадные очки :)
	$("<div class='arcade_points'><p>"+message+"</p></div>")
		.hide()
		.insertAfter(el)
		.css("top", p.top-15)
		.css("left", p.left+el.width()+5)
		.show()
		.animate({
			opacity: 0,
			top: p.top-80
		}, 4000, "swing", function() {
				$(this).remove();
			}
		);
}

// Проголосуем за отзыв - ajax
function rateCompanyreview(reviewId, rating, companyId, domId)
{
    if (!domId) {
        domId = reviewId;
    }
    
    //$('#review_'+domId+'_vote_button').click(function(){return false;});
	
	var src = $('#review_'+domId+'_vote_button img').attr('src');
    $('#review_'+domId+'_vote_button img').attr('src', '/images/indicator.gif');

     $.get("/reviews/rate/cid/"+reviewId+"/rate/"+rating, {}, function(data) {
     	
		$('#review_'+domId+'_vote_button img').attr('src', src);
		
        // обновим коммент
        review_rating = $("review_rating", data).text();
		user_rating = $("user_rating", data).text();
		message = $("message", data).text();
		user_points = $("user_points", data).text();
		
        //$('#review_'+domId+'_vote_button').remove();
        $("#small_rating_"+domId).html("Рейтинг: "+review_rating).effect("highlight", {}, 1000);
		
        $('#review_'+domId+'_user_rating').html(user_rating);
		
		$('#session_user_points').html(user_points).effect("highlight", {}, 1000);
		
		//if (length(message) > 0)
			//alert(message);
			
		showArcadePoints($('#small_rating_'+domId), message);
		
		
	});
}

// Опустим отзыв - ajax
function unRateCompanyreview(reviewId, rating, companyId, domId)
{
    if (!domId) {
        domId = reviewId;
    }
    
    //$('#review_'+domId+'_vote_button').click(function(){return false;});
	
	var src = $('#review_'+domId+'_down_button img').attr('src');
    $('#review_'+domId+'_down_button img').attr('src', '/images/indicator.gif');

     $.get("/reviews/unrate/cid/"+reviewId+"/rate/"+rating, {}, function(data) {
     	
		$('#review_'+domId+'_down_button img').attr('src', src);
		
        // обновим коммент
        review_rating = $("review_rating", data).text();
		user_rating = $("user_rating", data).text();
		message = $("message", data).text();
		user_points = $("user_points", data).text();
		
        //$('#review_'+domId+'_vote_button').remove();
        $("#small_rating_"+domId).html("Рейтинг: "+review_rating).effect("highlight", {}, 1000);
		
        $('#review_'+domId+'_user_rating').html(user_rating);
		
		$('#session_user_points').html(user_points).effect("highlight", {}, 1000);
		
		//if (length(message) > 0)
			//alert(message);
			
		showArcadePoints($('#small_rating_'+domId), message);
		
	});
}

//
function updateUsersLinkedToEvent(data, eventId)
{
	if ($("#event"+eventId+" ul").length) {
	
		$("#event"+eventId+" ul").empty();
			
		$("item", data).each(
		
			function()
			{
				id = $(this).attr("id");
				name = $(this).text();
				login = $(this).attr("login");
				current = $(this).attr("current");
				
				li = $("<li> <a href='/profiles/"+login+"'>"+name+"</a></li>");
				li.appendTo($("#event"+eventId+" ul"))
				.effect("highlight", {}, 1000);
				
				if (current == "yes") {
					li.addClass("current");
				}
				
			}
			
		);
	
	}
	
	$("#count_users_event"+eventId).html("На событие идут "+$("item", data).length+" человек");
}

// 
function addToEvent(eventId)
{
    $("#event_"+eventId+"_button").click(function(){return false;});
    $("#event_"+eventId+"_button").html("<img height='12px' width='12px' src='/images/indicator.gif' />");
    
     $.get("/events/addtoevent/id/"+eventId, {}, function(data) {
        
        updateUsersLinkedToEvent(data, eventId);
        
		$("#event_"+eventId+"_button").html("Я передумал");
		$("#event_"+eventId+"_button").attr('href', '/events/removefromevent/id/'+eventId);
		$("#event_"+eventId+"_button").unbind('click');
		$("#event_"+eventId+"_button").click(function(){
						removeFromEvent(eventId);
						return false;
						});
     	
	});
}

// 
function removeFromEvent(eventId)
{
    $("#event_"+eventId+"_button").click(function(){return false;});
    $("#event_"+eventId+"_button").html("<img height='12px' width='12px' src='/images/indicator.gif' />");
    
     $.get("/events/removefromevent/id/"+eventId, {}, function(data) {
        
        updateUsersLinkedToEvent(data, eventId);
        
		$("#event_"+eventId+"_button").html("Я пойду!");
		$("#event_"+eventId+"_button").attr('href', '/events/addtoevent/id/'+eventId);
		$("#event_"+eventId+"_button").unbind('click');
		$("#event_"+eventId+"_button").click(function(){
						addToEvent(eventId);
						return false;
						});
		
	});
}

function showHello(title) {
	//c = "Хотите высказаться о "+title+"? <a class='underl' href='/user/register'>Зарегистируйтесь</a> и напишите";
	c = "<a style='display:block; cursor: pointer; height:40px;' href='/'>Ой, куда я попал?</a>";
	$.jGrowl(c, { sticky: true, closer: false});
}

function showEditCategoryAnswerForm(id)
{
    $("#answer_"+id+"_div").remove();
    
	cont = $("#answer_"+id+"_content").html();
	
	form = $("<form action='/questions/answerupdate' method='POST'>"
		+"<input type='hidden' name='id' value='"+id+"' />"
		+"<br/>"
		+"<textarea id='answer_"+id+"_textarea' class='comment_answer_content' name='content'>"
		+cont
		+"</textarea>"
		+"<br/>"
		+"<input type='submit' value='Отправить' />"
		+"</form>");
	
	div = $("<div id='answer_"+id+"_div' class='comment_answer_form_div'></div>");
	div.append(form);
	
	div.appendTo($("body"));
	
	tb_show('Редактирование ответа','#TB_inline?height=260&width=410&inlineId=answer_'+id+'_div');
	
    enableWysiwyg($("#answer_"+id+"_textarea"));
	$("#answer_"+id+"_textarea").focus();
	
}

function showEditImageTitlePopup(link, image_id)
{
    $("#image_"+image_id+"_edit").remove();
    
	title = $("#image_"+image_id+"_title").html();
	
	form = $("<form action='/companies/updateimage' method='POST'>"
		+"<input type='hidden' name='id' value='"+image_id+"' />"
		+"<label>Заголовок:</label><br/>"
		+"<input type='text' name='title' value='"+title+"' />"
		+"<br/>"
		+"<input type='submit' value='Отправить' />"
		+"</form>");
	
	div = $("<div id='image_"+image_id+"_edit'></div>");
	div.append(form);
	
	div.appendTo($("body"));
    
    openNiceForm($(link), "image_"+image_id+"_edit");
    
}


var advSearch = {
    
	init: function(){
		
		$("select[name='category_id']").change(function(){
			var val = $(this).val();
			if (val > 0) {
				advSearch.onChangeCategory();
				$("select[name='sub_category_id']").removeAttr('disabled');
				advSearch.setCustomFields();
			}
			else {
				$("select[name='sub_category_id']").attr('disabled', 'disabled');
				$("select[name='sub_category_id']").empty();
			}
		});
		
	},
	
	onChangeCategory: function()
	{
		select = $("select[name='sub_category_id']");
		parentId = $("select[name='category_id']").val();
		
		select.empty();
		
		$("<option></option>")  
			.attr("value", 0)  
			.html("идет загрузка...") 
			.appendTo(select);
			
		$.get("/companies/getsubcategories/id/"+parentId+".ajax", function(data) {
			
			select.empty();
			
			 $("<option></option>") 
				.attr("value", '0') 
				.html('не выбрано') 
				.appendTo(select);
			
			$("item", data).each(function(){
				
				name = $(this).text();
				id = $(this).attr("id");
				
				$("<option></option>") 
				.attr("value", id) 
				.html(name) 
				.appendTo(select);
			}
			);
			
		});
		
	},
	
	setCustomFields: function()
	{
		$(".custom_field_tr").hide();
		$(".custom_field_sel").each(
			function()
			{
				$("option", this).removeAttr("selected");
				$("option[value=0]", this).attr("selected", true);
			}
		);
		
		fieldsetId = $("select[name='category_id']").val();
		
		$.get("/companies/getfieldsbycategory/id/"+fieldsetId+".ajax", {}, function(data) {
			
			$("item", data).each(function(){
				
				var name = $(this).attr("name");
				var id = $(this).attr("id");
				
				$("#row_f"+id).show();
				
			}
			);
			
		});
	}
	
}










