

/**

 * Product:     Layered Navigation Pro for Magento 1.3.x-1.5.1.0 - 21/04/11

 * Package:     AdjustWare_Nav_2.0.8_0.1.4_8_70915

 * Purchase ID: n/a

 * Generated:   2011-06-02 17:10:46

 * File path:   skin/frontend/default/default/js/adjnav-14.js

 * Copyright:   (c) 2011 AITOC, Inc.

 */

// checking if IE: this variable will be understood by IE: isIE = !false

isIE = /*@cc_on!@*/false;



Control.Slider.prototype.setDisabled = function()

{

    this.disabled = true;

    

    if (!isIE)

    {

        this.track.parentNode.className = this.track.parentNode.className + ' disabled';

    }

};













function search_adj_nav_hide_products()

{

    var items = $('Quick-Search-list').select('a', 'input');

    n = items.length;

    for (i=0; i<n; ++i){

        items[i].addClassName('adj-nav-disabled');

    }

    

    if (typeof(adj_slider) != 'undefined')

        search_adj_slider.setDisabled();

    

    var divs = $$('div.adj-nav-progress');

    for (var i=0; i<divs.length; ++i)

        divs[i].show();

}



function search_adj_nav_show_products(transport)

{//alert(transport.responseText);

    var resp = {} ;

    if (transport && transport.responseText){

        try {

            resp = eval('(' + transport.responseText + ')');

        }

        catch (e) {

            resp = {};

        }

    }

    

   

}



function search_adj_nav_add_params(k, v, isSingleVal)

{

    $('adj-nav-params').value = $('adj-nav-params').value.gsub(/\+/, ' ');

    var el = $('adj-nav-params');

    var params = el.value.parseQuery();

    

    var strVal = params[k];

    if (typeof strVal == 'undefined' || !strVal.length){

        params[k] = v;

    }

    else if('clear' == v ){

        params[k] = 'clear';

    }

    else {

        if (k == 'price')

            var values = strVal.split(',');

        else

            var values = strVal.split('-');

        

//        var values = strVal.split('-');

        if (-1 == values.indexOf(v)){

            if (isSingleVal)

                values = [v];

            else 

                values.push(v);

        } 

        else {

            values = values.without(v);

        }

                

        params[k] = values.join('-');

     }

        

   el.value = Object.toQueryString(params);//.gsub('%2B', '+');

}







function search_adj_nav_make_request()

{

    adj_nav_hide_products();   

    $('adj-nav-params').value = $('adj-nav-params').value.gsub(/\+/, ' ');

	

    var params = $('adj-nav-params').value.parseQuery();    

    

    if (!params['order']) // Respect Sort By settings!

	{

		select = null;

		$$('select').each(function(el) {

			if (el.onchange)

			{

				if (el.onchange.toString().match(/adj_nav_toolbar_make_request/))

				{

					select = el; 

				} // if (el.onchange.toString().match(/adj_nav_toolbar_make_request/))

			} // if (el.onchange)

		});

		

		if (select)

		{

			var selectParams = select.value.parseQuery();

			

			if (selectParams && selectParams['order'])

			{

				params['order'] = selectParams['order'];

			} // if (selectParams && selectParams['order']) 

		}    

	}

    

	if (!params['dir'])

    {

        params['dir'] = 'desc';

    }

	

	$('adj-nav-params').value = Object.toQueryString(params);

    //alert($('adj-nav-ajax').value + '?' + $('adj-nav-params').value + '&no_cache=true');

    // tmp aitoc    

    new Ajax.Request($('adj-nav-ajax').value + '?' + $('adj-nav-params').value + '&no_cache=true', 

        {method: 'get', onSuccess: search_adj_nav_show_products}

    );

}



function search_adj_option_value(optionvalue)

{

	//alert(optionvalue.split('-')[0]);	

	var isSingleVal = 0;

	search_adj_nav_add_params(optionvalue.split('-')[0], optionvalue.split('-')[1], isSingleVal);

	adj_nav_make_request();

}

function search_adj_update_links(evt, className, isSingleVal)

{

    //var link = Event.findElement(evt, 'A'),

        //sel = className + '-selected';

    

    //if (link.hasClassName(sel))

    //    link.removeClassName(sel);    

   // else

    //    link.addClassName(sel);

    

    //only one  price-range can be selected

    //if (isSingleVal){

    //    var items = $('Quick-Search-list').getElementsByClassName(className);

    //    var i, n = items.length;

    //    for (i=0; i<n; ++i){

     //       if (items[i].hasClassName(sel) && items[i].id != link.id)

    //            items[i].removeClassName(sel);   

     //   }

   // }

   //var aa=$('.className').val();

 



	

    //adj_nav_add_params(select.id.split('-')[0], link.id.split('-')[1], isSingleVal);

    //$$('#color-3').each(function(elem){

     //                           if (elem.selected) alert(elem.text + ' ' + elem.value);

     //           }); 

    search_adj_nav_make_request();    

    

    Event.stop(evt);    

}





