var curToggleNode = '';














function adaptElementSizeCssDiff(elementId, diffWidth, diffHeight){
  
  var winWidth  = getWidthWindow();
  var winHeight = getHeightWindow();
  var element = document.getElementById(elementId);
  if(winWidth <= 0 || winHeight <= 0){
    window.setTimeout("adaptElementSizeCssDiff('" + elementId + "', " + diffWidth + ", " + diffHeight + ")", 500);
  }
  else if(element){
    if(diffHeight != null){
      var newHeight = winHeight - diffHeight;
      element.style.height = String(newHeight) + 'px';
    }
    if(diffWidth != null){
      var newWidth = winWidth - diffWidth;
      element.style.width = String(newWidth) + 'px';
    }
  }
}










function adaptApplicationSize(elementId, diffWidth, diffHeight){

  var winWidth    = getWidthWindow();
  var winHeight   = getHeightWindow();

  if(diffHeight!='0'){
    document.getElementById(elementId).style.height = String(parseInt(winHeight) - diffHeight) + 'px';
  }
  if(diffWidth!='0'){
    document.getElementById(elementId).style.width = String(parseInt(winWidth) - diffWidth) + 'px';
  }
  
  document.getElementById(elementId).style.display = "block";
}






function getHeightWindow(){


  var winHeight;

  if(ie){
    if(document.documentElement.clientHeight){
      winHeight = document.documentElement.clientHeight;
    }
    else{
    	if(document.body){
      	winHeight = document.body.clientHeight;
      }
      else{
      	winHeight = 0;
      }
    }
  }
  else{
    winHeight = window.innerHeight;
  }
  return winHeight;
}






function getWidthWindow(){
	
  var winWidth;
	
  if(ie){
    if(document.documentElement.clientWidth){
    	winWidth = document.documentElement.clientWidth;
    }
    else{
    	if(document.body){
    		winWidth = document.body.clientWidth;
    	}
    	else{
    		winWidth = 0;
    	}
    }
  }
  else{
    winWidth = window.innerWidth;
  }

  return winWidth;

}








function setClassName(elementId, className){

  if(elementId == ""){
   return;
  }

	if(ie){
    if(document.all[elementId]){
      document.all[elementId].className = className;
    }
	}
	else if(dom){
	  if(document.getElementById(elementId)){
		  document.getElementById(elementId).className = className;
    }
	}
}








function setClassNameObject(object, className){

  object.className = className;
}









function wShowRegister(id, group){

  if(!group || group == ''){
    group = 'default';
  }

  var sheet = document.getElementById('wSheetRegister_' + group + '_' + id);
  
  if(sheet){
    var sheets = document.getElementsByTagName('DIV');
    for(var i = 0; i < sheets.length; i++){      
      if(sheets[i].id.substr(0, 14) == 'wSheetRegister'){
        if(sheets[i].id.substr(15, group.length) == group){
          sheets[i].style.display = 'none';
        }
      }
    }
    sheet.style.display = 'block';
    
    sheet.style.height = String(sheet.parentNode.parentNode.parentNode.offsetHeight) + 'px';
    sheet.style.overflow = 'auto';
    if(ie){
      sheet.style.position = 'relative';
    }

    return true;
  }
  return false;
}




















function wShowProgressPaste(){

}










function wShowMessagebox(id, title, text, buttons, icon, variable){
	initDialog(id, title, text, buttons, icon, variable);
}









function toggleDisplay(id){

    var element = document.getElementById(id);
    if(element){
      if(element.style.display == 'block'){
        element.style.display = 'none';
      }
      else{
        element.style.display = 'block';
      }
    }
}









function toggleNode(element){

    if (curToggleNode != '' && curToggleNode != element){
      curToggleNode.style.display = 'none';
    }

    curToggleNode = element;

    if(element){
      if(element.style.display == 'block'){
        element.style.display = 'none';
      }
      else{
        element.style.display = 'block';
      }
    }
}








