function addOption (oListbox, text, value, isDefaultSelected, isSelected)
{
  var oOption = document.createElement("option");
  oOption.appendChild(document.createTextNode(text));
  oOption.setAttribute("value", value);

  if (isDefaultSelected) oOption.defaultSelected = true;
  else if (isSelected) oOption.selected = true;

  oListbox.appendChild(oOption);
}

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 + "/modules/advert.ajax.json.php",
			cache: false,
			data: "act=get_models_simple_json&mark_id=" + $("select#mark_id").val(),
			dataType: 'json',
			beforeSend: function() {
				$("#loading").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").css("display", "none");
			},
            error: function(data, status, e){
            	$("#loading").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").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 getModelsJSON() {	$(document).ready(function(){

		$("select#model_id").empty();
		$("select#model_id").append($("<option value=''>Все модели</option>") );

		$.ajax({
			type: "GET",
			url: "http://" + location.hostname + "/modules/advert.ajax.json.php",
			cache: false,
			data: "act=get_models_json&mark_id=" + $("select#mark_id").val(),
			dataType: 'json',
			beforeSend: function() {
				$("#loading").css("display", "block");
			},
			success: function(data, status) {

				// HANDLE INCOMING JSON
				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>") );
                	}
				}
				$("#loading").css("display", "none");
			},
            error: function(data, status, e){
            	$("#loading").css("display", "none");
            }
		});
	});

}

function getMarksJSON() {
	$(document).ready(function(){

		$("select#mark_id").empty();
		$("select#mark_id").append($("<option value=''>Все марки</option>") );
		$("select#model_id").empty();
		$("select#model_id").append($("<option value=''>Все модели</option>") );

		$.ajax({
			type: "GET",
			url: "http://" + location.hostname + "/modules/advert.ajax.json.php",
			cache: false,
			data: "act=get_marks_json&type=" + $("select#type").val(),
			dataType: 'json',
			beforeSend: function() {
				$("#loading").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").css("display", "none");
			},
            error: function(data, status, e){
            	$("#loading").css("display", "none");
            }
		});
	});

}

function getBodies(type) {
	$(document).ready(function(){
		$.ajax({
			type: "GET",
			url: "http://" + location.hostname + "/modules/advert.ajax.php",
			cache: false,
			data: "act=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 getRadioGroupValue(radioGroupObj){
	for (var i=0; i < radioGroupObj.length; i++)
	    if (radioGroupObj[i].checked) return radioGroupObj[i].value;
	   return null;
}

function selectPhoto(src, select_id) {	$('#selected_photo').html("<img src='upload/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{4,7}$/;
		if (!filter_miles.test(form.miles.value)) {
			alert('Пробег не указан или указан неверно.\rПробег не может быть меньше 1000км.');
			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') {
		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;
		}
	}

	return true;
}

function updateSearch(getMarks) {
	if (getMarks == true) {		getMarksJSON();
	}

	var type = $('#type').val();

	if ($("input[name='ext_search']").val() == '1') {

		//show all first:
		$('.drive').css("display", "");
		$('.body_type').css("display", "");
		$('.kpp').css("display", "");
		$('.engine').css("display", "");
		$('.helm').css("display", "");
		$('.engine_v').css("display", "");

		if (type == 'truck' || type == 'bus' || type == 'moto' || type == 'spec') {	        //$("select[name='drive']").val('');
			$('.drive').css("display", "none");
			//$("select[name='body_type_id']").val('');
			$('.body_type').css("display", "none");

		}
		if (type == 'moto' || type == 'spec') {

			//$("select[name='kpp']").val('');
			$('.kpp').css("display", "none");

		}
		if (type == 'moto' || type == 'spec') {

			//$("select[name='engine_id']").val('');
			$('.engine').css("display", "none");
			//$("select[name='helm']").val('');
			$('.helm').css("display", "none");

		}
		if (type == 'spec') {

			//$("input[name='engine_v_from']").val('');
			//$("input[name='engine_v_to']").val('');
			$('.engine_v').css("display", "none");

		}
	}

}

function toggleExtSearch() {
	if ($("input[name='ext_search']").val() == '') {
		$("input[name='ext_search']").val('1');

		$(".ext_search_link").html('Простой поиск');

		$('.color').css("display", "");
		$('.condition').css("display", "");
		$('.milage').css("display", "");
		$('.drive').css("display", "");
		$('.body_type').css("display", "");
		$('.kpp').css("display", "");
		$('.engine').css("display", "");
		$('.helm').css("display", "");
		$('.engine_v').css("display", "");
		$('.seller').css("display", "");

		updateSearch();

	} else {
        $("input[name='ext_search']").val('');

        $(".ext_search_link").html('Подробный поиск');

		$('.color').css("display", "none");
		$('.condition').css("display", "none");
		$('.milage').css("display", "none");
		$('.drive').css("display", "none");
		$('.body_type').css("display", "none");
		$('.kpp').css("display", "none");
		$('.engine').css("display", "none");
		$('.helm').css("display", "none");
		$('.engine_v').css("display", "none");
		$('.seller').css("display", "none");

	}

	return false;

}

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 toggleSearch() {

	var expDate = new Date();
	expDate.setDate(expDate.getDate() + 1);

	if ($("#search").css("display") != 'none') {

		$("#search").css("display", "none");
		$("#toggleSearchText").html('показать форму поиска');

		var regexp = new RegExp(/minus/);
		$("#toggleSearchImg").attr("src", $("#toggleSearchImg").attr("src").replace(regexp, 'plus'));

		document.cookie = "hideSearch=1; expires=" + expDate.toUTCString();

	} else {

        $("#search").css("display", "");
        $("#toggleSearchText").html('скрыть форму поиска');

		var regexp = new RegExp(/plus/);
		$("#toggleSearchImg").attr("src", $("#toggleSearchImg").attr("src").replace(regexp, 'minus'));

        document.cookie = "hideSearch=0; expires=" + expDate.toUTCString();
	}

	return false;

}

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;
}