From: Subject: DTV Quarterly Activity Station Report Date: Wed, 8 Oct 2008 11:10:39 -0500 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0000_01C92936.7EFE5620" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.3350 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01C92936.7EFE5620 Content-Type: text/html; charset="utf-8" Content-Transfer-Encoding: quoted-printable Content-Location: http://fjallfoss.fcc.gov/cdbs/cdbs_docs/388_101.cfm?printform=Y&formid=388&appn=1270631&acct=127562 =EF=BB=BF DTV Quarterly = Activity Station Report
=20 =20
Federal = Communications=20 Commission
Washington, D.C. = 20554
Approved by OMB
3060-1115 = (March=20 2008)
FOR FCC = USE=20 ONLY
 
FCC 388
DTV Quarterly Activity = Station=20 Report
FOR = COMMISSION USE=20 ONLY
FILE NO.
-20081008ACU =
Licensee
KPTM (TV) LICENSE, LLC - = DEBTOR-IN-POSSESSION
Call = Sign=20
KPTM
Facility = Id
51491=20
Previous Call Sign (if=20 applicable)
Community of = License
City State County
NE DOUGLAS = 68132 -=20

OMAHA
World Wide Web Home Page=20 Address
WWW.KPTM.COM
Licensee Renewal = Expiration Date=20 (mm/dd/yyyy)
06/01/2014
Channel Numbers: (Check the Channel Number(s) to which this form=20 applies.)
3D"checkbox Analog=20 42  
Digital=20 43 =20
Report reflects information for = quarter=20 ending: 09/30/2008
Have you opted to comply with Option = One, Two,=20 or Three (once elected, this choice may not change)?
3D"radio = Option One (A=20 and D) 3D"radio = Option Two (B=20 and D) 3D"radio = Option Three=20 (C and D)

Over the = past quarter,=20 have you fully complied with the requirements of this option? = Yes = No=20
Simulcasting:
Are you simulcasting on your Analog = channel=20 and your primary Digital stream? Yes = No=20
Application Purpose: =
 
3D"radio=20 Amendment File Number -=20

Section B (For broadcasters electing Option=20 Two)

On its analog channel, and its = primary=20 digital stream, a station must run an average of 16 transition-related = PSAs and=20 16 transition-related crawls, snipes, and/or tickers per week in each = quarter,=20 all between the hours of 5 a.m. and 1 a.m. It must also run one 30 = minute=20 DTV-related informational program once, and one 100-Day Countdown piece = per day=20 for the 100 days prior to the conclusion of the transition. Comment = boxes MUST=20 be used to describe these compliant activities (See rules for additional = details).

Total Number of Eligible DTV Transition-Related = PSAs and=20 Crawls, Snipes, and/or Tickers (CSTs) Run -- Last = Quarter


How many DTV PSAs and CSTs did your station = run=20 between 5:00 a.m. and 1:00 a.m. last quarter?

  Total 5:00 a.m. to 1:00 a.m. = PSAs=20    250 =
  Total 5:00 a.m. to 1:00 a.m. = CSTs=20    260 =

For = informational=20 purposes only, how many DTV PSAs and CSTs did your station run in = the last=20 quarter from 6:00 a.m. to 9:00 a.m.?
  Total 6:00 a.m. to 9:00 a.m. = PSAs=20 74
  Total 6:00 a.m. to 9:00 a.m. = CSTs=20 0

For = stations=20 located in the Eastern or Pacific Time Zone, how many DTV PSAs and = CSTs=20 did your station run in the last quarter from 6:00 p.m. to 11:35 = p.m.=20 (must average at least 4 per week)?
  Total 6:00 p.m. to 11:35 p.m.=20 PSAs  
  Total 6:00 p.m. to 11:35 p.m.=20 CSTs  

For = stations=20 located in the Central or Mountain Time Zone, how many DTV PSAs = and CSTs=20 did your station run in the last quarter from 5:00 p.m. to 10:35 = p.m.(must=20 average at least 4 per week)?
  Total 5:00 p.m. to 10:35 p.m.=20 PSAs  57
  Total 5:00 p.m. to 10:35 p.m.=20 CSTs  65
Comments:

30 Minute Educational Programs - Last = Quarter


How = many 30=20 minute, DTV-related informational programs did your station run = during the=20 quarter? At least one such program must be run between the hours = of 8:00=20 a.m. and 11:35 p.m., prior to February 17, 2009.
Total number of 30 Minute = Informational=20 Programs   3
Comments:
WE RAN = "COUNTDOWN=20 TO DTV" ON THE FOLLOWING DATES AND TIMES BETWEEN THE HOURS OF=20 8AM-1135PM:

JULY 28TH- 1030AM

AUG 12TH- = 1030AM

SEPT=20 9TH- 830AM

