var currentMenu = 0;

function SubNavMenu(){ //v1.1.0.2 by PVII-www.projectseven.com
//	if(navigator.appVersion.indexOf("MSIE")==-1){ return;}

	var i,k,g,lg,r=/\s*navHvr/,nn='',c,cs='navHvr',bv='menu';
	for(i=0;i<1;i++){
		g = document.getElementById( bv+nn );
		if(g){
			lg = g.getElementsByTagName("LI");
			if( lg ){
				for( k=0; k < lg.length; k++ ){
					lg[k].onmouseover=function(){c=this.className;cl=(c)?c+' '+cs:cs; this.className=cl; setSubmenuCoord(this) };
					lg[k].onmouseout=function(){c=this.className; this.className=(c)?c.replace(r,''):'';};
					}
				}
			}
		nn=i+1;
		}
	}

function setSubmenuCoord( holder ){
	myLeft = fetchObjectPosLeft( holder );
	myTop = fetchObjectPosTop( holder ) + holder.offsetHeight; 

	lg = holder.getElementsByTagName("UL");
	if( lg ){
		for ( k = 0; k < lg.length; k++ ){
			lg[k].style.left = myLeft;
			lg[k].style.top = myTop - 0;
			}
		}
	}
	
function hcToggleDivClass( divId, oneClass, twoClass ){
	htmlDiv = document.getElementById( divId );
	if( htmlDiv ){
		if( htmlDiv.className == oneClass ){
			htmlDiv.className = twoClass;
			}
		else
			htmlDiv.className = oneClass;
		}	
	}

function setCheckboxes( setTrue ){
	allCheckboxes = _getAllCheckboxes();
	for( i = 0; i < allCheckboxes.length; i++ ){
		el = allCheckboxes[ i ];
		setCheckbox( el, setTrue )
		}
	return true;
	}

function setCheckbox( ctl, setTrue ){
	ctl.checked = setTrue;
	return true;
	}

function _getAllCheckboxes(){
	checkboxes = new Array();

	thisForms = document.forms;
	for( i = 0; i < thisForms.length; i++ ){
		thisElements = thisForms[ i ].elements;
		for( j = 0; j < thisElements.length; j++ ){
			el = thisElements[ j ];
//			if( el.type == "checkbox" && el.name == CHNDL_FILE_NAME )
			if( el.type == "checkbox" )
				checkboxes.push( el );
			}
		}
	return checkboxes;
	}

function hideSelects(){
	svn=document.getElementsByTagName("SELECT");
	for( a=0; a < svn.length; a++ ){
		if( svn[a].className == 'quickJump' ){
			svn[a].style.visibility = "hidden";
			}
		}
	}
function unhideSelects(){
	svn=document.getElementsByTagName("SELECT");
	for( a=0; a < svn.length; a++ ){
		if( svn[a].className == 'quickJump' ){
			svn[a].style.visibility = "visible";
			}
		}
	}

function showSubmenu( menuId ){
	var mainMenuId = 'mainmenu_' + menuId;
	var subMenuId = 'submenu_' + menuId;

	if( currentMenu && currentMenu != menuId ){
		hideSubmenu( currentMenu );
		}

	if( currentMenu != menuId ){
		subMenu = new myDiv( subMenuId );
		mainMenu = new 
		v( mainMenuId );

		subMenu.setTop( mainMenu.getTop() + mainMenu.getHeight() - 2 );
		subMenu.setLeft( mainMenu.getLeft() );
		subMenu.show();
		currentMenu = menuId;
		}
	else
		currentMenu = 0;

	hideSelects();
	return true;
	}

function hideSubmenu( menuId ){
	var mainMenuId = 'mainmenu_' + menuId;
	var subMenuId = 'submenu_' + menuId;
	_hideElement( subMenuId );
	currentMenu = 0;
	unhideSelects();
	}

