/*
biblioteka javascript 

funckcje pomocnicze do określania stylów węzłów
*/

var styling=new Object();

/* określa nieprzezroczystość (opacity) węzła DOM przypisując mu podaną wartość.
@param opacity wartość z zakresu od 0 do 1
*/
styling.opacity=function(ele,opacity){
  ele.style.opacity=opacity;
  ele.style.mozOpacity=opacity;
  ele.style.filter="alpha(opacity="+(opacity*100)+")";
}

/*podnosi element w drzewie DOM poprzez podłączenie go bezpośrednio do jego "dziada", odpowiednio
  aktualizuje położenie elementu
*/
styling.promote=function(ele){
  var par=ele.parent;
  if (par){
    var gpar=par.parent;
    if (gpar){
      par.removeChild(ele);
      gpar.appendChild(ele);
    }
  }
}

/*
jeśli to konieczne to zapisuje argument jako element DOM; jeśli element już jest elementem DOM, nic nie robi.
Używana by upewnić się, że argument może być bezpiecznie przekazany do funkcji wymagającej elementu DOM,
który można zobaczyć */
styling.toDOMElement=function(obj,wrapperType){
  var result=null;
  if (obj instanceof Element){
    result=obj;
  }else{
    var txtNode=document.createTextNode(""+obj);
    if (wrapperType){
      var wrapper=document.createElement('div');
      wrapper.appendChild(txtNode);
      result=wrapper;
    }else{
      result=txtNode;
    }
  }
  return result;
}

/*usuwa wszystkie węzły potomków z danego węzła*/
styling.removeAllChildren=function(ele){
  if (ele){
    while(ele.firstChild){
      ele.removeChild(ele.firstChild);
    }
  }
}

styling.insertAtTop=function(parent,child){
  if (parent.firstChild){
    parent.insertBefore(child,parent.firstChild);
  }else{
    parent.appendChild(child);
  }
}

/* Pobiera referencje do elementu DOM niezależnie do rodzaju przegl±darki */ 
var go2webGetElementWithId;
var go2webCanGetAnyElement = false;
var go2webCanGetCssPositionedElements = false;

if (document.getElementById) {
	go2webCanGetAnyElement = true;
	go2webCanGetCssPositionedElements = true;
	go2webGetElementWithId = function(id) {
		return document.getElementById(id);
	}	
} else if (document.all) {
	go2webCanGetAnyElement = true;
	go2webCanGetCssPositionedElements = true;
	go2webGetElementWithId = function(id) {
		return document.all[id];
	}	
} else if (document.layers) {
	go2webCanGetCssPositionedElements = true;
	go2webGetElementWithId = function(id,baseLayers) {
		baseLayers = baseLayers || document.layers;
		var obj = baseLayers[id];
		if (!obj) {
			for (var c=0; c <baseLayers.length; c++) {
				if ((baseLayers[c]) && (baseLayers[c].document) && (baseLayers[c].document.layers)) {
					obj = go2webGetElementWithId(id,baseLayers[c].document.layers);  
					if (obj) break;
				}
			}
		}
		return obj || null;
	}
} else {
	go2webGetElementWithId = function(id) {
		return null;
	}
}

