var small_move_max_step = 14;
var small_move_min_step = 1;

var et_content_obj = null;
var et_contentPlace_obj = null;
var et_ScrollButton_obj = null;
var et_ScrollBar_obj = null;
var et_ScrollButtonImg_obj = null;

var et_scroll_callback_id = null;

var step_size = 0;

var _et_mouse_y = 0;
var _et_mouse_y_doc = 0;

var AgntUsr=navigator.userAgent.toLowerCase();
var ExpYes = ( AgntUsr.indexOf('msie')!=-1 && AgntUsr.indexOf('opera') == -1  ) ? 1 : 0;


//var et_alert_place_obj = null;

function et_content_init() {
	et_contentPlace_obj = document.getElementById( 'et_contentPlace' );
	if ( !et_contentPlace_obj )	{
		alert( 'Nem található az et_contentPlace_obj terület.' );
		return false;
	}
	et_content_obj = document.getElementById( 'et_contentMove' );
	if ( !et_content_obj )	{
		alert( 'Nem található az et_contentMove terület.' );
		return false;
	}

	//et_alert_place_obj = document.getElementById( 'et_alert_place' );
	//et_alert_place_obj.innerHTML = '<br>';

	
	if ( typeof( et_contentPlace_obj.offsetHeight ) != 'undefined' ) {
		et_contentPlace_obj.c2_Height = et_contentPlace_obj.offsetHeight;
	} else {
		et_contentPlace_obj.c2_Height = et_contentPlace_obj.clientHeight;
	}

	if ( typeof( et_content_obj.offsetHeight ) != 'undefined' ) {
		et_content_obj.c2_Height = et_content_obj.offsetHeight;
	} else {
		et_content_obj.c2_Height = et_content_obj.clientHeight;
	}

	if ( et_contentPlace_obj.c2_Height -50 < et_content_obj.c2_Height ) {
		_et_init_scrollbar();
	} else {
		et_content_obj.onmousewheel = null;
	}
}

function _et_init_scrollbar () {
	output = '<table width=24 height=249 border=0 cellpadding=0 cellspacing=0>'+ "\n";
	output += '	<tr>'+ "\n";
    output += '		<td height="25" align="center" valign="bottom"><a href="javascript:;" onmousedown="et_content_move_down()" onmouseup="et_content_move_stop()" onmouseout="et_content_move_stop()" class="img_link"><img src="/images/up.gif" width="14" height="16" border="0"></a></td>'+ "\n";
    output += '	</tr>'+ "\n";
	output += '	<tr>'+ "\n";
	output += '		<td id="et_ScrollBar" height="200" align="center" valign="top" background="/images/scroll_bg.gif"><div id="et_ScrollBar"'+ "\n";
	output += '			style="position: ';
	
	if ( ExpYes ) {
		output += 'static';
	} else {
		output += 'relative';
	}

	output += '; width: 24px; height: 200px; overflow: hidden;" onmousewheel="et_move_by_wheel(); return false;"><div id="et_ScrollButton" '+ "\n";
	output += '			style="position: absolute; left: 0px; top: 0px; width: 24px; height: 4px; vertical-align: middle; z-index: 5000;" class="scrollbar_buttun"><img id="et_ScrollButtonImg" src="/images/scroll_button.gif" width="24" height="4" border="0"></div></div></td>'+ "\n";
	output += '	</tr>'+ "\n";
	output += '	<tr>'+ "\n";
	output += '		<td height="24" align="center" valign="top"><a href="javascript:;" onmousedown="et_content_move_up()" onmouseup="et_content_move_stop()" onmouseout="et_content_move_stop()" class="img_link"><img src="/images/down.gif" width="14" height="16" border="0"></a></td>'+ "\n";
	output += '	</tr>'+ "\n";
	output += '</table>';

	et_ScrollBar_place_obj = document.getElementById( 'et_ScrollBar_place' );
	et_ScrollBar_place_obj.innerHTML = output;

	et_content_obj.et_topPosition = 0;
	et_content_obj.style.top = '0px';	
		
	et_ScrollButton_obj = document.getElementById( 'et_ScrollButton' );	
	et_ScrollButton_obj.et_pos = 0;	
	et_ScrollButton_obj.et_button_height = 4;

	et_ScrollBar_obj = document.getElementById( 'et_ScrollBar' );
	et_ScrollBar_obj.et_height = 200 - et_ScrollButton_obj.et_button_height;
	et_ScrollBar_obj.et_draging = false;
	et_ScrollBar_obj.onmousedown = et_scroll_button_drag;
	et_ScrollBar_obj.onmousemove = null;
	et_ScrollBar_obj.onmouseup = null;
	
	et_ScrollButtonImg_obj = document.getElementById( 'et_ScrollButtonImg' );
	if ( !ExpYes ) {
		et_ScrollButtonImg_obj.onmousedown = _et_scroll_button_img_drag;
	} else {
		et_ScrollButtonImg_obj.ondragstart = _et_scroll_button_img_drag;
	}

	et_ScrollButton_obj.et_mouse_over = false;
	et_ScrollButton_obj.onmouseover = _et_scroll_button_mouse_over;
	et_ScrollButton_obj.onmouseout = _et_scroll_button_mouse_out;

	if ( !ExpYes ) {		
		et_ScrollBar_obj.onmousemove = _et_handle_mouse_move;
	}
}

