/**
 * Copyright (C) 2009 Drumbit - www.drumbit.com
 * 
 * This file is part of ExperienceGifts
 *
 * ExperienceGifts is free software: you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation, either version 3 of the License, or
 * (at your option) any later version.
 * 
 * ExperienceGifts is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 * 
 * You should have received a copy of the GNU General Public License
 * along with ExperienceGifts.  If not, see <http://www.gnu.org/licenses/>.
 * 
 */

var DD_MAX_HEIGHT = {ddMaxHeight: '153px'};
$(document).ready(function() {
    
    $('.select_light_finder SELECT, .select_dark_finder SELECT').sSelect(DD_MAX_HEIGHT);
    getMetroOptions(true);
    
    $('#form_adv_search').submit(function(){
    	window.location  = BASE_URL + 'search?s_metro=' + $('#s_metro').val() + '&s_category=' + $('#s_category').val()+ '&s_price=' + $('#s_price').val();
    	return false; 
    });

 
})

function getMetroOptions(first_load)
{
	var current_val = $('#s_metro').val();

	var range = $('#s_price').val().split('-');
	var from = range[0];
	var to = range[1];
	$.get(BASE_URL+'ajax/get-metros',{"from":from,"to":to,"category_url":$('#s_category').val()},function(res){
		$('#s_metro OPTION:not(:first)').remove();
		var response = eval('('+res+')');
		for(var i in response.metros)
		{
			if (response.metros[i].description != undefined )
			{
				$('#s_metro').append('<option value="'+response.metros[i].url+'">'+response.metros[i].description+'</option>');
			}
		}
		$('#s_metro').val(current_val);
		$('#s_metro').resetSS(DD_MAX_HEIGHT);
		$('#s_metro').change(getCategoryOptions);
		$('#s_metro').change(getPriceOptions);

		if (first_load)
		{
//			if ($('#s_metro_cache').val())
//			{
//				$('#s_metro').val($('#s_metro_cache').val());
//				$('#s_metro').resetSS(DD_MAX_HEIGHT);
//			}
			getCategoryOptions(true);
		}
		
	})
}

function getCategoryOptions(first_load)
{
	var current_val = $('#s_category').val();

	var range = $('#s_price').val().split('-');
	var from = range[0];
	var to = range[1];
	$.get(BASE_URL+'ajax/get-categories',{"from":from,"to":to,"metro_url":$('#s_metro').val()},function(res){
		$('#s_category OPTION:not(:first)').remove();
		var response = eval('('+res+')');
		for(var i in response.categories)
		{
			if (response.categories[i].name != undefined )
			{
				$('#s_category').append('<option value="'+response.categories[i].url+'">'+response.categories[i].name+'</option>');
			}
		}
		$('#s_category').val(current_val);
		$('#s_category').resetSS(DD_MAX_HEIGHT);
	    $('#s_category').change(getMetroOptions);
	    $('#s_category').change(getPriceOptions);
	    
	    if (first_load)
		{
//			if ($('#s_category_cache').val())
//			{
//				$('#s_category').val($('#s_category_cache').val());
//				$('#s_category').resetSS(DD_MAX_HEIGHT);
//			}
			getPriceOptions(true);
		}
	})
}

function getPriceOptions(first_load)
{
	var current_val = $('#s_price').val();

	$.get(BASE_URL+'ajax/get-price-ranges',{"category_url":$('#s_category').val(),"metro_url":$('#s_metro').val()},function(res){
		$('#s_price OPTION:not(:first)').remove();
		var response = eval('('+res+')');
		if (!response.ranges.length)
		{	
			$('#s_price').append('<option value="0-0">Any price</option>');
			current_val = current_val == $('#s_price OPTION:first').val() ? current_val : 'null';
		}
		else
		{
			for(var i in response.ranges)
			{
				if (response.ranges[i].from != undefined && response.ranges[i].to != undefined)
				{
					$('#s_price').append('<option value="'+response.ranges[i].from+'-'+response.ranges[i].to+'">'+
							(response.ranges[i].from == 0 ? 'less than $'+response.ranges[i].to : 
								(response.ranges[i].to == 0 ? 'more than $'+response.ranges[i].from : '$'+response.ranges[i].from+' - $'+response.ranges[i].to))+'</option>');
				}
			}
		}
		$('#s_price').val(current_val);
		$('#s_price').resetSS(DD_MAX_HEIGHT);
	    $('#s_price').change(getMetroOptions);
	    $('#s_price').change(getCategoryOptions);
	    
	    if (first_load)
		{
//			if ($('#s_price_cache').val())
//			{
//				$('#s_price').val($('#s_price_cache').val());
//				$('#s_price').resetSS(DD_MAX_HEIGHT);
//			}
		}
	})
}