function toggleCheckBox(object){
  if(typeof object == 'object' && object != null && object.nodeName == 'IMG'){
    var result = object.src.search(/checkbox.gif/);
    if(result != -1){
      object.src = '/weblication/grid/gui/wImages/icon_small/checkbox_selected.gif';
    }
    else{
      object.src = '/weblication/grid/gui/wImages/icon_small/checkbox.gif';
    }
  }
}






function enableButtonDefault(id){

  var button = document.getElementById('wButton_'+id);
  if(button){
    button.className = 'wButton';
  }
}






function disableButtonDefault(id){
  var button = document.getElementById('wButton_'+id);
  if(button){
    button.className = 'wButtonDisabled';
  }
}






function hideButtonDefault(id){
  var button = document.getElementById('wButton_'+id);
  if(button){
    button.className = 'wButtonHidden';
  }
}






function selectButtonDefault(id){
  var button = document.getElementById('wButton_'+id);
  if(button){
    button.className = 'wButtonSelected';
  }
}








function toggleDisplayElement(elementId){

  if(document.getElementById(elementId)){
    if(document.getElementById(elementId).style.display == 'none'){
      document.getElementById(elementId).style.display = 'block';
    }
    else{
      document.getElementById(elementId).style.display = 'none';
    }
  }
}








function displayElement(elementId){
  
  if(document.getElementById(elementId)){    
    document.getElementById(elementId).style.display = 'block';
  }
}








function hideElement(elementId){

  if(document.getElementById(elementId)){
    document.getElementById(elementId).style.display = 'none';
  }
}








function wSetStyleClass(className, styleName, styleValue){

  if(ie){
    var lastStyleSheet = document.styleSheets[document.styleSheets.length - 1];
    lastStyleSheet.addRule (className, styleName + ':' + styleValue);
  }
  else{
    var lastStyleSheet = document.styleSheets[document.styleSheets.length - 1];
    lastStyleSheet.insertRule('.' + className + '{' + styleName + ':' + styleValue + '}', lastStyleSheet.cssRules.length);
  }
}

function wAdaptElementSizeToElement(elementInnerId, elementOuterId, marginTop, marginRight, marginBottom, marginLeft, offsetTop){
  var elementInner = document.getElementById(elementInnerId);
  var elementOuter = document.getElementById(elementOuterId);


  if(elementInner){
    if(elementOuter){
      if(elementInner.nextSibling && elementInner.nextSibling.nodeType == 3){
        elementInner.nextSibling.parentNode.removeChild(elementInner.nextSibling);
      }
      elementInner.style.marginTop    = String(marginTop) + 'px';
      elementInner.style.marginRight  = String(marginRight) + 'px';
      elementInner.style.marginBottom = String(marginBottom) + 'px';
      elementInner.style.marginLeft   = String(marginLeft) + 'px';



      var heightInner               = parseInt(elementOuter.clientHeight) - marginTop - marginBottom - offsetTop;


      elementInner.style.height     = String(heightInner) + 'px';
      elementInner.style.width      = String(elementOuter.clientWidth) + 'px';
      elementInner.style.visibility = '';

    }
  }
}

function closeMask(){

  if(parent){
    if(parent.name == 'wInnerMain'){
      parent.closeTab();
    }
    else{
      top.close();
    }
  }
  else{
    top.close();
  }
}








function cancleBubble(e){
  if(ie){
    window.event.cancelBubble =  true;  
  }
  else{
    if(typeof e.stopPropagation == 'function'){
      e.stopPropagation();
    }
  }
}








function wInitSelectObject(name, id, sourcename){
	wSelectObject[0][name] = new wSelect(name, id, sourcename);
	if(wCurSelectObjectName != null){
	  wSelectObject[0][wCurSelectObjectName].closeSelect();     	
	}
	wCurSelectObjectName = name;
	
}

