From: Subject: flexmls Date: Thu, 20 Aug 2009 13:20:19 -0500 MIME-Version: 1.0 Content-Type: multipart/related; type="text/html"; boundary="----=_NextPart_000_0000_01CA2198.F6C80650" X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.5579 This is a multi-part message in MIME format. ------=_NextPart_000_0000_01CA2198.F6C80650 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=ou92fjsipn1&id=1&cid=1 flexmls
Brought to=20 you by Randy Krysinski
Address: = 822 E=20 Pearson St 2 Milwaukee, WI 53202-1521 County:=20 Milwaukee
MLS #:=20 = 1097084
=
Property=20 Type: Condominium
Status:=20 Active
Tax=20 Key: 3541592000
Zoning: Res=20 List = Price:=20 $299,900

Taxes:=20 $6,931
Tax=20 Year: 2008

Bedrooms:=20 2
Baths: 2 /=20 0
Garage=20 Spaces: 2.5
Garage = Type:=20 Attached
# of = Rooms:=20 5
Sq.=20 Ft.: 1,400
Year = Built:=20 2006
Lot=20 Size: Common Area=20

Condominium=20 Name: Sky Condominium II
Condo = Fee:=20 $0
Units in=20 Project: 2
Units in=20 Bldg: 2 Floor = #:=20 2
Pets=20 Permitted: Y
Flood = Plain:=20 No
Occ.=20 Permit Required: N=20 =
Directions: One = block=20 North of Brady Street just east of Cass.
Coordinates: = 17N 8E
School = District:=20 Milwaukee
High=20 School: MPS




Name Master Bedroom Bedroom 2
Dim L C W
13 x 19 M Yes
11 x 10 M Yes
Name Dining Room Kitchen Living/Great Room
Dim L C W
10 x 14 M
10 x 14 M
25 x 17 M Yes
Type: Building=20 Style: Unit=20 Style: Exterior: Roofing: Garage/Parking: Basement: Heating/Cooling: Bath=20 Description: Dining: Water=20 Heater: Appliances = Included:
Condominium
2 = Story
1 = Story
Brick; = Vinyl
Composition
Underground
Full; = Block
Natural Gas; Central = Air;=20 Forced Air
Off Master Bedroom; = Shower=20 Over Tub; Shower Stall; Vanity; Full on = Main
Dinette; Breakfast = Bar;=20 Living/Dining Combo
Electric
Oven; Range; = Refrigerator;=20 Disposal; Dishwasher; = Microwave
Unit=20 Description: Common=20 Amenities: Water/Waste: Municipality: Condo Fee=20 Incl.: Condo=20 Mgmt.: Documents: Financing=20 Available: Estimated=20 Age: Est. = Square=20 Footage: Occupancy:
Gas Fireplace; Cable = TV=20 Available; Patio/Porch; Walk-In Closets; In-Unit = Laundry;=20 Balcony; Circuit Breakers; 220 Volts
Near Public=20 Transit
Municipal Water; = Municipal=20 Sewer
City
Other
Other
Seller Condition; Tax = Bill
Other
0-5 = Years
1251-1500
Immediate; See = Listing=20 Broker
Remarks: Newer = east side=20 condo. Two unit building & small complex provides for NO CONDO = fee's!=20 Nice new building, stainless steel appliances and granite counter = tops.=20 Top quality throughout. Balcony from living area, plus private = master=20 bedroom balcony. Fireplace, rich looking hard surface floors, open = floor=20 plan. Underground heated parking, handy east side location near = shops and=20 city life.
Listing Office: = Market Masters Realty, LLC: = mmreal

Information is supplied by seller and = other=20 third parties and has not been verified.
Copyright 2009 by Multiple = Listing=20 Service, Inc. See copyright=20 notice.
Prepared by Randy Krysinski on Thursday, August 20, 2009 = 1:19=20 PM
----- page break (this will not print)=20 ----- Photo=20 sheet 822 E Pearson St 2 = Milwaukee, WI = 53202-1521 =
------=_NextPart_000_0000_01CA2198.F6C80650 Content-Type: image/jpeg Content-Transfer-Encoding: base64 Content-Location: http://photos.mlswis.com/met/20090815034314790581000000.jpg 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 2+unKQjZncRUS7bIz//Z ------=_NextPart_000_0000_01CA2198.F6C80650 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_01CA2198.F6C80650 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_01CA2198.F6C80650 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_01CA2198.F6C80650 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(/(]*>.*<\/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= var iSign =3D this < 0 ? -1 : 1; /* Get sign of number*/=0A= =0A= /* Adjust number so only the specified number of numbers after the = decimal point are shown.*/=0A= tmpNum *=3D Math.pow(10,decimalNum);=0A= tmpNum =3D Math.round(Math.abs(tmpNum))=0A= tmpNum /=3D Math.pow(10,decimalNum);=0A= tmpNum *=3D iSign; /* Readjust for sign*/=0A= =0A= /* Create a string object to do our formatting on*/=0A= var tmpNumStr =3D new String(tmpNum);=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