///////////////////////////////////////////////////////////////////////////////
//
//
//  JS_SLIDER
//
//
//  Copyright (C) 2000-2001 by ChemInform Saint-Petersburg (CISP) Ltd.
//  All Rights Reserved
//
//
///////////////////////////////////////////////////////////////////////////////


var strErrCannotLoadSlide = "Cannot load slide number %.";


function objSlide (strURL, strZoomURL, strDescription)
{
    this.strURL         = strURL;
    this.strZoomURL     = strZoomURL;
    this.strDescription = strDescription;
}


function objSlider (strClassName, strZoomURL, strSlideName, arrSlides, strSliderCaption, strDescriptionName)
{
    this.strClassName       = strClassName;
    this.strZoomURL         = strZoomURL;
    this.strSlideName       = strSlideName;
    this.arrSlides          = arrSlides;
    this.strSliderCaption   = strSliderCaption;
    this.strDescriptionName = strDescriptionName;
    this.intCurrentSlide    = 0;
    this.BuildSlider        = BuildSlider;
    this.LoadSlide          = LoadSlide;
    this.FirstSlide         = FirstSlide;
    this.PreviousSlide      = PreviousSlide;
    this.NextSlide          = NextSlide;
    this.LastSlide          = LastSlide;
    this.ZoomSlide          = ZoomSlide;
    this.BuildZoom          = BuildZoom;

    this.BuildSlider ();
}


function BuildSlider ()
{
    var strHTML, strHTMLTemplate = '';

    strHTMLTemplate += '<!-- Начало слайдера-->\n';
    strHTMLTemplate += '<table width="336px" align="center" border="0" cellspacing="0" cellpadding="0">\n';
    strHTMLTemplate += '\t<tr>\n';
    strHTMLTemplate += '\t\t<td><img src="/images/slider/top.gif" width="336px" height="10px"></td>\n';
    strHTMLTemplate += '\t</tr>\n';
    strHTMLTemplate += '\t<tr>\n';
    strHTMLTemplate += '\t\t<td class="SliderName" align="center" background="/images/slider/separator.gif">%SliderCaption%</td>\n';
    strHTMLTemplate += '\t</tr>\n';
    strHTMLTemplate += '\t<tr>\n';
    strHTMLTemplate += '\t\t<td><img src="/images/slider/separator.gif" width="336px" height="10px"></td>\n';
    strHTMLTemplate += '\t</tr>\n';
    strHTMLTemplate += '\t<tr>\n';
    strHTMLTemplate += '\t\t<td height="240px" align="center" valign="middle" background="/images/slider/frame.gif"><a href="javascript:%ClassName%.ZoomSlide ();"><img id="%SlideName%" name="%SlideName%" src="%URL%" border="0" alt="Click here to enlarge slide"></a></td>\n';
    strHTMLTemplate += '\t</tr>\n';

    if (GetBrowserVersion () == intBrowserExplorer)
    {
        strHTMLTemplate += '\t<tr>\n';
        strHTMLTemplate += '\t\t<td background="/images/slider/separator.gif">\n';
        strHTMLTemplate += '\t\t\t<table width="100%" border="0" cellspacing="10px" cellpadding="3px">\n';
        strHTMLTemplate += '\t\t\t\t<tr>\n';
        strHTMLTemplate += '\t\t\t\t\t<td id="%DescriptionName%" class="SlideText" align="center">%Description%</td>\n';
        strHTMLTemplate += '\t\t\t\t</tr>\n';
        strHTMLTemplate += '\t\t\t</table>\n';
        strHTMLTemplate += '\t\t</td>\n';
        strHTMLTemplate += '\t</tr>\n';
    }
    else
    {
        strHTMLTemplate += '\t<tr>\n';
        strHTMLTemplate += '\t\t<td><img src="/images/slider/separator.gif" width="336px" height="10px"></td>\n';
        strHTMLTemplate += '\t</tr>\n';
    }

    strHTMLTemplate += '\t<tr>\n';
    strHTMLTemplate += '\t\t<td width="336px" height="25px" align="center" valign="top" background="/images/slider/bottom.gif"><a href="javascript:%ClassName%.FirstSlide ();"><img src="/images/slider/first.gif" border="0" hspace="30" width="15px" height="15px" alt="First slide"></a><a href="javascript:%ClassName%.PreviousSlide ();"><img src="/images/slider/previous.gif" border="0" hspace="30" width="14px" height="15px" alt="Previous slide"></a><a href="javascript:%ClassName%.NextSlide ();"><img src="/images/slider/next.gif" border="0" hspace="30" width="14px" height="15px" alt="Next slide"></a><a href="javascript:%ClassName%.LastSlide ();"><img src="/images/slider/last.gif" border="0" hspace="30" width="15px" height="15px" alt="Last slide"></a></td>\n';
    strHTMLTemplate += '\t</tr>\n';
    strHTMLTemplate += '</table>\n';
    strHTMLTemplate += '<!-- Конец слайдера -->\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '<br>\n';
    strHTMLTemplate += '\n';

    strHTML = FormatStringEx
              (
                  strHTMLTemplate,
                  "%SliderCaption%",
                  this.strSliderCaption,
                  "%SlidesCount%",
                  this.arrSlides.length,
                  "%SlideName%",
                  this.strSlideName,
                  "%URL%",
                  this.arrSlides [this.intCurrentSlide].strURL,
                  "%DescriptionName%",
                  this.strDescriptionName,
                  "%Description%",
                  this.arrSlides [this.intCurrentSlide].strDescription,
                  "%ClassName%",
                  this.strClassName
              );

    document.write (strHTML);
}


