From: Subject: The Code Project - Drawing Barcodes in Windows Part 3 - I2of5 - Bitmaps & Palettes Date: Mon, 6 Dec 2004 16:57:28 +0300 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0000_01C4DBB4.AB22D740" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.2180 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.codeproject.com/bitmap/barcode3.asp The Code Project - Drawing Barcodes in Windows Part 3 = - I2of5 - Bitmaps & Palettes
3D"The 3D"Advertise
All = Topics, MFC / = C++=20 >> Bitmaps=20 & Palettes >> General
Drawing Barcodes in = Windows=20 Part 3 - I2of5
By Neil=20 Van Eps

An=20 article on drawing I2of5 barcodes to the screen or to = the=20 clipboard 
  C++ (VC7, VC6)
Windows = (WinXP,=20 Win2K, Win95, Win98, WinME, NT4)
MFC, Win32,=20 VS
Dev
  Posted 15 Jun = 2002
Articles=20 by this author
24,414=20 = views
Search:
Toolbox
Broken=20 Article?
VS.NET = 2003 for=20 $899
MSDN = Univ. from=20 $1950
Print version
Send=20 to a friend

Sign in / Sign = up
 Email
 Password
Remember = me
Lost your Password?
 


=
7 members have rated = this=20 article. Result:
Popularity:=20 3.87. Rating: 4.58 out of=20 5.
  • Downl= oad=20 source - 40 Kb

Introduction

A recent project at work required that I write out barcode = characters=20 into a font file for an old photo-typesetter. This experience = inspired me=20 to start a side project writing some code that renders a barcode = on the=20 Windows screen, given the proper input. This series of articles is = the=20 result of that project.

I2of5 basics

This third article is about drawing I2of5 barcodes on the = Windows=20 screen. Before I start discussing the code, we'll need to know = some basic=20 facts about the I2of5 barcode symbology. I2of5 is used today = mainly in the=20 distribution industry. I2of5 is a numeric-only symbology, with = each I2of5=20 character encoding two digits, one in the bars and one in the = spaces. This=20 means that an I2of5 message must have an even number of digits. In = each=20 pair of digits, there are five bars, two of which are wide and = three of=20 which are narrow. There are also five spaces, two of which are = wide and=20 three of which are narrow. The encoding patterns for the 10 digits = are=20 listed below.

Character

Pattern

0

nnwwn

1

wnnnw

2

nwnnw

3

wwnnn

4

nnwnw

5

wnwnn

6

nwwnn

7

nnnww

8

wnnwn

9

nwnwn

An I2of5 message begins/ends with an a start/stop character. = The start=20 code consists of two narrow bars and two narrow spaces; the stop = code=20 consists of a wide bar, narrow space, and a narrow bar. A sample = I2of5=20 message =93012345=94 is shown below, complete with start and stop = codes.

The Barcode Bitmap Workspace

There are three different projects in the Barcode Bitmap = workspace. The=20 first and most important project is the bblib project. This = project is a=20 static library where code to draw all of the different types of = barcodes=20 exists. This also is the main piece of code discussed in this = series of=20 articles. Another project Barcode Bitmap workspace is the bbdll = project.=20 This project is simply a regular DLL wrapper around the bblib = static=20 library. The final project in the Barcode Bitmap workspace is the = DLL=20 client project. This project is a simple dialog-based application = that=20 calls the bbdll DLL to draw barcodes in the dialog, or put = barcodes on the=20 clipboard as Windows bitmaps.

The base class CBarcode

The base class for all the barcode types discussed in this = series of=20 articles is the CBarcode class. The class declaration = is=20 listed below.

class =
CBarcode
{
    public:
        CBarcode();
        void LoadData(CString =
csMessage, double dNarrowBar, double dFinalHeight,=20
                      HDC pDC, int =
nStartingXPixel, int nStartingYPixel,=20
                      double dRatio =3D =
1.0);
        virtual void DrawBitmap() =3D 0;
        virtual void BitmapToClipboard() =3D 0;
        virtual ~CBarcode();
        long GetBarcodePixelWidth();
        long GetBarcodePixelHeight();
    protected:
        CString m_csMessage;
        HDC m_hDC;
        long m_nFinalBarcodePixelWidth;
        long m_nNarrowBarPixelWidth;
        long m_nPixelHeight;
        long m_nStartingXPixel;
        long m_nStartingYPixel;
        long m_nSymbology;
        long m_nWideBarPixelWidth;
        virtual void DrawPattern(CString csPattern) =3D 0;
};

There are a few things to note about the CBarcode = class.=20 First note that it has data members that contain all of the useful = data=20 needed to draw a barcode message. This data includes the narrow = element=20 pixel width, the wide element pixel width, the message, and the = symbology.=20 Second the class has data members that contain information about = how to=20 output the barcode message. This data includes a device context = handle,=20 and a starting X and Y pixel. Third the class has some public = member=20 functions to intialize the class by loading data, and obtain = information=20 about the barcode message, namely its pixel height and width. = Fourth the=20 class has several abstract member functions that make this class = an=20 abstract base class. Any classes derived from = CBarcode will=20 be expected to implement these functions.

The CI2of5 class

The CI2of5 class is the class to implement to draw = an=20 I2of5 barcode. The class declaration is listed = below.

class CI2of5 : public CBarcode =20
{
public:
    void BitmapToClipboard();
    void DrawBitmap();
    CI2of5();
    virtual ~CI2of5();
private:
    CString RetrievePattern(int =
nTwoDigitNumber);
    void DrawPattern(CString =
csCharPattern);

};

The class has two public functions = BitmapToClipboard() and=20 DrawBitmap(), plus it inherits the = LoadData()=20 function from the CBarcode class. The steps to use = the class=20 are simple, declare an instance of the class, call = LoadData()=20 to intialize class data, and then call either=20 BitmapToClipboard() if you want to put a bitmap of = the=20 barcode on the clipboard, or call DrawBitmap() to = draw the=20 barcode message.

Drawing a Barcode to a Device Context

The following code snipet is an example using=20 DrawBitmap().

CString            csMessage;
double            dNarrowBar,dHeight, =
dRatio;
HDC            pDC;
long            nStartingXPixel, =
nStartingYPixel;
CI2of5            oBarcode;

// assign variable values here

// call LoadData and draw the barcode
oBarcode.LoadData(csMessage,dNarrowBar,dHeight,pDC,
                  nStartingXPixel,nStartingYPixel,dRatio);
oBarcode.DrawBitmap();

Drawing a Barcode to the Clipboard

The following code snipet is an example using=20 BitmapToClipboard().

HDC            hDC =3D =
NULL;
double            =
dNarrowbar,dHeight,dRatio;
CI2of5            oBarcode;

// assign variable values here

// call LoadData and =
BitmapToClipboard()
oBarcode.LoadData(csMessage,dNarrowBar,dHeight,hDC,0,0,dRatio);
oBarcode.BitmapToClipboard();

Note that when using the BitmapToClipboard() = function, you=20 can pass a null device context handle and zeroes for the starting = X and Y=20 pixel in the LoadData() call. Obviously the starting = X and Y=20 pixels are meaningless on the clipboard, but what about the null = device=20 context handle? The answer to that question can be found by = looking at=20 this code snipet from the BitmapToClipboard() = function.

CDC    memDC;
memDC.CreateCompatibleDC(NULL);

So the BitmapToClipboard() function creates its = own memory=20 device context by using the = memDC.CreateCompatibleDC(NULL)=20 function call. A quick look at the MSDN documentation shows that = if you=20 pass a NULL value to CreateCompatibleDC, the device context = created is=20 compatible with the screen.

CBarcode::LoadData() details

The parameters for CBarcode::LoadData() deserve = some=20 further explanation and this seems like the place to do it. The = first=20 parameter, csMessage is simply the message you wish = to be=20 drawn as a I2of5 barcode. The next parameter = dNarrowBar is=20 the width of the narrow element in inches. The parameter=20 dHeight is the height of the barcode in inches. The = parameter=20 pDC is a handle to the device context that the = barcode will=20 be drawn in. The next two parameters, nStartingXPixel = and=20 nStartingYPixel define the coordinates to start = drawing the=20 barcode. The final parameter, dRatio is the ratio of=20 wide/narrow element widths. If you remember the declaration of the = CBarcode class above, you'll remember that it stores = all=20 width and height information in pixels, and that it stores the = narrow=20 element width and the wide element width instead of the narrow = element=20 width and the wide/narrow element width ratio. Clearly=20 CBarcode::LoadData() is doing some behind the scenes=20 conversion work.

The first step to that conversion work is to get the X axis and = Y axis=20 dpi, which is done by the following code, taken from=20 CBarcode::LoadData().

CDC    tempDC;
tempDC.Attach(m_hDC);
nXAxisDpi =3D tempDC.GetDeviceCaps(LOGPIXELSX);
nYAxisDpi =3D tempDC.GetDeviceCaps(LOGPIXELSY);
tempDC.Detach();

Once you have the X and Y axis dpi, you can calculate the pixel = height,=20 narrow element pixel width, and wide element pixel width as shown = in the=20 following code snipet.

