﻿// JScript File
var MSG2 = 'Execute web service error';

function CollapsedUpcommingEvents(divId, icon,hidCollapsedId,url1,url2, refreshFlag)
{
    var div = document.getElementById(divId);
    var hidCollapsed = document.getElementById(hidCollapsedId);
    if(div.style.display == "none")
    {
        div.style.display = "";
        icon.src = url1;
        hidCollapsed.value = "1";
        if(refreshFlag == true)
        {
            RefreshLiveThumbnail(div);
        }
    }
    else
    {
        div.style.display = "none";
        icon.src = url2;
        hidCollapsed.value = "";
    }
    var imgExpandAll = document.getElementById(imgExpandAllId);
    var flag = checkAllCollapsed();
    if (flag == 1)
    {
        SetExpandAllButton(imgExpandAll, true);
    }
    else if(flag == 0)
    {
        SetExpandAllButton(imgExpandAll, false);
    }
}

function LaunchPreferedStream(url, e)
{
    e = FixEvent(e);
    window.location.replace(url);
}

function OnMethodError(para1,para2,para3,para4)
{
    document.body.style.cursor="default";
    //alert(MSG2 + "\r\nmessage: " + para1.get_message() + "\r\nstackTrace: " + para1.get_stackTrace());
}




function GetHomePageInfo()
{
    document.body.style.cursor="wait";
    if(isFromXml == false)
    {
        GetContentEntityInfo.GetHomePageInfo(calendarYear, calendarMonth, GetHomePageInfoDone,OnMethodError);
    }
    else
    {
        GetContentEntityInfo.GetFlagFileLastWriteTime(GetFlagFileLastWriteTimeDone, OnMethodError);
    }

}

function GetHomePageInfoDone(result)
{
    document.body.style.cursor="default";
    if(result == null)
        return;
        
	try
	{
	    var needRefresh = false;
	    if(calendarDataString != result.CalendarInfo)
	    {
	        needRefresh = true;
	    }
	    else if(result.UpcomingEventsInfo.length != eventinfo.length)
	    {
	        needRefresh = true;
	    }
	    else
	    {
	        for(var i =0; i < result.UpcomingEventsInfo.length;i++)
	        {
                if(needRefresh)
                {
                    break;
                }
	            if(eventinfo[i] != result.UpcomingEventsInfo[i].Id)
	            {
        	        needRefresh = true;
        	        break;
	            }
	            else
	            {
	                var tempRowVersion = "";
                    if(rowversion[i] != result.UpcomingEventsInfo[i].RowVersion)
                    {
    	                needRefresh = true;
    	                break;
                    }
	            }
	        }
	    }
	    if(needRefresh)
	    {
	        eventinfo = new Array();
	        rowversion = new Array();
	        for(var i =0; i < result.UpcomingEventsInfo.length;i++)
	        {
	            eventinfo[i] = result.UpcomingEventsInfo[i].Id;
	            rowversion[i] = result.UpcomingEventsInfo[i].RowVersion;
            }
            calendarDataString = result.CalendarInfo;	        
            __doPostBack(refreshUpComingEventsLinkID, '');
	    }
	}
	catch(e)
	{
		//alert("GetStreamsByContentEntityIdDone. error:" + e.message);
	}
}

function SetExpandAllButton(imgObj, expandFlag) {
    var inputExpandFlag = document.getElementById(expandAllFlagID);
    if (expandFlag == false) {
        imgObj.src = themeRootPath + 'Images/collapse-all.gif';
        imgObj.alt = collapseAllString;
        if (inputExpandFlag != null) {
            inputExpandFlag.value = "";
        }
        
    }
    else {
        imgObj.src = themeRootPath + 'Images/expand-all.gif';
        imgObj.alt = expandAllString;
        if (inputExpandFlag != null) {
            inputExpandFlag.value = "1";
        }
    }
}

function ExpandAll(imgObj)
{
    try
    {
        var expand = false;
        if (imgObj.src.indexOf("expand-all.gif") != -1)
        {
            expand = true;
        }

        SetExpandAllButton(imgObj, !expand);
        var table = document.getElementById(eventsTableId);
        
        for(var i = 0;i < table.rows.length;i++)
        {
            var row = table.rows[i];
            if (row.cells.length > 2)
            {
                var cell = row.cells[0];
                if(cell.firstChild != null)
                {
                    var img = cell.firstChild;
                    if(expand)
                    {
                        img.src = themeRootPath + 'Images/c-minus.gif';
                    }
                    else
                    {
                        img.src = themeRootPath + 'Images/c-plus.gif';
                    }
                    
                }
            }
            else if(row.id != "")
            {
                if (expand)
                {
                    row.style.display = "";
                }
                else
                {
                    row.style.display = "none";
                }
            }
        }
        var hidObjects = document.getElementsByTagName("INPUT");
        for(var i = 0;i < hidObjects.length;i++)
        {
            var hidObject = hidObjects[i];
            if (hidObject.id.indexOf("hidEventCollapsed") != -1)
            {
                if (expand)
                {
                    hidObject.value = "1";
                }
                else
                {
                    hidObject.value = "";
                }                
            }
        }
    }
    catch(e)
    {
		//alert("ExpandAll. error:" + e.message);
    }
    
}

//0 all expanded
//1 all collapsed
//2 mixed
function checkAllCollapsed()
{
    var allcollapsed = true;
    var allexpanded = true;
    var table = document.getElementById(eventsTableId);
    for(var i = 0;i < table.rows.length;i++)
    {
        var row = table.rows(i);
        if(row.id != "")
        {
            if (row.style.display != "none")
            {
                allcollapsed = false;
            }
            else
            {
                allexpanded = false;
            }
        }
    }
    if(allcollapsed == true)
        return 1;
    if(allexpanded == true)
        return 0;

    return 2;    
}


function GetFlagFileLastWriteTimeDone(result)
{
    document.body.style.cursor="default";
	try
	{
	    if(result != flagFileLastWriteTime)
	    {
	        flagFileLastWriteTime = result;
   	        __doPostBack(refreshUpComingEventsLinkID,'');
	    }
	}
	catch(e)
	{
		//alert("GetFlagFileLastWriteTimeDone. error:" + e.message);
	}	
}


function RefreshUpcomingThumbnails()
{
    var i;
    var j;
    var url;
    var thumbObj;
    var index;
    var table = document.getElementById(eventsTableID);
    if(table != null)
    {
        var trs = table.getElementsByTagName("tr");
        for( j = 0; j < trs.length; j++)
        {
            var tr = trs[j];
            if(tr.id != "" && tr.style.display != "none")
            {
                RefreshLiveThumbnail(tr);
            }
        }
    }
}

function RefreshLiveThumbnail(container)
{
    var time = (new Date).getTime();
    var imgs = container.getElementsByTagName("img");
    for(i = 0; i < imgs.length; i++)
    {
        if(imgs[i].id.indexOf("imgThumbnail") >= 0)
        {
            thumbObj = imgs[i];
            url = thumbObj.src;
   	        if(url.indexOf("_live.") > 0)
            {
                index = url.indexOf("?");
                if(index >= 0)
                {
                    url = url.substr(0, index);
                }
                thumbObj.src =  url+ "?" + time;
            }
        }
    }

}
