var cntScreen = 7;				// Количество переходных слайдов.
var defScreen = 0;				// Слайд выводимый по-умолчанию.
var lastPause = 0;
var slideShow = false;
var slideShedule = new Array();
var iScreens = new Array();
var iOlder = null;
var old_id = 0;

// Соответствие номеров ссылок к слайдам.
var iIcons = {
	1:{id:'inf_ru'}, 2:{id:'cog_ru'},
	3:{id:'spt_ru'}, 4:{id:'mov_ru'},
	5:{id:'ent_ru'}, 6:{id:'chl_ru'}, 7:{id:'mus_ru'}};

/* Подзагрузка всех экранов для сайта */
function preLoadScreens()
{
    for (i=0; i <= cntScreen; i++)
    {
        iScreens[i] = new Image();
        iScreens[i].src = '/design/images/ru/adv/mainpage/screen'+i+'.jpg';
    }
}

/** Вызов СлайдШоу **/
function startSlideShow(arPaused)
{
//	if (iScreens.lenght <= 0){ preLoadScreens(); }	// Если список слайдов пустой - попытка инициализировать его.
	iOlder = null;
	preLoadScreens();
    evalSlideShow(arPaused);						// Создание расписания мены слайдов.
    return setTimeouts();							// Установка таймаутов согласно расписанию.
}

/** Функция смены текущего показа слайдшоу. **/
function showScr(iScreen, isSlideShow)
{

 // Провека на существование объектов.
    var obj = document.getElementById('pghd_scr');
    if (obj == null) { return false; }
    isSlideShow = ((parseInt(isSlideShow) != 1) ? false : true);

	// Вывод соответствующего слайда.
    obj.src = iScreens[iScreen].src;

	// Удаление из стека показов слайдшоу текущей картинки.
    if (isSlideShow == true && slideShow == true && slideShedule.length > 0){ slideShedule.shift(); }

	if (iOlder != null && old_id != 0)
	{
	    iOlder.style['background'] = "transparent url('http://ktv.ru/design/images/ru/adv/mainpage/new/all_buttons_0"+old_id+".gif') no-repeat";
	}

    if(iScreen != 0)
    {
	  var icon = document.getElementById(iIcons[iScreen]['id']);

	  icon.style['background'] = "transparent url('http://ktv.ru/design/images/ru/adv/mainpage/new/all_buttons_0"+iScreen+"b.gif') no-repeat";

	  iOlder = icon;
    }

    old_id = iScreen;

	// Сброс стека показа слайдшоу.
    if (isSlideShow == false && slideShow == true){ clearTimeouts(); }

	// Возобновление слайдшоу.
    if (isSlideShow == false && iScreen == 0){setTimeouts(); }

	// Если слайдшоу кончилось - начинаем заново.
    if (isSlideShow == true && slideShow == true && slideShedule.length == 0){ return startShow([lastPause]); }
    return true;
}

/* Сброс стека для показа слайдшоу. */
function clearTimeouts()
{
    // Проверка на существование расписания.
    if (slideShedule.length <= 0) { return false; }
    // Сброс стека.
    var tmp = new Array();
    while ((arshow = slideShedule.shift())){
        clearTimeout(arshow[0]);    // Сброс таймаута.
        tmp.push(arshow);           // Сохранение копии.
    }
    slideShedule = tmp;     // Возврат расписания в исходное состояние.
    return true;
}

/** Установка таймаутов для показа слайдшоу. **/
function setTimeouts()
{
    // Проверка.
    var obj = document.getElementById('pghd_scr');
    if (obj == null || slideShedule.length <= 0 || slideShow != true) { return false; }
    /* Установка счетчиков для показа */
    var nShedule = new Array();
    var wrktime = 0;
    while ((arshow = slideShedule.shift())){
        // Установка стека вызовов смены экрана.
        wrktime += arshow[1];
        arshow[0] = setTimeout('showScr('+arshow[2]+', 1)', wrktime);
        nShedule.push(arshow);
    }
    slideShedule = nShedule;
    return true;
}

/** Расчет расписания смены экранов. **/
function evalSlideShow(arPaused)
{
    // Проверка.
	var obj = document.getElementById('pghd_scr');
	if (obj == null || arPaused.length <= 0){ return false; }

	/* Создание расписания показов */
	var pause, idxPaused; slideShedule = new Array();
	idxPaused = 0;

    /*  Сохранение расписания. */
	while ((pause = arPaused.shift()))
    {
		pause = (pause * 1000);     // Секунды->миллисекунды.

        // Сохранение последней указанной паузы в слайдшоу.
        idxPaused = idxPaused + 1;
        if (idxPaused == arPaused.length) { lastPause = pause; }

        // Сохранение стека показов слайдшоу.
		for (i=1; i <= cntScreen; i++){ slideShedule.push([0, pause, i]); }
		slideShedule.push([0, pause, defScreen]);
	}
	slideShow = true;   // Установка флага показа слайдшоу.
	return true;        // Возврат по-умолчанию.
}
