// ************************************************************************************************
// VIDEO WIDGET

// requires NP/_assets/js/main.js

var obj_videowidget;

// init
function fn_vw_init(str_video_id){
	
	if(typeof(obj_videowidget) != 'object'){
		obj_videowidget = {};
	}
	
	obj_videowidget[str_video_id] = {};
	obj_videowidget[str_video_id].num_vw_current = 0;
	obj_videowidget[str_video_id].num_vw_auto_delay = 10;
	
	var int_video_init = setInterval(function(){
		if(document.getElementById('vw_mask_' + str_video_id)){
			clearInterval(int_video_init);
			obj_videowidget[str_video_id].arr_vw_li = document.getElementById('vw_mask_' + str_video_id).getElementsByTagName('li');
			obj_videowidget[str_video_id].num_vw_width = document.getElementById('vw_mask_' + str_video_id).offsetWidth;
			for(var x = 0; x < obj_videowidget[str_video_id].arr_vw_li.length; x++){
				obj_videowidget[str_video_id].arr_vw_li[x].style.position = 'absolute';
				obj_videowidget[str_video_id].arr_vw_li[x].style.zIndex = 0;
				obj_videowidget[str_video_id].arr_vw_li[x].style.width = obj_videowidget[str_video_id].num_vw_width + 'px';
				obj_videowidget[str_video_id].arr_vw_li[x].style.top = 0;
				obj_videowidget[str_video_id].arr_vw_li[x].style.left = obj_videowidget[str_video_id].num_vw_width + 10 + 'px';
			}
			obj_videowidget[str_video_id].arr_vw_li[obj_videowidget[str_video_id].num_vw_current].style.left = '0';
			
			// wait for render before truncating 1st abstract
			var int_vw_truncate = setInterval(function(){
				clearInterval(int_vw_truncate);
				fn_vw_truncate(str_video_id, obj_videowidget[str_video_id].arr_vw_li[obj_videowidget[str_video_id].num_vw_current]);
			}, 100);
			
			obj_videowidget[str_video_id].int_vw_auto = setInterval(function(){
				fn_vw_move(str_video_id, 1, false);
			}, obj_videowidget[str_video_id].num_vw_auto_delay * 1000);
		}
	}, 100);
}

function fn_vw_truncate(str_video_id, obj_li){
	var obj_p = obj_li.getElementsByTagName('p')[0];
	var num_ie = 0;
	if(window.ActiveXObject){
		num_ie = 3; // IE phantom img 3px margin-bottom
	}
	var limit = 100; // sometimes shit goes wrong, so stop after a while
	while(obj_li.offsetHeight - num_ie > document.getElementById('vw_mask_' + str_video_id).offsetHeight){
		obj_p.innerHTML = trim(obj_p.innerHTML).replace(/^(.*) .+$/, '$1...');
		if(limit < 0){
			break;
		}
		limit--;
	}
}

// scroll
function fn_vw_move(str_video_id, num_step, bool_user){
	
	var num_dest;
	
	// abort if moving
	if(!(/^0[^\d]*$/.test(obj_videowidget[str_video_id].arr_vw_li[obj_videowidget[str_video_id].num_vw_current].style.left))){
		return false;
	}
	
	if(bool_user){
		try{
			clearInterval(obj_videowidget[str_video_id].int_vw_auto);
		}catch(e){}
	}
	
	// determine dest
	num_dest = (obj_videowidget[str_video_id].num_vw_width + 10) * -num_step;
	
	// pointer to current
	var obj_li = obj_videowidget[str_video_id].arr_vw_li[obj_videowidget[str_video_id].num_vw_current];
	
	// increment index
	obj_videowidget[str_video_id].num_vw_current += num_step;
	if(obj_videowidget[str_video_id].num_vw_current >= obj_videowidget[str_video_id].arr_vw_li.length){
		obj_videowidget[str_video_id].num_vw_current = 0;
	}else if(obj_videowidget[str_video_id].num_vw_current < 0){
		obj_videowidget[str_video_id].num_vw_current = obj_videowidget[str_video_id].arr_vw_li.length - 1;
	}
	
	// position next / prev
	obj_videowidget[str_video_id].arr_vw_li[obj_videowidget[str_video_id].num_vw_current].style.left = -num_dest + 'px';
	
	// truncate abstract
	fn_vw_truncate(str_video_id, obj_videowidget[str_video_id].arr_vw_li[obj_videowidget[str_video_id].num_vw_current]);
	
	// move
	clearInterval(obj_videowidget[str_video_id].int_vw_move);
	obj_videowidget[str_video_id].int_vw_move = setInterval(function(){
		
		// move boxes
		obj_li.style.left = parseInt(obj_li.style.left) + (num_dest - parseInt(obj_li.style.left)) / 2 + 'px';
		obj_videowidget[str_video_id].arr_vw_li[obj_videowidget[str_video_id].num_vw_current].style.left = parseInt(obj_videowidget[str_video_id].arr_vw_li[obj_videowidget[str_video_id].num_vw_current].style.left) + (0 - parseInt(obj_videowidget[str_video_id].arr_vw_li[obj_videowidget[str_video_id].num_vw_current].style.left)) / 2 + 'px';
		
		if(Math.abs(parseInt(obj_videowidget[str_video_id].arr_vw_li[obj_videowidget[str_video_id].num_vw_current].style.left)) < 1){
			clearInterval(obj_videowidget[str_video_id].int_vw_move);
			obj_li.style.left = num_dest + 'px';
			obj_videowidget[str_video_id].arr_vw_li[obj_videowidget[str_video_id].num_vw_current].style.left = 0;
		}
		
	}, 40);
	
	return false;
}
