$(function() {

    $('table.adv_list tr').hover(
        function() {$(this).addClass('tr-hover');},
        function() {$(this).removeClass('tr-hover');}
    );


    $('body').append('<div class="frame-white png" id="paid-positions-info"><div class="frame-white-r png"><div class="frame-white-b png"><div class="frame-white-l png"><div class="frame-white-c" id="paid-positions-content"></div></div></div></div></div>');

    $('.raise-adv-link').hover(
        function() {
            var popup = $('#paid-positions-info');
            $(this).append(popup);
            $('#paid-positions-content').html('').html($(this).attr('alt'));
            popup.css({'top' : '-'+(popup.height()/2 - 10)+'px', 'left' : '-320px'}).show();
        },
        function() {
            $('#paid-positions-info').hide();
        }
    );
});

function hideExpandedSearch() {
    $("#filter-is-ext-search").val('0');

    $('#auto-filter-full-wrapper').hide();
    $('#auto-filter-short-wrapper').show();
    $('#filter-auto-short-mark').append($('#auto-filter-mark-wrapper'));
    $('#filter-auto-short-model').append($('#auto-filter-model-wrapper'));
    $('#filter-auto-short-year-from').append($('#auto-filter-year-from-wrapper'));
    $('#filter-auto-short-year-to').append($('#auto-filter-year-to-wrapper'));
    $('#filter-auto-short-price-from').append($('#auto-filter-price-from-wrapper'));
    $('#filter-auto-short-price-to').append($('#auto-filter-price-to-wrapper'));
}

function expandSearch() {
    $("#filter-is-ext-search").val('1');

    $('#auto-filter-full-wrapper').show();
    $('#auto-filter-short-wrapper').hide();
    $('#filter-auto-mark').append($('#auto-filter-mark-wrapper'));
    $('#filter-auto-model').append($('#auto-filter-model-wrapper'));
    $('#filter-auto-year-from').append($('#auto-filter-year-from-wrapper'));
    $('#filter-auto-year-to').append($('#auto-filter-year-to-wrapper'));
    $('#filter-auto-price-from').append($('#auto-filter-price-from-wrapper'));
    $('#filter-auto-price-to').append($('#auto-filter-price-to-wrapper'));
}

function getModels(isAddForm) {
	$(document).ready(function(){

		$("select#model_id").empty();
		$("select#model_id").append($("<option value=''>---</option>"));
		$("select#model_id").removeAttr('disabled');

		$.ajax({
			async: false,
			type: "GET",
			url: "http://" + location.hostname + "/ajax/get_models_json/" + $("select#mark_id").val(),
			cache: false,
			dataType: 'json',
			beforeSend: function() {
				$("#loading, #loading_expanded").css("display", "block");
			},
			success: function(data, status) {
				if (data.result == 'OK') {
                                    for (var i = 0; i < data.models.length; i++)
                                    {
                                        $("select#model_id").append($("<option value='"+data.models[i].id+"'>"+data.models[i].model+"</option>"));
                                    }
				}
				if (isAddForm) {
					$("select#model_id").append($("<option value='other'>Другая</option>"));
				}
				$("#loading, #loading_expanded").css("display", "none");
			},
                        error: function(data, status, e){
                            alert(e);
                            $("#loading, #loading_expanded").css("display", "none");
                        }
		});
	});
}

function updateModelsAndMarks(mark) {
	$("select#model_id").removeAttr('disabled');
	if (mark == '') {
		$("select#model_id").empty();
		$("select#model_id").append($("<option value=''>---</option>"));
		$("#new_mark").hide();
		$("#new_model").hide();
		$("#new_model_row").hide();
		$("input[name='new_mark']").val('');
		$("input[name='new_model']").val('');
	} else if (mark == 'other') {
		$("select#model_id").empty();
		$("select#model_id").append($("<option value='other'>Другая</option>"));
		$("#new_mark").show();
		$("#new_model").show();
		$("#new_model_row").show();
	} else {
		$("#loading, #loading_expanded").css("display", "block");
		setTimeout(function() {getModels(true)}, 100);
		$("#new_mark").hide();
		$("#new_model").hide();
		$("#new_model_row").hide();
		$("input[name='new_mark']").val('');
		$("input[name='new_model']").val('');
	}
}

