﻿function E(type, clientId, value)
{
    this.type = type;
    this.clientId = clientId;
    this.value = value;
}  
function SetProperties(panelName, e, values)
{
    if (!gPanel)
    {                   
        for (var i=0; i<values.length; i++)
        {
            switch (values[i].type)
            {
                // TextBox
                case "tb":
                    document.getElementById(values[i].clientId).value = values[i].value;
                    break;
                // CheckBox
                case "cb":
                    document.getElementById(values[i].clientId).checked = values[i].value;
                    break;
                // DropDown
                case "dd":
                    DropDownSelected(values[i].clientId, values[i].value);
                    break;                    
                case "img":
                    document.getElementById(values[i].clientId).src = values[i].value;
//                    SetImage("", "", values[i].clientId, values[i].value);
                    break;
                default:
                    alert("Element type is not defined!");
                    break;
            }
        }

        var x = GetMousePositionX(e);
        var y = GetMousePositionY(e);
        
        var html = document.getElementById(panelName);            
        html.style.display = "block";
        html.style.visibility = "visible";
        html.style.position = "absolute";
        html.style.left = x + "px";
        html.style.top = y + "px";
        
        gPanel = true;    
    }
}
function PanelClose(panelName)
{
    var clientId;
    var style;
    
    switch (panelName)
    {
        // Download
        case "DownloadSectionPanel":
            clientId = "downloadSectionId_" + document.getElementById(gHiddenDownloadSectionId_clientId).value;
            style = "treeNodeStyle";            
            break;    
        case "DownloadPanel":
            clientId = "downloadId_" + document.getElementById(gHiddenDownloadId_clientId).value;;
            style = "downloadStyle";            
            break;
            
        case "NavigationPanel":
            clientId = "navigationId_" + document.getElementById(gHiddenNavigationId_clientId).value;
            style = "treeNodeStyle";            
            break;
        case "SectionPanel":
            clientId = "sectionId_" + document.getElementById(gHiddenSectionId_clientId).value;
            style = "treeNodeStyle";
            break;
        case "FolderPanel":
            clientId = "folderId_" + document.getElementById(gHiddenFolderId_clientId).value;
            style = "treeNodeStyle";
            break;
        case "YouTubeCategoryPanel":
            clientId = "categoryId_" + document.getElementById(gHiddenCategoryId_clientId).value;
            style = "treeNodeStyle";
            break;        
        case "YouTubeVideoPanel":
            clientId = "videoId_" + document.getElementById(gHiddenVideoId_clientId).value;;
            style = "galleryStyle";
            break;
        case "GalleryPanel":
            clientId = "galleryId_" + document.getElementById(gHiddenGalleryId_clientId).value;;
            style = "galleryStyle";            
            break;
        case "CellPanel":
            clientId = "cellId_" + document.getElementById(gHiddenCellId_clientId).value;;
            style = "cellStyle";            
            break;
        case "TablePanel":
            clientId = "tableId_" + document.getElementById(gHiddenTableId_clientId).value;;
            style = "tableStyle";            
            break;
    }
    
    document.getElementById(clientId).className = style;
    document.getElementById(panelName).style.display = "none";
    document.getElementById(panelName).style.visibility = "hidden";
    gPanel = false;
}

function GetMousePositionX(e)
{
    var x = 0; 

    if (!e) 
        e = window.event; 

    if (e.pageX) 
        x = e.pageX; 
    else if (e.clientX) 
        x = e.clientX; 

    x += (document.documentElement.scrollLeft ? document.documentElement.scrollLeft : document.body.scrollLeft);
    
    return x;
}
function GetMousePositionY(e)
{
    var y = 0; 

    if (!e) 
        e = window.event; 

    if (e.pageY) 
        y = e.pageY; 
    else if (e.clientY) 
        y = e.clientY; 

    y += (document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop);
    
    return y;
}
function DropDownSelected(clientId, selectedText)
{
    var dd = document.getElementById(clientId);
    for (i = 0; i < dd.options.length; i++)
    {
        if (dd.options[i].value == selectedText)
        {
            dd.options[i].selected = true;
            break;
        }
    }
}
function OnOff(clientId, displayMessage)
{
    if (displayMessage == null)
    {
        displayMessage = true;
    }

    var o = document.getElementById(clientId);
    
    if (o == null)
    {
        if (displayMessage)
        {
            alert("Please wait - page is loading...");
        }
    }
    else
    {    
        if (o.style.display == "none")
            o.style.display = "block";
        else
            o.style.display = "none";
    }
}
function AutoUrl(title_clientId, url_clientId, template_clientId, robot)
{   
    if (typeof(robot) == "undefined")
    {
        robot = 0;
    }
        
    var title = document.getElementById(title_clientId);
    var url = document.getElementById(url_clientId);  
    
    if (title.value == "")
    {
        alert("Enter title first");
        return;
    }
    
    var tmp = title.value.replace(/[^a-zA-Z 0-9]+/g,'');    
    tmp = tmp.replace(/ /g,'-').toLowerCase();
    tmp = tmp.replace(/---/g,'-');
    tmp = tmp.replace(/--/g,'-');
    
    if (typeof(template_clientId) != "undefined" && template_clientId != "undefined")
    {
        var template = document.getElementById(template_clientId);
        
        tmp = template.options[template.selectedIndex].text.replace(/ /g,'-').toLowerCase() + "/" + tmp;
    }        
    
    // <srandicky>
    robot++;
    
    url.value = tmp;
    
    if (robot % 2)
    {
        url.style.color = '#aaa';
    }
    else
        url.style.color = '#000';
            
    if (robot < 4)    
    {
        setTimeout("AutoUrl('"+title_clientId+"','"+url_clientId+"','"+template_clientId+"','"+robot+"')", 170);
    }
    // </srandicky>
}
