/***
 ***   Generic functions for Ovesta.fi
 ***
 ***   Copyright (c) 2007 Gofort & Part. (www.gofort.fi)
 ***/

var popup_width_add = 50;            // Popup-ikkunan leveyteen lisättävä arvo (pikseliä)
var popup_height_add = 70;           // Popup-ikkunan korkeuteen lisättävä arvo (pikseliä)
var external_target = '_blank';      // Ulkoisille sivuille osoittavien linkkien 'target'
var external_title = 'Ulkoinen linkki, joka avautuu uuteen ikkunaan';  // Ulkoisille sivuille osoittavien linkkien 'title'
var file_target = '_blank';          // Tiedostojen (pdf, doc, jne.) 'target'
var file_title = 'Avaa tiedoston uuteen ikkunaan';  // Tiedostoihin osoittavien linkkien 'title'
var crypted_at = '\\(at-merkki\\)';  // Sähköpostiosoitteiden @-merkkiä vastaava merkkijono: (at-merkki)
var crypted_dot = '_piste_';         // Sähköpostiosoitteiden pistettä vastaava merkkijono: _piste_

/*** functions ******************************************************/

/*** show(obj, width, height)
 *
 *  Avaa linkin popup-ikkunassa.
 *
 *  obj     Linkkiobjekti ('A')
 *  width   Ikkunan leveys (pikseleissä)
 *  height  Ikkunan korkeus (pikseleissä)
 */
function show(obj, width, height) {
    var top = (screen.height - height) / 2;
    var left = (screen.width - width) / 2;
    var parameters = 'toolbar=0,scrollbars=0,location=0,statusbar=0,menubar=0,resizable=1';
    parameters += ',width='+(width+popup_width_add)+',height='+(height+popup_height_add);
    parameters += ',top='+top+',left='+left;
    popupWindow = window.open(obj.href, 'popupWindow', parameters);
    popupWindow.resizeTo(width + popup_width_add, height + popup_height_add);
    popupWindow.focus();
    return false;
}

/*** setTargetsAndTitles()
 *
 *  Muokkaa dokumentin linkkiobjekteja.
 */
function setTargetsAndTitles() {
    var links = document.getElementsByTagName('A');
    for (var i = links.length; i--;) {
        if (document.domain != links[i].hostname) {
            if (external_target != '') { links[i].target = external_target; }
            if (external_title != '')  { links[i].title = external_title; }
        } else if (links[i].href.indexOf('files/') == 0 || links[i].href.indexOf('/files/') != -1 ) {
            if (file_target != '') { links[i].target = file_target; }
            if (file_title != '')  { links[i].title = file_title; }
        }
    }
}

/*** decryptEmailLinks()
 *
 *  Poistaa dokumentin kaikkien sähköpostilinkkien roskapostinvastaiset kryptaukset.
 */
function decryptEmailLinks() {
    var links = document.getElementsByTagName('A');
    var reg_at = new RegExp(crypted_at, 'g');
    var reg_dot = new RegExp(crypted_dot, 'g');
    for (var i = links.length; i--;) {
        if (links[i].href.indexOf('mailto:') == 0) {
            links[i].href = links[i].href.replace(reg_at, '@');
            links[i].href = links[i].href.replace(reg_dot, '.');
            if(links[i].firstChild && links[i].firstChild.data) {
                links[i].firstChild.data = links[i].firstChild.data.replace(reg_at, '@');
                links[i].firstChild.data = links[i].firstChild.data.replace(reg_dot, '.');
            }
        }
    }
}
/*** /functions *****************************************************/

/*** initialize *****************************************************/
function handleError() {
    /* alert('ERROR!'); // DEBUG */
    return true;
}
function onLoad() {
    window.onerror = handleError;
    decryptEmailLinks();
    setTargetsAndTitles();
}
if (document && document.getElementsByTagName) window.onload = onLoad;
/*** /initialize ****************************************************/

/*** EOF ***/

