///<reference path="K:\WEBsite\jquery-vsdoc.js" />

// раскрас нечётных строк
function even_paint() {
	//$('table.table>tbody>tr').removeClass('even').filter(':visible:' + ($('#dop_no').length ? 'odd' : 'even')).addClass('even')
	$('table.table>tbody>tr').removeClass('even').filter(':visible:even').addClass('even')
	$("#dop_no").removeClass('even')
}

function refrTR() {
	var kladr_1 = $('#kladr_1').val()

	// МКАД
	$('[name=attr_35],[name="attr_35[]"],[name=attr_36],[name="attr_36_1"]').closest('tr')[kladr_1 != '500000000000000' ? 'hide' : 'show']()

	// Площадь комнат
	$('[name=attr_38],[name="attr_38_1"]').closest('tr')[parseInt($('[name=attr_1]').val(), 10) == 1 ? 'hide' : 'show']()
	$('[name=attr_3],[name="attr_3_1"],[name=attr_4],[name="attr_4_1"]').closest('tr')[parseInt($('[name=attr_1]').val(), 10) == 1 ? 'show' : 'hide']()

	$('#kladr_house,#street').closest('tr')[parseInt(kladr_1, 10) ? 'show' : 'hide']() // дом, улица
}


$(function() {

	$('span')
		.live('click', function(e) {
			if (e.which < 2) $(this).prev(':checkbox').click()
		})
		.each(function() {
			if ($(this).prev(':checkbox').length) $(this).css('cursor', 'default')
		})

	$('div.menu').pngFix();

	///// Меню-слайдер \\\\\
	var speed = 400; // скорость раскрытия
	$('#menu .first').click(function() {
		$('.submenu').not(
			$(this).nextAll('.submenu').filter(':first').slideToggle(speed)
		).slideUp(speed)
		return !1
	});

	/*
	$('a.f1').click(function(){
	$('#s1').slideToggle(800);return false;
	});
	$('a.f2').click(function(){
	$('#s2').slideToggle(800);return false;
	});
	$('a.f3').click(function(){
	$('#s3').slideToggle(800);return false;
	});
	$('a.f4').click(function(){
	$('#s4').slideToggle(800);return false;
	});
	*/





	even_paint()
	//$("table.table>tbody>tr:even").addClass("even");

	if (typeof $.fn.cornerz == 'function') {
		$('div.contact-info').cornerz({ radius: 30, background: '#FCFAF5' })
		$('#contInf').cornerz({ radius: 30, background: '#FCFAF5', corners: 'tl br' })
		$('.CB').cornerz({ radius: 8, background: '#FCFAF5' })
	}


	/// Поиск улиц \\\
	var 
	okSel = 'успешно выбрана',
	noSel = 'Введите часть названия',
	$street_sel = $('tr.kl5 select')

	$street_sel.change(function() {
		if (parseInt(this.value)) $('#street').addClass('tLabel').val(this.value == '0' ? noSel : okSel)
		if (typeof updateAddress == 'function') updateAddress(this.value)
	})
	$('#street')
		.focus(function() {
			var $this = $(this)
			if ($this.hasClass('tLabel')) $this.removeClass('tLabel').val('')
		})
		.blur(function() {
			var 
			$this = $(this),
			srchStr = $.trim($this.val())

			if (srchStr.length) {
				$street_sel.html('<option>- поиск … -</option>').add($this).attr('disabled', 'disabled')
				$.get('/kladr.php', { srchStr: srchStr, kladr: $('#object_kladr').val(), level: 5 }, function(data) {
					$street_sel.html('<option> - </option>').add($this).removeAttr('disabled')
					$("#kladr_exec").html(data)
				})
			}
			else {
				$('#street').addClass('tLabel').val(parseInt($street_sel.val()) ? okSel : noSel)
			}
		})


	/// Не в кратком поиске \\\
	if (!$('#shortSearch').length) {
		// Разделители
		$('[name=attr_38]').closest('td').prev().css({ borderBottom: '1px dashed #CCC', paddingBottom: 5 })
		$('[name=id_currency],[name=cost1]').closest('td').prev().css({ borderTop: '1px dashed #CCC' })
		// $('[name=attr_1]').closest('tr').after('<td><tr>iii</tr></td>')

		// Убираем нелогичные варианты "из них на продажу"
		$('body').append('<b id=attr_1_clone></b>')
		$('#attr_1_clone').hide().append($('select[name=attr_1] option').clone())
		$('select[name=attr_34]').change(function() {
			var 
			attr_34 = parseInt($(this).val()),
			val = attr_34 - 79,
			$attr1 = $('select[name=attr_1]'),
			attr1_old = $attr1.val()

			$attr1.html($('#attr_1_clone').html())
			var optional = $('option:first', $attr1).val() ? 0 : 1

			if (val > 0 && val < 6) $('option', $attr1).slice(optional + val).remove()
			else if (val > 56) $('option[value!=1]', $attr1).remove()

			$attr1.val(attr1_old)


			// Площадь кухни
			$('[name=attr_5],[name="attr_5_1"]').closest('tr')[$.inArray(attr_34, [137, 138]) < 0 ? 'show' : 'hide']()
		}).change()

		$('select[name=attr_37]').change(function() {
			var val = parseInt($(this).val())

			$('input[name=attr_39],input[name=attr_40]').closest('tr')[val > 131 ? 'show' : 'hide']()
			$('input[name=attr_21]').closest('tr')[val > 131 ? 'hide' : 'show']()
		}).change()
	}

	$('[name=attr_35],[name="attr_35[]"],[name=attr_36],[name="attr_36_1"]').closest('tr').hide()
	$('[name=attr_38],[name="attr_38_1"]').closest('tr').hide()
	$('#kladr_house,#street').closest('tr').hide()

	$('select').change(refrTR)

	if (typeof $.fn.fancybox == 'function') {
		$('a:has(img)').filter(function() { if (/\.(jpe?g|gif|png)\b/i.test($(this).attr('href'))) return !0 })
			.fancybox({ cyclic: 1, titleShow: false })
		$('.objThumb').mouseover(function() {
			var $over = $(this),
			$main = $('#objBig')

			$main.attr('href', $over.attr('href'))
			$('img', $main).attr('src', $('img', $over).attr('src'))
		})
	}

	$.ajaxSetup({ timeout: 55000 })
	$('body').append('<div id="loading">Пожалуйста, подождите.</div>')
	$('#loading')
		.ajaxStart(function() {
			$(this).show()
		})
		.ajaxStop(function() {
			$(this).hide()
		})

	$('#captRefresh').click(function() {
		$capt = $('#capt')
		$capt.attr('src', $capt.attr('src').replace(/php\S*$/i, 'php?' + (+new Date)))
	})

	$('#priHist').click(function() {
		$('#histContainer').load('/history.php?id=' + $('#idObj').val())
	})





	/////// Сортировка таблиц \\\\\\\
	$.fn.extend({

		/*
		{
		sortOn: 2,  // Номер колонки для сортировки по ней
		desc: 1 // default FALSE
		sort: 'string | date | number' // default STRING
		}
		*/

		sort: function(params) {

			var sortFunc = function(a, b) {
				var 
                retval,
                typedData

				typedData = getTypedData(a.hash, b.hash, params.sort);

				return innerSort(typedData.a, typedData.b, params.desc)
			},
			convDateExp = /(\d+)-(\d+)-(\d+)/g,
			convDateR = '$2/$1/$3'

			var getTypedData = function(a, b, sortType) {
				var typedA, typedB

				if (sortType == 'date') {
					typedA = new Date(Date.parse(a.replace(convDateExp, convDateR)))
					typedB = new Date(Date.parse(b.replace(convDateExp, convDateR)))
				}
				else if (sortType == 'number') {
					typedA = parseFloat(a.replace(/ /g, ''))
					typedB = parseFloat(b.replace(/ /g, ''))
				}
				else {
					typedA = new String(a).toLowerCase();
					typedB = new String(b).toLowerCase();
				}
				return { a: typedA, b: typedB };
			}


			var innerSort = function(a, b, desc) {
				var retval

				if (a > b) {
					retval = 1
				}
				else if (a < b) {
					retval = -1
				}
				else {
					retval = 0
				}

				return desc ? retval *= -1 : retval
			}

			var buildHash = function(row) {
				return {
					hash: $.trim(row.find('>td').eq(params.sortOn).text()),
					row: row.html()
				}
			}


			var 
			$table = this,
            container = $('tbody', $table),
            rows = $('tr', container),
            rowHash = [],
            row,
            $curHeader = $('th', $table).eq(params.sortOn),
            HTML = ''

			if ($curHeader.hasClass('dsc')) {
				params.desc = !params.desc
				$curHeader.removeClass('dsc')
			}
			else {
				$('.dsc').removeClass('dsc')
				$curHeader.addClass('dsc')
			}

			$('th.on').removeClass('on')
			$curHeader.addClass('on')

			for (var x = 0; x < rows.length; x++) {
				row = $(rows[x])
				rowHash[x] = buildHash(row)
			}

			rowHash.sort(sortFunc);

			for (x = 0; x < rowHash.length; x++)
				HTML += '<tr>' + rowHash[x].row + '</tr>'

			container.html(HTML)
		}
	});
	$('#searchT th').click(function() {
		var $this = $(this)
		$('#searchT').sort({
			sortOn: $this.prevAll().length,
			sort: $this.attr('sort')
		})
		even_paint()
	})


});