function option_hideList_onMouseDown(evt){ 
	if(ie){
		wSelectObject[0][wCurSelectObjectName].onmousedown(event);
 	  event.stopPropagation();
  }
  else{
    wSelectObject[0][wCurSelectObjectName].onmousedown(evt);
    evt.cancelBubble = true;  
  }
}

function option_hideList_onMouseScroll(evt){
	if(ie){
		wSelectObject[0][wCurSelectObjectName].onmousedown(event);
	}
	else{    	
  	wSelectObject[0][wCurSelectObjectName].onscroll(evt);
	}
}


function wSelect(name, id, namesource){
  this.name 	= name;
  this.listId = id;
  this.namesource = namesource;

  this.setEvents = function(){
    if(!ie){
      eval('window.onscroll    = option_hideList_onMouseScroll');
      eval('window.onmousedown = option_hideList_onMouseDown');
    } 
    else{
      eval('document.onmousedown = option_hideList_onMouseDown');
      if(typeof document.getElementById("wMainContentTableInner") == 'object' && document.getElementById("wMainContentTableInner") != null){
      	eval('document.getElementById("wMainContentTableInner").onscroll = option_hideList_onMouseScroll');
      }
    }
  };
  
  
  this.onscroll = function(evt){
  
  	if(ie){
      var id = evt.srcElement.id;
    }
    else{
      var id = evt.target.id;
    }

    var regExp = '/^' + this.listId + '_/';
    var idTemp = id.match(eval(regExp));
    
    if(id.replace(/^\s+|\s+$/, '') == this.listId.replace(/^\s+|\s+$/, '')){
    	idTemp = true;
    }
    
    if(idTemp == '' || idTemp == null || id == ''){
      if(document.getElementById(this.listId)){
        document.getElementById(this.listId).style.display = 'none';                              
      }

	    if(!ie){
				window.onscroll = null;
			}
			else{
				document.getElementById('wMainContentTableInner').onscroll = null;
			}
			this.default_img_onclick(document.getElementById(this.listId + "_img"));
		}
    
	};
	
	this.onmousedown = function(evt){
	  
	  if(ie){
      var id = evt.srcElement.id;
    }
    else{
      var id = evt.target.id;
    }
    
    var regExp = '/^.*' + this.listId + '_/';
    var idTemp = id.match(eval(regExp));
    
    if(id.replace(/^\s+|\s+$/, '') == this.listId.replace(/^\s+|\s+$/, '')){
    	idTemp = true;
    }

    if(idTemp == '' || idTemp == null || id == ''){
      if(document.getElementById(this.listId)){
        document.getElementById(this.listId).style.display = 'none';  
      }  
      if(window.removeEventListener){
	      eval('window.removeEventListener("MouseDown", option_hideList_onMouseDown, false );');
	    }
	    else{
	     	if(document.detachEvent){
	      	eval('document.detachEvent("onmousedown", option_hideList_onMouseDown);');
	      }
	      document.onmousedown = null;
	    }
	    this.default_img_onclick(document.getElementById(this.listId + "_img"));
    }
	};
  
  this.default_itemList_onClick = function(listObject, object){
    
    if(listObject.nodeType != 1){
      listObject = listObject.nextSibling;
    }
    
    this.default_img_onclick(document.getElementById(this.listId + "_img"));
    
    if(listObject.style.display == 'block'){
      listObject.style.display = 'none';
    }
    else{
      if(!ie || object.style.width != ''){
        listObject.style.width   = (object.offsetWidth - 2) + 'px';
      }
      else if(ie){
        listObject.style.width   = (object.offsetWidth - 9) + 'px';
      }
      listObject.style.display = 'block';
    }
    
    var listHeight = null;
    if(listHeight == null){
      listHeight = listObject.offsetHeight;
    }
    
    if(listHeight + (listObject.offsetTop - windowHeight) > windowHeight - diffHeight){
      var tempListHeight = windowHeight - (listObject.offsetTop - windowHeight) - diffHeight;
      if(tempListHeight > 70){
        listObject.style.height = tempListHeight + 'px';
      }
      else{ 
        if(ie){
          listObject.style.top = (listObject.offsetTop - listObject.offsetHeight - (object.offsetHeight - object.offsetTop - 3)) + 'px';
        }
        else{
          listObject.style.top = (listObject.offsetTop - listObject.offsetHeight - (object.offsetHeight - object.offsetTop)) + 'px';
        }
      }
    }

    if(listObject.offsetLeft < object.offsetLeft && (listObject.offsetLeft != 0 && object.offsetLeft != 0)){
      if(ie){
        listObject.style.top = (listObject.offsetTop - object.offsetTop) + 'px';
        if(typeof object.parentNode == 'object' && object.parentNode != null){
          listObject.style.left = (object.offsetLeft + object.parentNode.offsetLeft) + 'px';
        }
        else {
          listObject.style.left = (object.offsetLeft) + 'px';
        }
      } 
      else{
        listObject.style.left = object.offsetLeft + 'px';
      }
    }


    this.setEvents();
	
	};
	
	this.default_img_onclick = function(imgObject) {
    
    if(imgObject.nodeType != 1){
	    imgObject = imgObject.nextSibling;
	  }
		if(typeof imgObject == 'object' && imgObject.nodeName == 'IMG'){
		  var regEx = /\/(\w*).gif$/;
  		regEx.exec(imgObject.src);
			if(RegExp.$1 == "open"){
			  imgObject.src = imgObject.src.replace(/open.gif$/, 'open.gif');
			}
			else{
			  imgObject.src = imgObject.src.replace(/close.gif$/, 'open.gif');
			} 
		}
	};
	
	this.default_item_setValue = function(listObject, displayValue, value){
	
    var dom = new wDomX();
    var object = dom.wGetFirstChild(listObject.parentNode);
    
    var inputSelect = dom.wGetElementByName(this.name + '_display', object);


    inputSelect.value = displayValue;
    
    var inputSelect = dom.wGetElementByName(this.name, object);
    if(typeof inputSelect == 'undefined'){      
      var inputSelect = dom.wGetElementByName(this.namesource, object);  
    }
    
    inputSelect.value = value;
    inputSelect.onclick();
    
		listObject.style.display = 'none';
    
	};
	
	this.closeSelect = function(){
     if(document.getElementById(this.listId)){
        document.getElementById(this.listId).style.display = 'none';
     }                              
	};
	
	this.icon_itemList_onClick = function(listObject, object){
     
	   wCurSelectObjectName = this.name;
	  
		if(listObject.nodeType != 1){
     	listObject = listObject.nextSibling;
   	}
    
   	if(listObject.style.display == 'block'){
     	listObject.style.display = 'none';
   	}
   	else{
     	listObject.style.display = 'block';
     	listObject.style.width = String(object.offsetWidth - 2) + 'px';
     	listObject.style.marginTop = '-1px';
   	}
   
    if((listObject.offsetHeight + listObject.offsetTop) > document.documentElement.clientHeight){
      listObject.style.height = (document.documentElement.clientHeight - listObject.offsetTop -1) + 'px';
    }
   	this.setEvents();
   
	};
	
	this.icon_item_setValue = function(listObject, displayValue, value, imgSrc){
    
    var dom = new wDomX();
    var object = dom.wGetFirstChild(listObject.parentNode);
    
    var imgSelect = dom.wGetElementById(this.listId + '_iconSelect', object);
    var imgObject = dom.wGetFirstChild(imgSelect);
    imgObject.src = imgSrc;
    
    var inputSelect = dom.wGetElementByName(this.name + '_display', object);
    inputSelect.value = displayValue;
    var inputSelect = dom.wGetElementByName(this.name, object);
    inputSelect.value = value;
    inputSelect.onclick();
    
    listObject.style.display = 'none';
	
	};
  
  this.setDisabled = function(){

    var inputSelect = document.getElementById(this.listId + "_input_display");
    if(typeof inputSelect == 'object' && inputSelect != null){
      inputSelect.disabled = "disabled";
      inputSelect.style.cursor = 'default';
    }
    
    var tableObject = document.getElementById(this.listId + "_display");
    if(typeof tableObject == 'object' && tableObject != null){ 
      tableObject.onclick = null;
      tableObject.style.cursor = 'default';
    }
    
    var iconSelect =  document.getElementById(this.listId + "_iconSelect");
    if(typeof iconSelect == 'object' && iconSelect != null){ 
      iconSelect.style.cursor = 'default';
      iconSelect.className = iconSelect.className + ' wDisabled';
      iconSelect.onmouseover = null;
      iconSelect.onmouseout = null;
    }
    
    var imgContainer =  document.getElementById(this.listId + "_imgContainer");
    if(typeof imgContainer == 'object' && imgContainer != null){ 
      imgContainer.style.cursor = 'default';
      imgContainer.className = imgContainer.className + ' wDisabled';
      imgContainer.onmouseover = null;
      imgContainer.onmouseout = null;
    }
    
  };
  
  this.change_text_setValue = function(listObject, value){
  
    var dom = new wDomX();
    var object = dom.wGetFirstChild(listObject.parentNode);
    
    var inputSelect = dom.wGetElementByName(this.name, object);
    
    if(typeof inputSelect == 'undefined'){      
      var inputSelect = dom.wGetElementByName(this.namesource, object);  
    }
    
    inputSelect.value = value;


    
  };
 	
}