function _et_scroll_button_img_drag ( e ) {
	et_ScrollButton_obj.et_mouse_over = true;
	et_scroll_button_drag( e );
	return false;
}

function _et_handle_mouse_move ( e ) {
	if ( typeof( e.layerY ) != 'undefined' ) {
		_et_mouse_y = e.layerY;
	} else if ( typeof( e.offsetY ) != 'undefined' ) {
		_et_mouse_y = e.offsetY;
	}
	
	_et_mouse_y_doc = e.clientY;	

	if( et_ScrollButton_obj.et_mouse_over ) {
		_et_mouse_y += et_ScrollButton_obj.et_pos;
	}

	//et_alert_place_obj.innerHTML = '_et_mouse_y: '+ _et_mouse_y +' _et_mouse_y_doc: '+ _et_mouse_y_doc;
}


function _et_get_mouse_y () {
	if ( ExpYes ) {
		_et_mouse_y = event.offsetY;
		if( et_ScrollButton_obj.et_mouse_over ) {
			_et_mouse_y += et_ScrollButton_obj.et_pos;
		}
	}
	return _et_mouse_y;
}

function _et_get_mouse_y_doc () {
	if ( ExpYes ) {
		return event.clientY;
	} else {
		return _et_mouse_y_doc;
	}	
}

function _et_scroll_button_mouse_over () {
	et_ScrollButton_obj.et_mouse_over = true;
}

function _et_scroll_button_mouse_out () {
	et_ScrollButton_obj.et_mouse_over = false;
}

function _et_set_scroll_button ( pos_percent ) {
	et_ScrollButton_obj.et_pos = Math.round( et_ScrollBar_obj.et_height * pos_percent );
	if ( et_ScrollButton_obj.et_pos < 0 ) {
		et_ScrollButton_obj.et_pos = 0;
	} else {
		if ( et_ScrollButton_obj.et_pos > et_ScrollBar_obj.et_height ) {
			et_ScrollButton_obj.et_pos = et_ScrollBar_obj.et_height	;
		}	
	}
	et_ScrollButton_obj.style.top = et_ScrollButton_obj.et_pos + 'px';
}

function _et_content_scroll_step() {
	stop = (step_size == 0);
	if ( step_size > 0 ) {
		stop = (et_content_obj.et_topPosition >= 0);
	} else {
		if ( step_size < 0 ) {
			stop = (et_content_obj.et_topPosition < -et_content_obj.c2_Height +300);
		}
	}

	//et_alert_place_obj.innerHTML = 'stop: '+ stop +' et_content_obj.et_topPosition: '+ et_content_obj.et_topPosition +' et_content_obj.c2_Height: '+ et_content_obj.c2_Height;

	if ( stop )	{
		et_content_move_stop();
	} else {
		if ( step_size > 0 ) {
			if ( step_size < small_move_max_step ) {
				step_size++;
			}
		} else {
			if ( step_size > -small_move_max_step ) {
				step_size--;
			}
		}
		et_content_obj.et_topPosition += step_size;
		if ( et_content_obj.et_topPosition > 0 ) {
			et_content_obj.et_topPosition = 0;
		} else if ( et_content_obj.et_topPosition < -et_content_obj.c2_Height +300 ) {
			et_content_obj.et_topPosition = -et_content_obj.c2_Height +300
		}
		_et_set_scroll_button( et_content_obj.et_topPosition / (-et_content_obj.c2_Height +300) );
		et_content_obj.style.top = et_content_obj.et_topPosition + 'px';
	}
}

