var now = new Date()
var setMinDate = new Date(now.getFullYear(), now.getMonth(), 1)
var setMaxDate = new Date(now.getFullYear(), now.getMonth(), 1).addMonths(12)

var valMinDate = new Date(now.getFullYear(), now.getMonth(), 3)
var valMaxDate = new Date(now.getFullYear(), now.getMonth(), 28).addMonths(11)

function formatDate(value) {
	var month = value.getMonth() + 1;
	var day = value.getDate();
	return "" + value.getFullYear() + "" + (month < 10 ? "0" + month : month) + "" + (day < 10 ? "0" + day : day);
}

function makeDateSlider(selector, options) {
        var slider = $(selector).dateRangeSlider(options).bind("valuesChanged", function (event, ui) {
            updateValuesChanged(event, ui);
        }).addClass("ui-rangeSlider-dev");
    }



function updateValuesChanged(event, ui, changing) {
    displayValues(ui.label, ui.values)
}


// assegna il valore dello slider

function displayValues(slider, values) {
	getFeed(values.min,values.max )
	//getFeed($('#result'), feeds);
	//	  		slider.parents("form").find("input[name=min]").val($.datepicker.formatDate("yy-mm-dd", values.min));
    //		  	slider.parents("form").find("input[name=max]").val($.datepicker.formatDate("yy-mm-dd", values.max));
//    alert("date selezionate: " + values.min + " - " + values.max )
//	$("input[name=min]").val($.datepicker.formatDate("yy-mm-dd", values.min));
//    $("input[name=max]").val($.datepicker.formatDate("yy-mm-dd", values.max));
}

function createScale(data1, data2) {
    var monthScale = [];
    //		monthScale.push(formatMonth(data1)) 
    var monthdiff = data1.MonthsBetween(data2)
    if (monthdiff > 2) {
        var step = 6

        //step = (monthdiff < 3 ? 2 : 10) 
        var monthdiff = (monthdiff < step ? 1 : Math.floor(monthdiff / step))
        for (var i = 0; i < step; i++) {
            var d = new Date(data1.getFullYear(), data1.getMonth(), 1);
            d.setMonth(d.getMonth() + i * monthdiff);
            monthScale.push(formatMonth(d))
        };

    }
    monthScale.push(formatMonth(setMaxDate))

    var divScale = $("<div class='month-scale' >" + generateScale(monthScale) + "</div>")
    $('.ui-rangeSlider-innerBar').append(divScale);

    drawScale('.ui-rangeSlider-innerBar')
}


function generateScale(scale) {
    if (scale && scale.length > 0) {
        var str = "";
        var s = scale;
        var prc = 10;
        if (scale.length < 10) {
            prc = Math.round((100 / (s.length - 1)) * 10) / 10;
        }
        for (var i = 0; i < s.length; i++) {
            str += '<span style="left: ' + i * prc + '%">' + (s[i] != '|' ? '<ins>' + s[i] + '</ins>' : '') + '</span>\n';
        };
        return str;
    }
    else return "";

    return "";
}

function drawScale(divZone) {
    $(divZone).find(".month-scale span ins").each(function (index) {
        $(this).css({
            marginLeft: -$(this).outerWidth() / 2
        });
    });
}

function formatMonth(value) {
    var month = value.getMonth();
    var year = value.getFullYear();
    return monthNamesShort[value.getMonth()] + "<br />" + year;
    //return " april " + (month < 10 ? "0" + month : month) + "/" + year;
}
	
	function getFeed(data1,data2) {
		$('#result').html("");
		$('#result').addClass("loading")
		var feeds = [
			{ 
				'url': "http://www.cavallino.info/" + lang + "/" + formatDate(data1) + "/" + formatDate(data2) + "/RssHyperLinkNews.aspx", 
				'callback': function(RSSfeeds){
				   if (RSSfeeds.entries.length>0)
				   {
					   $('#feedTmpl1').tmpl(RSSfeeds.entries).appendTo('#result');
				   }else{
					   $('#feedTmpl2').tmpl("").appendTo('#result')
				   }
				$('#result').removeClass("loading")
				} 
			}
		];
		$.each(feeds, function(index, feed) {
			$.jGFeed(feed.url, function(RSSfeedRequest) {
				feed.callback(RSSfeedRequest);
			}, 4);
		});
	};
  
$(document).ready(function () {
    makeDateSlider("#defaultDateSlider", {
        formatter: function (value) {
            var month = value.getMonth() + 1;
            var day = value.getDate();
            return "" + (day < 10 ? "0" + day : day);
        },
        bounds: {
            min: setMinDate,
            max: setMaxDate
        },
        defaultValues: {
            min: valMinDate,
            max: valMaxDate
        }

    });

    createScale(setMinDate, setMaxDate)

	//getFeed(setMinDate,setMaxDate)
	//getFeed($('#result'), feeds);


});

