function gaClick(source) {
	pageTracker._trackPageview('ga/' + source);
}


$(document).ready(function(){
    $('#searchListLinkToPageClose').click(function(){
	$('#searchListLinkToPage').hide();
    });

    $('.searchListButtonTop').each(function(){
       $(this).mouseover(function(){ 
           $('.ctl', this).attr('style', 'background-image: url(\''+layoutUrl+'images/corners/search_l.gif\');');  
           $('.ctr', this).attr('style', 'background-image: url(\''+layoutUrl+'images/corners/search_r.gif\');');
       }); 
       $(this).mouseout(function(){
            $('.ctl', this).attr('style', 'background-image: url(\''+layoutUrl+'images/corners/corners_l.gif\');');
            $('.ctr', this).attr('style', 'background-image: url(\''+layoutUrl+'images/corners/corners_r.gif\');');
       });       
    });
    
    //$('#searchListShowOtherCity').click(function(){
    //   showOtherCity($('#searchListCriteriaInputCity').val()); 
    //});
    
    $('#showMainMenuSearchBtn').click(function(){
        $('#searchListMenuHidden').toggle();
    });
    
    
    $('#showMapSearchBtn').click(function(){
        changeSearchType('map');
    });

    $('#showTextSearchBtn').click(function(){
        changeSearchType('text');
    });
    
	$("#searcherSmall").submit(function() {
        if ( $('#primaryMarket').val() == 'true' ) {
        	var RealEstateType = $('#realEstateType').val();
        	var City = $('#searchCity').val();
        	window.location=baseUrl+"primary/params/useGet/true/realEstate/"+RealEstateType+"/city/"+City;
            return false;
        }
		return true;
    });
    
    // min-max swap
  	 swapMinMax = [];
   	$(".searchListCriteriaInput").each(function(i){

		swapMinMax[i] = $(this).val();

            $(this).focus(function(){
                    if ($(this).val() == swapMinMax[i] && ($(this).val() == 'min' || $(this).val() == 'max')) {
                     $(this).val("");
                     $(this).css({color:'#000000'});
                    }
            $(this).addClass("focus");
                    }).blur(function(){
                    if ($.trim($(this).val()) == "" && (swapMinMax[i] == 'min' || swapMinMax[i] == 'max')) {
                        $(this).val(swapMinMax[i]);
                       	$(this).css({color:'#757575'});
                        $(this).removeClass("focus");
                    }
            });		
			
   	}); 
	   
	// min-max numbers only
   	$(".searchListCriteriaInput").keyup(function () {
   		
   		if($(this).hasClass('searchListCriteriaStreet')) {
			// street
		}
		else {
			// numeric inputs
  			this.value = this.value.replace(/[^0-9\.]/g,'');
		}
    
 	});
	           
	
	$('#searchStreet').keyup(function(){
		if(typeof(window['autoLoaderTime']) != "undefined"){
			clearTimeout(autoLoaderTime);
		}		
		if(typeof(window['autoStreetTime']) != "undefined"){
			clearTimeout(autoStreetTime);
		}			
		if(typeof(window['autoStreetTimeHide']) != "undefined"){
			clearTimeout(autoStreetTimeHide);
		}
		if($('#searchStreet').val().length > 3){
			streetAutocomplete();
		}
		autoLoaderTime = setTimeout("divProcess($('#autocompleteStreet'));", '500');	
		autoStreetTime = setTimeout("streetAutocomplete();", '2000');
	});
	
	$('#searchStreet').click(function(){
		if(typeof(window['autoLoaderTime']) != "undefined"){
			clearTimeout(autoLoaderTime);
		}		
		if(typeof(window['autoStreetTime']) != "undefined"){
			clearTimeout(autoStreetTime);
		}			
		if(typeof(window['autoStreetTimeHide']) != "undefined"){
			clearTimeout(autoStreetTimeHide);
		}			
		if($('#searchStreet').val().length > 3){
			streetAutocomplete();
		}
	});	
	
	$('#searchStreet').blur(function(){
		if(typeof(window['autoStreetTimeHide']) != "undefined"){
			clearTimeout(autoStreetTimeHide);
		}		
		autoStreetTimeHide = setTimeout("$('#autocompleteStreet').hide()", '2000');
	});	

	
	$('#autocompleteStreet').bind('mouseenter', function(){	
		if(typeof(window['autoStreetTimeHide']) != "undefined"){
			clearTimeout(autoStreetTimeHide);
		}		
	});		

	$('#autocompleteStreet').bind('mouseleave', function(){	
		if(typeof(window['autoStreetTimeHide']) != "undefined"){
			clearTimeout(autoStreetTimeHide);
		}
		autoStreetTimeHide = setTimeout("$('#autocompleteStreet').hide()", '4000');
	});		
	
	/********************** SEARCH NA STRONIE GŁÓWNEJ i searcher small ***************** */
	

    $('#fastLoad_on').click(function(){
        switchFastLoad('on');
    });
    $('#fastLoad_off').click(function(){
        switchFastLoad('off');
    }); 
	
    
    /*$(".resRowPicture").lazyload({ placeholder : layoutUrl+"images/loader_offer.gif" });*/

        var WindowHeight = $(window).height();
            var NewMapHeight = WindowHeight - 240;
            if(NewMapHeight < 250){
                NewMapHeight = 250;
            }
            $('#criteriaMap').css('height', NewMapHeight);

        var Width = $('#main').width();
        if(Width < 1000){
            $('#main').attr('style', 'width=1000px');
        }

    $('#selectidProvince').change(function(){
       reloadCriteria('idProvince'); 
    });

    $('#selectidCity').change(function(){
       reloadCriteria('idCity'); 
    });

    $('#selectidQuarter').change(function(){
       reloadCriteria('idQuarter'); 
    });
    
    $('#selectidZone').change(function(){
       reloadCriteria('idZone');
    });  
    
    $('#idRealEstateType').change(function(){
        var Id = $(this).val();
        loadRealEstateType(Id);
    });   
    
    //fade out info o niekompatybilnosci
    $('#searchMapBrowserNonCompatibile').fadeOut('slow');
     
});