function wFileselector(id){
  this.id = id;
 
	this.onSelect = function(file){
	   document.getElementById(this.id).value = file;
	};
}








function getDirFile(file){
  var dirFile = file.replace(/(.*\/)[^\/]*/, '$1');
  return dirFile;
}

function markRowObjectListExtended(id){

  var idRowOuter = 'itemOuterRow_' + id;
  var rowOuter = document.getElementById(idRowOuter);
  if(rowOuter){
    rowOuter.style.backgroundColor = '#f0f0f0';
    var positionRow = 0;
    var positionTop = 0;
    var isBeforeCurrent = true;
    for(var i = 0; i < rowOuter.parentNode.childNodes.length; i++){
      if(isBeforeCurrent){

        positionTop += 21;
        if(rowOuter.parentNode.childNodes[i] == rowOuter){
          isBeforeCurrent = false;
        }
      }
    }

    if(positionTop > 320){
      document.getElementById('wObjectListExtendedMain').scrollTop = positionTop - 160;
    }
  }
}








function wSelectObjectMultiExtended(multiple, id){
  this.id = id;
  if(multiple == 1){
    this.selObjects = new Array();
  }
  else{
    this.selObjects = '';
  }
  this.objectInfo    = new Array();
  this.objectInfo[0] = new Object();
    
  this.selectObject = function(value, caption, type){
    if(typeof this.selObjects == 'object'){
      this.selObjects.push(value);
    }
    else{
      var temp = this.selObjects;
      this.selObjects = value;
      this.toggleObject(temp);
    } 
    
    if(typeof this.objectInfo[0][value] != 'object'){
      var tempInfo = new Array();
      tempInfo[0] = new Object();
      tempInfo[0]['caption'] = caption;    
      tempInfo[0]['type'] = type;
      this.objectInfo[0][value] = tempInfo;    
    }
    this.toggleObject(value);

  };
  
  this.removeObject = function(value){
    if(this.isSelected(value)){
      if(typeof this.selObjects == 'object'){
        var tempObject = new Array();
        var tempObjectInfo = new Array();
        tempObjectInfo[0] = new Object();
        for(var i = 0; i < this.selObjects.length; i++){
          if(this.selObjects[i] != value){
            tempObject[i] = this.selObjects[i];
            tempObjectInfo[0] = this.objectInfo[0][this.selObjects[i]];
          }
        }
        this.selObjects = tempObject;
        this.objectInfo[0] = tempObjectInfo[0];
      }
      else{ 
        this.selObjects = '';
      } 
      this.toggleObject(value);
      return true;
    }
    return false;
  };
  
  this.removeAll = function(){
    this.selObjects = new Array();  
  };
  
  this.getOptionsAsStr = function(){
    var objectStr = '';
    if(typeof this.selObjects == 'object'){
      for(var i = 0; i < this.selObjects.length; i++){
        if(objectStr != ''){
          objectStr = objectStr + "|"; 
        }
        objectStr = objectStr + this.selObjects[i];
      }
    }
    return objectStr;
  };
  
  this.isSelected = function(value){
    if(typeof this.selObjects == 'object'){
      for(var i = 0; i < this.selObjects.length; i++){
        if(this.selObjects[i] == value){
          return true;
        }
      }
    }
    else{ 
      if(this.selObjects == value){
        return true;
      }
    } 
    return false;
  };
  
  this.getSelectedObjects = function(){
    return this.selObjects; 
  };
  
  this.getSelectedObjectsInfo = function(value, info){
    if(value != '' && info != '' && typeof this.objectInfo[0][value] == 'object'){
      return this.objectInfo[0][value][0][info];  
    }
    return '';
  };
  
  this.toggleObject = function(value){
    var object = document.getElementById(this.id + value);
    if(typeof object == 'object' && object != null){
      if(this.isSelected(value)){
        object.style.backgroundColor = '#DDEFFF';
      }
      else{
        object.style.backgroundColor = '';
      }
    }
  };
  
  this.addObjectInfo = function(value, id, entry){
    this.objectInfo[0][value][0][id] = entry;
  }; 
  
  this.addToListExt = function(rootObject, value){
    
    if(typeof rootObject == 'object' && rootObject != null){
      var object = this.getSelectedObjects();
      if(value != ''){
        object = value;
      }
      var caption = this.getSelectedObjectsInfo(this.getSelectedObjects(), 'caption');
      var icon = this.getSelectedObjectsInfo(this.getSelectedObjects(), 'icon');
      var tableSelectObject = rootObject;
      var trObjects                   = tableSelectObject.getElementsByTagName('TR');
      var newObject                   = trObjects[trObjects.length - 1].cloneNode(true);
      newObject = this.replace(newObject, value);
      
      var isEmpty   = false;
      var tableRows = tableSelectObject.getElementsByTagName('TR');
      if(tableRows.length){
          isEmpty = true;
      }

      var lastIndex = tableSelectObject.getElementsByTagName('TR').length - 1;
      var tempNode = tableSelectObject.getElementsByTagName('TR')[lastIndex].cloneNode(true);
      tableSelectObject.getElementsByTagName('TR')[lastIndex].parentNode.replaceChild(newObject, tableSelectObject.getElementsByTagName('TR')[lastIndex]);
      tableSelectObject.getElementsByTagName('TBODY')[0].appendChild(tempNode);
    }
  };

  this.replaceListExt = function(rootObject, value){
    if(typeof rootObject == 'object' && rootObject != null){
      var tableSelectObject = rootObject;
      var trObjects                   = tableSelectObject.getElementsByTagName('TR');
      var newObject                   = trObjects[trObjects.length - 1].cloneNode(true);
      
      newObject = this.replace(newObject, value);
      
      var replaceObject = null;
      var object = this.getSelectedObjects();
      for(var i = 0; i < trObjects.length; i++){
        if(trObjects[i].id == object){
          replaceObject = trObjects[i];
        }
      }
      if(typeof replaceObject == 'object' && replaceObject != null){
        replaceObject.parentNode.replaceChild(newObject, replaceObject);
      } 
    }  
  };
  
  this.replace = function(newObject, value){
  
      var object = this.getSelectedObjects();
      if(value != ''){
        object = value;
      }
      var caption = this.getSelectedObjectsInfo(this.getSelectedObjects(), 'caption');
      var icon = this.getSelectedObjectsInfo(this.getSelectedObjects(), 'icon');
      newObject.id                    = object;
      newObject.className             = '';
      
      var wChildNodes = newObject.getElementsByTagName('INPUT');
      for(var i = 0; i < wChildNodes.length; i++){
        wChildNodes[i].name  = wChildNodes[i].name.replace('W_PRETMP_', '');
        wChildNodes[i].value = wChildNodes[i].value.replace(/\[W_ID\]/, object);
        wChildNodes[i].value = wChildNodes[i].value.replace(/\[W_CAPTION\]/, caption);

        wChildNodes[i].value = wChildNodes[i].value.replace(/\[W_ABBR\]/, this.getSelectedObjectsInfo(this.getSelectedObjects(), 'abbr'));
        wChildNodes[i].value = wChildNodes[i].value.replace(/\[W_CAPTION_EN\]/, this.getSelectedObjectsInfo(this.getSelectedObjects(), 'caption_en'));
        wChildNodes[i].id    = wChildNodes[i].id.replace(/\[W_ID\]/, object);
      }

      var wChildNodes = newObject.getElementsByTagName('DIV');
      for(var i = 0; i < wChildNodes.length; i++){
        wChildNodes[i].innerHTML = wChildNodes[i].innerHTML.replace(/\[W_CAPTION_EN\]/, this.getSelectedObjectsInfo(this.getSelectedObjects(), 'caption_en'));
        wChildNodes[i].innerHTML = wChildNodes[i].innerHTML.replace(/\[W_CAPTION\]/, caption);
        wChildNodes[i].innerHTML = wChildNodes[i].innerHTML.replace(/\[W_ID\]/, object);
      }

      var wChildNodes = newObject.getElementsByTagName('A');
      for(var i = 0; i < wChildNodes.length; i++){
        wChildNodes[i].href = wChildNodes[i].href.replace(/\[W_ID\]/g, object);
        wChildNodes[i].id   = wChildNodes[i].id.replace(/\[W_ID\]/, object);
      }

      var wChildNodes = newObject.getElementsByTagName('IMG');
      for(var i = 0; i < wChildNodes.length; i++){
        src = decodeURI(wChildNodes[i].src);
        if(wChildNodes[i].src != src.replace(/\[W_ICON\]/, '')){
          wChildNodes[i].src = icon;
        }
        wChildNodes[i].id  = wChildNodes[i].id.replace(/\[W_ID\]/, object);
      }
      
      return newObject;

  };
  
  
}








