﻿n = 0;
ref_n = 0;
navigateLock = 0;
imagePosition = 0;
var int_str_refer = '';

var loadingImage = new Image;
loadingImage.src = design_path + "ajax_load.gif";

var n1, n2, n3, go_index;

function InitImages() {
    n1 = document.getElementById('n1');
    n2 = document.getElementById('n2');
    n3 = document.getElementById('n3');
    go_index = document.getElementById('go_index');
    mainPage = n1 && n2 && n3 && go_index;
    if (n != 0) n--;
    SetNumber(n + 1);
    FillImages();
};

function SetProgressWidth() {
	thedivId = document.getElementById(progressDivId);
	if (thedivId) {
		if (fmax - 6 == n || fmax < 6)
		{
			if (fmax < 6)  {
				thedivId.style.width = "0%";
			} else {
				thedivId.style.width = "100%";
			}
			thedivId.innerHTML = "Вот все фотки в этом разделе...";
		} else {
			thedivId.style.width = 100 * n / (fmax - 6)+"%";
			thedivId.innerHTML = "Ещё фоток: " + (fmax - n - 6) + "...";
		}
	}
}

function ShowValue() {
    var str, i;
    str = go_index.value;
    if (str == '') str = '-1';
    if (isNaN(str)) i = 0; else
        i = parseInt(str, 10);

    if (i < 1) i = -1;
    if (i > fmax) i = fmax;
    if (i != -1) i = fmax - i + 1;
    SetNumber(i);
}

function SetIndex(obj) {
    var str, i;
    str = go_index.value;
    i = parseInt(str, 10);
    if ((i <= fmax) && (i > 0)) {
        if (i < 6) i = 6;
        i = fmax - i;
        n = i;
        SetNumber(n + 1);
        FillImages();
    }
}

function NavigateToNumber(numberOfImage){
    var currentImageBegin = fmax - n;
    if (( numberOfImage <= currentImageBegin - 6 || currentImageBegin < numberOfImage) && (navigateLock == 0)) {
        if (numberOfImage < 6){
            numberOfImage = 6;
        }
        SetNumber(numberOfImage);
        n = fmax - numberOfImage;
        FillImages();
    }
}

function ShowN(object, destOp, rate, delta) {
    ShowValue();
    fadenum(destOp, rate, delta);
}

function HideN(object, destOp, rate, delta) {
    ShowValue();
    fadenum(destOp, rate, delta);
}

function nereidFadeImout(object, destOp, rate, delta) {
    nereidFade(object, destOp, rate, delta);
    fadenum(destOp, rate, delta);
};

function nereidFadeImOver(object, destOp, rate, delta) {
    var str, im_n, no, x;
    str = object.src;
    no = str.lastIndexOf('position=');

    str = str.substring(no + 9, no + 9 + 3);

    im_n = parseInt(str, 10);

    x = fmax - im_n + 1;
    SetNumber(x);
    nereidFade(object, destOp, rate, delta);
    nereidFade(document.getElementById('n1'), destOp, rate, delta);
    nereidFade(document.getElementById('n2'), destOp, rate, delta);
    nereidFade(document.getElementById('n3'), destOp, rate, delta);
}

function fadenum(destOp, rate, delta) {
    nereidFade(n1, destOp, rate, delta);
    nereidFade(n2, destOp, rate, delta);
    nereidFade(n3, destOp, rate, delta);
    nereidFade(document.getElementById('go'), destOp, rate, delta);
}

function SetNumber(n) {
    if (!mainPage)
        return;
        
    if (n == 1) {
        nereidFade(document.getElementById('left'), 50, 50, 5);
        nereidFade(document.getElementById('go_left'), 50, 50, 5);

    }
    if (n > fmax - 6) {
        nereidFade(document.getElementById('right'), 50, 50, 5);
        nereidFade(document.getElementById('go_right'), 50, 50, 5);
    }

    n1.src = design_path + '0.gif';
    n2.src = design_path + '0.gif';
    n3.src = design_path + '0.gif';
    if (n == -1) {
        n1.src = design_path + 'nx.gif';
        n2.src = design_path + 'nx.gif';
        n3.src = design_path + 'nx.gif';
        return;
    }

    var in1, in2, in3, x;
    x = fmax - n + 1;
    in3 = x % 10;
    x = (x - in3) / 10;
    in2 = x % 10;
    x = (x - in2) / 10;
    in1 = x % 10;

    n1.src = design_path + 'n' + in1 + '.gif';
    n2.src = design_path + 'n' + in2 + '.gif';
    n3.src = design_path + 'n' + in3 + '.gif';
}

function ReloadImagesList() {
    ref_n++;
    setTimeout("FillImages()", 1000);
}

function CurrentImageId(position){
    return "?position=" + position + "&category=" + category + '&private=' + privateImages
}

function DoRating(el) {
    num = el.id.substring(1, 2);
    rating = el.id.substring(2, 3);
    num_int = parseInt(num, 10);
    id = fmax - n - num_int + 1;

    window.open("/Operations/SetRating.aspx" + CurrentImageId(id) + "&rating=" + rating, 'Rating', actionWindowOptions);
    ReloadImagesList();
}

