//NAME                functions.js
//PROJECT             SINTHEMA
//AUTHOR              Alessandro Esciana (esciox@yahoo.it)
//CREATION DATE       13/11/2005
//DESCRIPION          contains common js functions
//STRUCTURE           --
//SOURCE TEMPLATE     --
//TARGET TEMPLATE     --
//PARAMETERS          --
//INCLUDED TEMPLATES  --
//USER TEMPLATES      --


// NAME        :getBrowser
// DESCRIPTION :simple browser sniffer
// INPUT       :
// OUTPUT      :
function getBrowser()
{
    opx = false;//Opera
    ns4 = false;//Netscape 4.x
    ns6 = false;//Netscape 6.x >
    ie4 = false;//MSIE 4
    ie5 = false;//MSIE 5 >

    if(navigator.userAgent.toLowerCase().indexOf("opera") != -1)
    {
        opx = true;
    }
    else if(navigator.userAgent.toLowerCase().indexOf("netscape") != -1)
    {
        tmp = navigator.appVersion.split(" ");
        Math.floor(tmp[0]) <= 4 ? ns4 = true: ns6 = true;
    }
    else
    {
        tmp = navigator.userAgent.split("MSIE");
        tmp2 = tmp[0].split(" ");
        Math.floor(tmp2[0]) <= 4 ? ie4 = true: ie5 = true;
    }
}


// NAME        :getElemById
// DESCRIPTION :gets object element depending on browser
//              Requires browser sniffer
// INPUT       :id (element id)
// OUTPUT      :object
function getElemById(id)
{
    if(ie4)
    {
        return document.all[id];
    }
    else if(ns4)
    {
        return document.ids[id];
    }
    else
    {
        return document.getElementById(id);
    }
}


// NAME        :getStyleById
// DESCRIPTION :get object style(cross browser)
//              Requires browser sniffer AND function getElemById
// INPUT       :id (element id)
// OUTPUT      :object
function getStyleById(id)
{
    if(ns4)
    {
        return getElemById(id);
    }
    else
    {
        return getElemById(id).style;
    }
}


// NAME        :trim
// DESCRIPTION :erases blank spaces around a string
// INPUT       :string
// OUTPUT      :string
function trim(string)
{
    re = /^\s*/gi;
    string = string.toString().replace(re,"");
    re = /\s*$/gi;
    string = string.toString().replace(re,"");
    return string;
}

// NAME        :isNumber
// DESCRIPTION :test if inserted value is a number
//              returns true if it's number,otherwise false
// INPUT       :string or number
// OUTPUT      :boolean
function isNumber(string)
{
    re = /\D/gi;
    result = string.toString().match(re);
    if(result == null)
    {
        return true;
    }
    else
    {
        return false;
    }
}

function getProp(obj)
{
    aobj = [];
    for(prop in obj)
    {
        aobj.push('<span style="font-size:11">' + prop + ': ' + obj[prop] + '</span><br>');
    }
    aobj.sort();

    if(!wobj || wobj.closed)
        wobj=window.open('','','width=300, height=350, resizable, resizeable, scrollbars');
    wobj.focus();
    wobj.document.write(aobj);
    wobj.document.close();
}

getBrowser();
