function get(id)
{
	return document.getElementById(id);
}

function addEvent(elem, type, handler){
	if (elem.addEventListener){
		elem.addEventListener(type, handler, false)
	} else {
		elem.attachEvent("on"+type, handler)
	}
}

function dBlockEvent(event)
{
	if (!event) {
		event = window.event;
	}
	if (event.stopPropagation) event.stopPropagation();
	else event.cancelBubble = true;
	if (event.preventDefault) event.preventDefault();
	else event.returnValue = false;
}

// *******************************************

var max_position = 0;
var min_position = 0;
var current_slider = null;
var current_timer = null;

function decrement_position()
{
	var x = current_slider.offsetLeft - 10;
	if (x < min_position)
	{
		current_slider.style.left = min_position + 'px';
	} else {
		current_slider.style.left = x + 'px';
		current_timer = setTimeout(decrement_position, 10);
	}
}

function increment_position()
{
	var x = current_slider.offsetLeft + 10;
	if (x > max_position)
	{
		current_slider.style.left = max_position + 'px';
	} else {
		current_slider.style.left = x + 'px';
		current_timer = setTimeout(increment_position, 10);
	}
}

function SlideRightDown(box_id, content_id, w)
{
	if (typeof w == 'undefined') w = 0;
	max_position = 0;
	min_position = get(box_id).offsetWidth - (get(content_id).offsetWidth - w);
	min_position = ((min_position > -w) ? -w : min_position);
	current_slider = get(box_id);

	SlideUp();
	current_timer = setTimeout(decrement_position, 1);
}

function SlideLeftDown(box_id, content_id, w)
{
	if (typeof w == 'undefined') w = 0;
	max_position = w;
	min_position = get(box_id).offsetWidth - get(content_id).offsetWidth;
	min_position = ((min_position > 0) ? 0 : min_position);
	current_slider = get(box_id);

	SlideUp();
	current_timer = setTimeout(increment_position, 1);
}

function SlideUp()
{
	if (current_timer != null)
	{
		clearTimeout(current_timer);
		current_timer = null;
	}
}

// *******************************************

var dWheelElementActive = new Array();

function dScrollObject(elem, wheelDelta)
{
	var slider = get(elem.id);
	var x = 0;
	if (wheelDelta > 0)
	{
		if (dWheelElementActive[elem.id].type == 1)
		{
			x = slider.offsetLeft + dWheelElementActive[elem.id].step;
		} else {
			x = slider.offsetTop + dWheelElementActive[elem.id].step;
		}
		if (x > dWheelElementActive[elem.id].max)
		{
			x = dWheelElementActive[elem.id].max;
		}
		if (dWheelElementActive[elem.id].type == 1)
		{
			slider.style.left = x + 'px';
		} else {
			slider.style.top = x + 'px';
		}
	} else {
		if (dWheelElementActive[elem.id].type == 1)
		{
			x = slider.offsetLeft - dWheelElementActive[elem.id].step;
		} else {
			x = slider.offsetTop - dWheelElementActive[elem.id].step;
		}
		if (x < dWheelElementActive[elem.id].min)
		{
			x = dWheelElementActive[elem.id].min;
		}
		if (dWheelElementActive[elem.id].type == 1)
		{
			slider.style.left = x + 'px';
		} else {
			slider.style.top = x + 'px';
		}
	}
}

function dWheel(event)
{
	var wheelDelta = 0;
	if (!event) {
		event = window.event;
	}

	if (event.wheelDelta) {
		wheelDelta = event.wheelDelta / 120;
	} else if (event.detail) {
		wheelDelta = -event.detail / 3;
	}
	if (wheelDelta != 0) {
		dScrollObject(this, wheelDelta);
	}
	if (event.preventDefault) {
		event.preventDefault();
	}
	event.returnValue = false;
	dBlockEvent(event);
}

function dScrollMouseWheel(id, step, min, max, type)
{
	dWheelElementActive[id] = {"step": step, "type": type, "min": min, "max": max};
	jQuery('#' + id).mouseover(function(e){
		if (e.currentTarget.addEventListener) {
			addEvent(e.currentTarget, 'DOMMouseScroll', dWheel);
		}
		e.currentTarget.onmousewheel = dWheel;
	});
}

