// SVN $Id: index.php 13 2005-05-30 15:01:34Z psiska $

// Designchuchi - an online portfolio of four young web addicts.
// Copyright (C) 2005 by Designchuchi

function init() {
    createExternalLinks();
    mailCloak();
}

/**
 * Changes the screenshot image according to the number passed as parameter.
 * Inspired by the original script from http://www.badboy.ro.
 * String no Screenshot number to change to
 */
function changeScreenshot(no) {
    var image = document.getElementById('portfolio-screenshot');
    var screenshots = document.getElementById('screenshots');

    for (var i=0; i<screenshots.childNodes.length; i++) {
        if (screenshots.childNodes[i].firstChild) {
            if (screenshots.childNodes[i].firstChild.className == 'active') {
                var activeNr = screenshots.childNodes[i].className;
                activeNr = activeNr.substr(1,2);
            }
            screenshots.childNodes[i].firstChild.className = "";
        }
    }
    for (var i=0; i<screenshots.childNodes.length; i++) {
        if (screenshots.childNodes[i].firstChild && screenshots.childNodes[i].className == "s" + no) {
            screenshots.childNodes[i].firstChild.className = 'active';
            var regEx = new RegExp (activeNr, 'gi');
            oldSrc = image.firstChild.src;
            image.firstChild.src = 'images/blank.gif';
            image.firstChild.style.width = '316';
            image.firstChild.style.height = '160';
            image.firstChild.src = oldSrc.replace(regEx, no);
        }
    }
}

/**
 * Searches the document for spans containing email addresses in form
 * "your dot name at domain dot com" and creates proper email addresses
 * with mailto links.
 */
function mailCloak() {
    if(document.getElementsByTagName) {
        var anchors = document.getElementsByTagName('span');
        for(var i=0; i<anchors.length; i++) {
            var anchor = anchors[i];
            if(anchor.getAttribute('class')=='mailCloak') {
                //get span data and set it to empty
                var data = anchor.firstChild.data;
                anchor.firstChild.data = '';

                //create proper email address
                var temp = data.replace(/\sat\s/,'@');
                var address = temp.replace(/\sdot\s/,'.');

                //add mailto link
                var link = document.createElement('a');
                link.href = 'mailto:' + address;
                address = document.createTextNode(address);
                link.appendChild(address);
                anchor.appendChild(link);
            }
        }
    }
}

/**
 * Add a target to the links with the rel="external" tag.
 * This is the javascript workaround for using external links
 * in XHTML 1.0 strict.
 */
function createExternalLinks() {
    if(document.getElementsByTagName) {
        var anchors = document.getElementsByTagName('a');
        for(var i=0; i<anchors.length; i++) {
            var anchor = anchors[i];
            if(anchor.getAttribute("href") && anchor.getAttribute('rel')=='external') {
                anchor.target = '_blank';
                var title = anchor.title + ' (opens in new window)';
                anchor.title = title;
            }
        }
    }
}

//========================================================
// Event Listener by Scott Andrew - http://scottandrew.com
// edited by Mark Wubben, <useCapture> is now set to false
//========================================================
function addEvent(obj, evType, fn){
    if(obj.addEventListener){
        obj.addEventListener(evType, fn, false);
        return true;
    } else if (obj.attachEvent){
        var r = obj.attachEvent('on'+evType, fn);
        return r;
    } else {
        return false;
    }
}

addEvent(window, "load", init);