function setControlValue( ctl, val ){
	ctl.value = val;
	return true;
	}

function setElementContent( elementId, content ){
	var thisElement = new myDiv( elementId );
	if( thisElement ){
		thisElement.setContent( content );
		}
	}

/*
* PRIVATE
*/
function _showElement( elementId ){
	elementId = arguments[ 0 ];
	if( arguments.length > 1 && arguments[ 1 ] )
		inline = true;
	else
		inline = false;

	var thisElement = new myDiv( elementId );
	if( thisElement ){
		if( inline )
			thisElement.showInline();
		else
			thisElement.show();
		}
	return true;
	}

function _hideElement( elementId ){
	var thisElement = new myDiv( elementId );
	if( thisElement )
		thisElement.hide();
	return true;
	}

function _toggleElement( elementId ){
	var thisElement = new myDiv( elementId );
	if( thisElement ){
		if( thisElement.isHidden() )
			_showElement( elementId );
		else
			_hideElement( elementId );
		}
	return true;
	}

function btnCancel_Click(){
	window.close();
	}

function transferControlValue( srcControl, trgControl ){
//	window.opener.document.mwForm[trgControlName].value = srcControl.value;
	trgControl.value = srcControl.value;
	window.close();
	}

function openWindow( url ){
	nw = window.open(url, 'newWin', 'scrollbars=yes,status=no,menubar=no,location=no,resizable=yes,width=580,height=300');
	}

function fetchObjectPosLeft(elm){
	var left = elm.offsetLeft; 
	while((elm = elm.offsetParent) != null){
		left += elm.offsetLeft;
		}
	return left;
	}

function fetchObjectPosTop(elm){
	var top = elm.offsetTop;
	while((elm = elm.offsetParent) != null){
		top += elm.offsetTop;
		}
	return top;
	}

function myDiv( htmlDivID ){
	htmlDiv = document.getElementById( htmlDivID );
	if( ! htmlDiv ){
		alert( "No div: " + htmlDivID );
		return false;
		}
	else {
//		alert( htmlDivID + ': OK' );
		}

	this.htmlDiv = document.getElementById( htmlDivID );
	this.setLeft = setLeft;
	this.setRight = setRight;
	this.setTop = setTop;
	this.getLeft = getLeft;
	this.getTop = getTop;
	this.getWidth = getWidth;
	this.getHeight = getHeight;
	this.getClassName = getClassName;
	this.show = show;
	this.showInline = showInline;
	this.hide = hide;
	this.isHidden = isHidden;
	this.setContent = setContent;
	this.setBackground = setBackground;
	this.setWidth = setWidth;
	this.setClassName = setClassName;
	this.getPadding = getPadding;
	}
function setBackground( bg ){
	this.htmlDiv.style.background = bg;
	}
function setClassName( cn ){
	this.htmlDiv.className = cn;
	}
function getClassName(){
	return this.htmlDiv.className;
	}
function setContent( content ){
//	alert( this.htmlDiv.innerHTML );
	this.htmlDiv.innerHTML = content;
//	this.htmlDiv.childNodes[0].innerHTML = content;
	}
function getLeft(){
	return fetchObjectPosLeft( this.htmlDiv );
	}
function setLeft( left ){
	if( left < 0 )
		left = 5;
	this.htmlDiv.style.left = left;
	}
function setRight( right ){
	this.htmlDiv.style.right = right;
	}
function getPadding(){
	return this.htmlDiv.style.paddingLeft;
	}
function getTop(){
	return fetchObjectPosTop( this.htmlDiv );
	}
function setTop( top ){
	this.htmlDiv.style.top = top;
	}
function setWidth( width ){
	this.htmlDiv.style.width = width;
	}
function getWidth(){
	return this.htmlDiv.offsetWidth;
	}
function getHeight(){
	return this.htmlDiv.offsetHeight;
	}
function show(){
//	this.htmlDiv.style.display = "inherit";
	this.htmlDiv.style.display = "block";
	}