function streetAutocomplete(){
	var City = $("input[name=cityId]").val();
	var Street = $('#searchStreet').val();
	$.ajax({
		url: ajaxUrl + 'json/forms/get-street',
		type: 'GET',
		data: "street="+encodeURI(Street)+"&city="+City,
		success: function(result) {
			var resultInsert = '';
	    	Data = json_parse(result);
	    	if(Data.length > 9){
                    $('#autocompleteStreet').css('height', '200px');
	    	}else{
                    $('#autocompleteStreet').css('height', 'auto');
	    	}
                    for(J = 0 ; J < Data.length ; J++){
                            resultInsert += '<div onclick="streetAutoSelected(\''+Data[J].street+'\');" class="searchRolldownItem">'+Data[J].street+'</div>';
                    }
                    $('#autocompleteStreet').show();
                    $('#autocompleteStreet').html(resultInsert);
		}
	});
}

function streetAutoSelected(Value){
	$('#searchStreet').val(Value);
	$('#autocompleteStreet').hide();
	$('#searchStreet').css({color:'#000000'});
	$('#searchStreet').addClass("focus");
}

function changeSearchType(Type){
    switch(Type){
        case 'map':
            $('#showTextSearchBtn').show();
            $('#showMapSearchBtn').hide();
            $('#criteriaAddress').hide();
            $('#criteriaMap').show();
            $('#criteriaMapList').show();
            ViewMode = 'map';
        break;
        case 'text':
            $('#showTextSearchBtn').hide();
            $('#showMapSearchBtn').show();
            $('#criteriaAddress').show();
            $('#criteriaMap').hide();
            $('#criteriaMapList').hide();
            ViewMode = 'text';
        break;
    }
}