function updateModels(model) {
	if (model == 'other') {
		$("#new_model_row").show();
		$("#new_model").show();
	} else {
		$("#new_model").hide();
		$("#new_model_row").hide();
		$("input[name='new_model']").val('');
	}
}

function getMarksJSON() {
	$(document).ready(function(){

                setEmptyMarksModels();

		$.ajax({
			type: "GET",
			url: "http://" + location.hostname + "/ajax/get_marks_json/" + $("#type").val(),
			cache: false,
			dataType: 'json',
			beforeSend: function() {
				$("#loading, #loading_expanded").css("display", "block");
			},
			success: function(data, status) {
				if (data.result == 'OK') {
                                    for (var i = 0; i < data.marks.length; i++)
                                    {
                                            $("select#mark_id").append($("<option value='"+data.marks[i].id+"'>"+data.marks[i].name+"</option>") );
                                    }
				}
				$("#loading, #loading_expanded").css("display", "none");
                                $("select#mark_id").jqTransSelect({updateForm:true});
			},
            error: function(data, status, e){
            	$("#loading, #loading_expanded").css("display", "none");
            }
		});
	});

}

function getFullSearchMarksTransformed() {
	$(document).ready(function(){

                setEmptyMarksModelsTransformed();

		$.ajax({
			type: "GET",
			url: "http://" + location.hostname + "/ajax/get_marks_transformed/" + $("#type").val(),
			cache: false,
			dataType: 'html',
			beforeSend: function() {
				$("#loading, #loading_expanded").css("display", "block");
			},
			success: function(data, status) {
                                $('#mark-selector ul').append(data);
                                $('#mark-selector').niceSelector({'onchange':'getModelsTransformed()'});
				$("#loading, #loading_expanded").css("display", "none");
			},
                        error: function(data, status, e){
                            $("#loading, #loading_expanded").css("display", "none");
                        }
		});
	});
}

function setEmptyMarksModels() {
    $("select#mark_id").empty();
    $("select#mark_id").append($("<option value=''>Все марки</option>") );
    $("select#model_id").empty();
    $("select#model_id").append($("<option value=''>Все модели</option>") );
    $("select#mark_id").jqTransSelect({updateForm:true});
    $("select#model_id").jqTransSelect({updateForm:true});
}

function setEmptyMarksModelsTransformed() {
        $('#mark-selector span').html('Все марки');
        $('#mark-selector ul').empty().append($('<li><a href="#" onclick="return false;" value="" class="selected">Все марки</a></li>') );
        $('#mark-selector input').val('');
        $('#auto-filter-model-selector span').html('Все модели');
        $('#auto-filter-model-selector ul').empty().append($('<li><a href="#" onclick="return false;" value="" class="selected">Все модели</a></li>') );
        $('#auto-filter-model-selector input').val('');
        
        $('#auto-filter-model-selector').niceSelector();
        $('#mark-selector').niceSelector({'onchange':'getModelsTransformed()'});
}

function getBodies(type) {

    $(document).ready(function(){
        $.ajax({
            type: "GET",
            url: "http://" + location.hostname + "/index.php",
            cache: false,
            data: "mod=advert&act=ajax&do=get_bodies_for_search&type=" + type,
            dataType: "html",
            success: function(html) {
                    $("#body_type_block").html(html);
            },
            error: function(){
                $("#body_type_block").html("<select name='body_type_id' class='search_select_m'><option value=''>Любой</option></select>");
            }
        });
    });

}

function rulesSubmit() {
	if ($('#rules').attr("checked")) {
		$('#submit').removeAttr('disabled');
	} else {
		$('#submit').attr('disabled', 'disabled');
	}
}