function wSelectMultipleX(id){
  this.id     = id; 
  this.object = null; 
  
  this.wSetStateByValue = function(value, state){
    this.object = document.getElementById(this.id);
    if(typeof this.object == 'object' && this.object.tagName == 'SELECT' && this.object.type == 'select-multiple'){
      if(this.object.options.length == 0){
        return false;
      }
      for(var i = 0; i < this.object.options.length; i++){
        if(this.object.options[i].value == value){
          if(ie){
            this.object.options[i].setAttribute("selected", state);
          }
          else{
            this.object.options[i].selected = state;
          }
          return true;
        }
      } 
    }
    return false;
  };
  
  this.wValueIsSet = function(value){
    this.object = document.getElementById(this.id);
    if(typeof this.object == 'object' && this.object.nodeName == 'SELECT'){
      for(var i = 0; i < this.object.options.length; i++){
        if(this.object.options[i].value == value && this.object.options[i].selected == true){
          return true;
        }
      } 
    }
    return false;
  };
  
  this.wGetIndex = function(value){
    this.object = document.getElementById(this.id);
    if(typeof this.object == 'object' && this.object.nodeName == 'SELECT'){
      for(var i = 0; i < this.object.options.length; i++){
        if(this.object.options[i].value == value){
          return i;
        }
      } 
    }
    return false;
  };  
  
  this.wAddOption = function(value, text){
    this.object = document.getElementById(this.id);
    if(typeof this.object == 'object' && this.object.nodeName == 'SELECT'){
      var option = document.createElement("option");
      this.object.appendChild(option);
      this.object.options[this.object.options.length - 1].value = value;
      this.object.options[this.object.options.length - 1].appendChild(document.createTextNode(text));
      return true;
    }
    return false;
  };
  
  this.wDeleteOption = function(value){
    this.object = document.getElementById(this.id);
    if(typeof this.object == 'object' && this.object.tagName == 'SELECT'){
      for(var i = 0; i < this.object.options.length; i++){
        if(this.object.options[i].value == value){
          this.object.options[i].parentNode.removeChild(this.object.options[i]);
          return true;
        }
      } 
    }
    return false;
  };
}