function loadRealEstateType(Id){
    if(PrimaryView == true){
        var Url = 'primary';
    }else{
        var Url = 'search';
    }
    var IdCurrency = '1';
    $("input[name='idCurrency']").each(function(){
      if($(this).is(':checked')){
          IdCurrency = $(this).val();
      }
    });
	$.ajax({
		type: 'POST',
		url: ajaxUrl+'json/'+Url+'/get-real-estate-type',
		data: 'idRealEstateType='+Id+'&language='+lang+'&idCurrency='+IdCurrency,
		success: function(result) {
            $('#searchListCriteriaType').html(result);    
            reloadRealEstateCriteriaLink();
			gaClick('searchListCriteriaType');
        } 
   });
}

function reloadCriteria(Type){
    switch(Type){
        case 'idQuarter':
            var IdQuarter = $('#selectidQuarter').val();
            fillZones(IdQuarter);
        break;        
        case 'idCity':
            var IdCity = $('#selectidCity').val();
            fillQuarters(IdCity);            
        break;
        case 'idProvince':
            var IdProvince = $('#selectidProvince').val();
            fillCitys(IdProvince);            
        break;                
    }
}

function fillZones(IdQuarter){
    var Url = 'json/address/get-zones/quarter/';
    clearSelect($('#selectidZone'));
    $('#selectidZone').ajaxAddOption( ajaxUrl + Url + encodeURI(IdQuarter), {}, false);
}

function fillQuarters(IdCity){
    var Url = 'json/address/get-quarters/citi/'; 
    clearSelect($('#selectidZone'));
    clearSelect($('#selectidQuarter'));
    $('#selectidQuarter').ajaxAddOption( ajaxUrl + Url + encodeURI(IdCity), {}, false);
}

function fillCitys(IdProvince){
    if(PrimaryView){
        var Url = 'json/primary/get-province-city/province_id/';
    }else{
        var Url = 'json/address/get-citis/province/';
    }
    clearSelect($('#selectidZone'));
    clearSelect($('#selectidQuarter'));
    clearSelect($('#selectidCity'));
    $('#selectidCity').ajaxAddOption( ajaxUrl + Url + encodeURI(IdProvince), {}, false);
}

function clearSelect(IdSelect){
    IdSelect.removeOption(/./);
    IdSelect.addOption('0', '---');
}



/* ***************** AJAX LOAD ************* */

$(document).ready(function(){
    reloadAjaxLinks();
    loadGMap();
    localizeCity(ProvinceName, CityName);    


	$("#searchListCriteriaInputCity").keyup(function(e){
		if( e.keyCode == 13 ) {
			searchListCriteriaCity(); return false;
		}
	});
    
	$('#searchListCitySubmit').click(searchListCriteriaCity);
});




    function searchListCriteriaCity()
    {
        var IdRealEstateType = '1';
        var IdOrderType = '1'; 
        if(PrimaryView != true)
        {    
           $('input[name="idOrderType"]').each(function(){
                if($(this).is(':checked'))
                { 
                    IdOrderType = $(this).val();
                }
           });
           var Market = 'secondary';
        }else{
            var Market = 'primary';
        }
        
        IdRealEstateType = $('select[name="idRealEstateType"] :selected').val();
        var City = $('#searchListCriteriaInputCity').val();
        var cityId = $('#cityId').val();
        $.ajax({ 
        		type: 'POST',
        		url: ajaxUrl + 'json/search/change-city',
        		data: {cityId:cityId, city: City, idRealEstateType: IdRealEstateType, idOrderType: IdOrderType, market: Market},
        		success: function(result)
                {
                    Data = json_parse(result);
                    if(Data == 'false'){
                        showPopup('Nie znaleziono miasta: '+City+'<br /><br />lub ofert w tym mieście');
                    }else{
                        window.location = Data;                            
                    }
        		}
        	});
    }


