/* all rights reserved © struna.org 2003-2008 */

window.addLoadEvent = function(func) {
    var oldonload = window.onload
    if(typeof window.onload != 'function') { window.onload = func }
    else {
        window.onload = function() {
            if(oldonload) { oldonload() }
            func()
            }
        }
    }

    
function CSSforIE() {
    var ul = document.getElementsByTagName('ul')
    for(i=0; i<ul.length; i++) ul[i].style.cssText += 'zoom: 1;'
    }
if(document.all) window.addLoadEvent(function() { CSSforIE() })

/*
function changePage() {
    var left_column_padding = 16
    var center_column_padding = 16
    
    var screenWidth = 0
    if(typeof(window.innerWidth) == 'number') screenWidth = window.innerWidth - 20
    else if(document.documentElement && document.documentElement.clientWidth) screenWidth = document.documentElement.clientWidth
    else if(document.body && document.body.clientWidth) screenWidth = document.body.clientWidth - 20

    var container
    container = document.getElementById('container')
    if(container && screenWidth > container.offsetWidth) {
	
        var leftcolumn = document.getElementById('leftcolumn')
        if(leftcolumn) {
            contentDifference = Math.ceil((screenWidth - container.offsetWidth) * 8 / 9)
            leftColumnDifference = Math.floor((screenWidth - container.offsetWidth) / 9)
            }
        else {
            contentDifference = screenWidth - container.offsetWidth
            leftColumnDifference = 0
            }
	
        container.style.width = screenWidth + 'px'
        
        var containerdiv = document.getElementById('containerdiv')
        if(containerdiv) containerdiv.style.width = containerdiv.offsetWidth + contentDifference + leftColumnDifference + 'px'
	
        var menutop = document.getElementById('menutop')
        if(menutop) {
            menutop.style.width = menutop.offsetWidth + contentDifference + leftColumnDifference + 'px'
            var divs = menutop.getElementsByTagName('div')
            for( i = 0; i < divs.length; i++ ) if(divs[i].className == 'contentdiv') divs[i].style.width = divs[i].offsetWidth + contentDifference + leftColumnDifference - center_column_padding + 'px'
            }
	
        var divs = containerdiv.getElementsByTagName('div')
        for( i = 0; i < divs.length; i++ ) if(divs[i].className == 'maincontent') {
            divs[i].style.width = divs[i].offsetWidth + contentDifference + leftColumnDifference + 'px'
            var contentdiv = divs[i].getElementsByTagName('div')
            for( x = 0; x < contentdiv.length; x++ ) if(contentdiv[x].className == 'contentdiv') contentdiv[x].style.width = contentdiv[x].offsetWidth + contentDifference + leftColumnDifference - center_column_padding + 'px'
            }
	
        var maincontentwithleftcolumn = document.getElementById('maincontentwithleftcolumn')
        if(maincontentwithleftcolumn) {
            maincontentwithleftcolumn.style.width = maincontentwithleftcolumn.offsetWidth + contentDifference + 'px'
            var divs = maincontentwithleftcolumn.getElementsByTagName('div')
            for( i = 0; i < divs.length; i++ ) if(divs[i].className == 'contentdiv') divs[i].style.width = divs[i].offsetWidth + contentDifference - center_column_padding + 'px'
            }
	
        var maincontentwithrightcolumn = document.getElementById('maincontentwithrightcolumn')
        if(maincontentwithrightcolumn) {
            maincontentwithrightcolumn.style.width = maincontentwithrightcolumn.offsetWidth + contentDifference + leftColumnDifference + 'px'
            var divs = maincontentwithrightcolumn.getElementsByTagName('div')
            for( i = 0; i < divs.length; i++ ) if(divs[i].className == 'contentdiv') divs[i].style.width = divs[i].offsetWidth + contentDifference + leftColumnDifference - center_column_padding + 'px'
            }
	
        var maincontentwithleftandrightcolumn = document.getElementById('maincontentwithleftandrightcolumn')
        if(maincontentwithleftandrightcolumn) {
            maincontentwithleftandrightcolumn.style.width = maincontentwithleftandrightcolumn.offsetWidth + contentDifference + 'px'
            var divs = maincontentwithleftandrightcolumn.getElementsByTagName('div')
            for( i = 0; i < divs.length; i++ ) if(divs[i].className == 'contentdiv') divs[i].style.width = divs[i].offsetWidth + contentDifference - center_column_padding + 'px'
            }
	
        if(leftcolumn) {
            leftcolumn.style.width = leftcolumn.offsetWidth + leftColumnDifference + 'px'
            var divs = leftcolumn.getElementsByTagName('div')
            for( i = 0; i < divs.length; i++ ) if(divs[i].className == 'contentdiv') divs[i].style.width = divs[i].offsetWidth + leftColumnDifference - left_column_padding + 'px'
            }
	
        var copy = document.getElementById('copy')
        if(copy) copy.style.width = screenWidth + 'px'
        }
    }
window.addLoadEvent(function() { changePage() })
*/