function search_adj_nav_attribute_listener(evt)

{

    search_adj_nav_add_params('p', 'clear', 1);

    search_adj_update_links(evt, 'adj-nav-attribute', 0);

}



function search_adj_nav_icon_listener(evt)

{

    search_adj_nav_add_params('p', 'clear', 1);

    search_adj_update_links(evt, 'adj-nav-icon', 0);

}



function search_adj_nav_price_listener(evt)

{

    search_adj_nav_add_params('p', 'clear', 1);

    search_adj_update_links(evt, 'adj-nav-price', 1);

}



function search_adj_nav_clear_listener(evt)

{

    var link = Event.findElement(evt, 'A'),

        varName = link.id.split('-')[0];

    

    adj_nav_add_params('p', 'clear', 1);

    adj_nav_add_params(varName, 'clear', 1);

    

    if ('price' == varName){

        var from =  $('adj-nav-price-from'),

            to   = $('adj-nav-price-to');

          

        if (Object.isElement(from)){

            from.value = from.name;

            to.value   = to.name;

        }

    }

    

    adj_nav_make_request();    

    

    Event.stop(evt);  

}





function search_adj_nav_round(num){

    num = parseFloat(num);

    if (isNaN(num))

        num = 0;

        

    return Math.round(num);

}



function search_adj_nav_price_input_listener(evt){

    if (evt.type == 'keypress' && 13 != evt.keyCode)

        return;

        

    if (evt.type == 'keypress')

    {

        var inpObj = Event.findElement(evt, 'INPUT');

    }

    else 

    {

        var inpObj = Event.findElement(evt, 'BUTTON');

    }

        

    var sKey = inpObj.id.split('---')[1];

        

    var numFrom = adj_nav_round($('adj-nav-price-from---' + sKey).value),

        numTo   = adj_nav_round($('adj-nav-price-to---' + sKey).value);

 

    if ((numFrom<0.01 && numTo<0.01) || numFrom<0 || numTo<0)   

        return;



    adj_nav_add_params('p', 'clear', 1);

//    adj_nav_add_params('price', numFrom + ',' + numTo, true);

    adj_nav_add_params('price', numFrom + ',' + numTo, true);

    adj_nav_make_request();         

}



function search_adj_nav_category_listener(evt){

    var link = Event.findElement(evt, 'A');

    var catId = link.id.split('-')[1];

    

    var reg = /cat-/;

    if (reg.test(link.id)){ //is search

        adj_nav_add_params('cat', catId, 1);

        adj_nav_add_params('p', 'clear', 1);

        adj_nav_make_request(); 

        Event.stop(evt);  

    }

    //do not stop event

}



function search_adj_nav_toolbar_listener(evt){

	search_adj_nav_toolbar_make_request(Event.findElement(evt, 'A').href);

    Event.stop(evt); 

}



function search_adj_nav_toolbar_make_request(href)

{

    var pos = href.indexOf('?');

    if (pos > -1){

        $('adj-nav-params').value = href.substring(pos+1, href.length);

    }

    adj_nav_make_request();

}





function search_adj_nav_toolbar_init()

{

//    var items = $('adj-nav-container').select('.pages a', '.view-by a');

    var items = jQuery('adj-nav-container').select('.pages a', '.view-mode a', '.sort-by a');

    var i, n = items.length;

    for (i=0; i<n; ++i){

        Event.observe(items[i], 'click', search_adj_nav_toolbar_listener);

		

    }

}



function search_adj_nav_dt_listener(evt){

    var e = Event.findElement(evt, 'DT');

    e.nextSiblings()[0].toggle();

    e.toggleClassName('adj-nav-dt-selected');

}



function search_adj_nav_clearall_listener(evt)

{

    $('adj-nav-params').value = $('adj-nav-params').value.gsub(/\+/, ' '); 

    var params = $('adj-nav-params').value.parseQuery();



    $('adj-nav-params').value = 'adjclear=true';

    if (params['q'])

    {

        $('adj-nav-params').value += '&q=' + params['q'];

    }

    adj_nav_make_request();

    Event.stop(evt); 

}



function search_adj_nav_init()

