
var RecaptchaOptions = {
   lang : 'ru'
   
};

function trim( str, charlist ) {
    charlist = !charlist ? ' \s\xA0' : charlist.replace(/([\[\]\(\)\.\?\/\*\{\}\+\$\^\:])/g, '\$1');
    var re = new RegExp('^[' + charlist + ']+|[' + charlist + ']+$', 'g');
    return str.replace(re, '');
}

function urlencode(text)
{
  var trans = [];
  for (var i=0x410; i<=0x44F; i++) trans[i] = i-0x350;
  trans[0x401] = 0xA8;
  trans[0x451] = 0xB8;
  var ret = [];
  for (var i=0; i<text.length; i++)
  {
    var n = text.charCodeAt(i);
    if(typeof trans[n] != 'undefined') n = trans[n];
    if(n <= 0xFF) ret.push(n);
  }
  return escape(String.fromCharCode.apply(null,ret));
}

(function($) {
$.extend({

        debounce : function(fn, timeout, invokeAsap, context) {

                if(arguments.length == 3 && typeof invokeAsap != 'boolean') {
                        context = invokeAsap;
                        invokeAsap = false;
                }

                var timer;

                return function() {

                        var args = arguments;

                        if(invokeAsap && !timer) {
                                fn.apply(context, args);
                        }

                        clearTimeout(timer);

                        timer = setTimeout(function() {
                                if(!invokeAsap) {
                                        fn.apply(context, args);
                                }
                                timer = null;
                        }, timeout);

                };

        },

        throttle : function(fn, timeout, context) {

                var timer, args;

                return function() {

                        args = arguments;

                        if(!timer) {
                                (function() {
                                        if(args) {
                                                fn.apply(context, args);
                                                args = null;
                                                timer = setTimeout(arguments.callee, timeout);
                                        }
                                        else {
                                                timer = null;
                                        }
                                })();
                        }

                };

        }

});

})(jQuery);



window.is_object = function(_var){
    return typeof _var == 'object';
}
window.createElementE = function(t, a, s){
    el = document.createElement(t);

    if(is_object(a))
        for(_a in a)
            el[_a] = a[_a];

    if(is_object(s))
        for(_s in s)
            el.style[_s] = s[_s];

    return el;
}


