// Author     : v.dobroskok
 /*var news_visible = 4;
 var div_height=62;
 var timerlenGal = 5;
 var slideAniLenGal = 300;
 
 var dragDropv.count_vis_el=0;
 var mouse_vb = 0;
 var newslist_div;
 var starty_first;
  */
 var gal_work=false;
 var curimgv=0;
 var el_height=63;
  //var scroll_div_height=209;
 //var div_container_height;
 //var coef;
 var objv,scroll_objv,coefv,count_video_divs,startTimeGalv,startyv_first,directionv;
 //var scroll_obj;

 function create_div_array1() {
	var div=document.getElementById("video_list");
	//newslist_div=document.getElementById("video_list");
	var divs = div.getElementsByTagName("a");
	count_video_divs=0;
	for (var t=0; t<divs.length; t++){
		if (divs[t].className=="it") {
			//dragDropv.count_all++;
			count_video_divs++;
		}
	}
        /*starty_first = dragDropv.scrolldiv.offsetTop;
        div_container_height = (dragDropv.count_vis_el-6)*div_height;
        coef = div_container_height/(scroll_div_height-starty_first);
        //obj = dragDropv.scrdiv;
        //scroll_obj = dojo.byId('video_scroll');
		*/
		//alert(dragDropv.count_all);
		objv = dojo.byId('video_list');
		
		scroll_objv = dojo.byId('video_scroll');
		startyv_first = scroll_objv.offsetTop;
		coefv = objv.offsetHeight/(scroll_objv.parentNode.offsetHeight);
        dragDropv.initElement('video_scroll','video_list',76,3.95);
		//dragDropv.initElement('video_scroll','video_list',59,6);
}
 
function mousev_up(){
	mouse_vb=0;
}



dragDropv = {
	keyHTML: '<a href="#" class="keyLink"></a>',
	keySpeed: 10, // pixels per keypress event
	initialMouseX: undefined,
	initialMouseY: undefined,
	startX: undefined,
	startY: undefined,
	scrdiv: undefined,
	scrolldiv_height:undefined,
	scrolldiv:undefined,
	coef:undefined,
	count_vis_el:undefined,
	count_all:0,
	el_height: undefined,
	starty_first:undefined,
	dXKeys: undefined,
	dYKeys: undefined,
	draggedObject: undefined,
	initElement: function (element,scrdiv,el_height,count_vis_el) {
		if (typeof element == 'string')
			element = document.getElementById(element);
		if (typeof scrdiv == 'string')
			dragDropv.scrdiv= document.getElementById(scrdiv);
		dragDropv.coef = (dragDropv.scrdiv.offsetHeight-(el_height*(count_vis_el-1)))/(element.parentNode.offsetHeight-element.parentNode.offsetTop-2);
		//dragDropv.coef = coefv;
		dragDropv.starty_first = element.parentNode.offsetTop;
		dragDropv.scrolldiv_height = element.parentNode.offsetHeight-2;
		dragDropv.scrolldiv = element;
		dragDropv.el_height = el_height;
		dragDropv.count_vis_el = count_vis_el;
		element.onmousedown = dragDropv.startDragMouse;
		element.innerHTML += dragDropv.keyHTML;
		var links = element.getElementsByTagName('a');
		var lastLink = links[links.length-1];
		lastLink.relatedElement = element;
		lastLink.onclick = dragDropv.startDragKeys;
	},
	startDragMouse: function (e) {
		dragDropv.startDrag(this);
		var evt = e || window.event;
		dragDropv.initialMouseX = evt.clientX; 
		dragDropv.initialMouseY = evt.clientY;
		addEventSimple(document,'mousemove',dragDropv.dragMouse);
		addEventSimple(document,'mouseup',dragDropv.releaseElement);
		return false;
	},
	startDragKeys: function () {
		dragDropv.startDrag(this.relatedElement);
		dragDropv.dXKeys = dragDropv.dYKeys = 0;
		addEventSimple(document,'keydown',dragDropv.dragKeys);
		addEventSimple(document,'keypress',dragDropv.switchKeyEvents);
		this.blur();
		return false;
	},
	startDrag: function (obj) {
		if (dragDropv.draggedObject)
			dragDropv.releaseElement();
		dragDropv.startX = obj.offsetLeft;
		dragDropv.startY = obj.offsetTop;
		starty = dragDropv.scrdiv.offsetTop;
		
		dragDropv.draggedObject = obj;
		obj.className += ' dragged';
	},
	dragMouse: function (e) {
		var evt = e || window.event;
		var dY = evt.clientY - dragDropv.initialMouseY;
		var dX = null;
		var move=0;
		
		if  ((dragDropv.startY+dY)<=0) {
			dY= -dragDropv.startY;
			dragDropv.setPosvition(dX,dY);
			setPosv(dragDropv.scrdiv,0);
		}
		else if ((dragDropv.startY+dY)>=(dragDropv.scrolldiv_height-dragDropv.draggedObject.offsetHeight)) {
			dY= dragDropv.scrolldiv_height-dragDropv.startY-dragDropv.draggedObject.offsetHeight;
			dragDropv.setPosvition(dX,dY);
			move = dragDropv.draggedObject.offsetTop*dragDropv.coef*(-1);
			setPosv(dragDropv.scrdiv,move);
		}else{
		dragDropv.setPosvition(dX,dY);
		move = dragDropv.draggedObject.offsetTop*dragDropv.coef*(-1);
		setPosv(dragDropv.scrdiv,move);
		}
		return false;
	},
	setPosvition: function (dx,dy) {
		dragDropv.draggedObject.style.left = dragDropv.startX + dx + 'px';
		dragDropv.draggedObject.style.top = dragDropv.startY + dy + 'px';
	},
	releaseElement: function() {
		removeEventSimple(document,'mousemove',dragDropv.dragMouse);
		removeEventSimple(document,'mouseup',dragDropv.releaseElement);
		dragDropv.draggedObject.className = dragDropv.draggedObject.className.replace(/dragged/,'');
		dragDropv.draggedObject = null;
	}
}

