﻿var isLoaded = false;
var resourceArray = new Array();
var checkedResourceCount = 0;
var maxCount = 100;

var automobileColor = "#BB22EE";
var roomColor = "#5fafce";

function Resource(id, name, about, aBuildingId, aDir)
{   
    this.Id = id;
    this.Name = name;
    this.About = about;
    this.BuildingId = aBuildingId;
    this.Dir = aDir;
}
var BuildingArray = new Array();
function Building(aId, aName, aChecked)
{
    this.Id = aId;
    this.Name = aName;
    this.Meeting = new Array();
    this.Checked = aChecked;
}
Building.prototype.AddMeeting = function(aMeeting)
{
    this.Meeting.push(aMeeting);
}

function _getSelfFrame(aFrameId)
{
    return window.frames ? parent.frames[aFrameId] : parent.document.getElementById(aFrameId).contentWindow;
}

var parentTopFrame = _getSelfFrame("frmTop");
function getCenterFrameOfSelf(){ return _getSelfFrame("frmCenter");}

function setMeetingHeadbgColor(aMeetingIndex)
{
    var centerFrame = getCenterFrameOfSelf();
    if(centerFrame != null && centerFrame.drawFinished)
    {
        centerFrame.setHeadbgColor(aMeetingIndex);
    }
    else
    {
        setTimeout("setMeetingHeadbgColor('"+aMeetingIndex+"')", 300);
    }
}
function Loading()
{
    if(parentTopFrame && parentTopFrame.isLoaded)
    {
        Resize();
        LoadResourceList();
    }
    else
    {
        setTimeout("Loading()", 100);
    }
}

function LoadResourceList()
{
    EQD.SciencePark.Meeting.MeetingAjax.GetAllMeetingRooms(ParseResourceList);
}


function ParseResourceList(result)
{
    var _Resource = null;
    if(result.value != "")
    {
        var IsFirst = true;
        var parseBuilding = result.value.split("\x1e");
        for(var y = 0; y < parseBuilding.length; y++)
        {
            var resourceList = parseBuilding[y].split("\x1d");            
            if(resourceList != null)
            {
                var building = resourceList[0].split("\x1c");
                var bding = new Building(building[0], building[1], IsFirst)
                AddBuildingItem(bding, IsFirst);
                BuildingArray.push(bding);    
                if(building.length == 2)
                {
                    for(i=1;i<resourceList.length;i++)
                    {
                        var newResource = ParseResource(resourceList[i], building[0], bding);
                        bding.AddMeeting(newResource);
                        AddCalendarItem(newResource);
                        if(IsFirst && i == 1)
                        {
                            _Resource = newResource;
                        }
                    }
                } 
                IsFirst = false;        
            }
         }
    } 
    if(_Resource != null)
    {
        setMeetingHeadbgColor(_Resource.Id);
    }
    SetRoundedCorner();        
    isLoaded = true;
}

function ParseResource(resourceInfo, abuildingId, bding)
{
    if(resourceInfo != null)
    {
        var infoArray = resourceInfo.split("\x1c");
        if(infoArray.length == 3)
        {
            var id = infoArray[0];
            var name = infoArray[1];
            var about = infoArray[2];
            return new Resource(id,name, about, abuildingId, bding);
        }
    }
    return null;
}
function AddBuildingItem(bding, aChecked)
{
    var objTable = document.getElementById ("ResourceTable");    
    var oTr = objTable.insertRow(-1);
    var oTd = oTr.insertCell(-1);
    var check = "";
    if(aChecked)
        check = "checked=\"checked\"";
    var htmlElement =  "&nbsp;&nbsp;&nbsp;<input id=\"radio"+bding.Id+"\" "+check+" onclick=\"DrarMeetingTable('"+bding.Id+"')\" type=\"radio\" name=\"radiobuilding\" /><label for=\"radio"+bding.Id+"\"  onclick=\"DrarMeetingTable('"+bding.Id+"')\">"+bding.Name+"</label>";
    oTd.innerHTML = htmlElement;
}