FirstReloadCriteriaLink = true;
function reloadAjaxLinks(){
    
    $('.row').mouseover(function(){
        rowColor =  $(this).attr('style', 'background-color');
        $(this).attr('style', 'background-color: white;');
        $('td' ,this).attr('style', 'background-color: #e5f4ff;'); 
    });
    $('.row').mouseout(function(){
        rowColor =  $(this).attr('style', 'background-color');
        $('td' ,this).attr('style', 'background-color: '+rowColor+';'); 
    }); 
        
        $('#sortListBtn').toggle(
            function(){
               $(this).attr('style', 'background-color: #f3f3f3');
               $('#sortListHidden').slideDown();
            },
            function(){
               $(this).attr('style', 'background-color: white');
               $('#sortListHidden').slideUp();
            }
        );
    
         $('.ajaxLink').click(function(){
            if(fastLoad == 'on'){
                var Href = $(this).attr('href');
                var HrefEx = Href.split('/');
                var Count = HrefEx.length;
                var RetArray = [];
                J = 0;
                if(PrimaryView == true){
                    Istart = 5;
                }else{
                    Istart = 4;
                }
                for(I = 0; I < Count; I++){
                    if(I > Istart){
                        if(HrefEx[I] != ''){
                            RetArray[J] = HrefEx[I];
                            J++;
                        }
                    }
                }
                RetArray[J] = 'type';
                J++;
                RetArray[J] = 'url';
                J++;
                RetArray[J] = 'language';
                J++;
                RetArray[J] = lang;
                J++;
                if($('#idAgency').val() != 0){
                    RetArray[J] = 'agency';
                    J++;
                    RetArray[J] = $('#idAgency').val();
                    J++;                    
                }
                loadResultsList(RetArray);
                return false; 
            }
        });  
        
        reloadCriteriaLink();
}

function reloadCriteriaLink(){
    if(FirstReloadCriteriaLink){
         $('.ajaxCriteriaLink').click(function(){
            if(fastLoad == 'on'){
                var Params = getCriteriaParams();
                loadResultsList(Params);  
                return false;
            }
        });  
        FirstReloadCriteriaLink = false;     
    }
}

function reloadRealEstateCriteriaLink(){
     $('#searchListCriteriaType .ajaxCriteriaLink').click(function(){
        if(fastLoad == 'on'){
            var Params = getCriteriaParams();
            loadResultsList(Params);  
            return false;
        }
    });
    provideMinMaxInput();
}


 function getCriteriaParams(){
    var Params = [];
        var I = 0;
        
    $('#resultsListform input').each(function(){
        var Name = $(this).attr('name');
        var Value = $(this).val();
        if(Value != null && Value != '' && Value != 'min' && Value != 'max' && Value != 'go' && Name != 'search'  && Name != 'searchListLinkToPageInput'){
            if($(this).attr('class') == 'searchListCriteriaCheckbox' && !$(this).is(':checked')){
                
            }else{
                Params[I]=Name;
                I++;
                if(Name == 'showAgency' || Name == 'showPrivate' || Name == 'vt'){
                    Value = true; 
                }
                Params[I]=Value;
                I++;
            }
         }
         
    });
    
    
     var Done = false;
    $('#resultsListform select').each(function(){
        if((ViewMode == 'map' && Params[I] == 'idZone') || (ViewMode == 'map' && Params[I] == 'idQuarter')){
            /* id quarter i zone pobieramy z mapy */
            
        }else{
            var Value = $(this).val();
            if(Value != null && Value != 0){
                if($(this).attr('name') == 'idQuarter[]'){
                    Params[I]='idQuarter';
                }else if($(this).attr('name') == 'idZone[]'){
                    Params[I]='idZone';
                }else{
                    Params[I]=$(this).attr('name');
                }                   
                        I++;   
                        Params[I]=Value;
                        I++;  
            }
        }
    });
    /* ab:jeśli tryb jest mapkowy - trzeba pobrać zaznaczone dzielnice z tablicy przechowującej z mapki */
    if(ViewMode == 'map'){    
        Params[I] = 'idZone';
        Value = [];
        qValue = [];      
        for(J in SelectedZone){  
            Value.push(SelectedZone[J]);                
        }
        for(J in SelectedQuarter){            
            qValue.push(SelectedQuarter);     
        }                        
        Done = true;    
        I++;   
        Params[I]=Value;
        I++;  
        Params[I] = 'idQuarter';
        I++;
        Params[I] = qValue;
        I++;    
    }
        Params[I] = 'language';
        I++;
        Params[I] = lang;
        I++;
    return Params;
}