// load =
the final attributes that depend on the device context
m_nPixelHeight =3D (int)((nYAxisDpi*dFinalHeight)+0.5);
m_nNarrowBarPixelWidth =3D (int)((nXAxisDpi*dNarrowBar)+0.5);
m_nWideBarPixelWidth =3D (int)(dRatio*m_nNarrowBarPixelWidth);

Note the rounding effect when calculating the narrow element = pixel=20 width and the wide element pixel width. The narrow element width = has a=20 lower limit of one pixel, so the barcode you can produce is = limited by the=20 physical limitations of the output device.

Next you can calculate the final barcode pixel width, this = operation is=20 symbology specific and the Code 39 code excerpt is listed = below.

// add start code
m_nFinalBarcodePixelWidth =3D 4 * =
m_nNarrowBarPixelWidth;

// add message
m_nFinalBarcodePixelWidth +=3D ((3*m_nNarrowBarPixelWidth)+(2*m_nWideBarPixelWidth))
                              *m_csMessage.GetLength();
       =20
// add stop code
m_nFinalBarcodePixelWidth +=3D (2*m_nNarrowBarPixelWidth)+(m_nWideBarPixelWidt=
h);

This code sums the width of the start code the message and the = stop=20 code to determine to final barcode width.

CI2of5::DrawBitmap() details

The DrawBitmap() function is where each message = character=20 is drawn.. A listing of the CI2of5::DrawBitmap() = function is=20 listed below.

void =
CI2of5::DrawBitmap()
{
    int        i,nNumber;

    // draw the start character
    DrawPattern("nnnn");

    // for each character in the =
message
    for (i=3D0;i<m_csMessage.GetLength();i+=3D2)
    {
        // retrieve the next two digit =
number
        nNumber =3D m_csMessage.GetAt(i) - '0';
        nNumber =3D nNumber * 10;
        nNumber +=3D m_csMessage.GetAt(i+1) - '0';

        // draw the two digit number
        DrawPattern(RetrievePattern(nNumber));
    }

    // draw the stop character
    DrawPattern("wnn");

    return;
}

The CI2of5::DrawBitmap() function starts out by = drawing=20 the start code. The the code steps through every character in the = message=20 and draws the characters in two digit pairs. There are two private = member=20 functions that are used here. CI2of5::DrawPattern() = draws the=20 pattern passed to it, the pattern is a CString in the = form of=20 =93nnnnwwwwnn=94 (the two digit pair '00') like the character data = mentioned=20 above. CI2of5::RetrievePattern() is basically a giant = switch=20 statement, retrieving the pattern for any legal two digit pair = passed to=20 it. (00 through 99) Note that each character pattern returned from = CI2of5::RetrievePattern() draws two digit pairs, the = bars are=20 the left digit and the spaces are the right digit. Finally the = code draws=20 the stop character and the barcode message is complete.

CI2of5::DrawPattern() details

The CI2of5::DrawPattern() function draws a single = I2of5=20 barcode character in the passed device context. The=20 CI2of5::DrawPattern() function is listed = below.

void =
CI2of5::DrawPattern(CString csCharPattern)
{
    int            =
i,nXPixel,nYPixel,nTempWidth;
    CDC            oDC;

    // attach to the device context
    oDC.Attach(m_hDC);

    // initialize X pixel value
    nXPixel =3D m_nStartingXPixel;
   =20
    for (i=3D0;i<csCharPattern.GetLength();i++)
    {
        // decide if narrow or wide bar
        if =
(csCharPattern.GetAt(i)=3D=3D'n')
            nTempWidth =3D m_nNarrowBarPixelWidth;
        else
            nTempWidth =3D m_nWideBarPixelWidth;
       =20
        // X value for loop
        for =
(nXPixel=3Dm_nStartingXPixel;
             nXPixel<m_nStartingXPixel+nTempWidth;
             nXPixel++)
        {
            // Y value for loop
            for =
(nYPixel=3Dm_nStartingYPixel;
                 nYPixel<m_nStartingYPixel+m_nPixelHeight;
                 nYPixel++)
            {
                // if this is a bar
                if (i%2=3D=3D0)
                    oDC.SetPixelV(nXPixel,nYPixel,COLORBLACK);
                else
                    oDC.SetPixelV(nXPixel,nYPixel,COLORWHITE);
            }
        }

        // advance the starting =
position
        m_nStartingXPixel+=3D nTempWidth;
    }

    // detach from the device context
    oDC.Detach();
   =20
    return;
}

The CI2of5::DrawPattern() function is basically = three=20 loops. The outermost loop loops thru every two digit pair in the = pattern=20 (nnnnwwwwnn). The middle loop loops through every X pixel in the = current=20 narrow or wide element width. The innermost loop loops through = every Y=20 pixel in the current X pixel. In the center of the three loops is = a simple=20 if statement that determines if we're drawing a bar or a space, = and sets=20 the current pixel to black or white for a bar or space. This = function is=20 repeated for the start character, all the message characters, and = the stop=20 character to draw the complete I2of5 barcode.

Summary

Thats it for drawing I2of5 barcodes. Part = IV of the=20 series deals with drawing Code 93 barcodes. I hope you find this = class=20 library useful.

Reference

The Bar Code Book - A Comprehensive Guide To Reading, Printing, = Specifying, and Applying Bar Code and Other Machine-Readable = Symbols 4th=20 Edition

By Roger C. Palmer=20

Copyright 1989,1991, 1995, 2001 by Helmers Publishing, Inc.

ISBN 0-911261-13-3

Neil Van Eps


Click here=20 to view Neil Van Eps's online = profile.


Other popular articles:

  • Really cool=20 visual FX
    A set of classes = for doing=20 stunning visual effects, including water, plasma and = fire.
  • Drawing=20 transparent bitmaps using CImage
    Universal implementation of transparent = drawing of=20 bitmap files (BMP, JPEG, GIF, PNG). Based on the method = described=20 by Chris Becke and Raja Segar.
  • DFB=20 vs. DIB
    The difference = between DFB=20 and DIB.
  • Displaying=20 Bitmap with Scrolling
    An = article=20 showing how to display a picture within a dialog, and add=20 scrollbars where needed to view the whole = image.
= =20
[Top] Sign=20 in to vote for this = article:    =20 PoorExcellent  =20 =

Premium=20 Sponsor

=
= FAQ  Noise level=20    Search comments  
  View =20 = Topic View    Per page = 10 =20  
New = thread Msgs 1 to 2 of 2 (Total: 2) (Refresh) First Prev=20 Next Last =
Subject  Author  Date 
  Licensing   Neil=20 Van Eps  18:04 = 4 Apr=20 = '03 
  <= /TABLE>
I've=20 unexpectedly been getting some questions = about=20 licensing for my project. I've decided = to=20 release the code under the BSD license = which=20 I've reproduced for your convenience = below.=20

Copyright (c) 2002, Neil Van = Eps
All=20 rights reserved.

Redistribution = and use=20 in source and binary forms, with or = without=20 modification, are permitted provided = that the=20 following conditions are met:

*=20 Redistributions of source code must = retain the=20 above copyright notice, this list of = conditions=20 and the following disclaimer.
*=20 Redistributions in binary form must = reproduce=20 the above copyright notice, this list of = conditions and the following disclaimer = in the=20 documentation and/or other materials = provided=20 with the distribution.
* Neither the = name of=20 the Neil Van Eps nor the names of any = other=20 contributors may be used to endorse or = promote=20 products derived from this software = without=20 specific prior written = permission.

THIS=20 SOFTWARE IS PROVIDED BY THE COPYRIGHT = HOLDERS=20 AND CONTRIBUTORS "AS IS" AND ANY EXPRESS = OR=20 IMPLIED WARRANTIES, INCLUDING, BUT NOT = LIMITED=20 TO, THE IMPLIED WARRANTIES OF = MERCHANTABILITY=20 AND FITNESS FOR A PARTICULAR PURPOSE ARE = DISCLAIMED. IN NO EVENT SHALL THE = COPYRIGHT=20 OWNER OR CONTRIBUTORS BE LIABLE FOR ANY = DIRECT,=20 INDIRECT, INCIDENTAL, SPECIAL, = EXEMPLARY, OR=20 CONSEQUENTIAL DAMAGES (INCLUDING, BUT = NOT=20 LIMITED TO, PROCUREMENT OF SUBSTITUTE = GOODS OR=20 SERVICES; LOSS OF USE, DATA, OR PROFITS; = OR=20 BUSINESS INTERRUPTION) HOWEVER CAUSED = AND ON ANY=20 THEORY OF LIABILITY, WHETHER IN = CONTRACT, STRICT=20 LIABILITY, OR TORT (INCLUDING NEGLIGENCE = OR=20 OTHERWISE) ARISING IN ANY WAY OUT OF THE = USE OF=20 THIS SOFTWARE, EVEN IF ADVISED OF THE=20 POSSIBILITY OF SUCH DAMAGE.

Neil = Van=20 Eps
 
[Reply][= Email][View=20 Thread][Get=20 Link] [Modify|Delete]
  Works great, performance=20 improvement   mssg  1:47 4 = Apr=20 = '03 
  <= /TABLE>