function updateType(type) {
	switch(type) {
		case 'car' :top.location.href = "http://" + location.hostname + "/add_auto/car/";
		break;
		case 'truck' :top.location.href = "http://" + location.hostname + "/add_auto/truck/";
		break;
		case 'moto' :top.location.href = "http://" + location.hostname + "/add_auto/moto/";
		break;
		case 'bus' :top.location.href = "http://" + location.hostname + "/add_auto/bus/";
		break;
		case 'spec' :top.location.href = "http://" + location.hostname + "/add_auto/spec/";
		break;
	}
}

function updateMilage(milage) {
	switch(milage) {
		case 'yes' :
			$('#miles').val('');
			$('#miles').removeAttr('disabled');
		break;
		case 'no' :
			$('#miles').val('0');
			$('#miles').attr('disabled', 'disabled');
		break;
	}
}

function selectPhoto(src, select_id) {
	$('#selected_photo').html("<img src='uploads/advert/xl/"+src+"' style='border: 1px solid #cccccc;'>");
	$("img.photo_m_selected").removeClass("photo_m_selected");
	$('#'+select_id).addClass("photo_m_selected");
	return false;
}

function validateAdvert(form) {
	// General

	if (form.mark_id.value == '') {
		alert('Укажите марку');
		return false;
	}

	if (form.model_id.value == '') {
		alert('Укажите модель');
		return false;
	}

	if (form.body_type_id.value == '') {
		alert('Тип кузова не указан');
		return false;
	}

	if (form.year.value == '') {
		alert('Год выпуска не указан');
		return false;
	}

	var milage = getRadioGroupValue(form.milage);
	if (milage == 'yes') {
		var filter_miles = /^\d{1,7}$/;
		if (!filter_miles.test(form.miles.value)) {
			alert('Пробег не указан или указан неверно.\r');
			return false;
		}
	}

	if (form.condition_id.value == '') {
		alert('Состояние не указано');
		return false;
	}

	if (form.color_id.value == '') {
		alert('Цвет не указан');
		return false;
	}

	var filter_price = /^\d{4,9}$/;
	if (!filter_price.test(form.price.value)) {
		alert('Цена не указана или указана неверно.\rВнимание! Цена должна указываться с нулями, без пробелов.');
		return false;
	}

	if (form.contact_name.value == '') {
		alert('Персона для контактов не указана');
		return false;
	}

	if (form.contact_phone_1.value=='' && form.contact_phone_2.value=='' && form.contact_email.value=='' && form.contact_icq.value=='') {
		alert('Хотя бы одно поле из "Телефон", "E-mail" и "ICQ" должно быть заполнено');
		return false;
	}


	if (form.sec_code) {
		if (form.sec_code.value == '') {
			alert('Проверочный код не указан');
			return false;
		}
	}

	// Private
    var type = getRadioGroupValue(form.type);

	if (type=='car' || type=='truck' || type=='bus' || type=='moto') {
            if (type=='moto') var filter_engine_v = /^\d{2,5}$/;
            else var filter_engine_v = /^\d{3,5}$/;
            if (!filter_engine_v.test(form.engine_v.value)) {
                    alert('Объем двигателя не указан или указан неверно');
                    return false;
            }
	}

	if (type=='car' || type=='truck' || type=='bus') {
		if (form.engine_id.value == '') {
			alert('Тип двигателя не указан');
			return false;
		}

		var kpp_passed = false;
		for (var i=0; i<form.kpp.length; i++) {
        	if (form.kpp[i].checked) kpp_passed = true;
		}
		if (!kpp_passed) {
			alert('КПП не указана');
			return false;
		}

		var helm_passed = false;
		for (var i=0; i<form.helm.length; i++) {
        	if (form.helm[i].checked) helm_passed = true;
		}
		if (!helm_passed) {
			alert('Руль не указан');
			return false;
		}
	}

	if (type=='car') {
		var drive_passed = false;
		for (var i=0; i<form.drive.length; i++) {
        	if (form.drive[i].checked) drive_passed = true;
		}
		if (!drive_passed) {
			alert('Привод не указан');
			return false;
		}
	}
        if (form.id.value) return true; // Редактирование
        else return checkCaptcha('sec_code', 'submit', 'submit-wait', false);
}

