var ac_search_options = [];
var ac_search_selected = '';

var section_btn_options = {
		 sale : ['realestate',
		         '<span class="sub_txt_color">Например:</span> '
		         +'<a href="http://realestate.'+base_domain+'/search/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0-sale">Москва</a> , '
		         +'<a href="http://realestate.'+base_domain+'/search/%D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3-sale">Санкт-Петербург</a> , '
		         +'<a href="http://realestate.'+base_domain+'/search/%D0%A0%D0%BE%D1%81%D1%82%D0%BE%D0%B2-%D0%BD%D0%B0-%D0%94%D0%BE%D0%BD%D1%83-sale">Ростов-на-Дону</a>'
		         ],
		 rent : ['realestate',
		         '<span class="sub_txt_color">Например:</span> '
		         +'<a href="http://realestate.'+base_domain+'/search/%D0%9C%D0%BE%D1%81%D0%BA%D0%B2%D0%B0-rent">Москва</a> , '
		         +'<a href="http://realestate.'+base_domain+'/search/%D0%A1%D0%B0%D0%BD%D0%BA%D1%82-%D0%9F%D0%B5%D1%82%D0%B5%D1%80%D0%B1%D1%83%D1%80%D0%B3-rent">Санкт-Петербург</a> , '
		         +'<a href="http://realestate.'+base_domain+'/search/%D0%95%D0%BA%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%BD%D0%B1%D1%83%D1%80%D0%B3-rent">Екатеринбург</a>'
		         ],
		 vehicles : ['vehicles',
		             '<span class="sub_txt_color">Например:</span> '
			         +'<a href="http://vehicles.'+base_domain+'/search/%D0%92%D0%90%D0%97%202109">ВАЗ 2109</a> , '
			         +'<a href="http://vehicles.'+base_domain+'/search/Ford%20Focus">Ford Focus</a> , '
			         +'<a href="http://vehicles.'+base_domain+'/search/%D0%92%D0%90%D0%97%202110">ВАЗ 2110</a>'
			         ],
	     jobs: ['jobs']
}
var section_search_cache = {'realestate':'','vehicles':''}



/*
|  START: CROSSITE FUNCTIONS
|	located here(temporry) cause this file cros site included
*/

// Drop down for search login.............
var timeout         = 400;
var closetimer		= 0;
var ddmenuitem      = 0;

var current_obj =null;

function jsddm_open(e){	
	if( current_obj ){
		jsddm_canceltimer();
		jsddm_close();
	}
	var $obj=e;
	current_obj = $obj;
	$obj.addClass('active');
	var idNum = $obj.attr('id').replace('rfTrigCnt_','');
	var $source_id="#dropdown_" + idNum;
	if($obj.length) ddmenuitem = $($source_id).css('display', 'block');
}

function jsddm_close(){
	if(ddmenuitem) ddmenuitem.css('display', 'none'); 
	if(!current_obj) return;//means this window already closed
	current_obj.removeClass('active');
	current_obj = null;
}

function jsddm_timer(){	
	closetimer = window.setTimeout(jsddm_close, timeout);
	$(this).removeClass('active'); 
}

function jsddm_canceltimer(){	
	if(closetimer){
		window.clearTimeout(closetimer);
		closetimer = null;
	}
}
//document.onclick = jsddm_close;

function rfTrig_init (target_item){

	$(target_item).each(function(i){
		var obj = $(this);		
		var _btn = $(this).find('.rfTrig_btn');
		
		$(_btn).live('click',function(){		
			if(! $(obj).hasClass("active")){
				jsddm_open(obj);
			} else if($(obj).hasClass("active")){
				jsddm_close();
			}
		});
		$(this).find('.close_drp_btn').bind('click',  jsddm_close);
	});
	
}
//

function fillProperties(options) {
	options.target.multiselect("disable");
	$.getJSON("/ajax/properties/"+options.column,
			{modcolumn:options.modcolumn, modvalue:options.modvalue},
		      function(json){
	    		  var html="";
	    		  $.each(json, function(id, item){
	    			  html=html+"<option value=\""+item+"\">"+item+"</option>";
    		      }); 
	    		  options.target.multiselect("enable");
	    		  options.target.html(html);
	    		  options.target.multiselect("refresh");
		      } //callback
    ); // getJSON

} // fillProperties


