History

Show Presentation
 
 138
Home • 7.Templates • 138
 
<!--138-->
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=<X-FC-ITEM DATA[Charset]>">
<title><X-FC-FIELD LANG.141.4 STRING></title>
<style type="text/css">
<!--
#title1{font-size:<X-FC-FIELD PREFS.5651 DEFAULT=14 FONTSIZE>pt;color:<X-FC-FIELD PREFS.5652 DEFAULT="#FFFFFF" RGB>;text-decoration:none;font-family:<X-FC-FIELD PREFS.5650 DEFAULT="Geneva,Arial,Sans-Serif" STRING>;}
#plain{font-size:<X-FC-FIELD PREFS.5671 DEFAULT=10 FONTSIZE>pt;color:<X-FC-FIELD PREFS.5672 DEFAULT="#000000" RGB>;text-decoration:none;font-family:<X-FC-FIELD PREFS.5670 DEFAULT="Geneva,Arial,Sans-Serif" STRING>;}
-->
</style><!--#if expr="<X-FC-URL-PARAMETER EmbeddedWin NUMBER>==1"-->
<script language="JavaScript">
parent.location.reload(true);
</script>
<body bgcolor="<X-FC-FIELD PREFS.5601 DEFAULT="#C0C0C0" RGB>">
<b id="plain"><X-FC-FIELD LANG.7539.2 STRING></b>
<div id="plain"><X-FC-FIELD LANG.7539.3 STRING><br><X-FC-FIELD LANG.7539.4 STRING></div>
</body><!--#else-->
<!--
The following JavaScript MD5 implementation is
Copyright (C) 2002 Centrinity Inc. All Rights Reserved
as a derivative work of the RSA Data Security, Inc. MD5 Message-Digest Algorigthm
Copyright (C) 1991-2, RSA Data Security, Inc. All Rights Reserved.
-->
<script language="Javascript">
<!--
var S11 = 7;
var S12 = 12;
var S13 = 17;
var S14 = 22;
var S21 = 5;
var S22 = 9;
var S23 = 14;
var S24 = 20;
var S31 = 4;
var S32 = 11;
var S33 = 16;
var S34 = 23;
var S41 = 6;
var S42 = 10;
var S43 = 15;
var S44 = 21;

var PADDING = new Array(0x80, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0);
var state = new Array();
var count = new Array();
var buffer = new Array();
var digest = new Array();
var result;
var HD=new String("0123456789abcdef");
<!--#rem
The following functions are brought to you courtesy of the complete incompetence of the browser development teams, who completely buggered all the normal arithmetic operators on 32 bit numbers, necessitating doing it the hard way
AND(a,b)        == a&b
OR(a,b) == a|b
XOR(a,b)        == a^b
NOT(a)          == ~a
ADD(a,b)        == a+b
LS(a,s) == a<<s
RS(a,s) == a>>s
-->
function AND(a,b){
var hb=(a>0x80000000)&&(b>0x80000000);
var r=0;
if(a>0x80000000)a-=0x80000000;
if(b>0x80000000)b-=0x80000000;
r=a&b;
if(hb)
r+=0x80000000;
return r;
}
function OR(a,b){
var hb=(a>0x80000000)||(b>0x80000000);
var r=0;
if(a>0x80000000)a-=0x80000000;
if(b>0x80000000)b-=0x80000000;
r=a|b;
if(hb)
r+=0x80000000;
return r;
}
function XOR(a,b){
var hb=((a>0x80000000)&&(b<0x80000000))||((a<0x80000000)&&(b>0x80000000));
var r=0;
if(a>0x80000000)a-=0x80000000;
if(b>0x80000000)b-=0x80000000;
r=a^b;
if(hb)
r+=0x80000000;
return r;
}
function NOT(a){
var b=0x80000000;
var n=0;
while(b>=1){
if(a>=b)
        a-=b;
else
        n+=b;
b=b/2;.0
}
return n;
}
function ADD(a,b){
var n=0;
if(a>0x80000000){
++n;
a-=0x80000000;
}
if(b>0x80000000){
++n;
b-=0x80000000;
}
a+=b;
if(n==1){
        if(a>0x80000000)
                a-=0x80000000;
        else
                a+=0x80000000;
}
return a;
}
function LS(a,s){
for(var i=0;i<s;i++){
if(a>0x80000000)
        a-=0x80000000;
a=a*2;
}
return a;
}
function RS(a,s){
for(var i=0;i<s;i++){
if(a%2)
        a-=1;
a=a/2;
}
return a;
}
<!--#rem
function H1
converts the high nibble of the byte c into a hex character
-->
function HEX1(c){return HD.substr( (c >> 4) & 0x0F, 1 );}
<!--#rem
function H2
converts the low nibble of byte c into a hex character
-->
function HEX2(c){return HD.substr( c & 0x0F, 1 );}

