function ShowSelect(show, x1a, y1a, x2a, y2a)
{
	var	originalWidth, originalHeight;
	var formObjectType;
	var visibility = show ? 'visible' : 'hidden';
	for ( var i = 0; i < document.forms.length; i++ )
	{
		for ( var j = 0; j < document.forms[ i ].length; j++ )
		{
			formObjectType = document.forms[ i ][ j ].type
			if( (!show && formObjectType == 'select-one') || (show && document.forms[ i ][ j ].elementHTML)) {
				if (checkIntersection(x1a, y1a, x2a, y2a, 
						getx(document.forms[ i ][ j ]),
						gety(document.forms[ i ][ j ]),
						(getx(document.forms[ i ][ j ])+document.forms[ i ][ j ].offsetWidth),
						(gety(document.forms[ i ][ j ])+document.forms[ i ][ j ].offsetHeight)
					))
				{
					// avoid IE blinking
					originalWidth = document.forms[ i ][ j ].offsetWidth;
					document.forms[ i ][ j ].style.visibility = 'hidden';
				
					transformElement(document.forms[ i ][ j ]);
					
					// avoid IE blinking
					document.forms[ i ][ j ].style.width = originalWidth;
					document.forms[ i ][ j ].style.visibility = 'visible';
			  }
			}
		}
	}
}

function transformElement (objectElement)
{
	var objectElement,
		strElement,
		htmlElement,
		originalWidth;

	if (objectElement != null)
	{
		// avoid IE blinking
		originalWidth = objectElement.offsetWidth;

		if (objectElement.tagName == 'SELECT')
		{
			strElement  = objectElement.outerHTML;
			htmlElement = objectElement.outerHTML;

			strElement = strElement.substring (strElement.indexOf (" "), strElement.indexOf (">"));

//			htmlElement = encodeTags (htmlElement);
			htmlElement = htmlElement.replace (/</g, '&amp;lt;');
			htmlElement = htmlElement.replace (/>/g, '&amp;gt;');
			htmlElement = htmlElement.replace (/\"/g, '\'');

			objectElement.outerHTML = '<input type="text" class="w_sel" ' + strElement +
				' value="' + objectElement.options [objectElement.options.selectedIndex].text +
				'" elementHTML="' + htmlElement + '" />';
		}
		else
		{
			htmlElement = objectElement.elementHTML;
//			htmlElement = decodeTags (htmlElement);
			htmlElement = htmlElement.replace (/&lt;/g, '<');
			htmlElement = htmlElement.replace (/&gt;/g, '>');
			htmlElement = htmlElement.replace (/\'/g, '\"');

			objectElement.outerHTML = htmlElement;
		}
		
		return true;
	}

	return false;
}

function checkIntersection(x1a, y1a, x2a, y2a, x1b, y1b, x2b, y2b)
{
	var
		x1 = Math.max(x1a, x1b),
		x2 = Math.min(x2a, x2b),
		y1 = Math.max(y1a, y1b),
		y2 = Math.min(y2a, y2b);

	if ((x1 > x2) || (y1 > y2))
		return false;
	else
		return true;
}

//////////////////////////////////////////////////////////////////////////////
//
// Get layer position
//
//////////////////////////////////////////////////////////////////////////////

function gety(element, topId)
{
	var y = 0;

	while (element != null)
	{
		if ( element.nodeName != 'BODY' )
		{
			y += element.offsetTop - element.scrollTop;
		}
		else
		{
			y += element.offsetTop;
		}

		element = element.offsetParent;
		if(topId && element && topId == element.id) break;
	}

	return y;
}

function getx(element)
{
	var x = 0;

	while (element != null)
	{
		if ( element.nodeName != 'BODY' )
		{
			x += element.offsetLeft - element.scrollLeft;
		}
		else
		{
			x += element.offsetLeft;
		}

		element = element.offsetParent;
	}

	return x;
}
