﻿function GetElement(elementName, supressAlerts)
{
    var element = document.getElementById(elementName);
    if ((!element) && (!supressAlerts)) alert('element "' + elementName + '" not found');
    return element;
}

function ToggleDisplay(elementName, supressAlerts)
{
    return ToggleElementDisplay(GetElement(elementName, supressAlerts));
}

function ToggleElementDisplay(element)
{
    if (element)
    {
        if (element.style.display == 'none')
            return (element.style.display = 'block');
        else
            return (element.style.display = 'none');
    }
}

function HideDisplay(elementName)
{
    var element = GetElement(elementName);
    if (IsDisplayed(element)) ToggleElementDisplay(element);
}

function IsDisplayed(element)
{
    if (element.style.display == 'none') return false;
    return true;
}

function SetElementHtml(elementName, html)
{
    var element = GetElement(elementName);
    if (element) element.innerHTML = html;
}

function GetContent(html)
{
    var s = GetSubString(html, '[ContentStart]', '[ContentEnd]');
    if (s.indexOf('[ScriptStart]') != -1)
    {
        s = s.replace('[ScriptStart]' + GetScript(html) + '[ScriptEnd]', '');
    }
    return s;
}

function GetScript(html)
{
    return GetSubString(html, '[ScriptStart]', '[ScriptEnd]');
}

function GetSubString(html, start, end)
{
    return html.substring(html.indexOf(start) + start.length, html.indexOf(end));
}

function GetWidth(elementName) {
    var elem = document.getElementById(elementName);
    var result = 0;
    if (elem.style.display == 'none')
    {
        elem.style.display = 'block';
	    result = elem.offsetWidth;
        elem.style.display = 'none';
    }
    else
    {
	    result = elem.offsetWidth;
	}
	return result;
}

function GetHeight(elementName) {
    var elem = document.getElementById(elementName);
    var result = 0;
    if (elem.style.display == 'none')
    {
        elem.style.display = 'block';
	    result = elem.offsetHeight;
        elem.style.display = 'none';
    }
    else
    {
	    result = elem.offsetHeight;
	}
	return result;
}

function ToggleAnimate(elementName)
{
    var element = GetElement(elementName);
    if (element.style.display == 'none')
    {
        AnimateOpen(elementName);
        return 'opening';
    }
    else
    {
        AnimateClose(elementName);
        return 'closing';
    }
}

function AnimateOpen(elementName)
{
    var element = GetElement(elementName);
    var targetHeight = GetHeight(elementName);
    element.style.height = '0px';
    AnimateOpenStep(elementName, targetHeight);
}

function AnimateOpenStep(elementName, targetHeight)
{
    var stepSize = 15;
    var element = GetElement(elementName);
    if (element.style.display == 'none') element.style.display = 'block';
    var currentHeight = GetHeight(elementName);
    if (currentHeight < targetHeight)
    {
        if ((currentHeight + stepSize) >= targetHeight)
            element.style.height = 'auto';
        else
            element.style.height = (currentHeight + stepSize) + 'px';
        setTimeout("AnimateOpenStep('" + elementName + "', " + targetHeight + ")", 5);
    }
}

function AnimateClose(elementName)
{
    var element = GetElement(elementName);
    AnimateCloseStep(elementName);
}

function AnimateCloseStep(elementName)
{
    var stepSize = 15;
    var element = GetElement(elementName);
    var currentHeight = GetHeight(elementName);
    if (currentHeight > 0)
    {
        if ((currentHeight - stepSize) <= 0)
        {
            element.style.height = 'auto';
            element.style.display = 'none';
        }
        else
        {
            element.style.height = (currentHeight - stepSize) + 'px';
            setTimeout("AnimateCloseStep('" + elementName + "')", 5);
        }
    }
}

var MediaItemsScrollTimer = 0;

var ScrollSpeed = 1;

var ScrollAcceleration = 3;

var MaxScrollSpeed = 40;

function ResetScrollSpeed()
{
    ScrollSpeed = 1;
}

function IncreaseScrollSpeed()
{
    if (ScrollSpeed < MaxScrollSpeed) ScrollSpeed += ScrollAcceleration;
}

function ScrollMediaItemsLeft()
{
    GetElement('MediaItemsDiv').scrollLeft += ScrollSpeed / 10;
    IncreaseScrollSpeed();
    MediaItemsScrollTimer = setTimeout("ScrollMediaItemsLeft()", 20);  
}

function ScrollMediaItemsRight()
{
    GetElement('MediaItemsDiv').scrollLeft -= ScrollSpeed / 10;
    IncreaseScrollSpeed();
    MediaItemsScrollTimer = setTimeout("ScrollMediaItemsRight()", 20);  
}

function StopScrollingMediaItems() {
    clearTimeout(MediaItemsScrollTimer);
    ResetScrollSpeed();
}

function ShowMediaItem(ArticleID, MediaItemID, MenuItemID)
{
    //alert("ShowMediaItem(" + ArticleID + ", " + MediaItemID + ")");
    var url = 'GetControl.aspx?c=ArticleMediaSection&MenuItem=' + MenuItemID + '&Article=' + ArticleID + '&MediaItem=' + MediaItemID;
    AjaxRequest(url, DisplayMediaItemHandler);
}

var SavedPosition = 0;

function SaveMediaItemsDivPosition()
{
    SavedPosition = GetElement('MediaItemsDiv').scrollLeft;
}

function RestoreMediaItemsDivPosition()
{
    GetElement('MediaItemsDiv').scrollLeft = SavedPosition;
}

function DisplayMediaItemHandler(html)
{
    SaveMediaItemsDivPosition();
    SetElementHtml('ArticleMediaSectionDiv', GetContent(html));
    RestoreMediaItemsDivPosition();
}

var openElementName = new Array(6);

function TreeNodeClicked(linkElement, depth, tableName)
{
    if ((openElementName[depth]) && (openElementName[depth] != tableName)) ToggleDisplay(openElementName[depth]);
    
    var toggle = ToggleDisplay(tableName);
    if (openElementName[depth] == tableName) openElementName[depth] = null;
    else
    {
        if (toggle == 'block') openElementName[depth] = tableName;
    }
    
    return toggle;
}

function getChildNodesByTagName(element, tagName)
{
    var list = new Array();
    for (var i = 0; i < element.childNodes.length; i++) if (element.childNodes[i].tagName == tagName) list[list.length] = element.childNodes[i];
    return list;
}

function Mark(element)
{
    element.style.borderColor = 'Red';
    element.style.borderWidth = '1px';
    element.style.borderStyle = 'dashed';
}
//miki
function PopUpImageSlide(url){
var pop1=window.open('PopUpImageSlide.aspx?MediaItem='+url.substr(url.length-5), '', 'width=788, height=449');
}

function Link(contentid)
{
    window.location = "MenuItemPage.aspx?ContentItem=" + contentid;
}