<!--#rem
functions FF, GG, HH, and II transformations for rounds 1, 2, 3, and 4.
Rotation is separate from addition to prevent recomputation. -->
function FF( a, b, c, d, x, s, ac ){
//a += (((b) & (c)) | ((~b) & (d))) + x + ac;
var da=false;
a=ADD(a,OR(AND(b,c),AND(NOT(b),d)));
a=ADD(a,ac);
a=ADD(a,x);
//a = (((a) << (s)) | ((a) >> (32-(s))));
a = OR(LS(a,s),RS(a,32-s));
a=ADD(a,b);
return a;
}

function GG( a, b, c, d, x, s, ac ){
//a += (((b) & (d)) | ((c) & (~d))) + x + ac;
a=ADD(a,OR(AND(b,d),AND(c,NOT(d))));
a=ADD(a,ac);
a=ADD(a,x);
//a = (((a) << (s)) | ((a) >> (32-(s))));
a = OR(LS(a,s),RS(a,32-s));
a=ADD(a,b);
return a;
}

function HH( a, b, c, d, x, s, ac ){
//a += ((b) ^ (c) ^ (d)) + x + ac;
a=ADD(a,XOR(d,XOR(b,c)));
a=ADD(a,ac);
a=ADD(a,x);
//a = (((a) << (s)) | ((a) >> (32-(s))));
a = OR(LS(a,s),RS(a,32-s));
a=ADD(a,b);
return a;
}

function II( a, b, c, d, x, s, ac ){
//a += ((c) ^ ((b) | (~d))) + x + ac;
a=ADD(a,XOR(c,OR(b,NOT(d))));
a=ADD(a,ac);
a=ADD(a,x);
//a = (((a) << (s)) | ((a) >> (32-(s))));
a = OR(LS(a,s),RS(a,32-s));
a=ADD(a,b);
return a;
}


// Decodes input (unsigned char) into output (UINT4). Assumes len is
// a multiple of 4.
function Decode( input, len, output ){
var     i, j;

for (i = 0, j = 0; j < len; i++, j += 4) {
        output[i] = 0;
        output[i] = ADD(output[i], input[j]);
        output[i] = ADD(output[i], LS(input[j+1],8));
        output[i] = ADD(output[i], LS(input[j+2],16));
        output[i] = ADD(output[i], LS(input[j+3],24));
}
}


