/**
 *	@purpose:   handles all effect for the search functionality
 *	@author:    robert.leurs@cooloxygen.com
 *	@version:   1.0
 */ 

$(document).ready(function(){

    // 01. get first uri segment from url
    var curentPage = getUriSegments()[1];

    // 02. do we need to init the searchbox element(s) yes/no?
    switch(curentPage){
        case 'yachtbase':
        case 'yachtbase_search':
            // sequential initialization of the searchbox element(s)
            initSlider_Length(15,200,5);
            initSlider_Date(2000,2020,1);                
            initSlider_DispayUBound(5,55,5);
        break;
        
        case 'yachtbase_tender':
            // sequential initialization of the searchbox element(s)
            initSlider_Length(1,50,25);
            initSlider_Date(2000,2020,1);  
            initSlider_DispayUBound(5,55,5);
        break;        
        default:
            // do nothing
    } 

    // init the slider for length
	function initSlider_Length(minLength, maxLength, stepLength){
    
        // init some variables
        var txtDimension = '';
        var objSlider    = "#slider_range";
        var objInput     = "#LenthOverall";
        var objCheck     = "#use_length";
        var objLabel     = "#slider_range_label";

        // init the slider
		$(objSlider).slider({
			range: true,
			min: minLength,
			max: maxLength,
            step: stepLength,
			values: [minLength,maxLength],
            // catch the slide event
			slide: function(event, ui) {
				$(objInput).val(ui.values[0] + '|' + ui.values[1]);
                $(objLabel).html('' + ui.values[0] + txtDimension + '-' + ui.values[1] + txtDimension);
                $(objCheck).attr('checked', true);
			}
		});
        // set initial state(s) and value(s)
		$(objInput).val($(objSlider).slider("values", 0) + '|' + $(objSlider).slider("values", 1));
        $(objLabel).html($(objSlider).slider("values", 0) + txtDimension + '-' + $(objSlider).slider("values", 1) + txtDimension);
        $(objCheck).attr('checked', false);
	};
    
    
    // init the slider for launch-date
	function initSlider_Date(minLength, maxLength, stepLength){
    
        // init some variables
        var txtDimension = '';
        var objSlider    = "#slider_year";
        var objInput     = "#year";
        var objCheck     = "#use_year";
        var objLabel     = "#slider_year_label";

        // init the slider
		$(objSlider).slider({
			range: true,
			min: minLength,
			max: maxLength,
            step: stepLength,
			values: [minLength,maxLength],
            // catch the slide event
			slide: function(event, ui) {
                
                // add empty string for 'easy' INT to STR conversion
                var lbound = "" + ui.values[0]; 
                var ubound = "" + ui.values[1];
                
                // now get the last two positions
                lbound.substr(2,4);
                ubound.substr(2,4); 

				$(objInput).val(ui.values[0] + '|' + ui.values[1]);
                $(objLabel).html('' + lbound + txtDimension + '-' + ubound + txtDimension);
                $(objCheck).attr('checked', true);
			}
		});
        // set initial state(s) and value(s)
		$(objInput).val($(objSlider).slider("values", 0) + '|' + $(objSlider).slider("values", 1));
        $(objLabel).html($(objSlider).slider("values", 0) + txtDimension + '-' + $(objSlider).slider("values", 1) + txtDimension);
        $(objCheck).attr('checked', false);
	};
    
    
    // init the slider for number of search results to show
    function initSlider_DispayUBound(minLength, maxLength, stepLength){
		
        var txtDimension = '';
        var objSlider    = "#slider_ubound";
        var objInput     = "#display_ubound";
        var objCheck     = "#use_ubound";
        var objLabel     = "#slider_ubound_label";
        var initValue    = Math.ceil((maxLength-minLength)/2);
        
        $(objSlider).slider({
			range: "max",
			min: minLength,
			max: maxLength,
            step: stepLength,
			value: initValue,
			slide: function(event, ui) {
				$(objInput).val(ui.value);
                $(objLabel).html($(objSlider).slider("value"));
                $(objCheck).attr('checked', true);
			}
		});
		$(objInput).val($(objSlider).slider("value"));
        $(objLabel).html($(objSlider).slider("value"));
        $(objCheck).attr('checked', false);
	};
    
});