function AddCalendarItem(resource)
{
    var color;
    
    var container = "ResourceTable";
    color = roomColor;

    var objTable = document.getElementById (container);
    
    var oTr = objTable.insertRow(-1);
    var oTd = oTr.insertCell(-1);
    var htmlElement;
    var id,name,about,BuildingId;
        
    id = resource.Id;
    name = resource.Name;
    about = resource.About;
    BuildingId = resource.BuildingId;
    oTd.id = "CTR"+id;
    oTd.className ="listtext";
    htmlElement ="&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<a id = 'Cspan"+ id +"' style = 'padding-left:3px;width:140px;height:20px; color:#f5f5f5;background-color:"+ color +";cursor:pointer;position:relative;top:3px' onclick=\"ChangeResourceChecked('"+BuildingId+"', '"+id+"')\">";
    htmlElement = htmlElement + BoundTextByWidth(name,'120px') +"</a> ";
    oTd.innerHTML = htmlElement;
}
function DrarMeetingTable(abuingId)
{
    //var checkBox = document.getElementById('radio'+abuingId);
    for(var y = 0; y < BuildingArray.length; y++)
    {
        if(BuildingArray[y].Id == abuingId)
        {
            BuildingArray[y].Checked = true;
        }
        else
        {
            BuildingArray[y].Checked = false;
        }
    }
    RefreshCenter();
}
function GetCalInfo(result)
{
    var resultList = null;
    if(result != "")
    {
        resultList = result.split("\x1c");
    }
    return resultList;
}

function Resize()
{
    if(!isLoaded)
    {
        setTimeout("Resize()",300);
        return;
    }
    var height,width;
    var divObj = document.getElementById("calendarDiv");
    var resourceDiv =  document.getElementById("ResourceDiv");
    height = parent.document.getElementById("frmTop").style.height;//判断isloaded
    height = parseInt(document.body.clientHeight) - 25;
    width = parseInt(document.body.clientWidth) -10;
    divObj.style.height = height>0?height:0 ;
    divObj.style.width = width>0?width:0;
    resourceDiv.style.height = (height -10)>0?(height-10):0;
    //document.getElementById ("ShowAllCalendar").style.height = height+ "px";
}

function ChangeResourceChecked(abuingId, resourceId)
{    
    var checkBox = document.getElementById('radio'+abuingId);
    if(!checkBox.checked)
    {
        checkBox.checked = true; 
        var MeetingId = "";
        for(var y = 0; y < BuildingArray.length; y++)
        {
            if(BuildingArray[y].Id == abuingId)
            {  
                BuildingArray[y].Checked = true;
                for(var i=0;i<BuildingArray[y].Meeting.length;i++)
                {
                    if(BuildingArray[y].Meeting[i].Id == resourceId)
                    {
                        MeetingId = BuildingArray[y].Meeting[i].Id;
                    }
                } 
            }
            else
            {
                BuildingArray[y].Checked = false;
            }
        }
        RefreshCenter();
        setMeetingHeadbgColor(MeetingId);
    }
    else
    {
        setMeetingHeadbgColor(resourceId);
    }
}

function RefreshCenter()
{
    if(parentTopFrame && parentTopFrame.isLoaded)
    {        
        parentTopFrame.CallDrawTable();
        parentTopFrame.CallLoadResource2();
    }
    else
    {
        setTimeout("RefreshCenter()", 300);    
    }
}

function SetRoundedCorner()
{
    for(var y = 0; y < BuildingArray.length; y++)
    {
        for(var i=0;i<BuildingArray[y].Meeting.length;i++)
        {
            UnNifty("a#Cspan"+BuildingArray[y].Meeting[i].Id);
            Nifty("a#Cspan"+BuildingArray[y].Meeting[i].Id,"small");
        }
    }
}
function SetHeight()
{
    var height,width;
    var divObj = $("calendarDiv");
    height = parseInt(document.body.clientHeight) - 12;
    width = parseInt(document.body.clientWidth)-10;
    divObj.style.width = width>0?width:0;
    divObj.style.height = height>0?height:0;
}