// MD5 basic transformation. Transforms state based on block.
function Transform( block )
{
        var     a = state[0], b = state[1], c = state[2], d = state[3];
        var     x = new Array();

        Decode( block, 64, x );

        // Round 1
        a = FF( a, b, c, d, x[ 0], S11, 0xd76aa478 ); /* 1 */
        d = FF( d, a, b, c, x[ 1], S12, 0xe8c7b756 ); /* 2 */
        c = FF( c, d, a, b, x[ 2], S13, 0x242070db ); /* 3 */
        b = FF( b, c, d, a, x[ 3], S14, 0xc1bdceee ); /* 4 */
        a = FF( a, b, c, d, x[ 4], S11, 0xf57c0faf ); /* 5 */
        d = FF( d, a, b, c, x[ 5], S12, 0x4787c62a ); /* 6 */
        c = FF( c, d, a, b, x[ 6], S13, 0xa8304613 ); /* 7 */
        b = FF( b, c, d, a, x[ 7], S14, 0xfd469501 ); /* 8 */
        a = FF( a, b, c, d, x[ 8], S11, 0x698098d8 ); /* 9 */
        d = FF( d, a, b, c, x[ 9], S12, 0x8b44f7af ); /* 10 */
        c = FF( c, d, a, b, x[10], S13, 0xffff5bb1 ); /* 11 */
        b = FF( b, c, d, a, x[11], S14, 0x895cd7be ); /* 12 */
        a = FF( a, b, c, d, x[12], S11, 0x6b901122 ); /* 13 */
        d = FF( d, a, b, c, x[13], S12, 0xfd987193 ); /* 14 */
        c = FF( c, d, a, b, x[14], S13, 0xa679438e ); /* 15 */
        b = FF( b, c, d, a, x[15], S14, 0x49b40821 ); /* 16 */

        // Round 2
        a = GG( a, b, c, d, x[ 1], S21, 0xf61e2562 ); /* 17 */
        d = GG( d, a, b, c, x[ 6], S22, 0xc040b340 ); /* 18 */
        c = GG( c, d, a, b, x[11], S23, 0x265e5a51 ); /* 19 */
        b = GG( b, c, d, a, x[ 0], S24, 0xe9b6c7aa ); /* 20 */
        a = GG( a, b, c, d, x[ 5], S21, 0xd62f105d ); /* 21 */
        d = GG( d, a, b, c, x[10], S22,  0x2441453 ); /* 22 */
        c = GG( c, d, a, b, x[15], S23, 0xd8a1e681 ); /* 23 */
        b = GG( b, c, d, a, x[ 4], S24, 0xe7d3fbc8 ); /* 24 */
        a = GG( a, b, c, d, x[ 9], S21, 0x21e1cde6 ); /* 25 */
        d = GG( d, a, b, c, x[14], S22, 0xc33707d6 ); /* 26 */
        c = GG( c, d, a, b, x[ 3], S23, 0xf4d50d87 ); /* 27 */
        b = GG( b, c, d, a, x[ 8], S24, 0x455a14ed ); /* 28 */
        a = GG( a, b, c, d, x[13], S21, 0xa9e3e905 ); /* 29 */
        d = GG( d, a, b, c, x[ 2], S22, 0xfcefa3f8 ); /* 30 */
        c = GG( c, d, a, b, x[ 7], S23, 0x676f02d9 ); /* 31 */
        b = GG( b, c, d, a, x[12], S24, 0x8d2a4c8a ); /* 32 */

        // Round 3
        a = HH( a, b, c, d, x[ 5], S31, 0xfffa3942 ); /* 33 */
        d = HH( d, a, b, c, x[ 8], S32, 0x8771f681 ); /* 34 */
        c = HH( c, d, a, b, x[11], S33, 0x6d9d6122 ); /* 35 */
        b = HH( b, c, d, a, x[14], S34, 0xfde5380c ); /* 36 */
        a = HH( a, b, c, d, x[ 1], S31, 0xa4beea44 ); /* 37 */
        d = HH( d, a, b, c, x[ 4], S32, 0x4bdecfa9 ); /* 38 */
        c = HH( c, d, a, b, x[ 7], S33, 0xf6bb4b60 ); /* 39 */
        b = HH( b, c, d, a, x[10], S34, 0xbebfbc70 ); /* 40 */
        a = HH( a, b, c, d, x[13], S31, 0x289b7ec6 ); /* 41 */
        d = HH( d, a, b, c, x[ 0], S32, 0xeaa127fa ); /* 42 */
        c = HH( c, d, a, b, x[ 3], S33, 0xd4ef3085 ); /* 43 */
        b = HH( b, c, d, a, x[ 6], S34,  0x4881d05 ); /* 44 */
        a = HH( a, b, c, d, x[ 9], S31, 0xd9d4d039 ); /* 45 */
        d = HH( d, a, b, c, x[12], S32, 0xe6db99e5 ); /* 46 */
        c = HH( c, d, a, b, x[15], S33, 0x1fa27cf8 ); /* 47 */
        b = HH( b, c, d, a, x[ 2], S34, 0xc4ac5665 ); /* 48 */

        // Round 4
        a = II( a, b, c, d, x[ 0], S41, 0xf4292244 ); /* 49 */
        d = II( d, a, b, c, x[ 7], S42, 0x432aff97 ); /* 50 */
        c = II( c, d, a, b, x[14], S43, 0xab9423a7 ); /* 51 */
        b = II( b, c, d, a, x[ 5], S44, 0xfc93a039 ); /* 52 */
        a = II( a, b, c, d, x[12], S41, 0x655b59c3 ); /* 53 */
        d = II( d, a, b, c, x[ 3], S42, 0x8f0ccc92 ); /* 54 */
        c = II( c, d, a, b, x[10], S43, 0xffeff47d ); /* 55 */
        b = II( b, c, d, a, x[ 1], S44, 0x85845dd1 ); /* 56 */
        a = II( a, b, c, d, x[ 8], S41, 0x6fa87e4f ); /* 57 */
        d = II( d, a, b, c, x[15], S42, 0xfe2ce6e0 ); /* 58 */
        c = II( c, d, a, b, x[ 6], S43, 0xa3014314 ); /* 59 */
        b = II( b, c, d, a, x[13], S44, 0x4e0811a1 ); /* 60 */
        a = II( a, b, c, d, x[ 4], S41, 0xf7537e82 ); /* 61 */
        d = II( d, a, b, c, x[11], S42, 0xbd3af235 ); /* 62 */
        c = II( c, d, a, b, x[ 2], S43, 0x2ad7d2bb ); /* 63 */
        b = II( b, c, d, a, x[ 9], S44, 0xeb86d391 ); /* 64 */

        state[0] = ADD(state[0],a);
        state[1] = ADD(state[1],b);
        state[2] = ADD(state[2],c);
        state[3] = ADD(state[3],d);

        // Zeroize sensitive information.
        // MD5_memset ((POINTER)x, 0, sizeof (x));
}

