/* --------------------- Copyright Marcin Zadęcki - WSZYSTKIE PRAWA ZASTRZEŻONE --------------------- */
/* ---------- Wykorzystywanie cało¶ci lub fragmentów kodu wył±cznie za zgod± Marcin Zadęcki --------- */
//---------- Automatyczne wyświetlanie w ramce nadrzędnej ----------//

/******************************************** Do testowania ******************************************************/
function showObj(obj, sName)
{
    var iStr;
    var oWin;
    var sResult = '';
    var j       = 0;
    var aName   = new Array();
    var aSorted = new Array();
    for(var i in obj)
    {
        aName[j] = i;
        j++;
    }
    aSorted = aName.sort();
    for(var k in aSorted)
    {
        for(var l in obj)
            if(l == aSorted[k]) sResult += sName+'.'+l+' = '+obj[l]+'<br />';
    }
    if(iStr) return sResult;
    oWin = popUpWin('', 'win', 600, 700, 'resizable,scrollbars');
    oWin.document.open();
    oWin.document.write('<html><body><pre style="font-family:Verdana;font-size:9px;">'+sResult+'</pre></body></html>');
    oWin.document.close();
}
/**************************************************************************************************/
// ---------- Funkcja otwierająca i środkująca nowe okno -----------//
function popUpWin(sFileName, sWinName, iWidth, iHeight, sOptions)
{
    var oPopupWin;
    var iYModifier  = 20;
    var iWinWidth   = parseInt(iWidth);
    var iWinHeight  = parseInt(iHeight);
    var aCenter     = calcCenter('win', iWinWidth, iWinHeight);
    var sOptionsSet = 'width='+iWinWidth+',height='+iWinHeight+',left='+aCenter.x+',top='+aCenter.y;
    if(sOptionsSet) sOptionsSet += ','+sOptions;
    oPopupWin = window.open(sFileName, sWinName, sOptionsSet);
    oPopupWin.focus();
    return oPopupWin;
}