function slide_where() {
	var _slide_container = '#where_slide_container';
	var _slider = '#where_slide_content';
	
	if($(_slide_container).hasClass('where_is_opened')){

		$(_slider).css({display: 'none;',opacity: 1.0}).animate({opacity: 0.2,height:'toggle'}, 80, function() {
			$(_slide_container).removeClass('where_is_opened').addClass('where_is_closed');
		});
	}else{
		if($('#rfclkWhere_btn1_hint').length)item_closeHint('#rfclkWhere_btn1_hint');
		
		$(_slider).css({display: 'block;',opacity: 0.2}).animate({opacity: 1.0,height:'toggle'}, 400, function() {
			$(_slide_container).removeClass('where_is_closed').addClass('where_is_opened');
			if(!window.initTheMapOnce){
				try{ initTheMap(); window.initTheMapOnce=true;} catch(e){/*failed to init map*/;}
			}
		});
	}
}

function item_showHint(target_item, class_name){

	var urlinfo = getUrlInfo();
	var is_in_ssr_page = is_in_sr_page( urlinfo.controller, urlinfo.section);
	
	//not on ssr page - exit 
	if(!is_in_ssr_page){
		hintItemGlobalFlag=true;
        return;
    }
	//is cookie exists
	if(readCookie('showHintWhere')){
		hintItemGlobalFlag=true;
		return;
	}
	else{
		createCrossDomainCookie('showHintWhere','true',180);
	}


	$(target_item).each(function(i){
		var hint_name = $(this).attr('id')+'_hint';
		$("body").append("<div class='"+class_name+"' id='"+hint_name+"'><img src='/images/tooltip_where.gif'/></div>");
		var hint_item = "#"+hint_name;
		function showHint(){
			var offset = $(target_item).offset();
			var eWidth = $(target_item).outerWidth();
			var eHeight = $(target_item).outerHeight();
			var mWidth = $(hint_item).outerWidth();
            var mHeight = $(hint_item).outerHeight();
			//console.debug(eHeight);
			var top = ((offset.top + eHeight)-7) + "px";
            var left = ((offset.left + eWidth/2)-mWidth/2) + "px";
			$(hint_item).css({ 
				left: left, 
				top: top
             } );
		}
		showHint();
		$(window).resize(function() {
			if($(hint_item).length)showHint();
		});
		$(target_item).mouseenter(function () {
			item_closeHint(hint_item);
		}); 
		$(hint_item).mouseenter(function () {
			item_closeHint(hint_item);
		});
		
		hintItemGlobalAccesble = hint_item;
		setTimeout('item_closeHint(hintItemGlobalAccesble)',10000);
    }); 

} 
var hintItemGlobalAccesble = ''; 
var hintItemGlobalFlag = false; 
function item_closeHint(hint_item ){
	if(hintItemGlobalFlag){
		return;
	}
	$(hint_item).remove();
	hintItemGlobalFlag = true;
}


/*
 |  END : CROSSITE FUNCTIONS
 */
$(document).ready(function(){
    var search_box=$("input#main_search_what");
    var search_sample = $('#search_sample_text');
    /*if(!isHomeWWW){
    	populate_default_text();
	}*/
    bind_switches(search_box,search_sample);
    bind_where_tabs_clicks();
    
    //search_box.focus(function(){ this.select(); });
    if(location.host.indexOf('realestate')===-1){
    	search_box.focus();
    }
	
	// dropdown
	$('#rfTrigCnt_user_control').live('mouseenter',function(){
		jsddm_open($(this));
	});
	$('#rfTrigCnt_user_control').bind('mouseleave',  jsddm_timer);	
	
	rfTrig_init('[id^="rfTrigCnt_"]');
	$('#rfTrigCnt_where_alias').click(function(a,b,c){
		void( $('#geoinfo_id_').click() ); 
	});
	
	// select What for Real Estate
	$("[id^='drp_Blk_']").find('dt').live('click',function(e){
		var obj = $(this).parent();		
		if($(obj).hasClass("close-rf")){
		$("[id^='drp_Blk_']").addClass('close-rf').removeClass('open-rf');
		$(obj).addClass('open-rf').removeClass('close-rf');
		}
		
	});
	
	$("[id^='rfLnksCategory_']").live('click',function(e){
		$('#main_search_what').val($(this).attr('role'));
		var _deal_type = $(this).attr('rel');
		var _literal_deal_type=( _deal_type  == 0)? 'Аренда' : 'Продажа';
		$('#deal_type_notification .deal_type_notif_cnt').html(_literal_deal_type);
		if ($('#deal_type_notification').css('display') == 'none'){
			$('#deal_type_notification').css('display', 'block');
		}
		var dealtypevalues = ['rent','sale'];
		$('#search_form input[name=dealtype]').val( dealtypevalues[_deal_type] );
		
		jsddm_close();
	}); 
	
	// slide Where
	$("[id^='rfclkWhere_']").click(function(a,b,c){
		slide_where();
	});

	// hint Where
	item_showHint( '#rfclkWhere_btn1', 'where_hint');
    
	//check if in home page
	var isinhomepageurlinfo = getUrlInfo();
	if((isinhomepageurlinfo.section=='' || isinhomepageurlinfo.section=='www') && (isinhomepageurlinfo.path=='/' || isinhomepageurlinfo.path=='')){
		hp_hotlists_freshener();
	}
}); // doc.ready

