[Webtest] clickbutton cannot find form submit

Scot Hale webtest@lists.canoo.com
Wed, 19 Feb 2003 17:51:48 -0800


This is a multi-part message in MIME format.

------=_NextPart_000_39b6_4145_73c8
Content-Type: text/html

<html><div style='background-color:'><DIV>
<DIV></DIV>
<DIV></DIV>
<DIV>I have been trying to get a this ant task to work </DIV>
<DIV>&nbsp;</DIV>
<DIV>&lt;setinputfield <BR>&nbsp;stepid="set user name on login page"<BR>&nbsp;name="email"<BR>&nbsp;value="<A href="mailto:jennifer.smith@someplace.com">jennifer.smith@someplace.com</A>" <BR>/&gt;</DIV>
<DIV>&lt;setinputfield <BR>&nbsp;stepid="set password on login page"<BR>&nbsp;name="password"<BR>&nbsp;value="password" <BR>/&gt;</DIV>
<DIV>&lt;clickbutton <BR>&nbsp;stepid="Click the submit button on login page"<BR>&nbsp;name="submit"<BR>/&gt;</DIV>
<DIV>&nbsp;</DIV>
<DIV>I have tried about ten different permutations that might work, and they all come out with this error message : <BR><BR>Test failed.<BR>Test step clickbutton named "Click the submit button on login page" failed with message "Button with name &lt;submit&gt; and value &lt;&lt;not specified&gt;&gt; not found!"<BR></DIV>
<DIV>Is there a problem with the attached html file that it fails on?&nbsp; I cannot figure out what the problem is.&nbsp; Is it obvious what my problem is?&nbsp; I have been looking at this for a day now and haven't seen the problem.&nbsp; Although I am new to Canoo.<BR></DIV>
<DIV>Scot Hale </DIV>
<DIV></DIV>
<DIV></DIV>
<DIV>email: halesm@hotmail.com </DIV>
<DIV></DIV></DIV></div><br clear=all><hr>Protect your PC - <a href="http://g.msn.com/8HMPENUS/2755">Click here</a> for McAfee.com VirusScan Online </html>
------=_NextPart_000_39b6_4145_73c8
Content-Type: text/html; name="lastResponse1045703822680.html"
Content-Transfer-Encoding: 8bit
Content-Disposition: attachment; filename="lastResponse1045703822680.html"







    
    
    
    






<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<!-- TEMPLATE: DEFAULT -->
<html>
<head>
	<title>Extranet Management Login</title>
	<meta http-equiv="content-type" content="text/html;charset=iso-8859-1">
        
	<script type="text/javascript" language="javascript1.2">
	var initFunctionList = new Array();
	
	function registerInitFunction (aFunctionRef) {
		initFunctionList[initFunctionList.length] = aFunctionRef;
	}
	
	function init () {
		// call each registered init function
		for (var i = 0; i < initFunctionList.length; i++) {
			initFunctionList[i](); 
		}
	}
	</script>

	<link rel="stylesheet" href="/tmobile-exmt/css/exmt.css" type="text/css">
	<link href="/tmobile-exmt/masthead/css/masthead.css" type="text/css" rel="stylesheet">
	<link rel="stylesheet" href="/tmobile-exmt/css/panels.css" type="text/css">
	<link rel="stylesheet" href="/tmobile-exmt/css/buttons.css" type="text/css">
	<link rel="stylesheet" href="/tmobile-exmt/css/containers.css" type="text/css">
	<style type="text/css">
	/* the "high-pass" hack. We need to hide some of the NN6+ targeted statements 
		- which use complex child selectors and throw winIE5 for a loop */
	@import "null?\"\{"; 
	@import "/css/containerNN6nesting.css"; 
	</style>
	
        
        <SCRIPT LANGUAGE="Javascript1.1"> 
<!-- Begin 

     var bCancel = false; 

    function validateLoginForm(form) {                                                                   
        if (bCancel) 
      return true; 
        else 
       return validateRequired(form) && validateEmail(form); 
   } 

    function required () { 
     this.aa = new Array("email", "E-Mail must be provided.", new Function ("varName", " return this[varName];"));
     this.ab = new Array("password", "Password must be provided.", new Function ("varName", " return this[varName];"));
    } 

    function email () { 
     this.aa = new Array("email", "The provided E-Mail is not valid", new Function ("varName", " return this[varName];"));
    } 