function LoadSlide (intIndex)
{
    if (intIndex + 1 > this.arrSlides.length)
        alert (FormatString (strErrCannotLoadSlide, intIndex));
    else
    {
        var objImage = eval (FormatString ("document.images.%", this.strSlideName));
        objImage.src = this.arrSlides [intIndex].strURL;

        if (GetBrowserVersion () == intBrowserExplorer)
        {
            var objDescription = eval (this.strDescriptionName);

            if (this.arrSlides [intIndex].strDescription == "")
                objDescription.innerHTML = "&nbsp;";
            else
                objDescription.innerHTML = this.arrSlides [intIndex].strDescription;
        }

        this.intCurrentSlide = intIndex;
    }
}


function FirstSlide ()
{
    if (this.intCurrentSlide != 0)
        this.LoadSlide (0);
}


function PreviousSlide ()
{
    if (this.intCurrentSlide > 0)
        this.LoadSlide (this.intCurrentSlide - 1);
}


function NextSlide ()
{
    if (this.intCurrentSlide < this.arrSlides.length - 1)
        this.LoadSlide (this.intCurrentSlide + 1);
}


function LastSlide ()
{
    if (this.intCurrentSlide != this.arrSlides.length - 1)
        this.LoadSlide (this.arrSlides.length - 1);
}


function ZoomSlide ()
{
    window.open (this.strZoomURL, null, "width=800,height=600,resizable=yes,scrollbars=yes");
}


function BuildZoom (objDocument)
{
    var strHTML, strHTMLTemplate = '';

    strHTMLTemplate += '<html>\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '<head>\n';
    strHTMLTemplate += '\t<title>Slide %Number%</title>\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '\t<base url="http://www.cisp.spb.ru">\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '\t<meta http-equiv="content-type" content="text/html; charset=windows-1251">\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '\t<meta name="copyright" content="Copyright (C) 2000-2001 by ChemInform Saint-Petersburg (CISP) Ltd.">\n';
    strHTMLTemplate += '\t<meta name="reply-to" content="webmaster@cisp.spb.ru">\n';
    strHTMLTemplate += '</head>\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '<style>\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += 'body\n';
    strHTMLTemplate += '{\n';
    strHTMLTemplate += '\tmargin     : 0;\n';
    strHTMLTemplate += '\tbackground : #C6D9F7;\n';
    strHTMLTemplate += '}\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '</style>\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '<body>\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '<table width="100%" height="100%" border="0" cellspacing="0" cellpadding="0">\n';
    strHTMLTemplate += '\t<tr>\n';
    strHTMLTemplate += '\t\t<td align="center">\n';
    strHTMLTemplate += '\t\t\t<table width="820px" height="620px" border="0" cellspacing="0" cellpadding="0">\n';
    strHTMLTemplate += '\t\t\t\t<tr>\n';
    strHTMLTemplate += '\t\t\t\t\t<td><img src="/images/zoom/topleft.gif" width="10px" height="10px"></td>\n';
    strHTMLTemplate += '\t\t\t\t\t<td width="800px"><img src="/images/zoom/top.gif" width="800px" height="10px"></td>\n';
    strHTMLTemplate += '\t\t\t\t\t<td><img src="/images/zoom/topright.gif" width="10px" height="10px"></td>\n';
    strHTMLTemplate += '\t\t\t\t</tr>\n';
    strHTMLTemplate += '\t\t\t\t<tr>\n';
    strHTMLTemplate += '\t\t\t\t\t<td><img src="/images/zoom/left.gif" width="10px" height="600px"></td>\n';
    strHTMLTemplate += '\t\t\t\t\t<td width="800px" height="600px"><img src="%Slide%" width="800px" height="600px"></td>\n';
    strHTMLTemplate += '\t\t\t\t\t<td><img src="/images/zoom/right.gif" width="10px" height="600px"></td>\n';
    strHTMLTemplate += '\t\t\t\t</tr>\n';
    strHTMLTemplate += '\t\t\t\t<tr>\n';
    strHTMLTemplate += '\t\t\t\t\t<td><img src="/images/zoom/bottomleft.gif" width="10px" height="10px"></td>\n';
    strHTMLTemplate += '\t\t\t\t\t<td width="800px"><img src="/images/zoom/bottom.gif" width="800px" height="10px"></td>\n';
    strHTMLTemplate += '\t\t\t\t\t<td><img src="/images/zoom/bottomright.gif" width="10px" height="10px"></td>\n';
    strHTMLTemplate += '\t\t\t\t</tr>\n';
    strHTMLTemplate += '\t\t\t</table>\n';
    strHTMLTemplate += '\t\t</td>\n';
    strHTMLTemplate += '\t</tr>\n';
    strHTMLTemplate += '</table>\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '</body>\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '\n';
    strHTMLTemplate += '</html>\n';

    strHTML = FormatStringEx
              (
                  strHTMLTemplate,
                  "%Number%",
                  this.intCurrentSlide + 1,
                  "%Slide%",
                  this.arrSlides [this.intCurrentSlide].strZoomURL
              );

    objDocument.write (strHTML);
}
