// move banner
function navicast_move(x,y){
	var aElement  = document.getElementById('navicast');
	var aStartx   = parseInt(aElement.style.left);
	var aStarty   = parseInt(aElement.style.top);
	var aEndx     = aStartx + x;
	var aEndy     = aStarty + y;
	var deltax    = aEndx - aStartx;
	var deltay    = aEndy - aStarty;
	var duration  = 700;
	var startTime = (new Date()).getTime();
	var timer = setInterval(function() {
		var now = (new Date()).getTime();
		var progress = Math.min(1, (now - startTime) / duration);
		var marginx = (progress == 1) ? aEndx : aStartx + (deltax * Math.sin( (progress * 90) * Math.PI / 180 )) ;
		var marginy = (progress == 1) ? aEndy : aStarty + (deltay * Math.sin( (progress * 90) * Math.PI / 180 )) ;
		aElement.style.left = marginx+'px';
		aElement.style.top = marginy+'px';
		if (progress == 1) {clearInterval(timer);}
		}, 10);
}

// dispalay wait sec
function navicast_timer1(x,y,time){
	setTimeout("navicast_move("+x+","+y+")", time*1000);
}

// next banner
function navicast_timer2(time,user_id,next_priority,flg,display_count,max_count){
	setTimeout("redrawBanner("+user_id+","+next_priority+","+flg+","+display_count+","+max_count+")", time*1000);
}

// event drag and drop
( function ( _event, createEvent ){
		createEvent( _event );
		_event.add( document, 'mousedown', _event.onmousedown );
		_event.add( document, 'mousemove', _event.onmousemove );
		_event.add( document, 'mouseup', _event.onmouseup );
		_event = createEvent = null;
	} )(
		{
			add : ( function (){
				if( window.attachEvent )
					return function ( element, event, func ) { return element.attachEvent( 'on'+event, func ); }
				else if( window.addEventListener )
					return function ( element, event, func ) { return element.addEventListener( event, func, true ); }
				return function () { return false; }
			} )()
		},
		function ( _event ){
			var drag_obj = null;
			var offset_x = 0;
			var offset_y = 0;
			_event.onmousedown = ( function (){
				var _getNumber = /^[0-9]*/;
				var _targetId  = /^navicast$/;
				function GetSearchDiv ( obj ){
					for( obj=obj.parentNode; obj; obj=obj.parentNode ){
						if( _targetId.test( obj.id ) ) return obj;
					}
					return null;
				}
				return function ( evt ){
					var obj;
					obj = evt.target || evt.srcElement;
					if( (obj = GetSearchDiv( obj )) ){
						offset_x = evt.clientX - _getNumber.exec( obj.style.left )[0] || 0;
						offset_y = evt.clientY - _getNumber.exec( obj.style.top  )[0] || 0;
						drag_obj = obj;
					}
				}
			} )()
			_event.onmousemove = function ( evt ){
				if( drag_obj ){
					drag_obj.style.left = ( evt.clientX - offset_x ) + 'px';
					drag_obj.style.top  = ( evt.clientY - offset_y ) + 'px';
				}
			}
			_event.onmouseup = function ( evt ){
				drag_obj = null;
			}
			_event = null;
		}
	);