From: Subject: flexmls Date: Sun, 21 Mar 2010 19:28:51 -0500 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0000_01CAC92C.BCEA82F0" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01CAC92C.BCEA82F0 Content-Type: text/html; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://public.mlswis.com/cgi-bin/mainmenu.cgi?cmd=url+other/run_public_link.html&public_link_tech_id=rft6jri4vpm&id=1&cid=1 flexmls
Brought to=20 you by Randy Krysinski
Address: = 1235=20 Overhill Rd Elm Grove, WI 53122-1627 County:=20 Waukesha
MLS #:=20 = 1125735
=
Property=20 Type: Single-Family
Status:=20 Active
Tax=20 Key: EGV 1100044
Zoning: Res=20 List = Price:=20 $999,000

Taxes:=20 $20,229
Tax=20 Year: 2009

Bedrooms:=20 4
Baths: 3 /=20 1
Garage=20 Spaces: 3.5
Garage = Type:=20 Attached
Rooms:=20 11
Sq.=20 Ft.: 3,700
Year = Built:=20 1933
Lot=20 Size: 214x226x115x234

Flood = Plain:=20 No
Conforming = Use: Yes Occ. = Permit=20 Required: N=20 =
Directions: = Indian Hills=20 - Elm Grove. Just north of Juneau on Overhill.
Coordinates: = 12N 142W
School = District:=20 Elmbrook
High = School: Brookfield East
Middle School: = Pilgrim=20 Park
Elem.=20 School: Tonawanda
Subdivision: = Indian=20 Hills
Subd.=20 Dues/Yr.: 150
Name Master Bedroom Bedroom 2 Bedroom 3 Bedroom 4 Den/Office
Dim L C W
21 x 14 U Yes Yes
17 x 12 U Yes Yes
16 x 13 U Yes Yes
15 x 12 U Yes Yes
11 x 12 M Yes Yes
Name Dining Room Family Room Kitchen Living/Great Room Other Room
Dim L C W
16 x 12 M Yes
26 x 24 M Yes Yes
13 x 16 M
25 x 14 M Yes Yes
10 x 14 M
Type: #=20 of Acres: Style: Architecture: Garage/Parking: Outbuildings: Exterior: Roofing: Basement: Heating/Cooling: H/C=20 Type: Bath=20 Description:
Wooded Lot; = Subdivision;=20 Association; Single Family
1/2 less than = 1
2 = Story
Tudor/Provincial
Parking Space; = Electric Door=20 Opener; Driveway Entrance; Paved = Driveway
None
Brick; Stone; Wood;=20 Stucco/Slate
Wood
Full; Walk Out/Outer = Door;=20 Block
Natural Gas; Central=20 Air
Radiant/Hot=20 Water
Off MBR; Shower Over = Tub;=20 Shower Stall; Vanity; Half on Main; Full on=20 Upper
Documents: Appliances = Incl.: Misc.=20 Exterior: Misc.=20 Interior: Water/Waste: Tax=20 Includes: Municipality: Other=20 Rooms: Estimated=20 Age: Est. Sq.=20 Footage: Occupancy:
Seller Condition; Tax = Bill;=20 LeadPaint Disclosure
Oven; Range; = Refrigerator;=20 Dishwasher; Microwave; Washer; Dryer; Water=20 Softener
Patio; = Deck
Natural Fireplace; = 220 Volts;=20 Circuit Breakers; Built-in Bookcase; Bay Window; Cable = TV=20 Available
Municipal Sewer; = Private=20 Well
Trash = Collection
Village
Utility Room-Upper;=20 Florida/Sun Room; Walk-thru Bedroom; = Other
61-100 = Years
3501-5000; Not=20 Verified
See Listing=20 = Broker
Remarks: Indian = Hills of=20 Elm Grove. Stately Tudor features beautiful familyroom, updated = fully=20 equipped kitchen. Recently remodeled master bath with private = second floor=20 laundry. Second bedroom suite with private bath. Exercise room. = Three full=20 baths. Three car garage plus attic storage above. Hardwoods. = Private=20 wooded setting with nice patio area. Zoned hydronic heating and = A/C. Two=20 Fireplaces.
Listing Office: = Market Masters Realty, LLC: = mmreal