function memcpy(dst, dstindex, src, srcindex, srclen){
for (i = 0; i < srclen; i++)
        dst[dstindex+i] = src[srcindex+i];
}

// MD5 block update operation. Continues an MD5 message-digest
// operation, processing another message block, and updating the
// context.
function Update( input, inputLen )
{
        var     i, index, partLen;
        var     tmp = new Array();

        // Compute number of bytes mod 64
        index = AND(RS(count[0],3),0x3F);

        // Update number of bits
        if ((count[0] += LS(inputLen,3)) < LS(inputLen,3))
                count[1]++;
        count[1] += RS(inputLen,29);

        partLen = 64 - index;

        // Transform as many times as possible.
        if (inputLen >= partLen) {
                memcpy( buffer, index, input, 0, partLen );
                Transform( buffer );

                for (i = partLen; i + 63 < inputLen; i += 64) {
                        memcpy( tmp, 0, input, i );
                        Transform( tmp );
                }

                index = 0;
        } else
                i = 0;

        // Buffer remaining input
        memcpy( buffer, index, input, i, inputLen - i );
}

// Encodes input (UINT4) into output (unsigned char). Assumes len is
// a multiple of 4.
function Encode( input, len, output ){
var     i, j;

for (i = 0, j = 0; j < len; i++, j += 4) {
        output[j]   =  AND(input[i],0xFF);
        output[j+1] = AND(RS(input[i],8),0xFF);
        output[j+2] = AND(RS(input[i],16),0xFF);
        output[j+3] = AND(RS(input[i],24),0xFF);
}
}

// MD5 finalization. Ends an MD5 message-digest operation, writing the
// the message digest and zeroizing the context.
function Final()
{
        var     bits = new Array();
        var     index, padLen;

        // Save number of bits
        Encode( count, 8, bits );

        // Pad out to 56 mod 64.
        index = ((count[0] >> 3) & 0x3F);
        padLen = (index < 56) ? (56 - index) : (120 - index);
        Update( PADDING, padLen );

        // Append length (before padding)
        Update( bits, 8 );

        // Store state in digest
        Encode( state, 16, digest );

        result = "";
        for (index = 0; index < 16; index++) {
                result += String(HEX1(digest[index]));
                result += String(HEX2(digest[index]));
        }

        return result;
}

function MD5( challenge, password ){
        var carray = new Array()
        var parray = new Array();

        for (var i=0; i<challenge.length;i++)
                carray[i] = challenge.charCodeAt(i);
        for (var i=0; i<password.length;i++)
                parray[i] = password.charCodeAt(i);

        count[0] = 0;
        count[1] = 0;

//      Load magic initialization constants.
        state[0] = 0x67452301;
        state[1] = 0xEFCDAB89;
        state[2] = 0x98BADCFE;
        state[3] = 0x10325476;

        Update(carray, carray.length);
        Update(parray, parray.length);
        return Final();
}