The=20 barcode class works great. Comes in = handy when=20 you want to print barcodes without = having to=20 install special barcode = fonts.

The=20 performance is not good, though. It can = be=20 improved dramatically with the following = simple=20 change to the code:

In the=20 CI2of5::DrawPattern(CString = csCharPattern)=20 method, replace

.
.
.
// = X value=20 for loop
for=20 = (nXPixel=3Dm_nStartingXPixel;nXPixel{
//=20 Y value for loop
for=20 = (nYPixel=3Dm_nStartingYPixel;nYPixel=20 {
// if this is a bar
if=20 = (i%2=3D=3D0)
oDC.SetPixelV(nXPixel,nYPixel,COLORBLACK);
else
oDC= .SetPixelV(nXPixel,nYPixel,COLORWHITE);
}
}
.
.
.
with = the = following:
.
.
.
COLORREF=20 ocrt;
if (i%2=3D=3D0)
{
ocrt = =3D=20 COLORBLACK;
}
else
{
ocrt = =3D=20 = COLORWHITE;
}

oDC.FillSolidRect(=20 m_nStartingXPixel, m_nStartingYPixel,=20 nTempWidth, m_nPixelHeight, ocrt=20 );
.
.
.
That's all.=20
 
[Reply][= Email][View=20 Thread][Get=20 Link] [Modify|Delete]
Last Visit: 8:41 Monday 6th = December,=20 2004 First Prev=20 Next Last=20 =

All Topics, MFC / C++ = >> Bitmaps & = Palettes=20 >> General=20
Updated: 15 Jun 2002
Article = content=20 copyright Neil Van Eps, 2002
everything else Copyright =A9 CodeProject, = 1999-2004.=20
Advertise = on The=20 Code Project | Privacy=20

MSDN = Communities |=20 ASPAlliance =95 Developer Fusion =95 = DevGuru =95 Programmers Heaven = =95 Planet Source Code = =95 Resource Index =95 Tek-Tips Forums =95 What is XML? =95 VisualBuilder =95 ZVON =95 Search = Us!=20
------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/images/standard/logo225x72.gif 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 +FI/9XaP+GUbCAA7 ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/admentor/images/sponsors.gif R0lGODlhFAA8AMQAAP///+/v79/f38zMzL+/v6+vr5mZmY+Pj4CAgH9/f3BwcGZmZlBQUEBAQDMz MyAgIBAQEAAAAP4BAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUU ABIALAAAAAAUADwAAAX0ICCOZGmeaKqubOu+MFscwvMUrRAhS+RALcIDAGEEIgOWkBA5MFsBSASi a7gEiKQikGtwYUxCLOBoJM6JYGTNhhLe8Fhs4IgQGkmWANJ4CIdKEQANBDoCgQUKBAiCLXVsCi8G CAhiLgEFaGl6UmyNK0wGcJYrA58vAQ1maGqepykBo2+XmaycrmqicSymcqmrZ62ebrJyIqQqCaqq QLw+EQ18agAPAwOAoEgLCqaHK2SKa80smACTeSoCCQQBC0VfKQOdDc8MK4wFjAcACq8mCFbCAEjg rwRAAAIJ3nuQoMcCZQVJMHK1ZoUAWbuMadzIsaOxEAA7 ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/admentor/images/advertise.gif R0lGODlhFAA8AMQAAP///+/v79/f38zMzL+/v6+vr5mZmYCAgH9/f3BwcGZmZlBQUEBAQDMzMyAg IBAQEAAAAP4BAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUU ABEALAAAAAAUADwAAAX/ICCOZGmeaDoGhDCopQFBB2PAogAtyaFAARwBAkAgABACbgBBKJ5AHOA3 gySkIsLhoMSuBN6EgvCwSnWGXyIKGwIeDGRXNZQZChAwzgF5CBxxUgEGYAlBdAgCRotHKgdJVVVe kyIDDC8AAw56KAIMDRANDJ9JMAuRM4EwlpheOq1YTHNYfw8Ji1JDqIIEvb5eLC5eMjQ2Zzs9P4d0 REZyS01PylJUM1dYWlyxBsvYfQqwOAWnoTfAa0RnCHy2uTMN3LHglPQGo/f3MI+ooVjwIjXcjXgF bQGBAqA4qagGwZyUAQcI0QMg4BqWAgxmqOOzwyGKAeQc/JDyyIESNzgMFZR5oEDGsIwzErlKUCbd JAMGJ54IAQA7 ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/images/hlp.gif R0lGODlhEAAQAMQAAP//////Zv//AMzMzMTCxP6sILKxsrCvsP+ZAJmZmYSChLJhsqB8QISCBGZm ZoQChAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUU AAUALAAAAAAQABAAAAVhYCGOxcOQKPkYj+OkKvvMLrzO+AxB8Sz8DRxPdHs0gj/dsDgjJFsJHvMR CNIShF3LkcM5sIQF5KFQuHJfQliqAJTP6bXIoRgA3GawmLQ72AF6Qyg7BnZyMCJ9D4KIiYwjIQA7 ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/images/space.gif R0lGODlhAgACAID/AMDAwAAAACH5BAEAAAAALAAAAAACAAIAQAIChFEAOw== ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/images/sitebuild_icon.gif R0lGODlhEAAQAMQAAP////Pz8/Pm4t/g49vc3MzMzP/HXbLM5rvJzeilcbSystClnt6ge5mxyv+Z M6Kiot6FUZmZmX2atpCOjuRtPuRkF8xmM356eXB5lYNaMVNZa9YsAH1IIrYvAEdHaRcXFSH5BAUU AAAALAAAAAAQABAAAAVXICASClGciBKIrPgERDDMQzO0LnIpR4NpEwwOENE8PBKM5/HxDCcKQOFX AARWQ9Hgd8u2BAzLwttKGDYcMgvi2GTUIrYbDpC/4XZ6Ht++q/dqFBUdfiwhADs= ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/images/support_icon.gif R0lGODlhEAAQAOYAAP//zP/5tP/3rvTzxf/0nv3xmv/xlO3tvv/vjf/thP/re+H/fNr4eO7pr+/n oebmuv7ncebmtf/mauHht//fTv/fSv/dQtDub9fcpv/aOtTUrv/ZNuPhQ+HhRvPVHdHRqcXha83N p73ea+DNaeHNZNvWPdHKi9jLd8zMmfLMKtnWQPLQFu7MFMTDn8zMM7bQZbLNXLnDhtW+KLG+erGx j6q8V7axa6+9UaS7Xbq1QqW9Ure0RKisgLCvdamnjqSvcZ2yWqiniZ20VaOmf8ylCpqqYL+iI5Wk aMOgB5KmVJGRd4ueUomRYImRO4WFbYGNP5aGOn2PSH+Cd3iJQnqGVXOEUn59aXWDS3OCQndzgHNy d25rdGh0NoFtGGVzOWZmZmZmZmZqWnxoGWVoTHhqEGFrRGZmVVhXSlVYQFJdMFJaKUdSJEpKP0FB OEdBIT1EJzdAGzo6MTs4IzE4HDAxJzExIS0zGSkxGSsrKSYmISIiHBIVCxMTDwYHBAgIAAAAACH/ C05FVFNDQVBFMi4wAwEAAAAh+QQFyAAAACwCAAAADAAQAAAHhYAAgoIheIOHggd4UzyIg3ReCzgh jmZ2MCIXRYgtfVNfZVRUKIdscEdbWltSP4dxa0dZW19WM4dKe0JhV0lLGIhnczogIDGOB399anTH VnxADFhhB4IaTiEDei8vQBMfThoPbZRBdl5DABptE4g+Vo4AB2dUY3RMaDSHLXpJb3lRadgICgQA IfkEBQ8AAAAsAgAAAAwABAAABy6AAAEECAokXQoIBAEACQkFAg1yTz0CBI4JCgYCcgCeJgUKCYIF UGQuJRw5BYyBACH5BAUPAAAALAIAAAAMAAQAAActgAAFEBQZKUQZFBAFABUWEAYObk02BhAWjhsS Bm4AnicQiYIQRkgsKx4yiwCBACH5BAkPAAAALAIAAAAMABAAAAc8gAABBAYJI2IJBgQBAAgJBAIN ck89AgQJjgkFAnIAniaXCIIEUGQuKh07i56sra6vsLGys7S1tre4ubOBADs= ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/images/print.gif R0lGODlhEAAQAKIAAP//////AMTCxP6sIv+ZAAAAAAAAAAAAACH5BAUUAAMALAAAAAAQABAAAAM7 OLrcXjDGB6qthcoCcuOX5THc1k0KGHZC0Q7b1raQYN+4q8e8XeM01ywjxAWOPgiMJ/MUgUMSU+mo NhIAOw== ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/images/mail.gif R0lGODlhEAAQAJEAAP////+ZAAAAAAAAACH5BAUUAAEALAAAAAAQABAAAAIpjI+py30Co5xBgIsz FhVIDXmdloWcRZJnOW1jWr7e56JwPeWRw/f+UQAAOw== ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/images/signup.gif R0lGODlhOQARANUAAP/////8+P/47v/v2P/nwv/cp//Vlv/Qif/Ng//Lfv/Hc//Dav+/YP+7VP+2 Sf+1Rv+1Ov+vOP+sMP+qK/6nJf+mIPyiGviiIv+fEPefG/+cCPicE/KcGv+ZAPCVDfWTAO+TCvCQ AOuPBu+PAOiQDeqOBeaKAeGJBeKIAN6FANiCAM98AMZ3AL5yALVtAK5oAKVjAJpcAJVZAI9WAIZQ AHtKAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUUADYALAAAAAA5ABEAAAb/QJtw 6Gg4HpCIcslsOp9QyYRiGVqHjYVi0UBCv+CvdHLheK5CBiLhwHTe8Lh8Tq/LNRsPSXRlHBZudnIJ Axp1BQSCdSUnJlgIgIpyAwB2CQ2SdCgqKEILCYGZbwADbxMEAwZvGgkTrBOEmJkqKjYPCg6icBgA qg2kBgACHQsADQkAAcEAhpIpLCoODM26v5jJb8EYBQDbAAsdBN2ZHy0rEQ+6cNoTvW/IEwKV8m/0 oi4tEhHUgrD1le0S/OtAimApg6I+wHBRYYKFTJQg/CowCgCEYAbaZXSn8Z6MFjYycMgEAYDJYW8w yAMgsFgWY8RgSgpBI4aQPCBETZigTt2IRBg0XgzRU6KnUUU/a8C4IuIEpw9Ho74J8aJGDZtoSqRY waJrixYuwoodS7as2bMwZtCYsRTNkK1ewZ6dS/fsCxhCrwQBADs= ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/images/red.gif R0lGODlhAQABALMAAP8zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAACwAAAAAAQABAAAEAhBEADs= ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/images/white.gif R0lGODlhAQABALMAAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAACwAAAAAAQABAAAEAhBEADs= ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/bitmap/Barcode3/Barcode3.jpg /9j//gAIV0FORzIC/+AAEEpGSUYAAQEBAGAAYAAA/9sAQwAQCwwODAoQDg0OEhEQExgoGhgWFhgx IyUdKDozPTw5Mzg3QEhcTkBEV0U3OFBtUVdfYmdoZz5NcXlwZHhcZWdj/9sAQwEREhIYFRgvGhov Y0I4QmNjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2NjY2Nj/8AA EQgBBAGQAwEhAAIRAQMRAf/EAB8AAAEFAQEBAQEBAAAAAAAAAAABAgMEBQYHCAkKC//EALUQAAIB AwMCBAMFBQQEAAABfQECAwAEEQUSITFBBhNRYQcicRQygZGhCCNCscEVUtHwJDNicoIJChYXGBka JSYnKCkqNDU2Nzg5OkNERUZHSElKU1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6g4SFhoeIiYqSk5SV lpeYmZqio6Slpqeoqaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2drh4uPk5ebn6Onq8fLz9PX2 9/j5+v/EAB8BAAMBAQEBAQEBAQEAAAAAAAABAgMEBQYHCAkKC//EALURAAIBAgQEAwQHBQQEAAEC dwABAgMRBAUhMQYSQVEHYXETIjKBCBRCkaGxwQkjM1LwFWJy0QoWJDThJfEXGBkaJicoKSo1Njc4 OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoKDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uLj5OXm5+jp6vLz9PX29/j5+v/aAAwDAQAC EQMRAD8A9AooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKA CigAooAKKACigAooAKKACigAooAjnnhtoWmuJY4Yl+88jBVHbkmmwXdtcKjQXEUokBZCjhtwBwSM dcEgH60ATU1JEkUtG6uASuVOeQcEfgQRQA6igApskiRRtJI6oiAszMcBQOpJoAbBPDcwrNbyxzRN 9142DKe3BFSUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFABRQAUUAFFA BRQBR1ZEMEUj/aVMUm5ZbZN7xHBGduDnglfun72eMZGLtuZdSS9FtP8AaDb3CxyRRvCsr4j2lkbI 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 AKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACi gAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAKKACigAooAK KAP/2Q== ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/profile/images/{9D063FE3-EE6F-4B99-BDB6-B35567E80508}.jpg /9j/4AAQSkZJRgABAQEAYABgAAD/2wBDAAgGBgcGBQgHBwcJCQgKDBQNDAsLDBkSEw8UHRofHh0a HBwgJC4nICIsIxwcKDcpLDAxNDQ0Hyc5PTgyPC4zNDL/2wBDAQkJCQwLDBgNDRgyIRwhMjIyMjIy MjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjIyMjL/wAARCACWAJYDASIA AhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAAAgEDAwIEAwUFBAQA AAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRolJicoKSo0NTY3 ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZmqKjpKWm p6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QAHwEA AwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElK U1RVVldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3 uLm6wsPExcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD3+iii gAooooAhuvtP2WX7IYhcbT5fnA7N3bOOcVjHWtXsPm1bQm8nvPpcpuwo9Wj2LJ6cIr9fxrfrxv4v eNr2HUP+EZ0u4e3RIhJfTQsVdi2SsQYcgYG5sckMo6bgQ1oUZVqipw3Z2fhrXdMi0LVdevtVgWG4 1W6DzSygIAkhhiVfrHHGQOpJz3pB8VvBZfZ/bDZzjJs5wPz2Yr5rFrAkxmWJBJ0yF6dam6Z/z61X Ke3TyTT35/cfVWmeKNA1mXytN1mwupu8UVwrOPqucjp3Fa1fHskaSKVkRXXnhhkd61dN8Sa9ouBp ms31sifdiWUtGvXpG2U/SjlMqmSVF8Ek/wAP8z6torwbS/jR4hs8LqNnZajGOMjMEh68lhuU/QKK 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 ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/images/info.GIF R0lGODlhEAAQALMAAP//////AMzMzMTCxLKxsrCvsLCvX5mZmYSChLJhsoSCBGZmZoQChAAAAAAA AAAAACH5BAUUAAAALAAAAAAQABAAAARdEMgJ2KKYMmJvngnHjIuHJciojk2jiUGsqK60jcocs/Wt DjvLweUbBQyqxWHQYjRXpOUg0dgUSivlYGCpFACF60K4TXgWBIEkrJ3WJK2lREr9tApq92dy7+4p LR8RADs= ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/images/search.gif R0lGODlhEAAPAMQAAP////b//+v//+bz/8z//9H1+sb1/8Tv+r3v/7Tm///Mmb3c7frMi6jb/67V 7dDMxf63U8G9xbO82Kmy0MaqhJ2r0aylxayppYyp2JOm0NCLV4KbzIGZyYGPucd6SqR9gyH5BAUU AAAALAAAAAAQAA8AAAVtICCOgJRxXCaRbFUtxeFgGStKVRAYTWJgE1tmMUggEAaDY2PbHI6EKMHA aR4aCIJgW6iyMg7fVrdgsiSYpFY3qbAUjw7GUSgsJjUSA6K5TDaAGUF6EB4fETaEhhaJIwqFH4yN IhSLkyMRkZcjIQA7 ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/images/admin_modify.gif R0lGODlhDwAQALMAAAAAAAAAgAAA/8wA////AICAgMDAwP///wAAAAAAAAAAAAAAAAAAAAAAAAAA AAAAACH5BAEAAAMALAAAAAAPABAAAAROcMhJq7226M0LLUcohgbwhQBwaERJlYEQhMThTqogAEUQ tCYJwKBT1Wo3SbHn+yWLh2MUqNytmj5q0SAleKmpQcFALpfDwpR6HcS434MIADs= ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/images/t.gif R0lGODlhAQABAIAAAP//////zCH5BAUUAAAALAAAAAABAAEAAAICRAEAOw== ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/images/news_unselected.gif R0lGODlhDAAQALMAAAAAAAAAgIAAAP8AAMAAwP//AICAgMDAwP///wAAAAAAAAAAAAAAAAAAAAAA AAAAACH5BAEAAAQALAAAAAAMABAAAARKkMg5x6B4lCGwPIIFeIcGdEaqWiJhIDAccuMbIwegGy4S /DhAsHcrIAo5IsxoTL5+0KNzeTwiaz5ooHB1Ma1c52FMJo906LSOEAEAOw== ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/images/userinfo.gif R0lGODlhDgAPALMAAP///+Tm1MzMmayqlJmZZnx+fACZ/zNm/2ZmADMAzCQiJAAA/wAAAAAAAAAA AAAAACH5BAUUAAAALAAAAAAOAA8AAARTEEiJKpoYVCEIqRnCeZWCMJhIBqyCUl3FBoKSCogyB4c9 IR8di1P7fXI0wcCV+iQHy4xGpxwUfBmdYovFHA6BqBRwMBgS6IS0/P0uFmoMY06vTyIAOw== ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/script/images/news_none.gif R0lGODlhDAAQALMAAAAAAAAAgIAAAP8AAMAAwP//AICAgMDAwP///wAAAAAAAAAAAAAAAAAAAAAA AAAAACH5BAEAAAQALAAAAAAMABAAAAQPkMhJq7046827/2AojlIEADs= ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://www.codeproject.com/images/signin.gif R0lGODlhOQARANUAAP/////8+P/47v/v2P/nwv/cp//Vlv/Qif/Ng//Lfv/Hc//Dav+/YP+7VP+2 Sf+1Rv+1Ov+vOP+sMP+qK/6nJf+mIPyiGviiIv+fEPefG/+cCPicE/KcGv+ZAPCVDfWTAO+TCvCQ AOuPBu+PAOiQDeqOBeaKAeGJBeKIAN6FANiCAM98AMZ3AL5yALVtAK5oAKVjAJpcAJVZAI9WAIZQ AHtKAP///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACH5BAUUADYALAAAAAA5ABEAAAb/QJtw 6Gg4HpCIcslsOp9QyYRiGVqHjYVi0UBCv+CvdHLheK5CBiLhwHTe8Lh8Tq/LNRsPSXRlHBZucRgC AAAFcAUEdnaJix0lJyZYCIBzhQkFAIodCQ2OdJ2fKCooQgsJgXETAAlvBQMdGgkTHQ0DBrITuQkD nnC5u710Kio2DwoOdBqXcQsAWZoEAc8JAAEGhRpwzg3V19lzKSwqDgzadA2FrK4AGNZvhRiZCx0E 7Yjt8/X3ch8tKxEeOKr2rAOhVQbeTDMI4A2hOA8fMqzjooWECOfi5HoDYR2AAataLYP1ER4sOCVL dlDZD4aLChMszFkmAMIEexMQLgswgZABfYQdgL5BCFSoHBcyWtjIwIGOM3WtuNWyRgiaJ6lvuEnF GicEjRhC8oCok3OOgUMdBjT8xHZEDBovhugpwfZNOqh1HbmtAeOKiBOkPtQtm9dOiBc1aoBFUyLF ChaQW7RwQbmy5cuYM2uGMYPGjL5ohjiOPFmz6dOaX8CIeyUIADs= ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: text/css; charset="koi8-r" Content-Transfer-Encoding: quoted-printable Content-Location: http://www.codeproject.com/styles/global.css BODY { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } P { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } H1 { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } H2 { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } H3 { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } H4 { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } H5 { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } H6 { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } LI { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } TD { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } TH { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } DD { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } DT { FONT-SIZE: 10pt; COLOR: black; FONT-FAMILY: Verdana, Helvetica, Arial, = sans-serif } BODY { COLOR: #000000; BACKGROUND-COLOR: #ffffff } LI { LIST-STYLE-IMAGE: none } UL { LIST-STYLE-IMAGE: none } OL { LIST-STYLE-IMAGE: none } H1 { FONT-WEIGHT: bold } H2 { FONT-WEIGHT: bold } H3 { FONT-WEIGHT: bold } H4 { FONT-WEIGHT: bold } H5 { FONT-WEIGHT: bold } TH { FONT-WEIGHT: bold } H2 { COLOR: #ff9900 } H3 { COLOR: #ff9900 } H5 { COLOR: #ff9900 } H1 { FONT-SIZE: 16pt } H2 { FONT-SIZE: 13pt } H3 { FONT-SIZE: 11pt; FONT-FAMILY: Arial, sans-serif } H4 { FONT-SIZE: 10pt; MARGIN-BOTTOM: 2px } H5 { FONT-SIZE: 9pt; MARGIN-BOTTOM: 2px } H6 { FONT-WEIGHT: normal; FONT-SIZE: 65%; COLOR: #626262 } DD { MARGIN-LEFT: 20px } PRE { PADDING-RIGHT: 7pt; PADDING-LEFT: 7pt; BACKGROUND-IMAGE: = url(/images/codebg.gif); PADDING-BOTTOM: 7pt; FONT: 9pt "Courier New", = Courier, mono; WIDTH: 100%; PADDING-TOP: 7pt; WHITE-SPACE: pre; = BACKGROUND-COLOR: #fbedbb } CODE { COLOR: #990000; FONT-FAMILY: "Courier New", Courier, mono } A:link { TEXT-DECORATION: none } A:visited { TEXT-DECORATION: none } A:active { TEXT-DECORATION: underline } A:hover { TEXT-DECORATION: underline } .top { CURSOR: hand } .MenuGroup { FONT-WEIGHT: normal; WIDTH: 124px; FONT-FAMILY: Tahoma, Arial, = sans-serif; POSITION: relative; TOP: 0px; BACKGROUND-COLOR: #ffcc99 } .MI { FONT-WEIGHT: normal; FONT-SIZE: 8pt; WIDTH: 118px; CURSOR: hand; COLOR: = black; FONT-FAMILY: Verdana, Arial, sans-serif; BACKGROUND-COLOR: = #ffcc99 } .MIs { FONT-WEIGHT: normal; FONT-SIZE: 8pt; WIDTH: 118px; CURSOR: hand; COLOR: = black; FONT-FAMILY: Verdana, Arial, sans-serif; BACKGROUND-COLOR: = #ffcc99 } .MIn { FONT-WEIGHT: normal; FONT-SIZE: 8pt; WIDTH: 118px; CURSOR: hand; COLOR: = black; FONT-FAMILY: Verdana, Arial, sans-serif; BACKGROUND-COLOR: = #ffcc99 } .MIsn { FONT-WEIGHT: normal; FONT-SIZE: 8pt; WIDTH: 118px; CURSOR: hand; COLOR: = black; FONT-FAMILY: Verdana, Arial, sans-serif; BACKGROUND-COLOR: = #ffcc99 } .MI { TEXT-DECORATION: none } .MIn { TEXT-DECORATION: none } .MI { BORDER-RIGHT: #ffcc99 1px solid; BORDER-TOP: #ffcc99 1px solid; = PADDING-LEFT: 3pt; MARGIN-LEFT: 3pt; BORDER-LEFT: #ffcc99 1px solid; = BORDER-BOTTOM: #ffcc99 1px solid } .MIs { BORDER-RIGHT: #ffcc99 1px solid; BORDER-TOP: #ffcc99 1px solid; = PADDING-LEFT: 3pt; MARGIN-LEFT: 3pt; BORDER-LEFT: #ffcc99 1px solid; = BORDER-BOTTOM: #ffcc99 1px solid } .MIn { BORDER-RIGHT: #ffcc99 1pt solid; BORDER-TOP: #ffcc99 1pt solid; = BORDER-LEFT: #ffcc99 1pt solid; BORDER-BOTTOM: #ffcc99 1pt solid } .MIn { PADDING-LEFT: 2px; MARGIN-LEFT: 2px } .MIsn { PADDING-LEFT: 2px; MARGIN-LEFT: 2px } .sidebar { FONT-WEIGHT: bold; FONT-SIZE: 9pt; COLOR: #ffffff; TEXT-DECORATION: = none } .navbar { FONT-WEIGHT: bold; FONT-SIZE: 8pt; COLOR: white; TEXT-DECORATION: none } BUTTON.toolbar { BORDER-RIGHT: white 1px solid; BORDER-TOP: white 1px solid; FONT-SIZE: = 9pt; BORDER-LEFT: white 1px solid; BORDER-BOTTOM: white 1px solid; = FONT-FAMILY: Verdana, Arial, Tahoma, "MS Sans Serif", sans-serif; = BACKGROUND-COLOR: white } DIV.toolbar { PADDING-RIGHT: 2px; PADDING-LEFT: 2px; BORDER-LEFT-COLOR: #ff9900; = BORDER-BOTTOM-COLOR: #ff9900; PADDING-BOTTOM: 2px; BORDER-TOP-COLOR: = #ff9900; PADDING-TOP: 1px; BACKGROUND-COLOR: white; BORDER-RIGHT-COLOR: = #ff9900 } TEXTAREA#ContentText { BEHAVIOR: url(/styles/lnkutils.htc) } .navbar:hover { COLOR: blue } .navbar:active { COLOR: red } .NavMenuItem { PADDING-RIGHT: 8px; PADDING-LEFT: 2px; FONT-WEIGHT: bold; FONT-SIZE: = 11px; COLOR: black; PADDING-TOP: 2px; POSITION: relative; TOP: 2px } .NavMenuItem:hover { COLOR: blue } .NavMenuItem:active { COLOR: red } .infobar { FONT-SIZE: 8pt; MARGIN-LEFT: 0pt; TEXT-INDENT: 0pt } .infobarList { FONT-SIZE: 8pt; MARGIN-LEFT: 1.5em; TEXT-INDENT: -1.5em } .InfobarHeader { FONT-WEIGHT: bold; FONT-SIZE: 9pt; MARGIN-BOTTOM: -10px; COLOR: #ab2600 } .HoverLink { BORDER-RIGHT: #fbedbb 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #fbedbb 1px solid; PADDING-LEFT: 2px; FONT-SIZE: 8pt; PADDING-BOTTOM: = 1px; BORDER-LEFT: #fbedbb 1px solid; PADDING-TOP: 1px; BORDER-BOTTOM: = #fbedbb 1px solid; BACKGROUND-COLOR: #fbedbb; TEXT-DECORATION: none } A.HoverLink { CURSOR: hand; COLOR: blue; TEXT-DECORATION: none } A.HoverLink:hover { BORDER-LEFT-COLOR: #ff9900; BORDER-BOTTOM-COLOR: #ff9900; = BORDER-TOP-COLOR: #ff9900; BACKGROUND-COLOR: #ffcc99; = BORDER-RIGHT-COLOR: #ff9900 } A.HoverLink:active { BORDER-LEFT-COLOR: #ff9900; BORDER-BOTTOM-COLOR: #ff9900; = BORDER-TOP-COLOR: #ff9900; BACKGROUND-COLOR: #ffc082; = BORDER-RIGHT-COLOR: #ff9900 } TT.equation { FONT-SIZE: 10pt; FONT-STYLE: italic; FONT-FAMILY: 'Times New Roman', = serif; WHITE-SPACE: pre } UL.download { MARGIN-LEFT: 1.5em } UL.download LI { PADDING-LEFT: 0.5em; FONT-SIZE: 9pt; LIST-STYLE-IMAGE: = url(/images/download.gif); FONT-FAMILY: Verdana, Arial, Helvetica, = sans-serif } LI.download { PADDING-LEFT: 0.5em; FONT-SIZE: 9pt; LIST-STYLE-IMAGE: = url(/images/download.gif); FONT-FAMILY: Verdana, Arial, Helvetica, = sans-serif } UL.delegate LI { LIST-STYLE-IMAGE: url(/images/symbols/delegate.gif) } LI.delegate { LIST-STYLE-IMAGE: url(/images/symbols/delegate.gif) } UL.enum LI { LIST-STYLE-IMAGE: url(/images/symbols/Enum.GIF) } LI.enum { LIST-STYLE-IMAGE: url(/images/symbols/Enum.GIF) } UL.event LI { LIST-STYLE-IMAGE: url(/images/symbols/event.GIF) } LI.event { LIST-STYLE-IMAGE: url(/images/symbols/event.GIF) } UL.interface LI { LIST-STYLE-IMAGE: url(/images/symbols/interface.GIF) } LI.interface { LIST-STYLE-IMAGE: url(/images/symbols/interface.GIF) } UL.literal LI { LIST-STYLE-IMAGE: url(/images/symbols/literal.GIF) } LI.literal { LIST-STYLE-IMAGE: url(/images/symbols/literal.GIF) } UL.method LI { LIST-STYLE-IMAGE: url(/images/symbols/method.GIF) } LI.method { LIST-STYLE-IMAGE: url(/images/symbols/method.GIF) } UL.namespace LI { LIST-STYLE-IMAGE: url(/images/symbols/namespace.GIF) } LI.namespace { LIST-STYLE-IMAGE: url(/images/symbols/namespace.GIF) } UL.property LI { LIST-STYLE-IMAGE: url(/images/symbols/property.GIF) } LI.property { LIST-STYLE-IMAGE: url(/images/symbols/property.GIF) } UL.struct LI { LIST-STYLE-IMAGE: url(/images/symbols/struct.GIF) } LI.struct { LIST-STYLE-IMAGE: url(/images/symbols/struct.GIF) } UL.compactlist LI { FONT-SIZE: 8pt; LIST-STYLE-IMAGE: url(/images/smallarrow.gif); = MARGIN-BOTTOM: 0pt; MARGIN-LEFT: -1em; FONT-FAMILY: Verdana, Arial, = Helvetica, sans-serif } LI.compactlist { FONT-SIZE: 8pt; LIST-STYLE-IMAGE: url(/images/smallarrow.gif); = MARGIN-BOTTOM: 0pt; MARGIN-LEFT: -1em; FONT-FAMILY: Verdana, Arial, = Helvetica, sans-serif } UL.compactlist { MARGIN-TOP: 5pt; MARGIN-BOTTOM: 5pt } .MainHeader { FONT-WEIGHT: bold; FONT-SIZE: 155%; COLOR: black; FONT-FAMILY: Tahoma, = Helvetica, Arial, sans-serif } .formButton { FONT-WEIGHT: 700; FONT-SIZE: 90%; BORDER-LEFT-COLOR: #fbedbb; = BORDER-BOTTOM-COLOR: #fbedbb; COLOR: white; BORDER-TOP-COLOR: #fbedbb; = BACKGROUND-COLOR: #e08900; BORDER-RIGHT-COLOR: #fbedbb } .SiteNewsHeading { FONT-WEIGHT: bold; FONT-FAMILY: Verdana, Helvetica, Arial, sans-serif } .DevNewsHeading { FONT-WEIGHT: bold; FONT-FAMILY: Verdana, Helvetica, Arial, sans-serif } .DevNewsHeading { FONT-SIZE: 10.5pt } .links { FONT-SIZE: 8pt } .messagetitle { FONT-SIZE: 8pt } .SiteNews { FONT-SIZE: 8pt } .SmallText { FONT-SIZE: 8pt } .SiteNewsHeading { FONT-SIZE: 8pt } .NewsFlash { MARGIN-TOP: 5px; FONT-SIZE: 9pt } .DevNewsContent { FONT-SIZE: 9pt } .messagecontent { FONT: 9.5pt Verdana, "Courier New", Courier, mono } .Default { FONT-FAMILY: Verdana, Helvetica, Arial, sans-serif } .forum_link:link { COLOR: #e08900; TEXT-DECORATION: none } .forum_link:visited { COLOR: #e08900; TEXT-DECORATION: none } .forum_link:active { COLOR: #e08900; TEXT-DECORATION: none } .forum_link:hover { COLOR: #e08900; TEXT-DECORATION: underline } .forum_hilite { BACKGROUND-COLOR: yellow } .cpp-comment { COLOR: green; FONT-STYLE: italic } .cs-comment { COLOR: green; FONT-STYLE: italic } .vb-comment { COLOR: green; FONT-STYLE: italic } .cpp-keyword { COLOR: blue } .cs-keyword { COLOR: blue } .vb-function { COLOR: blue } .cpp-preprocessor { COLOR: navy } .cs-preprocessor { COLOR: navy } .cpp-string { COLOR: purple } .cs-string { COLOR: purple } .vb-string { COLOR: purple } .cpp-literal { COLOR: midnightblue } .cs-literal { COLOR: midnightblue } .vb-literal { COLOR: midnightblue } .vb-keyword { FONT-WEIGHT: normal; COLOR: blue } .vb-statement { FONT-WEIGHT: normal; COLOR: blue } TABLE#tblButtonBar { MARGIN-TOP: 1px } .clsButton { BORDER-RIGHT: #ff9900 1px solid; BORDER-TOP: #ff9900 1px solid; = FONT-WEIGHT: bold; FONT-SIZE: 8pt; BORDER-LEFT: #ff9900 1px solid; = CURSOR: hand; COLOR: #333300; BORDER-BOTTOM: #ff9900 1px solid; = BACKGROUND-COLOR: #ff9900; TEXT-DECORATION: none } TD.clsButtonBar TABLE.clsButton TD { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; PADDING-BOTTOM: 1px; = PADDING-TOP: 1px } .clsButtonLnk { PADDING-RIGHT: 1px; PADDING-LEFT: 1px; FONT-WEIGHT: bold; FONT-SIZE: = 8pt; PADDING-BOTTOM: 1px; CURSOR: hand; COLOR: #333300; PADDING-TOP: = 1px; TEXT-DECORATION: none } .clsButtonLnk:hover { COLOR: blue } .FeatureBox { BORDER-RIGHT: #6699cc 1px solid; PADDING-RIGHT: 2px; BORDER-TOP: = #6699cc 1px solid; PADDING-LEFT: 2px; PADDING-BOTTOM: 2px; BORDER-LEFT: = #6699cc 1px solid; PADDING-TOP: 2px; BORDER-BOTTOM: #6699cc 1px solid; = BACKGROUND-COLOR: #a5c9ef } .FeatureBoxHeader { PADDING-LEFT: 2pt; FONT-WEIGHT: bold; FONT-SIZE: 13pt; PADDING-BOTTOM: = 2pt; COLOR: #993300; FONT-FAMILY: Verdana } .FeatureBoxHeader A { PADDING-LEFT: 2pt; FONT-WEIGHT: bold; FONT-SIZE: 13pt; PADDING-BOTTOM: = 2pt; COLOR: #993300; FONT-FAMILY: Verdana } .FeatureBoxHeaderArrow { BACKGROUND-COLOR: #6699cc } ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: application/octet-stream Content-Transfer-Encoding: 7bit Content-Location: http://www.codeproject.com/script/oncopy.js // Hook-up to the document.body.oncopy event, // or in the 's "oncopy" attribute. // Author: Heath Stewart function copyCode() { try { var range = document.selection.createRange(); if (document.selection.type != "none") { var parent = range.parentElement(); var parentName = parent.tagName; if (parentName != null) { if (parentName.toLowerCase() == "pre") { // Replace superfluous
tags in a
 block.
					var re = /
/gi; var code = range.htmlText.replace(re, "\r\n"); // Replace non-breaking spaces. re = / /gi; code = code.replace(re, " "); // Replace & characters. re = /&/gi; code = code.replace(re, "&"); // Replace < characters. re = /</gi; code = code.replace(re, "<"); // Replace > characters. re = />/gi; code = code.replace(re, ">"); // CJM: Remove colorization re = /<\/?span([^>])*>/gi; code = code.replace(re, ""); if (code != null) { window.event.returnValue = false; window.clipboardData.setData("Text", code); } } } } } catch(e) {} } ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.codeproject.com/script/HVMenu/cpmenu_var.js var BaseHref=3D""; var NoOffFirstLineMenus=3D5; var FontFamily=3D"Verdana, Arial, Helvetica, sans-serif"; var FontSize=3D11; var FontBold=3D1; var FontItalic=3D0; var MenuTextCentered=3D"left"; var MenuCentered=3D"left"; var MenuVerticalCentered=3D"top"; var PartOfWindow=3D0.7; var LowBgColor=3D"#FF9900"; var HighBgColor=3D"#FBEDBB"; var FontLowColor=3D"Black"; var FontHighColor=3D"Blue"; var BorderColor=3DLowBgColor; var HoverBorderColor=3D"#800080"; var BorderWidthMain=3D2; var BorderWidthSub=3D2; var BorderWidthHover=3D1; var BorderBtwnMain=3D1; var BorderBtwnSub=3D1; var StartTop=3D0; var StartLeft=3D0; var VerCorrect=3D0; var HorCorrect=3D0; var LeftPaddng=3D2; var TopPaddng=3D2; var FirstLineHorizontal=3D1; var TargetLoc=3D"MenuPos"; var BgImgLeftOffset=3D5; var ScaleMenu=3D0; var DistFrmFrameBrdr=3D0; var HooverBold=3D0; var HooverItalic=3D0; var HooverUnderLine=3D0; var HooverTextSize=3D0; var HooverVariant=3D0; var HoverBorder=3D1; var DissapearDelay=3D300; var UnfoldDelay=3D200; var ChildOverlap=3D0; var ChildVerticalOverlap=3D0; var BuildOnDemand=3D0; var BottomUp=3D0; var MenuWrap=3D1; var RightToLeft=3D0; var UnfoldsOnClick=3D0; var RememberStatus=3D0; var TakeOverBgColor=3D1; var FirstLineFrame=3D""; var SecLineFrame=3D""; var DocTargetFrame=3D""; var MenuFramesVertical=3D1; var MenuUsesFrames=3D0; var MenuSlide=3D""; var MenuShadow=3D""; = //"progid:DXImageTransform.Microsoft.Shadow(color=3D#888888, = direction=3D135, strength=3D4)"; var MenuOpacity=3D""; = //"progid:DXImageTransform.Microsoft.Alpha(opacity=3D85)"; function BeforeStart(){return} function AfterBuild(){return} function BeforeFirstOpen(){return} function AfterCloseAll(){return} var Arrws=3D[BaseHref+"",,,BaseHref+"",,,BaseHref+"",,,BaseHref+"",,]; Menu1=3Dnew = Array("Help!","/info/faq.asp","",5,18,45,"","","","","","",-1,-1,-1,"",""= ); Menu1_1=3Dnew Array("What is 'The Code = Project'?","/info/guide.asp","",0,18,190,"","","","","","",-1,-1,-1,"",""= ); Menu1_2=3Dnew Array("General = FAQ","/info/faq.asp","",0,18,190,"","","","","","",-1,-1,-1,"",""); Menu1_3=3Dnew Array("Post a = Question","/script/comments/forums.asp","",0,18,190,"","","","","","",-1,= -1,-1,"",""); Menu1_4=3Dnew Array("Site = Directory","/script/articles/sections.asp","",0,18,190,"","","","","","",= -1,-1,-1,"",""); Menu1_5=3Dnew Array("About = Us","/info/about.asp","",0,18,190,"","","","","","",-1,-1,-1,"",""); Menu2=3Dnew = Array("Articles","/info/latest.asp","",6,18,60,"","","","","","",-1,-1,-1= ,"",""); Menu2_1=3Dnew = Array("Latest","/info/latest.asp","",0,18,150,"","","","","","",-1,-1,-1,= "","");=09 Menu2_2=3Dnew Array("Most = Popular","/script/articles/top_articles.asp?st=3D2","",0,18,150,"","","",= "","","",-1,-1,-1,"","");=09 Menu2_3=3Dnew = Array("Search","/info/search.asp","",0,18,150,"","","","","","",-1,-1,-1,= "",""); =09 Menu2_4=3Dnew Array("Site = Directory","/script/articles/sections.asp","",0,18,190,"","","","","","",= -1,-1,-1,"",""); Menu2_5=3Dnew Array("Submit an = Article","/info/submit.asp","",0,18,150,"","","","","","",-1,-1,-1,"","")= ; Menu2_6=3Dnew Array("Article = Competition","/script/competitions/monthly/","",0,18,150,"","","","","","= ",-1,-1,-1,"",""); Menu3=3Dnew Array("Message = Boards","/script/comments/forums.asp","",18,18,120,"","","","","","",-1,-= 1,-1,"",""); Menu3_1=3Dnew Array("Visual = C++","/script/comments/forums.asp?forumid=3D1647","",0,18,150,"","","",""= ,"","",-1,-1,-1,"",""); Menu3_2=3Dnew Array("ATL / WTL / = STL","/script/comments/forums.asp?forumid=3D4486","",0,18,150,"","","",""= ,"","",-1,-1,-1,"",""); Menu3_3=3Dnew = Array("COM","/script/comments/forums.asp?forumid=3D1648","",0,18,150,"","= ","","","","",-1,-1,-1,"",""); Menu3_4=3Dnew Array("Managed = C++","/script/comments/forums.asp?forumid=3D3785","",0,18,150,"","","",""= ,"","",-1,-1,-1,"",""); Menu3_5=3Dnew = Array("C#","/script/comments/forums.asp?forumid=3D1649","",0,18,150,"",""= ,"","","","",-1,-1,-1,"",""); Menu3_6=3Dnew = Array("ASP.NET","/script/comments/forums.asp?forumid=3D12076","",0,18,150= ,"","","","","","",-1,-1,-1,"",""); Menu3_7=3Dnew = Array("VB.NET","/script/comments/forums.asp?forumid=3D1646","",0,18,150,"= ","","","","","",-1,-1,-1,"",""); Menu3_8=3Dnew Array("Web = Development","/script/comments/forums.asp?forumid=3D1640","",0,18,150,"",= "","","","","",-1,-1,-1,"",""); Menu3_9=3Dnew Array(".NET = Framework","/script/comments/forums.asp?forumid=3D1650","",0,18,150,"",""= ,"","","","",-1,-1,-1,"",""); Menu3_10=3Dnew Array("SQL / ADO / = ADO.NET","/script/comments/forums.asp?forumid=3D1725","",0,18,150,"","","= ","","","",-1,-1,-1,"",""); Menu3_11=3Dnew Array("XML / = XSL","/script/comments/forums.asp?forumid=3D3421","",0,18,150,"","","",""= ,"","",-1,-1,-1,"",""); Menu3_12=3Dnew Array("OS / = SysAdmin","/script/comments/forums.asp?forumid=3D1644","",0,18,150,"","",= "","","","",-1,-1,-1,"",""); Menu3_13=3Dnew Array("Work = Issues","/script/comments/forums.asp?forumid=3D3304","",0,18,150,"","",""= ,"","","",-1,-1,-1,"",""); Menu3_14=3Dnew Array("Article = Requests","/script/comments/forums.asp?forumid=3D1641","",0,18,150,"","",= "","","","",-1,-1,-1,"",""); Menu3_15=3Dnew = Array("Collaboration","/script/comments/forums.asp?forumid=3D1651","",0,1= 8,150,"","","","","","",-1,-1,-1,"",""); Menu3_16=3Dnew Array("General = Discussions","/script/comments/forums.asp?forumid=3D1642","",0,18,150,"",= "","","","","",-1,-1,-1,"",""); Menu3_17=3Dnew = Array("Suggestions","/script/comments/forums.asp?forumid=3D1645","",0,18,= 150,"","","","","","",-1,-1,-1,"",""); Menu3_18=3Dnew Array("The = Soapbox","/script/comments/forums.asp?forumid=3D2605","",0,18,150,"","","= ","","","",-1,-1,-1,"",""); Menu4=3Dnew = Array("StoreFront","/store/","",0,18,80,"","","","","","",-1,-1,-1,"","")= ; Menu5=3Dnew = Array("Lounge","/lounge.asp","",0,18,60,"","","","","","",-1,-1,-1,"","")= ; ------=_NextPart_000_0000_01C4DBB4.AB22D740 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://www.codeproject.com/script/HVMenu/menu10_com.js /*********************************************** * (c) Ger Versluis 2000 version 10.71 8 May 2004 * * You may use this script on non commercial sites. * * www.burmees.nl/menu * ************************************************/ if(document.getElementById){ var AgntUsr=3Dnavigator.userAgent.toLowerCase(), AppVer=3Dnavigator.appVersion.toLowerCase(), Opr7=3DAgntUsr.indexOf("opera = 7")!=3D-1||AgntUsr.indexOf("opera/7")!=3D-1?true:false; if((AgntUsr.indexOf("opera")=3D=3D-1||Opr7)){ var = NavYes=3D((AgntUsr.indexOf("mozilla")!=3D-1&&AgntUsr.indexOf("compatible"= )=3D=3D-1)||Opr7)?true:false, ExpYes=3D(AgntUsr.indexOf("msie")!=3D-1&&!Opr7)? true:false; if(MenuUsesFrames&&!parent.frames[0])MenuUsesFrames=3D0; var Exp6Plus=3D((AppVer.indexOf("msie 6")!=3D-1||AppVer.indexOf("msie = 7")!=3D-1)&&!Opr7)?true:false, MacExp5=3D(AppVer.indexOf("mac")!=3D-1&&AppVer.indexOf("msie = 5")!=3D-1)?true:false, FLoc,ScLoc,DcLoc,SLdAgnWin,FWinH,FColW,SColW,DColW, SWinW,SWinH,FWinW, RLvl=3D0,FntFc=3D1,StaticPos=3D0,Ztop=3D100, = FrstCreat=3Dtrue,Ldd=3Dfalse,Crtd=3Dfalse,FCmplnt=3Dfalse,SCmplnt=3Dfalse= ,M_Clckd=3Dfalse,IniFlg=3Dfalse,ShwFlg=3Dfalse,AcrssFrms=3Dtrue, = FrstCntnr=3Dnull,CurOvr=3Dnull,FHtml=3Dnull,ScHtml=3Dnull,CloseTmr=3Dnull= ,OpnTmr=3Dnull,RmbrNow=3Dnull, FStr=3D"",M_Hide=3D"hidden",M_Show=3D"visible",P_X=3D"px", M_StrtTp=3DStartTop,M_StrtLft=3DStartLeft, = Par=3DMenuUsesFrames?parent:window,Doc=3DPar.document,Bod=3DDoc.body,Trig= ger=3DNavYes?Par:Bod, = Nav_Op=3DNavYes&&AgntUsr.indexOf("gecko/")!=3D-1&&parseInt(AgntUsr.substr= ing(AgntUsr.indexOf("gecko/")+6,AgntUsr.indexOf("gecko/")+12))>=3D200303?= true:false, InitLdd,LdTmr=3DsetInterval("ChckInitLd()",100)}} function ChckInitLd(){ InitLdd=3DExpYes? MenuUsesFrames? = Par.frames[FirstLineFrame].document.readyState=3D=3D"complete"&&Par.frame= s[SecLineFrame].document.readyState=3D=3D"complete"?1:0: Par.document.readyState=3D=3D"complete"?1:0: MenuUsesFrames? = Par.frames[FirstLineFrame].document.body&&Par.frames[SecLineFrame].docume= nt.body?1:0: Par.document.body?1:0; if(InitLdd) { clearInterval(LdTmr); Go()}} function CnclSlct(){ return false} function RePos(){ = FWinW=3DExpYes?FCmplnt?FHtml.clientWidth:FLoc.document.body.clientWidth:F= Loc.innerWidth; = FWinH=3DExpYes?FCmplnt?FHtml.clientHeight:FLoc.document.body.clientHeight= :FLoc.innerHeight; = SWinW=3DExpYes?SCmplnt?ScHtml.clientWidth:ScLoc.document.body.clientWidth= :ScLoc.innerWidth; = SWinH=3DExpYes?SCmplnt?ScHtml.clientHeight:ScLoc.document.body.clientHeig= ht:ScLoc.innerHeight; if(MenuCentered.indexOf("justify")!=3D-1&&FirstLineHorizontal){ ClcJus(); var P=3DFrstCntnr.FrstMbr,W=3DMenu1[5], = a=3DBorderBtwnMain?NoOffFirstLineMenus+1:2,i, LftXtra=3D(NavYes&&!Opr7)||MacExp5||FCmplnt?LeftPaddng:0; = FrstCntnr.style.width=3DNoOffFirstLineMenus*W*FntFc+a*BorderWidthMain+P_X= ; for(i=3D0;i0?M_StrtTp*FWinH:M_StrtTp; StartLeft=3DM_StrtLft<1&&M_StrtLft>0?M_StrtLft*FWinW:M_StrtLft} function ClcJus(){ var a=3DBorderBtwnMain?NoOffFirstLineMenus+1:2, = Sz=3DMath.round((PartOfWindow*FWinW-a*BorderWidthMain)/NoOffFirstLineMenu= s),i,j; for(i=3D1;iSWinW+LS)SLt=3DSWinW+LS-CCW} else{ = if(SLt+CCW>SWinW+LS)SLt=3DP.Lvl=3D=3D1?SWinW+LS-CCW:SLt-(CCW+(1-2*ChildOv= erlap)*TWt); if(SLtSWinH+TS)STp=3DSWinH+TS-CCH+0} else{ = if(STp+CCH>TS+SWinH)STp=3DP.Lvl=3D=3D1?STp=3DTS+SWinH-CCH:STp-CCH+(1-2*Ch= ildVerticalOverlap)*THt; if(STp"} this.value=3DTfld; TS.color=3Dthis.Arr[8]; TS.fontFamily=3Dthis.Arr[11]; TS.fontSize=3Dthis.Arr[12]*(NavYes?1:FntFc)+"px"; TS.fontWeight=3Dthis.Arr[13]?"bold":"normal"; TS.fontStyle=3Dthis.Arr[14]?"italic":"normal"; if(this.Arr[6]&&!this.ro)TS.backgroundColor=3Dthis.Arr[6]; TS.textAlign=3Dthis.Arr[15]; if(TA2){ = if(TA2.indexOf("rollover")=3D=3D-1)TS.backgroundImage=3D"url(\""+TA2+"\")= "; else{ this.rob=3D1; this.rib1=3DTA2.substring(TA2.indexOf("?")+1,TA2.lastIndexOf("?")); this.rib2=3DTA2.substring(TA2.lastIndexOf("?")+1,TA2.length); TS.backgroundImage=3D"url(\""+this.rib1+"\")"; TS.backgroundRepeat=3D"no-repeat"; TS.backgroundPosition=3DBgImgLeftOffset+"px"}} if(Tfld.indexOf("<")=3D=3D-1){ TS.width=3DWd-LftXtra+P_X; TS.height=3DHt-TpXtra+P_X; TS.paddingLeft=3DLeftPaddng+P_X; TS.paddingTop=3DTopPaddng+P_X} else{ TS.width=3DWd+P_X; TS.height=3DHt+P_X} if(Tfld.indexOf("<")=3D=3D-1){ t=3DLctn.document.createTextNode(Tfld); this.appendChild(t)} else this.innerHTML=3DTfld; if(this.Arr[3]){ a=3DRLvl<=3DFirstLineHorizontal?BottomUp?9:3:RightToLeft?6:0; if(Arrws[a]!=3D""){ = T=3DRLvl<=3DFirstLineHorizontal?BottomUp?2:Ht-Arrws[a+2]-2:(Ht-Arrws[a+2]= )/2; = L=3DRightToLeft?2:Wd-Arrws[a+1]-2;t=3DLctn.document.createElement("img");= this.appendChild(t); t.style.position=3D"absolute"; t.src=3DArrws[a]; t.style.width=3DArrws[a+1]*FntFc+P_X; t.style.height=3DArrws[a+2]*FntFc+P_X; t.style.top=3DT+P_X; t.style.left=3DL+P_X; this.ai=3Dt}} if(ExpYes){ this.onselectstart=3DCnclSlct; this.onmouseover=3DOpenMenu; this.onmouseout=3DCloseMenu; this.onclick=3DGoTo} else{ this.addEventListener("mouseover",OpenMenu,false); this.addEventListener("mouseout",CloseMenu,false); this.addEventListener("click",GoTo,false)}} function CreateMenuStructure(MNm,No,Mcllr){ RLvl++; var i,NOs,Mbr,W=3D0,H=3D0,PMb=3Dnull,WMnu=3DMNm+"1", MWd=3Deval(WMnu+"[5]")*FntFc, MHt=3Deval(WMnu+"[4]")*FntFc, Lctn=3DRLvl=3D=3D1?FLoc:ScLoc, BRW=3DRLvl=3D=3D1?BorderWidthMain:BorderWidthSub, BTWn=3DRLvl=3D=3D1?BorderBtwnMain:BorderBtwnSub; if(RLvl<=3DFirstLineHorizontal){ for(i=3D1;i0;i--){ WMnu=3DMNm+eval(i); NOs=3Deval(WMnu+"[3]"); PMb=3DMbr; if(NOs)Mbr.CCn=3DCreateMenuStructure(WMnu+"_",NOs,Mbr); Mbr=3DMbr.PrvMbr} RLvl--} else{=09 while(Mbr){ Mbr.CCn=3Dnull; Mbr=3DMbr.PrvMbr}}} ------=_NextPart_000_0000_01C4DBB4.AB22D740--