﻿function radRotator_OnClientItemShown(sender, eventArgs) {
    var varID = sender.get_id();
    var varDay = parseInt(varID.replace("radRotator", ""));
    var objCalendarDay = objCalendarDays.ItemByDay(varDay);
    var varMovieID = objCalendarDay.Movies.ItemByIndex(eventArgs.get_item().get_index()).MovieID;
    document.getElementById(varID.replace("radRotator", "hidDay")).value = varMovieID;
}

function ShowMovie(evt, objElement, varMovieID, varDate) {
    var objEvent = (window.event) ? window.event : evt;
    var objSourceElement = (objEvent.target) ? objEvent.target : ((objEvent.srcElement) ? objEvent.srcElement : null);

    if ((objSourceElement.tagName == "SPAN") && ((objCurrentElement == null) || ((objCurrentElement != null) && (objCurrentElement.id != objSourceElement.id)))) {
        objCurrentElement = objElement;
        var varHtml = objMovies.Item(varMovieID).ToHtml(varDate);
        Tip(varHtml, FOLLOWMOUSE, false, STICKY, true, DELAY, 500, BGCOLOR, '', BGIMG, "library/images/movie_popup_background.jpg",
            BORDERWIDTH, 0, WIDTH, 450, HEIGHT, 350, PADDING, 0, FONTFACE, "Frugal Sans, Arial, Verdana", OFFSETY, -50, JUMPHORZ, true);
    }
    else {
        window.event.cancelBubble = true;
    }
}

function HideMovie() {
    objCurrentElement = null;
    UnTip();
}

function CloseMovie() {
    objCurrentElement = null;
    tt_HideInit();
}

function RedirectMovie(objElement) {
    if (objElement.getElementsByTagName("INPUT")[0].value != "") {
        var varMovieID = parseInt(objElement.getElementsByTagName("INPUT")[0].value);
        window.location ="default.aspx?PageID=" + varFileDetailsPageID + "&MovieID=" + varMovieID;
    }
}

function Movie(varMovieID, varTitle, varCountry, varYear, varRating, varLength, varLanguage, varDescription, varPosterUrl, varReviewSource, varReviewText, objCritics, arrRelatedMovies) {
    this.MovieID = varMovieID;
    this.Title = varTitle;
    this.ToHtml = ReturnHtml;

    function EncodeString(varString) {
        return varString.replace("", "");
    }

    function ReturnHtml(varDate) {
        var varHtml = "";
        var objCalendarDay = objCalendarDays.Item(varDate);
        var objNextMovie = null;

        if (objCalendarDay != null) {
            objNextMovie = objCalendarDay.Movies.NextMovie(varMovieID);
        }
        
        varHtml += "<div id=\"divMovieDetails\" class=\"clsMovieDetails\">";
        varHtml += "<table cellpadding=\"0\" cellspacing=\"0\" border=\"0\" width=\"450\">";
        varHtml += "<tr><td style=\"width:180px\">";
        if (varPosterUrl != "") {
            varHtml += "<div class=\"clsPoster\"><img src=\"" + varPosterUrl + "\" width=\"156\" height=\"225\" alt=\"" + varTitle + "\" title=\"" + varTitle + "\" /></div>";
        }
        if ((arrRelatedMovies != null) && (arrRelatedMovies.length > 0)) {
            varHtml += "<div class=\"clsRelatedMovies\">";
            varHtml += "<span>You might also like...</span>";
            varHtml += "<ul>";
            for (i = 0; i < arrRelatedMovies.length; i++) {
                var objMovie = arrRelatedMovies[i];
                varHtml += "<li>";
                varHtml += "<a href=\"default.aspx?PageID=" + varFileDetailsPageID + "&MovieID=" + objMovie.MovieID + "\">" + objMovie.Title + "</a>";
                varHtml += "</li>";
            }
            varHtml += "</ul>";
            varHtml += "</div>";
        }
        varHtml += "</td><td style=\"width:270px\" style=\"position:relative;\">";
        varHtml += "<div class=\"clsNavigation\">";
        if (objNextMovie != null) {
            varHtml += "<a href=\"javascript:ShowNextMovie(" + objNextMovie.MovieID + ", '" + varDate + "');\"><img src=\"library/images/button_next.png\" width=\"25\" height=\"17\" alt=\"Next Movie\" title=\"Next Movie\" border=\"0\" /></a>";
            varHtml += " &middot; ";
        }
        varHtml += "<a href=\"javascript:CloseMovie();\"><img src=\"library/images/button_close.png\" width=\"17\" height=\"17\" alt=\"Close\" title=\"Close\" border=\"0\" /></a>";
        varHtml += "</div>";
        varHtml += "<div class=\"clsMovieContainer\">";
        varHtml += "<div class=\"clsTitle\"><a href=\"default.aspx?PageID=" + varFileDetailsPageID + "&MovieID=" + varMovieID + "\">" + varTitle + "</a></div>";
        varHtml += "<div class=\"clsSubTitle\">" + varCountry + " &middot; " + varYear + " &middot; " + varRating + " &middot; " + varLength + " minutes</div>";
        if (varLanguage != "") {
            varHtml += "<div class=\"clsLanguage\">" + varLanguage + "</div>";
        }
        if ((objCritics != null) && (objCritics.Length() > 0)) {
            varHtml += "<div class=\"clsCritics\">"
            for (i = 0; i < objCritics.Length(); i++) {
                var objCritic = objCritics.Item(i);
                varHtml += "<a href=\"" + objCritic.Url + "\" target=\"_blank\">";
                varHtml += "<img src=\"" + objCritic.Icon + "\" border=\"0\" alt=\"" + objCritic.Text + "\" title=\"" + objCritic.Text + "\" />";
                varHtml += "</a>";
            }
            varHtml += "</div>";
        }
        if (varReviewSource != "") {
            varHtml += "<div class=\"clsReview\">" + varReviewText + "<br />- <em>" + varReviewSource + "</em></div>";
        }
        if (varDescription != "") {
            varHtml += "<div class=\"clsDescription\">";
            varHtml += varDescription;
            varHtml += "&nbsp; [<a href=\"default.aspx?PageID=" + varFileDetailsPageID + "&MovieID=" + varMovieID + "\">MORE</a>]";
            varHtml += "</div>";
        }
        varHtml += "</div>";
        varHtml += "</td></tr>";
        varHtml += "</div>";

        return varHtml;
    }
}