function computeMD5(target){<!--#if expr="'<X-FC-ITEM DATA[Charset]>' == 'ISO-8859-1'"--><!--#rem
JavaScript doesn't support any charset except UTF-16 for its string functions (while IS won't allow you to log in using Unicode).  So we disable the MD5 calculation for all
non ISO-8859-1 charsets. We can get away with ISO-8859-1 because it matches the first 256 entries of UTF-16-->
        var     p=self.sp;

        if(p==null)
                p=target.password.value;
        if (target.userid.length == 0 || target.password.length == 0)
                return false;
        target.md5.value = MD5( target.md5challenge.value, p );
        target.password.value = "";<!--#endif-->
        return true;
}
var sp=null;<!--#if expr="$ENABLEAUTHSAVING"-->
<!--#rem
lc      LoadCredentials
checks for cookie saved credentials and pre-fills the login form with them
-->
function lc(){
var C=document.cookie;
var t=null;
var s=C.indexOf("fc1=");
var e;
var c;
if(s!=-1){
        var D=new Date();
        D.setTime(D.getTime() + 7776000000);
        s+=4;
        e=C.indexOf(';',s);
        if(e==-1)
                e=C.length;
        t=C.substring(s,e)
        if(t.length){
                document.cookie = "fc1="+t+";expires="+D.toGMTString();
                document.forms["LOGINFORM"].elements["userid"].value=dp(t);
                s=C.indexOf("fc2=");
                if(s!=-1){
                        s+=4;
                        e=C.indexOf(';',s);
                        if(e==-1)
                                e=C.length;
                        t=C.substring(s,e);
                        if(t.length){
                                document.cookie = "fc2="+t+";expires="+D.toGMTString();
                                self.sp=dp(t);
                                document.forms["LOGINFORM"].elements["password"].value="************";
                        }
                }
        }
}
}
<!--#rem
sc      SaveCredentials
Saves the current contents of the form in a cookie.  May pop up a warning dialog if attempt to save pw.