function rollRightColumn() {
    var padding = 18
    
    var rightcolumn = document.getElementById('rightcolumn')
    if(rightcolumn) {
        screenHeight = 0
        if(typeof(window.innerHeight) == 'number') screenHeight = window.innerHeight
        else if(document.documentElement && document.documentElement.clientHeight) screenHeight = document.documentElement.clientHeight
        else if(document.body && document.body.clientHeight) screenHeight = document.body.clientHeight
        
        var divs = rightcolumn.getElementsByTagName('div')
		for( i = 0; i < divs.length; i++ ) if(divs[i].className == 'contentdiv') var div = divs[i]
        
        if(rightcolumn.offsetHeight > (screenHeight - rightcolumn.offsetTop)) {

            var newHeight = screenHeight - rightcolumn.offsetTop
            var leftcolumn = document.getElementById('leftcolumn')
            var maincontentwithrightcolumn = document.getElementById('maincontentwithrightcolumn')
            var maincontentwithleftandrightcolumn = document.getElementById('maincontentwithleftandrightcolumn')
            
            if(maincontentwithrightcolumn) {
                if(maincontentwithrightcolumn.offsetHeight > newHeight) newHeight = maincontentwithrightcolumn.offsetHeight
                }
            else {
                if(leftcolumn) {
                    if(leftcolumn.offsetHeight > newHeight) newHeight = leftcolumn.offsetHeight
                    }
                if(maincontentwithleftandrightcolumn) {
                    if(maincontentwithleftandrightcolumn.offsetHeight > newHeight) newHeight = maincontentwithleftandrightcolumn.offsetHeight
                    }
                }
            
            if(rightcolumn.offsetHeight > newHeight) {
                div.style.height = newHeight - (rightcolumn.offsetHeight - div.offsetHeight) - padding + 'px'
                div.style.overflow = 'hidden'
                rightcolumn.style.height = newHeight + 'px'
                rightcolumn.style.overflow = 'hidden'
                setTimeout(function() { rollVerticalDivs(div) }, 1444)
                }
            }
        }
    }
window.addLoadEvent(function() { rollRightColumn() })

function rollVerticalDivs(div) {
    var speed = 1
    var time = 50
    if(document.all) time = 18
    
    var originalHeight = div.lastChild.offsetTop + div.lastChild.offsetHeight - div.firstChild.offsetTop

    for( i = 0; i < div.childNodes.length; i++ ) {
        div.childNodes[i].style.top = div.childNodes[i].offsetTop + 'px'
        div.childNodes[i].style.left = div.childNodes[i].offsetLeft + 'px'
        }

    for( i = 0; i < div.childNodes.length; i++ ) div.childNodes[i].style.position = 'absolute'   

    div.style.overflow = 'hidden'

    move = setInterval( function() {
        for( i = 0; i < div.childNodes.length; i++ ) {
            if(div.childNodes[i].offsetTop < - div.childNodes[i].offsetHeight) div.childNodes[i].style.top = originalHeight - div.childNodes[i].offsetHeight + 'px'
            div.childNodes[i].style.top = div.childNodes[i].offsetTop - speed + 'px'
            }
        }, time)
    div.onmousemove = function() { clearInterval(move) }
    div.onmouseout = function() {
        clearInterval(move)
        move = setInterval( function() {
            for( i = 0; i < div.childNodes.length; i++ ) {
                if(div.childNodes[i].offsetTop < - div.childNodes[i].offsetHeight) div.childNodes[i].style.top = originalHeight - div.childNodes[i].offsetHeight + 'px'
                div.childNodes[i].style.top = div.childNodes[i].offsetTop - speed + 'px'
                }
            }, time)
        }
    }

function marqueeEmulator() {
    var divs = document.getElementsByTagName('div')
    for(i=0; i<divs.length; i++) if(divs[i].className.toLowerCase().search('marquee') >= 0) {
        div = divs[i]
        rollHorizontalDivs(div)
        }
    }
window.addLoadEvent(function() { marqueeEmulator() })

