function ICCDModalDiv()
{
    this.innerHTML = '';
    this.Content = null;
    this.URL = null;
    this.IDContent = null;
    this.ID = uniqid('ModalDiv_');
    this.MaxHeight = GetWindowHeight()-70;
    this.MaxWidth = 550;

    this.Open = function()
    {
        this.DisplayModalDiv();
    }
    
    this.Close = function()
    {
        CloseModalDiv(this.ID);        
    }
    
    this.DisplayModalDiv = function ()
    {
        document.getElementsByTagName("html")[0].style.overflow = "hidden";
        var ModalDivContainer = document.createElement('div');
        ModalDivContainer.id = this.ID;
        $('PlaceModalDivs').appendChild(ModalDivContainer);
        
        var ModalDivBg = document.createElement('div');
        ModalDivBg.className = 'ModalDivBg';
        var pageheight = GetPageHeight() + 100;
        var pagewidth = GetPageWidth();
        ModalDivBg.style.width = pagewidth + 'px';
        ModalDivBg.style.height = pageheight + 'px';
        ModalDivBg.style.display = 'none';
        ModalDivContainer.appendChild(ModalDivBg);
        ModalDivBg.style.display = 'block';
        
        var ModalDiv = document.createElement('div');
        ModalDiv.className = 'ModalDiv';
        
        if (this.IDContent)
        {
            var obj = $(this.IDContent);
            if (obj)
            {
                var NewObject = obj.cloneNode(true);
                NewObject.setAttribute('id', 'NewDiv');
                if (NewObject.style.display == 'none')
                {
                    NewObject.style.display = 'block';
                }
                ModalDiv.appendChild(NewObject);
            }
        }
        else if (this.URL)
        {
            function RequestPage(Page)
            {
                this.handleSuccess = function(o)
                {
                    ModalDiv.innerHTML = o.responseText;
                    ResizeModalDiv(ModalDiv, ModalDivBorder, BtnClose);
                }
                
                this.handleFailure = function(o) {
                    alert(o.responseText);
                }
                
                this.startRequest = function()
                {
                    YAHOO.util.Connect.asyncRequest('GET', Page , callback, '');
                }
            }
            
            var urlSeparator = '?';
            if (this.URL.indexOf('?') != -1)
            {
                urlSeparator = '&';
            }
            
            var requestPage = new RequestPage(this.URL + urlSeparator + 't=' + new Date().getTime());
            var callback =
            {
	            success: requestPage.handleSuccess,
	            failure: requestPage.handleFailure,
	            scope: requestPage
            }
            
            
            requestPage.startRequest();
            var imgLoadingPage = document.createElement('img');
            imgLoadingPage.setAttribute('src', 'images/layout/loading.gif');
            ModalDiv.appendChild(imgLoadingPage);
            
        }
        else if (this.Content)
        {
            ModalDiv.appendChild(this.Content);
        }
        else if (this.innerHTML)
        {
            ModalDiv.innerHTML = this.innerHTML;
        }
        
        ModalDivContainer.appendChild(ModalDiv);
        
        if (ModalDiv.offsetWidth > this.MaxWidth)
        {
            ModalDiv.style.width = this.MaxWidth + 'px';
        }
        if (ModalDiv.offsetHeight > this.MaxHeight)
        {
            ModalDiv.style.height = this.MaxHeight + 'px';
        }
        
        var positionleft = ((GetPageWidth() / 2) - (ModalDiv.offsetWidth / 2));
        var positiontop = (((GetWindowHeight() / 2) - ((ModalDiv.offsetHeight) / 2)) + f_scrollTop());
        
        ModalDiv.style.left = positionleft + 'px';
        ModalDiv.style.top = positiontop + 'px';
        
        var ModalDivBorder = document.createElement('div');
        ModalDivBorder.className = 'ModalDivBorder';
        ModalDivBorder.style.height = (ModalDiv.offsetHeight + 10) + 'px';
        ModalDivBorder.style.width = (ModalDiv.offsetWidth + 10) + 'px';
        ModalDivBorder.style.top = (positiontop - 5) + 'px';
        ModalDivBorder.style.left = (positionleft-5) + 'px';
        ModalDivContainer.appendChild(ModalDivBorder);
        
        var BtnClose = document.createElement('div');
        BtnClose.className = 'btnCloseModalDiv';
        BtnClose.IdModalDiv = this.ID;
        BtnClose.onclick = function() { unSelect();SelectHome();CloseModalDiv(this.IdModalDiv); };
        BtnClose.style.top = (positiontop - 20) + 'px';
        BtnClose.style.left = (positionleft + ModalDiv.offsetWidth - 15) + 'px';
        ModalDivContainer.appendChild(BtnClose);
    }
}

function ResizeModalDiv(ModalDiv, ModalDivBorder, BtnClose)
{
    var positionleft = ((GetPageWidth() / 2) - (ModalDiv.offsetWidth / 2));
    var positiontop = (((GetWindowHeight() / 2) - ((ModalDiv.offsetHeight) / 2)) + f_scrollTop());
    ModalDiv.style.left = positionleft + 'px';
    ModalDiv.style.top = positiontop + 'px';
    ModalDivBorder.style.height = (ModalDiv.offsetHeight + 10) + 'px';
    ModalDivBorder.style.width = (ModalDiv.offsetWidth + 10) + 'px';
    ModalDivBorder.style.top = (positiontop - 5) + 'px';
    ModalDivBorder.style.left = (positionleft-5) + 'px';
    BtnClose.style.top = (positiontop - 20) + 'px';
    BtnClose.style.left = (positionleft + ModalDiv.offsetWidth - 15) + 'px';
}

function CloseModalDiv(ID)
{
    RemoveElement(ID);
    document.getElementsByTagName("html")[0].style.overflow = "auto";
}

function CloseModalDiv()
{
    $('PlaceModalDivs').innerHTML = '';
    document.getElementsByTagName("html")[0].style.overflow = "auto";
}

function OpenModalDiv(ID, MaxWidth, MaxHeight)
{
    var ModalDiv = new ICCDModalDiv();
    ModalDiv.IDContent = ID;
    if (MaxWidth)
    {
        ModalDiv.MaxWidth = MaxWidth;
    }
    if (MaxHeight)
    {
        ModalDiv.MaxHeight = MaxHeight;
    }
    ModalDiv.Open();
}

function OpenPageInModalDiv(URL, MaxWidth, MaxHeight)
{
    var ModalDiv = new ICCDModalDiv();
    ModalDiv.URL = URL;    
    if (MaxWidth)
    {
        ModalDiv.MaxWidth = MaxWidth;
    }
    if (MaxHeight)
    {
        ModalDiv.MaxHeight = MaxHeight;
    }
    ModalDiv.Open();
}

function OpenVideoInModalDiv(IdContenidoUnico)
{
    OpenPageInModalDiv('video-detail.aspx?id=' + IdContenidoUnico, 740);
}

