
function getTop() {
    // get the top of the content
    var top = $('.scroll-content',o).css('top');
    return trimPx(top);
}

function getHeight(id) {
    // get the height, including padding
    var height = $(id,o).height();    
    var paddingTop = trimPx($(id,o).css("padding-top"));
    var paddingBottom = trimPx($(id,o).css("padding-bottom"));
    return height + paddingTop + paddingBottom;

}

function trimPx(value) {
    // remove "px" from values
    var pos = value.indexOf("px");
    if (pos != 0)
        return parseInt(value.substring(0, pos));
    else
        return 0;
}

/*  Constant url location for the arts & Hystory calendar  */
//var monthCalLink = "http://artsandhistory.cityofboise.org/eventCalendar/calendar.aspx?viewmonth=";
var monthCalLink = "http://www.boiseartsandhistory.org/Calendar/?month=";
function displayEvents(data, theMonth) {

    //alert(data.d + "\n\n length " + data.d.length + "\n\n" + theMonth)

    if (data.d == null)
        return;

    if (CalMonth == theMonth) {
        $(".scroll-content", o).html("");
        var title = '';
        var description = '';
        var startdate = '';

        var link = '';
    
        for (var i = 0; i < data.d.length; i++) {
            title = data.d[i].Title;
            if (data.d[i].URL != null && data.d[i].URL != "") {
                link = '<a target="_blank" href="' + data.d[i].URL + '">More Information</a>';
            }
            description = data.d[i].Description;
            startdate = '<span class="startdate">' + data.d[i].EventStartDateAsString + data.d[i].EventStartTimeAsString + ' to ' + data.d[i].EventEndTimeAsString + '</span>';
            $(".scroll-content", o).append(title + "<br /><div class='descriptionWrapper'>" + startdate + "<div class='description'>" + description + "</div>" + link + "</div>");
      link = '';
        }
        var monthCalendarLink = monthCalLink + getDateFromMonth(theMonth);
        $(".scroll-content", o).append("View the month" + "<br /><div class='descriptionWrapper'>" + "<a target='_blank' href='" + monthCalendarLink + "'>Calendar</a>" + "<div class='description'>" + "" + "</div>" + "" + "</div>");
        setScrollerDimensions();
    }

}

function getDateFromMonth(curMonth) {
  var CurrentDate = new Date();
  var CurrentMonth = CurrentDate.getMonth() + 1;
  var CurrentYear = CurrentDate.getFullYear();
  var SetMonth = 1;
  
  switch (curMonth) {
    case "Jan":
      SetMonth = 1;
      break;
    case "Feb":
      SetMonth = 2;
      break;
    case "Mar":
      SetMonth = 3;
      break;
    case "Apr":
      SetMonth = 4;
      break;
    case "May":
      SetMonth = 5;
      break;
    case "Jun":
      SetMonth = 6;
      break;
    case "Jul":
      SetMonth = 7;
      break;
    case "Aug":
      SetMonth = 8;
      break;
    case "Sep":
      SetMonth = 9;
      break;
    case "Oct":
      SetMonth = 10;
      break;
    case "Nov":
      SetMonth = 11;
      break;
    case "Dec":
      SetMonth = 12;
      break;
    default:
      SetMonth = 1
  }
  if (CurrentMonth > SetMonth) CurrentYear++;
  
  if ((SetMonth >= 1) && (SetMonth <= 9)) SetMonth = "0" + SetMonth;
      
  return SetMonth + "/01/" + CurrentYear;     
}

function getLeftValue(currentPosition) {

    switch (currentPosition) {
        case "pos0":
            return '0px';
            break;
        case "pos1":
            return '65px';
            break;
        case "pos2":
            return '131px';
            break;
        case "pos3":
            return '198px';
            break;
        case "pos4":
            return '260px';
            break;
        case "pos5":
            return '325px';
            break;
        case "pos6":
            return '390px';
            break;
        case "pos7":
            return '457px';
            break;
        case "pos8":
            return '520px';
            break;
        case "pos9":
            return '395px';
            break;
        case "pos10":
            return '460px';
            break;
        case "pos11":
            return '522px';
            break;

        default:
            return '0px';

    }
}



var container;
var content;
var o;
var hidden; // # of pixels hidden by the container
var CalMonth;

function setScrollerDimensions() {
   
    container = getHeight(".scroll-container");
    content = getHeight(".scroll-content");
    hidden = content - container;
}

function resetScroller() {
    setScrollerDimensions();
    $('.scroll-content',o).css('top', 0);
}

        function hideCalPopup() { //mouseexit
            $(".scroll-content", this).html("<div class='loading'>Loading...</div>");
            $("li", this).css({ 'left': '-9999px', 'top': '-255px' });
            $(".CalendarPopup", this).hide();
            $("#calendarWrapper").parent().css("z-index","99");
        }
 function showCalPopup() { //mouseenter
            o = this;
            $(".loading", this).fadeIn("slow");

            var currentPosition = $("li", this).attr("class");
            var left = getLeftValue(currentPosition);

            $("li", this).css({ 'left': left, 'top': '-255px' });
            $(".CalendarPopup", this).show();
            CalMonth = $(this).attr("class");
            $("#calendarWrapper").parent().css("z-index", "9999");
            //alert(CalMonth);

            var prim = $("#HiddenField1Primary").val();   //.(":hidden #HiddenField1Primary").val();
            var seco = $("#HiddenField2Secondary").val(); // $(":hidden #HiddenField2Secondary").val();
            //alert(prim + " " + seco);

            $.ajax({
                type: "POST",
                contentType: "application/json; charset=utf-8",
                // code for production
                  url: "http://www.boiseartsandhistory.org/usercontrols/AnH_ExperienceBoiseCalendar/usercontrols/AnH_ExperienceBoiseCalendarService.asmx/getEvents",
                
                // code for testing & development
                //url: "/usercontrols/AnH_ExperienceBoiseCalendarService.asmx/getEvents",

                data: "{'month': '" + CalMonth + "', 'prim1': '" + prim + "', 'prim2': '" + seco + "'}",
                //data: "month: CalMonth, prim1: prim, prim2: seco",
                dataType: "json",
                success: function (data) { displayEvents(data, CalMonth); }
                //,
                //error: function(request, status, throwerror) { alert(status + " " +request.statusText); }
            });
        }
$(document).ready(function() {

  $('#cal1_Parent li a').click(function(){
    thisClass = $(this).parent('li').attr('class');
    void(open(monthCalLink+thisClass,'','resizable,location,menubar,toolbar,scrollbars,status'));
  });

    $('.scroll-controls a.up-arrow', o).click(function() {
        return false;
    });

    $('.scroll-controls a.down-arrow', o).click(function() {
        return false;
    });

    $('.scroll-controls span.down-arrow', o).hover(
    function() {

        if (hidden > 0) {
            var current = getTop();
            $('.scroll-content', o).animate({ top: -hidden }, Math.abs(current - hidden) * 5);
        }
    },
    function() {
        $('.scroll-content', o).stop();
    }
  );

    $('.scroll-controls span.up-arrow', o).hover(
    function() {

        if (hidden > 0) {
            var current = getTop();
            $('.scroll-content', o).animate({ top: "0" }, Math.abs(current) * 5);
        }
    },
    function() {
        $('.scroll-content', o).stop();
    }
  );

var config = {    
     over: showCalPopup, // function = onMouseOver callback (REQUIRED)    
     timeout: 0, // number = milliseconds delay before onMouseOut    
     out: hideCalPopup // function = onMouseOut callback (REQUIRED)    
};

    $("#calendar > ul > li").hoverIntent(config );


});


