/***
 ***   Generic JavaScript Functions
 ***
 ***   Copyright (c) 2007 Tero Niemi (Gofort & Part.)
 ***   All rights reserved.
 ***/

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 scrollbars = 0;
    if (top < 0) { top = 0; height = screen.height; scrollbars = 1; }
    if (left < 0) { left = 0; width = screen.width; scrollbars = 1; }
    var parameters = 'toolbar=0,location=0,statusbar=0,menubar=0,resizable=1';
        parameters += ',scrollbars='+scrollbars;
        parameters += ',width='+width+',height='+height;
        parameters += ',top='+top+',left='+left;
    popupWindow = window.open(obj.href, 'popupWindow', parameters);
    popupWindow.resizeTo(width, height);
    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('doc/') == 0 || links[i].href.indexOf('/doc/') != -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 ***/