$(document).ready(function(){
  avalibleOffset = 0;
  
  if ($('#news-imgs-list .container').get(0)) {
    avalibleOffset = $('#news-imgs-list .container').width() - $('#news-imgs-list').width() - 7;
  } else if ($('#articles-imgs-list .container').get(0)) {
    avalibleOffset = $('#articles-imgs-list .container').width() - $('#articles-imgs-list').width() - 7;

  }

      

    

  if(avalibleOffset > 0 && $('#img-list-scroll').get(0)) {
    $('#img-list-scroll').show();
      
    $('#img-list-scroll .s-bar').slider({
        min: 0,
        max: 100,
        step: 1,
        value: 0,
        slide: function(ev, ui) {
          var offset = -((ui.value * avalibleOffset) / 100) + 'px';
          $('#news-imgs-list .container').css('left', offset);
          $('#articles-imgs-list .container').css('left', offset);
        }
    });
  }

    
  $('#news-imgs-list a').click(function(){
      $('#news-main-img .img img').attr('src', $(this).attr('href'));
      $('#news-main-img .text').html($(this).attr('title'));
      $('#news-imgs-list a').removeClass('sel');
      $(this).addClass('sel');
      return false;
  });

  $('#articles-imgs-list a').click(function(){
      $('#articles-main-img .img img').attr('src', $(this).attr('href'));
      $('#articles-main-img .text').html($(this).attr('title'));
      $('#articles-imgs-list a').removeClass('sel');
      $(this).addClass('sel');
      return false;
  });


  $('#kvaLogo').click(function(){location.href='/';}).css("cursor","pointer");
  $('#peoplesOpinion p').click(function(){location.href='/ratings/';}).css("cursor","pointer");
  $("#menu_country").click(function(){if($('#menu_country+span').css("display") != "block"){$('#menu_country+span').css("display","block");}else{$('#menu_country+span').css("display","none");}return false;}).css("cursor","pointer");
  $("#menu_second").click(function() {
				if ($('#menu_second+span').css("display") != "block") {
					$('#menu_second+span').css("display", "block");
				} else {
					$('#menu_second+span').css("display", "none");
				}
				return false;
			}).css("cursor", "pointer");
  $("#menu_information").click(function(){if($('#menu_information+span').css("display") != "block"){$('#menu_information+span').css("display","block");}else{$('#menu_information+span').css("display","none");}return false;}).css("cursor","pointer");
  $('table.colored-table').find('tr:even').css('background-color', '#f5f9dd');
  $('table.colored-table').find('tr:odd').css('background-color', '#e8f1b3');

  $('table.color-table').find('tr:even[className!="asd"]').addClass('color-1');
  $('table.color-table').find('tr:odd').addClass('color-2');

  $('input.remember-default').each(function(){
  	this._defaultValue = $(this).attr('title');
  }).change(function(){
  	if ($(this).val() == '') {
  		$(this).val(this._defaultValue).addClass('default-value');
  	}
  }).click(function(){
  	if ($(this).val() == this._defaultValue) {
  		$(this).val('').removeClass('default-value');
  	}
  }).blur(function(){
  	if ($(this).val() == '') {
  		$(this).val(this._defaultValue).addClass('default-value');
  	}
  }).focus(function(){
   	$(this).trigger('click');
  });
});

  function showbig(picname){
    window.open('/includes/foto.php5?pic='+picname,'_blank','scrollbars=yes,taskbar=no,resizeable=no,status=no,menubar=no,top=30,left=30,width=30,height=30');
  }



  function showMap(mapUrl){
    window.open(mapUrl,'_blank','scrollbars=yes,taskbar=no,resizeable=no,status=no,menubar=no,top=30,left=30,width=730,height=470');
  }

   function showSpbMap(mapUrl){
    window.open(mapUrl,'_blank','scrollbars=no,taskbar=no,resizeable=no,status=no,menubar=no,top=30,left=30,width=561,height=780');
  }

  function PreLoad(source){
    var NewImage = new Image();
    NewImage.src = source;
  }

  function prepareSubmit(frm){
    var len = frm.all("editbox").length; if (!len) len = 1;
    for (var i=0; i<len; i++)
      frm.all("codebox", i).innerText = frm.all("codebox", i).style.display ? borderOn(frm.all("codebox", i).innerText) : borderOn(frm.all("editbox", i).innerHTML);
  }

 function menuProcess(menuId){
   menuId = document.getElementById(menuId);
    if(menuId.style.display == 'none'){
     menuId.style.display = 'block';
   }else{
      menuId.style.display = 'none';
   }
 }

 function btShowFunctionArguments(name){
   btChangeFunctionArgumentsBlock(name,'none','block','block');
 }

 function btHideFunctionArguments(name){
   btChangeFunctionArgumentsBlock(name,'block','none','none');
 }

 function btChangeFunctionArgumentsBlock(name,plus,minus,arguments){
    document.getElementById('backtrace_img_plus_'+name).style.display = plus;
    document.getElementById('backtrace_img_minus_'+name).style.display = minus;
    document.getElementById('backtrace_arguments_'+name).style.display = arguments;
 }


 function showObject(pathToObject){
   window.open(pathToObject,'_blank','scrollbars=yes,taskbar=no,resizeable=no,status=no,menubar=no,top=30,left=30,width=510,height=300');
 }

 function ge(id){
   return document.getElementById(id);
 }

 function printSelected(){
   if(ge('obj_form')){
     var ids = new Array();
     var _count = 0;

     form = ge('obj_form');
     objCount = form.elements.length - 1;

     for(i=0; i <= objCount; i++){
       formElement = form.elements[i];
       if(formElement.type && formElement.type == 'checkbox' && formElement.value && formElement.checked){
         ids[_count] =formElement.value;
         _count ++;
       }
     }
     if(ids.lenght == 0){
       alert('Не выбрано не одного объекта!');
       return false;
     }
     newWindow = window.open('','_blank','scrollbars=yes,taskbar=yes,resizeable=yes,status=yes,menubar=yes,top=30,left=30,width=1024,height=1000');
     wDoc = newWindow.document;
     wDoc.write ('<html>');
     wDoc.write ('Загрузка данных...');
     wDoc.write ('<form action="/estate/second/print/" method="POST" id="ids_form">');
     for(i=0 ; ids[i] ; i++)
       wDoc.write ('<input type="hidden" value="' +ids[i] +'" name="id[]">');
    wDoc.write ('</form>');
     wDoc.getElementById('ids_form').submit();;
   }
 }

 function validateCommentForm(formName, withAuth){
  if(document.forms(formName).comment_text.value == ''){
    alert('Введите текст комментария');
    return false;
  }
  if(document.forms(formName).username.value == '' && withAuth){
    alert('Введите имя');
    return false;
  }
  if(document.forms(formName).password.value == '' && withAuth){
    alert('Введите пароль');
    return false;
  }
}

  function voteForObject(mark){
    url = location.href + '?mark=' + mark;

     JsHttpRequest.query(
           url,'',
            function(result, msg) {
              $('#vote_rezult').html(msg);
         },
            true
        );
  }

  function voteForObject(mark){
    url = location.href + '?mark=' + mark;

     JsHttpRequest.query(
           url,'',
            function(result, msg) {
              $('#vote_rezult').html(msg);
         },
            true
        );
  }

   function voteForObjectExtended(cId, objPath, mark, pref, id, base){
     if(base == undefined)
        base = 'estate';
     switch(cId){
         case 5:
            section = 'new_buildings';
         break;
         case 7:
            section = 'settlements';
         break;
         default:
            return;
     }
     $('#' + pref + 'mark_' + id + '_vote').html('').addClass('load');
     url = '/' + base + '/' + section + '/'+objPath+'/?mark='+mark+'&getJSON';

     $.getJSON(url, {}, function(data){

         if(data['status'] && data['status'] == 1){

             $('#' + pref + 'mark_' + id + '_vote').html('Спасибо, Ваш голос учтён!<br>Всего проголосовало: ' + data['opinions'] + '<br>Рейтинг: ' + data['rating']).removeClass('load');
             _r = parseFloat(data['rating']);
             if(_r < 4 && _r >= 0) _r = 'least'; else if(_r >= 4 && _r < 8) _r = 'medium'; else if(_r >= 8) _r = 'highest';
             $('#' + pref + 'wrapper_' + id + ' .mark').removeClass('highest').removeClass('medium').removeClass('least');
             $('#' + pref + 'wrapper_' + id + ' .mark').addClass(_r);
             $('#' + pref + 'wrapper_' + id + ' .mark .txt').html(data['rating']);
         }
     });
     /*JsHttpRequest.query(
           url,'',
            function(result, msg) {
              $('#' + div).html(msg).removeClass('load');
         },
            true
        );*/
  }

  function ShowLogin(yes){
    if(yes){
      document.getElementById('site_enter_link').style.display = 'none';
      document.getElementById('site_enter_form').style.display = 'block';
    }
    else{
      document.getElementById('site_enter_link').style.display = 'block';
      document.getElementById('site_enter_form').style.display = 'none';
    }
  }

 if(!pages_list_class_list){
	var pages_list_class_list = new Array();
}
var pages_list_class = function(name){
	this.name = name;
	this.global = "pages_list_class_list['"+name+"']";
	this.count = 0;
	this.selected = 0;
	this.url = '';
	this.move_index = null;

// Определяем браузеры
	var ua = navigator.userAgent.toLowerCase();
	this.isIE = (ua.indexOf("msie") != -1 && ua.indexOf("opera") == -1);
	this.isGecko = (ua.indexOf("gecko") != -1);

//Выводит код всего блока
	this.build = function(id){
		//$('#'+name+'_pages_list .wrapper ul').html('<li>'+this.get_list_HTML().join('</li><li>')+'</li>');
		var div = document.getElementById(name+'_wrapper');
		div.innerHTML = this.get_list_HTML().join('&nbsp;');
		if(div.offsetWidth>600) div.style.width = 300;
		//alert(div.offsetWidth);

		$('#'+name+'_pages_list .previous').mouseover(function(){
			pages_list_class_list[''+name].move_left();
		}).mouseout(function(){
			pages_list_class_list[''+name].move_stop();
		});

		$('#'+name+'_pages_list .next').mouseover(function(){
			pages_list_class_list[''+name].move_right();
		}).mouseout(function(){
			pages_list_class_list[''+name].move_stop();
		});
		this.move_this();

		//this.set_ctrl_move();
	}

	this.calculateObjectFullWidth = function(objectId){
		styles = new Array('width', 'margin-left', 'margin-right', 'padding-left', 'padding-right');
		width = 0;
		for (sId in styles) {
			width += parseInt($('#' + objectId).css(styles[sId]));
		}
		return width;
	}

//Выводит код всего блока
	/*this.build = function(id){
		if(id){
			document.getElementById(id).innerHTML = this.get_HTML();
		}else{
			document.write(this.get_HTML());
		}
		this.move_this();
		this.set_ctrl_move();
	}*/

//Возвращает код всего блока
	/*
	this.get_HTML = function(){
		if(this.count < 2) return '';
		return ''+
		'<table cellpadding="0" cellspacing="0" class="pages_list">'+
			'<tr>'+
				'<td class="previous" onmouseover="'+this.global+'.move_left()" onmouseout="'+this.global+'.move_stop()">'+
					(this.selected!=1?'<a href="'+this.get_link(this.selected-1)+'">предыдущая</a>':'предыдущая')+
				'</td>'+
				'<td class="list"><div id="'+this.name+'_div">'+this.get_list_HTML().join('')+'</div></td>'+
				'<td class="next" onmouseover="'+this.global+'.move_right()" onmouseout="'+this.global+'.move_stop()">'+
					(this.selected!=this.count?'<a href="'+this.get_link(this.selected+1)+'">следующая</a>':'следующая')+
				'</td>'+
			'</tr>'+
			'<tr>'+
				'<td class="first">'+(this.selected!=1?'<a href="'+this.get_link(1)+'">первая</a>':'')+'</td>'+
				'<td class="ctrl">Ctrl</td>'+
				'<td class="last">'+(this.selected!=this.count?'<a href="'+this.get_link(this.count)+'">последняя</a>':'')+'</td>'+
			'</tr>'+
		'</table>';
	}*/

//Возвращает список страниц
	this.get_list_HTML = function(){
		if(this.count < 2) return '';
		var arr = new Array(this.count);
		for(var i = 1; i<=this.count; i++){
			arr[i-1] = i == this.selected ? this.get_selected_page_HTML(i) : this.get_page_HTML(i);
		}
		return arr;
		//return arr.join('');
		//return '<table cellpadding="0" cellspacing="0"><tr><td>'+arr.join("</td><td>")+'</td></tr></table>'
	}

//Возвращает код текущей страницы
	this.get_selected_page_HTML = function(i){
		return '<a href="'+this.get_link(i)+'" class="selected">'+i+'</a>';
	}

//Возвращает код страницы-ссылки
	this.get_page_HTML = function(i){
		return '<a href="'+this.get_link(i)+'">'+i+'</a>';
	}

//Возвращает ссылку по номеру страницы
	this.get_link = function(i){
		return this.url.replace(/\$page/g, i);
	}

//Проматывает на текущий пункт
	this.move_this = function(){
		this.move_stop();
		var div = document.getElementById(name+'_wrapper');
		n_len = 8;
		p_len = 8;
		n_count = this.selected + (this.selected>9 ? this.selected-9 : 0) + (this.selected>99 ? this.selected-99 : 0) + (this.selected>999 ? this.selected-999 : 0);
		p_count = this.selected;
		div.scrollLeft = n_count * n_len + p_count * p_len - div.clientWidth / 2;
	}

//Начинает мотать влево
	this.move_left = function(){
		//$('#'+name+'_pages_list .wrapper').animate({left:0}, 2000);
		this.move_stop();
		var div = document.getElementById(name+'_wrapper');
		if(div.scrollLeft>0){
			div.scrollLeft-=3;
		}
		this.move_index = window.setTimeout(this.global+'.move_left()', 20);
	}

//Начинает мотать вправо
	this.move_right = function(){
		//pagesList = $('#'+name+'_pages_list .wrapper ul');
		//lastPageId = pagesOffsets.length - 1;
		//offset = -pagesOffsets[lastPageId] + pagesList.parent().width() - this.calculateObjectFullWidth('page_' + lastPageId);
		//pagesList.animate({left: offset}, 2000);
		//$('#'+name+'_pages_list .wrapper').animate({left:document.getElementById('wrapper').scrollWidth}, 2000);
		this.move_stop();
		var div = document.getElementById(name+'_wrapper');
		if(div.scrollLeft < div.scrollWidth){
			div.scrollLeft+=3;
		}
		this.move_index = window.setTimeout(this.global+'.move_right()', 20);
	}

//Останавливает промотку
	this.move_stop = function(){
		//$('#'+name+'_pages_list .wrapper').stop();
		if(this.move_index){
			window.clearTimeout(this.move_index);
		}
		this.move_index = null;
	}

//Включает переход по ctrl
	this.set_ctrl_move = function(){
		if (this.isIE){
			$(document).keydown(function(evt){pages_list_class_list[''+name].key_press(evt)});
		}else{
			$(document).keypress(function(evt){pages_list_class_list[''+name].key_press(evt)});
		}
	}

//Обработка нажатия клавиши
	this.key_press = function(evt){
		evt = evt || window.event;
		var key = evt.keyCode || evt.which;
		if(evt.ctrlKey && ((key==37 && this.selected!=1) || key==39 && (this.selected!=this.count))){
			if(evt.preventDefault) evt.preventDefault();
			evt.returnValue = false;
			location.href = this.get_link(key==37 ? this.selected-1 : this.selected+1);
		}
	}

	pages_list_class_list[''+name] = this;
}