function rollHorizontalDivs(div) {
    var div_padding = 8
    
    var speed = 1
    var time = 50
    if(document.all) time = 18
    
    var div_width = div.offsetWidth
    var div_height = 0
    var real_width = 0
    
    div.style.overflow = 'hidden'
    
    for( var x = 0; x < div.childNodes.length; x++ ) {
        div.childNodes[x].style.top = div_padding + 'px'
        div.childNodes[x].style.left = real_width + 'px'
        
        div.childNodes[x].style.position = 'absolute'
        
        if(div.childNodes[x].offsetHeight > div_height) div_height = div.childNodes[x].offsetHeight
        real_width += div.childNodes[x].offsetWidth
        }
    div.style.height = div_height + 'px'
    
    if(div_width > real_width) for( var x = 0; x < div.childNodes.length; x++ ) div.childNodes[x].style.left = div.childNodes[x].offsetLeft + Math.ceil((div_width - real_width) / 2) + div_padding + 'px'
    else {
        horizontal_move = setInterval( function() {
            for( x = 0; x < div.childNodes.length; x++ ) {
                if(div.childNodes[x].offsetLeft < - div.childNodes[x].offsetWidth) div.childNodes[x].style.left = real_width - div.childNodes[x].offsetWidth + 'px'
                div.childNodes[x].style.left = div.childNodes[x].offsetLeft - speed + 'px'
                }
            }, time)
        div.onmousemove = function() { clearInterval(horizontal_move) }
        div.onmouseout = function() {
            clearInterval(horizontal_move)
            horizontal_move = setInterval( function() {
                for( x = 0; x < div.childNodes.length; x++ ) {
                    if(div.childNodes[x].offsetLeft < - div.childNodes[x].offsetWidth) div.childNodes[x].style.left = real_width - div.childNodes[x].offsetWidth + 'px'
                    div.childNodes[x].style.left = div.childNodes[x].offsetLeft - speed + 'px'
                    }
                }, time)
            }
        }
    }

function blinkEmulator() {
    var divs = document.getElementsByTagName('div')
    for(i=0; i<divs.length; i++) if(divs[i].className.toLowerCase().search('blink') >= 0) flashElement(divs[i], 844, 3)

    var spans = document.getElementsByTagName('span')
    for(i=0; i<spans.length; i++) if(spans[i].className.toLowerCase().search('blink') >= 0) flashElement(spans[i], 844, 3)
    }
window.addLoadEvent(function() { blinkEmulator() })

function flashElement(element, time, x) {
    var i = 0, flash
    if(x == '') x = 0
    flash = setInterval( function() {
        setTimeout( function() { element.style.visibility = 'hidden' }, 0)
        setTimeout( function() { element.style.visibility = 'visible' }, time / 3)
        if(x > 0) {
            i++
            if(i > x) clearInterval(flash)
            }
        }, time)
    }


function picsDescription() {
    var divs = document.getElementsByTagName('div')
    for( i = 0; i < divs.length; i++ ) if(divs[i].className == 'pic_description') showPicsDescription(divs[i])
    }
window.addLoadEvent(function() { picsDescription() })

function showPicsDescription(div) {   
    var border = 2
    
    var pic = div.parentNode
    
    pic.onmousemove = function() {
        var description_div = document.getElementById('pic_description')
        if(description_div) description_div.parentNode.removeChild(description_div)
        
        var description = document.createElement('div')
        description.setAttribute('id', 'pic_description')
        description.innerHTML = div.innerHTML
        description.style.top = this.offsetTop + div.offsetTop + 'px'
        description.style.left = this.offsetLeft + 'px'
        description.style.width = div.offsetWidth + border + 'px'
        this.parentNode.appendChild(description)
        }
    }

    
function relLog() {
    var logDiv = document.getElementById('js_log_div')
    if(logDiv) {
        document.body.insertBefore(logDiv, null);
        var anchors = document.getElementsByTagName('a')
        for( i = 0; i < anchors.length; i++ ) if(anchors[i].getAttribute('rel') == 'log') {
            anchors[i].onclick = function() {
                showLogForm()
                return false
                }
            }
        }
    }
window.addLoadEvent(function() { relLog() })


function showLogForm() {
    var overlay = document.getElementById('overlay')
    if(!overlay) overlay()
    overlay.style.cssText = 'opacity: 0.9; filter: alpha(opacity=90);'
    pageHeight = 0
    var bodyElement = document.getElementsByTagName('body')
    pageHeight = bodyElement[0].offsetHeight
    overlay.style.height = pageHeight + 4 + 'px'
    screenHeight = 0
    if(typeof(window.innerHeight) == 'number') screenHeight = window.innerHeight
    else if(document.documentElement && document.documentElement.clientHeight) screenHeight = document.documentElement.clientHeight
    else if(document.body && document.body.clientHeight) screenHeight = document.body.clientHeight
    if(screenHeight > pageHeight) overlay.style.height = screenHeight + 'px'
    overlay.style.zIndex = 98;
    overlay.onclick = function() { hideLogForm() }
    var logDiv = document.getElementById('js_log_div')
    if(logDiv) {
        logDiv.style.display = ''
        logDiv.style.zIndex = 99;
        var top = 0
        if(self.pageYOffset) top = self.pageYOffset
        else if(document.documentElement && document.documentElement.scrollTop) top = document.documentElement.scrollTop
        else if(document.body) top = document.body.scrollTop
        logDiv.style.top = Math.floor((screenHeight - logDiv.offsetHeight) / 2) + top + 'px'
        }
    }