100-Day Countdown Eligible Pieces - Last=20 Quarter


Beginning on=20 November 10, 2008, all stations participating in Option Two will = engage in=20 special 100-Day "Countdown to DTV" activities. Stations must = execute a=20 minimum of one "Countdown to DTV" on-air activity per day during = the 100=20 days leading up to February 17, 2009. During the last quarter, how = many of=20 each eligible 100-Day "Countdown to DTV" pieces did your station=20 run?
   0=20 Graphic=20 Displays
   0 = Animated=20 Graphics
   0 = Graphic and Audio=20 Displays
   0 = Longer Form=20 Reminders
Comments:=20

Section D (For all broadcasters)

Additional DTV On-air = Initiatives -=20 Last Quarter  
Did your station run additional on-air = initiatives (such=20 as news reports, town hall meetings, etc.) during the quarter? The = comment=20 box may be used to describe these initiatives. 3D"radioYes = No=20
Comments:
SEGMENT ON = KPTM=20 9PM NEWS 8/10/08 FOCUSED ON REASONS BEHIND DTV = TRANSITION.

SEGMENT=20 ON KPTM 9PM NEWS 07/25/08 INFORMED VIEWERS ABOUT LOCATIONS TO = RECYCLE=20 THEIR OLDER ANALOG TV SETS
Station Website Additional = Activity=20 Related to the DTV Transition - Last Quarter  
Does your station have = a=20 Website? 3D"radioYes = No =
If YES, did your = station provide=20 additional DTV related information or activities on that Website? = The=20 comment box may be used to describe what was posted on the = station's=20 Website. Yes = No=20
Comments:
THE = STATION=20 WEBSITE HAS A SPECIAL DTV PAGE PROVIDING VIEWERS WITH A LIST OF = FREQUENTLY=20 ASKED QUESTIONS, A DTV FACT SHEET, A DTV TIP SHEET, A DTV GLOSSARY = SECTION, A LINK TO THE FCC, AND A DTV SHOPPERS GUIDE. THE KPTM 1ST = AND 2ND=20 QTR 388 FORMS ARE ALSO AVAILABLE FOR PUBLIC VIEWING ON THE = WEBSITE.=20
Additional DTV Outreach = Efforts --=20 Last Quarter  
Check all of the DTV related = activities=20 listed below that your station engaged in over the last quarter. = The=20 comment box may be used to describe this activity.  
= Speaking=20 Engagements

Comments:
ON = AUGUST 7,=20 2008, BILL FREEDMAN, FCC ASSOCIATE CHIEF OF THE MEDIA BUREAU = APPEARED ON=20 OMAHA LIFE, A LOCAL SHOW ON KPTM, TO INFORM VIEWERS ON THE DTV = TRANSITION.=20

= Community=20 Events=20

Comments:

3D"checkbox = Other=20 (describe)

Comments:


This comment = box may be=20 used to include other comments or information about your station's = DTV=20 activity over the last quarter.

Comments:

 

Station=20 Certification
I certify that the = statements in=20 this document are true, complete, and correct to the best of my = knowledge=20 and belief, and are made in good faith.
Typed or = Printed Name=20 of Person Signing Typed or Printed Title of Person=20 Signing
TRUSTEE, KPTM (TV) LICENSE, LLC =
Signature
E. ROGER WILLIAMS=20
Date=20 (mm/dd/yyyy)

WILLFUL FALSE STATEMENTS ON THIS FORM ARE = PUNISHABLE BY=20 FINE AND/OR IMPRISONMENT (U.S. CODE, TITLE 18, SECTION 1001), AND/OR = REVOCATION OF ANY STATION LICENSE OR CONSTRUCTION PERMIT (U.S. CODE, = TITLE=20 47, SECTION 312(a)(1)), AND/OR FORFEITURE (U.S. CODE, TITLE 47, = SECTION=20 503).

FCC NOTICE REQUIRED BY = THE PAPERWORK=20 REDUCTION ACT

We have estimated that each response = to this=20 collection of information will take 3 hours. Our estimate includes = the time=20 to read the instructions, look through existing records, gather and = maintain=20 required data, and actually complete and review the form or = response. If you=20 have any comments on this estimate, or on how we can improve the = collection=20 and reduce the burden it causes you, please write the Federal = Communications=20 Commission, AMD-PERM, Paperwork Reduction Project (3060-1115), = Washington,=20 D.C. 20554. We will also accept your comments via the Internet if = you send=20 them to pra@fcc.gov. Remember - you are not required to respond to a = collection of information sponsored by the Federal government, and = the=20 government may not conduct or sponsor this collection, unless it = displays a=20 currently valid OMB control number or if we fail to provide you with = this=20 notice. This collection has been assigned an OMB control number of=20 3060-1115.