function changeAutoType(type) {
    $('#type,#type-select').val(type);
    $('.auto-filter-type-selected').removeClass('auto-filter-type-selected');
    $('#auto-filter-type-'+type).addClass('auto-filter-type-selected');
    updateSearch(true);
    $("select#type-select").jqTransSelect({updateForm:true});
}

function hideUnusefullSearchRows() {

    var type = $('#type').val();

    //show all first:
    $('#filter-fuel-div, #filter-body-row, #filter-drive-row, #filter-drive-div, #filter-kpp-div, #filter-helm-div').show().children('td').show().css('visibility', 'visible') //.css('visibility', 'visible');

    if (type == 'truck' || type == 'bus' || type == 'moto' || type == 'spec') {
            $('#filter-body-row, #filter-drive-div').hide();
    }
    if (type == 'moto' || type == 'spec') {
        $('#filter-kpp-div').hide();
        $('#filter-kpp-div, #filter-helm-div').hide();
        $('#filter-fuel-div').hide();
    }
    if (type == 'spec') {
        $('#filter-fuel-div, #filter-drive-row').hide();
    }
}

function updateSearch(getMarks) {

        $('#type').val($('#type-select').val());

        // Change type in short form
        $('.auto-filter-type-selected').removeClass('auto-filter-type-selected');
        $('#auto-filter-type-'+$('#type-select').val()).addClass('auto-filter-type-selected');

        if (getMarks == true) {
            getFullSearchMarksTransformed();
        }

        hideUnusefullSearchRows();
}

function setExtSearh(extSearch) {


	if (extSearch == '1') {

		$("input[name='ext_search']").val('1');

		$(".ext_search_link").html('Простой поиск');

	} else {

        $("input[name='ext_search']").val('');

        $(".ext_search_link").html('Подробный поиск');

	}
}

function updatePerPage(per_page, baseUrl) {
	var get = location.search;
	var url = 'http://'+location.hostname+baseUrl+'?';
	var param = {};

	if(get != '') {
		tmp = (get.substr(1)).split('&');
		for(var i=0; i < tmp.length; i++) {
			tmp2 = tmp[i].split('=');
			param[tmp2[0]] = tmp2[1];
		}

		for (var key in param) {

			if (key != 'page' && key != 'per_page') url += key+"="+param[key]+"&";

		}
	}
	top.location.href = url+'per_page='+per_page;
}

function addUserPhoto(blockId, inputName) {

    var total = $('#'+blockId+' input[type=file]').length;
    var photo_id = Math.round(Math.random() * 10000000);

    while ($('#photo-'+photo_id).html() != null) {
        var photo_id = Math.round(Math.random() * 10000000);
    }

    if (total == 10) return false;
    $("#"+blockId).append('<div id="photo-'+photo_id+'"><input type="file" name="'+inputName+'" /> <a href="#" onclick="$(\'#photo-'+photo_id+'\').remove(); return false;"><img src="'+locationBase+'/'+template+'/img/cross_circle.gif" title="удалить" alt="удалить" width="16px" height="16px" /></a></div>');

}

function autoAddNote(auto_id, title) {
    $(document).ready(function(){
        $.ajax({
                type: "GET",
                url: "http://" + location.hostname + "/ajax/note_add/auto/" + auto_id,
                cache: false,
                dataType: 'json',
                success: function(data, status) {
                    if (data.result == 'ERROR') {
                        if (data.error == 'NOTE_EXISTS')
                            alert('Это авто уже есть у вас в закладках');
                    }
                    if (data.result == 'OK') {
                        $('#add-delete-auto-note-'+auto_id).html("<a href=\"javascript:;\" onclick=\"autoDeleteNote('"+auto_id+"', '"+title+"')\" class=\"node-del\" title=\"удалить из блокнота\"></a>");

                        var num_nodes = 0;
                        $('#notepad-list li').each(function() {
                            num_nodes++;
                            if (num_nodes > 4)
                                $(this).remove();
                        });
                        $('#notepad-list').prepend("<li id=\"notepad-auto-node-"+auto_id+"\"><a class=\"delete-note\" href=\"javascript:;\" onclick=\"autoDeleteNote('"+auto_id+"', '"+title+"');\"></a><a href=\"/sale/{$note_auto.auto_id}.html\">"+title+"</a></li>");
   
                        $('#notepad-auto-nodes-num').text(data.total - 5);
                        if (data.total > 5) {
                            $('#notepad-more:hidden').show('slow');
                        }
                        $('#notepad:hidden').show('slow');
                    }
                },
                error: function(data, status, e){
                    $("#loading, #loading_expanded").css("display", "none");
                }
        });
    });
}