function bind_where_tabs_clicks(){
	var where_tabs_clickable = [];
	//var where_tabs_all = $("#where_slide_container ul li a[id^='where_tab_']");
	$("#where_slide_container ul li a[id^='where_tab_']").each(function (i,e){
		var obj = $(this);
		if(! obj.parent().hasClass('disable') ){
			where_tabs_clickable.push( '#'+obj.attr('id') );
		};
	})
	//console.debug(where_tabs_clickable.join(','));
	where_tabs_clickable = $(where_tabs_clickable.join(','));
	where_tabs_clickable.click(function (a,b,c){
		//console.debug(where_tabs_clickable);
		where_tabs_clickable.parent().removeClass('active');
		$(this).parent().addClass('active');
		//console.debug($(this));
		$("ul[id^='where_list_']").hide();
		//console.debug(('#'+ $(this).attr('id').replace(/_tab_/g,'_list_')));
		$('#'+ $(this).attr('id').replace(/_tab_/g,'_list_')).css({'display':'block'});
		
	});
}

function populate_default_text(){
    var section = $('#section_id').val();
    defaultSearchText = section_btn_options[theVal][1];
}

/**
 * sections' home pages carousel functionality 
 */
function carousel_left(){

	var items = $("#hp_carousle_block ul.sld_box_list li.sld_box_itm");
	
	var buttons = $("#hp_carousle_block ul.float_2m li.float_1m a");
	
	var left = $("#hp_carousle_block div.sld_pane_1 a.pos_abs_1");
	var right = $("#hp_carousle_block div.sld_pane_1 a.pos_abs_2");
	
	// click on red button
	buttons.click(function(){
		var item_no = $.inArray(this, buttons);
		carousel_show(item_no);
	})
	
	// click on left / right
	left.click(function(){
		var active = buttons.filter("a.active").get(0);
		var current_no = $.inArray(active, buttons);
		if (current_no==0) {current_no=5;}
		carousel_show(current_no-1);
	});
	right.click(function(){
		var active = buttons.filter("a.active").get(0);
		var current_no = $.inArray(active, buttons);
		if (current_no==4) {current_no=-1;}
		carousel_show(current_no+1);
	});

	// switch the item on the carousel, and activate correct button
	function carousel_show(item_no) {
		$.each(items, function(id, item){
			if (id==item_no) {
				$(item).show("fast");
			} else {
				$(item).hide("fast");
			}
		});
		
		$(buttons).removeClass("active");
		$(buttons[item_no]).addClass("active");
		
	}
	
} // carousel_left
/**
 * sections' home pages hot listings refresher 
 */
var auto_switch_hotlists = true;   // set to false when mouse over

function hp_hotlists_freshener(){
	
	//one ul item is a block of 3 listings
	var items = $("#vts_box_content ul");
	
	var buttons = $("#vts_box_header ul.float_2m li.float_1m a");
	
	var loader_pane = $("#vts_pane_overlay");
	var loader_pane_and_gif = $("#vts_pane_overlay,#vts_loader_overlay");
	

	// click on red button
	buttons.click(function(a,b,c){
		if(b!=='handler_event_type'){
			auto_switch_hotlists=false;
		}
		if($(this).hasClass('active')){
			return;
		}
		var item_no = $.inArray(this, buttons);
		show_item(item_no);
	});
	
	
	var permit_show = true; 
	// show item no' item_no
	function show_item(item_no){
		try{
			if(!permit_show){
				return;
			}
			permit_show = false ;
			loader_pane_and_gif.css({'display':'block'});
			var min_opacity = loader_pane.css('opacity');
			loader_pane.css( {'opacity':0}).animate( {'opacity':0.7}, parseInt(Math.random()*700 + 250), function(){
				loader_pane.animate( {'opacity':1}, parseInt(Math.random()*100 + 40) ,function(){
					//hide all items
					$(items).css({'display':'none'});
					$(items[item_no]).css({'display':'block'});
					loader_pane.animate( {'opacity':min_opacity},500,function(){
						loader_pane_and_gif.css({'display':'none'});
						permit_show = true;
					});
				});
			});

			//update chosen button
			$(buttons).removeClass("active");
			$(buttons[item_no]).addClass("active");
		
		} catch (e) {
			permit_show = true;
		}
	}
	
	//  new behavior - stop on mouse over
	var me_timestamp=(new Date()).getTime();
	$("div#vts_box_content ul").hover(
		//on mouse enter
		function(e){
			permit_show = false ;
			me_timestamp = (new Date()).getTime();
		},
		//on mouse leave
		function(e){
			permit_show = true ;
			// disable loop if mouse entered for more than one second
			if((new Date()).getTime() - me_timestamp > 1000 ){ 
				auto_switch_hotlists=false;
			}
		}
	);
		
	setTimeout("loop_hotlists()",7000);
	
	
} // freshener end

