window.onbeforeunload = leavePageHandler;
//window.onunload = leavePageHandler;

var arrPlayerTime = new Array();
var arrLink = new Array();

//ниже порога - видео плэинг, выше - перемотка
var intTreshold = 4;
var i = 0;

function deleteObject() {
//	arrPlayerTime = new Array();
	return;
}

function leavePageHandler() {
    var params_str = '';
	$.each(arrPlayerTime, function(i, n) {
    	$.each(n, function(k, m) {
//        	alert(k + ':' + m);
    	});
    	params_str += n + '|';
	});
	
	if (params_str) {
		ajax_send_time(params_str);
	}
	
	return;
//	 arrPlayerTime = new Array();
//	 arrLink = new Array();
//	 i = 0;
	 
}

function playTracker(obj) { 
    //возможно 2е obj.newstate == 'BUFFERING' не нужно
//    if ((obj.newstate == 'BUFFERING' && obj.oldstate == 'IDLE') || 
//        ((obj.newstate == 'PLAYING' || obj.newstate == 'BUFFERING')  && obj.oldstate == 'COMPLETED'))
//    {
////        ajax_send_play(obj.id);
//    }
    
	//видео первый раз запустилось
    if (obj.newstate == 'BUFFERING' && obj.oldstate == 'IDLE') {
    	arrPlayerTime[i] = new Array();
    	//start
    	arrPlayerTime[i][0] = 0;
    	//summary duration
    	arrPlayerTime[i][1] = 0;
    	//player embed id
    	arrPlayerTime[i][2] = obj.id;
    	//video starts
    	arrPlayerTime[i][3] = 1;
    	//массив соотв. embed id (строка) и числовых индексов 
    	//(т.к. обход массивов со индексами-строками пока неизвесте)
    	arrLink[obj.id] = i;
    	i += 1;
    }
    
    //запуск видео после того как оно дошло до конца
    if ((obj.newstate == 'PLAYING' || obj.newstate == 'BUFFERING')  
		&& obj.oldstate == 'COMPLETED')
	{
		index = getIndex(obj.id);
		//increment video starts
		arrPlayerTime[index][3] += 1; 
	}
};

function getIndex(id) {
	index = arrLink[id];
	return index;
}

function timeTracker(obj) {
	index = getIndex(obj.id);
	diff = obj.position - arrPlayerTime[index][0];
	
	//если текущая позиция видео не меньше (перемотка назад)
	//и не превышает предыдущюю на величину intTrashold (перемотка вперед)
	//то суммируем длительность видео
	if (diff < intTreshold && diff > 0) {
		arrPlayerTime[index][1] += diff;
	}
	
	//сохраняем текущую позицию
	arrPlayerTime[index][0] = obj.position;
}

function playerReady(obj) {
    player = gid(obj.id);
    addListeners();
};

//добавление евентов
function addListeners() {
	//евенты состояния плэера (старт, пауза ..)
    player.addModelListener('STATE', 'playTracker');
    //евенты при проигрывании плэера (duration, playback)
    player.addModelListener('TIME', 'timeTracker');
};

function gid(id) {
    return document.getElementById(id);
}