/**
 * slide script
 * @author : Eunchul, Jung (eunchul@iorchard.net)
 */

var slide = {

	isDebug : false
	,

	/**
	 * @param obj : object
	 */
	checkUIElements : function( obj ) {
        
		var yFrom, yTo, yOffset, yLimitBottom;
		var timeoutNextCheck;
		var tget;

		try {   
				tget = document.getElementById( obj.id );

				/*
				 *	<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"	"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
				 */
				/*
				yLimitBottom = parseInt( document.documentElement.scrollHeight, 10 ) - 100; // scroll limit Y-offset
				yFrom           = parseInt( tget.style.top, 10 );
				yTo               = parseInt( document.documentElement.scrollTop , 10 ) + obj.yOffset;
				*/


				yLimitBottom = parseInt( document.documentElement.scrollHeight, 10 ) - 100; // scroll limit Y-offset
				yFrom           = parseInt( tget.style.top, 10 );
				yTo               = parseInt( document.documentElement.scrollTop , 10 ) + obj.yOffset;
				timeoutNextCheck = 100;

			if( yFrom != yTo ){

				if(yTo > yLimitBottom){ yTo = yLimitBottom; }

				yOffset = Math.ceil( Math.abs( yTo - yFrom ) / 30 );

				if( yTo < yFrom ){
					yOffset = yOffset * -1;
				}

				tget.style.top = yFrom + yOffset + 'px';
				timeoutNextCheck = 10;
			}

			setTimeout (function(){ slide.checkUIElements( obj ); }, timeoutNextCheck);

		} catch (e) {
			if( this.isDebug ){ alert( e ); }
		}
	}
	,

	/**
	 * @param obj : object
	 */
	action : function( obj ) {

		var y;

		try {
			tget = document.getElementById( obj.id );
			tget.style.top = obj.begin_top + 'px';
			tget.style.visibility = obj.style.visibility;

			this.checkUIElements( obj );
	
		} catch (e) {
 			if( this.isDebug ){ alert( e ); }
		}

	}

};