function loop_hotlists() {
	if (auto_switch_hotlists) {
	   // get current active list
	   var all = $("#vts_box_header ul.float_2m li.float_1m a");
	   var active = $("#vts_box_header ul.float_2m li.float_1m a.active").get(0);
	   active = $.inArray(active, all);
	   
	   if (active== (all.size() -1) ) { 
		   //active=-1;
		   //stop the recursion (the timer)
		   return ;
	   }
	   //$(all.get(active+1)).click();
	   //use trigger handler instead the real event
	   //set indication that event was triggered manually (not real mouse click)
	   $(all.get(active+1)).triggerHandler('click','handler_event_type');
	   
	   //console.debug('recursion still running!!!');
	   setTimeout("loop_hotlists()", 7000);
	}
	else{ 
		//console.debug('recursion stoped!!!');
	}
	
} // loop_hotlists



function bind_switches(search_box,search_sample){
    
	var isThereWhati = $( 'a.section_btn' );
    theVal = $( 'a.section_btn.active').attr('rel');

	if( isThereWhati.length > 1 ){

    	$(isThereWhati).bind('click', function(e){
		
			e.preventDefault();
			
			//  demo behaviours................................
			
			if( current_obj ){
				jsddm_canceltimer();
				jsddm_close();
			}
			
			theVal = $(this).attr('rel');	
			var $trig = $('div[rel="what_container"]');	
			var $btn = $('div[rel="rfTrig_btn_hit"]');	
			var $drop_ic = $trig.find('.dropdown_search_ic');
			$('input[name="section"]').val(theVal);

			if(theVal == 'realestate'){	
				$trig.attr("id","rfTrigCnt_"+theVal);
				$drop_ic.css('display','block');	
				
				$btn.removeClass('rfTrig_btn-none').addClass('rfTrig_btn');
				$(search_box).attr('readonly', true);
				$(search_box).val($('input[name="defaultText_realestate"]').val());
				$(search_box).addClass('inp_transp').removeClass('inp_search');
				$(search_box).appendTo("#what_dropdown_cnt .what_dropdown_cnt");
				$('#what_basic_cnt').css('display','none');	$('#what_dropdown_cnt').css('display','block');
				
				$($btn).bind('click', function() {					
					if(! $trig.hasClass("active")){
						jsddm_open($($trig));	
					} else if($trig.hasClass("active")){
						jsddm_close();
					}
				});
				$trig.find('.close_drp_btn').bind('click',  jsddm_close);
				
			
			}else{
				$trig.removeClass('active');
				$trig.attr("id","what_container");
				$drop_ic.css('display','none');
				$('#deal_type_notification').css('display', 'none');
				$('#deal_type_notification .deal_type_notif_cnt').html('');
				$btn.removeClass('rfTrig_btn').addClass('rfTrig_btn-none');
				$(search_box).attr('readonly', false);$(search_box).val('');
				$(search_box).addClass('inp_search').removeClass('inp_transp');
				$(search_box).appendTo("#what_basic_cnt");
				$('#what_basic_cnt').css('display','block');	$('#what_dropdown_cnt').css('display','none');
				
				$($btn).unbind('click');
				$trig.find('.close_drp_btn').unbind('click',  jsddm_close);
			}
			
			$(isThereWhati).removeClass('active');
            $(this).addClass('active');
			//end demo behaviours.................................
    		
			/*
        	if(theVal == $(this).attr('rel')){
        		return;
        	}
        	else{
        		section_search_cache[section_btn_options[ theVal ][0]] = search_box.val() ; 
        	}

        	var c_section = $('#section_id').val();
        	theVal = $(this).attr('rel');
        	
            $(isThereWhati).removeClass('active');
            $(this).addClass('active');

			var btn_section = section_btn_options[ theVal ][0] ;
			defaultSearchText = section_btn_options[ theVal ][1];
            $('input[name=dealtype]').val( theVal );
            if( c_section != btn_section ){
            	$( '#section_id' ).val( btn_section );
            	search_box.val(section_search_cache[btn_section]);
            }

            search_box.autocomplete( "destroy" );
            ac_search_options = [];
            ac_search_selected = '';
            autocomplete_search($('#section_id').val(),search_box);
            search_sample.html(defaultSearchText);*/

            search_box.autocomplete( "destroy" );
            autocomplete_search($('#section_id').val(),search_box);
        });

    	//bind to selected button
    	autocomplete_search($('#section_id').val(),search_box);
    }
    
    else{
    	//only one button - not wwwsearch box - one section only
    	autocomplete_search($('#section_id').val(),search_box);
    }
        
    $(search_box).blur(function() {
        if(search_box.val().trim() == ''){
           // search_box.val(defaultSearchText);
        }   
        else{
            if($('#section_id').val() == 'realestate'){
                if(ac_search_selected != ''){
                    search_box.val(ac_search_selected);
                }
                else{
                //    search_box.val(defaultSearchText);
                }
            }
        }             
    });
}

