// JavaScript Document






jQuery.fn.extend({
    disableSelection : function() {
            this.each(function() {
                    this.onselectstart = function() { return false; };
                    this.unselectable = "on";
                    jQuery(this).css('-moz-user-select', 'none');
            });
    },
    enableSelection : function() {
            this.each(function() {
                    this.onselectstart = function() {};
                    this.unselectable = "off";
                    jQuery(this).css('-moz-user-select', 'auto');
            });
    }
});

var realCalendarWidth = 0;

function drag(x){
	x.disableSelection();
	var focus;
	x.css('position','relative')
	x.width(realCalendarWidth);
    var X;
	var maxRight = x.parent().width()
    var k;


		x.mousedown(function(event)
		            {focus = 'true'
					    X = event.pageX;
					     k = parseInt($(this).css('left'));
						if (!k){k=0}


					}
					)
		x.mouseup(function(event){
								focus = 'false';
								})





	$("body").mouseup(function(){focus = "false"})
	$("body").mousemove(function(event){
								if (focus == 'true'){
								//var k = parseInt(x.css('left'));
						        //if (!k){k=0}
								var left = k+event.pageX-X


								if (left<=0 && left >= - realCalendarWidth+maxRight){x.css('left',left+'px')}
								else if (left>=0){x.css('left','0px')}
								else {x.css('left',- realCalendarWidth+maxRight+'px')}
								}
						})

} //drag

function setCalendarOffset() {
    if(
	    $('.calendarEventMove ul li.current').length
	) {
	    realCalendarWidth = 0;

	    $('.calendarEventMove ul li').each(
            function(){
                realCalendarWidth += $(this).outerWidth();
            }
        );
    	$('.calendarEventMove ul').width(realCalendarWidth);

	    var index = $('.calendarEventMove ul li.current').index() - 2;
	    var p = $('.calendarEventMove ul li').eq(index).position();

	    if(p.left) {
	        var wrapWidth = $('.calendarEventMove').width();

	        if(realCalendarWidth - p.left < wrapWidth) {

	         //
			  if ((navigator.platform.indexOf("iPhone") != -1) ||(navigator.platform.indexOf("iPad") != -1)){
				$('.calendarEventMove ul').scrollTo(0,-1 * (realCalendarWidth - wrapWidth))



				  }
			  else {

				  $('.calendarEventMove ul').css('left', -1 * (realCalendarWidth - wrapWidth) + 'px');
				  }
	        } else {
				if ((navigator.platform.indexOf("iPhone") != -1) ||(navigator.platform.indexOf("iPad") != -1)){
			     $('.calendarEventMove ul').scrollTo(0, -1 * p.left)


			}
				  else {
					  $('.calendarEventMove ul').css('left', -1 * p.left + 'px').addClass("no-transform");
					  }

	       //

	        }

	    }
	}
}

$(document).ready(function(){
var canScroll= false;

   var mousewheelevt=(/Firefox/i.test(navigator.userAgent))? "DOMMouseScroll" : "mousewheel"

    if (document.attachEvent)
         document.attachEvent("on"+mousewheelevt, scrollCal)
     else if (document.addEventListener)
    document.addEventListener(mousewheelevt, scrollCal,false)
	setCalendarOffset();

	var calendarDrag = $('.calendarEventMove ul')
	    calendarDrag.parent().hover(
    function(){
        canScroll = true

    },
    function(){
        canScroll = false;

    })
	drag(calendarDrag)
	//if (window.addEventListener)
    //window.addEventListener('DOMMouseScroll', wheel, false);
   var top;






    function scrollCal(e){
    var maxLeft = -(calendarDrag.width() - $(".calendarEventMove").width());
       var evt=window.event || e //equalize event object
       var delta=evt.detail? evt.detail*(-120) : evt.wheelDelta
       var leftNow = parseInt(calendarDrag.css("left"))

       if (delta<0 && canScroll){calendarDrag.css("left", leftNow+50 +"px")}
       if (delta>0 && leftNow-50>=maxLeft && canScroll){calendarDrag.css("left", leftNow-50 +"px")}
    if (canScroll){

      if (evt.preventDefault)
    {
        evt.preventDefault();
    }
    evt.returnValue = false;

      }
      return false;
    }



})