function loadResultsPrimary(SearchData){
        $('#resultsLoader').show();
        $('#resultsListArea').css('opacity', '0.3')    
        $('#resultsListCount').html('?');
        $('#resultsListPageLink').val('?');
        $('#sortListHidden').hide();
        $('#sortListBtn').attr('style', 'background-color: white');
        if(ShowGoogleMap){
            $('#criteriaMapOpacity').show();
            $('#criteriaMap').addClass('mapOpacity');
        }
	$.ajax({
		type: 'POST',
		url: ajaxUrl+'json/primary/results',
		data: SearchData,
		success: function(result) {
			var Data = json_parse(result);
                    $('#resultsListArea').html(Data['list']);
                    $('.resultsListPaginatorArea').each(function(){
                        $(this).html((Data['paginator'])) ;
                    });
                    $('#resultsListCount').html(Data['count']);
                    $('#searchListLinkToPage input').val(Data['linkToThisPage']);

                    $('#sortList').html(Data['sortList']);
                    reloadAjaxLinks();
                   $('#searchListCriteriaInputCity').val(Data['cityName']);
                    $('#resultsListArea').css('opacity', '1');
                    $('#resultsLoader').hide();
                   /* $(".resRowPicture").lazyload({ placeholder : layoutUrl+"images/loader_offer.gif" });*/
                    gaClick('loadResultsPrimary');
                    if(ShowGoogleMap){
                        $('#criteriaMapOpacity').hide();
                        $('#criteriaMap').removeClass('mapOpacity');
                    }
            }
	});
}

function changeMarket(ParamsStr){
    	$.ajax({
    		type: 'POST',
    		url: ajaxUrl+'json/search/change-market',
    		data: ParamsStr,
    		success: function(result) {
    			var Url = json_parse(result);
                window.location = Url;
            }
       });   
}