function showInline(){
	this.htmlDiv.style.display = "inline";
	}
function hide(){
	this.htmlDiv.style.display = "none";
	}
function isHidden(){
	if( this.htmlDiv.style.display == "none" )
		return true;
	else
		return false;
	}

function makeHttpRequest(url, callback_function, fParamString, return_xml){
   var http_request = false;

	if( arguments.length > 4 && arguments[ 4 ] )
		alsoSend = arguments[ 4 ];
	else
		alsoSend = '';


   if (window.XMLHttpRequest) { // Mozilla, Safari,...
       http_request = new XMLHttpRequest();
//       if (http_request.overrideMimeType) {
//			http_request.overrideMimeType('text/xml [15]');
 //      }
   } else if (window.ActiveXObject) { // IE
       try {
           http_request = new ActiveXObject("Msxml2.XMLHTTP");
       } catch (e) {
           try {
               http_request = new ActiveXObject("Microsoft.XMLHTTP");
           } catch (e) {}
       }
   }

   if (!http_request) {
       alert('Unfortunatelly you browser doesn\'t support this feature.');
       return false;
   }

   http_request.onreadystatechange = function() {
       if (http_request.readyState == 4) {
           if (http_request.status == 200) {
				if (return_xml) {
					if( fParamString != "" )
						evalCode = callback_function + '(' + fParamString + ', http_request.responseXML)';
					else
						evalCode = callback_function + '(http_request.responseXML)';
					}
				else {
					if( fParamString != "" )
						evalCode = callback_function + '(' + fParamString + ', http_request.responseText)';
					else
						evalCode = callback_function + '(http_request.responseText)';
					}
				eval( evalCode );
           } else {
               alert('There was a problem with the request.(Code: ' + http_request.status + ')');
           }
       }
   }
	if( ! alsoSend ){
		http_request.open('GET', url, true);
//		http_request.setRequestHeader('Connection', 'close');
		http_request.send(null);
		}
	else {
		http_request.open('POST', url, true);
		http_request.setRequestHeader( 'Content-Type', 'application/x-www-form-urlencoded' );
		http_request.send( alsoSend );
		}
	}

// how may be 'insert', 'append', 'prepend'
function AjaxCall( url2fetch, div2update, how ){
	if( how == 'insert' )
		addHtmlToElement( div2update, 'insert', 'loading ...' );

	if( how == 'insertNoProgress' )
		how = 'insert';

	functionParamsString = '"' + div2update + '", "' + how + '"';

	if( arguments.length > 3 && arguments[ 3 ] )
		alsoSend = arguments[ 3 ];
	else
		alsoSend = '';

	makeHttpRequest( url2fetch, 'addHtmlToElement', functionParamsString, false, alsoSend );
	}

// how may be 'insert', 'append', 'prepend'
function addHtmlToElement( elementName, how, code ){
	ele = document.getElementById( elementName );
	if( ! ele ){
		alert( 'cannot find ' + elementName );
		}

	switch( how ){
		case 'insert':
			ele.innerHTML = code;
			break;
		case 'append':
			ele.innerHTML += code;
			break;
		case 'prepend':
			ele.innerHTML = code + ele.innerHTML;
			break;
		}

	ele.style.visibility = "visible";
	ele.style.display = "block";

	jsCode = extractJavascript( code );
	if( jsCode )
		eval( jsCode );
	}

function extractJavascript( code ){
	jsCode = '';
	myRe = /\<script.*?>((\n|\r|.)*?)<\/script>/i;
	myArray = myRe.exec( code );
	if( myArray && myArray .length > 1 )
		jsCode = myArray[1];

	return jsCode;
	}

function createQueryFromForm( myForm ){
	var elements = myForm.elements;
	var pairs = new Array();

	for (var i = 0; i < elements.length; i++) {
		if ((name = elements[i].name) && (value = elements[i].value))
			pairs.push(name + "=" + encodeURIComponent(value));
		}

	return pairs.join("&");
	}