Information=20 is supplied by seller and other third parties and has not been=20 verified.
Copyright 2010 by Multiple Listing Service, Inc. See copyright=20 notice.
Prepared by Randy Krysinski on Sunday, March 21, 2010 = 7:28=20 PM ------=_NextPart_000_0000_01CAC92C.BCEA82F0 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://photos.mlswis.com/met/20100218114105359652000000.jpg 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 ------=_NextPart_000_0000_01CAC92C.BCEA82F0 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://public.mlswis.com/html/common/css/ie_basic_classic.css BODY { SCROLLBAR-ARROW-COLOR: black; SCROLLBAR-FACE-COLOR: rgb(230,230,230); = SCROLLBAR-DARKSHADOW-COLOR: rgb(110,110,110); SCROLLBAR-BASE-COLOR: = #000000; SCROLLBAR-HIGHLIGHT-COLOR: rgb(250,250,250); = SCROLLBAR-SHADOW-COLOR: rgb(190,190,190); SCROLLBAR-3DLIGHT-COLOR: = rgb(235,235,235) } SELECT { BEHAVIOR: url(/html/common/select.htc) } ------=_NextPart_000_0000_01CAC92C.BCEA82F0 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://public.mlswis.com/html/common/css/basic_common.css BODY { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; FONT-FAMILY: Arial,sans-serif; FONT-SIZE: x-small; PADDING-TOP: 0px } FORM { PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: 0px; PADDING-RIGHT: = 0px; PADDING-TOP: 0px } H1 { TEXT-ALIGN: center; FONT-FAMILY: Arial,sans-serif; FONT-SIZE: large; = FONT-WEIGHT: bold } H2 { TEXT-ALIGN: center; PADDING-BOTTOM: 0px; MARGIN: 0px; PADDING-LEFT: = 0px; PADDING-RIGHT: 0px; FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 8pt; = FONT-WEIGHT: bold; PADDING-TOP: 0px } .pagetitle { TEXT-ALIGN: center; FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 18pt; = FONT-WEIGHT: bold } TABLE { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: x-small } TH { TEXT-ALIGN: left; FONT-FAMILY: Arial,sans-serif; FONT-SIZE: x-small; = FONT-WEIGHT: bold } A:link { TEXT-DECORATION: none } A:active { TEXT-DECORATION: none } A:visited { TEXT-DECORATION: none } A:hover { TEXT-DECORATION: underline } .left { TEXT-ALIGN: left } .center { TEXT-ALIGN: center } .right { TEXT-ALIGN: right } .bold { FONT-WEIGHT: bold } .nowrap { WHITE-SPACE: nowrap } .pad1 { PADDING-BOTTOM: 1px; PADDING-LEFT: 1px; PADDING-RIGHT: 1px; = PADDING-TOP: 1px } .pad2 { PADDING-BOTTOM: 2px; PADDING-LEFT: 2px; PADDING-RIGHT: 2px; = PADDING-TOP: 2px } .pad3 { PADDING-BOTTOM: 3px; PADDING-LEFT: 3px; PADDING-RIGHT: 3px; = PADDING-TOP: 3px } .width100 { WIDTH: 100% } .btnverdana { FONT-FAMILY: Verdana,sans-serif; FONT-SIZE: 8pt; CURSOR: pointer; = FONT-WEIGHT: normal } .btn { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 10pt; CURSOR: pointer; = FONT-WEIGHT: normal } BUTTON { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 10pt; CURSOR: pointer; = FONT-WEIGHT: normal } .btnhide { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 11px; CURSOR: pointer; = FONT-WEIGHT: normal } .btnbold { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 11px; CURSOR: pointer; = FONT-WEIGHT: bold } .btnboldhide { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 11px; CURSOR: pointer; = FONT-WEIGHT: bold } .btnred { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #dd0000; FONT-FAMILY: Arial; COLOR: yellow; FONT-SIZE: = 11px; BORDER-TOP: lavender 2px solid; CURSOR: pointer; FONT-WEIGHT: = normal; BORDER-RIGHT: black 2px solid } .btnred:hover { BACKGROUND-COLOR: rgb(255,0,0) } .btnlight { BORDER-BOTTOM: black 1px solid; BORDER-LEFT: #e0e0e0 1px solid; = BACKGROUND-COLOR: #d0d0d0; FONT-FAMILY: Arial; COLOR: #004080; = FONT-SIZE: 10px; BORDER-TOP: #e0e0e0 1px solid; CURSOR: pointer; = FONT-WEIGHT: normal; BORDER-RIGHT: black 1px solid } .btnlight:hover { BACKGROUND-COLOR: rgb(240,240,230) } .btnlighthide { BORDER-BOTTOM: black 1px solid; BORDER-LEFT: #e0e0e0 1px solid; = BACKGROUND-COLOR: #d0d0d0; FONT-FAMILY: Arial; COLOR: #004080; = FONT-SIZE: 10px; BORDER-TOP: #e0e0e0 1px solid; CURSOR: pointer; = FONT-WEIGHT: normal; BORDER-RIGHT: black 1px solid } .btnlighthide:hover { BACKGROUND-COLOR: rgb(240,240,230) } @media Print =20 { .btnhide { DISPLAY: none } .btnboldhide { DISPLAY: none } .btnlighthide { DISPLAY: none } } .dropdown { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: 8pt } LABEL { CURSOR: pointer } .hand { CURSOR: pointer } .inputbox { FONT-FAMILY: Verdana,Arial,sans-serif; FONT-SIZE: xx-small } .inputboxlarge { FONT-FAMILY: Arial,sans-serif; FONT-SIZE: x-small } ------=_NextPart_000_0000_01CAC92C.BCEA82F0 Content-Type: text/css; charset="iso-8859-1" Content-Transfer-Encoding: quoted-printable Content-Location: http://public.mlswis.com/html/common/css/basic_classic.css @import url( /html/common/css/basic_common.css ); A:link { COLOR: blue } A:active { COLOR: red } A:visited { COLOR: blue } A:hover { COLOR: green } .linkcolor { COLOR: blue } .linkcolor:hover { COLOR: green } .headerbackground { BACKGROUND-COLOR: #e0e0e0 } .darkheaderbackground { BACKGROUND-COLOR: #d0d0d0 } .rowbackground1 { BACKGROUND-COLOR: #eaeaea } .rowbackground2 { BACKGROUND-COLOR: #f0f0f0 } .row1 { BACKGROUND-COLOR: #eaeaea } .row2 { BACKGROUND-COLOR: #f0f0f0 } .white { BACKGROUND-COLOR: rgb(255,255,255) } .btnverdana { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } .btnverdana:hover { BACKGROUND-COLOR: rgb(254,220,71) } .btn { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } .btn:hover { BACKGROUND-COLOR: rgb(254,220,71) } BUTTON { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } BUTTON:hover { BACKGROUND-COLOR: rgb(254,220,71) } .btnhide { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } .btnhide:hover { BACKGROUND-COLOR: rgb(254,220,71) } .btnbold { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } .btnbold:hover { BACKGROUND-COLOR: rgb(254,220,71) } .btnboldhide { BORDER-BOTTOM: black 2px solid; BORDER-LEFT: lavender 2px solid; = BACKGROUND-COLOR: #fec81f; COLOR: #004080; BORDER-TOP: lavender 2px = solid; BORDER-RIGHT: black 2px solid } .btnboldhide:hover { BACKGROUND-COLOR: rgb(254,220,71) } ------=_NextPart_000_0000_01CAC92C.BCEA82F0 Content-Type: application/octet-stream Content-Transfer-Encoding: quoted-printable Content-Location: http://public.mlswis.com/client/util.js?2 var browser_type =3D '';=0A= if( navigator.userAgent.indexOf( 'Opera' ) !=3D -1 )=0A= browser_type =3D 'Opera';=0A= else if( navigator.userAgent.indexOf( 'Safari' ) !=3D -1 )=0A= browser_type =3D 'Safari';=0A= else if( navigator.userAgent.indexOf( 'Gecko' ) !=3D -1 )=0A= browser_type =3D 'Gecko';=0A= else if( navigator.userAgent.indexOf( 'MSIE' ) !=3D -1 )=0A= browser_type =3D 'IE';=0A= else=0A= browser_type =3D 'NS';=0A= =0A= String.prototype.trim =3D function() {=0A= return this.replace(/^\s+|\s+$/g, '');=0A= }=0A= =0A= String.prototype.striphtml =3D function() {=0A= return this.replace(/(<([^>]+)>)/ig,"");=0A= }=0A= =0A= String.prototype.stripjs =3D function() {=0A= var tmp =3D this.replace(/(]*>.*<\/\s*script[^>]*>)*/ig,'');=0A= tmp =3D tmp.replace(/]*>/ig,'');=0A= return tmp;=0A= }=0A= =0A= Number.prototype.format =3D function(decimalNum, bolCommas) {=0A= if (isNaN(parseInt(this)))=0A= return "";=0A= var tmpNum =3D this;=0A= if (isNaN(decimalNum)) {=0A= decimalNum =3D 0;=0A= }=0A= =0A= // adjust to requested precision=0A= tmpNum =3D tmpNum.toFixed(decimalNum);=0A= =0A= /* Create a string object to do our formatting on*/=0A= var tmpNumStr =3D tmpNum+''; // calling 'new Sting' does weird things = here, so do an explicit cast=0A= =0A= /* See if we need to put in the commas*/=0A= if (bolCommas && (this >=3D 1000 || this <=3D -1000)) {=0A= var iStart =3D tmpNumStr.indexOf(".");=0A= if (iStart < 0)=0A= iStart =3D tmpNumStr.length;=0A= =0A= iStart -=3D 3;=0A= while (iStart >=3D 1) {=0A= tmpNumStr =3D tmpNumStr.substring(0,iStart) + "," + = tmpNumStr.substring(iStart,tmpNumStr.length)=0A= iStart -=3D 3;=0A= }=0A= }=0A= =0A= return tmpNumStr; /* Return our formatted string!*/=0A= }=0A= =0A= =0A= if (!Array.prototype.indexOf) {=0A= Array.prototype.indexOf =3D function(elt /*, from*/)=0A= {=0A= var len =3D this.length;=0A= =0A= var from =3D Number(arguments[1]) || 0;=0A= from =3D (from < 0)=0A= ? Math.ceil(from)=0A= : Math.floor(from);=0A= if (from < 0)=0A= from +=3D len;=0A= =0A= for (; from < len; from++)=0A= {=0A= if (from in this &&=0A= this[from] =3D=3D=3D elt)=0A= return from;=0A= }=0A= return -1;=0A= };=0A= }=0A= =0A= Array.prototype.removeAllEntries =3D function(c) {=0A= for (var f=3Dthis.length-1; f>=3D0; f--) {=0A= if (this[f]=3D=3Dc) {=0A= this.splice(f,1);=0A= }=0A= }=0A= }=0A= =0A= if (typeof uneval !=3D "function") {=0A= uneval =3D function (o) {=0A= switch (typeof o) {=0A= case "undefined" : return "(void 0)";=0A= case "boolean" : return String(o);=0A= case "number" : return String(o);=0A= case "string" : return '"' + o.replace(/"/g, '\\"') + '"';=0A= case "function" : return "(" + o.toString() + ")";=0A= case "object" :=0A= if (o =3D=3D null) return "null";=0A= var type =3D Object.prototype.toString.call(o).match(/\[object = (.+)\]/);=0A= if (!type) throw TypeError("unknown type:"+o);=0A= switch (type[1]) {=0A= case "Array":=0A= var ret =3D [];=0A= for (var i =3D 0, l =3D o.length; i < l; = ret.push(arguments.callee(o[i++])));=0A= return "[" + ret.join(", ") + "]";=0A= case "Object":=0A= var ret =3D [];=0A= for (var i in o) {=0A= if (!o.hasOwnProperty(i)) continue;=0A= ret.push(arguments.callee(i) + ":" + arguments.callee(o[i]));=0A= }=0A= return "({" + ret.join(", ") + "})";=0A= case "Number":=0A= return "(new Number(" + o + "))";=0A= case "String":=0A= return "(new String(" + arguments.callee(o) + "))";=0A= case "Date":=0A= return "(new Date(" + o.getTime() + "))";=0A= default:=0A= if (o.toSource) return o.toSource();=0A= throw TypeError("unknown type:"+o);=0A= }=0A= }=0A= }=0A= }=0A= =0A= /*************=0A= this function will take a string and split it into equal specified parts = and return as array=0A= **************/=0A= function splitN(intext, splitlen) {=0A= var tmparr =3D new Array();=0A= var textLen =3D intext.length;=0A= if (textLen > splitlen) {=0A= var si =3D 0;=0A= var ei =3D splitlen;=0A= while (si < textLen) {=0A= if (ei > textLen)=0A= ei =3D textLen;=0A= tmparr.push(intext.substring(si, ei));=0A= si =3D ei;=0A= ei =3D ei + splitlen;=0A= }=0A= } else {=0A= tmparr.push(intext);=0A= }=0A= return tmparr;=0A= }=0A= =0A= /*************=0A= this function will take any object, expand and display the content to = the browser)=0A= **************/=0A= function explain(obj,rec){=0A= var s =3D "";=0A= s +=3D explaininner(obj,0,rec);=0A= alert(s);=0A= }=0A= /*************=0A= this function is a recursive subset for the function above ... only call = above function=0A= **************/=0A= function explaininner(obj,lvl,rec) {=0A= var rx =3D "";=0A= var sp =3D lvl+"";=0A= for (x=3D1; x<=3Dlvl; x++) {=0A= sp+=3D" ";=0A= }=0A= for (var key in obj) {=0A= var k =3D obj[key];=0A= if (typeof k.length =3D=3D "number") {=0A= rx +=3D "\n"+sp+"-"+key+":"+k.toString();=0A= } else if (typeof k =3D=3D "object") {=0A= rx +=3D "\n"+sp+"-"+key;=0A= if (rec || (!rec && lvl=3D=3D0))=0A= rx +=3D explaininner(k, lvl+1, rec);=0A= } else {=0A= rx +=3D "\n"+sp+"-"+key+":"+k;=0A= }=0A= }=0A= return rx;=0A= }=0A= =0A= /*************=0A= this removes x'' from a string=0A= **************/=0A= function rmxId(rstr){=0A= return = rstr.substring(0,2)=3D=3D"x'"?rstr.substring(2,rstr.length-1):rstr;=0A= }=0A= =0A= /*************=0A= this adds x'' if necessary to a string=0A= **************/=0A= function xId(dstr){=0A= return dstr.substring(0,2)=3D=3D"x'"?dstr:"x'"+dstr+"'";=0A= }=0A= =0A= function getWindowHeight() {=0A= var windowHeight=3D0;=0A= if (typeof(window.innerHeight)=3D=3D'number') {=0A= windowHeight=3Dwindow.innerHeight;=0A= } else {=0A= if (document.documentElement && document.documentElement.clientHeight){=0A= windowHeight =3D document.documentElement.clientHeight;=0A= } else {=0A= if (document.body && document.body.clientHeight) {=0A= windowHeight =3D document.body.clientHeight;=0A= }=0A= }=0A= }=0A= return windowHeight;=0A= }=0A= =0A= function getWindowWidth() {=0A= var windowWidth=3D0;=0A= if (typeof(window.innerWidth)=3D=3D'number'){=0A= windowWidth=3Dwindow.innerWidth;=0A= } else {=0A= if (document.documentElement && document.documentElement.clientWidth) {=0A= windowWidth =3D document.documentElement.clientWidth;=0A= } else {=0A= if (document.body && document.body.clientWidth) {=0A= windowWidth =3D document.body.clientWidth;=0A= }=0A= }=0A= }=0A= return windowWidth;=0A= }=0A= =0A= function changecss(theClass,element,value) {=0A= var cssRules;=0A= if (document.all) {=0A= cssRules =3D 'rules';=0A= } else if (document.getElementById) {=0A= cssRules =3D 'cssRules';=0A= }=0A= for (var S =3D 0; S < document.styleSheets.length; S++){=0A= for (var R =3D 0; R < document.styleSheets[S][cssRules].length; R++) {=0A= if (document.styleSheets[S][cssRules][R].selectorText =3D=3D = theClass) {=0A= document.styleSheets[S][cssRules][R].style[element] =3D value;=0A= }=0A= }=0A= }=0A= }=0A= =0A= function createCookie(name,value,days) {=0A= if (days) {=0A= var date =3D new Date();=0A= date.setTime(date.getTime()+(days*24*60*60*1000));=0A= var expires =3D "; expires=3D"+date.toGMTString();=0A= }=0A= else var expires =3D "";=0A= document.cookie =3D name+"=3D"+value+expires+"; path=3D/";=0A= }=0A= =0A= function readCookie(name) {=0A= var nameEQ =3D name + "=3D";=0A= var ca =3D document.cookie.split(';');=0A= for(var i=3D0;i < ca.length;i++) {=0A= var c =3D ca[i];=0A= while (c.charAt(0)=3D=3D' ') c =3D c.substring(1,c.length);=0A= if (c.indexOf(nameEQ) =3D=3D 0) return = c.substring(nameEQ.length,c.length);=0A= }=0A= return null;=0A= }=0A= =0A= function eraseCookie(name) {=0A= createCookie(name,"",-1);=0A= }=0A= =0A= /*************=0A= Formats the date with the given date mask. The mask is returned and the = internal date is not altered.=0A= **************/=0A= Date.prototype.formatDate =3D function(strMask){=0A= /* Create the values for each part of the potential date mask.*/=0A= var x =3D this.getMonth()+1;=0A= var objParts =3D {=0A= "d": this.getDate(),=0A= "dd": (this.getDate().toString().length =3D=3D 1) ? ("0" + = this.getDate()) : this.getDate(),=0A= "ddd": [ "Sun","Mon","Tue","Wed","Thu","Fri","Sat" ][ this.getDay() ],=0A= "dddd": [ = "Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday" = ][ this.getDay() ],=0A= "m": x,=0A= "mm": (x.toString().length =3D=3D 1) ? ("0" + x) : x,=0A= "mmm": [ = "Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec" = ][ this.getMonth() ],=0A= "mmmm": [ = "January","February","March","April","May","June","July","August","Septem= ber","October","November","December" ][ this.getMonth() ],=0A= "yy": this.getYear().toString().substring( 1, 3 ),=0A= "yyyy": this.getFullYear()=0A= }=0A= =0A= /* Check to see if we have special date formatting options.*/=0A= switch ( strMask ){=0A= case "short":=0A= return( objParts[ "m" ] + "/" + objParts[ "d" ] + "/" + objParts[ = "yyyy" ] );=0A= break;=0A= =0A= case "medium":=0A= return( objParts[ "mmm" ] + " " + objParts[ "d" ] + ", " + objParts[ = "yyyy" ] );=0A= break;=0A= =0A= case "long":=0A= return( objParts[ "mmmm" ] + " " + objParts[ "d" ] + ", " + objParts[ = "yyyy" ] );=0A= break;=0A= =0A= case "full":=0A= return( objParts[ "dddd" ] + ", " + objParts[ "mmmm" ] + " " + = objParts[ "d" ] + ", " + objParts[ "yyyy" ] );=0A= break;=0A= =0A= default:=0A= /* There was no special date formatting, so just use the mask.*/=0A= return(=0A= strMask.replace(=0A= new RegExp( "(d{1,4}|m{1,4}|y{4}|y{2})", "gi" ),=0A= function( $1 ){=0A= return( objParts[ $1 ] );=0A= })=0A= );=0A= break;=0A= }=0A= }=0A= =0A= /*************=0A= generic time format=0A= **************/=0A= Date.prototype.formatTime =3D function(){=0A= var a_p =3D "";=0A= var curr_hour =3D this.getHours();=0A= if (curr_hour < 12)=0A= a_p =3D "AM";=0A= else=0A= a_p =3D "PM";=0A= if (curr_hour =3D=3D 0)=0A= curr_hour =3D 12;=0A= if (curr_hour > 12)=0A= curr_hour =3D curr_hour - 12;=0A= var curr_min =3D this.getMinutes();=0A= curr_min =3D curr_min + "";=0A= if (curr_min.length =3D=3D 1)=0A= curr_min =3D "0" + curr_min;=0A= return curr_hour+":"+curr_min+" "+a_p;=0A= }=0A= =0A= function whoCalledMe(a) {=0A= alert("Called by: \n" + a.callee.caller.toString());=0A= for (var x=3D0; x ''*/=0A= if( quotetype =3D=3D 'db' )=0A= {=0A= var tmp =3D '' + this;=0A= return tmp.replace(/\'/g,"''");=0A= }=0A= =0A= /* Javascript quote: ' -> \' and " -> \" and \n --> \\n and \r --> \\r*/=0A= else if( quotetype =3D=3D 'js' )=0A= {=0A= var tmp =3D '' + this;=0A= return tmp.replace(/\\/g, "\\\\").replace(/\'/g, "\\'").replace(/\"/g, = '\\"').replace(/\n/g, "\\n").replace(/\r/g, "\\r");=0A= }=0A= =0A= /* HTML quote: < to < and > to > and " to " and & to = &*/=0A= else if( quotetype =3D=3D 'html' )=0A= {=0A= var tmp =3D '' + this;=0A= return tmp.replace(/\&/g, "&").replace(/\/g, ">").replace(/\"/g, """);=0A= }=0A= =0A= /* tech_id quote: make sure string is of format = x'12345678901234567890123456'*/=0A= /* Returns "raw" tech_id on success, or blank string on failure*/=0A= else if( quotetype =3D=3D 'tech_id' )=0A= {=0A= var tmp =3D '' + this;=0A= if( tmp.length !=3D 26 && tmp.length !=3D 29 )=0A= return default_value;=0A= tmp =3D rmxId( tmp );=0A= for( var i =3D 0; i < 26; i++ )=0A= {=0A= var c =3D tmp.charAt(i);=0A= if( c !=3D '0' && c !=3D '1' && c !=3D '2' && c !=3D '3' && c = !=3D '4' && c !=3D '5' && c !=3D '6' && c !=3D '7' && c !=3D '8' && c = !=3D '9' )=0A= return default_value;=0A= }=0A= return xId(tmp);=0A= }=0A= =0A= /* int quote: make sure string only contains 0123456789-*/=0A= else if( quotetype =3D=3D 'int' )=0A= {=0A= var tmp =3D '' + this;=0A= tmp =3D tmp.replace(/[^\d\-]/g,'');=0A= var tmpint =3D parseInt( tmp );=0A= if( isNaN( tmpint ) )=0A= return default_value;=0A= return tmpint;=0A= }=0A= =0A= /* decimal quote: make sure string only contains 0123456789-.*/=0A= else if( quotetype =3D=3D 'decimal' )=0A= {=0A= var tmp =3D '' + this;=0A= tmp =3D tmp.replace(/[^\d\-\.]/g,'');=0A= var tmpfloat =3D parseFloat( tmp );=0A= if( isNaN( tmpfloat ) )=0A= return default_value;=0A= return tmpfloat;=0A= }=0A= =0A= /* date quote: accepts dates in any of these formats, with any = delimiter character:*/=0A= /* YYYY-MM-DD, MM-DD-YYYY, MM-DD-YY, YYYYMMDD, MMDDYY*/=0A= /* returns a blank string if date does not verify.*/=0A= else if( quotetype =3D=3D 'date' )=0A= {=0A= var tmp =3D '' + this;=0A= tmp =3D tmp.trim().replace(/[\D]/g,'/');=0A= =0A= /* make sure the user isn't submitting 00/00/0000. CUR-3983 */=0A= zerotmp =3D tmp;=0A= if (parseInt(zerotmp.replace(/\D/g,''),10) =3D=3D 0)=0A= return '';=0A= =0A= if( tmp.length =3D=3D 8 && tmp.indexOf('/') =3D=3D -1 ) /* the = date is in a format without delimiter characters*/=0A= {=0A= /* attempt to guess the proper date format*/=0A= if( tmp.charAt(0) =3D=3D '2' && (tmp.charAt(1) =3D=3D '0' || = tmp.charAt(1) =3D=3D '1' ) )=0A= {=0A= /* guessing that this is YYYY/MM/DD*/=0A= tmp =3D tmp.substr( 0, 4 ) + '/' + tmp.substr( 4, 2 ) + '/' = + tmp.substr( 6, 2 );=0A= }=0A= /* Otherwise, assume MM/DD/YYYY or MM/DD/YY*/=0A= else=0A= tmp =3D tmp.substr( 0, 2 ) + '/' + tmp.substr( 2, 2 ) + '/' = + tmp.substr( 4, 4 );=0A= }=0A= else if( tmp.length =3D=3D 6 && tmp.indexOf('/') =3D=3D -1 ) /* = again, no delimiter characters*/=0A= {=0A= /* assume MM/DD/YY*/=0A= var tmpyear =3D parseInt( tmp.substr( 4, 2 ),10 );=0A= if( tmpyear < 75 )=0A= tmpyear +=3D 2000;=0A= else=0A= tmpyear +=3D 1900;=0A= tmp =3D tmp.substr( 0, 2 ) + '/' + tmp.substr( 2, 2 ) + '/' + = tmpyear;=0A= }=0A= else if (tmp.match(/^[0-9]{1,2}\/[0-9]{1,2}\/[0-9]{1,2}$/)) {=0A= var tmpyear =3D = parseInt(tmp.substr(tmp.lastIndexOf("/")+1).replace(/^[^1-9]/,''));=0A= if( tmpyear < 75 )=0A= tmpyear +=3D 2000;=0A= else=0A= tmpyear +=3D 1900;=0A= tmp =3D tmp.substr( 0, tmp.indexOf("/") ) +"/"+ tmp.substr( = tmp.indexOf("/")+1, (tmp.lastIndexOf("/")- (tmp.indexOf("/")+1)))+"/" + = tmpyear;=0A= }=0A= =0A= var tmpdate =3D new Date( tmp );=0A= if( isNaN( tmpdate ) )=0A= return default_value;=0A= else{=0A= var tmpyear =3D tmpdate.getFullYear();=0A= var stddate =3D (tmpdate.getMonth()+1) + '/' + tmpdate.getDate() + '/' = + tmpyear;=0A= return stddate;=0A= }=0A= }=0A= }=0A= =0A= /*************=0A= initialCaps - Capitalizes the first letter of all words in a String=0A= **************/=0A= String.prototype.initialCaps =3D function(){=0A= return this.replace( /\b\w+\b/g, function (word) {=0A= return word.substring(0,1).toUpperCase() + = word.substring(1).toLowerCase()=0A= });=0A= }=0A= =0A= =0A= /*************=0A= MASK FUNCTION - used to format strings to specifications - = http://jira.fbsdata.com/confluence/x/RR8=0A= **************/=0A= String.prototype.mask =3D function(mask) {=0A= if (!mask) return this; // return original string if no mask is passed = in=0A= =0A= // variables=0A= var newString =3D '';=0A= var reverse =3D (mask.match(/\!$/)) ? true : false ; // if there is a ! = at the end of the mask, this must be processed from right to left=0A= =0A= // if reverse has been established, remove the ! at the end of the mask=0A= if (reverse)=0A= mask =3D mask.substring(0, mask.length-1);=0A= =0A= // establish beginning and ending of loop=0A= var loopPosition =3D (reverse) ? mask.length-1 : 0 ;=0A= var loopEnd =3D (reverse) ? -1 : mask.length ;=0A= var stringPosition =3D (reverse) ? this.length-1 : 0 ;=0A= var stringEnd =3D (reverse) ? -1 : this.length ;=0A= var caseModifier =3D null; // used if < or > are invoked, forcing = characters to be all lower or upper case=0A= var absoluteModifier =3D false // used to detect (\\), which denote = that then next character must be present=0A= var absoluteCharacter =3D null; // used as a placeholder to reduce code=0A= =0A= // setup loop=0A= while (loopPosition !=3D loopEnd) {=0A= =0A= // find the next characters in the mask and the string=0A= var stringChar =3D (stringPosition =3D=3D stringEnd) ? null : = this.charAt(stringPosition) ;=0A= var maskChar =3D mask.charAt(loopPosition);=0A= =0A= // if this is reverse, look ahead one character to see if an absoute = modifier is in place (\\)=0A= // also: don't check the first character in the mask, nothing can = possibly proceed it=0A= if (reverse && loopPosition-1 !=3D loopPosition && = mask.charAt(loopPosition-1) =3D=3D '\\')=0A= absoluteModifier =3D true;=0A= =0A= // if this is an absolute character (escaped by \\), set a placeholder = variable and force the switch statement to default=0A= if (absoluteModifier) {=0A= absoluteCharacter =3D maskChar;=0A= maskChar =3D 'N';=0A= }=0A= =0A= // iterate here, as we may have a situation where a continue is called=0A= (reverse) ? loopPosition-- : loopPosition++ ;=0A= =0A= // process the mask character=0A= switch (maskChar) {=0A= =0A= case '>': // all characters after this must be uppercase=0A= caseModifier =3D 'uppercase';=0A= continue;=0A= break;=0A= =0A= case '<': // all characters after this must be lowercase=0A= caseModifier =3D 'lowercase';=0A= continue;=0A= break;=0A= =0A= case '\\': // the next character must be an exact match, used to = escape=0A= absoluteModifier =3D (reverse) ? false : true;=0A= continue;=0A= break;=0A= =0A= case '0': // required digit=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/\d/);=0A= var stringToAdd =3D (stringMatch) ? stringChar : '0' ;=0A= newString =3D (reverse) ? stringToAdd + newString : newString + = stringToAdd ;=0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else newString =3D (reverse) ? '0' + newString : newString + '0' ; = // force zero if no digit is present=0A= break;=0A= =0A= case '9': // optional digit=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/\d/);=0A= if (stringMatch) {=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= }=0A= break;=0A= =0A= case '#': // required digit, space, plus, or minus=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/\d|-|\+|\s/);=0A= var stringToAdd =3D (stringMatch) ? stringChar : ' ' ;=0A= newString =3D (reverse) ? stringToAdd + newString : newString + = stringToAdd ;=0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else newString =3D (reverse) ? '0' + newString : newString + '0' ; = // force zero if no digit is present=0A= break;=0A= =0A= case 'L': // required letter=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/[a-z]|[A-Z]/);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else { // force X if no letter is present=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? 'x' + newString : newString + 'x' ;=0A= else=0A= newString =3D (reverse) ? 'X' + newString : newString + 'X' ;=0A= }=0A= }=0A= break;=0A= =0A= case '?': // optional letter=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/[a-z]|[A-Z]/);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= }=0A= break;=0A= =0A= case 'A': // required letter or digit=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/[a-z]|[A-Z]|\d/);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else { // force X if no letter is present=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? 'x' + newString : newString + 'x' ;=0A= else=0A= newString =3D (reverse) ? 'X' + newString : newString + 'X' ;=0A= }=0A= }=0A= break;=0A= =0A= case 'a': // optional letter or digit=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/[a-z]|[A-Z]|\d/);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= }=0A= break;=0A= =0A= case '&': // required character or space=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/./);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else { // force X if no letter is present=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? 'x' + newString : newString + 'x' ;=0A= else=0A= newString =3D (reverse) ? 'X' + newString : newString + 'X' ;=0A= }=0A= }=0A= break;=0A= =0A= case 'C': // optional character or space=0A= if (stringChar) {=0A= var stringMatch =3D stringChar.match(/./);=0A= if (stringMatch) {=0A= =0A= // handle any case modifiers (<) or (>)=0A= if (caseModifier =3D=3D 'lowercase')=0A= newString =3D (reverse) ? stringChar.toLowerCase() + newString : = newString + stringChar.toLowerCase() ;=0A= else if (caseModifier =3D=3D 'uppercase')=0A= newString =3D (reverse) ? stringChar.toUpperCase() + newString : = newString + stringChar.toUpperCase() ;=0A= else=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= =0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= }=0A= break;=0A= =0A= default: // exact match=0A= =0A= // if this is an absolute character (escaped by \\), use the = placeholder variable and reset the absolute variables=0A= if (absoluteModifier) {=0A= maskChar =3D absoluteCharacter;=0A= absoluteModifier =3D false;=0A= absoluteCharacter =3D null;=0A= }=0A= =0A= if (stringChar) {=0A= var stringMatch =3D (stringChar.indexOf(maskChar) !=3D -1);=0A= if (stringMatch) {=0A= newString =3D (reverse) ? stringChar + newString : newString + = stringChar ;=0A= (reverse) ? stringPosition-- : stringPosition++ ;=0A= }=0A= else=0A= newString =3D (reverse) ? maskChar + newString : newString + = maskChar ;=0A= }=0A= else=0A= newString =3D (reverse) ? maskChar + newString : newString + = maskChar ;=0A= =0A= break;=0A= }=0A= }=0A= =0A= return newString;=0A= }=0A= =0A= /**=0A= * Loads a JavaScript or CSS file late, after the page has loaded.=0A= * @param fNm {String} path of file to load=0A= * @param fTyp {String} type of file to load "js" or "css"=0A= * @param tmOut {Integer} delay, in milliseconds (optional)=0A= */=0A= var lazyLoad =3D function(){=0A= var loadedFiles=3D[];=0A= return function(fNm,fTyp,tmOut){=0A= if(!fNm || !fTyp){return;}=0A= var isLoaded=3Dfalse;=0A= for(var = i=3D0;i