fs = function() {

	$.fn.valMinMax = function(min, max) {
		var val = parseFloat(this.val());
		if (val < min || isNaN(val)) {
			this.val(val = min);
		} else if (val > max) {
			this.val(val = max);
		}
		return val;
	};    

    $.fn.inputSlider = function(min, max, step) {
        var input = this, form = input.closest('form');
        var slider = $('<span>').insertBefore(input).slider({
            min: min, max: max, step: step, value: input.val(),
            slide: function(ev, ui) {
                v = ui.value.toString();
                r = '';
                for(i = v.length - 1,y=0; i >= 0; i--,y++) {
                    if(y == 3) {
                        y = 0;
                        r = ' ' + r;
                    }
                    r = v.substr(i, 1) + r;
                }
                input.val(r);
                form.change();
            }
        });
        input.change(function() {
            slider.slider('value', input.valMinMax(min, max));
        });
    };
    

    $(document).ready(function() {

        menu = $('#fast-search div ul li');
        frms = $('#fast-search div.f');
        $.fs_currentFrm = $('#' + menu.filter('.selected').find('a').attr('rel'));

        menu.find('a').click(function() {
            that = $(this);
            menu.removeClass('selected');
            that.parents('li').addClass('selected');
            $.fs_currentFrm = frms.hide().filter('#' + that.attr('rel')).stop(true).fadeIn();

        });

        fs_objCountDebounceFn = false;
        function fs_updateObjectsCount() {
          
            if (!fs_objCountDebounceFn) {
                    fs_objCountDebounceFn = $.debounce(fs_getObjectsCount, upTime);
            }
            $.fs_countEl.find('.progress').fadeIn();
            $.fs_countEl.find('span').html('');
            fs_objCountDebounceFn();
        }

        fs_prepareForm = function() {
            $.fs_currentFrm.find('input[name="area"]').each(function() {
                area = $.fs_currentFrm.find('input[name="area_from"],input[name="area_to"]');
                f = parseInt(area.filter('[name="area_from"]').val());
                t = parseInt(area.filter('[name="area_to"]').val());
                f = f ? (t ? '' : '+') + f : (t ? 0 : '');
                t = t ? '-' + t : '';
                $(this).val(f + t);
            });

            $.fs_currentFrm.find('input[name="ground_area"]').each(function() {
                area = $.fs_currentFrm.find('input[name="ground_area_from"],input[name="ground_area_to"]');
                f = area.filter('[name="ground_area_from"]').val();
                t = area.filter('[name="ground_area_to"]').val();
                f = f ? (t ? '' : '+') + f : (t ? 0 : '');
                t = t ? '-' + t : '';
                $(this).val(f + t);
            });

        }

        function fs_getObjectsCount(){
            fs_prepareForm();
             $.post($.fs_countUrl, $.fs_currentFrm.find('form').serialize(), function(data) {
                $.fs_countEl.find('.progress').hide();
                $.fs_countEl.find('span').html( data);
            });
        }

        $('#fs-ar,#fs-cg').change(function() {
            $.fs_currentFrm = $(this);
            $.fs_countUrl = $.fs_currentFrm.find('a.count-url').attr('href');
            $.fs_countEl = $.fs_currentFrm.find('.objects-count');
            fs_updateObjectsCount();
        });
        
        $('#fs-cg-link').click(function() {
            id = $('#fs-cg .switcher .selected').attr('id');
            $('#'+id).closest('form').change();
        });

        $('input[type=text],select', frms).change(function() {
            $(this).closest('form').change();
        });

        $('input[type=text]', frms).each(function() {
            $(this).inputSlider(0, $(this).attr('smax'), 1);
        });

        $('#fs-cg-c,#fs-cg-g').click(function() {
            s = $(this).parents('div.f');
            ga = s.find('.ground-area');
            ca = s.find('.cottage-area dt');
            cap = s.find('.cottage-area dd font');
            if(this.id == 'fs-cg-c' ) {
                ca.html('Площадь дома:');
                ga.show();
                cap.html('м<sup>2</sup>');
            } else {
                ga.hide();
                ca.html('Площадь участка:');
                cap.html('соток');
            }
            return false;
        });

        $('#fs-cg-c,#fs-cg-g,#fs-ar-a,#fs-ar-r').click(function() {
            var form = $(this).closest('form');
            $(this).addClass('selected').siblings('a').removeClass('selected');
            form.attr('action', this.href);
            form.find('.extended-search a').attr('href', this.href);
            form.find('a.count-url').attr('href', this.rel);

            form.change();
            return false;
        });

        $('#fs-ar-a,#fs-ar-r').click(function() {
            frm = $(this).closest('form');
            frm.find('.rooms dt').text(this.id == 'fs-ar-a' ? 'Комнат' : 'Комнат в квартире');
            frm.find('.rooms input').attr('name', this.id == 'fs-ar-a' ? 'rooms[]' : 'sale_rooms[]');
            frm.find(this.id == 'fs-ar-a' ? '.living_area' : '.area').hide();
            frm.find(this.id == 'fs-ar-a' ? '.area' : '.living_area').show();
        });

        $('#fs-ar-r,#fs-cg-g').click(function() {
            $(this).parent('.switcher').find('.r').addClass('r-selected');
            $(this).parent('.switcher').find('.s').addClass('s-r-selected');
            $(this).parent('.switcher').find('.l').addClass('l-no-selected');
        });
        $('#fs-ar-a,#fs-cg-c').click(function() {
            $(this).parent('.switcher').find('.r').removeClass('r-selected');
            $(this).parent('.switcher').find('.s').removeClass('s-r-selected');
            $(this).parent('.switcher').find('.l').removeClass('l-no-selected');
        });

        $('#fast-search select[name="rooms_from"]').change(function() {
            $(this).siblings('input[name="rooms_to"]').val(this.value);
        });

        frms.submit(function() {
            var that = this;

            fs_prepareForm();

            $(this).find('input[type=text]').each(function() {
                this.value = this.value.replace(/\x20/g, '');
            });

            $(this).find('input[name="kad_distance"]').each(function() {
                kad = $(that).find('input[name="kad_distance_from"],input[name="kad_distance_to"]');
                f = kad.filter('[name="kad_distance_from"]').val();
                t = kad.filter('[name="kad_distance_to"]').val();
                f = f ? (t ? '' : '+') + f : 0;
                t = t ? '-' + t : '';
                $(this).val(f + t);
            });
        });

        $.fs_currentFrm.change();
    });
};
fs();




