/***
 ***   Generic JavaScript Functions
 ***
 ***   Copyright (c) 2002 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, '.');
            }
        }
    }
}

/*** isSpace(c)
 *
 *  Merkki on whitespace?
 */
function isSpace(c) {
    return (c == ' ' || c == '\t' || c == '\n' || c == '\r' || c == '\f')
}

/*** trim(s)
 *
 *  Trimmaa merkkijono.
 */
function trim(s) {
    while (isSpace(s.substring(0, 1))) s = s.substring(1, s.length);
    while (isSpace(s.substring(s.length-1, s.length))) s = s.substring(0, s.length-1);
    return s;
}

/*** validate(form)
 *
 *  Tarkista (löysästi...) lomakkeen oikeellisuus.
 */
function validate(form) {
    var field = null;

    field = form.elements["Sukunimi-Required"];
    if (trim(field.value) == "") {
        alert("Ole hyvä ja kirjoita sukunimesi."); field.focus(); return false;
    }

    field = form.elements["Etunimi-Required"];
    if (trim(field.value) == "") {
        alert("Ole hyvä ja kirjoita etunimesi."); field.focus(); return false;
    }

    field = form.elements["Asunto-osakeyhtiön_nimi-Required"];
    if (trim(field.value) == "") {
        alert("Ole hyvä ja kirjoita asunto-osakeyhtiön nimi."); field.focus(); return false;
    }

    field = form.elements["Lähiosoite-Required"];
    if (trim(field.value) == "") {
        alert("Ole hyvä ja kirjoita lähiosoiteesi."); field.focus(); return false;
    }

    field = form.elements["Postinumero-Required"];
    if (trim(field.value) == "") {
        alert("Ole hyvä ja kirjoita postinumerosi."); field.focus(); return false;
    }

    field = form.elements["Postitoimipaikka-Required"];
    if (trim(field.value) == "") {
        alert("Ole hyvä ja kirjoita postitoimipaikkasi."); field.focus(); return false;
    }

    field = form.elements["Sähköposti"];
    if (trim(field.value) != "" && field.value.indexOf("@") < 1) {
        alert("Ole hyvä ja tarkista sähköpostiosoitteesi."); field.focus(); return false;
    }

    if (trim(form.elements["Puhelin"].value) == "" && trim(form.elements["Sähköposti"].value) == "") {
        alert("Ole hyvä ja kirjoita joko puhelinnumerosi tai sähköpostiosoitteesi."); return false;
    }

    return true;
}

/*** lomakeLinkit()
 *
 *  Linkitä tietyt elemetit etusivun lomakkeeseen.
 */
function lomakeLinkit() {
    if (!document.getElementById) return;

    var action = function() {
        var elem = document.getElementById("Sukunimi-Required");
        if (elem) {
            if (window.scroll) window.scroll(0, 710);
            elem.focus();
        } else {
            window.location.href = "index.html#lomake";
        }
        return false;
    };

    var elem = document.getElementById("contest");
    if (elem) { elem.onclick = action; elem.style.cursor = "pointer"; }
    elem = document.getElementsByTagName("A");
    for (var i = elem.length; i--;) {
        if (elem[i].hash == "#lomake") {
            elem.onclick = action;
        }
    }

    if (window.location.hash && window.location.hash == "#lomake") {
        action();
    }
}

/*** /functions *****************************************************/

/*** initialize *****************************************************/
function handleError() {
    alert('ERROR!'); // DEBUG
    return true;
}
function onLoad() {
//    window.onerror = handleError;
    decryptEmailLinks();
    setTargetsAndTitles();
    lomakeLinkit();
}
if (document && document.getElementsByTagName) window.onload = onLoad;
/*** /initialize ****************************************************/

/*** EOF ***/

