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

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 loadCSSfile(file) {
    var css = document.createElement('link')
    css.setAttribute('rel', 'stylesheet')
    css.setAttribute('type', 'text/css')
    css.setAttribute('href', file)
    document.getElementsByTagName('head')[0].appendChild(css)
    }

    
function loadJSfile(file) {
    var js = document.createElement('script')
    js.setAttribute('type', 'text/javascript')
    js.setAttribute('src', file)
    document.getElementsByTagName('head')[0].appendChild(js)
    }


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 showPicsDescription(div) {
    div.onmousemove = function() {
        var pic_description = document.getElementById('pic_description')
        if(pic_description) pic_description.parentNode.removeChild(pic_description)
        
        var description = document.createElement('div')
        description = div.cloneNode(true)
        description.style.top = div.parentNode.offsetTop + div.offsetTop + 'px'
        description.style.left = div.parentNode.offsetLeft + 'px'
        description.style.width = div.parentNode.offsetWidth + 'px'
        description.removeAttribute('class')
        description.setAttribute('id', 'pic_description')
        description.style.width = div.parentNode.offsetWidth + 'px'
        description.style.visibility = 'hidden'
        div.parentNode.parentNode.appendChild(description)
        
        if(description.offsetWidth > div.parentNode.offsetWidth) description.style.width = div.parentNode.offsetWidth * 2 - description.offsetWidth + 'px'
        
        if(div.innerHTML != '&nbsp;') description.style.visibility = 'visible'
        }
    }


function formValid() {
    var forms = document.getElementsByTagName('form')
    for( i = 0; i < forms.length; i++ ) {
        
        var inputs = forms[i].getElementsByTagName('input')
        for( x = 0; x < inputs.length; x++ ) if(inputs[x].className.search('clean') >= 0) inputs[x].onclick = function() { this.value = '' }
        
        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 = this.getElementsByTagName('input')
            for( x = 0; x < inputs.length; x++ ) if(inputs[x].className.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 = this.getElementsByTagName('textarea')
            for( x = 0; x < textarea.length; x++ ) if(textarea[x].className.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 = false
            for( x = 0; x < inputs.length; x++ ) if(inputs[x].getAttribute('type') == 'file') preloader = true
            if(preloader) showOverTheOverlay('filepreloader')
            }
        }
    }


function showOverTheOverlay(elementId) {
    var element = document.getElementById(elementId)
    if(element) {
        showOverlay(elementId)
        
        element.style.display = ''
        element.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
        
        element.style.top = Math.floor((screenHeight - element.offsetHeight) / 3) + top + 'px'
        
        var overlay = document.getElementById('overlay')
        element.style.left = Math.floor((overlay.offsetWidth - element.offsetWidth) / 2) + 'px'
        
        var close = document.getElementById('close')
        if(close) {
            close.style.display = ''
            close.style.zIndex = 99
            
            close.style.top = element.offsetTop - close.offsetHeight + 'px'
            close.style.left = element.offsetLeft + element.offsetWidth - close.offsetWidth + 'px'
            
            close.onclick = function() { hideOverTheOverlay(elementId) }
            }
        }
    }
    

function hideOverTheOverlay(elementId) {
    var overlay = document.getElementById('overlay')
    if(overlay) overlay.parentNode.removeChild(overlay)
    
    var element = document.getElementById(elementId)
    if(element) element.style.display = 'none'
    
    var close = document.getElementById('close')
    if(close) close.style.display = 'none'
    }


function showOverlay(elementId) {
    var overlay = document.getElementById('overlay')
    if(overlay) overlay.parentNode.removeChild(overlay)
    
    var overlay = document.createElement('div')
    overlay.setAttribute('id', 'overlay')
    overlay.style.display = ''
    overlay.style.cssText = 'filter: alpha(opacity=80);'
    overlay.style.zIndex = 98
    
    pageHeight = 0
    var bodyElement = document.getElementsByTagName('body')
    pageHeight = bodyElement[0].offsetHeight
    overlay.style.height = pageHeight + '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.onclick = function() { hideOverTheOverlay(elementId) }
    
    document.body.appendChild(overlay)
    }


function roll(div) {
    
    var move, originalHeight
    
    setTimeout(function() {
        
        originalHeight = div.offsetHeight
        newHeight = 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
        maxHeight = screenHeight
        
        var maxDiv = document.getElementsByTagName('div')
        for( x = 0; x < maxDiv.length; x++ ) if(maxDiv[x].className == div.getAttribute('id') && maxDiv[x].parentNode.offsetHeight > maxHeight) maxHeight = maxDiv[x].parentNode.offsetHeight
        
        if(div.parentNode.offsetHeight > maxHeight) newHeight = originalHeight - div.parentNode.offsetHeight + maxHeight
        
        if(newHeight > 0) {
            div.style.height = newHeight + 'px'
            
            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'
            
            start(div)
            
            div.onmousemove = function() { stop() }
            div.onmouseout = function() { start() }
            }
            
        function start() {
            stop()
            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 - 1 + 'px'
                    }
                }, 50)  
            }
            
        function stop() {
            clearInterval(move)
            }
        
        }, 1244)
    }