//Funkcja ustawiająca fokus na wybranym polu
function setFocus(sForm, sField, iSelect)
{
    try
    {
        if(iSelect) document.forms[sForm].elements[sField].select();
        else        document.forms[sForm].elements[sField].focus();
    }
    catch(e) {return;}
}
//Funkcje podświetlające rekord
function setRowHover(sClassLight, sClassHoverLight, sClassDark, sClassHoverDark)
{
    var oTR = document.getElementsByTagName('tr');
    if(!oTR) return;
    if(!sClassHoverDark) sClassHoverDark = sClassHoverLight;
    for(var i = 0; i < oTR.length; i++)
    {
        if(sClassLight != '' && oTR[i].className.indexOf(sClassLight) != -1)
        {
            oTR[i].onmouseover = function() {this.className = sClassHoverLight;};
            oTR[i].onmouseout  = function() {this.className = sClassLight;};
        }
        else if(sClassDark != '' && oTR[i].className.indexOf(sClassDark) != -1)
        {
            oTR[i].onmouseover = function() {this.className = sClassHoverDark;};
            oTR[i].onmouseout  = function() {this.className = sClassDark;};
        }
    }
}
function setDivHover(sClassLight, sClassHoverLight, sClassDark, sClassHoverDark)
{
    var oDiv = document.getElementsByTagName('div');
    if(!oDiv) return;
    if(!sClassHoverDark) sClassHoverDark = sClassHoverLight;
    if(!sClassDark)      sClassDark      = sClassLight;
    for(var i = 0; i < oDiv.length; i++)
    {
        if(sClassLight != '' && oDiv[i].className.indexOf(sClassLight) != -1)
        {
            oDiv[i].onmouseover = function() {this.className = sClassHoverLight;};
            oDiv[i].onmouseout  = function() {this.className = sClassLight;};
        }
        else if(sClassDark != '' && oDiv[i].className.indexOf(sClassDark) != -1)
        {
            oDiv[i].onmouseover = function() {this.className = sClassHoverDark;};
            oDiv[i].onmouseout  = function() {this.className = sClassDark;};
        }
    }
}
//Funkcja wybierająca pozycję radiobox, zaznaczająca checkbox z grupy
function selFormBox(sForm, sElem, sVal)
{
    var oGroup = document.forms[sForm].elements[sElem];
    for(var i = 0; i < oGroup.length; i++)
    {
        if(oGroup[i].value == sVal) oGroup[i].checked = true;
    }
    return;
}
//Funkcja wybierająca pozycję listy rozwijanej
function selOption(sForm, sElem, sVal)
{
    var oGroup = document.forms[sForm].elements[sElem];
    for(var i = 0; i < oGroup.length; i++)
    {
        if(oGroup.options[i].value == sVal) oGroup.options[i].selected = true;
    }
    return '';
}
//Funkcja pokazująca wybraną wartość elementu option
function getOptionValue(sForm, sElem)
{
    var oGroup = document.forms[sForm].elements[sElem];
    return oGroup.options[oGroup.selectedIndex].value;
/*
    for(var i = 0; i < oGroup.length; i++)
    {
        if(oGroup.options[i].selected == true) return oGroup.options[i].value;
    }
    return;
*/
}
//Funkcja czyszcząca pola formularza
function clearFields(sForm, clearFunc)
{
    var i = 0;
    while(i < document.forms[sForm].length)
    {
        var sFieldType = document.forms[sForm].elements[i].type.toLowerCase();
        if(sFieldType != 'hidden' && sFieldType != 'reset' && sFieldType != 'submit' && sFieldType != 'button' && sFieldType != 'file')
        {
            if(sFieldType == 'checkbox')
                document.forms[sForm].elements[i].checked = false;
            else if(sFieldType == 'radio')
                document.forms[sForm].elements[i].checked = false;
            else if(sFieldType == 'select-one' || sFieldType == 'select-multiple')
                document.forms[sForm].elements[i].options[0].selected = true;
            else
                document.forms[sForm].elements[i].value = '';
        }
        i++;
    }
    if(clearFunc) clearFunc();
    return;
}
//Funkcja czyszcząca wybrane pole formularza
function clearField(sForm, sField)
{
    var obj        = document.forms[sForm].elements[sField];
    var sFieldType = obj.type.toLowerCase();
    if(sFieldType != 'hidden' && sFieldType != 'reset' && sFieldType != 'submit' && sFieldType != 'button' && sFieldType != 'file')
    {
        if(sFieldType == 'checkbox')
            obj.checked = false;
        else if(sFieldType == 'radio')
            obj.checked = false;
        else if(sFieldType == 'select-one' || sFieldType == 'select-multiple')
            obj.options[0].selected = true;
        else
            obj.value = '';
    }
    return;
}
//bookmark web site
function bookmarkSite(title, url)
{
    //firefox
    if(window.sidebar)
        window.sidebar.addPanel(title, url, '');
    //opera
    else if(window.opera && window.print)
    {
        var elem = document.createElement('a');
        elem.setAttribute('href' , url);
        elem.setAttribute('title', title);
        elem.setAttribute('rel'  , 'sidebar');
        elem.click();
    }
    //ie
    else if(window.external)
        window.external.AddFavorite(url, title);
}
// ---------- Funkcja antyspam do wysyłania e-mail'a ----------- //
function sendEmail(sAlias, sDomain)
{
    if(sAlias != '' && sDomain != '')
        window.open('mailto:' + sAlias + '%40' + sDomain, '_blank');
    return;
}
// ---------- Funkcja dopisująca do dowolnego zdarzenia albo onload inne funkcje ----------- //
function addEvent(e, fn)
{
    var old = this[e];
    if(old)
    {
        this[e] = function(e)
        {
            old();
            fn();
        };
    }
    else
        this[e] = fn;
}
// ---------- Funkcja rotująca bannery ----------- //
function bannerRotate(div, banners, delays, elem, delay)
{
    var timerId       = null;
    var iCurrentDelay = delay;
    if(delays[elem] > 0) iCurrentDelay = delays[elem];
    document.getElementById(div).innerHTML = banners[elem];
    elem++;
    if(elem > (banners.length - 1)) elem = 0;
    timerId = window.setTimeout(function() { bannerRotate(div, banners, delays, elem, delay); }, iCurrentDelay);
}
// ---------- Funkcja wyznaczająca współrzędne x i y dla środka okna przeglądarki -----------//
function centerPoint(iWidth, iHeight)
{
    if(!iWidth)  iWidth  = 0;
    if(!iHeight) iHeight = 0;
    var aCenter = new Array();
    var iResX   = 0;
    var iResY   = 0;
    iWidth      = parseInt(iWidth);
    iHeight     = parseInt(iHeight);
    if(document.documentElement)
    {
        iResX = parseInt(document.documentElement.clientWidth);
        iResY = parseInt(document.documentElement.clientHeight);
    }
    if(iResX <= 0 && iResY <= 0 && document.body)
    {
        iResX = parseInt(document.body.clientWidth);
        iResY = parseInt(document.body.clientHeight);
    }
    if(iResX <= 0 && iResY <= 0 && window.scrollY)
    {
        iResX = parseInt(window.innerWidth); 
        iResY = parseInt(window.innerHeight); 
    }
    aCenter.x = parseInt((iResX / 2) - (iWidth / 2));
    aCenter.y = parseInt((iResY / 2) - (iHeight / 2));
    return aCenter;
}
// ---------- Funkcja pozycjonująca DIV'a względem środka okna przeglądarki -----------//
function setDiv(sID, iX, iY)
{
    var obj           = document.getElementById(sID);
    var aCenter       = centerPoint();
    var iLeft         = parseInt(aCenter.x) + parseInt(iX);
    obj.style.left    = iLeft + 'px';
    obj.style.top     = iY + 'px';
    obj.style.display = 'block';
}
// ---------- Funkcja zwijająca i rozwijająca tagi -----------//
function toogleTags(on)
{
    if(on)
    {
        document.getElementById('tags_do_coll').style.display = '';
        document.getElementById('tags_do_exp').style.display  = 'none';
        document.getElementById('tags_coll').style.display    = 'none';
        document.getElementById('tags_exp').style.display     = '';
    }
    else
    {
        document.getElementById('tags_do_coll').style.display = 'none';
        document.getElementById('tags_do_exp').style.display  = '';
        document.getElementById('tags_coll').style.display    = '';
        document.getElementById('tags_exp').style.display     = 'none';
    }
    return;
}