keepClassesIndexes = new Array();
keepClassesNames = new Array();

function setClass( itemId, cssClassName, rememberOld ){
	if( rememberOld == null ){
		rememberOld = false;
		}

	ele = document.getElementById( itemId );
	if( rememberOld ){
		myIndex = 0;
		len = keepClassesIndexes.length;
		for( i = 0; i < len; i++ ){
			if( keepClassesIndexes[i] == itemId ){
				myIndex = i + 1;
				break;
				}
			}
		if( myIndex )
			myIndex = myIndex - 1;
		else {
			myIndex = len;
			keepClassesIndexes[ myIndex ] = itemId;
			}

		keepClassesNames[ myIndex ] = ele.className;
		}

	ele.className = cssClassName;
	}

function returnClass( itemId ){
	ele = document.getElementById( itemId );

	len = keepClassesIndexes.length;
	for( i = 0; i < len; i++ ){
		if( keepClassesIndexes[i] == itemId ){
			myIndex = i + 1;
			break;
			}
		}
	if( myIndex ){
		myIndex = myIndex - 1;
		ele.className = keepClassesNames[ myIndex ];
		}
	}

function collapseObjectList( expanderDivId, listDivId ){
	_hideElement( listDivId );
	expanderCollapsed( expanderDivId, listDivId );
	}
function expanderExpanded( divId, targetDiv ){
	var laDiv = new myDiv( divId );
	newCode = "<A HREF=\"javascript:void(0)\" onClick=\"javascript:collapseObjectList('" + divId + "', '" + targetDiv + "')\">-</A>";
	laDiv.setContent( newCode );
	}
function expanderCollapsed( divId, targetDiv ){
	var laDiv = new myDiv( divId );
	newCode = "<A HREF=\"javascript:void(0)\" onClick=\"javascript:_showElement('" + targetDiv + "'); expanderExpanded('" + divId + "', '" + targetDiv + "')\">+</A>";
	laDiv.setContent( newCode );
	}

// FADERS
var hcFadeColor= new Array();
hcFadeColor[1] = "ff";
hcFadeColor[2] = "ee";
hcFadeColor[3] = "dd";
hcFadeColor[4] = "cc";
hcFadeColor[5] = "bb";
hcFadeColor[6] = "aa";
hcFadeColor[7] = "99";
hcFadeColor[8] = "88";
hcFadeColor[9] = "77";
hcFadeColor[10] = "66";

function hcFadeMe( fadingElement ){
	if (document.getElementById(fadingElement)){
		setTimeout( "hcFadeIn('" + fadingElement + "', 10)", 100 );
		}
	}
function hcFadeIn( fadingElement, where ){
	if ( where >= 1 ){
		document.getElementById(fadingElement).style.backgroundColor = "#ffff" + hcFadeColor[where];
		if (where > 1) {
			where -= 1;
			setTimeout( "hcFadeIn('" + fadingElement + "', " + where + ")", 100);
			}
		else {
			where -= 1;
			document.getElementById(fadingElement).style.backgroundColor = "transparent";
			}
		}
	}

function hcFadeMeOut( fadingElement ){
	if (document.getElementById(fadingElement)){
		setTimeout( "hcFadeOut('" + fadingElement + "', 1)", 100 );
		}
	}
function hcFadeOut( fadingElement, where ){
	if ( where <= 9 ){
		document.getElementById(fadingElement).style.backgroundColor = "#ffff" + hcFadeColor[where];
		if (where < 9) {
			where += 1;
			setTimeout( "hcFadeOut('" + fadingElement + "', " + where + ")", 100);
			}
		else {
			where += 1;
			document.getElementById(fadingElement).style.backgroundColor = "transparent";
			_hideElement( fadingElement );
			}
		}
	}