{

    var items, i, j, n, 

        //classes = ['category', 'attribute', 'icon', 'price', 'clear', 'dt', 'clearall'];

		classes = ['attribute'];

    

    for (j=0; j<classes.length; ++j){

        items = $('Quick-Search-list').select('.adj-nav-' + classes[j]);

		//items = $('.Quick-Search-list option:selected').val(); 

		

        n = items.length;

        for (i=0; i<n; ++i){

            Event.observe(items[i], 'click', eval('search_adj_nav_' + classes[j] + '_listener'));

			

        }

    }



// start new fix code    

    /*items = $('Quick-Search-list').select('.adj-nav-price-input-id');

    

    n = items.length;

    

    var btn = $('adj-nav-price-go');

    

    for (i=0; i<n; ++i)

    {

        btn = $('adj-nav-price-go---' + items[i].value);

        if (Object.isElement(btn)){

            Event.observe(btn, 'click', adj_nav_price_input_listener);

            Event.observe($('adj-nav-price-from---' + items[i].value), 'keypress', adj_nav_price_input_listener);

            Event.observe($('adj-nav-price-to---' + items[i].value), 'keypress', adj_nav_price_input_listener);

        }

    }*/

// finish new fix code    

}

  

function search_adj_nav_create_slider_bottom(width, from, to, min_price, max_price, sKey) 

{
	
	sKey = sKey;
	//alert(sKey);
    var price_slider = $('adj-nav-price-slider' + sKey);



    return new Control.Slider(price_slider.select('.handle'), price_slider, {

      range: $R(0, width),

      sliderValue: [from, to],

      restricted: true,


      onChange: function (values){

//        var f = adj_nav_round(max_price*values[0]/width),

//            t = adj_nav_round(max_price*values[1]/width);

        var f = adj_nav_calculate(width, from, to, min_price, max_price, values[0]),

            t = adj_nav_calculate(width, from, to, min_price, max_price, values[1]);

          

//        adj_nav_add_params('price', f + ',' + t, true);

       // search_adj_nav_add_params(sKey, f + ',' + t, true);
	   
	    search_adj_nav_add_params('price', f + ',' + t, true);

        

        // we can change values without sliding  
		//$('adj-nav-range-from' + sKey).css('display':'block');
        $('adj-nav-range-from' + sKey).update(f); 

        $('adj-nav-range-to' + sKey).update(t);

            

        adj_nav_make_request();  

      },

      onSlide: function(values) { 

//          $('adj-nav-range-from' + sKey).update(adj_nav_round(max_price*values[0]/width));

//          $('adj-nav-range-to' + sKey).update(adj_nav_round(max_price*values[1]/width));
		

          $('adj-nav-range-from' + sKey).update(adj_nav_calculate(width, from, to, min_price, max_price, values[0]));

          $('adj-nav-range-to' + sKey).update(adj_nav_calculate(width, from, to, min_price, max_price, values[1]));
		

      }

    });

}
function search_adj_nav_create_slider(width, from, to, min_price, max_price, sKey) 

{

    var price_slider = $('adj-nav-price-slider' + sKey);



    return new Control.Slider(price_slider.select('.handle'), price_slider, {

      range: $R(0, width),

      sliderValue: [from, to],

      restricted: true,

      

      onChange: function (values){

//        var f = adj_nav_round(max_price*values[0]/width),

//            t = adj_nav_round(max_price*values[1]/width);

        var f = adj_nav_calculate(width, from, to, min_price, max_price, values[0]),

            t = adj_nav_calculate(width, from, to, min_price, max_price, values[1]);

           

//        adj_nav_add_params('price', f + ',' + t, true);

        search_adj_nav_add_params(sKey, f + ',' + t, true);

		
        

        // we can change values without sliding  

        $('adj-nav-range-from' + sKey).update(f); 

        $('adj-nav-range-to' + sKey).update(t);

            

        adj_nav_make_request();  

      },

      onSlide: function(values) { 

//          $('adj-nav-range-from' + sKey).update(adj_nav_round(max_price*values[0]/width));

//          $('adj-nav-range-to' + sKey).update(adj_nav_round(max_price*values[1]/width));

          $('adj-nav-range-from' + sKey).update(adj_nav_calculate(width, from, to, min_price, max_price, values[0]));

          $('adj-nav-range-to' + sKey).update(adj_nav_calculate(width, from, to, min_price, max_price, values[1]));

      }

    });

}


function search_adj_nav_calculate(width, from, to, min_price, max_price, value)

{

    var calculated = adj_nav_round(((max_price-min_price)*value/width) + min_price);

    

    return calculated;

}
