function _wtHandleSubmenu(link) {

    var listElement = wtGetNextSibling(link);

    if(listElement) {
        if(listElement.className == 'collapsed') {
            listElement.className = 'expanded';
        } else {
            listElement.className = 'collapsed';
        }

        return false;
    }

    return true;
}

function wtHandleSubmenu(link) {

    var listElement = link.parentNode;

    if(listElement) {
        if(listElement.className == 'collapsed') {
            listElement.className = 'expanded';
        } else {
            listElement.className = 'collapsed';
        }

        return false;
    }

    return true;
}

function wtSelectModule(moduleID) {

    var module    = document.getElementById(moduleID);

    if(module) {
        module.className += ' selected';
    }
}

function wtExpandMenu(menuID) {

    var menu    = document.getElementById(menuID);

    if(menu) {
        menu.className  = 'expanded';
    }
}

function wtSelectTab(tabID) {
    var tab    = document.getElementById(tabID);

    if(tab) {
        tab.className += ' selected';
    }
}

function wtGetNextSibling(startBrother){

    var endBrother = startBrother.nextSibling;

    while(endBrother.nodeType != 1){
        endBrother = endBrother.nextSibling;
    }

    return endBrother;
}

/*
*	getElementById()
*
*	Detect type DOM
*/
function getElementById( objectID, withStyle){
	if( withStyle){
		if( document.getElementById)
			return ( document.getElementById( objectID ).style);
		else if( document.all )
			return ( document.all[ objectID ].style);
		else if( (navigator.appName.indexOf('Netscape') != -1) && ( parseInt(navigator.appVersion) == 4 ) )
			return (document.layers[ objectID]);
	}else{
		if( document.getElementById)
			return ( document.getElementById( objectID ));
		else if( document.all )
			return ( document.all[ objectID ]);
		else if( (navigator.appName.indexOf('Netscape') != -1) && ( parseInt(navigator.appVersion) == 4 ) )
			return (document.layers[ objectID]);
	}
}

/*
*	setWindowCentered()
*
*	set Pop-Up window on center to screen
*/
function setWindowCentered( width , height ){
	return 'width='+ width +', height='+ height +', top='+ ( screen.availHeight > height ? ( ( (screen.availHeight + height) / 2 ) - height ) : 0 ) +', left='+ ( screen.availWidth > width ? ( ( (screen.availWidth + width) / 2 ) - width ) : 0 );
}

/*
*	setSearchWindow()
*
*	set parameter Pop-Up window
*/
function setSearchWindow( width , height ){
	return	 setWindowCentered( width , height ) +', toolbar=no, directories=no, location=no, status=yes, menubar=no, resizable=no, scrollbars=yes';
}

/*
*	setInput()
*
*	set input and hiddent ( name's is "input_name"+"ID" ) from Pop-Up window
*/
function setInput( id , value , value_id ){
	var input 			= getElementById( id );
	input.value  = value;
	
	if( value_id!= null ){
		var input_hidden 	= getElementById( id + 'ID' );
		input_hidden.value = value_id;
	}
}

/*
*	getUniqueWinName()
*
*	get unique name for Pop-up window.
*/
function getUniqueWinName( prefix_name ) {

     var current_date  	= new Date();
     var name     		= prefix_name + current_date.getTime();

     return name;
}

/*
*	fillImput()
*
*	fill selected input
*/
function fillImput( id , value , delimiter ){
	var input 			= getElementById( id );
	var regular_string 	= new RegExp( "[^" + delimiter + "]\\s*$" );
	var regular_value	= new RegExp( "(^\\s*"+ value +"\\s*"+ delimiter +"|^\\s*"+ value +"\\s*$|"+ delimiter +"\\s*"+ value +"\\s*"+ delimiter +"|"+ delimiter +"\\s*"+ value +"\\s*$)");

	if( input.value.match( regular_value ))
		return true;
	if( input.value.match( regular_string ) ){
		input.value  = input.value + delimiter + value;
	}else{
		input.value  = input.value + value;
	}

}

function wtFocusElement(elementID) {

	var elementObject	= document.getElementById(elementID);

	if(elementObject) {
		elementObject.focus();
		return true;
	}

	return false;
}

function wtShowObject(objectID) {

    var obj = document.getElementById(objectID);

    if(obj) {
        obj.style.display   = 'block';
        return true;
    }
}

function wtHideObject(objectID) {

    var obj = document.getElementById(objectID);

    if(obj) {
        obj.style.display   = 'none';
        return true;
    }
}

function wtCheckAll(_cbObject, _cbGroupName) {

	if(_cbObject) {

		var _formObject	= _cbObject.form;

		if(_formObject) {

			var _elements	= _formObject.elements;

			if(_elements) {

				var _i;
				var _totalCnt	= _elements.length;
				var _currElement;

				var _newStatus	= _cbObject.checked ? true : false;

				for(_i = 0; _i < _totalCnt; _i++) {

					_currElement	= _elements[_i];

					if(_currElement) {
						if(_cbGroupName) {
							if(_currElement.type == 'checkbox' && _currElement.name == _cbGroupName) {
								_currElement.checked	= _newStatus;
							}
						} else {
							if(_currElement.type == 'checkbox') {
								_currElement.checked	= _newStatus;
							}
						}
					}
				}
			}
		}
	}
}

function wtHandleListActionSubmit(selectElementID, actionArray, captionsArray) {

	var selectElement	= getElementById(selectElementID);

	if(selectElement) {

		var selectedValue	= selectElement.options[selectElement.selectedIndex].value;

		for(i=0; i<actionArray.length; i++) {

			if(actionArray[i] == selectedValue) {
				return confirm(captionsArray[i]);
			}
		}
	}

	return true;
}

function initCalendar(inputField, buttonId) {

	if(arguments[2]) {
		ifFormat	= arguments[2];
	} else {
		ifFormat	= '%Y-%m-%d %H:%M';
	}

	Calendar.setup(
    {
      inputField  : inputField,
      ifFormat    : ifFormat,
      button      : buttonId,
      showsTime   :    true,
      timeFormat  :    "24"
    }
  );
}

/**
 *
 *	opens popup with additional url parameters (ids of the DOM objects and their values)
 *	@param url string		- url to open
 *	@param title string		- window title
 *	@param varNames array	- list of ids to pass as url params (javascript finds out their current values and creates query string)
 *	@param x int			- horizontal dimension of the popup windoiw
 *	@param y int			- vertical dimension of the popup windoiw
 *
 *	Example:
 *	openPopup('/intranet/projects/list.php?pageType=popup', 'Search Project', ['TaskParentID', 'ProjectID']);
 */
function openPopup(url, title, varNames, x, y) {
	
	if (varNames) {
		
		var urlAdd = '';
		
		for (var i = 0; i < varNames.length; i++){
			var varValue = document.getElementById(varNames[i]).value;
			urlAdd += '&' + varNames[i] + '=' + varValue;
		}

		url += urlAdd;
	}
	
	if (!x) {
		x = 800;
	}
	if (!y) {
		y = 400;
	}
	window.open(url, title, setSearchWindow( x , y ));
}