function ac_search_realestate(theobj,resp){
    
    var content = theobj.term;
	var section = "realestate";
	var dealType = $('input[name=dealtype]').val();
	ac_search_options = [];
	var tmp_suggest = [];
	content = encodeURI(content);
	$.ajax({
	    url: "/ajax/autocompleterealestate/"+content,
        dataType: 'json',
        data: {section:section,dealtype:dealType},
        success: function(json){ 
            
            if(json.length != 0){
                ac_search_options = [];
                $(json).each(function(id,item){
                    ac_search_options.push({
                            'label':item.l_geo_city,
                            'value':item.l_geo_city,
                            'both':item.l_geo_city
                        });
                });
            }
           
                
            resp(ac_search_options);
            monkeyPatchAutocomplete();
            
	    } // callback on getJSON
    }); // getjson
    
    
}


function ac_search_vehicles(theobj,resp){
    var content = theobj.term;
	var section = "vehicles";
	var dealType = $('input[name=dealtype]').val();
	ac_search_options = [];
	content = encodeURI(content);
	var tmp = {};
	$.ajax({
	    url: "/ajax/autocompleteveh/"+content,
        dataType: 'json',
        data: {section:section,dealtype:dealType},
        success: function(json){ 
            ac_search_options  = [];
            $(json).each(function(id,item){
                ac_search_options.push({
                        'label':item.l_make+" "+item.l_model+" "+item.l_year,
                        'value':item.l_make+" "+item.l_model+" "+item.l_year,
                        'both':item.l_make+" "+item.l_model+" "+item.l_year
                    });
            });
            resp(ac_search_options);
            monkeyPatchAutocomplete();
	    } // callback on getJSON
    }); // getjson
    
}


function ac_search_jobs(theobj,resp){
	var content = theobj.term;
	var section = "jobs";
	var dealType = 'jobs';
	ac_search_options = [];
	content = encodeURI(content);
	var tmp = {};
	$.ajax({
		url: "/ajax/autocompletejobs/"+content,
		dataType: 'json',
		data: {section:section,dealtype:dealType},
		success: function(json){ 
			ac_search_options  = [];
			$(json).each(function(id,item){
				ac_search_options.push({
					'label':item.position,
					'value':item.position,
					'both':item.position
				});
			});
			resp(ac_search_options);
			monkeyPatchAutocomplete();
		} // callback on getJSON
	}); // getjson
	
}




function autocomplete_search(section,search_box){
    var ac_bind_function;
    var alwaysSelectFirst = false;
    var minimumStrLength = 1;
    var theDelay = 100;
    if(section == 'realestate'){
        ac_bind_function = null;//ac_search_realestate; //not anymore
        alwaysSelectFirst = false;
        theDelay = 150;
    }
    else if(section == 'vehicles'){
        ac_bind_function = ac_search_vehicles;
        minimumStrLength = 2;
        theDelay = 180;
    }
    else if (section=='jobs') {
    	ac_bind_function = ac_search_jobs;
    	minimumStrLength = 2;
    	theDelay = 180;
    }
    
    
    if(!ac_bind_function){
        return;
    }
    search_box.autocomplete({
    	minLength: minimumStrLength,
    	delay: theDelay,
    	//selectFirst: alwaysSelectFirst,
    	//appendTo: '#search_bx_0id',
    	source: ac_bind_function,
    	select: function(event, ui) {
			
		},
		focus: function(event, ui) {
		    if(section != 'vehicles'){
		        ac_search_selected = ui.item.value;
	        }
		},
		close: function(event, ui) {
		
        }
  	});

  	
};


