var NEWS_CONTENT_PART_LENGTH = 33;

var pseudoClass = {
    hover: function(elem, className, targetElem){
        elem.observe('mouseover', function(){
            if (elem.isSelected === true) return;
            if (!Object.isUndefined(targetElem)){
                elem = targetElem;
            }
            elem.addClassName(className);
        });
        elem.observe('mouseout', function(){
            if (elem.isSelected === true) return;
            if (!Object.isUndefined(targetElem)){
                elem = targetElem;
            }
            elem.removeClassName(className);
        });
    },
    active: function(elem, className){
        elem.onmousedown = function(){
            elem.addClassName(className);
            return false;
        }
        elem.onselectstart = function(){ //ie thing
            return false;
        }
        elem.observe('mouseup', function(){
            elem.removeClassName(className);
        });
        elem.observe('mouseout', function(){
            elem.removeClassName(className);
        });
    }
};

var allQueryParams =
{
    all: (document.location + '').toQueryParams(),
    getParameter: function(param)
    {
        for(var key in this.all)
        {
            if (key == param && !Object.isUndefined(this.all[key])) return this.all[key];
        }
        return false;
    },
    isParameter: function(param)
    {
        return !!this.getParameter(param);
    }
};

function attachHoverMenu(){
    var count = 1;
    $$('.m1 a, .m2 a, .m3 a, .m4 a, .m5 a').each(function(link){
        linkParent = link.up();
        if (link.href.toQueryParams().id == window.siteVariables.contentId){
            linkParent.addClassName('m'+count+'-over');
            link.isSelected = true;
        }
        else{
            link.isSelected = false;
        }
        pseudoClass.hover(link, 'm'+count+'-over', linkParent);
        count++;
    });
    var galleryClassName = 'gallery-link';
    if ($$('.'+galleryClassName)[0]){
        pseudoClass.hover($$('.'+galleryClassName)[0], galleryClassName+'-over');
    }
    $$('#files-menu a').each(function(link){
        if (link.href.toQueryParams().id == window.siteVariables.contentId){
            link.addClassName('files-menu-seld');
        }
    });
}

function setVariables(obj)
{
    if (Object.isUndefined(window.siteVariables)) window.siteVariables = {};
    $H(obj).each(function(pair){
        window.siteVariables[pair.key] = pair.value;
    });
}

function makeNews()
{
    var ccaPart, content, startHide, readMoreLink, contentElement, hiddenContent, readMoreTxt;
    $$('.news-content').each(function(elem){
        content = elem.innerHTML.stripTags();
        if (content.length > NEWS_CONTENT_PART_LENGTH){
            ccaPart = content.substr(0, NEWS_CONTENT_PART_LENGTH);
            startHide = ccaPart.lastIndexOf(' ');
            readMoreLink = new Element('a');
            readMoreLink.href = 'index.php?id='+elem.id.substr(2);
            readMoreLink.update('viac');
            hiddenContent = new Element('span');
            hiddenContent.style.display = 'none';
            hiddenContent.update(content.substr(startHide));
            hiddenContent.insert(readMoreLink);
            readMoreTxt = new Element('span');
            readMoreTxt.insert('...');
            readMoreTxt.insert(readMoreLink);
            contentElement = new Element('span');
            contentElement.insert(content.substr(0, startHide));
            contentElement.insert(hiddenContent);
            contentElement.insert(readMoreTxt);
            elem.update(contentElement);
        }
        elem.show();
    });
}
document.observe("dom:loaded", function(){
    // vertical slider control
    if (!$('track1')) return;
    var slider1 = new Control.Slider('handle1', 'track1', {
        axis: 'vertical',
        onSlide: function(v) {
            scrollVertical(v, $('main-content-text'), slider1);
        },
        onChange: function(v) {
            scrollVertical(v, $('main-content-text'), slider1);
        }
    });
    if (!$('main-content-text') || $('main-content-text').scrollHeight <= $('main-content-text').offsetHeight) {
        slider1.setDisabled();
        $('track1').hide();
    }
});

// scroll the element vertically based on its width and the slider maximum value
function scrollVertical(value, element, slider) {
    element.scrollTop = Math.round(value/slider.maximum*(element.scrollHeight-element.offsetHeight));
}