function et_content_move_stop() {
	clearInterval( et_scroll_callback_id );
	step_size = 0;
}

function et_content_move_down() {
	if ( step_size == 0 ) {
		step_size = small_move_min_step;
		_et_content_scroll_step();
		et_scroll_callback_id = setInterval( '_et_content_scroll_step()', 40 );
		
	}
}

function et_content_move_up( step_type ) {
	if ( step_size == 0 ) {
		step_size = -small_move_min_step;
		_et_content_scroll_step();
		et_scroll_callback_id = setInterval( '_et_content_scroll_step()', 40 );
		
	}
}

function _et_scroll_button_move_to ( p_pos ) {
	et_ScrollButton_obj.et_pos = Math.round( p_pos);
	if ( et_ScrollButton_obj.et_pos < 0 ) {
		et_ScrollButton_obj.et_pos = 0;
	} else {
		if ( et_ScrollButton_obj.et_pos > et_ScrollBar_obj.et_height ) {
			et_ScrollButton_obj.et_pos = et_ScrollBar_obj.et_height	;
		}	
	}
	et_ScrollButton_obj.style.top = et_ScrollButton_obj.et_pos + 'px';

	// ---- dokumentum mozgatása ----
	et_content_obj.et_topPosition = Math.round( (-et_content_obj.c2_Height +300) * et_ScrollButton_obj.et_pos / et_ScrollBar_obj.et_height );
	et_content_obj.style.top = et_content_obj.et_topPosition + 'px';
}

function et_handle_drag ( e ) {
	if ( !ExpYes ) {
		_et_handle_mouse_move( e );
	}

	_et_scroll_button_move_to( _et_get_mouse_y() - et_ScrollButton_obj.et_drag_point );
}

function et_handle_drag_doc ( e ) {
	if ( !ExpYes ) {
		_et_handle_mouse_move( e );
	}
	
	_et_scroll_button_move_to( _et_get_mouse_y_doc() - et_ScrollButton_obj.et_drag_point - et_ScrollButton_obj.et_client_top );
	if ( typeof( document.et_old_onmousemove ) == 'function' ) {
		return document.et_old_onmousemove();
	} else {
		return false;
	}
}

function _et_document_onmouseup () {
	et_scroll_button_drag_stop();
	if ( typeof( document.et_old_onmouseup ) == 'function' ) {
		return document.et_old_onmouseup();
	} else {
		return false;
	}
}

function et_scroll_button_drag_stop () {
	document.onmousemove = document.et_old_onmousemove;
	document.onmouseup = document.et_old_onmouseup;
	et_ScrollBar_obj.onmousemove = null;
	et_ScrollButton_obj.onmouseup = null;
	et_ScrollBar_obj.onmouseup = null;

	et_ScrollBar_obj.et_draging = false;
}

function et_scroll_button_drag ( e ) {
	if ( !ExpYes ) {
		_et_handle_mouse_move( e );
	}

	et_mouse_y = _et_get_mouse_y();

	//et_alert_place_obj.innerHTML = 'et_mouse_y: '+ et_mouse_y;

	if ( et_mouse_y < et_ScrollButton_obj.et_pos - 2 || et_ScrollButton_obj.et_pos + et_ScrollButton_obj.et_button_height + 2 < et_mouse_y) {
		// ---- odamozgatás ---
		_et_scroll_button_move_to( et_mouse_y - et_ScrollButton_obj.et_button_height/2 );
	} else {
		
		if ( !et_ScrollBar_obj.et_draging ) {
			// ---- vonszolás indítása ---
			et_ScrollButton_obj.et_drag_point = et_mouse_y - et_ScrollButton_obj.et_pos;
			et_ScrollButton_obj.et_client_top = _et_get_mouse_y_doc() - et_mouse_y;

			document.et_old_onmouseup = document.onmouseup;
			document.onmouseup = _et_document_onmouseup;
			et_ScrollButton_obj.onmouseup = et_scroll_button_drag_stop;
			et_ScrollBar_obj.onmouseup = et_scroll_button_drag_stop;
			document.et_old_onmousemove = document.onmousemove;
			document.onmousemove = et_handle_drag_doc;
			et_ScrollBar_obj.onmousemove = et_handle_drag;

			et_ScrollBar_obj.et_draging = true;
		}
	}
}


function et_move_by_wheel() {
	step_size = Math.round( event.wheelDelta / 6 );
	_et_content_scroll_step();
	return false;
}
