LocaHelpers=Class.create({initialize:function(){this.connection=new LocaConnection();},getPlacemarkAddress:function(placemark){if(placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea)var locality=placemark.AddressDetails.Country.AdministrativeArea.SubAdministrativeArea.Locality;else var locality=null;if(locality&&locality.DependentLocality){var street=locality.DependentLocality.Thoroughfare.ThoroughfareName;var address=street+", "+locality.LocalityName;var city=locality.LocalityName;}else if(locality&&locality.Thoroughfare){var street=locality.Thoroughfare.ThoroughfareName;var address=street+", "+locality.LocalityName;var city=locality.LocalityName;}else{var street=placemark.AddressDetails.Country.AdministrativeArea.Thoroughfare.ThoroughfareName;var address=street;}return{'street':street,'city':city,'address':address};},getRandom:function(min,max){if(min>max){return(-1);}if(min==max){return(min);}return min+parseInt(Math.random()*(max-min+1));},getBoundsFromDistance:function(latlng,distance){var alpha=180*distance/(6378137/1000*Math.PI);var ne=new google.maps.LatLng(latlng.lat()-(alpha* -1),latlng.lng()-(alpha* -1));var sw=new google.maps.LatLng(latlng.lat()-alpha,latlng.lng()-alpha);return new google.maps.LatLngBounds(sw,ne);}});Tile=function(pHash){this.maxZoom=(pHash&&pHash.maxzoom)?pHash.maxzoom:17;this.tileSize=256;this.pixelsPerLonDegree=[];this.pixelsPerLonRadian=[];this.numTiles=[];this.bitmapOrigo=[];this.c=256;this.bc;this.Wa;this.fillInConstants();};Tile.prototype={'getTileCoords':function(lat,lng,zoom){return this.getTileCoordinate(lat,lng,zoom);},'getTileLatLong':function(lat,lng,zoom){return this.getLatLong(lat,lng,zoom);},'fillInConstants':function(){this.bc=2*Math.PI;this.Wa=Math.PI/180;for(z=1;z<this.maxZoom+1;z++){this.pixelsPerLonDegree[z]=this.c/360;this.pixelsPerLonRadian[z]=this.c/this.bc;e=this.c/2;this.bitmapOrigo[z]=this.p(e,e);this.numTiles[z]=this.c/256;this.c*=2;}},'getBitmapCoordinate':function(a,b,c){ret=this.p(0,0);ret.x=Math.floor(this.bitmapOrigo[c].x+b*this.pixelsPerLonDegree[c]);e=Math.sin(a*this.Wa);if(e>0.9999){e=0.9999;}if(e< -0.9999){e= -0.9999;}ret.y=Math.floor(this.bitmapOrigo[c].y+0.5*Math.log((1+e)/(1-e))* -1*(this.pixelsPerLonRadian[c]));return ret;},'getTileCoordinate':function(a,b,c){ret=this.getBitmapCoordinate(a,b,c);ret.x=Math.floor(ret.x/this.tileSize);ret.y=Math.floor(ret.y/this.tileSize);return ret;},'getLatLong':function(a,b,c){ret=this.p(0,0);e=this.getBitmapCoordinate(a,b,c);a=e.x;b=e.y;ret.x=(a-this.bitmapOrigo[c].x)/this.pixelsPerLonDegree[c];e=(b-this.bitmapOrigo[c].y)/(-1*this.pixelsPerLonRadian[c]);ret.y=(2*Math.atan(Math.exp(e))-Math.PI/2)/this.Wa;return ret;},'p':function(x,y){return{x:x,y:y};},'getKeyholeString':function(a,b,c){s="";myX=a;myY=b;for(i=17;i>c;i--){rx=(fmod(myX,2));myX=Math.floor(myX/2);ry=(fmod(myY,2));myY=Math.floor(myY/2);s=this.getKeyholeDirection(rx,ry).s;}return 't'.s;},'getKeyholeDirection':function(x,y){if(x==1){if(y==1){return 's';}else if(y==0){return 'r';}}else if(x==0){if(y==1){return 't';}else if(y==0){return 'q';}}return '';}};function NumberFormat(num,inputDecimal){this.VERSION='Number Format v1.5.4';this.COMMA=',';this.PERIOD='.';this.DASH='-';this.LEFT_PAREN='(';this.RIGHT_PAREN=')';this.LEFT_OUTSIDE=0;this.LEFT_INSIDE=1;this.RIGHT_INSIDE=2;this.RIGHT_OUTSIDE=3;this.LEFT_DASH=0;this.RIGHT_DASH=1;this.PARENTHESIS=2;this.NO_ROUNDING= -1;this.num;this.numOriginal;this.hasSeparators=false;this.separatorValue;this.inputDecimalValue;this.decimalValue;this.negativeFormat;this.negativeRed;this.hasCurrency;this.currencyPosition;this.currencyValue;this.places;this.roundToPlaces;this.truncate;this.setNumber=setNumberNF;this.toUnformatted=toUnformattedNF;this.setInputDecimal=setInputDecimalNF;this.setSeparators=setSeparatorsNF;this.setCommas=setCommasNF;this.setNegativeFormat=setNegativeFormatNF;this.setNegativeRed=setNegativeRedNF;this.setCurrency=setCurrencyNF;this.setCurrencyPrefix=setCurrencyPrefixNF;this.setCurrencyValue=setCurrencyValueNF;this.setCurrencyPosition=setCurrencyPositionNF;this.setPlaces=setPlacesNF;this.toFormatted=toFormattedNF;this.toPercentage=toPercentageNF;this.getOriginal=getOriginalNF;this.moveDecimalRight=moveDecimalRightNF;this.moveDecimalLeft=moveDecimalLeftNF;this.getRounded=getRoundedNF;this.preserveZeros=preserveZerosNF;this.justNumber=justNumberNF;this.expandExponential=expandExponentialNF;this.getZeros=getZerosNF;this.moveDecimalAsString=moveDecimalAsStringNF;this.moveDecimal=moveDecimalNF;this.addSeparators=addSeparatorsNF;if(inputDecimal==null){this.setNumber(num,this.PERIOD);}else{this.setNumber(num,inputDecimal);}this.setCommas(true);this.setNegativeFormat(this.LEFT_DASH);this.setNegativeRed(false);this.setCurrency(false);this.setCurrencyPrefix('$');this.setPlaces(2);};function setInputDecimalNF(val){this.inputDecimalValue=val;};function setNumberNF(num,inputDecimal){if(inputDecimal!=null){this.setInputDecimal(inputDecimal);}this.numOriginal=num;this.num=this.justNumber(num);};function toUnformattedNF(){return(this.num);};function getOriginalNF(){return(this.numOriginal);};function setNegativeFormatNF(format){this.negativeFormat=format;};function setNegativeRedNF(isRed){this.negativeRed=isRed;};function setSeparatorsNF(isC,separator,decimal){this.hasSeparators=isC;if(separator==null)separator=this.COMMA;if(decimal==null)decimal=this.PERIOD;if(separator==decimal){this.decimalValue=(decimal==this.PERIOD)?this.COMMA:this.PERIOD;}else{this.decimalValue=decimal;}this.separatorValue=separator;};function setCommasNF(isC){this.setSeparators(isC,this.COMMA,this.PERIOD);};function setCurrencyNF(isC){this.hasCurrency=isC;};function setCurrencyValueNF(val){this.currencyValue=val;};function setCurrencyPrefixNF(cp){this.setCurrencyValue(cp);this.setCurrencyPosition(this.LEFT_OUTSIDE);};function setCurrencyPositionNF(cp){this.currencyPosition=cp};function setPlacesNF(p,tr){this.roundToPlaces= !(p==this.NO_ROUNDING);this.truncate=(tr!=null&&tr);this.places=(p<0)?0:p;};function addSeparatorsNF(nStr,inD,outD,sep){nStr+='';var dpos=nStr.indexOf(inD);var nStrEnd='';if(dpos!= -1){nStrEnd=outD+nStr.substring(dpos+1,nStr.length);nStr=nStr.substring(0,dpos);}var rgx=/(\d+)(\d{3})/;while(rgx.test(nStr)){nStr=nStr.replace(rgx,'$1'+sep+'$2');}return nStr+nStrEnd;};function toFormattedNF(){var pos;var nNum=this.num;var nStr;var splitString=new Array(2);if(this.roundToPlaces){nNum=this.getRounded(nNum);nStr=this.preserveZeros(Math.abs(nNum));}else{nStr=this.expandExponential(Math.abs(nNum));}if(this.hasSeparators){nStr=this.addSeparators(nStr,this.PERIOD,this.decimalValue,this.separatorValue);}else{nStr=nStr.replace(new RegExp('\\'+this.PERIOD),this.decimalValue);}var c0='';var n0='';var c1='';var n1='';var n2='';var c2='';var n3='';var c3='';var negSignL=(this.negativeFormat==this.PARENTHESIS)?this.LEFT_PAREN:this.DASH;var negSignR=(this.negativeFormat==this.PARENTHESIS)?this.RIGHT_PAREN:this.DASH;if(this.currencyPosition==this.LEFT_OUTSIDE){if(nNum<0){if(this.negativeFormat==this.LEFT_DASH||this.negativeFormat==this.PARENTHESIS)n1=negSignL;if(this.negativeFormat==this.RIGHT_DASH||this.negativeFormat==this.PARENTHESIS)n2=negSignR;}if(this.hasCurrency)c0=this.currencyValue;}else if(this.currencyPosition==this.LEFT_INSIDE){if(nNum<0){if(this.negativeFormat==this.LEFT_DASH||this.negativeFormat==this.PARENTHESIS)n0=negSignL;if(this.negativeFormat==this.RIGHT_DASH||this.negativeFormat==this.PARENTHESIS)n3=negSignR;}if(this.hasCurrency)c1=this.currencyValue;}else if(this.currencyPosition==this.RIGHT_INSIDE){if(nNum<0){if(this.negativeFormat==this.LEFT_DASH||this.negativeFormat==this.PARENTHESIS)n0=negSignL;if(this.negativeFormat==this.RIGHT_DASH||this.negativeFormat==this.PARENTHESIS)n3=negSignR;}if(this.hasCurrency)c2=this.currencyValue;}else if(this.currencyPosition==this.RIGHT_OUTSIDE){if(nNum<0){if(this.negativeFormat==this.LEFT_DASH||this.negativeFormat==this.PARENTHESIS)n1=negSignL;if(this.negativeFormat==this.RIGHT_DASH||this.negativeFormat==this.PARENTHESIS)n2=negSignR;}if(this.hasCurrency)c3=this.currencyValue;}nStr=c0+n0+c1+n1+nStr+n2+c2+n3+c3;if(this.negativeRed&&nNum<0){nStr='<font color="red">'+nStr+'</font>';}return(nStr);};function toPercentageNF(){nNum=this.num*100;nNum=this.getRounded(nNum);return nNum+'%';};function getZerosNF(places){var extraZ='';var i;for(i=0;i<places;i++){extraZ+='0';}return extraZ;};function expandExponentialNF(origVal){if(isNaN(origVal))return origVal;var newVal=parseFloat(origVal)+'';var eLoc=newVal.toLowerCase().indexOf('e');if(eLoc!= -1){var plusLoc=newVal.toLowerCase().indexOf('+');var negLoc=newVal.toLowerCase().indexOf('-',eLoc);var justNumber=newVal.substring(0,eLoc);if(negLoc!= -1){var places=newVal.substring(negLoc+1,newVal.length);justNumber=this.moveDecimalAsString(justNumber,true,parseInt(places));}else{if(plusLoc== -1)plusLoc=eLoc;var places=newVal.substring(plusLoc+1,newVal.length);justNumber=this.moveDecimalAsString(justNumber,false,parseInt(places));}newVal=justNumber;}return newVal;};function moveDecimalRightNF(val,places){var newVal='';if(places==null){newVal=this.moveDecimal(val,false);}else{newVal=this.moveDecimal(val,false,places);}return newVal;};function moveDecimalLeftNF(val,places){var newVal='';if(places==null){newVal=this.moveDecimal(val,true);}else{newVal=this.moveDecimal(val,true,places);}return newVal;};function moveDecimalAsStringNF(val,left,places){var spaces=(arguments.length<3)?this.places:places;if(spaces<=0)return val;var newVal=val+'';var extraZ=this.getZeros(spaces);var re1=new RegExp('([0-9.]+)');if(left){newVal=newVal.replace(re1,extraZ+'$1');var re2=new RegExp('(-?)([0-9]*)([0-9]{'+spaces+'})(\\.?)');newVal=newVal.replace(re2,'$1$2.$3');}else{var reArray=re1.exec(newVal);if(reArray!=null){newVal=newVal.substring(0,reArray.index)+reArray[1]+extraZ+newVal.substring(reArray.index+reArray[0].length);}var re2=new RegExp('(-?)([0-9]*)(\\.?)([0-9]{'+spaces+'})');newVal=newVal.replace(re2,'$1$2$4.');}newVal=newVal.replace(/\.$/,'');return newVal;};function moveDecimalNF(val,left,places){var newVal='';if(places==null){newVal=this.moveDecimalAsString(val,left);}else{newVal=this.moveDecimalAsString(val,left,places);}return parseFloat(newVal);};function getRoundedNF(val){val=this.moveDecimalRight(val);if(this.truncate){val=val>=0?Math.floor(val):Math.ceil(val);}else{val=Math.round(val);}val=this.moveDecimalLeft(val);return val;};function preserveZerosNF(val){var i;val=this.expandExponential(val);if(this.places<=0)return val;var decimalPos=val.indexOf('.');if(decimalPos== -1){val+='.';for(i=0;i<this.places;i++){val+='0';}}else{var actualDecimals=(val.length-1)-decimalPos;var difference=this.places-actualDecimals;for(i=0;i<difference;i++){val+='0';}}return val;};function justNumberNF(val){newVal=val+'';var isPercentage=false;if(newVal.indexOf('%')!= -1){newVal=newVal.replace(/\%/g,'');isPercentage=true;}var re=new RegExp('[^\\'+this.inputDecimalValue+'\\d\\-\\+\\(\\)eE]','g');newVal=newVal.replace(re,'');var tempRe=new RegExp('['+this.inputDecimalValue+']','g');var treArray=tempRe.exec(newVal);if(treArray!=null){var tempRight=newVal.substring(treArray.index+treArray[0].length);newVal=newVal.substring(0,treArray.index)+this.PERIOD+tempRight.replace(tempRe,'');}if(newVal.charAt(newVal.length-1)==this.DASH){newVal=newVal.substring(0,newVal.length-1);newVal='-'+newVal;}else if(newVal.charAt(0)==this.LEFT_PAREN&&newVal.charAt(newVal.length-1)==this.RIGHT_PAREN){newVal=newVal.substring(1,newVal.length-1);newVal='-'+newVal;}newVal=parseFloat(newVal);if(!isFinite(newVal)){newVal=0;}if(isPercentage){newVal=this.moveDecimalLeft(newVal,2);}return newVal;}