function ShowNextMovie(varMovieID, varDate) {
    var varHtml = objMovies.Item(varMovieID).ToHtml(varDate);
    document.getElementById("divMovieDetails").parentNode.innerHTML = varHtml;
}

function MovieArray() {
    this.MovieArray = new Array();
    this.Add = _AddMovie;
    this.Item = _ReturnMovie;
    this.ItemByIndex = _ReturnMovieByIndex;
    this.NextMovie = _ReturnNextMovie;
    this.PreviousMovie = _ReturnPreviousMovie;

    function _AddMovie(objMovie) {
        this.MovieArray[this.MovieArray.length] = objMovie;
    }

    function _ReturnMovie(varMovieID) {
        for (i = 0; i < this.MovieArray.length; i++) {
            if (varMovieID == this.MovieArray[i].MovieID) {
                return this.MovieArray[i];
            }
        }
    }

    function _ReturnMovieByIndex(varIndex) {
        return this.MovieArray[varIndex];
    }

    function _ReturnNextMovie(varMovieID) {
        for (i = 0; i < this.MovieArray.length; i++) {
            if (varMovieID == this.MovieArray[i].MovieID) {
                if (i == this.MovieArray.length - 1) {
                    return this.MovieArray[0];
                }
                else {
                    return this.MovieArray[i + 1];
                }
            }
        }
    }

    function _ReturnPreviousMovie(varMovieID) {
        for (i = 0; i < this.MovieArray.length; i++) {
            if (varMovieID == this.MovieArray[i].MovieID) {
                if (i == 0) {
                    return this.MovieArray[this.MovieArray.length - 1];
                }
                else {
                    return this.MovieArray[i - 1];
                }
            }
        }
    }
}

function CalendarDay(varDate, arrMovies) {
    this.Date = new Date(varDate);
    this.Movies = _AddMovies(arrMovies);

    function _AddMovies(arrMovies) {
        var objMovieArray = new MovieArray();
        
        for (i = 0; i < arrMovies.length; i++) {
            objMovieArray.Add(new Movie(arrMovies[i], "", "", 0, "", 0, "", "", "", "", "", null, null));
        }
        
        return objMovieArray;
    }
}

function CalendarDayArray() {
    this.CalendarDayArray = new Array();
    this.Add = _AddCalendarDay;
    this.Item = _ReturnCalendarDay;
    this.ItemByDay = _ReturnCalendarDayByDay;

    function _AddCalendarDay(objCalendarDay) {
        this.CalendarDayArray[this.CalendarDayArray.length] = objCalendarDay;
    }

    function _ReturnCalendarDay(varDate) {
        for (i = 0; i < this.CalendarDayArray.length; i++) {
            if (new Date(varDate).getTime() - this.CalendarDayArray[i].Date.getTime() == 0) {
                return this.CalendarDayArray[i];
            }
        }
        return null;
    }

    function _ReturnCalendarDayByDay(varDay) {
        for (i = 0; i < this.CalendarDayArray.length; i++) {
            if (this.CalendarDayArray[i].Date.getDate() == varDay) {
                return this.CalendarDayArray[i];
            }
        }
        return null;
    }
}

function Critic(varName, varIcon, varUrl, varText) {
    this.Name = varName;
    this.Icon = varIcon;
    this.Url = varUrl;
    this.Text = varText;
}

function CriticArray(arrCritics) {
    if (arrCritics == null) {
        this.CriticArray = new Array();
    }
    else {
        this.CriticArray = arrCritics;
    }
    this.Length = _ReturnArrayLength;
    this.Item = _ReturnCritic;

    function _ReturnArrayLength() {
        return this.CriticArray.length;
    }

    function _ReturnCritic(varIndex) {
        if (varIndex < this.CriticArray.length) {
            return this.CriticArray[varIndex];
        }
        return null;
    }
}

function document_Click(evt) {
    var objEvent = ReturnEventDetail(evt);
    if (objEvent.TagName == "FORM") {
        //CloseMovie();
    }
}

function Load() {
    var objEvents = new EventArray();
    objEvents.Add(new Event("document", "click", document_Click));
    objEvents.AttachEvents();
}

var objMovies = new MovieArray();
var objCalendarDays = new CalendarDayArray();
var objCurrentElement = null;