/**
            * Script to be used when an element is required if another element is
            * in use, for instance, when a checkbox is checked, a separate textfield
            * must be filled in.  The checkbox is the "otherElement" dependancy.
            *
            * Author: Maven Johnson
            */
            function validateOtherElement(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oOtherElement = new otherElement();
                var theOtherElement = null;
                for (x in oOtherElement) {
                    // alert(x+': element ['+form[oOtherElement[x][0]].name+'], has value ['+form[oOtherElement[x][0]].value+']');
                    if (form[oOtherElement[x][0]].value == '') {
                        theOtherElement = form[oOtherElement[x][2]("otherElement")];
                        if (theOtherElement != null) {
                            if (theOtherElement.type == 'checkbox')
                                if (theOtherElement.checked)
                                    bValid = false;
                            else if (theOtherElement.value == '')
                                bValid = false;
                        }
                        if (!bValid) {
                            if (i == 0) {
                                focusField = form[oOtherElement[x][0]];
                            }
                            fields[i++] = oOtherElement[x][1];
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateByte(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oByte = new ByteValidations();
                for (x in oByte) {
                    if ((form[oByte[x][0]].type == 'text' ||
                         form[oByte[x][0]].type == 'textarea' ||
                         form[oByte[x][0]].type == 'select-one' ||
                         form[oByte[x][0]].type == 'radio') &&
                        (form[oByte[x][0]].value.length > 0)) {
                        var iValue = parseInt(form[oByte[x][0]].value);
                        if (isNaN(iValue) || !(iValue >= -128 && iValue <= 127)) {
                            if (i == 0)
                                focusField = form[oByte[x][0]];
                            fields[i++] = oByte[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateMaxLength(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMaxLength = new maxlength();
                for (x in oMaxLength) {
                    if (form[oMaxLength[x][0]].type == 'text' ||
                        form[oMaxLength[x][0]].type == 'textarea') {
                        var iMax = parseInt(oMaxLength[x][2]("maxlength"));
                        if (!(form[oMaxLength[x][0]].value.length <= iMax)) {
                            if (i == 0) {
                                focusField = form[oMaxLength[x][0]];
                            }
                            fields[i++] = oMaxLength[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateRequired(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRequired = new required();
                for (x in oRequired) {
                    if ((form[oRequired[x][0]].type == 'text' ||
                         form[oRequired[x][0]].type == 'textarea' ||
                         form[oRequired[x][0]].type == 'select-one' ||
                         form[oRequired[x][0]].type == 'radio' ||
                         form[oRequired[x][0]].type == 'password') &&
                        (form[oRequired[x][0]].value == '')) {
                        if (i == 0) {
                            focusField = form[oRequired[x][0]];
                        }
                        fields[i++] = oRequired[x][1];
                        bValid = false;
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateInteger(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oInteger = new IntegerValidations();
                for (x in oInteger) {
                    if ((form[oInteger[x][0]].type == 'text' ||
                         form[oInteger[x][0]].type == 'textarea' ||
                         form[oInteger[x][0]].type == 'select-one' ||
                         form[oInteger[x][0]].type == 'radio') &&
                        (form[oInteger[x][0]].value.length > 0)) {
                        var iValue = parseInt(form[oInteger[x][0]].value);
                        if (isNaN(iValue) || !(iValue >= -2147483648 && iValue <= 2147483647)) {
                            if (i == 0) {
                                focusField = form[oInteger[x][0]];
                            }
                            fields[i++] = oInteger[x][1];
                            bValid = false;
                       }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateRange(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRange = new range();
                for (x in oRange) {
                    if ((form[oRange[x][0]].type == 'text' ||
                         form[oRange[x][0]].type == 'textarea') &&
                        (form[oRange[x][0]].value.length > 0)) {
                        var iMin = parseInt(oRange[x][2]("min"));
                        var iMax = parseInt(oRange[x][2]("max"));
                        var iValue = parseInt(form[oRange[x][0]].value);
                        if (!(iValue >= iMin && iValue <= iMax)) {
                            if (i == 0) {
                                focusField = form[oRange[x][0]];
                            }
                            fields[i++] = oRange[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    alert(fields.join('\n'));
                }
                return bValid;
            }
function validateDate(form) {
               var bValid = true;
               var focusField = null;
               var i = 0;
               var fields = new Array();
               oDate = new DateValidations();
               for (x in oDate) {
                   var value = form[oDate[x][0]].value;
                   var datePattern = oDate[x][2]("datePatternStrict");
                   if ((form[oDate[x][0]].type == 'text' ||
                        form[oDate[x][0]].type == 'textarea') &&
                       (value.length > 0) &&
                       (datePattern.length > 0)) {
                     var MONTH = "MM";
                     var DAY = "dd";
                     var YEAR = "yyyy";
                     var orderMonth = datePattern.indexOf(MONTH);
                     var orderDay = datePattern.indexOf(DAY);
                     var orderYear = datePattern.indexOf(YEAR);
                     if ((orderDay < orderYear && orderDay > orderMonth)) {
                         var iDelim1 = orderMonth + MONTH.length;
                         var iDelim2 = orderDay + DAY.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderDay && iDelim2 == orderYear) {
                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
                         } else if (iDelim1 == orderDay) {
                            dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
                         } else if (iDelim2 == orderYear) {
                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
                         } else {
                            dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                            if (!isValidDate(matched[2], matched[1], matched[3])) {
                               if (i == 0) {
                                   focusField = form[oDate[x][0]];
                               }
                               fields[i++] = oDate[x][1];
                               bValid =  false;
                            }
                         } else {
                            if (i == 0) {
                                focusField = form[oDate[x][0]];
                            }
                            fields[i++] = oDate[x][1];
                            bValid =  false;
                         }
                     } else if ((orderMonth < orderYear && orderMonth > orderDay)) {
                         var iDelim1 = orderDay + DAY.length;
                         var iDelim2 = orderMonth + MONTH.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderMonth && iDelim2 == orderYear) {
                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})(\\d{4})$");
                         } else if (iDelim1 == orderMonth) {
                             dateRegexp = new RegExp("^(\\d{2})(\\d{2})[" + delim2 + "](\\d{4})$");
                         } else if (iDelim2 == orderYear) {
                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})(\\d{4})$");
                         } else {
                             dateRegexp = new RegExp("^(\\d{2})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{4})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                             if (!isValidDate(matched[1], matched[2], matched[3])) {
                                 if (i == 0) {
                                     focusField = form[oDate[x][0]];
                                 }
                                 fields[i++] = oDate[x][1];
                                 bValid =  false;
                              }
                         } else {
                             if (i == 0) {
                                 focusField = form[oDate[x][0]];
                             }
                             fields[i++] = oDate[x][1];
                             bValid =  false;
                         }
                     } else if ((orderMonth > orderYear && orderMonth < orderDay)) {
                         var iDelim1 = orderYear + YEAR.length;
                         var iDelim2 = orderMonth + MONTH.length;
                         var delim1 = datePattern.substring(iDelim1, iDelim1 + 1);
                         var delim2 = datePattern.substring(iDelim2, iDelim2 + 1);
                         if (iDelim1 == orderMonth && iDelim2 == orderDay) {
                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})(\\d{2})$");
                         } else if (iDelim1 == orderMonth) {
                             dateRegexp = new RegExp("^(\\d{4})(\\d{2})[" + delim2 + "](\\d{2})$");
                         } else if (iDelim2 == orderDay) {
                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})(\\d{2})$");
                         } else {
                             dateRegexp = new RegExp("^(\\d{4})[" + delim1 + "](\\d{2})[" + delim2 + "](\\d{2})$");
                         }
                         var matched = dateRegexp.exec(value);
                         if(matched != null) {
                             if (!isValidDate(matched[3], matched[2], matched[1])) {
                                 if (i == 0) {
                                     focusField = form[oDate[x][0]];
                                  }
                                  fields[i++] = oDate[x][1];
                                  bValid =  false;
                              }
                          } else {
                              if (i == 0) {
                                  focusField = form[oDate[x][0]];
                              }
                              fields[i++] = oDate[x][1];
                              bValid =  false;
                          }
                     } else {
                         if (i == 0) {
                             focusField = form[oDate[x][0]];
                         }
                         fields[i++] = oDate[x][1];
                         bValid =  false;
                     }
                  }
               }
               if (fields.length > 0) {
                  focusField.focus();
                  alert(fields.join('\n'));
               }
               return bValid;
            }

	    function isValidDate(day, month, year) {
	        if (month < 1 || month > 12) {
                    return false;
                }
                if (day < 1 || day > 31) {
                    return false;
                }
                if ((month == 4 || month == 6 || month == 9 || month == 11) &&
                    (day == 31)) {
                    return false;
                }
                if (month == 2) {
                    var leap = (year % 4 == 0 &&
                               (year % 100 != 0 || year % 400 == 0));
                    if (day>29 || (day == 29 && !leap)) {
                        return false;
                    }
                }
                return true;
            }
function validateCreditCard(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oCreditCard = new creditCard();
                for (x in oCreditCard) {
                    if ((form[oCreditCard[x][0]].type == 'text' ||
                         form[oCreditCard[x][0]].type == 'textarea') &&
                        (form[oCreditCard[x][0]].value.length > 0)) {
                        if (!luhnCheck(form[oCreditCard[x][0]].value)) {
                            if (i == 0) {
                                focusField = form[oCreditCard[x][0]];
                            }
                            fields[i++] = oCreditCard[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    alert(fields.join('\n'));
                }
                return bValid;
            }

            /**
             * Reference: http://www.ling.nwu.edu/~sburke/pub/luhn_lib.pl
             */
            function luhnCheck(cardNumber) {
                if (isLuhnNum(cardNumber)) {
                    var no_digit = cardNumber.length;
                    var oddoeven = no_digit & 1;
                    var sum = 0;
                    for (var count = 0; count < no_digit; count++) {
                        var digit = parseInt(cardNumber.charAt(count));
                        if (!((count & 1) ^ oddoeven)) {
                            digit *= 2;
                            if (digit > 9) digit -= 9;
                        };
                        sum += digit;
                    };
                    if (sum == 0) return false;
                    if (sum % 10 == 0) return true;
                };
                return false;
            }

            function isLuhnNum(argvalue) {
                argvalue = argvalue.toString();
                if (argvalue.length == 0) {
                    return false;
                }
                for (var n = 0; n < argvalue.length; n++) {
                    if ((argvalue.substring(n, n+1) < "0") ||
                        (argvalue.substring(n,n+1) > "9")) {
                        return false;
                    }
                }
                return true;
            }
/**
            * Script to be used with multipleSelectionTable component to 
            * validate that at least one checkbox is checked. If a field
            * named 'requestedAction' is present, the validation only happens
            * if requestedAction is filled.
            *
            * Author: Susan Nelson            
            */
	    function validateMultipleSelectionFormEntry(form) {
              
              if ((form.requestedAction != null) && (form.requestedAction.length == 0)) {
                  return true;
              }
              
              var isChecked = false;

              if (form.selectedItems.type == "checkbox") { // not an array if only one box

                 if (form.selectedItems.checked) {
                     isChecked = true;
                 }
              }
              else
              {
                 for (var i = 0; i < form.selectedItems.length; i++) 
                 {
                    if (form.selectedItems[i].checked){
                       isChecked = true;
                    }
                 }
              }
                 

              if (!isChecked) {
              
                  var oSelections = new multipleSelectionEntry();
                  var message;
                  
                  for (x in oSelections) {

                      message = oSelections[x][1];
                  }
                  
                  alert(message);
                  return false;
              }

              return true;
           }
/**
            * Script to be used with label select box 809 component to 
            * validate that the selection is not the default selection.
            * Note: This script assumes that the default option is named "default".
            *
            * Author: Susan Nelson            
            */
	    function validateRequiredSelectionFormEntry(form) {

                var bValid = true;
                var focusField = null;                
                var i = 0;
                var fields = new Array();
                oRequired = new requiredSelectionEntry();
                
                for (x in oRequired) {

                    if (form[oRequired[x][0]].type == 'select-one') {
                        
                        if ((form[oRequired[x][0]].value.length == 0) ||
                            ("default" == form[oRequired[x][0]].value)) {
                            
                            if (i == 0) {
                                focusField = form[oRequired[x][0]];
                            }
                            
                            fields[i++] = oRequired[x][1];
                            bValid = false;
                        }
                    }
                }
                
                if (fields.length > 0) {
                    focusField.focus();
                    alert(fields.join('\n'));
                }
                
                return bValid;
            }
function validateShort(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oShort = new ShortValidations();
                for (x in oShort) {
                    if ((form[oShort[x][0]].type == 'text' ||
                         form[oShort[x][0]].type == 'textarea' ||
                         form[oShort[x][0]].type == 'select-one' ||
                         form[oShort[x][0]].type == 'radio') &&
                        (form[oShort[x][0]].value.length > 0)) {
                        var iValue = parseInt(form[oShort[x][0]].value);
                        if (isNaN(iValue) || !(iValue >= -32768 && iValue <= 32767)) {
                            if (i == 0) {
                                focusField = form[oShort[x][0]];
                            }
                            fields[i++] = oShort[x][1];
                            bValid = false;
                       }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateEquals(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oEquals = new equals();
                for (x in oEquals) {
                    if ((form[oEquals[x][0]].type == 'text' ||
                         form[oEquals[x][0]].type == 'textarea' ||
                         form[oEquals[x][0]].type == 'password') &&
                        (form[oEquals[x][0]].value.length > 0)) {
                        // alert('element: ['+form[oEquals[x][0]].value+'], confirmElement: ['+form[oEquals[x][2]("secondProperty")].value+']');
                        if (form[oEquals[x][0]].value != form[oEquals[x][2]("secondProperty")].value) {
                            if (i == 0) {
                                focusField = form[oEquals[x][0]];
                            }
                            fields[i++] = oEquals[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateFloat(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oFloat = new FloatValidations();
                for (x in oFloat) {
                    if ((form[oFloat[x][0]].type == 'text' ||
                         form[oFloat[x][0]].type == 'textarea' ||
                         form[oFloat[x][0]].type == 'select-one' ||
                         form[oFloat[x][0]].type == 'radio') &&
                        (form[oFloat[x][0]].value.length > 0)) {
                        var iValue = parseFloat(form[oFloat[x][0]].value);
                        if (isNaN(iValue)) {
                            if (i == 0) {
                                focusField = form[oFloat[x][0]];
                            }
                            fields[i++] = oFloat[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateEmail(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oEmail = new email();
                for (x in oEmail) {
                    if ((form[oEmail[x][0]].type == 'text' ||
                         form[oEmail[x][0]].type == 'textarea') &&
                        (form[oEmail[x][0]].value.length > 0)) {
                        if (!checkEmail(form[oEmail[x][0]].value)) {
                            if (i == 0) {
                                focusField = form[oEmail[x][0]];
                            }
                            fields[i++] = oEmail[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                    focusField.focus();
                    alert(fields.join('\n'));
                }
                return bValid;
            }

            /**
             * Reference: Sandeep V. Tamhankar (stamhankar@hotmail.com),
             * http://javascript.internet.com
             */
            function checkEmail(emailStr) {
               if (emailStr.length == 0) {
                   return true;
               }
               var emailPat=/^(.+)@(.+)$/;
               var specialChars="\\(\\)<>@,;:\\\\\\\"\\.\\[\\]";
               var validChars="\[^\\s" + specialChars + "\]";
               var quotedUser="(\"[^\"]*\")";
               var ipDomainPat=/^(\d{1,3})[.](\d{1,3})[.](\d{1,3})[.](\d{1,3})$/;
               var atom=validChars + '+';
               var word="(" + atom + "|" + quotedUser + ")";
               var userPat=new RegExp("^" + word + "(\\." + word + ")*$");
               var domainPat=new RegExp("^" + atom + "(\\." + atom + ")*$");
               var matchArray=emailStr.match(emailPat);
               if (matchArray == null) {
                   return false;
               }
               var user=matchArray[1];
               var domain=matchArray[2];
               if (user.match(userPat) == null) {
                   return false;
               }
               var IPArray = domain.match(ipDomainPat);
               if (IPArray != null) {
                   for (var i = 1; i <= 4; i++) {
                      if (IPArray[i] > 255) {
                         return false;
                      }
                   }
                   return true;
               }
               var domainArray=domain.match(domainPat);
               if (domainArray == null) {
                   return false;
               }
               var atomPat=new RegExp(atom,"g");
               var domArr=domain.match(atomPat);
               var len=domArr.length;
               if ((domArr[domArr.length-1].length < 2) ||
                   (domArr[domArr.length-1].length > 3)) {
                   return false;
               }
               if (len < 2) {
                   return false;
               }
               return true;
            }
/**
             * Used when each element of a radioGroup is associated
             * with an additional field that must be filled in if the value
             * of the radioGroup matches a value associated with this element.
             *
             * define:
             * vars radioGroup, radioValue
             * args 0
             * msg
             */
            function validateRadioChecked(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oRadioChecked = new radioChecked();
                for (x in oRadioChecked) {
                    if ((form[oRadioChecked[x][0]].type == 'text' ||
                         form[oRadioChecked[x][0]].type == 'textarea' ||
                         form[oRadioChecked[x][0]].type == 'password') &&
                        (form[oRadioChecked[x][0]].value == '')) {
                        var radioValue = oRadioChecked[x][2]("radioValue");
                        var radioGroup = form[oRadioChecked[x][2]("radioGroup")];
			// alert(radioGroup);
                        // alert('element: ['+form[oRadioChecked[x][0]].value+'], value wanted: ['+radioValue+'], value: ['+radioGroup.value+']');
                        if (radioGroup != null) {
                            if (radioGroup.checked && radioGroup.value != radioValue)
                                bValid = false;
                        }
                        if (!bValid) {
                            if (i == 0) {
                                focusField = form[oRadioChecked[x][0]];
                            }
                            fields[i++] = oRadioChecked[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }
function validateMask(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMasked = new mask();
                for (x in oMasked) {
                    if ((form[oMasked[x][0]].type == 'text' ||
                         form[oMasked[x][0]].type == 'textarea' ||
                         form[oMasked[x][0]].type == 'password') &&
                        (form[oMasked[x][0]].value.length > 0)) {
                        if (!matchPattern(form[oMasked[x][0]].value, oMasked[x][2]("mask"))) {
                            if (i == 0) {
                                focusField = form[oMasked[x][0]];
                            }
                            fields[i++] = oMasked[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }

            function matchPattern(value, mask) {
               var bMatched = mask.exec(value);
               if (!bMatched) {
                   return false;
               }
               return true;
            }
function validateMinLength(form) {
                var bValid = true;
                var focusField = null;
                var i = 0;
                var fields = new Array();
                oMinLength = new minlength();
                for (x in oMinLength) {
                    if (form[oMinLength[x][0]].type == 'text' ||
                        form[oMinLength[x][0]].type == 'password' ||
                        form[oMinLength[x][0]].type == 'textarea') {
                        var iMin = parseInt(oMinLength[x][2]("minlength"));
                        // alert('minlength: ['+iMin+'], fieldlength: ['+form[oMinLength[x][0]].value.length+']');
                        if (!(form[oMinLength[x][0]].value.length >= iMin)) {
                            if (i == 0) {
                                focusField = form[oMinLength[x][0]];
                            }
                            fields[i++] = oMinLength[x][1];
                            bValid = false;
                        }
                    }
                }
                if (fields.length > 0) {
                   focusField.focus();
                   alert(fields.join('\n'));
                }
                return bValid;
            }

//  End -->
</SCRIPT>


    
</head>

<body marginwidth="0" marginheight="0" onload="init()">

  
  
  








<table border="0" cellpadding="0" cellspacing="0" width="100%">
	<tr class="topnavstrip">
		<td><img src="/tmobile-exmt/spacer.gif" height="1" width="239" alt=""></td>
		<td width="2000"><img src="/tmobile-exmt/spacer.gif" height="1" width="6" alt=""></td>
	</tr>
	<tr class="topnavstrip">
                
                
                    <td><b>&nbsp;&nbsp;ExMT</b></td>
                
		<td width="2000"><img src="/tmobile-exmt/spacer.gif" height="19" width="6" alt=""></td>
	</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
	<tr class="border">
		<td><img src="/tmobile-exmt/spacer.gif" height="1" width="250" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" height="1" width="480" alt=""></td>
		<td width="2000"><img src="/tmobile-exmt/spacer.gif" height="1" width="6" alt=""></td>		
	</tr>
	<tr>
		<td class="mastheadTitle">ExMT Login</td>
		<td align="right"><img src="/tmobile-exmt/masthead/images/mhTmobileLogo.gif" height="36" width="151" alt=""></td>
		<td width="2000"><img src="/tmobile-exmt/spacer.gif" height="1" width="6" alt=""></td>
	</tr>
</table>
<!-- START: Static Navigation Menu  -->
<table border="0" cellpadding="0" cellspacing="0" width="100%">
	<tr class="border">
		<td><img src="/tmobile-exmt/spacer.gif" height="1" width="1" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" height="1" width="1" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" height="1" width="1" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" height="1" width="1" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" height="1" width="1" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" height="1" width="1" alt=""></td>
		<td><img src="/tmobile-exmt/spacer.gif" alt=""></td>
		<td width="2000"><img src="/tmobile-exmt/spacer.gif" height="1" width="6" alt=""></td>
	</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
	<tr class="masthead-nav-remainder">
		<td>
<table border="0" cellpadding="0" cellspacing="0" width="752">
  <tr class="masthead-nav">



    <td width="2000" class="masthead-nav">&nbsp;</td>
    <td align="right"><img src="/tmobile-exmt/masthead/images/mhPlaceholderRt.jpg" alt=""></td>
    <td class="border"><img src="/tmobile-exmt/spacer.gif" height="23" width="1" alt=""></td>
  </tr>
</table>
</td>
	</tr>
</table>
<table border="0" cellpadding="0" cellspacing="0" width="100%">
	<tr>
		<td class="border"><img src="/spacer.gif" width="752" height="1" alt=""></td>
	</tr>
</table>
<!-- END: Static Navigation Menu  -->

<div class="main">

    







        <table align='center' width='100%' border='0' cellpadding='3' cellspacing='0'>
            <form name="loginForm" method="POST" action="/tmobile-exmt/validateLogin.do" onsubmit="return validateLoginForm(this);" target="_top">
                <tr><td>
                
                  
                
<div class="containerHeader">
	<strong class="section">Log In</strong>
</div>
                
                  
                  
                





<div class="containerMessaging">
        <p><span class="instructional">To access [the management tool], enter your email address and password in the fields below. Your password is case-sensitive, so be sure to enter it correctly.

<br><span class="required">*</span> Denotes required field.</span>

</p>
</div>


                <div class='containerBody'><p>
                
                  
                  
                  
                








<span class="required">*</span>&nbsp;

Email:<br>

    <input type="text" name="email" value="" style="width:180px;">


<p>
                
                  
                  
                  
                  
                








<span class="required">*</span>&nbsp;

Password:<br>


    <input type="password" name="password" value="" style="width:180px;">

<p>
                <a href="/tmobile-exmt/passwordReminder.do">Forgot Password?</a><br>
                If you have problems logging in, please contact your <a href="mailto:exmtadmin@t-mobile-exmt.com">User Administrator</a>.
                </div>

                
                  
                    
                  
                



<!-- START: Generic Footer -->

<div class="containerFooter">
<!-- derived: /codeLibrary/componentCode/buttons/primaryButton.inc -->
<table cellpadding="0" cellspacing="4" border="0" class="btnRow">
  <tr valign="middle">
    
      <td class="btnWrapper"><input type="submit" name="submit" value="Login" class="primaryBtn"></td>
    
  </tr>
</table>
</div>
                </td></tr>
            </form>
<script language="JavaScript" type="text/javascript">
  <!--
 if (document.forms["loginForm"].elements["email"].type != "hidden") 
    document.forms["loginForm"].elements["email"].focus()
  // -->
</script>

        </table>
    
</div>
<!-- TEMPLATE: /DEFAULT -->
</body>
</html>

------=_NextPart_000_39b6_4145_73c8--