﻿/*MALIKOV.SU*/
var active = false;
init = function(){

    var elems = [];
    var _l = document.getElementById("l"); // кнопка влево
    var _r = document.getElementById("r"); // кнопка вправо
    var _b = document.getElementById("b"); // box
    var xx = _b.childNodes;
    var key = 0;
    _l.className = "left_off";
    
    for (var i = 0; i < xx.length; i++) {
        if (xx[i].nodeName == "A") {
            if (document.addEventListener) {
                xx[i].addEventListener("click", function(e){
                    //e.preventDefault();
                    clickOnSmall(e.currentTarget, e);
                }, false);
                xx[i].addEventListener("mouseover", function(e){
                    //e.target.style.background = "blue";
                    e.target.style.opacity = 0.7;
                }, false);
                xx[i].addEventListener("mouseout", function(e){
                    //e.target.style.background = "red";
                    e.target.style.opacity = 1;
                }, false);
                
            } // IE	
            else 
                if (document.attachEvent) {
                    xx[i].attachEvent("onclick", function(e){
                        e = e || window.event;
                        e.cancelBubble = true;
                        e.returnValue = false;
                        clickOnSmall(e.srcElement.parentNode, e);
                    });
                    xx[i].attachEvent("onmouseover", function(e){
                        e = e || window.event;
                        e.cancelBubble = true;
                        e.srcElement.style.background = "blue";
                        e.srcElement.style.filter = "alpha(opacity=70)";
                    });
                    xx[i].attachEvent("onmouseout", function(e){
                        e = e || window.event;
                        e.srcElement.style.background = "red";
                        e.srcElement.style.filter = "alpha(opacity=100)";
                    });
                }
                else {
                //IE < 5.5
                }
            elems.push(xx[i]);
        }
    }
    //
    for (var i = 0; i < elems.length; i++) {
        elems[i].style.position = "absolute";
        
        if (i == 0) {
            elems[i].style.left = "0px";
        }
        else {
            elems[i].style.left = (parseInt(elems[i - 1].style.left) + 133) + "px";
        }
    }
    _r.onmouseover = function(){
        if (key < 10) {
            this.className = 'right_over';
        }
        else {
            //
        }
    }
    _r.onmouseout = function(){
        if (key < 10) {
            this.className = 'right';
        }
        else {
            //
        }
    }
    _r.onclick = function(){
        if (key == 10) {
            return false;
        }
        else {
            if (key == 9) 
                this.className = 'right_off';
            if (key < 9) 
                _l.className = 'left';
            if (active == false) {
                zb = parseInt(_b.offsetLeft);
                z = zb;
                active = true;
                key++;
                animateCSS(_b, 10, 10, {
                    left: function(f, t){
                        return (z - (f * 13.3)) + "px";
                    },
                    opacity: function(f, t){
                        return 0.5;
                    },
                    filter: function(f, t){
                        return "alpha(opacity=50)";
                    }
                }, test, key, 0);
            }
            else {
                // !
            }
        }
    }
    //
    _l.onmouseover = function(){
        if (key > 0) {
            this.className = 'left_over';
        }
    }
    _l.onmouseout = function(){
        if (key < 1) {
            //this.className = 'left_off';
        }
        else {
            this.className = 'left';
        }
    }
    _l.onclick = function(){
        if (key <= 0) {
            key = 0;
            return false;
        }
        else {
            if (key == 1) 
                this.className = "left_off";
            if (key > 1) 
                _r.className = "right";
            if (active == false) {
                zb = parseInt(_b.offsetLeft);
                z = zb;
                active = true;
                key--;
                animateCSS(_b, 10, 10, {
                    left: function(f, t){
                        return (z + (f * 13.3)) + "px";
                    },
                    opacity: function(f, t){
                        return 0.5;
                    },
                    filter: function(f, t){
                        return "alpha(opacity=50)";
                    }
                }, test, key, 1);
                
            }
            else {
                // если движение не завершено ничего не происходит
                // сообщение или активация другой кнопки
            }
        }
    }
}
function animateCSS(element, numFrames, timePerFrame, animation, whendone, key, dir){
    var frame = 0;
    var time = 0;
    //
    //
    var intervalId = setInterval(displayNextFrame, timePerFrame);
    
    function displayNextFrame(){
        if (frame >= numFrames) {//
            clearInterval(intervalId);
            if (whendone) {
                if (dir == 0) {
                    element.style.left = (element.offsetWidth - (element.offsetWidth + (key * 133))) + "px";
                }
                else {
                    element.style.left = ((element.offsetWidth + ((-(key)) * 133)) - element.offsetWidth) + "px";
                }
                whendone(element)
            };
            return;
        }
        
        //
        for (var cssprop in animation) {
            try {
                element.style[cssprop] = animation[cssprop](frame, time);
            } 
            catch (e) {
            }
        }
        frame++; //
        time += timePerFrame; //        
    }
}

