// CONFIRM PROMPT
/* <a href="http://www.google.com/" onclick="return confirmPrompt(this.href, 'Are you sure you want to?');">Test</a> */
function confirmPrompt(url, msg) {
    if (confirm(msg)) window.location = url;
    return false;
}

// POPUP
/* <a href="http://www.google.com/" onclick="return doPopup(this.href, {location:'yes'});">Test</a> */
function doPopup(url, options) {
    var Popup = {
        open: function(url, options) {
            this.options = {
                width: 600,
                height: 500,
                name: '_blank',
                location: 'no',
                menubar: 'no',
                toolbar: 'no',
                status: 'yes',
                scrollbars: 'yes',
                resizable: 'yes',
                top: '',
                left: '',
                center: true
            }
            Object.extend(this.options, options || {});
            this.options.width = this.options.width < screen.availWidth ? this.options.width : screen.availWidth;
            this.options.height = this.options.height < screen.availHeight ? this.options.height : screen.availHeight;
            if (this.options.center) {
                this.options.top = (screen.height - this.options.height) / 2 ;
                this.options.left = (screen.width - this.options.width) / 2;
            }
            var openoptions = 'width=' +this.options.width+ ',height=' +this.options.height+ ',location=' +this.options.location+ ',menubar=' +this.options.menubar+ ',toolbar=' +this.options.toolbar+ ',scrollbars=' +this.options.scrollbars+ ',resizable=' +this.options.resizable+ ',status=' +this.options.status
            if (this.options.top != '') openoptions += ',top=' +this.options.top;
            if (this.options.left != '') openoptions += ',left=' +this.options.left;
            window.open(url, this.options.name, openoptions);
            return false;
        }
    }
    return Popup.open(url, options);
}

// PRELOAD IMAGE
function preloadImage(img) {
    var preload = new Image();
    preload.src = img;
}

// HANDLE AJAX JSON RESPONSE
function handleResponse(transport) {
    var content = (transport.responseText).evalJSON();
    Object.keys(content.elements).each(function(item) {
        $(item).update(content['elements'][item]);
    });
    Object.keys(content.javascript).each(function(item) {
        eval( content['javascript'][item]);
    });
}

// SET COOKIE
function setCookie(c_name, value, expiredays, path) {
    var exdate = new Date();
    exdate.setDate(exdate.getDate()+expiredays);
    document.cookie = c_name+ "=" +escape(value) + ((expiredays==null) ? "" : ";expires=" +exdate.toGMTString()) + ";path=" +path;
}

// GET COOKIE
function getCookie(name) {
    var search = name + "="
    var returnvalue = "";
    if (document.cookie.length > 0) {
        offset = document.cookie.indexOf(search)
        // COOKIE EXISTS
        if (offset != -1) {
            offset += search.length
            // SET INDEX OF BEGINNING OF VALUE
            end = document.cookie.indexOf(";", offset);
            // SET INDEX OF END OF COOKIE VALUE
            if (end == -1) end = document.cookie.length;
            returnvalue=unescape(document.cookie.substring(offset, end))
        }
    }
    return returnvalue;
}


/*** CUSTOM FUNCTIONS ***/


// INITIALIZE TEXT SIZE CHANGER
function textSize_init() {

    if (getCookie('resizeCurEl')) {
        textSize_change(getCookie('resizeCurEl'));
    } else {
        textSize_change('resize_100');
    }

    $$('a.resize').each(function(item) {
        Event.observe(item, 'click', function(event) {
            var id = item.readAttribute('id');
            textSize_change(id);
        });
    });

}


// CHANGE FONT SIZE
function textSize_change(el) {

    if ($(el)) {

        var toSize = el.substr(7, el.length);

        $('content').style.fontSize = toSize+ '%';

        setCookie('resizeCurEl', el, 1, '/');

        $$('a.resize').each(function(item) {
            item.removeClassName('resize_selected');
        });

        $(el).addClassName('resize_selected');

    }

}


// LEFT NAV PORTFOLIO EXPAND
function leftNav_portfolio() {

    // transition: Effect.Transitions.spring

    Effect.toggle('div_portfolio_expand', 'slide', {
        duration: .5
    });

    $$('a.leftnav').each(function(item) {
        item.removeClassName('selected');
    });

    $('ln_portfolio').addClassName('selected');

}