function marquee(div) {
    
    var move, real_width
    
    div.style.display = 'none'
    
    setTimeout(function() {
        div.style.display = ''
        
        div_width = div.offsetWidth
        div_height = real_width = 0
        
        for( var x = 0; x < div.childNodes.length; x++ ) {
            div.childNodes[x].className += ' marqueebox'
            div.childNodes[x].style.left = real_width + 'px'
            
            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'
        
        for( var x = 0; x < div.childNodes.length; x++ ) if(div.childNodes[x].offsetHeight < div_height) div.childNodes[x].style.top = Math.ceil((div_height - div.childNodes[x].offsetHeight) / 2) + '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) + 'px'
        else {
            start(div, real_width)
            
            div.onmousemove = function() { stop() }
            div.onmouseout = function() { start() }
            }
            
        function start() {
            stop()
            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 - 1 + 'px'
                    }
                }, 50)
            }
            
        function stop() {
            clearInterval(move)
            }
        
        }, 844)   
    }
    
    
function pageConstructor() {

    if(document.all) loadCSSfile('/css/ie.css')
    loadCSSfile('/css/lightbox.css')
    
    formValid()
    
    var divs = document.getElementsByTagName('div')
    for( i = 0; i < divs.length; i++ ) {
        if(divs[i].className == 'delonload') divs[i].parentNode.removeChild(divs[i])
        
        else if(divs[i].className.search('showonload') >= 0) divs[i].style.display = ''
                
        else if(divs[i].className == 'convert2onoverlay') {
            divs[i].className = 'onoverlay'
            divs[i].style.display = 'none'
            document.body.appendChild(divs[i]);
            }
        
        else if(divs[i].className == 'pic_description') showPicsDescription(divs[i])
        
        else if(divs[i].className == 'roll') roll(divs[i])
        
        else if(divs[i].className == 'marquee') marquee(divs[i])
        
        else if(divs[i].className.search('blink') >= 0) flashElement(divs[i], 844, 3)
        }
    
    var spans = document.getElementsByTagName('span')
    for(i=0; i<spans.length; i++) {
        if(spans[i].className.search('blink') >= 0) flashElement(spans[i], 844, 3)
        }
        
    var skype = false
    
    var anchors = document.getElementsByTagName('a')
    for( i = 0; i < anchors.length; i++ ) {
        if(anchors[i].getAttribute('rel') == 'log') {
            var logContainer = document.getElementById('logcontainer')
            if(logContainer) anchors[i].onclick = function() {
                showOverTheOverlay('logcontainer')
                return false
                }
            }
            
        else if(anchors[i].getAttribute('rel') == 'addpost') {
            var addComentContainer = document.getElementById('addpostcontainer')
            if(addComentContainer) anchors[i].onclick = function() {
                showOverTheOverlay('addpostcontainer')
                return false
                }
            }
            
        else if(anchors[i].getAttribute('rel') == 'addcoment') {
            var addComentContainer = document.getElementById('addcomentcontainer')
            if(addComentContainer) anchors[i].onclick = function() {
                showOverTheOverlay('addcomentcontainer')
                return false
                }
            }
            
        else if(anchors[i].getAttribute('rel') == 'gg') anchors[i].setAttribute('href', 'gg:' + anchors[i].innerHTML)
        
        else if(anchors[i].getAttribute('rel') == 'skype') {
            anchors[i].setAttribute('href', 'skype:' + anchors[i].innerHTML)
            anchors[i].onclick = function() { return skypeCheck() }
            skype = true
            }
        }
    
    if(skype) loadJSfile('http://download.skype.com/share/skypebuttons/js/skypeCheck.js')
    }
window.addLoadEvent(function() { pageConstructor() })