-->
function sc(F){
var u=F.elements["userid"].value;
var p=self.sp;
if(sp==null)
        p=F.elements["password"].value;
if(u.length){
        var D=new Date();
        D.setTime(D.getTime() + 7776000000);
        if(p.length){<!--#if expr="<X-FC-FIELD LANG.7539.1 LENGTH>"-->
                if(confirm("<X-FC-FIELD LANG.7539.1 STRING>")){<!--#else-->
                if(1){<!--#endif-->
                        document.cookie = "fc1="+ep(u)+";expires="+D.toGMTString();
                        document.cookie = "fc2="+ep(p)+";expires="+D.toGMTString();
                        sp=p;
                        F.elements["password"].value="************";
                }
        }else{  
                document.cookie = "fc1="+ep(u)+";expires="+D.toGMTString();
                document.cookie = "fc2=;expires="+D.toGMTString();
        }
}
}
<!--#rem
cc      ClearCredentials
Clears any cookie saved creds
-->
function cc(F){
var D=new Date();
D.setTime(D.getTime() + 7776000000);
F.elements["userid"].value="";
F.elements["password"].value="";
document.cookie = "fc1=;expires="+D.toGMTString();
document.cookie = "fc2=;expires="+D.toGMTString();
}
<!--#rem
ep      EncodePassword
Extremely simple cipher to provide minimal protection for saved passwords.  Note that this is effectively security by obscurity and will only serve to discourage rank amateurs.
-->
function ep(p){
var pa=new Array();
var sa=new Array();
var oa="";
var s="<X-FC-SERVER-NAME>";
var i=0;
var cs=0;
for(i=0;i<13;i++){
        sa[i]=s.charCodeAt(i%s.length);
        if(cs==0)
                sa[i]=sa[i]%256;
}
pa[0]=p.length;
for(i=0;i<p.length;i++) {
        pa[i+1]=p.charCodeAt(i);
        if(pa[i+1]>255)
                cs=1;
}
for(i=p.length;i<13;i++)
        pa[i+1]=Math.floor(Math.random()*(cs==1?65535:255));
for(i=0;i<13;i++){
        if(i%2){
                pa[i]=pa[i]+sa[i];
                if(cs)
                        pa[i]=pa[i]%65536;
                else
                        pa[i]=pa[i]%256;
        }else{
                pa[i]=pa[i]-sa[i];
                if(pa[i]<0 && cs)
                        pa[i]+=65536;
                else if(pa[i]<0)
                        pa[i]+=256;
        }
}
if(cs){
for(i=0;i<13;i++)
        oa+=HD.charAt(AND(RS(AND(pa[(i+2)%13],0x00F0),4),0x000F));
for(i=0;i<13;i++)
        oa+=HD.charAt(AND(RS(AND(pa[(i+11)%13],0xF000),12),0x000F));
for(i=0;i<13;i++)
        oa+=HD.charAt(AND(RS(AND(pa[(i+5)%13],0x0F00),8),0x000F));
for(i=0;i<13;i++)
        oa+=HD.charAt(AND(pa[(i+1)%13],0x000F));
}else{
for(i=0;i<13;i++)
        oa+=HD.charAt(AND(pa[(i+7)%13],0x0F));
for(i=0;i<13;i++)
        oa+=HD.charAt(AND(RS(AND(pa[(i+4)%13],0xF0),4),0x0F));
}
return oa;
}
<!--#rem
ep      DecodePassword
Decodes a userID/password encoded using EncodePassword
-->
function dp(e){
var pa=new Array();
var sa=new Array();
var cs=(e.length==52?1:0);
var s="<X-FC-SERVER-NAME>";
var i=0;
var p="";
for(i=0;i<13;i++){
        sa[i]=s.charCodeAt(i%s.length);
        if(cs==0)
                sa[i]=sa[i]%256;
}
for(i=0;i<13;i++)
        pa[i]=0;
if(cs){
for(i=0;i<13;i++)
        pa[(i+2)%13]+=(0x0010*parseInt(e.charAt(i),16));
for(i=13;i<26;i++)
        pa[(i+11)%13]+=(0x1000*parseInt(e.charAt(i),16));
for(i=26;i<39;i++)
        pa[(i+5)%13]+=(0x0100*parseInt(e.charAt(i),16));
for(i=39;i<52;i++)
        pa[(i+1)%13]+=(parseInt(e.charAt(i),16));
}else{
for(i=0;i<13;i++)
        pa[(i+7)%13]+=(parseInt(e.charAt(i),16));
for(i=13;i<26;i++)
        pa[(i+4)%13]+=(0x10*parseInt(e.charAt(i),16));
}
for(i=0;i<13;i++)
        pa[i]+=(cs==1?65536:256);
for(i=0;i<13;i++){
        if(i%2)
                pa[i]=pa[i]-sa[i];
        else
                pa[i]=pa[i]+sa[i];
}
for(i=0;i<13;i++)
        pa[i]=pa[i]%(cs?65536:256);
for(i=1;i<(pa[0]+1);i++)
        p+=String.fromCharCode(pa[i]);
return p;
}<!--#else-->
function lc(){}<!--#endif-->
//-->
</script>
</head>
<body bgcolor="<X-FC-FIELD PREFS.5600 DEFAULT="#FFFFFF" RGB>" leftmargin="0" topmargin="0" marginwidth="0" marginheight="0" onLoad="lc();self.focus();document.forms['LOGINFORM'].elements['userid'].focus();document.forms['LOGINFORM'].elements['userid'].select();">
<br>
<form name="LOGINFORM" action="/Login" method="post" enctype="application/x-www-form-urlencoded" onsubmit="return computeMD5(this);">
<input type="hidden" name="charset" value="<X-FC-ITEM DATA[Charset]>">
<input type="hidden" name="origurl" value="<!--#echo var="SRVR_ERR_RESOURCE"--><!--#if expr="@length($SRVR_ERR_RESOURCE_ARGS)"-->?<!--#echo var="SRVR_ERR_RESOURCE_ARGS"--><!--#endif-->">
<input type="hidden" name="md5challenge" value="<!--#echo var="HTTP_LOGIN_CHALLENGE"-->">
<input type="hidden" name="md5" value="">
<table bgcolor="<X-FC-FIELD PREFS.5601 DEFAULT="#C0C0C0" RGB>" align="center" cellpadding="2" cellspacing="0" border="0">
<tr>
        <td rowspan="9" bgcolor="<X-FC-FIELD PREFS.5603 DEFAULT="#555555" RGB>"><img src="/Images/pixel.gif" width="1" height="1" border="0"></td>
        <td bgcolor="<X-FC-FIELD PREFS.5603 DEFAULT="#555555" RGB>" colspan="2"><table cellpadding="0" cellspacing="0" border="0">
        <tr>
                <td>&nbsp;</td>
                <td><img src="/Icons/12727" alt="<X-FC-FIELD LANG.141.4 STRING>" width="32" height="32" border="0"></td>
                <td>&nbsp;</td>
                <td id="title1" nowrap><X-FC-FIELD LANG.141.4 STRING></td>
        </tr>
        </table></td>
        <td rowspan="9" bgcolor="<X-FC-FIELD PREFS.5603 DEFAULT="#555555" RGB>"><img src="/Images/pixel.gif" width="1" height="1" border="0"></td>
</tr>
<tr>
        <td id="plain" nowrap>&nbsp;<X-FC-FIELD LANG.138.1100.9 STRING></td>
        <td id="plain" nowrap><script language="JavaScript">document.write(location.hostname);</script></td>
</tr>
<tr>
        <td id="plain" nowrap>&nbsp;<X-FC-FIELD LANG.138.1001.9 STRING></td>
        <td id="plain" nowrap><X-FC-SERVER-NAME></td>
</tr>
<tr>
        <td><img src="/Icons/801" alt="<X-FC-FIELD LANG.138.0.25 STRING>" border="0"></td>
        <td><table cellpadding="2" cellspacing="0" border="0">
        <tr>
                <td id="plain" nowrap><X-FC-FIELD LANG.138.1101.9 STRING></td>
                <td><input type="text" name="userid" size="40" maxlength="15" value="" tabIndex="1"></td>
        </tr>
        <tr>
                <td id="plain" nowrap><X-FC-FIELD LANG.138.1102.9 STRING></td>
                <td><input type="password" name="password" size="40" maxlength="12" value="" tabIndex="2" onFocus="this.select();" onChange="sp=null;"></td>
        </tr>
        </table></td>
</tr>
<tr>
        <td colspan="2" align="center"><!--#if expr="$ENABLEAUTHSAVING"--><input type="button" value=" Save " onClick="sc(this.form);" tabIndex="3">&nbsp;&nbsp;<input type="button" value=" Clear " onClick="cc(this.form);" tabIndex="4"><!--#else--><img src="/Images/pixel.gif" width="1" height="1" border="0"><!--#endif--></td>          
</tr>
<tr>
        <td colspan="2"><img src="/Images/pixel.gif" width="1" height="1" border="0"></td>
</tr>
<tr>
        <td bgcolor="<X-FC-FIELD PREFS.5603 DEFAULT="#555555" RGB>" colspan="2"><img src="/Images/pixel.gif" width="1" height="1" border="0"></td>
</tr>
<tr>
        <td colspan="2" bgcolor="<X-FC-FIELD PREFS.5603 DEFAULT="#555555" RGB>" align="right"><input type="submit" name="login" value=" <X-FC-FIELD LANG.138.1008.9 STRING> ">&nbsp;<input type="button" onClick="self.location.replace('/');" value=" <X-FC-FIELD LANG.138.1009.9 STRING> "</td>
</tr>
<tr>
        <td bgcolor="<X-FC-FIELD PREFS.5603 DEFAULT="#555555" RGB>" colspan="2"><img src="/Images/pixel.gif" width="1" height="1" border="0"></td>
</tr>
</table>
</form><!--#if expr="$SRVR_ERR_FCPCODE"-->
<script language="JavaScript">
alert("<!--#echo var="SRVR_ERR_FCPREASON"--> [<!--#echo var="SRVR_ERR_FCPCODE"-->]");
</script><!--#endif-->
</body><!--#endif-->
</html>