// INITIALIZE PORTFOLIO PAGE
function portfolio_init() {

    // IN PORTFOLIO AREA
    if ($('pdiv_1')) {

        // DIV ID SPECIFIED AS ANCHOR
        if (window.location.hash) {

            var phash = window.location.hash;

            pdivid = phash.substr(1, phash.length);

            if ($('pdiv_' +pdivid)) {
                portfolio_changeDiv(pdivid);
            }

        // #1 AS DEFAULT
        } else {
            portfolio_changeDiv(1);
        }

    }

}


// CHANGE PORTFOLIO DIV'S
function portfolio_changeDiv(i) {

    $$('div.pdiv').each(function(item) {
        item.hide();
    });

    $('pdiv_' +i).show();

    $$('a.pnav_num').each(function(item) {
        item.removeClassName('selected');
    });

    $('pnav_' +i).addClassName('selected');

}


var portEx = 0;

// SHOW EXTRA PORTFOLIO DIV
function portfolio_extra(id) {

    // MAKE SURE ALL ARE HIDDEN
    $('portfolio_extra').hide();
    $$('div.pdiv_extra').each(function(item) {
        item.hide();
    });

    Effect.Appear('portfolio_extra', {
        duration: .5,
        to: .7,
        afterFinish: function() {
            Effect.Appear('portfolio_extra_' +id, {
                duration: .5,
                to: 1
            });
        }
    });

    portEx = id;

}


// HIDE EXTRA PORTFOLIO DIV
function portfolio_extra_close() {

    Effect.Fade('portfolio_extra_' +portEx, {
        duration: .5,
        afterFinish: function() {
            Effect.Fade('portfolio_extra', {
                duration: .5
            });
        }
    });

}


var portHOB = 0;

// SHOW HOB IMAGES
function portfolio_hob(id) {

    // MAKE SURE ALL ARE HIDDEN
    $('portfolio_hob').hide();
    $$('div.pdiv_hob').each(function(item) {
        item.hide();
    });

    Effect.Appear('portfolio_hob', {
        duration: .5,
        to: .6,
        afterFinish: function() {
            Effect.Appear('portfolio_hob_' +id, {
                duration: .5,
                to: 1
            });
        }
    });

    portHOB = id;

}


// HIDE EXTRA PORTFOLIO DIV
function portfolio_hob_close() {

    Effect.Fade('portfolio_hob_' +portHOB, {
        duration: .4,
        afterFinish: function() {
            Effect.Fade('portfolio_hob', {
                duration: .4
            });
        }
    });

}


// PRELOAD BIO IMAGES
function bio_preloadImages() {

    for (i=1; i<=biaOu.length; i++) {
        if (biaOu[i]) {
            var preload = new Image();
            preload.src = biaOu[i];
        }
    }

    for (i=1; i<=biaOv.length; i++) {
        if (biaOv[i]) {
            var preload = new Image();
            preload.src = biaOv[i];
        }
    }

}


// SWAP BIO IMAGE
function bio_swapImage(el, what) {

    var id = el.readAttribute('id');
    var i = id.substr(6, id.length);

    if (what == 'over') {
        var toimg = biaOv[i];
    } else {
        var toimg = biaOu[i];
    }

    $(el).src = toimg;

}

// INITIALIZE BIO PAGE
function bio_init() {

    // IN PORTFOLIO AREA
    if ($('bdiv_1')) {

        // DIV ID SPECIFIED AS ANCHOR
        if (window.location.hash) {

            var phash = window.location.hash;

            pdivid = phash.substr(1, phash.length);

            if ($('bdiv_' +pdivid)) {
                bio_changeDiv(pdivid);
            }

        // #1 AS DEFAULT
        } else {
            bio_changeDiv(1);
        }

    }

}

// CHANGE BIO DIV'S
function bio_changeDiv(i) {

    $$('div.bdiv').each(function(item) {
        item.hide();
    });

    $('bdiv_' +i).show();

    $$('a.bnav_num').each(function(item) {
        item.removeClassName('selected');
    });

    $('bnav_' +i).addClassName('selected');

}

// ON PAGE LOAD
Event.observe(window, 'load', function() {

    //textSize_init();

    portfolio_init();

    bio_init();

});
