$(document).ready(function() {
    // Add affiliate tag to amazon links
    $('a[href*="amazon.com"]').each(function() { 
        var href = $(this).attr('href');
        var re = /\/([A-Z0-9]{10})(\/|\?|\b)/i
        var asin = re.exec(href);
        if (asin[1]) {
            var newurl = 'http://www.amazon.com/gp/product/'+asin[1]+'?tag=dmbtabs-20';
            $(this).attr('href', newurl);
        }
    });
    
    
    // Resize non-attachment images on page load
    resizeImages();
    
    // Resize images on redraw
    window.onresize = resizeImages;
    
    // Make off-site links pop up in new window
    var links = document.getElementsByTagName('a');
    for (var i=0; i<links.length; i++) {
        if (links[i].href.indexOf('dmbtabs.com') == -1) {
            links[i].target = "_blank";
        }
    }
    
    // Add onclick calls to forum and topic rows
    var dts = document.getElementsByTagName('dt');
    for (i=0; i<dts.length; i++) {
        if (dts[i].parentNode.parentNode.className.substr(0,3) == 'row') {
            if (dts[i].parentNode.parentNode.parentNode.className.substr(0,9) == 'topiclist') {
                dts[i].onclick = topicListRowClick;
            }
        }
    }
    
    // Add JS functions to spoiler boxes
    var divs = document.getElementsByTagName('div');
    for (i=0; i<divs.length; i++) {
        if (divs[i].className == 'spoiler-div') {
            var inter_text = document.createTextNode(' :: ');
            var reveal_link = document.createElement('a');
            reveal_link.onclick = toggleSpoiler;
            reveal_link.href = '#';
            var reveal_text = document.createTextNode('REVEAL');
            reveal_link.appendChild(reveal_text);
            divs[i].firstChild.appendChild(inter_text);
            divs[i].firstChild.appendChild(reveal_link);
            divs[i].childNodes[1].style.display = 'none';
            divs[i].childNodes[1].style.color = '#000';
        }
    }
})

function resizeImages() {
    var imgs = document.getElementsByTagName('img');
    for (var i=0; i<imgs.length; i++) {
        if (imgs[i].src.indexOf('dmbtabs.com') == -1) {
            var img_parent = imgs[i].parentNode;
            while (img_parent.tagName != 'DIV') {
                img_parent = img_parent.parentNode;
            }
            var max_width = img_parent.offsetWidth;
            if (imgs[i].naturalWidth > max_width) {
                if (imgs[i].parentNode.tagName != 'A') {
                    imgs[i].onclick = resizedImagePopup;
                    if (document.all) imgs[i].style.cursor = 'hand';
                    if (!document.all) imgs[i].style.cursor = 'pointer'; 
                }
                var ratio = max_width / imgs[i].naturalWidth;
                var new_height = Math.round(imgs[i].naturalHeight * ratio);
                imgs[i].width = max_width;
                imgs[i].height = new_height;
                
                /*(var resize_info_div = document.createElement('div');
                resize_info_div.style.width = max_width;
                resize_info_div.style.bgcolor = '#FF7F00';
                resize_info_div.style.border = '1px solid #FF5D00';
                resize_info_div.style.display = 'block';
                resize_info_div.onclick = resizedImagePopup;
                var resize_info_image = document.createElement('img');
                resize_info_image.src = './styles/prosilver/imageset/emblem_important.gif';
                resize_info_div.appendChild('resize_info_image');
                */
            }
        }
    }
}

function resizedImagePopup(evt) {
    popup(this.src, this.naturalWidth + 20, this.naturalHeight + 20);
}

function topicListRowClick(evt) {
    if (!evt) {
        var evt = window.event;
    }
    if (checkModifierKeys(evt)) {
        if (window.location.href.indexOf('index.php') != -1) {
            var as = this.getElementsByTagName('a');
            window.location.href = as[0].href;
        } else if (this.title == 'New posts') {
            window.location.href = this.firstChild.href;
        } else if (this.title == 'No new posts') {
            var dds = this.parentNode.getElementsByTagName('dd');
            var as = dds[2].firstChild.getElementsByTagName('a');
            window.location.href = as[1].href;
        } else {
            var as = this.getElementsByTagName('a');
            window.location.href = as[0].href;
        }
    }
}

function checkModifierKeys(evt) {
    if ((evt.ctrlKey == false) && (evt.shiftKey == false) && (evt.metaKey == false) && (evt.altKey == false) && (evt.button == 0)) {
        return true;
    } else {
        return false;
    }
}

function toggleSpoiler(evt) {
    var spoiler_text_div = this.parentNode.parentNode.childNodes[1];
    if (spoiler_text_div.style.display == 'none') {
        spoiler_text_div.style.display = 'block';
        var new_text = document.createTextNode('HIDE');
        this.replaceChild(new_text, this.firstChild);
    } else {
        spoiler_text_div.style.display = 'none';
        var new_text = document.createTextNode('REVEAL');
        this.replaceChild(new_text, this.firstChild);
    }
    return false;
}