// обработчик click на маленькой картинке 
function clickOnSmall(ele, event){
    
	//event = event || window.event;
	//	_display.appendChild(_ni);    
    var _href = ele.getAttribute("href");	
	var pattern = /\.html$/i;
	
	if(pattern.test(_href)){
		event.returnValue = true;		
	} else {
		//event.returnValue = false;
		
		event.returnValue = false;
		if(window.addEventListener){
			event.preventDefault();
		}
		imageload(ele.getAttribute("href"));		
	}	 
	
    // если в атрибуте указана картинка
    // то есть строка заканчивается на .gif или .jpg
    // происходит переход по ссылке
    // если нет то  запускается загрузка картники


};
// замена картники
function changeimage(img){
    try {
        var _display = document.getElementById("disp");
        if (_display.getElementsByTagName("img").length > 0) {
            _display.removeChild(_display.getElementsByTagName("img")[0]);
            img.width = tech.dwidth;
            img.height = tech.dheight;
            _display.appendChild(img);
            
        }
        else {
            img.width = tech.dwidth;
            img.height = tech.dheight;
            _display.appendChild(img);
        }
    } 
    catch (e) {
        // нет disp
    }
}

// загрузка картинки
function imageload(src){
    //
    prehide();
    var _ni = document.createElement("img");
    _ni.onload = imageonload;
    _ni.onerror = imageerror;
    preshow();
    _ni.src = src;
    
}

// загрузка картинки завершена			
function imageonload(){
    prehide();
    changeimage(this);
}

function imageerror(){
    if (document.getElementById("preloader")) {
        document.getElementById("preloader").style.background = "red";
        document.getElementById("preloader").innerHTML = lang.errors["404"];
    }
    else {
        alert(lang.errors["404"]);
    }
    //prehide();
}

function test(ele){

    ele.style.opacity = 1;
    ele.style.filter = "alpha(opacity=100)";
    active = false;
    
}

function preshow(){
    try {
        var _preloader = document.createElement('div');
        _preloader.innerHTML = lang["001"];
        _preloader.setAttribute("id", "preloader")
        _preloader.className = "preloader";
        var _display = document.getElementById("disp");
        _display.appendChild(_preloader);
    } 
    catch (e) {
        //
    }
}

function prehide(){
    if (document.getElementById("preloader")) {
        var _display = document.getElementById("disp");
        _display.removeChild(document.getElementById("preloader"));
    }
}

// параметры
var tech = {
    dwidth: "690",
    dheight: "360",
    count: 15
};
// JSON - хранит языковую информацию
var lang = {
    // сообщения
    "001": "загрузка изображения",
    "002": "отмена загрузки",
    "003": "загружено успешно",
    // интерфейс текст
    "next": "",
    "prev": "",
    "stop": "",
    "play": "",
    // интерфейс картинки
    "preloader": "",
    "leftbutton": "",
    "rightbutton": "",
    //
    // ошибки хода выполнения программы
    "300": "",
    "301": "",
    "302": "",
    "303": "превышен интервал загрузки!",
    // ошибки
    errors: {
        "404": "при загрузке изображения возникла ошибка!",
        "410": "не поддерживается браузером",
        // сервисные сообщения
        "1001": ""
    }
};

window.onload = function(){
    init();
};