function autoDeleteNote(auto_id, title) {
    $(document).ready(function(){
        $.ajax({
                type: "GET",
                url: "http://" + location.hostname + "/ajax/note_del/auto/" + auto_id,
                cache: false,
                dataType: 'json',
                success: function(data, status) {
                    if (data.result == 'ERROR') alert(data.error);
                    $('#add-delete-auto-note-'+auto_id).html("<a href=\"javascript:;\" onclick=\"autoAddNote('"+auto_id+"', '"+title+"')\" class=\"node-add\" title=\"добавить в блокнот\"></a>");

                    $('#notepad-auto-node-'+auto_id).remove();
                    $('#auto-offer-row-'+auto_id).remove();

                    if (data.replace_auto_id != '' && $('#notepad-list li').length < 5) {
                        $('#notepad-list').append("<li id=\"notepad-auto-node-"+data.replace_auto_id+"\"><a class=\"delete-note\" href=\"javascript:;\" onclick=\"autoDeleteNote('"+data.replace_auto_id+"', '"+data.replace_mark+" "+data.replace_model+", "+data.replace_year+"');\"></a><a href=\"/sale/"+data.replace_auto_id+".html\">"+data.replace_mark+" "+data.replace_model+", "+data.replace_year+"</a></li>");
                    }

                    $('#notepad-auto-nodes-num').text(data.total - 5);
                    if (data.total < 6) {
                        $('#notepad-more').hide('slow');
                    }

                    if (data.total == 0) {
                        $('#notepad:visible').hide('slow');
                    }
                },
                error: function(data, status, e){
                    alert(e);
                }
        });
    });
}

function autoDeleteAllNodes(delete_table_rows) {
    $(document).ready(function(){
        $.ajax({
                type: "GET",
                url: "http://" + location.hostname + "/ajax/note_del/auto/all",
                cache: false,
                dataType: 'json',
                success: function(data, status) {
                    if (data.result == 'ERROR') alert(data.error);

                    // Заменить все кнопочки на "добавить"
                    $('#auto-list td.date a.node-del').each(function() {
                        var auto_id = $(this).parent('span').attr('auto_id');
                        var title = $(this).parent('span').attr('alt');
                        $('#add-delete-auto-note-'+auto_id).html("<a href=\"javascript:;\" onclick=\"autoAddNote('"+auto_id+"', '"+title+"')\" class=\"node-add\" title=\"добавить в блокнот\"></a>");
                    });

                    $('#notepad-list li').each(function() {
                            $(this).remove();
                    });

                    if (delete_table_rows === true) {
                        $('#auto-list tr').each(function() {
                            $(this).remove();
                        })
                    }
                    
                    $('#notepad-auto-nodes-num').text('0');
                    $('#notepad-more').hide('slow');
                    $('#notepad:visible').hide('slow');

                    // На странице просмотра авто меняем ссылку
                    $('#auto-note-add').show();
                    $('#auto-note-remove').hide();
                },
                error: function(data, status, e){
                    alert(e);
                }
        });
    });
}

function autoItemAddNote(auto_id, title) {

    autoAddNote(auto_id, title);
    $('#auto-note-add').hide();
    $('#auto-note-remove').show();

}

function autoItemDeleteNote(auto_id, title) {

    autoDeleteNote(auto_id, title);
    $('#auto-note-add').show();
    $('#auto-note-remove').hide();

}