THE FOREGOING NOTICE IS = REQUIRED BY=20 THE PAPERWORK REDUCTION ACT OF 1995, P.L. 104-13, OCTOBER 1, 1995, = 44 U.S.C.=20 3507.

 

------=_NextPart_000_0000_01C92936.7EFE5620 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://fjallfoss.fcc.gov/cdbs/cdbs_docs/check_on.gif R0lGODlhDwAPAPcAAAAAAISEhMbGxufn5/////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////yH5BAEAAAQALAAAAAAPAA8A AAhVAAkIHEiwIIEACBMqRDhAYAAAECNKFNDwIACDAyk6vGjwokaLHT1WfEiAY0mIBD6SRBlRoMqL Ek2+FNgy40iTJl3exKjToYCfQIN+HEC0qNGiPHkGBAA7 ------=_NextPart_000_0000_01C92936.7EFE5620 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://fjallfoss.fcc.gov/cdbs/cdbs_docs/radio_of.gif R0lGODlhEAAQAPcAAAAAAISEhMbGxufn3v////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////yH5BAEAAAQALAAAAAAQABAA AAhNAAkIHEiwoMGDCAUGWBggIYGFACICWHgwQESCEQcYtGhQgEaCHA96BAkA4ciBITt+VFhS5EqW KjdSHCjgZMEBA2rWxOkQJ0+HQIMSDAgAOw== ------=_NextPart_000_0000_01C92936.7EFE5620 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://fjallfoss.fcc.gov/cdbs/cdbs_docs/radio_on.gif R0lGODlhEAAQAPcAAAAAAAEBAQICAgMDAwQEBAUFBQYGBgcHBwgICAkJCQoKCgsLCwwMDA0NDQ4O Dg8PDxAQEBERERISEhMTExQUFBUVFRYWFhcXFxgYGBkZGRoaGhsbGxwcHB0dHR4eHh8fHyAgICEh ISIiIiMjIyQkJCUlJSYmJicnJygoKCkpKSoqKisrKywsLC0tLS4uLi8vLzAwMDExMTIyMjMzMzQ0 NDU1NTY2Njc3Nzg4ODk5OTo6Ojs7Ozw8PD09PT4+Pj8/P0BAQEFBQUJCQkNDQ0REREVFRUZGRkdH R0hISElJSUpKSktLS0xMTE1NTU5OTk9PT1BQUFFRUVJSUlNTU1RUVFVVVVZWVldXV1hYWFlZWVpa WltbW1xcXF1dXV5eXl9fX2BgYGFhYWJiYmNjY2RkZGVlZWZmZmdnZ2hoaGlpaWpqamtra2xsbG1t bW5ubm9vb3BwcHFxcXJycnNzc3R0dHV1dXZ2dnd3d3h4eHl5eXp6ent7e3x8fH19fX5+fn9/f4CA gIGBgYKCgoODg4SEhIWFhYaGhoeHh4iIiImJiYqKiouLi4yMjI2NjY6Ojo+Pj5CQkJGRkZKSkpOT k5SUlJWVlZaWlpeXl5iYmJmZmZqampubm5ycnJ2dnZ6enp+fn6CgoKGhoaKioqOjo6SkpKWlpaam pqenp6ioqKmpqaqqqqurq6ysrK2tra6urq+vr7CwsLGxsbKysrOzs7S0tLW1tba2tre3t7i4uLm5 ubq6uru7u7y8vL29vb6+vr+/v8DAwMHBwcLCwsPDw8TExMXFxcbGxsfHx8jIyMnJycrKysvLy8zM zM3Nzc7Ozs/Pz9DQ0NHR0dLS0tPT09TU1NXV1dbW1tfX19jY2NnZ2dra2tvb29zc3N3d3d7e3t/f 3+Dg4OHh4eLi4uPj4+Tk5OXl5ebm5ufn5+jo6Onp6erq6uvr6+zs7O3t7e7u7u/v7/Dw8PHx8fLy 8vPz8/T09PX19fb29vf39/j4+Pn5+fr6+vv7+/z8/P39/f7+/v///yH5BAEAAP8ALAAAAAAQABAA AAhYAP8JHEiwoMGDCAUSWkgo4b+FACICWHiQUESCEc0ZtGjQmEaCHAVeFOgRJACREkl+VHjyn8SW JQeGdNnyX0yZNQfelElR586B5swZG+px5cGgQR0qXVowIAA7 ------=_NextPart_000_0000_01C92936.7EFE5620 Content-Type: image/gif Content-Transfer-Encoding: base64 Content-Location: http://fjallfoss.fcc.gov/cdbs/cdbs_docs/check_of.gif R0lGODlhDwAPAPcAAAAAAISEhMbGxufn3v////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////yH5BAEAAAQALAAAAAAPAA8A AAhJAAkIHEiwIIEACBMqRDhAYAAAECNKFNDwIACDAyk6vIiRgEaLHT1WfBjyI8mOJjliTFlypEqD LFGOFECzps2PA3Lq3KkzJMaAAAA7 ------=_NextPart_000_0000_01C92936.7EFE5620 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://fjallfoss.fcc.gov/cdbs/CFIDE/scripts/cfform.js /* * Copyright (c) 1995-2005 Macromedia, Inc. All rights reserved.=20 */ // ColdFusion JavaScript functions for cfform client-side validation var _CF_error_messages =3D new Array(); var _CF_error_fields =3D new Object(); var _CF_FirstErrorField =3D null; var _CF_submit_status=3D new Array(); function _CF_signalLoad() { _CF_loaded =3D 1; } function _CF_onError(form_object, input_object, object_value, = error_message) { if( _CF_error_fields[input_object] =3D=3D null ) { if( _CF_FirstErrorField =3D=3D null ) { _CF_FirstErrorField =3D input_object; } _CF_error_exists =3D true; _CF_error_fields[input_object] =3D error_message; _CF_error_messages[_CF_error_messages.length ] =3D error_message; } } function _CF_onErrorAlert(msgArray) { //build error message string var errorStr =3D ""; for(var i=3D0; i < msgArray.length; i++) { errorStr +=3D msgArray[i] +"\n"; } =09 alert(errorStr); return false;=09 } /** * called by the flash controls in an html form, to update the right = hidden field */ function updateHiddenValue(val, form, name) { //alert(form +":" +name +":" +val); if (form =3D=3D null || form =3D=3D "") form =3D 0; if (document.forms[form] =3D=3D null || document.forms[form][name] = =3D=3D null) { return; } document.forms[form][name].value =3D val; } function _CF_hasValue(obj, obj_type, obj_trim) { =09 if (obj_type =3D=3D "TEXT" || obj_type =3D=3D "FILE" ||obj_type =3D=3D = "PASSWORD" || obj_type =3D=3D "CFTEXTAREA" || obj_type =3D=3D "TEXTAREA" = || obj_type =3D=3D "CFTEXTINPUT") { if (obj.value.length =3D=3D 0)=20 return false; else=20 if( obj_trim ) { //trim whitespace - for backward compatability this is optional str =3D obj.value.replace(/^\s+/,'').replace(/\s+$/,''); if (str.length =3D=3D 0) { return false; } } return true; } else if (obj_type =3D=3D "SELECT") { for (i=3D0; i < obj.length; i++) { if (obj.options[i].selected) return true; } return false;=09 } else if (obj_type =3D=3D "SINGLE_VALUE_RADIO" || obj_type =3D=3D = "SINGLE_VALUE_CHECKBOX") { if (obj.checked) return true; else return false;=09 } else if (obj_type =3D=3D "RADIO" || obj_type =3D=3D "CHECKBOX") { if( obj.length =3D=3D undefined && obj.checked ) { return true; }else{ for (i=3D0; i < obj.length; i++) { if (obj[i].checked) return true; } } return false;=09 }else if( obj_type =3D=3D "CFTREE"){ if( obj['value'].length > 0 ) { return true; }else{ return false; } }else{ return true; } } function _CF_checkdate(object_value, required) { //Returns true if value is a date format or is NULL //otherwise returns false //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); object_value =3D object_value =3D object_value.replace(/{d \'/, = '').replace(/'}/, ''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } if (object_value.length =3D=3D 0) return true; //Returns true if value is a date in the mm/dd/yyyy format isplit =3D object_value.indexOf('/'); splitchr =3D "/"; if (isplit =3D=3D -1) { isplit =3D object_value.indexOf('.'); splitchr =3D "."; } if (isplit =3D=3D -1) { isplit =3D object_value.indexOf('-'); splitchr =3D "-"; } if (isplit =3D=3D -1 || isplit =3D=3D object_value.length) return false; var element1 =3D object_value.substring(0, isplit); // check for yyyy-mm-dd format if( element1.length =3D=3D 4 ) { sYear =3D object_value.substring(0, isplit); isplit =3D object_value.indexOf(splitchr, isplit + 1); if (isplit =3D=3D -1 || (isplit + 1 ) =3D=3D = object_value.length) return false; sMonth =3D object_value.substring((sYear.length + 1), isplit); sDay =3D object_value.substring(isplit + 1); } else { sMonth =3D object_value.substring(0, isplit); isplit =3D object_value.indexOf(splitchr, isplit + 1); if (isplit =3D=3D -1 || (isplit + 1 ) =3D=3D = object_value.length) return false; sDay =3D object_value.substring((sMonth.length + 1), isplit); sYear =3D object_value.substring(isplit + 1); } if (!_CF_checkinteger(sMonth)) //check month return false; else if (!_CF_checkrange(sMonth, 1, 12)) //check month return false; else if (!_CF_checkinteger(sYear)) //check year return false; else if( sYear.length !=3D 1 && sYear.length !=3D 2 && sYear.length = !=3D 4 ) return false; else if (!_CF_checkrange(sYear, 0, 9999)) //check year return false; else if (!_CF_checkinteger(sDay)) //check day return false; else if (!_CF_checkday(sYear, sMonth, sDay)) // check day return false; else return true; } function _CF_checkeurodate(object_value, required) { //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); object_value =3D object_value =3D object_value.replace(/{d \'/, = '').replace(/'}/, ''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } isplit =3D object_value.indexOf('/'); splitchr =3D "/"; if (isplit =3D=3D -1) { isplit =3D object_value.indexOf('.'); splitchr =3D "."; } =09 if (isplit =3D=3D -1) { isplit =3D object_value.indexOf('-'); splitchr =3D "-"; } if (isplit =3D=3D -1 || isplit =3D=3D object_value.length) return false; var element1 =3D object_value.substring(0, isplit); // check for yyyy-mm-dd format if( element1.length =3D=3D 4 ) { sYear =3D object_value.substring(0, isplit); isplit =3D object_value.indexOf(splitchr, isplit + 1); if (isplit =3D=3D -1 || (isplit + 1 ) =3D=3D = object_value.length) return false; sMonth =3D object_value.substring((sYear.length + 1), isplit); sDay =3D object_value.substring(isplit + 1); } else { sDay =3D object_value.substring(0, isplit); isplit =3D object_value.indexOf(splitchr, isplit + 1); if (isplit =3D=3D -1 || (isplit + 1 ) =3D=3D = object_value.length) return false; sMonth =3D object_value.substring((sDay.length + 1), isplit); sYear =3D object_value.substring(isplit + 1); } if (!_CF_checkinteger(sMonth)) return false; else if (!_CF_checkrange(sMonth, 1, 12)) return false; else if (!_CF_checkinteger(sYear)) return false; else if (!_CF_checkrange(sYear, 0, null)) return false; else if (!_CF_checkinteger(sDay)) return false; else if (!_CF_checkday(sYear, sMonth, sDay)) return false; else return true; } function _CF_checkday(checkYear, checkMonth, checkDay) { maxDay =3D 31; if (checkMonth =3D=3D 4 || checkMonth =3D=3D 6 || checkMonth =3D=3D 9 || checkMonth =3D=3D 11) maxDay =3D 30; else if (checkMonth =3D=3D 2) { if (checkYear % 4 > 0) maxDay =3D28; else if (checkYear % 100 =3D=3D 0 && checkYear % 400 > 0) maxDay =3D 28; else maxDay =3D 29; } return _CF_checkrange(checkDay, 1, maxDay); } function _CF_checkinteger(object_value, required) { //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); //remove numeric noise object_value =3D object_value.replace(/[$=C2=A3=C2=A5=E2=82=AC,~+]?/g, = ''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } var decimal_format =3D "."; var check_char =3D object_value.indexOf(decimal_format); if (check_char =3D=3D -1) return _CF_checknumber(object_value); else return false; } function _CF_numberrange(object_value, min_value, max_value, required) { //trim whitespace before we validate //object_value =3D = object_value.replace(/^\s+/,'').replace(/\s+$/,''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } if (min_value !=3D null) { if (object_value < min_value) return false; } if (max_value !=3D null) { if (object_value > max_value) return false; } return true; } function _CF_checknumber(object_value, required) { var start_format =3D " .+-0123456789"; var number_format =3D " .0123456789"; var check_char; var decimal =3D false; var trailing_blank =3D false; var digits =3D false; //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); //remove numeric noise object_value =3D object_value.replace(/[$=C2=A3=C2=A5=E2=82=AC,~+]?/g, = ''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } check_char =3D start_format.indexOf(object_value.charAt(0)); if (check_char =3D=3D 1) decimal =3D true; else if (check_char < 1) return false; for (var i =3D 1; i < object_value.length; i++) { check_char =3D number_format.indexOf(object_value.charAt(i)); if (check_char < 0) return false; else if (check_char =3D=3D 1) { if (decimal) return false; else decimal =3D true; } else if (check_char =3D=3D 0) { if (decimal || digits)=09 trailing_blank =3D true; } else if (trailing_blank) return false; else digits =3D true; }=09 return true } function _CF_checkrange(object_value, min_value, max_value, required) { object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } if (!_CF_checknumber(object_value)) return false; else return (_CF_numberrange((eval(object_value)), min_value, max_value)); return true; } function _CF_checktime(object_value, required) { object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); // replace the {t'..'} format around the timestamp if it exists object_value =3D object_value =3D object_value.replace(/{t \'/, = '').replace(/'}/, ''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } var result =3D _CF_checkregex(object_value, = /^(([0-1]?[0-9]|[2][1-4]):([0-5]?[0-9])(:[0-5]?[0-9])?).?([AP]M|[AP]m|[ap= ]m|[ap]M)?$/, required); return result; } /** * validate that the value is formatted as a telephone correctly * This pattern matches any US Telephone Number. * This regular expression excludes the first number, after the area = code,from being 0 or 1; * it also allows an extension to be added where it does not have to be = prefixed by 'x'. * * Matches:=20 * 617.219.2000=20 * 219-2000 * (617)283-3599 x234 * 1(222)333-4444 * 1 (222) 333-4444 * 222-333-4444 * 1-222-333-4444 * Non-Matches:=20 * 44-1344-458606 * +44-1344-458606 * +34-91-397-6611 * 7-095-940-2000 * +7-095-940-2000 * +49-(0)-889-748-5516 */ function _CF_checkphone(object_value, required) { //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } if (object_value.length =3D=3D 0) return true; =09 return _CF_checkregex(object_value, /^(((1))?[ = ,\-,\.]?([\\(]?([1-9][0-9]{2})[\\)]?))?[ ,\-,\.]?([^0-1]){1}([0-9]){2}[ = ,\-,\.]?([0-9]){4}(( )((x){0,1}([0-9]){1,5}){0,1})?$/, required); } /** * validate that the value is formatted as a USA zipcode correctly * * This pattern will match any us zip code * matches: 12345, 12345-1234 */ function _CF_checkzip(object_value, required) { //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } return _CF_checkregex(object_value, /^([0-9]){5,5}$|(([0-9]){5,5}(-| = ){1}([0-9]){4,4}$)/, required); } function _CF_checkcreditcard(object_value, required) { //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } if (object_value.length =3D=3D 0) return true; var white_space =3D " -"; var creditcard_string=3D""; var check_char; =09 for (var i =3D 0; i < object_value.length; i++) { check_char =3D white_space.indexOf(object_value.charAt(i)); if (check_char < 0) creditcard_string +=3D object_value.substring(i, (i + 1)); }=09 if (creditcard_string.length < 13 || creditcard_string.length > 19) return false; if (creditcard_string.charAt(0) =3D=3D "+") return false; if (!_CF_checkinteger(creditcard_string)) return false; var doubledigit =3D creditcard_string.length % 2 =3D=3D 1 ? false : = true; var checkdigit =3D 0; var tempdigit; for (var i =3D 0; i < creditcard_string.length; i++) { tempdigit =3D eval(creditcard_string.charAt(i)); if (doubledigit) { tempdigit *=3D 2; checkdigit +=3D (tempdigit % 10); if ((tempdigit / 10) >=3D 1.0) checkdigit++; doubledigit =3D false; } else { checkdigit +=3D tempdigit; doubledigit =3D true; } }=09 return (checkdigit % 10) =3D=3D 0 ? true : false; } /** * validate that the value is formatted as a SSN# correctly * * this Pattern that the SSN number matches the different formats. (X = =3D [0-9]) * matches: XXX-XX-XXXX, XXX XX XXXX,=20 * non-match: XXXXXXXXX */ function _CF_checkssn(object_value, required) { //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } return _CF_checkregex(object_value, /^[0-9]{3}(-| )[0-9]{2}(-| = )[0-9]{4}$/, required); } /** * validate that the value is formatted as an email address correctly * * this regex matches the majoriity of all email address. * example matches. * Matches: [rick.jones@unit.army.mil], [john_doe@foobar.com], = [foo99@foo.co.uk] =20 * Non-Matches: [find_the_mistake.@foo.org], [.prefix.@some.net] * * _CF_checkURL mailto uses this same email regex - keep in sync. */ function _CF_checkEmail(object_value, required) { //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } //return _CF_checkregex(object_value, = /^[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z]{2,7}$/); //return _CF_checkregex(object_value, = /^[a-zA-Z_0-9-]+(?:\.[a-zA-Z_0-9-]+)*@(?:[a-zA-Z_0-9-]+\.)+[a-zA-Z]{2,7}$= /); return _CF_checkregex(object_value, = /^[a-zA-Z_0-9-'\+~]+(\.[a-zA-Z_0-9-'\+~]+)*@([a-zA-Z_0-9-]+\.)+[a-zA-Z]{2= ,7}$/, required); } /** * validate that the value is formatted correctly for a http/https/ftp = url * This pattern will match http/https/ftp urls. * * Matches: http://www.mm.com/index.cfm * HTTP://WWW.MM.COM * http://www.mm.com/index.cfm?userid=3D1&name=3Dmike+nimer * http://www.mm.com/index.cfm/userid/1/name/mike+nimer - trick = used by cf developers so search engines can parse their sites (search = engines ignore query strings) * ftp://www.mm.com/ * ftp://uname:pass@www.mm.com/ * mailto:email@address.com * news:rec.gardening * news:rec.gardening * http://a/ * file://ftp.yoyodyne.com/pub/files/foobar.txt * Non-Matches: www.yahoo.com * http:www.mm.com * * _CF_checkEmail - the mailto email check is the same as the = _CF_checkEmail regex (keep in sync) */ function _CF_checkURL(object_value, required) { //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } //return _CF_checkregex(object_value.toLowerCase(), = /^((http|https|ftp|file)\:\/\/([a-zA-Z0-0]*:[a-zA-Z0-0]*(@))?[a-zA-Z0-9-\= .]+(\.[a-zA-Z]{2,3})?(:[a-zA-Z0-9]*)?\/?([a-zA-Z0-9-\._\?\,\'\/\+&%\$= #\=3D~])*)|((mailto)\:[\w-]+(?:\.[\w-]+)*@(?:[\w-]+\.)+[a-zA-Z0-9]{2,7})|= ((news)\:[a-zA-Z0-9\.]*)$/); return _CF_checkregex(object_value.toLowerCase(), = /^((http|https|ftp|file)\:\/\/([a-zA-Z0-0]*:[a-zA-Z0-0]*(@))?[a-zA-Z0-9-\= .]+(\.[a-zA-Z]{2,3})?(:[a-zA-Z0-9]*)?\/?([a-zA-Z0-9-\._\?\,\'\/\+&%\$= #\=3D~])*)|((mailto)\:[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)*@([a-zA-Z0-9-]+\.)+[= a-zA-Z0-9]{2,7})|((news)\:[a-zA-Z0-9\.]*)$/, required); } /** * A string UUID value is required. A UUID is a string * of length 35 formatted as XXXXXXXX-XXXX-XXXX-XXXXXXXXXXXXXXXX, where = X is a * hexadecimal digit (0-9 or A-F). */ function _CF_checkUUID(object_value, required) { //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } return _CF_checkregex(object_value, = /[A-Fa-f0-9]{8,8}-[A-Fa-f0-9]{4,4}-[A-Fa-f0-9]{4,4}-[A-Fa-f0-9]{16,16}/, = required); } /** * A string GUID value is required. A GUID is a string * of length 36 formatted as XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX, where = X is a * hexadecimal digit (0-9 or A-F). */ function _CF_checkGUID(object_value, required) { //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } return _CF_checkregex(object_value, = /[A-Fa-f0-9]{8,8}-[A-Fa-f0-9]{4,4}-[A-Fa-f0-9]{4,4}-[A-Fa-f0-9]{4,4}-[A-F= a-f0-9]{12,12}/, required); } /** * checks CF boolean value * matches: true, false, 1, 0, yes, no */ function _CF_checkBoolean(object_value, required) {=09 //trim whitespace before we validate object_value =3D object_value.replace(/^\s+/,'').replace(/\s+$/,''); if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } if( object_value.toUpperCase() =3D=3D "TRUE" || = object_value.toUpperCase() =3D=3D "YES" || = (_CF_checknumber(object_value) && object_value !=3D "0") ) {=20 return true;=20 }else if( object_value.toUpperCase() =3D=3D "FALSE" || = object_value.toUpperCase() =3D=3D "NO" || object_value =3D=3D "0" ){ return true; }else{ return false; } } function _CF_setFormParam( strFormName, strParamName, strParamValue ) { var strObjName =3D "document['" + strFormName + "']['" + strParamName = +"']"; var obj =3D eval( strObjName ); if( obj =3D=3D undefined ) { return false; }else{ obj.value =3D strParamValue; return true; } } function _CF_checkregex(object_value, regexPattern, required) { if( required ) { if( object_value.length =3D=3D 0 ) { return false; } }else{ if( object_value.length =3D=3D 0 ) { return true; } } return regexPattern.test(object_value); } ------=_NextPart_000_0000_01C92936.7EFE5620 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://fjallfoss.fcc.gov/cdbs/CFIDE/scripts/masks.js /* * Copyright (c) 1995-2005 Macromedia, Inc. All rights reserved.=20 */ var KT_focusedEl =3D null; /**********=20 KT_validateSingle function description: Validates single character agains single mask component params:=20 ascchar: character single character, to test if it is correct in the context of the = mask character=20 maskchar: character single mask character, see below for meaning returns:=20 boolean **********/ function KT_validateSingle(ascchar, maskchar) { var cchar =3D ascchar.charCodeAt(0); switch (maskchar) { case "9": //numeric if (cchar < 58 && cchar > 47) { return true; } break; case "A": //letter if ((cchar < 91 && cchar > 64) || (cchar < 123 && cchar > 96)) { return true; } break; case "X": //letter or numeric if ((cchar < 91 && cchar > 64) || (cchar < 123 && cchar > 96) || = (cchar < 58 && cchar > 47)) { return true; } break; case "?": //any character return true; break; default: return true; break; } } /**********=20 KT_maskDefaultValue function description: Called with a special mask character, returns the default value for = that type of mask params: maskchar: character single mask character, see below for meaning returns: character **********/ function KT_maskDefaultValue(maskchar) { switch (maskchar) { case "9": //numeric return '0'; break; case "A": //letter return 'a'; break; case "X": //letter or numeric return '0'; break; case "?": //any character return '0'; break; default: return '0'; break; } } /**********=20 KT_isSpecialChar function description: Checks if the parameter is a special mask character params: ascchar: character Special mask characters:=20 9 - numeric A - letters X - letter or number ? - any character returns: boolean **********/ function KT_isSpecialChar(ascchar) { if (ascchar =3D=3D '9' || ascchar =3D=3D 'A' || ascchar =3D=3D 'X' || = ascchar =3D=3D '?') { return true; } else { return false; } } /********** mask_onValueChanged function description: Called when=20 - the user types something in the input - the input loses the focus It validates the input's value against the input's mask params:=20 none returns: none **********/ function mask_onValueChanged() { if ((typeof window.getSelection =3D=3D 'undefined' && typeof = document.selection =3D=3D 'undefined')) { // if the current browser is not compatible, do nothing return; } =09 if (KT_focusedEl =3D=3D null || KT_focusedEl.mask =3D=3D null || = KT_focusedEl.mask =3D=3D '') { return; } var mask =3D KT_focusedEl.mask; var val =3D KT_focusedEl.value; var i =3D 0; var moveCursor =3D false; if (val =3D=3D KT_focusedEl.oldText) { // if the field content did not change since the last update, do = nothing return; } if (val.length > mask.length) { // strip trailing characters if text length is bigger than mask = length val =3D val.substr(0, mask.length); moveCursor =3D true; } for (; i < mask.length ; i++) { if (val.charCodeAt(i).toString() !=3D 'NaN') { //if the char is inserted if (KT_isSpecialChar(mask.charAt(i))) { if (KT_validateSingle(val.charAt(i), mask.charAt(i))) { //character is correct, go to next continue; } else { //revert to the last known good value, increase index to break = loop val =3D KT_focusedEl.oldText; i =3D mask.length; break; } } else { //normal character in the mask if (val.charAt(i) !=3D mask.charAt(i)) { //if the character is different from the mask if (i =3D=3D val.length - 1) { //append last character and move cursor to the end var lastChar =3D val.substr(val.length -1, val.length); val =3D val.substr(0, val.length -1) + mask.charAt(i) + lastChar; moveCursor =3D true; continue; } else { //revert to the last known good value, increase index to break = loop val =3D KT_focusedEl.oldText; i =3D mask.length; } break; } } } else { //if the current char is not inserted if (val.length < KT_focusedEl.oldText.length) { //deleted character break; } for (;i mask.length) { // strip trailing characters if text length is bigger than mask = length val =3D val.substr(0, mask.length); moveCursor =3D true; } if (KT_focusedEl.value !=3D val) { KT_focusedEl.value =3D val; //last calculated correct value } KT_focusedEl.oldText =3D val; //update so we can check on next = character if (moveCursor) { // no need to move the cursor, it is automatically moved at the end = of the sellection by IE and Mozilla } } /**********=20 mask_parseFirstTime function description: Called from mask_onSetFocus, only the first time ( when obj.mask is = undefined) Tries to parse the initial value into a valid format, with the = following algorithm: - normalizes the string adding non special mask characters if they do = not exist - it strips the mask of all non special characters - rebuilds the string using the stripped mask - compares the string with the stripped mask and changes the values = if they are invalid - rebuild the string and returns params: none returns: none **********/ function mask_parseFirstTime(value, mask) { var strippedmask =3D ''; var strippedvalue =3D ''; cond =3D 1;imask =3D 0; ival =3D 0;cnt =3D 0; //NORMALIZE VALUE: add non special characters while (cond =3D=3D 1) { cond =3D 1; if (!KT_isSpecialChar(mask.charAt(imask))) { if (value.charCodeAt(ival).toString() !=3D 'NaN') { if (mask.charAt(imask) =3D=3D value.charAt(ival)) { imask++;ival++; } else { value =3D value.substr(0, ival) + mask.charAt(imask) + = value.substr(ival, value.length); imask =3D 0; ival =3D 0; cond =3D 1; } } else { value +=3D KT_maskDefaultValue(mask.charAt(imask)); } } else { imask++;ival++; } if (imask >=3D mask.length || ival >=3D value.length) { cond =3D 0; } } //save only the special chars in a mask for (i=3D0;i