// *******************************************

var array_selecters = new Array();

function dSELECT(name, id, values, selected, label, width, height)
{
	label = ((label == undefined) ? '' : label);
	width = ((width == undefined) ? '100' : width);
	height = ((height == undefined) ? '' : height);
	var result = '<table border="0" cellspacing="0" cellpadding="0"><tbody>'+
		'<tr>'+
		'	<td style="vertical-align: bottom;">'+
		'		<div id="select_table_'+id+'" style="z-index: 200; position: absolute; display: none; background-color: #FFFFFF; border: 1px; border-style: solid; border-color: #909090;">'+
		'		<table id="select_table_box_'+id+'" border="0" cellspacing="0" cellpadding="4">';

	var i = true;
	for(var key in values)
	{
		if (i)
		{
			selected = ((selected == undefined) ? key : selected);
			i = false
		}
		result = result + '		<tr onmouseover="this.style.backgroundColor = \'#e0f5ff\';" onmouseout="this.style.backgroundColor = \'#FFFFFF\';">'+
		'			<td align="left" onclick="document.getElementById(\''+id+'\').value = \''+key+'\'; document.getElementById(\'select_view_'+id+'\').innerHTML = \''+values[key]+'\';" nowrap><div unselectable="on" style="cursor: default; user-select: none; -o-user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; font-family: Arial; font-size: 12px;">'+values[key]+'</div></td>'+
		'		</tr>';
	}

	result = result + '		</table>'+
		'		</div>'+
		'		<input id="'+id+'" type="hidden" name="'+name+'" value="'+selected+'">'+
		'	</td>'+
		'	<td style="background-color: #FFFFFF; border: 1px; border-style: solid; border-color: #909090;">'+
		'		<table border="0" cellspacing="0" cellpadding="0">'+
		'		<tr style="cursor: default;" onclick="jQuery(\'#select_table_box_'+id+'\').width(jQuery(\'#select_label_'+id+'\').width() + jQuery(\'#select_result_'+id+'\').width() + jQuery(\'#select_button_'+id+'\').width() + '+((label == '') ? '9' : '13')+'); if (document.getElementById(\'select_table_'+id+'\').style.display == \'none\') {jQuery(\'#select_table_'+id+'\').slideDown(100);}else{jQuery(\'#select_table_'+id+'\').slideUp(100);}">'+
		'			<td id="select_label_'+id+'" style="padding-left: 4px;'+((label == '') ? '' : ' padding-right: 4px;')+'"><div unselectable="on" style="user-select: none; -o-user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none;"><div unselectable="on" style="user-select: none; -o-user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; font-family: Arial; font-size: 12px; color: #A0A0A0; line-height: 19px;">'+label+'</div></div></td>'+
		'			<td id="select_result_'+id+'" width="'+width+'" nowrap><div id="select_view_'+id+'" unselectable="on" style="user-select: none; -o-user-select: none; -moz-user-select: none; -khtml-user-select: none; -webkit-user-select: none; font-family: Arial; font-size: 12px; color: #000000;'+((height == '') ? '' : ' line-height: '+height+'px;')+'" nowrap>'+values[selected]+'</div></td>'+
		'			<td id="select_button_'+id+'" style="padding: 1px; padding-left: 4px; padding-right: 1px;"><img src="/images/button_select.png" width="13" height="13" border="0" alt=""></td>'+
		'		</tr>'+
		'		</table>'+
		'	</td>'+
		'</tr>'+
		'</tbody></table>';

	array_selecters.push('select_table_'+id);

	return result;
}

jQuery(document).ready(function () {
	if (document.html)
	{
		jQuery(document.html).mouseup(function(){
			for(var key in array_selecters)
			{
				if (document.getElementById(array_selecters[key]))
				{
					if (document.getElementById(array_selecters[key]).style.display == 'block')
					{
						jQuery('#'+array_selecters[key]).slideUp(100);
					}
				}
			}
		});
	}
});


