
function v$(id) {
	if (typeof(id) == 'string') {
		return document.getElementById(id);
	}
	else {
		return id;
	}
}

function FixEvent(event) {
	if (window.event) {
		var event = window.event;
		event.target = event.srcElement;
	}
	else {
		var event = event;
	}
	return event;
}

function AttachEvent(element, event, func) {
	if (element.addEventListener) {
		element.addEventListener(event.toLowerCase(), func, false);
	}
	else {
		element.attachEvent('on' + event.toLowerCase(), func);
	}
}

function DetachEvent(element, event, func) {
	if (element.removeEventListener) {
		element.removeEventListener(event.toLowerCase(), func, false);
	}
	else {
		element.detachEvent('on' + event.toLowerCase(), func);
	}
}

function ShowHide(Element_ID, Show) {
	var Element = v$(Element_ID);
	if (Element) {
		Show = eval(Show)
		if (typeof(Show) == 'undefined' && Element.style['display'] != 'none' || Show == false) {
			Element.style['display'] = 'none';
			return false;
		}
		else {
			Element.style['display'] = '';
			return true;
		}
	}
}


function vPlacement(element) {
	var isSafari = false;
	var foundPositionedElement = false;
	
	if (navigator.vendor) {
		if (navigator.vendor.toLowerCase().indexOf('apple') != -1) {
			isSafari = true;
			var getComputedStyle = document.defaultView.getComputedStyle;
		}
	}
	
	var left = element.offsetLeft;
	var top = element.offsetTop;
	var parent = element.offsetParent;
	while (parent) {
		left += parent.offsetLeft;
		top += parent.offsetTop;
		
		var position = computedStyle(parent, 'position', 'position');
		if (parent.nodeName.toLowerCase() != 'body') {
			left -= parent.scrollLeft;
			top -= parent.scrollTop;
		}
		if (position == 'absolute' || position == 'relative') {
			foundPositionedElement = true;
		}

		if (document.all) {
			if (parent.nodeName.toUpperCase() == 'TABLE') {
				left += (parseFloat(parent.border) || 0) ? 1 : 0;
				top += (parseFloat(parent.border) ||  0) ? 1 : 0;
			}
		}
		else if (isSafari) {
			if (parent.nodeName.toUpperCase() == 'TD' || parent.nodeName.toUpperCase() == 'TABLE') {
				left += parseFloat(getComputedStyle(parent, null).getPropertyValue('border-left-width')) || 0;
				top += parseFloat(getComputedStyle(parent, null).getPropertyValue('border-top-width')) || 0;
			}
		}
		parent = parent.offsetParent;
	}
	delete(parent);
	if (foundPositionedElement) {
		left += document.documentElement.scrollLeft || document.body.scrollLeft;
		top += document.documentElement.scrollTop || document.body.scrollTop;
	}
	return {'left':left, 'top':top, 'width':element.offsetWidth, 'height':element.offsetHeight}
}

// 05/08/2007 - vTrim() Added by ERW1N GUNG0N - changed to regex brad
function vTrim(arg_value) {
	return arg_value.toString().replace(/^[\s]+|[\s]+$/g, '');
}


function computedStyle(element, ieStyle, ffStyle) {
		if (element.currentStyle) {
			return element.currentStyle[ieStyle];
		}
		else if (document.defaultView && document.defaultView.getComputedStyle) {
			return document.defaultView.getComputedStyle(element, null).getPropertyValue(ffStyle);
		}
		else {
			return element.style[ieStyle];
		}
}

