/*
 * Biblioteka przydatnych funkcji opracowana
 * przez DT Studio s.c.
 */

/**
 * Funckja zwraca obiekt o podanym id,
 * lub obiekt jeśli parametr jest obiektem
 */
function el(elementName) {
  return $(elementName);
}

function $(elementName) {
    var isString = (elementName === elementName.toString());
    if (isString) return document.getElementById(elementName);
    else return elementName;
}

function $$(elementName) {
    return document.getElementsByName(elementName);
}


/**
 * Wykonuje podobne zadanie co innerHTML, ale tutaj dla elementów XML
 * służy tylko do odczytu
 * @param xmlElement - element, któremu należy odczytać zawartość
 */
function innerXML(xmlElement) {
      var inner = "";
      for (var child = xmlElement.firstChild;
          child; child = child.nextSibling) {
          inner += child.nodeValue;
      }
      return inner;
}


/**
 * Funckja zwraca obiekt o podanym id,
 * lub obiekt jeśli parametr jest obiektem
 */
function $el(elementName) {
    var isString = (elementName === elementName.toString());
    if (isString) return document.getElementById(elementName);
    else return elementName;
}

function $$el(elementName) {
    return document.getElementsByName(elementName);
}

var dtUtils = {

    /**
     * Zamyka wskazany element
     * @param element element do kolapsu
     * @param on wysokość po włączeniu
     * @param off wysokość po włączeniu lub null, gdy ma zniknąć
     */
    colapse : function(element, on, off) {
        var el = $el(element);
        if (!off) {
            if (!el.style.display || el.style.display == '') el.style.display = 'none';
            else {
                el.style.display = '';
                if (on) el.style.height = on;
            }
        } else {
            if (!el.style.height || el.style.height == off) el.style.height = on;
            else el.style.height = off;
        }
    },


    /**
     * Konwertuje tablicę asocjacyjną na parametry URL
     */
    arrayToURLParams : function(paramsArray, dzielnik, sufix) {

        if (!dzielnik) dzielnik = "&";
        if (!sufix) sufix = '';
        var params = "";
        var value;
        if (paramsArray)
            for (var paramName in paramsArray) {
                if (paramsArray[paramName] instanceof Array)
                    this.arrayToURLParams(paramsArray[paramName], dzielnik, '[]');
                else {
                    value = "";
                    if (paramsArray[paramName])
                        value = '=' + encodeURIComponent(paramsArray[paramName]);
                    params += dzielnik + paramName + sufix + value;
                }
            }

//        var params = encodeURIComponent(paramsArray.join(dzielnik));
        return params;
    }
}



/**
 * ustawia domyślne wartości dla zmiennych
 */
function xxxdef(variable, defValue) {
    if (!variable) variable = defValue;
}

function getBodySize() {
    var w = document.body.offsetWidth;
    var h = document.body.offsetHeight;

    var size = {width : w, height : h};
    return size;
}


function WebElement(elementName, tagName, parentElement) {

    var elem = el(elementName);

    if (!elem) {
        if (!tagName) tagName = 'div';
        parentElement.appendChild(elem);
    }
    else alert('mam element');
}