function DoImageRating(el) {
    rating = el.id.substring(1, 2);
    window.open("/Operations/SetRating.aspx" + CurrentImageId(imagePosition) + "&rating=" + rating, 'Rating', actionWindowOptions);
    ReloadImagesList();
}

function DoImageStar() {
    window.open("/Operations/SetStar.aspx" + CurrentImageId(imagePosition), 'Favorite', actionWindowOptions);
    ReloadImagesList();
}

function ShowRating(el) {
    num = el.id.substring(6, 7); num_int = parseInt(num, 10); position = fmax - n - num_int + 1;
    window.open("/Operations/ShowRatingList.aspx" + CurrentImageId(position), 'Ratings', actionWindowOptions);
}

function FillImages() {
    if (!mainPage)
        return;
    int_str_refer = '' + ref_n;
    SetProgressWidth();
    for (i = 1; i <= 6; i++) {
        x = fmax - (i + n) + 1;
        str = 'img' + i;
        int_str = '' + x;
        astr = 'alink' + i;
	var imageId = CurrentImageId(int_str);
        document.getElementById(str).src = design_path + 'ajax_load.gif';
        document.getElementById(str).src = image_path + "ImageSmall.aspx" + imageId;
        
        str_rating = 'rating' + i;
        document.getElementById(str_rating).src = "/Dynamic/Rating.aspx" + imageId + "&ref=" + int_str_refer;
        document.getElementById(astr).href = "/Dynamic/ImageNormal.aspx" + imageId;
    }
    var imageRating = document.getElementById('imageRating');
    if (imageRating != null) {
        imageRating.src = "/Dynamic/Rating.aspx" + CurrentImageId(imagePosition) + "&ref=" + int_str_refer + '&space=0';
    }
    var imageStar = document.getElementById('star');
    if (imageStar != null){
        imageStar.src = "/Dynamic/Star.aspx" + CurrentImageId(imagePosition) + "&ref=" + int_str_refer;
    }
}

function HideImages() {
    for (i = 1; i <= 6; i++) {
        x = fmax - (i + n) + 1;
        str = 'img' + i;
        int_str = '' + x;
        astr = 'alink' + i;
        document.getElementById(str).src = design_path + 'ajax_load.gif';
        
        str_rating = 'rating' + i;
        document.getElementById(str_rating).src = design_path + '0.gif';
        document.getElementById(astr).href = "#";
    }
}

function SetImageLeft(e) {
    if (fmax > 6) {
        if (n > 0) {
            if (n != 0) n--;
            SetNumber(n + 1);
            FillImages();
        }
    }
}

function SetImageRight(e) {
    if (fmax > 6) {
        if (n != fmax - 6) {
            n++;
            SetNumber(n + 1);
            FillImages();
        }
    }
}

function SetImageGoLeft(e) {
    if (fmax > 6) {
        if (n > 0) {
            n -= 6;
            if (n < 0) n = 0;
            SetNumber(n + 1);
            FillImages();
        }
    }
}

function SetImageGoRight(e) {
    if (fmax > 6) {
        n += 6;
        if (n > fmax - 6) n = fmax - 6;
        SetNumber(n + 1);
        FillImages();
    }
}

function KeyDownCheck(e) {
    var KeyID = (window.event) ? event.keyCode : e.keyCode;
    switch (KeyID) {
        case 32:
            if (mainPage)
                SetImageRight(null);
            break;
        case 13:
            if (mainPage)
                SetIndex();
            break;
    }
    if (mainPage)
        ShowValue();
}

function KeyUpCheck(e) {
    if (mainPage)
        ShowValue();
}

function UpdateCategoryInfo(categoryNumber, imagesCountStr){
    fmax = parseInt(imagesCountStr, 10);
    category = categoryNumber;
    imagePosition = 0;
    n = 0;
    SetNumber(n + 1);
    FillImages();
    navigateLock = 1;
    LB.end();
    navigateLock = 0;
}

function UpdateCategoryList(categoryPrivate){
    LB.showProgress();
    HideImages();
    var url = '/Dynamic/CategoryList.aspx?private=' + categoryPrivate;
    new Ajax.Request(url, {
        method: 'get',
        asynchronous: true,
        onSuccess: function(transport) {
            privateImages = categoryPrivate;
            var position = transport.responseText.indexOf(' ');
            var imagesCountStr = transport.responseText.substr(0, position);
            document.getElementById('categoryDiv').innerHTML = transport.responseText.substr(position, transport.responseText.length);
            UpdateCategoryInfo(-1, imagesCountStr);
            UpdateHandlers30();
        },
        onFailure: function(request) {
            FillImages();
            LB.end();
        }
    });
}

function UpdateCategory(categoryNumber){
    LB.showProgress();
    HideImages();
    var url = '/Dynamic/CategoryInfo.aspx?category=' + categoryNumber + '&private=' + privateImages;
    new Ajax.Request(url, {
        method: 'get',
        asynchronous: true,
        onSuccess: function(transport) {
            UpdateCategoryInfo(categoryNumber, transport.responseText);
        },
        onFailure: function(request) {
            FillImages();
            LB.end();
        }
    });
}