/*
function addEventSimple(obj,evt,fn) {
	if (obj.addEventListener)
		obj.addEventListener(evt,fn,false);
	else if (obj.attachEvent)
		obj.attachEvent('on'+evt,fn);
}

function removeEventSimple(obj,evt,fn) {
	if (obj.removeEventListener)
		obj.removeEventListener(evt,fn,false);
	else if (obj.detachEvent)
		obj.detachEvent('on'+evt,fn);
}
*/
function setPosv(obj,posleft) {
	//var obj = dojo.byId(objID);
	obj.style.top = Math.round(posleft) + 'px';
}



function NextVideo() {
	var cur_img;
	directionv="bottom";
	var left_pos_container = dojo.byId('video_list').offsetTop;
	var left_pos_scroll = dojo.byId('video_scroll').offsetTop;
	//alert(left_pos_scroll);
	cur_img = Math.abs(left_pos_container/el_height);
	cur_img=parseInt(cur_img)+1;
	
	if ((cur_img>=(count_video_divs-4+1)) || (gal_work==true)) {
		return;
	}
        mouse_vb=1;
	var stop_top = cur_img*el_height*(-1);
	var ostatok = (stop_top - left_pos_container)*(-1);
	var alltime = slideAniLenGal*ostatok/el_height;
	//alert("CUR_IMG: "+cur_img+" STOP: "+stop_topt+" OST: "+ostatok+ "ALLTIME: "+alltime);
	startTimeGalv=(new Date()).getTime();
	timergal = setInterval('scrollgalv("'+directionv+'",'+stop_top+','+alltime+','+left_pos_container+','+left_pos_scroll+');',timerlenGal);
	gal_work=true;
	cur_img++;
}

function PrevVideo() {
	var cur_img;
	directionv="top";
	var left_pos_container = dojo.byId('video_list').offsetTop;
	var left_pos_scroll = dojo.byId('video_scroll').offsetTop;
	cur_img = Math.abs(left_pos_container/el_height);
	if ((parseInt(cur_img)==0) && (cur_img>0)) {
		cur_img=0;
	}else if (parseInt(cur_img)==cur_img){
		cur_img=parseInt(cur_img)-1;
	}else{
		cur_img=parseInt(cur_img);
	}
	
	if ((cur_img<0) || (gal_work==true)) {
		return;
	}
        mouse_vb=1;
	var stop_top = cur_img*el_height*(-1);
	var ostatok = (stop_top - left_pos_container)*(-1);
	var alltime = slideAniLenGal*ostatok/el_height*(-1);
	startTimeGalv=(new Date()).getTime();
	timergal = setInterval('scrollgalv("'+directionv+'",'+stop_top+','+alltime+','+left_pos_container+','+left_pos_scroll+');',timerlenGal);
	gal_work=true;
	//cur_img--;
}

function scrollgalv(direct,stop,alltime,left_pos_container,left_pos_scroll) {
	var elapsed = (new Date()).getTime() - startTimeGalv;
	var ostatok = (stop - left_pos_container)*(-1);
	var scroll_objv = dojo.byId('video_scroll');
	if (elapsed > (alltime-timerlenGal)) {
		//END
		objv.style.top = stop + "px";
		scroll_objv.style.top = Math.abs(stop/dragDropv.coef) + "px";
		clearInterval(timergal);
		gal_work=false;
                if (mouse_vb==1) {
                    if (directionv=="bottom") {
                        NextVideo();
                    }else if (directionv=="top") {
                        PrevVideo();
                    }
                }
	}else{
		//WORK
		var d = Math.round(elapsed / alltime * ostatok);
		var d_scroll = ((elapsed / alltime) * (ostatok/dragDropv.coef));
		if (direct=="bottom") {
			objv.style.top = left_pos_container - d + "px";
			scroll_objv.style.top = left_pos_scroll + d_scroll + "px";
		}else if (direct=="top") {
			objv.style.top = left_pos_container - d + "px";
			scroll_objv.style.top = left_pos_scroll + d_scroll + "px";
		}
	}
}


dojo.addOnLoad(create_div_array1);
 
 