function loadResultsList(HrefEx){
    if(fastLoad != 'on'){
        return true;
    }    
    
    var HrefCount = HrefEx.length;
    var I = 0;
    var SearchData = '';
    var Type = '';
    while(I < HrefCount){
        var Key = HrefEx[I];
        var Value = HrefEx[I+1];
        SearchData += Key + '=' + Value + '&';
        I = I+2;
        if(Key = 'type'){
            Type = Value;
        }
    }
    
    /*zmieniamy rynek*/
    if(Type != 'url'){
        if(($('input[name="idMarketType"]:checked').val() == '2' && PrimaryView == true) || ($('input[name="idMarketType"]:checked').val() == '1' && PrimaryView != true)){
            changeMarket(SearchData);
            return false;
        }
    }
    
    if(PrimaryView == true){      
        loadResultsPrimary(SearchData);
        return false;
    }
    
        $('#resultsLoader').show();
        $('#resultsListArea').css('opacity', '0.3')
        $('#resultsListCount').html('?');
        $('#resultsListPageLink').val('?');
        $('#sortListHidden').hide();
        $('#sortListBtn').attr('style', 'background-color: white');
        if(ShowGoogleMap){
            $('#criteriaMapOpacity').show();
            $('#criteriaMap').addClass('mapOpacity');
        }
        var SearchString = '';
        var I = 0;
        SearchData = 'url = lista-ofert&' + SearchData;
    	$.ajax({
    		type: 'POST',
    		url: ajaxUrl+'json/search/results',
    		data: SearchData,
    		success: function(result) {
    		/*var DataAll = json_parse(result);*/
                var DataAll = eval('(' + result + ')');
                var Count = DataAll['list'].length; 
                $('#resultsListArea').html(DataAll['list']);

                $('.resultsListPaginatorArea').each(function(){
                    $(this).html((DataAll['paginator'])) ;             
                });
                $('#resultsListCount').html(DataAll['count']);
                $('#searchListLinkToPageInput').val(DataAll['linkToThisPage']);
                
                $('#sortList').html(DataAll['sortList']);
                reloadAjaxLinks();
               $('#listPath').html(DataAll['path']);
                $('#resultsListArea').css('opacity', '1');
                
                $('#resultsLoader').hide();
               /* $(".resRowPicture").lazyload({ placeholder : layoutUrl+"images/loader_offer.gif" });*/
                $('#searchListCriteriaInputCity').val(DataAll['cityName']); 
                if(DataAll['showError'] == true){
                    showPopup(DataAll['errorMsg']);
                }
                if(ShowGoogleMap){
                    $('#criteriaMapOpacity').hide();
                    $('#criteriaMap').removeClass('mapOpacity');

                }
				gaClick('loadResultsList');
    		}
    	});
}





function switchFastLoad(type){
    if(type == 'on'){
        fastLoad = 'on';
        $('#fastLoad_off').show();  
        $('#fastLoad_on').hide(); 
        reloadAjaxLinks();
    }else{
        fastLoad = '';
        $('#fastLoad_off').hide();
        $('#fastLoad_on').show();
    }
	$.ajax({
		  type: "GET",
		  url: ajaxUrl + 'json/search/fast-load/type/' + type
		});    
}




/* ALERT OFERTOWY NA LIŚCIE */
	
	function saveCriteriaAlert() {
	   var SearchParams = getCriteriaParams();
       var Count = SearchParams.length;
       var Link = '';      
       for(I = 0; I < Count; I++){
            Link += SearchParams[I] + '/'; 
       }      
		if(loggedIn == 0) {
			window.location = baseUrl+'user/my-criteria-add/' + Link;
		}else{ 
    		$.ajax({
			  type: "POST",
			  url: ajaxUrl + 'json/search/save-alert/' + Link,
			  success: changeCriteriaAlertInfo
   			});
			gaClick('saveCriteriaAlert');
		}
	}
	
	function changeCriteriaAlertInfo(data, textStatus) {
	   showPopup('<p class="large">Alarm Ofertowy został zapisany.</p><p>Aby go sprawdzić/edytować użyj zakładki Moje Konto</p>');
	}
    
	function setCookiesToBack(prod_id, href )
	{
	   var link = $("#searchListLinkToPageInput").val();
    		$.ajax({
			  type: "POST",
			  url: ajaxUrl + 'json/search/set-cookies/isAfterList/true/id/' + prod_id + '?link=' + encodeURIComponent(link) + '/',
			  success: function() {
			  	location.href=href;
			  }
   			});
			return false;
	}
    
    /*
    function showOtherCity(CityName){
            var Result = '<div style="text-align: left; height: 150px; overflow: auto; margin-left: 10px; margin-right: 10px;">';
    		$.ajax({
			  type: "POST",
			  url: ajaxUrl + 'json/search/get-other-city/cityName/' + CityName,
			  success: function(result) {
			     var Data = json_parse(result);
 
                for(I in Data){               
                    Result += '<a href="'+Data[I]['url']+'">'+Data[I]['name']+'<br/ >';
                }
                Result += '</div>';
			  	showPopup(Result);
			  }
   			});            
    }
    */
