var currentMenu = 0;
var elementsCache = new Object();

function SubNavMenu(){ //v1.1.0.2 by PVII-www.projectseven.com
return;
//	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 + "px";
			lg[k].style.top = (myTop - 0) + "px";
			}
		}
	}
	
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 _deleteElement( elementId ){
	var thisElement = new myDiv( elementId );
	if( thisElement && (! thisElement.isHidden()) ){
		elementsCache[elementId] = thisElement.getContent();
		thisElement.hide();
		thisElement.setContent( '' );
		}
	return true;
	}

function _restoreElement( elementId ){
	var thisElement = new myDiv( elementId );
	if( thisElement && thisElement.isHidden() ){
		thisElement.show();
		if( elementsCache[elementId] ){
			thisElement.setContent( elementsCache[elementId] );
			}
		}
	return true;
	}

function _hideElement( elementId ){
	var thisElement = new myDiv( elementId );
	if( thisElement )
		thisElement.hide();
	return true;
	}

function _toggleElement( elementId ){
	if( arguments.length > 1 && arguments[ 1 ] )
		inline = true;
	else
		inline = false;

	var thisElement = new myDiv( elementId );
	if( thisElement ){
		if( thisElement.isHidden() ){
			_showElement( elementId, inline );
			}
		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.showScroll = showScroll;
	this.hide = hide;
	this.isHidden = isHidden;
	this.setContent = setContent;
	this.getContent = getContent;
	this.setBackground = setBackground;
	this.setWidth = setWidth;
	this.setHeight = setHeight;
	this.setMaxHeight = setMaxHeight;
	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 getContent(){
	return this.htmlDiv.innerHTML;
	}
function getLeft(){
	return fetchObjectPosLeft( this.htmlDiv );
	}
function setLeft( left ){
	if( left < 0 )
		left = 5;

	// take into account the parent as well
	var elm = this.htmlDiv;
	var parentLeft = 0;
	while((elm = elm.offsetParent) != null){
		parentLeft += elm.offsetLeft;
		}
	
	this.htmlDiv.style.left = left - parentLeft;
	}
function setRight( right ){
	this.htmlDiv.style.right = right;
	}
function getPadding(){
	return this.htmlDiv.style.paddingLeft;
	}
function getTop(){
	return fetchObjectPosTop( this.htmlDiv );
	}
function setTop( top ){
	// take into account the parent as well
	var elm = this.htmlDiv;
	var parentTop = 0;
	while((elm = elm.offsetParent) != null){
		parentTop += elm.offsetTop;
		}
	this.htmlDiv.style.top = top - parentTop;
	}
function setWidth( width ){
	this.htmlDiv.style.width = width;
	}
function getWidth(){
	return this.htmlDiv.offsetWidth;
	}
function setHeight( height ){
	this.htmlDiv.style.height = height;
	}
function setMaxHeight( height ){
	this.htmlDiv.style.maxHeight = height;
	}
function getHeight(){
	return this.htmlDiv.offsetHeight;
	}
function show(){
//	this.htmlDiv.style.display = "inherit";
	this.htmlDiv.style.display = "block";
	}
function showScroll(){
	this.show();
	window.scrollTo( this.getLeft(), this.getTop() );
	}
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 );
			}
		}
	}

function hcStrRepeat(i, m) { for (var o = []; m > 0; o[--m] = i); return(o.join('')); }

function hcSprintf () {
  var i = 0, a, f = arguments[i++], o = [], m, p, c, x;
  while (f) {
    if (m = /^[^\x25]+/.exec(f)) o.push(m[0]);
    else if (m = /^\x25{2}/.exec(f)) o.push('%');
    else if (m = /^\x25(?:(\d+)\$)?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-fosuxX])/.exec(f)) {
      if (((a = arguments[m[1] || i++]) == null) || (a == undefined)) throw("Too few arguments.");
      if (/[^s]/.test(m[7]) && (typeof(a) != 'number'))
        throw("Expecting number but found " + typeof(a));
      switch (m[7]) {
        case 'b': a = a.toString(2); break;
        case 'c': a = String.fromCharCode(a); break;
        case 'd': a = parseInt(a); break;
        case 'e': a = m[6] ? a.toExponential(m[6]) : a.toExponential(); break;
        case 'f': a = m[6] ? parseFloat(a).toFixed(m[6]) : parseFloat(a); break;
        case 'o': a = a.toString(8); break;
        case 's': a = ((a = String(a)) && m[6] ? a.substring(0, m[6]) : a); break;
        case 'u': a = Math.abs(a); break;
        case 'x': a = a.toString(16); break;
        case 'X': a = a.toString(16).toUpperCase(); break;
      }
      a = (/[def]/.test(m[7]) && m[2] && a > 0 ? '+' + a : a);
      c = m[3] ? m[3] == '0' ? '0' : m[3].charAt(1) : ' ';
      x = m[5] - String(a).length;
      p = m[5] ? hcStrRepeat(c, x) : '';
      o.push(m[4] ? a + p : p + a);
    }
    else throw ("Huh ?!");
    f = f.substring(m[0].length);
  }
  return o.join('');
}

window.hcSize = function()
{
	var w = 0;
	var h = 0;

	//IE
	if(!window.innerWidth)
	{
		//strict mode
		if(!(document.documentElement.clientWidth == 0))
		{
			w = document.documentElement.clientWidth;
			h = document.documentElement.clientHeight;
		}
		//quirks mode
		else
		{
			w = document.body.clientWidth;
			h = document.body.clientHeight;
		}
	}
	//w3c
	else
	{
		w = window.innerWidth;
		h = window.innerHeight;
	}
	return {width:w,height:h};
}

function hcGetScrollXY(){
	var x = 0, y = 0;
	if( typeof( window.pageYOffset ) == 'number' ){
		// Netscape
		x = window.pageXOffset;
		y = window.pageYOffset;
		}
	else if( document.documentElement && ( document.documentElement.scrollLeft || document.documentElement.scrollTop ) ){
		// IE6 standards compliant mode
		x = document.documentElement.scrollLeft;
		y = document.documentElement.scrollTop;
		}
	else if( document.body && ( document.body.scrollLeft || document.body.scrollTop ) ){
		// DOM
		x = document.body.scrollLeft;
		y = document.body.scrollTop;
		}
	return [x, y];
	}