function hideLogForm() {
    var logDiv = document.getElementById('js_log_div')
    if(logDiv) logDiv.style.display = 'none'
    var overlay = document.getElementById('overlay')
    if(overlay) overlay.style.display = 'none'
    }


function showFilePreloader() {
    var overlay = document.getElementById('overlay')
    if(!overlay) overlay()
    overlay.style.cssText = 'opacity: 0.9; filter: alpha(opacity=90);'
    pageHeight = 0
    var bodyElement = document.getElementsByTagName('body')
    pageHeight = bodyElement[0].offsetHeight
    overlay.style.height = pageHeight + 4 + 'px'
    screenHeight = 0
    if(typeof(window.innerHeight) == 'number') screenHeight = window.innerHeight
    else if(document.documentElement && document.documentElement.clientHeight) screenHeight = document.documentElement.clientHeight
    else if(document.body && document.body.clientHeight) screenHeight = document.body.clientHeight
    if(screenHeight > pageHeight) overlay.style.height = screenHeight + 'px'
    overlay.style.zIndex = 98;
    overlay.onclick = function() { hideFilePreloader() }
    var preloader = document.getElementById('file_preloader')
    if(preloader) {
        preloader.style.display = ''
        preloader.style.zIndex = 99;
        var top = 0
        if(self.pageYOffset) top = self.pageYOffset
        else if(document.documentElement && document.documentElement.scrollTop) top = document.documentElement.scrollTop
        else if(document.body) top = document.body.scrollTop
        preloader.style.top = Math.floor((screenHeight - preloader.offsetHeight) / 2) + top + 'px'
        }
    }

function hideFilePreloader() {
    var preloader = document.getElementById('file_preloader')
    if(preloader) preloader.style.display = 'none'
    var overlay = document.getElementById('overlay')
    if(overlay) overlay.style.display = 'none'
    }

    
function formValid() {
    var forms = document.getElementsByTagName('form')
    for( i = 0; i < forms.length; i++ ) forms[i].onsubmit = function() {
        error = 0
        
        var element = document.getElementById(this.getAttribute('id'))
        if(element) {
            
            var lookout = document.getElementById(element.getAttribute('id') + '_lookout')
            if(lookout) lookout.style.display = 'none'
            
            var inputs = element.getElementsByTagName('input')
            for( x = 0; x < inputs.length; x++ ) if(inputs[x].className.toLowerCase().search('notnull') >= 0) {
                var incorrect = document.getElementById(inputs[x].getAttribute('id') + '_incorrect')
                if(incorrect) incorrect.style.display = 'none'
                var lookout = document.getElementById(inputs[x].getAttribute('id') + '_null')
                if(lookout) lookout.style.display = 'none'
                inputs[x].className = inputs[x].className.replace(' lookout', '')
                if(inputs[x].value == '') {
                    inputs[x].className = inputs[x].className + ' lookout'
                    if(lookout) lookout.style.display = ''
                    error = 1
                    }
                }
            var textarea = element.getElementsByTagName('textarea')
            for( x = 0; x < textarea.length; x++ ) if(textarea[x].className.toLowerCase().search('notnull') >= 0) {
                var incorrect = document.getElementById(textarea[x].getAttribute('id') + '_incorrect')
                if(incorrect) incorrect.style.display = 'none'
                var lookout = document.getElementById(textarea[x].getAttribute('id') + '_null')
                if(lookout) lookout.style.display = 'none'
                textarea[x].className = textarea[x].className.replace(' lookout', '')
                if(textarea[x].value == '') {
                    textarea[x].className = textarea[x].className + ' lookout'
                    if(lookout) lookout.style.display = ''
                    error = 1
                    }
                }
            if(error) return false
            var preloader = 0
            for( x = 0; x < inputs.length; x++ ) if(inputs[x].getAttribute('type') == 'file') preloader = 1
            if(preloader) {
                var overlay = document.getElementById('overlay')
                if(!overlay) {
                    var overlay = document.createElement('div')
                    overlay.setAttribute('id', 'overlay')
                    overlay.style.display = 'none'
                    document.body.appendChild(overlay)
                    }
                showFilePreloader()
                }
            }
        }
    }
window.addLoadEvent(function() { formValid() })


function overlay() {
	var overlay = document.getElementById('overlay')
    if(!overlay) {
    	var overlay = document.createElement('div')
    	overlay.setAttribute('id', 'overlay')
    	document.body.appendChild(overlay)
		}
	overlay.style.display = ''
	}