function wDomX(){

  this.wGetElementById = function(id, domObject){
    
    var childs  = domObject.childNodes;
    var element = null;
    if(childs.length > 0){
      for(var i = 0; i < childs.length; i++){
        if(childs[i].nodeName != "SCRIPT" && childs[i].nodeType == 1){

          if(id == childs[i].id){
            return childs[i];
          }
          if(childs[i].hasChildNodes() ){
            element = this.wGetElementById(id, childs[i]);
          }
          if(element != null){
            return element;
          }
        }
      }
    }
    else{
      return element;
    }
  };
  
  this.wGetElementByName = function(name, domObject){
    
    var childs  = domObject.childNodes;
    var element = null;
    if(childs.length > 0){
      for(var i = 0; i < childs.length; i++){
        if(childs[i].nodeName != "SCRIPT" && childs[i].nodeType == 1){
          if(name == childs[i].name){
            return childs[i];
          }
          if(childs[i].hasChildNodes() ){
            element = this.wGetElementByName(name, childs[i]);
          }
          if(element != null){
            return element;
          }
        }
      }
    }
    else{
      return element;
    }
  };

  this.wGetFirstChild = function(object){
    if(object == null || typeof object != 'object'){
      return false;
    }
    if(object.firstChild.nodeType != 1){
      return object.firstChild.nextSibling;
    }
    return object.firstChild;
  };
  
  this.wGetPreviousSibling = function(object){
    if(object == null || typeof object != 'object'){
      return false;
    }
    if(object.previousSibling.nodeType != 1){
      return object.previousSibling.previousSibling;
    }
    return object.previousSibling;
  };
  
  this.wGetNextSibling = function(object){
    if(object == null || typeof object != 'object'){
      return false;
    }
    if(object.nextSibling != null && object.nextSibling.nodeType != 1){
      return object.nextSibling.previousSibling;
    }
    return object.nextSibling;
  };  
  
  this.wGetParentNodeId = function(parentId, domObject){
    var parentNode = domObject.parentNode;
    
    while (parentNode != null && parentNode.id != null && parentNode.id != parentId) {
      parentNode = parentNode.parentNode;
    }
    if(parentNode == null){
      return false;
    }
    return parentNode;
  };
  
  this.wGetParentNodeTagName = function(parent, domObject){
    
    var parentNode = domObject.parentNode;
      
    while (parentNode != null && parentNode.tagName != parent) {
      parentNode = parentNode.parentNode;
    }
    if(parentNode == null){
      return false;
    }
    return parentNode;
  };

  this.wGetInputByValue = function(name, value){

    var inputs = document.getElementsByName(name);
    for(var i = 0; i < inputs.length && i < 20; i++){
      if(inputs.item(i).value == value){
        return inputs.item(i);
      }
    }
    return false;
  };
  
  
}