(function(global,factory){if(typeof module==="object"&&typeof module.exports==="object"){module.exports=global.document?factory(global,true):function(w){if(!w.document){throw new Error("jQuery requires a window with a document")}return factory(w)}}else{factory(global)}})(typeof window!=="undefined"?window:this,function(window,noGlobal){var arr=[];var document=window.document;var slice=arr.slice;var concat=arr.concat;var push=arr.push;var indexOf=arr.indexOf;var class2type={};var toString=class2type.toString;var hasOwn=class2type.hasOwnProperty;var support={};var version="2.2.4",jQuery=function(selector,context){return new jQuery.fn.init(selector,context)},rtrim=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,rmsPrefix=/^-ms-/,rdashAlpha=/-([\da-z])/gi,fcamelCase=function(all,letter){return letter.toUpperCase()};jQuery.fn=jQuery.prototype={jquery:version,constructor:jQuery,selector:"",length:0,toArray:function(){return slice.call(this)},get:function(num){return num!=null?num<0?this[num+this.length]:this[num]:slice.call(this)},pushStack:function(elems){var ret=jQuery.merge(this.constructor(),elems);ret.prevObject=this;ret.context=this.context;return ret},each:function(callback){return jQuery.each(this,callback)},map:function(callback){return this.pushStack(jQuery.map(this,function(elem,i){return callback.call(elem,i,elem)}))},slice:function(){return this.pushStack(slice.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(i){var len=this.length,j=+i+(i<0?len:0);return this.pushStack(j>=0&&j<len?[this[j]]:[])},end:function(){return this.prevObject||this.constructor()},push:push,sort:arr.sort,splice:arr.splice};jQuery.extend=jQuery.fn.extend=function(){var options,name,src,copy,copyIsArray,clone,target=arguments[0]||{},i=1,length=arguments.length,deep=false;if(typeof target==="boolean"){deep=target;target=arguments[i]||{};i++}if(typeof target!=="object"&&!jQuery.isFunction(target)){target={}}if(i===length){target=this;i--}for(;i<length;i++){if((options=arguments[i])!=null){for(name in options){src=target[name];copy=options[name];if(target===copy){continue}if(deep&&copy&&(jQuery.isPlainObject(copy)||(copyIsArray=jQuery.isArray(copy)))){if(copyIsArray){copyIsArray=false;clone=src&&jQuery.isArray(src)?src:[]}else{clone=src&&jQuery.isPlainObject(src)?src:{}}target[name]=jQuery.extend(deep,clone,copy)}else if(copy!==undefined){target[name]=copy}}}}return target};jQuery.extend({expando:"jQuery"+(version+Math.random()).replace(/\D/g,""),isReady:true,error:function(msg){throw new Error(msg)},noop:function(){},isFunction:function(obj){return jQuery.type(obj)==="function"},isArray:Array.isArray,isWindow:function(obj){return obj!=null&&obj===obj.window},isNumeric:function(obj){var realStringObj=obj&&obj.toString();return!jQuery.isArray(obj)&&realStringObj-parseFloat(realStringObj)+1>=0},isPlainObject:function(obj){var key;if(jQuery.type(obj)!=="object"||obj.nodeType||jQuery.isWindow(obj)){return false}if(obj.constructor&&!hasOwn.call(obj,"constructor")&&!hasOwn.call(obj.constructor.prototype||{},"isPrototypeOf")){return false}for(key in obj){}return key===undefined||hasOwn.call(obj,key)},isEmptyObject:function(obj){var name;for(name in obj){return false}return true},type:function(obj){if(obj==null){return obj+""}return typeof obj==="object"||typeof obj==="function"?class2type[toString.call(obj)]||"object":typeof obj},globalEval:function(code){var script,indirect=eval;code=jQuery.trim(code);if(code){if(code.indexOf("use strict")===1){script=document.createElement("script");script.text=code;document.head.appendChild(script).parentNode.removeChild(script)}else{indirect(code)}}},camelCase:function(string){return string.replace(rmsPrefix,"ms-").replace(rdashAlpha,fcamelCase)},nodeName:function(elem,name){return elem.nodeName&&elem.nodeName.toLowerCase()===name.toLowerCase()},each:function(obj,callback){var length,i=0;if(isArrayLike(obj)){length=obj.length;for(;i<length;i++){if(callback.call(obj[i],i,obj[i])===false){break}}}else{for(i in obj){if(callback.call(obj[i],i,obj[i])===false){break}}}return obj},trim:function(text){return text==null?"":(text+"").replace(rtrim,"")},makeArray:function(arr,results){var ret=results||[];if(arr!=null){if(isArrayLike(Object(arr))){jQuery.merge(ret,typeof arr==="string"?[arr]:arr)}else{push.call(ret,arr)}}return ret},inArray:function(elem,arr,i){return arr==null?-1:indexOf.call(arr,elem,i)},merge:function(first,second){var len=+second.length,j=0,i=first.length;for(;j<len;j++){first[i++]=second[j]}first.length=i;return first},grep:function(elems,callback,invert){var callbackInverse,matches=[],i=0,length=elems.length,callbackExpect=!invert;for(;i<length;i++){callbackInverse=!callback(elems[i],i);if(callbackInverse!==callbackExpect){matches.push(elems[i])}}return matches},map:function(elems,callback,arg){var length,value,i=0,ret=[];if(isArrayLike(elems)){length=elems.length;for(;i<length;i++){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}else{for(i in elems){value=callback(elems[i],i,arg);if(value!=null){ret.push(value)}}}return concat.apply([],ret)},guid:1,proxy:function(fn,context){var tmp,args,proxy;if(typeof context==="string"){tmp=fn[context];context=fn;fn=tmp}if(!jQuery.isFunction(fn)){return undefined}args=slice.call(arguments,2);proxy=function(){return fn.apply(context||this,args.concat(slice.call(arguments)))};proxy.guid=fn.guid=fn.guid||jQuery.guid++;return proxy},now:Date.now,support:support});if(typeof Symbol==="function"){jQuery.fn[Symbol.iterator]=arr[Symbol.iterator]}jQuery.each("Boolean Number String Function Array Date RegExp Object Error Symbol".split(" "),function(i,name){class2type["[object "+name+"]"]=name.toLowerCase()});function isArrayLike(obj){var length=!!obj&&"length"in obj&&obj.length,type=jQuery.type(obj);if(type==="function"||jQuery.isWindow(obj)){return false}return type==="array"||length===0||typeof length==="number"&&length>0&&length-1 in obj}var Sizzle=function(window){var i,support,Expr,getText,isXML,tokenize,compile,select,outermostContext,sortInput,hasDuplicate,setDocument,document,docElem,documentIsHTML,rbuggyQSA,rbuggyMatches,matches,contains,expando="sizzle"+1*new Date,preferredDoc=window.document,dirruns=0,done=0,classCache=createCache(),tokenCache=createCache(),compilerCache=createCache(),sortOrder=function(a,b){if(a===b){hasDuplicate=true}return 0},MAX_NEGATIVE=1<<31,hasOwn={}.hasOwnProperty,arr=[],pop=arr.pop,push_native=arr.push,push=arr.push,slice=arr.slice,indexOf=function(list,elem){var i=0,len=list.length;for(;i<len;i++){if(list[i]===elem){return i}}return-1},booleans="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",whitespace="[\\x20\\t\\r\\n\\f]",identifier="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",attributes="\\["+whitespace+"*("+identifier+")(?:"+whitespace+"*([*^$|!~]?=)"+whitespace+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+identifier+"))|)"+whitespace+"*\\]",pseudos=":("+identifier+")(?:\\(("+"('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|"+"((?:\\\\.|[^\\\\()[\\]]|"+attributes+")*)|"+".*"+")\\)|)",rwhitespace=new RegExp(whitespace+"+","g"),rtrim=new RegExp("^"+whitespace+"+|((?:^|[^\\\\])(?:\\\\.)*)"+whitespace+"+$","g"),rcomma=new RegExp("^"+whitespace+"*,"+whitespace+"*"),rcombinators=new RegExp("^"+whitespace+"*([>+~]|"+whitespace+")"+whitespace+"*"),rattributeQuotes=new RegExp("="+whitespace+"*([^\\]'\"]*?)"+whitespace+"*\\]","g"),rpseudo=new RegExp(pseudos),ridentifier=new RegExp("^"+identifier+"$"),matchExpr={ID:new RegExp("^#("+identifier+")"),CLASS:new RegExp("^\\.("+identifier+")"),TAG:new RegExp("^("+identifier+"|[*])"),ATTR:new RegExp("^"+attributes),PSEUDO:new RegExp("^"+pseudos),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+whitespace+"*(even|odd|(([+-]|)(\\d*)n|)"+whitespace+"*(?:([+-]|)"+whitespace+"*(\\d+)|))"+whitespace+"*\\)|)","i"),bool:new RegExp("^(?:"+booleans+")$","i"),needsContext:new RegExp("^"+whitespace+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+whitespace+"*((?:-\\d)?\\d*)"+whitespace+"*\\)|)(?=[^-]|$)","i")},rinputs=/^(?:input|select|textarea|button)$/i,rheader=/^h\d$/i,rnative=/^[^{]+\{\s*\[native \w/,rquickExpr=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,rsibling=/[+~]/,rescape=/'|\\/g,runescape=new RegExp("\\\\([\\da-f]{1,6}"+whitespace+"?|("+whitespace+")|.)","ig"),funescape=function(_,escaped,escapedWhitespace){var high="0x"+escaped-65536;return high!==high||escapedWhitespace?escaped:high<0?String.fromCharCode(high+65536):String.fromCharCode(high>>10|55296,high&1023|56320)},unloadHandler=function(){setDocument()};try{push.apply(arr=slice.call(preferredDoc.childNodes),preferredDoc.childNodes);arr[preferredDoc.childNodes.length].nodeType}catch(e){push={apply:arr.length?function(target,els){push_native.apply(target,slice.call(els))}:function(target,els){var j=target.length,i=0;while(target[j++]=els[i++]){}target.length=j-1}}}function Sizzle(selector,context,results,seed){var m,i,elem,nid,nidselect,match,groups,newSelector,newContext=context&&context.ownerDocument,nodeType=context?context.nodeType:9;results=results||[];if(typeof selector!=="string"||!selector||nodeType!==1&&nodeType!==9&&nodeType!==11){return results}if(!seed){if((context?context.ownerDocument||context:preferredDoc)!==document){setDocument(context)}context=context||document;if(documentIsHTML){if(nodeType!==11&&(match=rquickExpr.exec(selector))){if(m=match[1]){if(nodeType===9){if(elem=context.getElementById(m)){if(elem.id===m){results.push(elem);return results}}else{return results}}else{if(newContext&&(elem=newContext.getElementById(m))&&contains(context,elem)&&elem.id===m){results.push(elem);return results}}}else if(match[2]){push.apply(results,context.getElementsByTagName(selector));return results}else if((m=match[3])&&support.getElementsByClassName&&context.getElementsByClassName){push.apply(results,context.getElementsByClassName(m));return results}}if(support.qsa&&!compilerCache[selector+" "]&&(!rbuggyQSA||!rbuggyQSA.test(selector))){if(nodeType!==1){newContext=context;newSelector=selector}else if(context.nodeName.toLowerCase()!=="object"){if(nid=context.getAttribute("id")){nid=nid.replace(rescape,"\\$&")}else{context.setAttribute("id",nid=expando)}groups=tokenize(selector);i=groups.length;nidselect=ridentifier.test(nid)?"#"+nid:"[id='"+nid+"']";while(i--){groups[i]=nidselect+" "+toSelector(groups[i])}newSelector=groups.join(",");newContext=rsibling.test(selector)&&testContext(context.parentNode)||context}if(newSelector){try{push.apply(results,newContext.querySelectorAll(newSelector));return results}catch(qsaError){}finally{if(nid===expando){context.removeAttribute("id")}}}}}}return select(selector.replace(rtrim,"$1"),context,results,seed)}function createCache(){var keys=[];function cache(key,value){if(keys.push(key+" ")>Expr.cacheLength){delete cache[keys.shift()]}return cache[key+" "]=value}return cache}function markFunction(fn){fn[expando]=true;return fn}function assert(fn){var div=document.createElement("div");try{return!!fn(div)}catch(e){return false}finally{if(div.parentNode){div.parentNode.removeChild(div)}div=null}}function addHandle(attrs,handler){var arr=attrs.split("|"),i=arr.length;while(i--){Expr.attrHandle[arr[i]]=handler}}function siblingCheck(a,b){var cur=b&&a,diff=cur&&a.nodeType===1&&b.nodeType===1&&(~b.sourceIndex||MAX_NEGATIVE)-(~a.sourceIndex||MAX_NEGATIVE);if(diff){return diff}if(cur){while(cur=cur.nextSibling){if(cur===b){return-1}}}return a?1:-1}function createInputPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type===type}}function createButtonPseudo(type){return function(elem){var name=elem.nodeName.toLowerCase();return(name==="input"||name==="button")&&elem.type===type}}function createPositionalPseudo(fn){return markFunction(function(argument){argument=+argument;return markFunction(function(seed,matches){var j,matchIndexes=fn([],seed.length,argument),i=matchIndexes.length;while(i--){if(seed[j=matchIndexes[i]]){seed[j]=!(matches[j]=seed[j])}}})})}function testContext(context){return context&&typeof context.getElementsByTagName!=="undefined"&&context}support=Sizzle.support={};isXML=Sizzle.isXML=function(elem){var documentElement=elem&&(elem.ownerDocument||elem).documentElement;return documentElement?documentElement.nodeName!=="HTML":false};setDocument=Sizzle.setDocument=function(node){var hasCompare,parent,doc=node?node.ownerDocument||node:preferredDoc;if(doc===document||doc.nodeType!==9||!doc.documentElement){return document}document=doc;docElem=document.documentElement;documentIsHTML=!isXML(document);if((parent=document.defaultView)&&parent.top!==parent){if(parent.addEventListener){parent.addEventListener("unload",unloadHandler,false)}else if(parent.attachEvent){parent.attachEvent("onunload",unloadHandler)}}support.attributes=assert(function(div){div.className="i";return!div.getAttribute("className")});support.getElementsByTagName=assert(function(div){div.appendChild(document.createComment(""));return!div.getElementsByTagName("*").length});support.getElementsByClassName=rnative.test(document.getElementsByClassName);support.getById=assert(function(div){docElem.appendChild(div).id=expando;return!document.getElementsByName||!document.getElementsByName(expando).length});if(support.getById){Expr.find["ID"]=function(id,context){if(typeof context.getElementById!=="undefined"&&documentIsHTML){var m=context.getElementById(id);return m?[m]:[]}};Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){return elem.getAttribute("id")===attrId}}}else{delete Expr.find["ID"];Expr.filter["ID"]=function(id){var attrId=id.replace(runescape,funescape);return function(elem){var node=typeof elem.getAttributeNode!=="undefined"&&elem.getAttributeNode("id");return node&&node.value===attrId}}}Expr.find["TAG"]=support.getElementsByTagName?function(tag,context){if(typeof context.getElementsByTagName!=="undefined"){return context.getElementsByTagName(tag)}else if(support.qsa){return context.querySelectorAll(tag)}}:function(tag,context){var elem,tmp=[],i=0,results=context.getElementsByTagName(tag);if(tag==="*"){while(elem=results[i++]){if(elem.nodeType===1){tmp.push(elem)}}return tmp}return results};Expr.find["CLASS"]=support.getElementsByClassName&&function(className,context){if(typeof context.getElementsByClassName!=="undefined"&&documentIsHTML){return context.getElementsByClassName(className)}};rbuggyMatches=[];rbuggyQSA=[];if(support.qsa=rnative.test(document.querySelectorAll)){assert(function(div){docElem.appendChild(div).innerHTML="<a id='"+expando+"'></a>"+"<select id='"+expando+"-\r\\' msallowcapture=''>"+"<option selected=''></option></select>";if(div.querySelectorAll("[msallowcapture^='']").length){rbuggyQSA.push("[*^$]="+whitespace+"*(?:''|\"\")")}if(!div.querySelectorAll("[selected]").length){rbuggyQSA.push("\\["+whitespace+"*(?:value|"+booleans+")")}if(!div.querySelectorAll("[id~="+expando+"-]").length){rbuggyQSA.push("~=")}if(!div.querySelectorAll(":checked").length){rbuggyQSA.push(":checked")}if(!div.querySelectorAll("a#"+expando+"+*").length){rbuggyQSA.push(".#.+[+~]")}});assert(function(div){var input=document.createElement("input");input.setAttribute("type","hidden");div.appendChild(input).setAttribute("name","D");if(div.querySelectorAll("[name=d]").length){rbuggyQSA.push("name"+whitespace+"*[*^$|!~]?=")}if(!div.querySelectorAll(":enabled").length){rbuggyQSA.push(":enabled",":disabled")}div.querySelectorAll("*,:x");rbuggyQSA.push(",.*:")})}if(support.matchesSelector=rnative.test(matches=docElem.matches||docElem.webkitMatchesSelector||docElem.mozMatchesSelector||docElem.oMatchesSelector||docElem.msMatchesSelector)){assert(function(div){support.disconnectedMatch=matches.call(div,"div");matches.call(div,"[s!='']:x");rbuggyMatches.push("!=",pseudos)})}rbuggyQSA=rbuggyQSA.length&&new RegExp(rbuggyQSA.join("|"));rbuggyMatches=rbuggyMatches.length&&new RegExp(rbuggyMatches.join("|"));hasCompare=rnative.test(docElem.compareDocumentPosition);contains=hasCompare||rnative.test(docElem.contains)?function(a,b){var adown=a.nodeType===9?a.documentElement:a,bup=b&&b.parentNode;return a===bup||!!(bup&&bup.nodeType===1&&(adown.contains?adown.contains(bup):a.compareDocumentPosition&&a.compareDocumentPosition(bup)&16))}:function(a,b){if(b){while(b=b.parentNode){if(b===a){return true}}}return false};sortOrder=hasCompare?function(a,b){if(a===b){hasDuplicate=true;return 0}var compare=!a.compareDocumentPosition-!b.compareDocumentPosition;if(compare){return compare}compare=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1;if(compare&1||!support.sortDetached&&b.compareDocumentPosition(a)===compare){if(a===document||a.ownerDocument===preferredDoc&&contains(preferredDoc,a)){return-1}if(b===document||b.ownerDocument===preferredDoc&&contains(preferredDoc,b)){return 1}return sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}return compare&4?-1:1}:function(a,b){if(a===b){hasDuplicate=true;return 0}var cur,i=0,aup=a.parentNode,bup=b.parentNode,ap=[a],bp=[b];if(!aup||!bup){return a===document?-1:b===document?1:aup?-1:bup?1:sortInput?indexOf(sortInput,a)-indexOf(sortInput,b):0}else if(aup===bup){return siblingCheck(a,b)}cur=a;while(cur=cur.parentNode){ap.unshift(cur)}cur=b;while(cur=cur.parentNode){bp.unshift(cur)}while(ap[i]===bp[i]){i++}return i?siblingCheck(ap[i],bp[i]):ap[i]===preferredDoc?-1:bp[i]===preferredDoc?1:0};return document};Sizzle.matches=function(expr,elements){return Sizzle(expr,null,null,elements)};Sizzle.matchesSelector=function(elem,expr){if((elem.ownerDocument||elem)!==document){setDocument(elem)}expr=expr.replace(rattributeQuotes,"='$1']");if(support.matchesSelector&&documentIsHTML&&!compilerCache[expr+" "]&&(!rbuggyMatches||!rbuggyMatches.test(expr))&&(!rbuggyQSA||!rbuggyQSA.test(expr))){try{var ret=matches.call(elem,expr);if(ret||support.disconnectedMatch||elem.document&&elem.document.nodeType!==11){return ret}}catch(e){}}return Sizzle(expr,document,null,[elem]).length>0};Sizzle.contains=function(context,elem){if((context.ownerDocument||context)!==document){setDocument(context)}return contains(context,elem)};Sizzle.attr=function(elem,name){if((elem.ownerDocument||elem)!==document){setDocument(elem)}var fn=Expr.attrHandle[name.toLowerCase()],val=fn&&hasOwn.call(Expr.attrHandle,name.toLowerCase())?fn(elem,name,!documentIsHTML):undefined;return val!==undefined?val:support.attributes||!documentIsHTML?elem.getAttribute(name):(val=elem.getAttributeNode(name))&&val.specified?val.value:null};Sizzle.error=function(msg){throw new Error("Syntax error, unrecognized expression: "+msg)};Sizzle.uniqueSort=function(results){var elem,duplicates=[],j=0,i=0;hasDuplicate=!support.detectDuplicates;sortInput=!support.sortStable&&results.slice(0);results.sort(sortOrder);if(hasDuplicate){while(elem=results[i++]){if(elem===results[i]){j=duplicates.push(i)}}while(j--){results.splice(duplicates[j],1)}}sortInput=null;return results};getText=Sizzle.getText=function(elem){var node,ret="",i=0,nodeType=elem.nodeType;if(!nodeType){while(node=elem[i++]){ret+=getText(node)}}else if(nodeType===1||nodeType===9||nodeType===11){if(typeof elem.textContent==="string"){return elem.textContent}else{for(elem=elem.firstChild;elem;elem=elem.nextSibling){ret+=getText(elem)}}}else if(nodeType===3||nodeType===4){return elem.nodeValue}return ret};Expr=Sizzle.selectors={cacheLength:50,createPseudo:markFunction,match:matchExpr,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:true}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:true},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(match){match[1]=match[1].replace(runescape,funescape);match[3]=(match[3]||match[4]||match[5]||"").replace(runescape,funescape);if(match[2]==="~="){match[3]=" "+match[3]+" "}return match.slice(0,4)},CHILD:function(match){match[1]=match[1].toLowerCase();if(match[1].slice(0,3)==="nth"){if(!match[3]){Sizzle.error(match[0])}match[4]=+(match[4]?match[5]+(match[6]||1):2*(match[3]==="even"||match[3]==="odd"));match[5]=+(match[7]+match[8]||match[3]==="odd")}else if(match[3]){Sizzle.error(match[0])}return match},PSEUDO:function(match){var excess,unquoted=!match[6]&&match[2];if(matchExpr["CHILD"].test(match[0])){return null}if(match[3]){match[2]=match[4]||match[5]||""}else if(unquoted&&rpseudo.test(unquoted)&&(excess=tokenize(unquoted,true))&&(excess=unquoted.indexOf(")",unquoted.length-excess)-unquoted.length)){match[0]=match[0].slice(0,excess);match[2]=unquoted.slice(0,excess)}return match.slice(0,3)}},filter:{TAG:function(nodeNameSelector){var nodeName=nodeNameSelector.replace(runescape,funescape).toLowerCase();return nodeNameSelector==="*"?function(){return true}:function(elem){return elem.nodeName&&elem.nodeName.toLowerCase()===nodeName}},CLASS:function(className){var pattern=classCache[className+" "];return pattern||(pattern=new RegExp("(^|"+whitespace+")"+className+"("+whitespace+"|$)"))&&classCache(className,function(elem){return pattern.test(typeof elem.className==="string"&&elem.className||typeof elem.getAttribute!=="undefined"&&elem.getAttribute("class")||"")})},ATTR:function(name,operator,check){return function(elem){var result=Sizzle.attr(elem,name);if(result==null){return operator==="!="}if(!operator){return true}result+="";return operator==="="?result===check:operator==="!="?result!==check:operator==="^="?check&&result.indexOf(check)===0:operator==="*="?check&&result.indexOf(check)>-1:operator==="$="?check&&result.slice(-check.length)===check:operator==="~="?(" "+result.replace(rwhitespace," ")+" ").indexOf(check)>-1:operator==="|="?result===check||result.slice(0,check.length+1)===check+"-":false}},CHILD:function(type,what,argument,first,last){var simple=type.slice(0,3)!=="nth",forward=type.slice(-4)!=="last",ofType=what==="of-type";return first===1&&last===0?function(elem){return!!elem.parentNode}:function(elem,context,xml){var cache,uniqueCache,outerCache,node,nodeIndex,start,dir=simple!==forward?"nextSibling":"previousSibling",parent=elem.parentNode,name=ofType&&elem.nodeName.toLowerCase(),useCache=!xml&&!ofType,diff=false;if(parent){if(simple){while(dir){node=elem;while(node=node[dir]){if(ofType?node.nodeName.toLowerCase()===name:node.nodeType===1){return false}}start=dir=type==="only"&&!start&&"nextSibling"}return true}start=[forward?parent.firstChild:parent.lastChild];if(forward&&useCache){node=parent;outerCache=node[expando]||(node[expando]={});uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={});cache=uniqueCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex&&cache[2];node=nodeIndex&&parent.childNodes[nodeIndex];while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop()){if(node.nodeType===1&&++diff&&node===elem){uniqueCache[type]=[dirruns,nodeIndex,diff];break}}}else{if(useCache){node=elem;outerCache=node[expando]||(node[expando]={});uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={});cache=uniqueCache[type]||[];nodeIndex=cache[0]===dirruns&&cache[1];diff=nodeIndex}if(diff===false){while(node=++nodeIndex&&node&&node[dir]||(diff=nodeIndex=0)||start.pop()){if((ofType?node.nodeName.toLowerCase()===name:node.nodeType===1)&&++diff){if(useCache){outerCache=node[expando]||(node[expando]={});uniqueCache=outerCache[node.uniqueID]||(outerCache[node.uniqueID]={});uniqueCache[type]=[dirruns,diff]}if(node===elem){break}}}}}diff-=last;return diff===first||diff%first===0&&diff/first>=0}}},PSEUDO:function(pseudo,argument){var args,fn=Expr.pseudos[pseudo]||Expr.setFilters[pseudo.toLowerCase()]||Sizzle.error("unsupported pseudo: "+pseudo);if(fn[expando]){return fn(argument)}if(fn.length>1){args=[pseudo,pseudo,"",argument];return Expr.setFilters.hasOwnProperty(pseudo.toLowerCase())?markFunction(function(seed,matches){var idx,matched=fn(seed,argument),i=matched.length;while(i--){idx=indexOf(seed,matched[i]);seed[idx]=!(matches[idx]=matched[i])}}):function(elem){return fn(elem,0,args)}}return fn}},pseudos:{not:markFunction(function(selector){var input=[],results=[],matcher=compile(selector.replace(rtrim,"$1"));return matcher[expando]?markFunction(function(seed,matches,context,xml){var elem,unmatched=matcher(seed,null,xml,[]),i=seed.length;while(i--){if(elem=unmatched[i]){seed[i]=!(matches[i]=elem)}}}):function(elem,context,xml){input[0]=elem;matcher(input,null,xml,results);input[0]=null;return!results.pop()}}),has:markFunction(function(selector){return function(elem){return Sizzle(selector,elem).length>0}}),contains:markFunction(function(text){text=text.replace(runescape,funescape);return function(elem){return(elem.textContent||elem.innerText||getText(elem)).indexOf(text)>-1}}),lang:markFunction(function(lang){if(!ridentifier.test(lang||"")){Sizzle.error("unsupported lang: "+lang)}lang=lang.replace(runescape,funescape).toLowerCase();return function(elem){var elemLang;do{if(elemLang=documentIsHTML?elem.lang:elem.getAttribute("xml:lang")||elem.getAttribute("lang")){elemLang=elemLang.toLowerCase();return elemLang===lang||elemLang.indexOf(lang+"-")===0}}while((elem=elem.parentNode)&&elem.nodeType===1);return false}}),target:function(elem){var hash=window.location&&window.location.hash;return hash&&hash.slice(1)===elem.id},root:function(elem){return elem===docElem},focus:function(elem){return elem===document.activeElement&&(!document.hasFocus||document.hasFocus())&&!!(elem.type||elem.href||~elem.tabIndex)},enabled:function(elem){return elem.disabled===false},disabled:function(elem){return elem.disabled===true},checked:function(elem){var nodeName=elem.nodeName.toLowerCase();return nodeName==="input"&&!!elem.checked||nodeName==="option"&&!!elem.selected},selected:function(elem){if(elem.parentNode){elem.parentNode.selectedIndex}return elem.selected===true},empty:function(elem){for(elem=elem.firstChild;elem;elem=elem.nextSibling){if(elem.nodeType<6){return false}}return true},parent:function(elem){return!Expr.pseudos["empty"](elem)},header:function(elem){return rheader.test(elem.nodeName)},input:function(elem){return rinputs.test(elem.nodeName)},button:function(elem){var name=elem.nodeName.toLowerCase();return name==="input"&&elem.type==="button"||name==="button"},text:function(elem){var attr;return elem.nodeName.toLowerCase()==="input"&&elem.type==="text"&&((attr=elem.getAttribute("type"))==null||attr.toLowerCase()==="text")},first:createPositionalPseudo(function(){return[0]}),last:createPositionalPseudo(function(matchIndexes,length){return[length-1]}),eq:createPositionalPseudo(function(matchIndexes,length,argument){return[argument<0?argument+length:argument]}),even:createPositionalPseudo(function(matchIndexes,length){var i=0;for(;i<length;i+=2){matchIndexes.push(i)}return matchIndexes}),odd:createPositionalPseudo(function(matchIndexes,length){var i=1;for(;i<length;i+=2){matchIndexes.push(i)}return matchIndexes}),lt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;--i>=0;){matchIndexes.push(i)}return matchIndexes}),gt:createPositionalPseudo(function(matchIndexes,length,argument){var i=argument<0?argument+length:argument;for(;++i<length;){matchIndexes.push(i)}return matchIndexes})}};Expr.pseudos["nth"]=Expr.pseudos["eq"];for(i in{radio:true,checkbox:true,file:true,password:true,image:true}){Expr.pseudos[i]=createInputPseudo(i)}for(i in{submit:true,reset:true}){Expr.pseudos[i]=createButtonPseudo(i)}function setFilters(){}setFilters.prototype=Expr.filters=Expr.pseudos;Expr.setFilters=new setFilters;tokenize=Sizzle.tokenize=function(selector,parseOnly){var matched,match,tokens,type,soFar,groups,preFilters,cached=tokenCache[selector+" "];if(cached){return parseOnly?0:cached.slice(0)}soFar=selector;groups=[];preFilters=Expr.preFilter;while(soFar){if(!matched||(match=rcomma.exec(soFar))){if(match){soFar=soFar.slice(match[0].length)||soFar}groups.push(tokens=[])}matched=false;if(match=rcombinators.exec(soFar)){matched=match.shift();tokens.push({value:matched,type:match[0].replace(rtrim," ")});soFar=soFar.slice(matched.length)}for(type in Expr.filter){if((match=matchExpr[type].exec(soFar))&&(!preFilters[type]||(match=preFilters[type](match)))){matched=match.shift();tokens.push({value:matched,type:type,matches:match});soFar=soFar.slice(matched.length)}}if(!matched){break}}return parseOnly?soFar.length:soFar?Sizzle.error(selector):tokenCache(selector,groups).slice(0)};function toSelector(tokens){var i=0,len=tokens.length,selector="";for(;i<len;i++){selector+=tokens[i].value}return selector}function addCombinator(matcher,combinator,base){var dir=combinator.dir,checkNonElements=base&&dir==="parentNode",doneName=done++;return combinator.first?function(elem,context,xml){while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){return matcher(elem,context,xml)}}}:function(elem,context,xml){var oldCache,uniqueCache,outerCache,newCache=[dirruns,doneName];if(xml){while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){if(matcher(elem,context,xml)){return true}}}}else{while(elem=elem[dir]){if(elem.nodeType===1||checkNonElements){outerCache=elem[expando]||(elem[expando]={});uniqueCache=outerCache[elem.uniqueID]||(outerCache[elem.uniqueID]={});if((oldCache=uniqueCache[dir])&&oldCache[0]===dirruns&&oldCache[1]===doneName){return newCache[2]=oldCache[2]}else{uniqueCache[dir]=newCache;if(newCache[2]=matcher(elem,context,xml)){return true}}}}}}}function elementMatcher(matchers){return matchers.length>1?function(elem,context,xml){var i=matchers.length;while(i--){if(!matchers[i](elem,context,xml)){return false}}return true}:matchers[0]}function multipleContexts(selector,contexts,results){var i=0,len=contexts.length;for(;i<len;i++){Sizzle(selector,contexts[i],results)}return results}function condense(unmatched,map,filter,context,xml){var elem,newUnmatched=[],i=0,len=unmatched.length,mapped=map!=null;for(;i<len;i++){if(elem=unmatched[i]){if(!filter||filter(elem,context,xml)){newUnmatched.push(elem);if(mapped){map.push(i)}}}}return newUnmatched}function setMatcher(preFilter,selector,matcher,postFilter,postFinder,postSelector){if(postFilter&&!postFilter[expando]){postFilter=setMatcher(postFilter)}if(postFinder&&!postFinder[expando]){postFinder=setMatcher(postFinder,postSelector)}return markFunction(function(seed,results,context,xml){var temp,i,elem,preMap=[],postMap=[],preexisting=results.length,elems=seed||multipleContexts(selector||"*",context.nodeType?[context]:context,[]),matcherIn=preFilter&&(seed||!selector)?condense(elems,preMap,preFilter,context,xml):elems,matcherOut=matcher?postFinder||(seed?preFilter:preexisting||postFilter)?[]:results:matcherIn;if(matcher){matcher(matcherIn,matcherOut,context,xml)}if(postFilter){temp=condense(matcherOut,postMap);postFilter(temp,[],context,xml);i=temp.length;while(i--){if(elem=temp[i]){matcherOut[postMap[i]]=!(matcherIn[postMap[i]]=elem)}}}if(seed){if(postFinder||preFilter){if(postFinder){temp=[];i=matcherOut.length;while(i--){if(elem=matcherOut[i]){temp.push(matcherIn[i]=elem)}}postFinder(null,matcherOut=[],temp,xml)}i=matcherOut.length;while(i--){if((elem=matcherOut[i])&&(temp=postFinder?indexOf(seed,elem):preMap[i])>-1){seed[temp]=!(results[temp]=elem)}}}}else{matcherOut=condense(matcherOut===results?matcherOut.splice(preexisting,matcherOut.length):matcherOut);if(postFinder){postFinder(null,results,matcherOut,xml)}else{push.apply(results,matcherOut)}}})}function matcherFromTokens(tokens){var checkContext,matcher,j,len=tokens.length,leadingRelative=Expr.relative[tokens[0].type],implicitRelative=leadingRelative||Expr.relative[" "],i=leadingRelative?1:0,matchContext=addCombinator(function(elem){return elem===checkContext},implicitRelative,true),matchAnyContext=addCombinator(function(elem){return indexOf(checkContext,elem)>-1},implicitRelative,true),matchers=[function(elem,context,xml){
var ret=!leadingRelative&&(xml||context!==outermostContext)||((checkContext=context).nodeType?matchContext(elem,context,xml):matchAnyContext(elem,context,xml));checkContext=null;return ret}];for(;i<len;i++){if(matcher=Expr.relative[tokens[i].type]){matchers=[addCombinator(elementMatcher(matchers),matcher)]}else{matcher=Expr.filter[tokens[i].type].apply(null,tokens[i].matches);if(matcher[expando]){j=++i;for(;j<len;j++){if(Expr.relative[tokens[j].type]){break}}return setMatcher(i>1&&elementMatcher(matchers),i>1&&toSelector(tokens.slice(0,i-1).concat({value:tokens[i-2].type===" "?"*":""})).replace(rtrim,"$1"),matcher,i<j&&matcherFromTokens(tokens.slice(i,j)),j<len&&matcherFromTokens(tokens=tokens.slice(j)),j<len&&toSelector(tokens))}matchers.push(matcher)}}return elementMatcher(matchers)}function matcherFromGroupMatchers(elementMatchers,setMatchers){var bySet=setMatchers.length>0,byElement=elementMatchers.length>0,superMatcher=function(seed,context,xml,results,outermost){var elem,j,matcher,matchedCount=0,i="0",unmatched=seed&&[],setMatched=[],contextBackup=outermostContext,elems=seed||byElement&&Expr.find["TAG"]("*",outermost),dirrunsUnique=dirruns+=contextBackup==null?1:Math.random()||.1,len=elems.length;if(outermost){outermostContext=context===document||context||outermost}for(;i!==len&&(elem=elems[i])!=null;i++){if(byElement&&elem){j=0;if(!context&&elem.ownerDocument!==document){setDocument(elem);xml=!documentIsHTML}while(matcher=elementMatchers[j++]){if(matcher(elem,context||document,xml)){results.push(elem);break}}if(outermost){dirruns=dirrunsUnique}}if(bySet){if(elem=!matcher&&elem){matchedCount--}if(seed){unmatched.push(elem)}}}matchedCount+=i;if(bySet&&i!==matchedCount){j=0;while(matcher=setMatchers[j++]){matcher(unmatched,setMatched,context,xml)}if(seed){if(matchedCount>0){while(i--){if(!(unmatched[i]||setMatched[i])){setMatched[i]=pop.call(results)}}}setMatched=condense(setMatched)}push.apply(results,setMatched);if(outermost&&!seed&&setMatched.length>0&&matchedCount+setMatchers.length>1){Sizzle.uniqueSort(results)}}if(outermost){dirruns=dirrunsUnique;outermostContext=contextBackup}return unmatched};return bySet?markFunction(superMatcher):superMatcher}compile=Sizzle.compile=function(selector,match){var i,setMatchers=[],elementMatchers=[],cached=compilerCache[selector+" "];if(!cached){if(!match){match=tokenize(selector)}i=match.length;while(i--){cached=matcherFromTokens(match[i]);if(cached[expando]){setMatchers.push(cached)}else{elementMatchers.push(cached)}}cached=compilerCache(selector,matcherFromGroupMatchers(elementMatchers,setMatchers));cached.selector=selector}return cached};select=Sizzle.select=function(selector,context,results,seed){var i,tokens,token,type,find,compiled=typeof selector==="function"&&selector,match=!seed&&tokenize(selector=compiled.selector||selector);results=results||[];if(match.length===1){tokens=match[0]=match[0].slice(0);if(tokens.length>2&&(token=tokens[0]).type==="ID"&&support.getById&&context.nodeType===9&&documentIsHTML&&Expr.relative[tokens[1].type]){context=(Expr.find["ID"](token.matches[0].replace(runescape,funescape),context)||[])[0];if(!context){return results}else if(compiled){context=context.parentNode}selector=selector.slice(tokens.shift().value.length)}i=matchExpr["needsContext"].test(selector)?0:tokens.length;while(i--){token=tokens[i];if(Expr.relative[type=token.type]){break}if(find=Expr.find[type]){if(seed=find(token.matches[0].replace(runescape,funescape),rsibling.test(tokens[0].type)&&testContext(context.parentNode)||context)){tokens.splice(i,1);selector=seed.length&&toSelector(tokens);if(!selector){push.apply(results,seed);return results}break}}}}(compiled||compile(selector,match))(seed,context,!documentIsHTML,results,!context||rsibling.test(selector)&&testContext(context.parentNode)||context);return results};support.sortStable=expando.split("").sort(sortOrder).join("")===expando;support.detectDuplicates=!!hasDuplicate;setDocument();support.sortDetached=assert(function(div1){return div1.compareDocumentPosition(document.createElement("div"))&1});if(!assert(function(div){div.innerHTML="<a href='#'></a>";return div.firstChild.getAttribute("href")==="#"})){addHandle("type|href|height|width",function(elem,name,isXML){if(!isXML){return elem.getAttribute(name,name.toLowerCase()==="type"?1:2)}})}if(!support.attributes||!assert(function(div){div.innerHTML="<input/>";div.firstChild.setAttribute("value","");return div.firstChild.getAttribute("value")===""})){addHandle("value",function(elem,name,isXML){if(!isXML&&elem.nodeName.toLowerCase()==="input"){return elem.defaultValue}})}if(!assert(function(div){return div.getAttribute("disabled")==null})){addHandle(booleans,function(elem,name,isXML){var val;if(!isXML){return elem[name]===true?name.toLowerCase():(val=elem.getAttributeNode(name))&&val.specified?val.value:null}})}return Sizzle}(window);jQuery.find=Sizzle;jQuery.expr=Sizzle.selectors;jQuery.expr[":"]=jQuery.expr.pseudos;jQuery.uniqueSort=jQuery.unique=Sizzle.uniqueSort;jQuery.text=Sizzle.getText;jQuery.isXMLDoc=Sizzle.isXML;jQuery.contains=Sizzle.contains;var dir=function(elem,dir,until){var matched=[],truncate=until!==undefined;while((elem=elem[dir])&&elem.nodeType!==9){if(elem.nodeType===1){if(truncate&&jQuery(elem).is(until)){break}matched.push(elem)}}return matched};var siblings=function(n,elem){var matched=[];for(;n;n=n.nextSibling){if(n.nodeType===1&&n!==elem){matched.push(n)}}return matched};var rneedsContext=jQuery.expr.match.needsContext;var rsingleTag=/^<([\w-]+)\s*\/?>(?:<\/\1>|)$/;var risSimple=/^.[^:#\[\.,]*$/;function winnow(elements,qualifier,not){if(jQuery.isFunction(qualifier)){return jQuery.grep(elements,function(elem,i){return!!qualifier.call(elem,i,elem)!==not})}if(qualifier.nodeType){return jQuery.grep(elements,function(elem){return elem===qualifier!==not})}if(typeof qualifier==="string"){if(risSimple.test(qualifier)){return jQuery.filter(qualifier,elements,not)}qualifier=jQuery.filter(qualifier,elements)}return jQuery.grep(elements,function(elem){return indexOf.call(qualifier,elem)>-1!==not})}jQuery.filter=function(expr,elems,not){var elem=elems[0];if(not){expr=":not("+expr+")"}return elems.length===1&&elem.nodeType===1?jQuery.find.matchesSelector(elem,expr)?[elem]:[]:jQuery.find.matches(expr,jQuery.grep(elems,function(elem){return elem.nodeType===1}))};jQuery.fn.extend({find:function(selector){var i,len=this.length,ret=[],self=this;if(typeof selector!=="string"){return this.pushStack(jQuery(selector).filter(function(){for(i=0;i<len;i++){if(jQuery.contains(self[i],this)){return true}}}))}for(i=0;i<len;i++){jQuery.find(selector,self[i],ret)}ret=this.pushStack(len>1?jQuery.unique(ret):ret);ret.selector=this.selector?this.selector+" "+selector:selector;return ret},filter:function(selector){return this.pushStack(winnow(this,selector||[],false))},not:function(selector){return this.pushStack(winnow(this,selector||[],true))},is:function(selector){return!!winnow(this,typeof selector==="string"&&rneedsContext.test(selector)?jQuery(selector):selector||[],false).length}});var rootjQuery,rquickExpr=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,init=jQuery.fn.init=function(selector,context,root){var match,elem;if(!selector){return this}root=root||rootjQuery;if(typeof selector==="string"){if(selector[0]==="<"&&selector[selector.length-1]===">"&&selector.length>=3){match=[null,selector,null]}else{match=rquickExpr.exec(selector)}if(match&&(match[1]||!context)){if(match[1]){context=context instanceof jQuery?context[0]:context;jQuery.merge(this,jQuery.parseHTML(match[1],context&&context.nodeType?context.ownerDocument||context:document,true));if(rsingleTag.test(match[1])&&jQuery.isPlainObject(context)){for(match in context){if(jQuery.isFunction(this[match])){this[match](context[match])}else{this.attr(match,context[match])}}}return this}else{elem=document.getElementById(match[2]);if(elem&&elem.parentNode){this.length=1;this[0]=elem}this.context=document;this.selector=selector;return this}}else if(!context||context.jquery){return(context||root).find(selector)}else{return this.constructor(context).find(selector)}}else if(selector.nodeType){this.context=this[0]=selector;this.length=1;return this}else if(jQuery.isFunction(selector)){return root.ready!==undefined?root.ready(selector):selector(jQuery)}if(selector.selector!==undefined){this.selector=selector.selector;this.context=selector.context}return jQuery.makeArray(selector,this)};init.prototype=jQuery.fn;rootjQuery=jQuery(document);var rparentsprev=/^(?:parents|prev(?:Until|All))/,guaranteedUnique={children:true,contents:true,next:true,prev:true};jQuery.fn.extend({has:function(target){var targets=jQuery(target,this),l=targets.length;return this.filter(function(){var i=0;for(;i<l;i++){if(jQuery.contains(this,targets[i])){return true}}})},closest:function(selectors,context){var cur,i=0,l=this.length,matched=[],pos=rneedsContext.test(selectors)||typeof selectors!=="string"?jQuery(selectors,context||this.context):0;for(;i<l;i++){for(cur=this[i];cur&&cur!==context;cur=cur.parentNode){if(cur.nodeType<11&&(pos?pos.index(cur)>-1:cur.nodeType===1&&jQuery.find.matchesSelector(cur,selectors))){matched.push(cur);break}}}return this.pushStack(matched.length>1?jQuery.uniqueSort(matched):matched)},index:function(elem){if(!elem){return this[0]&&this[0].parentNode?this.first().prevAll().length:-1}if(typeof elem==="string"){return indexOf.call(jQuery(elem),this[0])}return indexOf.call(this,elem.jquery?elem[0]:elem)},add:function(selector,context){return this.pushStack(jQuery.uniqueSort(jQuery.merge(this.get(),jQuery(selector,context))))},addBack:function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector))}});function sibling(cur,dir){while((cur=cur[dir])&&cur.nodeType!==1){}return cur}jQuery.each({parent:function(elem){var parent=elem.parentNode;return parent&&parent.nodeType!==11?parent:null},parents:function(elem){return dir(elem,"parentNode")},parentsUntil:function(elem,i,until){return dir(elem,"parentNode",until)},next:function(elem){return sibling(elem,"nextSibling")},prev:function(elem){return sibling(elem,"previousSibling")},nextAll:function(elem){return dir(elem,"nextSibling")},prevAll:function(elem){return dir(elem,"previousSibling")},nextUntil:function(elem,i,until){return dir(elem,"nextSibling",until)},prevUntil:function(elem,i,until){return dir(elem,"previousSibling",until)},siblings:function(elem){return siblings((elem.parentNode||{}).firstChild,elem)},children:function(elem){return siblings(elem.firstChild)},contents:function(elem){return elem.contentDocument||jQuery.merge([],elem.childNodes)}},function(name,fn){jQuery.fn[name]=function(until,selector){var matched=jQuery.map(this,fn,until);if(name.slice(-5)!=="Until"){selector=until}if(selector&&typeof selector==="string"){matched=jQuery.filter(selector,matched)}if(this.length>1){if(!guaranteedUnique[name]){jQuery.uniqueSort(matched)}if(rparentsprev.test(name)){matched.reverse()}}return this.pushStack(matched)}});var rnotwhite=/\S+/g;function createOptions(options){var object={};jQuery.each(options.match(rnotwhite)||[],function(_,flag){object[flag]=true});return object}jQuery.Callbacks=function(options){options=typeof options==="string"?createOptions(options):jQuery.extend({},options);var firing,memory,fired,locked,list=[],queue=[],firingIndex=-1,fire=function(){locked=options.once;fired=firing=true;for(;queue.length;firingIndex=-1){memory=queue.shift();while(++firingIndex<list.length){if(list[firingIndex].apply(memory[0],memory[1])===false&&options.stopOnFalse){firingIndex=list.length;memory=false}}}if(!options.memory){memory=false}firing=false;if(locked){if(memory){list=[]}else{list=""}}},self={add:function(){if(list){if(memory&&!firing){firingIndex=list.length-1;queue.push(memory)}(function add(args){jQuery.each(args,function(_,arg){if(jQuery.isFunction(arg)){if(!options.unique||!self.has(arg)){list.push(arg)}}else if(arg&&arg.length&&jQuery.type(arg)!=="string"){add(arg)}})})(arguments);if(memory&&!firing){fire()}}return this},remove:function(){jQuery.each(arguments,function(_,arg){var index;while((index=jQuery.inArray(arg,list,index))>-1){list.splice(index,1);if(index<=firingIndex){firingIndex--}}});return this},has:function(fn){return fn?jQuery.inArray(fn,list)>-1:list.length>0},empty:function(){if(list){list=[]}return this},disable:function(){locked=queue=[];list=memory="";return this},disabled:function(){return!list},lock:function(){locked=queue=[];if(!memory){list=memory=""}return this},locked:function(){return!!locked},fireWith:function(context,args){if(!locked){args=args||[];args=[context,args.slice?args.slice():args];queue.push(args);if(!firing){fire()}}return this},fire:function(){self.fireWith(this,arguments);return this},fired:function(){return!!fired}};return self};jQuery.extend({Deferred:function(func){var tuples=[["resolve","done",jQuery.Callbacks("once memory"),"resolved"],["reject","fail",jQuery.Callbacks("once memory"),"rejected"],["notify","progress",jQuery.Callbacks("memory")]],state="pending",promise={state:function(){return state},always:function(){deferred.done(arguments).fail(arguments);return this},then:function(){var fns=arguments;return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[i])&&fns[i];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().progress(newDefer.notify).done(newDefer.resolve).fail(newDefer.reject)}else{newDefer[tuple[0]+"With"](this===promise?newDefer.promise():this,fn?[returned]:arguments)}})});fns=null}).promise()},promise:function(obj){return obj!=null?jQuery.extend(obj,promise):promise}},deferred={};promise.pipe=promise.then;jQuery.each(tuples,function(i,tuple){var list=tuple[2],stateString=tuple[3];promise[tuple[1]]=list.add;if(stateString){list.add(function(){state=stateString},tuples[i^1][2].disable,tuples[2][2].lock)}deferred[tuple[0]]=function(){deferred[tuple[0]+"With"](this===deferred?promise:this,arguments);return this};deferred[tuple[0]+"With"]=list.fireWith});promise.promise(deferred);if(func){func.call(deferred,deferred)}return deferred},when:function(subordinate){var i=0,resolveValues=slice.call(arguments),length=resolveValues.length,remaining=length!==1||subordinate&&jQuery.isFunction(subordinate.promise)?length:0,deferred=remaining===1?subordinate:jQuery.Deferred(),updateFunc=function(i,contexts,values){return function(value){contexts[i]=this;values[i]=arguments.length>1?slice.call(arguments):value;if(values===progressValues){deferred.notifyWith(contexts,values)}else if(!--remaining){deferred.resolveWith(contexts,values)}}},progressValues,progressContexts,resolveContexts;if(length>1){progressValues=new Array(length);progressContexts=new Array(length);resolveContexts=new Array(length);for(;i<length;i++){if(resolveValues[i]&&jQuery.isFunction(resolveValues[i].promise)){resolveValues[i].promise().progress(updateFunc(i,progressContexts,progressValues)).done(updateFunc(i,resolveContexts,resolveValues)).fail(deferred.reject)}else{--remaining}}}if(!remaining){deferred.resolveWith(resolveContexts,resolveValues)}return deferred.promise()}});var readyList;jQuery.fn.ready=function(fn){jQuery.ready.promise().done(fn);return this};jQuery.extend({isReady:false,readyWait:1,holdReady:function(hold){if(hold){jQuery.readyWait++}else{jQuery.ready(true)}},ready:function(wait){if(wait===true?--jQuery.readyWait:jQuery.isReady){return}jQuery.isReady=true;if(wait!==true&&--jQuery.readyWait>0){return}readyList.resolveWith(document,[jQuery]);if(jQuery.fn.triggerHandler){jQuery(document).triggerHandler("ready");jQuery(document).off("ready")}}});function completed(){document.removeEventListener("DOMContentLoaded",completed);window.removeEventListener("load",completed);jQuery.ready()}jQuery.ready.promise=function(obj){if(!readyList){readyList=jQuery.Deferred();if(document.readyState==="complete"||document.readyState!=="loading"&&!document.documentElement.doScroll){window.setTimeout(jQuery.ready)}else{document.addEventListener("DOMContentLoaded",completed);window.addEventListener("load",completed)}}return readyList.promise(obj)};jQuery.ready.promise();var access=function(elems,fn,key,value,chainable,emptyGet,raw){var i=0,len=elems.length,bulk=key==null;if(jQuery.type(key)==="object"){chainable=true;for(i in key){access(elems,fn,i,key[i],true,emptyGet,raw)}}else if(value!==undefined){chainable=true;if(!jQuery.isFunction(value)){raw=true}if(bulk){if(raw){fn.call(elems,value);fn=null}else{bulk=fn;fn=function(elem,key,value){return bulk.call(jQuery(elem),value)}}}if(fn){for(;i<len;i++){fn(elems[i],key,raw?value:value.call(elems[i],i,fn(elems[i],key)))}}}return chainable?elems:bulk?fn.call(elems):len?fn(elems[0],key):emptyGet};var acceptData=function(owner){return owner.nodeType===1||owner.nodeType===9||!+owner.nodeType};function Data(){this.expando=jQuery.expando+Data.uid++}Data.uid=1;Data.prototype={register:function(owner,initial){var value=initial||{};if(owner.nodeType){owner[this.expando]=value}else{Object.defineProperty(owner,this.expando,{value:value,writable:true,configurable:true})}return owner[this.expando]},cache:function(owner){if(!acceptData(owner)){return{}}var value=owner[this.expando];if(!value){value={};if(acceptData(owner)){if(owner.nodeType){owner[this.expando]=value}else{Object.defineProperty(owner,this.expando,{value:value,configurable:true})}}}return value},set:function(owner,data,value){var prop,cache=this.cache(owner);if(typeof data==="string"){cache[data]=value}else{for(prop in data){cache[prop]=data[prop]}}return cache},get:function(owner,key){return key===undefined?this.cache(owner):owner[this.expando]&&owner[this.expando][key]},access:function(owner,key,value){var stored;if(key===undefined||key&&typeof key==="string"&&value===undefined){stored=this.get(owner,key);return stored!==undefined?stored:this.get(owner,jQuery.camelCase(key))}this.set(owner,key,value);return value!==undefined?value:key},remove:function(owner,key){var i,name,camel,cache=owner[this.expando];if(cache===undefined){return}if(key===undefined){this.register(owner)}else{if(jQuery.isArray(key)){name=key.concat(key.map(jQuery.camelCase))}else{camel=jQuery.camelCase(key);if(key in cache){name=[key,camel]}else{name=camel;name=name in cache?[name]:name.match(rnotwhite)||[]}}i=name.length;while(i--){delete cache[name[i]]}}if(key===undefined||jQuery.isEmptyObject(cache)){if(owner.nodeType){owner[this.expando]=undefined}else{delete owner[this.expando]}}},hasData:function(owner){var cache=owner[this.expando];return cache!==undefined&&!jQuery.isEmptyObject(cache)}};var dataPriv=new Data;var dataUser=new Data;var rbrace=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,rmultiDash=/[A-Z]/g;function dataAttr(elem,key,data){var name;if(data===undefined&&elem.nodeType===1){name="data-"+key.replace(rmultiDash,"-$&").toLowerCase();data=elem.getAttribute(name);if(typeof data==="string"){try{data=data==="true"?true:data==="false"?false:data==="null"?null:+data+""===data?+data:rbrace.test(data)?jQuery.parseJSON(data):data}catch(e){}dataUser.set(elem,key,data)}else{data=undefined}}return data}jQuery.extend({hasData:function(elem){return dataUser.hasData(elem)||dataPriv.hasData(elem)},data:function(elem,name,data){return dataUser.access(elem,name,data)},removeData:function(elem,name){dataUser.remove(elem,name)},_data:function(elem,name,data){return dataPriv.access(elem,name,data)},_removeData:function(elem,name){dataPriv.remove(elem,name)}});jQuery.fn.extend({data:function(key,value){var i,name,data,elem=this[0],attrs=elem&&elem.attributes;if(key===undefined){if(this.length){data=dataUser.get(elem);if(elem.nodeType===1&&!dataPriv.get(elem,"hasDataAttrs")){i=attrs.length;while(i--){if(attrs[i]){name=attrs[i].name;if(name.indexOf("data-")===0){name=jQuery.camelCase(name.slice(5));dataAttr(elem,name,data[name])}}}dataPriv.set(elem,"hasDataAttrs",true)}}return data}if(typeof key==="object"){return this.each(function(){dataUser.set(this,key)})}return access(this,function(value){var data,camelKey;if(elem&&value===undefined){data=dataUser.get(elem,key)||dataUser.get(elem,key.replace(rmultiDash,"-$&").toLowerCase());if(data!==undefined){return data}camelKey=jQuery.camelCase(key);data=dataUser.get(elem,camelKey);if(data!==undefined){return data}data=dataAttr(elem,camelKey,undefined);if(data!==undefined){return data}return}camelKey=jQuery.camelCase(key);this.each(function(){var data=dataUser.get(this,camelKey);dataUser.set(this,camelKey,value);if(key.indexOf("-")>-1&&data!==undefined){dataUser.set(this,key,value)}})},null,value,arguments.length>1,null,true)},removeData:function(key){return this.each(function(){dataUser.remove(this,key)})}});jQuery.extend({queue:function(elem,type,data){var queue;if(elem){type=(type||"fx")+"queue";queue=dataPriv.get(elem,type);if(data){if(!queue||jQuery.isArray(data)){queue=dataPriv.access(elem,type,jQuery.makeArray(data))}else{queue.push(data)}}return queue||[]}},dequeue:function(elem,type){type=type||"fx";var queue=jQuery.queue(elem,type),startLength=queue.length,fn=queue.shift(),hooks=jQuery._queueHooks(elem,type),next=function(){jQuery.dequeue(elem,type)};if(fn==="inprogress"){fn=queue.shift();startLength--}if(fn){if(type==="fx"){queue.unshift("inprogress")}delete hooks.stop;fn.call(elem,next,hooks)}if(!startLength&&hooks){hooks.empty.fire()}},_queueHooks:function(elem,type){var key=type+"queueHooks";return dataPriv.get(elem,key)||dataPriv.access(elem,key,{empty:jQuery.Callbacks("once memory").add(function(){dataPriv.remove(elem,[type+"queue",key])})})}});jQuery.fn.extend({queue:function(type,data){var setter=2;if(typeof type!=="string"){data=type;type="fx";setter--}if(arguments.length<setter){return jQuery.queue(this[0],type)}return data===undefined?this:this.each(function(){var queue=jQuery.queue(this,type,data);jQuery._queueHooks(this,type);if(type==="fx"&&queue[0]!=="inprogress"){jQuery.dequeue(this,type)}})},dequeue:function(type){return this.each(function(){jQuery.dequeue(this,type)})},clearQueue:function(type){return this.queue(type||"fx",[])},promise:function(type,obj){var tmp,count=1,defer=jQuery.Deferred(),elements=this,i=this.length,resolve=function(){if(!--count){defer.resolveWith(elements,[elements])}};if(typeof type!=="string"){obj=type;type=undefined}type=type||"fx";while(i--){tmp=dataPriv.get(elements[i],type+"queueHooks");if(tmp&&tmp.empty){count++;tmp.empty.add(resolve)}}resolve();return defer.promise(obj)}});var pnum=/[+-]?(?:\d*\.|)\d+(?:[eE][+-]?\d+|)/.source;var rcssNum=new RegExp("^(?:([+-])=|)("+pnum+")([a-z%]*)$","i");var cssExpand=["Top","Right","Bottom","Left"];var isHidden=function(elem,el){elem=el||elem;return jQuery.css(elem,"display")==="none"||!jQuery.contains(elem.ownerDocument,elem)};function adjustCSS(elem,prop,valueParts,tween){var adjusted,scale=1,maxIterations=20,currentValue=tween?function(){return tween.cur()}:function(){return jQuery.css(elem,prop,"")},initial=currentValue(),unit=valueParts&&valueParts[3]||(jQuery.cssNumber[prop]?"":"px"),initialInUnit=(jQuery.cssNumber[prop]||unit!=="px"&&+initial)&&rcssNum.exec(jQuery.css(elem,prop));if(initialInUnit&&initialInUnit[3]!==unit){unit=unit||initialInUnit[3];valueParts=valueParts||[];initialInUnit=+initial||1;do{scale=scale||".5";initialInUnit=initialInUnit/scale;jQuery.style(elem,prop,initialInUnit+unit)}while(scale!==(scale=currentValue()/initial)&&scale!==1&&--maxIterations)}if(valueParts){initialInUnit=+initialInUnit||+initial||0;adjusted=valueParts[1]?initialInUnit+(valueParts[1]+1)*valueParts[2]:+valueParts[2];if(tween){tween.unit=unit;tween.start=initialInUnit;tween.end=adjusted}}return adjusted}var rcheckableType=/^(?:checkbox|radio)$/i;var rtagName=/<([\w:-]+)/;var rscriptType=/^$|\/(?:java|ecma)script/i;var wrapMap={option:[1,"<select multiple='multiple'>","</select>"],thead:[1,"<table>","</table>"],col:[2,"<table><colgroup>","</colgroup></table>"],tr:[2,"<table><tbody>","</tbody></table>"],td:[3,"<table><tbody><tr>","</tr></tbody></table>"],_default:[0,"",""]};wrapMap.optgroup=wrapMap.option;wrapMap.tbody=wrapMap.tfoot=wrapMap.colgroup=wrapMap.caption=wrapMap.thead;wrapMap.th=wrapMap.td;function getAll(context,tag){var ret=typeof context.getElementsByTagName!=="undefined"?context.getElementsByTagName(tag||"*"):typeof context.querySelectorAll!=="undefined"?context.querySelectorAll(tag||"*"):[];return tag===undefined||tag&&jQuery.nodeName(context,tag)?jQuery.merge([context],ret):ret}function setGlobalEval(elems,refElements){var i=0,l=elems.length;for(;i<l;i++){dataPriv.set(elems[i],"globalEval",!refElements||dataPriv.get(refElements[i],"globalEval"))}}var rhtml=/<|&#?\w+;/;function buildFragment(elems,context,scripts,selection,ignored){var elem,tmp,tag,wrap,contains,j,fragment=context.createDocumentFragment(),nodes=[],i=0,l=elems.length;for(;i<l;i++){elem=elems[i];if(elem||elem===0){if(jQuery.type(elem)==="object"){jQuery.merge(nodes,elem.nodeType?[elem]:elem)}else if(!rhtml.test(elem)){nodes.push(context.createTextNode(elem))}else{tmp=tmp||fragment.appendChild(context.createElement("div"));tag=(rtagName.exec(elem)||["",""])[1].toLowerCase();wrap=wrapMap[tag]||wrapMap._default;tmp.innerHTML=wrap[1]+jQuery.htmlPrefilter(elem)+wrap[2];j=wrap[0];while(j--){tmp=tmp.lastChild}jQuery.merge(nodes,tmp.childNodes);tmp=fragment.firstChild;tmp.textContent=""}}}fragment.textContent="";i=0;while(elem=nodes[i++]){if(selection&&jQuery.inArray(elem,selection)>-1){if(ignored){ignored.push(elem)}continue}contains=jQuery.contains(elem.ownerDocument,elem);tmp=getAll(fragment.appendChild(elem),"script");if(contains){setGlobalEval(tmp)}if(scripts){j=0;while(elem=tmp[j++]){if(rscriptType.test(elem.type||"")){scripts.push(elem)}}}}return fragment}(function(){var fragment=document.createDocumentFragment(),div=fragment.appendChild(document.createElement("div")),input=document.createElement("input");input.setAttribute("type","radio");input.setAttribute("checked","checked");input.setAttribute("name","t");div.appendChild(input);support.checkClone=div.cloneNode(true).cloneNode(true).lastChild.checked;div.innerHTML="<textarea>x</textarea>";support.noCloneChecked=!!div.cloneNode(true).lastChild.defaultValue})();var rkeyEvent=/^key/,rmouseEvent=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,rtypenamespace=/^([^.]*)(?:\.(.+)|)/;function returnTrue(){return true}function returnFalse(){return false}function safeActiveElement(){try{return document.activeElement}catch(err){}}function on(elem,types,selector,data,fn,one){var origFn,type;if(typeof types==="object"){if(typeof selector!=="string"){data=data||selector;selector=undefined}for(type in types){on(elem,type,selector,data,types[type],one)}return elem}if(data==null&&fn==null){fn=selector;data=selector=undefined}else if(fn==null){if(typeof selector==="string"){fn=data;data=undefined}else{fn=data;data=selector;selector=undefined}}if(fn===false){fn=returnFalse}else if(!fn){return elem}if(one===1){origFn=fn;fn=function(event){jQuery().off(event);return origFn.apply(this,arguments)};fn.guid=origFn.guid||(origFn.guid=jQuery.guid++)}return elem.each(function(){jQuery.event.add(this,types,fn,data,selector)})}jQuery.event={global:{},add:function(elem,types,handler,data,selector){var handleObjIn,eventHandle,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.get(elem);if(!elemData){return}if(handler.handler){handleObjIn=handler;handler=handleObjIn.handler;selector=handleObjIn.selector}if(!handler.guid){handler.guid=jQuery.guid++}if(!(events=elemData.events)){events=elemData.events={}}if(!(eventHandle=elemData.handle)){eventHandle=elemData.handle=function(e){return typeof jQuery!=="undefined"&&jQuery.event.triggered!==e.type?jQuery.event.dispatch.apply(elem,arguments):undefined}}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){continue}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;special=jQuery.event.special[type]||{};handleObj=jQuery.extend({type:type,origType:origType,data:data,handler:handler,guid:handler.guid,selector:selector,needsContext:selector&&jQuery.expr.match.needsContext.test(selector),namespace:namespaces.join(".")},handleObjIn);if(!(handlers=events[type])){handlers=events[type]=[];handlers.delegateCount=0;if(!special.setup||special.setup.call(elem,data,namespaces,eventHandle)===false){if(elem.addEventListener){elem.addEventListener(type,eventHandle)}}}if(special.add){special.add.call(elem,handleObj);if(!handleObj.handler.guid){handleObj.handler.guid=handler.guid}}if(selector){handlers.splice(handlers.delegateCount++,0,handleObj)}else{handlers.push(handleObj)}jQuery.event.global[type]=true}},remove:function(elem,types,handler,selector,mappedTypes){var j,origCount,tmp,events,t,handleObj,special,handlers,type,namespaces,origType,elemData=dataPriv.hasData(elem)&&dataPriv.get(elem);if(!elemData||!(events=elemData.events)){return}types=(types||"").match(rnotwhite)||[""];t=types.length;while(t--){tmp=rtypenamespace.exec(types[t])||[];type=origType=tmp[1];namespaces=(tmp[2]||"").split(".").sort();if(!type){for(type in events){jQuery.event.remove(elem,type+types[t],handler,selector,true)}continue}special=jQuery.event.special[type]||{};type=(selector?special.delegateType:special.bindType)||type;handlers=events[type]||[];tmp=tmp[2]&&new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)");origCount=j=handlers.length;while(j--){handleObj=handlers[j];if((mappedTypes||origType===handleObj.origType)&&(!handler||handler.guid===handleObj.guid)&&(!tmp||tmp.test(handleObj.namespace))&&(!selector||selector===handleObj.selector||selector==="**"&&handleObj.selector)){handlers.splice(j,1);if(handleObj.selector){handlers.delegateCount--}if(special.remove){special.remove.call(elem,handleObj)}}}if(origCount&&!handlers.length){if(!special.teardown||special.teardown.call(elem,namespaces,elemData.handle)===false){jQuery.removeEvent(elem,type,elemData.handle)}delete events[type]}}if(jQuery.isEmptyObject(events)){dataPriv.remove(elem,"handle events")}},dispatch:function(event){event=jQuery.event.fix(event);var i,j,ret,matched,handleObj,handlerQueue=[],args=slice.call(arguments),handlers=(dataPriv.get(this,"events")||{})[event.type]||[],special=jQuery.event.special[event.type]||{};args[0]=event;event.delegateTarget=this;if(special.preDispatch&&special.preDispatch.call(this,event)===false){return}handlerQueue=jQuery.event.handlers.call(this,event,handlers);i=0;while((matched=handlerQueue[i++])&&!event.isPropagationStopped()){event.currentTarget=matched.elem;j=0;while((handleObj=matched.handlers[j++])&&!event.isImmediatePropagationStopped()){if(!event.rnamespace||event.rnamespace.test(handleObj.namespace)){event.handleObj=handleObj;event.data=handleObj.data;ret=((jQuery.event.special[handleObj.origType]||{}).handle||handleObj.handler).apply(matched.elem,args);if(ret!==undefined){if((event.result=ret)===false){event.preventDefault();event.stopPropagation()}}}}}if(special.postDispatch){special.postDispatch.call(this,event)}return event.result},handlers:function(event,handlers){var i,matches,sel,handleObj,handlerQueue=[],delegateCount=handlers.delegateCount,cur=event.target;if(delegateCount&&cur.nodeType&&(event.type!=="click"||isNaN(event.button)||event.button<1)){for(;cur!==this;cur=cur.parentNode||this){if(cur.nodeType===1&&(cur.disabled!==true||event.type!=="click")){matches=[];for(i=0;i<delegateCount;i++){handleObj=handlers[i];sel=handleObj.selector+" ";if(matches[sel]===undefined){matches[sel]=handleObj.needsContext?jQuery(sel,this).index(cur)>-1:jQuery.find(sel,this,null,[cur]).length}if(matches[sel]){matches.push(handleObj)}}if(matches.length){handlerQueue.push({elem:cur,handlers:matches})}}}}if(delegateCount<handlers.length){handlerQueue.push({elem:this,handlers:handlers.slice(delegateCount)})}return handlerQueue},
props:("altKey bubbles cancelable ctrlKey currentTarget detail eventPhase "+"metaKey relatedTarget shiftKey target timeStamp view which").split(" "),fixHooks:{},keyHooks:{props:"char charCode key keyCode".split(" "),filter:function(event,original){if(event.which==null){event.which=original.charCode!=null?original.charCode:original.keyCode}return event}},mouseHooks:{props:("button buttons clientX clientY offsetX offsetY pageX pageY "+"screenX screenY toElement").split(" "),filter:function(event,original){var eventDoc,doc,body,button=original.button;if(event.pageX==null&&original.clientX!=null){eventDoc=event.target.ownerDocument||document;doc=eventDoc.documentElement;body=eventDoc.body;event.pageX=original.clientX+(doc&&doc.scrollLeft||body&&body.scrollLeft||0)-(doc&&doc.clientLeft||body&&body.clientLeft||0);event.pageY=original.clientY+(doc&&doc.scrollTop||body&&body.scrollTop||0)-(doc&&doc.clientTop||body&&body.clientTop||0)}if(!event.which&&button!==undefined){event.which=button&1?1:button&2?3:button&4?2:0}return event}},fix:function(event){if(event[jQuery.expando]){return event}var i,prop,copy,type=event.type,originalEvent=event,fixHook=this.fixHooks[type];if(!fixHook){this.fixHooks[type]=fixHook=rmouseEvent.test(type)?this.mouseHooks:rkeyEvent.test(type)?this.keyHooks:{}}copy=fixHook.props?this.props.concat(fixHook.props):this.props;event=new jQuery.Event(originalEvent);i=copy.length;while(i--){prop=copy[i];event[prop]=originalEvent[prop]}if(!event.target){event.target=document}if(event.target.nodeType===3){event.target=event.target.parentNode}return fixHook.filter?fixHook.filter(event,originalEvent):event},special:{load:{noBubble:true},focus:{trigger:function(){if(this!==safeActiveElement()&&this.focus){this.focus();return false}},delegateType:"focusin"},blur:{trigger:function(){if(this===safeActiveElement()&&this.blur){this.blur();return false}},delegateType:"focusout"},click:{trigger:function(){if(this.type==="checkbox"&&this.click&&jQuery.nodeName(this,"input")){this.click();return false}},_default:function(event){return jQuery.nodeName(event.target,"a")}},beforeunload:{postDispatch:function(event){if(event.result!==undefined&&event.originalEvent){event.originalEvent.returnValue=event.result}}}}};jQuery.removeEvent=function(elem,type,handle){if(elem.removeEventListener){elem.removeEventListener(type,handle)}};jQuery.Event=function(src,props){if(!(this instanceof jQuery.Event)){return new jQuery.Event(src,props)}if(src&&src.type){this.originalEvent=src;this.type=src.type;this.isDefaultPrevented=src.defaultPrevented||src.defaultPrevented===undefined&&src.returnValue===false?returnTrue:returnFalse}else{this.type=src}if(props){jQuery.extend(this,props)}this.timeStamp=src&&src.timeStamp||jQuery.now();this[jQuery.expando]=true};jQuery.Event.prototype={constructor:jQuery.Event,isDefaultPrevented:returnFalse,isPropagationStopped:returnFalse,isImmediatePropagationStopped:returnFalse,isSimulated:false,preventDefault:function(){var e=this.originalEvent;this.isDefaultPrevented=returnTrue;if(e&&!this.isSimulated){e.preventDefault()}},stopPropagation:function(){var e=this.originalEvent;this.isPropagationStopped=returnTrue;if(e&&!this.isSimulated){e.stopPropagation()}},stopImmediatePropagation:function(){var e=this.originalEvent;this.isImmediatePropagationStopped=returnTrue;if(e&&!this.isSimulated){e.stopImmediatePropagation()}this.stopPropagation()}};jQuery.each({mouseenter:"mouseover",mouseleave:"mouseout",pointerenter:"pointerover",pointerleave:"pointerout"},function(orig,fix){jQuery.event.special[orig]={delegateType:fix,bindType:fix,handle:function(event){var ret,target=this,related=event.relatedTarget,handleObj=event.handleObj;if(!related||related!==target&&!jQuery.contains(target,related)){event.type=handleObj.origType;ret=handleObj.handler.apply(this,arguments);event.type=fix}return ret}}});jQuery.fn.extend({on:function(types,selector,data,fn){return on(this,types,selector,data,fn)},one:function(types,selector,data,fn){return on(this,types,selector,data,fn,1)},off:function(types,selector,fn){var handleObj,type;if(types&&types.preventDefault&&types.handleObj){handleObj=types.handleObj;jQuery(types.delegateTarget).off(handleObj.namespace?handleObj.origType+"."+handleObj.namespace:handleObj.origType,handleObj.selector,handleObj.handler);return this}if(typeof types==="object"){for(type in types){this.off(type,selector,types[type])}return this}if(selector===false||typeof selector==="function"){fn=selector;selector=undefined}if(fn===false){fn=returnFalse}return this.each(function(){jQuery.event.remove(this,types,fn,selector)})}});var rxhtmlTag=/<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:-]+)[^>]*)\/>/gi,rnoInnerhtml=/<script|<style|<link/i,rchecked=/checked\s*(?:[^=]|=\s*.checked.)/i,rscriptTypeMasked=/^true\/(.*)/,rcleanScript=/^\s*<!(?:\[CDATA\[|--)|(?:\]\]|--)>\s*$/g;function manipulationTarget(elem,content){return jQuery.nodeName(elem,"table")&&jQuery.nodeName(content.nodeType!==11?content:content.firstChild,"tr")?elem.getElementsByTagName("tbody")[0]||elem.appendChild(elem.ownerDocument.createElement("tbody")):elem}function disableScript(elem){elem.type=(elem.getAttribute("type")!==null)+"/"+elem.type;return elem}function restoreScript(elem){var match=rscriptTypeMasked.exec(elem.type);if(match){elem.type=match[1]}else{elem.removeAttribute("type")}return elem}function cloneCopyEvent(src,dest){var i,l,type,pdataOld,pdataCur,udataOld,udataCur,events;if(dest.nodeType!==1){return}if(dataPriv.hasData(src)){pdataOld=dataPriv.access(src);pdataCur=dataPriv.set(dest,pdataOld);events=pdataOld.events;if(events){delete pdataCur.handle;pdataCur.events={};for(type in events){for(i=0,l=events[type].length;i<l;i++){jQuery.event.add(dest,type,events[type][i])}}}}if(dataUser.hasData(src)){udataOld=dataUser.access(src);udataCur=jQuery.extend({},udataOld);dataUser.set(dest,udataCur)}}function fixInput(src,dest){var nodeName=dest.nodeName.toLowerCase();if(nodeName==="input"&&rcheckableType.test(src.type)){dest.checked=src.checked}else if(nodeName==="input"||nodeName==="textarea"){dest.defaultValue=src.defaultValue}}function domManip(collection,args,callback,ignored){args=concat.apply([],args);var fragment,first,scripts,hasScripts,node,doc,i=0,l=collection.length,iNoClone=l-1,value=args[0],isFunction=jQuery.isFunction(value);if(isFunction||l>1&&typeof value==="string"&&!support.checkClone&&rchecked.test(value)){return collection.each(function(index){var self=collection.eq(index);if(isFunction){args[0]=value.call(this,index,self.html())}domManip(self,args,callback,ignored)})}if(l){fragment=buildFragment(args,collection[0].ownerDocument,false,collection,ignored);first=fragment.firstChild;if(fragment.childNodes.length===1){fragment=first}if(first||ignored){scripts=jQuery.map(getAll(fragment,"script"),disableScript);hasScripts=scripts.length;for(;i<l;i++){node=fragment;if(i!==iNoClone){node=jQuery.clone(node,true,true);if(hasScripts){jQuery.merge(scripts,getAll(node,"script"))}}callback.call(collection[i],node,i)}if(hasScripts){doc=scripts[scripts.length-1].ownerDocument;jQuery.map(scripts,restoreScript);for(i=0;i<hasScripts;i++){node=scripts[i];if(rscriptType.test(node.type||"")&&!dataPriv.access(node,"globalEval")&&jQuery.contains(doc,node)){if(node.src){if(jQuery._evalUrl){jQuery._evalUrl(node.src)}}else{jQuery.globalEval(node.textContent.replace(rcleanScript,""))}}}}}}return collection}function remove(elem,selector,keepData){var node,nodes=selector?jQuery.filter(selector,elem):elem,i=0;for(;(node=nodes[i])!=null;i++){if(!keepData&&node.nodeType===1){jQuery.cleanData(getAll(node))}if(node.parentNode){if(keepData&&jQuery.contains(node.ownerDocument,node)){setGlobalEval(getAll(node,"script"))}node.parentNode.removeChild(node)}}return elem}jQuery.extend({htmlPrefilter:function(html){return html.replace(rxhtmlTag,"<$1></$2>")},clone:function(elem,dataAndEvents,deepDataAndEvents){var i,l,srcElements,destElements,clone=elem.cloneNode(true),inPage=jQuery.contains(elem.ownerDocument,elem);if(!support.noCloneChecked&&(elem.nodeType===1||elem.nodeType===11)&&!jQuery.isXMLDoc(elem)){destElements=getAll(clone);srcElements=getAll(elem);for(i=0,l=srcElements.length;i<l;i++){fixInput(srcElements[i],destElements[i])}}if(dataAndEvents){if(deepDataAndEvents){srcElements=srcElements||getAll(elem);destElements=destElements||getAll(clone);for(i=0,l=srcElements.length;i<l;i++){cloneCopyEvent(srcElements[i],destElements[i])}}else{cloneCopyEvent(elem,clone)}}destElements=getAll(clone,"script");if(destElements.length>0){setGlobalEval(destElements,!inPage&&getAll(elem,"script"))}return clone},cleanData:function(elems){var data,elem,type,special=jQuery.event.special,i=0;for(;(elem=elems[i])!==undefined;i++){if(acceptData(elem)){if(data=elem[dataPriv.expando]){if(data.events){for(type in data.events){if(special[type]){jQuery.event.remove(elem,type)}else{jQuery.removeEvent(elem,type,data.handle)}}}elem[dataPriv.expando]=undefined}if(elem[dataUser.expando]){elem[dataUser.expando]=undefined}}}}});jQuery.fn.extend({domManip:domManip,detach:function(selector){return remove(this,selector,true)},remove:function(selector){return remove(this,selector)},text:function(value){return access(this,function(value){return value===undefined?jQuery.text(this):this.empty().each(function(){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){this.textContent=value}})},null,value,arguments.length)},append:function(){return domManip(this,arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.appendChild(elem)}})},prepend:function(){return domManip(this,arguments,function(elem){if(this.nodeType===1||this.nodeType===11||this.nodeType===9){var target=manipulationTarget(this,elem);target.insertBefore(elem,target.firstChild)}})},before:function(){return domManip(this,arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this)}})},after:function(){return domManip(this,arguments,function(elem){if(this.parentNode){this.parentNode.insertBefore(elem,this.nextSibling)}})},empty:function(){var elem,i=0;for(;(elem=this[i])!=null;i++){if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.textContent=""}}return this},clone:function(dataAndEvents,deepDataAndEvents){dataAndEvents=dataAndEvents==null?false:dataAndEvents;deepDataAndEvents=deepDataAndEvents==null?dataAndEvents:deepDataAndEvents;return this.map(function(){return jQuery.clone(this,dataAndEvents,deepDataAndEvents)})},html:function(value){return access(this,function(value){var elem=this[0]||{},i=0,l=this.length;if(value===undefined&&elem.nodeType===1){return elem.innerHTML}if(typeof value==="string"&&!rnoInnerhtml.test(value)&&!wrapMap[(rtagName.exec(value)||["",""])[1].toLowerCase()]){value=jQuery.htmlPrefilter(value);try{for(;i<l;i++){elem=this[i]||{};if(elem.nodeType===1){jQuery.cleanData(getAll(elem,false));elem.innerHTML=value}}elem=0}catch(e){}}if(elem){this.empty().append(value)}},null,value,arguments.length)},replaceWith:function(){var ignored=[];return domManip(this,arguments,function(elem){var parent=this.parentNode;if(jQuery.inArray(this,ignored)<0){jQuery.cleanData(getAll(this));if(parent){parent.replaceChild(elem,this)}}},ignored)}});jQuery.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(name,original){jQuery.fn[name]=function(selector){var elems,ret=[],insert=jQuery(selector),last=insert.length-1,i=0;for(;i<=last;i++){elems=i===last?this:this.clone(true);jQuery(insert[i])[original](elems);push.apply(ret,elems.get())}return this.pushStack(ret)}});var iframe,elemdisplay={HTML:"block",BODY:"block"};function actualDisplay(name,doc){var elem=jQuery(doc.createElement(name)).appendTo(doc.body),display=jQuery.css(elem[0],"display");elem.detach();return display}function defaultDisplay(nodeName){var doc=document,display=elemdisplay[nodeName];if(!display){display=actualDisplay(nodeName,doc);if(display==="none"||!display){iframe=(iframe||jQuery("<iframe frameborder='0' width='0' height='0'/>")).appendTo(doc.documentElement);doc=iframe[0].contentDocument;doc.write();doc.close();display=actualDisplay(nodeName,doc);iframe.detach()}elemdisplay[nodeName]=display}return display}var rmargin=/^margin/;var rnumnonpx=new RegExp("^("+pnum+")(?!px)[a-z%]+$","i");var getStyles=function(elem){var view=elem.ownerDocument.defaultView;if(!view||!view.opener){view=window}return view.getComputedStyle(elem)};var swap=function(elem,options,callback,args){var ret,name,old={};for(name in options){old[name]=elem.style[name];elem.style[name]=options[name]}ret=callback.apply(elem,args||[]);for(name in options){elem.style[name]=old[name]}return ret};var documentElement=document.documentElement;(function(){var pixelPositionVal,boxSizingReliableVal,pixelMarginRightVal,reliableMarginLeftVal,container=document.createElement("div"),div=document.createElement("div");if(!div.style){return}div.style.backgroundClip="content-box";div.cloneNode(true).style.backgroundClip="";support.clearCloneStyle=div.style.backgroundClip==="content-box";container.style.cssText="border:0;width:8px;height:0;top:0;left:-9999px;"+"padding:0;margin-top:1px;position:absolute";container.appendChild(div);function computeStyleTests(){div.style.cssText="-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box;"+"position:relative;display:block;"+"margin:auto;border:1px;padding:1px;"+"top:1%;width:50%";div.innerHTML="";documentElement.appendChild(container);var divStyle=window.getComputedStyle(div);pixelPositionVal=divStyle.top!=="1%";reliableMarginLeftVal=divStyle.marginLeft==="2px";boxSizingReliableVal=divStyle.width==="4px";div.style.marginRight="50%";pixelMarginRightVal=divStyle.marginRight==="4px";documentElement.removeChild(container)}jQuery.extend(support,{pixelPosition:function(){computeStyleTests();return pixelPositionVal},boxSizingReliable:function(){if(boxSizingReliableVal==null){computeStyleTests()}return boxSizingReliableVal},pixelMarginRight:function(){if(boxSizingReliableVal==null){computeStyleTests()}return pixelMarginRightVal},reliableMarginLeft:function(){if(boxSizingReliableVal==null){computeStyleTests()}return reliableMarginLeftVal},reliableMarginRight:function(){var ret,marginDiv=div.appendChild(document.createElement("div"));marginDiv.style.cssText=div.style.cssText="-webkit-box-sizing:content-box;box-sizing:content-box;"+"display:block;margin:0;border:0;padding:0";marginDiv.style.marginRight=marginDiv.style.width="0";div.style.width="1px";documentElement.appendChild(container);ret=!parseFloat(window.getComputedStyle(marginDiv).marginRight);documentElement.removeChild(container);div.removeChild(marginDiv);return ret}})})();function curCSS(elem,name,computed){var width,minWidth,maxWidth,ret,style=elem.style;computed=computed||getStyles(elem);ret=computed?computed.getPropertyValue(name)||computed[name]:undefined;if((ret===""||ret===undefined)&&!jQuery.contains(elem.ownerDocument,elem)){ret=jQuery.style(elem,name)}if(computed){if(!support.pixelMarginRight()&&rnumnonpx.test(ret)&&rmargin.test(name)){width=style.width;minWidth=style.minWidth;maxWidth=style.maxWidth;style.minWidth=style.maxWidth=style.width=ret;ret=computed.width;style.width=width;style.minWidth=minWidth;style.maxWidth=maxWidth}}return ret!==undefined?ret+"":ret}function addGetHookIf(conditionFn,hookFn){return{get:function(){if(conditionFn()){delete this.get;return}return(this.get=hookFn).apply(this,arguments)}}}var rdisplayswap=/^(none|table(?!-c[ea]).+)/,cssShow={position:"absolute",visibility:"hidden",display:"block"},cssNormalTransform={letterSpacing:"0",fontWeight:"400"},cssPrefixes=["Webkit","O","Moz","ms"],emptyStyle=document.createElement("div").style;function vendorPropName(name){if(name in emptyStyle){return name}var capName=name[0].toUpperCase()+name.slice(1),i=cssPrefixes.length;while(i--){name=cssPrefixes[i]+capName;if(name in emptyStyle){return name}}}function setPositiveNumber(elem,value,subtract){var matches=rcssNum.exec(value);return matches?Math.max(0,matches[2]-(subtract||0))+(matches[3]||"px"):value}function augmentWidthOrHeight(elem,name,extra,isBorderBox,styles){var i=extra===(isBorderBox?"border":"content")?4:name==="width"?1:0,val=0;for(;i<4;i+=2){if(extra==="margin"){val+=jQuery.css(elem,extra+cssExpand[i],true,styles)}if(isBorderBox){if(extra==="content"){val-=jQuery.css(elem,"padding"+cssExpand[i],true,styles)}if(extra!=="margin"){val-=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles)}}else{val+=jQuery.css(elem,"padding"+cssExpand[i],true,styles);if(extra!=="padding"){val+=jQuery.css(elem,"border"+cssExpand[i]+"Width",true,styles)}}}return val}function getWidthOrHeight(elem,name,extra){var valueIsBorderBox=true,val=name==="width"?elem.offsetWidth:elem.offsetHeight,styles=getStyles(elem),isBorderBox=jQuery.css(elem,"boxSizing",false,styles)==="border-box";if(val<=0||val==null){val=curCSS(elem,name,styles);if(val<0||val==null){val=elem.style[name]}if(rnumnonpx.test(val)){return val}valueIsBorderBox=isBorderBox&&(support.boxSizingReliable()||val===elem.style[name]);val=parseFloat(val)||0}return val+augmentWidthOrHeight(elem,name,extra||(isBorderBox?"border":"content"),valueIsBorderBox,styles)+"px"}function showHide(elements,show){var display,elem,hidden,values=[],index=0,length=elements.length;for(;index<length;index++){elem=elements[index];if(!elem.style){continue}values[index]=dataPriv.get(elem,"olddisplay");display=elem.style.display;if(show){if(!values[index]&&display==="none"){elem.style.display=""}if(elem.style.display===""&&isHidden(elem)){values[index]=dataPriv.access(elem,"olddisplay",defaultDisplay(elem.nodeName))}}else{hidden=isHidden(elem);if(display!=="none"||!hidden){dataPriv.set(elem,"olddisplay",hidden?display:jQuery.css(elem,"display"))}}}for(index=0;index<length;index++){elem=elements[index];if(!elem.style){continue}if(!show||elem.style.display==="none"||elem.style.display===""){elem.style.display=show?values[index]||"":"none"}}return elements}jQuery.extend({cssHooks:{opacity:{get:function(elem,computed){if(computed){var ret=curCSS(elem,"opacity");return ret===""?"1":ret}}}},cssNumber:{animationIterationCount:true,columnCount:true,fillOpacity:true,flexGrow:true,flexShrink:true,fontWeight:true,lineHeight:true,opacity:true,order:true,orphans:true,widows:true,zIndex:true,zoom:true},cssProps:{float:"cssFloat"},style:function(elem,name,value,extra){if(!elem||elem.nodeType===3||elem.nodeType===8||!elem.style){return}var ret,type,hooks,origName=jQuery.camelCase(name),style=elem.style;name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(origName)||origName);hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(value!==undefined){type=typeof value;if(type==="string"&&(ret=rcssNum.exec(value))&&ret[1]){value=adjustCSS(elem,name,ret);type="number"}if(value==null||value!==value){return}if(type==="number"){value+=ret&&ret[3]||(jQuery.cssNumber[origName]?"":"px")}if(!support.clearCloneStyle&&value===""&&name.indexOf("background")===0){style[name]="inherit"}if(!hooks||!("set"in hooks)||(value=hooks.set(elem,value,extra))!==undefined){style[name]=value}}else{if(hooks&&"get"in hooks&&(ret=hooks.get(elem,false,extra))!==undefined){return ret}return style[name]}},css:function(elem,name,extra,styles){var val,num,hooks,origName=jQuery.camelCase(name);name=jQuery.cssProps[origName]||(jQuery.cssProps[origName]=vendorPropName(origName)||origName);hooks=jQuery.cssHooks[name]||jQuery.cssHooks[origName];if(hooks&&"get"in hooks){val=hooks.get(elem,true,extra)}if(val===undefined){val=curCSS(elem,name,styles)}if(val==="normal"&&name in cssNormalTransform){val=cssNormalTransform[name]}if(extra===""||extra){num=parseFloat(val);return extra===true||isFinite(num)?num||0:val}return val}});jQuery.each(["height","width"],function(i,name){jQuery.cssHooks[name]={get:function(elem,computed,extra){if(computed){return rdisplayswap.test(jQuery.css(elem,"display"))&&elem.offsetWidth===0?swap(elem,cssShow,function(){return getWidthOrHeight(elem,name,extra)}):getWidthOrHeight(elem,name,extra)}},set:function(elem,value,extra){var matches,styles=extra&&getStyles(elem),subtract=extra&&augmentWidthOrHeight(elem,name,extra,jQuery.css(elem,"boxSizing",false,styles)==="border-box",styles);if(subtract&&(matches=rcssNum.exec(value))&&(matches[3]||"px")!=="px"){elem.style[name]=value;value=jQuery.css(elem,name)}return setPositiveNumber(elem,value,subtract)}}});jQuery.cssHooks.marginLeft=addGetHookIf(support.reliableMarginLeft,function(elem,computed){if(computed){return(parseFloat(curCSS(elem,"marginLeft"))||elem.getBoundingClientRect().left-swap(elem,{marginLeft:0},function(){return elem.getBoundingClientRect().left}))+"px"}});jQuery.cssHooks.marginRight=addGetHookIf(support.reliableMarginRight,function(elem,computed){if(computed){return swap(elem,{display:"inline-block"},curCSS,[elem,"marginRight"])}});jQuery.each({margin:"",padding:"",border:"Width"},function(prefix,suffix){jQuery.cssHooks[prefix+suffix]={expand:function(value){var i=0,expanded={},parts=typeof value==="string"?value.split(" "):[value];for(;i<4;i++){expanded[prefix+cssExpand[i]+suffix]=parts[i]||parts[i-2]||parts[0]}return expanded}};if(!rmargin.test(prefix)){jQuery.cssHooks[prefix+suffix].set=setPositiveNumber}});jQuery.fn.extend({css:function(name,value){return access(this,function(elem,name,value){var styles,len,map={},i=0;if(jQuery.isArray(name)){styles=getStyles(elem);len=name.length;for(;i<len;i++){map[name[i]]=jQuery.css(elem,name[i],false,styles)}return map}return value!==undefined?jQuery.style(elem,name,value):jQuery.css(elem,name)},name,value,arguments.length>1)},show:function(){return showHide(this,true)},hide:function(){return showHide(this)},toggle:function(state){if(typeof state==="boolean"){return state?this.show():this.hide()}return this.each(function(){if(isHidden(this)){jQuery(this).show()}else{jQuery(this).hide()}})}});function Tween(elem,options,prop,end,easing){return new Tween.prototype.init(elem,options,prop,end,easing)}jQuery.Tween=Tween;Tween.prototype={constructor:Tween,init:function(elem,options,prop,end,easing,unit){this.elem=elem;this.prop=prop;this.easing=easing||jQuery.easing._default;this.options=options;this.start=this.now=this.cur();this.end=end;this.unit=unit||(jQuery.cssNumber[prop]?"":"px")},cur:function(){var hooks=Tween.propHooks[this.prop];return hooks&&hooks.get?hooks.get(this):Tween.propHooks._default.get(this)},run:function(percent){var eased,hooks=Tween.propHooks[this.prop];if(this.options.duration){this.pos=eased=jQuery.easing[this.easing](percent,this.options.duration*percent,0,1,this.options.duration)}else{this.pos=eased=percent}this.now=(this.end-this.start)*eased+this.start;if(this.options.step){this.options.step.call(this.elem,this.now,this)}if(hooks&&hooks.set){hooks.set(this)}else{Tween.propHooks._default.set(this)}return this}};Tween.prototype.init.prototype=Tween.prototype;Tween.propHooks={_default:{get:function(tween){var result;if(tween.elem.nodeType!==1||tween.elem[tween.prop]!=null&&tween.elem.style[tween.prop]==null){return tween.elem[tween.prop]}result=jQuery.css(tween.elem,tween.prop,"");return!result||result==="auto"?0:result},set:function(tween){if(jQuery.fx.step[tween.prop]){jQuery.fx.step[tween.prop](tween)}else if(tween.elem.nodeType===1&&(tween.elem.style[jQuery.cssProps[tween.prop]]!=null||jQuery.cssHooks[tween.prop])){jQuery.style(tween.elem,tween.prop,tween.now+tween.unit)}else{tween.elem[tween.prop]=tween.now}}}};Tween.propHooks.scrollTop=Tween.propHooks.scrollLeft={set:function(tween){if(tween.elem.nodeType&&tween.elem.parentNode){tween.elem[tween.prop]=tween.now}}};jQuery.easing={linear:function(p){return p},swing:function(p){return.5-Math.cos(p*Math.PI)/2},_default:"swing"};jQuery.fx=Tween.prototype.init;jQuery.fx.step={};var fxNow,timerId,rfxtypes=/^(?:toggle|show|hide)$/,rrun=/queueHooks$/;function createFxNow(){window.setTimeout(function(){fxNow=undefined});return fxNow=jQuery.now()}function genFx(type,includeWidth){var which,i=0,attrs={height:type};includeWidth=includeWidth?1:0;for(;i<4;i+=2-includeWidth){which=cssExpand[i];attrs["margin"+which]=attrs["padding"+which]=type}if(includeWidth){attrs.opacity=attrs.width=type}return attrs}function createTween(value,prop,animation){var tween,collection=(Animation.tweeners[prop]||[]).concat(Animation.tweeners["*"]),index=0,length=collection.length;for(;index<length;index++){if(tween=collection[index].call(animation,prop,value)){return tween}}}function defaultPrefilter(elem,props,opts){var prop,value,toggle,tween,hooks,oldfire,display,checkDisplay,anim=this,orig={},style=elem.style,hidden=elem.nodeType&&isHidden(elem),dataShow=dataPriv.get(elem,"fxshow");if(!opts.queue){hooks=jQuery._queueHooks(elem,"fx");if(hooks.unqueued==null){hooks.unqueued=0;oldfire=hooks.empty.fire;hooks.empty.fire=function(){if(!hooks.unqueued){oldfire()}}}hooks.unqueued++;anim.always(function(){anim.always(function(){hooks.unqueued--;if(!jQuery.queue(elem,"fx").length){hooks.empty.fire()}})})}if(elem.nodeType===1&&("height"in props||"width"in props)){opts.overflow=[style.overflow,style.overflowX,style.overflowY];display=jQuery.css(elem,"display");checkDisplay=display==="none"?dataPriv.get(elem,"olddisplay")||defaultDisplay(elem.nodeName):display;if(checkDisplay==="inline"&&jQuery.css(elem,"float")==="none"){style.display="inline-block"}}if(opts.overflow){style.overflow="hidden";anim.always(function(){style.overflow=opts.overflow[0];style.overflowX=opts.overflow[1];style.overflowY=opts.overflow[2]})}for(prop in props){value=props[prop];if(rfxtypes.exec(value)){delete props[prop];toggle=toggle||value==="toggle";if(value===(hidden?"hide":"show")){if(value==="show"&&dataShow&&dataShow[prop]!==undefined){hidden=true}else{continue}}orig[prop]=dataShow&&dataShow[prop]||jQuery.style(elem,prop)}else{display=undefined}}if(!jQuery.isEmptyObject(orig)){if(dataShow){if("hidden"in dataShow){hidden=dataShow.hidden}}else{dataShow=dataPriv.access(elem,"fxshow",{})}if(toggle){dataShow.hidden=!hidden}if(hidden){jQuery(elem).show()}else{anim.done(function(){jQuery(elem).hide()})}anim.done(function(){var prop;dataPriv.remove(elem,"fxshow");for(prop in orig){jQuery.style(elem,prop,orig[prop])}});for(prop in orig){tween=createTween(hidden?dataShow[prop]:0,prop,anim);if(!(prop in dataShow)){dataShow[prop]=tween.start;if(hidden){tween.end=tween.start;tween.start=prop==="width"||prop==="height"?1:0}}}}else if((display==="none"?defaultDisplay(elem.nodeName):display)==="inline"){style.display=display}}function propFilter(props,specialEasing){var index,name,easing,value,hooks;for(index in props){name=jQuery.camelCase(index);easing=specialEasing[name];value=props[index];if(jQuery.isArray(value)){easing=value[1];value=props[index]=value[0]}if(index!==name){props[name]=value;delete props[index]}hooks=jQuery.cssHooks[name];if(hooks&&"expand"in hooks){value=hooks.expand(value);delete props[name];for(index in value){if(!(index in props)){props[index]=value[index];specialEasing[index]=easing}}}else{specialEasing[name]=easing}}}function Animation(elem,properties,options){var result,stopped,index=0,length=Animation.prefilters.length,deferred=jQuery.Deferred().always(function(){delete tick.elem}),tick=function(){if(stopped){return false}var currentTime=fxNow||createFxNow(),remaining=Math.max(0,animation.startTime+animation.duration-currentTime),temp=remaining/animation.duration||0,percent=1-temp,index=0,length=animation.tweens.length;for(;index<length;index++){animation.tweens[index].run(percent)}deferred.notifyWith(elem,[animation,percent,remaining]);if(percent<1&&length){return remaining}else{deferred.resolveWith(elem,[animation]);return false}},animation=deferred.promise({elem:elem,props:jQuery.extend({},properties),opts:jQuery.extend(true,{specialEasing:{},easing:jQuery.easing._default},options),originalProperties:properties,originalOptions:options,startTime:fxNow||createFxNow(),duration:options.duration,tweens:[],createTween:function(prop,end){var tween=jQuery.Tween(elem,animation.opts,prop,end,animation.opts.specialEasing[prop]||animation.opts.easing);animation.tweens.push(tween);return tween},stop:function(gotoEnd){var index=0,length=gotoEnd?animation.tweens.length:0;if(stopped){return this}stopped=true;for(;index<length;index++){animation.tweens[index].run(1)}if(gotoEnd){deferred.notifyWith(elem,[animation,1,0]);deferred.resolveWith(elem,[animation,gotoEnd])}else{deferred.rejectWith(elem,[animation,gotoEnd])}return this}}),props=animation.props;propFilter(props,animation.opts.specialEasing);for(;index<length;index++){result=Animation.prefilters[index].call(animation,elem,props,animation.opts);if(result){if(jQuery.isFunction(result.stop)){jQuery._queueHooks(animation.elem,animation.opts.queue).stop=jQuery.proxy(result.stop,result)}return result}}jQuery.map(props,createTween,animation);if(jQuery.isFunction(animation.opts.start)){animation.opts.start.call(elem,animation)}jQuery.fx.timer(jQuery.extend(tick,{elem:elem,anim:animation,queue:animation.opts.queue}));return animation.progress(animation.opts.progress).done(animation.opts.done,animation.opts.complete).fail(animation.opts.fail).always(animation.opts.always)}jQuery.Animation=jQuery.extend(Animation,{tweeners:{"*":[function(prop,value){var tween=this.createTween(prop,value);adjustCSS(tween.elem,prop,rcssNum.exec(value),tween);return tween}]},tweener:function(props,callback){if(jQuery.isFunction(props)){callback=props;props=["*"]}else{props=props.match(rnotwhite)}var prop,index=0,length=props.length;for(;index<length;index++){prop=props[index];Animation.tweeners[prop]=Animation.tweeners[prop]||[];Animation.tweeners[prop].unshift(callback)}},prefilters:[defaultPrefilter],prefilter:function(callback,prepend){if(prepend){Animation.prefilters.unshift(callback)}else{Animation.prefilters.push(callback)}}});jQuery.speed=function(speed,easing,fn){var opt=speed&&typeof speed==="object"?jQuery.extend({},speed):{complete:fn||!fn&&easing||jQuery.isFunction(speed)&&speed,duration:speed,easing:fn&&easing||easing&&!jQuery.isFunction(easing)&&easing};opt.duration=jQuery.fx.off?0:typeof opt.duration==="number"?opt.duration:opt.duration in jQuery.fx.speeds?jQuery.fx.speeds[opt.duration]:jQuery.fx.speeds._default;if(opt.queue==null||opt.queue===true){opt.queue="fx"}opt.old=opt.complete;opt.complete=function(){if(jQuery.isFunction(opt.old)){opt.old.call(this)}if(opt.queue){jQuery.dequeue(this,opt.queue)}};return opt};jQuery.fn.extend({fadeTo:function(speed,to,easing,callback){return this.filter(isHidden).css("opacity",0).show().end().animate({opacity:to},speed,easing,callback)},animate:function(prop,speed,easing,callback){var empty=jQuery.isEmptyObject(prop),optall=jQuery.speed(speed,easing,callback),doAnimation=function(){var anim=Animation(this,jQuery.extend({},prop),optall);if(empty||dataPriv.get(this,"finish")){anim.stop(true)}};doAnimation.finish=doAnimation;return empty||optall.queue===false?this.each(doAnimation):this.queue(optall.queue,doAnimation)},stop:function(type,clearQueue,gotoEnd){var stopQueue=function(hooks){var stop=hooks.stop;delete hooks.stop;stop(gotoEnd)};if(typeof type!=="string"){gotoEnd=clearQueue;clearQueue=type;type=undefined}if(clearQueue&&type!==false){this.queue(type||"fx",[])}return this.each(function(){var dequeue=true,index=type!=null&&type+"queueHooks",timers=jQuery.timers,data=dataPriv.get(this);if(index){if(data[index]&&data[index].stop){stopQueue(data[index])}}else{for(index in data){if(data[index]&&data[index].stop&&rrun.test(index)){stopQueue(data[index])}}}for(index=timers.length;index--;){if(timers[index].elem===this&&(type==null||timers[index].queue===type)){timers[index].anim.stop(gotoEnd);dequeue=false;timers.splice(index,1)}}if(dequeue||!gotoEnd){jQuery.dequeue(this,type)}})},finish:function(type){if(type!==false){type=type||"fx"}return this.each(function(){
var index,data=dataPriv.get(this),queue=data[type+"queue"],hooks=data[type+"queueHooks"],timers=jQuery.timers,length=queue?queue.length:0;data.finish=true;jQuery.queue(this,type,[]);if(hooks&&hooks.stop){hooks.stop.call(this,true)}for(index=timers.length;index--;){if(timers[index].elem===this&&timers[index].queue===type){timers[index].anim.stop(true);timers.splice(index,1)}}for(index=0;index<length;index++){if(queue[index]&&queue[index].finish){queue[index].finish.call(this)}}delete data.finish})}});jQuery.each(["toggle","show","hide"],function(i,name){var cssFn=jQuery.fn[name];jQuery.fn[name]=function(speed,easing,callback){return speed==null||typeof speed==="boolean"?cssFn.apply(this,arguments):this.animate(genFx(name,true),speed,easing,callback)}});jQuery.each({slideDown:genFx("show"),slideUp:genFx("hide"),slideToggle:genFx("toggle"),fadeIn:{opacity:"show"},fadeOut:{opacity:"hide"},fadeToggle:{opacity:"toggle"}},function(name,props){jQuery.fn[name]=function(speed,easing,callback){return this.animate(props,speed,easing,callback)}});jQuery.timers=[];jQuery.fx.tick=function(){var timer,i=0,timers=jQuery.timers;fxNow=jQuery.now();for(;i<timers.length;i++){timer=timers[i];if(!timer()&&timers[i]===timer){timers.splice(i--,1)}}if(!timers.length){jQuery.fx.stop()}fxNow=undefined};jQuery.fx.timer=function(timer){jQuery.timers.push(timer);if(timer()){jQuery.fx.start()}else{jQuery.timers.pop()}};jQuery.fx.interval=13;jQuery.fx.start=function(){if(!timerId){timerId=window.setInterval(jQuery.fx.tick,jQuery.fx.interval)}};jQuery.fx.stop=function(){window.clearInterval(timerId);timerId=null};jQuery.fx.speeds={slow:600,fast:200,_default:400};jQuery.fn.delay=function(time,type){time=jQuery.fx?jQuery.fx.speeds[time]||time:time;type=type||"fx";return this.queue(type,function(next,hooks){var timeout=window.setTimeout(next,time);hooks.stop=function(){window.clearTimeout(timeout)}})};(function(){var input=document.createElement("input"),select=document.createElement("select"),opt=select.appendChild(document.createElement("option"));input.type="checkbox";support.checkOn=input.value!=="";support.optSelected=opt.selected;select.disabled=true;support.optDisabled=!opt.disabled;input=document.createElement("input");input.value="t";input.type="radio";support.radioValue=input.value==="t"})();var boolHook,attrHandle=jQuery.expr.attrHandle;jQuery.fn.extend({attr:function(name,value){return access(this,jQuery.attr,name,value,arguments.length>1)},removeAttr:function(name){return this.each(function(){jQuery.removeAttr(this,name)})}});jQuery.extend({attr:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2){return}if(typeof elem.getAttribute==="undefined"){return jQuery.prop(elem,name,value)}if(nType!==1||!jQuery.isXMLDoc(elem)){name=name.toLowerCase();hooks=jQuery.attrHooks[name]||(jQuery.expr.match.bool.test(name)?boolHook:undefined)}if(value!==undefined){if(value===null){jQuery.removeAttr(elem,name);return}if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret}elem.setAttribute(name,value+"");return value}if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret}ret=jQuery.find.attr(elem,name);return ret==null?undefined:ret},attrHooks:{type:{set:function(elem,value){if(!support.radioValue&&value==="radio"&&jQuery.nodeName(elem,"input")){var val=elem.value;elem.setAttribute("type",value);if(val){elem.value=val}return value}}}},removeAttr:function(elem,value){var name,propName,i=0,attrNames=value&&value.match(rnotwhite);if(attrNames&&elem.nodeType===1){while(name=attrNames[i++]){propName=jQuery.propFix[name]||name;if(jQuery.expr.match.bool.test(name)){elem[propName]=false}elem.removeAttribute(name)}}}});boolHook={set:function(elem,value,name){if(value===false){jQuery.removeAttr(elem,name)}else{elem.setAttribute(name,name)}return name}};jQuery.each(jQuery.expr.match.bool.source.match(/\w+/g),function(i,name){var getter=attrHandle[name]||jQuery.find.attr;attrHandle[name]=function(elem,name,isXML){var ret,handle;if(!isXML){handle=attrHandle[name];attrHandle[name]=ret;ret=getter(elem,name,isXML)!=null?name.toLowerCase():null;attrHandle[name]=handle}return ret}});var rfocusable=/^(?:input|select|textarea|button)$/i,rclickable=/^(?:a|area)$/i;jQuery.fn.extend({prop:function(name,value){return access(this,jQuery.prop,name,value,arguments.length>1)},removeProp:function(name){return this.each(function(){delete this[jQuery.propFix[name]||name]})}});jQuery.extend({prop:function(elem,name,value){var ret,hooks,nType=elem.nodeType;if(nType===3||nType===8||nType===2){return}if(nType!==1||!jQuery.isXMLDoc(elem)){name=jQuery.propFix[name]||name;hooks=jQuery.propHooks[name]}if(value!==undefined){if(hooks&&"set"in hooks&&(ret=hooks.set(elem,value,name))!==undefined){return ret}return elem[name]=value}if(hooks&&"get"in hooks&&(ret=hooks.get(elem,name))!==null){return ret}return elem[name]},propHooks:{tabIndex:{get:function(elem){var tabindex=jQuery.find.attr(elem,"tabindex");return tabindex?parseInt(tabindex,10):rfocusable.test(elem.nodeName)||rclickable.test(elem.nodeName)&&elem.href?0:-1}}},propFix:{for:"htmlFor",class:"className"}});if(!support.optSelected){jQuery.propHooks.selected={get:function(elem){var parent=elem.parentNode;if(parent&&parent.parentNode){parent.parentNode.selectedIndex}return null},set:function(elem){var parent=elem.parentNode;if(parent){parent.selectedIndex;if(parent.parentNode){parent.parentNode.selectedIndex}}}}}jQuery.each(["tabIndex","readOnly","maxLength","cellSpacing","cellPadding","rowSpan","colSpan","useMap","frameBorder","contentEditable"],function(){jQuery.propFix[this.toLowerCase()]=this});var rclass=/[\t\r\n\f]/g;function getClass(elem){return elem.getAttribute&&elem.getAttribute("class")||""}jQuery.fn.extend({addClass:function(value){var classes,elem,cur,curValue,clazz,j,finalValue,i=0;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).addClass(value.call(this,j,getClass(this)))})}if(typeof value==="string"&&value){classes=value.match(rnotwhite)||[];while(elem=this[i++]){curValue=getClass(elem);cur=elem.nodeType===1&&(" "+curValue+" ").replace(rclass," ");if(cur){j=0;while(clazz=classes[j++]){if(cur.indexOf(" "+clazz+" ")<0){cur+=clazz+" "}}finalValue=jQuery.trim(cur);if(curValue!==finalValue){elem.setAttribute("class",finalValue)}}}}return this},removeClass:function(value){var classes,elem,cur,curValue,clazz,j,finalValue,i=0;if(jQuery.isFunction(value)){return this.each(function(j){jQuery(this).removeClass(value.call(this,j,getClass(this)))})}if(!arguments.length){return this.attr("class","")}if(typeof value==="string"&&value){classes=value.match(rnotwhite)||[];while(elem=this[i++]){curValue=getClass(elem);cur=elem.nodeType===1&&(" "+curValue+" ").replace(rclass," ");if(cur){j=0;while(clazz=classes[j++]){while(cur.indexOf(" "+clazz+" ")>-1){cur=cur.replace(" "+clazz+" "," ")}}finalValue=jQuery.trim(cur);if(curValue!==finalValue){elem.setAttribute("class",finalValue)}}}}return this},toggleClass:function(value,stateVal){var type=typeof value;if(typeof stateVal==="boolean"&&type==="string"){return stateVal?this.addClass(value):this.removeClass(value)}if(jQuery.isFunction(value)){return this.each(function(i){jQuery(this).toggleClass(value.call(this,i,getClass(this),stateVal),stateVal)})}return this.each(function(){var className,i,self,classNames;if(type==="string"){i=0;self=jQuery(this);classNames=value.match(rnotwhite)||[];while(className=classNames[i++]){if(self.hasClass(className)){self.removeClass(className)}else{self.addClass(className)}}}else if(value===undefined||type==="boolean"){className=getClass(this);if(className){dataPriv.set(this,"__className__",className)}if(this.setAttribute){this.setAttribute("class",className||value===false?"":dataPriv.get(this,"__className__")||"")}}})},hasClass:function(selector){var className,elem,i=0;className=" "+selector+" ";while(elem=this[i++]){if(elem.nodeType===1&&(" "+getClass(elem)+" ").replace(rclass," ").indexOf(className)>-1){return true}}return false}});var rreturn=/\r/g,rspaces=/[\x20\t\r\n\f]+/g;jQuery.fn.extend({val:function(value){var hooks,ret,isFunction,elem=this[0];if(!arguments.length){if(elem){hooks=jQuery.valHooks[elem.type]||jQuery.valHooks[elem.nodeName.toLowerCase()];if(hooks&&"get"in hooks&&(ret=hooks.get(elem,"value"))!==undefined){return ret}ret=elem.value;return typeof ret==="string"?ret.replace(rreturn,""):ret==null?"":ret}return}isFunction=jQuery.isFunction(value);return this.each(function(i){var val;if(this.nodeType!==1){return}if(isFunction){val=value.call(this,i,jQuery(this).val())}else{val=value}if(val==null){val=""}else if(typeof val==="number"){val+=""}else if(jQuery.isArray(val)){val=jQuery.map(val,function(value){return value==null?"":value+""})}hooks=jQuery.valHooks[this.type]||jQuery.valHooks[this.nodeName.toLowerCase()];if(!hooks||!("set"in hooks)||hooks.set(this,val,"value")===undefined){this.value=val}})}});jQuery.extend({valHooks:{option:{get:function(elem){var val=jQuery.find.attr(elem,"value");return val!=null?val:jQuery.trim(jQuery.text(elem)).replace(rspaces," ")}},select:{get:function(elem){var value,option,options=elem.options,index=elem.selectedIndex,one=elem.type==="select-one"||index<0,values=one?null:[],max=one?index+1:options.length,i=index<0?max:one?index:0;for(;i<max;i++){option=options[i];if((option.selected||i===index)&&(support.optDisabled?!option.disabled:option.getAttribute("disabled")===null)&&(!option.parentNode.disabled||!jQuery.nodeName(option.parentNode,"optgroup"))){value=jQuery(option).val();if(one){return value}values.push(value)}}return values},set:function(elem,value){var optionSet,option,options=elem.options,values=jQuery.makeArray(value),i=options.length;while(i--){option=options[i];if(option.selected=jQuery.inArray(jQuery.valHooks.option.get(option),values)>-1){optionSet=true}}if(!optionSet){elem.selectedIndex=-1}return values}}}});jQuery.each(["radio","checkbox"],function(){jQuery.valHooks[this]={set:function(elem,value){if(jQuery.isArray(value)){return elem.checked=jQuery.inArray(jQuery(elem).val(),value)>-1}}};if(!support.checkOn){jQuery.valHooks[this].get=function(elem){return elem.getAttribute("value")===null?"on":elem.value}}});var rfocusMorph=/^(?:focusinfocus|focusoutblur)$/;jQuery.extend(jQuery.event,{trigger:function(event,data,elem,onlyHandlers){var i,cur,tmp,bubbleType,ontype,handle,special,eventPath=[elem||document],type=hasOwn.call(event,"type")?event.type:event,namespaces=hasOwn.call(event,"namespace")?event.namespace.split("."):[];cur=tmp=elem=elem||document;if(elem.nodeType===3||elem.nodeType===8){return}if(rfocusMorph.test(type+jQuery.event.triggered)){return}if(type.indexOf(".")>-1){namespaces=type.split(".");type=namespaces.shift();namespaces.sort()}ontype=type.indexOf(":")<0&&"on"+type;event=event[jQuery.expando]?event:new jQuery.Event(type,typeof event==="object"&&event);event.isTrigger=onlyHandlers?2:3;event.namespace=namespaces.join(".");event.rnamespace=event.namespace?new RegExp("(^|\\.)"+namespaces.join("\\.(?:.*\\.|)")+"(\\.|$)"):null;event.result=undefined;if(!event.target){event.target=elem}data=data==null?[event]:jQuery.makeArray(data,[event]);special=jQuery.event.special[type]||{};if(!onlyHandlers&&special.trigger&&special.trigger.apply(elem,data)===false){return}if(!onlyHandlers&&!special.noBubble&&!jQuery.isWindow(elem)){bubbleType=special.delegateType||type;if(!rfocusMorph.test(bubbleType+type)){cur=cur.parentNode}for(;cur;cur=cur.parentNode){eventPath.push(cur);tmp=cur}if(tmp===(elem.ownerDocument||document)){eventPath.push(tmp.defaultView||tmp.parentWindow||window)}}i=0;while((cur=eventPath[i++])&&!event.isPropagationStopped()){event.type=i>1?bubbleType:special.bindType||type;handle=(dataPriv.get(cur,"events")||{})[event.type]&&dataPriv.get(cur,"handle");if(handle){handle.apply(cur,data)}handle=ontype&&cur[ontype];if(handle&&handle.apply&&acceptData(cur)){event.result=handle.apply(cur,data);if(event.result===false){event.preventDefault()}}}event.type=type;if(!onlyHandlers&&!event.isDefaultPrevented()){if((!special._default||special._default.apply(eventPath.pop(),data)===false)&&acceptData(elem)){if(ontype&&jQuery.isFunction(elem[type])&&!jQuery.isWindow(elem)){tmp=elem[ontype];if(tmp){elem[ontype]=null}jQuery.event.triggered=type;elem[type]();jQuery.event.triggered=undefined;if(tmp){elem[ontype]=tmp}}}}return event.result},simulate:function(type,elem,event){var e=jQuery.extend(new jQuery.Event,event,{type:type,isSimulated:true});jQuery.event.trigger(e,null,elem)}});jQuery.fn.extend({trigger:function(type,data){return this.each(function(){jQuery.event.trigger(type,data,this)})},triggerHandler:function(type,data){var elem=this[0];if(elem){return jQuery.event.trigger(type,data,elem,true)}}});jQuery.each(("blur focus focusin focusout load resize scroll unload click dblclick "+"mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave "+"change select submit keydown keypress keyup error contextmenu").split(" "),function(i,name){jQuery.fn[name]=function(data,fn){return arguments.length>0?this.on(name,null,data,fn):this.trigger(name)}});jQuery.fn.extend({hover:function(fnOver,fnOut){return this.mouseenter(fnOver).mouseleave(fnOut||fnOver)}});support.focusin="onfocusin"in window;if(!support.focusin){jQuery.each({focus:"focusin",blur:"focusout"},function(orig,fix){var handler=function(event){jQuery.event.simulate(fix,event.target,jQuery.event.fix(event))};jQuery.event.special[fix]={setup:function(){var doc=this.ownerDocument||this,attaches=dataPriv.access(doc,fix);if(!attaches){doc.addEventListener(orig,handler,true)}dataPriv.access(doc,fix,(attaches||0)+1)},teardown:function(){var doc=this.ownerDocument||this,attaches=dataPriv.access(doc,fix)-1;if(!attaches){doc.removeEventListener(orig,handler,true);dataPriv.remove(doc,fix)}else{dataPriv.access(doc,fix,attaches)}}}})}var location=window.location;var nonce=jQuery.now();var rquery=/\?/;jQuery.parseJSON=function(data){return JSON.parse(data+"")};jQuery.parseXML=function(data){var xml;if(!data||typeof data!=="string"){return null}try{xml=(new window.DOMParser).parseFromString(data,"text/xml")}catch(e){xml=undefined}if(!xml||xml.getElementsByTagName("parsererror").length){jQuery.error("Invalid XML: "+data)}return xml};var rhash=/#.*$/,rts=/([?&])_=[^&]*/,rheaders=/^(.*?):[ \t]*([^\r\n]*)$/gm,rlocalProtocol=/^(?:about|app|app-storage|.+-extension|file|res|widget):$/,rnoContent=/^(?:GET|HEAD)$/,rprotocol=/^\/\//,prefilters={},transports={},allTypes="*/".concat("*"),originAnchor=document.createElement("a");originAnchor.href=location.href;function addToPrefiltersOrTransports(structure){return function(dataTypeExpression,func){if(typeof dataTypeExpression!=="string"){func=dataTypeExpression;dataTypeExpression="*"}var dataType,i=0,dataTypes=dataTypeExpression.toLowerCase().match(rnotwhite)||[];if(jQuery.isFunction(func)){while(dataType=dataTypes[i++]){if(dataType[0]==="+"){dataType=dataType.slice(1)||"*";(structure[dataType]=structure[dataType]||[]).unshift(func)}else{(structure[dataType]=structure[dataType]||[]).push(func)}}}}}function inspectPrefiltersOrTransports(structure,options,originalOptions,jqXHR){var inspected={},seekingTransport=structure===transports;function inspect(dataType){var selected;inspected[dataType]=true;jQuery.each(structure[dataType]||[],function(_,prefilterOrFactory){var dataTypeOrTransport=prefilterOrFactory(options,originalOptions,jqXHR);if(typeof dataTypeOrTransport==="string"&&!seekingTransport&&!inspected[dataTypeOrTransport]){options.dataTypes.unshift(dataTypeOrTransport);inspect(dataTypeOrTransport);return false}else if(seekingTransport){return!(selected=dataTypeOrTransport)}});return selected}return inspect(options.dataTypes[0])||!inspected["*"]&&inspect("*")}function ajaxExtend(target,src){var key,deep,flatOptions=jQuery.ajaxSettings.flatOptions||{};for(key in src){if(src[key]!==undefined){(flatOptions[key]?target:deep||(deep={}))[key]=src[key]}}if(deep){jQuery.extend(true,target,deep)}return target}function ajaxHandleResponses(s,jqXHR,responses){var ct,type,finalDataType,firstDataType,contents=s.contents,dataTypes=s.dataTypes;while(dataTypes[0]==="*"){dataTypes.shift();if(ct===undefined){ct=s.mimeType||jqXHR.getResponseHeader("Content-Type")}}if(ct){for(type in contents){if(contents[type]&&contents[type].test(ct)){dataTypes.unshift(type);break}}}if(dataTypes[0]in responses){finalDataType=dataTypes[0]}else{for(type in responses){if(!dataTypes[0]||s.converters[type+" "+dataTypes[0]]){finalDataType=type;break}if(!firstDataType){firstDataType=type}}finalDataType=finalDataType||firstDataType}if(finalDataType){if(finalDataType!==dataTypes[0]){dataTypes.unshift(finalDataType)}return responses[finalDataType]}}function ajaxConvert(s,response,jqXHR,isSuccess){var conv2,current,conv,tmp,prev,converters={},dataTypes=s.dataTypes.slice();if(dataTypes[1]){for(conv in s.converters){converters[conv.toLowerCase()]=s.converters[conv]}}current=dataTypes.shift();while(current){if(s.responseFields[current]){jqXHR[s.responseFields[current]]=response}if(!prev&&isSuccess&&s.dataFilter){response=s.dataFilter(response,s.dataType)}prev=current;current=dataTypes.shift();if(current){if(current==="*"){current=prev}else if(prev!=="*"&&prev!==current){conv=converters[prev+" "+current]||converters["* "+current];if(!conv){for(conv2 in converters){tmp=conv2.split(" ");if(tmp[1]===current){conv=converters[prev+" "+tmp[0]]||converters["* "+tmp[0]];if(conv){if(conv===true){conv=converters[conv2]}else if(converters[conv2]!==true){current=tmp[0];dataTypes.unshift(tmp[1])}break}}}}if(conv!==true){if(conv&&s.throws){response=conv(response)}else{try{response=conv(response)}catch(e){return{state:"parsererror",error:conv?e:"No conversion from "+prev+" to "+current}}}}}}}return{state:"success",data:response}}jQuery.extend({active:0,lastModified:{},etag:{},ajaxSettings:{url:location.href,type:"GET",isLocal:rlocalProtocol.test(location.protocol),global:true,processData:true,async:true,contentType:"application/x-www-form-urlencoded; charset=UTF-8",accepts:{"*":allTypes,text:"text/plain",html:"text/html",xml:"application/xml, text/xml",json:"application/json, text/javascript"},contents:{xml:/\bxml\b/,html:/\bhtml/,json:/\bjson\b/},responseFields:{xml:"responseXML",text:"responseText",json:"responseJSON"},converters:{"* text":String,"text html":true,"text json":jQuery.parseJSON,"text xml":jQuery.parseXML},flatOptions:{url:true,context:true}},ajaxSetup:function(target,settings){return settings?ajaxExtend(ajaxExtend(target,jQuery.ajaxSettings),settings):ajaxExtend(jQuery.ajaxSettings,target)},ajaxPrefilter:addToPrefiltersOrTransports(prefilters),ajaxTransport:addToPrefiltersOrTransports(transports),ajax:function(url,options){if(typeof url==="object"){options=url;url=undefined}options=options||{};var transport,cacheURL,responseHeadersString,responseHeaders,timeoutTimer,urlAnchor,fireGlobals,i,s=jQuery.ajaxSetup({},options),callbackContext=s.context||s,globalEventContext=s.context&&(callbackContext.nodeType||callbackContext.jquery)?jQuery(callbackContext):jQuery.event,deferred=jQuery.Deferred(),completeDeferred=jQuery.Callbacks("once memory"),statusCode=s.statusCode||{},requestHeaders={},requestHeadersNames={},state=0,strAbort="canceled",jqXHR={readyState:0,getResponseHeader:function(key){var match;if(state===2){if(!responseHeaders){responseHeaders={};while(match=rheaders.exec(responseHeadersString)){responseHeaders[match[1].toLowerCase()]=match[2]}}match=responseHeaders[key.toLowerCase()]}return match==null?null:match},getAllResponseHeaders:function(){return state===2?responseHeadersString:null},setRequestHeader:function(name,value){var lname=name.toLowerCase();if(!state){name=requestHeadersNames[lname]=requestHeadersNames[lname]||name;requestHeaders[name]=value}return this},overrideMimeType:function(type){if(!state){s.mimeType=type}return this},statusCode:function(map){var code;if(map){if(state<2){for(code in map){statusCode[code]=[statusCode[code],map[code]]}}else{jqXHR.always(map[jqXHR.status])}}return this},abort:function(statusText){var finalText=statusText||strAbort;if(transport){transport.abort(finalText)}done(0,finalText);return this}};deferred.promise(jqXHR).complete=completeDeferred.add;jqXHR.success=jqXHR.done;jqXHR.error=jqXHR.fail;s.url=((url||s.url||location.href)+"").replace(rhash,"").replace(rprotocol,location.protocol+"//");s.type=options.method||options.type||s.method||s.type;s.dataTypes=jQuery.trim(s.dataType||"*").toLowerCase().match(rnotwhite)||[""];if(s.crossDomain==null){urlAnchor=document.createElement("a");try{urlAnchor.href=s.url;urlAnchor.href=urlAnchor.href;s.crossDomain=originAnchor.protocol+"//"+originAnchor.host!==urlAnchor.protocol+"//"+urlAnchor.host}catch(e){s.crossDomain=true}}if(s.data&&s.processData&&typeof s.data!=="string"){s.data=jQuery.param(s.data,s.traditional)}inspectPrefiltersOrTransports(prefilters,s,options,jqXHR);if(state===2){return jqXHR}fireGlobals=jQuery.event&&s.global;if(fireGlobals&&jQuery.active++===0){jQuery.event.trigger("ajaxStart")}s.type=s.type.toUpperCase();s.hasContent=!rnoContent.test(s.type);cacheURL=s.url;if(!s.hasContent){if(s.data){cacheURL=s.url+=(rquery.test(cacheURL)?"&":"?")+s.data;delete s.data}if(s.cache===false){s.url=rts.test(cacheURL)?cacheURL.replace(rts,"$1_="+nonce++):cacheURL+(rquery.test(cacheURL)?"&":"?")+"_="+nonce++}}if(s.ifModified){if(jQuery.lastModified[cacheURL]){jqXHR.setRequestHeader("If-Modified-Since",jQuery.lastModified[cacheURL])}if(jQuery.etag[cacheURL]){jqXHR.setRequestHeader("If-None-Match",jQuery.etag[cacheURL])}}if(s.data&&s.hasContent&&s.contentType!==false||options.contentType){jqXHR.setRequestHeader("Content-Type",s.contentType)}jqXHR.setRequestHeader("Accept",s.dataTypes[0]&&s.accepts[s.dataTypes[0]]?s.accepts[s.dataTypes[0]]+(s.dataTypes[0]!=="*"?", "+allTypes+"; q=0.01":""):s.accepts["*"]);for(i in s.headers){jqXHR.setRequestHeader(i,s.headers[i])}if(s.beforeSend&&(s.beforeSend.call(callbackContext,jqXHR,s)===false||state===2)){return jqXHR.abort()}strAbort="abort";for(i in{success:1,error:1,complete:1}){jqXHR[i](s[i])}transport=inspectPrefiltersOrTransports(transports,s,options,jqXHR);if(!transport){done(-1,"No Transport")}else{jqXHR.readyState=1;if(fireGlobals){globalEventContext.trigger("ajaxSend",[jqXHR,s])}if(state===2){return jqXHR}if(s.async&&s.timeout>0){timeoutTimer=window.setTimeout(function(){jqXHR.abort("timeout")},s.timeout)}try{state=1;transport.send(requestHeaders,done)}catch(e){if(state<2){done(-1,e)}else{throw e}}}function done(status,nativeStatusText,responses,headers){var isSuccess,success,error,response,modified,statusText=nativeStatusText;if(state===2){return}state=2;if(timeoutTimer){window.clearTimeout(timeoutTimer)}transport=undefined;responseHeadersString=headers||"";jqXHR.readyState=status>0?4:0;isSuccess=status>=200&&status<300||status===304;if(responses){response=ajaxHandleResponses(s,jqXHR,responses)}response=ajaxConvert(s,response,jqXHR,isSuccess);if(isSuccess){if(s.ifModified){modified=jqXHR.getResponseHeader("Last-Modified");if(modified){jQuery.lastModified[cacheURL]=modified}modified=jqXHR.getResponseHeader("etag");if(modified){jQuery.etag[cacheURL]=modified}}if(status===204||s.type==="HEAD"){statusText="nocontent"}else if(status===304){statusText="notmodified"}else{statusText=response.state;success=response.data;error=response.error;isSuccess=!error}}else{error=statusText;if(status||!statusText){statusText="error";if(status<0){status=0}}}jqXHR.status=status;jqXHR.statusText=(nativeStatusText||statusText)+"";if(isSuccess){deferred.resolveWith(callbackContext,[success,statusText,jqXHR])}else{deferred.rejectWith(callbackContext,[jqXHR,statusText,error])}jqXHR.statusCode(statusCode);statusCode=undefined;if(fireGlobals){globalEventContext.trigger(isSuccess?"ajaxSuccess":"ajaxError",[jqXHR,s,isSuccess?success:error])}completeDeferred.fireWith(callbackContext,[jqXHR,statusText]);if(fireGlobals){globalEventContext.trigger("ajaxComplete",[jqXHR,s]);if(!--jQuery.active){jQuery.event.trigger("ajaxStop")}}}return jqXHR},getJSON:function(url,data,callback){return jQuery.get(url,data,callback,"json")},getScript:function(url,callback){return jQuery.get(url,undefined,callback,"script")}});jQuery.each(["get","post"],function(i,method){jQuery[method]=function(url,data,callback,type){if(jQuery.isFunction(data)){type=type||callback;callback=data;data=undefined}return jQuery.ajax(jQuery.extend({url:url,type:method,dataType:type,data:data,success:callback},jQuery.isPlainObject(url)&&url))}});jQuery._evalUrl=function(url){return jQuery.ajax({url:url,type:"GET",dataType:"script",async:false,global:false,throws:true})};jQuery.fn.extend({wrapAll:function(html){var wrap;if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapAll(html.call(this,i))})}if(this[0]){wrap=jQuery(html,this[0].ownerDocument).eq(0).clone(true);if(this[0].parentNode){wrap.insertBefore(this[0])}wrap.map(function(){var elem=this;while(elem.firstElementChild){elem=elem.firstElementChild}return elem}).append(this)}return this},wrapInner:function(html){if(jQuery.isFunction(html)){return this.each(function(i){jQuery(this).wrapInner(html.call(this,i))})}return this.each(function(){var self=jQuery(this),contents=self.contents();if(contents.length){contents.wrapAll(html)}else{self.append(html)}})},wrap:function(html){var isFunction=jQuery.isFunction(html);return this.each(function(i){jQuery(this).wrapAll(isFunction?html.call(this,i):html)})},unwrap:function(){return this.parent().each(function(){if(!jQuery.nodeName(this,"body")){jQuery(this).replaceWith(this.childNodes)}}).end()}});jQuery.expr.filters.hidden=function(elem){return!jQuery.expr.filters.visible(elem)};jQuery.expr.filters.visible=function(elem){return elem.offsetWidth>0||elem.offsetHeight>0||elem.getClientRects().length>0};var r20=/%20/g,rbracket=/\[\]$/,rCRLF=/\r?\n/g,rsubmitterTypes=/^(?:submit|button|image|reset|file)$/i,rsubmittable=/^(?:input|select|textarea|keygen)/i;function buildParams(prefix,obj,traditional,add){var name;if(jQuery.isArray(obj)){jQuery.each(obj,function(i,v){if(traditional||rbracket.test(prefix)){add(prefix,v)}else{buildParams(prefix+"["+(typeof v==="object"&&v!=null?i:"")+"]",v,traditional,add)}})}else if(!traditional&&jQuery.type(obj)==="object"){for(name in obj){buildParams(prefix+"["+name+"]",obj[name],traditional,add)}}else{add(prefix,obj)}}jQuery.param=function(a,traditional){var prefix,s=[],add=function(key,value){value=jQuery.isFunction(value)?value():value==null?"":value;s[s.length]=encodeURIComponent(key)+"="+encodeURIComponent(value)};if(traditional===undefined){traditional=jQuery.ajaxSettings&&jQuery.ajaxSettings.traditional}if(jQuery.isArray(a)||a.jquery&&!jQuery.isPlainObject(a)){jQuery.each(a,function(){add(this.name,this.value)})}else{for(prefix in a){buildParams(prefix,a[prefix],traditional,add)}}return s.join("&").replace(r20,"+")};jQuery.fn.extend({serialize:function(){return jQuery.param(this.serializeArray())},serializeArray:function(){return this.map(function(){var elements=jQuery.prop(this,"elements");return elements?jQuery.makeArray(elements):this}).filter(function(){var type=this.type;return this.name&&!jQuery(this).is(":disabled")&&rsubmittable.test(this.nodeName)&&!rsubmitterTypes.test(type)&&(this.checked||!rcheckableType.test(type))}).map(function(i,elem){var val=jQuery(this).val();return val==null?null:jQuery.isArray(val)?jQuery.map(val,function(val){return{name:elem.name,value:val.replace(rCRLF,"\r\n")}}):{name:elem.name,value:val.replace(rCRLF,"\r\n")}}).get()}});jQuery.ajaxSettings.xhr=function(){try{return new window.XMLHttpRequest}catch(e){}};var xhrSuccessStatus={0:200,1223:204},xhrSupported=jQuery.ajaxSettings.xhr();support.cors=!!xhrSupported&&"withCredentials"in xhrSupported;support.ajax=xhrSupported=!!xhrSupported;jQuery.ajaxTransport(function(options){var callback,errorCallback;if(support.cors||xhrSupported&&!options.crossDomain){return{send:function(headers,complete){var i,xhr=options.xhr();xhr.open(options.type,options.url,options.async,options.username,options.password);if(options.xhrFields){for(i in options.xhrFields){xhr[i]=options.xhrFields[i]}}if(options.mimeType&&xhr.overrideMimeType){xhr.overrideMimeType(options.mimeType)}if(!options.crossDomain&&!headers["X-Requested-With"]){headers["X-Requested-With"]="XMLHttpRequest"}for(i in headers){xhr.setRequestHeader(i,headers[i])}callback=function(type){return function(){if(callback){callback=errorCallback=xhr.onload=xhr.onerror=xhr.onabort=xhr.onreadystatechange=null;if(type==="abort"){xhr.abort()}else if(type==="error"){if(typeof xhr.status!=="number"){complete(0,"error")}else{complete(xhr.status,xhr.statusText)}}else{complete(xhrSuccessStatus[xhr.status]||xhr.status,xhr.statusText,(xhr.responseType||"text")!=="text"||typeof xhr.responseText!=="string"?{binary:xhr.response}:{text:xhr.responseText},xhr.getAllResponseHeaders())}}}};xhr.onload=callback();errorCallback=xhr.onerror=callback("error");if(xhr.onabort!==undefined){xhr.onabort=errorCallback}else{xhr.onreadystatechange=function(){if(xhr.readyState===4){window.setTimeout(function(){if(callback){errorCallback()}})}}}callback=callback("abort");try{xhr.send(options.hasContent&&options.data||null)}catch(e){if(callback){throw e}}},abort:function(){if(callback){callback()}}}}});jQuery.ajaxSetup({accepts:{script:"text/javascript, application/javascript, "+"application/ecmascript, application/x-ecmascript"},contents:{script:/\b(?:java|ecma)script\b/},converters:{"text script":function(text){jQuery.globalEval(text);return text}}});jQuery.ajaxPrefilter("script",function(s){if(s.cache===undefined){s.cache=false}if(s.crossDomain){s.type="GET"}});jQuery.ajaxTransport("script",function(s){if(s.crossDomain){var script,callback;return{send:function(_,complete){script=jQuery("<script>").prop({charset:s.scriptCharset,src:s.url}).on("load error",callback=function(evt){script.remove();callback=null;if(evt){complete(evt.type==="error"?404:200,evt.type)}});document.head.appendChild(script[0])},abort:function(){if(callback){callback()}}}}});var oldCallbacks=[],rjsonp=/(=)\?(?=&|$)|\?\?/;jQuery.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var callback=oldCallbacks.pop()||jQuery.expando+"_"+nonce++;this[callback]=true;return callback}});jQuery.ajaxPrefilter("json jsonp",function(s,originalSettings,jqXHR){var callbackName,overwritten,responseContainer,jsonProp=s.jsonp!==false&&(rjsonp.test(s.url)?"url":typeof s.data==="string"&&(s.contentType||"").indexOf("application/x-www-form-urlencoded")===0&&rjsonp.test(s.data)&&"data");if(jsonProp||s.dataTypes[0]==="jsonp"){callbackName=s.jsonpCallback=jQuery.isFunction(s.jsonpCallback)?s.jsonpCallback():s.jsonpCallback;if(jsonProp){s[jsonProp]=s[jsonProp].replace(rjsonp,"$1"+callbackName)}else if(s.jsonp!==false){s.url+=(rquery.test(s.url)?"&":"?")+s.jsonp+"="+callbackName}s.converters["script json"]=function(){if(!responseContainer){jQuery.error(callbackName+" was not called")}return responseContainer[0]};s.dataTypes[0]="json";overwritten=window[callbackName];window[callbackName]=function(){responseContainer=arguments};jqXHR.always(function(){if(overwritten===undefined){jQuery(window).removeProp(callbackName)}else{window[callbackName]=overwritten}if(s[callbackName]){s.jsonpCallback=originalSettings.jsonpCallback;oldCallbacks.push(callbackName)}if(responseContainer&&jQuery.isFunction(overwritten)){overwritten(responseContainer[0])}responseContainer=overwritten=undefined});return"script"}});jQuery.parseHTML=function(data,context,keepScripts){if(!data||typeof data!=="string"){return null}if(typeof context==="boolean"){keepScripts=context;context=false}context=context||document;var parsed=rsingleTag.exec(data),scripts=!keepScripts&&[];if(parsed){return[context.createElement(parsed[1])]}parsed=buildFragment([data],context,scripts);if(scripts&&scripts.length){jQuery(scripts).remove()}return jQuery.merge([],parsed.childNodes)};var _load=jQuery.fn.load
;jQuery.fn.load=function(url,params,callback){if(typeof url!=="string"&&_load){return _load.apply(this,arguments)}var selector,type,response,self=this,off=url.indexOf(" ");if(off>-1){selector=jQuery.trim(url.slice(off));url=url.slice(0,off)}if(jQuery.isFunction(params)){callback=params;params=undefined}else if(params&&typeof params==="object"){type="POST"}if(self.length>0){jQuery.ajax({url:url,type:type||"GET",dataType:"html",data:params}).done(function(responseText){response=arguments;self.html(selector?jQuery("<div>").append(jQuery.parseHTML(responseText)).find(selector):responseText)}).always(callback&&function(jqXHR,status){self.each(function(){callback.apply(this,response||[jqXHR.responseText,status,jqXHR])})})}return this};jQuery.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(i,type){jQuery.fn[type]=function(fn){return this.on(type,fn)}});jQuery.expr.filters.animated=function(elem){return jQuery.grep(jQuery.timers,function(fn){return elem===fn.elem}).length};function getWindow(elem){return jQuery.isWindow(elem)?elem:elem.nodeType===9&&elem.defaultView}jQuery.offset={setOffset:function(elem,options,i){var curPosition,curLeft,curCSSTop,curTop,curOffset,curCSSLeft,calculatePosition,position=jQuery.css(elem,"position"),curElem=jQuery(elem),props={};if(position==="static"){elem.style.position="relative"}curOffset=curElem.offset();curCSSTop=jQuery.css(elem,"top");curCSSLeft=jQuery.css(elem,"left");calculatePosition=(position==="absolute"||position==="fixed")&&(curCSSTop+curCSSLeft).indexOf("auto")>-1;if(calculatePosition){curPosition=curElem.position();curTop=curPosition.top;curLeft=curPosition.left}else{curTop=parseFloat(curCSSTop)||0;curLeft=parseFloat(curCSSLeft)||0}if(jQuery.isFunction(options)){options=options.call(elem,i,jQuery.extend({},curOffset))}if(options.top!=null){props.top=options.top-curOffset.top+curTop}if(options.left!=null){props.left=options.left-curOffset.left+curLeft}if("using"in options){options.using.call(elem,props)}else{curElem.css(props)}}};jQuery.fn.extend({offset:function(options){if(arguments.length){return options===undefined?this:this.each(function(i){jQuery.offset.setOffset(this,options,i)})}var docElem,win,elem=this[0],box={top:0,left:0},doc=elem&&elem.ownerDocument;if(!doc){return}docElem=doc.documentElement;if(!jQuery.contains(docElem,elem)){return box}box=elem.getBoundingClientRect();win=getWindow(doc);return{top:box.top+win.pageYOffset-docElem.clientTop,left:box.left+win.pageXOffset-docElem.clientLeft}},position:function(){if(!this[0]){return}var offsetParent,offset,elem=this[0],parentOffset={top:0,left:0};if(jQuery.css(elem,"position")==="fixed"){offset=elem.getBoundingClientRect()}else{offsetParent=this.offsetParent();offset=this.offset();if(!jQuery.nodeName(offsetParent[0],"html")){parentOffset=offsetParent.offset()}parentOffset.top+=jQuery.css(offsetParent[0],"borderTopWidth",true);parentOffset.left+=jQuery.css(offsetParent[0],"borderLeftWidth",true)}return{top:offset.top-parentOffset.top-jQuery.css(elem,"marginTop",true),left:offset.left-parentOffset.left-jQuery.css(elem,"marginLeft",true)}},offsetParent:function(){return this.map(function(){var offsetParent=this.offsetParent;while(offsetParent&&jQuery.css(offsetParent,"position")==="static"){offsetParent=offsetParent.offsetParent}return offsetParent||documentElement})}});jQuery.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(method,prop){var top="pageYOffset"===prop;jQuery.fn[method]=function(val){return access(this,function(elem,method,val){var win=getWindow(elem);if(val===undefined){return win?win[prop]:elem[method]}if(win){win.scrollTo(!top?val:win.pageXOffset,top?val:win.pageYOffset)}else{elem[method]=val}},method,val,arguments.length)}});jQuery.each(["top","left"],function(i,prop){jQuery.cssHooks[prop]=addGetHookIf(support.pixelPosition,function(elem,computed){if(computed){computed=curCSS(elem,prop);return rnumnonpx.test(computed)?jQuery(elem).position()[prop]+"px":computed}})});jQuery.each({Height:"height",Width:"width"},function(name,type){jQuery.each({padding:"inner"+name,content:type,"":"outer"+name},function(defaultExtra,funcName){jQuery.fn[funcName]=function(margin,value){var chainable=arguments.length&&(defaultExtra||typeof margin!=="boolean"),extra=defaultExtra||(margin===true||value===true?"margin":"border");return access(this,function(elem,type,value){var doc;if(jQuery.isWindow(elem)){return elem.document.documentElement["client"+name]}if(elem.nodeType===9){doc=elem.documentElement;return Math.max(elem.body["scroll"+name],doc["scroll"+name],elem.body["offset"+name],doc["offset"+name],doc["client"+name])}return value===undefined?jQuery.css(elem,type,extra):jQuery.style(elem,type,value,extra)},type,chainable?margin:undefined,chainable,null)}})});jQuery.fn.extend({bind:function(types,data,fn){return this.on(types,null,data,fn)},unbind:function(types,fn){return this.off(types,null,fn)},delegate:function(selector,types,data,fn){return this.on(types,selector,data,fn)},undelegate:function(selector,types,fn){return arguments.length===1?this.off(selector,"**"):this.off(types,selector||"**",fn)},size:function(){return this.length}});jQuery.fn.andSelf=jQuery.fn.addBack;if(typeof define==="function"&&define.amd){define("jquery",[],function(){return jQuery})}var _jQuery=window.jQuery,_$=window.$;jQuery.noConflict=function(deep){if(window.$===jQuery){window.$=_$}if(deep&&window.jQuery===jQuery){window.jQuery=_jQuery}return jQuery};if(!noGlobal){window.jQuery=window.$=jQuery}return jQuery});(function(jQuery,window,undefined){jQuery.migrateVersion="1.4.1";var warnedAbout={};jQuery.migrateWarnings=[];if(window.console&&window.console.log){window.console.log("JQMIGRATE: Migrate is installed"+(jQuery.migrateMute?"":" with logging active")+", version "+jQuery.migrateVersion)}if(jQuery.migrateTrace===undefined){jQuery.migrateTrace=true}jQuery.migrateReset=function(){warnedAbout={};jQuery.migrateWarnings.length=0};function migrateWarn(msg){var console=window.console;if(!warnedAbout[msg]){warnedAbout[msg]=true;jQuery.migrateWarnings.push(msg);if(console&&console.warn&&!jQuery.migrateMute){console.warn("JQMIGRATE: "+msg);if(jQuery.migrateTrace&&console.trace){console.trace()}}}}function migrateWarnProp(obj,prop,value,msg){if(Object.defineProperty){try{Object.defineProperty(obj,prop,{configurable:true,enumerable:true,get:function(){migrateWarn(msg);return value},set:function(newValue){migrateWarn(msg);value=newValue}});return}catch(err){}}jQuery._definePropertyBroken=true;obj[prop]=value}if(document.compatMode==="BackCompat"){migrateWarn("jQuery is not compatible with Quirks Mode")}var attrFn=jQuery("<input/>",{size:1}).attr("size")&&jQuery.attrFn,oldAttr=jQuery.attr,valueAttrGet=jQuery.attrHooks.value&&jQuery.attrHooks.value.get||function(){return null},valueAttrSet=jQuery.attrHooks.value&&jQuery.attrHooks.value.set||function(){return undefined},rnoType=/^(?:input|button)$/i,rnoAttrNodeType=/^[238]$/,rboolean=/^(?:autofocus|autoplay|async|checked|controls|defer|disabled|hidden|loop|multiple|open|readonly|required|scoped|selected)$/i,ruseDefault=/^(?:checked|selected)$/i;migrateWarnProp(jQuery,"attrFn",attrFn||{},"jQuery.attrFn is deprecated");jQuery.attr=function(elem,name,value,pass){var lowerName=name.toLowerCase(),nType=elem&&elem.nodeType;if(pass){if(oldAttr.length<4){migrateWarn("jQuery.fn.attr( props, pass ) is deprecated")}if(elem&&!rnoAttrNodeType.test(nType)&&(attrFn?name in attrFn:jQuery.isFunction(jQuery.fn[name]))){return jQuery(elem)[name](value)}}if(name==="type"&&value!==undefined&&rnoType.test(elem.nodeName)&&elem.parentNode){migrateWarn("Can't change the 'type' of an input or button in IE 6/7/8")}if(!jQuery.attrHooks[lowerName]&&rboolean.test(lowerName)){jQuery.attrHooks[lowerName]={get:function(elem,name){var attrNode,property=jQuery.prop(elem,name);return property===true||typeof property!=="boolean"&&(attrNode=elem.getAttributeNode(name))&&attrNode.nodeValue!==false?name.toLowerCase():undefined},set:function(elem,value,name){var propName;if(value===false){jQuery.removeAttr(elem,name)}else{propName=jQuery.propFix[name]||name;if(propName in elem){elem[propName]=true}elem.setAttribute(name,name.toLowerCase())}return name}};if(ruseDefault.test(lowerName)){migrateWarn("jQuery.fn.attr('"+lowerName+"') might use property instead of attribute")}}return oldAttr.call(jQuery,elem,name,value)};jQuery.attrHooks.value={get:function(elem,name){var nodeName=(elem.nodeName||"").toLowerCase();if(nodeName==="button"){return valueAttrGet.apply(this,arguments)}if(nodeName!=="input"&&nodeName!=="option"){migrateWarn("jQuery.fn.attr('value') no longer gets properties")}return name in elem?elem.value:null},set:function(elem,value){var nodeName=(elem.nodeName||"").toLowerCase();if(nodeName==="button"){return valueAttrSet.apply(this,arguments)}if(nodeName!=="input"&&nodeName!=="option"){migrateWarn("jQuery.fn.attr('value', val) no longer sets properties")}elem.value=value}};var matched,browser,oldInit=jQuery.fn.init,oldFind=jQuery.find,oldParseJSON=jQuery.parseJSON,rspaceAngle=/^\s*</,rattrHashTest=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/,rattrHashGlob=/\[(\s*[-\w]+\s*)([~|^$*]?=)\s*([-\w#]*?#[-\w#]*)\s*\]/g,rquickExpr=/^([^<]*)(<[\w\W]+>)([^>]*)$/;jQuery.fn.init=function(selector,context,rootjQuery){var match,ret;if(selector&&typeof selector==="string"){if(!jQuery.isPlainObject(context)&&(match=rquickExpr.exec(jQuery.trim(selector)))&&match[0]){if(!rspaceAngle.test(selector)){migrateWarn("$(html) HTML strings must start with '<' character")}if(match[3]){migrateWarn("$(html) HTML text after last tag is ignored")}if(match[0].charAt(0)==="#"){migrateWarn("HTML string cannot start with a '#' character");jQuery.error("JQMIGRATE: Invalid selector string (XSS)")}if(context&&context.context&&context.context.nodeType){context=context.context}if(jQuery.parseHTML){return oldInit.call(this,jQuery.parseHTML(match[2],context&&context.ownerDocument||context||document,true),context,rootjQuery)}}}ret=oldInit.apply(this,arguments);if(selector&&selector.selector!==undefined){ret.selector=selector.selector;ret.context=selector.context}else{ret.selector=typeof selector==="string"?selector:"";if(selector){ret.context=selector.nodeType?selector:context||document}}return ret};jQuery.fn.init.prototype=jQuery.fn;jQuery.find=function(selector){var args=Array.prototype.slice.call(arguments);if(typeof selector==="string"&&rattrHashTest.test(selector)){try{document.querySelector(selector)}catch(err1){selector=selector.replace(rattrHashGlob,function(_,attr,op,value){return"["+attr+op+'"'+value+'"]'});try{document.querySelector(selector);migrateWarn("Attribute selector with '#' must be quoted: "+args[0]);args[0]=selector}catch(err2){migrateWarn("Attribute selector with '#' was not fixed: "+args[0])}}}return oldFind.apply(this,args)};var findProp;for(findProp in oldFind){if(Object.prototype.hasOwnProperty.call(oldFind,findProp)){jQuery.find[findProp]=oldFind[findProp]}}jQuery.parseJSON=function(json){if(!json){migrateWarn("jQuery.parseJSON requires a valid JSON string");return null}return oldParseJSON.apply(this,arguments)};jQuery.uaMatch=function(ua){ua=ua.toLowerCase();var match=/(chrome)[ \/]([\w.]+)/.exec(ua)||/(webkit)[ \/]([\w.]+)/.exec(ua)||/(opera)(?:.*version|)[ \/]([\w.]+)/.exec(ua)||/(msie) ([\w.]+)/.exec(ua)||ua.indexOf("compatible")<0&&/(mozilla)(?:.*? rv:([\w.]+)|)/.exec(ua)||[];return{browser:match[1]||"",version:match[2]||"0"}};if(!jQuery.browser){matched=jQuery.uaMatch(navigator.userAgent);browser={};if(matched.browser){browser[matched.browser]=true;browser.version=matched.version}if(browser.chrome){browser.webkit=true}else if(browser.webkit){browser.safari=true}jQuery.browser=browser}migrateWarnProp(jQuery,"browser",jQuery.browser,"jQuery.browser is deprecated");jQuery.boxModel=jQuery.support.boxModel=document.compatMode==="CSS1Compat";migrateWarnProp(jQuery,"boxModel",jQuery.boxModel,"jQuery.boxModel is deprecated");migrateWarnProp(jQuery.support,"boxModel",jQuery.support.boxModel,"jQuery.support.boxModel is deprecated");jQuery.sub=function(){function jQuerySub(selector,context){return new jQuerySub.fn.init(selector,context)}jQuery.extend(true,jQuerySub,this);jQuerySub.superclass=this;jQuerySub.fn=jQuerySub.prototype=this();jQuerySub.fn.constructor=jQuerySub;jQuerySub.sub=this.sub;jQuerySub.fn.init=function init(selector,context){var instance=jQuery.fn.init.call(this,selector,context,rootjQuerySub);return instance instanceof jQuerySub?instance:jQuerySub(instance)};jQuerySub.fn.init.prototype=jQuerySub.fn;var rootjQuerySub=jQuerySub(document);migrateWarn("jQuery.sub() is deprecated");return jQuerySub};jQuery.fn.size=function(){migrateWarn("jQuery.fn.size() is deprecated; use the .length property");return this.length};var internalSwapCall=false;if(jQuery.swap){jQuery.each(["height","width","reliableMarginRight"],function(_,name){var oldHook=jQuery.cssHooks[name]&&jQuery.cssHooks[name].get;if(oldHook){jQuery.cssHooks[name].get=function(){var ret;internalSwapCall=true;ret=oldHook.apply(this,arguments);internalSwapCall=false;return ret}}})}jQuery.swap=function(elem,options,callback,args){var ret,name,old={};if(!internalSwapCall){migrateWarn("jQuery.swap() is undocumented and deprecated")}for(name in options){old[name]=elem.style[name];elem.style[name]=options[name]}ret=callback.apply(elem,args||[]);for(name in options){elem.style[name]=old[name]}return ret};jQuery.ajaxSetup({converters:{"text json":jQuery.parseJSON}});var oldFnData=jQuery.fn.data;jQuery.fn.data=function(name){var ret,evt,elem=this[0];if(elem&&name==="events"&&arguments.length===1){ret=jQuery.data(elem,name);evt=jQuery._data(elem,name);if((ret===undefined||ret===evt)&&evt!==undefined){migrateWarn("Use of jQuery.fn.data('events') is deprecated");return evt}}return oldFnData.apply(this,arguments)};var rscriptType=/\/(java|ecma)script/i;if(!jQuery.clean){jQuery.clean=function(elems,context,fragment,scripts){context=context||document;context=!context.nodeType&&context[0]||context;context=context.ownerDocument||context;migrateWarn("jQuery.clean() is deprecated");var i,elem,handleScript,jsTags,ret=[];jQuery.merge(ret,jQuery.buildFragment(elems,context).childNodes);if(fragment){handleScript=function(elem){if(!elem.type||rscriptType.test(elem.type)){return scripts?scripts.push(elem.parentNode?elem.parentNode.removeChild(elem):elem):fragment.appendChild(elem)}};for(i=0;(elem=ret[i])!=null;i++){if(!(jQuery.nodeName(elem,"script")&&handleScript(elem))){fragment.appendChild(elem);if(typeof elem.getElementsByTagName!=="undefined"){jsTags=jQuery.grep(jQuery.merge([],elem.getElementsByTagName("script")),handleScript);ret.splice.apply(ret,[i+1,0].concat(jsTags));i+=jsTags.length}}}}return ret}}var eventAdd=jQuery.event.add,eventRemove=jQuery.event.remove,eventTrigger=jQuery.event.trigger,oldToggle=jQuery.fn.toggle,oldLive=jQuery.fn.live,oldDie=jQuery.fn.die,oldLoad=jQuery.fn.load,ajaxEvents="ajaxStart|ajaxStop|ajaxSend|ajaxComplete|ajaxError|ajaxSuccess",rajaxEvent=new RegExp("\\b(?:"+ajaxEvents+")\\b"),rhoverHack=/(?:^|\s)hover(\.\S+|)\b/,hoverHack=function(events){if(typeof events!=="string"||jQuery.event.special.hover){return events}if(rhoverHack.test(events)){migrateWarn("'hover' pseudo-event is deprecated, use 'mouseenter mouseleave'")}return events&&events.replace(rhoverHack,"mouseenter$1 mouseleave$1")};if(jQuery.event.props&&jQuery.event.props[0]!=="attrChange"){jQuery.event.props.unshift("attrChange","attrName","relatedNode","srcElement")}if(jQuery.event.dispatch){migrateWarnProp(jQuery.event,"handle",jQuery.event.dispatch,"jQuery.event.handle is undocumented and deprecated")}jQuery.event.add=function(elem,types,handler,data,selector){if(elem!==document&&rajaxEvent.test(types)){migrateWarn("AJAX events should be attached to document: "+types)}eventAdd.call(this,elem,hoverHack(types||""),handler,data,selector)};jQuery.event.remove=function(elem,types,handler,selector,mappedTypes){eventRemove.call(this,elem,hoverHack(types)||"",handler,selector,mappedTypes)};jQuery.each(["load","unload","error"],function(_,name){jQuery.fn[name]=function(){var args=Array.prototype.slice.call(arguments,0);if(name==="load"&&typeof args[0]==="string"){return oldLoad.apply(this,args)}migrateWarn("jQuery.fn."+name+"() is deprecated");args.splice(0,0,name);if(arguments.length){return this.bind.apply(this,args)}this.triggerHandler.apply(this,args);return this}});jQuery.fn.toggle=function(fn,fn2){if(!jQuery.isFunction(fn)||!jQuery.isFunction(fn2)){return oldToggle.apply(this,arguments)}migrateWarn("jQuery.fn.toggle(handler, handler...) is deprecated");var args=arguments,guid=fn.guid||jQuery.guid++,i=0,toggler=function(event){var lastToggle=(jQuery._data(this,"lastToggle"+fn.guid)||0)%i;jQuery._data(this,"lastToggle"+fn.guid,lastToggle+1);event.preventDefault();return args[lastToggle].apply(this,arguments)||false};toggler.guid=guid;while(i<args.length){args[i++].guid=guid}return this.click(toggler)};jQuery.fn.live=function(types,data,fn){migrateWarn("jQuery.fn.live() is deprecated");if(oldLive){return oldLive.apply(this,arguments)}jQuery(this.context).on(types,this.selector,data,fn);return this};jQuery.fn.die=function(types,fn){migrateWarn("jQuery.fn.die() is deprecated");if(oldDie){return oldDie.apply(this,arguments)}jQuery(this.context).off(types,this.selector||"**",fn);return this};jQuery.event.trigger=function(event,data,elem,onlyHandlers){if(!elem&&!rajaxEvent.test(event)){migrateWarn("Global events are undocumented and deprecated")}return eventTrigger.call(this,event,data,elem||document,onlyHandlers)};jQuery.each(ajaxEvents.split("|"),function(_,name){jQuery.event.special[name]={setup:function(){var elem=this;if(elem!==document){jQuery.event.add(document,name+"."+jQuery.guid,function(){jQuery.event.trigger(name,Array.prototype.slice.call(arguments,1),elem,true)});jQuery._data(this,name,jQuery.guid++)}return false},teardown:function(){if(this!==document){jQuery.event.remove(document,name+"."+jQuery._data(this,name))}return false}}});jQuery.event.special.ready={setup:function(){if(this===document){migrateWarn("'ready' event is deprecated")}}};var oldSelf=jQuery.fn.andSelf||jQuery.fn.addBack,oldFnFind=jQuery.fn.find;jQuery.fn.andSelf=function(){migrateWarn("jQuery.fn.andSelf() replaced by jQuery.fn.addBack()");return oldSelf.apply(this,arguments)};jQuery.fn.find=function(selector){var ret=oldFnFind.apply(this,arguments);ret.context=this.context;ret.selector=this.selector?this.selector+" "+selector:selector;return ret};if(jQuery.Callbacks){var oldDeferred=jQuery.Deferred,tuples=[["resolve","done",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),"resolved"],["reject","fail",jQuery.Callbacks("once memory"),jQuery.Callbacks("once memory"),"rejected"],["notify","progress",jQuery.Callbacks("memory"),jQuery.Callbacks("memory")]];jQuery.Deferred=function(func){var deferred=oldDeferred(),promise=deferred.promise();deferred.pipe=promise.pipe=function(){var fns=arguments;migrateWarn("deferred.pipe() is deprecated");return jQuery.Deferred(function(newDefer){jQuery.each(tuples,function(i,tuple){var fn=jQuery.isFunction(fns[i])&&fns[i];deferred[tuple[1]](function(){var returned=fn&&fn.apply(this,arguments);if(returned&&jQuery.isFunction(returned.promise)){returned.promise().done(newDefer.resolve).fail(newDefer.reject).progress(newDefer.notify)}else{newDefer[tuple[0]+"With"](this===promise?newDefer.promise():this,fn?[returned]:arguments)}})});fns=null}).promise()};deferred.isResolved=function(){migrateWarn("deferred.isResolved is deprecated");return deferred.state()==="resolved"};deferred.isRejected=function(){migrateWarn("deferred.isRejected is deprecated");return deferred.state()==="rejected"};if(func){func.call(deferred,deferred)}return deferred}}})(jQuery,window);(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else{factory(jQuery)}})(function($){$.ui=$.ui||{};$.extend($.ui,{version:"1.11.4",keyCode:{BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38}});$.fn.extend({scrollParent:function(includeHidden){var position=this.css("position"),excludeStaticParent=position==="absolute",overflowRegex=includeHidden?/(auto|scroll|hidden)/:/(auto|scroll)/,scrollParent=this.parents().filter(function(){var parent=$(this);if(excludeStaticParent&&parent.css("position")==="static"){return false}return overflowRegex.test(parent.css("overflow")+parent.css("overflow-y")+parent.css("overflow-x"))}).eq(0);return position==="fixed"||!scrollParent.length?$(this[0].ownerDocument||document):scrollParent},uniqueId:function(){var uuid=0;return function(){return this.each(function(){if(!this.id){this.id="ui-id-"+ ++uuid}})}}(),removeUniqueId:function(){return this.each(function(){if(/^ui-id-\d+$/.test(this.id)){$(this).removeAttr("id")}})}});function focusable(element,isTabIndexNotNaN){var map,mapName,img,nodeName=element.nodeName.toLowerCase();if("area"===nodeName){map=element.parentNode;mapName=map.name;if(!element.href||!mapName||map.nodeName.toLowerCase()!=="map"){return false}img=$("img[usemap='#"+mapName+"']")[0];return!!img&&visible(img)}return(/^(input|select|textarea|button|object)$/.test(nodeName)?!element.disabled:"a"===nodeName?element.href||isTabIndexNotNaN:isTabIndexNotNaN)&&visible(element)}function visible(element){return $.expr.filters.visible(element)&&!$(element).parents().addBack().filter(function(){return $.css(this,"visibility")==="hidden"}).length}$.extend($.expr[":"],{data:$.expr.createPseudo?$.expr.createPseudo(function(dataName){return function(elem){return!!$.data(elem,dataName)}}):function(elem,i,match){return!!$.data(elem,match[3])},focusable:function(element){return focusable(element,!isNaN($.attr(element,"tabindex")))},tabbable:function(element){var tabIndex=$.attr(element,"tabindex"),isTabIndexNaN=isNaN(tabIndex);return(isTabIndexNaN||tabIndex>=0)&&focusable(element,!isTabIndexNaN)}});if(!$("<a>").outerWidth(1).jquery){$.each(["Width","Height"],function(i,name){var side=name==="Width"?["Left","Right"]:["Top","Bottom"],type=name.toLowerCase(),orig={innerWidth:$.fn.innerWidth,innerHeight:$.fn.innerHeight,outerWidth:$.fn.outerWidth,outerHeight:$.fn.outerHeight};function reduce(elem,size,border,margin){$.each(side,function(){size-=parseFloat($.css(elem,"padding"+this))||0;if(border){size-=parseFloat($.css(elem,"border"+this+"Width"))||0}if(margin){size-=parseFloat($.css(elem,"margin"+this))||0}});return size}$.fn["inner"+name]=function(size){if(size===undefined){return orig["inner"+name].call(this)}return this.each(function(){$(this).css(type,reduce(this,size)+"px")})};$.fn["outer"+name]=function(size,margin){if(typeof size!=="number"){return orig["outer"+name].call(this,size)}return this.each(function(){$(this).css(type,reduce(this,size,true,margin)+"px")})}})}if(!$.fn.addBack){$.fn.addBack=function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector))}}if($("<a>").data("a-b","a").removeData("a-b").data("a-b")){$.fn.removeData=function(removeData){return function(key){if(arguments.length){return removeData.call(this,$.camelCase(key))}else{return removeData.call(this)}}}($.fn.removeData)}$.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());$.fn.extend({focus:function(orig){return function(delay,fn){return typeof delay==="number"?this.each(function(){var elem=this;setTimeout(function(){$(elem).focus();if(fn){fn.call(elem)}},delay)}):orig.apply(this,arguments)}}($.fn.focus),disableSelection:function(){var eventType="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.bind(eventType+".ui-disableSelection",function(event){event.preventDefault()})}}(),enableSelection:function(){return this.unbind(".ui-disableSelection")},zIndex:function(zIndex){if(zIndex!==undefined){return this.css("zIndex",zIndex)}if(this.length){var elem=$(this[0]),position,value;while(elem.length&&elem[0]!==document){position=elem.css("position");if(position==="absolute"||position==="relative"||position==="fixed"){value=parseInt(elem.css("zIndex"),10);if(!isNaN(value)&&value!==0){return value}}elem=elem.parent()}}return 0}});$.ui.plugin={add:function(module,option,set){var i,proto=$.ui[module].prototype;for(i in set){proto.plugins[i]=proto.plugins[i]||[];proto.plugins[i].push([option,set[i]])}},call:function(instance,name,args,allowDisconnected){var i,set=instance.plugins[name];if(!set){return}if(!allowDisconnected&&(!instance.element[0].parentNode||instance.element[0].parentNode.nodeType===11)){return}for(i=0;i<set.length;i++){if(instance.options[set[i][0]]){set[i][1].apply(instance.element,args)}}}};var widget_uuid=0,widget_slice=Array.prototype.slice;$.cleanData=function(orig){return function(elems){var events,elem,i;for(i=0;(elem=elems[i])!=null;i++){try{events=$._data(elem,"events");if(events&&events.remove){$(elem).triggerHandler("remove")}}catch(e){}}orig(elems)}}($.cleanData);$.widget=function(name,base,prototype){var fullName,existingConstructor,constructor,basePrototype,proxiedPrototype={},namespace=name.split(".")[0];name=name.split(".")[1];fullName=namespace+"-"+name;if(!prototype){prototype=base;base=$.Widget}$.expr[":"][fullName.toLowerCase()]=function(elem){return!!$.data(elem,fullName)};$[namespace]=$[namespace]||{};existingConstructor=$[namespace][name];constructor=$[namespace][name]=function(options,element){if(!this._createWidget){return new constructor(options,element)}if(arguments.length){this._createWidget(options,element)}};$.extend(constructor,existingConstructor,{version:prototype.version,_proto:$.extend({},prototype),_childConstructors:[]});basePrototype=new base;basePrototype.options=$.widget.extend({},basePrototype.options);$.each(prototype,function(prop,value){if(!$.isFunction(value)){proxiedPrototype[prop]=value;return}proxiedPrototype[prop]=function(){var _super=function(){return base.prototype[prop].apply(this,arguments)},_superApply=function(args){return base.prototype[prop].apply(this,args)};return function(){var __super=this._super,__superApply=this._superApply,returnValue;this._super=_super;this._superApply=_superApply;returnValue=value.apply(this,arguments);this._super=__super;this._superApply=__superApply;return returnValue}}()});constructor.prototype=$.widget.extend(basePrototype,{widgetEventPrefix:existingConstructor?basePrototype.widgetEventPrefix||name:name},proxiedPrototype,{constructor:constructor,namespace:namespace,widgetName:name,widgetFullName:fullName});if(existingConstructor){$.each(existingConstructor._childConstructors,function(i,child){var childPrototype=child.prototype;$.widget(childPrototype.namespace+"."+childPrototype.widgetName,constructor,child._proto)});delete existingConstructor._childConstructors}else{base._childConstructors.push(constructor)}$.widget.bridge(name,constructor);return constructor};$.widget.extend=function(target){var input=widget_slice.call(arguments,1),inputIndex=0,inputLength=input.length,key,value;for(;inputIndex<inputLength;inputIndex++){for(key in input[inputIndex]){value=input[inputIndex][key];if(input[inputIndex].hasOwnProperty(key)&&value!==undefined){if($.isPlainObject(value)){target[key]=$.isPlainObject(target[key])?$.widget.extend({},target[key],value):$.widget.extend({},value)}else{target[key]=value}}}}return target};$.widget.bridge=function(name,object){var fullName=object.prototype.widgetFullName||name;$.fn[name]=function(options){var isMethodCall=typeof options==="string",args=widget_slice.call(arguments,1),returnValue=this;if(isMethodCall){this.each(function(){var methodValue,instance=$.data(this,fullName);if(options==="instance"){returnValue=instance;return false}if(!instance){return $.error("cannot call methods on "+name+" prior to initialization; "+"attempted to call method '"+options+"'")}if(!$.isFunction(instance[options])||options.charAt(0)==="_"){return $.error("no such method '"+options+"' for "+name+" widget instance")}methodValue=instance[options].apply(instance,args);if(methodValue!==instance&&methodValue!==undefined){returnValue=methodValue&&methodValue.jquery?returnValue.pushStack(methodValue.get()):methodValue;return false}})}else{if(args.length){options=$.widget.extend.apply(null,[options].concat(args))}this.each(function(){var instance=$.data(this,fullName);if(instance){instance.option(options||{});if(instance._init){instance._init()}}else{$.data(this,fullName,new object(options,this))}})}return returnValue}};$.Widget=function(){};$.Widget._childConstructors=[];$.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"<div>",options:{disabled:false,create:null},_createWidget:function(options,element){element=$(element||this.defaultElement||this)[0];this.element=$(element);this.uuid=widget_uuid++;this.eventNamespace="."+this.widgetName+this.uuid;this.bindings=$();this.hoverable=$();this.focusable=$();if(element!==this){$.data(element,this.widgetFullName,this);this._on(true,this.element,{remove:function(event){if(event.target===element){this.destroy()}}});this.document=$(element.style?element.ownerDocument:element.document||element);this.window=$(this.document[0].defaultView||this.document[0].parentWindow)}this.options=$.widget.extend({},this.options,this._getCreateOptions(),options);this._create();this._trigger("create",null,this._getCreateEventData());this._init()},_getCreateOptions:$.noop,_getCreateEventData:$.noop,_create:$.noop,_init:$.noop,destroy:function(){this._destroy();this.element.unbind(this.eventNamespace).removeData(this.widgetFullName).removeData($.camelCase(this.widgetFullName));this.widget().unbind(this.eventNamespace).removeAttr("aria-disabled").removeClass(this.widgetFullName+"-disabled "+"ui-state-disabled");this.bindings.unbind(this.eventNamespace);this.hoverable.removeClass("ui-state-hover");this.focusable.removeClass("ui-state-focus")},_destroy:$.noop,widget:function(){return this.element},option:function(key,value){var options=key,parts,curOption,i;if(arguments.length===0){return $.widget.extend({},this.options)}if(typeof key==="string"){options={};parts=key.split(".");key=parts.shift();if(parts.length){curOption=options[key]=$.widget.extend({},this.options[key]);for(i=0;i<parts.length-1;i++){curOption[parts[i]]=curOption[parts[i]]||{};curOption=curOption[parts[i]]}key=parts.pop();if(arguments.length===1){return curOption[key]===undefined?null:curOption[key]}curOption[key]=value}else{if(arguments.length===1){return this.options[key]===undefined?null:this.options[key]}options[key]=value}}this._setOptions(options);return this},_setOptions:function(options){var key;for(key in options){this._setOption(key,options[key])}return this},_setOption:function(key,value){this.options[key]=value;if(key==="disabled"){this.widget().toggleClass(this.widgetFullName+"-disabled",!!value);if(value){this.hoverable.removeClass("ui-state-hover");this.focusable.removeClass("ui-state-focus")}}return this},enable:function(){return this._setOptions({disabled:false})},disable:function(){return this._setOptions({disabled:true})},_on:function(suppressDisabledCheck,element,handlers){var delegateElement,instance=this;if(typeof suppressDisabledCheck!=="boolean"){handlers=element;element=suppressDisabledCheck;suppressDisabledCheck=false}if(!handlers){handlers=element;element=this.element;delegateElement=this.widget()}else{element=delegateElement=$(element);this.bindings=this.bindings.add(element)}$.each(handlers,function(event,handler){function handlerProxy(){if(!suppressDisabledCheck&&(instance.options.disabled===true||$(this).hasClass("ui-state-disabled"))){return}return(typeof handler==="string"?instance[handler]:handler).apply(instance,arguments)}if(typeof handler!=="string"){handlerProxy.guid=handler.guid=handler.guid||handlerProxy.guid||$.guid++}var match=event.match(/^([\w:-]*)\s*(.*)$/),eventName=match[1]+instance.eventNamespace,selector=match[2];if(selector){
delegateElement.delegate(selector,eventName,handlerProxy)}else{element.bind(eventName,handlerProxy)}})},_off:function(element,eventName){eventName=(eventName||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace;element.unbind(eventName).undelegate(eventName);this.bindings=$(this.bindings.not(element).get());this.focusable=$(this.focusable.not(element).get());this.hoverable=$(this.hoverable.not(element).get())},_delay:function(handler,delay){function handlerProxy(){return(typeof handler==="string"?instance[handler]:handler).apply(instance,arguments)}var instance=this;return setTimeout(handlerProxy,delay||0)},_hoverable:function(element){this.hoverable=this.hoverable.add(element);this._on(element,{mouseenter:function(event){$(event.currentTarget).addClass("ui-state-hover")},mouseleave:function(event){$(event.currentTarget).removeClass("ui-state-hover")}})},_focusable:function(element){this.focusable=this.focusable.add(element);this._on(element,{focusin:function(event){$(event.currentTarget).addClass("ui-state-focus")},focusout:function(event){$(event.currentTarget).removeClass("ui-state-focus")}})},_trigger:function(type,event,data){var prop,orig,callback=this.options[type];data=data||{};event=$.Event(event);event.type=(type===this.widgetEventPrefix?type:this.widgetEventPrefix+type).toLowerCase();event.target=this.element[0];orig=event.originalEvent;if(orig){for(prop in orig){if(!(prop in event)){event[prop]=orig[prop]}}}this.element.trigger(event,data);return!($.isFunction(callback)&&callback.apply(this.element[0],[event].concat(data))===false||event.isDefaultPrevented())}};$.each({show:"fadeIn",hide:"fadeOut"},function(method,defaultEffect){$.Widget.prototype["_"+method]=function(element,options,callback){if(typeof options==="string"){options={effect:options}}var hasOptions,effectName=!options?method:options===true||typeof options==="number"?defaultEffect:options.effect||defaultEffect;options=options||{};if(typeof options==="number"){options={duration:options}}hasOptions=!$.isEmptyObject(options);options.complete=callback;if(options.delay){element.delay(options.delay)}if(hasOptions&&$.effects&&$.effects.effect[effectName]){element[method](options)}else if(effectName!==method&&element[effectName]){element[effectName](options.duration,options.easing,callback)}else{element.queue(function(next){$(this)[method]();if(callback){callback.call(element[0])}next()})}}});var widget=$.widget;var mouseHandled=false;$(document).mouseup(function(){mouseHandled=false});var mouse=$.widget("ui.mouse",{version:"1.11.4",options:{cancel:"input,textarea,button,select,option",distance:1,delay:0},_mouseInit:function(){var that=this;this.element.bind("mousedown."+this.widgetName,function(event){return that._mouseDown(event)}).bind("click."+this.widgetName,function(event){if(true===$.data(event.target,that.widgetName+".preventClickEvent")){$.removeData(event.target,that.widgetName+".preventClickEvent");event.stopImmediatePropagation();return false}});this.started=false},_mouseDestroy:function(){this.element.unbind("."+this.widgetName);if(this._mouseMoveDelegate){this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate)}},_mouseDown:function(event){if(mouseHandled){return}this._mouseMoved=false;this._mouseStarted&&this._mouseUp(event);this._mouseDownEvent=event;var that=this,btnIsLeft=event.which===1,elIsCancel=typeof this.options.cancel==="string"&&event.target.nodeName?$(event.target).closest(this.options.cancel).length:false;if(!btnIsLeft||elIsCancel||!this._mouseCapture(event)){return true}this.mouseDelayMet=!this.options.delay;if(!this.mouseDelayMet){this._mouseDelayTimer=setTimeout(function(){that.mouseDelayMet=true},this.options.delay)}if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=this._mouseStart(event)!==false;if(!this._mouseStarted){event.preventDefault();return true}}if(true===$.data(event.target,this.widgetName+".preventClickEvent")){$.removeData(event.target,this.widgetName+".preventClickEvent")}this._mouseMoveDelegate=function(event){return that._mouseMove(event)};this._mouseUpDelegate=function(event){return that._mouseUp(event)};this.document.bind("mousemove."+this.widgetName,this._mouseMoveDelegate).bind("mouseup."+this.widgetName,this._mouseUpDelegate);event.preventDefault();mouseHandled=true;return true},_mouseMove:function(event){if(this._mouseMoved){if($.ui.ie&&(!document.documentMode||document.documentMode<9)&&!event.button){return this._mouseUp(event)}else if(!event.which){return this._mouseUp(event)}}if(event.which||event.button){this._mouseMoved=true}if(this._mouseStarted){this._mouseDrag(event);return event.preventDefault()}if(this._mouseDistanceMet(event)&&this._mouseDelayMet(event)){this._mouseStarted=this._mouseStart(this._mouseDownEvent,event)!==false;this._mouseStarted?this._mouseDrag(event):this._mouseUp(event)}return!this._mouseStarted},_mouseUp:function(event){this.document.unbind("mousemove."+this.widgetName,this._mouseMoveDelegate).unbind("mouseup."+this.widgetName,this._mouseUpDelegate);if(this._mouseStarted){this._mouseStarted=false;if(event.target===this._mouseDownEvent.target){$.data(event.target,this.widgetName+".preventClickEvent",true)}this._mouseStop(event)}mouseHandled=false;return false},_mouseDistanceMet:function(event){return Math.max(Math.abs(this._mouseDownEvent.pageX-event.pageX),Math.abs(this._mouseDownEvent.pageY-event.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return true}});(function(){$.ui=$.ui||{};var cachedScrollbarWidth,supportsOffsetFractions,max=Math.max,abs=Math.abs,round=Math.round,rhorizontal=/left|center|right/,rvertical=/top|center|bottom/,roffset=/[\+\-]\d+(\.[\d]+)?%?/,rposition=/^\w+/,rpercent=/%$/,_position=$.fn.position;function getOffsets(offsets,width,height){return[parseFloat(offsets[0])*(rpercent.test(offsets[0])?width/100:1),parseFloat(offsets[1])*(rpercent.test(offsets[1])?height/100:1)]}function parseCss(element,property){return parseInt($.css(element,property),10)||0}function getDimensions(elem){var raw=elem[0];if(raw.nodeType===9){return{width:elem.width(),height:elem.height(),offset:{top:0,left:0}}}if($.isWindow(raw)){return{width:elem.width(),height:elem.height(),offset:{top:elem.scrollTop(),left:elem.scrollLeft()}}}if(raw.preventDefault){return{width:0,height:0,offset:{top:raw.pageY,left:raw.pageX}}}return{width:elem.outerWidth(),height:elem.outerHeight(),offset:elem.offset()}}$.position={scrollbarWidth:function(){if(cachedScrollbarWidth!==undefined){return cachedScrollbarWidth}var w1,w2,div=$("<div style='display:block;position:absolute;width:50px;height:50px;overflow:hidden;'><div style='height:100px;width:auto;'></div></div>"),innerDiv=div.children()[0];$("body").append(div);w1=innerDiv.offsetWidth;div.css("overflow","scroll");w2=innerDiv.offsetWidth;if(w1===w2){w2=div[0].clientWidth}div.remove();return cachedScrollbarWidth=w1-w2},getScrollInfo:function(within){var overflowX=within.isWindow||within.isDocument?"":within.element.css("overflow-x"),overflowY=within.isWindow||within.isDocument?"":within.element.css("overflow-y"),hasOverflowX=overflowX==="scroll"||overflowX==="auto"&&within.width<within.element[0].scrollWidth,hasOverflowY=overflowY==="scroll"||overflowY==="auto"&&within.height<within.element[0].scrollHeight;return{width:hasOverflowY?$.position.scrollbarWidth():0,height:hasOverflowX?$.position.scrollbarWidth():0}},getWithinInfo:function(element){var withinElement=$(element||window),isWindow=$.isWindow(withinElement[0]),isDocument=!!withinElement[0]&&withinElement[0].nodeType===9;return{element:withinElement,isWindow:isWindow,isDocument:isDocument,offset:withinElement.offset()||{left:0,top:0},scrollLeft:withinElement.scrollLeft(),scrollTop:withinElement.scrollTop(),width:isWindow||isDocument?withinElement.width():withinElement.outerWidth(),height:isWindow||isDocument?withinElement.height():withinElement.outerHeight()}}};$.fn.position=function(options){if(!options||!options.of){return _position.apply(this,arguments)}options=$.extend({},options);var atOffset,targetWidth,targetHeight,targetOffset,basePosition,dimensions,target=$(options.of),within=$.position.getWithinInfo(options.within),scrollInfo=$.position.getScrollInfo(within),collision=(options.collision||"flip").split(" "),offsets={};dimensions=getDimensions(target);if(target[0].preventDefault){options.at="left top"}targetWidth=dimensions.width;targetHeight=dimensions.height;targetOffset=dimensions.offset;basePosition=$.extend({},targetOffset);$.each(["my","at"],function(){var pos=(options[this]||"").split(" "),horizontalOffset,verticalOffset;if(pos.length===1){pos=rhorizontal.test(pos[0])?pos.concat(["center"]):rvertical.test(pos[0])?["center"].concat(pos):["center","center"]}pos[0]=rhorizontal.test(pos[0])?pos[0]:"center";pos[1]=rvertical.test(pos[1])?pos[1]:"center";horizontalOffset=roffset.exec(pos[0]);verticalOffset=roffset.exec(pos[1]);offsets[this]=[horizontalOffset?horizontalOffset[0]:0,verticalOffset?verticalOffset[0]:0];options[this]=[rposition.exec(pos[0])[0],rposition.exec(pos[1])[0]]});if(collision.length===1){collision[1]=collision[0]}if(options.at[0]==="right"){basePosition.left+=targetWidth}else if(options.at[0]==="center"){basePosition.left+=targetWidth/2}if(options.at[1]==="bottom"){basePosition.top+=targetHeight}else if(options.at[1]==="center"){basePosition.top+=targetHeight/2}atOffset=getOffsets(offsets.at,targetWidth,targetHeight);basePosition.left+=atOffset[0];basePosition.top+=atOffset[1];return this.each(function(){var collisionPosition,using,elem=$(this),elemWidth=elem.outerWidth(),elemHeight=elem.outerHeight(),marginLeft=parseCss(this,"marginLeft"),marginTop=parseCss(this,"marginTop"),collisionWidth=elemWidth+marginLeft+parseCss(this,"marginRight")+scrollInfo.width,collisionHeight=elemHeight+marginTop+parseCss(this,"marginBottom")+scrollInfo.height,position=$.extend({},basePosition),myOffset=getOffsets(offsets.my,elem.outerWidth(),elem.outerHeight());if(options.my[0]==="right"){position.left-=elemWidth}else if(options.my[0]==="center"){position.left-=elemWidth/2}if(options.my[1]==="bottom"){position.top-=elemHeight}else if(options.my[1]==="center"){position.top-=elemHeight/2}position.left+=myOffset[0];position.top+=myOffset[1];if(!supportsOffsetFractions){position.left=round(position.left);position.top=round(position.top)}collisionPosition={marginLeft:marginLeft,marginTop:marginTop};$.each(["left","top"],function(i,dir){if($.ui.position[collision[i]]){$.ui.position[collision[i]][dir](position,{targetWidth:targetWidth,targetHeight:targetHeight,elemWidth:elemWidth,elemHeight:elemHeight,collisionPosition:collisionPosition,collisionWidth:collisionWidth,collisionHeight:collisionHeight,offset:[atOffset[0]+myOffset[0],atOffset[1]+myOffset[1]],my:options.my,at:options.at,within:within,elem:elem})}});if(options.using){using=function(props){var left=targetOffset.left-position.left,right=left+targetWidth-elemWidth,top=targetOffset.top-position.top,bottom=top+targetHeight-elemHeight,feedback={target:{element:target,left:targetOffset.left,top:targetOffset.top,width:targetWidth,height:targetHeight},element:{element:elem,left:position.left,top:position.top,width:elemWidth,height:elemHeight},horizontal:right<0?"left":left>0?"right":"center",vertical:bottom<0?"top":top>0?"bottom":"middle"};if(targetWidth<elemWidth&&abs(left+right)<targetWidth){feedback.horizontal="center"}if(targetHeight<elemHeight&&abs(top+bottom)<targetHeight){feedback.vertical="middle"}if(max(abs(left),abs(right))>max(abs(top),abs(bottom))){feedback.important="horizontal"}else{feedback.important="vertical"}options.using.call(this,props,feedback)}}elem.offset($.extend(position,{using:using}))})};$.ui.position={fit:{left:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollLeft:within.offset.left,outerWidth=within.width,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=withinOffset-collisionPosLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-withinOffset,newOverRight;if(data.collisionWidth>outerWidth){if(overLeft>0&&overRight<=0){newOverRight=position.left+overLeft+data.collisionWidth-outerWidth-withinOffset;position.left+=overLeft-newOverRight}else if(overRight>0&&overLeft<=0){position.left=withinOffset}else{if(overLeft>overRight){position.left=withinOffset+outerWidth-data.collisionWidth}else{position.left=withinOffset}}}else if(overLeft>0){position.left+=overLeft}else if(overRight>0){position.left-=overRight}else{position.left=max(position.left-collisionPosLeft,position.left)}},top:function(position,data){var within=data.within,withinOffset=within.isWindow?within.scrollTop:within.offset.top,outerHeight=data.within.height,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=withinOffset-collisionPosTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-withinOffset,newOverBottom;if(data.collisionHeight>outerHeight){if(overTop>0&&overBottom<=0){newOverBottom=position.top+overTop+data.collisionHeight-outerHeight-withinOffset;position.top+=overTop-newOverBottom}else if(overBottom>0&&overTop<=0){position.top=withinOffset}else{if(overTop>overBottom){position.top=withinOffset+outerHeight-data.collisionHeight}else{position.top=withinOffset}}}else if(overTop>0){position.top+=overTop}else if(overBottom>0){position.top-=overBottom}else{position.top=max(position.top-collisionPosTop,position.top)}}},flip:{left:function(position,data){var within=data.within,withinOffset=within.offset.left+within.scrollLeft,outerWidth=within.width,offsetLeft=within.isWindow?within.scrollLeft:within.offset.left,collisionPosLeft=position.left-data.collisionPosition.marginLeft,overLeft=collisionPosLeft-offsetLeft,overRight=collisionPosLeft+data.collisionWidth-outerWidth-offsetLeft,myOffset=data.my[0]==="left"?-data.elemWidth:data.my[0]==="right"?data.elemWidth:0,atOffset=data.at[0]==="left"?data.targetWidth:data.at[0]==="right"?-data.targetWidth:0,offset=-2*data.offset[0],newOverRight,newOverLeft;if(overLeft<0){newOverRight=position.left+myOffset+atOffset+offset+data.collisionWidth-outerWidth-withinOffset;if(newOverRight<0||newOverRight<abs(overLeft)){position.left+=myOffset+atOffset+offset}}else if(overRight>0){newOverLeft=position.left-data.collisionPosition.marginLeft+myOffset+atOffset+offset-offsetLeft;if(newOverLeft>0||abs(newOverLeft)<overRight){position.left+=myOffset+atOffset+offset}}},top:function(position,data){var within=data.within,withinOffset=within.offset.top+within.scrollTop,outerHeight=within.height,offsetTop=within.isWindow?within.scrollTop:within.offset.top,collisionPosTop=position.top-data.collisionPosition.marginTop,overTop=collisionPosTop-offsetTop,overBottom=collisionPosTop+data.collisionHeight-outerHeight-offsetTop,top=data.my[1]==="top",myOffset=top?-data.elemHeight:data.my[1]==="bottom"?data.elemHeight:0,atOffset=data.at[1]==="top"?data.targetHeight:data.at[1]==="bottom"?-data.targetHeight:0,offset=-2*data.offset[1],newOverTop,newOverBottom;if(overTop<0){newOverBottom=position.top+myOffset+atOffset+offset+data.collisionHeight-outerHeight-withinOffset;if(newOverBottom<0||newOverBottom<abs(overTop)){position.top+=myOffset+atOffset+offset}}else if(overBottom>0){newOverTop=position.top-data.collisionPosition.marginTop+myOffset+atOffset+offset-offsetTop;if(newOverTop>0||abs(newOverTop)<overBottom){position.top+=myOffset+atOffset+offset}}}},flipfit:{left:function(){$.ui.position.flip.left.apply(this,arguments);$.ui.position.fit.left.apply(this,arguments)},top:function(){$.ui.position.flip.top.apply(this,arguments);$.ui.position.fit.top.apply(this,arguments)}}};(function(){var testElement,testElementParent,testElementStyle,offsetLeft,i,body=document.getElementsByTagName("body")[0],div=document.createElement("div");testElement=document.createElement(body?"div":"body");testElementStyle={visibility:"hidden",width:0,height:0,border:0,margin:0,background:"none"};if(body){$.extend(testElementStyle,{position:"absolute",left:"-1000px",top:"-1000px"})}for(i in testElementStyle){testElement.style[i]=testElementStyle[i]}testElement.appendChild(div);testElementParent=body||document.documentElement;testElementParent.insertBefore(testElement,testElementParent.firstChild);div.style.cssText="position: absolute; left: 10.7432222px;";offsetLeft=$(div).offset().left;supportsOffsetFractions=offsetLeft>10&&offsetLeft<11;testElement.innerHTML="";testElementParent.removeChild(testElement)})()})();var position=$.ui.position;$.widget("ui.draggable",$.ui.mouse,{version:"1.11.4",widgetEventPrefix:"drag",options:{addClasses:true,appendTo:"parent",axis:false,connectToSortable:false,containment:false,cursor:"auto",cursorAt:false,grid:false,handle:false,helper:"original",iframeFix:false,opacity:false,refreshPositions:false,revert:false,revertDuration:500,scope:"default",scroll:true,scrollSensitivity:20,scrollSpeed:20,snap:false,snapMode:"both",snapTolerance:20,stack:false,zIndex:false,drag:null,start:null,stop:null},_create:function(){if(this.options.helper==="original"){this._setPositionRelative()}if(this.options.addClasses){this.element.addClass("ui-draggable")}if(this.options.disabled){this.element.addClass("ui-draggable-disabled")}this._setHandleClassName();this._mouseInit()},_setOption:function(key,value){this._super(key,value);if(key==="handle"){this._removeHandleClassName();this._setHandleClassName()}},_destroy:function(){if((this.helper||this.element).is(".ui-draggable-dragging")){this.destroyOnClear=true;return}this.element.removeClass("ui-draggable ui-draggable-dragging ui-draggable-disabled");this._removeHandleClassName();this._mouseDestroy()},_mouseCapture:function(event){var o=this.options;this._blurActiveElement(event);if(this.helper||o.disabled||$(event.target).closest(".ui-resizable-handle").length>0){return false}this.handle=this._getHandle(event);if(!this.handle){return false}this._blockFrames(o.iframeFix===true?"iframe":o.iframeFix);return true},_blockFrames:function(selector){this.iframeBlocks=this.document.find(selector).map(function(){var iframe=$(this);return $("<div>").css("position","absolute").appendTo(iframe.parent()).outerWidth(iframe.outerWidth()).outerHeight(iframe.outerHeight()).offset(iframe.offset())[0]})},_unblockFrames:function(){if(this.iframeBlocks){this.iframeBlocks.remove();delete this.iframeBlocks}},_blurActiveElement:function(event){var document=this.document[0];if(!this.handleElement.is(event.target)){return}try{if(document.activeElement&&document.activeElement.nodeName.toLowerCase()!=="body"){$(document.activeElement).blur()}}catch(error){}},_mouseStart:function(event){var o=this.options;this.helper=this._createHelper(event);this.helper.addClass("ui-draggable-dragging");this._cacheHelperProportions();if($.ui.ddmanager){$.ui.ddmanager.current=this}this._cacheMargins();this.cssPosition=this.helper.css("position");this.scrollParent=this.helper.scrollParent(true);this.offsetParent=this.helper.offsetParent();this.hasFixedAncestor=this.helper.parents().filter(function(){return $(this).css("position")==="fixed"}).length>0;this.positionAbs=this.element.offset();this._refreshOffsets(event);this.originalPosition=this.position=this._generatePosition(event,false);this.originalPageX=event.pageX;this.originalPageY=event.pageY;o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt);this._setContainment();if(this._trigger("start",event)===false){this._clear();return false}this._cacheHelperProportions();if($.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,event)}this._normalizeRightBottom();this._mouseDrag(event,true);if($.ui.ddmanager){$.ui.ddmanager.dragStart(this,event)}return true},_refreshOffsets:function(event){this.offset={top:this.positionAbs.top-this.margins.top,left:this.positionAbs.left-this.margins.left,scroll:false,parent:this._getParentOffset(),relative:this._getRelativeOffset()};this.offset.click={left:event.pageX-this.offset.left,top:event.pageY-this.offset.top}},_mouseDrag:function(event,noPropagation){if(this.hasFixedAncestor){this.offset.parent=this._getParentOffset()}this.position=this._generatePosition(event,true);this.positionAbs=this._convertPositionTo("absolute");if(!noPropagation){var ui=this._uiHash();if(this._trigger("drag",event,ui)===false){this._mouseUp({});return false}this.position=ui.position}this.helper[0].style.left=this.position.left+"px";this.helper[0].style.top=this.position.top+"px";if($.ui.ddmanager){$.ui.ddmanager.drag(this,event)}return false},_mouseStop:function(event){var that=this,dropped=false;if($.ui.ddmanager&&!this.options.dropBehaviour){dropped=$.ui.ddmanager.drop(this,event)}if(this.dropped){dropped=this.dropped;this.dropped=false}if(this.options.revert==="invalid"&&!dropped||this.options.revert==="valid"&&dropped||this.options.revert===true||$.isFunction(this.options.revert)&&this.options.revert.call(this.element,dropped)){$(this.helper).animate(this.originalPosition,parseInt(this.options.revertDuration,10),function(){if(that._trigger("stop",event)!==false){that._clear()}})}else{if(this._trigger("stop",event)!==false){this._clear()}}return false},_mouseUp:function(event){this._unblockFrames();if($.ui.ddmanager){$.ui.ddmanager.dragStop(this,event)}if(this.handleElement.is(event.target)){this.element.focus()}return $.ui.mouse.prototype._mouseUp.call(this,event)},cancel:function(){if(this.helper.is(".ui-draggable-dragging")){this._mouseUp({})}else{this._clear()}return this},_getHandle:function(event){return this.options.handle?!!$(event.target).closest(this.element.find(this.options.handle)).length:true},_setHandleClassName:function(){this.handleElement=this.options.handle?this.element.find(this.options.handle):this.element;this.handleElement.addClass("ui-draggable-handle")},_removeHandleClassName:function(){this.handleElement.removeClass("ui-draggable-handle")},_createHelper:function(event){var o=this.options,helperIsFunction=$.isFunction(o.helper),helper=helperIsFunction?$(o.helper.apply(this.element[0],[event])):o.helper==="clone"?this.element.clone().removeAttr("id"):this.element;if(!helper.parents("body").length){helper.appendTo(o.appendTo==="parent"?this.element[0].parentNode:o.appendTo)}if(helperIsFunction&&helper[0]===this.element[0]){this._setPositionRelative()}if(helper[0]!==this.element[0]&&!/(fixed|absolute)/.test(helper.css("position"))){helper.css("position","absolute")}return helper},_setPositionRelative:function(){if(!/^(?:r|a|f)/.test(this.element.css("position"))){this.element[0].style.position="relative"}},_adjustOffsetFromHelper:function(obj){if(typeof obj==="string"){obj=obj.split(" ")}if($.isArray(obj)){obj={left:+obj[0],top:+obj[1]||0}}if("left"in obj){this.offset.click.left=obj.left+this.margins.left}if("right"in obj){this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left}if("top"in obj){this.offset.click.top=obj.top+this.margins.top}if("bottom"in obj){this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top}},_isRootNode:function(element){return/(html|body)/i.test(element.tagName)||element===this.document[0]},_getParentOffset:function(){var po=this.offsetParent.offset(),document=this.document[0];if(this.cssPosition==="absolute"&&this.scrollParent[0]!==document&&$.contains(this.scrollParent[0],this.offsetParent[0])){po.left+=this.scrollParent.scrollLeft();po.top+=this.scrollParent.scrollTop()}if(this._isRootNode(this.offsetParent[0])){po={top:0,left:0}}return{top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition!=="relative"){return{top:0,left:0}}var p=this.element.position(),scrollIsRootNode=this._isRootNode(this.scrollParent[0]);return{top:p.top-(parseInt(this.helper.css("top"),10)||0)+(!scrollIsRootNode?this.scrollParent.scrollTop():0),left:p.left-(parseInt(this.helper.css("left"),10)||0)+(!scrollIsRootNode?this.scrollParent.scrollLeft():0)}},_cacheMargins:function(){this.margins={left:parseInt(this.element.css("marginLeft"),10)||0,top:parseInt(this.element.css("marginTop"),10)||0,right:parseInt(this.element.css("marginRight"),10)||0,bottom:parseInt(this.element.css("marginBottom"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var isUserScrollable,c,ce,o=this.options,document=this.document[0];this.relativeContainer=null;if(!o.containment){this.containment=null;return}if(o.containment==="window"){this.containment=[$(window).scrollLeft()-this.offset.relative.left-this.offset.parent.left,$(window).scrollTop()-this.offset.relative.top-this.offset.parent.top,$(window).scrollLeft()+$(window).width()-this.helperProportions.width-this.margins.left,$(window).scrollTop()+($(window).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return}if(o.containment==="document"){this.containment=[0,0,$(document).width()-this.helperProportions.width-this.margins.left,($(document).height()||document.body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top];return}if(o.containment.constructor===Array){this.containment=o.containment;return}if(o.containment==="parent"){o.containment=this.helper[0].parentNode}c=$(o.containment);ce=c[0];if(!ce){return}isUserScrollable=/(scroll|auto)/.test(c.css("overflow"));this.containment=[(parseInt(c.css("borderLeftWidth"),10)||0)+(parseInt(c.css("paddingLeft"),10)||0),(parseInt(c.css("borderTopWidth"),10)||0)+(parseInt(c.css("paddingTop"),10)||0),(isUserScrollable?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt(c.css("borderRightWidth"),10)||0)-(parseInt(c.css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left-this.margins.right,(isUserScrollable?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt(c.css("borderBottomWidth"),10)||0)-(parseInt(c.css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top-this.margins.bottom];this.relativeContainer=c},_convertPositionTo:function(d,pos){if(!pos){pos=this.position}var mod=d==="absolute"?1:-1,scrollIsRootNode=this._isRootNode(this.scrollParent[0]);return{top:pos.top+this.offset.relative.top*mod+this.offset.parent.top*mod-(this.cssPosition==="fixed"?-this.offset.scroll.top:scrollIsRootNode?0:this.offset.scroll.top)*mod,left:pos.left+this.offset.relative.left*mod+this.offset.parent.left*mod-(this.cssPosition==="fixed"?-this.offset.scroll.left:scrollIsRootNode?0:this.offset.scroll.left)*mod}},_generatePosition:function(event,constrainPosition){var containment,co,top,left,o=this.options,scrollIsRootNode=this._isRootNode(this.scrollParent[0]),pageX=event.pageX,pageY=event.pageY;if(!scrollIsRootNode||!this.offset.scroll){this.offset.scroll={top:this.scrollParent.scrollTop(),left:this.scrollParent.scrollLeft()}}if(constrainPosition){if(this.containment){if(this.relativeContainer){co=this.relativeContainer.offset();containment=[this.containment[0]+co.left,this.containment[1]+co.top,this.containment[2]+co.left,this.containment[3]+co.top]}else{containment=this.containment}if(event.pageX-this.offset.click.left<containment[0]){pageX=containment[0]+this.offset.click.left}if(event.pageY-this.offset.click.top<containment[1]){pageY=containment[1]+this.offset.click.top}if(event.pageX-this.offset.click.left>containment[2]){pageX=containment[2]+this.offset.click.left}if(event.pageY-this.offset.click.top>containment[3]){pageY=containment[3]+this.offset.click.top}}if(o.grid){top=o.grid[1]?this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1]:this.originalPageY;pageY=containment?top-this.offset.click.top>=containment[1]||top-this.offset.click.top>containment[3]?top:top-this.offset.click.top>=containment[1]?top-o.grid[1]:top+o.grid[1]:top;left=o.grid[0]?this.originalPageX+Math.round((pageX-this.originalPageX)/o.grid[0])*o.grid[0]:this.originalPageX;pageX=containment?left-this.offset.click.left>=containment[0]||left-this.offset.click.left>containment[2]?left:left-this.offset.click.left>=containment[0]?left-o.grid[0]:left+o.grid[0]:left}if(o.axis==="y"){pageX=this.originalPageX}if(o.axis==="x"){pageY=this.originalPageY}}return{top:pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition==="fixed"?-this.offset.scroll.top:scrollIsRootNode?0:this.offset.scroll.top),left:pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition==="fixed"?-this.offset.scroll.left:scrollIsRootNode?0:this.offset.scroll.left)}},_clear:function(){this.helper.removeClass("ui-draggable-dragging");if(this.helper[0]!==this.element[0]&&!this.cancelHelperRemoval){this.helper.remove()}this.helper=null;this.cancelHelperRemoval=false;if(this.destroyOnClear){this.destroy()}},_normalizeRightBottom:function(){if(this.options.axis!=="y"&&this.helper.css("right")!=="auto"){this.helper.width(this.helper.width());this.helper.css("right","auto")}if(this.options.axis!=="x"&&this.helper.css("bottom")!=="auto"){this.helper.height(this.helper.height());this.helper.css("bottom","auto")}},_trigger:function(type,event,ui){ui=ui||this._uiHash();$.ui.plugin.call(this,type,[event,ui,this],true);if(/^(drag|start|stop)/.test(type)){this.positionAbs=this._convertPositionTo("absolute");ui.offset=this.positionAbs}return $.Widget.prototype._trigger.call(this,type,event,ui)},plugins:{},_uiHash:function(){return{helper:this.helper,position:this.position,originalPosition:this.originalPosition,offset:this.positionAbs}}});$.ui.plugin.add("draggable","connectToSortable",{start:function(event,ui,draggable){var uiSortable=$.extend({},ui,{item:draggable.element});draggable.sortables=[];$(draggable.options.connectToSortable).each(function(){var sortable=$(this).sortable("instance");if(sortable&&!sortable.options.disabled){draggable.sortables.push(sortable);sortable.refreshPositions();sortable._trigger("activate",event,uiSortable)}})},stop:function(event,ui,draggable){var uiSortable=$.extend({},ui,{item:draggable.element});draggable.cancelHelperRemoval=false;$.each(draggable.sortables,function(){var sortable=this;if(sortable.isOver){sortable.isOver=0;draggable.cancelHelperRemoval=true;sortable.cancelHelperRemoval=false;sortable._storedCSS={position:sortable.placeholder.css("position"),top:sortable.placeholder.css("top"),left:sortable.placeholder.css("left")};sortable._mouseStop(event);sortable.options.helper=sortable.options._helper}else{sortable.cancelHelperRemoval=true;sortable._trigger("deactivate",event,uiSortable)}})},drag:function(event,ui,draggable){$.each(draggable.sortables,function(){var innermostIntersecting=false,sortable=this;sortable.positionAbs=draggable.positionAbs;sortable.helperProportions=draggable.helperProportions;sortable.offset.click=draggable.offset.click;if(sortable._intersectsWith(sortable.containerCache)){innermostIntersecting=true;$.each(draggable.sortables,function(){this.positionAbs=draggable.positionAbs;this.helperProportions=draggable.helperProportions;this.offset.click=draggable.offset.click;if(this!==sortable&&this._intersectsWith(this.containerCache)&&$.contains(sortable.element[0],this.element[0])){innermostIntersecting=false}return innermostIntersecting})}if(innermostIntersecting){if(!sortable.isOver){sortable.isOver=1;draggable._parent=ui.helper.parent();sortable.currentItem=ui.helper.appendTo(sortable.element).data("ui-sortable-item",true);sortable.options._helper=sortable.options.helper;sortable.options.helper=function(){return ui.helper[0]};event.target=sortable.currentItem[0];sortable._mouseCapture(event,true);sortable._mouseStart(event,true,true);sortable.offset.click.top=draggable.offset.click.top;sortable.offset.click.left=draggable.offset.click.left
;sortable.offset.parent.left-=draggable.offset.parent.left-sortable.offset.parent.left;sortable.offset.parent.top-=draggable.offset.parent.top-sortable.offset.parent.top;draggable._trigger("toSortable",event);draggable.dropped=sortable.element;$.each(draggable.sortables,function(){this.refreshPositions()});draggable.currentItem=draggable.element;sortable.fromOutside=draggable}if(sortable.currentItem){sortable._mouseDrag(event);ui.position=sortable.position}}else{if(sortable.isOver){sortable.isOver=0;sortable.cancelHelperRemoval=true;sortable.options._revert=sortable.options.revert;sortable.options.revert=false;sortable._trigger("out",event,sortable._uiHash(sortable));sortable._mouseStop(event,true);sortable.options.revert=sortable.options._revert;sortable.options.helper=sortable.options._helper;if(sortable.placeholder){sortable.placeholder.remove()}ui.helper.appendTo(draggable._parent);draggable._refreshOffsets(event);ui.position=draggable._generatePosition(event,true);draggable._trigger("fromSortable",event);draggable.dropped=false;$.each(draggable.sortables,function(){this.refreshPositions()})}}})}});$.ui.plugin.add("draggable","cursor",{start:function(event,ui,instance){var t=$("body"),o=instance.options;if(t.css("cursor")){o._cursor=t.css("cursor")}t.css("cursor",o.cursor)},stop:function(event,ui,instance){var o=instance.options;if(o._cursor){$("body").css("cursor",o._cursor)}}});$.ui.plugin.add("draggable","opacity",{start:function(event,ui,instance){var t=$(ui.helper),o=instance.options;if(t.css("opacity")){o._opacity=t.css("opacity")}t.css("opacity",o.opacity)},stop:function(event,ui,instance){var o=instance.options;if(o._opacity){$(ui.helper).css("opacity",o._opacity)}}});$.ui.plugin.add("draggable","scroll",{start:function(event,ui,i){if(!i.scrollParentNotHidden){i.scrollParentNotHidden=i.helper.scrollParent(false)}if(i.scrollParentNotHidden[0]!==i.document[0]&&i.scrollParentNotHidden[0].tagName!=="HTML"){i.overflowOffset=i.scrollParentNotHidden.offset()}},drag:function(event,ui,i){var o=i.options,scrolled=false,scrollParent=i.scrollParentNotHidden[0],document=i.document[0];if(scrollParent!==document&&scrollParent.tagName!=="HTML"){if(!o.axis||o.axis!=="x"){if(i.overflowOffset.top+scrollParent.offsetHeight-event.pageY<o.scrollSensitivity){scrollParent.scrollTop=scrolled=scrollParent.scrollTop+o.scrollSpeed}else if(event.pageY-i.overflowOffset.top<o.scrollSensitivity){scrollParent.scrollTop=scrolled=scrollParent.scrollTop-o.scrollSpeed}}if(!o.axis||o.axis!=="y"){if(i.overflowOffset.left+scrollParent.offsetWidth-event.pageX<o.scrollSensitivity){scrollParent.scrollLeft=scrolled=scrollParent.scrollLeft+o.scrollSpeed}else if(event.pageX-i.overflowOffset.left<o.scrollSensitivity){scrollParent.scrollLeft=scrolled=scrollParent.scrollLeft-o.scrollSpeed}}}else{if(!o.axis||o.axis!=="x"){if(event.pageY-$(document).scrollTop()<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()-o.scrollSpeed)}else if($(window).height()-(event.pageY-$(document).scrollTop())<o.scrollSensitivity){scrolled=$(document).scrollTop($(document).scrollTop()+o.scrollSpeed)}}if(!o.axis||o.axis!=="y"){if(event.pageX-$(document).scrollLeft()<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()-o.scrollSpeed)}else if($(window).width()-(event.pageX-$(document).scrollLeft())<o.scrollSensitivity){scrolled=$(document).scrollLeft($(document).scrollLeft()+o.scrollSpeed)}}}if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(i,event)}}});$.ui.plugin.add("draggable","snap",{start:function(event,ui,i){var o=i.options;i.snapElements=[];$(o.snap.constructor!==String?o.snap.items||":data(ui-draggable)":o.snap).each(function(){var $t=$(this),$o=$t.offset();if(this!==i.element[0]){i.snapElements.push({item:this,width:$t.outerWidth(),height:$t.outerHeight(),top:$o.top,left:$o.left})}})},drag:function(event,ui,inst){var ts,bs,ls,rs,l,r,t,b,i,first,o=inst.options,d=o.snapTolerance,x1=ui.offset.left,x2=x1+inst.helperProportions.width,y1=ui.offset.top,y2=y1+inst.helperProportions.height;for(i=inst.snapElements.length-1;i>=0;i--){l=inst.snapElements[i].left-inst.margins.left;r=l+inst.snapElements[i].width;t=inst.snapElements[i].top-inst.margins.top;b=t+inst.snapElements[i].height;if(x2<l-d||x1>r+d||y2<t-d||y1>b+d||!$.contains(inst.snapElements[i].item.ownerDocument,inst.snapElements[i].item)){if(inst.snapElements[i].snapping){inst.options.snap.release&&inst.options.snap.release.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item}))}inst.snapElements[i].snapping=false;continue}if(o.snapMode!=="inner"){ts=Math.abs(t-y2)<=d;bs=Math.abs(b-y1)<=d;ls=Math.abs(l-x2)<=d;rs=Math.abs(r-x1)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t-inst.helperProportions.height,left:0}).top}if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b,left:0}).top}if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l-inst.helperProportions.width}).left}if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r}).left}}first=ts||bs||ls||rs;if(o.snapMode!=="outer"){ts=Math.abs(t-y1)<=d;bs=Math.abs(b-y2)<=d;ls=Math.abs(l-x1)<=d;rs=Math.abs(r-x2)<=d;if(ts){ui.position.top=inst._convertPositionTo("relative",{top:t,left:0}).top}if(bs){ui.position.top=inst._convertPositionTo("relative",{top:b-inst.helperProportions.height,left:0}).top}if(ls){ui.position.left=inst._convertPositionTo("relative",{top:0,left:l}).left}if(rs){ui.position.left=inst._convertPositionTo("relative",{top:0,left:r-inst.helperProportions.width}).left}}if(!inst.snapElements[i].snapping&&(ts||bs||ls||rs||first)){inst.options.snap.snap&&inst.options.snap.snap.call(inst.element,event,$.extend(inst._uiHash(),{snapItem:inst.snapElements[i].item}))}inst.snapElements[i].snapping=ts||bs||ls||rs||first}}});$.ui.plugin.add("draggable","stack",{start:function(event,ui,instance){var min,o=instance.options,group=$.makeArray($(o.stack)).sort(function(a,b){return(parseInt($(a).css("zIndex"),10)||0)-(parseInt($(b).css("zIndex"),10)||0)});if(!group.length){return}min=parseInt($(group[0]).css("zIndex"),10)||0;$(group).each(function(i){$(this).css("zIndex",min+i)});this.css("zIndex",min+group.length)}});$.ui.plugin.add("draggable","zIndex",{start:function(event,ui,instance){var t=$(ui.helper),o=instance.options;if(t.css("zIndex")){o._zIndex=t.css("zIndex")}t.css("zIndex",o.zIndex)},stop:function(event,ui,instance){var o=instance.options;if(o._zIndex){$(ui.helper).css("zIndex",o._zIndex)}}});var draggable=$.ui.draggable;$.widget("ui.droppable",{version:"1.11.4",widgetEventPrefix:"drop",options:{accept:"*",activeClass:false,addClasses:true,greedy:false,hoverClass:false,scope:"default",tolerance:"intersect",activate:null,deactivate:null,drop:null,out:null,over:null},_create:function(){var proportions,o=this.options,accept=o.accept;this.isover=false;this.isout=true;this.accept=$.isFunction(accept)?accept:function(d){return d.is(accept)};this.proportions=function(){if(arguments.length){proportions=arguments[0]}else{return proportions?proportions:proportions={width:this.element[0].offsetWidth,height:this.element[0].offsetHeight}}};this._addToManager(o.scope);o.addClasses&&this.element.addClass("ui-droppable")},_addToManager:function(scope){$.ui.ddmanager.droppables[scope]=$.ui.ddmanager.droppables[scope]||[];$.ui.ddmanager.droppables[scope].push(this)},_splice:function(drop){var i=0;for(;i<drop.length;i++){if(drop[i]===this){drop.splice(i,1)}}},_destroy:function(){var drop=$.ui.ddmanager.droppables[this.options.scope];this._splice(drop);this.element.removeClass("ui-droppable ui-droppable-disabled")},_setOption:function(key,value){if(key==="accept"){this.accept=$.isFunction(value)?value:function(d){return d.is(value)}}else if(key==="scope"){var drop=$.ui.ddmanager.droppables[this.options.scope];this._splice(drop);this._addToManager(value)}this._super(key,value)},_activate:function(event){var draggable=$.ui.ddmanager.current;if(this.options.activeClass){this.element.addClass(this.options.activeClass)}if(draggable){this._trigger("activate",event,this.ui(draggable))}},_deactivate:function(event){var draggable=$.ui.ddmanager.current;if(this.options.activeClass){this.element.removeClass(this.options.activeClass)}if(draggable){this._trigger("deactivate",event,this.ui(draggable))}},_over:function(event){var draggable=$.ui.ddmanager.current;if(!draggable||(draggable.currentItem||draggable.element)[0]===this.element[0]){return}if(this.accept.call(this.element[0],draggable.currentItem||draggable.element)){if(this.options.hoverClass){this.element.addClass(this.options.hoverClass)}this._trigger("over",event,this.ui(draggable))}},_out:function(event){var draggable=$.ui.ddmanager.current;if(!draggable||(draggable.currentItem||draggable.element)[0]===this.element[0]){return}if(this.accept.call(this.element[0],draggable.currentItem||draggable.element)){if(this.options.hoverClass){this.element.removeClass(this.options.hoverClass)}this._trigger("out",event,this.ui(draggable))}},_drop:function(event,custom){var draggable=custom||$.ui.ddmanager.current,childrenIntersection=false;if(!draggable||(draggable.currentItem||draggable.element)[0]===this.element[0]){return false}this.element.find(":data(ui-droppable)").not(".ui-draggable-dragging").each(function(){var inst=$(this).droppable("instance");if(inst.options.greedy&&!inst.options.disabled&&inst.options.scope===draggable.options.scope&&inst.accept.call(inst.element[0],draggable.currentItem||draggable.element)&&$.ui.intersect(draggable,$.extend(inst,{offset:inst.element.offset()}),inst.options.tolerance,event)){childrenIntersection=true;return false}});if(childrenIntersection){return false}if(this.accept.call(this.element[0],draggable.currentItem||draggable.element)){if(this.options.activeClass){this.element.removeClass(this.options.activeClass)}if(this.options.hoverClass){this.element.removeClass(this.options.hoverClass)}this._trigger("drop",event,this.ui(draggable));return this.element}return false},ui:function(c){return{draggable:c.currentItem||c.element,helper:c.helper,position:c.position,offset:c.positionAbs}}});$.ui.intersect=function(){function isOverAxis(x,reference,size){return x>=reference&&x<reference+size}return function(draggable,droppable,toleranceMode,event){if(!droppable.offset){return false}var x1=(draggable.positionAbs||draggable.position.absolute).left+draggable.margins.left,y1=(draggable.positionAbs||draggable.position.absolute).top+draggable.margins.top,x2=x1+draggable.helperProportions.width,y2=y1+draggable.helperProportions.height,l=droppable.offset.left,t=droppable.offset.top,r=l+droppable.proportions().width,b=t+droppable.proportions().height;switch(toleranceMode){case"fit":return l<=x1&&x2<=r&&t<=y1&&y2<=b;case"intersect":return l<x1+draggable.helperProportions.width/2&&x2-draggable.helperProportions.width/2<r&&t<y1+draggable.helperProportions.height/2&&y2-draggable.helperProportions.height/2<b;case"pointer":return isOverAxis(event.pageY,t,droppable.proportions().height)&&isOverAxis(event.pageX,l,droppable.proportions().width);case"touch":return(y1>=t&&y1<=b||y2>=t&&y2<=b||y1<t&&y2>b)&&(x1>=l&&x1<=r||x2>=l&&x2<=r||x1<l&&x2>r);default:return false}}}();$.ui.ddmanager={current:null,droppables:{default:[]},prepareOffsets:function(t,event){var i,j,m=$.ui.ddmanager.droppables[t.options.scope]||[],type=event?event.type:null,list=(t.currentItem||t.element).find(":data(ui-droppable)").addBack();droppablesLoop:for(i=0;i<m.length;i++){if(m[i].options.disabled||t&&!m[i].accept.call(m[i].element[0],t.currentItem||t.element)){continue}for(j=0;j<list.length;j++){if(list[j]===m[i].element[0]){m[i].proportions().height=0;continue droppablesLoop}}m[i].visible=m[i].element.css("display")!=="none";if(!m[i].visible){continue}if(type==="mousedown"){m[i]._activate.call(m[i],event)}m[i].offset=m[i].element.offset();m[i].proportions({width:m[i].element[0].offsetWidth,height:m[i].element[0].offsetHeight})}},drop:function(draggable,event){var dropped=false;$.each(($.ui.ddmanager.droppables[draggable.options.scope]||[]).slice(),function(){if(!this.options){return}if(!this.options.disabled&&this.visible&&$.ui.intersect(draggable,this,this.options.tolerance,event)){dropped=this._drop.call(this,event)||dropped}if(!this.options.disabled&&this.visible&&this.accept.call(this.element[0],draggable.currentItem||draggable.element)){this.isout=true;this.isover=false;this._deactivate.call(this,event)}});return dropped},dragStart:function(draggable,event){draggable.element.parentsUntil("body").bind("scroll.droppable",function(){if(!draggable.options.refreshPositions){$.ui.ddmanager.prepareOffsets(draggable,event)}})},drag:function(draggable,event){if(draggable.options.refreshPositions){$.ui.ddmanager.prepareOffsets(draggable,event)}$.each($.ui.ddmanager.droppables[draggable.options.scope]||[],function(){if(this.options.disabled||this.greedyChild||!this.visible){return}var parentInstance,scope,parent,intersects=$.ui.intersect(draggable,this,this.options.tolerance,event),c=!intersects&&this.isover?"isout":intersects&&!this.isover?"isover":null;if(!c){return}if(this.options.greedy){scope=this.options.scope;parent=this.element.parents(":data(ui-droppable)").filter(function(){return $(this).droppable("instance").options.scope===scope});if(parent.length){parentInstance=$(parent[0]).droppable("instance");parentInstance.greedyChild=c==="isover"}}if(parentInstance&&c==="isover"){parentInstance.isover=false;parentInstance.isout=true;parentInstance._out.call(parentInstance,event)}this[c]=true;this[c==="isout"?"isover":"isout"]=false;this[c==="isover"?"_over":"_out"].call(this,event);if(parentInstance&&c==="isout"){parentInstance.isout=false;parentInstance.isover=true;parentInstance._over.call(parentInstance,event)}})},dragStop:function(draggable,event){draggable.element.parentsUntil("body").unbind("scroll.droppable");if(!draggable.options.refreshPositions){$.ui.ddmanager.prepareOffsets(draggable,event)}}};var droppable=$.ui.droppable;$.widget("ui.resizable",$.ui.mouse,{version:"1.11.4",widgetEventPrefix:"resize",options:{alsoResize:false,animate:false,animateDuration:"slow",animateEasing:"swing",aspectRatio:false,autoHide:false,containment:false,ghost:false,grid:false,handles:"e,s,se",helper:false,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(value){return parseInt(value,10)||0},_isNumber:function(value){return!isNaN(parseInt(value,10))},_hasScroll:function(el,a){if($(el).css("overflow")==="hidden"){return false}var scroll=a&&a==="left"?"scrollLeft":"scrollTop",has=false;if(el[scroll]>0){return true}el[scroll]=1;has=el[scroll]>0;el[scroll]=0;return has},_create:function(){var n,i,handle,axis,hname,that=this,o=this.options;this.element.addClass("ui-resizable");$.extend(this,{_aspectRatio:!!o.aspectRatio,aspectRatio:o.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:o.helper||o.ghost||o.animate?o.helper||"ui-resizable-helper":null});if(this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)){this.element.wrap($("<div class='ui-wrapper' style='overflow: hidden;'></div>").css({position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")}));this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance"));this.elementIsWrapper=true;this.element.css({marginLeft:this.originalElement.css("marginLeft"),marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom")});this.originalElement.css({marginLeft:0,marginTop:0,marginRight:0,marginBottom:0});this.originalResizeStyle=this.originalElement.css("resize");this.originalElement.css("resize","none");this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"}));this.originalElement.css({margin:this.originalElement.css("margin")});this._proportionallyResize()}this.handles=o.handles||(!$(".ui-resizable-handle",this.element).length?"e,s,se":{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"});this._handles=$();if(this.handles.constructor===String){if(this.handles==="all"){this.handles="n,e,s,w,se,sw,ne,nw"}n=this.handles.split(",");this.handles={};for(i=0;i<n.length;i++){handle=$.trim(n[i]);hname="ui-resizable-"+handle;axis=$("<div class='ui-resizable-handle "+hname+"'></div>");axis.css({zIndex:o.zIndex});if("se"===handle){axis.addClass("ui-icon ui-icon-gripsmall-diagonal-se")}this.handles[handle]=".ui-resizable-"+handle;this.element.append(axis)}}this._renderAxis=function(target){var i,axis,padPos,padWrapper;target=target||this.element;for(i in this.handles){if(this.handles[i].constructor===String){this.handles[i]=this.element.children(this.handles[i]).first().show()}else if(this.handles[i].jquery||this.handles[i].nodeType){this.handles[i]=$(this.handles[i]);this._on(this.handles[i],{mousedown:that._mouseDown})}if(this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)){axis=$(this.handles[i],this.element);padWrapper=/sw|ne|nw|se|n|s/.test(i)?axis.outerHeight():axis.outerWidth();padPos=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join("");target.css(padPos,padWrapper);this._proportionallyResize()}this._handles=this._handles.add(this.handles[i])}};this._renderAxis(this.element);this._handles=this._handles.add(this.element.find(".ui-resizable-handle"));this._handles.disableSelection();this._handles.mouseover(function(){if(!that.resizing){if(this.className){axis=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)}that.axis=axis&&axis[1]?axis[1]:"se"}});if(o.autoHide){this._handles.hide();$(this.element).addClass("ui-resizable-autohide").mouseenter(function(){if(o.disabled){return}$(this).removeClass("ui-resizable-autohide");that._handles.show()}).mouseleave(function(){if(o.disabled){return}if(!that.resizing){$(this).addClass("ui-resizable-autohide");that._handles.hide()}})}this._mouseInit()},_destroy:function(){this._mouseDestroy();var wrapper,_destroy=function(exp){$(exp).removeClass("ui-resizable ui-resizable-disabled ui-resizable-resizing").removeData("resizable").removeData("ui-resizable").unbind(".resizable").find(".ui-resizable-handle").remove()};if(this.elementIsWrapper){_destroy(this.element);wrapper=this.element;this.originalElement.css({position:wrapper.css("position"),width:wrapper.outerWidth(),height:wrapper.outerHeight(),top:wrapper.css("top"),left:wrapper.css("left")}).insertAfter(wrapper);wrapper.remove()}this.originalElement.css("resize",this.originalResizeStyle);_destroy(this.originalElement);return this},_mouseCapture:function(event){var i,handle,capture=false;for(i in this.handles){handle=$(this.handles[i])[0];if(handle===event.target||$.contains(handle,event.target)){capture=true}}return!this.options.disabled&&capture},_mouseStart:function(event){var curleft,curtop,cursor,o=this.options,el=this.element;this.resizing=true;this._renderProxy();curleft=this._num(this.helper.css("left"));curtop=this._num(this.helper.css("top"));if(o.containment){curleft+=$(o.containment).scrollLeft()||0;curtop+=$(o.containment).scrollTop()||0}this.offset=this.helper.offset();this.position={left:curleft,top:curtop};this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:el.width(),height:el.height()};this.originalSize=this._helper?{width:el.outerWidth(),height:el.outerHeight()}:{width:el.width(),height:el.height()};this.sizeDiff={width:el.outerWidth()-el.width(),height:el.outerHeight()-el.height()};this.originalPosition={left:curleft,top:curtop};this.originalMousePosition={left:event.pageX,top:event.pageY};this.aspectRatio=typeof o.aspectRatio==="number"?o.aspectRatio:this.originalSize.width/this.originalSize.height||1;cursor=$(".ui-resizable-"+this.axis).css("cursor");$("body").css("cursor",cursor==="auto"?this.axis+"-resize":cursor);el.addClass("ui-resizable-resizing");this._propagate("start",event);return true},_mouseDrag:function(event){var data,props,smp=this.originalMousePosition,a=this.axis,dx=event.pageX-smp.left||0,dy=event.pageY-smp.top||0,trigger=this._change[a];this._updatePrevProperties();if(!trigger){return false}data=trigger.apply(this,[event,dx,dy]);this._updateVirtualBoundaries(event.shiftKey);if(this._aspectRatio||event.shiftKey){data=this._updateRatio(data,event)}data=this._respectSize(data,event);this._updateCache(data);this._propagate("resize",event);props=this._applyChanges();if(!this._helper&&this._proportionallyResizeElements.length){this._proportionallyResize()}if(!$.isEmptyObject(props)){this._updatePrevProperties();this._trigger("resize",event,this.ui());this._applyChanges()}return false},_mouseStop:function(event){this.resizing=false;var pr,ista,soffseth,soffsetw,s,left,top,o=this.options,that=this;if(this._helper){pr=this._proportionallyResizeElements;ista=pr.length&&/textarea/i.test(pr[0].nodeName);soffseth=ista&&this._hasScroll(pr[0],"left")?0:that.sizeDiff.height;soffsetw=ista?0:that.sizeDiff.width;s={width:that.helper.width()-soffsetw,height:that.helper.height()-soffseth};left=parseInt(that.element.css("left"),10)+(that.position.left-that.originalPosition.left)||null;top=parseInt(that.element.css("top"),10)+(that.position.top-that.originalPosition.top)||null;if(!o.animate){this.element.css($.extend(s,{top:top,left:left}))}that.helper.height(that.size.height);that.helper.width(that.size.width);if(this._helper&&!o.animate){this._proportionallyResize()}}$("body").css("cursor","auto");this.element.removeClass("ui-resizable-resizing");this._propagate("stop",event);if(this._helper){this.helper.remove()}return false},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left};this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var props={};if(this.position.top!==this.prevPosition.top){props.top=this.position.top+"px"}if(this.position.left!==this.prevPosition.left){props.left=this.position.left+"px"}if(this.size.width!==this.prevSize.width){props.width=this.size.width+"px"}if(this.size.height!==this.prevSize.height){props.height=this.size.height+"px"}this.helper.css(props);return props},_updateVirtualBoundaries:function(forceAspectRatio){var pMinWidth,pMaxWidth,pMinHeight,pMaxHeight,b,o=this.options;b={minWidth:this._isNumber(o.minWidth)?o.minWidth:0,maxWidth:this._isNumber(o.maxWidth)?o.maxWidth:Infinity,minHeight:this._isNumber(o.minHeight)?o.minHeight:0,maxHeight:this._isNumber(o.maxHeight)?o.maxHeight:Infinity};if(this._aspectRatio||forceAspectRatio){pMinWidth=b.minHeight*this.aspectRatio;pMinHeight=b.minWidth/this.aspectRatio;pMaxWidth=b.maxHeight*this.aspectRatio;pMaxHeight=b.maxWidth/this.aspectRatio;if(pMinWidth>b.minWidth){b.minWidth=pMinWidth}if(pMinHeight>b.minHeight){b.minHeight=pMinHeight}if(pMaxWidth<b.maxWidth){b.maxWidth=pMaxWidth}if(pMaxHeight<b.maxHeight){b.maxHeight=pMaxHeight}}this._vBoundaries=b},_updateCache:function(data){this.offset=this.helper.offset();if(this._isNumber(data.left)){this.position.left=data.left}if(this._isNumber(data.top)){this.position.top=data.top}if(this._isNumber(data.height)){this.size.height=data.height}if(this._isNumber(data.width)){this.size.width=data.width}},_updateRatio:function(data){var cpos=this.position,csize=this.size,a=this.axis;if(this._isNumber(data.height)){data.width=data.height*this.aspectRatio}else if(this._isNumber(data.width)){data.height=data.width/this.aspectRatio}if(a==="sw"){data.left=cpos.left+(csize.width-data.width);data.top=null}if(a==="nw"){data.top=cpos.top+(csize.height-data.height);data.left=cpos.left+(csize.width-data.width)}return data},_respectSize:function(data){var o=this._vBoundaries,a=this.axis,ismaxw=this._isNumber(data.width)&&o.maxWidth&&o.maxWidth<data.width,ismaxh=this._isNumber(data.height)&&o.maxHeight&&o.maxHeight<data.height,isminw=this._isNumber(data.width)&&o.minWidth&&o.minWidth>data.width,isminh=this._isNumber(data.height)&&o.minHeight&&o.minHeight>data.height,dw=this.originalPosition.left+this.originalSize.width,dh=this.position.top+this.size.height,cw=/sw|nw|w/.test(a),ch=/nw|ne|n/.test(a);if(isminw){data.width=o.minWidth}if(isminh){data.height=o.minHeight}if(ismaxw){data.width=o.maxWidth}if(ismaxh){data.height=o.maxHeight}if(isminw&&cw){data.left=dw-o.minWidth}if(ismaxw&&cw){data.left=dw-o.maxWidth}if(isminh&&ch){data.top=dh-o.minHeight}if(ismaxh&&ch){data.top=dh-o.maxHeight}if(!data.width&&!data.height&&!data.left&&data.top){data.top=null}else if(!data.width&&!data.height&&!data.top&&data.left){data.left=null}return data},_getPaddingPlusBorderDimensions:function(element){var i=0,widths=[],borders=[element.css("borderTopWidth"),element.css("borderRightWidth"),element.css("borderBottomWidth"),element.css("borderLeftWidth")],paddings=[element.css("paddingTop"),element.css("paddingRight"),element.css("paddingBottom"),element.css("paddingLeft")];for(;i<4;i++){widths[i]=parseInt(borders[i],10)||0;widths[i]+=parseInt(paddings[i],10)||0}return{height:widths[0]+widths[2],width:widths[1]+widths[3]}},_proportionallyResize:function(){if(!this._proportionallyResizeElements.length){return}var prel,i=0,element=this.helper||this.element;for(;i<this._proportionallyResizeElements.length;i++){prel=this._proportionallyResizeElements[i];if(!this.outerDimensions){this.outerDimensions=this._getPaddingPlusBorderDimensions(prel)}prel.css({height:element.height()-this.outerDimensions.height||0,width:element.width()-this.outerDimensions.width||0})}},_renderProxy:function(){var el=this.element,o=this.options;this.elementOffset=el.offset();if(this._helper){this.helper=this.helper||$("<div style='overflow:hidden;'></div>");this.helper.addClass(this._helper).css({width:this.element.outerWidth()-1,height:this.element.outerHeight()-1,position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++o.zIndex});this.helper.appendTo("body").disableSelection()}else{this.helper=this.element}},_change:{e:function(event,dx){return{width:this.originalSize.width+dx}},w:function(event,dx){var cs=this.originalSize,sp=this.originalPosition;return{left:sp.left+dx,width:cs.width-dx}},n:function(event,dx,dy){var cs=this.originalSize,sp=this.originalPosition;return{top:sp.top+dy,height:cs.height-dy}},s:function(event,dx,dy){return{height:this.originalSize.height+dy}},se:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]))},sw:function(event,dx,dy){return $.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]))},ne:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[event,dx,dy]))},nw:function(event,dx,dy){return $.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[event,dx,dy]))}},_propagate:function(n,event){$.ui.plugin.call(this,n,[event,this.ui()]);n!=="resize"&&this._trigger(n,event,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}});$.ui.plugin.add("resizable","animate",{stop:function(event){var that=$(this).resizable("instance"),o=that.options,pr=that._proportionallyResizeElements,ista=pr.length&&/textarea/i.test(pr[0].nodeName),soffseth=ista&&that._hasScroll(pr[0],"left")?0:that.sizeDiff.height,soffsetw=ista?0:that.sizeDiff.width,style={width:that.size.width-soffsetw,height:that.size.height-soffseth},left=parseInt(that.element.css("left"),10)+(that.position.left-that.originalPosition.left)||null,top=parseInt(that.element.css("top"),10)+(that.position.top-that.originalPosition.top)||null;that.element.animate($.extend(style,top&&left?{top:top,left:left}:{}),{duration:o.animateDuration,easing:o.animateEasing,step:function(){var data={width:parseInt(that.element.css("width"),10),height:parseInt(that.element.css("height"),10),top:parseInt(that.element.css("top"),10),left:parseInt(that.element.css("left"),10)};if(pr&&pr.length){$(pr[0]).css({width:data.width,height:data.height})}that._updateCache(data);that._propagate("resize",event)}})}});$.ui.plugin.add("resizable","containment",{start:function(){var element,p,co,ch,cw,width,height,that=$(this).resizable("instance"),o=that.options,el=that.element,oc=o.containment,ce=oc instanceof $?oc.get(0):/parent/.test(oc)?el.parent().get(0):oc;if(!ce){return}that.containerElement=$(ce);if(/document/.test(oc)||oc===document){that.containerOffset={left:0,top:0};that.containerPosition={left:0,top:0};that.parentData={element:$(document),left:0,top:0,width:$(document).width(),height:$(document).height()||document.body.parentNode.scrollHeight}}else{element=$(ce);p=[];$(["Top","Right","Left","Bottom"]).each(function(i,name){p[i]=that._num(element.css("padding"+name))});that.containerOffset=element.offset();that.containerPosition=element.position();that.containerSize={height:element.innerHeight()-p[3],width:element.innerWidth()-p[1]};co=that.containerOffset;ch=that.containerSize.height;cw=that.containerSize.width;width=that._hasScroll(ce,"left")?ce.scrollWidth:cw;height=that._hasScroll(ce)?ce.scrollHeight:ch;that.parentData={element:ce,left:co.left,top:co.top,width:width,height:height}}},resize:function(event){var woset,hoset,isParent,isOffsetRelative,that=$(this).resizable("instance"),o=that.options,co=that.containerOffset,cp=that.position,pRatio=that._aspectRatio||event.shiftKey,cop={top:0,left:0},ce=that.containerElement,continueResize=true;if(ce[0]!==document&&/static/.test(ce.css("position"))){cop=co}if(cp.left<(that._helper?co.left:0)){that.size.width=that.size.width+(that._helper?that.position.left-co.left:that.position.left-cop.left);if(pRatio){that.size.height=that.size.width/that.aspectRatio;continueResize=false}that.position.left=o.helper?co.left:0}if(cp.top<(that._helper?co.top:0)){that.size.height=that.size.height+(that._helper?that.position.top-co.top:that.position.top);if(pRatio){that.size.width=that.size.height*that.aspectRatio;continueResize=false}that.position.top=that._helper?co.top:0}isParent=that.containerElement.get(0)===that.element.parent().get(0);isOffsetRelative=/relative|absolute/.test(that.containerElement.css("position"));if(isParent&&isOffsetRelative){that.offset.left=that.parentData.left+that.position.left;that.offset.top=that.parentData.top+that.position.top}else{that.offset.left=that.element.offset().left;that.offset.top=that.element.offset().top}woset=Math.abs(that.sizeDiff.width+(that._helper?that.offset.left-cop.left:that.offset.left-co.left));hoset=Math.abs(that.sizeDiff.height+(that._helper?that.offset.top-cop.top:that.offset.top-co.top));if(woset+that.size.width>=that.parentData.width){that.size.width=that.parentData.width-woset;if(pRatio){that.size.height=that.size.width/that.aspectRatio;continueResize=false}}if(hoset+that.size.height>=that.parentData.height){that.size.height=that.parentData.height-hoset;if(pRatio){that.size.width=that.size.height*that.aspectRatio;continueResize=false}}if(!continueResize){that.position.left=that.prevPosition.left;that.position.top=that.prevPosition.top;that.size.width=that.prevSize.width;that.size.height=that.prevSize.height}},stop:function(){var that=$(this).resizable("instance"),o=that.options,co=that.containerOffset,cop=that.containerPosition,ce=that.containerElement,helper=$(that.helper),ho=helper.offset(),w=helper.outerWidth()-that.sizeDiff.width,h=helper.outerHeight()-that.sizeDiff.height;if(that._helper&&!o.animate&&/relative/.test(ce.css("position"))){$(this).css({left:ho.left-cop.left-co.left,width:w,height:h})}
if(that._helper&&!o.animate&&/static/.test(ce.css("position"))){$(this).css({left:ho.left-cop.left-co.left,width:w,height:h})}}});$.ui.plugin.add("resizable","alsoResize",{start:function(){var that=$(this).resizable("instance"),o=that.options;$(o.alsoResize).each(function(){var el=$(this);el.data("ui-resizable-alsoresize",{width:parseInt(el.width(),10),height:parseInt(el.height(),10),left:parseInt(el.css("left"),10),top:parseInt(el.css("top"),10)})})},resize:function(event,ui){var that=$(this).resizable("instance"),o=that.options,os=that.originalSize,op=that.originalPosition,delta={height:that.size.height-os.height||0,width:that.size.width-os.width||0,top:that.position.top-op.top||0,left:that.position.left-op.left||0};$(o.alsoResize).each(function(){var el=$(this),start=$(this).data("ui-resizable-alsoresize"),style={},css=el.parents(ui.originalElement[0]).length?["width","height"]:["width","height","top","left"];$.each(css,function(i,prop){var sum=(start[prop]||0)+(delta[prop]||0);if(sum&&sum>=0){style[prop]=sum||null}});el.css(style)})},stop:function(){$(this).removeData("resizable-alsoresize")}});$.ui.plugin.add("resizable","ghost",{start:function(){var that=$(this).resizable("instance"),o=that.options,cs=that.size;that.ghost=that.originalElement.clone();that.ghost.css({opacity:.25,display:"block",position:"relative",height:cs.height,width:cs.width,margin:0,left:0,top:0}).addClass("ui-resizable-ghost").addClass(typeof o.ghost==="string"?o.ghost:"");that.ghost.appendTo(that.helper)},resize:function(){var that=$(this).resizable("instance");if(that.ghost){that.ghost.css({position:"relative",height:that.size.height,width:that.size.width})}},stop:function(){var that=$(this).resizable("instance");if(that.ghost&&that.helper){that.helper.get(0).removeChild(that.ghost.get(0))}}});$.ui.plugin.add("resizable","grid",{resize:function(){var outerDimensions,that=$(this).resizable("instance"),o=that.options,cs=that.size,os=that.originalSize,op=that.originalPosition,a=that.axis,grid=typeof o.grid==="number"?[o.grid,o.grid]:o.grid,gridX=grid[0]||1,gridY=grid[1]||1,ox=Math.round((cs.width-os.width)/gridX)*gridX,oy=Math.round((cs.height-os.height)/gridY)*gridY,newWidth=os.width+ox,newHeight=os.height+oy,isMaxWidth=o.maxWidth&&o.maxWidth<newWidth,isMaxHeight=o.maxHeight&&o.maxHeight<newHeight,isMinWidth=o.minWidth&&o.minWidth>newWidth,isMinHeight=o.minHeight&&o.minHeight>newHeight;o.grid=grid;if(isMinWidth){newWidth+=gridX}if(isMinHeight){newHeight+=gridY}if(isMaxWidth){newWidth-=gridX}if(isMaxHeight){newHeight-=gridY}if(/^(se|s|e)$/.test(a)){that.size.width=newWidth;that.size.height=newHeight}else if(/^(ne)$/.test(a)){that.size.width=newWidth;that.size.height=newHeight;that.position.top=op.top-oy}else if(/^(sw)$/.test(a)){that.size.width=newWidth;that.size.height=newHeight;that.position.left=op.left-ox}else{if(newHeight-gridY<=0||newWidth-gridX<=0){outerDimensions=that._getPaddingPlusBorderDimensions(this)}if(newHeight-gridY>0){that.size.height=newHeight;that.position.top=op.top-oy}else{newHeight=gridY-outerDimensions.height;that.size.height=newHeight;that.position.top=op.top+os.height-newHeight}if(newWidth-gridX>0){that.size.width=newWidth;that.position.left=op.left-ox}else{newWidth=gridX-outerDimensions.width;that.size.width=newWidth;that.position.left=op.left+os.width-newWidth}}}});var resizable=$.ui.resizable;var selectable=$.widget("ui.selectable",$.ui.mouse,{version:"1.11.4",options:{appendTo:"body",autoRefresh:true,distance:0,filter:"*",tolerance:"touch",selected:null,selecting:null,start:null,stop:null,unselected:null,unselecting:null},_create:function(){var selectees,that=this;this.element.addClass("ui-selectable");this.dragged=false;this.refresh=function(){selectees=$(that.options.filter,that.element[0]);selectees.addClass("ui-selectee");selectees.each(function(){var $this=$(this),pos=$this.offset();$.data(this,"selectable-item",{element:this,$element:$this,left:pos.left,top:pos.top,right:pos.left+$this.outerWidth(),bottom:pos.top+$this.outerHeight(),startselected:false,selected:$this.hasClass("ui-selected"),selecting:$this.hasClass("ui-selecting"),unselecting:$this.hasClass("ui-unselecting")})})};this.refresh();this.selectees=selectees.addClass("ui-selectee");this._mouseInit();this.helper=$("<div class='ui-selectable-helper'></div>")},_destroy:function(){this.selectees.removeClass("ui-selectee").removeData("selectable-item");this.element.removeClass("ui-selectable ui-selectable-disabled");this._mouseDestroy()},_mouseStart:function(event){var that=this,options=this.options;this.opos=[event.pageX,event.pageY];if(this.options.disabled){return}this.selectees=$(options.filter,this.element[0]);this._trigger("start",event);$(options.appendTo).append(this.helper);this.helper.css({left:event.pageX,top:event.pageY,width:0,height:0});if(options.autoRefresh){this.refresh()}this.selectees.filter(".ui-selected").each(function(){var selectee=$.data(this,"selectable-item");selectee.startselected=true;if(!event.metaKey&&!event.ctrlKey){selectee.$element.removeClass("ui-selected");selectee.selected=false;selectee.$element.addClass("ui-unselecting");selectee.unselecting=true;that._trigger("unselecting",event,{unselecting:selectee.element})}});$(event.target).parents().addBack().each(function(){var doSelect,selectee=$.data(this,"selectable-item");if(selectee){doSelect=!event.metaKey&&!event.ctrlKey||!selectee.$element.hasClass("ui-selected");selectee.$element.removeClass(doSelect?"ui-unselecting":"ui-selected").addClass(doSelect?"ui-selecting":"ui-unselecting");selectee.unselecting=!doSelect;selectee.selecting=doSelect;selectee.selected=doSelect;if(doSelect){that._trigger("selecting",event,{selecting:selectee.element})}else{that._trigger("unselecting",event,{unselecting:selectee.element})}return false}})},_mouseDrag:function(event){this.dragged=true;if(this.options.disabled){return}var tmp,that=this,options=this.options,x1=this.opos[0],y1=this.opos[1],x2=event.pageX,y2=event.pageY;if(x1>x2){tmp=x2;x2=x1;x1=tmp}if(y1>y2){tmp=y2;y2=y1;y1=tmp}this.helper.css({left:x1,top:y1,width:x2-x1,height:y2-y1});this.selectees.each(function(){var selectee=$.data(this,"selectable-item"),hit=false;if(!selectee||selectee.element===that.element[0]){return}if(options.tolerance==="touch"){hit=!(selectee.left>x2||selectee.right<x1||selectee.top>y2||selectee.bottom<y1)}else if(options.tolerance==="fit"){hit=selectee.left>x1&&selectee.right<x2&&selectee.top>y1&&selectee.bottom<y2}if(hit){if(selectee.selected){selectee.$element.removeClass("ui-selected");selectee.selected=false}if(selectee.unselecting){selectee.$element.removeClass("ui-unselecting");selectee.unselecting=false}if(!selectee.selecting){selectee.$element.addClass("ui-selecting");selectee.selecting=true;that._trigger("selecting",event,{selecting:selectee.element})}}else{if(selectee.selecting){if((event.metaKey||event.ctrlKey)&&selectee.startselected){selectee.$element.removeClass("ui-selecting");selectee.selecting=false;selectee.$element.addClass("ui-selected");selectee.selected=true}else{selectee.$element.removeClass("ui-selecting");selectee.selecting=false;if(selectee.startselected){selectee.$element.addClass("ui-unselecting");selectee.unselecting=true}that._trigger("unselecting",event,{unselecting:selectee.element})}}if(selectee.selected){if(!event.metaKey&&!event.ctrlKey&&!selectee.startselected){selectee.$element.removeClass("ui-selected");selectee.selected=false;selectee.$element.addClass("ui-unselecting");selectee.unselecting=true;that._trigger("unselecting",event,{unselecting:selectee.element})}}}});return false},_mouseStop:function(event){var that=this;this.dragged=false;$(".ui-unselecting",this.element[0]).each(function(){var selectee=$.data(this,"selectable-item");selectee.$element.removeClass("ui-unselecting");selectee.unselecting=false;selectee.startselected=false;that._trigger("unselected",event,{unselected:selectee.element})});$(".ui-selecting",this.element[0]).each(function(){var selectee=$.data(this,"selectable-item");selectee.$element.removeClass("ui-selecting").addClass("ui-selected");selectee.selecting=false;selectee.selected=true;selectee.startselected=true;that._trigger("selected",event,{selected:selectee.element})});this._trigger("stop",event);this.helper.remove();return false}});var sortable=$.widget("ui.sortable",$.ui.mouse,{version:"1.11.4",widgetEventPrefix:"sort",ready:false,options:{appendTo:"parent",axis:false,connectWith:false,containment:false,cursor:"auto",cursorAt:false,dropOnEmpty:true,forcePlaceholderSize:false,forceHelperSize:false,grid:false,handle:false,helper:"original",items:"> *",opacity:false,placeholder:false,revert:false,scroll:true,scrollSensitivity:20,scrollSpeed:20,scope:"default",tolerance:"intersect",zIndex:1e3,activate:null,beforeStop:null,change:null,deactivate:null,out:null,over:null,receive:null,remove:null,sort:null,start:null,stop:null,update:null},_isOverAxis:function(x,reference,size){return x>=reference&&x<reference+size},_isFloating:function(item){return/left|right/.test(item.css("float"))||/inline|table-cell/.test(item.css("display"))},_create:function(){this.containerCache={};this.element.addClass("ui-sortable");this.refresh();this.offset=this.element.offset();this._mouseInit();this._setHandleClassName();this.ready=true},_setOption:function(key,value){this._super(key,value);if(key==="handle"){this._setHandleClassName()}},_setHandleClassName:function(){this.element.find(".ui-sortable-handle").removeClass("ui-sortable-handle");$.each(this.items,function(){(this.instance.options.handle?this.item.find(this.instance.options.handle):this.item).addClass("ui-sortable-handle")})},_destroy:function(){this.element.removeClass("ui-sortable ui-sortable-disabled").find(".ui-sortable-handle").removeClass("ui-sortable-handle");this._mouseDestroy();for(var i=this.items.length-1;i>=0;i--){this.items[i].item.removeData(this.widgetName+"-item")}return this},_mouseCapture:function(event,overrideHandle){var currentItem=null,validHandle=false,that=this;if(this.reverting){return false}if(this.options.disabled||this.options.type==="static"){return false}this._refreshItems(event);$(event.target).parents().each(function(){if($.data(this,that.widgetName+"-item")===that){currentItem=$(this);return false}});if($.data(event.target,that.widgetName+"-item")===that){currentItem=$(event.target)}if(!currentItem){return false}if(this.options.handle&&!overrideHandle){$(this.options.handle,currentItem).find("*").addBack().each(function(){if(this===event.target){validHandle=true}});if(!validHandle){return false}}this.currentItem=currentItem;this._removeCurrentsFromItems();return true},_mouseStart:function(event,overrideHandle,noActivation){var i,body,o=this.options;this.currentContainer=this;this.refreshPositions();this.helper=this._createHelper(event);this._cacheHelperProportions();this._cacheMargins();this.scrollParent=this.helper.scrollParent();this.offset=this.currentItem.offset();this.offset={top:this.offset.top-this.margins.top,left:this.offset.left-this.margins.left};$.extend(this.offset,{click:{left:event.pageX-this.offset.left,top:event.pageY-this.offset.top},parent:this._getParentOffset(),relative:this._getRelativeOffset()});this.helper.css("position","absolute");this.cssPosition=this.helper.css("position");this.originalPosition=this._generatePosition(event);this.originalPageX=event.pageX;this.originalPageY=event.pageY;o.cursorAt&&this._adjustOffsetFromHelper(o.cursorAt);this.domPosition={prev:this.currentItem.prev()[0],parent:this.currentItem.parent()[0]};if(this.helper[0]!==this.currentItem[0]){this.currentItem.hide()}this._createPlaceholder();if(o.containment){this._setContainment()}if(o.cursor&&o.cursor!=="auto"){body=this.document.find("body");this.storedCursor=body.css("cursor");body.css("cursor",o.cursor);this.storedStylesheet=$("<style>*{ cursor: "+o.cursor+" !important; }</style>").appendTo(body)}if(o.opacity){if(this.helper.css("opacity")){this._storedOpacity=this.helper.css("opacity")}this.helper.css("opacity",o.opacity)}if(o.zIndex){if(this.helper.css("zIndex")){this._storedZIndex=this.helper.css("zIndex")}this.helper.css("zIndex",o.zIndex)}if(this.scrollParent[0]!==this.document[0]&&this.scrollParent[0].tagName!=="HTML"){this.overflowOffset=this.scrollParent.offset()}this._trigger("start",event,this._uiHash());if(!this._preserveHelperProportions){this._cacheHelperProportions()}if(!noActivation){for(i=this.containers.length-1;i>=0;i--){this.containers[i]._trigger("activate",event,this._uiHash(this))}}if($.ui.ddmanager){$.ui.ddmanager.current=this}if($.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,event)}this.dragging=true;this.helper.addClass("ui-sortable-helper");this._mouseDrag(event);return true},_mouseDrag:function(event){var i,item,itemElement,intersection,o=this.options,scrolled=false;this.position=this._generatePosition(event);this.positionAbs=this._convertPositionTo("absolute");if(!this.lastPositionAbs){this.lastPositionAbs=this.positionAbs}if(this.options.scroll){if(this.scrollParent[0]!==this.document[0]&&this.scrollParent[0].tagName!=="HTML"){if(this.overflowOffset.top+this.scrollParent[0].offsetHeight-event.pageY<o.scrollSensitivity){this.scrollParent[0].scrollTop=scrolled=this.scrollParent[0].scrollTop+o.scrollSpeed}else if(event.pageY-this.overflowOffset.top<o.scrollSensitivity){this.scrollParent[0].scrollTop=scrolled=this.scrollParent[0].scrollTop-o.scrollSpeed}if(this.overflowOffset.left+this.scrollParent[0].offsetWidth-event.pageX<o.scrollSensitivity){this.scrollParent[0].scrollLeft=scrolled=this.scrollParent[0].scrollLeft+o.scrollSpeed}else if(event.pageX-this.overflowOffset.left<o.scrollSensitivity){this.scrollParent[0].scrollLeft=scrolled=this.scrollParent[0].scrollLeft-o.scrollSpeed}}else{if(event.pageY-this.document.scrollTop()<o.scrollSensitivity){scrolled=this.document.scrollTop(this.document.scrollTop()-o.scrollSpeed)}else if(this.window.height()-(event.pageY-this.document.scrollTop())<o.scrollSensitivity){scrolled=this.document.scrollTop(this.document.scrollTop()+o.scrollSpeed)}if(event.pageX-this.document.scrollLeft()<o.scrollSensitivity){scrolled=this.document.scrollLeft(this.document.scrollLeft()-o.scrollSpeed)}else if(this.window.width()-(event.pageX-this.document.scrollLeft())<o.scrollSensitivity){scrolled=this.document.scrollLeft(this.document.scrollLeft()+o.scrollSpeed)}}if(scrolled!==false&&$.ui.ddmanager&&!o.dropBehaviour){$.ui.ddmanager.prepareOffsets(this,event)}}this.positionAbs=this._convertPositionTo("absolute");if(!this.options.axis||this.options.axis!=="y"){this.helper[0].style.left=this.position.left+"px"}if(!this.options.axis||this.options.axis!=="x"){this.helper[0].style.top=this.position.top+"px"}for(i=this.items.length-1;i>=0;i--){item=this.items[i];itemElement=item.item[0];intersection=this._intersectsWithPointer(item);if(!intersection){continue}if(item.instance!==this.currentContainer){continue}if(itemElement!==this.currentItem[0]&&this.placeholder[intersection===1?"next":"prev"]()[0]!==itemElement&&!$.contains(this.placeholder[0],itemElement)&&(this.options.type==="semi-dynamic"?!$.contains(this.element[0],itemElement):true)){this.direction=intersection===1?"down":"up";if(this.options.tolerance==="pointer"||this._intersectsWithSides(item)){this._rearrange(event,item)}else{break}this._trigger("change",event,this._uiHash());break}}this._contactContainers(event);if($.ui.ddmanager){$.ui.ddmanager.drag(this,event)}this._trigger("sort",event,this._uiHash());this.lastPositionAbs=this.positionAbs;return false},_mouseStop:function(event,noPropagation){if(!event){return}if($.ui.ddmanager&&!this.options.dropBehaviour){$.ui.ddmanager.drop(this,event)}if(this.options.revert){var that=this,cur=this.placeholder.offset(),axis=this.options.axis,animation={};if(!axis||axis==="x"){animation.left=cur.left-this.offset.parent.left-this.margins.left+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollLeft)}if(!axis||axis==="y"){animation.top=cur.top-this.offset.parent.top-this.margins.top+(this.offsetParent[0]===this.document[0].body?0:this.offsetParent[0].scrollTop)}this.reverting=true;$(this.helper).animate(animation,parseInt(this.options.revert,10)||500,function(){that._clear(event)})}else{this._clear(event,noPropagation)}return false},cancel:function(){if(this.dragging){this._mouseUp({target:null});if(this.options.helper==="original"){this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}for(var i=this.containers.length-1;i>=0;i--){this.containers[i]._trigger("deactivate",null,this._uiHash(this));if(this.containers[i].containerCache.over){this.containers[i]._trigger("out",null,this._uiHash(this));this.containers[i].containerCache.over=0}}}if(this.placeholder){if(this.placeholder[0].parentNode){this.placeholder[0].parentNode.removeChild(this.placeholder[0])}if(this.options.helper!=="original"&&this.helper&&this.helper[0].parentNode){this.helper.remove()}$.extend(this,{helper:null,dragging:false,reverting:false,_noFinalSort:null});if(this.domPosition.prev){$(this.domPosition.prev).after(this.currentItem)}else{$(this.domPosition.parent).prepend(this.currentItem)}}return this},serialize:function(o){var items=this._getItemsAsjQuery(o&&o.connected),str=[];o=o||{};$(items).each(function(){var res=($(o.item||this).attr(o.attribute||"id")||"").match(o.expression||/(.+)[\-=_](.+)/);if(res){str.push((o.key||res[1]+"[]")+"="+(o.key&&o.expression?res[1]:res[2]))}});if(!str.length&&o.key){str.push(o.key+"=")}return str.join("&")},toArray:function(o){var items=this._getItemsAsjQuery(o&&o.connected),ret=[];o=o||{};items.each(function(){ret.push($(o.item||this).attr(o.attribute||"id")||"")});return ret},_intersectsWith:function(item){var x1=this.positionAbs.left,x2=x1+this.helperProportions.width,y1=this.positionAbs.top,y2=y1+this.helperProportions.height,l=item.left,r=l+item.width,t=item.top,b=t+item.height,dyClick=this.offset.click.top,dxClick=this.offset.click.left,isOverElementHeight=this.options.axis==="x"||y1+dyClick>t&&y1+dyClick<b,isOverElementWidth=this.options.axis==="y"||x1+dxClick>l&&x1+dxClick<r,isOverElement=isOverElementHeight&&isOverElementWidth;if(this.options.tolerance==="pointer"||this.options.forcePointerForContainers||this.options.tolerance!=="pointer"&&this.helperProportions[this.floating?"width":"height"]>item[this.floating?"width":"height"]){return isOverElement}else{return l<x1+this.helperProportions.width/2&&x2-this.helperProportions.width/2<r&&t<y1+this.helperProportions.height/2&&y2-this.helperProportions.height/2<b}},_intersectsWithPointer:function(item){var isOverElementHeight=this.options.axis==="x"||this._isOverAxis(this.positionAbs.top+this.offset.click.top,item.top,item.height),isOverElementWidth=this.options.axis==="y"||this._isOverAxis(this.positionAbs.left+this.offset.click.left,item.left,item.width),isOverElement=isOverElementHeight&&isOverElementWidth,verticalDirection=this._getDragVerticalDirection(),horizontalDirection=this._getDragHorizontalDirection();if(!isOverElement){return false}return this.floating?horizontalDirection&&horizontalDirection==="right"||verticalDirection==="down"?2:1:verticalDirection&&(verticalDirection==="down"?2:1)},_intersectsWithSides:function(item){var isOverBottomHalf=this._isOverAxis(this.positionAbs.top+this.offset.click.top,item.top+item.height/2,item.height),isOverRightHalf=this._isOverAxis(this.positionAbs.left+this.offset.click.left,item.left+item.width/2,item.width),verticalDirection=this._getDragVerticalDirection(),horizontalDirection=this._getDragHorizontalDirection();if(this.floating&&horizontalDirection){return horizontalDirection==="right"&&isOverRightHalf||horizontalDirection==="left"&&!isOverRightHalf}else{return verticalDirection&&(verticalDirection==="down"&&isOverBottomHalf||verticalDirection==="up"&&!isOverBottomHalf)}},_getDragVerticalDirection:function(){var delta=this.positionAbs.top-this.lastPositionAbs.top;return delta!==0&&(delta>0?"down":"up")},_getDragHorizontalDirection:function(){var delta=this.positionAbs.left-this.lastPositionAbs.left;return delta!==0&&(delta>0?"right":"left")},refresh:function(event){this._refreshItems(event);this._setHandleClassName();this.refreshPositions();return this},_connectWith:function(){var options=this.options;return options.connectWith.constructor===String?[options.connectWith]:options.connectWith},_getItemsAsjQuery:function(connected){var i,j,cur,inst,items=[],queries=[],connectWith=this._connectWith();if(connectWith&&connected){for(i=connectWith.length-1;i>=0;i--){cur=$(connectWith[i],this.document[0]);for(j=cur.length-1;j>=0;j--){inst=$.data(cur[j],this.widgetFullName);if(inst&&inst!==this&&!inst.options.disabled){queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element):$(inst.options.items,inst.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),inst])}}}}queries.push([$.isFunction(this.options.items)?this.options.items.call(this.element,null,{options:this.options,item:this.currentItem}):$(this.options.items,this.element).not(".ui-sortable-helper").not(".ui-sortable-placeholder"),this]);function addItems(){items.push(this)}for(i=queries.length-1;i>=0;i--){queries[i][0].each(addItems)}return $(items)},_removeCurrentsFromItems:function(){var list=this.currentItem.find(":data("+this.widgetName+"-item)");this.items=$.grep(this.items,function(item){for(var j=0;j<list.length;j++){if(list[j]===item.item[0]){return false}}return true})},_refreshItems:function(event){this.items=[];this.containers=[this];var i,j,cur,inst,targetData,_queries,item,queriesLength,items=this.items,queries=[[$.isFunction(this.options.items)?this.options.items.call(this.element[0],event,{item:this.currentItem}):$(this.options.items,this.element),this]],connectWith=this._connectWith();if(connectWith&&this.ready){for(i=connectWith.length-1;i>=0;i--){cur=$(connectWith[i],this.document[0]);for(j=cur.length-1;j>=0;j--){inst=$.data(cur[j],this.widgetFullName);if(inst&&inst!==this&&!inst.options.disabled){queries.push([$.isFunction(inst.options.items)?inst.options.items.call(inst.element[0],event,{item:this.currentItem}):$(inst.options.items,inst.element),inst]);this.containers.push(inst)}}}}for(i=queries.length-1;i>=0;i--){targetData=queries[i][1];_queries=queries[i][0];for(j=0,queriesLength=_queries.length;j<queriesLength;j++){item=$(_queries[j]);item.data(this.widgetName+"-item",targetData);items.push({item:item,instance:targetData,width:0,height:0,left:0,top:0})}}},refreshPositions:function(fast){this.floating=this.items.length?this.options.axis==="x"||this._isFloating(this.items[0].item):false;if(this.offsetParent&&this.helper){this.offset.parent=this._getParentOffset()}var i,item,t,p;for(i=this.items.length-1;i>=0;i--){item=this.items[i];if(item.instance!==this.currentContainer&&this.currentContainer&&item.item[0]!==this.currentItem[0]){continue}t=this.options.toleranceElement?$(this.options.toleranceElement,item.item):item.item;if(!fast){item.width=t.outerWidth();item.height=t.outerHeight()}p=t.offset();item.left=p.left;item.top=p.top}if(this.options.custom&&this.options.custom.refreshContainers){this.options.custom.refreshContainers.call(this)}else{for(i=this.containers.length-1;i>=0;i--){p=this.containers[i].element.offset();this.containers[i].containerCache.left=p.left;this.containers[i].containerCache.top=p.top;this.containers[i].containerCache.width=this.containers[i].element.outerWidth();this.containers[i].containerCache.height=this.containers[i].element.outerHeight()}}return this},_createPlaceholder:function(that){that=that||this;var className,o=that.options;if(!o.placeholder||o.placeholder.constructor===String){className=o.placeholder;o.placeholder={element:function(){var nodeName=that.currentItem[0].nodeName.toLowerCase(),element=$("<"+nodeName+">",that.document[0]).addClass(className||that.currentItem[0].className+" ui-sortable-placeholder").removeClass("ui-sortable-helper");if(nodeName==="tbody"){that._createTrPlaceholder(that.currentItem.find("tr").eq(0),$("<tr>",that.document[0]).appendTo(element))}else if(nodeName==="tr"){that._createTrPlaceholder(that.currentItem,element)}else if(nodeName==="img"){element.attr("src",that.currentItem.attr("src"))}if(!className){element.css("visibility","hidden")}return element},update:function(container,p){if(className&&!o.forcePlaceholderSize){return}if(!p.height()){p.height(that.currentItem.innerHeight()-parseInt(that.currentItem.css("paddingTop")||0,10)-parseInt(that.currentItem.css("paddingBottom")||0,10))}if(!p.width()){p.width(that.currentItem.innerWidth()-parseInt(that.currentItem.css("paddingLeft")||0,10)-parseInt(that.currentItem.css("paddingRight")||0,10))}}}}that.placeholder=$(o.placeholder.element.call(that.element,that.currentItem));that.currentItem.after(that.placeholder);o.placeholder.update(that,that.placeholder)},_createTrPlaceholder:function(sourceTr,targetTr){var that=this;sourceTr.children().each(function(){$("<td>&#160;</td>",that.document[0]).attr("colspan",$(this).attr("colspan")||1).appendTo(targetTr)})},_contactContainers:function(event){var i,j,dist,itemWithLeastDistance,posProperty,sizeProperty,cur,nearBottom,floating,axis,innermostContainer=null,innermostIndex=null;for(i=this.containers.length-1;i>=0;i--){if($.contains(this.currentItem[0],this.containers[i].element[0])){continue}if(this._intersectsWith(this.containers[i].containerCache)){if(innermostContainer&&$.contains(this.containers[i].element[0],innermostContainer.element[0])){continue}innermostContainer=this.containers[i];innermostIndex=i}else{if(this.containers[i].containerCache.over){this.containers[i]._trigger("out",event,this._uiHash(this));this.containers[i].containerCache.over=0}}}if(!innermostContainer){return}if(this.containers.length===1){if(!this.containers[innermostIndex].containerCache.over){this.containers[innermostIndex]._trigger("over",event,this._uiHash(this));this.containers[innermostIndex].containerCache.over=1}}else{dist=1e4;itemWithLeastDistance=null;floating=innermostContainer.floating||this._isFloating(this.currentItem);posProperty=floating?"left":"top";sizeProperty=floating?"width":"height";axis=floating?"clientX":"clientY";for(j=this.items.length-1;j>=0;j--){if(!$.contains(this.containers[innermostIndex].element[0],this.items[j].item[0])){continue}if(this.items[j].item[0]===this.currentItem[0]){continue}cur=this.items[j].item.offset()[posProperty];nearBottom=false;if(event[axis]-cur>this.items[j][sizeProperty]/2){nearBottom=true}if(Math.abs(event[axis]-cur)<dist){dist=Math.abs(event[axis]-cur);itemWithLeastDistance=this.items[j];this.direction=nearBottom?"up":"down"}}if(!itemWithLeastDistance&&!this.options.dropOnEmpty){return}if(this.currentContainer===this.containers[innermostIndex]){if(!this.currentContainer.containerCache.over){this.containers[innermostIndex]._trigger("over",event,this._uiHash());this.currentContainer.containerCache.over=1}return}itemWithLeastDistance?this._rearrange(event,itemWithLeastDistance,null,true):this._rearrange(event,null,this.containers[innermostIndex].element,true);this._trigger("change",event,this._uiHash());this.containers[innermostIndex]._trigger("change",event,this._uiHash(this));this.currentContainer=this.containers[innermostIndex];this.options.placeholder.update(this.currentContainer,this.placeholder);this.containers[innermostIndex]._trigger("over",event,this._uiHash(this));this.containers[innermostIndex].containerCache.over=1}},_createHelper:function(event){var o=this.options,helper=$.isFunction(o.helper)?$(o.helper.apply(this.element[0],[event,this.currentItem])):o.helper==="clone"?this.currentItem.clone():this.currentItem;if(!helper.parents("body").length){$(o.appendTo!=="parent"?o.appendTo:this.currentItem[0].parentNode)[0].appendChild(helper[0])}if(helper[0]===this.currentItem[0]){this._storedCSS={width:this.currentItem[0].style.width,height:this.currentItem[0].style.height,position:this.currentItem.css("position"),top:this.currentItem.css("top"),left:this.currentItem.css("left")}}if(!helper[0].style.width||o.forceHelperSize){helper.width(this.currentItem.width())}if(!helper[0].style.height||o.forceHelperSize){helper.height(this.currentItem.height())}return helper},_adjustOffsetFromHelper:function(obj){if(typeof obj==="string"){obj=obj.split(" ")}if($.isArray(obj)){obj={left:+obj[0],top:+obj[1]||0}}if("left"in obj){this.offset.click.left=obj.left+this.margins.left}if("right"in obj){this.offset.click.left=this.helperProportions.width-obj.right+this.margins.left}if("top"in obj){this.offset.click.top=obj.top+this.margins.top}if("bottom"in obj){this.offset.click.top=this.helperProportions.height-obj.bottom+this.margins.top}},_getParentOffset:function(){this.offsetParent=this.helper.offsetParent();var po=this.offsetParent.offset();if(this.cssPosition==="absolute"&&this.scrollParent[0]!==this.document[0]&&$.contains(this.scrollParent[0],this.offsetParent[0])){po.left+=this.scrollParent.scrollLeft();po.top+=this.scrollParent.scrollTop()}if(this.offsetParent[0]===this.document[0].body||this.offsetParent[0].tagName&&this.offsetParent[0].tagName.toLowerCase()==="html"&&$.ui.ie){po={top:0,left:0}}return{top:po.top+(parseInt(this.offsetParent.css("borderTopWidth"),10)||0),left:po.left+(parseInt(this.offsetParent.css("borderLeftWidth"),10)||0)}},_getRelativeOffset:function(){if(this.cssPosition==="relative"){var p=this.currentItem.position();return{top:p.top-(parseInt(this.helper.css("top"),10)||0)+this.scrollParent.scrollTop(),left:p.left-(parseInt(this.helper.css("left"),10)||0)+this.scrollParent.scrollLeft()}}else{return{top:0,left:0}}},_cacheMargins:function(){this.margins={left:parseInt(this.currentItem.css("marginLeft"),10)||0,top:parseInt(this.currentItem.css("marginTop"),10)||0}},_cacheHelperProportions:function(){this.helperProportions={width:this.helper.outerWidth(),height:this.helper.outerHeight()}},_setContainment:function(){var ce,co,over,o=this.options;if(o.containment==="parent"){o.containment=this.helper[0].parentNode}if(o.containment==="document"||o.containment==="window"){this.containment=[0-this.offset.relative.left-this.offset.parent.left,0-this.offset.relative.top-this.offset.parent.top,o.containment==="document"?this.document.width():this.window.width()-this.helperProportions.width-this.margins.left,(o.containment==="document"?this.document.width():this.window.height()||this.document[0].body.parentNode.scrollHeight)-this.helperProportions.height-this.margins.top]}if(!/^(document|window|parent)$/.test(o.containment)){ce=$(o.containment)[0];co=$(o.containment).offset();over=$(ce).css("overflow")!=="hidden";this.containment=[co.left+(parseInt($(ce).css("borderLeftWidth"),10)||0)+(parseInt($(ce).css("paddingLeft"),10)||0)-this.margins.left,co.top+(parseInt($(ce).css("borderTopWidth"),10)||0)+(parseInt($(ce).css("paddingTop"),10)||0)-this.margins.top,co.left+(over?Math.max(ce.scrollWidth,ce.offsetWidth):ce.offsetWidth)-(parseInt($(ce).css("borderLeftWidth"),10)||0)-(parseInt($(ce).css("paddingRight"),10)||0)-this.helperProportions.width-this.margins.left,co.top+(over?Math.max(ce.scrollHeight,ce.offsetHeight):ce.offsetHeight)-(parseInt($(ce).css("borderTopWidth"),10)||0)-(parseInt($(ce).css("paddingBottom"),10)||0)-this.helperProportions.height-this.margins.top]}},_convertPositionTo:function(d,pos){if(!pos){pos=this.position}var mod=d==="absolute"?1:-1,scroll=this.cssPosition==="absolute"&&!(this.scrollParent[0]!==this.document[0]&&$.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=/(html|body)/i.test(scroll[0].tagName);return{top:pos.top+this.offset.relative.top*mod+this.offset.parent.top*mod-(this.cssPosition==="fixed"?-this.scrollParent.scrollTop():scrollIsRootNode?0:scroll.scrollTop())*mod,left:pos.left+this.offset.relative.left*mod+this.offset.parent.left*mod-(this.cssPosition==="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())*mod}},_generatePosition:function(event){
var top,left,o=this.options,pageX=event.pageX,pageY=event.pageY,scroll=this.cssPosition==="absolute"&&!(this.scrollParent[0]!==this.document[0]&&$.contains(this.scrollParent[0],this.offsetParent[0]))?this.offsetParent:this.scrollParent,scrollIsRootNode=/(html|body)/i.test(scroll[0].tagName);if(this.cssPosition==="relative"&&!(this.scrollParent[0]!==this.document[0]&&this.scrollParent[0]!==this.offsetParent[0])){this.offset.relative=this._getRelativeOffset()}if(this.originalPosition){if(this.containment){if(event.pageX-this.offset.click.left<this.containment[0]){pageX=this.containment[0]+this.offset.click.left}if(event.pageY-this.offset.click.top<this.containment[1]){pageY=this.containment[1]+this.offset.click.top}if(event.pageX-this.offset.click.left>this.containment[2]){pageX=this.containment[2]+this.offset.click.left}if(event.pageY-this.offset.click.top>this.containment[3]){pageY=this.containment[3]+this.offset.click.top}}if(o.grid){top=this.originalPageY+Math.round((pageY-this.originalPageY)/o.grid[1])*o.grid[1];pageY=this.containment?top-this.offset.click.top>=this.containment[1]&&top-this.offset.click.top<=this.containment[3]?top:top-this.offset.click.top>=this.containment[1]?top-o.grid[1]:top+o.grid[1]:top;left=this.originalPageX+Math.round((pageX-this.originalPageX)/o.grid[0])*o.grid[0];pageX=this.containment?left-this.offset.click.left>=this.containment[0]&&left-this.offset.click.left<=this.containment[2]?left:left-this.offset.click.left>=this.containment[0]?left-o.grid[0]:left+o.grid[0]:left}}return{top:pageY-this.offset.click.top-this.offset.relative.top-this.offset.parent.top+(this.cssPosition==="fixed"?-this.scrollParent.scrollTop():scrollIsRootNode?0:scroll.scrollTop()),left:pageX-this.offset.click.left-this.offset.relative.left-this.offset.parent.left+(this.cssPosition==="fixed"?-this.scrollParent.scrollLeft():scrollIsRootNode?0:scroll.scrollLeft())}},_rearrange:function(event,i,a,hardRefresh){a?a[0].appendChild(this.placeholder[0]):i.item[0].parentNode.insertBefore(this.placeholder[0],this.direction==="down"?i.item[0]:i.item[0].nextSibling);this.counter=this.counter?++this.counter:1;var counter=this.counter;this._delay(function(){if(counter===this.counter){this.refreshPositions(!hardRefresh)}})},_clear:function(event,noPropagation){this.reverting=false;var i,delayedTriggers=[];if(!this._noFinalSort&&this.currentItem.parent().length){this.placeholder.before(this.currentItem)}this._noFinalSort=null;if(this.helper[0]===this.currentItem[0]){for(i in this._storedCSS){if(this._storedCSS[i]==="auto"||this._storedCSS[i]==="static"){this._storedCSS[i]=""}}this.currentItem.css(this._storedCSS).removeClass("ui-sortable-helper")}else{this.currentItem.show()}if(this.fromOutside&&!noPropagation){delayedTriggers.push(function(event){this._trigger("receive",event,this._uiHash(this.fromOutside))})}if((this.fromOutside||this.domPosition.prev!==this.currentItem.prev().not(".ui-sortable-helper")[0]||this.domPosition.parent!==this.currentItem.parent()[0])&&!noPropagation){delayedTriggers.push(function(event){this._trigger("update",event,this._uiHash())})}if(this!==this.currentContainer){if(!noPropagation){delayedTriggers.push(function(event){this._trigger("remove",event,this._uiHash())});delayedTriggers.push(function(c){return function(event){c._trigger("receive",event,this._uiHash(this))}}.call(this,this.currentContainer));delayedTriggers.push(function(c){return function(event){c._trigger("update",event,this._uiHash(this))}}.call(this,this.currentContainer))}}function delayEvent(type,instance,container){return function(event){container._trigger(type,event,instance._uiHash(instance))}}for(i=this.containers.length-1;i>=0;i--){if(!noPropagation){delayedTriggers.push(delayEvent("deactivate",this,this.containers[i]))}if(this.containers[i].containerCache.over){delayedTriggers.push(delayEvent("out",this,this.containers[i]));this.containers[i].containerCache.over=0}}if(this.storedCursor){this.document.find("body").css("cursor",this.storedCursor);this.storedStylesheet.remove()}if(this._storedOpacity){this.helper.css("opacity",this._storedOpacity)}if(this._storedZIndex){this.helper.css("zIndex",this._storedZIndex==="auto"?"":this._storedZIndex)}this.dragging=false;if(!noPropagation){this._trigger("beforeStop",event,this._uiHash())}this.placeholder[0].parentNode.removeChild(this.placeholder[0]);if(!this.cancelHelperRemoval){if(this.helper[0]!==this.currentItem[0]){this.helper.remove()}this.helper=null}if(!noPropagation){for(i=0;i<delayedTriggers.length;i++){delayedTriggers[i].call(this,event)}this._trigger("stop",event,this._uiHash())}this.fromOutside=false;return!this.cancelHelperRemoval},_trigger:function(){if($.Widget.prototype._trigger.apply(this,arguments)===false){this.cancel()}},_uiHash:function(_inst){var inst=_inst||this;return{helper:inst.helper,placeholder:inst.placeholder||$([]),position:inst.position,originalPosition:inst.originalPosition,offset:inst.positionAbs,item:inst.currentItem,sender:_inst?_inst.element:null}}});var accordion=$.widget("ui.accordion",{version:"1.11.4",options:{active:0,animate:{},collapsible:false,event:"click",header:"> li > :first-child,> :not(li):even",heightStyle:"auto",icons:{activeHeader:"ui-icon-triangle-1-s",header:"ui-icon-triangle-1-e"},activate:null,beforeActivate:null},hideProps:{borderTopWidth:"hide",borderBottomWidth:"hide",paddingTop:"hide",paddingBottom:"hide",height:"hide"},showProps:{borderTopWidth:"show",borderBottomWidth:"show",paddingTop:"show",paddingBottom:"show",height:"show"},_create:function(){var options=this.options;this.prevShow=this.prevHide=$();this.element.addClass("ui-accordion ui-widget ui-helper-reset").attr("role","tablist");if(!options.collapsible&&(options.active===false||options.active==null)){options.active=0}this._processPanels();if(options.active<0){options.active+=this.headers.length}this._refresh()},_getCreateEventData:function(){return{header:this.active,panel:!this.active.length?$():this.active.next()}},_createIcons:function(){var icons=this.options.icons;if(icons){$("<span>").addClass("ui-accordion-header-icon ui-icon "+icons.header).prependTo(this.headers);this.active.children(".ui-accordion-header-icon").removeClass(icons.header).addClass(icons.activeHeader);this.headers.addClass("ui-accordion-icons")}},_destroyIcons:function(){this.headers.removeClass("ui-accordion-icons").children(".ui-accordion-header-icon").remove()},_destroy:function(){var contents;this.element.removeClass("ui-accordion ui-widget ui-helper-reset").removeAttr("role");this.headers.removeClass("ui-accordion-header ui-accordion-header-active ui-state-default "+"ui-corner-all ui-state-active ui-state-disabled ui-corner-top").removeAttr("role").removeAttr("aria-expanded").removeAttr("aria-selected").removeAttr("aria-controls").removeAttr("tabIndex").removeUniqueId();this._destroyIcons();contents=this.headers.next().removeClass("ui-helper-reset ui-widget-content ui-corner-bottom "+"ui-accordion-content ui-accordion-content-active ui-state-disabled").css("display","").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeUniqueId();if(this.options.heightStyle!=="content"){contents.css("height","")}},_setOption:function(key,value){if(key==="active"){this._activate(value);return}if(key==="event"){if(this.options.event){this._off(this.headers,this.options.event)}this._setupEvents(value)}this._super(key,value);if(key==="collapsible"&&!value&&this.options.active===false){this._activate(0)}if(key==="icons"){this._destroyIcons();if(value){this._createIcons()}}if(key==="disabled"){this.element.toggleClass("ui-state-disabled",!!value).attr("aria-disabled",value);this.headers.add(this.headers.next()).toggleClass("ui-state-disabled",!!value)}},_keydown:function(event){if(event.altKey||event.ctrlKey){return}var keyCode=$.ui.keyCode,length=this.headers.length,currentIndex=this.headers.index(event.target),toFocus=false;switch(event.keyCode){case keyCode.RIGHT:case keyCode.DOWN:toFocus=this.headers[(currentIndex+1)%length];break;case keyCode.LEFT:case keyCode.UP:toFocus=this.headers[(currentIndex-1+length)%length];break;case keyCode.SPACE:case keyCode.ENTER:this._eventHandler(event);break;case keyCode.HOME:toFocus=this.headers[0];break;case keyCode.END:toFocus=this.headers[length-1];break}if(toFocus){$(event.target).attr("tabIndex",-1);$(toFocus).attr("tabIndex",0);toFocus.focus();event.preventDefault()}},_panelKeyDown:function(event){if(event.keyCode===$.ui.keyCode.UP&&event.ctrlKey){$(event.currentTarget).prev().focus()}},refresh:function(){var options=this.options;this._processPanels();if(options.active===false&&options.collapsible===true||!this.headers.length){options.active=false;this.active=$()}else if(options.active===false){this._activate(0)}else if(this.active.length&&!$.contains(this.element[0],this.active[0])){if(this.headers.length===this.headers.find(".ui-state-disabled").length){options.active=false;this.active=$()}else{this._activate(Math.max(0,options.active-1))}}else{options.active=this.headers.index(this.active)}this._destroyIcons();this._refresh()},_processPanels:function(){var prevHeaders=this.headers,prevPanels=this.panels;this.headers=this.element.find(this.options.header).addClass("ui-accordion-header ui-state-default ui-corner-all");this.panels=this.headers.next().addClass("ui-accordion-content ui-helper-reset ui-widget-content ui-corner-bottom").filter(":not(.ui-accordion-content-active)").hide();if(prevPanels){this._off(prevHeaders.not(this.headers));this._off(prevPanels.not(this.panels))}},_refresh:function(){var maxHeight,options=this.options,heightStyle=options.heightStyle,parent=this.element.parent();this.active=this._findActive(options.active).addClass("ui-accordion-header-active ui-state-active ui-corner-top").removeClass("ui-corner-all");this.active.next().addClass("ui-accordion-content-active").show();this.headers.attr("role","tab").each(function(){var header=$(this),headerId=header.uniqueId().attr("id"),panel=header.next(),panelId=panel.uniqueId().attr("id");header.attr("aria-controls",panelId);panel.attr("aria-labelledby",headerId)}).next().attr("role","tabpanel");this.headers.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1}).next().attr({"aria-hidden":"true"}).hide();if(!this.active.length){this.headers.eq(0).attr("tabIndex",0)}else{this.active.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0}).next().attr({"aria-hidden":"false"})}this._createIcons();this._setupEvents(options.event);if(heightStyle==="fill"){maxHeight=parent.height();this.element.siblings(":visible").each(function(){var elem=$(this),position=elem.css("position");if(position==="absolute"||position==="fixed"){return}maxHeight-=elem.outerHeight(true)});this.headers.each(function(){maxHeight-=$(this).outerHeight(true)});this.headers.next().each(function(){$(this).height(Math.max(0,maxHeight-$(this).innerHeight()+$(this).height()))}).css("overflow","auto")}else if(heightStyle==="auto"){maxHeight=0;this.headers.next().each(function(){maxHeight=Math.max(maxHeight,$(this).css("height","").height())}).height(maxHeight)}},_activate:function(index){var active=this._findActive(index)[0];if(active===this.active[0]){return}active=active||this.active[0];this._eventHandler({target:active,currentTarget:active,preventDefault:$.noop})},_findActive:function(selector){return typeof selector==="number"?this.headers.eq(selector):$()},_setupEvents:function(event){var events={keydown:"_keydown"};if(event){$.each(event.split(" "),function(index,eventName){events[eventName]="_eventHandler"})}this._off(this.headers.add(this.headers.next()));this._on(this.headers,events);this._on(this.headers.next(),{keydown:"_panelKeyDown"});this._hoverable(this.headers);this._focusable(this.headers)},_eventHandler:function(event){var options=this.options,active=this.active,clicked=$(event.currentTarget),clickedIsActive=clicked[0]===active[0],collapsing=clickedIsActive&&options.collapsible,toShow=collapsing?$():clicked.next(),toHide=active.next(),eventData={oldHeader:active,oldPanel:toHide,newHeader:collapsing?$():clicked,newPanel:toShow};event.preventDefault();if(clickedIsActive&&!options.collapsible||this._trigger("beforeActivate",event,eventData)===false){return}options.active=collapsing?false:this.headers.index(clicked);this.active=clickedIsActive?$():clicked;this._toggle(eventData);active.removeClass("ui-accordion-header-active ui-state-active");if(options.icons){active.children(".ui-accordion-header-icon").removeClass(options.icons.activeHeader).addClass(options.icons.header)}if(!clickedIsActive){clicked.removeClass("ui-corner-all").addClass("ui-accordion-header-active ui-state-active ui-corner-top");if(options.icons){clicked.children(".ui-accordion-header-icon").removeClass(options.icons.header).addClass(options.icons.activeHeader)}clicked.next().addClass("ui-accordion-content-active")}},_toggle:function(data){var toShow=data.newPanel,toHide=this.prevShow.length?this.prevShow:data.oldPanel;this.prevShow.add(this.prevHide).stop(true,true);this.prevShow=toShow;this.prevHide=toHide;if(this.options.animate){this._animate(toShow,toHide,data)}else{toHide.hide();toShow.show();this._toggleComplete(data)}toHide.attr({"aria-hidden":"true"});toHide.prev().attr({"aria-selected":"false","aria-expanded":"false"});if(toShow.length&&toHide.length){toHide.prev().attr({tabIndex:-1,"aria-expanded":"false"})}else if(toShow.length){this.headers.filter(function(){return parseInt($(this).attr("tabIndex"),10)===0}).attr("tabIndex",-1)}toShow.attr("aria-hidden","false").prev().attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_animate:function(toShow,toHide,data){var total,easing,duration,that=this,adjust=0,boxSizing=toShow.css("box-sizing"),down=toShow.length&&(!toHide.length||toShow.index()<toHide.index()),animate=this.options.animate||{},options=down&&animate.down||animate,complete=function(){that._toggleComplete(data)};if(typeof options==="number"){duration=options}if(typeof options==="string"){easing=options}easing=easing||options.easing||animate.easing;duration=duration||options.duration||animate.duration;if(!toHide.length){return toShow.animate(this.showProps,duration,easing,complete)}if(!toShow.length){return toHide.animate(this.hideProps,duration,easing,complete)}total=toShow.show().outerHeight();toHide.animate(this.hideProps,{duration:duration,easing:easing,step:function(now,fx){fx.now=Math.round(now)}});toShow.hide().animate(this.showProps,{duration:duration,easing:easing,complete:complete,step:function(now,fx){fx.now=Math.round(now);if(fx.prop!=="height"){if(boxSizing==="content-box"){adjust+=fx.now}}else if(that.options.heightStyle!=="content"){fx.now=Math.round(total-toHide.outerHeight()-adjust);adjust=0}}})},_toggleComplete:function(data){var toHide=data.oldPanel;toHide.removeClass("ui-accordion-content-active").prev().removeClass("ui-corner-top").addClass("ui-corner-all");if(toHide.length){toHide.parent()[0].className=toHide.parent()[0].className}this._trigger("activate",null,data)}});var menu=$.widget("ui.menu",{version:"1.11.4",defaultElement:"<ul>",delay:300,options:{icons:{submenu:"ui-icon-carat-1-e"},items:"> *",menus:"ul",position:{my:"left-1 top",at:"right top"},role:"menu",blur:null,focus:null,select:null},_create:function(){this.activeMenu=this.element;this.mouseHandled=false;this.element.uniqueId().addClass("ui-menu ui-widget ui-widget-content").toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length).attr({role:this.options.role,tabIndex:0});if(this.options.disabled){this.element.addClass("ui-state-disabled").attr("aria-disabled","true")}this._on({"mousedown .ui-menu-item":function(event){event.preventDefault()},"click .ui-menu-item":function(event){var target=$(event.target);if(!this.mouseHandled&&target.not(".ui-state-disabled").length){this.select(event);if(!event.isPropagationStopped()){this.mouseHandled=true}if(target.has(".ui-menu").length){this.expand(event)}else if(!this.element.is(":focus")&&$(this.document[0].activeElement).closest(".ui-menu").length){this.element.trigger("focus",[true]);if(this.active&&this.active.parents(".ui-menu").length===1){clearTimeout(this.timer)}}}},"mouseenter .ui-menu-item":function(event){if(this.previousFilter){return}var target=$(event.currentTarget);target.siblings(".ui-state-active").removeClass("ui-state-active");this.focus(event,target)},mouseleave:"collapseAll","mouseleave .ui-menu":"collapseAll",focus:function(event,keepActiveItem){var item=this.active||this.element.find(this.options.items).eq(0);if(!keepActiveItem){this.focus(event,item)}},blur:function(event){this._delay(function(){if(!$.contains(this.element[0],this.document[0].activeElement)){this.collapseAll(event)}})},keydown:"_keydown"});this.refresh();this._on(this.document,{click:function(event){if(this._closeOnDocumentClick(event)){this.collapseAll(event)}this.mouseHandled=false}})},_destroy:function(){this.element.removeAttr("aria-activedescendant").find(".ui-menu").addBack().removeClass("ui-menu ui-widget ui-widget-content ui-menu-icons ui-front").removeAttr("role").removeAttr("tabIndex").removeAttr("aria-labelledby").removeAttr("aria-expanded").removeAttr("aria-hidden").removeAttr("aria-disabled").removeUniqueId().show();this.element.find(".ui-menu-item").removeClass("ui-menu-item").removeAttr("role").removeAttr("aria-disabled").removeUniqueId().removeClass("ui-state-hover").removeAttr("tabIndex").removeAttr("role").removeAttr("aria-haspopup").children().each(function(){var elem=$(this);if(elem.data("ui-menu-submenu-carat")){elem.remove()}});this.element.find(".ui-menu-divider").removeClass("ui-menu-divider ui-widget-content")},_keydown:function(event){var match,prev,character,skip,preventDefault=true;switch(event.keyCode){case $.ui.keyCode.PAGE_UP:this.previousPage(event);break;case $.ui.keyCode.PAGE_DOWN:this.nextPage(event);break;case $.ui.keyCode.HOME:this._move("first","first",event);break;case $.ui.keyCode.END:this._move("last","last",event);break;case $.ui.keyCode.UP:this.previous(event);break;case $.ui.keyCode.DOWN:this.next(event);break;case $.ui.keyCode.LEFT:this.collapse(event);break;case $.ui.keyCode.RIGHT:if(this.active&&!this.active.is(".ui-state-disabled")){this.expand(event)}break;case $.ui.keyCode.ENTER:case $.ui.keyCode.SPACE:this._activate(event);break;case $.ui.keyCode.ESCAPE:this.collapse(event);break;default:preventDefault=false;prev=this.previousFilter||"";character=String.fromCharCode(event.keyCode);skip=false;clearTimeout(this.filterTimer);if(character===prev){skip=true}else{character=prev+character}match=this._filterMenuItems(character);match=skip&&match.index(this.active.next())!==-1?this.active.nextAll(".ui-menu-item"):match;if(!match.length){character=String.fromCharCode(event.keyCode);match=this._filterMenuItems(character)}if(match.length){this.focus(event,match);this.previousFilter=character;this.filterTimer=this._delay(function(){delete this.previousFilter},1e3)}else{delete this.previousFilter}}if(preventDefault){event.preventDefault()}},_activate:function(event){if(!this.active.is(".ui-state-disabled")){if(this.active.is("[aria-haspopup='true']")){this.expand(event)}else{this.select(event)}}},refresh:function(){var menus,items,that=this,icon=this.options.icons.submenu,submenus=this.element.find(this.options.menus);this.element.toggleClass("ui-menu-icons",!!this.element.find(".ui-icon").length);submenus.filter(":not(.ui-menu)").addClass("ui-menu ui-widget ui-widget-content ui-front").hide().attr({role:this.options.role,"aria-hidden":"true","aria-expanded":"false"}).each(function(){var menu=$(this),item=menu.parent(),submenuCarat=$("<span>").addClass("ui-menu-icon ui-icon "+icon).data("ui-menu-submenu-carat",true);item.attr("aria-haspopup","true").prepend(submenuCarat);menu.attr("aria-labelledby",item.attr("id"))});menus=submenus.add(this.element);items=menus.find(this.options.items);items.not(".ui-menu-item").each(function(){var item=$(this);if(that._isDivider(item)){item.addClass("ui-widget-content ui-menu-divider")}});items.not(".ui-menu-item, .ui-menu-divider").addClass("ui-menu-item").uniqueId().attr({tabIndex:-1,role:this._itemRole()});items.filter(".ui-state-disabled").attr("aria-disabled","true");if(this.active&&!$.contains(this.element[0],this.active[0])){this.blur()}},_itemRole:function(){return{menu:"menuitem",listbox:"option"}[this.options.role]},_setOption:function(key,value){if(key==="icons"){this.element.find(".ui-menu-icon").removeClass(this.options.icons.submenu).addClass(value.submenu)}if(key==="disabled"){this.element.toggleClass("ui-state-disabled",!!value).attr("aria-disabled",value)}this._super(key,value)},focus:function(event,item){var nested,focused;this.blur(event,event&&event.type==="focus");this._scrollIntoView(item);this.active=item.first();focused=this.active.addClass("ui-state-focus").removeClass("ui-state-active");if(this.options.role){this.element.attr("aria-activedescendant",focused.attr("id"))}this.active.parent().closest(".ui-menu-item").addClass("ui-state-active");if(event&&event.type==="keydown"){this._close()}else{this.timer=this._delay(function(){this._close()},this.delay)}nested=item.children(".ui-menu");if(nested.length&&event&&/^mouse/.test(event.type)){this._startOpening(nested)}this.activeMenu=item.parent();this._trigger("focus",event,{item:item})},_scrollIntoView:function(item){var borderTop,paddingTop,offset,scroll,elementHeight,itemHeight;if(this._hasScroll()){borderTop=parseFloat($.css(this.activeMenu[0],"borderTopWidth"))||0;paddingTop=parseFloat($.css(this.activeMenu[0],"paddingTop"))||0;offset=item.offset().top-this.activeMenu.offset().top-borderTop-paddingTop;scroll=this.activeMenu.scrollTop();elementHeight=this.activeMenu.height();itemHeight=item.outerHeight();if(offset<0){this.activeMenu.scrollTop(scroll+offset)}else if(offset+itemHeight>elementHeight){this.activeMenu.scrollTop(scroll+offset-elementHeight+itemHeight)}}},blur:function(event,fromFocus){if(!fromFocus){clearTimeout(this.timer)}if(!this.active){return}this.active.removeClass("ui-state-focus");this.active=null;this._trigger("blur",event,{item:this.active})},_startOpening:function(submenu){clearTimeout(this.timer);if(submenu.attr("aria-hidden")!=="true"){return}this.timer=this._delay(function(){this._close();this._open(submenu)},this.delay)},_open:function(submenu){var position=$.extend({of:this.active},this.options.position);clearTimeout(this.timer);this.element.find(".ui-menu").not(submenu.parents(".ui-menu")).hide().attr("aria-hidden","true");submenu.show().removeAttr("aria-hidden").attr("aria-expanded","true").position(position)},collapseAll:function(event,all){clearTimeout(this.timer);this.timer=this._delay(function(){var currentMenu=all?this.element:$(event&&event.target).closest(this.element.find(".ui-menu"));if(!currentMenu.length){currentMenu=this.element}this._close(currentMenu);this.blur(event);this.activeMenu=currentMenu},this.delay)},_close:function(startMenu){if(!startMenu){startMenu=this.active?this.active.parent():this.element}startMenu.find(".ui-menu").hide().attr("aria-hidden","true").attr("aria-expanded","false").end().find(".ui-state-active").not(".ui-state-focus").removeClass("ui-state-active")},_closeOnDocumentClick:function(event){return!$(event.target).closest(".ui-menu").length},_isDivider:function(item){return!/[^\-\u2014\u2013\s]/.test(item.text())},collapse:function(event){var newItem=this.active&&this.active.parent().closest(".ui-menu-item",this.element);if(newItem&&newItem.length){this._close();this.focus(event,newItem)}},expand:function(event){var newItem=this.active&&this.active.children(".ui-menu ").find(this.options.items).first();if(newItem&&newItem.length){this._open(newItem.parent());this._delay(function(){this.focus(event,newItem)})}},next:function(event){this._move("next","first",event)},previous:function(event){this._move("prev","last",event)},isFirstItem:function(){return this.active&&!this.active.prevAll(".ui-menu-item").length},isLastItem:function(){return this.active&&!this.active.nextAll(".ui-menu-item").length},_move:function(direction,filter,event){var next;if(this.active){if(direction==="first"||direction==="last"){next=this.active[direction==="first"?"prevAll":"nextAll"](".ui-menu-item").eq(-1)}else{next=this.active[direction+"All"](".ui-menu-item").eq(0)}}if(!next||!next.length||!this.active){next=this.activeMenu.find(this.options.items)[filter]()}this.focus(event,next)},nextPage:function(event){var item,base,height;if(!this.active){this.next(event);return}if(this.isLastItem()){return}if(this._hasScroll()){base=this.active.offset().top;height=this.element.height();this.active.nextAll(".ui-menu-item").each(function(){item=$(this);return item.offset().top-base-height<0});this.focus(event,item)}else{this.focus(event,this.activeMenu.find(this.options.items)[!this.active?"first":"last"]())}},previousPage:function(event){var item,base,height;if(!this.active){this.next(event);return}if(this.isFirstItem()){return}if(this._hasScroll()){base=this.active.offset().top;height=this.element.height();this.active.prevAll(".ui-menu-item").each(function(){item=$(this);return item.offset().top-base+height>0});this.focus(event,item)}else{this.focus(event,this.activeMenu.find(this.options.items).first())}},_hasScroll:function(){return this.element.outerHeight()<this.element.prop("scrollHeight")},select:function(event){this.active=this.active||$(event.target).closest(".ui-menu-item");var ui={item:this.active};if(!this.active.has(".ui-menu").length){this.collapseAll(event,true)}this._trigger("select",event,ui)},_filterMenuItems:function(character){var escapedCharacter=character.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&"),regex=new RegExp("^"+escapedCharacter,"i");return this.activeMenu.find(this.options.items).filter(".ui-menu-item").filter(function(){return regex.test($.trim($(this).text()))})}});$.widget("ui.autocomplete",{version:"1.11.4",defaultElement:"<input>",options:{appendTo:null,autoFocus:false,delay:300,minLength:1,position:{my:"left top",at:"left bottom",collision:"none"},source:null,change:null,close:null,focus:null,open:null,response:null,search:null,select:null},requestIndex:0,pending:0,_create:function(){var suppressKeyPress,suppressKeyPressRepeat,suppressInput,nodeName=this.element[0].nodeName.toLowerCase(),isTextarea=nodeName==="textarea",isInput=nodeName==="input";this.isMultiLine=isTextarea?true:isInput?false:this.element.prop("isContentEditable");this.valueMethod=this.element[isTextarea||isInput?"val":"text"];this.isNewMenu=true;this.element.addClass("ui-autocomplete-input").attr("autocomplete","off");this._on(this.element,{keydown:function(event){if(this.element.prop("readOnly")){suppressKeyPress=true;suppressInput=true;suppressKeyPressRepeat=true;return}suppressKeyPress=false;suppressInput=false;suppressKeyPressRepeat=false;var keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.PAGE_UP:suppressKeyPress=true;this._move("previousPage",event);break;case keyCode.PAGE_DOWN:suppressKeyPress=true;this._move("nextPage",event);break;case keyCode.UP:suppressKeyPress=true;this._keyEvent("previous",event);break;case keyCode.DOWN:suppressKeyPress=true;this._keyEvent("next",event);break;case keyCode.ENTER:if(this.menu.active){suppressKeyPress=true;event.preventDefault();this.menu.select(event)}break;case keyCode.TAB:if(this.menu.active){this.menu.select(event)}break;case keyCode.ESCAPE:if(this.menu.element.is(":visible")){if(!this.isMultiLine){this._value(this.term)}this.close(event);event.preventDefault()}break;default:suppressKeyPressRepeat=true;this._searchTimeout(event);break}},keypress:function(event){if(suppressKeyPress){suppressKeyPress=false;if(!this.isMultiLine||this.menu.element.is(":visible")){event.preventDefault()}return}if(suppressKeyPressRepeat){return}var keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.PAGE_UP:this._move("previousPage",event);break;case keyCode.PAGE_DOWN:this._move("nextPage",event);break;case keyCode.UP:this._keyEvent("previous",event);break;case keyCode.DOWN:this._keyEvent("next",event);break}},input:function(event){if(suppressInput){suppressInput=false;event.preventDefault();return}this._searchTimeout(event)},focus:function(){this.selectedItem=null;this.previous=this._value()},blur:function(event){if(this.cancelBlur){delete this.cancelBlur;return}clearTimeout(this.searching);this.close(event);this._change(event)}});this._initSource();this.menu=$("<ul>").addClass("ui-autocomplete ui-front").appendTo(this._appendTo()).menu({role:null}).hide().menu("instance");this._on(this.menu.element,{mousedown:function(event){event.preventDefault();this.cancelBlur=true;this._delay(function(){delete this.cancelBlur});var menuElement=this.menu.element[0];if(!$(event.target).closest(".ui-menu-item").length){this._delay(function(){var that=this;this.document.one("mousedown",function(event){if(event.target!==that.element[0]&&event.target!==menuElement&&!$.contains(menuElement,event.target)){that.close()}})})}},menufocus:function(event,ui){var label,item;if(this.isNewMenu){this.isNewMenu=false;if(event.originalEvent&&/^mouse/.test(event.originalEvent.type)){this.menu.blur();this.document.one("mousemove",function(){$(event.target).trigger(event.originalEvent)});return}}item=ui.item.data("ui-autocomplete-item");if(false!==this._trigger("focus",event,{item:item})){if(event.originalEvent&&/^key/.test(event.originalEvent.type)){this._value(item.value)}}label=ui.item.attr("aria-label")||item.value;if(label&&$.trim(label).length){this.liveRegion.children().hide();$("<div>").text(label).appendTo(this.liveRegion)}},menuselect:function(event,ui){var item=ui.item.data("ui-autocomplete-item"),previous=this.previous;if(this.element[0]!==this.document[0].activeElement){this.element.focus();this.previous=previous;this._delay(function(){this.previous=previous;this.selectedItem=item})}if(false!==this._trigger("select",event,{item:item})){this._value(item.value)}this.term=this._value();this.close(event);this.selectedItem=item}});this.liveRegion=$("<span>",{role:"status","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body);this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_destroy:function(){clearTimeout(this.searching);this.element.removeClass("ui-autocomplete-input").removeAttr("autocomplete");this.menu.element.remove();this.liveRegion.remove()},_setOption:function(key,value){this._super(key,value);if(key==="source"){this._initSource()}if(key==="appendTo"){this.menu.element.appendTo(this._appendTo())}if(key==="disabled"&&value&&this.xhr){this.xhr.abort()}},_appendTo:function(){var element=this.options.appendTo;if(element){element=element.jquery||element.nodeType?$(element):this.document.find(element).eq(0)}if(!element||!element[0]){element=this.element.closest(".ui-front")}if(!element.length){element=this.document[0].body}return element},_initSource:function(){var array,url,that=this;if($.isArray(this.options.source)){array=this.options.source;this.source=function(request,response){response($.ui.autocomplete.filter(array,request.term))}}else if(typeof this.options.source==="string"){url=this.options.source;this.source=function(request,response){if(that.xhr){that.xhr.abort()}that.xhr=$.ajax({url:url,data:request,dataType:"json",success:function(data){response(data)},error:function(){response([])}})}}else{this.source=this.options.source}},_searchTimeout:function(event){clearTimeout(this.searching);this.searching=this._delay(function(){var equalValues=this.term===this._value(),menuVisible=this.menu.element.is(":visible"),modifierKey=event.altKey||event.ctrlKey||event.metaKey||event.shiftKey;if(!equalValues||equalValues&&!menuVisible&&!modifierKey){this.selectedItem=null;this.search(null,event)}},this.options.delay)},search:function(value,event){value=value!=null?value:this._value();this.term=this._value();if(value.length<this.options.minLength){return this.close(event)}
if(this._trigger("search",event)===false){return}return this._search(value)},_search:function(value){this.pending++;this.element.addClass("ui-autocomplete-loading");this.cancelSearch=false;this.source({term:value},this._response())},_response:function(){var index=++this.requestIndex;return $.proxy(function(content){if(index===this.requestIndex){this.__response(content)}this.pending--;if(!this.pending){this.element.removeClass("ui-autocomplete-loading")}},this)},__response:function(content){if(content){content=this._normalize(content)}this._trigger("response",null,{content:content});if(!this.options.disabled&&content&&content.length&&!this.cancelSearch){this._suggest(content);this._trigger("open")}else{this._close()}},close:function(event){this.cancelSearch=true;this._close(event)},_close:function(event){if(this.menu.element.is(":visible")){this.menu.element.hide();this.menu.blur();this.isNewMenu=true;this._trigger("close",event)}},_change:function(event){if(this.previous!==this._value()){this._trigger("change",event,{item:this.selectedItem})}},_normalize:function(items){if(items.length&&items[0].label&&items[0].value){return items}return $.map(items,function(item){if(typeof item==="string"){return{label:item,value:item}}return $.extend({},item,{label:item.label||item.value,value:item.value||item.label})})},_suggest:function(items){var ul=this.menu.element.empty();this._renderMenu(ul,items);this.isNewMenu=true;this.menu.refresh();ul.show();this._resizeMenu();ul.position($.extend({of:this.element},this.options.position));if(this.options.autoFocus){this.menu.next()}},_resizeMenu:function(){var ul=this.menu.element;ul.outerWidth(Math.max(ul.width("").outerWidth()+1,this.element.outerWidth()))},_renderMenu:function(ul,items){var that=this;$.each(items,function(index,item){that._renderItemData(ul,item)})},_renderItemData:function(ul,item){return this._renderItem(ul,item).data("ui-autocomplete-item",item)},_renderItem:function(ul,item){return $("<li>").text(item.label).appendTo(ul)},_move:function(direction,event){if(!this.menu.element.is(":visible")){this.search(null,event);return}if(this.menu.isFirstItem()&&/^previous/.test(direction)||this.menu.isLastItem()&&/^next/.test(direction)){if(!this.isMultiLine){this._value(this.term)}this.menu.blur();return}this.menu[direction](event)},widget:function(){return this.menu.element},_value:function(){return this.valueMethod.apply(this.element,arguments)},_keyEvent:function(keyEvent,event){if(!this.isMultiLine||this.menu.element.is(":visible")){this._move(keyEvent,event);event.preventDefault()}}});$.extend($.ui.autocomplete,{escapeRegex:function(value){return value.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g,"\\$&")},filter:function(array,term){var matcher=new RegExp($.ui.autocomplete.escapeRegex(term),"i");return $.grep(array,function(value){return matcher.test(value.label||value.value||value)})}});$.widget("ui.autocomplete",$.ui.autocomplete,{options:{messages:{noResults:"No search results.",results:function(amount){return amount+(amount>1?" results are":" result is")+" available, use up and down arrow keys to navigate."}}},__response:function(content){var message;this._superApply(arguments);if(this.options.disabled||this.cancelSearch){return}if(content&&content.length){message=this.options.messages.results(content.length)}else{message=this.options.messages.noResults}this.liveRegion.children().hide();$("<div>").text(message).appendTo(this.liveRegion)}});var autocomplete=$.ui.autocomplete;var lastActive,baseClasses="ui-button ui-widget ui-state-default ui-corner-all",typeClasses="ui-button-icons-only ui-button-icon-only ui-button-text-icons ui-button-text-icon-primary ui-button-text-icon-secondary ui-button-text-only",formResetHandler=function(){var form=$(this);setTimeout(function(){form.find(":ui-button").button("refresh")},1)},radioGroup=function(radio){var name=radio.name,form=radio.form,radios=$([]);if(name){name=name.replace(/'/g,"\\'");if(form){radios=$(form).find("[name='"+name+"'][type=radio]")}else{radios=$("[name='"+name+"'][type=radio]",radio.ownerDocument).filter(function(){return!this.form})}}return radios};$.widget("ui.button",{version:"1.11.4",defaultElement:"<button>",options:{disabled:null,text:true,label:null,icons:{primary:null,secondary:null}},_create:function(){this.element.closest("form").unbind("reset"+this.eventNamespace).bind("reset"+this.eventNamespace,formResetHandler);if(typeof this.options.disabled!=="boolean"){this.options.disabled=!!this.element.prop("disabled")}else{this.element.prop("disabled",this.options.disabled)}this._determineButtonType();this.hasTitle=!!this.buttonElement.attr("title");var that=this,options=this.options,toggleButton=this.type==="checkbox"||this.type==="radio",activeClass=!toggleButton?"ui-state-active":"";if(options.label===null){options.label=this.type==="input"?this.buttonElement.val():this.buttonElement.html()}this._hoverable(this.buttonElement);this.buttonElement.addClass(baseClasses).attr("role","button").bind("mouseenter"+this.eventNamespace,function(){if(options.disabled){return}if(this===lastActive){$(this).addClass("ui-state-active")}}).bind("mouseleave"+this.eventNamespace,function(){if(options.disabled){return}$(this).removeClass(activeClass)}).bind("click"+this.eventNamespace,function(event){if(options.disabled){event.preventDefault();event.stopImmediatePropagation()}});this._on({focus:function(){this.buttonElement.addClass("ui-state-focus")},blur:function(){this.buttonElement.removeClass("ui-state-focus")}});if(toggleButton){this.element.bind("change"+this.eventNamespace,function(){that.refresh()})}if(this.type==="checkbox"){this.buttonElement.bind("click"+this.eventNamespace,function(){if(options.disabled){return false}})}else if(this.type==="radio"){this.buttonElement.bind("click"+this.eventNamespace,function(){if(options.disabled){return false}$(this).addClass("ui-state-active");that.buttonElement.attr("aria-pressed","true");var radio=that.element[0];radioGroup(radio).not(radio).map(function(){return $(this).button("widget")[0]}).removeClass("ui-state-active").attr("aria-pressed","false")})}else{this.buttonElement.bind("mousedown"+this.eventNamespace,function(){if(options.disabled){return false}$(this).addClass("ui-state-active");lastActive=this;that.document.one("mouseup",function(){lastActive=null})}).bind("mouseup"+this.eventNamespace,function(){if(options.disabled){return false}$(this).removeClass("ui-state-active")}).bind("keydown"+this.eventNamespace,function(event){if(options.disabled){return false}if(event.keyCode===$.ui.keyCode.SPACE||event.keyCode===$.ui.keyCode.ENTER){$(this).addClass("ui-state-active")}}).bind("keyup"+this.eventNamespace+" blur"+this.eventNamespace,function(){$(this).removeClass("ui-state-active")});if(this.buttonElement.is("a")){this.buttonElement.keyup(function(event){if(event.keyCode===$.ui.keyCode.SPACE){$(this).click()}})}}this._setOption("disabled",options.disabled);this._resetButton()},_determineButtonType:function(){var ancestor,labelSelector,checked;if(this.element.is("[type=checkbox]")){this.type="checkbox"}else if(this.element.is("[type=radio]")){this.type="radio"}else if(this.element.is("input")){this.type="input"}else{this.type="button"}if(this.type==="checkbox"||this.type==="radio"){ancestor=this.element.parents().last();labelSelector="label[for='"+this.element.attr("id")+"']";this.buttonElement=ancestor.find(labelSelector);if(!this.buttonElement.length){ancestor=ancestor.length?ancestor.siblings():this.element.siblings();this.buttonElement=ancestor.filter(labelSelector);if(!this.buttonElement.length){this.buttonElement=ancestor.find(labelSelector)}}this.element.addClass("ui-helper-hidden-accessible");checked=this.element.is(":checked");if(checked){this.buttonElement.addClass("ui-state-active")}this.buttonElement.prop("aria-pressed",checked)}else{this.buttonElement=this.element}},widget:function(){return this.buttonElement},_destroy:function(){this.element.removeClass("ui-helper-hidden-accessible");this.buttonElement.removeClass(baseClasses+" ui-state-active "+typeClasses).removeAttr("role").removeAttr("aria-pressed").html(this.buttonElement.find(".ui-button-text").html());if(!this.hasTitle){this.buttonElement.removeAttr("title")}},_setOption:function(key,value){this._super(key,value);if(key==="disabled"){this.widget().toggleClass("ui-state-disabled",!!value);this.element.prop("disabled",!!value);if(value){if(this.type==="checkbox"||this.type==="radio"){this.buttonElement.removeClass("ui-state-focus")}else{this.buttonElement.removeClass("ui-state-focus ui-state-active")}}return}this._resetButton()},refresh:function(){var isDisabled=this.element.is("input, button")?this.element.is(":disabled"):this.element.hasClass("ui-button-disabled");if(isDisabled!==this.options.disabled){this._setOption("disabled",isDisabled)}if(this.type==="radio"){radioGroup(this.element[0]).each(function(){if($(this).is(":checked")){$(this).button("widget").addClass("ui-state-active").attr("aria-pressed","true")}else{$(this).button("widget").removeClass("ui-state-active").attr("aria-pressed","false")}})}else if(this.type==="checkbox"){if(this.element.is(":checked")){this.buttonElement.addClass("ui-state-active").attr("aria-pressed","true")}else{this.buttonElement.removeClass("ui-state-active").attr("aria-pressed","false")}}},_resetButton:function(){if(this.type==="input"){if(this.options.label){this.element.val(this.options.label)}return}var buttonElement=this.buttonElement.removeClass(typeClasses),buttonText=$("<span></span>",this.document[0]).addClass("ui-button-text").html(this.options.label).appendTo(buttonElement.empty()).text(),icons=this.options.icons,multipleIcons=icons.primary&&icons.secondary,buttonClasses=[];if(icons.primary||icons.secondary){if(this.options.text){buttonClasses.push("ui-button-text-icon"+(multipleIcons?"s":icons.primary?"-primary":"-secondary"))}if(icons.primary){buttonElement.prepend("<span class='ui-button-icon-primary ui-icon "+icons.primary+"'></span>")}if(icons.secondary){buttonElement.append("<span class='ui-button-icon-secondary ui-icon "+icons.secondary+"'></span>")}if(!this.options.text){buttonClasses.push(multipleIcons?"ui-button-icons-only":"ui-button-icon-only");if(!this.hasTitle){buttonElement.attr("title",$.trim(buttonText))}}}else{buttonClasses.push("ui-button-text-only")}buttonElement.addClass(buttonClasses.join(" "))}});$.widget("ui.buttonset",{version:"1.11.4",options:{items:"button, input[type=button], input[type=submit], input[type=reset], input[type=checkbox], input[type=radio], a, :data(ui-button)"},_create:function(){this.element.addClass("ui-buttonset")},_init:function(){this.refresh()},_setOption:function(key,value){if(key==="disabled"){this.buttons.button("option",key,value)}this._super(key,value)},refresh:function(){var rtl=this.element.css("direction")==="rtl",allButtons=this.element.find(this.options.items),existingButtons=allButtons.filter(":ui-button");allButtons.not(":ui-button").button();existingButtons.button("refresh");this.buttons=allButtons.map(function(){return $(this).button("widget")[0]}).removeClass("ui-corner-all ui-corner-left ui-corner-right").filter(":first").addClass(rtl?"ui-corner-right":"ui-corner-left").end().filter(":last").addClass(rtl?"ui-corner-left":"ui-corner-right").end().end()},_destroy:function(){this.element.removeClass("ui-buttonset");this.buttons.map(function(){return $(this).button("widget")[0]}).removeClass("ui-corner-left ui-corner-right").end().button("destroy")}});var button=$.ui.button;$.extend($.ui,{datepicker:{version:"1.11.4"}});var datepicker_instActive;function datepicker_getZindex(elem){var position,value;while(elem.length&&elem[0]!==document){position=elem.css("position");if(position==="absolute"||position==="relative"||position==="fixed"){value=parseInt(elem.css("zIndex"),10);if(!isNaN(value)&&value!==0){return value}}elem=elem.parent()}return 0}function Datepicker(){this._curInst=null;this._keyEvent=false;this._disabledInputs=[];this._datepickerShowing=false;this._inDialog=false;this._mainDivId="ui-datepicker-div";this._inlineClass="ui-datepicker-inline";this._appendClass="ui-datepicker-append";this._triggerClass="ui-datepicker-trigger";this._dialogClass="ui-datepicker-dialog";this._disableClass="ui-datepicker-disabled";this._unselectableClass="ui-datepicker-unselectable";this._currentClass="ui-datepicker-current-day";this._dayOverClass="ui-datepicker-days-cell-over";this.regional=[];this.regional[""]={closeText:"Done",prevText:"Prev",nextText:"Next",currentText:"Today",monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],dayNamesMin:["Su","Mo","Tu","We","Th","Fr","Sa"],weekHeader:"Wk",dateFormat:"mm/dd/yy",firstDay:0,isRTL:false,showMonthAfterYear:false,yearSuffix:""};this._defaults={showOn:"focus",showAnim:"fadeIn",showOptions:{},defaultDate:null,appendText:"",buttonText:"...",buttonImage:"",buttonImageOnly:false,hideIfNoPrevNext:false,navigationAsDateFormat:false,gotoCurrent:false,changeMonth:false,changeYear:false,yearRange:"c-10:c+10",showOtherMonths:false,selectOtherMonths:false,showWeek:false,calculateWeek:this.iso8601Week,shortYearCutoff:"+10",minDate:null,maxDate:null,duration:"fast",beforeShowDay:null,beforeShow:null,onSelect:null,onChangeMonthYear:null,onClose:null,numberOfMonths:1,showCurrentAtPos:0,stepMonths:1,stepBigMonths:12,altField:"",altFormat:"",constrainInput:true,showButtonPanel:false,autoSize:false,disabled:false};$.extend(this._defaults,this.regional[""]);this.regional.en=$.extend(true,{},this.regional[""]);this.regional["en-US"]=$.extend(true,{},this.regional.en);this.dpDiv=datepicker_bindHover($("<div id='"+this._mainDivId+"' class='ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}$.extend(Datepicker.prototype,{markerClassName:"hasDatepicker",maxRows:4,_widgetDatepicker:function(){return this.dpDiv},setDefaults:function(settings){datepicker_extendRemove(this._defaults,settings||{});return this},_attachDatepicker:function(target,settings){var nodeName,inline,inst;nodeName=target.nodeName.toLowerCase();inline=nodeName==="div"||nodeName==="span";if(!target.id){this.uuid+=1;target.id="dp"+this.uuid}inst=this._newInst($(target),inline);inst.settings=$.extend({},settings||{});if(nodeName==="input"){this._connectDatepicker(target,inst)}else if(inline){this._inlineDatepicker(target,inst)}},_newInst:function(target,inline){var id=target[0].id.replace(/([^A-Za-z0-9_\-])/g,"\\\\$1");return{id:id,input:target,selectedDay:0,selectedMonth:0,selectedYear:0,drawMonth:0,drawYear:0,inline:inline,dpDiv:!inline?this.dpDiv:datepicker_bindHover($("<div class='"+this._inlineClass+" ui-datepicker ui-widget ui-widget-content ui-helper-clearfix ui-corner-all'></div>"))}},_connectDatepicker:function(target,inst){var input=$(target);inst.append=$([]);inst.trigger=$([]);if(input.hasClass(this.markerClassName)){return}this._attachments(input,inst);input.addClass(this.markerClassName).keydown(this._doKeyDown).keypress(this._doKeyPress).keyup(this._doKeyUp);this._autoSize(inst);$.data(target,"datepicker",inst);if(inst.settings.disabled){this._disableDatepicker(target)}},_attachments:function(input,inst){var showOn,buttonText,buttonImage,appendText=this._get(inst,"appendText"),isRTL=this._get(inst,"isRTL");if(inst.append){inst.append.remove()}if(appendText){inst.append=$("<span class='"+this._appendClass+"'>"+appendText+"</span>");input[isRTL?"before":"after"](inst.append)}input.unbind("focus",this._showDatepicker);if(inst.trigger){inst.trigger.remove()}showOn=this._get(inst,"showOn");if(showOn==="focus"||showOn==="both"){input.focus(this._showDatepicker)}if(showOn==="button"||showOn==="both"){buttonText=this._get(inst,"buttonText");buttonImage=this._get(inst,"buttonImage");inst.trigger=$(this._get(inst,"buttonImageOnly")?$("<img/>").addClass(this._triggerClass).attr({src:buttonImage,alt:buttonText,title:buttonText}):$("<button type='button'></button>").addClass(this._triggerClass).html(!buttonImage?buttonText:$("<img/>").attr({src:buttonImage,alt:buttonText,title:buttonText})));input[isRTL?"before":"after"](inst.trigger);inst.trigger.click(function(){if($.datepicker._datepickerShowing&&$.datepicker._lastInput===input[0]){$.datepicker._hideDatepicker()}else if($.datepicker._datepickerShowing&&$.datepicker._lastInput!==input[0]){$.datepicker._hideDatepicker();$.datepicker._showDatepicker(input[0])}else{$.datepicker._showDatepicker(input[0])}return false})}},_autoSize:function(inst){if(this._get(inst,"autoSize")&&!inst.inline){var findMax,max,maxI,i,date=new Date(2009,12-1,20),dateFormat=this._get(inst,"dateFormat");if(dateFormat.match(/[DM]/)){findMax=function(names){max=0;maxI=0;for(i=0;i<names.length;i++){if(names[i].length>max){max=names[i].length;maxI=i}}return maxI};date.setMonth(findMax(this._get(inst,dateFormat.match(/MM/)?"monthNames":"monthNamesShort")));date.setDate(findMax(this._get(inst,dateFormat.match(/DD/)?"dayNames":"dayNamesShort"))+20-date.getDay())}inst.input.attr("size",this._formatDate(inst,date).length)}},_inlineDatepicker:function(target,inst){var divSpan=$(target);if(divSpan.hasClass(this.markerClassName)){return}divSpan.addClass(this.markerClassName).append(inst.dpDiv);$.data(target,"datepicker",inst);this._setDate(inst,this._getDefaultDate(inst),true);this._updateDatepicker(inst);this._updateAlternate(inst);if(inst.settings.disabled){this._disableDatepicker(target)}inst.dpDiv.css("display","block")},_dialogDatepicker:function(input,date,onSelect,settings,pos){var id,browserWidth,browserHeight,scrollX,scrollY,inst=this._dialogInst;if(!inst){this.uuid+=1;id="dp"+this.uuid;this._dialogInput=$("<input type='text' id='"+id+"' style='position: absolute; top: -100px; width: 0px;'/>");this._dialogInput.keydown(this._doKeyDown);$("body").append(this._dialogInput);inst=this._dialogInst=this._newInst(this._dialogInput,false);inst.settings={};$.data(this._dialogInput[0],"datepicker",inst)}datepicker_extendRemove(inst.settings,settings||{});date=date&&date.constructor===Date?this._formatDate(inst,date):date;this._dialogInput.val(date);this._pos=pos?pos.length?pos:[pos.pageX,pos.pageY]:null;if(!this._pos){browserWidth=document.documentElement.clientWidth;browserHeight=document.documentElement.clientHeight;scrollX=document.documentElement.scrollLeft||document.body.scrollLeft;scrollY=document.documentElement.scrollTop||document.body.scrollTop;this._pos=[browserWidth/2-100+scrollX,browserHeight/2-150+scrollY]}this._dialogInput.css("left",this._pos[0]+20+"px").css("top",this._pos[1]+"px");inst.settings.onSelect=onSelect;this._inDialog=true;this.dpDiv.addClass(this._dialogClass);this._showDatepicker(this._dialogInput[0]);if($.blockUI){$.blockUI(this.dpDiv)}$.data(this._dialogInput[0],"datepicker",inst);return this},_destroyDatepicker:function(target){var nodeName,$target=$(target),inst=$.data(target,"datepicker");if(!$target.hasClass(this.markerClassName)){return}nodeName=target.nodeName.toLowerCase();$.removeData(target,"datepicker");if(nodeName==="input"){inst.append.remove();inst.trigger.remove();$target.removeClass(this.markerClassName).unbind("focus",this._showDatepicker).unbind("keydown",this._doKeyDown).unbind("keypress",this._doKeyPress).unbind("keyup",this._doKeyUp)}else if(nodeName==="div"||nodeName==="span"){$target.removeClass(this.markerClassName).empty()}if(datepicker_instActive===inst){datepicker_instActive=null}},_enableDatepicker:function(target){var nodeName,inline,$target=$(target),inst=$.data(target,"datepicker");if(!$target.hasClass(this.markerClassName)){return}nodeName=target.nodeName.toLowerCase();if(nodeName==="input"){target.disabled=false;inst.trigger.filter("button").each(function(){this.disabled=false}).end().filter("img").css({opacity:"1.0",cursor:""})}else if(nodeName==="div"||nodeName==="span"){inline=$target.children("."+this._inlineClass);inline.children().removeClass("ui-state-disabled");inline.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",false)}this._disabledInputs=$.map(this._disabledInputs,function(value){return value===target?null:value})},_disableDatepicker:function(target){var nodeName,inline,$target=$(target),inst=$.data(target,"datepicker");if(!$target.hasClass(this.markerClassName)){return}nodeName=target.nodeName.toLowerCase();if(nodeName==="input"){target.disabled=true;inst.trigger.filter("button").each(function(){this.disabled=true}).end().filter("img").css({opacity:"0.5",cursor:"default"})}else if(nodeName==="div"||nodeName==="span"){inline=$target.children("."+this._inlineClass);inline.children().addClass("ui-state-disabled");inline.find("select.ui-datepicker-month, select.ui-datepicker-year").prop("disabled",true)}this._disabledInputs=$.map(this._disabledInputs,function(value){return value===target?null:value});this._disabledInputs[this._disabledInputs.length]=target},_isDisabledDatepicker:function(target){if(!target){return false}for(var i=0;i<this._disabledInputs.length;i++){if(this._disabledInputs[i]===target){return true}}return false},_getInst:function(target){try{return $.data(target,"datepicker")}catch(err){throw"Missing instance data for this datepicker"}},_optionDatepicker:function(target,name,value){var settings,date,minDate,maxDate,inst=this._getInst(target);if(arguments.length===2&&typeof name==="string"){return name==="defaults"?$.extend({},$.datepicker._defaults):inst?name==="all"?$.extend({},inst.settings):this._get(inst,name):null}settings=name||{};if(typeof name==="string"){settings={};settings[name]=value}if(inst){if(this._curInst===inst){this._hideDatepicker()}date=this._getDateDatepicker(target,true);minDate=this._getMinMaxDate(inst,"min");maxDate=this._getMinMaxDate(inst,"max");datepicker_extendRemove(inst.settings,settings);if(minDate!==null&&settings.dateFormat!==undefined&&settings.minDate===undefined){inst.settings.minDate=this._formatDate(inst,minDate)}if(maxDate!==null&&settings.dateFormat!==undefined&&settings.maxDate===undefined){inst.settings.maxDate=this._formatDate(inst,maxDate)}if("disabled"in settings){if(settings.disabled){this._disableDatepicker(target)}else{this._enableDatepicker(target)}}this._attachments($(target),inst);this._autoSize(inst);this._setDate(inst,date);this._updateAlternate(inst);this._updateDatepicker(inst)}},_changeDatepicker:function(target,name,value){this._optionDatepicker(target,name,value)},_refreshDatepicker:function(target){var inst=this._getInst(target);if(inst){this._updateDatepicker(inst)}},_setDateDatepicker:function(target,date){var inst=this._getInst(target);if(inst){this._setDate(inst,date);this._updateDatepicker(inst);this._updateAlternate(inst)}},_getDateDatepicker:function(target,noDefault){var inst=this._getInst(target);if(inst&&!inst.inline){this._setDateFromField(inst,noDefault)}return inst?this._getDate(inst):null},_doKeyDown:function(event){var onSelect,dateStr,sel,inst=$.datepicker._getInst(event.target),handled=true,isRTL=inst.dpDiv.is(".ui-datepicker-rtl");inst._keyEvent=true;if($.datepicker._datepickerShowing){switch(event.keyCode){case 9:$.datepicker._hideDatepicker();handled=false;break;case 13:sel=$("td."+$.datepicker._dayOverClass+":not(."+$.datepicker._currentClass+")",inst.dpDiv);if(sel[0]){$.datepicker._selectDay(event.target,inst.selectedMonth,inst.selectedYear,sel[0])}onSelect=$.datepicker._get(inst,"onSelect");if(onSelect){dateStr=$.datepicker._formatDate(inst);onSelect.apply(inst.input?inst.input[0]:null,[dateStr,inst])}else{$.datepicker._hideDatepicker()}return false;case 27:$.datepicker._hideDatepicker();break;case 33:$.datepicker._adjustDate(event.target,event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths"),"M");break;case 34:$.datepicker._adjustDate(event.target,event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths"),"M");break;case 35:if(event.ctrlKey||event.metaKey){$.datepicker._clearDate(event.target)}handled=event.ctrlKey||event.metaKey;break;case 36:if(event.ctrlKey||event.metaKey){$.datepicker._gotoToday(event.target)}handled=event.ctrlKey||event.metaKey;break;case 37:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,isRTL?+1:-1,"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,event.ctrlKey?-$.datepicker._get(inst,"stepBigMonths"):-$.datepicker._get(inst,"stepMonths"),"M")}break;case 38:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,-7,"D")}handled=event.ctrlKey||event.metaKey;break;case 39:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,isRTL?-1:+1,"D")}handled=event.ctrlKey||event.metaKey;if(event.originalEvent.altKey){$.datepicker._adjustDate(event.target,event.ctrlKey?+$.datepicker._get(inst,"stepBigMonths"):+$.datepicker._get(inst,"stepMonths"),"M")}break;case 40:if(event.ctrlKey||event.metaKey){$.datepicker._adjustDate(event.target,+7,"D")}handled=event.ctrlKey||event.metaKey;break;default:handled=false}}else if(event.keyCode===36&&event.ctrlKey){$.datepicker._showDatepicker(this)}else{handled=false}if(handled){event.preventDefault();event.stopPropagation()}},_doKeyPress:function(event){var chars,chr,inst=$.datepicker._getInst(event.target);if($.datepicker._get(inst,"constrainInput")){chars=$.datepicker._possibleChars($.datepicker._get(inst,"dateFormat"));chr=String.fromCharCode(event.charCode==null?event.keyCode:event.charCode);return event.ctrlKey||event.metaKey||(chr<" "||!chars||chars.indexOf(chr)>-1)}},_doKeyUp:function(event){var date,inst=$.datepicker._getInst(event.target);if(inst.input.val()!==inst.lastVal){try{date=$.datepicker.parseDate($.datepicker._get(inst,"dateFormat"),inst.input?inst.input.val():null,$.datepicker._getFormatConfig(inst));if(date){$.datepicker._setDateFromField(inst);$.datepicker._updateAlternate(inst);$.datepicker._updateDatepicker(inst)}}catch(err){}}return true},_showDatepicker:function(input){input=input.target||input;if(input.nodeName.toLowerCase()!=="input"){input=$("input",input.parentNode)[0]}if($.datepicker._isDisabledDatepicker(input)||$.datepicker._lastInput===input){return}var inst,beforeShow,beforeShowSettings,isFixed,offset,showAnim,duration;inst=$.datepicker._getInst(input);if($.datepicker._curInst&&$.datepicker._curInst!==inst){$.datepicker._curInst.dpDiv.stop(true,true);if(inst&&$.datepicker._datepickerShowing){$.datepicker._hideDatepicker($.datepicker._curInst.input[0])}}beforeShow=$.datepicker._get(inst,"beforeShow");beforeShowSettings=beforeShow?beforeShow.apply(input,[input,inst]):{};if(beforeShowSettings===false){return}datepicker_extendRemove(inst.settings,beforeShowSettings);inst.lastVal=null;$.datepicker._lastInput=input;$.datepicker._setDateFromField(inst);if($.datepicker._inDialog){input.value=""}if(!$.datepicker._pos){$.datepicker._pos=$.datepicker._findPos(input);$.datepicker._pos[1]+=input.offsetHeight}isFixed=false;$(input).parents().each(function(){isFixed|=$(this).css("position")==="fixed";return!isFixed});offset={left:$.datepicker._pos[0],top:$.datepicker._pos[1]};$.datepicker._pos=null;inst.dpDiv.empty();inst.dpDiv.css({position:"absolute",display:"block",top:"-1000px"});$.datepicker._updateDatepicker(inst);offset=$.datepicker._checkOffset(inst,offset,isFixed);inst.dpDiv.css({position:$.datepicker._inDialog&&$.blockUI?"static":isFixed?"fixed":"absolute",display:"none",left:offset.left+"px",top:offset.top+"px"});if(!inst.inline){showAnim=$.datepicker._get(inst,"showAnim");duration=$.datepicker._get(inst,"duration");inst.dpDiv.css("z-index",datepicker_getZindex($(input))+1);$.datepicker._datepickerShowing=true;if($.effects&&$.effects.effect[showAnim]){inst.dpDiv.show(showAnim,$.datepicker._get(inst,"showOptions"),duration)}else{inst.dpDiv[showAnim||"show"](showAnim?duration:null)}if($.datepicker._shouldFocusInput(inst)){inst.input.focus()}$.datepicker._curInst=inst}},_updateDatepicker:function(inst){this.maxRows=4;datepicker_instActive=inst;inst.dpDiv.empty().append(this._generateHTML(inst));this._attachHandlers(inst);var origyearshtml,numMonths=this._getNumberOfMonths(inst),cols=numMonths[1],width=17,activeCell=inst.dpDiv.find("."+this._dayOverClass+" a");if(activeCell.length>0){datepicker_handleMouseover.apply(activeCell.get(0))}inst.dpDiv.removeClass("ui-datepicker-multi-2 ui-datepicker-multi-3 ui-datepicker-multi-4").width("");if(cols>1){inst.dpDiv.addClass("ui-datepicker-multi-"+cols).css("width",width*cols+"em")}inst.dpDiv[(numMonths[0]!==1||numMonths[1]!==1?"add":"remove")+"Class"]("ui-datepicker-multi");inst.dpDiv[(this._get(inst,"isRTL")?"add":"remove")+"Class"]("ui-datepicker-rtl");if(inst===$.datepicker._curInst&&$.datepicker._datepickerShowing&&$.datepicker._shouldFocusInput(inst)){inst.input.focus()}if(inst.yearshtml){origyearshtml=inst.yearshtml;setTimeout(function(){if(origyearshtml===inst.yearshtml&&inst.yearshtml){inst.dpDiv.find("select.ui-datepicker-year:first").replaceWith(inst.yearshtml)}origyearshtml=inst.yearshtml=null},0)}},_shouldFocusInput:function(inst){return inst.input&&inst.input.is(":visible")&&!inst.input.is(":disabled")&&!inst.input.is(":focus")},_checkOffset:function(inst,offset,isFixed){var dpWidth=inst.dpDiv.outerWidth(),dpHeight=inst.dpDiv.outerHeight(),inputWidth=inst.input?inst.input.outerWidth():0,inputHeight=inst.input?inst.input.outerHeight():0,viewWidth=document.documentElement.clientWidth+(isFixed?0:$(document).scrollLeft()),viewHeight=document.documentElement.clientHeight+(isFixed?0:$(document).scrollTop());offset.left-=this._get(inst,"isRTL")?dpWidth-inputWidth:0;offset.left-=isFixed&&offset.left===inst.input.offset().left?$(document).scrollLeft():0;offset.top-=isFixed&&offset.top===inst.input.offset().top+inputHeight?$(document).scrollTop():0;offset.left-=Math.min(offset.left,offset.left+dpWidth>viewWidth&&viewWidth>dpWidth?Math.abs(offset.left+dpWidth-viewWidth):0);offset.top-=Math.min(offset.top,offset.top+dpHeight>viewHeight&&viewHeight>dpHeight?Math.abs(dpHeight+inputHeight):0);return offset},_findPos:function(obj){var position,inst=this._getInst(obj),isRTL=this._get(inst,"isRTL");while(obj&&(obj.type==="hidden"||obj.nodeType!==1||$.expr.filters.hidden(obj))){obj=obj[isRTL?"previousSibling":"nextSibling"]}position=$(obj).offset();return[position.left,position.top]},_hideDatepicker:function(input){var showAnim,duration,postProcess,onClose,inst=this._curInst;if(!inst||input&&inst!==$.data(input,"datepicker")){return}if(this._datepickerShowing){showAnim=this._get(inst,"showAnim");duration=this._get(inst,"duration");postProcess=function(){$.datepicker._tidyDialog(inst)};if($.effects&&($.effects.effect[showAnim]||$.effects[showAnim])){inst.dpDiv.hide(showAnim,$.datepicker._get(inst,"showOptions"),duration,postProcess)}else{inst.dpDiv[showAnim==="slideDown"?"slideUp":showAnim==="fadeIn"?"fadeOut":"hide"](showAnim?duration:null,postProcess)}if(!showAnim){postProcess()}this._datepickerShowing=false;onClose=this._get(inst,"onClose");if(onClose){onClose.apply(inst.input?inst.input[0]:null,[inst.input?inst.input.val():"",inst])}this._lastInput=null;if(this._inDialog){this._dialogInput.css({position:"absolute",left:"0",top:"-100px"});if($.blockUI){$.unblockUI();$("body").append(this.dpDiv)}}this._inDialog=false}},_tidyDialog:function(inst){inst.dpDiv.removeClass(this._dialogClass).unbind(".ui-datepicker-calendar")},_checkExternalClick:function(event){if(!$.datepicker._curInst){return}var $target=$(event.target),inst=$.datepicker._getInst($target[0])
;if($target[0].id!==$.datepicker._mainDivId&&$target.parents("#"+$.datepicker._mainDivId).length===0&&!$target.hasClass($.datepicker.markerClassName)&&!$target.closest("."+$.datepicker._triggerClass).length&&$.datepicker._datepickerShowing&&!($.datepicker._inDialog&&$.blockUI)||$target.hasClass($.datepicker.markerClassName)&&$.datepicker._curInst!==inst){$.datepicker._hideDatepicker()}},_adjustDate:function(id,offset,period){var target=$(id),inst=this._getInst(target[0]);if(this._isDisabledDatepicker(target[0])){return}this._adjustInstDate(inst,offset+(period==="M"?this._get(inst,"showCurrentAtPos"):0),period);this._updateDatepicker(inst)},_gotoToday:function(id){var date,target=$(id),inst=this._getInst(target[0]);if(this._get(inst,"gotoCurrent")&&inst.currentDay){inst.selectedDay=inst.currentDay;inst.drawMonth=inst.selectedMonth=inst.currentMonth;inst.drawYear=inst.selectedYear=inst.currentYear}else{date=new Date;inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear()}this._notifyChange(inst);this._adjustDate(target)},_selectMonthYear:function(id,select,period){var target=$(id),inst=this._getInst(target[0]);inst["selected"+(period==="M"?"Month":"Year")]=inst["draw"+(period==="M"?"Month":"Year")]=parseInt(select.options[select.selectedIndex].value,10);this._notifyChange(inst);this._adjustDate(target)},_selectDay:function(id,month,year,td){var inst,target=$(id);if($(td).hasClass(this._unselectableClass)||this._isDisabledDatepicker(target[0])){return}inst=this._getInst(target[0]);inst.selectedDay=inst.currentDay=$("a",td).html();inst.selectedMonth=inst.currentMonth=month;inst.selectedYear=inst.currentYear=year;this._selectDate(id,this._formatDate(inst,inst.currentDay,inst.currentMonth,inst.currentYear))},_clearDate:function(id){var target=$(id);this._selectDate(target,"")},_selectDate:function(id,dateStr){var onSelect,target=$(id),inst=this._getInst(target[0]);dateStr=dateStr!=null?dateStr:this._formatDate(inst);if(inst.input){inst.input.val(dateStr)}this._updateAlternate(inst);onSelect=this._get(inst,"onSelect");if(onSelect){onSelect.apply(inst.input?inst.input[0]:null,[dateStr,inst])}else if(inst.input){inst.input.trigger("change")}if(inst.inline){this._updateDatepicker(inst)}else{this._hideDatepicker();this._lastInput=inst.input[0];if(typeof inst.input[0]!=="object"){inst.input.focus()}this._lastInput=null}},_updateAlternate:function(inst){var altFormat,date,dateStr,altField=this._get(inst,"altField");if(altField){altFormat=this._get(inst,"altFormat")||this._get(inst,"dateFormat");date=this._getDate(inst);dateStr=this.formatDate(altFormat,date,this._getFormatConfig(inst));$(altField).each(function(){$(this).val(dateStr)})}},noWeekends:function(date){var day=date.getDay();return[day>0&&day<6,""]},iso8601Week:function(date){var time,checkDate=new Date(date.getTime());checkDate.setDate(checkDate.getDate()+4-(checkDate.getDay()||7));time=checkDate.getTime();checkDate.setMonth(0);checkDate.setDate(1);return Math.floor(Math.round((time-checkDate)/864e5)/7)+1},parseDate:function(format,value,settings){if(format==null||value==null){throw"Invalid arguments"}value=typeof value==="object"?value.toString():value+"";if(value===""){return null}var iFormat,dim,extra,iValue=0,shortYearCutoffTemp=(settings?settings.shortYearCutoff:null)||this._defaults.shortYearCutoff,shortYearCutoff=typeof shortYearCutoffTemp!=="string"?shortYearCutoffTemp:(new Date).getFullYear()%100+parseInt(shortYearCutoffTemp,10),dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort,dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames,monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort,monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames,year=-1,month=-1,day=-1,doy=-1,literal=false,date,lookAhead=function(match){var matches=iFormat+1<format.length&&format.charAt(iFormat+1)===match;if(matches){iFormat++}return matches},getNumber=function(match){var isDoubled=lookAhead(match),size=match==="@"?14:match==="!"?20:match==="y"&&isDoubled?4:match==="o"?3:2,minSize=match==="y"?size:1,digits=new RegExp("^\\d{"+minSize+","+size+"}"),num=value.substring(iValue).match(digits);if(!num){throw"Missing number at position "+iValue}iValue+=num[0].length;return parseInt(num[0],10)},getName=function(match,shortNames,longNames){var index=-1,names=$.map(lookAhead(match)?longNames:shortNames,function(v,k){return[[k,v]]}).sort(function(a,b){return-(a[1].length-b[1].length)});$.each(names,function(i,pair){var name=pair[1];if(value.substr(iValue,name.length).toLowerCase()===name.toLowerCase()){index=pair[0];iValue+=name.length;return false}});if(index!==-1){return index+1}else{throw"Unknown name at position "+iValue}},checkLiteral=function(){if(value.charAt(iValue)!==format.charAt(iFormat)){throw"Unexpected literal at position "+iValue}iValue++};for(iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)==="'"&&!lookAhead("'")){literal=false}else{checkLiteral()}}else{switch(format.charAt(iFormat)){case"d":day=getNumber("d");break;case"D":getName("D",dayNamesShort,dayNames);break;case"o":doy=getNumber("o");break;case"m":month=getNumber("m");break;case"M":month=getName("M",monthNamesShort,monthNames);break;case"y":year=getNumber("y");break;case"@":date=new Date(getNumber("@"));year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"!":date=new Date((getNumber("!")-this._ticksTo1970)/1e4);year=date.getFullYear();month=date.getMonth()+1;day=date.getDate();break;case"'":if(lookAhead("'")){checkLiteral()}else{literal=true}break;default:checkLiteral()}}}if(iValue<value.length){extra=value.substr(iValue);if(!/^\s+/.test(extra)){throw"Extra/unparsed characters found in date: "+extra}}if(year===-1){year=(new Date).getFullYear()}else if(year<100){year+=(new Date).getFullYear()-(new Date).getFullYear()%100+(year<=shortYearCutoff?0:-100)}if(doy>-1){month=1;day=doy;do{dim=this._getDaysInMonth(year,month-1);if(day<=dim){break}month++;day-=dim}while(true)}date=this._daylightSavingAdjust(new Date(year,month-1,day));if(date.getFullYear()!==year||date.getMonth()+1!==month||date.getDate()!==day){throw"Invalid date"}return date},ATOM:"yy-mm-dd",COOKIE:"D, dd M yy",ISO_8601:"yy-mm-dd",RFC_822:"D, d M y",RFC_850:"DD, dd-M-y",RFC_1036:"D, d M y",RFC_1123:"D, d M yy",RFC_2822:"D, d M yy",RSS:"D, d M y",TICKS:"!",TIMESTAMP:"@",W3C:"yy-mm-dd",_ticksTo1970:((1970-1)*365+Math.floor(1970/4)-Math.floor(1970/100)+Math.floor(1970/400))*24*60*60*1e7,formatDate:function(format,date,settings){if(!date){return""}var iFormat,dayNamesShort=(settings?settings.dayNamesShort:null)||this._defaults.dayNamesShort,dayNames=(settings?settings.dayNames:null)||this._defaults.dayNames,monthNamesShort=(settings?settings.monthNamesShort:null)||this._defaults.monthNamesShort,monthNames=(settings?settings.monthNames:null)||this._defaults.monthNames,lookAhead=function(match){var matches=iFormat+1<format.length&&format.charAt(iFormat+1)===match;if(matches){iFormat++}return matches},formatNumber=function(match,value,len){var num=""+value;if(lookAhead(match)){while(num.length<len){num="0"+num}}return num},formatName=function(match,value,shortNames,longNames){return lookAhead(match)?longNames[value]:shortNames[value]},output="",literal=false;if(date){for(iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)==="'"&&!lookAhead("'")){literal=false}else{output+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":output+=formatNumber("d",date.getDate(),2);break;case"D":output+=formatName("D",date.getDay(),dayNamesShort,dayNames);break;case"o":output+=formatNumber("o",Math.round((new Date(date.getFullYear(),date.getMonth(),date.getDate()).getTime()-new Date(date.getFullYear(),0,0).getTime())/864e5),3);break;case"m":output+=formatNumber("m",date.getMonth()+1,2);break;case"M":output+=formatName("M",date.getMonth(),monthNamesShort,monthNames);break;case"y":output+=lookAhead("y")?date.getFullYear():(date.getYear()%100<10?"0":"")+date.getYear()%100;break;case"@":output+=date.getTime();break;case"!":output+=date.getTime()*1e4+this._ticksTo1970;break;case"'":if(lookAhead("'")){output+="'"}else{literal=true}break;default:output+=format.charAt(iFormat)}}}}return output},_possibleChars:function(format){var iFormat,chars="",literal=false,lookAhead=function(match){var matches=iFormat+1<format.length&&format.charAt(iFormat+1)===match;if(matches){iFormat++}return matches};for(iFormat=0;iFormat<format.length;iFormat++){if(literal){if(format.charAt(iFormat)==="'"&&!lookAhead("'")){literal=false}else{chars+=format.charAt(iFormat)}}else{switch(format.charAt(iFormat)){case"d":case"m":case"y":case"@":chars+="0123456789";break;case"D":case"M":return null;case"'":if(lookAhead("'")){chars+="'"}else{literal=true}break;default:chars+=format.charAt(iFormat)}}}return chars},_get:function(inst,name){return inst.settings[name]!==undefined?inst.settings[name]:this._defaults[name]},_setDateFromField:function(inst,noDefault){if(inst.input.val()===inst.lastVal){return}var dateFormat=this._get(inst,"dateFormat"),dates=inst.lastVal=inst.input?inst.input.val():null,defaultDate=this._getDefaultDate(inst),date=defaultDate,settings=this._getFormatConfig(inst);try{date=this.parseDate(dateFormat,dates,settings)||defaultDate}catch(event){dates=noDefault?"":dates}inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();inst.currentDay=dates?date.getDate():0;inst.currentMonth=dates?date.getMonth():0;inst.currentYear=dates?date.getFullYear():0;this._adjustInstDate(inst)},_getDefaultDate:function(inst){return this._restrictMinMax(inst,this._determineDate(inst,this._get(inst,"defaultDate"),new Date))},_determineDate:function(inst,date,defaultDate){var offsetNumeric=function(offset){var date=new Date;date.setDate(date.getDate()+offset);return date},offsetString=function(offset){try{return $.datepicker.parseDate($.datepicker._get(inst,"dateFormat"),offset,$.datepicker._getFormatConfig(inst))}catch(e){}var date=(offset.toLowerCase().match(/^c/)?$.datepicker._getDate(inst):null)||new Date,year=date.getFullYear(),month=date.getMonth(),day=date.getDate(),pattern=/([+\-]?[0-9]+)\s*(d|D|w|W|m|M|y|Y)?/g,matches=pattern.exec(offset);while(matches){switch(matches[2]||"d"){case"d":case"D":day+=parseInt(matches[1],10);break;case"w":case"W":day+=parseInt(matches[1],10)*7;break;case"m":case"M":month+=parseInt(matches[1],10);day=Math.min(day,$.datepicker._getDaysInMonth(year,month));break;case"y":case"Y":year+=parseInt(matches[1],10);day=Math.min(day,$.datepicker._getDaysInMonth(year,month));break}matches=pattern.exec(offset)}return new Date(year,month,day)},newDate=date==null||date===""?defaultDate:typeof date==="string"?offsetString(date):typeof date==="number"?isNaN(date)?defaultDate:offsetNumeric(date):new Date(date.getTime());newDate=newDate&&newDate.toString()==="Invalid Date"?defaultDate:newDate;if(newDate){newDate.setHours(0);newDate.setMinutes(0);newDate.setSeconds(0);newDate.setMilliseconds(0)}return this._daylightSavingAdjust(newDate)},_daylightSavingAdjust:function(date){if(!date){return null}date.setHours(date.getHours()>12?date.getHours()+2:0);return date},_setDate:function(inst,date,noChange){var clear=!date,origMonth=inst.selectedMonth,origYear=inst.selectedYear,newDate=this._restrictMinMax(inst,this._determineDate(inst,date,new Date));inst.selectedDay=inst.currentDay=newDate.getDate();inst.drawMonth=inst.selectedMonth=inst.currentMonth=newDate.getMonth();inst.drawYear=inst.selectedYear=inst.currentYear=newDate.getFullYear();if((origMonth!==inst.selectedMonth||origYear!==inst.selectedYear)&&!noChange){this._notifyChange(inst)}this._adjustInstDate(inst);if(inst.input){inst.input.val(clear?"":this._formatDate(inst))}},_getDate:function(inst){var startDate=!inst.currentYear||inst.input&&inst.input.val()===""?null:this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));return startDate},_attachHandlers:function(inst){var stepMonths=this._get(inst,"stepMonths"),id="#"+inst.id.replace(/\\\\/g,"\\");inst.dpDiv.find("[data-handler]").map(function(){var handler={prev:function(){$.datepicker._adjustDate(id,-stepMonths,"M")},next:function(){$.datepicker._adjustDate(id,+stepMonths,"M")},hide:function(){$.datepicker._hideDatepicker()},today:function(){$.datepicker._gotoToday(id)},selectDay:function(){$.datepicker._selectDay(id,+this.getAttribute("data-month"),+this.getAttribute("data-year"),this);return false},selectMonth:function(){$.datepicker._selectMonthYear(id,this,"M");return false},selectYear:function(){$.datepicker._selectMonthYear(id,this,"Y");return false}};$(this).bind(this.getAttribute("data-event"),handler[this.getAttribute("data-handler")])})},_generateHTML:function(inst){var maxDraw,prevText,prev,nextText,next,currentText,gotoDate,controls,buttonPanel,firstDay,showWeek,dayNames,dayNamesMin,monthNames,monthNamesShort,beforeShowDay,showOtherMonths,selectOtherMonths,defaultDate,html,dow,row,group,col,selectedDate,cornerClass,calender,thead,day,daysInMonth,leadDays,curRows,numRows,printDate,dRow,tbody,daySettings,otherMonth,unselectable,tempDate=new Date,today=this._daylightSavingAdjust(new Date(tempDate.getFullYear(),tempDate.getMonth(),tempDate.getDate())),isRTL=this._get(inst,"isRTL"),showButtonPanel=this._get(inst,"showButtonPanel"),hideIfNoPrevNext=this._get(inst,"hideIfNoPrevNext"),navigationAsDateFormat=this._get(inst,"navigationAsDateFormat"),numMonths=this._getNumberOfMonths(inst),showCurrentAtPos=this._get(inst,"showCurrentAtPos"),stepMonths=this._get(inst,"stepMonths"),isMultiMonth=numMonths[0]!==1||numMonths[1]!==1,currentDate=this._daylightSavingAdjust(!inst.currentDay?new Date(9999,9,9):new Date(inst.currentYear,inst.currentMonth,inst.currentDay)),minDate=this._getMinMaxDate(inst,"min"),maxDate=this._getMinMaxDate(inst,"max"),drawMonth=inst.drawMonth-showCurrentAtPos,drawYear=inst.drawYear;if(drawMonth<0){drawMonth+=12;drawYear--}if(maxDate){maxDraw=this._daylightSavingAdjust(new Date(maxDate.getFullYear(),maxDate.getMonth()-numMonths[0]*numMonths[1]+1,maxDate.getDate()));maxDraw=minDate&&maxDraw<minDate?minDate:maxDraw;while(this._daylightSavingAdjust(new Date(drawYear,drawMonth,1))>maxDraw){drawMonth--;if(drawMonth<0){drawMonth=11;drawYear--}}}inst.drawMonth=drawMonth;inst.drawYear=drawYear;prevText=this._get(inst,"prevText");prevText=!navigationAsDateFormat?prevText:this.formatDate(prevText,this._daylightSavingAdjust(new Date(drawYear,drawMonth-stepMonths,1)),this._getFormatConfig(inst));prev=this._canAdjustMonth(inst,-1,drawYear,drawMonth)?"<a class='ui-datepicker-prev ui-corner-all' data-handler='prev' data-event='click'"+" title='"+prevText+"'><span class='ui-icon ui-icon-circle-triangle-"+(isRTL?"e":"w")+"'>"+prevText+"</span></a>":hideIfNoPrevNext?"":"<a class='ui-datepicker-prev ui-corner-all ui-state-disabled' title='"+prevText+"'><span class='ui-icon ui-icon-circle-triangle-"+(isRTL?"e":"w")+"'>"+prevText+"</span></a>";nextText=this._get(inst,"nextText");nextText=!navigationAsDateFormat?nextText:this.formatDate(nextText,this._daylightSavingAdjust(new Date(drawYear,drawMonth+stepMonths,1)),this._getFormatConfig(inst));next=this._canAdjustMonth(inst,+1,drawYear,drawMonth)?"<a class='ui-datepicker-next ui-corner-all' data-handler='next' data-event='click'"+" title='"+nextText+"'><span class='ui-icon ui-icon-circle-triangle-"+(isRTL?"w":"e")+"'>"+nextText+"</span></a>":hideIfNoPrevNext?"":"<a class='ui-datepicker-next ui-corner-all ui-state-disabled' title='"+nextText+"'><span class='ui-icon ui-icon-circle-triangle-"+(isRTL?"w":"e")+"'>"+nextText+"</span></a>";currentText=this._get(inst,"currentText");gotoDate=this._get(inst,"gotoCurrent")&&inst.currentDay?currentDate:today;currentText=!navigationAsDateFormat?currentText:this.formatDate(currentText,gotoDate,this._getFormatConfig(inst));controls=!inst.inline?"<button type='button' class='ui-datepicker-close ui-state-default ui-priority-primary ui-corner-all' data-handler='hide' data-event='click'>"+this._get(inst,"closeText")+"</button>":"";buttonPanel=showButtonPanel?"<div class='ui-datepicker-buttonpane ui-widget-content'>"+(isRTL?controls:"")+(this._isInRange(inst,gotoDate)?"<button type='button' class='ui-datepicker-current ui-state-default ui-priority-secondary ui-corner-all' data-handler='today' data-event='click'"+">"+currentText+"</button>":"")+(isRTL?"":controls)+"</div>":"";firstDay=parseInt(this._get(inst,"firstDay"),10);firstDay=isNaN(firstDay)?0:firstDay;showWeek=this._get(inst,"showWeek");dayNames=this._get(inst,"dayNames");dayNamesMin=this._get(inst,"dayNamesMin");monthNames=this._get(inst,"monthNames");monthNamesShort=this._get(inst,"monthNamesShort");beforeShowDay=this._get(inst,"beforeShowDay");showOtherMonths=this._get(inst,"showOtherMonths");selectOtherMonths=this._get(inst,"selectOtherMonths");defaultDate=this._getDefaultDate(inst);html="";dow;for(row=0;row<numMonths[0];row++){group="";this.maxRows=4;for(col=0;col<numMonths[1];col++){selectedDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,inst.selectedDay));cornerClass=" ui-corner-all";calender="";if(isMultiMonth){calender+="<div class='ui-datepicker-group";if(numMonths[1]>1){switch(col){case 0:calender+=" ui-datepicker-group-first";cornerClass=" ui-corner-"+(isRTL?"right":"left");break;case numMonths[1]-1:calender+=" ui-datepicker-group-last";cornerClass=" ui-corner-"+(isRTL?"left":"right");break;default:calender+=" ui-datepicker-group-middle";cornerClass="";break}}calender+="'>"}calender+="<div class='ui-datepicker-header ui-widget-header ui-helper-clearfix"+cornerClass+"'>"+(/all|left/.test(cornerClass)&&row===0?isRTL?next:prev:"")+(/all|right/.test(cornerClass)&&row===0?isRTL?prev:next:"")+this._generateMonthYearHeader(inst,drawMonth,drawYear,minDate,maxDate,row>0||col>0,monthNames,monthNamesShort)+"</div><table class='ui-datepicker-calendar'><thead>"+"<tr>";thead=showWeek?"<th class='ui-datepicker-week-col'>"+this._get(inst,"weekHeader")+"</th>":"";for(dow=0;dow<7;dow++){day=(dow+firstDay)%7;thead+="<th scope='col'"+((dow+firstDay+6)%7>=5?" class='ui-datepicker-week-end'":"")+">"+"<span title='"+dayNames[day]+"'>"+dayNamesMin[day]+"</span></th>"}calender+=thead+"</tr></thead><tbody>";daysInMonth=this._getDaysInMonth(drawYear,drawMonth);if(drawYear===inst.selectedYear&&drawMonth===inst.selectedMonth){inst.selectedDay=Math.min(inst.selectedDay,daysInMonth)}leadDays=(this._getFirstDayOfMonth(drawYear,drawMonth)-firstDay+7)%7;curRows=Math.ceil((leadDays+daysInMonth)/7);numRows=isMultiMonth?this.maxRows>curRows?this.maxRows:curRows:curRows;this.maxRows=numRows;printDate=this._daylightSavingAdjust(new Date(drawYear,drawMonth,1-leadDays));for(dRow=0;dRow<numRows;dRow++){calender+="<tr>";tbody=!showWeek?"":"<td class='ui-datepicker-week-col'>"+this._get(inst,"calculateWeek")(printDate)+"</td>";for(dow=0;dow<7;dow++){daySettings=beforeShowDay?beforeShowDay.apply(inst.input?inst.input[0]:null,[printDate]):[true,""];otherMonth=printDate.getMonth()!==drawMonth;unselectable=otherMonth&&!selectOtherMonths||!daySettings[0]||minDate&&printDate<minDate||maxDate&&printDate>maxDate;tbody+="<td class='"+((dow+firstDay+6)%7>=5?" ui-datepicker-week-end":"")+(otherMonth?" ui-datepicker-other-month":"")+(printDate.getTime()===selectedDate.getTime()&&drawMonth===inst.selectedMonth&&inst._keyEvent||defaultDate.getTime()===printDate.getTime()&&defaultDate.getTime()===selectedDate.getTime()?" "+this._dayOverClass:"")+(unselectable?" "+this._unselectableClass+" ui-state-disabled":"")+(otherMonth&&!showOtherMonths?"":" "+daySettings[1]+(printDate.getTime()===currentDate.getTime()?" "+this._currentClass:"")+(printDate.getTime()===today.getTime()?" ui-datepicker-today":""))+"'"+((!otherMonth||showOtherMonths)&&daySettings[2]?" title='"+daySettings[2].replace(/'/g,"&#39;")+"'":"")+(unselectable?"":" data-handler='selectDay' data-event='click' data-month='"+printDate.getMonth()+"' data-year='"+printDate.getFullYear()+"'")+">"+(otherMonth&&!showOtherMonths?"&#xa0;":unselectable?"<span class='ui-state-default'>"+printDate.getDate()+"</span>":"<a class='ui-state-default"+(printDate.getTime()===today.getTime()?" ui-state-highlight":"")+(printDate.getTime()===currentDate.getTime()?" ui-state-active":"")+(otherMonth?" ui-priority-secondary":"")+"' href='#'>"+printDate.getDate()+"</a>")+"</td>";printDate.setDate(printDate.getDate()+1);printDate=this._daylightSavingAdjust(printDate)}calender+=tbody+"</tr>"}drawMonth++;if(drawMonth>11){drawMonth=0;drawYear++}calender+="</tbody></table>"+(isMultiMonth?"</div>"+(numMonths[0]>0&&col===numMonths[1]-1?"<div class='ui-datepicker-row-break'></div>":""):"");group+=calender}html+=group}html+=buttonPanel;inst._keyEvent=false;return html},_generateMonthYearHeader:function(inst,drawMonth,drawYear,minDate,maxDate,secondary,monthNames,monthNamesShort){var inMinYear,inMaxYear,month,years,thisYear,determineYear,year,endYear,changeMonth=this._get(inst,"changeMonth"),changeYear=this._get(inst,"changeYear"),showMonthAfterYear=this._get(inst,"showMonthAfterYear"),html="<div class='ui-datepicker-title'>",monthHtml="";if(secondary||!changeMonth){monthHtml+="<span class='ui-datepicker-month'>"+monthNames[drawMonth]+"</span>"}else{inMinYear=minDate&&minDate.getFullYear()===drawYear;inMaxYear=maxDate&&maxDate.getFullYear()===drawYear;monthHtml+="<select class='ui-datepicker-month' data-handler='selectMonth' data-event='change'>";for(month=0;month<12;month++){if((!inMinYear||month>=minDate.getMonth())&&(!inMaxYear||month<=maxDate.getMonth())){monthHtml+="<option value='"+month+"'"+(month===drawMonth?" selected='selected'":"")+">"+monthNamesShort[month]+"</option>"}}monthHtml+="</select>"}if(!showMonthAfterYear){html+=monthHtml+(secondary||!(changeMonth&&changeYear)?"&#xa0;":"")}if(!inst.yearshtml){inst.yearshtml="";if(secondary||!changeYear){html+="<span class='ui-datepicker-year'>"+drawYear+"</span>"}else{years=this._get(inst,"yearRange").split(":");thisYear=(new Date).getFullYear();determineYear=function(value){var year=value.match(/c[+\-].*/)?drawYear+parseInt(value.substring(1),10):value.match(/[+\-].*/)?thisYear+parseInt(value,10):parseInt(value,10);return isNaN(year)?thisYear:year};year=determineYear(years[0]);endYear=Math.max(year,determineYear(years[1]||""));year=minDate?Math.max(year,minDate.getFullYear()):year;endYear=maxDate?Math.min(endYear,maxDate.getFullYear()):endYear;inst.yearshtml+="<select class='ui-datepicker-year' data-handler='selectYear' data-event='change'>";for(;year<=endYear;year++){inst.yearshtml+="<option value='"+year+"'"+(year===drawYear?" selected='selected'":"")+">"+year+"</option>"}inst.yearshtml+="</select>";html+=inst.yearshtml;inst.yearshtml=null}}html+=this._get(inst,"yearSuffix");if(showMonthAfterYear){html+=(secondary||!(changeMonth&&changeYear)?"&#xa0;":"")+monthHtml}html+="</div>";return html},_adjustInstDate:function(inst,offset,period){var year=inst.drawYear+(period==="Y"?offset:0),month=inst.drawMonth+(period==="M"?offset:0),day=Math.min(inst.selectedDay,this._getDaysInMonth(year,month))+(period==="D"?offset:0),date=this._restrictMinMax(inst,this._daylightSavingAdjust(new Date(year,month,day)));inst.selectedDay=date.getDate();inst.drawMonth=inst.selectedMonth=date.getMonth();inst.drawYear=inst.selectedYear=date.getFullYear();if(period==="M"||period==="Y"){this._notifyChange(inst)}},_restrictMinMax:function(inst,date){var minDate=this._getMinMaxDate(inst,"min"),maxDate=this._getMinMaxDate(inst,"max"),newDate=minDate&&date<minDate?minDate:date;return maxDate&&newDate>maxDate?maxDate:newDate},_notifyChange:function(inst){var onChange=this._get(inst,"onChangeMonthYear");if(onChange){onChange.apply(inst.input?inst.input[0]:null,[inst.selectedYear,inst.selectedMonth+1,inst])}},_getNumberOfMonths:function(inst){var numMonths=this._get(inst,"numberOfMonths");return numMonths==null?[1,1]:typeof numMonths==="number"?[1,numMonths]:numMonths},_getMinMaxDate:function(inst,minMax){return this._determineDate(inst,this._get(inst,minMax+"Date"),null)},_getDaysInMonth:function(year,month){return 32-this._daylightSavingAdjust(new Date(year,month,32)).getDate()},_getFirstDayOfMonth:function(year,month){return new Date(year,month,1).getDay()},_canAdjustMonth:function(inst,offset,curYear,curMonth){var numMonths=this._getNumberOfMonths(inst),date=this._daylightSavingAdjust(new Date(curYear,curMonth+(offset<0?offset:numMonths[0]*numMonths[1]),1));if(offset<0){date.setDate(this._getDaysInMonth(date.getFullYear(),date.getMonth()))}return this._isInRange(inst,date)},_isInRange:function(inst,date){var yearSplit,currentYear,minDate=this._getMinMaxDate(inst,"min"),maxDate=this._getMinMaxDate(inst,"max"),minYear=null,maxYear=null,years=this._get(inst,"yearRange");if(years){yearSplit=years.split(":");currentYear=(new Date).getFullYear();minYear=parseInt(yearSplit[0],10);maxYear=parseInt(yearSplit[1],10);if(yearSplit[0].match(/[+\-].*/)){minYear+=currentYear}if(yearSplit[1].match(/[+\-].*/)){maxYear+=currentYear}}return(!minDate||date.getTime()>=minDate.getTime())&&(!maxDate||date.getTime()<=maxDate.getTime())&&(!minYear||date.getFullYear()>=minYear)&&(!maxYear||date.getFullYear()<=maxYear)},_getFormatConfig:function(inst){var shortYearCutoff=this._get(inst,"shortYearCutoff");shortYearCutoff=typeof shortYearCutoff!=="string"?shortYearCutoff:(new Date).getFullYear()%100+parseInt(shortYearCutoff,10);return{shortYearCutoff:shortYearCutoff,dayNamesShort:this._get(inst,"dayNamesShort"),dayNames:this._get(inst,"dayNames"),monthNamesShort:this._get(inst,"monthNamesShort"),monthNames:this._get(inst,"monthNames")}},_formatDate:function(inst,day,month,year){if(!day){inst.currentDay=inst.selectedDay;inst.currentMonth=inst.selectedMonth;inst.currentYear=inst.selectedYear}var date=day?typeof day==="object"?day:this._daylightSavingAdjust(new Date(year,month,day)):this._daylightSavingAdjust(new Date(inst.currentYear,inst.currentMonth,inst.currentDay));return this.formatDate(this._get(inst,"dateFormat"),date,this._getFormatConfig(inst))}});function datepicker_bindHover(dpDiv){var selector="button, .ui-datepicker-prev, .ui-datepicker-next, .ui-datepicker-calendar td a";return dpDiv.delegate(selector,"mouseout",function(){$(this).removeClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!==-1){$(this).removeClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!==-1){$(this).removeClass("ui-datepicker-next-hover")}}).delegate(selector,"mouseover",datepicker_handleMouseover)}function datepicker_handleMouseover(){if(!$.datepicker._isDisabledDatepicker(datepicker_instActive.inline?datepicker_instActive.dpDiv.parent()[0]:datepicker_instActive.input[0])){$(this).parents(".ui-datepicker-calendar").find("a").removeClass("ui-state-hover");$(this).addClass("ui-state-hover");if(this.className.indexOf("ui-datepicker-prev")!==-1){$(this).addClass("ui-datepicker-prev-hover")}if(this.className.indexOf("ui-datepicker-next")!==-1){$(this).addClass("ui-datepicker-next-hover")}}}function datepicker_extendRemove(target,props){$.extend(target,props);for(var name in props){if(props[name]==null){target[name]=props[name]}}return target}$.fn.datepicker=function(options){if(!this.length){return this}if(!$.datepicker.initialized){$(document).mousedown($.datepicker._checkExternalClick);$.datepicker.initialized=true}if($("#"+$.datepicker._mainDivId).length===0){$("body").append($.datepicker.dpDiv)}var otherArgs=Array.prototype.slice.call(arguments,1);if(typeof options==="string"&&(options==="isDisabled"||options==="getDate"||options==="widget")){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}if(options==="option"&&arguments.length===2&&typeof arguments[1]==="string"){return $.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this[0]].concat(otherArgs))}return this.each(function(){typeof options==="string"?$.datepicker["_"+options+"Datepicker"].apply($.datepicker,[this].concat(otherArgs)):$.datepicker._attachDatepicker(this,options)})};$.datepicker=new Datepicker;$.datepicker.initialized=false;$.datepicker.uuid=(new Date).getTime();$.datepicker.version="1.11.4";var datepicker=$.datepicker;var dialog=$.widget("ui.dialog",{version:"1.11.4",options:{appendTo:"body",autoOpen:true,buttons:[],closeOnEscape:true,closeText:"Close",dialogClass:"",draggable:true,hide:null,height:"auto",maxHeight:null,maxWidth:null,minHeight:150,minWidth:150,modal:false,position:{my:"center",at:"center",of:window,collision:"fit",using:function(pos){var topOffset=$(this).css(pos).offset().top;if(topOffset<0){$(this).css("top",pos.top-topOffset)}}},resizable:true,show:null,title:null,width:300,beforeClose:null,close:null,drag:null,dragStart:null,dragStop:null,focus:null,open:null,resize:null,resizeStart:null,resizeStop:null},sizeRelatedOptions:{buttons:true,height:true,maxHeight:true,maxWidth:true,minHeight:true,minWidth:true,width:true},resizableRelatedOptions:{maxHeight:true,maxWidth:true,minHeight:true,minWidth:true},_create:function(){this.originalCss={display:this.element[0].style.display,width:this.element[0].style.width,minHeight:this.element[0].style.minHeight,maxHeight:this.element[0].style.maxHeight,height:this.element[0].style.height};this.originalPosition={parent:this.element.parent(),index:this.element.parent().children().index(this.element)};this.originalTitle=this.element.attr("title");this.options.title=this.options.title||this.originalTitle;this._createWrapper();this.element.show().removeAttr("title").addClass("ui-dialog-content ui-widget-content").appendTo(this.uiDialog);this._createTitlebar();this._createButtonPane();if(this.options.draggable&&$.fn.draggable){this._makeDraggable()}if(this.options.resizable&&$.fn.resizable){this._makeResizable()}this._isOpen=false;this._trackFocus()},_init:function(){if(this.options.autoOpen){this.open()}},_appendTo:function(){var element=this.options.appendTo;if(element&&(element.jquery||element.nodeType)){return $(element)}return this.document.find(element||"body").eq(0)},_destroy:function(){var next,originalPosition=this.originalPosition;this._untrackInstance();this._destroyOverlay();this.element.removeUniqueId().removeClass("ui-dialog-content ui-widget-content").css(this.originalCss).detach();this.uiDialog.stop(true,true).remove();if(this.originalTitle){this.element.attr("title",this.originalTitle)}next=originalPosition.parent.children().eq(originalPosition.index);if(next.length&&next[0]!==this.element[0]){next.before(this.element)}else{originalPosition.parent.append(this.element)}},widget:function(){return this.uiDialog},disable:$.noop,enable:$.noop,close:function(event){var activeElement,that=this;if(!this._isOpen||this._trigger("beforeClose",event)===false){return}this._isOpen=false;this._focusedElement=null;this._destroyOverlay();this._untrackInstance();if(!this.opener.filter(":focusable").focus().length){try{activeElement=this.document[0].activeElement;if(activeElement&&activeElement.nodeName.toLowerCase()!=="body"){$(activeElement).blur()}}catch(error){}}this._hide(this.uiDialog,this.options.hide,function(){that._trigger("close",event)})},isOpen:function(){return this._isOpen},moveToTop:function(){this._moveToTop()},_moveToTop:function(event,silent){var moved=false,zIndices=this.uiDialog.siblings(".ui-front:visible").map(function(){return+$(this).css("z-index")}).get(),zIndexMax=Math.max.apply(null,zIndices);if(zIndexMax>=+this.uiDialog.css("z-index")){this.uiDialog.css("z-index",zIndexMax+1);moved=true}if(moved&&!silent){this._trigger("focus",event)}return moved},open:function(){var that=this;if(this._isOpen){if(this._moveToTop()){this._focusTabbable()}return}this._isOpen=true;this.opener=$(this.document[0].activeElement);this._size();this._position();this._createOverlay();this._moveToTop(null,true);if(this.overlay){
this.overlay.css("z-index",this.uiDialog.css("z-index")-1)}this._show(this.uiDialog,this.options.show,function(){that._focusTabbable();that._trigger("focus")});this._makeFocusTarget();this._trigger("open")},_focusTabbable:function(){var hasFocus=this._focusedElement;if(!hasFocus){hasFocus=this.element.find("[autofocus]")}if(!hasFocus.length){hasFocus=this.element.find(":tabbable")}if(!hasFocus.length){hasFocus=this.uiDialogButtonPane.find(":tabbable")}if(!hasFocus.length){hasFocus=this.uiDialogTitlebarClose.filter(":tabbable")}if(!hasFocus.length){hasFocus=this.uiDialog}hasFocus.eq(0).focus()},_keepFocus:function(event){function checkFocus(){var activeElement=this.document[0].activeElement,isActive=this.uiDialog[0]===activeElement||$.contains(this.uiDialog[0],activeElement);if(!isActive){this._focusTabbable()}}event.preventDefault();checkFocus.call(this);this._delay(checkFocus)},_createWrapper:function(){this.uiDialog=$("<div>").addClass("ui-dialog ui-widget ui-widget-content ui-corner-all ui-front "+this.options.dialogClass).hide().attr({tabIndex:-1,role:"dialog"}).appendTo(this._appendTo());this._on(this.uiDialog,{keydown:function(event){if(this.options.closeOnEscape&&!event.isDefaultPrevented()&&event.keyCode&&event.keyCode===$.ui.keyCode.ESCAPE){event.preventDefault();this.close(event);return}if(event.keyCode!==$.ui.keyCode.TAB||event.isDefaultPrevented()){return}var tabbables=this.uiDialog.find(":tabbable"),first=tabbables.filter(":first"),last=tabbables.filter(":last");if((event.target===last[0]||event.target===this.uiDialog[0])&&!event.shiftKey){this._delay(function(){first.focus()});event.preventDefault()}else if((event.target===first[0]||event.target===this.uiDialog[0])&&event.shiftKey){this._delay(function(){last.focus()});event.preventDefault()}},mousedown:function(event){if(this._moveToTop(event)){this._focusTabbable()}}});if(!this.element.find("[aria-describedby]").length){this.uiDialog.attr({"aria-describedby":this.element.uniqueId().attr("id")})}},_createTitlebar:function(){var uiDialogTitle;this.uiDialogTitlebar=$("<div>").addClass("ui-dialog-titlebar ui-widget-header ui-corner-all ui-helper-clearfix").prependTo(this.uiDialog);this._on(this.uiDialogTitlebar,{mousedown:function(event){if(!$(event.target).closest(".ui-dialog-titlebar-close")){this.uiDialog.focus()}}});this.uiDialogTitlebarClose=$("<button type='button'></button>").button({label:this.options.closeText,icons:{primary:"ui-icon-closethick"},text:false}).addClass("ui-dialog-titlebar-close").appendTo(this.uiDialogTitlebar);this._on(this.uiDialogTitlebarClose,{click:function(event){event.preventDefault();this.close(event)}});uiDialogTitle=$("<span>").uniqueId().addClass("ui-dialog-title").prependTo(this.uiDialogTitlebar);this._title(uiDialogTitle);this.uiDialog.attr({"aria-labelledby":uiDialogTitle.attr("id")})},_title:function(title){if(!this.options.title){title.html("&#160;")}title.text(this.options.title)},_createButtonPane:function(){this.uiDialogButtonPane=$("<div>").addClass("ui-dialog-buttonpane ui-widget-content ui-helper-clearfix");this.uiButtonSet=$("<div>").addClass("ui-dialog-buttonset").appendTo(this.uiDialogButtonPane);this._createButtons()},_createButtons:function(){var that=this,buttons=this.options.buttons;this.uiDialogButtonPane.remove();this.uiButtonSet.empty();if($.isEmptyObject(buttons)||$.isArray(buttons)&&!buttons.length){this.uiDialog.removeClass("ui-dialog-buttons");return}$.each(buttons,function(name,props){var click,buttonOptions;props=$.isFunction(props)?{click:props,text:name}:props;props=$.extend({type:"button"},props);click=props.click;props.click=function(){click.apply(that.element[0],arguments)};buttonOptions={icons:props.icons,text:props.showText};delete props.icons;delete props.showText;$("<button></button>",props).button(buttonOptions).appendTo(that.uiButtonSet)});this.uiDialog.addClass("ui-dialog-buttons");this.uiDialogButtonPane.appendTo(this.uiDialog)},_makeDraggable:function(){var that=this,options=this.options;function filteredUi(ui){return{position:ui.position,offset:ui.offset}}this.uiDialog.draggable({cancel:".ui-dialog-content, .ui-dialog-titlebar-close",handle:".ui-dialog-titlebar",containment:"document",start:function(event,ui){$(this).addClass("ui-dialog-dragging");that._blockFrames();that._trigger("dragStart",event,filteredUi(ui))},drag:function(event,ui){that._trigger("drag",event,filteredUi(ui))},stop:function(event,ui){var left=ui.offset.left-that.document.scrollLeft(),top=ui.offset.top-that.document.scrollTop();options.position={my:"left top",at:"left"+(left>=0?"+":"")+left+" "+"top"+(top>=0?"+":"")+top,of:that.window};$(this).removeClass("ui-dialog-dragging");that._unblockFrames();that._trigger("dragStop",event,filteredUi(ui))}})},_makeResizable:function(){var that=this,options=this.options,handles=options.resizable,position=this.uiDialog.css("position"),resizeHandles=typeof handles==="string"?handles:"n,e,s,w,se,sw,ne,nw";function filteredUi(ui){return{originalPosition:ui.originalPosition,originalSize:ui.originalSize,position:ui.position,size:ui.size}}this.uiDialog.resizable({cancel:".ui-dialog-content",containment:"document",alsoResize:this.element,maxWidth:options.maxWidth,maxHeight:options.maxHeight,minWidth:options.minWidth,minHeight:this._minHeight(),handles:resizeHandles,start:function(event,ui){$(this).addClass("ui-dialog-resizing");that._blockFrames();that._trigger("resizeStart",event,filteredUi(ui))},resize:function(event,ui){that._trigger("resize",event,filteredUi(ui))},stop:function(event,ui){var offset=that.uiDialog.offset(),left=offset.left-that.document.scrollLeft(),top=offset.top-that.document.scrollTop();options.height=that.uiDialog.height();options.width=that.uiDialog.width();options.position={my:"left top",at:"left"+(left>=0?"+":"")+left+" "+"top"+(top>=0?"+":"")+top,of:that.window};$(this).removeClass("ui-dialog-resizing");that._unblockFrames();that._trigger("resizeStop",event,filteredUi(ui))}}).css("position",position)},_trackFocus:function(){this._on(this.widget(),{focusin:function(event){this._makeFocusTarget();this._focusedElement=$(event.target)}})},_makeFocusTarget:function(){this._untrackInstance();this._trackingInstances().unshift(this)},_untrackInstance:function(){var instances=this._trackingInstances(),exists=$.inArray(this,instances);if(exists!==-1){instances.splice(exists,1)}},_trackingInstances:function(){var instances=this.document.data("ui-dialog-instances");if(!instances){instances=[];this.document.data("ui-dialog-instances",instances)}return instances},_minHeight:function(){var options=this.options;return options.height==="auto"?options.minHeight:Math.min(options.minHeight,options.height)},_position:function(){var isVisible=this.uiDialog.is(":visible");if(!isVisible){this.uiDialog.show()}this.uiDialog.position(this.options.position);if(!isVisible){this.uiDialog.hide()}},_setOptions:function(options){var that=this,resize=false,resizableOptions={};$.each(options,function(key,value){that._setOption(key,value);if(key in that.sizeRelatedOptions){resize=true}if(key in that.resizableRelatedOptions){resizableOptions[key]=value}});if(resize){this._size();this._position()}if(this.uiDialog.is(":data(ui-resizable)")){this.uiDialog.resizable("option",resizableOptions)}},_setOption:function(key,value){var isDraggable,isResizable,uiDialog=this.uiDialog;if(key==="dialogClass"){uiDialog.removeClass(this.options.dialogClass).addClass(value)}if(key==="disabled"){return}this._super(key,value);if(key==="appendTo"){this.uiDialog.appendTo(this._appendTo())}if(key==="buttons"){this._createButtons()}if(key==="closeText"){this.uiDialogTitlebarClose.button({label:""+value})}if(key==="draggable"){isDraggable=uiDialog.is(":data(ui-draggable)");if(isDraggable&&!value){uiDialog.draggable("destroy")}if(!isDraggable&&value){this._makeDraggable()}}if(key==="position"){this._position()}if(key==="resizable"){isResizable=uiDialog.is(":data(ui-resizable)");if(isResizable&&!value){uiDialog.resizable("destroy")}if(isResizable&&typeof value==="string"){uiDialog.resizable("option","handles",value)}if(!isResizable&&value!==false){this._makeResizable()}}if(key==="title"){this._title(this.uiDialogTitlebar.find(".ui-dialog-title"))}},_size:function(){var nonContentHeight,minContentHeight,maxContentHeight,options=this.options;this.element.show().css({width:"auto",minHeight:0,maxHeight:"none",height:0});if(options.minWidth>options.width){options.width=options.minWidth}nonContentHeight=this.uiDialog.css({height:"auto",width:options.width}).outerHeight();minContentHeight=Math.max(0,options.minHeight-nonContentHeight);maxContentHeight=typeof options.maxHeight==="number"?Math.max(0,options.maxHeight-nonContentHeight):"none";if(options.height==="auto"){this.element.css({minHeight:minContentHeight,maxHeight:maxContentHeight,height:"auto"})}else{this.element.height(Math.max(0,options.height-nonContentHeight))}if(this.uiDialog.is(":data(ui-resizable)")){this.uiDialog.resizable("option","minHeight",this._minHeight())}},_blockFrames:function(){this.iframeBlocks=this.document.find("iframe").map(function(){var iframe=$(this);return $("<div>").css({position:"absolute",width:iframe.outerWidth(),height:iframe.outerHeight()}).appendTo(iframe.parent()).offset(iframe.offset())[0]})},_unblockFrames:function(){if(this.iframeBlocks){this.iframeBlocks.remove();delete this.iframeBlocks}},_allowInteraction:function(event){if($(event.target).closest(".ui-dialog").length){return true}return!!$(event.target).closest(".ui-datepicker").length},_createOverlay:function(){if(!this.options.modal){return}var isOpening=true;this._delay(function(){isOpening=false});if(!this.document.data("ui-dialog-overlays")){this._on(this.document,{focusin:function(event){if(isOpening){return}if(!this._allowInteraction(event)){event.preventDefault();this._trackingInstances()[0]._focusTabbable()}}})}this.overlay=$("<div>").addClass("ui-widget-overlay ui-front").appendTo(this._appendTo());this._on(this.overlay,{mousedown:"_keepFocus"});this.document.data("ui-dialog-overlays",(this.document.data("ui-dialog-overlays")||0)+1)},_destroyOverlay:function(){if(!this.options.modal){return}if(this.overlay){var overlays=this.document.data("ui-dialog-overlays")-1;if(!overlays){this.document.unbind("focusin").removeData("ui-dialog-overlays")}else{this.document.data("ui-dialog-overlays",overlays)}this.overlay.remove();this.overlay=null}}});var progressbar=$.widget("ui.progressbar",{version:"1.11.4",options:{max:100,value:0,change:null,complete:null},min:0,_create:function(){this.oldValue=this.options.value=this._constrainedValue();this.element.addClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").attr({role:"progressbar","aria-valuemin":this.min});this.valueDiv=$("<div class='ui-progressbar-value ui-widget-header ui-corner-left'></div>").appendTo(this.element);this._refreshValue()},_destroy:function(){this.element.removeClass("ui-progressbar ui-widget ui-widget-content ui-corner-all").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");this.valueDiv.remove()},value:function(newValue){if(newValue===undefined){return this.options.value}this.options.value=this._constrainedValue(newValue);this._refreshValue()},_constrainedValue:function(newValue){if(newValue===undefined){newValue=this.options.value}this.indeterminate=newValue===false;if(typeof newValue!=="number"){newValue=0}return this.indeterminate?false:Math.min(this.options.max,Math.max(this.min,newValue))},_setOptions:function(options){var value=options.value;delete options.value;this._super(options);this.options.value=this._constrainedValue(value);this._refreshValue()},_setOption:function(key,value){if(key==="max"){value=Math.max(this.min,value)}if(key==="disabled"){this.element.toggleClass("ui-state-disabled",!!value).attr("aria-disabled",value)}this._super(key,value)},_percentage:function(){return this.indeterminate?100:100*(this.options.value-this.min)/(this.options.max-this.min)},_refreshValue:function(){var value=this.options.value,percentage=this._percentage();this.valueDiv.toggle(this.indeterminate||value>this.min).toggleClass("ui-corner-right",value===this.options.max).width(percentage.toFixed(0)+"%");this.element.toggleClass("ui-progressbar-indeterminate",this.indeterminate);if(this.indeterminate){this.element.removeAttr("aria-valuenow");if(!this.overlayDiv){this.overlayDiv=$("<div class='ui-progressbar-overlay'></div>").appendTo(this.valueDiv)}}else{this.element.attr({"aria-valuemax":this.options.max,"aria-valuenow":value});if(this.overlayDiv){this.overlayDiv.remove();this.overlayDiv=null}}if(this.oldValue!==value){this.oldValue=value;this._trigger("change")}if(value===this.options.max){this._trigger("complete")}}});var selectmenu=$.widget("ui.selectmenu",{version:"1.11.4",defaultElement:"<select>",options:{appendTo:null,disabled:null,icons:{button:"ui-icon-triangle-1-s"},position:{my:"left top",at:"left bottom",collision:"none"},width:null,change:null,close:null,focus:null,open:null,select:null},_create:function(){var selectmenuId=this.element.uniqueId().attr("id");this.ids={element:selectmenuId,button:selectmenuId+"-button",menu:selectmenuId+"-menu"};this._drawButton();this._drawMenu();if(this.options.disabled){this.disable()}},_drawButton:function(){var that=this;this.label=$("label[for='"+this.ids.element+"']").attr("for",this.ids.button);this._on(this.label,{click:function(event){this.button.focus();event.preventDefault()}});this.element.hide();this.button=$("<span>",{class:"ui-selectmenu-button ui-widget ui-state-default ui-corner-all",tabindex:this.options.disabled?-1:0,id:this.ids.button,role:"combobox","aria-expanded":"false","aria-autocomplete":"list","aria-owns":this.ids.menu,"aria-haspopup":"true"}).insertAfter(this.element);$("<span>",{class:"ui-icon "+this.options.icons.button}).prependTo(this.button);this.buttonText=$("<span>",{class:"ui-selectmenu-text"}).appendTo(this.button);this._setText(this.buttonText,this.element.find("option:selected").text());this._resizeButton();this._on(this.button,this._buttonEvents);this.button.one("focusin",function(){if(!that.menuItems){that._refreshMenu()}});this._hoverable(this.button);this._focusable(this.button)},_drawMenu:function(){var that=this;this.menu=$("<ul>",{"aria-hidden":"true","aria-labelledby":this.ids.button,id:this.ids.menu});this.menuWrap=$("<div>",{class:"ui-selectmenu-menu ui-front"}).append(this.menu).appendTo(this._appendTo());this.menuInstance=this.menu.menu({role:"listbox",select:function(event,ui){event.preventDefault();that._setSelection();that._select(ui.item.data("ui-selectmenu-item"),event)},focus:function(event,ui){var item=ui.item.data("ui-selectmenu-item");if(that.focusIndex!=null&&item.index!==that.focusIndex){that._trigger("focus",event,{item:item});if(!that.isOpen){that._select(item,event)}}that.focusIndex=item.index;that.button.attr("aria-activedescendant",that.menuItems.eq(item.index).attr("id"))}}).menu("instance");this.menu.addClass("ui-corner-bottom").removeClass("ui-corner-all");this.menuInstance._off(this.menu,"mouseleave");this.menuInstance._closeOnDocumentClick=function(){return false};this.menuInstance._isDivider=function(){return false}},refresh:function(){this._refreshMenu();this._setText(this.buttonText,this._getSelectedItem().text());if(!this.options.width){this._resizeButton()}},_refreshMenu:function(){this.menu.empty();var item,options=this.element.find("option");if(!options.length){return}this._parseOptions(options);this._renderMenu(this.menu,this.items);this.menuInstance.refresh();this.menuItems=this.menu.find("li").not(".ui-selectmenu-optgroup");item=this._getSelectedItem();this.menuInstance.focus(null,item);this._setAria(item.data("ui-selectmenu-item"));this._setOption("disabled",this.element.prop("disabled"))},open:function(event){if(this.options.disabled){return}if(!this.menuItems){this._refreshMenu()}else{this.menu.find(".ui-state-focus").removeClass("ui-state-focus");this.menuInstance.focus(null,this._getSelectedItem())}this.isOpen=true;this._toggleAttr();this._resizeMenu();this._position();this._on(this.document,this._documentClick);this._trigger("open",event)},_position:function(){this.menuWrap.position($.extend({of:this.button},this.options.position))},close:function(event){if(!this.isOpen){return}this.isOpen=false;this._toggleAttr();this.range=null;this._off(this.document);this._trigger("close",event)},widget:function(){return this.button},menuWidget:function(){return this.menu},_renderMenu:function(ul,items){var that=this,currentOptgroup="";$.each(items,function(index,item){if(item.optgroup!==currentOptgroup){$("<li>",{class:"ui-selectmenu-optgroup ui-menu-divider"+(item.element.parent("optgroup").prop("disabled")?" ui-state-disabled":""),text:item.optgroup}).appendTo(ul);currentOptgroup=item.optgroup}that._renderItemData(ul,item)})},_renderItemData:function(ul,item){return this._renderItem(ul,item).data("ui-selectmenu-item",item)},_renderItem:function(ul,item){var li=$("<li>");if(item.disabled){li.addClass("ui-state-disabled")}this._setText(li,item.label);return li.appendTo(ul)},_setText:function(element,value){if(value){element.text(value)}else{element.html("&#160;")}},_move:function(direction,event){var item,next,filter=".ui-menu-item";if(this.isOpen){item=this.menuItems.eq(this.focusIndex)}else{item=this.menuItems.eq(this.element[0].selectedIndex);filter+=":not(.ui-state-disabled)"}if(direction==="first"||direction==="last"){next=item[direction==="first"?"prevAll":"nextAll"](filter).eq(-1)}else{next=item[direction+"All"](filter).eq(0)}if(next.length){this.menuInstance.focus(event,next)}},_getSelectedItem:function(){return this.menuItems.eq(this.element[0].selectedIndex)},_toggle:function(event){this[this.isOpen?"close":"open"](event)},_setSelection:function(){var selection;if(!this.range){return}if(window.getSelection){selection=window.getSelection();selection.removeAllRanges();selection.addRange(this.range)}else{this.range.select()}this.button.focus()},_documentClick:{mousedown:function(event){if(!this.isOpen){return}if(!$(event.target).closest(".ui-selectmenu-menu, #"+this.ids.button).length){this.close(event)}}},_buttonEvents:{mousedown:function(){var selection;if(window.getSelection){selection=window.getSelection();if(selection.rangeCount){this.range=selection.getRangeAt(0)}}else{this.range=document.selection.createRange()}},click:function(event){this._setSelection();this._toggle(event)},keydown:function(event){var preventDefault=true;switch(event.keyCode){case $.ui.keyCode.TAB:case $.ui.keyCode.ESCAPE:this.close(event);preventDefault=false;break;case $.ui.keyCode.ENTER:if(this.isOpen){this._selectFocusedItem(event)}break;case $.ui.keyCode.UP:if(event.altKey){this._toggle(event)}else{this._move("prev",event)}break;case $.ui.keyCode.DOWN:if(event.altKey){this._toggle(event)}else{this._move("next",event)}break;case $.ui.keyCode.SPACE:if(this.isOpen){this._selectFocusedItem(event)}else{this._toggle(event)}break;case $.ui.keyCode.LEFT:this._move("prev",event);break;case $.ui.keyCode.RIGHT:this._move("next",event);break;case $.ui.keyCode.HOME:case $.ui.keyCode.PAGE_UP:this._move("first",event);break;case $.ui.keyCode.END:case $.ui.keyCode.PAGE_DOWN:this._move("last",event);break;default:this.menu.trigger(event);preventDefault=false}if(preventDefault){event.preventDefault()}}},_selectFocusedItem:function(event){var item=this.menuItems.eq(this.focusIndex);if(!item.hasClass("ui-state-disabled")){this._select(item.data("ui-selectmenu-item"),event)}},_select:function(item,event){var oldIndex=this.element[0].selectedIndex;this.element[0].selectedIndex=item.index;this._setText(this.buttonText,item.label);this._setAria(item);this._trigger("select",event,{item:item});if(item.index!==oldIndex){this._trigger("change",event,{item:item})}this.close(event)},_setAria:function(item){var id=this.menuItems.eq(item.index).attr("id");this.button.attr({"aria-labelledby":id,"aria-activedescendant":id});this.menu.attr("aria-activedescendant",id)},_setOption:function(key,value){if(key==="icons"){this.button.find("span.ui-icon").removeClass(this.options.icons.button).addClass(value.button)}this._super(key,value);if(key==="appendTo"){this.menuWrap.appendTo(this._appendTo())}if(key==="disabled"){this.menuInstance.option("disabled",value);this.button.toggleClass("ui-state-disabled",value).attr("aria-disabled",value);this.element.prop("disabled",value);if(value){this.button.attr("tabindex",-1);this.close()}else{this.button.attr("tabindex",0)}}if(key==="width"){this._resizeButton()}},_appendTo:function(){var element=this.options.appendTo;if(element){element=element.jquery||element.nodeType?$(element):this.document.find(element).eq(0)}if(!element||!element[0]){element=this.element.closest(".ui-front")}if(!element.length){element=this.document[0].body}return element},_toggleAttr:function(){this.button.toggleClass("ui-corner-top",this.isOpen).toggleClass("ui-corner-all",!this.isOpen).attr("aria-expanded",this.isOpen);this.menuWrap.toggleClass("ui-selectmenu-open",this.isOpen);this.menu.attr("aria-hidden",!this.isOpen)},_resizeButton:function(){var width=this.options.width;if(!width){width=this.element.show().outerWidth();this.element.hide()}this.button.outerWidth(width)},_resizeMenu:function(){this.menu.outerWidth(Math.max(this.button.outerWidth(),this.menu.width("").outerWidth()+1))},_getCreateOptions:function(){return{disabled:this.element.prop("disabled")}},_parseOptions:function(options){var data=[];options.each(function(index,item){var option=$(item),optgroup=option.parent("optgroup");data.push({element:option,index:index,value:option.val(),label:option.text(),optgroup:optgroup.attr("label")||"",disabled:optgroup.prop("disabled")||option.prop("disabled")})});this.items=data},_destroy:function(){this.menuWrap.remove();this.button.remove();this.element.show();this.element.removeUniqueId();this.label.attr("for",this.ids.element)}});var slider=$.widget("ui.slider",$.ui.mouse,{version:"1.11.4",widgetEventPrefix:"slide",options:{animate:false,distance:0,max:100,min:0,orientation:"horizontal",range:false,step:1,value:0,values:null,change:null,slide:null,start:null,stop:null},numPages:5,_create:function(){this._keySliding=false;this._mouseSliding=false;this._animateOff=true;this._handleIndex=null;this._detectOrientation();this._mouseInit();this._calculateNewMax();this.element.addClass("ui-slider"+" ui-slider-"+this.orientation+" ui-widget"+" ui-widget-content"+" ui-corner-all");this._refresh();this._setOption("disabled",this.options.disabled);this._animateOff=false},_refresh:function(){this._createRange();this._createHandles();this._setupEvents();this._refreshValue()},_createHandles:function(){var i,handleCount,options=this.options,existingHandles=this.element.find(".ui-slider-handle").addClass("ui-state-default ui-corner-all"),handle="<span class='ui-slider-handle ui-state-default ui-corner-all' tabindex='0'></span>",handles=[];handleCount=options.values&&options.values.length||1;if(existingHandles.length>handleCount){existingHandles.slice(handleCount).remove();existingHandles=existingHandles.slice(0,handleCount)}for(i=existingHandles.length;i<handleCount;i++){handles.push(handle)}this.handles=existingHandles.add($(handles.join("")).appendTo(this.element));this.handle=this.handles.eq(0);this.handles.each(function(i){$(this).data("ui-slider-handle-index",i)})},_createRange:function(){var options=this.options,classes="";if(options.range){if(options.range===true){if(!options.values){options.values=[this._valueMin(),this._valueMin()]}else if(options.values.length&&options.values.length!==2){options.values=[options.values[0],options.values[0]]}else if($.isArray(options.values)){options.values=options.values.slice(0)}}if(!this.range||!this.range.length){this.range=$("<div></div>").appendTo(this.element);classes="ui-slider-range"+" ui-widget-header ui-corner-all"}else{this.range.removeClass("ui-slider-range-min ui-slider-range-max").css({left:"",bottom:""})}this.range.addClass(classes+(options.range==="min"||options.range==="max"?" ui-slider-range-"+options.range:""))}else{if(this.range){this.range.remove()}this.range=null}},_setupEvents:function(){this._off(this.handles);this._on(this.handles,this._handleEvents);this._hoverable(this.handles);this._focusable(this.handles)},_destroy:function(){this.handles.remove();if(this.range){this.range.remove()}this.element.removeClass("ui-slider"+" ui-slider-horizontal"+" ui-slider-vertical"+" ui-widget"+" ui-widget-content"+" ui-corner-all");this._mouseDestroy()},_mouseCapture:function(event){var position,normValue,distance,closestHandle,index,allowed,offset,mouseOverHandle,that=this,o=this.options;if(o.disabled){return false}this.elementSize={width:this.element.outerWidth(),height:this.element.outerHeight()};this.elementOffset=this.element.offset();position={x:event.pageX,y:event.pageY};normValue=this._normValueFromMouse(position);distance=this._valueMax()-this._valueMin()+1;this.handles.each(function(i){var thisDistance=Math.abs(normValue-that.values(i));if(distance>thisDistance||distance===thisDistance&&(i===that._lastChangedValue||that.values(i)===o.min)){distance=thisDistance;closestHandle=$(this);index=i}});allowed=this._start(event,index);if(allowed===false){return false}this._mouseSliding=true;this._handleIndex=index;closestHandle.addClass("ui-state-active").focus();offset=closestHandle.offset();mouseOverHandle=!$(event.target).parents().addBack().is(".ui-slider-handle");this._clickOffset=mouseOverHandle?{left:0,top:0}:{left:event.pageX-offset.left-closestHandle.width()/2,top:event.pageY-offset.top-closestHandle.height()/2-(parseInt(closestHandle.css("borderTopWidth"),10)||0)-(parseInt(closestHandle.css("borderBottomWidth"),10)||0)+(parseInt(closestHandle.css("marginTop"),10)||0)};if(!this.handles.hasClass("ui-state-hover")){this._slide(event,index,normValue)}this._animateOff=true;return true},_mouseStart:function(){return true},_mouseDrag:function(event){var position={x:event.pageX,y:event.pageY},normValue=this._normValueFromMouse(position);this._slide(event,this._handleIndex,normValue);return false},_mouseStop:function(event){this.handles.removeClass("ui-state-active");this._mouseSliding=false;this._stop(event,this._handleIndex);this._change(event,this._handleIndex);this._handleIndex=null;this._clickOffset=null;this._animateOff=false;return false},_detectOrientation:function(){this.orientation=this.options.orientation==="vertical"?"vertical":"horizontal"},_normValueFromMouse:function(position){var pixelTotal,pixelMouse,percentMouse,valueTotal,valueMouse;if(this.orientation==="horizontal"){pixelTotal=this.elementSize.width;pixelMouse=position.x-this.elementOffset.left-(this._clickOffset?this._clickOffset.left:0)}else{pixelTotal=this.elementSize.height;pixelMouse=position.y-this.elementOffset.top-(this._clickOffset?this._clickOffset.top:0)}percentMouse=pixelMouse/pixelTotal;if(percentMouse>1){percentMouse=1}if(percentMouse<0){percentMouse=0}if(this.orientation==="vertical"){percentMouse=1-percentMouse}valueTotal=this._valueMax()-this._valueMin();valueMouse=this._valueMin()+percentMouse*valueTotal;return this._trimAlignValue(valueMouse)},_start:function(event,index){var uiHash={handle:this.handles[index],value:this.value()};if(this.options.values&&this.options.values.length){uiHash.value=this.values(index);uiHash.values=this.values()}return this._trigger("start",event,uiHash)},_slide:function(event,index,newVal){var otherVal,newValues,allowed;if(this.options.values&&this.options.values.length){otherVal=this.values(index?0:1);if(this.options.values.length===2&&this.options.range===true&&(index===0&&newVal>otherVal||index===1&&newVal<otherVal)){newVal=otherVal}if(newVal!==this.values(index)){newValues=this.values();newValues[index]=newVal;allowed=this._trigger("slide",event,{handle:this.handles[index],value:newVal,values:newValues});otherVal=this.values(index?0:1);if(allowed!==false){this.values(index,newVal)}}}else{if(newVal!==this.value()){allowed=this._trigger("slide",event,{handle:this.handles[index],value:newVal});if(allowed!==false){this.value(newVal)}}}},_stop:function(event,index){var uiHash={handle:this.handles[index],value:this.value()};if(this.options.values&&this.options.values.length){uiHash.value=this.values(index);uiHash.values=this.values()}this._trigger("stop",event,uiHash)},_change:function(event,index){if(!this._keySliding&&!this._mouseSliding){var uiHash={handle:this.handles[index],value:this.value()};if(this.options.values&&this.options.values.length){uiHash.value=this.values(index);uiHash.values=this.values()}this._lastChangedValue=index;this._trigger("change",event,uiHash)}},value:function(newValue){if(arguments.length){this.options.value=this._trimAlignValue(newValue);this._refreshValue();this._change(null,0);return}return this._value()},values:function(index,newValue){var vals,newValues,i;if(arguments.length>1){this.options.values[index]=this._trimAlignValue(newValue);this._refreshValue();this._change(null,index);return}if(arguments.length){if($.isArray(arguments[0])){vals=this.options.values;newValues=arguments[0];for(i=0;i<vals.length;i+=1){vals[i]=this._trimAlignValue(newValues[i]);this._change(null,i)}this._refreshValue()}else{if(this.options.values&&this.options.values.length){return this._values(index)}else{return this.value()}}}else{return this._values()}},_setOption:function(key,value){var i,valsLength=0;if(key==="range"&&this.options.range===true){if(value==="min"){this.options.value=this._values(0);this.options.values=null}else if(value==="max"){this.options.value=this._values(this.options.values.length-1);this.options.values=null}}if($.isArray(this.options.values)){valsLength=this.options.values.length}if(key==="disabled"){this.element.toggleClass("ui-state-disabled",!!value)}this._super(key,value);switch(key){case"orientation":this._detectOrientation();this.element.removeClass("ui-slider-horizontal ui-slider-vertical").addClass("ui-slider-"+this.orientation);this._refreshValue();this.handles.css(value==="horizontal"?"bottom":"left","");break;case"value":this._animateOff=true;this._refreshValue();this._change(null,0);this._animateOff=false;break;case"values":this._animateOff=true;this._refreshValue();for(i=0;i<valsLength;i+=1){this._change(null,i)}this._animateOff=false;break;case"step":case"min":case"max":this._animateOff=true;this._calculateNewMax();this._refreshValue();this._animateOff=false;break;case"range":this._animateOff=true;this._refresh();this._animateOff=false;break}},_value:function(){var val=this.options.value;val=this._trimAlignValue(val);return val},_values:function(index){var val,vals,i;if(arguments.length){val=this.options.values[index];val=this._trimAlignValue(val);return val}else if(this.options.values&&this.options.values.length){vals=this.options.values.slice();for(i=0;i<vals.length;i+=1){vals[i]=this._trimAlignValue(vals[i])}return vals}else{return[]}},_trimAlignValue:function(val){if(val<=this._valueMin()){return this._valueMin()}if(val>=this._valueMax()){return this._valueMax()}var step=this.options.step>0?this.options.step:1,valModStep=(val-this._valueMin())%step,alignValue=val-valModStep;if(Math.abs(valModStep)*2>=step){alignValue+=valModStep>0?step:-step}return parseFloat(alignValue.toFixed(5))},_calculateNewMax:function(){var max=this.options.max,min=this._valueMin(),step=this.options.step,aboveMin=Math.floor(+(max-min).toFixed(this._precision())/step)*step;max=aboveMin+min;this.max=parseFloat(max.toFixed(this._precision()))},_precision:function(){var precision=this._precisionOf(this.options.step);if(this.options.min!==null){precision=Math.max(precision,this._precisionOf(this.options.min))}return precision},_precisionOf:function(num){var str=num.toString(),decimal=str.indexOf(".");return decimal===-1?0:str.length-decimal-1},_valueMin:function(){return this.options.min},_valueMax:function(){return this.max},_refreshValue:function(){
var lastValPercent,valPercent,value,valueMin,valueMax,oRange=this.options.range,o=this.options,that=this,animate=!this._animateOff?o.animate:false,_set={};if(this.options.values&&this.options.values.length){this.handles.each(function(i){valPercent=(that.values(i)-that._valueMin())/(that._valueMax()-that._valueMin())*100;_set[that.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";$(this).stop(1,1)[animate?"animate":"css"](_set,o.animate);if(that.options.range===true){if(that.orientation==="horizontal"){if(i===0){that.range.stop(1,1)[animate?"animate":"css"]({left:valPercent+"%"},o.animate)}if(i===1){that.range[animate?"animate":"css"]({width:valPercent-lastValPercent+"%"},{queue:false,duration:o.animate})}}else{if(i===0){that.range.stop(1,1)[animate?"animate":"css"]({bottom:valPercent+"%"},o.animate)}if(i===1){that.range[animate?"animate":"css"]({height:valPercent-lastValPercent+"%"},{queue:false,duration:o.animate})}}}lastValPercent=valPercent})}else{value=this.value();valueMin=this._valueMin();valueMax=this._valueMax();valPercent=valueMax!==valueMin?(value-valueMin)/(valueMax-valueMin)*100:0;_set[this.orientation==="horizontal"?"left":"bottom"]=valPercent+"%";this.handle.stop(1,1)[animate?"animate":"css"](_set,o.animate);if(oRange==="min"&&this.orientation==="horizontal"){this.range.stop(1,1)[animate?"animate":"css"]({width:valPercent+"%"},o.animate)}if(oRange==="max"&&this.orientation==="horizontal"){this.range[animate?"animate":"css"]({width:100-valPercent+"%"},{queue:false,duration:o.animate})}if(oRange==="min"&&this.orientation==="vertical"){this.range.stop(1,1)[animate?"animate":"css"]({height:valPercent+"%"},o.animate)}if(oRange==="max"&&this.orientation==="vertical"){this.range[animate?"animate":"css"]({height:100-valPercent+"%"},{queue:false,duration:o.animate})}}},_handleEvents:{keydown:function(event){var allowed,curVal,newVal,step,index=$(event.target).data("ui-slider-handle-index");switch(event.keyCode){case $.ui.keyCode.HOME:case $.ui.keyCode.END:case $.ui.keyCode.PAGE_UP:case $.ui.keyCode.PAGE_DOWN:case $.ui.keyCode.UP:case $.ui.keyCode.RIGHT:case $.ui.keyCode.DOWN:case $.ui.keyCode.LEFT:event.preventDefault();if(!this._keySliding){this._keySliding=true;$(event.target).addClass("ui-state-active");allowed=this._start(event,index);if(allowed===false){return}}break}step=this.options.step;if(this.options.values&&this.options.values.length){curVal=newVal=this.values(index)}else{curVal=newVal=this.value()}switch(event.keyCode){case $.ui.keyCode.HOME:newVal=this._valueMin();break;case $.ui.keyCode.END:newVal=this._valueMax();break;case $.ui.keyCode.PAGE_UP:newVal=this._trimAlignValue(curVal+(this._valueMax()-this._valueMin())/this.numPages);break;case $.ui.keyCode.PAGE_DOWN:newVal=this._trimAlignValue(curVal-(this._valueMax()-this._valueMin())/this.numPages);break;case $.ui.keyCode.UP:case $.ui.keyCode.RIGHT:if(curVal===this._valueMax()){return}newVal=this._trimAlignValue(curVal+step);break;case $.ui.keyCode.DOWN:case $.ui.keyCode.LEFT:if(curVal===this._valueMin()){return}newVal=this._trimAlignValue(curVal-step);break}this._slide(event,index,newVal)},keyup:function(event){var index=$(event.target).data("ui-slider-handle-index");if(this._keySliding){this._keySliding=false;this._stop(event,index);this._change(event,index);$(event.target).removeClass("ui-state-active")}}}});function spinner_modifier(fn){return function(){var previous=this.element.val();fn.apply(this,arguments);this._refresh();if(previous!==this.element.val()){this._trigger("change")}}}var spinner=$.widget("ui.spinner",{version:"1.11.4",defaultElement:"<input>",widgetEventPrefix:"spin",options:{culture:null,icons:{down:"ui-icon-triangle-1-s",up:"ui-icon-triangle-1-n"},incremental:true,max:null,min:null,numberFormat:null,page:10,step:1,change:null,spin:null,start:null,stop:null},_create:function(){this._setOption("max",this.options.max);this._setOption("min",this.options.min);this._setOption("step",this.options.step);if(this.value()!==""){this._value(this.element.val(),true)}this._draw();this._on(this._events);this._refresh();this._on(this.window,{beforeunload:function(){this.element.removeAttr("autocomplete")}})},_getCreateOptions:function(){var options={},element=this.element;$.each(["min","max","step"],function(i,option){var value=element.attr(option);if(value!==undefined&&value.length){options[option]=value}});return options},_events:{keydown:function(event){if(this._start(event)&&this._keydown(event)){event.preventDefault()}},keyup:"_stop",focus:function(){this.previous=this.element.val()},blur:function(event){if(this.cancelBlur){delete this.cancelBlur;return}this._stop();this._refresh();if(this.previous!==this.element.val()){this._trigger("change",event)}},mousewheel:function(event,delta){if(!delta){return}if(!this.spinning&&!this._start(event)){return false}this._spin((delta>0?1:-1)*this.options.step,event);clearTimeout(this.mousewheelTimer);this.mousewheelTimer=this._delay(function(){if(this.spinning){this._stop(event)}},100);event.preventDefault()},"mousedown .ui-spinner-button":function(event){var previous;previous=this.element[0]===this.document[0].activeElement?this.previous:this.element.val();function checkFocus(){var isActive=this.element[0]===this.document[0].activeElement;if(!isActive){this.element.focus();this.previous=previous;this._delay(function(){this.previous=previous})}}event.preventDefault();checkFocus.call(this);this.cancelBlur=true;this._delay(function(){delete this.cancelBlur;checkFocus.call(this)});if(this._start(event)===false){return}this._repeat(null,$(event.currentTarget).hasClass("ui-spinner-up")?1:-1,event)},"mouseup .ui-spinner-button":"_stop","mouseenter .ui-spinner-button":function(event){if(!$(event.currentTarget).hasClass("ui-state-active")){return}if(this._start(event)===false){return false}this._repeat(null,$(event.currentTarget).hasClass("ui-spinner-up")?1:-1,event)},"mouseleave .ui-spinner-button":"_stop"},_draw:function(){var uiSpinner=this.uiSpinner=this.element.addClass("ui-spinner-input").attr("autocomplete","off").wrap(this._uiSpinnerHtml()).parent().append(this._buttonHtml());this.element.attr("role","spinbutton");this.buttons=uiSpinner.find(".ui-spinner-button").attr("tabIndex",-1).button().removeClass("ui-corner-all");if(this.buttons.height()>Math.ceil(uiSpinner.height()*.5)&&uiSpinner.height()>0){uiSpinner.height(uiSpinner.height())}if(this.options.disabled){this.disable()}},_keydown:function(event){var options=this.options,keyCode=$.ui.keyCode;switch(event.keyCode){case keyCode.UP:this._repeat(null,1,event);return true;case keyCode.DOWN:this._repeat(null,-1,event);return true;case keyCode.PAGE_UP:this._repeat(null,options.page,event);return true;case keyCode.PAGE_DOWN:this._repeat(null,-options.page,event);return true}return false},_uiSpinnerHtml:function(){return"<span class='ui-spinner ui-widget ui-widget-content ui-corner-all'></span>"},_buttonHtml:function(){return""+"<a class='ui-spinner-button ui-spinner-up ui-corner-tr'>"+"<span class='ui-icon "+this.options.icons.up+"'>&#9650;</span>"+"</a>"+"<a class='ui-spinner-button ui-spinner-down ui-corner-br'>"+"<span class='ui-icon "+this.options.icons.down+"'>&#9660;</span>"+"</a>"},_start:function(event){if(!this.spinning&&this._trigger("start",event)===false){return false}if(!this.counter){this.counter=1}this.spinning=true;return true},_repeat:function(i,steps,event){i=i||500;clearTimeout(this.timer);this.timer=this._delay(function(){this._repeat(40,steps,event)},i);this._spin(steps*this.options.step,event)},_spin:function(step,event){var value=this.value()||0;if(!this.counter){this.counter=1}value=this._adjustValue(value+step*this._increment(this.counter));if(!this.spinning||this._trigger("spin",event,{value:value})!==false){this._value(value);this.counter++}},_increment:function(i){var incremental=this.options.incremental;if(incremental){return $.isFunction(incremental)?incremental(i):Math.floor(i*i*i/5e4-i*i/500+17*i/200+1)}return 1},_precision:function(){var precision=this._precisionOf(this.options.step);if(this.options.min!==null){precision=Math.max(precision,this._precisionOf(this.options.min))}return precision},_precisionOf:function(num){var str=num.toString(),decimal=str.indexOf(".");return decimal===-1?0:str.length-decimal-1},_adjustValue:function(value){var base,aboveMin,options=this.options;base=options.min!==null?options.min:0;aboveMin=value-base;aboveMin=Math.round(aboveMin/options.step)*options.step;value=base+aboveMin;value=parseFloat(value.toFixed(this._precision()));if(options.max!==null&&value>options.max){return options.max}if(options.min!==null&&value<options.min){return options.min}return value},_stop:function(event){if(!this.spinning){return}clearTimeout(this.timer);clearTimeout(this.mousewheelTimer);this.counter=0;this.spinning=false;this._trigger("stop",event)},_setOption:function(key,value){if(key==="culture"||key==="numberFormat"){var prevValue=this._parse(this.element.val());this.options[key]=value;this.element.val(this._format(prevValue));return}if(key==="max"||key==="min"||key==="step"){if(typeof value==="string"){value=this._parse(value)}}if(key==="icons"){this.buttons.first().find(".ui-icon").removeClass(this.options.icons.up).addClass(value.up);this.buttons.last().find(".ui-icon").removeClass(this.options.icons.down).addClass(value.down)}this._super(key,value);if(key==="disabled"){this.widget().toggleClass("ui-state-disabled",!!value);this.element.prop("disabled",!!value);this.buttons.button(value?"disable":"enable")}},_setOptions:spinner_modifier(function(options){this._super(options)}),_parse:function(val){if(typeof val==="string"&&val!==""){val=window.Globalize&&this.options.numberFormat?Globalize.parseFloat(val,10,this.options.culture):+val}return val===""||isNaN(val)?null:val},_format:function(value){if(value===""){return""}return window.Globalize&&this.options.numberFormat?Globalize.format(value,this.options.numberFormat,this.options.culture):value},_refresh:function(){this.element.attr({"aria-valuemin":this.options.min,"aria-valuemax":this.options.max,"aria-valuenow":this._parse(this.element.val())})},isValid:function(){var value=this.value();if(value===null){return false}return value===this._adjustValue(value)},_value:function(value,allowAny){var parsed;if(value!==""){parsed=this._parse(value);if(parsed!==null){if(!allowAny){parsed=this._adjustValue(parsed)}value=this._format(parsed)}}this.element.val(value);this._refresh()},_destroy:function(){this.element.removeClass("ui-spinner-input").prop("disabled",false).removeAttr("autocomplete").removeAttr("role").removeAttr("aria-valuemin").removeAttr("aria-valuemax").removeAttr("aria-valuenow");this.uiSpinner.replaceWith(this.element)},stepUp:spinner_modifier(function(steps){this._stepUp(steps)}),_stepUp:function(steps){if(this._start()){this._spin((steps||1)*this.options.step);this._stop()}},stepDown:spinner_modifier(function(steps){this._stepDown(steps)}),_stepDown:function(steps){if(this._start()){this._spin((steps||1)*-this.options.step);this._stop()}},pageUp:spinner_modifier(function(pages){this._stepUp((pages||1)*this.options.page)}),pageDown:spinner_modifier(function(pages){this._stepDown((pages||1)*this.options.page)}),value:function(newVal){if(!arguments.length){return this._parse(this.element.val())}spinner_modifier(this._value).call(this,newVal)},widget:function(){return this.uiSpinner}});var tabs=$.widget("ui.tabs",{version:"1.11.4",delay:300,options:{active:null,collapsible:false,event:"click",heightStyle:"content",hide:null,show:null,activate:null,beforeActivate:null,beforeLoad:null,load:null},_isLocal:function(){var rhash=/#.*$/;return function(anchor){var anchorUrl,locationUrl;anchor=anchor.cloneNode(false);anchorUrl=anchor.href.replace(rhash,"");locationUrl=location.href.replace(rhash,"");try{anchorUrl=decodeURIComponent(anchorUrl)}catch(error){}try{locationUrl=decodeURIComponent(locationUrl)}catch(error){}return anchor.hash.length>1&&anchorUrl===locationUrl}}(),_create:function(){var that=this,options=this.options;this.running=false;this.element.addClass("ui-tabs ui-widget ui-widget-content ui-corner-all").toggleClass("ui-tabs-collapsible",options.collapsible);this._processTabs();options.active=this._initialActive();if($.isArray(options.disabled)){options.disabled=$.unique(options.disabled.concat($.map(this.tabs.filter(".ui-state-disabled"),function(li){return that.tabs.index(li)}))).sort()}if(this.options.active!==false&&this.anchors.length){this.active=this._findActive(options.active)}else{this.active=$()}this._refresh();if(this.active.length){this.load(options.active)}},_initialActive:function(){var active=this.options.active,collapsible=this.options.collapsible,locationHash=location.hash.substring(1);if(active===null){if(locationHash){this.tabs.each(function(i,tab){if($(tab).attr("aria-controls")===locationHash){active=i;return false}})}if(active===null){active=this.tabs.index(this.tabs.filter(".ui-tabs-active"))}if(active===null||active===-1){active=this.tabs.length?0:false}}if(active!==false){active=this.tabs.index(this.tabs.eq(active));if(active===-1){active=collapsible?false:0}}if(!collapsible&&active===false&&this.anchors.length){active=0}return active},_getCreateEventData:function(){return{tab:this.active,panel:!this.active.length?$():this._getPanelForTab(this.active)}},_tabKeydown:function(event){var focusedTab=$(this.document[0].activeElement).closest("li"),selectedIndex=this.tabs.index(focusedTab),goingForward=true;if(this._handlePageNav(event)){return}switch(event.keyCode){case $.ui.keyCode.RIGHT:case $.ui.keyCode.DOWN:selectedIndex++;break;case $.ui.keyCode.UP:case $.ui.keyCode.LEFT:goingForward=false;selectedIndex--;break;case $.ui.keyCode.END:selectedIndex=this.anchors.length-1;break;case $.ui.keyCode.HOME:selectedIndex=0;break;case $.ui.keyCode.SPACE:event.preventDefault();clearTimeout(this.activating);this._activate(selectedIndex);return;case $.ui.keyCode.ENTER:event.preventDefault();clearTimeout(this.activating);this._activate(selectedIndex===this.options.active?false:selectedIndex);return;default:return}event.preventDefault();clearTimeout(this.activating);selectedIndex=this._focusNextTab(selectedIndex,goingForward);if(!event.ctrlKey&&!event.metaKey){focusedTab.attr("aria-selected","false");this.tabs.eq(selectedIndex).attr("aria-selected","true");this.activating=this._delay(function(){this.option("active",selectedIndex)},this.delay)}},_panelKeydown:function(event){if(this._handlePageNav(event)){return}if(event.ctrlKey&&event.keyCode===$.ui.keyCode.UP){event.preventDefault();this.active.focus()}},_handlePageNav:function(event){if(event.altKey&&event.keyCode===$.ui.keyCode.PAGE_UP){this._activate(this._focusNextTab(this.options.active-1,false));return true}if(event.altKey&&event.keyCode===$.ui.keyCode.PAGE_DOWN){this._activate(this._focusNextTab(this.options.active+1,true));return true}},_findNextTab:function(index,goingForward){var lastTabIndex=this.tabs.length-1;function constrain(){if(index>lastTabIndex){index=0}if(index<0){index=lastTabIndex}return index}while($.inArray(constrain(),this.options.disabled)!==-1){index=goingForward?index+1:index-1}return index},_focusNextTab:function(index,goingForward){index=this._findNextTab(index,goingForward);this.tabs.eq(index).focus();return index},_setOption:function(key,value){if(key==="active"){this._activate(value);return}if(key==="disabled"){this._setupDisabled(value);return}this._super(key,value);if(key==="collapsible"){this.element.toggleClass("ui-tabs-collapsible",value);if(!value&&this.options.active===false){this._activate(0)}}if(key==="event"){this._setupEvents(value)}if(key==="heightStyle"){this._setupHeightStyle(value)}},_sanitizeSelector:function(hash){return hash?hash.replace(/[!"$%&'()*+,.\/:;<=>?@\[\]\^`{|}~]/g,"\\$&"):""},refresh:function(){var options=this.options,lis=this.tablist.children(":has(a[href])");options.disabled=$.map(lis.filter(".ui-state-disabled"),function(tab){return lis.index(tab)});this._processTabs();if(options.active===false||!this.anchors.length){options.active=false;this.active=$()}else if(this.active.length&&!$.contains(this.tablist[0],this.active[0])){if(this.tabs.length===options.disabled.length){options.active=false;this.active=$()}else{this._activate(this._findNextTab(Math.max(0,options.active-1),false))}}else{options.active=this.tabs.index(this.active)}this._refresh()},_refresh:function(){this._setupDisabled(this.options.disabled);this._setupEvents(this.options.event);this._setupHeightStyle(this.options.heightStyle);this.tabs.not(this.active).attr({"aria-selected":"false","aria-expanded":"false",tabIndex:-1});this.panels.not(this._getPanelForTab(this.active)).hide().attr({"aria-hidden":"true"});if(!this.active.length){this.tabs.eq(0).attr("tabIndex",0)}else{this.active.addClass("ui-tabs-active ui-state-active").attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0});this._getPanelForTab(this.active).show().attr({"aria-hidden":"false"})}},_processTabs:function(){var that=this,prevTabs=this.tabs,prevAnchors=this.anchors,prevPanels=this.panels;this.tablist=this._getList().addClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").attr("role","tablist").delegate("> li","mousedown"+this.eventNamespace,function(event){if($(this).is(".ui-state-disabled")){event.preventDefault()}}).delegate(".ui-tabs-anchor","focus"+this.eventNamespace,function(){if($(this).closest("li").is(".ui-state-disabled")){this.blur()}});this.tabs=this.tablist.find("> li:has(a[href])").addClass("ui-state-default ui-corner-top").attr({role:"tab",tabIndex:-1});this.anchors=this.tabs.map(function(){return $("a",this)[0]}).addClass("ui-tabs-anchor").attr({role:"presentation",tabIndex:-1});this.panels=$();this.anchors.each(function(i,anchor){var selector,panel,panelId,anchorId=$(anchor).uniqueId().attr("id"),tab=$(anchor).closest("li"),originalAriaControls=tab.attr("aria-controls");if(that._isLocal(anchor)){selector=anchor.hash;panelId=selector.substring(1);panel=that.element.find(that._sanitizeSelector(selector))}else{panelId=tab.attr("aria-controls")||$({}).uniqueId()[0].id;selector="#"+panelId;panel=that.element.find(selector);if(!panel.length){panel=that._createPanel(panelId);panel.insertAfter(that.panels[i-1]||that.tablist)}panel.attr("aria-live","polite")}if(panel.length){that.panels=that.panels.add(panel)}if(originalAriaControls){tab.data("ui-tabs-aria-controls",originalAriaControls)}tab.attr({"aria-controls":panelId,"aria-labelledby":anchorId});panel.attr("aria-labelledby",anchorId)});this.panels.addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").attr("role","tabpanel");if(prevTabs){this._off(prevTabs.not(this.tabs));this._off(prevAnchors.not(this.anchors));this._off(prevPanels.not(this.panels))}},_getList:function(){return this.tablist||this.element.find("ol,ul").eq(0)},_createPanel:function(id){return $("<div>").attr("id",id).addClass("ui-tabs-panel ui-widget-content ui-corner-bottom").data("ui-tabs-destroy",true)},_setupDisabled:function(disabled){if($.isArray(disabled)){if(!disabled.length){disabled=false}else if(disabled.length===this.anchors.length){disabled=true}}for(var i=0,li;li=this.tabs[i];i++){if(disabled===true||$.inArray(i,disabled)!==-1){$(li).addClass("ui-state-disabled").attr("aria-disabled","true")}else{$(li).removeClass("ui-state-disabled").removeAttr("aria-disabled")}}this.options.disabled=disabled},_setupEvents:function(event){var events={};if(event){$.each(event.split(" "),function(index,eventName){events[eventName]="_eventHandler"})}this._off(this.anchors.add(this.tabs).add(this.panels));this._on(true,this.anchors,{click:function(event){event.preventDefault()}});this._on(this.anchors,events);this._on(this.tabs,{keydown:"_tabKeydown"});this._on(this.panels,{keydown:"_panelKeydown"});this._focusable(this.tabs);this._hoverable(this.tabs)},_setupHeightStyle:function(heightStyle){var maxHeight,parent=this.element.parent();if(heightStyle==="fill"){maxHeight=parent.height();maxHeight-=this.element.outerHeight()-this.element.height();this.element.siblings(":visible").each(function(){var elem=$(this),position=elem.css("position");if(position==="absolute"||position==="fixed"){return}maxHeight-=elem.outerHeight(true)});this.element.children().not(this.panels).each(function(){maxHeight-=$(this).outerHeight(true)});this.panels.each(function(){$(this).height(Math.max(0,maxHeight-$(this).innerHeight()+$(this).height()))}).css("overflow","auto")}else if(heightStyle==="auto"){maxHeight=0;this.panels.each(function(){maxHeight=Math.max(maxHeight,$(this).height("").height())}).height(maxHeight)}},_eventHandler:function(event){var options=this.options,active=this.active,anchor=$(event.currentTarget),tab=anchor.closest("li"),clickedIsActive=tab[0]===active[0],collapsing=clickedIsActive&&options.collapsible,toShow=collapsing?$():this._getPanelForTab(tab),toHide=!active.length?$():this._getPanelForTab(active),eventData={oldTab:active,oldPanel:toHide,newTab:collapsing?$():tab,newPanel:toShow};event.preventDefault();if(tab.hasClass("ui-state-disabled")||tab.hasClass("ui-tabs-loading")||this.running||clickedIsActive&&!options.collapsible||this._trigger("beforeActivate",event,eventData)===false){return}options.active=collapsing?false:this.tabs.index(tab);this.active=clickedIsActive?$():tab;if(this.xhr){this.xhr.abort()}if(!toHide.length&&!toShow.length){$.error("jQuery UI Tabs: Mismatching fragment identifier.")}if(toShow.length){this.load(this.tabs.index(tab),event)}this._toggle(event,eventData)},_toggle:function(event,eventData){var that=this,toShow=eventData.newPanel,toHide=eventData.oldPanel;this.running=true;function complete(){that.running=false;that._trigger("activate",event,eventData)}function show(){eventData.newTab.closest("li").addClass("ui-tabs-active ui-state-active");if(toShow.length&&that.options.show){that._show(toShow,that.options.show,complete)}else{toShow.show();complete()}}if(toHide.length&&this.options.hide){this._hide(toHide,this.options.hide,function(){eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");show()})}else{eventData.oldTab.closest("li").removeClass("ui-tabs-active ui-state-active");toHide.hide();show()}toHide.attr("aria-hidden","true");eventData.oldTab.attr({"aria-selected":"false","aria-expanded":"false"});if(toShow.length&&toHide.length){eventData.oldTab.attr("tabIndex",-1)}else if(toShow.length){this.tabs.filter(function(){return $(this).attr("tabIndex")===0}).attr("tabIndex",-1)}toShow.attr("aria-hidden","false");eventData.newTab.attr({"aria-selected":"true","aria-expanded":"true",tabIndex:0})},_activate:function(index){var anchor,active=this._findActive(index);if(active[0]===this.active[0]){return}if(!active.length){active=this.active}anchor=active.find(".ui-tabs-anchor")[0];this._eventHandler({target:anchor,currentTarget:anchor,preventDefault:$.noop})},_findActive:function(index){return index===false?$():this.tabs.eq(index)},_getIndex:function(index){if(typeof index==="string"){index=this.anchors.index(this.anchors.filter("[href$='"+index+"']"))}return index},_destroy:function(){if(this.xhr){this.xhr.abort()}this.element.removeClass("ui-tabs ui-widget ui-widget-content ui-corner-all ui-tabs-collapsible");this.tablist.removeClass("ui-tabs-nav ui-helper-reset ui-helper-clearfix ui-widget-header ui-corner-all").removeAttr("role");this.anchors.removeClass("ui-tabs-anchor").removeAttr("role").removeAttr("tabIndex").removeUniqueId();this.tablist.unbind(this.eventNamespace);this.tabs.add(this.panels).each(function(){if($.data(this,"ui-tabs-destroy")){$(this).remove()}else{$(this).removeClass("ui-state-default ui-state-active ui-state-disabled "+"ui-corner-top ui-corner-bottom ui-widget-content ui-tabs-active ui-tabs-panel").removeAttr("tabIndex").removeAttr("aria-live").removeAttr("aria-busy").removeAttr("aria-selected").removeAttr("aria-labelledby").removeAttr("aria-hidden").removeAttr("aria-expanded").removeAttr("role")}});this.tabs.each(function(){var li=$(this),prev=li.data("ui-tabs-aria-controls");if(prev){li.attr("aria-controls",prev).removeData("ui-tabs-aria-controls")}else{li.removeAttr("aria-controls")}});this.panels.show();if(this.options.heightStyle!=="content"){this.panels.css("height","")}},enable:function(index){var disabled=this.options.disabled;if(disabled===false){return}if(index===undefined){disabled=false}else{index=this._getIndex(index);if($.isArray(disabled)){disabled=$.map(disabled,function(num){return num!==index?num:null})}else{disabled=$.map(this.tabs,function(li,num){return num!==index?num:null})}}this._setupDisabled(disabled)},disable:function(index){var disabled=this.options.disabled;if(disabled===true){return}if(index===undefined){disabled=true}else{index=this._getIndex(index);if($.inArray(index,disabled)!==-1){return}if($.isArray(disabled)){disabled=$.merge([index],disabled).sort()}else{disabled=[index]}}this._setupDisabled(disabled)},load:function(index,event){index=this._getIndex(index);var that=this,tab=this.tabs.eq(index),anchor=tab.find(".ui-tabs-anchor"),panel=this._getPanelForTab(tab),eventData={tab:tab,panel:panel},complete=function(jqXHR,status){if(status==="abort"){that.panels.stop(false,true)}tab.removeClass("ui-tabs-loading");panel.removeAttr("aria-busy");if(jqXHR===that.xhr){delete that.xhr}};if(this._isLocal(anchor[0])){return}this.xhr=$.ajax(this._ajaxSettings(anchor,event,eventData));if(this.xhr&&this.xhr.statusText!=="canceled"){tab.addClass("ui-tabs-loading");panel.attr("aria-busy","true");this.xhr.done(function(response,status,jqXHR){setTimeout(function(){panel.html(response);that._trigger("load",event,eventData);complete(jqXHR,status)},1)}).fail(function(jqXHR,status){setTimeout(function(){complete(jqXHR,status)},1)})}},_ajaxSettings:function(anchor,event,eventData){var that=this;return{url:anchor.attr("href"),beforeSend:function(jqXHR,settings){return that._trigger("beforeLoad",event,$.extend({jqXHR:jqXHR,ajaxSettings:settings},eventData))}}},_getPanelForTab:function(tab){var id=$(tab).attr("aria-controls");return this.element.find(this._sanitizeSelector("#"+id))}});var tooltip=$.widget("ui.tooltip",{version:"1.11.4",options:{content:function(){var title=$(this).attr("title")||"";return $("<a>").text(title).html()},hide:true,items:"[title]:not([disabled])",position:{my:"left top+15",at:"left bottom",collision:"flipfit flip"},show:true,tooltipClass:null,track:false,close:null,open:null},_addDescribedBy:function(elem,id){var describedby=(elem.attr("aria-describedby")||"").split(/\s+/);describedby.push(id);elem.data("ui-tooltip-id",id).attr("aria-describedby",$.trim(describedby.join(" ")))},_removeDescribedBy:function(elem){var id=elem.data("ui-tooltip-id"),describedby=(elem.attr("aria-describedby")||"").split(/\s+/),index=$.inArray(id,describedby);if(index!==-1){describedby.splice(index,1)}elem.removeData("ui-tooltip-id");describedby=$.trim(describedby.join(" "));if(describedby){elem.attr("aria-describedby",describedby)}else{elem.removeAttr("aria-describedby")}},_create:function(){this._on({mouseover:"open",focusin:"open"});this.tooltips={};this.parents={};if(this.options.disabled){this._disable()}this.liveRegion=$("<div>").attr({role:"log","aria-live":"assertive","aria-relevant":"additions"}).addClass("ui-helper-hidden-accessible").appendTo(this.document[0].body)},_setOption:function(key,value){var that=this;if(key==="disabled"){this[value?"_disable":"_enable"]();this.options[key]=value;return}this._super(key,value);if(key==="content"){$.each(this.tooltips,function(id,tooltipData){that._updateContent(tooltipData.element)})}},_disable:function(){var that=this;$.each(this.tooltips,function(id,tooltipData){var event=$.Event("blur");event.target=event.currentTarget=tooltipData.element[0];that.close(event,true)});this.element.find(this.options.items).addBack().each(function(){var element=$(this);if(element.is("[title]")){element.data("ui-tooltip-title",element.attr("title")).removeAttr("title")}})},_enable:function(){this.element.find(this.options.items).addBack().each(function(){var element=$(this);if(element.data("ui-tooltip-title")){element.attr("title",element.data("ui-tooltip-title"))}})},open:function(event){var that=this,target=$(event?event.target:this.element).closest(this.options.items);if(!target.length||target.data("ui-tooltip-id")){return}if(target.attr("title")){target.data("ui-tooltip-title",target.attr("title"))}target.data("ui-tooltip-open",true);if(event&&event.type==="mouseover"){target.parents().each(function(){var parent=$(this),blurEvent;if(parent.data("ui-tooltip-open")){blurEvent=$.Event("blur");blurEvent.target=blurEvent.currentTarget=this;that.close(blurEvent,true)}if(parent.attr("title")){parent.uniqueId();that.parents[this.id]={element:this,title:parent.attr("title")};parent.attr("title","")}})}this._registerCloseHandlers(event,target);this._updateContent(target,event)},_updateContent:function(target,event){var content,contentOption=this.options.content,that=this,eventType=event?event.type:null;if(typeof contentOption==="string"){return this._open(event,target,contentOption)}content=contentOption.call(target[0],function(response){that._delay(function(){if(!target.data("ui-tooltip-open")){return}if(event){event.type=eventType}this._open(event,target,response)})});if(content){this._open(event,target,content)}},_open:function(event,target,content){var tooltipData,tooltip,delayedShow,a11yContent,positionOption=$.extend({},this.options.position);if(!content){return}tooltipData=this._find(target);if(tooltipData){tooltipData.tooltip.find(".ui-tooltip-content").html(content);return}if(target.is("[title]")){if(event&&event.type==="mouseover"){target.attr("title","")}else{target.removeAttr("title")}}tooltipData=this._tooltip(target);tooltip=tooltipData.tooltip;this._addDescribedBy(target,tooltip.attr("id"));tooltip.find(".ui-tooltip-content").html(content);this.liveRegion.children().hide();if(content.clone){a11yContent=content.clone();a11yContent.removeAttr("id").find("[id]").removeAttr("id")}else{a11yContent=content}$("<div>").html(a11yContent).appendTo(this.liveRegion);function position(event){positionOption.of=event;if(tooltip.is(":hidden")){return}tooltip.position(positionOption)}if(this.options.track&&event&&/^mouse/.test(event.type)){this._on(this.document,{mousemove:position});position(event)}else{tooltip.position($.extend({of:target},this.options.position))}tooltip.hide();this._show(tooltip,this.options.show);if(this.options.show&&this.options.show.delay){delayedShow=this.delayedShow=setInterval(function(){if(tooltip.is(":visible")){position(positionOption.of);clearInterval(delayedShow)}},$.fx.interval)}this._trigger("open",event,{tooltip:tooltip})},_registerCloseHandlers:function(event,target){var events={keyup:function(event){if(event.keyCode===$.ui.keyCode.ESCAPE){var fakeEvent=$.Event(event);fakeEvent.currentTarget=target[0];this.close(fakeEvent,true)}}};if(target[0]!==this.element[0]){events.remove=function(){this._removeTooltip(this._find(target).tooltip)}}if(!event||event.type==="mouseover"){events.mouseleave="close"}if(!event||event.type==="focusin"){events.focusout="close"}this._on(true,target,events)},close:function(event){var tooltip,that=this,target=$(event?event.currentTarget:this.element),tooltipData=this._find(target);if(!tooltipData){target.removeData("ui-tooltip-open");return}tooltip=tooltipData.tooltip;if(tooltipData.closing){return}clearInterval(this.delayedShow);if(target.data("ui-tooltip-title")&&!target.attr("title")){target.attr("title",target.data("ui-tooltip-title"))}this._removeDescribedBy(target);tooltipData.hiding=true;tooltip.stop(true);this._hide(tooltip,this.options.hide,function(){that._removeTooltip($(this))});target.removeData("ui-tooltip-open");this._off(target,"mouseleave focusout keyup");if(target[0]!==this.element[0]){this._off(target,"remove")}this._off(this.document,"mousemove");if(event&&event.type==="mouseleave"){$.each(this.parents,function(id,parent){$(parent.element).attr("title",parent.title)
;delete that.parents[id]})}tooltipData.closing=true;this._trigger("close",event,{tooltip:tooltip});if(!tooltipData.hiding){tooltipData.closing=false}},_tooltip:function(element){var tooltip=$("<div>").attr("role","tooltip").addClass("ui-tooltip ui-widget ui-corner-all ui-widget-content "+(this.options.tooltipClass||"")),id=tooltip.uniqueId().attr("id");$("<div>").addClass("ui-tooltip-content").appendTo(tooltip);tooltip.appendTo(this.document[0].body);return this.tooltips[id]={element:element,tooltip:tooltip}},_find:function(target){var id=target.data("ui-tooltip-id");return id?this.tooltips[id]:null},_removeTooltip:function(tooltip){tooltip.remove();delete this.tooltips[tooltip.attr("id")]},_destroy:function(){var that=this;$.each(this.tooltips,function(id,tooltipData){var event=$.Event("blur"),element=tooltipData.element;event.target=event.currentTarget=element[0];that.close(event,true);$("#"+id).remove();if(element.data("ui-tooltip-title")){if(!element.attr("title")){element.attr("title",element.data("ui-tooltip-title"))}element.removeData("ui-tooltip-title")}});this.liveRegion.remove()}});var dataSpace="ui-effects-",jQuery=$;$.effects={effect:{}};(function(jQuery,undefined){var stepHooks="backgroundColor borderBottomColor borderLeftColor borderRightColor borderTopColor color columnRuleColor outlineColor textDecorationColor textEmphasisColor",rplusequals=/^([\-+])=\s*(\d+\.?\d*)/,stringParsers=[{re:/rgba?\(\s*(\d{1,3})\s*,\s*(\d{1,3})\s*,\s*(\d{1,3})\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(execResult){return[execResult[1],execResult[2],execResult[3],execResult[4]]}},{re:/rgba?\(\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,parse:function(execResult){return[execResult[1]*2.55,execResult[2]*2.55,execResult[3]*2.55,execResult[4]]}},{re:/#([a-f0-9]{2})([a-f0-9]{2})([a-f0-9]{2})/,parse:function(execResult){return[parseInt(execResult[1],16),parseInt(execResult[2],16),parseInt(execResult[3],16)]}},{re:/#([a-f0-9])([a-f0-9])([a-f0-9])/,parse:function(execResult){return[parseInt(execResult[1]+execResult[1],16),parseInt(execResult[2]+execResult[2],16),parseInt(execResult[3]+execResult[3],16)]}},{re:/hsla?\(\s*(\d+(?:\.\d+)?)\s*,\s*(\d+(?:\.\d+)?)\%\s*,\s*(\d+(?:\.\d+)?)\%\s*(?:,\s*(\d?(?:\.\d+)?)\s*)?\)/,space:"hsla",parse:function(execResult){return[execResult[1],execResult[2]/100,execResult[3]/100,execResult[4]]}}],color=jQuery.Color=function(color,green,blue,alpha){return new jQuery.Color.fn.parse(color,green,blue,alpha)},spaces={rgba:{props:{red:{idx:0,type:"byte"},green:{idx:1,type:"byte"},blue:{idx:2,type:"byte"}}},hsla:{props:{hue:{idx:0,type:"degrees"},saturation:{idx:1,type:"percent"},lightness:{idx:2,type:"percent"}}}},propTypes={byte:{floor:true,max:255},percent:{max:1},degrees:{mod:360,floor:true}},support=color.support={},supportElem=jQuery("<p>")[0],colors,each=jQuery.each;supportElem.style.cssText="background-color:rgba(1,1,1,.5)";support.rgba=supportElem.style.backgroundColor.indexOf("rgba")>-1;each(spaces,function(spaceName,space){space.cache="_"+spaceName;space.props.alpha={idx:3,type:"percent",def:1}});function clamp(value,prop,allowEmpty){var type=propTypes[prop.type]||{};if(value==null){return allowEmpty||!prop.def?null:prop.def}value=type.floor?~~value:parseFloat(value);if(isNaN(value)){return prop.def}if(type.mod){return(value+type.mod)%type.mod}return 0>value?0:type.max<value?type.max:value}function stringParse(string){var inst=color(),rgba=inst._rgba=[];string=string.toLowerCase();each(stringParsers,function(i,parser){var parsed,match=parser.re.exec(string),values=match&&parser.parse(match),spaceName=parser.space||"rgba";if(values){parsed=inst[spaceName](values);inst[spaces[spaceName].cache]=parsed[spaces[spaceName].cache];rgba=inst._rgba=parsed._rgba;return false}});if(rgba.length){if(rgba.join()==="0,0,0,0"){jQuery.extend(rgba,colors.transparent)}return inst}return colors[string]}color.fn=jQuery.extend(color.prototype,{parse:function(red,green,blue,alpha){if(red===undefined){this._rgba=[null,null,null,null];return this}if(red.jquery||red.nodeType){red=jQuery(red).css(green);green=undefined}var inst=this,type=jQuery.type(red),rgba=this._rgba=[];if(green!==undefined){red=[red,green,blue,alpha];type="array"}if(type==="string"){return this.parse(stringParse(red)||colors._default)}if(type==="array"){each(spaces.rgba.props,function(key,prop){rgba[prop.idx]=clamp(red[prop.idx],prop)});return this}if(type==="object"){if(red instanceof color){each(spaces,function(spaceName,space){if(red[space.cache]){inst[space.cache]=red[space.cache].slice()}})}else{each(spaces,function(spaceName,space){var cache=space.cache;each(space.props,function(key,prop){if(!inst[cache]&&space.to){if(key==="alpha"||red[key]==null){return}inst[cache]=space.to(inst._rgba)}inst[cache][prop.idx]=clamp(red[key],prop,true)});if(inst[cache]&&jQuery.inArray(null,inst[cache].slice(0,3))<0){inst[cache][3]=1;if(space.from){inst._rgba=space.from(inst[cache])}}})}return this}},is:function(compare){var is=color(compare),same=true,inst=this;each(spaces,function(_,space){var localCache,isCache=is[space.cache];if(isCache){localCache=inst[space.cache]||space.to&&space.to(inst._rgba)||[];each(space.props,function(_,prop){if(isCache[prop.idx]!=null){same=isCache[prop.idx]===localCache[prop.idx];return same}})}return same});return same},_space:function(){var used=[],inst=this;each(spaces,function(spaceName,space){if(inst[space.cache]){used.push(spaceName)}});return used.pop()},transition:function(other,distance){var end=color(other),spaceName=end._space(),space=spaces[spaceName],startColor=this.alpha()===0?color("transparent"):this,start=startColor[space.cache]||space.to(startColor._rgba),result=start.slice();end=end[space.cache];each(space.props,function(key,prop){var index=prop.idx,startValue=start[index],endValue=end[index],type=propTypes[prop.type]||{};if(endValue===null){return}if(startValue===null){result[index]=endValue}else{if(type.mod){if(endValue-startValue>type.mod/2){startValue+=type.mod}else if(startValue-endValue>type.mod/2){startValue-=type.mod}}result[index]=clamp((endValue-startValue)*distance+startValue,prop)}});return this[spaceName](result)},blend:function(opaque){if(this._rgba[3]===1){return this}var rgb=this._rgba.slice(),a=rgb.pop(),blend=color(opaque)._rgba;return color(jQuery.map(rgb,function(v,i){return(1-a)*blend[i]+a*v}))},toRgbaString:function(){var prefix="rgba(",rgba=jQuery.map(this._rgba,function(v,i){return v==null?i>2?1:0:v});if(rgba[3]===1){rgba.pop();prefix="rgb("}return prefix+rgba.join()+")"},toHslaString:function(){var prefix="hsla(",hsla=jQuery.map(this.hsla(),function(v,i){if(v==null){v=i>2?1:0}if(i&&i<3){v=Math.round(v*100)+"%"}return v});if(hsla[3]===1){hsla.pop();prefix="hsl("}return prefix+hsla.join()+")"},toHexString:function(includeAlpha){var rgba=this._rgba.slice(),alpha=rgba.pop();if(includeAlpha){rgba.push(~~(alpha*255))}return"#"+jQuery.map(rgba,function(v){v=(v||0).toString(16);return v.length===1?"0"+v:v}).join("")},toString:function(){return this._rgba[3]===0?"transparent":this.toRgbaString()}});color.fn.parse.prototype=color.fn;function hue2rgb(p,q,h){h=(h+1)%1;if(h*6<1){return p+(q-p)*h*6}if(h*2<1){return q}if(h*3<2){return p+(q-p)*(2/3-h)*6}return p}spaces.hsla.to=function(rgba){if(rgba[0]==null||rgba[1]==null||rgba[2]==null){return[null,null,null,rgba[3]]}var r=rgba[0]/255,g=rgba[1]/255,b=rgba[2]/255,a=rgba[3],max=Math.max(r,g,b),min=Math.min(r,g,b),diff=max-min,add=max+min,l=add*.5,h,s;if(min===max){h=0}else if(r===max){h=60*(g-b)/diff+360}else if(g===max){h=60*(b-r)/diff+120}else{h=60*(r-g)/diff+240}if(diff===0){s=0}else if(l<=.5){s=diff/add}else{s=diff/(2-add)}return[Math.round(h)%360,s,l,a==null?1:a]};spaces.hsla.from=function(hsla){if(hsla[0]==null||hsla[1]==null||hsla[2]==null){return[null,null,null,hsla[3]]}var h=hsla[0]/360,s=hsla[1],l=hsla[2],a=hsla[3],q=l<=.5?l*(1+s):l+s-l*s,p=2*l-q;return[Math.round(hue2rgb(p,q,h+1/3)*255),Math.round(hue2rgb(p,q,h)*255),Math.round(hue2rgb(p,q,h-1/3)*255),a]};each(spaces,function(spaceName,space){var props=space.props,cache=space.cache,to=space.to,from=space.from;color.fn[spaceName]=function(value){if(to&&!this[cache]){this[cache]=to(this._rgba)}if(value===undefined){return this[cache].slice()}var ret,type=jQuery.type(value),arr=type==="array"||type==="object"?value:arguments,local=this[cache].slice();each(props,function(key,prop){var val=arr[type==="object"?key:prop.idx];if(val==null){val=local[prop.idx]}local[prop.idx]=clamp(val,prop)});if(from){ret=color(from(local));ret[cache]=local;return ret}else{return color(local)}};each(props,function(key,prop){if(color.fn[key]){return}color.fn[key]=function(value){var vtype=jQuery.type(value),fn=key==="alpha"?this._hsla?"hsla":"rgba":spaceName,local=this[fn](),cur=local[prop.idx],match;if(vtype==="undefined"){return cur}if(vtype==="function"){value=value.call(this,cur);vtype=jQuery.type(value)}if(value==null&&prop.empty){return this}if(vtype==="string"){match=rplusequals.exec(value);if(match){value=cur+parseFloat(match[2])*(match[1]==="+"?1:-1)}}local[prop.idx]=value;return this[fn](local)}})});color.hook=function(hook){var hooks=hook.split(" ");each(hooks,function(i,hook){jQuery.cssHooks[hook]={set:function(elem,value){var parsed,curElem,backgroundColor="";if(value!=="transparent"&&(jQuery.type(value)!=="string"||(parsed=stringParse(value)))){value=color(parsed||value);if(!support.rgba&&value._rgba[3]!==1){curElem=hook==="backgroundColor"?elem.parentNode:elem;while((backgroundColor===""||backgroundColor==="transparent")&&curElem&&curElem.style){try{backgroundColor=jQuery.css(curElem,"backgroundColor");curElem=curElem.parentNode}catch(e){}}value=value.blend(backgroundColor&&backgroundColor!=="transparent"?backgroundColor:"_default")}value=value.toRgbaString()}try{elem.style[hook]=value}catch(e){}}};jQuery.fx.step[hook]=function(fx){if(!fx.colorInit){fx.start=color(fx.elem,hook);fx.end=color(fx.end);fx.colorInit=true}jQuery.cssHooks[hook].set(fx.elem,fx.start.transition(fx.end,fx.pos))}})};color.hook(stepHooks);jQuery.cssHooks.borderColor={expand:function(value){var expanded={};each(["Top","Right","Bottom","Left"],function(i,part){expanded["border"+part+"Color"]=value});return expanded}};colors=jQuery.Color.names={aqua:"#00ffff",black:"#000000",blue:"#0000ff",fuchsia:"#ff00ff",gray:"#808080",green:"#008000",lime:"#00ff00",maroon:"#800000",navy:"#000080",olive:"#808000",purple:"#800080",red:"#ff0000",silver:"#c0c0c0",teal:"#008080",white:"#ffffff",yellow:"#ffff00",transparent:[null,null,null,0],_default:"#ffffff"}})(jQuery);(function(){var classAnimationActions=["add","remove","toggle"],shorthandStyles={border:1,borderBottom:1,borderColor:1,borderLeft:1,borderRight:1,borderTop:1,borderWidth:1,margin:1,padding:1};$.each(["borderLeftStyle","borderRightStyle","borderBottomStyle","borderTopStyle"],function(_,prop){$.fx.step[prop]=function(fx){if(fx.end!=="none"&&!fx.setAttr||fx.pos===1&&!fx.setAttr){jQuery.style(fx.elem,prop,fx.end);fx.setAttr=true}}});function getElementStyles(elem){var key,len,style=elem.ownerDocument.defaultView?elem.ownerDocument.defaultView.getComputedStyle(elem,null):elem.currentStyle,styles={};if(style&&style.length&&style[0]&&style[style[0]]){len=style.length;while(len--){key=style[len];if(typeof style[key]==="string"){styles[$.camelCase(key)]=style[key]}}}else{for(key in style){if(typeof style[key]==="string"){styles[key]=style[key]}}}return styles}function styleDifference(oldStyle,newStyle){var diff={},name,value;for(name in newStyle){value=newStyle[name];if(oldStyle[name]!==value){if(!shorthandStyles[name]){if($.fx.step[name]||!isNaN(parseFloat(value))){diff[name]=value}}}}return diff}if(!$.fn.addBack){$.fn.addBack=function(selector){return this.add(selector==null?this.prevObject:this.prevObject.filter(selector))}}$.effects.animateClass=function(value,duration,easing,callback){var o=$.speed(duration,easing,callback);return this.queue(function(){var animated=$(this),baseClass=animated.attr("class")||"",applyClassChange,allAnimations=o.children?animated.find("*").addBack():animated;allAnimations=allAnimations.map(function(){var el=$(this);return{el:el,start:getElementStyles(this)}});applyClassChange=function(){$.each(classAnimationActions,function(i,action){if(value[action]){animated[action+"Class"](value[action])}})};applyClassChange();allAnimations=allAnimations.map(function(){this.end=getElementStyles(this.el[0]);this.diff=styleDifference(this.start,this.end);return this});animated.attr("class",baseClass);allAnimations=allAnimations.map(function(){var styleInfo=this,dfd=$.Deferred(),opts=$.extend({},o,{queue:false,complete:function(){dfd.resolve(styleInfo)}});this.el.animate(this.diff,opts);return dfd.promise()});$.when.apply($,allAnimations.get()).done(function(){applyClassChange();$.each(arguments,function(){var el=this.el;$.each(this.diff,function(key){el.css(key,"")})});o.complete.call(animated[0])})})};$.fn.extend({addClass:function(orig){return function(classNames,speed,easing,callback){return speed?$.effects.animateClass.call(this,{add:classNames},speed,easing,callback):orig.apply(this,arguments)}}($.fn.addClass),removeClass:function(orig){return function(classNames,speed,easing,callback){return arguments.length>1?$.effects.animateClass.call(this,{remove:classNames},speed,easing,callback):orig.apply(this,arguments)}}($.fn.removeClass),toggleClass:function(orig){return function(classNames,force,speed,easing,callback){if(typeof force==="boolean"||force===undefined){if(!speed){return orig.apply(this,arguments)}else{return $.effects.animateClass.call(this,force?{add:classNames}:{remove:classNames},speed,easing,callback)}}else{return $.effects.animateClass.call(this,{toggle:classNames},force,speed,easing)}}}($.fn.toggleClass),switchClass:function(remove,add,speed,easing,callback){return $.effects.animateClass.call(this,{add:add,remove:remove},speed,easing,callback)}})})();(function(){$.extend($.effects,{version:"1.11.4",save:function(element,set){for(var i=0;i<set.length;i++){if(set[i]!==null){element.data(dataSpace+set[i],element[0].style[set[i]])}}},restore:function(element,set){var val,i;for(i=0;i<set.length;i++){if(set[i]!==null){val=element.data(dataSpace+set[i]);if(val===undefined){val=""}element.css(set[i],val)}}},setMode:function(el,mode){if(mode==="toggle"){mode=el.is(":hidden")?"show":"hide"}return mode},getBaseline:function(origin,original){var y,x;switch(origin[0]){case"top":y=0;break;case"middle":y=.5;break;case"bottom":y=1;break;default:y=origin[0]/original.height}switch(origin[1]){case"left":x=0;break;case"center":x=.5;break;case"right":x=1;break;default:x=origin[1]/original.width}return{x:x,y:y}},createWrapper:function(element){if(element.parent().is(".ui-effects-wrapper")){return element.parent()}var props={width:element.outerWidth(true),height:element.outerHeight(true),float:element.css("float")},wrapper=$("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),size={width:element.width(),height:element.height()},active=document.activeElement;try{active.id}catch(e){active=document.body}element.wrap(wrapper);if(element[0]===active||$.contains(element[0],active)){$(active).focus()}wrapper=element.parent();if(element.css("position")==="static"){wrapper.css({position:"relative"});element.css({position:"relative"})}else{$.extend(props,{position:element.css("position"),zIndex:element.css("z-index")});$.each(["top","left","bottom","right"],function(i,pos){props[pos]=element.css(pos);if(isNaN(parseInt(props[pos],10))){props[pos]="auto"}});element.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}element.css(size);return wrapper.css(props).show()},removeWrapper:function(element){var active=document.activeElement;if(element.parent().is(".ui-effects-wrapper")){element.parent().replaceWith(element);if(element[0]===active||$.contains(element[0],active)){$(active).focus()}}return element},setTransition:function(element,list,factor,value){value=value||{};$.each(list,function(i,x){var unit=element.cssUnit(x);if(unit[0]>0){value[x]=unit[0]*factor+unit[1]}});return value}});function _normalizeArguments(effect,options,speed,callback){if($.isPlainObject(effect)){options=effect;effect=effect.effect}effect={effect:effect};if(options==null){options={}}if($.isFunction(options)){callback=options;speed=null;options={}}if(typeof options==="number"||$.fx.speeds[options]){callback=speed;speed=options;options={}}if($.isFunction(speed)){callback=speed;speed=null}if(options){$.extend(effect,options)}speed=speed||options.duration;effect.duration=$.fx.off?0:typeof speed==="number"?speed:speed in $.fx.speeds?$.fx.speeds[speed]:$.fx.speeds._default;effect.complete=callback||options.complete;return effect}function standardAnimationOption(option){if(!option||typeof option==="number"||$.fx.speeds[option]){return true}if(typeof option==="string"&&!$.effects.effect[option]){return true}if($.isFunction(option)){return true}if(typeof option==="object"&&!option.effect){return true}return false}$.fn.extend({effect:function(){var args=_normalizeArguments.apply(this,arguments),mode=args.mode,queue=args.queue,effectMethod=$.effects.effect[args.effect];if($.fx.off||!effectMethod){if(mode){return this[mode](args.duration,args.complete)}else{return this.each(function(){if(args.complete){args.complete.call(this)}})}}function run(next){var elem=$(this),complete=args.complete,mode=args.mode;function done(){if($.isFunction(complete)){complete.call(elem[0])}if($.isFunction(next)){next()}}if(elem.is(":hidden")?mode==="hide":mode==="show"){elem[mode]();done()}else{effectMethod.call(elem[0],args,done)}}return queue===false?this.each(run):this.queue(queue||"fx",run)},show:function(orig){return function(option){if(standardAnimationOption(option)){return orig.apply(this,arguments)}else{var args=_normalizeArguments.apply(this,arguments);args.mode="show";return this.effect.call(this,args)}}}($.fn.show),hide:function(orig){return function(option){if(standardAnimationOption(option)){return orig.apply(this,arguments)}else{var args=_normalizeArguments.apply(this,arguments);args.mode="hide";return this.effect.call(this,args)}}}($.fn.hide),toggle:function(orig){return function(option){if(standardAnimationOption(option)||typeof option==="boolean"){return orig.apply(this,arguments)}else{var args=_normalizeArguments.apply(this,arguments);args.mode="toggle";return this.effect.call(this,args)}}}($.fn.toggle),cssUnit:function(key){var style=this.css(key),val=[];$.each(["em","px","%","pt"],function(i,unit){if(style.indexOf(unit)>0){val=[parseFloat(style),unit]}});return val}})})();(function(){var baseEasings={};$.each(["Quad","Cubic","Quart","Quint","Expo"],function(i,name){baseEasings[name]=function(p){return Math.pow(p,i+2)}});$.extend(baseEasings,{Sine:function(p){return 1-Math.cos(p*Math.PI/2)},Circ:function(p){return 1-Math.sqrt(1-p*p)},Elastic:function(p){return p===0||p===1?p:-Math.pow(2,8*(p-1))*Math.sin(((p-1)*80-7.5)*Math.PI/15)},Back:function(p){return p*p*(3*p-2)},Bounce:function(p){var pow2,bounce=4;while(p<((pow2=Math.pow(2,--bounce))-1)/11){}return 1/Math.pow(4,3-bounce)-7.5625*Math.pow((pow2*3-2)/22-p,2)}});$.each(baseEasings,function(name,easeIn){$.easing["easeIn"+name]=easeIn;$.easing["easeOut"+name]=function(p){return 1-easeIn(1-p)};$.easing["easeInOut"+name]=function(p){return p<.5?easeIn(p*2)/2:1-easeIn(p*-2+2)/2}})})();var effect=$.effects;var effectBlind=$.effects.effect.blind=function(o,done){var el=$(this),rvertical=/up|down|vertical/,rpositivemotion=/up|left|vertical|horizontal/,props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),direction=o.direction||"up",vertical=rvertical.test(direction),ref=vertical?"height":"width",ref2=vertical?"top":"left",motion=rpositivemotion.test(direction),animation={},show=mode==="show",wrapper,distance,margin;if(el.parent().is(".ui-effects-wrapper")){$.effects.save(el.parent(),props)}else{$.effects.save(el,props)}el.show();wrapper=$.effects.createWrapper(el).css({overflow:"hidden"});distance=wrapper[ref]();margin=parseFloat(wrapper.css(ref2))||0;animation[ref]=show?distance:0;if(!motion){el.css(vertical?"bottom":"right",0).css(vertical?"top":"left","auto").css({position:"absolute"});animation[ref2]=show?margin:distance+margin}if(show){wrapper.css(ref,0);if(!motion){wrapper.css(ref2,margin+distance)}}wrapper.animate(animation,{duration:o.duration,easing:o.easing,queue:false,complete:function(){if(mode==="hide"){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})};var effectBounce=$.effects.effect.bounce=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"effect"),hide=mode==="hide",show=mode==="show",direction=o.direction||"up",distance=o.distance,times=o.times||5,anims=times*2+(show||hide?1:0),speed=o.duration/anims,easing=o.easing,ref=direction==="up"||direction==="down"?"top":"left",motion=direction==="up"||direction==="left",i,upAnim,downAnim,queue=el.queue(),queuelen=queue.length;if(show||hide){props.push("opacity")}$.effects.save(el,props);el.show();$.effects.createWrapper(el);if(!distance){distance=el[ref==="top"?"outerHeight":"outerWidth"]()/3}if(show){downAnim={opacity:1};downAnim[ref]=0;el.css("opacity",0).css(ref,motion?-distance*2:distance*2).animate(downAnim,speed,easing)}if(hide){distance=distance/Math.pow(2,times-1)}downAnim={};downAnim[ref]=0;for(i=0;i<times;i++){upAnim={};upAnim[ref]=(motion?"-=":"+=")+distance;el.animate(upAnim,speed,easing).animate(downAnim,speed,easing);distance=hide?distance*2:distance/2}if(hide){upAnim={opacity:0};upAnim[ref]=(motion?"-=":"+=")+distance;el.animate(upAnim,speed,easing)}el.queue(function(){if(hide){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()});if(queuelen>1){queue.splice.apply(queue,[1,0].concat(queue.splice(queuelen,anims+1)))}el.dequeue()};var effectClip=$.effects.effect.clip=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",direction=o.direction||"vertical",vert=direction==="vertical",size=vert?"height":"width",position=vert?"top":"left",animation={},wrapper,animate,distance;$.effects.save(el,props);el.show();wrapper=$.effects.createWrapper(el).css({overflow:"hidden"});animate=el[0].tagName==="IMG"?wrapper:el;distance=animate[size]();if(show){animate.css(size,0);animate.css(position,distance/2)}animation[size]=show?distance:0;animation[position]=show?0:distance/2;animate.animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(!show){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})};var effectDrop=$.effects.effect.drop=function(o,done){var el=$(this),props=["position","top","bottom","left","right","opacity","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",direction=o.direction||"left",ref=direction==="up"||direction==="down"?"top":"left",motion=direction==="up"||direction==="left"?"pos":"neg",animation={opacity:show?1:0},distance;$.effects.save(el,props);el.show();$.effects.createWrapper(el);distance=o.distance||el[ref==="top"?"outerHeight":"outerWidth"](true)/2;if(show){el.css("opacity",0).css(ref,motion==="pos"?-distance:distance)}animation[ref]=(show?motion==="pos"?"+=":"-=":motion==="pos"?"-=":"+=")+distance;el.animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(mode==="hide"){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})};var effectExplode=$.effects.effect.explode=function(o,done){var rows=o.pieces?Math.round(Math.sqrt(o.pieces)):3,cells=rows,el=$(this),mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",offset=el.show().css("visibility","hidden").offset(),width=Math.ceil(el.outerWidth()/cells),height=Math.ceil(el.outerHeight()/rows),pieces=[],i,j,left,top,mx,my;function childComplete(){pieces.push(this);if(pieces.length===rows*cells){animComplete()}}for(i=0;i<rows;i++){top=offset.top+i*height;my=i-(rows-1)/2;for(j=0;j<cells;j++){left=offset.left+j*width;mx=j-(cells-1)/2;el.clone().appendTo("body").wrap("<div></div>").css({position:"absolute",visibility:"visible",left:-j*width,top:-i*height}).parent().addClass("ui-effects-explode").css({position:"absolute",overflow:"hidden",width:width,height:height,left:left+(show?mx*width:0),top:top+(show?my*height:0),opacity:show?0:1}).animate({left:left+(show?0:mx*width),top:top+(show?0:my*height),opacity:show?1:0},o.duration||500,o.easing,childComplete)}}function animComplete(){el.css({visibility:"visible"});$(pieces).remove();if(!show){el.hide()}done()}};var effectFade=$.effects.effect.fade=function(o,done){var el=$(this),mode=$.effects.setMode(el,o.mode||"toggle");el.animate({opacity:mode},{queue:false,duration:o.duration,easing:o.easing,complete:done})};var effectFold=$.effects.effect.fold=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"hide"),show=mode==="show",hide=mode==="hide",size=o.size||15,percent=/([0-9]+)%/.exec(size),horizFirst=!!o.horizFirst,widthFirst=show!==horizFirst,ref=widthFirst?["width","height"]:["height","width"],duration=o.duration/2,wrapper,distance,animation1={},animation2={};$.effects.save(el,props);el.show();wrapper=$.effects.createWrapper(el).css({overflow:"hidden"});distance=widthFirst?[wrapper.width(),wrapper.height()]:[wrapper.height(),wrapper.width()];if(percent){size=parseInt(percent[1],10)/100*distance[hide?0:1]}if(show){wrapper.css(horizFirst?{height:0,width:size}:{height:size,width:0})}animation1[ref[0]]=show?distance[0]:size;animation2[ref[1]]=show?distance[1]:0;wrapper.animate(animation1,duration,o.easing).animate(animation2,duration,o.easing,function(){if(hide){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()})};var effectHighlight=$.effects.effect.highlight=function(o,done){var elem=$(this),props=["backgroundImage","backgroundColor","opacity"],mode=$.effects.setMode(elem,o.mode||"show"),animation={backgroundColor:elem.css("backgroundColor")};if(mode==="hide"){animation.opacity=0}$.effects.save(elem,props);elem.show().css({backgroundImage:"none",backgroundColor:o.color||"#ffff99"}).animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(mode==="hide"){elem.hide()}$.effects.restore(elem,props);done()}})};var effectSize=$.effects.effect.size=function(o,done){var original,baseline,factor,el=$(this),props0=["position","top","bottom","left","right","width","height","overflow","opacity"],props1=["position","top","bottom","left","right","overflow","opacity"],props2=["width","height","overflow"],cProps=["fontSize"],vProps=["borderTopWidth","borderBottomWidth","paddingTop","paddingBottom"],hProps=["borderLeftWidth","borderRightWidth","paddingLeft","paddingRight"],mode=$.effects.setMode(el,o.mode||"effect"),restore=o.restore||mode!=="effect",scale=o.scale||"both",origin=o.origin||["middle","center"],position=el.css("position"),props=restore?props0:props1,zero={height:0,width:0,outerHeight:0,outerWidth:0};if(mode==="show"){el.show()}original={height:el.height(),width:el.width(),outerHeight:el.outerHeight(),outerWidth:el.outerWidth()};if(o.mode==="toggle"&&mode==="show"){el.from=o.to||zero;el.to=o.from||original}else{el.from=o.from||(mode==="show"?zero:original);el.to=o.to||(mode==="hide"?zero:original)}factor={from:{y:el.from.height/original.height,x:el.from.width/original.width},to:{y:el.to.height/original.height,x:el.to.width/original.width}};if(scale==="box"||scale==="both"){if(factor.from.y!==factor.to.y){props=props.concat(vProps);el.from=$.effects.setTransition(el,vProps,factor.from.y,el.from);el.to=$.effects.setTransition(el,vProps,factor.to.y,el.to)}if(factor.from.x!==factor.to.x){props=props.concat(hProps);el.from=$.effects.setTransition(el,hProps,factor.from.x,el.from);el.to=$.effects.setTransition(el,hProps,factor.to.x,el.to)}}if(scale==="content"||scale==="both"){if(factor.from.y!==factor.to.y){props=props.concat(cProps).concat(props2);el.from=$.effects.setTransition(el,cProps,factor.from.y,el.from);el.to=$.effects.setTransition(el,cProps,factor.to.y,el.to)}}$.effects.save(el,props);el.show();$.effects.createWrapper(el);el.css("overflow","hidden").css(el.from);if(origin){baseline=$.effects.getBaseline(origin,original);el.from.top=(original.outerHeight-el.outerHeight())*baseline.y;el.from.left=(original.outerWidth-el.outerWidth())*baseline.x;el.to.top=(original.outerHeight-el.to.outerHeight)*baseline.y;el.to.left=(original.outerWidth-el.to.outerWidth)*baseline.x}el.css(el.from);if(scale==="content"||scale==="both"){vProps=vProps.concat(["marginTop","marginBottom"]).concat(cProps);hProps=hProps.concat(["marginLeft","marginRight"]);props2=props0.concat(vProps).concat(hProps);el.find("*[width]").each(function(){var child=$(this),c_original={height:child.height(),width:child.width(),outerHeight:child.outerHeight(),outerWidth:child.outerWidth()};if(restore){$.effects.save(child,props2)}child.from={height:c_original.height*factor.from.y,width:c_original.width*factor.from.x,outerHeight:c_original.outerHeight*factor.from.y,outerWidth:c_original.outerWidth*factor.from.x};child.to={height:c_original.height*factor.to.y,width:c_original.width*factor.to.x,outerHeight:c_original.height*factor.to.y,outerWidth:c_original.width*factor.to.x};if(factor.from.y!==factor.to.y){child.from=$.effects.setTransition(child,vProps,factor.from.y,child.from);child.to=$.effects.setTransition(child,vProps,factor.to.y,child.to)}if(factor.from.x!==factor.to.x){child.from=$.effects.setTransition(child,hProps,factor.from.x,child.from);child.to=$.effects.setTransition(child,hProps,factor.to.x,child.to)}child.css(child.from);child.animate(child.to,o.duration,o.easing,function(){if(restore){$.effects.restore(child,props2)}})})}el.animate(el.to,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(el.to.opacity===0){el.css("opacity",el.from.opacity)}if(mode==="hide"){el.hide()}$.effects.restore(el,props);if(!restore){if(position==="static"){el.css({position:"relative",top:el.to.top,left:el.to.left})}else{$.each(["top","left"],function(idx,pos){el.css(pos,function(_,str){var val=parseInt(str,10),toRef=idx?el.to.left:el.to.top;if(str==="auto"){return toRef+"px"}return val+toRef+"px"})})}}$.effects.removeWrapper(el);done()}})};var effectScale=$.effects.effect.scale=function(o,done){var el=$(this),options=$.extend(true,{},o),mode=$.effects.setMode(el,o.mode||"effect"),percent=parseInt(o.percent,10)||(parseInt(o.percent,10)===0?0:mode==="hide"?0:100),direction=o.direction||"both",origin=o.origin,original={height:el.height(),width:el.width(),outerHeight:el.outerHeight(),outerWidth:el.outerWidth()},factor={y:direction!=="horizontal"?percent/100:1,x:direction!=="vertical"?percent/100:1};options.effect="size";options.queue=false;options.complete=done;if(mode!=="effect"){options.origin=origin||["middle","center"];options.restore=true}options.from=o.from||(mode==="show"?{height:0,width:0,outerHeight:0,outerWidth:0}:original);options.to={height:original.height*factor.y,width:original.width*factor.x,outerHeight:original.outerHeight*factor.y,outerWidth:original.outerWidth*factor.x};if(options.fade){if(mode==="show"){options.from.opacity=0;options.to.opacity=1}if(mode==="hide"){options.from.opacity=1;options.to.opacity=0}}el.effect(options)};var effectPuff=$.effects.effect.puff=function(o,done){var elem=$(this),mode=$.effects.setMode(elem,o.mode||"hide"),hide=mode==="hide",percent=parseInt(o.percent,10)||150,factor=percent/100,original={height:elem.height(),width:elem.width(),outerHeight:elem.outerHeight(),outerWidth:elem.outerWidth()};$.extend(o,{effect:"scale",queue:false,fade:true,mode:mode,complete:done,percent:hide?percent:100,from:hide?original:{height:original.height*factor,
width:original.width*factor,outerHeight:original.outerHeight*factor,outerWidth:original.outerWidth*factor}});elem.effect(o)};var effectPulsate=$.effects.effect.pulsate=function(o,done){var elem=$(this),mode=$.effects.setMode(elem,o.mode||"show"),show=mode==="show",hide=mode==="hide",showhide=show||mode==="hide",anims=(o.times||5)*2+(showhide?1:0),duration=o.duration/anims,animateTo=0,queue=elem.queue(),queuelen=queue.length,i;if(show||!elem.is(":visible")){elem.css("opacity",0).show();animateTo=1}for(i=1;i<anims;i++){elem.animate({opacity:animateTo},duration,o.easing);animateTo=1-animateTo}elem.animate({opacity:animateTo},duration,o.easing);elem.queue(function(){if(hide){elem.hide()}done()});if(queuelen>1){queue.splice.apply(queue,[1,0].concat(queue.splice(queuelen,anims+1)))}elem.dequeue()};var effectShake=$.effects.effect.shake=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.effects.setMode(el,o.mode||"effect"),direction=o.direction||"left",distance=o.distance||20,times=o.times||3,anims=times*2+1,speed=Math.round(o.duration/anims),ref=direction==="up"||direction==="down"?"top":"left",positiveMotion=direction==="up"||direction==="left",animation={},animation1={},animation2={},i,queue=el.queue(),queuelen=queue.length;$.effects.save(el,props);el.show();$.effects.createWrapper(el);animation[ref]=(positiveMotion?"-=":"+=")+distance;animation1[ref]=(positiveMotion?"+=":"-=")+distance*2;animation2[ref]=(positiveMotion?"-=":"+=")+distance*2;el.animate(animation,speed,o.easing);for(i=1;i<times;i++){el.animate(animation1,speed,o.easing).animate(animation2,speed,o.easing)}el.animate(animation1,speed,o.easing).animate(animation,speed/2,o.easing).queue(function(){if(mode==="hide"){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()});if(queuelen>1){queue.splice.apply(queue,[1,0].concat(queue.splice(queuelen,anims+1)))}el.dequeue()};var effectSlide=$.effects.effect.slide=function(o,done){var el=$(this),props=["position","top","bottom","left","right","width","height"],mode=$.effects.setMode(el,o.mode||"show"),show=mode==="show",direction=o.direction||"left",ref=direction==="up"||direction==="down"?"top":"left",positiveMotion=direction==="up"||direction==="left",distance,animation={};$.effects.save(el,props);el.show();distance=o.distance||el[ref==="top"?"outerHeight":"outerWidth"](true);$.effects.createWrapper(el).css({overflow:"hidden"});if(show){el.css(ref,positiveMotion?isNaN(distance)?"-"+distance:-distance:distance)}animation[ref]=(show?positiveMotion?"+=":"-=":positiveMotion?"-=":"+=")+distance;el.animate(animation,{queue:false,duration:o.duration,easing:o.easing,complete:function(){if(mode==="hide"){el.hide()}$.effects.restore(el,props);$.effects.removeWrapper(el);done()}})};var effectTransfer=$.effects.effect.transfer=function(o,done){var elem=$(this),target=$(o.to),targetFixed=target.css("position")==="fixed",body=$("body"),fixTop=targetFixed?body.scrollTop():0,fixLeft=targetFixed?body.scrollLeft():0,endPosition=target.offset(),animation={top:endPosition.top-fixTop,left:endPosition.left-fixLeft,height:target.innerHeight(),width:target.innerWidth()},startPosition=elem.offset(),transfer=$("<div class='ui-effects-transfer'></div>").appendTo(document.body).addClass(o.className).css({top:startPosition.top-fixTop,left:startPosition.left-fixLeft,height:elem.innerHeight(),width:elem.innerWidth(),position:targetFixed?"fixed":"absolute"}).animate(animation,o.duration,o.easing,function(){transfer.remove();done()})}});(function(){"use strict";function setup($){$.fn._fadeIn=$.fn.fadeIn;var noOp=$.noop||function(){};var msie=/MSIE/.test(navigator.userAgent);var ie6=/MSIE 6.0/.test(navigator.userAgent)&&!/MSIE 8.0/.test(navigator.userAgent);var mode=document.documentMode||0;var setExpr=$.isFunction(document.createElement("div").style.setExpression);$.blockUI=function(opts){install(window,opts)};$.unblockUI=function(opts){remove(window,opts)};$.growlUI=function(title,message,timeout,onClose){var $m=$('<div class="growlUI"></div>');if(title)$m.append("<h1>"+title+"</h1>");if(message)$m.append("<h2>"+message+"</h2>");if(timeout===undefined)timeout=3e3;var callBlock=function(opts){opts=opts||{};$.blockUI({message:$m,fadeIn:typeof opts.fadeIn!=="undefined"?opts.fadeIn:700,fadeOut:typeof opts.fadeOut!=="undefined"?opts.fadeOut:1e3,timeout:typeof opts.timeout!=="undefined"?opts.timeout:timeout,centerY:false,showOverlay:false,onUnblock:onClose,css:$.blockUI.defaults.growlCSS})};callBlock();var nonmousedOpacity=$m.css("opacity");$m.mouseover(function(){callBlock({fadeIn:0,timeout:3e4});var displayBlock=$(".blockMsg");displayBlock.stop();displayBlock.fadeTo(300,1)}).mouseout(function(){$(".blockMsg").fadeOut(1e3)})};$.fn.block=function(opts){if(this[0]===window){$.blockUI(opts);return this}var fullOpts=$.extend({},$.blockUI.defaults,opts||{});this.each(function(){var $el=$(this);if(fullOpts.ignoreIfBlocked&&$el.data("blockUI.isBlocked"))return;$el.unblock({fadeOut:0})});return this.each(function(){if($.css(this,"position")=="static"){this.style.position="relative";$(this).data("blockUI.static",true)}this.style.zoom=1;install(this,opts)})};$.fn.unblock=function(opts){if(this[0]===window){$.unblockUI(opts);return this}return this.each(function(){remove(this,opts)})};$.blockUI.version=2.7;$.blockUI.defaults={message:"<h1>Please wait...</h1>",title:null,draggable:true,theme:false,css:{padding:0,margin:0,width:"30%",top:"40%",left:"35%",textAlign:"center",color:"#000",border:"3px solid #aaa",backgroundColor:"#fff",cursor:"wait"},themedCSS:{width:"30%",top:"40%",left:"35%"},overlayCSS:{backgroundColor:"#000",opacity:.6,cursor:"wait"},cursorReset:"default",growlCSS:{width:"350px",top:"10px",left:"",right:"10px",border:"none",padding:"5px",opacity:.6,cursor:"default",color:"#fff",backgroundColor:"#000","-webkit-border-radius":"10px","-moz-border-radius":"10px","border-radius":"10px"},iframeSrc:/^https/i.test(window.location.href||"")?"javascript:false":"about:blank",forceIframe:false,baseZ:1e3,centerX:true,centerY:true,allowBodyStretch:true,bindEvents:true,constrainTabKey:true,fadeIn:200,fadeOut:400,timeout:0,showOverlay:true,focusInput:true,focusableElements:":input:enabled:visible",onBlock:null,onUnblock:null,onOverlayClick:null,quirksmodeOffsetHack:4,blockMsgClass:"blockMsg",ignoreIfBlocked:false};var pageBlock=null;var pageBlockEls=[];function install(el,opts){var css,themedCSS;var full=el==window;var msg=opts&&opts.message!==undefined?opts.message:undefined;opts=$.extend({},$.blockUI.defaults,opts||{});if(opts.ignoreIfBlocked&&$(el).data("blockUI.isBlocked"))return;opts.overlayCSS=$.extend({},$.blockUI.defaults.overlayCSS,opts.overlayCSS||{});css=$.extend({},$.blockUI.defaults.css,opts.css||{});if(opts.onOverlayClick)opts.overlayCSS.cursor="pointer";themedCSS=$.extend({},$.blockUI.defaults.themedCSS,opts.themedCSS||{});msg=msg===undefined?opts.message:msg;if(full&&pageBlock)remove(window,{fadeOut:0});if(msg&&typeof msg!="string"&&(msg.parentNode||msg.jquery)){var node=msg.jquery?msg[0]:msg;var data={};$(el).data("blockUI.history",data);data.el=node;data.parent=node.parentNode;data.display=node.style.display;data.position=node.style.position;if(data.parent)data.parent.removeChild(node)}$(el).data("blockUI.onUnblock",opts.onUnblock);var z=opts.baseZ;var lyr1,lyr2,lyr3,s;if(msie||opts.forceIframe)lyr1=$('<iframe class="blockUI" style="z-index:'+z+++';display:none;border:none;margin:0;padding:0;position:absolute;width:100%;height:100%;top:0;left:0" src="'+opts.iframeSrc+'"></iframe>');else lyr1=$('<div class="blockUI" style="display:none"></div>');if(opts.theme)lyr2=$('<div class="blockUI blockOverlay ui-widget-overlay" style="z-index:'+z+++';display:none"></div>');else lyr2=$('<div class="blockUI blockOverlay" style="z-index:'+z+++';display:none;border:none;margin:0;padding:0;width:100%;height:100%;top:0;left:0"></div>');if(opts.theme&&full){s='<div class="blockUI '+opts.blockMsgClass+' blockPage ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:fixed">';if(opts.title){s+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title||"&nbsp;")+"</div>"}s+='<div class="ui-widget-content ui-dialog-content"></div>';s+="</div>"}else if(opts.theme){s='<div class="blockUI '+opts.blockMsgClass+' blockElement ui-dialog ui-widget ui-corner-all" style="z-index:'+(z+10)+';display:none;position:absolute">';if(opts.title){s+='<div class="ui-widget-header ui-dialog-titlebar ui-corner-all blockTitle">'+(opts.title||"&nbsp;")+"</div>"}s+='<div class="ui-widget-content ui-dialog-content"></div>';s+="</div>"}else if(full){s='<div class="blockUI '+opts.blockMsgClass+' blockPage" style="z-index:'+(z+10)+';display:none;position:fixed"></div>'}else{s='<div class="blockUI '+opts.blockMsgClass+' blockElement" style="z-index:'+(z+10)+';display:none;position:absolute"></div>'}lyr3=$(s);if(msg){if(opts.theme){lyr3.css(themedCSS);lyr3.addClass("ui-widget-content")}else lyr3.css(css)}if(!opts.theme)lyr2.css(opts.overlayCSS);lyr2.css("position",full?"fixed":"absolute");if(msie||opts.forceIframe)lyr1.css("opacity",0);var layers=[lyr1,lyr2,lyr3],$par=full?$("body"):$(el);$.each(layers,function(){this.appendTo($par)});if(opts.theme&&opts.draggable&&$.fn.draggable){lyr3.draggable({handle:".ui-dialog-titlebar",cancel:"li"})}var expr=setExpr&&(!$.support.boxModel||$("object,embed",full?null:el).length>0);if(ie6||expr){if(full&&opts.allowBodyStretch&&$.support.boxModel)$("html,body").css("height","100%");if((ie6||!$.support.boxModel)&&!full){var t=sz(el,"borderTopWidth"),l=sz(el,"borderLeftWidth");var fixT=t?"(0 - "+t+")":0;var fixL=l?"(0 - "+l+")":0}$.each(layers,function(i,o){var s=o[0].style;s.position="absolute";if(i<2){if(full)s.setExpression("height","Math.max(document.body.scrollHeight, document.body.offsetHeight) - (jQuery.support.boxModel?0:"+opts.quirksmodeOffsetHack+') + "px"');else s.setExpression("height",'this.parentNode.offsetHeight + "px"');if(full)s.setExpression("width",'jQuery.support.boxModel && document.documentElement.clientWidth || document.body.clientWidth + "px"');else s.setExpression("width",'this.parentNode.offsetWidth + "px"');if(fixL)s.setExpression("left",fixL);if(fixT)s.setExpression("top",fixT)}else if(opts.centerY){if(full)s.setExpression("top",'(document.documentElement.clientHeight || document.body.clientHeight) / 2 - (this.offsetHeight / 2) + (blah = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "px"');s.marginTop=0}else if(!opts.centerY&&full){var top=opts.css&&opts.css.top?parseInt(opts.css.top,10):0;var expression="((document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop) + "+top+') + "px"';s.setExpression("top",expression)}})}if(msg){if(opts.theme)lyr3.find(".ui-widget-content").append(msg);else lyr3.append(msg);if(msg.jquery||msg.nodeType)$(msg).show()}if((msie||opts.forceIframe)&&opts.showOverlay)lyr1.show();if(opts.fadeIn){var cb=opts.onBlock?opts.onBlock:noOp;var cb1=opts.showOverlay&&!msg?cb:noOp;var cb2=msg?cb:noOp;if(opts.showOverlay)lyr2._fadeIn(opts.fadeIn,cb1);if(msg)lyr3._fadeIn(opts.fadeIn,cb2)}else{if(opts.showOverlay)lyr2.show();if(msg)lyr3.show();if(opts.onBlock)opts.onBlock.bind(lyr3)()}bind(1,el,opts);if(full){pageBlock=lyr3[0];pageBlockEls=$(opts.focusableElements,pageBlock);if(opts.focusInput)setTimeout(focus,20)}else center(lyr3[0],opts.centerX,opts.centerY);if(opts.timeout){var to=setTimeout(function(){if(full)$.unblockUI(opts);else $(el).unblock(opts)},opts.timeout);$(el).data("blockUI.timeout",to)}}function remove(el,opts){var count;var full=el==window;var $el=$(el);var data=$el.data("blockUI.history");var to=$el.data("blockUI.timeout");if(to){clearTimeout(to);$el.removeData("blockUI.timeout")}opts=$.extend({},$.blockUI.defaults,opts||{});bind(0,el,opts);if(opts.onUnblock===null){opts.onUnblock=$el.data("blockUI.onUnblock");$el.removeData("blockUI.onUnblock")}var els;if(full)els=$("body").children().filter(".blockUI").add("body > .blockUI");else els=$el.find(">.blockUI");if(opts.cursorReset){if(els.length>1)els[1].style.cursor=opts.cursorReset;if(els.length>2)els[2].style.cursor=opts.cursorReset}if(full)pageBlock=pageBlockEls=null;if(opts.fadeOut){count=els.length;els.stop().fadeOut(opts.fadeOut,function(){if(--count===0)reset(els,data,opts,el)})}else reset(els,data,opts,el)}function reset(els,data,opts,el){var $el=$(el);if($el.data("blockUI.isBlocked"))return;els.each(function(i,o){if(this.parentNode)this.parentNode.removeChild(this)});if(data&&data.el){data.el.style.display=data.display;data.el.style.position=data.position;data.el.style.cursor="default";if(data.parent)data.parent.appendChild(data.el);$el.removeData("blockUI.history")}if($el.data("blockUI.static")){$el.css("position","static")}if(typeof opts.onUnblock=="function")opts.onUnblock(el,opts);var body=$(document.body),w=body.width(),cssW=body[0].style.width;body.width(w-1).width(w);body[0].style.width=cssW}function bind(b,el,opts){var full=el==window,$el=$(el);if(!b&&(full&&!pageBlock||!full&&!$el.data("blockUI.isBlocked")))return;$el.data("blockUI.isBlocked",b);if(!full||!opts.bindEvents||b&&!opts.showOverlay)return;var events="mousedown mouseup keydown keypress keyup touchstart touchend touchmove";if(b)$(document).bind(events,opts,handler);else $(document).unbind(events,handler)}function handler(e){if(e.type==="keydown"&&e.keyCode&&e.keyCode==9){if(pageBlock&&e.data.constrainTabKey){var els=pageBlockEls;var fwd=!e.shiftKey&&e.target===els[els.length-1];var back=e.shiftKey&&e.target===els[0];if(fwd||back){setTimeout(function(){focus(back)},10);return false}}}var opts=e.data;var target=$(e.target);if(target.hasClass("blockOverlay")&&opts.onOverlayClick)opts.onOverlayClick(e);if(target.parents("div."+opts.blockMsgClass).length>0)return true;return target.parents().children().filter("div.blockUI").length===0}function focus(back){if(!pageBlockEls)return;var e=pageBlockEls[back===true?pageBlockEls.length-1:0];if(e)e.focus()}function center(el,x,y){var p=el.parentNode,s=el.style;var l=(p.offsetWidth-el.offsetWidth)/2-sz(p,"borderLeftWidth");var t=(p.offsetHeight-el.offsetHeight)/2-sz(p,"borderTopWidth");if(x)s.left=l>0?l+"px":"0";if(y)s.top=t>0?t+"px":"0"}function sz(el,p){return parseInt($.css(el,p),10)||0}}if(typeof define==="function"&&define.amd&&define.amd.jQuery){define(["jquery"],setup)}else{setup(jQuery)}})();(function($){var plugin={};var defaults={mode:"horizontal",slideSelector:"",infiniteLoop:true,hideControlOnEnd:false,speed:500,easing:null,slideMargin:0,startSlide:0,randomStart:false,captions:false,ticker:false,tickerHover:false,adaptiveHeight:false,adaptiveHeightSpeed:500,video:false,useCSS:true,preloadImages:"visible",responsive:true,touchEnabled:true,swipeThreshold:50,oneToOneTouch:true,preventDefaultSwipeX:true,preventDefaultSwipeY:false,pager:true,pagerType:"full",pagerShortSeparator:" / ",pagerSelector:null,buildPager:null,pagerCustom:null,controls:true,nextText:"Next",prevText:"Prev",nextSelector:null,prevSelector:null,autoControls:false,startText:"Start",stopText:"Stop",autoControlsCombine:false,autoControlsSelector:null,auto:false,pause:4e3,autoStart:true,autoDirection:"next",autoHover:false,autoDelay:0,minSlides:1,maxSlides:1,moveSlides:0,slideWidth:0,onSliderLoad:function(){},onSlideBefore:function(){},onSlideAfter:function(){},onSlideNext:function(){},onSlidePrev:function(){}};$.fn.bxSlider=function(options){if(this.length==0)return this;if(this.length>1){this.each(function(){$(this).bxSlider(options)});return this}var slider={};var el=this;plugin.el=this;var windowWidth=$(window).width();var windowHeight=$(window).height();var init=function(){slider.settings=$.extend({},defaults,options);slider.settings.slideWidth=parseInt(slider.settings.slideWidth);slider.children=el.children(slider.settings.slideSelector);if(slider.children.length<slider.settings.minSlides)slider.settings.minSlides=slider.children.length;if(slider.children.length<slider.settings.maxSlides)slider.settings.maxSlides=slider.children.length;if(slider.settings.randomStart)slider.settings.startSlide=Math.floor(Math.random()*slider.children.length);slider.active={index:slider.settings.startSlide};slider.carousel=slider.settings.minSlides>1||slider.settings.maxSlides>1;if(slider.carousel)slider.settings.preloadImages="all";slider.minThreshold=slider.settings.minSlides*slider.settings.slideWidth+(slider.settings.minSlides-1)*slider.settings.slideMargin;slider.maxThreshold=slider.settings.maxSlides*slider.settings.slideWidth+(slider.settings.maxSlides-1)*slider.settings.slideMargin;slider.working=false;slider.controls={};slider.interval=null;slider.animProp=slider.settings.mode=="vertical"?"top":"left";slider.usingCSS=slider.settings.useCSS&&slider.settings.mode!="fade"&&function(){var div=document.createElement("div");var props=["WebkitPerspective","MozPerspective","OPerspective","msPerspective"];for(var i in props){if(div.style[props[i]]!==undefined){slider.cssPrefix=props[i].replace("Perspective","").toLowerCase();slider.animProp="-"+slider.cssPrefix+"-transform";return true}}return false}();if(slider.settings.mode=="vertical")slider.settings.maxSlides=slider.settings.minSlides;el.data("origStyle",el.attr("style"));el.children(slider.settings.slideSelector).each(function(){$(this).data("origStyle",$(this).attr("style"))});setup()};var setup=function(){el.wrap('<div class="bx-wrapper"><div class="bx-viewport"></div></div>');slider.viewport=el.parent();slider.loader=$('<div class="bx-loading" />');slider.viewport.prepend(slider.loader);el.css({width:slider.settings.mode=="horizontal"?slider.children.length*100+215+"%":"auto",position:"relative"});if(slider.usingCSS&&slider.settings.easing){el.css("-"+slider.cssPrefix+"-transition-timing-function",slider.settings.easing)}else if(!slider.settings.easing){slider.settings.easing="swing"}var slidesShowing=getNumberSlidesShowing();slider.viewport.css({width:"100%",overflow:"hidden",position:"relative"});slider.viewport.parent().css({maxWidth:getViewportMaxWidth()});if(!slider.settings.pager){slider.viewport.parent().css({margin:"0 auto 0px"})}slider.children.css({float:slider.settings.mode=="horizontal"?"left":"none",listStyle:"none",position:"relative"});slider.children.css("width",getSlideWidth());if(slider.settings.mode=="horizontal"&&slider.settings.slideMargin>0)slider.children.css("marginRight",slider.settings.slideMargin);if(slider.settings.mode=="vertical"&&slider.settings.slideMargin>0)slider.children.css("marginBottom",slider.settings.slideMargin);if(slider.settings.mode=="fade"){slider.children.css({position:"absolute",zIndex:0,display:"none"});slider.children.eq(slider.settings.startSlide).css({zIndex:50,display:"block"})}slider.controls.el=$('<div class="bx-controls" />');if(slider.settings.captions)appendCaptions();slider.active.last=slider.settings.startSlide==getPagerQty()-1;if(slider.settings.video)el.fitVids();var preloadSelector=slider.children.eq(slider.settings.startSlide);if(slider.settings.preloadImages=="all")preloadSelector=slider.children;if(!slider.settings.ticker){if(slider.settings.pager)appendPager();if(slider.settings.controls)appendControls();if(slider.settings.auto&&slider.settings.autoControls)appendControlsAuto();if(slider.settings.controls||slider.settings.autoControls||slider.settings.pager)slider.viewport.after(slider.controls.el)}else{slider.settings.pager=false}loadElements(preloadSelector,start)};var loadElements=function(selector,callback){var total=selector.find("img, iframe").length;if(total==0){callback();return}var count=0;selector.find("img, iframe").each(function(){$(this).one("load",function(){if(++count==total)callback()}).each(function(){if(this.complete)$(this).load()})})};var start=function(){if(slider.settings.infiniteLoop&&slider.settings.mode!="fade"&&!slider.settings.ticker){var slice=slider.settings.mode=="vertical"?slider.settings.minSlides:slider.settings.maxSlides;var sliceAppend=slider.children.slice(0,slice).clone().addClass("bx-clone");var slicePrepend=slider.children.slice(-slice).clone().addClass("bx-clone");el.append(sliceAppend).prepend(slicePrepend)}slider.loader.remove();setSlidePosition();if(slider.settings.mode=="vertical")slider.settings.adaptiveHeight=true;slider.viewport.height(getViewportHeight());el.redrawSlider();slider.settings.onSliderLoad(slider.active.index);slider.initialized=true;if(slider.settings.responsive)$(window).bind("resize",resizeWindow);if(slider.settings.auto&&slider.settings.autoStart)initAuto();if(slider.settings.ticker)initTicker();if(slider.settings.pager)updatePagerActive(slider.settings.startSlide);if(slider.settings.controls)updateDirectionControls();if(slider.settings.touchEnabled&&!slider.settings.ticker)initTouch()};var getViewportHeight=function(){var height=0;var children=$();if(slider.settings.mode!="vertical"&&!slider.settings.adaptiveHeight){children=slider.children}else{if(!slider.carousel){children=slider.children.eq(slider.active.index)}else{var currentIndex=slider.settings.moveSlides==1?slider.active.index:slider.active.index*getMoveBy();children=slider.children.eq(currentIndex);for(i=1;i<=slider.settings.maxSlides-1;i++){if(currentIndex+i>=slider.children.length){children=children.add(slider.children.eq(i-1))}else{children=children.add(slider.children.eq(currentIndex+i))}}}}if(slider.settings.mode=="vertical"){children.each(function(index){height+=$(this).outerHeight()});if(slider.settings.slideMargin>0){height+=slider.settings.slideMargin*(slider.settings.minSlides-1)}}else{height=Math.max.apply(Math,children.map(function(){return $(this).outerHeight(false)}).get())}return height};var getViewportMaxWidth=function(){var width="100%";if(slider.settings.slideWidth>0){if(slider.settings.mode=="horizontal"){width=slider.settings.maxSlides*slider.settings.slideWidth+(slider.settings.maxSlides-1)*slider.settings.slideMargin}else{width=slider.settings.slideWidth}}return width};var getSlideWidth=function(){var newElWidth=slider.settings.slideWidth;var wrapWidth=slider.viewport.width();if(slider.settings.slideWidth==0||slider.settings.slideWidth>wrapWidth&&!slider.carousel||slider.settings.mode=="vertical"){newElWidth=wrapWidth}else if(slider.settings.maxSlides>1&&slider.settings.mode=="horizontal"){if(wrapWidth>slider.maxThreshold){}else if(wrapWidth<slider.minThreshold){newElWidth=(wrapWidth-slider.settings.slideMargin*(slider.settings.minSlides-1))/slider.settings.minSlides}}return newElWidth};var getNumberSlidesShowing=function(){var slidesShowing=1;if(slider.settings.mode=="horizontal"&&slider.settings.slideWidth>0){if(slider.viewport.width()<slider.minThreshold){slidesShowing=slider.settings.minSlides}else if(slider.viewport.width()>slider.maxThreshold){slidesShowing=slider.settings.maxSlides}else{var childWidth=slider.children.first().width();slidesShowing=Math.floor(slider.viewport.width()/childWidth)}}else if(slider.settings.mode=="vertical"){slidesShowing=slider.settings.minSlides}return slidesShowing};var getPagerQty=function(){var pagerQty=0;if(slider.settings.moveSlides>0){if(slider.settings.infiniteLoop){pagerQty=slider.children.length/getMoveBy()}else{var breakPoint=0;var counter=0;while(breakPoint<slider.children.length){++pagerQty;breakPoint=counter+getNumberSlidesShowing();counter+=slider.settings.moveSlides<=getNumberSlidesShowing()?slider.settings.moveSlides:getNumberSlidesShowing()}}}else{pagerQty=Math.ceil(slider.children.length/getNumberSlidesShowing())}return pagerQty};var getMoveBy=function(){if(slider.settings.moveSlides>0&&slider.settings.moveSlides<=getNumberSlidesShowing()){return slider.settings.moveSlides}return getNumberSlidesShowing()};var setSlidePosition=function(){if(slider.children.length>slider.settings.maxSlides&&slider.active.last&&!slider.settings.infiniteLoop){if(slider.settings.mode=="horizontal"){var lastChild=slider.children.last();var position=lastChild.position();setPositionProperty(-(position.left-(slider.viewport.width()-lastChild.width())),"reset",0)}else if(slider.settings.mode=="vertical"){var lastShowingIndex=slider.children.length-slider.settings.minSlides;var position=slider.children.eq(lastShowingIndex).position();setPositionProperty(-position.top,"reset",0)}}else{var position=slider.children.eq(slider.active.index*getMoveBy()).position();if(slider.active.index==getPagerQty()-1)slider.active.last=true;if(position!=undefined){if(slider.settings.mode=="horizontal")setPositionProperty(-position.left,"reset",0);else if(slider.settings.mode=="vertical")setPositionProperty(-position.top,"reset",0)}}};var setPositionProperty=function(value,type,duration,params){if(slider.usingCSS){var propValue=slider.settings.mode=="vertical"?"translate3d(0, "+value+"px, 0)":"translate3d("+value+"px, 0, 0)";el.css("-"+slider.cssPrefix+"-transition-duration",duration/1e3+"s");if(type=="slide"){el.css(slider.animProp,propValue);el.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){el.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd");updateAfterSlideTransition()})}else if(type=="reset"){el.css(slider.animProp,propValue)}else if(type=="ticker"){el.css("-"+slider.cssPrefix+"-transition-timing-function","linear");el.css(slider.animProp,propValue);el.bind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd",function(){el.unbind("transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd");setPositionProperty(params["resetValue"],"reset",0);tickerLoop()})}}else{var animateObj={};animateObj[slider.animProp]=value;if(type=="slide"){el.animate(animateObj,duration,slider.settings.easing,function(){updateAfterSlideTransition()})}else if(type=="reset"){el.css(slider.animProp,value)}else if(type=="ticker"){el.animate(animateObj,speed,"linear",function(){setPositionProperty(params["resetValue"],"reset",0);tickerLoop()})}}};var populatePager=function(){var pagerHtml="";var pagerQty=getPagerQty();for(var i=0;i<pagerQty;i++){var linkContent="";if(slider.settings.buildPager&&$.isFunction(slider.settings.buildPager)){linkContent=slider.settings.buildPager(i);slider.pagerEl.addClass("bx-custom-pager")}else{linkContent=i+1;slider.pagerEl.addClass("bx-default-pager")}pagerHtml+='<div class="bx-pager-item"><a href="" data-slide-index="'+i+'" class="bx-pager-link">'+linkContent+"</a></div>"}slider.pagerEl.html(pagerHtml)};var appendPager=function(){if(!slider.settings.pagerCustom){slider.pagerEl=$('<div class="bx-pager" />');if(slider.settings.pagerSelector){$(slider.settings.pagerSelector).html(slider.pagerEl)}else{slider.controls.el.addClass("bx-has-pager").append(slider.pagerEl)}populatePager()}else{slider.pagerEl=$(slider.settings.pagerCustom)}slider.pagerEl.delegate("a","click",clickPagerBind)};var appendControls=function(){slider.controls.next=$('<a class="bx-next" href="">'+slider.settings.nextText+"</a>");slider.controls.prev=$('<a class="bx-prev" href="">'+slider.settings.prevText+"</a>");slider.controls.next.bind("click",clickNextBind);slider.controls.prev.bind("click",clickPrevBind);if(slider.settings.nextSelector){$(slider.settings.nextSelector).append(slider.controls.next)}if(slider.settings.prevSelector){$(slider.settings.prevSelector).append(slider.controls.prev)}if(!slider.settings.nextSelector&&!slider.settings.prevSelector){slider.controls.directionEl=$('<div class="bx-controls-direction" />');slider.controls.directionEl.append(slider.controls.prev).append(slider.controls.next);slider.controls.el.addClass("bx-has-controls-direction").append(slider.controls.directionEl)}};var appendControlsAuto=function(){slider.controls.start=$('<div class="bx-controls-auto-item"><a class="bx-start" href="">'+slider.settings.startText+"</a></div>");slider.controls.stop=$('<div class="bx-controls-auto-item"><a class="bx-stop" href="">'+slider.settings.stopText+"</a></div>");slider.controls.autoEl=$('<div class="bx-controls-auto" />');slider.controls.autoEl.delegate(".bx-start","click",clickStartBind);slider.controls.autoEl.delegate(".bx-stop","click",clickStopBind);if(slider.settings.autoControlsCombine){slider.controls.autoEl.append(slider.controls.start)}else{slider.controls.autoEl.append(slider.controls.start).append(slider.controls.stop)}if(slider.settings.autoControlsSelector){$(slider.settings.autoControlsSelector).html(slider.controls.autoEl)}else{slider.controls.el.addClass("bx-has-controls-auto").append(slider.controls.autoEl)}updateAutoControls(slider.settings.autoStart?"stop":"start")};var appendCaptions=function(){slider.children.each(function(index){var title=$(this).find("img:first").attr("title");if(title!=undefined&&(""+title).length){$(this).append('<div class="bx-caption"><span>'+title+"</span></div>")}})};var clickNextBind=function(e){if(slider.settings.auto)el.stopAuto();el.goToNextSlide();e.preventDefault()};var clickPrevBind=function(e){if(slider.settings.auto)el.stopAuto();el.goToPrevSlide();e.preventDefault()};var clickStartBind=function(e){el.startAuto();e.preventDefault()};var clickStopBind=function(e){el.stopAuto();e.preventDefault()};var clickPagerBind=function(e){if(slider.settings.auto)el.stopAuto();var pagerLink=$(e.currentTarget);var pagerIndex=parseInt(pagerLink.attr("data-slide-index"));if(pagerIndex!=slider.active.index)el.goToSlide(pagerIndex);e.preventDefault()};var updatePagerActive=function(slideIndex){var len=slider.children.length;if(slider.settings.pagerType=="short"){if(slider.settings.maxSlides>1){len=Math.ceil(slider.children.length/slider.settings.maxSlides)}slider.pagerEl.html(slideIndex+1+slider.settings.pagerShortSeparator+len);return}slider.pagerEl.find("a").removeClass("active");slider.pagerEl.each(function(i,el){$(el).find("a").eq(slideIndex).addClass("active")})};var updateAfterSlideTransition=function(){if(slider.settings.infiniteLoop){var position="";if(slider.active.index==0){position=slider.children.eq(0).position()}else if(slider.active.index==getPagerQty()-1&&slider.carousel){position=slider.children.eq((getPagerQty()-1)*getMoveBy()).position()}else if(slider.active.index==slider.children.length-1){position=slider.children.eq(slider.children.length-1).position()}if(slider.settings.mode=="horizontal"){setPositionProperty(-position.left,"reset",0)}else if(slider.settings.mode=="vertical"){setPositionProperty(-position.top,"reset",0)}}slider.working=false;slider.settings.onSlideAfter(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index)};var updateAutoControls=function(state){if(slider.settings.autoControlsCombine){slider.controls.autoEl.html(slider.controls[state])}else{slider.controls.autoEl.find("a").removeClass("active");slider.controls.autoEl.find("a:not(.bx-"+state+")").addClass("active")}};var updateDirectionControls=function(){if(getPagerQty()==1){slider.controls.prev.addClass("disabled");slider.controls.next.addClass("disabled")}else if(!slider.settings.infiniteLoop&&slider.settings.hideControlOnEnd){if(slider.active.index==0){slider.controls.prev.addClass("disabled");slider.controls.next.removeClass("disabled")}else if(slider.active.index==getPagerQty()-1){slider.controls.next.addClass("disabled");slider.controls.prev.removeClass("disabled")}else{slider.controls.prev.removeClass("disabled");slider.controls.next.removeClass("disabled")}}};var initAuto=function(){if(slider.settings.autoDelay>0){var timeout=setTimeout(el.startAuto,slider.settings.autoDelay)}else{el.startAuto()}if(slider.settings.autoHover){el.hover(function(){if(slider.interval){el.stopAuto(true);slider.autoPaused=true}},function(){if(slider.autoPaused){el.startAuto(true);slider.autoPaused=null}})}};var initTicker=function(){var startPosition=0;if(slider.settings.autoDirection=="next"){el.append(slider.children.clone().addClass("bx-clone"))}else{el.prepend(slider.children.clone().addClass("bx-clone"));var position=slider.children.first().position();startPosition=slider.settings.mode=="horizontal"?-position.left:-position.top}
setPositionProperty(startPosition,"reset",0);slider.settings.pager=false;slider.settings.controls=false;slider.settings.autoControls=false;if(slider.settings.tickerHover&&!slider.usingCSS){slider.viewport.hover(function(){el.stop()},function(){var totalDimens=0;slider.children.each(function(index){totalDimens+=slider.settings.mode=="horizontal"?$(this).outerWidth(true):$(this).outerHeight(true)});var ratio=slider.settings.speed/totalDimens;var property=slider.settings.mode=="horizontal"?"left":"top";var newSpeed=ratio*(totalDimens-Math.abs(parseInt(el.css(property))));tickerLoop(newSpeed)})}tickerLoop()};var tickerLoop=function(resumeSpeed){speed=resumeSpeed?resumeSpeed:slider.settings.speed;var position={left:0,top:0};var reset={left:0,top:0};if(slider.settings.autoDirection=="next"){position=el.find(".bx-clone").first().position()}else{reset=slider.children.first().position()}var animateProperty=slider.settings.mode=="horizontal"?-position.left:-position.top;var resetValue=slider.settings.mode=="horizontal"?-reset.left:-reset.top;var params={resetValue:resetValue};setPositionProperty(animateProperty,"ticker",speed,params)};var initTouch=function(){slider.touch={start:{x:0,y:0},end:{x:0,y:0}};slider.viewport.bind("touchstart",onTouchStart)};var onTouchStart=function(e){if(slider.working){e.preventDefault()}else{slider.touch.originalPos=el.position();var orig=e.originalEvent;slider.touch.start.x=orig.changedTouches[0].pageX;slider.touch.start.y=orig.changedTouches[0].pageY;slider.viewport.bind("touchmove",onTouchMove);slider.viewport.bind("touchend",onTouchEnd)}};var onTouchMove=function(e){var orig=e.originalEvent;var xMovement=Math.abs(orig.changedTouches[0].pageX-slider.touch.start.x);var yMovement=Math.abs(orig.changedTouches[0].pageY-slider.touch.start.y);if(xMovement*3>yMovement&&slider.settings.preventDefaultSwipeX){e.preventDefault()}else if(yMovement*3>xMovement&&slider.settings.preventDefaultSwipeY){e.preventDefault()}if(slider.settings.mode!="fade"&&slider.settings.oneToOneTouch){var value=0;if(slider.settings.mode=="horizontal"){var change=orig.changedTouches[0].pageX-slider.touch.start.x;value=slider.touch.originalPos.left+change}else{var change=orig.changedTouches[0].pageY-slider.touch.start.y;value=slider.touch.originalPos.top+change}setPositionProperty(value,"reset",0)}};var onTouchEnd=function(e){slider.viewport.unbind("touchmove",onTouchMove);var orig=e.originalEvent;var value=0;slider.touch.end.x=orig.changedTouches[0].pageX;slider.touch.end.y=orig.changedTouches[0].pageY;if(slider.settings.mode=="fade"){var distance=Math.abs(slider.touch.start.x-slider.touch.end.x);if(distance>=slider.settings.swipeThreshold){slider.touch.start.x>slider.touch.end.x?el.goToNextSlide():el.goToPrevSlide();el.stopAuto()}}else{var distance=0;if(slider.settings.mode=="horizontal"){distance=slider.touch.end.x-slider.touch.start.x;value=slider.touch.originalPos.left}else{distance=slider.touch.end.y-slider.touch.start.y;value=slider.touch.originalPos.top}if(!slider.settings.infiniteLoop&&(slider.active.index==0&&distance>0||slider.active.last&&distance<0)){setPositionProperty(value,"reset",200)}else{if(Math.abs(distance)>=slider.settings.swipeThreshold){distance<0?el.goToNextSlide():el.goToPrevSlide();el.stopAuto()}else{setPositionProperty(value,"reset",200)}}}slider.viewport.unbind("touchend",onTouchEnd)};var resizeWindow=function(e){var windowWidthNew=$(window).width();var windowHeightNew=$(window).height();if(windowWidth!=windowWidthNew||windowHeight!=windowHeightNew){windowWidth=windowWidthNew;windowHeight=windowHeightNew;el.redrawSlider()}};el.goToSlide=function(slideIndex,direction){if(slider.working||slider.active.index==slideIndex)return;slider.working=true;slider.oldIndex=slider.active.index;if(slideIndex<0){slider.active.index=getPagerQty()-1}else if(slideIndex>=getPagerQty()){slider.active.index=0}else{slider.active.index=slideIndex}slider.settings.onSlideBefore(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index);if(direction=="next"){slider.settings.onSlideNext(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index)}else if(direction=="prev"){slider.settings.onSlidePrev(slider.children.eq(slider.active.index),slider.oldIndex,slider.active.index)}slider.active.last=slider.active.index>=getPagerQty()-1;if(slider.settings.pager)updatePagerActive(slider.active.index);if(slider.settings.controls)updateDirectionControls();if(slider.settings.mode=="fade"){if(slider.settings.adaptiveHeight&&slider.viewport.height()!=getViewportHeight()){slider.viewport.animate({height:getViewportHeight()},slider.settings.adaptiveHeightSpeed)}slider.children.filter(":visible").fadeOut(slider.settings.speed).css({zIndex:0});slider.children.eq(slider.active.index).css("zIndex",51).fadeIn(slider.settings.speed,function(){$(this).css("zIndex",50);updateAfterSlideTransition()})}else{if(slider.settings.adaptiveHeight&&slider.viewport.height()!=getViewportHeight()){slider.viewport.animate({height:getViewportHeight()},slider.settings.adaptiveHeightSpeed)}var moveBy=0;var position={left:0,top:0};if(!slider.settings.infiniteLoop&&slider.carousel&&slider.active.last){if(slider.settings.mode=="horizontal"){var lastChild=slider.children.eq(slider.children.length-1);position=lastChild.position();moveBy=slider.viewport.width()-lastChild.outerWidth()}else{var lastShowingIndex=slider.children.length-slider.settings.minSlides;position=slider.children.eq(lastShowingIndex).position()}}else if(slider.carousel&&slider.active.last&&direction=="prev"){var eq=slider.settings.moveSlides==1?slider.settings.maxSlides-getMoveBy():(getPagerQty()-1)*getMoveBy()-(slider.children.length-slider.settings.maxSlides);var lastChild=el.children(".bx-clone").eq(eq);position=lastChild.position()}else if(direction=="next"&&slider.active.index==0){position=el.find("> .bx-clone").eq(slider.settings.maxSlides).position();slider.active.last=false}else if(slideIndex>=0){var requestEl=slideIndex*getMoveBy();position=slider.children.eq(requestEl).position()}if("undefined"!==typeof position){var value=slider.settings.mode=="horizontal"?-(position.left-moveBy):-position.top;setPositionProperty(value,"slide",slider.settings.speed)}}};el.goToNextSlide=function(){if(!slider.settings.infiniteLoop&&slider.active.last)return;var pagerIndex=parseInt(slider.active.index)+1;el.goToSlide(pagerIndex,"next")};el.goToPrevSlide=function(){if(!slider.settings.infiniteLoop&&slider.active.index==0)return;var pagerIndex=parseInt(slider.active.index)-1;el.goToSlide(pagerIndex,"prev")};el.startAuto=function(preventControlUpdate){if(slider.interval)return;slider.interval=setInterval(function(){slider.settings.autoDirection=="next"?el.goToNextSlide():el.goToPrevSlide()},slider.settings.pause);if(slider.settings.autoControls&&preventControlUpdate!=true)updateAutoControls("stop")};el.stopAuto=function(preventControlUpdate){if(!slider.interval)return;clearInterval(slider.interval);slider.interval=null;if(slider.settings.autoControls&&preventControlUpdate!=true)updateAutoControls("start")};el.getCurrentSlide=function(){return slider.active.index};el.getSlideCount=function(){return slider.children.length};el.redrawSlider=function(){slider.children.add(el.find(".bx-clone")).outerWidth(getSlideWidth());slider.viewport.css("height",getViewportHeight());if(!slider.settings.ticker)setSlidePosition();if(slider.active.last)slider.active.index=getPagerQty()-1;if(slider.active.index>=getPagerQty())slider.active.last=true;if(slider.settings.pager&&!slider.settings.pagerCustom){populatePager();updatePagerActive(slider.active.index)}};el.destroySlider=function(){if(!slider.initialized)return;slider.initialized=false;$(".bx-clone",this).remove();slider.children.each(function(){$(this).data("origStyle")!=undefined?$(this).attr("style",$(this).data("origStyle")):$(this).removeAttr("style")});$(this).data("origStyle")!=undefined?this.attr("style",$(this).data("origStyle")):$(this).removeAttr("style");$(this).unwrap().unwrap();if(slider.controls.el)slider.controls.el.remove();if(slider.controls.next)slider.controls.next.remove();if(slider.controls.prev)slider.controls.prev.remove();if(slider.pagerEl)slider.pagerEl.remove();$(".bx-caption",this).remove();if(slider.controls.autoEl)slider.controls.autoEl.remove();clearInterval(slider.interval);if(slider.settings.responsive)$(window).unbind("resize",resizeWindow)};el.reloadSlider=function(settings){if(settings!=undefined)options=settings;el.destroySlider();init()};init();return this}})(jQuery);(function(){var $,AbstractChosen,Chosen,SelectParser,_ref,__hasProp={}.hasOwnProperty,__extends=function(child,parent){for(var key in parent){if(__hasProp.call(parent,key))child[key]=parent[key]}function ctor(){this.constructor=child}ctor.prototype=parent.prototype;child.prototype=new ctor;child.__super__=parent.prototype;return child};SelectParser=function(){function SelectParser(){this.options_index=0;this.parsed=[]}SelectParser.prototype.add_node=function(child){if(child.nodeName.toUpperCase()==="OPTGROUP"){return this.add_group(child)}else{return this.add_option(child)}};SelectParser.prototype.add_group=function(group){var group_position,option,_i,_len,_ref,_results;group_position=this.parsed.length;this.parsed.push({array_index:group_position,group:true,label:this.escapeExpression(group.label),children:0,disabled:group.disabled});_ref=group.childNodes;_results=[];for(_i=0,_len=_ref.length;_i<_len;_i++){option=_ref[_i];_results.push(this.add_option(option,group_position,group.disabled))}return _results};SelectParser.prototype.add_option=function(option,group_position,group_disabled){if(option.nodeName.toUpperCase()==="OPTION"){if(option.text!==""){if(group_position!=null){this.parsed[group_position].children+=1}this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,value:option.value,text:option.text,html:option.innerHTML,selected:option.selected,disabled:group_disabled===true?group_disabled:option.disabled,group_array_index:group_position,classes:option.className,style:option.style.cssText})}else{this.parsed.push({array_index:this.parsed.length,options_index:this.options_index,empty:true})}return this.options_index+=1}};SelectParser.prototype.escapeExpression=function(text){var map,unsafe_chars;if(text==null||text===false){return""}if(!/[\&\<\>\"\'\`]/.test(text)){return text}map={"<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"};unsafe_chars=/&(?!\w+;)|[\<\>\"\'\`]/g;return text.replace(unsafe_chars,function(chr){return map[chr]||"&amp;"})};return SelectParser}();SelectParser.select_to_array=function(select){var child,parser,_i,_len,_ref;parser=new SelectParser;_ref=select.childNodes;for(_i=0,_len=_ref.length;_i<_len;_i++){child=_ref[_i];parser.add_node(child)}return parser.parsed};AbstractChosen=function(){function AbstractChosen(form_field,options){this.form_field=form_field;this.options=options!=null?options:{};if(!AbstractChosen.browser_is_supported()){return}this.is_multiple=this.form_field.multiple;this.set_default_text();this.set_default_values();this.setup();this.set_up_html();this.register_observers()}AbstractChosen.prototype.set_default_values=function(){var _this=this;this.click_test_action=function(evt){return _this.test_active_click(evt)};this.activate_action=function(evt){return _this.activate_field(evt)};this.active_field=false;this.mouse_on_container=false;this.results_showing=false;this.result_highlighted=null;this.result_single_selected=null;this.allow_single_deselect=this.options.allow_single_deselect!=null&&this.form_field.options[0]!=null&&this.form_field.options[0].text===""?this.options.allow_single_deselect:false;this.disable_search_threshold=this.options.disable_search_threshold||0;this.disable_search=this.options.disable_search||false;this.enable_split_word_search=this.options.enable_split_word_search!=null?this.options.enable_split_word_search:true;this.group_search=this.options.group_search!=null?this.options.group_search:true;this.search_contains=this.options.search_contains||false;this.single_backstroke_delete=this.options.single_backstroke_delete!=null?this.options.single_backstroke_delete:true;this.max_selected_options=this.options.max_selected_options||Infinity;this.inherit_select_classes=this.options.inherit_select_classes||false;this.display_selected_options=this.options.display_selected_options!=null?this.options.display_selected_options:true;return this.display_disabled_options=this.options.display_disabled_options!=null?this.options.display_disabled_options:true};AbstractChosen.prototype.set_default_text=function(){if(this.form_field.getAttribute("data-placeholder")){this.default_text=this.form_field.getAttribute("data-placeholder")}else if(this.is_multiple){this.default_text=this.options.placeholder_text_multiple||this.options.placeholder_text||AbstractChosen.default_multiple_text}else{this.default_text=this.options.placeholder_text_single||this.options.placeholder_text||AbstractChosen.default_single_text}return this.results_none_found=this.form_field.getAttribute("data-no_results_text")||this.options.no_results_text||AbstractChosen.default_no_result_text};AbstractChosen.prototype.mouse_enter=function(){return this.mouse_on_container=true};AbstractChosen.prototype.mouse_leave=function(){return this.mouse_on_container=false};AbstractChosen.prototype.input_focus=function(evt){var _this=this;if(this.is_multiple){if(!this.active_field){return setTimeout(function(){return _this.container_mousedown()},50)}}else{if(!this.active_field){return this.activate_field()}}};AbstractChosen.prototype.input_blur=function(evt){var _this=this;if(!this.mouse_on_container){this.active_field=false;return setTimeout(function(){return _this.blur_test()},100)}};AbstractChosen.prototype.results_option_build=function(options){var content,data,_i,_len,_ref;content="";_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++){data=_ref[_i];if(data.group){content+=this.result_add_group(data)}else{content+=this.result_add_option(data)}if(options!=null?options.first:void 0){if(data.selected&&this.is_multiple){this.choice_build(data)}else if(data.selected&&!this.is_multiple){this.single_set_selected_text(data.text)}}}return content};AbstractChosen.prototype.result_add_option=function(option){var classes,style;if(!option.search_match){return""}if(!this.include_option_in_results(option)){return""}classes=[];if(!option.disabled&&!(option.selected&&this.is_multiple)){classes.push("active-result")}if(option.disabled&&!(option.selected&&this.is_multiple)){classes.push("disabled-result")}if(option.selected){classes.push("result-selected")}if(option.group_array_index!=null){classes.push("group-option")}if(option.classes!==""){classes.push(option.classes)}style=option.style.cssText!==""?' style="'+option.style+'"':"";return'<li class="'+classes.join(" ")+'"'+style+' data-option-array-index="'+option.array_index+'">'+option.search_text+"</li>"};AbstractChosen.prototype.result_add_group=function(group){if(!(group.search_match||group.group_match)){return""}if(!(group.active_options>0)){return""}return'<li class="group-result">'+group.search_text+"</li>"};AbstractChosen.prototype.results_update_field=function(){this.set_default_text();if(!this.is_multiple){this.results_reset_cleanup()}this.result_clear_highlight();this.result_single_selected=null;this.results_build();if(this.results_showing){return this.winnow_results()}};AbstractChosen.prototype.results_toggle=function(){if(this.results_showing){return this.results_hide()}else{return this.results_show()}};AbstractChosen.prototype.results_search=function(evt){if(this.results_showing){return this.winnow_results()}else{return this.results_show()}};AbstractChosen.prototype.winnow_results=function(){var escapedSearchText,option,regex,regexAnchor,results,results_group,searchText,startpos,text,zregex,_i,_len,_ref;this.no_results_clear();results=0;searchText=this.get_search_text();escapedSearchText=searchText.replace(/[-[\]{}()*+?.,\\^$|#\s]/g,"\\$&");regexAnchor=this.search_contains?"":"^";regex=new RegExp(regexAnchor+escapedSearchText,"i");zregex=new RegExp(escapedSearchText,"i");_ref=this.results_data;for(_i=0,_len=_ref.length;_i<_len;_i++){option=_ref[_i];option.search_match=false;results_group=null;if(this.include_option_in_results(option)){if(option.group){option.group_match=false;option.active_options=0}if(option.group_array_index!=null&&this.results_data[option.group_array_index]){results_group=this.results_data[option.group_array_index];if(results_group.active_options===0&&results_group.search_match){results+=1}results_group.active_options+=1}if(!(option.group&&!this.group_search)){option.search_text=option.group?option.label:option.html;option.search_match=this.search_string_match(option.search_text,regex);if(option.search_match&&!option.group){results+=1}if(option.search_match){if(searchText.length){startpos=option.search_text.search(zregex);text=option.search_text.substr(0,startpos+searchText.length)+"</em>"+option.search_text.substr(startpos+searchText.length);option.search_text=text.substr(0,startpos)+"<em>"+text.substr(startpos)}if(results_group!=null){results_group.group_match=true}}else if(option.group_array_index!=null&&this.results_data[option.group_array_index].search_match){option.search_match=true}}}}this.result_clear_highlight();if(results<1&&searchText.length){this.update_results_content("");return this.no_results(searchText)}else{this.update_results_content(this.results_option_build());return this.winnow_results_set_highlight()}};AbstractChosen.prototype.search_string_match=function(search_string,regex){var part,parts,_i,_len;if(regex.test(search_string)){return true}else if(this.enable_split_word_search&&(search_string.indexOf(" ")>=0||search_string.indexOf("[")===0)){parts=search_string.replace(/\[|\]/g,"").split(" ");if(parts.length){for(_i=0,_len=parts.length;_i<_len;_i++){part=parts[_i];if(regex.test(part)){return true}}}}};AbstractChosen.prototype.choices_count=function(){var option,_i,_len,_ref;if(this.selected_option_count!=null){return this.selected_option_count}this.selected_option_count=0;_ref=this.form_field.options;for(_i=0,_len=_ref.length;_i<_len;_i++){option=_ref[_i];if(option.selected){this.selected_option_count+=1}}return this.selected_option_count};AbstractChosen.prototype.choices_click=function(evt){evt.preventDefault();if(!(this.results_showing||this.is_disabled)){return this.results_show()}};AbstractChosen.prototype.keyup_checker=function(evt){var stroke,_ref;stroke=(_ref=evt.which)!=null?_ref:evt.keyCode;this.search_field_scale();switch(stroke){case 8:if(this.is_multiple&&this.backstroke_length<1&&this.choices_count()>0){return this.keydown_backstroke()}else if(!this.pending_backstroke){this.result_clear_highlight();return this.results_search()}break;case 13:evt.preventDefault();if(this.results_showing){return this.result_select(evt)}break;case 27:if(this.results_showing){this.results_hide()}return true;case 9:case 38:case 40:case 16:case 91:case 17:break;default:return this.results_search()}};AbstractChosen.prototype.container_width=function(){if(this.options.width!=null){return this.options.width}else{return""+this.form_field.offsetWidth+"px"}};AbstractChosen.prototype.include_option_in_results=function(option){if(this.is_multiple&&(!this.display_selected_options&&option.selected)){return false}if(!this.display_disabled_options&&option.disabled){return false}if(option.empty){return false}return true};AbstractChosen.browser_is_supported=function(){if(window.navigator.appName==="Microsoft Internet Explorer"){return document.documentMode>=8}if(/iP(od|hone)/i.test(window.navigator.userAgent)){return false}if(/Android/i.test(window.navigator.userAgent)){if(/Mobile/i.test(window.navigator.userAgent)){return false}}return true};AbstractChosen.default_multiple_text="Select Some Options";AbstractChosen.default_single_text="Select an Option";AbstractChosen.default_no_result_text="No results match";return AbstractChosen}();$=jQuery;$.fn.extend({chosen:function(options){if(!AbstractChosen.browser_is_supported()){return this}return this.each(function(input_field){var $this,chosen;$this=$(this);chosen=$this.data("chosen");if(options==="destroy"&&chosen){chosen.destroy()}else if(!chosen){$this.data("chosen",new Chosen(this,options))}})}});Chosen=function(_super){__extends(Chosen,_super);function Chosen(){_ref=Chosen.__super__.constructor.apply(this,arguments);return _ref}Chosen.prototype.setup=function(){this.form_field_jq=$(this.form_field);this.current_selectedIndex=this.form_field.selectedIndex;return this.is_rtl=this.form_field_jq.hasClass("chosen-rtl")};Chosen.prototype.set_up_html=function(){var container_classes,container_props;container_classes=["chosen-container"];container_classes.push("chosen-container-"+(this.is_multiple?"multi":"single"));if(this.inherit_select_classes&&this.form_field.className){container_classes.push(this.form_field.className)}if(this.is_rtl){container_classes.push("chosen-rtl")}container_props={class:container_classes.join(" "),style:"width: "+this.container_width()+";",title:this.form_field.title};if(this.form_field.id.length){container_props.id=this.form_field.id.replace(/[^\w]/g,"_")+"_chosen"}this.container=$("<div />",container_props);if(this.is_multiple){this.container.html('<ul class="chosen-choices"><li class="search-field"><input type="text" value="'+this.default_text+'" class="default" autocomplete="off" style="width:25px;" /></li></ul><div class="chosen-drop"><ul class="chosen-results"></ul></div>')}else{this.container.html('<a class="chosen-single chosen-default" tabindex="-1"><span>'+this.default_text+'</span><div><b></b></div></a><div class="chosen-drop"><div class="chosen-search"><input type="text" autocomplete="off" /></div><ul class="chosen-results"></ul></div>')}this.form_field_jq.hide().after(this.container);this.dropdown=this.container.find("div.chosen-drop").first();this.search_field=this.container.find("input").first();this.search_results=this.container.find("ul.chosen-results").first();this.search_field_scale();this.search_no_results=this.container.find("li.no-results").first();if(this.is_multiple){this.search_choices=this.container.find("ul.chosen-choices").first();this.search_container=this.container.find("li.search-field").first()}else{this.search_container=this.container.find("div.chosen-search").first();this.selected_item=this.container.find(".chosen-single").first()}this.results_build();this.set_tab_index();this.set_label_behavior();return this.form_field_jq.trigger("chosen:ready",{chosen:this})};Chosen.prototype.register_observers=function(){var _this=this;this.container.bind("mousedown.chosen",function(evt){_this.container_mousedown(evt)});this.container.bind("mouseup.chosen",function(evt){_this.container_mouseup(evt)});this.container.bind("mouseenter.chosen",function(evt){_this.mouse_enter(evt)});this.container.bind("mouseleave.chosen",function(evt){_this.mouse_leave(evt)});this.search_results.bind("mouseup.chosen",function(evt){_this.search_results_mouseup(evt)});this.search_results.bind("mouseover.chosen",function(evt){_this.search_results_mouseover(evt)});this.search_results.bind("mouseout.chosen",function(evt){_this.search_results_mouseout(evt)});this.search_results.bind("mousewheel.chosen DOMMouseScroll.chosen",function(evt){_this.search_results_mousewheel(evt)});this.form_field_jq.bind("chosen:updated.chosen",function(evt){_this.results_update_field(evt)});this.form_field_jq.bind("chosen:activate.chosen",function(evt){_this.activate_field(evt)});this.form_field_jq.bind("chosen:open.chosen",function(evt){_this.container_mousedown(evt)});this.search_field.bind("blur.chosen",function(evt){_this.input_blur(evt)});this.search_field.bind("keyup.chosen",function(evt){_this.keyup_checker(evt)});this.search_field.bind("keydown.chosen",function(evt){_this.keydown_checker(evt)});this.search_field.bind("focus.chosen",function(evt){_this.input_focus(evt)});if(this.is_multiple){return this.search_choices.bind("click.chosen",function(evt){_this.choices_click(evt)})}else{return this.container.bind("click.chosen",function(evt){evt.preventDefault()})}};Chosen.prototype.destroy=function(){$(document).unbind("click.chosen",this.click_test_action);if(this.search_field[0].tabIndex){this.form_field_jq[0].tabIndex=this.search_field[0].tabIndex}this.container.remove();this.form_field_jq.removeData("chosen");return this.form_field_jq.show()};Chosen.prototype.search_field_disabled=function(){this.is_disabled=this.form_field_jq[0].disabled;if(this.is_disabled){this.container.addClass("chosen-disabled");this.search_field[0].disabled=true;if(!this.is_multiple){this.selected_item.unbind("focus.chosen",this.activate_action)}return this.close_field()}else{this.container.removeClass("chosen-disabled");this.search_field[0].disabled=false;if(!this.is_multiple){return this.selected_item.bind("focus.chosen",this.activate_action)}}};Chosen.prototype.container_mousedown=function(evt){if(!this.is_disabled){if(evt&&evt.type==="mousedown"&&!this.results_showing){evt.preventDefault()}if(!(evt!=null&&$(evt.target).hasClass("search-choice-close"))){if(!this.active_field){if(this.is_multiple){this.search_field.val("")}$(document).bind("click.chosen",this.click_test_action);this.results_show()}else if(!this.is_multiple&&evt&&($(evt.target)[0]===this.selected_item[0]||$(evt.target).parents("a.chosen-single").length)){evt.preventDefault();this.results_toggle()}return this.activate_field()}}};Chosen.prototype.container_mouseup=function(evt){if(evt.target.nodeName==="ABBR"&&!this.is_disabled){return this.results_reset(evt)}};Chosen.prototype.search_results_mousewheel=function(evt){var delta,_ref1,_ref2;delta=-((_ref1=evt.originalEvent)!=null?_ref1.wheelDelta:void 0)||((_ref2=evt.originialEvent)!=null?_ref2.detail:void 0);if(delta!=null){evt.preventDefault();if(evt.type==="DOMMouseScroll"){delta=delta*40}return this.search_results.scrollTop(delta+this.search_results.scrollTop())}};Chosen.prototype.blur_test=function(evt){if(!this.active_field&&this.container.hasClass("chosen-container-active")){return this.close_field()}};Chosen.prototype.close_field=function(){$(document).unbind("click.chosen",this.click_test_action);this.active_field=false;this.results_hide();this.container.removeClass("chosen-container-active");this.clear_backstroke();this.show_search_field_default();return this.search_field_scale()};Chosen.prototype.activate_field=function(){this.container.addClass("chosen-container-active");this.active_field=true;this.search_field.val(this.search_field.val());return this.search_field.focus()};Chosen.prototype.test_active_click=function(evt){if(this.container.is($(evt.target).closest(".chosen-container"))){return this.active_field=true}else{return this.close_field()}};Chosen.prototype.results_build=function(){this.parsing=true;this.selected_option_count=null;this.results_data=SelectParser.select_to_array(this.form_field);if(this.is_multiple){this.search_choices.find("li.search-choice").remove()}else if(!this.is_multiple){this.single_set_selected_text();if(this.disable_search||this.form_field.options.length<=this.disable_search_threshold){this.search_field[0].readOnly=true;this.container.addClass("chosen-container-single-nosearch")}else{this.search_field[0].readOnly=false;this.container.removeClass("chosen-container-single-nosearch")}}this.update_results_content(this.results_option_build({first:true}));this.search_field_disabled();this.show_search_field_default();this.search_field_scale();return this.parsing=false};Chosen.prototype.result_do_highlight=function(el){var high_bottom,high_top,maxHeight,visible_bottom,visible_top;if(el.length){this.result_clear_highlight();this.result_highlight=el;this.result_highlight.addClass("highlighted");maxHeight=parseInt(this.search_results.css("maxHeight"),10);visible_top=this.search_results.scrollTop();visible_bottom=maxHeight+visible_top;high_top=this.result_highlight.position().top+this.search_results.scrollTop();high_bottom=high_top+this.result_highlight.outerHeight();if(high_bottom>=visible_bottom){return this.search_results.scrollTop(high_bottom-maxHeight>0?high_bottom-maxHeight:0)}else if(high_top<visible_top){return this.search_results.scrollTop(high_top)}}};Chosen.prototype.result_clear_highlight=function(){if(this.result_highlight){this.result_highlight.removeClass("highlighted")}return this.result_highlight=null};Chosen.prototype.results_show=function(){if(this.is_multiple&&this.max_selected_options<=this.choices_count()){this.form_field_jq.trigger("chosen:maxselected",{chosen:this});return false}this.container.addClass("chosen-with-drop");this.form_field_jq.trigger("chosen:showing_dropdown",{chosen:this});this.results_showing=true;this.search_field.focus();this.search_field.val(this.search_field.val());return this.winnow_results()};Chosen.prototype.update_results_content=function(content){return this.search_results.html(content)};Chosen.prototype.results_hide=function(){if(this.results_showing){this.result_clear_highlight();this.container.removeClass("chosen-with-drop");this.form_field_jq.trigger("chosen:hiding_dropdown",{chosen:this})}return this.results_showing=false};Chosen.prototype.set_tab_index=function(el){var ti;if(this.form_field.tabIndex){ti=this.form_field.tabIndex;this.form_field.tabIndex=-1;return this.search_field[0].tabIndex=ti}};Chosen.prototype.set_label_behavior=function(){var _this=this;this.form_field_label=this.form_field_jq.parents("label");if(!this.form_field_label.length&&this.form_field.id.length){this.form_field_label=$("label[for='"+this.form_field.id+"']")}if(this.form_field_label.length>0){return this.form_field_label.bind("click.chosen",function(evt){if(_this.is_multiple){return _this.container_mousedown(evt)}else{return _this.activate_field()}})}};Chosen.prototype.show_search_field_default=function(){if(this.is_multiple&&this.choices_count()<1&&!this.active_field){this.search_field.val(this.default_text);return this.search_field.addClass("default")}else{this.search_field.val("");return this.search_field.removeClass("default")}};Chosen.prototype.search_results_mouseup=function(evt){var target;target=$(evt.target).hasClass("active-result")?$(evt.target):$(evt.target).parents(".active-result").first();if(target.length){this.result_highlight=target;this.result_select(evt);return this.search_field.focus()}};Chosen.prototype.search_results_mouseover=function(evt){var target;target=$(evt.target).hasClass("active-result")?$(evt.target):$(evt.target).parents(".active-result").first();if(target){return this.result_do_highlight(target)}};Chosen.prototype.search_results_mouseout=function(evt){if($(evt.target).hasClass("active-result"||$(evt.target).parents(".active-result").first())){return this.result_clear_highlight()}};Chosen.prototype.choice_build=function(item){var choice,close_link,_this=this;choice=$("<li />",{class:"search-choice"}).html("<span>"+item.html+"</span>");if(item.disabled){choice.addClass("search-choice-disabled")}else{close_link=$("<a />",{class:"search-choice-close","data-option-array-index":item.array_index});close_link.bind("click.chosen",function(evt){return _this.choice_destroy_link_click(evt)});choice.append(close_link)}return this.search_container.before(choice)};Chosen.prototype.choice_destroy_link_click=function(evt){evt.preventDefault();evt.stopPropagation();if(!this.is_disabled){return this.choice_destroy($(evt.target))}};Chosen.prototype.choice_destroy=function(link){if(this.result_deselect(link[0].getAttribute("data-option-array-index"))){this.show_search_field_default();if(this.is_multiple&&this.choices_count()>0&&this.search_field.val().length<1){this.results_hide()}link.parents("li").first().remove();return this.search_field_scale()}};Chosen.prototype.results_reset=function(){this.form_field.options[0].selected=true;this.selected_option_count=null;this.single_set_selected_text();this.show_search_field_default();this.results_reset_cleanup()
;this.form_field_jq.trigger("change");if(this.active_field){return this.results_hide()}};Chosen.prototype.results_reset_cleanup=function(){this.current_selectedIndex=this.form_field.selectedIndex;return this.selected_item.find("abbr").remove()};Chosen.prototype.result_select=function(evt){var high,item,selected_index;if(this.result_highlight){high=this.result_highlight;this.result_clear_highlight();if(this.is_multiple&&this.max_selected_options<=this.choices_count()){this.form_field_jq.trigger("chosen:maxselected",{chosen:this});return false}if(this.is_multiple){high.removeClass("active-result")}else{if(this.result_single_selected){this.result_single_selected.removeClass("result-selected");selected_index=this.result_single_selected[0].getAttribute("data-option-array-index");this.results_data[selected_index].selected=false}this.result_single_selected=high}high.addClass("result-selected");item=this.results_data[high[0].getAttribute("data-option-array-index")];item.selected=true;this.form_field.options[item.options_index].selected=true;this.selected_option_count=null;if(this.is_multiple){this.choice_build(item)}else{this.single_set_selected_text(item.text)}if(!((evt.metaKey||evt.ctrlKey)&&this.is_multiple)){this.results_hide()}this.search_field.val("");if(this.is_multiple||this.form_field.selectedIndex!==this.current_selectedIndex){this.form_field_jq.trigger("change",{selected:this.form_field.options[item.options_index].value})}this.current_selectedIndex=this.form_field.selectedIndex;return this.search_field_scale()}};Chosen.prototype.single_set_selected_text=function(text){if(text==null){text=this.default_text}if(text===this.default_text){this.selected_item.addClass("chosen-default")}else{this.single_deselect_control_build();this.selected_item.removeClass("chosen-default")}return this.selected_item.find("span").text(text)};Chosen.prototype.result_deselect=function(pos){var result_data;result_data=this.results_data[pos];if(!this.form_field.options[result_data.options_index].disabled){result_data.selected=false;this.form_field.options[result_data.options_index].selected=false;this.selected_option_count=null;this.result_clear_highlight();if(this.results_showing){this.winnow_results()}this.form_field_jq.trigger("change",{deselected:this.form_field.options[result_data.options_index].value});this.search_field_scale();return true}else{return false}};Chosen.prototype.single_deselect_control_build=function(){if(!this.allow_single_deselect){return}if(!this.selected_item.find("abbr").length){this.selected_item.find("span").first().after('<abbr class="search-choice-close"></abbr>')}return this.selected_item.addClass("chosen-single-with-deselect")};Chosen.prototype.get_search_text=function(){if(this.search_field.val()===this.default_text){return""}else{return $("<div/>").text($.trim(this.search_field.val())).html()}};Chosen.prototype.winnow_results_set_highlight=function(){var do_high,selected_results;selected_results=!this.is_multiple?this.search_results.find(".result-selected.active-result"):[];do_high=selected_results.length?selected_results.first():this.search_results.find(".active-result").first();if(do_high!=null){return this.result_do_highlight(do_high)}};Chosen.prototype.no_results=function(terms){var no_results_html;no_results_html=$('<li class="no-results">'+this.results_none_found+' "<span></span>"</li>');no_results_html.find("span").first().html(terms);return this.search_results.append(no_results_html)};Chosen.prototype.no_results_clear=function(){return this.search_results.find(".no-results").remove()};Chosen.prototype.keydown_arrow=function(){var next_sib;if(this.results_showing&&this.result_highlight){next_sib=this.result_highlight.nextAll("li.active-result").first();if(next_sib){return this.result_do_highlight(next_sib)}}else{return this.results_show()}};Chosen.prototype.keyup_arrow=function(){var prev_sibs;if(!this.results_showing&&!this.is_multiple){return this.results_show()}else if(this.result_highlight){prev_sibs=this.result_highlight.prevAll("li.active-result");if(prev_sibs.length){return this.result_do_highlight(prev_sibs.first())}else{if(this.choices_count()>0){this.results_hide()}return this.result_clear_highlight()}}};Chosen.prototype.keydown_backstroke=function(){var next_available_destroy;if(this.pending_backstroke){this.choice_destroy(this.pending_backstroke.find("a").first());return this.clear_backstroke()}else{next_available_destroy=this.search_container.siblings("li.search-choice").last();if(next_available_destroy.length&&!next_available_destroy.hasClass("search-choice-disabled")){this.pending_backstroke=next_available_destroy;if(this.single_backstroke_delete){return this.keydown_backstroke()}else{return this.pending_backstroke.addClass("search-choice-focus")}}}};Chosen.prototype.clear_backstroke=function(){if(this.pending_backstroke){this.pending_backstroke.removeClass("search-choice-focus")}return this.pending_backstroke=null};Chosen.prototype.keydown_checker=function(evt){var stroke,_ref1;stroke=(_ref1=evt.which)!=null?_ref1:evt.keyCode;this.search_field_scale();if(stroke!==8&&this.pending_backstroke){this.clear_backstroke()}switch(stroke){case 8:this.backstroke_length=this.search_field.val().length;break;case 9:if(this.results_showing&&!this.is_multiple){this.result_select(evt)}this.mouse_on_container=false;break;case 13:evt.preventDefault();break;case 38:evt.preventDefault();this.keyup_arrow();break;case 40:evt.preventDefault();this.keydown_arrow();break}};Chosen.prototype.search_field_scale=function(){var div,f_width,h,style,style_block,styles,w,_i,_len;if(this.is_multiple){h=0;w=0;style_block="position:absolute; left: -1000px; top: -1000px; display:none;";styles=["font-size","font-style","font-weight","font-family","line-height","text-transform","letter-spacing"];for(_i=0,_len=styles.length;_i<_len;_i++){style=styles[_i];style_block+=style+":"+this.search_field.css(style)+";"}div=$("<div />",{style:style_block});div.text(this.search_field.val());$("body").append(div);w=div.width()+25;div.remove();f_width=this.container.outerWidth();if(w>f_width-10){w=f_width-10}return this.search_field.css({width:w+"px"})}};return Chosen}(AbstractChosen)}).call(this);(function($){var ver="Lite-1.0";$.fn.cycle=function(options){return this.each(function(){options=options||{};if(this.cycleTimeout)clearTimeout(this.cycleTimeout);this.cycleTimeout=0;this.cyclePause=0;var $cont=$(this);var $slides=options.slideExpr?$(options.slideExpr,this):$cont.children();var els=$slides.get();if(els.length<2){return}var opts=$.extend({},$.fn.cycle.defaults,options||{},$.metadata?$cont.metadata():$.meta?$cont.data():{});opts.before=opts.before?[opts.before]:[];opts.after=opts.after?[opts.after]:[];opts.after.unshift(function(){opts.busy=0});var cls=this.className;opts.width=parseInt((cls.match(/w:(\d+)/)||[])[1])||opts.width;opts.height=parseInt((cls.match(/h:(\d+)/)||[])[1])||opts.height;opts.timeout=parseInt((cls.match(/t:(\d+)/)||[])[1])||opts.timeout;if($cont.css("position")=="static")$cont.css("position","relative");if(opts.width)$cont.width(opts.width);if(opts.height&&opts.height!="auto")$cont.height(opts.height);var first=0;$slides.css({position:"absolute",top:0,left:0}).hide().each(function(i){$(this).css("z-index",els.length-i)});$(els[first]).css("opacity",1).show();if($.browser.msie)els[first].style.removeAttribute("filter");if(opts.fit&&opts.width)$slides.width(opts.width);if(opts.fit&&opts.height&&opts.height!="auto")$slides.height(opts.height);if(opts.pause)$cont.hover(function(){this.cyclePause=1},function(){this.cyclePause=0});$.fn.cycle.transitions.fade($cont,$slides,opts);$slides.each(function(){var $el=$(this);this.cycleH=opts.fit&&opts.height?opts.height:$el.height();this.cycleW=opts.fit&&opts.width?opts.width:$el.width()});$slides.not(":eq("+first+")").css({opacity:0});if(opts.cssFirst)$($slides[first]).css(opts.cssFirst);if(opts.timeout){if(opts.speed.constructor==String)opts.speed={slow:600,fast:200}[opts.speed]||400;if(!opts.sync)opts.speed=opts.speed/2;while(opts.timeout-opts.speed<250)opts.timeout+=opts.speed}opts.speedIn=opts.speed;opts.speedOut=opts.speed;opts.slideCount=els.length;opts.currSlide=first;opts.nextSlide=1;var e0=$slides[first];if(opts.before.length)opts.before[0].apply(e0,[e0,e0,opts,true]);if(opts.after.length>1)opts.after[1].apply(e0,[e0,e0,opts,true]);if(opts.click&&!opts.next)opts.next=opts.click;if(opts.next)$(opts.next).bind("click",function(){return advance(els,opts,opts.rev?-1:1)});if(opts.prev)$(opts.prev).bind("click",function(){return advance(els,opts,opts.rev?1:-1)});if(opts.timeout)this.cycleTimeout=setTimeout(function(){go(els,opts,0,!opts.rev)},opts.timeout+(opts.delay||0))})};function go(els,opts,manual,fwd){if(opts.busy)return;var p=els[0].parentNode,curr=els[opts.currSlide],next=els[opts.nextSlide];if(p.cycleTimeout===0&&!manual)return;if(manual||!p.cyclePause){if(opts.before.length)$.each(opts.before,function(i,o){o.apply(next,[curr,next,opts,fwd])});var after=function(){if($.browser.msie)this.style.removeAttribute("filter");$.each(opts.after,function(i,o){o.apply(next,[curr,next,opts,fwd])})};if(opts.nextSlide!=opts.currSlide){opts.busy=1;$.fn.cycle.custom(curr,next,opts,after)}var roll=opts.nextSlide+1==els.length;opts.nextSlide=roll?0:opts.nextSlide+1;opts.currSlide=roll?els.length-1:opts.nextSlide-1}if(opts.timeout)p.cycleTimeout=setTimeout(function(){go(els,opts,0,!opts.rev)},opts.timeout)}function advance(els,opts,val){var p=els[0].parentNode,timeout=p.cycleTimeout;if(timeout){clearTimeout(timeout);p.cycleTimeout=0}opts.nextSlide=opts.currSlide+val;if(opts.nextSlide<0){opts.nextSlide=els.length-1}else if(opts.nextSlide>=els.length){opts.nextSlide=0}go(els,opts,1,val>=0);return false}$.fn.cycle.custom=function(curr,next,opts,cb){var $l=$(curr),$n=$(next);$n.css({opacity:0});var fn=function(){$n.animate({opacity:1},opts.speedIn,opts.easeIn,cb)};$l.animate({opacity:0},opts.speedOut,opts.easeOut,function(){$l.css({display:"none"});if(!opts.sync)fn()});if(opts.sync)fn()};$.fn.cycle.transitions={fade:function($cont,$slides,opts){$slides.not(":eq(0)").css("opacity",0);opts.before.push(function(){$(this).show()})}};$.fn.cycle.ver=function(){return ver};$.fn.cycle.defaults={timeout:4e3,speed:1e3,next:null,prev:null,before:null,after:null,height:"auto",sync:1,fit:0,pause:0,delay:0,slideExpr:null}})(jQuery);(function($){$.fn.dcDrilldown=function(options){var defaults={$closeElement:null,$container:null,classWrapper:"dd-wrapper",classMenu:"dd-menu",classParent:"dd-parent",classParentLink:"dd-parent-a",classActive:"active",classHeader:"dd-header",eventType:"click",hoverDelay:300,speed:"slow",saveState:true,showCount:true,classCount:"dd-count",classIcon:"dd-icon",linkType:"backlink",resetText:"All",headerTag:"h3",defaultText:"Select Option",includeHdr:true,includeTextModeOption:false,linkHover:"link-hover"};var options=$.extend(defaults,options);return this.each(function(options){var $dcDrilldownObj=this;$($dcDrilldownObj).addClass(defaults.classMenu);var $wrapper='<div class="'+defaults.classWrapper+'" />';$($dcDrilldownObj).wrap($wrapper);var $dcWrapper=$($dcDrilldownObj).parent();var objIndex=$($dcWrapper).index("."+defaults.classWrapper);var idHeader=defaults.classHeader+"-"+objIndex;var idWrapper=defaults.classWrapper+"-"+objIndex;$($dcWrapper).attr("id",idWrapper);var $header='<div id="'+idHeader+'" class="'+defaults.classHeader+'"></div>';setUpDrilldown();if(defaults.saveState==true){var cookieId=defaults.classWrapper+"-"+objIndex;checkCookie(cookieId,$dcDrilldownObj)}resetDrilldown($dcDrilldownObj,$dcWrapper);if(defaults.includeTextModeOption){var $a=$("<a />",{class:"text-only",tabindex:"0",html:"Text Mode"});$a.click(function(){$(".dd-menu, .text-mode").toggleClass("dd-menu text-mode");var text=$(".text-only").text();$(".text-only").text(text=="Text Mode"?"Back to Menu Mode":"Text Mode")});if(defaults.$container){defaults.$container.prepend($a)}else{$($dcDrilldownObj).parent().parent().parent().parent().prepend($a)}}$("li a",$dcDrilldownObj).click(function(e){$link=this;$activeLi=$(this).parent("li").stop();$siblingsLi=$($activeLi).siblings();if($("> ul",$activeLi).length){if($($link).hasClass(defaults.classActive)){$("ul a",$activeLi).removeClass(defaults.classActive);resetDrilldown($dcDrilldownObj,$dcWrapper)}else{actionDrillDown($activeLi,$dcWrapper,$dcDrilldownObj)}}$($dcDrilldownObj).trigger("change");if($(this).next("ul").length>0){e.preventDefault()}});function setUpDrilldown(){$arrow='<span class="'+defaults.classIcon+'"></span>';$($dcDrilldownObj).before($header);$($dcDrilldownObj).wrap('<div class="dd-content"></div>');var totalWidth=$($dcDrilldownObj).outerWidth();totalWidth+="px";var itemHeight=$("li",$dcDrilldownObj).outerHeight(true);var objUl=$($dcDrilldownObj).find("ul");var maxItems=findMaxHeight(objUl);var maxUl=$($dcDrilldownObj).find('ul[rel="'+maxItems+'"]');var getIndex=findMaxIndex(maxUl);if(defaults.linkType=="link"){menuHeight=itemHeight*(maxItems+getIndex)}else{menuHeight=itemHeight*maxItems}$("li",$dcDrilldownObj).each(function(){if($("> ul",this).length){$(this).addClass(defaults.classParent);$("> a",this).addClass(defaults.classParentLink).append($arrow);if(defaults.showCount==true){var parentLink=$("a:not(."+defaults.classParentLink+")",this);var countParent=parseInt($(parentLink).length);getCount=countParent;$("> a",this).append(' <span class="'+defaults.classCount+'">('+getCount+")</span>")}}});$("ul",$dcWrapper).each(function(){$("li:last",this).addClass("last")});$("> ul > li:last",$dcWrapper).addClass("last");if(defaults.linkType=="link"){$(objUl).css("top",itemHeight+"px")}}$("#"+idHeader).off("click").on("click",function(e){if($(this).hasClass("link-back")){linkIndex=linkIndex-2;$("a."+defaults.classActive+":last",$dcDrilldownObj).removeClass(defaults.classActive)}else{var linkIndex=parseInt($(this).index("#"+idHeader+" a"));if(linkIndex==0){$("a",$dcDrilldownObj).removeClass(defaults.classActive)}else{linkIndex=linkIndex-1;$("a."+defaults.classActive+":gt("+linkIndex+")",$dcDrilldownObj).removeClass(defaults.classActive)}}resetDrilldown($dcDrilldownObj,$dcWrapper);e.preventDefault()})});function findMaxHeight(element){var maxValue=undefined;$(element).each(function(){var val=parseInt($("> li",this).length);$(this).attr("rel",val);if(maxValue===undefined||maxValue<val){maxValue=val}});return maxValue}function findMaxIndex(element){var maxIndex=undefined;$(element).each(function(){var val=parseInt($(this).parents("li").length);if(maxIndex===undefined||maxIndex<val){maxIndex=val}});return maxIndex}function checkCookie(cookieId,obj){var cookieVal=$.cookie(cookieId);if(cookieVal!=null){var activeArray=cookieVal.split(",");$.each(activeArray,function(index,value){var $cookieLi=$("li:eq("+value+")",obj);$("> a",$cookieLi).addClass(defaults.classActive)})}}function actionDrillDown(element,wrapper,obj){var $header=$("."+defaults.classHeader,wrapper);var getNewBreadcrumb=$("h3",$header).html();var getNewHeaderText=$("> a",element).html();if(defaults.linkType=="breadcrumb"){if(!$("ul",$header).length){$($header).prepend("<ul></ul>")}if(getNewBreadcrumb==defaults.defaultText){$("ul",$header).append('<li><a href="#" class="first">'+defaults.resetText+"</a></li>")}else{$("ul",$header).append('<li><a href="#">'+getNewBreadcrumb+"</a></li>")}}if(defaults.linkType=="backlink"){if(!$("a",$header).length){$($header).prepend('<ul><li><a href="#" class="link-back">Back</a></li></ul>')}else{$(".link-back",$header).html("Back")}}if(defaults.linkType=="link"){if(!$("a",$header).length){$($header).prepend('<ul><li><a href="#" class="first">'+defaults.resetText+"</a></li></ul>")}}updateHeader($header,getNewHeaderText);var activeLink=$("> a",element);$(activeLink).addClass(defaults.classActive);$("> ul li",element).show();if(element.hasClass("map-boundaries__menu-tab")){element.addClass("boundaries-is-active")}element.children("ul").addClass("is-active");element.addClass("is-active");$("> ul",element).animate({left:0},defaults.speed);var $siblingsLi=$(element).siblings();$($siblingsLi).hide();$($siblingsLi).removeClass("is-active");if(defaults.linkType!="link"){$(activeLink).hide()}if(defaults.saveState==true){var cookieId=$(wrapper).attr("id");createCookie(cookieId,obj)}}function actionDrillUp(element,obj,wrapper){var $header=$("."+defaults.classHeader,wrapper);var activeLink=$("> a",element);var checklength=$("."+defaults.classActive,wrapper).length;var activeIndex=$(activeLink).index("."+defaults.classActive,wrapper);var totalWidth=$(obj).outerWidth(true);$("ul",element).css("left",totalWidth+"px");$(activeLink).addClass(defaults.classActive);$("> ul li",element).show();$("a",element).show();var getNewHeaderText=$("> a",element).html();$("h3",$header).html(getNewHeaderText);if(defaults.linkType=="breadcrumb"){var breadcrumbIndex=activeIndex-1;$("a:gt("+activeIndex+")",$header).remove()}}function updateHeader(obj,html){if(defaults.includeHdr==true){if($("h3",obj).length){$("h3",obj).html(html)}else{$(obj).append("<"+defaults.headerTag+">"+html+"</"+defaults.headerTag+">")}}}function resetDrilldown(obj,wrapper){var $header=$("."+defaults.classHeader,wrapper);$("ul",$header).remove();$("a",$header).remove();$("li",obj).show();$("a",obj).show();var totalWidth=$(obj).outerWidth(true);if(defaults.linkType=="link"){if($("a."+defaults.classActive+":last",obj).parent("li").length){var lastActive=$("a."+defaults.classActive+":last",obj).parent("li");$("ul",lastActive).css("left",totalWidth+"px")}else{$("ul",obj).css("left",totalWidth+"px")}}else{$("ul",obj).css("left",totalWidth+"px")}$(wrapper).find("ul.is-active").removeClass("is-active");$(wrapper).find("li.is-active").removeClass("is-active");$(wrapper).find("li.boundaries-is-active").removeClass("boundaries-is-active");updateHeader($header,defaults.defaultText);if(defaults.saveState==true){var cookieId=$(wrapper).attr("id");createCookie(cookieId,obj)}$("a."+defaults.classActive,obj).each(function(i){var $activeLi=$(this).parent("li").stop();actionDrillDown($activeLi,wrapper,obj)});$(obj).trigger("change")}function createCookie(cookieId,obj){var activeIndex=[];$("a."+defaults.classActive,obj).each(function(i){var $arrayItem=$(this).parent("li");var itemIndex=$("li",obj).index($arrayItem);activeIndex.push(itemIndex)});$.cookie(cookieId,activeIndex,{path:"/"})}function kill(){$(document).unbind("keydown")}}})(jQuery);(function($,undef){if($.fn.dotdotdot){return}$.fn.dotdotdot=function(o){if(this.length==0){$.fn.dotdotdot.debug('No element found for "'+this.selector+'".');return this}if(this.length>1){return this.each(function(){$(this).dotdotdot(o)})}var $dot=this;var orgContent=$dot.contents();if($dot.data("dotdotdot")){$dot.trigger("destroy.dot")}$dot.data("dotdotdot-style",$dot.attr("style")||"");$dot.css("word-wrap","break-word");if($dot.css("white-space")==="nowrap"){$dot.css("white-space","normal")}$dot.bind_events=function(){$dot.bind("update.dot",function(e,c){$dot.removeClass("is-truncated");e.preventDefault();e.stopPropagation();switch(typeof opts.height){case"number":opts.maxHeight=opts.height;break;case"function":opts.maxHeight=opts.height.call($dot[0]);break;default:opts.maxHeight=getTrueInnerHeight($dot);break}opts.maxHeight+=opts.tolerance;if(typeof c!="undefined"){if(typeof c=="string"||"nodeType"in c&&c.nodeType===1){c=$("<div />").append(c).contents()}if(c instanceof $){orgContent=c}}$inr=$dot.wrapInner('<div class="dotdotdot" />').children();$inr.contents().detach().end().append(orgContent.clone(true)).find("br").replaceWith("  <br />  ").end().css({height:"auto",width:"auto",border:"none",padding:0,margin:0});var after=false,trunc=false;if(conf.afterElement){after=conf.afterElement.clone(true);after.show();conf.afterElement.detach()}if(test($inr,opts)){if(opts.wrap=="children"){trunc=children($inr,opts,after)}else{trunc=ellipsis($inr,$dot,$inr,opts,after)}}$inr.replaceWith($inr.contents());$inr=null;if($.isFunction(opts.callback)){opts.callback.call($dot[0],trunc,orgContent)}conf.isTruncated=trunc;return trunc}).bind("isTruncated.dot",function(e,fn){e.preventDefault();e.stopPropagation();if(typeof fn=="function"){fn.call($dot[0],conf.isTruncated)}return conf.isTruncated}).bind("originalContent.dot",function(e,fn){e.preventDefault();e.stopPropagation();if(typeof fn=="function"){fn.call($dot[0],orgContent)}return orgContent}).bind("destroy.dot",function(e){e.preventDefault();e.stopPropagation();$dot.unwatch().unbind_events().contents().detach().end().append(orgContent).attr("style",$dot.data("dotdotdot-style")||"").removeClass("is-truncated").data("dotdotdot",false)});return $dot};$dot.unbind_events=function(){$dot.unbind(".dot");return $dot};$dot.watch=function(){$dot.unwatch();if(opts.watch=="window"){var $window=$(window),_wWidth=$window.width(),_wHeight=$window.height();$window.bind("resize.dot"+conf.dotId,function(){if(_wWidth!=$window.width()||_wHeight!=$window.height()||!opts.windowResizeFix){_wWidth=$window.width();_wHeight=$window.height();if(watchInt){clearInterval(watchInt)}watchInt=setTimeout(function(){$dot.trigger("update.dot")},100)}})}else{watchOrg=getSizes($dot);watchInt=setInterval(function(){if($dot.is(":visible")){var watchNew=getSizes($dot);if(watchOrg.width!=watchNew.width||watchOrg.height!=watchNew.height){$dot.trigger("update.dot");watchOrg=watchNew}}},500)}return $dot};$dot.unwatch=function(){$(window).unbind("resize.dot"+conf.dotId);if(watchInt){clearInterval(watchInt)}return $dot};var opts=$.extend(true,{},$.fn.dotdotdot.defaults,o),conf={},watchOrg={},watchInt=null,$inr=null;if(!(opts.lastCharacter.remove instanceof Array)){opts.lastCharacter.remove=$.fn.dotdotdot.defaultArrays.lastCharacter.remove}if(!(opts.lastCharacter.noEllipsis instanceof Array)){opts.lastCharacter.noEllipsis=$.fn.dotdotdot.defaultArrays.lastCharacter.noEllipsis}conf.afterElement=getElement(opts.after,$dot);conf.isTruncated=false;conf.dotId=dotId++;$dot.data("dotdotdot",true).bind_events().trigger("update.dot");if(opts.watch){$dot.watch()}return $dot};$.fn.dotdotdot.defaults={ellipsis:"... ",wrap:"word",fallbackToLetter:true,lastCharacter:{},tolerance:0,callback:null,after:null,height:null,watch:false,windowResizeFix:true};$.fn.dotdotdot.defaultArrays={lastCharacter:{remove:[" ","　",",",";",".","!","?"],noEllipsis:[]}};$.fn.dotdotdot.debug=function(msg){};var dotId=1;function children($elem,o,after){var $elements=$elem.children(),isTruncated=false;$elem.empty();for(var a=0,l=$elements.length;a<l;a++){var $e=$elements.eq(a);$elem.append($e);if(after){$elem.append(after)}if(test($elem,o)){$e.remove();isTruncated=true;break}else{if(after){after.detach()}}}return isTruncated}function ellipsis($elem,$d,$i,o,after){var isTruncated=false;var notx="a, table, thead, tbody, tfoot, tr, col, colgroup, object, embed, param, ol, ul, dl, blockquote, select, optgroup, option, textarea, script, style";var noty="script, .dotdotdot-keep";$elem.contents().detach().each(function(){var e=this,$e=$(e);if(typeof e=="undefined"){return true}else if($e.is(noty)){$elem.append($e)}else if(isTruncated){return true}else{$elem.append($e);if(after&&!$e.is(o.after)&&!$e.find(o.after).length){$elem[$elem.is(notx)?"after":"append"](after)}if(test($i,o)){if(e.nodeType==3){isTruncated=ellipsisElement($e,$d,$i,o,after)}else{isTruncated=ellipsis($e,$d,$i,o,after)}}if(!isTruncated){if(after){after.detach()}}}});$d.addClass("is-truncated");return isTruncated}function ellipsisElement($e,$d,$i,o,after){var e=$e[0];if(!e){return false}var txt=getTextContent(e),space=txt.indexOf(" ")!==-1?" ":"　",separator=o.wrap=="letter"?"":space,textArr=txt.split(separator),position=-1,midPos=-1,startPos=0,endPos=textArr.length-1;if(o.fallbackToLetter&&startPos==0&&endPos==0){separator="";textArr=txt.split(separator);endPos=textArr.length-1}while(startPos<=endPos&&!(startPos==0&&endPos==0)){var m=Math.floor((startPos+endPos)/2);if(m==midPos){break}midPos=m;setTextContent(e,textArr.slice(0,midPos+1).join(separator)+o.ellipsis);$i.children().each(function(){$(this).toggle().toggle()});if(!test($i,o)){position=midPos;startPos=midPos}else{endPos=midPos;if(o.fallbackToLetter&&startPos==0&&endPos==0){separator="";textArr=textArr[0].split(separator);position=-1;midPos=-1;startPos=0;endPos=textArr.length-1}}}if(position!=-1&&!(textArr.length==1&&textArr[0].length==0)){txt=addEllipsis(textArr.slice(0,position+1).join(separator),o);setTextContent(e,txt)}else{var $w=$e.parent();$e.detach();var afterLength=after&&after.closest($w).length?after.length:0;if($w.contents().length>afterLength){e=findLastTextNode($w.contents().eq(-1-afterLength),$d)}else{e=findLastTextNode($w,$d,true);if(!afterLength){$w.detach()}}if(e){txt=addEllipsis(getTextContent(e),o);setTextContent(e,txt);if(afterLength&&after){var $parent=after.parent();$(e).parent().append(after);if(!$.trim($parent.html())){$parent.remove()}}}}return true}function test($i,o){return $i.innerHeight()>o.maxHeight}function addEllipsis(txt,o){while($.inArray(txt.slice(-1),o.lastCharacter.remove)>-1){txt=txt.slice(0,-1)}if($.inArray(txt.slice(-1),o.lastCharacter.noEllipsis)<0){txt+=o.ellipsis}return txt}function getSizes($d){return{width:$d.innerWidth(),height:$d.innerHeight()}}function setTextContent(e,content){if(e.innerText){e.innerText=content}else if(e.nodeValue){e.nodeValue=content}else if(e.textContent){e.textContent=content}}function getTextContent(e){if(e.innerText){return e.innerText}else if(e.nodeValue){return e.nodeValue}else if(e.textContent){return e.textContent}else{return""}}function getPrevNode(n){do{n=n.previousSibling}while(n&&n.nodeType!==1&&n.nodeType!==3);return n}function findLastTextNode($el,$top,excludeCurrent){var e=$el&&$el[0],p;if(e){if(!excludeCurrent){if(e.nodeType===3){return e}if($.trim($el.text())){return findLastTextNode($el.contents().last(),$top)}}p=getPrevNode(e);while(!p){$el=$el.parent();if($el.is($top)||!$el.length){return false}p=getPrevNode($el[0])}if(p){return findLastTextNode($(p),$top)}}return false}function getElement(e,$i){if(!e){return false}if(typeof e==="string"){e=$(e,$i);return e.length?e:false}return!e.jquery?false:e}function getTrueInnerHeight($el){var h=$el.innerHeight(),a=["paddingTop","paddingBottom"];for(var z=0,l=a.length;z<l;z++){var m=parseInt($el.css(a[z]),10);if(isNaN(m)){m=0}h-=m}return h}var _orgHtml=$.fn.html;$.fn.html=function(str){if(str!=undef&&!$.isFunction(str)&&this.data("dotdotdot")){return this.trigger("update",[str])}return _orgHtml.apply(this,arguments)};var _orgText=$.fn.text;$.fn.text=function(str){if(str!=undef&&!$.isFunction(str)&&this.data("dotdotdot")){str=$("<div />").text(str).html();return this.trigger("update",[str])}return _orgText.apply(this,arguments)}})(jQuery);jQuery(document).ready(function($){$(".dot-ellipsis").each(function(){var watch_window=$(this).hasClass("dot-resize-update");var watch_timer=$(this).hasClass("dot-timer-update");var height=0;var classList=$(this).attr("class").split(/\s+/);$.each(classList,function(index,item){var matchResult=item.match(/^dot-height-(\d+)$/);if(matchResult!==null)height=Number(matchResult[1])});var x=new Object;if(watch_timer)x.watch=true;if(watch_window)x.watch="window";if(height>0)x.height=height;$(this).dotdotdot(x)})});jQuery(window).on("load",function(){jQuery(".dot-ellipsis.dot-load-update").trigger("update.dot")});(function($,window,document){"use strict";var msVersion=navigator.userAgent.match(/MSIE ([0-9]{1,}[\.0-9]{0,})/),msie=!!msVersion,ie6=msie&&parseFloat(msVersion[1])<7,isMobile=navigator.userAgent.match(/iPad|iPhone|Android|IEMobile|BlackBerry/i),methods={},lists=[],keyMap={left:37,up:38,right:39,down:40,enter:13,tab:9,zero:48,z:90,last:221},dropdownTemplate=['<div class="dk_container" id="dk_container_{{ id }}" tabindex="{{ tabindex }}">','<a class="dk_toggle">','<span class="dk_label">{{ label }}</span>',"</a>",'<div class="dk_options">','<ul class="dk_options_inner">',"</ul>","</div>","</div>"].join(""),optionTemplate='<li class="{{ current }} {{ disabled }}"><a data-dk-dropdown-value="{{ value }}">{{ text }}</a></li>',defaults={startSpeed:400,theme:false,changes:false,syncReverse:true,nativeMobile:true},$opened=null,$focused=null,updateFields=function(option,$dk,reset){var value,label,data,$select;value=option.attr("data-dk-dropdown-value");label=option.text();data=$dk.data("dropkick");$select=data.$select;$select.val(value).trigger("change");$dk.find(".dk_label").text(label);reset=reset||false;if(data.settings.change&&!reset&&!data.settings.syncReverse){data.settings.change.call($select,value,label)}},closeDropdown=function($dk){$dk.removeClass("dk_open");$opened=null},enoughSpace=function($dk){var $dk_toggle=$dk.find(".dk_toggle"),optionsHeight=$dk.find(".dk_options").outerHeight(),spaceBelow=$(window).height()-$dk_toggle.outerHeight()-$dk_toggle.offset().top+$(window).scrollTop(),spaceAbove=$dk_toggle.offset().top-$(window).scrollTop();return!(optionsHeight<spaceAbove)?true:optionsHeight<spaceBelow},setScrollPos=function($dk,anchor,e){var wrapper=$dk.find(".dk_options_inner"),height=anchor.prevAll("li").outerHeight()*anchor.prevAll("li").length,minHeight=wrapper.scrollTop(),maxHeight=wrapper.height()+wrapper.scrollTop()-anchor.outerHeight();if(e&&e.type==="keydown"||(height<minHeight||height>maxHeight)){wrapper.scrollTop(height)}},openDropdown=function($dk,e){var hasSpace=enoughSpace($dk);$dk.find(".dk_options").css({top:hasSpace?$dk.find(".dk_toggle").outerHeight()-1:"",bottom:hasSpace?"":$dk.find(".dk_toggle").outerHeight()-1});$opened=$dk.toggleClass("dk_open");setScrollPos($dk,$dk.find(".dk_option_current"),e)},setCurrent=function($current,$dk,e){$dk.find(".dk_option_current").removeClass("dk_option_current");$current.addClass("dk_option_current");setScrollPos($dk,$current,e)},handleKeyBoardNav=function(e,$dk){var code=e.keyCode,data=$dk.data("dropkick"),letter=String.fromCharCode(code),options=$dk.find(".dk_options"),open=$dk.hasClass("dk_open"),lis=options.find("li"),current=$dk.find(".dk_option_current"),first=lis.first(),last=lis.last(),next,prev,now,list,i,l,$a;switch(code){case keyMap.enter:if(open){if(!current.hasClass("disabled")){updateFields(current.find("a"),$dk);closeDropdown($dk)}}else{openDropdown($dk,e)}e.preventDefault();break;case keyMap.tab:if(open){updateFields(current.find("a"),$dk);closeDropdown($dk)}break;case keyMap.up:prev=current.prev("li");if(open){if(prev.length){setCurrent(prev,$dk,e)}else{setCurrent(last,$dk,e)}}else{openDropdown($dk,e)}e.preventDefault();break;case keyMap.down:if(open){next=current.next("li").first();if(next.length){setCurrent(next,$dk,e)}else{setCurrent(first,$dk,e)}}else{openDropdown($dk,e)}e.preventDefault();break;default:break}if(code>=keyMap.zero&&code<=keyMap.z){now=(new Date).getTime();if(data.finder===null){data.finder=letter.toUpperCase();data.timer=now}else{if(now>parseInt(data.timer,10)+1e3){data.finder=letter.toUpperCase();data.timer=now}else{data.finder=data.finder+letter.toUpperCase();data.timer=now}}list=lis.find("a");for(i=0,l=list.length;i<l;i++){$a=$(list[i]);if($a.html().toUpperCase().indexOf(data.finder)===0){updateFields($a,$dk);setCurrent($a.parent(),$dk,e);break}}$dk.data("dropkick",data)}},notBlank=function(text){return $.trim(text).length>0?text:false},build=function(tpl,view){var template=tpl.replace("{{ id }}",view.id).replace("{{ label }}",view.label).replace("{{ tabindex }}",view.tabindex),options=[],$dk,i,l,$option,oTemplate;if(view.options&&view.options.length){for(i=0,l=view.options.length;i<l;i++){$option=$(view.options[i]);i===0&&$option.attr("selected")!==undefined&&$option.attr("disabled")!==undefined?oTemplate=null:oTemplate=optionTemplate.replace("{{ value }}",$option.val()).replace("{{ current }}",notBlank($option.val())===view.value?"dk_option_current":"").replace("{{ disabled }}",$option.attr("disabled")!==undefined?"disabled":"").replace("{{ text }}",$.trim($option.html()));options[options.length]=oTemplate}}$dk=$(template);$dk.find(".dk_options_inner").html(options.join(""));return $dk};if(!ie6){
$(".cbMatchPopupContainer").addClass("dk_fouc")}methods.init=function(settings){settings=$.extend({},defaults,settings);return this.each(function(){var $select=$(this),$original=$select.find(":selected").first(),$options=$select.find("option"),data={},id=$select.attr("id")||$select.attr("name"),width=settings.width||$select.outerWidth(),tabindex=$select.attr("tabindex")||"0",$dk=false,theme,$form;if(data.id){return $select}data.settings=settings;data.tabindex=tabindex;data.id=id;data.$original=$original;data.$select=$select;data.value=notBlank($select.val())||notBlank($original.attr("value"));data.label=$original.text();data.options=$options;$dk=build(dropdownTemplate,data);$dk.find(".dk_toggle").css({width:width+"px"});$select.before($dk).appendTo($dk);$select.parent().parent().append($select);$select.hide();$dk=$('div[id="dk_container_'+id+'"]').fadeIn(settings.startSpeed);theme=settings.theme||"default";$dk.addClass("dk_theme_"+theme);data.theme=theme;data.$dk=$dk;$select.data("dropkick",data);$dk.addClass($select.attr("class"));$dk.data("dropkick",data);lists[lists.length]=$select;$dk.bind("focus.dropkick",function(){$focused=$dk.addClass("dk_focus")}).bind("blur.dropkick",function(){$dk.removeClass("dk_focus");$focused=null});if(isMobile&&data.settings.nativeMobile){$dk.addClass("dk_mobile")}if(data.settings.syncReverse){$select.on("change",function(e){var value=$select.val(),option=$('a[data-dk-dropdown-value="'+value+'"]',$dk),label=option.text();$dk.find(".dk_label").text(label);data.settings.change&&data.settings.change.call($select,value,label);setCurrent(option.parent(),$dk,e)})}if($select.attr("form")||$select.closest("form").length){$form=$select.attr("form")?$("#"+$select.attr("form").replace(" ",", #")):$select.closest("form");$form.on("reset",function(){$select.dropkick("reset")})}})};methods.theme=function(newTheme){var data=$(this).data("dropkick"),$dk=data.$dk,oldtheme="dk_theme_"+data.theme;$dk.removeClass(oldtheme).addClass("dk_theme_"+newTheme);data.theme=newTheme};methods.reset=function(){return this.each(function(){var data=$(this).data("dropkick"),$dk=data.$dk,$current=$('a[data-dk-dropdown-value="'+data.value+'"]',$dk);!data.$original.eq(0).prop("selected")&&data.$original.eq(0).prop("selected",true);$dk.find(".dk_label").text(data.label);setCurrent($current.parent(),$dk)})};methods.setValue=function(value){var $dk=$(this).data("dropkick").$dk,$option=$('.dk_options a[data-dk-dropdown-value="'+value+'"]',$dk);if($option.length){updateFields($option,$dk);setCurrent($option.parent(),$dk)}else{console.warn("There is no option with this value in the <select>")}};methods.refresh=function(){return this.each(function(){var data=$(this).data("dropkick"),$select=data.$select,$dk=data.$dk;data.settings.startSpeed=0;$select.removeData("dropkick").insertAfter($dk);$dk.remove();$select.dropkick(data.settings)})};$.fn.dropkick=function(method){if(!ie6){if(methods[method]){return methods[method].apply(this,Array.prototype.slice.call(arguments,1))}if(typeof method==="object"||!method){return methods.init.apply(this,arguments)}}};$(function(){$(document).on(msie?"mousedown":"click",".dk_options a",function(){var $option=$(this),$dk=$option.parents(".dk_container").first();if(!$option.parent().hasClass("disabled")){updateFields($option,$dk);setCurrent($option.parent(),$dk);closeDropdown($dk)}return false});$(document).bind("keydown.dk_nav",function(e){var $dk=null;if($opened){$dk=$opened}else if($focused&&!$opened){$dk=$focused}if($dk){handleKeyBoardNav(e,$dk)}});$(document).on("click",null,function(e){if($opened&&$(e.target).closest(".dk_container").length===0){closeDropdown($opened)}else if($(e.target).is(".dk_toggle, .dk_label")){var $dk=$(e.target).parents(".dk_container").first();if($dk.hasClass("dk_open")){closeDropdown($dk)}else{$opened&&closeDropdown($opened);openDropdown($dk,e)}return false}});var wheelSupport="onwheel"in window?"wheel":"onmousewheel"in document?"mousewheel":"MouseScrollEvent"in window?"DOMMouseScroll MozMousePixelScroll":false;wheelSupport&&$(document).on(wheelSupport,".dk_options_inner",function(event){var delta=event.originalEvent.wheelDelta||-event.originalEvent.deltaY||-event.originalEvent.detail;if(msie){this.scrollTop-=Math.round(delta/10);return false}return delta>0&&this.scrollTop<=0||delta<0&&this.scrollTop>=this.scrollHeight-this.offsetHeight?false:true})})})(jQuery,window,document);(function($,window,document,undefined){"use strict";if($.ui&&$.ui.fancytree){$.ui.fancytree.warn("Fancytree: ignored duplicate include");return}var i,attr,FT=null,TEST_IMG=new RegExp(/\.|\//),REX_HTML=/[&<>"'\/]/g,REX_TOOLTIP=/[<>"'\/]/g,RECURSIVE_REQUEST_ERROR="$recursive_request",ENTITY_MAP={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#39;","/":"&#x2F;"},IGNORE_KEYCODES={16:true,17:true,18:true},SPECIAL_KEYCODES={8:"backspace",9:"tab",10:"return",13:"return",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",59:";",61:"=",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",173:"-",186:";",187:"=",188:",",189:"-",190:".",191:"/",192:"`",219:"[",220:"\\",221:"]",222:"'"},MOUSE_BUTTONS={0:"",1:"left",2:"middle",3:"right"},CLASS_ATTRS="active expanded focus folder lazy radiogroup selected unselectable unselectableIgnore".split(" "),CLASS_ATTR_MAP={},NODE_ATTRS="checkbox expanded extraClasses folder icon key lazy radiogroup refKey selected statusNodeType title tooltip unselectable unselectableIgnore unselectableStatus".split(" "),NODE_ATTR_MAP={},NODE_ATTR_LOWERCASE_MAP={},NONE_NODE_DATA_MAP={active:true,children:true,data:true,focus:true};for(i=0;i<CLASS_ATTRS.length;i++){CLASS_ATTR_MAP[CLASS_ATTRS[i]]=true}for(i=0;i<NODE_ATTRS.length;i++){attr=NODE_ATTRS[i];NODE_ATTR_MAP[attr]=true;if(attr!==attr.toLowerCase()){NODE_ATTR_LOWERCASE_MAP[attr.toLowerCase()]=attr}}function _assert(cond,msg){if(!cond){msg=msg?": "+msg:"";$.error("Fancytree assertion failed"+msg)}}_assert($.ui,"Fancytree requires jQuery UI (http://jqueryui.com)");function consoleApply(method,args){var i,s,fn=window.console?window.console[method]:null;if(fn){try{fn.apply(window.console,args)}catch(e){s="";for(i=0;i<args.length;i++){s+=args[i]}fn(s)}}}function _isNode(x){return!!(x.tree&&x.statusNodeType!==undefined)}function isVersionAtLeast(dottedVersion,major,minor,patch){var i,v,t,verParts=$.map($.trim(dottedVersion).split("."),function(e){return parseInt(e,10)}),testParts=$.map(Array.prototype.slice.call(arguments,1),function(e){return parseInt(e,10)});for(i=0;i<testParts.length;i++){v=verParts[i]||0;t=testParts[i]||0;if(v!==t){return v>t}}return true}function _makeVirtualFunction(methodName,tree,base,extension,extName){var proxy=function(){var prevFunc=tree[methodName],baseFunc=extension[methodName],_local=tree.ext[extName],_super=function(){return prevFunc.apply(tree,arguments)},_superApply=function(args){return prevFunc.apply(tree,args)};return function(){var prevLocal=tree._local,prevSuper=tree._super,prevSuperApply=tree._superApply;try{tree._local=_local;tree._super=_super;tree._superApply=_superApply;return baseFunc.apply(tree,arguments)}finally{tree._local=prevLocal;tree._super=prevSuper;tree._superApply=prevSuperApply}}}();return proxy}function _subclassObject(tree,base,extension,extName){for(var attrName in extension){if(typeof extension[attrName]==="function"){if(typeof tree[attrName]==="function"){tree[attrName]=_makeVirtualFunction(attrName,tree,base,extension,extName)}else if(attrName.charAt(0)==="_"){tree.ext[extName][attrName]=_makeVirtualFunction(attrName,tree,base,extension,extName)}else{$.error("Could not override tree."+attrName+". Use prefix '_' to create tree."+extName+"._"+attrName)}}else{if(attrName!=="options"){tree.ext[extName][attrName]=extension[attrName]}}}}function _getResolvedPromise(context,argArray){if(context===undefined){return $.Deferred(function(){this.resolve()}).promise()}else{return $.Deferred(function(){this.resolveWith(context,argArray)}).promise()}}function _getRejectedPromise(context,argArray){if(context===undefined){return $.Deferred(function(){this.reject()}).promise()}else{return $.Deferred(function(){this.rejectWith(context,argArray)}).promise()}}function _makeResolveFunc(deferred,context){return function(){deferred.resolveWith(context)}}function _getElementDataAsDict($el){var d=$.extend({},$el.data()),json=d.json;delete d.fancytree;delete d.uiFancytree;if(json){delete d.json;d=$.extend(d,json)}return d}function _escapeHtml(s){return(""+s).replace(REX_HTML,function(s){return ENTITY_MAP[s]})}function _escapeTooltip(s){return(""+s).replace(REX_TOOLTIP,function(s){return ENTITY_MAP[s]})}function _makeNodeTitleMatcher(s){s=s.toLowerCase();return function(node){return node.title.toLowerCase().indexOf(s)>=0}}function _makeNodeTitleStartMatcher(s){var reMatch=new RegExp("^"+s,"i");return function(node){return reMatch.test(node.title)}}function FancytreeNode(parent,obj){var i,l,name,cl;this.parent=parent;this.tree=parent.tree;this.ul=null;this.li=null;this.statusNodeType=null;this._isLoading=false;this._error=null;this.data={};for(i=0,l=NODE_ATTRS.length;i<l;i++){name=NODE_ATTRS[i];this[name]=obj[name]}if(this.unselectableIgnore!=null||this.unselectableStatus!=null){this.unselectable=true}if(obj.hideCheckbox){$.error("'hideCheckbox' node option was removed in v2.23.0: use 'checkbox: false'")}if(obj.data){$.extend(this.data,obj.data)}for(name in obj){if(!NODE_ATTR_MAP[name]&&!$.isFunction(obj[name])&&!NONE_NODE_DATA_MAP[name]){this.data[name]=obj[name]}}if(this.key==null){if(this.tree.options.defaultKey){this.key=this.tree.options.defaultKey(this);_assert(this.key,"defaultKey() must return a unique key")}else{this.key="_"+FT._nextNodeKey++}}else{this.key=""+this.key}if(obj.active){_assert(this.tree.activeNode===null,"only one active node allowed");this.tree.activeNode=this}if(obj.selected){this.tree.lastSelectedNode=this}cl=obj.children;if(cl){if(cl.length){this._setChildren(cl)}else{this.children=this.lazy?[]:null}}else{this.children=null}this.tree._callHook("treeRegisterNode",this.tree,true,this)}FancytreeNode.prototype={_findDirectChild:function(ptr){var i,l,cl=this.children;if(cl){if(typeof ptr==="string"){for(i=0,l=cl.length;i<l;i++){if(cl[i].key===ptr){return cl[i]}}}else if(typeof ptr==="number"){return this.children[ptr]}else if(ptr.parent===this){return ptr}}return null},_setChildren:function(children){_assert(children&&(!this.children||this.children.length===0),"only init supported");this.children=[];for(var i=0,l=children.length;i<l;i++){this.children.push(new FancytreeNode(this,children[i]))}},addChildren:function(children,insertBefore){var i,l,pos,origFirstChild=this.getFirstChild(),origLastChild=this.getLastChild(),firstNode=null,nodeList=[];if($.isPlainObject(children)){children=[children]}if(!this.children){this.children=[]}for(i=0,l=children.length;i<l;i++){nodeList.push(new FancytreeNode(this,children[i]))}firstNode=nodeList[0];if(insertBefore==null){this.children=this.children.concat(nodeList)}else{insertBefore=this._findDirectChild(insertBefore);pos=$.inArray(insertBefore,this.children);_assert(pos>=0,"insertBefore must be an existing child");this.children.splice.apply(this.children,[pos,0].concat(nodeList))}if(origFirstChild&&!insertBefore){for(i=0,l=nodeList.length;i<l;i++){nodeList[i].render()}if(origFirstChild!==this.getFirstChild()){origFirstChild.renderStatus()}if(origLastChild!==this.getLastChild()){origLastChild.renderStatus()}}else if(!this.parent||this.parent.ul||this.tr){this.render()}if(this.tree.options.selectMode===3){this.fixSelection3FromEndNodes()}this.triggerModifyChild("add",nodeList.length===1?nodeList[0]:null);return firstNode},addClass:function(className){return this.toggleClass(className,true)},addNode:function(node,mode){if(mode===undefined||mode==="over"){mode="child"}switch(mode){case"after":return this.getParent().addChildren(node,this.getNextSibling());case"before":return this.getParent().addChildren(node,this);case"firstChild":var insertBefore=this.children?this.children[0]:null;return this.addChildren(node,insertBefore);case"child":case"over":return this.addChildren(node)}_assert(false,"Invalid mode: "+mode)},addPagingNode:function(node,mode){var i,n;mode=mode||"child";if(node===false){for(i=this.children.length-1;i>=0;i--){n=this.children[i];if(n.statusNodeType==="paging"){this.removeChild(n)}}this.partload=false;return}node=$.extend({title:this.tree.options.strings.moreData,statusNodeType:"paging",icon:false},node);this.partload=true;return this.addNode(node,mode)},appendSibling:function(node){return this.addNode(node,"after")},applyPatch:function(patch){if(patch===null){this.remove();return _getResolvedPromise(this)}var name,promise,v,IGNORE_MAP={children:true,expanded:true,parent:true};for(name in patch){v=patch[name];if(!IGNORE_MAP[name]&&!$.isFunction(v)){if(NODE_ATTR_MAP[name]){this[name]=v}else{this.data[name]=v}}}if(patch.hasOwnProperty("children")){this.removeChildren();if(patch.children){this._setChildren(patch.children)}}if(this.isVisible()){this.renderTitle();this.renderStatus()}if(patch.hasOwnProperty("expanded")){promise=this.setExpanded(patch.expanded)}else{promise=_getResolvedPromise(this)}return promise},collapseSiblings:function(){return this.tree._callHook("nodeCollapseSiblings",this)},copyTo:function(node,mode,map){return node.addNode(this.toDict(true,map),mode)},countChildren:function(deep){var cl=this.children,i,l,n;if(!cl){return 0}n=cl.length;if(deep!==false){for(i=0,l=n;i<l;i++){n+=cl[i].countChildren()}}return n},debug:function(msg){if(this.tree.options.debugLevel>=2){Array.prototype.unshift.call(arguments,this.toString());consoleApply("log",arguments)}},discard:function(){this.warn("FancytreeNode.discard() is deprecated since 2014-02-16. Use .resetLazy() instead.");return this.resetLazy()},discardMarkup:function(includeSelf){var fn=includeSelf?"nodeRemoveMarkup":"nodeRemoveChildMarkup";this.tree._callHook(fn,this)},findAll:function(match){match=$.isFunction(match)?match:_makeNodeTitleMatcher(match);var res=[];this.visit(function(n){if(match(n)){res.push(n)}});return res},findFirst:function(match){match=$.isFunction(match)?match:_makeNodeTitleMatcher(match);var res=null;this.visit(function(n){if(match(n)){res=n;return false}});return res},_changeSelectStatusAttrs:function(state){var changed=false,opts=this.tree.options,unselectable=FT.evalOption("unselectable",this,this,opts,false),unselectableStatus=FT.evalOption("unselectableStatus",this,this,opts,undefined);if(unselectable&&unselectableStatus!=null){state=unselectableStatus}switch(state){case false:changed=this.selected||this.partsel;this.selected=false;this.partsel=false;break;case true:changed=!this.selected||!this.partsel;this.selected=true;this.partsel=true;break;case undefined:changed=this.selected||!this.partsel;this.selected=false;this.partsel=true;break;default:_assert(false,"invalid state: "+state)}if(changed){this.renderStatus()}return changed},fixSelection3AfterClick:function(callOpts){var flag=this.isSelected();this.visit(function(node){node._changeSelectStatusAttrs(flag)});this.fixSelection3FromEndNodes(callOpts)},fixSelection3FromEndNodes:function(callOpts){var opts=this.tree.options;_assert(opts.selectMode===3,"expected selectMode 3");function _walk(node){var i,l,child,s,state,allSelected,someSelected,unselIgnore,unselState,children=node.children;if(children&&children.length){allSelected=true;someSelected=false;for(i=0,l=children.length;i<l;i++){child=children[i];s=_walk(child);unselIgnore=FT.evalOption("unselectableIgnore",child,child,opts,false);if(!unselIgnore){if(s!==false){someSelected=true}if(s!==true){allSelected=false}}}state=allSelected?true:someSelected?undefined:false}else{unselState=FT.evalOption("unselectableStatus",node,node,opts,undefined);state=unselState==null?!!node.selected:!!unselState}node._changeSelectStatusAttrs(state);return state}_walk(this);this.visitParents(function(node){var i,l,child,state,unselIgnore,unselState,children=node.children,allSelected=true,someSelected=false;for(i=0,l=children.length;i<l;i++){child=children[i];unselIgnore=FT.evalOption("unselectableIgnore",child,child,opts,false);if(!unselIgnore){unselState=FT.evalOption("unselectableStatus",child,child,opts,undefined);state=unselState==null?!!child.selected:!!unselState;if(state||child.partsel){someSelected=true}if(!state){allSelected=false}}}state=allSelected?true:someSelected?undefined:false;node._changeSelectStatusAttrs(state)})},fromDict:function(dict){for(var name in dict){if(NODE_ATTR_MAP[name]){this[name]=dict[name]}else if(name==="data"){$.extend(this.data,dict.data)}else if(!$.isFunction(dict[name])&&!NONE_NODE_DATA_MAP[name]){this.data[name]=dict[name]}}if(dict.children){this.removeChildren();this.addChildren(dict.children)}this.renderTitle()},getChildren:function(){if(this.hasChildren()===undefined){return undefined}return this.children},getFirstChild:function(){return this.children?this.children[0]:null},getIndex:function(){return $.inArray(this,this.parent.children)},getIndexHier:function(separator,digits){separator=separator||".";var s,res=[];$.each(this.getParentList(false,true),function(i,o){s=""+(o.getIndex()+1);if(digits){s=("0000000"+s).substr(-digits)}res.push(s)});return res.join(separator)},getKeyPath:function(excludeSelf){var path=[],sep=this.tree.options.keyPathSeparator;this.visitParents(function(n){if(n.parent){path.unshift(n.key)}},!excludeSelf);return sep+path.join(sep)},getLastChild:function(){return this.children?this.children[this.children.length-1]:null},getLevel:function(){var level=0,dtn=this.parent;while(dtn){level++;dtn=dtn.parent}return level},getNextSibling:function(){if(this.parent){var i,l,ac=this.parent.children;for(i=0,l=ac.length-1;i<l;i++){if(ac[i]===this){return ac[i+1]}}}return null},getParent:function(){return this.parent},getParentList:function(includeRoot,includeSelf){var l=[],dtn=includeSelf?this:this.parent;while(dtn){if(includeRoot||dtn.parent){l.unshift(dtn)}dtn=dtn.parent}return l},getPrevSibling:function(){if(this.parent){var i,l,ac=this.parent.children;for(i=1,l=ac.length;i<l;i++){if(ac[i]===this){return ac[i-1]}}}return null},getSelectedNodes:function(stopOnParents){var nodeList=[];this.visit(function(node){if(node.selected){nodeList.push(node);if(stopOnParents===true){return"skip"}}});return nodeList},hasChildren:function(){if(this.lazy){if(this.children==null){return undefined}else if(this.children.length===0){return false}else if(this.children.length===1&&this.children[0].isStatusNode()){return undefined}return true}return!!(this.children&&this.children.length)},hasFocus:function(){return this.tree.hasFocus()&&this.tree.focusNode===this},info:function(msg){if(this.tree.options.debugLevel>=1){Array.prototype.unshift.call(arguments,this.toString());consoleApply("info",arguments)}},isActive:function(){return this.tree.activeNode===this},isChildOf:function(otherNode){return this.parent&&this.parent===otherNode},isDescendantOf:function(otherNode){if(!otherNode||otherNode.tree!==this.tree){return false}var p=this.parent;while(p){if(p===otherNode){return true}p=p.parent}return false},isExpanded:function(){return!!this.expanded},isFirstSibling:function(){var p=this.parent;return!p||p.children[0]===this},isFolder:function(){return!!this.folder},isLastSibling:function(){var p=this.parent;return!p||p.children[p.children.length-1]===this},isLazy:function(){return!!this.lazy},isLoaded:function(){return!this.lazy||this.hasChildren()!==undefined},isLoading:function(){return!!this._isLoading},isRoot:function(){return this.isRootNode()},isPartsel:function(){return!this.selected&&!!this.partsel},isPartload:function(){return!!this.partload},isRootNode:function(){return this.tree.rootNode===this},isSelected:function(){return!!this.selected},isStatusNode:function(){return!!this.statusNodeType},isPagingNode:function(){return this.statusNodeType==="paging"},isTopLevel:function(){return this.tree.rootNode===this.parent},isUndefined:function(){return this.hasChildren()===undefined},isVisible:function(){var i,l,parents=this.getParentList(false,false);for(i=0,l=parents.length;i<l;i++){if(!parents[i].expanded){return false}}return true},lazyLoad:function(discard){this.warn("FancytreeNode.lazyLoad() is deprecated since 2014-02-16. Use .load() instead.");return this.load(discard)},load:function(forceReload){var res,source,that=this,wasExpanded=this.isExpanded();_assert(this.isLazy(),"load() requires a lazy node");if(!forceReload&&!this.isUndefined()){return _getResolvedPromise(this)}if(this.isLoaded()){this.resetLazy()}source=this.tree._triggerNodeEvent("lazyLoad",this);if(source===false){return _getResolvedPromise(this)}_assert(typeof source!=="boolean","lazyLoad event must return source in data.result");res=this.tree._callHook("nodeLoadChildren",this,source);if(wasExpanded){this.expanded=true;res.always(function(){that.render()})}else{res.always(function(){that.renderStatus()})}return res},makeVisible:function(opts){var i,that=this,deferreds=[],dfd=new $.Deferred,parents=this.getParentList(false,false),len=parents.length,effects=!(opts&&opts.noAnimation===true),scroll=!(opts&&opts.scrollIntoView===false);for(i=len-1;i>=0;i--){deferreds.push(parents[i].setExpanded(true,opts))}$.when.apply($,deferreds).done(function(){if(scroll){that.scrollIntoView(effects).done(function(){dfd.resolve()})}else{dfd.resolve()}});return dfd.promise()},moveTo:function(targetNode,mode,map){if(mode===undefined||mode==="over"){mode="child"}else if(mode==="firstChild"){if(targetNode.children&&targetNode.children.length){mode="before";targetNode=targetNode.children[0]}else{mode="child"}}var pos,prevParent=this.parent,targetParent=mode==="child"?targetNode:targetNode.parent;if(this===targetNode){return}else if(!this.parent){$.error("Cannot move system root")}else if(targetParent.isDescendantOf(this)){$.error("Cannot move a node to its own descendant")}if(targetParent!==prevParent){prevParent.triggerModifyChild("remove",this)}if(this.parent.children.length===1){if(this.parent===targetParent){return}this.parent.children=this.parent.lazy?[]:null;this.parent.expanded=false}else{pos=$.inArray(this,this.parent.children);_assert(pos>=0,"invalid source parent");this.parent.children.splice(pos,1)}this.parent=targetParent;if(targetParent.hasChildren()){switch(mode){case"child":targetParent.children.push(this);break;case"before":pos=$.inArray(targetNode,targetParent.children);_assert(pos>=0,"invalid target parent");targetParent.children.splice(pos,0,this);break;case"after":pos=$.inArray(targetNode,targetParent.children);_assert(pos>=0,"invalid target parent");targetParent.children.splice(pos+1,0,this);break;default:$.error("Invalid mode "+mode)}}else{targetParent.children=[this]}if(map){targetNode.visit(map,true)}if(targetParent===prevParent){targetParent.triggerModifyChild("move",this)}else{targetParent.triggerModifyChild("add",this)}if(this.tree!==targetNode.tree){this.warn("Cross-tree moveTo is experimantal!");this.visit(function(n){n.tree=targetNode.tree},true)}if(!prevParent.isDescendantOf(targetParent)){prevParent.render()}if(!targetParent.isDescendantOf(prevParent)&&targetParent!==prevParent){targetParent.render()}},navigate:function(where,activate){var i,parents,res,handled=true,KC=$.ui.keyCode,sib=null;function _goto(n){if(n){try{n.makeVisible({scrollIntoView:false})}catch(e){}if(!$(n.span).is(":visible")){n.debug("Navigate: skipping hidden node");n.navigate(where,activate);return}return activate===false?n.setFocus():n.setActive()}}switch(where){case KC.BACKSPACE:if(this.parent&&this.parent.parent){res=_goto(this.parent)}break;case KC.HOME:this.tree.visit(function(n){if($(n.span).is(":visible")){res=_goto(n);return false}});break;case KC.END:this.tree.visit(function(n){if($(n.span).is(":visible")){res=n}});if(res){res=_goto(res)}break;case KC.LEFT:if(this.expanded){this.setExpanded(false);res=_goto(this)}else if(this.parent&&this.parent.parent){res=_goto(this.parent)}break;case KC.RIGHT:if(!this.expanded&&(this.children||this.lazy)){this.setExpanded();res=_goto(this)}else if(this.children&&this.children.length){res=_goto(this.children[0])}break;case KC.UP:sib=this.getPrevSibling();while(sib&&!$(sib.span).is(":visible")){sib=sib.getPrevSibling()}while(sib&&sib.expanded&&sib.children&&sib.children.length){sib=sib.children[sib.children.length-1]}if(!sib&&this.parent&&this.parent.parent){sib=this.parent}res=_goto(sib);break;case KC.DOWN:if(this.expanded&&this.children&&this.children.length){sib=this.children[0]}else{parents=this.getParentList(false,true);for(i=parents.length-1;i>=0;i--){sib=parents[i].getNextSibling();while(sib&&!$(sib.span).is(":visible")){sib=sib.getNextSibling()}if(sib){break}}}res=_goto(sib);break;default:handled=false}return res||_getResolvedPromise()},remove:function(){return this.parent.removeChild(this)},removeChild:function(childNode){return this.tree._callHook("nodeRemoveChild",this,childNode)},removeChildren:function(){return this.tree._callHook("nodeRemoveChildren",this)},removeClass:function(className){return this.toggleClass(className,false)},render:function(force,deep){return this.tree._callHook("nodeRender",this,force,deep)},renderTitle:function(){return this.tree._callHook("nodeRenderTitle",this)},renderStatus:function(){return this.tree._callHook("nodeRenderStatus",this)},replaceWith:function(source){var res,parent=this.parent,pos=$.inArray(this,parent.children),that=this;_assert(this.isPagingNode(),"replaceWith() currently requires a paging status node");res=this.tree._callHook("nodeLoadChildren",this,source);res.done(function(data){var children=that.children;for(i=0;i<children.length;i++){children[i].parent=parent}parent.children.splice.apply(parent.children,[pos+1,0].concat(children));that.children=null;that.remove();parent.render()}).fail(function(){that.setExpanded()});return res},resetLazy:function(){this.removeChildren();this.expanded=false;this.lazy=true;this.children=undefined;this.renderStatus()},scheduleAction:function(mode,ms){if(this.tree.timer){clearTimeout(this.tree.timer)}this.tree.timer=null;var self=this;switch(mode){case"cancel":break;case"expand":this.tree.timer=setTimeout(function(){self.tree.debug("setTimeout: trigger expand");self.setExpanded(true)},ms);break;case"activate":this.tree.timer=setTimeout(function(){self.tree.debug("setTimeout: trigger activate");self.setActive(true)},ms);break;default:$.error("Invalid mode "+mode)}},scrollIntoView:function(effects,options){if(options!==undefined&&_isNode(options)){this.warn("scrollIntoView() with 'topNode' option is deprecated since 2014-05-08. Use 'options.topNode' instead.");options={topNode:options}}var topNodeY,nodeY,horzScrollbarHeight,containerOffsetTop,opts=$.extend({effects:effects===true?{duration:200,queue:false}:effects,scrollOfs:this.tree.options.scrollOfs,scrollParent:this.tree.options.scrollParent||this.tree.$container,topNode:null},options),dfd=new $.Deferred,that=this,nodeHeight=$(this.span).height(),$container=$(opts.scrollParent),topOfs=opts.scrollOfs.top||0,bottomOfs=opts.scrollOfs.bottom||0,containerHeight=$container.height(),scrollTop=$container.scrollTop(),$animateTarget=$container,isParentWindow=$container[0]===window,topNode=opts.topNode||null,newScrollTop=null;if(!$(this.span).is(":visible")){this.warn("scrollIntoView(): node is invisible.");return _getResolvedPromise()}if(isParentWindow){nodeY=$(this.span).offset().top;topNodeY=topNode&&topNode.span?$(topNode.span).offset().top:0;$animateTarget=$("html,body")}else{_assert($container[0]!==document&&$container[0]!==document.body,"scrollParent should be a simple element or `window`, not document or body.");containerOffsetTop=$container.offset().top,nodeY=$(this.span).offset().top-containerOffsetTop+scrollTop;topNodeY=topNode?$(topNode.span).offset().top-containerOffsetTop+scrollTop:0;horzScrollbarHeight=Math.max(0,$container.innerHeight()-$container[0].clientHeight);containerHeight-=horzScrollbarHeight}if(nodeY<scrollTop+topOfs){newScrollTop=nodeY-topOfs}else if(nodeY+nodeHeight>scrollTop+containerHeight-bottomOfs){newScrollTop=nodeY+nodeHeight-containerHeight+bottomOfs;if(topNode){_assert(topNode.isRootNode()||$(topNode.span).is(":visible"),"topNode must be visible");if(topNodeY<newScrollTop){newScrollTop=topNodeY-topOfs}}}if(newScrollTop!==null){if(opts.effects){opts.effects.complete=function(){dfd.resolveWith(that)};$animateTarget.stop(true).animate({scrollTop:newScrollTop},opts.effects)}else{$animateTarget[0].scrollTop=newScrollTop;dfd.resolveWith(this)}}else{dfd.resolveWith(this)}return dfd.promise()},setActive:function(flag,opts){return this.tree._callHook("nodeSetActive",this,flag,opts)},setExpanded:function(flag,opts){return this.tree._callHook("nodeSetExpanded",this,flag,opts)},setFocus:function(flag){return this.tree._callHook("nodeSetFocus",this,flag)},setSelected:function(flag,opts){return this.tree._callHook("nodeSetSelected",this,flag,opts)},setStatus:function(status,message,details){return this.tree._callHook("nodeSetStatus",this,status,message,details)},setTitle:function(title){this.title=title;this.renderTitle();this.triggerModify("rename")},sortChildren:function(cmp,deep){var i,l,cl=this.children;if(!cl){return}cmp=cmp||function(a,b){var x=a.title.toLowerCase(),y=b.title.toLowerCase();return x===y?0:x>y?1:-1};cl.sort(cmp);if(deep){for(i=0,l=cl.length;i<l;i++){if(cl[i].children){cl[i].sortChildren(cmp,"$norender$")}}}if(deep!=="$norender$"){this.render()}this.triggerModifyChild("sort")},toDict:function(recursive,callback){var i,l,node,dict={},self=this;$.each(NODE_ATTRS,function(i,a){if(self[a]||self[a]===false){dict[a]=self[a]}});if(!$.isEmptyObject(this.data)){dict.data=$.extend({},this.data);if($.isEmptyObject(dict.data)){delete dict.data}}if(callback){callback(dict,self)}if(recursive){if(this.hasChildren()){dict.children=[];for(i=0,l=this.children.length;i<l;i++){node=this.children[i];if(!node.isStatusNode()){dict.children.push(node.toDict(true,callback))}}}else{}}return dict},toggleClass:function(value,flag){var className,hasClass,rnotwhite=/\S+/g,classNames=value.match(rnotwhite)||[],i=0,wasAdded=false,statusElem=this[this.tree.statusClassPropName],curClasses=" "+(this.extraClasses||"")+" ";if(statusElem){$(statusElem).toggleClass(value,flag)}while(className=classNames[i++]){hasClass=curClasses.indexOf(" "+className+" ")>=0;flag=flag===undefined?!hasClass:!!flag;if(flag){if(!hasClass){curClasses+=className+" ";wasAdded=true}}else{while(curClasses.indexOf(" "+className+" ")>-1){curClasses=curClasses.replace(" "+className+" "," ")}}}this.extraClasses=$.trim(curClasses);return wasAdded},toggleExpanded:function(){return this.tree._callHook("nodeToggleExpanded",this)},toggleSelected:function(){return this.tree._callHook("nodeToggleSelected",this)},toString:function(){return"<FancytreeNode(#"+this.key+", '"+this.title+"')>"},triggerModifyChild:function(operation,childNode,extra){var data,modifyChild=this.tree.options.modifyChild;if(modifyChild){if(childNode&&childNode.parent!==this){$.error("childNode "+childNode+" is not a child of "+this)}data={node:this,tree:this.tree,operation:operation,childNode:childNode||null};if(extra){$.extend(data,extra)}modifyChild({type:"modifyChild"},data)}},triggerModify:function(operation,extra){this.parent.triggerModifyChild(operation,this,extra)},visit:function(fn,includeSelf){var i,l,res=true,children=this.children;if(includeSelf===true){res=fn(this);if(res===false||res==="skip"){return res}}if(children){for(i=0,l=children.length;i<l;i++){res=children[i].visit(fn,true);if(res===false){break}}}return res},visitAndLoad:function(fn,includeSelf,_recursion){var dfd,res,loaders,node=this;if(fn&&includeSelf===true){res=fn(node);if(res===false||res==="skip"){return _recursion?res:_getResolvedPromise()
}}if(!node.children&&!node.lazy){return _getResolvedPromise()}dfd=new $.Deferred;loaders=[];node.load().done(function(){for(var i=0,l=node.children.length;i<l;i++){res=node.children[i].visitAndLoad(fn,true,true);if(res===false){dfd.reject();break}else if(res!=="skip"){loaders.push(res)}}$.when.apply(this,loaders).then(function(){dfd.resolve()})});return dfd.promise()},visitParents:function(fn,includeSelf){if(includeSelf&&fn(this)===false){return false}var p=this.parent;while(p){if(fn(p)===false){return false}p=p.parent}return true},visitSiblings:function(fn,includeSelf){var i,l,n,ac=this.parent.children;for(i=0,l=ac.length;i<l;i++){n=ac[i];if(includeSelf||n!==this){if(fn(n)===false){return false}}}return true},warn:function(msg){Array.prototype.unshift.call(arguments,this.toString());consoleApply("warn",arguments)}};function Fancytree(widget){this.widget=widget;this.$div=widget.element;this.options=widget.options;if(this.options){if($.isFunction(this.options.lazyload)&&!$.isFunction(this.options.lazyLoad)){this.options.lazyLoad=function(){FT.warn("The 'lazyload' event is deprecated since 2014-02-25. Use 'lazyLoad' (with uppercase L) instead.");return widget.options.lazyload.apply(this,arguments)}}if($.isFunction(this.options.loaderror)){$.error("The 'loaderror' event was renamed since 2014-07-03. Use 'loadError' (with uppercase E) instead.")}if(this.options.fx!==undefined){FT.warn("The 'fx' option was replaced by 'toggleEffect' since 2014-11-30.")}if(this.options.removeNode!==undefined){$.error("The 'removeNode' event was replaced by 'modifyChild' since 2.20 (2016-09-10).")}}this.ext={};this.data=_getElementDataAsDict(this.$div);this._id=$.ui.fancytree._nextId++;this._ns=".fancytree-"+this._id;this.activeNode=null;this.focusNode=null;this._hasFocus=null;this._enableUpdate=true;this.lastSelectedNode=null;this.systemFocusElement=null;this.lastQuicksearchTerm="";this.lastQuicksearchTime=0;this.statusClassPropName="span";this.ariaPropName="li";this.nodeContainerAttrName="li";this.$div.find(">ul.fancytree-container").remove();var fakeParent={tree:this},$ul;this.rootNode=new FancytreeNode(fakeParent,{title:"root",key:"root_"+this._id,children:null,expanded:true});this.rootNode.parent=null;$ul=$("<ul>",{class:"ui-fancytree fancytree-container fancytree-plain"}).appendTo(this.$div);this.$container=$ul;this.rootNode.ul=$ul[0];if(this.options.debugLevel==null){this.options.debugLevel=FT.debugLevel}}Fancytree.prototype={_makeHookContext:function(obj,originalEvent,extra){var ctx,tree;if(obj.node!==undefined){if(originalEvent&&obj.originalEvent!==originalEvent){$.error("invalid args")}ctx=obj}else if(obj.tree){tree=obj.tree;ctx={node:obj,tree:tree,widget:tree.widget,options:tree.widget.options,originalEvent:originalEvent}}else if(obj.widget){ctx={node:null,tree:obj,widget:obj.widget,options:obj.widget.options,originalEvent:originalEvent}}else{$.error("invalid args")}if(extra){$.extend(ctx,extra)}return ctx},_callHook:function(funcName,contextObject,_extraArgs){var ctx=this._makeHookContext(contextObject),fn=this[funcName],args=Array.prototype.slice.call(arguments,2);if(!$.isFunction(fn)){$.error("_callHook('"+funcName+"') is not a function")}args.unshift(ctx);return fn.apply(this,args)},_requireExtension:function(name,required,before,message){before=!!before;var thisName=this._local.name,extList=this.options.extensions,isBefore=$.inArray(name,extList)<$.inArray(thisName,extList),isMissing=required&&this.ext[name]==null,badOrder=!isMissing&&before!=null&&before!==isBefore;_assert(thisName&&thisName!==name,"invalid or same name");if(isMissing||badOrder){if(!message){if(isMissing||required){message="'"+thisName+"' extension requires '"+name+"'";if(badOrder){message+=" to be registered "+(before?"before":"after")+" itself"}}else{message="If used together, `"+name+"` must be registered "+(before?"before":"after")+" `"+thisName+"`"}}$.error(message);return false}return true},activateKey:function(key){var node=this.getNodeByKey(key);if(node){node.setActive()}else if(this.activeNode){this.activeNode.setActive(false)}return node},addPagingNode:function(node,mode){return this.rootNode.addPagingNode(node,mode)},applyPatch:function(patchList){var dfd,i,p2,key,patch,node,patchCount=patchList.length,deferredList=[];for(i=0;i<patchCount;i++){p2=patchList[i];_assert(p2.length===2,"patchList must be an array of length-2-arrays");key=p2[0];patch=p2[1];node=key===null?this.rootNode:this.getNodeByKey(key);if(node){dfd=new $.Deferred;deferredList.push(dfd);node.applyPatch(patch).always(_makeResolveFunc(dfd,node))}else{this.warn("could not find node with key '"+key+"'")}}return $.when.apply($,deferredList).promise()},clear:function(source){this._callHook("treeClear",this)},count:function(){return this.rootNode.countChildren()},debug:function(msg){if(this.options.debugLevel>=2){Array.prototype.unshift.call(arguments,this.toString());consoleApply("log",arguments)}},enableUpdate:function(flag){flag=flag!==false;if(!!this._enableUpdate===!!flag){return flag}this._enableUpdate=flag;if(flag){this.debug("enableUpdate(true): redraw ");this.render()}else{this.debug("enableUpdate(false)...")}return!flag},findAll:function(match){return this.rootNode.findAll(match)},findFirst:function(match){return this.rootNode.findFirst(match)},findNextNode:function(match,startNode,visibleOnly){var stopNode=null,parentChildren=startNode.parent.children,matchingNode=null,walkVisible=function(parent,idx,fn){var i,grandParent,parentChildren=parent.children,siblingCount=parentChildren.length,node=parentChildren[idx];if(node&&fn(node)===false){return false}if(node&&node.children&&node.expanded){if(walkVisible(node,0,fn)===false){return false}}for(i=idx+1;i<siblingCount;i++){if(walkVisible(parent,i,fn)===false){return false}}grandParent=parent.parent;if(grandParent){return walkVisible(grandParent,grandParent.children.indexOf(parent)+1,fn)}else{return walkVisible(parent,0,fn)}};match=typeof match==="string"?_makeNodeTitleStartMatcher(match):match;startNode=startNode||this.getFirstChild();walkVisible(startNode.parent,parentChildren.indexOf(startNode),function(node){if(node===stopNode){return false}stopNode=stopNode||node;if(!$(node.span).is(":visible")){node.debug("quicksearch: skipping hidden node");return}if(match(node)){matchingNode=node;if(matchingNode!==startNode){return false}}});return matchingNode},generateFormElements:function(selected,active,opts){opts=opts||{};var nodeList,selectedName=typeof selected==="string"?selected:"ft_"+this._id+"[]",activeName=typeof active==="string"?active:"ft_"+this._id+"_active",id="fancytree_result_"+this._id,$result=$("#"+id),stopOnParents=this.options.selectMode===3&&opts.stopOnParents!==false;if($result.length){$result.empty()}else{$result=$("<div>",{id:id}).hide().insertAfter(this.$container)}if(active!==false&&this.activeNode){$result.append($("<input>",{type:"radio",name:activeName,value:this.activeNode.key,checked:true}))}function _appender(node){$result.append($("<input>",{type:"checkbox",name:selectedName,value:node.key,checked:true}))}if(opts.filter){this.visit(function(node){var res=opts.filter(node);if(res==="skip"){return res}if(res!==false){_appender(node)}})}else if(selected!==false){nodeList=this.getSelectedNodes(stopOnParents);$.each(nodeList,function(idx,node){_appender(node)})}},getActiveNode:function(){return this.activeNode},getFirstChild:function(){return this.rootNode.getFirstChild()},getFocusNode:function(){return this.focusNode},getNodeByKey:function(key,searchRoot){var el,match;if(!searchRoot){el=document.getElementById(this.options.idPrefix+key);if(el){return el.ftnode?el.ftnode:null}}searchRoot=searchRoot||this.rootNode;match=null;searchRoot.visit(function(node){if(node.key===key){match=node;return false}},true);return match},getRootNode:function(){return this.rootNode},getSelectedNodes:function(stopOnParents){return this.rootNode.getSelectedNodes(stopOnParents)},hasFocus:function(){return!!this._hasFocus},info:function(msg){if(this.options.debugLevel>=1){Array.prototype.unshift.call(arguments,this.toString());consoleApply("info",arguments)}},loadKeyPath:function(keyPathList,callback,_rootNode){var deferredList,dfd,i,path,key,loadMap,node,root,segList,sep=this.options.keyPathSeparator,self=this;callback=callback||$.noop;if(!$.isArray(keyPathList)){keyPathList=[keyPathList]}loadMap={};for(i=0;i<keyPathList.length;i++){root=_rootNode||this.rootNode;path=keyPathList[i];if(path.charAt(0)===sep){path=path.substr(1)}segList=path.split(sep);while(segList.length){key=segList.shift();node=root._findDirectChild(key);if(!node){this.warn("loadKeyPath: key not found: "+key+" (parent: "+root+")");callback.call(this,key,"error");break}else if(segList.length===0){callback.call(this,node,"ok");break}else if(!node.lazy||node.hasChildren()!==undefined){callback.call(this,node,"loaded");root=node}else{callback.call(this,node,"loaded");if(loadMap[key]){loadMap[key].push(segList.join(sep))}else{loadMap[key]=[segList.join(sep)]}break}}}deferredList=[];function __lazyload(key,node,dfd){callback.call(self,node,"loading");node.load().done(function(){self.loadKeyPath.call(self,loadMap[key],callback,node).always(_makeResolveFunc(dfd,self))}).fail(function(errMsg){self.warn("loadKeyPath: error loading: "+key+" (parent: "+root+")");callback.call(self,node,"error");dfd.reject()})}for(key in loadMap){node=root._findDirectChild(key);if(node==null){node=self.getNodeByKey(key)}dfd=new $.Deferred;deferredList.push(dfd);__lazyload(key,node,dfd)}return $.when.apply($,deferredList).promise()},reactivate:function(setFocus){var res,node=this.activeNode;if(!node){return _getResolvedPromise()}this.activeNode=null;res=node.setActive(true,{noFocus:true});if(setFocus){node.setFocus()}return res},reload:function(source){this._callHook("treeClear",this);return this._callHook("treeLoad",this,source)},render:function(force,deep){return this.rootNode.render(force,deep)},setFocus:function(flag){return this._callHook("treeSetFocus",this,flag)},toDict:function(includeRoot,callback){var res=this.rootNode.toDict(true,callback);return includeRoot?res:res.children},toString:function(){return"<Fancytree(#"+this._id+")>"},_triggerNodeEvent:function(type,node,originalEvent,extra){var ctx=this._makeHookContext(node,originalEvent,extra),res=this.widget._trigger(type,originalEvent,ctx);if(res!==false&&ctx.result!==undefined){return ctx.result}return res},_triggerTreeEvent:function(type,originalEvent,extra){var ctx=this._makeHookContext(this,originalEvent,extra),res=this.widget._trigger(type,originalEvent,ctx);if(res!==false&&ctx.result!==undefined){return ctx.result}return res},visit:function(fn){return this.rootNode.visit(fn,false)},warn:function(msg){Array.prototype.unshift.call(arguments,this.toString());consoleApply("warn",arguments)}};$.extend(Fancytree.prototype,{nodeClick:function(ctx){var activate,expand,targetType=ctx.targetType,node=ctx.node;if(targetType==="expander"){if(node.isLoading()){node.debug("Got 2nd click while loading: ignored");return}this._callHook("nodeToggleExpanded",ctx)}else if(targetType==="checkbox"){this._callHook("nodeToggleSelected",ctx);if(ctx.options.focusOnSelect){this._callHook("nodeSetFocus",ctx,true)}}else{expand=false;activate=true;if(node.folder){switch(ctx.options.clickFolderMode){case 2:expand=true;activate=false;break;case 3:activate=true;expand=true;break}}if(activate){this.nodeSetFocus(ctx);this._callHook("nodeSetActive",ctx,true)}if(expand){if(!activate){}this._callHook("nodeToggleExpanded",ctx)}}},nodeCollapseSiblings:function(ctx,callOpts){var ac,i,l,node=ctx.node;if(node.parent){ac=node.parent.children;for(i=0,l=ac.length;i<l;i++){if(ac[i]!==node&&ac[i].expanded){this._callHook("nodeSetExpanded",ac[i],false,callOpts)}}}},nodeDblclick:function(ctx){if(ctx.targetType==="title"&&ctx.options.clickFolderMode===4){this._callHook("nodeToggleExpanded",ctx)}if(ctx.targetType==="title"){ctx.originalEvent.preventDefault()}},nodeKeydown:function(ctx){var matchNode,stamp,res,focusNode,event=ctx.originalEvent,node=ctx.node,tree=ctx.tree,opts=ctx.options,which=event.which,whichChar=String.fromCharCode(which),clean=!(event.altKey||event.ctrlKey||event.metaKey||event.shiftKey),$target=$(event.target),handled=true,activate=!(event.ctrlKey||!opts.autoActivate);if(!node){focusNode=this.getActiveNode()||this.getFirstChild();if(focusNode){focusNode.setFocus();node=ctx.node=this.focusNode;node.debug("Keydown force focus on active node")}}if(opts.quicksearch&&clean&&/\w/.test(whichChar)&&!SPECIAL_KEYCODES[which]&&!$target.is(":input:enabled")){stamp=(new Date).getTime();if(stamp-tree.lastQuicksearchTime>500){tree.lastQuicksearchTerm=""}tree.lastQuicksearchTime=stamp;tree.lastQuicksearchTerm+=whichChar;matchNode=tree.findNextNode(tree.lastQuicksearchTerm,tree.getActiveNode());if(matchNode){matchNode.setActive()}event.preventDefault();return}switch(FT.eventToString(event)){case"+":case"=":tree.nodeSetExpanded(ctx,true);break;case"-":tree.nodeSetExpanded(ctx,false);break;case"space":if(node.isPagingNode()){tree._triggerNodeEvent("clickPaging",ctx,event)}else if(opts.checkbox){tree.nodeToggleSelected(ctx)}else{tree.nodeSetActive(ctx,true)}break;case"return":tree.nodeSetActive(ctx,true);break;case"home":case"end":case"backspace":case"left":case"right":case"up":case"down":res=node.navigate(event.which,activate,true);break;default:handled=false}if(handled){event.preventDefault()}},nodeLoadChildren:function(ctx,source){var ajax,delay,dfd,tree=ctx.tree,node=ctx.node,requestId=(new Date).getTime();if($.isFunction(source)){source=source.call(tree,{type:"source"},ctx);_assert(!$.isFunction(source),"source callback must not return another function")}if(source.url){if(node._requestId){node.warn("Recursive load request #"+requestId+" while #"+node._requestId+" is pending.")}ajax=$.extend({},ctx.options.ajax,source);node._requestId=requestId;if(ajax.debugDelay){delay=ajax.debugDelay;if($.isArray(delay)){delay=delay[0]+Math.random()*(delay[1]-delay[0])}node.warn("nodeLoadChildren waiting debugDelay "+Math.round(delay)+" ms ...");ajax.debugDelay=false;dfd=$.Deferred(function(dfd){setTimeout(function(){$.ajax(ajax).done(function(){dfd.resolveWith(this,arguments)}).fail(function(){dfd.rejectWith(this,arguments)})},delay)})}else{dfd=$.ajax(ajax)}source=new $.Deferred;dfd.done(function(data,textStatus,jqXHR){var errorObj,res;if((this.dataType==="json"||this.dataType==="jsonp")&&typeof data==="string"){$.error("Ajax request returned a string (did you get the JSON dataType wrong?).")}if(node._requestId&&node._requestId>requestId){source.rejectWith(this,[RECURSIVE_REQUEST_ERROR]);return}if(ctx.options.postProcess){try{res=tree._triggerNodeEvent("postProcess",ctx,ctx.originalEvent,{response:data,error:null,dataType:this.dataType})}catch(e){res={error:e,message:""+e,details:"postProcess failed"}}if(res.error){errorObj=$.isPlainObject(res.error)?res.error:{message:res.error};errorObj=tree._makeHookContext(node,null,errorObj);source.rejectWith(this,[errorObj]);return}data=$.isArray(res)?res:data}else if(data&&data.hasOwnProperty("d")&&ctx.options.enableAspx){data=typeof data.d==="string"?$.parseJSON(data.d):data.d}source.resolveWith(this,[data])}).fail(function(jqXHR,textStatus,errorThrown){var errorObj=tree._makeHookContext(node,null,{error:jqXHR,args:Array.prototype.slice.call(arguments),message:errorThrown,details:jqXHR.status+": "+errorThrown});source.rejectWith(this,[errorObj])})}if($.isFunction(source.then)&&$.isFunction(source["catch"])){dfd=source;source=new $.Deferred;dfd.then(function(value){source.resolve(value)},function(reason){source.reject(reason)})}if($.isFunction(source.promise)){tree.nodeSetStatus(ctx,"loading");source.done(function(children){tree.nodeSetStatus(ctx,"ok");node._requestId=null}).fail(function(error){var ctxErr;if(error===RECURSIVE_REQUEST_ERROR){node.warn("Ignored response for obsolete load request #"+requestId+" (expected #"+node._requestId+")");return}else if(error.node&&error.error&&error.message){ctxErr=error}else{ctxErr=tree._makeHookContext(node,null,{error:error,args:Array.prototype.slice.call(arguments),message:error?error.message||error.toString():""});if(ctxErr.message==="[object Object]"){ctxErr.message=""}}node.warn("Load children failed ("+ctxErr.message+")",ctxErr);if(tree._triggerNodeEvent("loadError",ctxErr,null)!==false){tree.nodeSetStatus(ctx,"error",ctxErr.message,ctxErr.details)}})}return $.when(source).done(function(children){var metaData;if($.isPlainObject(children)){_assert(node.isRootNode(),"source may only be an object for root nodes (expecting an array of child objects otherwise)");_assert($.isArray(children.children),"if an object is passed as source, it must contain a 'children' array (all other properties are added to 'tree.data')");metaData=children;children=children.children;delete metaData.children;$.extend(tree.data,metaData)}_assert($.isArray(children),"expected array of children");node._setChildren(children);tree._triggerNodeEvent("loadChildren",node)})},nodeLoadKeyPath:function(ctx,keyPathList){},nodeRemoveChild:function(ctx,childNode){var idx,node=ctx.node,subCtx=$.extend({},ctx,{node:childNode}),children=node.children;if(children.length===1){_assert(childNode===children[0],"invalid single child");return this.nodeRemoveChildren(ctx)}if(this.activeNode&&(childNode===this.activeNode||this.activeNode.isDescendantOf(childNode))){this.activeNode.setActive(false)}if(this.focusNode&&(childNode===this.focusNode||this.focusNode.isDescendantOf(childNode))){this.focusNode=null}this.nodeRemoveMarkup(subCtx);this.nodeRemoveChildren(subCtx);idx=$.inArray(childNode,children);_assert(idx>=0,"invalid child");node.triggerModifyChild("remove",childNode);childNode.visit(function(n){n.parent=null},true);this._callHook("treeRegisterNode",this,false,childNode);children.splice(idx,1)},nodeRemoveChildMarkup:function(ctx){var node=ctx.node;if(node.ul){if(node.isRootNode()){$(node.ul).empty()}else{$(node.ul).remove();node.ul=null}node.visit(function(n){n.li=n.ul=null})}},nodeRemoveChildren:function(ctx){var subCtx,tree=ctx.tree,node=ctx.node,children=node.children;if(!children){return}if(this.activeNode&&this.activeNode.isDescendantOf(node)){this.activeNode.setActive(false)}if(this.focusNode&&this.focusNode.isDescendantOf(node)){this.focusNode=null}this.nodeRemoveChildMarkup(ctx);subCtx=$.extend({},ctx);node.triggerModifyChild("remove",null);node.visit(function(n){n.parent=null;tree._callHook("treeRegisterNode",tree,false,n)});if(node.lazy){node.children=[]}else{node.children=null}if(!node.isRootNode()){node.expanded=false}this.nodeRenderStatus(ctx)},nodeRemoveMarkup:function(ctx){var node=ctx.node;if(node.li){$(node.li).remove();node.li=null}this.nodeRemoveChildMarkup(ctx)},nodeRender:function(ctx,force,deep,collapsed,_recursive){var childLI,childNode1,childNode2,i,l,next,subCtx,node=ctx.node,tree=ctx.tree,opts=ctx.options,aria=opts.aria,firstTime=false,parent=node.parent,isRootNode=!parent,children=node.children,successorLi=null;if(tree._enableUpdate===false){return}if(!isRootNode&&!parent.ul){return}_assert(isRootNode||parent.ul,"parent UL must exist");if(!isRootNode){if(node.li&&(force||node.li.parentNode!==node.parent.ul)){if(node.li.parentNode===node.parent.ul){successorLi=node.li.nextSibling}else{this.debug("Unlinking "+node+" (must be child of "+node.parent+")")}this.nodeRemoveMarkup(ctx)}if(!node.li){firstTime=true;node.li=document.createElement("li");node.li.ftnode=node;if(node.key&&opts.generateIds){node.li.id=opts.idPrefix+node.key}node.span=document.createElement("span");node.span.className="fancytree-node";if(aria&&!node.tr){$(node.li).attr("role","treeitem")}node.li.appendChild(node.span);this.nodeRenderTitle(ctx);if(opts.createNode){opts.createNode.call(tree,{type:"createNode"},ctx)}}else{this.nodeRenderStatus(ctx)}if(opts.renderNode){opts.renderNode.call(tree,{type:"renderNode"},ctx)}}if(children){if(isRootNode||node.expanded||deep===true){if(!node.ul){node.ul=document.createElement("ul");if(collapsed===true&&!_recursive||!node.expanded){node.ul.style.display="none"}if(aria){$(node.ul).attr("role","group")}if(node.li){node.li.appendChild(node.ul)}else{node.tree.$div.append(node.ul)}}for(i=0,l=children.length;i<l;i++){subCtx=$.extend({},ctx,{node:children[i]});this.nodeRender(subCtx,force,deep,false,true)}childLI=node.ul.firstChild;while(childLI){childNode2=childLI.ftnode;if(childNode2&&childNode2.parent!==node){node.debug("_fixParent: remove missing "+childNode2,childLI);next=childLI.nextSibling;childLI.parentNode.removeChild(childLI);childLI=next}else{childLI=childLI.nextSibling}}childLI=node.ul.firstChild;for(i=0,l=children.length-1;i<l;i++){childNode1=children[i];childNode2=childLI.ftnode;if(childNode1!==childNode2){node.ul.insertBefore(childNode1.li,childNode2.li)}else{childLI=childLI.nextSibling}}}}else{if(node.ul){this.warn("remove child markup for "+node);this.nodeRemoveChildMarkup(ctx)}}if(!isRootNode){if(firstTime){parent.ul.insertBefore(node.li,successorLi)}}},nodeRenderTitle:function(ctx,title){var checkbox,className,icon,nodeTitle,role,tabindex,tooltip,node=ctx.node,tree=ctx.tree,opts=ctx.options,aria=opts.aria,level=node.getLevel(),ares=[];if(title!==undefined){node.title=title}if(!node.span||tree._enableUpdate===false){return}role=aria&&node.hasChildren()!==false?" role='button'":"";if(level<opts.minExpandLevel){if(!node.lazy){node.expanded=true}if(level>1){ares.push("<span "+role+" class='fancytree-expander fancytree-expander-fixed'></span>")}}else{ares.push("<span "+role+" class='fancytree-expander'></span>")}checkbox=FT.evalOption("checkbox",node,node,opts,false);if(checkbox&&!node.isStatusNode()){role=aria?" role='checkbox'":"";className="fancytree-checkbox";if(checkbox==="radio"||node.parent&&node.parent.radiogroup){className+=" fancytree-radio"}ares.push("<span "+role+" class='"+className+"'></span>")}if(node.data.iconClass!==undefined){if(node.icon){$.error("'iconClass' node option is deprecated since v2.14.0: use 'icon' only instead")}else{node.warn("'iconClass' node option is deprecated since v2.14.0: use 'icon' instead");node.icon=node.data.iconClass}}icon=FT.evalOption("icon",node,node,opts,true);if(typeof icon!=="boolean"){icon=""+icon}if(icon!==false){role=aria?" role='presentation'":"";if(typeof icon==="string"){if(TEST_IMG.test(icon)){icon=icon.charAt(0)==="/"?icon:(opts.imagePath||"")+icon;ares.push("<img src='"+icon+"' class='fancytree-icon' alt='' />")}else{ares.push("<span "+role+" class='fancytree-custom-icon "+icon+"'></span>")}}else{ares.push("<span "+role+" class='fancytree-icon'></span>")}}nodeTitle="";if(opts.renderTitle){nodeTitle=opts.renderTitle.call(tree,{type:"renderTitle"},ctx)||""}if(!nodeTitle){tooltip=FT.evalOption("tooltip",node,node,opts,null);if(tooltip===true){tooltip=node.title}tooltip=tooltip?" title='"+_escapeTooltip(tooltip)+"'":"";tabindex=opts.titlesTabbable?" tabindex='0'":"";nodeTitle="<span class='fancytree-title'"+tooltip+tabindex+">"+(opts.escapeTitles?_escapeHtml(node.title):node.title)+"</span>"}ares.push(nodeTitle);node.span.innerHTML=ares.join("");this.nodeRenderStatus(ctx);if(opts.enhanceTitle){ctx.$title=$(">span.fancytree-title",node.span);nodeTitle=opts.enhanceTitle.call(tree,{type:"enhanceTitle"},ctx)||""}},nodeRenderStatus:function(ctx){var $ariaElem,node=ctx.node,tree=ctx.tree,opts=ctx.options,hasChildren=node.hasChildren(),isLastSib=node.isLastSibling(),aria=opts.aria,cn=opts._classNames,cnList=[],statusElem=node[tree.statusClassPropName];if(!statusElem||tree._enableUpdate===false){return}if(aria){$ariaElem=$(node.tr||node.li)}cnList.push(cn.node);if(tree.activeNode===node){cnList.push(cn.active)}if(tree.focusNode===node){cnList.push(cn.focused)}if(node.expanded){cnList.push(cn.expanded)}if(aria){if(hasChildren!==false){$ariaElem.attr("aria-expanded",Boolean(node.expanded))}else{$ariaElem.removeAttr("aria-expanded")}}if(node.folder){cnList.push(cn.folder)}if(hasChildren!==false){cnList.push(cn.hasChildren)}if(isLastSib){cnList.push(cn.lastsib)}if(node.lazy&&node.children==null){cnList.push(cn.lazy)}if(node.partload){cnList.push(cn.partload)}if(node.partsel){cnList.push(cn.partsel)}if(FT.evalOption("unselectable",node,node,opts,false)){cnList.push(cn.unselectable)}if(node._isLoading){cnList.push(cn.loading)}if(node._error){cnList.push(cn.error)}if(node.statusNodeType){cnList.push(cn.statusNodePrefix+node.statusNodeType)}if(node.selected){cnList.push(cn.selected);if(aria){$ariaElem.attr("aria-selected",true)}}else if(aria){$ariaElem.attr("aria-selected",false)}if(node.extraClasses){cnList.push(node.extraClasses)}if(hasChildren===false){cnList.push(cn.combinedExpanderPrefix+"n"+(isLastSib?"l":""))}else{cnList.push(cn.combinedExpanderPrefix+(node.expanded?"e":"c")+(node.lazy&&node.children==null?"d":"")+(isLastSib?"l":""))}cnList.push(cn.combinedIconPrefix+(node.expanded?"e":"c")+(node.folder?"f":""));statusElem.className=cnList.join(" ");if(node.li){$(node.li).toggleClass(cn.lastsib,isLastSib)}},nodeSetActive:function(ctx,flag,callOpts){callOpts=callOpts||{};var subCtx,node=ctx.node,tree=ctx.tree,opts=ctx.options,noEvents=callOpts.noEvents===true,noFocus=callOpts.noFocus===true,isActive=node===tree.activeNode;flag=flag!==false;if(isActive===flag){return _getResolvedPromise(node)}else if(flag&&!noEvents&&this._triggerNodeEvent("beforeActivate",node,ctx.originalEvent)===false){return _getRejectedPromise(node,["rejected"])}if(flag){if(tree.activeNode){_assert(tree.activeNode!==node,"node was active (inconsistency)");subCtx=$.extend({},ctx,{node:tree.activeNode});tree.nodeSetActive(subCtx,false);_assert(tree.activeNode===null,"deactivate was out of sync?")}if(opts.activeVisible){node.makeVisible({scrollIntoView:noFocus&&tree.focusNode==null})}tree.activeNode=node;tree.nodeRenderStatus(ctx);if(!noFocus){tree.nodeSetFocus(ctx)}if(!noEvents){tree._triggerNodeEvent("activate",node,ctx.originalEvent)}}else{_assert(tree.activeNode===node,"node was not active (inconsistency)");tree.activeNode=null;this.nodeRenderStatus(ctx);if(!noEvents){ctx.tree._triggerNodeEvent("deactivate",node,ctx.originalEvent)}}return _getResolvedPromise(node)},nodeSetExpanded:function(ctx,flag,callOpts){callOpts=callOpts||{};var _afterLoad,dfd,i,l,parents,prevAC,node=ctx.node,tree=ctx.tree,opts=ctx.options,noAnimation=callOpts.noAnimation===true,noEvents=callOpts.noEvents===true;flag=flag!==false;if(node.expanded&&flag||!node.expanded&&!flag){return _getResolvedPromise(node)}else if(flag&&!node.lazy&&!node.hasChildren()){return _getResolvedPromise(node)}else if(!flag&&node.getLevel()<opts.minExpandLevel){return _getRejectedPromise(node,["locked"])}else if(!noEvents&&this._triggerNodeEvent("beforeExpand",node,ctx.originalEvent)===false){return _getRejectedPromise(node,["rejected"])}if(!noAnimation&&!node.isVisible()){noAnimation=callOpts.noAnimation=true}dfd=new $.Deferred;if(flag&&!node.expanded&&opts.autoCollapse){parents=node.getParentList(false,true);prevAC=opts.autoCollapse;try{opts.autoCollapse=false;for(i=0,l=parents.length;i<l;i++){this._callHook("nodeCollapseSiblings",parents[i],callOpts)}}finally{opts.autoCollapse=prevAC}}dfd.done(function(){var lastChild=node.getLastChild();if(flag&&opts.autoScroll&&!noAnimation&&lastChild){lastChild.scrollIntoView(true,{topNode:node}).always(function(){if(!noEvents){ctx.tree._triggerNodeEvent(flag?"expand":"collapse",ctx)}})}else{if(!noEvents){ctx.tree._triggerNodeEvent(flag?"expand":"collapse",ctx)}}});_afterLoad=function(callback){var cn=opts._classNames,isVisible,isExpanded,effect=opts.toggleEffect;node.expanded=flag;tree._callHook("nodeRender",ctx,false,false,true);if(node.ul){isVisible=node.ul.style.display!=="none";isExpanded=!!node.expanded;if(isVisible===isExpanded){node.warn("nodeSetExpanded: UL.style.display already set")}else if(!effect||noAnimation){node.ul.style.display=node.expanded||!parent?"":"none"}else{$(node.li).addClass(cn.animating);$(node.ul).addClass(cn.animating).toggle(effect.effect,effect.options,effect.duration,function(){$(this).removeClass(cn.animating);$(node.li).removeClass(cn.animating);callback()});return}}callback()};if(flag&&node.lazy&&node.hasChildren()===undefined){node.load().done(function(){if(dfd.notifyWith){dfd.notifyWith(node,["loaded"])}_afterLoad(function(){dfd.resolveWith(node)})}).fail(function(errMsg){_afterLoad(function(){dfd.rejectWith(node,["load failed ("+errMsg+")"])})})}else{_afterLoad(function(){dfd.resolveWith(node)})}return dfd.promise()},nodeSetFocus:function(ctx,flag){var ctx2,tree=ctx.tree,node=ctx.node,opts=tree.options,isInput=ctx.originalEvent?$(ctx.originalEvent.target).is(":input"):false;flag=flag!==false;if(tree.focusNode){if(tree.focusNode===node&&flag){return}ctx2=$.extend({},ctx,{node:tree.focusNode});tree.focusNode=null;this._triggerNodeEvent("blur",ctx2);this._callHook("nodeRenderStatus",ctx2)}if(flag){if(!this.hasFocus()){node.debug("nodeSetFocus: forcing container focus");this._callHook("treeSetFocus",ctx,true,{calledByNode:true})}node.makeVisible({scrollIntoView:false});tree.focusNode=node;if(opts.titlesTabbable){if(!isInput){$(node.span).find(".fancytree-title").focus()}}else{if($(document.activeElement).closest(".fancytree-container").length===0){$(tree.$container).focus()}}if(opts.aria){$(tree.$container).attr("aria-activedescendant",$(node.tr||node.li).uniqueId().attr("id"))}this._triggerNodeEvent("focus",ctx);if(opts.autoScroll){node.scrollIntoView()}this._callHook("nodeRenderStatus",ctx)}},nodeSetSelected:function(ctx,flag,callOpts){callOpts=callOpts||{};var node=ctx.node,tree=ctx.tree,opts=ctx.options,noEvents=callOpts.noEvents===true,parent=node.parent;flag=flag!==false;if(FT.evalOption("unselectable",node,node,opts,false)){return}node._lastSelectIntent=flag;if(!!node.selected===flag){if(opts.selectMode===3&&node.partsel&&!flag){}else{return flag}}if(!noEvents&&this._triggerNodeEvent("beforeSelect",node,ctx.originalEvent)===false){return!!node.selected}if(flag&&opts.selectMode===1){if(tree.lastSelectedNode){tree.lastSelectedNode.setSelected(false)}node.selected=flag}else if(opts.selectMode===3&&parent&&!parent.radiogroup&&!node.radiogroup){node.selected=flag;node.fixSelection3AfterClick(callOpts)}else if(parent&&parent.radiogroup){node.visitSiblings(function(n){n._changeSelectStatusAttrs(flag&&n===node)},true)}else{node.selected=flag}this.nodeRenderStatus(ctx);tree.lastSelectedNode=flag?node:null;if(!noEvents){tree._triggerNodeEvent("select",ctx)}},nodeSetStatus:function(ctx,status,message,details){var node=ctx.node,tree=ctx.tree;function _clearStatusNode(){var firstChild=node.children?node.children[0]:null;if(firstChild&&firstChild.isStatusNode()){try{if(node.ul){node.ul.removeChild(firstChild.li);firstChild.li=null}}catch(e){}if(node.children.length===1){node.children=[]}else{node.children.shift()}}}function _setStatusNode(data,type){var firstChild=node.children?node.children[0]:null;if(firstChild&&firstChild.isStatusNode()){$.extend(firstChild,data);firstChild.statusNodeType=type;tree._callHook("nodeRenderTitle",firstChild)}else{node._setChildren([data]);node.children[0].statusNodeType=type;tree.render()}return node.children[0]}switch(status){case"ok":_clearStatusNode();node._isLoading=false;node._error=null;node.renderStatus();break;case"loading":if(!node.parent){_setStatusNode({title:tree.options.strings.loading+(message?" ("+message+")":""),checkbox:false,tooltip:details},status)}node._isLoading=true;node._error=null;node.renderStatus();break;case"error":_setStatusNode({title:tree.options.strings.loadError+(message?" ("+message+")":""),checkbox:false,tooltip:details},status);node._isLoading=false;node._error={message:message,details:details};node.renderStatus();break;case"nodata":_setStatusNode({title:tree.options.strings.noData,checkbox:false,tooltip:details},status);node._isLoading=false;node._error=null;node.renderStatus();break;default:$.error("invalid node status "+status)}},nodeToggleExpanded:function(ctx){return this.nodeSetExpanded(ctx,!ctx.node.expanded)},nodeToggleSelected:function(ctx){
var node=ctx.node,flag=!node.selected;if(node.partsel&&!node.selected&&node._lastSelectIntent===true){flag=false;node.selected=true}node._lastSelectIntent=flag;return this.nodeSetSelected(ctx,flag)},treeClear:function(ctx){var tree=ctx.tree;tree.activeNode=null;tree.focusNode=null;tree.$div.find(">ul.fancytree-container").empty();tree.rootNode.children=null},treeCreate:function(ctx){},treeDestroy:function(ctx){this.$div.find(">ul.fancytree-container").remove();this.$source&&this.$source.removeClass("ui-helper-hidden")},treeInit:function(ctx){var tree=ctx.tree,opts=tree.options;tree.$container.attr("tabindex",opts.tabindex);if(opts.rtl){tree.$container.attr("DIR","RTL").addClass("fancytree-rtl")}else{tree.$container.removeAttr("DIR").removeClass("fancytree-rtl")}if(opts.aria){tree.$container.attr("role","tree");if(opts.selectMode!==1){tree.$container.attr("aria-multiselectable",true)}}this.treeLoad(ctx)},treeLoad:function(ctx,source){var metaData,type,$ul,tree=ctx.tree,$container=ctx.widget.element,dfd,rootCtx=$.extend({},ctx,{node:this.rootNode});if(tree.rootNode.children){this.treeClear(ctx)}source=source||this.options.source;if(!source){type=$container.data("type")||"html";switch(type){case"html":$ul=$container.find(">ul:first");$ul.addClass("ui-fancytree-source ui-helper-hidden");source=$.ui.fancytree.parseHtml($ul);this.data=$.extend(this.data,_getElementDataAsDict($ul));break;case"json":source=$.parseJSON($container.text());$container.contents().filter(function(){return this.nodeType===3}).remove();if($.isPlainObject(source)){_assert($.isArray(source.children),"if an object is passed as source, it must contain a 'children' array (all other properties are added to 'tree.data')");metaData=source;source=source.children;delete metaData.children;$.extend(tree.data,metaData)}break;default:$.error("Invalid data-type: "+type)}}else if(typeof source==="string"){$.error("Not implemented")}dfd=this.nodeLoadChildren(rootCtx,source).done(function(){tree.render();if(ctx.options.selectMode===3){tree.rootNode.fixSelection3FromEndNodes()}if(tree.activeNode&&tree.options.activeVisible){tree.activeNode.makeVisible()}tree._triggerTreeEvent("init",null,{status:true})}).fail(function(){tree.render();tree._triggerTreeEvent("init",null,{status:false})});return dfd},treeRegisterNode:function(ctx,add,node){},treeSetFocus:function(ctx,flag,callOpts){function ensureTreeFocus(thisTree){if(!thisTree.activeNode&&thisTree.getFirstChild()){thisTree.getFirstChild().setFocus()}}flag=flag!==false;if(flag!==this.hasFocus()){this._hasFocus=flag;if(!flag&&this.focusNode){this.focusNode.setFocus(false)}else if(flag&&(!callOpts||!callOpts.calledByNode)){$(this.$container).focus()}this.$container.toggleClass("fancytree-treefocus",flag);this._triggerTreeEvent(flag?"focusTree":"blurTree");if(flag){var thisTree=this;setTimeout(function(){ensureTreeFocus(thisTree)},0)}}},treeSetOption:function(ctx,key,value){var tree=ctx.tree,callDefault=true,rerender=false;switch(key){case"aria":case"checkbox":case"icon":case"minExpandLevel":case"tabindex":tree._callHook("treeCreate",tree);rerender=true;break;case"escapeTitles":case"tooltip":rerender=true;break;case"rtl":if(value===false){tree.$container.removeAttr("DIR").removeClass("fancytree-rtl")}else{tree.$container.attr("DIR","RTL").addClass("fancytree-rtl")}rerender=true;break;case"source":callDefault=false;tree._callHook("treeLoad",tree,value);rerender=true;break}tree.debug("set option "+key+"="+value+" <"+typeof value+">");if(callDefault){if(this.widget._super){this.widget._super.call(this.widget,key,value)}else{$.Widget.prototype._setOption.call(this.widget,key,value)}}if(rerender){tree.render(true,false)}}});$.widget("ui.fancytree",{options:{activeVisible:true,ajax:{type:"GET",cache:false,dataType:"json"},aria:true,autoActivate:true,autoCollapse:false,autoScroll:false,checkbox:false,clickFolderMode:4,debugLevel:null,disabled:false,enableAspx:true,escapeTitles:false,extensions:[],toggleEffect:{effect:"blind",options:{direction:"vertical",scale:"box"},duration:200},generateIds:false,icon:true,idPrefix:"ft_",focusOnSelect:false,keyboard:true,keyPathSeparator:"/",minExpandLevel:1,quicksearch:false,rtl:false,scrollOfs:{top:0,bottom:0},scrollParent:null,selectMode:2,strings:{loading:"Loading...",loadError:"Load error!",moreData:"More...",noData:"No data."},tabindex:"0",titlesTabbable:false,tooltip:false,_classNames:{node:"fancytree-node",folder:"fancytree-folder",animating:"fancytree-animating",combinedExpanderPrefix:"fancytree-exp-",combinedIconPrefix:"fancytree-ico-",hasChildren:"fancytree-has-children",active:"fancytree-active",selected:"fancytree-selected",expanded:"fancytree-expanded",lazy:"fancytree-lazy",focused:"fancytree-focused",partload:"fancytree-partload",partsel:"fancytree-partsel",radio:"fancytree-radio",unselectable:"fancytree-unselectable",lastsib:"fancytree-lastsib",loading:"fancytree-loading",error:"fancytree-error",statusNodePrefix:"fancytree-statusnode-"},lazyLoad:null,postProcess:null},_create:function(){this.tree=new Fancytree(this);this.$source=this.source||this.element.data("type")==="json"?this.element:this.element.find(">ul:first");var extension,extName,i,opts=this.options,extensions=opts.extensions,base=this.tree;for(i=0;i<extensions.length;i++){extName=extensions[i];extension=$.ui.fancytree._extensions[extName];if(!extension){$.error("Could not apply extension '"+extName+"' (it is not registered, did you forget to include it?)")}this.tree.options[extName]=$.extend(true,{},extension.options,this.tree.options[extName]);_assert(this.tree.ext[extName]===undefined,"Extension name must not exist as Fancytree.ext attribute: '"+extName+"'");this.tree.ext[extName]={};_subclassObject(this.tree,base,extension,extName);base=extension}if(opts.icons!==undefined){if(opts.icon!==true){$.error("'icons' tree option is deprecated since v2.14.0: use 'icon' only instead")}else{this.tree.warn("'icons' tree option is deprecated since v2.14.0: use 'icon' instead");opts.icon=opts.icons}}if(opts.iconClass!==undefined){if(opts.icon){$.error("'iconClass' tree option is deprecated since v2.14.0: use 'icon' only instead")}else{this.tree.warn("'iconClass' tree option is deprecated since v2.14.0: use 'icon' instead");opts.icon=opts.iconClass}}if(opts.tabbable!==undefined){opts.tabindex=opts.tabbable?"0":"-1";this.tree.warn("'tabbable' tree option is deprecated since v2.17.0: use 'tabindex='"+opts.tabindex+"' instead")}this.tree._callHook("treeCreate",this.tree)},_init:function(){this.tree._callHook("treeInit",this.tree);this._bind()},_setOption:function(key,value){return this.tree._callHook("treeSetOption",this.tree,key,value)},destroy:function(){this._unbind();this.tree._callHook("treeDestroy",this.tree);$.Widget.prototype.destroy.call(this)},_unbind:function(){var ns=this.tree._ns;this.element.off(ns);this.tree.$container.off(ns);$(document).off(ns)},_bind:function(){var that=this,opts=this.options,tree=this.tree,ns=tree._ns;this._unbind();tree.$container.on("focusin"+ns+" focusout"+ns,function(event){var node=FT.getNode(event),flag=event.type==="focusin";if(node){tree._callHook("nodeSetFocus",tree._makeHookContext(node,event),flag)}else{tree._callHook("treeSetFocus",tree,flag)}}).on("selectstart"+ns,"span.fancytree-title",function(event){event.preventDefault()}).on("keydown"+ns,function(event){if(opts.disabled||opts.keyboard===false){return true}var res,node=tree.focusNode,ctx=tree._makeHookContext(node||tree,event),prevPhase=tree.phase;try{tree.phase="userEvent";if(node){res=tree._triggerNodeEvent("keydown",node,event)}else{res=tree._triggerTreeEvent("keydown",event)}if(res==="preventNav"){res=true}else if(res!==false){res=tree._callHook("nodeKeydown",ctx)}return res}finally{tree.phase=prevPhase}}).on("mousedown"+ns+" dblclick"+ns,function(event){if(opts.disabled){return true}var ctx,et=FT.getEventTarget(event),node=et.node,tree=that.tree,prevPhase=tree.phase;if(!node){return true}ctx=tree._makeHookContext(node,event);try{tree.phase="userEvent";switch(event.type){case"mousedown":ctx.targetType=et.type;if(node.isPagingNode()){return tree._triggerNodeEvent("clickPaging",ctx,event)===true}return tree._triggerNodeEvent("click",ctx,event)===false?false:tree._callHook("nodeClick",ctx);case"dblclick":ctx.targetType=et.type;return tree._triggerNodeEvent("dblclick",ctx,event)===false?false:tree._callHook("nodeDblclick",ctx)}}finally{tree.phase=prevPhase}})},getActiveNode:function(){return this.tree.activeNode},getNodeByKey:function(key){return this.tree.getNodeByKey(key)},getRootNode:function(){return this.tree.rootNode},getTree:function(){return this.tree}});FT=$.ui.fancytree;$.extend($.ui.fancytree,{version:"@VERSION",buildType:"development",debugLevel:2,_nextId:1,_nextNodeKey:1,_extensions:{},_FancytreeClass:Fancytree,_FancytreeNodeClass:FancytreeNode,jquerySupports:{positionMyOfs:isVersionAtLeast($.ui.version,1,9)},assert:function(cond,msg){return _assert(cond,msg)},debounce:function(timeout,fn,invokeAsap,ctx){var timer;if(arguments.length===3&&typeof invokeAsap!=="boolean"){ctx=invokeAsap;invokeAsap=false}return function(){var args=arguments;ctx=ctx||this;invokeAsap&&!timer&&fn.apply(ctx,args);clearTimeout(timer);timer=setTimeout(function(){invokeAsap||fn.apply(ctx,args);timer=null},timeout)}},debug:function(msg){$.ui.fancytree.debugLevel>=2&&consoleApply("log",arguments)},error:function(msg){consoleApply("error",arguments)},escapeHtml:_escapeHtml,fixPositionOptions:function(opts){if(opts.offset||(""+opts.my+opts.at).indexOf("%")>=0){$.error("expected new position syntax (but '%' is not supported)")}if(!$.ui.fancytree.jquerySupports.positionMyOfs){var myParts=/(\w+)([+-]?\d+)?\s+(\w+)([+-]?\d+)?/.exec(opts.my),atParts=/(\w+)([+-]?\d+)?\s+(\w+)([+-]?\d+)?/.exec(opts.at),dx=(myParts[2]?+myParts[2]:0)+(atParts[2]?+atParts[2]:0),dy=(myParts[4]?+myParts[4]:0)+(atParts[4]?+atParts[4]:0);opts=$.extend({},opts,{my:myParts[1]+" "+myParts[3],at:atParts[1]+" "+atParts[3]});if(dx||dy){opts.offset=""+dx+" "+dy}}return opts},getEventTargetType:function(event){return this.getEventTarget(event).type},getEventTarget:function(event){var tcn=event&&event.target?event.target.className:"",res={node:this.getNode(event.target),type:undefined};if(/\bfancytree-title\b/.test(tcn)){res.type="title"}else if(/\bfancytree-expander\b/.test(tcn)){res.type=res.node.hasChildren()===false?"prefix":"expander"}else if(/\bfancytree-checkbox\b/.test(tcn)){res.type="checkbox"}else if(/\bfancytree-icon\b/.test(tcn)){res.type="icon"}else if(/\bfancytree-node\b/.test(tcn)){res.type="title"}else if(event&&event.target&&$(event.target).closest(".fancytree-title").length){res.type="title"}return res},getNode:function(el){if(el instanceof FancytreeNode){return el}else if(el instanceof jQuery){el=el[0]}else if(el.originalEvent!==undefined){el=el.target}while(el){if(el.ftnode){return el.ftnode}el=el.parentNode}return null},getTree:function(el){var widget;if(el instanceof Fancytree){return el}if(el===undefined){el=0}if(typeof el==="number"){el=$(".fancytree-container").eq(el)}else if(typeof el==="string"){el=$(el).eq(0)}else if(el.selector!==undefined){el=el.eq(0)}else if(el.originalEvent!==undefined){el=$(el.target)}el=el.closest(":ui-fancytree");widget=el.data("ui-fancytree")||el.data("fancytree");return widget?widget.tree:null},evalOption:function(optionName,node,nodeObject,treeOptions,defaultValue){var ctx,res,tree=node.tree,treeOpt=treeOptions[optionName],nodeOpt=nodeObject[optionName];if($.isFunction(treeOpt)){ctx={node:node,tree:tree,widget:tree.widget,options:tree.widget.options};res=treeOpt.call(tree,{type:optionName},ctx);if(res==null){res=nodeOpt}}else{res=nodeOpt!=null?nodeOpt:treeOpt}if(res==null){res=defaultValue}return res},eventToString:function(event){var which=event.which,et=event.type,s=[];if(event.altKey){s.push("alt")}if(event.ctrlKey){s.push("ctrl")}if(event.metaKey){s.push("meta")}if(event.shiftKey){s.push("shift")}if(et==="click"||et==="dblclick"){s.push(MOUSE_BUTTONS[event.button]+et)}else{if(!IGNORE_KEYCODES[which]){s.push(SPECIAL_KEYCODES[which]||String.fromCharCode(which).toLowerCase())}}return s.join("+")},info:function(msg){$.ui.fancytree.debugLevel>=1&&consoleApply("info",arguments)},keyEventToString:function(event){this.warn("keyEventToString() is deprecated: use eventToString()");return this.eventToString(event)},overrideMethod:function(instance,methodName,handler){var prevSuper,_super=instance[methodName]||$.noop;instance[methodName]=function(){try{prevSuper=this._super;this._super=_super;return handler.apply(this,arguments)}finally{this._super=prevSuper}}},parseHtml:function($ul){var classes,className,extraClasses,i,iPos,l,tmp,tmp2,$children=$ul.find(">li"),children=[];$children.each(function(){var allData,lowerCaseAttr,$li=$(this),$liSpan=$li.find(">span:first",this),$liA=$liSpan.length?null:$li.find(">a:first"),d={tooltip:null,data:{}};if($liSpan.length){d.title=$liSpan.html()}else if($liA&&$liA.length){d.title=$liA.html();d.data.href=$liA.attr("href");d.data.target=$liA.attr("target");d.tooltip=$liA.attr("title")}else{d.title=$li.html();iPos=d.title.search(/<ul/i);if(iPos>=0){d.title=d.title.substring(0,iPos)}}d.title=$.trim(d.title);for(i=0,l=CLASS_ATTRS.length;i<l;i++){d[CLASS_ATTRS[i]]=undefined}classes=this.className.split(" ");extraClasses=[];for(i=0,l=classes.length;i<l;i++){className=classes[i];if(CLASS_ATTR_MAP[className]){d[className]=true}else{extraClasses.push(className)}}d.extraClasses=extraClasses.join(" ");tmp=$li.attr("title");if(tmp){d.tooltip=tmp}tmp=$li.attr("id");if(tmp){d.key=tmp}if($li.attr("hideCheckbox")){d.checkbox=false}allData=_getElementDataAsDict($li);if(allData&&!$.isEmptyObject(allData)){for(lowerCaseAttr in NODE_ATTR_LOWERCASE_MAP){if(allData.hasOwnProperty(lowerCaseAttr)){allData[NODE_ATTR_LOWERCASE_MAP[lowerCaseAttr]]=allData[lowerCaseAttr];delete allData[lowerCaseAttr]}}for(i=0,l=NODE_ATTRS.length;i<l;i++){tmp=NODE_ATTRS[i];tmp2=allData[tmp];if(tmp2!=null){delete allData[tmp];d[tmp]=tmp2}}$.extend(d.data,allData)}$ul=$li.find(">ul:first");if($ul.length){d.children=$.ui.fancytree.parseHtml($ul)}else{d.children=d.lazy?undefined:null}children.push(d)});return children},registerExtension:function(definition){_assert(definition.name!=null,"extensions must have a `name` property.");_assert(definition.version!=null,"extensions must have a `version` property.");$.ui.fancytree._extensions[definition.name]=definition},unescapeHtml:function(s){var e=document.createElement("div");e.innerHTML=s;return e.childNodes.length===0?"":e.childNodes[0].nodeValue},warn:function(msg){consoleApply("warn",arguments)}})})(jQuery,window,document);(function($,window,document,undefined){"use strict";var didRegisterDnd=false,classDropAccept="fancytree-drop-accept",classDropAfter="fancytree-drop-after",classDropBefore="fancytree-drop-before",classDropOver="fancytree-drop-over",classDropReject="fancytree-drop-reject",classDropTarget="fancytree-drop-target";function offsetString(n){return n===0?"":n>0?"+"+n:""+n}function _registerDnd(){if(didRegisterDnd){return}$.ui.plugin.add("draggable","connectToFancytree",{start:function(event,ui){var draggable=$(this).data("ui-draggable")||$(this).data("draggable"),sourceNode=ui.helper.data("ftSourceNode")||null;if(sourceNode){draggable.offset.click.top=-2;draggable.offset.click.left=+16;return sourceNode.tree.ext.dnd._onDragEvent("start",sourceNode,null,event,ui,draggable)}},drag:function(event,ui){var ctx,isHelper,logObject,draggable=$(this).data("ui-draggable")||$(this).data("draggable"),sourceNode=ui.helper.data("ftSourceNode")||null,prevTargetNode=ui.helper.data("ftTargetNode")||null,targetNode=$.ui.fancytree.getNode(event.target),dndOpts=sourceNode&&sourceNode.tree.options.dnd;if(event.target&&!targetNode){isHelper=$(event.target).closest("div.fancytree-drag-helper,#fancytree-drop-marker").length>0;if(isHelper){logObject=sourceNode||prevTargetNode||$.ui.fancytree;logObject.debug("Drag event over helper: ignored.");return}sourceNode.tree.ext.dnd._dragOverDroppable(event,ui,sourceNode)}ui.helper.data("ftTargetNode",targetNode);if(dndOpts&&dndOpts.updateHelper){ctx=sourceNode.tree._makeHookContext(sourceNode,event,{otherNode:targetNode,ui:ui,draggable:draggable,dropMarker:$("#fancytree-drop-marker")});dndOpts.updateHelper.call(sourceNode.tree,sourceNode,ctx)}if(prevTargetNode&&prevTargetNode!==targetNode){prevTargetNode.tree.ext.dnd._onDragEvent("leave",prevTargetNode,sourceNode,event,ui,draggable)}if(targetNode){if(!targetNode.tree.options.dnd.dragDrop){}else if(targetNode===prevTargetNode){targetNode.tree.ext.dnd._onDragEvent("over",targetNode,sourceNode,event,ui,draggable)}else{targetNode.tree.ext.dnd._onDragEvent("enter",targetNode,sourceNode,event,ui,draggable);targetNode.tree.ext.dnd._onDragEvent("over",targetNode,sourceNode,event,ui,draggable)}}},stop:function(event,ui){var logObject,draggable=$(this).data("ui-draggable")||$(this).data("draggable"),sourceNode=ui.helper.data("ftSourceNode")||null,targetNode=ui.helper.data("ftTargetNode")||null,dropped=event.type==="mouseup"&&event.which===1;if(!dropped){logObject=sourceNode||targetNode||$.ui.fancytree;logObject.debug("Drag was cancelled")}if(targetNode){if(dropped){targetNode.tree.ext.dnd._onDragEvent("drop",targetNode,sourceNode,event,ui,draggable)}targetNode.tree.ext.dnd._onDragEvent("leave",targetNode,sourceNode,event,ui,draggable)}if(sourceNode){sourceNode.tree.ext.dnd._onDragEvent("stop",sourceNode,null,event,ui,draggable)}}});didRegisterDnd=true}function _initDragAndDrop(tree){var dnd=tree.options.dnd||null,glyph=tree.options.glyph||null;if(dnd){_registerDnd()}if(dnd&&dnd.dragStart){tree.widget.element.draggable($.extend({addClasses:false,appendTo:tree.$container,containment:false,delay:0,distance:4,revert:true,revertDuration:0,scroll:true,scrollSpeed:7,scrollSensitivity:10,connectToFancytree:true,helper:function(event){var $helper,$nodeTag,opts,sourceNode=$.ui.fancytree.getNode(event.target);if(!sourceNode){return"<div>ERROR?: helper requested but sourceNode not found</div>"}opts=sourceNode.tree.options.dnd;$nodeTag=$(sourceNode.span);$helper=$("<div class='fancytree-drag-helper'><span class='fancytree-drag-helper-img' /></div>").css({zIndex:3,position:"relative"}).append($nodeTag.find("svg").clone());$helper.data("ftSourceNode",sourceNode);if(glyph){$helper.find(".fancytree-drag-helper-img").addClass(glyph.map.dragHelper)}if(opts.initHelper){opts.initHelper.call(sourceNode.tree,sourceNode,{node:sourceNode,tree:sourceNode.tree,originalEvent:event,ui:{helper:$helper}})}return $helper},start:function(event,ui){var sourceNode=ui.helper.data("ftSourceNode");return!!sourceNode}},tree.options.dnd.draggable))}if(dnd&&dnd.dragDrop){tree.widget.element.droppable($.extend({addClasses:false,tolerance:"intersect",greedy:false},tree.options.dnd.droppable))}}$.ui.fancytree.registerExtension({name:"dnd",version:"@VERSION",options:{autoExpandMS:1e3,draggable:null,droppable:null,focusOnClick:false,preventVoidMoves:true,preventRecursiveMoves:true,smartRevert:true,dropMarkerOffsetX:-24,dropMarkerInsertOffsetX:-16,dragStart:null,dragStop:null,initHelper:null,updateHelper:null,dragEnter:null,dragOver:null,dragExpand:null,dragDrop:null,dragLeave:null},treeInit:function(ctx){var tree=ctx.tree;this._superApply(arguments);if(tree.options.dnd.dragStart){tree.$container.on("mousedown",function(event){if(ctx.options.dnd.focusOnClick){var node=$.ui.fancytree.getNode(event);if(node){node.debug("Re-enable focus that was prevented by jQuery UI draggable.")}setTimeout(function(){$(event.target).closest(":tabbable").focus()},10)}})}_initDragAndDrop(tree)},_setDndStatus:function(sourceNode,targetNode,helper,hitMode,accept){var markerOffsetX,markerAt="center",instData=this._local,dndOpt=this.options.dnd,glyphOpt=this.options.glyph,$source=sourceNode?$(sourceNode.span):null,$target=$(targetNode.span),$targetTitle=$target.find("span.fancytree-title");if(!instData.$dropMarker){instData.$dropMarker=$("<div id='fancytree-drop-marker'></div>").hide().css({"z-index":1e3}).prependTo($(this.$div).parent());if(glyphOpt){instData.$dropMarker.addClass(glyphOpt.map.dropMarker)}}if(hitMode==="after"||hitMode==="before"||hitMode==="over"){markerOffsetX=dndOpt.dropMarkerOffsetX||0;switch(hitMode){case"before":markerAt="top";markerOffsetX+=dndOpt.dropMarkerInsertOffsetX||0;break;case"after":markerAt="bottom";markerOffsetX+=dndOpt.dropMarkerInsertOffsetX||0;break}instData.$dropMarker.toggleClass(classDropAfter,hitMode==="after").toggleClass(classDropOver,hitMode==="over").toggleClass(classDropBefore,hitMode==="before").show().position($.ui.fancytree.fixPositionOptions({my:"left"+offsetString(markerOffsetX)+" center",at:"left "+markerAt,of:$targetTitle}))}else{instData.$dropMarker.hide()}if($source){$source.toggleClass(classDropAccept,accept===true).toggleClass(classDropReject,accept===false)}$target.toggleClass(classDropTarget,hitMode==="after"||hitMode==="before"||hitMode==="over").toggleClass(classDropAfter,hitMode==="after").toggleClass(classDropBefore,hitMode==="before").toggleClass(classDropAccept,accept===true).toggleClass(classDropReject,accept===false);$target.closest("tr").toggleClass(classDropTarget,hitMode==="after"||hitMode==="before"||hitMode==="over").toggleClass(classDropAfter,hitMode==="after").toggleClass(classDropBefore,hitMode==="before").toggleClass(classDropAccept,accept===true).toggleClass(classDropReject,accept===false);helper.toggleClass(classDropAccept,accept===true).toggleClass(classDropReject,accept===false||accept===undefined)},_onDragEvent:function(eventName,node,otherNode,event,ui,draggable){var accept,nodeOfs,parentRect,rect,relPos,relPos2,enterResponse,hitMode,r,opts=this.options,dnd=opts.dnd,ctx=this._makeHookContext(node,event,{otherNode:otherNode,ui:ui,draggable:draggable}),res=null,that=this,$nodeTag=$(node.span);if(dnd.smartRevert){draggable.options.revert="invalid"}switch(eventName){case"start":if(node.isStatusNode()){res=false}else if(dnd.dragStart){res=dnd.dragStart(node,ctx)}if(res===false){this.debug("tree.dragStart() cancelled");ui.helper.trigger("mouseup").hide()}else{if(dnd.smartRevert){rect=node[ctx.tree.nodeContainerAttrName].getBoundingClientRect();parentRect=$(draggable.options.appendTo)[0].getBoundingClientRect();draggable.originalPosition.left=Math.max(0,rect.left-parentRect.left);draggable.originalPosition.top=Math.max(0,rect.top-parentRect.top)}$nodeTag.addClass("fancytree-drag-source");$(document).on("keydown.fancytree-dnd,mousedown.fancytree-dnd",function(event){if(event.type==="keydown"&&event.which===$.ui.keyCode.ESCAPE){that.ext.dnd._cancelDrag()}else if(event.type==="mousedown"){that.ext.dnd._cancelDrag()}})}break;case"enter":if(dnd.preventRecursiveMoves&&node.isDescendantOf(otherNode)){r=false}else{r=dnd.dragEnter?dnd.dragEnter(node,ctx):null}if(!r){res=false}else if($.isArray(r)){res={over:$.inArray("over",r)>=0,before:$.inArray("before",r)>=0,after:$.inArray("after",r)>=0}}else{res={over:r===true||r==="over",before:r===true||r==="before",after:r===true||r==="after"}}ui.helper.data("enterResponse",res);break;case"over":enterResponse=ui.helper.data("enterResponse");hitMode=null;if(enterResponse===false){}else if(typeof enterResponse==="string"){hitMode=enterResponse}else{nodeOfs=$nodeTag.offset();relPos={x:event.pageX-nodeOfs.left,y:event.pageY-nodeOfs.top};relPos2={x:relPos.x/$nodeTag.width(),y:relPos.y/$nodeTag.height()};if(enterResponse.after&&relPos2.y>.75){hitMode="after"}else if(!enterResponse.over&&enterResponse.after&&relPos2.y>.5){hitMode="after"}else if(enterResponse.before&&relPos2.y<=.25){hitMode="before"}else if(!enterResponse.over&&enterResponse.before&&relPos2.y<=.5){hitMode="before"}else if(enterResponse.over){hitMode="over"}if(dnd.preventVoidMoves){if(node===otherNode){this.debug("    drop over source node prevented");hitMode=null}else if(hitMode==="before"&&otherNode&&node===otherNode.getNextSibling()){this.debug("    drop after source node prevented");hitMode=null}else if(hitMode==="after"&&otherNode&&node===otherNode.getPrevSibling()){this.debug("    drop before source node prevented");hitMode=null}else if(hitMode==="over"&&otherNode&&otherNode.parent===node&&otherNode.isLastSibling()){this.debug("    drop last child over own parent prevented");hitMode=null}}ui.helper.data("hitMode",hitMode)}if(hitMode!=="before"&&hitMode!=="after"&&dnd.autoExpandMS&&node.hasChildren()!==false&&!node.expanded&&(!dnd.dragExpand||dnd.dragExpand(node,ctx)!==false)){node.scheduleAction("expand",dnd.autoExpandMS)}if(hitMode&&dnd.dragOver){ctx.hitMode=hitMode;res=dnd.dragOver(node,ctx)}accept=res!==false&&hitMode!==null;if(dnd.smartRevert){draggable.options.revert=!accept}this._local._setDndStatus(otherNode,node,ui.helper,hitMode,accept);break;case"drop":hitMode=ui.helper.data("hitMode");if(hitMode&&dnd.dragDrop){ctx.hitMode=hitMode;dnd.dragDrop(node,ctx)}break;case"leave":node.scheduleAction("cancel");ui.helper.data("enterResponse",null);ui.helper.data("hitMode",null);this._local._setDndStatus(otherNode,node,ui.helper,"out",undefined);if(dnd.dragLeave){dnd.dragLeave(node,ctx)}break;case"stop":$nodeTag.removeClass("fancytree-drag-source");$(document).off(".fancytree-dnd");if(dnd.dragStop){dnd.dragStop(node,ctx)}break;default:$.error("Unsupported drag event: "+eventName)}return res},_cancelDrag:function(){var dd=$.ui.ddmanager.current;if(dd){dd.cancel()}},_dragOverDroppable:function(event,ui,sourceNode){var $target=$(event.target);var helper=ui.helper;if($target.hasClass("droppable")&&!$target.data("hovering")){sourceNode.tree.ext.dnd._dragEnterDroppable(event,ui);$target.data("hovering",true);$target.on("mouseleave",function(e){sourceNode.tree.ext.dnd._dragLeaveDroppable(e,ui)})}},_dragLeaveDroppable:function(event,ui){var $target=$(event.target);var helper=ui.helper;$target.data("hovering",false);var accept=false;helper.toggleClass(classDropAccept,accept===true).toggleClass(classDropReject,accept===false||accept===undefined)},_dragEnterDroppable:function(event,ui){var $target=$(event.target);var helper=ui.helper;var accept=true;helper.toggleClass(classDropAccept,accept===true).toggleClass(classDropReject,accept===false||accept===undefined)}})})(jQuery,window,document);(function($,window,document,undefined){"use strict";var isMac=/Mac/.test(navigator.platform),escapeHtml=$.ui.fancytree.escapeHtml,unescapeHtml=$.ui.fancytree.unescapeHtml;$.ui.fancytree._FancytreeNodeClass.prototype.editStart=function(){var $input,node=this,tree=this.tree,local=tree.ext.edit,instOpts=tree.options.edit,$title=$(".fancytree-title",node.span),eventData={node:node,tree:tree,options:tree.options,isNew:$(node[tree.statusClassPropName]).hasClass("fancytree-edit-new"),orgTitle:node.title,input:null,dirty:false};if(instOpts.beforeEdit.call(node,{type:"beforeEdit"},eventData)===false){return false}$.ui.fancytree.assert(!local.currentNode,"recursive edit");local.currentNode=this;local.eventData=eventData;tree.widget._unbind();$(document).on("mousedown.fancytree-edit",function(event){if(!$(event.target).hasClass("fancytree-edit-input")){node.editEnd(true,event)}});$input=$("<input />",{class:"fancytree-edit-input",type:"text",value:tree.options.escapeTitles?eventData.orgTitle:unescapeHtml(eventData.orgTitle)});local.eventData.input=$input;if(instOpts.adjustWidthOfs!=null){$input.width($title.width()+instOpts.adjustWidthOfs)}if(instOpts.inputCss!=null){$input.css(instOpts.inputCss)}if(instOpts.maxLength!=null){$input.attr("maxlength",instOpts.maxLength)}$title.html($input);$input.focus().change(function(event){$input.addClass("fancytree-edit-dirty")}).keydown(function(event){switch(event.which){case $.ui.keyCode.ESCAPE:node.editEnd(false,event);break;case $.ui.keyCode.ENTER:node.editEnd(true,event);return false}event.stopPropagation()}).blur(function(event){return node.editEnd(true,event)});instOpts.edit.call(node,{type:"edit"},eventData)};$.ui.fancytree._FancytreeNodeClass.prototype.editEnd=function(applyChanges,_event){var newVal,node=this,tree=this.tree,local=tree.ext.edit,eventData=local.eventData,instOpts=tree.options.edit,$title=$(".fancytree-title",node.span),$input=$title.find("input.fancytree-edit-input");if(instOpts.trim){$input.val($.trim($input.val()))}newVal=$input.val();eventData.dirty=newVal!==node.title;eventData.originalEvent=_event;if(applyChanges===false){eventData.save=false}else if(eventData.isNew){eventData.save=newVal!==""}else{eventData.save=eventData.dirty&&newVal!==""}if(instOpts.beforeClose.call(node,{type:"beforeClose"},eventData)===false){return false}if(eventData.save&&instOpts.save.call(node,{type:"save"},eventData)===false){return false}$input.removeClass("fancytree-edit-dirty").off();$(document).off(".fancytree-edit");if(eventData.save){node.setTitle(tree.options.escapeTitles?newVal:escapeHtml(newVal));node.setFocus()}else{if(eventData.isNew){node.remove();node=eventData.node=null;local.relatedNode.setFocus()}else{node.renderTitle();node.setFocus()}}local.eventData=null;local.currentNode=null;local.relatedNode=null;tree.widget._bind();$(tree.$container).focus();eventData.input=null;instOpts.close.call(node,{type:"close"},eventData);return true};$.ui.fancytree._FancytreeNodeClass.prototype.editCreateNode=function(mode,init){var newNode,tree=this.tree,self=this;mode=mode||"child";if(init==null){init={title:""}}else if(typeof init==="string"){init={title:init}}else{$.ui.fancytree.assert($.isPlainObject(init))}if(mode==="child"&&!this.isExpanded()&&this.hasChildren()!==false){this.setExpanded().done(function(){self.editCreateNode(mode,init)});return}newNode=this.addNode(init,mode);newNode.match=true;$(newNode[tree.statusClassPropName]).removeClass("fancytree-hide").addClass("fancytree-match");newNode.makeVisible().done(function(){$(newNode[tree.statusClassPropName]).addClass("fancytree-edit-new");self.tree.ext.edit.relatedNode=self;newNode.editStart()})};$.ui.fancytree._FancytreeClass.prototype.isEditing=function(){return this.ext.edit?this.ext.edit.currentNode:null};$.ui.fancytree._FancytreeNodeClass.prototype.isEditing=function(){return this.tree.ext.edit?this.tree.ext.edit.currentNode===this:false};$.ui.fancytree.registerExtension({name:"edit",version:"2.23.0",options:{adjustWidthOfs:4,allowEmpty:false,inputCss:{minWidth:"3em"},triggerStart:["f2","shift+click","mac+enter"],trim:true,beforeClose:$.noop,beforeEdit:$.noop,close:$.noop,edit:$.noop,save:$.noop},currentNode:null,treeInit:function(ctx){this._superApply(arguments);this.$container.addClass("fancytree-ext-edit")},nodeClick:function(ctx){if($.inArray("shift+click",ctx.options.edit.triggerStart)>=0){if(ctx.originalEvent.shiftKey){ctx.node.editStart();return false}}return this._superApply(arguments)},nodeDblclick:function(ctx){if($.inArray("dblclick",ctx.options.edit.triggerStart)>=0){ctx.node.editStart();return false}return this._superApply(arguments)},nodeKeydown:function(ctx){switch(ctx.originalEvent.which){case 113:if($.inArray("f2",ctx.options.edit.triggerStart)>=0){ctx.node.editStart();return false}break;case $.ui.keyCode.ENTER:if($.inArray("mac+enter",ctx.options.edit.triggerStart)>=0&&isMac){ctx.node.editStart();return false}break}return this._superApply(arguments)}})})(jQuery,window,document);(function($,window,document,undefined){"use strict";var KeyNoData="__not_found__",escapeHtml=$.ui.fancytree.escapeHtml;function _escapeRegex(str){return(str+"").replace(/([.?*+\^\$\[\]\\(){}|-])/g,"\\$1")}function extractHtmlText(s){if(s.indexOf(">")>=0){return $("<div/>").html(s).text()}return s}$.ui.fancytree._FancytreeClass.prototype._applyFilterImpl=function(filter,branchMode,_opts){var match,statusNode,re,reHighlight,temp,count=0,treeOpts=this.options,escapeTitles=treeOpts.escapeTitles,prevAutoCollapse=treeOpts.autoCollapse,opts=$.extend({},treeOpts.filter,_opts),hideMode=opts.mode==="hide",leavesOnly=!!opts.leavesOnly&&!branchMode;if(typeof filter==="string"){if(filter===""){this.warn("Fancytree passing an empty string as a filter is handled as clearFilter().");this.clearFilter();return}if(opts.fuzzy){
match=filter.split("").reduce(function(a,b){return a+"[^"+b+"]*"+b})}else{match=_escapeRegex(filter)}re=new RegExp(".*"+match+".*","i");reHighlight=new RegExp(_escapeRegex(filter),"gi");filter=function(node){var text=escapeTitles?node.title:extractHtmlText(node.title),res=!!re.test(text);if(res&&opts.highlight){if(escapeTitles){temp=text.replace(reHighlight,function(s){return"￷"+s+"￸"});node.titleWithHighlight=escapeHtml(temp).replace(/\uFFF7/g,"<mark>").replace(/\uFFF8/g,"</mark>")}else{node.titleWithHighlight=text.replace(reHighlight,function(s){return"<mark>"+s+"</mark>"})}}return res}}this.enableFilter=true;this.lastFilterArgs=arguments;this.$div.addClass("fancytree-ext-filter");if(hideMode){this.$div.addClass("fancytree-ext-filter-hide")}else{this.$div.addClass("fancytree-ext-filter-dimm")}this.$div.toggleClass("fancytree-ext-filter-hide-expanders",!!opts.hideExpanders);this.visit(function(node){delete node.match;delete node.titleWithHighlight;node.subMatchCount=0});statusNode=this.getRootNode()._findDirectChild(KeyNoData);if(statusNode){statusNode.remove()}treeOpts.autoCollapse=false;this.visit(function(node){if(leavesOnly&&node.children!=null){return}var res=filter(node),matchedByBranch=false;if(res==="skip"){node.visit(function(c){c.match=false},true);return"skip"}if(!res&&(branchMode||res==="branch")&&node.parent.match){res=true;matchedByBranch=true}if(res){count++;node.match=true;node.visitParents(function(p){p.subMatchCount+=1;if(opts.autoExpand&&!matchedByBranch&&!p.expanded){p.setExpanded(true,{noAnimation:true,noEvents:true,scrollIntoView:false});p._filterAutoExpanded=true}})}});treeOpts.autoCollapse=prevAutoCollapse;if(count===0&&opts.nodata&&hideMode){statusNode=opts.nodata;if($.isFunction(statusNode)){statusNode=statusNode()}if(statusNode===true){statusNode={}}else if(typeof statusNode==="string"){statusNode={title:statusNode}}statusNode=$.extend({statusNodeType:"nodata",key:KeyNoData,title:this.options.strings.noData},statusNode);this.getRootNode().addNode(statusNode).match=true}this.render();return count};$.ui.fancytree._FancytreeClass.prototype.filterNodes=function(filter,opts){if(typeof opts==="boolean"){opts={leavesOnly:opts};this.warn("Fancytree.filterNodes() leavesOnly option is deprecated since 2.9.0 / 2015-04-19. Use opts.leavesOnly instead.")}return this._applyFilterImpl(filter,false,opts)};$.ui.fancytree._FancytreeClass.prototype.applyFilter=function(filter){this.warn("Fancytree.applyFilter() is deprecated since 2.1.0 / 2014-05-29. Use .filterNodes() instead.");return this.filterNodes.apply(this,arguments)};$.ui.fancytree._FancytreeClass.prototype.filterBranches=function(filter,opts){return this._applyFilterImpl(filter,true,opts)};$.ui.fancytree._FancytreeClass.prototype.clearFilter=function(){var $title,statusNode=this.getRootNode()._findDirectChild(KeyNoData),escapeTitles=this.options.escapeTitles,enhanceTitle=this.options.enhanceTitle;if(statusNode){statusNode.remove()}this.visit(function(node){if(node.match&&node.span){$title=$(node.span).find(">span.fancytree-title");if(escapeTitles){$title.text(node.title)}else{$title.html(node.title)}if(enhanceTitle){enhanceTitle({type:"enhanceTitle"},{node:node,$title:$title})}}delete node.match;delete node.subMatchCount;delete node.titleWithHighlight;if(node.$subMatchBadge){node.$subMatchBadge.remove();delete node.$subMatchBadge}if(node._filterAutoExpanded&&node.expanded){node.setExpanded(false,{noAnimation:true,noEvents:true,scrollIntoView:false})}delete node._filterAutoExpanded});this.enableFilter=false;this.lastFilterArgs=null;this.$div.removeClass("fancytree-ext-filter fancytree-ext-filter-dimm fancytree-ext-filter-hide");this.render()};$.ui.fancytree._FancytreeClass.prototype.isFilterActive=function(){return!!this.enableFilter};$.ui.fancytree._FancytreeNodeClass.prototype.isMatched=function(){return!(this.tree.enableFilter&&!this.match)};$.ui.fancytree.registerExtension({name:"filter",version:"@VERSION",options:{autoApply:true,autoExpand:false,counter:true,fuzzy:false,hideExpandedCounter:true,hideExpanders:false,highlight:true,leavesOnly:false,nodata:true,mode:"dimm"},nodeLoadChildren:function(ctx,source){return this._superApply(arguments).done(function(){if(ctx.tree.enableFilter&&ctx.tree.lastFilterArgs&&ctx.options.filter.autoApply){ctx.tree._applyFilterImpl.apply(ctx.tree,ctx.tree.lastFilterArgs)}})},nodeSetExpanded:function(ctx,flag,callOpts){delete ctx.node._filterAutoExpanded;if(!flag&&ctx.options.filter.hideExpandedCounter&&ctx.node.$subMatchBadge){ctx.node.$subMatchBadge.show()}return this._superApply(arguments)},nodeRenderStatus:function(ctx){var res,node=ctx.node,tree=ctx.tree,opts=ctx.options.filter,$title=$(node.span).find("span.fancytree-title"),$span=$(node[tree.statusClassPropName]),enhanceTitle=ctx.options.enhanceTitle,escapeTitles=ctx.options.escapeTitles;res=this._super(ctx);if(!$span.length||!tree.enableFilter){return res}$span.toggleClass("fancytree-match",!!node.match).toggleClass("fancytree-submatch",!!node.subMatchCount).toggleClass("fancytree-hide",!(node.match||node.subMatchCount));if(opts.counter&&node.subMatchCount&&(!node.isExpanded()||!opts.hideExpandedCounter)){if(!node.$subMatchBadge){node.$subMatchBadge=$("<span class='fancytree-childcounter'/>");$("span.fancytree-icon, span.fancytree-custom-icon",node.span).append(node.$subMatchBadge)}node.$subMatchBadge.show().text(node.subMatchCount)}else if(node.$subMatchBadge){node.$subMatchBadge.hide()}if(node.span&&(!node.isEditing||!node.isEditing.call(node))){if(node.titleWithHighlight){$title.html(node.titleWithHighlight)}else if(escapeTitles){$title.text(node.title)}else{$title.html(node.title)}if(enhanceTitle){enhanceTitle({type:"enhanceTitle"},{node:node,$title:$title})}}return res}})})(jQuery,window,document);(function($,window,document,undefined){"use strict";function _getIcon(opts,type){return opts.map[type]}$.ui.fancytree.registerExtension({name:"glyph",version:"2.23.0",options:{map:{checkbox:"icon-check-empty",checkboxSelected:"icon-check",checkboxUnknown:"icon-check icon-muted",error:"icon-exclamation-sign",expanderClosed:"icon-caret-right",expanderLazy:"icon-angle-right",expanderOpen:"icon-caret-down",nodata:"icon-meh",noExpander:"",dragHelper:"icon-caret-right",dropMarker:"icon-caret-right",doc:"icon-file-alt",docOpen:"icon-file-alt",loading:"icon-refresh icon-spin",folder:"icon-folder-close-alt",folderOpen:"icon-folder-open-alt"}},treeInit:function(ctx){var tree=ctx.tree;this._superApply(arguments);tree.$container.addClass("fancytree-ext-glyph")},nodeRenderStatus:function(ctx){var icon,res,span,node=ctx.node,$span=$(node.span),opts=ctx.options.glyph,map=opts.map;res=this._super(ctx);if(node.isRoot()){return res}span=$span.children("span.fancytree-expander").get(0);if(span){if(node.expanded&&node.hasChildren()){icon="expanderOpen"}else if(node.isUndefined()){icon="expanderLazy"}else if(node.hasChildren()){icon="expanderClosed"}else{icon="noExpander"}span.className="fancytree-expander "+map[icon]}if(node.tr){span=$("td",node.tr).find("span.fancytree-checkbox").get(0)}else{span=$span.children("span.fancytree-checkbox").get(0)}if(span){icon=node.selected?"checkboxSelected":node.partsel?"checkboxUnknown":"checkbox";span.className="fancytree-checkbox "+map[icon]}span=$span.children("span.fancytree-icon").get(0);if(span){if(node.statusNodeType){icon=_getIcon(opts,node.statusNodeType)}else if(node.folder){icon=node.expanded&&node.hasChildren()?_getIcon(opts,"folderOpen"):_getIcon(opts,"folder")}else{icon=node.expanded?_getIcon(opts,"docOpen"):_getIcon(opts,"doc")}span.className="fancytree-icon "+icon}return res},nodeSetStatus:function(ctx,status,message,details){var res,span,opts=ctx.options.glyph,node=ctx.node;res=this._superApply(arguments);if(status==="error"||status==="loading"||status==="nodata"){if(node.parent){span=$("span.fancytree-expander",node.span).get(0);if(span){span.className="fancytree-expander "+_getIcon(opts,status)}}else{span=$(".fancytree-statusnode-"+status,node[this.nodeContainerAttrName]).find("span.fancytree-icon").get(0);if(span){span.className="fancytree-icon "+_getIcon(opts,status)}}}return res}})})(jQuery,window,document);(function($,window,document,undefined){"use strict";var KC=$.ui.keyCode,NAV_KEYS={text:[KC.UP,KC.DOWN],checkbox:[KC.UP,KC.DOWN,KC.LEFT,KC.RIGHT],link:[KC.UP,KC.DOWN,KC.LEFT,KC.RIGHT],radiobutton:[KC.UP,KC.DOWN,KC.LEFT,KC.RIGHT],"select-one":[KC.LEFT,KC.RIGHT],"select-multiple":[KC.LEFT,KC.RIGHT]};function getColIdx($tr,$td){var colspan,td=$td.get(0),idx=0;$tr.children().each(function(){if(this===td){return false}colspan=$(this).prop("colspan");idx+=colspan?colspan:1});return idx}function findTdAtColIdx($tr,colIdx){var colspan,res=null,idx=0;$tr.children().each(function(){if(idx>=colIdx){res=$(this);return false}colspan=$(this).prop("colspan");idx+=colspan?colspan:1});return res}function findNeighbourTd($target,keyCode){var $tr,colIdx,$td=$target.closest("td"),$tdNext=null;switch(keyCode){case KC.LEFT:$tdNext=$td.prev();break;case KC.RIGHT:$tdNext=$td.next();break;case KC.UP:case KC.DOWN:$tr=$td.parent();colIdx=getColIdx($tr,$td);while(true){$tr=keyCode===KC.UP?$tr.prev():$tr.next();if(!$tr.length){break}if($tr.is(":hidden")){continue}$tdNext=findTdAtColIdx($tr,colIdx);if($tdNext&&$tdNext.find(":input,a").length){break}}break}return $tdNext}$.ui.fancytree.registerExtension({name:"gridnav",version:"@VERSION",options:{autofocusInput:false,handleCursorKeys:true},treeInit:function(ctx){this._requireExtension("table",true,true);this._superApply(arguments);this.$container.addClass("fancytree-ext-gridnav");this.$container.on("focusin",function(event){var ctx2,node=$.ui.fancytree.getNode(event.target);if(node&&!node.isActive()){ctx2=ctx.tree._makeHookContext(node,event);ctx.tree._callHook("nodeSetActive",ctx2,true)}})},nodeSetActive:function(ctx,flag,callOpts){var $outer,opts=ctx.options.gridnav,node=ctx.node,event=ctx.originalEvent||{},triggeredByInput=$(event.target).is(":input");flag=flag!==false;this._superApply(arguments);if(flag){if(ctx.options.titlesTabbable){if(!triggeredByInput){$(node.span).find("span.fancytree-title").focus();node.setFocus()}ctx.tree.$container.attr("tabindex","-1")}else if(opts.autofocusInput&&!triggeredByInput){$outer=$(node.tr||node.span);$outer.find(":input:enabled:first").focus()}}},nodeKeydown:function(ctx){var inputType,handleKeys,$td,opts=ctx.options.gridnav,event=ctx.originalEvent,$target=$(event.target);if($target.is(":input:enabled")){inputType=$target.prop("type")}else if($target.is("a")){inputType="link"}if(inputType&&opts.handleCursorKeys){handleKeys=NAV_KEYS[inputType];if(handleKeys&&$.inArray(event.which,handleKeys)>=0){$td=findNeighbourTd($target,event.which);if($td&&$td.length){$td.find(":input:enabled,a").focus();return false}}return true}return this._superApply(arguments)}})})(jQuery,window,document);(function($,window,document,undefined){"use strict";function _assert(cond,msg){msg=msg||"";if(!cond){$.error("Assertion failed "+msg)}}function insertFirstChild(referenceNode,newNode){referenceNode.insertBefore(newNode,referenceNode.firstChild)}function insertSiblingAfter(referenceNode,newNode){referenceNode.parentNode.insertBefore(newNode,referenceNode.nextSibling)}function setChildRowVisibility(parent,flag){parent.visit(function(node){var tr=node.tr;if(tr){tr.style.display=node.hide||!flag?"none":""}if(!node.expanded){return"skip"}})}function findPrevRowNode(node){var i,last,prev,parent=node.parent,siblings=parent?parent.children:null;if(siblings&&siblings.length>1&&siblings[0]!==node){i=$.inArray(node,siblings);prev=siblings[i-1];_assert(prev.tr);while(prev.children&&prev.children.length){last=prev.children[prev.children.length-1];if(!last.tr){break}prev=last}}else{prev=parent}return prev}$.ui.fancytree.registerExtension({name:"table",version:"@VERSION",options:{checkboxColumnIdx:null,indentation:16,nodeColumnIdx:0},treeInit:function(ctx){var i,columnCount,n,$row,$tbody,tree=ctx.tree,opts=ctx.options,tableOpts=opts.table,$table=tree.widget.element;if(tableOpts.customStatus!=null){if(opts.renderStatusColumns!=null){$.error("The 'customStatus' option is deprecated since v2.15.0. Use 'renderStatusColumns' only instead.")}else{tree.warn("The 'customStatus' option is deprecated since v2.15.0. Use 'renderStatusColumns' instead.");opts.renderStatusColumns=tableOpts.customStatus}}if(opts.renderStatusColumns){if(opts.renderStatusColumns===true){opts.renderStatusColumns=opts.renderColumns}}$table.addClass("fancytree-container fancytree-ext-table");tree.tbody=$table.find(">tbody")[0];$tbody=$(tree.tbody);columnCount=$("thead >tr:last >th",$table).length;$row=$tbody.children("tr:first");if($row.length){n=$row.children("td").length;if(columnCount&&n!==columnCount){tree.warn("Column count mismatch between thead ("+columnCount+") and tbody ("+n+"): using tbody.");columnCount=n}$row=$row.clone()}else{_assert(columnCount>=1,"Need either <thead> or <tbody> with <td> elements to determine column count.");$row=$("<tr />");for(i=0;i<columnCount;i++){$row.append("<td />")}}$row.find(">td").eq(tableOpts.nodeColumnIdx).html("<a class='fancytree-node' />");if(opts.aria){$row.attr("role","row");$row.find("td").attr("role","gridcell")}tree.rowFragment=document.createDocumentFragment();tree.rowFragment.appendChild($row.get(0));$tbody.empty();tree.statusClassPropName="tr";tree.ariaPropName="tr";this.nodeContainerAttrName="tr";tree.$container=$table;this._superApply(arguments);$(tree.rootNode.ul).remove();tree.rootNode.ul=null;this.$container.attr("tabindex",opts.tabindex);if(opts.aria){tree.$container.attr("role","treegrid").attr("aria-readonly",true)}},nodeRemoveChildMarkup:function(ctx){var node=ctx.node;node.visit(function(n){if(n.tr){$(n.tr).remove();n.tr=null}})},nodeRemoveMarkup:function(ctx){var node=ctx.node;if(node.tr){$(node.tr).remove();node.tr=null}this.nodeRemoveChildMarkup(ctx)},nodeRender:function(ctx,force,deep,collapsed,_recursive){var children,firstTr,i,l,newRow,prevNode,prevTr,subCtx,tree=ctx.tree,node=ctx.node,opts=ctx.options,isRootNode=!node.parent;if(tree._enableUpdate===false){return}if(!_recursive){ctx.hasCollapsedParents=node.parent&&!node.parent.expanded}if(!isRootNode){if(node.tr&&force){this.nodeRemoveMarkup(ctx)}if(!node.tr){if(ctx.hasCollapsedParents&&!deep){return}newRow=tree.rowFragment.firstChild.cloneNode(true);prevNode=findPrevRowNode(node);_assert(prevNode);if(collapsed===true&&_recursive){newRow.style.display="none"}else if(deep&&ctx.hasCollapsedParents){newRow.style.display="none"}if(!prevNode.tr){_assert(!prevNode.parent,"prev. row must have a tr, or be system root");insertFirstChild(tree.tbody,newRow)}else{insertSiblingAfter(prevNode.tr,newRow)}node.tr=newRow;if(node.key&&opts.generateIds){node.tr.id=opts.idPrefix+node.key}node.tr.ftnode=node;node.span=$("a.fancytree-node",node.tr).get(0);this.nodeRenderTitle(ctx);if(opts.createNode){opts.createNode.call(tree,{type:"createNode"},ctx)}}else{if(force){this.nodeRenderTitle(ctx)}else{this.nodeRenderStatus(ctx)}}}if(opts.renderNode){opts.renderNode.call(tree,{type:"renderNode"},ctx)}children=node.children;if(children&&(isRootNode||deep||node.expanded)){for(i=0,l=children.length;i<l;i++){subCtx=$.extend({},ctx,{node:children[i]});subCtx.hasCollapsedParents=subCtx.hasCollapsedParents||!node.expanded;this.nodeRender(subCtx,force,deep,collapsed,true)}}if(children&&!_recursive){prevTr=node.tr||null;firstTr=tree.tbody.firstChild;node.visit(function(n){if(n.tr){if(!n.parent.expanded&&n.tr.style.display!=="none"){n.tr.style.display="none";setChildRowVisibility(n,false)}if(n.tr.previousSibling!==prevTr){node.debug("_fixOrder: mismatch at node: "+n);var nextTr=prevTr?prevTr.nextSibling:firstTr;tree.tbody.insertBefore(n.tr,nextTr)}prevTr=n.tr}})}},nodeRenderTitle:function(ctx,title){var $cb,res,node=ctx.node,opts=ctx.options,isStatusNode=node.isStatusNode();res=this._super(ctx,title);if(node.isRootNode()){return res}if(opts.checkbox&&!isStatusNode&&opts.table.checkboxColumnIdx!=null){$cb=$("span.fancytree-checkbox",node.span);$(node.tr).find("td").eq(+opts.table.checkboxColumnIdx).html($cb)}this.nodeRenderStatus(ctx);if(isStatusNode){if(opts.renderStatusColumns){opts.renderStatusColumns.call(ctx.tree,{type:"renderStatusColumns"},ctx)}}else if(opts.renderColumns){opts.renderColumns.call(ctx.tree,{type:"renderColumns"},ctx)}return res},nodeRenderStatus:function(ctx){var indent,node=ctx.node,opts=ctx.options;this._super(ctx);$(node.tr).removeClass("fancytree-node");indent=(node.getLevel()-1)*opts.table.indentation;$(node.span).css({paddingLeft:indent+"px"})},nodeSetExpanded:function(ctx,flag,callOpts){flag=flag!==false;if(ctx.node.expanded&&flag||!ctx.node.expanded&&!flag){return this._superApply(arguments)}var dfd=new $.Deferred,subOpts=$.extend({},callOpts,{noEvents:true,noAnimation:true});callOpts=callOpts||{};function _afterExpand(ok){setChildRowVisibility(ctx.node,flag);if(ok){if(flag&&ctx.options.autoScroll&&!callOpts.noAnimation&&ctx.node.hasChildren()){ctx.node.getLastChild().scrollIntoView(true,{topNode:ctx.node}).always(function(){if(!callOpts.noEvents){ctx.tree._triggerNodeEvent(flag?"expand":"collapse",ctx)}dfd.resolveWith(ctx.node)})}else{if(!callOpts.noEvents){ctx.tree._triggerNodeEvent(flag?"expand":"collapse",ctx)}dfd.resolveWith(ctx.node)}}else{if(!callOpts.noEvents){ctx.tree._triggerNodeEvent(flag?"expand":"collapse",ctx)}dfd.rejectWith(ctx.node)}}this._super(ctx,flag,subOpts).done(function(){_afterExpand(true)}).fail(function(){_afterExpand(false)});return dfd.promise()},nodeSetStatus:function(ctx,status,message,details){if(status==="ok"){var node=ctx.node,firstChild=node.children?node.children[0]:null;if(firstChild&&firstChild.isStatusNode()){$(firstChild.tr).remove()}}return this._superApply(arguments)},treeClear:function(ctx){this.nodeRemoveChildMarkup(this._makeHookContext(this.rootNode));return this._superApply(arguments)},treeDestroy:function(ctx){this.$container.find("tbody").empty();this.$source&&this.$source.removeClass("ui-helper-hidden");return this._superApply(arguments)}})})(jQuery,window,document);(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module==="object"&&module.exports){module.exports=function(root,jQuery){if(typeof jQuery==="undefined"){if(typeof window!=="undefined"){jQuery=require("jquery")}else{jQuery=require("jquery")(root)}}factory(jQuery);return jQuery}}else{factory(jQuery)}})(function($){"use strict";var rCRLF=/\r?\n/g;var feature={};feature.fileapi=$('<input type="file">').get(0).files!==undefined;feature.formdata=typeof window.FormData!=="undefined";var hasProp=!!$.fn.prop;$.fn.attr2=function(){if(!hasProp){return this.attr.apply(this,arguments)}var val=this.prop.apply(this,arguments);if(val&&val.jquery||typeof val==="string"){return val}return this.attr.apply(this,arguments)};$.fn.ajaxSubmit=function(options,data,dataType,onSuccess){if(!this.length){log("ajaxSubmit: skipping submit process - no element selected");return this}var method,action,url,$form=this;if(typeof options==="function"){options={success:options}}else if(typeof options==="string"||options===false&&arguments.length>0){options={url:options,data:data,dataType:dataType};if(typeof onSuccess==="function"){options.success=onSuccess}}else if(typeof options==="undefined"){options={}}method=options.method||options.type||this.attr2("method");action=options.url||this.attr2("action");url=typeof action==="string"?$.trim(action):"";url=url||window.location.href||"";if(url){url=(url.match(/^([^#]+)/)||[])[1]}options=$.extend(true,{url:url,success:$.ajaxSettings.success,type:method||$.ajaxSettings.type,iframeSrc:"about:blank"},options);var veto={};this.trigger("form-pre-serialize",[this,options,veto]);if(veto.veto){log("ajaxSubmit: submit vetoed via form-pre-serialize trigger");return this}if(options.beforeSerialize&&options.beforeSerialize(this,options)===false){log("ajaxSubmit: submit aborted via beforeSerialize callback");return this}var traditional=options.traditional;if(typeof traditional==="undefined"){traditional=$.ajaxSettings.traditional}var elements=[];var qx,a=this.formToArray(options.semantic,elements,options.filtering);if(options.data){var optionsData=$.isFunction(options.data)?options.data(a):options.data;options.extraData=optionsData;qx=$.param(optionsData,traditional)}if(options.beforeSubmit&&options.beforeSubmit(a,this,options)===false){log("ajaxSubmit: submit aborted via beforeSubmit callback");return this}this.trigger("form-submit-validate",[a,this,options,veto]);if(veto.veto){log("ajaxSubmit: submit vetoed via form-submit-validate trigger");return this}var q=$.param(a,traditional);if(qx){q=q?q+"&"+qx:qx}if(options.type.toUpperCase()==="GET"){options.url+=(options.url.indexOf("?")>=0?"&":"?")+q;options.data=null}else{options.data=q}var callbacks=[];if(options.resetForm){callbacks.push(function(){$form.resetForm()})}if(options.clearForm){callbacks.push(function(){$form.clearForm(options.includeHidden)})}if(!options.dataType&&options.target){var oldSuccess=options.success||function(){};callbacks.push(function(data,textStatus,jqXHR){var successArguments=arguments,fn=options.replaceTarget?"replaceWith":"html";$(options.target)[fn](data).each(function(){oldSuccess.apply(this,successArguments)})})}else if(options.success){if($.isArray(options.success)){$.merge(callbacks,options.success)}else{callbacks.push(options.success)}}options.success=function(data,status,xhr){var context=options.context||this;for(var i=0,max=callbacks.length;i<max;i++){callbacks[i].apply(context,[data,status,xhr||$form,$form])}};if(options.error){var oldError=options.error;options.error=function(xhr,status,error){var context=options.context||this;oldError.apply(context,[xhr,status,error,$form])}}if(options.complete){var oldComplete=options.complete;options.complete=function(xhr,status){var context=options.context||this;oldComplete.apply(context,[xhr,status,$form])}}var fileInputs=$("input[type=file]:enabled",this).filter(function(){return $(this).val()!==""});var hasFileInputs=fileInputs.length>0;var mp="multipart/form-data";var multipart=$form.attr("enctype")===mp||$form.attr("encoding")===mp;var fileAPI=feature.fileapi&&feature.formdata;log("fileAPI :"+fileAPI);var shouldUseFrame=(hasFileInputs||multipart)&&!fileAPI;var jqxhr;if(options.iframe!==false&&(options.iframe||shouldUseFrame)){if(options.closeKeepAlive){$.get(options.closeKeepAlive,function(){jqxhr=fileUploadIframe(a)})}else{jqxhr=fileUploadIframe(a)}}else if((hasFileInputs||multipart)&&fileAPI){jqxhr=fileUploadXhr(a)}else{jqxhr=$.ajax(options)}$form.removeData("jqxhr").data("jqxhr",jqxhr);for(var k=0;k<elements.length;k++){elements[k]=null}this.trigger("form-submit-notify",[this,options]);return this;function deepSerialize(extraData){var serialized=$.param(extraData,options.traditional).split("&");var len=serialized.length;var result=[];var i,part;for(i=0;i<len;i++){serialized[i]=serialized[i].replace(/\+/g," ");part=serialized[i].split("=");result.push([decodeURIComponent(part[0]),decodeURIComponent(part[1])])}return result}function fileUploadXhr(a){var formdata=new FormData;for(var i=0;i<a.length;i++){formdata.append(a[i].name,a[i].value)}if(options.extraData){var serializedData=deepSerialize(options.extraData);for(i=0;i<serializedData.length;i++){if(serializedData[i]){formdata.append(serializedData[i][0],serializedData[i][1])}}}options.data=null;var s=$.extend(true,{},$.ajaxSettings,options,{contentType:false,processData:false,cache:false,type:method||"POST"});if(options.uploadProgress){s.xhr=function(){var xhr=$.ajaxSettings.xhr();if(xhr.upload){xhr.upload.addEventListener("progress",function(event){var percent=0;var position=event.loaded||event.position;var total=event.total;if(event.lengthComputable){percent=Math.ceil(position/total*100)}options.uploadProgress(event,position,total,percent)},false)}return xhr}}s.data=null;var beforeSend=s.beforeSend;s.beforeSend=function(xhr,o){if(options.formData){o.data=options.formData}else{o.data=formdata}if(beforeSend){beforeSend.call(this,xhr,o)}};return $.ajax(s)}function fileUploadIframe(a){var form=$form[0],el,i,s,g,id,$io,io,xhr,sub,n,timedOut,timeoutHandle;var deferred=$.Deferred();deferred.abort=function(status){xhr.abort(status)};if(a){for(i=0;i<elements.length;i++){el=$(elements[i]);if(hasProp){el.prop("disabled",false)}else{el.removeAttr("disabled")}}}s=$.extend(true,{},$.ajaxSettings,options);s.context=s.context||s;id="jqFormIO"+(new Date).getTime();var ownerDocument=form.ownerDocument;var $body=$form.closest("body");if(s.iframeTarget){$io=$(s.iframeTarget,ownerDocument);n=$io.attr2("name");if(!n){$io.attr2("name",id)}else{id=n}}else{$io=$('<iframe name="'+id+'" src="'+s.iframeSrc+'" />',ownerDocument);$io.css({position:"absolute",top:"-1000px",left:"-1000px"})}io=$io[0];xhr={aborted:0,responseText:null,responseXML:null,status:0,statusText:"n/a",getAllResponseHeaders:function(){},getResponseHeader:function(){},setRequestHeader:function(){},abort:function(status){var e=status==="timeout"?"timeout":"aborted";log("aborting upload... "+e);this.aborted=1;try{if(io.contentWindow.document.execCommand){io.contentWindow.document.execCommand("Stop")}}catch(ignore){}$io.attr("src",s.iframeSrc);xhr.error=e;if(s.error){s.error.call(s.context,xhr,e,status)}if(g){$.event.trigger("ajaxError",[xhr,s,e])}if(s.complete){s.complete.call(s.context,xhr,e)}}};g=s.global;if(g&&$.active++===0){$.event.trigger("ajaxStart")}if(g){$.event.trigger("ajaxSend",[xhr,s])}if(s.beforeSend&&s.beforeSend.call(s.context,xhr,s)===false){if(s.global){$.active--}deferred.reject();return deferred}if(xhr.aborted){deferred.reject();return deferred}sub=form.clk;if(sub){n=sub.name;if(n&&!sub.disabled){s.extraData=s.extraData||{};s.extraData[n]=sub.value;if(sub.type==="image"){s.extraData[n+".x"]=form.clk_x;s.extraData[n+".y"]=form.clk_y}}}var CLIENT_TIMEOUT_ABORT=1;var SERVER_ABORT=2;function getDoc(frame){var doc=null;try{if(frame.contentWindow){doc=frame.contentWindow.document}}catch(err){log("cannot get iframe.contentWindow document: "+err)}if(doc){return doc}try{doc=frame.contentDocument?frame.contentDocument:frame.document}catch(err){log("cannot get iframe.contentDocument: "+err);doc=frame.document}return doc}var csrf_token=$("meta[name=csrf-token]").attr("content");var csrf_param=$("meta[name=csrf-param]").attr("content");if(csrf_param&&csrf_token){s.extraData=s.extraData||{};s.extraData[csrf_param]=csrf_token}function doSubmit(){var t=$form.attr2("target"),a=$form.attr2("action"),mp="multipart/form-data",et=$form.attr("enctype")||$form.attr("encoding")||mp;form.setAttribute("target",id);if(!method||/post/i.test(method)){form.setAttribute("method","POST")}if(a!==s.url){form.setAttribute("action",s.url)}if(!s.skipEncodingOverride&&(!method||/post/i.test(method))){$form.attr({encoding:"multipart/form-data",enctype:"multipart/form-data"})}if(s.timeout){timeoutHandle=setTimeout(function(){timedOut=true;cb(CLIENT_TIMEOUT_ABORT)},s.timeout)}function checkState(){try{var state=getDoc(io).readyState;log("state = "+state);if(state&&state.toLowerCase()==="uninitialized"){setTimeout(checkState,50)}}catch(e){log("Server abort: ",e," (",e.name,")");cb(SERVER_ABORT);if(timeoutHandle){clearTimeout(timeoutHandle)}timeoutHandle=undefined}}var extraInputs=[];try{if(s.extraData){for(var n in s.extraData){if(s.extraData.hasOwnProperty(n)){if($.isPlainObject(s.extraData[n])&&s.extraData[n].hasOwnProperty("name")&&s.extraData[n].hasOwnProperty("value")){extraInputs.push($('<input type="hidden" name="'+s.extraData[n].name+'">',ownerDocument).val(s.extraData[n].value).appendTo(form)[0])}else{extraInputs.push($('<input type="hidden" name="'+n+'">',ownerDocument).val(s.extraData[n]).appendTo(form)[0])}}}}if(!s.iframeTarget){$io.appendTo($body)}if(io.attachEvent){io.attachEvent("onload",cb)}else{io.addEventListener("load",cb,false)}setTimeout(checkState,15);try{form.submit()}catch(err){var submitFn=document.createElement("form").submit;submitFn.apply(form)}}finally{form.setAttribute("action",a);form.setAttribute("enctype",et);if(t){form.setAttribute("target",t)}else{$form.removeAttr("target")}$(extraInputs).remove()}}if(s.forceSync){doSubmit()}else{setTimeout(doSubmit,10)}var data,doc,domCheckCount=50,callbackProcessed;function cb(e){if(xhr.aborted||callbackProcessed){return}doc=getDoc(io);if(!doc){log("cannot access response document");e=SERVER_ABORT}if(e===CLIENT_TIMEOUT_ABORT&&xhr){xhr.abort("timeout");deferred.reject(xhr,"timeout");return}else if(e===SERVER_ABORT&&xhr){xhr.abort("server abort");deferred.reject(xhr,"error","server abort");return}if(!doc||doc.location.href===s.iframeSrc){if(!timedOut){return}}if(io.detachEvent){io.detachEvent("onload",cb)}else{io.removeEventListener("load",cb,false)}var status="success",errMsg;try{if(timedOut){throw"timeout"}var isXml=s.dataType==="xml"||doc.XMLDocument||$.isXMLDoc(doc);log("isXml="+isXml);if(!isXml&&window.opera&&(doc.body===null||!doc.body.innerHTML)){if(--domCheckCount){log("requeing onLoad callback, DOM not available");setTimeout(cb,250);return}}var docRoot=doc.body?doc.body:doc.documentElement;xhr.responseText=docRoot?docRoot.innerHTML:null;xhr.responseXML=doc.XMLDocument?doc.XMLDocument:doc;if(isXml){s.dataType="xml"}xhr.getResponseHeader=function(header){var headers={"content-type":s.dataType};return headers[header.toLowerCase()]};if(docRoot){xhr.status=Number(docRoot.getAttribute("status"))||xhr.status;xhr.statusText=docRoot.getAttribute("statusText")||xhr.statusText}var dt=(s.dataType||"").toLowerCase();var scr=/(json|script|text)/.test(dt);if(scr||s.textarea){var ta=doc.getElementsByTagName("textarea")[0];if(ta){xhr.responseText=ta.value;xhr.status=Number(ta.getAttribute("status"))||xhr.status;xhr.statusText=ta.getAttribute("statusText")||xhr.statusText}else if(scr){var pre=doc.getElementsByTagName("pre")[0];var b=doc.getElementsByTagName("body")[0];if(pre){xhr.responseText=pre.textContent?pre.textContent:pre.innerText}else if(b){xhr.responseText=b.textContent?b.textContent:b.innerText}}}else if(dt==="xml"&&!xhr.responseXML&&xhr.responseText){xhr.responseXML=toXml(xhr.responseText)}try{data=httpData(xhr,dt,s)}catch(err){status="parsererror";xhr.error=errMsg=err||status}}catch(err){log("error caught: ",err);status="error";xhr.error=errMsg=err||status}if(xhr.aborted){log("upload aborted");status=null}if(xhr.status){status=xhr.status>=200&&xhr.status<300||xhr.status===304?"success":"error"}if(status==="success"){if(s.success){s.success.call(s.context,data,"success",xhr)}deferred.resolve(xhr.responseText,"success",xhr);if(g){$.event.trigger("ajaxSuccess",[xhr,s])}}else if(status){if(typeof errMsg==="undefined"){errMsg=xhr.statusText}if(s.error){s.error.call(s.context,xhr,status,errMsg)}deferred.reject(xhr,"error",errMsg);if(g){$.event.trigger("ajaxError",[xhr,s,errMsg])}}if(g){$.event.trigger("ajaxComplete",[xhr,s])}if(g&&!--$.active){$.event.trigger("ajaxStop")}if(s.complete){s.complete.call(s.context,xhr,status)}callbackProcessed=true;if(s.timeout){clearTimeout(timeoutHandle)}setTimeout(function(){if(!s.iframeTarget){$io.remove()}else{$io.attr("src",s.iframeSrc)}xhr.responseXML=null},100)}var toXml=$.parseXML||function(s,doc){if(window.ActiveXObject){doc=new ActiveXObject("Microsoft.XMLDOM");doc.async="false";doc.loadXML(s)}else{doc=(new DOMParser).parseFromString(s,"text/xml")}return doc&&doc.documentElement&&doc.documentElement.nodeName!=="parsererror"?doc:null};var parseJSON=$.parseJSON||function(s){return window["eval"]("("+s+")")};var httpData=function(xhr,type,s){var ct=xhr.getResponseHeader("content-type")||"",xml=(type==="xml"||!type)&&ct.indexOf("xml")>=0,data=xml?xhr.responseXML:xhr.responseText;if(xml&&data.documentElement.nodeName==="parsererror"){if($.error){$.error("parsererror")}}if(s&&s.dataFilter){data=s.dataFilter(data,type)}if(typeof data==="string"){if((type==="json"||!type)&&ct.indexOf("json")>=0){data=parseJSON(data)}else if((type==="script"||!type)&&ct.indexOf("javascript")>=0){$.globalEval(data)}}return data}
;return deferred}};$.fn.ajaxForm=function(options,data,dataType,onSuccess){if(typeof options==="string"||options===false&&arguments.length>0){options={url:options,data:data,dataType:dataType};if(typeof onSuccess==="function"){options.success=onSuccess}}options=options||{};options.delegation=options.delegation&&$.isFunction($.fn.on);if(!options.delegation&&this.length===0){var o={s:this.selector,c:this.context};if(!$.isReady&&o.s){log("DOM not ready, queuing ajaxForm");$(function(){$(o.s,o.c).ajaxForm(options)});return this}log("terminating; zero elements found by selector"+($.isReady?"":" (DOM not ready)"));return this}if(options.delegation){$(document).off("submit.form-plugin",this.selector,doAjaxSubmit).off("click.form-plugin",this.selector,captureSubmittingElement).on("submit.form-plugin",this.selector,options,doAjaxSubmit).on("click.form-plugin",this.selector,options,captureSubmittingElement);return this}return this.ajaxFormUnbind().on("submit.form-plugin",options,doAjaxSubmit).on("click.form-plugin",options,captureSubmittingElement)};function doAjaxSubmit(e){var options=e.data;if(!e.isDefaultPrevented()){e.preventDefault();$(e.target).closest("form").ajaxSubmit(options)}}function captureSubmittingElement(e){var target=e.target;var $el=$(target);if(!$el.is("[type=submit],[type=image]")){var t=$el.closest("[type=submit]");if(t.length===0){return}target=t[0]}var form=target.form;form.clk=target;if(target.type==="image"){if(typeof e.offsetX!=="undefined"){form.clk_x=e.offsetX;form.clk_y=e.offsetY}else if(typeof $.fn.offset==="function"){var offset=$el.offset();form.clk_x=e.pageX-offset.left;form.clk_y=e.pageY-offset.top}else{form.clk_x=e.pageX-target.offsetLeft;form.clk_y=e.pageY-target.offsetTop}}setTimeout(function(){form.clk=form.clk_x=form.clk_y=null},100)}$.fn.ajaxFormUnbind=function(){return this.off("submit.form-plugin click.form-plugin")};$.fn.formToArray=function(semantic,elements,filtering){var a=[];if(this.length===0){return a}var form=this[0];var formId=this.attr("id");var els=semantic||typeof form.elements==="undefined"?form.getElementsByTagName("*"):form.elements;var els2;if(els){els=$.makeArray(els)}if(formId&&(semantic||/(Edge|Trident)\//.test(navigator.userAgent))){els2=$(':input[form="'+formId+'"]').get();if(els2.length){els=(els||[]).concat(els2)}}if(!els||!els.length){return a}if($.isFunction(filtering)){els=$.map(els,filtering)}var i,j,n,v,el,max,jmax;for(i=0,max=els.length;i<max;i++){el=els[i];n=el.name;if(!n||el.disabled){continue}if(semantic&&form.clk&&el.type==="image"){if(form.clk===el){a.push({name:n,value:$(el).val(),type:el.type});a.push({name:n+".x",value:form.clk_x},{name:n+".y",value:form.clk_y})}continue}v=$.fieldValue(el,true);if(v&&v.constructor===Array){if(elements){elements.push(el)}for(j=0,jmax=v.length;j<jmax;j++){a.push({name:n,value:v[j]})}}else if(feature.fileapi&&el.type==="file"){if(elements){elements.push(el)}var files=el.files;if(files.length){for(j=0;j<files.length;j++){a.push({name:n,value:files[j],type:el.type})}}else{a.push({name:n,value:"",type:el.type})}}else if(v!==null&&typeof v!=="undefined"){if(elements){elements.push(el)}a.push({name:n,value:v,type:el.type,required:el.required})}}if(!semantic&&form.clk){var $input=$(form.clk),input=$input[0];n=input.name;if(n&&!input.disabled&&input.type==="image"){a.push({name:n,value:$input.val()});a.push({name:n+".x",value:form.clk_x},{name:n+".y",value:form.clk_y})}}return a};$.fn.formSerialize=function(semantic){return $.param(this.formToArray(semantic))};$.fn.fieldSerialize=function(successful){var a=[];this.each(function(){var n=this.name;if(!n){return}var v=$.fieldValue(this,successful);if(v&&v.constructor===Array){for(var i=0,max=v.length;i<max;i++){a.push({name:n,value:v[i]})}}else if(v!==null&&typeof v!=="undefined"){a.push({name:this.name,value:v})}});return $.param(a)};$.fn.fieldValue=function(successful){for(var val=[],i=0,max=this.length;i<max;i++){var el=this[i];var v=$.fieldValue(el,successful);if(v===null||typeof v==="undefined"||v.constructor===Array&&!v.length){continue}if(v.constructor===Array){$.merge(val,v)}else{val.push(v)}}return val};$.fieldValue=function(el,successful){var n=el.name,t=el.type,tag=el.tagName.toLowerCase();if(typeof successful==="undefined"){successful=true}if(successful&&(!n||el.disabled||t==="reset"||t==="button"||(t==="checkbox"||t==="radio")&&!el.checked||(t==="submit"||t==="image")&&el.form&&el.form.clk!==el||tag==="select"&&el.selectedIndex===-1)){return null}if(tag==="select"){var index=el.selectedIndex;if(index<0){return null}var a=[],ops=el.options;var one=t==="select-one";var max=one?index+1:ops.length;for(var i=one?index:0;i<max;i++){var op=ops[i];if(op.selected&&!op.disabled){var v=op.value;if(!v){v=op.attributes&&op.attributes.value&&!op.attributes.value.specified?op.text:op.value}if(one){return v}a.push(v)}}return a}return $(el).val().replace(rCRLF,"\r\n")};$.fn.clearForm=function(includeHidden){return this.each(function(){$("input,select,textarea",this).clearFields(includeHidden)})};$.fn.clearFields=$.fn.clearInputs=function(includeHidden){var re=/^(?:color|date|datetime|email|month|number|password|range|search|tel|text|time|url|week)$/i;return this.each(function(){var t=this.type,tag=this.tagName.toLowerCase();if(re.test(t)||tag==="textarea"){this.value=""}else if(t==="checkbox"||t==="radio"){this.checked=false}else if(tag==="select"){this.selectedIndex=-1}else if(t==="file"){if(/MSIE/.test(navigator.userAgent)){$(this).replaceWith($(this).clone(true))}else{$(this).val("")}}else if(includeHidden){if(includeHidden===true&&/hidden/.test(t)||typeof includeHidden==="string"&&$(this).is(includeHidden)){this.value=""}}})};$.fn.resetForm=function(){return this.each(function(){var el=$(this);var tag=this.tagName.toLowerCase();switch(tag){case"input":this.checked=this.defaultChecked;case"textarea":this.value=this.defaultValue;return true;case"option":case"optgroup":var select=el.parents("select");if(select.length&&select[0].multiple){if(tag==="option"){this.selected=this.defaultSelected}else{el.find("option").resetForm()}}else{select.resetForm()}return true;case"select":el.find("option").each(function(i){this.selected=this.defaultSelected;if(this.defaultSelected&&!el[0].multiple){el[0].selectedIndex=i;return false}});return true;case"label":var forEl=$(el.attr("for"));var list=el.find("input,select,textarea");if(forEl[0]){list.unshift(forEl[0])}list.resetForm();return true;case"form":if(typeof this.reset==="function"||typeof this.reset==="object"&&!this.reset.nodeType){this.reset()}return true;default:el.find("form,input,label,select,textarea").resetForm();return true}})};$.fn.enable=function(b){if(typeof b==="undefined"){b=true}return this.each(function(){this.disabled=!b})};$.fn.selected=function(select){if(typeof select==="undefined"){select=true}return this.each(function(){var t=this.type;if(t==="checkbox"||t==="radio"){this.checked=select}else if(this.tagName.toLowerCase()==="option"){var $sel=$(this).parent("select");if(select&&$sel[0]&&$sel[0].type==="select-one"){$sel.find("option").selected(false)}this.selected=select}})};$.fn.ajaxSubmit.debug=false;function log(){if(!$.fn.ajaxSubmit.debug){return}var msg="[jquery.form] "+Array.prototype.join.call(arguments,"");if(window.console&&window.console.log){window.console.log(msg)}else if(window.opera&&window.opera.postError){window.opera.postError(msg)}}});(function(jQuery){jQuery.hotkeys={version:"0.8",specialKeys:{8:"backspace",9:"tab",13:"return",16:"shift",17:"ctrl",18:"alt",19:"pause",20:"capslock",27:"esc",32:"space",33:"pageup",34:"pagedown",35:"end",36:"home",37:"left",38:"up",39:"right",40:"down",45:"insert",46:"del",96:"0",97:"1",98:"2",99:"3",100:"4",101:"5",102:"6",103:"7",104:"8",105:"9",106:"*",107:"+",109:"-",110:".",111:"/",112:"f1",113:"f2",114:"f3",115:"f4",116:"f5",117:"f6",118:"f7",119:"f8",120:"f9",121:"f10",122:"f11",123:"f12",144:"numlock",145:"scroll",191:"/",224:"meta"},shiftNums:{"`":"~",1:"!",2:"@",3:"#",4:"$",5:"%",6:"^",7:"&",8:"*",9:"(",0:")","-":"_","=":"+",";":": ","'":'"',",":"<",".":">","/":"?","\\":"|"}};function keyHandler(handleObj){if(typeof handleObj.data!=="string"){return}var origHandler=handleObj.handler,keys=handleObj.data.toLowerCase().split(" ");handleObj.handler=function(event){if(this!==event.target&&(/textarea|select/i.test(event.target.nodeName)||event.target.type==="text")){return}var special=event.type!=="keypress"&&jQuery.hotkeys.specialKeys[event.which],character=String.fromCharCode(event.which).toLowerCase(),key,modif="",possible={};if(event.altKey&&special!=="alt"){modif+="alt+"}if(event.ctrlKey&&special!=="ctrl"){modif+="ctrl+"}if(event.metaKey&&!event.ctrlKey&&special!=="meta"){modif+="meta+"}if(event.shiftKey&&special!=="shift"){modif+="shift+"}if(special){possible[modif+special]=true}else{possible[modif+character]=true;possible[modif+jQuery.hotkeys.shiftNums[character]]=true;if(modif==="shift+"){possible[jQuery.hotkeys.shiftNums[character]]=true}}for(var i=0,l=keys.length;i<l;i++){if(possible[keys[i]]){return origHandler.apply(this,arguments)}}}}jQuery.each(["keydown","keyup","keypress"],function(){jQuery.event.special[this]={add:keyHandler}})})(jQuery);(function($){var undefined;$.fn.emptyForce=function(){for(var i=0,elem;(elem=$(this)[i])!=null;i++){if(elem.nodeType===1){$.cleanData(elem.getElementsByTagName("*"))}if($.jqplot.use_excanvas){elem.outerHTML=""}else{while(elem.firstChild){elem.removeChild(elem.firstChild)}}elem=null}return $(this)};$.fn.removeChildForce=function(parent){while(parent.firstChild){this.removeChildForce(parent.firstChild);parent.removeChild(parent.firstChild)}};$.fn.jqplot=function(){var datas=[];var options=[];for(var i=0,l=arguments.length;i<l;i++){if($.isArray(arguments[i])){datas.push(arguments[i])}else if($.isPlainObject(arguments[i])){options.push(arguments[i])}}return this.each(function(index){var tid,plot,$this=$(this),dl=datas.length,ol=options.length,data,opts;if(index<dl){data=datas[index]}else{data=dl?datas[dl-1]:null}if(index<ol){opts=options[index]}else{opts=ol?options[ol-1]:null}tid=$this.attr("id");if(tid===undefined){tid="jqplot_target_"+$.jqplot.targetCounter++;$this.attr("id",tid)}plot=$.jqplot(tid,data,opts);$this.data("jqplot",plot)})};$.jqplot=function(target,data,options){var _data=null,_options=null;if(arguments.length===3){_data=data;_options=options}else if(arguments.length===2){if($.isArray(data)){_data=data}else if($.isPlainObject(data)){_options=data}}if(_data===null&&_options!==null&&_options.data){_data=_options.data}var plot=new jqPlot;$("#"+target).removeClass("jqplot-error");if($.jqplot.config.catchErrors){try{plot.init(target,_data,_options);plot.draw();plot.themeEngine.init.call(plot);return plot}catch(e){var msg=$.jqplot.config.errorMessage||e.message;$("#"+target).append('<div class="jqplot-error-message">'+msg+"</div>");$("#"+target).addClass("jqplot-error");document.getElementById(target).style.background=$.jqplot.config.errorBackground;document.getElementById(target).style.border=$.jqplot.config.errorBorder;document.getElementById(target).style.fontFamily=$.jqplot.config.errorFontFamily;document.getElementById(target).style.fontSize=$.jqplot.config.errorFontSize;document.getElementById(target).style.fontStyle=$.jqplot.config.errorFontStyle;document.getElementById(target).style.fontWeight=$.jqplot.config.errorFontWeight}}else{plot.init(target,_data,_options);plot.draw();plot.themeEngine.init.call(plot);return plot}};$.jqplot.version="1.0.8";$.jqplot.revision="1250";$.jqplot.targetCounter=1;$.jqplot.CanvasManager=function(){if(typeof $.jqplot.CanvasManager.canvases=="undefined"){$.jqplot.CanvasManager.canvases=[];$.jqplot.CanvasManager.free=[]}var myCanvases=[];this.getCanvas=function(){var canvas;var makeNew=true;if(!$.jqplot.use_excanvas){for(var i=0,l=$.jqplot.CanvasManager.canvases.length;i<l;i++){if($.jqplot.CanvasManager.free[i]===true){makeNew=false;canvas=$.jqplot.CanvasManager.canvases[i];$.jqplot.CanvasManager.free[i]=false;myCanvases.push(i);break}}}if(makeNew){canvas=document.createElement("canvas");myCanvases.push($.jqplot.CanvasManager.canvases.length);$.jqplot.CanvasManager.canvases.push(canvas);$.jqplot.CanvasManager.free.push(false)}return canvas};this.initCanvas=function(canvas){if($.jqplot.use_excanvas){return window.G_vmlCanvasManager.initElement(canvas)}return canvas};this.freeAllCanvases=function(){for(var i=0,l=myCanvases.length;i<l;i++){this.freeCanvas(myCanvases[i])}myCanvases=[]};this.freeCanvas=function(idx){if($.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==undefined){window.G_vmlCanvasManager.uninitElement($.jqplot.CanvasManager.canvases[idx]);$.jqplot.CanvasManager.canvases[idx]=null}else{var canvas=$.jqplot.CanvasManager.canvases[idx];canvas.getContext("2d").clearRect(0,0,canvas.width,canvas.height);$(canvas).unbind().removeAttr("class").removeAttr("style");$(canvas).css({left:"",top:"",position:""});canvas.width=0;canvas.height=0;$.jqplot.CanvasManager.free[idx]=true}}};$.jqplot.log=function(){if(window.console){window.console.log.apply(window.console,arguments)}};$.jqplot.config={addDomReference:false,enablePlugins:false,defaultHeight:300,defaultWidth:400,UTCAdjust:false,timezoneOffset:new Date((new Date).getTimezoneOffset()*6e4),errorMessage:"",errorBackground:"",errorBorder:"",errorFontFamily:"",errorFontSize:"",errorFontStyle:"",errorFontWeight:"",catchErrors:false,defaultTickFormatString:"%.1f",defaultColors:["#4bb2c5","#EAA228","#c5b47f","#579575","#839557","#958c12","#953579","#4b5de4","#d8b83f","#ff5800","#0085cc","#c747a3","#cddf54","#FBD178","#26B4E3","#bd70c7"],defaultNegativeColors:["#498991","#C08840","#9F9274","#546D61","#646C4A","#6F6621","#6E3F5F","#4F64B0","#A89050","#C45923","#187399","#945381","#959E5C","#C7AF7B","#478396","#907294"],dashLength:4,gapLength:4,dotGapLength:2.5,srcLocation:"jqplot/src/",pluginLocation:"jqplot/src/plugins/"};$.jqplot.arrayMax=function(array){return Math.max.apply(Math,array)};$.jqplot.arrayMin=function(array){return Math.min.apply(Math,array)};$.jqplot.enablePlugins=$.jqplot.config.enablePlugins;$.jqplot.support_canvas=function(){if(typeof $.jqplot.support_canvas.result=="undefined"){$.jqplot.support_canvas.result=!!document.createElement("canvas").getContext}return $.jqplot.support_canvas.result};$.jqplot.support_canvas_text=function(){if(typeof $.jqplot.support_canvas_text.result=="undefined"){if(window.G_vmlCanvasManager!==undefined&&window.G_vmlCanvasManager._version>887){$.jqplot.support_canvas_text.result=true}else{$.jqplot.support_canvas_text.result=!!(document.createElement("canvas").getContext&&typeof document.createElement("canvas").getContext("2d").fillText=="function")}}return $.jqplot.support_canvas_text.result};$.jqplot.use_excanvas=(!$.support.boxModel||!$.support.objectAll||!$support.leadingWhitespace)&&!$.jqplot.support_canvas()?true:false;$.jqplot.preInitHooks=[];$.jqplot.postInitHooks=[];$.jqplot.preParseOptionsHooks=[];$.jqplot.postParseOptionsHooks=[];$.jqplot.preDrawHooks=[];$.jqplot.postDrawHooks=[];$.jqplot.preDrawSeriesHooks=[];$.jqplot.postDrawSeriesHooks=[];$.jqplot.preDrawLegendHooks=[];$.jqplot.addLegendRowHooks=[];$.jqplot.preSeriesInitHooks=[];$.jqplot.postSeriesInitHooks=[];$.jqplot.preParseSeriesOptionsHooks=[];$.jqplot.postParseSeriesOptionsHooks=[];$.jqplot.eventListenerHooks=[];$.jqplot.preDrawSeriesShadowHooks=[];$.jqplot.postDrawSeriesShadowHooks=[];$.jqplot.ElemContainer=function(){this._elem;this._plotWidth;this._plotHeight;this._plotDimensions={height:null,width:null}};$.jqplot.ElemContainer.prototype.createElement=function(el,offsets,clss,cssopts,attrib){this._offsets=offsets;var klass=clss||"jqplot";var elem=document.createElement(el);this._elem=$(elem);this._elem.addClass(klass);this._elem.css(cssopts);this._elem.attr(attrib);elem=null;return this._elem};$.jqplot.ElemContainer.prototype.getWidth=function(){if(this._elem){return this._elem.outerWidth(true)}else{return null}};$.jqplot.ElemContainer.prototype.getHeight=function(){if(this._elem){return this._elem.outerHeight(true)}else{return null}};$.jqplot.ElemContainer.prototype.getPosition=function(){if(this._elem){return this._elem.position()}else{return{top:null,left:null,bottom:null,right:null}}};$.jqplot.ElemContainer.prototype.getTop=function(){return this.getPosition().top};$.jqplot.ElemContainer.prototype.getLeft=function(){return this.getPosition().left};$.jqplot.ElemContainer.prototype.getBottom=function(){return this._elem.css("bottom")};$.jqplot.ElemContainer.prototype.getRight=function(){return this._elem.css("right")};function Axis(name){$.jqplot.ElemContainer.call(this);this.name=name;this._series=[];this.show=false;this.tickRenderer=$.jqplot.AxisTickRenderer;this.tickOptions={};this.labelRenderer=$.jqplot.AxisLabelRenderer;this.labelOptions={};this.label=null;this.showLabel=true;this.min=null;this.max=null;this.autoscale=false;this.pad=1.2;this.padMax=null;this.padMin=null;this.ticks=[];this.numberTicks;this.tickInterval;this.renderer=$.jqplot.LinearAxisRenderer;this.rendererOptions={};this.showTicks=true;this.showTickMarks=true;this.showMinorTicks=true;this.drawMajorGridlines=true;this.drawMinorGridlines=false;this.drawMajorTickMarks=true;this.drawMinorTickMarks=true;this.useSeriesColor=false;this.borderWidth=null;this.borderColor=null;this.scaleToHiddenSeries=false;this._dataBounds={min:null,max:null};this._intervalStats=[];this._offsets={min:null,max:null};this._ticks=[];this._label=null;this.syncTicks=null;this.tickSpacing=75;this._min=null;this._max=null;this._tickInterval=null;this._numberTicks=null;this.__ticks=null;this._options={}}Axis.prototype=new $.jqplot.ElemContainer;Axis.prototype.constructor=Axis;Axis.prototype.init=function(){if($.isFunction(this.renderer)){this.renderer=new this.renderer}this.tickOptions.axis=this.name;if(this.tickOptions.showMark==null){this.tickOptions.showMark=this.showTicks}if(this.tickOptions.showMark==null){this.tickOptions.showMark=this.showTickMarks}if(this.tickOptions.showLabel==null){this.tickOptions.showLabel=this.showTicks}if(this.label==null||this.label==""){this.showLabel=false}else{this.labelOptions.label=this.label}if(this.showLabel==false){this.labelOptions.show=false}if(this.pad==0){this.pad=1}if(this.padMax==0){this.padMax=1}if(this.padMin==0){this.padMin=1}if(this.padMax==null){this.padMax=(this.pad-1)/2+1}if(this.padMin==null){this.padMin=(this.pad-1)/2+1}this.pad=this.padMax+this.padMin-1;if(this.min!=null||this.max!=null){this.autoscale=false}if(this.syncTicks==null&&this.name.indexOf("y")>-1){this.syncTicks=true}else if(this.syncTicks==null){this.syncTicks=false}this.renderer.init.call(this,this.rendererOptions)};Axis.prototype.draw=function(ctx,plot){if(this.__ticks){this.__ticks=null}return this.renderer.draw.call(this,ctx,plot)};Axis.prototype.set=function(){this.renderer.set.call(this)};Axis.prototype.pack=function(pos,offsets){if(this.show){this.renderer.pack.call(this,pos,offsets)}if(this._min==null){this._min=this.min;this._max=this.max;this._tickInterval=this.tickInterval;this._numberTicks=this.numberTicks;this.__ticks=this._ticks}};Axis.prototype.reset=function(){this.renderer.reset.call(this)};Axis.prototype.resetScale=function(opts){$.extend(true,this,{min:null,max:null,numberTicks:null,tickInterval:null,_ticks:[],ticks:[]},opts);this.resetDataBounds()};Axis.prototype.resetDataBounds=function(){var db=this._dataBounds;db.min=null;db.max=null;var l,s,d;var doforce=this.show?true:false;for(var i=0;i<this._series.length;i++){s=this._series[i];if(s.show||this.scaleToHiddenSeries){d=s._plotData;if(s._type==="line"&&s.renderer.bands.show&&this.name.charAt(0)!=="x"){d=[[0,s.renderer.bands._min],[1,s.renderer.bands._max]]}var minyidx=1,maxyidx=1;if(s._type!=null&&s._type=="ohlc"){minyidx=3;maxyidx=2}for(var j=0,l=d.length;j<l;j++){if(this.name=="xaxis"||this.name=="x2axis"){if(d[j][0]!=null&&d[j][0]<db.min||db.min==null){db.min=d[j][0]}if(d[j][0]!=null&&d[j][0]>db.max||db.max==null){db.max=d[j][0]}}else{if(d[j][minyidx]!=null&&d[j][minyidx]<db.min||db.min==null){db.min=d[j][minyidx]}if(d[j][maxyidx]!=null&&d[j][maxyidx]>db.max||db.max==null){db.max=d[j][maxyidx]}}}if(doforce&&s.renderer.constructor!==$.jqplot.BarRenderer){doforce=false}else if(doforce&&this._options.hasOwnProperty("forceTickAt0")&&this._options.forceTickAt0==false){doforce=false}else if(doforce&&s.renderer.constructor===$.jqplot.BarRenderer){if(s.barDirection=="vertical"&&this.name!="xaxis"&&this.name!="x2axis"){if(this._options.pad!=null||this._options.padMin!=null){doforce=false}}else if(s.barDirection=="horizontal"&&(this.name=="xaxis"||this.name=="x2axis")){if(this._options.pad!=null||this._options.padMin!=null){doforce=false}}}}}if(doforce&&this.renderer.constructor===$.jqplot.LinearAxisRenderer&&db.min>=0){this.padMin=1;this.forceTickAt0=true}};function Legend(options){$.jqplot.ElemContainer.call(this);this.show=false;this.location="ne";this.labels=[];this.showLabels=true;this.showSwatches=true;this.placement="insideGrid";this.xoffset=0;this.yoffset=0;this.border;this.background;this.textColor;this.fontFamily;this.fontSize;this.rowSpacing="0.5em";this.renderer=$.jqplot.TableLegendRenderer;this.rendererOptions={};this.preDraw=false;this.marginTop=null;this.marginRight=null;this.marginBottom=null;this.marginLeft=null;this.escapeHtml=false;this._series=[];$.extend(true,this,options)}Legend.prototype=new $.jqplot.ElemContainer;Legend.prototype.constructor=Legend;Legend.prototype.setOptions=function(options){$.extend(true,this,options);if(this.placement=="inside"){this.placement="insideGrid"}if(this.xoffset>0){if(this.placement=="insideGrid"){switch(this.location){case"nw":case"w":case"sw":if(this.marginLeft==null){this.marginLeft=this.xoffset+"px"}this.marginRight="0px";break;case"ne":case"e":case"se":default:if(this.marginRight==null){this.marginRight=this.xoffset+"px"}this.marginLeft="0px";break}}else if(this.placement=="outside"){switch(this.location){case"nw":case"w":case"sw":if(this.marginRight==null){this.marginRight=this.xoffset+"px"}this.marginLeft="0px";break;case"ne":case"e":case"se":default:if(this.marginLeft==null){this.marginLeft=this.xoffset+"px"}this.marginRight="0px";break}}this.xoffset=0}if(this.yoffset>0){if(this.placement=="outside"){switch(this.location){case"sw":case"s":case"se":if(this.marginTop==null){this.marginTop=this.yoffset+"px"}this.marginBottom="0px";break;case"ne":case"n":case"nw":default:if(this.marginBottom==null){this.marginBottom=this.yoffset+"px"}this.marginTop="0px";break}}else if(this.placement=="insideGrid"){switch(this.location){case"sw":case"s":case"se":if(this.marginBottom==null){this.marginBottom=this.yoffset+"px"}this.marginTop="0px";break;case"ne":case"n":case"nw":default:if(this.marginTop==null){this.marginTop=this.yoffset+"px"}this.marginBottom="0px";break}}this.yoffset=0}};Legend.prototype.init=function(){if($.isFunction(this.renderer)){this.renderer=new this.renderer}this.renderer.init.call(this,this.rendererOptions)};Legend.prototype.draw=function(offsets,plot){for(var i=0;i<$.jqplot.preDrawLegendHooks.length;i++){$.jqplot.preDrawLegendHooks[i].call(this,offsets)}return this.renderer.draw.call(this,offsets,plot)};Legend.prototype.pack=function(offsets){this.renderer.pack.call(this,offsets)};function Title(text){$.jqplot.ElemContainer.call(this);this.text=text;this.show=true;this.fontFamily;this.fontSize;this.textAlign;this.textColor;this.renderer=$.jqplot.DivTitleRenderer;this.rendererOptions={};this.escapeHtml=false}Title.prototype=new $.jqplot.ElemContainer;Title.prototype.constructor=Title;Title.prototype.init=function(){if($.isFunction(this.renderer)){this.renderer=new this.renderer}this.renderer.init.call(this,this.rendererOptions)};Title.prototype.draw=function(width){return this.renderer.draw.call(this,width)};Title.prototype.pack=function(){this.renderer.pack.call(this)};function Series(options){options=options||{};$.jqplot.ElemContainer.call(this);this.show=true;this.xaxis="xaxis";this._xaxis;this.yaxis="yaxis";this._yaxis;this.gridBorderWidth=2;this.renderer=$.jqplot.LineRenderer;this.rendererOptions={};this.data=[];this.gridData=[];this.label="";this.showLabel=true;this.color;this.negativeColor;this.lineWidth=2.5;this.lineJoin="round";this.lineCap="round";this.linePattern="solid";this.shadow=true;this.shadowAngle=45;this.shadowOffset=1.25;this.shadowDepth=3;this.shadowAlpha="0.1";this.breakOnNull=false;this.markerRenderer=$.jqplot.MarkerRenderer;this.markerOptions={};this.showLine=true;this.showMarker=true;this.index;this.fill=false;this.fillColor;this.fillAlpha;this.fillAndStroke=false;this.disableStack=false;this._stack=false;this.neighborThreshold=4;this.fillToZero=false;this.fillToValue=0;this.fillAxis="y";this.useNegativeColors=true;this._stackData=[];this._plotData=[];this._plotValues={x:[],y:[]};this._intervals={x:{},y:{}};this._prevPlotData=[];this._prevGridData=[];this._stackAxis="y";this._primaryAxis="_xaxis";this.canvas=new $.jqplot.GenericCanvas;this.shadowCanvas=new $.jqplot.GenericCanvas;this.plugins={};this._sumy=0;this._sumx=0;this._type=""}Series.prototype=new $.jqplot.ElemContainer;Series.prototype.constructor=Series;Series.prototype.init=function(index,gridbw,plot){this.index=index;this.gridBorderWidth=gridbw;var d=this.data;var temp=[],i,l;for(i=0,l=d.length;i<l;i++){if(!this.breakOnNull){if(d[i]==null||d[i][0]==null||d[i][1]==null){continue}else{temp.push(d[i])}}else{temp.push(d[i])}}this.data=temp;if(!this.color){this.color=plot.colorGenerator.get(this.index)}if(!this.negativeColor){this.negativeColor=plot.negativeColorGenerator.get(this.index)}if(!this.fillColor){this.fillColor=this.color}if(this.fillAlpha){var comp=$.jqplot.normalize2rgb(this.fillColor);var comp=$.jqplot.getColorComponents(comp);this.fillColor="rgba("+comp[0]+","+comp[1]+","+comp[2]+","+this.fillAlpha+")"}if($.isFunction(this.renderer)){this.renderer=new this.renderer}this.renderer.init.call(this,this.rendererOptions,plot);this.markerRenderer=new this.markerRenderer;if(!this.markerOptions.color){this.markerOptions.color=this.color}if(this.markerOptions.show==null){this.markerOptions.show=this.showMarker}this.showMarker=this.markerOptions.show;this.markerRenderer.init(this.markerOptions)};Series.prototype.draw=function(sctx,opts,plot){var options=opts==undefined?{}:opts;sctx=sctx==undefined?this.canvas._ctx:sctx;var j,data,gridData;for(j=0;j<$.jqplot.preDrawSeriesHooks.length;j++){$.jqplot.preDrawSeriesHooks[j].call(this,sctx,options)}if(this.show){this.renderer.setGridData.call(this,plot);if(!options.preventJqPlotSeriesDrawTrigger){$(sctx.canvas).trigger("jqplotSeriesDraw",[this.data,this.gridData])}data=[];if(options.data){data=options.data}else if(!this._stack){data=this.data}else{data=this._plotData}gridData=options.gridData||this.renderer.makeGridData.call(this,data,plot);if(this._type==="line"&&this.renderer.smooth&&this.renderer._smoothedData.length){gridData=this.renderer._smoothedData}this.renderer.draw.call(this,sctx,gridData,options,plot)}for(j=0;j<$.jqplot.postDrawSeriesHooks.length;j++){$.jqplot.postDrawSeriesHooks[j].call(this,sctx,options,plot)}sctx=opts=plot=j=data=gridData=null};Series.prototype.drawShadow=function(sctx,opts,plot){var options=opts==undefined?{}:opts;sctx=sctx==undefined?this.shadowCanvas._ctx:sctx;var j,data,gridData;for(j=0;j<$.jqplot.preDrawSeriesShadowHooks.length;j++){$.jqplot.preDrawSeriesShadowHooks[j].call(this,sctx,options)}if(this.shadow){this.renderer.setGridData.call(this,plot);data=[];if(options.data){data=options.data}else if(!this._stack){data=this.data}else{data=this._plotData}gridData=options.gridData||this.renderer.makeGridData.call(this,data,plot);this.renderer.drawShadow.call(this,sctx,gridData,options,plot)}for(j=0;j<$.jqplot.postDrawSeriesShadowHooks.length;j++){$.jqplot.postDrawSeriesShadowHooks[j].call(this,sctx,options)}sctx=opts=plot=j=data=gridData=null};Series.prototype.toggleDisplay=function(ev,callback){var s,speed;if(ev.data.series){s=ev.data.series}else{s=this}if(ev.data.speed){speed=ev.data.speed}if(speed){if(s.canvas._elem.is(":hidden")||!s.show){s.show=true;s.canvas._elem.removeClass("jqplot-series-hidden");if(s.shadowCanvas._elem){s.shadowCanvas._elem.fadeIn(speed)}s.canvas._elem.fadeIn(speed,callback);s.canvas._elem.nextAll(".jqplot-point-label.jqplot-series-"+s.index).fadeIn(speed)}else{s.show=false;s.canvas._elem.addClass("jqplot-series-hidden");if(s.shadowCanvas._elem){s.shadowCanvas._elem.fadeOut(speed)}s.canvas._elem.fadeOut(speed,callback);s.canvas._elem.nextAll(".jqplot-point-label.jqplot-series-"+s.index).fadeOut(speed)}}else{if(s.canvas._elem.is(":hidden")||!s.show){s.show=true;s.canvas._elem.removeClass("jqplot-series-hidden");if(s.shadowCanvas._elem){s.shadowCanvas._elem.show()}s.canvas._elem.show(0,callback);s.canvas._elem.nextAll(".jqplot-point-label.jqplot-series-"+s.index).show()}else{s.show=false;s.canvas._elem.addClass("jqplot-series-hidden");if(s.shadowCanvas._elem){s.shadowCanvas._elem.hide()}s.canvas._elem.hide(0,callback);s.canvas._elem.nextAll(".jqplot-point-label.jqplot-series-"+s.index).hide()}}};function Grid(){$.jqplot.ElemContainer.call(this);this.drawGridlines=true;this.gridLineColor="#cccccc";this.gridLineWidth=1;this.background="#fffdf6";this.borderColor="#999999";this.borderWidth=2;this.drawBorder=true;this.shadow=true;this.shadowAngle=45;this.shadowOffset=1.5;this.shadowWidth=3;this.shadowDepth=3;this.shadowColor=null;this.shadowAlpha="0.07";this._left;this._top;this._right;this._bottom;this._width;this._height;this._axes=[];this.renderer=$.jqplot.CanvasGridRenderer;this.rendererOptions={};this._offsets={top:null,bottom:null,left:null,right:null}}Grid.prototype=new $.jqplot.ElemContainer;Grid.prototype.constructor=Grid;Grid.prototype.init=function(){if($.isFunction(this.renderer)){this.renderer=new this.renderer}this.renderer.init.call(this,this.rendererOptions)};Grid.prototype.createElement=function(offsets,plot){this._offsets=offsets;return this.renderer.createElement.call(this,plot)};Grid.prototype.draw=function(){this.renderer.draw.call(this)};$.jqplot.GenericCanvas=function(){$.jqplot.ElemContainer.call(this);this._ctx};$.jqplot.GenericCanvas.prototype=new $.jqplot.ElemContainer;$.jqplot.GenericCanvas.prototype.constructor=$.jqplot.GenericCanvas;$.jqplot.GenericCanvas.prototype.createElement=function(offsets,clss,plotDimensions,plot){this._offsets=offsets;var klass="jqplot";if(clss!=undefined){klass=clss}var elem;elem=plot.canvasManager.getCanvas();if(plotDimensions!=null){this._plotDimensions=plotDimensions}elem.width=this._plotDimensions.width-this._offsets.left-this._offsets.right;elem.height=this._plotDimensions.height-this._offsets.top-this._offsets.bottom;this._elem=$(elem);this._elem.css({position:"absolute",left:this._offsets.left,top:this._offsets.top});this._elem.addClass(klass);elem=plot.canvasManager.initCanvas(elem);elem=null;return this._elem};$.jqplot.GenericCanvas.prototype.setContext=function(){this._ctx=this._elem.get(0).getContext("2d");return this._ctx};$.jqplot.GenericCanvas.prototype.resetCanvas=function(){if(this._elem){if($.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==undefined){window.G_vmlCanvasManager.uninitElement(this._elem.get(0))}this._elem.emptyForce()}this._ctx=null};$.jqplot.HooksManager=function(){this.hooks=[];this.args=[]};$.jqplot.HooksManager.prototype.addOnce=function(fn,args){args=args||[];var havehook=false;for(var i=0,l=this.hooks.length;i<l;i++){if(this.hooks[i]==fn){havehook=true}}if(!havehook){this.hooks.push(fn);this.args.push(args)}};$.jqplot.HooksManager.prototype.add=function(fn,args){args=args||[];this.hooks.push(fn);this.args.push(args)};$.jqplot.EventListenerManager=function(){this.hooks=[]};$.jqplot.EventListenerManager.prototype.addOnce=function(ev,fn){var havehook=false,h,i;for(var i=0,l=this.hooks.length;i<l;i++){h=this.hooks[i];if(h[0]==ev&&h[1]==fn){havehook=true}}if(!havehook){this.hooks.push([ev,fn])}};$.jqplot.EventListenerManager.prototype.add=function(ev,fn){this.hooks.push([ev,fn])}
;var _axisNames=["yMidAxis","xaxis","yaxis","x2axis","y2axis","y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis"];function jqPlot(){this.animate=false;this.animateReplot=false;this.axes={xaxis:new Axis("xaxis"),yaxis:new Axis("yaxis"),x2axis:new Axis("x2axis"),y2axis:new Axis("y2axis"),y3axis:new Axis("y3axis"),y4axis:new Axis("y4axis"),y5axis:new Axis("y5axis"),y6axis:new Axis("y6axis"),y7axis:new Axis("y7axis"),y8axis:new Axis("y8axis"),y9axis:new Axis("y9axis"),yMidAxis:new Axis("yMidAxis")};this.baseCanvas=new $.jqplot.GenericCanvas;this.captureRightClick=false;this.data=[];this.dataRenderer;this.dataRendererOptions;this.defaults={axesDefaults:{},axes:{xaxis:{},yaxis:{},x2axis:{},y2axis:{},y3axis:{},y4axis:{},y5axis:{},y6axis:{},y7axis:{},y8axis:{},y9axis:{},yMidAxis:{}},seriesDefaults:{},series:[]};this.defaultAxisStart=1;this.drawIfHidden=false;this.eventCanvas=new $.jqplot.GenericCanvas;this.fillBetween={series1:null,series2:null,color:null,baseSeries:0,fill:true};this.fontFamily;this.fontSize;this.grid=new Grid;this.legend=new Legend;this.noDataIndicator={show:false,indicator:"Loading Data...",axes:{xaxis:{min:0,max:10,tickInterval:2,show:true},yaxis:{min:0,max:12,tickInterval:3,show:true}}};this.negativeSeriesColors=$.jqplot.config.defaultNegativeColors;this.options={};this.previousSeriesStack=[];this.plugins={};this.series=[];this.seriesStack=[];this.seriesColors=$.jqplot.config.defaultColors;this.sortData=true;this.stackSeries=false;this.syncXTicks=true;this.syncYTicks=true;this.target=null;this.targetId=null;this.textColor;this.title=new Title;this._drawCount=0;this._sumy=0;this._sumx=0;this._stackData=[];this._plotData=[];this._width=null;this._height=null;this._plotDimensions={height:null,width:null};this._gridPadding={top:null,right:null,bottom:null,left:null};this._defaultGridPadding={top:10,right:10,bottom:23,left:10};this._addDomReference=$.jqplot.config.addDomReference;this.preInitHooks=new $.jqplot.HooksManager;this.postInitHooks=new $.jqplot.HooksManager;this.preParseOptionsHooks=new $.jqplot.HooksManager;this.postParseOptionsHooks=new $.jqplot.HooksManager;this.preDrawHooks=new $.jqplot.HooksManager;this.postDrawHooks=new $.jqplot.HooksManager;this.preDrawSeriesHooks=new $.jqplot.HooksManager;this.postDrawSeriesHooks=new $.jqplot.HooksManager;this.preDrawLegendHooks=new $.jqplot.HooksManager;this.addLegendRowHooks=new $.jqplot.HooksManager;this.preSeriesInitHooks=new $.jqplot.HooksManager;this.postSeriesInitHooks=new $.jqplot.HooksManager;this.preParseSeriesOptionsHooks=new $.jqplot.HooksManager;this.postParseSeriesOptionsHooks=new $.jqplot.HooksManager;this.eventListenerHooks=new $.jqplot.EventListenerManager;this.preDrawSeriesShadowHooks=new $.jqplot.HooksManager;this.postDrawSeriesShadowHooks=new $.jqplot.HooksManager;this.colorGenerator=new $.jqplot.ColorGenerator;this.negativeColorGenerator=new $.jqplot.ColorGenerator;this.canvasManager=new $.jqplot.CanvasManager;this.themeEngine=new $.jqplot.ThemeEngine;var seriesColorsIndex=0;this.init=function(target,data,options){options=options||{};for(var i=0;i<$.jqplot.preInitHooks.length;i++){$.jqplot.preInitHooks[i].call(this,target,data,options)}for(var i=0;i<this.preInitHooks.hooks.length;i++){this.preInitHooks.hooks[i].call(this,target,data,options)}this.targetId="#"+target;this.target=$("#"+target);if(this._addDomReference){this.target.data("jqplot",this)}this.target.removeClass("jqplot-error");if(!this.target.get(0)){throw new Error("No plot target specified")}if(this.target.css("position")=="static"){this.target.css("position","relative")}if(!this.target.hasClass("jqplot-target")){this.target.addClass("jqplot-target")}if(!this.target.height()){var h;if(options&&options.height){h=parseInt(options.height,10)}else if(this.target.attr("data-height")){h=parseInt(this.target.attr("data-height"),10)}else{h=parseInt($.jqplot.config.defaultHeight,10)}this._height=h;this.target.css("height",h+"px")}else{this._height=h=this.target.height()}if(!this.target.width()){var w;if(options&&options.width){w=parseInt(options.width,10)}else if(this.target.attr("data-width")){w=parseInt(this.target.attr("data-width"),10)}else{w=parseInt($.jqplot.config.defaultWidth,10)}this._width=w;this.target.css("width",w+"px")}else{this._width=w=this.target.width()}for(var i=0,l=_axisNames.length;i<l;i++){this.axes[_axisNames[i]]=new Axis(_axisNames[i])}this._plotDimensions.height=this._height;this._plotDimensions.width=this._width;this.grid._plotDimensions=this._plotDimensions;this.title._plotDimensions=this._plotDimensions;this.baseCanvas._plotDimensions=this._plotDimensions;this.eventCanvas._plotDimensions=this._plotDimensions;this.legend._plotDimensions=this._plotDimensions;if(this._height<=0||this._width<=0||!this._height||!this._width){throw new Error("Canvas dimension not set")}if(options.dataRenderer&&$.isFunction(options.dataRenderer)){if(options.dataRendererOptions){this.dataRendererOptions=options.dataRendererOptions}this.dataRenderer=options.dataRenderer;data=this.dataRenderer(data,this,this.dataRendererOptions)}if(options.noDataIndicator&&$.isPlainObject(options.noDataIndicator)){$.extend(true,this.noDataIndicator,options.noDataIndicator)}if(data==null||$.isArray(data)==false||data.length==0||$.isArray(data[0])==false||data[0].length==0){if(this.noDataIndicator.show==false){throw new Error("No data specified")}else{for(var ax in this.noDataIndicator.axes){for(var prop in this.noDataIndicator.axes[ax]){this.axes[ax][prop]=this.noDataIndicator.axes[ax][prop]}}this.postDrawHooks.add(function(){var eh=this.eventCanvas.getHeight();var ew=this.eventCanvas.getWidth();var temp=$('<div class="jqplot-noData-container" style="position:absolute;"></div>');this.target.append(temp);temp.height(eh);temp.width(ew);temp.css("top",this.eventCanvas._offsets.top);temp.css("left",this.eventCanvas._offsets.left);var temp2=$('<div class="jqplot-noData-contents" style="text-align:center; position:relative; margin-left:auto; margin-right:auto;"></div>');temp.append(temp2);temp2.html(this.noDataIndicator.indicator);var th=temp2.height();var tw=temp2.width();temp2.height(th);temp2.width(tw);temp2.css("top",(eh-th)/2+"px")})}}this.data=$.extend(true,[],data);this.parseOptions(options);if(this.textColor){this.target.css("color",this.textColor)}if(this.fontFamily){this.target.css("font-family",this.fontFamily)}if(this.fontSize){this.target.css("font-size",this.fontSize)}this.title.init();this.legend.init();this._sumy=0;this._sumx=0;this.computePlotData();for(var i=0;i<this.series.length;i++){this.seriesStack.push(i);this.previousSeriesStack.push(i);this.series[i].shadowCanvas._plotDimensions=this._plotDimensions;this.series[i].canvas._plotDimensions=this._plotDimensions;for(var j=0;j<$.jqplot.preSeriesInitHooks.length;j++){$.jqplot.preSeriesInitHooks[j].call(this.series[i],target,this.data,this.options.seriesDefaults,this.options.series[i],this)}for(var j=0;j<this.preSeriesInitHooks.hooks.length;j++){this.preSeriesInitHooks.hooks[j].call(this.series[i],target,this.data,this.options.seriesDefaults,this.options.series[i],this)}this.series[i]._plotDimensions=this._plotDimensions;this.series[i].init(i,this.grid.borderWidth,this);for(var j=0;j<$.jqplot.postSeriesInitHooks.length;j++){$.jqplot.postSeriesInitHooks[j].call(this.series[i],target,this.data,this.options.seriesDefaults,this.options.series[i],this)}for(var j=0;j<this.postSeriesInitHooks.hooks.length;j++){this.postSeriesInitHooks.hooks[j].call(this.series[i],target,this.data,this.options.seriesDefaults,this.options.series[i],this)}this._sumy+=this.series[i]._sumy;this._sumx+=this.series[i]._sumx}var name,axis;for(var i=0,l=_axisNames.length;i<l;i++){name=_axisNames[i];axis=this.axes[name];axis._plotDimensions=this._plotDimensions;axis.init();if(this.axes[name].borderColor==null){if(name.charAt(0)!=="x"&&axis.useSeriesColor===true&&axis.show){axis.borderColor=axis._series[0].color}else{axis.borderColor=this.grid.borderColor}}}if(this.sortData){sortData(this.series)}this.grid.init();this.grid._axes=this.axes;this.legend._series=this.series;for(var i=0;i<$.jqplot.postInitHooks.length;i++){$.jqplot.postInitHooks[i].call(this,target,this.data,options)}for(var i=0;i<this.postInitHooks.hooks.length;i++){this.postInitHooks.hooks[i].call(this,target,this.data,options)}};this.resetAxesScale=function(axes,options){var opts=options||{};var ax=axes||this.axes;if(ax===true){ax=this.axes}if($.isArray(ax)){for(var i=0;i<ax.length;i++){this.axes[ax[i]].resetScale(opts[ax[i]])}}else if(typeof ax==="object"){for(var name in ax){this.axes[name].resetScale(opts[name])}}};this.reInitialize=function(data,opts){var options=$.extend(true,{},this.options,opts);var target=this.targetId.substr(1);var tdata=data==null?this.data:data;for(var i=0;i<$.jqplot.preInitHooks.length;i++){$.jqplot.preInitHooks[i].call(this,target,tdata,options)}for(var i=0;i<this.preInitHooks.hooks.length;i++){this.preInitHooks.hooks[i].call(this,target,tdata,options)}this._height=this.target.height();this._width=this.target.width();if(this._height<=0||this._width<=0||!this._height||!this._width){throw new Error("Target dimension not set")}this._plotDimensions.height=this._height;this._plotDimensions.width=this._width;this.grid._plotDimensions=this._plotDimensions;this.title._plotDimensions=this._plotDimensions;this.baseCanvas._plotDimensions=this._plotDimensions;this.eventCanvas._plotDimensions=this._plotDimensions;this.legend._plotDimensions=this._plotDimensions;var name,t,j,axis;for(var i=0,l=_axisNames.length;i<l;i++){name=_axisNames[i];axis=this.axes[name];t=axis._ticks;for(var j=0,tlen=t.length;j<tlen;j++){var el=t[j]._elem;if(el){if($.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==undefined){window.G_vmlCanvasManager.uninitElement(el.get(0))}el.emptyForce();el=null;t._elem=null}}t=null;delete axis.ticks;delete axis._ticks;this.axes[name]=new Axis(name);this.axes[name]._plotWidth=this._width;this.axes[name]._plotHeight=this._height}if(data){if(options.dataRenderer&&$.isFunction(options.dataRenderer)){if(options.dataRendererOptions){this.dataRendererOptions=options.dataRendererOptions}this.dataRenderer=options.dataRenderer;data=this.dataRenderer(data,this,this.dataRendererOptions)}this.data=$.extend(true,[],data)}if(opts){this.parseOptions(options)}this.title._plotWidth=this._width;if(this.textColor){this.target.css("color",this.textColor)}if(this.fontFamily){this.target.css("font-family",this.fontFamily)}if(this.fontSize){this.target.css("font-size",this.fontSize)}this.title.init();this.legend.init();this._sumy=0;this._sumx=0;this.seriesStack=[];this.previousSeriesStack=[];this.computePlotData();for(var i=0,l=this.series.length;i<l;i++){this.seriesStack.push(i);this.previousSeriesStack.push(i);this.series[i].shadowCanvas._plotDimensions=this._plotDimensions;this.series[i].canvas._plotDimensions=this._plotDimensions;for(var j=0;j<$.jqplot.preSeriesInitHooks.length;j++){$.jqplot.preSeriesInitHooks[j].call(this.series[i],target,this.data,this.options.seriesDefaults,this.options.series[i],this)}for(var j=0;j<this.preSeriesInitHooks.hooks.length;j++){this.preSeriesInitHooks.hooks[j].call(this.series[i],target,this.data,this.options.seriesDefaults,this.options.series[i],this)}this.series[i]._plotDimensions=this._plotDimensions;this.series[i].init(i,this.grid.borderWidth,this);for(var j=0;j<$.jqplot.postSeriesInitHooks.length;j++){$.jqplot.postSeriesInitHooks[j].call(this.series[i],target,this.data,this.options.seriesDefaults,this.options.series[i],this)}for(var j=0;j<this.postSeriesInitHooks.hooks.length;j++){this.postSeriesInitHooks.hooks[j].call(this.series[i],target,this.data,this.options.seriesDefaults,this.options.series[i],this)}this._sumy+=this.series[i]._sumy;this._sumx+=this.series[i]._sumx}for(var i=0,l=_axisNames.length;i<l;i++){name=_axisNames[i];axis=this.axes[name];axis._plotDimensions=this._plotDimensions;axis.init();if(axis.borderColor==null){if(name.charAt(0)!=="x"&&axis.useSeriesColor===true&&axis.show){axis.borderColor=axis._series[0].color}else{axis.borderColor=this.grid.borderColor}}}if(this.sortData){sortData(this.series)}this.grid.init();this.grid._axes=this.axes;this.legend._series=this.series;for(var i=0,l=$.jqplot.postInitHooks.length;i<l;i++){$.jqplot.postInitHooks[i].call(this,target,this.data,options)}for(var i=0,l=this.postInitHooks.hooks.length;i<l;i++){this.postInitHooks.hooks[i].call(this,target,this.data,options)}};this.quickInit=function(){this._height=this.target.height();this._width=this.target.width();if(this._height<=0||this._width<=0||!this._height||!this._width){throw new Error("Target dimension not set")}this._plotDimensions.height=this._height;this._plotDimensions.width=this._width;this.grid._plotDimensions=this._plotDimensions;this.title._plotDimensions=this._plotDimensions;this.baseCanvas._plotDimensions=this._plotDimensions;this.eventCanvas._plotDimensions=this._plotDimensions;this.legend._plotDimensions=this._plotDimensions;for(var n in this.axes){this.axes[n]._plotWidth=this._width;this.axes[n]._plotHeight=this._height}this.title._plotWidth=this._width;if(this.textColor){this.target.css("color",this.textColor)}if(this.fontFamily){this.target.css("font-family",this.fontFamily)}if(this.fontSize){this.target.css("font-size",this.fontSize)}this._sumy=0;this._sumx=0;this.computePlotData();for(var i=0;i<this.series.length;i++){if(this.series[i]._type==="line"&&this.series[i].renderer.bands.show){this.series[i].renderer.initBands.call(this.series[i],this.series[i].renderer.options,this)}this.series[i]._plotDimensions=this._plotDimensions;this.series[i].canvas._plotDimensions=this._plotDimensions;this._sumy+=this.series[i]._sumy;this._sumx+=this.series[i]._sumx}var name;for(var j=0;j<12;j++){name=_axisNames[j];var t=this.axes[name]._ticks;for(var i=0;i<t.length;i++){var el=t[i]._elem;if(el){if($.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==undefined){window.G_vmlCanvasManager.uninitElement(el.get(0))}el.emptyForce();el=null;t._elem=null}}t=null;this.axes[name]._plotDimensions=this._plotDimensions;this.axes[name]._ticks=[]}if(this.sortData){sortData(this.series)}this.grid._axes=this.axes;this.legend._series=this.series};function sortData(series){var d,sd,pd,ppd,ret;for(var i=0;i<series.length;i++){var check;var bat=[series[i].data,series[i]._stackData,series[i]._plotData,series[i]._prevPlotData];for(var n=0;n<4;n++){check=true;d=bat[n];if(series[i]._stackAxis=="x"){for(var j=0;j<d.length;j++){if(typeof d[j][1]!="number"){check=false;break}}if(check){d.sort(function(a,b){return a[1]-b[1]})}}else{for(var j=0;j<d.length;j++){if(typeof d[j][0]!="number"){check=false;break}}if(check){d.sort(function(a,b){return a[0]-b[0]})}}}}}this.computePlotData=function(){this._plotData=[];this._stackData=[];var series,index,l;for(index=0,l=this.series.length;index<l;index++){series=this.series[index];this._plotData.push([]);this._stackData.push([]);var cd=series.data;this._plotData[index]=$.extend(true,[],cd);this._stackData[index]=$.extend(true,[],cd);series._plotData=this._plotData[index];series._stackData=this._stackData[index];var plotValues={x:[],y:[]};if(this.stackSeries&&!series.disableStack){series._stack=true;var sidx=series._stackAxis==="x"?0:1;for(var k=0,cdl=cd.length;k<cdl;k++){var temp=cd[k][sidx];if(temp==null){temp=0}this._plotData[index][k][sidx]=temp;this._stackData[index][k][sidx]=temp;if(index>0){for(var j=index;j--;){var prevval=this._plotData[j][k][sidx];if(temp*prevval>=0){this._plotData[index][k][sidx]+=prevval;this._stackData[index][k][sidx]+=prevval;break}}}}}else{for(var i=0;i<series.data.length;i++){plotValues.x.push(series.data[i][0]);plotValues.y.push(series.data[i][1])}this._stackData.push(series.data);this.series[index]._stackData=series.data;this._plotData.push(series.data);series._plotData=series.data;series._plotValues=plotValues}if(index>0){series._prevPlotData=this.series[index-1]._plotData}series._sumy=0;series._sumx=0;for(i=series.data.length-1;i>-1;i--){series._sumy+=series.data[i][1];series._sumx+=series.data[i][0]}}};this.populatePlotData=function(series,index){this._plotData=[];this._stackData=[];series._stackData=[];series._plotData=[];var plotValues={x:[],y:[]};if(this.stackSeries&&!series.disableStack){series._stack=true;var sidx=series._stackAxis==="x"?0:1;var temp=$.extend(true,[],series.data);var plotdata=$.extend(true,[],series.data);var tempx,tempy,dval,stackval,comparator;for(var j=0;j<index;j++){var cd=this.series[j].data;for(var k=0;k<cd.length;k++){dval=cd[k];tempx=dval[0]!=null?dval[0]:0;tempy=dval[1]!=null?dval[1]:0;temp[k][0]+=tempx;temp[k][1]+=tempy;stackval=sidx?tempy:tempx;if(series.data[k][sidx]*stackval>=0){plotdata[k][sidx]+=stackval}}}for(var i=0;i<plotdata.length;i++){plotValues.x.push(plotdata[i][0]);plotValues.y.push(plotdata[i][1])}this._plotData.push(plotdata);this._stackData.push(temp);series._stackData=temp;series._plotData=plotdata;series._plotValues=plotValues}else{for(var i=0;i<series.data.length;i++){plotValues.x.push(series.data[i][0]);plotValues.y.push(series.data[i][1])}this._stackData.push(series.data);this.series[index]._stackData=series.data;this._plotData.push(series.data);series._plotData=series.data;series._plotValues=plotValues}if(index>0){series._prevPlotData=this.series[index-1]._plotData}series._sumy=0;series._sumx=0;for(i=series.data.length-1;i>-1;i--){series._sumy+=series.data[i][1];series._sumx+=series.data[i][0]}};this.getNextSeriesColor=function(t){var idx=0;var sc=t.seriesColors;return function(){if(idx<sc.length){return sc[idx++]}else{idx=0;return sc[idx++]}}}(this);this.parseOptions=function(options){for(var i=0;i<this.preParseOptionsHooks.hooks.length;i++){this.preParseOptionsHooks.hooks[i].call(this,options)}for(var i=0;i<$.jqplot.preParseOptionsHooks.length;i++){$.jqplot.preParseOptionsHooks[i].call(this,options)}this.options=$.extend(true,{},this.defaults,options);var opts=this.options;this.animate=opts.animate;this.animateReplot=opts.animateReplot;this.stackSeries=opts.stackSeries;if($.isPlainObject(opts.fillBetween)){var temp=["series1","series2","color","baseSeries","fill"],tempi;for(var i=0,l=temp.length;i<l;i++){tempi=temp[i];if(opts.fillBetween[tempi]!=null){this.fillBetween[tempi]=opts.fillBetween[tempi]}}}if(opts.seriesColors){this.seriesColors=opts.seriesColors}if(opts.negativeSeriesColors){this.negativeSeriesColors=opts.negativeSeriesColors}if(opts.captureRightClick){this.captureRightClick=opts.captureRightClick}this.defaultAxisStart=options&&options.defaultAxisStart!=null?options.defaultAxisStart:this.defaultAxisStart;this.colorGenerator.setColors(this.seriesColors);this.negativeColorGenerator.setColors(this.negativeSeriesColors);$.extend(true,this._gridPadding,opts.gridPadding);this.sortData=opts.sortData!=null?opts.sortData:this.sortData;for(var i=0;i<12;i++){var n=_axisNames[i];var axis=this.axes[n];axis._options=$.extend(true,{},opts.axesDefaults,opts.axes[n]);$.extend(true,axis,opts.axesDefaults,opts.axes[n]);axis._plotWidth=this._width;axis._plotHeight=this._height}var normalizeData=function(data,dir,start){var temp=[];var i,l;dir=dir||"vertical";if(!$.isArray(data[0])){for(i=0,l=data.length;i<l;i++){if(dir=="vertical"){temp.push([start+i,data[i]])}else{temp.push([data[i],start+i])}}}else{$.extend(true,temp,data)}return temp};var colorIndex=0;this.series=[];for(var i=0;i<this.data.length;i++){var sopts=$.extend(true,{index:i},{seriesColors:this.seriesColors,negativeSeriesColors:this.negativeSeriesColors},this.options.seriesDefaults,this.options.series[i],{rendererOptions:{animation:{show:this.animate}}});var temp=new Series(sopts);for(var j=0;j<$.jqplot.preParseSeriesOptionsHooks.length;j++){$.jqplot.preParseSeriesOptionsHooks[j].call(temp,this.options.seriesDefaults,this.options.series[i])}for(var j=0;j<this.preParseSeriesOptionsHooks.hooks.length;j++){this.preParseSeriesOptionsHooks.hooks[j].call(temp,this.options.seriesDefaults,this.options.series[i])}$.extend(true,temp,sopts);var dir="vertical";if(temp.renderer===$.jqplot.BarRenderer&&temp.rendererOptions&&temp.rendererOptions.barDirection=="horizontal"){dir="horizontal";temp._stackAxis="x";temp._primaryAxis="_yaxis"}temp.data=normalizeData(this.data[i],dir,this.defaultAxisStart);switch(temp.xaxis){case"xaxis":temp._xaxis=this.axes.xaxis;break;case"x2axis":temp._xaxis=this.axes.x2axis;break;default:break}temp._yaxis=this.axes[temp.yaxis];temp._xaxis._series.push(temp);temp._yaxis._series.push(temp);if(temp.show){temp._xaxis.show=true;temp._yaxis.show=true}else{if(temp._xaxis.scaleToHiddenSeries){temp._xaxis.show=true}if(temp._yaxis.scaleToHiddenSeries){temp._yaxis.show=true}}if(!temp.label){temp.label="Series "+(i+1).toString()}this.series.push(temp);for(var j=0;j<$.jqplot.postParseSeriesOptionsHooks.length;j++){$.jqplot.postParseSeriesOptionsHooks[j].call(this.series[i],this.options.seriesDefaults,this.options.series[i])}for(var j=0;j<this.postParseSeriesOptionsHooks.hooks.length;j++){this.postParseSeriesOptionsHooks.hooks[j].call(this.series[i],this.options.seriesDefaults,this.options.series[i])}}$.extend(true,this.grid,this.options.grid);for(var i=0,l=_axisNames.length;i<l;i++){var n=_axisNames[i];var axis=this.axes[n];if(axis.borderWidth==null){axis.borderWidth=this.grid.borderWidth}}if(typeof this.options.title=="string"){this.title.text=this.options.title}else if(typeof this.options.title=="object"){$.extend(true,this.title,this.options.title)}this.title._plotWidth=this._width;this.legend.setOptions(this.options.legend);for(var i=0;i<$.jqplot.postParseOptionsHooks.length;i++){$.jqplot.postParseOptionsHooks[i].call(this,options)}for(var i=0;i<this.postParseOptionsHooks.hooks.length;i++){this.postParseOptionsHooks.hooks[i].call(this,options)}};this.destroy=function(){this.canvasManager.freeAllCanvases();if(this.eventCanvas&&this.eventCanvas._elem){this.eventCanvas._elem.unbind()}this.target.empty();this.target[0].innerHTML=""};this.replot=function(options){var opts=options||{};var data=opts.data||null;var clear=opts.clear===false?false:true;var resetAxes=opts.resetAxes||false;delete opts.data;delete opts.clear;delete opts.resetAxes;this.target.trigger("jqplotPreReplot");if(clear){this.destroy()}if(data||!$.isEmptyObject(opts)){this.reInitialize(data,opts)}else{this.quickInit()}if(resetAxes){this.resetAxesScale(resetAxes,opts.axes)}this.draw();this.target.trigger("jqplotPostReplot")};this.redraw=function(clear){clear=clear!=null?clear:true;this.target.trigger("jqplotPreRedraw");if(clear){this.canvasManager.freeAllCanvases();this.eventCanvas._elem.unbind();this.target.empty()}for(var ax in this.axes){this.axes[ax]._ticks=[]}this.computePlotData();this._sumy=0;this._sumx=0;for(var i=0,tsl=this.series.length;i<tsl;i++){this._sumy+=this.series[i]._sumy;this._sumx+=this.series[i]._sumx}this.draw();this.target.trigger("jqplotPostRedraw")};this.draw=function(){if(this.drawIfHidden||this.target.is(":visible")){this.target.trigger("jqplotPreDraw");var i,j,l,tempseries;for(i=0,l=$.jqplot.preDrawHooks.length;i<l;i++){$.jqplot.preDrawHooks[i].call(this)}for(i=0,l=this.preDrawHooks.hooks.length;i<l;i++){this.preDrawHooks.hooks[i].apply(this,this.preDrawSeriesHooks.args[i])}this.target.append(this.baseCanvas.createElement({left:0,right:0,top:0,bottom:0},"jqplot-base-canvas",null,this));this.baseCanvas.setContext();this.target.append(this.title.draw());this.title.pack({top:0,left:0});var legendElem=this.legend.draw({},this);var gridPadding={top:0,left:0,bottom:0,right:0};if(this.legend.placement=="outsideGrid"){this.target.append(legendElem);switch(this.legend.location){case"n":gridPadding.top+=this.legend.getHeight();break;case"s":gridPadding.bottom+=this.legend.getHeight();break;case"ne":case"e":case"se":gridPadding.right+=this.legend.getWidth();break;case"nw":case"w":case"sw":gridPadding.left+=this.legend.getWidth();break;default:gridPadding.right+=this.legend.getWidth();break}legendElem=legendElem.detach()}var ax=this.axes;var name;for(i=0;i<12;i++){name=_axisNames[i];this.target.append(ax[name].draw(this.baseCanvas._ctx,this));ax[name].set()}if(ax.yaxis.show){gridPadding.left+=ax.yaxis.getWidth()}var ra=["y2axis","y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis"];var rapad=[0,0,0,0,0,0,0,0];var gpr=0;var n;for(n=0;n<8;n++){if(ax[ra[n]].show){gpr+=ax[ra[n]].getWidth();rapad[n]=gpr}}gridPadding.right+=gpr;if(ax.x2axis.show){gridPadding.top+=ax.x2axis.getHeight()}if(this.title.show){gridPadding.top+=this.title.getHeight()}if(ax.xaxis.show){gridPadding.bottom+=ax.xaxis.getHeight()}if(this.options.gridDimensions&&$.isPlainObject(this.options.gridDimensions)){var gdw=parseInt(this.options.gridDimensions.width,10)||0;var gdh=parseInt(this.options.gridDimensions.height,10)||0;var widthAdj=(this._width-gridPadding.left-gridPadding.right-gdw)/2;var heightAdj=(this._height-gridPadding.top-gridPadding.bottom-gdh)/2;if(heightAdj>=0&&widthAdj>=0){gridPadding.top+=heightAdj;gridPadding.bottom+=heightAdj;gridPadding.left+=widthAdj;gridPadding.right+=widthAdj}}var arr=["top","bottom","left","right"];for(var n in arr){if(this._gridPadding[arr[n]]==null&&gridPadding[arr[n]]>0){this._gridPadding[arr[n]]=gridPadding[arr[n]]}else if(this._gridPadding[arr[n]]==null){this._gridPadding[arr[n]]=this._defaultGridPadding[arr[n]]}}var legendPadding=this._gridPadding;if(this.legend.placement==="outsideGrid"){legendPadding={top:this.title.getHeight(),left:0,right:0,bottom:0};if(this.legend.location==="s"){legendPadding.left=this._gridPadding.left;legendPadding.right=this._gridPadding.right}}ax.xaxis.pack({position:"absolute",bottom:this._gridPadding.bottom-ax.xaxis.getHeight(),left:0,width:this._width},{min:this._gridPadding.left,max:this._width-this._gridPadding.right});ax.yaxis.pack({position:"absolute",top:0,left:this._gridPadding.left-ax.yaxis.getWidth(),height:this._height},{min:this._height-this._gridPadding.bottom,max:this._gridPadding.top});ax.x2axis.pack({position:"absolute",top:this._gridPadding.top-ax.x2axis.getHeight(),left:0,width:this._width},{min:this._gridPadding.left,max:this._width-this._gridPadding.right});for(i=8;i>0;i--){ax[ra[i-1]].pack({position:"absolute",top:0,right:this._gridPadding.right-rapad[i-1]},{min:this._height-this._gridPadding.bottom,max:this._gridPadding.top})}var ltemp=(this._width-this._gridPadding.left-this._gridPadding.right)/2+this._gridPadding.left-ax.yMidAxis.getWidth()/2;ax.yMidAxis.pack({position:"absolute",top:0,left:ltemp,zIndex:9,textAlign:"center"},{min:this._height-this._gridPadding.bottom,max:this._gridPadding.top});this.target.append(this.grid.createElement(this._gridPadding,this));this.grid.draw();var series=this.series;var seriesLength=series.length;for(i=0,l=seriesLength;i<l;i++){j=this.seriesStack[i];this.target.append(series[j].shadowCanvas.createElement(this._gridPadding,"jqplot-series-shadowCanvas",null,this));series[j].shadowCanvas.setContext();series[j].shadowCanvas._elem.data("seriesIndex",j)}for(i=0,l=seriesLength;i<l;i++){j=this.seriesStack[i];this.target.append(series[j].canvas.createElement(this._gridPadding,"jqplot-series-canvas",null,this));series[j].canvas.setContext();series[j].canvas._elem.data("seriesIndex",j)}this.target.append(this.eventCanvas.createElement(this._gridPadding,"jqplot-event-canvas",null,this));this.eventCanvas.setContext();this.eventCanvas._ctx.fillStyle="rgba(0,0,0,0)";this.eventCanvas._ctx.fillRect(0,0,this.eventCanvas._ctx.canvas.width,this.eventCanvas._ctx.canvas.height);this.bindCustomEvents();if(this.legend.preDraw){this.eventCanvas._elem.before(legendElem);this.legend.pack(legendPadding);if(this.legend._elem){this.drawSeries({legendInfo:{location:this.legend.location,placement:this.legend.placement,width:this.legend.getWidth(),height:this.legend.getHeight(),xoffset:this.legend.xoffset,yoffset:this.legend.yoffset}})}else{this.drawSeries()}}else{this.drawSeries();if(seriesLength){$(series[seriesLength-1].canvas._elem).after(legendElem)}this.legend.pack(legendPadding)}for(var i=0,l=$.jqplot.eventListenerHooks.length;i<l;i++){this.eventCanvas._elem.bind($.jqplot.eventListenerHooks[i][0],{plot:this},$.jqplot.eventListenerHooks[i][1])}for(var i=0,l=this.eventListenerHooks.hooks.length;i<l;i++){this.eventCanvas._elem.bind(this.eventListenerHooks.hooks[i][0],{plot:this},this.eventListenerHooks.hooks[i][1])}var fb=this.fillBetween;if(fb.fill&&fb.series1!==fb.series2&&fb.series1<seriesLength&&fb.series2<seriesLength&&series[fb.series1]._type==="line"&&series[fb.series2]._type==="line"){this.doFillBetweenLines()}for(var i=0,l=$.jqplot.postDrawHooks.length;i<l;i++){$.jqplot.postDrawHooks[i].call(this)}for(var i=0,l=this.postDrawHooks.hooks.length;i<l;i++){this.postDrawHooks.hooks[i].apply(this,this.postDrawHooks.args[i])}if(this.target.is(":visible")){this._drawCount+=1}var temps,tempr,sel,_els;for(i=0,l=seriesLength;i<l;i++){temps=series[i];tempr=temps.renderer;sel=".jqplot-point-label.jqplot-series-"+i;if(tempr.animation&&tempr.animation._supported&&tempr.animation.show&&(this._drawCount<2||this.animateReplot)){_els=this.target.find(sel);_els.stop(true,true).hide();temps.canvas._elem.stop(true,true).hide();temps.shadowCanvas._elem.stop(true,true).hide();temps.canvas._elem.jqplotEffect("blind",{mode:"show",direction:tempr.animation.direction},tempr.animation.speed);temps.shadowCanvas._elem.jqplotEffect("blind",{mode:"show",direction:tempr.animation.direction},tempr.animation.speed);_els.fadeIn(tempr.animation.speed*.8)}}_els=null;this.target.trigger("jqplotPostDraw",[this])}};jqPlot.prototype.doFillBetweenLines=function(){var fb=this.fillBetween;var sid1=fb.series1;var sid2=fb.series2;var id1=sid1<sid2?sid1:sid2;var id2=sid2>sid1?sid2:sid1;var series1=this.series[id1];var series2=this.series[id2];if(series2.renderer.smooth){var tempgd=series2.renderer._smoothedData.slice(0).reverse()}else{var tempgd=series2.gridData.slice(0).reverse()}if(series1.renderer.smooth){var gd=series1.renderer._smoothedData.concat(tempgd)}else{var gd=series1.gridData.concat(tempgd)}var color=fb.color!==null?fb.color:this.series[sid1].fillColor;var baseSeries=fb.baseSeries!==null?fb.baseSeries:id1;var sr=this.series[baseSeries].renderer.shapeRenderer;var opts={fillStyle:color,fill:true,closePath:true};sr.draw(series1.shadowCanvas._ctx,gd,opts)};this.bindCustomEvents=function(){this.eventCanvas._elem.bind("click",{plot:this},this.onClick);this.eventCanvas._elem.bind("dblclick",{plot:this},this.onDblClick);this.eventCanvas._elem.bind("mousedown",{plot:this},this.onMouseDown);this.eventCanvas._elem.bind("mousemove",{plot:this},this.onMouseMove);this.eventCanvas._elem.bind("mouseenter",{plot:this},this.onMouseEnter);this.eventCanvas._elem.bind("mouseleave",{plot:this},this.onMouseLeave);if(this.captureRightClick){this.eventCanvas._elem.bind("mouseup",{plot:this},this.onRightClick);this.eventCanvas._elem.get(0).oncontextmenu=function(){return false}}else{this.eventCanvas._elem.bind("mouseup",{plot:this},this.onMouseUp)}};function getEventPosition(ev){var plot=ev.data.plot;var go=plot.eventCanvas._elem.offset();var gridPos={x:ev.pageX-go.left,y:ev.pageY-go.top};var dataPos={xaxis:null,yaxis:null,x2axis:null,y2axis:null,y3axis:null,y4axis:null,y5axis:null,y6axis:null,y7axis:null,y8axis:null,y9axis:null,yMidAxis:null};var an=["xaxis","yaxis","x2axis","y2axis","y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis","yMidAxis"];var ax=plot.axes;var n,axis;for(n=11;n>0;n--){axis=an[n-1];if(ax[axis].show){dataPos[axis]=ax[axis].series_p2u(gridPos[axis.charAt(0)])}}return{offsets:go,gridPos:gridPos,dataPos:dataPos}}function checkIntersection(gridpos,plot){var series=plot.series;var i,j,k,s,r,x,y,theta,sm,sa,minang,maxang;var d0,d,p,pp,points,bw,hp;var threshold,t;for(k=plot.seriesStack.length-1;k>=0;k--){i=plot.seriesStack[k];s=series[i];hp=s._highlightThreshold;switch(s.renderer.constructor){case $.jqplot.BarRenderer:x=gridpos.x;y=gridpos.y;for(j=0;j<s._barPoints.length;j++){points=s._barPoints[j];p=s.gridData[j];if(x>points[0][0]&&x<points[2][0]&&y>points[2][1]&&y<points[0][1]){return{
seriesIndex:s.index,pointIndex:j,gridData:p,data:s.data[j],points:s._barPoints[j]}}}break;case $.jqplot.PyramidRenderer:x=gridpos.x;y=gridpos.y;for(j=0;j<s._barPoints.length;j++){points=s._barPoints[j];p=s.gridData[j];if(x>points[0][0]+hp[0][0]&&x<points[2][0]+hp[2][0]&&y>points[2][1]&&y<points[0][1]){return{seriesIndex:s.index,pointIndex:j,gridData:p,data:s.data[j],points:s._barPoints[j]}}}break;case $.jqplot.DonutRenderer:sa=s.startAngle/180*Math.PI;x=gridpos.x-s._center[0];y=gridpos.y-s._center[1];r=Math.sqrt(Math.pow(x,2)+Math.pow(y,2));if(x>0&&-y>=0){theta=2*Math.PI-Math.atan(-y/x)}else if(x>0&&-y<0){theta=-Math.atan(-y/x)}else if(x<0){theta=Math.PI-Math.atan(-y/x)}else if(x==0&&-y>0){theta=3*Math.PI/2}else if(x==0&&-y<0){theta=Math.PI/2}else if(x==0&&y==0){theta=0}if(sa){theta-=sa;if(theta<0){theta+=2*Math.PI}else if(theta>2*Math.PI){theta-=2*Math.PI}}sm=s.sliceMargin/180*Math.PI;if(r<s._radius&&r>s._innerRadius){for(j=0;j<s.gridData.length;j++){minang=j>0?s.gridData[j-1][1]+sm:sm;maxang=s.gridData[j][1];if(theta>minang&&theta<maxang){return{seriesIndex:s.index,pointIndex:j,gridData:[gridpos.x,gridpos.y],data:s.data[j]}}}}break;case $.jqplot.PieRenderer:sa=s.startAngle/180*Math.PI;x=gridpos.x-s._center[0];y=gridpos.y-s._center[1];r=Math.sqrt(Math.pow(x,2)+Math.pow(y,2));if(x>0&&-y>=0){theta=2*Math.PI-Math.atan(-y/x)}else if(x>0&&-y<0){theta=-Math.atan(-y/x)}else if(x<0){theta=Math.PI-Math.atan(-y/x)}else if(x==0&&-y>0){theta=3*Math.PI/2}else if(x==0&&-y<0){theta=Math.PI/2}else if(x==0&&y==0){theta=0}if(sa){theta-=sa;if(theta<0){theta+=2*Math.PI}else if(theta>2*Math.PI){theta-=2*Math.PI}}sm=s.sliceMargin/180*Math.PI;if(r<s._radius){for(j=0;j<s.gridData.length;j++){minang=j>0?s.gridData[j-1][1]+sm:sm;maxang=s.gridData[j][1];if(theta>minang&&theta<maxang){return{seriesIndex:s.index,pointIndex:j,gridData:[gridpos.x,gridpos.y],data:s.data[j]}}}}break;case $.jqplot.BubbleRenderer:x=gridpos.x;y=gridpos.y;var ret=null;if(s.show){for(var j=0;j<s.gridData.length;j++){p=s.gridData[j];d=Math.sqrt((x-p[0])*(x-p[0])+(y-p[1])*(y-p[1]));if(d<=p[2]&&(d<=d0||d0==null)){d0=d;ret={seriesIndex:i,pointIndex:j,gridData:p,data:s.data[j]}}}if(ret!=null){return ret}}break;case $.jqplot.FunnelRenderer:x=gridpos.x;y=gridpos.y;var v=s._vertices,vfirst=v[0],vlast=v[v.length-1],lex,rex,cv;function findedge(l,p1,p2){var m=(p1[1]-p2[1])/(p1[0]-p2[0]);var b=p1[1]-m*p1[0];var y=l+p1[1];return[(y-b)/m,y]}lex=findedge(y,vfirst[0],vlast[3]);rex=findedge(y,vfirst[1],vlast[2]);for(j=0;j<v.length;j++){cv=v[j];if(y>=cv[0][1]&&y<=cv[3][1]&&x>=lex[0]&&x<=rex[0]){return{seriesIndex:s.index,pointIndex:j,gridData:null,data:s.data[j]}}}break;case $.jqplot.LineRenderer:x=gridpos.x;y=gridpos.y;r=s.renderer;if(s.show){if((s.fill||s.renderer.bands.show&&s.renderer.bands.fill)&&(!plot.plugins.highlighter||!plot.plugins.highlighter.show)){var inside=false;if(x>s._boundingBox[0][0]&&x<s._boundingBox[1][0]&&y>s._boundingBox[1][1]&&y<s._boundingBox[0][1]){var numPoints=s._areaPoints.length;var ii;var j=numPoints-1;for(var ii=0;ii<numPoints;ii++){var vertex1=[s._areaPoints[ii][0],s._areaPoints[ii][1]];var vertex2=[s._areaPoints[j][0],s._areaPoints[j][1]];if(vertex1[1]<y&&vertex2[1]>=y||vertex2[1]<y&&vertex1[1]>=y){if(vertex1[0]+(y-vertex1[1])/(vertex2[1]-vertex1[1])*(vertex2[0]-vertex1[0])<x){inside=!inside}}j=ii}}if(inside){return{seriesIndex:i,pointIndex:null,gridData:s.gridData,data:s.data,points:s._areaPoints}}break}else{t=s.markerRenderer.size/2+s.neighborThreshold;threshold=t>0?t:0;for(var j=0;j<s.gridData.length;j++){p=s.gridData[j];if(r.constructor==$.jqplot.OHLCRenderer){if(r.candleStick){var yp=s._yaxis.series_u2p;if(x>=p[0]-r._bodyWidth/2&&x<=p[0]+r._bodyWidth/2&&y>=yp(s.data[j][2])&&y<=yp(s.data[j][3])){return{seriesIndex:i,pointIndex:j,gridData:p,data:s.data[j]}}}else if(!r.hlc){var yp=s._yaxis.series_u2p;if(x>=p[0]-r._tickLength&&x<=p[0]+r._tickLength&&y>=yp(s.data[j][2])&&y<=yp(s.data[j][3])){return{seriesIndex:i,pointIndex:j,gridData:p,data:s.data[j]}}}else{var yp=s._yaxis.series_u2p;if(x>=p[0]-r._tickLength&&x<=p[0]+r._tickLength&&y>=yp(s.data[j][1])&&y<=yp(s.data[j][2])){return{seriesIndex:i,pointIndex:j,gridData:p,data:s.data[j]}}}}else if(p[0]!=null&&p[1]!=null){d=Math.sqrt((x-p[0])*(x-p[0])+(y-p[1])*(y-p[1]));if(d<=threshold&&(d<=d0||d0==null)){d0=d;return{seriesIndex:i,pointIndex:j,gridData:p,data:s.data[j]}}}}}}break;default:x=gridpos.x;y=gridpos.y;r=s.renderer;if(s.show){t=s.markerRenderer.size/2+s.neighborThreshold;threshold=t>0?t:0;for(var j=0;j<s.gridData.length;j++){p=s.gridData[j];if(r.constructor==$.jqplot.OHLCRenderer){if(r.candleStick){var yp=s._yaxis.series_u2p;if(x>=p[0]-r._bodyWidth/2&&x<=p[0]+r._bodyWidth/2&&y>=yp(s.data[j][2])&&y<=yp(s.data[j][3])){return{seriesIndex:i,pointIndex:j,gridData:p,data:s.data[j]}}}else if(!r.hlc){var yp=s._yaxis.series_u2p;if(x>=p[0]-r._tickLength&&x<=p[0]+r._tickLength&&y>=yp(s.data[j][2])&&y<=yp(s.data[j][3])){return{seriesIndex:i,pointIndex:j,gridData:p,data:s.data[j]}}}else{var yp=s._yaxis.series_u2p;if(x>=p[0]-r._tickLength&&x<=p[0]+r._tickLength&&y>=yp(s.data[j][1])&&y<=yp(s.data[j][2])){return{seriesIndex:i,pointIndex:j,gridData:p,data:s.data[j]}}}}else{d=Math.sqrt((x-p[0])*(x-p[0])+(y-p[1])*(y-p[1]));if(d<=threshold&&(d<=d0||d0==null)){d0=d;return{seriesIndex:i,pointIndex:j,gridData:p,data:s.data[j]}}}}}break}}return null}this.onClick=function(ev){var positions=getEventPosition(ev);var p=ev.data.plot;var neighbor=checkIntersection(positions.gridPos,p);var evt=$.Event("jqplotClick");evt.pageX=ev.pageX;evt.pageY=ev.pageY;$(this).trigger(evt,[positions.gridPos,positions.dataPos,neighbor,p])};this.onDblClick=function(ev){var positions=getEventPosition(ev);var p=ev.data.plot;var neighbor=checkIntersection(positions.gridPos,p);var evt=$.Event("jqplotDblClick");evt.pageX=ev.pageX;evt.pageY=ev.pageY;$(this).trigger(evt,[positions.gridPos,positions.dataPos,neighbor,p])};this.onMouseDown=function(ev){var positions=getEventPosition(ev);var p=ev.data.plot;var neighbor=checkIntersection(positions.gridPos,p);var evt=$.Event("jqplotMouseDown");evt.pageX=ev.pageX;evt.pageY=ev.pageY;$(this).trigger(evt,[positions.gridPos,positions.dataPos,neighbor,p])};this.onMouseUp=function(ev){var positions=getEventPosition(ev);var evt=$.Event("jqplotMouseUp");evt.pageX=ev.pageX;evt.pageY=ev.pageY;$(this).trigger(evt,[positions.gridPos,positions.dataPos,null,ev.data.plot])};this.onRightClick=function(ev){var positions=getEventPosition(ev);var p=ev.data.plot;var neighbor=checkIntersection(positions.gridPos,p);if(p.captureRightClick){if(ev.which==3){var evt=$.Event("jqplotRightClick");evt.pageX=ev.pageX;evt.pageY=ev.pageY;$(this).trigger(evt,[positions.gridPos,positions.dataPos,neighbor,p])}else{var evt=$.Event("jqplotMouseUp");evt.pageX=ev.pageX;evt.pageY=ev.pageY;$(this).trigger(evt,[positions.gridPos,positions.dataPos,neighbor,p])}}};this.onMouseMove=function(ev){var positions=getEventPosition(ev);var p=ev.data.plot;var neighbor=checkIntersection(positions.gridPos,p);var evt=$.Event("jqplotMouseMove");evt.pageX=ev.pageX;evt.pageY=ev.pageY;$(this).trigger(evt,[positions.gridPos,positions.dataPos,neighbor,p])};this.onMouseEnter=function(ev){var positions=getEventPosition(ev);var p=ev.data.plot;var evt=$.Event("jqplotMouseEnter");evt.pageX=ev.pageX;evt.pageY=ev.pageY;evt.relatedTarget=ev.relatedTarget;$(this).trigger(evt,[positions.gridPos,positions.dataPos,null,p])};this.onMouseLeave=function(ev){var positions=getEventPosition(ev);var p=ev.data.plot;var evt=$.Event("jqplotMouseLeave");evt.pageX=ev.pageX;evt.pageY=ev.pageY;evt.relatedTarget=ev.relatedTarget;$(this).trigger(evt,[positions.gridPos,positions.dataPos,null,p])};this.drawSeries=function(options,idx){var i,series,ctx;idx=typeof options==="number"&&idx==null?options:idx;options=typeof options==="object"?options:{};if(idx!=undefined){series=this.series[idx];ctx=series.shadowCanvas._ctx;ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height);series.drawShadow(ctx,options,this);ctx=series.canvas._ctx;ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height);series.draw(ctx,options,this);if(series.renderer.constructor==$.jqplot.BezierCurveRenderer){if(idx<this.series.length-1){this.drawSeries(idx+1)}}}else{for(i=0;i<this.series.length;i++){series=this.series[i];ctx=series.shadowCanvas._ctx;ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height);series.drawShadow(ctx,options,this);ctx=series.canvas._ctx;ctx.clearRect(0,0,ctx.canvas.width,ctx.canvas.height);series.draw(ctx,options,this)}}options=idx=i=series=ctx=null};this.moveSeriesToFront=function(idx){idx=parseInt(idx,10);var stackIndex=$.inArray(idx,this.seriesStack);if(stackIndex==-1){return}if(stackIndex==this.seriesStack.length-1){this.previousSeriesStack=this.seriesStack.slice(0);return}var opidx=this.seriesStack[this.seriesStack.length-1];var serelem=this.series[idx].canvas._elem.detach();var shadelem=this.series[idx].shadowCanvas._elem.detach();this.series[opidx].shadowCanvas._elem.after(shadelem);this.series[opidx].canvas._elem.after(serelem);this.previousSeriesStack=this.seriesStack.slice(0);this.seriesStack.splice(stackIndex,1);this.seriesStack.push(idx)};this.moveSeriesToBack=function(idx){idx=parseInt(idx,10);var stackIndex=$.inArray(idx,this.seriesStack);if(stackIndex==0||stackIndex==-1){return}var opidx=this.seriesStack[0];var serelem=this.series[idx].canvas._elem.detach();var shadelem=this.series[idx].shadowCanvas._elem.detach();this.series[opidx].shadowCanvas._elem.before(shadelem);this.series[opidx].canvas._elem.before(serelem);this.previousSeriesStack=this.seriesStack.slice(0);this.seriesStack.splice(stackIndex,1);this.seriesStack.unshift(idx)};this.restorePreviousSeriesOrder=function(){var i,j,serelem,shadelem,temp,move,keep;if(this.seriesStack==this.previousSeriesStack){return}for(i=1;i<this.previousSeriesStack.length;i++){move=this.previousSeriesStack[i];keep=this.previousSeriesStack[i-1];serelem=this.series[move].canvas._elem.detach();shadelem=this.series[move].shadowCanvas._elem.detach();this.series[keep].shadowCanvas._elem.after(shadelem);this.series[keep].canvas._elem.after(serelem)}temp=this.seriesStack.slice(0);this.seriesStack=this.previousSeriesStack.slice(0);this.previousSeriesStack=temp};this.restoreOriginalSeriesOrder=function(){var i,j,arr=[],serelem,shadelem;for(i=0;i<this.series.length;i++){arr.push(i)}if(this.seriesStack==arr){return}this.previousSeriesStack=this.seriesStack.slice(0);this.seriesStack=arr;for(i=1;i<this.seriesStack.length;i++){serelem=this.series[i].canvas._elem.detach();shadelem=this.series[i].shadowCanvas._elem.detach();this.series[i-1].shadowCanvas._elem.after(shadelem);this.series[i-1].canvas._elem.after(serelem)}};this.activateTheme=function(name){this.themeEngine.activate(this,name)}}$.jqplot.computeHighlightColors=function(colors){var ret;if($.isArray(colors)){ret=[];for(var i=0;i<colors.length;i++){var rgba=$.jqplot.getColorComponents(colors[i]);var newrgb=[rgba[0],rgba[1],rgba[2]];var sum=newrgb[0]+newrgb[1]+newrgb[2];for(var j=0;j<3;j++){newrgb[j]=sum>660?newrgb[j]*.85:.73*newrgb[j]+90;newrgb[j]=parseInt(newrgb[j],10);newrgb[j]>255?255:newrgb[j]}newrgb[3]=.3+.35*rgba[3];ret.push("rgba("+newrgb[0]+","+newrgb[1]+","+newrgb[2]+","+newrgb[3]+")")}}else{var rgba=$.jqplot.getColorComponents(colors);var newrgb=[rgba[0],rgba[1],rgba[2]];var sum=newrgb[0]+newrgb[1]+newrgb[2];for(var j=0;j<3;j++){newrgb[j]=sum>660?newrgb[j]*.85:.73*newrgb[j]+90;newrgb[j]=parseInt(newrgb[j],10);newrgb[j]>255?255:newrgb[j]}newrgb[3]=.3+.35*rgba[3];ret="rgba("+newrgb[0]+","+newrgb[1]+","+newrgb[2]+","+newrgb[3]+")"}return ret};$.jqplot.ColorGenerator=function(colors){colors=colors||$.jqplot.config.defaultColors;var idx=0;this.next=function(){if(idx<colors.length){return colors[idx++]}else{idx=0;return colors[idx++]}};this.previous=function(){if(idx>0){return colors[idx--]}else{idx=colors.length-1;return colors[idx]}};this.get=function(i){var idx=i-colors.length*Math.floor(i/colors.length);return colors[idx]};this.setColors=function(c){colors=c};this.reset=function(){idx=0};this.getIndex=function(){return idx};this.setIndex=function(index){idx=index}};$.jqplot.hex2rgb=function(h,a){h=h.replace("#","");if(h.length==3){h=h.charAt(0)+h.charAt(0)+h.charAt(1)+h.charAt(1)+h.charAt(2)+h.charAt(2)}var rgb;rgb="rgba("+parseInt(h.slice(0,2),16)+", "+parseInt(h.slice(2,4),16)+", "+parseInt(h.slice(4,6),16);if(a){rgb+=", "+a}rgb+=")";return rgb};$.jqplot.rgb2hex=function(s){var pat=/rgba?\( *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *(?:, *[0-9.]*)?\)/;var m=s.match(pat);var h="#";for(var i=1;i<4;i++){var temp;if(m[i].search(/%/)!=-1){temp=parseInt(255*m[i]/100,10).toString(16);if(temp.length==1){temp="0"+temp}}else{temp=parseInt(m[i],10).toString(16);if(temp.length==1){temp="0"+temp}}h+=temp}return h};$.jqplot.normalize2rgb=function(s,a){if(s.search(/^ *rgba?\(/)!=-1){return s}else if(s.search(/^ *#?[0-9a-fA-F]?[0-9a-fA-F]/)!=-1){return $.jqplot.hex2rgb(s,a)}else{throw new Error("Invalid color spec")}};$.jqplot.getColorComponents=function(s){s=$.jqplot.colorKeywordMap[s]||s;var rgb=$.jqplot.normalize2rgb(s);var pat=/rgba?\( *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *, *([0-9]{1,3}\.?[0-9]*%?) *,? *([0-9.]* *)?\)/;var m=rgb.match(pat);var ret=[];for(var i=1;i<4;i++){if(m[i].search(/%/)!=-1){ret[i-1]=parseInt(255*m[i]/100,10)}else{ret[i-1]=parseInt(m[i],10)}}ret[3]=parseFloat(m[4])?parseFloat(m[4]):1;return ret};$.jqplot.colorKeywordMap={aliceblue:"rgb(240, 248, 255)",antiquewhite:"rgb(250, 235, 215)",aqua:"rgb( 0, 255, 255)",aquamarine:"rgb(127, 255, 212)",azure:"rgb(240, 255, 255)",beige:"rgb(245, 245, 220)",bisque:"rgb(255, 228, 196)",black:"rgb( 0, 0, 0)",blanchedalmond:"rgb(255, 235, 205)",blue:"rgb( 0, 0, 255)",blueviolet:"rgb(138, 43, 226)",brown:"rgb(165, 42, 42)",burlywood:"rgb(222, 184, 135)",cadetblue:"rgb( 95, 158, 160)",chartreuse:"rgb(127, 255, 0)",chocolate:"rgb(210, 105, 30)",coral:"rgb(255, 127, 80)",cornflowerblue:"rgb(100, 149, 237)",cornsilk:"rgb(255, 248, 220)",crimson:"rgb(220, 20, 60)",cyan:"rgb( 0, 255, 255)",darkblue:"rgb( 0, 0, 139)",darkcyan:"rgb( 0, 139, 139)",darkgoldenrod:"rgb(184, 134, 11)",darkgray:"rgb(169, 169, 169)",darkgreen:"rgb( 0, 100, 0)",darkgrey:"rgb(169, 169, 169)",darkkhaki:"rgb(189, 183, 107)",darkmagenta:"rgb(139, 0, 139)",darkolivegreen:"rgb( 85, 107, 47)",darkorange:"rgb(255, 140, 0)",darkorchid:"rgb(153, 50, 204)",darkred:"rgb(139, 0, 0)",darksalmon:"rgb(233, 150, 122)",darkseagreen:"rgb(143, 188, 143)",darkslateblue:"rgb( 72, 61, 139)",darkslategray:"rgb( 47, 79, 79)",darkslategrey:"rgb( 47, 79, 79)",darkturquoise:"rgb( 0, 206, 209)",darkviolet:"rgb(148, 0, 211)",deeppink:"rgb(255, 20, 147)",deepskyblue:"rgb( 0, 191, 255)",dimgray:"rgb(105, 105, 105)",dimgrey:"rgb(105, 105, 105)",dodgerblue:"rgb( 30, 144, 255)",firebrick:"rgb(178, 34, 34)",floralwhite:"rgb(255, 250, 240)",forestgreen:"rgb( 34, 139, 34)",fuchsia:"rgb(255, 0, 255)",gainsboro:"rgb(220, 220, 220)",ghostwhite:"rgb(248, 248, 255)",gold:"rgb(255, 215, 0)",goldenrod:"rgb(218, 165, 32)",gray:"rgb(128, 128, 128)",grey:"rgb(128, 128, 128)",green:"rgb( 0, 128, 0)",greenyellow:"rgb(173, 255, 47)",honeydew:"rgb(240, 255, 240)",hotpink:"rgb(255, 105, 180)",indianred:"rgb(205, 92, 92)",indigo:"rgb( 75, 0, 130)",ivory:"rgb(255, 255, 240)",khaki:"rgb(240, 230, 140)",lavender:"rgb(230, 230, 250)",lavenderblush:"rgb(255, 240, 245)",lawngreen:"rgb(124, 252, 0)",lemonchiffon:"rgb(255, 250, 205)",lightblue:"rgb(173, 216, 230)",lightcoral:"rgb(240, 128, 128)",lightcyan:"rgb(224, 255, 255)",lightgoldenrodyellow:"rgb(250, 250, 210)",lightgray:"rgb(211, 211, 211)",lightgreen:"rgb(144, 238, 144)",lightgrey:"rgb(211, 211, 211)",lightpink:"rgb(255, 182, 193)",lightsalmon:"rgb(255, 160, 122)",lightseagreen:"rgb( 32, 178, 170)",lightskyblue:"rgb(135, 206, 250)",lightslategray:"rgb(119, 136, 153)",lightslategrey:"rgb(119, 136, 153)",lightsteelblue:"rgb(176, 196, 222)",lightyellow:"rgb(255, 255, 224)",lime:"rgb( 0, 255, 0)",limegreen:"rgb( 50, 205, 50)",linen:"rgb(250, 240, 230)",magenta:"rgb(255, 0, 255)",maroon:"rgb(128, 0, 0)",mediumaquamarine:"rgb(102, 205, 170)",mediumblue:"rgb( 0, 0, 205)",mediumorchid:"rgb(186, 85, 211)",mediumpurple:"rgb(147, 112, 219)",mediumseagreen:"rgb( 60, 179, 113)",mediumslateblue:"rgb(123, 104, 238)",mediumspringgreen:"rgb( 0, 250, 154)",mediumturquoise:"rgb( 72, 209, 204)",mediumvioletred:"rgb(199, 21, 133)",midnightblue:"rgb( 25, 25, 112)",mintcream:"rgb(245, 255, 250)",mistyrose:"rgb(255, 228, 225)",moccasin:"rgb(255, 228, 181)",navajowhite:"rgb(255, 222, 173)",navy:"rgb( 0, 0, 128)",oldlace:"rgb(253, 245, 230)",olive:"rgb(128, 128, 0)",olivedrab:"rgb(107, 142, 35)",orange:"rgb(255, 165, 0)",orangered:"rgb(255, 69, 0)",orchid:"rgb(218, 112, 214)",palegoldenrod:"rgb(238, 232, 170)",palegreen:"rgb(152, 251, 152)",paleturquoise:"rgb(175, 238, 238)",palevioletred:"rgb(219, 112, 147)",papayawhip:"rgb(255, 239, 213)",peachpuff:"rgb(255, 218, 185)",peru:"rgb(205, 133, 63)",pink:"rgb(255, 192, 203)",plum:"rgb(221, 160, 221)",powderblue:"rgb(176, 224, 230)",purple:"rgb(128, 0, 128)",red:"rgb(255, 0, 0)",rosybrown:"rgb(188, 143, 143)",royalblue:"rgb( 65, 105, 225)",saddlebrown:"rgb(139, 69, 19)",salmon:"rgb(250, 128, 114)",sandybrown:"rgb(244, 164, 96)",seagreen:"rgb( 46, 139, 87)",seashell:"rgb(255, 245, 238)",sienna:"rgb(160, 82, 45)",silver:"rgb(192, 192, 192)",skyblue:"rgb(135, 206, 235)",slateblue:"rgb(106, 90, 205)",slategray:"rgb(112, 128, 144)",slategrey:"rgb(112, 128, 144)",snow:"rgb(255, 250, 250)",springgreen:"rgb( 0, 255, 127)",steelblue:"rgb( 70, 130, 180)",tan:"rgb(210, 180, 140)",teal:"rgb( 0, 128, 128)",thistle:"rgb(216, 191, 216)",tomato:"rgb(255, 99, 71)",turquoise:"rgb( 64, 224, 208)",violet:"rgb(238, 130, 238)",wheat:"rgb(245, 222, 179)",white:"rgb(255, 255, 255)",whitesmoke:"rgb(245, 245, 245)",yellow:"rgb(255, 255, 0)",yellowgreen:"rgb(154, 205, 50)"};$.jqplot.AxisLabelRenderer=function(options){$.jqplot.ElemContainer.call(this);this.axis;this.show=true;this.label="";this.fontFamily=null;this.fontSize=null;this.textColor=null;this._elem;this.escapeHTML=false;$.extend(true,this,options)};$.jqplot.AxisLabelRenderer.prototype=new $.jqplot.ElemContainer;$.jqplot.AxisLabelRenderer.prototype.constructor=$.jqplot.AxisLabelRenderer;$.jqplot.AxisLabelRenderer.prototype.init=function(options){$.extend(true,this,options)};$.jqplot.AxisLabelRenderer.prototype.draw=function(ctx,plot){if(this._elem){this._elem.emptyForce();this._elem=null}this._elem=$('<div style="position:absolute;" class="jqplot-'+this.axis+'-label"></div>');if(Number(this.label)){this._elem.css("white-space","nowrap")}if(!this.escapeHTML){this._elem.html(this.label)}else{this._elem.text(this.label)}if(this.fontFamily){this._elem.css("font-family",this.fontFamily)}if(this.fontSize){this._elem.css("font-size",this.fontSize)}if(this.textColor){this._elem.css("color",this.textColor)}return this._elem};$.jqplot.AxisLabelRenderer.prototype.pack=function(){};$.jqplot.AxisTickRenderer=function(options){$.jqplot.ElemContainer.call(this);this.mark="outside";this.axis;this.showMark=true;this.showGridline=true;this.isMinorTick=false;this.size=4;this.markSize=6;this.show=true;this.showLabel=true;this.label=null;this.value=null;this._styles={};this.formatter=$.jqplot.DefaultTickFormatter;this.prefix="";this.suffix="";this.formatString="";this.fontFamily;this.fontSize;this.textColor;this.escapeHTML=false;this._elem;this._breakTick=false;$.extend(true,this,options)};$.jqplot.AxisTickRenderer.prototype.init=function(options){$.extend(true,this,options)};$.jqplot.AxisTickRenderer.prototype=new $.jqplot.ElemContainer;$.jqplot.AxisTickRenderer.prototype.constructor=$.jqplot.AxisTickRenderer;$.jqplot.AxisTickRenderer.prototype.setTick=function(value,axisName,isMinor){this.value=value;this.axis=axisName;if(isMinor){this.isMinorTick=true}return this};$.jqplot.AxisTickRenderer.prototype.draw=function(){if(this.label===null){this.label=this.prefix+this.formatter(this.formatString,this.value)+this.suffix}var style={position:"absolute"};if(Number(this.label)){style["whitSpace"]="nowrap"}if(this._elem){this._elem.emptyForce();this._elem=null}this._elem=$(document.createElement("div"));this._elem.addClass("jqplot-"+this.axis+"-tick");if(!this.escapeHTML){this._elem.html(this.label)}else{this._elem.text(this.label)}this._elem.css(style);for(var s in this._styles){this._elem.css(s,this._styles[s])}if(this.fontFamily){this._elem.css("font-family",this.fontFamily)}if(this.fontSize){this._elem.css("font-size",this.fontSize)}if(this.textColor){this._elem.css("color",this.textColor)}if(this._breakTick){this._elem.addClass("jqplot-breakTick")}return this._elem};$.jqplot.DefaultTickFormatter=function(format,val){if(typeof val=="number"){if(!format){format=$.jqplot.config.defaultTickFormatString}return $.jqplot.sprintf(format,val)}else{return String(val)}};$.jqplot.PercentTickFormatter=function(format,val){if(typeof val=="number"){val=100*val;if(!format){format=$.jqplot.config.defaultTickFormatString}return $.jqplot.sprintf(format,val)}else{return String(val)}};$.jqplot.AxisTickRenderer.prototype.pack=function(){};$.jqplot.CanvasGridRenderer=function(){this.shadowRenderer=new $.jqplot.ShadowRenderer};$.jqplot.CanvasGridRenderer.prototype.init=function(options){this._ctx;$.extend(true,this,options);var sopts={lineJoin:"miter",lineCap:"round",fill:false,isarc:false,angle:this.shadowAngle,offset:this.shadowOffset,alpha:this.shadowAlpha,depth:this.shadowDepth,lineWidth:this.shadowWidth,closePath:false,strokeStyle:this.shadowColor};this.renderer.shadowRenderer.init(sopts)};$.jqplot.CanvasGridRenderer.prototype.createElement=function(plot){var elem;if(this._elem){if($.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==undefined){elem=this._elem.get(0);window.G_vmlCanvasManager.uninitElement(elem);elem=null}this._elem.emptyForce();this._elem=null}elem=plot.canvasManager.getCanvas();var w=this._plotDimensions.width;var h=this._plotDimensions.height;elem.width=w;elem.height=h;this._elem=$(elem);this._elem.addClass("jqplot-grid-canvas");this._elem.css({position:"absolute",left:0,top:0});elem=plot.canvasManager.initCanvas(elem);this._top=this._offsets.top;this._bottom=h-this._offsets.bottom;this._left=this._offsets.left;this._right=w-this._offsets.right;this._width=this._right-this._left;this._height=this._bottom-this._top;elem=null;return this._elem};$.jqplot.CanvasGridRenderer.prototype.draw=function(){this._ctx=this._elem.get(0).getContext("2d");var ctx=this._ctx;var axes=this._axes;ctx.save();ctx.clearRect(0,0,this._plotDimensions.width,this._plotDimensions.height);ctx.fillStyle=this.backgroundColor||this.background;ctx.fillRect(this._left,this._top,this._width,this._height);ctx.save();ctx.lineJoin="miter";ctx.lineCap="butt";ctx.lineWidth=this.gridLineWidth;ctx.strokeStyle=this.gridLineColor;var b,e,s,m;var ax=["xaxis","yaxis","x2axis","y2axis"];for(var i=4;i>0;i--){var name=ax[i-1];var axis=axes[name];var ticks=axis._ticks;var numticks=ticks.length;if(axis.show){if(axis.drawBaseline){var bopts={};if(axis.baselineWidth!==null){bopts.lineWidth=axis.baselineWidth}if(axis.baselineColor!==null){bopts.strokeStyle=axis.baselineColor}switch(name){case"xaxis":drawLine(this._left,this._bottom,this._right,this._bottom,bopts);break;case"yaxis":drawLine(this._left,this._bottom,this._left,this._top,bopts);break;case"x2axis":drawLine(this._left,this._bottom,this._right,this._bottom,bopts);break;case"y2axis":drawLine(this._right,this._bottom,this._right,this._top,bopts);break}}for(var j=numticks;j>0;j--){var t=ticks[j-1];if(t.show){var pos=Math.round(axis.u2p(t.value))+.5;switch(name){case"xaxis":if(t.showGridline&&this.drawGridlines&&(!t.isMinorTick&&axis.drawMajorGridlines||t.isMinorTick&&axis.drawMinorGridlines)){drawLine(pos,this._top,pos,this._bottom)}if(t.showMark&&t.mark&&(!t.isMinorTick&&axis.drawMajorTickMarks||t.isMinorTick&&axis.drawMinorTickMarks)){s=t.markSize;m=t.mark;var pos=Math.round(axis.u2p(t.value))+.5;switch(m){case"outside":b=this._bottom;e=this._bottom+s;break;case"inside":b=this._bottom-s;e=this._bottom;break;case"cross":b=this._bottom-s;e=this._bottom+s;break;default:b=this._bottom;e=this._bottom+s;break}if(this.shadow){this.renderer.shadowRenderer.draw(ctx,[[pos,b],[pos,e]],{lineCap:"butt",lineWidth:this.gridLineWidth,offset:this.gridLineWidth*.75,depth:2,fill:false,closePath:false})}drawLine(pos,b,pos,e)}break;case"yaxis":if(t.showGridline&&this.drawGridlines&&(!t.isMinorTick&&axis.drawMajorGridlines||t.isMinorTick&&axis.drawMinorGridlines)){drawLine(this._right,pos,this._left,pos)}if(t.showMark&&t.mark&&(!t.isMinorTick&&axis.drawMajorTickMarks||t.isMinorTick&&axis.drawMinorTickMarks)){s=t.markSize;m=t.mark;var pos=Math.round(axis.u2p(t.value))+.5;switch(m){case"outside":b=this._left-s;e=this._left;break;case"inside":b=this._left;e=this._left+s;break;case"cross":b=this._left-s;e=this._left+s;break;default:b=this._left-s;e=this._left;break}if(this.shadow){this.renderer.shadowRenderer.draw(ctx,[[b,pos],[e,pos]],{lineCap:"butt",lineWidth:this.gridLineWidth*1.5,offset:this.gridLineWidth*.75,fill:false,closePath:false})}drawLine(b,pos,e,pos,{strokeStyle:axis.borderColor})}break;case"x2axis":if(t.showGridline&&this.drawGridlines&&(!t.isMinorTick&&axis.drawMajorGridlines||t.isMinorTick&&axis.drawMinorGridlines)){drawLine(pos,this._bottom,pos,this._top)}if(t.showMark&&t.mark&&(!t.isMinorTick&&axis.drawMajorTickMarks||t.isMinorTick&&axis.drawMinorTickMarks)){s=t.markSize;m=t.mark;var pos=Math.round(axis.u2p(t.value))+.5;switch(m){case"outside":b=this._top-s;e=this._top;break;case"inside":b=this._top;e=this._top+s;break;case"cross":b=this._top-s;e=this._top+s;break;default:b=this._top-s;e=this._top;break}if(this.shadow){this.renderer.shadowRenderer.draw(ctx,[[pos,b],[pos,e]],{lineCap:"butt",lineWidth:this.gridLineWidth,offset:this.gridLineWidth*.75,depth:2,fill:false,closePath:false})}drawLine(pos,b,pos,e)}break;case"y2axis":if(t.showGridline&&this.drawGridlines&&(!t.isMinorTick&&axis.drawMajorGridlines||t.isMinorTick&&axis.drawMinorGridlines)){drawLine(this._left,pos,this._right,pos)}if(t.showMark&&t.mark&&(!t.isMinorTick&&axis.drawMajorTickMarks||t.isMinorTick&&axis.drawMinorTickMarks)){s=t.markSize;m=t.mark;var pos=Math.round(axis.u2p(t.value))+.5;switch(m){case"outside":b=this._right;e=this._right+s;break;case"inside":b=this._right-s;e=this._right;break;case"cross":b=this._right-s;e=this._right+s;break;default:b=this._right;e=this._right+s;break}if(this.shadow){this.renderer.shadowRenderer.draw(ctx,[[b,pos],[e,pos]],{lineCap:"butt",lineWidth:this.gridLineWidth*1.5,offset:this.gridLineWidth*.75,fill:false,closePath:false})}drawLine(b,pos,e,pos,{strokeStyle:axis.borderColor})}break;default:break}}}t=null}axis=null;ticks=null}ax=["y3axis","y4axis","y5axis","y6axis","y7axis","y8axis","y9axis","yMidAxis"];for(var i=7;i>0;i--){var axis=axes[ax[i-1]];var ticks=axis._ticks;if(axis.show){var tn=ticks[axis.numberTicks-1];var t0=ticks[0];var left=axis.getLeft();var points=[[left,tn.getTop()+tn.getHeight()/2],[left,t0.getTop()+t0.getHeight()/2+1]];if(this.shadow){this.renderer.shadowRenderer.draw(ctx,points,{lineCap:"butt",fill:false,closePath:false})}drawLine(points[0][0],points[0][1],points[1][0],points[1][1],{lineCap:"butt",strokeStyle:axis.borderColor,lineWidth:axis.borderWidth});for(var j=ticks.length;j>0;j--){var t=ticks[j-1];s=t.markSize;m=t.mark;var pos=Math.round(axis.u2p(t.value))+.5;if(t.showMark&&t.mark){switch(m){case"outside":b=left;e=left+s;break;case"inside":b=left-s;e=left;break;case"cross":b=left-s;e=left+s;break;default:b=left;e=left+s;break}points=[[b,pos],[e,pos]];if(this.shadow){this.renderer.shadowRenderer.draw(ctx,points,{lineCap:"butt",lineWidth:this.gridLineWidth*1.5,offset:this.gridLineWidth*.75,fill:false,closePath:false})}drawLine(b,pos,e,pos,{strokeStyle:axis.borderColor})}t=null}t0=null}axis=null;ticks=null}ctx.restore();function drawLine(bx,by,ex,ey,opts){ctx.save();opts=opts||{};if(opts.lineWidth==null||opts.lineWidth!=0){$.extend(true,ctx,opts);ctx.beginPath();ctx.moveTo(bx,by);ctx.lineTo(ex,ey);ctx.stroke();ctx.restore()}}if(this.shadow){var points=[[this._left,this._bottom],[this._right,this._bottom],[this._right,this._top]];this.renderer.shadowRenderer.draw(ctx,points)}if(this.borderWidth!=0&&this.drawBorder){drawLine(this._left,this._top,this._right,this._top,{lineCap:"round",strokeStyle:axes.x2axis.borderColor,lineWidth:axes.x2axis.borderWidth});drawLine(this._right,this._top,this._right,this._bottom,{lineCap:"round",strokeStyle:axes.y2axis.borderColor,lineWidth:axes.y2axis.borderWidth});drawLine(this._right,this._bottom,this._left,this._bottom,{lineCap:"round",strokeStyle:axes.xaxis.borderColor,lineWidth:axes.xaxis.borderWidth});drawLine(this._left,this._bottom,this._left,this._top,{lineCap:"round",strokeStyle:axes.yaxis.borderColor,lineWidth:axes.yaxis.borderWidth})}ctx.restore();ctx=null;axes=null};$.jqplot.DivTitleRenderer=function(){};$.jqplot.DivTitleRenderer.prototype.init=function(options){$.extend(true,this,options)};$.jqplot.DivTitleRenderer.prototype.draw=function(){if(this._elem){this._elem.emptyForce();this._elem=null}var r=this.renderer;var elem=document.createElement("div");this._elem=$(elem);this._elem.addClass("jqplot-title");if(!this.text){this.show=false;this._elem.height(0);this._elem.width(0)}else if(this.text){var color;if(this.color){color=this.color}else if(this.textColor){color=this.textColor}var styles={position:"absolute",top:"0px",left:"0px"};if(this._plotWidth){styles["width"]=this._plotWidth+"px"}if(this.fontSize){styles["fontSize"]=this.fontSize}if(typeof this.textAlign==="string"){styles["textAlign"]=this.textAlign}else{styles["textAlign"]="center"}if(color){styles["color"]=color}if(this.paddingBottom){styles["paddingBottom"]=this.paddingBottom}if(this.fontFamily){styles["fontFamily"]=this.fontFamily}this._elem.css(styles);if(this.escapeHtml){this._elem.text(this.text)}else{this._elem.html(this.text)}}elem=null;return this._elem};$.jqplot.DivTitleRenderer.prototype.pack=function(){};var dotlen=.1;$.jqplot.LinePattern=function(ctx,pattern){var defaultLinePatterns={dotted:[dotlen,$.jqplot.config.dotGapLength],dashed:[$.jqplot.config.dashLength,$.jqplot.config.gapLength],solid:null};if(typeof pattern==="string"){if(pattern[0]==="."||pattern[0]==="-"){var s=pattern;pattern=[];for(var i=0,imax=s.length;i<imax;i++){if(s[i]==="."){pattern.push(dotlen)}else if(s[i]==="-"){pattern.push($.jqplot.config.dashLength)}else{continue}pattern.push($.jqplot.config.gapLength)}}else{pattern=defaultLinePatterns[pattern]}}if(!(pattern&&pattern.length)){return ctx}var patternIndex=0;var patternDistance=pattern[0];var px=0;var py=0;var pathx0=0;var pathy0=0;var moveTo=function(x,y){ctx.moveTo(x,y);px=x;py=y;pathx0=x;pathy0=y};var lineTo=function(x,y){var scale=ctx.lineWidth;var dx=x-px;var dy=y-py;var dist=Math.sqrt(dx*dx+dy*dy);if(dist>0&&scale>0){dx/=dist;dy/=dist;while(true){var dp=scale*patternDistance;if(dp<dist){px+=dp*dx;py+=dp*dy;if((patternIndex&1)==0){ctx.lineTo(px,py)}else{ctx.moveTo(px,py)}dist-=dp;patternIndex++;if(patternIndex>=pattern.length){patternIndex=0}patternDistance=pattern[patternIndex]}else{px=x;py=y;if((patternIndex&1)==0){ctx.lineTo(px,py)}else{ctx.moveTo(px,py)}patternDistance-=dist/scale;break}}}};var beginPath=function(){ctx.beginPath()};var closePath=function(){lineTo(pathx0,pathy0)};return{moveTo:moveTo,lineTo:lineTo,beginPath:beginPath,closePath:closePath}};$.jqplot.LineRenderer=function(){this.shapeRenderer=new $.jqplot.ShapeRenderer;this.shadowRenderer=new $.jqplot.ShadowRenderer};$.jqplot.LineRenderer.prototype.init=function(options,plot){options=options||{};this._type="line";this.renderer.animation={show:false,direction:"left",speed:2500,_supported:true};this.renderer.smooth=false;this.renderer.tension=null;this.renderer.constrainSmoothing=true;this.renderer._smoothedData=[];this.renderer._smoothedPlotData=[];this.renderer._hiBandGridData=[];this.renderer._lowBandGridData=[]
;this.renderer._hiBandSmoothedData=[];this.renderer._lowBandSmoothedData=[];this.renderer.bandData=[];this.renderer.bands={show:false,hiData:[],lowData:[],color:this.color,showLines:false,fill:true,fillColor:null,_min:null,_max:null,interval:"3%"};var lopts={highlightMouseOver:options.highlightMouseOver,highlightMouseDown:options.highlightMouseDown,highlightColor:options.highlightColor};delete options.highlightMouseOver;delete options.highlightMouseDown;delete options.highlightColor;$.extend(true,this.renderer,options);this.renderer.options=options;if(this.renderer.bandData.length>1&&(!options.bands||options.bands.show==null)){this.renderer.bands.show=true}else if(options.bands&&options.bands.show==null&&options.bands.interval!=null){this.renderer.bands.show=true}if(this.fill){this.renderer.bands.show=false}if(this.renderer.bands.show){this.renderer.initBands.call(this,this.renderer.options,plot)}if(this._stack){this.renderer.smooth=false}var opts={lineJoin:this.lineJoin,lineCap:this.lineCap,fill:this.fill,isarc:false,strokeStyle:this.color,fillStyle:this.fillColor,lineWidth:this.lineWidth,linePattern:this.linePattern,closePath:this.fill};this.renderer.shapeRenderer.init(opts);var shadow_offset=options.shadowOffset;if(shadow_offset==null){if(this.lineWidth>2.5){shadow_offset=1.25*(1+(Math.atan(this.lineWidth/2.5)/.785398163-1)*.6)}else{shadow_offset=1.25*Math.atan(this.lineWidth/2.5)/.785398163}}var sopts={lineJoin:this.lineJoin,lineCap:this.lineCap,fill:this.fill,isarc:false,angle:this.shadowAngle,offset:shadow_offset,alpha:this.shadowAlpha,depth:this.shadowDepth,lineWidth:this.lineWidth,linePattern:this.linePattern,closePath:this.fill};this.renderer.shadowRenderer.init(sopts);this._areaPoints=[];this._boundingBox=[[],[]];if(!this.isTrendline&&this.fill||this.renderer.bands.show){this.highlightMouseOver=true;this.highlightMouseDown=false;this.highlightColor=null;if(lopts.highlightMouseDown&&lopts.highlightMouseOver==null){lopts.highlightMouseOver=false}$.extend(true,this,{highlightMouseOver:lopts.highlightMouseOver,highlightMouseDown:lopts.highlightMouseDown,highlightColor:lopts.highlightColor});if(!this.highlightColor){var fc=this.renderer.bands.show?this.renderer.bands.fillColor:this.fillColor;this.highlightColor=$.jqplot.computeHighlightColors(fc)}if(this.highlighter){this.highlighter.show=false}}if(!this.isTrendline&&plot){plot.plugins.lineRenderer={};plot.postInitHooks.addOnce(postInit);plot.postDrawHooks.addOnce(postPlotDraw);plot.eventListenerHooks.addOnce("jqplotMouseMove",handleMove);plot.eventListenerHooks.addOnce("jqplotMouseDown",handleMouseDown);plot.eventListenerHooks.addOnce("jqplotMouseUp",handleMouseUp);plot.eventListenerHooks.addOnce("jqplotClick",handleClick);plot.eventListenerHooks.addOnce("jqplotRightClick",handleRightClick)}};$.jqplot.LineRenderer.prototype.initBands=function(options,plot){var bd=options.bandData||[];var bands=this.renderer.bands;bands.hiData=[];bands.lowData=[];var data=this.data;bands._max=null;bands._min=null;if(bd.length==2){if($.isArray(bd[0][0])){var p;var bdminidx=0,bdmaxidx=0;for(var i=0,l=bd[0].length;i<l;i++){p=bd[0][i];if(p[1]!=null&&p[1]>bands._max||bands._max==null){bands._max=p[1]}if(p[1]!=null&&p[1]<bands._min||bands._min==null){bands._min=p[1]}}for(var i=0,l=bd[1].length;i<l;i++){p=bd[1][i];if(p[1]!=null&&p[1]>bands._max||bands._max==null){bands._max=p[1];bdmaxidx=1}if(p[1]!=null&&p[1]<bands._min||bands._min==null){bands._min=p[1];bdminidx=1}}if(bdmaxidx===bdminidx){bands.show=false}bands.hiData=bd[bdmaxidx];bands.lowData=bd[bdminidx]}else if(bd[0].length===data.length&&bd[1].length===data.length){var hi=bd[0][0]>bd[1][0]?0:1;var low=hi?0:1;for(var i=0,l=data.length;i<l;i++){bands.hiData.push([data[i][0],bd[hi][i]]);bands.lowData.push([data[i][0],bd[low][i]])}}else{bands.show=false}}else if(bd.length>2&&!$.isArray(bd[0][0])){var hi=bd[0][0]>bd[0][1]?0:1;var low=hi?0:1;for(var i=0,l=bd.length;i<l;i++){bands.hiData.push([data[i][0],bd[i][hi]]);bands.lowData.push([data[i][0],bd[i][low]])}}else{var intrv=bands.interval;var a=null;var b=null;var afunc=null;var bfunc=null;if($.isArray(intrv)){a=intrv[0];b=intrv[1]}else{a=intrv}if(isNaN(a)){if(a.charAt(a.length-1)==="%"){afunc="multiply";a=parseFloat(a)/100+1}}else{a=parseFloat(a);afunc="add"}if(b!==null&&isNaN(b)){if(b.charAt(b.length-1)==="%"){bfunc="multiply";b=parseFloat(b)/100+1}}else if(b!==null){b=parseFloat(b);bfunc="add"}if(a!==null){if(b===null){b=-a;bfunc=afunc;if(bfunc==="multiply"){b+=2}}if(a<b){var temp=a;a=b;b=temp;temp=afunc;afunc=bfunc;bfunc=temp}for(var i=0,l=data.length;i<l;i++){switch(afunc){case"add":bands.hiData.push([data[i][0],data[i][1]+a]);break;case"multiply":bands.hiData.push([data[i][0],data[i][1]*a]);break}switch(bfunc){case"add":bands.lowData.push([data[i][0],data[i][1]+b]);break;case"multiply":bands.lowData.push([data[i][0],data[i][1]*b]);break}}}else{bands.show=false}}var hd=bands.hiData;var ld=bands.lowData;for(var i=0,l=hd.length;i<l;i++){if(hd[i][1]!=null&&hd[i][1]>bands._max||bands._max==null){bands._max=hd[i][1]}}for(var i=0,l=ld.length;i<l;i++){if(ld[i][1]!=null&&ld[i][1]<bands._min||bands._min==null){bands._min=ld[i][1]}}if(bands.fillColor===null){var c=$.jqplot.getColorComponents(bands.color);c[3]=c[3]*.5;bands.fillColor="rgba("+c[0]+", "+c[1]+", "+c[2]+", "+c[3]+")"}};function getSteps(d,f){return(3.4182054+f)*Math.pow(d,-.3534992)}function computeSteps(d1,d2){var s=Math.sqrt(Math.pow(d2[0]-d1[0],2)+Math.pow(d2[1]-d1[1],2));return 5.7648*Math.log(s)+7.4456}function tanh(x){var a=(Math.exp(2*x)-1)/(Math.exp(2*x)+1);return a}function computeConstrainedSmoothedData(gd){var smooth=this.renderer.smooth;var dim=this.canvas.getWidth();var xp=this._xaxis.series_p2u;var yp=this._yaxis.series_p2u;var steps=null;var _steps=null;var dist=gd.length/dim;var _smoothedData=[];var _smoothedPlotData=[];if(!isNaN(parseFloat(smooth))){steps=parseFloat(smooth)}else{steps=getSteps(dist,.5)}var yy=[];var xx=[];for(var i=0,l=gd.length;i<l;i++){yy.push(gd[i][1]);xx.push(gd[i][0])}function dxx(x1,x0){if(x1-x0==0){return Math.pow(10,10)}else{return x1-x0}}var A,B,C,D;var nmax=gd.length-1;for(var num=1,gdl=gd.length;num<gdl;num++){var gxx=[];var ggxx=[];for(var j=0;j<2;j++){var i=num-1+j;if(i==0||i==nmax){gxx[j]=Math.pow(10,10)}else if(yy[i+1]-yy[i]==0||yy[i]-yy[i-1]==0){gxx[j]=0}else if((xx[i+1]-xx[i])/(yy[i+1]-yy[i])+(xx[i]-xx[i-1])/(yy[i]-yy[i-1])==0){gxx[j]=0}else if((yy[i+1]-yy[i])*(yy[i]-yy[i-1])<0){gxx[j]=0}else{gxx[j]=2/(dxx(xx[i+1],xx[i])/(yy[i+1]-yy[i])+dxx(xx[i],xx[i-1])/(yy[i]-yy[i-1]))}}if(num==1){gxx[0]=3/2*(yy[1]-yy[0])/dxx(xx[1],xx[0])-gxx[1]/2}else if(num==nmax){gxx[1]=3/2*(yy[nmax]-yy[nmax-1])/dxx(xx[nmax],xx[nmax-1])-gxx[0]/2}ggxx[0]=-2*(gxx[1]+2*gxx[0])/dxx(xx[num],xx[num-1])+6*(yy[num]-yy[num-1])/Math.pow(dxx(xx[num],xx[num-1]),2);ggxx[1]=2*(2*gxx[1]+gxx[0])/dxx(xx[num],xx[num-1])-6*(yy[num]-yy[num-1])/Math.pow(dxx(xx[num],xx[num-1]),2);D=1/6*(ggxx[1]-ggxx[0])/dxx(xx[num],xx[num-1]);C=1/2*(xx[num]*ggxx[0]-xx[num-1]*ggxx[1])/dxx(xx[num],xx[num-1]);B=(yy[num]-yy[num-1]-C*(Math.pow(xx[num],2)-Math.pow(xx[num-1],2))-D*(Math.pow(xx[num],3)-Math.pow(xx[num-1],3)))/dxx(xx[num],xx[num-1]);A=yy[num-1]-B*xx[num-1]-C*Math.pow(xx[num-1],2)-D*Math.pow(xx[num-1],3);var increment=(xx[num]-xx[num-1])/steps;var temp,tempx;for(var j=0,l=steps;j<l;j++){temp=[];tempx=xx[num-1]+j*increment;temp.push(tempx);temp.push(A+B*tempx+C*Math.pow(tempx,2)+D*Math.pow(tempx,3));_smoothedData.push(temp);_smoothedPlotData.push([xp(temp[0]),yp(temp[1])])}}_smoothedData.push(gd[i]);_smoothedPlotData.push([xp(gd[i][0]),yp(gd[i][1])]);return[_smoothedData,_smoothedPlotData]}function computeHermiteSmoothedData(gd){var smooth=this.renderer.smooth;var tension=this.renderer.tension;var dim=this.canvas.getWidth();var xp=this._xaxis.series_p2u;var yp=this._yaxis.series_p2u;var steps=null;var _steps=null;var a=null;var a1=null;var a2=null;var slope=null;var slope2=null;var temp=null;var t,s,h1,h2,h3,h4;var TiX,TiY,Ti1X,Ti1Y;var pX,pY,p;var sd=[];var spd=[];var dist=gd.length/dim;var min,max,stretch,scale,shift;var _smoothedData=[];var _smoothedPlotData=[];if(!isNaN(parseFloat(smooth))){steps=parseFloat(smooth)}else{steps=getSteps(dist,.5)}if(!isNaN(parseFloat(tension))){tension=parseFloat(tension)}for(var i=0,l=gd.length-1;i<l;i++){if(tension===null){slope=Math.abs((gd[i+1][1]-gd[i][1])/(gd[i+1][0]-gd[i][0]));min=.3;max=.6;stretch=(max-min)/2;scale=2.5;shift=-1.4;temp=slope/scale+shift;a1=stretch*tanh(temp)-stretch*tanh(shift)+min;if(i>0){slope2=Math.abs((gd[i][1]-gd[i-1][1])/(gd[i][0]-gd[i-1][0]))}temp=slope2/scale+shift;a2=stretch*tanh(temp)-stretch*tanh(shift)+min;a=(a1+a2)/2}else{a=tension}for(t=0;t<steps;t++){s=t/steps;h1=(1+2*s)*Math.pow(1-s,2);h2=s*Math.pow(1-s,2);h3=Math.pow(s,2)*(3-2*s);h4=Math.pow(s,2)*(s-1);if(gd[i-1]){TiX=a*(gd[i+1][0]-gd[i-1][0]);TiY=a*(gd[i+1][1]-gd[i-1][1])}else{TiX=a*(gd[i+1][0]-gd[i][0]);TiY=a*(gd[i+1][1]-gd[i][1])}if(gd[i+2]){Ti1X=a*(gd[i+2][0]-gd[i][0]);Ti1Y=a*(gd[i+2][1]-gd[i][1])}else{Ti1X=a*(gd[i+1][0]-gd[i][0]);Ti1Y=a*(gd[i+1][1]-gd[i][1])}pX=h1*gd[i][0]+h3*gd[i+1][0]+h2*TiX+h4*Ti1X;pY=h1*gd[i][1]+h3*gd[i+1][1]+h2*TiY+h4*Ti1Y;p=[pX,pY];_smoothedData.push(p);_smoothedPlotData.push([xp(pX),yp(pY)])}}_smoothedData.push(gd[l]);_smoothedPlotData.push([xp(gd[l][0]),yp(gd[l][1])]);return[_smoothedData,_smoothedPlotData]}$.jqplot.LineRenderer.prototype.setGridData=function(plot){var xp=this._xaxis.series_u2p;var yp=this._yaxis.series_u2p;var data=this._plotData;var pdata=this._prevPlotData;this.gridData=[];this._prevGridData=[];this.renderer._smoothedData=[];this.renderer._smoothedPlotData=[];this.renderer._hiBandGridData=[];this.renderer._lowBandGridData=[];this.renderer._hiBandSmoothedData=[];this.renderer._lowBandSmoothedData=[];var bands=this.renderer.bands;var hasNull=false;for(var i=0,l=data.length;i<l;i++){if(data[i][0]!=null&&data[i][1]!=null){this.gridData.push([xp.call(this._xaxis,data[i][0]),yp.call(this._yaxis,data[i][1])])}else if(data[i][0]==null){hasNull=true;this.gridData.push([null,yp.call(this._yaxis,data[i][1])])}else if(data[i][1]==null){hasNull=true;this.gridData.push([xp.call(this._xaxis,data[i][0]),null])}if(pdata[i]!=null&&pdata[i][0]!=null&&pdata[i][1]!=null){this._prevGridData.push([xp.call(this._xaxis,pdata[i][0]),yp.call(this._yaxis,pdata[i][1])])}else if(pdata[i]!=null&&pdata[i][0]==null){this._prevGridData.push([null,yp.call(this._yaxis,pdata[i][1])])}else if(pdata[i]!=null&&pdata[i][0]!=null&&pdata[i][1]==null){this._prevGridData.push([xp.call(this._xaxis,pdata[i][0]),null])}}if(hasNull){this.renderer.smooth=false;if(this._type==="line"){bands.show=false}}if(this._type==="line"&&bands.show){for(var i=0,l=bands.hiData.length;i<l;i++){this.renderer._hiBandGridData.push([xp.call(this._xaxis,bands.hiData[i][0]),yp.call(this._yaxis,bands.hiData[i][1])])}for(var i=0,l=bands.lowData.length;i<l;i++){this.renderer._lowBandGridData.push([xp.call(this._xaxis,bands.lowData[i][0]),yp.call(this._yaxis,bands.lowData[i][1])])}}if(this._type==="line"&&this.renderer.smooth&&this.gridData.length>2){var ret;if(this.renderer.constrainSmoothing){ret=computeConstrainedSmoothedData.call(this,this.gridData);this.renderer._smoothedData=ret[0];this.renderer._smoothedPlotData=ret[1];if(bands.show){ret=computeConstrainedSmoothedData.call(this,this.renderer._hiBandGridData);this.renderer._hiBandSmoothedData=ret[0];ret=computeConstrainedSmoothedData.call(this,this.renderer._lowBandGridData);this.renderer._lowBandSmoothedData=ret[0]}ret=null}else{ret=computeHermiteSmoothedData.call(this,this.gridData);this.renderer._smoothedData=ret[0];this.renderer._smoothedPlotData=ret[1];if(bands.show){ret=computeHermiteSmoothedData.call(this,this.renderer._hiBandGridData);this.renderer._hiBandSmoothedData=ret[0];ret=computeHermiteSmoothedData.call(this,this.renderer._lowBandGridData);this.renderer._lowBandSmoothedData=ret[0]}ret=null}}};$.jqplot.LineRenderer.prototype.makeGridData=function(data,plot){var xp=this._xaxis.series_u2p;var yp=this._yaxis.series_u2p;var gd=[];var pgd=[];this.renderer._smoothedData=[];this.renderer._smoothedPlotData=[];this.renderer._hiBandGridData=[];this.renderer._lowBandGridData=[];this.renderer._hiBandSmoothedData=[];this.renderer._lowBandSmoothedData=[];var bands=this.renderer.bands;var hasNull=false;for(var i=0;i<data.length;i++){if(data[i][0]!=null&&data[i][1]!=null){gd.push([xp.call(this._xaxis,data[i][0]),yp.call(this._yaxis,data[i][1])])}else if(data[i][0]==null){hasNull=true;gd.push([null,yp.call(this._yaxis,data[i][1])])}else if(data[i][1]==null){hasNull=true;gd.push([xp.call(this._xaxis,data[i][0]),null])}}if(hasNull){this.renderer.smooth=false;if(this._type==="line"){bands.show=false}}if(this._type==="line"&&bands.show){for(var i=0,l=bands.hiData.length;i<l;i++){this.renderer._hiBandGridData.push([xp.call(this._xaxis,bands.hiData[i][0]),yp.call(this._yaxis,bands.hiData[i][1])])}for(var i=0,l=bands.lowData.length;i<l;i++){this.renderer._lowBandGridData.push([xp.call(this._xaxis,bands.lowData[i][0]),yp.call(this._yaxis,bands.lowData[i][1])])}}if(this._type==="line"&&this.renderer.smooth&&gd.length>2){var ret;if(this.renderer.constrainSmoothing){ret=computeConstrainedSmoothedData.call(this,gd);this.renderer._smoothedData=ret[0];this.renderer._smoothedPlotData=ret[1];if(bands.show){ret=computeConstrainedSmoothedData.call(this,this.renderer._hiBandGridData);this.renderer._hiBandSmoothedData=ret[0];ret=computeConstrainedSmoothedData.call(this,this.renderer._lowBandGridData);this.renderer._lowBandSmoothedData=ret[0]}ret=null}else{ret=computeHermiteSmoothedData.call(this,gd);this.renderer._smoothedData=ret[0];this.renderer._smoothedPlotData=ret[1];if(bands.show){ret=computeHermiteSmoothedData.call(this,this.renderer._hiBandGridData);this.renderer._hiBandSmoothedData=ret[0];ret=computeHermiteSmoothedData.call(this,this.renderer._lowBandGridData);this.renderer._lowBandSmoothedData=ret[0]}ret=null}}return gd};$.jqplot.LineRenderer.prototype.draw=function(ctx,gd,options,plot){var i;var opts=$.extend(true,{},options);var shadow=opts.shadow!=undefined?opts.shadow:this.shadow;var showLine=opts.showLine!=undefined?opts.showLine:this.showLine;var fill=opts.fill!=undefined?opts.fill:this.fill;var fillAndStroke=opts.fillAndStroke!=undefined?opts.fillAndStroke:this.fillAndStroke;var xmin,ymin,xmax,ymax;ctx.save();if(gd.length){if(showLine){if(fill){if(this.fillToZero){var negativeColor=this.negativeColor;if(!this.useNegativeColors){negativeColor=opts.fillStyle}var isnegative=false;var posfs=opts.fillStyle;if(fillAndStroke){var fasgd=gd.slice(0)}if(this.index==0||!this._stack){var tempgd=[];var pd=this.renderer.smooth?this.renderer._smoothedPlotData:this._plotData;this._areaPoints=[];var pyzero=this._yaxis.series_u2p(this.fillToValue);var pxzero=this._xaxis.series_u2p(this.fillToValue);opts.closePath=true;if(this.fillAxis=="y"){tempgd.push([gd[0][0],pyzero]);this._areaPoints.push([gd[0][0],pyzero]);for(var i=0;i<gd.length-1;i++){tempgd.push(gd[i]);this._areaPoints.push(gd[i]);if(pd[i][1]*pd[i+1][1]<=0){if(pd[i][1]<0){isnegative=true;opts.fillStyle=negativeColor}else{isnegative=false;opts.fillStyle=posfs}var xintercept=gd[i][0]+(gd[i+1][0]-gd[i][0])*(pyzero-gd[i][1])/(gd[i+1][1]-gd[i][1]);tempgd.push([xintercept,pyzero]);this._areaPoints.push([xintercept,pyzero]);if(shadow){this.renderer.shadowRenderer.draw(ctx,tempgd,opts)}this.renderer.shapeRenderer.draw(ctx,tempgd,opts);tempgd=[[xintercept,pyzero]]}}if(pd[gd.length-1][1]<0){isnegative=true;opts.fillStyle=negativeColor}else{isnegative=false;opts.fillStyle=posfs}tempgd.push(gd[gd.length-1]);this._areaPoints.push(gd[gd.length-1]);tempgd.push([gd[gd.length-1][0],pyzero]);this._areaPoints.push([gd[gd.length-1][0],pyzero])}if(shadow){this.renderer.shadowRenderer.draw(ctx,tempgd,opts)}this.renderer.shapeRenderer.draw(ctx,tempgd,opts)}else{var prev=this._prevGridData;for(var i=prev.length;i>0;i--){gd.push(prev[i-1])}if(shadow){this.renderer.shadowRenderer.draw(ctx,gd,opts)}this._areaPoints=gd;this.renderer.shapeRenderer.draw(ctx,gd,opts)}}else{if(fillAndStroke){var fasgd=gd.slice(0)}if(this.index==0||!this._stack){var gridymin=ctx.canvas.height;gd.unshift([gd[0][0],gridymin]);var len=gd.length;gd.push([gd[len-1][0],gridymin])}else{var prev=this._prevGridData;for(var i=prev.length;i>0;i--){gd.push(prev[i-1])}}this._areaPoints=gd;if(shadow){this.renderer.shadowRenderer.draw(ctx,gd,opts)}this.renderer.shapeRenderer.draw(ctx,gd,opts)}if(fillAndStroke){var fasopts=$.extend(true,{},opts,{fill:false,closePath:false});this.renderer.shapeRenderer.draw(ctx,fasgd,fasopts);if(this.markerRenderer.show){if(this.renderer.smooth){fasgd=this.gridData}for(i=0;i<fasgd.length;i++){this.markerRenderer.draw(fasgd[i][0],fasgd[i][1],ctx,opts.markerOptions)}}}}else{if(this.renderer.bands.show){var bdat;var bopts=$.extend(true,{},opts);if(this.renderer.bands.showLines){bdat=this.renderer.smooth?this.renderer._hiBandSmoothedData:this.renderer._hiBandGridData;this.renderer.shapeRenderer.draw(ctx,bdat,opts);bdat=this.renderer.smooth?this.renderer._lowBandSmoothedData:this.renderer._lowBandGridData;this.renderer.shapeRenderer.draw(ctx,bdat,bopts)}if(this.renderer.bands.fill){if(this.renderer.smooth){bdat=this.renderer._hiBandSmoothedData.concat(this.renderer._lowBandSmoothedData.reverse())}else{bdat=this.renderer._hiBandGridData.concat(this.renderer._lowBandGridData.reverse())}this._areaPoints=bdat;bopts.closePath=true;bopts.fill=true;bopts.fillStyle=this.renderer.bands.fillColor;this.renderer.shapeRenderer.draw(ctx,bdat,bopts)}}if(shadow){this.renderer.shadowRenderer.draw(ctx,gd,opts)}this.renderer.shapeRenderer.draw(ctx,gd,opts)}}var xmin=xmax=ymin=ymax=null;for(i=0;i<this._areaPoints.length;i++){var p=this._areaPoints[i];if(xmin>p[0]||xmin==null){xmin=p[0]}if(ymax<p[1]||ymax==null){ymax=p[1]}if(xmax<p[0]||xmax==null){xmax=p[0]}if(ymin>p[1]||ymin==null){ymin=p[1]}}if(this.type==="line"&&this.renderer.bands.show){ymax=this._yaxis.series_u2p(this.renderer.bands._min);ymin=this._yaxis.series_u2p(this.renderer.bands._max)}this._boundingBox=[[xmin,ymax],[xmax,ymin]];if(this.markerRenderer.show&&!fill){if(this.renderer.smooth){gd=this.gridData}for(i=0;i<gd.length;i++){if(gd[i][0]!=null&&gd[i][1]!=null){this.markerRenderer.draw(gd[i][0],gd[i][1],ctx,opts.markerOptions)}}}}ctx.restore()};$.jqplot.LineRenderer.prototype.drawShadow=function(ctx,gd,options){};function postInit(target,data,options){for(var i=0;i<this.series.length;i++){if(this.series[i].renderer.constructor==$.jqplot.LineRenderer){if(this.series[i].highlightMouseOver){this.series[i].highlightMouseDown=false}}}}function postPlotDraw(){if(this.plugins.lineRenderer&&this.plugins.lineRenderer.highlightCanvas){this.plugins.lineRenderer.highlightCanvas.resetCanvas();this.plugins.lineRenderer.highlightCanvas=null}this.plugins.lineRenderer.highlightedSeriesIndex=null;this.plugins.lineRenderer.highlightCanvas=new $.jqplot.GenericCanvas;this.eventCanvas._elem.before(this.plugins.lineRenderer.highlightCanvas.createElement(this._gridPadding,"jqplot-lineRenderer-highlight-canvas",this._plotDimensions,this));this.plugins.lineRenderer.highlightCanvas.setContext();this.eventCanvas._elem.bind("mouseleave",{plot:this},function(ev){unhighlight(ev.data.plot)})}function highlight(plot,sidx,pidx,points){var s=plot.series[sidx];var canvas=plot.plugins.lineRenderer.highlightCanvas;canvas._ctx.clearRect(0,0,canvas._ctx.canvas.width,canvas._ctx.canvas.height);s._highlightedPoint=pidx;plot.plugins.lineRenderer.highlightedSeriesIndex=sidx;var opts={fillStyle:s.highlightColor};if(s.type==="line"&&s.renderer.bands.show){opts.fill=true;opts.closePath=true}s.renderer.shapeRenderer.draw(canvas._ctx,points,opts);canvas=null}function unhighlight(plot){var canvas=plot.plugins.lineRenderer.highlightCanvas;canvas._ctx.clearRect(0,0,canvas._ctx.canvas.width,canvas._ctx.canvas.height);for(var i=0;i<plot.series.length;i++){plot.series[i]._highlightedPoint=null}plot.plugins.lineRenderer.highlightedSeriesIndex=null;plot.target.trigger("jqplotDataUnhighlight");canvas=null}function handleMove(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];var evt1=jQuery.Event("jqplotDataMouseOver");evt1.pageX=ev.pageX;evt1.pageY=ev.pageY;plot.target.trigger(evt1,ins);if(plot.series[ins[0]].highlightMouseOver&&!(ins[0]==plot.plugins.lineRenderer.highlightedSeriesIndex)){var evt=jQuery.Event("jqplotDataHighlight");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins);highlight(plot,neighbor.seriesIndex,neighbor.pointIndex,neighbor.points)}}else if(neighbor==null){unhighlight(plot)}}function handleMouseDown(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];if(plot.series[ins[0]].highlightMouseDown&&!(ins[0]==plot.plugins.lineRenderer.highlightedSeriesIndex)){var evt=jQuery.Event("jqplotDataHighlight");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins);highlight(plot,neighbor.seriesIndex,neighbor.pointIndex,neighbor.points)}}else if(neighbor==null){unhighlight(plot)}}function handleMouseUp(ev,gridpos,datapos,neighbor,plot){var idx=plot.plugins.lineRenderer.highlightedSeriesIndex;if(idx!=null&&plot.series[idx].highlightMouseDown){unhighlight(plot)}}function handleClick(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];var evt=jQuery.Event("jqplotDataClick");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins)}}function handleRightClick(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];var idx=plot.plugins.lineRenderer.highlightedSeriesIndex;if(idx!=null&&plot.series[idx].highlightMouseDown){unhighlight(plot)}var evt=jQuery.Event("jqplotDataRightClick");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins)}}$.jqplot.LinearAxisRenderer=function(){};$.jqplot.LinearAxisRenderer.prototype.init=function(options){this.breakPoints=null;this.breakTickLabel="&asymp;";this.drawBaseline=true;this.baselineWidth=null;this.baselineColor=null;this.forceTickAt0=false;this.forceTickAt100=false;this.tickInset=0;this.minorTicks=0;this.alignTicks=false;this._autoFormatString="";this._overrideFormatString=false;this._scalefact=1;$.extend(true,this,options);if(this.breakPoints){if(!$.isArray(this.breakPoints)){this.breakPoints=null}else if(this.breakPoints.length<2||this.breakPoints[1]<=this.breakPoints[0]){this.breakPoints=null}}if(this.numberTicks!=null&&this.numberTicks<2){this.numberTicks=2}this.resetDataBounds()};$.jqplot.LinearAxisRenderer.prototype.draw=function(ctx,plot){if(this.show){this.renderer.createTicks.call(this,plot);var dim=0;var temp;if(this._elem){this._elem.emptyForce();this._elem=null}this._elem=$(document.createElement("div"));this._elem.addClass("jqplot-axis jqplot-"+this.name);this._elem.css("position","absolute");if(this.name=="xaxis"||this.name=="x2axis"){this._elem.width(this._plotDimensions.width)}else{this._elem.height(this._plotDimensions.height)}this.labelOptions.axis=this.name;this._label=new this.labelRenderer(this.labelOptions);if(this._label.show){var elem=this._label.draw(ctx,plot);elem.appendTo(this._elem);elem=null}var t=this._ticks;var tick;for(var i=0;i<t.length;i++){tick=t[i];if(tick.show&&tick.showLabel&&(!tick.isMinorTick||this.showMinorTicks)){this._elem.append(tick.draw(ctx,plot))}}tick=null;t=null}return this._elem};$.jqplot.LinearAxisRenderer.prototype.reset=function(){this.min=this._options.min;this.max=this._options.max;this.tickInterval=this._options.tickInterval;this.numberTicks=this._options.numberTicks;this._autoFormatString="";if(this._overrideFormatString&&this.tickOptions&&this.tickOptions.formatString){this.tickOptions.formatString=""}};$.jqplot.LinearAxisRenderer.prototype.set=function(){var dim=0;var temp;var w=0;var h=0;var lshow=this._label==null?false:this._label.show;if(this.show){var t=this._ticks;var tick;for(var i=0;i<t.length;i++){tick=t[i];if(!tick._breakTick&&tick.show&&tick.showLabel&&(!tick.isMinorTick||this.showMinorTicks)){if(this.name=="xaxis"||this.name=="x2axis"){temp=tick._elem.outerHeight(true)}else{temp=tick._elem.outerWidth(true)}if(temp>dim){dim=temp}}}tick=null;t=null;if(lshow){w=this._label._elem.outerWidth(true);h=this._label._elem.outerHeight(true)}if(this.name=="xaxis"){dim=dim+h;this._elem.css({height:dim+"px",left:"0px",bottom:"0px"})}else if(this.name=="x2axis"){dim=dim+h;this._elem.css({height:dim+"px",left:"0px",top:"0px"})}else if(this.name=="yaxis"){dim=dim+w;this._elem.css({width:dim+"px",left:"0px",top:"0px"});if(lshow&&this._label.constructor==$.jqplot.AxisLabelRenderer){this._label._elem.css("width",w+"px")}}else{dim=dim+w;this._elem.css({width:dim+"px",right:"0px",top:"0px"});if(lshow&&this._label.constructor==$.jqplot.AxisLabelRenderer){this._label._elem.css("width",w+"px")}}}};$.jqplot.LinearAxisRenderer.prototype.createTicks=function(plot){var ticks=this._ticks;var userTicks=this.ticks;var name=this.name;var db=this._dataBounds;var dim=this.name.charAt(0)==="x"?this._plotDimensions.width:this._plotDimensions.height;var interval;var min,max;var pos1,pos2;var tt,i;var userMin=this.min;var userMax=this.max;var userNT=this.numberTicks;var userTI=this.tickInterval;var threshold=30;this._scalefact=(Math.max(dim,threshold+1)-threshold)/300;if(userTicks.length){for(i=0;i<userTicks.length;i++){var ut=userTicks[i];var t=new this.tickRenderer(this.tickOptions);if($.isArray(ut)){t.value=ut[0];if(this.breakPoints){if(ut[0]==this.breakPoints[0]){t.label=this.breakTickLabel;t._breakTick=true;t.showGridline=false;t.showMark=false}else if(ut[0]>this.breakPoints[0]&&ut[0]<=this.breakPoints[1]){t.show=false;t.showGridline=false;t.label=ut[1]}else{t.label=ut[1]}}else{t.label=ut[1]}t.setTick(ut[0],this.name);this._ticks.push(t)}else if($.isPlainObject(ut)){$.extend(true,t,ut);t.axis=this.name;this._ticks.push(t)}else{t.value=ut;if(this.breakPoints){if(ut==this.breakPoints[0]){t.label=this.breakTickLabel;t._breakTick=true;t.showGridline=false;t.showMark=false}else if(ut>this.breakPoints[0]&&ut<=this.breakPoints[1]){t.show=false;t.showGridline=false}}t.setTick(ut,this.name);this._ticks.push(t)}}this.numberTicks=userTicks.length;this.min=this._ticks[0].value;this.max=this._ticks[this.numberTicks-1].value;this.tickInterval=(this.max-this.min)/(this.numberTicks-1)}else{if(name=="xaxis"||name=="x2axis"){dim=this._plotDimensions.width}else{dim=this._plotDimensions.height}var _numberTicks=this.numberTicks;if(this.alignTicks){if(this.name==="x2axis"&&plot.axes.xaxis.show){_numberTicks=plot.axes.xaxis.numberTicks}else if(this.name.charAt(0)==="y"&&this.name!=="yaxis"&&this.name!=="yMidAxis"&&plot.axes.yaxis.show){_numberTicks=plot.axes.yaxis.numberTicks}}min=this.min!=null?this.min:db.min;max=this.max!=null?this.max:db.max;var range=max-min;var rmin,rmax;var temp;if(this.tickOptions==null||!this.tickOptions.formatString){this._overrideFormatString=true}if(this.min==null||this.max==null&&this.tickInterval==null&&!this.autoscale){if(this.forceTickAt0){if(min>0){min=0}if(max<0){max=0}}if(this.forceTickAt100){if(min>100){min=100}if(max<100){max=100}}var keepMin=false,keepMax=false;if(this.min!=null){keepMin=true}else if(this.max!=null){keepMax=true}var ret=$.jqplot.LinearTickGenerator(min,max,this._scalefact,_numberTicks,keepMin,keepMax);var tumin=this.min!=null?min:min+range*(this.padMin-1);var tumax=this.max!=null?max:max-range*(this.padMax-1);if(min<tumin||max>tumax){tumin=this.min!=null?min:min-range*(this.padMin-1);tumax=this.max!=null?max:max+range*(this.padMax-1);ret=$.jqplot.LinearTickGenerator(tumin,tumax,this._scalefact,_numberTicks,keepMin,keepMax)}this.min=ret[0];this.max=ret[1];this.numberTicks=ret[2];this._autoFormatString=ret[3];this.tickInterval=ret[4]}else{if(min==max){var adj=.05;if(min>0){adj=Math.max(Math.log(min)/Math.LN10,.05)}min-=adj;max+=adj}if(this.autoscale&&this.min==null&&this.max==null){var rrange,ti,margin;var forceMinZero=false;var forceZeroLine=false;var intervals={min:null,max:null,average:null,stddev:null};for(var i=0;i<this._series.length;i++){var s=this._series[i];var faname=s.fillAxis=="x"?s._xaxis.name:s._yaxis.name;if(this.name==faname){var vals=s._plotValues[s.fillAxis];var vmin=vals[0];var vmax=vals[0];for(var j=1;j<vals.length;j++){if(vals[j]<vmin){vmin=vals[j]}else if(vals[j]>vmax){vmax=vals[j]}}var dp=(vmax-vmin)/vmax;if(s.renderer.constructor==$.jqplot.BarRenderer){if(vmin>=0&&(s.fillToZero||dp>.1)){forceMinZero=true}else{forceMinZero=false;if(s.fill&&s.fillToZero&&vmin<0&&vmax>0){forceZeroLine=true}else{forceZeroLine=false}}}else if(s.fill){if(vmin>=0&&(s.fillToZero||dp>.1)){forceMinZero=true}else if(vmin<0&&vmax>0&&s.fillToZero){forceMinZero=false;forceZeroLine=true}else{forceMinZero=false;forceZeroLine=false}}else if(vmin<0){forceMinZero=false}}}if(forceMinZero){this.numberTicks=2+Math.ceil((dim-(this.tickSpacing-1))/this.tickSpacing);this.min=0;userMin=0;ti=max/(this.numberTicks-1);temp=Math.pow(10,Math.abs(Math.floor(Math.log(ti)/Math.LN10)));if(ti/temp==parseInt(ti/temp,10)){ti+=temp}this.tickInterval=Math.ceil(ti/temp)*temp;this.max=this.tickInterval*(this.numberTicks-1)}else if(forceZeroLine){this.numberTicks=2+Math.ceil((dim-(this.tickSpacing-1))/this.tickSpacing);var ntmin=Math.ceil(Math.abs(min)/range*(this.numberTicks-1));var ntmax=this.numberTicks-1-ntmin;ti=Math.max(Math.abs(min/ntmin),Math.abs(max/ntmax));temp=Math.pow(10,Math.abs(Math.floor(Math.log(ti)/Math.LN10)));this.tickInterval=Math.ceil(ti/temp)*temp;this.max=this.tickInterval*ntmax;this.min=-this.tickInterval*ntmin}else{if(this.numberTicks==null){if(this.tickInterval){this.numberTicks=3+Math.ceil(range/this.tickInterval)}else{this.numberTicks=2+Math.ceil((dim-(this.tickSpacing-1))/this.tickSpacing)}}if(this.tickInterval==null){ti=range/(this.numberTicks-1);if(ti<1){temp=Math.pow(10,Math.abs(Math.floor(Math.log(ti)/Math.LN10)))}else{temp=1}this.tickInterval=Math.ceil(ti*temp*this.pad)/temp}else{temp=1/this.tickInterval}rrange=this.tickInterval*(this.numberTicks-1);margin=(rrange-range)/2;if(this.min==null){this.min=Math.floor(temp*(min-margin))/temp}if(this.max==null){this.max=this.min+rrange}}var sf=$.jqplot.getSignificantFigures(this.tickInterval);var fstr;if(sf.digitsLeft>=sf.significantDigits){fstr="%d"}else{var temp=Math.max(0,5-sf.digitsLeft);temp=Math.min(temp,sf.digitsRight);fstr="%."+temp+"f"}this._autoFormatString=fstr}else{rmin=this.min!=null?this.min:min-range*(this.padMin-1);rmax=this.max!=null?this.max:max+range*(this.padMax-1);range=rmax-rmin;if(this.numberTicks==null){if(this.tickInterval!=null){this.numberTicks=Math.ceil((rmax-rmin)/this.tickInterval)+1}else if(dim>100){this.numberTicks=parseInt(3+(dim-100)/75,10)}else{this.numberTicks=2}}if(this.tickInterval==null){this.tickInterval=range/(this.numberTicks-1)}if(this.max==null){rmax=rmin+this.tickInterval*(this.numberTicks-1)}if(this.min==null){rmin=rmax-this.tickInterval*(this.numberTicks-1)}var sf=$.jqplot.getSignificantFigures(this.tickInterval);var fstr;if(sf.digitsLeft>=sf.significantDigits){fstr="%d"}else{var temp=Math.max(0,5-sf.digitsLeft);temp=Math.min(temp,sf.digitsRight);fstr="%."+temp+"f"}this._autoFormatString=fstr;this.min=rmin;this.max=rmax}if(this.renderer.constructor==$.jqplot.LinearAxisRenderer&&this._autoFormatString==""){range=this.max-this.min;var temptick=new this.tickRenderer(this.tickOptions);var fs=temptick.formatString||$.jqplot.config.defaultTickFormatString;var fs=fs.match($.jqplot.sprintf.regex)[0];var precision=0;if(fs){if(fs.search(/[fFeEgGpP]/)>-1){var m=fs.match(/\%\.(\d{0,})?[eEfFgGpP]/);if(m){precision=parseInt(m[1],10)}else{precision=6}}else if(fs.search(/[di]/)>-1){precision=0}var fact=Math.pow(10,-precision);if(this.tickInterval<fact){if(userNT==null&&userTI==null){this.tickInterval=fact;if(userMax==null&&userMin==null){this.min=Math.floor(this._dataBounds.min/fact)*fact;if(this.min==this._dataBounds.min){
this.min=this._dataBounds.min-this.tickInterval}this.max=Math.ceil(this._dataBounds.max/fact)*fact;if(this.max==this._dataBounds.max){this.max=this._dataBounds.max+this.tickInterval}var n=(this.max-this.min)/this.tickInterval;n=n.toFixed(11);n=Math.ceil(n);this.numberTicks=n+1}else if(userMax==null){var n=(this._dataBounds.max-this.min)/this.tickInterval;n=n.toFixed(11);this.numberTicks=Math.ceil(n)+2;this.max=this.min+this.tickInterval*(this.numberTicks-1)}else if(userMin==null){var n=(this.max-this._dataBounds.min)/this.tickInterval;n=n.toFixed(11);this.numberTicks=Math.ceil(n)+2;this.min=this.max-this.tickInterval*(this.numberTicks-1)}else{this.numberTicks=Math.ceil((userMax-userMin)/this.tickInterval)+1;this.min=Math.floor(userMin*Math.pow(10,precision))/Math.pow(10,precision);this.max=Math.ceil(userMax*Math.pow(10,precision))/Math.pow(10,precision);this.numberTicks=Math.ceil((this.max-this.min)/this.tickInterval)+1}}}}}}if(this._overrideFormatString&&this._autoFormatString!=""){this.tickOptions=this.tickOptions||{};this.tickOptions.formatString=this._autoFormatString}var t,to;for(var i=0;i<this.numberTicks;i++){tt=this.min+i*this.tickInterval;t=new this.tickRenderer(this.tickOptions);t.setTick(tt,this.name);this._ticks.push(t);if(i<this.numberTicks-1){for(var j=0;j<this.minorTicks;j++){tt+=this.tickInterval/(this.minorTicks+1);to=$.extend(true,{},this.tickOptions,{name:this.name,value:tt,label:"",isMinorTick:true});t=new this.tickRenderer(to);this._ticks.push(t)}}t=null}}if(this.tickInset){this.min=this.min-this.tickInset*this.tickInterval;this.max=this.max+this.tickInset*this.tickInterval}ticks=null};$.jqplot.LinearAxisRenderer.prototype.resetTickValues=function(opts){if($.isArray(opts)&&opts.length==this._ticks.length){var t;for(var i=0;i<opts.length;i++){t=this._ticks[i];t.value=opts[i];t.label=t.formatter(t.formatString,opts[i]);t.label=t.prefix+t.label;t._elem.html(t.label)}t=null;this.min=$.jqplot.arrayMin(opts);this.max=$.jqplot.arrayMax(opts);this.pack()}};$.jqplot.LinearAxisRenderer.prototype.pack=function(pos,offsets){pos=pos||{};offsets=offsets||this._offsets;var ticks=this._ticks;var max=this.max;var min=this.min;var offmax=offsets.max;var offmin=offsets.min;var lshow=this._label==null?false:this._label.show;for(var p in pos){this._elem.css(p,pos[p])}this._offsets=offsets;var pixellength=offmax-offmin;var unitlength=max-min;if(this.breakPoints){unitlength=unitlength-this.breakPoints[1]+this.breakPoints[0];this.p2u=function(p){return(p-offmin)*unitlength/pixellength+min};this.u2p=function(u){if(u>this.breakPoints[0]&&u<this.breakPoints[1]){u=this.breakPoints[0]}if(u<=this.breakPoints[0]){return(u-min)*pixellength/unitlength+offmin}else{return(u-this.breakPoints[1]+this.breakPoints[0]-min)*pixellength/unitlength+offmin}};if(this.name.charAt(0)=="x"){this.series_u2p=function(u){if(u>this.breakPoints[0]&&u<this.breakPoints[1]){u=this.breakPoints[0]}if(u<=this.breakPoints[0]){return(u-min)*pixellength/unitlength}else{return(u-this.breakPoints[1]+this.breakPoints[0]-min)*pixellength/unitlength}};this.series_p2u=function(p){return p*unitlength/pixellength+min}}else{this.series_u2p=function(u){if(u>this.breakPoints[0]&&u<this.breakPoints[1]){u=this.breakPoints[0]}if(u>=this.breakPoints[1]){return(u-max)*pixellength/unitlength}else{return(u+this.breakPoints[1]-this.breakPoints[0]-max)*pixellength/unitlength}};this.series_p2u=function(p){return p*unitlength/pixellength+max}}}else{this.p2u=function(p){return(p-offmin)*unitlength/pixellength+min};this.u2p=function(u){return(u-min)*pixellength/unitlength+offmin};if(this.name=="xaxis"||this.name=="x2axis"){this.series_u2p=function(u){return(u-min)*pixellength/unitlength};this.series_p2u=function(p){return p*unitlength/pixellength+min}}else{this.series_u2p=function(u){return(u-max)*pixellength/unitlength};this.series_p2u=function(p){return p*unitlength/pixellength+max}}}if(this.show){if(this.name=="xaxis"||this.name=="x2axis"){for(var i=0;i<ticks.length;i++){var t=ticks[i];if(t.show&&t.showLabel){var shim;if(t.constructor==$.jqplot.CanvasAxisTickRenderer&&t.angle){var temp=this.name=="xaxis"?1:-1;switch(t.labelPosition){case"auto":if(temp*t.angle<0){shim=-t.getWidth()+t._textRenderer.height*Math.sin(-t._textRenderer.angle)/2}else{shim=-t._textRenderer.height*Math.sin(t._textRenderer.angle)/2}break;case"end":shim=-t.getWidth()+t._textRenderer.height*Math.sin(-t._textRenderer.angle)/2;break;case"start":shim=-t._textRenderer.height*Math.sin(t._textRenderer.angle)/2;break;case"middle":shim=-t.getWidth()/2+t._textRenderer.height*Math.sin(-t._textRenderer.angle)/2;break;default:shim=-t.getWidth()/2+t._textRenderer.height*Math.sin(-t._textRenderer.angle)/2;break}}else{shim=-t.getWidth()/2}var val=this.u2p(t.value)+shim+"px";t._elem.css("left",val);t.pack()}}if(lshow){var w=this._label._elem.outerWidth(true);this._label._elem.css("left",offmin+pixellength/2-w/2+"px");if(this.name=="xaxis"){this._label._elem.css("bottom","0px")}else{this._label._elem.css("top","0px")}this._label.pack()}}else{for(var i=0;i<ticks.length;i++){var t=ticks[i];if(t.show&&t.showLabel){var shim;if(t.constructor==$.jqplot.CanvasAxisTickRenderer&&t.angle){var temp=this.name=="yaxis"?1:-1;switch(t.labelPosition){case"auto":case"end":if(temp*t.angle<0){shim=-t._textRenderer.height*Math.cos(-t._textRenderer.angle)/2}else{shim=-t.getHeight()+t._textRenderer.height*Math.cos(t._textRenderer.angle)/2}break;case"start":if(t.angle>0){shim=-t._textRenderer.height*Math.cos(-t._textRenderer.angle)/2}else{shim=-t.getHeight()+t._textRenderer.height*Math.cos(t._textRenderer.angle)/2}break;case"middle":shim=-t.getHeight()/2;break;default:shim=-t.getHeight()/2;break}}else{shim=-t.getHeight()/2}var val=this.u2p(t.value)+shim+"px";t._elem.css("top",val);t.pack()}}if(lshow){var h=this._label._elem.outerHeight(true);this._label._elem.css("top",offmax-pixellength/2-h/2+"px");if(this.name=="yaxis"){this._label._elem.css("left","0px")}else{this._label._elem.css("right","0px")}this._label.pack()}}}ticks=null};function bestFormatString(interval){var fstr;interval=Math.abs(interval);if(interval>=10){fstr="%d"}else if(interval>1){if(interval===parseInt(interval,10)){fstr="%d"}else{fstr="%.1f"}}else{var expv=-Math.floor(Math.log(interval)/Math.LN10);fstr="%."+expv+"f"}return fstr}var _factors=[.1,.2,.3,.4,.5,.8,1,2,3,4,5];var _getLowerFactor=function(f){var i=_factors.indexOf(f);if(i>0){return _factors[i-1]}else{return _factors[_factors.length-1]/100}};var _getHigherFactor=function(f){var i=_factors.indexOf(f);if(i<_factors.length-1){return _factors[i+1]}else{return _factors[0]*100}};function bestConstrainedInterval(min,max,nttarget){var low=Math.floor(nttarget/2);var hi=Math.ceil(nttarget*1.5);var badness=Number.MAX_VALUE;var r=max-min;var temp;var sd;var bestNT;var gsf=$.jqplot.getSignificantFigures;var fsd;var fs;var currentNT;var bestPrec;for(var i=0,l=hi-low+1;i<l;i++){currentNT=low+i;temp=r/(currentNT-1);sd=gsf(temp);temp=Math.abs(nttarget-currentNT)+sd.digitsRight;if(temp<badness){badness=temp;bestNT=currentNT;bestPrec=sd.digitsRight}else if(temp===badness){if(sd.digitsRight<bestPrec){bestNT=currentNT;bestPrec=sd.digitsRight}}}fsd=Math.max(bestPrec,Math.max(gsf(min).digitsRight,gsf(max).digitsRight));if(fsd===0){fs="%d"}else{fs="%."+fsd+"f"}temp=r/(bestNT-1);return[min,max,bestNT,fs,temp]}function bestInterval(range,numberTicks){numberTicks=numberTicks||7;var minimum=range/(numberTicks-1);var magnitude=Math.pow(10,Math.floor(Math.log(minimum)/Math.LN10));var residual=minimum/magnitude;var interval;if(magnitude<1){if(residual>5){interval=10*magnitude}else if(residual>2){interval=5*magnitude}else if(residual>1){interval=2*magnitude}else{interval=magnitude}}else{if(residual>5){interval=10*magnitude}else if(residual>4){interval=5*magnitude}else if(residual>3){interval=4*magnitude}else if(residual>2){interval=3*magnitude}else if(residual>1){interval=2*magnitude}else{interval=magnitude}}return interval}function bestLinearInterval(range,scalefact){scalefact=scalefact||1;var expv=Math.floor(Math.log(range)/Math.LN10);var magnitude=Math.pow(10,expv);var f=range/magnitude;var fact;f=f/scalefact;if(f<=.38){fact=.1}else if(f<=1.6){fact=.2}else if(f<=4){fact=.5}else if(f<=8){fact=1}else if(f<=16){fact=2}else{fact=5}return fact*magnitude}function bestLinearComponents(range,scalefact){var expv=Math.floor(Math.log(range)/Math.LN10);var magnitude=Math.pow(10,expv);var f=range/magnitude;var interval;var fact;f=f/scalefact;if(f<=.38){fact=.1}else if(f<=1.6){fact=.2}else if(f<=4){fact=.5}else if(f<=8){fact=1}else if(f<=16){fact=2}else{fact=5}interval=fact*magnitude;return[interval,fact,magnitude]}$.jqplot.LinearTickGenerator=function(axis_min,axis_max,scalefact,numberTicks,keepMin,keepMax){keepMin=keepMin===null?false:keepMin;keepMax=keepMax===null||keepMin?false:keepMax;if(axis_min===axis_max){axis_max=axis_max?0:1}scalefact=scalefact||1;if(axis_max<axis_min){var a=axis_max;axis_max=axis_min;axis_min=a}var r=[];var ss=bestLinearInterval(axis_max-axis_min,scalefact);var gsf=$.jqplot.getSignificantFigures;if(numberTicks==null){if(!keepMin&&!keepMax){r[0]=Math.floor(axis_min/ss)*ss;r[1]=Math.ceil(axis_max/ss)*ss;r[2]=Math.round((r[1]-r[0])/ss+1);r[3]=bestFormatString(ss);r[4]=ss}else if(keepMin){r[0]=axis_min;r[2]=Math.ceil((axis_max-axis_min)/ss+1);r[1]=axis_min+(r[2]-1)*ss;var digitsMin=gsf(axis_min).digitsRight;var digitsSS=gsf(ss).digitsRight;if(digitsMin<digitsSS){r[3]=bestFormatString(ss)}else{r[3]="%."+digitsMin+"f"}r[4]=ss}else if(keepMax){r[1]=axis_max;r[2]=Math.ceil((axis_max-axis_min)/ss+1);r[0]=axis_max-(r[2]-1)*ss;var digitsMax=gsf(axis_max).digitsRight;var digitsSS=gsf(ss).digitsRight;if(digitsMax<digitsSS){r[3]=bestFormatString(ss)}else{r[3]="%."+digitsMax+"f"}r[4]=ss}}else{var tempr=[];tempr[0]=Math.floor(axis_min/ss)*ss;tempr[1]=Math.ceil(axis_max/ss)*ss;tempr[2]=Math.round((tempr[1]-tempr[0])/ss+1);tempr[3]=bestFormatString(ss);tempr[4]=ss;if(tempr[2]===numberTicks){r=tempr}else{var newti=bestInterval(tempr[1]-tempr[0],numberTicks);r[0]=tempr[0];r[2]=numberTicks;r[4]=newti;r[3]=bestFormatString(newti);r[1]=r[0]+(r[2]-1)*r[4]}}return r};$.jqplot.LinearTickGenerator.bestLinearInterval=bestLinearInterval;$.jqplot.LinearTickGenerator.bestInterval=bestInterval;$.jqplot.LinearTickGenerator.bestLinearComponents=bestLinearComponents;$.jqplot.LinearTickGenerator.bestConstrainedInterval=bestConstrainedInterval;$.jqplot.MarkerRenderer=function(options){this.show=true;this.style="filledCircle";this.lineWidth=2;this.size=9;this.color="#666666";this.shadow=true;this.shadowAngle=45;this.shadowOffset=1;this.shadowDepth=3;this.shadowAlpha="0.07";this.shadowRenderer=new $.jqplot.ShadowRenderer;this.shapeRenderer=new $.jqplot.ShapeRenderer;$.extend(true,this,options)};$.jqplot.MarkerRenderer.prototype.init=function(options){$.extend(true,this,options);var sdopt={angle:this.shadowAngle,offset:this.shadowOffset,alpha:this.shadowAlpha,lineWidth:this.lineWidth,depth:this.shadowDepth,closePath:true};if(this.style.indexOf("filled")!=-1){sdopt.fill=true}if(this.style.indexOf("ircle")!=-1){sdopt.isarc=true;sdopt.closePath=false}this.shadowRenderer.init(sdopt);var shopt={fill:false,isarc:false,strokeStyle:this.color,fillStyle:this.color,lineWidth:this.lineWidth,closePath:true};if(this.style.indexOf("filled")!=-1){shopt.fill=true}if(this.style.indexOf("ircle")!=-1){shopt.isarc=true;shopt.closePath=false}this.shapeRenderer.init(shopt)};$.jqplot.MarkerRenderer.prototype.drawDiamond=function(x,y,ctx,fill,options){var stretch=1.2;var dx=this.size/2/stretch;var dy=this.size/2*stretch;var points=[[x-dx,y],[x,y+dy],[x+dx,y],[x,y-dy]];if(this.shadow){this.shadowRenderer.draw(ctx,points)}this.shapeRenderer.draw(ctx,points,options)};$.jqplot.MarkerRenderer.prototype.drawPlus=function(x,y,ctx,fill,options){var stretch=1;var dx=this.size/2*stretch;var dy=this.size/2*stretch;var points1=[[x,y-dy],[x,y+dy]];var points2=[[x+dx,y],[x-dx,y]];var opts=$.extend(true,{},this.options,{closePath:false});if(this.shadow){this.shadowRenderer.draw(ctx,points1,{closePath:false});this.shadowRenderer.draw(ctx,points2,{closePath:false})}this.shapeRenderer.draw(ctx,points1,opts);this.shapeRenderer.draw(ctx,points2,opts)};$.jqplot.MarkerRenderer.prototype.drawX=function(x,y,ctx,fill,options){var stretch=1;var dx=this.size/2*stretch;var dy=this.size/2*stretch;var opts=$.extend(true,{},this.options,{closePath:false});var points1=[[x-dx,y-dy],[x+dx,y+dy]];var points2=[[x-dx,y+dy],[x+dx,y-dy]];if(this.shadow){this.shadowRenderer.draw(ctx,points1,{closePath:false});this.shadowRenderer.draw(ctx,points2,{closePath:false})}this.shapeRenderer.draw(ctx,points1,opts);this.shapeRenderer.draw(ctx,points2,opts)};$.jqplot.MarkerRenderer.prototype.drawDash=function(x,y,ctx,fill,options){var stretch=1;var dx=this.size/2*stretch;var dy=this.size/2*stretch;var points=[[x-dx,y],[x+dx,y]];if(this.shadow){this.shadowRenderer.draw(ctx,points)}this.shapeRenderer.draw(ctx,points,options)};$.jqplot.MarkerRenderer.prototype.drawLine=function(p1,p2,ctx,fill,options){var points=[p1,p2];if(this.shadow){this.shadowRenderer.draw(ctx,points)}this.shapeRenderer.draw(ctx,points,options)};$.jqplot.MarkerRenderer.prototype.drawSquare=function(x,y,ctx,fill,options){var stretch=1;var dx=this.size/2/stretch;var dy=this.size/2*stretch;var points=[[x-dx,y-dy],[x-dx,y+dy],[x+dx,y+dy],[x+dx,y-dy]];if(this.shadow){this.shadowRenderer.draw(ctx,points)}this.shapeRenderer.draw(ctx,points,options)};$.jqplot.MarkerRenderer.prototype.drawCircle=function(x,y,ctx,fill,options){var radius=this.size/2;var end=2*Math.PI;var points=[x,y,radius,0,end,true];if(this.shadow){this.shadowRenderer.draw(ctx,points)}this.shapeRenderer.draw(ctx,points,options)};$.jqplot.MarkerRenderer.prototype.draw=function(x,y,ctx,options){options=options||{};if(options.show==null||options.show!=false){if(options.color&&!options.fillStyle){options.fillStyle=options.color}if(options.color&&!options.strokeStyle){options.strokeStyle=options.color}switch(this.style){case"diamond":this.drawDiamond(x,y,ctx,false,options);break;case"filledDiamond":this.drawDiamond(x,y,ctx,true,options);break;case"circle":this.drawCircle(x,y,ctx,false,options);break;case"filledCircle":this.drawCircle(x,y,ctx,true,options);break;case"square":this.drawSquare(x,y,ctx,false,options);break;case"filledSquare":this.drawSquare(x,y,ctx,true,options);break;case"x":this.drawX(x,y,ctx,true,options);break;case"plus":this.drawPlus(x,y,ctx,true,options);break;case"dash":this.drawDash(x,y,ctx,true,options);break;case"line":this.drawLine(x,y,ctx,false,options);break;default:this.drawDiamond(x,y,ctx,false,options);break}}};$.jqplot.ShadowRenderer=function(options){this.angle=45;this.offset=1;this.alpha=.07;this.lineWidth=1.5;this.lineJoin="miter";this.lineCap="round";this.closePath=false;this.fill=false;this.depth=3;this.strokeStyle="rgba(0,0,0,0.1)";this.isarc=false;$.extend(true,this,options)};$.jqplot.ShadowRenderer.prototype.init=function(options){$.extend(true,this,options)};$.jqplot.ShadowRenderer.prototype.draw=function(ctx,points,options){ctx.save();var opts=options!=null?options:{};var fill=opts.fill!=null?opts.fill:this.fill;var fillRect=opts.fillRect!=null?opts.fillRect:this.fillRect;var closePath=opts.closePath!=null?opts.closePath:this.closePath;var offset=opts.offset!=null?opts.offset:this.offset;var alpha=opts.alpha!=null?opts.alpha:this.alpha;var depth=opts.depth!=null?opts.depth:this.depth;var isarc=opts.isarc!=null?opts.isarc:this.isarc;var linePattern=opts.linePattern!=null?opts.linePattern:this.linePattern;ctx.lineWidth=opts.lineWidth!=null?opts.lineWidth:this.lineWidth;ctx.lineJoin=opts.lineJoin!=null?opts.lineJoin:this.lineJoin;ctx.lineCap=opts.lineCap!=null?opts.lineCap:this.lineCap;ctx.strokeStyle=opts.strokeStyle||this.strokeStyle||"rgba(0,0,0,"+alpha+")";ctx.fillStyle=opts.fillStyle||this.fillStyle||"rgba(0,0,0,"+alpha+")";for(var j=0;j<depth;j++){var ctxPattern=$.jqplot.LinePattern(ctx,linePattern);ctx.translate(Math.cos(this.angle*Math.PI/180)*offset,Math.sin(this.angle*Math.PI/180)*offset);ctxPattern.beginPath();if(isarc){ctx.arc(points[0],points[1],points[2],points[3],points[4],true)}else if(fillRect){if(fillRect){ctx.fillRect(points[0],points[1],points[2],points[3])}}else if(points&&points.length){var move=true;for(var i=0;i<points.length;i++){if(points[i][0]!=null&&points[i][1]!=null){if(move){ctxPattern.moveTo(points[i][0],points[i][1]);move=false}else{ctxPattern.lineTo(points[i][0],points[i][1])}}else{move=true}}}if(closePath){ctxPattern.closePath()}if(fill){ctx.fill()}else{ctx.stroke()}}ctx.restore()};$.jqplot.ShapeRenderer=function(options){this.lineWidth=1.5;this.linePattern="solid";this.lineJoin="miter";this.lineCap="round";this.closePath=false;this.fill=false;this.isarc=false;this.fillRect=false;this.strokeRect=false;this.clearRect=false;this.strokeStyle="#999999";this.fillStyle="#999999";$.extend(true,this,options)};$.jqplot.ShapeRenderer.prototype.init=function(options){$.extend(true,this,options)};$.jqplot.ShapeRenderer.prototype.draw=function(ctx,points,options){ctx.save();var opts=options!=null?options:{};var fill=opts.fill!=null?opts.fill:this.fill;var closePath=opts.closePath!=null?opts.closePath:this.closePath;var fillRect=opts.fillRect!=null?opts.fillRect:this.fillRect;var strokeRect=opts.strokeRect!=null?opts.strokeRect:this.strokeRect;var clearRect=opts.clearRect!=null?opts.clearRect:this.clearRect;var isarc=opts.isarc!=null?opts.isarc:this.isarc;var linePattern=opts.linePattern!=null?opts.linePattern:this.linePattern;var ctxPattern=$.jqplot.LinePattern(ctx,linePattern);ctx.lineWidth=opts.lineWidth||this.lineWidth;ctx.lineJoin=opts.lineJoin||this.lineJoin;ctx.lineCap=opts.lineCap||this.lineCap;ctx.strokeStyle=opts.strokeStyle||opts.color||this.strokeStyle;ctx.fillStyle=opts.fillStyle||this.fillStyle;ctx.beginPath();if(isarc){ctx.arc(points[0],points[1],points[2],points[3],points[4],true);if(closePath){ctx.closePath()}if(fill){ctx.fill()}else{ctx.stroke()}ctx.restore();return}else if(clearRect){ctx.clearRect(points[0],points[1],points[2],points[3]);ctx.restore();return}else if(fillRect||strokeRect){if(fillRect){ctx.fillRect(points[0],points[1],points[2],points[3])}if(strokeRect){ctx.strokeRect(points[0],points[1],points[2],points[3]);ctx.restore();return}}else if(points&&points.length){var move=true;for(var i=0;i<points.length;i++){if(points[i][0]!=null&&points[i][1]!=null){if(move){ctxPattern.moveTo(points[i][0],points[i][1]);move=false}else{ctxPattern.lineTo(points[i][0],points[i][1])}}else{move=true}}if(closePath){ctxPattern.closePath()}if(fill){ctx.fill()}else{ctx.stroke()}}ctx.restore()};$.jqplot.TableLegendRenderer=function(){};$.jqplot.TableLegendRenderer.prototype.init=function(options){$.extend(true,this,options)};$.jqplot.TableLegendRenderer.prototype.addrow=function(label,color,pad,reverse){var rs=pad?this.rowSpacing+"px":"0px";var tr;var td;var elem;var div0;var div1;elem=document.createElement("tr");tr=$(elem);tr.addClass("jqplot-table-legend");elem=null;if(reverse){tr.prependTo(this._elem)}else{tr.appendTo(this._elem)}if(this.showSwatches){td=$(document.createElement("td"));td.addClass("jqplot-table-legend jqplot-table-legend-swatch");td.css({textAlign:"center",paddingTop:rs});div0=$(document.createElement("div"));div0.addClass("jqplot-table-legend-swatch-outline");div1=$(document.createElement("div"));div1.addClass("jqplot-table-legend-swatch");div1.css({backgroundColor:color,borderColor:color});tr.append(td.append(div0.append(div1)))}if(this.showLabels){td=$(document.createElement("td"));td.addClass("jqplot-table-legend jqplot-table-legend-label");td.css("paddingTop",rs);tr.append(td);if(this.escapeHtml){td.text(label)}else{td.html(label)}}td=null;div0=null;div1=null;tr=null;elem=null};$.jqplot.TableLegendRenderer.prototype.draw=function(){if(this._elem){this._elem.emptyForce();this._elem=null}if(this.show){var series=this._series;var elem=document.createElement("table");this._elem=$(elem);this._elem.addClass("jqplot-table-legend");var ss={position:"absolute"};if(this.background){ss["background"]=this.background}if(this.border){ss["border"]=this.border}if(this.fontSize){ss["fontSize"]=this.fontSize}if(this.fontFamily){ss["fontFamily"]=this.fontFamily}if(this.textColor){ss["textColor"]=this.textColor}if(this.marginTop!=null){ss["marginTop"]=this.marginTop}if(this.marginBottom!=null){ss["marginBottom"]=this.marginBottom}if(this.marginLeft!=null){ss["marginLeft"]=this.marginLeft}if(this.marginRight!=null){ss["marginRight"]=this.marginRight}var pad=false,reverse=false,s;for(var i=0;i<series.length;i++){s=series[i];if(s._stack||s.renderer.constructor==$.jqplot.BezierCurveRenderer){reverse=true}if(s.show&&s.showLabel){var lt=this.labels[i]||s.label.toString();if(lt){var color=s.color;if(reverse&&i<series.length-1){pad=true}else if(reverse&&i==series.length-1){pad=false}this.renderer.addrow.call(this,lt,color,pad,reverse);pad=true}for(var j=0;j<$.jqplot.addLegendRowHooks.length;j++){var item=$.jqplot.addLegendRowHooks[j].call(this,s);if(item){this.renderer.addrow.call(this,item.label,item.color,pad);pad=true}}lt=null}}}return this._elem};$.jqplot.TableLegendRenderer.prototype.pack=function(offsets){if(this.show){if(this.placement=="insideGrid"){switch(this.location){case"nw":var a=offsets.left;var b=offsets.top;this._elem.css("left",a);this._elem.css("top",b);break;case"n":var a=(offsets.left+(this._plotDimensions.width-offsets.right))/2-this.getWidth()/2;var b=offsets.top;this._elem.css("left",a);this._elem.css("top",b);break;case"ne":var a=offsets.right;var b=offsets.top;this._elem.css({right:a,top:b});break;case"e":var a=offsets.right;var b=(offsets.top+(this._plotDimensions.height-offsets.bottom))/2-this.getHeight()/2;this._elem.css({right:a,top:b});break;case"se":var a=offsets.right;var b=offsets.bottom;this._elem.css({right:a,bottom:b});break;case"s":var a=(offsets.left+(this._plotDimensions.width-offsets.right))/2-this.getWidth()/2;var b=offsets.bottom;this._elem.css({left:a,bottom:b});break;case"sw":var a=offsets.left;var b=offsets.bottom;this._elem.css({left:a,bottom:b});break;case"w":var a=offsets.left;var b=(offsets.top+(this._plotDimensions.height-offsets.bottom))/2-this.getHeight()/2;this._elem.css({left:a,top:b});break;default:var a=offsets.right;var b=offsets.bottom;this._elem.css({right:a,bottom:b});break}}else if(this.placement=="outside"){switch(this.location){case"nw":var a=this._plotDimensions.width-offsets.left;var b=offsets.top;this._elem.css("right",a);this._elem.css("top",b);break;case"n":var a=(offsets.left+(this._plotDimensions.width-offsets.right))/2-this.getWidth()/2;var b=this._plotDimensions.height-offsets.top;this._elem.css("left",a);this._elem.css("bottom",b);break;case"ne":var a=this._plotDimensions.width-offsets.right;var b=offsets.top;this._elem.css({left:a,top:b});break;case"e":var a=this._plotDimensions.width-offsets.right;var b=(offsets.top+(this._plotDimensions.height-offsets.bottom))/2-this.getHeight()/2;this._elem.css({left:a,top:b});break;case"se":var a=this._plotDimensions.width-offsets.right;var b=offsets.bottom;this._elem.css({left:a,bottom:b});break;case"s":var a=(offsets.left+(this._plotDimensions.width-offsets.right))/2-this.getWidth()/2;var b=this._plotDimensions.height-offsets.bottom;this._elem.css({left:a,top:b});break;case"sw":var a=this._plotDimensions.width-offsets.left;var b=offsets.bottom;this._elem.css({right:a,bottom:b});break;case"w":var a=this._plotDimensions.width-offsets.left;var b=(offsets.top+(this._plotDimensions.height-offsets.bottom))/2-this.getHeight()/2;this._elem.css({right:a,top:b});break;default:var a=offsets.right;var b=offsets.bottom;this._elem.css({right:a,bottom:b});break}}else{switch(this.location){case"nw":this._elem.css({left:0,top:offsets.top});break;case"n":var a=(offsets.left+(this._plotDimensions.width-offsets.right))/2-this.getWidth()/2;this._elem.css({left:a,top:offsets.top});break;case"ne":this._elem.css({right:0,top:offsets.top});break;case"e":var b=(offsets.top+(this._plotDimensions.height-offsets.bottom))/2-this.getHeight()/2;this._elem.css({right:offsets.right,top:b});break;case"se":this._elem.css({right:offsets.right,bottom:offsets.bottom});break;case"s":var a=(offsets.left+(this._plotDimensions.width-offsets.right))/2-this.getWidth()/2;this._elem.css({left:a,bottom:offsets.bottom});break;case"sw":this._elem.css({left:offsets.left,bottom:offsets.bottom});break;case"w":var b=(offsets.top+(this._plotDimensions.height-offsets.bottom))/2-this.getHeight()/2;this._elem.css({left:offsets.left,top:b});break;default:this._elem.css({right:offsets.right,bottom:offsets.bottom});break}}}};$.jqplot.ThemeEngine=function(){this.themes={};this.activeTheme=null};$.jqplot.ThemeEngine.prototype.init=function(){var th=new $.jqplot.Theme({_name:"Default"});var n,i,nn;for(n in th.target){if(n=="textColor"){th.target[n]=this.target.css("color")}else{th.target[n]=this.target.css(n)}}if(this.title.show&&this.title._elem){for(n in th.title){if(n=="textColor"){th.title[n]=this.title._elem.css("color")}else{th.title[n]=this.title._elem.css(n)}}}for(n in th.grid){th.grid[n]=this.grid[n]}if(th.grid.backgroundColor==null&&this.grid.background!=null){th.grid.backgroundColor=this.grid.background}if(this.legend.show&&this.legend._elem){for(n in th.legend){if(n=="textColor"){th.legend[n]=this.legend._elem.css("color")}else{th.legend[n]=this.legend._elem.css(n)}}}var s;for(i=0;i<this.series.length;i++){s=this.series[i];if(s.renderer.constructor==$.jqplot.LineRenderer){th.series.push(new LineSeriesProperties)}else if(s.renderer.constructor==$.jqplot.BarRenderer){th.series.push(new BarSeriesProperties)}else if(s.renderer.constructor==$.jqplot.PieRenderer){th.series.push(new PieSeriesProperties)}else if(s.renderer.constructor==$.jqplot.DonutRenderer){th.series.push(new DonutSeriesProperties)}else if(s.renderer.constructor==$.jqplot.FunnelRenderer){th.series.push(new FunnelSeriesProperties)}else if(s.renderer.constructor==$.jqplot.MeterGaugeRenderer){th.series.push(new MeterSeriesProperties)}else{th.series.push({})}for(n in th.series[i]){th.series[i][n]=s[n]}}var a,ax;for(n in this.axes){ax=this.axes[n];a=th.axes[n]=new AxisProperties;a.borderColor=ax.borderColor;a.borderWidth=ax.borderWidth;if(ax._ticks&&ax._ticks[0]){for(nn in a.ticks){if(ax._ticks[0].hasOwnProperty(nn)){a.ticks[nn]=ax._ticks[0][nn]}else if(ax._ticks[0]._elem){a.ticks[nn]=ax._ticks[0]._elem.css(nn)}}}if(ax._label&&ax._label.show){for(nn in a.label){if(ax._label[nn]){a.label[nn]=ax._label[nn]}else if(ax._label._elem){if(nn=="textColor"){a.label[nn]=ax._label._elem.css("color")}else{a.label[nn]=ax._label._elem.css(nn)}}}}}this.themeEngine._add(th);this.themeEngine.activeTheme=this.themeEngine.themes[th._name]};$.jqplot.ThemeEngine.prototype.get=function(name){if(!name){return this.activeTheme}else{return this.themes[name]}};function numericalOrder(a,b){return a-b}$.jqplot.ThemeEngine.prototype.getThemeNames=function(){var tn=[];for(var n in this.themes){tn.push(n)}return tn.sort(numericalOrder)};$.jqplot.ThemeEngine.prototype.getThemes=function(){var tn=[];var themes=[];for(var n in this.themes){tn.push(n)}tn.sort(numericalOrder);for(var i=0;i<tn.length;i++){themes.push(this.themes[tn[i]])}return themes};$.jqplot.ThemeEngine.prototype.activate=function(plot,name){var redrawPlot=false;if(!name&&this.activeTheme&&this.activeTheme._name){name=this.activeTheme._name}if(!this.themes.hasOwnProperty(name)){throw new Error("No theme of that name")}else{var th=this.themes[name];this.activeTheme=th;var val,checkBorderColor=false,checkBorderWidth=false;var arr=["xaxis","x2axis","yaxis","y2axis"];for(i=0;i<arr.length;i++){var ax=arr[i];if(th.axesStyles.borderColor!=null){plot.axes[ax].borderColor=th.axesStyles.borderColor}if(th.axesStyles.borderWidth!=null){plot.axes[ax].borderWidth=th.axesStyles.borderWidth}}for(var axname in plot.axes){var axis=plot.axes[axname];if(axis.show){var thaxis=th.axes[axname]||{};var thaxstyle=th.axesStyles;var thax=$.jqplot.extend(true,{},thaxis,thaxstyle);val=th.axesStyles.borderColor!=null?th.axesStyles.borderColor:thax.borderColor;if(thax.borderColor!=null){axis.borderColor=thax.borderColor;redrawPlot=true}val=th.axesStyles.borderWidth!=null?th.axesStyles.borderWidth:thax.borderWidth;if(thax.borderWidth!=null){axis.borderWidth=thax.borderWidth;redrawPlot=true}if(axis._ticks&&axis._ticks[0]){for(var nn in thax.ticks){val=thax.ticks[nn];if(val!=null){axis.tickOptions[nn]=val;axis._ticks=[];redrawPlot=true}}}if(axis._label&&axis._label.show){for(var nn in thax.label){val=thax.label[nn];if(val!=null){axis.labelOptions[nn]=val;redrawPlot=true}}}}}for(var n in th.grid){if(th.grid[n]!=null){plot.grid[n]=th.grid[n]}}if(!redrawPlot){plot.grid.draw()}if(plot.legend.show){for(n in th.legend){if(th.legend[n]!=null){plot.legend[n]=th.legend[n]}}}if(plot.title.show){for(n in th.title){if(th.title[n]!=null){plot.title[n]=th.title[n]}}}var i;for(i=0;i<th.series.length;i++){var opts={};var redrawSeries=false;for(n in th.series[i]){val=th.seriesStyles[n]!=null?th.seriesStyles[n]:th.series[i][n];if(val!=null){opts[n]=val;if(n=="color"){plot.series[i].renderer.shapeRenderer.fillStyle=val;plot.series[i].renderer.shapeRenderer.strokeStyle=val;plot.series[i][n]=val}else if(n=="lineWidth"||n=="linePattern"){plot.series[i].renderer.shapeRenderer[n]=val;plot.series[i][n]=val}else if(n=="markerOptions"){merge(plot.series[i].markerOptions,val);merge(plot.series[i].markerRenderer,val)}else{plot.series[i][n]=val}redrawPlot=true}}}if(redrawPlot){plot.target.empty();plot.draw()}for(n in th.target){if(th.target[n]!=null){plot.target.css(n,th.target[n])}}}};$.jqplot.ThemeEngine.prototype._add=function(theme,name){if(name){theme._name=name}if(!theme._name){theme._name=Date.parse(new Date)}if(!this.themes.hasOwnProperty(theme._name)){this.themes[theme._name]=theme}else{throw new Error("jqplot.ThemeEngine Error: Theme already in use")}};$.jqplot.ThemeEngine.prototype.remove=function(name){if(name=="Default"){return false}return delete this.themes[name]};$.jqplot.ThemeEngine.prototype.newTheme=function(name,obj){if(typeof name=="object"){obj=obj||name;name=null}if(obj&&obj._name){name=obj._name}else{name=name||Date.parse(new Date)}var th=this.copy(this.themes["Default"]._name,name);$.jqplot.extend(th,obj);return th};function clone(obj){if(obj==null||typeof obj!="object"){return obj}var temp=new obj.constructor;for(var key in obj){temp[key]=clone(obj[key])}return temp}$.jqplot.clone=clone;function merge(obj1,obj2){if(obj2==null||typeof obj2!="object"){return}for(var key in obj2){if(key=="highlightColors"){obj1[key]=clone(obj2[key])}if(obj2[key]!=null&&typeof obj2[key]=="object"){if(!obj1.hasOwnProperty(key)){obj1[key]={}}merge(obj1[key],obj2[key])}else{obj1[key]=obj2[key]}}}$.jqplot.merge=merge;$.jqplot.extend=function(){var target=arguments[0]||{},i=1,length=arguments.length,deep=false,options;if(typeof target==="boolean"){deep=target;target=arguments[1]||{};i=2}if(typeof target!=="object"&&!toString.call(target)==="[object Function]"){target={}}for(;i<length;i++){if((options=arguments[i])!=null){for(var name in options){var src=target[name],copy=options[name];if(target===copy){continue}if(deep&&copy&&typeof copy==="object"&&!copy.nodeType){target[name]=$.jqplot.extend(deep,src||(copy.length!=null?[]:{}),copy)}else if(copy!==undefined){target[name]=copy}}}}return target};$.jqplot.ThemeEngine.prototype.rename=function(oldName,newName){if(oldName=="Default"||newName=="Default"){throw new Error("jqplot.ThemeEngine Error: Cannot rename from/to Default")}if(this.themes.hasOwnProperty(newName)){throw new Error("jqplot.ThemeEngine Error: New name already in use.")}else if(this.themes.hasOwnProperty(oldName)){var th=this.copy(oldName,newName);this.remove(oldName);return th}throw new Error("jqplot.ThemeEngine Error: Old name or new name invalid")};$.jqplot.ThemeEngine.prototype.copy=function(sourceName,targetName,obj){if(targetName=="Default"){throw new Error("jqplot.ThemeEngine Error: Cannot copy over Default theme")}
if(!this.themes.hasOwnProperty(sourceName)){var s="jqplot.ThemeEngine Error: Source name invalid";throw new Error(s)}if(this.themes.hasOwnProperty(targetName)){var s="jqplot.ThemeEngine Error: Target name invalid";throw new Error(s)}else{var th=clone(this.themes[sourceName]);th._name=targetName;$.jqplot.extend(true,th,obj);this._add(th);return th}};$.jqplot.Theme=function(name,obj){if(typeof name=="object"){obj=obj||name;name=null}name=name||Date.parse(new Date);this._name=name;this.target={backgroundColor:null};this.legend={textColor:null,fontFamily:null,fontSize:null,border:null,background:null};this.title={textColor:null,fontFamily:null,fontSize:null,textAlign:null};this.seriesStyles={};this.series=[];this.grid={drawGridlines:null,gridLineColor:null,gridLineWidth:null,backgroundColor:null,borderColor:null,borderWidth:null,shadow:null};this.axesStyles={label:{},ticks:{}};this.axes={};if(typeof obj=="string"){this._name=obj}else if(typeof obj=="object"){$.jqplot.extend(true,this,obj)}};var AxisProperties=function(){this.borderColor=null;this.borderWidth=null;this.ticks=new AxisTicks;this.label=new AxisLabel};var AxisTicks=function(){this.show=null;this.showGridline=null;this.showLabel=null;this.showMark=null;this.size=null;this.textColor=null;this.whiteSpace=null;this.fontSize=null;this.fontFamily=null};var AxisLabel=function(){this.textColor=null;this.whiteSpace=null;this.fontSize=null;this.fontFamily=null;this.fontWeight=null};var LineSeriesProperties=function(){this.color=null;this.lineWidth=null;this.linePattern=null;this.shadow=null;this.fillColor=null;this.showMarker=null;this.markerOptions=new MarkerOptions};var MarkerOptions=function(){this.show=null;this.style=null;this.lineWidth=null;this.size=null;this.color=null;this.shadow=null};var BarSeriesProperties=function(){this.color=null;this.seriesColors=null;this.lineWidth=null;this.shadow=null;this.barPadding=null;this.barMargin=null;this.barWidth=null;this.highlightColors=null};var PieSeriesProperties=function(){this.seriesColors=null;this.padding=null;this.sliceMargin=null;this.fill=null;this.shadow=null;this.startAngle=null;this.lineWidth=null;this.highlightColors=null};var DonutSeriesProperties=function(){this.seriesColors=null;this.padding=null;this.sliceMargin=null;this.fill=null;this.shadow=null;this.startAngle=null;this.lineWidth=null;this.innerDiameter=null;this.thickness=null;this.ringMargin=null;this.highlightColors=null};var FunnelSeriesProperties=function(){this.color=null;this.lineWidth=null;this.shadow=null;this.padding=null;this.sectionMargin=null;this.seriesColors=null;this.highlightColors=null};var MeterSeriesProperties=function(){this.padding=null;this.backgroundColor=null;this.ringColor=null;this.tickColor=null;this.ringWidth=null;this.intervalColors=null;this.intervalInnerRadius=null;this.intervalOuterRadius=null;this.hubRadius=null;this.needleThickness=null;this.needlePad=null};$.fn.jqplotChildText=function(){return $(this).contents().filter(function(){return this.nodeType==3}).text()};$.fn.jqplotGetComputedFontStyle=function(){var css=window.getComputedStyle?window.getComputedStyle(this[0],""):this[0].currentStyle;var attrs=css["font-style"]?["font-style","font-weight","font-size","font-family"]:["fontStyle","fontWeight","fontSize","fontFamily"];var style=[];for(var i=0;i<attrs.length;++i){var attr=String(css[attrs[i]]);if(attr&&attr!="normal"){style.push(attr)}}return style.join(" ")};$.fn.jqplotToImageCanvas=function(options){options=options||{};var x_offset=options.x_offset==null?0:options.x_offset;var y_offset=options.y_offset==null?0:options.y_offset;var backgroundColor=options.backgroundColor==null?"rgb(255,255,255)":options.backgroundColor;if($(this).width()==0||$(this).height()==0){return null}if($.jqplot.use_excanvas){return null}var newCanvas=document.createElement("canvas");var h=$(this).outerHeight(true);var w=$(this).outerWidth(true);var offs=$(this).offset();var plotleft=offs.left;var plottop=offs.top;var transx=0,transy=0;var clses=["jqplot-table-legend","jqplot-xaxis-tick","jqplot-x2axis-tick","jqplot-yaxis-tick","jqplot-y2axis-tick","jqplot-y3axis-tick","jqplot-y4axis-tick","jqplot-y5axis-tick","jqplot-y6axis-tick","jqplot-y7axis-tick","jqplot-y8axis-tick","jqplot-y9axis-tick","jqplot-xaxis-label","jqplot-x2axis-label","jqplot-yaxis-label","jqplot-y2axis-label","jqplot-y3axis-label","jqplot-y4axis-label","jqplot-y5axis-label","jqplot-y6axis-label","jqplot-y7axis-label","jqplot-y8axis-label","jqplot-y9axis-label"];var temptop,templeft,tempbottom,tempright;for(var i=0;i<clses.length;i++){$(this).find("."+clses[i]).each(function(){temptop=$(this).offset().top-plottop;templeft=$(this).offset().left-plotleft;tempright=templeft+$(this).outerWidth(true)+transx;tempbottom=temptop+$(this).outerHeight(true)+transy;if(templeft<-transx){w=w-transx-templeft;transx=-templeft}if(temptop<-transy){h=h-transy-temptop;transy=-temptop}if(tempright>w){w=tempright}if(tempbottom>h){h=tempbottom}})}newCanvas.width=w+Number(x_offset);newCanvas.height=h+Number(y_offset);var newContext=newCanvas.getContext("2d");newContext.save();newContext.fillStyle=backgroundColor;newContext.fillRect(0,0,newCanvas.width,newCanvas.height);newContext.restore();newContext.translate(transx,transy);newContext.textAlign="left";newContext.textBaseline="top";function getLineheight(el){var lineheight=parseInt($(el).css("line-height"),10);if(isNaN(lineheight)){lineheight=parseInt($(el).css("font-size"),10)*1.2}return lineheight}function writeWrappedText(el,context,text,left,top,canvasWidth){var lineheight=getLineheight(el);var tagwidth=$(el).innerWidth();var tagheight=$(el).innerHeight();var words=text.split(/\s+/);var wl=words.length;var w="";var breaks=[];var temptop=top;var templeft=left;for(var i=0;i<wl;i++){w+=words[i];if(context.measureText(w).width>tagwidth){breaks.push(i);w="";i--}}if(breaks.length===0){if($(el).css("textAlign")==="center"){templeft=left+(canvasWidth-context.measureText(w).width)/2-transx}context.fillText(text,templeft,top)}else{w=words.slice(0,breaks[0]).join(" ");if($(el).css("textAlign")==="center"){templeft=left+(canvasWidth-context.measureText(w).width)/2-transx}context.fillText(w,templeft,temptop);temptop+=lineheight;for(var i=1,l=breaks.length;i<l;i++){w=words.slice(breaks[i-1],breaks[i]).join(" ");if($(el).css("textAlign")==="center"){templeft=left+(canvasWidth-context.measureText(w).width)/2-transx}context.fillText(w,templeft,temptop);temptop+=lineheight}w=words.slice(breaks[i-1],words.length).join(" ");if($(el).css("textAlign")==="center"){templeft=left+(canvasWidth-context.measureText(w).width)/2-transx}context.fillText(w,templeft,temptop)}}function _jqpToImage(el,x_offset,y_offset){var tagname=el.tagName.toLowerCase();var p=$(el).position();var css=window.getComputedStyle?window.getComputedStyle(el,""):el.currentStyle;var left=x_offset+p.left+parseInt(css.marginLeft,10)+parseInt(css.borderLeftWidth,10)+parseInt(css.paddingLeft,10);var top=y_offset+p.top+parseInt(css.marginTop,10)+parseInt(css.borderTopWidth,10)+parseInt(css.paddingTop,10);var w=newCanvas.width;if((tagname=="div"||tagname=="span")&&!$(el).hasClass("jqplot-highlighter-tooltip")){$(el).children().each(function(){_jqpToImage(this,left,top)});var text=$(el).jqplotChildText();if(text){newContext.font=$(el).jqplotGetComputedFontStyle();newContext.fillStyle=$(el).css("color");writeWrappedText(el,newContext,text,left,top,w)}}else if(tagname==="table"&&$(el).hasClass("jqplot-table-legend")){newContext.strokeStyle=$(el).css("border-top-color");newContext.fillStyle=$(el).css("background-color");newContext.fillRect(left,top,$(el).innerWidth(),$(el).innerHeight());if(parseInt($(el).css("border-top-width"),10)>0){newContext.strokeRect(left,top,$(el).innerWidth(),$(el).innerHeight())}$(el).find("div.jqplot-table-legend-swatch-outline").each(function(){var elem=$(this);newContext.strokeStyle=elem.css("border-top-color");var l=left+elem.position().left;var t=top+elem.position().top;newContext.strokeRect(l,t,elem.innerWidth(),elem.innerHeight());l+=parseInt(elem.css("padding-left"),10);t+=parseInt(elem.css("padding-top"),10);var h=elem.innerHeight()-2*parseInt(elem.css("padding-top"),10);var w=elem.innerWidth()-2*parseInt(elem.css("padding-left"),10);var swatch=elem.children("div.jqplot-table-legend-swatch");newContext.fillStyle=swatch.css("background-color");newContext.fillRect(l,t,w,h)});$(el).find("td.jqplot-table-legend-label").each(function(){var elem=$(this);var l=left+elem.position().left;var t=top+elem.position().top+parseInt(elem.css("padding-top"),10);newContext.font=elem.jqplotGetComputedFontStyle();newContext.fillStyle=elem.css("color");writeWrappedText(elem,newContext,elem.text(),l,t,w)});var elem=null}else if(tagname=="canvas"){newContext.drawImage(el,left,top)}}$(this).children().each(function(){_jqpToImage(this,x_offset,y_offset)});return newCanvas};$.fn.jqplotToImageStr=function(options){var imgCanvas=$(this).jqplotToImageCanvas(options);if(imgCanvas){return imgCanvas.toDataURL("image/png")}else{return null}};$.fn.jqplotToImageElem=function(options){var elem=document.createElement("img");var str=$(this).jqplotToImageStr(options);elem.src=str;return elem};$.fn.jqplotToImageElemStr=function(options){var str="<img src="+$(this).jqplotToImageStr(options)+" />";return str};$.fn.jqplotSaveImage=function(){var imgData=$(this).jqplotToImageStr({});if(imgData){window.location.href=imgData.replace("image/png","image/octet-stream")}};$.fn.jqplotViewImage=function(){var imgStr=$(this).jqplotToImageElemStr({});var imgData=$(this).jqplotToImageStr({});if(imgStr){var w=window.open("");w.document.open("image/png");w.document.write(imgStr);w.document.close();w=null}};var jsDate=function(){this.syntax=jsDate.config.syntax;this._type="jsDate";this.proxy=new Date;this.options={};this.locale=jsDate.regional.getLocale();this.formatString="";this.defaultCentury=jsDate.config.defaultCentury;switch(arguments.length){case 0:break;case 1:if(get_type(arguments[0])=="[object Object]"&&arguments[0]._type!="jsDate"){var opts=this.options=arguments[0];this.syntax=opts.syntax||this.syntax;this.defaultCentury=opts.defaultCentury||this.defaultCentury;this.proxy=jsDate.createDate(opts.date)}else{this.proxy=jsDate.createDate(arguments[0])}break;default:var a=[];for(var i=0;i<arguments.length;i++){a.push(arguments[i])}this.proxy=new Date;this.proxy.setFullYear.apply(this.proxy,a.slice(0,3));if(a.slice(3).length){this.proxy.setHours.apply(this.proxy,a.slice(3))}break}};jsDate.config={defaultLocale:"en",syntax:"perl",defaultCentury:1900};jsDate.prototype.add=function(number,unit){var factor=multipliers[unit]||multipliers.day;if(typeof factor=="number"){this.proxy.setTime(this.proxy.getTime()+factor*number)}else{factor.add(this,number)}return this};jsDate.prototype.clone=function(){return new jsDate(this.proxy.getTime())};jsDate.prototype.getUtcOffset=function(){return this.proxy.getTimezoneOffset()*6e4};jsDate.prototype.diff=function(dateObj,unit,allowDecimal){dateObj=new jsDate(dateObj);if(dateObj===null){return null}var factor=multipliers[unit]||multipliers.day;if(typeof factor=="number"){var unitDiff=(this.proxy.getTime()-dateObj.proxy.getTime())/factor}else{var unitDiff=factor.diff(this.proxy,dateObj.proxy)}return allowDecimal?unitDiff:Math[unitDiff>0?"floor":"ceil"](unitDiff)};jsDate.prototype.getAbbrDayName=function(){return jsDate.regional[this.locale]["dayNamesShort"][this.proxy.getDay()]};jsDate.prototype.getAbbrMonthName=function(){return jsDate.regional[this.locale]["monthNamesShort"][this.proxy.getMonth()]};jsDate.prototype.getAMPM=function(){return this.proxy.getHours()>=12?"PM":"AM"};jsDate.prototype.getAmPm=function(){return this.proxy.getHours()>=12?"pm":"am"};jsDate.prototype.getCentury=function(){return parseInt(this.proxy.getFullYear()/100,10)};jsDate.prototype.getDate=function(){return this.proxy.getDate()};jsDate.prototype.getDay=function(){return this.proxy.getDay()};jsDate.prototype.getDayOfWeek=function(){var dow=this.proxy.getDay();return dow===0?7:dow};jsDate.prototype.getDayOfYear=function(){var d=this.proxy;var ms=d-new Date(""+d.getFullYear()+"/1/1 GMT");ms+=d.getTimezoneOffset()*6e4;d=null;return parseInt(ms/6e4/60/24,10)+1};jsDate.prototype.getDayName=function(){return jsDate.regional[this.locale]["dayNames"][this.proxy.getDay()]};jsDate.prototype.getFullWeekOfYear=function(){var d=this.proxy;var doy=this.getDayOfYear();var rdow=6-d.getDay();var woy=parseInt((doy+rdow)/7,10);return woy};jsDate.prototype.getFullYear=function(){return this.proxy.getFullYear()};jsDate.prototype.getGmtOffset=function(){var hours=this.proxy.getTimezoneOffset()/60;var prefix=hours<0?"+":"-";hours=Math.abs(hours);return prefix+addZeros(Math.floor(hours),2)+":"+addZeros(hours%1*60,2)};jsDate.prototype.getHours=function(){return this.proxy.getHours()};jsDate.prototype.getHours12=function(){var hours=this.proxy.getHours();return hours>12?hours-12:hours==0?12:hours};jsDate.prototype.getIsoWeek=function(){var d=this.proxy;var woy=this.getWeekOfYear();var dow1_1=new Date(""+d.getFullYear()+"/1/1").getDay();var idow=woy+(dow1_1>4||dow1_1<=1?0:1);if(idow==53&&new Date(""+d.getFullYear()+"/12/31").getDay()<4){idow=1}else if(idow===0){d=new jsDate(new Date(""+(d.getFullYear()-1)+"/12/31"));idow=d.getIsoWeek()}d=null;return idow};jsDate.prototype.getMilliseconds=function(){return this.proxy.getMilliseconds()};jsDate.prototype.getMinutes=function(){return this.proxy.getMinutes()};jsDate.prototype.getMonth=function(){return this.proxy.getMonth()};jsDate.prototype.getMonthName=function(){return jsDate.regional[this.locale]["monthNames"][this.proxy.getMonth()]};jsDate.prototype.getMonthNumber=function(){return this.proxy.getMonth()+1};jsDate.prototype.getSeconds=function(){return this.proxy.getSeconds()};jsDate.prototype.getShortYear=function(){return this.proxy.getYear()%100};jsDate.prototype.getTime=function(){return this.proxy.getTime()};jsDate.prototype.getTimezoneAbbr=function(){return this.proxy.toString().replace(/^.*\(([^)]+)\)$/,"$1")};jsDate.prototype.getTimezoneName=function(){var match=/(?:\((.+)\)$| ([A-Z]{3}) )/.exec(this.toString());return match[1]||match[2]||"GMT"+this.getGmtOffset()};jsDate.prototype.getTimezoneOffset=function(){return this.proxy.getTimezoneOffset()};jsDate.prototype.getWeekOfYear=function(){var doy=this.getDayOfYear();var rdow=7-this.getDayOfWeek();var woy=parseInt((doy+rdow)/7,10);return woy};jsDate.prototype.getUnix=function(){return Math.round(this.proxy.getTime()/1e3,0)};jsDate.prototype.getYear=function(){return this.proxy.getYear()};jsDate.prototype.next=function(unit){unit=unit||"day";return this.clone().add(1,unit)};jsDate.prototype.set=function(){switch(arguments.length){case 0:this.proxy=new Date;break;case 1:if(get_type(arguments[0])=="[object Object]"&&arguments[0]._type!="jsDate"){var opts=this.options=arguments[0];this.syntax=opts.syntax||this.syntax;this.defaultCentury=opts.defaultCentury||this.defaultCentury;this.proxy=jsDate.createDate(opts.date)}else{this.proxy=jsDate.createDate(arguments[0])}break;default:var a=[];for(var i=0;i<arguments.length;i++){a.push(arguments[i])}this.proxy=new Date;this.proxy.setFullYear.apply(this.proxy,a.slice(0,3));if(a.slice(3).length){this.proxy.setHours.apply(this.proxy,a.slice(3))}break}return this};jsDate.prototype.setDate=function(n){this.proxy.setDate(n);return this};jsDate.prototype.setFullYear=function(){this.proxy.setFullYear.apply(this.proxy,arguments);return this};jsDate.prototype.setHours=function(){this.proxy.setHours.apply(this.proxy,arguments);return this};jsDate.prototype.setMilliseconds=function(n){this.proxy.setMilliseconds(n);return this};jsDate.prototype.setMinutes=function(){this.proxy.setMinutes.apply(this.proxy,arguments);return this};jsDate.prototype.setMonth=function(){this.proxy.setMonth.apply(this.proxy,arguments);return this};jsDate.prototype.setSeconds=function(){this.proxy.setSeconds.apply(this.proxy,arguments);return this};jsDate.prototype.setTime=function(n){this.proxy.setTime(n);return this};jsDate.prototype.setYear=function(){this.proxy.setYear.apply(this.proxy,arguments);return this};jsDate.prototype.strftime=function(formatString){formatString=formatString||this.formatString||jsDate.regional[this.locale]["formatString"];return jsDate.strftime(this,formatString,this.syntax)};jsDate.prototype.toString=function(){return this.proxy.toString()};jsDate.prototype.toYmdInt=function(){return this.proxy.getFullYear()*1e4+this.getMonthNumber()*100+this.proxy.getDate()};jsDate.regional={en:{monthNames:["January","February","March","April","May","June","July","August","September","October","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],dayNames:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],dayNamesShort:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],formatString:"%Y-%m-%d %H:%M:%S"},fr:{monthNames:["Janvier","Février","Mars","Avril","Mai","Juin","Juillet","Août","Septembre","Octobre","Novembre","Décembre"],monthNamesShort:["Jan","Fév","Mar","Avr","Mai","Jun","Jul","Aoû","Sep","Oct","Nov","Déc"],dayNames:["Dimanche","Lundi","Mardi","Mercredi","Jeudi","Vendredi","Samedi"],dayNamesShort:["Dim","Lun","Mar","Mer","Jeu","Ven","Sam"],formatString:"%Y-%m-%d %H:%M:%S"},de:{monthNames:["Januar","Februar","März","April","Mai","Juni","Juli","August","September","Oktober","November","Dezember"],monthNamesShort:["Jan","Feb","Mär","Apr","Mai","Jun","Jul","Aug","Sep","Okt","Nov","Dez"],dayNames:["Sonntag","Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag"],dayNamesShort:["So","Mo","Di","Mi","Do","Fr","Sa"],formatString:"%Y-%m-%d %H:%M:%S"},es:{monthNames:["Enero","Febrero","Marzo","Abril","Mayo","Junio","Julio","Agosto","Septiembre","Octubre","Noviembre","Diciembre"],monthNamesShort:["Ene","Feb","Mar","Abr","May","Jun","Jul","Ago","Sep","Oct","Nov","Dic"],dayNames:["Domingo","Lunes","Martes","Mi&eacute;rcoles","Jueves","Viernes","S&aacute;bado"],dayNamesShort:["Dom","Lun","Mar","Mi&eacute;","Juv","Vie","S&aacute;b"],formatString:"%Y-%m-%d %H:%M:%S"},ru:{monthNames:["Январь","Февраль","Март","Апрель","Май","Июнь","Июль","Август","Сентябрь","Октябрь","Ноябрь","Декабрь"],monthNamesShort:["Янв","Фев","Мар","Апр","Май","Июн","Июл","Авг","Сен","Окт","Ноя","Дек"],dayNames:["воскресенье","понедельник","вторник","среда","четверг","пятница","суббота"],dayNamesShort:["вск","пнд","втр","срд","чтв","птн","сбт"],formatString:"%Y-%m-%d %H:%M:%S"},ar:{monthNames:["كانون الثاني","شباط","آذار","نيسان","آذار","حزيران","تموز","آب","أيلول","تشرين الأول","تشرين الثاني","كانون الأول"],monthNamesShort:["1","2","3","4","5","6","7","8","9","10","11","12"],dayNames:["السبت","الأحد","الاثنين","الثلاثاء","الأربعاء","الخميس","الجمعة"],dayNamesShort:["سبت","أحد","اثنين","ثلاثاء","أربعاء","خميس","جمعة"],formatString:"%Y-%m-%d %H:%M:%S"},pt:{monthNames:["Janeiro","Fevereiro","Mar&ccedil;o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Ter&ccedil;a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S&aacute;bado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","S&aacute;b"],formatString:"%Y-%m-%d %H:%M:%S"},"pt-BR":{monthNames:["Janeiro","Fevereiro","Mar&ccedil;o","Abril","Maio","Junho","Julho","Agosto","Setembro","Outubro","Novembro","Dezembro"],monthNamesShort:["Jan","Fev","Mar","Abr","Mai","Jun","Jul","Ago","Set","Out","Nov","Dez"],dayNames:["Domingo","Segunda-feira","Ter&ccedil;a-feira","Quarta-feira","Quinta-feira","Sexta-feira","S&aacute;bado"],dayNamesShort:["Dom","Seg","Ter","Qua","Qui","Sex","S&aacute;b"],formatString:"%Y-%m-%d %H:%M:%S"},pl:{monthNames:["Styczeń","Luty","Marzec","Kwiecień","Maj","Czerwiec","Lipiec","Sierpień","Wrzesień","Październik","Listopad","Grudzień"],monthNamesShort:["Sty","Lut","Mar","Kwi","Maj","Cze","Lip","Sie","Wrz","Paź","Lis","Gru"],dayNames:["Niedziela","Poniedziałek","Wtorek","Środa","Czwartek","Piątek","Sobota"],dayNamesShort:["Ni","Pn","Wt","Śr","Cz","Pt","Sb"],formatString:"%Y-%m-%d %H:%M:%S"},nl:{monthNames:["Januari","Februari","Maart","April","Mei","Juni","July","Augustus","September","Oktober","November","December"],monthNamesShort:["Jan","Feb","Mar","Apr","Mei","Jun","Jul","Aug","Sep","Okt","Nov","Dec"],dayNames:","[("Zondag","Maandag","Dinsdag","Woensdag","Donderdag","Vrijdag","Zaterdag")],dayNamesShort:["Zo","Ma","Di","Wo","Do","Vr","Za"],formatString:"%Y-%m-%d %H:%M:%S"},sv:{monthNames:["januari","februari","mars","april","maj","juni","juli","augusti","september","oktober","november","december"],monthNamesShort:["jan","feb","mar","apr","maj","jun","jul","aug","sep","okt","nov","dec"],dayNames:["söndag","måndag","tisdag","onsdag","torsdag","fredag","lördag"],dayNamesShort:["sön","mån","tis","ons","tor","fre","lör"],formatString:"%Y-%m-%d %H:%M:%S"}};jsDate.regional["en-US"]=jsDate.regional["en-GB"]=jsDate.regional["en"];jsDate.regional.getLocale=function(){var l=jsDate.config.defaultLocale;if(document&&document.getElementsByTagName("html")&&document.getElementsByTagName("html")[0].lang){l=document.getElementsByTagName("html")[0].lang;if(!jsDate.regional.hasOwnProperty(l)){l=jsDate.config.defaultLocale}}return l};var day=24*60*60*1e3;var addZeros=function(num,digits){num=String(num);var i=digits-num.length;var s=String(Math.pow(10,i)).slice(1);return s.concat(num)};var multipliers={millisecond:1,second:1e3,minute:60*1e3,hour:60*60*1e3,day:day,week:7*day,month:{add:function(d,number){multipliers.year.add(d,Math[number>0?"floor":"ceil"](number/12));var prevMonth=d.getMonth()+number%12;if(prevMonth==12){prevMonth=0;d.setYear(d.getFullYear()+1)}else if(prevMonth==-1){prevMonth=11;d.setYear(d.getFullYear()-1)}d.setMonth(prevMonth)},diff:function(d1,d2){var diffYears=d1.getFullYear()-d2.getFullYear();var diffMonths=d1.getMonth()-d2.getMonth()+diffYears*12;var diffDays=d1.getDate()-d2.getDate();return diffMonths+diffDays/30}},year:{add:function(d,number){d.setYear(d.getFullYear()+Math[number>0?"floor":"ceil"](number))},diff:function(d1,d2){return multipliers.month.diff(d1,d2)/12}}};for(var unit in multipliers){if(unit.substring(unit.length-1)!="s"){multipliers[unit+"s"]=multipliers[unit]}}var format=function(d,code,syntax){if(jsDate.formats[syntax]["shortcuts"][code]){return jsDate.strftime(d,jsDate.formats[syntax]["shortcuts"][code],syntax)}else{var getter=(jsDate.formats[syntax]["codes"][code]||"").split(".");var nbr=d["get"+getter[0]]?d["get"+getter[0]]():"";if(getter[1]){nbr=addZeros(nbr,getter[1])}return nbr}};jsDate.strftime=function(d,formatString,syntax,locale){var syn="perl";var loc=jsDate.regional.getLocale();if(syntax&&jsDate.formats.hasOwnProperty(syntax)){syn=syntax}else if(syntax&&jsDate.regional.hasOwnProperty(syntax)){loc=syntax}if(locale&&jsDate.formats.hasOwnProperty(locale)){syn=locale}else if(locale&&jsDate.regional.hasOwnProperty(locale)){loc=locale}if(get_type(d)!="[object Object]"||d._type!="jsDate"){d=new jsDate(d);d.locale=loc}if(!formatString){formatString=d.formatString||jsDate.regional[loc]["formatString"]}var source=formatString||"%Y-%m-%d",result="",match;while(source.length>0){if(match=source.match(jsDate.formats[syn].codes.matcher)){result+=source.slice(0,match.index);result+=(match[1]||"")+format(d,match[2],syn);source=source.slice(match.index+match[0].length)}else{result+=source;source=""}}return result};jsDate.formats={ISO:"%Y-%m-%dT%H:%M:%S.%N%G",SQL:"%Y-%m-%d %H:%M:%S"};jsDate.formats.perl={codes:{matcher:/()%(#?(%|[a-z]))/i,Y:"FullYear",y:"ShortYear.2",m:"MonthNumber.2","#m":"MonthNumber",B:"MonthName",b:"AbbrMonthName",d:"Date.2","#d":"Date",e:"Date",A:"DayName",a:"AbbrDayName",w:"Day",H:"Hours.2","#H":"Hours",I:"Hours12.2","#I":"Hours12",p:"AMPM",M:"Minutes.2","#M":"Minutes",S:"Seconds.2","#S":"Seconds",s:"Unix",N:"Milliseconds.3","#N":"Milliseconds",O:"TimezoneOffset",Z:"TimezoneName",G:"GmtOffset"},shortcuts:{F:"%Y-%m-%d",T:"%H:%M:%S",X:"%H:%M:%S",x:"%m/%d/%y",D:"%m/%d/%y","#c":"%a %b %e %H:%M:%S %Y",v:"%e-%b-%Y",R:"%H:%M",r:"%I:%M:%S %p",t:"\t",n:"\n","%":"%"}};jsDate.formats.php={codes:{matcher:/()%((%|[a-z]))/i,a:"AbbrDayName",A:"DayName",d:"Date.2",e:"Date",j:"DayOfYear.3",u:"DayOfWeek",w:"Day",U:"FullWeekOfYear.2",V:"IsoWeek.2",W:"WeekOfYear.2",b:"AbbrMonthName",B:"MonthName",m:"MonthNumber.2",h:"AbbrMonthName",C:"Century.2",y:"ShortYear.2",Y:"FullYear",H:"Hours.2",I:"Hours12.2",l:"Hours12",p:"AMPM",P:"AmPm",M:"Minutes.2",S:"Seconds.2",s:"Unix",O:"TimezoneOffset",z:"GmtOffset",Z:"TimezoneAbbr"},shortcuts:{D:"%m/%d/%y",F:"%Y-%m-%d",T:"%H:%M:%S",X:"%H:%M:%S",x:"%m/%d/%y",R:"%H:%M",r:"%I:%M:%S %p",t:"\t",n:"\n","%":"%"}};jsDate.createDate=function(date){if(date==null){return new Date}if(date instanceof Date){return date}if(typeof date=="number"){return new Date(date)}var parsable=String(date).replace(/^\s*(.+)\s*$/g,"$1");parsable=parsable.replace(/^([0-9]{1,4})-([0-9]{1,2})-([0-9]{1,4})/,"$1/$2/$3");parsable=parsable.replace(/^(3[01]|[0-2]?\d)[-\/]([a-z]{3,})[-\/](\d{4})/i,"$1 $2 $3");var match=parsable.match(/^(3[01]|[0-2]?\d)[-\/]([a-z]{3,})[-\/](\d{2})\D*/i);if(match&&match.length>3){var m3=parseFloat(match[3]);var ny=jsDate.config.defaultCentury+m3;ny=String(ny);parsable=parsable.replace(/^(3[01]|[0-2]?\d)[-\/]([a-z]{3,})[-\/](\d{2})\D*/i,match[1]+" "+match[2]+" "+ny)}match=parsable.match(/^([0-9]{1,2})[-\/]([0-9]{1,2})[-\/]([0-9]{1,2})[^0-9]/);function h1(parsable,match){var m1=parseFloat(match[1]);var m2=parseFloat(match[2]);var m3=parseFloat(match[3]);var cent=jsDate.config.defaultCentury;var ny,nd,nm,str;if(m1>31){nd=m3;nm=m2;ny=cent+m1}else{nd=m2;nm=m1;ny=cent+m3}str=nm+"/"+nd+"/"+ny;return parsable.replace(/^([0-9]{1,2})[-\/]([0-9]{1,2})[-\/]([0-9]{1,2})/,str)}if(match&&match.length>3){parsable=h1(parsable,match)}var match=parsable.match(/^([0-9]{1,2})[-\/]([0-9]{1,2})[-\/]([0-9]{1,2})$/);if(match&&match.length>3){parsable=h1(parsable,match)}var i=0;var length=jsDate.matchers.length;var pattern,ms,current=parsable,obj;while(i<length){ms=Date.parse(current);if(!isNaN(ms)){return new Date(ms)}pattern=jsDate.matchers[i];if(typeof pattern=="function"){obj=pattern.call(jsDate,current);if(obj instanceof Date){return obj}}else{current=parsable.replace(pattern[0],pattern[1])}i++}return NaN};jsDate.daysInMonth=function(year,month){if(month==2){return new Date(year,1,29).getDate()==29?29:28}return[undefined,31,undefined,31,30,31,30,31,31,30,31,30,31][month]};jsDate.matchers=[[/(3[01]|[0-2]\d)\s*\.\s*(1[0-2]|0\d)\s*\.\s*([1-9]\d{3})/,"$2/$1/$3"],[/([1-9]\d{3})\s*-\s*(1[0-2]|0\d)\s*-\s*(3[01]|[0-2]\d)/,"$2/$3/$1"],function(str){var match=str.match(/^(?:(.+)\s+)?([012]?\d)(?:\s*\:\s*(\d\d))?(?:\s*\:\s*(\d\d(\.\d*)?))?\s*(am|pm)?\s*$/i);if(match){if(match[1]){var d=this.createDate(match[1]);if(isNaN(d)){return}}else{var d=new Date;d.setMilliseconds(0)}var hour=parseFloat(match[2]);if(match[6]){hour=match[6].toLowerCase()=="am"?hour==12?0:hour:hour==12?12:hour+12}d.setHours(hour,parseInt(match[3]||0,10),parseInt(match[4]||0,10),(parseFloat(match[5]||0)||0)*1e3);return d}else{return str}},function(str){var match=str.match(/^(?:(.+))[T|\s+]([012]\d)(?:\:(\d\d))(?:\:(\d\d))(?:\.\d+)([\+\-]\d\d\:\d\d)$/i);if(match){if(match[1]){var d=this.createDate(match[1]);if(isNaN(d)){return}}else{var d=new Date;d.setMilliseconds(0)}var hour=parseFloat(match[2]);d.setHours(hour,parseInt(match[3],10),parseInt(match[4],10),parseFloat(match[5])*1e3);return d}else{return str}},function(str){var match=str.match(/^([0-3]?\d)\s*[-\/.\s]{1}\s*([a-zA-Z]{3,9})\s*[-\/.\s]{1}\s*([0-3]?\d)$/);if(match){var d=new Date;var cent=jsDate.config.defaultCentury;var m1=parseFloat(match[1]);var m3=parseFloat(match[3]);var ny,nd,nm;if(m1>31){nd=m3;ny=cent+m1}else{nd=m1;ny=cent+m3}var nm=inArray(match[2],jsDate.regional[jsDate.regional.getLocale()]["monthNamesShort"]);if(nm==-1){nm=inArray(match[2],jsDate.regional[jsDate.regional.getLocale()]["monthNames"])}d.setFullYear(ny,nm,nd);d.setHours(0,0,0,0);return d}else{return str}}];function inArray(elem,array){if(array.indexOf){return array.indexOf(elem)}for(var i=0,length=array.length;i<length;i++){if(array[i]===elem){return i}}return-1}function get_type(thing){if(thing===null)return"[object Null]";return Object.prototype.toString.call(thing)}$.jsDate=jsDate;$.jqplot.sprintf=function(){function pad(str,len,chr,leftJustify){var padding=str.length>=len?"":Array(1+len-str.length>>>0).join(chr);return leftJustify?str+padding:padding+str}function thousand_separate(value){var value_str=new String(value);for(var i=10;i>0;i--){if(value_str==(value_str=value_str.replace(/^(\d+)(\d{3})/,"$1"+$.jqplot.sprintf.thousandsSeparator+"$2")))break}return value_str}function justify(value,prefix,leftJustify,minWidth,zeroPad,htmlSpace){var diff=minWidth-value.length;if(diff>0){var spchar=" ";if(htmlSpace){spchar="&nbsp;"}if(leftJustify||!zeroPad){value=pad(value,minWidth,spchar,leftJustify)}else{value=value.slice(0,prefix.length)+pad("",diff,"0",true)+value.slice(prefix.length)}}return value}function formatBaseX(value,base,prefix,leftJustify,minWidth,precision,zeroPad,htmlSpace){var number=value>>>0;prefix=prefix&&number&&{2:"0b",8:"0",16:"0x"}[base]||"";value=prefix+pad(number.toString(base),precision||0,"0",false);return justify(value,prefix,leftJustify,minWidth,zeroPad,htmlSpace)}function formatString(value,leftJustify,minWidth,precision,zeroPad,htmlSpace){if(precision!=null){value=value.slice(0,precision)}return justify(value,"",leftJustify,minWidth,zeroPad,htmlSpace)}var a=arguments,i=0,format=a[i++];return format.replace($.jqplot.sprintf.regex,function(substring,valueIndex,flags,minWidth,_,precision,type){if(substring=="%%"){return"%"}var leftJustify=false,positivePrefix="",zeroPad=false,prefixBaseX=false,htmlSpace=false,thousandSeparation=false;for(var j=0;flags&&j<flags.length;j++)switch(flags.charAt(j)){case" ":positivePrefix=" ";break;case"+":positivePrefix="+";break;case"-":leftJustify=true;break;case"0":zeroPad=true;break;case"#":prefixBaseX=true;break;case"&":htmlSpace=true;break;case"'":thousandSeparation=true;break}if(!minWidth){minWidth=0}else if(minWidth=="*"){minWidth=+a[i++]}else if(minWidth.charAt(0)=="*"){minWidth=+a[minWidth.slice(1,-1)]}else{minWidth=+minWidth}if(minWidth<0){minWidth=-minWidth;leftJustify=true}if(!isFinite(minWidth)){throw new Error("$.jqplot.sprintf: (minimum-)width must be finite")}if(!precision){precision="fFeE".indexOf(type)>-1?6:type=="d"?0:void 0}else if(precision=="*"){precision=+a[i++]}else if(precision.charAt(0)=="*"){precision=+a[precision.slice(1,-1)]}else{precision=+precision}var value=valueIndex?a[valueIndex.slice(0,-1)]:a[i++];switch(type){case"s":{if(value==null){return""}return formatString(String(value),leftJustify,minWidth,precision,zeroPad,htmlSpace)}case"c":return formatString(String.fromCharCode(+value),leftJustify,minWidth,precision,zeroPad,htmlSpace);case"b":return formatBaseX(value,2,prefixBaseX,leftJustify,minWidth,precision,zeroPad,htmlSpace);case"o":return formatBaseX(value,8,prefixBaseX,leftJustify,minWidth,precision,zeroPad,htmlSpace);case"x":return formatBaseX(value,16,prefixBaseX,leftJustify,minWidth,precision,zeroPad,htmlSpace);case"X":return formatBaseX(value,16,prefixBaseX,leftJustify,minWidth,precision,zeroPad,htmlSpace).toUpperCase();case"u":return formatBaseX(value,10,prefixBaseX,leftJustify,minWidth,precision,zeroPad,htmlSpace);case"i":{var number=parseInt(+value,10);if(isNaN(number)){return""}var prefix=number<0?"-":positivePrefix;var number_str=thousandSeparation?thousand_separate(String(Math.abs(number))):String(Math.abs(number));value=prefix+pad(number_str,precision,"0",false);return justify(value,prefix,leftJustify,minWidth,zeroPad,htmlSpace)}case"d":{var number=Math.round(+value);if(isNaN(number)){return""}var prefix=number<0?"-":positivePrefix;var number_str=thousandSeparation?thousand_separate(String(Math.abs(number))):String(Math.abs(number));value=prefix+pad(number_str,precision,"0",false)
;return justify(value,prefix,leftJustify,minWidth,zeroPad,htmlSpace)}case"e":case"E":case"f":case"F":case"g":case"G":{var number=+value;if(isNaN(number)){return""}var prefix=number<0?"-":positivePrefix;var method=["toExponential","toFixed","toPrecision"]["efg".indexOf(type.toLowerCase())];var textTransform=["toString","toUpperCase"]["eEfFgG".indexOf(type)%2];var number_str=Math.abs(number)[method](precision);var parts=number_str.toString().split(".");parts[0]=thousandSeparation?thousand_separate(parts[0]):parts[0];number_str=parts.join($.jqplot.sprintf.decimalMark);value=prefix+number_str;var justified=justify(value,prefix,leftJustify,minWidth,zeroPad,htmlSpace)[textTransform]();return justified}case"p":case"P":{var number=+value;if(isNaN(number)){return""}var prefix=number<0?"-":positivePrefix;var parts=String(Number(Math.abs(number)).toExponential()).split(/e|E/);var sd=parts[0].indexOf(".")!=-1?parts[0].length-1:String(number).length;var zeros=parts[1]<0?-parts[1]-1:0;if(Math.abs(number)<1){if(sd+zeros<=precision){value=prefix+Math.abs(number).toPrecision(sd)}else{if(sd<=precision-1){value=prefix+Math.abs(number).toExponential(sd-1)}else{value=prefix+Math.abs(number).toExponential(precision-1)}}}else{var prec=sd<=precision?sd:precision;value=prefix+Math.abs(number).toPrecision(prec)}var textTransform=["toString","toUpperCase"]["pP".indexOf(type)%2];return justify(value,prefix,leftJustify,minWidth,zeroPad,htmlSpace)[textTransform]()}case"n":return"";default:return substring}})};$.jqplot.sprintf.thousandsSeparator=",";$.jqplot.sprintf.decimalMark=".";$.jqplot.sprintf.regex=/%%|%(\d+\$)?([-+#0&\' ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([nAscboxXuidfegpEGP])/g;$.jqplot.getSignificantFigures=function(number){var parts=String(Number(Math.abs(number)).toExponential()).split(/e|E/);var sd=parts[0].indexOf(".")!=-1?parts[0].length-1:parts[0].length;var zeros=parts[1]<0?-parts[1]-1:0;var expn=parseInt(parts[1],10);var dleft=expn+1>0?expn+1:0;var dright=sd<=dleft?0:sd-expn-1;return{significantDigits:sd,digitsLeft:dleft,digitsRight:dright,zeros:zeros,exponent:expn}};$.jqplot.getPrecision=function(number){return $.jqplot.getSignificantFigures(number).digitsRight};var backCompat=$.uiBackCompat!==false;$.jqplot.effects={effect:{}};var dataSpace="jqplot.storage.";$.extend($.jqplot.effects,{version:"1.9pre",save:function(element,set){for(var i=0;i<set.length;i++){if(set[i]!==null){element.data(dataSpace+set[i],element[0].style[set[i]])}}},restore:function(element,set){for(var i=0;i<set.length;i++){if(set[i]!==null){element.css(set[i],element.data(dataSpace+set[i]))}}},setMode:function(el,mode){if(mode==="toggle"){mode=el.is(":hidden")?"show":"hide"}return mode},createWrapper:function(element){if(element.parent().is(".ui-effects-wrapper")){return element.parent()}var props={width:element.outerWidth(true),height:element.outerHeight(true),float:element.css("float")},wrapper=$("<div></div>").addClass("ui-effects-wrapper").css({fontSize:"100%",background:"transparent",border:"none",margin:0,padding:0}),size={width:element.width(),height:element.height()},active=document.activeElement;element.wrap(wrapper);if(element[0]===active||$.contains(element[0],active)){$(active).focus()}wrapper=element.parent();if(element.css("position")==="static"){wrapper.css({position:"relative"});element.css({position:"relative"})}else{$.extend(props,{position:element.css("position"),zIndex:element.css("z-index")});$.each(["top","left","bottom","right"],function(i,pos){props[pos]=element.css(pos);if(isNaN(parseInt(props[pos],10))){props[pos]="auto"}});element.css({position:"relative",top:0,left:0,right:"auto",bottom:"auto"})}element.css(size);return wrapper.css(props).show()},removeWrapper:function(element){var active=document.activeElement;if(element.parent().is(".ui-effects-wrapper")){element.parent().replaceWith(element);if(element[0]===active||$.contains(element[0],active)){$(active).focus()}}return element}});function _normalizeArguments(effect,options,speed,callback){if($.isPlainObject(effect)){return effect}effect={effect:effect};if(options===undefined){options={}}if($.isFunction(options)){callback=options;speed=null;options={}}if($.type(options)==="number"||$.fx.speeds[options]){callback=speed;speed=options;options={}}if($.isFunction(speed)){callback=speed;speed=null}if(options){$.extend(effect,options)}speed=speed||options.duration;effect.duration=$.fx.off?0:typeof speed==="number"?speed:speed in $.fx.speeds?$.fx.speeds[speed]:$.fx.speeds._default;effect.complete=callback||options.complete;return effect}function standardSpeed(speed){if(!speed||typeof speed==="number"||$.fx.speeds[speed]){return true}if(typeof speed==="string"&&!$.jqplot.effects.effect[speed]){if(backCompat&&$.jqplot.effects[speed]){return false}return true}return false}$.fn.extend({jqplotEffect:function(effect,options,speed,callback){var args=_normalizeArguments.apply(this,arguments),mode=args.mode,queue=args.queue,effectMethod=$.jqplot.effects.effect[args.effect],oldEffectMethod=!effectMethod&&backCompat&&$.jqplot.effects[args.effect];if($.fx.off||!(effectMethod||oldEffectMethod)){if(mode){return this[mode](args.duration,args.complete)}else{return this.each(function(){if(args.complete){args.complete.call(this)}})}}function run(next){var elem=$(this),complete=args.complete,mode=args.mode;function done(){if($.isFunction(complete)){complete.call(elem[0])}if($.isFunction(next)){next()}}if(elem.is(":hidden")?mode==="hide":mode==="show"){done()}else{effectMethod.call(elem[0],args,done)}}if(effectMethod){return queue===false?this.each(run):this.queue(queue||"fx",run)}else{return oldEffectMethod.call(this,{options:args,duration:args.duration,callback:args.complete,mode:args.mode})}}});var rvertical=/up|down|vertical/,rpositivemotion=/up|left|vertical|horizontal/;$.jqplot.effects.effect.blind=function(o,done){var el=$(this),props=["position","top","bottom","left","right","height","width"],mode=$.jqplot.effects.setMode(el,o.mode||"hide"),direction=o.direction||"up",vertical=rvertical.test(direction),ref=vertical?"height":"width",ref2=vertical?"top":"left",motion=rpositivemotion.test(direction),animation={},show=mode==="show",wrapper,distance,top;if(el.parent().is(".ui-effects-wrapper")){$.jqplot.effects.save(el.parent(),props)}else{$.jqplot.effects.save(el,props)}el.show();top=parseInt(el.css("top"),10);wrapper=$.jqplot.effects.createWrapper(el).css({overflow:"hidden"});distance=vertical?wrapper[ref]()+top:wrapper[ref]();animation[ref]=show?String(distance):"0";if(!motion){el.css(vertical?"bottom":"right",0).css(vertical?"top":"left","").css({position:"absolute"});animation[ref2]=show?"0":String(distance)}if(show){wrapper.css(ref,0);if(!motion){wrapper.css(ref2,distance)}}wrapper.animate(animation,{duration:o.duration,easing:o.easing,queue:false,complete:function(){if(mode==="hide"){el.hide()}$.jqplot.effects.restore(el,props);$.jqplot.effects.removeWrapper(el);done()}})}})(jQuery);(function($){$.jqplot.PointLabels=function(options){this.show=$.jqplot.config.enablePlugins;this.location="n";this.labelsFromSeries=false;this.seriesLabelIndex=null;this.labels=[];this._labels=[];this.stackedValue=false;this.ypadding=6;this.xpadding=6;this.escapeHTML=true;this.edgeTolerance=-5;this.formatter=$.jqplot.DefaultTickFormatter;this.formatString="";this.hideZeros=false;this.seriesLabelsForStackedBars=false;this._elems=[];$.extend(true,this,options)};var locations=["nw","n","ne","e","se","s","sw","w"];var locationIndicies={nw:0,n:1,ne:2,e:3,se:4,s:5,sw:6,w:7};var oppositeLocations=["se","s","sw","w","nw","n","ne","e"];$.jqplot.PointLabels.init=function(target,data,seriesDefaults,opts,plot){var options=$.extend(true,{},seriesDefaults,opts);options.pointLabels=options.pointLabels||{};if(this.renderer.constructor===$.jqplot.BarRenderer&&this.barDirection==="horizontal"&&!options.pointLabels.location){options.pointLabels.location="e"}this.plugins.pointLabels=new $.jqplot.PointLabels(options.pointLabels);this.plugins.pointLabels.setLabels.call(this)};$.jqplot.PointLabels.prototype.setLabels=function(){var p=this.plugins.pointLabels;var labelIdx;if(p.seriesLabelIndex!=null){labelIdx=p.seriesLabelIndex}else if(this.renderer.constructor===$.jqplot.BarRenderer&&this.barDirection==="horizontal"){labelIdx=0}else{labelIdx=this._plotData.length===0?0:this._plotData[0].length-1}p._labels=[];if(p.labels.length===0||p.labelsFromSeries){if(p.stackedValue){if(this._plotData.length&&this._plotData[0].length){for(var i=0;i<this._plotData.length;i++){p._labels.push(this._plotData[i][labelIdx])}}}else{var d=this.data;if(this.renderer.constructor===$.jqplot.BarRenderer&&this.waterfall){d=this._data}if(d.length&&d[0].length){for(var i=0;i<d.length;i++){p._labels.push(d[i][labelIdx])}}d=null}}else if(p.seriesLabelsForStackedBars){p._labels=p.labels[this.index]}else if(p.labels.length){p._labels=p.labels}};$.jqplot.PointLabels.prototype.xOffset=function(elem,location,padding){location=location||this.location;padding=padding||this.xpadding;var offset;switch(location){case"nw":offset=-elem.outerWidth(true)-this.xpadding;break;case"n":offset=-elem.outerWidth(true)/2;break;case"ne":offset=this.xpadding;break;case"e":offset=this.xpadding;break;case"se":offset=this.xpadding;break;case"s":offset=-elem.outerWidth(true)/2;break;case"sw":offset=-elem.outerWidth(true)-this.xpadding;break;case"w":offset=-elem.outerWidth(true)-this.xpadding;break;default:offset=-elem.outerWidth(true)-this.xpadding;break}return offset};$.jqplot.PointLabels.prototype.yOffset=function(elem,location,padding){location=location||this.location;padding=padding||this.xpadding;var offset;switch(location){case"nw":offset=-elem.outerHeight(true)-this.ypadding;break;case"n":offset=-elem.outerHeight(true)-this.ypadding;break;case"ne":offset=-elem.outerHeight(true)-this.ypadding;break;case"e":offset=-elem.outerHeight(true)/2;break;case"se":offset=this.ypadding;break;case"s":offset=this.ypadding;break;case"sw":offset=this.ypadding;break;case"w":offset=-elem.outerHeight(true)/2;break;default:offset=-elem.outerHeight(true)-this.ypadding;break}return offset};$.jqplot.PointLabels.draw=function(sctx,options,plot){var p=this.plugins.pointLabels;p.setLabels.call(this);for(var i=0;i<p._elems.length;i++){p._elems[i].emptyForce()}p._elems.splice(0,p._elems.length);if(p.show){var ax="_"+this._stackAxis+"axis";if(!p.formatString){p.formatString=this[ax]._ticks[0].formatString;p.formatter=this[ax]._ticks[0].formatter}var pd=this._plotData;var ppd=this._prevPlotData;var xax=this._xaxis;var yax=this._yaxis;var elem,helem;for(var i=0,l=p._labels.length;i<l;i++){var label=p._labels[i];if(p.hideZeros&&parseInt(p._labels[i],10)==0){label=""}if(label!=null){label=p.formatter(p.formatString,label)}helem=document.createElement("div");p._elems[i]=$(helem);elem=p._elems[i];elem.addClass("jqplot-point-label jqplot-series-"+this.index+" jqplot-point-"+i);elem.css("position","absolute");elem.insertAfter(sctx.canvas);if(p.escapeHTML){elem.text(label)}else{elem.html(label)}var location=p.location;if(this.fillToZero&&pd[i][1]<0||this.fillToZero&&this._type==="bar"&&this.barDirection==="horizontal"&&pd[i][0]<0||(this.waterfall&&parseInt(label,10))<0){location=oppositeLocations[locationIndicies[location]]}var ell=xax.u2p(pd[i][0])+p.xOffset(elem,location);var elt=yax.u2p(pd[i][1])+p.yOffset(elem,location);if(this._stack&&!p.stackedValue){if(this.barDirection==="vertical"){elt=(this._barPoints[i][0][1]+this._barPoints[i][1][1])/2+plot._gridPadding.top-.5*elem.outerHeight(true)}else{ell=(this._barPoints[i][2][0]+this._barPoints[i][0][0])/2+plot._gridPadding.left-.5*elem.outerWidth(true)}}if(this.renderer.constructor==$.jqplot.BarRenderer){if(this.barDirection=="vertical"){ell+=this._barNudge}else{elt-=this._barNudge}}elem.css("left",ell);elem.css("top",elt);var elr=ell+elem.width();var elb=elt+elem.height();var et=p.edgeTolerance;var scl=$(sctx.canvas).position().left;var sct=$(sctx.canvas).position().top;var scr=sctx.canvas.width+scl;var scb=sctx.canvas.height+sct;if(ell-et<scl||elt-et<sct||elr+et>scr||elb+et>scb){elem.remove()}elem=null;helem=null}}};$.jqplot.postSeriesInitHooks.push($.jqplot.PointLabels.init);$.jqplot.postDrawSeriesHooks.push($.jqplot.PointLabels.draw)})(jQuery);(function($){$.jqplot.EnhancedLegendRenderer=function(){$.jqplot.TableLegendRenderer.call(this)};$.jqplot.EnhancedLegendRenderer.prototype=new $.jqplot.TableLegendRenderer;$.jqplot.EnhancedLegendRenderer.prototype.constructor=$.jqplot.EnhancedLegendRenderer;$.jqplot.EnhancedLegendRenderer.prototype.init=function(options){this.numberRows=null;this.numberColumns=null;this.seriesToggle="normal";this.seriesToggleReplot=false;this.disableIEFading=true;$.extend(true,this,options);if(this.seriesToggle){$.jqplot.postDrawHooks.push(postDraw)}};$.jqplot.EnhancedLegendRenderer.prototype.draw=function(offsets,plot){var legend=this;if(this.show){var series=this._series;var s;var ss="position:absolute;";ss+=this.background?"background:"+this.background+";":"";ss+=this.border?"border:"+this.border+";":"";ss+=this.fontSize?"font-size:"+this.fontSize+";":"";ss+=this.fontFamily?"font-family:"+this.fontFamily+";":"";ss+=this.textColor?"color:"+this.textColor+";":"";ss+=this.marginTop!=null?"margin-top:"+this.marginTop+";":"";ss+=this.marginBottom!=null?"margin-bottom:"+this.marginBottom+";":"";ss+=this.marginLeft!=null?"margin-left:"+this.marginLeft+";":"";ss+=this.marginRight!=null?"margin-right:"+this.marginRight+";":"";this._elem=$('<table class="jqplot-table-legend" style="'+ss+'"></table>');if(this.seriesToggle){this._elem.css("z-index","3")}var pad=false,reverse=false,nr,nc;if(this.numberRows){nr=this.numberRows;if(!this.numberColumns){nc=Math.ceil(series.length/nr)}else{nc=this.numberColumns}}else if(this.numberColumns){nc=this.numberColumns;nr=Math.ceil(series.length/this.numberColumns)}else{nr=series.length;nc=1}var i,j,tr,td1,td2,lt,rs,div,div0,div1;var idx=0;for(i=series.length-1;i>=0;i--){if(nc==1&&series[i]._stack||series[i].renderer.constructor==$.jqplot.BezierCurveRenderer){reverse=true}}for(i=0;i<nr;i++){tr=$(document.createElement("tr"));tr.addClass("jqplot-table-legend");if(reverse){tr.prependTo(this._elem)}else{tr.appendTo(this._elem)}for(j=0;j<nc;j++){if(idx<series.length&&(series[idx].show||series[idx].showLabel)){s=series[idx];lt=this.labels[idx]||s.label.toString();if(lt){var color=s.color;if(!reverse){if(i>0){pad=true}else{pad=false}}else{if(i==nr-1){pad=false}else{pad=true}}rs=pad?this.rowSpacing:"0";td1=$(document.createElement("td"));td1.addClass("jqplot-table-legend jqplot-table-legend-swatch");td1.css({textAlign:"center",paddingTop:rs});div0=$(document.createElement("div"));div0.addClass("jqplot-table-legend-swatch-outline");div1=$(document.createElement("div"));div1.addClass("jqplot-table-legend-swatch");div1.css({backgroundColor:color,borderColor:color});td1.append(div0.append(div1));td2=$(document.createElement("td"));td2.addClass("jqplot-table-legend jqplot-table-legend-label");td2.css("paddingTop",rs);if(this.escapeHtml){td2.text(lt)}else{td2.html(lt)}if(reverse){if(this.showLabels){td2.prependTo(tr)}if(this.showSwatches){td1.prependTo(tr)}}else{if(this.showSwatches){td1.appendTo(tr)}if(this.showLabels){td2.appendTo(tr)}}if(this.seriesToggle){var speed;if(typeof this.seriesToggle==="string"||typeof this.seriesToggle==="number"){if(!$.jqplot.use_excanvas||!this.disableIEFading){speed=this.seriesToggle}}if(this.showSwatches){td1.bind("click",{series:s,speed:speed,plot:plot,replot:this.seriesToggleReplot},handleToggle);td1.addClass("jqplot-seriesToggle")}if(this.showLabels){td2.bind("click",{series:s,speed:speed,plot:plot,replot:this.seriesToggleReplot},handleToggle);td2.addClass("jqplot-seriesToggle")}if(!s.show&&s.showLabel){td1.addClass("jqplot-series-hidden");td2.addClass("jqplot-series-hidden")}}pad=true}}idx++}td1=td2=div0=div1=null}}return this._elem};var handleToggle=function(ev){var d=ev.data,s=d.series,replot=d.replot,plot=d.plot,speed=d.speed,sidx=s.index,showing=false;if(s.canvas._elem.is(":hidden")||!s.show){showing=true}var doLegendToggle=function(){if(replot){var opts={};if($.isPlainObject(replot)){$.extend(true,opts,replot)}plot.replot(opts);if(showing&&speed){var s=plot.series[sidx];if(s.shadowCanvas._elem){s.shadowCanvas._elem.hide().fadeIn(speed)}s.canvas._elem.hide().fadeIn(speed);s.canvas._elem.nextAll(".jqplot-point-label.jqplot-series-"+s.index).hide().fadeIn(speed)}}else{var s=plot.series[sidx];if(s.canvas._elem.is(":hidden")||!s.show){if(typeof plot.options.legend.showSwatches==="undefined"||plot.options.legend.showSwatches===true){plot.legend._elem.find("td").eq(sidx*2).addClass("jqplot-series-hidden")}if(typeof plot.options.legend.showLabels==="undefined"||plot.options.legend.showLabels===true){plot.legend._elem.find("td").eq(sidx*2+1).addClass("jqplot-series-hidden")}}else{if(typeof plot.options.legend.showSwatches==="undefined"||plot.options.legend.showSwatches===true){plot.legend._elem.find("td").eq(sidx*2).removeClass("jqplot-series-hidden")}if(typeof plot.options.legend.showLabels==="undefined"||plot.options.legend.showLabels===true){plot.legend._elem.find("td").eq(sidx*2+1).removeClass("jqplot-series-hidden")}}}};s.toggleDisplay(ev,doLegendToggle)};var postDraw=function(){if(this.legend.renderer.constructor==$.jqplot.EnhancedLegendRenderer&&this.legend.seriesToggle){var e=this.legend._elem.detach();this.eventCanvas._elem.after(e)}}})(jQuery);(function($){$.jqplot.BarRenderer=function(){$.jqplot.LineRenderer.call(this)};$.jqplot.BarRenderer.prototype=new $.jqplot.LineRenderer;$.jqplot.BarRenderer.prototype.constructor=$.jqplot.BarRenderer;$.jqplot.BarRenderer.prototype.init=function(options,plot){this.barPadding=8;this.barMargin=10;this.barDirection="vertical";this.barWidth=null;this.shadowOffset=2;this.shadowDepth=5;this.shadowAlpha=.08;this.waterfall=false;this.groups=1;this.varyBarColor=false;this.highlightMouseOver=true;this.highlightMouseDown=false;this.highlightColors=[];this.transposedData=true;this.renderer.animation={show:false,direction:"down",speed:3e3,_supported:true};this._type="bar";if(options.highlightMouseDown&&options.highlightMouseOver==null){options.highlightMouseOver=false}$.extend(true,this,options);$.extend(true,this.renderer,options);this.fill=true;if(this.barDirection==="horizontal"&&this.rendererOptions.animation&&this.rendererOptions.animation.direction==null){this.renderer.animation.direction="left"}if(this.waterfall){this.fillToZero=false;this.disableStack=true}if(this.barDirection=="vertical"){this._primaryAxis="_xaxis";this._stackAxis="y";this.fillAxis="y"}else{this._primaryAxis="_yaxis";this._stackAxis="x";this.fillAxis="x"}this._highlightedPoint=null;this._plotSeriesInfo=null;this._dataColors=[];this._barPoints=[];var opts={lineJoin:"miter",lineCap:"round",fill:true,isarc:false,strokeStyle:this.color,fillStyle:this.color,closePath:this.fill};this.renderer.shapeRenderer.init(opts);var sopts={lineJoin:"miter",lineCap:"round",fill:true,isarc:false,angle:this.shadowAngle,offset:this.shadowOffset,alpha:this.shadowAlpha,depth:this.shadowDepth,closePath:this.fill};this.renderer.shadowRenderer.init(sopts);plot.postInitHooks.addOnce(postInit);plot.postDrawHooks.addOnce(postPlotDraw);plot.eventListenerHooks.addOnce("jqplotMouseMove",handleMove);plot.eventListenerHooks.addOnce("jqplotMouseDown",handleMouseDown);plot.eventListenerHooks.addOnce("jqplotMouseUp",handleMouseUp);plot.eventListenerHooks.addOnce("jqplotClick",handleClick);plot.eventListenerHooks.addOnce("jqplotRightClick",handleRightClick)};function barPreInit(target,data,seriesDefaults,options){if(this.rendererOptions.barDirection=="horizontal"){this._stackAxis="x";this._primaryAxis="_yaxis"}if(this.rendererOptions.waterfall==true){this._data=$.extend(true,[],this.data);var sum=0;var pos=!this.rendererOptions.barDirection||this.rendererOptions.barDirection==="vertical"||this.transposedData===false?1:0;for(var i=0;i<this.data.length;i++){sum+=this.data[i][pos];if(i>0){this.data[i][pos]+=this.data[i-1][pos]}}this.data[this.data.length]=pos==1?[this.data.length+1,sum]:[sum,this.data.length+1];this._data[this._data.length]=pos==1?[this._data.length+1,sum]:[sum,this._data.length+1]}if(this.rendererOptions.groups>1){this.breakOnNull=true;var l=this.data.length;var skip=parseInt(l/this.rendererOptions.groups,10);var count=0;for(var i=skip;i<l;i+=skip){this.data.splice(i+count,0,[null,null]);this._plotData.splice(i+count,0,[null,null]);this._stackData.splice(i+count,0,[null,null]);count++}for(i=0;i<this.data.length;i++){if(this._primaryAxis=="_xaxis"){this.data[i][0]=i+1;this._plotData[i][0]=i+1;this._stackData[i][0]=i+1}else{this.data[i][1]=i+1;this._plotData[i][1]=i+1;this._stackData[i][1]=i+1}}}}$.jqplot.preSeriesInitHooks.push(barPreInit);$.jqplot.BarRenderer.prototype.calcSeriesNumbers=function(){var nvals=0;var nseries=0;var paxis=this[this._primaryAxis];var s,series,pos;for(var i=0;i<paxis._series.length;i++){series=paxis._series[i];if(series===this){pos=i}if(series.renderer.constructor==$.jqplot.BarRenderer){nvals+=series.data.length;nseries+=1}}return[nvals,nseries,pos]};$.jqplot.BarRenderer.prototype.setBarWidth=function(){var i;var nvals=0;var nseries=0;var paxis=this[this._primaryAxis];var s,series,pos;var temp=this._plotSeriesInfo=this.renderer.calcSeriesNumbers.call(this);nvals=temp[0];nseries=temp[1];var nticks=paxis.numberTicks;var nbins=(nticks-1)/2;if(paxis.name=="xaxis"||paxis.name=="x2axis"){if(this._stack){this.barWidth=(paxis._offsets.max-paxis._offsets.min)/nvals*nseries-this.barMargin}else{this.barWidth=((paxis._offsets.max-paxis._offsets.min)/nbins-this.barPadding*(nseries-1)-this.barMargin*2)/nseries}}else{if(this._stack){this.barWidth=(paxis._offsets.min-paxis._offsets.max)/nvals*nseries-this.barMargin}else{this.barWidth=((paxis._offsets.min-paxis._offsets.max)/nbins-this.barPadding*(nseries-1)-this.barMargin*2)/nseries}}return[nvals,nseries]};function computeHighlightColors(colors){var ret=[];for(var i=0;i<colors.length;i++){var rgba=$.jqplot.getColorComponents(colors[i]);var newrgb=[rgba[0],rgba[1],rgba[2]];var sum=newrgb[0]+newrgb[1]+newrgb[2];for(var j=0;j<3;j++){newrgb[j]=sum>570?newrgb[j]*.8:newrgb[j]+.3*(255-newrgb[j]);newrgb[j]=parseInt(newrgb[j],10)}ret.push("rgb("+newrgb[0]+","+newrgb[1]+","+newrgb[2]+")")}return ret}function getStart(sidx,didx,comp,plot,axis){var seriesIndex=sidx,prevSeriesIndex=sidx-1,start,prevVal,aidx=axis==="x"?0:1;if(seriesIndex>0){prevVal=plot.series[prevSeriesIndex]._plotData[didx][aidx];if(comp*prevVal<0){start=getStart(prevSeriesIndex,didx,comp,plot,axis)}else{start=plot.series[prevSeriesIndex].gridData[didx][aidx]}}else{start=aidx===0?plot.series[seriesIndex]._xaxis.series_u2p(0):plot.series[seriesIndex]._yaxis.series_u2p(0)}return start}$.jqplot.BarRenderer.prototype.draw=function(ctx,gridData,options,plot){var i;var opts=$.extend({},options);var shadow=opts.shadow!=undefined?opts.shadow:this.shadow;var showLine=opts.showLine!=undefined?opts.showLine:this.showLine;var fill=opts.fill!=undefined?opts.fill:this.fill;var xaxis=this.xaxis;var yaxis=this.yaxis;var xp=this._xaxis.series_u2p;var yp=this._yaxis.series_u2p;var pointx,pointy;this._dataColors=[];this._barPoints=[];if(this.barWidth==null){this.renderer.setBarWidth.call(this)}var temp=this._plotSeriesInfo=this.renderer.calcSeriesNumbers.call(this);var nvals=temp[0];var nseries=temp[1];var pos=temp[2];var points=[];if(this._stack){this._barNudge=0}else{this._barNudge=(-Math.abs(nseries/2-.5)+pos)*(this.barWidth+this.barPadding)}if(showLine){var negativeColors=new $.jqplot.ColorGenerator(this.negativeSeriesColors);var positiveColors=new $.jqplot.ColorGenerator(this.seriesColors);var negativeColor=negativeColors.get(this.index);if(!this.useNegativeColors){negativeColor=opts.fillStyle}var positiveColor=opts.fillStyle;var base;var xstart;var ystart;if(this.barDirection=="vertical"){for(var i=0;i<gridData.length;i++){if(!this._stack&&this.data[i][1]==null){continue}points=[];base=gridData[i][0]+this._barNudge;if(this._stack&&this._prevGridData.length){ystart=getStart(this.index,i,this._plotData[i][1],plot,"y")}else{if(this.fillToZero){ystart=this._yaxis.series_u2p(0)}else if(this.waterfall&&i>0&&i<this.gridData.length-1){ystart=this.gridData[i-1][1]}else if(this.waterfall&&i==0&&i<this.gridData.length-1){if(this._yaxis.min<=0&&this._yaxis.max>=0){ystart=this._yaxis.series_u2p(0)}else if(this._yaxis.min>0){ystart=ctx.canvas.height}else{ystart=0}}else if(this.waterfall&&i==this.gridData.length-1){if(this._yaxis.min<=0&&this._yaxis.max>=0){ystart=this._yaxis.series_u2p(0)}else if(this._yaxis.min>0){ystart=ctx.canvas.height}else{ystart=0}}else{ystart=ctx.canvas.height}}if(this.fillToZero&&this._plotData[i][1]<0||this.waterfall&&this._data[i][1]<0){if(this.varyBarColor&&!this._stack){if(this.useNegativeColors){opts.fillStyle=negativeColors.next()}else{opts.fillStyle=positiveColors.next()}}else{opts.fillStyle=negativeColor}}else{if(this.varyBarColor&&!this._stack){opts.fillStyle=positiveColors.next()}else{opts.fillStyle=positiveColor}}if(!this.fillToZero||this._plotData[i][1]>=0){points.push([base-this.barWidth/2,ystart]);points.push([base-this.barWidth/2,gridData[i][1]]);points.push([base+this.barWidth/2,gridData[i][1]]);points.push([base+this.barWidth/2,ystart])}else{points.push([base-this.barWidth/2,gridData[i][1]]);points.push([base-this.barWidth/2,ystart]);points.push([base+this.barWidth/2,ystart]);points.push([base+this.barWidth/2,gridData[i][1]])}this._barPoints.push(points);if(shadow&&!this._stack){var sopts=$.extend(true,{},opts);delete sopts.fillStyle;this.renderer.shadowRenderer.draw(ctx,points,sopts)}var clr=opts.fillStyle||this.color;this._dataColors.push(clr);this.renderer.shapeRenderer.draw(ctx,points,opts)}}else if(this.barDirection=="horizontal"){for(var i=0;i<gridData.length;i++){if(!this._stack&&this.data[i][0]==null){continue}points=[];base=gridData[i][1]-this._barNudge;xstart;if(this._stack&&this._prevGridData.length){xstart=getStart(this.index,i,this._plotData[i][0],plot,"x")}else{if(this.fillToZero){xstart=this._xaxis.series_u2p(0)}else if(this.waterfall&&i>0&&i<this.gridData.length-1){xstart=this.gridData[i-1][0]}else if(this.waterfall&&i==0&&i<this.gridData.length-1){if(this._xaxis.min<=0&&this._xaxis.max>=0){xstart=this._xaxis.series_u2p(0)}else if(this._xaxis.min>0){xstart=0}else{xstart=0}}else if(this.waterfall&&i==this.gridData.length-1){if(this._xaxis.min<=0&&this._xaxis.max>=0){xstart=this._xaxis.series_u2p(0)}else if(this._xaxis.min>0){xstart=0}else{xstart=ctx.canvas.width}}else{xstart=0}}if(this.fillToZero&&this._plotData[i][1]<0||this.waterfall&&this._data[i][1]<0){if(this.varyBarColor&&!this._stack){if(this.useNegativeColors){opts.fillStyle=negativeColors.next()}else{opts.fillStyle=positiveColors.next()}}}else{if(this.varyBarColor&&!this._stack){opts.fillStyle=positiveColors.next()}else{opts.fillStyle=positiveColor}}if(!this.fillToZero||this._plotData[i][0]>=0){points.push([xstart,base+this.barWidth/2]);points.push([xstart,base-this.barWidth/2]);points.push([gridData[i][0],base-this.barWidth/2]);points.push([gridData[i][0],base+this.barWidth/2])}else{points.push([gridData[i][0],base+this.barWidth/2]);points.push([gridData[i][0],base-this.barWidth/2]);points.push([xstart,base-this.barWidth/2]);points.push([xstart,base+this.barWidth/2])}this._barPoints.push(points);if(shadow&&!this._stack){var sopts=$.extend(true,{},opts);delete sopts.fillStyle;this.renderer.shadowRenderer.draw(ctx,points,sopts)}var clr=opts.fillStyle||this.color;this._dataColors.push(clr);this.renderer.shapeRenderer.draw(ctx,points,opts)}}}if(this.highlightColors.length==0){this.highlightColors=$.jqplot.computeHighlightColors(this._dataColors)}else if(typeof this.highlightColors=="string"){var temp=this.highlightColors;this.highlightColors=[];for(var i=0;i<this._dataColors.length;i++){this.highlightColors.push(temp)}}};$.jqplot.BarRenderer.prototype.drawShadow=function(ctx,gridData,options,plot){var i;var opts=options!=undefined?options:{};var shadow=opts.shadow!=undefined?opts.shadow:this.shadow;var showLine=opts.showLine!=undefined?opts.showLine:this.showLine;var fill=opts.fill!=undefined?opts.fill:this.fill;var xaxis=this.xaxis;var yaxis=this.yaxis;var xp=this._xaxis.series_u2p;var yp=this._yaxis.series_u2p;var pointx,points,pointy,nvals,nseries,pos;if(this._stack&&this.shadow){if(this.barWidth==null){this.renderer.setBarWidth.call(this)}var temp=this._plotSeriesInfo=this.renderer.calcSeriesNumbers.call(this);nvals=temp[0];nseries=temp[1];pos=temp[2];if(this._stack){this._barNudge=0}else{this._barNudge=(-Math.abs(nseries/2-.5)+pos)*(this.barWidth+this.barPadding)}if(showLine){if(this.barDirection=="vertical"){for(var i=0;i<gridData.length;i++){if(this.data[i][1]==null){continue}points=[];var base=gridData[i][0]+this._barNudge;var ystart;if(this._stack&&this._prevGridData.length){ystart=getStart(this.index,i,this._plotData[i][1],plot,"y")}else{if(this.fillToZero){ystart=this._yaxis.series_u2p(0)}else{ystart=ctx.canvas.height}}points.push([base-this.barWidth/2,ystart]);points.push([base-this.barWidth/2,gridData[i][1]]);points.push([base+this.barWidth/2,gridData[i][1]]);points.push([base+this.barWidth/2,ystart]);this.renderer.shadowRenderer.draw(ctx,points,opts)}}else if(this.barDirection=="horizontal"){for(var i=0;i<gridData.length;i++){if(this.data[i][0]==null){continue}points=[];var base=gridData[i][1]-this._barNudge;var xstart;if(this._stack&&this._prevGridData.length){xstart=getStart(this.index,i,this._plotData[i][0],plot,"x")}else{if(this.fillToZero){xstart=this._xaxis.series_u2p(0)}else{xstart=0}}points.push([xstart,base+this.barWidth/2]);points.push([gridData[i][0],base+this.barWidth/2]);points.push([gridData[i][0],base-this.barWidth/2]);points.push([xstart,base-this.barWidth/2]);this.renderer.shadowRenderer.draw(ctx,points,opts)}}}}};function postInit(target,data,options){for(var i=0;i<this.series.length;i++){if(this.series[i].renderer.constructor==$.jqplot.BarRenderer){if(this.series[i].highlightMouseOver){this.series[i].highlightMouseDown=false}}}}function postPlotDraw(){if(this.plugins.barRenderer&&this.plugins.barRenderer.highlightCanvas){this.plugins.barRenderer.highlightCanvas.resetCanvas();this.plugins.barRenderer.highlightCanvas=null}this.plugins.barRenderer={highlightedSeriesIndex:null};this.plugins.barRenderer.highlightCanvas=new $.jqplot.GenericCanvas;this.eventCanvas._elem.before(this.plugins.barRenderer.highlightCanvas.createElement(this._gridPadding,"jqplot-barRenderer-highlight-canvas",this._plotDimensions,this));this.plugins.barRenderer.highlightCanvas.setContext();this.eventCanvas._elem.bind("mouseleave",{plot:this},function(ev){unhighlight(ev.data.plot)})}function highlight(plot,sidx,pidx,points){var s=plot.series[sidx];var canvas=plot.plugins.barRenderer.highlightCanvas;canvas._ctx.clearRect(0,0,canvas._ctx.canvas.width,canvas._ctx.canvas.height);s._highlightedPoint=pidx;plot.plugins.barRenderer.highlightedSeriesIndex=sidx;var opts={fillStyle:s.highlightColors[pidx]};s.renderer.shapeRenderer.draw(canvas._ctx,points,opts);canvas=null}function unhighlight(plot){var canvas=plot.plugins.barRenderer.highlightCanvas;canvas._ctx.clearRect(0,0,canvas._ctx.canvas.width,canvas._ctx.canvas.height);for(var i=0;i<plot.series.length;i++){plot.series[i]._highlightedPoint=null}plot.plugins.barRenderer.highlightedSeriesIndex=null;plot.target.trigger("jqplotDataUnhighlight");canvas=null}function handleMove(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];var evt1=jQuery.Event("jqplotDataMouseOver");evt1.pageX=ev.pageX;evt1.pageY=ev.pageY;plot.target.trigger(evt1,ins);if(plot.series[ins[0]].highlightMouseOver&&!(ins[0]==plot.plugins.barRenderer.highlightedSeriesIndex&&ins[1]==plot.series[ins[0]]._highlightedPoint)){var evt=jQuery.Event("jqplotDataHighlight");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins)
;highlight(plot,neighbor.seriesIndex,neighbor.pointIndex,neighbor.points)}}else if(neighbor==null){unhighlight(plot)}}function handleMouseDown(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];if(plot.series[ins[0]].highlightMouseDown&&!(ins[0]==plot.plugins.barRenderer.highlightedSeriesIndex&&ins[1]==plot.series[ins[0]]._highlightedPoint)){var evt=jQuery.Event("jqplotDataHighlight");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins);highlight(plot,neighbor.seriesIndex,neighbor.pointIndex,neighbor.points)}}else if(neighbor==null){unhighlight(plot)}}function handleMouseUp(ev,gridpos,datapos,neighbor,plot){var idx=plot.plugins.barRenderer.highlightedSeriesIndex;if(idx!=null&&plot.series[idx].highlightMouseDown){unhighlight(plot)}}function handleClick(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];var evt=jQuery.Event("jqplotDataClick");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins)}}function handleRightClick(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];var idx=plot.plugins.barRenderer.highlightedSeriesIndex;if(idx!=null&&plot.series[idx].highlightMouseDown){unhighlight(plot)}var evt=jQuery.Event("jqplotDataRightClick");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins)}}})(jQuery);(function($){$.jqplot.CanvasAxisLabelRenderer=function(options){this.angle=0;this.axis;this.show=true;this.showLabel=true;this.label="";this.fontFamily='"Trebuchet MS", Arial, Helvetica, sans-serif';this.fontSize="11pt";this.fontWeight="normal";this.fontStretch=1;this.textColor="#666666";this.enableFontSupport=true;this.pt2px=null;this._elem;this._ctx;this._plotWidth;this._plotHeight;this._plotDimensions={height:null,width:null};$.extend(true,this,options);if(options.angle==null&&this.axis!="xaxis"&&this.axis!="x2axis"){this.angle=-90}var ropts={fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily};if(this.pt2px){ropts.pt2px=this.pt2px}if(this.enableFontSupport){if($.jqplot.support_canvas_text()){this._textRenderer=new $.jqplot.CanvasFontRenderer(ropts)}else{this._textRenderer=new $.jqplot.CanvasTextRenderer(ropts)}}else{this._textRenderer=new $.jqplot.CanvasTextRenderer(ropts)}};$.jqplot.CanvasAxisLabelRenderer.prototype.init=function(options){$.extend(true,this,options);this._textRenderer.init({fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily})};$.jqplot.CanvasAxisLabelRenderer.prototype.getWidth=function(ctx){if(this._elem){return this._elem.outerWidth(true)}else{var tr=this._textRenderer;var l=tr.getWidth(ctx);var h=tr.getHeight(ctx);var w=Math.abs(Math.sin(tr.angle)*h)+Math.abs(Math.cos(tr.angle)*l);return w}};$.jqplot.CanvasAxisLabelRenderer.prototype.getHeight=function(ctx){if(this._elem){return this._elem.outerHeight(true)}else{var tr=this._textRenderer;var l=tr.getWidth(ctx);var h=tr.getHeight(ctx);var w=Math.abs(Math.cos(tr.angle)*h)+Math.abs(Math.sin(tr.angle)*l);return w}};$.jqplot.CanvasAxisLabelRenderer.prototype.getAngleRad=function(){var a=this.angle*Math.PI/180;return a};$.jqplot.CanvasAxisLabelRenderer.prototype.draw=function(ctx,plot){if(this._elem){if($.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==undefined){window.G_vmlCanvasManager.uninitElement(this._elem.get(0))}this._elem.emptyForce();this._elem=null}var elem=plot.canvasManager.getCanvas();this._textRenderer.setText(this.label,ctx);var w=this.getWidth(ctx);var h=this.getHeight(ctx);elem.width=w;elem.height=h;elem.style.width=w;elem.style.height=h;elem=plot.canvasManager.initCanvas(elem);this._elem=$(elem);this._elem.css({position:"absolute"});this._elem.addClass("jqplot-"+this.axis+"-label");elem=null;return this._elem};$.jqplot.CanvasAxisLabelRenderer.prototype.pack=function(){this._textRenderer.draw(this._elem.get(0).getContext("2d"),this.label)}})(jQuery);(function($){$.jqplot.CanvasAxisTickRenderer=function(options){this.mark="outside";this.showMark=true;this.showGridline=true;this.isMinorTick=false;this.angle=0;this.markSize=4;this.show=true;this.showLabel=true;this.labelPosition="auto";this.label="";this.value=null;this._styles={};this.formatter=$.jqplot.DefaultTickFormatter;this.formatString="";this.prefix="";this.fontFamily='"Trebuchet MS", Arial, Helvetica, sans-serif';this.fontSize="10pt";this.fontWeight="normal";this.fontStretch=1;this.textColor="#666666";this.enableFontSupport=true;this.pt2px=null;this._elem;this._ctx;this._plotWidth;this._plotHeight;this._plotDimensions={height:null,width:null};$.extend(true,this,options);var ropts={fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily};if(this.pt2px){ropts.pt2px=this.pt2px}if(this.enableFontSupport){if($.jqplot.support_canvas_text()){this._textRenderer=new $.jqplot.CanvasFontRenderer(ropts)}else{this._textRenderer=new $.jqplot.CanvasTextRenderer(ropts)}}else{this._textRenderer=new $.jqplot.CanvasTextRenderer(ropts)}};$.jqplot.CanvasAxisTickRenderer.prototype.init=function(options){$.extend(true,this,options);this._textRenderer.init({fontSize:this.fontSize,fontWeight:this.fontWeight,fontStretch:this.fontStretch,fillStyle:this.textColor,angle:this.getAngleRad(),fontFamily:this.fontFamily})};$.jqplot.CanvasAxisTickRenderer.prototype.getWidth=function(ctx){if(this._elem){return this._elem.outerWidth(true)}else{var tr=this._textRenderer;var l=tr.getWidth(ctx);var h=tr.getHeight(ctx);var w=Math.abs(Math.sin(tr.angle)*h)+Math.abs(Math.cos(tr.angle)*l);return w}};$.jqplot.CanvasAxisTickRenderer.prototype.getHeight=function(ctx){if(this._elem){return this._elem.outerHeight(true)}else{var tr=this._textRenderer;var l=tr.getWidth(ctx);var h=tr.getHeight(ctx);var w=Math.abs(Math.cos(tr.angle)*h)+Math.abs(Math.sin(tr.angle)*l);return w}};$.jqplot.CanvasAxisTickRenderer.prototype.getTop=function(ctx){if(this._elem){return this._elem.position().top}else{return null}};$.jqplot.CanvasAxisTickRenderer.prototype.getAngleRad=function(){var a=this.angle*Math.PI/180;return a};$.jqplot.CanvasAxisTickRenderer.prototype.setTick=function(value,axisName,isMinor){this.value=value;if(isMinor){this.isMinorTick=true}return this};$.jqplot.CanvasAxisTickRenderer.prototype.draw=function(ctx,plot){if(!this.label){this.label=this.prefix+this.formatter(this.formatString,this.value)}if(this._elem){if($.jqplot.use_excanvas&&window.G_vmlCanvasManager.uninitElement!==undefined){window.G_vmlCanvasManager.uninitElement(this._elem.get(0))}this._elem.emptyForce();this._elem=null}var elem=plot.canvasManager.getCanvas();this._textRenderer.setText(this.label,ctx);var w=this.getWidth(ctx);var h=this.getHeight(ctx);elem.width=w;elem.height=h;elem.style.width=w;elem.style.height=h;elem.style.textAlign="left";elem.style.position="absolute";elem=plot.canvasManager.initCanvas(elem);this._elem=$(elem);this._elem.css(this._styles);this._elem.addClass("jqplot-"+this.axis+"-tick");elem=null;return this._elem};$.jqplot.CanvasAxisTickRenderer.prototype.pack=function(){this._textRenderer.draw(this._elem.get(0).getContext("2d"),this.label)}})(jQuery);(function($){$.jqplot.CanvasTextRenderer=function(options){this.fontStyle="normal";this.fontVariant="normal";this.fontWeight="normal";this.fontSize="10px";this.fontFamily="sans-serif";this.fontStretch=1;this.fillStyle="#666666";this.angle=0;this.textAlign="start";this.textBaseline="alphabetic";this.text;this.width;this.height;this.pt2px=1.28;$.extend(true,this,options);this.normalizedFontSize=this.normalizeFontSize(this.fontSize);this.setHeight()};$.jqplot.CanvasTextRenderer.prototype.init=function(options){$.extend(true,this,options);this.normalizedFontSize=this.normalizeFontSize(this.fontSize);this.setHeight()};$.jqplot.CanvasTextRenderer.prototype.normalizeFontSize=function(sz){sz=String(sz);var n=parseFloat(sz);if(sz.indexOf("px")>-1){return n/this.pt2px}else if(sz.indexOf("pt")>-1){return n}else if(sz.indexOf("em")>-1){return n*12}else if(sz.indexOf("%")>-1){return n*12/100}else{return n/this.pt2px}};$.jqplot.CanvasTextRenderer.prototype.fontWeight2Float=function(w){if(Number(w)){return w/400}else{switch(w){case"normal":return 1;break;case"bold":return 1.75;break;case"bolder":return 2.25;break;case"lighter":return.75;break;default:return 1;break}}};$.jqplot.CanvasTextRenderer.prototype.getText=function(){return this.text};$.jqplot.CanvasTextRenderer.prototype.setText=function(t,ctx){this.text=t;this.setWidth(ctx);return this};$.jqplot.CanvasTextRenderer.prototype.getWidth=function(ctx){return this.width};$.jqplot.CanvasTextRenderer.prototype.setWidth=function(ctx,w){if(!w){this.width=this.measure(ctx,this.text)}else{this.width=w}return this};$.jqplot.CanvasTextRenderer.prototype.getHeight=function(ctx){return this.height};$.jqplot.CanvasTextRenderer.prototype.setHeight=function(w){if(!w){this.height=this.normalizedFontSize*this.pt2px}else{this.height=w}return this};$.jqplot.CanvasTextRenderer.prototype.letter=function(ch){return this.letters[ch]};$.jqplot.CanvasTextRenderer.prototype.ascent=function(){return this.normalizedFontSize};$.jqplot.CanvasTextRenderer.prototype.descent=function(){return 7*this.normalizedFontSize/25};$.jqplot.CanvasTextRenderer.prototype.measure=function(ctx,str){var total=0;var len=str.length;for(var i=0;i<len;i++){var c=this.letter(str.charAt(i));if(c){total+=c.width*this.normalizedFontSize/25*this.fontStretch}}return total};$.jqplot.CanvasTextRenderer.prototype.draw=function(ctx,str){var x=0;var y=this.height*.72;var total=0;var len=str.length;var mag=this.normalizedFontSize/25;ctx.save();var tx,ty;if(-Math.PI/2<=this.angle&&this.angle<=0||Math.PI*3/2<=this.angle&&this.angle<=Math.PI*2){tx=0;ty=-Math.sin(this.angle)*this.width}else if(0<this.angle&&this.angle<=Math.PI/2||-Math.PI*2<=this.angle&&this.angle<=-Math.PI*3/2){tx=Math.sin(this.angle)*this.height;ty=0}else if(-Math.PI<this.angle&&this.angle<-Math.PI/2||Math.PI<=this.angle&&this.angle<=Math.PI*3/2){tx=-Math.cos(this.angle)*this.width;ty=-Math.sin(this.angle)*this.width-Math.cos(this.angle)*this.height}else if(-Math.PI*3/2<this.angle&&this.angle<Math.PI||Math.PI/2<this.angle&&this.angle<Math.PI){tx=Math.sin(this.angle)*this.height-Math.cos(this.angle)*this.width;ty=-Math.cos(this.angle)*this.height}ctx.strokeStyle=this.fillStyle;ctx.fillStyle=this.fillStyle;ctx.translate(tx,ty);ctx.rotate(this.angle);ctx.lineCap="round";var fact=this.normalizedFontSize>30?2:2+(30-this.normalizedFontSize)/20;ctx.lineWidth=fact*mag*this.fontWeight2Float(this.fontWeight);for(var i=0;i<len;i++){var c=this.letter(str.charAt(i));if(!c){continue}ctx.beginPath();var penUp=1;var needStroke=0;for(var j=0;j<c.points.length;j++){var a=c.points[j];if(a[0]==-1&&a[1]==-1){penUp=1;continue}if(penUp){ctx.moveTo(x+a[0]*mag*this.fontStretch,y-a[1]*mag);penUp=false}else{ctx.lineTo(x+a[0]*mag*this.fontStretch,y-a[1]*mag)}}ctx.stroke();x+=c.width*mag*this.fontStretch}ctx.restore();return total};$.jqplot.CanvasTextRenderer.prototype.letters={" ":{width:16,points:[]},"!":{width:10,points:[[5,21],[5,7],[-1,-1],[5,2],[4,1],[5,0],[6,1],[5,2]]},'"':{width:16,points:[[4,21],[4,14],[-1,-1],[12,21],[12,14]]},"#":{width:21,points:[[11,25],[4,-7],[-1,-1],[17,25],[10,-7],[-1,-1],[4,12],[18,12],[-1,-1],[3,6],[17,6]]},$:{width:20,points:[[8,25],[8,-4],[-1,-1],[12,25],[12,-4],[-1,-1],[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},"%":{width:24,points:[[21,21],[3,0],[-1,-1],[8,21],[10,19],[10,17],[9,15],[7,14],[5,14],[3,16],[3,18],[4,20],[6,21],[8,21],[10,20],[13,19],[16,19],[19,20],[21,21],[-1,-1],[17,7],[15,6],[14,4],[14,2],[16,0],[18,0],[20,1],[21,3],[21,5],[19,7],[17,7]]},"&":{width:26,points:[[23,12],[23,13],[22,14],[21,14],[20,13],[19,11],[17,6],[15,3],[13,1],[11,0],[7,0],[5,1],[4,2],[3,4],[3,6],[4,8],[5,9],[12,13],[13,14],[14,16],[14,18],[13,20],[11,21],[9,20],[8,18],[8,16],[9,13],[11,10],[16,3],[18,1],[20,0],[22,0],[23,1],[23,2]]},"'":{width:10,points:[[5,19],[4,20],[5,21],[6,20],[6,18],[5,16],[4,15]]},"(":{width:14,points:[[11,25],[9,23],[7,20],[5,16],[4,11],[4,7],[5,2],[7,-2],[9,-5],[11,-7]]},")":{width:14,points:[[3,25],[5,23],[7,20],[9,16],[10,11],[10,7],[9,2],[7,-2],[5,-5],[3,-7]]},"*":{width:16,points:[[8,21],[8,9],[-1,-1],[3,18],[13,12],[-1,-1],[13,18],[3,12]]},"+":{width:26,points:[[13,18],[13,0],[-1,-1],[4,9],[22,9]]},",":{width:10,points:[[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]]},"-":{width:18,points:[[6,9],[12,9]]},".":{width:10,points:[[5,2],[4,1],[5,0],[6,1],[5,2]]},"/":{width:22,points:[[20,25],[2,-7]]},0:{width:20,points:[[9,21],[6,20],[4,17],[3,12],[3,9],[4,4],[6,1],[9,0],[11,0],[14,1],[16,4],[17,9],[17,12],[16,17],[14,20],[11,21],[9,21]]},1:{width:20,points:[[6,17],[8,18],[11,21],[11,0]]},2:{width:20,points:[[4,16],[4,17],[5,19],[6,20],[8,21],[12,21],[14,20],[15,19],[16,17],[16,15],[15,13],[13,10],[3,0],[17,0]]},3:{width:20,points:[[5,21],[16,21],[10,13],[13,13],[15,12],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]]},4:{width:20,points:[[13,21],[3,7],[18,7],[-1,-1],[13,21],[13,0]]},5:{width:20,points:[[15,21],[5,21],[4,12],[5,13],[8,14],[11,14],[14,13],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]]},6:{width:20,points:[[16,18],[15,20],[12,21],[10,21],[7,20],[5,17],[4,12],[4,7],[5,3],[7,1],[10,0],[11,0],[14,1],[16,3],[17,6],[17,7],[16,10],[14,12],[11,13],[10,13],[7,12],[5,10],[4,7]]},7:{width:20,points:[[17,21],[7,0],[-1,-1],[3,21],[17,21]]},8:{width:20,points:[[8,21],[5,20],[4,18],[4,16],[5,14],[7,13],[11,12],[14,11],[16,9],[17,7],[17,4],[16,2],[15,1],[12,0],[8,0],[5,1],[4,2],[3,4],[3,7],[4,9],[6,11],[9,12],[13,13],[15,14],[16,16],[16,18],[15,20],[12,21],[8,21]]},9:{width:20,points:[[16,14],[15,11],[13,9],[10,8],[9,8],[6,9],[4,11],[3,14],[3,15],[4,18],[6,20],[9,21],[10,21],[13,20],[15,18],[16,14],[16,9],[15,4],[13,1],[10,0],[8,0],[5,1],[4,3]]},":":{width:10,points:[[5,14],[4,13],[5,12],[6,13],[5,14],[-1,-1],[5,2],[4,1],[5,0],[6,1],[5,2]]},";":{width:10,points:[[5,14],[4,13],[5,12],[6,13],[5,14],[-1,-1],[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]]},"<":{width:24,points:[[20,18],[4,9],[20,0]]},"=":{width:26,points:[[4,12],[22,12],[-1,-1],[4,6],[22,6]]},">":{width:24,points:[[4,18],[20,9],[4,0]]},"?":{width:18,points:[[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]]},"@":{width:27,points:[[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]]},A:{width:18,points:[[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]]},B:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]]},C:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]]},D:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]]},E:{width:19,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]]},F:{width:18,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]]},G:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]]},H:{width:22,points:[[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]]},I:{width:8,points:[[4,21],[4,0]]},J:{width:16,points:[[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]]},K:{width:21,points:[[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]]},L:{width:17,points:[[4,21],[4,0],[-1,-1],[4,0],[16,0]]},M:{width:24,points:[[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]]},N:{width:22,points:[[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]]},O:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]]},P:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]]},Q:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]]},R:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]]},S:{width:20,points:[[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},T:{width:16,points:[[8,21],[8,0],[-1,-1],[1,21],[15,21]]},U:{width:22,points:[[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]]},V:{width:18,points:[[1,21],[9,0],[-1,-1],[17,21],[9,0]]},W:{width:24,points:[[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]]},X:{width:20,points:[[3,21],[17,0],[-1,-1],[17,21],[3,0]]},Y:{width:18,points:[[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]]},Z:{width:20,points:[[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]]},"[":{width:14,points:[[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]]},"\\":{width:14,points:[[0,21],[14,-3]]},"]":{width:14,points:[[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]]},"^":{width:16,points:[[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]]},_:{width:16,points:[[0,-2],[16,-2]]},"`":{width:10,points:[[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]]},a:{width:19,points:[[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},b:{width:19,points:[[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},c:{width:18,points:[[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},d:{width:19,points:[[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},e:{width:18,points:[[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},f:{width:12,points:[[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]]},g:{width:19,points:[[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},h:{width:19,points:[[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},i:{width:8,points:[[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]]},j:{width:10,points:[[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]]},k:{width:17,points:[[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]]},l:{width:8,points:[[4,21],[4,0]]},m:{width:30,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]]},n:{width:19,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},o:{width:19,points:[[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]]},p:{width:19,points:[[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},q:{width:19,points:[[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},r:{width:13,points:[[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]]},s:{width:17,points:[[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]]},t:{width:12,points:[[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]]},u:{width:19,points:[[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]]},v:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0]]},w:{width:22,points:[[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]]},x:{width:17,points:[[3,14],[14,0],[-1,-1],[14,14],[3,0]]},y:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]]},z:{width:17,points:[[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]]},"{":{width:14,points:[[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]]},"|":{width:8,points:[[4,25],[4,-7]]},"}":{width:14,points:[[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]]},"~":{width:24,points:[[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]]}};$.jqplot.CanvasFontRenderer=function(options){options=options||{};if(!options.pt2px){options.pt2px=1.5}$.jqplot.CanvasTextRenderer.call(this,options)};$.jqplot.CanvasFontRenderer.prototype=new $.jqplot.CanvasTextRenderer({});$.jqplot.CanvasFontRenderer.prototype.constructor=$.jqplot.CanvasFontRenderer;$.jqplot.CanvasFontRenderer.prototype.measure=function(ctx,str){var fstyle=this.fontSize+" "+this.fontFamily;ctx.save();ctx.font=fstyle;var w=ctx.measureText(str).width;ctx.restore();return w};$.jqplot.CanvasFontRenderer.prototype.draw=function(ctx,str){var x=0;var y=this.height*.72;ctx.save();var tx,ty;if(-Math.PI/2<=this.angle&&this.angle<=0||Math.PI*3/2<=this.angle&&this.angle<=Math.PI*2){tx=0;ty=-Math.sin(this.angle)*this.width}else if(0<this.angle&&this.angle<=Math.PI/2||-Math.PI*2<=this.angle&&this.angle<=-Math.PI*3/2){tx=Math.sin(this.angle)*this.height;ty=0}else if(-Math.PI<this.angle&&this.angle<-Math.PI/2||Math.PI<=this.angle&&this.angle<=Math.PI*3/2){tx=-Math.cos(this.angle)*this.width;ty=-Math.sin(this.angle)*this.width-Math.cos(this.angle)*this.height}else if(-Math.PI*3/2<this.angle&&this.angle<Math.PI||Math.PI/2<this.angle&&this.angle<Math.PI){tx=Math.sin(this.angle)*this.height-Math.cos(this.angle)*this.width;ty=-Math.cos(this.angle)*this.height}ctx.strokeStyle=this.fillStyle;ctx.fillStyle=this.fillStyle;var fstyle=this.fontSize+" "+this.fontFamily;ctx.font=fstyle;ctx.translate(tx,ty);ctx.rotate(this.angle);ctx.fillText(str,x,y);ctx.restore()}})(jQuery);(function($){$.jqplot.CategoryAxisRenderer=function(options){$.jqplot.LinearAxisRenderer.call(this);this.sortMergedLabels=false};$.jqplot.CategoryAxisRenderer.prototype=new $.jqplot.LinearAxisRenderer;$.jqplot.CategoryAxisRenderer.prototype.constructor=$.jqplot.CategoryAxisRenderer;$.jqplot.CategoryAxisRenderer.prototype.init=function(options){this.groups=1;this.groupLabels=[];this._groupLabels=[];this._grouped=false;this._barsPerGroup=null;this.reverse=false;$.extend(true,this,{tickOptions:{formatString:"%d"}},options);var db=this._dataBounds;for(var i=0;i<this._series.length;i++){var s=this._series[i];if(s.groups){this.groups=s.groups}var d=s.data;for(var j=0;j<d.length;j++){if(this.name=="xaxis"||this.name=="x2axis"){if(d[j][0]<db.min||db.min==null){db.min=d[j][0]}if(d[j][0]>db.max||db.max==null){db.max=d[j][0]}}else{if(d[j][1]<db.min||db.min==null){db.min=d[j][1]}if(d[j][1]>db.max||db.max==null){db.max=d[j][1]}}}}if(this.groupLabels.length){this.groups=this.groupLabels.length}};$.jqplot.CategoryAxisRenderer.prototype.createTicks=function(){var ticks=this._ticks;var userTicks=this.ticks;var name=this.name;var db=this._dataBounds;var dim,interval;var min,max;var pos1,pos2;var tt,i;if(userTicks.length){if(this.groups>1&&!this._grouped){var l=userTicks.length;var skip=parseInt(l/this.groups,10);var count=0;for(var i=skip;i<l;i+=skip){userTicks.splice(i+count,0," ");count++}this._grouped=true}this.min=.5;this.max=userTicks.length+.5;var range=this.max-this.min;this.numberTicks=2*userTicks.length+1;for(i=0;i<userTicks.length;i++){tt=this.min+2*i*range/(this.numberTicks-1);var t=new this.tickRenderer(this.tickOptions);t.showLabel=false;t.setTick(tt,this.name);this._ticks.push(t);var t=new this.tickRenderer(this.tickOptions);t.label=userTicks[i];t.showMark=false;t.showGridline=false;t.setTick(tt+.5,this.name);this._ticks.push(t)}var t=new this.tickRenderer(this.tickOptions);t.showLabel=false;t.setTick(tt+1,this.name);this._ticks.push(t)}else{if(name=="xaxis"||name=="x2axis"){dim=this._plotDimensions.width}else{dim=this._plotDimensions.height}if(this.min!=null&&this.max!=null&&this.numberTicks!=null){this.tickInterval=null}if(this.min!=null&&this.max!=null&&this.tickInterval!=null){if(parseInt((this.max-this.min)/this.tickInterval,10)!=(this.max-this.min)/this.tickInterval){this.tickInterval=null}}var labels=[];var numcats=0;var min=.5;var max,val;var isMerged=false;for(var i=0;i<this._series.length;i++){var s=this._series[i];for(var j=0;j<s.data.length;j++){if(this.name=="xaxis"||this.name=="x2axis"){val=s.data[j][0]}else{val=s.data[j][1]}if($.inArray(val,labels)==-1){isMerged=true;numcats+=1;labels.push(val)}}}if(isMerged&&this.sortMergedLabels){labels.sort(function(a,b){return a-b})}this.ticks=labels;for(var i=0;i<this._series.length;i++){var s=this._series[i];for(var j=0;j<s.data.length;j++){if(this.name=="xaxis"||this.name=="x2axis"){val=s.data[j][0]}else{val=s.data[j][1]}var idx=$.inArray(val,labels)+1;if(this.name=="xaxis"||this.name=="x2axis"){s.data[j][0]=idx}else{s.data[j][1]=idx}}}if(this.groups>1&&!this._grouped){var l=labels.length;var skip=parseInt(l/this.groups,10);var count=0;for(var i=skip;i<l;i+=skip+1){labels[i]=" "}this._grouped=true}max=numcats+.5;if(this.numberTicks==null){this.numberTicks=2*numcats+1}var range=max-min;this.min=min;this.max=max;var track=0;var maxVisibleTicks=parseInt(3+dim/10,10);var skip=parseInt(numcats/maxVisibleTicks,10);if(this.tickInterval==null){this.tickInterval=range/(this.numberTicks-1)}for(var i=0;i<this.numberTicks;i++){tt=this.min+i*this.tickInterval;var t=new this.tickRenderer(this.tickOptions);if(i/2==parseInt(i/2,10)){t.showLabel=false;t.showMark=true}else{if(skip>0&&track<skip){t.showLabel=false;track+=1}else{t.showLabel=true;track=0}t.label=t.formatter(t.formatString,labels[(i-1)/2]);t.showMark=false;t.showGridline=false}t.setTick(tt,this.name);this._ticks.push(t)}}};$.jqplot.CategoryAxisRenderer.prototype.draw=function(ctx,plot){if(this.show){this.renderer.createTicks.call(this);var dim=0;var temp;if(this._elem){this._elem.emptyForce()}this._elem=this._elem||$('<div class="jqplot-axis jqplot-'+this.name+'" style="position:absolute;"></div>');if(this.name=="xaxis"||this.name=="x2axis"){this._elem.width(this._plotDimensions.width)}else{this._elem.height(this._plotDimensions.height)}this.labelOptions.axis=this.name;this._label=new this.labelRenderer(this.labelOptions);if(this._label.show){var elem=this._label.draw(ctx,plot);elem.appendTo(this._elem)}var t=this._ticks;for(var i=0;i<t.length;i++){var tick=t[i];if(tick.showLabel&&(!tick.isMinorTick||this.showMinorTicks)){var elem=tick.draw(ctx,plot);elem.appendTo(this._elem)}}this._groupLabels=[];for(var i=0;i<this.groupLabels.length;i++){var elem=$('<div style="position:absolute;" class="jqplot-'+this.name+'-groupLabel"></div>');elem.html(this.groupLabels[i]);this._groupLabels.push(elem);elem.appendTo(this._elem)}}return this._elem};$.jqplot.CategoryAxisRenderer.prototype.set=function(){var dim=0;var temp;var w=0;var h=0;var lshow=this._label==null?false:this._label.show;if(this.show){var t=this._ticks;for(var i=0;i<t.length;i++){var tick=t[i];if(tick.showLabel&&(!tick.isMinorTick||this.showMinorTicks)){if(this.name=="xaxis"||this.name=="x2axis"){temp=tick._elem.outerHeight(true)}else{temp=tick._elem.outerWidth(true)}if(temp>dim){dim=temp}}}var dim2=0;for(var i=0;i<this._groupLabels.length;i++){var l=this._groupLabels[i];if(this.name=="xaxis"||this.name=="x2axis"){temp=l.outerHeight(true)}else{temp=l.outerWidth(true)}if(temp>dim2){dim2=temp}}if(lshow){w=this._label._elem.outerWidth(true);h=this._label._elem.outerHeight(true)}if(this.name=="xaxis"){dim+=dim2+h;this._elem.css({height:dim+"px",left:"0px",bottom:"0px"})}else if(this.name=="x2axis"){dim+=dim2+h;this._elem.css({height:dim+"px",left:"0px",top:"0px"})}else if(this.name=="yaxis"){dim+=dim2+w;this._elem.css({width:dim+"px",left:"0px",top:"0px"});if(lshow&&this._label.constructor==$.jqplot.AxisLabelRenderer){this._label._elem.css("width",w+"px")}}else{dim+=dim2+w;this._elem.css({width:dim+"px",right:"0px",top:"0px"});if(lshow&&this._label.constructor==$.jqplot.AxisLabelRenderer){this._label._elem.css("width",w+"px")}}}};$.jqplot.CategoryAxisRenderer.prototype.pack=function(pos,offsets){var ticks=this._ticks;var max=this.max;var min=this.min;var offmax=offsets.max;var offmin=offsets.min;var lshow=this._label==null?false:this._label.show;var i;for(var p in pos){this._elem.css(p,pos[p])}this._offsets=offsets;var pixellength=offmax-offmin;var unitlength=max-min;if(!this.reverse){this.u2p=function(u){return(u-min)*pixellength/unitlength+offmin};this.p2u=function(p){return(p-offmin)*unitlength/pixellength+min};if(this.name=="xaxis"||this.name=="x2axis"){this.series_u2p=function(u){return(u-min)*pixellength/unitlength};this.series_p2u=function(p){return p*unitlength/pixellength+min}}else{this.series_u2p=function(u){return(u-max)*pixellength/unitlength};this.series_p2u=function(p){return p*unitlength/pixellength+max}}}else{this.u2p=function(u){return offmin+(max-u)*pixellength/unitlength};this.p2u=function(p){return min+(p-offmin)*unitlength/pixellength};if(this.name=="xaxis"||this.name=="x2axis"){this.series_u2p=function(u){return(max-u)*pixellength/unitlength};this.series_p2u=function(p){return p*unitlength/pixellength+max}}else{this.series_u2p=function(u){return(min-u)*pixellength/unitlength};this.series_p2u=function(p){return p*unitlength/pixellength+min}}}if(this.show){if(this.name=="xaxis"||this.name=="x2axis"){for(i=0;i<ticks.length;i++){var t=ticks[i];if(t.show&&t.showLabel){var shim;if(t.constructor==$.jqplot.CanvasAxisTickRenderer&&t.angle){var temp=this.name=="xaxis"?1:-1;switch(t.labelPosition){case"auto":if(temp*t.angle<0){shim=-t.getWidth()+t._textRenderer.height*Math.sin(-t._textRenderer.angle)/2}else{shim=-t._textRenderer.height*Math.sin(t._textRenderer.angle)/2}break;case"end":shim=-t.getWidth()+t._textRenderer.height*Math.sin(-t._textRenderer.angle)/2;break;case"start":shim=-t._textRenderer.height*Math.sin(t._textRenderer.angle)/2;break;case"middle":shim=-t.getWidth()/2+t._textRenderer.height*Math.sin(-t._textRenderer.angle)/2;break;default:shim=-t.getWidth()/2+t._textRenderer.height*Math.sin(-t._textRenderer.angle)/2;break}}else{shim=-t.getWidth()/2}var val=this.u2p(t.value)+shim+"px";t._elem.css("left",val);t.pack()}}var labeledge=["bottom",0];if(lshow){var w=this._label._elem.outerWidth(true);this._label._elem.css("left",offmin+pixellength/2-w/2+"px");if(this.name=="xaxis"){this._label._elem.css("bottom","0px")
;labeledge=["bottom",this._label._elem.outerHeight(true)]}else{this._label._elem.css("top","0px");labeledge=["top",this._label._elem.outerHeight(true)]}this._label.pack()}var step=parseInt(this._ticks.length/this.groups,10);for(i=0;i<this._groupLabels.length;i++){var mid=0;var count=0;for(var j=i*step;j<=(i+1)*step;j++){if(this._ticks[j]._elem&&this._ticks[j].label!=" "){var t=this._ticks[j]._elem;var p=t.position();mid+=p.left+t.outerWidth(true)/2;count++}}mid=mid/count;this._groupLabels[i].css({left:mid-this._groupLabels[i].outerWidth(true)/2});this._groupLabels[i].css(labeledge[0],labeledge[1])}}else{for(i=0;i<ticks.length;i++){var t=ticks[i];if(t.show&&t.showLabel){var shim;if(t.constructor==$.jqplot.CanvasAxisTickRenderer&&t.angle){var temp=this.name=="yaxis"?1:-1;switch(t.labelPosition){case"auto":case"end":if(temp*t.angle<0){shim=-t._textRenderer.height*Math.cos(-t._textRenderer.angle)/2}else{shim=-t.getHeight()+t._textRenderer.height*Math.cos(t._textRenderer.angle)/2}break;case"start":if(t.angle>0){shim=-t._textRenderer.height*Math.cos(-t._textRenderer.angle)/2}else{shim=-t.getHeight()+t._textRenderer.height*Math.cos(t._textRenderer.angle)/2}break;case"middle":shim=-t.getHeight()/2;break;default:shim=-t.getHeight()/2;break}}else{shim=-t.getHeight()/2}var val=this.u2p(t.value)+shim+"px";t._elem.css("top",val);t.pack()}}var labeledge=["left",0];if(lshow){var h=this._label._elem.outerHeight(true);this._label._elem.css("top",offmax-pixellength/2-h/2+"px");if(this.name=="yaxis"){this._label._elem.css("left","0px");labeledge=["left",this._label._elem.outerWidth(true)]}else{this._label._elem.css("right","0px");labeledge=["right",this._label._elem.outerWidth(true)]}this._label.pack()}var step=parseInt(this._ticks.length/this.groups,10);for(i=0;i<this._groupLabels.length;i++){var mid=0;var count=0;for(var j=i*step;j<=(i+1)*step;j++){if(this._ticks[j]._elem&&this._ticks[j].label!=" "){var t=this._ticks[j]._elem;var p=t.position();mid+=p.top+t.outerHeight()/2;count++}}mid=mid/count;this._groupLabels[i].css({top:mid-this._groupLabels[i].outerHeight()/2});this._groupLabels[i].css(labeledge[0],labeledge[1])}}}}})(jQuery);(function($){$.jqplot.PieRenderer=function(){$.jqplot.LineRenderer.call(this)};$.jqplot.PieRenderer.prototype=new $.jqplot.LineRenderer;$.jqplot.PieRenderer.prototype.constructor=$.jqplot.PieRenderer;$.jqplot.PieRenderer.prototype.init=function(options,plot){this.diameter=null;this.padding=20;this.sliceMargin=0;this.fill=true;this.shadowOffset=2;this.shadowAlpha=.07;this.shadowDepth=5;this.highlightMouseOver=true;this.highlightMouseDown=false;this.highlightColors=[];this.dataLabels="percent";this.showDataLabels=false;this.dataLabelFormatString=null;this.dataLabelThreshold=3;this.dataLabelPositionFactor=.52;this.dataLabelNudge=2;this.dataLabelCenterOn=true;this.startAngle=0;this.tickRenderer=$.jqplot.PieTickRenderer;this._drawData=true;this._type="pie";this.sumDataLabels=null;if(options.highlightMouseDown&&options.highlightMouseOver==null){options.highlightMouseOver=false}$.extend(true,this,options);if(this.sliceMargin<0){this.sliceMargin=0}this._diameter=null;this._radius=null;this._sliceAngles=[];this._highlightedPoint=null;if(this.highlightColors.length==0){for(var i=0;i<this.seriesColors.length;i++){var rgba=$.jqplot.getColorComponents(this.seriesColors[i]);var newrgb=[rgba[0],rgba[1],rgba[2]];var sum=newrgb[0]+newrgb[1]+newrgb[2];for(var j=0;j<3;j++){newrgb[j]=sum>570?newrgb[j]*.8:newrgb[j]+.3*(255-newrgb[j]);newrgb[j]=parseInt(newrgb[j],10)}this.highlightColors.push("rgb("+newrgb[0]+","+newrgb[1]+","+newrgb[2]+")")}}this.highlightColorGenerator=new $.jqplot.ColorGenerator(this.highlightColors);plot.postParseOptionsHooks.addOnce(postParseOptions);plot.postInitHooks.addOnce(postInit);plot.eventListenerHooks.addOnce("jqplotMouseMove",handleMove);plot.eventListenerHooks.addOnce("jqplotMouseDown",handleMouseDown);plot.eventListenerHooks.addOnce("jqplotMouseUp",handleMouseUp);plot.eventListenerHooks.addOnce("jqplotClick",handleClick);plot.eventListenerHooks.addOnce("jqplotRightClick",handleRightClick);plot.postDrawHooks.addOnce(postPlotDraw)};$.jqplot.PieRenderer.prototype.setGridData=function(plot){var stack=[];var td=[];var sa=this.startAngle/180*Math.PI;var tot=0;this._drawData=false;for(var i=0;i<this.data.length;i++){if(this.data[i][1]!=0){this._drawData=true}stack.push(this.data[i][1]);td.push([this.data[i][0]]);if(i>0){stack[i]+=stack[i-1]}tot+=this.data[i][1]}var fact=Math.PI*2/stack[stack.length-1];for(var i=0;i<stack.length;i++){td[i][1]=stack[i]*fact;td[i][2]=this.data[i][1]/tot}this.gridData=td};$.jqplot.PieRenderer.prototype.makeGridData=function(data,plot){var stack=[];var td=[];var tot=0;var sa=this.startAngle/180*Math.PI;this._drawData=false;for(var i=0;i<data.length;i++){if(this.data[i][1]!=0){this._drawData=true}stack.push(data[i][1]);td.push([data[i][0]]);if(i>0){stack[i]+=stack[i-1]}tot+=data[i][1]}var fact=Math.PI*2/stack[stack.length-1];for(var i=0;i<stack.length;i++){td[i][1]=stack[i]*fact;td[i][2]=data[i][1]/tot}return td};function calcRadiusAdjustment(ang){return Math.sin((ang-(ang-Math.PI)/8/Math.PI)/2)}function calcRPrime(ang1,ang2,sliceMargin,fill,lineWidth){var rprime=0;var ang=ang2-ang1;var absang=Math.abs(ang);var sm=sliceMargin;if(fill==false){sm+=lineWidth}if(sm>0&&absang>.01&&absang<6.282){rprime=parseFloat(sm)/2/calcRadiusAdjustment(ang)}return rprime}$.jqplot.PieRenderer.prototype.drawSlice=function(ctx,ang1,ang2,color,isShadow){if(this._drawData){var r=this._radius;var fill=this.fill;var lineWidth=this.lineWidth;var sm=this.sliceMargin;if(this.fill==false){sm+=this.lineWidth}ctx.save();ctx.translate(this._center[0],this._center[1]);var rprime=calcRPrime(ang1,ang2,this.sliceMargin,this.fill,this.lineWidth);var transx=rprime*Math.cos((ang1+ang2)/2);var transy=rprime*Math.sin((ang1+ang2)/2);if(ang2-ang1<=Math.PI){r-=rprime}else{r+=rprime}ctx.translate(transx,transy);if(isShadow){for(var i=0,l=this.shadowDepth;i<l;i++){ctx.save();ctx.translate(this.shadowOffset*Math.cos(this.shadowAngle/180*Math.PI),this.shadowOffset*Math.sin(this.shadowAngle/180*Math.PI));doDraw(r)}for(var i=0,l=this.shadowDepth;i<l;i++){ctx.restore()}}else{doDraw(r)}ctx.restore()}function doDraw(rad){if(ang2>6.282+this.startAngle){ang2=6.282+this.startAngle;if(ang1>ang2){ang1=6.281+this.startAngle}}if(ang1>=ang2){return}ctx.beginPath();ctx.fillStyle=color;ctx.strokeStyle=color;ctx.lineWidth=lineWidth;ctx.arc(0,0,rad,ang1,ang2,false);ctx.lineTo(0,0);ctx.closePath();if(fill){ctx.fill()}else{ctx.stroke()}}};$.jqplot.PieRenderer.prototype.draw=function(ctx,gd,options,plot){var i;var opts=options!=undefined?options:{};var offx=0;var offy=0;var trans=1;var colorGenerator=new $.jqplot.ColorGenerator(this.seriesColors);if(options.legendInfo&&options.legendInfo.placement=="insideGrid"){var li=options.legendInfo;switch(li.location){case"nw":offx=li.width+li.xoffset;break;case"w":offx=li.width+li.xoffset;break;case"sw":offx=li.width+li.xoffset;break;case"ne":offx=li.width+li.xoffset;trans=-1;break;case"e":offx=li.width+li.xoffset;trans=-1;break;case"se":offx=li.width+li.xoffset;trans=-1;break;case"n":offy=li.height+li.yoffset;break;case"s":offy=li.height+li.yoffset;trans=-1;break;default:break}}var shadow=opts.shadow!=undefined?opts.shadow:this.shadow;var fill=opts.fill!=undefined?opts.fill:this.fill;var cw=ctx.canvas.width;var ch=ctx.canvas.height;var w=cw-offx-2*this.padding;var h=ch-offy-2*this.padding;var mindim=Math.min(w,h);var d=mindim;this._sliceAngles=[];var sm=this.sliceMargin;if(this.fill==false){sm+=this.lineWidth}var rprime;var maxrprime=0;var ang,ang1,ang2,shadowColor;var sa=this.startAngle/180*Math.PI;for(var i=0,l=gd.length;i<l;i++){ang1=i==0?sa:gd[i-1][1]+sa;ang2=gd[i][1]+sa;this._sliceAngles.push([ang1,ang2]);rprime=calcRPrime(ang1,ang2,this.sliceMargin,this.fill,this.lineWidth);if(Math.abs(ang2-ang1)>Math.PI){maxrprime=Math.max(rprime,maxrprime)}}if(this.diameter!=null&&this.diameter>0){this._diameter=this.diameter-2*maxrprime}else{this._diameter=d-2*maxrprime}if(this._diameter<6){$.jqplot.log("Diameter of pie too small, not rendering.");return}var r=this._radius=this._diameter/2;this._center=[(cw-trans*offx)/2+trans*offx+maxrprime*Math.cos(sa),(ch-trans*offy)/2+trans*offy+maxrprime*Math.sin(sa)];if(this.shadow){for(var i=0,l=gd.length;i<l;i++){shadowColor="rgba(0,0,0,"+this.shadowAlpha+")";this.renderer.drawSlice.call(this,ctx,this._sliceAngles[i][0],this._sliceAngles[i][1],shadowColor,true)}}for(var i=0;i<gd.length;i++){this.renderer.drawSlice.call(this,ctx,this._sliceAngles[i][0],this._sliceAngles[i][1],colorGenerator.next(),false);if(this.showDataLabels&&gd[i][2]*100>=this.dataLabelThreshold){var fstr,avgang=(this._sliceAngles[i][0]+this._sliceAngles[i][1])/2,label;if(this.dataLabels=="label"){fstr=this.dataLabelFormatString||"%s";label=$.jqplot.sprintf(fstr,gd[i][0])}else if(this.dataLabels=="value"){fstr=this.dataLabelFormatString||"%d";label=$.jqplot.sprintf(fstr,this.data[i][1])}else if(this.dataLabels=="percent"){fstr=this.dataLabelFormatString||"%d%%";label=$.jqplot.sprintf(fstr,gd[i][2]*100)}else if(this.dataLabels.constructor==Array){fstr=this.dataLabelFormatString||"%s";label=$.jqplot.sprintf(fstr,this.dataLabels[i])}var sum_data_label="";if(this.sumDataLabels){sum_data_label=this.sumDataLabels[i]+"<br />"}var fact=this._radius*this.dataLabelPositionFactor+this.sliceMargin+this.dataLabelNudge;var x=this._center[0]+Math.cos(avgang)*fact+this.canvas._offsets.left;var y=this._center[1]+Math.sin(avgang)*fact+this.canvas._offsets.top;var labelelem=$('<div class="jqplot-pie-series jqplot-data-label" style="position:absolute;">'+sum_data_label+label+"</div>").insertBefore(plot.eventCanvas._elem);if(this.dataLabelCenterOn){x-=labelelem.width()/2;y-=labelelem.height()/2}else{x-=labelelem.width()*Math.sin(avgang/2);y-=labelelem.height()/2}x=Math.round(x);y=Math.round(y);labelelem.css({left:x,top:y})}}};$.jqplot.PieAxisRenderer=function(){$.jqplot.LinearAxisRenderer.call(this)};$.jqplot.PieAxisRenderer.prototype=new $.jqplot.LinearAxisRenderer;$.jqplot.PieAxisRenderer.prototype.constructor=$.jqplot.PieAxisRenderer;$.jqplot.PieAxisRenderer.prototype.init=function(options){this.tickRenderer=$.jqplot.PieTickRenderer;$.extend(true,this,options);this._dataBounds={min:0,max:100};this.min=0;this.max=100;this.showTicks=false;this.ticks=[];this.showMark=false;this.show=false};$.jqplot.PieLegendRenderer=function(){$.jqplot.TableLegendRenderer.call(this)};$.jqplot.PieLegendRenderer.prototype=new $.jqplot.TableLegendRenderer;$.jqplot.PieLegendRenderer.prototype.constructor=$.jqplot.PieLegendRenderer;$.jqplot.PieLegendRenderer.prototype.init=function(options){this.numberRows=null;this.numberColumns=null;$.extend(true,this,options)};$.jqplot.PieLegendRenderer.prototype.draw=function(){var legend=this;if(this.show){var series=this._series;this._elem=$(document.createElement("table"));this._elem.addClass("jqplot-table-legend");var ss={position:"absolute"};if(this.background){ss["background"]=this.background}if(this.border){ss["border"]=this.border}if(this.fontSize){ss["fontSize"]=this.fontSize}if(this.fontFamily){ss["fontFamily"]=this.fontFamily}if(this.textColor){ss["textColor"]=this.textColor}if(this.marginTop!=null){ss["marginTop"]=this.marginTop}if(this.marginBottom!=null){ss["marginBottom"]=this.marginBottom}if(this.marginLeft!=null){ss["marginLeft"]=this.marginLeft}if(this.marginRight!=null){ss["marginRight"]=this.marginRight}this._elem.css(ss);var pad=false,reverse=false,nr,nc;var s=series[0];var colorGenerator=new $.jqplot.ColorGenerator(s.seriesColors);if(s.show){var pd=s.data;if(this.numberRows){nr=this.numberRows;if(!this.numberColumns){nc=Math.ceil(pd.length/nr)}else{nc=this.numberColumns}}else if(this.numberColumns){nc=this.numberColumns;nr=Math.ceil(pd.length/this.numberColumns)}else{nr=pd.length;nc=1}var i,j;var tr,td1,td2;var lt,rs,color;var idx=0;var div0,div1;for(i=0;i<nr;i++){tr=$(document.createElement("tr"));tr.addClass("jqplot-table-legend");if(reverse){tr.prependTo(this._elem)}else{tr.appendTo(this._elem)}for(j=0;j<nc;j++){if(idx<pd.length){lt=this.labels[idx]||pd[idx][0].toString();color=colorGenerator.next();if(!reverse){if(i>0){pad=true}else{pad=false}}else{if(i==nr-1){pad=false}else{pad=true}}rs=pad?this.rowSpacing:"0";td1=$(document.createElement("td"));td1.addClass("jqplot-table-legend jqplot-table-legend-swatch");td1.css({textAlign:"center",paddingTop:rs});div0=$(document.createElement("div"));div0.addClass("jqplot-table-legend-swatch-outline");div1=$(document.createElement("div"));div1.addClass("jqplot-table-legend-swatch");div1.css({backgroundColor:color,borderColor:color});td1.append(div0.append(div1));td2=$(document.createElement("td"));td2.addClass("jqplot-table-legend jqplot-table-legend-label");td2.css("paddingTop",rs);if(this.escapeHtml){td2.text(lt)}else{td2.html(lt)}if(reverse){td2.prependTo(tr);td1.prependTo(tr)}else{td1.appendTo(tr);td2.appendTo(tr)}pad=true}idx++}}}}return this._elem};$.jqplot.PieRenderer.prototype.handleMove=function(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];plot.target.trigger("jqplotDataMouseOver",ins);if(plot.series[ins[0]].highlightMouseOver&&!(ins[0]==plot.plugins.pieRenderer.highlightedSeriesIndex&&ins[1]==plot.series[ins[0]]._highlightedPoint)){plot.target.trigger("jqplotDataHighlight",ins);highlight(plot,ins[0],ins[1])}}else if(neighbor==null){unhighlight(plot)}};function preInit(target,data,options){options=options||{};options.axesDefaults=options.axesDefaults||{};options.legend=options.legend||{};options.seriesDefaults=options.seriesDefaults||{};var setopts=false;if(options.seriesDefaults.renderer==$.jqplot.PieRenderer){setopts=true}else if(options.series){for(var i=0;i<options.series.length;i++){if(options.series[i].renderer==$.jqplot.PieRenderer){setopts=true}}}if(setopts){options.axesDefaults.renderer=$.jqplot.PieAxisRenderer;options.legend.renderer=$.jqplot.PieLegendRenderer;options.legend.preDraw=true;options.seriesDefaults.pointLabels={show:false}}}function postInit(target,data,options){for(var i=0;i<this.series.length;i++){if(this.series[i].renderer.constructor==$.jqplot.PieRenderer){if(this.series[i].highlightMouseOver){this.series[i].highlightMouseDown=false}}}}function postParseOptions(options){for(var i=0;i<this.series.length;i++){this.series[i].seriesColors=this.seriesColors;this.series[i].colorGenerator=$.jqplot.colorGenerator}}function highlight(plot,sidx,pidx){var s=plot.series[sidx];var canvas=plot.plugins.pieRenderer.highlightCanvas;canvas._ctx.clearRect(0,0,canvas._ctx.canvas.width,canvas._ctx.canvas.height);s._highlightedPoint=pidx;plot.plugins.pieRenderer.highlightedSeriesIndex=sidx;s.renderer.drawSlice.call(s,canvas._ctx,s._sliceAngles[pidx][0],s._sliceAngles[pidx][1],s.highlightColorGenerator.get(pidx),false)}function unhighlight(plot){var canvas=plot.plugins.pieRenderer.highlightCanvas;canvas._ctx.clearRect(0,0,canvas._ctx.canvas.width,canvas._ctx.canvas.height);for(var i=0;i<plot.series.length;i++){plot.series[i]._highlightedPoint=null}plot.plugins.pieRenderer.highlightedSeriesIndex=null;plot.target.trigger("jqplotDataUnhighlight")}function handleMove(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];var evt1=jQuery.Event("jqplotDataMouseOver");evt1.pageX=ev.pageX;evt1.pageY=ev.pageY;plot.target.trigger(evt1,ins);if(plot.series[ins[0]].highlightMouseOver&&!(ins[0]==plot.plugins.pieRenderer.highlightedSeriesIndex&&ins[1]==plot.series[ins[0]]._highlightedPoint)){var evt=jQuery.Event("jqplotDataHighlight");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins);highlight(plot,ins[0],ins[1])}}else if(neighbor==null){unhighlight(plot)}}function handleMouseDown(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];if(plot.series[ins[0]].highlightMouseDown&&!(ins[0]==plot.plugins.pieRenderer.highlightedSeriesIndex&&ins[1]==plot.series[ins[0]]._highlightedPoint)){var evt=jQuery.Event("jqplotDataHighlight");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins);highlight(plot,ins[0],ins[1])}}else if(neighbor==null){unhighlight(plot)}}function handleMouseUp(ev,gridpos,datapos,neighbor,plot){var idx=plot.plugins.pieRenderer.highlightedSeriesIndex;if(idx!=null&&plot.series[idx].highlightMouseDown){unhighlight(plot)}}function handleClick(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];var evt=jQuery.Event("jqplotDataClick");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins)}}function handleRightClick(ev,gridpos,datapos,neighbor,plot){if(neighbor){var ins=[neighbor.seriesIndex,neighbor.pointIndex,neighbor.data];var idx=plot.plugins.pieRenderer.highlightedSeriesIndex;if(idx!=null&&plot.series[idx].highlightMouseDown){unhighlight(plot)}var evt=jQuery.Event("jqplotDataRightClick");evt.which=ev.which;evt.pageX=ev.pageX;evt.pageY=ev.pageY;plot.target.trigger(evt,ins)}}function postPlotDraw(){if(this.plugins.pieRenderer&&this.plugins.pieRenderer.highlightCanvas){this.plugins.pieRenderer.highlightCanvas.resetCanvas();this.plugins.pieRenderer.highlightCanvas=null}this.plugins.pieRenderer={highlightedSeriesIndex:null};this.plugins.pieRenderer.highlightCanvas=new $.jqplot.GenericCanvas;var labels=$(this.targetId+" .jqplot-data-label");if(labels.length){$(labels[0]).before(this.plugins.pieRenderer.highlightCanvas.createElement(this._gridPadding,"jqplot-pieRenderer-highlight-canvas",this._plotDimensions,this))}else{this.eventCanvas._elem.before(this.plugins.pieRenderer.highlightCanvas.createElement(this._gridPadding,"jqplot-pieRenderer-highlight-canvas",this._plotDimensions,this))}var hctx=this.plugins.pieRenderer.highlightCanvas.setContext();this.eventCanvas._elem.bind("mouseleave",{plot:this},function(ev){unhighlight(ev.data.plot)})}$.jqplot.preInitHooks.push(preInit);$.jqplot.PieTickRenderer=function(){$.jqplot.AxisTickRenderer.call(this)};$.jqplot.PieTickRenderer.prototype=new $.jqplot.AxisTickRenderer;$.jqplot.PieTickRenderer.prototype.constructor=$.jqplot.PieTickRenderer})(jQuery);"use strict";(function(){if(jQuery&&jQuery.jstree){return}var is_ie6=false,is_ie7=false,is_ff2=false;(function($){$.vakata={};$.vakata.css={get_css:function(rule_name,delete_flag,sheet){rule_name=rule_name.toLowerCase();var css_rules=sheet.cssRules||sheet.rules,j=0;do{if(css_rules.length&&j>css_rules.length+5){return false}if(css_rules[j].selectorText&&css_rules[j].selectorText.toLowerCase()==rule_name){if(delete_flag===true){if(sheet.removeRule){sheet.removeRule(j)}if(sheet.deleteRule){sheet.deleteRule(j)}return true}else{return css_rules[j]}}}while(css_rules[++j]);return false},add_css:function(rule_name,sheet){if($.jstree.css.get_css(rule_name,false,sheet)){return false}if(sheet.insertRule){sheet.insertRule(rule_name+" { }",0)}else{sheet.addRule(rule_name,null,0)}return $.vakata.css.get_css(rule_name)},remove_css:function(rule_name,sheet){return $.vakata.css.get_css(rule_name,true,sheet)},add_sheet:function(opts){var tmp=false,is_new=true;if(opts.str){if(opts.title){tmp=$("style[id='"+opts.title+"-stylesheet']")[0]}if(tmp){is_new=false}else{tmp=document.createElement("style");tmp.setAttribute("type","text/css");if(opts.title){tmp.setAttribute("id",opts.title+"-stylesheet")}}if(tmp.styleSheet){if(is_new){document.getElementsByTagName("head")[0].appendChild(tmp);tmp.styleSheet.cssText=opts.str}else{tmp.styleSheet.cssText=tmp.styleSheet.cssText+" "+opts.str}}else{tmp.appendChild(document.createTextNode(opts.str));document.getElementsByTagName("head")[0].appendChild(tmp)}return tmp.sheet||tmp.styleSheet}if(opts.url){if(document.createStyleSheet){try{tmp=document.createStyleSheet(opts.url)}catch(e){}}else{tmp=document.createElement("link");tmp.rel="stylesheet";tmp.type="text/css";tmp.media="all";tmp.href=opts.url;document.getElementsByTagName("head")[0].appendChild(tmp);return tmp.styleSheet}}}};var instances=[],focused_instance=-1,plugins={},prepared_move={};$.fn.jstree=function(settings){var isMethodCall=typeof settings=="string",args=Array.prototype.slice.call(arguments,1),returnValue=this;if(isMethodCall){if(settings.substring(0,1)=="_"){return returnValue}this.each(function(){var instance=instances[$.data(this,"jstree_instance_id")],methodValue=instance&&$.isFunction(instance[settings])?instance[settings].apply(instance,args):instance;if(typeof methodValue!=="undefined"&&(settings.indexOf("is_")===0||methodValue!==true&&methodValue!==false)){returnValue=methodValue;return false}})}else{this.each(function(){var instance_id=$.data(this,"jstree_instance_id"),a=[],b=settings?$.extend({},true,settings):{},c=$(this),s=false,t=[];a=a.concat(args);if(c.data("jstree")){a.push(c.data("jstree"))}b=a.length?$.extend.apply(null,[true,b].concat(a)):b;if(typeof instance_id!=="undefined"&&instances[instance_id]){instances[instance_id].destroy()}instance_id=parseInt(instances.push({}),10)-1;$.data(this,"jstree_instance_id",instance_id);b.plugins=$.isArray(b.plugins)?b.plugins:$.jstree.defaults.plugins.slice();b.plugins.unshift("core");b.plugins=b.plugins.sort().join(",,").replace(/(,|^)([^,]+)(,,\2)+(,|$)/g,"$1$2$4").replace(/,,+/g,",").replace(/,$/,"").split(",");s=$.extend(true,{},$.jstree.defaults,b);s.plugins=b.plugins;$.each(plugins,function(i,val){if($.inArray(i,s.plugins)===-1){s[i]=null;delete s[i]}else{t.push(i)}});s.plugins=t;instances[instance_id]=new $.jstree._instance(instance_id,$(this).addClass("jstree jstree-"+instance_id),s);$.each(instances[instance_id]._get_settings().plugins,function(i,val){instances[instance_id].data[val]={}});$.each(instances[instance_id]._get_settings().plugins,function(i,val){if(plugins[val]){plugins[val].__init.apply(instances[instance_id])}});setTimeout(function(){if(instances[instance_id]){instances[instance_id].init()}},0)})}return returnValue};$.jstree={defaults:{plugins:[]},_focused:function(){return instances[focused_instance]||null},_reference:function(needle){if(instances[needle]){return instances[needle]}var o=$(needle);if(!o.length&&typeof needle==="string"){o=$("#"+needle)}if(!o.length){return null}return instances[o.closest(".jstree").data("jstree_instance_id")]||null},_instance:function(index,container,settings){this.data={core:{}};this.get_settings=function(){return $.extend(true,{},settings)};this._get_settings=function(){return settings};this.get_index=function(){return index};this.get_container=function(){return container};this.get_container_ul=function(){return container.children("ul:eq(0)")};this._set_settings=function(s){settings=$.extend(true,{},settings,s)}},_fn:{},plugin:function(pname,pdata){pdata=$.extend({},{__init:$.noop,__destroy:$.noop,_fn:{},defaults:false},pdata);plugins[pname]=pdata;$.jstree.defaults[pname]=pdata.defaults;$.each(pdata._fn,function(i,val){val.plugin=pname;val.old=$.jstree._fn[i];$.jstree._fn[i]=function(){var rslt,func=val,args=Array.prototype.slice.call(arguments),evnt=new $.Event("before.jstree"),rlbk=false;if(this.data.core.locked===true&&i!=="unlock"&&i!=="is_locked"){return}do{if(func&&func.plugin&&$.inArray(func.plugin,this._get_settings().plugins)!==-1){break}func=func.old}while(func);if(!func){return}if(i.indexOf("_")===0){rslt=func.apply(this,args)}else{rslt=this.get_container().triggerHandler(evnt,{func:i,inst:this,args:args,plugin:func.plugin});if(rslt===false){return}if(typeof rslt!=="undefined"){args=rslt}rslt=func.apply($.extend({},this,{__callback:function(data){this.get_container().triggerHandler(i+".jstree",{inst:this,args:args,rslt:data,rlbk:rlbk})},__rollback:function(){rlbk=this.get_rollback();return rlbk},__call_old:function(replace_arguments){return func.old.apply(this,replace_arguments?Array.prototype.slice.call(arguments,1):args)}}),args)}return rslt};$.jstree._fn[i].old=val.old;$.jstree._fn[i].plugin=pname})},rollback:function(rb){if(rb){if(!$.isArray(rb)){rb=[rb]}$.each(rb,function(i,val){instances[val.i].set_rollback(val.h,val.d)})}}};$.jstree._fn=$.jstree._instance.prototype={};$(function(){var u=navigator.userAgent.toLowerCase(),v=(u.match(/.+?(?:rv|it|ra|ie)[\/: ]([\d.]+)/)||[0,"0"])[1],css_string=""+".jstree ul, .jstree li { display:block; margin:0 0 0 0; padding:0 0 0 0; list-style-type:none; } "+".jstree li { display:block; min-height:18px; line-height:18px; white-space:nowrap; margin-left:18px; min-width:18px; } "+".jstree-rtl li { margin-left:0; margin-right:18px; } "+".jstree > ul > li { margin-left:0px; } "+".jstree-rtl > ul > li { margin-right:0px; } "+".jstree ins { display:inline-block; text-decoration:none; width:18px; height:18px; margin:0 0 0 0; padding:0; } "+".jstree a { display:inline-block; line-height:16px; height:16px; color:black; white-space:nowrap; text-decoration:none; padding:1px 2px; margin:0; } "+".jstree a:focus { outline: none; } "+".jstree a > ins { height:16px; width:16px; } "+".jstree a > .jstree-icon { margin-right:3px; } "+".jstree-rtl a > .jstree-icon { margin-left:3px; margin-right:0; } "+"li.jstree-open > ul { display:block; } "+"li.jstree-closed > ul { display:none; } ";if(/msie/.test(u)&&parseInt(v,10)==6){is_ie6=true;try{document.execCommand("BackgroundImageCache",false,true)}catch(err){}css_string+=""+".jstree li { height:18px; margin-left:0; margin-right:0; } "+".jstree li li { margin-left:18px; } "+".jstree-rtl li li { margin-left:0px; margin-right:18px; } "+"li.jstree-open ul { display:block; } "+"li.jstree-closed ul { display:none !important; } "+".jstree li a { display:inline; border-width:0 !important; padding:0px 2px !important; } "+".jstree li a ins { height:16px; width:16px; margin-right:3px; } "+".jstree-rtl li a ins { margin-right:0px; margin-left:3px; } "}if(/msie/.test(u)&&parseInt(v,10)==7){is_ie7=true;css_string+=".jstree li a { border-width:0 !important; padding:0px 2px !important; } "}if(!/compatible/.test(u)&&/mozilla/.test(u)&&parseFloat(v,10)<1.9){is_ff2=true;css_string+=""+".jstree ins { display:-moz-inline-box; } "+".jstree li { line-height:12px; } "+".jstree a { display:-moz-inline-box; } "+".jstree .jstree-no-icons .jstree-checkbox { display:-moz-inline-stack !important; } "}$.vakata.css.add_sheet({str:css_string,title:"jstree"})});$.jstree.plugin("core",{__init:function(){this.data.core.locked=false;this.data.core.to_open=this.get_settings().core.initially_open;this.data.core.to_load=this.get_settings().core.initially_load},defaults:{html_titles:false,animation:500,initially_open:[],initially_load:[],open_parents:true,notify_plugins:true,rtl:false,load_open:false,strings:{loading:"Loading ...",new_node:"New node",multiple_selection:"Multiple selection"}},_fn:{init:function(){this.set_focus();if(this._get_settings().core.rtl){this.get_container().addClass("jstree-rtl").css("direction","rtl")}this.get_container().html("<ul><li class='jstree-last jstree-leaf'><ins>&#160;</ins><a class='jstree-loading' href='#'><ins class='jstree-icon'>&#160;</ins>"+this._get_string("loading")+"</a></li></ul>");this.data.core.li_height=this.get_container_ul().find("li.jstree-closed, li.jstree-leaf").eq(0).height()||18;this.get_container().delegate("li > ins","click.jstree",$.proxy(function(event){var trgt=$(event.target);this.toggle_node(trgt)},this)).bind("mousedown.jstree",$.proxy(function(){this.set_focus()},this)).bind("dblclick.jstree",function(event){var sel;if(document.selection&&document.selection.empty){document.selection.empty()}else{if(window.getSelection){sel=window.getSelection();try{sel.removeAllRanges();sel.collapse()}catch(err){}}}});if(this._get_settings().core.notify_plugins){this.get_container().bind("load_node.jstree",$.proxy(function(e,data){var o=this._get_node(data.rslt.obj),t=this;if(o===-1){o=this.get_container_ul()}if(!o.length){return}o.find("li").each(function(){var th=$(this);if(th.data("jstree")){$.each(th.data("jstree"),function(plugin,values){if(t.data[plugin]&&$.isFunction(t["_"+plugin+"_notify"])){t["_"+plugin+"_notify"].call(t,th,values)}})}})},this))}if(this._get_settings().core.load_open){this.get_container().bind("load_node.jstree",$.proxy(function(e,data){var o=this._get_node(data.rslt.obj),t=this;if(o===-1){o=this.get_container_ul()}if(!o.length){return}o.find("li.jstree-open:not(:has(ul))").each(function(){t.load_node(this,$.noop,$.noop)})},this))}this.__callback();this.load_node(-1,function(){this.loaded();this.reload_nodes()})},destroy:function(){var i,n=this.get_index(),s=this._get_settings(),_this=this;$.each(s.plugins,function(i,val){try{plugins[val].__destroy.apply(_this)}catch(err){}});this.__callback();if(this.is_focused()){for(i in instances){if(instances.hasOwnProperty(i)&&i!=n){instances[i].set_focus();break}}}if(n===focused_instance){focused_instance=-1}this.get_container().unbind(".jstree").undelegate(".jstree").removeData("jstree_instance_id").find("[class^='jstree']").andSelf().attr("class",function(){return this.className.replace(/jstree[^ ]*|$/gi,"")});$(document).unbind(".jstree-"+n).undelegate(".jstree-"+n);instances[n]=null;delete instances[n]},_core_notify:function(n,data){if(data.opened){this.open_node(n,false,true)}},lock:function(){this.data.core.locked=true;this.get_container().children("ul").addClass("jstree-locked").css("opacity","0.7");this.__callback({})},unlock:function(){this.data.core.locked=false;this.get_container().children("ul").removeClass("jstree-locked").css("opacity","1");this.__callback({})},is_locked:function(){return this.data.core.locked},save_opened:function(){var _this=this;this.data.core.to_open=[];this.get_container_ul().find("li.jstree-open").each(function(){if(this.id){_this.data.core.to_open.push("#"+this.id.toString().replace(/^#/,"").replace(/\\\//g,"/").replace(/\//g,"\\/").replace(/\\\./g,".").replace(/\./g,"\\.").replace(/\:/g,"\\:"))}});this.__callback(_this.data.core.to_open)},save_loaded:function(){},reload_nodes:function(is_callback){var _this=this,done=true,current=[],remaining=[];if(!is_callback){this.data.core.reopen=false;this.data.core.refreshing=true;this.data.core.to_open=$.map($.makeArray(this.data.core.to_open),function(n){return"#"+n.toString().replace(/^#/,"").replace(/\\\//g,"/").replace(/\//g,"\\/").replace(/\\\./g,".").replace(/\./g,"\\.").replace(/\:/g,"\\:")});this.data.core.to_load=$.map($.makeArray(this.data.core.to_load),function(n){return"#"+n.toString().replace(/^#/,"").replace(/\\\//g,"/").replace(/\//g,"\\/").replace(/\\\./g,".").replace(/\./g,"\\.").replace(/\:/g,"\\:")});if(this.data.core.to_open.length){this.data.core.to_load=this.data.core.to_load.concat(this.data.core.to_open)}}if(this.data.core.to_load.length){$.each(this.data.core.to_load,function(i,val){if(val=="#"){return true}if($(val).length){current.push(val)}else{remaining.push(val)}});if(current.length){this.data.core.to_load=remaining;$.each(current,function(i,val){if(!_this._is_loaded(val)){_this.load_node(val,function(){_this.reload_nodes(true)},function(){_this.reload_nodes(true)});done=false}})}}if(this.data.core.to_open.length){$.each(this.data.core.to_open,function(i,val){_this.open_node(val,false,true)})}if(done){if(this.data.core.reopen){clearTimeout(this.data.core.reopen)}this.data.core.reopen=setTimeout(function(){_this.__callback({},_this)},50);this.data.core.refreshing=false;this.reopen()}},reopen:function(){var _this=this;if(this.data.core.to_open.length){$.each(this.data.core.to_open,function(i,val){_this.open_node(val,false,true)})}this.__callback({})},refresh:function(obj){var _this=this;this.save_opened();if(!obj){obj=-1}obj=this._get_node(obj);if(!obj){obj=-1}if(obj!==-1){obj.children("UL").remove()}else{this.get_container_ul().empty()}this.load_node(obj,function(){_this.__callback({obj:obj});_this.reload_nodes()})},loaded:function(){this.__callback()},set_focus:function(){if(this.is_focused()){return}var f=$.jstree._focused();if(f){f.unset_focus()}this.get_container().addClass("jstree-focused");focused_instance=this.get_index()
;this.__callback()},is_focused:function(){return focused_instance==this.get_index()},unset_focus:function(){if(this.is_focused()){this.get_container().removeClass("jstree-focused");focused_instance=-1}this.__callback()},_get_node:function(obj){var $obj=$(obj,this.get_container());if($obj.is(".jstree")||obj==-1){return-1}$obj=$obj.closest("li",this.get_container());return $obj.length?$obj:false},_get_next:function(obj,strict){obj=this._get_node(obj);if(obj===-1){return this.get_container().find("> ul > li:first-child")}if(!obj.length){return false}if(strict){return obj.nextAll("li").size()>0?obj.nextAll("li:eq(0)"):false}if(obj.hasClass("jstree-open")){return obj.find("li:eq(0)")}else if(obj.nextAll("li").size()>0){return obj.nextAll("li:eq(0)")}else{return obj.parentsUntil(".jstree","li").next("li").eq(0)}},_get_prev:function(obj,strict){obj=this._get_node(obj);if(obj===-1){return this.get_container().find("> ul > li:last-child")}if(!obj.length){return false}if(strict){return obj.prevAll("li").length>0?obj.prevAll("li:eq(0)"):false}if(obj.prev("li").length){obj=obj.prev("li").eq(0);while(obj.hasClass("jstree-open")){obj=obj.children("ul:eq(0)").children("li:last")}return obj}else{var o=obj.parentsUntil(".jstree","li:eq(0)");return o.length?o:false}},_get_parent:function(obj){obj=this._get_node(obj);if(obj==-1||!obj.length){return false}var o=obj.parentsUntil(".jstree","li:eq(0)");return o.length?o:-1},_get_children:function(obj){obj=this._get_node(obj);if(obj===-1){return this.get_container().children("ul:eq(0)").children("li")}if(!obj.length){return false}return obj.children("ul:eq(0)").children("li")},get_path:function(obj,id_mode){var p=[],_this=this;obj=this._get_node(obj);if(obj===-1||!obj||!obj.length){return false}obj.parentsUntil(".jstree","li").each(function(){p.push(id_mode?this.id:_this.get_text(this))});p.reverse();p.push(id_mode?obj.attr("id"):this.get_text(obj));return p},_get_string:function(key){return this._get_settings().core.strings[key]||key},is_open:function(obj){obj=this._get_node(obj);return obj&&obj!==-1&&obj.hasClass("jstree-open")},is_closed:function(obj){obj=this._get_node(obj);return obj&&obj!==-1&&obj.hasClass("jstree-closed")},is_leaf:function(obj){obj=this._get_node(obj);return obj&&obj!==-1&&obj.hasClass("jstree-leaf")},correct_state:function(obj){obj=this._get_node(obj);if(!obj||obj===-1){return false}obj.removeClass("jstree-closed jstree-open").addClass("jstree-leaf").children("ul").remove();this.__callback({obj:obj})},open_node:function(obj,callback,skip_animation){obj=this._get_node(obj);if(!obj.length){return false}if(!obj.hasClass("jstree-closed")){if(callback){callback.call()}return false}var s=skip_animation||is_ie6?0:this._get_settings().core.animation,t=this;if(!this._is_loaded(obj)){obj.children("a").addClass("jstree-loading");this.load_node(obj,function(){t.open_node(obj,callback,skip_animation)},callback)}else{if(this._get_settings().core.open_parents){obj.parentsUntil(".jstree",".jstree-closed").each(function(){t.open_node(this,false,true)})}if(s){obj.children("ul").css("display","none")}obj.removeClass("jstree-closed").addClass("jstree-open").children("a").removeClass("jstree-loading");if(s){obj.children("ul").stop(true,true).slideDown(s,function(){this.style.display="";t.after_open(obj)})}else{t.after_open(obj)}this.__callback({obj:obj});if(callback){callback.call()}}},after_open:function(obj){this.__callback({obj:obj})},close_node:function(obj,skip_animation){obj=this._get_node(obj);var s=skip_animation||is_ie6?0:this._get_settings().core.animation,t=this;if(!obj.length||!obj.hasClass("jstree-open")){return false}if(s){obj.children("ul").attr("style","display:block !important")}obj.removeClass("jstree-open").addClass("jstree-closed");if(s){obj.children("ul").stop(true,true).slideUp(s,function(){this.style.display="";t.after_close(obj)})}else{t.after_close(obj)}this.__callback({obj:obj})},after_close:function(obj){this.__callback({obj:obj})},toggle_node:function(obj){obj=this._get_node(obj);if(obj.hasClass("jstree-closed")){return this.open_node(obj)}if(obj.hasClass("jstree-open")){return this.close_node(obj)}},open_all:function(obj,do_animation,original_obj){obj=obj?this._get_node(obj):-1;if(!obj||obj===-1){obj=this.get_container_ul()}if(original_obj){obj=obj.find("li.jstree-closed")}else{original_obj=obj;if(obj.is(".jstree-closed")){obj=obj.find("li.jstree-closed").andSelf()}else{obj=obj.find("li.jstree-closed")}}var _this=this;obj.each(function(){var __this=this;if(!_this._is_loaded(this)){_this.open_node(this,function(){_this.open_all(__this,do_animation,original_obj)},!do_animation)}else{_this.open_node(this,false,!do_animation)}});if(original_obj.find("li.jstree-closed").length===0){this.__callback({obj:original_obj})}},close_all:function(obj,do_animation){var _this=this;obj=obj?this._get_node(obj):this.get_container();if(!obj||obj===-1){obj=this.get_container_ul()}obj.find("li.jstree-open").andSelf().each(function(){_this.close_node(this,!do_animation)});this.__callback({obj:obj})},clean_node:function(obj){obj=obj&&obj!=-1?$(obj):this.get_container_ul();obj=obj.is("li")?obj.find("li").andSelf():obj.find("li");obj.removeClass("jstree-last").filter("li:last-child").addClass("jstree-last").end().filter(":has(li)").not(".jstree-open").removeClass("jstree-leaf").addClass("jstree-closed");obj.not(".jstree-open, .jstree-closed").addClass("jstree-leaf").children("ul").remove();this.__callback({obj:obj})},get_rollback:function(){this.__callback();return{i:this.get_index(),h:this.get_container().children("ul").clone(true),d:this.data}},set_rollback:function(html,data){this.get_container().empty().append(html);this.data=data;this.__callback()},load_node:function(obj,s_call,e_call){this.__callback({obj:obj})},_is_loaded:function(obj){return true},create_node:function(obj,position,js,callback,is_loaded){obj=this._get_node(obj);position=typeof position==="undefined"?"last":position;var d=$("<li />"),s=this._get_settings().core,tmp;if(obj!==-1&&!obj.length){return false}if(!is_loaded&&!this._is_loaded(obj)){this.load_node(obj,function(){this.create_node(obj,position,js,callback,true)});return false}this.__rollback();if(typeof js==="string"){js={data:js}}if(!js){js={}}if(js.attr){d.attr(js.attr)}if(js.metadata){d.data(js.metadata)}if(js.state){d.addClass("jstree-"+js.state)}if(!js.data){js.data=this._get_string("new_node")}if(!$.isArray(js.data)){tmp=js.data;js.data=[];js.data.push(tmp)}$.each(js.data,function(i,m){tmp=$("<a />");if($.isFunction(m)){m=m.call(this,js)}if(typeof m=="string"){tmp.attr("href","#")[s.html_titles?"html":"text"](m)}else{if(!m.attr){m.attr={}}if(!m.attr.href){m.attr.href="#"}tmp.attr(m.attr)[s.html_titles?"html":"text"](m.title);if(m.language){tmp.addClass(m.language)}}tmp.prepend("<ins class='jstree-icon'>&#160;</ins>");if(!m.icon&&js.icon){m.icon=js.icon}if(m.icon){if(m.icon.indexOf("/")===-1){tmp.children("ins").addClass(m.icon)}else{tmp.children("ins").css("background","url('"+m.icon+"') center center no-repeat")}}d.append(tmp)});d.prepend("<ins class='jstree-icon'>&#160;</ins>");if(obj===-1){obj=this.get_container();if(position==="before"){position="first"}if(position==="after"){position="last"}}switch(position){case"before":obj.before(d);tmp=this._get_parent(obj);break;case"after":obj.after(d);tmp=this._get_parent(obj);break;case"inside":case"first":if(!obj.children("ul").length){obj.append("<ul />")}obj.children("ul").prepend(d);tmp=obj;break;case"last":if(!obj.children("ul").length){obj.append("<ul />")}obj.children("ul").append(d);tmp=obj;break;default:if(!obj.children("ul").length){obj.append("<ul />")}if(!position){position=0}tmp=obj.children("ul").children("li").eq(position);if(tmp.length){tmp.before(d)}else{obj.children("ul").append(d)}tmp=obj;break}if(tmp===-1||tmp.get(0)===this.get_container().get(0)){tmp=-1}this.clean_node(tmp);this.__callback({obj:d,parent:tmp});if(callback){callback.call(this,d)}return d},get_text:function(obj){obj=this._get_node(obj);if(!obj.length){return false}var s=this._get_settings().core.html_titles;obj=obj.children("a:eq(0)");if(s){obj=obj.clone();obj.children("INS").remove();return obj.html()}else{obj=obj.contents().filter(function(){return this.nodeType==3})[0];return obj.nodeValue}},set_text:function(obj,val){obj=this._get_node(obj);if(!obj.length){return false}obj=obj.children("a:eq(0)");if(this._get_settings().core.html_titles){var tmp=obj.children("INS").clone();obj.html(val).prepend(tmp);this.__callback({obj:obj,name:val});return true}else{obj=obj.contents().filter(function(){return this.nodeType==3})[0];this.__callback({obj:obj,name:val});return obj.nodeValue=val}},rename_node:function(obj,val){obj=this._get_node(obj);this.__rollback();if(obj&&obj.length&&this.set_text.apply(this,Array.prototype.slice.call(arguments))){this.__callback({obj:obj,name:val})}},delete_node:function(obj){obj=this._get_node(obj);if(!obj.length){return false}this.__rollback();var p=this._get_parent(obj),prev=$([]),t=this;obj.each(function(){prev=prev.add(t._get_prev(this))});obj=obj.detach();if(p!==-1&&p.find("> ul > li").length===0){p.removeClass("jstree-open jstree-closed").addClass("jstree-leaf")}this.clean_node(p);this.__callback({obj:obj,prev:prev,parent:p});return obj},prepare_move:function(o,r,pos,cb,is_cb){var p={};p.ot=$.jstree._reference(o)||this;p.o=p.ot._get_node(o);p.r=r===-1?-1:this._get_node(r);p.p=typeof pos==="undefined"||pos===false?"last":pos;if(!is_cb&&prepared_move.o&&prepared_move.o[0]===p.o[0]&&prepared_move.r[0]===p.r[0]&&prepared_move.p===p.p){this.__callback(prepared_move);if(cb){cb.call(this,prepared_move)}return}p.ot=$.jstree._reference(p.o)||this;p.rt=$.jstree._reference(p.r)||this;if(p.r===-1||!p.r){p.cr=-1;switch(p.p){case"first":case"before":case"inside":p.cp=0;break;case"after":case"last":p.cp=p.rt.get_container().find(" > ul > li").length;break;default:p.cp=p.p;break}}else{if(!/^(before|after)$/.test(p.p)&&!this._is_loaded(p.r)){return this.load_node(p.r,function(){this.prepare_move(o,r,pos,cb,true)})}switch(p.p){case"before":p.cp=p.r.index();p.cr=p.rt._get_parent(p.r);break;case"after":p.cp=p.r.index()+1;p.cr=p.rt._get_parent(p.r);break;case"inside":case"first":p.cp=0;p.cr=p.r;break;case"last":p.cp=p.r.find(" > ul > li").length;p.cr=p.r;break;default:p.cp=p.p;p.cr=p.r;break}}p.np=p.cr==-1?p.rt.get_container():p.cr;p.op=p.ot._get_parent(p.o);p.cop=p.o.index();if(p.op===-1){p.op=p.ot?p.ot.get_container():this.get_container()}if(!/^(before|after)$/.test(p.p)&&p.op&&p.np&&p.op[0]===p.np[0]&&p.o.index()<p.cp){p.cp++}p.or=p.np.find(" > ul > li:nth-child("+(p.cp+1)+")");prepared_move=p;this.__callback(prepared_move);if(cb){cb.call(this,prepared_move)}},check_move:function(){var obj=prepared_move,ret=true,r=obj.r===-1?this.get_container():obj.r;if(!obj||!obj.o||obj.or[0]===obj.o[0]){return false}if(!obj.cy){if(obj.op&&obj.np&&obj.op[0]===obj.np[0]&&obj.cp-1===obj.o.index()){return false}obj.o.each(function(){if(r.parentsUntil(".jstree","li").andSelf().index(this)!==-1){ret=false;return false}})}return ret},move_node:function(obj,ref,position,is_copy,is_prepared,skip_check){if(!is_prepared){return this.prepare_move(obj,ref,position,function(p){this.move_node(p,false,false,is_copy,true,skip_check)})}if(is_copy){prepared_move.cy=true}if(!skip_check&&!this.check_move()){return false}this.__rollback();var o=false;if(is_copy){o=obj.o.clone(true);o.find("*[id]").andSelf().each(function(){if(this.id){this.id="copy_"+this.id}})}else{o=obj.o}if(obj.or.length){obj.or.before(o)}else{if(!obj.np.children("ul").length){$("<ul />").appendTo(obj.np)}obj.np.children("ul:eq(0)").append(o)}try{obj.ot.clean_node(obj.op);obj.rt.clean_node(obj.np);if(!obj.op.find("> ul > li").length){obj.op.removeClass("jstree-open jstree-closed").addClass("jstree-leaf").children("ul").remove()}}catch(e){}if(is_copy){prepared_move.cy=true;prepared_move.oc=o}this.__callback(prepared_move);return prepared_move},_get_move:function(){return prepared_move}}})})(jQuery);(function($){var scrollbar_width,e1,e2;$(function(){if(/msie/.test(navigator.userAgent.toLowerCase())){e1=$('<textarea cols="10" rows="2"></textarea>').css({position:"absolute",top:-1e3,left:0}).appendTo("body");e2=$('<textarea cols="10" rows="2" style="overflow: hidden;"></textarea>').css({position:"absolute",top:-1e3,left:0}).appendTo("body");scrollbar_width=e1.width()-e2.width();e1.add(e2).remove()}else{e1=$("<div />").css({width:100,height:100,overflow:"auto",position:"absolute",top:-1e3,left:0}).prependTo("body").append("<div />").find("div").css({width:"100%",height:200});scrollbar_width=100-e1.width();e1.parent().remove()}});$.jstree.plugin("ui",{__init:function(){this.data.ui.selected=$();this.data.ui.last_selected=false;this.data.ui.hovered=null;this.data.ui.to_select=this.get_settings().ui.initially_select;this.get_container().delegate("a","click.jstree",$.proxy(function(event){event.preventDefault();event.currentTarget.blur();if(!$(event.currentTarget).hasClass("jstree-loading")){this.select_node(event.currentTarget,true,event)}},this)).delegate("a","mouseenter.jstree",$.proxy(function(event){if(!$(event.currentTarget).hasClass("jstree-loading")){this.hover_node(event.target)}},this)).delegate("a","mouseleave.jstree",$.proxy(function(event){if(!$(event.currentTarget).hasClass("jstree-loading")){this.dehover_node(event.target)}},this)).bind("reopen.jstree",$.proxy(function(){this.reselect()},this)).bind("get_rollback.jstree",$.proxy(function(){this.dehover_node();this.save_selected()},this)).bind("set_rollback.jstree",$.proxy(function(){this.reselect()},this)).bind("close_node.jstree",$.proxy(function(event,data){var s=this._get_settings().ui,obj=this._get_node(data.rslt.obj),clk=obj&&obj.length?obj.children("ul").find("a.jstree-clicked"):$(),_this=this;if(s.selected_parent_close===false||!clk.length){return}clk.each(function(){_this.deselect_node(this);if(s.selected_parent_close==="select_parent"){_this.select_node(obj)}})},this)).bind("delete_node.jstree",$.proxy(function(event,data){var s=this._get_settings().ui.select_prev_on_delete,obj=this._get_node(data.rslt.obj),clk=obj&&obj.length?obj.find("a.jstree-clicked"):[],_this=this;clk.each(function(){_this.deselect_node(this)});if(s&&clk.length){data.rslt.prev.each(function(){if(this.parentNode){_this.select_node(this);return false}})}},this)).bind("move_node.jstree",$.proxy(function(event,data){if(data.rslt.cy){data.rslt.oc.find("a.jstree-clicked").removeClass("jstree-clicked")}},this))},defaults:{select_limit:-1,select_multiple_modifier:"ctrl",select_range_modifier:"shift",selected_parent_close:"select_parent",selected_parent_open:true,select_prev_on_delete:true,disable_selecting_children:false,initially_select:[]},_fn:{_get_node:function(obj,allow_multiple){if(typeof obj==="undefined"||obj===null){return allow_multiple?this.data.ui.selected:this.data.ui.last_selected}var $obj=$(obj,this.get_container());if($obj.is(".jstree")||obj==-1){return-1}$obj=$obj.closest("li",this.get_container());return $obj.length?$obj:false},_ui_notify:function(n,data){if(data.selected){this.select_node(n,false)}},save_selected:function(){var _this=this;this.data.ui.to_select=[];this.data.ui.selected.each(function(){if(this.id){_this.data.ui.to_select.push("#"+this.id.toString().replace(/^#/,"").replace(/\\\//g,"/").replace(/\//g,"\\/").replace(/\\\./g,".").replace(/\./g,"\\.").replace(/\:/g,"\\:"))}});this.__callback(this.data.ui.to_select)},reselect:function(){var _this=this,s=this.data.ui.to_select;s=$.map($.makeArray(s),function(n){return"#"+n.toString().replace(/^#/,"").replace(/\\\//g,"/").replace(/\//g,"\\/").replace(/\\\./g,".").replace(/\./g,"\\.").replace(/\:/g,"\\:")});$.each(s,function(i,val){if(val&&val!=="#"){_this.select_node(val)}});this.data.ui.selected=this.data.ui.selected.filter(function(){return this.parentNode});this.__callback()},refresh:function(obj){this.save_selected();return this.__call_old()},hover_node:function(obj){obj=this._get_node(obj);if(!obj.length){return false}if(!obj.hasClass("jstree-hovered")){this.dehover_node()}this.data.ui.hovered=obj.children("a").addClass("jstree-hovered").parent();this._fix_scroll(obj);this.__callback({obj:obj})},dehover_node:function(){var obj=this.data.ui.hovered,p;if(!obj||!obj.length){return false}p=obj.children("a").removeClass("jstree-hovered").parent();if(this.data.ui.hovered[0]===p[0]){this.data.ui.hovered=null}this.__callback({obj:obj})},select_node:function(obj,check,e){obj=this._get_node(obj);if(obj==-1||!obj||!obj.length){return false}var s=this._get_settings().ui,is_multiple=s.select_multiple_modifier=="on"||s.select_multiple_modifier!==false&&e&&e[s.select_multiple_modifier+"Key"],is_range=s.select_range_modifier!==false&&e&&e[s.select_range_modifier+"Key"]&&this.data.ui.last_selected&&this.data.ui.last_selected[0]!==obj[0]&&this.data.ui.last_selected.parent()[0]===obj.parent()[0],is_selected=this.is_selected(obj),proceed=true,t=this;if(check){if(s.disable_selecting_children&&is_multiple&&(obj.parentsUntil(".jstree","li").children("a.jstree-clicked").length||obj.children("ul").find("a.jstree-clicked:eq(0)").length)){return false}proceed=false;switch(!0){case is_range:this.data.ui.last_selected.addClass("jstree-last-selected");obj=obj[obj.index()<this.data.ui.last_selected.index()?"nextUntil":"prevUntil"](".jstree-last-selected").andSelf();if(s.select_limit==-1||obj.length<s.select_limit){this.data.ui.last_selected.removeClass("jstree-last-selected");this.data.ui.selected.each(function(){if(this!==t.data.ui.last_selected[0]){t.deselect_node(this)}});is_selected=false;proceed=true}else{proceed=false}break;case is_selected&&!is_multiple:this.deselect_all();is_selected=false;proceed=true;break;case!is_selected&&!is_multiple:if(s.select_limit==-1||s.select_limit>0){this.deselect_all();proceed=true}break;case is_selected&&is_multiple:this.deselect_node(obj);break;case!is_selected&&is_multiple:if(s.select_limit==-1||this.data.ui.selected.length+1<=s.select_limit){proceed=true}break}}if(proceed&&!is_selected){if(!is_range){this.data.ui.last_selected=obj}obj.children("a").addClass("jstree-clicked");if(s.selected_parent_open){obj.parents(".jstree-closed").each(function(){t.open_node(this,false,true)})}this.data.ui.selected=this.data.ui.selected.add(obj);this._fix_scroll(obj.eq(0));this.__callback({obj:obj,e:e})}},_fix_scroll:function(obj){var c=this.get_container()[0],t;if(c.scrollHeight>c.offsetHeight){obj=this._get_node(obj);if(!obj||obj===-1||!obj.length||!obj.is(":visible")){return}t=obj.offset().top-this.get_container().offset().top;if(t<0){c.scrollTop=c.scrollTop+t-1}if(t+this.data.core.li_height+(c.scrollWidth>c.offsetWidth?scrollbar_width:0)>c.offsetHeight){c.scrollTop=c.scrollTop+(t-c.offsetHeight+this.data.core.li_height+1+(c.scrollWidth>c.offsetWidth?scrollbar_width:0))}}},deselect_node:function(obj){obj=this._get_node(obj);if(!obj.length){return false}if(this.is_selected(obj)){obj.children("a").removeClass("jstree-clicked");this.data.ui.selected=this.data.ui.selected.not(obj);if(this.data.ui.last_selected.get(0)===obj.get(0)){this.data.ui.last_selected=this.data.ui.selected.eq(0)}this.__callback({obj:obj})}},toggle_select:function(obj){obj=this._get_node(obj);if(!obj.length){return false}if(this.is_selected(obj)){this.deselect_node(obj)}else{this.select_node(obj)}},is_selected:function(obj){return this.data.ui.selected.index(this._get_node(obj))>=0},get_selected:function(context){return context?$(context).find("a.jstree-clicked").parent():this.data.ui.selected},deselect_all:function(context){var ret=context?$(context).find("a.jstree-clicked").parent():this.get_container().find("a.jstree-clicked").parent();ret.children("a.jstree-clicked").removeClass("jstree-clicked");this.data.ui.selected=$([]);this.data.ui.last_selected=false;this.__callback({obj:ret})}}});$.jstree.defaults.plugins.push("ui")})(jQuery);(function($){$.jstree.plugin("crrm",{__init:function(){this.get_container().bind("move_node.jstree",$.proxy(function(e,data){if(this._get_settings().crrm.move.open_onmove){var t=this;data.rslt.np.parentsUntil(".jstree").andSelf().filter(".jstree-closed").each(function(){t.open_node(this,false,true)})}},this))},defaults:{input_width_limit:200,move:{always_copy:false,open_onmove:true,default_position:"last",check_move:function(m){return true}}},_fn:{_show_input:function(obj,callback){obj=this._get_node(obj);var rtl=this._get_settings().core.rtl,w=this._get_settings().crrm.input_width_limit,w1=obj.children("ins").width(),w2=obj.find("> a:visible > ins").width()*obj.find("> a:visible > ins").length,t=this.get_text(obj),h1=$("<div />",{css:{position:"absolute",top:"-200px",left:rtl?"0px":"-1000px",visibility:"hidden"}}).appendTo("body"),h2=obj.css("position","relative").append($("<input />",{value:t,class:"jstree-rename-input",css:{padding:"0",border:"1px solid silver",position:"absolute",left:rtl?"auto":w1+w2+4+"px",right:rtl?w1+w2+4+"px":"auto",top:"0px",height:this.data.core.li_height-2+"px",lineHeight:this.data.core.li_height-2+"px",width:"150px"},blur:$.proxy(function(){var i=obj.children(".jstree-rename-input"),v=i.val();if(v===""){v=t}h1.remove();i.remove();this.set_text(obj,t);this.rename_node(obj,v);callback.call(this,obj,v,t);obj.css("position","")},this),keyup:function(event){var key=event.keyCode||event.which;if(key==27){this.value=t;this.blur();return}else if(key==13){this.blur();return}else{h2.width(Math.min(h1.text("pW"+this.value).width(),w))}},keypress:function(event){var key=event.keyCode||event.which;if(key==13){return false}}})).children(".jstree-rename-input");this.set_text(obj,"");h1.css({fontFamily:h2.css("fontFamily")||"",fontSize:h2.css("fontSize")||"",fontWeight:h2.css("fontWeight")||"",fontStyle:h2.css("fontStyle")||"",fontStretch:h2.css("fontStretch")||"",fontVariant:h2.css("fontVariant")||"",letterSpacing:h2.css("letterSpacing")||"",wordSpacing:h2.css("wordSpacing")||""});h2.width(Math.min(h1.text("pW"+h2[0].value).width(),w))[0].select()},rename:function(obj){obj=this._get_node(obj);this.__rollback();var f=this.__callback;this._show_input(obj,function(obj,new_name,old_name){f.call(this,{obj:obj,new_name:new_name,old_name:old_name})})},create:function(obj,position,js,callback,skip_rename){var t,_this=this;obj=this._get_node(obj);if(!obj){obj=-1}this.__rollback();t=this.create_node(obj,position,js,function(t){var p=this._get_parent(t),pos=$(t).index();if(callback){callback.call(this,t)}if(p.length&&p.hasClass("jstree-closed")){this.open_node(p,false,true)}if(!skip_rename){this._show_input(t,function(obj,new_name,old_name){_this.__callback({obj:obj,name:new_name,parent:p,position:pos})})}else{_this.__callback({obj:t,name:this.get_text(t),parent:p,position:pos})}});return t},remove:function(obj){obj=this._get_node(obj,true);var p=this._get_parent(obj),prev=this._get_prev(obj);this.__rollback();obj=this.delete_node(obj);if(obj!==false){this.__callback({obj:obj,prev:prev,parent:p})}},check_move:function(){if(!this.__call_old()){return false}var s=this._get_settings().crrm.move;if(!s.check_move.call(this,this._get_move())){return false}return true},move_node:function(obj,ref,position,is_copy,is_prepared,skip_check){var s=this._get_settings().crrm.move;if(!is_prepared){if(typeof position==="undefined"){position=s.default_position}if(position==="inside"&&!s.default_position.match(/^(before|after)$/)){position=s.default_position}return this.__call_old(true,obj,ref,position,is_copy,false,skip_check)}if(s.always_copy===true||s.always_copy==="multitree"&&obj.rt.get_index()!==obj.ot.get_index()){is_copy=true}this.__call_old(true,obj,ref,position,is_copy,true,skip_check)},cut:function(obj){obj=this._get_node(obj,true);if(!obj||!obj.length){return false}this.data.crrm.cp_nodes=false;this.data.crrm.ct_nodes=obj;this.__callback({obj:obj})},copy:function(obj){obj=this._get_node(obj,true);if(!obj||!obj.length){return false}this.data.crrm.ct_nodes=false;this.data.crrm.cp_nodes=obj;this.__callback({obj:obj})},paste:function(obj){obj=this._get_node(obj);if(!obj||!obj.length){return false}var nodes=this.data.crrm.ct_nodes?this.data.crrm.ct_nodes:this.data.crrm.cp_nodes;if(!this.data.crrm.ct_nodes&&!this.data.crrm.cp_nodes){return false}if(this.data.crrm.ct_nodes){this.move_node(this.data.crrm.ct_nodes,obj);this.data.crrm.ct_nodes=false}if(this.data.crrm.cp_nodes){this.move_node(this.data.crrm.cp_nodes,obj,false,true)}this.__callback({obj:obj,nodes:nodes})}}})})(jQuery);(function($){var themes_loaded=[];$.jstree._themes=false;$.jstree.plugin("themes",{__init:function(){this.get_container().bind("init.jstree",$.proxy(function(){var s=this._get_settings().themes;this.data.themes.dots=s.dots;this.data.themes.icons=s.icons;this.set_theme(s.theme,s.url)},this)).bind("loaded.jstree",$.proxy(function(){if(!this.data.themes.dots){this.hide_dots()}else{this.show_dots()}if(!this.data.themes.icons){this.hide_icons()}else{this.show_icons()}},this))},defaults:{theme:"default",url:false,dots:true,icons:true},_fn:{set_theme:function(theme_name,theme_url){if(!theme_name){return false}if(!theme_url){theme_url=$.jstree._themes+theme_name+"/style.css"}if($.inArray(theme_url,themes_loaded)==-1){$.vakata.css.add_sheet({url:theme_url});themes_loaded.push(theme_url)}if(this.data.themes.theme!=theme_name){this.get_container().removeClass("jstree-"+this.data.themes.theme);this.data.themes.theme=theme_name}this.get_container().addClass("jstree-"+theme_name);if(!this.data.themes.dots){this.hide_dots()}else{this.show_dots()}if(!this.data.themes.icons){this.hide_icons()}else{this.show_icons()}this.__callback()},get_theme:function(){return this.data.themes.theme},show_dots:function(){this.data.themes.dots=true;this.get_container().children("ul").removeClass("jstree-no-dots")},hide_dots:function(){this.data.themes.dots=false;this.get_container().children("ul").addClass("jstree-no-dots")},toggle_dots:function(){if(this.data.themes.dots){this.hide_dots()}else{this.show_dots()}},show_icons:function(){this.data.themes.icons=true;this.get_container().children("ul").removeClass("jstree-no-icons")},hide_icons:function(){this.data.themes.icons=false;this.get_container().children("ul").addClass("jstree-no-icons")},toggle_icons:function(){if(this.data.themes.icons){this.hide_icons()}else{this.show_icons()}}}});$(function(){if($.jstree._themes===false){$("script").each(function(){if(this.src.toString().match(/jquery\.jstree[^\/]*?\.js(\?.*)?$/)){$.jstree._themes=this.src.toString().replace(/jquery\.jstree[^\/]*?\.js(\?.*)?$/,"")+"themes/";return false}})}if($.jstree._themes===false){$.jstree._themes="themes/"}});$.jstree.defaults.plugins.push("themes")})(jQuery);(function($){var bound=[];function exec(i,event){var f=$.jstree._focused(),tmp;if(f&&f.data&&f.data.hotkeys&&f.data.hotkeys.enabled){tmp=f._get_settings().hotkeys[i];if(tmp){return tmp.call(f,event)}}}$.jstree.plugin("hotkeys",{__init:function(){if(typeof $.hotkeys==="undefined"){throw"jsTree hotkeys: jQuery hotkeys plugin not included."}if(!this.data.ui){throw"jsTree hotkeys: jsTree UI plugin not included."}$.each(this._get_settings().hotkeys,function(i,v){if(v!==false&&$.inArray(i,bound)==-1){$(document).bind("keydown",i,function(event){return exec(i,event)});bound.push(i)}});this.get_container().bind("lock.jstree",$.proxy(function(){if(this.data.hotkeys.enabled){this.data.hotkeys.enabled=false;this.data.hotkeys.revert=true}},this)).bind("unlock.jstree",$.proxy(function(){if(this.data.hotkeys.revert){this.data.hotkeys.enabled=true}},this));this.enable_hotkeys()},defaults:{up:function(){var o=this.data.ui.hovered||this.data.ui.last_selected||-1;this.hover_node(this._get_prev(o));return false},"ctrl+up":function(){var o=this.data.ui.hovered||this.data.ui.last_selected||-1;this.hover_node(this._get_prev(o));return false},"shift+up":function(){var o=this.data.ui.hovered||this.data.ui.last_selected||-1;this.hover_node(this._get_prev(o));return false},down:function(){var o=this.data.ui.hovered||this.data.ui.last_selected||-1;this.hover_node(this._get_next(o));return false},"ctrl+down":function(){var o=this.data.ui.hovered||this.data.ui.last_selected||-1;this.hover_node(this._get_next(o));return false},"shift+down":function(){var o=this.data.ui.hovered||this.data.ui.last_selected||-1;this.hover_node(this._get_next(o));return false},left:function(){var o=this.data.ui.hovered||this.data.ui.last_selected;if(o){if(o.hasClass("jstree-open")){this.close_node(o)}else{this.hover_node(this._get_prev(o))}}return false},"ctrl+left":function(){var o=this.data.ui.hovered||this.data.ui.last_selected;if(o){if(o.hasClass("jstree-open")){this.close_node(o)}else{this.hover_node(this._get_prev(o))}}return false},"shift+left":function(){var o=this.data.ui.hovered||this.data.ui.last_selected;if(o){if(o.hasClass("jstree-open")){this.close_node(o)}else{this.hover_node(this._get_prev(o))}}return false},right:function(){var o=this.data.ui.hovered||this.data.ui.last_selected;if(o&&o.length){if(o.hasClass("jstree-closed")){this.open_node(o)}else{this.hover_node(this._get_next(o))}}return false},"ctrl+right":function(){var o=this.data.ui.hovered||this.data.ui.last_selected;if(o&&o.length){if(o.hasClass("jstree-closed")){this.open_node(o)}else{this.hover_node(this._get_next(o))}}return false},"shift+right":function(){var o=this.data.ui.hovered||this.data.ui.last_selected;if(o&&o.length){if(o.hasClass("jstree-closed")){this.open_node(o)}else{this.hover_node(this._get_next(o))}}return false},space:function(){if(this.data.ui.hovered){this.data.ui.hovered.children("a:eq(0)").click()}return false},"ctrl+space":function(event){event.type="click";if(this.data.ui.hovered){this.data.ui.hovered.children("a:eq(0)").trigger(event)}return false},"shift+space":function(event){event.type="click";if(this.data.ui.hovered){this.data.ui.hovered.children("a:eq(0)").trigger(event)}return false},f2:function(){this.rename(this.data.ui.hovered||this.data.ui.last_selected)},del:function(){this.remove(this.data.ui.hovered||this._get_node(null))}},_fn:{enable_hotkeys:function(){this.data.hotkeys.enabled=true},disable_hotkeys:function(){this.data.hotkeys.enabled=false}}})})(jQuery);(function($){$.jstree.plugin("json_data",{__init:function(){var s=this._get_settings().json_data;if(s.progressive_unload){this.get_container().bind("after_close.jstree",function(e,data){data.rslt.obj.children("ul").remove()})}},defaults:{data:false,ajax:false,correct_state:true,progressive_render:false,progressive_unload:false},_fn:{load_node:function(obj,s_call,e_call){var _this=this;this.load_node_json(obj,function(){_this.__callback({obj:_this._get_node(obj)});s_call.call(this)},e_call)},_is_loaded:function(obj){var s=this._get_settings().json_data;obj=this._get_node(obj);return obj==-1||!obj||!s.ajax&&!s.progressive_render&&!$.isFunction(s.data)||obj.is(".jstree-open, .jstree-leaf")||obj.children("ul").children("li").length>0},refresh:function(obj){obj=this._get_node(obj);var s=this._get_settings().json_data;if(obj&&obj!==-1&&s.progressive_unload&&($.isFunction(s.data)||!!s.ajax)){obj.removeData("jstree_children")}return this.__call_old()},load_node_json:function(obj,s_call,e_call){var s=this.get_settings().json_data,d,error_func=function(){},success_func=function(){};obj=this._get_node(obj);if(obj&&obj!==-1&&(s.progressive_render||s.progressive_unload)&&!obj.is(".jstree-open, .jstree-leaf")&&obj.children("ul").children("li").length===0&&obj.data("jstree_children")){d=this._parse_json(obj.data("jstree_children"),obj);if(d){obj.append(d);if(!s.progressive_unload){obj.removeData("jstree_children")}}this.clean_node(obj);if(s_call){s_call.call(this)}return}if(obj&&obj!==-1){if(obj.data("jstree_is_loading")){return}else{obj.data("jstree_is_loading",true)}}switch(!0){case!s.data&&!s.ajax:throw"Neither data nor ajax settings supplied.";case $.isFunction(s.data):s.data.call(this,obj,$.proxy(function(d){d=this._parse_json(d,obj);if(!d){if(obj===-1||!obj){if(s.correct_state){this.get_container().children("ul").empty()}}else{obj.children("a.jstree-loading").removeClass("jstree-loading")
;obj.removeData("jstree_is_loading");if(s.correct_state){this.correct_state(obj)}}if(e_call){e_call.call(this)}}else{if(obj===-1||!obj){this.get_container().children("ul").empty().append(d.children())}else{obj.append(d).children("a.jstree-loading").removeClass("jstree-loading");obj.removeData("jstree_is_loading")}this.clean_node(obj);if(s_call){s_call.call(this)}}},this));break;case!!s.data&&!s.ajax||!!s.data&&!!s.ajax&&(!obj||obj===-1):if(!obj||obj==-1){d=this._parse_json(s.data,obj);if(d){this.get_container().children("ul").empty().append(d.children());this.clean_node()}else{if(s.correct_state){this.get_container().children("ul").empty()}}}if(s_call){s_call.call(this)}break;case!s.data&&!!s.ajax||!!s.data&&!!s.ajax&&obj&&obj!==-1:error_func=function(x,t,e){var ef=this.get_settings().json_data.ajax.error;if(ef){ef.call(this,x,t,e)}if(obj!=-1&&obj.length){obj.children("a.jstree-loading").removeClass("jstree-loading");obj.removeData("jstree_is_loading");if(t==="success"&&s.correct_state){this.correct_state(obj)}}else{if(t==="success"&&s.correct_state){this.get_container().children("ul").empty()}}if(e_call){e_call.call(this)}};success_func=function(d,t,x){var sf=this.get_settings().json_data.ajax.success;if(sf){d=sf.call(this,d,t,x)||d}if(d===""||d&&d.toString&&d.toString().replace(/^[\s\n]+$/,"")===""||!$.isArray(d)&&!$.isPlainObject(d)){return error_func.call(this,x,t,"")}d=this._parse_json(d,obj);if(d){if(obj===-1||!obj){this.get_container().children("ul").empty().append(d.children())}else{obj.append(d).children("a.jstree-loading").removeClass("jstree-loading");obj.removeData("jstree_is_loading")}this.clean_node(obj);if(s_call){s_call.call(this)}}else{if(obj===-1||!obj){if(s.correct_state){this.get_container().children("ul").empty();if(s_call){s_call.call(this)}}}else{obj.children("a.jstree-loading").removeClass("jstree-loading");obj.removeData("jstree_is_loading");if(s.correct_state){this.correct_state(obj);if(s_call){s_call.call(this)}}}}};s.ajax.context=this;s.ajax.error=error_func;s.ajax.success=success_func;if(!s.ajax.dataType){s.ajax.dataType="json"}if($.isFunction(s.ajax.url)){s.ajax.url=s.ajax.url.call(this,obj)}if($.isFunction(s.ajax.data)){s.ajax.data=s.ajax.data.call(this,obj)}$.ajax(s.ajax);break}},_parse_json:function(js,obj,is_callback){var d=false,p=this._get_settings(),s=p.json_data,t=p.core.html_titles,tmp,i,j,ul1,ul2;if(!js){return d}if(s.progressive_unload&&obj&&obj!==-1){obj.data("jstree_children",d)}if($.isArray(js)){d=$();if(!js.length){return false}for(i=0,j=js.length;i<j;i++){tmp=this._parse_json(js[i],obj,true);if(tmp.length){d=d.add(tmp)}}}else{if(typeof js=="string"){js={data:js}}if(!js.data&&js.data!==""){return d}d=$("<li />");if(js.attr){d.attr(js.attr)}if(js.metadata){d.data(js.metadata)}if(js.state){d.addClass("jstree-"+js.state)}if(!$.isArray(js.data)){tmp=js.data;js.data=[];js.data.push(tmp)}$.each(js.data,function(i,m){tmp=$("<a />");if($.isFunction(m)){m=m.call(this,js)}if(typeof m=="string"){tmp.attr("href","#")[t?"html":"text"](m)}else{if(!m.attr){m.attr={}}if(!m.attr.href){m.attr.href="#"}tmp.attr(m.attr)[t?"html":"text"](m.title);if(m.language){tmp.addClass(m.language)}}tmp.prepend("<ins class='jstree-icon'>&#160;</ins>");if(!m.icon&&js.icon){m.icon=js.icon}if(m.icon){if(m.icon.indexOf("/")===-1){tmp.children("ins").addClass(m.icon)}else{tmp.children("ins").css("background","url('"+m.icon+"') center center no-repeat")}}d.append(tmp)});d.prepend("<ins class='jstree-icon'>&#160;</ins>");if(js.children){if(s.progressive_render&&js.state!=="open"){d.addClass("jstree-closed").data("jstree_children",js.children)}else{if(s.progressive_unload){d.data("jstree_children",js.children)}if($.isArray(js.children)&&js.children.length){tmp=this._parse_json(js.children,obj,true);if(tmp.length){ul2=$("<ul />");ul2.append(tmp);d.append(ul2)}}}}}if(!is_callback){ul1=$("<ul />");ul1.append(d);d=ul1}return d},get_json:function(obj,li_attr,a_attr,is_callback){var result=[],s=this._get_settings(),_this=this,tmp1,tmp2,li,a,t,lang;obj=this._get_node(obj);if(!obj||obj===-1){obj=this.get_container().find("> ul > li")}li_attr=$.isArray(li_attr)?li_attr:["id","class"];if(!is_callback&&this.data.types){li_attr.push(s.types.type_attr)}a_attr=$.isArray(a_attr)?a_attr:[];obj.each(function(){li=$(this);tmp1={data:[]};if(li_attr.length){tmp1.attr={}}$.each(li_attr,function(i,v){tmp2=li.attr(v);if(tmp2&&tmp2.length&&tmp2.replace(/jstree[^ ]*/gi,"").length){tmp1.attr[v]=(" "+tmp2).replace(/ jstree[^ ]*/gi,"").replace(/\s+$/gi," ").replace(/^ /,"").replace(/ $/,"")}});if(li.hasClass("jstree-open")){tmp1.state="open"}if(li.hasClass("jstree-closed")){tmp1.state="closed"}if(li.data()){tmp1.metadata=li.data()}a=li.children("a");a.each(function(){t=$(this);if(a_attr.length||$.inArray("languages",s.plugins)!==-1||t.children("ins").get(0).style.backgroundImage.length||t.children("ins").get(0).className&&t.children("ins").get(0).className.replace(/jstree[^ ]*|$/gi,"").length){lang=false;if($.inArray("languages",s.plugins)!==-1&&$.isArray(s.languages)&&s.languages.length){$.each(s.languages,function(l,lv){if(t.hasClass(lv)){lang=lv;return false}})}tmp2={attr:{},title:_this.get_text(t,lang)};$.each(a_attr,function(k,z){tmp2.attr[z]=(" "+(t.attr(z)||"")).replace(/ jstree[^ ]*/gi,"").replace(/\s+$/gi," ").replace(/^ /,"").replace(/ $/,"")});if($.inArray("languages",s.plugins)!==-1&&$.isArray(s.languages)&&s.languages.length){$.each(s.languages,function(k,z){if(t.hasClass(z)){tmp2.language=z;return true}})}if(t.children("ins").get(0).className.replace(/jstree[^ ]*|$/gi,"").replace(/^\s+$/gi,"").length){tmp2.icon=t.children("ins").get(0).className.replace(/jstree[^ ]*|$/gi,"").replace(/\s+$/gi," ").replace(/^ /,"").replace(/ $/,"")}if(t.children("ins").get(0).style.backgroundImage.length){tmp2.icon=t.children("ins").get(0).style.backgroundImage.replace("url(","").replace(")","")}}else{tmp2=_this.get_text(t)}if(a.length>1){tmp1.data.push(tmp2)}else{tmp1.data=tmp2}});li=li.find("> ul > li");if(li.length){tmp1.children=_this.get_json(li,li_attr,a_attr,true)}result.push(tmp1)});return result}}})})(jQuery);(function($){var sh=false;$.jstree.plugin("languages",{__init:function(){this._load_css()},defaults:[],_fn:{set_lang:function(i){var langs=this._get_settings().languages,st=false,selector=".jstree-"+this.get_index()+" a";if(!$.isArray(langs)||langs.length===0){return false}if($.inArray(i,langs)==-1){if(!!langs[i]){i=langs[i]}else{return false}}if(i==this.data.languages.current_language){return true}st=$.vakata.css.get_css(selector+"."+this.data.languages.current_language,false,sh);if(st!==false){st.style.display="none"}st=$.vakata.css.get_css(selector+"."+i,false,sh);if(st!==false){st.style.display=""}this.data.languages.current_language=i;this.__callback(i);return true},get_lang:function(){return this.data.languages.current_language},_get_string:function(key,lang){var langs=this._get_settings().languages,s=this._get_settings().core.strings;if($.isArray(langs)&&langs.length){lang=lang&&$.inArray(lang,langs)!=-1?lang:this.data.languages.current_language}if(s[lang]&&s[lang][key]){return s[lang][key]}if(s[key]){return s[key]}return key},get_text:function(obj,lang){obj=this._get_node(obj)||this.data.ui.last_selected;if(!obj.size()){return false}var langs=this._get_settings().languages,s=this._get_settings().core.html_titles;if($.isArray(langs)&&langs.length){lang=lang&&$.inArray(lang,langs)!=-1?lang:this.data.languages.current_language;obj=obj.children("a."+lang)}else{obj=obj.children("a:eq(0)")}if(s){obj=obj.clone();obj.children("INS").remove();return obj.html()}else{obj=obj.contents().filter(function(){return this.nodeType==3})[0];return obj.nodeValue}},set_text:function(obj,val,lang){obj=this._get_node(obj)||this.data.ui.last_selected;if(!obj.size()){return false}var langs=this._get_settings().languages,s=this._get_settings().core.html_titles,tmp;if($.isArray(langs)&&langs.length){lang=lang&&$.inArray(lang,langs)!=-1?lang:this.data.languages.current_language;obj=obj.children("a."+lang)}else{obj=obj.children("a:eq(0)")}if(s){tmp=obj.children("INS").clone();obj.html(val).prepend(tmp);this.__callback({obj:obj,name:val,lang:lang});return true}else{obj=obj.contents().filter(function(){return this.nodeType==3})[0];this.__callback({obj:obj,name:val,lang:lang});return obj.nodeValue=val}},_load_css:function(){var langs=this._get_settings().languages,str="/* languages css */",selector=".jstree-"+this.get_index()+" a",ln;if($.isArray(langs)&&langs.length){this.data.languages.current_language=langs[0];for(ln=0;ln<langs.length;ln++){str+=selector+"."+langs[ln]+" {";if(langs[ln]!=this.data.languages.current_language){str+=" display:none; "}str+=" } "}sh=$.vakata.css.add_sheet({str:str,title:"jstree-languages"})}},create_node:function(obj,position,js,callback){var t=this.__call_old(true,obj,position,js,function(t){var langs=this._get_settings().languages,a=t.children("a"),ln;if($.isArray(langs)&&langs.length){for(ln=0;ln<langs.length;ln++){if(!a.is("."+langs[ln])){t.append(a.eq(0).clone().removeClass(langs.join(" ")).addClass(langs[ln]))}}a.not("."+langs.join(", .")).remove()}if(callback){callback.call(this,t)}});return t}}})})(jQuery);(function($){$.jstree.plugin("cookies",{__init:function(){if(typeof $.cookie==="undefined"){throw"jsTree cookie: jQuery cookie plugin not included."}var s=this._get_settings().cookies,tmp;if(!!s.save_loaded){tmp=$.cookie(s.save_loaded);if(tmp&&tmp.length){this.data.core.to_load=tmp.split(",")}}if(!!s.save_opened){tmp=$.cookie(s.save_opened);if(tmp&&tmp.length){this.data.core.to_open=tmp.split(",")}}if(!!s.save_selected){tmp=$.cookie(s.save_selected);if(tmp&&tmp.length&&this.data.ui){this.data.ui.to_select=tmp.split(",")}}this.get_container().one((this.data.ui?"reselect":"reopen")+".jstree",$.proxy(function(){this.get_container().bind("open_node.jstree close_node.jstree select_node.jstree deselect_node.jstree",$.proxy(function(e){if(this._get_settings().cookies.auto_save){this.save_cookie((e.handleObj.namespace+e.handleObj.type).replace("jstree",""))}},this))},this))},defaults:{save_loaded:"jstree_load",save_opened:"jstree_open",save_selected:"jstree_select",auto_save:true,cookie_options:{}},_fn:{save_cookie:function(c){if(this.data.core.refreshing){return}var s=this._get_settings().cookies;if(!c){if(s.save_loaded){this.save_loaded();$.cookie(s.save_loaded,this.data.core.to_load.join(","),s.cookie_options)}if(s.save_opened){this.save_opened();$.cookie(s.save_opened,this.data.core.to_open.join(","),s.cookie_options)}if(s.save_selected&&this.data.ui){this.save_selected();$.cookie(s.save_selected,this.data.ui.to_select.join(","),s.cookie_options)}return}switch(c){case"open_node":case"close_node":if(!!s.save_opened){this.save_opened();$.cookie(s.save_opened,this.data.core.to_open.join(","),s.cookie_options)}if(!!s.save_loaded){this.save_loaded();$.cookie(s.save_loaded,this.data.core.to_load.join(","),s.cookie_options)}break;case"select_node":case"deselect_node":if(!!s.save_selected&&this.data.ui){this.save_selected();$.cookie(s.save_selected,this.data.ui.to_select.join(","),s.cookie_options)}break}}}})})(jQuery);(function($){$.jstree.plugin("sort",{__init:function(){this.get_container().bind("load_node.jstree",$.proxy(function(e,data){var obj=this._get_node(data.rslt.obj);obj=obj===-1?this.get_container().children("ul"):obj.children("ul");this.sort(obj)},this)).bind("rename_node.jstree create_node.jstree create.jstree",$.proxy(function(e,data){this.sort(data.rslt.obj.parent())},this)).bind("move_node.jstree",$.proxy(function(e,data){var m=data.rslt.np==-1?this.get_container():data.rslt.np;this.sort(m.children("ul"))},this))},defaults:function(a,b){return this.get_text(a)>this.get_text(b)?1:-1},_fn:{sort:function(obj){var s=this._get_settings().sort,t=this;obj.append($.makeArray(obj.children("li")).sort($.proxy(s,t)));obj.find("> li > ul").each(function(){t.sort($(this))});this.clean_node(obj)}}})})(jQuery);(function($){var o=false,r=false,m=false,ml=false,sli=false,sti=false,dir1=false,dir2=false,last_pos=false;$.vakata.dnd={is_down:false,is_drag:false,helper:false,scroll_spd:10,init_x:0,init_y:0,threshold:5,helper_left:5,helper_top:10,user_data:{},drag_start:function(e,data,html){if($.vakata.dnd.is_drag){$.vakata.drag_stop({})}try{e.currentTarget.unselectable="on";e.currentTarget.onselectstart=function(){return false};if(e.currentTarget.style){e.currentTarget.style.MozUserSelect="none"}}catch(err){}$.vakata.dnd.init_x=e.pageX;$.vakata.dnd.init_y=e.pageY;$.vakata.dnd.user_data=data;$.vakata.dnd.is_down=true;$.vakata.dnd.helper=$("<div id='vakata-dragged' />").html(html);$(document).bind("mousemove",$.vakata.dnd.drag);$(document).bind("mouseup",$.vakata.dnd.drag_stop);return false},drag:function(e){if(!$.vakata.dnd.is_down){return}if(!$.vakata.dnd.is_drag){if(Math.abs(e.pageX-$.vakata.dnd.init_x)>5||Math.abs(e.pageY-$.vakata.dnd.init_y)>5){$.vakata.dnd.helper.appendTo("body");$.vakata.dnd.is_drag=true;$(document).triggerHandler("drag_start.vakata",{event:e,data:$.vakata.dnd.user_data})}else{return}}if(e.type==="mousemove"){var d=$(document),t=d.scrollTop(),l=d.scrollLeft();if(e.pageY-t<20){if(sti&&dir1==="down"){clearInterval(sti);sti=false}if(!sti){dir1="up";sti=setInterval(function(){$(document).scrollTop($(document).scrollTop()-$.vakata.dnd.scroll_spd)},150)}}else{if(sti&&dir1==="up"){clearInterval(sti);sti=false}}if($(window).height()-(e.pageY-t)<20){if(sti&&dir1==="up"){clearInterval(sti);sti=false}if(!sti){dir1="down";sti=setInterval(function(){$(document).scrollTop($(document).scrollTop()+$.vakata.dnd.scroll_spd)},150)}}else{if(sti&&dir1==="down"){clearInterval(sti);sti=false}}if(e.pageX-l<20){if(sli&&dir2==="right"){clearInterval(sli);sli=false}if(!sli){dir2="left";sli=setInterval(function(){$(document).scrollLeft($(document).scrollLeft()-$.vakata.dnd.scroll_spd)},150)}}else{if(sli&&dir2==="left"){clearInterval(sli);sli=false}}if($(window).width()-(e.pageX-l)<20){if(sli&&dir2==="left"){clearInterval(sli);sli=false}if(!sli){dir2="right";sli=setInterval(function(){$(document).scrollLeft($(document).scrollLeft()+$.vakata.dnd.scroll_spd)},150)}}else{if(sli&&dir2==="right"){clearInterval(sli);sli=false}}}$.vakata.dnd.helper.css({left:e.pageX+$.vakata.dnd.helper_left+"px",top:e.pageY+$.vakata.dnd.helper_top+"px"});$(document).triggerHandler("drag.vakata",{event:e,data:$.vakata.dnd.user_data})},drag_stop:function(e){if(sli){clearInterval(sli)}if(sti){clearInterval(sti)}$(document).unbind("mousemove",$.vakata.dnd.drag);$(document).unbind("mouseup",$.vakata.dnd.drag_stop);$(document).triggerHandler("drag_stop.vakata",{event:e,data:$.vakata.dnd.user_data});$.vakata.dnd.helper.remove();$.vakata.dnd.init_x=0;$.vakata.dnd.init_y=0;$.vakata.dnd.user_data={};$.vakata.dnd.is_down=false;$.vakata.dnd.is_drag=false}};$(function(){var css_string="#vakata-dragged { display:block; margin:0 0 0 0; padding:4px 4px 4px 24px; position:absolute; top:-2000px; line-height:16px; z-index:10000; } ";$.vakata.css.add_sheet({str:css_string,title:"vakata"})});$.jstree.plugin("dnd",{__init:function(){this.data.dnd={active:false,after:false,inside:false,before:false,off:false,prepared:false,w:0,to1:false,to2:false,cof:false,cw:false,ch:false,i1:false,i2:false,mto:false};this.get_container().bind("mouseenter.jstree",$.proxy(function(e){if($.vakata.dnd.is_drag&&$.vakata.dnd.user_data.jstree){if(this.data.themes){m.attr("class","jstree-"+this.data.themes.theme);if(ml){ml.attr("class","jstree-"+this.data.themes.theme)}$.vakata.dnd.helper.attr("class","jstree-dnd-helper jstree-"+this.data.themes.theme)}if(e.currentTarget===e.target&&$.vakata.dnd.user_data.obj&&$($.vakata.dnd.user_data.obj).length&&$($.vakata.dnd.user_data.obj).parents(".jstree:eq(0)")[0]!==e.target){var tr=$.jstree._reference(e.target),dc;if(tr.data.dnd.foreign){dc=tr._get_settings().dnd.drag_check.call(this,{o:o,r:tr.get_container(),is_root:true});if(dc===true||dc.inside===true||dc.before===true||dc.after===true){$.vakata.dnd.helper.children("ins").attr("class","jstree-ok")}}else{tr.prepare_move(o,tr.get_container(),"last");if(tr.check_move()){$.vakata.dnd.helper.children("ins").attr("class","jstree-ok")}}}}},this)).bind("mouseup.jstree",$.proxy(function(e){if($.vakata.dnd.is_drag&&$.vakata.dnd.user_data.jstree&&e.currentTarget===e.target&&$.vakata.dnd.user_data.obj&&$($.vakata.dnd.user_data.obj).length&&$($.vakata.dnd.user_data.obj).parents(".jstree:eq(0)")[0]!==e.target){var tr=$.jstree._reference(e.currentTarget),dc;if(tr.data.dnd.foreign){dc=tr._get_settings().dnd.drag_check.call(this,{o:o,r:tr.get_container(),is_root:true});if(dc===true||dc.inside===true||dc.before===true||dc.after===true){tr._get_settings().dnd.drag_finish.call(this,{o:o,r:tr.get_container(),is_root:true})}}else{tr.move_node(o,tr.get_container(),"last",e[tr._get_settings().dnd.copy_modifier+"Key"])}}},this)).bind("mouseleave.jstree",$.proxy(function(e){if(e.relatedTarget&&e.relatedTarget.id&&e.relatedTarget.id==="jstree-marker-line"){return false}if($.vakata.dnd.is_drag&&$.vakata.dnd.user_data.jstree){if(this.data.dnd.i1){clearInterval(this.data.dnd.i1)}if(this.data.dnd.i2){clearInterval(this.data.dnd.i2)}if(this.data.dnd.to1){clearTimeout(this.data.dnd.to1)}if(this.data.dnd.to2){clearTimeout(this.data.dnd.to2)}if($.vakata.dnd.helper.children("ins").hasClass("jstree-ok")){$.vakata.dnd.helper.children("ins").attr("class","jstree-invalid")}}},this)).bind("mousemove.jstree",$.proxy(function(e){if($.vakata.dnd.is_drag&&$.vakata.dnd.user_data.jstree){var cnt=this.get_container()[0];if(e.pageX+24>this.data.dnd.cof.left+this.data.dnd.cw){if(this.data.dnd.i1){clearInterval(this.data.dnd.i1)}this.data.dnd.i1=setInterval($.proxy(function(){this.scrollLeft+=$.vakata.dnd.scroll_spd},cnt),100)}else if(e.pageX-24<this.data.dnd.cof.left){if(this.data.dnd.i1){clearInterval(this.data.dnd.i1)}this.data.dnd.i1=setInterval($.proxy(function(){this.scrollLeft-=$.vakata.dnd.scroll_spd},cnt),100)}else{if(this.data.dnd.i1){clearInterval(this.data.dnd.i1)}}if(e.pageY+24>this.data.dnd.cof.top+this.data.dnd.ch){if(this.data.dnd.i2){clearInterval(this.data.dnd.i2)}this.data.dnd.i2=setInterval($.proxy(function(){this.scrollTop+=$.vakata.dnd.scroll_spd},cnt),100)}else if(e.pageY-24<this.data.dnd.cof.top){if(this.data.dnd.i2){clearInterval(this.data.dnd.i2)}this.data.dnd.i2=setInterval($.proxy(function(){this.scrollTop-=$.vakata.dnd.scroll_spd},cnt),100)}else{if(this.data.dnd.i2){clearInterval(this.data.dnd.i2)}}}},this)).bind("scroll.jstree",$.proxy(function(e){if($.vakata.dnd.is_drag&&$.vakata.dnd.user_data.jstree&&m&&ml){m.hide();ml.hide()}},this)).delegate("a","mousedown.jstree",$.proxy(function(e){if(e.which===1){this.start_drag(e.currentTarget,e);return false}},this)).delegate("a","mouseenter.jstree",$.proxy(function(e){if($.vakata.dnd.is_drag&&$.vakata.dnd.user_data.jstree){this.dnd_enter(e.currentTarget)}},this)).delegate("a","mousemove.jstree",$.proxy(function(e){if($.vakata.dnd.is_drag&&$.vakata.dnd.user_data.jstree){if(!r||!r.length||r.children("a")[0]!==e.currentTarget){this.dnd_enter(e.currentTarget)}if(typeof this.data.dnd.off.top==="undefined"){this.data.dnd.off=$(e.target).offset()}this.data.dnd.w=(e.pageY-(this.data.dnd.off.top||0))%this.data.core.li_height;if(this.data.dnd.w<0){this.data.dnd.w+=this.data.core.li_height}this.dnd_show()}},this)).delegate("a","mouseleave.jstree",$.proxy(function(e){if($.vakata.dnd.is_drag&&$.vakata.dnd.user_data.jstree){if(e.relatedTarget&&e.relatedTarget.id&&e.relatedTarget.id==="jstree-marker-line"){return false}if(m){m.hide()}if(ml){ml.hide()}this.data.dnd.mto=setTimeout(function(t){return function(){t.dnd_leave(e)}}(this),0)}},this)).delegate("a","mouseup.jstree",$.proxy(function(e){if($.vakata.dnd.is_drag&&$.vakata.dnd.user_data.jstree){this.dnd_finish(e)}},this));$(document).bind("drag_stop.vakata",$.proxy(function(){if(this.data.dnd.to1){clearTimeout(this.data.dnd.to1)}if(this.data.dnd.to2){clearTimeout(this.data.dnd.to2)}if(this.data.dnd.i1){clearInterval(this.data.dnd.i1)}if(this.data.dnd.i2){clearInterval(this.data.dnd.i2)}this.data.dnd.after=false;this.data.dnd.before=false;this.data.dnd.inside=false;this.data.dnd.off=false;this.data.dnd.prepared=false;this.data.dnd.w=false;this.data.dnd.to1=false;this.data.dnd.to2=false;this.data.dnd.i1=false;this.data.dnd.i2=false;this.data.dnd.active=false;this.data.dnd.foreign=false;if(m){m.css({top:"-2000px"})}if(ml){ml.css({top:"-2000px"})}},this)).bind("drag_start.vakata",$.proxy(function(e,data){if(data.data.jstree){var et=$(data.event.target);if(et.closest(".jstree").hasClass("jstree-"+this.get_index())){this.dnd_enter(et)}}},this));var s=this._get_settings().dnd;if(s.drag_target){$(document).delegate(s.drag_target,"mousedown.jstree-"+this.get_index(),$.proxy(function(e){o=e.target;$.vakata.dnd.drag_start(e,{jstree:true,obj:e.target},"<ins class='jstree-icon'></ins>"+$(e.target).text());if(this.data.themes){if(m){m.attr("class","jstree-"+this.data.themes.theme)}if(ml){ml.attr("class","jstree-"+this.data.themes.theme)}$.vakata.dnd.helper.attr("class","jstree-dnd-helper jstree-"+this.data.themes.theme)}$.vakata.dnd.helper.children("ins").attr("class","jstree-invalid");var cnt=this.get_container();this.data.dnd.cof=cnt.offset();this.data.dnd.cw=parseInt(cnt.width(),10);this.data.dnd.ch=parseInt(cnt.height(),10);this.data.dnd.foreign=true;e.preventDefault()},this))}if(s.drop_target){$(document).delegate(s.drop_target,"mouseenter.jstree-"+this.get_index(),$.proxy(function(e){if(this.data.dnd.active&&this._get_settings().dnd.drop_check.call(this,{o:o,r:$(e.target),e:e})){$.vakata.dnd.helper.children("ins").attr("class","jstree-ok")}},this)).delegate(s.drop_target,"mouseleave.jstree-"+this.get_index(),$.proxy(function(e){if(this.data.dnd.active){$.vakata.dnd.helper.children("ins").attr("class","jstree-invalid")}},this)).delegate(s.drop_target,"mouseup.jstree-"+this.get_index(),$.proxy(function(e){if(this.data.dnd.active&&$.vakata.dnd.helper.children("ins").hasClass("jstree-ok")){this._get_settings().dnd.drop_finish.call(this,{o:o,r:$(e.target),e:e})}},this))}},defaults:{copy_modifier:"ctrl",check_timeout:100,open_timeout:500,drop_target:".jstree-drop",drop_check:function(data){return true},drop_finish:$.noop,drag_target:".jstree-draggable",drag_finish:$.noop,drag_check:function(data){return{after:false,before:false,inside:true}}},_fn:{dnd_prepare:function(){if(!r||!r.length){return}this.data.dnd.off=r.offset();if(this._get_settings().core.rtl){this.data.dnd.off.right=this.data.dnd.off.left+r.width()}if(this.data.dnd.foreign){var a=this._get_settings().dnd.drag_check.call(this,{o:o,r:r});this.data.dnd.after=a.after;this.data.dnd.before=a.before;this.data.dnd.inside=a.inside;this.data.dnd.prepared=true;return this.dnd_show()}this.prepare_move(o,r,"before");this.data.dnd.before=this.check_move();this.prepare_move(o,r,"after");this.data.dnd.after=this.check_move();if(this._is_loaded(r)){this.prepare_move(o,r,"inside");this.data.dnd.inside=this.check_move()}else{this.data.dnd.inside=false}this.data.dnd.prepared=true;return this.dnd_show()},dnd_show:function(){if(!this.data.dnd.prepared){return}var o=["before","inside","after"],r=false,rtl=this._get_settings().core.rtl,pos;if(this.data.dnd.w<this.data.core.li_height/3){o=["before","inside","after"]}else if(this.data.dnd.w<=this.data.core.li_height*2/3){o=this.data.dnd.w<this.data.core.li_height/2?["inside","before","after"]:["inside","after","before"]}else{o=["after","inside","before"]}$.each(o,$.proxy(function(i,val){if(this.data.dnd[val]){$.vakata.dnd.helper.children("ins").attr("class","jstree-ok");r=val;return false}},this));if(r===false){$.vakata.dnd.helper.children("ins").attr("class","jstree-invalid")}pos=rtl?this.data.dnd.off.right-18:this.data.dnd.off.left+10;switch(r){case"before":m.css({left:pos+"px",top:this.data.dnd.off.top-6+"px"}).show();if(ml){ml.css({left:pos+8+"px",top:this.data.dnd.off.top-1+"px"}).show()}break;case"after":m.css({left:pos+"px",top:this.data.dnd.off.top+this.data.core.li_height-6+"px"}).show();if(ml){ml.css({left:pos+8+"px",top:this.data.dnd.off.top+this.data.core.li_height-1+"px"}).show()}break;case"inside":m.css({left:pos+(rtl?-4:4)+"px",top:this.data.dnd.off.top+this.data.core.li_height/2-5+"px"}).show();if(ml){ml.hide()}break;default:m.hide();if(ml){ml.hide()}break}last_pos=r;return r},dnd_open:function(){this.data.dnd.to2=false;this.open_node(r,$.proxy(this.dnd_prepare,this),true)},dnd_finish:function(e){if(this.data.dnd.foreign){if(this.data.dnd.after||this.data.dnd.before||this.data.dnd.inside){this._get_settings().dnd.drag_finish.call(this,{o:o,r:r,p:last_pos})}}else{this.dnd_prepare();this.move_node(o,r,last_pos,e[this._get_settings().dnd.copy_modifier+"Key"])}o=false;r=false;m.hide();if(ml){ml.hide()}},dnd_enter:function(obj){if(this.data.dnd.mto){clearTimeout(this.data.dnd.mto);this.data.dnd.mto=false}var s=this._get_settings().dnd;this.data.dnd.prepared=false;r=this._get_node(obj);if(s.check_timeout){if(this.data.dnd.to1){clearTimeout(this.data.dnd.to1)}this.data.dnd.to1=setTimeout($.proxy(this.dnd_prepare,this),s.check_timeout)}else{this.dnd_prepare()}if(s.open_timeout){if(this.data.dnd.to2){clearTimeout(this.data.dnd.to2)}if(r&&r.length&&r.hasClass("jstree-closed")){this.data.dnd.to2=setTimeout($.proxy(this.dnd_open,this),s.open_timeout)}}else{if(r&&r.length&&r.hasClass("jstree-closed")){this.dnd_open()}}},dnd_leave:function(e){this.data.dnd.after=false;this.data.dnd.before=false;this.data.dnd.inside=false;$.vakata.dnd.helper.children("ins").attr("class","jstree-invalid");m.hide();if(ml){ml.hide()}if(r&&r[0]===e.target.parentNode){if(this.data.dnd.to1){clearTimeout(this.data.dnd.to1);this.data.dnd.to1=false}if(this.data.dnd.to2){clearTimeout(this.data.dnd.to2);this.data.dnd.to2=false}}},start_drag:function(obj,e){o=this._get_node(obj);if(this.data.ui&&this.is_selected(o)){o=this._get_node(null,true)}var dt=o.length>1?this._get_string("multiple_selection"):this.get_text(o),cnt=this.get_container();if(!this._get_settings().core.html_titles){dt=dt.replace(/</gi,"&lt;").replace(/>/gi,"&gt;")}$.vakata.dnd.drag_start(e,{jstree:true,obj:o},"<ins class='jstree-icon'></ins>"+dt);if(this.data.themes){if(m){m.attr("class","jstree-"+this.data.themes.theme)}if(ml){ml.attr("class","jstree-"+this.data.themes.theme)}$.vakata.dnd.helper.attr("class","jstree-dnd-helper jstree-"+this.data.themes.theme)}this.data.dnd.cof=cnt.offset();this.data.dnd.cw=parseInt(cnt.width(),10);this.data.dnd.ch=parseInt(cnt.height(),10);this.data.dnd.active=true}}});$(function(){var css_string=""+"#vakata-dragged ins { display:block; text-decoration:none; width:16px; height:16px; margin:0 0 0 0; padding:0; position:absolute; top:4px; left:4px; "+" -moz-border-radius:4px; border-radius:4px; -webkit-border-radius:4px; "+"} "+"#vakata-dragged .jstree-ok { background:green; } "+"#vakata-dragged .jstree-invalid { background:red; } "+"#jstree-marker { padding:0; margin:0; font-size:12px; overflow:hidden; height:12px; width:8px; position:absolute; top:-30px; z-index:10001; background-repeat:no-repeat; display:none; background-color:transparent; text-shadow:1px 1px 1px white; color:black; line-height:10px; } "+"#jstree-marker-line { padding:0; margin:0; line-height:0%; font-size:1px; overflow:hidden; height:1px; width:100px; position:absolute; top:-30px; z-index:10000; background-repeat:no-repeat; display:none; background-color:#456c43; "+" cursor:pointer; border:1px solid #eeeeee; border-left:0; -moz-box-shadow: 0px 0px 2px #666; -webkit-box-shadow: 0px 0px 2px #666; box-shadow: 0px 0px 2px #666; "+" -moz-border-radius:1px; border-radius:1px; -webkit-border-radius:1px; "+"}"+"";$.vakata.css.add_sheet({str:css_string,title:"jstree"});m=$("<div />").attr({id:"jstree-marker"}).hide().html("&raquo;").bind("mouseleave mouseenter",function(e){m.hide();ml.hide();e.preventDefault();e.stopImmediatePropagation();return false}).appendTo("body");ml=$("<div />").attr({id:"jstree-marker-line"}).hide().bind("mouseup",function(e){if(r&&r.length){r.children("a").trigger(e);e.preventDefault();e.stopImmediatePropagation();return false}}).bind("mouseleave",function(e){var rt=$(e.relatedTarget);if(rt.is(".jstree")||rt.closest(".jstree").length===0){if(r&&r.length){r.children("a").trigger(e);m.hide();ml.hide();e.preventDefault();e.stopImmediatePropagation();return false}}}).appendTo("body");$(document).bind("drag_start.vakata",function(e,data){if(data.data.jstree){m.show();if(ml){ml.show()}}});$(document).bind("drag_stop.vakata",function(e,data){if(data.data.jstree){m.hide();if(ml){ml.hide()}}})})})(jQuery);(function($){$.jstree.plugin("checkbox",{__init:function(){this.data.checkbox.noui=this._get_settings().checkbox.override_ui;if(this.data.ui&&this.data.checkbox.noui){this.select_node=this.deselect_node=this.deselect_all=$.noop;this.get_selected=this.get_checked}this.get_container().bind("open_node.jstree create_node.jstree clean_node.jstree refresh.jstree",$.proxy(function(e,data){this._prepare_checkboxes(data.rslt.obj)},this)).bind("loaded.jstree",$.proxy(function(e){this._prepare_checkboxes()},this)).delegate(this.data.ui&&this.data.checkbox.noui?"a":"ins.jstree-checkbox","click.jstree",$.proxy(function(e){e.preventDefault();if(this._get_node(e.target).hasClass("jstree-checked")){this.uncheck_node(e.target)}else{this.check_node(e.target)}if(this.data.ui&&this.data.checkbox.noui){this.save_selected();if(this.data.cookies){this.save_cookie("select_node")}}else{e.stopImmediatePropagation();return false}},this))},defaults:{override_ui:false,two_state:false,real_checkboxes:false,checked_parent_open:true,real_checkboxes_names:function(n){return["check_"+(n[0].id||Math.ceil(Math.random()*1e4)),1]}},__destroy:function(){this.get_container().find("input.jstree-real-checkbox").removeClass("jstree-real-checkbox").end().find("ins.jstree-checkbox").remove()},_fn:{_checkbox_notify:function(n,data){if(data.checked){this.check_node(n,false)}},_prepare_checkboxes:function(obj){obj=!obj||obj==-1?this.get_container().find("> ul > li"):this._get_node(obj);if(obj===false){return}var c,_this=this,t,ts=this._get_settings().checkbox.two_state,rc=this._get_settings().checkbox.real_checkboxes,rcn=this._get_settings().checkbox.real_checkboxes_names;obj.each(function(){t=$(this);c=t.is("li")&&(t.hasClass("jstree-checked")||rc&&t.children(":checked").length)?"jstree-checked":"jstree-unchecked";t.find("li").andSelf().each(function(){var $t=$(this),nm;$t.children("a"+(_this.data.languages?"":":eq(0)")).not(":has(.jstree-checkbox)").prepend("<ins class='jstree-checkbox'>&#160;</ins>").parent().not(".jstree-checked, .jstree-unchecked").addClass(ts?"jstree-unchecked":c);if(rc){if(!$t.children(":checkbox").length){nm=rcn.call(_this,$t);$t.prepend("<input type='checkbox' class='jstree-real-checkbox' id='"+nm[0]+"' name='"+nm[0]+"' value='"+nm[1]+"' />")}else{$t.children(":checkbox").addClass("jstree-real-checkbox")}}if(!ts){if(c==="jstree-checked"||$t.hasClass("jstree-checked")||$t.children(":checked").length){$t.find("li").andSelf().addClass("jstree-checked").children(":checkbox").prop("checked",true)}}else{if($t.hasClass("jstree-checked")||$t.children(":checked").length){$t.addClass("jstree-checked").children(":checkbox").prop("checked",true)}}})});if(!ts){obj.find(".jstree-checked").parent().parent().each(function(){_this._repair_state(this)})}},change_state:function(obj,state){obj=this._get_node(obj);var coll=false,rc=this._get_settings().checkbox.real_checkboxes;if(!obj||obj===-1){return false}state=state===false||state===true?state:obj.hasClass("jstree-checked");if(this._get_settings().checkbox.two_state){if(state){obj.removeClass("jstree-checked").addClass("jstree-unchecked");if(rc){obj.children(":checkbox").prop("checked",false)}}else{obj.removeClass("jstree-unchecked").addClass("jstree-checked");if(rc){obj.children(":checkbox").prop("checked",true)}}}else{if(state){coll=obj.find("li").andSelf();if(!coll.filter(".jstree-checked, .jstree-undetermined").length){return false}
coll.removeClass("jstree-checked jstree-undetermined").addClass("jstree-unchecked");if(rc){coll.children(":checkbox").prop("checked",false)}}else{coll=obj.find("li").andSelf();if(!coll.filter(".jstree-unchecked, .jstree-undetermined").length){return false}coll.removeClass("jstree-unchecked jstree-undetermined").addClass("jstree-checked");if(rc){coll.children(":checkbox").prop("checked",true)}if(this.data.ui){this.data.ui.last_selected=obj}this.data.checkbox.last_selected=obj}obj.parentsUntil(".jstree","li").each(function(){var $this=$(this);if(state){if($this.children("ul").children("li.jstree-checked, li.jstree-undetermined").length){$this.parentsUntil(".jstree","li").andSelf().removeClass("jstree-checked jstree-unchecked").addClass("jstree-undetermined");if(rc){$this.parentsUntil(".jstree","li").andSelf().children(":checkbox").prop("checked",false)}return false}else{$this.removeClass("jstree-checked jstree-undetermined").addClass("jstree-unchecked");if(rc){$this.children(":checkbox").prop("checked",false)}}}else{if($this.children("ul").children("li.jstree-unchecked, li.jstree-undetermined").length){$this.parentsUntil(".jstree","li").andSelf().removeClass("jstree-checked jstree-unchecked").addClass("jstree-undetermined");if(rc){$this.parentsUntil(".jstree","li").andSelf().children(":checkbox").prop("checked",false)}return false}else{$this.removeClass("jstree-unchecked jstree-undetermined").addClass("jstree-checked");if(rc){$this.children(":checkbox").prop("checked",true)}}}})}if(this.data.ui&&this.data.checkbox.noui){this.data.ui.selected=this.get_checked()}this.__callback(obj);return true},check_node:function(obj){if(this.change_state(obj,false)){obj=this._get_node(obj);if(this._get_settings().checkbox.checked_parent_open){var t=this;obj.parents(".jstree-closed").each(function(){t.open_node(this,false,true)})}this.__callback({obj:obj})}},uncheck_node:function(obj){if(this.change_state(obj,true)){this.__callback({obj:this._get_node(obj)})}},check_all:function(){var _this=this,coll=this._get_settings().checkbox.two_state?this.get_container_ul().find("li"):this.get_container_ul().children("li");coll.each(function(){_this.change_state(this,false)});this.__callback()},uncheck_all:function(){var _this=this,coll=this._get_settings().checkbox.two_state?this.get_container_ul().find("li"):this.get_container_ul().children("li");coll.each(function(){_this.change_state(this,true)});this.__callback()},is_checked:function(obj){obj=this._get_node(obj);return obj.length?obj.is(".jstree-checked"):false},get_checked:function(obj,get_all){obj=!obj||obj===-1?this.get_container():this._get_node(obj);return get_all||this._get_settings().checkbox.two_state?obj.find(".jstree-checked"):obj.find("> ul > .jstree-checked, .jstree-undetermined > ul > .jstree-checked")},get_unchecked:function(obj,get_all){obj=!obj||obj===-1?this.get_container():this._get_node(obj);return get_all||this._get_settings().checkbox.two_state?obj.find(".jstree-unchecked"):obj.find("> ul > .jstree-unchecked, .jstree-undetermined > ul > .jstree-unchecked")},show_checkboxes:function(){this.get_container().children("ul").removeClass("jstree-no-checkboxes")},hide_checkboxes:function(){this.get_container().children("ul").addClass("jstree-no-checkboxes")},_repair_state:function(obj){obj=this._get_node(obj);if(!obj.length){return}if(this._get_settings().checkbox.two_state){obj.find("li").andSelf().not(".jstree-checked").removeClass("jstree-undetermined").addClass("jstree-unchecked").children(":checkbox").prop("checked",true);return}var rc=this._get_settings().checkbox.real_checkboxes,a=obj.find("> ul > .jstree-checked").length,b=obj.find("> ul > .jstree-undetermined").length,c=obj.find("> ul > li").length;if(c===0){if(obj.hasClass("jstree-undetermined")){this.change_state(obj,false)}}else if(a===0&&b===0){this.change_state(obj,true)}else if(a===c){this.change_state(obj,false)}else{obj.parentsUntil(".jstree","li").andSelf().removeClass("jstree-checked jstree-unchecked").addClass("jstree-undetermined");if(rc){obj.parentsUntil(".jstree","li").andSelf().children(":checkbox").prop("checked",false)}}},reselect:function(){if(this.data.ui&&this.data.checkbox.noui){var _this=this,s=this.data.ui.to_select;s=$.map($.makeArray(s),function(n){return"#"+n.toString().replace(/^#/,"").replace(/\\\//g,"/").replace(/\//g,"\\/").replace(/\\\./g,".").replace(/\./g,"\\.").replace(/\:/g,"\\:")});this.deselect_all();$.each(s,function(i,val){_this.check_node(val)});this.__callback()}else{this.__call_old()}},save_loaded:function(){var _this=this;this.data.core.to_load=[];this.get_container_ul().find("li.jstree-closed.jstree-undetermined").each(function(){if(this.id){_this.data.core.to_load.push("#"+this.id)}})}}});$(function(){var css_string=".jstree .jstree-real-checkbox { display:none; } ";$.vakata.css.add_sheet({str:css_string,title:"jstree"})})})(jQuery);(function($){$.vakata.xslt=function(xml,xsl,callback){var r=false,p,q,s;if(r===false&&window.ActiveXObject){try{r=new ActiveXObject("Msxml2.XSLTemplate");q=new ActiveXObject("Msxml2.DOMDocument");q.loadXML(xml);s=new ActiveXObject("Msxml2.FreeThreadedDOMDocument");s.loadXML(xsl);r.stylesheet=s;p=r.createProcessor();p.input=q;p.transform();r=p.output}catch(e){}}xml=$.parseXML(xml);xsl=$.parseXML(xsl);if(r===false&&typeof XSLTProcessor!=="undefined"){p=new XSLTProcessor;p.importStylesheet(xsl);r=p.transformToFragment(xml,document);r=$("<div />").append(r).html()}if(r===false&&typeof xml.transformNode!=="undefined"){r=xml.transformNode(xsl)}callback.call(null,r)};var xsl={nest:"<"+'?xml version="1.0" encoding="utf-8" ?>'+'<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >'+'<xsl:output method="html" encoding="utf-8" omit-xml-declaration="yes" standalone="no" indent="no" media-type="text/html" />'+'<xsl:template match="/">'+'\t<xsl:call-template name="nodes">'+'\t\t<xsl:with-param name="node" select="/root" />'+"\t</xsl:call-template>"+"</xsl:template>"+'<xsl:template name="nodes">'+'\t<xsl:param name="node" />'+"\t<ul>"+'\t<xsl:for-each select="$node/item">'+'\t\t<xsl:variable name="children" select="count(./item) &gt; 0" />'+"\t\t<li>"+'\t\t\t<xsl:attribute name="class">'+'\t\t\t\t<xsl:if test="position() = last()">jstree-last </xsl:if>'+"\t\t\t\t<xsl:choose>"+"\t\t\t\t\t<xsl:when test=\"@state = 'open'\">jstree-open </xsl:when>"+"\t\t\t\t\t<xsl:when test=\"$children or @hasChildren or @state = 'closed'\">jstree-closed </xsl:when>"+"\t\t\t\t\t<xsl:otherwise>jstree-leaf </xsl:otherwise>"+"\t\t\t\t</xsl:choose>"+'\t\t\t\t<xsl:value-of select="@class" />'+"\t\t\t</xsl:attribute>"+'\t\t\t<xsl:for-each select="@*">'+"\t\t\t\t<xsl:if test=\"name() != 'class' and name() != 'state' and name() != 'hasChildren'\">"+'\t\t\t\t\t<xsl:attribute name="{name()}"><xsl:value-of select="." /></xsl:attribute>'+"\t\t\t\t</xsl:if>"+"\t\t\t</xsl:for-each>"+'\t<ins class="jstree-icon"><xsl:text>&#xa0;</xsl:text></ins>'+'\t\t\t<xsl:for-each select="content/name">'+"\t\t\t\t<a>"+'\t\t\t\t<xsl:attribute name="href">'+"\t\t\t\t\t<xsl:choose>"+'\t\t\t\t\t<xsl:when test="@href"><xsl:value-of select="@href" /></xsl:when>'+"\t\t\t\t\t<xsl:otherwise>#</xsl:otherwise>"+"\t\t\t\t\t</xsl:choose>"+"\t\t\t\t</xsl:attribute>"+'\t\t\t\t<xsl:attribute name="class"><xsl:value-of select="@lang" /> <xsl:value-of select="@class" /></xsl:attribute>'+'\t\t\t\t<xsl:attribute name="style"><xsl:value-of select="@style" /></xsl:attribute>'+'\t\t\t\t<xsl:for-each select="@*">'+"\t\t\t\t\t<xsl:if test=\"name() != 'style' and name() != 'class' and name() != 'href'\">"+'\t\t\t\t\t\t<xsl:attribute name="{name()}"><xsl:value-of select="." /></xsl:attribute>'+"\t\t\t\t\t</xsl:if>"+"\t\t\t\t</xsl:for-each>"+"\t\t\t\t\t<ins>"+'\t\t\t\t\t\t<xsl:attribute name="class">jstree-icon '+'\t\t\t\t\t\t\t<xsl:if test="string-length(attribute::icon) > 0 and not(contains(@icon,\'/\'))"><xsl:value-of select="@icon" /></xsl:if>'+"\t\t\t\t\t\t</xsl:attribute>"+'\t\t\t\t\t\t<xsl:if test="string-length(attribute::icon) > 0 and contains(@icon,\'/\')"><xsl:attribute name="style">background:url(<xsl:value-of select="@icon" />) center center no-repeat;</xsl:attribute></xsl:if>'+"\t\t\t\t\t\t<xsl:text>&#xa0;</xsl:text>"+"\t\t\t\t\t</ins>"+'\t\t\t\t\t<xsl:copy-of select="./child::node()" />'+"\t\t\t\t</a>"+"\t\t\t</xsl:for-each>"+'\t\t\t<xsl:if test="$children or @hasChildren"><xsl:call-template name="nodes"><xsl:with-param name="node" select="current()" /></xsl:call-template></xsl:if>'+"\t\t</li>"+"\t</xsl:for-each>"+"\t</ul>"+"</xsl:template>"+"</xsl:stylesheet>",flat:"<"+'?xml version="1.0" encoding="utf-8" ?>'+'<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" >'+'<xsl:output method="html" encoding="utf-8" omit-xml-declaration="yes" standalone="no" indent="no" media-type="text/xml" />'+'<xsl:template match="/">'+"\t<ul>"+'\t<xsl:for-each select="//item[not(@parent_id) or @parent_id=0 or not(@parent_id = //item/@id)]">'+'\t\t<xsl:call-template name="nodes">'+'\t\t\t<xsl:with-param name="node" select="." />'+'\t\t\t<xsl:with-param name="is_last" select="number(position() = last())" />'+"\t\t</xsl:call-template>"+"\t</xsl:for-each>"+"\t</ul>"+"</xsl:template>"+'<xsl:template name="nodes">'+'\t<xsl:param name="node" />'+'\t<xsl:param name="is_last" />'+'\t<xsl:variable name="children" select="count(//item[@parent_id=$node/attribute::id]) &gt; 0" />'+"\t<li>"+'\t<xsl:attribute name="class">'+'\t\t<xsl:if test="$is_last = true()">jstree-last </xsl:if>'+"\t\t<xsl:choose>"+"\t\t\t<xsl:when test=\"@state = 'open'\">jstree-open </xsl:when>"+"\t\t\t<xsl:when test=\"$children or @hasChildren or @state = 'closed'\">jstree-closed </xsl:when>"+"\t\t\t<xsl:otherwise>jstree-leaf </xsl:otherwise>"+"\t\t</xsl:choose>"+'\t\t<xsl:value-of select="@class" />'+"\t</xsl:attribute>"+'\t<xsl:for-each select="@*">'+"\t\t<xsl:if test=\"name() != 'parent_id' and name() != 'hasChildren' and name() != 'class' and name() != 'state'\">"+'\t\t<xsl:attribute name="{name()}"><xsl:value-of select="." /></xsl:attribute>'+"\t\t</xsl:if>"+"\t</xsl:for-each>"+'\t<ins class="jstree-icon"><xsl:text>&#xa0;</xsl:text></ins>'+'\t<xsl:for-each select="content/name">'+"\t\t<a>"+'\t\t<xsl:attribute name="href">'+"\t\t\t<xsl:choose>"+'\t\t\t<xsl:when test="@href"><xsl:value-of select="@href" /></xsl:when>'+"\t\t\t<xsl:otherwise>#</xsl:otherwise>"+"\t\t\t</xsl:choose>"+"\t\t</xsl:attribute>"+'\t\t<xsl:attribute name="class"><xsl:value-of select="@lang" /> <xsl:value-of select="@class" /></xsl:attribute>'+'\t\t<xsl:attribute name="style"><xsl:value-of select="@style" /></xsl:attribute>'+'\t\t<xsl:for-each select="@*">'+"\t\t\t<xsl:if test=\"name() != 'style' and name() != 'class' and name() != 'href'\">"+'\t\t\t\t<xsl:attribute name="{name()}"><xsl:value-of select="." /></xsl:attribute>'+"\t\t\t</xsl:if>"+"\t\t</xsl:for-each>"+"\t\t\t<ins>"+'\t\t\t\t<xsl:attribute name="class">jstree-icon '+'\t\t\t\t\t<xsl:if test="string-length(attribute::icon) > 0 and not(contains(@icon,\'/\'))"><xsl:value-of select="@icon" /></xsl:if>'+"\t\t\t\t</xsl:attribute>"+'\t\t\t\t<xsl:if test="string-length(attribute::icon) > 0 and contains(@icon,\'/\')"><xsl:attribute name="style">background:url(<xsl:value-of select="@icon" />) center center no-repeat;</xsl:attribute></xsl:if>'+"\t\t\t\t<xsl:text>&#xa0;</xsl:text>"+"\t\t\t</ins>"+'\t\t\t<xsl:copy-of select="./child::node()" />'+"\t\t</a>"+"\t</xsl:for-each>"+'\t<xsl:if test="$children">'+"\t\t<ul>"+'\t\t<xsl:for-each select="//item[@parent_id=$node/attribute::id]">'+'\t\t\t<xsl:call-template name="nodes">'+'\t\t\t\t<xsl:with-param name="node" select="." />'+'\t\t\t\t<xsl:with-param name="is_last" select="number(position() = last())" />'+"\t\t\t</xsl:call-template>"+"\t\t</xsl:for-each>"+"\t\t</ul>"+"\t</xsl:if>"+"\t</li>"+"</xsl:template>"+"</xsl:stylesheet>"},escape_xml=function(string){return string.toString().replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&apos;")};$.jstree.plugin("xml_data",{defaults:{data:false,ajax:false,xsl:"flat",clean_node:false,correct_state:true,get_skip_empty:false,get_include_preamble:true},_fn:{load_node:function(obj,s_call,e_call){var _this=this;this.load_node_xml(obj,function(){_this.__callback({obj:_this._get_node(obj)});s_call.call(this)},e_call)},_is_loaded:function(obj){var s=this._get_settings().xml_data;obj=this._get_node(obj);return obj==-1||!obj||!s.ajax&&!$.isFunction(s.data)||obj.is(".jstree-open, .jstree-leaf")||obj.children("ul").children("li").size()>0},load_node_xml:function(obj,s_call,e_call){var s=this.get_settings().xml_data,error_func=function(){},success_func=function(){};obj=this._get_node(obj);if(obj&&obj!==-1){if(obj.data("jstree_is_loading")){return}else{obj.data("jstree_is_loading",true)}}switch(!0){case!s.data&&!s.ajax:throw"Neither data nor ajax settings supplied.";case $.isFunction(s.data):s.data.call(this,obj,$.proxy(function(d){this.parse_xml(d,$.proxy(function(d){if(d){d=d.replace(/ ?xmlns="[^"]*"/gi,"");if(d.length>10){d=$(d);if(obj===-1||!obj){this.get_container().children("ul").empty().append(d.children())}else{obj.children("a.jstree-loading").removeClass("jstree-loading");obj.append(d);obj.removeData("jstree_is_loading")}if(s.clean_node){this.clean_node(obj)}if(s_call){s_call.call(this)}}else{if(obj&&obj!==-1){obj.children("a.jstree-loading").removeClass("jstree-loading");obj.removeData("jstree_is_loading");if(s.correct_state){this.correct_state(obj);if(s_call){s_call.call(this)}}}else{if(s.correct_state){this.get_container().children("ul").empty();if(s_call){s_call.call(this)}}}}}},this))},this));break;case!!s.data&&!s.ajax||!!s.data&&!!s.ajax&&(!obj||obj===-1):if(!obj||obj==-1){this.parse_xml(s.data,$.proxy(function(d){if(d){d=d.replace(/ ?xmlns="[^"]*"/gi,"");if(d.length>10){d=$(d);this.get_container().children("ul").empty().append(d.children());if(s.clean_node){this.clean_node(obj)}if(s_call){s_call.call(this)}}}else{if(s.correct_state){this.get_container().children("ul").empty();if(s_call){s_call.call(this)}}}},this))}break;case!s.data&&!!s.ajax||!!s.data&&!!s.ajax&&obj&&obj!==-1:error_func=function(x,t,e){var ef=this.get_settings().xml_data.ajax.error;if(ef){ef.call(this,x,t,e)}if(obj!==-1&&obj.length){obj.children("a.jstree-loading").removeClass("jstree-loading");obj.removeData("jstree_is_loading");if(t==="success"&&s.correct_state){this.correct_state(obj)}}else{if(t==="success"&&s.correct_state){this.get_container().children("ul").empty()}}if(e_call){e_call.call(this)}};success_func=function(d,t,x){d=x.responseText;var sf=this.get_settings().xml_data.ajax.success;if(sf){d=sf.call(this,d,t,x)||d}if(d===""||d&&d.toString&&d.toString().replace(/^[\s\n]+$/,"")===""){return error_func.call(this,x,t,"")}this.parse_xml(d,$.proxy(function(d){if(d){d=d.replace(/ ?xmlns="[^"]*"/gi,"");if(d.length>10){d=$(d);if(obj===-1||!obj){this.get_container().children("ul").empty().append(d.children())}else{obj.children("a.jstree-loading").removeClass("jstree-loading");obj.append(d);obj.removeData("jstree_is_loading")}if(s.clean_node){this.clean_node(obj)}if(s_call){s_call.call(this)}}else{if(obj&&obj!==-1){obj.children("a.jstree-loading").removeClass("jstree-loading");obj.removeData("jstree_is_loading");if(s.correct_state){this.correct_state(obj);if(s_call){s_call.call(this)}}}else{if(s.correct_state){this.get_container().children("ul").empty();if(s_call){s_call.call(this)}}}}}},this))};s.ajax.context=this;s.ajax.error=error_func;s.ajax.success=success_func;if(!s.ajax.dataType){s.ajax.dataType="xml"}if($.isFunction(s.ajax.url)){s.ajax.url=s.ajax.url.call(this,obj)}if($.isFunction(s.ajax.data)){s.ajax.data=s.ajax.data.call(this,obj)}$.ajax(s.ajax);break}},parse_xml:function(xml,callback){var s=this._get_settings().xml_data;$.vakata.xslt(xml,xsl[s.xsl],callback)},get_xml:function(tp,obj,li_attr,a_attr,is_callback){var result="",s=this._get_settings(),_this=this,tmp1,tmp2,li,a,lang;if(!tp){tp="flat"}if(!is_callback){is_callback=0}obj=this._get_node(obj);if(!obj||obj===-1){obj=this.get_container().find("> ul > li")}li_attr=$.isArray(li_attr)?li_attr:["id","class"];if(!is_callback&&this.data.types&&$.inArray(s.types.type_attr,li_attr)===-1){li_attr.push(s.types.type_attr)}a_attr=$.isArray(a_attr)?a_attr:[];if(!is_callback){if(s.xml_data.get_include_preamble){result+="<"+'?xml version="1.0" encoding="UTF-8"?'+">"}result+="<root>"}obj.each(function(){result+="<item";li=$(this);$.each(li_attr,function(i,v){var t=li.attr(v);if(!s.xml_data.get_skip_empty||typeof t!=="undefined"){result+=" "+v+'="'+escape_xml((" "+(t||"")).replace(/ jstree[^ ]*/gi,"").replace(/\s+$/gi," ").replace(/^ /,"").replace(/ $/,""))+'"'}});if(li.hasClass("jstree-open")){result+=' state="open"'}if(li.hasClass("jstree-closed")){result+=' state="closed"'}if(tp==="flat"){result+=' parent_id="'+escape_xml(is_callback)+'"'}result+=">";result+="<content>";a=li.children("a");a.each(function(){tmp1=$(this);lang=false;result+="<name";if($.inArray("languages",s.plugins)!==-1){$.each(s.languages,function(k,z){if(tmp1.hasClass(z)){result+=' lang="'+escape_xml(z)+'"';lang=z;return false}})}if(a_attr.length){$.each(a_attr,function(k,z){var t=tmp1.attr(z);if(!s.xml_data.get_skip_empty||typeof t!=="undefined"){result+=" "+z+'="'+escape_xml((" "+t||"").replace(/ jstree[^ ]*/gi,"").replace(/\s+$/gi," ").replace(/^ /,"").replace(/ $/,""))+'"'}})}if(tmp1.children("ins").get(0).className.replace(/jstree[^ ]*|$/gi,"").replace(/^\s+$/gi,"").length){result+=' icon="'+escape_xml(tmp1.children("ins").get(0).className.replace(/jstree[^ ]*|$/gi,"").replace(/\s+$/gi," ").replace(/^ /,"").replace(/ $/,""))+'"'}if(tmp1.children("ins").get(0).style.backgroundImage.length){result+=' icon="'+escape_xml(tmp1.children("ins").get(0).style.backgroundImage.replace("url(","").replace(")","").replace(/'/gi,"").replace(/"/gi,""))+'"'}result+=">";result+="<![CDATA["+_this.get_text(tmp1,lang)+"]]>";result+="</name>"});result+="</content>";tmp2=li[0].id||true;li=li.find("> ul > li");if(li.length){tmp2=_this.get_xml(tp,li,li_attr,a_attr,tmp2)}else{tmp2=""}if(tp=="nest"){result+=tmp2}result+="</item>";if(tp=="flat"){result+=tmp2}});if(!is_callback){result+="</root>"}return result}}})})(jQuery);(function($){if($().jquery.split(".")[1]>=8){$.expr[":"].jstree_contains=$.expr.createPseudo(function(search){return function(a){return(a.textContent||a.innerText||"").toLowerCase().indexOf(search.toLowerCase())>=0}});$.expr[":"].jstree_title_contains=$.expr.createPseudo(function(search){return function(a){return(a.getAttribute("title")||"").toLowerCase().indexOf(search.toLowerCase())>=0}})}else{$.expr[":"].jstree_contains=function(a,i,m){return(a.textContent||a.innerText||"").toLowerCase().indexOf(m[3].toLowerCase())>=0};$.expr[":"].jstree_title_contains=function(a,i,m){return(a.getAttribute("title")||"").toLowerCase().indexOf(m[3].toLowerCase())>=0}}$.jstree.plugin("search",{__init:function(){this.data.search.str="";this.data.search.result=$();if(this._get_settings().search.show_only_matches){this.get_container().bind("search.jstree",function(e,data){$(this).children("ul").find("li").hide().removeClass("jstree-last");data.rslt.nodes.parentsUntil(".jstree").andSelf().show().filter("ul").each(function(){$(this).children("li:visible").eq(-1).addClass("jstree-last")})}).bind("clear_search.jstree",function(){$(this).children("ul").find("li").css("display","").end().end().jstree("clean_node",-1)})}},defaults:{ajax:false,search_method:"jstree_contains",show_only_matches:false},_fn:{search:function(str,skip_async){if($.trim(str)===""){this.clear_search();return}var s=this.get_settings().search,t=this,error_func=function(){},success_func=function(){};this.data.search.str=str;if(!skip_async&&s.ajax!==false&&this.get_container_ul().find("li.jstree-closed:not(:has(ul)):eq(0)").length>0){this.search.supress_callback=true;error_func=function(){};success_func=function(d,t,x){var sf=this.get_settings().search.ajax.success;if(sf){d=sf.call(this,d,t,x)||d}this.data.search.to_open=d;this._search_open()};s.ajax.context=this;s.ajax.error=error_func;s.ajax.success=success_func;if($.isFunction(s.ajax.url)){s.ajax.url=s.ajax.url.call(this,str)}if($.isFunction(s.ajax.data)){s.ajax.data=s.ajax.data.call(this,str)}if(!s.ajax.data){s.ajax.data={search_string:str}}if(!s.ajax.dataType||/^json/.exec(s.ajax.dataType)){s.ajax.dataType="json"}$.ajax(s.ajax);return}if(this.data.search.result.length){this.clear_search()}this.data.search.result=this.get_container().find("a"+(this.data.languages?"."+this.get_lang():"")+":"+s.search_method+"("+this.data.search.str+")");this.data.search.result.addClass("jstree-search").parent().parents(".jstree-closed").each(function(){t.open_node(this,false,true)});this.__callback({nodes:this.data.search.result,str:str})},clear_search:function(str){this.data.search.result.removeClass("jstree-search");this.__callback(this.data.search.result);this.data.search.result=$()},_search_open:function(is_callback){var _this=this,done=true,current=[],remaining=[];if(this.data.search.to_open.length){$.each(this.data.search.to_open,function(i,val){if(val=="#"){return true}if($(val).length&&$(val).is(".jstree-closed")){current.push(val)}else{remaining.push(val)}});if(current.length){this.data.search.to_open=remaining;$.each(current,function(i,val){_this.open_node(val,function(){_this._search_open(true)})});done=false}}if(done){this.search(this.data.search.str,true)}}}})})(jQuery);(function($){$.vakata.context={hide_on_mouseleave:false,cnt:$("<div id='vakata-contextmenu' />"),vis:false,tgt:false,par:false,func:false,data:false,rtl:false,show:function(s,t,x,y,d,p,rtl){$.vakata.context.rtl=!!rtl;var html=$.vakata.context.parse(s),h,w;if(!html){return}$.vakata.context.vis=true;$.vakata.context.tgt=t;$.vakata.context.par=p||t||null;$.vakata.context.data=d||null;$.vakata.context.cnt.html(html).css({visibility:"hidden",display:"block",left:0,top:0});if($.vakata.context.hide_on_mouseleave){$.vakata.context.cnt.one("mouseleave",function(e){$.vakata.context.hide()})}h=$.vakata.context.cnt.height();w=$.vakata.context.cnt.width();if(x+w>$(document).width()){x=$(document).width()-(w+5);$.vakata.context.cnt.find("li > ul").addClass("right")}if(y+h>$(document).height()){y=y-(h+t[0].offsetHeight);$.vakata.context.cnt.find("li > ul").addClass("bottom")}$.vakata.context.cnt.css({left:x,top:y}).find("li:has(ul)").bind("mouseenter",function(e){var w=$(document).width(),h=$(document).height(),ul=$(this).children("ul").show();if(w!==$(document).width()){ul.toggleClass("right")}if(h!==$(document).height()){ul.toggleClass("bottom")}}).bind("mouseleave",function(e){$(this).children("ul").hide()}).end().css({visibility:"visible"}).show();$(document).triggerHandler("context_show.vakata")},hide:function(){$.vakata.context.vis=false;$.vakata.context.cnt.attr("class","").css({visibility:"hidden"});$(document).triggerHandler("context_hide.vakata")},parse:function(s,is_callback){if(!s){return false}var str="",tmp=false,was_sep=true;if(!is_callback){$.vakata.context.func={}}str+="<ul>";$.each(s,function(i,val){if(!val){return true}$.vakata.context.func[i]=val.action;if(!was_sep&&val.separator_before){str+="<li class='vakata-separator vakata-separator-before'></li>"}was_sep=false;str+="<li class='"+(val._class||"")+(val._disabled?" jstree-contextmenu-disabled ":"")+"'><ins ";if(val.icon&&val.icon.indexOf("/")===-1){str+=" class='"+val.icon+"' "}if(val.icon&&val.icon.indexOf("/")!==-1){str+=" style='background:url("+val.icon+") center center no-repeat;' "}str+=">&#160;</ins><a href='#' rel='"+i+"'>";if(val.submenu){str+="<span style='float:"+($.vakata.context.rtl?"left":"right")+";'>&raquo;</span>"}str+=val.label+"</a>";if(val.submenu){tmp=$.vakata.context.parse(val.submenu,true);if(tmp){str+=tmp}}str+="</li>";if(val.separator_after){str+="<li class='vakata-separator vakata-separator-after'></li>";was_sep=true}});str=str.replace(/<li class\='vakata-separator vakata-separator-after'\><\/li\>$/,"");str+="</ul>";$(document).triggerHandler("context_parse.vakata");return str.length>10?str:false},exec:function(i){if($.isFunction($.vakata.context.func[i])){$.vakata.context.func[i].call($.vakata.context.data,$.vakata.context.par);return true}else{return false}}};$(function(){var css_string=""+"#vakata-contextmenu { display:block; visibility:hidden; left:0; top:-200px; position:absolute; margin:0; padding:0; min-width:180px; background:#ebebeb; border:1px solid silver; z-index:10000; *width:180px; } "+"#vakata-contextmenu ul { min-width:180px; *width:180px; } "+"#vakata-contextmenu ul, #vakata-contextmenu li { margin:0; padding:0; list-style-type:none; display:block; } "+"#vakata-contextmenu li { line-height:20px; min-height:20px; position:relative; padding:0px; } "+"#vakata-contextmenu li a { padding:1px 6px; line-height:17px; display:block; text-decoration:none; margin:1px 1px 0 1px; } "+"#vakata-contextmenu li ins { float:left; width:16px; height:16px; text-decoration:none; margin-right:2px; } "+"#vakata-contextmenu li a:hover, #vakata-contextmenu li.vakata-hover > a { background:gray; color:white; } "+"#vakata-contextmenu li ul { display:none; position:absolute; top:-2px; left:100%; background:#ebebeb; border:1px solid gray; } "+"#vakata-contextmenu .right { right:100%; left:auto; } "+"#vakata-contextmenu .bottom { bottom:-1px; top:auto; } "+"#vakata-contextmenu li.vakata-separator { min-height:0; height:1px; line-height:1px; font-size:1px; overflow:hidden; margin:0 2px; background:silver; /* border-top:1px solid #fefefe; */ padding:0; } ";$.vakata.css.add_sheet({str:css_string,title:"vakata"});$.vakata.context.cnt.delegate("a","click",function(e){e.preventDefault()}).delegate("a","mouseup",function(e){if(!$(this).parent().hasClass("jstree-contextmenu-disabled")&&$.vakata.context.exec($(this).attr("rel"))){$.vakata.context.hide()}else{$(this).blur()}}).delegate("a","mouseover",function(){$.vakata.context.cnt.find(".vakata-hover").removeClass("vakata-hover")}).appendTo("body");$(document).bind("mousedown",function(e){if($.vakata.context.vis&&!$.contains($.vakata.context.cnt[0],e.target)){$.vakata.context.hide()}});if(typeof $.hotkeys!=="undefined"){$(document).bind("keydown","up",function(e){if($.vakata.context.vis){var o=$.vakata.context.cnt.find("ul:visible").last().children(".vakata-hover").removeClass("vakata-hover").prevAll("li:not(.vakata-separator)").first();if(!o.length){o=$.vakata.context.cnt.find("ul:visible").last().children("li:not(.vakata-separator)").last()}o.addClass("vakata-hover");e.stopImmediatePropagation();e.preventDefault()}}).bind("keydown","down",function(e){if($.vakata.context.vis){var o=$.vakata.context.cnt.find("ul:visible").last().children(".vakata-hover").removeClass("vakata-hover").nextAll("li:not(.vakata-separator)").first();if(!o.length){o=$.vakata.context.cnt.find("ul:visible").last().children("li:not(.vakata-separator)").first()}o.addClass("vakata-hover");e.stopImmediatePropagation();e.preventDefault()}}).bind("keydown","right",function(e){if($.vakata.context.vis){$.vakata.context.cnt.find(".vakata-hover").children("ul").show().children("li:not(.vakata-separator)").removeClass("vakata-hover").first().addClass("vakata-hover");e.stopImmediatePropagation();e.preventDefault()}}).bind("keydown","left",function(e){if($.vakata.context.vis){$.vakata.context.cnt.find(".vakata-hover").children("ul").hide().children(".vakata-separator").removeClass("vakata-hover");e.stopImmediatePropagation();e.preventDefault()}}).bind("keydown","esc",function(e){$.vakata.context.hide();e.preventDefault()}).bind("keydown","space",function(e){$.vakata.context.cnt.find(".vakata-hover").last().children("a").click();e.preventDefault()})}});$.jstree.plugin("contextmenu",{__init:function(){this.get_container().delegate("a","contextmenu.jstree",$.proxy(function(e){e.preventDefault();if(!$(e.currentTarget).hasClass("jstree-loading")){this.show_contextmenu(e.currentTarget,e.pageX,e.pageY)}},this)).delegate("a","click.jstree",$.proxy(function(e){if(this.data.contextmenu){$.vakata.context.hide()}},this)).bind("destroy.jstree",$.proxy(function(){if(this.data.contextmenu){$.vakata.context.hide()}},this));$(document).bind("context_hide.vakata",$.proxy(function(){this.data.contextmenu=false},this))},defaults:{select_node:false,show_at_node:true,items:{create:{separator_before:false,separator_after:true,label:"Create",action:function(obj){this.create(obj)}},rename:{separator_before:false,separator_after:false,label:"Rename",action:function(obj){this.rename(obj)}},remove:{separator_before:false,icon:false,separator_after:false,label:"Delete",action:function(obj){if(this.is_selected(obj)){this.remove()}else{this.remove(obj)}}},ccp:{separator_before:true,icon:false,separator_after:false,label:"Edit",action:false,submenu:{cut:{separator_before:false,separator_after:false,label:"Cut",action:function(obj){this.cut(obj)}},copy:{separator_before:false,icon:false,separator_after:false,label:"Copy",action:function(obj){this.copy(obj)}},paste:{separator_before:false,icon:false,separator_after:false,label:"Paste",action:function(obj){this.paste(obj)}}}}}},_fn:{show_contextmenu:function(obj,x,y){obj=this._get_node(obj);var s=this.get_settings().contextmenu,a=obj.children("a:visible:eq(0)"),o=false,i=false;if(s.select_node&&this.data.ui&&!this.is_selected(obj)){this.deselect_all();this.select_node(obj,true)}if(s.show_at_node||typeof x==="undefined"||typeof y==="undefined"){o=a.offset();x=o.left;y=o.top+this.data.core.li_height}i=obj.data("jstree")&&obj.data("jstree").contextmenu?obj.data("jstree").contextmenu:s.items;if($.isFunction(i)){i=i.call(this,obj)}this.data.contextmenu=true;$.vakata.context.show(i,a,x,y,this,obj,this._get_settings().core.rtl);if(this.data.themes){$.vakata.context.cnt.attr("class","jstree-"+this.data.themes.theme+"-context")}}}})})(jQuery);(function($){$.jstree.plugin("types",{__init:function(){var s=this._get_settings().types;this.data.types.attach_to=[];this.get_container().bind("init.jstree",$.proxy(function(){var types=s.types,attr=s.type_attr,icons_css="",_this=this;$.each(types,function(i,tp){$.each(tp,function(k,v){if(!/^(max_depth|max_children|icon|valid_children)$/.test(k)){_this.data.types.attach_to.push(k)}});if(!tp.icon){return true}if(tp.icon.image||tp.icon.position){if(i=="default"){icons_css+=".jstree-"+_this.get_index()+" a > .jstree-icon { "}else{icons_css+=".jstree-"+_this.get_index()+" li["+attr+'="'+i+'"] > a > .jstree-icon { '}if(tp.icon.image){icons_css+=" background-image:url("+tp.icon.image+"); "}if(tp.icon.position){icons_css+=" background-position:"+tp.icon.position+"; "}else{icons_css+=" background-position:0 0; "}icons_css+="} "}});if(icons_css!==""){$.vakata.css.add_sheet({str:icons_css,title:"jstree-types"})}},this)).bind("before.jstree",$.proxy(function(e,data){var s,t,o=this._get_settings().types.use_data?this._get_node(data.args[0]):false,d=o&&o!==-1&&o.length?o.data("jstree"):false;if(d&&d.types&&d.types[data.func]===false){e.stopImmediatePropagation();return false}if($.inArray(data.func,this.data.types.attach_to)!==-1){if(!data.args[0]||!data.args[0].tagName&&!data.args[0].jquery){return}s=this._get_settings().types.types;t=this._get_type(data.args[0]);if((s[t]&&typeof s[t][data.func]!=="undefined"||s["default"]&&typeof s["default"][data.func]!=="undefined")&&this._check(data.func,data.args[0])===false){e.stopImmediatePropagation();return false}}},this));if(is_ie6){this.get_container().bind("load_node.jstree set_type.jstree",$.proxy(function(e,data){var r=data&&data.rslt&&data.rslt.obj&&data.rslt.obj!==-1?this._get_node(data.rslt.obj).parent():this.get_container_ul(),c=false,s=this._get_settings().types;$.each(s.types,function(i,tp){if(tp.icon&&(tp.icon.image||tp.icon.position)){c=i==="default"?r.find("li > a > .jstree-icon"):r.find("li["+s.type_attr+"='"+i+"'] > a > .jstree-icon");if(tp.icon.image){c.css("backgroundImage","url("+tp.icon.image+")")}c.css("backgroundPosition",tp.icon.position||"0 0")}})},this))}},defaults:{max_children:-1,max_depth:-1,
valid_children:"all",use_data:false,type_attr:"rel",types:{default:{max_children:-1,max_depth:-1,valid_children:"all"}}},_fn:{_types_notify:function(n,data){if(data.type&&this._get_settings().types.use_data){this.set_type(data.type,n)}},_get_type:function(obj){obj=this._get_node(obj);return!obj||!obj.length?false:obj.attr(this._get_settings().types.type_attr)||"default"},set_type:function(str,obj){obj=this._get_node(obj);var ret=!obj.length||!str?false:obj.attr(this._get_settings().types.type_attr,str);if(ret){this.__callback({obj:obj,type:str})}return ret},_check:function(rule,obj,opts){obj=this._get_node(obj);var v=false,t=this._get_type(obj),d=0,_this=this,s=this._get_settings().types,data=false;if(obj===-1){if(!!s[rule]){v=s[rule]}else{return}}else{if(t===false){return}data=s.use_data?obj.data("jstree"):false;if(data&&data.types&&typeof data.types[rule]!=="undefined"){v=data.types[rule]}else if(!!s.types[t]&&typeof s.types[t][rule]!=="undefined"){v=s.types[t][rule]}else if(!!s.types["default"]&&typeof s.types["default"][rule]!=="undefined"){v=s.types["default"][rule]}}if($.isFunction(v)){v=v.call(this,obj)}if(rule==="max_depth"&&obj!==-1&&opts!==false&&s.max_depth!==-2&&v!==0){obj.children("a:eq(0)").parentsUntil(".jstree","li").each(function(i){if(s.max_depth!==-1&&s.max_depth-(i+1)<=0){v=0;return false}d=i===0?v:_this._check(rule,this,false);if(d!==-1&&d-(i+1)<=0){v=0;return false}if(d>=0&&(d-(i+1)<v||v<0)){v=d-(i+1)}if(s.max_depth>=0&&(s.max_depth-(i+1)<v||v<0)){v=s.max_depth-(i+1)}})}return v},check_move:function(){if(!this.__call_old()){return false}var m=this._get_move(),s=m.rt._get_settings().types,mc=m.rt._check("max_children",m.cr),md=m.rt._check("max_depth",m.cr),vc=m.rt._check("valid_children",m.cr),ch=0,d=1,t;if(vc==="none"){return false}if($.isArray(vc)&&m.ot&&m.ot._get_type){m.o.each(function(){if($.inArray(m.ot._get_type(this),vc)===-1){d=false;return false}});if(d===false){return false}}if(s.max_children!==-2&&mc!==-1){ch=m.cr===-1?this.get_container().find("> ul > li").not(m.o).length:m.cr.find("> ul > li").not(m.o).length;if(ch+m.o.length>mc){return false}}if(s.max_depth!==-2&&md!==-1){d=0;if(md===0){return false}if(typeof m.o.d==="undefined"){t=m.o;while(t.length>0){t=t.find("> ul > li");d++}m.o.d=d}if(md-m.o.d<0){return false}}return true},create_node:function(obj,position,js,callback,is_loaded,skip_check){if(!skip_check&&(is_loaded||this._is_loaded(obj))){var p=typeof position=="string"&&position.match(/^before|after$/i)&&obj!==-1?this._get_parent(obj):this._get_node(obj),s=this._get_settings().types,mc=this._check("max_children",p),md=this._check("max_depth",p),vc=this._check("valid_children",p),ch;if(typeof js==="string"){js={data:js}}if(!js){js={}}if(vc==="none"){return false}if($.isArray(vc)){if(!js.attr||!js.attr[s.type_attr]){if(!js.attr){js.attr={}}js.attr[s.type_attr]=vc[0]}else{if($.inArray(js.attr[s.type_attr],vc)===-1){return false}}}if(s.max_children!==-2&&mc!==-1){ch=p===-1?this.get_container().find("> ul > li").length:p.find("> ul > li").length;if(ch+1>mc){return false}}if(s.max_depth!==-2&&md!==-1&&md-1<0){return false}}return this.__call_old(true,obj,position,js,callback,is_loaded,skip_check)}}})})(jQuery);(function($){$.jstree.plugin("html_data",{__init:function(){this.data.html_data.original_container_html=this.get_container().find(" > ul > li").clone(true);this.data.html_data.original_container_html.find("li").andSelf().contents().filter(function(){return this.nodeType==3}).remove()},defaults:{data:false,ajax:false,correct_state:true},_fn:{load_node:function(obj,s_call,e_call){var _this=this;this.load_node_html(obj,function(){_this.__callback({obj:_this._get_node(obj)});s_call.call(this)},e_call)},_is_loaded:function(obj){obj=this._get_node(obj);return obj==-1||!obj||!this._get_settings().html_data.ajax&&!$.isFunction(this._get_settings().html_data.data)||obj.is(".jstree-open, .jstree-leaf")||obj.children("ul").children("li").size()>0},load_node_html:function(obj,s_call,e_call){var d,s=this.get_settings().html_data,error_func=function(){},success_func=function(){};obj=this._get_node(obj);if(obj&&obj!==-1){if(obj.data("jstree_is_loading")){return}else{obj.data("jstree_is_loading",true)}}switch(!0){case $.isFunction(s.data):s.data.call(this,obj,$.proxy(function(d){if(d&&d!==""&&d.toString&&d.toString().replace(/^[\s\n]+$/,"")!==""){d=$(d);if(!d.is("ul")){d=$("<ul />").append(d)}if(obj==-1||!obj){this.get_container().children("ul").empty().append(d.children()).find("li, a").filter(function(){return!this.firstChild||!this.firstChild.tagName||this.firstChild.tagName!=="INS"}).prepend("<ins class='jstree-icon'>&#160;</ins>").end().filter("a").children("ins:first-child").not(".jstree-icon").addClass("jstree-icon")}else{obj.children("a.jstree-loading").removeClass("jstree-loading");obj.append(d).children("ul").find("li, a").filter(function(){return!this.firstChild||!this.firstChild.tagName||this.firstChild.tagName!=="INS"}).prepend("<ins class='jstree-icon'>&#160;</ins>").end().filter("a").children("ins:first-child").not(".jstree-icon").addClass("jstree-icon");obj.removeData("jstree_is_loading")}this.clean_node(obj);if(s_call){s_call.call(this)}}else{if(obj&&obj!==-1){obj.children("a.jstree-loading").removeClass("jstree-loading");obj.removeData("jstree_is_loading");if(s.correct_state){this.correct_state(obj);if(s_call){s_call.call(this)}}}else{if(s.correct_state){this.get_container().children("ul").empty();if(s_call){s_call.call(this)}}}}},this));break;case!s.data&&!s.ajax:if(!obj||obj==-1){this.get_container().children("ul").empty().append(this.data.html_data.original_container_html).find("li, a").filter(function(){return!this.firstChild||!this.firstChild.tagName||this.firstChild.tagName!=="INS"}).prepend("<ins class='jstree-icon'>&#160;</ins>").end().filter("a").children("ins:first-child").not(".jstree-icon").addClass("jstree-icon");this.clean_node()}if(s_call){s_call.call(this)}break;case!!s.data&&!s.ajax||!!s.data&&!!s.ajax&&(!obj||obj===-1):if(!obj||obj==-1){d=$(s.data);if(!d.is("ul")){d=$("<ul />").append(d)}this.get_container().children("ul").empty().append(d.children()).find("li, a").filter(function(){return!this.firstChild||!this.firstChild.tagName||this.firstChild.tagName!=="INS"}).prepend("<ins class='jstree-icon'>&#160;</ins>").end().filter("a").children("ins:first-child").not(".jstree-icon").addClass("jstree-icon");this.clean_node()}if(s_call){s_call.call(this)}break;case!s.data&&!!s.ajax||!!s.data&&!!s.ajax&&obj&&obj!==-1:obj=this._get_node(obj);error_func=function(x,t,e){var ef=this.get_settings().html_data.ajax.error;if(ef){ef.call(this,x,t,e)}if(obj!=-1&&obj.length){obj.children("a.jstree-loading").removeClass("jstree-loading");obj.removeData("jstree_is_loading");if(t==="success"&&s.correct_state){this.correct_state(obj)}}else{if(t==="success"&&s.correct_state){this.get_container().children("ul").empty()}}if(e_call){e_call.call(this)}};success_func=function(d,t,x){var sf=this.get_settings().html_data.ajax.success;if(sf){d=sf.call(this,d,t,x)||d}if(d===""||d&&d.toString&&d.toString().replace(/^[\s\n]+$/,"")===""){return error_func.call(this,x,t,"")}if(d){d=$(d);if(!d.is("ul")){d=$("<ul />").append(d)}if(obj==-1||!obj){this.get_container().children("ul").empty().append(d.children()).find("li, a").filter(function(){return!this.firstChild||!this.firstChild.tagName||this.firstChild.tagName!=="INS"}).prepend("<ins class='jstree-icon'>&#160;</ins>").end().filter("a").children("ins:first-child").not(".jstree-icon").addClass("jstree-icon")}else{obj.children("a.jstree-loading").removeClass("jstree-loading");obj.append(d).children("ul").find("li, a").filter(function(){return!this.firstChild||!this.firstChild.tagName||this.firstChild.tagName!=="INS"}).prepend("<ins class='jstree-icon'>&#160;</ins>").end().filter("a").children("ins:first-child").not(".jstree-icon").addClass("jstree-icon");obj.removeData("jstree_is_loading")}this.clean_node(obj);if(s_call){s_call.call(this)}}else{if(obj&&obj!==-1){obj.children("a.jstree-loading").removeClass("jstree-loading");obj.removeData("jstree_is_loading");if(s.correct_state){this.correct_state(obj);if(s_call){s_call.call(this)}}}else{if(s.correct_state){this.get_container().children("ul").empty();if(s_call){s_call.call(this)}}}}};s.ajax.context=this;s.ajax.error=error_func;s.ajax.success=success_func;if(!s.ajax.dataType){s.ajax.dataType="html"}if($.isFunction(s.ajax.url)){s.ajax.url=s.ajax.url.call(this,obj)}if($.isFunction(s.ajax.data)){s.ajax.data=s.ajax.data.call(this,obj)}$.ajax(s.ajax);break}}}});$.jstree.defaults.plugins.push("html_data")})(jQuery);(function($){$.jstree.plugin("themeroller",{__init:function(){var s=this._get_settings().themeroller;this.get_container().addClass("ui-widget-content").addClass("jstree-themeroller").delegate("a","mouseenter.jstree",function(e){if(!$(e.currentTarget).hasClass("jstree-loading")){$(this).addClass(s.item_h)}}).delegate("a","mouseleave.jstree",function(){$(this).removeClass(s.item_h)}).bind("init.jstree",$.proxy(function(e,data){data.inst.get_container().find("> ul > li > .jstree-loading > ins").addClass("ui-icon-refresh");this._themeroller(data.inst.get_container().find("> ul > li"))},this)).bind("open_node.jstree create_node.jstree",$.proxy(function(e,data){this._themeroller(data.rslt.obj)},this)).bind("loaded.jstree refresh.jstree",$.proxy(function(e){this._themeroller()},this)).bind("close_node.jstree",$.proxy(function(e,data){this._themeroller(data.rslt.obj)},this)).bind("delete_node.jstree",$.proxy(function(e,data){this._themeroller(data.rslt.parent)},this)).bind("correct_state.jstree",$.proxy(function(e,data){data.rslt.obj.children("ins.jstree-icon").removeClass(s.opened+" "+s.closed+" ui-icon").end().find("> a > ins.ui-icon").filter(function(){return this.className.toString().replace(s.item_clsd,"").replace(s.item_open,"").replace(s.item_leaf,"").indexOf("ui-icon-")===-1}).removeClass(s.item_open+" "+s.item_clsd).addClass(s.item_leaf||"jstree-no-icon")},this)).bind("select_node.jstree",$.proxy(function(e,data){data.rslt.obj.children("a").addClass(s.item_a)},this)).bind("deselect_node.jstree deselect_all.jstree",$.proxy(function(e,data){this.get_container().find("a."+s.item_a).removeClass(s.item_a).end().find("a.jstree-clicked").addClass(s.item_a)},this)).bind("dehover_node.jstree",$.proxy(function(e,data){data.rslt.obj.children("a").removeClass(s.item_h)},this)).bind("hover_node.jstree",$.proxy(function(e,data){this.get_container().find("a."+s.item_h).not(data.rslt.obj).removeClass(s.item_h);data.rslt.obj.children("a").addClass(s.item_h)},this)).bind("move_node.jstree",$.proxy(function(e,data){this._themeroller(data.rslt.o);this._themeroller(data.rslt.op)},this))},__destroy:function(){var s=this._get_settings().themeroller,c=["ui-icon"];$.each(s,function(i,v){v=v.split(" ");if(v.length){c=c.concat(v)}});this.get_container().removeClass("ui-widget-content").find("."+c.join(", .")).removeClass(c.join(" "))},_fn:{_themeroller:function(obj){var s=this._get_settings().themeroller;obj=!obj||obj==-1?this.get_container_ul():this._get_node(obj);obj=!obj||obj==-1?this.get_container_ul():obj.parent();obj.find("li.jstree-closed").children("ins.jstree-icon").removeClass(s.opened).addClass("ui-icon "+s.closed).end().children("a").addClass(s.item).children("ins.jstree-icon").addClass("ui-icon").filter(function(){return this.className.toString().replace(s.item_clsd,"").replace(s.item_open,"").replace(s.item_leaf,"").indexOf("ui-icon-")===-1}).removeClass(s.item_leaf+" "+s.item_open).addClass(s.item_clsd||"jstree-no-icon").end().end().end().end().find("li.jstree-open").children("ins.jstree-icon").removeClass(s.closed).addClass("ui-icon "+s.opened).end().children("a").addClass(s.item).children("ins.jstree-icon").addClass("ui-icon").filter(function(){return this.className.toString().replace(s.item_clsd,"").replace(s.item_open,"").replace(s.item_leaf,"").indexOf("ui-icon-")===-1}).removeClass(s.item_leaf+" "+s.item_clsd).addClass(s.item_open||"jstree-no-icon").end().end().end().end().find("li.jstree-leaf").children("ins.jstree-icon").removeClass(s.closed+" ui-icon "+s.opened).end().children("a").addClass(s.item).children("ins.jstree-icon").addClass("ui-icon").filter(function(){return this.className.toString().replace(s.item_clsd,"").replace(s.item_open,"").replace(s.item_leaf,"").indexOf("ui-icon-")===-1}).removeClass(s.item_clsd+" "+s.item_open).addClass(s.item_leaf||"jstree-no-icon")}},defaults:{opened:"ui-icon-triangle-1-se",closed:"ui-icon-triangle-1-e",item:"ui-state-default",item_h:"ui-state-hover",item_a:"ui-state-active",item_open:"ui-icon-folder-open",item_clsd:"ui-icon-folder-collapsed",item_leaf:"ui-icon-document"}});$(function(){var css_string=""+".jstree-themeroller .ui-icon { overflow:visible; } "+".jstree-themeroller a { padding:0 2px; } "+".jstree-themeroller .jstree-no-icon { display:none; }";$.vakata.css.add_sheet({str:css_string,title:"jstree"})})})(jQuery);(function($){$.jstree.plugin("unique",{__init:function(){this.get_container().bind("before.jstree",$.proxy(function(e,data){var nms=[],res=true,p,t;if(data.func=="move_node"){if(data.args[4]===true){if(data.args[0].o&&data.args[0].o.length){data.args[0].o.children("a").each(function(){nms.push($(this).text().replace(/^\s+/g,""))});res=this._check_unique(nms,data.args[0].np.find("> ul > li").not(data.args[0].o),"move_node")}}}if(data.func=="create_node"){if(data.args[4]||this._is_loaded(data.args[0])){p=this._get_node(data.args[0]);if(data.args[1]&&(data.args[1]==="before"||data.args[1]==="after")){p=this._get_parent(data.args[0]);if(!p||p===-1){p=this.get_container()}}if(typeof data.args[2]==="string"){nms.push(data.args[2])}else if(!data.args[2]||!data.args[2].data){nms.push(this._get_string("new_node"))}else{nms.push(data.args[2].data)}res=this._check_unique(nms,p.find("> ul > li"),"create_node")}}if(data.func=="rename_node"){nms.push(data.args[1]);t=this._get_node(data.args[0]);p=this._get_parent(t);if(!p||p===-1){p=this.get_container()}res=this._check_unique(nms,p.find("> ul > li").not(t),"rename_node")}if(!res){e.stopPropagation();return false}},this))},defaults:{error_callback:$.noop},_fn:{_check_unique:function(nms,p,func){var cnms=[],ok=true;p.children("a").each(function(){cnms.push($(this).text().replace(/^\s+/g,""))});if(!cnms.length||!nms.length){return true}$.each(nms,function(i,v){if($.inArray(v,cnms)!==-1){ok=false;return false}});if(!ok){this._get_settings().unique.error_callback.call(null,nms,p,func)}return ok},check_move:function(){if(!this.__call_old()){return false}var p=this._get_move(),nms=[];if(p.o&&p.o.length){p.o.children("a").each(function(){nms.push($(this).text().replace(/^\s+/g,""))});return this._check_unique(nms,p.np.find("> ul > li").not(p.o),"check_move")}return true}}})})(jQuery);(function($){$.jstree.plugin("wholerow",{__init:function(){if(!this.data.ui){throw"jsTree wholerow: jsTree UI plugin not included."}this.data.wholerow.html=false;this.data.wholerow.to=false;this.get_container().bind("init.jstree",$.proxy(function(e,data){this._get_settings().core.animation=0},this)).bind("open_node.jstree create_node.jstree clean_node.jstree loaded.jstree",$.proxy(function(e,data){this._prepare_wholerow_span(data&&data.rslt&&data.rslt.obj?data.rslt.obj:-1)},this)).bind("search.jstree clear_search.jstree reopen.jstree after_open.jstree after_close.jstree create_node.jstree delete_node.jstree clean_node.jstree",$.proxy(function(e,data){if(this.data.to){clearTimeout(this.data.to)}this.data.to=setTimeout(function(t,o){return function(){t._prepare_wholerow_ul(o)}}(this,data&&data.rslt&&data.rslt.obj?data.rslt.obj:-1),0)},this)).bind("deselect_all.jstree",$.proxy(function(e,data){this.get_container().find(" > .jstree-wholerow .jstree-clicked").removeClass("jstree-clicked "+(this.data.themeroller?this._get_settings().themeroller.item_a:""))},this)).bind("select_node.jstree deselect_node.jstree ",$.proxy(function(e,data){data.rslt.obj.each(function(){var ref=data.inst.get_container().find(" > .jstree-wholerow li:visible:eq("+parseInt(($(this).offset().top-data.inst.get_container().offset().top+data.inst.get_container()[0].scrollTop)/data.inst.data.core.li_height,10)+")");ref.children("a").attr("class",data.rslt.obj.children("a").attr("class"))})},this)).bind("hover_node.jstree dehover_node.jstree",$.proxy(function(e,data){this.get_container().find(" > .jstree-wholerow .jstree-hovered").removeClass("jstree-hovered "+(this.data.themeroller?this._get_settings().themeroller.item_h:""));if(e.type==="hover_node"){var ref=this.get_container().find(" > .jstree-wholerow li:visible:eq("+parseInt((data.rslt.obj.offset().top-this.get_container().offset().top+this.get_container()[0].scrollTop)/this.data.core.li_height,10)+")");ref.children("a").attr("class",data.rslt.obj.children(".jstree-hovered").attr("class"))}},this)).delegate(".jstree-wholerow-span, ins.jstree-icon, li","click.jstree",function(e){var n=$(e.currentTarget);if(e.target.tagName==="A"||e.target.tagName==="INS"&&n.closest("li").is(".jstree-open, .jstree-closed")){return}n.closest("li").children("a:visible:eq(0)").click();e.stopImmediatePropagation()}).delegate("li","mouseover.jstree",$.proxy(function(e){e.stopImmediatePropagation();if($(e.currentTarget).children(".jstree-hovered, .jstree-clicked").length){return false}this.hover_node(e.currentTarget);return false},this)).delegate("li","mouseleave.jstree",$.proxy(function(e){if($(e.currentTarget).children("a").hasClass("jstree-hovered").length){return}this.dehover_node(e.currentTarget)},this));if(is_ie7||is_ie6){$.vakata.css.add_sheet({str:".jstree-"+this.get_index()+" { position:relative; } ",title:"jstree"})}},defaults:{},__destroy:function(){this.get_container().children(".jstree-wholerow").remove();this.get_container().find(".jstree-wholerow-span").remove()},_fn:{_prepare_wholerow_span:function(obj){obj=!obj||obj==-1?this.get_container().find("> ul > li"):this._get_node(obj);if(obj===false){return}obj.each(function(){$(this).find("li").andSelf().each(function(){var $t=$(this);if($t.children(".jstree-wholerow-span").length){return true}$t.prepend("<span class='jstree-wholerow-span' style='width:"+$t.parentsUntil(".jstree","li").length*18+"px;'>&#160;</span>")})})},_prepare_wholerow_ul:function(){var o=this.get_container().children("ul").eq(0),h=o.html();o.addClass("jstree-wholerow-real");if(this.data.wholerow.last_html!==h){this.data.wholerow.last_html=h;this.get_container().children(".jstree-wholerow").remove();this.get_container().append(o.clone().removeClass("jstree-wholerow-real").wrapAll("<div class='jstree-wholerow' />").parent().width(o.parent()[0].scrollWidth).css("top",(o.height()+(is_ie7?5:0))*-1).find("li[id]").each(function(){this.removeAttribute("id")}).end())}}}});$(function(){var css_string=""+".jstree .jstree-wholerow-real { position:relative; z-index:1; } "+".jstree .jstree-wholerow-real li { cursor:pointer; } "+".jstree .jstree-wholerow-real a { border-left-color:transparent !important; border-right-color:transparent !important; } "+".jstree .jstree-wholerow { position:relative; z-index:0; height:0; } "+".jstree .jstree-wholerow ul, .jstree .jstree-wholerow li { width:100%; } "+".jstree .jstree-wholerow, .jstree .jstree-wholerow ul, .jstree .jstree-wholerow li, .jstree .jstree-wholerow a { margin:0 !important; padding:0 !important; } "+".jstree .jstree-wholerow, .jstree .jstree-wholerow ul, .jstree .jstree-wholerow li { background:transparent !important; }"+".jstree .jstree-wholerow ins, .jstree .jstree-wholerow span, .jstree .jstree-wholerow input { display:none !important; }"+".jstree .jstree-wholerow a, .jstree .jstree-wholerow a:hover { text-indent:-9999px; !important; width:100%; padding:0 !important; border-right-width:0px !important; border-left-width:0px !important; } "+".jstree .jstree-wholerow-span { position:absolute; left:0; margin:0px; padding:0; height:18px; border-width:0; padding:0; z-index:0; }";if(is_ff2){css_string+=""+".jstree .jstree-wholerow a { display:block; height:18px; margin:0; padding:0; border:0; } "+".jstree .jstree-wholerow-real a { border-color:transparent !important; } "}if(is_ie7||is_ie6){css_string+=""+".jstree .jstree-wholerow, .jstree .jstree-wholerow li, .jstree .jstree-wholerow ul, .jstree .jstree-wholerow a { margin:0; padding:0; line-height:18px; } "+".jstree .jstree-wholerow a { display:block; height:18px; line-height:18px; overflow:hidden; } "}$.vakata.css.add_sheet({str:css_string,title:"jstree"})})})(jQuery);(function($){var nodeInterface=["getChildren","getChildrenCount","getAttr","getName","getProps"],validateInterface=function(obj,inter){var valid=true;obj=obj||{};inter=[].concat(inter);$.each(inter,function(i,v){if(!$.isFunction(obj[v])){valid=false;return false}});return valid};$.jstree.plugin("model",{__init:function(){if(!this.data.json_data){throw"jsTree model: jsTree json_data plugin not included."}this._get_settings().json_data.data=function(n,b){var obj=n==-1?this._get_settings().model.object:n.data("jstree_model");if(!validateInterface(obj,nodeInterface)){return b.call(null,false)}if(this._get_settings().model.async){obj.getChildren($.proxy(function(data){this.model_done(data,b)},this))}else{this.model_done(obj.getChildren(),b)}}},defaults:{object:false,id_prefix:false,async:false},_fn:{model_done:function(data,callback){var ret=[],s=this._get_settings(),_this=this;if(!$.isArray(data)){data=[data]}$.each(data,function(i,nd){var r=nd.getProps()||{};r.attr=nd.getAttr()||{};if(nd.getChildrenCount()){r.state="closed"}r.data=nd.getName();if(!$.isArray(r.data)){r.data=[r.data]}if(_this.data.types&&$.isFunction(nd.getType)){r.attr[s.types.type_attr]=nd.getType()}if(r.attr.id&&s.model.id_prefix){r.attr.id=s.model.id_prefix+r.attr.id}if(!r.metadata){r.metadata={}}r.metadata.jstree_model=nd;ret.push(r)});callback.call(null,ret)}}})})(jQuery)})();"use strict";var _extends=Object.assign||function(target){for(var i=1;i<arguments.length;i++){var source=arguments[i];for(var key in source){if(Object.prototype.hasOwnProperty.call(source,key)){target[key]=source[key]}}}return target};var _createClass=function(){function defineProperties(target,props){for(var i=0;i<props.length;i++){var descriptor=props[i];descriptor.enumerable=descriptor.enumerable||false;descriptor.configurable=true;if("value"in descriptor)descriptor.writable=true;Object.defineProperty(target,descriptor.key,descriptor)}}return function(Constructor,protoProps,staticProps){if(protoProps)defineProperties(Constructor.prototype,protoProps);if(staticProps)defineProperties(Constructor,staticProps);return Constructor}}();var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol?"symbol":typeof obj};function _classCallCheck(instance,Constructor){if(!(instance instanceof Constructor)){throw new TypeError("Cannot call a class as a function")}}(function(factory,window,document){if(typeof define==="function"&&define.amd){define(["jquery"],function(jQuery){return factory(window,document,jQuery)})}else if((typeof module==="undefined"?"undefined":_typeof(module))==="object"&&module.exports){module.exports=factory(window,document,require("jquery"))}else{factory(window,document,jQuery)}})(function(window,document,$){var Mark=function(){function Mark(ctx){_classCallCheck(this,Mark);this.ctx=ctx}_createClass(Mark,[{key:"log",value:function log(msg){var level=arguments.length<=1||arguments[1]===undefined?"debug":arguments[1];var log=this.opt.log;if(!this.opt.debug){return}if((typeof log==="undefined"?"undefined":_typeof(log))==="object"&&typeof log[level]==="function"){log[level]("mark.js: "+msg)}}},{key:"escapeStr",value:function escapeStr(str){return str.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g,"\\$&")}},{key:"createRegExp",value:function createRegExp(str){str=this.escapeStr(str);if(Object.keys(this.opt.synonyms).length){str=this.createSynonymsRegExp(str)}if(this.opt.ignoreJoiners){str=this.setupIgnoreJoinersRegExp(str)}if(this.opt.diacritics){str=this.createDiacriticsRegExp(str)}str=this.createMergedBlanksRegExp(str);if(this.opt.ignoreJoiners){str=this.createIgnoreJoinersRegExp(str)}str=this.createAccuracyRegExp(str);return str}},{key:"createSynonymsRegExp",value:function createSynonymsRegExp(str){var syn=this.opt.synonyms,sens=this.opt.caseSensitive?"":"i";for(var index in syn){if(syn.hasOwnProperty(index)){var value=syn[index],k1=this.escapeStr(index),k2=this.escapeStr(value);str=str.replace(new RegExp("("+k1+"|"+k2+")","gm"+sens),"("+k1+"|"+k2+")")}}return str}},{key:"setupIgnoreJoinersRegExp",value:function setupIgnoreJoinersRegExp(str){return str.replace(/[^(|)]/g,function(val,indx,original){var nextChar=original.charAt(indx+1);if(/[(|)]/.test(nextChar)||nextChar===""){return val}else{return val+"\0"}})}},{key:"createIgnoreJoinersRegExp",value:function createIgnoreJoinersRegExp(str){return str.split("\0").join("[\\u00ad|\\u200b|\\u200c|\\u200d]?")}},{key:"createDiacriticsRegExp",value:function createDiacriticsRegExp(str){var sens=this.opt.caseSensitive?"":"i",dct=this.opt.caseSensitive?["aàáâãäåāąă","AÀÁÂÃÄÅĀĄĂ","cçćč","CÇĆČ","dđď","DĐĎ","eèéêëěēę","EÈÉÊËĚĒĘ","iìíîïī","IÌÍÎÏĪ","lł","LŁ","nñňń","NÑŇŃ","oòóôõöøō","OÒÓÔÕÖØŌ","rř","RŘ","sšśș","SŠŚȘ","tťț","TŤȚ","uùúûüůū","UÙÚÛÜŮŪ","yÿý","YŸÝ","zžżź","ZŽŻŹ"]:["aÀÁÂÃÄÅàáâãäåĀāąĄăĂ","cÇçćĆčČ","dđĐďĎ","eÈÉÊËèéêëěĚĒēęĘ","iÌÍÎÏìíîïĪī","lłŁ","nÑñňŇńŃ","oÒÓÔÕÖØòóôõöøŌō","rřŘ","sŠšśŚșȘ","tťŤțȚ","uÙÚÛÜùúûüůŮŪū","yŸÿýÝ","zŽžżŻźŹ"];var handled=[];str.split("").forEach(function(ch){dct.every(function(dct){if(dct.indexOf(ch)!==-1){if(handled.indexOf(dct)>-1){return false}str=str.replace(new RegExp("["+dct+"]","gm"+sens),"["+dct+"]");handled.push(dct)}return true})});return str}},{key:"createMergedBlanksRegExp",value:function createMergedBlanksRegExp(str){return str.replace(/[\s]+/gim,"[\\s]*")}},{key:"createAccuracyRegExp",value:function createAccuracyRegExp(str){var _this=this;var acc=this.opt.accuracy,val=typeof acc==="string"?acc:acc.value,ls=typeof acc==="string"?[]:acc.limiters,lsJoin="";ls.forEach(function(limiter){lsJoin+="|"+_this.escapeStr(limiter)});switch(val){case"partially":default:return"()("+str+")";case"complementary":return"()([^\\s"+lsJoin+"]*"+str+"[^\\s"+lsJoin+"]*)";case"exactly":return"(^|\\s"+lsJoin+")("+str+")(?=$|\\s"+lsJoin+")"}}},{key:"getSeparatedKeywords",value:function getSeparatedKeywords(sv){var _this2=this;var stack=[];sv.forEach(function(kw){if(!_this2.opt.separateWordSearch){if(kw.trim()&&stack.indexOf(kw)===-1){stack.push(kw)}}else{kw.split(" ").forEach(function(kwSplitted){if(kwSplitted.trim()&&stack.indexOf(kwSplitted)===-1){stack.push(kwSplitted)}})}});return{keywords:stack.sort(function(a,b){return b.length-a.length}),length:stack.length}}},{key:"getTextNodes",value:function getTextNodes(cb){var _this3=this;var val="",nodes=[];this.iterator.forEachNode(NodeFilter.SHOW_TEXT,function(node){nodes.push({start:val.length,end:(val+=node.textContent).length,node:node})},function(node){if(_this3.matchesExclude(node.parentNode,true)){return NodeFilter.FILTER_REJECT}else{return NodeFilter.FILTER_ACCEPT}},function(){cb({value:val,nodes:nodes})})}},{key:"matchesExclude",value:function matchesExclude(el,exclM){var excl=this.opt.exclude.concat(["script","style","title","head","html"]);if(exclM){excl=excl.concat(["*[data-markjs='true']"])}return DOMIterator.matches(el,excl)}},{key:"wrapRangeInTextNode",value:function wrapRangeInTextNode(node,start,end){var hEl=!this.opt.element?"mark":this.opt.element,startNode=node.splitText(start),ret=startNode.splitText(end-start);var repl=document.createElement(hEl);repl.setAttribute("data-markjs","true");if(this.opt.className){repl.setAttribute("class",this.opt.className)}repl.textContent=startNode.textContent;startNode.parentNode.replaceChild(repl,startNode);return ret}},{key:"wrapRangeInMappedTextNode",value:function wrapRangeInMappedTextNode(dict,start,end,filterCb,eachCb){var _this4=this;dict.nodes.every(function(n,i){var sibl=dict.nodes[i+1];if(typeof sibl==="undefined"||sibl.start>start){var _ret=function(){var s=start-n.start,e=(end>n.end?n.end:end)-n.start;if(filterCb(n.node)){n.node=_this4.wrapRangeInTextNode(n.node,s,e);var startStr=dict.value.substr(0,n.start),endStr=dict.value.substr(e+n.start);dict.value=startStr+endStr;dict.nodes.forEach(function(k,j){if(j>=i){if(dict.nodes[j].start>0&&j!==i){dict.nodes[j].start-=e}dict.nodes[j].end-=e}});end-=e;eachCb(n.node.previousSibling,n.start);if(end>n.end){start=n.end}else{return{v:false}}}}();if((typeof _ret==="undefined"?"undefined":_typeof(_ret))==="object")return _ret.v}return true})}},{key:"wrapMatches",value:function wrapMatches(regex,ignoreGroups,filterCb,eachCb,endCb){var _this5=this;var matchIdx=ignoreGroups===0?0:ignoreGroups+1;this.getTextNodes(function(dict){dict.nodes.forEach(function(node){node=node.node;var match=void 0;while((match=regex.exec(node.textContent))!==null&&match[matchIdx]!==""){if(!filterCb(match[matchIdx],node)){continue}var pos=match.index;if(matchIdx!==0){for(var i=1;i<matchIdx;i++){pos+=match[i].length}}node=_this5.wrapRangeInTextNode(node,pos,pos+match[matchIdx].length);eachCb(node.previousSibling);regex.lastIndex=0}});endCb()})}},{key:"wrapMatchesAcrossElements",value:function wrapMatchesAcrossElements(regex,ignoreGroups,filterCb,eachCb,endCb){var _this6=this;var matchIdx=ignoreGroups===0?0:ignoreGroups+1;this.getTextNodes(function(dict){var match=void 0;while((match=regex.exec(dict.value))!==null&&match[matchIdx]!==""){var start=match.index;if(matchIdx!==0){for(var i=1;i<matchIdx;i++){start+=match[i].length}}var end=start+match[matchIdx].length;_this6.wrapRangeInMappedTextNode(dict,start,end,function(node){return filterCb(match[matchIdx],node)},function(node,lastIndex){regex.lastIndex=lastIndex;eachCb(node)})}endCb()})}},{key:"unwrapMatches",value:function unwrapMatches(node){var parent=node.parentNode;var docFrag=document.createDocumentFragment();while(node.firstChild){docFrag.appendChild(node.removeChild(node.firstChild))}parent.replaceChild(docFrag,node);parent.normalize()}},{key:"markRegExp",value:function markRegExp(regexp,opt){var _this7=this;this.opt=opt;this.log('Searching with expression "'+regexp+'"');var totalMatches=0,fn="wrapMatches";var eachCb=function eachCb(element){totalMatches++;_this7.opt.each(element)};if(this.opt.acrossElements){fn="wrapMatchesAcrossElements"}this[fn](regexp,this.opt.ignoreGroups,function(match,node){return _this7.opt.filter(node,match,totalMatches)},eachCb,function(){if(totalMatches===0){_this7.opt.noMatch(regexp)}_this7.opt.done(totalMatches)})}},{key:"mark",value:function mark(sv,opt){var _this8=this;this.opt=opt;var totalMatches=0,fn="wrapMatches";var _getSeparatedKeywords=this.getSeparatedKeywords(typeof sv==="string"?[sv]:sv);var kwArr=_getSeparatedKeywords.keywords;var kwArrLen=_getSeparatedKeywords.length;var sens=this.opt.caseSensitive?"":"i";var handler=function handler(kw){var regex=new RegExp(_this8.createRegExp(kw),"gm"+sens),matches=0;_this8.log('Searching with expression "'+regex+'"');_this8[fn](regex,1,function(term,node){return _this8.opt.filter(node,kw,totalMatches,matches)},function(element){matches++;totalMatches++;_this8.opt.each(element)},function(){if(matches===0){_this8.opt.noMatch(kw)}if(kwArr[kwArrLen-1]===kw){_this8.opt.done(totalMatches)}else{handler(kwArr[kwArr.indexOf(kw)+1])}})};if(this.opt.acrossElements){fn="wrapMatchesAcrossElements"}if(kwArrLen===0){this.opt.done(totalMatches)}else{handler(kwArr[0])}}},{key:"unmark",value:function unmark(opt){var _this9=this;this.opt=opt;var sel=this.opt.element?this.opt.element:"*";sel+="[data-markjs]";if(this.opt.className){sel+="."+this.opt.className}this.log('Removal selector "'+sel+'"');this.iterator.forEachNode(NodeFilter.SHOW_ELEMENT,function(node){_this9.unwrapMatches(node)},function(node){var matchesSel=DOMIterator.matches(node,sel),matchesExclude=_this9.matchesExclude(node,false);if(!matchesSel||matchesExclude){
return NodeFilter.FILTER_REJECT}else{return NodeFilter.FILTER_ACCEPT}},this.opt.done)}},{key:"opt",set:function set(val){this._opt=_extends({},{element:"",className:"",exclude:[],iframes:false,separateWordSearch:true,diacritics:true,synonyms:{},accuracy:"partially",acrossElements:false,caseSensitive:false,ignoreJoiners:false,ignoreGroups:0,each:function each(){},noMatch:function noMatch(){},filter:function filter(){return true},done:function done(){},debug:false,log:window.console},val)},get:function get(){return this._opt}},{key:"iterator",get:function get(){if(!this._iterator){this._iterator=new DOMIterator(this.ctx,this.opt.iframes,this.opt.exclude)}return this._iterator}}]);return Mark}();var DOMIterator=function(){function DOMIterator(ctx){var iframes=arguments.length<=1||arguments[1]===undefined?true:arguments[1];var exclude=arguments.length<=2||arguments[2]===undefined?[]:arguments[2];_classCallCheck(this,DOMIterator);this.ctx=ctx;this.iframes=iframes;this.exclude=exclude}_createClass(DOMIterator,[{key:"getContexts",value:function getContexts(){var ctx=void 0,filteredCtx=[];if(typeof this.ctx==="undefined"||!this.ctx){ctx=[]}else if(NodeList.prototype.isPrototypeOf(this.ctx)){ctx=Array.prototype.slice.call(this.ctx)}else if(Array.isArray(this.ctx)){ctx=this.ctx}else{ctx=[this.ctx]}ctx.forEach(function(ctx){var isDescendant=filteredCtx.filter(function(contexts){return contexts.contains(ctx)}).length>0;if(filteredCtx.indexOf(ctx)===-1&&!isDescendant){filteredCtx.push(ctx)}});return filteredCtx}},{key:"getIframeContents",value:function getIframeContents(ifr,successFn){var errorFn=arguments.length<=2||arguments[2]===undefined?function(){}:arguments[2];var doc=void 0;try{var ifrWin=ifr.contentWindow;doc=ifrWin.document;if(!ifrWin||!doc){throw new Error("iframe inaccessible")}}catch(e){errorFn()}if(doc){successFn(doc)}}},{key:"onIframeReady",value:function onIframeReady(ifr,successFn,errorFn){var _this10=this;try{(function(){var ifrWin=ifr.contentWindow,bl="about:blank",compl="complete",isBlank=function isBlank(){var src=ifr.getAttribute("src").trim(),href=ifrWin.location.href;return href===bl&&src!==bl&&src},observeOnload=function observeOnload(){var listener=function listener(){try{if(!isBlank()){ifr.removeEventListener("load",listener);_this10.getIframeContents(ifr,successFn,errorFn)}}catch(e){errorFn()}};ifr.addEventListener("load",listener)};if(ifrWin.document.readyState===compl){if(isBlank()){observeOnload()}else{_this10.getIframeContents(ifr,successFn,errorFn)}}else{observeOnload()}})()}catch(e){errorFn()}}},{key:"waitForIframes",value:function waitForIframes(ctx,done){var _this11=this;var eachCalled=0;this.forEachIframe(ctx,function(){return true},function(ifr){eachCalled++;_this11.waitForIframes(ifr.querySelector("html"),function(){if(!--eachCalled){done()}})},function(handled){if(!handled){done()}})}},{key:"forEachIframe",value:function forEachIframe(ctx,filter,each){var _this12=this;var end=arguments.length<=3||arguments[3]===undefined?function(){}:arguments[3];var ifr=ctx.querySelectorAll("iframe"),open=ifr.length,handled=0;ifr=Array.prototype.slice.call(ifr);var checkEnd=function checkEnd(){if(--open<=0){end(handled)}};if(!open){checkEnd()}ifr.forEach(function(ifr){if(DOMIterator.matches(ifr,_this12.exclude)){checkEnd()}else{_this12.onIframeReady(ifr,function(con){if(filter(ifr)){handled++;each(con)}checkEnd()},checkEnd)}})}},{key:"createIterator",value:function createIterator(ctx,whatToShow,filter){return document.createNodeIterator(ctx,whatToShow,filter,false)}},{key:"createInstanceOnIframe",value:function createInstanceOnIframe(contents){return new DOMIterator(contents.querySelector("html"),this.iframes)}},{key:"compareNodeIframe",value:function compareNodeIframe(node,prevNode,ifr){var compCurr=node.compareDocumentPosition(ifr),prev=Node.DOCUMENT_POSITION_PRECEDING;if(compCurr&prev){if(prevNode!==null){var compPrev=prevNode.compareDocumentPosition(ifr),after=Node.DOCUMENT_POSITION_FOLLOWING;if(compPrev&after){return true}}else{return true}}return false}},{key:"getIteratorNode",value:function getIteratorNode(itr){var prevNode=itr.previousNode();var node=void 0;if(prevNode===null){node=itr.nextNode()}else{node=itr.nextNode()&&itr.nextNode()}return{prevNode:prevNode,node:node}}},{key:"checkIframeFilter",value:function checkIframeFilter(node,prevNode,currIfr,ifr){var key=false,handled=false;ifr.forEach(function(ifrDict,i){if(ifrDict.val===currIfr){key=i;handled=ifrDict.handled}});if(this.compareNodeIframe(node,prevNode,currIfr)){if(key===false&&!handled){ifr.push({val:currIfr,handled:true})}else if(key!==false&&!handled){ifr[key].handled=true}return true}if(key===false){ifr.push({val:currIfr,handled:false})}return false}},{key:"handleOpenIframes",value:function handleOpenIframes(ifr,whatToShow,eCb,fCb){var _this13=this;ifr.forEach(function(ifrDict){if(!ifrDict.handled){_this13.getIframeContents(ifrDict.val,function(con){_this13.createInstanceOnIframe(con).forEachNode(whatToShow,eCb,fCb)})}})}},{key:"iterateThroughNodes",value:function iterateThroughNodes(whatToShow,ctx,eachCb,filterCb,doneCb){var _this14=this;var itr=this.createIterator(ctx,whatToShow,filterCb);var ifr=[],node=void 0,prevNode=void 0,retrieveNodes=function retrieveNodes(){var _getIteratorNode=_this14.getIteratorNode(itr);prevNode=_getIteratorNode.prevNode;node=_getIteratorNode.node;return node};while(retrieveNodes()){if(this.iframes){this.forEachIframe(ctx,function(currIfr){return _this14.checkIframeFilter(node,prevNode,currIfr,ifr)},function(con){_this14.createInstanceOnIframe(con).forEachNode(whatToShow,eachCb,filterCb)})}eachCb(node)}if(this.iframes){this.handleOpenIframes(ifr,whatToShow,eachCb,filterCb)}doneCb()}},{key:"forEachNode",value:function forEachNode(whatToShow,each,filter){var _this15=this;var done=arguments.length<=3||arguments[3]===undefined?function(){}:arguments[3];var contexts=this.getContexts();var open=contexts.length;if(!open){done()}contexts.forEach(function(ctx){var ready=function ready(){_this15.iterateThroughNodes(whatToShow,ctx,each,filter,function(){if(--open<=0){done()}})};if(_this15.iframes){_this15.waitForIframes(ctx,ready)}else{ready()}})}}],[{key:"matches",value:function matches(element,selector){var selectors=typeof selector==="string"?[selector]:selector,fn=element.matches||element.matchesSelector||element.msMatchesSelector||element.mozMatchesSelector||element.oMatchesSelector||element.webkitMatchesSelector;if(fn){var match=false;selectors.every(function(sel){if(fn.call(element,sel)){match=true;return false}return true});return match}else{return false}}}]);return DOMIterator}();$.fn.mark=function(sv,opt){new Mark(this.get()).mark(sv,opt);return this};$.fn.markRegExp=function(regexp,opt){new Mark(this.get()).markRegExp(regexp,opt);return this};$.fn.unmark=function(opt){new Mark(this.get()).unmark(opt);return this};return $},window,document);(function($){$.extend({metadata:{defaults:{type:"class",name:"metadata",cre:/({.*})/,single:"metadata"},setType:function(type,name){this.defaults.type=type;this.defaults.name=name},get:function(elem,opts){var settings=$.extend({},this.defaults,opts);if(!settings.single.length)settings.single="metadata";var data=$.data(elem,settings.single);if(data)return data;data="{}";var getData=function(data){if(typeof data!="string")return data;if(data.indexOf("{")<0){data=eval("("+data+")")}};var getObject=function(data){if(typeof data!="string")return data;data=eval("("+data+")");return data};if(settings.type=="html5"){var object={};$(elem.attributes).each(function(){var name=this.nodeName;if(name.match(/^data-/))name=name.replace(/^data-/,"");else return true;object[name]=getObject(this.nodeValue)})}else{if(settings.type=="class"){var m=settings.cre.exec(elem.className);if(m)data=m[1]}else if(settings.type=="elem"){if(!elem.getElementsByTagName)return;var e=elem.getElementsByTagName(settings.name);if(e.length)data=$.trim(e[0].innerHTML)}else if(elem.getAttribute!=undefined){var attr=elem.getAttribute(settings.name);if(attr)data=attr}object=getObject(data.indexOf("{")<0?"{"+data+"}":data)}$.data(elem,settings.single,object);return object}}});$.fn.metadata=function(opts){return $.metadata.get(this[0],opts)}})(jQuery);(function($){$.fn.hasScrollBar=function(){return this.get(0)?this.get(0).scrollHeight>this.innerHeight():false}})(jQuery);(function($){var types=["DOMMouseScroll","mousewheel"];$.event.special.mousewheel={setup:function(){if(this.addEventListener)for(var i=types.length;i;)this.addEventListener(types[--i],handler,false);else this.onmousewheel=handler},teardown:function(){if(this.removeEventListener)for(var i=types.length;i;)this.removeEventListener(types[--i],handler,false);else this.onmousewheel=null}};$.fn.extend({mousewheel:function(fn){return fn?this.bind("mousewheel",fn):this.trigger("mousewheel")},unmousewheel:function(fn){return this.unbind("mousewheel",fn)}});function handler(event){var args=[].slice.call(arguments,1),delta=0,returnValue=true;event=$.event.fix(event||window.event);event.type="mousewheel";if(event.wheelDelta)delta=event.wheelDelta/120;if(event.detail)delta=-event.detail/3;args.unshift(event,delta);return $.event.handle.apply(this,args)}})(jQuery);(function($){var tips=[],reBgImage=/^url\(["']?([^"'\)]*)["']?\);?$/i,rePNG=/\.png$/i,ie6=!!window.createPopup&&document.documentElement.currentStyle.minWidth=="undefined";function handleWindowResize(){$.each(tips,function(){this.refresh(true)})}$(window).resize(handleWindowResize);$.Poshytip=function(elm,options){this.$elm=$(elm);this.opts=$.extend({},$.fn.poshytip.defaults,options);this.$tip=$(['<div class="',this.opts.className,'">','<div class="tip-inner tip-bg-image"></div>','<div class="tip-arrow tip-arrow-top tip-arrow-right tip-arrow-bottom tip-arrow-left"></div>',"</div>"].join("")).appendTo(document.body);this.$arrow=this.$tip.find("div.tip-arrow");this.$inner=this.$tip.find("div.tip-inner");this.disabled=false;this.content=null;this.init()};$.Poshytip.prototype={init:function(){tips.push(this);var title=this.$elm.attr("title");this.$elm.data("title.poshytip",title!==undefined?title:null).data("poshytip",this);if(this.opts.showOn!="none"){this.$elm.bind({"mouseenter.poshytip":$.proxy(this.mouseenter,this),"mouseleave.poshytip":$.proxy(this.mouseleave,this)});switch(this.opts.showOn){case"hover":if(this.opts.alignTo=="cursor")this.$elm.bind("mousemove.poshytip",$.proxy(this.mousemove,this));if(this.opts.allowTipHover)this.$tip.hover($.proxy(this.clearTimeouts,this),$.proxy(this.mouseleave,this));break;case"focus":this.$elm.bind({"focus.poshytip":$.proxy(this.showDelayed,this),"blur.poshytip":$.proxy(this.hideDelayed,this)});break}}},mouseenter:function(e){if(this.disabled)return true;this.$elm.attr("title","");if(this.opts.showOn=="focus")return true;this.showDelayed()},mouseleave:function(e){if(this.disabled||this.asyncAnimating&&(this.$tip[0]===e.relatedTarget||jQuery.contains(this.$tip[0],e.relatedTarget)))return true;if(!this.$tip.data("active")){var title=this.$elm.data("title.poshytip");if(title!==null)this.$elm.attr("title",title)}if(this.opts.showOn=="focus")return true;this.hideDelayed()},mousemove:function(e){if(this.disabled)return true;this.eventX=e.pageX;this.eventY=e.pageY;if(this.opts.followCursor&&this.$tip.data("active")){this.calcPos();this.$tip.css({left:this.pos.l,top:this.pos.t});if(this.pos.arrow)this.$arrow[0].className="tip-arrow tip-arrow-"+this.pos.arrow}},show:function(){if(this.disabled||this.$tip.data("active"))return;this.reset();this.update();if(!this.content)return;this.display();if(this.opts.timeOnScreen)this.hideDelayed(this.opts.timeOnScreen)},showDelayed:function(timeout){this.clearTimeouts();this.showTimeout=setTimeout($.proxy(this.show,this),typeof timeout=="number"?timeout:this.opts.showTimeout)},hide:function(){if(this.disabled||!this.$tip.data("active"))return;this.display(true)},hideDelayed:function(timeout){this.clearTimeouts();this.hideTimeout=setTimeout($.proxy(this.hide,this),typeof timeout=="number"?timeout:this.opts.hideTimeout)},reset:function(){this.$tip.queue([]).detach().css("visibility","hidden").data("active",false);this.$inner.find("*").poshytip("hide");if(this.opts.fade)this.$tip.css("opacity",this.opacity);this.$arrow[0].className="tip-arrow tip-arrow-top tip-arrow-right tip-arrow-bottom tip-arrow-left";this.asyncAnimating=false},update:function(content,dontOverwriteOption){if(this.disabled)return;var async=content!==undefined;if(async){if(!dontOverwriteOption)this.opts.content=content;if(!this.$tip.data("active"))return}else{content=this.opts.content}var self=this,newContent=typeof content=="function"?content.call(this.$elm[0],function(newContent){self.update(newContent)}):content=="[title]"?this.$elm.data("title.poshytip"):content;if(this.content!==newContent){this.$inner.empty().append(newContent);this.content=newContent}this.refresh(async)},refresh:function(async){if(this.disabled)return;if(async){if(!this.$tip.data("active"))return;var currPos={left:this.$tip.css("left"),top:this.$tip.css("top")}}this.$tip.css({left:0,top:0}).appendTo(document.body);if(this.opacity===undefined)this.opacity=this.$tip.css("opacity");var bgImage=this.$tip.css("background-image").match(reBgImage),arrow=this.$arrow.css("background-image").match(reBgImage);if(bgImage){var bgImagePNG=rePNG.test(bgImage[1]);if(ie6&&bgImagePNG){this.$tip.css("background-image","none");this.$inner.css({margin:0,border:0,padding:0});bgImage=bgImagePNG=false}else{this.$tip.prepend('<table class="tip-table" border="0" cellpadding="0" cellspacing="0"><tr><td class="tip-top tip-bg-image" colspan="2"><span></span></td><td class="tip-right tip-bg-image" rowspan="2"><span></span></td></tr><tr><td class="tip-left tip-bg-image" rowspan="2"><span></span></td><td></td></tr><tr><td class="tip-bottom tip-bg-image" colspan="2"><span></span></td></tr></table>').css({border:0,padding:0,"background-image":"none","background-color":"transparent"}).find(".tip-bg-image").css("background-image",'url("'+bgImage[1]+'")').end().find("td").eq(3).append(this.$inner)}if(bgImagePNG&&!$.support.opacity)this.opts.fade=false}if(arrow&&!$.support.opacity){if(ie6&&rePNG.test(arrow[1])){arrow=false;this.$arrow.css("background-image","none")}this.opts.fade=false}var $table=this.$tip.find("> table.tip-table");if(ie6){this.$tip[0].style.width="";$table.width("auto").find("td").eq(3).width("auto");var tipW=this.$tip.width(),minW=parseInt(this.$tip.css("min-width")),maxW=parseInt(this.$tip.css("max-width"));if(!isNaN(minW)&&tipW<minW)tipW=minW;else if(!isNaN(maxW)&&tipW>maxW)tipW=maxW;this.$tip.add($table).width(tipW).eq(0).find("td").eq(3).width("100%")}else if($table[0]){$table.width("auto").find("td").eq(3).width("auto").end().end().width(document.defaultView&&document.defaultView.getComputedStyle&&parseFloat(document.defaultView.getComputedStyle(this.$tip[0],null).width)||this.$tip.width()).find("td").eq(3).width("100%")}this.tipOuterW=this.$tip.outerWidth();this.tipOuterH=this.$tip.outerHeight();this.calcPos();if(arrow&&this.pos.arrow){this.$arrow[0].className="tip-arrow tip-arrow-"+this.pos.arrow;this.$arrow.css("visibility","inherit")}if(async&&this.opts.refreshAniDuration){this.asyncAnimating=true;var self=this;this.$tip.css(currPos).animate({left:this.pos.l,top:this.pos.t},this.opts.refreshAniDuration,function(){self.asyncAnimating=false})}else{this.$tip.css({left:this.pos.l,top:this.pos.t})}},display:function(hide){var active=this.$tip.data("active");if(active&&!hide||!active&&hide)return;this.$tip.stop();if((this.opts.slide&&this.pos.arrow||this.opts.fade)&&(hide&&this.opts.hideAniDuration||!hide&&this.opts.showAniDuration)){var from={},to={};if(this.opts.slide&&this.pos.arrow){var prop,arr;if(this.pos.arrow=="bottom"||this.pos.arrow=="top"){prop="top";arr="bottom"}else{prop="left";arr="right"}var val=parseInt(this.$tip.css(prop));from[prop]=val+(hide?0:this.pos.arrow==arr?-this.opts.slideOffset:this.opts.slideOffset);to[prop]=val+(hide?this.pos.arrow==arr?this.opts.slideOffset:-this.opts.slideOffset:0)+"px"}if(this.opts.fade){from.opacity=hide?this.$tip.css("opacity"):0;to.opacity=hide?0:this.opacity}this.$tip.css(from).animate(to,this.opts[hide?"hideAniDuration":"showAniDuration"])}hide?this.$tip.queue($.proxy(this.reset,this)):this.$tip.css("visibility","inherit");if(active){var title=this.$elm.data("title.poshytip");if(title!==null)this.$elm.attr("title",title)}this.$tip.data("active",!active)},disable:function(){this.reset();this.disabled=true},enable:function(){this.disabled=false},destroy:function(){this.reset();this.$tip.remove();delete this.$tip;this.content=null;this.$elm.unbind(".poshytip").removeData("title.poshytip").removeData("poshytip");tips.splice($.inArray(this,tips),1)},clearTimeouts:function(){if(this.showTimeout){clearTimeout(this.showTimeout);this.showTimeout=0}if(this.hideTimeout){clearTimeout(this.hideTimeout);this.hideTimeout=0}},calcPos:function(){var pos={l:0,t:0,arrow:""},$win=$(window),win={l:$win.scrollLeft(),t:$win.scrollTop(),w:$win.width(),h:$win.height()},xL,xC,xR,yT,yC,yB;if(this.opts.alignTo=="cursor"){xL=xC=xR=this.eventX;yT=yC=yB=this.eventY}else{var elmOffset=this.$elm.offset(),elm={l:elmOffset.left,t:elmOffset.top,w:this.$elm.outerWidth(),h:this.$elm.outerHeight()};xL=elm.l+(this.opts.alignX!="inner-right"?0:elm.w);xC=xL+Math.floor(elm.w/2);xR=xL+(this.opts.alignX!="inner-left"?elm.w:0);yT=elm.t+(this.opts.alignY!="inner-bottom"?0:elm.h);yC=yT+Math.floor(elm.h/2);yB=yT+(this.opts.alignY!="inner-top"?elm.h:0)}switch(this.opts.alignX){case"right":case"inner-left":pos.l=xR+this.opts.offsetX;if(this.opts.keepInViewport&&pos.l+this.tipOuterW>win.l+win.w)pos.l=win.l+win.w-this.tipOuterW;if(this.opts.alignX=="right"||this.opts.alignY=="center")pos.arrow="left";break;case"center":pos.l=xC-Math.floor(this.tipOuterW/2);if(this.opts.keepInViewport){if(pos.l+this.tipOuterW>win.l+win.w)pos.l=win.l+win.w-this.tipOuterW;else if(pos.l<win.l)pos.l=win.l}break;default:pos.l=xL-this.tipOuterW-this.opts.offsetX;if(this.opts.keepInViewport&&pos.l<win.l)pos.l=win.l;if(this.opts.alignX=="left"||this.opts.alignY=="center")pos.arrow="right"}switch(this.opts.alignY){case"bottom":case"inner-top":pos.t=yB+this.opts.offsetY;if(!pos.arrow||this.opts.alignTo=="cursor")pos.arrow="top";if(this.opts.keepInViewport&&pos.t+this.tipOuterH>win.t+win.h){pos.t=yT-this.tipOuterH-this.opts.offsetY;if(pos.arrow=="top")pos.arrow="bottom"}break;case"center":pos.t=yC-Math.floor(this.tipOuterH/2);if(this.opts.keepInViewport){if(pos.t+this.tipOuterH>win.t+win.h)pos.t=win.t+win.h-this.tipOuterH;else if(pos.t<win.t)pos.t=win.t}break;default:pos.t=yT-this.tipOuterH-this.opts.offsetY;if(!pos.arrow||this.opts.alignTo=="cursor")pos.arrow="bottom";if(this.opts.keepInViewport&&pos.t<win.t){pos.t=yB+this.opts.offsetY;if(pos.arrow=="bottom")pos.arrow="top"}}this.pos=pos}};$.fn.poshytip=function(options){if(typeof options=="string"){var args=arguments,method=options;Array.prototype.shift.call(args);if(method=="destroy"){this.die?this.die("mouseenter.poshytip").die("focus.poshytip"):$(document).undelegate(this.selector,"mouseenter.poshytip").undelegate(this.selector,"focus.poshytip")}return this.each(function(){var poshytip=$(this).data("poshytip");if(poshytip&&poshytip[method])poshytip[method].apply(poshytip,args)})}var opts=$.extend({},$.fn.poshytip.defaults,options);if(!$("#poshytip-css-"+opts.className)[0])$(['<style id="poshytip-css-',opts.className,'" type="text/css">',"div.",opts.className,"{visibility:hidden;position:absolute;top:0;left:0;}","div.",opts.className," table.tip-table, div.",opts.className," table.tip-table td{margin:0;font-family:inherit;font-size:inherit;font-weight:inherit;font-style:inherit;font-variant:inherit;vertical-align:middle;}","div.",opts.className," td.tip-bg-image span{display:block;font:1px/1px sans-serif;height:",opts.bgImageFrameSize,"px;width:",opts.bgImageFrameSize,"px;overflow:hidden;}","div.",opts.className," td.tip-right{background-position:100% 0;}","div.",opts.className," td.tip-bottom{background-position:100% 100%;}","div.",opts.className," td.tip-left{background-position:0 100%;}","div.",opts.className," div.tip-inner{background-position:-",opts.bgImageFrameSize,"px -",opts.bgImageFrameSize,"px;}","div.",opts.className," div.tip-arrow{visibility:hidden;position:absolute;overflow:hidden;font:1px/1px sans-serif;}","</style>"].join("")).appendTo("head");if(opts.liveEvents&&opts.showOn!="none"){var handler,deadOpts=$.extend({},opts,{liveEvents:false});switch(opts.showOn){case"hover":handler=function(){var $this=$(this);if(!$this.data("poshytip"))$this.poshytip(deadOpts).poshytip("mouseenter")};this.live?this.live("mouseenter.poshytip",handler):$(document).delegate(this.selector,"mouseenter.poshytip",handler);break;case"focus":handler=function(){var $this=$(this);if(!$this.data("poshytip"))$this.poshytip(deadOpts).poshytip("showDelayed")};this.live?this.live("focus.poshytip",handler):$(document).delegate(this.selector,"focus.poshytip",handler);break}return this}return this.each(function(){new $.Poshytip(this,opts)})};$.fn.poshytip.defaults={content:"[title]",className:"tip-yellow",bgImageFrameSize:10,showTimeout:500,hideTimeout:100,timeOnScreen:0,showOn:"hover",liveEvents:false,alignTo:"cursor",alignX:"right",alignY:"top",offsetX:-22,offsetY:18,keepInViewport:true,allowTipHover:true,followCursor:false,fade:true,slide:true,slideOffset:8,showAniDuration:300,hideAniDuration:300,refreshAniDuration:200}})(jQuery);if(window.jQuery)(function($){if(!$.support.opacity&&!$.support.style)try{document.execCommand("BackgroundImageCache",false,true)}catch(e){}$.fn.rating=function(options){if(this.length==0)return this;if(typeof arguments[0]=="string"){if(this.length>1){var args=arguments;return this.each(function(){$.fn.rating.apply($(this),args)})}$.fn.rating[arguments[0]].apply(this,$.makeArray(arguments).slice(1)||[]);return this}var options=$.extend({},$.fn.rating.options,options||{});$.fn.rating.calls++;this.not(".star-rating-applied").addClass("star-rating-applied").each(function(){var control,input=$(this);var eid=(this.name||"unnamed-rating").replace(/\[|\]/g,"_").replace(/^\_+|\_+$/g,"");var context=$(this.form||document.body);var raters=context.data("rating");if(!raters||raters.call!=$.fn.rating.calls)raters={count:0,call:$.fn.rating.calls};var rater=raters[eid]||context.data("rating"+eid);if(rater)control=rater.data("rating");if(rater&&control)control.count++;else{control=$.extend({},options||{},($.metadata?input.metadata():$.meta?input.data():null)||{},{count:0,stars:[],inputs:[]});control.serial=raters.count++;rater=$('<span class="star-rating-control"/>');input.before(rater);rater.addClass("rating-to-be-drawn");if(input.attr("disabled")||input.hasClass("disabled"))control.readOnly=true;if(input.hasClass("required"))control.required=true;rater.append(control.cancel=$('<div class="rating-cancel"><a title="'+control.cancel+'">'+control.cancelValue+"</a></div>").on("mouseover",function(){$(this).rating("drain");$(this).addClass("star-rating-hover")}).on("mouseout",function(){$(this).rating("draw");$(this).removeClass("star-rating-hover")}).on("click",function(){$(this).rating("select")}).data("rating",control))}var star=$('<div role="text" aria-label="'+this.title+'" class="star-rating rater-'+control.serial+'"><a title="'+(this.title||this.value)+'">'+this.value+"</a></div>");rater.append(star);if(this.id)star.attr("id",this.id);if(this.className)star.addClass(this.className);if(control.half)control.split=2;if(typeof control.split=="number"&&control.split>0){var stw=($.fn.width?star.width():0)||control.starWidth;var spi=control.count%control.split,spw=Math.floor(stw/control.split);star.width(spw).find("a").css({"margin-left":"-"+spi*spw+"px"})}if(control.readOnly)star.addClass("star-rating-readonly");else star.addClass("star-rating-live").on("mouseover",function(){$(this).rating("fill");$(this).rating("focus")}).on("mouseout",function(){$(this).rating("draw");$(this).rating("blur")}).on("click",function(){$(this).rating("select")});if(this.checked)control.current=star;if(this.nodeName=="A"){if($(this).hasClass("selected"))control.current=star}input.hide();input.on("change.rating",function(event){if(event.selfTriggered)return false;$(this).rating("select")});star.data("rating.input",input.data("rating.star",star));control.stars[control.stars.length]=star[0];control.inputs[control.inputs.length]=input[0];control.rater=raters[eid]=rater;control.context=context;input.data("rating",control);rater.data("rating",control);star.data("rating",control);context.data("rating",raters);context.data("rating"+eid,rater)});$(".rating-to-be-drawn").rating("draw").removeClass("rating-to-be-drawn");return this};$.extend($.fn.rating,{calls:0,focus:function(){var control=this.data("rating");if(!control)return this;if(!control.focus)return this;var input=$(this).data("rating.input")||$(this.tagName=="INPUT"?this:null);if(control.focus)control.focus.apply(input[0],[input.val(),$("a",input.data("rating.star"))[0]])},blur:function(){var control=this.data("rating");if(!control)return this;if(!control.blur)return this;var input=$(this).data("rating.input")||$(this.tagName=="INPUT"?this:null);if(control.blur)control.blur.apply(input[0],[input.val(),$("a",input.data("rating.star"))[0]])},fill:function(){var control=this.data("rating");if(!control)return this;if(control.readOnly)return;this.rating("drain");this.prevAll().addBack().filter(".rater-"+control.serial).addClass("star-rating-hover")},drain:function(){var control=this.data("rating");if(!control)return this;if(control.readOnly)return;control.rater.children().filter(".rater-"+control.serial).removeClass("star-rating-on").removeClass("star-rating-hover")},draw:function(){var control=this.data("rating");if(!control)return this;this.rating("drain");var current=$(control.current);var starson=current.length?current.prevAll().addBack().filter(".rater-"+control.serial):null;if(starson)starson.addClass("star-rating-on");control.cancel[control.readOnly||control.required?"hide":"show"]();this.siblings()[control.readOnly?"addClass":"removeClass"]("star-rating-readonly")},select:function(value,wantCallBack){var control=this.data("rating");if(!control)return this;if(control.readOnly)return;control.current=null;if(typeof value!="undefined"||this.length>1){if(typeof value=="number")return $(control.stars[value]).rating("select",undefined,wantCallBack);if(typeof value=="string"){$.each(control.stars,function(){if($(this).data("rating.input").val()==value)$(this).rating("select",undefined,wantCallBack)});return this}}else{control.current=this[0].tagName=="INPUT"?this.data("rating.star"):this.is(".rater-"+control.serial)?this:null}this.data("rating",control);this.rating("draw");var current=$(control.current?control.current.data("rating.input"):null);var lastipt=$(control.inputs).filter(":checked");var deadipt=$(control.inputs).not(current);deadipt.prop("checked",false);current.prop("checked",true);$(current.length?current:lastipt).trigger({type:"change",selfTriggered:true});if((wantCallBack||wantCallBack==undefined)&&control.callback)control.callback.apply(current[0],[current.val(),$("a",control.current)[0]]);return this},readOnly:function(toggle,disable){var control=this.data("rating");if(!control)return this;control.readOnly=toggle||toggle==undefined?true:false;if(disable)$(control.inputs).attr("disabled","disabled");else $(control.inputs).removeAttr("disabled");this.data("rating",control);this.rating("draw")},disable:function(){this.rating("readOnly",true,true)},enable:function(){this.rating("readOnly",false,false)}});$.fn.rating.options={cancel:"Cancel Rating",cancelValue:"",split:0,starWidth:16};$(function(){$("input[type=radio].star").rating()})})(jQuery);(function(factory){"use strict";if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof module!=="undefined"&&module.exports){module.exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){"use strict";var $scrollTo=$.scrollTo=function(target,duration,settings){return $(window).scrollTo(target,duration,settings)};$scrollTo.defaults={axis:"xy",duration:0,limit:true};function isWin(elem){return!elem.nodeName||$.inArray(elem.nodeName.toLowerCase(),["iframe","#document","html","body"])!==-1}$.fn.scrollTo=function(target,duration,settings){if(typeof duration==="object"){settings=duration;duration=0}if(typeof settings==="function"){settings={onAfter:settings}}if(target==="max"){target=9e9}settings=$.extend({},$scrollTo.defaults,settings);duration=duration||settings.duration;var queue=settings.queue&&settings.axis.length>1;if(queue){duration/=2}settings.offset=both(settings.offset);settings.over=both(settings.over);return this.each(function(){if(target===null)return;var win=isWin(this),elem=win?this.contentWindow||window:this,$elem=$(elem),targ=target,attr={},toff;switch(typeof targ){case"number":case"string":if(/^([+-]=?)?\d+(\.\d+)?(px|%)?$/.test(targ)){targ=both(targ);break}targ=win?$(targ):$(targ,elem);case"object":if(targ.length===0)return;if(targ.is||targ.style){toff=(targ=$(targ)).offset()}}var offset=$.isFunction(settings.offset)&&settings.offset(elem,targ)||settings.offset;$.each(settings.axis.split(""),function(i,axis){var Pos=axis==="x"?"Left":"Top",pos=Pos.toLowerCase(),key="scroll"+Pos,prev=$elem[key](),max=$scrollTo.max(elem,axis);if(toff){attr[key]=toff[pos]+(win?0:prev-$elem.offset()[pos]);if(settings.margin){attr[key]-=parseInt(targ.css("margin"+Pos),10)||0;attr[key]-=parseInt(targ.css("border"+Pos+"Width"),10)||0}attr[key]+=offset[pos]||0;if(settings.over[pos]){attr[key]+=targ[axis==="x"?"width":"height"]()*settings.over[pos]}}else{var val=targ[pos];attr[key]=val.slice&&val.slice(-1)==="%"?parseFloat(val)/100*max:val}if(settings.limit&&/^\d+$/.test(attr[key])){attr[key]=attr[key]<=0?0:Math.min(attr[key],max)}if(!i&&settings.axis.length>1){if(prev===attr[key]){attr={}}else if(queue){animate(settings.onAfterFirst);attr={}}}});animate(settings.onAfter);function animate(callback){var opts=$.extend({},settings,{queue:true,duration:duration,complete:callback&&function(){callback.call(elem,targ,settings)}});$elem.animate(attr,opts)}})};$scrollTo.max=function(elem,axis){var Dim=axis==="x"?"Width":"Height",scroll="scroll"+Dim;if(!isWin(elem))return elem[scroll]-$(elem)[Dim.toLowerCase()]();var size="client"+Dim,doc=elem.ownerDocument||elem.document,html=doc.documentElement,body=doc.body;return Math.max(html[scroll],body[scroll])-Math.min(html[size],body[size])};function both(val){return $.isFunction(val)||$.isPlainObject(val)?val:{top:val,left:val}}$.Tween.propHooks.scrollLeft=$.Tween.propHooks.scrollTop={get:function(t){return $(t.elem)[t.prop]()},set:function(t){var curr=this.get(t);if(t.options.interrupt&&t._last&&t._last!==curr){return $(t.elem).stop()}var next=Math.round(t.now);if(curr!==next){$(t.elem)[t.prop](next);t._last=this.get(t)}}};return $scrollTo});(function(document,Math,undefined){(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(jQuery&&!jQuery.fn.sparkline){factory(jQuery)}})(function($){"use strict";var UNSET_OPTION={},getDefaults,createClass,SPFormat,clipval,quartile,normalizeValue,normalizeValues,remove,isNumber,all,sum,addCSS,ensureArray,formatNumber,RangeMap,MouseHandler,Tooltip,barHighlightMixin,line,bar,tristate,discrete,bullet,pie,box,defaultStyles,initStyles,VShape,VCanvas_base,VCanvas_canvas,VCanvas_vml,pending,shapeCount=0;getDefaults=function(){return{common:{type:"line",lineColor:"#00f",fillColor:"#cdf",defaultPixelsPerValue:3,width:"auto",height:"auto",composite:false,tagValuesAttribute:"values",tagOptionsPrefix:"spark",enableTagOptions:false,enableHighlight:true,highlightLighten:1.4,tooltipSkipNull:true,tooltipPrefix:"",tooltipSuffix:"",disableHiddenCheck:false,numberFormatter:false,numberDigitGroupCount:3,numberDigitGroupSep:",",numberDecimalMark:".",disableTooltips:false,disableInteraction:false},line:{spotColor:"#f80",highlightSpotColor:"#5f5",
highlightLineColor:"#f22",spotRadius:1.5,minSpotColor:"#f80",maxSpotColor:"#f80",lineWidth:1,normalRangeMin:undefined,normalRangeMax:undefined,normalRangeColor:"#ccc",drawNormalOnTop:false,chartRangeMin:undefined,chartRangeMax:undefined,chartRangeMinX:undefined,chartRangeMaxX:undefined,tooltipFormat:new SPFormat('<span style="color: {{color}}">&#9679;</span> {{prefix}}{{y}}{{suffix}}')},bar:{barColor:"#3366cc",negBarColor:"#f44",stackedBarColor:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],zeroColor:undefined,nullColor:undefined,zeroAxis:true,barWidth:4,barSpacing:1,chartRangeMax:undefined,chartRangeMin:undefined,chartRangeClip:false,colorMap:undefined,tooltipFormat:new SPFormat('<span style="color: {{color}}">&#9679;</span> {{prefix}}{{value}}{{suffix}}')},tristate:{barWidth:4,barSpacing:1,posBarColor:"#6f6",negBarColor:"#f44",zeroBarColor:"#999",colorMap:{},tooltipFormat:new SPFormat('<span style="color: {{color}}">&#9679;</span> {{value:map}}'),tooltipValueLookups:{map:{"-1":"Loss",0:"Draw",1:"Win"}}},discrete:{lineHeight:"auto",thresholdColor:undefined,thresholdValue:0,chartRangeMax:undefined,chartRangeMin:undefined,chartRangeClip:false,tooltipFormat:new SPFormat("{{prefix}}{{value}}{{suffix}}")},bullet:{targetColor:"#f33",targetWidth:3,performanceColor:"#33f",rangeColors:["#d3dafe","#a8b6ff","#7f94ff"],base:undefined,tooltipFormat:new SPFormat("{{fieldkey:fields}} - {{value}}"),tooltipValueLookups:{fields:{r:"Range",p:"Performance",t:"Target"}}},pie:{offset:0,sliceColors:["#3366cc","#dc3912","#ff9900","#109618","#66aa00","#dd4477","#0099c6","#990099"],borderWidth:0,borderColor:"#000",tooltipFormat:new SPFormat('<span style="color: {{color}}">&#9679;</span> {{value}} ({{percent.1}}%)')},box:{raw:false,boxLineColor:"#000",boxFillColor:"#cdf",whiskerColor:"#000",outlierLineColor:"#333",outlierFillColor:"#fff",medianColor:"#f00",showOutliers:true,outlierIQR:1.5,spotRadius:1.5,target:undefined,targetColor:"#4a2",chartRangeMax:undefined,chartRangeMin:undefined,tooltipFormat:new SPFormat("{{field:fields}}: {{value}}"),tooltipFormatFieldlistKey:"field",tooltipValueLookups:{fields:{lq:"Lower Quartile",med:"Median",uq:"Upper Quartile",lo:"Left Outlier",ro:"Right Outlier",lw:"Left Whisker",rw:"Right Whisker"}}}}};defaultStyles=".jqstooltip { "+"position: absolute;"+"left: 0px;"+"top: 0px;"+"visibility: hidden;"+"background: rgb(0, 0, 0) transparent;"+"background-color: rgba(0,0,0,0.6);"+"filter:progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000);"+'-ms-filter: "progid:DXImageTransform.Microsoft.gradient(startColorstr=#99000000, endColorstr=#99000000)";'+"color: white;"+"font: 10px arial, san serif;"+"text-align: left;"+"white-space: nowrap;"+"padding: 5px;"+"border: 1px solid white;"+"z-index: 10000;"+"}"+".jqsfield { "+"color: white;"+"font: 10px arial, san serif;"+"text-align: left;"+"}";createClass=function(){var Class,args;Class=function(){this.init.apply(this,arguments)};if(arguments.length>1){if(arguments[0]){Class.prototype=$.extend(new arguments[0],arguments[arguments.length-1]);Class._super=arguments[0].prototype}else{Class.prototype=arguments[arguments.length-1]}if(arguments.length>2){args=Array.prototype.slice.call(arguments,1,-1);args.unshift(Class.prototype);$.extend.apply($,args)}}else{Class.prototype=arguments[0]}Class.prototype.cls=Class;return Class};$.SPFormatClass=SPFormat=createClass({fre:/\{\{([\w.]+?)(:(.+?))?\}\}/g,precre:/(\w+)\.(\d+)/,init:function(format,fclass){this.format=format;this.fclass=fclass},render:function(fieldset,lookups,options){var self=this,fields=fieldset,match,token,lookupkey,fieldvalue,prec;return this.format.replace(this.fre,function(){var lookup;token=arguments[1];lookupkey=arguments[3];match=self.precre.exec(token);if(match){prec=match[2];token=match[1]}else{prec=false}fieldvalue=fields[token];if(fieldvalue===undefined){return""}if(lookupkey&&lookups&&lookups[lookupkey]){lookup=lookups[lookupkey];if(lookup.get){return lookups[lookupkey].get(fieldvalue)||fieldvalue}else{return lookups[lookupkey][fieldvalue]||fieldvalue}}if(isNumber(fieldvalue)){if(options.get("numberFormatter")){fieldvalue=options.get("numberFormatter")(fieldvalue)}else{fieldvalue=formatNumber(fieldvalue,prec,options.get("numberDigitGroupCount"),options.get("numberDigitGroupSep"),options.get("numberDecimalMark"))}}return fieldvalue})}});$.spformat=function(format,fclass){return new SPFormat(format,fclass)};clipval=function(val,min,max){if(val<min){return min}if(val>max){return max}return val};quartile=function(values,q){var vl;if(q===2){vl=Math.floor(values.length/2);return values.length%2?values[vl]:(values[vl-1]+values[vl])/2}else{if(values.length%2){vl=(values.length*q+q)/4;return vl%1?(values[Math.floor(vl)]+values[Math.floor(vl)-1])/2:values[vl-1]}else{vl=(values.length*q+2)/4;return vl%1?(values[Math.floor(vl)]+values[Math.floor(vl)-1])/2:values[vl-1]}}};normalizeValue=function(val){var nf;switch(val){case"undefined":val=undefined;break;case"null":val=null;break;case"true":val=true;break;case"false":val=false;break;default:nf=parseFloat(val);if(val==nf){val=nf}}return val};normalizeValues=function(vals){var i,result=[];for(i=vals.length;i--;){result[i]=normalizeValue(vals[i])}return result};remove=function(vals,filter){var i,vl,result=[];for(i=0,vl=vals.length;i<vl;i++){if(vals[i]!==filter){result.push(vals[i])}}return result};isNumber=function(num){return!isNaN(parseFloat(num))&&isFinite(num)};formatNumber=function(num,prec,groupsize,groupsep,decsep){var p,i;num=(prec===false?parseFloat(num).toString():num.toFixed(prec)).split("");p=(p=$.inArray(".",num))<0?num.length:p;if(p<num.length){num[p]=decsep}for(i=p-groupsize;i>0;i-=groupsize){num.splice(i,0,groupsep)}return num.join("")};all=function(val,arr,ignoreNull){var i;for(i=arr.length;i--;){if(ignoreNull&&arr[i]===null)continue;if(arr[i]!==val){return false}}return true};sum=function(vals){var total=0,i;for(i=vals.length;i--;){total+=typeof vals[i]==="number"?vals[i]:0}return total};ensureArray=function(val){return $.isArray(val)?val:[val]};addCSS=function(css){var tag;if(document.createStyleSheet){document.createStyleSheet().cssText=css}else{tag=document.createElement("style");tag.type="text/css";document.getElementsByTagName("head")[0].appendChild(tag);tag[typeof document.body.style.WebkitAppearance=="string"?"innerText":"innerHTML"]=css}};$.fn.simpledraw=function(width,height,useExisting,interact){var target,mhandler;if(useExisting&&(target=this.data("_jqs_vcanvas"))){return target}if($.fn.sparkline.canvas===false){return false}else if($.fn.sparkline.canvas===undefined){var el=document.createElement("canvas");if(!!(el.getContext&&el.getContext("2d"))){$.fn.sparkline.canvas=function(width,height,target,interact){return new VCanvas_canvas(width,height,target,interact)}}else if(document.namespaces&&!document.namespaces.v){document.namespaces.add("v","urn:schemas-microsoft-com:vml","#default#VML");$.fn.sparkline.canvas=function(width,height,target,interact){return new VCanvas_vml(width,height,target)}}else{$.fn.sparkline.canvas=false;return false}}if(width===undefined){width=$(this).innerWidth()}if(height===undefined){height=$(this).innerHeight()}target=$.fn.sparkline.canvas(width,height,this,interact);mhandler=$(this).data("_jqs_mhandler");if(mhandler){mhandler.registerCanvas(target)}return target};$.fn.cleardraw=function(){var target=this.data("_jqs_vcanvas");if(target){target.reset()}};$.RangeMapClass=RangeMap=createClass({init:function(map){var key,range,rangelist=[];for(key in map){if(map.hasOwnProperty(key)&&typeof key==="string"&&key.indexOf(":")>-1){range=key.split(":");range[0]=range[0].length===0?-Infinity:parseFloat(range[0]);range[1]=range[1].length===0?Infinity:parseFloat(range[1]);range[2]=map[key];rangelist.push(range)}}this.map=map;this.rangelist=rangelist||false},get:function(value){var rangelist=this.rangelist,i,range,result;if((result=this.map[value])!==undefined){return result}if(rangelist){for(i=rangelist.length;i--;){range=rangelist[i];if(range[0]<=value&&range[1]>=value){return range[2]}}}return undefined}});$.range_map=function(map){return new RangeMap(map)};MouseHandler=createClass({init:function(el,options){var $el=$(el);this.$el=$el;this.options=options;this.currentPageX=0;this.currentPageY=0;this.el=el;this.splist=[];this.tooltip=null;this.over=false;this.displayTooltips=!options.get("disableTooltips");this.highlightEnabled=!options.get("disableHighlight")},registerSparkline:function(sp){this.splist.push(sp);if(this.over){this.updateDisplay()}},registerCanvas:function(canvas){var $canvas=$(canvas.canvas);this.canvas=canvas;this.$canvas=$canvas;$canvas.mouseenter($.proxy(this.mouseenter,this));$canvas.mouseleave($.proxy(this.mouseleave,this));$canvas.click($.proxy(this.mouseclick,this))},reset:function(removeTooltip){this.splist=[];if(this.tooltip&&removeTooltip){this.tooltip.remove();this.tooltip=undefined}},mouseclick:function(e){var clickEvent=$.Event("sparklineClick");clickEvent.originalEvent=e;clickEvent.sparklines=this.splist;this.$el.trigger(clickEvent)},mouseenter:function(e){$(document.body).unbind("mousemove.jqs");$(document.body).bind("mousemove.jqs",$.proxy(this.mousemove,this));this.over=true;this.currentPageX=e.pageX;this.currentPageY=e.pageY;this.currentEl=e.target;if(!this.tooltip&&this.displayTooltips){this.tooltip=new Tooltip(this.options);this.tooltip.updatePosition(e.pageX,e.pageY)}this.updateDisplay()},mouseleave:function(){$(document.body).unbind("mousemove.jqs");var splist=this.splist,spcount=splist.length,needsRefresh=false,sp,i;this.over=false;this.currentEl=null;if(this.tooltip){this.tooltip.remove();this.tooltip=null}for(i=0;i<spcount;i++){sp=splist[i];if(sp.clearRegionHighlight()){needsRefresh=true}}if(needsRefresh){this.canvas.render()}},mousemove:function(e){this.currentPageX=e.pageX;this.currentPageY=e.pageY;this.currentEl=e.target;if(this.tooltip){this.tooltip.updatePosition(e.pageX,e.pageY)}this.updateDisplay()},updateDisplay:function(){var splist=this.splist,spcount=splist.length,needsRefresh=false,offset=this.$canvas.offset(),localX=this.currentPageX-offset.left,localY=this.currentPageY-offset.top,tooltiphtml,sp,i,result,changeEvent;if(!this.over){return}for(i=0;i<spcount;i++){sp=splist[i];result=sp.setRegionHighlight(this.currentEl,localX,localY);if(result){needsRefresh=true}}if(needsRefresh){changeEvent=$.Event("sparklineRegionChange");changeEvent.sparklines=this.splist;this.$el.trigger(changeEvent);if(this.tooltip){tooltiphtml="";for(i=0;i<spcount;i++){sp=splist[i];tooltiphtml+=sp.getCurrentRegionTooltip()}this.tooltip.setContent(tooltiphtml)}if(!this.disableHighlight){this.canvas.render()}}if(result===null){this.mouseleave()}}});Tooltip=createClass({sizeStyle:"position: static !important;"+"display: block !important;"+"visibility: hidden !important;"+"float: left !important;",init:function(options){var tooltipClassname=options.get("tooltipClassname","jqstooltip"),sizetipStyle=this.sizeStyle,offset;this.container=options.get("tooltipContainer")||document.body;this.tooltipOffsetX=options.get("tooltipOffsetX",10);this.tooltipOffsetY=options.get("tooltipOffsetY",12);$("#jqssizetip").remove();$("#jqstooltip").remove();this.sizetip=$("<div/>",{id:"jqssizetip",style:sizetipStyle,class:tooltipClassname});this.tooltip=$("<div/>",{id:"jqstooltip",class:tooltipClassname}).appendTo(this.container);offset=this.tooltip.offset();this.offsetLeft=offset.left;this.offsetTop=offset.top;this.hidden=true;$(window).unbind("resize.jqs scroll.jqs");$(window).bind("resize.jqs scroll.jqs",$.proxy(this.updateWindowDims,this));this.updateWindowDims()},updateWindowDims:function(){this.scrollTop=$(window).scrollTop();this.scrollLeft=$(window).scrollLeft();this.scrollRight=this.scrollLeft+$(window).width();this.updatePosition()},getSize:function(content){this.sizetip.html(content).appendTo(this.container);this.width=this.sizetip.width()+1;this.height=this.sizetip.height();this.sizetip.remove()},setContent:function(content){if(!content){this.tooltip.css("visibility","hidden");this.hidden=true;return}this.getSize(content);this.tooltip.html(content).css({width:this.width,height:this.height,visibility:"visible"});if(this.hidden){this.hidden=false;this.updatePosition()}},updatePosition:function(x,y){if(x===undefined){if(this.mousex===undefined){return}x=this.mousex-this.offsetLeft;y=this.mousey-this.offsetTop}else{this.mousex=x=x-this.offsetLeft;this.mousey=y=y-this.offsetTop}if(!this.height||!this.width||this.hidden){return}y-=this.height+this.tooltipOffsetY;x+=this.tooltipOffsetX;if(y<this.scrollTop){y=this.scrollTop}if(x<this.scrollLeft){x=this.scrollLeft}else if(x+this.width>this.scrollRight){x=this.scrollRight-this.width}this.tooltip.css({left:x,top:y})},remove:function(){this.tooltip.remove();this.sizetip.remove();this.sizetip=this.tooltip=undefined;$(window).unbind("resize.jqs scroll.jqs")}});initStyles=function(){addCSS(defaultStyles)};$(initStyles);pending=[];$.fn.sparkline=function(userValues,userOptions){return this.each(function(){var options=new $.fn.sparkline.options(this,userOptions),$this=$(this),render,i;render=function(){var values,width,height,tmp,mhandler,sp,vals;if(userValues==="html"||userValues===undefined){vals=this.getAttribute(options.get("tagValuesAttribute"));if(vals===undefined||vals===null){vals=$this.html()}values=vals.replace(/(^\s*<!--)|(-->\s*$)|\s+/g,"").split(",")}else{values=userValues}width=options.get("width")==="auto"?values.length*options.get("defaultPixelsPerValue"):options.get("width");if(options.get("height")==="auto"){if(!options.get("composite")||!$.data(this,"_jqs_vcanvas")){tmp=document.createElement("span");tmp.innerHTML="a";$this.html(tmp);height=$(tmp).innerHeight()||$(tmp).height();$(tmp).remove();tmp=null}}else{height=options.get("height")}if(!options.get("disableInteraction")){mhandler=$.data(this,"_jqs_mhandler");if(!mhandler){mhandler=new MouseHandler(this,options);$.data(this,"_jqs_mhandler",mhandler)}else if(!options.get("composite")){mhandler.reset()}}else{mhandler=false}if(options.get("composite")&&!$.data(this,"_jqs_vcanvas")){if(!$.data(this,"_jqs_errnotify")){alert("Attempted to attach a composite sparkline to an element with no existing sparkline");$.data(this,"_jqs_errnotify",true)}return}sp=new($.fn.sparkline[options.get("type")])(this,values,options,width,height);sp.render();if(mhandler){mhandler.registerSparkline(sp)}};if($(this).html()&&!options.get("disableHiddenCheck")&&$(this).is(":hidden")||!$(this).parents("body").length){if(!options.get("composite")&&$.data(this,"_jqs_pending")){for(i=pending.length;i;i--){if(pending[i-1][0]==this){pending.splice(i-1,1)}}}pending.push([this,render]);$.data(this,"_jqs_pending",true)}else{render.call(this)}})};$.fn.sparkline.defaults=getDefaults();$.sparkline_display_visible=function(){var el,i,pl;var done=[];for(i=0,pl=pending.length;i<pl;i++){el=pending[i][0];if($(el).is(":visible")&&!$(el).parents().is(":hidden")){pending[i][1].call(el);$.data(pending[i][0],"_jqs_pending",false);done.push(i)}else if(!$(el).closest("html").length&&!$.data(el,"_jqs_pending")){$.data(pending[i][0],"_jqs_pending",false);done.push(i)}}for(i=done.length;i;i--){pending.splice(done[i-1],1)}};$.fn.sparkline.options=createClass({init:function(tag,userOptions){var extendedOptions,defaults,base,tagOptionType;this.userOptions=userOptions=userOptions||{};this.tag=tag;this.tagValCache={};defaults=$.fn.sparkline.defaults;base=defaults.common;this.tagOptionsPrefix=userOptions.enableTagOptions&&(userOptions.tagOptionsPrefix||base.tagOptionsPrefix);tagOptionType=this.getTagSetting("type");if(tagOptionType===UNSET_OPTION){extendedOptions=defaults[userOptions.type||base.type]}else{extendedOptions=defaults[tagOptionType]}this.mergedOptions=$.extend({},base,extendedOptions,userOptions)},getTagSetting:function(key){var prefix=this.tagOptionsPrefix,val,i,pairs,keyval;if(prefix===false||prefix===undefined){return UNSET_OPTION}if(this.tagValCache.hasOwnProperty(key)){val=this.tagValCache.key}else{val=this.tag.getAttribute(prefix+key);if(val===undefined||val===null){val=UNSET_OPTION}else if(val.substr(0,1)==="["){val=val.substr(1,val.length-2).split(",");for(i=val.length;i--;){val[i]=normalizeValue(val[i].replace(/(^\s*)|(\s*$)/g,""))}}else if(val.substr(0,1)==="{"){pairs=val.substr(1,val.length-2).split(",");val={};for(i=pairs.length;i--;){keyval=pairs[i].split(":",2);val[keyval[0].replace(/(^\s*)|(\s*$)/g,"")]=normalizeValue(keyval[1].replace(/(^\s*)|(\s*$)/g,""))}}else{val=normalizeValue(val)}this.tagValCache.key=val}return val},get:function(key,defaultval){var tagOption=this.getTagSetting(key),result;if(tagOption!==UNSET_OPTION){return tagOption}return(result=this.mergedOptions[key])===undefined?defaultval:result}});$.fn.sparkline._base=createClass({disabled:false,init:function(el,values,options,width,height){this.el=el;this.$el=$(el);this.values=values;this.options=options;this.width=width;this.height=height;this.currentRegion=undefined},initTarget:function(){var interactive=!this.options.get("disableInteraction");if(!(this.target=this.$el.simpledraw(this.width,this.height,this.options.get("composite"),interactive))){this.disabled=true}else{this.canvasWidth=this.target.pixelWidth;this.canvasHeight=this.target.pixelHeight}},render:function(){if(this.disabled){this.el.innerHTML="";return false}return true},getRegion:function(x,y){},setRegionHighlight:function(el,x,y){var currentRegion=this.currentRegion,highlightEnabled=!this.options.get("disableHighlight"),newRegion;if(x>this.canvasWidth||y>this.canvasHeight||x<0||y<0){return null}newRegion=this.getRegion(el,x,y);if(currentRegion!==newRegion){if(currentRegion!==undefined&&highlightEnabled){this.removeHighlight()}this.currentRegion=newRegion;if(newRegion!==undefined&&highlightEnabled){this.renderHighlight()}return true}return false},clearRegionHighlight:function(){if(this.currentRegion!==undefined){this.removeHighlight();this.currentRegion=undefined;return true}return false},renderHighlight:function(){this.changeHighlight(true)},removeHighlight:function(){this.changeHighlight(false)},changeHighlight:function(highlight){},getCurrentRegionTooltip:function(){var options=this.options,header="",entries=[],fields,formats,formatlen,fclass,text,i,showFields,showFieldsKey,newFields,fv,formatter,format,fieldlen,j;if(this.currentRegion===undefined){return""}fields=this.getCurrentRegionFields();formatter=options.get("tooltipFormatter");if(formatter){return formatter(this,options,fields)}if(options.get("tooltipChartTitle")){header+='<div class="jqs jqstitle">'+options.get("tooltipChartTitle")+"</div>\n"}formats=this.options.get("tooltipFormat");if(!formats){return""}if(!$.isArray(formats)){formats=[formats]}if(!$.isArray(fields)){fields=[fields]}showFields=this.options.get("tooltipFormatFieldlist");showFieldsKey=this.options.get("tooltipFormatFieldlistKey");if(showFields&&showFieldsKey){newFields=[];for(i=fields.length;i--;){fv=fields[i][showFieldsKey];if((j=$.inArray(fv,showFields))!=-1){newFields[j]=fields[i]}}fields=newFields}formatlen=formats.length;fieldlen=fields.length;for(i=0;i<formatlen;i++){format=formats[i];if(typeof format==="string"){format=new SPFormat(format)}fclass=format.fclass||"jqsfield";for(j=0;j<fieldlen;j++){if(!fields[j].isNull||!options.get("tooltipSkipNull")){$.extend(fields[j],{prefix:options.get("tooltipPrefix"),suffix:options.get("tooltipSuffix")});text=format.render(fields[j],options.get("tooltipValueLookups"),options);entries.push('<div class="'+fclass+'">'+text+"</div>")}}}if(entries.length){return header+entries.join("\n")}return""},getCurrentRegionFields:function(){},calcHighlightColor:function(color,options){var highlightColor=options.get("highlightColor"),lighten=options.get("highlightLighten"),parse,mult,rgbnew,i;if(highlightColor){return highlightColor}if(lighten){parse=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i.exec(color)||/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i.exec(color);if(parse){rgbnew=[];mult=color.length===4?16:1;for(i=0;i<3;i++){rgbnew[i]=clipval(Math.round(parseInt(parse[i+1],16)*mult*lighten),0,255)}return"rgb("+rgbnew.join(",")+")"}}return color}});barHighlightMixin={changeHighlight:function(highlight){var currentRegion=this.currentRegion,target=this.target,shapeids=this.regionShapes[currentRegion],newShapes;if(shapeids){newShapes=this.renderRegion(currentRegion,highlight);if($.isArray(newShapes)||$.isArray(shapeids)){target.replaceWithShapes(shapeids,newShapes);this.regionShapes[currentRegion]=$.map(newShapes,function(newShape){return newShape.id})}else{target.replaceWithShape(shapeids,newShapes);this.regionShapes[currentRegion]=newShapes.id}}},render:function(){var values=this.values,target=this.target,regionShapes=this.regionShapes,shapes,ids,i,j;if(!this.cls._super.render.call(this)){return}for(i=values.length;i--;){shapes=this.renderRegion(i);if(shapes){if($.isArray(shapes)){ids=[];for(j=shapes.length;j--;){shapes[j].append();ids.push(shapes[j].id)}regionShapes[i]=ids}else{shapes.append();regionShapes[i]=shapes.id}}else{regionShapes[i]=null}}target.render()}};$.fn.sparkline.line=line=createClass($.fn.sparkline._base,{type:"line",init:function(el,values,options,width,height){line._super.init.call(this,el,values,options,width,height);this.vertices=[];this.regionMap=[];this.xvalues=[];this.yvalues=[];this.yminmax=[];this.hightlightSpotId=null;this.lastShapeId=null;this.initTarget()},getRegion:function(el,x,y){var i,regionMap=this.regionMap;for(i=regionMap.length;i--;){if(regionMap[i]!==null&&x>=regionMap[i][0]&&x<=regionMap[i][1]){return regionMap[i][2]}}return undefined},getCurrentRegionFields:function(){var currentRegion=this.currentRegion;return{isNull:this.yvalues[currentRegion]===null,x:this.xvalues[currentRegion],y:this.yvalues[currentRegion],color:this.options.get("lineColor"),fillColor:this.options.get("fillColor"),offset:currentRegion}},renderHighlight:function(){var currentRegion=this.currentRegion,target=this.target,vertex=this.vertices[currentRegion],options=this.options,spotRadius=options.get("spotRadius"),highlightSpotColor=options.get("highlightSpotColor"),highlightLineColor=options.get("highlightLineColor"),highlightSpot,highlightLine;if(!vertex){return}if(spotRadius&&highlightSpotColor){highlightSpot=target.drawCircle(vertex[0],vertex[1],spotRadius,undefined,highlightSpotColor);this.highlightSpotId=highlightSpot.id;target.insertAfterShape(this.lastShapeId,highlightSpot)}if(highlightLineColor){highlightLine=target.drawLine(vertex[0],this.canvasTop,vertex[0],this.canvasTop+this.canvasHeight,highlightLineColor);this.highlightLineId=highlightLine.id;target.insertAfterShape(this.lastShapeId,highlightLine)}},removeHighlight:function(){var target=this.target;if(this.highlightSpotId){target.removeShapeId(this.highlightSpotId);this.highlightSpotId=null}if(this.highlightLineId){target.removeShapeId(this.highlightLineId);this.highlightLineId=null}},scanValues:function(){var values=this.values,valcount=values.length,xvalues=this.xvalues,yvalues=this.yvalues,yminmax=this.yminmax,i,val,isStr,isArray,sp;for(i=0;i<valcount;i++){val=values[i];isStr=typeof values[i]==="string";isArray=typeof values[i]==="object"&&values[i]instanceof Array;sp=isStr&&values[i].split(":");if(isStr&&sp.length===2){xvalues.push(Number(sp[0]));yvalues.push(Number(sp[1]));yminmax.push(Number(sp[1]))}else if(isArray){xvalues.push(val[0]);yvalues.push(val[1]);yminmax.push(val[1])}else{xvalues.push(i);if(values[i]===null||values[i]==="null"){yvalues.push(null)}else{yvalues.push(Number(val));yminmax.push(Number(val))}}}if(this.options.get("xvalues")){xvalues=this.options.get("xvalues")}this.maxy=this.maxyorg=Math.max.apply(Math,yminmax);this.miny=this.minyorg=Math.min.apply(Math,yminmax);this.maxx=Math.max.apply(Math,xvalues);this.minx=Math.min.apply(Math,xvalues);this.xvalues=xvalues;this.yvalues=yvalues;this.yminmax=yminmax},processRangeOptions:function(){var options=this.options,normalRangeMin=options.get("normalRangeMin"),normalRangeMax=options.get("normalRangeMax");if(normalRangeMin!==undefined){if(normalRangeMin<this.miny){this.miny=normalRangeMin}if(normalRangeMax>this.maxy){this.maxy=normalRangeMax}}if(options.get("chartRangeMin")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMin")<this.miny)){this.miny=options.get("chartRangeMin")}if(options.get("chartRangeMax")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMax")>this.maxy)){this.maxy=options.get("chartRangeMax")}if(options.get("chartRangeMinX")!==undefined&&(options.get("chartRangeClipX")||options.get("chartRangeMinX")<this.minx)){this.minx=options.get("chartRangeMinX")}if(options.get("chartRangeMaxX")!==undefined&&(options.get("chartRangeClipX")||options.get("chartRangeMaxX")>this.maxx)){this.maxx=options.get("chartRangeMaxX")}},drawNormalRange:function(canvasLeft,canvasTop,canvasHeight,canvasWidth,rangey){var normalRangeMin=this.options.get("normalRangeMin"),normalRangeMax=this.options.get("normalRangeMax"),ytop=canvasTop+Math.round(canvasHeight-canvasHeight*((normalRangeMax-this.miny)/rangey)),height=Math.round(canvasHeight*(normalRangeMax-normalRangeMin)/rangey);this.target.drawRect(canvasLeft,ytop,canvasWidth,height,undefined,this.options.get("normalRangeColor")).append()},render:function(){var options=this.options,target=this.target,canvasWidth=this.canvasWidth,canvasHeight=this.canvasHeight,vertices=this.vertices,spotRadius=options.get("spotRadius"),regionMap=this.regionMap,rangex,rangey,yvallast,canvasTop,canvasLeft,vertex,path,paths,x,y,xnext,xpos,xposnext,last,next,yvalcount,lineShapes,fillShapes,plen,valueSpots,hlSpotsEnabled,color,xvalues,yvalues,i;if(!line._super.render.call(this)){return}this.scanValues();this.processRangeOptions();xvalues=this.xvalues;yvalues=this.yvalues;if(!this.yminmax.length||this.yvalues.length<2){return}canvasTop=canvasLeft=0;rangex=this.maxx-this.minx===0?1:this.maxx-this.minx;rangey=this.maxy-this.miny===0?1:this.maxy-this.miny;yvallast=this.yvalues.length-1;if(spotRadius&&(canvasWidth<spotRadius*4||canvasHeight<spotRadius*4)){spotRadius=0}if(spotRadius){hlSpotsEnabled=options.get("highlightSpotColor")&&!options.get("disableInteraction");if(hlSpotsEnabled||options.get("minSpotColor")||options.get("spotColor")&&yvalues[yvallast]===this.miny){canvasHeight-=Math.ceil(spotRadius)}if(hlSpotsEnabled||options.get("maxSpotColor")||options.get("spotColor")&&yvalues[yvallast]===this.maxy){canvasHeight-=Math.ceil(spotRadius);canvasTop+=Math.ceil(spotRadius)}if(hlSpotsEnabled||(options.get("minSpotColor")||options.get("maxSpotColor"))&&(yvalues[0]===this.miny||yvalues[0]===this.maxy)){canvasLeft+=Math.ceil(spotRadius);canvasWidth-=Math.ceil(spotRadius)}if(hlSpotsEnabled||options.get("spotColor")||(options.get("minSpotColor")||options.get("maxSpotColor")&&(yvalues[yvallast]===this.miny||yvalues[yvallast]===this.maxy))){canvasWidth-=Math.ceil(spotRadius)}}canvasHeight--;if(options.get("normalRangeMin")!==undefined&&!options.get("drawNormalOnTop")){this.drawNormalRange(canvasLeft,canvasTop,canvasHeight,canvasWidth,rangey)}path=[];paths=[path];last=next=null;yvalcount=yvalues.length;for(i=0;i<yvalcount;i++){x=xvalues[i];xnext=xvalues[i+1];y=yvalues[i];xpos=canvasLeft+Math.round((x-this.minx)*(canvasWidth/rangex));xposnext=i<yvalcount-1?canvasLeft+Math.round((xnext-this.minx)*(canvasWidth/rangex)):canvasWidth;next=xpos+(xposnext-xpos)/2;regionMap[i]=[last||0,next,i];last=next;if(y===null){if(i){if(yvalues[i-1]!==null){path=[];paths.push(path)}vertices.push(null)}}else{if(y<this.miny){y=this.miny}if(y>this.maxy){y=this.maxy}if(!path.length){path.push([xpos,canvasTop+canvasHeight])}vertex=[xpos,canvasTop+Math.round(canvasHeight-canvasHeight*((y-this.miny)/rangey))];path.push(vertex);vertices.push(vertex)}}lineShapes=[];fillShapes=[];plen=paths.length;for(i=0;i<plen;i++){path=paths[i];if(path.length){if(options.get("fillColor")){path.push([path[path.length-1][0],canvasTop+canvasHeight]);fillShapes.push(path.slice(0));path.pop()}if(path.length>2){path[0]=[path[0][0],path[1][1]]}lineShapes.push(path)}}plen=fillShapes.length;for(i=0;i<plen;i++){target.drawShape(fillShapes[i],options.get("fillColor"),options.get("fillColor")).append()}if(options.get("normalRangeMin")!==undefined&&options.get("drawNormalOnTop")){this.drawNormalRange(canvasLeft,canvasTop,canvasHeight,canvasWidth,rangey)}plen=lineShapes.length;for(i=0;i<plen;i++){target.drawShape(lineShapes[i],options.get("lineColor"),undefined,options.get("lineWidth")).append()}if(spotRadius&&options.get("valueSpots")){valueSpots=options.get("valueSpots");if(valueSpots.get===undefined){valueSpots=new RangeMap(valueSpots)}for(i=0;i<yvalcount;i++){color=valueSpots.get(yvalues[i]);if(color){target.drawCircle(canvasLeft+Math.round((xvalues[i]-this.minx)*(canvasWidth/rangex)),canvasTop+Math.round(canvasHeight-canvasHeight*((yvalues[i]-this.miny)/rangey)),spotRadius,undefined,color).append()}}}if(spotRadius&&options.get("spotColor")&&yvalues[yvallast]!==null){target.drawCircle(canvasLeft+Math.round((xvalues[xvalues.length-1]-this.minx)*(canvasWidth/rangex)),canvasTop+Math.round(canvasHeight-canvasHeight*((yvalues[yvallast]-this.miny)/rangey)),spotRadius,undefined,options.get("spotColor")).append()}if(this.maxy!==this.minyorg){if(spotRadius&&options.get("minSpotColor")){x=xvalues[$.inArray(this.minyorg,yvalues)];target.drawCircle(canvasLeft+Math.round((x-this.minx)*(canvasWidth/rangex)),canvasTop+Math.round(canvasHeight-canvasHeight*((this.minyorg-this.miny)/rangey)),spotRadius,undefined,options.get("minSpotColor")).append()}if(spotRadius&&options.get("maxSpotColor")){x=xvalues[$.inArray(this.maxyorg,yvalues)];target.drawCircle(canvasLeft+Math.round((x-this.minx)*(canvasWidth/rangex)),canvasTop+Math.round(canvasHeight-canvasHeight*((this.maxyorg-this.miny)/rangey)),spotRadius,undefined,options.get("maxSpotColor")).append()}}this.lastShapeId=target.getLastShapeId();this.canvasTop=canvasTop;target.render()}});$.fn.sparkline.bar=bar=createClass($.fn.sparkline._base,barHighlightMixin,{type:"bar",init:function(el,values,options,width,height){var barWidth=parseInt(options.get("barWidth"),10),barSpacing=parseInt(options.get("barSpacing"),10),chartRangeMin=options.get("chartRangeMin"),chartRangeMax=options.get("chartRangeMax"),chartRangeClip=options.get("chartRangeClip"),stackMin=Infinity,stackMax=-Infinity,isStackString,groupMin,groupMax,stackRanges,numValues,i,vlen,range,zeroAxis,xaxisOffset,min,max,clipMin,clipMax,stacked,vlist,j,slen,svals,val,yoffset,yMaxCalc,canvasHeightEf;bar._super.init.call(this,el,values,options,width,height);for(i=0,vlen=values.length;i<vlen;i++){val=values[i];isStackString=typeof val==="string"&&val.indexOf(":")>-1;if(isStackString||$.isArray(val)){stacked=true;if(isStackString){val=values[i]=normalizeValues(val.split(":"))}val=remove(val,null);groupMin=Math.min.apply(Math,val);groupMax=Math.max.apply(Math,val);if(groupMin<stackMin){stackMin=groupMin}if(groupMax>stackMax){stackMax=groupMax}}}this.stacked=stacked;this.regionShapes={};this.barWidth=barWidth;this.barSpacing=barSpacing;this.totalBarWidth=barWidth+barSpacing;this.width=width=values.length*barWidth+(values.length-1)*barSpacing;this.initTarget();if(chartRangeClip){clipMin=chartRangeMin===undefined?-Infinity:chartRangeMin;clipMax=chartRangeMax===undefined?Infinity:chartRangeMax}numValues=[];stackRanges=stacked?[]:numValues;var stackTotals=[];var stackRangesNeg=[];for(i=0,vlen=values.length;i<vlen;i++){if(stacked){vlist=values[i];values[i]=svals=[];stackTotals[i]=0;stackRanges[i]=stackRangesNeg[i]=0;for(j=0,slen=vlist.length;j<slen;j++){val=svals[j]=chartRangeClip?clipval(vlist[j],clipMin,clipMax):vlist[j];if(val!==null){if(val>0){stackTotals[i]+=val}if(stackMin<0&&stackMax>0){if(val<0){stackRangesNeg[i]+=Math.abs(val)}else{stackRanges[i]+=val}}else{stackRanges[i]+=Math.abs(val-(val<0?stackMax:stackMin))}numValues.push(val)}}}else{val=chartRangeClip?clipval(values[i],clipMin,clipMax):values[i];val=values[i]=normalizeValue(val);if(val!==null){
numValues.push(val)}}}this.max=max=Math.max.apply(Math,numValues);this.min=min=Math.min.apply(Math,numValues);this.stackMax=stackMax=stacked?Math.max.apply(Math,stackTotals):max;this.stackMin=stackMin=stacked?Math.min.apply(Math,numValues):min;if(options.get("chartRangeMin")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMin")<min)){min=options.get("chartRangeMin")}if(options.get("chartRangeMax")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMax")>max)){max=options.get("chartRangeMax")}this.zeroAxis=zeroAxis=options.get("zeroAxis",true);if(min<=0&&max>=0&&zeroAxis){xaxisOffset=0}else if(zeroAxis==false){xaxisOffset=min}else if(min>0){xaxisOffset=min}else{xaxisOffset=max}this.xaxisOffset=xaxisOffset;range=stacked?Math.max.apply(Math,stackRanges)+Math.max.apply(Math,stackRangesNeg):max-min;this.canvasHeightEf=zeroAxis&&min<0?this.canvasHeight-2:this.canvasHeight-1;if(min<xaxisOffset){yMaxCalc=stacked&&max>=0?stackMax:max;yoffset=(yMaxCalc-xaxisOffset)/range*this.canvasHeight;if(yoffset!==Math.ceil(yoffset)){this.canvasHeightEf-=2;yoffset=Math.ceil(yoffset)}}else{yoffset=this.canvasHeight}this.yoffset=yoffset;if($.isArray(options.get("colorMap"))){this.colorMapByIndex=options.get("colorMap");this.colorMapByValue=null}else{this.colorMapByIndex=null;this.colorMapByValue=options.get("colorMap");if(this.colorMapByValue&&this.colorMapByValue.get===undefined){this.colorMapByValue=new RangeMap(this.colorMapByValue)}}this.range=range},getRegion:function(el,x,y){var result=Math.floor(x/this.totalBarWidth);return result<0||result>=this.values.length?undefined:result},getCurrentRegionFields:function(){var currentRegion=this.currentRegion,values=ensureArray(this.values[currentRegion]),result=[],value,i;for(i=values.length;i--;){value=values[i];result.push({isNull:value===null,value:value,color:this.calcColor(i,value,currentRegion),offset:currentRegion})}return result},calcColor:function(stacknum,value,valuenum){var colorMapByIndex=this.colorMapByIndex,colorMapByValue=this.colorMapByValue,options=this.options,color,newColor;if(this.stacked){color=options.get("stackedBarColor")}else{color=value<0?options.get("negBarColor"):options.get("barColor")}if(value===0&&options.get("zeroColor")!==undefined){color=options.get("zeroColor")}if(colorMapByValue&&(newColor=colorMapByValue.get(value))){color=newColor}else if(colorMapByIndex&&colorMapByIndex.length>valuenum){color=colorMapByIndex[valuenum]}return $.isArray(color)?color[stacknum%color.length]:color},renderRegion:function(valuenum,highlight){var vals=this.values[valuenum],options=this.options,xaxisOffset=this.xaxisOffset,result=[],range=this.range,stacked=this.stacked,target=this.target,x=valuenum*this.totalBarWidth,canvasHeightEf=this.canvasHeightEf,yoffset=this.yoffset,y,height,color,isNull,yoffsetNeg,i,valcount,val,minPlotted,allMin;vals=$.isArray(vals)?vals:[vals];valcount=vals.length;val=vals[0];isNull=all(null,vals);allMin=all(xaxisOffset,vals,true);if(isNull){if(options.get("nullColor")){color=highlight?options.get("nullColor"):this.calcHighlightColor(options.get("nullColor"),options);y=yoffset>0?yoffset-1:yoffset;return target.drawRect(x,y,this.barWidth-1,0,color,color)}else{return undefined}}yoffsetNeg=yoffset;for(i=0;i<valcount;i++){val=vals[i];if(stacked&&val===xaxisOffset){if(!allMin||minPlotted){continue}minPlotted=true}if(range>0){height=Math.floor(canvasHeightEf*(Math.abs(val-xaxisOffset)/range))+1}else{height=1}if(val<xaxisOffset||val===xaxisOffset&&yoffset===0){y=yoffsetNeg;yoffsetNeg+=height}else{y=yoffset-height;yoffset-=height}color=this.calcColor(i,val,valuenum);if(highlight){color=this.calcHighlightColor(color,options)}result.push(target.drawRect(x,y,this.barWidth-1,height-1,color,color))}if(result.length===1){return result[0]}return result}});$.fn.sparkline.tristate=tristate=createClass($.fn.sparkline._base,barHighlightMixin,{type:"tristate",init:function(el,values,options,width,height){var barWidth=parseInt(options.get("barWidth"),10),barSpacing=parseInt(options.get("barSpacing"),10);tristate._super.init.call(this,el,values,options,width,height);this.regionShapes={};this.barWidth=barWidth;this.barSpacing=barSpacing;this.totalBarWidth=barWidth+barSpacing;this.values=$.map(values,Number);this.width=width=values.length*barWidth+(values.length-1)*barSpacing;if($.isArray(options.get("colorMap"))){this.colorMapByIndex=options.get("colorMap");this.colorMapByValue=null}else{this.colorMapByIndex=null;this.colorMapByValue=options.get("colorMap");if(this.colorMapByValue&&this.colorMapByValue.get===undefined){this.colorMapByValue=new RangeMap(this.colorMapByValue)}}this.initTarget()},getRegion:function(el,x,y){return Math.floor(x/this.totalBarWidth)},getCurrentRegionFields:function(){var currentRegion=this.currentRegion;return{isNull:this.values[currentRegion]===undefined,value:this.values[currentRegion],color:this.calcColor(this.values[currentRegion],currentRegion),offset:currentRegion}},calcColor:function(value,valuenum){var values=this.values,options=this.options,colorMapByIndex=this.colorMapByIndex,colorMapByValue=this.colorMapByValue,color,newColor;if(colorMapByValue&&(newColor=colorMapByValue.get(value))){color=newColor}else if(colorMapByIndex&&colorMapByIndex.length>valuenum){color=colorMapByIndex[valuenum]}else if(values[valuenum]<0){color=options.get("negBarColor")}else if(values[valuenum]>0){color=options.get("posBarColor")}else{color=options.get("zeroBarColor")}return color},renderRegion:function(valuenum,highlight){var values=this.values,options=this.options,target=this.target,canvasHeight,height,halfHeight,x,y,color;canvasHeight=target.pixelHeight;halfHeight=Math.round(canvasHeight/2);x=valuenum*this.totalBarWidth;if(values[valuenum]<0){y=halfHeight;height=halfHeight-1}else if(values[valuenum]>0){y=0;height=halfHeight-1}else{y=halfHeight-1;height=2}color=this.calcColor(values[valuenum],valuenum);if(color===null){return}if(highlight){color=this.calcHighlightColor(color,options)}return target.drawRect(x,y,this.barWidth-1,height-1,color,color)}});$.fn.sparkline.discrete=discrete=createClass($.fn.sparkline._base,barHighlightMixin,{type:"discrete",init:function(el,values,options,width,height){discrete._super.init.call(this,el,values,options,width,height);this.regionShapes={};this.values=values=$.map(values,Number);this.min=Math.min.apply(Math,values);this.max=Math.max.apply(Math,values);this.range=this.max-this.min;this.width=width=options.get("width")==="auto"?values.length*2:this.width;this.interval=Math.floor(width/values.length);this.itemWidth=width/values.length;if(options.get("chartRangeMin")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMin")<this.min)){this.min=options.get("chartRangeMin")}if(options.get("chartRangeMax")!==undefined&&(options.get("chartRangeClip")||options.get("chartRangeMax")>this.max)){this.max=options.get("chartRangeMax")}this.initTarget();if(this.target){this.lineHeight=options.get("lineHeight")==="auto"?Math.round(this.canvasHeight*.3):options.get("lineHeight")}},getRegion:function(el,x,y){return Math.floor(x/this.itemWidth)},getCurrentRegionFields:function(){var currentRegion=this.currentRegion;return{isNull:this.values[currentRegion]===undefined,value:this.values[currentRegion],offset:currentRegion}},renderRegion:function(valuenum,highlight){var values=this.values,options=this.options,min=this.min,max=this.max,range=this.range,interval=this.interval,target=this.target,canvasHeight=this.canvasHeight,lineHeight=this.lineHeight,pheight=canvasHeight-lineHeight,ytop,val,color,x;val=clipval(values[valuenum],min,max);x=valuenum*interval;ytop=Math.round(pheight-pheight*((val-min)/range));color=options.get("thresholdColor")&&val<options.get("thresholdValue")?options.get("thresholdColor"):options.get("lineColor");if(highlight){color=this.calcHighlightColor(color,options)}return target.drawLine(x,ytop,x,ytop+lineHeight,color)}});$.fn.sparkline.bullet=bullet=createClass($.fn.sparkline._base,{type:"bullet",init:function(el,values,options,width,height){var min,max,vals;bullet._super.init.call(this,el,values,options,width,height);this.values=values=normalizeValues(values);vals=values.slice();vals[0]=vals[0]===null?vals[2]:vals[0];vals[1]=values[1]===null?vals[2]:vals[1];min=Math.min.apply(Math,values);max=Math.max.apply(Math,values);if(options.get("base")===undefined){min=min<0?min:0}else{min=options.get("base")}this.min=min;this.max=max;this.range=max-min;this.shapes={};this.valueShapes={};this.regiondata={};this.width=width=options.get("width")==="auto"?"4.0em":width;this.target=this.$el.simpledraw(width,height,options.get("composite"));if(!values.length){this.disabled=true}this.initTarget()},getRegion:function(el,x,y){var shapeid=this.target.getShapeAt(el,x,y);return shapeid!==undefined&&this.shapes[shapeid]!==undefined?this.shapes[shapeid]:undefined},getCurrentRegionFields:function(){var currentRegion=this.currentRegion;return{fieldkey:currentRegion.substr(0,1),value:this.values[currentRegion.substr(1)],region:currentRegion}},changeHighlight:function(highlight){var currentRegion=this.currentRegion,shapeid=this.valueShapes[currentRegion],shape;delete this.shapes[shapeid];switch(currentRegion.substr(0,1)){case"r":shape=this.renderRange(currentRegion.substr(1),highlight);break;case"p":shape=this.renderPerformance(highlight);break;case"t":shape=this.renderTarget(highlight);break}this.valueShapes[currentRegion]=shape.id;this.shapes[shape.id]=currentRegion;this.target.replaceWithShape(shapeid,shape)},renderRange:function(rn,highlight){var rangeval=this.values[rn],rangewidth=Math.round(this.canvasWidth*((rangeval-this.min)/this.range)),color=this.options.get("rangeColors")[rn-2];if(highlight){color=this.calcHighlightColor(color,this.options)}return this.target.drawRect(0,0,rangewidth-1,this.canvasHeight-1,color,color)},renderPerformance:function(highlight){var perfval=this.values[1],perfwidth=Math.round(this.canvasWidth*((perfval-this.min)/this.range)),color=this.options.get("performanceColor");if(highlight){color=this.calcHighlightColor(color,this.options)}return this.target.drawRect(0,Math.round(this.canvasHeight*.3),perfwidth-1,Math.round(this.canvasHeight*.4)-1,color,color)},renderTarget:function(highlight){var targetval=this.values[0],x=Math.round(this.canvasWidth*((targetval-this.min)/this.range)-this.options.get("targetWidth")/2),targettop=Math.round(this.canvasHeight*.1),targetheight=this.canvasHeight-targettop*2,color=this.options.get("targetColor");if(highlight){color=this.calcHighlightColor(color,this.options)}return this.target.drawRect(x,targettop,this.options.get("targetWidth")-1,targetheight-1,color,color)},render:function(){var vlen=this.values.length,target=this.target,i,shape;if(!bullet._super.render.call(this)){return}for(i=2;i<vlen;i++){shape=this.renderRange(i).append();this.shapes[shape.id]="r"+i;this.valueShapes["r"+i]=shape.id}if(this.values[1]!==null){shape=this.renderPerformance().append();this.shapes[shape.id]="p1";this.valueShapes.p1=shape.id}if(this.values[0]!==null){shape=this.renderTarget().append();this.shapes[shape.id]="t0";this.valueShapes.t0=shape.id}target.render()}});$.fn.sparkline.pie=pie=createClass($.fn.sparkline._base,{type:"pie",init:function(el,values,options,width,height){var total=0,i;pie._super.init.call(this,el,values,options,width,height);this.shapes={};this.valueShapes={};this.values=values=$.map(values,Number);if(options.get("width")==="auto"){this.width=this.height}if(values.length>0){for(i=values.length;i--;){total+=values[i]}}this.total=total;this.initTarget();this.radius=Math.floor(Math.min(this.canvasWidth,this.canvasHeight)/2)},getRegion:function(el,x,y){var shapeid=this.target.getShapeAt(el,x,y);return shapeid!==undefined&&this.shapes[shapeid]!==undefined?this.shapes[shapeid]:undefined},getCurrentRegionFields:function(){var currentRegion=this.currentRegion;return{isNull:this.values[currentRegion]===undefined,value:this.values[currentRegion],percent:this.values[currentRegion]/this.total*100,color:this.options.get("sliceColors")[currentRegion%this.options.get("sliceColors").length],offset:currentRegion}},changeHighlight:function(highlight){var currentRegion=this.currentRegion,newslice=this.renderSlice(currentRegion,highlight),shapeid=this.valueShapes[currentRegion];delete this.shapes[shapeid];this.target.replaceWithShape(shapeid,newslice);this.valueShapes[currentRegion]=newslice.id;this.shapes[newslice.id]=currentRegion},renderSlice:function(valuenum,highlight){var target=this.target,options=this.options,radius=this.radius,borderWidth=options.get("borderWidth"),offset=options.get("offset"),circle=2*Math.PI,values=this.values,total=this.total,next=offset?2*Math.PI*(offset/360):0,start,end,i,vlen,color;vlen=values.length;for(i=0;i<vlen;i++){start=next;end=next;if(total>0){end=next+circle*(values[i]/total)}if(valuenum===i){color=options.get("sliceColors")[i%options.get("sliceColors").length];if(highlight){color=this.calcHighlightColor(color,options)}return target.drawPieSlice(radius,radius,radius-borderWidth,start,end,undefined,color)}next=end}},render:function(){var target=this.target,values=this.values,options=this.options,radius=this.radius,borderWidth=options.get("borderWidth"),shape,i;if(!pie._super.render.call(this)){return}if(borderWidth){target.drawCircle(radius,radius,Math.floor(radius-borderWidth/2),options.get("borderColor"),undefined,borderWidth).append()}for(i=values.length;i--;){if(values[i]){shape=this.renderSlice(i).append();this.valueShapes[i]=shape.id;this.shapes[shape.id]=i}}target.render()}});$.fn.sparkline.box=box=createClass($.fn.sparkline._base,{type:"box",init:function(el,values,options,width,height){box._super.init.call(this,el,values,options,width,height);this.values=$.map(values,Number);this.width=options.get("width")==="auto"?"4.0em":width;this.initTarget();if(!this.values.length){this.disabled=1}},getRegion:function(){return 1},getCurrentRegionFields:function(){var result=[{field:"lq",value:this.quartiles[0]},{field:"med",value:this.quartiles[1]},{field:"uq",value:this.quartiles[2]}];if(this.loutlier!==undefined){result.push({field:"lo",value:this.loutlier})}if(this.routlier!==undefined){result.push({field:"ro",value:this.routlier})}if(this.lwhisker!==undefined){result.push({field:"lw",value:this.lwhisker})}if(this.rwhisker!==undefined){result.push({field:"rw",value:this.rwhisker})}return result},render:function(){var target=this.target,values=this.values,vlen=values.length,options=this.options,canvasWidth=this.canvasWidth,canvasHeight=this.canvasHeight,minValue=options.get("chartRangeMin")===undefined?Math.min.apply(Math,values):options.get("chartRangeMin"),maxValue=options.get("chartRangeMax")===undefined?Math.max.apply(Math,values):options.get("chartRangeMax"),canvasLeft=0,lwhisker,loutlier,iqr,q1,q2,q3,rwhisker,routlier,i,size,unitSize;if(!box._super.render.call(this)){return}if(options.get("raw")){if(options.get("showOutliers")&&values.length>5){loutlier=values[0];lwhisker=values[1];q1=values[2];q2=values[3];q3=values[4];rwhisker=values[5];routlier=values[6]}else{lwhisker=values[0];q1=values[1];q2=values[2];q3=values[3];rwhisker=values[4]}}else{values.sort(function(a,b){return a-b});q1=quartile(values,1);q2=quartile(values,2);q3=quartile(values,3);iqr=q3-q1;if(options.get("showOutliers")){lwhisker=rwhisker=undefined;for(i=0;i<vlen;i++){if(lwhisker===undefined&&values[i]>q1-iqr*options.get("outlierIQR")){lwhisker=values[i]}if(values[i]<q3+iqr*options.get("outlierIQR")){rwhisker=values[i]}}loutlier=values[0];routlier=values[vlen-1]}else{lwhisker=values[0];rwhisker=values[vlen-1]}}this.quartiles=[q1,q2,q3];this.lwhisker=lwhisker;this.rwhisker=rwhisker;this.loutlier=loutlier;this.routlier=routlier;unitSize=canvasWidth/(maxValue-minValue+1);if(options.get("showOutliers")){canvasLeft=Math.ceil(options.get("spotRadius"));canvasWidth-=2*Math.ceil(options.get("spotRadius"));unitSize=canvasWidth/(maxValue-minValue+1);if(loutlier<lwhisker){target.drawCircle((loutlier-minValue)*unitSize+canvasLeft,canvasHeight/2,options.get("spotRadius"),options.get("outlierLineColor"),options.get("outlierFillColor")).append()}if(routlier>rwhisker){target.drawCircle((routlier-minValue)*unitSize+canvasLeft,canvasHeight/2,options.get("spotRadius"),options.get("outlierLineColor"),options.get("outlierFillColor")).append()}}target.drawRect(Math.round((q1-minValue)*unitSize+canvasLeft),Math.round(canvasHeight*.1),Math.round((q3-q1)*unitSize),Math.round(canvasHeight*.8),options.get("boxLineColor"),options.get("boxFillColor")).append();target.drawLine(Math.round((lwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2),Math.round((q1-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2),options.get("lineColor")).append();target.drawLine(Math.round((lwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/4),Math.round((lwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight-canvasHeight/4),options.get("whiskerColor")).append();target.drawLine(Math.round((rwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2),Math.round((q3-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2),options.get("lineColor")).append();target.drawLine(Math.round((rwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/4),Math.round((rwhisker-minValue)*unitSize+canvasLeft),Math.round(canvasHeight-canvasHeight/4),options.get("whiskerColor")).append();target.drawLine(Math.round((q2-minValue)*unitSize+canvasLeft),Math.round(canvasHeight*.1),Math.round((q2-minValue)*unitSize+canvasLeft),Math.round(canvasHeight*.9),options.get("medianColor")).append();if(options.get("target")){size=Math.ceil(options.get("spotRadius"));target.drawLine(Math.round((options.get("target")-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2-size),Math.round((options.get("target")-minValue)*unitSize+canvasLeft),Math.round(canvasHeight/2+size),options.get("targetColor")).append();target.drawLine(Math.round((options.get("target")-minValue)*unitSize+canvasLeft-size),Math.round(canvasHeight/2),Math.round((options.get("target")-minValue)*unitSize+canvasLeft+size),Math.round(canvasHeight/2),options.get("targetColor")).append()}target.render()}});VShape=createClass({init:function(target,id,type,args){this.target=target;this.id=id;this.type=type;this.args=args},append:function(){this.target.appendShape(this);return this}});VCanvas_base=createClass({_pxregex:/(\d+)(px)?\s*$/i,init:function(width,height,target){if(!width){return}this.width=width;this.height=height;this.target=target;this.lastShapeId=null;if(target[0]){target=target[0]}$.data(target,"_jqs_vcanvas",this)},drawLine:function(x1,y1,x2,y2,lineColor,lineWidth){return this.drawShape([[x1,y1],[x2,y2]],lineColor,lineWidth)},drawShape:function(path,lineColor,fillColor,lineWidth){return this._genShape("Shape",[path,lineColor,fillColor,lineWidth])},drawCircle:function(x,y,radius,lineColor,fillColor,lineWidth){return this._genShape("Circle",[x,y,radius,lineColor,fillColor,lineWidth])},drawPieSlice:function(x,y,radius,startAngle,endAngle,lineColor,fillColor){return this._genShape("PieSlice",[x,y,radius,startAngle,endAngle,lineColor,fillColor])},drawRect:function(x,y,width,height,lineColor,fillColor){return this._genShape("Rect",[x,y,width,height,lineColor,fillColor])},getElement:function(){return this.canvas},getLastShapeId:function(){return this.lastShapeId},reset:function(){alert("reset not implemented")},_insert:function(el,target){$(target).html(el)},_calculatePixelDims:function(width,height,canvas){var match;match=this._pxregex.exec(height);if(match){this.pixelHeight=match[1]}else{this.pixelHeight=$(canvas).height()}match=this._pxregex.exec(width);if(match){this.pixelWidth=match[1]}else{this.pixelWidth=$(canvas).width()}},_genShape:function(shapetype,shapeargs){var id=shapeCount++;shapeargs.unshift(id);return new VShape(this,id,shapetype,shapeargs)},appendShape:function(shape){alert("appendShape not implemented")},replaceWithShape:function(shapeid,shape){alert("replaceWithShape not implemented")},insertAfterShape:function(shapeid,shape){alert("insertAfterShape not implemented")},removeShapeId:function(shapeid){alert("removeShapeId not implemented")},getShapeAt:function(el,x,y){alert("getShapeAt not implemented")},render:function(){alert("render not implemented")}});VCanvas_canvas=createClass(VCanvas_base,{init:function(width,height,target,interact){VCanvas_canvas._super.init.call(this,width,height,target);this.canvas=document.createElement("canvas");if(target[0]){target=target[0]}$.data(target,"_jqs_vcanvas",this);$(this.canvas).css({display:"inline-block",width:width,height:height,verticalAlign:"top"});this._insert(this.canvas,target);this._calculatePixelDims(width,height,this.canvas);this.canvas.width=this.pixelWidth;this.canvas.height=this.pixelHeight;this.interact=interact;this.shapes={};this.shapeseq=[];this.currentTargetShapeId=undefined;$(this.canvas).css({width:this.pixelWidth,height:this.pixelHeight})},_getContext:function(lineColor,fillColor,lineWidth){var context=this.canvas.getContext("2d");if(lineColor!==undefined){context.strokeStyle=lineColor}context.lineWidth=lineWidth===undefined?1:lineWidth;if(fillColor!==undefined){context.fillStyle=fillColor}return context},reset:function(){var context=this._getContext();context.clearRect(0,0,this.pixelWidth,this.pixelHeight);this.shapes={};this.shapeseq=[];this.currentTargetShapeId=undefined},_drawShape:function(shapeid,path,lineColor,fillColor,lineWidth){var context=this._getContext(lineColor,fillColor,lineWidth),i,plen;context.beginPath();context.moveTo(path[0][0]+.5,path[0][1]+.5);for(i=1,plen=path.length;i<plen;i++){context.lineTo(path[i][0]+.5,path[i][1]+.5)}if(lineColor!==undefined){context.stroke()}if(fillColor!==undefined){context.fill()}if(this.targetX!==undefined&&this.targetY!==undefined&&context.isPointInPath(this.targetX,this.targetY)){this.currentTargetShapeId=shapeid}},_drawCircle:function(shapeid,x,y,radius,lineColor,fillColor,lineWidth){var context=this._getContext(lineColor,fillColor,lineWidth);context.beginPath();context.arc(x,y,radius,0,2*Math.PI,false);if(this.targetX!==undefined&&this.targetY!==undefined&&context.isPointInPath(this.targetX,this.targetY)){this.currentTargetShapeId=shapeid}if(lineColor!==undefined){context.stroke()}if(fillColor!==undefined){context.fill()}},_drawPieSlice:function(shapeid,x,y,radius,startAngle,endAngle,lineColor,fillColor){var context=this._getContext(lineColor,fillColor);context.beginPath();context.moveTo(x,y);context.arc(x,y,radius,startAngle,endAngle,false);context.lineTo(x,y);context.closePath();if(lineColor!==undefined){context.stroke()}if(fillColor){context.fill()}if(this.targetX!==undefined&&this.targetY!==undefined&&context.isPointInPath(this.targetX,this.targetY)){this.currentTargetShapeId=shapeid}},_drawRect:function(shapeid,x,y,width,height,lineColor,fillColor){return this._drawShape(shapeid,[[x,y],[x+width,y],[x+width,y+height],[x,y+height],[x,y]],lineColor,fillColor)},appendShape:function(shape){this.shapes[shape.id]=shape;this.shapeseq.push(shape.id);this.lastShapeId=shape.id;return shape.id},replaceWithShape:function(shapeid,shape){var shapeseq=this.shapeseq,i;this.shapes[shape.id]=shape;for(i=shapeseq.length;i--;){if(shapeseq[i]==shapeid){shapeseq[i]=shape.id}}delete this.shapes[shapeid]},replaceWithShapes:function(shapeids,shapes){var shapeseq=this.shapeseq,shapemap={},sid,i,first;for(i=shapeids.length;i--;){shapemap[shapeids[i]]=true}for(i=shapeseq.length;i--;){sid=shapeseq[i];if(shapemap[sid]){shapeseq.splice(i,1);delete this.shapes[sid];first=i}}for(i=shapes.length;i--;){shapeseq.splice(first,0,shapes[i].id);this.shapes[shapes[i].id]=shapes[i]}},insertAfterShape:function(shapeid,shape){var shapeseq=this.shapeseq,i;for(i=shapeseq.length;i--;){if(shapeseq[i]===shapeid){shapeseq.splice(i+1,0,shape.id);this.shapes[shape.id]=shape;return}}},removeShapeId:function(shapeid){var shapeseq=this.shapeseq,i;for(i=shapeseq.length;i--;){if(shapeseq[i]===shapeid){shapeseq.splice(i,1);break}}delete this.shapes[shapeid]},getShapeAt:function(el,x,y){this.targetX=x;this.targetY=y;this.render();return this.currentTargetShapeId},render:function(){var shapeseq=this.shapeseq,shapes=this.shapes,shapeCount=shapeseq.length,context=this._getContext(),shapeid,shape,i;context.clearRect(0,0,this.pixelWidth,this.pixelHeight);for(i=0;i<shapeCount;i++){shapeid=shapeseq[i];shape=shapes[shapeid];this["_draw"+shape.type].apply(this,shape.args)}if(!this.interact){this.shapes={};this.shapeseq=[]}}});VCanvas_vml=createClass(VCanvas_base,{init:function(width,height,target){var groupel;VCanvas_vml._super.init.call(this,width,height,target);if(target[0]){target=target[0]}$.data(target,"_jqs_vcanvas",this);this.canvas=document.createElement("span");$(this.canvas).css({display:"inline-block",position:"relative",overflow:"hidden",width:width,height:height,margin:"0px",padding:"0px",verticalAlign:"top"});this._insert(this.canvas,target);this._calculatePixelDims(width,height,this.canvas);this.canvas.width=this.pixelWidth;this.canvas.height=this.pixelHeight;groupel='<v:group coordorigin="0 0" coordsize="'+this.pixelWidth+" "+this.pixelHeight+'"'+' style="position:absolute;top:0;left:0;width:'+this.pixelWidth+"px;height="+this.pixelHeight+'px;"></v:group>';this.canvas.insertAdjacentHTML("beforeEnd",groupel);this.group=$(this.canvas).children()[0];this.rendered=false;this.prerender=""},_drawShape:function(shapeid,path,lineColor,fillColor,lineWidth){var vpath=[],initial,stroke,fill,closed,vel,plen,i;for(i=0,plen=path.length;i<plen;i++){vpath[i]=""+path[i][0]+","+path[i][1]}initial=vpath.splice(0,1);lineWidth=lineWidth===undefined?1:lineWidth;stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="'+lineWidth+'px" strokeColor="'+lineColor+'" ';fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';closed=vpath[0]===vpath[vpath.length-1]?"x ":"";vel='<v:shape coordorigin="0 0" coordsize="'+this.pixelWidth+" "+this.pixelHeight+'" '+' id="jqsshape'+shapeid+'" '+stroke+fill+' style="position:absolute;left:0px;top:0px;height:'+this.pixelHeight+"px;width:"+this.pixelWidth+'px;padding:0px;margin:0px;" '+' path="m '+initial+" l "+vpath.join(", ")+" "+closed+'e">'+" </v:shape>";return vel},_drawCircle:function(shapeid,x,y,radius,lineColor,fillColor,lineWidth){var stroke,fill,vel;x-=radius;y-=radius;stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="'+lineWidth+'px" strokeColor="'+lineColor+'" ';fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';vel="<v:oval "+' id="jqsshape'+shapeid+'" '+stroke+fill+' style="position:absolute;top:'+y+"px; left:"+x+"px; width:"+radius*2+"px; height:"+radius*2+'px"></v:oval>';return vel},_drawPieSlice:function(shapeid,x,y,radius,startAngle,endAngle,lineColor,fillColor){var vpath,startx,starty,endx,endy,stroke,fill,vel;if(startAngle===endAngle){return""}if(endAngle-startAngle===2*Math.PI){startAngle=0;endAngle=2*Math.PI}startx=x+Math.round(Math.cos(startAngle)*radius);starty=y+Math.round(Math.sin(startAngle)*radius);endx=x+Math.round(Math.cos(endAngle)*radius);endy=y+Math.round(Math.sin(endAngle)*radius);if(startx===endx&&starty===endy){if(endAngle-startAngle<Math.PI){return""}startx=endx=x+radius;starty=endy=y}if(startx===endx&&starty===endy&&endAngle-startAngle<Math.PI){return""}vpath=[x-radius,y-radius,x+radius,y+radius,startx,starty,endx,endy];stroke=lineColor===undefined?' stroked="false" ':' strokeWeight="1px" strokeColor="'+lineColor+'" ';fill=fillColor===undefined?' filled="false"':' fillColor="'+fillColor+'" filled="true" ';vel='<v:shape coordorigin="0 0" coordsize="'+this.pixelWidth+" "+this.pixelHeight+'" '+' id="jqsshape'+shapeid+'" '+stroke+fill+' style="position:absolute;left:0px;top:0px;height:'+this.pixelHeight+"px;width:"+this.pixelWidth+'px;padding:0px;margin:0px;" '+' path="m '+x+","+y+" wa "+vpath.join(", ")+' x e">'+" </v:shape>";return vel},_drawRect:function(shapeid,x,y,width,height,lineColor,fillColor){return this._drawShape(shapeid,[[x,y],[x,y+height],[x+width,y+height],[x+width,y],[x,y]],lineColor,fillColor)},reset:function(){this.group.innerHTML=""},appendShape:function(shape){var vel=this["_draw"+shape.type].apply(this,shape.args);if(this.rendered){this.group.insertAdjacentHTML("beforeEnd",vel)}else{this.prerender+=vel}this.lastShapeId=shape.id;return shape.id},replaceWithShape:function(shapeid,shape){var existing=$("#jqsshape"+shapeid),vel=this["_draw"+shape.type].apply(this,shape.args);existing[0].outerHTML=vel},replaceWithShapes:function(shapeids,shapes){var existing=$("#jqsshape"+shapeids[0]),replace="",slen=shapes.length,i;for(i=0;i<slen;i++){replace+=this["_draw"+shapes[i].type].apply(this,shapes[i].args)}existing[0].outerHTML=replace;for(i=1;i<shapeids.length;i++){$("#jqsshape"+shapeids[i]).remove()}},insertAfterShape:function(shapeid,shape){var existing=$("#jqsshape"+shapeid),vel=this["_draw"+shape.type].apply(this,shape.args);existing[0].insertAdjacentHTML("afterEnd",vel)},removeShapeId:function(shapeid){var existing=$("#jqsshape"+shapeid);this.group.removeChild(existing[0])},getShapeAt:function(el,x,y){var shapeid=el.id.substr(8);return shapeid},render:function(){if(!this.rendered){this.group.innerHTML=this.prerender;this.rendered=true}}})})})(document,Math);(function($){$.extend({tablesorter:new function(){var parsers=[],widgets=[];this.defaults={cssHeader:"header",cssAsc:"headerSortUp",cssDesc:"headerSortDown",cssChildRow:"expand-child",sortInitialOrder:"asc",sortMultiSortKey:"shiftKey",sortForce:null,sortAppend:null,sortLocaleCompare:true,textExtraction:"simple",parsers:{},widgets:[],widgetZebra:{css:["even","odd"]},headers:{},widthFixed:false,cancelSelection:true,sortList:[],headerList:[],dateFormat:"us",decimal:"/.|,/g",onRenderHeader:null,selectorHeaders:"thead th",debug:false};function benchmark(s,d){log(s+","+((new Date).getTime()-d.getTime())+"ms")}this.benchmark=benchmark;function log(s){if(typeof console!="undefined"&&typeof console.debug!="undefined"){console.log(s)}else{alert(s)}}function buildParserCache(table,$headers){if(table.config.debug){var parsersDebug=""}if(table.tBodies.length==0)return;var rows=table.tBodies[0].rows;if(rows[0]){var list=[],cells=rows[0].cells,l=cells.length;for(var i=0;i<l;i++){var p=false;if($.metadata&&($($headers[i]).metadata()&&$($headers[i]).metadata().sorter)){p=getParserById($($headers[i]).metadata().sorter)}else if(table.config.headers[i]&&table.config.headers[i].sorter){p=getParserById(table.config.headers[i].sorter)}if(!p){p=detectParserForColumn(table,rows,-1,i)}if(table.config.debug){parsersDebug+="column:"+i+" parser:"+p.id+"\n"}list.push(p)}}if(table.config.debug){log(parsersDebug)}return list}function detectParserForColumn(table,rows,rowIndex,cellIndex){var l=parsers.length,node=false,nodeValue=false,keepLooking=true;while(nodeValue==""&&keepLooking){rowIndex++;if(rows[rowIndex]){node=getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex);nodeValue=trimAndGetNodeText(table.config,node);if(table.config.debug){log("Checking if value was empty on row:"+rowIndex)}}else{keepLooking=false}}for(var i=1;i<l;i++){if(parsers[i].is(nodeValue,table,node)){return parsers[i]}}return parsers[0]}function getNodeFromRowAndCellIndex(rows,rowIndex,cellIndex){return rows[rowIndex].cells[cellIndex]}function trimAndGetNodeText(config,node){return $.trim(getElementText(config,node))}function getParserById(name){var l=parsers.length;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==name.toLowerCase()){return parsers[i]}}return false}function buildCache(table){if(table.config.debug){var cacheTime=new Date}var totalRows=table.tBodies[0]&&table.tBodies[0].rows.length||0,totalCells=table.tBodies[0].rows[0]&&table.tBodies[0].rows[0].cells.length||0,parsers=table.config.parsers,cache={row:[],normalized:[]};for(var i=0;i<totalRows;++i){var c=$(table.tBodies[0].rows[i]),cols=[];if(c.hasClass(table.config.cssChildRow)){cache.row[cache.row.length-1]=cache.row[cache.row.length-1].add(c);continue}
cache.row.push(c);for(var j=0;j<totalCells;++j){cols.push(parsers[j].format(getElementText(table.config,c[0].cells[j]),table,c[0].cells[j]))}cols.push(cache.normalized.length);cache.normalized.push(cols);cols=null}if(table.config.debug){benchmark("Building cache for "+totalRows+" rows:",cacheTime)}return cache}function getElementText(config,node){var text="";if(!node)return"";if(!config.supportsTextContent)config.supportsTextContent=node.textContent||false;if(config.textExtraction=="simple"){if(config.supportsTextContent){text=node.textContent}else{if(node.childNodes[0]&&node.childNodes[0].hasChildNodes()){text=node.childNodes[0].innerHTML}else{text=node.innerHTML}}}else{if(typeof config.textExtraction=="function"){text=config.textExtraction(node)}else{text=$(node).text()}}return text}function appendToTable(table,cache){if(table.config.debug){var appendTime=new Date}var c=cache,r=c.row,n=c.normalized,totalRows=n.length,checkCell=n[0].length-1,tableBody=$(table.tBodies[0]),rows=[];for(var i=0;i<totalRows;i++){var pos=n[i][checkCell];rows.push(r[pos]);if(!table.config.appender){var l=r[pos].length;for(var j=0;j<l;j++){tableBody[0].appendChild(r[pos][j])}}}if(table.config.appender){table.config.appender(table,rows)}rows=null;if(table.config.debug){benchmark("Rebuilt table:",appendTime)}applyWidget(table);setTimeout(function(){$(table).trigger("sortEnd")},0)}function buildHeaders(table){if(table.config.debug){var time=new Date}var meta=$.metadata?true:false;var header_index=computeTableHeaderCellIndexes(table);$tableHeaders=$(table.config.selectorHeaders,table).each(function(index){this.column=header_index[this.parentNode.rowIndex+"-"+this.cellIndex];this.order=formatSortingOrder(table.config.sortInitialOrder);this.count=this.order;if(checkHeaderMetadata(this)||checkHeaderOptions(table,index))this.sortDisabled=true;if(checkHeaderOptionsSortingLocked(table,index))this.order=this.lockedOrder=checkHeaderOptionsSortingLocked(table,index);if(!this.sortDisabled){var $th=$(this).addClass(table.config.cssHeader);if(table.config.onRenderHeader)table.config.onRenderHeader.apply($th)}table.config.headerList[index]=this});if(table.config.debug){benchmark("Built headers:",time);log($tableHeaders)}return $tableHeaders}function computeTableHeaderCellIndexes(t){var matrix=[];var lookup={};var thead=t.getElementsByTagName("THEAD")[0];var trs=thead.getElementsByTagName("TR");for(var i=0;i<trs.length;i++){var cells=trs[i].cells;for(var j=0;j<cells.length;j++){var c=cells[j];var rowIndex=c.parentNode.rowIndex;var cellId=rowIndex+"-"+c.cellIndex;var rowSpan=c.rowSpan||1;var colSpan=c.colSpan||1;var firstAvailCol;if(typeof matrix[rowIndex]=="undefined"){matrix[rowIndex]=[]}for(var k=0;k<matrix[rowIndex].length+1;k++){if(typeof matrix[rowIndex][k]=="undefined"){firstAvailCol=k;break}}lookup[cellId]=firstAvailCol;for(var k=rowIndex;k<rowIndex+rowSpan;k++){if(typeof matrix[k]=="undefined"){matrix[k]=[]}var matrixrow=matrix[k];for(var l=firstAvailCol;l<firstAvailCol+colSpan;l++){matrixrow[l]="x"}}}}return lookup}function checkCellColSpan(table,rows,row){var arr=[],r=table.tHead.rows,c=r[row].cells;for(var i=0;i<c.length;i++){var cell=c[i];if(cell.colSpan>1){arr=arr.concat(checkCellColSpan(table,headerArr,row++))}else{if(table.tHead.length==1||(cell.rowSpan>1||!r[row+1])){arr.push(cell)}}}return arr}function checkHeaderMetadata(cell){if($.metadata&&$(cell).metadata().sorter===false){return true}return false}function checkHeaderOptions(table,i){if(table.config.headers[i]&&table.config.headers[i].sorter===false){return true}return false}function checkHeaderOptionsSortingLocked(table,i){if(table.config.headers[i]&&table.config.headers[i].lockedOrder)return table.config.headers[i].lockedOrder;return false}function applyWidget(table){var c=table.config.widgets;var l=c.length;for(var i=0;i<l;i++){getWidgetById(c[i]).format(table)}}function getWidgetById(name){var l=widgets.length;for(var i=0;i<l;i++){if(widgets[i].id.toLowerCase()==name.toLowerCase()){return widgets[i]}}}function formatSortingOrder(v){if(typeof v!="Number"){return v.toLowerCase()=="desc"?1:0}else{return v==1?1:0}}function isValueInArray(v,a){var l=a.length;for(var i=0;i<l;i++){if(a[i][0]==v){return true}}return false}function setHeadersCss(table,$headers,list,css){$headers.removeClass(css[0]).removeClass(css[1]);var h=[];$headers.each(function(offset){if(!this.sortDisabled){h[this.column]=$(this)}});var l=list.length;for(var i=0;i<l;i++){h[list[i][0]].addClass(css[list[i][1]])}}function fixColumnWidth(table,$headers){var c=table.config;if(c.widthFixed){var colgroup=$("<colgroup>");$("tr:first td",table.tBodies[0]).each(function(){colgroup.append($("<col>").css("width",$(this).width()))});$(table).prepend(colgroup)}}function updateHeaderSortCount(table,sortList){var c=table.config,l=sortList.length;for(var i=0;i<l;i++){var s=sortList[i],o=c.headerList[s[0]];o.count=s[1];o.count++}}function multisort(table,sortList,cache){if(table.config.debug){var sortTime=new Date}var dynamicExp="var sortWrapper = function(a,b) {",l=sortList.length;for(var i=0;i<l;i++){var c=sortList[i][0];var order=sortList[i][1];var s=table.config.parsers[c].type=="text"?order==0?makeSortFunction("text","asc",c):makeSortFunction("text","desc",c):order==0?makeSortFunction("numeric","asc",c):makeSortFunction("numeric","desc",c);var e="e"+i;dynamicExp+="var "+e+" = "+s;dynamicExp+="if("+e+") { return "+e+"; } ";dynamicExp+="else { "}var orgOrderCol=cache.normalized[0].length-1;dynamicExp+="return a["+orgOrderCol+"]-b["+orgOrderCol+"];";for(var i=0;i<l;i++){dynamicExp+="}; "}dynamicExp+="return 0; ";dynamicExp+="}; ";if(table.config.debug){benchmark("Evaling expression:"+dynamicExp,new Date)}eval(dynamicExp);cache.normalized.sort(sortWrapper);if(table.config.debug){benchmark("Sorting on "+sortList.toString()+" and dir "+order+" time:",sortTime)}return cache}function makeSortFunction(type,direction,index){var a="a["+index+"]",b="b["+index+"]";if(type=="text"&&direction=="asc"){return"("+a+" == "+b+" ? 0 : ("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : ("+a+" < "+b+") ? -1 : 1 )));"}else if(type=="text"&&direction=="desc"){return"("+a+" == "+b+" ? 0 : ("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : ("+b+" < "+a+") ? -1 : 1 )));"}else if(type=="numeric"&&direction=="asc"){return"("+a+" === null && "+b+" === null) ? 0 :("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : "+a+" - "+b+"));"}else if(type=="numeric"&&direction=="desc"){return"("+a+" === null && "+b+" === null) ? 0 :("+a+" === null ? Number.POSITIVE_INFINITY : ("+b+" === null ? Number.NEGATIVE_INFINITY : "+b+" - "+a+"));"}}function makeSortText(i){return"((a["+i+"] < b["+i+"]) ? -1 : ((a["+i+"] > b["+i+"]) ? 1 : 0));"}function makeSortTextDesc(i){return"((b["+i+"] < a["+i+"]) ? -1 : ((b["+i+"] > a["+i+"]) ? 1 : 0));"}function makeSortNumeric(i){return"a["+i+"]-b["+i+"];"}function makeSortNumericDesc(i){return"b["+i+"]-a["+i+"];"}function sortText(a,b){if(table.config.sortLocaleCompare)return a.localeCompare(b);return a<b?-1:a>b?1:0}function sortTextDesc(a,b){if(table.config.sortLocaleCompare)return b.localeCompare(a);return b<a?-1:b>a?1:0}function sortNumeric(a,b){return a-b}function sortNumericDesc(a,b){return b-a}function getCachedSortType(parsers,i){return parsers[i].type}this.construct=function(settings){return this.each(function(){if(!this.tHead||!this.tBodies)return;var $this,$document,$headers,cache,config,shiftDown=0,sortOrder;this.config={};config=$.extend(this.config,$.tablesorter.defaults,settings);$this=$(this);$.data(this,"tablesorter",config);$headers=buildHeaders(this);this.config.parsers=buildParserCache(this,$headers);cache=buildCache(this);var sortCSS=[config.cssDesc,config.cssAsc];fixColumnWidth(this);$headers.click(function(e){var totalRows=$this[0].tBodies[0]&&$this[0].tBodies[0].rows.length||0;if(!this.sortDisabled&&totalRows>0){$this.trigger("sortStart");var $cell=$(this);var i=this.column;this.order=this.count++%2;if(this.lockedOrder)this.order=this.lockedOrder;if(!e[config.sortMultiSortKey]){config.sortList=[];if(config.sortForce!=null){var a=config.sortForce;for(var j=0;j<a.length;j++){if(a[j][0]!=i){config.sortList.push(a[j])}}}config.sortList.push([i,this.order])}else{if(isValueInArray(i,config.sortList)){for(var j=0;j<config.sortList.length;j++){var s=config.sortList[j],o=config.headerList[s[0]];if(s[0]==i){o.count=s[1];o.count++;s[1]=o.count%2}}}else{config.sortList.push([i,this.order])}}setTimeout(function(){setHeadersCss($this[0],$headers,config.sortList,sortCSS);appendToTable($this[0],multisort($this[0],config.sortList,cache))},1);return false}}).mousedown(function(){if(config.cancelSelection){this.onselectstart=function(){return false};return false}});$this.bind("update",function(){var me=this;setTimeout(function(){me.config.parsers=buildParserCache(me,$headers);cache=buildCache(me)},1)}).bind("updateCell",function(e,cell){var config=this.config;var pos=[cell.parentNode.rowIndex-1,cell.cellIndex];cache.normalized[pos[0]][pos[1]]=config.parsers[pos[1]].format(getElementText(config,cell),cell)}).bind("sorton",function(e,list){$(this).trigger("sortStart");config.sortList=list;var sortList=config.sortList;updateHeaderSortCount(this,sortList);setHeadersCss(this,$headers,sortList,sortCSS);appendToTable(this,multisort(this,sortList,cache))}).bind("appendCache",function(){appendToTable(this,cache)}).bind("applyWidgetId",function(e,id){getWidgetById(id).format(this)}).bind("applyWidgets",function(){applyWidget(this)});if($.metadata&&($(this).metadata()&&$(this).metadata().sortlist)){config.sortList=$(this).metadata().sortlist}if(config.sortList.length>0){$this.trigger("sorton",[config.sortList])}applyWidget(this)})};this.addParser=function(parser){var l=parsers.length,a=true;for(var i=0;i<l;i++){if(parsers[i].id.toLowerCase()==parser.id.toLowerCase()){a=false}}if(a){parsers.push(parser)}};this.addWidget=function(widget){widgets.push(widget)};this.formatFloat=function(s){var i=parseFloat(s);return isNaN(i)?0:i};this.formatInt=function(s){var i=parseInt(s);return isNaN(i)?0:i};this.isDigit=function(s,config){return/^[-+]?\d*$/.test($.trim(s.replace(/[,.']/g,"")))};this.clearTableBody=function(table){if($.browser.msie){function empty(){while(this.firstChild)this.removeChild(this.firstChild)}empty.apply(table.tBodies[0])}else{table.tBodies[0].innerHTML=""}}}});$.fn.extend({tablesorter:$.tablesorter.construct});var ts=$.tablesorter;ts.addParser({id:"text",is:function(s){return true},format:function(s){return $.trim(s.toLocaleLowerCase())},type:"text"});ts.addParser({id:"digit",is:function(s,table){var c=table.config;return $.tablesorter.isDigit(s,c)},format:function(s){return $.tablesorter.formatFloat(s)},type:"numeric"});ts.addParser({id:"currency",is:function(s){return/^[£$€?.]/.test(s)},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/[£$€]/g),""))},type:"numeric"});ts.addParser({id:"ipAddress",is:function(s){return/^\d{2,3}[\.]\d{2,3}[\.]\d{2,3}[\.]\d{2,3}$/.test(s)},format:function(s){var a=s.split("."),r="",l=a.length;for(var i=0;i<l;i++){var item=a[i];if(item.length==2){r+="0"+item}else{r+=item}}return $.tablesorter.formatFloat(r)},type:"numeric"});ts.addParser({id:"url",is:function(s){return/^(https?|ftp|file):\/\/$/.test(s)},format:function(s){return jQuery.trim(s.replace(new RegExp(/(https?|ftp|file):\/\//),""))},type:"text"});ts.addParser({id:"isoDate",is:function(s){return/^\d{4}[\/-]\d{1,2}[\/-]\d{1,2}$/.test(s)},format:function(s){return $.tablesorter.formatFloat(s!=""?new Date(s.replace(new RegExp(/-/g),"/")).getTime():"0")},type:"numeric"});ts.addParser({id:"percent",is:function(s){return/\%$/.test($.trim(s))},format:function(s){return $.tablesorter.formatFloat(s.replace(new RegExp(/%/g),""))},type:"numeric"});ts.addParser({id:"usLongDate",is:function(s){return s.match(new RegExp(/^[A-Za-z]{3,10}\.? [0-9]{1,2}, ([0-9]{4}|'?[0-9]{2}) (([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(AM|PM)))$/))},format:function(s){return $.tablesorter.formatFloat(new Date(s).getTime())},type:"numeric"});ts.addParser({id:"shortDate",is:function(s){return/\d{1,2}[\/\-]\d{1,2}[\/\-]\d{2,4}/.test(s)},format:function(s,table){var c=table.config;s=s.replace(/\-/g,"/");if(c.dateFormat=="us"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$1/$2")}else if(c.dateFormat=="uk"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{4})/,"$3/$2/$1")}else if(c.dateFormat=="dd/mm/yy"||c.dateFormat=="dd-mm-yy"){s=s.replace(/(\d{1,2})[\/\-](\d{1,2})[\/\-](\d{2})/,"$1/$2/$3")}return $.tablesorter.formatFloat(new Date(s).getTime())},type:"numeric"});ts.addParser({id:"time",is:function(s){return/^(([0-2]?[0-9]:[0-5][0-9])|([0-1]?[0-9]:[0-5][0-9]\s(am|pm)))$/.test(s)},format:function(s){return $.tablesorter.formatFloat(new Date("2000/01/01 "+s).getTime())},type:"numeric"});ts.addParser({id:"metadata",is:function(s){return false},format:function(s,table,cell){var c=table.config,p=!c.parserMetadataName?"sortValue":c.parserMetadataName;return $(cell).metadata()[p]},type:"numeric"});ts.addWidget({id:"zebra",format:function(table){if(table.config.debug){var time=new Date}var $tr,row=-1,odd;$("tr:visible",table.tBodies[0]).each(function(i){$tr=$(this);if(!$tr.hasClass(table.config.cssChildRow))row++;odd=row%2==0;$tr.removeClass(table.config.widgetZebra.css[odd?0:1]).addClass(table.config.widgetZebra.css[odd?1:0])});if(table.config.debug){$.tablesorter.benchmark("Applying Zebra widget",time)}}})})(jQuery);(function(root,factory){if(typeof define==="function"&&define.amd){define(["jquery"],function(a0){return factory(a0)})}else if(typeof exports==="object"){module.exports=factory(require("jquery"))}else{factory(jQuery)}})(this,function($){var defaults={animation:"fade",animationDuration:350,content:null,contentAsHTML:false,contentCloning:false,debug:true,delay:300,delayTouch:[300,500],functionInit:null,functionBefore:null,functionReady:null,functionAfter:null,functionFormat:null,IEmin:6,interactive:false,multiple:false,parent:null,plugins:["sideTip"],repositionOnScroll:false,restoration:"none",selfDestruction:true,theme:[],timer:0,trackerInterval:500,trackOrigin:false,trackTooltip:false,trigger:"hover",triggerClose:{click:false,mouseleave:false,originClick:false,scroll:false,tap:false,touchleave:false},triggerOpen:{click:false,mouseenter:false,tap:false,touchstart:false},updateAnimation:"rotate",zIndex:9999999},win=typeof window!="undefined"?window:null,env={hasTouchCapability:!!(win&&("ontouchstart"in win||win.DocumentTouch&&win.document instanceof win.DocumentTouch||win.navigator.maxTouchPoints)),hasTransitions:transitionSupport(),IE:false,semVer:"4.2.0",window:win},core=function(){this.__$emitterPrivate=$({});this.__$emitterPublic=$({});this.__instancesLatestArr=[];this.__plugins={};this._env=env};core.prototype={__bridge:function(constructor,obj,pluginName){if(!obj[pluginName]){var fn=function(){};fn.prototype=constructor;var pluginInstance=new fn;if(pluginInstance.__init){pluginInstance.__init(obj)}$.each(constructor,function(methodName,fn){if(methodName.indexOf("__")!=0){if(!obj[methodName]){obj[methodName]=function(){return pluginInstance[methodName].apply(pluginInstance,Array.prototype.slice.apply(arguments))};obj[methodName].bridged=pluginInstance}else if(defaults.debug){console.log("The "+methodName+" method of the "+pluginName+" plugin conflicts with another plugin or native methods")}}});obj[pluginName]=pluginInstance}return this},__setWindow:function(window){env.window=window;return this},_getRuler:function($tooltip){return new Ruler($tooltip)},_off:function(){this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments));return this},_on:function(){this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments));return this},_one:function(){this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments));return this},_plugin:function(plugin){var self=this;if(typeof plugin=="string"){var pluginName=plugin,p=null;if(pluginName.indexOf(".")>0){p=self.__plugins[pluginName]}else{$.each(self.__plugins,function(i,plugin){if(plugin.name.substring(plugin.name.length-pluginName.length-1)=="."+pluginName){p=plugin;return false}})}return p}else{if(plugin.name.indexOf(".")<0){throw new Error("Plugins must be namespaced")}self.__plugins[plugin.name]=plugin;if(plugin.core){self.__bridge(plugin.core,self,plugin.name)}return this}},_trigger:function(){var args=Array.prototype.slice.apply(arguments);if(typeof args[0]=="string"){args[0]={type:args[0]}}this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,args);this.__$emitterPublic.trigger.apply(this.__$emitterPublic,args);return this},instances:function(selector){var instances=[],sel=selector||".tooltipstered";$(sel).each(function(){var $this=$(this),ns=$this.data("tooltipster-ns");if(ns){$.each(ns,function(i,namespace){instances.push($this.data(namespace))})}});return instances},instancesLatest:function(){return this.__instancesLatestArr},off:function(){this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments));return this},on:function(){this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments));return this},one:function(){this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments));return this},origins:function(selector){var sel=selector?selector+" ":"";return $(sel+".tooltipstered").toArray()},setDefaults:function(d){$.extend(defaults,d);return this},triggerHandler:function(){this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments));return this}};$.tooltipster=new core;$.Tooltipster=function(element,options){this.__callbacks={close:[],open:[]};this.__closingTime;this.__Content;this.__contentBcr;this.__destroyed=false;this.__$emitterPrivate=$({});this.__$emitterPublic=$({});this.__enabled=true;this.__garbageCollector;this.__Geometry;this.__lastPosition;this.__namespace="tooltipster-"+Math.round(Math.random()*1e6);this.__options;this.__$originParents;this.__pointerIsOverOrigin=false;this.__previousThemes=[];this.__state="closed";this.__timeouts={close:[],open:null};this.__touchEvents=[];this.__tracker=null;this._$origin;this._$tooltip;this.__init(element,options)};$.Tooltipster.prototype={__init:function(origin,options){var self=this;self._$origin=$(origin);self.__options=$.extend(true,{},defaults,options);self.__optionsFormat();if(!env.IE||env.IE>=self.__options.IEmin){var initialTitle=null;if(self._$origin.data("tooltipster-initialTitle")===undefined){initialTitle=self._$origin.attr("title");if(initialTitle===undefined)initialTitle=null;self._$origin.data("tooltipster-initialTitle",initialTitle)}if(self.__options.content!==null){self.__contentSet(self.__options.content)}else{var selector=self._$origin.attr("data-tooltip-content"),$el;if(selector){$el=$(selector)}if($el&&$el[0]){self.__contentSet($el.first())}else{self.__contentSet(initialTitle)}}self._$origin.removeAttr("title").addClass("tooltipstered");self.__prepareOrigin();self.__prepareGC();$.each(self.__options.plugins,function(i,pluginName){self._plug(pluginName)});if(env.hasTouchCapability){$(env.window.document.body).on("touchmove."+self.__namespace+"-triggerOpen",function(event){self._touchRecordEvent(event)})}self._on("created",function(){self.__prepareTooltip()})._on("repositioned",function(e){self.__lastPosition=e.position})}else{self.__options.disabled=true}},__contentInsert:function(){var self=this,$el=self._$tooltip.find(".tooltipster-content"),formattedContent=self.__Content,format=function(content){formattedContent=content};self._trigger({type:"format",content:self.__Content,format:format});if(self.__options.functionFormat){formattedContent=self.__options.functionFormat.call(self,self,{origin:self._$origin[0]},self.__Content)}if(typeof formattedContent==="string"&&!self.__options.contentAsHTML){$el.text(formattedContent)}else{$el.empty().append(formattedContent)}return self},__contentSet:function(content){if(content instanceof $&&this.__options.contentCloning){content=content.clone(true)}this.__Content=content;this._trigger({type:"updated",content:content});return this},__destroyError:function(){throw new Error("This tooltip has been destroyed and cannot execute your method call.")},__geometry:function(){var self=this,$target=self._$origin,originIsArea=self._$origin.is("area");if(originIsArea){var mapName=self._$origin.parent().attr("name");$target=$('img[usemap="#'+mapName+'"]')}var bcr=$target[0].getBoundingClientRect(),$document=$(env.window.document),$window=$(env.window),$parent=$target,geo={available:{document:null,window:null},document:{size:{height:$document.height(),width:$document.width()}},window:{scroll:{left:env.window.scrollX||env.window.document.documentElement.scrollLeft,top:env.window.scrollY||env.window.document.documentElement.scrollTop},size:{height:$window.height(),width:$window.width()}},origin:{fixedLineage:false,offset:{},size:{height:bcr.bottom-bcr.top,width:bcr.right-bcr.left},usemapImage:originIsArea?$target[0]:null,windowOffset:{bottom:bcr.bottom,left:bcr.left,right:bcr.right,top:bcr.top}}},geoFixed=false;if(originIsArea){var shape=self._$origin.attr("shape"),coords=self._$origin.attr("coords");if(coords){coords=coords.split(",");$.map(coords,function(val,i){coords[i]=parseInt(val)})}if(shape!="default"){switch(shape){case"circle":var circleCenterLeft=coords[0],circleCenterTop=coords[1],circleRadius=coords[2],areaTopOffset=circleCenterTop-circleRadius,areaLeftOffset=circleCenterLeft-circleRadius;geo.origin.size.height=circleRadius*2;geo.origin.size.width=geo.origin.size.height;geo.origin.windowOffset.left+=areaLeftOffset;geo.origin.windowOffset.top+=areaTopOffset;break;case"rect":var areaLeft=coords[0],areaTop=coords[1],areaRight=coords[2],areaBottom=coords[3];geo.origin.size.height=areaBottom-areaTop;geo.origin.size.width=areaRight-areaLeft;geo.origin.windowOffset.left+=areaLeft;geo.origin.windowOffset.top+=areaTop;break;case"poly":var areaSmallestX=0,areaSmallestY=0,areaGreatestX=0,areaGreatestY=0,arrayAlternate="even";for(var i=0;i<coords.length;i++){var areaNumber=coords[i];if(arrayAlternate=="even"){if(areaNumber>areaGreatestX){areaGreatestX=areaNumber;if(i===0){areaSmallestX=areaGreatestX}}if(areaNumber<areaSmallestX){areaSmallestX=areaNumber}arrayAlternate="odd"}else{if(areaNumber>areaGreatestY){areaGreatestY=areaNumber;if(i==1){areaSmallestY=areaGreatestY}}if(areaNumber<areaSmallestY){areaSmallestY=areaNumber}arrayAlternate="even"}}geo.origin.size.height=areaGreatestY-areaSmallestY;geo.origin.size.width=areaGreatestX-areaSmallestX;geo.origin.windowOffset.left+=areaSmallestX;geo.origin.windowOffset.top+=areaSmallestY;break}}}var edit=function(r){geo.origin.size.height=r.height,geo.origin.windowOffset.left=r.left,geo.origin.windowOffset.top=r.top,geo.origin.size.width=r.width};self._trigger({type:"geometry",edit:edit,geometry:{height:geo.origin.size.height,left:geo.origin.windowOffset.left,top:geo.origin.windowOffset.top,width:geo.origin.size.width}});geo.origin.windowOffset.right=geo.origin.windowOffset.left+geo.origin.size.width;geo.origin.windowOffset.bottom=geo.origin.windowOffset.top+geo.origin.size.height;geo.origin.offset.left=geo.origin.windowOffset.left+geo.window.scroll.left;geo.origin.offset.top=geo.origin.windowOffset.top+geo.window.scroll.top;geo.origin.offset.bottom=geo.origin.offset.top+geo.origin.size.height;geo.origin.offset.right=geo.origin.offset.left+geo.origin.size.width;geo.available.document={bottom:{height:geo.document.size.height-geo.origin.offset.bottom,width:geo.document.size.width},left:{height:geo.document.size.height,width:geo.origin.offset.left},right:{height:geo.document.size.height,width:geo.document.size.width-geo.origin.offset.right},top:{height:geo.origin.offset.top,width:geo.document.size.width}};geo.available.window={bottom:{height:Math.max(geo.window.size.height-Math.max(geo.origin.windowOffset.bottom,0),0),width:geo.window.size.width},left:{height:geo.window.size.height,width:Math.max(geo.origin.windowOffset.left,0)},right:{height:geo.window.size.height,width:Math.max(geo.window.size.width-Math.max(geo.origin.windowOffset.right,0),0)},top:{height:Math.max(geo.origin.windowOffset.top,0),width:geo.window.size.width}};while($parent[0].tagName.toLowerCase()!="html"){if($parent.css("position")=="fixed"){geo.origin.fixedLineage=true;break}$parent=$parent.parent()}return geo},__optionsFormat:function(){if(typeof this.__options.animationDuration=="number"){this.__options.animationDuration=[this.__options.animationDuration,this.__options.animationDuration]}if(typeof this.__options.delay=="number"){this.__options.delay=[this.__options.delay,this.__options.delay]}if(typeof this.__options.delayTouch=="number"){this.__options.delayTouch=[this.__options.delayTouch,this.__options.delayTouch]}if(typeof this.__options.theme=="string"){this.__options.theme=[this.__options.theme]}if(this.__options.parent===null){this.__options.parent=$(env.window.document.body)}else if(typeof this.__options.parent=="string"){this.__options.parent=$(this.__options.parent)}if(this.__options.trigger=="hover"){this.__options.triggerOpen={mouseenter:true,touchstart:true};this.__options.triggerClose={mouseleave:true,originClick:true,touchleave:true}}else if(this.__options.trigger=="click"){this.__options.triggerOpen={click:true,tap:true};this.__options.triggerClose={click:true,tap:true}}this._trigger("options");return this},__prepareGC:function(){var self=this;if(self.__options.selfDestruction){self.__garbageCollector=setInterval(function(){var now=(new Date).getTime();self.__touchEvents=$.grep(self.__touchEvents,function(event,i){return now-event.time>6e4});if(!bodyContains(self._$origin)){self.destroy()}},2e4)}else{clearInterval(self.__garbageCollector)}return self},__prepareOrigin:function(){var self=this;self._$origin.off("."+self.__namespace+"-triggerOpen");if(env.hasTouchCapability){self._$origin.on("touchstart."+self.__namespace+"-triggerOpen "+"touchend."+self.__namespace+"-triggerOpen "+"touchcancel."+self.__namespace+"-triggerOpen",function(event){self._touchRecordEvent(event)})}if(self.__options.triggerOpen.click||self.__options.triggerOpen.tap&&env.hasTouchCapability){var eventNames="";if(self.__options.triggerOpen.click){eventNames+="click."+self.__namespace+"-triggerOpen "}if(self.__options.triggerOpen.tap&&env.hasTouchCapability){eventNames+="touchend."+self.__namespace+"-triggerOpen"}self._$origin.on(eventNames,function(event){if(self._touchIsMeaningfulEvent(event)){self._open(event)}})}if(self.__options.triggerOpen.mouseenter||self.__options.triggerOpen.touchstart&&env.hasTouchCapability){var eventNames="";if(self.__options.triggerOpen.mouseenter){eventNames+="mouseenter."+self.__namespace+"-triggerOpen "}if(self.__options.triggerOpen.touchstart&&env.hasTouchCapability){eventNames+="touchstart."+self.__namespace+"-triggerOpen"}self._$origin.on(eventNames,function(event){if(self._touchIsTouchEvent(event)||!self._touchIsEmulatedEvent(event)){self.__pointerIsOverOrigin=true;self._openShortly(event)}})}if(self.__options.triggerClose.mouseleave||self.__options.triggerClose.touchleave&&env.hasTouchCapability){var eventNames="";if(self.__options.triggerClose.mouseleave){eventNames+="mouseleave."+self.__namespace+"-triggerOpen "}if(self.__options.triggerClose.touchleave&&env.hasTouchCapability){eventNames+="touchend."+self.__namespace+"-triggerOpen touchcancel."+self.__namespace+"-triggerOpen"}self._$origin.on(eventNames,function(event){if(self._touchIsMeaningfulEvent(event)){self.__pointerIsOverOrigin=false}})}return self},__prepareTooltip:function(){var self=this,p=self.__options.interactive?"auto":"";self._$tooltip.attr("id",self.__namespace).css({"pointer-events":p,zIndex:self.__options.zIndex});$.each(self.__previousThemes,function(i,theme){self._$tooltip.removeClass(theme)});$.each(self.__options.theme,function(i,theme){self._$tooltip.addClass(theme)});self.__previousThemes=$.merge([],self.__options.theme);return self},__scrollHandler:function(event){var self=this;if(self.__options.triggerClose.scroll){self._close(event)}else{if(bodyContains(self._$origin)&&bodyContains(self._$tooltip)){if(event.target===env.window.document){if(!self.__Geometry.origin.fixedLineage){if(self.__options.repositionOnScroll){self.reposition(event)}}}else{var g=self.__geometry(),overflows=false;if(self._$origin.css("position")!="fixed"){self.__$originParents.each(function(i,el){var $el=$(el),overflowX=$el.css("overflow-x"),overflowY=$el.css("overflow-y");if(overflowX!="visible"||overflowY!="visible"){var bcr=el.getBoundingClientRect();if(overflowX!="visible"){if(g.origin.windowOffset.left<bcr.left||g.origin.windowOffset.right>bcr.right){overflows=true;return false}}if(overflowY!="visible"){if(g.origin.windowOffset.top<bcr.top||g.origin.windowOffset.bottom>bcr.bottom){overflows=true;return false}}}if($el.css("position")=="fixed"){return false}})}if(overflows){self._$tooltip.css("visibility","hidden")}else{self._$tooltip.css("visibility","visible");if(self.__options.repositionOnScroll){self.reposition(event)}else{var offsetLeft=g.origin.offset.left-self.__Geometry.origin.offset.left,offsetTop=g.origin.offset.top-self.__Geometry.origin.offset.top;self._$tooltip.css({left:self.__lastPosition.coord.left+offsetLeft,top:self.__lastPosition.coord.top+offsetTop})}}}self._trigger({type:"scroll",event:event})}}return self},__stateSet:function(state){this.__state=state;this._trigger({type:"state",state:state});return this},__timeoutsClear:function(){clearTimeout(this.__timeouts.open);this.__timeouts.open=null;$.each(this.__timeouts.close,function(i,timeout){clearTimeout(timeout)});this.__timeouts.close=[];return this},__trackerStart:function(){var self=this,$content=self._$tooltip.find(".tooltipster-content");if(self.__options.trackTooltip){self.__contentBcr=$content[0].getBoundingClientRect()}self.__tracker=setInterval(function(){if(!bodyContains(self._$origin)||!bodyContains(self._$tooltip)){self._close()}else{if(self.__options.trackOrigin){var g=self.__geometry(),identical=false;if(areEqual(g.origin.size,self.__Geometry.origin.size)){if(self.__Geometry.origin.fixedLineage){if(areEqual(g.origin.windowOffset,self.__Geometry.origin.windowOffset)){identical=true}}else{if(areEqual(g.origin.offset,self.__Geometry.origin.offset)){identical=true}}}if(!identical){if(self.__options.triggerClose.mouseleave){self._close()}else{self.reposition()}}}if(self.__options.trackTooltip){var currentBcr=$content[0].getBoundingClientRect();if(currentBcr.height!==self.__contentBcr.height||currentBcr.width!==self.__contentBcr.width){self.reposition();self.__contentBcr=currentBcr}}}},self.__options.trackerInterval);return self},_close:function(event,callback,force){var self=this,ok=true;self._trigger({type:"close",event:event,stop:function(){ok=false}});if(ok||force){if(callback)self.__callbacks.close.push(callback);self.__callbacks.open=[];self.__timeoutsClear();var finishCallbacks=function(){$.each(self.__callbacks.close,function(i,c){c.call(self,self,{event:event,origin:self._$origin[0]})});self.__callbacks.close=[]};if(self.__state!="closed"){var necessary=true,d=new Date,now=d.getTime(),newClosingTime=now+self.__options.animationDuration[1];if(self.__state=="disappearing"){if(newClosingTime>self.__closingTime){necessary=false}}if(necessary){self.__closingTime=newClosingTime;if(self.__state!="disappearing"){self.__stateSet("disappearing")}var finish=function(){clearInterval(self.__tracker);self._trigger({type:"closing",event:event});self._$tooltip.off("."+self.__namespace+"-triggerClose").removeClass("tooltipster-dying");$(env.window).off("."+self.__namespace+"-triggerClose");self.__$originParents.each(function(i,el){$(el).off("scroll."+self.__namespace+"-triggerClose")});self.__$originParents=null
;$(env.window.document.body).off("."+self.__namespace+"-triggerClose");self._$origin.off("."+self.__namespace+"-triggerClose");self._off("dismissable");self.__stateSet("closed");self._trigger({type:"after",event:event});if(self.__options.functionAfter){self.__options.functionAfter.call(self,self,{event:event,origin:self._$origin[0]})}finishCallbacks()};if(env.hasTransitions){self._$tooltip.css({"-moz-animation-duration":self.__options.animationDuration[1]+"ms","-ms-animation-duration":self.__options.animationDuration[1]+"ms","-o-animation-duration":self.__options.animationDuration[1]+"ms","-webkit-animation-duration":self.__options.animationDuration[1]+"ms","animation-duration":self.__options.animationDuration[1]+"ms","transition-duration":self.__options.animationDuration[1]+"ms"});self._$tooltip.clearQueue().removeClass("tooltipster-show").addClass("tooltipster-dying");if(self.__options.animationDuration[1]>0){self._$tooltip.delay(self.__options.animationDuration[1])}self._$tooltip.queue(finish)}else{self._$tooltip.stop().fadeOut(self.__options.animationDuration[1],finish)}}}else{finishCallbacks()}}return self},_off:function(){this.__$emitterPrivate.off.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments));return this},_on:function(){this.__$emitterPrivate.on.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments));return this},_one:function(){this.__$emitterPrivate.one.apply(this.__$emitterPrivate,Array.prototype.slice.apply(arguments));return this},_open:function(event,callback){var self=this;if(!self.__destroying){if(bodyContains(self._$origin)&&self.__enabled){var ok=true;if(self.__state=="closed"){self._trigger({type:"before",event:event,stop:function(){ok=false}});if(ok&&self.__options.functionBefore){ok=self.__options.functionBefore.call(self,self,{event:event,origin:self._$origin[0]})}}if(ok!==false){if(self.__Content!==null){if(callback){self.__callbacks.open.push(callback)}self.__callbacks.close=[];self.__timeoutsClear();var extraTime,finish=function(){if(self.__state!="stable"){self.__stateSet("stable")}$.each(self.__callbacks.open,function(i,c){c.call(self,self,{origin:self._$origin[0],tooltip:self._$tooltip[0]})});self.__callbacks.open=[]};if(self.__state!=="closed"){extraTime=0;if(self.__state==="disappearing"){self.__stateSet("appearing");if(env.hasTransitions){self._$tooltip.clearQueue().removeClass("tooltipster-dying").addClass("tooltipster-show");if(self.__options.animationDuration[0]>0){self._$tooltip.delay(self.__options.animationDuration[0])}self._$tooltip.queue(finish)}else{self._$tooltip.stop().fadeIn(finish)}}else if(self.__state=="stable"){finish()}}else{self.__stateSet("appearing");extraTime=self.__options.animationDuration[0];self.__contentInsert();self.reposition(event,true);if(env.hasTransitions){self._$tooltip.addClass("tooltipster-"+self.__options.animation).addClass("tooltipster-initial").css({"-moz-animation-duration":self.__options.animationDuration[0]+"ms","-ms-animation-duration":self.__options.animationDuration[0]+"ms","-o-animation-duration":self.__options.animationDuration[0]+"ms","-webkit-animation-duration":self.__options.animationDuration[0]+"ms","animation-duration":self.__options.animationDuration[0]+"ms","transition-duration":self.__options.animationDuration[0]+"ms"});setTimeout(function(){if(self.__state!="closed"){self._$tooltip.addClass("tooltipster-show").removeClass("tooltipster-initial");if(self.__options.animationDuration[0]>0){self._$tooltip.delay(self.__options.animationDuration[0])}self._$tooltip.queue(finish)}},0)}else{self._$tooltip.css("display","none").fadeIn(self.__options.animationDuration[0],finish)}self.__trackerStart();$(env.window).on("resize."+self.__namespace+"-triggerClose",function(e){var $ae=$(document.activeElement);if(!$ae.is("input")&&!$ae.is("textarea")||!$.contains(self._$tooltip[0],$ae[0])){self.reposition(e)}}).on("scroll."+self.__namespace+"-triggerClose",function(e){self.__scrollHandler(e)});self.__$originParents=self._$origin.parents();self.__$originParents.each(function(i,parent){$(parent).on("scroll."+self.__namespace+"-triggerClose",function(e){self.__scrollHandler(e)})});if(self.__options.triggerClose.mouseleave||self.__options.triggerClose.touchleave&&env.hasTouchCapability){self._on("dismissable",function(event){if(event.dismissable){if(event.delay){timeout=setTimeout(function(){self._close(event.event)},event.delay);self.__timeouts.close.push(timeout)}else{self._close(event)}}else{clearTimeout(timeout)}});var $elements=self._$origin,eventNamesIn="",eventNamesOut="",timeout=null;if(self.__options.interactive){$elements=$elements.add(self._$tooltip)}if(self.__options.triggerClose.mouseleave){eventNamesIn+="mouseenter."+self.__namespace+"-triggerClose ";eventNamesOut+="mouseleave."+self.__namespace+"-triggerClose "}if(self.__options.triggerClose.touchleave&&env.hasTouchCapability){eventNamesIn+="touchstart."+self.__namespace+"-triggerClose";eventNamesOut+="touchend."+self.__namespace+"-triggerClose touchcancel."+self.__namespace+"-triggerClose"}$elements.on(eventNamesOut,function(event){if(self._touchIsTouchEvent(event)||!self._touchIsEmulatedEvent(event)){var delay=event.type=="mouseleave"?self.__options.delay:self.__options.delayTouch;self._trigger({delay:delay[1],dismissable:true,event:event,type:"dismissable"})}}).on(eventNamesIn,function(event){if(self._touchIsTouchEvent(event)||!self._touchIsEmulatedEvent(event)){self._trigger({dismissable:false,event:event,type:"dismissable"})}})}if(self.__options.triggerClose.originClick){self._$origin.on("click."+self.__namespace+"-triggerClose",function(event){if(!self._touchIsTouchEvent(event)&&!self._touchIsEmulatedEvent(event)){self._close(event)}})}if(self.__options.triggerClose.click||self.__options.triggerClose.tap&&env.hasTouchCapability){setTimeout(function(){if(self.__state!="closed"){var eventNames="",$body=$(env.window.document.body);if(self.__options.triggerClose.click){eventNames+="click."+self.__namespace+"-triggerClose "}if(self.__options.triggerClose.tap&&env.hasTouchCapability){eventNames+="touchend."+self.__namespace+"-triggerClose"}$body.on(eventNames,function(event){if(self._touchIsMeaningfulEvent(event)){self._touchRecordEvent(event);if(!self.__options.interactive||!$.contains(self._$tooltip[0],event.target)){self._close(event)}}});if(self.__options.triggerClose.tap&&env.hasTouchCapability){$body.on("touchstart."+self.__namespace+"-triggerClose",function(event){self._touchRecordEvent(event)})}}},0)}self._trigger("ready");if(self.__options.functionReady){self.__options.functionReady.call(self,self,{origin:self._$origin[0],tooltip:self._$tooltip[0]})}}if(self.__options.timer>0){var timeout=setTimeout(function(){self._close()},self.__options.timer+extraTime);self.__timeouts.close.push(timeout)}}}}}return self},_openShortly:function(event){var self=this,ok=true;if(self.__state!="stable"&&self.__state!="appearing"){if(!self.__timeouts.open){self._trigger({type:"start",event:event,stop:function(){ok=false}});if(ok){var delay=event.type.indexOf("touch")==0?self.__options.delayTouch:self.__options.delay;if(delay[0]){self.__timeouts.open=setTimeout(function(){self.__timeouts.open=null;if(self.__pointerIsOverOrigin&&self._touchIsMeaningfulEvent(event)){self._trigger("startend");self._open(event)}else{self._trigger("startcancel")}},delay[0])}else{self._trigger("startend");self._open(event)}}}}return self},_optionsExtract:function(pluginName,defaultOptions){var self=this,options=$.extend(true,{},defaultOptions);var pluginOptions=self.__options[pluginName];if(!pluginOptions){pluginOptions={};$.each(defaultOptions,function(optionName,value){var o=self.__options[optionName];if(o!==undefined){pluginOptions[optionName]=o}})}$.each(options,function(optionName,value){if(pluginOptions[optionName]!==undefined){if(typeof value=="object"&&!(value instanceof Array)&&value!=null&&(typeof pluginOptions[optionName]=="object"&&!(pluginOptions[optionName]instanceof Array)&&pluginOptions[optionName]!=null)){$.extend(options[optionName],pluginOptions[optionName])}else{options[optionName]=pluginOptions[optionName]}}});return options},_plug:function(pluginName){var plugin=$.tooltipster._plugin(pluginName);if(plugin){if(plugin.instance){$.tooltipster.__bridge(plugin.instance,this,plugin.name)}}else{throw new Error('The "'+pluginName+'" plugin is not defined')}return this},_touchIsEmulatedEvent:function(event){var isEmulated=false,now=(new Date).getTime();for(var i=this.__touchEvents.length-1;i>=0;i--){var e=this.__touchEvents[i];if(now-e.time<500){if(e.target===event.target){isEmulated=true}}else{break}}return isEmulated},_touchIsMeaningfulEvent:function(event){return this._touchIsTouchEvent(event)&&!this._touchSwiped(event.target)||!this._touchIsTouchEvent(event)&&!this._touchIsEmulatedEvent(event)},_touchIsTouchEvent:function(event){return event.type.indexOf("touch")==0},_touchRecordEvent:function(event){if(this._touchIsTouchEvent(event)){event.time=(new Date).getTime();this.__touchEvents.push(event)}return this},_touchSwiped:function(target){var swiped=false;for(var i=this.__touchEvents.length-1;i>=0;i--){var e=this.__touchEvents[i];if(e.type=="touchmove"){swiped=true;break}else if(e.type=="touchstart"&&target===e.target){break}}return swiped},_trigger:function(){var args=Array.prototype.slice.apply(arguments);if(typeof args[0]=="string"){args[0]={type:args[0]}}args[0].instance=this;args[0].origin=this._$origin?this._$origin[0]:null;args[0].tooltip=this._$tooltip?this._$tooltip[0]:null;this.__$emitterPrivate.trigger.apply(this.__$emitterPrivate,args);$.tooltipster._trigger.apply($.tooltipster,args);this.__$emitterPublic.trigger.apply(this.__$emitterPublic,args);return this},_unplug:function(pluginName){var self=this;if(self[pluginName]){var plugin=$.tooltipster._plugin(pluginName);if(plugin.instance){$.each(plugin.instance,function(methodName,fn){if(self[methodName]&&self[methodName].bridged===self[pluginName]){delete self[methodName]}})}if(self[pluginName].__destroy){self[pluginName].__destroy()}delete self[pluginName]}return self},close:function(callback){if(!this.__destroyed){this._close(null,callback)}else{this.__destroyError()}return this},content:function(content){var self=this;if(content===undefined){return self.__Content}else{if(!self.__destroyed){self.__contentSet(content);if(self.__Content!==null){if(self.__state!=="closed"){self.__contentInsert();self.reposition();if(self.__options.updateAnimation){if(env.hasTransitions){var animation=self.__options.updateAnimation;self._$tooltip.addClass("tooltipster-update-"+animation);setTimeout(function(){if(self.__state!="closed"){self._$tooltip.removeClass("tooltipster-update-"+animation)}},1e3)}else{self._$tooltip.fadeTo(200,.5,function(){if(self.__state!="closed"){self._$tooltip.fadeTo(200,1)}})}}}}else{self._close()}}else{self.__destroyError()}return self}},destroy:function(){var self=this;if(!self.__destroyed){self.option("animationDuration",0)._close(null,null,true)._trigger("destroy");self.__destroyed=true;self._$origin.removeData(self.__namespace).off("."+self.__namespace+"-triggerOpen");$(env.window.document.body).off("."+self.__namespace+"-triggerOpen");var ns=self._$origin.data("tooltipster-ns");if(ns){if(ns.length===1){var title=null;if(self.__options.restoration=="previous"){title=self._$origin.data("tooltipster-initialTitle")}else if(self.__options.restoration=="current"){title=typeof self.__Content=="string"?self.__Content:$("<div></div>").append(self.__Content).html()}if(title){self._$origin.attr("title",title)}self._$origin.removeClass("tooltipstered");self._$origin.removeData("tooltipster-ns").removeData("tooltipster-initialTitle")}else{ns=$.grep(ns,function(el,i){return el!==self.__namespace});self._$origin.data("tooltipster-ns",ns)}}self._trigger("destroyed");self._off();self.off();self.__Content=null;self.__$emitterPrivate=null;self.__$emitterPublic=null;self.__options.parent=null;self._$origin=null;self._$tooltip=null;$.tooltipster.__instancesLatestArr=$.grep($.tooltipster.__instancesLatestArr,function(el,i){return self!==el});clearInterval(self.__garbageCollector)}else{self.__destroyError()}return self},disable:function(){if(!this.__destroyed){this._close();this.__enabled=false;return this}else{this.__destroyError()}return this},elementOrigin:function(){if(!this.__destroyed){return this._$origin[0]}else{this.__destroyError()}},elementTooltip:function(){return this._$tooltip?this._$tooltip[0]:null},enable:function(){this.__enabled=true;return this},hide:function(callback){return this.close(callback)},instance:function(){return this},off:function(){if(!this.__destroyed){this.__$emitterPublic.off.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments))}return this},on:function(){if(!this.__destroyed){this.__$emitterPublic.on.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments))}else{this.__destroyError()}return this},one:function(){if(!this.__destroyed){this.__$emitterPublic.one.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments))}else{this.__destroyError()}return this},open:function(callback){if(!this.__destroyed){this._open(null,callback)}else{this.__destroyError()}return this},option:function(o,val){if(val===undefined){return this.__options[o]}else{if(!this.__destroyed){this.__options[o]=val;this.__optionsFormat();if($.inArray(o,["trigger","triggerClose","triggerOpen"])>=0){this.__prepareOrigin()}if(o==="selfDestruction"){this.__prepareGC()}}else{this.__destroyError()}return this}},reposition:function(event,tooltipIsDetached){var self=this;if(!self.__destroyed){if(self.__state!="closed"&&bodyContains(self._$origin)){if(tooltipIsDetached||bodyContains(self._$tooltip)){if(!tooltipIsDetached){self._$tooltip.detach()}self.__Geometry=self.__geometry();self._trigger({type:"reposition",event:event,helper:{geo:self.__Geometry}})}}}else{self.__destroyError()}return self},show:function(callback){return this.open(callback)},status:function(){return{destroyed:this.__destroyed,enabled:this.__enabled,open:this.__state!=="closed",state:this.__state}},triggerHandler:function(){if(!this.__destroyed){this.__$emitterPublic.triggerHandler.apply(this.__$emitterPublic,Array.prototype.slice.apply(arguments))}else{this.__destroyError()}return this}};$.fn.tooltipster=function(){var args=Array.prototype.slice.apply(arguments),contentCloningWarning="You are using a single HTML element as content for several tooltips. You probably want to set the contentCloning option to TRUE.";if(this.length===0){return this}else{if(typeof args[0]==="string"){var v="#*$~&";this.each(function(){var ns=$(this).data("tooltipster-ns"),self=ns?$(this).data(ns[0]):null;if(self){if(typeof self[args[0]]==="function"){if(this.length>1&&args[0]=="content"&&(args[1]instanceof $||typeof args[1]=="object"&&args[1]!=null&&args[1].tagName)&&!self.__options.contentCloning&&self.__options.debug){console.log(contentCloningWarning)}var resp=self[args[0]](args[1],args[2])}else{throw new Error('Unknown method "'+args[0]+'"')}if(resp!==self||args[0]==="instance"){v=resp;return false}}else{throw new Error("You called Tooltipster's \""+args[0]+'" method on an uninitialized element')}});return v!=="#*$~&"?v:this}else{$.tooltipster.__instancesLatestArr=[];var multipleIsSet=args[0]&&args[0].multiple!==undefined,multiple=multipleIsSet&&args[0].multiple||!multipleIsSet&&defaults.multiple,contentIsSet=args[0]&&args[0].content!==undefined,content=contentIsSet&&args[0].content||!contentIsSet&&defaults.content,contentCloningIsSet=args[0]&&args[0].contentCloning!==undefined,contentCloning=contentCloningIsSet&&args[0].contentCloning||!contentCloningIsSet&&defaults.contentCloning,debugIsSet=args[0]&&args[0].debug!==undefined,debug=debugIsSet&&args[0].debug||!debugIsSet&&defaults.debug;if(this.length>1&&(content instanceof $||typeof content=="object"&&content!=null&&content.tagName)&&!contentCloning&&debug){console.log(contentCloningWarning)}this.each(function(){var go=false,$this=$(this),ns=$this.data("tooltipster-ns"),obj=null;if(!ns){go=true}else if(multiple){go=true}else if(debug){console.log("Tooltipster: one or more tooltips are already attached to the element below. Ignoring.");console.log(this)}if(go){obj=new $.Tooltipster(this,args[0]);if(!ns)ns=[];ns.push(obj.__namespace);$this.data("tooltipster-ns",ns);$this.data(obj.__namespace,obj);if(obj.__options.functionInit){obj.__options.functionInit.call(obj,obj,{origin:this})}obj._trigger("init")}$.tooltipster.__instancesLatestArr.push(obj)});return this}}};function Ruler($tooltip){this.$container;this.constraints=null;this.__$tooltip;this.__init($tooltip)}Ruler.prototype={__init:function($tooltip){this.__$tooltip=$tooltip;this.__$tooltip.css({left:0,overflow:"hidden",position:"absolute",top:0}).find(".tooltipster-content").css("overflow","auto");this.$container=$('<div class="tooltipster-ruler"></div>').append(this.__$tooltip).appendTo(env.window.document.body)},__forceRedraw:function(){var $p=this.__$tooltip.parent();this.__$tooltip.detach();this.__$tooltip.appendTo($p)},constrain:function(width,height){this.constraints={width:width,height:height};this.__$tooltip.css({display:"block",height:"",overflow:"auto",width:width});return this},destroy:function(){this.__$tooltip.detach().find(".tooltipster-content").css({display:"",overflow:""});this.$container.remove()},free:function(){this.constraints=null;this.__$tooltip.css({display:"",height:"",overflow:"visible",width:""});return this},measure:function(){this.__forceRedraw();var tooltipBcr=this.__$tooltip[0].getBoundingClientRect(),result={size:{height:tooltipBcr.height||tooltipBcr.bottom,width:tooltipBcr.width||tooltipBcr.right}};if(this.constraints){var $content=this.__$tooltip.find(".tooltipster-content"),height=this.__$tooltip.outerHeight(),contentBcr=$content[0].getBoundingClientRect(),fits={height:height<=this.constraints.height,width:tooltipBcr.width<=this.constraints.width&&contentBcr.width>=$content[0].scrollWidth-1};result.fits=fits.height&&fits.width}if(env.IE&&env.IE<=11&&result.size.width!==env.window.document.documentElement.clientWidth){result.size.width=Math.ceil(result.size.width)+1}return result}};function areEqual(a,b){var same=true;$.each(a,function(i,_){if(b[i]===undefined||a[i]!==b[i]){same=false;return false}});return same}function bodyContains($obj){var id=$obj.attr("id"),el=id?env.window.document.getElementById(id):null;return el?el===$obj[0]:$.contains(env.window.document.body,$obj[0])}var uA=navigator.userAgent.toLowerCase();if(uA.indexOf("msie")!=-1)env.IE=parseInt(uA.split("msie")[1]);else if(uA.toLowerCase().indexOf("trident")!==-1&&uA.indexOf(" rv:11")!==-1)env.IE=11;else if(uA.toLowerCase().indexOf("edge/")!=-1)env.IE=parseInt(uA.toLowerCase().split("edge/")[1]);function transitionSupport(){if(!win)return false;var b=win.document.body||win.document.documentElement,s=b.style,p="transition",v=["Moz","Webkit","Khtml","O","ms"];if(typeof s[p]=="string"){return true}p=p.charAt(0).toUpperCase()+p.substr(1);for(var i=0;i<v.length;i++){if(typeof s[v[i]+p]=="string"){return true}}return false}var pluginName="tooltipster.sideTip";$.tooltipster._plugin({name:pluginName,instance:{__defaults:function(){return{arrow:true,distance:6,functionPosition:null,maxWidth:null,minIntersection:16,minWidth:0,position:null,side:"top",viewportAware:true}},__init:function(instance){var self=this;self.__instance=instance;self.__namespace="tooltipster-sideTip-"+Math.round(Math.random()*1e6);self.__previousState="closed";self.__options;self.__optionsFormat();self.__instance._on("state."+self.__namespace,function(event){if(event.state=="closed"){self.__close()}else if(event.state=="appearing"&&self.__previousState=="closed"){self.__create()}self.__previousState=event.state});self.__instance._on("options."+self.__namespace,function(){self.__optionsFormat()});self.__instance._on("reposition."+self.__namespace,function(e){self.__reposition(e.event,e.helper)})},__close:function(){if(this.__instance.content()instanceof $){this.__instance.content().detach()}this.__instance._$tooltip.remove();this.__instance._$tooltip=null},__create:function(){var $html=$('<div class="tooltipster-base tooltipster-sidetip">'+'<div class="tooltipster-box">'+'<div class="tooltipster-content"></div>'+"</div>"+'<div class="tooltipster-arrow">'+'<div class="tooltipster-arrow-uncropped">'+'<div class="tooltipster-arrow-border"></div>'+'<div class="tooltipster-arrow-background"></div>'+"</div>"+"</div>"+"</div>");if(!this.__options.arrow){$html.find(".tooltipster-box").css("margin",0).end().find(".tooltipster-arrow").hide()}if(this.__options.minWidth){$html.css("min-width",this.__options.minWidth+"px")}if(this.__options.maxWidth){$html.css("max-width",this.__options.maxWidth+"px")}this.__instance._$tooltip=$html;this.__instance._trigger("created")},__destroy:function(){this.__instance._off("."+self.__namespace)},__optionsFormat:function(){var self=this;self.__options=self.__instance._optionsExtract(pluginName,self.__defaults());if(self.__options.position){self.__options.side=self.__options.position}if(typeof self.__options.distance!="object"){self.__options.distance=[self.__options.distance]}if(self.__options.distance.length<4){if(self.__options.distance[1]===undefined)self.__options.distance[1]=self.__options.distance[0];if(self.__options.distance[2]===undefined)self.__options.distance[2]=self.__options.distance[0];if(self.__options.distance[3]===undefined)self.__options.distance[3]=self.__options.distance[1];self.__options.distance={top:self.__options.distance[0],right:self.__options.distance[1],bottom:self.__options.distance[2],left:self.__options.distance[3]}}if(typeof self.__options.side=="string"){var opposites={top:"bottom",right:"left",bottom:"top",left:"right"};self.__options.side=[self.__options.side,opposites[self.__options.side]];if(self.__options.side[0]=="left"||self.__options.side[0]=="right"){self.__options.side.push("top","bottom")}else{self.__options.side.push("right","left")}}if($.tooltipster._env.IE===6&&self.__options.arrow!==true){self.__options.arrow=false}},__reposition:function(event,helper){var self=this,finalResult,targets=self.__targetFind(helper),testResults=[];self.__instance._$tooltip.detach();var $clone=self.__instance._$tooltip.clone(),ruler=$.tooltipster._getRuler($clone),satisfied=false,animation=self.__instance.option("animation");if(animation){$clone.removeClass("tooltipster-"+animation)}$.each(["window","document"],function(i,container){var takeTest=null;self.__instance._trigger({container:container,helper:helper,satisfied:satisfied,takeTest:function(bool){takeTest=bool},results:testResults,type:"positionTest"});if(takeTest==true||takeTest!=false&&satisfied==false&&(container!="window"||self.__options.viewportAware)){for(var i=0;i<self.__options.side.length;i++){var distance={horizontal:0,vertical:0},side=self.__options.side[i];if(side=="top"||side=="bottom"){distance.vertical=self.__options.distance[side]}else{distance.horizontal=self.__options.distance[side]}self.__sideChange($clone,side);$.each(["natural","constrained"],function(i,mode){takeTest=null;self.__instance._trigger({container:container,event:event,helper:helper,mode:mode,results:testResults,satisfied:satisfied,side:side,takeTest:function(bool){takeTest=bool},type:"positionTest"});if(takeTest==true||takeTest!=false&&satisfied==false){var testResult={container:container,distance:distance,fits:null,mode:mode,outerSize:null,side:side,size:null,target:targets[side],whole:null};var rulerConfigured=mode=="natural"?ruler.free():ruler.constrain(helper.geo.available[container][side].width-distance.horizontal,helper.geo.available[container][side].height-distance.vertical),rulerResults=rulerConfigured.measure();testResult.size=rulerResults.size;testResult.outerSize={height:rulerResults.size.height+distance.vertical,width:rulerResults.size.width+distance.horizontal};if(mode=="natural"){if(helper.geo.available[container][side].width>=testResult.outerSize.width&&helper.geo.available[container][side].height>=testResult.outerSize.height){testResult.fits=true}else{testResult.fits=false}}else{testResult.fits=rulerResults.fits}if(container=="window"){if(!testResult.fits){testResult.whole=false}else{if(side=="top"||side=="bottom"){testResult.whole=helper.geo.origin.windowOffset.right>=self.__options.minIntersection&&helper.geo.window.size.width-helper.geo.origin.windowOffset.left>=self.__options.minIntersection}else{testResult.whole=helper.geo.origin.windowOffset.bottom>=self.__options.minIntersection&&helper.geo.window.size.height-helper.geo.origin.windowOffset.top>=self.__options.minIntersection}}}testResults.push(testResult);if(testResult.whole){satisfied=true}else{if(testResult.mode=="natural"&&(testResult.fits||testResult.size.width<=helper.geo.available[container][side].width)){return false}}}})}}});self.__instance._trigger({edit:function(r){testResults=r},event:event,helper:helper,results:testResults,type:"positionTested"});testResults.sort(function(a,b){if(a.whole&&!b.whole){return-1}else if(!a.whole&&b.whole){return 1}else if(a.whole&&b.whole){var ai=self.__options.side.indexOf(a.side),bi=self.__options.side.indexOf(b.side);if(ai<bi){return-1}else if(ai>bi){return 1}else{return a.mode=="natural"?-1:1}}else{if(a.fits&&!b.fits){return-1}else if(!a.fits&&b.fits){return 1}else if(a.fits&&b.fits){var ai=self.__options.side.indexOf(a.side),bi=self.__options.side.indexOf(b.side);if(ai<bi){return-1}else if(ai>bi){return 1}else{return a.mode=="natural"?-1:1}}else{if(a.container=="document"&&a.side=="bottom"&&a.mode=="natural"){return-1}else{return 1}}}});finalResult=testResults[0];finalResult.coord={};switch(finalResult.side){case"left":case"right":finalResult.coord.top=Math.floor(finalResult.target-finalResult.size.height/2);break;case"bottom":case"top":finalResult.coord.left=Math.floor(finalResult.target-finalResult.size.width/2);break}switch(finalResult.side){case"left":finalResult.coord.left=helper.geo.origin.windowOffset.left-finalResult.outerSize.width;break;case"right":finalResult.coord.left=helper.geo.origin.windowOffset.right+finalResult.distance.horizontal;break;case"top":finalResult.coord.top=helper.geo.origin.windowOffset.top-finalResult.outerSize.height;break;case"bottom":finalResult.coord.top=helper.geo.origin.windowOffset.bottom+finalResult.distance.vertical;break}if(finalResult.container=="window"){if(finalResult.side=="top"||finalResult.side=="bottom"){if(finalResult.coord.left<0){if(helper.geo.origin.windowOffset.right-this.__options.minIntersection>=0){finalResult.coord.left=0}else{finalResult.coord.left=helper.geo.origin.windowOffset.right-this.__options.minIntersection-1}}else if(finalResult.coord.left>helper.geo.window.size.width-finalResult.size.width){if(helper.geo.origin.windowOffset.left+this.__options.minIntersection<=helper.geo.window.size.width){finalResult.coord.left=helper.geo.window.size.width-finalResult.size.width}else{finalResult.coord.left=helper.geo.origin.windowOffset.left+this.__options.minIntersection+1-finalResult.size.width}}}else{if(finalResult.coord.top<0){if(helper.geo.origin.windowOffset.bottom-this.__options.minIntersection>=0){finalResult.coord.top=0}else{finalResult.coord.top=helper.geo.origin.windowOffset.bottom-this.__options.minIntersection-1}}else if(finalResult.coord.top>helper.geo.window.size.height-finalResult.size.height){if(helper.geo.origin.windowOffset.top+this.__options.minIntersection<=helper.geo.window.size.height){finalResult.coord.top=helper.geo.window.size.height-finalResult.size.height}else{finalResult.coord.top=helper.geo.origin.windowOffset.top+this.__options.minIntersection+1-finalResult.size.height}}}}else{if(finalResult.coord.left>helper.geo.window.size.width-finalResult.size.width){finalResult.coord.left=helper.geo.window.size.width-finalResult.size.width}if(finalResult.coord.left<0){finalResult.coord.left=0}}self.__sideChange($clone,finalResult.side);helper.tooltipClone=$clone[0];helper.tooltipParent=self.__instance.option("parent").parent[0];helper.mode=finalResult.mode;helper.whole=finalResult.whole;helper.origin=self.__instance._$origin[0];helper.tooltip=self.__instance._$tooltip[0];delete finalResult.container;delete finalResult.fits;delete finalResult.mode;delete finalResult.outerSize;delete finalResult.whole;finalResult.distance=finalResult.distance.horizontal||finalResult.distance.vertical;var finalResultClone=$.extend(true,{},finalResult);self.__instance._trigger({edit:function(result){finalResult=result},event:event,helper:helper,position:finalResultClone,type:"position"});if(self.__options.functionPosition){var result=self.__options.functionPosition.call(self,self.__instance,helper,finalResultClone);if(result)finalResult=result}ruler.destroy();var arrowCoord,maxVal;if(finalResult.side=="top"||finalResult.side=="bottom"){arrowCoord={prop:"left",val:finalResult.target-finalResult.coord.left};maxVal=finalResult.size.width-this.__options.minIntersection}else{arrowCoord={prop:"top",val:finalResult.target-finalResult.coord.top};maxVal=finalResult.size.height-this.__options.minIntersection}if(arrowCoord.val<this.__options.minIntersection){arrowCoord.val=this.__options.minIntersection}else if(arrowCoord.val>maxVal){arrowCoord.val=maxVal}var originParentOffset;if(helper.geo.origin.fixedLineage){originParentOffset=helper.geo.origin.windowOffset}else{originParentOffset={left:helper.geo.origin.windowOffset.left+helper.geo.window.scroll.left,top:helper.geo.origin.windowOffset.top+helper.geo.window.scroll.top}}finalResult.coord={left:originParentOffset.left+(finalResult.coord.left-helper.geo.origin.windowOffset.left),top:originParentOffset.top+(finalResult.coord.top-helper.geo.origin.windowOffset.top)};self.__sideChange(self.__instance._$tooltip,finalResult.side);if(helper.geo.origin.fixedLineage){self.__instance._$tooltip.css("position","fixed")}else{self.__instance._$tooltip.css("position","")}self.__instance._$tooltip.css({left:finalResult.coord.left,top:finalResult.coord.top,height:finalResult.size.height,width:finalResult.size.width}).find(".tooltipster-arrow").css({left:"",top:""}).css(arrowCoord.prop,arrowCoord.val);self.__instance._$tooltip.appendTo(self.__instance.option("parent"));self.__instance._trigger({type:"repositioned",event:event,position:finalResult})},__sideChange:function($obj,side){$obj.removeClass("tooltipster-bottom").removeClass("tooltipster-left").removeClass("tooltipster-right").removeClass("tooltipster-top").addClass("tooltipster-"+side)},__targetFind:function(helper){var target={},rects=this.__instance._$origin[0].getClientRects();if(rects.length>1){var opacity=this.__instance._$origin.css("opacity");if(opacity==1){this.__instance._$origin.css("opacity",.99);rects=this.__instance._$origin[0].getClientRects();this.__instance._$origin.css("opacity",1)}}if(rects.length<2){target.top=Math.floor(helper.geo.origin.windowOffset.left+helper.geo.origin.size.width/2);target.bottom=target.top;target.left=Math.floor(helper.geo.origin.windowOffset.top+helper.geo.origin.size.height/2);target.right=target.left}else{var targetRect=rects[0];target.top=Math.floor(targetRect.left+(targetRect.right-targetRect.left)/2);if(rects.length>2){targetRect=rects[Math.ceil(rects.length/2)-1]}else{targetRect=rects[0]}target.right=Math.floor(targetRect.top+(targetRect.bottom-targetRect.top)/2);targetRect=rects[rects.length-1];target.bottom=Math.floor(targetRect.left+(targetRect.right-targetRect.left)/2);if(rects.length>2){targetRect=rects[Math.ceil((rects.length+1)/2)-1]}else{targetRect=rects[rects.length-1]}target.left=Math.floor(targetRect.top+(targetRect.bottom-targetRect.top)/2)}return target}}});return $});(function(factory){"use strict";if(typeof define==="function"&&define.amd){define(["jquery","jquery-ui/ui/widgets/menu"],factory)}else{factory(jQuery)}})(function($){"use strict";var supportSelectstart="onselectstart"in document.createElement("div"),match=$.ui.menu.version.match(/^(\d)\.(\d+)/),uiVersion={major:parseInt(match[1],10),minor:parseInt(match[2],10)
},isLTE110=uiVersion.major<2&&uiVersion.minor<=10,isLTE111=uiVersion.major<2&&uiVersion.minor<=11;$.widget("moogle.contextmenu",{version:"@VERSION",options:{addClass:"ui-contextmenu",closeOnWindowBlur:true,autoFocus:false,autoTrigger:true,delegate:null,hide:{effect:"fadeOut",duration:"fast"},ignoreParentSelect:true,menu:null,position:null,preventContextMenuForPopup:false,preventSelect:false,show:{effect:"slideDown",duration:"fast"},taphold:false,uiMenuOptions:{},beforeOpen:$.noop,blur:$.noop,close:$.noop,create:$.noop,createMenu:$.noop,focus:$.noop,open:$.noop,select:$.noop},_create:function(){var cssText,eventNames,targetId,opts=this.options;this.$headStyle=null;this.$menu=null;this.menuIsTemp=false;this.currentTarget=null;this.extraData={};this.previousFocus=null;if(opts.delegate==null){$.error("ui-contextmenu: Missing required option `delegate`.")}if(opts.preventSelect){targetId=($(this.element).is(document)?$("body"):this.element).uniqueId().attr("id");cssText="#"+targetId+" "+opts.delegate+" { "+"-webkit-user-select: none; "+"-khtml-user-select: none; "+"-moz-user-select: none; "+"-ms-user-select: none; "+"user-select: none; "+"}";this.$headStyle=$("<style class='moogle-contextmenu-style' />").prop("type","text/css").appendTo("head");try{this.$headStyle.html(cssText)}catch(e){this.$headStyle[0].styleSheet.cssText=cssText}if(supportSelectstart){this.element.on("selectstart"+this.eventNamespace,opts.delegate,function(event){event.preventDefault()})}}this._createUiMenu(opts.menu);eventNames="contextmenu"+this.eventNamespace;if(opts.taphold){eventNames+=" taphold"+this.eventNamespace}this.element.on(eventNames,opts.delegate,$.proxy(this._openMenu,this))},_destroy:function(){this.element.off(this.eventNamespace);this._createUiMenu(null);if(this.$headStyle){this.$headStyle.remove();this.$headStyle=null}},_createUiMenu:function(menuDef){var ct,ed,opts=this.options;if(this.isOpen()){ct=this.currentTarget;ed=this.extraData;this._closeMenu(true);this.currentTarget=ct;this.extraData=ed}if(this.menuIsTemp){this.$menu.remove()}else if(this.$menu){this.$menu.menu("destroy").removeClass(this.options.addClass).hide()}this.$menu=null;this.menuIsTemp=false;if(!menuDef){return}else if($.isArray(menuDef)){this.$menu=$.moogle.contextmenu.createMenuMarkup(menuDef);this.menuIsTemp=true}else if(typeof menuDef==="string"){this.$menu=$(menuDef)}else{this.$menu=menuDef}this.$menu.hide().addClass(opts.addClass).menu($.extend(true,{},opts.uiMenuOptions,{items:"> :not(.ui-widget-header)",blur:$.proxy(opts.blur,this),create:$.proxy(opts.createMenu,this),focus:$.proxy(opts.focus,this),select:$.proxy(function(event,ui){var retval,isParent=$.moogle.contextmenu.isMenu(ui.item),actionHandler=ui.item.data("actionHandler");ui.cmd=ui.item.attr("data-command");ui.target=$(this.currentTarget);ui.extraData=this.extraData;if(!isParent||!opts.ignoreParentSelect){retval=this._trigger.call(this,"select",event,ui);if(actionHandler){retval=actionHandler.call(this,event,ui)}if(retval!==false){this._closeMenu.call(this)}event.preventDefault()}},this)}))},_openMenu:function(event,recursive){var res,promise,ui,opts=this.options,posOption=opts.position,self=this,manualTrigger=!!event.isTrigger;if(!opts.autoTrigger&&!manualTrigger){return}event.preventDefault();this.currentTarget=event.target;this.extraData=event._extraData||{};ui={menu:this.$menu,target:$(this.currentTarget),extraData:this.extraData,originalEvent:event,result:null};if(!recursive){res=this._trigger("beforeOpen",event,ui);promise=ui.result&&$.isFunction(ui.result.promise)?ui.result:null;ui.result=null;if(res===false){this.currentTarget=null;return false}else if(promise){promise.done(function(){self._openMenu(event,true)});this.currentTarget=null;return false}ui.menu=this.$menu}$(document).on("keydown"+this.eventNamespace,function(event){if(event.which===$.ui.keyCode.ESCAPE){self._closeMenu()}}).on("mousedown"+this.eventNamespace+" touchstart"+this.eventNamespace,function(event){if(!$(event.target).closest(".ui-menu-item").length){self._closeMenu()}});$(window).on("blur"+this.eventNamespace,function(event){if(opts.closeOnWindowBlur){self._closeMenu()}});if($.isFunction(posOption)){posOption=posOption(event,ui)}posOption=$.extend({my:"left top",at:"left bottom",of:event.pageX===undefined?event.target:event,collision:"fit"},posOption);this._updateEntries(this.$menu);this.$menu.show().css({position:"absolute",left:0,top:0}).position(posOption).hide();if(opts.preventContextMenuForPopup){this.$menu.on("contextmenu"+this.eventNamespace,function(event){event.preventDefault()})}this._show(this.$menu,opts.show,function(){var $first;if(opts.autoFocus){self.previousFocus=$(event.target);$first=self.$menu.children("li.ui-menu-item").not(".ui-state-disabled").first();self.$menu.menu("focus",null,$first).focus()}self._trigger.call(self,"open",event,ui)})},_closeMenu:function(immediately){var self=this,hideOpts=immediately?false:this.options.hide,ui={menu:this.$menu,target:$(this.currentTarget),extraData:this.extraData};$(document).off("mousedown"+this.eventNamespace).off("touchstart"+this.eventNamespace).off("keydown"+this.eventNamespace);$(window).off("blur"+this.eventNamespace);self.currentTarget=null;self.extraData={};if(this.$menu){this.$menu.off("contextmenu"+this.eventNamespace);this._hide(this.$menu,hideOpts,function(){if(self.previousFocus){self.previousFocus.focus();self.previousFocus=null}self._trigger("close",null,ui)})}else{self._trigger("close",null,ui)}},_setOption:function(key,value){switch(key){case"menu":this.replaceMenu(value);break}$.Widget.prototype._setOption.apply(this,arguments)},_getMenuEntry:function(cmd){return this.$menu.find("li[data-command="+cmd+"]")},close:function(){if(this.isOpen()){this._closeMenu()}},_updateEntries:function(){var self=this,ui={menu:this.$menu,target:$(this.currentTarget),extraData:this.extraData};$.each(this.$menu.find(".ui-menu-item"),function(i,o){var $entry=$(o),fn=$entry.data("disabledHandler"),res=fn?fn({type:"disabled"},ui):null;ui.item=$entry;ui.cmd=$entry.attr("data-command");if(res!=null){self.enableEntry(ui.cmd,!res);self.showEntry(ui.cmd,res!=="hide")}fn=$entry.data("titleHandler"),res=fn?fn({type:"title"},ui):null;if(res!=null){self.setEntry(ui.cmd,""+res)}fn=$entry.data("tooltipHandler"),res=fn?fn({type:"tooltip"},ui):null;if(res!=null){$entry.attr("title",""+res)}})},enableEntry:function(cmd,flag){this._getMenuEntry(cmd).toggleClass("ui-state-disabled",flag===false)},getMenu:function(){return this.$menu},isOpen:function(){return!!this.$menu&&!!this.currentTarget},open:function(targetOrEvent,extraData){extraData=extraData||{};var isEvent=targetOrEvent&&targetOrEvent.type&&targetOrEvent.target,event=isEvent?targetOrEvent:{},target=isEvent?targetOrEvent.target:targetOrEvent,e=jQuery.Event("contextmenu",{target:$(target).get(0),pageX:event.pageX,pageY:event.pageY,originalEvent:isEvent?targetOrEvent:undefined,_extraData:extraData});return this.element.trigger(e)},replaceMenu:function(data){this._createUiMenu(data)},setEntry:function(cmd,entry){var $ul,$entryLi=this._getMenuEntry(cmd);if(typeof entry==="string"){$.moogle.contextmenu.updateTitle($entryLi,entry)}else{$entryLi.empty();entry.cmd=entry.cmd||cmd;$.moogle.contextmenu.createEntryMarkup(entry,$entryLi);if($.isArray(entry.children)){$ul=$("<ul/>").appendTo($entryLi);$.moogle.contextmenu.createMenuMarkup(entry.children,$ul)}$entryLi.removeClass("ui-menu-item");this.getMenu().menu("refresh")}},showEntry:function(cmd,flag){this._getMenuEntry(cmd).toggle(flag!==false)}});$.extend($.moogle.contextmenu,{createEntryMarkup:function(entry,$parentLi){var $wrapper=null;$parentLi.attr("data-command",entry.cmd);if(!/[^\-\u2014\u2013\s]/.test(entry.title)){$parentLi.text(entry.title)}else{if(isLTE110){$wrapper=$("<a/>",{html:""+entry.title,href:"#"}).appendTo($parentLi);if(entry.uiIcon){$wrapper.append($("<span class='ui-icon' />").addClass(entry.uiIcon))}}else if(isLTE111){$parentLi.html(""+entry.title);if(entry.uiIcon){$parentLi.append($("<span class='ui-icon' />").addClass(entry.uiIcon))}}else{$wrapper=$("<div/>",{html:""+entry.title}).appendTo($parentLi);if(entry.uiIcon){$wrapper.append($("<span class='ui-icon' />").addClass(entry.uiIcon))}}$.each(["action","disabled","title","tooltip"],function(i,attr){if($.isFunction(entry[attr])){$parentLi.data(attr+"Handler",entry[attr])}});if(entry.disabled===true){$parentLi.addClass("ui-state-disabled")}if(entry.isHeader){$parentLi.addClass("ui-widget-header")}if(entry.addClass){$parentLi.addClass(entry.addClass)}if($.isPlainObject(entry.data)){$parentLi.data(entry.data)}if(typeof entry.tooltip==="string"){$parentLi.attr("title",entry.tooltip)}}},createMenuMarkup:function(options,$parentUl){var i,menu,$ul,$li;if($parentUl==null){$parentUl=$("<ul class='ui-helper-hidden' />").appendTo("body")}for(i=0;i<options.length;i++){menu=options[i];$li=$("<li/>").appendTo($parentUl);$.moogle.contextmenu.createEntryMarkup(menu,$li);if($.isArray(menu.children)){$ul=$("<ul/>").appendTo($li);$.moogle.contextmenu.createMenuMarkup(menu.children,$ul)}}return $parentUl},isMenu:function(item){if(isLTE110){return item.has(">a[aria-haspopup='true']").length>0}else if(isLTE111){return item.is("[aria-haspopup='true']")}else{return item.has(">div[aria-haspopup='true']").length>0}},replaceFirstTextNodeChild:function(elem,html){var $icons=elem.find(">span.ui-icon,>ul.ui-menu").detach();elem.empty().html(html).append($icons)},updateTitle:function(item,title){if(isLTE110){$.moogle.contextmenu.replaceFirstTextNodeChild($("a",item),title)}else if(isLTE111){$.moogle.contextmenu.replaceFirstTextNodeChild(item,title)}else{$.moogle.contextmenu.replaceFirstTextNodeChild($("div",item),title)}}})});(function(factory){if(typeof define==="function"&&define.amd){define(["jquery"],factory)}else if(typeof exports==="object"){module.exports=factory(require("jquery"))}else{factory(jQuery)}})(function($){var eventNamespace="waitForImages";var hasSrcset=function(img){return img.srcset&&img.sizes}(new Image);$.waitForImages={hasImageProperties:["backgroundImage","listStyleImage","borderImage","borderCornerImage","cursor"],hasImageAttributes:["srcset"]};$.expr[":"]["has-src"]=function(obj){return $(obj).is('img[src][src!=""]')};$.expr[":"].uncached=function(obj){if(!$(obj).is(":has-src")){return false}return!obj.complete};$.fn.waitForImages=function(){var allImgsLength=0;var allImgsLoaded=0;var deferred=$.Deferred();var originalCollection=this;var allImgs=[];var hasImgProperties=$.waitForImages.hasImageProperties||[];var hasImageAttributes=$.waitForImages.hasImageAttributes||[];var matchUrl=/url\(\s*(['"]?)(.*?)\1\s*\)/g;var finishedCallback;var eachCallback;var waitForAll;if($.isPlainObject(arguments[0])){waitForAll=arguments[0].waitForAll;eachCallback=arguments[0].each;finishedCallback=arguments[0].finished}else{if(arguments.length===1&&$.type(arguments[0])==="boolean"){waitForAll=arguments[0]}else{finishedCallback=arguments[0];eachCallback=arguments[1];waitForAll=arguments[2]}}finishedCallback=finishedCallback||$.noop;eachCallback=eachCallback||$.noop;waitForAll=!!waitForAll;if(!$.isFunction(finishedCallback)||!$.isFunction(eachCallback)){throw new TypeError("An invalid callback was supplied.")}this.each(function(){var obj=$(this);if(waitForAll){obj.find("*").addBack().each(function(){var element=$(this);if(element.is("img:has-src")&&!element.is("[srcset]")){allImgs.push({src:element.attr("src"),element:element[0]})}$.each(hasImgProperties,function(i,property){var propertyValue=element.css(property);var match;if(!propertyValue){return true}while(match=matchUrl.exec(propertyValue)){allImgs.push({src:match[2],element:element[0]})}});$.each(hasImageAttributes,function(i,attribute){var attributeValue=element.attr(attribute);var attributeValues;if(!attributeValue){return true}allImgs.push({src:element.attr("src"),srcset:element.attr("srcset"),element:element[0]})})})}else{obj.find("img:has-src").each(function(){allImgs.push({src:this.src,element:this})})}});allImgsLength=allImgs.length;P.instances.allImgs=allImgs;allImgsLoaded=0;if(allImgsLength===0){finishedCallback.call(originalCollection);deferred.resolveWith(originalCollection)}$.each(allImgs,function(i,img){var image=new Image;var events="load."+eventNamespace+" error."+eventNamespace;$(image).one(events,function me(event){var eachArguments=[allImgsLoaded,allImgsLength,event.type=="load"];allImgsLoaded++;eachCallback.apply(img.element,eachArguments);deferred.notifyWith(img.element,eachArguments);$(this).off(events,me);if(allImgsLoaded==allImgsLength){finishedCallback.call(originalCollection[0]);deferred.resolveWith(originalCollection[0]);return false}});if(hasSrcset&&img.srcset){image.srcset=img.srcset;image.sizes=img.sizes}image.src=img.src});return deferred.promise()}});var Strata=function(){};Strata.BASE=0;Strata.MAP_BASE=10;Strata.MAP_OVERLAY=20;Strata.MAP_SVG=30;Strata.MAP_INFO_BUBBLE=40;Strata.MAP_CONTROLS=50;Strata.OVER_MAP0=55;Strata.OVER_MAP1=56;Strata.OVER_MAP2=57;Strata.SHADED=60;Strata.SHADED_DIALOG=70;Strata.ALERT_DIALOG_SHADER=80;Strata.ALERT_DIALOG=90;var isCSS,isW3C,isIE4,isNN4;function initDHTMLAPI(){if(document.images){isCSS=document.body&&document.body.style?true:false;isW3C=isCSS&&document.getElementById?true:false;isIE4=isCSS&&document.all?true:false;isNN4=document.layers?true:false;isIE6CSS=document.compatMode&&document.compatMode.indexOf("CSS1")>=0?true:false}}function seekLayer(doc,name){var theObj;for(var i=0;i<doc.layers.length;i++){if(doc.layers[i].name==name){theObj=doc.layers[i];break}if(doc.layers[i].document.layers.length>0){theObj=seekLayer(document.layers[i].document,name)}}return theObj}function getRawObject(obj){var theObj;if(typeof obj=="string"){if(isW3C){theObj=document.getElementById(obj)}else if(isIE4){theObj=document.all(obj)}else if(isNN4){theObj=seekLayer(document,obj)}}else{theObj=obj}return theObj}function getObject(obj){var theObj=getRawObject(obj);if(theObj&&isCSS){theObj=theObj.style}return theObj}function shiftTo(obj,x,y){var theObj=getObject(obj);if(theObj){if(isCSS){var units=typeof theObj.left=="string"?"px":0;theObj.left=x+units;theObj.top=y+units}else if(isNN4){theObj.moveTo(x,y)}}}function shiftBy(obj,deltaX,deltaY){var theObj=getObject(obj);if(theObj){if(isCSS){var units=typeof theObj.left=="string"?"px":0;theObj.left=getObjectLeft(obj)+deltaX+units;theObj.top=getObjectTop(obj)+deltaY+units}else if(isNN4){theObj.moveBy(deltaX,deltaY)}}}function setZIndex(obj,zOrder){var theObj=getObject(obj);if(theObj){theObj.zIndex=zOrder}}function setBGColor(obj,color){var theObj=getObject(obj);if(theObj){if(isNN4){theObj.bgColor=color}else if(isCSS){theObj.backgroundColor=color}}}function show(obj){var theObj=getObject(obj);if(theObj){theObj.visibility="visible"}}function hide(obj){var theObj=getObject(obj);if(theObj){theObj.visibility="hidden"}}function getObjectLeft(obj){var elem=getRawObject(obj);var result=0;if(document.defaultView){var style=document.defaultView;var cssDecl=style.getComputedStyle(elem,"");result=cssDecl.getPropertyValue("left")}else if(elem.currentStyle){result=elem.currentStyle.left}else if(elem.style){result=elem.style.left}else if(isNN4){result=elem.left}return parseInt(result)}function getObjectTop(obj){var elem=getRawObject(obj);var result=0;if(document.defaultView){var style=document.defaultView;var cssDecl=style.getComputedStyle(elem,"");result=cssDecl.getPropertyValue("top")}else if(elem.currentStyle){result=elem.currentStyle.top}else if(elem.style){result=elem.style.top}else if(isNN4){result=elem.top}return parseInt(result)}function getObjectWidth(obj){var elem=getRawObject(obj);var result=0;if(elem.offsetWidth){result=elem.offsetWidth}else if(elem.clip&&elem.clip.width){result=elem.clip.width}else if(elem.style&&elem.style.pixelWidth){result=elem.style.pixelWidth}return parseInt(result)}function getObjectHeight(obj){var elem=getRawObject(obj);var result=0;if(elem.offsetHeight){result=elem.offsetHeight}else if(elem.clip&&elem.clip.height){result=elem.clip.height}else if(elem.style&&elem.style.pixelHeight){result=elem.style.pixelHeight}return parseInt(result)}function getInsideWindowWidth(){if(window.innerWidth){return window.innerWidth}else if(isIE6CSS){return document.body.parentElement.clientWidth}else if(document.body&&document.body.clientWidth){return document.body.clientWidth}return 0}function getInsideWindowHeight(){if(window.innerHeight){return window.innerHeight}else if(isIE6CSS){return document.body.parentElement.clientHeight}else if(document.body&&document.body.clientHeight){return document.body.clientHeight}return 0}var aXmlHttp=new Array;var aXmlResponse=new Array;function xmlResult(){for(var i=0;i<aXmlHttp.length;i++){if(aXmlHttp[i]&&aXmlHttp[i][0]&&aXmlHttp[i][0].readyState==4&&aXmlHttp[i][0].responseText){var f=aXmlHttp[i][2];var o=aXmlHttp[i][1];var s=aXmlHttp[i][0].responseText;aXmlHttp[i][0]=null;aXmlHttp[i][1]=null;aXmlHttp[i]=null;f.apply(o,new Array(s))}}}function call(u,o,f){var method="GET";var dat;if(arguments.length==4){method="POST";tmp=u.split(/\?/);u=tmp[0];dat=tmp[1]}var idx=aXmlHttp.length;for(var i=0;i<idx;i++)if(aXmlHttp[i]==null){idx=i;break}aXmlHttp[idx]=new Array(2);aXmlHttp[idx][0]=getXMLHTTP();aXmlHttp[idx][1]=o;aXmlHttp[idx][2]=f;if(aXmlHttp[idx]){aXmlHttp[idx][0].open(method,u,true);if(method=="POST"){aXmlHttp[idx][0].setRequestHeader("Content-Type","application/x-www-form-urlencoded");aXmlHttp[idx][0].send(dat)}aXmlHttp[idx][0].onreadystatechange=xmlResult;if(method=="GET"){aXmlHttp[idx][0].send(null)}}}function getXMLHTTP(){var A=null;if(!A&&typeof XMLHttpRequest!="undefined"){A=new XMLHttpRequest}if(!A){try{A=new ActiveXObject("Msxml2.XMLHTTP")}catch(e){try{A=new ActiveXObject("Microsoft.XMLHTTP")}catch(oc){A=null}}}return A}function drawNull(s){eval(s);return false}function bypassCall(baseUrl,file,o,f){var s=document.createElement("script");s.src=baseUrl+"bypass.php?file="+file+"&o="+o+"&f="+f;var h=document.getElementsByTagName("head").item(0);h.appendChild(s)}var goExpanderManager=new cExpanderManager;function cExpanderManager(){this.expanders=new Array;this.formElement=null;this.add=cExpanderManager_Add;this.initialize=cExpanderManager_Initialize;this.registerOpen=cExpanderManager_RegisterOpen;this.registerClose=cExpanderManager_RegisterClose;this.isVisible=function(){return true};this.isElementVisible=cExpanderManager_IsElementVisible;this.expandAll=cExpanderManager_ExpandAll;this.collapseAll=cExpanderManager_CollapseAll}function cExpanderManager_Add(oExpander){this.expanders[this.expanders.length]=oExpander;oExpander.manager=this}function cExpanderManager_Initialize(){if(this.formElement==null)return;for(var i=0;i<this.expanders.length;i++){if(this.expanders[i].bIsOpen)this.registerOpen(this.expanders[i]);this.expanders[i].initialize(this.isElementVisible(this.expanders[i].element.id))}}function cExpanderManager_RegisterOpen(oExpander){if(this.formElement==null)return;if(this.formElement.value.indexOf(oExpander.element.id)<0){if(this.formElement.value!="")this.formElement.value+=",";this.formElement.value+=oExpander.element.id}}function cExpanderManager_RegisterClose(oExpander){if(this.formElement==null)return;var rx=new RegExp(oExpander.element.id,"");var text=this.formElement.value;text=text.replace(rx,"");text=text.replace(/,,/g,",");if(text.substr(0,1)==",")text=text.slice(1);if(text.substr(-1)==",")text=text.slice(0,-1);this.formElement.value=text}function cExpanderManager_IsElementVisible(id){rx=new RegExp(id,"");return rx.test(this.formElement.value)}function cExpanderManager_ExpandAll(){for(var i=0;i<this.expanders.length;i++){this.expanders[i].expandAll()}}function cExpanderManager_CollapseAll(){for(var i=0;i<this.expanders.length;i++){this.expanders[i].collapseAll()}return true}function cExpander(elm){this.element=elm;this.element.expander=this;this.children=new Array;this.bIsOpen=false;this.manager=null;this.img=null;this.szExpandImgSrc="";this.szCollapseImgSrc="";this.addElement=cExpander_AddElement;this.open=cExpander_Open;this.close=cExpander_Close;this.expandAll=cExpander_ExpandAll;this.collapseAll=cExpander_CollapseAll;this.expand=cExpander_Expand;this.contract=cExpander_Contract;this.toggle=cExpander_Toggle;this.initialize=cExpander_Initialize;this.registerOpen=cExpander_RegisterOpen;this.registerClose=cExpander_RegisterClose;this.isVisible=cExpander_IsVisible}function cExpander_AddElement(elm){this.children[this.children.length]=elm;elm.manager=this;return true}function cExpander_Open(){for(var i=0;i<this.children.length;i++){this.children[i].element.style.display="block";if(this.children[i].bIsOpen){this.children[i].open()}}if(this.img!=null&&this.szCollapseImgSrc!=""){this.img.src=this.szCollapseImgSrc}return true}function cExpander_Close(){for(var i=0;i<this.children.length;i++){this.children[i].element.style.display="none";this.children[i].close()}if(this.img!=null&&this.szExpandImgSrc!=""){this.img.src=this.szExpandImgSrc}return true}function cExpander_ExpandAll(){for(var i=0;i<this.children.length;i++){this.children[i].expandAll()}this.expand();return true}function cExpander_CollapseAll(){for(var i=0;i<this.children.length;i++){this.children[i].collapseAll()}this.contract();return true}function cExpander_Expand(){this.bIsOpen=true;this.registerOpen(this);this.open();return true}function cExpander_Contract(){this.bIsOpen=false;this.registerClose(this);this.close();return true}function cExpander_Toggle(){if(this.bIsOpen)this.contract();else this.expand();return true}function cExpander_Initialize(bState){this.bIsOpen=bState;for(var i=0;i<this.children.length;i++){var child=this.children[i];if(this.isVisible())child.element.style.display="block";if(child.bIsOpen)this.registerOpen(child);this.children[i].initialize(goExpanderManager.isElementVisible(child.element.id))}if(this.img!=null){if(this.bIsOpen&&this.szCollapseImgSrc!=""){this.img.src=this.szCollapseImgSrc}else if(!this.bIsOpen&&this.szExpandImgSrc!=""){this.img.src=this.szExpandImgSrc}}return true}function cExpander_RegisterOpen(elm){if(this.manager!=null)this.manager.registerOpen(elm);return true}function cExpander_RegisterClose(elm){if(this.manager!=null)this.manager.registerClose(elm);return true}function cExpander_IsVisible(){var bVisible=this.bIsOpen;if(this.manager!=null)bVisible=bVisible&&this.manager.isVisible();return bVisible}if(!document.createElement("canvas").getContext){(function(){var m=Math;var mr=m.round;var ms=m.sin;var mc=m.cos;var abs=m.abs;var sqrt=m.sqrt;var Z=10;var Z2=Z/2;function getContext(){return this.context_||(this.context_=new CanvasRenderingContext2D_(this))}var slice=Array.prototype.slice;function bind(f,obj,var_args){var a=slice.call(arguments,2);return function(){return f.apply(obj,a.concat(slice.call(arguments)))}}var G_vmlCanvasManager_={init:function(opt_doc){if((/MSIE/.test(navigator.userAgent)||/Trident/.test(navigator.userAgent))&&!window.opera){var doc=opt_doc||document;doc.createElement("canvas");doc.attachEvent("onreadystatechange",bind(this.init_,this,doc))}},init_:function(doc){if(!doc.namespaces["g_vml_"]){doc.namespaces.add("g_vml_","urn:schemas-microsoft-com:vml","#default#VML")}if(!doc.namespaces["g_o_"]){doc.namespaces.add("g_o_","urn:schemas-microsoft-com:office:office","#default#VML")}if(!doc.styleSheets["ex_canvas_"]){var ss=doc.createStyleSheet();ss.owningElement.id="ex_canvas_";ss.cssText="canvas{display:inline-block;overflow:hidden;"+"text-align:left;width:300px;height:150px}"+"g_vml_\\:*{behavior:url(#default#VML)}"+"g_o_\\:*{behavior:url(#default#VML)}"}var els=doc.getElementsByTagName("canvas");for(var i=0;i<els.length;i++){this.initElement(els[i])}},initElement:function(el){if(!el.getContext){el.getContext=getContext;el.innerHTML="";el.attachEvent("onpropertychange",onPropertyChange);el.attachEvent("onresize",onResize);var attrs=el.attributes;if(attrs.width&&attrs.width.specified){el.style.width=attrs.width.nodeValue+"px"}else{el.width=el.clientWidth}if(attrs.height&&attrs.height.specified){el.style.height=attrs.height.nodeValue+"px"}else{el.height=el.clientHeight}}return el}};function onPropertyChange(e){var el=e.srcElement;switch(e.propertyName){case"width":el.style.width=el.attributes.width.nodeValue+"px";el.getContext().clearRect();break;case"height":el.style.height=el.attributes.height.nodeValue+"px";el.getContext().clearRect();break}}function onResize(e){var el=e.srcElement;if(el.firstChild){el.firstChild.style.width=el.clientWidth+"px";el.firstChild.style.height=el.clientHeight+"px"}}G_vmlCanvasManager_.init();var dec2hex=[];for(var i=0;i<16;i++){for(var j=0;j<16;j++){dec2hex[i*16+j]=i.toString(16)+j.toString(16)}}function createMatrixIdentity(){return[[1,0,0],[0,1,0],[0,0,1]]}function matrixMultiply(m1,m2){var result=createMatrixIdentity();for(var x=0;x<3;x++){for(var y=0;y<3;y++){var sum=0;for(var z=0;z<3;z++){sum+=m1[x][z]*m2[z][y]}result[x][y]=sum}}return result}function copyState(o1,o2){o2.fillStyle=o1.fillStyle;o2.lineCap=o1.lineCap;o2.lineJoin=o1.lineJoin;o2.lineWidth=o1.lineWidth;o2.miterLimit=o1.miterLimit;o2.shadowBlur=o1.shadowBlur;o2.shadowColor=o1.shadowColor;o2.shadowOffsetX=o1.shadowOffsetX;o2.shadowOffsetY=o1.shadowOffsetY;o2.strokeStyle=o1.strokeStyle;o2.globalAlpha=o1.globalAlpha;o2.arcScaleX_=o1.arcScaleX_;o2.arcScaleY_=o1.arcScaleY_;o2.lineScale_=o1.lineScale_}function processStyle(styleString){var str,alpha=1;styleString=String(styleString);if(styleString.substring(0,3)=="rgb"){var start=styleString.indexOf("(",3);var end=styleString.indexOf(")",start+1);var guts=styleString.substring(start+1,end).split(",");str="#";for(var i=0;i<3;i++){str+=dec2hex[Number(guts[i])]}if(guts.length==4&&styleString.substr(3,1)=="a"){alpha=guts[3]}}else{str=styleString}return{color:str,alpha:alpha}}function processLineCap(lineCap){switch(lineCap){case"butt":return"flat";case"round":return"round";case"square":default:return"square"}}function CanvasRenderingContext2D_(surfaceElement){this.m_=createMatrixIdentity();this.mStack_=[];this.aStack_=[];this.currentPath_=[];this.strokeStyle="#000";this.fillStyle="#000";this.lineWidth=1;this.lineJoin="miter";this.lineCap="butt";this.miterLimit=Z*1;this.globalAlpha=1;this.canvas=surfaceElement;var el=surfaceElement.ownerDocument.createElement("div");el.style.width=surfaceElement.clientWidth+"px";el.style.height=surfaceElement.clientHeight+"px";el.style.overflow="hidden";el.style.position="absolute";surfaceElement.appendChild(el);this.element_=el;this.arcScaleX_=1;this.arcScaleY_=1;this.lineScale_=1}var contextPrototype=CanvasRenderingContext2D_.prototype;contextPrototype.clearRect=function(){this.element_.innerHTML=""};contextPrototype.beginPath=function(){this.currentPath_=[]};contextPrototype.moveTo=function(aX,aY){var p=this.getCoords_(aX,aY);this.currentPath_.push({type:"moveTo",x:p.x,y:p.y});this.currentX_=p.x;this.currentY_=p.y};contextPrototype.lineTo=function(aX,aY){var p=this.getCoords_(aX,aY);this.currentPath_.push({type:"lineTo",x:p.x,y:p.y});this.currentX_=p.x;this.currentY_=p.y};contextPrototype.bezierCurveTo=function(aCP1x,aCP1y,aCP2x,aCP2y,aX,aY){var p=this.getCoords_(aX,aY);var cp1=this.getCoords_(aCP1x,aCP1y);var cp2=this.getCoords_(aCP2x,aCP2y);bezierCurveTo(this,cp1,cp2,p)};function bezierCurveTo(self,cp1,cp2,p){self.currentPath_.push({type:"bezierCurveTo",cp1x:cp1.x,cp1y:cp1.y,cp2x:cp2.x,cp2y:cp2.y,x:p.x,y:p.y});self.currentX_=p.x;self.currentY_=p.y}contextPrototype.quadraticCurveTo=function(aCPx,aCPy,aX,aY){var cp=this.getCoords_(aCPx,aCPy);var p=this.getCoords_(aX,aY);var cp1={x:this.currentX_+2/3*(cp.x-this.currentX_),y:this.currentY_+2/3*(cp.y-this.currentY_)};var cp2={x:cp1.x+(p.x-this.currentX_)/3,y:cp1.y+(p.y-this.currentY_)/3};bezierCurveTo(this,cp1,cp2,p)};contextPrototype.arc=function(aX,aY,aRadius,aStartAngle,aEndAngle,aClockwise){aRadius*=Z;var arcType=aClockwise?"at":"wa";var xStart=aX+mc(aStartAngle)*aRadius-Z2;var yStart=aY+ms(aStartAngle)*aRadius-Z2;var xEnd=aX+mc(aEndAngle)*aRadius-Z2;var yEnd=aY+ms(aEndAngle)*aRadius-Z2;if(xStart==xEnd&&!aClockwise){xStart+=.125}var p=this.getCoords_(aX,aY);var pStart=this.getCoords_(xStart,yStart);var pEnd=this.getCoords_(xEnd,yEnd);this.currentPath_.push({type:arcType,x:p.x,y:p.y,radius:aRadius,xStart:pStart.x,yStart:pStart.y,xEnd:pEnd.x,yEnd:pEnd.y})};contextPrototype.rect=function(aX,aY,aWidth,aHeight){this.moveTo(aX,aY);this.lineTo(aX+aWidth,aY);this.lineTo(aX+aWidth,aY+aHeight);this.lineTo(aX,aY+aHeight);this.closePath()};contextPrototype.strokeRect=function(aX,aY,aWidth,aHeight){var oldPath=this.currentPath_;this.beginPath();this.moveTo(aX,aY);this.lineTo(aX+aWidth,aY);this.lineTo(aX+aWidth,aY+aHeight);this.lineTo(aX,aY+aHeight);this.closePath();this.stroke();this.currentPath_=oldPath};contextPrototype.fillRect=function(aX,aY,aWidth,aHeight){var oldPath=this.currentPath_;this.beginPath();this.moveTo(aX,aY);this.lineTo(aX+aWidth,aY);this.lineTo(aX+aWidth,aY+aHeight);this.lineTo(aX,aY+aHeight);this.closePath();this.fill();this.currentPath_=oldPath};contextPrototype.createLinearGradient=function(aX0,aY0,aX1,aY1){var gradient=new CanvasGradient_("gradient");gradient.x0_=aX0;gradient.y0_=aY0;gradient.x1_=aX1;gradient.y1_=aY1;return gradient};contextPrototype.createRadialGradient=function(aX0,aY0,aR0,aX1,aY1,aR1){var gradient=new CanvasGradient_("gradientradial");gradient.x0_=aX0;gradient.y0_=aY0;gradient.r0_=aR0;gradient.x1_=aX1;gradient.y1_=aY1;gradient.r1_=aR1;return gradient};contextPrototype.drawImage=function(image,var_args){var dx,dy,dw,dh,sx,sy,sw,sh;var oldRuntimeWidth=image.runtimeStyle.width;var oldRuntimeHeight=image.runtimeStyle.height;image.runtimeStyle.width="auto";image.runtimeStyle.height="auto";var w=image.width;var h=image.height;image.runtimeStyle.width=oldRuntimeWidth;image.runtimeStyle.height=oldRuntimeHeight;if(arguments.length==3){dx=arguments[1];dy=arguments[2];sx=sy=0;sw=dw=w;sh=dh=h}else if(arguments.length==5){dx=arguments[1];dy=arguments[2];dw=arguments[3];dh=arguments[4];sx=sy=0;sw=w;sh=h}else if(arguments.length==9){sx=arguments[1];sy=arguments[2];sw=arguments[3];sh=arguments[4];dx=arguments[5];dy=arguments[6];dw=arguments[7];dh=arguments[8]}else{throw Error("Invalid number of arguments")}var d=this.getCoords_(dx,dy);var w2=sw/2;var h2=sh/2;var vmlStr=[];var W=10;var H=10;vmlStr.push(" <g_vml_:group",' coordsize="',Z*W,",",Z*H,'"',' coordorigin="0,0"',' style="width:',W,"px;height:",H,"px;position:absolute;");if(this.m_[0][0]!=1||this.m_[0][1]){var filter=[];filter.push("M11=",this.m_[0][0],",","M12=",this.m_[1][0],",","M21=",this.m_[0][1],",","M22=",this.m_[1][1],",","Dx=",mr(d.x/Z),",","Dy=",mr(d.y/Z),"");var max=d;var c2=this.getCoords_(dx+dw,dy);var c3=this.getCoords_(dx,dy+dh);var c4=this.getCoords_(dx+dw,dy+dh);max.x=m.max(max.x,c2.x,c3.x,c4.x);max.y=m.max(max.y,c2.y,c3.y,c4.y);vmlStr.push("padding:0 ",mr(max.x/Z),"px ",mr(max.y/Z),"px 0;filter:progid:DXImageTransform.Microsoft.Matrix(",filter.join(""),", sizingmethod='clip');")}else{vmlStr.push("top:",mr(d.y/Z),"px;left:",mr(d.x/Z),"px;")}vmlStr.push(' ">','<g_vml_:image src="',image.src,'"',' style="width:',Z*dw,"px;"," height:",Z*dh,'px;"',' cropleft="',sx/w,'"',' croptop="',sy/h,'"',' cropright="',(w-sx-sw)/w,'"',' cropbottom="',(h-sy-sh)/h,'"'," />","</g_vml_:group>");this.element_.insertAdjacentHTML("BeforeEnd",vmlStr.join(""))};contextPrototype.stroke=function(aFill){var lineStr=[];var lineOpen=false;var a=processStyle(aFill?this.fillStyle:this.strokeStyle);var color=a.color;var opacity=a.alpha*this.globalAlpha;var W=10;var H=10;lineStr.push("<g_vml_:shape",' filled="',!!aFill,'"',' style="position:absolute;width:',W,"px;height:",H,'px;"',' coordorigin="0 0" coordsize="',Z*W," ",Z*H,'"',' stroked="',!aFill,'"',' path="');var newSeq=false;var min={x:null,y:null};var max={x:null,y:null};for(var i=0;i<this.currentPath_.length;i++){var p=this.currentPath_[i];var c;switch(p.type){case"moveTo":c=p;lineStr.push(" m ",mr(p.x),",",mr(p.y));break;case"lineTo":lineStr.push(" l ",mr(p.x),",",mr(p.y));break;case"close":lineStr.push(" x ");p=null;break;case"bezierCurveTo":
lineStr.push(" c ",mr(p.cp1x),",",mr(p.cp1y),",",mr(p.cp2x),",",mr(p.cp2y),",",mr(p.x),",",mr(p.y));break;case"at":case"wa":lineStr.push(" ",p.type," ",mr(p.x-this.arcScaleX_*p.radius),",",mr(p.y-this.arcScaleY_*p.radius)," ",mr(p.x+this.arcScaleX_*p.radius),",",mr(p.y+this.arcScaleY_*p.radius)," ",mr(p.xStart),",",mr(p.yStart)," ",mr(p.xEnd),",",mr(p.yEnd));break}if(p){if(min.x==null||p.x<min.x){min.x=p.x}if(max.x==null||p.x>max.x){max.x=p.x}if(min.y==null||p.y<min.y){min.y=p.y}if(max.y==null||p.y>max.y){max.y=p.y}}}lineStr.push(' ">');if(!aFill){var lineWidth=this.lineScale_*this.lineWidth;if(lineWidth<1){opacity*=lineWidth}lineStr.push("<g_vml_:stroke",' opacity="',opacity,'"',' joinstyle="',this.lineJoin,'"',' miterlimit="',this.miterLimit,'"',' endcap="',processLineCap(this.lineCap),'"',' weight="',lineWidth,'px"',' color="',color,'" />')}else if(typeof this.fillStyle=="object"){var fillStyle=this.fillStyle;var angle=0;var focus={x:0,y:0};var shift=0;var expansion=1;if(fillStyle.type_=="gradient"){var x0=fillStyle.x0_/this.arcScaleX_;var y0=fillStyle.y0_/this.arcScaleY_;var x1=fillStyle.x1_/this.arcScaleX_;var y1=fillStyle.y1_/this.arcScaleY_;var p0=this.getCoords_(x0,y0);var p1=this.getCoords_(x1,y1);var dx=p1.x-p0.x;var dy=p1.y-p0.y;angle=Math.atan2(dx,dy)*180/Math.PI;if(angle<0){angle+=360}if(angle<1e-6){angle=0}}else{var p0=this.getCoords_(fillStyle.x0_,fillStyle.y0_);var width=max.x-min.x;var height=max.y-min.y;focus={x:(p0.x-min.x)/width,y:(p0.y-min.y)/height};width/=this.arcScaleX_*Z;height/=this.arcScaleY_*Z;var dimension=m.max(width,height);shift=2*fillStyle.r0_/dimension;expansion=2*fillStyle.r1_/dimension-shift}var stops=fillStyle.colors_;stops.sort(function(cs1,cs2){return cs1.offset-cs2.offset});var length=stops.length;var color1=stops[0].color;var color2=stops[length-1].color;var opacity1=stops[0].alpha*this.globalAlpha;var opacity2=stops[length-1].alpha*this.globalAlpha;var colors=[];for(var i=0;i<length;i++){var stop=stops[i];colors.push(stop.offset*expansion+shift+" "+stop.color)}lineStr.push('<g_vml_:fill type="',fillStyle.type_,'"',' method="none" focus="100%"',' color="',color1,'"',' color2="',color2,'"',' colors="',colors.join(","),'"',' opacity="',opacity2,'"',' g_o_:opacity2="',opacity1,'"',' angle="',angle,'"',' focusposition="',focus.x,",",focus.y,'" />')}else{lineStr.push('<g_vml_:fill color="',color,'" opacity="',opacity,'" />')}lineStr.push("</g_vml_:shape>");this.element_.insertAdjacentHTML("beforeEnd",lineStr.join(""))};contextPrototype.fill=function(){this.stroke(true)};contextPrototype.closePath=function(){this.currentPath_.push({type:"close"})};contextPrototype.getCoords_=function(aX,aY){var m=this.m_;return{x:Z*(aX*m[0][0]+aY*m[1][0]+m[2][0])-Z2,y:Z*(aX*m[0][1]+aY*m[1][1]+m[2][1])-Z2}};contextPrototype.save=function(){var o={};copyState(this,o);this.aStack_.push(o);this.mStack_.push(this.m_);this.m_=matrixMultiply(createMatrixIdentity(),this.m_)};contextPrototype.restore=function(){copyState(this.aStack_.pop(),this);this.m_=this.mStack_.pop()};function matrixIsFinite(m){for(var j=0;j<3;j++){for(var k=0;k<2;k++){if(!isFinite(m[j][k])||isNaN(m[j][k])){return false}}}return true}function setM(ctx,m,updateLineScale){if(!matrixIsFinite(m)){return}ctx.m_=m;if(updateLineScale){var det=m[0][0]*m[1][1]-m[0][1]*m[1][0];ctx.lineScale_=sqrt(abs(det))}}contextPrototype.translate=function(aX,aY){var m1=[[1,0,0],[0,1,0],[aX,aY,1]];setM(this,matrixMultiply(m1,this.m_),false)};contextPrototype.rotate=function(aRot){var c=mc(aRot);var s=ms(aRot);var m1=[[c,s,0],[-s,c,0],[0,0,1]];setM(this,matrixMultiply(m1,this.m_),false)};contextPrototype.scale=function(aX,aY){this.arcScaleX_*=aX;this.arcScaleY_*=aY;var m1=[[aX,0,0],[0,aY,0],[0,0,1]];setM(this,matrixMultiply(m1,this.m_),true)};contextPrototype.transform=function(m11,m12,m21,m22,dx,dy){var m1=[[m11,m12,0],[m21,m22,0],[dx,dy,1]];setM(this,matrixMultiply(m1,this.m_),true)};contextPrototype.setTransform=function(m11,m12,m21,m22,dx,dy){var m=[[m11,m12,0],[m21,m22,0],[dx,dy,1]];setM(this,m,true)};contextPrototype.clip=function(){};contextPrototype.arcTo=function(){};contextPrototype.createPattern=function(){return new CanvasPattern_};function CanvasGradient_(aType){this.type_=aType;this.x0_=0;this.y0_=0;this.r0_=0;this.x1_=0;this.y1_=0;this.r1_=0;this.colors_=[]}CanvasGradient_.prototype.addColorStop=function(aOffset,aColor){aColor=processStyle(aColor);this.colors_.push({offset:aOffset,color:aColor.color,alpha:aColor.alpha})};function CanvasPattern_(){}G_vmlCanvasManager=G_vmlCanvasManager_;CanvasRenderingContext2D=CanvasRenderingContext2D_;CanvasGradient=CanvasGradient_;CanvasPattern=CanvasPattern_})()}var LAYER_ALGO="RANDOM";var gnLastEventId=0;var KAMAP_ERROR=gnLastEventId++;var KAMAP_WARNING=gnLastEventId++;var KAMAP_NOTICE=gnLastEventId++;var KAMAP_INITIALIZED=gnLastEventId++;var KAMAP_MAP_INITIALIZED=gnLastEventId++;var KAMAP_EXTENTS_CHANGED=gnLastEventId++;var KAMAP_SCALE_CHANGED=gnLastEventId++;var KAMAP_SCALE_CHANGE_START=gnLastEventId++;var KAMAP_LAYERS_CHANGED=gnLastEventId++;var KAMAP_DRAG=gnLastEventId++;var KAMAP_DRAG_START=gnLastEventId++;var KAMAP_DRAG_END=gnLastEventId++;var KAMAP_MOVE=gnLastEventId++;var KAMAP_MOVE_START=gnLastEventId++;var KAMAP_CONTEXT_MENU=gnLastEventId++;function kaMap(szID){this.isCSS=false;this.isW3C=false;this.isIE4=false;this.isNN4=false;this.isIE6CSS=false;if(document.images){this.isCSS=document.body&&document.body.style?true:false;this.isW3C=this.isCSS&&document.getElementById?true:false;this.isIE4=this.isCSS&&document.all?true:false;this.isNN4=document.layers?true:false;this.isIE6CSS=document.compatMode&&document.compatMode.indexOf("CSS1")>=0?true:false}this.domObj=this.getRawObject(szID);this.domObj.style.overflow="hidden";this.hideLayersOnMove=false;this.loadUnchecked=false;this.initializationState=0;this.bMouseDown=false;this.lastx=0;this.lasty=0;this.theInsideLayer=null;this.viewportWidth=safeParseInt(this.domObj.style.width);this.viewportHeight=safeParseInt(this.domObj.style.height);this.xOffset=0;this.yOffset=0;this.xOrigin=0;this.yOrigin=0;this.currentMap="";this.nWide=0;this.nHigh=0;this.nCurrentTop=0;this.nCurrentLeft=0;this.aPixel=new Image(1,1);this.imgErrors=new Array;this.aMaps=new Array;this.tileWidth=null;this.tileHeight=null;this.nBuffer=1;this.baseURL="";this.cellSize=null;this.gImageID=0;this.eventManager=new _eventManager;this.as=slideid=null;this.accelerationFactor=1;this.pixelsPerStep=30;this.timePerStep=25;this.slideSteps=3;this.animatedZoomingIntervalID=null;this.animatedZoom=false;this.isDirectTileAccess=null;this.server="";this.init="init.pl";this.tileURL=null;this.aObjects=[];this.aCanvases=[];this.layersHidden=false;this.aTools=[];for(var i=0;i<gnLastEventId;i++){this.registerEventID(i)}this.createLayers();this.shouldBypassSameSourcePolicy=false}kaMap.prototype.initializationCode="/*init*/var map = new _map( 'prod', 'main', 'Pushpin Maps', 0, 3, new Array());"+"map.setDefaultExtents(-19954263,2105888,-7453326,9757661);"+"map.setBackgroundColor('rgb(235,233,224)');"+"map.resolution = 96;"+"map.revision = '1.3';"+"this.addMap( map );"+"this.tileWidth=200;"+"this.tileHeight=200;"+"this.tileURL = 'tile.pl';"+"this.selectMap('prod');";kaMap.prototype.setTileServers=function(servs){this.tileServers.setServers(servs)};kaMap.prototype.seekLayer=function(doc,name){var theObj;for(var i=0;i<doc.layers.length;i++){if(doc.layers[i].name==name){theObj=doc.layers[i];break}if(doc.layers[i].document.layers.length>0){theObj=this.seekLayer(document.layers[i].document,name)}}return theObj};kaMap.prototype.getRawObject=function(obj){var theObj;if(typeof obj=="string"){if(this.isW3C){theObj=document.getElementById(obj)}else if(this.isIE4){theObj=document.all(obj)}else if(this.isNN4){theObj=seekLayer(document,obj)}}else{theObj=obj}return theObj};kaMap.prototype.getObject=function(obj){var theObj=this.getRawObject(obj);if(theObj&&this.isCSS){theObj=theObj.style}return theObj};kaMap.prototype.getObjectWidth=function(obj){var elem=this.getRawObject(obj);var result=0;if(elem.offsetWidth){result=elem.offsetWidth}else if(elem.clip&&elem.clip.width){result=elem.clip.width}else if(elem.style&&elem.style.pixelWidth){result=elem.style.pixelWidth}return parseInt(result)};kaMap.prototype.getObjectHeight=function(obj){var elem=this.getRawObject(obj);var result=0;if(elem.offsetHeight){result=elem.offsetHeight}else if(elem.clip&&elem.clip.height){result=elem.clip.height}else if(elem.style&&elem.style.pixelHeight){result=elem.style.pixelHeight}return parseInt(result)};kaMap.prototype.zoomTo=function(cgX,cgY){var oMap=this.getCurrentMap();var inchesPerUnit=new Array(1,12,63360,39.3701,39370.1,4374754);var newScale;var bScaleChanged=false;if(arguments.length==3){newScale=arguments[2];bScaleChanged=newScale!=this.getCurrentScale();if(bScaleChanged)this.triggerEvent(KAMAP_SCALE_CHANGE_START,newScale);if(this.animatedZoom){if(this.aMaps[this.currentMap].aScales[this.aMaps[this.currentMap].currentScale+1]&&newScale==this.aMaps[this.currentMap].aScales[this.aMaps[this.currentMap].currentScale+1]||this.aMaps[this.currentMap].aScales[this.aMaps[this.currentMap].currentScale-1]&&newScale==this.aMaps[this.currentMap].aScales[this.aMaps[this.currentMap].currentScale-1]){this.zoomTo(cgX,cgY);this.zoomToScale(newScale);return}}}else{newScale=this.getCurrentScale()}this.cellSize=newScale/(oMap.resolution*inchesPerUnit[oMap.units]);var nFactor=oMap.zoomToScale(newScale);this.setMapLayers();var cpX=cgX/this.cellSize;var cpY=cgY/this.cellSize;var vpLeft=Math.round(cpX-this.viewportWidth/2);var vpTop=Math.round(cpY+this.viewportHeight/2);var cTileX=Math.floor(cpX/this.tileWidth)*this.tileWidth;var cTileY=Math.floor(cpY/this.tileHeight)*this.tileHeight;var nTilesLeft=Math.ceil(this.viewportWidth/(2*this.tileWidth))*this.tileWidth;var nTilesUp=Math.ceil(this.viewportHeight/(2*this.tileHeight))*this.tileHeight;this.nCurrentLeft=cTileX-nTilesLeft;this.nCurrentTop=-1*(cTileY+nTilesUp);this.xOrigin=this.nCurrentLeft;this.yOrigin=this.nCurrentTop;this.theInsideLayer.style.left=-1*(vpLeft-this.xOrigin)+"px";this.theInsideLayer.style.top=vpTop+this.yOrigin+"px";var layers=oMap.getLayers();for(var k=0;k<layers.length;k++)init_layer(this,layers[k]);this.checkWrap();this.updateObjects();if(bScaleChanged)this.triggerEvent(KAMAP_SCALE_CHANGED,this.getCurrentScale());this.triggerEvent(KAMAP_MOVE);this.triggerEvent(KAMAP_EXTENTS_CHANGED,this.getGeoExtents())};kaMap.prototype.zoomToExtents=function(minx,miny,maxx,maxy){var inchesPerUnit=new Array(1,12,63360,39.3701,39370.1,4374754);var oMap=this.getCurrentMap();var cgX=(maxx+minx)/2;var cgY=(maxy+miny)/2;var tmpCellSizeX=(maxx-minx)/this.viewportWidth;var tmpCellSizeY=(maxy-miny)/this.viewportHeight;var tmpCellSize=Math.max(tmpCellSizeX,tmpCellSizeY);var tmpScale=tmpCellSize*oMap.resolution*inchesPerUnit[oMap.units];var newScale=oMap.aScales[0];for(var i=1;i<oMap.aScales.length;i++){if(tmpScale>=oMap.aScales[i]){break}newScale=oMap.aScales[i]}if(arguments[4])return newScale;this.triggerEvent(KAMAP_SCALE_CHANGE_START,newScale);this.cellSize=newScale/(oMap.resolution*inchesPerUnit[oMap.units]);var nFactor=oMap.zoomToScale(newScale);this.setMapLayers();var cpX=cgX/this.cellSize;var cpY=cgY/this.cellSize;var vpLeft=Math.round(cpX-this.viewportWidth/2);var vpTop=Math.round(cpY+this.viewportHeight/2);var cTileX=Math.floor(cpX/this.tileWidth)*this.tileWidth;var cTileY=Math.floor(cpY/this.tileHeight)*this.tileHeight;var nTilesLeft=Math.ceil(this.viewportWidth/(2*this.tileWidth))*this.tileWidth;var nTilesUp=Math.ceil(this.viewportHeight/(2*this.tileHeight))*this.tileHeight;this.nCurrentLeft=cTileX-nTilesLeft;this.nCurrentTop=-1*(cTileY+nTilesUp);this.xOrigin=this.nCurrentLeft;this.yOrigin=this.nCurrentTop;this.theInsideLayer.style.left=-1*(vpLeft-this.xOrigin)+"px";this.theInsideLayer.style.top=vpTop+this.yOrigin+"px";var layers=oMap.getLayers();for(var k=0;k<layers.length;k++){init_layer(this,layers[k])}this.checkWrap();this.updateObjects();this.triggerEvent(KAMAP_SCALE_CHANGED,this.getCurrentScale());this.triggerEvent(KAMAP_EXTENTS_CHANGED,this.getGeoExtents())};kaMap.prototype.createDrawingCanvas=function(idx){var d=document.createElement("div");d.style.position="absolute";d.style.left="0px";d.style.top="0px";d.style.width="3000px";d.style.height="3000px";d.style.zIndex=idx;this.theInsideLayer.appendChild(d);this.aCanvases.push(d);d.kaMap=this;return d};kaMap.prototype.removeDrawingCanvas=function(canvas){for(var i=0;i<this.aCanvases.length;i++){if(this.aCanvases[i]==canvas){this.aCanvases.splice(i,1)}}this.theInsideLayer.removeChild(canvas);canvas.kaMap=null;canvas=null;return true};kaMap.prototype.addObjectGeo=function(canvas,lon,lat,obj){obj.lon=lon;obj.lat=lat;var aPix=this.geoToPix(lon,lat);return this.addObjectPix(canvas,aPix[0],aPix[1],obj)};kaMap.prototype.addObjectPix=function(canvas,x,y,obj){var xOffset=obj.xOffset?obj.xOffset:0;var yOffset=obj.yOffset?obj.yOffset:0;var top=y-this.yOrigin+yOffset;var left=x-this.xOrigin+xOffset;obj.style.position="absolute";if(top!="-Infinity")obj.style.top=top+"px";if(left!="-Infinity")obj.style.left=left+"px";obj.canvas=canvas;canvas.appendChild(obj);this.aObjects.push(obj);return true};kaMap.prototype.shiftObject=function(x,y,obj){var top=safeParseInt(obj.style.top);var left=safeParseInt(obj.style.left);obj.style.top=top+y+"px";obj.style.left=left+x+"px";return true};kaMap.prototype.removeObject=function(obj){for(var i=0;i<this.aObjects.length;i++){if(this.aObjects[i]==obj||obj==null){if(!obj)obj=this.aObjects[i];if(obj.canvas){obj.canvas.removeChild(obj);obj.canvas=null;obj=null}this.aObjects.splice(i,1);return true}}return false};kaMap.prototype.centerObject=function(obj){var vpX=-safeParseInt(this.theInsideLayer.style.left)+this.viewportWidth/2;var vpY=-safeParseInt(this.theInsideLayer.style.top)+this.viewportHeight/2;var xOffset=obj.xOffset?obj.xOffset:0;var yOffset=obj.yOffset?obj.yOffset:0;var dx=safeParseInt(obj.style.left)-xOffset-vpX;var dy=safeParseInt(obj.style.top)-yOffset-vpY;this.slideBy(-dx,-dy);return true};kaMap.prototype.geoToPix=function(gX,gY){var pX=gX/this.cellSize;var pY=-1*gY/this.cellSize;return[Math.floor(pX),Math.floor(pY)]};kaMap.prototype.pixToGeo=function(pX,pY){var bAdjust=arguments.length==3&&arguments[2]?true:false;if(bAdjust){pX=pX+this.xOrigin;pY=pY+this.yOrigin}var gX=-1*pX*this.cellSize;var gY=pY*this.cellSize;return[gX,gY]};kaMap.prototype.initialize=function(){if(this.initializationState==2){this.triggerEvent(KAMAP_ERROR,"ERROR: ka-Map! is already initialized!");return false}else if(this.intializationState==1){this.triggerEvent(KAMAP_WARNING,"WARNING: ka-Map! is currently initializing ... wait for the KAMAP_INITIALIZED event to be triggered.");return false}this.initializationState=1;if(arguments.length==0&&this.initializationCode!=null){this.initializeCallback(this.initializationCode);return true}var szURL=this.server+this.init;var sep=this.init.indexOf("?")==-1?"?":"&";if(arguments.length>0&&arguments[0]!=""){szURL=szURL+sep+"map="+arguments[0];sep="&"}if(arguments.length>1&&arguments[1]!=""){szURL=szURL+sep+"extents="+arguments[1];sep="&"}if(arguments.length>2&&arguments[2]!=""){szURL=szURL+sep+"centerPoint="+arguments[2];sep="&"}call(szURL,this,this.initializeCallback);return true};kaMap.prototype.initializeCallback=function(szInit){if(szInit.substr(0,1)!="/"){this.triggerEvent(KAMAP_ERROR,"ERROR: ka-Map! initialization "+"failed on the server.  Message returned was:\n"+szInit);return false}eval(szInit);this.triggerEvent(KAMAP_INITIALIZED);this.initializationState=2};kaMap.prototype.setBackgroundColor=function(color){this.domObj.style.backgroundColor=color;return true};kaMap.prototype.createLayers=function(){this.theInsideLayer=document.createElement("div");this.theInsideLayer.id="theInsideLayer";this.theInsideLayer.style.position="absolute";this.theInsideLayer.style.left="0px";this.theInsideLayer.style.top="0px";this.theInsideLayer.style.zIndex="1";this.theInsideLayer.kaMap=this;if(this.currentTool)this.theInsideLayer.style.cursor=this.currentTool.cursor;this.domObj.appendChild(this.theInsideLayer);this.domObj.kaMap=this;this.theInsideLayer.onmousedown=kaMap_onmousedown;this.theInsideLayer.onmouseup=kaMap_onmouseup;this.theInsideLayer.onmousemove=kaMap_onmousemove;this.theInsideLayer.ontouchstart=kaMap_onmousedown;this.theInsideLayer.ontouchend=kaMap_onmouseup;this.theInsideLayer.ontouchmove=kaMap_onmousemove;this.theInsideLayer.onmouseover=kaMap_onmouseover;this.domObj.onmouseout=kaMap_onmouseout;this.theInsideLayer.onkeypress=kaMap_onkeypress;this.theInsideLayer.ondblclick=kaMap_ondblclick;this.theInsideLayer.onclick=kaMap_onclick;this.theInsideLayer.oncontextmenu=kaMap_oncontextmenu;this.theInsideLayer.onmousewheel=kaMap_onmousewheel;if(window.addEventListener&&navigator.product&&navigator.product=="Gecko"){this.domObj.addEventListener("DOMMouseScroll",kaMap_onmousewheel,false)}this.theInsideLayer.ondragstart=new Function([],"var e=e?e:event;e.cancelBubble=true;e.returnValue=false;return false;")};kaMap.prototype.initializeLayers=function(nFactor){var deltaMouseX=this.nCurrentLeft+safeParseInt(this.theInsideLayer.style.left)-this.xOrigin;var deltaMouseY=this.nCurrentTop+safeParseInt(this.theInsideLayer.style.top)-this.yOrigin;var vpTop=this.nCurrentTop-deltaMouseY;var vpLeft=this.nCurrentLeft-deltaMouseX;var vpCenterX=vpLeft+this.viewportWidth/2;var vpCenterY=vpTop+this.viewportHeight/2;var currentTileX=Math.floor(vpCenterX/this.tileWidth)*this.tileWidth;var currentTileY=Math.floor(vpCenterY/this.tileHeight)*this.tileHeight;var tileDeltaX=currentTileX-this.nCurrentLeft;var tileDeltaY=currentTileY-this.nCurrentTop;var newVpCenterX=vpCenterX*nFactor;var newVpCenterY=vpCenterY*nFactor;var newTileX=Math.floor(newVpCenterX/this.tileWidth)*this.tileWidth;var newTileY=Math.floor(newVpCenterY/this.tileHeight)*this.tileHeight;var newCurrentLeft=newTileX-tileDeltaX;var newCurrentTop=newTileY-tileDeltaY;this.nCurrentLeft=newCurrentLeft;this.nCurrentTop=newCurrentTop;var newTilLeft=-newVpCenterX+this.viewportWidth/2;var newTilTop=-newVpCenterY+this.viewportHeight/2;var xOldOrigin=this.xOrigin;var yOldOrigin=this.yOrigin;this.xOrigin=this.nCurrentLeft;this.yOrigin=this.nCurrentTop;this.theInsideLayer.style.left=newTilLeft+this.xOrigin+"px";this.theInsideLayer.style.top=newTilTop+this.yOrigin+"px";var layers=this.aMaps[this.currentMap].getLayers();for(var k=0;k<layers.length;k++){init_layer(this,layers[k])}this.checkWrap();this.updateObjects()};function rangeK(len){var i;var r=[];for(i=0;i<len;i++)r.push(i);return r}function init_layer(map,layer){switch(LAYER_ALGO){case"CENTER":center_load_layer(map,layer);break;case"RANDOM":random_load_layer(map,layer);break;default:old_load_layer(map,layer);break}}function old_load_layer(map,layer){var d=layer.domObj;var i;var j;for(var j=0;j<map.nHigh;j++){for(var i=0;i<map.nWide;i++){var img=d.childNodes[j*map.nWide+i];if(map.animatedZoom){img.style.width=map.tileWidth+"px";img.style.height=map.tileHeight+"px"}img.style.top=map.nCurrentTop+j*map.tileHeight-map.yOrigin+"px";img.style.left=map.nCurrentLeft+i*map.tileWidth-map.xOrigin+"px";layer.setTile(img)}}}function random_load_layer(map,layer){var d=layer.domObj;var __j=PWebUtil.shuffleArray(rangeK(map.nHigh));var j=__j.pop();while(j!=null){var __i=PWebUtil.shuffleArray(rangeK(map.nWide));var i=__i.pop();while(i!=null){var img=d.childNodes[j*map.nWide+i];if(map.animatedZoom){img.style.width=map.tileWidth+"px";img.style.height=map.tileHeight+"px"}img.style.top=map.nCurrentTop+j*map.tileHeight-map.yOrigin+"px";img.style.left=map.nCurrentLeft+i*map.tileWidth-map.xOrigin+"px";layer.setTile(img);i=__i.pop()}j=__j.pop()}}function center_load_layer(map,layer){var cY=Math.floor(map.nHigh/2);var cX=Math.floor(map.nWide/2);var nbProcessed=center_load_helper(map,layer,cX-1,cY,0,1)}var directions={1:{x:1,y:0},2:{x:0,y:-1},3:{x:-1,y:0},0:{x:0,y:1}};function center_load_helper(map,layer,x,y,direction,offset){if(x<0)return 0;if(x>map.nHigh)return 0;if(y<0)return 0;if(y>map.nHigh)return 0;var d=layer.domObj;var nbProcessed=0;for(var i=0;i<2;i++){direction=(direction+1)%4;for(var j=0;j<offset;j++){var img=d.childNodes[y*map.nWide+x];if(img){if(map.animatedZoom){img.style.width=map.tileWidth+"px";img.style.height=map.tileHeight+"px"}img.style.top=map.nCurrentTop+y*map.tileHeight-map.yOrigin+"px";img.style.left=map.nCurrentLeft+x*map.tileWidth-map.xOrigin+"px"}layer.setTile(img);x+=directions[direction].x;y+=directions[direction].y;nbProcessed++}}nbProcessed+=center_load_helper(map,layer,x,y,direction,offset+1);return nbProcessed}kaMap.prototype.paintLayer=function(l){var d=l.domObj;for(var j=0;j<this.nHigh;j++){for(var i=0;i<this.nWide;i++){var img=d.childNodes[j*this.nWide+i];img.style.top=this.nCurrentTop+j*this.tileHeight-this.yOrigin+"px";img.style.left=this.nCurrentLeft+i*this.tileWidth-this.xOrigin+"px";l.setTile(img)}}this.checkWrap()};kaMap.prototype.updateObjects=function(){for(var i=0;i<this.aObjects.length;i++){var obj=this.aObjects[i];var xOffset=obj.xOffset?obj.xOffset:0;var yOffset=obj.yOffset?obj.yOffset:0;var aPix=this.geoToPix(obj.lon,obj.lat);var top=aPix[1]-this.yOrigin+yOffset;var left=aPix[0]-this.xOrigin+xOffset;obj.style.top=top+"px";obj.style.left=left+"px"}};kaMap.prototype.resize=function(){if(this.initializationState!=2){return false}var newViewportWidth=this.getObjectWidth(this.domObj);var newViewportHeight=this.getObjectHeight(this.domObj);if(this.viewportWidth==null){this.theInsideLayer.style.top=-1*this.nCurrentTop+this.yOrigin+"px";this.theInsideLayer.style.left=-1*this.nCurrentLeft+this.xOrigin+"px";this.viewportWidth=newViewportWidth;this.viewportHeight=newViewportHeight}var newWide=Math.ceil(newViewportWidth/this.tileWidth+2*this.nBuffer);var newHigh=Math.ceil(newViewportHeight/this.tileHeight+2*this.nBuffer);this.viewportWidth=newViewportWidth;this.viewportHeight=newViewportHeight;if(this.nHigh==0&&this.nWide==0)this.nWide=newWide;while(this.nHigh<newHigh)this.appendRow();while(this.nHigh>newHigh&&newHigh>3)this.removeRow();while(this.nWide<newWide)this.appendColumn();while(this.nWide>newWide&&newWide>3)this.removeColumn();var map=this.getCurrentMap();var layers=map.getLayers();for(var i=0;i<layers.length;i++)layers[i].setTileLayer();this.triggerEvent(KAMAP_EXTENTS_CHANGED,this.getGeoExtents())};kaMap.prototype.createImage=function(top,left,obj){var img=document.createElement("img");img.width=this.tileWidth;img.height=this.tileHeight;img.setAttribute("style","position:absolute; top:"+top+"px; left:"+left+"px;");img.style.position="absolute";img.style.top=top-this.yOrigin+"px";img.style.left=left-this.xOrigin+"px";img.style.width=this.tileWidth+"px";img.style.height=this.tileHeight+"px";img.style.MozUserSelect="none";img.style.visibility="hidden";img.galleryimg="no";img.onerror=kaMap_imgOnError;img.onload=kaMap_imgOnLoad;img.errorCount=0;img.id="i"+this.gImageID;img.layer=obj;img.kaMap=this;this.gImageID=this.gImageID+1;return img};kaMap.prototype.resetTile=function(id,bForce){var img=this.DHTMLapi.getRawObject(id);if(img.layer)img.layer.setTile(this,bForce)};kaMap.prototype.reloadImage=function(id){};kaMap.prototype.resetImage=function(id){};kaMap_imgOnError=function(e){if(this.layer)this.layer.setTile(this,true)};kaMap_imgOnLoad=function(e){this.style.visibility="visible"};kaMap.prototype.appendRow=function(layer){if(this.nWide==0)return;if(arguments.length==1)var layers=Array(layer);else var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){var obj=layers[i].domObj;for(var j=0;j<this.nWide;j++){var top=this.nCurrentTop+this.nHigh*this.tileHeight;var left=this.nCurrentLeft+j*this.tileWidth;var img=this.createImage(top,left,layers[i]);if(this.isIE4)img.style.filter="Alpha(opacity="+layers[i].opacity+")";obj.appendChild(img)}}this.nHigh=this.nHigh+1};kaMap.prototype.appendColumn=function(layer){if(this.nHigh==0)return;if(arguments.length==1)var layers=Array(layer);else var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){var obj=layers[i].domObj;for(var j=this.nHigh-1;j>=0;j--){var top=this.nCurrentTop+j*this.tileHeight;var left=this.nCurrentLeft+this.nWide*this.tileWidth;var img=this.createImage(top,left,layers[i]);if(this.isIE4)img.style.filter="Alpha(opacity="+layers[i].opacity+")";if(j<this.nHigh-1)obj.insertBefore(img,obj.childNodes[(j+1)*this.nWide]);else obj.appendChild(img)}}this.nWide=this.nWide+1};kaMap.prototype.removeColumn=function(layer){if(this.nWide<3)return;if(arguments.length==1)var layers=Array(layer);else var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){var d=layers[i].domObj;for(var j=this.nHigh-1;j>=0;j--){var img=d.childNodes[(j+1)*this.nWide-1];d.removeChild(img);img.onload=null;img.onerror=null}}this.nWide=this.nWide-1};kaMap.prototype.removeRow=function(layer){if(this.nHigh<3)return;if(arguments.length==1)var layers=Array(layer);else var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){var d=layers[i].domObj;for(var j=this.nWide-1;j>=0;j--){var img=d.childNodes[(this.nHigh-1)*this.nWide+j];d.removeChild(img);img.onload=null;img.onerror=null}}this.nHigh=this.nHigh-1};kaMap.prototype.hideLayers=function(){if(!this.hideLayersOnMove)return;if(this.layersHidden)return;var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){layers[i]._visible=layers[i].visible;if(layers[i].name!="__base__"){layers[i].setVisibility(false)}}for(var i=0;i<this.aCanvases.length;i++){this.aCanvases[i].style.visibility="hidden";this.aCanvases[i].style.display="none"}this.layersHidden=true};kaMap.prototype.showLayers=function(){if(!this.hideLayersOnMove)return;if(!this.layersHidden)return;var layers=this.aMaps[this.currentMap].getLayers();for(var i=0;i<layers.length;i++){layers[i].setVisibility(layers[i]._visible)}for(var i=0;i<this.aCanvases.length;i++){this.aCanvases[i].style.visibility="visible";this.aCanvases[i].style.display="block"}this.layersHidden=false};kaMap.prototype.moveBy=function(x,y){this.triggerEvent(KAMAP_MOVE);var til=this.theInsideLayer;til.style.top=safeParseInt(til.style.top)+y+"px";til.style.left=safeParseInt(til.style.left)+x+"px";this.checkWrap()};kaMap.prototype.slideBy=function(x,y,f){this.triggerEvent(KAMAP_MOVE_START);if(this.slideid!=null)goQueueManager.dequeue(this.slideid);this.as=[];if(f==null){f=YAHOO_PP.util.Easing.easeBoth}var steps=10;var dx=dy=0;var px=py=0;var cx=cy=0;var i=0;var deltas=this.as;while(i<steps){px=cx;py=cy;cx=f.apply(null,[i,0,x,steps]);cy=f.apply(null,[i,0,y,steps]);dx=Math.round(cx-px);dy=Math.round(cy-py);deltas[i]=new Array(dx,dy);i++}this.hideLayers();this.slideid=goQueueManager.enqueue(this.timePerStep,this,this.slide,[0])};kaMap.prototype.slide=function(pos){if(pos>=this.as.length){this.as=slideid=null;this.showLayers();this.triggerEvent(KAMAP_EXTENTS_CHANGED,this.getGeoExtents());return}this.moveBy(this.as[pos][0],this.as[pos][1]);pos++;this.slideid=goQueueManager.enqueue(this.timePerStep,this,this.slide,[pos])};kaMap_onkeypress=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.onkeypress(e)};kaMap_onmousemove=function(e){e=e?e:event?event:null;if(e.button==2){this.kaMap.triggerEvent(KAMAP_CONTEXT_MENU)}if(this.kaMap.currentTool)this.kaMap.currentTool.onmousemove(e)};kaMap_onmousedown=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.onmousedown(e)};kaMap_onmouseup=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.onmouseup(e)};kaMap_onmouseover=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.onmouseover(e)};kaMap_onmouseout=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.onmouseout(e)};kaMap_oncontextmenu=function(e){e=e?e:event?event:null;if(e.preventDefault)e.preventDefault();return false};kaMap_onclick=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.onclick(e)};kaMap_ondblclick=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.ondblclick(e)};kaMap_onmousewheel=function(e){if(this.kaMap.currentTool)this.kaMap.currentTool.onmousewheel(e)};kaMap.prototype.cancelEvent=function(e){e=e?e:event?event:null;e.returnValue=false;if(e.preventDefault)e.preventDefault();return false};kaMap.prototype.registerTool=function(toolObj){this.aTools.push(toolObj)};kaMap.prototype.activateTool=function(toolObj){if(this.currentTool){this.currentTool.deactivate()}this.currentTool=toolObj;if(this.theInsideLayer)this.theInsideLayer.style.cursor=this.currentTool.cursor};kaMap.prototype.deactivateTool=function(toolObj){if(this.currentTool==toolObj)this.currentTool=null;if(this.theInsideLayer)this.theInsideLayer.style.cursor="auto"};kaMap.prototype.checkWrap=function(){this.xOffset=safeParseInt(this.theInsideLayer.style.left)+this.nCurrentLeft-this.xOrigin;this.yOffset=safeParseInt(this.theInsideLayer.style.top)+this.nCurrentTop-this.yOrigin;while(this.xOffset>0){this.wrapR2L()}while(this.xOffset<-(this.nBuffer*this.tileWidth)){this.wrapL2R()}while(this.yOffset>-(this.nBuffer*this.tileHeight)){this.wrapB2T()}while(this.yOffset<-(2*this.nBuffer*this.tileHeight)){this.wrapT2B()}var layer=this.aMaps[this.currentMap].aLayers[0].domObj;var img=layer.childNodes[0].style;this.nCurrentTop=safeParseInt(img.top)+this.yOrigin;this.nCurrentLeft=safeParseInt(img.left)+this.xOrigin};kaMap.prototype.wrapR2L=function(){this.xOffset=this.xOffset-this.nBuffer*this.tileWidth;var layers=this.aMaps[this.currentMap].getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;var refLeft=safeParseInt(d.childNodes[0].style.left);for(var j=0;j<this.nHigh;j++){var imgLast=d.childNodes[(j+1)*this.nWide-1];var imgNext=d.childNodes[j*this.nWide];imgLast.style.left=refLeft-this.tileWidth+"px";d.removeChild(imgLast);d.insertBefore(imgLast,imgNext);if(layers[k].visible)layers[k].setTile(imgLast)}}};kaMap.prototype.wrapL2R=function(){this.xOffset=this.xOffset+this.nBuffer*this.tileWidth;var layers=this.aMaps[this.currentMap].getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;var refLeft=safeParseInt(d.childNodes[this.nWide-1].style.left);for(var j=0;j<this.nHigh;j++){var imgFirst=d.childNodes[j*this.nWide];var imgNext;if(j<this.nHigh-1)imgNext=d.childNodes[(j+1)*this.nWide];else imgNext=null;imgFirst.style.left=refLeft+this.tileWidth+"px";d.removeChild(imgFirst);if(imgNext)d.insertBefore(imgFirst,imgNext);else d.appendChild(imgFirst);if(layers[k].visible)layers[k].setTile(imgFirst)}}};kaMap.prototype.wrapT2B=function(){this.yOffset=this.yOffset+this.nBuffer*this.tileHeight;var layers=this.aMaps[this.currentMap].getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;var refTop=safeParseInt(d.childNodes[this.nHigh*this.nWide-1].style.top);for(var i=0;i<this.nWide;i++){var imgBottom=d.childNodes[0];imgBottom.style.top=refTop+this.tileHeight+"px";d.removeChild(imgBottom);d.appendChild(imgBottom);if(layers[k].visible)layers[k].setTile(imgBottom)}}};kaMap.prototype.wrapB2T=function(){this.yOffset=this.yOffset-this.nBuffer*this.tileHeight;var layers=this.aMaps[this.currentMap].getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;var refTop=safeParseInt(d.childNodes[0].style.top);for(var i=0;i<this.nWide;i++){var imgTop=d.childNodes[this.nHigh*this.nWide-1];imgTop.style.top=refTop-this.tileHeight+"px";d.removeChild(imgTop);d.insertBefore(imgTop,d.childNodes[0]);if(layers[k].visible)layers[k].setTile(imgTop)}}};kaMap.prototype.addMap=function(oMap){oMap.kaMap=this;this.aMaps[oMap.name]=oMap};kaMap.prototype.getMaps=function(){return this.aMaps};kaMap.prototype.getCurrentMap=function(){return this.aMaps[this.currentMap]};kaMap.prototype.selectMap=function(name){if(!this.aMaps[name]){return false}else{this.currentMap=name;var oMap=this.getCurrentMap();this.setBackgroundColor(oMap.backgroundColor);this.setMapLayers();if(oMap.aZoomTo.length!=0){this.zoomTo(oMap.aZoomTo[0],oMap.aZoomTo[1],oMap.aZoomTo[2]);oMap.aZoomTo.length=0}else{}this.triggerEvent(KAMAP_MAP_INITIALIZED,this.currentMap);return true}}
;kaMap.prototype.setMapLayers=function(){var oMap=this.getCurrentMap();for(var i=this.theInsideLayer.childNodes.length-1;i>=0;i--){if(this.theInsideLayer.childNodes[i].className=="mapLayer"){this.theInsideLayer.childNodes[i].appended=false;this.theInsideLayer.removeChild(this.theInsideLayer.childNodes[i])}}layers=oMap.getLayers();for(var i=0;i<layers.length;i++){if(!layers[i].domObj){var d=this.createMapLayer(layers[i].name);this.theInsideLayer.appendChild(d);d.appended=true;layers[i].domObj=d;layers[i].setOpacity(layers[i].opacity);layers[i].setZIndex(layers[i].zIndex);layers[i].setVisibility(layers[i].visible);this.nWide=0;this.nHigh=0;this.drawGroup(layers[i])}else if(!layers[i].domObj.appended){this.theInsideLayer.appendChild(layers[i].domObj);layers[i].domObj.appended=true}}return true};kaMap.prototype.drawGroup=function(group){var newViewportWidth=this.getObjectWidth(this.domObj);var newViewportHeight=this.getObjectHeight(this.domObj);if(this.viewportWidth==null){this.theInsideLayer.style.top=-1*this.nCurrentTop+this.yOrigin+"px";this.theInsideLayer.style.left=-1*this.nCurrentLeft+this.xOrigin+"px";this.viewportWidth=newViewportWidth;this.viewportHeight=newViewportHeight}var newWide=Math.ceil(newViewportWidth/this.tileWidth+2*this.nBuffer);var newHigh=Math.ceil(newViewportHeight/this.tileHeight+2*this.nBuffer);this.viewportWidth=newViewportWidth;this.viewportHeight=newViewportHeight;if(this.nHigh==0&&this.nWide==0)this.nWide=newWide;while(this.nHigh<newHigh)this.appendRow(group);while(this.nHigh>newHigh)this.removeRow(group);while(this.nWide<newWide)this.appendColumn(group);while(this.nWide>newWide)this.removeColumn(group);return true};kaMap.prototype.createMapLayer=function(id){var d=document.createElement("div");d.id=id;d.className="mapLayer";d.style.position="absolute";d.style.visibility="visible";d.style.left="0px";d.style.top="0px";d.style.width="3000px";d.style.height="3000px";d.appended=false;return d};kaMap.prototype.addMapLayer=function(l){var map=this.getCurrentMap();map.addLayer(l);this.setMapLayers();this.paintLayer(l);this.triggerEvent(KAMAP_LAYERS_CHANGED,this.currentMap)};kaMap.prototype.removeMapLayer=function(id){var map=this.getCurrentMap();var layer=map.getLayer(id);if(!layer)return false;if(map.removeLayer(map.getLayer(id))){this.setMapLayers();this.triggerEvent(KAMAP_LAYERS_CHANGED,this.currentMap)}};kaMap.prototype.getCenter=function(){var deltaMouseX=this.nCurrentLeft-this.xOrigin+safeParseInt(this.theInsideLayer.style.left);var deltaMouseY=this.nCurrentTop-this.yOrigin+safeParseInt(this.theInsideLayer.style.top);var vpTop=this.nCurrentTop-deltaMouseY;var vpLeft=this.nCurrentLeft-deltaMouseX;var vpCenterX=vpLeft+this.viewportWidth/2;var vpCenterY=vpTop+this.viewportHeight/2;return new Array(vpCenterX,vpCenterY)};kaMap.prototype.getGeoExtents=function(){var minx=-1*(safeParseInt(this.theInsideLayer.style.left)-this.xOrigin)*this.cellSize;var maxx=minx+this.viewportWidth*this.cellSize;var maxy=(safeParseInt(this.theInsideLayer.style.top)-this.yOrigin)*this.cellSize;var miny=maxy-this.viewportHeight*this.cellSize;return[minx,miny,maxx,maxy]};kaMap.prototype.zoomSlide=function(zoomfactor){var slideWait=80;var slidePower=.2;if(this.animatedZoomingIntervalID){window.clearInterval(this.animatedZoomingIntervalID);this.animatedZoomingIntervalID=null;this.initializeLayers(zoomfactor)}var newscale=this.getCurrentScale()*zoomfactor;var context={map:this,slideZoom:newscale,totalSteps:this.slideSteps,step:1,power:slidePower};var move=function(){var delta=this.slideZoom-this.map.getCurrentScale();var dZoom=Math.pow(1/this.totalSteps*this.step,this.power)*delta;var factor=zoomfactor*dZoom/delta;if(zoomfactor<1&&this.step<this.map.slideSteps)factor=1-factor;this.map.zoomByFactor(factor,false,this.step);this.step++;if(this.step>this.totalSteps){window.clearInterval(this.map.animatedZoomingIntervalID);this.map.animatedZoomingIntervalID=null}};this.animatedZoomingIntervalID=window.setInterval(move.KamapBindAsEventListener(context),slideWait)};kaMap.prototype.zoomIn=function(){this.zoomByFactor(this.aMaps[this.currentMap].zoomIn())};kaMap.prototype.zoomOut=function(){this.zoomByFactor(this.aMaps[this.currentMap].zoomOut())};kaMap.prototype.zoomToScale=function(scale){this.zoomByFactor(this.aMaps[this.currentMap].zoomToScale(scale))};kaMap.prototype.zoomByFactorAnimate=function(nZoomFactor){var zoomTileWidth=this.tileWidth*nZoomFactor;var zoomTileHeight=this.tileHeight*nZoomFactor;var deltaMouseX=this.nCurrentLeft+safeParseInt(this.theInsideLayer.style.left)-this.xOrigin;var deltaMouseY=this.nCurrentTop+safeParseInt(this.theInsideLayer.style.top)-this.yOrigin;var vpTop=this.nCurrentTop-deltaMouseY;var vpLeft=this.nCurrentLeft-deltaMouseX;var vpCenterX=vpLeft+this.viewportWidth/2;var vpCenterY=vpTop+this.viewportHeight/2;var currentTileX=Math.floor(vpCenterX/this.tileWidth)*this.tileWidth;var currentTileY=Math.floor(vpCenterY/this.tileHeight)*this.tileHeight;var tileDeltaCenterX=(currentTileX-vpCenterX)*nZoomFactor-(currentTileX-vpCenterX);var tileDeltaCenterY=(currentTileY-vpCenterY)*nZoomFactor-(currentTileY-vpCenterY);var tileDeltaTileX=(currentTileX-this.nCurrentLeft)*nZoomFactor-(currentTileX-this.nCurrentLeft);var tileDeltaTileY=(currentTileY-this.nCurrentTop)*nZoomFactor-(currentTileY-this.nCurrentTop);var tileDeltaX=parseInt(tileDeltaTileX-tileDeltaCenterX);var tileDeltaY=parseInt(tileDeltaTileY-tileDeltaCenterY);var layers=this.getCurrentMap().getLayers();for(var k=0;k<layers.length;k++){var d=layers[k].domObj;var i;var j;for(var j=0;j<this.nHigh;j++){for(var i=0;i<this.nWide;i++){var img=d.childNodes[j*this.nWide+i];img.style.width=zoomTileWidth+2+"px";img.style.height=zoomTileHeight+2+"px";img.style.top=this.nCurrentTop+j*zoomTileHeight-this.yOrigin-tileDeltaY+"px";img.style.left=this.nCurrentLeft+i*zoomTileWidth-this.xOrigin-tileDeltaX+"px"}}}};kaMap.prototype.zoomByFactor=function(nZoomFactor,animated,step){if(nZoomFactor==1){this.triggerEvent(KAMAP_NOTICE,"NOTICE: changing to current scale aborted");return}if(animated==null)animated=this.animatedZoom;this.triggerEvent(KAMAP_SCALE_CHANGE_START,nZoomFactor*this.getCurrentScale());if(animated&&nZoomFactor<=2&&nZoomFactor>=.5){this.zoomSlide(nZoomFactor)}else{if(step!=null&&step<=this.slideSteps){this.zoomByFactorAnimate(nZoomFactor)}if(step==this.slideSteps||step==null&&!animated||nZoomFactor>2||nZoomFactor<.5){this.cellSize=this.cellSize/nZoomFactor;this.setMapLayers();this.initializeLayers(nZoomFactor);this.triggerEvent(KAMAP_SCALE_CHANGED,this.getCurrentScale());this.triggerEvent(KAMAP_MOVE);this.triggerEvent(KAMAP_EXTENTS_CHANGED,this.getGeoExtents());if(this.getCurrentMap().aLayers[0].legend!=null&&this.widgetIndicator)this.widgetIndicator.buildWidget()}}};kaMap.prototype.getCurrentScale=function(){return this.aMaps[this.currentMap].aScales[this.aMaps[this.currentMap].currentScale]};kaMap.prototype.setLayerQueryable=function(name,bQueryable){this.aMaps[this.currentMap].setLayerQueryable(name,bQueryable)};kaMap.prototype.setLayerVisibility=function(name,bVisible){if(!this.loadUnchecked&&bVisible){layer=this.aMaps[this.currentMap].getLayer(name);layer.visible=true;this.setMapLayers();this.aMaps[this.currentMap].setLayerVisibility(name,bVisible);this.paintLayer(layer)}else this.aMaps[this.currentMap].setLayerVisibility(name,bVisible)};kaMap.prototype.setLayerOpacity=function(name,opacity){this.aMaps[this.currentMap].setLayerOpacity(name,opacity)};kaMap.prototype.registerEventID=function(eventID){return this.eventManager.registerEventID(eventID)};kaMap.prototype.registerForEvent=function(eventID,obj,func){return this.eventManager.registerForEvent(eventID,obj,func)};kaMap.prototype.deregisterForEvent=function(eventID,obj,func){return this.eventManager.deregisterForEvent(eventID,obj,func)};kaMap.prototype.triggerEvent=function(eventID){return this.eventManager.triggerEvent.apply(this.eventManager,arguments)};function safeParseInt(val){return Math.round(parseFloat(val))}function _map(szName,groupName,szTitle,nCurrentScale,units,aszScales){this.name=szName;this.groupName=groupName;this.title=szTitle;this.aScales=aszScales;this.currentScale=parseFloat(nCurrentScale);this.units=units;this.resolution=72;this.aLayers=[];this.defaultExtents=[];this.currentExtents=[];this.maxExtents=[];this.backgroundColor="#ffffff";this.version="0";this.aZoomTo=[];this.kaMap=null}_map.prototype.addLayer=function(layer){layer._map=this;layer.zIndex=this.aLayers.length;this.aLayers.push(layer)};_map.prototype.removeLayer=function(l){var alayer=Array();for(i=0,a=0;i<this.aLayers.length;i++)if(this.aLayers[i]!=l){alayer[a]=this.aLayers[i];a++}this.aLayers=alayer;return true};_map.prototype.getQueryableLayers=function(){var r=[];var l=this.getLayers();for(var i=0;i<l.length;i++){if(l[i].isQueryable())r.push(l[i])}return r};_map.prototype.getLayers=function(){var r=[];for(var i=0;i<this.aLayers.length;i++){if(this.aLayers[i].isVisible()&&(this.aLayers[i].visible||this.kaMap.loadUnchecked))r.push(this.aLayers[i])}return r};_map.prototype.getAllQueryableLayers=function(){var r=[];for(var i=0;i<this.aLayers.length;i++){if(this.aLayers[i].isQueryable())r.push(this.aLayers[i])}return r};_map.prototype.getAllLayers=function(){return this.aLayers};_map.prototype.getLayer=function(name){for(var i=0;i<this.aLayers.length;i++){if(this.aLayers[i].name==name){return this.aLayers[i]}}};_map.prototype.getScales=function(){return this.aScales};_map.prototype.zoomIn=function(){var nZoomFactor=1;if(this.currentScale<this.aScales.length-1){nZoomFactor=this.aScales[this.currentScale]/this.aScales[this.currentScale+1];this.currentScale=this.currentScale+1}return nZoomFactor};_map.prototype.zoomOut=function(){var nZoomFactor=1;if(this.currentScale>0){nZoomFactor=this.aScales[this.currentScale]/this.aScales[this.currentScale-1];this.currentScale=this.currentScale-1}return nZoomFactor};_map.prototype.zoomToScale=function(scale){var nZoomFactor=1;for(var i=0;i<this.aScales.length;i++){if(this.aScales[i]==scale){nZoomFactor=this.aScales[this.currentScale]/scale;this.currentScale=parseInt(i)}}return nZoomFactor};_map.prototype.setLayerQueryable=function(name,bQueryable){var layer=this.getLayer(name);layer.setQueryable(bQueryable)};_map.prototype.setLayerVisibility=function(name,bVisible){var layer=this.getLayer(name);layer.setVisibility(bVisible)};_map.prototype.setLayerOpacity=function(name,opacity){var layer=this.getLayer(name);layer.setOpacity(opacity)};_map.prototype.setDefaultExtents=function(minx,miny,maxx,maxy){this.defaultExtents=[minx,miny,maxx,maxy];if(this.currentExtents.length==0)this.setCurrentExtents(minx,miny,maxx,maxy)};_map.prototype.setCurrentExtents=function(minx,miny,maxx,maxy){this.currentExtents=[minx,miny,maxx,maxy]};_map.prototype.setMaxExtents=function(minx,miny,maxx,maxy){this.maxExtents=[minx,miny,maxx,maxy]};_map.prototype.setBackgroundColor=function(szBgColor){this.backgroundColor=szBgColor};function _layer(szName,bVisible,opacity,imageformat,bQueryable,scales,mergedLayers,tileservers){this.debug=new P.Debug;this.name=szName;this.visible=bVisible;this.opacity=opacity;this.domObj=null;this._map=null;this.imageformat=imageformat;this.queryable=bQueryable;this.queryState=bQueryable;this.mergedLayers=[];if(mergedLayers)this.mergedLayers=mergedLayers;this.tileServers=new kaServers;this.tileServers.setServers(tileservers);this.legend=null;if(scales)this.scales=scales;else this.scales=Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1);this.toLoad=0}_layer.prototype.addMergedLayer=function(pLayer){this.mergedLayers.push(pLayer)};_layer.prototype.clearMergedLayers=function(){this.mergedLayers=[]};_layer.prototype.isQueryable=function(){return this.queryState};_layer.prototype.setQueryable=function(bQueryable){if(this.queryable)this.queryState=bQueryable};_layer.prototype.isVisible=function(){return this.scales[this._map.currentScale]==1?true:false};_layer.prototype.setOpacity=function(amount){this.opacity=amount;if(this.domObj){this.domObj.style.opacity=amount/100;this.domObj.style.mozOpacity=amount/100;for(var i=0;i<this.domObj.childNodes.length;i++){this.domObj.childNodes[i].style.filter="Alpha(opacity="+amount+")"}}};_layer.prototype.setTile=function(img){if(this._map.kaMap.delayLoad)return;var szForce="";var szLayers="";if(arguments[1])szForce="&force=true";var szGroup="&g="+img.layer.domObj.id;var szScale="&s="+this._map.aScales[this._map.currentScale];var szImageformat="";var image_format="";if(img.layer.imageformat&&img.layer.imageformat!=""){image_format=img.layer.imageformat}var l=safeParseInt(img.style.left)+this._map.kaMap.xOrigin;var t=safeParseInt(img.style.top)+this._map.kaMap.yOrigin;var src=this.buildTileURL(t,l,this._map.name,this._map.aScales[this._map.currentScale],arguments[1]?true:undefined,this._map.groupName,img.layer.domObj.id,image_format);if(img.src!=src){img.style.visibility="hidden";img.src=src;if(image_format.toLowerCase()=="png24"&&this._map&&this._map.getAllLayers().length>1)fixPNG(img)}};_layer.prototype.setVisibility=function(bVisible){this.visible=bVisible;if(this.domObj){this.domObj.style.visibility=bVisible?"visible":"hidden";this.domObj.style.display=bVisible?"block":"none"}for(var i=0;i<this.domObj.childNodes.length;i++){this.setTile(this.domObj.childNodes[i])}};_layer.prototype.setZIndex=function(zIndex){this.zIndex=zIndex;if(this.domObj){this.domObj.style.zIndex=zIndex}};_layer.prototype.setTileLayer=function(){if(this._map.kaMap.delayLoad)return;var szLayers="";this.loaded=0;var szImageformat="";var image_format="";if(this.imageformat&&this.imageformat!=""){image_format=this.imageformat}for(i=0;i<this.domObj.childNodes.length;i++){img=this.domObj.childNodes[i];var l=safeParseInt(img.style.left)+this._map.kaMap.xOrigin;var t=safeParseInt(img.style.top)+this._map.kaMap.yOrigin;var src=this.buildTileURL(t,l,this._map.name,this._map.aScales[this._map.currentScale],arguments[1]?true:undefined,this._map.groupName,img.layer.domObj.id,image_format);if(img.src!=src){img.style.visibility="hidden";img.src=src;if(image_format.toLowerCase()=="png24"&&this._map&&this._map.getAllLayers().length>1)fixPNG(img)}}};_layer.prototype.buildLayerList=function(scale){var layers="";if(this.mergedLayers.length>0){for(var i=0;i<this.mergedLayers.length;i++){if(this.mergedLayers[i].minScale<=scale&&this.mergedLayers[i].maxScale>=scale){var name=this.mergedLayers[i].name;var ind=null;if(P.instances.map){ind=P.instances.map.getIndicator()}if((ind||typeof legendMerger!="undefined")&&name=="pp2_poly"){var indids=[9899703,9902201,9901451];var removePPoly=false;if(PEnvironment.pageName=="maps"&&ind){for(var x=0;x<indids.length;x++){if(ind.id==indids[x]){removePPoly=true;break}}}else if(PEnvironment.pageName=="analytics"&&typeof legendMerger!="undefined"&&legendMerger&&legendMerger.getIndicatorCount()>0){var indleg=legendMerger.indicatorLegends;for(var y=0;y<legendMerger.getIndicatorCount();y++){for(var x=0;x<indids.length;x++){if(indleg[y]&&indleg[y].getIndicator()&&indleg[y].getIndicator().id==indids[x]){removePPoly=true;break}}if(removePPoly){break}}}if(removePPoly){continue}}if(islandPrintEnabled==true&&this.mergedLayers[i].overlaysetId!=null&&name.indexOf("islpd")==-1&&name.indexOf("islcus")==-1){var islandPinArg="";var islandPolyArg="";var islandPlace=session.get("p");var islandCustomRegions=session.get("cp");if(islandPlace!=null){islandPinArg="%26islpd%3D"+islandPlace;islandPolyArg="islpd_"+islandPlace+":"}if(islandCustomRegions!=null&&$.isArray(islandCustomRegions)){var joinedRegions=islandCustomRegions.join("-");islandPinArg+="%26islcus%3D"+joinedRegions;islandPolyArg+="islcus_"+joinedRegions+":"}var layerParts=[null,null];var layerArray=name.split(",");for(var j=0;j<layerArray.length;j++){var curLayer=layerArray[j];if(curLayer.indexOf("gpoly")!=-1){layerParts[0]=curLayer.replace(/gpoly:/gi,"gpoly:"+islandPolyArg)}else if(curLayer.indexOf("pins_")!=-1){layerParts[1]=curLayer+islandPinArg}}name=$.grep(layerParts,function(v){return v!=null}).join(",")}if(this.legend||typeof legendMerger!="undefined"){if(name=="pointline")layers+="t_pointline";else if(name=="pp2_line")layers+="pp2_tline";else if(name=="pp2_labels")layers+="pp2_tlabels";else if(name=="pp2tg_pointline")layers+="pp2tg_tpointline";else if(name=="pp2tg_line")layers+="pp2tg_tline";else if(name=="pp2tg_streetlabels")layers+="pp2tg_tstreetlabels";else layers+=name}else layers+=name;if(i==0&&this.legend!=null&&this.legend.getBreaks()!=""){var colors=[];var breaks="";if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks&&session.get("mvalayers")!=null){var mvaLayers=session.get("mvalayers");var tempColors=this.legend.getColors();var tempBreaks=this.legend.getEncodedBreaks().split(":");if(editState&PIndicatorBreaks.EDITSTATE.noData)var numBreaks=this.legend.getNumberOfBreaks()+1;else var numBreaks=this.legend.getNumberOfBreaks();var k=0;for(var j=0;j<numBreaks;j++){if(mvaLayers[j]){colors[k]=tempColors[j];if(k!=0)breaks+=":";breaks+=tempBreaks[j];k++}}}else{colors=this.legend.getColors();breaks=this.legend.getEncodedBreaks()}var legendString="p_"+this.legend.indicator.periodids[this.legend.indicator.curPerIndex]+".id_"+this.legend.indicator.id+".colors_"+colors.join(":")+".breaksdata_"+breaks+".boundary_definition_"+this.legend.getBoundaryDefinitionId(this.legend.getBoundaryType().id);if(productProperty.exists("live_map_boundary_island")||productProperty.exists("live_map_custom_region_island")){if(productProperty.exists("live_map_boundary_island")){legendString+=".islpd_"+productProperty.getValue("live_map_boundary_island")[0];if(liveMapBoundaryIsland!=null&&liveMapBoundaryIsland.getDefinitionId()!=null){legendString+=".islpddi_"+liveMapBoundaryIsland.getDefinitionId()}if(productProperty.getValue("live_map_boundary_island_containment")&&this.legend.getBoundaryType()!=liveMapBoundaryIsland.getType()){legendString+=".islpdcon_1";legendString+=".islpdpct_99"}}if(productProperty.exists("live_map_custom_region_island")){legendString+=".islcus_"+productProperty.getValue("live_map_custom_region_island").join("-")}}else if(islandPrintEnabled==true){var islpd="";var islcus="";var islandPlace=session.get("p");var islandCustomRegions=session.get("cp");if(islandPlace!=null){islpd=".islpd_"+islandPlace}if(islandCustomRegions!=null&&$.isArray(islandCustomRegions)){islcus=".islcus_"+islandCustomRegions.join("-")}legendString+=islpd+(islpd!=""||islcus!=""?".islpdpct_25":"")+islcus}var nd=0;if(this.legend.indicator.nodata)nd++;if(this.legend.indicator.breakid==P_BREAKTYPE_EXACT_VALUE_ID||this.legend.indicator.breakid==P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID)nd+=this.legend.getNumberOfBreaks();if(nd>0)legendString+=":nd_"+nd;layers+=","+legendString}if(this.mergedLayers[i].opacity<1&&!this.mergedLayers[i].client)layers+=":o_"+this.mergedLayers[i].opacity;if(i==0&&typeof legendMerger!="undefined"&&legendMerger.getName().length>0)layers+=","+legendMerger.getName();layers+=","}}layers=layers.substring(0,layers.length-1)}layers=layers.replace(/&/g,"%26");layers=layers.replace(/#/g,"%23");layers=layers.replace(/\+/g,"%2B");return layers};_layer.prototype.buildTileURL=function(t,l,mapName,scale,force,group,layer,imageFormat){var kamap=this._map.kaMap;var server=this.tileServers.isEmpty()==true?kamap.server:this.tileServers.next((t+l)/kamap.tileWidth);if(kamap.isDirectTileAccess==true){var layers=this.buildLayerList(scale);var nocache="";if(layers.indexOf("type%3Ddl")!=-1){nocache="&nocache=1&cacheid="+(new Date).getTime()}var src="";if(scale&&layers!=""){var metaTop=Math.floor(t/1e3)*1e3;var metaLeft=Math.floor(l/1e3)*1e3;src=server+"/"+mapName+"/"+scale+"/"+layer+"/"+layers+"/meta_t"+metaTop+"/t"+metaTop+"l"+metaLeft+"/t"+t+"l"+l+".png"}var tileDirect=(this.debug.getCookie("developerControlPanelTilerDebug")||this.debug.getCookie("developerControlPanelTilerNoCache"))==null?false:true;if(nocache!=""||layers.length>255||layers.match(".*pins_.*:data_.*")||tileDirect==true){var url=server.split("/");src=url[0]+"//"+url[2]+"/"+kamap.directTilePath+"?s="+scale+"&t="+t+"&l="+l+"&layers="+layers+nocache}return src}};function _eventManager(){this.events=[];this.lastEventID=0}_eventManager.prototype.registerEventID=function(eventID){var ev=new String(eventID);if(!this.events[eventID]){this.events[eventID]=[]}};_eventManager.prototype.registerForEvent=function(eventID,obj,func){var ev=new String(eventID);this.events[eventID].push([obj,func])};_eventManager.prototype.deregisterForEvent=function(eventID,obj,func){var ev=new String(eventID);var bResult=false;if(!this.events[eventID])return false;for(var i=0;i<this.events[eventID].length;i++){if(this.events[eventID][i][0]==obj&&this.events[eventID][i][1]==func){this.events[eventID].splice(i,1);bResult=true}}return bResult};_eventManager.prototype.triggerEvent=function(eventID){var ev=new String(eventID);if(!this.events[eventID])return false;var args=new Array;for(i=1;i<arguments.length;i++){args[args.length]=arguments[i]}for(var i=0;i<this.events[eventID].length;i++){this.events[eventID][i][1].apply(this.events[eventID][i][0],args)}return true};var goQueueManager=new _queueManager;function _queueManager(){this.queue=new Array}_queueManager.prototype.enqueue=function(timeout,obj,func,args){var pos=this.queue.length;for(var i=0;i<this.queue.length;i++){if(this.queue[i]==null){pos=i;break}}var id=window.setTimeout("_queueManager_execute("+pos+")",timeout);this.queue[pos]=new Array(id,obj,func,args);return pos};_queueManager.prototype.dequeue=function(pos){if(this.queue[pos]!=null){window.clearTimeout(this.queue[pos][0]);this.queue[pos]=null}};function _queueManager_execute(pos){if(goQueueManager.queue[pos]!=null){var obj=goQueueManager.queue[pos][1];var func=goQueueManager.queue[pos][2];if(goQueueManager.queue[pos][3]!=null)func.apply(obj,goQueueManager.queue[pos][3]);else func.apply(obj);goQueueManager.queue[pos]=null}}var kaCurrentTool=null;function kaTool(oKaMap){this.kaMap=oKaMap;this.kaMap.registerTool(this);this.name="kaTool"}kaTool.prototype.activate=function(){this.kaMap.activateTool(this);document.kaCurrentTool=this};kaTool.prototype.deactivate=function(){this.kaMap.deactivateTool(this);document.kaCurrentTool=null};kaTool.prototype.onmousemove=function(e){return false};kaTool.prototype.onmousedown=function(e){return false};kaTool.prototype.onmouseup=function(e){return false};kaTool.prototype.onclick=function(e){return false};kaTool.prototype.ondblclick=function(e){return false};kaTool.prototype.onmousewheel=function(e){e=e?e:event?event:null;var wheelDelta=e.wheelDelta?e.wheelDelta:e.detail*-1;if(wheelDelta>0)this.kaMap.zoomIn();else this.kaMap.zoomOut();return false};kaTool.prototype.adjustPixPosition=function(x,y){var obj=this.kaMap.domObj;var offsetLeft=0;var offsetTop=0;var widthOffsetHeight=0;var widthOffsetWidth=0;offsetLeft=$(obj).offset().left;offsetTop=$(obj).offset().top;var pX=parseInt(this.kaMap.theInsideLayer.style.left)+offsetLeft-this.kaMap.xOrigin-x;var pY=parseInt(this.kaMap.theInsideLayer.style.top)+offsetTop-this.kaMap.yOrigin-y;return[pX,pY]};kaTool.prototype.getMousePosition=function(e){e=e?e:event?event:null;var posX=0,posY=0;if(e.pageX&&e.pageY){posX=e.pageX;posY=e.pageY}else{var iebody=document.compatMode&&document.compatMode!="BackCompat"?document.documentElement:document.body;var scrollX=iebody.scrollLeft?iebody.scrollLeft:window.pageXOffset?window.pageXOffset:0;var scrollY=iebody.scrollTop?iebody.scrollTop:window.pageYOffset?window.pageYOffset:0;posX=e.clientX+scrollX;posY=e.clientY+scrollY}return[posX,posY]};function kaTool_redirect_onkeypress(e){if(document.kaCurrentTool)document.kaCurrentTool.onkeypress(e)}kaTool.prototype.onkeypress=function(e){e=e?e:event?event:null;if(e){var charCode=e.charCode?e.charCode:e.keyCode;var b=true;var nStep=16;switch(charCode){case 38:this.kaMap.moveBy(0,nStep);this.kaMap.triggerEvent(KAMAP_EXTENTS_CHANGED,this.kaMap.getGeoExtents());break;case 40:this.kaMap.moveBy(0,-nStep);this.kaMap.triggerEvent(KAMAP_EXTENTS_CHANGED,this.kaMap.getGeoExtents());break;case 37:this.kaMap.moveBy(nStep,0);this.kaMap.triggerEvent(KAMAP_EXTENTS_CHANGED,this.kaMap.getGeoExtents());break;case 39:this.kaMap.moveBy(-nStep,0);this.kaMap.triggerEvent(KAMAP_EXTENTS_CHANGED,this.kaMap.getGeoExtents());break;case 33:this.kaMap.slideBy(0,this.kaMap.viewportHeight/2);break;case 34:this.kaMap.slideBy(0,-this.kaMap.viewportHeight/2);break;case 36:this.kaMap.slideBy(this.kaMap.viewportWidth/2,0);break;case 35:this.kaMap.slideBy(-this.kaMap.viewportWidth/2,0);break;case 43:this.kaMap.zoomIn();break;case 45:this.kaMap.zoomOut();break;default:b=false}if(b){return this.cancelEvent(e)}return true}};kaTool.prototype.onmouseover=function(e){return false};kaTool.prototype.onmouseout=function(e){if(this.kaMap.isIE4)document.onkeydown=null;document.onkeypress=null;return false};kaTool.prototype.cancelEvent=function(e){e=e?e:event?event:null;e.cancelBubble=true;if(e.stopPropagation)e.stopPropagation();if(e.preventDefault)e.preventDefault();return false};function kaNavigator(oKaMap){kaTool.apply(this,[oKaMap]);this.name="kaNavigator";this.cursor="move";this.activeImage=this.kaMap.server+"va-images/button_pan_3.png";this.disabledImage=this.kaMap.server+"va-images/button_pan_2.png";this.lastx=null;this.lasty=null;this.bMouseDown=false;this.bMouseDrag=false;this.allowClick=true;for(var p in kaTool.prototype){if(!kaNavigator.prototype[p])kaNavigator.prototype[p]=kaTool.prototype[p]}}kaNavigator.prototype.onmouseout=function(e){e=e?e:event?event:null;if(!e.target)e.target=e.srcElement;if(e.target.id==this.kaMap.domObj.id){this.bMouseDown=false;return kaTool.prototype.onmouseout.apply(this,[e])}};kaNavigator.prototype.onmousemove=function(e){e=e?e:event?event:null;var moveevent;if(e.touches&&e.touches.length==1){moveevent=e.touches[0];e.preventDefault()}else{if(!this.bMouseDown){return false}else{moveevent=e}}if(!this.bMouseDrag){this.kaMap.triggerEvent(KAMAP_DRAG_START);this.kaMap.triggerEvent(KAMAP_MOVE_START);this.bMouseDrag=true}this.kaMap.triggerEvent(KAMAP_MOVE);this.kaMap.triggerEvent(KAMAP_DRAG);if(!this.kaMap.layersHidden){this.kaMap.hideLayers()}var newTop=safeParseInt(this.kaMap.theInsideLayer.style.top);var newLeft=safeParseInt(this.kaMap.theInsideLayer.style.left);newTop=newTop-this.lasty+(moveevent.clientY||moveevent.pageY);newLeft=newLeft-this.lastx+(moveevent.clientX||moveevent.pageX);this.kaMap.theInsideLayer.style.top=newTop+"px";this.kaMap.theInsideLayer.style.left=newLeft+"px";this.kaMap.checkWrap.apply(this.kaMap,[]);this.lastx=moveevent.clientX||moveevent.pageX;this.lasty=moveevent.clientY||moveevent.pageY;return false};kaNavigator.prototype.onmousedown=function(e){e=e?e:event?event:null;var moveevent;if(e.touches&&e.touches.length==1){moveevent=e.touches[0]}else{if(e.button==2){return this.cancelEvent(e)}else{moveevent=e}}if(this.kaMap.isIE4)document.onkeydown=kaTool_redirect_onkeypress;document.onkeypress=kaTool_redirect_onkeypress;this.bMouseDown=true;this.allowClick=true;this.lastx=moveevent.clientX||moveevent.pageX;this.lasty=moveevent.clientY||moveevent.pageY;e.cancelBubble=true;e.preventDefault();if(moveevent.stopPropagation)moveevent.stopPropagation();if(moveevent.preventDefault)moveevent.preventDefault();return false};kaNavigator.prototype.onmouseup=function(e){e=e?e:event?event:null;this.bMouseDown=false;if(this.bMouseDrag){this.kaMap.triggerEvent(KAMAP_EXTENTS_CHANGED,this.kaMap.getGeoExtents());this.kaMap.triggerEvent(KAMAP_DRAG_END);this.bMouseDrag=false;this.allowClick=false}this.kaMap.showLayers();return false};kaNavigator.prototype.onclick=function(e){e=e?e:event?event:null;return false};kaNavigator.prototype.ondblclick=function(e){return};var spacer="transparentpixel.gif";var CLONE="C10nE";var COPY="C0pY";var DETACH_CHILDREN="d37aCH";var HORIZONTAL="H0r1Z";var MAXHEIGHT="m7x8I";var MAXOFFBOTTOM="m7xd0wN";var MAXOFFLEFT="m7x23Ft";var MAXOFFRIGHT="m7x0Ff8";var MAXOFFTOP="m7xu9";var MAXWIDTH="m7xW1";var MINWIDTH="m1nw1";var MINHEIGHT="m1n8I";var NO_ALT="no81T";var NO_DRAG="N0d4Ag";var RESET_Z="r35E7z";var RESIZABLE="r5IZbl";var SCALABLE="SCLbl";var SCROLL="sC8lL";var TRANSPARENT="dIApHAn";var VERTICAL="V3Rt1C";var dd_cursors=new Array("c:default","c:crosshair","c:e-resize","c:hand","c:help","c:move","c:n-resize","c:ne-resize","c:nw-resize","c:s-resize","c:se-resize","c:sw-resize","c:text","c:w-resize","c:wait");var dd_i=dd_cursors.length;while(dd_i--)eval("var CURSOR_"+dd_cursors[dd_i].substring(2).toUpperCase().replace("-","_")+' = "'+dd_cursors[dd_i]+'";');function WZDD(){this.elements=new Array(0);this.obj=null;this.n=navigator.userAgent.toLowerCase();this.db=document.compatMode&&document.compatMode.toLowerCase()!="backcompat"?document.documentElement:document.body||null;this.op=!!(window.opera&&document.getElementById);this.op6=!!(this.op&&!(this.db&&this.db.innerHTML));if(this.op&&!this.op6)document.onmousedown=new Function("e",'if (((e = e || window.event).target || e.srcElement).tagName == "IMAGE") return false;');this.ie=!!(this.n.indexOf("msie")>=0&&document.all&&this.db&&!this.op);this.iemac=!!(this.ie&&this.n.indexOf("mac")>=0);this.ie4=!!(this.ie&&!document.getElementById);this.n4=!!(document.layers&&typeof document.classes!="undefined");this.n6=!!(typeof window.getComputedStyle!="undefined"&&typeof document.createRange!="undefined");this.w3c=!!(!this.op&&!this.ie&&!this.n6&&document.getElementById);this.ce=!!(document.captureEvents&&document.releaseEvents);this.px=this.n4||this.op6?"":"px";this.tiv=this.w3c?40:10}var dd=new WZDD;dd.Int=function(d_x,d_y){return isNaN(d_y=parseInt(d_x))?0:d_y};dd.getWndW=function(){return dd.Int(dd.db&&!dd.op&&!dd.w3c&&dd.db.clientWidth?dd.db.clientWidth:window.innerWidth||0)};dd.getWndH=function(){return dd.Int(dd.db&&!dd.op&&!dd.w3c&&dd.db.clientHeight?dd.db.clientHeight:window.innerHeight||0)};dd.getScrollX=function(){return dd.Int(window.pageXOffset||(dd.db?dd.db.scrollLeft:0))};dd.getScrollY=function(){return dd.Int(window.pageYOffset||(dd.db?dd.db.scrollTop:0))};dd.getPageXY=function(d_o){if(dd.n4&&d_o){dd.x=d_o.pageX||0;dd.y=d_o.pageY||0}else{dd.x=dd.y=0;while(d_o){dd.x+=dd.Int(d_o.offsetLeft);dd.y+=dd.Int(d_o.offsetTop);d_o=d_o.offsetParent||null}}};dd.getCssXY=function(d_o){if(d_o.div){if(dd.n4){d_o.cssx=d_o.div.x;d_o.cssy=d_o.div.y}else if(dd.ie4){d_o.cssx=d_o.css.pixelLeft;d_o.cssy=d_o.css.pixelTop}else{d_o.css.left=d_o.css.top=0+dd.px;dd.getPageXY(d_o.div);d_o.cssx=d_o.x-dd.x;d_o.cssy=d_o.y-dd.y;d_o.css.left=d_o.cssx+dd.px;d_o.css.top=d_o.cssy+dd.px}}else{d_o.cssx=0;d_o.cssy=0}};dd.getImgW=function(d_o){return d_o?dd.Int(d_o.width):0};dd.getImgH=function(d_o){return d_o?dd.Int(d_o.height):0};dd.getDivW=function(d_o){return dd.Int(dd.n4?d_o.div?d_o.div.clip.width:0:d_o.div?d_o.div.offsetWidth||d_o.css.pixelWidth||d_o.css.width||0:0)};dd.getDivH=function(d_o){return dd.Int(dd.n4?d_o.div?d_o.div.clip.height:0:d_o.div?d_o.div.offsetHeight||d_o.css.pixelHeight||d_o.css.height||0:0)};dd.getWH=function(d_o){d_o.w=dd.getDivW(d_o);d_o.h=dd.getDivH(d_o);if(d_o.css){d_o.css.width=d_o.w+dd.px;d_o.css.height=d_o.h+dd.px;d_o.dw=dd.getDivW(d_o)-d_o.w;d_o.dh=dd.getDivH(d_o)-d_o.h;d_o.css.width=d_o.w-d_o.dw+dd.px;d_o.css.height=d_o.h-d_o.dh+dd.px}else d_o.dw=d_o.dh=0};dd.getCssProp=function(d_o,d_pn6,d_pstyle,d_pn4){if(d_o&&dd.n6)return""+window.getComputedStyle(d_o,null).getPropertyValue(d_pn6);if(d_o&&d_o.currentStyle)return""+eval("d_o.currentStyle."+d_pstyle);if(d_o&&d_o.style)return""+eval("d_o.style."+d_pstyle);if(d_o&&dd.n4)return""+eval("d_o."+d_pn4);return""};dd.getDiv=function(d_x,d_d){d_d=d_d||document;if(dd.n4){if(d_d.layers[d_x])return d_d.layers[d_x];for(var d_i=d_d.layers.length;d_i--;){var d_y=dd.getDiv(d_x,d_d.layers[d_i].document);if(d_y)return d_y}}if(dd.ie)return d_d.all[d_x]||null;if(d_d.getElementById)return d_d.getElementById(d_x)||null;return null};dd.getImg=function(d_o,d_nm,d_xy,d_w){d_w=d_w||window;var d_img;if(document.images&&(d_img=d_w.document.images[d_nm])&&d_img.name==d_nm){if(d_xy){if(dd.n4){dd.getPageXY(d_w);d_o.defx=d_img.x+dd.x;d_o.defy=d_img.y+dd.y}else{
dd.getPageXY(d_img);d_o.defx=dd.x;d_o.defy=dd.y}}return d_img}if(dd.n4)for(var d_i=d_w.document.layers.length;d_i--;){var d_y=dd.getImg(d_o,d_nm,d_xy,d_w.document.layers[d_i]);if(d_y)return d_y}return null};dd.getParent=function(d_o,d_p){if(dd.n4){for(d_p,d_i=dd.elements.length;d_i--;){if(!(d_p=dd.elements[d_i]).is_image&&d_p.div&&(d_p.div.document.layers[d_o.name]||d_o.oimg&&d_p.div.document.images[d_o.oimg.name]))d_p.addChild(d_o,d_p.detach,1)}}else{d_p=d_o.is_image?dd.getImg(d_o,d_o.oimg.name):d_o.div||null;while(d_p&&!!(d_p=d_p.offsetParent||d_p.parentNode||null)){if(d_p.ddObj){d_p.ddObj.addChild(d_o,d_p.ddObj.detach,1);break}}}};dd.getCmd=function(d_o,d_cmd,d_cmdStr){var d_i=d_o.id.indexOf(d_cmd),d_j,d_y=(d_i>=0)*1;if(d_y){d_j=d_i+d_cmd.length;if(d_cmdStr)d_o.cmd+=d_o.id.substring(d_i,d_j);d_o.id=d_o.id.substring(0,d_i)+d_o.id.substring(d_j)}return d_y};dd.getCmdVal=function(d_o,d_cmd,d_cmdStr,int0){var d_i=d_o.id.indexOf(d_cmd),d_j,d_y=d_o.id.indexOf(d_cmd)>=0?dd.Int(d_o.id.substring(d_o.id.indexOf(d_cmd)+d_cmd.length)):int0?-1:0;if(!int0&&d_y||int0&&d_y>=0){d_j=d_i+d_cmd.length+(""+d_y).length;if(d_cmdStr)d_o.cmd+=d_o.id.substring(d_i,d_j);d_o.id=d_o.id.substring(0,d_i)+d_o.id.substring(d_j)}return d_y};dd.addElt=function(d_o,d_p){dd.elements[d_o.name]=dd.elements[d_o.index=dd.elements.length]=d_o;if(d_p)d_p.copies[d_o.name]=d_p.copies[d_p.copies.length]=d_o};dd.mkWzDom=function(){var d_o,d_i=dd.elements.length;while(d_i--)dd.getParent(dd.elements[d_i]);d_i=dd.elements.length;while(d_i--){d_o=dd.elements[d_i];if(d_o.children&&!d_o.parent){var d_j=d_o.children.length;while(d_j--)d_o.children[d_j].setZ(d_o.z+d_o.children[d_j].z,1)}}};dd.addProps=function(d_o){var d_i,d_c;if(d_o.is_image){d_o.div=dd.getDiv(d_o.id);if(d_o.div&&typeof d_o.div.style!="undefined")d_o.css=d_o.div.style;d_o.nimg=dd.n4&&d_o.div?d_o.div.document.images[0]:document.images[d_o.id+"NImG"]||null;if(d_o.nimg&&!d_o.noalt&&!dd.noalt){d_o.nimg.alt=d_o.oimg.alt||"";if(d_o.oimg.title)d_o.nimg.title=d_o.oimg.title}d_o.bgColor=""}else{d_o.bgColor=dd.getCssProp(d_o.div,"background-color","backgroundColor","bgColor").toLowerCase();if(dd.n6&&d_o.div){if((d_c=d_o.bgColor).indexOf("rgb")>=0){d_c=d_c.substring(4,d_c.length-1).split(",");d_o.bgColor="#";for(d_i=0;d_i<d_c.length;d_i++)d_o.bgColor+=parseInt(d_c[d_i]).toString(16)}else d_o.bgColor=d_c}}if(dd.scalable)d_o.scalable=d_o.resizable^1;else if(dd.resizable)d_o.resizable=d_o.scalable^1;d_o.setZ(d_o.defz);d_o.cursor=d_o.cursor||dd.cursor||"auto";d_o._setCrs(d_o.nodrag?"auto":d_o.cursor);d_o.diaphan=d_o.diaphan||dd.diaphan||0;d_o.opacity=1;d_o.visible=true};dd.initz=function(){if(!(dd&&(dd.n4||dd.n6||dd.ie||dd.op||dd.w3c)))return;if(dd.op6)WINSZ(2);else if(dd.n6||dd.ie||dd.op&&!dd.op6||dd.w3c)dd.recalc(1);var d_drag=document.onmousemove==DRAG,d_resize=document.onmousemove==RESIZE;if(dd.loadFunc)dd.loadFunc();if(d_drag&&document.onmousemove!=DRAG)dd.setEvtHdl(1,DRAG);else if(d_resize&&document.onmousemove!=RESIZE)dd.setEvtHdl(1,RESIZE);if((d_drag||d_resize)&&document.onmouseup!=DROP)dd.setEvtHdl(2,DROP);dd.setEvtHdl(0,PICK)};dd.finlz=function(){if(dd.ie&&dd.elements){var d_i=dd.elements.length;while(d_i--)dd.elements[d_i].del()}};dd.setEvtHdl=function(d_typ,d_func){if(!d_typ){if(document.onmousedown!=d_func)dd.downFunc=document.onmousedown||null;document.onmousedown=d_func}else if(d_typ&1){if(document.onmousemove!=d_func)dd.moveFunc=document.onmousemove||null;document.onmousemove=d_func}else{if(document.onmouseup!=d_func)dd.upFunc=document.onmouseup||null;document.onmouseup=d_func}if(dd.ce){var d_e=!d_typ?Event.MOUSEDOWN:d_typ&1?Event.MOUSEMOVE:Event.MOUSEUP;d_func?document.captureEvents(d_e):document.releaseEvents(d_e)}};dd.evt=function(d_e){this.but=(this.e=d_e||window.event).which||this.e.button||0;this.button=this.e.type=="mousedown"?this.but:dd.e&&dd.e.button?dd.e.button:0;this.src=this.e.target||this.e.srcElement||null;this.src.tag=(""+(this.src.tagName||this.src)).toLowerCase();this.x=dd.Int(this.e.pageX||this.e.clientX||0);this.y=dd.Int(this.e.pageY||this.e.clientY||0);if(dd.ie){this.x+=dd.getScrollX()-(dd.ie&&!dd.iemac)*1;this.y+=dd.getScrollY()-(dd.ie&&!dd.iemac)*1}this.modifKey=this.e.modifiers?this.e.modifiers&Event.SHIFT_MASK:this.e.shiftKey||false};dd.recalc=function(d_x){var d_o,d_i=dd.elements.length;while(d_i--){if(!(d_o=dd.elements[d_i]).is_image&&d_o.div){dd.getWH(d_o);if(d_o.div.pos_rel){dd.getPageXY(d_o.div);var d_dx=dd.x-d_o.x,d_dy=dd.y-d_o.y;d_o.defx+=d_dx;d_o.x+=d_dx;d_o.defy+=d_dy;d_o.y+=d_dy;var d_p,d_j=d_o.children.length;while(d_j--){if(!(d_p=d_o.children[d_j]).detached&&(d_o!=d_p.defparent||!(d_p.is_image&&dd.getImg(d_p,d_p.oimg.name,1)))){d_p.defx+=d_dx;d_p.defy+=d_dy;d_p.moveBy(d_dx,d_dy)}}}}else if(d_o.is_image&&!dd.op6&&!dd.n4){if(dd.n6&&d_x&&!d_o.defw)d_o.resizeTo(d_o.defw=dd.getImgW(d_o.oimg),d_o.defh=dd.getImgH(d_o.oimg));var d_defx=d_o.defx,d_defy=d_o.defy;if(!(d_o.parent&&d_o.parent!=d_o.defparent)&&(d_x||!d_o.detached||d_o.horizontal||d_o.vertical)&&dd.getImg(d_o,d_o.oimg.name,1))d_o.moveBy(d_o.defx-d_defx,d_o.defy-d_defy)}}};function WINSZ(d_x){if(d_x){if(dd.n4||dd.op6&&d_x&2){dd.iW=innerWidth;dd.iH=innerHeight;if(dd.op6)setTimeout("WINSZ()",511)}window.onresize=new Function("WINSZ();")}else if((dd.n4||dd.op6)&&(innerWidth!=dd.iW||innerHeight!=dd.iH))location.reload();else if(dd.op6)setTimeout("WINSZ()",511);else if(!dd.n4)setTimeout("dd.recalc()",10)}WINSZ(1);function DDObj(d_o,d_i){this.id=d_o;this.cmd="";this.cpy_n=dd.getCmdVal(this,COPY);this.maxoffb=dd.getCmdVal(this,MAXOFFBOTTOM,0,1);this.maxoffl=dd.getCmdVal(this,MAXOFFLEFT,0,1);this.maxoffr=dd.getCmdVal(this,MAXOFFRIGHT,0,1);this.maxofft=dd.getCmdVal(this,MAXOFFTOP,0,1);var d_j=dd_cursors.length;while(d_j--)if(dd.getCmd(this,dd_cursors[d_j],1))this.cursor=dd_cursors[d_j].substring(2);this.clone=dd.getCmd(this,CLONE,1);this.detach=dd.getCmd(this,DETACH_CHILDREN);this.scalable=dd.getCmd(this,SCALABLE,1);this.horizontal=dd.getCmd(this,HORIZONTAL);this.noalt=dd.getCmd(this,NO_ALT,1);this.nodrag=dd.getCmd(this,NO_DRAG);this.scroll=dd.getCmd(this,SCROLL,1);this.resizable=dd.getCmd(this,RESIZABLE,1);this.re_z=dd.getCmd(this,RESET_Z,1);this.diaphan=dd.getCmd(this,TRANSPARENT,1);this.vertical=dd.getCmd(this,VERTICAL);this.maxw=dd.getCmdVal(this,MAXWIDTH,1,1);this.minw=Math.abs(dd.getCmdVal(this,MINWIDTH,1,1));this.maxh=dd.getCmdVal(this,MAXHEIGHT,1,1);this.minh=Math.abs(dd.getCmdVal(this,MINHEIGHT,1,1));this.name=this.id+(d_i||"");this.oimg=dd.getImg(this,this.id,1);this.is_image=!!this.oimg;this.copies=new Array;this.children=new Array;this.parent=this.original=null;if(this.oimg){this.id=this.name+"div";this.w=dd.getImgW(this.oimg);this.h=dd.getImgH(this.oimg);this.dw=this.dh=0;this.defz=dd.Int(dd.getCssProp(this.oimg,"z-index","zIndex","zIndex"))||1;this.defsrc=this.src=this.oimg.src;this.htm='<img name="'+this.id+'NImG"'+' src="'+this.oimg.src+'" '+'width="'+this.w+'" height="'+this.h+'">';this.t_htm='<div id="'+this.id+'" style="position:absolute;'+"left:"+(this.cssx=this.x=this.defx)+"px;"+"top:"+(this.cssy=this.y=this.defy)+"px;"+"width:"+this.w+"px;"+"height:"+this.h+'px;">'+this.htm+"</div>"}else{if(!!(this.div=dd.getDiv(this.id))&&typeof this.div.style!="undefined")this.css=this.div.style;dd.getWH(this);if(this.div){this.div.ddObj=this;this.div.pos_rel=""+(this.div.parentNode?this.div.parentNode.tagName:this.div.parentElement?this.div.parentElement.tagName:"").toLowerCase().indexOf("body")<0}dd.getPageXY(this.div);this.defx=this.x=dd.x;this.defy=this.y=dd.y;dd.getCssXY(this);this.defz=dd.Int(dd.getCssProp(this.div,"z-index","zIndex","zIndex"))}this.defw=this.w||0;this.defh=this.h||0}DDObj.prototype.moveBy=function(d_x,d_y,d_kds,d_o){if(!this.div)return;this.x+=d_x=dd.Int(d_x);this.y+=d_y=dd.Int(d_y);if(!d_kds||this.is_image||this.parent!=this.defparent){(d_o=this.css||this.div).left=(this.cssx+=d_x)+dd.px;d_o.top=(this.cssy+=d_y)+dd.px}var d_i=this.children.length;while(d_i--){if(!(d_o=this.children[d_i]).detached)d_o.moveBy(d_x,d_y,1);d_o.defx+=d_x;d_o.defy+=d_y}};DDObj.prototype.moveTo=function(d_x,d_y){this.moveBy(dd.Int(d_x)-this.x,dd.Int(d_y)-this.y)};DDObj.prototype.hide=function(d_m,d_o,d_p){if(this.div&&this.visible){d_p=this.css||this.div;if(d_m&&!dd.n4){this.display=dd.getCssProp(this.div,"display","display","display");if(this.oimg){this.oimg.display=dd.getCssProp(this.oimg,"display","display","display");this.oimg.style.display="none"}d_p.display="none";dd.recalc()}else d_p.visibility="hidden"}this.visible=false;var d_i=this.children.length;while(d_i--)if(!(d_o=this.children[d_i]).detached)d_o.hide(d_m)};DDObj.prototype.show=function(d_o,d_p){if(this.div){d_p=this.css||this.div;if(d_p.display&&d_p.display=="none"){d_p.display=this.display||"block";if(this.oimg)this.oimg.style.display=this.oimg.display||"inline";dd.recalc()}else d_p.visibility="visible"}this.visible=true;var d_i=this.children.length;while(d_i--)if(!(d_o=this.children[d_i]).detached)d_o.show()};DDObj.prototype.resizeTo=function(d_w,d_h,d_o){if(!this.div)return;d_w=(this.w=dd.Int(d_w))-this.dw;d_h=(this.h=dd.Int(d_h))-this.dh;if(dd.n4){this.div.resizeTo(d_w,d_h);if(this.is_image){this.write('<img src="'+this.src+'" width="'+d_w+'" height="'+d_h+'">');(this.nimg=this.div.document.images[0]).src=this.src}}else if(typeof this.css.pixelWidth!="undefined"){this.css.pixelWidth=d_w;this.css.pixelHeight=d_h;if(this.is_image){(d_o=this.nimg.style).pixelWidth=d_w;d_o.pixelHeight=d_h}}else{this.css.width=d_w+dd.px;this.css.height=d_h+dd.px;if(this.is_image){(d_o=this.nimg).width=d_w;d_o.height=d_h;if(!d_o.complete)d_o.src=this.src}}};DDObj.prototype.resizeBy=function(d_dw,d_dh){this.resizeTo(this.w+dd.Int(d_dw),this.h+dd.Int(d_dh))};DDObj.prototype.swapImage=function(d_x,d_cp){if(!this.nimg)return;this.nimg.src=d_x;this.src=this.nimg.src;if(d_cp){var d_i=this.copies.length;while(d_i--)this.copies[d_i].src=this.copies[d_i].nimg.src=this.nimg.src}};DDObj.prototype.setBgColor=function(d_x){if(dd.n4&&this.div)this.div.bgColor=d_x;else if(this.css)this.css.background=d_x;this.bgColor=d_x};DDObj.prototype.write=function(d_x,d_o){this.text=d_x;if(!this.div)return;if(dd.n4){(d_o=this.div.document).open();d_o.write(d_x);d_o.close();dd.getWH(this)}else if(!dd.op6){this.css.height="auto";this.div.innerHTML=d_x;if(!dd.ie4)dd.recalc();if(dd.ie4||dd.n6)setTimeout("dd.recalc();",0)}};DDObj.prototype.copy=function(d_n,d_p){if(!this.oimg)return;d_n=d_n||1;while(d_n--){var d_l=this.copies.length,d_o=new DDObj(this.name+this.cmd,d_l+1);if(dd.n4){d_o.id=(d_p=new Layer(d_o.w)).name;d_p.clip.height=d_o.h;d_p.visibility="show";(d_p=d_p.document).open();d_p.write(d_o.htm);d_p.close()}else if(dd.db.insertAdjacentHTML)dd.db.insertAdjacentHTML("AfterBegin",d_o.t_htm);else if(document.createElement&&dd.db&&dd.db.appendChild){dd.db.appendChild(d_p=document.createElement("div"));d_p.innerHTML=d_o.htm;d_p.id=d_o.id;d_p.style.position="absolute";d_p.style.width=d_o.w+"px";d_p.style.height=d_o.h+"px"}else if(dd.db&&dd.db.innerHTML)dd.db.innerHTML+=d_o.t_htm;d_o.defz=this.defz+1+d_l;dd.addProps(d_o);d_o.original=this;dd.addElt(d_o,this);if(this.parent){this.parent.addChild(d_o,this.detached);d_o.defparent=this.defparent}d_o.moveTo(d_o.defx=this.defx,d_o.defy=this.defy);if(dd.n4)d_o.defsrc=d_o.src=this.defsrc;d_o.swapImage(this.src)}};DDObj.prototype.addChild=function(d_kd,detach,defp){if(typeof d_kd!="object")d_kd=dd.elements[d_kd];if(d_kd.parent&&d_kd.parent==this||d_kd==this||!d_kd.is_image&&d_kd.defparent&&!defp)return;this.children[this.children.length]=this.children[d_kd.name]=d_kd;d_kd.detached=detach||0;if(defp)d_kd.defparent=this;else if(this==d_kd.defparent&&d_kd.is_image)dd.getImg(this,d_kd.oimg.name,1);if(!d_kd.defparent||this!=d_kd.defparent){d_kd.defx=d_kd.x;d_kd.defy=d_kd.y}if(!detach){d_kd.defz=d_kd.defz+this.defz-(d_kd.parent?d_kd.parent.defz:0)+!d_kd.is_image*1;d_kd.setZ(d_kd.z+this.z-(d_kd.parent?d_kd.parent.z:0)+!d_kd.is_image*1,1)}if(d_kd.parent)d_kd.parent._removeChild(d_kd,1);d_kd.parent=this};DDObj.prototype._removeChild=function(d_kd,d_newp){if(typeof d_kd!="object")d_kd=this.children[d_kd];var d_oc=this.children,d_nc=new Array;for(var d_i=0;d_i<d_oc.length;d_i++)if(d_oc[d_i]!=d_kd)d_nc[d_nc.length]=d_oc[d_i];this.children=d_nc;d_kd.parent=null;if(!d_newp){d_kd.detached=d_kd.defp=0;if(d_kd.is_image)dd.getImg(d_kd,d_kd.oimg.name,1)}};DDObj.prototype.attachChild=function(d_kd){(d_kd=typeof d_kd!="object"?this.children[d_kd]:d_kd).detached=0;d_kd.setZ(d_kd.defz+this.z-this.defz,1)};DDObj.prototype.detachChild=function(d_kd){(d_kd=typeof d_kd!="object"?this.children[d_kd]:d_kd).detached=1};DDObj.prototype.setZ=function(d_x,d_kds,d_o){if(d_kds){var d_dz=d_x-this.z,d_i=this.children.length;while(d_i--)if(!(d_o=this.children[d_i]).detached)d_o.setZ(d_o.z+d_dz,1)}dd.z=Math.max(dd.z,this.z=this.div?(this.css||this.div).zIndex=d_x:0)};DDObj.prototype.maximizeZ=function(){this.setZ(dd.z+1,1)};DDObj.prototype._resetZ=function(d_o){if(this.re_z||dd.re_z){this.setZ(this.defz);var d_i=this.children.length;while(d_i--)if(!(d_o=this.children[d_i]).detached)d_o.setZ(d_o.defz)}};DDObj.prototype.setOpacity=function(d_x){this.opacity=d_x;this._setOpaRel(1,1)};DDObj.prototype._setOpaRel=function(d_x,d_kd,d_y,d_o){if(this.diaphan||d_kd){d_y=this.opacity*d_x;if(dd.n6)this.css.MozOpacity=d_y;else if(dd.ie&&!dd.iemac&&typeof this.div.filters!="undefined")this.div.filters[0].opacity=parseInt(100*d_y);else if(this.css)this.css.opacity=d_y;var d_i=this.children.length;while(d_i--)if(!(d_o=this.children[d_i]).detached)d_o._setOpaRel(d_x,1)}};DDObj.prototype.setCursor=function(d_x){this._setCrs(this.cursor=d_x.indexOf("c:")+1?d_x.substring(2):d_x)};DDObj.prototype._setCrs=function(d_x){if(this.css)this.css.cursor=(!dd.ie||dd.iemac)&&d_x=="hand"?"pointer":d_x};DDObj.prototype.setDraggable=function(d_x){this.nodrag=!d_x*1;this._setCrs(d_x?this.cursor:"auto")};DDObj.prototype.setResizable=function(d_x){this.resizable=d_x*1;if(d_x)this.scalable=0};DDObj.prototype.setScalable=function(d_x){this.scalable=d_x*1;if(d_x)this.resizable=0};DDObj.prototype.del=function(d_os,d_o){var d_i;if(this.parent&&this.parent._removeChild)this.parent._removeChild(this);if(this.original){this.hide();if(this.original.copies){d_os=new Array;for(d_i=0;d_i<this.original.copies.length;d_i++)if((d_o=this.original.copies[d_i])!=this)d_os[d_o.name]=d_os[d_os.length]=d_o;this.original.copies=d_os}}else if(this.is_image){this.hide();if(this.oimg){if(dd.n4)this.oimg.src=this.defsrc;else this.oimg.style.visibility="visible"}}else if(this.moveTo){if(this.css)this.css.cursor="default";this.moveTo(this.defx,this.defy);this.resizeTo(this.defw,this.defh)}d_os=new Array;for(d_i=0;d_i<dd.elements.length;d_i++){if((d_o=dd.elements[d_i])!=this)d_os[d_o.name]=d_os[d_o.index=d_os.length]=d_o;else d_o._free()}dd.elements=d_os;if(!dd.op6&&!dd.n4)dd.recalc()};DDObj.prototype._free=function(){for(var d_i in this)this[d_i]=null;dd.elements[this.name]=null};dd.n4RectVis=function(vis){for(var d_i=4;d_i--;){dd.rectI[d_i].visibility=dd.rectA[d_i].visibility=vis?"show":"hide";if(vis)dd.rectI[d_i].zIndex=dd.rectA[d_i].zIndex=dd.z+2}};dd.n4RectPos=function(d_o,d_x,d_y,d_w,d_h){d_o.x=d_x;d_o.y=d_y;d_o.clip.width=d_w;d_o.clip.height=d_h};dd.n4Rect=function(d_w,d_h){var d_i;if(!dd.rectI){dd.rectI=new Array;dd.rectA=new Array}if(!dd.rectI[0]){for(d_i=4;d_i--;){(dd.rectI[d_i]=new Layer(1)).bgColor="#000000";(dd.rectA[d_i]=new Layer(1)).bgColor="#ffffff"}}if(!dd.rectI[0].visibility||dd.rectI[0].visibility=="hide")dd.n4RectVis(1);dd.obj.w=d_w;dd.obj.h=d_h;for(d_i=4;d_i--;){dd.n4RectPos(dd.rectI[d_i],dd.obj.x+(!(d_i-1)?dd.obj.w-1:0),dd.obj.y+(!(d_i-2)?dd.obj.h-1:0),d_i&1||dd.obj.w,!(d_i&1)||dd.obj.h);dd.n4RectPos(dd.rectA[d_i],!(d_i-1)?dd.rectI[1].x+1:dd.obj.x-1,!(d_i-2)?dd.rectI[2].y+1:dd.obj.y-1,d_i&1||dd.obj.w+2,!(d_i&1)||dd.obj.h+2)}};dd.reszTo=function(d_w,d_h){if(dd.n4&&dd.obj.is_image)dd.n4Rect(d_w,d_h);else dd.obj.resizeTo(d_w,d_h)};dd.embedVis=function(d_vis){var d_o=new Array("iframe","applet","embed","object");var d_i=d_o.length;while(d_i--){var d_p=dd.ie?document.all.tags(d_o[d_i]):document.getElementsByTagName?document.getElementsByTagName(d_o[d_i]):null;if(d_p){var d_j=d_p.length;while(d_j--){var d_q=d_p[d_j];while(d_q.offsetParent||d_q.parentNode){if((d_q=d_q.parentNode||d_q.offsetParent||null)==dd.obj.div){d_p[d_j].style.visibility=d_vis;break}}}}}};dd.maxOffX=function(d_x,d_y){return dd.obj.maxoffl+1&&(d_y=dd.obj.defx-dd.obj.maxoffl)-d_x>0||dd.obj.maxoffr+1&&(d_y=dd.obj.defx+dd.obj.maxoffr)-d_x<0?d_y:d_x};dd.maxOffY=function(d_x,d_y){return dd.obj.maxofft+1&&(d_y=dd.obj.defy-dd.obj.maxofft)-d_x>0||dd.obj.maxoffb+1&&(d_y=dd.obj.defy+dd.obj.maxoffb)-d_x<0?d_y:d_x};dd.inWndW=function(d_x,d_y){var d_wx=dd.getScrollX(),d_ww=dd.getWndW();return(d_y=d_wx+2)-d_x>0||(d_y=d_wx+d_ww+dd.obj.w-2)-d_x<0?d_y:d_x};dd.inWndH=function(d_x,d_y){var d_wy=dd.getScrollY(),d_wh=dd.getWndH();return(d_y=d_wy+2)-d_x>0||(d_y=d_wy+d_wh+dd.obj.h-2)-d_x<0?d_y:d_x};dd.limW=function(d_w){return dd.obj.minw-d_w>0?dd.obj.minw:dd.obj.maxw>0&&dd.obj.maxw-d_w<0?dd.obj.maxw:d_w};dd.limH=function(d_h){return dd.obj.minh-d_h>0?dd.obj.minh:dd.obj.maxh>0&&dd.obj.maxh-d_h<0?dd.obj.maxh:d_h};function DDScroll(){if(!dd.obj||!dd.obj.scroll&&!dd.scroll||dd.op||dd.ie4||dd.whratio){dd.scrx=dd.scry=0;return}var d_bnd=28,d_wx=dd.getScrollX(),d_wy=dd.getScrollY();if(dd.msmoved){var d_ww=dd.getWndW(),d_wh=dd.getWndH(),d_y;dd.scrx=(d_y=dd.e.x-d_ww-d_wx+d_bnd)>0?(d_y>>=2)*d_y:(d_y=d_wx+d_bnd-dd.e.x)>0?-(d_y>>=2)*d_y:0;dd.scry=(d_y=dd.e.y-d_wh-d_wy+d_bnd)>0?(d_y>>=2)*d_y:(d_y=d_wy+d_bnd-dd.e.y)>0?-(d_y>>=2)*d_y:0}if(dd.scrx||dd.scry){window.scrollTo(d_wx+(dd.scrx=dd.obj.is_resized?dd.limW(dd.obj.w+dd.scrx)-dd.obj.w:dd.obj.vertical?0:dd.maxOffX(dd.obj.x+dd.scrx)-dd.obj.x),d_wy+(dd.scry=dd.obj.is_resized?dd.limH(dd.obj.h+dd.scry)-dd.obj.h:dd.obj.horizontal?0:dd.maxOffY(dd.obj.y+dd.scry)-dd.obj.y));dd.obj.is_dragged?dd.obj.moveTo(dd.obj.x+dd.getScrollX()-d_wx,dd.obj.y+dd.getScrollY()-d_wy):dd.reszTo(dd.obj.w+dd.getScrollX()-d_wx,dd.obj.h+dd.getScrollY()-d_wy)}dd.msmoved=0;window.setTimeout("DDScroll()",51)}function PICK(d_ev){dd.e=new dd.evt(d_ev);if(dd.e.x>=dd.getWndW()+dd.getScrollX()||dd.e.y>=dd.getWndH()+dd.getScrollY())return true;var d_o,d_cmp=-1,d_i=dd.elements.length;while(d_i--){d_o=dd.elements[d_i];if(dd.n4&&dd.e.but>1&&dd.e.src==d_o.oimg&&!d_o.clone)return false;if(d_o.visible&&dd.e.but<=1&&dd.e.x>=d_o.x&&dd.e.x<=d_o.x+d_o.w&&dd.e.y>=d_o.y&&dd.e.y<=d_o.y+d_o.h){if(d_o.z>d_cmp&&dd.e.src.tag.indexOf("input")<0&&dd.e.src.tag.indexOf("textarea")<0&&dd.e.src.tag.indexOf("select")<0&&dd.e.src.tag.indexOf("option")<0){d_cmp=d_o.z;dd.obj=d_o}}}if(dd.obj){if(dd.obj.nodrag)dd.obj=null;else{dd.e.e.cancelBubble=true;var d_rsz=dd.e.modifKey&&(dd.obj.resizable||dd.obj.scalable);if(dd.op&&!dd.op6){(d_o=document.getElementById("OpBlUr")).style.pixelLeft=dd.e.x;d_o.style.pixelTop=dd.e.y;(d_o=d_o.children[0].children[0]).focus();d_o.blur()}else if(dd.ie&&!dd.ie4){if(document.selection&&document.selection.empty)document.selection.empty();dd.db.onselectstart=function(){event.returnValue=false}}if(d_rsz){dd.obj._setCrs("se-resize");dd.obj.is_resized=1;dd.whratio=dd.obj.scalable?dd.obj.defw/dd.obj.defh:0;if(dd.ie){if(dd.ie4){window.dd_x=dd.getScrollX();window.dd_y=dd.getScrollY()}setTimeout("if (dd.obj && document.selection && document.selection.empty)"+"{"+"document.selection.empty();"+"if (dd.ie4) window.scrollTo(window.dd_x, window.dd_y);"+"}",0)}dd.setEvtHdl(1,RESIZE);dd.reszTo(dd.obj.w,dd.obj.h)}else{dd.obj.is_dragged=1;dd.setEvtHdl(1,DRAG)}dd.setEvtHdl(2,DROP);dd.embedVis("hidden");dd.obj._setOpaRel(.7);dd.obj.maximizeZ();dd.ofx=dd.obj.x+dd.obj.w-dd.e.x;dd.ofy=dd.obj.y+dd.obj.h-dd.e.y;if(window.my_PickFunc)my_PickFunc();DDScroll();return!(dd.obj.is_resized||dd.n4&&dd.obj.is_image||dd.n6||dd.w3c)}}if(dd.downFunc)return dd.downFunc(d_ev);return true}function DRAG(d_ev){if(!dd.obj||!dd.obj.visible)return true;if(dd.ie4||dd.w3c||dd.n6||dd.obj.children.length>15){if(dd.wait)return false;dd.wait=1;setTimeout("dd.wait = 0;",dd.tiv)}dd.e=new dd.evt(d_ev);if(dd.ie&&!dd.e.but){DROP(d_ev);return true}dd.msmoved=1;dd.obj.moveTo(dd.obj.vertical?dd.obj.x:dd.maxOffX(dd.inWndW(dd.ofx+dd.e.x)-dd.obj.w),dd.obj.horizontal?dd.obj.y:dd.maxOffY(dd.inWndH(dd.ofy+dd.e.y)-dd.obj.h));if(window.my_DragFunc)my_DragFunc();return false}function RESIZE(d_ev){if(!dd.obj||!dd.obj.visible)return true;if(dd.wait)return false;dd.wait=1;setTimeout("dd.wait = 0;",dd.tiv);dd.e=new dd.evt(d_ev);if(dd.ie&&!dd.e.but){DROP(d_ev);return true}dd.msmoved=1;var d_w=dd.limW(dd.inWndW(dd.ofx+dd.e.x)-dd.obj.x),d_h;if(!dd.whratio)d_h=dd.limH(dd.inWndH(dd.ofy+dd.e.y)-dd.obj.y);else{d_h=dd.limH(dd.inWndH(Math.round(d_w/dd.whratio)+dd.obj.y)-dd.obj.y);d_w=Math.round(d_h*dd.whratio)}dd.reszTo(d_w,d_h);if(window.my_ResizeFunc)my_ResizeFunc();return false}function DROP(d_ev){if(dd.obj){if(dd.obj.is_dragged){if(!dd.obj.is_image)dd.getWH(dd.obj)}else if(dd.n4){if(dd.obj.is_image){dd.n4RectVis(0);dd.obj.resizeTo(dd.obj.w,dd.obj.h)}}if(!dd.n4&&!dd.op6||!dd.obj.is_image)dd.recalc();dd.setEvtHdl(1,dd.moveFunc);dd.setEvtHdl(2,dd.upFunc);if(dd.db)dd.db.onselectstart=null;dd.obj._setOpaRel(1);dd.obj._setCrs(dd.obj.cursor);dd.embedVis("visible");dd.obj._resetZ();if(window.my_DropFunc){dd.e=new dd.evt(d_ev);my_DropFunc()}dd.msmoved=dd.obj.is_dragged=dd.obj.is_resized=dd.whratio=0;dd.obj=null}dd.setEvtHdl(0,PICK)}function SET_DHTML(){var d_a=arguments,d_ai,d_htm="",d_o,d_i=d_a.length;while(d_i--){if(dd.op6){var d_t0=(new Date).getTime();while((new Date).getTime()-d_t0<153);}if(!(d_ai=d_a[d_i]).indexOf("c:"))dd.cursor=d_ai.substring(2);else if(d_ai==NO_ALT)dd.noalt=1;else if(d_ai==SCROLL)dd.scroll=1;else if(d_ai==RESET_Z)dd.re_z=1;else if(d_ai==RESIZABLE)dd.resizable=1;else if(d_ai==SCALABLE)dd.scalable=1;else if(d_ai==TRANSPARENT)dd.diaphan=1;else{d_o=new DDObj(d_ai);dd.addElt(d_o);d_htm+=d_o.t_htm||"";if(d_o.oimg&&d_o.cpy_n){var d_j=0;while(d_j<d_o.cpy_n){var d_p=new DDObj(d_o.name+d_o.cmd,++d_j);dd.addElt(d_p,d_o);d_p.defz=d_o.defz+d_j;d_p.original=d_o;d_htm+=d_p.t_htm}}}}if(dd.n4||dd.n6||dd.ie||dd.op||dd.w3c)document.write((dd.n4?'<div style="position:absolute;"></div>\n':dd.op&&!dd.op6?'<div id="OpBlUr" style="position:absolute;visibility:hidden;width:0px;height:0px;"><form><input type="text" style="width:0px;height:0px;"></form></div>':"")+d_htm);dd.z=51;d_i=dd.elements.length;while(d_i--){dd.addProps(d_o=dd.elements[d_i]);if(d_o.is_image&&!d_o.original&&!d_o.clone)dd.n4?d_o.oimg.src=spacer:d_o.oimg.style.visibility="hidden"}dd.mkWzDom();if(window.onload)dd.loadFunc=window.onload;document.onmousedown=document.onmousedown||null;document.onmousemove=document.onmousemove||null;document.onmouseup=document.onmouseup||null;window.onload=dd.initz;window.onunload=dd.finlz;dd.setEvtHdl(0,PICK)}function ADD_DHTML(d_o){d_o=new DDObj(d_o);dd.addElt(d_o);dd.addProps(d_o);dd.mkWzDom()}dd.d=document;var RESET_ZINDEX=RESET_Z;var KEYDOWN_RESIZE=RESIZABLE;var CURSOR_POINTER=CURSOR_HAND;var NO_SCROLL="";function my_PickFunc(){if(dd.obj.my_PickFunc){dd.obj.my_PickFunc()}}function my_DragFunc(){if(dd.obj.my_DragFunc){dd.obj.my_DragFunc()}}function my_ResizeFunc(){if(dd.obj.my_ResizeFunc){dd.obj.my_ResizeFunc()}}function my_DropFunc(){if(dd.obj.my_DropFunc){dd.obj.my_DropFunc()}}var jg_ihtm,jg_ie,jg_fast,jg_dom,jg_moz,jg_n4=document.layers&&typeof document.classes!="undefined";function chkDHTM(x,i){x=document.body||null;jg_ie=x&&typeof x.insertAdjacentHTML!="undefined";jg_dom=x&&!jg_ie&&typeof x.appendChild!="undefined"&&typeof document.createRange!="undefined"&&typeof(i=document.createRange()).setStartBefore!="undefined"&&typeof i.createContextualFragment!="undefined";jg_ihtm=!jg_ie&&!jg_dom&&x&&typeof x.innerHTML!="undefined";jg_fast=jg_ie&&document.all&&!window.opera;jg_moz=jg_dom&&typeof x.style.MozOpacity!="undefined"}function pntDoc(){this.wnd.document.write(jg_fast?this.htmRpc():this.htm);this.htm=""}function pntCnvDom(){var x=document.createRange();x.setStartBefore(this.cnv);x=x.createContextualFragment(jg_fast?this.htmRpc():this.htm);this.cnv.appendChild(x);this.htm=""}function pntCnvIe(){this.cnv.insertAdjacentHTML("BeforeEnd",jg_fast?this.htmRpc():this.htm);this.htm=""}function pntCnvIhtm(){this.cnv.innerHTML+=this.htm;this.htm=""}function pntCnv(){this.htm=""}function mkDiv(x,y,w,h){this.htm+='<div style="position:absolute;'+"left:"+x+"px;"+"top:"+y+"px;"+"width:"+w+"px;"+"height:"+h+"px;"+"clip:rect(0,"+w+"px,"+h+"px,0);"+"background-color:"+this.color+(!jg_moz?";overflow:hidden":"")+';"></div>'}function mkDivIe(x,y,w,h){this.htm+="%%"+this.color+";"+x+";"+y+";"+w+";"+h+";"}function mkDivPrt(x,y,w,h){this.htm+='<div style="position:absolute;'+"border-left:"+w+"px solid "+this.color+";"+"left:"+x+"px;"+"top:"+y+"px;"+"width:0px;"+"height:"+h+"px;"+"clip:rect(0,"+w+"px,"+h+"px,0);"+"background-color:"+this.color+(!jg_moz?";overflow:hidden":"")+';"></div>'}function mkLyr(x,y,w,h){this.htm+="<layer "+'left="'+x+'" '+'top="'+y+'" '+'width="'+w+'" '+'height="'+h+'" '+'bgcolor="'+this.color+'"></layer>\n'}var regex=/%%([^;]+);([^;]+);([^;]+);([^;]+);([^;]+);/g;function htmRpc(){return this.htm.replace(regex,'<div style="overflow:hidden;position:absolute;background-color:'+'$1;left:$2;top:$3;width:$4;height:$5"></div>\n')}function htmPrtRpc(){return this.htm.replace(regex,'<div style="overflow:hidden;position:absolute;background-color:'+'$1;left:$2;top:$3;width:$4;height:$5;border-left:$4px solid $1"></div>\n')}function mkLin(x1,y1,x2,y2){if(x1>x2){var _x2=x2;var _y2=y2;x2=x1;y2=y1;x1=_x2;y1=_y2}var dx=x2-x1,dy=Math.abs(y2-y1),x=x1,y=y1,yIncr=y1>y2?-1:1;if(dx>=dy){var pr=dy<<1,pru=pr-(dx<<1),p=pr-dx,ox=x;while(dx-- >0){++x;if(p>0){this.mkDiv(ox,y,x-ox,1);y+=yIncr;p+=pru;ox=x}else p+=pr}this.mkDiv(ox,y,x2-ox+1,1)}else{var pr=dx<<1,pru=pr-(dy<<1),p=pr-dy,oy=y;if(y2<=y1){while(dy-- >0){if(p>0){this.mkDiv(x++,y,1,oy-y+1);y+=yIncr;p+=pru;oy=y}else{y+=yIncr;p+=pr}}this.mkDiv(x2,y2,1,oy-y2+1)}else{while(dy-- >0){y+=yIncr;if(p>0){this.mkDiv(x++,oy,1,y-oy);p+=pru;oy=y}else p+=pr}this.mkDiv(x2,oy,1,y2-oy+1)}}}function mkLin2D(x1,y1,x2,y2){if(x1>x2){var _x2=x2;var _y2=y2;x2=x1;y2=y1;x1=_x2;y1=_y2}var dx=x2-x1,dy=Math.abs(y2-y1),x=x1,y=y1,yIncr=y1>y2?-1:1;var s=this.stroke;if(dx>=dy){if(s-3>0){var _s=(s*dx*Math.sqrt(1+dy*dy/(dx*dx))-dx-(s>>1)*dy)/dx;_s=(!(s-4)?Math.ceil(_s):Math.round(_s))+1}else var _s=s;var ad=Math.ceil(s/2);var pr=dy<<1,pru=pr-(dx<<1),p=pr-dx,ox=x;while(dx-- >0){++x;if(p>0){this.mkDiv(ox,y,x-ox+ad,_s);y+=yIncr;p+=pru;ox=x}else p+=pr}this.mkDiv(ox,y,x2-ox+ad+1,_s)}else{if(s-3>0){var _s=(s*dy*Math.sqrt(1+dx*dx/(dy*dy))-(s>>1)*dx-dy)/dy;_s=(!(s-4)?Math.ceil(_s):Math.round(_s))+1}else var _s=s;var ad=Math.round(s/2);var pr=dx<<1,pru=pr-(dy<<1),p=pr-dy,oy=y;if(y2<=y1){++ad;while(dy-- >0){if(p>0){this.mkDiv(x++,y,_s,oy-y+ad);y+=yIncr;p+=pru;oy=y}else{y+=yIncr;p+=pr}}this.mkDiv(x2,y2,_s,oy-y2+ad)}else{while(dy-- >0){y+=yIncr;if(p>0){this.mkDiv(x++,oy,_s,y-oy+ad);p+=pru;oy=y}else p+=pr}this.mkDiv(x2,oy,_s,y2-oy+ad+1)}}}function mkLinDott(x1,y1,x2,y2){if(x1>x2){var _x2=x2;var _y2=y2;x2=x1;y2=y1;x1=_x2;y1=_y2}var dx=x2-x1,dy=Math.abs(y2-y1),x=x1,y=y1,yIncr=y1>y2?-1:1,drw=true;if(dx>=dy){var pr=dy<<1,pru=pr-(dx<<1),p=pr-dx;while(dx-- >0){if(drw)this.mkDiv(x,y,1,1);drw=!drw;if(p>0){y+=yIncr;p+=pru}else p+=pr;++x}if(drw)this.mkDiv(x,y,1,1)}else{var pr=dx<<1,pru=pr-(dy<<1),p=pr-dy;while(dy-- >0){if(drw)this.mkDiv(x,y,1,1);drw=!drw;y+=yIncr;if(p>0){++x;p+=pru}else p+=pr}if(drw)this.mkDiv(x,y,1,1)}}function mkOv(left,top,width,height){var a=width>>1,b=height>>1,wod=width&1,hod=(height&1)+1,cx=left+a,cy=top+b,x=0,y=b,ox=0,oy=b,aa=a*a<<1,bb=b*b<<1,st=(aa>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa*((b<<1)-1),w,h;while(y>0){if(st<0){st+=bb*((x<<1)+3);tt+=(bb<<1)*++x}else if(tt<0){st+=bb*((x<<1)+3)-(aa<<1)*(y-1);tt+=(bb<<1)*++x-aa*((y--<<1)-3);w=x-ox;h=oy-y;if(w&2&&h&2){this.mkOvQds(cx,cy,-x+2,ox+wod,-oy,oy-1+hod,1,1);this.mkOvQds(cx,cy,-x+1,x-1+wod,-y-1,y+hod,1,1)}else this.mkOvQds(cx,cy,-x+1,ox+wod,-oy,oy-h+hod,w,h);ox=x;oy=y}else{tt-=aa*((y<<1)-3);st-=(aa<<1)*--y}}this.mkDiv(cx-a,cy-oy,a-ox+1,(oy<<1)+hod);this.mkDiv(cx+ox+wod,cy-oy,a-ox+1,(oy<<1)+hod)}function mkOv2D(left,top,width,height){var s=this.stroke;width+=s-1;height+=s-1;var a=width>>1,b=height>>1,wod=width&1,hod=(height&1)+1,cx=left+a,cy=top+b,x=0,y=b,aa=a*a<<1,bb=b*b<<1,st=(aa>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa*((b<<1)-1);if(s-4<0&&(!(s-2)||width-51>0&&height-51>0)){var ox=0,oy=b,w,h,pxl,pxr,pxt,pxb,pxw;while(y>0){if(st<0){st+=bb*((x<<1)+3);tt+=(bb<<1)*++x}else if(tt<0){st+=bb*((x<<1)+3)-(aa<<1)*(y-1);tt+=(bb<<1)*++x-aa*((y--<<1)-3);w=x-ox;h=oy-y;if(w-1){pxw=w+1+(s&1);h=s}else if(h-1){pxw=s;h+=1+(s&1)}else pxw=h=s;this.mkOvQds(cx,cy,-x+1,ox-pxw+w+wod,-oy,-h+oy+hod,pxw,h);ox=x;oy=y}else{tt-=aa*((y<<1)-3);st-=(aa<<1)*--y}}this.mkDiv(cx-a,cy-oy,s,(oy<<1)+hod);this.mkDiv(cx+a+wod-s+1,cy-oy,s,(oy<<1)+hod)}else{var _a=width-(s-1<<1)>>1,_b=height-(s-1<<1)>>1,_x=0,_y=_b,_aa=_a*_a<<1,_bb=_b*_b<<1,_st=(_aa>>1)*(1-(_b<<1))+_bb,_tt=(_bb>>1)-_aa*((_b<<1)-1),pxl=new Array,pxt=new Array,_pxb=new Array;pxl[0]=0;pxt[0]=b;_pxb[0]=_b-1;while(y>0){if(st<0){st+=bb*((x<<1)+3);tt+=(bb<<1)*++x;pxl[pxl.length]=x;pxt[pxt.length]=y}else if(tt<0){st+=bb*((x<<1)+3)-(aa<<1)*(y-1);tt+=(bb<<1)*++x-aa*((y--<<1)-3);pxl[pxl.length]=x;pxt[pxt.length]=y}else{tt-=aa*((y<<1)-3);st-=(aa<<1)*--y}if(_y>0){if(_st<0){_st+=_bb*((_x<<1)+3);_tt+=(_bb<<1)*++_x;_pxb[_pxb.length]=_y-1}else if(_tt<0){_st+=_bb*((_x<<1)+3)-(_aa<<1)*(_y-1);_tt+=(_bb<<1)*++_x-_aa*((_y--<<1)-3);_pxb[_pxb.length]=_y-1}else{_tt-=_aa*((_y<<1)-3);_st-=(_aa<<1)*--_y;_pxb[_pxb.length-1]--}}}var ox=0,oy=b,_oy=_pxb[0],l=pxl.length,w,h;for(var i=0;i<l;i++){if(typeof _pxb[i]!="undefined"){if(_pxb[i]<_oy||pxt[i]<oy){x=pxl[i];this.mkOvQds(cx,cy,-x+1,ox+wod,-oy,_oy+hod,x-ox,oy-_oy);ox=x;oy=pxt[i];_oy=_pxb[i]}}else{x=pxl[i];this.mkDiv(cx-x+1,cy-oy,1,(oy<<1)+hod);this.mkDiv(cx+ox+wod,cy-oy,1,(oy<<1)+hod);ox=x;oy=pxt[i]}}this.mkDiv(cx-a,cy-oy,1,(oy<<1)+hod);this.mkDiv(cx+ox+wod,cy-oy,1,(oy<<1)+hod)}}function mkOvDott(left,top,width,height){var a=width>>1,b=height>>1,wod=width&1,hod=height&1,cx=left+a,cy=top+b,x=0,y=b,aa2=a*a<<1,aa4=aa2<<1,bb=b*b<<1,st=(aa2>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa2*((b<<1)-1),drw=true;while(y>0){if(st<0){st+=bb*((x<<1)+3);tt+=(bb<<1)*++x}else if(tt<0){st+=bb*((x<<1)+3)-aa4*(y-1);tt+=(bb<<1)*++x-aa2*((y--<<1)-3)}else{tt-=aa2*((y<<1)-3);st-=aa4*--y}if(drw)this.mkOvQds(cx,cy,-x,x+wod,-y,y+hod,1,1);drw=!drw}}function mkRect(x,y,w,h){var s=this.stroke;this.mkDiv(x,y,w,s);this.mkDiv(x+w,y,s,h);this.mkDiv(x,y+h,w+s,s);this.mkDiv(x,y+s,s,h-s)}function mkRectDott(x,y,w,h){this.drawLine(x,y,x+w,y);this.drawLine(x+w,y,x+w,y+h);this.drawLine(x,y+h,x+w,y+h);this.drawLine(x,y,x,y+h)}function jsgFont(){this.PLAIN="font-weight:normal;";this.BOLD="font-weight:bold;";this.ITALIC="font-style:italic;";this.ITALIC_BOLD=this.ITALIC+this.BOLD;this.BOLD_ITALIC=this.ITALIC_BOLD}var Font=new jsgFont;function jsgStroke(){this.DOTTED=-1}var Stroke=new jsgStroke;function jsGraphics(id,wnd){this.setColor=new Function("arg","this.color = arg.toLowerCase();");this.setStroke=function(x){this.stroke=x;if(!(x+1)){this.drawLine=mkLinDott;this.mkOv=mkOvDott;this.drawRect=mkRectDott}else if(x-1>0){this.drawLine=mkLin2D;this.mkOv=mkOv2D;this.drawRect=mkRect}else{this.drawLine=mkLin;this.mkOv=mkOv;this.drawRect=mkRect}};this.setPrintable=function(arg){this.printable=arg;if(jg_fast){this.mkDiv=mkDivIe;this.htmRpc=arg?htmPrtRpc:htmRpc}else this.mkDiv=jg_n4?mkLyr:arg?mkDivPrt:mkDiv};this.setFont=function(fam,sz,sty){this.ftFam=fam;this.ftSz=sz;this.ftSty=sty||Font.PLAIN};this.drawPolyline=this.drawPolyLine=function(x,y,s){for(var i=0;i<x.length-1;i++)this.drawLine(x[i],y[i],x[i+1],y[i+1])};this.fillRect=function(x,y,w,h){this.mkDiv(x,y,w,h)};this.drawPolygon=function(x,y){this.drawPolyline(x,y);this.drawLine(x[x.length-1],y[x.length-1],x[0],y[0])};this.drawEllipse=this.drawOval=function(x,y,w,h){this.mkOv(x,y,w,h)};this.fillEllipse=this.fillOval=function(left,top,w,h){
var a=(w-=1)>>1,b=(h-=1)>>1,wod=(w&1)+1,hod=(h&1)+1,cx=left+a,cy=top+b,x=0,y=b,ox=0,oy=b,aa2=a*a<<1,aa4=aa2<<1,bb=b*b<<1,st=(aa2>>1)*(1-(b<<1))+bb,tt=(bb>>1)-aa2*((b<<1)-1),pxl,dw,dh;if(w+1)while(y>0){if(st<0){st+=bb*((x<<1)+3);tt+=(bb<<1)*++x}else if(tt<0){st+=bb*((x<<1)+3)-aa4*(y-1);pxl=cx-x;dw=(x<<1)+wod;tt+=(bb<<1)*++x-aa2*((y--<<1)-3);dh=oy-y;this.mkDiv(pxl,cy-oy,dw,dh);this.mkDiv(pxl,cy+oy-dh+hod,dw,dh);ox=x;oy=y}else{tt-=aa2*((y<<1)-3);st-=aa4*--y}}this.mkDiv(cx-a,cy-oy,w+1,(oy<<1)+hod)};this.fillPolygon=function(array_x,array_y){var i;var y;var miny,maxy;var x1,y1;var x2,y2;var ind1,ind2;var ints;var n=array_x.length;if(!n)return;miny=array_y[0];maxy=array_y[0];for(i=1;i<n;i++){if(array_y[i]<miny)miny=array_y[i];if(array_y[i]>maxy)maxy=array_y[i]}for(y=miny;y<=maxy;y++){var polyInts=new Array;ints=0;for(i=0;i<n;i++){if(!i){ind1=n-1;ind2=0}else{ind1=i-1;ind2=i}y1=array_y[ind1];y2=array_y[ind2];if(y1<y2){x1=array_x[ind1];x2=array_x[ind2]}else if(y1>y2){y2=array_y[ind1];y1=array_y[ind2];x2=array_x[ind1];x1=array_x[ind2]}else continue;if(y>=y1&&y<y2)polyInts[ints++]=Math.round((y-y1)*(x2-x1)/(y2-y1)+x1);else if(y==maxy&&y>y1&&y<=y2)polyInts[ints++]=Math.round((y-y1)*(x2-x1)/(y2-y1)+x1)}polyInts.sort(integer_compare);for(i=0;i<ints;i+=2)this.mkDiv(polyInts[i],y,polyInts[i+1]-polyInts[i]+1,1)}};this.drawString=function(txt,x,y){this.htm+='<div style="position:absolute;white-space:nowrap;'+"left:"+x+"px;"+"top:"+y+"px;"+"font-family:"+this.ftFam+";"+"font-size:"+this.ftSz+";"+"color:"+this.color+";"+this.ftSty+'">'+txt+"</div>"};this.drawStringRect=function(txt,x,y,width,halign){this.htm+='<div style="position:absolute;overflow:hidden;'+"left:"+x+"px;"+"top:"+y+"px;"+"width:"+width+"px;"+"text-align:"+halign+";"+"font-family:"+this.ftFam+";"+"font-size:"+this.ftSz+";"+"color:"+this.color+";"+this.ftSty+'">'+txt+"</div>"};this.drawImage=function(imgSrc,x,y,w,h){this.htm+='<div style="position:absolute;'+"left:"+x+"px;"+"top:"+y+"px;"+"width:"+w+";"+"height:"+h+';">'+'<img src="'+imgSrc+'" width="'+w+'" height="'+h+'">'+"</div>"};this.clear=function(){this.htm="";if(this.cnv)this.cnv.innerHTML=this.defhtm};this.mkOvQds=function(cx,cy,xl,xr,yt,yb,w,h){this.mkDiv(xr+cx,yt+cy,w,h);this.mkDiv(xr+cx,yb+cy,w,h);this.mkDiv(xl+cx,yb+cy,w,h);this.mkDiv(xl+cx,yt+cy,w,h)};this.setStroke(1);this.setFont("verdana,geneva,helvetica,sans-serif",String.fromCharCode(49,50,112,120),Font.PLAIN);this.color="#000000";this.htm="";this.wnd=wnd||window;if(!(jg_ie||jg_dom||jg_ihtm))chkDHTM();if(typeof id!="string"||!id)this.paint=pntDoc;else{this.cnv=document.all?this.wnd.document.all[id]||null:document.getElementById?this.wnd.document.getElementById(id)||null:null;this.defhtm=this.cnv&&this.cnv.innerHTML?this.cnv.innerHTML:"";this.paint=jg_dom?pntCnvDom:jg_ie?pntCnvIe:jg_ihtm?pntCnvIhtm:pntCnv}this.setPrintable(false)}function integer_compare(x,y){return x<y?-1:(x>y)*1}function kaZoomer(){this.nZoomImageHeight=8;this.opacity=100;this.left=7;this.top=3;this.right=null;this.bottom=null;this.zoomControlObj=null;this.draw=kaZoomer_draw;this.update=kaZoomer_update;this.listeners=[]}kaZoomer.prototype.attach=function(oKaMap){this.kaMap=oKaMap;this.domObj=oKaMap.domObj;if(this.kaMap.initializationState<2){this.kaMap.registerForEvent(KAMAP_MAP_INITIALIZED,this,this.draw)}else{this.draw()}};kaZoomer.prototype.remove=function(){if(this.zoomControlObj&&this.zoomControlObj!=null){for(var i=0;i<this.listeners.length;i++)PEvent.removeListener(this.listeners[i]);this.listeners=[];while(this.zoomControlObj.hasChildNodes())this.zoomControlObj.removeChild(this.zoomControlObj.firstChild);if(this.kaMap&&this.kaMap!=null)this.kaMap.domObj.removeChild(this.zoomControlObj)}};function kaZoomer_setPosition(left,top,right,bottom){this.left=left;this.top=top;this.right=right;this.bottom=bottom;if(this.zoomControlObj!=null){if(this.left!=null){oZoomControl.style.left=this.left+"px"}else if(this.right!=null){oZoomControl.style.right=this.right+"px"}if(this.top!=null){oZoomControl.style.top=this.top+"px"}else if(this.bottom!=null){oZoomControl.style.bottom=this.bottom+"px"}}}function kaZoomer_update(){var nThumbHeight=dd.elements.zoomTrack.div.elementHeight;var nTrackTop=dd.elements.zoomTrack.y;var oKaMap=dd.elements.zoomTrack.div.kaZoomer.kaMap;var oMap=oKaMap.getCurrentMap();var nCurrentScale=parseInt(oMap.currentScale)+1;var nScales=oMap.getScales().length;var nPos=(nScales-nCurrentScale)*nThumbHeight;dd.elements.zoomThumb.moveTo(dd.elements.zoomThumb.x,nTrackTop+nPos)}function kaZoomer_draw(){var oMap=this.kaMap.getCurrentMap();var nScales=oMap.getScales().length;var nCurrentScale=oMap.currentScale;var nTrackHeight=this.nZoomImageHeight*nScales;var nTrackMaxPosition=this.nZoomImageHeight*(nScales-1);var nInitialPosition=dd.Int(this.nZoomImageHeight*(nScales-nCurrentScale-1));var szThumbImg=this.kaMap.server+"images/control_slider.png";var szThumbImgOver=this.kaMap.server+"images/control_slider_over.png";this.zoomControlObj=document.createElement("div");this.zoomControlObj.id="zoomControl";this.zoomControlObj.style.position="absolute";if(this.left!=null)this.zoomControlObj.style.left=this.left+"px";else if(this.right!=null)this.zoomControlObj.style.right=this.right+"px";if(this.top!=null)this.zoomControlObj.style.top=this.top+"px";else if(this.bottom!=null)this.zoomControlObj.style.bottom=this.bottom+"px";this.zoomControlObj.style.width=29+"px";this.zoomControlObj.style.height=nTrackHeight+2*this.nZoomImageHeight+30+"px";this.zoomControlObj.style.zIndex=Strata.MAP_CONTROLS;this.zoomControlObj.kaZoomer=this;this.zoomControlObj.style.MozUserSelect="none";this.kaMap.domObj.appendChild(this.zoomControlObj);var oZoomTrack=document.createElement("div");oZoomTrack.id="zoomTrack";oZoomTrack.kaZoomer=this;oZoomTrack.style.position="absolute";oZoomTrack.style.left="0px";oZoomTrack.style.top="28px";oZoomTrack.style.height=parseInt(nTrackHeight)+"px";oZoomTrack.style.width="40px";addPNGBackground(oZoomTrack,this.kaMap.server+"images/control_zoombar.png");oZoomTrack.style.backgroundRepeat="no-repeat";oZoomTrack.elementHeight=this.nZoomImageHeight;this.listeners.push(PEvent.addListener(oZoomTrack,"mouseup",kaZoomer_zoomTo));this.zoomControlObj.appendChild(oZoomTrack);var oZoomThumb=document.createElement("div");oZoomThumb.id="zoomThumb";oZoomThumb.title="Drag to Zoom";oZoomThumb.style.position="absolute";oZoomThumb.style.width="29px";oZoomThumb.style.height="7px";this.listeners.push(PEvent.addListener(oZoomThumb,"mouseover",function(){addPNGBackground(this,szThumbImgOver)}));this.listeners.push(PEvent.addListener(oZoomThumb,"mouseout",function(){addPNGBackground(this,szThumbImg)}));addPNGBackground(oZoomThumb,szThumbImg);this.zoomControlObj.appendChild(oZoomThumb);var zoomSprite=this.kaMap.server+"images/zoom_buttons.png";var zoomKamap=this.kaMap;var oZoomIn=document.createElement("div");oZoomIn.title="Zoom In";oZoomIn.id="zoomIn";oZoomIn.style.position="absolute";oZoomIn.style.top="6px";oZoomIn.style.left="2px";oZoomIn.style.width="24px";oZoomIn.style.height="22px";oZoomIn.style.cursor="pointer";oZoomIn.style.background="url("+zoomSprite+") 0 0";oZoomIn.kaZoomer=this;this.listeners.push(PEvent.addListener(oZoomIn,"mouseover",function(){this.style.backgroundPosition="-25px 0px"}));this.listeners.push(PEvent.addListener(oZoomIn,"mouseout",function(){this.style.backgroundPosition="0 0"}));this.listeners.push(PEvent.addListener(oZoomIn,"mouseup",function(){kaZoomer_zoomIn(zoomKamap)}));this.zoomControlObj.appendChild(oZoomIn);var oZoomOut=document.createElement("div");oZoomOut.id="zoomOut";oZoomOut.title="Zoom Out";oZoomOut.style.position="absolute";oZoomOut.style.top=27+nTrackHeight+"px";oZoomOut.style.left="1px";oZoomOut.style.width="24px";oZoomOut.style.height="22px";oZoomOut.style.cursor="pointer";oZoomOut.style.background="url("+zoomSprite+") 0 -22px";oZoomOut.kaZoomer=this;this.listeners.push(PEvent.addListener(oZoomOut,"mouseover",function(){this.style.backgroundPosition="-24px -22px"}));this.listeners.push(PEvent.addListener(oZoomOut,"mouseout",function(){this.style.backgroundPosition="0 -22px"}));this.listeners.push(PEvent.addListener(oZoomOut,"mouseup",function(){kaZoomer_zoomOut(zoomKamap)}));this.zoomControlObj.appendChild(oZoomOut);ADD_DHTML("zoomThumb"+MAXOFFTOP+0+MAXOFFBOTTOM+nTrackMaxPosition+VERTICAL);ADD_DHTML("zoomTrack"+NO_DRAG);dd.elements.zoomThumb.moveTo(dd.elements.zoomTrack.x,dd.elements.zoomTrack.y+nInitialPosition);dd.elements.zoomThumb.css.cursor="pointer";dd.elements.zoomTrack.addChild("zoomThumb");dd.elements.zoomTrack.css.cursor="pointer";dd.elements.zoomThumb.defx=dd.elements.zoomTrack.x;dd.elements.zoomThumb.defy=dd.elements.zoomTrack.y;dd.elements.zoomThumb.my_DropFunc=kaZoomer_DropFunc;this.kaMap.registerForEvent(KAMAP_SCALE_CHANGED,this,this.update)}function kaZoomer_DropFunc(){var nTrackTop=dd.elements.zoomTrack.y;var nThumbTop=dd.elements.zoomThumb.y-nTrackTop;var nThumbHeight=dd.elements.zoomTrack.div.elementHeight;var nNearestIndex=Math.round(nThumbTop/nThumbHeight);dd.elements.zoomThumb.moveTo(dd.elements.zoomThumb.x,nTrackTop+nNearestIndex*nThumbHeight);dd.elements.zoomThumb.css.cursor="pointer";var oKaMap=dd.elements.zoomTrack.div.kaZoomer.kaMap;var oMap=oKaMap.getCurrentMap();var nCurrentScale=oMap.getScales()[oMap.aScales.length-nNearestIndex-1];oKaMap.zoomToScale(nCurrentScale)}function kaZoomer_zoomTo(e){e=e?e:event?event:null;var nClickTop=e.offsetY?e.offsetY:e.layerY;var oKaZoomer=dd.elements.zoomTrack.div.kaZoomer;var oKaMap=oKaZoomer.kaMap;var oMap=oKaMap.getCurrentMap();var nScales=oMap.getScales().length;var nTrackHeight=dd.Int(oKaZoomer.nZoomImageHeight)*nScales;var nNearestIndex=Math.floor(nClickTop/nTrackHeight*nScales);var nNewScale=oMap.getScales()[oMap.aScales.length-nNearestIndex-1];oKaMap.zoomToScale(nNewScale)}function kaZoomer_onmouseover(e){this.style.opacity=1;this.style.mozOpacity=1;this.style.filter="Alpha(opacity=100)"}function kaZoomer_onmouseout(e){this.style.opacity=this.kaZoomer.opacity/100;this.style.mozOpacity=this.kaZoomer.opacity/100;this.style.filter="Alpha(opacity="+this.kaZoomer.opacity+")"}function kaZoomer_zoomIn(kaMap){kaMap.zoomIn()}function kaZoomer_zoomOut(kaMap){kaMap.zoomOut()}function kaZoomer_alert(){alert("here")}kaServers=function(){this.current=-1;this.servers};kaServers.prototype.setServers=function(servs){this.servers=servs};kaServers.prototype.nextIndex=function(){this.current++;this.current=this.current%this.servers.length;return this.current};kaServers.prototype.next=function(key){if(key)return this.servers[this.hash(key)];else return this.servers[this.nextIndex()]};kaServers.prototype.hash=function(key){return Math.abs(key%this.servers.length)};kaServers.prototype.isEmpty=function(){return this.servers==undefined};MochiKit={__export__:false};if(typeof dojo!="undefined"){dojo.provide("MochiKit.Base")}if(typeof MochiKit=="undefined"){MochiKit={}}if(typeof MochiKit.Base=="undefined"){MochiKit.Base={}}MochiKit.Base.VERSION="1.3.1";MochiKit.Base.NAME="MochiKit.Base";MochiKit.Base.update=function(self,obj){if(self===null){self={}}for(var i=1;i<arguments.length;i++){var o=arguments[i];if(typeof o!="undefined"&&o!==null){for(var k in o){self[k]=o[k]}}}return self};MochiKit.Base.update(MochiKit.Base,{__repr__:function(){return"["+this.NAME+" "+this.VERSION+"]"},toString:function(){return this.__repr__()},counter:function(n){if(arguments.length===0){n=1}return function(){return n++}},clone:function(obj){var me=arguments.callee;if(arguments.length==1){me.prototype=obj;return new me}},flattenArguments:function(lst){var res=[];var m=MochiKit.Base;var args=m.extend(null,arguments);while(args.length){var o=args.shift();if(o&&typeof o=="object"&&typeof o.length=="number"){for(var i=o.length-1;i>=0;i--){args.unshift(o[i])}}else{res.push(o)}}return res},extend:function(self,obj,skip){if(!skip){skip=0}if(obj){var l=obj.length;if(typeof l!="number"){if(typeof MochiKit.Iter!="undefined"){obj=MochiKit.Iter.list(obj);l=obj.length}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present")}}if(!self){self=[]}for(var i=skip;i<l;i++){self.push(obj[i])}}return self},updatetree:function(self,obj){if(self===null){self={}}for(var i=1;i<arguments.length;i++){var o=arguments[i];if(typeof o!="undefined"&&o!==null){for(var k in o){var v=o[k];if(typeof self[k]=="object"&&typeof v=="object"){arguments.callee(self[k],v)}else{self[k]=v}}}}return self},setdefault:function(self,obj){if(self===null){self={}}for(var i=1;i<arguments.length;i++){var o=arguments[i];for(var k in o){if(!(k in self)){self[k]=o[k]}}}return self},keys:function(obj){var rval=[];for(var prop in obj){if(typeof obj[prop]!="function")rval.push(prop)}return rval},items:function(obj){var rval=[];var e;for(var prop in obj){var v;try{v=obj[prop]}catch(e){continue}if(typeof v!="function")rval.push([prop,v])}return rval},_newNamedError:function(module,name,func){func.prototype=new MochiKit.Base.NamedError(module.NAME+"."+name);module[name]=func},operator:{truth:function(a){return!!a},lognot:function(a){return!a},identity:function(a){return a},not:function(a){return~a},neg:function(a){return-a},add:function(a,b){return a+b},sub:function(a,b){return a-b},div:function(a,b){return a/b},mod:function(a,b){return a%b},mul:function(a,b){return a*b},and:function(a,b){return a&b},or:function(a,b){return a|b},xor:function(a,b){return a^b},lshift:function(a,b){return a<<b},rshift:function(a,b){return a>>b},zrshift:function(a,b){return a>>>b},eq:function(a,b){return a==b},ne:function(a,b){return a!=b},gt:function(a,b){return a>b},ge:function(a,b){return a>=b},lt:function(a,b){return a<b},le:function(a,b){return a<=b},ceq:function(a,b){return MochiKit.Base.compare(a,b)===0},cne:function(a,b){return MochiKit.Base.compare(a,b)!==0},cgt:function(a,b){return MochiKit.Base.compare(a,b)==1},cge:function(a,b){return MochiKit.Base.compare(a,b)!=-1},clt:function(a,b){return MochiKit.Base.compare(a,b)==-1},cle:function(a,b){return MochiKit.Base.compare(a,b)!=1},logand:function(a,b){return a&&b},logor:function(a,b){return a||b},contains:function(a,b){return b in a}},forwardCall:function(func){return function(){return this[func].apply(this,arguments)}},itemgetter:function(func){return function(arg){return arg[func]}},typeMatcher:function(){var types={};for(var i=0;i<arguments.length;i++){var typ=arguments[i];types[typ]=typ}return function(){for(var i=0;i<arguments.length;i++){if(!(typeof arguments[i]in types)){return false}}return true}},isNull:function(){for(var i=0;i<arguments.length;i++){if(arguments[i]!==null){return false}}return true},isUndefinedOrNull:function(){for(var i=0;i<arguments.length;i++){var o=arguments[i];if(!(typeof o=="undefined"||o===null)){return false}}return true},isEmpty:function(obj){return!MochiKit.Base.isNotEmpty.apply(this,arguments)},isNotEmpty:function(obj){for(var i=0;i<arguments.length;i++){var o=arguments[i];if(!(o&&o.length)){return false}}return true},isArrayLike:function(){for(var i=0;i<arguments.length;i++){var o=arguments[i];var typ=typeof o;if(typ!="object"&&!(typ=="function"&&typeof o.item=="function")||o===null||typeof o.length!="number"){return false}}return true},isDateLike:function(){for(var i=0;i<arguments.length;i++){var o=arguments[i];if(typeof o!="object"||o===null||typeof o.getTime!="function"){return false}}return true},xmap:function(fn){if(fn===null){return MochiKit.Base.extend(null,arguments,1)}var rval=[];for(var i=1;i<arguments.length;i++){rval.push(fn(arguments[i]))}return rval},map:function(fn,lst){var m=MochiKit.Base;var itr=MochiKit.Iter;var isArrayLike=m.isArrayLike;if(arguments.length<=2){if(!isArrayLike(lst)){if(itr){lst=itr.list(lst);if(fn===null){return lst}}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present")}}if(fn===null){return m.extend(null,lst)}var rval=[];for(var i=0;i<lst.length;i++){rval.push(fn(lst[i]))}return rval}else{if(fn===null){fn=Array}var length=null;for(i=1;i<arguments.length;i++){if(!isArrayLike(arguments[i])){if(itr){return itr.list(itr.imap.apply(null,arguments))}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present")}}var l=arguments[i].length;if(length===null||length>l){length=l}}rval=[];for(i=0;i<length;i++){var args=[];for(var j=1;j<arguments.length;j++){args.push(arguments[j][i])}rval.push(fn.apply(this,args))}return rval}},xfilter:function(fn){var rval=[];if(fn===null){fn=MochiKit.Base.operator.truth}for(var i=1;i<arguments.length;i++){var o=arguments[i];if(fn(o)){rval.push(o)}}return rval},filter:function(fn,lst,self){var rval=[];var m=MochiKit.Base;if(!m.isArrayLike(lst)){if(MochiKit.Iter){lst=MochiKit.Iter.list(lst)}else{throw new TypeError("Argument not an array-like and MochiKit.Iter not present")}}if(fn===null){fn=m.operator.truth}if(typeof Array.prototype.filter=="function"){return Array.prototype.filter.call(lst,fn,self)}else if(typeof self=="undefined"||self===null){for(var i=0;i<lst.length;i++){var o=lst[i];if(fn(o)){rval.push(o)}}}else{for(i=0;i<lst.length;i++){o=lst[i];if(fn.call(self,o)){rval.push(o)}}}return rval},_wrapDumbFunction:function(func){return function(){switch(arguments.length){case 0:return func();case 1:return func(arguments[0]);case 2:return func(arguments[0],arguments[1]);case 3:return func(arguments[0],arguments[1],arguments[2])}var args=[];for(var i=0;i<arguments.length;i++){args.push("arguments["+i+"]")}return eval("(func("+args.join(",")+"))")}},method:function(self,func){var m=MochiKit.Base;return m.bind.apply(this,m.extend([func,self],arguments,2))},bind:function(func,self){if(typeof func=="string"){func=self[func]}var im_func=func.im_func;var im_preargs=func.im_preargs;var im_self=func.im_self;var m=MochiKit.Base;if(typeof func=="function"&&typeof func.apply=="undefined"){func=m._wrapDumbFunction(func)}if(typeof im_func!="function"){im_func=func}if(typeof self!="undefined"){im_self=self}if(typeof im_preargs=="undefined"){im_preargs=[]}else{im_preargs=im_preargs.slice()}m.extend(im_preargs,arguments,2);var newfunc=function(){var args=arguments;var me=arguments.callee;if(me.im_preargs.length>0){args=m.concat(me.im_preargs,args)}var self=me.im_self;if(!self){self=this}return me.im_func.apply(self,args)};newfunc.im_self=im_self;newfunc.im_func=im_func;newfunc.im_preargs=im_preargs;return newfunc},bindMethods:function(self){var bind=MochiKit.Base.bind;for(var k in self){var func=self[k];if(typeof func=="function"){self[k]=bind(func,self)}}},registerComparator:function(name,check,comparator,override){MochiKit.Base.comparatorRegistry.register(name,check,comparator,override)},_primitives:{boolean:true,string:true,number:true},compare:function(a,b){if(a==b){return 0}var aIsNull=typeof a=="undefined"||a===null||isNaN(a);var bIsNull=typeof b=="undefined"||b===null||isNaN(b);if(aIsNull&&bIsNull){return 0}else if(aIsNull){return-1}else if(bIsNull){return-1}var m=MochiKit.Base;var prim=m._primitives;if(!(typeof a in prim&&typeof b in prim)){try{return m.comparatorRegistry.match(a,b)}catch(e){if(e!=m.NotFound){throw e}}}if(a<b){return-1}else if(a>b){return 1}var repr=m.repr;throw new TypeError(repr(a)+" and "+repr(b)+" can not be compared")},compareDateLike:function(a,b){return MochiKit.Base.compare(a.getTime(),b.getTime())},compareArrayLike:function(a,b){var compare=MochiKit.Base.compare;var count=a.length;var rval=0;if(count>b.length){rval=1;count=b.length}else if(count<b.length){rval=-1}for(var i=0;i<count;i++){var cmp=compare(a[i],b[i]);if(cmp){return cmp}}return rval},registerRepr:function(name,check,wrap,override){MochiKit.Base.reprRegistry.register(name,check,wrap,override)},repr:function(o){if(typeof o=="undefined"){return"undefined"}else if(o===null){return"null"}try{if(typeof o.__repr__=="function"){return o.__repr__()}else if(typeof o.repr=="function"&&o.repr!=arguments.callee){return o.repr()}return MochiKit.Base.reprRegistry.match(o)}catch(e){if(typeof o.NAME=="string"&&(o.toString==Function.prototype.toString||o.toString==Object.prototype.toString)){return o.NAME}}try{var ostring=o+""}catch(e){return"["+typeof o+"]"}if(typeof o=="function"){o=ostring.replace(/^\s+/,"");var idx=o.indexOf("{");if(idx!=-1){o=o.substr(0,idx)+"{...}"}}return ostring},reprArrayLike:function(o){var m=MochiKit.Base;return"["+m.map(m.repr,o).join(", ")+"]"},reprString:function(o){return('"'+o.replace(/(["\\])/g,"\\$1")+'"').replace(/[\f]/g,"\\f").replace(/[\b]/g,"\\b").replace(/[\n]/g,"\\n").replace(/[\t]/g,"\\t").replace(/[\r]/g,"\\r")},reprNumber:function(o){return o+""},registerJSON:function(name,check,wrap,override){MochiKit.Base.jsonRegistry.register(name,check,wrap,override)},evalJSON:function(){return eval("("+arguments[0]+")")},serializeJSON:function(o){var objtype=typeof o;if(objtype=="undefined"){return"undefined"}else if(objtype=="number"||objtype=="boolean"){return o+""}else if(o===null){return"null"}var m=MochiKit.Base;var reprString=m.reprString;if(objtype=="string"){return reprString(o)}var me=arguments.callee;var newObj;if(typeof o.__json__=="function"){newObj=o.__json__();if(o!==newObj){return me(newObj)}}if(typeof o.json=="function"){newObj=o.json();if(o!==newObj){return me(newObj)}}if(objtype!="function"&&typeof o.length=="number"){var res=[];for(var i=0;i<o.length;i++){var val=me(o[i]);if(typeof val!="string"){val="undefined"}res.push(val)}return"["+res.join(", ")+"]"}try{newObj=m.jsonRegistry.match(o);return me(newObj)}catch(e){if(e!=m.NotFound){throw e}}if(objtype=="function"){return null}res=[];for(var k in o){var useKey;if(typeof k=="number"){useKey='"'+k+'"'}else if(typeof k=="string"){useKey=reprString(k)}else{continue}val=me(o[k]);if(typeof val!="string"){continue}res.push(useKey+":"+val)}return"{"+res.join(", ")+"}"},objEqual:function(a,b){return MochiKit.Base.compare(a,b)===0},arrayEqual:function(self,arr){if(self.length!=arr.length){return false}return MochiKit.Base.compare(self,arr)===0},concat:function(){var rval=[];var extend=MochiKit.Base.extend;for(var i=0;i<arguments.length;i++){extend(rval,arguments[i])}return rval},keyComparator:function(key){var m=MochiKit.Base;var compare=m.compare;if(arguments.length==1){return function(a,b){return compare(a[key],b[key])}}var compareKeys=m.extend(null,arguments);return function(a,b){var rval=0;for(var i=0;rval===0&&i<compareKeys.length;i++){var key=compareKeys[i];rval=compare(a[key],b[key])}return rval}},reverseKeyComparator:function(key){var comparator=MochiKit.Base.keyComparator.apply(this,arguments);return function(a,b){return comparator(b,a)}},partial:function(func){var m=MochiKit.Base;return m.bind.apply(this,m.extend([func,undefined],arguments,1))},listMinMax:function(which,lst){if(lst.length===0){return null}var cur=lst[0];var compare=MochiKit.Base.compare;for(var i=1;i<lst.length;i++){var o=lst[i];if(o!=null&&!isNaN(o)&&compare(o,cur)==which){cur=o}}return cur},objMax:function(){return MochiKit.Base.listMinMax(1,arguments)},objMin:function(){return MochiKit.Base.listMinMax(-1,arguments)},findIdentical:function(lst,value,start,end){if(typeof end=="undefined"||end===null){end=lst.length}for(var i=start||0;i<end;i++){if(lst[i]===value){return i}}return-1},findValue:function(lst,value,start,end){if(typeof end=="undefined"||end===null){end=lst.length}var cmp=MochiKit.Base.compare;for(var i=start||0;i<end;i++){if(cmp(lst[i],value)===0){return i}}return-1},nodeWalk:function(node,visitor){var nodes=[node];var extend=MochiKit.Base.extend;while(nodes.length){var res=visitor(nodes.shift());if(res){extend(nodes,res)}}},nameFunctions:function(namespace){var base=namespace.NAME;if(typeof base=="undefined"){base=""}else{base=base+"."}for(var name in namespace){var o=namespace[name];if(typeof o=="function"&&typeof o.NAME=="undefined"){try{o.NAME=base+name}catch(e){}}}},queryString:function(names,values){if(typeof MochiKit.DOM!="undefined"&&arguments.length==1&&(typeof names=="string"||typeof names.nodeType!="undefined"&&names.nodeType>0)){var kv=MochiKit.DOM.formContents(names);names=kv[0];values=kv[1]}else if(arguments.length==1){var o=names;names=[];values=[];for(var k in o){var v=o[k];if(typeof v!="function"){names.push(k);values.push(v)}}}var rval=[];var len=Math.min(names.length,values.length);var urlEncode=MochiKit.Base.urlEncode;for(var i=0;i<len;i++){v=values[i];if(typeof v!="undefined"&&v!==null){rval.push(urlEncode(names[i])+"="+urlEncode(v))}}return rval.join("&")},parseQueryString:function(encodedString,useArrays){var pairs=encodedString.replace(/\+/g,"%20").split("&");var o={};var decode;if(typeof decodeURIComponent!="undefined"){decode=decodeURIComponent}else{decode=unescape}if(useArrays){for(var i=0;i<pairs.length;i++){var pair=pairs[i].split("=");var name=decode(pair[0]);var arr=o[name];if(!(arr instanceof Array)){arr=[];o[name]=arr}arr.push(decode(pair[1]))}}else{for(i=0;i<pairs.length;i++){pair=pairs[i].split("=");o[decode(pair[0])]=decode(pair[1])}}return o}});MochiKit.Base.AdapterRegistry=function(){this.pairs=[]};MochiKit.Base.AdapterRegistry.prototype={register:function(name,check,wrap,override){if(override){this.pairs.unshift([name,check,wrap])}else{this.pairs.push([name,check,wrap])}},match:function(){for(var i=0;i<this.pairs.length;i++){var pair=this.pairs[i];if(pair[1].apply(this,arguments)){return pair[2].apply(this,arguments)}}throw MochiKit.Base.NotFound},unregister:function(name){for(var i=0;i<this.pairs.length;i++){var pair=this.pairs[i];if(pair[0]==name){this.pairs.splice(i,1);return true}}return false}};MochiKit.Base.EXPORT=["counter","clone","extend","update","updatetree","setdefault","keys","items","NamedError","operator","forwardCall","itemgetter","typeMatcher","isCallable","isUndefined","isUndefinedOrNull","isNull","isEmpty","isNotEmpty","isArrayLike","isDateLike","xmap","map","xfilter","filter","bind","bindMethods","NotFound","AdapterRegistry","registerComparator","compare","registerRepr","repr","objEqual","arrayEqual","concat","keyComparator","reverseKeyComparator","partial","merge","listMinMax","listMax","listMin","objMax","objMin","nodeWalk","zip","urlEncode","queryString","serializeJSON","registerJSON","evalJSON","parseQueryString","findValue","findIdentical","flattenArguments","method"];MochiKit.Base.EXPORT_OK=["nameFunctions","comparatorRegistry","reprRegistry","jsonRegistry","compareDateLike","compareArrayLike","reprArrayLike","reprString","reprNumber"];MochiKit.Base._exportSymbols=function(globals,module){if(typeof MochiKit.__export__=="undefined"){MochiKit.__export__=MochiKit.__compat__||typeof JSAN=="undefined"&&typeof dojo=="undefined"}if(!MochiKit.__export__){return}var all=module.EXPORT_TAGS[":all"];for(var i=0;i<all.length;i++){globals[all[i]]=module[all[i]]}};MochiKit.Base.__new__=function(){var m=this;m.forward=m.forwardCall;m.find=m.findValue;if(typeof encodeURIComponent!="undefined"){m.urlEncode=function(unencoded){return encodeURIComponent(unencoded).replace(/\'/g,"%27")}}else{m.urlEncode=function(unencoded){return escape(unencoded).replace(/\+/g,"%2B").replace(/\"/g,"%22").rval.replace(/\'/g,"%27")}}m.NamedError=function(name){this.message=name;this.name=name};m.NamedError.prototype=new Error;m.update(m.NamedError.prototype,{repr:function(){if(this.message&&this.message!=this.name){return this.name+"("+m.repr(this.message)+")"}else{return this.name+"()"}},toString:m.forwardCall("repr")});m.NotFound=new m.NamedError("MochiKit.Base.NotFound");m.listMax=m.partial(m.listMinMax,1);m.listMin=m.partial(m.listMinMax,-1);m.isCallable=m.typeMatcher("function");m.isUndefined=m.typeMatcher("undefined");m.merge=m.partial(m.update,null);m.zip=m.partial(m.map,null);m.comparatorRegistry=new m.AdapterRegistry;m.registerComparator("dateLike",m.isDateLike,m.compareDateLike);m.registerComparator("arrayLike",m.isArrayLike,m.compareArrayLike);m.reprRegistry=new m.AdapterRegistry;m.registerRepr("arrayLike",m.isArrayLike,m.reprArrayLike);m.registerRepr("string",m.typeMatcher("string"),m.reprString);m.registerRepr("numbers",m.typeMatcher("number","boolean"),m.reprNumber);m.jsonRegistry=new m.AdapterRegistry;var all=m.concat(m.EXPORT,m.EXPORT_OK);m.EXPORT_TAGS={":common":m.concat(m.EXPORT_OK),":all":all};m.nameFunctions(this)};MochiKit.Base.__new__();if(!MochiKit.__compat__){compare=MochiKit.Base.compare}MochiKit.Base._exportSymbols(this,MochiKit.Base);if(typeof dojo!="undefined"){dojo.provide("MochiKit.Iter");dojo.require("MochiKit.Base")}if(typeof JSAN!="undefined"){JSAN.use("MochiKit.Base",[])}try{if(typeof MochiKit.Base=="undefined"){throw""}}catch(e){throw"MochiKit.Iter depends on MochiKit.Base!"}if(typeof MochiKit.Iter=="undefined"){MochiKit.Iter={}}MochiKit.Iter.NAME="MochiKit.Iter";MochiKit.Iter.VERSION="1.3.1";MochiKit.Base.update(MochiKit.Iter,{__repr__:function(){return"["+this.NAME+" "+this.VERSION+"]"},toString:function(){return this.__repr__()},registerIteratorFactory:function(name,check,iterfactory,override){MochiKit.Iter.iteratorRegistry.register(name,check,iterfactory,override)},iter:function(iterable,sentinel){var self=MochiKit.Iter;if(arguments.length==2){return self.takewhile(function(a){return a!=sentinel},iterable)}if(typeof iterable.next=="function"){return iterable}else if(typeof iterable.iter=="function"){return iterable.iter()}try{return self.iteratorRegistry.match(iterable)}catch(e){var m=MochiKit.Base;if(e==m.NotFound){e=new TypeError(typeof iterable+": "+m.repr(iterable)+" is not iterable")}throw e}},count:function(n){if(!n){n=0}var m=MochiKit.Base;return{repr:function(){return"count("+n+")"},toString:m.forwardCall("repr"),next:m.counter(n)}},cycle:function(p){var self=MochiKit.Iter;var m=MochiKit.Base;var lst=[];var iterator=self.iter(p);return{repr:function(){return"cycle(...)"},toString:m.forwardCall("repr"),next:function(){try{var rval=iterator.next();lst.push(rval);return rval}catch(e){if(e!=self.StopIteration){throw e}if(lst.length===0){this.next=function(){throw self.StopIteration}}else{var i=-1;this.next=function(){i=(i+1)%lst.length;return lst[i]}}return this.next()}}}},repeat:function(elem,n){var m=MochiKit.Base;if(typeof n=="undefined"){return{repr:function(){return"repeat("+m.repr(elem)+")"},toString:m.forwardCall("repr"),next:function(){return elem}}}return{repr:function(){return"repeat("+m.repr(elem)+", "+n+")"},toString:m.forwardCall("repr"),next:function(){if(n<=0){throw MochiKit.Iter.StopIteration}n-=1;return elem}}},next:function(iterator){return iterator.next()},izip:function(p,q){var m=MochiKit.Base;var next=MochiKit.Iter.next;var iterables=m.map(iter,arguments);return{repr:function(){return"izip(...)"},toString:m.forwardCall("repr"),next:function(){return m.map(next,iterables)}}},ifilter:function(pred,seq){var m=MochiKit.Base;seq=MochiKit.Iter.iter(seq);if(pred===null){pred=m.operator.truth}return{repr:function(){return"ifilter(...)"},toString:m.forwardCall("repr"),next:function(){while(true){var rval=seq.next();if(pred(rval)){return rval}}return undefined}}},ifilterfalse:function(pred,seq){var m=MochiKit.Base;seq=MochiKit.Iter.iter(seq);if(pred===null){pred=m.operator.truth}return{repr:function(){return"ifilterfalse(...)"},toString:m.forwardCall("repr"),next:function(){while(true){var rval=seq.next();if(!pred(rval)){return rval}}return undefined}}},islice:function(seq){var self=MochiKit.Iter;var m=MochiKit.Base;seq=self.iter(seq);var start=0;var stop=0;var step=1;var i=-1;if(arguments.length==2){stop=arguments[1]}else if(arguments.length==3){start=arguments[1];stop=arguments[2]}else{start=arguments[1];stop=arguments[2];step=arguments[3]}return{repr:function(){return"islice("+["...",start,stop,step].join(", ")+")"},toString:m.forwardCall("repr"),next:function(){var rval;while(i<start){rval=seq.next();i++}if(start>=stop){throw self.StopIteration}start+=step;return rval}}},imap:function(fun,p,q){var m=MochiKit.Base;var self=MochiKit.Iter;var iterables=m.map(self.iter,m.extend(null,arguments,1));var map=m.map;var next=self.next;return{repr:function(){return"imap(...)"},toString:m.forwardCall("repr"),next:function(){return fun.apply(this,map(next,iterables))}}},applymap:function(fun,seq,self){seq=MochiKit.Iter.iter(seq)
;var m=MochiKit.Base;return{repr:function(){return"applymap(...)"},toString:m.forwardCall("repr"),next:function(){return fun.apply(self,seq.next())}}},chain:function(p,q){var self=MochiKit.Iter;var m=MochiKit.Base;if(arguments.length==1){return self.iter(arguments[0])}var argiter=m.map(self.iter,arguments);return{repr:function(){return"chain(...)"},toString:m.forwardCall("repr"),next:function(){while(argiter.length>1){try{return argiter[0].next()}catch(e){if(e!=self.StopIteration){throw e}argiter.shift()}}if(argiter.length==1){var arg=argiter.shift();this.next=m.bind("next",arg);return this.next()}throw self.StopIteration}}},takewhile:function(pred,seq){var self=MochiKit.Iter;seq=self.iter(seq);return{repr:function(){return"takewhile(...)"},toString:MochiKit.Base.forwardCall("repr"),next:function(){var rval=seq.next();if(!pred(rval)){this.next=function(){throw self.StopIteration};this.next()}return rval}}},dropwhile:function(pred,seq){seq=MochiKit.Iter.iter(seq);var m=MochiKit.Base;var bind=m.bind;return{repr:function(){return"dropwhile(...)"},toString:m.forwardCall("repr"),next:function(){while(true){var rval=seq.next();if(!pred(rval)){break}}this.next=bind("next",seq);return rval}}},_tee:function(ident,sync,iterable){sync.pos[ident]=-1;var m=MochiKit.Base;var listMin=m.listMin;return{repr:function(){return"tee("+ident+", ...)"},toString:m.forwardCall("repr"),next:function(){var rval;var i=sync.pos[ident];if(i==sync.max){rval=iterable.next();sync.deque.push(rval);sync.max+=1;sync.pos[ident]+=1}else{rval=sync.deque[i-sync.min];sync.pos[ident]+=1;if(i==sync.min&&listMin(sync.pos)!=sync.min){sync.min+=1;sync.deque.shift()}}return rval}}},tee:function(iterable,n){var rval=[];var sync={pos:[],deque:[],max:-1,min:-1};if(arguments.length==1){n=2}var self=MochiKit.Iter;iterable=self.iter(iterable);var _tee=self._tee;for(var i=0;i<n;i++){rval.push(_tee(i,sync,iterable))}return rval},list:function(iterable){var m=MochiKit.Base;if(typeof iterable.slice=="function"){return iterable.slice()}else if(m.isArrayLike(iterable)){return m.concat(iterable)}var self=MochiKit.Iter;iterable=self.iter(iterable);var rval=[];try{while(true){rval.push(iterable.next())}}catch(e){if(e!=self.StopIteration){throw e}return rval}return undefined},reduce:function(fn,iterable,initial){var i=0;var x=initial;var self=MochiKit.Iter;iterable=self.iter(iterable);if(arguments.length<3){try{x=iterable.next()}catch(e){if(e==self.StopIteration){e=new TypeError("reduce() of empty sequence with no initial value")}throw e}i++}try{while(true){x=fn(x,iterable.next())}}catch(e){if(e!=self.StopIteration){throw e}}return x},range:function(){var start=0;var stop=0;var step=1;if(arguments.length==1){stop=arguments[0]}else if(arguments.length==2){start=arguments[0];stop=arguments[1]}else if(arguments.length==3){start=arguments[0];stop=arguments[1];step=arguments[2]}else{throw new TypeError("range() takes 1, 2, or 3 arguments!")}if(step===0){throw new TypeError("range() step must not be 0")}return{next:function(){if(step>0&&start>=stop||step<0&&start<=stop){throw MochiKit.Iter.StopIteration}var rval=start;start+=step;return rval},repr:function(){return"range("+[start,stop,step].join(", ")+")"},toString:MochiKit.Base.forwardCall("repr")}},sum:function(iterable,start){var x=start||0;var self=MochiKit.Iter;iterable=self.iter(iterable);try{while(true){x+=iterable.next()}}catch(e){if(e!=self.StopIteration){throw e}}return x},exhaust:function(iterable){var self=MochiKit.Iter;iterable=self.iter(iterable);try{while(true){iterable.next()}}catch(e){if(e!=self.StopIteration){throw e}}},forEach:function(iterable,func,self){var m=MochiKit.Base;if(arguments.length>2){func=m.bind(func,self)}if(m.isArrayLike(iterable)){try{for(var i=0;i<iterable.length;i++){func(iterable[i])}}catch(e){if(e!=MochiKit.Iter.StopIteration){throw e}}}else{self=MochiKit.Iter;self.exhaust(self.imap(func,iterable))}},every:function(iterable,func){var self=MochiKit.Iter;try{self.ifilterfalse(func,iterable).next();return false}catch(e){if(e!=self.StopIteration){throw e}return true}},sorted:function(iterable,cmp){var rval=MochiKit.Iter.list(iterable);if(arguments.length==1){cmp=MochiKit.Base.compare}rval.sort(cmp);return rval},reversed:function(iterable){var rval=MochiKit.Iter.list(iterable);rval.reverse();return rval},some:function(iterable,func){var self=MochiKit.Iter;try{self.ifilter(func,iterable).next();return true}catch(e){if(e!=self.StopIteration){throw e}return false}},iextend:function(lst,iterable){if(MochiKit.Base.isArrayLike(iterable)){for(var i=0;i<iterable.length;i++){lst.push(iterable[i])}}else{var self=MochiKit.Iter;iterable=self.iter(iterable);try{while(true){lst.push(iterable.next())}}catch(e){if(e!=self.StopIteration){throw e}}}return lst},groupby:function(iterable,keyfunc){var m=MochiKit.Base;var self=MochiKit.Iter;if(arguments.length<2){keyfunc=m.operator.identity}iterable=self.iter(iterable);var pk=undefined;var k=undefined;var v;function fetch(){v=iterable.next();k=keyfunc(v)}function eat(){var ret=v;v=undefined;return ret}var first=true;return{repr:function(){return"groupby(...)"},next:function(){while(k==pk){fetch();if(first){first=false;break}}pk=k;return[k,{next:function(){if(v==undefined){fetch()}if(k!=pk){throw self.StopIteration}return eat()}}]}}},groupby_as_array:function(iterable,keyfunc){var m=MochiKit.Base;var self=MochiKit.Iter;if(arguments.length<2){keyfunc=m.operator.identity}iterable=self.iter(iterable);var result=[];var first=true;var prev_key;while(true){try{var value=iterable.next();var key=keyfunc(value)}catch(e){if(e==self.StopIteration){break}throw e}if(first||key!=prev_key){var values=[];result.push([key,values])}values.push(value);first=false;prev_key=key}return result},arrayLikeIter:function(iterable){var i=0;return{repr:function(){return"arrayLikeIter(...)"},toString:MochiKit.Base.forwardCall("repr"),next:function(){if(i>=iterable.length){throw MochiKit.Iter.StopIteration}return iterable[i++]}}},hasIterateNext:function(iterable){return iterable&&typeof iterable.iterateNext=="function"},iterateNextIter:function(iterable){return{repr:function(){return"iterateNextIter(...)"},toString:MochiKit.Base.forwardCall("repr"),next:function(){var rval=iterable.iterateNext();if(rval===null||rval===undefined){throw MochiKit.Iter.StopIteration}return rval}}}});MochiKit.Iter.EXPORT_OK=["iteratorRegistry","arrayLikeIter","hasIterateNext","iterateNextIter"];MochiKit.Iter.EXPORT=["StopIteration","registerIteratorFactory","iter","count","cycle","repeat","next","izip","ifilter","ifilterfalse","islice","imap","applymap","chain","takewhile","dropwhile","tee","list","reduce","range","sum","exhaust","forEach","every","sorted","reversed","some","iextend","groupby","groupby_as_array"];MochiKit.Iter.__new__=function(){var m=MochiKit.Base;this.StopIteration=new m.NamedError("StopIteration");this.iteratorRegistry=new m.AdapterRegistry;this.registerIteratorFactory("arrayLike",m.isArrayLike,this.arrayLikeIter);this.registerIteratorFactory("iterateNext",this.hasIterateNext,this.iterateNextIter);this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};m.nameFunctions(this)};MochiKit.Iter.__new__();if(!MochiKit.__compat__){reduce=MochiKit.Iter.reduce}MochiKit.Base._exportSymbols(this,MochiKit.Iter);if(typeof dojo!="undefined"){dojo.provide("MochiKit.Color");dojo.require("MochiKit.Base")}if(typeof JSAN!="undefined"){JSAN.use("MochiKit.Base",[])}try{if(typeof MochiKit.Base=="undefined"){throw""}}catch(e){throw"MochiKit.Color depends on MochiKit.Base"}if(typeof MochiKit.Color=="undefined"){MochiKit.Color={}}MochiKit.Color.NAME="MochiKit.Color";MochiKit.Color.VERSION="1.3.1";MochiKit.Color.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.Color.toString=function(){return this.__repr__()};MochiKit.Color.Color=function(red,green,blue,alpha){if(typeof alpha=="undefined"||alpha===null){alpha=1}this.rgb={r:red,g:green,b:blue,a:alpha}};MochiKit.Color.Color.prototype={__class__:MochiKit.Color.Color,colorWithAlpha:function(alpha){var rgb=this.rgb;var m=MochiKit.Color;return m.Color.fromRGB(rgb.r,rgb.g,rgb.b,alpha)},colorWithHue:function(hue){var hsl=this.asHSL();hsl.h=hue;var m=MochiKit.Color;return m.Color.fromHSL(hsl)},colorWithSaturation:function(saturation){var hsl=this.asHSL();hsl.s=saturation;var m=MochiKit.Color;return m.Color.fromHSL(hsl)},colorWithLightness:function(lightness){var hsl=this.asHSL();hsl.l=lightness;var m=MochiKit.Color;return m.Color.fromHSL(hsl)},darkerColorWithLevel:function(level){var hsl=this.asHSL();hsl.l=Math.max(hsl.l-level,0);var m=MochiKit.Color;return m.Color.fromHSL(hsl)},lighterColorWithLevel:function(level){var hsl=this.asHSL();hsl.l=Math.min(hsl.l+level,1);var m=MochiKit.Color;return m.Color.fromHSL(hsl)},blendedColor:function(other,fraction){if(typeof fraction=="undefined"||fraction===null){fraction=.5}var sf=1-fraction;var s=this.rgb;var d=other.rgb;var df=fraction;return MochiKit.Color.Color.fromRGB(s.r*sf+d.r*df,s.g*sf+d.g*df,s.b*sf+d.b*df,s.a*sf+d.a*df)},compareRGB:function(other){var a=this.asRGB();var b=other.asRGB();return MochiKit.Base.compare([a.r,a.g,a.b,a.a],[b.r,b.g,b.b,b.a])},isLight:function(){return this.asHSL().b>.5},isDark:function(){return!this.isLight()},toHSLString:function(){var c=this.asHSL();var ccc=MochiKit.Color.clampColorComponent;var rval=this._hslString;if(!rval){var mid=ccc(c.h,360).toFixed(0)+","+ccc(c.s,100).toPrecision(4)+"%"+","+ccc(c.l,100).toPrecision(4)+"%";var a=c.a;if(a>=1){a=1;rval="hsl("+mid+")"}else{if(a<=0){a=0}rval="hsla("+mid+","+a+")"}this._hslString=rval}return rval},toRGBString:function(){var c=this.rgb;var ccc=MochiKit.Color.clampColorComponent;var rval=this._rgbString;if(!rval){var mid=ccc(c.r,255).toFixed(0)+","+ccc(c.g,255).toFixed(0)+","+ccc(c.b,255).toFixed(0);if(c.a!=1){rval="rgba("+mid+","+c.a+")"}else{rval="rgb("+mid+")"}this._rgbString=rval}return rval},asRGB:function(){return MochiKit.Base.clone(this.rgb)},toHexString:function(){var m=MochiKit.Color;var c=this.rgb;var ccc=MochiKit.Color.clampColorComponent;var rval=this._hexString;if(!rval){rval="#"+m.toColorPart(ccc(c.r,255))+m.toColorPart(ccc(c.g,255))+m.toColorPart(ccc(c.b,255));this._hexString=rval}return rval},asHSV:function(){var hsv=this.hsv;var c=this.rgb;if(typeof hsv=="undefined"||hsv===null){hsv=MochiKit.Color.rgbToHSV(this.rgb);this.hsv=hsv}return MochiKit.Base.clone(hsv)},asHSL:function(){var hsl=this.hsl;var c=this.rgb;if(typeof hsl=="undefined"||hsl===null){hsl=MochiKit.Color.rgbToHSL(this.rgb);this.hsl=hsl}return MochiKit.Base.clone(hsl)},toString:function(){return this.toRGBString()},repr:function(){var c=this.rgb;var col=[c.r,c.g,c.b,c.a];return this.__class__.NAME+"("+col.join(", ")+")"}};MochiKit.Base.update(MochiKit.Color.Color,{fromRGB:function(red,green,blue,alpha){var Color=MochiKit.Color.Color;if(arguments.length==1){var rgb=red;red=rgb.r;green=rgb.g;blue=rgb.b;if(typeof rgb.a=="undefined"){alpha=undefined}else{alpha=rgb.a}}return new Color(red,green,blue,alpha)},fromHSL:function(hue,saturation,lightness,alpha){var m=MochiKit.Color;return m.Color.fromRGB(m.hslToRGB.apply(m,arguments))},fromHSV:function(hue,saturation,value,alpha){var m=MochiKit.Color;return m.Color.fromRGB(m.hsvToRGB.apply(m,arguments))},fromName:function(name){var Color=MochiKit.Color.Color;if(name.charAt(0)=='"'){name=name.substr(1,name.length-2)}var htmlColor=Color._namedColors[name.toLowerCase()];if(typeof htmlColor=="string"){return Color.fromHexString(htmlColor)}else if(name=="transparent"){return Color.transparentColor()}return null},fromString:function(colorString){var self=MochiKit.Color.Color;var three=colorString.substr(0,3);if(three=="rgb"){return self.fromRGBString(colorString)}else if(three=="hsl"){return self.fromHSLString(colorString)}else if(colorString.charAt(0)=="#"){return self.fromHexString(colorString)}return self.fromName(colorString)},fromHexString:function(hexCode){if(hexCode.charAt(0)=="#"){hexCode=hexCode.substring(1)}var components=[];var i,hex;if(hexCode.length==3){for(i=0;i<3;i++){hex=hexCode.substr(i,1);components.push(parseInt(hex+hex,16)/255)}}else{for(i=0;i<6;i+=2){hex=hexCode.substr(i,2);components.push(parseInt(hex,16)/255)}}var Color=MochiKit.Color.Color;return Color.fromRGB.apply(Color,components)},_fromColorString:function(pre,method,scales,colorCode){if(colorCode.indexOf(pre)===0){colorCode=colorCode.substring(colorCode.indexOf("(",3)+1,colorCode.length-1)}var colorChunks=colorCode.split(/\s*,\s*/);var colorFloats=[];for(var i=0;i<colorChunks.length;i++){var c=colorChunks[i];var val;var three=c.substring(c.length-3);if(c.charAt(c.length-1)=="%"){val=.01*parseFloat(c.substring(0,c.length-1))}else if(three=="deg"){val=parseFloat(c)/360}else if(three=="rad"){val=parseFloat(c)/(Math.PI*2)}else{val=scales[i]*parseFloat(c)}colorFloats.push(val)}return this[method].apply(this,colorFloats)},fromComputedStyle:function(elem,style,mozillaEquivalentCSS){var d=MochiKit.DOM;var cls=MochiKit.Color.Color;for(elem=d.getElement(elem);elem;elem=elem.parentNode){var actualColor=d.computedStyle.apply(d,arguments);if(!actualColor){continue}var color=cls.fromString(actualColor);if(!color){break}if(color.asRGB().a>0){return color}}return null},fromBackground:function(elem){var cls=MochiKit.Color.Color;return cls.fromComputedStyle(elem,"backgroundColor","background-color")||cls.whiteColor()},fromText:function(elem){var cls=MochiKit.Color.Color;return cls.fromComputedStyle(elem,"color","color")||cls.blackColor()},namedColors:function(){return MochiKit.Base.clone(MochiKit.Color.Color._namedColors)}});MochiKit.Base.update(MochiKit.Color,{clampColorComponent:function(v,scale){v*=scale;if(v<0){return 0}else if(v>scale){return scale}else{return v}},_hslValue:function(n1,n2,hue){if(hue>6){hue-=6}else if(hue<0){hue+=6}var val;if(hue<1){val=n1+(n2-n1)*hue}else if(hue<3){val=n2}else if(hue<4){val=n1+(n2-n1)*(4-hue)}else{val=n1}return val},hsvToRGB:function(hue,saturation,value,alpha){if(arguments.length==1){var hsv=hue;hue=hsv.h;saturation=hsv.s;value=hsv.v;alpha=hsv.a}var red;var green;var blue;if(saturation===0){red=0;green=0;blue=0}else{var i=Math.floor(hue*6);var f=hue*6-i;var p=value*(1-saturation);var q=value*(1-saturation*f);var t=value*(1-saturation*(1-f));switch(i){case 1:red=q;green=value;blue=p;break;case 2:red=p;green=value;blue=t;break;case 3:red=p;green=q;blue=value;break;case 4:red=t;green=p;blue=value;break;case 5:red=value;green=p;blue=q;break;case 6:case 0:red=value;green=t;blue=p;break}}return{r:red,g:green,b:blue,a:alpha}},hslToRGB:function(hue,saturation,lightness,alpha){if(arguments.length==1){var hsl=hue;hue=hsl.h;saturation=hsl.s;lightness=hsl.l;alpha=hsl.a}var red;var green;var blue;if(saturation===0){red=lightness;green=lightness;blue=lightness}else{var m2;if(lightness<=.5){m2=lightness*(1+saturation)}else{m2=lightness+saturation-lightness*saturation}var m1=2*lightness-m2;var f=MochiKit.Color._hslValue;var h6=hue*6;red=f(m1,m2,h6+2);green=f(m1,m2,h6);blue=f(m1,m2,h6-2)}return{r:red,g:green,b:blue,a:alpha}},rgbToHSV:function(red,green,blue,alpha){if(arguments.length==1){var rgb=red;red=rgb.r;green=rgb.g;blue=rgb.b;alpha=rgb.a}var max=Math.max(Math.max(red,green),blue);var min=Math.min(Math.min(red,green),blue);var hue;var saturation;var value=max;if(min==max){hue=0;saturation=0}else{var delta=max-min;saturation=delta/max;if(red==max){hue=(green-blue)/delta}else if(green==max){hue=2+(blue-red)/delta}else{hue=4+(red-green)/delta}hue/=6;if(hue<0){hue+=1}if(hue>1){hue-=1}}return{h:hue,s:saturation,v:value,a:alpha}},rgbToHSL:function(red,green,blue,alpha){if(arguments.length==1){var rgb=red;red=rgb.r;green=rgb.g;blue=rgb.b;alpha=rgb.a}var max=Math.max(red,Math.max(green,blue));var min=Math.min(red,Math.min(green,blue));var hue;var saturation;var lightness=(max+min)/2;var delta=max-min;if(delta===0){hue=0;saturation=0}else{if(lightness<=.5){saturation=delta/(max+min)}else{saturation=delta/(2-max-min)}if(red==max){hue=(green-blue)/delta}else if(green==max){hue=2+(blue-red)/delta}else{hue=4+(red-green)/delta}hue/=6;if(hue<0){hue+=1}if(hue>1){hue-=1}}return{h:hue,s:saturation,l:lightness,a:alpha}},toColorPart:function(num){num=Math.round(num);var digits=num.toString(16);if(num<16){return"0"+digits}return digits},__new__:function(){var m=MochiKit.Base;this.Color.fromRGBString=m.bind(this.Color._fromColorString,this.Color,"rgb","fromRGB",[1/255,1/255,1/255,1]);this.Color.fromHSLString=m.bind(this.Color._fromColorString,this.Color,"hsl","fromHSL",[1/360,.01,.01,1]);var third=1/3;var colors={black:[0,0,0],blue:[0,0,1],brown:[.6,.4,.2],cyan:[0,1,1],darkGray:[third,third,third],gray:[.5,.5,.5],green:[0,1,0],lightGray:[2*third,2*third,2*third],magenta:[1,0,1],orange:[1,.5,0],purple:[.5,0,.5],red:[1,0,0],transparent:[0,0,0,0],white:[1,1,1],yellow:[1,1,0]};var makeColor=function(name,r,g,b,a){var rval=this.fromRGB(r,g,b,a);this[name]=function(){return rval};return rval};for(var k in colors){var name=k+"Color";var bindArgs=m.concat([makeColor,this.Color,name],colors[k]);this.Color[name]=m.bind.apply(null,bindArgs)}var isColor=function(){for(var i=0;i<arguments.length;i++){if(!(arguments[i]instanceof Color)){return false}}return true};var compareColor=function(a,b){return a.compareRGB(b)};m.nameFunctions(this);m.registerComparator(this.Color.NAME,isColor,compareColor);this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}}});MochiKit.Color.EXPORT=["Color"];MochiKit.Color.EXPORT_OK=["clampColorComponent","rgbToHSL","hslToRGB","rgbToHSV","hsvToRGB","toColorPart"];MochiKit.Color.__new__();MochiKit.Base._exportSymbols(this,MochiKit.Color);MochiKit.Color.Color._namedColors={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkgrey:"#a9a9a9",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkslategrey:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dimgrey:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",grey:"#808080",honeydew:"#f0fff0",hotpink:"#ff69b4",indianred:"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgray:"#d3d3d3",lightgreen:"#90ee90",lightgrey:"#d3d3d3",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightslategrey:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370db",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#db7093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",slategrey:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};if(typeof dojo!="undefined"){dojo.provide("MochiKit.DOM");dojo.require("MochiKit.Iter")}if(typeof JSAN!="undefined"){JSAN.use("MochiKit.Iter",[])}try{if(typeof MochiKit.Iter=="undefined"){throw""}}catch(e){throw"MochiKit.DOM depends on MochiKit.Iter!"}if(typeof MochiKit.DOM=="undefined"){MochiKit.DOM={}}MochiKit.DOM.NAME="MochiKit.DOM";MochiKit.DOM.VERSION="1.3.1";MochiKit.DOM.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.DOM.toString=function(){return this.__repr__()};MochiKit.DOM.EXPORT=["formContents","currentWindow","currentDocument","withWindow","withDocument","registerDOMConverter","coerceToDOM","createDOM","createDOMFunc","getNodeAttribute","setNodeAttribute","updateNodeAttributes","appendChildNodes","replaceChildNodes","removeElement","swapDOM","BUTTON","TT","PRE","H1","H2","H3","BR","CANVAS","HR","LABEL","TEXTAREA","FORM","STRONG","SELECT","OPTION","OPTGROUP","LEGEND","FIELDSET","P","UL","OL","LI","TD","TR","THEAD","TBODY","TFOOT","TABLE","TH","INPUT","SPAN","A","DIV","IMG","getElement","computedStyle","getElementsByTagAndClassName","addToCallStack","addLoadEvent","focusOnLoad","setElementClass","toggleElementClass","addElementClass","removeElementClass","swapElementClass","hasElementClass","escapeHTML","toHTML","emitHTML","setDisplayForElement","hideElement","showElement","scrapeText","elementDimensions","elementPosition","setElementDimensions","setElementPosition","getViewportDimensions","setOpacity"];MochiKit.DOM.EXPORT_OK=["domConverters"];MochiKit.DOM.Dimensions=function(w,h){this.w=w;this.h=h};MochiKit.DOM.Dimensions.prototype.repr=function(){var repr=MochiKit.Base.repr;return"{w: "+repr(this.w)+", h: "+repr(this.h)+"}"};MochiKit.DOM.Coordinates=function(x,y){this.x=x;this.y=y};MochiKit.DOM.Coordinates.prototype.repr=function(){var repr=MochiKit.Base.repr;return"{x: "+repr(this.x)+", y: "+repr(this.y)+"}"};MochiKit.DOM.Coordinates.prototype.toString=function(){return this.repr()};MochiKit.Base.update(MochiKit.DOM,{setOpacity:function(elem,o){elem=MochiKit.DOM.getElement(elem);MochiKit.DOM.updateNodeAttributes(elem,{style:{opacity:o,"-moz-opacity":o,"-khtml-opacity":o,filter:" alpha(opacity="+o*100+")"}})},getViewportDimensions:function(){var d=new MochiKit.DOM.Dimensions;var w=MochiKit.DOM._window;var b=MochiKit.DOM._document.body;if(w.innerWidth){d.w=w.innerWidth;d.h=w.innerHeight}else if(b.parentElement.clientWidth){d.w=b.parentElement.clientWidth;d.h=b.parentElement.clientHeight}else if(b&&b.clientWidth){d.w=b.clientWidth;d.h=b.clientHeight}return d},elementDimensions:function(elem){var self=MochiKit.DOM;if(typeof elem.w=="number"||typeof elem.h=="number"){return new self.Dimensions(elem.w||0,elem.h||0)}elem=self.getElement(elem);if(!elem){return undefined}if(self.computedStyle(elem,"display")!="none"){return new self.Dimensions(elem.offsetWidth||0,elem.offsetHeight||0)}var s=elem.style;var originalVisibility=s.visibility;var originalPosition=s.position;s.visibility="hidden";s.position="absolute";s.display="";var originalWidth=elem.offsetWidth;var originalHeight=elem.offsetHeight;s.display="none";s.position=originalPosition;s.visibility=originalVisibility;return new self.Dimensions(originalWidth,originalHeight)},elementPosition:function(elem,relativeTo){var self=MochiKit.DOM;elem=self.getElement(elem);if(!elem){return undefined}var c=new self.Coordinates(0,0);if(elem.x&&elem.y){c.x+=elem.x||0;c.y+=elem.y||0;return c}else if(elem.parentNode===null||self.computedStyle(elem,"display")=="none"){return undefined}var box=null;var parent=null;var d=MochiKit.DOM._document;var de=d.documentElement;var b=d.body;if(elem.getBoundingClientRect){box=elem.getBoundingClientRect();c.x+=box.left+(de.scrollLeft||b.scrollLeft)-(de.clientLeft||b.clientLeft);c.y+=box.top+(de.scrollTop||b.scrollTop)-(de.clientTop||b.clientTop)}else if(d.getBoxObjectFor){box=d.getBoxObjectFor(elem);c.x+=box.x;c.y+=box.y}else if(elem.offsetParent){c.x+=elem.offsetLeft;c.y+=elem.offsetTop;parent=elem.offsetParent;if(parent!=elem){while(parent){c.x+=parent.offsetLeft;c.y+=parent.offsetTop;parent=parent.offsetParent}}var ua=navigator.userAgent.toLowerCase();if(typeof opera!="undefined"&&parseFloat(opera.version())<9||ua.indexOf("safari")!=-1&&self.computedStyle(elem,"position")=="absolute"){c.x-=b.offsetLeft;c.y-=b.offsetTop}}if(typeof relativeTo!="undefined"){relativeTo=arguments.callee(relativeTo);if(relativeTo){c.x-=relativeTo.x||0;c.y-=relativeTo.y||0}}if(elem.parentNode){parent=elem.parentNode}else{parent=null}while(parent&&parent.tagName!="BODY"&&parent.tagName!="HTML"){c.x-=parent.scrollLeft;c.y-=parent.scrollTop;if(parent.parentNode){parent=parent.parentNode}else{parent=null}}return c},setElementDimensions:function(elem,newSize,units){elem=MochiKit.DOM.getElement(elem);if(typeof units=="undefined"){units="px"}MochiKit.DOM.updateNodeAttributes(elem,{style:{width:newSize.w+units,height:newSize.h+units}})},setElementPosition:function(elem,newPos,units){elem=MochiKit.DOM.getElement(elem);if(typeof units=="undefined"){units="px"}MochiKit.DOM.updateNodeAttributes(elem,{style:{left:newPos.x+units,top:newPos.y+units}})},currentWindow:function(){return MochiKit.DOM._window},currentDocument:function(){return MochiKit.DOM._document},withWindow:function(win,func){var self=MochiKit.DOM;var oldDoc=self._document;var oldWin=self._win;var rval;try{self._window=win;self._document=win.document;rval=func()}catch(e){self._window=oldWin;self._document=oldDoc;throw e}self._window=oldWin;self._document=oldDoc;return rval},formContents:function(elem){var names=[];var values=[];var m=MochiKit.Base;var self=MochiKit.DOM;if(typeof elem=="undefined"||elem===null){elem=self._document}else{elem=self.getElement(elem)}m.nodeWalk(elem,function(elem){var name=elem.name;if(m.isNotEmpty(name)){var tagName=elem.nodeName;if(tagName=="INPUT"&&(elem.type=="radio"||elem.type=="checkbox")&&!elem.checked){return null}if(tagName=="SELECT"){if(elem.selectedIndex>=0){var opt=elem.options[elem.selectedIndex];names.push(name);values.push(opt.value?opt.value:opt.text);return null}names.push(name);values.push("");return null}if(tagName=="FORM"||tagName=="P"||tagName=="SPAN"||tagName=="DIV"){return elem.childNodes}names.push(name);values.push(elem.value||"");return null}return elem.childNodes});return[names,values]},withDocument:function(doc,func){var self=MochiKit.DOM;var oldDoc=self._document;var rval;try{self._document=doc;rval=func()}catch(e){self._document=oldDoc;throw e}self._document=oldDoc;return rval},registerDOMConverter:function(name,check,wrap,override){MochiKit.DOM.domConverters.register(name,check,wrap,override)},coerceToDOM:function(node,ctx){var im=MochiKit.Iter;var self=MochiKit.DOM;var iter=im.iter;var repeat=im.repeat;var imap=im.imap;var domConverters=self.domConverters;var coerceToDOM=self.coerceToDOM;var NotFound=MochiKit.Base.NotFound;while(true){if(typeof node=="undefined"||node===null){return null}if(typeof node.nodeType!="undefined"&&node.nodeType>0){return node}if(typeof node=="number"||typeof node=="boolean"){node=node.toString()}if(typeof node=="string"){return self._document.createTextNode(node)}if(typeof node.toDOM=="function"){node=node.toDOM(ctx);continue}if(typeof node=="function"){node=node(ctx);continue}var iterNodes=null;try{iterNodes=iter(node)}catch(e){}if(iterNodes){return imap(coerceToDOM,iterNodes,repeat(ctx))}try{node=domConverters.match(node,ctx);continue}catch(e){if(e!=NotFound){throw e}}return self._document.createTextNode(node.toString())}return undefined},setNodeAttribute:function(node,attr,value){var o={};o[attr]=value;try{return MochiKit.DOM.updateNodeAttributes(node,o)}catch(e){}return null},getNodeAttribute:function(node,attr){var self=MochiKit.DOM;var rename=self.attributeArray.renames[attr];node=self.getElement(node);try{if(rename){return node[rename]}return node.getAttribute(attr)}catch(e){}return null},updateNodeAttributes:function(node,attrs){var elem=node;var self=MochiKit.DOM;if(typeof node=="string"){elem=self.getElement(node)}if(attrs){var updatetree=MochiKit.Base.updatetree;if(self.attributeArray.compliant){for(var k in attrs){var v=attrs[k];if(typeof v=="object"&&typeof elem[k]=="object"){updatetree(elem[k],v)}else if(k.substring(0,2)=="on"){if(typeof v=="string"){v=new Function(v)}elem[k]=v}else{elem.setAttribute(k,v)}}}else{var renames=self.attributeArray.renames;for(k in attrs){v=attrs[k];var renamed=renames[k];if(k=="style"&&typeof v=="string"){elem.style.cssText=v}else if(typeof renamed=="string"){elem[renamed]=v}else if(typeof elem[k]=="object"&&typeof v=="object"){updatetree(elem[k],v)}else if(k.substring(0,2)=="on"){if(typeof v=="string"){v=new Function(v)}elem[k]=v}else{elem.setAttribute(k,v)}}}}return elem},appendChildNodes:function(node){var elem=node;var self=MochiKit.DOM;if(typeof node=="string"){elem=self.getElement(node)}var nodeStack=[self.coerceToDOM(MochiKit.Base.extend(null,arguments,1),elem)];var concat=MochiKit.Base.concat;while(nodeStack.length){var n=nodeStack.shift();if(typeof n=="undefined"||n===null){}else if(typeof n.nodeType=="number"){elem.appendChild(n)}else{nodeStack=concat(n,nodeStack)}}return elem},replaceChildNodes:function(node){var elem=node;var self=MochiKit.DOM;if(typeof node=="string"){elem=self.getElement(node);arguments[0]=elem}var child;while(child=elem.firstChild){elem.removeChild(child)}if(arguments.length<2){return elem}else{return self.appendChildNodes.apply(this,arguments)}},createDOM:function(name,attrs){var elem;var self=MochiKit.DOM;var m=MochiKit.Base;if(typeof attrs=="string"||typeof attrs=="number"){var args=m.extend([name,null],arguments,1);return arguments.callee.apply(this,args)}if(typeof name=="string"){if(attrs&&"name"in attrs&&!self.attributeArray.compliant){name="<"+name+' name="'+self.escapeHTML(attrs.name)+'">'}elem=self._document.createElement(name)}else{elem=name}if(attrs){self.updateNodeAttributes(elem,attrs)}if(arguments.length<=2){return elem}else{var args=m.extend([elem],arguments,2);return self.appendChildNodes.apply(this,args)}},createDOMFunc:function(){var m=MochiKit.Base;return m.partial.apply(this,m.extend([MochiKit.DOM.createDOM],arguments))},swapDOM:function(dest,src){var self=MochiKit.DOM;dest=self.getElement(dest);var parent=dest.parentNode;if(src){src=self.getElement(src);parent.replaceChild(src,dest)}else{parent.removeChild(dest)}return src},getElement:function(id){var self=MochiKit.DOM;if(arguments.length==1){return typeof id=="string"?self._document.getElementById(id):id}else{return MochiKit.Base.map(self.getElement,arguments)}},computedStyle:function(htmlElement,cssProperty,mozillaEquivalentCSS){if(arguments.length==2){mozillaEquivalentCSS=cssProperty}var self=MochiKit.DOM;var el=self.getElement(htmlElement);var document=self._document;if(!el||el==document){return undefined}if(el.currentStyle){return el.currentStyle[cssProperty]}if(typeof document.defaultView=="undefined"){return undefined}if(document.defaultView===null){return undefined}var style=document.defaultView.getComputedStyle(el,null);if(typeof style=="undefined"||style===null){return undefined}return style.getPropertyValue(mozillaEquivalentCSS)},getElementsByTagAndClassName:function(tagName,className,parent){var self=MochiKit.DOM;if(typeof tagName=="undefined"||tagName===null){tagName="*"}if(typeof parent=="undefined"||parent===null){parent=self._document}parent=self.getElement(parent);var children=parent.getElementsByTagName(tagName)||self._document.all
;if(typeof className=="undefined"||className===null){return MochiKit.Base.extend(null,children)}var elements=[];for(var i=0;i<children.length;i++){var child=children[i];var classNames=child.className.split(" ");for(var j=0;j<classNames.length;j++){if(classNames[j]==className){elements.push(child);break}}}return elements},_newCallStack:function(path,once){var rval=function(){var callStack=arguments.callee.callStack;for(var i=0;i<callStack.length;i++){if(callStack[i].apply(this,arguments)===false){break}}if(once){try{this[path]=null}catch(e){}}};rval.callStack=[];return rval},addToCallStack:function(target,path,func,once){var self=MochiKit.DOM;var existing=target[path];var regfunc=existing;if(!(typeof existing=="function"&&typeof existing.callStack=="object"&&existing.callStack!==null)){regfunc=self._newCallStack(path,once);if(typeof existing=="function"){regfunc.callStack.push(existing)}target[path]=regfunc}regfunc.callStack.push(func)},addLoadEvent:function(func){var self=MochiKit.DOM;self.addToCallStack(self._window,"onload",func,true)},focusOnLoad:function(element){var self=MochiKit.DOM;self.addLoadEvent(function(){element=self.getElement(element);if(element){element.focus()}})},setElementClass:function(element,className){var self=MochiKit.DOM;var obj=self.getElement(element);if(self.attributeArray.compliant){obj.setAttribute("class",className)}else{obj.setAttribute("className",className)}},toggleElementClass:function(className){var self=MochiKit.DOM;for(var i=1;i<arguments.length;i++){var obj=self.getElement(arguments[i]);if(!self.addElementClass(obj,className)){self.removeElementClass(obj,className)}}},addElementClass:function(element,className){var self=MochiKit.DOM;var obj=self.getElement(element);var cls=obj.className;if(cls.length===0){self.setElementClass(obj,className);return true}if(cls==className){return false}var classes=obj.className.split(" ");for(var i=0;i<classes.length;i++){if(classes[i]==className){return false}}self.setElementClass(obj,cls+" "+className);return true},removeElementClass:function(element,className){var self=MochiKit.DOM;var obj=self.getElement(element);var cls=obj.className;if(cls.length===0){return false}if(cls==className){self.setElementClass(obj,"");return true}var classes=obj.className.split(" ");for(var i=0;i<classes.length;i++){if(classes[i]==className){classes.splice(i,1);self.setElementClass(obj,classes.join(" "));return true}}return false},swapElementClass:function(element,fromClass,toClass){var obj=MochiKit.DOM.getElement(element);var res=MochiKit.DOM.removeElementClass(obj,fromClass);if(res){MochiKit.DOM.addElementClass(obj,toClass)}return res},hasElementClass:function(element,className){var obj=MochiKit.DOM.getElement(element);var classes=obj.className.split(" ");for(var i=1;i<arguments.length;i++){var good=false;for(var j=0;j<classes.length;j++){if(classes[j]==arguments[i]){good=true;break}}if(!good){return false}}return true},escapeHTML:function(s){return s.replace(/&/g,"&amp;").replace(/"/g,"&quot;").replace(/</g,"&lt;").replace(/>/g,"&gt;")},toHTML:function(dom){return MochiKit.DOM.emitHTML(dom).join("")},emitHTML:function(dom,lst){if(typeof lst=="undefined"||lst===null){lst=[]}var queue=[dom];var self=MochiKit.DOM;var escapeHTML=self.escapeHTML;var attributeArray=self.attributeArray;while(queue.length){dom=queue.pop();if(typeof dom=="string"){lst.push(dom)}else if(dom.nodeType==1){lst.push("<"+dom.nodeName.toLowerCase());var attributes=[];var domAttr=attributeArray(dom);for(var i=0;i<domAttr.length;i++){var a=domAttr[i];attributes.push([" ",a.name,'="',escapeHTML(a.value),'"'])}attributes.sort();for(i=0;i<attributes.length;i++){var attrs=attributes[i];for(var j=0;j<attrs.length;j++){lst.push(attrs[j])}}if(dom.hasChildNodes()){lst.push(">");queue.push("</"+dom.nodeName.toLowerCase()+">");var cnodes=dom.childNodes;for(i=cnodes.length-1;i>=0;i--){queue.push(cnodes[i])}}else{lst.push("/>")}}else if(dom.nodeType==3){lst.push(escapeHTML(dom.nodeValue))}}return lst},setDisplayForElement:function(display,element){var m=MochiKit.Base;var elements=m.extend(null,arguments,1);MochiKit.Iter.forEach(m.filter(null,m.map(MochiKit.DOM.getElement,elements)),function(element){element.style.display=display})},scrapeText:function(node,asArray){var rval=[];(function(node){var cn=node.childNodes;if(cn){for(var i=0;i<cn.length;i++){arguments.callee.call(this,cn[i])}}var nodeValue=node.nodeValue;if(typeof nodeValue=="string"){rval.push(nodeValue)}})(MochiKit.DOM.getElement(node));if(asArray){return rval}else{return rval.join("")}},__new__:function(win){var m=MochiKit.Base;this._document=document;this._window=win;this.domConverters=new m.AdapterRegistry;var __tmpElement=this._document.createElement("span");var attributeArray;if(__tmpElement&&__tmpElement.attributes&&__tmpElement.attributes.length>0){var filter=m.filter;attributeArray=function(node){return filter(attributeArray.ignoreAttrFilter,node.attributes)};attributeArray.ignoreAttr={};MochiKit.Iter.forEach(__tmpElement.attributes,function(a){attributeArray.ignoreAttr[a.name]=a.value});attributeArray.ignoreAttrFilter=function(a){return attributeArray.ignoreAttr[a.name]!=a.value};attributeArray.compliant=false;attributeArray.renames={class:"className",checked:"defaultChecked",usemap:"useMap",for:"htmlFor"}}else{attributeArray=function(node){return node.attributes};attributeArray.compliant=true;attributeArray.renames={}}this.attributeArray=attributeArray;var createDOMFunc=this.createDOMFunc;this.UL=createDOMFunc("ul");this.OL=createDOMFunc("ol");this.LI=createDOMFunc("li");this.TD=createDOMFunc("td");this.TR=createDOMFunc("tr");this.TBODY=createDOMFunc("tbody");this.THEAD=createDOMFunc("thead");this.TFOOT=createDOMFunc("tfoot");this.TABLE=createDOMFunc("table");this.TH=createDOMFunc("th");this.INPUT=createDOMFunc("input");this.SPAN=createDOMFunc("span");this.A=createDOMFunc("a");this.DIV=createDOMFunc("div");this.IMG=createDOMFunc("img");this.BUTTON=createDOMFunc("button");this.TT=createDOMFunc("tt");this.PRE=createDOMFunc("pre");this.H1=createDOMFunc("h1");this.H2=createDOMFunc("h2");this.H3=createDOMFunc("h3");this.BR=createDOMFunc("br");this.HR=createDOMFunc("hr");this.LABEL=createDOMFunc("label");this.TEXTAREA=createDOMFunc("textarea");this.FORM=createDOMFunc("form");this.P=createDOMFunc("p");this.SELECT=createDOMFunc("select");this.OPTION=createDOMFunc("option");this.OPTGROUP=createDOMFunc("optgroup");this.LEGEND=createDOMFunc("legend");this.FIELDSET=createDOMFunc("fieldset");this.STRONG=createDOMFunc("strong");this.CANVAS=createDOMFunc("canvas");this.hideElement=m.partial(this.setDisplayForElement,"none");this.showElement=m.partial(this.setDisplayForElement,"block");this.removeElement=this.swapDOM;this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)};m.nameFunctions(this)}});MochiKit.DOM.__new__(typeof window=="undefined"?this:window);if(!MochiKit.__compat__){withWindow=MochiKit.DOM.withWindow;withDocument=MochiKit.DOM.withDocument}MochiKit.Base._exportSymbols(this,MochiKit.DOM);if(typeof dojo!="undefined"){dojo.provide("MochiKit.Format")}if(typeof MochiKit=="undefined"){MochiKit={}}if(typeof MochiKit.Format=="undefined"){MochiKit.Format={}}MochiKit.Format.NAME="MochiKit.Format";MochiKit.Format.VERSION="1.3.1";MochiKit.Format.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.Format.toString=function(){return this.__repr__()};MochiKit.Format._numberFormatter=function(placeholder,header,footer,locale,isPercent,precision,leadingZeros,separatorAt,trailingZeros){return function(num){num=parseFloat(num);if(typeof num=="undefined"||num===null||isNaN(num)){return placeholder}var curheader=header;var curfooter=footer;if(num<0){num=-num}else{curheader=curheader.replace(/-/,"")}var me=arguments.callee;var fmt=MochiKit.Format.formatLocale(locale);if(isPercent){num=num*100;curfooter=fmt.percent+curfooter}num=MochiKit.Format.roundToFixed(num,precision);var parts=num.split(/\./);var whole=parts[0];var frac=parts.length==1?"":parts[1];var res="";while(whole.length<leadingZeros){whole="0"+whole}if(separatorAt){while(whole.length>separatorAt){var i=whole.length-separatorAt;res=fmt.separator+whole.substring(i,whole.length)+res;whole=whole.substring(0,i)}}res=whole+res;if(precision>0){while(frac.length<trailingZeros){frac=frac+"0"}res=res+fmt.decimal+frac}return curheader+res+curfooter}};MochiKit.Format.numberFormatter=function(pattern,placeholder,locale){if(typeof placeholder=="undefined"){placeholder=""}var match=pattern.match(/((?:[0#]+,)?[0#]+)(?:\.([0#]+))?(%)?/);if(!match){throw TypeError("Invalid pattern")}var header=pattern.substr(0,match.index);var footer=pattern.substr(match.index+match[0].length);if(header.search(/-/)==-1){header=header+"-"}var whole=match[1];var frac=typeof match[2]=="string"&&match[2]!=""?match[2]:"";var isPercent=typeof match[3]=="string"&&match[3]!="";var tmp=whole.split(/,/);var separatorAt;if(typeof locale=="undefined"){locale="default"}if(tmp.length==1){separatorAt=null}else{separatorAt=tmp[1].length}var leadingZeros=whole.length-whole.replace(/0/g,"").length;var trailingZeros=frac.length-frac.replace(/0/g,"").length;var precision=frac.length;var rval=MochiKit.Format._numberFormatter(placeholder,header,footer,locale,isPercent,precision,leadingZeros,separatorAt,trailingZeros);var m=MochiKit.Base;if(m){var fn=arguments.callee;var args=m.concat(arguments);rval.repr=function(){return[self.NAME,"(",map(m.repr,args).join(", "),")"].join("")}}return rval};MochiKit.Format.formatLocale=function(locale){if(typeof locale=="undefined"||locale===null){locale="default"}if(typeof locale=="string"){var rval=MochiKit.Format.LOCALE[locale];if(typeof rval=="string"){rval=arguments.callee(rval);MochiKit.Format.LOCALE[locale]=rval}return rval}else{return locale}};MochiKit.Format.twoDigitAverage=function(numerator,denominator){if(denominator){var res=numerator/denominator;if(!isNaN(res)){return MochiKit.Format.twoDigitFloat(numerator/denominator)}}return"0"};MochiKit.Format.twoDigitFloat=function(someFloat){var sign=someFloat<0?"-":"";var s=Math.floor(Math.abs(someFloat)*100).toString();if(s=="0"){return s}if(s.length<3){while(s.charAt(s.length-1)=="0"){s=s.substring(0,s.length-1)}return sign+"0."+s}var head=sign+s.substring(0,s.length-2);var tail=s.substring(s.length-2,s.length);if(tail=="00"){return head}else if(tail.charAt(1)=="0"){return head+"."+tail.charAt(0)}else{return head+"."+tail}};MochiKit.Format.lstrip=function(str,chars){str=str+"";if(typeof str!="string"){return null}if(!chars){return str.replace(/^\s+/,"")}else{return str.replace(new RegExp("^["+chars+"]+"),"")}};MochiKit.Format.rstrip=function(str,chars){str=str+"";if(typeof str!="string"){return null}if(!chars){return str.replace(/\s+$/,"")}else{return str.replace(new RegExp("["+chars+"]+$"),"")}};MochiKit.Format.strip=function(str,chars){var self=MochiKit.Format;return self.rstrip(self.lstrip(str,chars),chars)};MochiKit.Format.truncToFixed=function(aNumber,precision){aNumber=Math.floor(aNumber*Math.pow(10,precision));var res=(aNumber*Math.pow(10,-precision)).toFixed(precision);if(res.charAt(0)=="."){res="0"+res}return res};MochiKit.Format.roundToFixed=function(aNumber,precision){return MochiKit.Format.truncToFixed(aNumber+.5*Math.pow(10,-precision),precision)};MochiKit.Format.percentFormat=function(someFloat){return MochiKit.Format.twoDigitFloat(100*someFloat)+"%"};MochiKit.Format.EXPORT=["truncToFixed","roundToFixed","numberFormatter","formatLocale","twoDigitAverage","twoDigitFloat","percentFormat","lstrip","rstrip","strip"];MochiKit.Format.LOCALE={en_US:{separator:",",decimal:".",percent:"%"},de_DE:{separator:".",decimal:",",percent:"%"},fr_FR:{separator:" ",decimal:",",percent:"%"},default:"en_US"};MochiKit.Format.EXPORT_OK=[];MochiKit.Format.EXPORT_TAGS={":all":MochiKit.Format.EXPORT,":common":MochiKit.Format.EXPORT};MochiKit.Format.__new__=function(){var base=this.NAME+".";var k,v,o;for(k in this.LOCALE){o=this.LOCALE[k];if(typeof o=="object"){o.repr=function(){return this.NAME};o.NAME=base+"LOCALE."+k}}for(k in this){o=this[k];if(typeof o=="function"&&typeof o.NAME=="undefined"){try{o.NAME=base+k}catch(e){}}}};MochiKit.Format.__new__();if(typeof MochiKit.Base!="undefined"){MochiKit.Base._exportSymbols(this,MochiKit.Format)}else{(function(globals,module){if(typeof JSAN=="undefined"&&typeof dojo=="undefined"||typeof MochiKit.__compat__=="boolean"&&MochiKit.__compat__){var all=module.EXPORT_TAGS[":all"];for(var i=0;i<all.length;i++){globals[all[i]]=module[all[i]]}}})(this,MochiKit.Format)}if(typeof MochiKit=="undefined"){MochiKit={}}if(typeof MochiKit.MochiKit=="undefined"){MochiKit.MochiKit={}}MochiKit.MochiKit.NAME="MochiKit.MochiKit";MochiKit.MochiKit.VERSION="1.3.1";MochiKit.MochiKit.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};MochiKit.MochiKit.toString=function(){return this.__repr__()};MochiKit.MochiKit.SUBMODULES=[];if(typeof JSAN!="undefined"||typeof dojo!="undefined"){if(typeof dojo!="undefined"){dojo.provide("MochiKit.MochiKit");dojo.require("MochiKit.*")}if(typeof JSAN!="undefined"){JSAN.use("MochiKit.Base",[]);JSAN.use("MochiKit.Iter",[]);JSAN.use("MochiKit.Logging",[]);JSAN.use("MochiKit.DateTime",[]);JSAN.use("MochiKit.Format",[]);JSAN.use("MochiKit.Async",[]);JSAN.use("MochiKit.DOM",[]);JSAN.use("MochiKit.LoggingPane",[]);JSAN.use("MochiKit.Color",[]);JSAN.use("MochiKit.Signal",[]);JSAN.use("MochiKit.Visual",[])}(function(){var extend=MochiKit.Base.extend;var self=MochiKit.MochiKit;var modules=self.SUBMODULES;var EXPORT=[];var EXPORT_OK=[];var EXPORT_TAGS={};var i,k,m,all;for(i=0;i<modules.length;i++){m=MochiKit[modules[i]];extend(EXPORT,m.EXPORT);extend(EXPORT_OK,m.EXPORT_OK);for(k in m.EXPORT_TAGS){EXPORT_TAGS[k]=extend(EXPORT_TAGS[k],m.EXPORT_TAGS[k])}all=m.EXPORT_TAGS[":all"];if(!all){all=extend(null,m.EXPORT,m.EXPORT_OK)}var j;for(j=0;j<all.length;j++){k=all[j];self[k]=m[k]}}self.EXPORT=EXPORT;self.EXPORT_OK=EXPORT_OK;self.EXPORT_TAGS=EXPORT_TAGS})()}else{if(typeof MochiKit.__compat__=="undefined"){MochiKit.__compat__=true}(function(){var scripts=document.getElementsByTagName("script");var kXULNSURI="http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul";var base=null;var baseElem=null;var allScripts={};var i;for(i=0;i<scripts.length;i++){var src=scripts[i].getAttribute("src");if(!src){continue}allScripts[src]=true;if(src.match(/MochiKit.js$/)){base=src.substring(0,src.lastIndexOf("MochiKit.js"));baseElem=scripts[i]}}if(base===null){return}var modules=MochiKit.MochiKit.SUBMODULES;for(var i=0;i<modules.length;i++){if(MochiKit[modules[i]]){continue}var uri=base+modules[i]+".js";if(uri in allScripts){continue}if(document.documentElement&&document.documentElement.namespaceURI==kXULNSURI){var s=document.createElementNS(kXULNSURI,"script");s.setAttribute("id","MochiKit_"+base+modules[i]);s.setAttribute("src",uri);s.setAttribute("type","application/x-javascript");baseElem.parentNode.appendChild(s)}else{document.write('<script src="'+uri+'" type="text/javascript"><\/script>')}}})()}try{if(typeof MochiKit.Base=="undefined"||typeof MochiKit.DOM=="undefined"||typeof MochiKit.Color=="undefined"||typeof MochiKit.Format=="undefined"){throw""}}catch(e){throw"PlotKit depends on MochiKit.{Base,Color,DOM,Format}"}MochiKit.Base.update(MochiKit.Color.Color.prototype,{asFillColor:function(){return this.lighterColorWithLevel(.3)},asStrokeColor:function(){return this.darkerColorWithLevel(.1)},asPointColor:function(){return this.lighterColorWithLevel(.1)}});if(typeof PlotKit=="undefined"){PlotKit={}}PlotKit.NAME="PlotKit";PlotKit.VERSION="0.8";PlotKit.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};PlotKit.toString=function(){return this.__repr__()};if(typeof PlotKit.Base=="undefined"){PlotKit.Base={}}PlotKit.Base.NAME="PlotKit.Base";PlotKit.Base.VERSION=PlotKit.VERSION;PlotKit.Base.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};PlotKit.Base.toString=function(){return this.__repr__()};PlotKit.Base.usingPrototype=function(){try{return typeof Object.extend=="function"}catch(e){return false}};MochiKit.Base.update(PlotKit.Base,{roundInterval:function(range,intervals,precision){var trunc=MochiKit.Format.roundToFixed;var sep=range/intervals;return parseFloat(trunc(sep,precision))},collapse:function(lst){var m=MochiKit.Base;var biggerList=new Array;for(var i=0;i<lst.length;i++){biggerList=m.concat(biggerList,lst[i])}if(PlotKit.Base.usingPrototype()){delete biggerList.extend;delete biggerList.from;delete biggerList.inspect}return biggerList},uniq:function(sortedList){var m=MochiKit.Base;if(!m.isArrayLike(sortedList)||sortedList.length<1)return new Array;var uniq=new Array;var lastElem=sortedList[0];uniq.push(sortedList[0]);for(var i=1;i<sortedList.length;i++){if(sortedList[i]!=null&&m.compare(sortedList[i],lastElem)!=0){lastElem=sortedList[i];uniq.push(sortedList[i])}}return uniq},colorScheme:function(){var mb=MochiKit.Base;var mc=MochiKit.Color;var scheme=["red","orange","yellow","green","cyan","blue","purple","magenta"];var makeColor=function(name){return mc.Color[name+"Color"]()};return mb.map(makeColor,scheme)},baseDarkPrimaryColors:function(){var hexColor=MochiKit.Color.Color.fromHexString;return[hexColor("#ad3f40"),hexColor("#ddac2c"),hexColor("#dfdd0c"),hexColor("#5276c4"),hexColor("#739c5a")]},basePrimaryColors:function(){var hexColor=MochiKit.Color.Color.fromHexString;return[hexColor("#d24c4d"),hexColor("#f2b32f"),hexColor("#ece90e"),hexColor("#5d83da"),hexColor("#78a15d")]},baseBlueColors:function(){var hexColor=MochiKit.Color.Color.fromHexString;return[hexColor("#4b6b94"),hexColor("#5d81b4"),hexColor("#acbad2")]},palette:function(baseColor,fromLevel,toLevel,increment){var isNil=MochiKit.Base.isUndefinedOrNull;var fractions=new Array;if(isNil(increment))increment=.1;if(isNil(toLevel))toLevel=.4;if(isNil(fromLevel))fromLevel=-.2;var level=fromLevel;while(level<=toLevel){fractions.push(level);level+=increment}var makeColor=function(color,fraction){return color.lighterColorWithLevel(fraction)};return MochiKit.Base.map(MochiKit.Base.partial(makeColor,baseColor),fractions)},excanvasSupported:function(){if(/MSIE/.test(navigator.userAgent)&&!window.opera){return true}return false},findPosX:function(obj){var curleft=0;if(obj.offsetParent){while(obj.offsetParent){curleft+=obj.offsetLeft;obj=obj.offsetParent}}else if(obj.x)curleft+=obj.x;return curleft},findPosY:function(obj){var curtop=0;if(obj.offsetParent){while(obj.offsetParent){curtop+=obj.offsetTop;obj=obj.offsetParent}}else if(obj.y)curtop+=obj.y;return curtop},isFuncLike:function(obj){return typeof obj=="function"}});PlotKit.Base.map=function(fn,lst){if(PlotKit.Base.usingPrototype()){var rval=[];for(var x in lst){if(typeof lst[x]=="function")continue;rval.push(fn(lst[x]))}return rval}else{return MochiKit.Base.map(fn,lst)}};PlotKit.Base.items=function(lst){if(PlotKit.Base.usingPrototype()){var rval=[];for(var x in lst){if(typeof lst[x]=="function")continue;rval.push([x,lst[x]])}return rval}else{return MochiKit.Base.items(lst)}};PlotKit.Base.keys=function(lst){if(PlotKit.Base.usingPrototype()){var rval=[];for(var x in lst){if(typeof lst[x]=="function")continue;rval.push(x)}return rval}else{return MochiKit.Base.keys(lst)}};PlotKit.Base.baseColors=function(){var hexColor=MochiKit.Color.Color.fromHexString;return[hexColor("#476fb2"),hexColor("#be2c2b"),hexColor("#85b730"),hexColor("#734a99"),hexColor("#26a1c5"),hexColor("#fb8707"),hexColor("#000000")]};PlotKit.Base.officeBaseStyle={axisLineWidth:2,axisLabelColor:MochiKit.Color.Color.grayColor(),axisLineColor:MochiKit.Color.Color.grayColor(),backgroundLineColor:MochiKit.Color.Color.whiteColor(),padding:{top:5,bottom:10,left:30,right:30}};MochiKit.Base.update(PlotKit.Base,{officeBlue:function(){var r={colorScheme:PlotKit.Base.palette(PlotKit.Base.baseColors()[0]),backgroundColor:PlotKit.Base.baseColors()[0].lighterColorWithLevel(.45)};MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);return r},officeRed:function(){var r={colorScheme:PlotKit.Base.palette(PlotKit.Base.baseColors()[1]),backgroundColor:PlotKit.Base.baseColors()[1].lighterColorWithLevel(.5)};MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);return r},officeGreen:function(){var r={colorScheme:PlotKit.Base.palette(PlotKit.Base.baseColors()[2]),backgroundColor:PlotKit.Base.baseColors()[2].lighterColorWithLevel(.5)};MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);return r},officePurple:function(){var r={colorScheme:PlotKit.Base.palette(PlotKit.Base.baseColors()[3]),backgroundColor:PlotKit.Base.baseColors()[3].lighterColorWithLevel(.5)};MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);return r},officeCyan:function(){var r={colorScheme:PlotKit.Base.palette(PlotKit.Base.baseColors()[4]),backgroundColor:PlotKit.Base.baseColors()[4].lighterColorWithLevel(.5)};MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);return r},officeOrange:function(){var r={colorScheme:PlotKit.Base.palette(PlotKit.Base.baseColors()[5]),backgroundColor:PlotKit.Base.baseColors()[5].lighterColorWithLevel(.4)};MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);return r},officeBlack:function(){var r={colorScheme:PlotKit.Base.palette(PlotKit.Base.baseColors()[6],0,.6),backgroundColor:PlotKit.Base.baseColors()[6].lighterColorWithLevel(.9)};MochiKit.Base.update(r,PlotKit.Base.officeBaseStyle);return r}});PlotKit.Base.EXPORT=["baseColors","collapse","colorScheme","findPosX","findPosY","officeBaseStyle","officeBlue","officeRed","officeGreen","officePurple","officeCyan","officeOrange","officeBlack","roundInterval","uniq","isFuncLike","excanvasSupported"];PlotKit.Base.EXPORT_OK=[];PlotKit.Base.__new__=function(){var m=MochiKit.Base;m.nameFunctions(this);this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}};PlotKit.Base.__new__();MochiKit.Base._exportSymbols(this,PlotKit.Base);try{if(typeof PlotKit.Base=="undefined"){throw""}}catch(e){throw"PlotKit.Layout depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.Base"}if(typeof PlotKit.Layout=="undefined"){PlotKit.Layout={}}PlotKit.Layout.NAME="PlotKit.Layout";PlotKit.Layout.VERSION=PlotKit.VERSION;PlotKit.Layout.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};PlotKit.Layout.toString=function(){return this.__repr__()};PlotKit.Layout.valid_styles=["bar","line","pie","point"];PlotKit.Layout=function(style,options){this.options={barWidthFillFraction:.75,barOrientation:"vertical",xOriginIsZero:false,yOriginIsZero:false,xAxis:null,yAxis:null,xTicks:null,yTicks:null,xNumberOfTicks:10,yNumberOfTicks:5,xTickPrecision:1,yTickPrecision:1,pieRadius:.4};this.style=style;MochiKit.Base.update(this.options,options?options:{});if(!MochiKit.Base.isUndefinedOrNull(this.options.xAxis)){this.minxval=this.options.xAxis[0];this.maxxval=this.options.xAxis[1];this.xscale=this.maxxval-this.minxval}else{this.minxval=0;this.maxxval=null;this.xscale=null}if(!MochiKit.Base.isUndefinedOrNull(this.options.yAxis)){this.minyval=this.options.yAxis[0];this.maxyval=this.options.yAxis[1];this.yscale=this.maxyval-this.minyval}else{this.minyval=0;this.maxyval=null;this.yscale=null}this.bars=new Array;this.points=new Array;this.slices=new Array;this.xticks=new Array;this.yticks=new Array;this.datasets=new Array;this.minxdelta=0;this.xrange=1;this.yrange=1;this.hitTestCache={x2maxy:null}};PlotKit.Layout.prototype.addDataset=function(setname,set_xy){this.datasets[setname]=set_xy};PlotKit.Layout.prototype.removeDataset=function(setname,set_xy){delete this.datasets[setname]};PlotKit.Layout.prototype.addDatasetFromTable=function(name,tableElement,xcol,ycol,lcol){var isNil=MochiKit.Base.isUndefinedOrNull;var scrapeText=MochiKit.DOM.scrapeText;var strip=MochiKit.Format.strip;if(isNil(xcol))xcol=0;if(isNil(ycol))ycol=1;if(isNil(lcol))lcol=-1;var rows=tableElement.tBodies[0].rows;var data=new Array;var labels=new Array;if(!isNil(rows)){for(var i=0;i<rows.length;i++){data.push([parseFloat(strip(scrapeText(rows[i].cells[xcol]))),parseFloat(strip(scrapeText(rows[i].cells[ycol])))]);if(lcol>=0){labels.push({v:parseFloat(strip(scrapeText(rows[i].cells[xcol]))),label:strip(scrapeText(rows[i].cells[lcol]))})}}this.addDataset(name,data);if(lcol>=0){this.options.xTicks=labels}return true}return false};PlotKit.Layout.prototype.evaluate=function(){this._evaluateLimits();this._evaluateScales();if(this.style=="bar"){if(this.options.barOrientation=="horizontal"){this._evaluateHorizBarCharts()}else{this._evaluateBarCharts()}this._evaluateBarTicks()}else if(this.style=="line"){this._evaluateLineCharts();this._evaluateLineTicks()}else if(this.style=="pie"){this._evaluatePieCharts();this._evaluatePieTicks()}};PlotKit.Layout.prototype.hitTest=function(x,y){var f=MochiKit.Format.twoDigitFloat;if(this.style=="bar"&&this.bars&&this.bars.length>0){for(var i=0;i<this.bars.length;i++){var bar=this.bars[i];if(x>=bar.x&&x<=bar.x+bar.w&&y>=bar.y&&y-bar.y<=bar.h)return bar}}else if(this.style=="line"){if(this.hitTestCache.x2maxy==null){this._regenerateHitTestCache()}var xval=x/this.xscale;var xvalues=this.hitTestCache.xvalues;var xbefore=null;var xafter=null;for(var i=1;i<xvalues.length;i++){if(xvalues[i]>xval){xbefore=xvalues[i-1];xafter=xvalues[i];break}}if(xbefore!=null){var ybefore=this.hitTestCache.x2maxy[xbefore];var yafter=this.hitTestCache.x2maxy[xafter];var yval=(1-y)/this.yscale;var gradient=(yafter-ybefore)/(xafter-xbefore);var projmaxy=ybefore+gradient*(xval-xbefore);if(projmaxy>=yval){var obj={xval:xval,yval:yval,xafter:xafter,yafter:yafter,xbefore:xbefore,ybefore:ybefore,yprojected:projmaxy};return obj}}}else if(this.style=="pie"){var dist=Math.sqrt((y-.5)*(y-.5)+(x-.5)*(x-.5));if(dist>this.options.pieRadius)return null;var angle=Math.atan2(y-.5,x-.5)-Math.PI/2;for(var i=0;i<this.slices.length;i++){var slice=this.slices[i];if(slice.startAngle<angle&&slice.endAngle>=angle)return slice}}return null};PlotKit.Layout.prototype.rectForX=function(x){return null};PlotKit.Layout.prototype.angleRangeForX=function(x){return null};PlotKit.Layout.prototype._evaluateLimits=function(){var map=PlotKit.Base.map;var items=PlotKit.Base.items;var itemgetter=MochiKit.Base.itemgetter;var collapse=PlotKit.Base.collapse;var listMin=MochiKit.Base.listMin;var listMax=MochiKit.Base.listMax;var isNil=MochiKit.Base.isUndefinedOrNull;var all=collapse(map(itemgetter(1),items(this.datasets)));if(isNil(this.options.xAxis)){if(this.options.xOriginIsZero)this.minxval=0;else this.minxval=listMin(map(parseFloat,map(itemgetter(0),all)));this.maxxval=listMax(map(parseFloat,map(itemgetter(0),all)))}else{this.minxval=this.options.xAxis[0];this.maxxval=this.options.xAxis[1];this.xscale=this.maxval-this.minxval}if(isNil(this.options.yAxis)){if(this.options.yOriginIsZero)this.minyval=0;else{this.minyval=listMin(map(parseFloat,map(itemgetter(1),all)));if(this.minyval>0||isNaN(this.minyval)||this.minyval==null)this.minyval=0}this.maxyval=listMax(map(parseFloat,map(itemgetter(1),all)));if(this.maxyval<0)this.maxyval=0;else if(isNaN(this.maxyval)||this.maxyval==null||this.maxyval==0)this.maxyval=1;else this.maxyval+=(this.maxyval-this.minyval)*.05;if(this.minyval<0)this.minyval-=(this.maxyval-this.minyval)*.05}else{this.minyval=this.options.yAxis[0];this.maxyval=this.options.yAxis[1];this.yscale=this.maxyval-this.minyval}};PlotKit.Layout.prototype._evaluateScales=function(){var isNil=MochiKit.Base.isUndefinedOrNull;this.xrange=this.maxxval-this.minxval;if(this.xrange==0)this.xscale=1;else this.xscale=1/this.xrange;this.yrange=this.maxyval-this.minyval;if(this.yrange==0)this.yscale=1;else this.yscale=1/this.yrange};PlotKit.Layout.prototype._uniqueXValues=function(){var collapse=PlotKit.Base.collapse;var map=PlotKit.Base.map;var uniq=PlotKit.Base.uniq;var getter=MochiKit.Base.itemgetter;var items=PlotKit.Base.items;var xvalues=map(parseFloat,map(getter(0),collapse(map(getter(1),items(this.datasets)))));xvalues.sort(MochiKit.Base.compare);return uniq(xvalues)};PlotKit.Layout.prototype._evaluateBarCharts=function(){var items=PlotKit.Base.items;var setCount=items(this.datasets).length;var xdelta=1e7;var xvalues=this._uniqueXValues();for(var i=1;i<xvalues.length;i++){xdelta=Math.min(Math.abs(xvalues[i]-xvalues[i-1]),xdelta)}var barWidth=0;var barWidthForSet=0;var barMargin=0;if(xvalues.length==1){xdelta=1;this.xscale=1;this.minxval=xvalues[0];barWidth=1*this.options.barWidthFillFraction;barWidthForSet=barWidth/setCount;barMargin=(1-this.options.barWidthFillFraction)/2}else{if(this.xrange==1){this.xscale=.5}else if(this.xrange==2){this.xscale=1/3}else{this.xscale=(1-xdelta/this.xrange)/this.xrange}barWidth=xdelta*this.xscale*this.options.barWidthFillFraction;barWidthForSet=barWidth/setCount;barMargin=xdelta*this.xscale*(1-this.options.barWidthFillFraction)/2}this.minxdelta=xdelta;this.bars=new Array;var i=0;for(var setName in this.datasets){var dataset=this.datasets[setName];if(PlotKit.Base.isFuncLike(dataset))continue;for(var j=0;j<dataset.length;j++){var item=dataset[j];var rect={xval:parseFloat(item[0]),yval:parseFloat(item[1]),name:setName,w:barWidthForSet,x:(parseFloat(item[0])-this.minxval)*this.xscale+i*barWidthForSet+barMargin};if(parseFloat(item[1])>=0){rect.y=1-(parseFloat(item[1])-this.minyval)*this.yscale;rect.h=parseFloat(item[1])*this.yscale}else{rect.y=this.maxyval*this.yscale;rect.h=-parseFloat(item[1])*this.yscale}if(rect.x>=0&&rect.x<=1&&rect.y>=0&&rect.y<=1){this.bars.push(rect)}}i++}};PlotKit.Layout.prototype._evaluateHorizBarCharts=function(){var items=PlotKit.Base.items;var setCount=items(this.datasets).length;var xdelta=1e7;var xvalues=this._uniqueXValues();for(var i=1;i<xvalues.length;i++){xdelta=Math.min(Math.abs(xvalues[i]-xvalues[i-1]),xdelta)}var barWidth=0;var barWidthForSet=0;var barMargin=0;if(xvalues.length==1){xdelta=1;this.xscale=1;this.minxval=xvalues[0];barWidth=1*this.options.barWidthFillFraction;barWidthForSet=barWidth/setCount;barMargin=(1-this.options.barWidthFillFraction)/2}else{this.xscale=(1-xdelta/this.xrange)/this.xrange;barWidth=xdelta*this.xscale*this.options.barWidthFillFraction;barWidthForSet=barWidth/setCount;barMargin=xdelta*this.xscale*(1-this.options.barWidthFillFraction)/2}this.minxdelta=xdelta;this.bars=new Array;var i=0;for(var setName in this.datasets){var dataset=this.datasets[setName];if(PlotKit.Base.isFuncLike(dataset))continue;for(var j=0;j<dataset.length;j++){var item=dataset[j];var rect={y:(parseFloat(item[0])-this.minxval)*this.xscale+i*barWidthForSet+barMargin,x:0,h:barWidthForSet,w:(parseFloat(item[1])-this.minyval)*this.yscale,xval:parseFloat(item[0]),yval:parseFloat(item[1]),name:setName};if(rect.y<=0){rect.y=0}if(rect.y>=1){rect.y=1}if(rect.x>=0&&rect.x<=1){this.bars.push(rect)}}i++}};PlotKit.Layout.prototype._evaluateLineCharts=function(){var items=PlotKit.Base.items;var setCount=items(this.datasets).length;this.points=new Array;var i=0;for(var setName in this.datasets){var dataset=this.datasets[setName];if(PlotKit.Base.isFuncLike(dataset))continue;dataset.sort(function(a,b){return compare(parseFloat(a[0]),parseFloat(b[0]))});for(var j=0;j<dataset.length;j++){var item=dataset[j];if(String(item[1])=="0.00000")item[1]=null;var point={x:(parseFloat(item[0])-this.minxval)*this.xscale,y:1-(parseFloat(item[1])-this.minyval)*this.yscale,xval:parseFloat(item[0]),yval:parseFloat(item[1]),name:setName};if(point.y<=0){point.y=0}if(point.y>=1){point.y=1}if(point.x>=0&&point.x<=1){this.points.push(point)}}i++}};PlotKit.Layout.prototype._evaluatePieCharts=function(){var items=PlotKit.Base.items;var sum=MochiKit.Iter.sum;var getter=MochiKit.Base.itemgetter;var setCount=items(this.datasets).length;var dataset=items(this.datasets)[0][1];var total=sum(PlotKit.Base.map(getter(1),dataset));this.slices=new Array;var currentAngle=0;for(var i=0;i<dataset.length;i++){var fraction=dataset[i][1]/total;var startAngle=currentAngle*Math.PI*2;var endAngle=(currentAngle+fraction)*Math.PI*2;var slice={fraction:fraction,xval:dataset[i][0],yval:dataset[i][1],startAngle:startAngle,endAngle:endAngle};if(dataset[i][1]!=0){this.slices.push(slice)}currentAngle+=fraction}}
;PlotKit.Layout.prototype._evaluateLineTicksForXAxis=function(){var isNil=MochiKit.Base.isUndefinedOrNull;if(this.options.xTicks){this.xticks=new Array;var makeTicks=function(tick){var label=tick.label;if(isNil(label))label=tick.v.toString();var pos=this.xscale*(tick.v-this.minxval);if(pos>=0&&pos<=1){this.xticks.push([pos,label])}};MochiKit.Iter.forEach(this.options.xTicks,MochiKit.Base.bind(makeTicks,this))}else if(this.options.xNumberOfTicks){var xvalues=this._uniqueXValues();var roughSeparation=this.xrange/this.options.xNumberOfTicks;var tickCount=0;this.xticks=new Array;for(var i=0;i<=xvalues.length;i++){if(xvalues[i]-this.minxval>=tickCount*roughSeparation){var pos=this.xscale*(xvalues[i]-this.minxval);if(pos>1||pos<0)continue;this.xticks.push([pos,xvalues[i]]);tickCount++}if(tickCount>this.options.xNumberOfTicks)break}}};PlotKit.Layout.prototype._evaluateLineTicksForYAxis=function(){var isNil=MochiKit.Base.isUndefinedOrNull;if(this.options.yTicks){this.yticks=new Array;var makeTicks=function(tick){var label=tick.label;if(isNil(label))label=tick.v.toString();var pos=1-this.yscale*(tick.v-this.minyval);if(pos>=0&&pos<=1){this.yticks.push([pos,label])}};MochiKit.Iter.forEach(this.options.yTicks,MochiKit.Base.bind(makeTicks,this))}else if(this.options.yNumberOfTicks){this.yticks=new Array;var roundInt=PlotKit.Base.roundInterval;var prec=this.options.yTickPrecision;var roughSeparation=roundInt(this.yrange,this.options.yNumberOfTicks,prec);var roughOffset=0;for(var i=0;i<=this.options.yNumberOfTicks;i++){var yval=this.minyval+i*roughSeparation;if(yval==0){break}else if(yval>0&&yval-roughSeparation/2<=0||yval<0&&yval+roughSeparation/2>=0){roughOffset=yval;break}}for(var i=0;i<=this.options.yNumberOfTicks;i++){var yval=this.minyval+i*roughSeparation-roughOffset;var pos=1-(yval-this.minyval)*this.yscale;if(pos>1||pos<0)continue;this.yticks.push([pos,MochiKit.Format.roundToFixed(yval,prec)])}}};PlotKit.Layout.prototype._evaluateLineTicks=function(){this._evaluateLineTicksForXAxis();this._evaluateLineTicksForYAxis()};PlotKit.Layout.prototype._evaluateBarTicks=function(){this._evaluateLineTicks();var centerInBar=function(tick){return[tick[0]+this.minxdelta*this.xscale/2,tick[1]]};this.xticks=MochiKit.Base.map(MochiKit.Base.bind(centerInBar,this),this.xticks);if(this.options.barOrientation=="horizontal"){var tempticks=this.xticks;this.xticks=this.yticks;this.yticks=tempticks;var invert=function(tick){return[1-tick[0],tick[1]]};this.xticks=MochiKit.Base.map(invert,this.xticks)}};PlotKit.Layout.prototype._evaluatePieTicks=function(){var isNil=MochiKit.Base.isUndefinedOrNull;var formatter=MochiKit.Format.numberFormatter("#%");this.xticks=new Array;if(this.options.xTicks){var lookup=new Array;for(var i=0;i<this.slices.length;i++){lookup[this.slices[i].xval]=this.slices[i]}for(var i=0;i<this.options.xTicks.length;i++){var tick=this.options.xTicks[i];var slice=lookup[tick.v];var label=tick.label;if(slice){if(isNil(label))label=tick.v.toString();label+=" ("+formatter(slice.fraction)+")";this.xticks.push([tick.v,label])}}}else{for(var i=0;i<this.slices.length;i++){var slice=this.slices[i];var label=slice.xval+" ("+formatter(slice.fraction)+")";this.xticks.push([slice.xval,label])}}};PlotKit.Layout.prototype._regenerateHitTestCache=function(){this.hitTestCache.xvalues=this._uniqueXValues();this.hitTestCache.xlookup=new Array;this.hitTestCache.x2maxy=new Array;var listMax=MochiKit.Base.listMax;var itemgetter=MochiKit.Base.itemgetter;var map=MochiKit.Base.map;var setNames=keys(this.datasets);for(var i=0;i<setNames.length;i++){var dataset=this.datasets[setNames[i]];for(var j=0;j<dataset.length;j++){var xval=dataset[j][0];var yval=dataset[j][1];if(this.hitTestCache.xlookup[xval])this.hitTestCache.xlookup[xval].push([yval,setNames[i]]);else this.hitTestCache.xlookup[xval]=[[yval,setNames[i]]]}}for(var x in this.hitTestCache.xlookup){var yvals=this.hitTestCache.xlookup[x];this.hitTestCache.x2maxy[x]=listMax(map(itemgetter(0),yvals))}};PlotKit.LayoutModule={};PlotKit.LayoutModule.Layout=PlotKit.Layout;PlotKit.LayoutModule.EXPORT=["Layout"];PlotKit.LayoutModule.EXPORT_OK=[];PlotKit.LayoutModule.__new__=function(){var m=MochiKit.Base;m.nameFunctions(this);this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}};PlotKit.LayoutModule.__new__();MochiKit.Base._exportSymbols(this,PlotKit.LayoutModule);var CanvasTextFunctions={};CanvasTextFunctions.letters={" ":{width:16,points:[]},"!":{width:10,points:[[5,21],[5,7],[-1,-1],[5,2],[4,1],[5,0],[6,1],[5,2]]},'"':{width:16,points:[[4,21],[4,14],[-1,-1],[12,21],[12,14]]},"#":{width:21,points:[[11,25],[4,-7],[-1,-1],[17,25],[10,-7],[-1,-1],[4,12],[18,12],[-1,-1],[3,6],[17,6]]},$:{width:20,points:[[8,25],[8,-4],[-1,-1],[12,25],[12,-4],[-1,-1],[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},"%":{width:24,points:[[21,21],[3,0],[-1,-1],[8,21],[10,19],[10,17],[9,15],[7,14],[5,14],[3,16],[3,18],[4,20],[6,21],[8,21],[10,20],[13,19],[16,19],[19,20],[21,21],[-1,-1],[17,7],[15,6],[14,4],[14,2],[16,0],[18,0],[20,1],[21,3],[21,5],[19,7],[17,7]]},"&":{width:26,points:[[23,12],[23,13],[22,14],[21,14],[20,13],[19,11],[17,6],[15,3],[13,1],[11,0],[7,0],[5,1],[4,2],[3,4],[3,6],[4,8],[5,9],[12,13],[13,14],[14,16],[14,18],[13,20],[11,21],[9,20],[8,18],[8,16],[9,13],[11,10],[16,3],[18,1],[20,0],[22,0],[23,1],[23,2]]},"'":{width:10,points:[[5,19],[4,20],[5,21],[6,20],[6,18],[5,16],[4,15]]},"(":{width:14,points:[[11,25],[9,23],[7,20],[5,16],[4,11],[4,7],[5,2],[7,-2],[9,-5],[11,-7]]},")":{width:14,points:[[3,25],[5,23],[7,20],[9,16],[10,11],[10,7],[9,2],[7,-2],[5,-5],[3,-7]]},"*":{width:16,points:[[8,21],[8,9],[-1,-1],[3,18],[13,12],[-1,-1],[13,18],[3,12]]},"+":{width:26,points:[[13,18],[13,0],[-1,-1],[4,9],[22,9]]},",":{width:10,points:[[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]]},"-":{width:26,points:[[4,9],[22,9]]},".":{width:10,points:[[5,2],[4,1],[5,0],[6,1],[5,2]]},"/":{width:22,points:[[20,25],[2,-7]]},0:{width:20,points:[[9,21],[6,20],[4,17],[3,12],[3,9],[4,4],[6,1],[9,0],[11,0],[14,1],[16,4],[17,9],[17,12],[16,17],[14,20],[11,21],[9,21]]},1:{width:20,points:[[6,17],[8,18],[11,21],[11,0]]},2:{width:20,points:[[4,16],[4,17],[5,19],[6,20],[8,21],[12,21],[14,20],[15,19],[16,17],[16,15],[15,13],[13,10],[3,0],[17,0]]},3:{width:20,points:[[5,21],[16,21],[10,13],[13,13],[15,12],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]]},4:{width:20,points:[[13,21],[3,7],[18,7],[-1,-1],[13,21],[13,0]]},5:{width:20,points:[[15,21],[5,21],[4,12],[5,13],[8,14],[11,14],[14,13],[16,11],[17,8],[17,6],[16,3],[14,1],[11,0],[8,0],[5,1],[4,2],[3,4]]},6:{width:20,points:[[16,18],[15,20],[12,21],[10,21],[7,20],[5,17],[4,12],[4,7],[5,3],[7,1],[10,0],[11,0],[14,1],[16,3],[17,6],[17,7],[16,10],[14,12],[11,13],[10,13],[7,12],[5,10],[4,7]]},7:{width:20,points:[[17,21],[7,0],[-1,-1],[3,21],[17,21]]},8:{width:20,points:[[8,21],[5,20],[4,18],[4,16],[5,14],[7,13],[11,12],[14,11],[16,9],[17,7],[17,4],[16,2],[15,1],[12,0],[8,0],[5,1],[4,2],[3,4],[3,7],[4,9],[6,11],[9,12],[13,13],[15,14],[16,16],[16,18],[15,20],[12,21],[8,21]]},9:{width:20,points:[[16,14],[15,11],[13,9],[10,8],[9,8],[6,9],[4,11],[3,14],[3,15],[4,18],[6,20],[9,21],[10,21],[13,20],[15,18],[16,14],[16,9],[15,4],[13,1],[10,0],[8,0],[5,1],[4,3]]},":":{width:10,points:[[5,14],[4,13],[5,12],[6,13],[5,14],[-1,-1],[5,2],[4,1],[5,0],[6,1],[5,2]]},";":{width:10,points:[[5,14],[4,13],[5,12],[6,13],[5,14],[-1,-1],[6,1],[5,0],[4,1],[5,2],[6,1],[6,-1],[5,-3],[4,-4]]},"<":{width:24,points:[[20,18],[4,9],[20,0]]},"=":{width:26,points:[[4,12],[22,12],[-1,-1],[4,6],[22,6]]},">":{width:24,points:[[4,18],[20,9],[4,0]]},"?":{width:18,points:[[3,16],[3,17],[4,19],[5,20],[7,21],[11,21],[13,20],[14,19],[15,17],[15,15],[14,13],[13,12],[9,10],[9,7],[-1,-1],[9,2],[8,1],[9,0],[10,1],[9,2]]},"@":{width:27,points:[[18,13],[17,15],[15,16],[12,16],[10,15],[9,14],[8,11],[8,8],[9,6],[11,5],[14,5],[16,6],[17,8],[-1,-1],[12,16],[10,14],[9,11],[9,8],[10,6],[11,5],[-1,-1],[18,16],[17,8],[17,6],[19,5],[21,5],[23,7],[24,10],[24,12],[23,15],[22,17],[20,19],[18,20],[15,21],[12,21],[9,20],[7,19],[5,17],[4,15],[3,12],[3,9],[4,6],[5,4],[7,2],[9,1],[12,0],[15,0],[18,1],[20,2],[21,3],[-1,-1],[19,16],[18,8],[18,6],[19,5]]},A:{width:18,points:[[9,21],[1,0],[-1,-1],[9,21],[17,0],[-1,-1],[4,7],[14,7]]},B:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[-1,-1],[4,11],[13,11],[16,10],[17,9],[18,7],[18,4],[17,2],[16,1],[13,0],[4,0]]},C:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5]]},D:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[11,21],[14,20],[16,18],[17,16],[18,13],[18,8],[17,5],[16,3],[14,1],[11,0],[4,0]]},E:{width:19,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11],[-1,-1],[4,0],[17,0]]},F:{width:18,points:[[4,21],[4,0],[-1,-1],[4,21],[17,21],[-1,-1],[4,11],[12,11]]},G:{width:21,points:[[18,16],[17,18],[15,20],[13,21],[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[18,8],[-1,-1],[13,8],[18,8]]},H:{width:22,points:[[4,21],[4,0],[-1,-1],[18,21],[18,0],[-1,-1],[4,11],[18,11]]},I:{width:8,points:[[4,21],[4,0]]},J:{width:16,points:[[12,21],[12,5],[11,2],[10,1],[8,0],[6,0],[4,1],[3,2],[2,5],[2,7]]},K:{width:21,points:[[4,21],[4,0],[-1,-1],[18,21],[4,7],[-1,-1],[9,12],[18,0]]},L:{width:17,points:[[4,21],[4,0],[-1,-1],[4,0],[16,0]]},M:{width:24,points:[[4,21],[4,0],[-1,-1],[4,21],[12,0],[-1,-1],[20,21],[12,0],[-1,-1],[20,21],[20,0]]},N:{width:22,points:[[4,21],[4,0],[-1,-1],[4,21],[18,0],[-1,-1],[18,21],[18,0]]},O:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21]]},P:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,14],[17,12],[16,11],[13,10],[4,10]]},Q:{width:22,points:[[9,21],[7,20],[5,18],[4,16],[3,13],[3,8],[4,5],[5,3],[7,1],[9,0],[13,0],[15,1],[17,3],[18,5],[19,8],[19,13],[18,16],[17,18],[15,20],[13,21],[9,21],[-1,-1],[12,4],[18,-2]]},R:{width:21,points:[[4,21],[4,0],[-1,-1],[4,21],[13,21],[16,20],[17,19],[18,17],[18,15],[17,13],[16,12],[13,11],[4,11],[-1,-1],[11,11],[18,0]]},S:{width:20,points:[[17,18],[15,20],[12,21],[8,21],[5,20],[3,18],[3,16],[4,14],[5,13],[7,12],[13,10],[15,9],[16,8],[17,6],[17,3],[15,1],[12,0],[8,0],[5,1],[3,3]]},T:{width:16,points:[[8,21],[8,0],[-1,-1],[1,21],[15,21]]},U:{width:22,points:[[4,21],[4,6],[5,3],[7,1],[10,0],[12,0],[15,1],[17,3],[18,6],[18,21]]},V:{width:18,points:[[1,21],[9,0],[-1,-1],[17,21],[9,0]]},W:{width:24,points:[[2,21],[7,0],[-1,-1],[12,21],[7,0],[-1,-1],[12,21],[17,0],[-1,-1],[22,21],[17,0]]},X:{width:20,points:[[3,21],[17,0],[-1,-1],[17,21],[3,0]]},Y:{width:18,points:[[1,21],[9,11],[9,0],[-1,-1],[17,21],[9,11]]},Z:{width:20,points:[[17,21],[3,0],[-1,-1],[3,21],[17,21],[-1,-1],[3,0],[17,0]]},"[":{width:14,points:[[4,25],[4,-7],[-1,-1],[5,25],[5,-7],[-1,-1],[4,25],[11,25],[-1,-1],[4,-7],[11,-7]]},"\\":{width:14,points:[[0,21],[14,-3]]},"]":{width:14,points:[[9,25],[9,-7],[-1,-1],[10,25],[10,-7],[-1,-1],[3,25],[10,25],[-1,-1],[3,-7],[10,-7]]},"^":{width:16,points:[[6,15],[8,18],[10,15],[-1,-1],[3,12],[8,17],[13,12],[-1,-1],[8,17],[8,0]]},_:{width:16,points:[[0,-2],[16,-2]]},"`":{width:10,points:[[6,21],[5,20],[4,18],[4,16],[5,15],[6,16],[5,17]]},a:{width:19,points:[[15,14],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},b:{width:19,points:[[4,21],[4,0],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},c:{width:18,points:[[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},d:{width:19,points:[[15,21],[15,0],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},e:{width:18,points:[[3,8],[15,8],[15,10],[14,12],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},f:{width:12,points:[[10,21],[8,21],[6,20],[5,17],[5,0],[-1,-1],[2,14],[9,14]]},g:{width:19,points:[[15,14],[15,-2],[14,-5],[13,-6],[11,-7],[8,-7],[6,-6],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},h:{width:19,points:[[4,21],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},i:{width:8,points:[[3,21],[4,20],[5,21],[4,22],[3,21],[-1,-1],[4,14],[4,0]]},j:{width:10,points:[[5,21],[6,20],[7,21],[6,22],[5,21],[-1,-1],[6,14],[6,-3],[5,-6],[3,-7],[1,-7]]},k:{width:17,points:[[4,21],[4,0],[-1,-1],[14,14],[4,4],[-1,-1],[8,8],[15,0]]},l:{width:8,points:[[4,21],[4,0]]},m:{width:30,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0],[-1,-1],[15,10],[18,13],[20,14],[23,14],[25,13],[26,10],[26,0]]},n:{width:19,points:[[4,14],[4,0],[-1,-1],[4,10],[7,13],[9,14],[12,14],[14,13],[15,10],[15,0]]},o:{width:19,points:[[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3],[16,6],[16,8],[15,11],[13,13],[11,14],[8,14]]},p:{width:19,points:[[4,14],[4,-7],[-1,-1],[4,11],[6,13],[8,14],[11,14],[13,13],[15,11],[16,8],[16,6],[15,3],[13,1],[11,0],[8,0],[6,1],[4,3]]},q:{width:19,points:[[15,14],[15,-7],[-1,-1],[15,11],[13,13],[11,14],[8,14],[6,13],[4,11],[3,8],[3,6],[4,3],[6,1],[8,0],[11,0],[13,1],[15,3]]},r:{width:13,points:[[4,14],[4,0],[-1,-1],[4,8],[5,11],[7,13],[9,14],[12,14]]},s:{width:17,points:[[14,11],[13,13],[10,14],[7,14],[4,13],[3,11],[4,9],[6,8],[11,7],[13,6],[14,4],[14,3],[13,1],[10,0],[7,0],[4,1],[3,3]]},t:{width:12,points:[[5,21],[5,4],[6,1],[8,0],[10,0],[-1,-1],[2,14],[9,14]]},u:{width:19,points:[[4,14],[4,4],[5,1],[7,0],[10,0],[12,1],[15,4],[-1,-1],[15,14],[15,0]]},v:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0]]},w:{width:22,points:[[3,14],[7,0],[-1,-1],[11,14],[7,0],[-1,-1],[11,14],[15,0],[-1,-1],[19,14],[15,0]]},x:{width:17,points:[[3,14],[14,0],[-1,-1],[14,14],[3,0]]},y:{width:16,points:[[2,14],[8,0],[-1,-1],[14,14],[8,0],[6,-4],[4,-6],[2,-7],[1,-7]]},z:{width:17,points:[[14,14],[3,0],[-1,-1],[3,14],[14,14],[-1,-1],[3,0],[14,0]]},"{":{width:14,points:[[9,25],[7,24],[6,23],[5,21],[5,19],[6,17],[7,16],[8,14],[8,12],[6,10],[-1,-1],[7,24],[6,22],[6,20],[7,18],[8,17],[9,15],[9,13],[8,11],[4,9],[8,7],[9,5],[9,3],[8,1],[7,0],[6,-2],[6,-4],[7,-6],[-1,-1],[6,8],[8,6],[8,4],[7,2],[6,1],[5,-1],[5,-3],[6,-5],[7,-6],[9,-7]]},"|":{width:8,points:[[4,25],[4,-7]]},"}":{width:14,points:[[5,25],[7,24],[8,23],[9,21],[9,19],[8,17],[7,16],[6,14],[6,12],[8,10],[-1,-1],[7,24],[8,22],[8,20],[7,18],[6,17],[5,15],[5,13],[6,11],[10,9],[6,7],[5,5],[5,3],[6,1],[7,0],[8,-2],[8,-4],[7,-6],[-1,-1],[8,8],[6,6],[6,4],[7,2],[8,1],[9,-1],[9,-3],[8,-5],[7,-6],[5,-7]]},"~":{width:24,points:[[3,6],[3,8],[4,11],[6,12],[8,12],[10,11],[14,8],[16,7],[18,7],[20,8],[21,10],[-1,-1],[3,8],[4,10],[6,11],[8,11],[10,10],[14,7],[16,6],[18,6],[20,7],[21,10],[21,12]]}};CanvasTextFunctions.letter=function(ch){return CanvasTextFunctions.letters[ch]};CanvasTextFunctions.ascent=function(font,size){return size};CanvasTextFunctions.descent=function(font,size){return 7*size/25};CanvasTextFunctions.measure=function(font,size,str){var total=0;var len=str.length;for(i=0;i<len;i++){var c=CanvasTextFunctions.letter(str.charAt(i));if(c)total+=c.width*size/25}return total};CanvasTextFunctions.draw=function(ctx,font,size,x,y,str){var total=0;var len=str.length;var mag=size/25;ctx.save();ctx.lineCap="round";ctx.lineWidth=2*mag;for(i=0;i<len;i++){var c=CanvasTextFunctions.letter(str.charAt(i));if(!c)continue;ctx.beginPath();var penUp=1;var needStroke=0;for(j=0;j<c.points.length;j++){var a=c.points[j];if(a[0]==-1&&a[1]==-1){penUp=1;continue}if(penUp){ctx.moveTo(x+a[0]*mag,y-a[1]*mag);penUp=false}else{ctx.lineTo(x+a[0]*mag,y-a[1]*mag)}}ctx.stroke();x+=c.width*mag}ctx.restore();return total};CanvasTextFunctions.enable=function(ctx){ctx.drawText=function(font,size,x,y,text){return CanvasTextFunctions.draw(ctx,font,size,x,y,text)};ctx.measureText=function(font,size,text){return CanvasTextFunctions.measure(font,size,text)};ctx.fontAscent=function(font,size){return CanvasTextFunctions.ascent(font,size)};ctx.fontDescent=function(font,size){return CanvasTextFunctions.descent(font,size)};ctx.drawTextRight=function(font,size,x,y,text){var w=CanvasTextFunctions.measure(font,size,text);return CanvasTextFunctions.draw(ctx,font,size,x-w,y,text)};ctx.drawTextCenter=function(font,size,x,y,text){var w=CanvasTextFunctions.measure(font,size,text);return CanvasTextFunctions.draw(ctx,font,size,x-w/2,y,text)}};try{if(typeof PlotKit.Base=="undefined"||typeof PlotKit.Layout=="undefined"){throw""}}catch(e){throw"PlotKit.Layout depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.{Base,Layout}"}if(typeof PlotKit.CanvasRenderer=="undefined"){PlotKit.CanvasRenderer={}}PlotKit.CanvasRenderer.NAME="PlotKit.CanvasRenderer";PlotKit.CanvasRenderer.VERSION=PlotKit.VERSION;PlotKit.CanvasRenderer.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};PlotKit.CanvasRenderer.toString=function(){return this.__repr__()};PlotKit.CanvasRenderer=function(element,layout,options){if(arguments.length>0)this.__init__(element,layout,options)};PlotKit.CanvasRenderer.prototype.__init__=function(element,layout,options){var isNil=MochiKit.Base.isUndefinedOrNull;var Color=MochiKit.Color.Color;this.options={drawBackground:true,backgroundColor:Color.whiteColor(),padding:{left:30,right:30,top:5,bottom:10},colorScheme:PlotKit.Base.palette(PlotKit.Base.baseColors()[0]),strokeColor:Color.whiteColor(),strokeColorTransform:"asStrokeColor",strokeWidth:.5,shouldFill:true,shouldStroke:true,drawXAxis:true,drawYAxis:true,axisLineColor:Color.blackColor(),axisLineWidth:.5,axisTickSize:3,axisLabelColor:Color.blackColor(),axisLabelFont:"Arial",axisLabelFontSize:9,axisLabelWidth:65,pieRadius:.4,enableEvents:true,barSingleDatasetColor:false};MochiKit.Base.update(this.options,options?options:{});this.layout=layout;this.element=MochiKit.DOM.getElement(element);this.container=this.element.parentNode;this.isIE=PlotKit.Base.excanvasSupported();var ie=navigator.appVersion.match(/MSIE (\d\.\d)/);if(typeof G_vmlCanvasManager!="undefined"&&!isNil(G_vmlCanvasManager)){this.IEDelay=.5;this.maxTries=5;this.renderDelay=null;this.clearDelay=null;this.element=G_vmlCanvasManager.initElement(this.element)}this.height=this.element.height;this.width=this.element.width;if(isNil(this.element))throw"CanvasRenderer() - passed canvas is not found";if(!this.isIE&&!PlotKit.CanvasRenderer.isSupported(this.element))throw"CanvasRenderer() - Canvas is not supported.";if(isNil(this.container)||this.container.nodeName.toLowerCase()!="div")throw"CanvasRenderer() - <canvas> needs to be enclosed in <div>";this.xlabels=new Array;this.ylabels=new Array;this.isFirstRender=true;this.area={x:this.options.padding.left,y:this.options.padding.top,w:this.width-this.options.padding.left-this.options.padding.right,h:this.height-this.options.padding.top-this.options.padding.bottom};MochiKit.DOM.updateNodeAttributes(this.container,{style:{position:"relative",width:this.width+"px"}})};PlotKit.CanvasRenderer.prototype.render=function(){if(this.isIE){try{if(this.renderDelay){this.renderDelay.cancel();this.renderDelay=null}var context=this.element.getContext("2d")}catch(e){this.isFirstRender=false;if(this.maxTries-- >0){this.renderDelay=MochiKit.Async.wait(this.IEDelay);this.renderDelay.addCallback(MochiKit.Base.bind(this.render,this))}return}}if(this.options.drawBackground)this._renderBackground();if(this.layout.style=="bar"){this._renderBarChart();this._renderBarAxis()}else if(this.layout.style=="pie"){this._renderPieChart();this._renderPieAxis()}else if(this.layout.style=="line"){this._renderLineChart();this._renderLineAxis()}};PlotKit.CanvasRenderer.prototype._renderBarChartWrap=function(data,plotFunc){var context=this.element.getContext("2d");var colorCount=this.options.colorScheme.length;var colorScheme=this.options.colorScheme;var setNames=MochiKit.Base.keys(this.layout.datasets);var setCount=setNames.length;if(setCount==1&&this.options.barSingleDatasetColor){for(var i=0;i<data.length;i++){var setName=setNames[i];var color=colorScheme[i%colorCount];context.save();context.fillStyle=color.toRGBString();if(this.options.strokeColor)context.strokeStyle=this.options.strokeColor.toRGBString();else if(this.options.strokeColorTransform)context.strokeStyle=color[this.options.strokeColorTransform]().toRGBString();context.lineWidth=this.options.strokeWidth;var forEachFunc=function(obj){if(obj.name==setName){plotFunc(context,obj)}};MochiKit.Iter.forEach(data,MochiKit.Base.bind(forEachFunc,this));context.restore()}}else{for(var i=0;i<setCount;i++){var setName=setNames[i];var color=colorScheme[i%colorCount];context.save();context.fillStyle=color.toRGBString();if(this.options.strokeColor)context.strokeStyle=this.options.strokeColor.toRGBString();else if(this.options.strokeColorTransform)context.strokeStyle=color[this.options.strokeColorTransform]().toRGBString();context.lineWidth=this.options.strokeWidth;var forEachFunc=function(obj){if(obj.name==setName)plotFunc(context,obj)};MochiKit.Iter.forEach(data,MochiKit.Base.bind(forEachFunc,this));context.restore()}}};PlotKit.CanvasRenderer.prototype._renderBarChart=function(){var bind=MochiKit.Base.bind;var drawRect=function(context,bar){var x=this.area.w*bar.x+this.area.x;var y=this.area.h*bar.y+this.area.y;var w=this.area.w*bar.w;var h=this.area.h*bar.h;if(w<1||h<1)return;if(this.options.shouldFill)context.fillRect(x,y,w,h);if(this.options.shouldStroke)context.strokeRect(x,y,w,h)};this._renderBarChartWrap(this.layout.bars,MochiKit.Base.bind(drawRect,this))};PlotKit.CanvasRenderer.prototype._renderLineChart=function(){var context=this.element.getContext("2d");var colorCount=this.options.colorScheme.length;var colorScheme=this.options.colorScheme;var setNames=MochiKit.Base.keys(this.layout.datasets);var setCount=setNames.length;var bind=MochiKit.Base.bind;var partial=MochiKit.Base.partial;for(var i=0;i<setCount;i++){var setName=setNames[i];var color=colorScheme[i%colorCount];var strokeX=this.options.strokeColorTransform;context.save();context.fillStyle=color.toRGBString();if(this.options.strokeColor)context.strokeStyle=this.options.strokeColor.toRGBString();else if(this.options.strokeColorTransform)context.strokeStyle=color[strokeX]().toRGBString();context.lineWidth=this.options.strokeWidth;var makePath=function(ctx){ctx.beginPath();ctx.moveTo(this.area.x,this.area.y+this.area.h);var addPoint=function(ctx_,point){if(point.name==setName)ctx_.lineTo(this.area.w*point.x+this.area.x,this.area.h*point.y+this.area.y)};MochiKit.Iter.forEach(this.layout.points,partial(addPoint,ctx),this);ctx.lineTo(this.area.w+this.area.x,this.area.h+this.area.y);ctx.lineTo(this.area.x,this.area.y+this.area.h);ctx.closePath()};if(this.options.shouldFill){MochiKit.Base.bind(makePath,this)(context);context.fill()}if(this.options.shouldStroke){MochiKit.Base.bind(makePath,this)(context);context.stroke()}context.restore()}};PlotKit.CanvasRenderer.prototype._renderPieChart=function(){var context=this.element.getContext("2d");var colorCount=this.options.colorScheme.length;var slices=this.layout.slices;var centerx=this.area.x+this.area.w*.5;var centery=this.area.y+this.area.h*.5;var radius=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius);if(this.isIE){centerx=parseInt(centerx);centery=parseInt(centery);radius=parseInt(radius)}for(var i=0;i<slices.length;i++){var color=this.options.colorScheme[i%colorCount];context.save();context.fillStyle=color.toRGBString();var makePath=function(){context.beginPath();context.moveTo(centerx,centery);context.arc(centerx,centery,radius,slices[i].startAngle-Math.PI/2,slices[i].endAngle-Math.PI/2,false);context.lineTo(centerx,centery);context.closePath()};if(Math.abs(slices[i].startAngle-slices[i].endAngle)>.001){if(this.options.shouldFill){makePath();context.fill()}if(this.options.shouldStroke){makePath();context.lineWidth=this.options.strokeWidth;if(this.options.strokeColor)context.strokeStyle=this.options.strokeColor.toRGBString();else if(this.options.strokeColorTransform)context.strokeStyle=color[this.options.strokeColorTransform]().toRGBString();context.stroke()}}context.restore()}};PlotKit.CanvasRenderer.prototype._renderBarAxis=function(){this._renderAxis()};PlotKit.CanvasRenderer.prototype._renderLineAxis=function(){this._renderAxis()};PlotKit.CanvasRenderer.prototype._renderAxis=function(){if(!this.options.drawXAxis&&!this.options.drawYAxis)return;var context=this.element.getContext("2d");var labelStyle={style:{position:"absolute",fontSize:this.options.axisLabelFontSize+"px",zIndex:10,color:this.options.axisLabelColor.toRGBString(),width:this.options.axisLabelWidth+"px",overflow:"hidden"}};context.save();context.strokeStyle=this.options.axisLineColor.toRGBString();context.lineWidth=this.options.axisLineWidth;if(this.options.drawYAxis){if(this.layout.yticks){var drawTick=function(tick){if(typeof tick=="function")return;var x=this.area.x;var y=this.area.y+tick[0]*this.area.h;context.beginPath();context.moveTo(x,y);context.lineTo(x-this.options.axisTickSize,y);context.closePath();context.stroke();var label=DIV(labelStyle,tick[1]);label.style.top=y-this.options.axisLabelFontSize+"px";label.style.left=x-this.options.padding.left-this.options.axisTickSize+"px";label.style.textAlign="right";label.style.width=this.options.padding.left-this.options.axisTickSize*2+"px";MochiKit.DOM.appendChildNodes(this.container,label);this.ylabels.push(label)};MochiKit.Iter.forEach(this.layout.yticks,MochiKit.Base.bind(drawTick,this))}context.beginPath();context.moveTo(this.area.x,this.area.y);context.lineTo(this.area.x,this.area.y+this.area.h);context.closePath();context.stroke()}if(this.options.drawXAxis){if(this.layout.xticks){var drawTick=function(tick){if(typeof dataset=="function")return;var x=this.area.x+tick[0]*this.area.w;var y=this.area.y+this.area.h;context.beginPath();context.moveTo(x,y);context.lineTo(x,y+this.options.axisTickSize);context.closePath();context.stroke();var label=DIV(labelStyle,tick[1]);label.style.top=y+this.options.axisTickSize+"px";label.style.left=x-this.options.axisLabelWidth/2+"px";label.style.textAlign="center";label.style.width=this.options.axisLabelWidth+"px";MochiKit.DOM.appendChildNodes(this.container,label);this.xlabels.push(label)};MochiKit.Iter.forEach(this.layout.xticks,MochiKit.Base.bind(drawTick,this))}var yoffset=this.area.y+this.layout.maxyval*this.layout.yscale*this.area.h;context.beginPath();context.moveTo(this.area.x,yoffset);context.lineTo(this.area.x+this.area.w,yoffset);context.closePath();context.stroke();context.beginPath();context.moveTo(this.area.x+this.area.w,this.area.y);context.lineTo(this.area.x+this.area.w,this.area.y+this.area.h);context.closePath();context.stroke()}context.restore()};PlotKit.CanvasRenderer.prototype._renderPieAxis=function(){if(!this.options.drawXAxis)return;if(this.layout.xticks){var lookup=new Array;for(var i=0;i<this.layout.slices.length;i++){lookup[this.layout.slices[i].xval]=this.layout.slices[i]}var centerx=this.area.x+this.area.w*.5;var centery=this.area.y+this.area.h*.5;var radius=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius);var labelWidth=this.options.axisLabelWidth;for(var i=0;i<this.layout.xticks.length;i++){var slice=lookup[this.layout.xticks[i][0]];if(MochiKit.Base.isUndefinedOrNull(slice))continue;var angle=(slice.startAngle+slice.endAngle)/2;var normalisedAngle=angle;if(normalisedAngle>Math.PI*2)normalisedAngle=normalisedAngle-Math.PI*2;else if(normalisedAngle<0)normalisedAngle=normalisedAngle+Math.PI*2;var labelx=centerx+Math.sin(normalisedAngle)*(radius+10);var labely=centery-Math.cos(normalisedAngle)*(radius+10);var attrib={position:"absolute",zIndex:11,width:labelWidth+"px",fontSize:this.options.axisLabelFontSize+"px",overflow:"hidden",color:this.options.axisLabelColor.toHexString()};if(normalisedAngle<=Math.PI*.5){attrib["textAlign"]="left";attrib["verticalAlign"]="top";attrib["left"]=labelx+"px";attrib["top"]=labely-this.options.axisLabelFontSize+"px"}else if(normalisedAngle>Math.PI*.5&&normalisedAngle<=Math.PI){attrib["textAlign"]="left";attrib["verticalAlign"]="bottom";attrib["left"]=labelx+"px";attrib["top"]=labely+"px"}else if(normalisedAngle>Math.PI&&normalisedAngle<=Math.PI*1.5){attrib["textAlign"]="right";attrib["verticalAlign"]="bottom";attrib["left"]=labelx-labelWidth+"px";attrib["top"]=labely+"px"}else{attrib["textAlign"]="right";attrib["verticalAlign"]="bottom";attrib["left"]=labelx-labelWidth+"px";attrib["top"]=labely-this.options.axisLabelFontSize+"px"}var label=DIV({style:attrib},this.layout.xticks[i][1]);this.xlabels.push(label);MochiKit.DOM.appendChildNodes(this.container,label)}}};PlotKit.CanvasRenderer.prototype._renderBackground=function(){var context=this.element.getContext("2d");context.save();context.fillStyle=this.options.backgroundColor.toRGBString();context.fillRect(0,0,this.width,this.height);context.restore()};PlotKit.CanvasRenderer.prototype.clear=function(){if(this.isIE){try{if(this.clearDelay){this.clearDelay.cancel();this.clearDelay=null}var context=this.element.getContext("2d")}catch(e){this.isFirstRender=false;this.clearDelay=MochiKit.Async.wait(this.IEDelay);this.clearDelay.addCallback(MochiKit.Base.bind(this.clear,this));return}}var context=this.element.getContext("2d");context.clearRect(0,0,this.width,this.height);MochiKit.Iter.forEach(this.xlabels,MochiKit.DOM.removeElement);MochiKit.Iter.forEach(this.ylabels,MochiKit.DOM.removeElement);this.xlabels=new Array;this.ylabels=new Array};PlotKit.CanvasRenderer.prototype._initialiseEvents=function(){var connect=MochiKit.Signal.connect;var bind=MochiKit.Base.bind;connect(this.element,"onclick",MochiKit.Base.bind(this.onclick,this))};PlotKit.CanvasRenderer.prototype._resolveObject=function(e){var x=(e.mouse().page.x-PlotKit.Base.findPosX(this.element)-this.area.x)/this.area.w;var y=(e.mouse().page.y-PlotKit.Base.findPosY(this.element)-this.area.y)/this.area.h;var isHit=this.layout.hitTest(x,y);if(isHit)return isHit;return null};PlotKit.CanvasRenderer.prototype._createEventObject=function(layoutObj,e){if(layoutObj==null){return null}e.chart=layoutObj;return e};PlotKit.CanvasRenderer.prototype.onclick=function(e){var layoutObject=this._resolveObject(e);var eventObject=this._createEventObject(layoutObject,e);if(eventObject!=null)MochiKit.Signal.signal(this,"onclick",eventObject)};PlotKit.CanvasRenderer.prototype.onmouseover=function(e){var layoutObject=this._resolveObject(e);var eventObject=this._createEventObject(layoutObject,e);if(eventObject!=null)signal(this,"onmouseover",eventObject)};PlotKit.CanvasRenderer.prototype.onmouseout=function(e){var layoutObject=this._resolveObject(e);var eventObject=this._createEventObject(layoutObject,e);if(eventObject==null)signal(this,"onmouseout",e);else signal(this,"onmouseout",eventObject)};PlotKit.CanvasRenderer.prototype.onmousemove=function(e){var layoutObject=this._resolveObject(e);var eventObject=this._createEventObject(layoutObject,e);if(layoutObject==null&&this.event_isinside==null){return}if(layoutObject!=null&&this.event_isinside==null)signal(this,"onmouseover",eventObject);if(layoutObject==null&&this.event_isinside!=null)signal(this,"onmouseout",eventObject);if(layoutObject!=null&&this.event_isinside!=null)signal(this,"onmousemove",eventObject);this.event_isinside=layoutObject};PlotKit.CanvasRenderer.isSupported=function(canvasName){var canvas=null;try{if(MochiKit.Base.isUndefinedOrNull(canvasName))canvas=MochiKit.DOM.CANVAS({});else canvas=MochiKit.DOM.getElement(canvasName);var context=canvas.getContext("2d")}catch(e){var ie=navigator.appVersion.match(/MSIE (\d\.\d)/);var opera=navigator.userAgent.toLowerCase().indexOf("opera")!=-1;if(!ie||ie[1]<6||opera)return false;return true}return true}
;PlotKit.Canvas={};PlotKit.Canvas.CanvasRenderer=PlotKit.CanvasRenderer;PlotKit.Canvas.EXPORT=["CanvasRenderer"];PlotKit.Canvas.EXPORT_OK=["CanvasRenderer"];PlotKit.Canvas.__new__=function(){var m=MochiKit.Base;m.nameFunctions(this);this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}};PlotKit.Canvas.__new__();MochiKit.Base._exportSymbols(this,PlotKit.Canvas);try{if(typeof PlotKit.CanvasRenderer=="undefined"){throw""}}catch(e){throw"SweetCanvas depends on MochiKit.{Base,Color,DOM,Format} and PlotKit.{Layout, Canvas}"}if(typeof PlotKit.SweetCanvasRenderer=="undefined"){PlotKit.SweetCanvasRenderer={}}PlotKit.SweetCanvasRenderer=function(element,layout,options){if(arguments.length>0){this.__init__(element,layout,options)}};PlotKit.SweetCanvasRenderer.NAME="PlotKit.SweetCanvasRenderer";PlotKit.SweetCanvasRenderer.VERSION=PlotKit.VERSION;PlotKit.SweetCanvasRenderer.__repr__=function(){return"["+this.NAME+" "+this.VERSION+"]"};PlotKit.SweetCanvasRenderer.toString=function(){return this.__repr__()};PlotKit.SweetCanvasRenderer.prototype=new PlotKit.CanvasRenderer;PlotKit.SweetCanvasRenderer.prototype.constructor=PlotKit.SweetCanvasRenderer;PlotKit.SweetCanvasRenderer.__super__=PlotKit.CanvasRenderer.prototype;PlotKit.SweetCanvasRenderer.prototype.__init__=function(el,layout,opts){var moreOpts=PlotKit.Base.officeBlue();MochiKit.Base.update(moreOpts,opts);PlotKit.SweetCanvasRenderer.__super__.__init__.call(this,el,layout,moreOpts)};PlotKit.SweetCanvasRenderer.prototype._renderBarChart=function(){var bind=MochiKit.Base.bind;var shadowColor=MochiKit.Color.Color.blackColor().colorWithAlpha(.1).toRGBString();var prepareFakeShadow=function(context,x,y,w,h){context.fillStyle=shadowColor;context.fillRect(x-2,y-2,w+4,h+2);context.fillStyle=shadowColor;context.fillRect(x-1,y-1,w+2,h+1)};var colorCount=this.options.colorScheme.length;var colorScheme=this.options.colorScheme;var setNames=PlotKit.Base.keys(this.layout.datasets);var setCount=setNames.length;var bars=this.layout.bars;if(setCount==1&&this.options.barSingleDatasetColor){var chooseColor=function(xval){for(var i=0;i<bars.length;i++){var bar=bars[i];if(xval==bar.xval){return colorScheme[i%colorCount]}}return colorScheme[0]}}else{var chooseColor=function(name){for(var i=0;i<setCount;i++){if(name==setNames[i])return colorScheme[i%colorCount]}return colorScheme[0]}}var drawRect=function(context,bar){var x=this.area.w*bar.x+this.area.x;var y=this.area.h*bar.y+this.area.y;var w=this.area.w*bar.w;var h=this.area.h*bar.h;h=h||0;if(w<1||h<1)return;context.save();context.shadowBlur=5;context.shadowColor=MochiKit.Color.Color.fromHexString("#888888").toRGBString();if(this.isIE){context.save();context.fillStyle="#cccccc";context.fillRect(x-2,y-2,w+4,h+2);context.restore()}else{prepareFakeShadow(context,x,y,w,h)}if(this.options.shouldFill){if(setCount==1&&this.options.barSingleDatasetColor){context.fillStyle=chooseColor(bar.xval).toRGBString();context.fillRect(x,y,w,h)}else{context.fillStyle=chooseColor(bar.name).toRGBString();context.fillRect(x,y,w,h)}}if(this.options.displayValue){CanvasTextFunctions.enable(context);var textFont="sans";var textSize=7;var textColor="#333";var textValue=PWebUtil.formatNumber(bar.yval.toString());var textX=x+w*.5-context.measureText(textFont,textSize,textValue)*.5;var textY=y-3;context.strokeStyle=MochiKit.Color.Color.fromHexString(textColor).toRGBString();context.drawText(textFont,textSize,textX,textY,textValue)}context.shadowBlur=0;context.strokeStyle=MochiKit.Color.Color.whiteColor().toRGBString();context.lineWidth=2;if(this.options.shouldStroke){context.strokeRect(x,y,w,h)}context.restore()};this._renderBarChartWrap(this.layout.bars,bind(drawRect,this))};PlotKit.SweetCanvasRenderer.prototype._renderLineChart=function(){var context=this.element.getContext("2d");var colorCount=this.options.colorScheme.length;var colorScheme=this.options.colorScheme;var setNames=PlotKit.Base.keys(this.layout.datasets);var setCount=setNames.length;var bind=MochiKit.Base.bind;for(var i=0;i<setCount;i++){var setName=setNames[i];var color=colorScheme[i%colorCount];var strokeX=this.options.strokeColorTransform;context.save();var makePath=function(ctx){this.ctx_points=new Array;ctx.beginPath();var addPoint=function(ctx_,point){if(point.name==setName&&!isNaN(point.y)&&!isNaN(point.x)){this.ctx_points.push(new Array(this.area.w*point.x+this.area.x,this.area.h*point.y+this.area.y));if(this.ctx_points.length==1)ctx_.moveTo(this.area.w*point.x+this.area.x,this.area.h*point.y+this.area.y);else ctx_.lineTo(this.area.w*point.x+this.area.x,this.area.h*point.y+this.area.y)}};MochiKit.Iter.forEach(this.layout.points,partial(addPoint,ctx),this);for(var j=this.ctx_points.length-2;j>=0;j--)ctx.lineTo(this.ctx_points[j][0],this.ctx_points[j][1]);ctx.closePath()};if(this.options.shouldFill){context.save();if(this.isIE){context.fillStyle="#cccccc"}else{context.fillStyle=MochiKit.Color.Color.blackColor().colorWithAlpha(.2).toRGBString()}context.translate(-1,-2);bind(makePath,this)(context);if(this.options.shouldFill){context.fill()}context.restore()}context.shadowBlur=5;context.shadowColor=MochiKit.Color.Color.fromHexString("#888888").toRGBString();context.fillStyle=color.toRGBString();context.lineWidth=2;context.strokeStyle=color.toRGBString();if(this.options.shouldFill){bind(makePath,this)(context);context.fill()}if(this.options.shouldStroke){bind(makePath,this)(context);context.stroke()}context.restore()}};PlotKit.SweetCanvasRenderer.prototype._renderPieChart=function(){var context=this.element.getContext("2d");var colorCount=this.options.colorScheme.length;var slices=this.layout.slices;var centerx=this.area.x+this.area.w*.5;var centery=this.area.y+this.area.h*.5;var radius=Math.min(this.area.w*this.options.pieRadius,this.area.h*this.options.pieRadius);if(this.isIE){centerx=parseInt(centerx);centery=parseInt(centery);radius=parseInt(radius)}if(!this.isIE){context.save();var shadowColor=MochiKit.Color.Color.blackColor().colorWithAlpha(.2);context.fillStyle=shadowColor.toRGBString();context.shadowBlur=5;context.shadowColor=MochiKit.Color.Color.fromHexString("#888888").toRGBString();context.translate(1,1);context.beginPath();context.moveTo(centerx,centery);context.arc(centerx,centery,radius+2,0,Math.PI*2,false);context.closePath();context.fill();context.restore()}context.save();context.strokeStyle=MochiKit.Color.Color.whiteColor().toRGBString();context.lineWidth=2;for(var i=0;i<slices.length;i++){var color=this.options.colorScheme[i%colorCount];context.fillStyle=color.toRGBString();var makePath=function(){context.beginPath();context.moveTo(centerx,centery);context.arc(centerx,centery,radius,slices[i].startAngle-Math.PI/2,slices[i].endAngle-Math.PI/2,false);context.lineTo(centerx,centery);context.closePath()};if(Math.abs(slices[i].startAngle-slices[i].endAngle)>1e-4){if(this.options.shouldFill){makePath();context.fill()}if(this.options.shouldStroke){makePath();context.stroke()}}}context.restore()};PlotKit.SweetCanvasRenderer.prototype._renderBackground=function(){var context=this.element.getContext("2d");if(this.layout.style=="bar"||this.layout.style=="line"){context.save();context.fillStyle=this.options.backgroundColor.toRGBString();context.fillRect(this.area.x,this.area.y,this.area.w,this.area.h);context.strokeStyle=this.options.backgroundLineColor.toRGBString();context.lineWidth=1;var ticks=this.layout.yticks;var horiz=false;if(this.layout.style=="bar"&&this.layout.options.barOrientation=="horizontal"){ticks=this.layout.xticks;horiz=true}for(var i=0;i<ticks.length;i++){var x1=0;var y1=0;var x2=0;var y2=0;if(horiz){x1=ticks[i][0]*this.area.w+this.area.x;y1=this.area.y;x2=x1;y2=y1+this.area.h}else{x1=this.area.x;y1=ticks[i][0]*this.area.h+this.area.y;x2=x1+this.area.w;y2=y1}context.beginPath();context.moveTo(x1,y1);context.lineTo(x2,y2);context.closePath();context.stroke()}context.restore()}else{PlotKit.SweetCanvasRenderer.__super__._renderBackground.call(this)}};PlotKit.SweetCanvas={};PlotKit.SweetCanvas.SweetCanvasRenderer=PlotKit.SweetCanvasRenderer;PlotKit.SweetCanvas.EXPORT=["SweetCanvasRenderer"];PlotKit.SweetCanvas.EXPORT_OK=["SweetCanvasRenderer"];PlotKit.SweetCanvas.__new__=function(){var m=MochiKit.Base;m.nameFunctions(this);this.EXPORT_TAGS={":common":this.EXPORT,":all":m.concat(this.EXPORT,this.EXPORT_OK)}};PlotKit.SweetCanvas.__new__();MochiKit.Base._exportSymbols(this,PlotKit.SweetCanvas);PlotKit.SweetCanvasRenderer.prototype._renderLineChart=function(){var context=this.element.getContext("2d");var colorCount=this.options.colorScheme.length;var colorScheme=this.options.colorScheme;var setNames=PlotKit.Base.keys(this.layout.datasets);var setCount=setNames.length;var bind=MochiKit.Base.bind;for(var i=0;i<setCount;i++){var setName=setNames[i];var color=colorScheme[i%colorCount];var makePath=function(ctx){this.ctx_points=new Array;var open=true;var lines=[[]];var line=0;for(var j=0;j<this.layout.points.length;j++){if(this.layout.points[j].name==setName){this.ctx_points.push(new Array(this.area.w*this.layout.points[j].x+this.area.x,this.area.h*this.layout.points[j].y+this.area.y));if(!isNaN(this.layout.points[j].x)&&!isNaN(this.layout.points[j].y)){lines[line].push(this.layout.points[j])}else if(lines[line].length>0){line++;lines[line]=[]}}}for(var j=0;j<lines.length;j++){ctx.save();ctx.shadowBlur=5;ctx.shadowColor=MochiKit.Color.Color.fromHexString("#888888").toRGBString();ctx.fillStyle=color.toRGBString();ctx.lineWidth=2;ctx.strokeStyle=color.toRGBString();ctx.beginPath();for(var k=0;k<lines[j].length;k++){if(k==0)ctx.moveTo(this.area.w*lines[j][k].x+this.area.x,this.area.h*lines[j][k].y+this.area.y);else ctx.lineTo(this.area.w*lines[j][k].x+this.area.x,this.area.h*lines[j][k].y+this.area.y)}for(var k=lines[j].length-2;k>=0;k--){ctx.lineTo(this.area.w*lines[j][k].x+this.area.x,this.area.h*lines[j][k].y+this.area.y)}ctx.closePath();ctx.stroke();ctx.restore()}};bind(makePath,this)(context)}};PlotKit.Layout.prototype._evaluateLineTicksForYAxis=function(){var isNil=MochiKit.Base.isUndefinedOrNull;var bind=MochiKit.Base.bind;var unit="";if(cube&&cube.indicators&&cube.indicators.length>0&&cube.indicators[0].unit)unit=cube.indicators[0].unit;if(this.options.yTicks){this.yticks=new Array;var makeTicks=function(tick){var label=tick.label;if(isNil(label))label=tick.v.toString();var pos=1-this.yscale*(tick.v-this.minyval);if(pos>=0&&pos<=1){this.yticks.push([pos,PWebUtil.formatNumber(label,unit)])}};MochiKit.Iter.forEach(this.options.yTicks,bind(makeTicks,this))}else if(this.options.yNumberOfTicks){this.yticks=new Array;var roundInt=PlotKit.Base.roundInterval;var prec=this.options.yTickPrecision;var roughSeparation=roundInt(this.yrange,this.options.yNumberOfTicks,prec);var roughOffset=0;for(var i=0;i<=this.options.yNumberOfTicks;i++){var yval=this.minyval+i*roughSeparation;if(yval==0){break}else if(yval>0&&yval-roughSeparation/2<=0||yval<0&&yval+roughSeparation/2>=0){roughOffset=yval;break}}for(var i=0;i<=this.options.yNumberOfTicks;i++){var yval=this.minyval+i*roughSeparation-roughOffset;var pos=1-(yval-this.minyval)*this.yscale;if(pos>1||pos<0)continue;this.yticks.push([pos,PWebUtil.formatNumber(MochiKit.Format.roundToFixed(yval,prec),unit)])}}};PlotKit.CanvasRenderer.prototype._renderAxis=function(){var bind=MochiKit.Base.bind;if(!this.options.drawXAxis&&!this.options.drawYAxis)return;var context=this.element.getContext("2d");var labelStyle={style:{position:"absolute",fontSize:this.options.axisLabelFontSize+"px",zIndex:10,color:this.options.axisLabelColor.toRGBString(),width:this.options.axisLabelWidth+"px",overflow:"hidden"}};context.save();context.strokeStyle=this.options.axisLineColor.toRGBString();context.lineWidth=this.options.axisLineWidth;if(this.options.drawYAxis){if(this.layout.yticks){var drawTick=function(tick){if(typeof tick=="function")return;var x=this.area.x;var y=this.area.y+tick[0]*this.area.h;context.beginPath();context.moveTo(x,y);context.lineTo(x-this.options.axisTickSize,y);context.closePath();context.stroke();var label=MochiKit.DOM.DIV(labelStyle,tick[1]);label.style.top=y-this.options.axisLabelFontSize+"px";label.style.left=x-this.options.padding.left-this.options.axisTickSize+"px";label.style.textAlign="right";label.className="yLabel";label.style.width=this.options.padding.left-this.options.axisTickSize*2+"px";MochiKit.DOM.appendChildNodes(this.container,label);this.ylabels.push(label)};MochiKit.Iter.forEach(this.layout.yticks,bind(drawTick,this))}context.beginPath();context.moveTo(this.area.x,this.area.y);context.lineTo(this.area.x,this.area.y+this.area.h);context.closePath();context.stroke()}if(this.options.drawXAxis){if(this.layout.xticks){var drawTick=function(tick){if(typeof dataset=="function")return;var x=this.area.x+tick[0]*this.area.w;var y=this.area.y+this.area.h;if(tick[1]!=""){context.beginPath();context.moveTo(x,y);context.lineTo(x,y+this.options.axisTickSize);context.closePath();context.stroke()}var label=MochiKit.DOM.DIV(labelStyle,tick[1]);label.style.top=y+this.options.axisTickSize+"px";label.style.left=x-this.options.axisLabelWidth/2+"px";label.style.textAlign="center";label.className="xLabel";label.style.width=this.options.axisLabelWidth+"px";MochiKit.DOM.appendChildNodes(this.container,label);this.xlabels.push(label)};MochiKit.Iter.forEach(this.layout.xticks,bind(drawTick,this))}var yoffset=this.area.y+this.layout.maxyval*this.layout.yscale*this.area.h;context.beginPath();context.moveTo(this.area.x,yoffset);context.lineTo(this.area.x+this.area.w,yoffset);context.closePath();context.stroke();context.beginPath();context.moveTo(this.area.x+this.area.w,this.area.y);context.lineTo(this.area.x+this.area.w,this.area.y+this.area.h);context.closePath();context.stroke()}context.restore()};var YAHOO_PP=function(){return{util:{},widget:{},example:{},namespace:function(sNameSpace){if(!sNameSpace||!sNameSpace.length){return null}var levels=sNameSpace.split(".");var currentNS=YAHOO_PP;for(var i=levels[0]=="YAHOO_PP"?1:0;i<levels.length;++i){currentNS[levels[i]]=currentNS[levels[i]]||{};currentNS=currentNS[levels[i]]}return currentNS}}}();YAHOO_PP.util.CustomEvent=function(_1,_2){this.type=_1;this.scope=_2||window;this.subscribers=[];if(YAHOO_PP.util["Event"]){YAHOO_PP.util.Event.regCE(this)}};YAHOO_PP.util.CustomEvent.prototype={subscribe:function(fn,_4,_5){this.subscribers.push(new YAHOO_PP.util.Subscriber(fn,_4,_5))},unsubscribe:function(fn,_6){var _7=false;for(var i=0;i<this.subscribers.length;++i){var s=this.subscribers[i];if(s&&s.contains(fn,_6)){this._delete(i);_7=true}}return _7},fire:function(){for(var i=0;i<this.subscribers.length;++i){var s=this.subscribers[i];if(s){var _10=s.override?s.obj:this.scope;s.fn.call(_10,this.type,arguments,s.obj)}}},unsubscribeAll:function(){for(var i=0;i<this.subscribers.length;++i){this._delete(i)}},_delete:function(_11){var s=this.subscribers[_11];if(s){delete s.fn;delete s.obj}delete this.subscribers[_11]}};YAHOO_PP.util.Subscriber=function(fn,obj,_13){this.fn=fn;this.obj=obj||null;this.override=_13};YAHOO_PP.util.Subscriber.prototype.contains=function(fn,obj){return this.fn==fn&&this.obj==obj};if(!YAHOO_PP.util.Event){YAHOO_PP.util.Event=function(){var _14=false;var _15=[];var _16=[];var _17=[];var _18=[];var _19=[];var _20=[];return{EL:0,TYPE:1,FN:2,WFN:3,SCOPE:3,ADJ_SCOPE:4,isSafari:navigator.userAgent.match(/safari/gi),isIE:!this.isSafari&&navigator.userAgent.match(/msie/gi),addListener:function(el,_22,fn,_23,_24){if(this._isValidCollection(el)){var ok=true;for(var i=0;i<el.length;++i){ok=this.on(el[i],_22,fn,_23,_24)&&ok}return ok}else{if(typeof el=="string"){if(_14){el=this.getEl(el)}else{_16[_16.length]=[el,_22,fn,_23,_24];return true}}}if(!el){return false}if("unload"==_22&&_23!==this){_17[_17.length]=[el,_22,fn,_23,_24];return true}var _26=_24?_23:el;var _27=function(e){return fn.call(_26,YAHOO_PP.util.Event.getEvent(e),_23)};var li=[el,_22,fn,_27,_26];var _30=_15.length;_15[_30]=li;if(this.useLegacyEvent(el,_22)){var _31=this.getLegacyIndex(el,_22);if(_31==-1){_31=_19.length;_19[_31]=[el,_22,el["on"+_22]];_20[_31]=[];el["on"+_22]=function(e){YAHOO_PP.util.Event.fireLegacyEvent(YAHOO_PP.util.Event.getEvent(e),_31)}}_20[_31].push(_30)}else{if(el.addEventListener){el.addEventListener(_22,_27,false)}else{if(el.attachEvent){el.attachEvent("on"+_22,_27)}}}return true},fireLegacyEvent:function(e,_32){var ok=true;var le=_20[_32];for(i=0;i<le.length;++i){var _34=le[i];if(_34){var li=_15[_34];var _35=li[this.ADJ_SCOPE];var ret=li[this.WFN].call(_35,e);ok=ok&&ret}}return ok},getLegacyIndex:function(el,_37){for(var i=0;i<_19.length;++i){var le=_19[i];if(le&&le[0]==el&&le[1]==_37){return i}}return-1},useLegacyEvent:function(el,_38){return!el.addEventListener&&!el.attachEvent||_38=="click"&&this.isSafari},removeListener:function(el,_39,fn){if(typeof el=="string"){el=this.getEl(el)}else{if(this._isValidCollection(el)){var ok=true;for(var i=0;i<el.length;++i){ok=this.removeListener(el[i],_39,fn)&&ok}return ok}}var _40=null;var _41=this._getCacheIndex(el,_39,fn);if(_41>=0){_40=_15[_41]}if(!el||!_40){return false}if(el.removeEventListener){el.removeEventListener(_39,_40[this.WFN],false)}else{if(el.detachEvent){el.detachEvent("on"+_39,_40[this.WFN])}}delete _15[_41][this.WFN];delete _15[_41][this.FN];delete _15[_41];return true},getTarget:function(ev,_43){var t=ev.target||ev.srcElement;if(_43&&t&&"#text"==t.nodeName){return t.parentNode}else{return t}},getPageX:function(ev){var x=ev.pageX;if(!x&&0!==x){x=ev.clientX||0;if(this.isIE){x+=this._getScrollLeft()}}return x},getPageY:function(ev){var y=ev.pageY;if(!y&&0!==y){y=ev.clientY||0;if(this.isIE){y+=this._getScrollTop()}}return y},getRelatedTarget:function(ev){var t=ev.relatedTarget;if(!t){if(ev.type=="mouseout"){t=ev.toElement}else{if(ev.type=="mouseover"){t=ev.fromElement}}}return t},getTime:function(ev){if(!ev.time){var t=(new Date).getTime();try{ev.time=t}catch(e){return t}}return ev.time},stopEvent:function(ev){this.stopPropagation(ev);this.preventDefault(ev)},stopPropagation:function(ev){if(ev.stopPropagation){ev.stopPropagation()}else{ev.cancelBubble=true}},preventDefault:function(ev){if(ev.preventDefault){ev.preventDefault()}else{ev.returnValue=false}},getEvent:function(e){var ev=e||window.event;if(!ev){var c=this.getEvent.caller;while(c){ev=c.arguments[0];if(ev&&Event==ev.constructor){break}c=c.caller}}return ev},getCharCode:function(ev){return ev.charCode||ev.type=="keypress"?ev.keyCode:0},_getCacheIndex:function(el,_48,fn){for(var i=0;i<_15.length;++i){var li=_15[i];if(li&&li[this.FN]==fn&&li[this.EL]==el&&li[this.TYPE]==_48){return i}}return-1},_isValidCollection:function(o){return o&&o.length&&typeof o!="string"&&!o.tagName&&!o.alert&&typeof o[0]!="undefined"},elCache:{},getEl:function(id){return document.getElementById(id)},clearCache:function(){for(i in this.elCache){delete this.elCache[i]}},regCE:function(ce){_18.push(ce)},_load:function(e){_14=true},_tryPreloadAttach:function(){var _52=!_14;for(var i=0;i<_16.length;++i){var d=_16[i];if(d){var el=this.getEl(d[this.EL]);if(el){this.on(el,d[this.TYPE],d[this.FN],d[this.SCOPE],d[this.ADJ_SCOPE]);delete _16[i]}}}if(_52){setTimeout("YAHOO_PP.util.Event._tryPreloadAttach()",50)}},_unload:function(e,me){for(var i=0;i<_17.length;++i){var l=_17[i];if(l){var _56=l[this.ADJ_SCOPE]?l[this.SCOPE]:window;l[this.FN].call(_56,this.getEvent(e),l[this.SCOPE])}}if(_15&&_15.length>0){for(i=0;i<_15.length;++i){l=_15[i];if(l){this.removeListener(l[this.EL],l[this.TYPE],l[this.FN])}}this.clearCache()}for(i=0;i<_18.length;++i){_18[i].unsubscribeAll();delete _18[i]}for(i=0;i<_19.length;++i){delete _19[i][0];delete _19[i]}},_getScrollLeft:function(){return this._getScroll()[1]},_getScrollTop:function(){return this._getScroll()[0]},_getScroll:function(){var dd=document.documentElement;db=document.body;if(dd&&dd.scrollTop){return[dd.scrollTop,dd.scrollLeft]}else{if(db){return[db.scrollTop,db.scrollLeft]}else{return[0,0]}}}}}();YAHOO_PP.util.Event.on=YAHOO_PP.util.Event.addListener;if(document&&document.body){YAHOO_PP.util.Event._load()}else{YAHOO_PP.util.Event.on(window,"load",YAHOO_PP.util.Event._load,YAHOO_PP.util.Event,true)}YAHOO_PP.util.Event.on(window,"unload",YAHOO_PP.util.Event._unload,YAHOO_PP.util.Event,true);YAHOO_PP.util.Event._tryPreloadAttach()}YAHOO_PP.util.Dom=new function(){this.get=function(el){if(typeof el=="string"){el=document.getElementById(el)}return el};this.getStyle=function(el,property){var value=null;var dv=document.defaultView;el=this.get(el);if(property=="opacity"&&el.filters){value=1;try{value=el.filters.item("DXImageTransform.Microsoft.Alpha").opacity/100}catch(e){try{value=el.filters.item("alpha").opacity/100}catch(e){}}}else if(el.style[property]){value=el.style[property]}else if(el.currentStyle&&el.currentStyle[property]){value=el.currentStyle[property]}else if(dv&&dv.getComputedStyle){var converted="";for(i=0,len=property.length;i<len;++i){if(property.charAt(i)==property.charAt(i).toUpperCase()){converted=converted+"-"+property.charAt(i).toLowerCase()}else{converted=converted+property.charAt(i)}}if(dv.getComputedStyle(el,"").getPropertyValue(converted)){value=dv.getComputedStyle(el,"").getPropertyValue(converted)}}return value};this.setStyle=function(el,property,val){el=this.get(el);switch(property){case"opacity":if(el.filters){el.style.filter="alpha(opacity="+val*100+")";if(!el.currentStyle.hasLayout){el.style.zoom=1}}else{el.style.opacity=val;el.style["-moz-opacity"]=val;el.style["-khtml-opacity"]=val}break;default:el.style[property]=val}};this.getXY=function(el){el=this.get(el);if(el.parentNode===null||this.getStyle(el,"display")=="none"){return false}var parent=null;var pos=[];var box;if(el.getBoundingClientRect){box=el.getBoundingClientRect();var scrollTop=document.documentElement.scrollTop||document.body.scrollTop;var scrollLeft=document.documentElement.scrollLeft||document.body.scrollLeft;return[box.left+scrollLeft,box.top+scrollTop]}else if(document.getBoxObjectFor){box=document.getBoxObjectFor(el);pos=[box.x,box.y]}else{pos=[el.offsetLeft,el.offsetTop];parent=el.offsetParent;if(parent!=el){while(parent){pos[0]+=parent.offsetLeft;pos[1]+=parent.offsetTop;parent=parent.offsetParent}}var ua=navigator.userAgent.toLowerCase();if(ua.indexOf("opera")!=-1||ua.indexOf("safari")!=-1&&this.getStyle(el,"position")=="absolute"){pos[1]-=document.body.offsetTop}}if(el.parentNode){parent=el.parentNode}else{parent=null}while(parent&&parent.tagName!="BODY"&&parent.tagName!="HTML"){pos[0]-=parent.scrollLeft;pos[1]-=parent.scrollTop;if(parent.parentNode){parent=parent.parentNode}else{parent=null}}return pos};this.getX=function(el){return this.getXY(el)[0]};this.getY=function(el){return this.getXY(el)[1]};this.setXY=function(el,pos,noRetry){el=this.get(el);var pageXY=YAHOO_PP.util.Dom.getXY(el);if(pageXY===false){return false}var delta=[parseInt(YAHOO_PP.util.Dom.getStyle(el,"left"),10),parseInt(YAHOO_PP.util.Dom.getStyle(el,"top"),10)];if(isNaN(delta[0])){delta[0]=0}if(isNaN(delta[1])){delta[1]=0}if(pos[0]!==null){el.style.left=pos[0]-pageXY[0]+delta[0]+"px"}if(pos[1]!==null){el.style.top=pos[1]-pageXY[1]+delta[1]+"px"}var newXY=this.getXY(el);if(!noRetry&&(newXY[0]!=pos[0]||newXY[1]!=pos[1])){this.setXY(el,pos,true)}return true};this.setX=function(el,x){return this.setXY(el,[x,null])};this.setY=function(el,y){return this.setXY(el,[null,y])};this.getRegion=function(el){el=this.get(el);return new YAHOO_PP.util.Region.getRegion(el)};this.getClientWidth=function(){return document.documentElement.offsetWidth||document.body.offsetWidth};this.getClientHeight=function(){return self.innerHeight||document.documentElement.clientHeight||document.body.clientHeight}};YAHOO_PP.util.Region=function(t,r,b,l){this.top=t;this.right=r;this.bottom=b;this.left=l};YAHOO_PP.util.Region.prototype.contains=function(region){return region.left>=this.left&&region.right<=this.right&&region.top>=this.top&&region.bottom<=this.bottom};YAHOO_PP.util.Region.prototype.getArea=function(){return(this.bottom-this.top)*(this.right-this.left)};YAHOO_PP.util.Region.prototype.intersect=function(region){var t=Math.max(this.top,region.top);var r=Math.min(this.right,region.right);var b=Math.min(this.bottom,region.bottom);var l=Math.max(this.left,region.left);if(b>=t&&r>=l){return new YAHOO_PP.util.Region(t,r,b,l)}else{return null}};YAHOO_PP.util.Region.prototype.union=function(region){var t=Math.min(this.top,region.top);var r=Math.max(this.right,region.right);var b=Math.max(this.bottom,region.bottom);var l=Math.min(this.left,region.left);return new YAHOO_PP.util.Region(t,r,b,l)};YAHOO_PP.util.Region.prototype.toString=function(){return"Region {"+"  t: "+this.top+", r: "+this.right+", b: "+this.bottom+", l: "+this.left+"}"};YAHOO_PP.util.Region.getRegion=function(el){var p=YAHOO_PP.util.Dom.getXY(el);var t=p[1];var r=p[0]+el.offsetWidth;var b=p[1]+el.offsetHeight;var l=p[0];return new YAHOO_PP.util.Region(t,r,b,l)};YAHOO_PP.util.Point=function(x,y){this.x=x;this.y=y;this.top=y;this.right=x;this.bottom=y;this.left=x};YAHOO_PP.util.Point.prototype=new YAHOO_PP.util.Region;YAHOO_PP.util.DragDrop=function(id,_2){if(id){this.init(id,_2)}};YAHOO_PP.util.DragDrop.prototype={id:null,dragElId:null,handleElId:null,invalidHandleTypes:null,startPageX:0,startPageY:0,groups:null,locked:false,lock:function(){this.locked=true},unlock:function(){this.locked=false},isTarget:true,padding:null,_domRef:null,__ygDragDrop:true,constrainX:false,constrainY:false,minX:0,maxX:0,minY:0,maxY:0,maintainOffset:false,xTicks:null,yTicks:null,primaryButtonOnly:true,b4StartDrag:function(x,y){},startDrag:function(x,y){},b4Drag:function(e){},onDrag:function(e){},onDragEnter:function(e,id){},b4DragOver:function(e){},onDragOver:function(e,id){},b4DragOut:function(e){},onDragOut:function(e,id){},b4DragDrop:function(e){},onDragDrop:function(e,id){},b4EndDrag:function(e){},endDrag:function(e){},b4MouseDown:function(e){},onMouseDown:function(e){},onMouseUp:function(e){},getEl:function(){if(!this._domRef){this._domRef=this.DDM.getElement(this.id)}return this._domRef},getDragEl:function(){return this.DDM.getElement(this.dragElId)},init:function(id,_6){this.initTarget(id,_6);YAHOO_PP.util.Event.addListener(id,"mousedown",this.handleMouseDown,this,true)},initTarget:function(id,_7){this.DDM=YAHOO_PP.util.DDM;this.padding=[0,0,0,0];this.groups={};this.id=id;this.setDragElId(id);this.invalidHandleTypes={a:"a"};this.handleElId=id;if(document&&document.body){this.setInitPosition()}this.addToGroup(_7?_7:"default")},setPadding:function(_8,_9,_10,_11){if(!_9&&0!==_9){this.padding=[_8,_8,_8,_8]}else{if(!_10&&0!==_10){this.padding=[_8,_9,_8,_9]}else{this.padding=[_8,_9,_10,_11]}}},setInitPosition:function(_12,_13){var el=this.getEl();if(!this.DDM.verifyEl(el)){return}var dx=_12||0;var dy=_13||0;var p=YAHOO_PP.util.Dom.getXY(el);this.initPageX=p[0]-dx;this.initPageY=p[1]-dy;this.lastPageX=p[0];this.lastPageY=p[1];this.setStartPosition(p)},setStartPosition:function(pos){var p=pos||YAHOO_PP.util.Dom.getXY(this.getEl());this.startPageX=p[0];this.startPageY=p[1]},addToGroup:function(_19){this.groups[_19]=true;this.DDM.regDragDrop(this,_19)},setDragElId:function(id){this.dragElId=id},setHandleElId:function(id){this.handleElId=id;this.DDM.regHandle(this.id,id)},setOuterHandleElId:function(id){YAHOO_PP.util.Event.addListener(id,"mousedown",this.handleMouseDown,this,true);this.setHandleElId(id)},unreg:function(){YAHOO_PP.util.Event.removeListener(this.id,"mousedown",this.handleMouseDown);this._domRef=null;this.DDM._remove(this)},isLocked:function(){return this.DDM.isLocked()||this.locked},handleMouseDown:function(e,oDD){var EU=YAHOO_PP.util.Event;var _22=e.which||e.button;if(this.primaryButtonOnly&&_22>1){return}if(this.isLocked()){return}this.DDM.refreshCache(this.groups);var pt=new YAHOO_PP.util.Point(EU.getPageX(e),EU.getPageY(e));if(this.DDM.isOverTarget(pt,this)){var _24=EU.getTarget(e);if(this.isValidHandleChild(_24)&&(this.id==this.handleElId||this.DDM.handleWasClicked(_24,this.id))){this.setStartPosition();this.b4MouseDown(e);this.onMouseDown(e);this.DDM.handleMouseDown(e,this);this.DDM.stopEvent(e)}}},addInvalidHandleType:function(_25){var _26=_25.toUpperCase();this.invalidHandleTypes[_26]=_26},removeInvalidHandleType:function(_27){var _28=_27.toUpperCase();this.invalidHandleTypes[_28]=null},isValidHandleChild:function(_29){var _30=_29.nodeName;if(_30=="#text"){_30=_29.parentNode.nodeName}return!this.invalidHandleTypes[_30]},setXTicks:function(_31,_32){this.xTicks=[];this.xTickSize=_32;var _33={};for(var i=this.initPageX;i>=this.minX;i=i-_32){if(!_33[i]){this.xTicks[this.xTicks.length]=i;_33[i]=true}}for(i=this.initPageX;i<=this.maxX;i=i+_32){if(!_33[i]){this.xTicks[this.xTicks.length]=i;_33[i]=true}}this.xTicks.sort(this.DDM.numericSort)},setYTicks:function(_35,_36){this.yTicks=[];this.yTickSize=_36;var _37={};for(var i=this.initPageY;i>=this.minY;i=i-_36){if(!_37[i]){this.yTicks[this.yTicks.length]=i;_37[i]=true}}for(i=this.initPageY;i<=this.maxY;i=i+_36){if(!_37[i]){this.yTicks[this.yTicks.length]=i;_37[i]=true}}this.yTicks.sort(this.DDM.numericSort)},setXConstraint:function(_38,_39,_40){this.leftConstraint=_38;this.rightConstraint=_39;this.minX=this.initPageX-_38;this.maxX=this.initPageX+_39;if(_40){this.setXTicks(this.initPageX,_40)}this.constrainX=true},setYConstraint:function(iUp,_42,_43){this.topConstraint=iUp;this.bottomConstraint=_42;this.minY=this.initPageY-iUp;this.maxY=this.initPageY+_42;if(_43){this.setYTicks(this.initPageY,_43)}this.constrainY=true},resetConstraints:function(){var dx=this.maintainOffset?this.lastPageX-this.initPageX:0;var dy=this.maintainOffset?this.lastPageY-this.initPageY:0;this.setInitPosition(dx,dy);if(this.constrainX){this.setXConstraint(this.leftConstraint,this.rightConstraint,this.xTickSize)}if(this.constrainY){this.setYConstraint(this.topConstraint,this.bottomConstraint,this.yTickSize)}},getTick:function(val,_45){if(!_45){return val}else{if(_45[0]>=val){return _45[0]}else{for(var i=0;i<_45.length;++i){var _46=i+1;if(_45[_46]&&_45[_46]>=val){var _47=val-_45[i];var _48=_45[_46]-val;return _48>_47?_45[i]:_45[_46]}}return _45[_45.length-1]}}},toString:function(val,_49){return"YAHOO_PP.util.DragDrop {"+this.id+"}"}};if(!YAHOO_PP.util.DragDropMgr){YAHOO_PP.util.DragDropMgr=new function(){var _50=YAHOO_PP.util;this.ids={};this.handleIds={};this.dragCurrent=null;this.dragOvers={};this.deltaX=0;this.deltaY=0;this.preventDefault=true;this.stopPropagation=true;this.initalized=false;this.locked=false;this.init=function(){};this.POINT=0;this.INTERSECT=1;this.mode=this.POINT;this._execOnAll=function(_51,_52){for(var i in this.ids){for(var j in this.ids[i]){var oDD=this.ids[i][j];if(!this.isTypeOfDD(oDD)){continue}oDD[_51].apply(oDD,_52)}}};this._onLoad=function(){this._execOnAll("setInitPosition",[]);var EU=_50.Event;EU.addListener(document,"mouseup",this.handleMouseUp,this,true);EU.addListener(document,"mousemove",this.handleMouseMove,this,true);EU.addListener(window,"unload",this._onUnload,this,true);EU.addListener(window,"resize",this._onResize,this,true);this.initalized=true};this._onResize=function(e){this._execOnAll("resetConstraints",[])};this.lock=function(){this.locked=true};this.unlock=function(){this.locked=false};this.isLocked=function(){return this.locked};this.locationCache={};this.useCache=true;this.clickPixelThresh=3;this.clickTimeThresh=1e3;this.dragThreshMet=false;this.clickTimeout=null;this.startX=0;this.startY=0;this.regDragDrop=function(oDD,_54){if(!this.initialized){this.init()}if(!this.ids[_54]){this.ids[_54]={}}this.ids[_54][oDD.id]=oDD};this._remove=function(oDD){for(var g in oDD.groups){if(g&&this.ids[g][oDD.id]){delete this.ids[g][oDD.id]}}delete this.handleIds[oDD.id]};this.regHandle=function(_56,_57){if(!this.handleIds[_56]){this.handleIds[_56]={}}this.handleIds[_56][_57]=_57};this.isDragDrop=function(id){return this.getDDById(id)?true:false};this.getRelated=function(_58,_59){var _60=[];for(var i in _58.groups){for(j in this.ids[i]){var dd=this.ids[i][j];if(!this.isTypeOfDD(dd)){continue}
if(!_59||dd.isTarget){_60[_60.length]=dd}}}return _60};this.isLegalTarget=function(oDD,_62){var _63=this.getRelated(oDD);for(var i=0;i<_63.length;++i){if(_63[i].id==_62.id){return true}}return false};this.isTypeOfDD=function(oDD){return oDD&&oDD.__ygDragDrop};this.isHandle=function(_64,_65){return this.handleIds[_64]&&this.handleIds[_64][_65]};this.getDDById=function(id){for(var i in this.ids){if(this.ids[i][id]){return this.ids[i][id]}}return null};this.handleMouseDown=function(e,oDD){this.dragCurrent=oDD;var el=oDD.getEl();this.startX=_50.Event.getPageX(e);this.startY=_50.Event.getPageY(e);this.deltaX=this.startX-el.offsetLeft;this.deltaY=this.startY-el.offsetTop;this.dragThreshMet=false;this.clickTimeout=setTimeout("var DDM=YAHOO_PP.util.DDM;DDM.startDrag(DDM.startX, DDM.startY)",this.clickTimeThresh)};this.startDrag=function(x,y){clearTimeout(this.clickTimeout);if(this.dragCurrent){this.dragCurrent.b4StartDrag(x,y);this.dragCurrent.startDrag(x,y)}this.dragThreshMet=true};this.handleMouseUp=function(e){if(!this.dragCurrent){return}clearTimeout(this.clickTimeout);if(this.dragThreshMet){this.fireEvents(e,true)}else{}this.stopDrag(e);this.stopEvent(e)};this.stopEvent=function(e){if(this.stopPropagation){_50.Event.stopPropagation(e)}if(this.preventDefault){_50.Event.preventDefault(e)}};this.stopDrag=function(e){if(this.dragCurrent){if(this.dragThreshMet){this.dragCurrent.b4EndDrag(e);this.dragCurrent.endDrag(e)}this.dragCurrent.onMouseUp(e)}this.dragCurrent=null;this.dragOvers={}};this.handleMouseMove=function(e){if(!this.dragCurrent){return}if(_50.Event.isIE&&!e.button){this.stopEvent(e);return this.handleMouseUp(e)}if(!this.dragThreshMet){var _66=Math.abs(this.startX-_50.Event.getPageX(e));var _67=Math.abs(this.startY-_50.Event.getPageY(e));if(_66>this.clickPixelThresh||_67>this.clickPixelThresh){this.startDrag(this.startX,this.startY)}}if(this.dragThreshMet){this.dragCurrent.b4Drag(e);this.dragCurrent.onDrag(e);this.fireEvents(e,false)}this.stopEvent(e)};this.fireEvents=function(e,_68){var dc=this.dragCurrent;if(!dc||dc.isLocked()){return}var x=_50.Event.getPageX(e);var y=_50.Event.getPageY(e);var pt=new YAHOO_PP.util.Point(x,y);var _70=[];var _71=[];var _72=[];var _73=[];var _74=[];for(var i in this.dragOvers){var ddo=this.dragOvers[i];if(!this.isTypeOfDD(ddo)){continue}if(!this.isOverTarget(pt,ddo,this.mode)){_71.push(ddo)}_70[i]=true;delete this.dragOvers[i]}for(var _76 in dc.groups){if("string"!=typeof _76){continue}for(i in this.ids[_76]){var oDD=this.ids[_76][i];if(!this.isTypeOfDD(oDD)){continue}if(oDD.isTarget&&!oDD.isLocked()&&oDD!=dc){if(this.isOverTarget(pt,oDD,this.mode)){if(_68){_73.push(oDD)}else{if(!_70[oDD.id]){_74.push(oDD)}else{_72.push(oDD)}this.dragOvers[oDD.id]=oDD}}}}}if(this.mode){if(_71.length>0){dc.b4DragOut(e,_71);dc.onDragOut(e,_71)}if(_74.length>0){dc.onDragEnter(e,_74)}if(_72.length>0){dc.b4DragOver(e,_72);dc.onDragOver(e,_72)}if(_73.length>0){dc.b4DragDrop(e,_73);dc.onDragDrop(e,_73)}}else{for(i=0;i<_71.length;++i){dc.b4DragOut(e,_71[i].id);dc.onDragOut(e,_71[i].id)}for(i=0;i<_74.length;++i){dc.onDragEnter(e,_74[i].id)}for(i=0;i<_72.length;++i){dc.b4DragOver(e,_72[i].id);dc.onDragOver(e,_72[i].id)}for(i=0;i<_73.length;++i){dc.b4DragDrop(e,_73[i].id);dc.onDragDrop(e,_73[i].id)}}};this.getBestMatch=function(dds){var _78=null;if(dds.length==1){_78=dds[0]}else{for(var i=0;i<dds.length;++i){var dd=dds[i];if(dd.cursorIsOver){_78=dd;break}else{if(!_78||_78.overlap.getArea()<dd.overlap.getArea()){_78=dd}}}}return _78};this.refreshCache=function(_79){for(sGroup in _79){if("string"!=typeof sGroup){continue}for(i in this.ids[sGroup]){var oDD=this.ids[sGroup][i];if(this.isTypeOfDD(oDD)){var loc=this.getLocation(oDD);if(loc){this.locationCache[oDD.id]=loc}else{delete this.locationCache[oDD.id];oDD.unreg()}}}}};this.verifyEl=function(el){try{if(el){var _81=el.offsetParent;if(_81){return true}}}catch(e){}return false};this.getLocation=function(oDD){if(!this.isTypeOfDD(oDD)){return null}var el=oDD.getEl();if(!this.verifyEl(el)){return null}var _82=YAHOO_PP.util.Dom.getXY(el);x1=_82[0];x2=x1+el.offsetWidth;y1=_82[1];y2=y1+el.offsetHeight;var t=y1-oDD.padding[0];var r=x2+oDD.padding[1];var b=y2+oDD.padding[2];var l=x1-oDD.padding[3];return new YAHOO_PP.util.Region(t,r,b,l)};this.isOverTarget=function(pt,_87,_88){var loc=this.locationCache[_87.id];if(!loc||!this.useCache){loc=this.getLocation(_87);this.locationCache[_87.id]=loc}_87.cursorIsOver=loc.contains(pt);_87.overlap=null;if(_88){var _89=YAHOO_PP.util.Region.getRegion(this.dragCurrent.getDragEl());var _90=_89.intersect(loc);if(_90){_87.overlap=_90;return true}else{return false}}else{return _87.cursorIsOver}};this._onUnload=function(e,me){this.unregAll()};this.unregAll=function(){if(this.dragCurrent){this.stopDrag();this.dragCurrent=null}this._execOnAll("unreg",[]);for(i in this.elementCache){delete this.elementCache[i]}this.elementCache={};this.ids={}};this.elementCache={};this.getElWrapper=function(id){var _92=this.elementCache[id];if(!_92||!_92.el){_92=this.elementCache[id]=new this.ElementWrapper(document.getElementById(id))}return _92};this.getElement=function(id){return document.getElementById(id)};this.getCss=function(id){var css=null;var el=document.getElementById(id);if(el){css=el.style}return css};this.ElementWrapper=function(el){this.el=el||null;this.id=this.el&&el.id;this.css=this.el&&el.style};this.getPosX=function(el){return YAHOO_PP.util.Dom.getX(el)};this.getPosY=function(el){return YAHOO_PP.util.Dom.getY(el)};this.swapNode=function(n1,n2){if(n1.swapNode){n1.swapNode(n2)}else{var p=n2.parentNode;var s=n2.nextSibling;n1.parentNode.replaceChild(n2,n1);p.insertBefore(n1,s)}};this.getScroll=function(){var t,l;if(document.documentElement&&document.documentElement.scrollTop){t=document.documentElement.scrollTop;l=document.documentElement.scrollLeft}else{if(document.body){t=document.body.scrollTop;l=document.body.scrollLeft}}return{top:t,left:l}};this.getStyle=function(el,_97){if(el.style.styleProp){return el.style.styleProp}else{if(el.currentStyle){return el.currentStyle[_97]}else{if(document.defaultView){return document.defaultView.getComputedStyle(el,null).getPropertyValue(_97)}}}};this.getScrollTop=function(){return this.getScroll().top};this.getScrollLeft=function(){return this.getScroll().left};this.moveToEl=function(_98,_99){var _100=YAHOO_PP.util.Dom.getXY(_99);YAHOO_PP.util.Dom.setXY(_98,_100)};this.getClientHeight=function(){return window.innerHeight?window.innerHeight:document.documentElement&&document.documentElement.clientHeight?document.documentElement.clientHeight:document.body.offsetHeight};this.getClientWidth=function(){return window.innerWidth?window.innerWidth:document.documentElement&&document.documentElement.clientWidth?document.documentElement.clientWidth:document.body.offsetWidth};this.numericSort=function(a,b){return a-b};this._timeoutCount=0;this._addListeners=function(){if(_50.Event&&document&&document.body){this._onLoad()}else{if(this._timeoutCount>500){}else{setTimeout("YAHOO_PP.util.DDM._addListeners()",10);this._timeoutCount+=1}}};this.handleWasClicked=function(node,id){if(this.isHandle(id,node.id)){return true}else{var p=node.parentNode;while(p){if(this.isHandle(id,p.id)){return true}else{p=p.parentNode}}}return false}};YAHOO_PP.util.DDM=YAHOO_PP.util.DragDropMgr;YAHOO_PP.util.DDM._addListeners()}YAHOO_PP.util.DD=function(id,_103){if(id){this.init(id,_103)}};YAHOO_PP.util.DD.prototype=new YAHOO_PP.util.DragDrop;YAHOO_PP.util.DD.prototype.scroll=true;YAHOO_PP.util.DD.prototype.autoOffset=function(_104,_105){var el=this.getEl();var _106=YAHOO_PP.util.Dom.getXY(el);var x=_104-_106[0];var y=_105-_106[1];this.setDelta(x,y)};YAHOO_PP.util.DD.prototype.setDelta=function(_107,_108){this.deltaX=_107;this.deltaY=_108};YAHOO_PP.util.DD.prototype.setDragElPos=function(_109,_110){var el=this.getDragEl();this.alignElWithMouse(el,_109,_110)};YAHOO_PP.util.DD.prototype.alignElWithMouse=function(el,_111,_112){var _113=this.getTargetCoord(_111,_112);var _114=[_113.x,_113.y];YAHOO_PP.util.Dom.setXY(el,_114);this.cachePosition(_113.x,_113.y);this.autoScroll(_113.x,_113.y,el.offsetHeight,el.offsetWidth)};YAHOO_PP.util.DD.prototype.cachePosition=function(_115,_116){if(_115){this.lastPageX=_115;this.lastPageY=_116}else{var _117=YAHOO_PP.util.Dom.getXY(this.getEl());this.lastPageX=_117[0];this.lastPageY=_117[1]}};YAHOO_PP.util.DD.prototype.autoScroll=function(x,y,h,w){if(this.scroll){var _120=this.DDM.getClientHeight();var _121=this.DDM.getClientWidth();var st=this.DDM.getScrollTop();var sl=this.DDM.getScrollLeft();var bot=h+y;var _125=w+x;var _126=_120+st-y-this.deltaY;var _127=_121+sl-x-this.deltaX;var _128=40;var _129=document.all?80:30;if(bot>_120&&_126<_128){window.scrollTo(sl,st+_129)}if(y<st&&st>0&&y-st<_128){window.scrollTo(sl,st-_129)}if(_125>_121&&_127<_128){window.scrollTo(sl+_129,st)}if(x<sl&&sl>0&&x-sl<_128){window.scrollTo(sl-_129,st)}}};YAHOO_PP.util.DD.prototype.getTargetCoord=function(_130,_131){var x=_130-this.deltaX;var y=_131-this.deltaY;if(this.constrainX){if(x<this.minX){x=this.minX}if(x>this.maxX){x=this.maxX}}if(this.constrainY){if(y<this.minY){y=this.minY}if(y>this.maxY){y=this.maxY}}x=this.getTick(x,this.xTicks);y=this.getTick(y,this.yTicks);return{x:x,y:y}};YAHOO_PP.util.DD.prototype.b4MouseDown=function(e){this.autoOffset(YAHOO_PP.util.Event.getPageX(e),YAHOO_PP.util.Event.getPageY(e))};YAHOO_PP.util.DD.prototype.b4Drag=function(e){this.setDragElPos(YAHOO_PP.util.Event.getPageX(e),YAHOO_PP.util.Event.getPageY(e))};YAHOO_PP.util.DDProxy=function(id,_132){if(id){this.forceCssPosition=false;this.init(id,_132);this.initFrame()}};YAHOO_PP.util.DDProxy.prototype=new YAHOO_PP.util.DD;YAHOO_PP.util.DDProxy.frameDiv=null;YAHOO_PP.util.DDProxy.dragElId="ygddfdiv";YAHOO_PP.util.DDProxy.prototype.borderWidth=2;YAHOO_PP.util.DDProxy.prototype.resizeFrame=true;YAHOO_PP.util.DDProxy.prototype.centerFrame=false;YAHOO_PP.util.DDProxy.createFrame=function(){var THIS=YAHOO_PP.util.DDProxy;if(!document||!document.body){setTimeout(THIS.createFrame,50);return}if(!THIS.frameDiv){THIS.frameDiv=document.createElement("div");THIS.frameDiv.id=THIS.dragElId;var s=THIS.frameDiv.style;s.position="absolute";s.visibility="hidden";s.cursor="move";s.border="2px solid #aaa";s.zIndex=999;document.body.appendChild(THIS.frameDiv)}};YAHOO_PP.util.DDProxy.prototype.initFrame=function(){YAHOO_PP.util.DDProxy.createFrame();this.setDragElId(YAHOO_PP.util.DDProxy.dragElId);this.useAbsMath=true};YAHOO_PP.util.DDProxy.prototype.showFrame=function(_134,_135){var el=this.getEl();var s=this.getDragEl().style;if(this.resizeFrame){s.width=parseInt(el.offsetWidth)-2*this.borderWidth+"px";s.height=parseInt(el.offsetHeight)-2*this.borderWidth+"px"}if(this.centerFrame){this.setDelta(Math.round(parseInt(s.width)/2),Math.round(parseInt(s.width)/2))}this.setDragElPos(_134,_135);s.visibility=""};YAHOO_PP.util.DDProxy.prototype.b4MouseDown=function(e){var x=YAHOO_PP.util.Event.getPageX(e);var y=YAHOO_PP.util.Event.getPageY(e);this.autoOffset(x,y);this.setDragElPos(x,y)};YAHOO_PP.util.DDProxy.prototype.b4StartDrag=function(x,y){this.showFrame(x,y)};YAHOO_PP.util.DDProxy.prototype.b4EndDrag=function(e){var s=this.getDragEl().style;s.visibility="hidden"};YAHOO_PP.util.DDProxy.prototype.endDrag=function(e){var lel=this.getEl();var del=this.getDragEl();del.style.visibility="";lel.style.visibility="hidden";YAHOO_PP.util.DDM.moveToEl(lel,del);del.style.visibility="hidden";lel.style.visibility=""};YAHOO_PP.util.DDTarget=function(id,_138){if(id){this.initTarget(id,_138)}};YAHOO_PP.util.DDTarget.prototype=new YAHOO_PP.util.DragDrop;YAHOO_PP.util.Easing={easeNone:function(t,b,c,d){return c*t/d+b},easeIn:function(t,b,c,d){return c*(t/=d)*t+b},easeOut:function(t,b,c,d){return-c*(t/=d)*(t-2)+b},easeBoth:function(t,b,c,d){if((t/=d/2)<1){return c/2*t*t+b}return-c/2*(--t*(t-2)-1)+b},easeInStrong:function(t,b,c,d){return c*(t/=d)*t*t*t+b},easeOutStrong:function(t,b,c,d){return-c*((t=t/d-1)*t*t*t-1)+b},easeBothStrong:function(t,b,c,d){if((t/=d/2)<1){return c/2*t*t*t*t+b}return-c/2*((t-=2)*t*t*t-2)+b},elasticIn:function(t,b,c,d,a,p){if(t==0){return b}if((t/=d)==1){return b+c}if(!p){p=d*.3}if(!a||a<Math.abs(c)){a=c;var s=p/4}else{var s=p/(2*Math.PI)*Math.asin(c/a)}return-(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b},elasticOut:function(t,b,c,d,a,p){if(t==0){return b}if((t/=d)==1){return b+c}if(!p){p=d*.3}if(!a||a<Math.abs(c)){a=c;var s=p/4}else{var s=p/(2*Math.PI)*Math.asin(c/a)}return a*Math.pow(2,-10*t)*Math.sin((t*d-s)*(2*Math.PI)/p)+c+b},elasticBoth:function(t,b,c,d,a,p){if(t==0){return b}if((t/=d/2)==2){return b+c}if(!p){p=d*(.3*1.5)}if(!a||a<Math.abs(c)){a=c;var s=p/4}else{var s=p/(2*Math.PI)*Math.asin(c/a)}if(t<1){return-.5*(a*Math.pow(2,10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p))+b}return a*Math.pow(2,-10*(t-=1))*Math.sin((t*d-s)*(2*Math.PI)/p)*.5+c+b},backIn:function(t,b,c,d,s){if(typeof s=="undefined"){s=1.70158}return c*(t/=d)*t*((s+1)*t-s)+b},backOut:function(t,b,c,d,s){if(typeof s=="undefined"){s=1.70158}return c*((t=t/d-1)*t*((s+1)*t+s)+1)+b},backBoth:function(t,b,c,d,s){if(typeof s=="undefined"){s=1.70158}if((t/=d/2)<1){return c/2*(t*t*(((s*=1.525)+1)*t-s))+b}return c/2*((t-=2)*t*(((s*=1.525)+1)*t+s)+2)+b},bounceIn:function(t,b,c,d){return c-YAHOO_PP.util.Easing.bounceOut(d-t,0,c,d)+b},bounceOut:function(t,b,c,d){if((t/=d)<1/2.75){return c*(7.5625*t*t)+b}else if(t<2/2.75){return c*(7.5625*(t-=1.5/2.75)*t+.75)+b}else if(t<2.5/2.75){return c*(7.5625*(t-=2.25/2.75)*t+.9375)+b}return c*(7.5625*(t-=2.625/2.75)*t+.984375)+b},bounceBoth:function(t,b,c,d){if(t<d/2){return YAHOO_PP.util.Easing.bounceIn(t*2,0,c,d)*.5+b}return YAHOO_PP.util.Easing.bounceOut(t*2-d,0,c,d)*.5+c*.5+b}};if(typeof jQuery==="undefined"){throw new Error("Bootstrap's JavaScript requires jQuery")}+function($){"use strict";var version=$.fn.jquery.split(" ")[0].split(".");if(version[0]<2&&version[1]<9||version[0]==1&&version[1]==9&&version[2]<1||version[0]>2){throw new Error("Bootstrap's JavaScript requires jQuery version 1.9.1 or higher, but lower than version 3")}}(jQuery);+function($){"use strict";var Modal=function(element,options){this.options=options;this.$body=$(document.body);this.$element=$(element);this.$dialog=this.$element.find(".modal-dialog");this.$backdrop=null;this.isShown=null;this.originalBodyPad=null;this.scrollbarWidth=0;this.ignoreBackdropClick=false;if(this.options.remote){this.$element.find(".modal-content").load(this.options.remote,$.proxy(function(){this.$element.trigger("loaded.bs.modal")},this))}};Modal.VERSION="3.3.6";Modal.TRANSITION_DURATION=300;Modal.BACKDROP_TRANSITION_DURATION=150;Modal.DEFAULTS={backdrop:true,keyboard:true,show:true};Modal.prototype.toggle=function(_relatedTarget){return this.isShown?this.hide():this.show(_relatedTarget)};Modal.prototype.show=function(_relatedTarget){var that=this;var e=$.Event("show.bs.modal",{relatedTarget:_relatedTarget});this.$element.trigger(e);if(this.isShown||e.isDefaultPrevented())return;this.isShown=true;this.checkScrollbar();this.setScrollbar();this.$body.addClass("modal-open");this.escape();this.resize();this.$element.on("click.dismiss.bs.modal",'[data-dismiss="modal"]',$.proxy(this.hide,this));this.$dialog.on("mousedown.dismiss.bs.modal",function(){that.$element.one("mouseup.dismiss.bs.modal",function(e){if($(e.target).is(that.$element))that.ignoreBackdropClick=true})});this.backdrop(function(){var transition=$.support.transition&&that.$element.hasClass("fade");if(!that.$element.parent().length){that.$element.appendTo(that.$body)}that.$element.show().scrollTop(0);that.adjustDialog();if(transition){that.$element[0].offsetWidth}that.$element.addClass("in");that.enforceFocus();var e=$.Event("shown.bs.modal",{relatedTarget:_relatedTarget});transition?that.$dialog.one("bsTransitionEnd",function(){that.$element.trigger("focus").trigger(e)}).emulateTransitionEnd(Modal.TRANSITION_DURATION):that.$element.trigger("focus").trigger(e)})};Modal.prototype.hide=function(e){if(e)e.preventDefault();e=$.Event("hide.bs.modal");this.$element.trigger(e);if(!this.isShown||e.isDefaultPrevented())return;this.isShown=false;this.escape();this.resize();$(document).off("focusin.bs.modal");this.$element.removeClass("in").off("click.dismiss.bs.modal").off("mouseup.dismiss.bs.modal");this.$dialog.off("mousedown.dismiss.bs.modal");$.support.transition&&this.$element.hasClass("fade")?this.$element.one("bsTransitionEnd",$.proxy(this.hideModal,this)).emulateTransitionEnd(Modal.TRANSITION_DURATION):this.hideModal()};Modal.prototype.enforceFocus=function(){$(document).off("focusin.bs.modal").on("focusin.bs.modal",$.proxy(function(e){if(this.$element[0]!==e.target&&!this.$element.has(e.target).length){this.$element.trigger("focus")}},this))};Modal.prototype.escape=function(){if(this.isShown&&this.options.keyboard){this.$element.on("keydown.dismiss.bs.modal",$.proxy(function(e){e.which==27&&this.hide()},this))}else if(!this.isShown){this.$element.off("keydown.dismiss.bs.modal")}};Modal.prototype.resize=function(){if(this.isShown){$(window).on("resize.bs.modal",$.proxy(this.handleUpdate,this))}else{$(window).off("resize.bs.modal")}};Modal.prototype.hideModal=function(){var that=this;this.$element.hide();this.backdrop(function(){that.$body.removeClass("modal-open");that.resetAdjustments();that.resetScrollbar();that.$element.trigger("hidden.bs.modal")})};Modal.prototype.removeBackdrop=function(){this.$backdrop&&this.$backdrop.remove();this.$backdrop=null};Modal.prototype.backdrop=function(callback){var that=this;var animate=this.$element.hasClass("fade")?"fade":"";if(this.isShown&&this.options.backdrop){var doAnimate=$.support.transition&&animate;this.$backdrop=$(document.createElement("div")).addClass("modal-backdrop "+animate).appendTo(this.$body);this.$element.on("click.dismiss.bs.modal",$.proxy(function(e){if(this.ignoreBackdropClick){this.ignoreBackdropClick=false;return}if(e.target!==e.currentTarget)return;this.options.backdrop=="static"?this.$element[0].focus():this.hide()},this));if(doAnimate)this.$backdrop[0].offsetWidth;this.$backdrop.addClass("in");if(!callback)return;doAnimate?this.$backdrop.one("bsTransitionEnd",callback).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION):callback()}else if(!this.isShown&&this.$backdrop){this.$backdrop.removeClass("in");var callbackRemove=function(){that.removeBackdrop();callback&&callback()};$.support.transition&&this.$element.hasClass("fade")?this.$backdrop.one("bsTransitionEnd",callbackRemove).emulateTransitionEnd(Modal.BACKDROP_TRANSITION_DURATION):callbackRemove()}else if(callback){callback()}};Modal.prototype.handleUpdate=function(){this.adjustDialog()};Modal.prototype.adjustDialog=function(){var modalIsOverflowing=this.$element[0].scrollHeight>document.documentElement.clientHeight;this.$element.css({paddingLeft:!this.bodyIsOverflowing&&modalIsOverflowing?this.scrollbarWidth:"",paddingRight:this.bodyIsOverflowing&&!modalIsOverflowing?this.scrollbarWidth:""})};Modal.prototype.resetAdjustments=function(){this.$element.css({paddingLeft:"",paddingRight:""})};Modal.prototype.checkScrollbar=function(){var fullWindowWidth=window.innerWidth;if(!fullWindowWidth){var documentElementRect=document.documentElement.getBoundingClientRect();fullWindowWidth=documentElementRect.right-Math.abs(documentElementRect.left)}this.bodyIsOverflowing=document.body.clientWidth<fullWindowWidth;this.scrollbarWidth=this.measureScrollbar()};Modal.prototype.setScrollbar=function(){var bodyPad=parseInt(this.$body.css("padding-right")||0,10);this.originalBodyPad=document.body.style.paddingRight||"";if(this.bodyIsOverflowing)this.$body.css("padding-right",bodyPad+this.scrollbarWidth)};Modal.prototype.resetScrollbar=function(){this.$body.css("padding-right",this.originalBodyPad)};Modal.prototype.measureScrollbar=function(){var scrollDiv=document.createElement("div");scrollDiv.className="modal-scrollbar-measure";this.$body.append(scrollDiv);var scrollbarWidth=scrollDiv.offsetWidth-scrollDiv.clientWidth;this.$body[0].removeChild(scrollDiv);return scrollbarWidth};function Plugin(option,_relatedTarget){return this.each(function(){var $this=$(this);var data=$this.data("bs.modal");var options=$.extend({},Modal.DEFAULTS,$this.data(),typeof option=="object"&&option);if(!data)$this.data("bs.modal",data=new Modal(this,options));if(typeof option=="string")data[option](_relatedTarget);else if(options.show)data.show(_relatedTarget)})}var old=$.fn.modal;$.fn.modal=Plugin;$.fn.modal.Constructor=Modal;$.fn.modal.noConflict=function(){$.fn.modal=old;return this};$(document).on("click.bs.modal.data-api",'[data-toggle="modal"]',function(e){var $this=$(this);var href=$this.attr("href");var $target=$($this.attr("data-target")||href&&href.replace(/.*(?=#[^\s]+$)/,""));var option=$target.data("bs.modal")?"toggle":$.extend({remote:!/#/.test(href)&&href},$target.data(),$this.data());if($this.is("a"))e.preventDefault();$target.one("show.bs.modal",function(showEvent){if(showEvent.isDefaultPrevented())return;$target.one("hidden.bs.modal",function(){$this.is(":visible")&&$this.trigger("focus")})});Plugin.call($target,option,this)})}(jQuery);+function($){"use strict";var Tooltip=function(element,options){this.type=null;this.options=null;this.enabled=null;this.timeout=null;this.hoverState=null;this.$element=null;this.inState=null;this.init("tooltip",element,options)};Tooltip.VERSION="3.3.6";Tooltip.TRANSITION_DURATION=150;Tooltip.DEFAULTS={animation:true,placement:"top",selector:false,template:'<div class="tooltip" role="tooltip"><div class="tooltip-arrow"></div><div class="tooltip-inner"></div></div>',trigger:"hover focus",title:"",delay:0,html:false,container:false,viewport:{selector:"body",padding:0}};Tooltip.prototype.init=function(type,element,options){this.enabled=true;this.type=type;this.$element=$(element);this.options=this.getOptions(options);this.$viewport=this.options.viewport&&$($.isFunction(this.options.viewport)?this.options.viewport.call(this,this.$element):this.options.viewport.selector||this.options.viewport);this.inState={click:false,hover:false,focus:false};if(this.$element[0]instanceof document.constructor&&!this.options.selector){throw new Error("`selector` option must be specified when initializing "+this.type+" on the window.document object!")}var triggers=this.options.trigger.split(" ");for(var i=triggers.length;i--;){var trigger=triggers[i];if(trigger=="click"){this.$element.on("click."+this.type,this.options.selector,$.proxy(this.toggle,this))}else if(trigger!="manual"){var eventIn=trigger=="hover"?"mouseenter":"focusin";var eventOut=trigger=="hover"?"mouseleave":"focusout";this.$element.on(eventIn+"."+this.type,this.options.selector,$.proxy(this.enter,this));this.$element.on(eventOut+"."+this.type,this.options.selector,$.proxy(this.leave,this))}}this.options.selector?this._options=$.extend({},this.options,{trigger:"manual",selector:""}):this.fixTitle()};Tooltip.prototype.getDefaults=function(){return Tooltip.DEFAULTS};Tooltip.prototype.getOptions=function(options){options=$.extend({},this.getDefaults(),this.$element.data(),options);if(options.delay&&typeof options.delay=="number"){options.delay={show:options.delay,hide:options.delay}}return options};Tooltip.prototype.getDelegateOptions=function(){var options={};var defaults=this.getDefaults();this._options&&$.each(this._options,function(key,value){if(defaults[key]!=value)options[key]=value});return options};Tooltip.prototype.enter=function(obj){var self=obj instanceof this.constructor?obj:$(obj.currentTarget).data("bs."+this.type);if(!self){self=new this.constructor(obj.currentTarget,this.getDelegateOptions());$(obj.currentTarget).data("bs."+this.type,self)}if(obj instanceof $.Event){self.inState[obj.type=="focusin"?"focus":"hover"]=true}if(self.tip().hasClass("in")||self.hoverState=="in"){self.hoverState="in";return}clearTimeout(self.timeout);self.hoverState="in";if(!self.options.delay||!self.options.delay.show)return self.show();self.timeout=setTimeout(function(){if(self.hoverState=="in")self.show()},self.options.delay.show)};Tooltip.prototype.isInStateTrue=function(){for(var key in this.inState){if(this.inState[key])return true}return false};Tooltip.prototype.leave=function(obj){var self=obj instanceof this.constructor?obj:$(obj.currentTarget).data("bs."+this.type);if(!self){self=new this.constructor(obj.currentTarget,this.getDelegateOptions());$(obj.currentTarget).data("bs."+this.type,self)}if(obj instanceof $.Event){self.inState[obj.type=="focusout"?"focus":"hover"]=false}if(self.isInStateTrue())return;clearTimeout(self.timeout);self.hoverState="out";if(!self.options.delay||!self.options.delay.hide)return self.hide();self.timeout=setTimeout(function(){if(self.hoverState=="out")self.hide()},self.options.delay.hide)};Tooltip.prototype.show=function(){var e=$.Event("show.bs."+this.type);if(this.hasContent()&&this.enabled){this.$element.trigger(e);var inDom=$.contains(this.$element[0].ownerDocument.documentElement,this.$element[0]);if(e.isDefaultPrevented()||!inDom)return;var that=this;var $tip=this.tip();var tipId=this.getUID(this.type);this.setContent();$tip.attr("id",tipId);this.$element.attr("aria-describedby",tipId);if(this.options.animation)$tip.addClass("fade");var placement=typeof this.options.placement=="function"?this.options.placement.call(this,$tip[0],this.$element[0]):this.options.placement;var autoToken=/\s?auto?\s?/i;var autoPlace=autoToken.test(placement);if(autoPlace)placement=placement.replace(autoToken,"")||"top";$tip.detach().css({top:0,left:0,display:"block"}).addClass(placement).data("bs."+this.type,this);this.options.container?$tip.appendTo(this.options.container):$tip.insertAfter(this.$element);this.$element.trigger("inserted.bs."+this.type);var pos=this.getPosition();var actualWidth=$tip[0].offsetWidth;var actualHeight=$tip[0].offsetHeight;if(autoPlace){var orgPlacement=placement;var viewportDim=this.getPosition(this.$viewport);placement=placement=="bottom"&&pos.bottom+actualHeight>viewportDim.bottom?"top":placement=="top"&&pos.top-actualHeight<viewportDim.top?"bottom":placement=="right"&&pos.right+actualWidth>viewportDim.width?"left":placement=="left"&&pos.left-actualWidth<viewportDim.left?"right":placement;$tip.removeClass(orgPlacement).addClass(placement)}var calculatedOffset=this.getCalculatedOffset(placement,pos,actualWidth,actualHeight);this.applyPlacement(calculatedOffset,placement);var complete=function(){var prevHoverState=that.hoverState;that.$element.trigger("shown.bs."+that.type);that.hoverState=null;if(prevHoverState=="out")that.leave(that)};$.support.transition&&this.$tip.hasClass("fade")?$tip.one("bsTransitionEnd",complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION):complete()}};Tooltip.prototype.applyPlacement=function(offset,placement){var $tip=this.tip();var width=$tip[0].offsetWidth;var height=$tip[0].offsetHeight;var marginTop=parseInt($tip.css("margin-top"),10);var marginLeft=parseInt($tip.css("margin-left"),10);if(isNaN(marginTop))marginTop=0;if(isNaN(marginLeft))marginLeft=0;offset.top+=marginTop;offset.left+=marginLeft;$.offset.setOffset($tip[0],$.extend({using:function(props){$tip.css({top:Math.round(props.top),left:Math.round(props.left)})}},offset),0);$tip.addClass("in");var actualWidth=$tip[0].offsetWidth;var actualHeight=$tip[0].offsetHeight;if(placement=="top"&&actualHeight!=height){offset.top=offset.top+height-actualHeight}var delta=this.getViewportAdjustedDelta(placement,offset,actualWidth,actualHeight);if(delta.left)offset.left+=delta.left;else offset.top+=delta.top;var isVertical=/top|bottom/.test(placement);var arrowDelta=isVertical?delta.left*2-width+actualWidth:delta.top*2-height+actualHeight;var arrowOffsetPosition=isVertical?"offsetWidth":"offsetHeight";$tip.offset(offset);this.replaceArrow(arrowDelta,$tip[0][arrowOffsetPosition],isVertical)};Tooltip.prototype.replaceArrow=function(delta,dimension,isVertical){this.arrow().css(isVertical?"left":"top",50*(1-delta/dimension)+"%").css(isVertical?"top":"left","")};Tooltip.prototype.setContent=function(){var $tip=this.tip();var title=this.getTitle();$tip.find(".tooltip-inner")[this.options.html?"html":"text"](title);$tip.removeClass("fade in top bottom left right")};Tooltip.prototype.hide=function(callback){var that=this;var $tip=$(this.$tip);var e=$.Event("hide.bs."+this.type);function complete(){if(that.hoverState!="in")$tip.detach();that.$element.removeAttr("aria-describedby").trigger("hidden.bs."+that.type);callback&&callback()}this.$element.trigger(e);if(e.isDefaultPrevented())return;$tip.removeClass("in");$.support.transition&&$tip.hasClass("fade")?$tip.one("bsTransitionEnd",complete).emulateTransitionEnd(Tooltip.TRANSITION_DURATION):complete();this.hoverState=null;return this};Tooltip.prototype.fixTitle=function(){var $e=this.$element;if($e.attr("title")||typeof $e.attr("data-original-title")!="string"){$e.attr("data-original-title",$e.attr("title")||"").attr("title","")}};Tooltip.prototype.hasContent=function(){return this.getTitle()};Tooltip.prototype.getPosition=function($element){$element=$element||this.$element;var el=$element[0];var isBody=el.tagName=="BODY";var elRect=el.getBoundingClientRect();if(elRect.width==null){elRect=$.extend({},elRect,{width:elRect.right-elRect.left,height:elRect.bottom-elRect.top})}var elOffset=isBody?{top:0,left:0}:$element.offset();var scroll={scroll:isBody?document.documentElement.scrollTop||document.body.scrollTop:$element.scrollTop()};var outerDims=isBody?{width:$(window).width(),height:$(window).height()}:null;return $.extend({},elRect,scroll,outerDims,elOffset)};Tooltip.prototype.getCalculatedOffset=function(placement,pos,actualWidth,actualHeight){return placement=="bottom"?{top:pos.top+pos.height,left:pos.left+pos.width/2-actualWidth/2}:placement=="top"?{top:pos.top-actualHeight,left:pos.left+pos.width/2-actualWidth/2}:placement=="left"?{top:pos.top+pos.height/2-actualHeight/2,left:pos.left-actualWidth}:{top:pos.top+pos.height/2-actualHeight/2,left:pos.left+pos.width}};Tooltip.prototype.getViewportAdjustedDelta=function(placement,pos,actualWidth,actualHeight){var delta={top:0,left:0};if(!this.$viewport)return delta;var viewportPadding=this.options.viewport&&this.options.viewport.padding||0;var viewportDimensions=this.getPosition(this.$viewport);if(/right|left/.test(placement)){var topEdgeOffset=pos.top-viewportPadding-viewportDimensions.scroll;var bottomEdgeOffset=pos.top+viewportPadding-viewportDimensions.scroll+actualHeight;if(topEdgeOffset<viewportDimensions.top){delta.top=viewportDimensions.top-topEdgeOffset}else if(bottomEdgeOffset>viewportDimensions.top+viewportDimensions.height){delta.top=viewportDimensions.top+viewportDimensions.height-bottomEdgeOffset}}else{var leftEdgeOffset=pos.left-viewportPadding;var rightEdgeOffset=pos.left+viewportPadding+actualWidth;if(leftEdgeOffset<viewportDimensions.left){delta.left=viewportDimensions.left-leftEdgeOffset}else if(rightEdgeOffset>viewportDimensions.right){delta.left=viewportDimensions.left+viewportDimensions.width-rightEdgeOffset}}return delta};Tooltip.prototype.getTitle=function(){var title;var $e=this.$element;var o=this.options;title=$e.attr("data-original-title")||(typeof o.title=="function"?o.title.call($e[0]):o.title);return title};Tooltip.prototype.getUID=function(prefix){do{prefix+=~~(Math.random()*1e6)}while(document.getElementById(prefix));return prefix};Tooltip.prototype.tip=function(){if(!this.$tip){this.$tip=$(this.options.template);if(this.$tip.length!=1){throw new Error(this.type+" `template` option must consist of exactly 1 top-level element!")}}return this.$tip};Tooltip.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".tooltip-arrow")};Tooltip.prototype.enable=function(){this.enabled=true};Tooltip.prototype.disable=function(){this.enabled=false};Tooltip.prototype.toggleEnabled=function(){this.enabled=!this.enabled};Tooltip.prototype.toggle=function(e){var self=this;if(e){self=$(e.currentTarget).data("bs."+this.type);if(!self){self=new this.constructor(e.currentTarget,this.getDelegateOptions())
;$(e.currentTarget).data("bs."+this.type,self)}}if(e){self.inState.click=!self.inState.click;if(self.isInStateTrue())self.enter(self);else self.leave(self)}else{self.tip().hasClass("in")?self.leave(self):self.enter(self)}};Tooltip.prototype.destroy=function(){var that=this;clearTimeout(this.timeout);this.hide(function(){that.$element.off("."+that.type).removeData("bs."+that.type);if(that.$tip){that.$tip.detach()}that.$tip=null;that.$arrow=null;that.$viewport=null})};function Plugin(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.tooltip");var options=typeof option=="object"&&option;if(!data&&/destroy|hide/.test(option))return;if(!data)$this.data("bs.tooltip",data=new Tooltip(this,options));if(typeof option=="string")data[option]()})}var old=$.fn.tooltip;$.fn.tooltip=Plugin;$.fn.tooltip.Constructor=Tooltip;$.fn.tooltip.noConflict=function(){$.fn.tooltip=old;return this}}(jQuery);+function($){"use strict";function transitionEnd(){var el=document.createElement("bootstrap");var transEndEventNames={WebkitTransition:"webkitTransitionEnd",MozTransition:"transitionend",OTransition:"oTransitionEnd otransitionend",transition:"transitionend"};for(var name in transEndEventNames){if(el.style[name]!==undefined){return{end:transEndEventNames[name]}}}return false}$.fn.emulateTransitionEnd=function(duration){var called=false;var $el=this;$(this).one("bsTransitionEnd",function(){called=true});var callback=function(){if(!called)$($el).trigger($.support.transition.end)};setTimeout(callback,duration);return this};$(function(){$.support.transition=transitionEnd();if(!$.support.transition)return;$.event.special.bsTransitionEnd={bindType:$.support.transition.end,delegateType:$.support.transition.end,handle:function(e){if($(e.target).is(this))return e.handleObj.handler.apply(this,arguments)}}})}(jQuery);+function($){"use strict";var Popover=function(element,options){this.init("popover",element,options)};if(!$.fn.tooltip)throw new Error("Popover requires tooltip.js");Popover.VERSION="3.3.6";Popover.DEFAULTS=$.extend({},$.fn.tooltip.Constructor.DEFAULTS,{placement:"right",trigger:"click",content:"",template:'<div class="popover" role="tooltip"><div class="arrow"></div><h3 class="popover-title"></h3><div class="popover-content"></div></div>'});Popover.prototype=$.extend({},$.fn.tooltip.Constructor.prototype);Popover.prototype.constructor=Popover;Popover.prototype.getDefaults=function(){return Popover.DEFAULTS};Popover.prototype.setContent=function(){var $tip=this.tip();var title=this.getTitle();var content=this.getContent();$tip.find(".popover-title")[this.options.html?"html":"text"](title);$tip.find(".popover-content").children().detach().end()[this.options.html?typeof content=="string"?"html":"append":"text"](content);$tip.removeClass("fade top bottom left right in");if(!$tip.find(".popover-title").html())$tip.find(".popover-title").hide()};Popover.prototype.hasContent=function(){return this.getTitle()||this.getContent()};Popover.prototype.getContent=function(){var $e=this.$element;var o=this.options;return $e.attr("data-content")||(typeof o.content=="function"?o.content.call($e[0]):o.content)};Popover.prototype.arrow=function(){return this.$arrow=this.$arrow||this.tip().find(".arrow")};function Plugin(option){return this.each(function(){var $this=$(this);var data=$this.data("bs.popover");var options=typeof option=="object"&&option;if(!data&&/destroy|hide/.test(option))return;if(!data)$this.data("bs.popover",data=new Popover(this,options));if(typeof option=="string")data[option]()})}var old=$.fn.popover;$.fn.popover=Plugin;$.fn.popover.Constructor=Popover;$.fn.popover.noConflict=function(){$.fn.popover=old;return this}}(jQuery);(function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports):"function"==typeof define&&define.amd?define(["exports"],n):n(t.d3=t.d3||{})})(this,function(t){"use strict";function n(t){return function(n,e){return Ls(t(n),e)}}function e(t,n){return[t,n]}function r(t,n,e){var r=Math.abs(n-t)/Math.max(0,e),i=Math.pow(10,Math.floor(Math.log(r)/Math.LN10)),o=r/i;return o>=Js?i*=10:o>=Qs?i*=5:o>=Ks&&(i*=2),n<t?-i:i}function i(t){return t.length}function o(t){return"translate("+t+",0)"}function u(t){return"translate(0,"+t+")"}function a(t){var n=t.bandwidth()/2;return t.round()&&(n=Math.round(n)),function(e){return t(e)+n}}function c(){return!this.__axis}function s(t,n){function e(e){var o=null==s?n.ticks?n.ticks.apply(n,i):n.domain():s,u=null==f?n.tickFormat?n.tickFormat.apply(n,i):mf:f,g=Math.max(l,0)+p,y=n.range(),m=y[0]+.5,x=y[y.length-1]+.5,b=(n.bandwidth?a:mf)(n.copy()),w=e.selection?e.selection():e,M=w.selectAll(".domain").data([null]),T=w.selectAll(".tick").data(o,n).order(),k=T.exit(),S=T.enter().append("g").attr("class","tick"),N=T.select("line"),E=T.select("text");M=M.merge(M.enter().insert("path",".tick").attr("class","domain").attr("stroke","#000")),T=T.merge(S),N=N.merge(S.append("line").attr("stroke","#000").attr(r+"2",d*l).attr(v+"1",.5).attr(v+"2",.5)),E=E.merge(S.append("text").attr("fill","#000").attr(r,d*g).attr(v,.5).attr("dy",t===xf?"0em":t===wf?"0.71em":"0.32em")),e!==w&&(M=M.transition(e),T=T.transition(e),N=N.transition(e),E=E.transition(e),k=k.transition(e).attr("opacity",Tf).attr("transform",function(t){return isFinite(t=b(t))?_(t):this.getAttribute("transform")}),S.attr("opacity",Tf).attr("transform",function(t){var n=this.parentNode.__axis;return _(n&&isFinite(n=n(t))?n:b(t))})),k.remove(),M.attr("d",t===Mf||t==bf?"M"+d*h+","+m+"H0.5V"+x+"H"+d*h:"M"+m+","+d*h+"V0.5H"+x+"V"+d*h),T.attr("opacity",1).attr("transform",function(t){return _(b(t))}),N.attr(r+"2",d*l),E.attr(r,d*g).text(u),w.filter(c).attr("fill","none").attr("font-size",10).attr("font-family","sans-serif").attr("text-anchor",t===bf?"start":t===Mf?"end":"middle"),w.each(function(){this.__axis=b})}var r,i=[],s=null,f=null,l=6,h=6,p=3,d=t===xf||t===Mf?-1:1,v=t===Mf||t===bf?(r="x","y"):(r="y","x"),_=t===xf||t===wf?o:u;return e.scale=function(t){return arguments.length?(n=t,e):n},e.ticks=function(){return i=yf.call(arguments),e},e.tickArguments=function(t){return arguments.length?(i=null==t?[]:yf.call(t),e):i.slice()},e.tickValues=function(t){return arguments.length?(s=null==t?null:yf.call(t),e):s&&s.slice()},e.tickFormat=function(t){return arguments.length?(f=t,e):f},e.tickSize=function(t){return arguments.length?(l=h=+t,e):l},e.tickSizeInner=function(t){return arguments.length?(l=+t,e):l},e.tickSizeOuter=function(t){return arguments.length?(h=+t,e):h},e.tickPadding=function(t){return arguments.length?(p=+t,e):p},e}function f(t){return s(xf,t)}function l(t){return s(bf,t)}function h(t){return s(wf,t)}function p(t){return s(Mf,t)}function d(){for(var t,n=0,e=arguments.length,r={};n<e;++n){if(!(t=arguments[n]+"")||t in r)throw new Error("illegal type: "+t);r[t]=[]}return new v(r)}function v(t){this._=t}function _(t,n){return t.trim().split(/^|\s+/).map(function(t){var e="",r=t.indexOf(".");if(r>=0&&(e=t.slice(r+1),t=t.slice(0,r)),t&&!n.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:e}})}function g(t,n){for(var e,r=0,i=t.length;r<i;++r)if((e=t[r]).name===n)return e.value}function y(t,n,e){for(var r=0,i=t.length;r<i;++r)if(t[r].name===n){t[r]=kf,t=t.slice(0,r).concat(t.slice(r+1));break}return null!=e&&t.push({name:n,value:e}),t}function m(t){return function(){var n=this.ownerDocument,e=this.namespaceURI;return e===Sf&&n.documentElement.namespaceURI===Sf?n.createElement(t):n.createElementNS(e,t)}}function x(t){return function(){return this.ownerDocument.createElementNS(t.space,t.local)}}function b(){return new w}function w(){this._="@"+(++Cf).toString(36)}function M(t,n,e){return t=T(t,n,e),function(n){var e=n.relatedTarget;e&&(e===this||8&e.compareDocumentPosition(this))||t.call(this,n)}}function T(n,e,r){return function(i){var o=t.event;t.event=i;try{n.call(this,this.__data__,e,r)}finally{t.event=o}}}function k(t){return t.trim().split(/^|\s+/).map(function(t){var n="",e=t.indexOf(".");return e>=0&&(n=t.slice(e+1),t=t.slice(0,e)),{type:t,name:n}})}function S(t){return function(){var n=this.__on;if(n){for(var e,r=0,i=-1,o=n.length;r<o;++r)e=n[r],t.type&&e.type!==t.type||e.name!==t.name?n[++i]=e:this.removeEventListener(e.type,e.listener,e.capture);++i?n.length=i:delete this.__on}}}function N(t,n,e){var r=qf.hasOwnProperty(t.type)?M:T;return function(i,o,u){var a,c=this.__on,s=r(n,o,u);if(c)for(var f=0,l=c.length;f<l;++f)if((a=c[f]).type===t.type&&a.name===t.name)return this.removeEventListener(a.type,a.listener,a.capture),this.addEventListener(a.type,a.listener=s,a.capture=e),void(a.value=n);this.addEventListener(t.type,s,e),a={type:t.type,name:t.name,value:n,listener:s,capture:e},c?c.push(a):this.__on=[a]}}function E(n,e,r,i){var o=t.event;n.sourceEvent=t.event,t.event=n;try{return e.apply(r,i)}finally{t.event=o}}function A(){}function C(){return[]}function z(t,n){this.ownerDocument=t.ownerDocument,this.namespaceURI=t.namespaceURI,this._next=null,this._parent=t,this.__data__=n}function P(t,n,e,r,i,o){for(var u,a=0,c=n.length,s=o.length;a<s;++a)(u=n[a])?(u.__data__=o[a],r[a]=u):e[a]=new z(t,o[a]);for(;a<c;++a)(u=n[a])&&(i[a]=u)}function L(t,n,e,r,i,o,u){var a,c,s,f={},l=n.length,h=o.length,p=new Array(l);for(a=0;a<l;++a)(c=n[a])&&(p[a]=s=Wf+u.call(c,c.__data__,a,n),s in f?i[a]=c:f[s]=c);for(a=0;a<h;++a)s=Wf+u.call(t,o[a],a,o),(c=f[s])?(r[a]=c,c.__data__=o[a],f[s]=null):e[a]=new z(t,o[a]);for(a=0;a<l;++a)(c=n[a])&&f[p[a]]===c&&(i[a]=c)}function R(t,n){return t<n?-1:t>n?1:t>=n?0:NaN}function q(t){return function(){this.removeAttribute(t)}}function U(t){return function(){this.removeAttributeNS(t.space,t.local)}}function D(t,n){return function(){this.setAttribute(t,n)}}function O(t,n){return function(){this.setAttributeNS(t.space,t.local,n)}}function F(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttribute(t):this.setAttribute(t,e)}}function I(t,n){return function(){var e=n.apply(this,arguments);null==e?this.removeAttributeNS(t.space,t.local):this.setAttributeNS(t.space,t.local,e)}}function Y(t){return function(){this.style.removeProperty(t)}}function B(t,n,e){return function(){this.style.setProperty(t,n,e)}}function j(t,n,e){return function(){var r=n.apply(this,arguments);null==r?this.style.removeProperty(t):this.style.setProperty(t,r,e)}}function H(t){return function(){delete this[t]}}function X(t,n){return function(){this[t]=n}}function V(t,n){return function(){var e=n.apply(this,arguments);null==e?delete this[t]:this[t]=e}}function $(t){return t.trim().split(/^|\s+/)}function W(t){return t.classList||new Z(t)}function Z(t){this._node=t,this._names=$(t.getAttribute("class")||"")}function G(t,n){for(var e=W(t),r=-1,i=n.length;++r<i;)e.add(n[r])}function J(t,n){for(var e=W(t),r=-1,i=n.length;++r<i;)e.remove(n[r])}function Q(t){return function(){G(this,t)}}function K(t){return function(){J(this,t)}}function tt(t,n){return function(){(n.apply(this,arguments)?G:J)(this,t)}}function nt(){this.textContent=""}function et(t){return function(){this.textContent=t}}function rt(t){return function(){var n=t.apply(this,arguments);this.textContent=null==n?"":n}}function it(){this.innerHTML=""}function ot(t){return function(){this.innerHTML=t}}function ut(t){return function(){var n=t.apply(this,arguments);this.innerHTML=null==n?"":n}}function at(){this.nextSibling&&this.parentNode.appendChild(this)}function ct(){this.previousSibling&&this.parentNode.insertBefore(this,this.parentNode.firstChild)}function st(){return null}function ft(){var t=this.parentNode;t&&t.removeChild(this)}function lt(t,n,e){var r=al(t),i=r.CustomEvent;i?i=new i(n,e):(i=r.document.createEvent("Event"),e?(i.initEvent(n,e.bubbles,e.cancelable),i.detail=e.detail):i.initEvent(n,!1,!1)),t.dispatchEvent(i)}function ht(t,n){return function(){return lt(this,t,n)}}function pt(t,n){return function(){return lt(this,t,n.apply(this,arguments))}}function dt(t,n){this._groups=t,this._parents=n}function vt(){return new dt([[document.documentElement]],xl)}function _t(){t.event.stopImmediatePropagation()}function gt(t,n){var e=t.document.documentElement,r=bl(t).on("dragstart.drag",null);n&&(r.on("click.drag",kl,!0),setTimeout(function(){r.on("click.drag",null)},0)),"onselectstart"in e?r.on("selectstart.drag",null):(e.style.MozUserSelect=e.__noselect,delete e.__noselect)}function yt(t,n,e,r,i,o,u,a,c,s){this.target=t,this.type=n,this.subject=e,this.identifier=r,this.active=i,this.x=o,this.y=u,this.dx=a,this.dy=c,this._=s}function mt(){return!t.event.button}function xt(){return this.parentNode}function bt(n){return null==n?{x:t.event.x,y:t.event.y}:n}function wt(t,n){var e=Object.create(t.prototype);for(var r in n)e[r]=n[r];return e}function Mt(){}function Tt(t){var n;return t=(t+"").trim().toLowerCase(),(n=Ll.exec(t))?(n=parseInt(n[1],16),new At(n>>8&15|n>>4&240,n>>4&15|240&n,(15&n)<<4|15&n,1)):(n=Rl.exec(t))?kt(parseInt(n[1],16)):(n=ql.exec(t))?new At(n[1],n[2],n[3],1):(n=Ul.exec(t))?new At(255*n[1]/100,255*n[2]/100,255*n[3]/100,1):(n=Dl.exec(t))?St(n[1],n[2],n[3],n[4]):(n=Ol.exec(t))?St(255*n[1]/100,255*n[2]/100,255*n[3]/100,n[4]):(n=Fl.exec(t))?Ct(n[1],n[2]/100,n[3]/100,1):(n=Il.exec(t))?Ct(n[1],n[2]/100,n[3]/100,n[4]):Yl.hasOwnProperty(t)?kt(Yl[t]):"transparent"===t?new At(NaN,NaN,NaN,0):null}function kt(t){return new At(t>>16&255,t>>8&255,255&t,1)}function St(t,n,e,r){return r<=0&&(t=n=e=NaN),new At(t,n,e,r)}function Nt(t){return t instanceof Mt||(t=Tt(t)),t?(t=t.rgb(),new At(t.r,t.g,t.b,t.opacity)):new At}function Et(t,n,e,r){return 1===arguments.length?Nt(t):new At(t,n,e,null==r?1:r)}function At(t,n,e,r){this.r=+t,this.g=+n,this.b=+e,this.opacity=+r}function Ct(t,n,e,r){return r<=0?t=n=e=NaN:e<=0||e>=1?t=n=NaN:n<=0&&(t=NaN),new Lt(t,n,e,r)}function zt(t){if(t instanceof Lt)return new Lt(t.h,t.s,t.l,t.opacity);if(t instanceof Mt||(t=Tt(t)),!t)return new Lt;if(t instanceof Lt)return t;t=t.rgb();var n=t.r/255,e=t.g/255,r=t.b/255,i=Math.min(n,e,r),o=Math.max(n,e,r),u=NaN,a=o-i,c=(o+i)/2;return a?(u=n===o?(e-r)/a+6*(e<r):e===o?(r-n)/a+2:(n-e)/a+4,a/=c<.5?o+i:2-o-i,u*=60):a=c>0&&c<1?0:u,new Lt(u,a,c,t.opacity)}function Pt(t,n,e,r){return 1===arguments.length?zt(t):new Lt(t,n,e,null==r?1:r)}function Lt(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Rt(t,n,e){return 255*(t<60?n+(e-n)*t/60:t<180?e:t<240?n+(e-n)*(240-t)/60:n)}function qt(t){if(t instanceof Dt)return new Dt(t.l,t.a,t.b,t.opacity);if(t instanceof Ht){var n=t.h*Bl;return new Dt(t.l,Math.cos(n)*t.c,Math.sin(n)*t.c,t.opacity)}t instanceof At||(t=Nt(t));var e=Yt(t.r),r=Yt(t.g),i=Yt(t.b),o=Ot((.4124564*e+.3575761*r+.1804375*i)/Hl),u=Ot((.2126729*e+.7151522*r+.072175*i)/Xl);return new Dt(116*u-16,500*(o-u),200*(u-Ot((.0193339*e+.119192*r+.9503041*i)/Vl)),t.opacity)}function Ut(t,n,e,r){return 1===arguments.length?qt(t):new Dt(t,n,e,null==r?1:r)}function Dt(t,n,e,r){this.l=+t,this.a=+n,this.b=+e,this.opacity=+r}function Ot(t){return t>Gl?Math.pow(t,1/3):t/Zl+$l}function Ft(t){return t>Wl?t*t*t:Zl*(t-$l)}function It(t){return 255*(t<=.0031308?12.92*t:1.055*Math.pow(t,1/2.4)-.055)}function Yt(t){return(t/=255)<=.04045?t/12.92:Math.pow((t+.055)/1.055,2.4)}function Bt(t){if(t instanceof Ht)return new Ht(t.h,t.c,t.l,t.opacity);t instanceof Dt||(t=qt(t));var n=Math.atan2(t.b,t.a)*jl;return new Ht(n<0?n+360:n,Math.sqrt(t.a*t.a+t.b*t.b),t.l,t.opacity)}function jt(t,n,e,r){return 1===arguments.length?Bt(t):new Ht(t,n,e,null==r?1:r)}function Ht(t,n,e,r){this.h=+t,this.c=+n,this.l=+e,this.opacity=+r}function Xt(t){if(t instanceof $t)return new $t(t.h,t.s,t.l,t.opacity);t instanceof At||(t=Nt(t));var n=t.r/255,e=t.g/255,r=t.b/255,i=(ih*r+eh*n-rh*e)/(ih+eh-rh),o=r-i,u=(nh*(e-i)-Kl*o)/th,a=Math.sqrt(u*u+o*o)/(nh*i*(1-i)),c=a?Math.atan2(u,o)*jl-120:NaN;return new $t(c<0?c+360:c,a,i,t.opacity)}function Vt(t,n,e,r){return 1===arguments.length?Xt(t):new $t(t,n,e,null==r?1:r)}function $t(t,n,e,r){this.h=+t,this.s=+n,this.l=+e,this.opacity=+r}function Wt(t,n,e,r,i){var o=t*t,u=o*t;return((1-3*t+3*o-u)*n+(4-6*o+3*u)*e+(1+3*t+3*o-3*u)*r+u*i)/6}function Zt(t,n){return function(e){return t+e*n}}function Gt(t,n,e){return t=Math.pow(t,e),n=Math.pow(n,e)-t,e=1/e,function(r){return Math.pow(t+r*n,e)}}function Jt(t,n){var e=n-t;return e?Zt(t,e>180||e<-180?e-360*Math.round(e/360):e):ph(isNaN(t)?n:t)}function Qt(t){return 1==(t=+t)?Kt:function(n,e){return e-n?Gt(n,e,t):ph(isNaN(n)?e:n)}}function Kt(t,n){var e=n-t;return e?Zt(t,e):ph(isNaN(t)?n:t)}function tn(t){return function(n){var e,r,i=n.length,o=new Array(i),u=new Array(i),a=new Array(i);for(e=0;e<i;++e)r=Et(n[e]),o[e]=r.r||0,u[e]=r.g||0,a[e]=r.b||0;return o=t(o),u=t(u),a=t(a),r.opacity=1,function(t){return r.r=o(t),r.g=u(t),r.b=a(t),r+""}}}function nn(t){return function(){return t}}function en(t){return function(n){return t(n)+""}}function rn(t){return"none"===t?Nh:(oh||(oh=document.createElement("DIV"),uh=document.documentElement,ah=document.defaultView),oh.style.transform=t,t=ah.getComputedStyle(uh.appendChild(oh),null).getPropertyValue("transform"),uh.removeChild(oh),t=t.slice(7,-1).split(","),Eh(+t[0],+t[1],+t[2],+t[3],+t[4],+t[5]))}function on(t){return null==t?Nh:(ch||(ch=document.createElementNS("http://www.w3.org/2000/svg","g")),ch.setAttribute("transform",t),(t=ch.transform.baseVal.consolidate())?(t=t.matrix,Eh(t.a,t.b,t.c,t.d,t.e,t.f)):Nh)}function un(t,n,e,r){function i(t){return t.length?t.pop()+" ":""}function o(t,r,i,o,u,a){if(t!==i||r!==o){var c=u.push("translate(",null,n,null,e);a.push({i:c-4,x:mh(t,i)},{i:c-2,x:mh(r,o)})}else(i||o)&&u.push("translate("+i+n+o+e)}function u(t,n,e,o){t!==n?(t-n>180?n+=360:n-t>180&&(t+=360),o.push({i:e.push(i(e)+"rotate(",null,r)-2,x:mh(t,n)})):n&&e.push(i(e)+"rotate("+n+r)}function a(t,n,e,o){t!==n?o.push({i:e.push(i(e)+"skewX(",null,r)-2,x:mh(t,n)}):n&&e.push(i(e)+"skewX("+n+r)}function c(t,n,e,r,o,u){if(t!==e||n!==r){var a=o.push(i(o)+"scale(",null,",",null,")");u.push({i:a-4,x:mh(t,e)},{i:a-2,x:mh(n,r)})}else 1===e&&1===r||o.push(i(o)+"scale("+e+","+r+")")}return function(n,e){var r=[],i=[];return n=t(n),e=t(e),o(n.translateX,n.translateY,e.translateX,e.translateY,r,i),u(n.rotate,e.rotate,r,i),a(n.skewX,e.skewX,r,i),c(n.scaleX,n.scaleY,e.scaleX,e.scaleY,r,i),n=e=null,function(t){for(var n,e=-1,o=i.length;++e<o;)r[(n=i[e]).i]=n.x(t);return r.join("")}}}function an(t){return((t=Math.exp(t))+1/t)/2}function cn(t){return((t=Math.exp(t))-1/t)/2}function sn(t){return((t=Math.exp(2*t))-1)/(t+1)}function fn(t){return function(n,e){var r=t((n=Pt(n)).h,(e=Pt(e)).h),i=Kt(n.s,e.s),o=Kt(n.l,e.l),u=Kt(n.opacity,e.opacity);return function(t){return n.h=r(t),n.s=i(t),n.l=o(t),n.opacity=u(t),n+""}}}function ln(t,n){var e=Kt((t=Ut(t)).l,(n=Ut(n)).l),r=Kt(t.a,n.a),i=Kt(t.b,n.b),o=Kt(t.opacity,n.opacity);return function(n){return t.l=e(n),t.a=r(n),t.b=i(n),t.opacity=o(n),t+""}}function hn(t){return function(n,e){var r=t((n=jt(n)).h,(e=jt(e)).h),i=Kt(n.c,e.c),o=Kt(n.l,e.l),u=Kt(n.opacity,e.opacity);return function(t){return n.h=r(t),n.c=i(t),n.l=o(t),n.opacity=u(t),n+""}}}function pn(t){return function n(e){function r(n,r){var i=t((n=Vt(n)).h,(r=Vt(r)).h),o=Kt(n.s,r.s),u=Kt(n.l,r.l),a=Kt(n.opacity,r.opacity);return function(t){return n.h=i(t),n.s=o(t),n.l=u(Math.pow(t,e)),n.opacity=a(t),n+""}}return e=+e,r.gamma=n,r}(1)}function dn(){return Xh||(Wh(vn),Xh=$h.now()+Vh)}function vn(){Xh=0}function _n(){this._call=this._time=this._next=null}function gn(t,n,e){var r=new _n;return r.restart(t,n,e),r}function yn(){dn(),++Ih;for(var t,n=sh;n;)(t=Xh-n._time)>=0&&n._call.call(null,t),n=n._next;--Ih}function mn(){Xh=(Hh=$h.now())+Vh,Ih=Yh=0;try{yn()}finally{Ih=0,bn(),Xh=0}}function xn(){var t=$h.now(),n=t-Hh;n>jh&&(Vh-=n,Hh=t)}function bn(){for(var t,n,e=sh,r=1/0;e;)e._call?(r>e._time&&(r=e._time),t=e,e=e._next):(n=e._next,e._next=null,e=t?t._next=n:sh=n);fh=t,wn(r)}function wn(t){if(!Ih){Yh&&(Yh=clearTimeout(Yh));var n=t-Xh;n>24?(t<1/0&&(Yh=setTimeout(mn,n)),Bh&&(Bh=clearInterval(Bh))):(Bh||(Hh=Xh,Bh=setInterval(xn,jh)),Ih=1,Wh(mn))}}function Mn(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>Kh)throw new Error("too late");return e}function Tn(t,n){var e=t.__transition;if(!e||!(e=e[n])||e.state>np)throw new Error("too late");return e}function kn(t,n){var e=t.__transition;if(!e||!(e=e[n]))throw new Error("too late");return e}function Sn(t,n,e){function r(t){e.state=tp,e.timer.restart(i,e.delay,e.time),e.delay<=t&&i(t-e.delay)}function i(r){var s,f,l,h;if(e.state!==tp)return u();for(s in c)if(h=c[s],h.name===e.name){if(h.state===ep)return Zh(i);h.state===rp?(h.state=op,h.timer.stop(),h.on.call("interrupt",t,t.__data__,h.index,h.group),delete c[s]):+s<n&&(h.state=op,h.timer.stop(),delete c[s])}if(Zh(function(){e.state===ep&&(e.state=rp,e.timer.restart(o,e.delay,e.time),o(r))}),e.state=np,e.on.call("start",t,t.__data__,e.index,e.group),e.state===np){for(e.state=ep,a=new Array(l=e.tween.length),s=0,f=-1;s<l;++s)(h=e.tween[s].value.call(t,t.__data__,e.index,e.group))&&(a[++f]=h);a.length=f+1}}function o(n){for(var r=n<e.duration?e.ease.call(null,n/e.duration):(e.timer.restart(u),e.state=ip,1),i=-1,o=a.length;++i<o;)a[i].call(null,r);e.state===ip&&(e.on.call("end",t,t.__data__,e.index,e.group),u())}function u(){e.state=op,e.timer.stop(),delete c[n];for(var r in c)return;delete t.__transition}var a,c=t.__transition;c[n]=e,e.timer=gn(r,0,e.time)}function Nn(t,n){var e,r;return function(){var i=Tn(this,t),o=i.tween;if(o!==e){r=e=o;for(var u=0,a=r.length;u<a;++u)if(r[u].name===n){r=r.slice(),r.splice(u,1);break}}i.tween=r}}function En(t,n,e){var r,i;if("function"!=typeof e)throw new Error;return function(){var o=Tn(this,t),u=o.tween;if(u!==r){i=(r=u).slice();for(var a={name:n,value:e},c=0,s=i.length;c<s;++c)if(i[c].name===n){i[c]=a;break}c===s&&i.push(a)}o.tween=i}}function An(t,n,e){var r=t._id;return t.each(function(){var t=Tn(this,r);(t.value||(t.value={}))[n]=e.apply(this,arguments)}),function(t){return kn(t,r).value[n]}}function Cn(t){return function(){this.removeAttribute(t)}}function zn(t){return function(){this.removeAttributeNS(t.space,t.local)}}function Pn(t,n,e){var r,i;return function(){var o=this.getAttribute(t);return o===e?null:o===r?i:i=n(r=o,e)}}function Ln(t,n,e){var r,i;return function(){var o=this.getAttributeNS(t.space,t.local);return o===e?null:o===r?i:i=n(r=o,e)}}function Rn(t,n,e){var r,i,o;return function(){var u,a=e(this);return null==a?void this.removeAttribute(t):(u=this.getAttribute(t),u===a?null:u===r&&a===i?o:o=n(r=u,i=a))}}function qn(t,n,e){var r,i,o;return function(){var u,a=e(this);return null==a?void this.removeAttributeNS(t.space,t.local):(u=this.getAttributeNS(t.space,t.local),u===a?null:u===r&&a===i?o:o=n(r=u,i=a))}}function Un(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttributeNS(t.space,t.local,r(n))}}return e._value=n,e}function Dn(t,n){function e(){var e=this,r=n.apply(e,arguments);return r&&function(n){e.setAttribute(t,r(n))}}return e._value=n,e}function On(t,n){return function(){Mn(this,t).delay=+n.apply(this,arguments)}}function Fn(t,n){return n=+n,function(){Mn(this,t).delay=n}}function In(t,n){return function(){Tn(this,t).duration=+n.apply(this,arguments)}}function Yn(t,n){return n=+n,function(){Tn(this,t).duration=n}}function Bn(t,n){if("function"!=typeof n)throw new Error;return function(){Tn(this,t).ease=n}}function jn(t){return(t+"").trim().split(/^|\s+/).every(function(t){var n=t.indexOf(".");return n>=0&&(t=t.slice(0,n)),!t||"start"===t})}function Hn(t,n,e){var r,i,o=jn(n)?Mn:Tn;return function(){var u=o(this,t),a=u.on;a!==r&&(i=(r=a).copy()).on(n,e),u.on=i}}function Xn(t){return function(){var n=this.parentNode;for(var e in this.__transition)if(+e!==t)return;n&&n.removeChild(this)}}function Vn(t,n){var e,r,i;return function(){var o=al(this).getComputedStyle(this,null),u=o.getPropertyValue(t),a=(this.style.removeProperty(t),o.getPropertyValue(t));return u===a?null:u===e&&a===r?i:i=n(e=u,r=a)}}function $n(t){return function(){this.style.removeProperty(t)}}function Wn(t,n,e){var r,i;return function(){var o=al(this).getComputedStyle(this,null).getPropertyValue(t);return o===e?null:o===r?i:i=n(r=o,e)}}function Zn(t,n,e){var r,i,o;return function(){var u=al(this).getComputedStyle(this,null),a=u.getPropertyValue(t),c=e(this);return null==c&&(this.style.removeProperty(t),c=u.getPropertyValue(t)),a===c?null:a===r&&c===i?o:o=n(r=a,i=c)}}function Gn(t,n,e){function r(){var r=this,i=n.apply(r,arguments);return i&&function(n){r.style.setProperty(t,i(n),e)}}return r._value=n,r}function Jn(t){return function(){this.textContent=t}}function Qn(t){return function(){var n=t(this);this.textContent=null==n?"":n}}function Kn(t,n,e,r){this._groups=t,this._parents=n,this._name=e,this._id=r}function te(t){return vt().transition(t)}function ne(){return++Ep}function ee(t){return+t}function re(t){return t*t}function ie(t){return t*(2-t)}function oe(t){return((t*=2)<=1?t*t:--t*(2-t)+1)/2}function ue(t){return t*t*t}function ae(t){return--t*t*t+1}function ce(t){return((t*=2)<=1?t*t*t:(t-=2)*t*t+2)/2}function se(t){return 1-Math.cos(t*Rp)}function fe(t){return Math.sin(t*Rp)}function le(t){return(1-Math.cos(Lp*t))/2}function he(t){return Math.pow(2,10*t-10)}function pe(t){return 1-Math.pow(2,-10*t)}function de(t){return((t*=2)<=1?Math.pow(2,10*t-10):2-Math.pow(2,10-10*t))/2}function ve(t){return 1-Math.sqrt(1-t*t)}function _e(t){return Math.sqrt(1- --t*t)}function ge(t){return((t*=2)<=1?1-Math.sqrt(1-t*t):Math.sqrt(1-(t-=2)*t)+1)/2}function ye(t){return 1-me(1-t)}function me(t){return(t=+t)<qp?Hp*t*t:t<Dp?Hp*(t-=Up)*t+Op:t<Ip?Hp*(t-=Fp)*t+Yp:Hp*(t-=Bp)*t+jp}function xe(t){return((t*=2)<=1?1-me(1-t):me(t-1)+1)/2}function be(t,n){for(var e;!(e=t.__transition)||!(e=e[n]);)if(!(t=t.parentNode))return Qp.time=dn(),Qp;return e}function we(){t.event.stopImmediatePropagation()}function Me(t){return{type:t}}function Te(){return!t.event.button}function ke(){var t=this.ownerSVGElement||this;return[[0,0],[t.width.baseVal.value,t.height.baseVal.value]]}function Se(t){for(;!t.__brush;)if(!(t=t.parentNode))return;return t.__brush}function Ne(t){return t[0][0]===t[1][0]||t[0][1]===t[1][1]}function Ee(t){var n=t.__brush;return n?n.dim.output(n.selection):null}function Ae(){return ze(sd)}function Ce(){return ze(fd)}function ze(n){function e(t){var e=t.property("__brush",a).selectAll(".overlay").data([Me("overlay")]);e.enter().append("rect").attr("class","overlay").attr("pointer-events","all").attr("cursor",hd.overlay).merge(e).each(function(){var t=Se(this).extent;bl(this).attr("x",t[0][0]).attr("y",t[0][1]).attr("width",t[1][0]-t[0][0]).attr("height",t[1][1]-t[0][1])}),t.selectAll(".selection").data([Me("selection")]).enter().append("rect").attr("class","selection").attr("cursor",hd.selection).attr("fill","#777").attr("fill-opacity",.3).attr("stroke","#fff").attr("shape-rendering","crispEdges");var i=t.selectAll(".handle").data(n.handles,function(t){return t.type});i.exit().remove(),i.enter().append("rect").attr("class",function(t){return"handle handle--"+t.type}).attr("cursor",function(t){return hd[t.type]}),t.each(r).attr("fill","none").attr("pointer-events","all").style("-webkit-tap-highlight-color","rgba(0,0,0,0)").on("mousedown.brush touchstart.brush",u)}function r(){var t=bl(this),n=Se(this).selection;n?(t.selectAll(".selection").style("display",null).attr("x",n[0][0]).attr("y",n[0][1]).attr("width",n[1][0]-n[0][0]).attr("height",n[1][1]-n[0][1]),t.selectAll(".handle").style("display",null).attr("x",function(t){return"e"===t.type[t.type.length-1]?n[1][0]-h/2:n[0][0]-h/2}).attr("y",function(t){return"s"===t.type[0]?n[1][1]-h/2:n[0][1]-h/2}).attr("width",function(t){return"n"===t.type||"s"===t.type?n[1][0]-n[0][0]+h:h}).attr("height",function(t){return"e"===t.type||"w"===t.type?n[1][1]-n[0][1]+h:h})):t.selectAll(".selection,.handle").style("display","none").attr("x",null).attr("y",null).attr("width",null).attr("height",null)}function i(t,n){return t.__brush.emitter||new o(t,n)}function o(t,n){this.that=t,this.args=n,this.state=t.__brush,this.active=0}function u(){function e(){var t=Ff(T);!U||w||M||(Math.abs(t[0]-O[0])>Math.abs(t[1]-O[1])?M=!0:w=!0),O=t,b=!0,id(),o()}function o(){var t;switch(m=O[0]-D[0],x=O[1]-D[1],S){case ud:case od:N&&(m=Math.max(P-l,Math.min(R-v,m)),h=l+m,_=v+m),E&&(x=Math.max(L-p,Math.min(q-g,x)),d=p+x,y=g+x);break;case ad:N<0?(m=Math.max(P-l,Math.min(R-l,m)),h=l+m,_=v):N>0&&(m=Math.max(P-v,Math.min(R-v,m)),h=l,_=v+m),E<0?(x=Math.max(L-p,Math.min(q-p,x)),d=p+x,y=g):E>0&&(x=Math.max(L-g,Math.min(q-g,x)),d=p,y=g+x);break;case cd:N&&(h=Math.max(P,Math.min(R,l-m*N)),_=Math.max(P,Math.min(R,v+m*N))),E&&(d=Math.max(L,Math.min(q,p-x*E)),y=Math.max(L,Math.min(q,g+x*E)))}_<h&&(N*=-1,t=l,l=v,v=t,t=h,h=_,_=t,k in pd&&Y.attr("cursor",hd[k=pd[k]])),y<d&&(E*=-1,t=p,p=g,g=t,t=d,d=y,y=t,k in dd&&Y.attr("cursor",hd[k=dd[k]])),A.selection&&(z=A.selection),w&&(h=z[0][0],_=z[1][0]),M&&(d=z[0][1],y=z[1][1]),z[0][0]===h&&z[0][1]===d&&z[1][0]===_&&z[1][1]===y||(A.selection=[[h,d],[_,y]],r.call(T),F.brush())}function u(){if(we(),t.event.touches){if(t.event.touches.length)return;c&&clearTimeout(c),c=setTimeout(function(){c=null},500),I.on("touchmove.brush touchend.brush touchcancel.brush",null)}else gt(t.event.view,b),B.on("keydown.brush keyup.brush mousemove.brush mouseup.brush",null);I.attr("pointer-events","all"),Y.attr("cursor",hd.overlay),A.selection&&(z=A.selection),Ne(z)&&(A.selection=null,r.call(T)),F.end()}function a(){switch(t.event.keyCode){case 16:U=N&&E;break;case 18:S===ad&&(N&&(v=_-m*N,l=h+m*N),E&&(g=y-x*E,p=d+x*E),S=cd,o());break;case 32:S!==ad&&S!==cd||(N<0?v=_-m:N>0&&(l=h-m),E<0?g=y-x:E>0&&(p=d-x),S=ud,Y.attr("cursor",hd.selection),o());break;default:return}id()}function s(){switch(t.event.keyCode){case 16:U&&(w=M=U=!1,o());break;case 18:S===cd&&(N<0?v=_:N>0&&(l=h),E<0?g=y:E>0&&(p=d),S=ad,o());break;case 32:S===ud&&(t.event.altKey?(N&&(v=_-m*N,l=h+m*N),E&&(g=y-x*E,p=d+x*E),S=cd):(N<0?v=_:N>0&&(l=h),E<0?g=y:E>0&&(p=d),S=ad),Y.attr("cursor",hd[k]),o());break;default:return}id()}if(t.event.touches){if(t.event.changedTouches.length<t.event.touches.length)return id()}else if(c)return;if(f.apply(this,arguments)){var l,h,p,d,v,_,g,y,m,x,b,w,M,T=this,k=t.event.target.__data__.type,S="selection"===(t.event.metaKey?k="overlay":k)?od:t.event.altKey?cd:ad,N=n===fd?null:vd[k],E=n===sd?null:_d[k],A=Se(T),C=A.extent,z=A.selection,P=C[0][0],L=C[0][1],R=C[1][0],q=C[1][1],U=N&&E&&t.event.shiftKey,D=Ff(T),O=D,F=i(T,arguments).beforestart();"overlay"===k?A.selection=z=[[l=n===fd?P:D[0],p=n===sd?L:D[1]],[v=n===fd?R:l,g=n===sd?q:p]]:(l=z[0][0],p=z[0][1],v=z[1][0],g=z[1][1]),h=l,d=p,_=v,y=g;var I=bl(T).attr("pointer-events","none"),Y=I.selectAll(".overlay").attr("cursor",hd[k]);if(t.event.touches)I.on("touchmove.brush",e,!0).on("touchend.brush touchcancel.brush",u,!0);else{var B=bl(t.event.view).on("keydown.brush",a,!0).on("keyup.brush",s,!0).on("mousemove.brush",e,!0).on("mouseup.brush",u,!0);Sl(t.event.view)}we(),ap(T),r.call(T),F.start()}}function a(){var t=this.__brush||{selection:null};return t.extent=s.apply(this,arguments),t.dim=n,t}var c,s=ke,f=Te,l=d(e,"start","brush","end"),h=6;return e.move=function(t,e){t.selection?t.on("start.brush",function(){i(this,arguments).beforestart().start()}).on("interrupt.brush end.brush",function(){i(this,arguments).end()}).tween("brush",function(){function t(t){u.selection=1===t&&Ne(s)?null:f(t),r.call(o),a.brush()}var o=this,u=o.__brush,a=i(o,arguments),c=u.selection,s=n.input("function"==typeof e?e.apply(this,arguments):e,u.extent),f=Th(c,s);return c&&s?t:t(1)}):t.each(function(){var t=this,o=arguments,u=t.__brush,a=n.input("function"==typeof e?e.apply(t,o):e,u.extent),c=i(t,o).beforestart();ap(t),u.selection=null==a||Ne(a)?null:a,r.call(t),c.start().brush().end()})},o.prototype={beforestart:function(){return 1==++this.active&&(this.state.emitter=this,this.starting=!0),this},start:function(){return this.starting&&(this.starting=!1,this.emit("start")),this},brush:function(){return this.emit("brush"),this},end:function(){return 0==--this.active&&(delete this.state.emitter,
this.emit("end")),this},emit:function(t){E(new rd(e,t,n.output(this.state.selection)),l.apply,l,[t,this.that,this.args])}},e.extent=function(t){return arguments.length?(s="function"==typeof t?t:ed([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),e):s},e.filter=function(t){return arguments.length?(f="function"==typeof t?t:ed(!!t),e):f},e.handleSize=function(t){return arguments.length?(h=+t,e):h},e.on=function(){var t=l.on.apply(l,arguments);return t===l?e:t},e}function Pe(t){return function(n,e){return t(n.source.value+n.target.value,e.source.value+e.target.value)}}function Le(){this._x0=this._y0=this._x1=this._y1=null,this._=""}function Re(){return new Le}function qe(t){return t.source}function Ue(t){return t.target}function De(t){return t.radius}function Oe(t){return t.startAngle}function Fe(t){return t.endAngle}function Ie(){}function Ye(t,n){var e=new Ie;if(t instanceof Ie)t.each(function(t,n){e.set(n,t)});else if(Array.isArray(t)){var r,i=-1,o=t.length;if(null==n)for(;++i<o;)e.set(i,t[i]);else for(;++i<o;)e.set(n(r=t[i],i,t),r)}else if(t)for(var u in t)e.set(u,t[u]);return e}function Be(){return{}}function je(t,n,e){t[n]=e}function He(){return Ye()}function Xe(t,n,e){t.set(n,e)}function Ve(){}function $e(t,n){var e=new Ve;if(t instanceof Ve)t.each(function(t){e.add(t)});else if(t){var r=-1,i=t.length;if(null==n)for(;++r<i;)e.add(t[r]);else for(;++r<i;)e.add(n(t[r],r,t))}return e}function We(t){return new Function("d","return {"+t.map(function(t,n){return JSON.stringify(t)+": d["+n+"]"}).join(",")+"}")}function Ze(t,n){var e=We(t);return function(r,i){return n(e(r),i,t)}}function Ge(t){var n=Object.create(null),e=[];return t.forEach(function(t){for(var r in t)r in n||e.push(n[r]=r)}),e}function Je(t,n,e,r){if(isNaN(n)||isNaN(e))return t;var i,o,u,a,c,s,f,l,h,p=t._root,d={data:r},v=t._x0,_=t._y0,g=t._x1,y=t._y1;if(!p)return t._root=d,t;for(;p.length;)if((s=n>=(o=(v+g)/2))?v=o:g=o,(f=e>=(u=(_+y)/2))?_=u:y=u,i=p,!(p=p[l=f<<1|s]))return i[l]=d,t;if(a=+t._x.call(null,p.data),c=+t._y.call(null,p.data),n===a&&e===c)return d.next=p,i?i[l]=d:t._root=d,t;do{i=i?i[l]=new Array(4):t._root=new Array(4),(s=n>=(o=(v+g)/2))?v=o:g=o,(f=e>=(u=(_+y)/2))?_=u:y=u}while((l=f<<1|s)==(h=(c>=u)<<1|a>=o));return i[h]=p,i[l]=d,t}function Qe(t){var n,e,r,i,o=t.length,u=new Array(o),a=new Array(o),c=1/0,s=1/0,f=-(1/0),l=-(1/0);for(e=0;e<o;++e)isNaN(r=+this._x.call(null,n=t[e]))||isNaN(i=+this._y.call(null,n))||(u[e]=r,a[e]=i,r<c&&(c=r),r>f&&(f=r),i<s&&(s=i),i>l&&(l=i));for(f<c&&(c=this._x0,f=this._x1),l<s&&(s=this._y0,l=this._y1),this.cover(c,s).cover(f,l),e=0;e<o;++e)Je(this,u[e],a[e],t[e]);return this}function Ke(t){for(var n=0,e=t.length;n<e;++n)this.remove(t[n]);return this}function tr(t){return t[0]}function nr(t){return t[1]}function er(t,n,e){var r=new rr(null==n?tr:n,null==e?nr:e,NaN,NaN,NaN,NaN);return null==t?r:r.addAll(t)}function rr(t,n,e,r,i,o){this._x=t,this._y=n,this._x0=e,this._y0=r,this._x1=i,this._y1=o,this._root=void 0}function ir(t){for(var n={data:t.data},e=n;t=t.next;)e=e.next={data:t.data};return n}function or(t){return t.x+t.vx}function ur(t){return t.y+t.vy}function ar(t){return t.index}function cr(t,n){var e=t.get(n);if(!e)throw new Error("missing: "+n);return e}function sr(t){return t.x}function fr(t){return t.y}function lr(t){return new hr(t)}function hr(t){if(!(n=Nv.exec(t)))throw new Error("invalid format: "+t);var n,e=n[1]||" ",r=n[2]||">",i=n[3]||"-",o=n[4]||"",u=!!n[5],a=n[6]&&+n[6],c=!!n[7],s=n[8]&&+n[8].slice(1),f=n[9]||"";"n"===f?(c=!0,f="g"):Sv[f]||(f=""),(u||"0"===e&&"="===r)&&(u=!0,e="0",r="="),this.fill=e,this.align=r,this.sign=i,this.symbol=o,this.zero=u,this.width=a,this.comma=c,this.precision=s,this.type=f}function pr(n){return Ev=zv(n),t.format=Ev.format,t.formatPrefix=Ev.formatPrefix,Ev}function dr(){this.reset()}function vr(t,n,e){var r=t.s=n+e,i=r-n,o=r-i;t.t=n-o+(e-i)}function _r(t){return t>1?0:t<-1?v_:Math.acos(t)}function gr(t){return t>1?__:t<-1?-__:Math.asin(t)}function yr(t){return(t=A_(t/2))*t}function mr(){}function xr(t,n){t&&R_.hasOwnProperty(t.type)&&R_[t.type](t,n)}function br(t,n,e){var r,i=-1,o=t.length-e;for(n.lineStart();++i<o;)r=t[i],n.point(r[0],r[1],r[2]);n.lineEnd()}function wr(t,n){var e=-1,r=t.length;for(n.polygonStart();++e<r;)br(t[e],n,1);n.polygonEnd()}function Mr(){O_.point=kr}function Tr(){Sr(Uv,Dv)}function kr(t,n){O_.point=Sr,Uv=t,Dv=n,t*=x_,n*=x_,Ov=t,Fv=T_(n=n/2+g_),Iv=A_(n)}function Sr(t,n){t*=x_,n*=x_,n=n/2+g_;var e=t-Ov,r=e>=0?1:-1,i=r*e,o=T_(n),u=A_(n),a=Iv*u,c=Fv*o+a*T_(i),s=a*r*A_(i);U_.add(M_(s,c)),Ov=t,Fv=o,Iv=u}function Nr(t){return[M_(t[1],t[0]),gr(t[2])]}function Er(t){var n=t[0],e=t[1],r=T_(e);return[r*T_(n),r*A_(n),A_(e)]}function Ar(t,n){return t[0]*n[0]+t[1]*n[1]+t[2]*n[2]}function Cr(t,n){return[t[1]*n[2]-t[2]*n[1],t[2]*n[0]-t[0]*n[2],t[0]*n[1]-t[1]*n[0]]}function zr(t,n){t[0]+=n[0],t[1]+=n[1],t[2]+=n[2]}function Pr(t,n){return[t[0]*n,t[1]*n,t[2]*n]}function Lr(t){var n=z_(t[0]*t[0]+t[1]*t[1]+t[2]*t[2]);t[0]/=n,t[1]/=n,t[2]/=n}function Rr(t,n){Zv.push(Gv=[Yv=t,jv=t]),n<Bv&&(Bv=n),n>Hv&&(Hv=n)}function qr(t,n){var e=Er([t*x_,n*x_]);if(Wv){var r=Cr(Wv,e),i=[r[1],-r[0],0],o=Cr(i,r);Lr(o),o=Nr(o);var u,a=t-Xv,c=a>0?1:-1,s=o[0]*m_*c,f=b_(a)>180;f^(c*Xv<s&&s<c*t)?(u=o[1]*m_)>Hv&&(Hv=u):(s=(s+360)%360-180,f^(c*Xv<s&&s<c*t)?(u=-o[1]*m_)<Bv&&(Bv=u):(n<Bv&&(Bv=n),n>Hv&&(Hv=n))),f?t<Xv?Yr(Yv,t)>Yr(Yv,jv)&&(jv=t):Yr(t,jv)>Yr(Yv,jv)&&(Yv=t):jv>=Yv?(t<Yv&&(Yv=t),t>jv&&(jv=t)):t>Xv?Yr(Yv,t)>Yr(Yv,jv)&&(jv=t):Yr(t,jv)>Yr(Yv,jv)&&(Yv=t)}else Zv.push(Gv=[Yv=t,jv=t]);n<Bv&&(Bv=n),n>Hv&&(Hv=n),Wv=e,Xv=t}function Ur(){Y_.point=qr}function Dr(){Gv[0]=Yv,Gv[1]=jv,Y_.point=Rr,Wv=null}function Or(t,n){if(Wv){var e=t-Xv;I_.add(b_(e)>180?e+(e>0?360:-360):e)}else Vv=t,$v=n;O_.point(t,n),qr(t,n)}function Fr(){O_.lineStart()}function Ir(){Or(Vv,$v),O_.lineEnd(),b_(I_)>d_&&(Yv=-(jv=180)),Gv[0]=Yv,Gv[1]=jv,Wv=null}function Yr(t,n){return(n-=t)<0?n+360:n}function Br(t,n){return t[0]-n[0]}function jr(t,n){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}function Hr(t,n){t*=x_,n*=x_;var e=T_(n);Xr(e*T_(t),e*A_(t),A_(n))}function Xr(t,n,e){++Jv,Kv+=(t-Kv)/Jv,t_+=(n-t_)/Jv,n_+=(e-n_)/Jv}function Vr(){j_.point=$r}function $r(t,n){t*=x_,n*=x_;var e=T_(n);f_=e*T_(t),l_=e*A_(t),h_=A_(n),j_.point=Wr,Xr(f_,l_,h_)}function Wr(t,n){t*=x_,n*=x_;var e=T_(n),r=e*T_(t),i=e*A_(t),o=A_(n),u=M_(z_((u=l_*o-h_*i)*u+(u=h_*r-f_*o)*u+(u=f_*i-l_*r)*u),f_*r+l_*i+h_*o);Qv+=u,e_+=u*(f_+(f_=r)),r_+=u*(l_+(l_=i)),i_+=u*(h_+(h_=o)),Xr(f_,l_,h_)}function Zr(){j_.point=Hr}function Gr(){j_.point=Qr}function Jr(){Kr(c_,s_),j_.point=Hr}function Qr(t,n){c_=t,s_=n,t*=x_,n*=x_,j_.point=Kr;var e=T_(n);f_=e*T_(t),l_=e*A_(t),h_=A_(n),Xr(f_,l_,h_)}function Kr(t,n){t*=x_,n*=x_;var e=T_(n),r=e*T_(t),i=e*A_(t),o=A_(n),u=l_*o-h_*i,a=h_*r-f_*o,c=f_*i-l_*r,s=z_(u*u+a*a+c*c),f=gr(s),l=s&&-f/s;o_+=l*u,u_+=l*a,a_+=l*c,Qv+=f,e_+=f*(f_+(f_=r)),r_+=f*(l_+(l_=i)),i_+=f*(h_+(h_=o)),Xr(f_,l_,h_)}function ti(t,n){return[t>v_?t-y_:t<-v_?t+y_:t,n]}function ni(t,n,e){return(t%=y_)?n||e?V_(ri(t),ii(n,e)):ri(t):n||e?ii(n,e):ti}function ei(t){return function(n,e){return n+=t,[n>v_?n-y_:n<-v_?n+y_:n,e]}}function ri(t){var n=ei(t);return n.invert=ei(-t),n}function ii(t,n){function e(t,n){var e=T_(n),a=T_(t)*e,c=A_(t)*e,s=A_(n),f=s*r+a*i;return[M_(c*o-f*u,a*r-s*i),gr(f*o+c*u)]}var r=T_(t),i=A_(t),o=T_(n),u=A_(n);return e.invert=function(t,n){var e=T_(n),a=T_(t)*e,c=A_(t)*e,s=A_(n),f=s*o-c*u;return[M_(c*o+s*u,a*r+f*i),gr(f*r-a*i)]},e}function oi(t,n,e,r,i,o){if(e){var u=T_(n),a=A_(n),c=r*e;null==i?(i=n+r*y_,o=n-c/2):(i=ui(u,i),o=ui(u,o),(r>0?i<o:i>o)&&(i+=r*y_));for(var s,f=i;r>0?f>o:f<o;f-=c)s=Nr([u,-a*T_(f),-a*A_(f)]),t.point(s[0],s[1])}}function ui(t,n){n=Er(n),n[0]-=t,Lr(n);var e=_r(-n[1]);return((-n[2]<0?-e:e)+y_-d_)%y_}function ai(t,n,e,r){this.x=t,this.z=n,this.o=e,this.e=r,this.v=!1,this.n=this.p=null}function ci(t){if(n=t.length){for(var n,e,r=0,i=t[0];++r<n;)i.n=e=t[r],e.p=i,i=e;i.n=e=t[0],e.p=i}}function si(t,n,e,r){function i(i,o){return t<=i&&i<=e&&n<=o&&o<=r}function o(i,o,a,s){var f=0,l=0;if(null==i||(f=u(i,a))!==(l=u(o,a))||c(i,o)<0^a>0)do{s.point(0===f||3===f?t:e,f>1?r:n)}while((f=(f+a+4)%4)!==l);else s.point(o[0],o[1])}function u(r,i){return b_(r[0]-t)<d_?i>0?0:3:b_(r[0]-e)<d_?i>0?2:1:b_(r[1]-n)<d_?i>0?1:0:i>0?3:2}function a(t,n){return c(t.x,n.x)}function c(t,n){var e=u(t,1),r=u(n,1);return e!==r?e-r:0===e?n[1]-t[1]:1===e?t[0]-n[0]:2===e?t[1]-n[1]:n[0]-t[0]}return function(u){function c(t,n){i(t,n)&&S.point(t,n)}function s(){for(var n=0,e=0,i=_.length;e<i;++e)for(var o,u,a=_[e],c=1,s=a.length,f=a[0],l=f[0],h=f[1];c<s;++c)o=l,u=h,f=a[c],l=f[0],h=f[1],u<=r?h>r&&(l-o)*(r-u)>(h-u)*(t-o)&&++n:h<=r&&(l-o)*(r-u)<(h-u)*(t-o)&&--n;return n}function f(){S=N,v=[],_=[],k=!0}function l(){var t=s(),n=k&&t,e=(v=ff(v)).length;(n||e)&&(u.polygonStart(),n&&(u.lineStart(),o(null,null,1,u),u.lineEnd()),e&&sg(v,a,t,o,u),u.polygonEnd()),S=u,v=_=g=null}function h(){E.point=d,_&&_.push(g=[]),T=!0,M=!1,b=w=NaN}function p(){v&&(d(y,m),x&&M&&N.rejoin(),v.push(N.result())),E.point=c,M&&S.lineEnd()}function d(o,u){var a=i(o,u);if(_&&g.push([o,u]),T)y=o,m=u,x=a,T=!1,a&&(S.lineStart(),S.point(o,u));else if(a&&M)S.point(o,u);else{var c=[b=Math.max(lg,Math.min(fg,b)),w=Math.max(lg,Math.min(fg,w))],s=[o=Math.max(lg,Math.min(fg,o)),u=Math.max(lg,Math.min(fg,u))];ag(c,s,t,n,e,r)?(M||(S.lineStart(),S.point(c[0],c[1])),S.point(s[0],s[1]),a||S.lineEnd(),k=!1):a&&(S.lineStart(),S.point(o,u),k=!1)}b=o,w=u,M=a}var v,_,g,y,m,x,b,w,M,T,k,S=u,N=ug(),E={point:c,lineStart:h,lineEnd:p,polygonStart:f,polygonEnd:l};return E}}function fi(){_g.point=hi,_g.lineEnd=li}function li(){_g.point=_g.lineEnd=mr}function hi(t,n){t*=x_,n*=x_,$_=t,W_=A_(n),Z_=T_(n),_g.point=pi}function pi(t,n){t*=x_,n*=x_;var e=A_(n),r=T_(n),i=b_(t-$_),o=T_(i),u=A_(i),a=r*u,c=Z_*e-W_*r*o,s=W_*e+Z_*r*o;vg.add(M_(z_(a*a+c*c),s)),$_=t,W_=e,Z_=r}function di(t,n){return!(!t||!wg.hasOwnProperty(t.type))&&wg[t.type](t,n)}function vi(t,n){return 0===xg(t,n)}function _i(t,n){var e=xg(t[0],t[1]);return xg(t[0],n)+xg(n,t[1])<=e+d_}function gi(t,n){return!!dg(t.map(yi),mi(n))}function yi(t){return t=t.map(mi),t.pop(),t}function mi(t){return[t[0]*x_,t[1]*x_]}function xi(t,n,e){var r=Gs(t,n-d_,e).concat(n);return function(t){return r.map(function(n){return[t,n]})}}function bi(t,n,e){var r=Gs(t,n-d_,e).concat(n);return function(t){return r.map(function(n){return[n,t]})}}function wi(){function t(){return{type:"MultiLineString",coordinates:n()}}function n(){return Gs(k_(o/_)*_,i,_).map(h).concat(Gs(k_(s/g)*g,c,g).map(p)).concat(Gs(k_(r/d)*d,e,d).filter(function(t){return b_(t%_)>d_}).map(f)).concat(Gs(k_(a/v)*v,u,v).filter(function(t){return b_(t%g)>d_}).map(l))}var e,r,i,o,u,a,c,s,f,l,h,p,d=10,v=d,_=90,g=360,y=2.5;return t.lines=function(){return n().map(function(t){return{type:"LineString",coordinates:t}})},t.outline=function(){return{type:"Polygon",coordinates:[h(o).concat(p(c).slice(1),h(i).reverse().slice(1),p(s).reverse().slice(1))]}},t.extent=function(n){return arguments.length?t.extentMajor(n).extentMinor(n):t.extentMinor()},t.extentMajor=function(n){return arguments.length?(o=+n[0][0],i=+n[1][0],s=+n[0][1],c=+n[1][1],o>i&&(n=o,o=i,i=n),s>c&&(n=s,s=c,c=n),t.precision(y)):[[o,s],[i,c]]},t.extentMinor=function(n){return arguments.length?(r=+n[0][0],e=+n[1][0],a=+n[0][1],u=+n[1][1],r>e&&(n=r,r=e,e=n),a>u&&(n=a,a=u,u=n),t.precision(y)):[[r,a],[e,u]]},t.step=function(n){return arguments.length?t.stepMajor(n).stepMinor(n):t.stepMinor()},t.stepMajor=function(n){return arguments.length?(_=+n[0],g=+n[1],t):[_,g]},t.stepMinor=function(n){return arguments.length?(d=+n[0],v=+n[1],t):[d,v]},t.precision=function(n){return arguments.length?(y=+n,f=xi(a,u,90),l=bi(r,e,y),h=xi(s,c,90),p=bi(o,i,y),t):y},t.extentMajor([[-180,-90+d_],[180,90-d_]]).extentMinor([[-180,-80-d_],[180,80+d_]])}function Mi(){return wi()()}function Ti(){Eg.point=ki}function ki(t,n){Eg.point=Si,G_=Q_=t,J_=K_=n}function Si(t,n){Ng.add(K_*t-Q_*n),Q_=t,K_=n}function Ni(){Si(G_,J_)}function Ei(t,n){t<Ag&&(Ag=t),t>zg&&(zg=t),n<Cg&&(Cg=n),n>Pg&&(Pg=n)}function Ai(t,n){Rg+=t,qg+=n,++Ug}function Ci(){jg.point=zi}function zi(t,n){jg.point=Pi,Ai(eg=t,rg=n)}function Pi(t,n){var e=t-eg,r=n-rg,i=z_(e*e+r*r);Dg+=i*(eg+t)/2,Og+=i*(rg+n)/2,Fg+=i,Ai(eg=t,rg=n)}function Li(){jg.point=Ai}function Ri(){jg.point=Ui}function qi(){Di(tg,ng)}function Ui(t,n){jg.point=Di,Ai(tg=eg=t,ng=rg=n)}function Di(t,n){var e=t-eg,r=n-rg,i=z_(e*e+r*r);Dg+=i*(eg+t)/2,Og+=i*(rg+n)/2,Fg+=i,i=rg*t-eg*n,Ig+=i*(eg+t),Yg+=i*(rg+n),Bg+=3*i,Ai(eg=t,rg=n)}function Oi(t){this._context=t}function Fi(t,n){Gg.point=Ii,Xg=$g=t,Vg=Wg=n}function Ii(t,n){$g-=t,Wg-=n,Zg.add(z_($g*$g+Wg*Wg)),$g=t,Wg=n}function Yi(){this._string=[]}function Bi(t){return"m0,"+t+"a"+t+","+t+" 0 1,1 0,"+-2*t+"a"+t+","+t+" 0 1,1 0,"+2*t+"z"}function ji(t){return t.length>1}function Hi(t,n){return((t=t.x)[0]<0?t[1]-__-d_:__-t[1])-((n=n.x)[0]<0?n[1]-__-d_:__-n[1])}function Xi(t){var n,e=NaN,r=NaN,i=NaN;return{lineStart:function(){t.lineStart(),n=1},point:function(o,u){var a=o>0?v_:-v_,c=b_(o-e);b_(c-v_)<d_?(t.point(e,r=(r+u)/2>0?__:-__),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),t.point(o,r),n=0):i!==a&&c>=v_&&(b_(e-i)<d_&&(e-=i*d_),b_(o-a)<d_&&(o-=a*d_),r=Vi(e,r,o,u),t.point(i,r),t.lineEnd(),t.lineStart(),t.point(a,r),n=0),t.point(e=o,r=u),i=a},lineEnd:function(){t.lineEnd(),e=r=NaN},clean:function(){return 2-n}}}function Vi(t,n,e,r){var i,o,u=A_(t-e);return b_(u)>d_?w_((A_(n)*(o=T_(r))*A_(e)-A_(r)*(i=T_(n))*A_(t))/(i*o*u)):(n+r)/2}function $i(t,n,e,r){var i;if(null==t)i=e*__,r.point(-v_,i),r.point(0,i),r.point(v_,i),r.point(v_,0),r.point(v_,-i),r.point(0,-i),r.point(-v_,-i),r.point(-v_,0),r.point(-v_,i);else if(b_(t[0]-n[0])>d_){var o=t[0]<n[0]?v_:-v_;i=e*o/2,r.point(-o,i),r.point(0,i),r.point(o,i)}else r.point(n[0],n[1])}function Wi(t){return function(n){var e=new Zi;for(var r in t)e[r]=t[r];return e.stream=n,e}}function Zi(){}function Gi(t,n,e){var r=n[1][0]-n[0][0],i=n[1][1]-n[0][1],o=t.clipExtent&&t.clipExtent();t.scale(150).translate([0,0]),null!=o&&t.clipExtent(null),q_(e,t.stream(Lg));var u=Lg.result(),a=Math.min(r/(u[1][0]-u[0][0]),i/(u[1][1]-u[0][1])),c=+n[0][0]+(r-a*(u[1][0]+u[0][0]))/2,s=+n[0][1]+(i-a*(u[1][1]+u[0][1]))/2;return null!=o&&t.clipExtent(o),t.scale(150*a).translate([c,s])}function Ji(t,n,e){return Gi(t,[[0,0],n],e)}function Qi(t){return Wi({point:function(n,e){n=t(n,e),this.stream.point(n[0],n[1])}})}function Ki(t,n){function e(r,i,o,u,a,c,s,f,l,h,p,d,v,_){var g=s-r,y=f-i,m=g*g+y*y;if(m>4*n&&v--){var x=u+h,b=a+p,w=c+d,M=z_(x*x+b*b+w*w),T=gr(w/=M),k=b_(b_(w)-1)<d_||b_(o-l)<d_?(o+l)/2:M_(b,x),S=t(k,T),N=S[0],E=S[1],A=N-r,C=E-i,z=y*A-g*C;(z*z/m>n||b_((g*A+y*C)/m-.5)>.3||u*h+a*p+c*d<ry)&&(e(r,i,o,u,a,c,N,E,k,x/=M,b/=M,w,v,_),_.point(N,E),e(N,E,k,x,b,w,s,f,l,h,p,d,v,_))}}return function(n){function r(e,r){e=t(e,r),n.point(e[0],e[1])}function i(){g=NaN,w.point=o,n.lineStart()}function o(r,i){var o=Er([r,i]),u=t(r,i);e(g,y,_,m,x,b,g=u[0],y=u[1],_=r,m=o[0],x=o[1],b=o[2],ey,n),n.point(g,y)}function u(){w.point=r,n.lineEnd()}function a(){i(),w.point=c,w.lineEnd=s}function c(t,n){o(f=t,n),l=g,h=y,p=m,d=x,v=b,w.point=o}function s(){e(g,y,_,m,x,b,l,h,f,p,d,v,ey,n),w.lineEnd=u,u()}var f,l,h,p,d,v,_,g,y,m,x,b,w={point:r,lineStart:i,lineEnd:u,polygonStart:function(){n.polygonStart(),w.lineStart=a},polygonEnd:function(){n.polygonEnd(),w.lineStart=i}};return w}}function to(t){return no(function(){return t})()}function no(t){function n(t){return t=f(t[0]*x_,t[1]*x_),[t[0]*_+a,c-t[1]*_]}function e(t){return(t=f.invert((t[0]-a)/_,(c-t[1])/_))&&[t[0]*m_,t[1]*m_]}function r(t,n){return t=u(t,n),[t[0]*_+a,c-t[1]*_]}function i(){f=V_(s=ni(b,w,M),u);var t=u(m,x);return a=g-t[0]*_,c=y+t[1]*_,o()}function o(){return d=v=null,n}var u,a,c,s,f,l,h,p,d,v,_=150,g=480,y=250,m=0,x=0,b=0,w=0,M=0,T=null,k=Kg,S=null,N=kg,E=.5,A=iy(r,E);return n.stream=function(t){return d&&v===t?d:d=oy(k(s,A(N(v=t))))},n.clipAngle=function(t){return arguments.length?(k=+t?ty(T=t*x_,6*x_):(T=null,Kg),o()):T*m_},n.clipExtent=function(t){return arguments.length?(N=null==t?(S=l=h=p=null,kg):si(S=+t[0][0],l=+t[0][1],h=+t[1][0],p=+t[1][1]),o()):null==S?null:[[S,l],[h,p]]},n.scale=function(t){return arguments.length?(_=+t,i()):_},n.translate=function(t){return arguments.length?(g=+t[0],y=+t[1],i()):[g,y]},n.center=function(t){return arguments.length?(m=t[0]%360*x_,x=t[1]%360*x_,i()):[m*m_,x*m_]},n.rotate=function(t){return arguments.length?(b=t[0]%360*x_,w=t[1]%360*x_,M=t.length>2?t[2]%360*x_:0,i()):[b*m_,w*m_,M*m_]},n.precision=function(t){return arguments.length?(A=iy(r,E=t*t),o()):z_(E)},n.fitExtent=function(t,e){return Gi(n,t,e)},n.fitSize=function(t,e){return Ji(n,t,e)},function(){return u=t.apply(this,arguments),n.invert=u.invert&&e,i()}}function eo(t){var n=0,e=v_/3,r=no(t),i=r(n,e);return i.parallels=function(t){return arguments.length?r(n=t[0]*x_,e=t[1]*x_):[n*m_,e*m_]},i}function ro(t){function n(t,n){return[t*e,A_(n)/e]}var e=T_(t);return n.invert=function(t,n){return[t/e,gr(n*e)]},n}function io(t,n){function e(t,n){var e=z_(o-2*i*A_(n))/i;return[e*A_(t*=i),u-e*T_(t)]}var r=A_(t),i=(r+A_(n))/2;if(b_(i)<d_)return ro(t);var o=1+r*(2*i-r),u=z_(o)/i;return e.invert=function(t,n){var e=u-n;return[M_(t,b_(e))/i*C_(e),gr((o-(t*t+e*e)*i*i)/(2*i))]},e}function oo(t){var n=t.length;return{point:function(e,r){for(var i=-1;++i<n;)t[i].point(e,r)},sphere:function(){for(var e=-1;++e<n;)t[e].sphere()},lineStart:function(){for(var e=-1;++e<n;)t[e].lineStart()},lineEnd:function(){for(var e=-1;++e<n;)t[e].lineEnd()},polygonStart:function(){for(var e=-1;++e<n;)t[e].polygonStart()},polygonEnd:function(){for(var e=-1;++e<n;)t[e].polygonEnd()}}}function uo(t){return function(n,e){var r=T_(n),i=T_(e),o=t(r*i);return[o*i*A_(n),o*A_(e)]}}function ao(t){return function(n,e){var r=z_(n*n+e*e),i=t(r),o=A_(i),u=T_(i);return[M_(n*o,r*u),gr(r&&e*o/r)]}}function co(t,n){return[t,N_(P_((__+n)/2))]}function so(t){function n(){var n=v_*a(),u=o(ig(o.rotate()).invert([0,0]));return s(null==f?[[u[0]-n,u[1]-n],[u[0]+n,u[1]+n]]:t===co?[[Math.max(u[0]-n,f),e],[Math.min(u[0]+n,r),i]]:[[f,Math.max(u[1]-n,e)],[r,Math.min(u[1]+n,i)]])}var e,r,i,o=to(t),u=o.center,a=o.scale,c=o.translate,s=o.clipExtent,f=null;return o.scale=function(t){return arguments.length?(a(t),n()):a()},o.translate=function(t){return arguments.length?(c(t),n()):c()},o.center=function(t){return arguments.length?(u(t),n()):u()},o.clipExtent=function(t){return arguments.length?(null==t?f=e=r=i=null:(f=+t[0][0],e=+t[0][1],r=+t[1][0],i=+t[1][1]),n()):null==f?null:[[f,e],[r,i]]},n()}function fo(t){return P_((__+t)/2)}function lo(t,n){function e(t,n){o>0?n<-__+d_&&(n=-__+d_):n>__-d_&&(n=__-d_);var e=o/E_(fo(n),i);return[e*A_(i*t),o-e*T_(i*t)]}var r=T_(t),i=t===n?A_(t):N_(r/T_(n))/N_(fo(n)/fo(t)),o=r*E_(fo(t),i)/i;return i?(e.invert=function(t,n){var e=o-n,r=C_(i)*z_(t*t+e*e);return[M_(t,b_(e))/i*C_(e),2*w_(E_(o/r,1/i))-__]},e):co}function ho(t,n){return[t,n]}function po(t,n){function e(t,n){var e=o-n,r=i*t;return[e*A_(r),o-e*T_(r)]}var r=T_(t),i=t===n?A_(t):(r-T_(n))/(n-t),o=r/i+t;return b_(i)<d_?ho:(e.invert=function(t,n){var e=o-n;return[M_(t,b_(e))/i*C_(e),o-C_(i)*z_(t*t+e*e)]},e)}function vo(t,n){var e=T_(n),r=T_(t)*e;return[e*A_(t)/r,A_(n)/r]}function _o(t,n,e,r){return 1===t&&1===n&&0===e&&0===r?kg:Wi({point:function(i,o){this.stream.point(i*t+e,o*n+r)}})}function go(t,n){return[T_(n)*A_(t),A_(n)]}function yo(t,n){var e=T_(n),r=1+T_(t)*e;return[e*A_(t)/r,A_(n)/r]}function mo(t,n){return[N_(P_((__+n)/2)),-t]}function xo(t,n){return t.parent===n.parent?1:2}function bo(t){return t.reduce(wo,0)/t.length}function wo(t,n){return t+n.x}function Mo(t){return 1+t.reduce(To,0)}function To(t,n){return Math.max(t,n.y)}function ko(t){for(var n;n=t.children;)t=n[0];return t}function So(t){for(var n;n=t.children;)t=n[n.length-1];return t}function No(t){var n=0,e=t.children,r=e&&e.length;if(r)for(;--r>=0;)n+=e[r].value;else n=1;t.value=n}function Eo(t,n){if(t===n)return t;var e=t.ancestors(),r=n.ancestors(),i=null;for(t=e.pop(),n=r.pop();t===n;)i=t,t=e.pop(),n=r.pop();return i}function Ao(t,n){var e,r,i,o,u,a=new Ro(t),c=+t.value&&(a.value=t.value),s=[a];for(null==n&&(n=zo);e=s.pop();)if(c&&(e.value=+e.data.value),(i=n(e.data))&&(u=i.length))for(e.children=new Array(u),o=u-1;o>=0;--o)s.push(r=e.children[o]=new Ro(i[o])),r.parent=e,r.depth=e.depth+1;return a.eachBefore(Lo)}function Co(){return Ao(this).eachBefore(Po)}function zo(t){return t.children}function Po(t){t.data=t.data.data}function Lo(t){var n=0;do{t.height=n}while((t=t.parent)&&t.height<++n)}function Ro(t){this.data=t,this.depth=this.height=0,this.parent=null}function qo(t){this._=t,this.next=null}function Uo(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r-n.r;return i*i+1e-6>e*e+r*r}function Do(t,n){var e,r,i,o=null,u=t.head;switch(n.length){case 1:e=Oo(n[0]);break;case 2:e=Fo(n[0],n[1]);break;case 3:e=Io(n[0],n[1],n[2])}for(;u;)i=u._,r=u.next,e&&Uo(e,i)?o=u:(o?(t.tail=o,o.next=null):t.head=t.tail=null,n.push(i),e=Do(t,n),n.pop(),t.head?(u.next=t.head,t.head=u):(u.next=null,t.head=t.tail=u),o=t.tail,o.next=r),u=r;return t.tail=o,e}function Oo(t){return{x:t.x,y:t.y,r:t.r}}function Fo(t,n){var e=t.x,r=t.y,i=t.r,o=n.x,u=n.y,a=n.r,c=o-e,s=u-r,f=a-i,l=Math.sqrt(c*c+s*s);return{x:(e+o+c/l*f)/2,y:(r+u+s/l*f)/2,r:(l+i+a)/2}}function Io(t,n,e){var r=t.x,i=t.y,o=t.r,u=n.x,a=n.y,c=n.r,s=e.x,f=e.y,l=e.r,h=2*(r-u),p=2*(i-a),d=2*(c-o),v=r*r+i*i-o*o-u*u-a*a+c*c,_=2*(r-s),g=2*(i-f),y=2*(l-o),m=r*r+i*i-o*o-s*s-f*f+l*l,x=_*p-h*g,b=(p*m-g*v)/x-r,w=(g*d-p*y)/x,M=(_*v-h*m)/x-i,T=(h*y-_*d)/x,k=w*w+T*T-1,S=2*(b*w+M*T+o),N=b*b+M*M-o*o,E=(-S-Math.sqrt(S*S-4*k*N))/(2*k);return{x:b+w*E+r,y:M+T*E+i,r:E}}function Yo(t,n,e){var r=t.x,i=t.y,o=n.r+e.r,u=t.r+e.r,a=n.x-r,c=n.y-i,s=a*a+c*c;if(s){var f=.5+((u*=u)-(o*=o))/(2*s),l=Math.sqrt(Math.max(0,2*o*(u+s)-(u-=s)*u-o*o))/(2*s);e.x=r+f*a+l*c,e.y=i+f*c-l*a}else e.x=r+u,e.y=i}function Bo(t,n){var e=n.x-t.x,r=n.y-t.y,i=t.r+n.r;return i*i-1e-6>e*e+r*r}function jo(t,n,e){var r=t._,i=t.next._,o=r.r+i.r,u=(r.x*i.r+i.x*r.r)/o-n,a=(r.y*i.r+i.y*r.r)/o-e;return u*u+a*a}function Ho(t){this._=t,this.next=null,this.previous=null}function Xo(t){if(!(i=t.length))return 0;var n,e,r,i;if(n=t[0],n.x=0,n.y=0,!(i>1))return n.r;if(e=t[1],n.x=-e.r,e.x=n.r,e.y=0,!(i>2))return n.r+e.r;Yo(e,n,r=t[2]);var o,u,a,c,s,f,l,h=n.r*n.r,p=e.r*e.r,d=r.r*r.r,v=h+p+d,_=h*n.x+p*e.x+d*r.x,g=h*n.y+p*e.y+d*r.y;n=new Ho(n),e=new Ho(e),r=new Ho(r),n.next=r.previous=e,e.next=n.previous=r,r.next=e.previous=n;t:for(a=3;a<i;++a){Yo(n._,e._,r=t[a]),r=new Ho(r),c=e.next,s=n.previous,f=e._.r,l=n._.r;do{if(f<=l){if(Bo(c._,r._)){e=c,n.next=e,e.previous=n,--a;continue t}f+=c._.r,c=c.next}else{if(Bo(s._,r._)){n=s,n.next=e,e.previous=n,--a;continue t}l+=s._.r,s=s.previous}}while(c!==s.next);for(r.previous=n,r.next=e,n.next=e.previous=e=r,v+=d=r._.r*r._.r,_+=d*r._.x,g+=d*r._.y,h=jo(n,o=_/v,u=g/v);(r=r.next)!==e;)(d=jo(r,o,u))<h&&(n=r,h=d);e=n.next}for(n=[e._],r=e;(r=r.next)!==e;)n.push(r._);for(r=qy(n),a=0;a<i;++a)n=t[a],n.x-=r.x,n.y-=r.y;return r.r}function Vo(t){return null==t?null:$o(t)}function $o(t){if("function"!=typeof t)throw new Error;return t}function Wo(){return 0}function Zo(t){return Math.sqrt(t.value)}function Go(t){return function(n){n.children||(n.r=Math.max(0,+t(n)||0))}}function Jo(t,n){return function(e){if(r=e.children){var r,i,o,u=r.length,a=t(e)*n||0;if(a)for(i=0;i<u;++i)r[i].r+=a;if(o=Xo(r),a)for(i=0;i<u;++i)r[i].r-=a;e.r=o+a}}}function Qo(t){return function(n){var e=n.parent;n.r*=t,e&&(n.x=e.x+t*n.x,n.y=e.y+t*n.y)}}function Ko(t){return t.id}function tu(t){return t.parentId}function nu(t,n){return t.parent===n.parent?1:2}function eu(t){var n=t.children;return n?n[0]:t.t}function ru(t){var n=t.children;return n?n[n.length-1]:t.t}function iu(t,n,e){var r=e/(n.i-t.i);n.c-=r,n.s+=e,t.c+=r,n.z+=e,n.m+=e}function ou(t){for(var n,e=0,r=0,i=t.children,o=i.length;--o>=0;)n=i[o],n.z+=e,n.m+=e,e+=n.s+(r+=n.c)}function uu(t,n,e){return t.a.parent===n.parent?t.a:e}function au(t,n){this._=t,this.parent=null,this.children=null,this.A=null,this.a=this,this.z=0,this.m=0,this.c=0,this.s=0,this.t=null,this.i=n}function cu(t){for(var n,e,r,i,o,u=new au(t,0),a=[u];n=a.pop();)if(r=n._.children)for(n.children=new Array(o=r.length),i=o-1;i>=0;--i)a.push(e=n.children[i]=new au(r[i],i)),e.parent=n;return(u.parent=new au(null,0)).children=[u],u}function su(t,n,e,r,i,o){for(var u,a,c,s,f,l,h,p,d,v,_,g=[],y=n.children,m=0,x=0,b=y.length,w=n.value;m<b;){c=i-e,s=o-r;do{f=y[x++].value}while(!f&&x<b);for(l=h=f,v=Math.max(s/c,c/s)/(w*t),_=f*f*v,d=Math.max(h/_,_/l);x<b;++x){if(f+=a=y[x].value,a<l&&(l=a),a>h&&(h=a),_=f*f*v,(p=Math.max(h/_,_/l))>d){f-=a;break}d=p}g.push(u={value:f,dice:c<s,children:y.slice(m,x)}),u.dice?Iy(u,e,r,i,w?r+=s*f/w:o):$y(u,e,r,w?e+=c*f/w:i,o),w-=f,m=x}return g}function fu(t,n){return t[0]-n[0]||t[1]-n[1]}function lu(t){for(var n=t.length,e=[0,1],r=2,i=2;i<n;++i){for(;r>1&&em(t[e[r-2]],t[e[r-1]],t[i])<=0;)--r;e[r++]=i}return e.slice(0,r)}function hu(t){if(!(t>=1))throw new Error;this._size=t,this._call=this._error=null,this._tasks=[],this._data=[],this._waiting=this._active=this._ended=this._start=0}function pu(t){if(!t._start)try{du(t)}catch(n){if(t._tasks[t._ended+t._active-1])_u(t,n);else if(!t._data)throw n}}function du(t){for(;t._start=t._waiting&&t._active<t._size;){var n=t._ended+t._active,e=t._tasks[n],r=e.length-1,i=e[r];e[r]=vu(t,n),--t._waiting,++t._active,e=i.apply(null,e),t._tasks[n]&&(t._tasks[n]=e||am)}}function vu(t,n){return function(e,r){t._tasks[n]&&(--t._active,++t._ended,t._tasks[n]=null,null==t._error&&(null!=e?_u(t,e):(t._data[n]=r,t._waiting?pu(t):gu(t))))}}function _u(t,n){var e,r=t._tasks.length;for(t._error=n,t._data=void 0,t._waiting=NaN;--r>=0;)if((e=t._tasks[r])&&(t._tasks[r]=null,e.abort))try{e.abort()}catch(t){}t._active=NaN,gu(t)}function gu(t){if(!t._active&&t._call){var n=t._data;t._data=void 0,t._call(t._error,n)}}function yu(t){return new hu(arguments.length?+t:1/0)}function mu(t){return function(n,e){t(null==n?e:null)}}function xu(t){var n=t.responseType;return n&&"text"!==n?t.response:t.responseText}function bu(t,n){return function(e){return t(e.responseText,n)}}function wu(t){function n(n){var o=n+"",u=e.get(o);if(!u){if(i!==Sm)return i;e.set(o,u=r.push(n))}return t[(u-1)%t.length]}var e=Ye(),r=[],i=Sm;return t=null==t?[]:km.call(t),n.domain=function(t){if(!arguments.length)return r.slice();r=[],e=Ye();for(var i,o,u=-1,a=t.length;++u<a;)e.has(o=(i=t[u])+"")||e.set(o,r.push(i));return n},n.range=function(e){return arguments.length?(t=km.call(e),n):t.slice()},n.unknown=function(t){return arguments.length?(i=t,n):i},n.copy=function(){return wu().domain(r).range(t).unknown(i)},n}function Mu(){function t(){var t=i().length,r=u[1]<u[0],l=u[r-0],h=u[1-r];n=(h-l)/Math.max(1,t-c+2*s),a&&(n=Math.floor(n)),l+=(h-l-n*(t-c))*f,e=n*(1-c),a&&(l=Math.round(l),e=Math.round(e));var p=Gs(t).map(function(t){return l+n*t});return o(r?p.reverse():p)}var n,e,r=wu().unknown(void 0),i=r.domain,o=r.range,u=[0,1],a=!1,c=0,s=0,f=.5;return delete r.unknown,r.domain=function(n){return arguments.length?(i(n),t()):i()},r.range=function(n){return arguments.length?(u=[+n[0],+n[1]],t()):u.slice()},r.rangeRound=function(n){return u=[+n[0],+n[1]],a=!0,t()},r.bandwidth=function(){return e},r.step=function(){return n},r.round=function(n){return arguments.length?(a=!!n,t()):a},r.padding=function(n){return arguments.length?(c=s=Math.max(0,Math.min(1,n)),t()):c},r.paddingInner=function(n){return arguments.length?(c=Math.max(0,Math.min(1,n)),t()):c},r.paddingOuter=function(n){return arguments.length?(s=Math.max(0,Math.min(1,n)),t()):s},r.align=function(n){return arguments.length?(f=Math.max(0,Math.min(1,n)),t()):f},r.copy=function(){return Mu().domain(i()).range(u).round(a).paddingInner(c).paddingOuter(s).align(f)},t()}function Tu(t){var n=t.copy;return t.padding=t.paddingOuter,delete t.paddingInner,delete t.paddingOuter,t.copy=function(){return Tu(n())},t}function ku(){return Tu(Mu().paddingInner(1))}function Su(t,n){return(n-=t=+t)?function(e){return(e-t)/n}:Nm(n)}function Nu(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=n?0:t>=e?1:r(t)}}}function Eu(t){return function(n,e){var r=t(n=+n,e=+e);return function(t){return t<=0?n:t>=1?e:r(t)}}}function Au(t,n,e,r){var i=t[0],o=t[1],u=n[0],a=n[1];return o<i?(i=e(o,i),u=r(a,u)):(i=e(i,o),u=r(u,a)),function(t){return u(i(t))}}function Cu(t,n,e,r){var i=Math.min(t.length,n.length)-1,o=new Array(i),u=new Array(i),a=-1;for(t[i]<t[0]&&(t=t.slice().reverse(),n=n.slice().reverse());++a<i;)o[a]=e(t[a],t[a+1]),u[a]=r(n[a],n[a+1]);return function(n){var e=Us(t,n,1,i)-1;return u[e](o[e](n))}}function zu(t,n){return n.domain(t.domain()).range(t.range()).interpolate(t.interpolate()).clamp(t.clamp())}function Pu(t,n){function e(){return i=Math.min(a.length,c.length)>2?Cu:Au,o=u=null,r}function r(n){return(o||(o=i(a,c,f?Nu(t):t,s)))(+n)}var i,o,u,a=Am,c=Am,s=Th,f=!1;return r.invert=function(t){return(u||(u=i(c,a,Su,f?Eu(n):n)))(+t)},r.domain=function(t){return arguments.length?(a=Tm.call(t,Em),e()):a.slice()},r.range=function(t){return arguments.length?(c=km.call(t),e()):c.slice()},r.rangeRound=function(t){return c=km.call(t),s=kh,e()},r.clamp=function(t){return arguments.length?(f=!!t,e()):f},r.interpolate=function(t){return arguments.length?(s=t,e()):s},e()}function Lu(t){var n=t.domain;return t.ticks=function(t){var e=n();return tf(e[0],e[e.length-1],null==t?10:t)},t.tickFormat=function(t,e){return Cm(n(),t,e)},t.nice=function(e){var i=n(),o=i.length-1,u=null==e?10:e,a=i[0],c=i[o],s=r(a,c,u);return s&&(s=r(Math.floor(a/s)*s,Math.ceil(c/s)*s,u),i[0]=Math.floor(a/s)*s,i[o]=Math.ceil(c/s)*s,n(i)),t},t}function Ru(){var t=Pu(Su,mh);return t.copy=function(){return zu(t,Ru())},Lu(t)}function qu(){function t(t){return+t}var n=[0,1];return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=Tm.call(e,Em),t):n.slice()},t.copy=function(){return qu().domain(n)},Lu(t)}function Uu(t,n){return(n=Math.log(n/t))?function(e){return Math.log(e/t)/n}:Nm(n)}function Du(t,n){return t<0?function(e){return-Math.pow(-n,e)*Math.pow(-t,1-e)}:function(e){return Math.pow(n,e)*Math.pow(t,1-e)}}function Ou(t){return isFinite(t)?+("1e"+t):t<0?0:t}function Fu(t){return 10===t?Ou:t===Math.E?Math.exp:function(n){return Math.pow(t,n)}}function Iu(t){return t===Math.E?Math.log:10===t&&Math.log10||2===t&&Math.log2||(t=Math.log(t),function(n){return Math.log(n)/t})}function Yu(t){return function(n){return-t(-n)}}function Bu(){function n(){return o=Iu(i),u=Fu(i),r()[0]<0&&(o=Yu(o),u=Yu(u)),e}var e=Pu(Uu,Du).domain([1,10]),r=e.domain,i=10,o=Iu(10),u=Fu(10);return e.base=function(t){return arguments.length?(i=+t,n()):i},e.domain=function(t){return arguments.length?(r(t),n()):r()},e.ticks=function(t){var n,e=r(),a=e[0],c=e[e.length-1];(n=c<a)&&(h=a,a=c,c=h);var s,f,l,h=o(a),p=o(c),d=null==t?10:+t,v=[];if(!(i%1)&&p-h<d){if(h=Math.round(h)-1,p=Math.round(p)+1,a>0){for(;h<p;++h)for(f=1,s=u(h);f<i;++f)if(!((l=s*f)<a)){if(l>c)break;v.push(l)}}else for(;h<p;++h)for(f=i-1,s=u(h);f>=1;--f)if(!((l=s*f)<a)){if(l>c)break;v.push(l)}}else v=tf(h,p,Math.min(p-h,d)).map(u);return n?v.reverse():v},e.tickFormat=function(n,r){if(null==r&&(r=10===i?".0e":","),"function"!=typeof r&&(r=t.format(r)),n===1/0)return r;null==n&&(n=10);var a=Math.max(1,i*n/e.ticks().length);return function(t){var n=t/u(Math.round(o(t)));return n*i<i-.5&&(n*=i),n<=a?r(t):""}},e.nice=function(){return r(zm(r(),{floor:function(t){return u(Math.floor(o(t)))},ceil:function(t){return u(Math.ceil(o(t)))}}))},e.copy=function(){return zu(e,Bu().base(i))},e}function ju(t,n){return t<0?-Math.pow(-t,n):Math.pow(t,n)}function Hu(){function t(t,n){return(n=ju(n,e)-(t=ju(t,e)))?function(r){return(ju(r,e)-t)/n}:Nm(n)}function n(t,n){return n=ju(n,e)-(t=ju(t,e)),function(r){return ju(t+n*r,1/e)}}var e=1,r=Pu(t,n),i=r.domain;return r.exponent=function(t){return arguments.length?(e=+t,i(i())):e},r.copy=function(){return zu(r,Hu().exponent(e))},Lu(r)}function Xu(){return Hu().exponent(.5)}function Vu(){function t(){
var t=0,o=Math.max(1,r.length);for(i=new Array(o-1);++t<o;)i[t-1]=rf(e,t/o);return n}function n(t){if(!isNaN(t=+t))return r[Us(i,t)]}var e=[],r=[],i=[];return n.invertExtent=function(t){var n=r.indexOf(t);return n<0?[NaN,NaN]:[n>0?i[n-1]:e[0],n<i.length?i[n]:e[e.length-1]]},n.domain=function(n){if(!arguments.length)return e.slice();e=[];for(var r,i=0,o=n.length;i<o;++i)null==(r=n[i])||isNaN(r=+r)||e.push(r);return e.sort(Ls),t()},n.range=function(n){return arguments.length?(r=km.call(n),t()):r.slice()},n.quantiles=function(){return i.slice()},n.copy=function(){return Vu().domain(e).range(r)},n}function $u(){function t(t){if(t<=t)return u[Us(o,t,0,i)]}function n(){var n=-1;for(o=new Array(i);++n<i;)o[n]=((n+1)*r-(n-i)*e)/(i+1);return t}var e=0,r=1,i=1,o=[.5],u=[0,1];return t.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n()):[e,r]},t.range=function(t){return arguments.length?(i=(u=km.call(t)).length-1,n()):u.slice()},t.invertExtent=function(t){var n=u.indexOf(t);return n<0?[NaN,NaN]:n<1?[e,o[0]]:n>=i?[o[i-1],r]:[o[n-1],o[n]]},t.copy=function(){return $u().domain([e,r]).range(u)},Lu(t)}function Wu(){function t(t){if(t<=t)return e[Us(n,t,0,r)]}var n=[.5],e=[0,1],r=1;return t.domain=function(i){return arguments.length?(n=km.call(i),r=Math.min(n.length,e.length-1),t):n.slice()},t.range=function(i){return arguments.length?(e=km.call(i),r=Math.min(n.length,e.length-1),t):e.slice()},t.invertExtent=function(t){var r=e.indexOf(t);return[n[r-1],n[r]]},t.copy=function(){return Wu().domain(n).range(e)},t}function Zu(t,n,e,r){function i(n){return t(n=new Date(+n)),n}return i.floor=i,i.ceil=function(e){return t(e=new Date(e-1)),n(e,1),t(e),e},i.round=function(t){var n=i(t),e=i.ceil(t);return t-n<e-t?n:e},i.offset=function(t,e){return n(t=new Date(+t),null==e?1:Math.floor(e)),t},i.range=function(e,r,o){var u=[];if(e=i.ceil(e),o=null==o?1:Math.floor(o),!(e<r&&o>0))return u;do{u.push(new Date(+e))}while(n(e,o),t(e),e<r);return u},i.filter=function(e){return Zu(function(n){if(n>=n)for(;t(n),!e(n);)n.setTime(n-1)},function(t,r){if(t>=t)for(;--r>=0;)for(;n(t,1),!e(t););})},e&&(i.count=function(n,r){return Pm.setTime(+n),Lm.setTime(+r),t(Pm),t(Lm),Math.floor(e(Pm,Lm))},i.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?i.filter(r?function(n){return r(n)%t==0}:function(n){return i.count(0,n)%t==0}):i:null}),i}function Gu(t){return Zu(function(n){n.setDate(n.getDate()-(n.getDay()+7-t)%7),n.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+7*n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Um)/Dm})}function Ju(t){return Zu(function(n){n.setUTCDate(n.getUTCDate()-(n.getUTCDay()+7-t)%7),n.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+7*n)},function(t,n){return(n-t)/Dm})}function Qu(t){if(0<=t.y&&t.y<100){var n=new Date(-1,t.m,t.d,t.H,t.M,t.S,t.L);return n.setFullYear(t.y),n}return new Date(t.y,t.m,t.d,t.H,t.M,t.S,t.L)}function Ku(t){if(0<=t.y&&t.y<100){var n=new Date(Date.UTC(-1,t.m,t.d,t.H,t.M,t.S,t.L));return n.setUTCFullYear(t.y),n}return new Date(Date.UTC(t.y,t.m,t.d,t.H,t.M,t.S,t.L))}function ta(t){return{y:t,m:0,d:1,H:0,M:0,S:0,L:0}}function na(t){function n(t,n){return function(e){var r,i,o,u=[],a=-1,c=0,s=t.length;for(e instanceof Date||(e=new Date(+e));++a<s;)37===t.charCodeAt(a)&&(u.push(t.slice(c,a)),null!=(i=qx[r=t.charAt(++a)])?r=t.charAt(++a):i="e"===r?" ":"0",(o=n[r])&&(r=o(e,i)),u.push(r),c=a+1);return u.push(t.slice(c,a)),u.join("")}}function e(t,n){return function(e){var i=ta(1900);if(r(i,t,e+="",0)!=e.length)return null;if("p"in i&&(i.H=i.H%12+12*i.p),"W"in i||"U"in i){"w"in i||(i.w="W"in i?1:0);var o="Z"in i?Ku(ta(i.y)).getUTCDay():n(ta(i.y)).getDay();i.m=0,i.d="W"in i?(i.w+6)%7+7*i.W-(o+5)%7:i.w+7*i.U-(o+6)%7}return"Z"in i?(i.H+=i.Z/100|0,i.M+=i.Z%100,Ku(i)):n(i)}}function r(t,n,e,r){for(var i,o,u=0,a=n.length,c=e.length;u<a;){if(r>=c)return-1;if(37===(i=n.charCodeAt(u++))){if(i=n.charAt(u++),!(o=B[i in qx?n.charAt(u++):i])||(r=o(t,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function i(t,n,e){var r=C.exec(n.slice(e));return r?(t.p=z[r[0].toLowerCase()],e+r[0].length):-1}function o(t,n,e){var r=R.exec(n.slice(e));return r?(t.w=q[r[0].toLowerCase()],e+r[0].length):-1}function u(t,n,e){var r=P.exec(n.slice(e));return r?(t.w=L[r[0].toLowerCase()],e+r[0].length):-1}function a(t,n,e){var r=O.exec(n.slice(e));return r?(t.m=F[r[0].toLowerCase()],e+r[0].length):-1}function c(t,n,e){var r=U.exec(n.slice(e));return r?(t.m=D[r[0].toLowerCase()],e+r[0].length):-1}function s(t,n,e){return r(t,w,n,e)}function f(t,n,e){return r(t,M,n,e)}function l(t,n,e){return r(t,T,n,e)}function h(t){return N[t.getDay()]}function p(t){return S[t.getDay()]}function d(t){return A[t.getMonth()]}function v(t){return E[t.getMonth()]}function _(t){return k[+(t.getHours()>=12)]}function g(t){return N[t.getUTCDay()]}function y(t){return S[t.getUTCDay()]}function m(t){return A[t.getUTCMonth()]}function x(t){return E[t.getUTCMonth()]}function b(t){return k[+(t.getUTCHours()>=12)]}var w=t.dateTime,M=t.date,T=t.time,k=t.periods,S=t.days,N=t.shortDays,E=t.months,A=t.shortMonths,C=ia(k),z=oa(k),P=ia(S),L=oa(S),R=ia(N),q=oa(N),U=ia(E),D=oa(E),O=ia(A),F=oa(A),I={a:h,A:p,b:d,B:v,c:null,d:xa,e:xa,H:ba,I:wa,j:Ma,L:Ta,m:ka,M:Sa,p:_,S:Na,U:Ea,w:Aa,W:Ca,x:null,X:null,y:za,Y:Pa,Z:La,"%":Wa},Y={a:g,A:y,b:m,B:x,c:null,d:Ra,e:Ra,H:qa,I:Ua,j:Da,L:Oa,m:Fa,M:Ia,p:b,S:Ya,U:Ba,w:ja,W:Ha,x:null,X:null,y:Xa,Y:Va,Z:$a,"%":Wa},B={a:o,A:u,b:a,B:c,c:s,d:pa,e:pa,H:va,I:va,j:da,L:ya,m:ha,M:_a,p:i,S:ga,U:aa,w:ua,W:ca,x:f,X:l,y:fa,Y:sa,Z:la,"%":ma};return I.x=n(M,I),I.X=n(T,I),I.c=n(w,I),Y.x=n(M,Y),Y.X=n(T,Y),Y.c=n(w,Y),{format:function(t){var e=n(t+="",I);return e.toString=function(){return t},e},parse:function(t){var n=e(t+="",Qu);return n.toString=function(){return t},n},utcFormat:function(t){var e=n(t+="",Y);return e.toString=function(){return t},e},utcParse:function(t){var n=e(t,Ku);return n.toString=function(){return t},n}}}function ea(t,n,e){var r=t<0?"-":"",i=(r?-t:t)+"",o=i.length;return r+(o<e?new Array(e-o+1).join(n)+i:i)}function ra(t){return t.replace(Ox,"\\$&")}function ia(t){return new RegExp("^(?:"+t.map(ra).join("|")+")","i")}function oa(t){for(var n={},e=-1,r=t.length;++e<r;)n[t[e].toLowerCase()]=e;return n}function ua(t,n,e){var r=Ux.exec(n.slice(e,e+1));return r?(t.w=+r[0],e+r[0].length):-1}function aa(t,n,e){var r=Ux.exec(n.slice(e));return r?(t.U=+r[0],e+r[0].length):-1}function ca(t,n,e){var r=Ux.exec(n.slice(e));return r?(t.W=+r[0],e+r[0].length):-1}function sa(t,n,e){var r=Ux.exec(n.slice(e,e+4));return r?(t.y=+r[0],e+r[0].length):-1}function fa(t,n,e){var r=Ux.exec(n.slice(e,e+2));return r?(t.y=+r[0]+(+r[0]>68?1900:2e3),e+r[0].length):-1}function la(t,n,e){var r=/^(Z)|([+-]\d\d)(?:\:?(\d\d))?/.exec(n.slice(e,e+6));return r?(t.Z=r[1]?0:-(r[2]+(r[3]||"00")),e+r[0].length):-1}function ha(t,n,e){var r=Ux.exec(n.slice(e,e+2));return r?(t.m=r[0]-1,e+r[0].length):-1}function pa(t,n,e){var r=Ux.exec(n.slice(e,e+2));return r?(t.d=+r[0],e+r[0].length):-1}function da(t,n,e){var r=Ux.exec(n.slice(e,e+3));return r?(t.m=0,t.d=+r[0],e+r[0].length):-1}function va(t,n,e){var r=Ux.exec(n.slice(e,e+2));return r?(t.H=+r[0],e+r[0].length):-1}function _a(t,n,e){var r=Ux.exec(n.slice(e,e+2));return r?(t.M=+r[0],e+r[0].length):-1}function ga(t,n,e){var r=Ux.exec(n.slice(e,e+2));return r?(t.S=+r[0],e+r[0].length):-1}function ya(t,n,e){var r=Ux.exec(n.slice(e,e+3));return r?(t.L=+r[0],e+r[0].length):-1}function ma(t,n,e){var r=Dx.exec(n.slice(e,e+1));return r?e+r[0].length:-1}function xa(t,n){return ea(t.getDate(),n,2)}function ba(t,n){return ea(t.getHours(),n,2)}function wa(t,n){return ea(t.getHours()%12||12,n,2)}function Ma(t,n){return ea(1+Hm.count(cx(t),t),n,3)}function Ta(t,n){return ea(t.getMilliseconds(),n,3)}function ka(t,n){return ea(t.getMonth()+1,n,2)}function Sa(t,n){return ea(t.getMinutes(),n,2)}function Na(t,n){return ea(t.getSeconds(),n,2)}function Ea(t,n){return ea(Vm.count(cx(t),t),n,2)}function Aa(t){return t.getDay()}function Ca(t,n){return ea($m.count(cx(t),t),n,2)}function za(t,n){return ea(t.getFullYear()%100,n,2)}function Pa(t,n){return ea(t.getFullYear()%1e4,n,4)}function La(t){var n=t.getTimezoneOffset();return(n>0?"-":(n*=-1,"+"))+ea(n/60|0,"0",2)+ea(n%60,"0",2)}function Ra(t,n){return ea(t.getUTCDate(),n,2)}function qa(t,n){return ea(t.getUTCHours(),n,2)}function Ua(t,n){return ea(t.getUTCHours()%12||12,n,2)}function Da(t,n){return ea(1+dx.count(Px(t),t),n,3)}function Oa(t,n){return ea(t.getUTCMilliseconds(),n,3)}function Fa(t,n){return ea(t.getUTCMonth()+1,n,2)}function Ia(t,n){return ea(t.getUTCMinutes(),n,2)}function Ya(t,n){return ea(t.getUTCSeconds(),n,2)}function Ba(t,n){return ea(_x.count(Px(t),t),n,2)}function ja(t){return t.getUTCDay()}function Ha(t,n){return ea(gx.count(Px(t),t),n,2)}function Xa(t,n){return ea(t.getUTCFullYear()%100,n,2)}function Va(t,n){return ea(t.getUTCFullYear()%1e4,n,4)}function $a(){return"+0000"}function Wa(){return"%"}function Za(n){return Lx=na(n),t.timeFormat=Lx.format,t.timeParse=Lx.parse,t.utcFormat=Lx.utcFormat,t.utcParse=Lx.utcParse,Lx}function Ga(t){return t.toISOString()}function Ja(t){var n=new Date(t);return isNaN(n)?null:n}function Qa(t){return new Date(t)}function Ka(t){return t instanceof Date?+t:+new Date(+t)}function tc(t,n,e,i,o,u,a,c,s){function f(r){return(a(r)<r?v:u(r)<r?_:o(r)<r?g:i(r)<r?y:n(r)<r?e(r)<r?m:x:t(r)<r?b:w)(r)}function l(n,e,i,o){if(null==n&&(n=10),"number"==typeof n){var u=Math.abs(i-e)/n,a=Rs(function(t){return t[2]}).right(M,u);a===M.length?(o=r(e/$x,i/$x,n),n=t):a?(a=M[u/M[a-1][2]<M[a][2]/u?a-1:a],o=a[1],n=a[0]):(o=r(e,i,n),n=c)}return null==o?n:n.every(o)}var h=Pu(Su,mh),p=h.invert,d=h.domain,v=s(".%L"),_=s(":%S"),g=s("%I:%M"),y=s("%I %p"),m=s("%a %d"),x=s("%b %d"),b=s("%B"),w=s("%Y"),M=[[a,1,Yx],[a,5,5*Yx],[a,15,15*Yx],[a,30,30*Yx],[u,1,Bx],[u,5,5*Bx],[u,15,15*Bx],[u,30,30*Bx],[o,1,jx],[o,3,3*jx],[o,6,6*jx],[o,12,12*jx],[i,1,Hx],[i,2,2*Hx],[e,1,Xx],[n,1,Vx],[n,3,3*Vx],[t,1,$x]];return h.invert=function(t){return new Date(p(t))},h.domain=function(t){return arguments.length?d(Tm.call(t,Ka)):d().map(Qa)},h.ticks=function(t,n){var e,r=d(),i=r[0],o=r[r.length-1],u=o<i;return u&&(e=i,i=o,o=e),e=l(t,i,o,n),e=e?e.range(i,o+1):[],u?e.reverse():e},h.tickFormat=function(t,n){return null==n?f:s(n)},h.nice=function(t,n){var e=d();return(t=l(t,e[0],e[e.length-1],n))?d(zm(e,t)):h},h.copy=function(){return zu(h,tc(t,n,e,i,o,u,a,c,s))},h}function nc(t){var n=t.length;return function(e){return t[Math.max(0,Math.min(n-1,Math.floor(e*n)))]}}function ec(t){function n(n){var o=(n-e)/(r-e);return t(i?Math.max(0,Math.min(1,o)):o)}var e=0,r=1,i=!1;return n.domain=function(t){return arguments.length?(e=+t[0],r=+t[1],n):[e,r]},n.clamp=function(t){return arguments.length?(i=!!t,n):i},n.interpolator=function(e){return arguments.length?(t=e,n):t},n.copy=function(){return ec(t).domain([e,r]).clamp(i)},Lu(n)}function rc(t){return t>1?0:t<-1?mb:Math.acos(t)}function ic(t){return t>=1?xb:t<=-1?-xb:Math.asin(t)}function oc(t){return t.innerRadius}function uc(t){return t.outerRadius}function ac(t){return t.startAngle}function cc(t){return t.endAngle}function sc(t){return t&&t.padAngle}function fc(t,n,e,r,i,o,u,a){var c=e-t,s=r-n,f=u-i,l=a-o,h=(f*(n-o)-l*(t-i))/(l*c-f*s);return[t+h*c,n+h*s]}function lc(t,n,e,r,i,o,u){var a=t-e,c=n-r,s=(u?o:-o)/gb(a*a+c*c),f=s*c,l=-s*a,h=t+f,p=n+l,d=e+f,v=r+l,_=(h+d)/2,g=(p+v)/2,y=d-h,m=v-p,x=y*y+m*m,b=i-o,w=h*v-d*p,M=(m<0?-1:1)*gb(db(0,b*b*x-w*w)),T=(w*m-y*M)/x,k=(-w*y-m*M)/x,S=(w*m+y*M)/x,N=(-w*y+m*M)/x,E=T-_,A=k-g,C=S-_,z=N-g;return E*E+A*A>C*C+z*z&&(T=S,k=N),{cx:T,cy:k,x01:-f,y01:-l,x11:T*(i/b-1),y11:k*(i/b-1)}}function hc(t){this._context=t}function pc(t){return t[0]}function dc(t){return t[1]}function vc(t){this._curve=t}function _c(t){function n(n){return new vc(t(n))}return n._curve=t,n}function gc(t){var n=t.curve;return t.angle=t.x,delete t.x,t.radius=t.y,delete t.y,t.curve=function(t){return arguments.length?n(_c(t)):n()._curve},t}function yc(t,n,e){t._context.bezierCurveTo((2*t._x0+t._x1)/3,(2*t._y0+t._y1)/3,(t._x0+2*t._x1)/3,(t._y0+2*t._y1)/3,(t._x0+4*t._x1+n)/6,(t._y0+4*t._y1+e)/6)}function mc(t){this._context=t}function xc(t){this._context=t}function bc(t){this._context=t}function wc(t,n){this._basis=new mc(t),this._beta=n}function Mc(t,n,e){t._context.bezierCurveTo(t._x1+t._k*(t._x2-t._x0),t._y1+t._k*(t._y2-t._y0),t._x2+t._k*(t._x1-n),t._y2+t._k*(t._y1-e),t._x2,t._y2)}function Tc(t,n){this._context=t,this._k=(1-n)/6}function kc(t,n){this._context=t,this._k=(1-n)/6}function Sc(t,n){this._context=t,this._k=(1-n)/6}function Nc(t,n,e){var r=t._x1,i=t._y1,o=t._x2,u=t._y2;if(t._l01_a>yb){var a=2*t._l01_2a+3*t._l01_a*t._l12_a+t._l12_2a,c=3*t._l01_a*(t._l01_a+t._l12_a);r=(r*a-t._x0*t._l12_2a+t._x2*t._l01_2a)/c,i=(i*a-t._y0*t._l12_2a+t._y2*t._l01_2a)/c}if(t._l23_a>yb){var s=2*t._l23_2a+3*t._l23_a*t._l12_a+t._l12_2a,f=3*t._l23_a*(t._l23_a+t._l12_a);o=(o*s+t._x1*t._l23_2a-n*t._l12_2a)/f,u=(u*s+t._y1*t._l23_2a-e*t._l12_2a)/f}t._context.bezierCurveTo(r,i,o,u,t._x2,t._y2)}function Ec(t,n){this._context=t,this._alpha=n}function Ac(t,n){this._context=t,this._alpha=n}function Cc(t,n){this._context=t,this._alpha=n}function zc(t){this._context=t}function Pc(t){return t<0?-1:1}function Lc(t,n,e){var r=t._x1-t._x0,i=n-t._x1,o=(t._y1-t._y0)/(r||i<0&&-0),u=(e-t._y1)/(i||r<0&&-0),a=(o*i+u*r)/(r+i);return(Pc(o)+Pc(u))*Math.min(Math.abs(o),Math.abs(u),.5*Math.abs(a))||0}function Rc(t,n){var e=t._x1-t._x0;return e?(3*(t._y1-t._y0)/e-n)/2:n}function qc(t,n,e){var r=t._x0,i=t._y0,o=t._x1,u=t._y1,a=(o-r)/3;t._context.bezierCurveTo(r+a,i+a*n,o-a,u-a*e,o,u)}function Uc(t){this._context=t}function Dc(t){this._context=new Oc(t)}function Oc(t){this._context=t}function Fc(t){return new Uc(t)}function Ic(t){return new Dc(t)}function Yc(t){this._context=t}function Bc(t){var n,e,r=t.length-1,i=new Array(r),o=new Array(r),u=new Array(r);for(i[0]=0,o[0]=2,u[0]=t[0]+2*t[1],n=1;n<r-1;++n)i[n]=1,o[n]=4,u[n]=4*t[n]+2*t[n+1];for(i[r-1]=2,o[r-1]=7,u[r-1]=8*t[r-1]+t[r],n=1;n<r;++n)e=i[n]/o[n-1],o[n]-=e,u[n]-=e*u[n-1];for(i[r-1]=u[r-1]/o[r-1],n=r-2;n>=0;--n)i[n]=(u[n]-i[n+1])/o[n];for(o[r-1]=(t[r]+i[r-1])/2,n=0;n<r-1;++n)o[n]=2*t[n+1]-i[n+1];return[i,o]}function jc(t,n){this._context=t,this._t=n}function Hc(t){return new jc(t,0)}function Xc(t){return new jc(t,1)}function Vc(t,n){return t[n]}function $c(t){for(var n,e=0,r=-1,i=t.length;++r<i;)(n=+t[r][1])&&(e+=n);return e}function Wc(t){return t[0]}function Zc(t){return t[1]}function Gc(){this._=null}function Jc(t){t.U=t.C=t.L=t.R=t.P=t.N=null}function Qc(t,n){var e=n,r=n.R,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.R=r.L,e.R&&(e.R.U=e),r.L=e}function Kc(t,n){var e=n,r=n.L,i=e.U;i?i.L===e?i.L=r:i.R=r:t._=r,r.U=i,e.U=r,e.L=r.R,e.L&&(e.L.U=e),r.R=e}function ts(t){for(;t.L;)t=t.L;return t}function ns(t,n,e,r){var i=[null,null],o=Nw.push(i)-1;return i.left=t,i.right=n,e&&rs(i,t,n,e),r&&rs(i,n,t,r),kw[t.index].halfedges.push(o),kw[n.index].halfedges.push(o),i}function es(t,n,e){var r=[n,e];return r.left=t,r}function rs(t,n,e,r){t[0]||t[1]?t.left===e?t[1]=r:t[0]=r:(t[0]=r,t.left=n,t.right=e)}function is(t,n,e,r,i){var o,u=t[0],a=t[1],c=u[0],s=u[1],f=a[0],l=a[1],h=0,p=1,d=f-c,v=l-s;if(o=n-c,d||!(o>0)){if(o/=d,d<0){if(o<h)return;o<p&&(p=o)}else if(d>0){if(o>p)return;o>h&&(h=o)}if(o=r-c,d||!(o<0)){if(o/=d,d<0){if(o>p)return;o>h&&(h=o)}else if(d>0){if(o<h)return;o<p&&(p=o)}if(o=e-s,v||!(o>0)){if(o/=v,v<0){if(o<h)return;o<p&&(p=o)}else if(v>0){if(o>p)return;o>h&&(h=o)}if(o=i-s,v||!(o<0)){if(o/=v,v<0){if(o>p)return;o>h&&(h=o)}else if(v>0){if(o<h)return;o<p&&(p=o)}return!(h>0||p<1)||(h>0&&(t[0]=[c+h*d,s+h*v]),p<1&&(t[1]=[c+p*d,s+p*v]),!0)}}}}}function os(t,n,e,r,i){var o=t[1];if(o)return!0;var u,a,c=t[0],s=t.left,f=t.right,l=s[0],h=s[1],p=f[0],d=f[1],v=(l+p)/2,_=(h+d)/2;if(d===h){if(v<n||v>=r)return;if(l>p){if(c){if(c[1]>=i)return}else c=[v,e];o=[v,i]}else{if(c){if(c[1]<e)return}else c=[v,i];o=[v,e]}}else if(u=(l-p)/(d-h),a=_-u*v,u<-1||u>1)if(l>p){if(c){if(c[1]>=i)return}else c=[(e-a)/u,e];o=[(i-a)/u,i]}else{if(c){if(c[1]<e)return}else c=[(i-a)/u,i];o=[(e-a)/u,e]}else if(h<d){if(c){if(c[0]>=r)return}else c=[n,u*n+a];o=[r,u*r+a]}else{if(c){if(c[0]<n)return}else c=[r,u*r+a];o=[n,u*n+a]}return t[0]=c,t[1]=o,!0}function us(t,n,e,r){for(var i,o=Nw.length;o--;)os(i=Nw[o],t,n,e,r)&&is(i,t,n,e,r)&&(Math.abs(i[0][0]-i[1][0])>Cw||Math.abs(i[0][1]-i[1][1])>Cw)||delete Nw[o]}function as(t){return kw[t.index]={site:t,halfedges:[]}}function cs(t,n){var e=t.site,r=n.left,i=n.right;return e===i&&(i=r,r=e),i?Math.atan2(i[1]-r[1],i[0]-r[0]):(e===r?(r=n[1],i=n[0]):(r=n[0],i=n[1]),Math.atan2(r[0]-i[0],i[1]-r[1]))}function ss(t,n){return n[+(n.left!==t.site)]}function fs(t,n){return n[+(n.left===t.site)]}function ls(){for(var t,n,e,r,i=0,o=kw.length;i<o;++i)if((t=kw[i])&&(r=(n=t.halfedges).length)){var u=new Array(r),a=new Array(r);for(e=0;e<r;++e)u[e]=e,a[e]=cs(t,Nw[n[e]]);for(u.sort(function(t,n){return a[n]-a[t]}),e=0;e<r;++e)a[e]=n[u[e]];for(e=0;e<r;++e)n[e]=a[e]}}function hs(t,n,e,r){var i,o,u,a,c,s,f,l,h,p,d,v,_=kw.length,g=!0;for(i=0;i<_;++i)if(o=kw[i]){for(u=o.site,c=o.halfedges,a=c.length;a--;)Nw[c[a]]||c.splice(a,1);for(a=0,s=c.length;a<s;)p=fs(o,Nw[c[a]]),d=p[0],v=p[1],f=ss(o,Nw[c[++a%s]]),l=f[0],h=f[1],(Math.abs(d-l)>Cw||Math.abs(v-h)>Cw)&&(c.splice(a,0,Nw.push(es(u,p,Math.abs(d-t)<Cw&&r-v>Cw?[t,Math.abs(l-t)<Cw?h:r]:Math.abs(v-r)<Cw&&e-d>Cw?[Math.abs(h-r)<Cw?l:e,r]:Math.abs(d-e)<Cw&&v-n>Cw?[e,Math.abs(l-e)<Cw?h:n]:Math.abs(v-n)<Cw&&d-t>Cw?[Math.abs(h-n)<Cw?l:t,n]:null))-1),++s);s&&(g=!1)}if(g){var y,m,x,b=1/0;for(i=0,g=null;i<_;++i)(o=kw[i])&&(u=o.site,y=u[0]-t,m=u[1]-n,(x=y*y+m*m)<b&&(b=x,g=o));if(g){var w=[t,n],M=[t,r],T=[e,r],k=[e,n];g.halfedges.push(Nw.push(es(u=g.site,w,M))-1,Nw.push(es(u,M,T))-1,Nw.push(es(u,T,k))-1,Nw.push(es(u,k,w))-1)}}for(i=0;i<_;++i)(o=kw[i])&&(o.halfedges.length||delete kw[i])}function ps(){Jc(this),this.x=this.y=this.arc=this.site=this.cy=null}function ds(t){var n=t.P,e=t.N;if(n&&e){var r=n.site,i=t.site,o=e.site;if(r!==o){var u=i[0],a=i[1],c=r[0]-u,s=r[1]-a,f=o[0]-u,l=o[1]-a,h=2*(c*l-s*f);if(!(h>=-zw)){var p=c*c+s*s,d=f*f+l*l,v=(l*p-s*d)/h,_=(c*d-f*p)/h,g=Ew.pop()||new ps;g.arc=t,g.site=i,g.x=v+u,g.y=(g.cy=_+a)+Math.sqrt(v*v+_*_),t.circle=g;for(var y=null,m=Sw._;m;)if(g.y<m.y||g.y===m.y&&g.x<=m.x){if(!m.L){y=m.P;break}m=m.L}else{if(!m.R){y=m;break}m=m.R}Sw.insert(y,g),y||(Mw=g)}}}}function vs(t){var n=t.circle;n&&(n.P||(Mw=n.N),Sw.remove(n),Ew.push(n),Jc(n),t.circle=null)}function _s(){Jc(this),this.edge=this.site=this.circle=null}function gs(t){var n=Aw.pop()||new _s;return n.site=t,n}function ys(t){vs(t),Tw.remove(t),Aw.push(t),Jc(t)}function ms(t){var n=t.circle,e=n.x,r=n.cy,i=[e,r],o=t.P,u=t.N,a=[t];ys(t);for(var c=o;c.circle&&Math.abs(e-c.circle.x)<Cw&&Math.abs(r-c.circle.cy)<Cw;)o=c.P,a.unshift(c),ys(c),c=o;a.unshift(c),vs(c);for(var s=u;s.circle&&Math.abs(e-s.circle.x)<Cw&&Math.abs(r-s.circle.cy)<Cw;)u=s.N,a.push(s),ys(s),s=u;a.push(s),vs(s);var f,l=a.length;for(f=1;f<l;++f)s=a[f],c=a[f-1],rs(s.edge,c.site,s.site,i);c=a[0],s=a[l-1],s.edge=ns(c.site,s.site,null,i),ds(c),ds(s)}function xs(t){for(var n,e,r,i,o=t[0],u=t[1],a=Tw._;a;)if((r=bs(a,u)-o)>Cw)a=a.L;else{if(!((i=o-ws(a,u))>Cw)){r>-Cw?(n=a.P,e=a):i>-Cw?(n=a,e=a.N):n=e=a;break}if(!a.R){n=a;break}a=a.R}as(t);var c=gs(t);if(Tw.insert(n,c),n||e){if(n===e)return vs(n),e=gs(n.site),Tw.insert(c,e),c.edge=e.edge=ns(n.site,c.site),ds(n),void ds(e);if(!e)return void(c.edge=ns(n.site,c.site));vs(n),vs(e);var s=n.site,f=s[0],l=s[1],h=t[0]-f,p=t[1]-l,d=e.site,v=d[0]-f,_=d[1]-l,g=2*(h*_-p*v),y=h*h+p*p,m=v*v+_*_,x=[(_*y-p*m)/g+f,(h*m-v*y)/g+l];rs(e.edge,s,d,x),c.edge=ns(s,t,null,x),e.edge=ns(t,d,null,x),ds(n),ds(e)}}function bs(t,n){var e=t.site,r=e[0],i=e[1],o=i-n;if(!o)return r;var u=t.P;if(!u)return-(1/0);e=u.site;var a=e[0],c=e[1],s=c-n;if(!s)return a;var f=a-r,l=1/o-1/s,h=f/s;return l?(-h+Math.sqrt(h*h-2*l*(f*f/(-2*s)-c+s/2+i-o/2)))/l+r:(r+a)/2}function ws(t,n){var e=t.N;if(e)return bs(e,n);var r=t.site;return r[1]===n?r[0]:1/0}function Ms(t,n,e){return(t[0]-e[0])*(n[1]-t[1])-(t[0]-n[0])*(e[1]-t[1])}function Ts(t,n){return n[1]-t[1]||n[0]-t[0]}function ks(t,n){var e,r,i,o=t.sort(Ts).pop();for(Nw=[],kw=new Array(t.length),Tw=new Gc,Sw=new Gc;;)if(i=Mw,o&&(!i||o[1]<i.y||o[1]===i.y&&o[0]<i.x))o[0]===e&&o[1]===r||(xs(o),e=o[0],r=o[1]),o=t.pop();else{if(!i)break;ms(i.arc)}if(ls(),n){var u=+n[0][0],a=+n[0][1],c=+n[1][0],s=+n[1][1];us(u,a,c,s),hs(u,a,c,s)}this.edges=Nw,this.cells=kw,Tw=Sw=Nw=kw=null}function Ss(t,n,e){this.target=t,this.type=n,this.transform=e}function Ns(t,n,e){this.k=t,this.x=n,this.y=e}function Es(t){return t.__zoom||Rw}function As(){t.event.stopImmediatePropagation()}function Cs(){return!t.event.button}function zs(){var t,n,e=this;return e instanceof SVGElement?(e=e.ownerSVGElement||e,t=e.width.baseVal.value,n=e.height.baseVal.value):(t=e.clientWidth,n=e.clientHeight),[[0,0],[t,n]]}function Ps(){return this.__zoom||Rw}var Ls=function(t,n){return t<n?-1:t>n?1:t>=n?0:NaN},Rs=function(t){return 1===t.length&&(t=n(t)),{left:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)<0?r=o+1:i=o}return r},right:function(n,e,r,i){for(null==r&&(r=0),null==i&&(i=n.length);r<i;){var o=r+i>>>1;t(n[o],e)>0?i=o:r=o+1}return r}}},qs=Rs(Ls),Us=qs.right,Ds=qs.left,Os=function(t,n){null==n&&(n=e);for(var r=0,i=t.length-1,o=t[0],u=new Array(i<0?0:i);r<i;)u[r]=n(o,o=t[++r]);return u},Fs=function(t,n,r){var i,o,u,a,c=t.length,s=n.length,f=new Array(c*s);for(null==r&&(r=e),i=u=0;i<c;++i)for(a=t[i],o=0;o<s;++o,++u)f[u]=r(a,n[o]);return f},Is=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},Ys=function(t){return null===t?NaN:+t},Bs=function(t,n){var e,r,i=t.length,o=0,u=0,a=-1,c=0;if(null==n)for(;++a<i;)isNaN(e=Ys(t[a]))||(r=e-o,o+=r/++c,u+=r*(e-o));else for(;++a<i;)isNaN(e=Ys(n(t[a],a,t)))||(r=e-o,o+=r/++c,u+=r*(e-o));if(c>1)return u/(c-1)},js=function(t,n){var e=Bs(t,n);return e?Math.sqrt(e):e},Hs=function(t,n){var e,r,i,o=-1,u=t.length;if(null==n){for(;++o<u;)if(null!=(r=t[o])&&r>=r){e=i=r;break}for(;++o<u;)null!=(r=t[o])&&(e>r&&(e=r),i<r&&(i=r))}else{for(;++o<u;)if(null!=(r=n(t[o],o,t))&&r>=r){e=i=r;break}for(;++o<u;)null!=(r=n(t[o],o,t))&&(e>r&&(e=r),i<r&&(i=r))}return[e,i]},Xs=Array.prototype,Vs=Xs.slice,$s=Xs.map,Ws=function(t){return function(){return t}},Zs=function(t){return t},Gs=function(t,n,e){t=+t,n=+n,e=(i=arguments.length)<2?(n=t,t=0,1):i<3?1:+e;for(var r=-1,i=0|Math.max(0,Math.ceil((n-t)/e)),o=new Array(i);++r<i;)o[r]=t+r*e;return o},Js=Math.sqrt(50),Qs=Math.sqrt(10),Ks=Math.sqrt(2),tf=function(t,n,e){var i=r(t,n,e);return Gs(Math.ceil(t/i)*i,Math.floor(n/i)*i+i/2,i)},nf=function(t){return Math.ceil(Math.log(t.length)/Math.LN2)+1},ef=function(){function t(t){var i,o,u=t.length,a=new Array(u);for(i=0;i<u;++i)a[i]=n(t[i],i,t);var c=e(a),s=c[0],f=c[1],l=r(a,s,f);Array.isArray(l)||(l=tf(s,f,l));for(var h=l.length;l[0]<=s;)l.shift(),--h;for(;l[h-1]>=f;)l.pop(),--h;var p,d=new Array(h+1);for(i=0;i<=h;++i)p=d[i]=[],p.x0=i>0?l[i-1]:s,p.x1=i<h?l[i]:f;for(i=0;i<u;++i)o=a[i],s<=o&&o<=f&&d[Us(l,o,0,h)].push(t[i]);return d}var n=Zs,e=Hs,r=nf;return t.value=function(e){return arguments.length?(n="function"==typeof e?e:Ws(e),t):n},t.domain=function(n){return arguments.length?(e="function"==typeof n?n:Ws([n[0],n[1]]),t):e},t.thresholds=function(n){return arguments.length?(r="function"==typeof n?n:Ws(Array.isArray(n)?Vs.call(n):n),t):r},t},rf=function(t,n,e){if(null==e&&(e=Ys),r=t.length){if((n=+n)<=0||r<2)return+e(t[0],0,t);if(n>=1)return+e(t[r-1],r-1,t);var r,i=(r-1)*n,o=Math.floor(i),u=+e(t[o],o,t);return u+(+e(t[o+1],o+1,t)-u)*(i-o)}},of=function(t,n,e){return t=$s.call(t,Ys).sort(Ls),Math.ceil((e-n)/(2*(rf(t,.75)-rf(t,.25))*Math.pow(t.length,-1/3)))},uf=function(t,n,e){return Math.ceil((e-n)/(3.5*js(t)*Math.pow(t.length,-1/3)))},af=function(t,n){var e,r,i=-1,o=t.length;if(null==n){for(;++i<o;)if(null!=(r=t[i])&&r>=r){e=r;break}for(;++i<o;)null!=(r=t[i])&&r>e&&(e=r)}else{for(;++i<o;)if(null!=(r=n(t[i],i,t))&&r>=r){e=r;break}for(;++i<o;)null!=(r=n(t[i],i,t))&&r>e&&(e=r)}return e},cf=function(t,n){var e,r=0,i=t.length,o=-1,u=i;if(null==n)for(;++o<i;)isNaN(e=Ys(t[o]))?--u:r+=e;else for(;++o<i;)isNaN(e=Ys(n(t[o],o,t)))?--u:r+=e;if(u)return r/u},sf=function(t,n){var e,r=[],i=t.length,o=-1;if(null==n)for(;++o<i;)isNaN(e=Ys(t[o]))||r.push(e);else for(;++o<i;)isNaN(e=Ys(n(t[o],o,t)))||r.push(e);return rf(r.sort(Ls),.5)},ff=function(t){for(var n,e,r,i=t.length,o=-1,u=0;++o<i;)u+=t[o].length;for(e=new Array(u);--i>=0;)for(r=t[i],n=r.length;--n>=0;)e[--u]=r[n];return e},lf=function(t,n){var e,r,i=-1,o=t.length;if(null==n){for(;++i<o;)if(null!=(r=t[i])&&r>=r){e=r;break}for(;++i<o;)null!=(r=t[i])&&e>r&&(e=r)}else{for(;++i<o;)if(null!=(r=n(t[i],i,t))&&r>=r){e=r;break}for(;++i<o;)null!=(r=n(t[i],i,t))&&e>r&&(e=r)}return e},hf=function(t,n){for(var e=n.length,r=new Array(e);e--;)r[e]=t[n[e]];return r},pf=function(t,n){if(e=t.length){var e,r,i=0,o=0,u=t[o];for(n||(n=Ls);++i<e;)(n(r=t[i],u)<0||0!==n(u,u))&&(u=r,o=i);return 0===n(u,u)?o:void 0}},df=function(t,n,e){for(var r,i,o=(null==e?t.length:e)-(n=null==n?0:+n);o;)i=Math.random()*o--|0,r=t[o+n],t[o+n]=t[i+n],t[i+n]=r;return t},vf=function(t,n){var e,r=0,i=t.length,o=-1;if(null==n)for(;++o<i;)(e=+t[o])&&(r+=e);else for(;++o<i;)(e=+n(t[o],o,t))&&(r+=e);return r},_f=function(t){if(!(o=t.length))return[];for(var n=-1,e=lf(t,i),r=new Array(e);++n<e;)for(var o,u=-1,a=r[n]=new Array(o);++u<o;)a[u]=t[u][n];return r},gf=function(){return _f(arguments)},yf=Array.prototype.slice,mf=function(t){return t},xf=1,bf=2,wf=3,Mf=4,Tf=1e-6,kf={value:function(){}};v.prototype=d.prototype={constructor:v,on:function(t,n){var e,r=this._,i=_(t+"",r),o=-1,u=i.length;{if(!(arguments.length<2)){if(null!=n&&"function"!=typeof n)throw new Error("invalid callback: "+n);for(;++o<u;)if(e=(t=i[o]).type)r[e]=y(r[e],t.name,n);else if(null==n)for(e in r)r[e]=y(r[e],t.name,null);return this}for(;++o<u;)if((e=(t=i[o]).type)&&(e=g(r[e],t.name)))return e}},copy:function(){var t={},n=this._;for(var e in n)t[e]=n[e].slice();return new v(t)},call:function(t,n){if((e=arguments.length-2)>0)for(var e,r,i=new Array(e),o=0;o<e;++o)i[o]=arguments[o+2];if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(r=this._[t],o=0,e=r.length;o<e;++o)r[o].value.apply(n,i)},apply:function(t,n,e){if(!this._.hasOwnProperty(t))throw new Error("unknown type: "+t);for(var r=this._[t],i=0,o=r.length;i<o;++i)r[i].value.apply(n,e)}};var Sf="http://www.w3.org/1999/xhtml",Nf={svg:"http://www.w3.org/2000/svg",xhtml:Sf,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"},Ef=function(t){var n=t+="",e=n.indexOf(":");return e>=0&&"xmlns"!==(n=t.slice(0,e))&&(t=t.slice(e+1)),Nf.hasOwnProperty(n)?{space:Nf[n],local:t}:t},Af=function(t){var n=Ef(t);return(n.local?x:m)(n)},Cf=0;w.prototype=b.prototype={constructor:w,get:function(t){for(var n=this._;!(n in t);)if(!(t=t.parentNode))return;return t[n]},set:function(t,n){return t[this._]=n},remove:function(t){return this._ in t&&delete t[this._]},toString:function(){return this._}};var zf=function(t){return function(){return this.matches(t)}};if("undefined"!=typeof document){var Pf=document.documentElement;if(!Pf.matches){var Lf=Pf.webkitMatchesSelector||Pf.msMatchesSelector||Pf.mozMatchesSelector||Pf.oMatchesSelector;zf=function(t){return function(){return Lf.call(this,t)}}}}var Rf=zf,qf={};if(t.event=null,"undefined"!=typeof document){"onmouseenter"in document.documentElement||(qf={mouseenter:"mouseover",mouseleave:"mouseout"})}var Uf=function(t,n,e){var r,i,o=k(t+""),u=o.length;{if(!(arguments.length<2)){for(a=n?N:S,null==e&&(e=!1),r=0;r<u;++r)this.each(a(o[r],n,e));return this}var a=this.node().__on;if(a)for(var c,s=0,f=a.length;s<f;++s)for(r=0,c=a[s];r<u;++r)if((i=o[r]).type===c.type&&i.name===c.name)return c.value}},Df=function(){for(var n,e=t.event;n=e.sourceEvent;)e=n;return e},Of=function(t,n){var e=t.ownerSVGElement||t;if(e.createSVGPoint){var r=e.createSVGPoint();return r.x=n.clientX,r.y=n.clientY,r=r.matrixTransform(t.getScreenCTM().inverse()),[r.x,r.y]}var i=t.getBoundingClientRect();return[n.clientX-i.left-t.clientLeft,n.clientY-i.top-t.clientTop]},Ff=function(t){var n=Df();return n.changedTouches&&(n=n.changedTouches[0]),Of(t,n)},If=function(t){return null==t?A:function(){return this.querySelector(t)}},Yf=function(t){"function"!=typeof t&&(t=If(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u,a=n[i],c=a.length,s=r[i]=new Array(c),f=0;f<c;++f)(o=a[f])&&(u=t.call(o,o.__data__,f,a))&&("__data__"in o&&(u.__data__=o.__data__),s[f]=u);return new dt(r,this._parents)},Bf=function(t){return null==t?C:function(){return this.querySelectorAll(t)}},jf=function(t){"function"!=typeof t&&(t=Bf(t));for(var n=this._groups,e=n.length,r=[],i=[],o=0;o<e;++o)for(var u,a=n[o],c=a.length,s=0;s<c;++s)(u=a[s])&&(r.push(t.call(u,u.__data__,s,a)),i.push(u));return new dt(r,i)},Hf=function(t){"function"!=typeof t&&(t=Rf(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new dt(r,this._parents)},Xf=function(t){return new Array(t.length)},Vf=function(){return new dt(this._enter||this._groups.map(Xf),this._parents)};z.prototype={constructor:z,appendChild:function(t){return this._parent.insertBefore(t,this._next)},insertBefore:function(t,n){return this._parent.insertBefore(t,n)},querySelector:function(t){return this._parent.querySelector(t)},querySelectorAll:function(t){return this._parent.querySelectorAll(t)}};var $f=function(t){return function(){return t}},Wf="$",Zf=function(t,n){if(!t)return p=new Array(this.size()),s=-1,this.each(function(t){p[++s]=t}),p;var e=n?L:P,r=this._parents,i=this._groups;"function"!=typeof t&&(t=$f(t));for(var o=i.length,u=new Array(o),a=new Array(o),c=new Array(o),s=0;s<o;++s){var f=r[s],l=i[s],h=l.length,p=t.call(f,f&&f.__data__,s,r),d=p.length,v=a[s]=new Array(d),_=u[s]=new Array(d);e(f,l,v,_,c[s]=new Array(h),p,n);for(var g,y,m=0,x=0;m<d;++m)if(g=v[m]){for(m>=x&&(x=m+1);!(y=_[x])&&++x<d;);g._next=y||null}}return u=new dt(u,r),u._enter=a,u._exit=c,u},Gf=function(){return new dt(this._exit||this._groups.map(Xf),this._parents)},Jf=function(t){for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new dt(u,this._parents)},Qf=function(){for(var t=this._groups,n=-1,e=t.length;++n<e;)for(var r,i=t[n],o=i.length-1,u=i[o];--o>=0;)(r=i[o])&&(u&&u!==r.nextSibling&&u.parentNode.insertBefore(r,u),u=r);return this},Kf=function(t){function n(n,e){return n&&e?t(n.__data__,e.__data__):!n-!e}t||(t=R);for(var e=this._groups,r=e.length,i=new Array(r),o=0;o<r;++o){for(var u,a=e[o],c=a.length,s=i[o]=new Array(c),f=0;f<c;++f)(u=a[f])&&(s[f]=u);s.sort(n)}return new dt(i,this._parents).order()},tl=function(){var t=arguments[0];return arguments[0]=this,t.apply(null,arguments),this},nl=function(){var t=new Array(this.size()),n=-1;return this.each(function(){t[++n]=this}),t},el=function(){for(var t=this._groups,n=0,e=t.length;n<e;++n)for(var r=t[n],i=0,o=r.length;i<o;++i){var u=r[i];if(u)return u}return null},rl=function(){var t=0;return this.each(function(){++t}),t},il=function(){return!this.node()},ol=function(t){for(var n=this._groups,e=0,r=n.length;e<r;++e)for(var i,o=n[e],u=0,a=o.length;u<a;++u)(i=o[u])&&t.call(i,i.__data__,u,o);return this},ul=function(t,n){var e=Ef(t);if(arguments.length<2){var r=this.node();return e.local?r.getAttributeNS(e.space,e.local):r.getAttribute(e)}return this.each((null==n?e.local?U:q:"function"==typeof n?e.local?I:F:e.local?O:D)(e,n))},al=function(t){return t.ownerDocument&&t.ownerDocument.defaultView||t.document&&t||t.defaultView},cl=function(t,n,e){var r
;return arguments.length>1?this.each((null==n?Y:"function"==typeof n?j:B)(t,n,null==e?"":e)):al(r=this.node()).getComputedStyle(r,null).getPropertyValue(t)},sl=function(t,n){return arguments.length>1?this.each((null==n?H:"function"==typeof n?V:X)(t,n)):this.node()[t]};Z.prototype={add:function(t){this._names.indexOf(t)<0&&(this._names.push(t),this._node.setAttribute("class",this._names.join(" ")))},remove:function(t){var n=this._names.indexOf(t);n>=0&&(this._names.splice(n,1),this._node.setAttribute("class",this._names.join(" ")))},contains:function(t){return this._names.indexOf(t)>=0}};var fl=function(t,n){var e=$(t+"");if(arguments.length<2){for(var r=W(this.node()),i=-1,o=e.length;++i<o;)if(!r.contains(e[i]))return!1;return!0}return this.each(("function"==typeof n?tt:n?Q:K)(e,n))},ll=function(t){return arguments.length?this.each(null==t?nt:("function"==typeof t?rt:et)(t)):this.node().textContent},hl=function(t){return arguments.length?this.each(null==t?it:("function"==typeof t?ut:ot)(t)):this.node().innerHTML},pl=function(){return this.each(at)},dl=function(){return this.each(ct)},vl=function(t){var n="function"==typeof t?t:Af(t);return this.select(function(){return this.appendChild(n.apply(this,arguments))})},_l=function(t,n){var e="function"==typeof t?t:Af(t),r=null==n?st:"function"==typeof n?n:If(n);return this.select(function(){return this.insertBefore(e.apply(this,arguments),r.apply(this,arguments)||null)})},gl=function(){return this.each(ft)},yl=function(t){return arguments.length?this.property("__data__",t):this.node().__data__},ml=function(t,n){return this.each(("function"==typeof n?pt:ht)(t,n))},xl=[null];dt.prototype=vt.prototype={constructor:dt,select:Yf,selectAll:jf,filter:Hf,data:Zf,enter:Vf,exit:Gf,merge:Jf,order:Qf,sort:Kf,call:tl,nodes:nl,node:el,size:rl,empty:il,each:ol,attr:ul,style:cl,property:sl,classed:fl,text:ll,html:hl,raise:pl,lower:dl,append:vl,insert:_l,remove:gl,datum:yl,on:Uf,dispatch:ml};var bl=function(t){return"string"==typeof t?new dt([[document.querySelector(t)]],[document.documentElement]):new dt([[t]],xl)},wl=function(t){return"string"==typeof t?new dt([document.querySelectorAll(t)],[document.documentElement]):new dt([null==t?[]:t],xl)},Ml=function(t,n,e){arguments.length<3&&(e=n,n=Df().changedTouches);for(var r,i=0,o=n?n.length:0;i<o;++i)if((r=n[i]).identifier===e)return Of(t,r);return null},Tl=function(t,n){null==n&&(n=Df().touches);for(var e=0,r=n?n.length:0,i=new Array(r);e<r;++e)i[e]=Of(t,n[e]);return i},kl=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},Sl=function(t){var n=t.document.documentElement,e=bl(t).on("dragstart.drag",kl,!0);"onselectstart"in n?e.on("selectstart.drag",kl,!0):(n.__noselect=n.style.MozUserSelect,n.style.MozUserSelect="none")},Nl=function(t){return function(){return t}};yt.prototype.on=function(){var t=this._.on.apply(this._,arguments);return t===this._?this:t};var El=function(){function n(t){t.on("mousedown.drag",e).on("touchstart.drag",o).on("touchmove.drag",u).on("touchend.drag touchcancel.drag",a).style("-webkit-tap-highlight-color","rgba(0,0,0,0)")}function e(){if(!f&&l.apply(this,arguments)){var n=c("mouse",h.apply(this,arguments),Ff,this,arguments);n&&(bl(t.event.view).on("mousemove.drag",r,!0).on("mouseup.drag",i,!0),Sl(t.event.view),_t(),s=!1,n("start"))}}function r(){kl(),s=!0,v.mouse("drag")}function i(){bl(t.event.view).on("mousemove.drag mouseup.drag",null),gt(t.event.view,s),kl(),v.mouse("end")}function o(){if(l.apply(this,arguments)){var n,e,r=t.event.changedTouches,i=h.apply(this,arguments),o=r.length;for(n=0;n<o;++n)(e=c(r[n].identifier,i,Ml,this,arguments))&&(_t(),e("start"))}}function u(){var n,e,r=t.event.changedTouches,i=r.length;for(n=0;n<i;++n)(e=v[r[n].identifier])&&(kl(),e("drag"))}function a(){var n,e,r=t.event.changedTouches,i=r.length;for(f&&clearTimeout(f),f=setTimeout(function(){f=null},500),n=0;n<i;++n)(e=v[r[n].identifier])&&(_t(),e("end"))}function c(e,r,i,o,u){var a,c,s,f=i(r,e),l=_.copy();if(E(new yt(n,"beforestart",a,e,g,f[0],f[1],0,0,l),function(){return null!=(t.event.subject=a=p.apply(o,u))&&(c=a.x-f[0]||0,s=a.y-f[1]||0,!0)}))return function t(h){var p,d=f;switch(h){case"start":v[e]=t,p=g++;break;case"end":delete v[e],--g;case"drag":f=i(r,e),p=g}E(new yt(n,h,a,e,p,f[0]+c,f[1]+s,f[0]-d[0],f[1]-d[1],l),l.apply,l,[h,o,u])}}var s,f,l=mt,h=xt,p=bt,v={},_=d("start","drag","end"),g=0;return n.filter=function(t){return arguments.length?(l="function"==typeof t?t:Nl(!!t),n):l},n.container=function(t){return arguments.length?(h="function"==typeof t?t:Nl(t),n):h},n.subject=function(t){return arguments.length?(p="function"==typeof t?t:Nl(t),n):p},n.on=function(){var t=_.on.apply(_,arguments);return t===_?n:t},n},Al=function(t,n,e){t.prototype=n.prototype=e,e.constructor=t},Cl="\\s*([+-]?\\d+)\\s*",zl="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*",Pl="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*",Ll=/^#([0-9a-f]{3})$/,Rl=/^#([0-9a-f]{6})$/,ql=new RegExp("^rgb\\("+[Cl,Cl,Cl]+"\\)$"),Ul=new RegExp("^rgb\\("+[Pl,Pl,Pl]+"\\)$"),Dl=new RegExp("^rgba\\("+[Cl,Cl,Cl,zl]+"\\)$"),Ol=new RegExp("^rgba\\("+[Pl,Pl,Pl,zl]+"\\)$"),Fl=new RegExp("^hsl\\("+[zl,Pl,Pl]+"\\)$"),Il=new RegExp("^hsla\\("+[zl,Pl,Pl,zl]+"\\)$"),Yl={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};Al(Mt,Tt,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}}),Al(At,Et,wt(Mt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new At(this.r*t,this.g*t,this.b*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new At(this.r*t,this.g*t,this.b*t,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&0<=this.g&&this.g<=255&&0<=this.b&&this.b<=255&&0<=this.opacity&&this.opacity<=1},toString:function(){var t=this.opacity;return t=isNaN(t)?1:Math.max(0,Math.min(1,t)),(1===t?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(1===t?")":", "+t+")")}})),Al(Lt,Pt,wt(Mt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new Lt(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new Lt(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=this.h%360+360*(this.h<0),n=isNaN(t)||isNaN(this.s)?0:this.s,e=this.l,r=e+(e<.5?e:1-e)*n,i=2*e-r;return new At(Rt(t>=240?t-240:t+120,i,r),Rt(t,i,r),Rt(t<120?t+240:t-120,i,r),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&0<=this.l&&this.l<=1&&0<=this.opacity&&this.opacity<=1}}));var Bl=Math.PI/180,jl=180/Math.PI,Hl=.95047,Xl=1,Vl=1.08883,$l=4/29,Wl=6/29,Zl=3*Wl*Wl,Gl=Wl*Wl*Wl;Al(Dt,Ut,wt(Mt,{brighter:function(t){return new Dt(this.l+18*(null==t?1:t),this.a,this.b,this.opacity)},darker:function(t){return new Dt(this.l-18*(null==t?1:t),this.a,this.b,this.opacity)},rgb:function(){var t=(this.l+16)/116,n=isNaN(this.a)?t:t+this.a/500,e=isNaN(this.b)?t:t-this.b/200;return t=Xl*Ft(t),n=Hl*Ft(n),e=Vl*Ft(e),new At(It(3.2404542*n-1.5371385*t-.4985314*e),It(-.969266*n+1.8760108*t+.041556*e),It(.0556434*n-.2040259*t+1.0572252*e),this.opacity)}})),Al(Ht,jt,wt(Mt,{brighter:function(t){return new Ht(this.h,this.c,this.l+18*(null==t?1:t),this.opacity)},darker:function(t){return new Ht(this.h,this.c,this.l-18*(null==t?1:t),this.opacity)},rgb:function(){return qt(this).rgb()}}));var Jl=-.14861,Ql=1.78277,Kl=-.29227,th=-.90649,nh=1.97294,eh=nh*th,rh=nh*Ql,ih=Ql*Kl-th*Jl;Al($t,Vt,wt(Mt,{brighter:function(t){return t=null==t?1/.7:Math.pow(1/.7,t),new $t(this.h,this.s,this.l*t,this.opacity)},darker:function(t){return t=null==t?.7:Math.pow(.7,t),new $t(this.h,this.s,this.l*t,this.opacity)},rgb:function(){var t=isNaN(this.h)?0:(this.h+120)*Bl,n=+this.l,e=isNaN(this.s)?0:this.s*n*(1-n),r=Math.cos(t),i=Math.sin(t);return new At(255*(n+e*(Jl*r+Ql*i)),255*(n+e*(Kl*r+th*i)),255*(n+e*(nh*r)),this.opacity)}}));var oh,uh,ah,ch,sh,fh,lh=function(t){var n=t.length-1;return function(e){var r=e<=0?e=0:e>=1?(e=1,n-1):Math.floor(e*n),i=t[r],o=t[r+1],u=r>0?t[r-1]:2*i-o,a=r<n-1?t[r+2]:2*o-i;return Wt((e-r/n)*n,u,i,o,a)}},hh=function(t){var n=t.length;return function(e){var r=Math.floor(((e%=1)<0?++e:e)*n),i=t[(r+n-1)%n],o=t[r%n],u=t[(r+1)%n],a=t[(r+2)%n];return Wt((e-r/n)*n,i,o,u,a)}},ph=function(t){return function(){return t}},dh=function t(n){function e(t,n){var e=r((t=Et(t)).r,(n=Et(n)).r),i=r(t.g,n.g),o=r(t.b,n.b),u=Kt(t.opacity,n.opacity);return function(n){return t.r=e(n),t.g=i(n),t.b=o(n),t.opacity=u(n),t+""}}var r=Qt(n);return e.gamma=t,e}(1),vh=tn(lh),_h=tn(hh),gh=function(t,n){var e,r=n?n.length:0,i=t?Math.min(r,t.length):0,o=new Array(r),u=new Array(r);for(e=0;e<i;++e)o[e]=Th(t[e],n[e]);for(;e<r;++e)u[e]=n[e];return function(t){for(e=0;e<i;++e)u[e]=o[e](t);return u}},yh=function(t,n){var e=new Date;return t=+t,n-=t,function(r){return e.setTime(t+n*r),e}},mh=function(t,n){return t=+t,n-=t,function(e){return t+n*e}},xh=function(t,n){var e,r={},i={};null!==t&&"object"==typeof t||(t={}),null!==n&&"object"==typeof n||(n={});for(e in n)e in t?r[e]=Th(t[e],n[e]):i[e]=n[e];return function(t){for(e in r)i[e]=r[e](t);return i}},bh=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g,wh=new RegExp(bh.source,"g"),Mh=function(t,n){var e,r,i,o=bh.lastIndex=wh.lastIndex=0,u=-1,a=[],c=[];for(t+="",n+="";(e=bh.exec(t))&&(r=wh.exec(n));)(i=r.index)>o&&(i=n.slice(o,i),a[u]?a[u]+=i:a[++u]=i),(e=e[0])===(r=r[0])?a[u]?a[u]+=r:a[++u]=r:(a[++u]=null,c.push({i:u,x:mh(e,r)})),o=wh.lastIndex;return o<n.length&&(i=n.slice(o),a[u]?a[u]+=i:a[++u]=i),a.length<2?c[0]?en(c[0].x):nn(n):(n=c.length,function(t){for(var e,r=0;r<n;++r)a[(e=c[r]).i]=e.x(t);return a.join("")})},Th=function(t,n){var e,r=typeof n;return null==n||"boolean"===r?ph(n):("number"===r?mh:"string"===r?(e=Tt(n))?(n=e,dh):Mh:n instanceof Tt?dh:n instanceof Date?yh:Array.isArray(n)?gh:isNaN(n)?xh:mh)(t,n)},kh=function(t,n){return t=+t,n-=t,function(e){return Math.round(t+n*e)}},Sh=180/Math.PI,Nh={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1},Eh=function(t,n,e,r,i,o){var u,a,c;return(u=Math.sqrt(t*t+n*n))&&(t/=u,n/=u),(c=t*e+n*r)&&(e-=t*c,r-=n*c),(a=Math.sqrt(e*e+r*r))&&(e/=a,r/=a,c/=a),t*r<n*e&&(t=-t,n=-n,c=-c,u=-u),{translateX:i,translateY:o,rotate:Math.atan2(n,t)*Sh,skewX:Math.atan(c)*Sh,scaleX:u,scaleY:a}},Ah=un(rn,"px, ","px)","deg)"),Ch=un(on,", ",")",")"),zh=Math.SQRT2,Ph=function(t,n){var e,r,i=t[0],o=t[1],u=t[2],a=n[0],c=n[1],s=n[2],f=a-i,l=c-o,h=f*f+l*l;if(h<1e-12)r=Math.log(s/u)/zh,e=function(t){return[i+t*f,o+t*l,u*Math.exp(zh*t*r)]};else{var p=Math.sqrt(h),d=(s*s-u*u+4*h)/(2*u*2*p),v=(s*s-u*u-4*h)/(2*s*2*p),_=Math.log(Math.sqrt(d*d+1)-d),g=Math.log(Math.sqrt(v*v+1)-v);r=(g-_)/zh,e=function(t){var n=t*r,e=an(_),a=u/(2*p)*(e*sn(zh*n+_)-cn(_));return[i+a*f,o+a*l,u*e/an(zh*n+_)]}}return e.duration=1e3*r,e},Lh=fn(Jt),Rh=fn(Kt),qh=hn(Jt),Uh=hn(Kt),Dh=pn(Jt),Oh=pn(Kt),Fh=function(t,n){for(var e=new Array(n),r=0;r<n;++r)e[r]=t(r/(n-1));return e},Ih=0,Yh=0,Bh=0,jh=1e3,Hh=0,Xh=0,Vh=0,$h="object"==typeof performance&&performance.now?performance:Date,Wh="function"==typeof requestAnimationFrame?requestAnimationFrame:function(t){setTimeout(t,17)};_n.prototype=gn.prototype={constructor:_n,restart:function(t,n,e){if("function"!=typeof t)throw new TypeError("callback is not a function");e=(null==e?dn():+e)+(null==n?0:+n),this._next||fh===this||(fh?fh._next=this:sh=this,fh=this),this._call=t,this._time=e,wn()},stop:function(){this._call&&(this._call=null,this._time=1/0,wn())}};var Zh=function(t,n,e){var r=new _n;return n=null==n?0:+n,r.restart(function(e){r.stop(),t(e+n)},n,e),r},Gh=function(t,n,e){var r=new _n,i=n;return null==n?(r.restart(t,n,e),r):(n=+n,e=null==e?dn():+e,r.restart(function o(u){u+=i,r.restart(o,i+=n,e),t(u)},n,e),r)},Jh=d("start","end","interrupt"),Qh=[],Kh=0,tp=1,np=2,ep=3,rp=4,ip=5,op=6,up=function(t,n,e,r,i,o){var u=t.__transition;if(u){if(e in u)return}else t.__transition={};Sn(t,e,{name:n,index:r,group:i,on:Jh,tween:Qh,time:o.time,delay:o.delay,duration:o.duration,ease:o.ease,timer:null,state:Kh})},ap=function(t,n){var e,r,i,o=t.__transition,u=!0;if(o){n=null==n?null:n+"";for(i in o)(e=o[i]).name===n?(r=e.state>np&&e.state<ip,e.state=op,e.timer.stop(),r&&e.on.call("interrupt",t,t.__data__,e.index,e.group),delete o[i]):u=!1;u&&delete t.__transition}},cp=function(t){return this.each(function(){ap(this,t)})},sp=function(t,n){var e=this._id;if(t+="",arguments.length<2){for(var r,i=kn(this.node(),e).tween,o=0,u=i.length;o<u;++o)if((r=i[o]).name===t)return r.value;return null}return this.each((null==n?Nn:En)(e,t,n))},fp=function(t,n){var e;return("number"==typeof n?mh:n instanceof Tt?dh:(e=Tt(n))?(n=e,dh):Mh)(t,n)},lp=function(t,n){var e=Ef(t),r="transform"===e?Ch:fp;return this.attrTween(t,"function"==typeof n?(e.local?qn:Rn)(e,r,An(this,"attr."+t,n)):null==n?(e.local?zn:Cn)(e):(e.local?Ln:Pn)(e,r,n+""))},hp=function(t,n){var e="attr."+t;if(arguments.length<2)return(e=this.tween(e))&&e._value;if(null==n)return this.tween(e,null);if("function"!=typeof n)throw new Error;var r=Ef(t);return this.tween(e,(r.local?Un:Dn)(r,n))},pp=function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?On:Fn)(n,t)):kn(this.node(),n).delay},dp=function(t){var n=this._id;return arguments.length?this.each(("function"==typeof t?In:Yn)(n,t)):kn(this.node(),n).duration},vp=function(t){var n=this._id;return arguments.length?this.each(Bn(n,t)):kn(this.node(),n).ease},_p=function(t){"function"!=typeof t&&(t=Rf(t));for(var n=this._groups,e=n.length,r=new Array(e),i=0;i<e;++i)for(var o,u=n[i],a=u.length,c=r[i]=[],s=0;s<a;++s)(o=u[s])&&t.call(o,o.__data__,s,u)&&c.push(o);return new Kn(r,this._parents,this._name,this._id)},gp=function(t){if(t._id!==this._id)throw new Error;for(var n=this._groups,e=t._groups,r=n.length,i=e.length,o=Math.min(r,i),u=new Array(r),a=0;a<o;++a)for(var c,s=n[a],f=e[a],l=s.length,h=u[a]=new Array(l),p=0;p<l;++p)(c=s[p]||f[p])&&(h[p]=c);for(;a<r;++a)u[a]=n[a];return new Kn(u,this._parents,this._name,this._id)},yp=function(t,n){var e=this._id;return arguments.length<2?kn(this.node(),e).on.on(t):this.each(Hn(e,t,n))},mp=function(){return this.on("end.remove",Xn(this._id))},xp=function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=If(t));for(var r=this._groups,i=r.length,o=new Array(i),u=0;u<i;++u)for(var a,c,s=r[u],f=s.length,l=o[u]=new Array(f),h=0;h<f;++h)(a=s[h])&&(c=t.call(a,a.__data__,h,s))&&("__data__"in a&&(c.__data__=a.__data__),l[h]=c,up(l[h],n,e,h,l,kn(a,e)));return new Kn(o,this._parents,n,e)},bp=function(t){var n=this._name,e=this._id;"function"!=typeof t&&(t=Bf(t));for(var r=this._groups,i=r.length,o=[],u=[],a=0;a<i;++a)for(var c,s=r[a],f=s.length,l=0;l<f;++l)if(c=s[l]){for(var h,p=t.call(c,c.__data__,l,s),d=kn(c,e),v=0,_=p.length;v<_;++v)(h=p[v])&&up(h,n,e,v,p,d);o.push(p),u.push(c)}return new Kn(o,u,n,e)},wp=vt.prototype.constructor,Mp=function(){return new wp(this._groups,this._parents)},Tp=function(t,n,e){var r="transform"==(t+="")?Ah:fp;return null==n?this.styleTween(t,Vn(t,r)).on("end.style."+t,$n(t)):this.styleTween(t,"function"==typeof n?Zn(t,r,An(this,"style."+t,n)):Wn(t,r,n+""),e)},kp=function(t,n,e){var r="style."+(t+="");if(arguments.length<2)return(r=this.tween(r))&&r._value;if(null==n)return this.tween(r,null);if("function"!=typeof n)throw new Error;return this.tween(r,Gn(t,n,null==e?"":e))},Sp=function(t){return this.tween("text","function"==typeof t?Qn(An(this,"text",t)):Jn(null==t?"":t+""))},Np=function(){for(var t=this._name,n=this._id,e=ne(),r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)if(u=a[s]){var f=kn(u,n);up(u,t,e,s,a,{time:f.time+f.delay+f.duration,delay:0,duration:f.duration,ease:f.ease})}return new Kn(r,this._parents,t,e)},Ep=0,Ap=vt.prototype;Kn.prototype=te.prototype={constructor:Kn,select:xp,selectAll:bp,filter:_p,merge:gp,selection:Mp,transition:Np,call:Ap.call,nodes:Ap.nodes,node:Ap.node,size:Ap.size,empty:Ap.empty,each:Ap.each,on:yp,attr:lp,attrTween:hp,style:Tp,styleTween:kp,text:Sp,remove:mp,tween:sp,delay:pp,duration:dp,ease:vp};var Cp=function t(n){function e(t){return Math.pow(t,n)}return n=+n,e.exponent=t,e}(3),zp=function t(n){function e(t){return 1-Math.pow(1-t,n)}return n=+n,e.exponent=t,e}(3),Pp=function t(n){function e(t){return((t*=2)<=1?Math.pow(t,n):2-Math.pow(2-t,n))/2}return n=+n,e.exponent=t,e}(3),Lp=Math.PI,Rp=Lp/2,qp=4/11,Up=6/11,Dp=8/11,Op=.75,Fp=9/11,Ip=10/11,Yp=.9375,Bp=21/22,jp=63/64,Hp=1/qp/qp,Xp=function t(n){function e(t){return t*t*((n+1)*t-n)}return n=+n,e.overshoot=t,e}(1.70158),Vp=function t(n){function e(t){return--t*t*((n+1)*t+n)+1}return n=+n,e.overshoot=t,e}(1.70158),$p=function t(n){function e(t){return((t*=2)<1?t*t*((n+1)*t-n):(t-=2)*t*((n+1)*t+n)+2)/2}return n=+n,e.overshoot=t,e}(1.70158),Wp=2*Math.PI,Zp=function t(n,e){function r(t){return n*Math.pow(2,10*--t)*Math.sin((i-t)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=Wp);return r.amplitude=function(n){return t(n,e*Wp)},r.period=function(e){return t(n,e)},r}(1,.3),Gp=function t(n,e){function r(t){return 1-n*Math.pow(2,-10*(t=+t))*Math.sin((t+i)/e)}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=Wp);return r.amplitude=function(n){return t(n,e*Wp)},r.period=function(e){return t(n,e)},r}(1,.3),Jp=function t(n,e){function r(t){return((t=2*t-1)<0?n*Math.pow(2,10*t)*Math.sin((i-t)/e):2-n*Math.pow(2,-10*t)*Math.sin((i+t)/e))/2}var i=Math.asin(1/(n=Math.max(1,n)))*(e/=Wp);return r.amplitude=function(n){return t(n,e*Wp)},r.period=function(e){return t(n,e)},r}(1,.3),Qp={time:null,delay:0,duration:250,ease:ce},Kp=function(t){var n,e;t instanceof Kn?(n=t._id,t=t._name):(n=ne(),(e=Qp).time=dn(),t=null==t?null:t+"");for(var r=this._groups,i=r.length,o=0;o<i;++o)for(var u,a=r[o],c=a.length,s=0;s<c;++s)(u=a[s])&&up(u,t,n,s,a,e||be(u,n));return new Kn(r,this._parents,t,n)};vt.prototype.interrupt=cp,vt.prototype.transition=Kp;var td=[null],nd=function(t,n){var e,r,i=t.__transition;if(i){n=null==n?null:n+"";for(r in i)if((e=i[r]).state>tp&&e.name===n)return new Kn([[t]],td,n,+r)}return null},ed=function(t){return function(){return t}},rd=function(t,n,e){this.target=t,this.type=n,this.selection=e},id=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},od={name:"drag"},ud={name:"space"},ad={name:"handle"},cd={name:"center"},sd={name:"x",handles:["e","w"].map(Me),input:function(t,n){return t&&[[t[0],n[0][1]],[t[1],n[1][1]]]},output:function(t){return t&&[t[0][0],t[1][0]]}},fd={name:"y",handles:["n","s"].map(Me),input:function(t,n){return t&&[[n[0][0],t[0]],[n[1][0],t[1]]]},output:function(t){return t&&[t[0][1],t[1][1]]}},ld={name:"xy",handles:["n","e","s","w","nw","ne","se","sw"].map(Me),input:function(t){return t},output:function(t){return t}},hd={overlay:"crosshair",selection:"move",n:"ns-resize",e:"ew-resize",s:"ns-resize",w:"ew-resize",nw:"nwse-resize",ne:"nesw-resize",se:"nwse-resize",sw:"nesw-resize"},pd={e:"w",w:"e",nw:"ne",ne:"nw",se:"sw",sw:"se"},dd={n:"s",s:"n",nw:"sw",ne:"se",se:"ne",sw:"nw"},vd={overlay:1,selection:1,n:null,e:1,s:null,w:-1,nw:-1,ne:1,se:1,sw:-1},_d={overlay:1,selection:1,n:-1,e:null,s:1,w:null,nw:-1,ne:-1,se:1,sw:1},gd=function(){return ze(ld)},yd=Math.cos,md=Math.sin,xd=Math.PI,bd=xd/2,wd=2*xd,Md=Math.max,Td=function(){function t(t){var o,u,a,c,s,f,l=t.length,h=[],p=Gs(l),d=[],v=[],_=v.groups=new Array(l),g=new Array(l*l);for(o=0,s=-1;++s<l;){for(u=0,f=-1;++f<l;)u+=t[s][f];h.push(u),d.push(Gs(l)),o+=u}for(e&&p.sort(function(t,n){return e(h[t],h[n])}),r&&d.forEach(function(n,e){n.sort(function(n,i){return r(t[e][n],t[e][i])})}),o=Md(0,wd-n*l)/o,c=o?n:wd/l,u=0,s=-1;++s<l;){for(a=u,f=-1;++f<l;){var y=p[s],m=d[y][f],x=t[y][m],b=u,w=u+=x*o;g[m*l+y]={index:y,subindex:m,startAngle:b,endAngle:w,value:x}}_[y]={index:y,startAngle:a,endAngle:u,value:h[y]},u+=c}for(s=-1;++s<l;)for(f=s-1;++f<l;){var M=g[f*l+s],T=g[s*l+f];(M.value||T.value)&&v.push(M.value<T.value?{source:T,target:M}:{source:M,target:T})}return i?v.sort(i):v}var n=0,e=null,r=null,i=null;return t.padAngle=function(e){return arguments.length?(n=Md(0,e),t):n},t.sortGroups=function(n){return arguments.length?(e=n,t):e},t.sortSubgroups=function(n){return arguments.length?(r=n,t):r},t.sortChords=function(n){return arguments.length?(null==n?i=null:(i=Pe(n))._=n,t):i&&i._},t},kd=Array.prototype.slice,Sd=function(t){return function(){return t}},Nd=Math.PI,Ed=2*Nd,Ad=Ed-1e-6;Le.prototype=Re.prototype={constructor:Le,moveTo:function(t,n){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)},closePath:function(){null!==this._x1&&(this._x1=this._x0,this._y1=this._y0,this._+="Z")},lineTo:function(t,n){this._+="L"+(this._x1=+t)+","+(this._y1=+n)},quadraticCurveTo:function(t,n,e,r){this._+="Q"+ +t+","+ +n+","+(this._x1=+e)+","+(this._y1=+r)},bezierCurveTo:function(t,n,e,r,i,o){this._+="C"+ +t+","+ +n+","+ +e+","+ +r+","+(this._x1=+i)+","+(this._y1=+o)},arcTo:function(t,n,e,r,i){t=+t,n=+n,e=+e,r=+r,i=+i;var o=this._x1,u=this._y1,a=e-t,c=r-n,s=o-t,f=u-n,l=s*s+f*f;if(i<0)throw new Error("negative radius: "+i);if(null===this._x1)this._+="M"+(this._x1=t)+","+(this._y1=n);else if(l>1e-6)if(Math.abs(f*a-c*s)>1e-6&&i){var h=e-o,p=r-u,d=a*a+c*c,v=h*h+p*p,_=Math.sqrt(d),g=Math.sqrt(l),y=i*Math.tan((Nd-Math.acos((d+l-v)/(2*_*g)))/2),m=y/g,x=y/_;Math.abs(m-1)>1e-6&&(this._+="L"+(t+m*s)+","+(n+m*f)),this._+="A"+i+","+i+",0,0,"+ +(f*h>s*p)+","+(this._x1=t+x*a)+","+(this._y1=n+x*c)}else this._+="L"+(this._x1=t)+","+(this._y1=n);else;},arc:function(t,n,e,r,i,o){t=+t,n=+n,e=+e;var u=e*Math.cos(r),a=e*Math.sin(r),c=t+u,s=n+a,f=1^o,l=o?r-i:i-r;if(e<0)throw new Error("negative radius: "+e);null===this._x1?this._+="M"+c+","+s:(Math.abs(this._x1-c)>1e-6||Math.abs(this._y1-s)>1e-6)&&(this._+="L"+c+","+s),e&&(l<0&&(l=l%Ed+Ed),l>Ad?this._+="A"+e+","+e+",0,1,"+f+","+(t-u)+","+(n-a)+"A"+e+","+e+",0,1,"+f+","+(this._x1=c)+","+(this._y1=s):l>1e-6&&(this._+="A"+e+","+e+",0,"+ +(l>=Nd)+","+f+","+(this._x1=t+e*Math.cos(i))+","+(this._y1=n+e*Math.sin(i))))},rect:function(t,n,e,r){this._+="M"+(this._x0=this._x1=+t)+","+(this._y0=this._y1=+n)+"h"+ +e+"v"+ +r+"h"+-e+"Z"},toString:function(){return this._}};var Cd=function(){function t(){var t,a=kd.call(arguments),c=n.apply(this,a),s=e.apply(this,a),f=+r.apply(this,(a[0]=c,a)),l=i.apply(this,a)-bd,h=o.apply(this,a)-bd,p=f*yd(l),d=f*md(l),v=+r.apply(this,(a[0]=s,a)),_=i.apply(this,a)-bd,g=o.apply(this,a)-bd;if(u||(u=t=Re()),u.moveTo(p,d),u.arc(0,0,f,l,h),l===_&&h===g||(u.quadraticCurveTo(0,0,v*yd(_),v*md(_)),u.arc(0,0,v,_,g)),u.quadraticCurveTo(0,0,p,d),u.closePath(),t)return u=null,t+""||null}var n=qe,e=Ue,r=De,i=Oe,o=Fe,u=null;return t.radius=function(n){return arguments.length?(r="function"==typeof n?n:Sd(+n),t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:Sd(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:Sd(+n),t):o},t.source=function(e){return arguments.length?(n=e,t):n},t.target=function(n){return arguments.length?(e=n,t):e},t.context=function(n){return arguments.length?(u=null==n?null:n,t):u},t};Ie.prototype=Ye.prototype={constructor:Ie,has:function(t){return"$"+t in this},get:function(t){return this["$"+t]},set:function(t,n){return this["$"+t]=n,this},remove:function(t){var n="$"+t;return n in this&&delete this[n]},clear:function(){for(var t in this)"$"===t[0]&&delete this[t]},keys:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(n.slice(1));return t},values:function(){var t=[];for(var n in this)"$"===n[0]&&t.push(this[n]);return t},entries:function(){var t=[];for(var n in this)"$"===n[0]&&t.push({key:n.slice(1),value:this[n]});return t},size:function(){var t=0;for(var n in this)"$"===n[0]&&++t;return t},empty:function(){for(var t in this)if("$"===t[0])return!1;return!0},each:function(t){for(var n in this)"$"===n[0]&&t(this[n],n.slice(1),this)}};var zd=function(){function t(n,i,u,a){if(i>=o.length)return null!=r?r(n):null!=e?n.sort(e):n;for(var c,s,f,l=-1,h=n.length,p=o[i++],d=Ye(),v=u();++l<h;)(f=d.get(c=p(s=n[l])+""))?f.push(s):d.set(c,[s]);return d.each(function(n,e){a(v,e,t(n,i,u,a))}),v}function n(t,e){if(++e>o.length)return t;var i,a=u[e-1];return null!=r&&e>=o.length?i=t.entries():(i=[],t.each(function(t,r){i.push({key:r,values:n(t,e)})})),null!=a?i.sort(function(t,n){return a(t.key,n.key)}):i}var e,r,i,o=[],u=[];return i={object:function(n){return t(n,0,Be,je)},map:function(n){return t(n,0,He,Xe)},entries:function(e){return n(t(e,0,He,Xe),0)},key:function(t){return o.push(t),i},sortKeys:function(t){return u[o.length-1]=t,i},sortValues:function(t){return e=t,i},rollup:function(t){return r=t,i}}},Pd=Ye.prototype;Ve.prototype=$e.prototype={constructor:Ve,has:Pd.has,add:function(t){return t+="",this["$"+t]=t,this},remove:Pd.remove,clear:Pd.clear,values:Pd.keys,size:Pd.size,empty:Pd.empty,each:Pd.each};var Ld=function(t){var n=[];for(var e in t)n.push(e);return n},Rd=function(t){var n=[];for(var e in t)n.push(t[e]);return n},qd=function(t){var n=[];for(var e in t)n.push({key:e,value:t[e]});return n},Ud=function(t){function n(t,n){var r,i,o=e(t,function(t,e){if(r)return r(t,e-1);i=t,r=n?Ze(t,n):We(t)});return o.columns=i,o}function e(t,n){function e(){if(f>=s)return u;if(i)return i=!1,o;var n,e=f;if(34===t.charCodeAt(e)){for(var r=e;r++<s;)if(34===t.charCodeAt(r)){if(34!==t.charCodeAt(r+1))break;++r}return f=r+2,n=t.charCodeAt(r+1),13===n?(i=!0,10===t.charCodeAt(r+2)&&++f):10===n&&(i=!0),t.slice(e+1,r).replace(/""/g,'"')}for(;f<s;){var a=1;if(10===(n=t.charCodeAt(f++)))i=!0;else if(13===n)i=!0,10===t.charCodeAt(f)&&(++f,++a);else if(n!==c)continue;return t.slice(e,f-a)}return t.slice(e)}for(var r,i,o={},u={},a=[],s=t.length,f=0,l=0;(r=e())!==u;){for(var h=[];r!==o&&r!==u;)h.push(r),r=e();n&&null==(h=n(h,l++))||a.push(h)}return a}function r(n,e){return null==e&&(e=Ge(n)),[e.map(u).join(t)].concat(n.map(function(n){return e.map(function(t){return u(n[t])}).join(t)})).join("\n")}function i(t){return t.map(o).join("\n")}function o(n){return n.map(u).join(t)}function u(t){return null==t?"":a.test(t+="")?'"'+t.replace(/\"/g,'""')+'"':t}var a=new RegExp('["'+t+"\n\r]"),c=t.charCodeAt(0);return{parse:n,parseRows:e,format:r,formatRows:i}},Dd=Ud(","),Od=Dd.parse,Fd=Dd.parseRows,Id=Dd.format,Yd=Dd.formatRows,Bd=Ud("\t"),jd=Bd.parse,Hd=Bd.parseRows,Xd=Bd.format,Vd=Bd.formatRows,$d=function(t,n){function e(){var e,i,o=r.length,u=0,a=0;for(e=0;e<o;++e)i=r[e],u+=i.x,a+=i.y;for(u=u/o-t,a=a/o-n,e=0;e<o;++e)i=r[e],i.x-=u,i.y-=a}var r;return null==t&&(t=0),null==n&&(n=0),e.initialize=function(t){r=t},e.x=function(n){return arguments.length?(t=+n,e):t},e.y=function(t){return arguments.length?(n=+t,e):n},e},Wd=function(t){return function(){return t}},Zd=function(){return 1e-6*(Math.random()-.5)},Gd=function(t){var n=+this._x.call(null,t),e=+this._y.call(null,t);return Je(this.cover(n,e),n,e,t)},Jd=function(t,n){if(isNaN(t=+t)||isNaN(n=+n))return this;var e=this._x0,r=this._y0,i=this._x1,o=this._y1;if(isNaN(e))i=(e=Math.floor(t))+1,o=(r=Math.floor(n))+1;else{if(!(e>t||t>i||r>n||n>o))return this;var u,a,c=i-e,s=this._root;switch(a=(n<(r+o)/2)<<1|t<(e+i)/2){case 0:do{u=new Array(4),u[a]=s,s=u}while(c*=2,i=e+c,o=r+c,t>i||n>o);break;case 1:do{u=new Array(4),u[a]=s,s=u}while(c*=2,e=i-c,o=r+c,e>t||n>o);break;case 2:do{u=new Array(4),u[a]=s,s=u}while(c*=2,i=e+c,r=o-c,t>i||r>n);break;case 3:do{u=new Array(4),u[a]=s,s=u}while(c*=2,e=i-c,r=o-c,e>t||r>n)}this._root&&this._root.length&&(this._root=s)}return this._x0=e,this._y0=r,this._x1=i,this._y1=o,this},Qd=function(){var t=[];return this.visit(function(n){if(!n.length)do{t.push(n.data)}while(n=n.next)}),t},Kd=function(t){return arguments.length?this.cover(+t[0][0],+t[0][1]).cover(+t[1][0],+t[1][1]):isNaN(this._x0)?void 0:[[this._x0,this._y0],[this._x1,this._y1]]},tv=function(t,n,e,r,i){this.node=t,this.x0=n,this.y0=e,this.x1=r,this.y1=i},nv=function(t,n,e){var r,i,o,u,a,c,s,f=this._x0,l=this._y0,h=this._x1,p=this._y1,d=[],v=this._root;for(v&&d.push(new tv(v,f,l,h,p)),null==e?e=1/0:(f=t-e,l=n-e,h=t+e,p=n+e,e*=e);c=d.pop();)if(!(!(v=c.node)||(i=c.x0)>h||(o=c.y0)>p||(u=c.x1)<f||(a=c.y1)<l))if(v.length){var _=(i+u)/2,g=(o+a)/2;d.push(new tv(v[3],_,g,u,a),new tv(v[2],i,g,_,a),new tv(v[1],_,o,u,g),new tv(v[0],i,o,_,g)),(s=(n>=g)<<1|t>=_)&&(c=d[d.length-1],d[d.length-1]=d[d.length-1-s],d[d.length-1-s]=c)}else{var y=t-+this._x.call(null,v.data),m=n-+this._y.call(null,v.data),x=y*y+m*m;if(x<e){var b=Math.sqrt(e=x);f=t-b,l=n-b,h=t+b,p=n+b,r=v.data}}return r},ev=function(t){if(isNaN(o=+this._x.call(null,t))||isNaN(u=+this._y.call(null,t)))return this;var n,e,r,i,o,u,a,c,s,f,l,h,p=this._root,d=this._x0,v=this._y0,_=this._x1,g=this._y1;if(!p)return this;if(p.length)for(;;){if((s=o>=(a=(d+_)/2))?d=a:_=a,(f=u>=(c=(v+g)/2))?v=c:g=c,n=p,!(p=p[l=f<<1|s]))return this;if(!p.length)break;(n[l+1&3]||n[l+2&3]||n[l+3&3])&&(e=n,h=l)}for(;p.data!==t;)if(r=p,!(p=p.next))return this;return(i=p.next)&&delete p.next,r?(i?r.next=i:delete r.next,this):n?(i?n[l]=i:delete n[l],(p=n[0]||n[1]||n[2]||n[3])&&p===(n[3]||n[2]||n[1]||n[0])&&!p.length&&(e?e[h]=p:this._root=p),this):(this._root=i,this)},rv=function(){return this._root},iv=function(){var t=0;return this.visit(function(n){if(!n.length)do{++t}while(n=n.next)}),t},ov=function(t){var n,e,r,i,o,u,a=[],c=this._root;for(c&&a.push(new tv(c,this._x0,this._y0,this._x1,this._y1));n=a.pop();)if(!t(c=n.node,r=n.x0,i=n.y0,o=n.x1,u=n.y1)&&c.length){
var s=(r+o)/2,f=(i+u)/2;(e=c[3])&&a.push(new tv(e,s,f,o,u)),(e=c[2])&&a.push(new tv(e,r,f,s,u)),(e=c[1])&&a.push(new tv(e,s,i,o,f)),(e=c[0])&&a.push(new tv(e,r,i,s,f))}return this},uv=function(t){var n,e=[],r=[];for(this._root&&e.push(new tv(this._root,this._x0,this._y0,this._x1,this._y1));n=e.pop();){var i=n.node;if(i.length){var o,u=n.x0,a=n.y0,c=n.x1,s=n.y1,f=(u+c)/2,l=(a+s)/2;(o=i[0])&&e.push(new tv(o,u,a,f,l)),(o=i[1])&&e.push(new tv(o,f,a,c,l)),(o=i[2])&&e.push(new tv(o,u,l,f,s)),(o=i[3])&&e.push(new tv(o,f,l,c,s))}r.push(n)}for(;n=r.pop();)t(n.node,n.x0,n.y0,n.x1,n.y1);return this},av=function(t){return arguments.length?(this._x=t,this):this._x},cv=function(t){return arguments.length?(this._y=t,this):this._y},sv=er.prototype=rr.prototype;sv.copy=function(){var t,n,e=new rr(this._x,this._y,this._x0,this._y0,this._x1,this._y1),r=this._root;if(!r)return e;if(!r.length)return e._root=ir(r),e;for(t=[{source:r,target:e._root=new Array(4)}];r=t.pop();)for(var i=0;i<4;++i)(n=r.source[i])&&(n.length?t.push({source:n,target:r.target[i]=new Array(4)}):r.target[i]=ir(n));return e},sv.add=Gd,sv.addAll=Qe,sv.cover=Jd,sv.data=Qd,sv.extent=Kd,sv.find=nv,sv.remove=ev,sv.removeAll=Ke,sv.root=rv,sv.size=iv,sv.visit=ov,sv.visitAfter=uv,sv.x=av,sv.y=cv;var fv,lv=function(t){function n(){function t(t,n,e,r,i){var o=t.data,a=t.r,p=l+a;{if(!o)return n>s+p||r<s-p||e>f+p||i<f-p;if(o.index>c.index){var d=s-o.x-o.vx,v=f-o.y-o.vy,_=d*d+v*v;_<p*p&&(0===d&&(d=Zd(),_+=d*d),0===v&&(v=Zd(),_+=v*v),_=(p-(_=Math.sqrt(_)))/_*u,c.vx+=(d*=_)*(p=(a*=a)/(h+a)),c.vy+=(v*=_)*p,o.vx-=d*(p=1-p),o.vy-=v*p)}}}for(var n,r,c,s,f,l,h,p=i.length,d=0;d<a;++d)for(r=er(i,or,ur).visitAfter(e),n=0;n<p;++n)c=i[n],l=o[c.index],h=l*l,s=c.x+c.vx,f=c.y+c.vy,r.visit(t)}function e(t){if(t.data)return t.r=o[t.data.index];for(var n=t.r=0;n<4;++n)t[n]&&t[n].r>t.r&&(t.r=t[n].r)}function r(){if(i){var n,e,r=i.length;for(o=new Array(r),n=0;n<r;++n)e=i[n],o[e.index]=+t(e,n,i)}}var i,o,u=1,a=1;return"function"!=typeof t&&(t=Wd(null==t?1:+t)),n.initialize=function(t){i=t,r()},n.iterations=function(t){return arguments.length?(a=+t,n):a},n.strength=function(t){return arguments.length?(u=+t,n):u},n.radius=function(e){return arguments.length?(t="function"==typeof e?e:Wd(+e),r(),n):t},n},hv=function(t){function n(t){return 1/Math.min(s[t.source.index],s[t.target.index])}function e(n){for(var e=0,r=t.length;e<d;++e)for(var i,o,c,s,l,h,p,v=0;v<r;++v)i=t[v],o=i.source,c=i.target,s=c.x+c.vx-o.x-o.vx||Zd(),l=c.y+c.vy-o.y-o.vy||Zd(),h=Math.sqrt(s*s+l*l),h=(h-a[v])/h*n*u[v],s*=h,l*=h,c.vx-=s*(p=f[v]),c.vy-=l*p,o.vx+=s*(p=1-p),o.vy+=l*p}function r(){if(c){var n,e,r=c.length,h=t.length,p=Ye(c,l);for(n=0,s=new Array(r);n<h;++n)e=t[n],e.index=n,"object"!=typeof e.source&&(e.source=cr(p,e.source)),"object"!=typeof e.target&&(e.target=cr(p,e.target)),s[e.source.index]=(s[e.source.index]||0)+1,s[e.target.index]=(s[e.target.index]||0)+1;for(n=0,f=new Array(h);n<h;++n)e=t[n],f[n]=s[e.source.index]/(s[e.source.index]+s[e.target.index]);u=new Array(h),i(),a=new Array(h),o()}}function i(){if(c)for(var n=0,e=t.length;n<e;++n)u[n]=+h(t[n],n,t)}function o(){if(c)for(var n=0,e=t.length;n<e;++n)a[n]=+p(t[n],n,t)}var u,a,c,s,f,l=ar,h=n,p=Wd(30),d=1;return null==t&&(t=[]),e.initialize=function(t){c=t,r()},e.links=function(n){return arguments.length?(t=n,r(),e):t},e.id=function(t){return arguments.length?(l=t,e):l},e.iterations=function(t){return arguments.length?(d=+t,e):d},e.strength=function(t){return arguments.length?(h="function"==typeof t?t:Wd(+t),i(),e):h},e.distance=function(t){return arguments.length?(p="function"==typeof t?t:Wd(+t),o(),e):p},e},pv=10,dv=Math.PI*(3-Math.sqrt(5)),vv=function(t){function n(){e(),p.call("tick",o),u<a&&(h.stop(),p.call("end",o))}function e(){var n,e,r=t.length;for(u+=(s-u)*c,l.each(function(t){t(u)}),n=0;n<r;++n)e=t[n],null==e.fx?e.x+=e.vx*=f:(e.x=e.fx,e.vx=0),null==e.fy?e.y+=e.vy*=f:(e.y=e.fy,e.vy=0)}function r(){for(var n,e=0,r=t.length;e<r;++e){if(n=t[e],n.index=e,isNaN(n.x)||isNaN(n.y)){var i=pv*Math.sqrt(e),o=e*dv;n.x=i*Math.cos(o),n.y=i*Math.sin(o)}(isNaN(n.vx)||isNaN(n.vy))&&(n.vx=n.vy=0)}}function i(n){return n.initialize&&n.initialize(t),n}var o,u=1,a=.001,c=1-Math.pow(a,1/300),s=0,f=.6,l=Ye(),h=gn(n),p=d("tick","end");return null==t&&(t=[]),r(),o={tick:e,restart:function(){return h.restart(n),o},stop:function(){return h.stop(),o},nodes:function(n){return arguments.length?(t=n,r(),l.each(i),o):t},alpha:function(t){return arguments.length?(u=+t,o):u},alphaMin:function(t){return arguments.length?(a=+t,o):a},alphaDecay:function(t){return arguments.length?(c=+t,o):+c},alphaTarget:function(t){return arguments.length?(s=+t,o):s},velocityDecay:function(t){return arguments.length?(f=1-t,o):1-f},force:function(t,n){return arguments.length>1?(null==n?l.remove(t):l.set(t,i(n)),o):l.get(t)},find:function(n,e,r){var i,o,u,a,c,s=0,f=t.length;for(null==r?r=1/0:r*=r,s=0;s<f;++s)a=t[s],i=n-a.x,o=e-a.y,(u=i*i+o*o)<r&&(c=a,r=u);return c},on:function(t,n){return arguments.length>1?(p.on(t,n),o):p.on(t)}}},_v=function(){function t(t){var n,a=i.length,c=er(i,sr,fr).visitAfter(e);for(u=t,n=0;n<a;++n)o=i[n],c.visit(r)}function n(){if(i){var t,n,e=i.length;for(a=new Array(e),t=0;t<e;++t)n=i[t],a[n.index]=+c(n,t,i)}}function e(t){var n,e,r,i,o,u=0;if(t.length){for(r=i=o=0;o<4;++o)(n=t[o])&&(e=n.value)&&(u+=e,r+=e*n.x,i+=e*n.y);t.x=r/u,t.y=i/u}else{n=t,n.x=n.data.x,n.y=n.data.y;do{u+=a[n.data.index]}while(n=n.next)}t.value=u}function r(t,n,e,r){if(!t.value)return!0;var i=t.x-o.x,c=t.y-o.y,h=r-n,p=i*i+c*c;if(h*h/l<p)return p<f&&(0===i&&(i=Zd(),p+=i*i),0===c&&(c=Zd(),p+=c*c),p<s&&(p=Math.sqrt(s*p)),o.vx+=i*t.value*u/p,o.vy+=c*t.value*u/p),!0;if(!(t.length||p>=f)){(t.data!==o||t.next)&&(0===i&&(i=Zd(),p+=i*i),0===c&&(c=Zd(),p+=c*c),p<s&&(p=Math.sqrt(s*p)));do{t.data!==o&&(h=a[t.data.index]*u/p,o.vx+=i*h,o.vy+=c*h)}while(t=t.next)}}var i,o,u,a,c=Wd(-30),s=1,f=1/0,l=.81;return t.initialize=function(t){i=t,n()},t.strength=function(e){return arguments.length?(c="function"==typeof e?e:Wd(+e),n(),t):c},t.distanceMin=function(n){return arguments.length?(s=n*n,t):Math.sqrt(s)},t.distanceMax=function(n){return arguments.length?(f=n*n,t):Math.sqrt(f)},t.theta=function(n){return arguments.length?(l=n*n,t):Math.sqrt(l)},t},gv=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)n=r[e],n.vx+=(o[e]-n.x)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=Wd(.1);return"function"!=typeof t&&(t=Wd(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u="function"==typeof t?t:Wd(+t),e(),n):u},n.x=function(r){return arguments.length?(t="function"==typeof r?r:Wd(+r),e(),n):t},n},yv=function(t){function n(t){for(var n,e=0,u=r.length;e<u;++e)n=r[e],n.vy+=(o[e]-n.y)*i[e]*t}function e(){if(r){var n,e=r.length;for(i=new Array(e),o=new Array(e),n=0;n<e;++n)i[n]=isNaN(o[n]=+t(r[n],n,r))?0:+u(r[n],n,r)}}var r,i,o,u=Wd(.1);return"function"!=typeof t&&(t=Wd(null==t?0:+t)),n.initialize=function(t){r=t,e()},n.strength=function(t){return arguments.length?(u="function"==typeof t?t:Wd(+t),e(),n):u},n.y=function(r){return arguments.length?(t="function"==typeof r?r:Wd(+r),e(),n):t},n},mv=function(t,n){if((e=(t=n?t.toExponential(n-1):t.toExponential()).indexOf("e"))<0)return null;var e,r=t.slice(0,e);return[r.length>1?r[0]+r.slice(2):r,+t.slice(e+1)]},xv=function(t){return t=mv(Math.abs(t)),t?t[1]:NaN},bv=function(t,n){return function(e,r){for(var i=e.length,o=[],u=0,a=t[0],c=0;i>0&&a>0&&(c+a+1>r&&(a=Math.max(1,r-c)),o.push(e.substring(i-=a,i+a)),!((c+=a+1)>r));)a=t[u=(u+1)%t.length];return o.reverse().join(n)}},wv=function(t){return function(n){return n.replace(/[0-9]/g,function(n){return t[+n]})}},Mv=function(t,n){t=t.toPrecision(n);t:for(var e,r=t.length,i=1,o=-1;i<r;++i)switch(t[i]){case".":o=e=i;break;case"0":0===o&&(o=i),e=i;break;case"e":break t;default:o>0&&(o=0)}return o>0?t.slice(0,o)+t.slice(e+1):t},Tv=function(t,n){var e=mv(t,n);if(!e)return t+"";var r=e[0],i=e[1],o=i-(fv=3*Math.max(-8,Math.min(8,Math.floor(i/3))))+1,u=r.length;return o===u?r:o>u?r+new Array(o-u+1).join("0"):o>0?r.slice(0,o)+"."+r.slice(o):"0."+new Array(1-o).join("0")+mv(t,Math.max(0,n+o-1))[0]},kv=function(t,n){var e=mv(t,n);if(!e)return t+"";var r=e[0],i=e[1];return i<0?"0."+new Array(-i).join("0")+r:r.length>i+1?r.slice(0,i+1)+"."+r.slice(i+1):r+new Array(i-r.length+2).join("0")},Sv={"":Mv,"%":function(t,n){return(100*t).toFixed(n)},b:function(t){return Math.round(t).toString(2)},c:function(t){return t+""},d:function(t){return Math.round(t).toString(10)},e:function(t,n){return t.toExponential(n)},f:function(t,n){return t.toFixed(n)},g:function(t,n){return t.toPrecision(n)},o:function(t){return Math.round(t).toString(8)},p:function(t,n){return kv(100*t,n)},r:kv,s:Tv,X:function(t){return Math.round(t).toString(16).toUpperCase()},x:function(t){return Math.round(t).toString(16)}},Nv=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;lr.prototype=hr.prototype,hr.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(null==this.width?"":Math.max(1,0|this.width))+(this.comma?",":"")+(null==this.precision?"":"."+Math.max(0,0|this.precision))+this.type};var Ev,Av=function(t){return t},Cv=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"],zv=function(t){function n(t){function n(t){var n,i,s,m=v,x=_;if("c"===d)x=g(t)+x,t="";else{t=+t;var b=t<0;if(t=g(Math.abs(t),p),b&&0==+t&&(b=!1),m=(b?"("===c?c:"-":"-"===c||"("===c?"":c)+m,x=x+("s"===d?Cv[8+fv/3]:"")+(b&&"("===c?")":""),y)for(n=-1,i=t.length;++n<i;)if(48>(s=t.charCodeAt(n))||s>57){x=(46===s?o+t.slice(n+1):t.slice(n))+x,t=t.slice(0,n);break}}h&&!f&&(t=r(t,1/0));var w=m.length+t.length+x.length,M=w<l?new Array(l-w+1).join(e):"";switch(h&&f&&(t=r(M+t,M.length?l-x.length:1/0),M=""),a){case"<":t=m+t+x+M;break;case"=":t=m+M+t+x;break;case"^":t=M.slice(0,w=M.length>>1)+m+t+x+M.slice(w);break;default:t=M+m+t+x}return u(t)}t=lr(t);var e=t.fill,a=t.align,c=t.sign,s=t.symbol,f=t.zero,l=t.width,h=t.comma,p=t.precision,d=t.type,v="$"===s?i[0]:"#"===s&&/[boxX]/.test(d)?"0"+d.toLowerCase():"",_="$"===s?i[1]:/[%p]/.test(d)?"%":"",g=Sv[d],y=!d||/[defgprs%]/.test(d);return p=null==p?d?6:12:/[gprs]/.test(d)?Math.max(1,Math.min(21,p)):Math.max(0,Math.min(20,p)),n.toString=function(){return t+""},n}function e(t,e){var r=n((t=lr(t),t.type="f",t)),i=3*Math.max(-8,Math.min(8,Math.floor(xv(e)/3))),o=Math.pow(10,-i),u=Cv[8+i/3];return function(t){return r(o*t)+u}}var r=t.grouping&&t.thousands?bv(t.grouping,t.thousands):Av,i=t.currency,o=t.decimal,u=t.numerals?wv(t.numerals):Av;return{format:n,formatPrefix:e}};pr({decimal:".",thousands:",",grouping:[3],currency:["$",""]});var Pv=function(t){return Math.max(0,-xv(Math.abs(t)))},Lv=function(t,n){return Math.max(0,3*Math.max(-8,Math.min(8,Math.floor(xv(n)/3)))-xv(Math.abs(t)))},Rv=function(t,n){return t=Math.abs(t),n=Math.abs(n)-t,Math.max(0,xv(n)-xv(t))+1},qv=function(){return new dr};dr.prototype={constructor:dr,reset:function(){this.s=this.t=0},add:function(t){vr(p_,t,this.t),vr(this,p_.s,this.s),this.s?this.t+=p_.t:this.s=p_.t},valueOf:function(){return this.s}};var Uv,Dv,Ov,Fv,Iv,Yv,Bv,jv,Hv,Xv,Vv,$v,Wv,Zv,Gv,Jv,Qv,Kv,t_,n_,e_,r_,i_,o_,u_,a_,c_,s_,f_,l_,h_,p_=new dr,d_=1e-6,v_=Math.PI,__=v_/2,g_=v_/4,y_=2*v_,m_=180/v_,x_=v_/180,b_=Math.abs,w_=Math.atan,M_=Math.atan2,T_=Math.cos,k_=Math.ceil,S_=Math.exp,N_=Math.log,E_=Math.pow,A_=Math.sin,C_=Math.sign||function(t){return t>0?1:t<0?-1:0},z_=Math.sqrt,P_=Math.tan,L_={Feature:function(t,n){xr(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)xr(e[r].geometry,n)}},R_={Sphere:function(t,n){n.sphere()},Point:function(t,n){t=t.coordinates,n.point(t[0],t[1],t[2])},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)t=e[r],n.point(t[0],t[1],t[2])},LineString:function(t,n){br(t.coordinates,n,0)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)br(e[r],n,0)},Polygon:function(t,n){wr(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)wr(e[r],n)},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)xr(e[r],n)}},q_=function(t,n){t&&L_.hasOwnProperty(t.type)?L_[t.type](t,n):xr(t,n)},U_=qv(),D_=qv(),O_={point:mr,lineStart:mr,lineEnd:mr,polygonStart:function(){U_.reset(),O_.lineStart=Mr,O_.lineEnd=Tr},polygonEnd:function(){var t=+U_;D_.add(t<0?y_+t:t),this.lineStart=this.lineEnd=this.point=mr},sphere:function(){D_.add(y_)}},F_=function(t){return D_.reset(),q_(t,O_),2*D_},I_=qv(),Y_={point:Rr,lineStart:Ur,lineEnd:Dr,polygonStart:function(){Y_.point=Or,Y_.lineStart=Fr,Y_.lineEnd=Ir,I_.reset(),O_.polygonStart()},polygonEnd:function(){O_.polygonEnd(),Y_.point=Rr,Y_.lineStart=Ur,Y_.lineEnd=Dr,U_<0?(Yv=-(jv=180),Bv=-(Hv=90)):I_>d_?Hv=90:I_<-d_&&(Bv=-90),Gv[0]=Yv,Gv[1]=jv}},B_=function(t){var n,e,r,i,o,u,a;if(Hv=jv=-(Yv=Bv=1/0),Zv=[],q_(t,Y_),e=Zv.length){for(Zv.sort(Br),n=1,r=Zv[0],o=[r];n<e;++n)i=Zv[n],jr(r,i[0])||jr(r,i[1])?(Yr(r[0],i[1])>Yr(r[0],r[1])&&(r[1]=i[1]),Yr(i[0],r[1])>Yr(r[0],r[1])&&(r[0]=i[0])):o.push(r=i);for(u=-(1/0),e=o.length-1,n=0,r=o[e];n<=e;r=i,++n)i=o[n],(a=Yr(r[1],i[0]))>u&&(u=a,Yv=i[0],jv=r[1])}return Zv=Gv=null,Yv===1/0||Bv===1/0?[[NaN,NaN],[NaN,NaN]]:[[Yv,Bv],[jv,Hv]]},j_={sphere:mr,point:Hr,lineStart:Vr,lineEnd:Zr,polygonStart:function(){j_.lineStart=Gr,j_.lineEnd=Jr},polygonEnd:function(){j_.lineStart=Vr,j_.lineEnd=Zr}},H_=function(t){Jv=Qv=Kv=t_=n_=e_=r_=i_=o_=u_=a_=0,q_(t,j_);var n=o_,e=u_,r=a_,i=n*n+e*e+r*r;return i<1e-12&&(n=e_,e=r_,r=i_,Qv<d_&&(n=Kv,e=t_,r=n_),(i=n*n+e*e+r*r)<1e-12)?[NaN,NaN]:[M_(e,n)*m_,gr(r/z_(i))*m_]},X_=function(t){return function(){return t}},V_=function(t,n){function e(e,r){return e=t(e,r),n(e[0],e[1])}return t.invert&&n.invert&&(e.invert=function(e,r){return(e=n.invert(e,r))&&t.invert(e[0],e[1])}),e};ti.invert=ti;var $_,W_,Z_,G_,J_,Q_,K_,tg,ng,eg,rg,ig=function(t){function n(n){return n=t(n[0]*x_,n[1]*x_),n[0]*=m_,n[1]*=m_,n}return t=ni(t[0]*x_,t[1]*x_,t.length>2?t[2]*x_:0),n.invert=function(n){return n=t.invert(n[0]*x_,n[1]*x_),n[0]*=m_,n[1]*=m_,n},n},og=function(){function t(t,n){e.push(t=r(t,n)),t[0]*=m_,t[1]*=m_}function n(){var t=i.apply(this,arguments),n=o.apply(this,arguments)*x_,c=u.apply(this,arguments)*x_;return e=[],r=ni(-t[0]*x_,-t[1]*x_,0).invert,oi(a,n,c,1),t={type:"Polygon",coordinates:[e]},e=r=null,t}var e,r,i=X_([0,0]),o=X_(90),u=X_(6),a={point:t};return n.center=function(t){return arguments.length?(i="function"==typeof t?t:X_([+t[0],+t[1]]),n):i},n.radius=function(t){return arguments.length?(o="function"==typeof t?t:X_(+t),n):o},n.precision=function(t){return arguments.length?(u="function"==typeof t?t:X_(+t),n):u},n},ug=function(){var t,n=[];return{point:function(n,e){t.push([n,e])},lineStart:function(){n.push(t=[])},lineEnd:mr,rejoin:function(){n.length>1&&n.push(n.pop().concat(n.shift()))},result:function(){var e=n;return n=[],t=null,e}}},ag=function(t,n,e,r,i,o){var u,a=t[0],c=t[1],s=n[0],f=n[1],l=0,h=1,p=s-a,d=f-c;if(u=e-a,p||!(u>0)){if(u/=p,p<0){if(u<l)return;u<h&&(h=u)}else if(p>0){if(u>h)return;u>l&&(l=u)}if(u=i-a,p||!(u<0)){if(u/=p,p<0){if(u>h)return;u>l&&(l=u)}else if(p>0){if(u<l)return;u<h&&(h=u)}if(u=r-c,d||!(u>0)){if(u/=d,d<0){if(u<l)return;u<h&&(h=u)}else if(d>0){if(u>h)return;u>l&&(l=u)}if(u=o-c,d||!(u<0)){if(u/=d,d<0){if(u>h)return;u>l&&(l=u)}else if(d>0){if(u<l)return;u<h&&(h=u)}return l>0&&(t[0]=a+l*p,t[1]=c+l*d),h<1&&(n[0]=a+h*p,n[1]=c+h*d),!0}}}}},cg=function(t,n){return b_(t[0]-n[0])<d_&&b_(t[1]-n[1])<d_},sg=function(t,n,e,r,i){var o,u,a=[],c=[];if(t.forEach(function(t){if(!((n=t.length-1)<=0)){var n,e,r=t[0],u=t[n];if(cg(r,u)){for(i.lineStart(),o=0;o<n;++o)i.point((r=t[o])[0],r[1]);return void i.lineEnd()}a.push(e=new ai(r,t,null,!0)),c.push(e.o=new ai(r,null,e,!1)),a.push(e=new ai(u,t,null,!1)),c.push(e.o=new ai(u,null,e,!0))}}),a.length){for(c.sort(n),ci(a),ci(c),o=0,u=c.length;o<u;++o)c[o].e=e=!e;for(var s,f,l=a[0];;){for(var h=l,p=!0;h.v;)if((h=h.n)===l)return;s=h.z,i.lineStart();do{if(h.v=h.o.v=!0,h.e){if(p)for(o=0,u=s.length;o<u;++o)i.point((f=s[o])[0],f[1]);else r(h.x,h.n.x,1,i);h=h.n}else{if(p)for(s=h.p.z,o=s.length-1;o>=0;--o)i.point((f=s[o])[0],f[1]);else r(h.x,h.p.x,-1,i);h=h.p}h=h.o,s=h.z,p=!p}while(!h.v);i.lineEnd()}}},fg=1e9,lg=-fg,hg=function(){var t,n,e,r=0,i=0,o=960,u=500;return e={stream:function(e){return t&&n===e?t:t=si(r,i,o,u)(n=e)},extent:function(a){return arguments.length?(r=+a[0][0],i=+a[0][1],o=+a[1][0],u=+a[1][1],t=n=null,e):[[r,i],[o,u]]}}},pg=qv(),dg=function(t,n){var e=n[0],r=n[1],i=[A_(e),-T_(e),0],o=0,u=0;pg.reset();for(var a=0,c=t.length;a<c;++a)if(f=(s=t[a]).length)for(var s,f,l=s[f-1],h=l[0],p=l[1]/2+g_,d=A_(p),v=T_(p),_=0;_<f;++_,h=y,d=x,v=b,l=g){var g=s[_],y=g[0],m=g[1]/2+g_,x=A_(m),b=T_(m),w=y-h,M=w>=0?1:-1,T=M*w,k=T>v_,S=d*x;if(pg.add(M_(S*M*A_(T),v*b+S*T_(T))),o+=k?w+M*y_:w,k^h>=e^y>=e){var N=Cr(Er(l),Er(g));Lr(N);var E=Cr(i,N);Lr(E);var A=(k^w>=0?-1:1)*gr(E[2]);(r>A||r===A&&(N[0]||N[1]))&&(u+=k^w>=0?1:-1)}}return(o<-d_||o<d_&&pg<-d_)^1&u},vg=qv(),_g={sphere:mr,point:mr,lineStart:fi,lineEnd:mr,polygonStart:mr,polygonEnd:mr},gg=function(t){return vg.reset(),q_(t,_g),+vg},yg=[null,null],mg={type:"LineString",coordinates:yg},xg=function(t,n){return yg[0]=t,yg[1]=n,gg(mg)},bg={Feature:function(t,n){return di(t.geometry,n)},FeatureCollection:function(t,n){for(var e=t.features,r=-1,i=e.length;++r<i;)if(di(e[r].geometry,n))return!0;return!1}},wg={Sphere:function(){return!0},Point:function(t,n){return vi(t.coordinates,n)},MultiPoint:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(vi(e[r],n))return!0;return!1},LineString:function(t,n){return _i(t.coordinates,n)},MultiLineString:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(_i(e[r],n))return!0;return!1},Polygon:function(t,n){return gi(t.coordinates,n)},MultiPolygon:function(t,n){for(var e=t.coordinates,r=-1,i=e.length;++r<i;)if(gi(e[r],n))return!0;return!1},GeometryCollection:function(t,n){for(var e=t.geometries,r=-1,i=e.length;++r<i;)if(di(e[r],n))return!0;return!1}},Mg=function(t,n){return(t&&bg.hasOwnProperty(t.type)?bg[t.type]:di)(t,n)},Tg=function(t,n){var e=t[0]*x_,r=t[1]*x_,i=n[0]*x_,o=n[1]*x_,u=T_(r),a=A_(r),c=T_(o),s=A_(o),f=u*T_(e),l=u*A_(e),h=c*T_(i),p=c*A_(i),d=2*gr(z_(yr(o-r)+u*c*yr(i-e))),v=A_(d),_=d?function(t){var n=A_(t*=d)/v,e=A_(d-t)/v,r=e*f+n*h,i=e*l+n*p,o=e*a+n*s;return[M_(i,r)*m_,M_(o,z_(r*r+i*i))*m_]}:function(){return[e*m_,r*m_]};return _.distance=d,_},kg=function(t){return t},Sg=qv(),Ng=qv(),Eg={point:mr,lineStart:mr,lineEnd:mr,polygonStart:function(){Eg.lineStart=Ti,Eg.lineEnd=Ni},polygonEnd:function(){Eg.lineStart=Eg.lineEnd=Eg.point=mr,Sg.add(b_(Ng)),Ng.reset()},result:function(){var t=Sg/2;return Sg.reset(),t}},Ag=1/0,Cg=Ag,zg=-Ag,Pg=zg,Lg={point:Ei,lineStart:mr,lineEnd:mr,polygonStart:mr,polygonEnd:mr,result:function(){var t=[[Ag,Cg],[zg,Pg]];return zg=Pg=-(Cg=Ag=1/0),t}},Rg=0,qg=0,Ug=0,Dg=0,Og=0,Fg=0,Ig=0,Yg=0,Bg=0,jg={point:Ai,lineStart:Ci,lineEnd:Li,polygonStart:function(){jg.lineStart=Ri,jg.lineEnd=qi},polygonEnd:function(){jg.point=Ai,jg.lineStart=Ci,jg.lineEnd=Li},result:function(){var t=Bg?[Ig/Bg,Yg/Bg]:Fg?[Dg/Fg,Og/Fg]:Ug?[Rg/Ug,qg/Ug]:[NaN,NaN];return Rg=qg=Ug=Dg=Og=Fg=Ig=Yg=Bg=0,t}};Oi.prototype={_radius:4.5,pointRadius:function(t){return this._radius=t,this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._context.closePath(),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._context.moveTo(t,n),this._point=1;break;case 1:this._context.lineTo(t,n);break;default:this._context.moveTo(t+this._radius,n),this._context.arc(t,n,this._radius,0,y_)}},result:mr};var Hg,Xg,Vg,$g,Wg,Zg=qv(),Gg={point:mr,lineStart:function(){Gg.point=Fi},lineEnd:function(){Hg&&Ii(Xg,Vg),Gg.point=mr},polygonStart:function(){Hg=!0},polygonEnd:function(){Hg=null},result:function(){var t=+Zg;return Zg.reset(),t}};Yi.prototype={_circle:Bi(4.5),pointRadius:function(t){return this._circle=Bi(t),this},polygonStart:function(){this._line=0},polygonEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){0===this._line&&this._string.push("Z"),this._point=NaN},point:function(t,n){switch(this._point){case 0:this._string.push("M",t,",",n),this._point=1;break;case 1:this._string.push("L",t,",",n);break;default:this._string.push("M",t,",",n,this._circle)}},result:function(){if(this._string.length){var t=this._string.join("");return this._string=[],t}}};var Jg=function(t,n){function e(t){return t&&("function"==typeof o&&i.pointRadius(+o.apply(this,arguments)),q_(t,r(i))),i.result()}var r,i,o=4.5;return e.area=function(t){return q_(t,r(Eg)),Eg.result()},e.measure=function(t){return q_(t,r(Gg)),Gg.result()},e.bounds=function(t){return q_(t,r(Lg)),Lg.result()},e.centroid=function(t){return q_(t,r(jg)),jg.result()},e.projection=function(n){return arguments.length?(r=null==n?(t=null,kg):(t=n).stream,e):t},e.context=function(t){return arguments.length?(i=null==t?(n=null,new Yi):new Oi(n=t),"function"!=typeof o&&i.pointRadius(o),e):n},e.pointRadius=function(t){return arguments.length?(o="function"==typeof t?t:(i.pointRadius(+t),+t),e):o},e.projection(t).context(n)},Qg=function(t,n,e,r){return function(i,o){function u(n,e){var r=i(n,e);t(n=r[0],e=r[1])&&o.point(n,e)}function a(t,n){var e=i(t,n);_.point(e[0],e[1])}function c(){b.point=a,_.lineStart()}function s(){b.point=u,_.lineEnd()}function f(t,n){v.push([t,n]);var e=i(t,n);m.point(e[0],e[1])}function l(){m.lineStart(),v=[]}function h(){f(v[0][0],v[0][1]),m.lineEnd();var t,n,e,r,i=m.clean(),u=y.result(),a=u.length;if(v.pop(),p.push(v),v=null,a)if(1&i){if(e=u[0],(n=e.length-1)>0){for(x||(o.polygonStart(),x=!0),o.lineStart(),t=0;t<n;++t)o.point((r=e[t])[0],r[1]);o.lineEnd()}}else a>1&&2&i&&u.push(u.pop().concat(u.shift())),d.push(u.filter(ji))}var p,d,v,_=n(o),g=i.invert(r[0],r[1]),y=ug(),m=n(y),x=!1,b={point:u,lineStart:c,lineEnd:s,polygonStart:function(){b.point=f,b.lineStart=l,b.lineEnd=h,d=[],p=[]},polygonEnd:function(){b.point=u,b.lineStart=c,b.lineEnd=s,d=ff(d);var t=dg(p,g);d.length?(x||(o.polygonStart(),x=!0),sg(d,Hi,t,e,o)):t&&(x||(o.polygonStart(),x=!0),o.lineStart(),e(null,null,1,o),o.lineEnd()),x&&(o.polygonEnd(),x=!1),d=p=null},sphere:function(){o.polygonStart(),o.lineStart(),e(null,null,1,o),o.lineEnd(),o.polygonEnd()}};return b}},Kg=Qg(function(){return!0},Xi,$i,[-v_,-__]),ty=function(t,n){function e(e,r,i,o){oi(o,t,n,i,e,r)}function r(t,n){return T_(t)*T_(n)>a}function i(t){var n,e,i,a,f;return{lineStart:function(){a=i=!1,f=1},point:function(l,h){var p,d=[l,h],v=r(l,h),_=c?v?0:u(l,h):v?u(l+(l<0?v_:-v_),h):0;if(!n&&(a=i=v)&&t.lineStart(),v!==i&&(p=o(n,d),(cg(n,p)||cg(d,p))&&(d[0]+=d_,d[1]+=d_,v=r(d[0],d[1]))),v!==i)f=0,v?(t.lineStart(),p=o(d,n),t.point(p[0],p[1])):(p=o(n,d),t.point(p[0],p[1]),t.lineEnd()),n=p;else if(s&&n&&c^v){var g;_&e||!(g=o(d,n,!0))||(f=0,c?(t.lineStart(),t.point(g[0][0],g[0][1]),t.point(g[1][0],g[1][1]),t.lineEnd()):(t.point(g[1][0],g[1][1]),t.lineEnd(),t.lineStart(),t.point(g[0][0],g[0][1])))}!v||n&&cg(n,d)||t.point(d[0],d[1]),n=d,i=v,e=_},lineEnd:function(){i&&t.lineEnd(),n=null},clean:function(){return f|(a&&i)<<1}}}function o(t,n,e){var r=Er(t),i=Er(n),o=[1,0,0],u=Cr(r,i),c=Ar(u,u),s=u[0],f=c-s*s;if(!f)return!e&&t;var l=a*c/f,h=-a*s/f,p=Cr(o,u),d=Pr(o,l);zr(d,Pr(u,h));var v=p,_=Ar(d,v),g=Ar(v,v),y=_*_-g*(Ar(d,d)-1);if(!(y<0)){var m=z_(y),x=Pr(v,(-_-m)/g);if(zr(x,d),x=Nr(x),!e)return x;var b,w=t[0],M=n[0],T=t[1],k=n[1];M<w&&(b=w,w=M,M=b);var S=M-w,N=b_(S-v_)<d_,E=N||S<d_;if(!N&&k<T&&(b=T,T=k,k=b),E?N?T+k>0^x[1]<(b_(x[0]-w)<d_?T:k):T<=x[1]&&x[1]<=k:S>v_^(w<=x[0]&&x[0]<=M)){var A=Pr(v,(-_+m)/g);return zr(A,d),[x,Nr(A)]}}}function u(n,e){var r=c?t:v_-t,i=0;return n<-r?i|=1:n>r&&(i|=2),e<-r?i|=4:e>r&&(i|=8),i}var a=T_(t),c=a>0,s=b_(a)>d_;return Qg(r,i,e,c?[0,-t]:[-v_,t-v_])},ny=function(t){return{stream:Wi(t)}};Zi.prototype={constructor:Zi,point:function(t,n){this.stream.point(t,n)},sphere:function(){this.stream.sphere()},lineStart:function(){this.stream.lineStart()},lineEnd:function(){this.stream.lineEnd()},polygonStart:function(){this.stream.polygonStart()},polygonEnd:function(){this.stream.polygonEnd()}};var ey=16,ry=T_(30*x_),iy=function(t,n){return+n?Ki(t,n):Qi(t)},oy=Wi({point:function(t,n){this.stream.point(t*x_,n*x_)}}),uy=function(){return eo(io).scale(155.424).center([0,33.6442])},ay=function(){return uy().parallels([29.5,45.5]).scale(1070).translate([480,250]).rotate([96,0]).center([-.6,38.7])},cy=function(){function t(t){var n=t[0],e=t[1];return a=null,i.point(n,e),a||(o.point(n,e),a)||(u.point(n,e),a)}function n(){return e=r=null,t}var e,r,i,o,u,a,c=ay(),s=uy().rotate([154,0]).center([-2,58.5]).parallels([55,65]),f=uy().rotate([157,0]).center([-3,19.9]).parallels([8,18]),l={point:function(t,n){a=[t,n]}};return t.invert=function(t){var n=c.scale(),e=c.translate(),r=(t[0]-e[0])/n,i=(t[1]-e[1])/n;return(i>=.12&&i<.234&&r>=-.425&&r<-.214?s:i>=.166&&i<.234&&r>=-.214&&r<-.115?f:c).invert(t)},t.stream=function(t){return e&&r===t?e:e=oo([c.stream(r=t),s.stream(t),f.stream(t)])},t.precision=function(t){return arguments.length?(c.precision(t),s.precision(t),f.precision(t),n()):c.precision()},t.scale=function(n){return arguments.length?(c.scale(n),s.scale(.35*n),f.scale(n),t.translate(c.translate())):c.scale()},t.translate=function(t){if(!arguments.length)return c.translate();var e=c.scale(),r=+t[0],a=+t[1];return i=c.translate(t).clipExtent([[r-.455*e,a-.238*e],[r+.455*e,a+.238*e]]).stream(l),o=s.translate([r-.307*e,a+.201*e]).clipExtent([[r-.425*e+d_,a+.12*e+d_],[r-.214*e-d_,a+.234*e-d_]]).stream(l),u=f.translate([r-.205*e,a+.212*e]).clipExtent([[r-.214*e+d_,a+.166*e+d_],[r-.115*e-d_,a+.234*e-d_]]).stream(l),n()},t.fitExtent=function(n,e){return Gi(t,n,e)},t.fitSize=function(n,e){return Ji(t,n,e)},t.scale(1070)},sy=uo(function(t){return z_(2/(1+t))});sy.invert=ao(function(t){return 2*gr(t/2)});var fy=function(){return to(sy).scale(124.75).clipAngle(179.999)},ly=uo(function(t){return(t=_r(t))&&t/A_(t)});ly.invert=ao(function(t){return t});var hy=function(){return to(ly).scale(79.4188).clipAngle(179.999)};co.invert=function(t,n){return[t,2*w_(S_(n))-__]};var py=function(){return so(co).scale(961/y_)},dy=function(){return eo(lo).scale(109.5).parallels([30,30])};ho.invert=ho;var vy=function(){return to(ho).scale(152.63)},_y=function(){return eo(po).scale(131.154).center([0,13.9389])};vo.invert=ao(w_);var gy=function(){return to(vo).scale(144.049).clipAngle(60)},yy=function(){function t(){return i=o=null,u}var n,e,r,i,o,u,a=1,c=0,s=0,f=1,l=1,h=kg,p=null,d=kg;return u={stream:function(t){return i&&o===t?i:i=h(d(o=t))},clipExtent:function(i){return arguments.length?(d=null==i?(p=n=e=r=null,kg):si(p=+i[0][0],n=+i[0][1],e=+i[1][0],r=+i[1][1]),t()):null==p?null:[[p,n],[e,r]]},scale:function(n){return arguments.length?(h=_o((a=+n)*f,a*l,c,s),t()):a},translate:function(n){return arguments.length?(h=_o(a*f,a*l,c=+n[0],s=+n[1]),t()):[c,s]},reflectX:function(n){return arguments.length?(h=_o(a*(f=n?-1:1),a*l,c,s),t()):f<0},reflectY:function(n){return arguments.length?(h=_o(a*f,a*(l=n?-1:1),c,s),t()):l<0},fitExtent:function(t,n){return Gi(u,t,n)},fitSize:function(t,n){return Ji(u,t,n)}}};go.invert=ao(gr);var my=function(){return to(go).scale(249.5).clipAngle(90+d_)};yo.invert=ao(function(t){return 2*w_(t)});var xy=function(){return to(yo).scale(250).clipAngle(142)};mo.invert=function(t,n){return[-n,2*w_(S_(t))-__]};var by=function(){var t=so(mo),n=t.center,e=t.rotate;return t.center=function(t){return arguments.length?n([-t[1],t[0]]):(t=n(),[t[1],-t[0]])},t.rotate=function(t){return arguments.length?e([t[0],t[1],t.length>2?t[2]+90:90]):(t=e(),[t[0],t[1],t[2]-90])},e([0,0,90]).scale(159.155)},wy=function(){function t(t){var o,u=0;t.eachAfter(function(t){var e=t.children;e?(t.x=bo(e),t.y=Mo(e)):(t.x=o?u+=n(t,o):0,t.y=0,o=t)});var a=ko(t),c=So(t),s=a.x-n(a,c)/2,f=c.x+n(c,a)/2;return t.eachAfter(i?function(n){n.x=(n.x-t.x)*e,n.y=(t.y-n.y)*r}:function(n){n.x=(n.x-s)/(f-s)*e,n.y=(1-(t.y?n.y/t.y:1))*r})}var n=xo,e=1,r=1,i=!1;return t.separation=function(e){return arguments.length?(n=e,t):n},t.size=function(n){return arguments.length?(i=!1,e=+n[0],r=+n[1],t):i?null:[e,r]},t.nodeSize=function(n){return arguments.length?(i=!0,e=+n[0],r=+n[1],t):i?[e,r]:null},t},My=function(){return this.eachAfter(No)},Ty=function(t){var n,e,r,i,o=this,u=[o];do{for(n=u.reverse(),u=[];o=n.pop();)if(t(o),e=o.children)for(r=0,i=e.length;r<i;++r)u.push(e[r])}while(u.length);return this},ky=function(t){for(var n,e,r=this,i=[r];r=i.pop();)if(t(r),n=r.children)for(e=n.length-1;e>=0;--e)i.push(n[e]);return this},Sy=function(t){for(var n,e,r,i=this,o=[i],u=[];i=o.pop();)if(u.push(i),n=i.children)for(e=0,r=n.length;e<r;++e)o.push(n[e]);for(;i=u.pop();)t(i);return this},Ny=function(t){return this.eachAfter(function(n){for(var e=+t(n.data)||0,r=n.children,i=r&&r.length;--i>=0;)e+=r[i].value;n.value=e})},Ey=function(t){return this.eachBefore(function(n){n.children&&n.children.sort(t)})},Ay=function(t){for(var n=this,e=Eo(n,t),r=[n];n!==e;)n=n.parent,r.push(n);for(var i=r.length;t!==e;)r.splice(i,0,t),t=t.parent;return r},Cy=function(){for(var t=this,n=[t];t=t.parent;)n.push(t);return n},zy=function(){var t=[];return this.each(function(n){t.push(n)}),t},Py=function(){var t=[];return this.eachBefore(function(n){n.children||t.push(n)}),t},Ly=function(){var t=this,n=[];return t.each(function(e){e!==t&&n.push({source:e.parent,target:e})}),n};Ro.prototype=Ao.prototype={constructor:Ro,count:My,each:Ty,eachAfter:Sy,eachBefore:ky,sum:Ny,sort:Ey,path:Ay,ancestors:Cy,descendants:zy,leaves:Py,links:Ly,copy:Co};var Ry=function(t){for(var n=(t=t.slice()).length,e=null,r=e;n;){var i=new qo(t[n-1]);r=r?r.next=i:e=i,t[void 0]=t[--n]}return{head:e,tail:r}},qy=function(t){return Do(Ry(t),[])},Uy=function(t){return Xo(t),t},Dy=function(t){return function(){return t}},Oy=function(){function t(t){return t.x=e/2,t.y=r/2,n?t.eachBefore(Go(n)).eachAfter(Jo(i,.5)).eachBefore(Qo(1)):t.eachBefore(Go(Zo)).eachAfter(Jo(Wo,1)).eachAfter(Jo(i,t.r/Math.min(e,r))).eachBefore(Qo(Math.min(e,r)/(2*t.r))),t}var n=null,e=1,r=1,i=Wo;return t.radius=function(e){return arguments.length?(n=Vo(e),t):n},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i="function"==typeof n?n:Dy(+n),t):i},t},Fy=function(t){t.x0=Math.round(t.x0),t.y0=Math.round(t.y0),t.x1=Math.round(t.x1),t.y1=Math.round(t.y1)},Iy=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(r-n)/t.value;++a<c;)o=u[a],o.y0=e,o.y1=i,o.x0=n,o.x1=n+=o.value*s},Yy=function(){function t(t){var u=t.height+1;return t.x0=t.y0=i,t.x1=e,t.y1=r/u,t.eachBefore(n(r,u)),o&&t.eachBefore(Fy),t}function n(t,n){return function(e){e.children&&Iy(e,e.x0,t*(e.depth+1)/n,e.x1,t*(e.depth+2)/n);var r=e.x0,o=e.y0,u=e.x1-i,a=e.y1-i;u<r&&(r=u=(r+u)/2),a<o&&(o=a=(o+a)/2),e.x0=r,e.y0=o,e.x1=u,e.y1=a}}var e=1,r=1,i=0,o=!1;return t.round=function(n){return arguments.length?(o=!!n,t):o},t.size=function(n){return arguments.length?(e=+n[0],r=+n[1],t):[e,r]},t.padding=function(n){return arguments.length?(i=+n,t):i},t},By="$",jy={depth:-1},Hy={},Xy=function(){function t(t){var r,i,o,u,a,c,s,f=t.length,l=new Array(f),h={};for(i=0;i<f;++i)r=t[i],a=l[i]=new Ro(r),null!=(c=n(r,i,t))&&(c+="")&&(s=By+(a.id=c),h[s]=s in h?Hy:a);for(i=0;i<f;++i)if(a=l[i],null!=(c=e(t[i],i,t))&&(c+="")){if(!(u=h[By+c]))throw new Error("missing: "+c);if(u===Hy)throw new Error("ambiguous: "+c);u.children?u.children.push(a):u.children=[a],a.parent=u}else{if(o)throw new Error("multiple roots");o=a}if(!o)throw new Error("no root");if(o.parent=jy,o.eachBefore(function(t){t.depth=t.parent.depth+1,--f}).eachBefore(Lo),o.parent=null,f>0)throw new Error("cycle");return o}var n=Ko,e=tu;return t.id=function(e){
return arguments.length?(n=$o(e),t):n},t.parentId=function(n){return arguments.length?(e=$o(n),t):e},t};au.prototype=Object.create(Ro.prototype);var Vy=function(){function t(t){var r=cu(t);if(r.eachAfter(n),r.parent.m=-r.z,r.eachBefore(e),c)t.eachBefore(i);else{var s=t,f=t,l=t;t.eachBefore(function(t){t.x<s.x&&(s=t),t.x>f.x&&(f=t),t.depth>l.depth&&(l=t)});var h=s===f?1:o(s,f)/2,p=h-s.x,d=u/(f.x+h+p),v=a/(l.depth||1);t.eachBefore(function(t){t.x=(t.x+p)*d,t.y=t.depth*v})}return t}function n(t){var n=t.children,e=t.parent.children,i=t.i?e[t.i-1]:null;if(n){ou(t);var u=(n[0].z+n[n.length-1].z)/2;i?(t.z=i.z+o(t._,i._),t.m=t.z-u):t.z=u}else i&&(t.z=i.z+o(t._,i._));t.parent.A=r(t,i,t.parent.A||e[0])}function e(t){t._.x=t.z+t.parent.m,t.m+=t.parent.m}function r(t,n,e){if(n){for(var r,i=t,u=t,a=n,c=i.parent.children[0],s=i.m,f=u.m,l=a.m,h=c.m;a=ru(a),i=eu(i),a&&i;)c=eu(c),u=ru(u),u.a=t,r=a.z+l-i.z-s+o(a._,i._),r>0&&(iu(uu(a,t,e),t,r),s+=r,f+=r),l+=a.m,s+=i.m,h+=c.m,f+=u.m;a&&!ru(u)&&(u.t=a,u.m+=l-f),i&&!eu(c)&&(c.t=i,c.m+=s-h,e=t)}return e}function i(t){t.x*=u,t.y=t.depth*a}var o=nu,u=1,a=1,c=null;return t.separation=function(n){return arguments.length?(o=n,t):o},t.size=function(n){return arguments.length?(c=!1,u=+n[0],a=+n[1],t):c?null:[u,a]},t.nodeSize=function(n){return arguments.length?(c=!0,u=+n[0],a=+n[1],t):c?[u,a]:null},t},$y=function(t,n,e,r,i){for(var o,u=t.children,a=-1,c=u.length,s=t.value&&(i-e)/t.value;++a<c;)o=u[a],o.x0=n,o.x1=r,o.y0=e,o.y1=e+=o.value*s},Wy=(1+Math.sqrt(5))/2,Zy=function t(n){function e(t,e,r,i,o){su(n,t,e,r,i,o)}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(Wy),Gy=function(){function t(t){return t.x0=t.y0=0,t.x1=i,t.y1=o,t.eachBefore(n),u=[0],r&&t.eachBefore(Fy),t}function n(t){var n=u[t.depth],r=t.x0+n,i=t.y0+n,o=t.x1-n,h=t.y1-n;o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),t.x0=r,t.y0=i,t.x1=o,t.y1=h,t.children&&(n=u[t.depth+1]=a(t)/2,r+=l(t)-n,i+=c(t)-n,o-=s(t)-n,h-=f(t)-n,o<r&&(r=o=(r+o)/2),h<i&&(i=h=(i+h)/2),e(t,r,i,o,h))}var e=Zy,r=!1,i=1,o=1,u=[0],a=Wo,c=Wo,s=Wo,f=Wo,l=Wo;return t.round=function(n){return arguments.length?(r=!!n,t):r},t.size=function(n){return arguments.length?(i=+n[0],o=+n[1],t):[i,o]},t.tile=function(n){return arguments.length?(e=$o(n),t):e},t.padding=function(n){return arguments.length?t.paddingInner(n).paddingOuter(n):t.paddingInner()},t.paddingInner=function(n){return arguments.length?(a="function"==typeof n?n:Dy(+n),t):a},t.paddingOuter=function(n){return arguments.length?t.paddingTop(n).paddingRight(n).paddingBottom(n).paddingLeft(n):t.paddingTop()},t.paddingTop=function(n){return arguments.length?(c="function"==typeof n?n:Dy(+n),t):c},t.paddingRight=function(n){return arguments.length?(s="function"==typeof n?n:Dy(+n),t):s},t.paddingBottom=function(n){return arguments.length?(f="function"==typeof n?n:Dy(+n),t):f},t.paddingLeft=function(n){return arguments.length?(l="function"==typeof n?n:Dy(+n),t):l},t},Jy=function(t,n,e,r,i){function o(t,n,e,r,i,u,a){if(t>=n-1){var s=c[t];return s.x0=r,s.y0=i,s.x1=u,s.y1=a,void 0}for(var l=f[t],h=e/2+l,p=t+1,d=n-1;p<d;){var v=p+d>>>1;f[v]<h?p=v+1:d=v}h-f[p-1]<f[p]-h&&t+1<p&&--p;var _=f[p]-l,g=e-_;if(u-r>a-i){var y=(r*g+u*_)/e;o(t,p,_,r,i,y,a),o(p,n,g,y,i,u,a)}else{var m=(i*g+a*_)/e;o(t,p,_,r,i,u,m),o(p,n,g,r,m,u,a)}}var u,a,c=t.children,s=c.length,f=new Array(s+1);for(f[0]=a=u=0;u<s;++u)f[u+1]=a+=c[u].value;o(0,s,t.value,n,e,r,i)},Qy=function(t,n,e,r,i){(1&t.depth?$y:Iy)(t,n,e,r,i)},Ky=function t(n){function e(t,e,r,i,o){if((u=t._squarify)&&u.ratio===n)for(var u,a,c,s,f,l=-1,h=u.length,p=t.value;++l<h;){for(a=u[l],c=a.children,s=a.value=0,f=c.length;s<f;++s)a.value+=c[s].value;a.dice?Iy(a,e,r,i,r+=(o-r)*a.value/p):$y(a,e,r,e+=(i-e)*a.value/p,o),p-=a.value}else t._squarify=u=su(n,t,e,r,i,o),u.ratio=n}return e.ratio=function(n){return t((n=+n)>1?n:1)},e}(Wy),tm=function(t){for(var n,e=-1,r=t.length,i=t[r-1],o=0;++e<r;)n=i,i=t[e],o+=n[1]*i[0]-n[0]*i[1];return o/2},nm=function(t){for(var n,e,r=-1,i=t.length,o=0,u=0,a=t[i-1],c=0;++r<i;)n=a,a=t[r],c+=e=n[0]*a[1]-a[0]*n[1],o+=(n[0]+a[0])*e,u+=(n[1]+a[1])*e;return c*=3,[o/c,u/c]},em=function(t,n,e){return(n[0]-t[0])*(e[1]-t[1])-(n[1]-t[1])*(e[0]-t[0])},rm=function(t){if((e=t.length)<3)return null;var n,e,r=new Array(e),i=new Array(e);for(n=0;n<e;++n)r[n]=[+t[n][0],+t[n][1],n];for(r.sort(fu),n=0;n<e;++n)i[n]=[r[n][0],-r[n][1]];var o=lu(r),u=lu(i),a=u[0]===o[0],c=u[u.length-1]===o[o.length-1],s=[];for(n=o.length-1;n>=0;--n)s.push(t[r[o[n]][2]]);for(n=+a;n<u.length-c;++n)s.push(t[r[u[n]][2]]);return s},im=function(t,n){for(var e,r,i=t.length,o=t[i-1],u=n[0],a=n[1],c=o[0],s=o[1],f=!1,l=0;l<i;++l)o=t[l],e=o[0],r=o[1],r>a!=s>a&&u<(c-e)*(a-r)/(s-r)+e&&(f=!f),c=e,s=r;return f},om=function(t){for(var n,e,r=-1,i=t.length,o=t[i-1],u=o[0],a=o[1],c=0;++r<i;)n=u,e=a,o=t[r],u=o[0],a=o[1],n-=u,e-=a,c+=Math.sqrt(n*n+e*e);return c},um=[].slice,am={};hu.prototype=yu.prototype={constructor:hu,defer:function(t){if("function"!=typeof t||this._call)throw new Error;if(null!=this._error)return this;var n=um.call(arguments,1);return n.push(t),++this._waiting,this._tasks.push(n),pu(this),this},abort:function(){return null==this._error&&_u(this,new Error("abort")),this},await:function(t){if("function"!=typeof t||this._call)throw new Error;return this._call=function(n,e){t.apply(null,[n].concat(e))},gu(this),this},awaitAll:function(t){if("function"!=typeof t||this._call)throw new Error;return this._call=t,gu(this),this}};var cm=function(t,n){return t=null==t?0:+t,n=null==n?1:+n,1===arguments.length?(n=t,t=0):n-=t,function(){return Math.random()*n+t}},sm=function(t,n){var e,r;return t=null==t?0:+t,n=null==n?1:+n,function(){var i;if(null!=e)i=e,e=null;else do{e=2*Math.random()-1,i=2*Math.random()-1,r=e*e+i*i}while(!r||r>1);return t+n*i*Math.sqrt(-2*Math.log(r)/r)}},fm=function(){var t=sm.apply(this,arguments);return function(){return Math.exp(t())}},lm=function(t){return function(){for(var n=0,e=0;e<t;++e)n+=Math.random();return n}},hm=function(t){var n=lm(t);return function(){return n()/t}},pm=function(t){return function(){return-Math.log(1-Math.random())/t}},dm=function(t,n){function e(t){var n,e=s.status;if(!e&&xu(s)||e>=200&&e<300||304===e){if(o)try{n=o.call(r,s)}catch(t){return void a.call("error",r,t)}else n=s;a.call("load",r,n)}else a.call("error",r,t)}var r,i,o,u,a=d("beforesend","progress","load","error"),c=Ye(),s=new XMLHttpRequest,f=null,l=null,h=0;if("undefined"==typeof XDomainRequest||"withCredentials"in s||!/^(http(s)?:)?\/\//.test(t)||(s=new XDomainRequest),"onload"in s?s.onload=s.onerror=s.ontimeout=e:s.onreadystatechange=function(t){s.readyState>3&&e(t)},s.onprogress=function(t){a.call("progress",r,t)},r={header:function(t,n){return t=(t+"").toLowerCase(),arguments.length<2?c.get(t):(null==n?c.remove(t):c.set(t,n+""),r)},mimeType:function(t){return arguments.length?(i=null==t?null:t+"",r):i},responseType:function(t){return arguments.length?(u=t,r):u},timeout:function(t){return arguments.length?(h=+t,r):h},user:function(t){return arguments.length<1?f:(f=null==t?null:t+"",r)},password:function(t){return arguments.length<1?l:(l=null==t?null:t+"",r)},response:function(t){return o=t,r},get:function(t,n){return r.send("GET",t,n)},post:function(t,n){return r.send("POST",t,n)},send:function(n,e,o){return s.open(n,t,!0,f,l),null==i||c.has("accept")||c.set("accept",i+",*/*"),s.setRequestHeader&&c.each(function(t,n){s.setRequestHeader(n,t)}),null!=i&&s.overrideMimeType&&s.overrideMimeType(i),null!=u&&(s.responseType=u),h>0&&(s.timeout=h),null==o&&"function"==typeof e&&(o=e,e=null),null!=o&&1===o.length&&(o=mu(o)),null!=o&&r.on("error",o).on("load",function(t){o(null,t)}),a.call("beforesend",r,s),s.send(null==e?null:e),r},abort:function(){return s.abort(),r},on:function(){var t=a.on.apply(a,arguments);return t===a?r:t}},null!=n){if("function"!=typeof n)throw new Error("invalid callback: "+n);return r.get(n)}return r},vm=function(t,n){return function(e,r){var i=dm(e).mimeType(t).response(n);if(null!=r){if("function"!=typeof r)throw new Error("invalid callback: "+r);return i.get(r)}return i}},_m=vm("text/html",function(t){return document.createRange().createContextualFragment(t.responseText)}),gm=vm("application/json",function(t){return JSON.parse(t.responseText)}),ym=vm("text/plain",function(t){return t.responseText}),mm=vm("application/xml",function(t){var n=t.responseXML;if(!n)throw new Error("parse error");return n}),xm=function(t,n){return function(e,r,i){arguments.length<3&&(i=r,r=null);var o=dm(e).mimeType(t);return o.row=function(t){return arguments.length?o.response(bu(n,r=t)):r},o.row(r),i?o.get(i):o}},bm=xm("text/csv",Od),wm=xm("text/tab-separated-values",jd),Mm=Array.prototype,Tm=Mm.map,km=Mm.slice,Sm={name:"implicit"},Nm=function(t){return function(){return t}},Em=function(t){return+t},Am=[0,1],Cm=function(n,e,i){var o,u=n[0],a=n[n.length-1],c=r(u,a,null==e?10:e);switch(i=lr(null==i?",f":i),i.type){case"s":var s=Math.max(Math.abs(u),Math.abs(a));return null!=i.precision||isNaN(o=Lv(c,s))||(i.precision=o),t.formatPrefix(i,s);case"":case"e":case"g":case"p":case"r":null!=i.precision||isNaN(o=Rv(c,Math.max(Math.abs(u),Math.abs(a))))||(i.precision=o-("e"===i.type));break;case"f":case"%":null!=i.precision||isNaN(o=Pv(c))||(i.precision=o-2*("%"===i.type))}return t.format(i)},zm=function(t,n){t=t.slice();var e,r=0,i=t.length-1,o=t[r],u=t[i];return u<o&&(e=r,r=i,i=e,e=o,o=u,u=e),t[r]=n.floor(o),t[i]=n.ceil(u),t},Pm=new Date,Lm=new Date,Rm=Zu(function(){},function(t,n){t.setTime(+t+n)},function(t,n){return n-t});Rm.every=function(t){return t=Math.floor(t),isFinite(t)&&t>0?t>1?Zu(function(n){n.setTime(Math.floor(n/t)*t)},function(n,e){n.setTime(+n+e*t)},function(n,e){return(e-n)/t}):Rm:null};var qm=Rm.range,Um=6e4,Dm=6048e5,Om=Zu(function(t){t.setTime(1e3*Math.floor(t/1e3))},function(t,n){t.setTime(+t+1e3*n)},function(t,n){return(n-t)/1e3},function(t){return t.getUTCSeconds()}),Fm=Om.range,Im=Zu(function(t){t.setTime(Math.floor(t/Um)*Um)},function(t,n){t.setTime(+t+n*Um)},function(t,n){return(n-t)/Um},function(t){return t.getMinutes()}),Ym=Im.range,Bm=Zu(function(t){var n=t.getTimezoneOffset()*Um%36e5;n<0&&(n+=36e5),t.setTime(36e5*Math.floor((+t-n)/36e5)+n)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getHours()}),jm=Bm.range,Hm=Zu(function(t){t.setHours(0,0,0,0)},function(t,n){t.setDate(t.getDate()+n)},function(t,n){return(n-t-(n.getTimezoneOffset()-t.getTimezoneOffset())*Um)/864e5},function(t){return t.getDate()-1}),Xm=Hm.range,Vm=Gu(0),$m=Gu(1),Wm=Gu(2),Zm=Gu(3),Gm=Gu(4),Jm=Gu(5),Qm=Gu(6),Km=Vm.range,tx=$m.range,nx=Wm.range,ex=Zm.range,rx=Gm.range,ix=Jm.range,ox=Qm.range,ux=Zu(function(t){t.setDate(1),t.setHours(0,0,0,0)},function(t,n){t.setMonth(t.getMonth()+n)},function(t,n){return n.getMonth()-t.getMonth()+12*(n.getFullYear()-t.getFullYear())},function(t){return t.getMonth()}),ax=ux.range,cx=Zu(function(t){t.setMonth(0,1),t.setHours(0,0,0,0)},function(t,n){t.setFullYear(t.getFullYear()+n)},function(t,n){return n.getFullYear()-t.getFullYear()},function(t){return t.getFullYear()});cx.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Zu(function(n){n.setFullYear(Math.floor(n.getFullYear()/t)*t),n.setMonth(0,1),n.setHours(0,0,0,0)},function(n,e){n.setFullYear(n.getFullYear()+e*t)}):null};var sx=cx.range,fx=Zu(function(t){t.setUTCSeconds(0,0)},function(t,n){t.setTime(+t+n*Um)},function(t,n){return(n-t)/Um},function(t){return t.getUTCMinutes()}),lx=fx.range,hx=Zu(function(t){t.setUTCMinutes(0,0,0)},function(t,n){t.setTime(+t+36e5*n)},function(t,n){return(n-t)/36e5},function(t){return t.getUTCHours()}),px=hx.range,dx=Zu(function(t){t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCDate(t.getUTCDate()+n)},function(t,n){return(n-t)/864e5},function(t){return t.getUTCDate()-1}),vx=dx.range,_x=Ju(0),gx=Ju(1),yx=Ju(2),mx=Ju(3),xx=Ju(4),bx=Ju(5),wx=Ju(6),Mx=_x.range,Tx=gx.range,kx=yx.range,Sx=mx.range,Nx=xx.range,Ex=bx.range,Ax=wx.range,Cx=Zu(function(t){t.setUTCDate(1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCMonth(t.getUTCMonth()+n)},function(t,n){return n.getUTCMonth()-t.getUTCMonth()+12*(n.getUTCFullYear()-t.getUTCFullYear())},function(t){return t.getUTCMonth()}),zx=Cx.range,Px=Zu(function(t){t.setUTCMonth(0,1),t.setUTCHours(0,0,0,0)},function(t,n){t.setUTCFullYear(t.getUTCFullYear()+n)},function(t,n){return n.getUTCFullYear()-t.getUTCFullYear()},function(t){return t.getUTCFullYear()});Px.every=function(t){return isFinite(t=Math.floor(t))&&t>0?Zu(function(n){n.setUTCFullYear(Math.floor(n.getUTCFullYear()/t)*t),n.setUTCMonth(0,1),n.setUTCHours(0,0,0,0)},function(n,e){n.setUTCFullYear(n.getUTCFullYear()+e*t)}):null};var Lx,Rx=Px.range,qx={"-":"",_:" ",0:"0"},Ux=/^\s*\d+/,Dx=/^%/,Ox=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;Za({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});var Fx=Date.prototype.toISOString?Ga:t.utcFormat("%Y-%m-%dT%H:%M:%S.%LZ"),Ix=+new Date("2000-01-01T00:00:00.000Z")?Ja:t.utcParse("%Y-%m-%dT%H:%M:%S.%LZ"),Yx=1e3,Bx=60*Yx,jx=60*Bx,Hx=24*jx,Xx=7*Hx,Vx=30*Hx,$x=365*Hx,Wx=function(){return tc(cx,ux,Vm,Hm,Bm,Im,Om,Rm,t.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])},Zx=function(){return tc(Px,Cx,_x,dx,hx,fx,Om,Rm,t.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])},Gx=function(t){return t.match(/.{6}/g).map(function(t){return"#"+t})},Jx=Gx("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf"),Qx=Gx("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6"),Kx=Gx("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9"),tb=Gx("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5"),nb=Oh(Vt(300,.5,0),Vt(-240,.5,1)),eb=Oh(Vt(-100,.75,.35),Vt(80,1.5,.8)),rb=Oh(Vt(260,.75,.35),Vt(80,1.5,.8)),ib=Vt(),ob=function(t){(t<0||t>1)&&(t-=Math.floor(t));var n=Math.abs(t-.5);return ib.h=360*t-100,ib.s=1.5-1.5*n,ib.l=.8-.9*n,ib+""},ub=nc(Gx("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725")),ab=nc(Gx("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf")),cb=nc(Gx("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4")),sb=nc(Gx("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921")),fb=function(t){return function(){return t}},lb=Math.abs,hb=Math.atan2,pb=Math.cos,db=Math.max,vb=Math.min,_b=Math.sin,gb=Math.sqrt,yb=1e-12,mb=Math.PI,xb=mb/2,bb=2*mb,wb=function(){function t(){var t,s,f=+n.apply(this,arguments),l=+e.apply(this,arguments),h=o.apply(this,arguments)-xb,p=u.apply(this,arguments)-xb,d=lb(p-h),v=p>h;if(c||(c=t=Re()),l<f&&(s=l,l=f,f=s),l>yb)if(d>bb-yb)c.moveTo(l*pb(h),l*_b(h)),c.arc(0,0,l,h,p,!v),f>yb&&(c.moveTo(f*pb(p),f*_b(p)),c.arc(0,0,f,p,h,v));else{var _,g,y=h,m=p,x=h,b=p,w=d,M=d,T=a.apply(this,arguments)/2,k=T>yb&&(i?+i.apply(this,arguments):gb(f*f+l*l)),S=vb(lb(l-f)/2,+r.apply(this,arguments)),N=S,E=S;if(k>yb){var A=ic(k/f*_b(T)),C=ic(k/l*_b(T));(w-=2*A)>yb?(A*=v?1:-1,x+=A,b-=A):(w=0,x=b=(h+p)/2),(M-=2*C)>yb?(C*=v?1:-1,y+=C,m-=C):(M=0,y=m=(h+p)/2)}var z=l*pb(y),P=l*_b(y),L=f*pb(b),R=f*_b(b);if(S>yb){var q=l*pb(m),U=l*_b(m),D=f*pb(x),O=f*_b(x);if(d<mb){var F=w>yb?fc(z,P,D,O,q,U,L,R):[L,R],I=z-F[0],Y=P-F[1],B=q-F[0],j=U-F[1],H=1/_b(rc((I*B+Y*j)/(gb(I*I+Y*Y)*gb(B*B+j*j)))/2),X=gb(F[0]*F[0]+F[1]*F[1]);N=vb(S,(f-X)/(H-1)),E=vb(S,(l-X)/(H+1))}}M>yb?E>yb?(_=lc(D,O,z,P,l,E,v),g=lc(q,U,L,R,l,E,v),c.moveTo(_.cx+_.x01,_.cy+_.y01),E<S?c.arc(_.cx,_.cy,E,hb(_.y01,_.x01),hb(g.y01,g.x01),!v):(c.arc(_.cx,_.cy,E,hb(_.y01,_.x01),hb(_.y11,_.x11),!v),c.arc(0,0,l,hb(_.cy+_.y11,_.cx+_.x11),hb(g.cy+g.y11,g.cx+g.x11),!v),c.arc(g.cx,g.cy,E,hb(g.y11,g.x11),hb(g.y01,g.x01),!v))):(c.moveTo(z,P),c.arc(0,0,l,y,m,!v)):c.moveTo(z,P),f>yb&&w>yb?N>yb?(_=lc(L,R,q,U,f,-N,v),g=lc(z,P,D,O,f,-N,v),c.lineTo(_.cx+_.x01,_.cy+_.y01),N<S?c.arc(_.cx,_.cy,N,hb(_.y01,_.x01),hb(g.y01,g.x01),!v):(c.arc(_.cx,_.cy,N,hb(_.y01,_.x01),hb(_.y11,_.x11),!v),c.arc(0,0,f,hb(_.cy+_.y11,_.cx+_.x11),hb(g.cy+g.y11,g.cx+g.x11),v),c.arc(g.cx,g.cy,N,hb(g.y11,g.x11),hb(g.y01,g.x01),!v))):c.arc(0,0,f,b,x,v):c.lineTo(L,R)}else c.moveTo(0,0);if(c.closePath(),t)return c=null,t+""||null}var n=oc,e=uc,r=fb(0),i=null,o=ac,u=cc,a=sc,c=null;return t.centroid=function(){var t=(+n.apply(this,arguments)+ +e.apply(this,arguments))/2,r=(+o.apply(this,arguments)+ +u.apply(this,arguments))/2-mb/2;return[pb(r)*t,_b(r)*t]},t.innerRadius=function(e){return arguments.length?(n="function"==typeof e?e:fb(+e),t):n},t.outerRadius=function(n){return arguments.length?(e="function"==typeof n?n:fb(+n),t):e},t.cornerRadius=function(n){return arguments.length?(r="function"==typeof n?n:fb(+n),t):r},t.padRadius=function(n){return arguments.length?(i=null==n?null:"function"==typeof n?n:fb(+n),t):i},t.startAngle=function(n){return arguments.length?(o="function"==typeof n?n:fb(+n),t):o},t.endAngle=function(n){return arguments.length?(u="function"==typeof n?n:fb(+n),t):u},t.padAngle=function(n){return arguments.length?(a="function"==typeof n?n:fb(+n),t):a},t.context=function(n){return arguments.length?(c=null==n?null:n,t):c},t};hc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._point=0},lineEnd:function(){(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:this._context.lineTo(t,n)}}};var Mb=function(t){return new hc(t)},Tb=function(){function t(t){var a,c,s,f=t.length,l=!1;for(null==i&&(u=o(s=Re())),a=0;a<=f;++a)!(a<f&&r(c=t[a],a,t))===l&&((l=!l)?u.lineStart():u.lineEnd()),l&&u.point(+n(c,a,t),+e(c,a,t));if(s)return u=null,s+""||null}var n=pc,e=dc,r=fb(!0),i=null,o=Mb,u=null;return t.x=function(e){return arguments.length?(n="function"==typeof e?e:fb(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:fb(+n),t):e},t.defined=function(n){return arguments.length?(r="function"==typeof n?n:fb(!!n),t):r},t.curve=function(n){return arguments.length?(o=n,null!=i&&(u=o(i)),t):o},t.context=function(n){return arguments.length?(null==n?i=u=null:u=o(i=n),t):i},t},kb=function(){function t(t){var n,f,l,h,p,d=t.length,v=!1,_=new Array(d),g=new Array(d);for(null==a&&(s=c(p=Re())),n=0;n<=d;++n){if(!(n<d&&u(h=t[n],n,t))===v)if(v=!v)f=n,s.areaStart(),s.lineStart();else{for(s.lineEnd(),s.lineStart(),l=n-1;l>=f;--l)s.point(_[l],g[l]);s.lineEnd(),s.areaEnd()}v&&(_[n]=+e(h,n,t),g[n]=+i(h,n,t),s.point(r?+r(h,n,t):_[n],o?+o(h,n,t):g[n]))}if(p)return s=null,p+""||null}function n(){return Tb().defined(u).curve(c).context(a)}var e=pc,r=null,i=fb(0),o=dc,u=fb(!0),a=null,c=Mb,s=null;return t.x=function(n){return arguments.length?(e="function"==typeof n?n:fb(+n),r=null,t):e},t.x0=function(n){return arguments.length?(e="function"==typeof n?n:fb(+n),t):e},t.x1=function(n){return arguments.length?(r=null==n?null:"function"==typeof n?n:fb(+n),t):r},t.y=function(n){return arguments.length?(i="function"==typeof n?n:fb(+n),o=null,t):i},t.y0=function(n){return arguments.length?(i="function"==typeof n?n:fb(+n),t):i},t.y1=function(n){return arguments.length?(o=null==n?null:"function"==typeof n?n:fb(+n),t):o},t.lineX0=t.lineY0=function(){return n().x(e).y(i)},t.lineY1=function(){return n().x(e).y(o)},t.lineX1=function(){return n().x(r).y(i)},t.defined=function(n){return arguments.length?(u="function"==typeof n?n:fb(!!n),t):u},t.curve=function(n){return arguments.length?(c=n,null!=a&&(s=c(a)),t):c},t.context=function(n){return arguments.length?(null==n?a=s=null:s=c(a=n),t):a},t},Sb=function(t,n){return n<t?-1:n>t?1:n>=t?0:NaN},Nb=function(t){return t},Eb=function(){function t(t){var a,c,s,f,l,h=t.length,p=0,d=new Array(h),v=new Array(h),_=+i.apply(this,arguments),g=Math.min(bb,Math.max(-bb,o.apply(this,arguments)-_)),y=Math.min(Math.abs(g)/h,u.apply(this,arguments)),m=y*(g<0?-1:1);for(a=0;a<h;++a)(l=v[d[a]=a]=+n(t[a],a,t))>0&&(p+=l);for(null!=e?d.sort(function(t,n){return e(v[t],v[n])}):null!=r&&d.sort(function(n,e){return r(t[n],t[e])}),a=0,s=p?(g-h*m)/p:0;a<h;++a,_=f)c=d[a],l=v[c],f=_+(l>0?l*s:0)+m,v[c]={data:t[c],index:a,value:l,startAngle:_,endAngle:f,padAngle:y};return v}var n=Nb,e=Sb,r=null,i=fb(0),o=fb(bb),u=fb(0);return t.value=function(e){return arguments.length?(n="function"==typeof e?e:fb(+e),t):n},t.sortValues=function(n){return arguments.length?(e=n,r=null,t):e},t.sort=function(n){return arguments.length?(r=n,e=null,t):r},t.startAngle=function(n){return arguments.length?(i="function"==typeof n?n:fb(+n),t):i},t.endAngle=function(n){return arguments.length?(o="function"==typeof n?n:fb(+n),t):o},t.padAngle=function(n){return arguments.length?(u="function"==typeof n?n:fb(+n),t):u},t},Ab=_c(Mb);vc.prototype={areaStart:function(){this._curve.areaStart()},areaEnd:function(){this._curve.areaEnd()},lineStart:function(){this._curve.lineStart()},lineEnd:function(){this._curve.lineEnd()},point:function(t,n){this._curve.point(n*Math.sin(t),n*-Math.cos(t))}};var Cb=function(){return gc(Tb().curve(Ab))},zb=function(){var t=kb().curve(Ab),n=t.curve,e=t.lineX0,r=t.lineX1,i=t.lineY0,o=t.lineY1;return t.angle=t.x,delete t.x,t.startAngle=t.x0,delete t.x0,t.endAngle=t.x1,delete t.x1,t.radius=t.y,delete t.y,t.innerRadius=t.y0,delete t.y0,t.outerRadius=t.y1,delete t.y1,t.lineStartAngle=function(){return gc(e())},delete t.lineX0,t.lineEndAngle=function(){return gc(r())},delete t.lineX1,t.lineInnerRadius=function(){return gc(i())},delete t.lineY0,t.lineOuterRadius=function(){return gc(o())},delete t.lineY1,t.curve=function(t){return arguments.length?n(_c(t)):n()._curve},t},Pb={draw:function(t,n){var e=Math.sqrt(n/mb);t.moveTo(e,0),t.arc(0,0,e,0,bb)}},Lb={draw:function(t,n){var e=Math.sqrt(n/5)/2;t.moveTo(-3*e,-e),t.lineTo(-e,-e),t.lineTo(-e,-3*e),t.lineTo(e,-3*e),t.lineTo(e,-e),t.lineTo(3*e,-e),t.lineTo(3*e,e),t.lineTo(e,e),t.lineTo(e,3*e),t.lineTo(-e,3*e),t.lineTo(-e,e),t.lineTo(-3*e,e),t.closePath()}},Rb=Math.sqrt(1/3),qb=2*Rb,Ub={draw:function(t,n){var e=Math.sqrt(n/qb),r=e*Rb;t.moveTo(0,-e),t.lineTo(r,0),t.lineTo(0,e),t.lineTo(-r,0),t.closePath()}},Db=Math.sin(mb/10)/Math.sin(7*mb/10),Ob=Math.sin(bb/10)*Db,Fb=-Math.cos(bb/10)*Db,Ib={draw:function(t,n){var e=Math.sqrt(.8908130915292852*n),r=Ob*e,i=Fb*e;t.moveTo(0,-e),t.lineTo(r,i);for(var o=1;o<5;++o){var u=bb*o/5,a=Math.cos(u),c=Math.sin(u);t.lineTo(c*e,-a*e),t.lineTo(a*r-c*i,c*r+a*i)}t.closePath()}},Yb={draw:function(t,n){var e=Math.sqrt(n),r=-e/2;t.rect(r,r,e,e)}},Bb=Math.sqrt(3),jb={draw:function(t,n){var e=-Math.sqrt(n/(3*Bb));t.moveTo(0,2*e),t.lineTo(-Bb*e,-e),t.lineTo(Bb*e,-e),t.closePath()}},Hb=-.5,Xb=Math.sqrt(3)/2,Vb=1/Math.sqrt(12),$b=3*(Vb/2+1),Wb={draw:function(t,n){var e=Math.sqrt(n/$b),r=e/2,i=e*Vb,o=r,u=e*Vb+e,a=-o,c=u;t.moveTo(r,i),t.lineTo(o,u),t.lineTo(a,c),t.lineTo(Hb*r-Xb*i,Xb*r+Hb*i),t.lineTo(Hb*o-Xb*u,Xb*o+Hb*u),t.lineTo(Hb*a-Xb*c,Xb*a+Hb*c),t.lineTo(Hb*r+Xb*i,Hb*i-Xb*r),t.lineTo(Hb*o+Xb*u,Hb*u-Xb*o),t.lineTo(Hb*a+Xb*c,Hb*c-Xb*a),t.closePath()}},Zb=[Pb,Lb,Ub,Yb,Ib,jb,Wb],Gb=function(){function t(){var t;if(r||(r=t=Re()),n.apply(this,arguments).draw(r,+e.apply(this,arguments)),t)return r=null,t+""||null}var n=fb(Pb),e=fb(64),r=null;return t.type=function(e){return arguments.length?(n="function"==typeof e?e:fb(e),t):n},t.size=function(n){return arguments.length?(e="function"==typeof n?n:fb(+n),t):e},t.context=function(n){return arguments.length?(r=null==n?null:n,t):r},t},Jb=function(){};mc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){switch(this._point){case 3:yc(this,this._x1,this._y1);case 2:this._context.lineTo(this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,this._context.lineTo((5*this._x0+this._x1)/6,(5*this._y0+this._y1)/6);default:yc(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var Qb=function(t){return new mc(t)};xc.prototype={areaStart:Jb,areaEnd:Jb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._y0=this._y1=this._y2=this._y3=this._y4=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x2,this._y2),this._context.closePath();break;case 2:this._context.moveTo((this._x2+2*this._x3)/3,(this._y2+2*this._y3)/3),this._context.lineTo((this._x3+2*this._x2)/3,(this._y3+2*this._y2)/3),this._context.closePath();break;case 3:this.point(this._x2,this._y2),this.point(this._x3,this._y3),this.point(this._x4,this._y4)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x2=t,this._y2=n;break;case 1:this._point=2,this._x3=t,this._y3=n;break;case 2:this._point=3,this._x4=t,this._y4=n,this._context.moveTo((this._x0+4*this._x1+t)/6,(this._y0+4*this._y1+n)/6);break;default:yc(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var Kb=function(t){return new xc(t)};bc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3;var e=(this._x0+4*this._x1+t)/6,r=(this._y0+4*this._y1+n)/6;this._line?this._context.lineTo(e,r):this._context.moveTo(e,r);break;case 3:this._point=4
;default:yc(this,t,n)}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n}};var tw=function(t){return new bc(t)};wc.prototype={lineStart:function(){this._x=[],this._y=[],this._basis.lineStart()},lineEnd:function(){var t=this._x,n=this._y,e=t.length-1;if(e>0)for(var r,i=t[0],o=n[0],u=t[e]-i,a=n[e]-o,c=-1;++c<=e;)r=c/e,this._basis.point(this._beta*t[c]+(1-this._beta)*(i+r*u),this._beta*n[c]+(1-this._beta)*(o+r*a));this._x=this._y=null,this._basis.lineEnd()},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var nw=function t(n){function e(t){return 1===n?new mc(t):new wc(t,n)}return e.beta=function(n){return t(+n)},e}(.85);Tc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:Mc(this,this._x1,this._y1)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2,this._x1=t,this._y1=n;break;case 2:this._point=3;default:Mc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var ew=function t(n){function e(t){return new Tc(t,n)}return e.tension=function(n){return t(+n)},e}(0);kc.prototype={areaStart:Jb,areaEnd:Jb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Mc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var rw=function t(n){function e(t){return new kc(t,n)}return e.tension=function(n){return t(+n)},e}(0);Sc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Mc(this,t,n)}this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var iw=function t(n){function e(t){return new Sc(t,n)}return e.tension=function(n){return t(+n)},e}(0);Ec.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x2,this._y2);break;case 3:this.point(this._x2,this._y2)}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3;default:Nc(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var ow=function t(n){function e(t){return n?new Ec(t,n):new Tc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Ac.prototype={areaStart:Jb,areaEnd:Jb,lineStart:function(){this._x0=this._x1=this._x2=this._x3=this._x4=this._x5=this._y0=this._y1=this._y2=this._y3=this._y4=this._y5=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){switch(this._point){case 1:this._context.moveTo(this._x3,this._y3),this._context.closePath();break;case 2:this._context.lineTo(this._x3,this._y3),this._context.closePath();break;case 3:this.point(this._x3,this._y3),this.point(this._x4,this._y4),this.point(this._x5,this._y5)}},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1,this._x3=t,this._y3=n;break;case 1:this._point=2,this._context.moveTo(this._x4=t,this._y4=n);break;case 2:this._point=3,this._x5=t,this._y5=n;break;default:Nc(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var uw=function t(n){function e(t){return n?new Ac(t,n):new kc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);Cc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._x2=this._y0=this._y1=this._y2=NaN,this._l01_a=this._l12_a=this._l23_a=this._l01_2a=this._l12_2a=this._l23_2a=this._point=0},lineEnd:function(){(this._line||0!==this._line&&3===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){if(t=+t,n=+n,this._point){var e=this._x2-t,r=this._y2-n;this._l23_a=Math.sqrt(this._l23_2a=Math.pow(e*e+r*r,this._alpha))}switch(this._point){case 0:this._point=1;break;case 1:this._point=2;break;case 2:this._point=3,this._line?this._context.lineTo(this._x2,this._y2):this._context.moveTo(this._x2,this._y2);break;case 3:this._point=4;default:Nc(this,t,n)}this._l01_a=this._l12_a,this._l12_a=this._l23_a,this._l01_2a=this._l12_2a,this._l12_2a=this._l23_2a,this._x0=this._x1,this._x1=this._x2,this._x2=t,this._y0=this._y1,this._y1=this._y2,this._y2=n}};var aw=function t(n){function e(t){return n?new Cc(t,n):new Sc(t,0)}return e.alpha=function(n){return t(+n)},e}(.5);zc.prototype={areaStart:Jb,areaEnd:Jb,lineStart:function(){this._point=0},lineEnd:function(){this._point&&this._context.closePath()},point:function(t,n){t=+t,n=+n,this._point?this._context.lineTo(t,n):(this._point=1,this._context.moveTo(t,n))}};var cw=function(t){return new zc(t)};Uc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x0=this._x1=this._y0=this._y1=this._t0=NaN,this._point=0},lineEnd:function(){switch(this._point){case 2:this._context.lineTo(this._x1,this._y1);break;case 3:qc(this,this._t0,Rc(this,this._t0))}(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line=1-this._line},point:function(t,n){var e=NaN;if(t=+t,n=+n,t!==this._x1||n!==this._y1){switch(this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;break;case 2:this._point=3,qc(this,Rc(this,e=Lc(this,t,n)),e);break;default:qc(this,this._t0,e=Lc(this,t,n))}this._x0=this._x1,this._x1=t,this._y0=this._y1,this._y1=n,this._t0=e}}},(Dc.prototype=Object.create(Uc.prototype)).point=function(t,n){Uc.prototype.point.call(this,n,t)},Oc.prototype={moveTo:function(t,n){this._context.moveTo(n,t)},closePath:function(){this._context.closePath()},lineTo:function(t,n){this._context.lineTo(n,t)},bezierCurveTo:function(t,n,e,r,i,o){this._context.bezierCurveTo(n,t,r,e,o,i)}},Yc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=[],this._y=[]},lineEnd:function(){var t=this._x,n=this._y,e=t.length;if(e)if(this._line?this._context.lineTo(t[0],n[0]):this._context.moveTo(t[0],n[0]),2===e)this._context.lineTo(t[1],n[1]);else for(var r=Bc(t),i=Bc(n),o=0,u=1;u<e;++o,++u)this._context.bezierCurveTo(r[0][o],i[0][o],r[1][o],i[1][o],t[u],n[u]);(this._line||0!==this._line&&1===e)&&this._context.closePath(),this._line=1-this._line,this._x=this._y=null},point:function(t,n){this._x.push(+t),this._y.push(+n)}};var sw=function(t){return new Yc(t)};jc.prototype={areaStart:function(){this._line=0},areaEnd:function(){this._line=NaN},lineStart:function(){this._x=this._y=NaN,this._point=0},lineEnd:function(){0<this._t&&this._t<1&&2===this._point&&this._context.lineTo(this._x,this._y),(this._line||0!==this._line&&1===this._point)&&this._context.closePath(),this._line>=0&&(this._t=1-this._t,this._line=1-this._line)},point:function(t,n){switch(t=+t,n=+n,this._point){case 0:this._point=1,this._line?this._context.lineTo(t,n):this._context.moveTo(t,n);break;case 1:this._point=2;default:if(this._t<=0)this._context.lineTo(this._x,n),this._context.lineTo(t,n);else{var e=this._x*(1-this._t)+t*this._t;this._context.lineTo(e,this._y),this._context.lineTo(e,n)}}this._x=t,this._y=n}};var fw=function(t){return new jc(t,.5)},lw=Array.prototype.slice,hw=function(t,n){if((r=t.length)>1)for(var e,r,i=1,o=t[n[0]],u=o.length;i<r;++i){e=o,o=t[n[i]];for(var a=0;a<u;++a)o[a][1]+=o[a][0]=isNaN(e[a][1])?e[a][0]:e[a][1]}},pw=function(t){for(var n=t.length,e=new Array(n);--n>=0;)e[n]=n;return e},dw=function(){function t(t){var o,u,a=n.apply(this,arguments),c=t.length,s=a.length,f=new Array(s);for(o=0;o<s;++o){for(var l,h=a[o],p=f[o]=new Array(c),d=0;d<c;++d)p[d]=l=[0,+i(t[d],h,d,t)],l.data=t[d];p.key=h}for(o=0,u=e(f);o<s;++o)f[u[o]].index=o;return r(f,u),f}var n=fb([]),e=pw,r=hw,i=Vc;return t.keys=function(e){return arguments.length?(n="function"==typeof e?e:fb(lw.call(e)),t):n},t.value=function(n){return arguments.length?(i="function"==typeof n?n:fb(+n),t):i},t.order=function(n){return arguments.length?(e=null==n?pw:"function"==typeof n?n:fb(lw.call(n)),t):e},t.offset=function(n){return arguments.length?(r=null==n?hw:n,t):r},t},vw=function(t,n){if((r=t.length)>0){for(var e,r,i,o=0,u=t[0].length;o<u;++o){for(i=e=0;e<r;++e)i+=t[e][o][1]||0;if(i)for(e=0;e<r;++e)t[e][o][1]/=i}hw(t,n)}},_w=function(t,n){if((e=t.length)>0){for(var e,r=0,i=t[n[0]],o=i.length;r<o;++r){for(var u=0,a=0;u<e;++u)a+=t[u][r][1]||0;i[r][1]+=i[r][0]=-a/2}hw(t,n)}},gw=function(t,n){if((i=t.length)>0&&(r=(e=t[n[0]]).length)>0){for(var e,r,i,o=0,u=1;u<r;++u){for(var a=0,c=0,s=0;a<i;++a){for(var f=t[n[a]],l=f[u][1]||0,h=f[u-1][1]||0,p=(l-h)/2,d=0;d<a;++d){var v=t[n[d]];p+=(v[u][1]||0)-(v[u-1][1]||0)}c+=l,s+=p*l}e[u-1][1]+=e[u-1][0]=o,c&&(o-=s/c)}e[u-1][1]+=e[u-1][0]=o,hw(t,n)}},yw=function(t){var n=t.map($c);return pw(t).sort(function(t,e){return n[t]-n[e]})},mw=function(t){return yw(t).reverse()},xw=function(t){var n,e,r=t.length,i=t.map($c),o=pw(t).sort(function(t,n){return i[n]-i[t]}),u=0,a=0,c=[],s=[];for(n=0;n<r;++n)e=o[n],u<a?(u+=i[e],c.push(e)):(a+=i[e],s.push(e));return s.reverse().concat(c)},bw=function(t){return pw(t).reverse()},ww=function(t){return function(){return t}};Gc.prototype={constructor:Gc,insert:function(t,n){var e,r,i;if(t){if(n.P=t,n.N=t.N,t.N&&(t.N.P=n),t.N=n,t.R){for(t=t.R;t.L;)t=t.L;t.L=n}else t.R=n;e=t}else this._?(t=ts(this._),n.P=null,n.N=t,t.P=t.L=n,e=t):(n.P=n.N=null,this._=n,e=null);for(n.L=n.R=null,n.U=e,n.C=!0,t=n;e&&e.C;)r=e.U,e===r.L?(i=r.R,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.R&&(Qc(this,e),t=e,e=t.U),e.C=!1,r.C=!0,Kc(this,r))):(i=r.L,i&&i.C?(e.C=i.C=!1,r.C=!0,t=r):(t===e.L&&(Kc(this,e),t=e,e=t.U),e.C=!1,r.C=!0,Qc(this,r))),e=t.U;this._.C=!1},remove:function(t){t.N&&(t.N.P=t.P),t.P&&(t.P.N=t.N),t.N=t.P=null;var n,e,r,i=t.U,o=t.L,u=t.R;if(e=o?u?ts(u):o:u,i?i.L===t?i.L=e:i.R=e:this._=e,o&&u?(r=e.C,e.C=t.C,e.L=o,o.U=e,e!==u?(i=e.U,e.U=t.U,t=e.R,i.L=t,e.R=u,u.U=e):(e.U=i,i=e,t=e.R)):(r=t.C,t=e),t&&(t.U=i),!r){if(t&&t.C)return void(t.C=!1);do{if(t===this._)break;if(t===i.L){if(n=i.R,n.C&&(n.C=!1,i.C=!0,Qc(this,i),n=i.R),n.L&&n.L.C||n.R&&n.R.C){n.R&&n.R.C||(n.L.C=!1,n.C=!0,Kc(this,n),n=i.R),n.C=i.C,i.C=n.R.C=!1,Qc(this,i),t=this._;break}}else if(n=i.L,n.C&&(n.C=!1,i.C=!0,Kc(this,i),n=i.L),n.L&&n.L.C||n.R&&n.R.C){n.L&&n.L.C||(n.R.C=!1,n.C=!0,Qc(this,n),n=i.L),n.C=i.C,i.C=n.L.C=!1,Kc(this,i),t=this._;break}n.C=!0,t=i,i=i.U}while(!t.C);t&&(t.C=!1)}}};var Mw,Tw,kw,Sw,Nw,Ew=[],Aw=[],Cw=1e-6,zw=1e-12;ks.prototype={constructor:ks,polygons:function(){var t=this.edges;return this.cells.map(function(n){var e=n.halfedges.map(function(e){return ss(n,t[e])});return e.data=n.site.data,e})},triangles:function(){var t=[],n=this.edges;return this.cells.forEach(function(e,r){if(o=(i=e.halfedges).length)for(var i,o,u,a=e.site,c=-1,s=n[i[o-1]],f=s.left===a?s.right:s.left;++c<o;)u=f,s=n[i[c]],f=s.left===a?s.right:s.left,u&&f&&r<u.index&&r<f.index&&Ms(a,u,f)<0&&t.push([a.data,u.data,f.data])}),t},links:function(){return this.edges.filter(function(t){return t.right}).map(function(t){return{source:t.left.data,target:t.right.data}})},find:function(t,n,e){for(var r,i,o=this,u=o._found||0,a=o.cells.length;!(i=o.cells[u]);)if(++u>=a)return null;var c=t-i.site[0],s=n-i.site[1],f=c*c+s*s;do{i=o.cells[r=u],u=null,i.halfedges.forEach(function(e){var r=o.edges[e],a=r.left;if(a!==i.site&&a||(a=r.right)){var c=t-a[0],s=n-a[1],l=c*c+s*s;l<f&&(f=l,u=a.index)}})}while(null!==u);return o._found=r,null==e||f<=e*e?i.site:null}};var Pw=function(){function t(t){return new ks(t.map(function(r,i){var o=[Math.round(n(r,i,t)/Cw)*Cw,Math.round(e(r,i,t)/Cw)*Cw];return o.index=i,o.data=r,o}),r)}var n=Wc,e=Zc,r=null;return t.polygons=function(n){return t(n).polygons()},t.links=function(n){return t(n).links()},t.triangles=function(n){return t(n).triangles()},t.x=function(e){return arguments.length?(n="function"==typeof e?e:ww(+e),t):n},t.y=function(n){return arguments.length?(e="function"==typeof n?n:ww(+n),t):e},t.extent=function(n){return arguments.length?(r=null==n?null:[[+n[0][0],+n[0][1]],[+n[1][0],+n[1][1]]],t):r&&[[r[0][0],r[0][1]],[r[1][0],r[1][1]]]},t.size=function(n){return arguments.length?(r=null==n?null:[[0,0],[+n[0],+n[1]]],t):r&&[r[1][0]-r[0][0],r[1][1]-r[0][1]]},t},Lw=function(t){return function(){return t}};Ns.prototype={constructor:Ns,scale:function(t){return 1===t?this:new Ns(this.k*t,this.x,this.y)},translate:function(t,n){return 0===t&0===n?this:new Ns(this.k,this.x+this.k*t,this.y+this.k*n)},apply:function(t){return[t[0]*this.k+this.x,t[1]*this.k+this.y]},applyX:function(t){return t*this.k+this.x},applyY:function(t){return t*this.k+this.y},invert:function(t){return[(t[0]-this.x)/this.k,(t[1]-this.y)/this.k]},invertX:function(t){return(t-this.x)/this.k},invertY:function(t){return(t-this.y)/this.k},rescaleX:function(t){return t.copy().domain(t.range().map(this.invertX,this).map(t.invert,t))},rescaleY:function(t){return t.copy().domain(t.range().map(this.invertY,this).map(t.invert,t))},toString:function(){return"translate("+this.x+","+this.y+") scale("+this.k+")"}};var Rw=new Ns(1,0,0);Es.prototype=Ns.prototype;var qw=function(){t.event.preventDefault(),t.event.stopImmediatePropagation()},Uw=function(){function n(t){t.on("wheel.zoom",s).on("mousedown.zoom",f).on("dblclick.zoom",l).on("touchstart.zoom",h).on("touchmove.zoom",p).on("touchend.zoom touchcancel.zoom",v).style("-webkit-tap-highlight-color","rgba(0,0,0,0)").property("__zoom",Ps)}function e(t,n){return n=Math.max(x,Math.min(b,n)),n===t.k?t:new Ns(n,t.x,t.y)}function r(t,n,e){var r=n[0]-e[0]*t.k,i=n[1]-e[1]*t.k;return r===t.x&&i===t.y?t:new Ns(t.k,r,i)}function i(t,n){var e=t.invertX(n[0][0])-w,r=t.invertX(n[1][0])-M,i=t.invertY(n[0][1])-T,o=t.invertY(n[1][1])-k;return t.translate(r>e?(e+r)/2:Math.min(0,e)||Math.max(0,r),o>i?(i+o)/2:Math.min(0,i)||Math.max(0,o))}function o(t){return[(+t[0][0]+ +t[1][0])/2,(+t[0][1]+ +t[1][1])/2]}function u(t,n,e){t.on("start.zoom",function(){a(this,arguments).start()}).on("interrupt.zoom end.zoom",function(){a(this,arguments).end()}).tween("zoom",function(){var t=this,r=arguments,i=a(t,r),u=m.apply(t,r),c=e||o(u),s=Math.max(u[1][0]-u[0][0],u[1][1]-u[0][1]),f=t.__zoom,l="function"==typeof n?n.apply(t,r):n,h=N(f.invert(c).concat(s/f.k),l.invert(c).concat(s/l.k));return function(t){if(1===t)t=l;else{var n=h(t),e=s/n[2];t=new Ns(e,c[0]-n[0]*e,c[1]-n[1]*e)}i.zoom(null,t)}})}function a(t,n){for(var e,r=0,i=A.length;r<i;++r)if((e=A[r]).that===t)return e;return new c(t,n)}function c(t,n){this.that=t,this.args=n,this.index=-1,this.active=0,this.extent=m.apply(t,n)}function s(){function n(){o.wheel=null,o.end()}if(y.apply(this,arguments)){var o=a(this,arguments),u=this.__zoom,c=Math.max(x,Math.min(b,u.k*Math.pow(2,-t.event.deltaY*(t.event.deltaMode?120:1)/500))),s=Ff(this);if(o.wheel)o.mouse[0][0]===s[0]&&o.mouse[0][1]===s[1]||(o.mouse[1]=u.invert(o.mouse[0]=s)),clearTimeout(o.wheel);else{if(u.k===c)return;o.mouse=[s,u.invert(s)],ap(this),o.start()}qw(),o.wheel=setTimeout(n,P),o.zoom("mouse",i(r(e(u,c),o.mouse[0],o.mouse[1]),o.extent))}}function f(){function n(){qw(),o.moved=!0,o.zoom("mouse",i(r(o.that.__zoom,o.mouse[0]=Ff(o.that),o.mouse[1]),o.extent))}function e(){u.on("mousemove.zoom mouseup.zoom",null),gt(t.event.view,o.moved),qw(),o.end()}if(!g&&y.apply(this,arguments)){var o=a(this,arguments),u=bl(t.event.view).on("mousemove.zoom",n,!0).on("mouseup.zoom",e,!0),c=Ff(this);Sl(t.event.view),As(),o.mouse=[c,this.__zoom.invert(c)],ap(this),o.start()}}function l(){if(y.apply(this,arguments)){var o=this.__zoom,a=Ff(this),c=o.invert(a),s=o.k*(t.event.shiftKey?.5:2),f=i(r(e(o,s),a,c),m.apply(this,arguments));qw(),S>0?bl(this).transition().duration(S).call(u,f,a):bl(this).call(n.transform,f)}}function h(){if(y.apply(this,arguments)){var n,e,r,i,o=a(this,arguments),u=t.event.changedTouches,c=u.length;for(As(),e=0;e<c;++e)r=u[e],i=Ml(this,u,r.identifier),i=[i,this.__zoom.invert(i),r.identifier],o.touch0?o.touch1||(o.touch1=i):(o.touch0=i,n=!0);if(_&&(_=clearTimeout(_),!o.touch1))return o.end(),void((i=bl(this).on("dblclick.zoom"))&&i.apply(this,arguments));n&&(_=setTimeout(function(){_=null},z),ap(this),o.start())}}function p(){var n,o,u,c,s=a(this,arguments),f=t.event.changedTouches,l=f.length;for(qw(),_&&(_=clearTimeout(_)),n=0;n<l;++n)o=f[n],u=Ml(this,f,o.identifier),s.touch0&&s.touch0[2]===o.identifier?s.touch0[0]=u:s.touch1&&s.touch1[2]===o.identifier&&(s.touch1[0]=u);if(o=s.that.__zoom,s.touch1){var h=s.touch0[0],p=s.touch0[1],d=s.touch1[0],v=s.touch1[1],g=(g=d[0]-h[0])*g+(g=d[1]-h[1])*g,y=(y=v[0]-p[0])*y+(y=v[1]-p[1])*y;o=e(o,Math.sqrt(g/y)),u=[(h[0]+d[0])/2,(h[1]+d[1])/2],c=[(p[0]+v[0])/2,(p[1]+v[1])/2]}else{if(!s.touch0)return;u=s.touch0[0],c=s.touch0[1]}s.zoom("touch",i(r(o,u,c),s.extent))}function v(){var n,e,r=a(this,arguments),i=t.event.changedTouches,o=i.length;for(As(),g&&clearTimeout(g),g=setTimeout(function(){g=null},z),n=0;n<o;++n)e=i[n],r.touch0&&r.touch0[2]===e.identifier?delete r.touch0:r.touch1&&r.touch1[2]===e.identifier&&delete r.touch1;r.touch1&&!r.touch0&&(r.touch0=r.touch1,delete r.touch1),r.touch0?r.touch0[1]=this.__zoom.invert(r.touch0[0]):r.end()}var _,g,y=Cs,m=zs,x=0,b=1/0,w=-b,M=b,T=w,k=M,S=250,N=Ph,A=[],C=d("start","zoom","end"),z=500,P=150;return n.transform=function(t,n){var e=t.selection?t.selection():t;e.property("__zoom",Ps),t!==e?u(t,n):e.interrupt().each(function(){a(this,arguments).start().zoom(null,"function"==typeof n?n.apply(this,arguments):n).end()})},n.scaleBy=function(t,e){n.scaleTo(t,function(){return this.__zoom.k*("function"==typeof e?e.apply(this,arguments):e)})},n.scaleTo=function(t,u){n.transform(t,function(){var t=m.apply(this,arguments),n=this.__zoom,a=o(t),c=n.invert(a);return i(r(e(n,"function"==typeof u?u.apply(this,arguments):u),a,c),t)})},n.translateBy=function(t,e,r){n.transform(t,function(){return i(this.__zoom.translate("function"==typeof e?e.apply(this,arguments):e,"function"==typeof r?r.apply(this,arguments):r),m.apply(this,arguments))})},c.prototype={start:function(){return 1==++this.active&&(this.index=A.push(this)-1,this.emit("start")),this},zoom:function(t,n){return this.mouse&&"mouse"!==t&&(this.mouse[1]=n.invert(this.mouse[0])),this.touch0&&"touch"!==t&&(this.touch0[1]=n.invert(this.touch0[0])),this.touch1&&"touch"!==t&&(this.touch1[1]=n.invert(this.touch1[0])),this.that.__zoom=n,this.emit("zoom"),this},end:function(){return 0==--this.active&&(A.splice(this.index,1),this.index=-1,this.emit("end")),this},emit:function(t){E(new Ss(n,t,this.that.__zoom),C.apply,C,[t,this.that,this.args])}},n.filter=function(t){return arguments.length?(y="function"==typeof t?t:Lw(!!t),n):y},n.extent=function(t){return arguments.length?(m="function"==typeof t?t:Lw([[+t[0][0],+t[0][1]],[+t[1][0],+t[1][1]]]),n):m},n.scaleExtent=function(t){return arguments.length?(x=+t[0],b=+t[1],n):[x,b]},n.translateExtent=function(t){return arguments.length?(w=+t[0][0],M=+t[1][0],T=+t[0][1],k=+t[1][1],n):[[w,T],[M,k]]},n.duration=function(t){return arguments.length?(S=+t,n):S},n.interpolate=function(t){return arguments.length?(N=t,n):N},n.on=function(){var t=C.on.apply(C,arguments);return t===C?n:t},n};t.version="4.7.4",t.bisect=Us,t.bisectRight=Us,t.bisectLeft=Ds,t.ascending=Ls,t.bisector=Rs,t.cross=Fs,t.descending=Is,t.deviation=js,t.extent=Hs,t.histogram=ef,t.thresholdFreedmanDiaconis=of,t.thresholdScott=uf,t.thresholdSturges=nf,t.max=af,t.mean=cf,t.median=sf,t.merge=ff,t.min=lf,t.pairs=Os,t.permute=hf,t.quantile=rf,t.range=Gs,t.scan=pf,t.shuffle=df,t.sum=vf,t.ticks=tf,t.tickStep=r,t.transpose=_f,t.variance=Bs,t.zip=gf,t.axisTop=f,t.axisRight=l,t.axisBottom=h,t.axisLeft=p,t.brush=gd,t.brushX=Ae,t.brushY=Ce,t.brushSelection=Ee,t.chord=Td,t.ribbon=Cd,t.nest=zd,t.set=$e,t.map=Ye,t.keys=Ld,t.values=Rd,t.entries=qd,t.color=Tt,t.rgb=Et,t.hsl=Pt,t.lab=Ut,t.hcl=jt,t.cubehelix=Vt,t.dispatch=d,t.drag=El,t.dragDisable=Sl,t.dragEnable=gt,t.dsvFormat=Ud,t.csvParse=Od,t.csvParseRows=Fd,t.csvFormat=Id,t.csvFormatRows=Yd,t.tsvParse=jd,t.tsvParseRows=Hd,t.tsvFormat=Xd,t.tsvFormatRows=Vd,t.easeLinear=ee,t.easeQuad=oe,t.easeQuadIn=re,t.easeQuadOut=ie,t.easeQuadInOut=oe,t.easeCubic=ce,t.easeCubicIn=ue,t.easeCubicOut=ae,t.easeCubicInOut=ce,t.easePoly=Pp,t.easePolyIn=Cp,t.easePolyOut=zp,t.easePolyInOut=Pp,t.easeSin=le,t.easeSinIn=se,t.easeSinOut=fe,t.easeSinInOut=le,t.easeExp=de,t.easeExpIn=he,t.easeExpOut=pe,t.easeExpInOut=de,t.easeCircle=ge,t.easeCircleIn=ve,t.easeCircleOut=_e,t.easeCircleInOut=ge,t.easeBounce=me,t.easeBounceIn=ye,t.easeBounceOut=me,t.easeBounceInOut=xe,t.easeBack=$p,t.easeBackIn=Xp,t.easeBackOut=Vp,t.easeBackInOut=$p,t.easeElastic=Gp,t.easeElasticIn=Zp,t.easeElasticOut=Gp,t.easeElasticInOut=Jp,t.forceCenter=$d,t.forceCollide=lv,t.forceLink=hv,t.forceManyBody=_v,t.forceSimulation=vv,t.forceX=gv,t.forceY=yv,t.formatDefaultLocale=pr,t.formatLocale=zv,t.formatSpecifier=lr,t.precisionFixed=Pv,t.precisionPrefix=Lv,t.precisionRound=Rv,t.geoArea=F_,t.geoBounds=B_,t.geoCentroid=H_,t.geoCircle=og,t.geoClipExtent=hg,t.geoContains=Mg,t.geoDistance=xg,t.geoGraticule=wi,t.geoGraticule10=Mi,t.geoInterpolate=Tg,t.geoLength=gg,t.geoPath=Jg,t.geoAlbers=ay,t.geoAlbersUsa=cy,t.geoAzimuthalEqualArea=fy,t.geoAzimuthalEqualAreaRaw=sy,t.geoAzimuthalEquidistant=hy,t.geoAzimuthalEquidistantRaw=ly,t.geoConicConformal=dy,t.geoConicConformalRaw=lo,t.geoConicEqualArea=uy,t.geoConicEqualAreaRaw=io,t.geoConicEquidistant=_y,t.geoConicEquidistantRaw=po,t.geoEquirectangular=vy,t.geoEquirectangularRaw=ho,t.geoGnomonic=gy,t.geoGnomonicRaw=vo,t.geoIdentity=yy,t.geoProjection=to,t.geoProjectionMutator=no,t.geoMercator=py,t.geoMercatorRaw=co,t.geoOrthographic=my,t.geoOrthographicRaw=go,t.geoStereographic=xy,t.geoStereographicRaw=yo,t.geoTransverseMercator=by,t.geoTransverseMercatorRaw=mo,t.geoRotation=ig,t.geoStream=q_,t.geoTransform=ny,t.cluster=wy,t.hierarchy=Ao,t.pack=Oy,t.packSiblings=Uy,t.packEnclose=qy,t.partition=Yy,t.stratify=Xy,t.tree=Vy,t.treemap=Gy,t.treemapBinary=Jy,t.treemapDice=Iy,t.treemapSlice=$y,t.treemapSliceDice=Qy,t.treemapSquarify=Zy,t.treemapResquarify=Ky,t.interpolate=Th,t.interpolateArray=gh,t.interpolateBasis=lh,t.interpolateBasisClosed=hh,t.interpolateDate=yh,t.interpolateNumber=mh,t.interpolateObject=xh,t.interpolateRound=kh,t.interpolateString=Mh,t.interpolateTransformCss=Ah,t.interpolateTransformSvg=Ch,t.interpolateZoom=Ph,t.interpolateRgb=dh,t.interpolateRgbBasis=vh,t.interpolateRgbBasisClosed=_h,t.interpolateHsl=Lh,t.interpolateHslLong=Rh,t.interpolateLab=ln,t.interpolateHcl=qh,t.interpolateHclLong=Uh,t.interpolateCubehelix=Dh,t.interpolateCubehelixLong=Oh,t.quantize=Fh,t.path=Re,t.polygonArea=tm,t.polygonCentroid=nm,t.polygonHull=rm;t.polygonContains=im,t.polygonLength=om,t.quadtree=er,t.queue=yu,t.randomUniform=cm,t.randomNormal=sm,t.randomLogNormal=fm,t.randomBates=hm,t.randomIrwinHall=lm,t.randomExponential=pm,t.request=dm,t.html=_m,t.json=gm,t.text=ym,t.xml=mm,t.csv=bm,t.tsv=wm,t.scaleBand=Mu,t.scalePoint=ku,t.scaleIdentity=qu,t.scaleLinear=Ru,t.scaleLog=Bu,t.scaleOrdinal=wu,t.scaleImplicit=Sm,t.scalePow=Hu,t.scaleSqrt=Xu,t.scaleQuantile=Vu,t.scaleQuantize=$u,t.scaleThreshold=Wu,t.scaleTime=Wx,t.scaleUtc=Zx,t.schemeCategory10=Jx,t.schemeCategory20b=Qx,t.schemeCategory20c=Kx,t.schemeCategory20=tb,t.interpolateCubehelixDefault=nb,t.interpolateRainbow=ob,t.interpolateWarm=eb,t.interpolateCool=rb,t.interpolateViridis=ub,t.interpolateMagma=ab,t.interpolateInferno=cb,t.interpolatePlasma=sb,t.scaleSequential=ec,t.creator=Af,t.local=b,t.matcher=Rf,t.mouse=Ff,t.namespace=Ef,t.namespaces=Nf,t.select=bl,t.selectAll=wl,t.selection=vt,t.selector=If,t.selectorAll=Bf,t.touch=Ml,t.touches=Tl,t.window=al,t.customEvent=E,t.arc=wb,t.area=kb,t.line=Tb,t.pie=Eb,t.radialArea=zb,t.radialLine=Cb,t.symbol=Gb,t.symbols=Zb,t.symbolCircle=Pb,t.symbolCross=Lb,t.symbolDiamond=Ub,t.symbolSquare=Yb,t.symbolStar=Ib,t.symbolTriangle=jb,t.symbolWye=Wb,t.curveBasisClosed=Kb,t.curveBasisOpen=tw,t.curveBasis=Qb,t.curveBundle=nw,t.curveCardinalClosed=rw,t.curveCardinalOpen=iw,t.curveCardinal=ew,t.curveCatmullRomClosed=uw,t.curveCatmullRomOpen=aw,t.curveCatmullRom=ow,t.curveLinearClosed=cw,t.curveLinear=Mb,t.curveMonotoneX=Fc,t.curveMonotoneY=Ic,t.curveNatural=sw,t.curveStep=fw,t.curveStepAfter=Xc,t.curveStepBefore=Hc,t.stack=dw,t.stackOffsetExpand=vw,t.stackOffsetNone=hw,t.stackOffsetSilhouette=_w,t.stackOffsetWiggle=gw,t.stackOrderAscending=yw,t.stackOrderDescending=mw,t.stackOrderInsideOut=xw,t.stackOrderNone=pw,t.stackOrderReverse=bw,t.timeInterval=Zu,t.timeMillisecond=Rm,t.timeMilliseconds=qm,t.utcMillisecond=Rm,t.utcMilliseconds=qm,t.timeSecond=Om,t.timeSeconds=Fm,t.utcSecond=Om,t.utcSeconds=Fm,t.timeMinute=Im,t.timeMinutes=Ym,t.timeHour=Bm,t.timeHours=jm,t.timeDay=Hm,t.timeDays=Xm,t.timeWeek=Vm,t.timeWeeks=Km,t.timeSunday=Vm,t.timeSundays=Km,t.timeMonday=$m,t.timeMondays=tx,t.timeTuesday=Wm,t.timeTuesdays=nx,t.timeWednesday=Zm,t.timeWednesdays=ex,t.timeThursday=Gm,t.timeThursdays=rx,t.timeFriday=Jm,t.timeFridays=ix,t.timeSaturday=Qm,t.timeSaturdays=ox,t.timeMonth=ux,t.timeMonths=ax,t.timeYear=cx,t.timeYears=sx,t.utcMinute=fx,t.utcMinutes=lx,t.utcHour=hx,t.utcHours=px,t.utcDay=dx,t.utcDays=vx,t.utcWeek=_x,t.utcWeeks=Mx,t.utcSunday=_x,t.utcSundays=Mx,t.utcMonday=gx,t.utcMondays=Tx,t.utcTuesday=yx,t.utcTuesdays=kx,t.utcWednesday=mx,t.utcWednesdays=Sx,t.utcThursday=xx,t.utcThursdays=Nx,t.utcFriday=bx,t.utcFridays=Ex,t.utcSaturday=wx,t.utcSaturdays=Ax,t.utcMonth=Cx,t.utcMonths=zx,t.utcYear=Px,t.utcYears=Rx,t.timeFormatDefaultLocale=Za,t.timeFormatLocale=na,t.isoFormat=Fx,t.isoParse=Ix,t.now=dn,t.timer=gn,t.timerFlush=yn,t.timeout=Zh,t.interval=Gh,t.transition=te,t.active=nd,t.interrupt=ap,t.voronoi=Pw,t.zoom=Uw,t.zoomTransform=Es,t.zoomIdentity=Rw,Object.defineProperty(t,"__esModule",{value:!0})});!function(t,n){"object"==typeof exports&&"undefined"!=typeof module?n(require("d3-selection"),require("d3-transition")):"function"==typeof define&&define.amd?define(["d3-selection","d3-transition"],n):n(t.d3,t.d3)}(this,function(t,n){"use strict";function r(n,r){return n.each(function(){var n=r.apply(this,arguments),e=t.select(this);for(var i in n)e.attr(i,n[i])})}function e(t,n){for(var r in n)t.attr(r,n[r]);return t}function i(n,r,e){return n.each(function(){var n=r.apply(this,arguments),i=t.select(this);for(var o in n)i.style(o,n[o],e)})}function o(t,n,r){for(var e in n)t.style(e,n[e],r);return t}function f(n,r){return n.each(function(){var n=r.apply(this,arguments),e=t.select(this);for(var i in n)e.property(i,n[i])})}function u(t,n){for(var r in n)t.property(r,n[r]);return t}function s(n,r){return n.each(function(){var e=r.apply(this,arguments),i=t.select(this).transition(n);for(var o in e)i.attr(o,e[o])})}function c(t,n){for(var r in n)t.attr(r,n[r]);return t}function a(n,r,e){return n.each(function(){var i=r.apply(this,arguments),o=t.select(this).transition(n);for(var f in i)o.style(f,i[f],e)})}function p(t,n,r){for(var e in n)t.style(e,n[e],r);return t}var l=function(t){return("function"==typeof t?r:e)(this,t)},y=function(t,n){return("function"==typeof t?i:o)(this,t,null==n?"":n)},h=function(t){return("function"==typeof t?f:u)(this,t)},v=function(t){return("function"==typeof t?s:c)(this,t)},d=function(t,n){return("function"==typeof t?a:p)(this,t,null==n?"":n)};t.selection.prototype.attrs=l,t.selection.prototype.styles=y,t.selection.prototype.properties=h,n.transition.prototype.attrs=v,n.transition.prototype.styles=d});(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports):typeof define==="function"&&define.amd?define(["exports"],factory):factory(global.d3=global.d3||{})})(this,function(exports){"use strict";function ascending(a,b){return a<b?-1:a>b?1:a>=b?0:NaN}function bisector(compare){if(compare.length===1)compare=ascendingComparator(compare);return{left:function(a,x,lo,hi){if(lo==null)lo=0;if(hi==null)hi=a.length;while(lo<hi){var mid=lo+hi>>>1;if(compare(a[mid],x)<0)lo=mid+1;else hi=mid}return lo},right:function(a,x,lo,hi){if(lo==null)lo=0;if(hi==null)hi=a.length;while(lo<hi){var mid=lo+hi>>>1;if(compare(a[mid],x)>0)hi=mid;else lo=mid+1}return lo}}}function ascendingComparator(f){return function(d,x){return ascending(f(d),x)}}var ascendingBisect=bisector(ascending);var bisectRight=ascendingBisect.right;var bisectLeft=ascendingBisect.left;function descending(a,b){return b<a?-1:b>a?1:b>=a?0:NaN}function number(x){return x===null?NaN:+x}function variance(array,f){var n=array.length,m=0,a,d,s=0,i=-1,j=0;if(f==null){while(++i<n){if(!isNaN(a=number(array[i]))){d=a-m;m+=d/++j;s+=d*(a-m)}}}else{while(++i<n){if(!isNaN(a=number(f(array[i],i,array)))){d=a-m;m+=d/++j;s+=d*(a-m)}}}if(j>1)return s/(j-1)}function deviation(array,f){var v=variance(array,f);return v?Math.sqrt(v):v}function extent(array,f){var i=-1,n=array.length,a,b,c;if(f==null){while(++i<n)if((b=array[i])!=null&&b>=b){a=c=b;break}while(++i<n)if((b=array[i])!=null){if(a>b)a=b;if(c<b)c=b}}else{while(++i<n)if((b=f(array[i],i,array))!=null&&b>=b){a=c=b;break}while(++i<n)if((b=f(array[i],i,array))!=null){if(a>b)a=b;if(c<b)c=b}}return[a,c]}var array=Array.prototype;var slice=array.slice;var map=array.map;function constant(x){return function(){return x}}function identity(x){return x}function range(start,stop,step){start=+start,stop=+stop,step=(n=arguments.length)<2?(stop=start,start=0,1):n<3?1:+step;var i=-1,n=Math.max(0,Math.ceil((stop-start)/step))|0,range=new Array(n);while(++i<n){range[i]=start+i*step}return range}var e10=Math.sqrt(50)
;var e5=Math.sqrt(10);var e2=Math.sqrt(2);function ticks(start,stop,count){var step=tickStep(start,stop,count);return range(Math.ceil(start/step)*step,Math.floor(stop/step)*step+step/2,step)}function tickStep(start,stop,count){var step0=Math.abs(stop-start)/Math.max(0,count),step1=Math.pow(10,Math.floor(Math.log(step0)/Math.LN10)),error=step0/step1;if(error>=e10)step1*=10;else if(error>=e5)step1*=5;else if(error>=e2)step1*=2;return stop<start?-step1:step1}function sturges(values){return Math.ceil(Math.log(values.length)/Math.LN2)+1}function histogram(){var value=identity,domain=extent,threshold=sturges;function histogram(data){var i,n=data.length,x,values=new Array(n);for(i=0;i<n;++i){values[i]=value(data[i],i,data)}var xz=domain(values),x0=xz[0],x1=xz[1],tz=threshold(values,x0,x1);if(!Array.isArray(tz))tz=ticks(x0,x1,tz);var m=tz.length;while(tz[0]<=x0)tz.shift(),--m;while(tz[m-1]>=x1)tz.pop(),--m;var bins=new Array(m+1),bin;for(i=0;i<=m;++i){bin=bins[i]=[];bin.x0=i>0?tz[i-1]:x0;bin.x1=i<m?tz[i]:x1}for(i=0;i<n;++i){x=values[i];if(x0<=x&&x<=x1){bins[bisectRight(tz,x,0,m)].push(data[i])}}return bins}histogram.value=function(_){return arguments.length?(value=typeof _==="function"?_:constant(_),histogram):value};histogram.domain=function(_){return arguments.length?(domain=typeof _==="function"?_:constant([_[0],_[1]]),histogram):domain};histogram.thresholds=function(_){return arguments.length?(threshold=typeof _==="function"?_:Array.isArray(_)?constant(slice.call(_)):constant(_),histogram):threshold};return histogram}function quantile(array,p,f){if(f==null)f=number;if(!(n=array.length))return;if((p=+p)<=0||n<2)return+f(array[0],0,array);if(p>=1)return+f(array[n-1],n-1,array);var n,h=(n-1)*p,i=Math.floor(h),a=+f(array[i],i,array),b=+f(array[i+1],i+1,array);return a+(b-a)*(h-i)}function freedmanDiaconis(values,min,max){values=map.call(values,number).sort(ascending);return Math.ceil((max-min)/(2*(quantile(values,.75)-quantile(values,.25))*Math.pow(values.length,-1/3)))}function scott(values,min,max){return Math.ceil((max-min)/(3.5*deviation(values)*Math.pow(values.length,-1/3)))}function max(array,f){var i=-1,n=array.length,a,b;if(f==null){while(++i<n)if((b=array[i])!=null&&b>=b){a=b;break}while(++i<n)if((b=array[i])!=null&&b>a)a=b}else{while(++i<n)if((b=f(array[i],i,array))!=null&&b>=b){a=b;break}while(++i<n)if((b=f(array[i],i,array))!=null&&b>a)a=b}return a}function mean(array,f){var s=0,n=array.length,a,i=-1,j=n;if(f==null){while(++i<n)if(!isNaN(a=number(array[i])))s+=a;else--j}else{while(++i<n)if(!isNaN(a=number(f(array[i],i,array))))s+=a;else--j}if(j)return s/j}function median(array,f){var numbers=[],n=array.length,a,i=-1;if(f==null){while(++i<n)if(!isNaN(a=number(array[i])))numbers.push(a)}else{while(++i<n)if(!isNaN(a=number(f(array[i],i,array))))numbers.push(a)}return quantile(numbers.sort(ascending),.5)}function merge(arrays){var n=arrays.length,m,i=-1,j=0,merged,array;while(++i<n)j+=arrays[i].length;merged=new Array(j);while(--n>=0){array=arrays[n];m=array.length;while(--m>=0){merged[--j]=array[m]}}return merged}function min(array,f){var i=-1,n=array.length,a,b;if(f==null){while(++i<n)if((b=array[i])!=null&&b>=b){a=b;break}while(++i<n)if((b=array[i])!=null&&a>b)a=b}else{while(++i<n)if((b=f(array[i],i,array))!=null&&b>=b){a=b;break}while(++i<n)if((b=f(array[i],i,array))!=null&&a>b)a=b}return a}function pairs(array){var i=0,n=array.length-1,p=array[0],pairs=new Array(n<0?0:n);while(i<n)pairs[i]=[p,p=array[++i]];return pairs}function permute(array,indexes){var i=indexes.length,permutes=new Array(i);while(i--)permutes[i]=array[indexes[i]];return permutes}function scan(array,compare){if(!(n=array.length))return;var i=0,n,j=0,xi,xj=array[j];if(!compare)compare=ascending;while(++i<n)if(compare(xi=array[i],xj)<0||compare(xj,xj)!==0)xj=xi,j=i;if(compare(xj,xj)===0)return j}function shuffle(array,i0,i1){var m=(i1==null?array.length:i1)-(i0=i0==null?0:+i0),t,i;while(m){i=Math.random()*m--|0;t=array[m+i0];array[m+i0]=array[i+i0];array[i+i0]=t}return array}function sum(array,f){var s=0,n=array.length,a,i=-1;if(f==null){while(++i<n)if(a=+array[i])s+=a}else{while(++i<n)if(a=+f(array[i],i,array))s+=a}return s}function transpose(matrix){if(!(n=matrix.length))return[];for(var i=-1,m=min(matrix,length),transpose=new Array(m);++i<m;){for(var j=-1,n,row=transpose[i]=new Array(n);++j<n;){row[j]=matrix[j][i]}}return transpose}function length(d){return d.length}function zip(){return transpose(arguments)}exports.bisect=bisectRight;exports.bisectRight=bisectRight;exports.bisectLeft=bisectLeft;exports.ascending=ascending;exports.bisector=bisector;exports.descending=descending;exports.deviation=deviation;exports.extent=extent;exports.histogram=histogram;exports.thresholdFreedmanDiaconis=freedmanDiaconis;exports.thresholdScott=scott;exports.thresholdSturges=sturges;exports.max=max;exports.mean=mean;exports.median=median;exports.merge=merge;exports.min=min;exports.pairs=pairs;exports.permute=permute;exports.quantile=quantile;exports.range=range;exports.scan=scan;exports.shuffle=shuffle;exports.sum=sum;exports.ticks=ticks;exports.tickStep=tickStep;exports.transpose=transpose;exports.variance=variance;exports.zip=zip;Object.defineProperty(exports,"__esModule",{value:true})})},{}],2:[function(require,module,exports){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports):typeof define==="function"&&define.amd?define(["exports"],factory):factory(global.d3=global.d3||{})})(this,function(exports){"use strict";var prefix="$";function Map(){}Map.prototype=map.prototype={constructor:Map,has:function(key){return prefix+key in this},get:function(key){return this[prefix+key]},set:function(key,value){this[prefix+key]=value;return this},remove:function(key){var property=prefix+key;return property in this&&delete this[property]},clear:function(){for(var property in this)if(property[0]===prefix)delete this[property]},keys:function(){var keys=[];for(var property in this)if(property[0]===prefix)keys.push(property.slice(1));return keys},values:function(){var values=[];for(var property in this)if(property[0]===prefix)values.push(this[property]);return values},entries:function(){var entries=[];for(var property in this)if(property[0]===prefix)entries.push({key:property.slice(1),value:this[property]});return entries},size:function(){var size=0;for(var property in this)if(property[0]===prefix)++size;return size},empty:function(){for(var property in this)if(property[0]===prefix)return false;return true},each:function(f){for(var property in this)if(property[0]===prefix)f(this[property],property.slice(1),this)}};function map(object,f){var map=new Map;if(object instanceof Map)object.each(function(value,key){map.set(key,value)});else if(Array.isArray(object)){var i=-1,n=object.length,o;if(f==null)while(++i<n)map.set(i,object[i]);else while(++i<n)map.set(f(o=object[i],i,object),o)}else if(object)for(var key in object)map.set(key,object[key]);return map}var nest=function(){var keys=[],sortKeys=[],sortValues,rollup,nest;function apply(array,depth,createResult,setResult){if(depth>=keys.length)return rollup!=null?rollup(array):sortValues!=null?array.sort(sortValues):array;var i=-1,n=array.length,key=keys[depth++],keyValue,value,valuesByKey=map(),values,result=createResult();while(++i<n){if(values=valuesByKey.get(keyValue=key(value=array[i])+"")){values.push(value)}else{valuesByKey.set(keyValue,[value])}}valuesByKey.each(function(values,key){setResult(result,key,apply(values,depth,createResult,setResult))});return result}function entries(map$$1,depth){if(++depth>keys.length)return map$$1;var array,sortKey=sortKeys[depth-1];if(rollup!=null&&depth>=keys.length)array=map$$1.entries();else array=[],map$$1.each(function(v,k){array.push({key:k,values:entries(v,depth)})});return sortKey!=null?array.sort(function(a,b){return sortKey(a.key,b.key)}):array}return nest={object:function(array){return apply(array,0,createObject,setObject)},map:function(array){return apply(array,0,createMap,setMap)},entries:function(array){return entries(apply(array,0,createMap,setMap),0)},key:function(d){keys.push(d);return nest},sortKeys:function(order){sortKeys[keys.length-1]=order;return nest},sortValues:function(order){sortValues=order;return nest},rollup:function(f){rollup=f;return nest}}};function createObject(){return{}}function setObject(object,key,value){object[key]=value}function createMap(){return map()}function setMap(map$$1,key,value){map$$1.set(key,value)}function Set(){}var proto=map.prototype;Set.prototype=set.prototype={constructor:Set,has:proto.has,add:function(value){value+="";this[prefix+value]=value;return this},remove:proto.remove,clear:proto.clear,values:proto.keys,size:proto.size,empty:proto.empty,each:proto.each};function set(object,f){var set=new Set;if(object instanceof Set)object.each(function(value){set.add(value)});else if(object){var i=-1,n=object.length;if(f==null)while(++i<n)set.add(object[i]);else while(++i<n)set.add(f(object[i],i,object))}return set}var keys=function(map){var keys=[];for(var key in map)keys.push(key);return keys};var values=function(map){var values=[];for(var key in map)values.push(map[key]);return values};var entries=function(map){var entries=[];for(var key in map)entries.push({key:key,value:map[key]});return entries};exports.nest=nest;exports.set=set;exports.map=map;exports.keys=keys;exports.values=values;exports.entries=entries;Object.defineProperty(exports,"__esModule",{value:true})})},{}],3:[function(require,module,exports){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports):typeof define==="function"&&define.amd?define(["exports"],factory):factory(global.d3=global.d3||{})})(this,function(exports){"use strict";var define=function(constructor,factory,prototype){constructor.prototype=factory.prototype=prototype;prototype.constructor=constructor};function extend(parent,definition){var prototype=Object.create(parent.prototype);for(var key in definition)prototype[key]=definition[key];return prototype}function Color(){}var darker=.7;var brighter=1/darker;var reI="\\s*([+-]?\\d+)\\s*";var reN="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)\\s*";var reP="\\s*([+-]?\\d*\\.?\\d+(?:[eE][+-]?\\d+)?)%\\s*";var reHex3=/^#([0-9a-f]{3})$/;var reHex6=/^#([0-9a-f]{6})$/;var reRgbInteger=new RegExp("^rgb\\("+[reI,reI,reI]+"\\)$");var reRgbPercent=new RegExp("^rgb\\("+[reP,reP,reP]+"\\)$");var reRgbaInteger=new RegExp("^rgba\\("+[reI,reI,reI,reN]+"\\)$");var reRgbaPercent=new RegExp("^rgba\\("+[reP,reP,reP,reN]+"\\)$");var reHslPercent=new RegExp("^hsl\\("+[reN,reP,reP]+"\\)$");var reHslaPercent=new RegExp("^hsla\\("+[reN,reP,reP,reN]+"\\)$");var named={aliceblue:15792383,antiquewhite:16444375,aqua:65535,aquamarine:8388564,azure:15794175,beige:16119260,bisque:16770244,black:0,blanchedalmond:16772045,blue:255,blueviolet:9055202,brown:10824234,burlywood:14596231,cadetblue:6266528,chartreuse:8388352,chocolate:13789470,coral:16744272,cornflowerblue:6591981,cornsilk:16775388,crimson:14423100,cyan:65535,darkblue:139,darkcyan:35723,darkgoldenrod:12092939,darkgray:11119017,darkgreen:25600,darkgrey:11119017,darkkhaki:12433259,darkmagenta:9109643,darkolivegreen:5597999,darkorange:16747520,darkorchid:10040012,darkred:9109504,darksalmon:15308410,darkseagreen:9419919,darkslateblue:4734347,darkslategray:3100495,darkslategrey:3100495,darkturquoise:52945,darkviolet:9699539,deeppink:16716947,deepskyblue:49151,dimgray:6908265,dimgrey:6908265,dodgerblue:2003199,firebrick:11674146,floralwhite:16775920,forestgreen:2263842,fuchsia:16711935,gainsboro:14474460,ghostwhite:16316671,gold:16766720,goldenrod:14329120,gray:8421504,green:32768,greenyellow:11403055,grey:8421504,honeydew:15794160,hotpink:16738740,indianred:13458524,indigo:4915330,ivory:16777200,khaki:15787660,lavender:15132410,lavenderblush:16773365,lawngreen:8190976,lemonchiffon:16775885,lightblue:11393254,lightcoral:15761536,lightcyan:14745599,lightgoldenrodyellow:16448210,lightgray:13882323,lightgreen:9498256,lightgrey:13882323,lightpink:16758465,lightsalmon:16752762,lightseagreen:2142890,lightskyblue:8900346,lightslategray:7833753,lightslategrey:7833753,lightsteelblue:11584734,lightyellow:16777184,lime:65280,limegreen:3329330,linen:16445670,magenta:16711935,maroon:8388608,mediumaquamarine:6737322,mediumblue:205,mediumorchid:12211667,mediumpurple:9662683,mediumseagreen:3978097,mediumslateblue:8087790,mediumspringgreen:64154,mediumturquoise:4772300,mediumvioletred:13047173,midnightblue:1644912,mintcream:16121850,mistyrose:16770273,moccasin:16770229,navajowhite:16768685,navy:128,oldlace:16643558,olive:8421376,olivedrab:7048739,orange:16753920,orangered:16729344,orchid:14315734,palegoldenrod:15657130,palegreen:10025880,paleturquoise:11529966,palevioletred:14381203,papayawhip:16773077,peachpuff:16767673,peru:13468991,pink:16761035,plum:14524637,powderblue:11591910,purple:8388736,rebeccapurple:6697881,red:16711680,rosybrown:12357519,royalblue:4286945,saddlebrown:9127187,salmon:16416882,sandybrown:16032864,seagreen:3050327,seashell:16774638,sienna:10506797,silver:12632256,skyblue:8900331,slateblue:6970061,slategray:7372944,slategrey:7372944,snow:16775930,springgreen:65407,steelblue:4620980,tan:13808780,teal:32896,thistle:14204888,tomato:16737095,turquoise:4251856,violet:15631086,wheat:16113331,white:16777215,whitesmoke:16119285,yellow:16776960,yellowgreen:10145074};define(Color,color,{displayable:function(){return this.rgb().displayable()},toString:function(){return this.rgb()+""}});function color(format){var m;format=(format+"").trim().toLowerCase();return(m=reHex3.exec(format))?(m=parseInt(m[1],16),new Rgb(m>>8&15|m>>4&240,m>>4&15|m&240,(m&15)<<4|m&15,1)):(m=reHex6.exec(format))?rgbn(parseInt(m[1],16)):(m=reRgbInteger.exec(format))?new Rgb(m[1],m[2],m[3],1):(m=reRgbPercent.exec(format))?new Rgb(m[1]*255/100,m[2]*255/100,m[3]*255/100,1):(m=reRgbaInteger.exec(format))?rgba(m[1],m[2],m[3],m[4]):(m=reRgbaPercent.exec(format))?rgba(m[1]*255/100,m[2]*255/100,m[3]*255/100,m[4]):(m=reHslPercent.exec(format))?hsla(m[1],m[2]/100,m[3]/100,1):(m=reHslaPercent.exec(format))?hsla(m[1],m[2]/100,m[3]/100,m[4]):named.hasOwnProperty(format)?rgbn(named[format]):format==="transparent"?new Rgb(NaN,NaN,NaN,0):null}function rgbn(n){return new Rgb(n>>16&255,n>>8&255,n&255,1)}function rgba(r,g,b,a){if(a<=0)r=g=b=NaN;return new Rgb(r,g,b,a)}function rgbConvert(o){if(!(o instanceof Color))o=color(o);if(!o)return new Rgb;o=o.rgb();return new Rgb(o.r,o.g,o.b,o.opacity)}function rgb(r,g,b,opacity){return arguments.length===1?rgbConvert(r):new Rgb(r,g,b,opacity==null?1:opacity)}function Rgb(r,g,b,opacity){this.r=+r;this.g=+g;this.b=+b;this.opacity=+opacity}define(Rgb,rgb,extend(Color,{brighter:function(k){k=k==null?brighter:Math.pow(brighter,k);return new Rgb(this.r*k,this.g*k,this.b*k,this.opacity)},darker:function(k){k=k==null?darker:Math.pow(darker,k);return new Rgb(this.r*k,this.g*k,this.b*k,this.opacity)},rgb:function(){return this},displayable:function(){return 0<=this.r&&this.r<=255&&(0<=this.g&&this.g<=255)&&(0<=this.b&&this.b<=255)&&(0<=this.opacity&&this.opacity<=1)},toString:function(){var a=this.opacity;a=isNaN(a)?1:Math.max(0,Math.min(1,a));return(a===1?"rgb(":"rgba(")+Math.max(0,Math.min(255,Math.round(this.r)||0))+", "+Math.max(0,Math.min(255,Math.round(this.g)||0))+", "+Math.max(0,Math.min(255,Math.round(this.b)||0))+(a===1?")":", "+a+")")}}));function hsla(h,s,l,a){if(a<=0)h=s=l=NaN;else if(l<=0||l>=1)h=s=NaN;else if(s<=0)h=NaN;return new Hsl(h,s,l,a)}function hslConvert(o){if(o instanceof Hsl)return new Hsl(o.h,o.s,o.l,o.opacity);if(!(o instanceof Color))o=color(o);if(!o)return new Hsl;if(o instanceof Hsl)return o;o=o.rgb();var r=o.r/255,g=o.g/255,b=o.b/255,min=Math.min(r,g,b),max=Math.max(r,g,b),h=NaN,s=max-min,l=(max+min)/2;if(s){if(r===max)h=(g-b)/s+(g<b)*6;else if(g===max)h=(b-r)/s+2;else h=(r-g)/s+4;s/=l<.5?max+min:2-max-min;h*=60}else{s=l>0&&l<1?0:h}return new Hsl(h,s,l,o.opacity)}function hsl(h,s,l,opacity){return arguments.length===1?hslConvert(h):new Hsl(h,s,l,opacity==null?1:opacity)}function Hsl(h,s,l,opacity){this.h=+h;this.s=+s;this.l=+l;this.opacity=+opacity}define(Hsl,hsl,extend(Color,{brighter:function(k){k=k==null?brighter:Math.pow(brighter,k);return new Hsl(this.h,this.s,this.l*k,this.opacity)},darker:function(k){k=k==null?darker:Math.pow(darker,k);return new Hsl(this.h,this.s,this.l*k,this.opacity)},rgb:function(){var h=this.h%360+(this.h<0)*360,s=isNaN(h)||isNaN(this.s)?0:this.s,l=this.l,m2=l+(l<.5?l:1-l)*s,m1=2*l-m2;return new Rgb(hsl2rgb(h>=240?h-240:h+120,m1,m2),hsl2rgb(h,m1,m2),hsl2rgb(h<120?h+240:h-120,m1,m2),this.opacity)},displayable:function(){return(0<=this.s&&this.s<=1||isNaN(this.s))&&(0<=this.l&&this.l<=1)&&(0<=this.opacity&&this.opacity<=1)}}));function hsl2rgb(h,m1,m2){return(h<60?m1+(m2-m1)*h/60:h<180?m2:h<240?m1+(m2-m1)*(240-h)/60:m1)*255}var deg2rad=Math.PI/180;var rad2deg=180/Math.PI;var Kn=18;var Xn=.95047;var Yn=1;var Zn=1.08883;var t0=4/29;var t1=6/29;var t2=3*t1*t1;var t3=t1*t1*t1;function labConvert(o){if(o instanceof Lab)return new Lab(o.l,o.a,o.b,o.opacity);if(o instanceof Hcl){var h=o.h*deg2rad;return new Lab(o.l,Math.cos(h)*o.c,Math.sin(h)*o.c,o.opacity)}if(!(o instanceof Rgb))o=rgbConvert(o);var b=rgb2xyz(o.r),a=rgb2xyz(o.g),l=rgb2xyz(o.b),x=xyz2lab((.4124564*b+.3575761*a+.1804375*l)/Xn),y=xyz2lab((.2126729*b+.7151522*a+.072175*l)/Yn),z=xyz2lab((.0193339*b+.119192*a+.9503041*l)/Zn);return new Lab(116*y-16,500*(x-y),200*(y-z),o.opacity)}function lab(l,a,b,opacity){return arguments.length===1?labConvert(l):new Lab(l,a,b,opacity==null?1:opacity)}function Lab(l,a,b,opacity){this.l=+l;this.a=+a;this.b=+b;this.opacity=+opacity}define(Lab,lab,extend(Color,{brighter:function(k){return new Lab(this.l+Kn*(k==null?1:k),this.a,this.b,this.opacity)},darker:function(k){return new Lab(this.l-Kn*(k==null?1:k),this.a,this.b,this.opacity)},rgb:function(){var y=(this.l+16)/116,x=isNaN(this.a)?y:y+this.a/500,z=isNaN(this.b)?y:y-this.b/200;y=Yn*lab2xyz(y);x=Xn*lab2xyz(x);z=Zn*lab2xyz(z);return new Rgb(xyz2rgb(3.2404542*x-1.5371385*y-.4985314*z),xyz2rgb(-.969266*x+1.8760108*y+.041556*z),xyz2rgb(.0556434*x-.2040259*y+1.0572252*z),this.opacity)}}));function xyz2lab(t){return t>t3?Math.pow(t,1/3):t/t2+t0}function lab2xyz(t){return t>t1?t*t*t:t2*(t-t0)}function xyz2rgb(x){return 255*(x<=.0031308?12.92*x:1.055*Math.pow(x,1/2.4)-.055)}function rgb2xyz(x){return(x/=255)<=.04045?x/12.92:Math.pow((x+.055)/1.055,2.4)}function hclConvert(o){if(o instanceof Hcl)return new Hcl(o.h,o.c,o.l,o.opacity);if(!(o instanceof Lab))o=labConvert(o);var h=Math.atan2(o.b,o.a)*rad2deg;return new Hcl(h<0?h+360:h,Math.sqrt(o.a*o.a+o.b*o.b),o.l,o.opacity)}function hcl(h,c,l,opacity){return arguments.length===1?hclConvert(h):new Hcl(h,c,l,opacity==null?1:opacity)}function Hcl(h,c,l,opacity){this.h=+h;this.c=+c;this.l=+l;this.opacity=+opacity}define(Hcl,hcl,extend(Color,{brighter:function(k){return new Hcl(this.h,this.c,this.l+Kn*(k==null?1:k),this.opacity)},darker:function(k){return new Hcl(this.h,this.c,this.l-Kn*(k==null?1:k),this.opacity)},rgb:function(){return labConvert(this).rgb()}}));var A=-.14861;var B=+1.78277;var C=-.29227;var D=-.90649;var E=+1.97294;var ED=E*D;var EB=E*B;var BC_DA=B*C-D*A;function cubehelixConvert(o){if(o instanceof Cubehelix)return new Cubehelix(o.h,o.s,o.l,o.opacity);if(!(o instanceof Rgb))o=rgbConvert(o);var r=o.r/255,g=o.g/255,b=o.b/255,l=(BC_DA*b+ED*r-EB*g)/(BC_DA+ED-EB),bl=b-l,k=(E*(g-l)-C*bl)/D,s=Math.sqrt(k*k+bl*bl)/(E*l*(1-l)),h=s?Math.atan2(k,bl)*rad2deg-120:NaN;return new Cubehelix(h<0?h+360:h,s,l,o.opacity)}function cubehelix(h,s,l,opacity){return arguments.length===1?cubehelixConvert(h):new Cubehelix(h,s,l,opacity==null?1:opacity)}function Cubehelix(h,s,l,opacity){this.h=+h;this.s=+s;this.l=+l;this.opacity=+opacity}define(Cubehelix,cubehelix,extend(Color,{brighter:function(k){k=k==null?brighter:Math.pow(brighter,k);return new Cubehelix(this.h,this.s,this.l*k,this.opacity)},darker:function(k){k=k==null?darker:Math.pow(darker,k);return new Cubehelix(this.h,this.s,this.l*k,this.opacity)},rgb:function(){var h=isNaN(this.h)?0:(this.h+120)*deg2rad,l=+this.l,a=isNaN(this.s)?0:this.s*l*(1-l),cosh=Math.cos(h),sinh=Math.sin(h);return new Rgb(255*(l+a*(A*cosh+B*sinh)),255*(l+a*(C*cosh+D*sinh)),255*(l+a*(E*cosh)),this.opacity)}}));exports.color=color;exports.rgb=rgb;exports.hsl=hsl;exports.lab=lab;exports.hcl=hcl;exports.cubehelix=cubehelix;Object.defineProperty(exports,"__esModule",{value:true})})},{}],4:[function(require,module,exports){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports):typeof define==="function"&&define.amd?define(["exports"],factory):factory(global.d3=global.d3||{})})(this,function(exports){"use strict";var noop={value:function(){}};function dispatch(){for(var i=0,n=arguments.length,_={},t;i<n;++i){if(!(t=arguments[i]+"")||t in _)throw new Error("illegal type: "+t);_[t]=[]}return new Dispatch(_)}function Dispatch(_){this._=_}function parseTypenames(typenames,types){return typenames.trim().split(/^|\s+/).map(function(t){var name="",i=t.indexOf(".");if(i>=0)name=t.slice(i+1),t=t.slice(0,i);if(t&&!types.hasOwnProperty(t))throw new Error("unknown type: "+t);return{type:t,name:name}})}Dispatch.prototype=dispatch.prototype={constructor:Dispatch,on:function(typename,callback){var _=this._,T=parseTypenames(typename+"",_),t,i=-1,n=T.length;if(arguments.length<2){while(++i<n)if((t=(typename=T[i]).type)&&(t=get(_[t],typename.name)))return t;return}if(callback!=null&&typeof callback!=="function")throw new Error("invalid callback: "+callback);while(++i<n){if(t=(typename=T[i]).type)_[t]=set(_[t],typename.name,callback);else if(callback==null)for(t in _)_[t]=set(_[t],typename.name,null)}return this},copy:function(){var copy={},_=this._;for(var t in _)copy[t]=_[t].slice();return new Dispatch(copy)},call:function(type,that){if((n=arguments.length-2)>0)for(var args=new Array(n),i=0,n,t;i<n;++i)args[i]=arguments[i+2];if(!this._.hasOwnProperty(type))throw new Error("unknown type: "+type);for(t=this._[type],i=0,n=t.length;i<n;++i)t[i].value.apply(that,args)},apply:function(type,that,args){if(!this._.hasOwnProperty(type))throw new Error("unknown type: "+type);for(var t=this._[type],i=0,n=t.length;i<n;++i)t[i].value.apply(that,args)}};function get(type,name){for(var i=0,n=type.length,c;i<n;++i){if((c=type[i]).name===name){return c.value}}}function set(type,name,callback){for(var i=0,n=type.length;i<n;++i){if(type[i].name===name){type[i]=noop,type=type.slice(0,i).concat(type.slice(i+1));break}}if(callback!=null)type.push({name:name,value:callback});return type}exports.dispatch=dispatch;Object.defineProperty(exports,"__esModule",{value:true})})},{}],5:[function(require,module,exports){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports):typeof define==="function"&&define.amd?define(["exports"],factory):factory(global.d3=global.d3||{})})(this,function(exports){"use strict";function formatDecimal(x,p){if((i=(x=p?x.toExponential(p-1):x.toExponential()).indexOf("e"))<0)return null;var i,coefficient=x.slice(0,i);return[coefficient.length>1?coefficient[0]+coefficient.slice(2):coefficient,+x.slice(i+1)]}function exponent(x){return x=formatDecimal(Math.abs(x)),x?x[1]:NaN}function formatGroup(grouping,thousands){return function(value,width){var i=value.length,t=[],j=0,g=grouping[0],length=0;while(i>0&&g>0){if(length+g+1>width)g=Math.max(1,width-length);t.push(value.substring(i-=g,i+g));if((length+=g+1)>width)break;g=grouping[j=(j+1)%grouping.length]}return t.reverse().join(thousands)}}function formatDefault(x,p){x=x.toPrecision(p);out:for(var n=x.length,i=1,i0=-1,i1;i<n;++i){switch(x[i]){case".":i0=i1=i;break;case"0":if(i0===0)i0=i;i1=i;break;case"e":break out;default:if(i0>0)i0=0;break}}return i0>0?x.slice(0,i0)+x.slice(i1+1):x}var prefixExponent;function formatPrefixAuto(x,p){var d=formatDecimal(x,p);if(!d)return x+"";var coefficient=d[0],exponent=d[1],i=exponent-(prefixExponent=Math.max(-8,Math.min(8,Math.floor(exponent/3)))*3)+1,n=coefficient.length;return i===n?coefficient:i>n?coefficient+new Array(i-n+1).join("0"):i>0?coefficient.slice(0,i)+"."+coefficient.slice(i):"0."+new Array(1-i).join("0")+formatDecimal(x,Math.max(0,p+i-1))[0]}function formatRounded(x,p){var d=formatDecimal(x,p);if(!d)return x+"";var coefficient=d[0],exponent=d[1];return exponent<0?"0."+new Array(-exponent).join("0")+coefficient:coefficient.length>exponent+1?coefficient.slice(0,exponent+1)+"."+coefficient.slice(exponent+1):coefficient+new Array(exponent-coefficient.length+2).join("0")}var formatTypes={"":formatDefault,"%":function(x,p){return(x*100).toFixed(p)},b:function(x){return Math.round(x).toString(2)},c:function(x){return x+""},d:function(x){return Math.round(x).toString(10)},e:function(x,p){return x.toExponential(p)},f:function(x,p){return x.toFixed(p)},g:function(x,p){return x.toPrecision(p)},o:function(x){return Math.round(x).toString(8)},p:function(x,p){return formatRounded(x*100,p)},r:formatRounded,s:formatPrefixAuto,X:function(x){return Math.round(x).toString(16).toUpperCase()},x:function(x){return Math.round(x).toString(16)}};var re=/^(?:(.)?([<>=^]))?([+\-\( ])?([$#])?(0)?(\d+)?(,)?(\.\d+)?([a-z%])?$/i;function formatSpecifier(specifier){return new FormatSpecifier(specifier)}function FormatSpecifier(specifier){if(!(match=re.exec(specifier)))throw new Error("invalid format: "+specifier);var match,fill=match[1]||" ",align=match[2]||">",sign=match[3]||"-",symbol=match[4]||"",zero=!!match[5],width=match[6]&&+match[6],comma=!!match[7],precision=match[8]&&+match[8].slice(1),type=match[9]||"";if(type==="n")comma=true,type="g";else if(!formatTypes[type])type="";if(zero||fill==="0"&&align==="=")zero=true,fill="0",align="=";this.fill=fill;this.align=align;this.sign=sign;this.symbol=symbol;this.zero=zero;this.width=width;this.comma=comma;this.precision=precision;this.type=type}FormatSpecifier.prototype.toString=function(){return this.fill+this.align+this.sign+this.symbol+(this.zero?"0":"")+(this.width==null?"":Math.max(1,this.width|0))+(this.comma?",":"")+(this.precision==null?"":"."+Math.max(0,this.precision|0))+this.type};var prefixes=["y","z","a","f","p","n","µ","m","","k","M","G","T","P","E","Z","Y"];function identity(x){return x}function formatLocale(locale){var group=locale.grouping&&locale.thousands?formatGroup(locale.grouping,locale.thousands):identity,currency=locale.currency,decimal=locale.decimal;function newFormat(specifier){specifier=formatSpecifier(specifier);var fill=specifier.fill,align=specifier.align,sign=specifier.sign,symbol=specifier.symbol,zero=specifier.zero,width=specifier.width,comma=specifier.comma,precision=specifier.precision,type=specifier.type;var prefix=symbol==="$"?currency[0]:symbol==="#"&&/[boxX]/.test(type)?"0"+type.toLowerCase():"",suffix=symbol==="$"?currency[1]:/[%p]/.test(type)?"%":"";var formatType=formatTypes[type],maybeSuffix=!type||/[defgprs%]/.test(type);precision=precision==null?type?6:12:/[gprs]/.test(type)?Math.max(1,Math.min(21,precision)):Math.max(0,Math.min(20,precision));function format(value){var valuePrefix=prefix,valueSuffix=suffix,i,n,c;if(type==="c"){valueSuffix=formatType(value)+valueSuffix;value=""}else{value=+value;var valueNegative=(value<0||1/value<0)&&(value*=-1,true);value=formatType(value,precision);if(valueNegative){i=-1,n=value.length;valueNegative=false;while(++i<n){if(c=value.charCodeAt(i),48<c&&c<58||type==="x"&&96<c&&c<103||type==="X"&&64<c&&c<71){valueNegative=true;break}}}valuePrefix=(valueNegative?sign==="("?sign:"-":sign==="-"||sign==="("?"":sign)+valuePrefix;valueSuffix=valueSuffix+(type==="s"?prefixes[8+prefixExponent/3]:"")+(valueNegative&&sign==="("?")":"");if(maybeSuffix){i=-1,n=value.length;while(++i<n){if(c=value.charCodeAt(i),48>c||c>57){valueSuffix=(c===46?decimal+value.slice(i+1):value.slice(i))+valueSuffix;value=value.slice(0,i);break}}}}if(comma&&!zero)value=group(value,Infinity);var length=valuePrefix.length+value.length+valueSuffix.length,padding=length<width?new Array(width-length+1).join(fill):"";if(comma&&zero)value=group(padding+value,padding.length?width-valueSuffix.length:Infinity),padding="";switch(align){case"<":return valuePrefix+value+valueSuffix+padding;case"=":return valuePrefix+padding+value+valueSuffix;case"^":return padding.slice(0,length=padding.length>>1)+valuePrefix+value+valueSuffix+padding.slice(length)}return padding+valuePrefix+value+valueSuffix}format.toString=function(){return specifier+""};return format}function formatPrefix(specifier,value){var f=newFormat((specifier=formatSpecifier(specifier),specifier.type="f",specifier)),e=Math.max(-8,Math.min(8,Math.floor(exponent(value)/3)))*3,k=Math.pow(10,-e),prefix=prefixes[8+e/3];return function(value){return f(k*value)+prefix}}return{format:newFormat,formatPrefix:formatPrefix}}var locale;defaultLocale({decimal:".",thousands:",",grouping:[3],currency:["$",""]});function defaultLocale(definition){locale=formatLocale(definition);exports.format=locale.format;exports.formatPrefix=locale.formatPrefix;return locale}function precisionFixed(step){return Math.max(0,-exponent(Math.abs(step)))}function precisionPrefix(step,value){return Math.max(0,Math.max(-8,Math.min(8,Math.floor(exponent(value)/3)))*3-exponent(Math.abs(step)))}function precisionRound(step,max){step=Math.abs(step),max=Math.abs(max)-step;return Math.max(0,exponent(max)-exponent(step))+1}exports.formatDefaultLocale=defaultLocale;exports.formatLocale=formatLocale;exports.formatSpecifier=formatSpecifier;exports.precisionFixed=precisionFixed;exports.precisionPrefix=precisionPrefix;exports.precisionRound=precisionRound;Object.defineProperty(exports,"__esModule",{value:true})})},{}],6:[function(require,module,exports){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports,require("d3-color")):typeof define==="function"&&define.amd?define(["exports","d3-color"],factory):factory(global.d3=global.d3||{},global.d3)})(this,function(exports,d3Color){"use strict";function basis(t1,v0,v1,v2,v3){var t2=t1*t1,t3=t2*t1;return((1-3*t1+3*t2-t3)*v0+(4-6*t2+3*t3)*v1+(1+3*t1+3*t2-3*t3)*v2+t3*v3)/6}var basis$1=function(values){var n=values.length-1;return function(t){var i=t<=0?t=0:t>=1?(t=1,n-1):Math.floor(t*n),v1=values[i],v2=values[i+1],v0=i>0?values[i-1]:2*v1-v2,v3=i<n-1?values[i+2]:2*v2-v1;return basis((t-i/n)*n,v0,v1,v2,v3)}};var basisClosed=function(values){var n=values.length;return function(t){var i=Math.floor(((t%=1)<0?++t:t)*n),v0=values[(i+n-1)%n],v1=values[i%n],v2=values[(i+1)%n],v3=values[(i+2)%n];return basis((t-i/n)*n,v0,v1,v2,v3)}};var constant=function(x){return function(){return x}};function linear(a,d){return function(t){return a+t*d}}function exponential(a,b,y){return a=Math.pow(a,y),b=Math.pow(b,y)-a,y=1/y,function(t){return Math.pow(a+t*b,y)}}function hue(a,b){var d=b-a;return d?linear(a,d>180||d<-180?d-360*Math.round(d/360):d):constant(isNaN(a)?b:a)}function gamma(y){return(y=+y)===1?nogamma:function(a,b){return b-a?exponential(a,b,y):constant(isNaN(a)?b:a)}}function nogamma(a,b){var d=b-a;return d?linear(a,d):constant(isNaN(a)?b:a)}var rgb$1=function rgbGamma(y){var color$$1=gamma(y);function rgb$$1(start,end){var r=color$$1((start=d3Color.rgb(start)).r,(end=d3Color.rgb(end)).r),g=color$$1(start.g,end.g),b=color$$1(start.b,end.b),opacity=color$$1(start.opacity,end.opacity);return function(t){start.r=r(t);start.g=g(t);start.b=b(t);start.opacity=opacity(t);return start+""}}rgb$$1.gamma=rgbGamma;return rgb$$1}(1);function rgbSpline(spline){return function(colors){var n=colors.length,r=new Array(n),g=new Array(n),b=new Array(n),i,color$$1;for(i=0;i<n;++i){color$$1=d3Color.rgb(colors[i]);r[i]=color$$1.r||0;g[i]=color$$1.g||0;b[i]=color$$1.b||0}r=spline(r);g=spline(g);b=spline(b);color$$1.opacity=1;return function(t){color$$1.r=r(t);color$$1.g=g(t);color$$1.b=b(t);return color$$1+""}}}var rgbBasis=rgbSpline(basis$1);var rgbBasisClosed=rgbSpline(basisClosed);var array=function(a,b){
var nb=b?b.length:0,na=a?Math.min(nb,a.length):0,x=new Array(nb),c=new Array(nb),i;for(i=0;i<na;++i)x[i]=value(a[i],b[i]);for(;i<nb;++i)c[i]=b[i];return function(t){for(i=0;i<na;++i)c[i]=x[i](t);return c}};var date=function(a,b){var d=new Date;return a=+a,b-=a,function(t){return d.setTime(a+b*t),d}};var number=function(a,b){return a=+a,b-=a,function(t){return a+b*t}};var object=function(a,b){var i={},c={},k;if(a===null||typeof a!=="object")a={};if(b===null||typeof b!=="object")b={};for(k in b){if(k in a){i[k]=value(a[k],b[k])}else{c[k]=b[k]}}return function(t){for(k in i)c[k]=i[k](t);return c}};var reA=/[-+]?(?:\d+\.?\d*|\.?\d+)(?:[eE][-+]?\d+)?/g;var reB=new RegExp(reA.source,"g");function zero(b){return function(){return b}}function one(b){return function(t){return b(t)+""}}var string=function(a,b){var bi=reA.lastIndex=reB.lastIndex=0,am,bm,bs,i=-1,s=[],q=[];a=a+"",b=b+"";while((am=reA.exec(a))&&(bm=reB.exec(b))){if((bs=bm.index)>bi){bs=b.slice(bi,bs);if(s[i])s[i]+=bs;else s[++i]=bs}if((am=am[0])===(bm=bm[0])){if(s[i])s[i]+=bm;else s[++i]=bm}else{s[++i]=null;q.push({i:i,x:number(am,bm)})}bi=reB.lastIndex}if(bi<b.length){bs=b.slice(bi);if(s[i])s[i]+=bs;else s[++i]=bs}return s.length<2?q[0]?one(q[0].x):zero(b):(b=q.length,function(t){for(var i=0,o;i<b;++i)s[(o=q[i]).i]=o.x(t);return s.join("")})};var value=function(a,b){var t=typeof b,c;return b==null||t==="boolean"?constant(b):(t==="number"?number:t==="string"?(c=d3Color.color(b))?(b=c,rgb$1):string:b instanceof d3Color.color?rgb$1:b instanceof Date?date:Array.isArray(b)?array:isNaN(b)?object:number)(a,b)};var round=function(a,b){return a=+a,b-=a,function(t){return Math.round(a+b*t)}};var degrees=180/Math.PI;var identity={translateX:0,translateY:0,rotate:0,skewX:0,scaleX:1,scaleY:1};var decompose=function(a,b,c,d,e,f){var scaleX,scaleY,skewX;if(scaleX=Math.sqrt(a*a+b*b))a/=scaleX,b/=scaleX;if(skewX=a*c+b*d)c-=a*skewX,d-=b*skewX;if(scaleY=Math.sqrt(c*c+d*d))c/=scaleY,d/=scaleY,skewX/=scaleY;if(a*d<b*c)a=-a,b=-b,skewX=-skewX,scaleX=-scaleX;return{translateX:e,translateY:f,rotate:Math.atan2(b,a)*degrees,skewX:Math.atan(skewX)*degrees,scaleX:scaleX,scaleY:scaleY}};var cssNode;var cssRoot;var cssView;var svgNode;function parseCss(value){if(value==="none")return identity;if(!cssNode)cssNode=document.createElement("DIV"),cssRoot=document.documentElement,cssView=document.defaultView;cssNode.style.transform=value;value=cssView.getComputedStyle(cssRoot.appendChild(cssNode),null).getPropertyValue("transform");cssRoot.removeChild(cssNode);value=value.slice(7,-1).split(",");return decompose(+value[0],+value[1],+value[2],+value[3],+value[4],+value[5])}function parseSvg(value){if(value==null)return identity;if(!svgNode)svgNode=document.createElementNS("http://www.w3.org/2000/svg","g");svgNode.setAttribute("transform",value);if(!(value=svgNode.transform.baseVal.consolidate()))return identity;value=value.matrix;return decompose(value.a,value.b,value.c,value.d,value.e,value.f)}function interpolateTransform(parse,pxComma,pxParen,degParen){function pop(s){return s.length?s.pop()+" ":""}function translate(xa,ya,xb,yb,s,q){if(xa!==xb||ya!==yb){var i=s.push("translate(",null,pxComma,null,pxParen);q.push({i:i-4,x:number(xa,xb)},{i:i-2,x:number(ya,yb)})}else if(xb||yb){s.push("translate("+xb+pxComma+yb+pxParen)}}function rotate(a,b,s,q){if(a!==b){if(a-b>180)b+=360;else if(b-a>180)a+=360;q.push({i:s.push(pop(s)+"rotate(",null,degParen)-2,x:number(a,b)})}else if(b){s.push(pop(s)+"rotate("+b+degParen)}}function skewX(a,b,s,q){if(a!==b){q.push({i:s.push(pop(s)+"skewX(",null,degParen)-2,x:number(a,b)})}else if(b){s.push(pop(s)+"skewX("+b+degParen)}}function scale(xa,ya,xb,yb,s,q){if(xa!==xb||ya!==yb){var i=s.push(pop(s)+"scale(",null,",",null,")");q.push({i:i-4,x:number(xa,xb)},{i:i-2,x:number(ya,yb)})}else if(xb!==1||yb!==1){s.push(pop(s)+"scale("+xb+","+yb+")")}}return function(a,b){var s=[],q=[];a=parse(a),b=parse(b);translate(a.translateX,a.translateY,b.translateX,b.translateY,s,q);rotate(a.rotate,b.rotate,s,q);skewX(a.skewX,b.skewX,s,q);scale(a.scaleX,a.scaleY,b.scaleX,b.scaleY,s,q);a=b=null;return function(t){var i=-1,n=q.length,o;while(++i<n)s[(o=q[i]).i]=o.x(t);return s.join("")}}}var interpolateTransformCss=interpolateTransform(parseCss,"px, ","px)","deg)");var interpolateTransformSvg=interpolateTransform(parseSvg,", ",")",")");var rho=Math.SQRT2;var rho2=2;var rho4=4;var epsilon2=1e-12;function cosh(x){return((x=Math.exp(x))+1/x)/2}function sinh(x){return((x=Math.exp(x))-1/x)/2}function tanh(x){return((x=Math.exp(2*x))-1)/(x+1)}var zoom=function(p0,p1){var ux0=p0[0],uy0=p0[1],w0=p0[2],ux1=p1[0],uy1=p1[1],w1=p1[2],dx=ux1-ux0,dy=uy1-uy0,d2=dx*dx+dy*dy,i,S;if(d2<epsilon2){S=Math.log(w1/w0)/rho;i=function(t){return[ux0+t*dx,uy0+t*dy,w0*Math.exp(rho*t*S)]}}else{var d1=Math.sqrt(d2),b0=(w1*w1-w0*w0+rho4*d2)/(2*w0*rho2*d1),b1=(w1*w1-w0*w0-rho4*d2)/(2*w1*rho2*d1),r0=Math.log(Math.sqrt(b0*b0+1)-b0),r1=Math.log(Math.sqrt(b1*b1+1)-b1);S=(r1-r0)/rho;i=function(t){var s=t*S,coshr0=cosh(r0),u=w0/(rho2*d1)*(coshr0*tanh(rho*s+r0)-sinh(r0));return[ux0+u*dx,uy0+u*dy,w0*coshr0/cosh(rho*s+r0)]}}i.duration=S*1e3;return i};function hsl$1(hue$$1){return function(start,end){var h=hue$$1((start=d3Color.hsl(start)).h,(end=d3Color.hsl(end)).h),s=nogamma(start.s,end.s),l=nogamma(start.l,end.l),opacity=nogamma(start.opacity,end.opacity);return function(t){start.h=h(t);start.s=s(t);start.l=l(t);start.opacity=opacity(t);return start+""}}}var hsl$2=hsl$1(hue);var hslLong=hsl$1(nogamma);function lab$1(start,end){var l=nogamma((start=d3Color.lab(start)).l,(end=d3Color.lab(end)).l),a=nogamma(start.a,end.a),b=nogamma(start.b,end.b),opacity=nogamma(start.opacity,end.opacity);return function(t){start.l=l(t);start.a=a(t);start.b=b(t);start.opacity=opacity(t);return start+""}}function hcl$1(hue$$1){return function(start,end){var h=hue$$1((start=d3Color.hcl(start)).h,(end=d3Color.hcl(end)).h),c=nogamma(start.c,end.c),l=nogamma(start.l,end.l),opacity=nogamma(start.opacity,end.opacity);return function(t){start.h=h(t);start.c=c(t);start.l=l(t);start.opacity=opacity(t);return start+""}}}var hcl$2=hcl$1(hue);var hclLong=hcl$1(nogamma);function cubehelix$1(hue$$1){return function cubehelixGamma(y){y=+y;function cubehelix$$1(start,end){var h=hue$$1((start=d3Color.cubehelix(start)).h,(end=d3Color.cubehelix(end)).h),s=nogamma(start.s,end.s),l=nogamma(start.l,end.l),opacity=nogamma(start.opacity,end.opacity);return function(t){start.h=h(t);start.s=s(t);start.l=l(Math.pow(t,y));start.opacity=opacity(t);return start+""}}cubehelix$$1.gamma=cubehelixGamma;return cubehelix$$1}(1)}var cubehelix$2=cubehelix$1(hue);var cubehelixLong=cubehelix$1(nogamma);var quantize=function(interpolator,n){var samples=new Array(n);for(var i=0;i<n;++i)samples[i]=interpolator(i/(n-1));return samples};exports.interpolate=value;exports.interpolateArray=array;exports.interpolateBasis=basis$1;exports.interpolateBasisClosed=basisClosed;exports.interpolateDate=date;exports.interpolateNumber=number;exports.interpolateObject=object;exports.interpolateRound=round;exports.interpolateString=string;exports.interpolateTransformCss=interpolateTransformCss;exports.interpolateTransformSvg=interpolateTransformSvg;exports.interpolateZoom=zoom;exports.interpolateRgb=rgb$1;exports.interpolateRgbBasis=rgbBasis;exports.interpolateRgbBasisClosed=rgbBasisClosed;exports.interpolateHsl=hsl$2;exports.interpolateHslLong=hslLong;exports.interpolateLab=lab$1;exports.interpolateHcl=hcl$2;exports.interpolateHclLong=hclLong;exports.interpolateCubehelix=cubehelix$2;exports.interpolateCubehelixLong=cubehelixLong;exports.quantize=quantize;Object.defineProperty(exports,"__esModule",{value:true})})},{"d3-color":3}],7:[function(require,module,exports){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports,require("d3-array"),require("d3-collection"),require("d3-interpolate"),require("d3-format"),require("d3-time"),require("d3-time-format"),require("d3-color")):typeof define==="function"&&define.amd?define(["exports","d3-array","d3-collection","d3-interpolate","d3-format","d3-time","d3-time-format","d3-color"],factory):factory(global.d3=global.d3||{},global.d3,global.d3,global.d3,global.d3,global.d3,global.d3,global.d3)})(this,function(exports,d3Array,d3Collection,d3Interpolate,d3Format,d3Time,d3TimeFormat,d3Color){"use strict";var array=Array.prototype;var map$1=array.map;var slice=array.slice;var implicit={name:"implicit"};function ordinal(range){var index=d3Collection.map(),domain=[],unknown=implicit;range=range==null?[]:slice.call(range);function scale(d){var key=d+"",i=index.get(key);if(!i){if(unknown!==implicit)return unknown;index.set(key,i=domain.push(d))}return range[(i-1)%range.length]}scale.domain=function(_){if(!arguments.length)return domain.slice();domain=[],index=d3Collection.map();var i=-1,n=_.length,d,key;while(++i<n)if(!index.has(key=(d=_[i])+""))index.set(key,domain.push(d));return scale};scale.range=function(_){return arguments.length?(range=slice.call(_),scale):range.slice()};scale.unknown=function(_){return arguments.length?(unknown=_,scale):unknown};scale.copy=function(){return ordinal().domain(domain).range(range).unknown(unknown)};return scale}function band(){var scale=ordinal().unknown(undefined),domain=scale.domain,ordinalRange=scale.range,range=[0,1],step,bandwidth,round=false,paddingInner=0,paddingOuter=0,align=.5;delete scale.unknown;function rescale(){var n=domain().length,reverse=range[1]<range[0],start=range[reverse-0],stop=range[1-reverse];step=(stop-start)/Math.max(1,n-paddingInner+paddingOuter*2);if(round)step=Math.floor(step);start+=(stop-start-step*(n-paddingInner))*align;bandwidth=step*(1-paddingInner);if(round)start=Math.round(start),bandwidth=Math.round(bandwidth);var values=d3Array.range(n).map(function(i){return start+step*i});return ordinalRange(reverse?values.reverse():values)}scale.domain=function(_){return arguments.length?(domain(_),rescale()):domain()};scale.range=function(_){return arguments.length?(range=[+_[0],+_[1]],rescale()):range.slice()};scale.rangeRound=function(_){return range=[+_[0],+_[1]],round=true,rescale()};scale.bandwidth=function(){return bandwidth};scale.step=function(){return step};scale.round=function(_){return arguments.length?(round=!!_,rescale()):round};scale.padding=function(_){return arguments.length?(paddingInner=paddingOuter=Math.max(0,Math.min(1,_)),rescale()):paddingInner};scale.paddingInner=function(_){return arguments.length?(paddingInner=Math.max(0,Math.min(1,_)),rescale()):paddingInner};scale.paddingOuter=function(_){return arguments.length?(paddingOuter=Math.max(0,Math.min(1,_)),rescale()):paddingOuter};scale.align=function(_){return arguments.length?(align=Math.max(0,Math.min(1,_)),rescale()):align};scale.copy=function(){return band().domain(domain()).range(range).round(round).paddingInner(paddingInner).paddingOuter(paddingOuter).align(align)};return rescale()}function pointish(scale){var copy=scale.copy;scale.padding=scale.paddingOuter;delete scale.paddingInner;delete scale.paddingOuter;scale.copy=function(){return pointish(copy())};return scale}function point(){return pointish(band().paddingInner(1))}function constant(x){return function(){return x}}function number(x){return+x}var unit=[0,1];function deinterpolate(a,b){return(b-=a=+a)?function(x){return(x-a)/b}:constant(b)}function deinterpolateClamp(deinterpolate){return function(a,b){var d=deinterpolate(a=+a,b=+b);return function(x){return x<=a?0:x>=b?1:d(x)}}}function reinterpolateClamp(reinterpolate){return function(a,b){var r=reinterpolate(a=+a,b=+b);return function(t){return t<=0?a:t>=1?b:r(t)}}}function bimap(domain,range,deinterpolate,reinterpolate){var d0=domain[0],d1=domain[1],r0=range[0],r1=range[1];if(d1<d0)d0=deinterpolate(d1,d0),r0=reinterpolate(r1,r0);else d0=deinterpolate(d0,d1),r0=reinterpolate(r0,r1);return function(x){return r0(d0(x))}}function polymap(domain,range,deinterpolate,reinterpolate){var j=Math.min(domain.length,range.length)-1,d=new Array(j),r=new Array(j),i=-1;if(domain[j]<domain[0]){domain=domain.slice().reverse();range=range.slice().reverse()}while(++i<j){d[i]=deinterpolate(domain[i],domain[i+1]);r[i]=reinterpolate(range[i],range[i+1])}return function(x){var i=d3Array.bisect(domain,x,1,j)-1;return r[i](d[i](x))}}function copy(source,target){return target.domain(source.domain()).range(source.range()).interpolate(source.interpolate()).clamp(source.clamp())}function continuous(deinterpolate$$,reinterpolate){var domain=unit,range=unit,interpolate=d3Interpolate.interpolate,clamp=false,piecewise,output,input;function rescale(){piecewise=Math.min(domain.length,range.length)>2?polymap:bimap;output=input=null;return scale}function scale(x){return(output||(output=piecewise(domain,range,clamp?deinterpolateClamp(deinterpolate$$):deinterpolate$$,interpolate)))(+x)}scale.invert=function(y){return(input||(input=piecewise(range,domain,deinterpolate,clamp?reinterpolateClamp(reinterpolate):reinterpolate)))(+y)};scale.domain=function(_){return arguments.length?(domain=map$1.call(_,number),rescale()):domain.slice()};scale.range=function(_){return arguments.length?(range=slice.call(_),rescale()):range.slice()};scale.rangeRound=function(_){return range=slice.call(_),interpolate=d3Interpolate.interpolateRound,rescale()};scale.clamp=function(_){return arguments.length?(clamp=!!_,rescale()):clamp};scale.interpolate=function(_){return arguments.length?(interpolate=_,rescale()):interpolate};return rescale()}function tickFormat(domain,count,specifier){var start=domain[0],stop=domain[domain.length-1],step=d3Array.tickStep(start,stop,count==null?10:count),precision;specifier=d3Format.formatSpecifier(specifier==null?",f":specifier);switch(specifier.type){case"s":{var value=Math.max(Math.abs(start),Math.abs(stop));if(specifier.precision==null&&!isNaN(precision=d3Format.precisionPrefix(step,value)))specifier.precision=precision;return d3Format.formatPrefix(specifier,value)}case"":case"e":case"g":case"p":case"r":{if(specifier.precision==null&&!isNaN(precision=d3Format.precisionRound(step,Math.max(Math.abs(start),Math.abs(stop)))))specifier.precision=precision-(specifier.type==="e");break}case"f":case"%":{if(specifier.precision==null&&!isNaN(precision=d3Format.precisionFixed(step)))specifier.precision=precision-(specifier.type==="%")*2;break}}return d3Format.format(specifier)}function linearish(scale){var domain=scale.domain;scale.ticks=function(count){var d=domain();return d3Array.ticks(d[0],d[d.length-1],count==null?10:count)};scale.tickFormat=function(count,specifier){return tickFormat(domain(),count,specifier)};scale.nice=function(count){var d=domain(),i=d.length-1,n=count==null?10:count,start=d[0],stop=d[i],step=d3Array.tickStep(start,stop,n);if(step){step=d3Array.tickStep(Math.floor(start/step)*step,Math.ceil(stop/step)*step,n);d[0]=Math.floor(start/step)*step;d[i]=Math.ceil(stop/step)*step;domain(d)}return scale};return scale}function linear(){var scale=continuous(deinterpolate,d3Interpolate.interpolateNumber);scale.copy=function(){return copy(scale,linear())};return linearish(scale)}function identity(){var domain=[0,1];function scale(x){return+x}scale.invert=scale;scale.domain=scale.range=function(_){return arguments.length?(domain=map$1.call(_,number),scale):domain.slice()};scale.copy=function(){return identity().domain(domain)};return linearish(scale)}function nice(domain,interval){domain=domain.slice();var i0=0,i1=domain.length-1,x0=domain[i0],x1=domain[i1],t;if(x1<x0){t=i0,i0=i1,i1=t;t=x0,x0=x1,x1=t}domain[i0]=interval.floor(x0);domain[i1]=interval.ceil(x1);return domain}function deinterpolate$1(a,b){return(b=Math.log(b/a))?function(x){return Math.log(x/a)/b}:constant(b)}function reinterpolate(a,b){return a<0?function(t){return-Math.pow(-b,t)*Math.pow(-a,1-t)}:function(t){return Math.pow(b,t)*Math.pow(a,1-t)}}function pow10(x){return isFinite(x)?+("1e"+x):x<0?0:x}function powp(base){return base===10?pow10:base===Math.E?Math.exp:function(x){return Math.pow(base,x)}}function logp(base){return base===Math.E?Math.log:base===10&&Math.log10||base===2&&Math.log2||(base=Math.log(base),function(x){return Math.log(x)/base})}function reflect(f){return function(x){return-f(-x)}}function log(){var scale=continuous(deinterpolate$1,reinterpolate).domain([1,10]),domain=scale.domain,base=10,logs=logp(10),pows=powp(10);function rescale(){logs=logp(base),pows=powp(base);if(domain()[0]<0)logs=reflect(logs),pows=reflect(pows);return scale}scale.base=function(_){return arguments.length?(base=+_,rescale()):base};scale.domain=function(_){return arguments.length?(domain(_),rescale()):domain()};scale.ticks=function(count){var d=domain(),u=d[0],v=d[d.length-1],r;if(r=v<u)i=u,u=v,v=i;var i=logs(u),j=logs(v),p,k,t,n=count==null?10:+count,z=[];if(!(base%1)&&j-i<n){i=Math.round(i)-1,j=Math.round(j)+1;if(u>0)for(;i<j;++i){for(k=1,p=pows(i);k<base;++k){t=p*k;if(t<u)continue;if(t>v)break;z.push(t)}}else for(;i<j;++i){for(k=base-1,p=pows(i);k>=1;--k){t=p*k;if(t<u)continue;if(t>v)break;z.push(t)}}}else{z=d3Array.ticks(i,j,Math.min(j-i,n)).map(pows)}return r?z.reverse():z};scale.tickFormat=function(count,specifier){if(specifier==null)specifier=base===10?".0e":",";if(typeof specifier!=="function")specifier=d3Format.format(specifier);if(count===Infinity)return specifier;if(count==null)count=10;var k=Math.max(1,base*count/scale.ticks().length);return function(d){var i=d/pows(Math.round(logs(d)));if(i*base<base-.5)i*=base;return i<=k?specifier(d):""}};scale.nice=function(){return domain(nice(domain(),{floor:function(x){return pows(Math.floor(logs(x)))},ceil:function(x){return pows(Math.ceil(logs(x)))}}))};scale.copy=function(){return copy(scale,log().base(base))};return scale}function raise(x,exponent){return x<0?-Math.pow(-x,exponent):Math.pow(x,exponent)}function pow(){var exponent=1,scale=continuous(deinterpolate,reinterpolate),domain=scale.domain;function deinterpolate(a,b){return(b=raise(b,exponent)-(a=raise(a,exponent)))?function(x){return(raise(x,exponent)-a)/b}:constant(b)}function reinterpolate(a,b){b=raise(b,exponent)-(a=raise(a,exponent));return function(t){return raise(a+b*t,1/exponent)}}scale.exponent=function(_){return arguments.length?(exponent=+_,domain(domain())):exponent};scale.copy=function(){return copy(scale,pow().exponent(exponent))};return linearish(scale)}function sqrt(){return pow().exponent(.5)}function quantile$1(){var domain=[],range=[],thresholds=[];function rescale(){var i=0,n=Math.max(1,range.length);thresholds=new Array(n-1);while(++i<n)thresholds[i-1]=d3Array.quantile(domain,i/n);return scale}function scale(x){if(!isNaN(x=+x))return range[d3Array.bisect(thresholds,x)]}scale.invertExtent=function(y){var i=range.indexOf(y);return i<0?[NaN,NaN]:[i>0?thresholds[i-1]:domain[0],i<thresholds.length?thresholds[i]:domain[domain.length-1]]};scale.domain=function(_){if(!arguments.length)return domain.slice();domain=[];for(var i=0,n=_.length,d;i<n;++i)if(d=_[i],d!=null&&!isNaN(d=+d))domain.push(d);domain.sort(d3Array.ascending);return rescale()};scale.range=function(_){return arguments.length?(range=slice.call(_),rescale()):range.slice()};scale.quantiles=function(){return thresholds.slice()};scale.copy=function(){return quantile$1().domain(domain).range(range)};return scale}function quantize(){var x0=0,x1=1,n=1,domain=[.5],range=[0,1];function scale(x){if(x<=x)return range[d3Array.bisect(domain,x,0,n)]}function rescale(){var i=-1;domain=new Array(n);while(++i<n)domain[i]=((i+1)*x1-(i-n)*x0)/(n+1);return scale}scale.domain=function(_){return arguments.length?(x0=+_[0],x1=+_[1],rescale()):[x0,x1]};scale.range=function(_){return arguments.length?(n=(range=slice.call(_)).length-1,rescale()):range.slice()};scale.invertExtent=function(y){var i=range.indexOf(y);return i<0?[NaN,NaN]:i<1?[x0,domain[0]]:i>=n?[domain[n-1],x1]:[domain[i-1],domain[i]]};scale.copy=function(){return quantize().domain([x0,x1]).range(range)};return linearish(scale)}function threshold(){var domain=[.5],range=[0,1],n=1;function scale(x){if(x<=x)return range[d3Array.bisect(domain,x,0,n)]}scale.domain=function(_){return arguments.length?(domain=slice.call(_),n=Math.min(domain.length,range.length-1),scale):domain.slice()};scale.range=function(_){return arguments.length?(range=slice.call(_),n=Math.min(domain.length,range.length-1),scale):range.slice()};scale.invertExtent=function(y){var i=range.indexOf(y);return[domain[i-1],domain[i]]};scale.copy=function(){return threshold().domain(domain).range(range)};return scale}var durationSecond=1e3;var durationMinute=durationSecond*60;var durationHour=durationMinute*60;var durationDay=durationHour*24;var durationWeek=durationDay*7;var durationMonth=durationDay*30;var durationYear=durationDay*365;function date(t){return new Date(t)}function number$1(t){return t instanceof Date?+t:+new Date(+t)}function calendar(year,month,week,day,hour,minute,second,millisecond,format){var scale=continuous(deinterpolate,d3Interpolate.interpolateNumber),invert=scale.invert,domain=scale.domain;var formatMillisecond=format(".%L"),formatSecond=format(":%S"),formatMinute=format("%I:%M"),formatHour=format("%I %p"),formatDay=format("%a %d"),formatWeek=format("%b %d"),formatMonth=format("%B"),formatYear=format("%Y");var tickIntervals=[[second,1,durationSecond],[second,5,5*durationSecond],[second,15,15*durationSecond],[second,30,30*durationSecond],[minute,1,durationMinute],[minute,5,5*durationMinute],[minute,15,15*durationMinute],[minute,30,30*durationMinute],[hour,1,durationHour],[hour,3,3*durationHour],[hour,6,6*durationHour],[hour,12,12*durationHour],[day,1,durationDay],[day,2,2*durationDay],[week,1,durationWeek],[month,1,durationMonth],[month,3,3*durationMonth],[year,1,durationYear]];function tickFormat(date){return(second(date)<date?formatMillisecond:minute(date)<date?formatSecond:hour(date)<date?formatMinute:day(date)<date?formatHour:month(date)<date?week(date)<date?formatDay:formatWeek:year(date)<date?formatMonth:formatYear)(date)}function tickInterval(interval,start,stop,step){if(interval==null)interval=10;if(typeof interval==="number"){var target=Math.abs(stop-start)/interval,i=d3Array.bisector(function(i){return i[2]}).right(tickIntervals,target);if(i===tickIntervals.length){step=d3Array.tickStep(start/durationYear,stop/durationYear,interval);interval=year}else if(i){i=tickIntervals[target/tickIntervals[i-1][2]<tickIntervals[i][2]/target?i-1:i];step=i[1];interval=i[0]}else{step=d3Array.tickStep(start,stop,interval);interval=millisecond}}return step==null?interval:interval.every(step)}scale.invert=function(y){return new Date(invert(y))};scale.domain=function(_){return arguments.length?domain(map$1.call(_,number$1)):domain().map(date)};scale.ticks=function(interval,step){var d=domain(),t0=d[0],t1=d[d.length-1],r=t1<t0,t;if(r)t=t0,t0=t1,t1=t;t=tickInterval(interval,t0,t1,step);t=t?t.range(t0,t1+1):[];return r?t.reverse():t};scale.tickFormat=function(count,specifier){return specifier==null?tickFormat:format(specifier)};scale.nice=function(interval,step){var d=domain();return(interval=tickInterval(interval,d[0],d[d.length-1],step))?domain(nice(d,interval)):scale};scale.copy=function(){return copy(scale,calendar(year,month,week,day,hour,minute,second,millisecond,format))};return scale}function time(){return calendar(d3Time.timeYear,d3Time.timeMonth,d3Time.timeWeek,d3Time.timeDay,d3Time.timeHour,d3Time.timeMinute,d3Time.timeSecond,d3Time.timeMillisecond,d3TimeFormat.timeFormat).domain([new Date(2e3,0,1),new Date(2e3,0,2)])}function utcTime(){return calendar(d3Time.utcYear,d3Time.utcMonth,d3Time.utcWeek,d3Time.utcDay,d3Time.utcHour,d3Time.utcMinute,d3Time.utcSecond,d3Time.utcMillisecond,d3TimeFormat.utcFormat).domain([Date.UTC(2e3,0,1),Date.UTC(2e3,0,2)])}function colors(s){return s.match(/.{6}/g).map(function(x){return"#"+x})}var category10=colors("1f77b4ff7f0e2ca02cd627289467bd8c564be377c27f7f7fbcbd2217becf");var category20b=colors("393b795254a36b6ecf9c9ede6379398ca252b5cf6bcedb9c8c6d31bd9e39e7ba52e7cb94843c39ad494ad6616be7969c7b4173a55194ce6dbdde9ed6");var category20c=colors("3182bd6baed69ecae1c6dbefe6550dfd8d3cfdae6bfdd0a231a35474c476a1d99bc7e9c0756bb19e9ac8bcbddcdadaeb636363969696bdbdbdd9d9d9");var category20=colors("1f77b4aec7e8ff7f0effbb782ca02c98df8ad62728ff98969467bdc5b0d58c564bc49c94e377c2f7b6d27f7f7fc7c7c7bcbd22dbdb8d17becf9edae5");var cubehelix$1=d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(300,.5,0),d3Color.cubehelix(-240,.5,1));var warm=d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(-100,.75,.35),d3Color.cubehelix(80,1.5,.8));var cool=d3Interpolate.interpolateCubehelixLong(d3Color.cubehelix(260,.75,.35),d3Color.cubehelix(80,1.5,.8));var rainbow=d3Color.cubehelix();function rainbow$1(t){if(t<0||t>1)t-=Math.floor(t);var ts=Math.abs(t-.5);rainbow.h=360*t-100;rainbow.s=1.5-1.5*ts;rainbow.l=.8-.9*ts;return rainbow+""}function ramp(range){var n=range.length;return function(t){return range[Math.max(0,Math.min(n-1,Math.floor(t*n)))]}}var viridis=ramp(colors("44015444025645045745055946075a46085c460a5d460b5e470d60470e6147106347116447136548146748166848176948186a481a6c481b6d481c6e481d6f481f70482071482173482374482475482576482677482878482979472a7a472c7a472d7b472e7c472f7d46307e46327e46337f463480453581453781453882443983443a83443b84433d84433e85423f854240864241864142874144874045884046883f47883f48893e49893e4a893e4c8a3d4d8a3d4e8a3c4f8a3c508b3b518b3b528b3a538b3a548c39558c39568c38588c38598c375a8c375b8d365c8d365d8d355e8d355f8d34608d34618d33628d33638d32648e32658e31668e31678e31688e30698e306a8e2f6b8e2f6c8e2e6d8e2e6e8e2e6f8e2d708e2d718e2c718e2c728e2c738e2b748e2b758e2a768e2a778e2a788e29798e297a8e297b8e287c8e287d8e277e8e277f8e27808e26818e26828e26828e25838e25848e25858e24868e24878e23888e23898e238a8d228b8d228c8d228d8d218e8d218f8d21908d21918c20928c20928c20938c1f948c1f958b1f968b1f978b1f988b1f998a1f9a8a1e9b8a1e9c891e9d891f9e891f9f881fa0881fa1881fa1871fa28720a38620a48621a58521a68522a78522a88423a98324aa8325ab8225ac8226ad8127ad8128ae8029af7f2ab07f2cb17e2db27d2eb37c2fb47c31b57b32b67a34b67935b77937b87838b9773aba763bbb753dbc743fbc7340bd7242be7144bf7046c06f48c16e4ac16d4cc26c4ec36b50c46a52c56954c56856c66758c7655ac8645cc8635ec96260ca6063cb5f65cb5e67cc5c69cd5b6ccd5a6ece5870cf5773d05675d05477d1537ad1517cd2507fd34e81d34d84d44b86d54989d5488bd6468ed64590d74393d74195d84098d83e9bd93c9dd93ba0da39a2da37a5db36a8db34aadc32addc30b0dd2fb2dd2db5de2bb8de29bade28bddf26c0df25c2df23c5e021c8e020cae11fcde11dd0e11cd2e21bd5e21ad8e219dae319dde318dfe318e2e418e5e419e7e419eae51aece51befe51cf1e51df4e61ef6e620f8e621fbe723fde725"));var magma=ramp(colors("00000401000501010601010802010902020b02020d03030f03031204041405041606051806051a07061c08071e0907200a08220b09240c09260d0a290e0b2b100b2d110c2f120d31130d34140e36150e38160f3b180f3d19103f1a10421c10441d11471e114920114b21114e22115024125325125527125829115a2a115c2c115f2d11612f116331116533106734106936106b38106c390f6e3b0f703d0f713f0f72400f74420f75440f764510774710784910784a10794c117a4e117b4f127b51127c52137c54137d56147d57157e59157e5a167e5c167f5d177f5f187f601880621980641a80651a80671b80681c816a1c816b1d816d1d816e1e81701f81721f817320817521817621817822817922827b23827c23827e24828025828125818326818426818627818827818928818b29818c29818e2a81902a81912b81932b80942c80962c80982d80992d809b2e7f9c2e7f9e2f7fa02f7fa1307ea3307ea5317ea6317da8327daa337dab337cad347cae347bb0357bb2357bb3367ab5367ab73779b83779ba3878bc3978bd3977bf3a77c03a76c23b75c43c75c53c74c73d73c83e73ca3e72cc3f71cd4071cf4070d0416fd2426fd3436ed5446dd6456cd8456cd9466bdb476adc4869de4968df4a68e04c67e24d66e34e65e44f64e55064e75263e85362e95462ea5661eb5760ec5860ed5a5fee5b5eef5d5ef05f5ef1605df2625df2645cf3655cf4675cf4695cf56b5cf66c5cf66e5cf7705cf7725cf8745cf8765cf9785df9795df97b5dfa7d5efa7f5efa815ffb835ffb8560fb8761fc8961fc8a62fc8c63fc8e64fc9065fd9266fd9467fd9668fd9869fd9a6afd9b6bfe9d6cfe9f6dfea16efea36ffea571fea772fea973feaa74feac76feae77feb078feb27afeb47bfeb67cfeb77efeb97ffebb81febd82febf84fec185fec287fec488fec68afec88cfeca8dfecc8ffecd90fecf92fed194fed395fed597fed799fed89afdda9cfddc9efddea0fde0a1fde2a3fde3a5fde5a7fde7a9fde9aafdebacfcecaefceeb0fcf0b2fcf2b4fcf4b6fcf6b8fcf7b9fcf9bbfcfbbdfcfdbf"));var inferno=ramp(colors("00000401000501010601010802010a02020c02020e03021004031204031405041706041907051b08051d09061f0a07220b07240c08260d08290e092b10092d110a30120a32140b34150b37160b39180c3c190c3e1b0c411c0c431e0c451f0c48210c4a230c4c240c4f260c51280b53290b552b0b572d0b592f0a5b310a5c320a5e340a5f3609613809623909633b09643d09653e0966400a67420a68440a68450a69470b6a490b6a4a0c6b4c0c6b4d0d6c4f0d6c510e6c520e6d540f6d550f6d57106e59106e5a116e5c126e5d126e5f136e61136e62146e64156e65156e67166e69166e6a176e6c186e6d186e6f196e71196e721a6e741a6e751b6e771c6d781c6d7a1d6d7c1d6d7d1e6d7f1e6c801f6c82206c84206b85216b87216b88226a8a226a8c23698d23698f24699025689225689326679526679727669827669a28659b29649d29649f2a63a02a63a22b62a32c61a52c60a62d60a82e5fa92e5eab2f5ead305dae305cb0315bb1325ab3325ab43359b63458b73557b93556ba3655bc3754bd3853bf3952c03a51c13a50c33b4fc43c4ec63d4dc73e4cc83f4bca404acb4149cc4248ce4347cf4446d04545d24644d34743d44842d54a41d74b3fd84c3ed94d3dda4e3cdb503bdd513ade5238df5337e05536e15635e25734e35933e45a31e55c30e65d2fe75e2ee8602de9612bea632aeb6429eb6628ec6726ed6925ee6a24ef6c23ef6e21f06f20f1711ff1731df2741cf3761bf37819f47918f57b17f57d15f67e14f68013f78212f78410f8850ff8870ef8890cf98b0bf98c0af98e09fa9008fa9207fa9407fb9606fb9706fb9906fb9b06fb9d07fc9f07fca108fca309fca50afca60cfca80dfcaa0ffcac11fcae12fcb014fcb216fcb418fbb61afbb81dfbba1ffbbc21fbbe23fac026fac228fac42afac62df9c72ff9c932f9cb35f8cd37f8cf3af7d13df7d340f6d543f6d746f5d949f5db4cf4dd4ff4df53f4e156f3e35af3e55df2e661f2e865f2ea69f1ec6df1ed71f1ef75f1f179f2f27df2f482f3f586f3f68af4f88ef5f992f6fa96f8fb9af9fc9dfafda1fcffa4"));var plasma=ramp(colors("0d088710078813078916078a19068c1b068d1d068e20068f2206902406912605912805922a05932c05942e05952f059631059733059735049837049938049a3a049a3c049b3e049c3f049c41049d43039e44039e46039f48039f4903a04b03a14c02a14e02a25002a25102a35302a35502a45601a45801a45901a55b01a55c01a65e01a66001a66100a76300a76400a76600a76700a86900a86a00a86c00a86e00a86f00a87100a87201a87401a87501a87701a87801a87a02a87b02a87d03a87e03a88004a88104a78305a78405a78606a68707a68808a68a09a58b0aa58d0ba58e0ca48f0da4910ea3920fa39410a29511a19613a19814a099159f9a169f9c179e9d189d9e199da01a9ca11b9ba21d9aa31e9aa51f99a62098a72197a82296aa2395ab2494ac2694ad2793ae2892b02991b12a90b22b8fb32c8eb42e8db52f8cb6308bb7318ab83289ba3388bb3488bc3587bd3786be3885bf3984c03a83c13b82c23c81c33d80c43e7fc5407ec6417dc7427cc8437bc9447aca457acb4679cc4778cc4977cd4a76ce4b75cf4c74d04d73d14e72d24f71d35171d45270d5536fd5546ed6556dd7566cd8576bd9586ada5a6ada5b69db5c68dc5d67dd5e66de5f65de6164df6263e06363e16462e26561e26660e3685fe4695ee56a5de56b5de66c5ce76e5be76f5ae87059e97158e97257ea7457eb7556eb7655ec7754ed7953ed7a52ee7b51ef7c51ef7e50f07f4ff0804ef1814df1834cf2844bf3854bf3874af48849f48948f58b47f58c46f68d45f68f44f79044f79143f79342f89441f89540f9973ff9983ef99a3efa9b3dfa9c3cfa9e3bfb9f3afba139fba238fca338fca537fca636fca835fca934fdab33fdac33fdae32fdaf31fdb130fdb22ffdb42ffdb52efeb72dfeb82cfeba2cfebb2bfebd2afebe2afec029fdc229fdc328fdc527fdc627fdc827fdca26fdcb26fccd25fcce25fcd025fcd225fbd324fbd524fbd724fad824fada24f9dc24f9dd25f8df25f8e125f7e225f7e425f6e626f6e826f5e926f5eb27f4ed27f3ee27f3f027f2f227f1f426f1f525f0f724f0f921"));function sequential(interpolator){var x0=0,x1=1,clamp=false;function scale(x){var t=(x-x0)/(x1-x0);return interpolator(clamp?Math.max(0,Math.min(1,t)):t)}scale.domain=function(_){return arguments.length?(x0=+_[0],x1=+_[1],scale):[x0,x1]};scale.clamp=function(_){return arguments.length?(clamp=!!_,scale):clamp};scale.interpolator=function(_){return arguments.length?(interpolator=_,scale):interpolator};scale.copy=function(){return sequential(interpolator).domain([x0,x1]).clamp(clamp)};return linearish(scale)}exports.scaleBand=band;exports.scalePoint=point;exports.scaleIdentity=identity;exports.scaleLinear=linear;exports.scaleLog=log;exports.scaleOrdinal=ordinal;exports.scaleImplicit=implicit;exports.scalePow=pow;exports.scaleSqrt=sqrt;exports.scaleQuantile=quantile$1;exports.scaleQuantize=quantize;exports.scaleThreshold=threshold
;exports.scaleTime=time;exports.scaleUtc=utcTime;exports.schemeCategory10=category10;exports.schemeCategory20b=category20b;exports.schemeCategory20c=category20c;exports.schemeCategory20=category20;exports.interpolateCubehelixDefault=cubehelix$1;exports.interpolateRainbow=rainbow$1;exports.interpolateWarm=warm;exports.interpolateCool=cool;exports.interpolateViridis=viridis;exports.interpolateMagma=magma;exports.interpolateInferno=inferno;exports.interpolatePlasma=plasma;exports.scaleSequential=sequential;Object.defineProperty(exports,"__esModule",{value:true})})},{"d3-array":1,"d3-collection":2,"d3-color":3,"d3-format":5,"d3-interpolate":6,"d3-time":10,"d3-time-format":9}],8:[function(require,module,exports){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports):typeof define==="function"&&define.amd?define(["exports"],factory):factory(global.d3=global.d3||{})})(this,function(exports){"use strict";var xhtml="http://www.w3.org/1999/xhtml";var namespaces={svg:"http://www.w3.org/2000/svg",xhtml:xhtml,xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/"};function namespace(name){var prefix=name+="",i=prefix.indexOf(":");if(i>=0&&(prefix=name.slice(0,i))!=="xmlns")name=name.slice(i+1);return namespaces.hasOwnProperty(prefix)?{space:namespaces[prefix],local:name}:name}function creatorInherit(name){return function(){var document=this.ownerDocument,uri=this.namespaceURI;return uri===xhtml&&document.documentElement.namespaceURI===xhtml?document.createElement(name):document.createElementNS(uri,name)}}function creatorFixed(fullname){return function(){return this.ownerDocument.createElementNS(fullname.space,fullname.local)}}function creator(name){var fullname=namespace(name);return(fullname.local?creatorFixed:creatorInherit)(fullname)}var nextId=0;function local(){return new Local}function Local(){this._="@"+(++nextId).toString(36)}Local.prototype=local.prototype={constructor:Local,get:function(node){var id=this._;while(!(id in node))if(!(node=node.parentNode))return;return node[id]},set:function(node,value){return node[this._]=value},remove:function(node){return this._ in node&&delete node[this._]},toString:function(){return this._}};var matcher=function(selector){return function(){return this.matches(selector)}};if(typeof document!=="undefined"){var element=document.documentElement;if(!element.matches){var vendorMatches=element.webkitMatchesSelector||element.msMatchesSelector||element.mozMatchesSelector||element.oMatchesSelector;matcher=function(selector){return function(){return vendorMatches.call(this,selector)}}}}var matcher$1=matcher;var filterEvents={};exports.event=null;if(typeof document!=="undefined"){var element$1=document.documentElement;if(!("onmouseenter"in element$1)){filterEvents={mouseenter:"mouseover",mouseleave:"mouseout"}}}function filterContextListener(listener,index,group){listener=contextListener(listener,index,group);return function(event){var related=event.relatedTarget;if(!related||related!==this&&!(related.compareDocumentPosition(this)&8)){listener.call(this,event)}}}function contextListener(listener,index,group){return function(event1){var event0=exports.event;exports.event=event1;try{listener.call(this,this.__data__,index,group)}finally{exports.event=event0}}}function parseTypenames(typenames){return typenames.trim().split(/^|\s+/).map(function(t){var name="",i=t.indexOf(".");if(i>=0)name=t.slice(i+1),t=t.slice(0,i);return{type:t,name:name}})}function onRemove(typename){return function(){var on=this.__on;if(!on)return;for(var j=0,i=-1,m=on.length,o;j<m;++j){if(o=on[j],(!typename.type||o.type===typename.type)&&o.name===typename.name){this.removeEventListener(o.type,o.listener,o.capture)}else{on[++i]=o}}if(++i)on.length=i;else delete this.__on}}function onAdd(typename,value,capture){var wrap=filterEvents.hasOwnProperty(typename.type)?filterContextListener:contextListener;return function(d,i,group){var on=this.__on,o,listener=wrap(value,i,group);if(on)for(var j=0,m=on.length;j<m;++j){if((o=on[j]).type===typename.type&&o.name===typename.name){this.removeEventListener(o.type,o.listener,o.capture);this.addEventListener(o.type,o.listener=listener,o.capture=capture);o.value=value;return}}this.addEventListener(typename.type,listener,capture);o={type:typename.type,name:typename.name,value:value,listener:listener,capture:capture};if(!on)this.__on=[o];else on.push(o)}}function selection_on(typename,value,capture){var typenames=parseTypenames(typename+""),i,n=typenames.length,t;if(arguments.length<2){var on=this.node().__on;if(on)for(var j=0,m=on.length,o;j<m;++j){for(i=0,o=on[j];i<n;++i){if((t=typenames[i]).type===o.type&&t.name===o.name){return o.value}}}return}on=value?onAdd:onRemove;if(capture==null)capture=false;for(i=0;i<n;++i)this.each(on(typenames[i],value,capture));return this}function customEvent(event1,listener,that,args){var event0=exports.event;event1.sourceEvent=exports.event;exports.event=event1;try{return listener.apply(that,args)}finally{exports.event=event0}}function sourceEvent(){var current=exports.event,source;while(source=current.sourceEvent)current=source;return current}function point(node,event){var svg=node.ownerSVGElement||node;if(svg.createSVGPoint){var point=svg.createSVGPoint();point.x=event.clientX,point.y=event.clientY;point=point.matrixTransform(node.getScreenCTM().inverse());return[point.x,point.y]}var rect=node.getBoundingClientRect();return[event.clientX-rect.left-node.clientLeft,event.clientY-rect.top-node.clientTop]}function mouse(node){var event=sourceEvent();if(event.changedTouches)event=event.changedTouches[0];return point(node,event)}function none(){}function selector(selector){return selector==null?none:function(){return this.querySelector(selector)}}function selection_select(select){if(typeof select!=="function")select=selector(select);for(var groups=this._groups,m=groups.length,subgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,subgroup=subgroups[j]=new Array(n),node,subnode,i=0;i<n;++i){if((node=group[i])&&(subnode=select.call(node,node.__data__,i,group))){if("__data__"in node)subnode.__data__=node.__data__;subgroup[i]=subnode}}}return new Selection(subgroups,this._parents)}function empty(){return[]}function selectorAll(selector){return selector==null?empty:function(){return this.querySelectorAll(selector)}}function selection_selectAll(select){if(typeof select!=="function")select=selectorAll(select);for(var groups=this._groups,m=groups.length,subgroups=[],parents=[],j=0;j<m;++j){for(var group=groups[j],n=group.length,node,i=0;i<n;++i){if(node=group[i]){subgroups.push(select.call(node,node.__data__,i,group));parents.push(node)}}}return new Selection(subgroups,parents)}function selection_filter(match){if(typeof match!=="function")match=matcher$1(match);for(var groups=this._groups,m=groups.length,subgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,subgroup=subgroups[j]=[],node,i=0;i<n;++i){if((node=group[i])&&match.call(node,node.__data__,i,group)){subgroup.push(node)}}}return new Selection(subgroups,this._parents)}function sparse(update){return new Array(update.length)}function selection_enter(){return new Selection(this._enter||this._groups.map(sparse),this._parents)}function EnterNode(parent,datum){this.ownerDocument=parent.ownerDocument;this.namespaceURI=parent.namespaceURI;this._next=null;this._parent=parent;this.__data__=datum}EnterNode.prototype={constructor:EnterNode,appendChild:function(child){return this._parent.insertBefore(child,this._next)},insertBefore:function(child,next){return this._parent.insertBefore(child,next)},querySelector:function(selector){return this._parent.querySelector(selector)},querySelectorAll:function(selector){return this._parent.querySelectorAll(selector)}};function constant(x){return function(){return x}}var keyPrefix="$";function bindIndex(parent,group,enter,update,exit,data){var i=0,node,groupLength=group.length,dataLength=data.length;for(;i<dataLength;++i){if(node=group[i]){node.__data__=data[i];update[i]=node}else{enter[i]=new EnterNode(parent,data[i])}}for(;i<groupLength;++i){if(node=group[i]){exit[i]=node}}}function bindKey(parent,group,enter,update,exit,data,key){var i,node,nodeByKeyValue={},groupLength=group.length,dataLength=data.length,keyValues=new Array(groupLength),keyValue;for(i=0;i<groupLength;++i){if(node=group[i]){keyValues[i]=keyValue=keyPrefix+key.call(node,node.__data__,i,group);if(keyValue in nodeByKeyValue){exit[i]=node}else{nodeByKeyValue[keyValue]=node}}}for(i=0;i<dataLength;++i){keyValue=keyPrefix+key.call(parent,data[i],i,data);if(node=nodeByKeyValue[keyValue]){update[i]=node;node.__data__=data[i];nodeByKeyValue[keyValue]=null}else{enter[i]=new EnterNode(parent,data[i])}}for(i=0;i<groupLength;++i){if((node=group[i])&&nodeByKeyValue[keyValues[i]]===node){exit[i]=node}}}function selection_data(value,key){if(!value){data=new Array(this.size()),j=-1;this.each(function(d){data[++j]=d});return data}var bind=key?bindKey:bindIndex,parents=this._parents,groups=this._groups;if(typeof value!=="function")value=constant(value);for(var m=groups.length,update=new Array(m),enter=new Array(m),exit=new Array(m),j=0;j<m;++j){var parent=parents[j],group=groups[j],groupLength=group.length,data=value.call(parent,parent&&parent.__data__,j,parents),dataLength=data.length,enterGroup=enter[j]=new Array(dataLength),updateGroup=update[j]=new Array(dataLength),exitGroup=exit[j]=new Array(groupLength);bind(parent,group,enterGroup,updateGroup,exitGroup,data,key);for(var i0=0,i1=0,previous,next;i0<dataLength;++i0){if(previous=enterGroup[i0]){if(i0>=i1)i1=i0+1;while(!(next=updateGroup[i1])&&++i1<dataLength);previous._next=next||null}}}update=new Selection(update,parents);update._enter=enter;update._exit=exit;return update}function selection_exit(){return new Selection(this._exit||this._groups.map(sparse),this._parents)}function selection_merge(selection){for(var groups0=this._groups,groups1=selection._groups,m0=groups0.length,m1=groups1.length,m=Math.min(m0,m1),merges=new Array(m0),j=0;j<m;++j){for(var group0=groups0[j],group1=groups1[j],n=group0.length,merge=merges[j]=new Array(n),node,i=0;i<n;++i){if(node=group0[i]||group1[i]){merge[i]=node}}}for(;j<m0;++j){merges[j]=groups0[j]}return new Selection(merges,this._parents)}function selection_order(){for(var groups=this._groups,j=-1,m=groups.length;++j<m;){for(var group=groups[j],i=group.length-1,next=group[i],node;--i>=0;){if(node=group[i]){if(next&&next!==node.nextSibling)next.parentNode.insertBefore(node,next);next=node}}}return this}function selection_sort(compare){if(!compare)compare=ascending;function compareNode(a,b){return a&&b?compare(a.__data__,b.__data__):!a-!b}for(var groups=this._groups,m=groups.length,sortgroups=new Array(m),j=0;j<m;++j){for(var group=groups[j],n=group.length,sortgroup=sortgroups[j]=new Array(n),node,i=0;i<n;++i){if(node=group[i]){sortgroup[i]=node}}sortgroup.sort(compareNode)}return new Selection(sortgroups,this._parents).order()}function ascending(a,b){return a<b?-1:a>b?1:a>=b?0:NaN}function selection_call(){var callback=arguments[0];arguments[0]=this;callback.apply(null,arguments);return this}function selection_nodes(){var nodes=new Array(this.size()),i=-1;this.each(function(){nodes[++i]=this});return nodes}function selection_node(){for(var groups=this._groups,j=0,m=groups.length;j<m;++j){for(var group=groups[j],i=0,n=group.length;i<n;++i){var node=group[i];if(node)return node}}return null}function selection_size(){var size=0;this.each(function(){++size});return size}function selection_empty(){return!this.node()}function selection_each(callback){for(var groups=this._groups,j=0,m=groups.length;j<m;++j){for(var group=groups[j],i=0,n=group.length,node;i<n;++i){if(node=group[i])callback.call(node,node.__data__,i,group)}}return this}function attrRemove(name){return function(){this.removeAttribute(name)}}function attrRemoveNS(fullname){return function(){this.removeAttributeNS(fullname.space,fullname.local)}}function attrConstant(name,value){return function(){this.setAttribute(name,value)}}function attrConstantNS(fullname,value){return function(){this.setAttributeNS(fullname.space,fullname.local,value)}}function attrFunction(name,value){return function(){var v=value.apply(this,arguments);if(v==null)this.removeAttribute(name);else this.setAttribute(name,v)}}function attrFunctionNS(fullname,value){return function(){var v=value.apply(this,arguments);if(v==null)this.removeAttributeNS(fullname.space,fullname.local);else this.setAttributeNS(fullname.space,fullname.local,v)}}function selection_attr(name,value){var fullname=namespace(name);if(arguments.length<2){var node=this.node();return fullname.local?node.getAttributeNS(fullname.space,fullname.local):node.getAttribute(fullname)}return this.each((value==null?fullname.local?attrRemoveNS:attrRemove:typeof value==="function"?fullname.local?attrFunctionNS:attrFunction:fullname.local?attrConstantNS:attrConstant)(fullname,value))}function defaultView(node){return node.ownerDocument&&node.ownerDocument.defaultView||node.document&&node||node.defaultView}function styleRemove(name){return function(){this.style.removeProperty(name)}}function styleConstant(name,value,priority){return function(){this.style.setProperty(name,value,priority)}}function styleFunction(name,value,priority){return function(){var v=value.apply(this,arguments);if(v==null)this.style.removeProperty(name);else this.style.setProperty(name,v,priority)}}function selection_style(name,value,priority){var node;return arguments.length>1?this.each((value==null?styleRemove:typeof value==="function"?styleFunction:styleConstant)(name,value,priority==null?"":priority)):defaultView(node=this.node()).getComputedStyle(node,null).getPropertyValue(name)}function propertyRemove(name){return function(){delete this[name]}}function propertyConstant(name,value){return function(){this[name]=value}}function propertyFunction(name,value){return function(){var v=value.apply(this,arguments);if(v==null)delete this[name];else this[name]=v}}function selection_property(name,value){return arguments.length>1?this.each((value==null?propertyRemove:typeof value==="function"?propertyFunction:propertyConstant)(name,value)):this.node()[name]}function classArray(string){return string.trim().split(/^|\s+/)}function classList(node){return node.classList||new ClassList(node)}function ClassList(node){this._node=node;this._names=classArray(node.getAttribute("class")||"")}ClassList.prototype={add:function(name){var i=this._names.indexOf(name);if(i<0){this._names.push(name);this._node.setAttribute("class",this._names.join(" "))}},remove:function(name){var i=this._names.indexOf(name);if(i>=0){this._names.splice(i,1);this._node.setAttribute("class",this._names.join(" "))}},contains:function(name){return this._names.indexOf(name)>=0}};function classedAdd(node,names){var list=classList(node),i=-1,n=names.length;while(++i<n)list.add(names[i])}function classedRemove(node,names){var list=classList(node),i=-1,n=names.length;while(++i<n)list.remove(names[i])}function classedTrue(names){return function(){classedAdd(this,names)}}function classedFalse(names){return function(){classedRemove(this,names)}}function classedFunction(names,value){return function(){(value.apply(this,arguments)?classedAdd:classedRemove)(this,names)}}function selection_classed(name,value){var names=classArray(name+"");if(arguments.length<2){var list=classList(this.node()),i=-1,n=names.length;while(++i<n)if(!list.contains(names[i]))return false;return true}return this.each((typeof value==="function"?classedFunction:value?classedTrue:classedFalse)(names,value))}function textRemove(){this.textContent=""}function textConstant(value){return function(){this.textContent=value}}function textFunction(value){return function(){var v=value.apply(this,arguments);this.textContent=v==null?"":v}}function selection_text(value){return arguments.length?this.each(value==null?textRemove:(typeof value==="function"?textFunction:textConstant)(value)):this.node().textContent}function htmlRemove(){this.innerHTML=""}function htmlConstant(value){return function(){this.innerHTML=value}}function htmlFunction(value){return function(){var v=value.apply(this,arguments);this.innerHTML=v==null?"":v}}function selection_html(value){return arguments.length?this.each(value==null?htmlRemove:(typeof value==="function"?htmlFunction:htmlConstant)(value)):this.node().innerHTML}function raise(){if(this.nextSibling)this.parentNode.appendChild(this)}function selection_raise(){return this.each(raise)}function lower(){if(this.previousSibling)this.parentNode.insertBefore(this,this.parentNode.firstChild)}function selection_lower(){return this.each(lower)}function selection_append(name){var create=typeof name==="function"?name:creator(name);return this.select(function(){return this.appendChild(create.apply(this,arguments))})}function constantNull(){return null}function selection_insert(name,before){var create=typeof name==="function"?name:creator(name),select=before==null?constantNull:typeof before==="function"?before:selector(before);return this.select(function(){return this.insertBefore(create.apply(this,arguments),select.apply(this,arguments)||null)})}function remove(){var parent=this.parentNode;if(parent)parent.removeChild(this)}function selection_remove(){return this.each(remove)}function selection_datum(value){return arguments.length?this.property("__data__",value):this.node().__data__}function dispatchEvent(node,type,params){var window=defaultView(node),event=window.CustomEvent;if(event){event=new event(type,params)}else{event=window.document.createEvent("Event");if(params)event.initEvent(type,params.bubbles,params.cancelable),event.detail=params.detail;else event.initEvent(type,false,false)}node.dispatchEvent(event)}function dispatchConstant(type,params){return function(){return dispatchEvent(this,type,params)}}function dispatchFunction(type,params){return function(){return dispatchEvent(this,type,params.apply(this,arguments))}}function selection_dispatch(type,params){return this.each((typeof params==="function"?dispatchFunction:dispatchConstant)(type,params))}var root=[null];function Selection(groups,parents){this._groups=groups;this._parents=parents}function selection(){return new Selection([[document.documentElement]],root)}Selection.prototype=selection.prototype={constructor:Selection,select:selection_select,selectAll:selection_selectAll,filter:selection_filter,data:selection_data,enter:selection_enter,exit:selection_exit,merge:selection_merge,order:selection_order,sort:selection_sort,call:selection_call,nodes:selection_nodes,node:selection_node,size:selection_size,empty:selection_empty,each:selection_each,attr:selection_attr,style:selection_style,property:selection_property,classed:selection_classed,text:selection_text,html:selection_html,raise:selection_raise,lower:selection_lower,append:selection_append,insert:selection_insert,remove:selection_remove,datum:selection_datum,on:selection_on,dispatch:selection_dispatch};function select(selector){return typeof selector==="string"?new Selection([[document.querySelector(selector)]],[document.documentElement]):new Selection([[selector]],root)}function selectAll(selector){return typeof selector==="string"?new Selection([document.querySelectorAll(selector)],[document.documentElement]):new Selection([selector==null?[]:selector],root)}function touch(node,touches,identifier){if(arguments.length<3)identifier=touches,touches=sourceEvent().changedTouches;for(var i=0,n=touches?touches.length:0,touch;i<n;++i){if((touch=touches[i]).identifier===identifier){return point(node,touch)}}return null}function touches(node,touches){if(touches==null)touches=sourceEvent().touches;for(var i=0,n=touches?touches.length:0,points=new Array(n);i<n;++i){points[i]=point(node,touches[i])}return points}exports.creator=creator;exports.local=local;exports.matcher=matcher$1;exports.mouse=mouse;exports.namespace=namespace;exports.namespaces=namespaces;exports.select=select;exports.selectAll=selectAll;exports.selection=selection;exports.selector=selector;exports.selectorAll=selectorAll;exports.touch=touch;exports.touches=touches;exports.window=defaultView;exports.customEvent=customEvent;Object.defineProperty(exports,"__esModule",{value:true})})},{}],9:[function(require,module,exports){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports,require("d3-time")):typeof define==="function"&&define.amd?define(["exports","d3-time"],factory):factory(global.d3=global.d3||{},global.d3)})(this,function(exports,d3Time){"use strict";function localDate(d){if(0<=d.y&&d.y<100){var date=new Date(-1,d.m,d.d,d.H,d.M,d.S,d.L);date.setFullYear(d.y);return date}return new Date(d.y,d.m,d.d,d.H,d.M,d.S,d.L)}function utcDate(d){if(0<=d.y&&d.y<100){var date=new Date(Date.UTC(-1,d.m,d.d,d.H,d.M,d.S,d.L));date.setUTCFullYear(d.y);return date}return new Date(Date.UTC(d.y,d.m,d.d,d.H,d.M,d.S,d.L))}function newYear(y){return{y:y,m:0,d:1,H:0,M:0,S:0,L:0}}function formatLocale(locale){var locale_dateTime=locale.dateTime,locale_date=locale.date,locale_time=locale.time,locale_periods=locale.periods,locale_weekdays=locale.days,locale_shortWeekdays=locale.shortDays,locale_months=locale.months,locale_shortMonths=locale.shortMonths;var periodRe=formatRe(locale_periods),periodLookup=formatLookup(locale_periods),weekdayRe=formatRe(locale_weekdays),weekdayLookup=formatLookup(locale_weekdays),shortWeekdayRe=formatRe(locale_shortWeekdays),shortWeekdayLookup=formatLookup(locale_shortWeekdays),monthRe=formatRe(locale_months),monthLookup=formatLookup(locale_months),shortMonthRe=formatRe(locale_shortMonths),shortMonthLookup=formatLookup(locale_shortMonths);var formats={a:formatShortWeekday,A:formatWeekday,b:formatShortMonth,B:formatMonth,c:null,d:formatDayOfMonth,e:formatDayOfMonth,H:formatHour24,I:formatHour12,j:formatDayOfYear,L:formatMilliseconds,m:formatMonthNumber,M:formatMinutes,p:formatPeriod,S:formatSeconds,U:formatWeekNumberSunday,w:formatWeekdayNumber,W:formatWeekNumberMonday,x:null,X:null,y:formatYear,Y:formatFullYear,Z:formatZone,"%":formatLiteralPercent};var utcFormats={a:formatUTCShortWeekday,A:formatUTCWeekday,b:formatUTCShortMonth,B:formatUTCMonth,c:null,d:formatUTCDayOfMonth,e:formatUTCDayOfMonth,H:formatUTCHour24,I:formatUTCHour12,j:formatUTCDayOfYear,L:formatUTCMilliseconds,m:formatUTCMonthNumber,M:formatUTCMinutes,p:formatUTCPeriod,S:formatUTCSeconds,U:formatUTCWeekNumberSunday,w:formatUTCWeekdayNumber,W:formatUTCWeekNumberMonday,x:null,X:null,y:formatUTCYear,Y:formatUTCFullYear,Z:formatUTCZone,"%":formatLiteralPercent};var parses={a:parseShortWeekday,A:parseWeekday,b:parseShortMonth,B:parseMonth,c:parseLocaleDateTime,d:parseDayOfMonth,e:parseDayOfMonth,H:parseHour24,I:parseHour24,j:parseDayOfYear,L:parseMilliseconds,m:parseMonthNumber,M:parseMinutes,p:parsePeriod,S:parseSeconds,U:parseWeekNumberSunday,w:parseWeekdayNumber,W:parseWeekNumberMonday,x:parseLocaleDate,X:parseLocaleTime,y:parseYear,Y:parseFullYear,Z:parseZone,"%":parseLiteralPercent};formats.x=newFormat(locale_date,formats);formats.X=newFormat(locale_time,formats);formats.c=newFormat(locale_dateTime,formats);utcFormats.x=newFormat(locale_date,utcFormats);utcFormats.X=newFormat(locale_time,utcFormats);utcFormats.c=newFormat(locale_dateTime,utcFormats);function newFormat(specifier,formats){return function(date){var string=[],i=-1,j=0,n=specifier.length,c,pad,format;if(!(date instanceof Date))date=new Date(+date);while(++i<n){if(specifier.charCodeAt(i)===37){string.push(specifier.slice(j,i));if((pad=pads[c=specifier.charAt(++i)])!=null)c=specifier.charAt(++i);else pad=c==="e"?" ":"0";if(format=formats[c])c=format(date,pad);string.push(c);j=i+1}}string.push(specifier.slice(j,i));return string.join("")}}function newParse(specifier,newDate){return function(string){var d=newYear(1900),i=parseSpecifier(d,specifier,string+="",0);if(i!=string.length)return null;if("p"in d)d.H=d.H%12+d.p*12;if("W"in d||"U"in d){if(!("w"in d))d.w="W"in d?1:0;var day="Z"in d?utcDate(newYear(d.y)).getUTCDay():newDate(newYear(d.y)).getDay();d.m=0;d.d="W"in d?(d.w+6)%7+d.W*7-(day+5)%7:d.w+d.U*7-(day+6)%7}if("Z"in d){d.H+=d.Z/100|0;d.M+=d.Z%100;return utcDate(d)}return newDate(d)}}function parseSpecifier(d,specifier,string,j){var i=0,n=specifier.length,m=string.length,c,parse;while(i<n){if(j>=m)return-1;c=specifier.charCodeAt(i++);if(c===37){c=specifier.charAt(i++);parse=parses[c in pads?specifier.charAt(i++):c];if(!parse||(j=parse(d,string,j))<0)return-1}else if(c!=string.charCodeAt(j++)){return-1}}return j}function parsePeriod(d,string,i){var n=periodRe.exec(string.slice(i));return n?(d.p=periodLookup[n[0].toLowerCase()],i+n[0].length):-1}function parseShortWeekday(d,string,i){var n=shortWeekdayRe.exec(string.slice(i));return n?(d.w=shortWeekdayLookup[n[0].toLowerCase()],i+n[0].length):-1}function parseWeekday(d,string,i){var n=weekdayRe.exec(string.slice(i));return n?(d.w=weekdayLookup[n[0].toLowerCase()],i+n[0].length):-1}function parseShortMonth(d,string,i){var n=shortMonthRe.exec(string.slice(i));return n?(d.m=shortMonthLookup[n[0].toLowerCase()],i+n[0].length):-1}function parseMonth(d,string,i){var n=monthRe.exec(string.slice(i));return n?(d.m=monthLookup[n[0].toLowerCase()],i+n[0].length):-1}function parseLocaleDateTime(d,string,i){return parseSpecifier(d,locale_dateTime,string,i)}function parseLocaleDate(d,string,i){return parseSpecifier(d,locale_date,string,i)}function parseLocaleTime(d,string,i){return parseSpecifier(d,locale_time,string,i)}function formatShortWeekday(d){return locale_shortWeekdays[d.getDay()]}function formatWeekday(d){return locale_weekdays[d.getDay()]}function formatShortMonth(d){return locale_shortMonths[d.getMonth()]}function formatMonth(d){return locale_months[d.getMonth()]}function formatPeriod(d){return locale_periods[+(d.getHours()>=12)]}function formatUTCShortWeekday(d){return locale_shortWeekdays[d.getUTCDay()]}function formatUTCWeekday(d){return locale_weekdays[d.getUTCDay()]}function formatUTCShortMonth(d){return locale_shortMonths[d.getUTCMonth()]}function formatUTCMonth(d){return locale_months[d.getUTCMonth()]}function formatUTCPeriod(d){return locale_periods[+(d.getUTCHours()>=12)]}return{format:function(specifier){var f=newFormat(specifier+="",formats);f.toString=function(){return specifier};return f},parse:function(specifier){var p=newParse(specifier+="",localDate);p.toString=function(){return specifier};return p},utcFormat:function(specifier){var f=newFormat(specifier+="",utcFormats);f.toString=function(){return specifier};return f},utcParse:function(specifier){var p=newParse(specifier,utcDate);p.toString=function(){return specifier};return p}}}var pads={"-":"",_:" ",0:"0"};var numberRe=/^\s*\d+/;var percentRe=/^%/;var requoteRe=/[\\\^\$\*\+\?\|\[\]\(\)\.\{\}]/g;function pad(value,fill,width){var sign=value<0?"-":"",string=(sign?-value:value)+"",length=string.length;return sign+(length<width?new Array(width-length+1).join(fill)+string:string)}function requote(s){return s.replace(requoteRe,"\\$&")}function formatRe(names){return new RegExp("^(?:"+names.map(requote).join("|")+")","i")}function formatLookup(names){var map={},i=-1,n=names.length;while(++i<n)map[names[i].toLowerCase()]=i;return map}function parseWeekdayNumber(d,string,i){var n=numberRe.exec(string.slice(i,i+1));return n?(d.w=+n[0],i+n[0].length):-1}function parseWeekNumberSunday(d,string,i){var n=numberRe.exec(string.slice(i));return n?(d.U=+n[0],i+n[0].length):-1}function parseWeekNumberMonday(d,string,i){var n=numberRe.exec(string.slice(i));return n?(d.W=+n[0],i+n[0].length):-1}function parseFullYear(d,string,i){var n=numberRe.exec(string.slice(i,i+4));return n?(d.y=+n[0],i+n[0].length):-1}function parseYear(d,string,i){var n=numberRe.exec(string.slice(i,i+2));return n?(d.y=+n[0]+(+n[0]>68?1900:2e3),i+n[0].length):-1}function parseZone(d,string,i){var n=/^(Z)|([+-]\d\d)(?:\:?(\d\d))?/.exec(string.slice(i,i+6));return n?(d.Z=n[1]?0:-(n[2]+(n[3]||"00")),i+n[0].length):-1}function parseMonthNumber(d,string,i){var n=numberRe.exec(string.slice(i,i+2));return n?(d.m=n[0]-1,i+n[0].length):-1}function parseDayOfMonth(d,string,i){var n=numberRe.exec(string.slice(i,i+2));return n?(d.d=+n[0],i+n[0].length):-1}function parseDayOfYear(d,string,i){var n=numberRe.exec(string.slice(i,i+3));return n?(d.m=0,d.d=+n[0],i+n[0].length):-1}function parseHour24(d,string,i){var n=numberRe.exec(string.slice(i,i+2));return n?(d.H=+n[0],i+n[0].length):-1}function parseMinutes(d,string,i){var n=numberRe.exec(string.slice(i,i+2));return n?(d.M=+n[0],i+n[0].length):-1}function parseSeconds(d,string,i){var n=numberRe.exec(string.slice(i,i+2));return n?(d.S=+n[0],i+n[0].length):-1}function parseMilliseconds(d,string,i){var n=numberRe.exec(string.slice(i,i+3));return n?(d.L=+n[0],i+n[0].length):-1}function parseLiteralPercent(d,string,i){var n=percentRe.exec(string.slice(i,i+1));return n?i+n[0].length:-1}function formatDayOfMonth(d,p){return pad(d.getDate(),p,2)}function formatHour24(d,p){return pad(d.getHours(),p,2)}function formatHour12(d,p){return pad(d.getHours()%12||12,p,2)}function formatDayOfYear(d,p){return pad(1+d3Time.timeDay.count(d3Time.timeYear(d),d),p,3)}function formatMilliseconds(d,p){return pad(d.getMilliseconds(),p,3)}function formatMonthNumber(d,p){return pad(d.getMonth()+1,p,2)}function formatMinutes(d,p){return pad(d.getMinutes(),p,2)}function formatSeconds(d,p){return pad(d.getSeconds(),p,2)}function formatWeekNumberSunday(d,p){return pad(d3Time.timeSunday.count(d3Time.timeYear(d),d),p,2)}function formatWeekdayNumber(d){return d.getDay()}function formatWeekNumberMonday(d,p){return pad(d3Time.timeMonday.count(d3Time.timeYear(d),d),p,2)}function formatYear(d,p){return pad(d.getFullYear()%100,p,2)}function formatFullYear(d,p){return pad(d.getFullYear()%1e4,p,4)}function formatZone(d){var z=d.getTimezoneOffset();return(z>0?"-":(z*=-1,"+"))+pad(z/60|0,"0",2)+pad(z%60,"0",2)}function formatUTCDayOfMonth(d,p){return pad(d.getUTCDate(),p,2)}function formatUTCHour24(d,p){return pad(d.getUTCHours(),p,2)}function formatUTCHour12(d,p){return pad(d.getUTCHours()%12||12,p,2)}function formatUTCDayOfYear(d,p){return pad(1+d3Time.utcDay.count(d3Time.utcYear(d),d),p,3)}function formatUTCMilliseconds(d,p){return pad(d.getUTCMilliseconds(),p,3)}function formatUTCMonthNumber(d,p){return pad(d.getUTCMonth()+1,p,2)}function formatUTCMinutes(d,p){return pad(d.getUTCMinutes(),p,2)}function formatUTCSeconds(d,p){return pad(d.getUTCSeconds(),p,2)}function formatUTCWeekNumberSunday(d,p){return pad(d3Time.utcSunday.count(d3Time.utcYear(d),d),p,2)}function formatUTCWeekdayNumber(d){return d.getUTCDay()}function formatUTCWeekNumberMonday(d,p){return pad(d3Time.utcMonday.count(d3Time.utcYear(d),d),p,2)}function formatUTCYear(d,p){return pad(d.getUTCFullYear()%100,p,2)}function formatUTCFullYear(d,p){return pad(d.getUTCFullYear()%1e4,p,4)}function formatUTCZone(){return"+0000"}function formatLiteralPercent(){return"%"}var locale$1;defaultLocale({dateTime:"%x, %X",date:"%-m/%-d/%Y",time:"%-I:%M:%S %p",periods:["AM","PM"],days:["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],shortDays:["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],months:["January","February","March","April","May","June","July","August","September","October","November","December"],shortMonths:["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"]});function defaultLocale(definition){locale$1=formatLocale(definition);exports.timeFormat=locale$1.format;exports.timeParse=locale$1.parse;exports.utcFormat=locale$1.utcFormat;exports.utcParse=locale$1.utcParse;return locale$1}var isoSpecifier="%Y-%m-%dT%H:%M:%S.%LZ";function formatIsoNative(date){return date.toISOString()}var formatIso=Date.prototype.toISOString?formatIsoNative:exports.utcFormat(isoSpecifier);function parseIsoNative(string){var date=new Date(string);return isNaN(date)?null:date}
var parseIso=+new Date("2000-01-01T00:00:00.000Z")?parseIsoNative:exports.utcParse(isoSpecifier);exports.timeFormatDefaultLocale=defaultLocale;exports.timeFormatLocale=formatLocale;exports.isoFormat=formatIso;exports.isoParse=parseIso;Object.defineProperty(exports,"__esModule",{value:true})})},{"d3-time":10}],10:[function(require,module,exports){(function(global,factory){typeof exports==="object"&&typeof module!=="undefined"?factory(exports):typeof define==="function"&&define.amd?define(["exports"],factory):factory(global.d3=global.d3||{})})(this,function(exports){"use strict";var t0=new Date;var t1=new Date;function newInterval(floori,offseti,count,field){function interval(date){return floori(date=new Date(+date)),date}interval.floor=interval;interval.ceil=function(date){return floori(date=new Date(date-1)),offseti(date,1),floori(date),date};interval.round=function(date){var d0=interval(date),d1=interval.ceil(date);return date-d0<d1-date?d0:d1};interval.offset=function(date,step){return offseti(date=new Date(+date),step==null?1:Math.floor(step)),date};interval.range=function(start,stop,step){var range=[];start=interval.ceil(start);step=step==null?1:Math.floor(step);if(!(start<stop)||!(step>0))return range;do{range.push(new Date(+start))}while(offseti(start,step),floori(start),start<stop);return range};interval.filter=function(test){return newInterval(function(date){if(date>=date)while(floori(date),!test(date))date.setTime(date-1)},function(date,step){if(date>=date)while(--step>=0)while(offseti(date,1),!test(date)){}})};if(count){interval.count=function(start,end){t0.setTime(+start),t1.setTime(+end);floori(t0),floori(t1);return Math.floor(count(t0,t1))};interval.every=function(step){step=Math.floor(step);return!isFinite(step)||!(step>0)?null:!(step>1)?interval:interval.filter(field?function(d){return field(d)%step===0}:function(d){return interval.count(0,d)%step===0})}}return interval}var millisecond=newInterval(function(){},function(date,step){date.setTime(+date+step)},function(start,end){return end-start});millisecond.every=function(k){k=Math.floor(k);if(!isFinite(k)||!(k>0))return null;if(!(k>1))return millisecond;return newInterval(function(date){date.setTime(Math.floor(date/k)*k)},function(date,step){date.setTime(+date+step*k)},function(start,end){return(end-start)/k})};var milliseconds=millisecond.range;var durationSecond=1e3;var durationMinute=6e4;var durationHour=36e5;var durationDay=864e5;var durationWeek=6048e5;var second=newInterval(function(date){date.setTime(Math.floor(date/durationSecond)*durationSecond)},function(date,step){date.setTime(+date+step*durationSecond)},function(start,end){return(end-start)/durationSecond},function(date){return date.getUTCSeconds()});var seconds=second.range;var minute=newInterval(function(date){date.setTime(Math.floor(date/durationMinute)*durationMinute)},function(date,step){date.setTime(+date+step*durationMinute)},function(start,end){return(end-start)/durationMinute},function(date){return date.getMinutes()});var minutes=minute.range;var hour=newInterval(function(date){var offset=date.getTimezoneOffset()*durationMinute%durationHour;if(offset<0)offset+=durationHour;date.setTime(Math.floor((+date-offset)/durationHour)*durationHour+offset)},function(date,step){date.setTime(+date+step*durationHour)},function(start,end){return(end-start)/durationHour},function(date){return date.getHours()});var hours=hour.range;var day=newInterval(function(date){date.setHours(0,0,0,0)},function(date,step){date.setDate(date.getDate()+step)},function(start,end){return(end-start-(end.getTimezoneOffset()-start.getTimezoneOffset())*durationMinute)/durationDay},function(date){return date.getDate()-1});var days=day.range;function weekday(i){return newInterval(function(date){date.setDate(date.getDate()-(date.getDay()+7-i)%7);date.setHours(0,0,0,0)},function(date,step){date.setDate(date.getDate()+step*7)},function(start,end){return(end-start-(end.getTimezoneOffset()-start.getTimezoneOffset())*durationMinute)/durationWeek})}var sunday=weekday(0);var monday=weekday(1);var tuesday=weekday(2);var wednesday=weekday(3);var thursday=weekday(4);var friday=weekday(5);var saturday=weekday(6);var sundays=sunday.range;var mondays=monday.range;var tuesdays=tuesday.range;var wednesdays=wednesday.range;var thursdays=thursday.range;var fridays=friday.range;var saturdays=saturday.range;var month=newInterval(function(date){date.setDate(1);date.setHours(0,0,0,0)},function(date,step){date.setMonth(date.getMonth()+step)},function(start,end){return end.getMonth()-start.getMonth()+(end.getFullYear()-start.getFullYear())*12},function(date){return date.getMonth()});var months=month.range;var year=newInterval(function(date){date.setMonth(0,1);date.setHours(0,0,0,0)},function(date,step){date.setFullYear(date.getFullYear()+step)},function(start,end){return end.getFullYear()-start.getFullYear()},function(date){return date.getFullYear()});year.every=function(k){return!isFinite(k=Math.floor(k))||!(k>0)?null:newInterval(function(date){date.setFullYear(Math.floor(date.getFullYear()/k)*k);date.setMonth(0,1);date.setHours(0,0,0,0)},function(date,step){date.setFullYear(date.getFullYear()+step*k)})};var years=year.range;var utcMinute=newInterval(function(date){date.setUTCSeconds(0,0)},function(date,step){date.setTime(+date+step*durationMinute)},function(start,end){return(end-start)/durationMinute},function(date){return date.getUTCMinutes()});var utcMinutes=utcMinute.range;var utcHour=newInterval(function(date){date.setUTCMinutes(0,0,0)},function(date,step){date.setTime(+date+step*durationHour)},function(start,end){return(end-start)/durationHour},function(date){return date.getUTCHours()});var utcHours=utcHour.range;var utcDay=newInterval(function(date){date.setUTCHours(0,0,0,0)},function(date,step){date.setUTCDate(date.getUTCDate()+step)},function(start,end){return(end-start)/durationDay},function(date){return date.getUTCDate()-1});var utcDays=utcDay.range;function utcWeekday(i){return newInterval(function(date){date.setUTCDate(date.getUTCDate()-(date.getUTCDay()+7-i)%7);date.setUTCHours(0,0,0,0)},function(date,step){date.setUTCDate(date.getUTCDate()+step*7)},function(start,end){return(end-start)/durationWeek})}var utcSunday=utcWeekday(0);var utcMonday=utcWeekday(1);var utcTuesday=utcWeekday(2);var utcWednesday=utcWeekday(3);var utcThursday=utcWeekday(4);var utcFriday=utcWeekday(5);var utcSaturday=utcWeekday(6);var utcSundays=utcSunday.range;var utcMondays=utcMonday.range;var utcTuesdays=utcTuesday.range;var utcWednesdays=utcWednesday.range;var utcThursdays=utcThursday.range;var utcFridays=utcFriday.range;var utcSaturdays=utcSaturday.range;var utcMonth=newInterval(function(date){date.setUTCDate(1);date.setUTCHours(0,0,0,0)},function(date,step){date.setUTCMonth(date.getUTCMonth()+step)},function(start,end){return end.getUTCMonth()-start.getUTCMonth()+(end.getUTCFullYear()-start.getUTCFullYear())*12},function(date){return date.getUTCMonth()});var utcMonths=utcMonth.range;var utcYear=newInterval(function(date){date.setUTCMonth(0,1);date.setUTCHours(0,0,0,0)},function(date,step){date.setUTCFullYear(date.getUTCFullYear()+step)},function(start,end){return end.getUTCFullYear()-start.getUTCFullYear()},function(date){return date.getUTCFullYear()});utcYear.every=function(k){return!isFinite(k=Math.floor(k))||!(k>0)?null:newInterval(function(date){date.setUTCFullYear(Math.floor(date.getUTCFullYear()/k)*k);date.setUTCMonth(0,1);date.setUTCHours(0,0,0,0)},function(date,step){date.setUTCFullYear(date.getUTCFullYear()+step*k)})};var utcYears=utcYear.range;exports.timeInterval=newInterval;exports.timeMillisecond=millisecond;exports.timeMilliseconds=milliseconds;exports.utcMillisecond=millisecond;exports.utcMilliseconds=milliseconds;exports.timeSecond=second;exports.timeSeconds=seconds;exports.utcSecond=second;exports.utcSeconds=seconds;exports.timeMinute=minute;exports.timeMinutes=minutes;exports.timeHour=hour;exports.timeHours=hours;exports.timeDay=day;exports.timeDays=days;exports.timeWeek=sunday;exports.timeWeeks=sundays;exports.timeSunday=sunday;exports.timeSundays=sundays;exports.timeMonday=monday;exports.timeMondays=mondays;exports.timeTuesday=tuesday;exports.timeTuesdays=tuesdays;exports.timeWednesday=wednesday;exports.timeWednesdays=wednesdays;exports.timeThursday=thursday;exports.timeThursdays=thursdays;exports.timeFriday=friday;exports.timeFridays=fridays;exports.timeSaturday=saturday;exports.timeSaturdays=saturdays;exports.timeMonth=month;exports.timeMonths=months;exports.timeYear=year;exports.timeYears=years;exports.utcMinute=utcMinute;exports.utcMinutes=utcMinutes;exports.utcHour=utcHour;exports.utcHours=utcHours;exports.utcDay=utcDay;exports.utcDays=utcDays;exports.utcWeek=utcSunday;exports.utcWeeks=utcSundays;exports.utcSunday=utcSunday;exports.utcSundays=utcSundays;exports.utcMonday=utcMonday;exports.utcMondays=utcMondays;exports.utcTuesday=utcTuesday;exports.utcTuesdays=utcTuesdays;exports.utcWednesday=utcWednesday;exports.utcWednesdays=utcWednesdays;exports.utcThursday=utcThursday;exports.utcThursdays=utcThursdays;exports.utcFriday=utcFriday;exports.utcFridays=utcFridays;exports.utcSaturday=utcSaturday;exports.utcSaturdays=utcSaturdays;exports.utcMonth=utcMonth;exports.utcMonths=utcMonths;exports.utcYear=utcYear;exports.utcYears=utcYears;Object.defineProperty(exports,"__esModule",{value:true})})},{}],11:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=color;var _legend=require("./legend");var _legend2=_interopRequireDefault(_legend);var _d3Dispatch=require("d3-dispatch");var _d3Scale=require("d3-scale");var _d3Format=require("d3-format");var _d3Array=require("d3-array");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function color(){var scale=(0,_d3Scale.scaleLinear)(),shape="rect",shapeWidth=15,shapeHeight=15,shapeRadius=10,shapePadding=2,cells=[5],cellFilter=void 0,labels=[],classPrefix="",useClass=false,title="",labelFormat=(0,_d3Format.format)(".01f"),labelOffset=10,labelAlign="middle",labelDelimiter="to",labelWrap=void 0,orient="vertical",ascending=false,path=void 0,titleWidth=void 0,legendDispatcher=(0,_d3Dispatch.dispatch)("cellover","cellout","cellclick");function legend(svg){var type=_legend2.default.d3_calcType(scale,ascending,cells,labels,labelFormat,labelDelimiter),legendG=svg.selectAll("g").data([scale]);legendG.enter().append("g").attr("class",classPrefix+"legendCells");if(cellFilter){_legend2.default.d3_filterCells(type,cellFilter)}var cell=svg.select("."+classPrefix+"legendCells").selectAll("."+classPrefix+"cell").data(type.data);var cellEnter=cell.enter().append("g").attr("class",classPrefix+"cell");cellEnter.append(shape).attr("class",classPrefix+"swatch");var shapes=svg.selectAll("g."+classPrefix+"cell "+shape);_legend2.default.d3_addEvents(cellEnter,legendDispatcher);cell.exit().transition().style("opacity",0).remove();_legend2.default.d3_drawShapes(shape,shapes,shapeHeight,shapeWidth,shapeRadius,path);_legend2.default.d3_addText(svg,cellEnter,type.labels,classPrefix,labelWrap);cell=cellEnter.merge(cell);var text=cell.selectAll("text"),textSize=text.nodes().map(function(d){return d.getBBox()}),shapeSize=shapes.nodes().map(function(d){return d.getBBox()});if(!useClass){if(shape=="line"){shapes.style("stroke",type.feature)}else{shapes.style("fill",type.feature)}}else{shapes.attr("class",function(d){return classPrefix+"swatch "+type.feature(d)})}var cellTrans=void 0,textTrans=void 0,textAlign=labelAlign=="start"?0:labelAlign=="middle"?.5:1;if(orient==="vertical"){(function(){var cellSize=textSize.map(function(d,i){return Math.max(d.height,shapeSize[i].height)});cellTrans=function cellTrans(d,i){var height=(0,_d3Array.sum)(cellSize.slice(0,i));return"translate(0, "+(height+i*shapePadding)+")"};textTrans=function textTrans(d,i){return"translate( "+(shapeSize[i].width+shapeSize[i].x+labelOffset)+", "+(shapeSize[i].y+shapeSize[i].height/2+5)+")"}})()}else if(orient==="horizontal"){cellTrans=function cellTrans(d,i){return"translate("+i*(shapeSize[i].width+shapePadding)+",0)"};textTrans=function textTrans(d,i){return"translate("+(shapeSize[i].width*textAlign+shapeSize[i].x)+",\n          "+(shapeSize[i].height+shapeSize[i].y+labelOffset+8)+")"}}_legend2.default.d3_placement(orient,cell,cellTrans,text,textTrans,labelAlign);_legend2.default.d3_title(svg,title,classPrefix,titleWidth);cell.transition().style("opacity",1)}legend.scale=function(_){if(!arguments.length)return scale;scale=_;return legend};legend.cells=function(_){if(!arguments.length)return cells;if(_.length>1||_>=2){cells=_}return legend};legend.cellFilter=function(_){if(!arguments.length)return cellFilter;cellFilter=_;return legend};legend.shape=function(_,d){if(!arguments.length)return shape;if(_=="rect"||_=="circle"||_=="line"||_=="path"&&typeof d==="string"){shape=_;path=d}return legend};legend.shapeWidth=function(_){if(!arguments.length)return shapeWidth;shapeWidth=+_;return legend};legend.shapeHeight=function(_){if(!arguments.length)return shapeHeight;shapeHeight=+_;return legend};legend.shapeRadius=function(_){if(!arguments.length)return shapeRadius;shapeRadius=+_;return legend};legend.shapePadding=function(_){if(!arguments.length)return shapePadding;shapePadding=+_;return legend};legend.labels=function(_){if(!arguments.length)return labels;labels=_;return legend};legend.labelAlign=function(_){if(!arguments.length)return labelAlign;if(_=="start"||_=="end"||_=="middle"){labelAlign=_}return legend};legend.labelFormat=function(_){if(!arguments.length)return labelFormat;labelFormat=typeof _==="string"?(0,_d3Format.format)(_):_;return legend};legend.labelOffset=function(_){if(!arguments.length)return labelOffset;labelOffset=+_;return legend};legend.labelDelimiter=function(_){if(!arguments.length)return labelDelimiter;labelDelimiter=_;return legend};legend.labelWrap=function(_){if(!arguments.length)return labelWrap;labelWrap=_;return legend};legend.useClass=function(_){if(!arguments.length)return useClass;if(_===true||_===false){useClass=_}return legend};legend.orient=function(_){if(!arguments.length)return orient;_=_.toLowerCase();if(_=="horizontal"||_=="vertical"){orient=_}return legend};legend.ascending=function(_){if(!arguments.length)return ascending;ascending=!!_;return legend};legend.classPrefix=function(_){if(!arguments.length)return classPrefix;classPrefix=_;return legend};legend.title=function(_){if(!arguments.length)return title;title=_;return legend};legend.titleWidth=function(_){if(!arguments.length)return titleWidth;titleWidth=_;return legend};legend.textWrap=function(_){if(!arguments.length)return textWrap;textWrap=_;return legend};legend.on=function(){var value=legendDispatcher.on.apply(legendDispatcher,arguments);return value===legendDispatcher?legend:value};return legend}},{"./legend":13,"d3-array":1,"d3-dispatch":4,"d3-format":5,"d3-scale":7}],12:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var thresholdLabels=exports.thresholdLabels=function thresholdLabels(_ref){var i=_ref.i,genLength=_ref.genLength,generatedLabels=_ref.generatedLabels;if(i===0){return generatedLabels[i].replace("NaN to","Less than")}else if(i===genLength-1){return"More than "+generatedLabels[genLength-1].replace(" to NaN","")}return generatedLabels[i]};exports.default={thresholdLabels:thresholdLabels}},{}],13:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});var _typeof=typeof Symbol==="function"&&typeof Symbol.iterator==="symbol"?function(obj){return typeof obj}:function(obj){return obj&&typeof Symbol==="function"&&obj.constructor===Symbol&&obj!==Symbol.prototype?"symbol":typeof obj};var _d3Selection=require("d3-selection");var d3_identity=function d3_identity(d){return d};var d3_reverse=function d3_reverse(arr){var mirror=[];for(var i=0,l=arr.length;i<l;i++){mirror[i]=arr[l-i-1]}return mirror};var d3_textWrapping=function d3_textWrapping(text,width){text.each(function(){var text=(0,_d3Selection.select)(this),words=text.text().split(/\s+/).reverse(),word,line=[],lineNumber=0,lineHeight=1.2,y=text.attr("y"),dy=parseFloat(text.attr("dy"))||0,tspan=text.text(null).append("tspan").attr("x",0).attr("dy",dy+"em");while(word=words.pop()){line.push(word);tspan.text(line.join(" "));if(tspan.node().getComputedTextLength()>width&&line.length>1){line.pop();tspan.text(line.join(" "));line=[word];tspan=text.append("tspan").attr("x",0).attr("dy",lineHeight+dy+"em").text(word)}}})};var d3_mergeLabels=function d3_mergeLabels(){var gen=arguments.length>0&&arguments[0]!==undefined?arguments[0]:[];var labels=arguments[1];var domain=arguments[2];var range=arguments[3];if((typeof labels==="undefined"?"undefined":_typeof(labels))==="object"){if(labels.length===0)return gen;var i=labels.length;for(;i<gen.length;i++){labels.push(gen[i])}return labels}else if(typeof labels==="function"){var customLabels=[];var genLength=gen.length;for(var _i=0;_i<genLength;_i++){customLabels.push(labels({i:_i,genLength:genLength,generatedLabels:gen,domain:domain,range:range}))}return customLabels}return gen};var d3_linearLegend=function d3_linearLegend(scale,cells,labelFormat){var data=[];if(cells.length>1){data=cells}else{var domain=scale.domain(),increment=(domain[domain.length-1]-domain[0])/(cells-1);var i=0;for(;i<cells;i++){data.push(domain[0]+i*increment)}}var labels=data.map(labelFormat);return{data:data,labels:labels,feature:function feature(d){return scale(d)}}};var d3_quantLegend=function d3_quantLegend(scale,labelFormat,labelDelimiter){var labels=scale.range().map(function(d){var invert=scale.invertExtent(d);return labelFormat(invert[0])+" "+labelDelimiter+" "+labelFormat(invert[1])});return{data:scale.range(),labels:labels,feature:d3_identity}};var d3_ordinalLegend=function d3_ordinalLegend(scale){return{data:scale.domain(),labels:scale.domain(),feature:function feature(d){return scale(d)}}};var d3_cellOver=function d3_cellOver(cellDispatcher,d,obj){cellDispatcher.call("cellover",obj,d)};var d3_cellOut=function d3_cellOut(cellDispatcher,d,obj){cellDispatcher.call("cellout",obj,d)};var d3_cellClick=function d3_cellClick(cellDispatcher,d,obj){cellDispatcher.call("cellclick",obj,d)};exports.default={d3_drawShapes:function d3_drawShapes(shape,shapes,shapeHeight,shapeWidth,shapeRadius,path){if(shape==="rect"){shapes.attr("height",shapeHeight).attr("width",shapeWidth)}else if(shape==="circle"){shapes.attr("r",shapeRadius)}else if(shape==="line"){shapes.attr("x1",0).attr("x2",shapeWidth).attr("y1",0).attr("y2",0)}else if(shape==="path"){shapes.attr("d",path)}},d3_addText:function d3_addText(svg,enter,labels,classPrefix,labelWidth){enter.append("text").attr("class",classPrefix+"label");var text=svg.selectAll("g."+classPrefix+"cell text."+classPrefix+"label").data(labels).text(d3_identity);if(labelWidth){svg.selectAll("g."+classPrefix+"cell text."+classPrefix+"label").call(d3_textWrapping,labelWidth)}return text},d3_calcType:function d3_calcType(scale,ascending,cells,labels,labelFormat,labelDelimiter){var type=scale.invertExtent?d3_quantLegend(scale,labelFormat,labelDelimiter):scale.ticks?d3_linearLegend(scale,cells,labelFormat):d3_ordinalLegend(scale);var range=scale.range&&scale.range()||scale.domain();type.labels=d3_mergeLabels(type.labels,labels,scale.domain(),range);if(ascending){type.labels=d3_reverse(type.labels);type.data=d3_reverse(type.data)}return type},d3_filterCells:function d3_filterCells(type,cellFilter){var filterCells=type.data.map(function(d,i){return{data:d,label:type.labels[i]}}).filter(cellFilter);var dataValues=filterCells.map(function(d){return d.data});var labelValues=filterCells.map(function(d){return d.label});type.data=type.data.filter(function(d){return dataValues.indexOf(d)!==-1});type.labels=type.labels.filter(function(d){return labelValues.indexOf(d)!==-1});return type},d3_placement:function d3_placement(orient,cell,cellTrans,text,textTrans,labelAlign){cell.attr("transform",cellTrans);text.attr("transform",textTrans);if(orient==="horizontal"){text.style("text-anchor",labelAlign)}},d3_addEvents:function d3_addEvents(cells,dispatcher){cells.on("mouseover.legend",function(d){d3_cellOver(dispatcher,d,this)}).on("mouseout.legend",function(d){d3_cellOut(dispatcher,d,this)}).on("click.legend",function(d){d3_cellClick(dispatcher,d,this)})},d3_title:function d3_title(svg,title,classPrefix,titleWidth){if(title!==""){var titleText=svg.selectAll("text."+classPrefix+"legendTitle");titleText.data([title]).enter().append("text").attr("class",classPrefix+"legendTitle");svg.selectAll("text."+classPrefix+"legendTitle").text(title);if(titleWidth){svg.selectAll("text."+classPrefix+"legendTitle").call(d3_textWrapping,titleWidth)}var cellsSvg=svg.select("."+classPrefix+"legendCells");var yOffset=svg.select("."+classPrefix+"legendTitle").nodes().map(function(d){return d.getBBox().height})[0],xOffset=-cellsSvg.nodes().map(function(d){return d.getBBox().x})[0];cellsSvg.attr("transform","translate("+xOffset+","+yOffset+")")}}}},{"d3-selection":8}],14:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=size;var _legend=require("./legend");var _legend2=_interopRequireDefault(_legend);var _d3Dispatch=require("d3-dispatch");var _d3Scale=require("d3-scale");var _d3Format=require("d3-format");var _d3Array=require("d3-array");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function size(){var scale=(0,_d3Scale.scaleLinear)(),shape="rect",shapeWidth=15,shapePadding=2,cells=[5],cellFilter=void 0,labels=[],classPrefix="",title="",labelFormat=(0,_d3Format.format)(".01f"),labelOffset=10,labelAlign="middle",labelDelimiter="to",labelWrap=void 0,orient="vertical",ascending=false,path=void 0,titleWidth=void 0,legendDispatcher=(0,_d3Dispatch.dispatch)("cellover","cellout","cellclick");function legend(svg){var type=_legend2.default.d3_calcType(scale,ascending,cells,labels,labelFormat,labelDelimiter),legendG=svg.selectAll("g").data([scale]);if(cellFilter){_legend2.default.d3_filterCells(type,cellFilter)}legendG.enter().append("g").attr("class",classPrefix+"legendCells");var cell=svg.select("."+classPrefix+"legendCells").selectAll("."+classPrefix+"cell").data(type.data);var cellEnter=cell.enter().append("g").attr("class",classPrefix+"cell");cellEnter.append(shape).attr("class",classPrefix+"swatch");var shapes=svg.selectAll("g."+classPrefix+"cell "+shape);_legend2.default.d3_addEvents(cellEnter,legendDispatcher);cell.exit().transition().style("opacity",0).remove();if(shape==="line"){_legend2.default.d3_drawShapes(shape,shapes,0,shapeWidth);shapes.attr("stroke-width",type.feature)}else{_legend2.default.d3_drawShapes(shape,shapes,type.feature,type.feature,type.feature,path)}var text=_legend2.default.d3_addText(svg,cellEnter,type.labels,classPrefix,labelWrap);cell=cellEnter.merge(cell);var textSize=text.nodes().map(function(d){return d.getBBox()}),shapeSize=shapes.nodes().map(function(d,i){var bbox=d.getBBox();var stroke=scale(type.data[i]);if(shape==="line"&&orient==="horizontal"){bbox.height=bbox.height+stroke}else if(shape==="line"&&orient==="vertical"){bbox.width=bbox.width}return bbox});var maxH=(0,_d3Array.max)(shapeSize,function(d){return d.height+d.y}),maxW=(0,_d3Array.max)(shapeSize,function(d){return d.width+d.x});var cellTrans=void 0,textTrans=void 0,textAlign=labelAlign=="start"?0:labelAlign=="middle"?.5:1;if(orient==="vertical"){(function(){var cellSize=textSize.map(function(d,i){return Math.max(d.height,shapeSize[i].height)});var y=shape=="circle"||shape=="line"?shapeSize[0].height/2:0;cellTrans=function cellTrans(d,i){var height=(0,_d3Array.sum)(cellSize.slice(0,i));return"translate(0, "+(y+height+i*shapePadding)+")"};textTrans=function textTrans(d,i){return"translate( "+(maxW+labelOffset)+",\n          "+(shapeSize[i].y+shapeSize[i].height/2+5)+")"}})()}else if(orient==="horizontal"){cellTrans=function cellTrans(d,i){var width=(0,_d3Array.sum)(shapeSize.slice(0,i),function(d){return d.width});var y=shape=="circle"||shape=="line"?maxH/2:0;return"translate("+(width+i*shapePadding)+", "+y+")"};textTrans=function textTrans(d,i){return"translate( "+(shapeSize[i].width*textAlign+shapeSize[i].x)+",\n              "+(maxH+labelOffset)+")"}}_legend2.default.d3_placement(orient,cell,cellTrans,text,textTrans,labelAlign);_legend2.default.d3_title(svg,title,classPrefix,titleWidth);cell.transition().style("opacity",1)}legend.scale=function(_){if(!arguments.length)return scale;scale=_;return legend};legend.cells=function(_){if(!arguments.length)return cells;if(_.length>1||_>=2){cells=_}return legend};legend.cellFilter=function(_){if(!arguments.length)return cellFilter;cellFilter=_;return legend};legend.shape=function(_,d){if(!arguments.length)return shape;if(_=="rect"||_=="circle"||_=="line"){shape=_;path=d}return legend};legend.shapeWidth=function(_){if(!arguments.length)return shapeWidth;shapeWidth=+_;return legend};legend.shapePadding=function(_){if(!arguments.length)return shapePadding;shapePadding=+_;return legend};legend.labels=function(_){if(!arguments.length)return labels;labels=_;return legend};legend.labelAlign=function(_){if(!arguments.length)return labelAlign;if(_=="start"||_=="end"||_=="middle"){labelAlign=_}return legend};legend.labelFormat=function(_){if(!arguments.length)return labelFormat;labelFormat=typeof _==="string"?(0,_d3Format.format)(_):_;return legend};legend.labelOffset=function(_){if(!arguments.length)return labelOffset;labelOffset=+_;return legend};legend.labelDelimiter=function(_){if(!arguments.length)return labelDelimiter;labelDelimiter=_;return legend};legend.labelWrap=function(_){if(!arguments.length)return labelWrap;labelWrap=_;return legend};legend.orient=function(_){if(!arguments.length)return orient;_=_.toLowerCase();if(_=="horizontal"||_=="vertical"){orient=_}return legend};legend.ascending=function(_){if(!arguments.length)return ascending;ascending=!!_;return legend};legend.classPrefix=function(_){if(!arguments.length)return classPrefix;classPrefix=_;return legend};legend.title=function(_){if(!arguments.length)return title;title=_;return legend};legend.titleWidth=function(_){if(!arguments.length)return titleWidth;titleWidth=_;return legend};legend.on=function(){var value=legendDispatcher.on.apply(legendDispatcher,arguments);return value===legendDispatcher?legend:value};return legend}},{"./legend":13,"d3-array":1,"d3-dispatch":4,"d3-format":5,"d3-scale":7}],15:[function(require,module,exports){"use strict";Object.defineProperty(exports,"__esModule",{value:true});exports.default=symbol;var _legend=require("./legend");var _legend2=_interopRequireDefault(_legend);var _d3Dispatch=require("d3-dispatch");var _d3Scale=require("d3-scale");var _d3Format=require("d3-format");var _d3Array=require("d3-array");function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}function symbol(){var scale=(0,_d3Scale.scaleLinear)(),shape="path",shapeWidth=15,shapeHeight=15,shapeRadius=10,shapePadding=5,cells=[5],cellFilter=void 0,labels=[],classPrefix="",title="",labelFormat=(0,_d3Format.format)(".01f"),labelAlign="middle",labelOffset=10,labelDelimiter="to",labelWrap=void 0,orient="vertical",ascending=false,titleWidth=void 0,legendDispatcher=(0,_d3Dispatch.dispatch)("cellover","cellout","cellclick");function legend(svg){var type=_legend2.default.d3_calcType(scale,ascending,cells,labels,labelFormat,labelDelimiter),legendG=svg.selectAll("g").data([scale]);if(cellFilter){_legend2.default.d3_filterCells(type,cellFilter)}legendG.enter().append("g").attr("class",classPrefix+"legendCells");var cell=svg.select("."+classPrefix+"legendCells").selectAll("."+classPrefix+"cell").data(type.data);var cellEnter=cell.enter().append("g").attr("class",classPrefix+"cell");cellEnter.append(shape).attr("class",classPrefix+"swatch");var shapes=svg.selectAll("g."+classPrefix+"cell "+shape);_legend2.default.d3_addEvents(cellEnter,legendDispatcher);cell.exit().transition().style("opacity",0).remove();_legend2.default.d3_drawShapes(shape,shapes,shapeHeight,shapeWidth,shapeRadius,type.feature);_legend2.default.d3_addText(svg,cellEnter,type.labels,classPrefix,labelWrap);cell=cellEnter.merge(cell);var text=cell.selectAll("text"),textSize=text.nodes().map(function(d){return d.getBBox()}),shapeSize=shapes.nodes().map(function(d){return d.getBBox()});var maxH=(0,_d3Array.max)(shapeSize,function(d){return d.height}),maxW=(0,_d3Array.max)(shapeSize,function(d){return d.width});var cellTrans=void 0,textTrans=void 0,textAlign=labelAlign=="start"?0:labelAlign=="middle"?.5:1;if(orient==="vertical"){(function(){var cellSize=textSize.map(function(d,i){return Math.max(maxH,d.height)});cellTrans=function cellTrans(d,i){var height=(0,_d3Array.sum)(cellSize.slice(0,i));return"translate(0, "+(height+i*shapePadding)+" )"};textTrans=function textTrans(d,i){return"translate( "+(maxW+labelOffset)+",\n              "+(shapeSize[i].y+shapeSize[i].height/2+5)+")"}})()}else if(orient==="horizontal"){cellTrans=function cellTrans(d,i){return"translate( "+i*(maxW+shapePadding)+",0)"};textTrans=function textTrans(d,i){return"translate( "+(shapeSize[i].width*textAlign+shapeSize[i].x)+",\n              "+(maxH+labelOffset)+")"}}_legend2.default.d3_placement(orient,cell,cellTrans,text,textTrans,labelAlign);_legend2.default.d3_title(svg,title,classPrefix,titleWidth);cell.transition().style("opacity",1)}legend.scale=function(_){if(!arguments.length)return scale;scale=_;return legend};legend.cells=function(_){if(!arguments.length)return cells;if(_.length>1||_>=2){cells=_}return legend};legend.cellFilter=function(_){if(!arguments.length)return cellFilter;cellFilter=_;return legend};legend.shapePadding=function(_){if(!arguments.length)return shapePadding;shapePadding=+_;return legend};legend.labels=function(_){if(!arguments.length)return labels;labels=_;return legend};legend.labelAlign=function(_){if(!arguments.length)return labelAlign;if(_=="start"||_=="end"||_=="middle"){labelAlign=_}return legend};legend.labelFormat=function(_){if(!arguments.length)return labelFormat;labelFormat=typeof _==="string"?(0,_d3Format.format)(_):_;return legend};legend.labelOffset=function(_){if(!arguments.length)return labelOffset;labelOffset=+_;return legend};legend.labelDelimiter=function(_){if(!arguments.length)return labelDelimiter;labelDelimiter=_;return legend};legend.labelWrap=function(_){if(!arguments.length)return labelWrap;labelWrap=_;return legend};legend.orient=function(_){if(!arguments.length)return orient;_=_.toLowerCase();if(_=="horizontal"||_=="vertical"){orient=_}return legend};legend.ascending=function(_){if(!arguments.length)return ascending;ascending=!!_;return legend};legend.classPrefix=function(_){if(!arguments.length)return classPrefix;classPrefix=_;return legend};legend.title=function(_){if(!arguments.length)return title;title=_;return legend};legend.titleWidth=function(_){if(!arguments.length)return titleWidth;titleWidth=_;return legend};legend.on=function(){var value=legendDispatcher.on.apply(legendDispatcher,arguments);return value===legendDispatcher?legend:value};return legend}},{"./legend":13,"d3-array":1,"d3-dispatch":4,"d3-format":5,"d3-scale":7}],16:[function(require,module,exports){"use strict";var _color=require("./color");var _color2=_interopRequireDefault(_color);var _size=require("./size");var _size2=_interopRequireDefault(_size);var _symbol=require("./symbol");var _symbol2=_interopRequireDefault(_symbol);var _helpers=require("./helpers");var _helpers2=_interopRequireDefault(_helpers);function _interopRequireDefault(obj){return obj&&obj.__esModule?obj:{default:obj}}d3.legendColor=_color2.default;d3.legendSize=_size2.default;d3.legendSymbol=_symbol2.default;d3.legendHelpers=_helpers2.default},{"./color":11,"./helpers":12,"./size":14,"./symbol":15}]},{},[16]);d3Chart=function(){this.fullheight=0;this.fullwidth=0;this.graphHeight=0;this.graphWidth=0;this.hasLegend=false;this.hasTitle=false
;this.height=0;this.legendHeight=0;this.legendWidth=0;this.legendWidthPercent=null;this.legendHeightPercent=null;this.margin={top:10,bottom:10,left:10,right:10};this.axisMargin={top:10,bottom:30,left:60,right:10};this.name="d3Chart";this.svg=null;this.svgid=null;this.title=null;this.titleHeight=0;this.titleWidth=0;this.width=0;this.showGroupBackgrounds=false;this.allRows=null;this.isStacked=null;this.isGrouped=null;this.isDoubleGrouped=null;this.isDualYAxisChart=null;this.groups=null;this.subGroups=null};d3Chart.prototype.setupSVG=function(svgId){var self=this;if(svgId.match(/^#/)){this.svgId=svgId}else{this.svgId="#"+svgId}this.svgIdNoHash=this.svgId.substr(1);this.svg=d3.select(this.svgId);this.fullwidth=this.svg.attr("width");this.fullheight=this.svg.attr("height");this.width=this.fullwidth-this.margin.left-this.margin.right;this.height=this.fullheight-this.margin.top-this.margin.bottom;this.graphHeight=this.height;this.graphWidth=this.width;if(this.isDualYAxisChart){this.axisMargin.right=60}if(this.hasTitle){this.titleWidth=this.width;this.titleHeight=40;if(typeof this.settings.title!="undefined"){if(typeof this.settings.title.height!="undefined"){this.titleHeight=this.settings.title.height}}else if(typeof this.settings.common.title){if(typeof this.settings.common.title.height!="undefined"){this.titleHeight=this.settings.common.title.height}}}else{this.titleWidth=0;this.titleHeight=0}if(this.hasLegend){if(typeof this.settings.common.legend.heightPercent!="undefined"){this.legendHeight=this.height*this.settings.common.legend.heightPercent}else if(typeof this.settings.common.legend.height!="undefined"){this.legendHeight=this.settings.common.legend.height}if(typeof this.settings.common.legend.widthPercent!="undefined"){this.legendWidth=this.width*this.settings.common.legend.widthPercent}else if(typeof this.settings.common.legend.width!="undefined"){this.legendWidth=this.settings.common.legend.width}if(this.legendPosition=="n"){this.legendWidth=this.width}else if(this.legendPosition=="s"){this.legendWidth=this.width}else if(this.legendPosition=="e"){this.legendHeight=this.graphHeight}else if(this.legendPosition=="w"){this.legendHeight=this.graphHeight}}if(this.legendPosition=="n"){this.graphWidth=this.width;this.graphHeight=this.height-this.titleHeight-this.legendHeight}else if(this.legendPosition=="s"){this.graphWidth=this.width;this.graphHeight=this.height-this.titleHeight-this.legendHeight}else if(this.legendPosition=="e"){this.graphWidth=this.width-this.legendWidth;this.graphHeight=this.height-this.titleHeight}else if(this.legendPosition=="w"){this.graphWidth=this.width-this.legendWidth;this.graphHeight=this.height-this.titleHeight}};d3Chart.prototype.setupMargin=function(){var margin=null;if(typeof this.settings.margin!="undefined"){margin=this.settings.margin}else if(typeof this.settings.common.margin!="undefined"){margin=this.settings.common.margin}if(Array.isArray(margin)&&margin.length==4){this.margin.top=margin[0];this.margin.right=margin[1];this.margin.bottom=margin[2];this.margin.left=margin[3]}else if(typeof margin=="object"&&margin.hasOwnProperty("top")&&margin.hasOwnProperty("bottom")&&margin.hasOwnProperty("right")&&margin.hasOwnProperty("left")){this.margin=margin}else{throw"Invalid margin."}};d3Chart.prototype.addTitleGroup=function(){var self=this;if(this.hasTitle){this.titleGroup=this.mainGroup.append("g").attr("transform","translate(0,0)").attr("class","titleGroup");if(self.showGroupBackgrounds){this.bgTitleGroup=this.bgGroup.append("g").attr("transform","translate(0,0)").attr("class","bgTitleGroup");self.bgTitleGroup.append("rect").attr("x",0).attr("y",0).attr("width",self.titleWidth).attr("height",self.titleHeight).style("fill","#C2F5D9")}}};d3Chart.prototype.addGroupLabelsGroup=function(){this.groupLabelGroup=this.chartGroup.append("g").attr("transform","translate(0,"+(this.graphHeight-20)+")").attr("class","groupLabelsGroup");if(self.showGroupBackgrounds){self.titleGroup.append("rect").attr("x",0).attr("y",0).attr("width",self.graphWidth).attr("height",self.groupLabelsHeight).style("fill","#EFAD7A")}};d3Chart.prototype.setupTitle=function(){if(typeof this.settings.title!="undefined"){this.hasTitle=true;this.title=this.settings.title.text}else if(typeof this.settings.common.title!="undefined"){this.hasTitle=true;this.title=this.settings.common.title.text}};d3Chart.prototype.setupLegend=function(){if(typeof this.settings.legend!="undefined"){this.hasLegend=true;this.legendPosition=this.settings.legend.position}else if(typeof this.settings.common.legend!="undefined"){this.hasLegend=true;this.legendPosition=this.settings.common.legend.position}};d3Chart.prototype.addChartGroup=function(){var self=this;var dx=0;var dy=0;if(this.hasTitle){dy+=self.titleHeight}if(this.hasLegend){if(this.legendPosition=="w"){dx+=self.legendWidth}else if(this.legendPosition=="e"){}else if(this.legendPosition=="n"){dy+=self.legendHeight}else if(this.legendPosition=="s"){}}this.chartContainerGroup=this.mainGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","chartContainerGroup");this.graphWidth=this.graphWidth-this.axisMargin.left-this.axisMargin.right;this.graphHeight=this.graphHeight-this.axisMargin.top-this.axisMargin.bottom;this.chartGroup=this.chartContainerGroup.append("g").attr("transform","translate("+this.axisMargin.left+","+this.axisMargin.top+")").attr("class","chartGroup");if(self.showGroupBackgrounds){this.bgChartContainerGroup=this.bgGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","bgChartContainerGroup");this.bgChartGroup=this.bgChartContainerGroup.append("g").attr("transform","translate("+this.axisMargin.left+","+this.axisMargin.top+")").attr("class","bgChartGroup");self.bgChartGroup.append("rect").attr("x",0).attr("y",0).attr("width",self.graphWidth).attr("height",self.graphHeight).style("fill","#BAEDB9")}};d3Chart.prototype.addSVGGroups=function(){this.addMainGroup();this.addTitleGroup();this.addLegendGroup();this.addChartGroup()};d3Chart.prototype.addMainGroup=function(){var self=this;this.bgGroup=this.svg.append("g").attr("transform","translate("+self.margin.left+","+self.margin.top+")").attr("class","bgGroup");if(self.showGroupBackgrounds){self.bgGroup.append("rect").attr("x",0).attr("y",0).attr("width",self.width).attr("height",self.height).style("fill","#FFFF8C")}this.mainGroup=this.svg.append("g").attr("transform","translate("+self.margin.left+","+self.margin.top+")").attr("class","mainGroup")};d3Chart.prototype.addLegendGroup=function(){if(!this.hasLegend){return}var self=this;var dx=0;var dy=0;dy+=this.titleHeight;if(this.legendPosition=="n"){}else if(this.legendPosition=="s"){dy+=this.graphHeight}else if(this.legendPosition=="w"){}else if(this.legendPosition=="e"){dx+=this.graphWidth}this.legendGroup=this.mainGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","legendGroup");if(self.showGroupBackgrounds){this.bgLegendGroup=this.bgGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","bgLegendGroup");self.bgLegendGroup.append("rect").attr("x",0).attr("y",0).attr("width",self.legendWidth).attr("height",self.legendHeight).style("fill","#ee9aa3")}};d3Chart.prototype.drawTitle=function(){if(!this.hasTitle){return}var self=this;var titlegroup=this.titleGroup.append("g").attr("transform","translate(0,0)").attr("class","title");var titledata=[{text:this.title}];var fontFamily="arial";var textAnchor="middle";var fontSize="12";var textColor="#797979";if(typeof this.settings.title!="undefined"){if(typeof this.settings.title.fontFamily!="undefined"){fontFamily=this.settings.title.fontFamily}if(typeof this.settings.title.textAnchor!="undefined"){textAnchor=this.settings.title.textAnchor}if(typeof this.settings.title.fontSize!="undefined"){fontSize=this.settings.title.fontSize}if(typeof this.settings.title.textColor!="undefined"){textColor=this.settings.title.textColor}}else if(typeof this.settings.common.title!="undefined"){if(typeof this.settings.common.title.fontFamily!="undefined"){fontFamily=this.settings.common.title.fontFamily}if(typeof this.settings.common.title.textAnchor!="undefined"){textAnchor=this.settings.common.title.textAnchor}if(typeof this.settings.common.title.fontSize!="undefined"){fontSize=this.settings.common.title.fontSize}if(typeof this.settings.common.title.textColor!="undefined"){textColor=this.settings.common.title.textColor}}titlegroup.selectAll("text").data(titledata).enter().append("text").attr("class","title").style("font-family",fontFamily).style("text-anchor",textAnchor).style("font-size",fontSize+"px").style("fill",textColor).text(function(d){return d.text}).call(wrap,self.titleWidth);titlegroup.attr("transform","translate("+self.titleWidth/2+","+(self.titleHeight/2+fontSize/3)+")")};d3Chart.prototype.formatNumber=function(value,unit,dec,round){if(!round)round=100;if(value==null||isNaN(value)||value==Infinity)return"N/A";else if(dec||dec==0)value=Number(value).toFixed(dec);else value=Math.round(value*round)/round;var neg=false;if(value<0)neg=true;value=value.toString();if(unit=="non_"||unit=="year_"){return value}var x=value.split(".");var x1=x[0];var x2=x.length>1?x[1]:"0";if(unit&&unit=="$_"&&x2.length==1)x2+="0";var rgx=/(\d+)(\d{3})/;while(rgx.test(x1))x1=x1.replace(rgx,"$1"+","+"$2");value=x1;if(dec)value+="."+x2;else if(parseInt(x2,10)!=0)value+="."+x2.substr(0,2);if(unit&&unit!=""&&unit!="number_"){var fix=unit.split("_");if(fix[0]!=""){value=fix[0]+value;if(neg==true){var arr=value.split("-");value="-"+arr[0]+arr[1]}}if(fix[1]!="")value+=fix[1]}return value};d3Chart.prototype.processData=function(){var self=this;if(typeof this.settings.stacked!="undefined"){this.isStacked=this.settings.stacked}if(typeof this.settings.grouped!="undefined"){this.isGrouped=this.settings.grouped}if(typeof this.settings.subSubGroupField!="undefined"){this.isDoubleGrouped=true}if(typeof this.settings.valueField!="undefined"){this.valueField=this.settings.valueField}this.allRows=[];if(Array.isArray(this.data)){for(var i=0;i<this.data.length;i++){var r=this.data[i];if(Array.isArray(r)){for(var j=0;j<r.length;j++){var row=r[j];this.allRows.push(row)}}else{this.allRows.push(r)}}}else{if(this.data.hasOwnProperty("data1")){for(var i=0;i<this.data.data1.length;i++){var row=this.data.data1[i];this.allRows.push(row)}}if(this.data.hasOwnProperty("data2")){for(var i=0;i<this.data.data2.length;i++){var row=this.data.data2[i];this.allRows.push(row)}}}if(this.isGrouped){this.groups=self.allRows.map(function(d,i){return d.group});this.groups=self.array_unique(this.groups);if(typeof self.settings.groupField!="undefined"){this.groupField=self.settings.groupField;this.groupValues=self.allRows.map(function(d,i){return d[self.groupField]});this.groupValues=self.array_unique(this.groupValues)}this.subGroups=self.allRows.map(function(d,i){return d.subGroup||d.subgroup});this.subGroups=self.array_unique(this.subGroups);if(typeof self.settings.subGroupField!="undefined"){this.subGroupField=self.settings.subGroupField;this.subGroupValues=self.allRows.map(function(d,i){return d[self.subGroupField]});this.subGroupValues=self.array_unique(this.subGroupValues)}this.groupPadding=.1;if(typeof self.settings.groupPadding!="undefined"){this.groupPadding=self.settings.groupPadding}this.subGroupPadding=.1;if(typeof self.settings.subGroupPadding!="undefined"){this.subGroupPadding=self.settings.subGroupPadding}this.sums=[];for(var i=0;i<self.groups.length;i++){var gr=self.groups[i];this.sums[gr]=[];for(var j=0;j<self.subGroups.length;j++){var subGr=self.subGroups[j];this.sums[gr][subGr]=0}}if(this.isStacked){var maximumValue=0;for(var i=0;i<self.allRows.length;i++){var row=self.allRows[i];this.sums[row.group][row.subGroup]+=+row[self.valueField];if(this.sums[row.group][row.subGroup]>maximumValue){maximumValue=this.sums[row.group][row.subGroup]}}this.maximumValue=maximumValue}else{var maximumValue=0;for(var i=0;i<self.allRows.length;i++){var row=self.allRows[i];if(row[self.valueField]>maximumValue){maximumValue=row[self.valueField]}}this.maximumValue=maximumValue}if(self.isStacked){for(var i=0;i<self.data.length;i++){var stackRow=self.data[i];if(i==0){for(var j=0;j<stackRow.length;j++){var row=stackRow[j];self.data[i][j].floor=0;self.data[i][j].ceil=row[self.valueField]}}else{for(var j=0;j<stackRow.length;j++){var previousStackRow=self.data[i-1];var previousRow=previousStackRow[j];var previousCeil=previousRow.ceil;var row=stackRow[j];self.data[i][j].floor=previousCeil;self.data[i][j].ceil=previousCeil+row[self.valueField]}}}}if(this.isDoubleGrouped){this.subSubGroupField=self.settings.subSubGroupField;this.subSubGroupValues=self.allRows.map(function(d,i){return d[self.subSubGroupField]});this.subSubGroupValues=self.array_unique(this.subSubGroupValues);this.subSubGroups=self.allRows.map(function(d,i){return d.subGroup||d.subgroup});this.subSubGroups=self.array_unique(this.subSubGroups);this.subSubGroupPadding=.1;if(typeof self.settings.subSubGroupPadding!="undefined"){this.subSubGroupPadding=self.settings.subSubGroupPadding}}}};d3Chart.prototype.drawNorthSouthLegend=function(){var self=this;if(typeof this.settings.legend!="undefined"){var legendField=self.settings.legend.labelSourceField}else if(typeof this.settings.common.legend!="undefined"){var legendField=self.settings.common.legend.labelSourceField}else{throw"Invalid settings"}var legendLabels=self.allRows.map(function(d){return d[legendField]});legendLabels=legendLabels.filter(function(d){return d!=""&&typeof d!="undefined"});legendLabels=self.array_unique(legendLabels);var colors=self.allRows.map(function(d){return d.color||d.barcolor||""});colors=colors.filter(function(d){return d!=""&&typeof d!="undefined"});colors=self.array_unique(colors);var legendScale=d3.scaleBand().domain(colors).range([0,self.width]);var legendcontent=self.legendGroup.append("g").attr("class","legendcontent").attr("transform","translate("+0+","+0+")");var bulletWidth=12;var bulletHeight=12;var fontSize=12;var textColor="#757575";if(typeof this.settings.legend!="undefined"){if(typeof this.settings.legend.bulletWidth!="undefined"){bulletWidth=this.settings.legend.bulletWidth}if(typeof this.settings.legend.bulletHeight!="undefined"){bulletHeight=this.settings.legend.bulletHeight}if(typeof this.settings.legend.fontSize!="undefined"){fontSize=this.settings.legend.fontSize}if(typeof this.settings.legend.textColor!="undefined"){textColor=this.settings.legend.textColor}}else if(typeof this.settings.common.legend!="undefined"){if(typeof this.settings.common.legend.bulletWidth!="undefined"){bulletWidth=this.settings.common.legend.bulletWidth}if(typeof this.settings.common.legend.bulletHeight!="undefined"){bulletHeight=this.settings.common.legend.bulletHeight}if(typeof this.settings.common.legend.fontSize!="undefined"){fontSize=this.settings.common.legend.fontSize}if(typeof this.settings.common.legend.textColor!="undefined"){textColor=this.settings.common.legend.textColor}}var legendSquares=legendcontent.append("g").attr("class","legendsquares").attr("transform","translate("+0+","+0+")");legendSquares.selectAll("rect").data(colors).enter().append("rect").attr("class","rect").attr("x",function(d,i){var color=colors[i];return legendScale(color)}).attr("y",function(d,i){var ret=0;ret+=self.legendHeight/2;ret-=bulletHeight/2;return ret}).attr("width",bulletWidth).attr("height",bulletHeight).attr("fill",function(d,i){var color=colors[i];return color});var legendTexts=legendcontent.append("g").attr("class","legendentries").attr("transform","translate("+0+","+0+")");var numsquares=colors.length;var squarespace=numsquares*bulletWidth;var textspace=self.graphWidth-squarespace;var textwidth=textspace/numsquares-10;legendTexts.selectAll("text").data(legendLabels).enter().append("text").style("fill",textColor).attr("x",function(d,i){var color=colors[i];var ret=legendScale(color);ret+=bulletWidth*1.5;return ret}).attr("y",function(d,i){var ret=0;ret+=self.legendHeight/2;ret+=fontSize/2;return ret}).attr("width",function(d,i){return legendScale.bandwidth()}).attr("height",20).text(function(d,i){return d}).style("font-size",fontSize+"px");var f=self.legendGroup.selectAll("g.legendentries text").each(function(d){var box=d3.select(this);var x=box.x;box.call(wrap,textwidth)});self.legendGroup.selectAll("text").each(function(){var that=d3.select(this);var textX=that.attr("x");var textY=that.attr("y");that.selectAll("tspan").each(function(d,i){var atspan=d3.select(this);atspan.attr("x",textX).attr("y",textY).attr("dy",function(){return i+"em"})})});var element=self.legendGroup.select("g.legendcontent").node();var actualHeight=element.getBoundingClientRect().height;var actualWidth=element.getBoundingClientRect().width;var xDifference=self.legendWidth-actualWidth;var yDifference=self.legendHeight-actualHeight;if(xDifference>0||yDifference>0){var moveRightLegendBy=xDifference/2;var moveDownLegendBy=yDifference/2;self.legendGroup.select(".legendcontent").attr("transform","translate("+moveRightLegendBy+","+0+")")}};d3Chart.prototype.drawEastWestLegend=function(){var self=this;if(typeof this.settings.legend!="undefined"){var legendField=self.settings.legend.labelSourceField}else if(typeof this.settings.common.legend!="undefined"){var legendField=self.settings.common.legend.labelSourceField}else{throw"Invalid settings"}var legendLabels=self.allRows.map(function(d){return d[legendField]});legendLabels=legendLabels.filter(function(d){return d!=""&&typeof d!="undefined"});legendLabels=self.array_unique(legendLabels);var colors=self.allRows.map(function(d){return d.color||d.barcolor||""});colors=colors.filter(function(d){return d!=""&&typeof d!="undefined"});colors=self.array_unique(colors);var colorScale=d3.scaleOrdinal().domain(legendLabels).range(colors);var legendcontent=self.legendGroup.append("g").attr("class","legendcontent").attr("transform","translate("+0+","+0+")");var bulletWidth=12;var bulletHeight=12;var fontSize=12;var textColor="#757575";if(typeof this.settings.legend!="undefined"){if(typeof this.settings.legend.bulletWidth!="undefined"){bulletWidth=this.settings.legend.bulletWidth}if(typeof this.settings.legend.bulletHeight!="undefined"){bulletHeight=this.settings.legend.bulletHeight}if(typeof this.settings.legend.fontSize!="undefined"){fontSize=this.settings.legend.fontSize}if(typeof this.settings.legend.textColor!="undefined"){textColor=this.settings.legend.textColor}}else if(typeof this.settings.common.legend!="undefined"){if(typeof this.settings.common.legend.bulletWidth!="undefined"){bulletWidth=this.settings.common.legend.bulletWidth}if(typeof this.settings.common.legend.bulletHeight!="undefined"){bulletHeight=this.settings.common.legend.bulletHeight}if(typeof this.settings.common.legend.fontSize!="undefined"){fontSize=this.settings.common.legend.fontSize}if(typeof this.settings.common.legend.textColor!="undefined"){textColor=this.settings.common.legend.textColor}}var wrapWidth=(this.legendWidth-bulletWidth)*.8;var ordinal=d3.scaleOrdinal().domain(legendLabels).range(colors);legendcontent.append("g").attr("class","legendOrdinal");var legendOrdinal=d3.legendColor().shape("rect").shapePadding(10).shapeWidth(bulletWidth).cellFilter(function(d){return d.label!=="e"}).labelWrap(wrapWidth).scale(ordinal);legendcontent.select(".legendOrdinal").call(legendOrdinal);legendcontent.select(".legendOrdinal").selectAll("text").style("fill",textColor).style("font-size",fontSize);var element=self.legendGroup.select("g.legendOrdinal").node();var actualHeight=element.getBoundingClientRect().height;var actualWidth=element.getBoundingClientRect().width;var xDifference=self.legendWidth-actualWidth;var yDifference=self.legendHeight-actualHeight;if(xDifference>0||yDifference>0){var moveRightLegendBy=xDifference/2;var moveDownLegendBy=yDifference/2;if(self.legendPosition=="w"){moveRightLegendBy=0}self.legendGroup.select(".legendOrdinal").attr("transform","translate("+moveRightLegendBy+","+moveDownLegendBy+")")}};d3Chart.prototype.drawLegend=function(){var self=this;if(this.hasLegend){if(self.legendPosition=="w"||self.legendPosition=="e"){self.drawEastWestLegend()}else if(self.legendPosition=="n"||self.legendPosition=="s"){self.drawNorthSouthLegend()}}};d3Chart.prototype.array_unique=function(arr){var u={},a=[];for(var i=0,l=arr.length;i<l;++i){if(u.hasOwnProperty(arr[i])){continue}a.push(arr[i]);u[arr[i]]=1}return a};d3Chart.prototype.addXAxisGroup=function(){var self=this;this.xAxisGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","xAxisGroup");if(self.showGroupBackgrounds){this.bgxAxisGroup=this.bgChartGroup.append("g").attr("transform","translate(0,0)").attr("class","bgxAxisGroup")}};d3Chart.prototype.renderDualYAxisChart=function(svgId,settings,data){this.isDualYAxisChart=true;var self=this;this.settings=settings;this.data=data;this.processData();this.setupMargin();this.setupTitle();this.setupLegend();this.setupSVG(svgId);this.addSVGGroups();this.drawTitle();this.drawLegend();this.addXAxisGroup();this.setxAxisScales();this.drawXAxis();this.addYAxisGroups();this.setYAxisScales();this.drawYAxisLeft();this.drawYAxisRight();this.drawGrid();this.drawLineLeft();this.drawLineRight()};d3Chart.prototype.renderDualYAxisBarChart=function(svgId,settings,data){this.isDualYAxisChart=true;var self=this;this.settings=settings;this.data=data;this.processData();this.setupMargin();this.setupTitle();this.setupLegend();this.setupSVG(svgId);this.addSVGGroups();this.drawTitle();this.drawLegend();this.addXAxisGroup();this.setxAxisScales();this.drawXAxis();this.addYAxisGroups();this.setYAxisScales();this.drawYAxisLeft();this.drawYAxisRight();this.drawGrid();this.drawDualYAxisGroupedBars()};d3Chart.prototype.renderGroupedStackedBarChart=function(svgId,settings,data){var self=this;this.settings=settings;this.data=data;this.processData();this.setupMargin();this.setupTitle();this.setupLegend();this.setupSVG(svgId);this.addSVGGroups();this.addGroupLabelsGroup();this.drawTitle();this.drawLegend();this.addXAxisGroup();this.setxAxisScales();this.drawXAxis();this.addYAxisGroups();this.setYAxisScales();this.drawYAxis();this.drawGrid();this.drawGroupedStackedBars()};d3Chart.prototype.renderDoubleGroupedBarChart=function(svgId,settings,data){var self=this;this.settings=settings;this.data=data;this.processData();this.setupMargin();this.setupTitle();this.setupLegend();this.setupSVG(svgId);this.addSVGGroups();this.addGroupLabelsGroup();this.drawTitle();this.drawLegend();this.addXAxisGroup();this.setxAxisScalesForDoubleGroupdedChart();this.drawXAxisLabelsForDoubleGroupedChart();this.addYAxisGroups();this.setYAxisScales();this.drawYAxis();this.drawGrid();this.drawDoubleGroupedBars()};d3Chart.prototype.renderGroupedBarChart=function(svgId,settings,data){var self=this;this.settings=settings;this.data=data;this.processData();this.setupMargin();this.setupTitle();this.setupLegend();this.setupSVG(svgId);this.addSVGGroups();this.addGroupLabelsGroup();this.drawTitle();this.drawLegend();this.addXAxisGroup();this.setxAxisScales();this.drawXAxis();this.addYAxisGroups();this.setYAxisScales();this.drawYAxis();this.drawGrid();this.drawGroupedBars()};d3Chart.prototype.drawGroupedStackedBars=function(){var self=this;var barGroup=self.chartGroup.append("g").attr("transform","translate("+0+","+0+")");for(var s=0;s<self.data.length;s++){var rows=self.data[s];var barsG=barGroup.append("g").attr("transform","translate("+0+","+0+")");barsG.selectAll("rect").data(rows).enter().append("rect").styles({fill:function(d,i){return d.color||d.barcolor},stroke:function(d,i){return d.color||d.barcolor},"stroke-width":"1"}).attr("width",function(d,i){return self.subGroupXAxisScale.bandwidth()}).attr("height",function(d,i){return self.yAxisScale(+d[self.valueField])}).attr("x",function(d,i){var ret=0;ret+=self.groupXAxisScale(d[self.groupField]);ret+=self.subGroupXAxisScale(d[self.subGroupField]);return ret}).attr("y",function(d,i){var ret=self.graphHeight;ret-=self.yAxisScale(+d[self.valueField]);ret-=self.yAxisScale(+d.floor);return ret}).attr("id",function(d){if(d.hasOwnProperty("elementId")){return d.elementId||""}else{return""}})}};d3Chart.prototype.drawDoubleGroupedBars=function(){var self=this;var barGroup=self.chartGroup.append("g").attr("transform","translate("+0+","+0+")");var barsG=barGroup.append("g").attr("transform","translate("+0+","+0+")");barsG.selectAll("rect").data(self.data).enter().append("rect").styles({fill:function(d,i){return d.color||d.barcolor},stroke:function(d,i){return d.color||d.barcolor},"stroke-width":"1"}).attr("width",function(d,i){return self.subSubGroupXAxisScale.bandwidth()}).attr("height",function(d,i){return self.yAxisScale(+d[self.valueField])}).attr("x",function(d,i){var ret=0;ret+=self.groupXAxisScale(d[self.groupField]);ret+=self.subGroupXAxisScale(d[self.subGroupField]);ret+=self.subSubGroupXAxisScale(d[self.subSubGroupField]);return ret}).attr("y",function(d,i){var ret=self.graphHeight;ret-=self.yAxisScale(+d[self.valueField]);return ret}).attr("id",function(d){if(d.hasOwnProperty("elementId")){return d.elementId||""}else{return""}})};d3Chart.prototype.drawDualYAxisGroupedBars=function(){var self=this;var barGroup=self.chartGroup.append("g").attr("transform","translate("+0+","+0+")").attr("class","barGroup");var barsGroup1=barGroup.append("g").attr("transform","translate("+0+","+0+")").attr("class","dataGroup1");barsGroup1.selectAll("rect").data(self.data.data1).enter().append("rect").styles({fill:function(d,i){return d.color||d.barcolor},stroke:function(d,i){return d.color||d.barcolor},"stroke-width":"1"}).attr("width",function(d,i){return self.subGroupXAxisScale.bandwidth()}).attr("height",function(d,i){return self.yAxisScaleLeft(+d[self.valueField])}).attr("x",function(d,i){var ret=0;ret+=self.groupXAxisScale(d[self.groupField]);ret+=self.subGroupXAxisScale(d[self.subGroupField]);return ret}).attr("y",function(d,i){var ret=self.graphHeight;ret-=self.yAxisScaleLeft(+d[self.valueField]);return ret}).attr("id",function(d){if(d.hasOwnProperty("elementId")){return d.elementId||""}else{return""}});var barsGroup2=barGroup.append("g").attr("transform","translate("+0+","+0+")").attr("class","dataGroup2");barsGroup2.selectAll("rect").data(self.data.data2).enter().append("rect").styles({fill:function(d,i){return d.color||d.barcolor},stroke:function(d,i){return d.color||d.barcolor},"stroke-width":"1"}).attr("width",function(d,i){return self.subGroupXAxisScale.bandwidth()}).attr("height",function(d,i){return self.yAxisScaleRight(+d[self.valueField])}).attr("x",function(d,i){var ret=0;ret+=self.groupXAxisScale(d[self.groupField]);ret+=self.subGroupXAxisScale(d[self.subGroupField]);return ret}).attr("y",function(d,i){var ret=self.graphHeight;ret-=self.yAxisScaleRight(+d[self.valueField]);return ret}).attr("id",function(d){if(d.hasOwnProperty("elementId")){return d.elementId||""}else{return""}})};d3Chart.prototype.drawGroupedBars=function(){var self=this;var barGroup=self.chartGroup.append("g").attr("transform","translate("+0+","+0+")");var barsG=barGroup.append("g").attr("transform","translate("+0+","+0+")");barsG.selectAll("rect").data(self.data).enter().append("rect").styles({fill:function(d,i){return d.color||d.barcolor},stroke:function(d,i){return d.color||d.barcolor},"stroke-width":"1"}).attr("width",function(d,i){return self.subGroupXAxisScale.bandwidth()}).attr("height",function(d,i){return self.yAxisScale(+d[self.valueField])}).attr("x",function(d,i){var ret=0;ret+=self.groupXAxisScale(d[self.groupField]);ret+=self.subGroupXAxisScale(d[self.subGroupField]);return ret}).attr("y",function(d,i){var ret=self.graphHeight;ret-=self.yAxisScale(+d[self.valueField]);return ret}).attr("id",function(d){if(d.hasOwnProperty("elementId")){return d.elementId||""}else{return""}})};d3Chart.prototype.drawLineRight=function(){var self=this;var xAxisField=this.settings.common.axis.x[0].field;var valueField=this.settings.data2.axis.y[0].valueField;var lineColor=this.settings.data2.axis.y[0].lineColor;var lineGroup=self.chartGroup.append("g").attr("transform","translate("+(0+self.xAxisScale.bandwidth()/2)+", "+0+")");var line=d3.line().defined(function(d){return d}).x(function(d){return self.xAxisScale(d[xAxisField])}).y(function(d){return self.yAxisScaleRight(+d[valueField])});lineGroup.append("path").datum(self.data.data2).attr("class","line").attr("d",line).attr("fill","none").attr("stroke",lineColor).attr("stroke-width","3px")};d3Chart.prototype.drawLineLeft=function(){var self=this;var xAxisField=this.settings.common.axis.x[0].field;var valueField=this.settings.data1.axis.y[0].valueField;var lineColor=this.settings.data1.axis.y[0].lineColor;var lineGroup=self.chartGroup.append("g").attr("transform","translate("+(0+self.xAxisScale.bandwidth()/2)+", "+0+")");var line=d3.line().defined(function(d){return d}).x(function(d){return self.xAxisScale(d[xAxisField])}).y(function(d){return self.yAxisScaleLeft(+d[valueField])});lineGroup.append("path").datum(self.data.data1).attr("class","line").attr("d",line).attr("fill","none").attr("stroke",lineColor).attr("stroke-width","3px")};d3Chart.prototype.drawGrid=function(){var self=this;var displayGrid=true;if(typeof self.settings.common.grid.display!="undefined"){displayGrid=self.settings.common.grid.display}if(!displayGrid)return;var gridGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","gridGroup").attr("id",self.svgIdNoHash+"gridGroup");var negwidth=self.graphWidth*-1;var gridG=gridGroup.append("g").attr("class","grid").call(make_y_gridlines().tickSize(negwidth).tickFormat("")).attr("transform","translate("+0+", "+0+")");function make_y_gridlines(){if(self.isGrouped){if(self.isDualYAxisChart){return d3.axisLeft(self.yAxisScaleLeft).ticks(self.yAxisNumOfTicks)}else{return d3.axisLeft(self.yAxisScale).ticks(self.yAxisNumOfTicks)}}else{return d3.axisLeft(self.yAxisScaleLeft).ticks(self.yAxisNumOfTicks)}}var color="lightgrey";if(typeof self.settings.common.grid.color!="undefined"){color=self.settings.common.grid.color}var opacity=.4;if(typeof self.settings.common.grid.opacity!="undefined"){opacity=self.settings.common.grid.opacity}d3.select(self.svgId).select("g.chartGroup").select("g.gridGroup").select("g.grid").selectAll("line").attr("stroke-width","1").attr("stroke",color).attr("stroke-opacity",opacity);d3.select(self.svgId).select("g.chartGroup").select("g.gridGroup").select("g.grid").selectAll("path").attr("stroke-width","1").attr("stroke",color).attr("stroke-opacity",opacity)};d3Chart.prototype.drawYAxisRight=function(){var self=this;this.yAxisGroupRight.append("g").attr("id",self.svgIdNoHash+"yAxisRight").attr("transform","translate("+self.graphWidth+", 0 )").call(d3.axisRight(self.yAxisScaleRight));var displayLine=true;if(typeof self.settings.data2.axis.y[0].displayLine!="undefined"){displayLine=self.settings.data2.axis.y[0].displayLine}var lineColor="#797979";if(typeof self.settings.data2.axis.y[0].lineColor!="undefined"){lineColor=self.settings.data2.axis.y[0].lineColor}var displayTicks=true;if(typeof self.settings.data2.axis.y[0].displayTicks!="undefined"){displayTicks=self.settings.data2.axis.y[0].displayTicks}var tickLineStroke="#797979";if(typeof self.settings.data2.axis.y[0].tickLineStroke!="undefined"){tickLineStroke=self.settings.data2.axis.y[0].tickLineStroke}var textColor="grey";if(typeof self.settings.data2.axis.y[0].textColor!="undefined"){textColor=self.settings.data2.axis.y[0].textColor}var displayLabels=true;if(typeof self.settings.data2.axis.y[0].displayLabels!="undefined"){displayLabels=self.settings.data2.axis.y[0].displayLabels}var displayXAxis=true;if(typeof self.settings.data2.axis.y[0].display!="undefined"){displayXAxis=self.settings.data2.axis.y[0].display}var labelFormat=null;if(typeof self.settings.data2.axis.y[0].labelFormat!="undefined"){labelFormat=self.settings.data2.axis.y[0].labelFormat}var decimals=0;if(typeof self.settings.data2.axis.y[0].decimals!="undefined"){decimals=self.settings.data2.axis.y[0].decimals}
if(labelFormat){d3.select(self.svgId+"yAxisRight").selectAll("g.tick text").each(function(d,i){d3.select(this).text(function(d,i){var element=d3.select(this);var text=element.text();text=text.replace(/\,/g,"");var numericvalue=parseFloat(text);return self.formatNumber(numericvalue,labelFormat,decimals)})})}if(displayXAxis){d3.select(self.svgId+"yAxisRight").selectAll("line").style("stroke",tickLineStroke).style("opacity",function(d){return displayTicks?1:0});d3.select(self.svgId+"yAxisRight").selectAll("text").style("opacity",function(){return displayLabels?1:0});d3.select(self.svgId+"yAxisRight").selectAll("text").style("fill",textColor);d3.select(self.svgId+"yAxisRight").selectAll("path").style("stroke",lineColor).style("opacity",function(){return displayLine?1:0})}else{d3.select(self.svgId+"yAxisRight").selectAll("line").style("opacity",0);d3.select(self.svgId+"yAxisRight").selectAll("text").style("opacity",0);d3.select(self.svgId+"yAxisRight").selectAll("path").style("stroke","yAxisRight")}};d3Chart.prototype.drawYAxisLeft=function(){var self=this;this.yAxisGroupLeft.append("g").attr("id",self.svgIdNoHash+"yAxisLeft").attr("transform","translate(0, 0 )").call(d3.axisLeft(self.yAxisScaleLeft));var displayLine=true;if(typeof self.settings.data1.axis.y[0].displayLine!="undefined"){displayLine=self.settings.data1.axis.y[0].displayLine}var lineColor="#797979";if(typeof self.settings.data1.axis.y[0].lineColor!="undefined"){lineColor=self.settings.data1.axis.y[0].lineColor}var displayTicks=true;if(typeof self.settings.data1.axis.y[0].displayTicks!="undefined"){displayTicks=self.settings.data1.axis.y[0].displayTicks}var tickLineStroke="#797979";if(typeof self.settings.data1.axis.y[0].tickLineStroke!="undefined"){tickLineStroke=self.settings.data1.axis.y[0].tickLineStroke}var textColor="grey";if(typeof self.settings.data1.axis.y[0].textColor!="undefined"){textColor=self.settings.data1.axis.y[0].textColor}var displayLabels=true;if(typeof self.settings.data1.axis.y[0].displayLabels!="undefined"){displayLabels=self.settings.data1.axis.y[0].displayLabels}var displayXAxis=true;if(typeof self.settings.data1.axis.y[0].display!="undefined"){displayXAxis=self.settings.data1.axis.y[0].display}var labelFormat=null;if(typeof self.settings.data1.axis.y[0].labelFormat!="undefined"){labelFormat=self.settings.data1.axis.y[0].labelFormat}var decimals=0;if(typeof self.settings.data1.axis.y[0].decimals!="undefined"){decimals=self.settings.data1.axis.y[0].decimals}if(labelFormat){d3.select(self.svgId+"yAxisLeft").selectAll("g.tick text").each(function(d,i){d3.select(this).text(function(d,i){var element=d3.select(this);var text=element.text();text=text.replace(/\,/g,"");var numericvalue=parseFloat(text);return self.formatNumber(numericvalue,labelFormat,decimals)})})}if(displayXAxis){d3.select(self.svgId+"yAxisLeft").selectAll("line").style("stroke",tickLineStroke).style("opacity",function(d){return displayTicks?1:0});d3.select(self.svgId+"yAxisLeft").selectAll("text").style("opacity",function(){return displayLabels?1:0});d3.select(self.svgId+"yAxisLeft").selectAll("text").style("fill",textColor);d3.select(self.svgId+"yAxisLeft").selectAll("path").style("stroke",lineColor).style("opacity",function(){return displayLine?1:0})}else{d3.select(self.svgId+"yAxisLeft").selectAll("line").style("opacity",0);d3.select(self.svgId+"yAxisLeft").selectAll("text").style("opacity",0);d3.select(self.svgId+"yAxisLeft").selectAll("path").style("stroke","lightgrey")}};d3Chart.prototype.drawYAxis=function(){var self=this;this.yAxisGroup.append("g").attr("id",self.svgIdNoHash+"yAxis").attr("transform","translate(0, 0 )").call(d3.axisLeft(self.yAxisScaleReversed));var displayLine=true;if(typeof self.settings.common.axis.y[0].displayLine!="undefined"){displayLine=self.settings.common.axis.y[0].displayLine}var lineColor="#797979";if(typeof self.settings.common.axis.y[0].lineColor!="undefined"){lineColor=self.settings.common.axis.y[0].lineColor}var displayTicks=true;if(typeof self.settings.common.axis.y[0].displayTicks!="undefined"){displayTicks=self.settings.common.axis.y[0].displayTicks}var tickLineStroke="#797979";if(typeof self.settings.common.axis.y[0].tickLineStroke!="undefined"){tickLineStroke=self.settings.common.axis.y[0].tickLineStroke}var textColor="grey";if(typeof self.settings.common.axis.y[0].textColor!="undefined"){textColor=self.settings.common.axis.y[0].textColor}var displayLabels=true;if(typeof self.settings.common.axis.y[0].displayLabels!="undefined"){displayLabels=self.settings.common.axis.y[0].displayLabels}var displayXAxis=true;if(typeof self.settings.common.axis.y[0].display!="undefined"){displayXAxis=self.settings.common.axis.y[0].display}var labelFormat=null;if(typeof self.settings.common.axis.y[0].labelFormat!="undefined"){labelFormat=self.settings.common.axis.y[0].labelFormat}var decimals=0;if(typeof self.settings.common.axis.y[0].decimals!="undefined"){decimals=self.settings.common.axis.y[0].decimals}if(labelFormat){d3.select(self.svgId+"yAxis").selectAll("g.tick text").each(function(d,i){d3.select(this).text(function(d,i){var element=d3.select(this);var text=element.text();text=text.replace(/\,/g,"");var numericvalue=parseFloat(text);return self.formatNumber(numericvalue,labelFormat,decimals)})})}if(displayXAxis){d3.select(self.svgId+"yAxis").selectAll("line").style("stroke",tickLineStroke).style("opacity",function(d){return displayTicks?1:0});d3.select(self.svgId+"yAxis").selectAll("text").style("opacity",function(){return displayLabels?1:0});d3.select(self.svgId+"yAxis").selectAll("text").style("fill",textColor);d3.select(self.svgId+"yAxis").selectAll("path").style("stroke",lineColor).style("opacity",function(){return displayLine?1:0})}else{d3.select(self.svgId+"yAxis").selectAll("line").style("opacity",0);d3.select(self.svgId+"yAxis").selectAll("text").style("opacity",0);d3.select(self.svgId+"yAxis").selectAll("path").style("stroke","lightgrey")}};d3Chart.prototype.setYAxisScalesForDualAxisChart=function(){var self=this;var data1YAxisScalePaddingTop=1;var data1YAxisScalePaddingBottom=1;if(typeof self.settings.data1.axis.y[0].scalePaddingTop!="undefined"){data1YAxisScalePaddingTop=self.settings.data1.axis.y[0].scalePaddingTop}if(typeof self.settings.data1.axis.y[0].scalePaddingBottom!="undefined"){data1YAxisScalePaddingBottom=self.settings.data1.axis.y[0].scalePaddingBottom}var startAtZeroLeft=true;if(typeof self.settings.data1.axis.y[0].startAtZero!="undefined"){startAtZeroLeft=self.settings.data1.axis.y[0].startAtZero}var yAxisValueFieldLeft=self.settings.data1.axis.y[0].valueField;if(startAtZeroLeft){var minValLeft=0}else{minValLeft=d3.min(self.data.data1,function(d){return d[yAxisValueFieldLeft]})*data1YAxisScalePaddingBottom}var maxValLeft=d3.max(self.data.data1,function(d){return d[yAxisValueFieldLeft]})*data1YAxisScalePaddingTop;if(typeof self.settings.data1.axis.y!="undefined"&&typeof self.settings.data1.axis.y[0].max!="undefined"){if(maxValLeft>self.settings.data1.axis.y[0].max){maxValLeft=self.settings.data1.axis.y[0].max}}var yAxisValueFieldLeft=self.settings.data1.axis.y[0].valueField;this.yAxisScaleLeft=d3.scaleLinear().rangeRound([self.graphHeight,0]);this.yAxisScaleLeft.domain([minValLeft,maxValLeft]);this.yAxisScaleLeft.nice();var data2YAxisScalePaddingTop=1;var data2YAxisScalePaddingBottom=1;if(typeof self.settings.data2.axis.y[0].scalePaddingTop!="undefined"){data2YAxisScalePaddingTop=self.settings.data2.axis.y[0].scalePaddingTop}if(typeof self.settings.data2.axis.y[0].scalePaddingBottom!="undefined"){data2YAxisScalePaddingBottom=self.settings.data2.axis.y[0].scalePaddingBottom}var startAtZeroRight=true;if(typeof self.settings.data2.axis.y[0].startAtZero!="undefined"){startAtZeroRight=self.settings.data2.axis.y[0].startAtZero}var yAxisValueFieldRight=self.settings.data2.axis.y[0].valueField;if(startAtZeroRight){var minValRight=0}else{minValRight=d3.min(self.data.data2,function(d){return d[yAxisValueFieldRight]})*data2YAxisScalePaddingBottom}var maxValRight=d3.max(self.data.data2,function(d){return d[yAxisValueFieldRight]})*data2YAxisScalePaddingTop;if(typeof self.settings.data2.axis.y!="undefined"&&typeof self.settings.data2.axis.y[0].max!="undefined"){if(maxValRight>self.settings.data2.axis.y[0].max){maxValRight=self.settings.data2.axis.y[0].max}}var yAxisValueFieldRight=self.settings.data2.axis.y[0].valueField;this.yAxisScaleRight=d3.scaleLinear().rangeRound([self.graphHeight,0]);this.yAxisScaleRight.domain([minValRight,maxValRight]);this.yAxisScaleRight.nice()};d3Chart.prototype.setYAxisScales=function(){var self=this;if(self.isDualYAxisChart){self.setYAxisScalesForDualAxisChart()}else{var yAxisScalePaddingTop=1;var yAxisScalePaddingBottom=1;if(typeof self.settings.common.axis.y[0].scalePaddingTop!="undefined"){yAxisScalePaddingTop=self.settings.common.axis.y[0].scalePaddingTop}if(typeof self.settings.common.axis.y[0].scalePaddingBottom!="undefined"){yAxisScalePaddingBottom=self.settings.common.axis.y[0].scalePaddingBottom}var startAtZero=true;if(typeof self.settings.common.axis.y!="undefined"&&typeof self.settings.common.axis.y[0].startAtZero!="undefined"){startAtZero=self.settings.common.axis.y[0].startAtZero}var yAxisValueField=self.settings.common.axis.y[0].valueField;if(startAtZero){var minVal=0}else{minVal=d3.min(self.allRows,function(d){return d[yAxisValueField]})*yAxisScalePaddingBottom}var maxVal=self.maximumValue*yAxisScalePaddingTop;if(typeof self.settings.common.axis.y!="undefined"&&typeof self.settings.common.axis.y[0].max!="undefined"){if(maxVal>self.settings.common.axis.y[0].max){maxVal=self.settings.common.axis.y[0].max}}this.yAxisScale=d3.scaleLinear().rangeRound([0,self.graphHeight]);this.yAxisScale.domain([minVal,maxVal]);this.yAxisScale.nice();this.yAxisScaleReversed=d3.scaleLinear().rangeRound([self.graphHeight,0]);this.yAxisScaleReversed.domain([minVal,maxVal]);this.yAxisScaleReversed.nice()}};d3Chart.prototype.addYAxisGroups=function(){var self=this;this.yAxisGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","yAxisGroup").attr("id",self.svgIdNoHash+"yAxisGroup");this.yAxisGroupLeft=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","yAxisGroupLeft").attr("id",self.svgIdNoHash+"yAxisGroupLeft");this.yAxisGroupRight=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","yAxisGroupRight").attr("id",self.svgIdNoHash+"yAxisGroupRight")};d3Chart.prototype.setxAxisScales=function(){var self=this;var xAxisField=this.settings.common.axis.x[0].field;this.xAxisScale=d3.scaleBand().rangeRound([0,self.graphWidth]).domain(self.allRows.map(function(d){return d[xAxisField]}));if(this.isGrouped&&this.isStacked){this.groupXAxisScale=d3.scaleBand().rangeRound([0,self.graphWidth]).domain(self.groupValues).padding(self.groupPadding);this.groupWidth=this.groupXAxisScale.bandwidth();this.subGroupXAxisScale=d3.scaleBand().rangeRound([0,this.groupWidth]).domain(self.subGroupValues).padding(self.subGroupPadding)}else if(this.isGrouped){this.groupXAxisScale=d3.scaleBand().rangeRound([0,self.graphWidth]).domain(self.groupValues).padding(self.groupPadding);this.groupWidth=this.groupXAxisScale.bandwidth();this.subGroupXAxisScale=d3.scaleBand().rangeRound([0,this.groupWidth]).domain(self.subGroupValues).padding(self.subGroupPadding);this.subGroupXAxisScaleFullGraphWidth=d3.scaleBand().rangeRound([0,this.graphWidth]).domain(self.subGroupValues).padding(self.subGroupPadding)}};d3Chart.prototype.setxAxisScalesForDoubleGroupdedChart=function(){var self=this;var xAxisField=this.settings.common.axis.x[0].field;this.xAxisScale=d3.scaleBand().rangeRound([0,self.graphWidth]).domain(self.allRows.map(function(d){return d[xAxisField]}));this.groupXAxisScale=d3.scaleBand().rangeRound([0,self.graphWidth]).domain(self.groupValues).padding(self.groupPadding);this.groupWidth=this.groupXAxisScale.bandwidth();this.subGroupXAxisScale=d3.scaleBand().rangeRound([0,this.groupWidth]).domain(self.subGroupValues).padding(self.subGroupPadding);this.subGroupWidth=this.subGroupXAxisScale.bandwidth();this.subSubGroupXAxisScale=d3.scaleBand().rangeRound([0,this.subGroupWidth]).domain(self.subSubGroupValues).padding(self.subSubGroupPadding)};d3Chart.prototype.drawXAxis=function(){var self=this;var xAxisField=this.settings.common.axis.x[0].field;if(this.isGrouped&&this.isStacked){self.xAxisGroup.append("g").attr("class","xAxis").attr("id",self.svgIdNoHash+"xAxis").attr("transform","translate(0,"+(self.graphHeight+15)+")").call(d3.axisBottom(self.groupXAxisScale));self.xAxisGroup.append("g").selectAll("g").data(self.groupValues).enter().append("g").attr("class","xAxisLabels").attr("transform",function(d,i){var dx=0;dx+=self.groupXAxisScale(d);return"translate("+dx+","+(self.graphHeight+15)+")"}).selectAll("text").data(self.subGroupValues).enter().append("text").attr("x",function(d,i){var ret=0;ret+=self.subGroupXAxisScale(d);ret+=self.subGroupXAxisScale.bandwidth()/2;return ret}).attr("y",self.subGroupLabelsHeight).text(function(d,i){return d}).style("font-size","10px").style("font-family","arial").attr("fill","#797979").attr("text-anchor","middle");self.xAxisGroup.append("line").style("stroke","lightgrey").style("stroke-width",1).attr("x1",0).attr("y1",self.graphHeight).attr("x2",self.graphWidth).attr("y2",self.graphHeight)}else if(this.isGrouped){self.xAxisGroup.append("g").attr("class","xAxis").attr("id",self.svgIdNoHash+"xAxis").attr("transform","translate(0,"+self.graphHeight+")").call(d3.axisBottom(self.groupXAxisScale))}else{self.xAxisGroup.append("g").attr("class","xAxis").attr("id",self.svgIdNoHash+"xAxis").attr("transform","translate(0,"+self.graphHeight+")").call(d3.axisBottom(self.xAxisScale))}var xAxisTicklabels=self.allRows.map(function(d){return d[xAxisField]});xAxisTicklabels=self.array_unique(xAxisTicklabels);var maxLabelwidth=self.graphWidth/xAxisTicklabels.length;var displayLine=true;if(typeof self.settings.common.axis.x[0].displayLine!="undefined"){displayLine=self.settings.common.axis.x[0].displayLine}var lineColor="#797979";if(typeof self.settings.common.axis.x[0].lineColor!="undefined"){lineColor=self.settings.common.axis.x[0].lineColor}var displayTicks=true;if(typeof self.settings.common.axis.x[0].displayTicks!="undefined"){displayTicks=self.settings.common.axis.x[0].displayTicks}var tickLineStroke="#797979";if(typeof self.settings.common.axis.x[0].tickLineStroke!="undefined"){tickLineStroke=self.settings.common.axis.x[0].tickLineStroke}var textColor="grey";if(typeof self.settings.common.axis.x[0].textColor!="undefined"){textColor=self.settings.common.axis.x[0].textColor}var displayLabels=true;if(typeof self.settings.common.axis.x[0].displayLabels!="undefined"){displayLabels=self.settings.common.axis.x[0].displayLabels}var displayXAxis=true;if(typeof self.settings.common.axis.x[0].display!="undefined"){displayXAxis=self.settings.common.axis.x[0].display}var wrapLabels=false;if(typeof self.settings.common.axis.x[0].wrapLabels!="undefined"){wrapLabels=self.settings.common.axis.x[0].wrapLabels}if(this.isGrouped){displayLine=false;displayTicks=false}if(displayXAxis){d3.select(self.svgId+"xAxis").selectAll("line").style("stroke",tickLineStroke).style("opacity",function(d){return displayTicks?1:0});d3.select(self.svgId+"xAxis").selectAll("text").style("opacity",function(){return displayLabels?1:0});d3.select(self.svgId+"xAxis").selectAll("text").style("fill",textColor);d3.select(self.svgId+"xAxis").selectAll("path").style("stroke",lineColor).style("opacity",function(){return displayLine?1:0});if(wrapLabels){if(self.isGrouped){var wrapWidth=self.graphWidth/self.groupValues.length*(1-self.groupPadding)}else{var wrapWidth=self.graphWidth/self.allRows.length}d3.select(self.svgId+"xAxis").selectAll("text").call(wrap,wrapWidth);d3.select(self.svgId+"xAxis").selectAll("g.tick text").selectAll("tspan").filter(function(d,i){return i==0}).attr("y",function(d,i){var that=d3.select(this);var val=that.attr("y");var newval=(parseInt(val)||0)+10;return newval})}}else{d3.select(self.svgId+"xAxis").selectAll("line").style("opacity",0);d3.select(self.svgId+"xAxis").selectAll("text").style("opacity",0);d3.select(self.svgId+"xAxis").selectAll("path").style("stroke","lightgrey")}};d3Chart.prototype.drawXAxisLabelsForDoubleGroupedChart=function(){var self=this;var xAxisField=this.settings.common.axis.x[0].field;self.xAxisGroup.append("g").attr("class","xAxis").attr("id",self.svgIdNoHash+"xAxis").attr("transform","translate(0,"+(self.graphHeight+20)+")").call(d3.axisBottom(self.groupXAxisScale));self.xAxisGroup.append("g").selectAll("g").data(self.groupValues).enter().append("g").attr("class","xAxisLabels").attr("transform",function(d,i){var dx=0;dx+=self.groupXAxisScale(d);return"translate("+dx+","+self.graphHeight+")"}).selectAll("text").data(self.subGroupValues).enter().append("text").attr("x",function(d,i){var ret=0;ret+=self.subGroupXAxisScale(d);ret+=self.subGroupXAxisScale.bandwidth()/2;return ret}).attr("y",20).text(function(d,i){return d}).style("font-size","10px").style("font-family","arial").attr("fill","#797979").attr("text-anchor","middle");self.xAxisGroup.append("line").style("stroke","lightgrey").style("stroke-width",1).attr("x1",0).attr("y1",self.graphHeight).attr("x2",self.graphWidth).attr("y2",self.graphHeight);var xAxisTicklabels=self.allRows.map(function(d){return d[xAxisField]});xAxisTicklabels=self.array_unique(xAxisTicklabels);var maxLabelwidth=self.graphWidth/xAxisTicklabels.length;var displayLine=true;if(typeof self.settings.common.axis.x[0].displayLine!="undefined"){displayLine=self.settings.common.axis.x[0].displayLine}var lineColor="#797979";if(typeof self.settings.common.axis.x[0].lineColor!="undefined"){lineColor=self.settings.common.axis.x[0].lineColor}var displayTicks=true;if(typeof self.settings.common.axis.x[0].displayTicks!="undefined"){displayTicks=self.settings.common.axis.x[0].displayTicks}var tickLineStroke="#797979";if(typeof self.settings.common.axis.x[0].tickLineStroke!="undefined"){tickLineStroke=self.settings.common.axis.x[0].tickLineStroke}var textColor="grey";if(typeof self.settings.common.axis.x[0].textColor!="undefined"){textColor=self.settings.common.axis.x[0].textColor}var displayLabels=true;if(typeof self.settings.common.axis.x[0].displayLabels!="undefined"){displayLabels=self.settings.common.axis.x[0].displayLabels}var displayXAxis=true;if(typeof self.settings.common.axis.x[0].display!="undefined"){displayXAxis=self.settings.common.axis.x[0].display}if(this.isGrouped){displayLine=false;displayTicks=false}if(displayXAxis){d3.select(self.svgId+"xAxis").selectAll("line").style("stroke",tickLineStroke).style("opacity",function(d){return displayTicks?1:0});d3.select(self.svgId+"xAxis").selectAll("text").style("opacity",function(){return displayLabels?1:0});d3.select(self.svgId+"xAxis").selectAll("text").style("fill",textColor);d3.select(self.svgId+"xAxis").selectAll("path").style("stroke",lineColor).style("opacity",function(){return displayLine?1:0})}else{d3.select(self.svgId+"xAxis").selectAll("line").style("opacity",0);d3.select(self.svgId+"xAxis").selectAll("text").style("opacity",0);d3.select(self.svgId+"xAxis").selectAll("path").style("stroke","lightgrey")}};PMBarChart=function(data){if(Array.isArray(data)&&data.length){this.setData(data)}else{this.data=[]}this.alreadySetSeriesFieldScale=false;this.barOffsetterField="";this.barOffsetterFieldValues=[];this.barPositions=[];this.barWidthPercent=.6;this.chartGroup=null;this.chartPaddingPercent=.05;this.colors=["#67B7DC","#FDD400","#84B761","#CC4748","#CD82AD","#2F4074","#B7B83F","#B9783F","#FF0F00","#FF6600","#FF9E01","#FCD202","#F8FF01","#B0DE09","#04D215","#0D8ECF","#0D52D1","#2A0CD0","#8A0CCF","#CD0D74","#754DEB","#DDDDDD","#999999","#333333","#000000","#57032A","#CA9726","#990000","#4B0C25"];this.combinedData=[];this.data_only_valid=[];this.data_only_valid_plus_nulls=[];this.datafound=false;this.dataLabels=false;this.dataLabelFormat=null;this.dataLabelDecimals=null;this.dataLabelRound=null;this.dataLabelMinimumHeight=10;this.dataLabelType="normal";this.displayGrid=true;this.displayXAxisLabels=true;this.dividerField=null;this.dividerGroup=null;this.divideSections=false;this.errorGroup=null;this.fontcolor="grey";this.gridColor="lightgrey";this.gridGroup=null;this.hasTitle=false;this.hasyAxisLegend=false;this.hasLegend=false;this.nameField="name";this.numOfDigitsInValues=1;this.labelGroup=null;this.legendGroup=null;this.legendField=null;this.legendEntries=[];this.legendPosition="e";this.legendType="singlelabels";this.linecolor="lightgrey";this.margin={top:10,right:10,bottom:10,left:10};this.maxYAxisValue=null;this.medianBarOffsetterFieldValueIndex=null;this.numberOfDecimals=0;this.stacked=false;this.svg=null;this.svgid=null;this.tieBreakerField=null;this.type="";this.testing=0;this.title=null;this.titleFontSize="18";this.titleGroup=null;this.valueField="value";this.wrapSize;this.widthUsageBarSpacing=0;this.widthUsageSeriesSpacing=1-(this.barWidthPercent+this.widthUsageBarSpacing);this.xAxisGroup=null;this.xAxisScale=null;this.xAxis=null;this.xAxisField=null;this.xScaleForLegendLabels=null;this.xAxisLegend=null;this.xAxisLegendWidth=0;this.xAxisLegendHeight=0;this.yAxisFormat=null;this.yAxisDecimals=null;this.yAxisGroup=null;this.yAxisScale=null;this.yAxisLegend=null;this.yAxisLegendGroup=null;this.yAxisLegendWidth=0;this.yAxisLegendHeight=0;this.yAxis=null;this.yAxisScale=null;this.yAxisScaleReversed=null;this.yAxisScaleStacked=null;this.yAxisScaleStackedReversed=null;this.fullwidth=0;this.fullheight=0;this.width=0;this.height=0;this.titleWidth=0;this.titleHeight=0;this.legendWidth=0;this.legendHeight=0;this.xAxisHeight=20;this.xAxisHeightAdjustment=0;this.yAxisWidth=20;this.yAxisWidthAdjustment=0;this.legendWidthPercent=.25;this.graphWidth=0;this.graphHeight=0;this.legendPaddingX=0;this.legendPaddingY=0;this.yAxisLegend=null};PMBarChart.prototype.array_unique=function(arr){var u={},a=[];for(var i=0,l=arr.length;i<l;++i){if(u.hasOwnProperty(arr[i])){continue}a.push(arr[i]);u[arr[i]]=1}return a};PMBarChart.prototype.drawBars=function(){var self=this;if(self.stacked){self.drawStackedBars()}else{self.drawNonStackedBars()}};PMBarChart.prototype.drawStackedBars=function(){var self=this;for(var s=0;s<self.data.length;s++){var rows=self.data[s];var barsG=self.barGroup.append("g").attr("transform","translate("+0+","+0+")");barsG.selectAll("rect").data(rows).enter().append("rect").styles({fill:function(d,i){return d.color||d.barcolor},stroke:function(d,i){return d.color||d.barcolor},"stroke-width":"1"}).attr("id",function(d,i){return d.id||d.elementId}).attr("width",function(d,i){return self.graphWidth/self.data[0].length*self.barWidthPercent}).attr("height",function(d,i){return self.yAxisScaleReversed(+d.$value)}).attr("x",function(d,i){var ret=0;ret+=self.barPositionXAxisScale(+d.xPos);var numbars=rows.length;var numbBarSides=2*numbars;ret+=self.width*(1-self.barWidthPercent)/numbBarSides;return ret}).attr("y",function(d,i){var ret=0;ret+=self.graphHeight;ret-=self.yAxisScaleReversed(+d.upperValue);return ret}).attr("id",function(d){if(d.hasOwnProperty("elementId")){return d.elementId||""}else{return""}})}};PMBarChart.prototype.drawNonStackedBars=function(){var self=this;var barsG=self.barGroup.append("g").attr("transform","translate("+0+","+0+")");barsG.selectAll("rect").data(self.data).enter().append("rect").styles({fill:function(d,i){return d.color||d.barcolor},stroke:"#F6EFEF","stroke-width":"1"}).attr("width",function(d,i){var barWidth=self.graphWidth*self.barWidthPercent/self.data.length;return barWidth}).attr("height",function(d,i){var ret=0;ret+=self.yAxisScaleReversed(d[self.valueField]);return ret}).attr("id",function(d,i){return d.id||d.elementId}).attr("x",function(d,i){var ret=0;ret+=self.barPositionXAxisScale(+d.xPos);var numbars=self.data.length;var numbBarSides=2*numbars;ret+=self.width*(1-self.barWidthPercent)/numbBarSides;return ret}).attr("y",function(d,i){var ret=0;ret+=self.graphHeight;ret-=self.yAxisScaleReversed(d[self.valueField]);return ret}).attr("id",function(d){if(d.hasOwnProperty("elementId")){return d.elementId||""}else{return""}})};PMBarChart.prototype.drawGrid=function(){var self=this;if(!self.displayGrid)return;var negwidth=self.graphWidth*-1;var gridG=this.gridGroup.append("g").attr("class","grid").call(make_y_gridlines().tickSize(negwidth).tickFormat("")).attr("transform","translate("+0+", "+0+")");function make_y_gridlines(){if(self.stacked){return d3.axisLeft(self.yAxisScale).ticks(self.yAxisNumOfTicks)}else{return d3.axisLeft(self.yAxisScale).ticks(self.yAxisNumOfTicks)}}};PMBarChart.prototype.drawLegend=function(){var self=this;if(self.legendPosition=="w"||self.legendPosition=="e"){self.drawEastWestLegend()}else if(self.legendPosition=="n"||self.legendPosition=="s"){self.drawNorthSouthLegend()}};PMBarChart.prototype.drawNorthSouthLegend=function(){var self=this;var colors=[];if(self.stacked){colors=self.combinedData.map(function(d,i){return d.color||d.barcolor})}else{colors=self.data.map(function(d,i){return d.color||d.barcolor})}colors=self.array_unique(colors);if(self.stacked){self.legendEntries=self.array_unique(self.combinedData.map(function(d){return d[self.legendField]}))}else{self.legendEntries=self.array_unique(self.data.map(function(d){return d[self.legendField]}))}var legendcontent=self.legendGroup.append("g").attr("class","legendcontent").attr("transform","translate("+0+","+0+")");var squarewidth=12;var squareheight=12;var legendSquares=legendcontent.append("g").attr("class","legendsquares").attr("transform","translate("+0+","+0+")");legendSquares.selectAll("rect").data(colors).enter().append("rect").attr("class","rect").attr("x",function(d,i){var color=colors[i];return self.xScaleForLegendLabels(color)}).attr("y",function(d,i){var ret=0;ret+=self.legendHeight/2;if(self.hasTitle){if(self.legendPosition=="n"||self.legendPosition=="north"){ret+=self.titleHeight}}return ret}).attr("width",squarewidth).attr("height",squareheight).attr("fill",function(d,i){var color=colors[i];return color});var legendTexts=legendcontent.append("g").attr("class","legendentries").attr("transform","translate("+0+","+0+")");var numsquares=colors.length;var squarespace=numsquares*squarewidth;var textspace=self.graphWidth-squarespace;var textwidth=textspace/numsquares-10;legendTexts.selectAll("text").data(self.legendEntries).enter().append("text").style("fill","#757575").attr("x",function(d,i){var color=colors[i];var ret=self.xScaleForLegendLabels(color);ret+=squarewidth*1.5;return ret}).attr("y",function(d,i){var ret=0;ret+=self.legendHeight/2;ret+=squareheight*.75;if(self.hasTitle){if(self.legendPosition=="n"||self.legendPosition=="north"){ret+=self.titleHeight}}return ret}).attr("width",function(d,i){return self.xScaleForLegendLabels.bandwidth()}).attr("height",20).text(function(d,i){return d}).style("font-size","12px");var element=self.legendGroup.select("g.legendcontent").node();var elementWidth=element.getBoundingClientRect().width;var difference=self.legendWidth-elementWidth;if(difference>0){var halfDiff=difference/2;self.legendGroup.select("g.legendcontent").attr("transform","translate("+halfDiff+","+0+")")}var f=self.legendGroup.selectAll("g.legendentries text").each(function(d){var box=d3.select(this);var x=box.x;box.call(wrap,textwidth)});self.legendGroup.selectAll("text").each(function(){var that=d3.select(this);var textX=that.attr("x");var textY=that.attr("y");that.selectAll("tspan").each(function(d,i){var atspan=d3.select(this);atspan.attr("x",textX).attr("y",textY).attr("dy",function(){return i+"em"})})})};PMBarChart.prototype.drawErrorMessage=function(){var self=this;var messageWidth=120;var messageHeight=40;var widthToSplit=self.width-messageWidth;var heightToSplit=self.height-messageHeight;var errorMsgGroup=this.errorGroup.append("g").attr("transform","translate("+(widthToSplit/2+messageWidth/2)+","+(heightToSplit/2-messageHeight/2)+")").attr("id","errormsg");errorMsgGroup.append("text").attr("text-anchor","middle").style("font-family","arial").style("font-size","16px").attr("fill","red").text("Invalid or insufficient data.").call(wrap,messageWidth)};PMBarChart.prototype.drawEastWestLegend=function(){var self=this;var legendSquares=self.legendGroup.append("g").attr("transform","translate("+0+","+0+")");var legendspacing=20;var ordinal=d3.scaleOrdinal().domain(self.data.map(function(d){return d[self.nameField]})).range(self.data.map(function(d){return d.color||d.barcolor}));var l=self.legendGroup.append("g").attr("class","legendOrdinal").attr("transform","translate(0 ,0)");var shapepadding=10;var shapewidth=30;var labelwrap=self.legendWidth-shapepadding-shapewidth;var legendOrdinal=d3.legendColor().shape("path",d3.symbol().type(d3.symbolSquare).size(150)()).shapePadding(shapepadding).shapeWidth(shapewidth).cellFilter(function(d){return d[self.nameField]!=="e"}).labelWrap(labelwrap).scale(ordinal);self.legendGroup.select(".legendOrdinal").call(legendOrdinal);self.legendGroup.select(".legendOrdinal").selectAll("text").style("font-size",12).style("font-family","arial").style("fill","gray");var element=d3.select("g.legendOrdinal").node();var legendHeight=element.getBoundingClientRect().width;var difference=self.graphHeight-legendHeight;if(difference>0){var halfDiff=difference/2;var moveDownLegendby=self.titleHeight+halfDiff;self.legendGroup.select(".legendOrdinal").attr("transform","translate("+legendspacing+","+moveDownLegendby+")")}};PMBarChart.prototype.debug=function(){console.log("this.fullwidth: "+this.fullwidth);console.log("this.fullheight: "+this.fullheight);console.log("this.width: "+this.width);console.log("this.height: "+this.height);console.log("this.margin.top: "+this.margin.top);console.log("this.margin.right: "+this.margin.right);console.log("this.margin.bottom: "+this.margin.bottom);console.log("this.margin.left: "+this.margin.left);console.log("this.titleWidth: "+this.titleWidth);console.log("this.titleHeight: "+this.titleHeight);console.log("this.legendEntries:");console.log(this.legendEntries);console.log("this.legendWidth: "+this.legendWidth);console.log("this.legendHeight: "+this.legendHeight);console.log("this.legendPaddingX: "+this.legendPaddingX);console.log("this.legendPaddingY: "+this.legendPaddingY);console.log("this.graphWidth: "+this.graphWidth);console.log("this.graphHeight: "+this.graphHeight);console.log("this.xAxisField: "+this.xAxisField);console.log("this.nameField: "+this.nameField);console.log("this.valueField: "+this.valueField);console.log("this.yAxisFormat: "+this.yAxisFormat);console.log("this.yAxisDecimals: "+this.yAxisDecimals);console.log("this.stacked: "+String(this.stacked));console.log("this.dataLabelFormat: "+this.dataLabelFormat);console.log("this.dataLabelDecimals: "+this.dataLabelDecimals);console.log("this.numOfDigitsInValues: "+this.numOfDigitsInValues);console.log("this.barpositions");console.log(this.barPositions);console.log("Data");console.log(this.data);console.log("---------------------------------------------------")};PMBarChart.prototype.drawDataLabels=function(){var self=this;if(self.stacked){self.drawLabelsForStackedBars()}else{self.drawLabelsForNonStackedBars()}};PMBarChart.prototype.drawLabelsForNonStackedBars=function(){var self=this;var barsLabelsG=self.labelGroup.append("g").attr("transform","translate("+0+","+0+")");barsLabelsG.selectAll("text").data(self.data).enter().append("text").attr("x",function(d,i){var ret=0;ret+=self.barPositionXAxisScale(+d.xPos);ret+=self.xAxisScale.bandwidth()/2;return ret}).attr("y",function(d,i){var ret=0;ret+=self.graphHeight;ret-=self.yAxisScaleReversed(d[self.valueField])/2;return ret}).text(function(d,i){return self.formatNumber(d[self.valueField],self.dataLabelFormat,self.dataLabelDecimals,self.dataLabelRound)}).style("font-size","9px").style("font-family","Arial").style("fill","#ffffff").attr("text-anchor","middle")};PMBarChart.prototype.drawLabelsForStackedBars=function(){var self=this
;for(var s=0;s<self.data.length;s++){var rows=self.data[s];var barsLabelsG=self.labelGroup.append("g").attr("transform","translate("+0+","+0+")");barsLabelsG.selectAll("text").data(rows).enter().append("text").attr("x",function(d,i){var ret=0;ret+=self.barPositionXAxisScale(+d.xPos);ret+=self.xAxisScale.bandwidth()/2;return ret}).attr("y",function(d,i){var ret=0;ret+=self.graphHeight;ret-=self.yAxisScaleReversed(+d.lowerValue);ret-=self.yAxisScaleReversed(+d[self.valueField]/2);ret+=5;return ret}).text(function(d,i){var barHeight=self.yAxisScaleReversed(+d.$value);if(barHeight<self.dataLabelMinimumHeight){return""}return self.formatNumber(d[self.valueField],self.dataLabelFormat,self.dataLabelDecimals,self.dataLabelRound)}).style("font-size","9px").style("font-family","Arial").style("fill","#ffffff").attr("text-anchor","middle")}};PMBarChart.prototype.drawDividers=function(){var self=this;var dividinglinesGroup=this.dividerGroup.append("g").attr("transform","translate("+0+","+0+")").attr("class","dividinglines");if(self.stacked){var tmp=array_unique(self.combinedData.map(function(d){return d[self.dividerField]}));var numUniq=tmp.length}else{var tmp=array_unique(self.data.map(function(d){return d[self.dividerField]}));var numUniq=self.data.length/tmp.length}var divideArr=[];for(var i=1;i<=numUniq;i++){divideArr.push("divider"+i)}var dividerScale=d3.scaleBand().domain(divideArr).range([0,self.graphWidth]);dividinglinesGroup.selectAll("line").data(divideArr).enter().append("line").attr("x1",function(d,i){return dividerScale(d)}).attr("y1",0).attr("x2",function(d,i){return dividerScale(d)}).attr("y2",self.graphHeight).attr("stroke-width",1).attr("stroke-width",1).style("stroke-dasharray","2, 2").attr("stroke","grey").attr("opacity",function(d,i){if(i==0){return 0}return.5})};PMBarChart.prototype.drawTestingAreas=function(){var self=this;paintGlobalChartArea();paintTitleArea();paintMainGraphArea();paintXAxisArea();paintYAxisArea();paintXAxisLegendArea();paintYAxisLegendArea();paintLegendArea();function paintGlobalChartArea(){self.testingGroup.append("rect").attr("x",self.margin.left).attr("y",self.margin.top).attr("width",self.width).attr("height",self.height).style("fill","#FCE94F")}function paintTitleArea(){if(self.hasTitle){self.testingGroup.append("rect").attr("x",self.margin.left).attr("y",self.margin.top).attr("width",self.width).attr("height",self.titleHeight).style("fill","#EDA096")}}function paintLegendArea(){if(self.hasLegend){var dx=self.margin.left;var dy=self.margin.top;if(self.hasTitle){dy+=self.titleHeight}if(self.legendPosition=="w"){}else if(self.legendPosition=="e"){dx+=self.graphWidth}else if(self.legendPosition=="n"){}else if(self.legendPosition=="s"){dy+=self.graphHeight;dy+=self.xAxisHeight}if(this.legendPosition=="w"){}else if(self.legendPosition=="e"){dx+=self.yAxisLegendWidth}if(self.legendPosition=="w"){}else if(self.legendPosition=="e"){dx+=self.yAxisWidth}if(self.hasxAxisLegend){dy+=self.xAxisLegendHeight}self.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.legendWidth).attr("height",self.legendHeight).style("fill","#E3F7C3")}}function paintYAxisLegendArea(){if(self.hasyAxisLegend){var dx=self.margin.left;var dy=self.margin.top;if(self.hasTitle){dy+=self.titleHeight}if(self.hasLegend){if(self.legendPosition=="w"){dx+=self.legendWidth}else if(self.legendPosition=="e"){}else if(self.legendPosition=="n"){dy+=self.legendHeight}else if(self.legendPosition=="s"){}}self.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.yAxisLegendWidth).attr("height",self.graphHeight).style("fill","#DFFFFC")}}function paintXAxisLegendArea(){if(self.hasxAxisLegend){var dx=self.margin.left;var dy=self.margin.top;if(self.hasTitle){dy+=self.titleHeight}if(self.hasLegend){if(self.legendPosition=="w"){dx+=self.legendWidth}else if(self.legendPosition=="e"){}else if(self.legendPosition=="n"){dy+=self.legendHeight}else if(self.legendPosition=="s"){}}if(self.hasyAxisLegend){dx+=self.yAxisLegendWidth}dy+=self.graphHeight;dy+=self.xAxisHeight;dx+=self.yAxisWidth;self.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.graphWidth).attr("height",self.xAxisLegendHeight).style("fill","#DFFFFC").attr("stroke-width",2)}}function paintYAxisArea(){var dx=self.margin.left;var dy=self.margin.top;if(self.hasTitle){dy+=self.titleHeight}if(self.hasLegend){if(self.legendPosition=="w"){dx+=self.legendWidth}else if(self.legendPosition=="e"){}else if(self.legendPosition=="n"){dy+=self.legendHeight}else if(self.legendPosition=="s"){}}if(self.hasyAxisLegend){dx+=self.yAxisLegendWidth}self.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.yAxisWidth).attr("height",self.graphHeight).style("fill","#DFDFDF")}function paintXAxisArea(){var dx=self.margin.left;var dy=self.margin.top;if(self.hasTitle){dy+=self.titleHeight}if(self.hasLegend){if(self.legendPosition=="w"){dx+=self.legendWidth}else if(self.legendPosition=="e"){}else if(self.legendPosition=="n"){dy+=self.legendHeight}else if(self.legendPosition=="s"){}}if(self.hasyAxisLegend){dx+=self.yAxisLegendWidth}dy+=self.graphHeight;dx+=self.yAxisWidth;self.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.graphWidth).attr("height",self.xAxisHeight).style("fill","#DFDFDF")}function paintMainGraphArea(){var dx=self.margin.left;var dy=self.margin.top;if(self.hasTitle){dy+=self.titleHeight}if(self.hasLegend){if(self.legendPosition=="w"){dx+=self.legendWidth}else if(self.legendPosition=="e"){}else if(self.legendPosition=="n"){dy+=self.legendHeight}else if(self.legendPosition=="s"){}}if(self.hasyAxisLegend){dx+=self.yAxisLegendWidth}dx+=self.yAxisWidth;self.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.graphWidth).attr("height",self.graphHeight).style("fill","#F3E1EF")}};PMBarChart.prototype.drawTitle=function(){if(!this.hasTitle){return}var self=this;var titlegroup=this.titleGroup.append("g").attr("transform","translate(0,0)").attr("class","title");var titledata=[{text:this.title}];titlegroup.selectAll("text").data(titledata).enter().append("text").attr("class","title").style("font-family","arial").style("text-anchor","middle").style("font-size",self.titleFontSize+"px").style("fill",function(d,i){return self.fontcolor}).text(function(d){return d.text}).call(wrap,self.graphWidth);titlegroup.attr("transform","translate("+self.width/2+","+self.titleHeight/2+")")};PMBarChart.prototype.drawxAxisLegend=function(){if(!this.hasxAxisLegend){return}var self=this;var dx=0;var dy=0;dy+=this.graphHeight;dy+=this.xAxisHeight;dx+=this.graphWidth/2;this.xAxisLegendGroup.append("text").attr("y",dy).attr("x",dx).attr("dy","1em").style("text-anchor","middle").style("font-family","arial").style("font-size","12px").style("fill","grey").text(self.xAxisLegend)};PMBarChart.prototype.drawyAxisLegend=function(){if(!this.hasyAxisLegend){return}var self=this;var dx=0;var dy=0;dy+=self.graphHeight/2;if(self.numOfDigitsInValues<=3){dx-=self.numOfDigitsInValues*12}else{dx-=self.numOfDigitsInValues*6}if(self.yAxisWidthAdjustment>0){dx-=self.yAxisWidthAdjustment}this.yAxisLegendGroup.append("text").attr("dy","1em").style("text-anchor","middle").style("font-family","arial").style("font-size","12px").style("fill","grey").text(self.yAxisLegend).attr("transform","translate("+dx+","+dy+") rotate(-90)")};PMBarChart.prototype.formatNumber=function(value,unit,dec,round){if(!round)round=100;if(value==null||isNaN(value)||value==Infinity)return"N/A";else if(dec||dec==0)value=Number(value).toFixed(dec);else value=Math.round(value*round)/round;var neg=false;if(value<0)neg=true;value=value.toString();if(unit=="non_"||unit=="year_"){return value}var x=value.split(".");var x1=x[0];var x2=x.length>1?x[1]:"0";if(unit&&unit=="$_"&&x2.length==1)x2+="0";var rgx=/(\d+)(\d{3})/;while(rgx.test(x1))x1=x1.replace(rgx,"$1"+","+"$2");value=x1;if(dec)value+="."+x2;else if(parseInt(x2,10)!=0)value+="."+x2.substr(0,2);if(unit&&unit!=""&&unit!="number_"){var fix=unit.split("_");if(fix[0]!=""){value=fix[0]+value;if(neg==true){var arr=value.split("-");value="-"+arr[0]+arr[1]}}if(fix[1]!="")value+=fix[1]}return value};PMBarChart.prototype.isValidNumber=function(n){return!isNaN(parseFloat(n))&&!isNaN(n-0)&&n!=-9999};PMBarChart.prototype.isEven=function(n){return Math.abs(n%2)==1};PMBarChart.prototype.median=function(numbers){var median=0;numsLen=numbers.length;numbers.sort();if(numsLen%2===0){median=(numbers[numsLen/2-1]+numbers[numsLen/2])/2}else{median=numbers[(numsLen-1)/2]}return median};PMBarChart.prototype.render=function(svgId){var self=this;if(svgId.match(/^#/)){this.svgId=svgId}else{this.svgId="#"+svgId}this.svgIdNoHash=this.svgId.substr(1);this.svg=d3.select(this.svgId);if(self.yAxisWidthAdjustment>0&&self.hasyAxisLegend){this.margin.left+=self.yAxisWidthAdjustment}this.fullwidth=this.svg.attr("width");this.fullheight=this.svg.attr("height");this.width=this.fullwidth-this.margin.left-this.margin.right;this.height=this.fullheight-this.margin.top-this.margin.bottom;this.graphHeight=this.height;this.graphWidth=this.width;if(this.hasTitle){this.titleWidth=this.width;this.titleHeight=40;if(this.height*.1>this.titleHeight){this.titleHeight=this.height*.1}if(this.titleHeight>60){this.titleHeight=60}this.graphHeight-=this.titleHeight}else{this.titleWidth=0;this.titleHeight=0}if(this.hasLegend){if(this.legendPosition=="n"){this.legendWidth=this.width;this.legendHeight=30;this.graphWidth=this.width;this.graphHeight=this.height-this.titleHeight-this.legendHeight}else if(this.legendPosition=="s"){this.legendWidth=this.width;this.legendHeight=30;this.graphWidth=this.width;this.graphHeight=this.height-this.titleHeight-this.legendHeight}else if(this.legendPosition=="e"){this.legendWidth=this.width*self.legendWidthPercent;this.legendHeight=this.height-this.titleHeight;this.graphWidth=this.width-this.legendWidth;this.graphHeight=this.height-this.titleHeight}else if(this.legendPosition=="w"){this.legendWidth=this.width*self.legendWidthPercent;this.legendHeight=this.height-this.titleHeight;this.graphWidth=this.width-this.legendWidth;this.graphHeight=this.height-this.titleHeight}}this.graphWidth=this.graphWidth-this.yAxisLegendWidth-this.yAxisWidth;this.graphHeight=this.graphHeight-this.xAxisLegendHeight-this.xAxisHeight;this.setTestingGroup();if(this.testing){this.drawTestingAreas()}this.setChartGroup();this.setGridGroup();this.setBarGroup();this.setLabelGroup();this.setErrorGroup();this.setxAxisGroup();this.setyAxisGroup();this.setTitleGroup();if(this.hasyAxisLegend){this.setyAxisLegendGroup()}if(this.hasxAxisLegend){this.setxAxisLegendGroup()}if(this.hasLegend){this.setLegendGroup()}if(this.divideSections){this.setDividerGroup()}this.setBarPositionXAxisScale();this.setxAxisScale();this.setxAxis();this.stylexAxis();this.setyAxisScale();this.setyAxis();this.styleyAxis();if(this.hasLegend){this.setxScaleForLegendLabels();this.drawLegend()}if(this.hasyAxisLegend){this.drawyAxisLegend()}if(this.hasxAxisLegend){this.drawxAxisLegend()}this.drawGrid();this.styleGrid();this.drawTitle();if(this.divideSections){this.drawDividers()}if(this.yAxisFormat){self.yAxisGroup.selectAll("g.tick text").each(function(d,i){d3.select(this).text(function(d,i){var element=d3.select(this);var text=element.text();text=text.replace(/\,/g,"");var numericvalue=parseFloat(text);return self.formatNumber(numericvalue,self.yAxisFormat,self.yAxisDecimals)})})}if(self.datafound){this.drawBars();if(this.dataLabels){this.drawDataLabels()}}else{this.drawErrorMessage()}};PMBarChart.prototype.setBarGroup=function(){this.barGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","barGroup")};PMBarChart.prototype.setBarOffsetterField=function(field){this.barOffsetterField=field.trim();this.barOffsetterField.toLowerCase()};PMBarChart.prototype.setBarPositionXAxisScale=function(field){var self=this;self.barPositionXAxisScale=d3.scaleBand().domain(self.barPositions).range([0,self.graphWidth])};PMBarChart.prototype.setChartGroup=function(){var self=this;var dx=self.margin.left;var dy=self.margin.top;if(this.hasTitle){dy+=self.titleHeight}if(this.hasLegend){if(this.legendPosition=="w"){dx+=self.legendWidth}else if(this.legendPosition=="e"){}else if(this.legendPosition=="n"){dy+=self.legendHeight}else if(this.legendPosition=="s"){}}if(this.hasyAxisLegend){dx+=this.yAxisLegendWidth}if(this.hasXAxisLegend){dy+=this.xAxisLegendHeight}dx+=this.yAxisWidth;this.chartGroup=this.svg.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","chartGroup")};PMBarChart.prototype.setData=function(data){var self=this;if(!(Array.isArray(data)&&data.length)){throw"Invalid data."}self.data=data;if(self.stacked){}else{for(i in this.data){var row=this.data[i];var value=+row[self.valueField];var intVal=parseInt(value).toString();if(intVal.length>self.numOfDigitsInValues){self.numOfDigitsInValues=intVal.length}self.data[i].$value=value;self.data[i].$name=row[self.nameField];self.dataCount++;self.dataSum+=value}}if(self.stacked){for(var i=0;i<self.data.length;i++){if(i==0){for(var k=0;k<self.data[i].length;k++){var row=self.data[i][k];var value=+row.value;self.data[i][k].lowerValue=0;self.data[i][k].upperValue=value}}else{var previousSeriesKey=i-1;for(var k=0;k<self.data[i].length;k++){var row=self.data[i][k];var value=+row.value;var previousSeriesRow=self.data[previousSeriesKey][k];self.data[i][k].lowerValue=previousSeriesRow.upperValue;self.data[i][k].upperValue=previousSeriesRow.upperValue+value}}}for(var i=0;i<self.data.length;i++){for(var j=0;j<self.data[i].length;j++){var row=self.data[i][j];var value=+row[self.valueField];var intVal=parseInt(value).toString();if(intVal.length>self.numOfDigitsInValues){self.numOfDigitsInValues=intVal.length}self.data[i][j].$value=value;self.data[i][j].$name=row[self.nameField];self.combinedData.push(self.data[i][j])}}self.datafound=false;for(var i=0;i<self.data.length;i++){for(var j=0;j<self.data[i].length;j++){var row=self.data[i][j];if(self.isValidNumber(row[self.valueField])){self.datafound=true;break}}if(self.datafound){break}}if(!self.datafound){for(var i=0;i<self.data.length;i++){for(var j=0;j<self.data[i].length;j++){self.data[i][j][self.valueField]=90}}}self.barPositions=array_unique(self.combinedData.map(function(d){return d.xPos}));self.barPositions.sort(function(a,b){return a-b})}else{for(i in this.data){var row=this.data[i];var value=+row[self.valueField];var intVal=parseInt(value).toString();if(intVal.length>self.numOfDigitsInValues){self.numOfDigitsInValues=intVal.length}self.data[i].$value=value;self.data[i].$name=row[self.nameField]}for(var i=0;i<self.data.length;i++){var datum=self.data[i];var clr=datum.color||datum.barcolor;if(typeof clr==="undefined"){self.data[i].color=self.colors[i]}}self.datafound=false;for(i in this.data){var row=self.data[i];if(self.isValidNumber(row[self.valueField])){self.datafound=true;break}}if(!self.datafound){for(i in self.data){self.data[i][self.valueField]=90}}self.data_only_valid=[];self.data_only_valid_plus_nulls=[];for(i in self.data){var row=self.data[i];if(self.isValidNumber(row[self.valueField])){self.data_only_valid.push(row);self.data_only_valid_plus_nulls.push(row)}else{self.data_only_valid_plus_nulls.push(null)}}if(self.tieBreakerField){var needTieBreak=false;var tieBreakerFieldValues=self.data.map(function(d){return d[self.tieBreakerField]});var nameFieldValues=self.data.map(function(d){return d[self.nameField]});var uniqueTieBreakerFieldValues=array_unique(tieBreakerFieldValues);var uniqueNameFieldValues=array_unique(nameFieldValues);if(uniqueTieBreakerFieldValues.length!=uniqueNameFieldValues.length){needTieBreak=true}if(needTieBreak){for(i in self.data){var datum=self.data[i];var tiebreakerval=datum[self.tieBreakerField];tiebreakerval=tiebreakerval.charAt(0).toUpperCase()+tiebreakerval.substr(1);var nameval=datum[self.nameField];var regex=/\(.*\)/;if(!regex.test(nameval)&&tiebreakerval!="Place"){if(!(tiebreakerval=="Country"||tiebreakerval=="country")){self.data[i][self.nameField]=nameval+" ("+tiebreakerval+")"}}}}}self.barPositions=array_unique(self.data.map(function(d){return d.xPos}));self.barPositions.sort(function(a,b){return a-b})}if(self.numOfDigitsInValues==3){self.yAxisWidthAdjustment+=10}else if(self.numOfDigitsInValues=4){self.yAxisWidthAdjustment+=20}else if(self.numOfDigitsInValues>4){self.yAxisWidthAdjustment+=30}};PMBarChart.prototype.setDataLabelFormat=function(formatstring,decimals,round){var self=this;if(formatstring){this.dataLabelFormat=formatstring}if(decimals||decimals===0){this.dataLabelDecimals=parseInt(decimals)}if(round||round===0){this.dataLabelRound=round}};PMBarChart.prototype.setDisplayGrid=function(value){this.displayGrid=!!value};PMBarChart.prototype.setDisplayXAxisLabels=function(value){this.displayXAxisLabels=!!value};PMBarChart.prototype.showDataLabels=function(){this.dataLabels=true};PMBarChart.prototype.setErrorGroup=function(){this.errorGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","errorGroup")};PMBarChart.prototype.setDividers=function(dividerfield){this.divideSections=true;this.dividerField=dividerfield};PMBarChart.prototype.setDividerGroup=function(){var self=this;this.dividerGroup=this.chartGroup.append("g").attr("transform","translate("+0+","+0+")").attr("class","dividerGroup")};PMBarChart.prototype.setGridGroup=function(){this.gridGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","gridGroup")};PMBarChart.prototype.setLabelGroup=function(){this.labelGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","labelGroup")};PMBarChart.prototype.setLegend=function(value){this.hasLegend=Boolean(value)};PMBarChart.prototype.setLegendPosition=function(position){this.legendPosition=position.trim();this.legendPosition=this.legendPosition.toLowerCase();this.legendPosition=this.legendPosition.substr(0,1);if(!(this.legendPosition=="w"||this.legendPosition=="e"||this.legendPosition=="n"||this.legendPosition=="s")){throw"Invalid legend position"}};PMBarChart.prototype.setLegendField=function(fieldname){this.legendField=fieldname.trim()};PMBarChart.prototype.setLegendGroup=function(){if(!this.hasLegend){return}var dx=this.margin.left;var dy=this.margin.top;if(this.hasTitle){if(this.legendPosition=="n"){}else{dy+=this.titleHeight}}if(this.legendPosition=="n"){}else if(this.legendPosition=="s"){dy+=this.graphHeight;dy+=this.xAxisHeight}else if(this.legendPosition=="w"){}else if(this.legendPosition=="e"){dx+=this.graphWidth;dx+=this.yAxisWidth;if(this.hasyAxisLegend){dx+=this.yAxisLegendWidth}}this.legendGroup=this.svg.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","legendGroup")};PMBarChart.prototype.setMaxYAxisValue=function(max){this.maxYAxisValue=max};PMBarChart.prototype.setMargin=function(margin){if(Array.isArray(margin)&&margin.length==4){this.margin.top=margin[0];this.margin.right=margin[1];this.margin.bottom=margin[2];this.margin.left=margin[3]}else if(typeof margin=="object"&&margin.hasOwnProperty("top")&&margin.hasOwnProperty("bottom")&&margin.hasOwnProperty("right")&&margin.hasOwnProperty("left")){this.margin=margin}else{throw"Invalid margin."}this.width=this.fullwidth-this.margin.left-this.margin.right;this.height=this.fullheight-this.margin.top-this.margin.bottom};PMBarChart.prototype.setTitle=function(title){var newtitle=title.trim();if(newtitle.length){this.title=newtitle;this.hasTitle=true}};PMBarChart.prototype.setTitleFontSize=function(size){size=size.toString();size=size.replace(/\D+/g,"");this.titleFontSize=size};PMBarChart.prototype.setTitleGroup=function(){if(this.title==null||this.title.length==0){return}this.titleGroup=this.svg.append("g").attr("transform","translate("+this.margin.left+","+this.margin.top+")").attr("class","titleGroup")};PMBarChart.prototype.setNameField=function(fieldname){this.nameField=fieldname.trim()};PMBarChart.prototype.setValueField=function(fieldname){this.valueField=fieldname.trim()};PMBarChart.prototype.setStacked=function(value){this.stacked=Boolean(value)};PMBarChart.prototype.setxAxis=function(){var self=this;this.xAxisGroup.append("g").attr("id",self.svgIdNoHash+"xAxis").attr("transform","translate(0,"+self.graphHeight+")").call(d3.axisBottom(self.xAxisScale));if(self.stacked){var rows=self.combinedData.map(function(d){return d[self.xAxisField]})}else{var rows=self.data.map(function(d){return d[self.xAxisField]})}rows=self.array_unique(rows);var num=rows.length;var maxwidth=self.graphWidth/num;this.xAxisGroup.selectAll("g.tick text").call(wrap,maxwidth);this.xAxisGroup.selectAll("g.tick text").selectAll("tspan").filter(function(d,i){return i==0}).attr("y",function(d,i){var that=d3.select(this);var val=that.attr("y");var newval=(parseInt(val)||0)+10;return newval})};PMBarChart.prototype.setxAxisField=function(fieldname){var self=this;this.xAxisField=fieldname};PMBarChart.prototype.setxAxisLegend=function(legend){this.xAxisLegend=legend.trim();this.hasxAxisLegend=true;this.xAxisLegendHeight=20};PMBarChart.prototype.setxAxisLegendGroup=function(){var self=this;this.xAxisLegendGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","xAxisLegendGroup")};PMBarChart.prototype.setxAxisGroup=function(){this.xAxisGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","xAxisGroup")};PMBarChart.prototype.setxAxisScale=function(){var self=this;this.xAxisScale=d3.scaleBand().rangeRound([0,self.graphWidth]);if(self.stacked){this.xAxisScale.domain(self.combinedData.map(function(d){return d[self.xAxisField]}))}else{this.xAxisScale.domain(self.data.map(function(d){return d[self.xAxisField]}))}};PMBarChart.prototype.setxScaleForLegendLabels=function(){var self=this;if(self.stacked){self.xScaleForLegendLabels=d3.scaleBand().domain(self.combinedData.map(function(d){return d.color||d.barcolor})).range([0,self.width])}else{self.xScaleForLegendLabels=d3.scaleBand().domain(self.data.map(function(d){return d.color||d.barcolor})).range([0,self.width])}};PMBarChart.prototype.setyAxis=function(){var self=this;if(self.stacked){this.yAxisGroup.append("g").attr("id",self.svgIdNoHash+"yAxis").attr("transform","translate(0, 0 )").call(d3.axisLeft(self.yAxisScale))}else{this.yAxisGroup.append("g").attr("id",self.svgIdNoHash+"yAxis").attr("transform","translate(0, 0 )").call(d3.axisLeft(self.yAxisScale))}};PMBarChart.prototype.setyAxisFormat=function(formatstring,decimals){var self=this;if(formatstring){this.yAxisFormat=formatstring}if(decimals||decimals===0){this.yAxisDecimals=parseInt(decimals)}};PMBarChart.prototype.setyAxisGroup=function(){this.yAxisGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","yAxisGroup")};PMBarChart.prototype.setyAxisLegendGroup=function(){var self=this;var offset=self.yAxisWidth*-1;this.yAxisLegendGroup=this.chartGroup.append("g").attr("transform","translate("+offset+",0)").attr("class","yAxisLegendGroup")};PMBarChart.prototype.setyAxisScale=function(){var self=this;if(self.stacked){this.yAxisScale=d3.scaleLinear().rangeRound([self.graphHeight,0]);var max=d3.max(self.combinedData,function(d){return d.upperValue})*1.2;if(typeof this.maxYAxisValue!="undefined"&&this.maxYAxisValue!=null){if(max>this.maxYAxisValue){max=this.maxYAxisValue}}this.yAxisScale.domain([0,max]);this.yAxisScale.nice();this.yAxisScaleReversed=d3.scaleLinear().rangeRound([0,self.graphHeight]);this.yAxisScaleReversed.domain([0,max]);this.yAxisScaleReversed.nice()}else{this.yAxisScale=d3.scaleLinear().rangeRound([self.graphHeight,0]);var max=d3.max(self.data,function(d){return d[self.valueField]})*1.2;if(typeof this.maxYAxisValue!="undefined"&&this.maxYAxisValue!=null){if(max>this.maxYAxisValue){max=this.maxYAxisValue}}this.yAxisScale.domain([0,max]);this.yAxisScale.nice();this.yAxisScaleReversed=d3.scaleLinear().rangeRound([0,self.graphHeight]);this.yAxisScaleReversed.domain([0,max]);this.yAxisScaleReversed.nice()}};PMBarChart.prototype.setyAxisLegend=function(legend){this.yAxisLegend=legend.trim();this.hasyAxisLegend=true;this.yAxisLegendWidth=20};PMBarChart.prototype.setTestingGroup=function(){var self=this;this.testingGroup=this.svg.append("g").attr("transform","translate("+0+","+0+")").attr("class","testingGroup")};PMBarChart.prototype.styleGrid=function(){var self=this;d3.select(self.svgId).select("g.chartGroup").select("g.gridGroup").select("g.grid").selectAll("line").attr("stroke-width","1").attr("stroke","lightgrey").attr("stroke-opacity",.7);d3.select(self.svgId).select("g.chartGroup").select("g.gridGroup").select("g.grid").selectAll("path").attr("stroke-width","1").attr("stroke","lightgrey").attr("stroke-opacity",.7)};PMBarChart.prototype.stylexAxis=function(){var self=this;if(self.displayXAxisLabels){d3.select(self.svgId+"xAxis").selectAll("line").style("stroke","lightgrey");d3.select(self.svgId+"xAxis").selectAll("text").style("fill","#797979");d3.select(self.svgId+"xAxis").selectAll("path").style("stroke","lightgrey")}else{d3.select(self.svgId+"xAxis").selectAll("line").style("opacity",0);d3.select(self.svgId+"xAxis").selectAll("text").style("opacity",0);d3.select(self.svgId+"xAxis").selectAll("path").style("stroke","lightgrey")}};PMBarChart.prototype.styleyAxis=function(){var self=this;d3.select(self.svgId+"yAxis").selectAll("line").attr("stroke","none");d3.select(self.svgId+"yAxis").selectAll("text").style("fill","#797979");d3.select(self.svgId+"yAxis").selectAll("path").style("stroke","lightgrey")};PMultiBarChart=function(chartdata,svgId,options){var svgId=svgId;var svgIdNoHash=svgId;if(svgId.match(/^#/)){svgIdNoHash=svgId.substr(1)}else{svgId="#"+svgId}svg=d3.select(svgId);var places=array_unique(chartdata.map(function(d){return d.place}));var colors=array_unique(chartdata.map(function(d){return d.color}));var types=array_unique(chartdata.map(function(d){return d.type}));var yLabel=options.yLabel;for(var i in types){var t=types[i];if(t=="spacer"){places.splice(i,1);colors.splice(i,1);types.splice(i,1)}}var mainWidth=svg.style("width").replace(/px/,"");var mainHeight=svg.style("height").replace(/px/,"");var margin={top:60,right:30,bottom:80,left:60};var height=mainHeight-margin.top-margin.bottom;var width=mainWidth-margin.left-margin.right;var barWidthPercentage=.7;var baroffset=(1-barWidthPercentage)/2;var chartGroup=svg.append("g").attr("transform","translate("+margin.left+","+margin.top+")").attr("class","chartGroup");var xAxisScale=d3.scaleBand().rangeRound([0,width]);xAxisScale.domain(chartdata.map(function(d){return d.xpos}));var yAxisScale=d3.scaleLinear().rangeRound([height,0]);yAxisScale.domain([0,d3.max(chartdata,function(d){return d.value})*1.2]);yAxisScale.nice();var yAxisScaleInverse=d3.scaleLinear().rangeRound([0,height]);yAxisScaleInverse.domain([0,d3.max(chartdata,function(d){return d.value})*1.2]);yAxisScaleInverse.nice();drawXaxisForTypes(types);drawYaxis();drawGrid();drawBars();drawBarLabels();var labels=options.labels;var colors=options.colors;var legendarr=[];for(var i in labels){var obj={place:labels[i],color:colors[i]};legendarr.push(obj)}drawLegend(legendarr);var title=options.title;drawTitle(title);function drawTitle(title){var titleGroup=chartGroup.append("g").attr("transform","translate(0,0)").attr("class","titleGroup");var titledata=[{text:"Housing Cost Burdens, "+P.constants.latestACSPeriod}];var titledata=[{text:title}];titleGroup.selectAll("text").data(titledata).enter().append("text").attr("class","title").style("font-family","arial").style("text-anchor","middle").style("font-size","18px").style("fill",function(d,i){return"#838080"}).text(function(d){return d.text}).attr("transform","translate("+width/2+","+margin.top/-2+")")}function drawGrid(){var gridGroup=chartGroup.append("g").attr("transform","translate(0,0)").attr("class","gripGroup");var negwidth=width*-1;var gridG=gridGroup.append("g").attr("class","grid").call(make_y_gridlines().tickSize(negwidth).tickFormat("")).attr("transform","translate("+0+", "+0+")");function make_y_gridlines(){return d3.axisLeft(yAxisScale)}gridG.selectAll("line").attr("stroke-width","1").attr("stroke","lightgrey").attr("stroke-opacity",.5);gridG.selectAll("path").attr("stroke-width","1").attr("stroke","lightgrey").attr("stroke-opacity",.5)}function drawLegend(legendarr){for(var i=0;i<chartdata.length;i++){var row=chartdata[i]}var xAxisScaleForLegend=d3.scaleBand().rangeRound([0,width*.8]);xAxisScaleForLegend.domain(legendarr.map(function(d){return d.place}));var legendGroup=chartGroup.append("g").attr("transform","translate(0,0)").attr("class","legendGroup");var legendSquares=legendGroup.append("g").attr("transform","translate(0,0)");legendSquares.selectAll("rect").data(legendarr).enter().append("rect").styles({fill:function(d,i){return d.color||d.barcolor},stroke:"#F6EFEF","stroke-width":"1"}).attr("x",function(d,i){return xAxisScaleForLegend(d.place)}).attr("y",0).attr("width",16).attr("height",16);var legendTexts=legendGroup.append("g").attr("transform","translate(0,0)");legendTexts.selectAll("text").data(legendarr).enter().append("text").styles({fill:"#757575"}).attr("x",function(d,i){return xAxisScaleForLegend(d.place)+20}).attr("y",12).attr("width",function(d,i){return xAxisScaleForLegend.bandwidth()}).attr("height",20).text(function(d,i){return d.place}).style("font-size",11).style("font-family","arial");var element=d3.select("g.legendGroup").node();var legendWidth=element.getBoundingClientRect().width;var difference=width-legendWidth;if(difference>0){var halfDiff=difference/2;legendGroup.attr("transform","translate(0,"+(height+margin.bottom/2)+")")}}function drawXaxisForTypes(types){var xAxisScaleForTypes=d3.scaleBand().rangeRound([0,width]);xAxisScaleForTypes.domain(types);var xAxisGroup=chartGroup.append("g").attr("transform","translate(0,0)").attr("class","xAxisGroup");var xaxis=xAxisGroup.append("g").attr("id",svgIdNoHash+"xAxis").attr("transform","translate(0,"+height+")").call(d3.axisBottom(xAxisScaleForTypes));xaxis.selectAll("line").style("stroke","lightgrey");xaxis.selectAll("text").style("fill","#797979");xaxis.selectAll("path").style("stroke","lightgrey");var maxwidth=(975-100)/5;xaxis.selectAll("g.tick text").call(wrap,maxwidth);xaxis.selectAll("g.tick text").each(function(){var that=d3.select(this);var textX=that.attr("x");var textY=that.attr("y");that.selectAll("tspan").each(function(d,i){var atspan=d3.select(this);var iplus=i+1;atspan.attr("x",textX).attr("y",textY).attr("dy",function(){return iplus+"em"})})})}function drawBarLabels(){var barLabelsGroup=chartGroup.append("g").attr("transform","translate(0,0)").attr("class","barLabelsGroup");var barLabelsG=barLabelsGroup.append("g").attr("transform","translate("+0+","+0+")").attr("class","bars");barLabelsG.selectAll("rect").data(chartdata).enter().append("text").attr("x",function(d,i){var ret=0;ret+=xAxisScale(d.xpos);ret+=xAxisScale.bandwidth()/2;return ret}).attr("y",function(d,i){return yAxisScale(d.value)-5}).attr("text-anchor","middle").text(function(d,i){if(d.type=="spacer"){return""}var pformat=d3.format(",.1%");return pformat(d.value/100)}).style("font-size",function(){return"10px"}).style("font-family","Arial").style("fill",function(d){return"#797979"})}function drawBars(){var barGroup=chartGroup.append("g").attr("transform","translate(0,0)").attr("class","barGroup");var barsG=barGroup.append("g").attr("transform","translate("+0+","+0+")").attr("class","bars");barsG.selectAll("rect").data(chartdata).enter().append("rect").styles({fill:function(d,i){return d.color||d.barcolor}}).attr("width",function(d,i){return width/chartdata.length*barWidthPercentage}).attr("height",function(d,i){return yAxisScaleInverse(d.value)}).attr("x",function(d,i){var ret=0;ret+=xAxisScale(d.xpos);var numbars=chartdata.length;var numbBarSides=2*numbars;ret+=width*(1-barWidthPercentage)/numbBarSides;return ret}).attr("y",function(d,i){return yAxisScale(d.value)})}function drawYaxis(){
var yAxisGroup=chartGroup.append("g").attr("transform","translate(0,0)").attr("class","yaxisGroup");var yaxis=yAxisGroup.append("g").attr("id",svgIdNoHash+"yaxis").call(d3.axisLeft(yAxisScale));yaxis.selectAll("line").style("stroke","lightgrey");yaxis.selectAll("text").style("fill","#797979");yaxis.selectAll("path").style("stroke","lightgrey");yaxis.selectAll("g.tick text").each(function(d,i){d3.select(this).text(function(d,i){var element=d3.select(this);return element.text()+"%"})});if(yLabel){var dx=0;var dy=0;dy+=height/2;dx-=margin.left/2;dx-=margin.left/4;dx-=10;yAxisGroup.append("text").attr("dy","1em").style("text-anchor","middle").style("font-family","arial").style("font-size","12px").style("fill","grey").text(yLabel).attr("transform","translate("+dx+","+dy+") rotate(-90)")}}function drawXaxis(){var xAxisGroup=chartGroup.append("g").attr("transform","translate(0,0)").attr("class","xAxisGroup");var xaxis=xAxisGroup.append("g").attr("id",svgIdNoHash+"xAxis").attr("transform","translate(0,"+height+")").call(d3.axisBottom(xAxisScale));xaxis.selectAll("line").style("stroke","lightgrey");xaxis.selectAll("text").style("fill","#797979");xaxis.selectAll("path").style("stroke","lightgrey")}};PMLineChart=function(data){if(Array.isArray(data)&&data.length){this.setData(data)}else{this.data=[]}this.arrowGroup=null;this.chartGroup=null;this.chartPaddingPercent=.05;this.colors=["#67B7DC","#FDD400","#84B761","#CC4748","#CD82AD","#2F4074","#B7B83F","#B9783F","#FF0F00","#FF6600","#FF9E01","#FCD202","#F8FF01","#B0DE09","#04D215","#0D8ECF","#0D52D1","#2A0CD0","#8A0CCF","#CD0D74","#754DEB","#DDDDDD","#999999","#333333","#000000","#57032A","#CA9726","#990000","#4B0C25"];this.data_only_valid=[];this.data_only_valid_plus_nulls=[];this.dataCount=0;this.datafound=false;this.dataLabelFormat=null;this.dataLabelDecimals=null;this.dataLabelRound=null;this.dataLabelType="normal";this.dataSum=0;this.displayGrid=true;this.displayCircles=true;this.drawLinks=false;this.errorGroup=null;this.fontcolor="grey";this.gridColor="lightgrey";this.gridGroup=null;this.hasTitle=false;this.hasyAxisLegend=false;this.hasLegend=false;this.nameField="name";this.labelGroup=null;this.legendGroup=null;this.legendSymbol="square";this.legendAlignment=null;this.legendPosition="e";this.legendType="singlelabels";this.linecolor="lightgrey";this.margin={top:10,right:10,bottom:10,left:10};this.mainGroup=null;this.numberOfDecimals=0;this.numOfDigitsInValues=1;this.nodeGroup=null;this.svg=null;this.svgid=null;this.tieBreakerField=null;this.type="";this.testing=0;this.title=null;this.titleFontSize="18";this.titleGroup=null;this.valueField="value";this.series=[];this.seriesNames=[];this.xAxisGroup=null;this.xAxisScale=null;this.xAxis=null;this.xAxisField=null;this.xScaleForLegendLabels=null;this.xAxisLegend=null;this.xAxisLegendWidth=0;this.xAxisLegendHeight=0;this.yAxisFormat=null;this.yAxisDecimals=null;this.yAxisGroup=null;this.yAxisScale=null;this.yAxisScalePaddingFactorTop=1.03;this.yAxisScalePaddingFactorBottom=1.03;this.yAxisLegend=null;this.yAxisLegendGroup=null;this.yAxisLegendWidth=0;this.yAxisLegendHeight=0;this.yAxisDisplay=true;this.yAxis=null;this.yAxisStartAtZero=false;this.fullwidth=0;this.fullheight=0;this.width=0;this.height=0;this.titleWidth=0;this.titleHeight=0;this.legendWidth=0;this.legendHeight=0;this.xAxisHeight=20;this.yAxisWidth=40;this.legendWidthPercent=.25;this.graphWidth=0;this.graphHeight=0;this.legendPaddingX=0;this.legendPaddingY=0;this.yAxisLegend=null};PMLineChart.prototype.array_unique=function(arr){var u={},a=[];for(var i=0,l=arr.length;i<l;++i){if(u.hasOwnProperty(arr[i])){continue}a.push(arr[i]);u[arr[i]]=1}return a};PMLineChart.prototype.debug=function(){console.log("this.fulwidth: "+this.fullwidth);console.log("this.fullheight: "+this.fullheight);console.log("this.width: "+this.width);console.log("this.height: "+this.height);console.log("this.margin.top: "+this.margin.top);console.log("this.margin.right: "+this.margin.right);console.log("this.margin.bottom: "+this.margin.bottom);console.log("this.margin.left: "+this.margin.left);console.log("this.titleWidth: "+this.titleWidth);console.log("this.titleHeight: "+this.titleHeight);console.log("this.legendWidth: "+this.legendWidth);console.log("this.legendHeight: "+this.legendHeight);console.log("this.legendPaddingX: "+this.legendPaddingX);console.log("this.legendPaddingY: "+this.legendPaddingY);console.log("this.graphWidth: "+this.graphWidth);console.log("this.graphHeight: "+this.graphHeight);console.log("this.yAxisFormat: "+this.yAxisFormat);console.log("this.yAxisDecimals: "+this.yAxisDecimals);console.log("this.dataLabelFormat: "+this.dataLabelFormat);console.log("this.dataLabelDecimals: "+this.dataLabelDecimals);console.log("this.numOfDigitsInValues: "+this.numOfDigitsInValues);console.log("this.series:");console.log(this.series);console.log("---------------------------------------------------")};PMLineChart.prototype.drawTestingAreas=function(){var self=this;this.testingGroup.append("rect").attr("x",self.margin.left).attr("y",self.margin.top).attr("width",self.width).attr("height",self.height).style("fill","#FCE94F");if(this.hasTitle){this.testingGroup.append("rect").attr("x",self.margin.left).attr("y",self.margin.top).attr("width",self.width).attr("height",self.titleHeight).style("fill","#F4F7C3")}if(this.hasLegend){var dx=self.margin.left;var dy=self.margin.top;if(this.hasTitle){dy+=self.titleHeight}if(this.legendPosition=="w"){}else if(this.legendPosition=="e"){dx+=self.graphWidth}else if(this.legendPosition=="n"){}else if(this.legendPosition=="s"){dy+=self.graphHeight;dy+=self.xAxisHeight}if(this.legendPosition=="w"){}else if(this.legendPosition=="e"){dx+=self.yAxisLegendWidth}if(this.legendPosition=="w"){}else if(this.legendPosition=="e"){dx+=self.yAxisWidth}this.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.legendWidth).attr("height",self.legendHeight).style("fill","#E3F7C3")}if(this.hasyAxisLegend){var dx=self.margin.left;var dy=self.margin.top;if(this.hasTitle){dy+=self.titleHeight}if(this.hasLegend){if(this.legendPosition=="w"){dx+=self.legendWidth}else if(this.legendPosition=="e"){}else if(this.legendPosition=="n"){dy+=this.legendHeight}else if(this.legendPosition=="s"){}}this.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.yAxisLegendWidth).attr("height",self.graphHeight).style("fill","lightgreen")}if(this.hasxAxisLegend){var dx=self.margin.left;var dy=self.margin.top;if(this.hasTitle){dy+=self.titleHeight}if(this.hasLegend){if(this.legendPosition=="w"){dx+=self.legendWidth}else if(this.legendPosition=="e"){}else if(this.legendPosition=="n"){dy+=this.legendHeight}else if(this.legendPosition=="s"){}}if(this.hasyAxisLegend){dx+=this.yAxisLegendWidth}dy+=this.graphHeight;dy+=this.xAxisHeight;dx+=this.yAxisWidth;this.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.graphWidth).attr("height",self.xAxisLegendHeight).style("fill","#DFFFFC")}var dx=self.margin.left;var dy=self.margin.top;if(this.hasTitle){dy+=self.titleHeight}if(this.hasLegend){if(this.legendPosition=="w"){dx+=self.legendWidth}else if(this.legendPosition=="e"){}else if(this.legendPosition=="n"){dy+=self.legendHeight}else if(this.legendPosition=="s"){}}if(this.hasyAxisLegend){dx+=self.yAxisLegendWidth}this.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.yAxisWidth).attr("height",self.graphHeight).style("fill","#DFDFDF");var dx=self.margin.left;var dy=self.margin.top;if(this.hasTitle){dy+=self.titleHeight}if(this.hasLegend){if(this.legendPosition=="w"){dx+=self.legendWidth}else if(this.legendPosition=="e"){}else if(this.legendPosition=="n"){dy+=self.legendHeight}else if(this.legendPosition=="s"){}}if(this.hasyAxisLegend){dx+=self.yAxisLegendWidth}dy+=self.graphHeight;dx+=self.yAxisWidth;this.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.graphWidth).attr("height",self.xAxisHeight).style("fill","#DFDFDF");var dx=self.margin.left;var dy=self.margin.top;if(this.hasTitle){dy+=this.titleHeight}if(this.hasLegend){if(this.legendPosition=="w"){dx+=this.legendWidth}else if(this.legendPosition=="e"){}else if(this.legendPosition=="n"){dy+=this.legendHeight}else if(this.legendPosition=="s"){}}if(this.hasyAxisLegend){dx+=this.yAxisLegendWidth}dx+=this.yAxisWidth;this.testingGroup.append("rect").attr("x",dx).attr("y",dy).attr("width",self.graphWidth).attr("height",self.graphHeight).style("fill","#F3E1EF")};PMLineChart.prototype.drawCircles=function(){var self=this;if(!self.displayCircles){return}for(k in self.seriesNames){var currentuniquename=self.seriesNames[k];var data=[];for(i in self.data_only_valid){var row=self.data_only_valid[i];if(row[self.nameField]==currentuniquename){data.push(row)}}var circlecolor="";for(i in data){var datarow=data[i];if(datarow==null)continue;if(row.color){circlecolor=datarow.color;break}}var circleGroup=self.circleGroup.append("g").attr("transform","translate("+(0+self.xAxisScale.bandwidth()/2)+", "+0+")");circleGroup.selectAll("circle").data(data).enter().append("circle").attr("class","circle").attr("cx",function(d){return self.xAxisScale(d[self.xAxisField])}).attr("cy",function(d){return self.yAxisScale(+d[self.valueField])}).attr("id",function(d){if(d.hasOwnProperty("elementId")){return d.elementId||""}else{return""}}).attr("r",4).attr("fill",circlecolor)}};PMLineChart.prototype.drawErrorMessage=function(){var self=this;var messageWidth=120;var messageHeight=40;var widthToSplit=self.width-messageWidth;var heightToSplit=self.height-messageHeight;var errorMsgGroup=this.errorGroup.append("g").attr("transform","translate("+(widthToSplit/2+messageWidth/2)+","+(heightToSplit/2-messageHeight/2)+")").attr("id","errormsg");errorMsgGroup.append("text").attr("text-anchor","middle").style("font-family","arial").style("font-size","16px").attr("fill","red").text("Invalid or insufficient data.").call(wrap,messageWidth)};PMLineChart.prototype.drawGrid=function(){var self=this;if(!self.displayGrid)return;var negwidth=self.graphWidth*-1;var gridG=this.gridGroup.append("g").attr("class","grid").call(make_y_gridlines().tickSize(negwidth).tickFormat("")).attr("transform","translate("+0+", "+0+")");function make_y_gridlines(){return d3.axisLeft(self.yAxisScale).ticks(self.yAxisNumOfTicks)}};PMLineChart.prototype.drawLines=function(){var self=this;for(k in self.seriesNames){var currentuniquename=self.seriesNames[k];var data=[];for(i in self.data){var row=self.data[i];var validrow=self.data_only_valid_plus_nulls[i];if(row[self.nameField]==currentuniquename){data.push(validrow)}}var linecolor="";for(i in data){var datarow=data[i];if(datarow==null)continue;if(row.color){linecolor=datarow.color;break}}var lineGroup=self.lineGroup.append("g").attr("transform","translate("+(0+self.xAxisScale.bandwidth()/2)+", "+0+")");var line=d3.line().defined(function(d){return d}).x(function(d){return self.xAxisScale(d[self.xAxisField])}).y(function(d){return self.yAxisScale(+d[self.valueField])});lineGroup.append("path").datum(data).attr("class","line").attr("d",line).attr("fill","none").attr("stroke",linecolor).attr("stroke-width","3px")}};PMLineChart.prototype.drawLegend=function(){var self=this;var legendSquares=self.legendGroup.append("g").attr("transform","translate("+0+","+0+")");if(self.legendPosition=="w"||self.legendPosition=="e"){self.drawLegendEastAndWest()}else if(self.legendPosition=="n"||self.legendPosition=="s"){self.drawLegendNorthAndSouth()}};PMLineChart.prototype.drawLegendNorthAndSouth=function(){var self=this;if(self.legendSymbol=="square"){self.drawLegendNorthAndSouthWithSquares()}else if(self.legendSymbol=="circle"){self.drawLegendNorthAndSouthWithCircles()}};PMLineChart.prototype.drawLegendNorthAndSouthWithCircles=function(){var self=this;var colorsAll=self.data.map(function(d,i){return d.color});var colors=[];for(i in colorsAll){var acolor=colorsAll[i];var ndx=colors.indexOf(acolor);if(ndx==-1){colors.push(acolor)}}var legendcontent=self.legendGroup.append("g").attr("class","legendcontent").attr("transform","translate("+(self.margin.left+self.yAxisWidth)+","+0+")");var legendCircles=legendcontent.append("g").attr("transform","translate("+0+","+0+")");radius=6;legendCircles.selectAll("circle").data(colors).enter().append("circle").attr("class","circle").attr("cx",function(d,i){var color=colors[i];return self.xScaleForLegendLabels(color)}).attr("cy",10).attr("r",radius).attr("fill",function(d,i){var color=colors[i];return color});var legendTexts=legendcontent.append("g").attr("transform","translate("+0+","+0+")");var numcircles=colors.length;var circlespace=numcircles*2*radius;var textspace=self.graphWidth-circlespace;var textwidth=textspace/numcircles-10;legendTexts.selectAll("text").data(self.seriesNames).enter().append("text").style("fill","#757575").attr("x",function(d,i){var color=colors[i];var ret=self.xScaleForLegendLabels(color);ret+=16;return ret}).attr("y",15).attr("width",function(d,i){return self.xScaleForLegendLabels.bandwidth()}).text(function(d,i){return self.seriesNames[i]}).call(wrap,textwidth).style("font-size","12px");legendTexts.selectAll("text").each(function(){var that=d3.select(this);var textX=that.attr("x");var textY=that.attr("y");that.selectAll("tspan").each(function(d,i){var atspan=d3.select(this);atspan.attr("x",textX).attr("y",textY).attr("dy",function(){return i+"em"})})});legendTexts.selectAll("tspan").style("fill","#757575");if(this.legendAlignment=="center"){var element=self.legendGroup.select("g.legendcontent").node();var elementWidth=element.getBoundingClientRect().width;var difference=self.legendWidth-elementWidth;if(difference>0){var halfDiff=difference/2;self.legendGroup.select("g.legendcontent").attr("transform","translate("+halfDiff+","+0+")")}}};PMLineChart.prototype.drawLegendNorthAndSouthWithSquares=function(){var self=this;var colorsAll=self.data.map(function(d,i){return d.color});var colors=[];for(i in colorsAll){var acolor=colorsAll[i];var ndx=colors.indexOf(acolor);if(ndx==-1){colors.push(acolor)}}var legendcontent=self.legendGroup.append("g").attr("class","legendcontent").attr("transform","translate("+self.margin.left+","+0+")");var legendSquares=legendcontent.append("g").attr("transform","translate("+0+","+0+")");var squarewidth=12;var squareheight=12;legendSquares.selectAll("rect").data(colors).enter().append("rect").attr("class","rect").attr("x",function(d,i){var color=colors[i];return self.xScaleForLegendLabels(color)}).attr("y",10).attr("width",squarewidth).attr("height",squareheight).attr("fill",function(d,i){var color=colors[i];return color});var legendTexts=legendcontent.append("g").attr("transform","translate("+0+","+0+")");var numsquares=colors.length;var squarespace=numsquares*squarewidth;var textspace=self.graphWidth-squarespace;var textwidth=textspace/numsquares-10;legendTexts.selectAll("text").data(self.seriesNames).enter().append("text").style("fill","#757575").attr("x",function(d,i){var color=colors[i];var ret=self.xScaleForLegendLabels(color);ret+=16;return ret}).attr("y",20).attr("width",function(d,i){return self.xScaleForLegendLabels.bandwidth()}).attr("height",20).text(function(d,i){return self.seriesNames[i]}).call(wrap,textwidth).style("font-size","12px");self.legendGroup.selectAll("text").each(function(){var that=d3.select(this);var textX=that.attr("x");var textY=that.attr("y");that.selectAll("tspan").each(function(d,i){var atspan=d3.select(this);atspan.attr("x",textX).attr("y",textY).attr("dy",function(){return i+"em"})})});if(this.legendAlignment=="center"){var element=self.legendGroup.select("g.legendcontent").node();var elementWidth=element.getBoundingClientRect().width;var difference=self.legendWidth-elementWidth;if(difference>0){var halfDiff=difference/2;self.legendGroup.select("g.legendcontent").attr("transform","translate("+halfDiff+","+0+")")}}};PMLineChart.prototype.drawLegendEastAndWest=function(){var self=this;var ordinal=d3.scaleOrdinal().domain(self.data.map(function(d){return d[self.nameField]})).range(self.data.map(function(d){return d.color}));var l=self.legendGroup.append("g").attr("class","legendOrdinal").attr("transform","translate(0 ,0)");var shapepadding=10;var shapewidth=30;var labelwrap=self.legendWidth-shapepadding-shapewidth;if(this.legendSymbol=="square"){var legendOrdinal=d3.legendColor().shape("path",d3.symbol().type(d3.symbolSquare).size(150)()).shapePadding(shapepadding).shapeWidth(shapewidth).cellFilter(function(d){return d[self.nameField]!=="e"}).labelWrap(labelwrap).scale(ordinal)}else if(this.legendSymbol=="circle"){var legendOrdinal=d3.legendColor().shape("path",d3.symbol().type(d3.symbolCircle).size(150)()).shapePadding(shapepadding).shapeWidth(shapewidth).cellFilter(function(d){return d[self.nameField]!=="e"}).labelWrap(labelwrap).scale(ordinal)}else{throw"Invalid legend symbol"}self.legendGroup.select(".legendOrdinal").call(legendOrdinal);self.legendGroup.select(".legendOrdinal").selectAll("text").style("font-size",12).style("font-family","arial").style("fill","gray");var element=d3.select("g.legendOrdinal").node();var actualLegendWidth=element.getBoundingClientRect().width;var actualLegendHeight=element.getBoundingClientRect().height;var differenceX=self.legendWidth-actualLegendWidth;var differenceY=self.legendHeight-actualLegendHeight;var dx=0;var dy=0;if(differenceX>0){dx+=differenceX/2}if(differenceY>0){dy+=differenceY/2}self.legendGroup.select(".legendOrdinal").attr("transform","translate("+dx+","+dy+")")};PMLineChart.prototype.drawTitle=function(){if(!this.hasTitle){return}var self=this;var titlegroup=this.titleGroup.append("g").attr("transform","translate(0,0)").attr("class","title");var titledata=[{text:this.title}];titlegroup.selectAll("text").data(titledata).enter().append("text").attr("class","titleContent").style("font-family","arial").style("text-anchor","middle").style("font-size",self.titleFontSize+"px").style("fill",function(d,i){return self.fontcolor}).text(function(d){return d.text}).call(wrap,self.graphWidth);titlegroup.attr("transform","translate("+self.width/2+","+self.titleHeight/2+")")};PMLineChart.prototype.drawyAxisLegend=function(){if(!this.hasyAxisLegend){return}var self=this;var dx=0;var dy=0;dy+=self.graphHeight/2;if(self.numOfDigitsInValues<=3){dx-=self.numOfDigitsInValues*12}else{dx-=self.numOfDigitsInValues*6}this.yAxisLegendGroup.append("text").attr("dy","1em").style("text-anchor","middle").style("font-family","arial").style("font-size","12px").style("fill","grey").text(self.yAxisLegend).attr("transform","translate("+dx+","+dy+") rotate(-90)")};PMLineChart.prototype.formatNumber=function(value,unit,dec,round){if(!round)round=100;if(value==null||isNaN(value)||value==Infinity)return"N/A";else if(dec||dec==0)value=Number(value).toFixed(dec);else value=Math.round(value*round)/round;var neg=false;if(value<0)neg=true;value=value.toString();if(unit=="non_"||unit=="year_"){return value}var x=value.split(".");var x1=x[0];var x2=x.length>1?x[1]:"0";if(unit&&unit=="$_"&&x2.length==1)x2+="0";var rgx=/(\d+)(\d{3})/;while(rgx.test(x1))x1=x1.replace(rgx,"$1"+","+"$2");value=x1;if(dec)value+="."+x2;else if(parseInt(x2,10)!=0)value+="."+x2.substr(0,2);if(unit&&unit!=""&&unit!="number_"){var fix=unit.split("_");if(fix[0]!=""){value=fix[0]+value;if(neg==true){var arr=value.split("-");value="-"+arr[0]+arr[1]}}if(fix[1]!="")value+=fix[1]}return value};PMLineChart.prototype.drawxAxisLegend=function(){if(!this.hasxAxisLegend){return}var self=this;var dx=0;var dy=0;dy+=this.graphHeight;dy+=this.xAxisHeight;dx+=this.graphWidth/2;this.xAxisLegendGroup.append("text").attr("y",dy).attr("x",dx).attr("dy","1em").style("text-anchor","middle").style("font-family","arial").style("font-size","12px").style("fill","grey").text(self.xAxisLegend)};PMLineChart.prototype.createSeries=function(){var self=this;var names=[];for(var i=0;i<self.data.length;i++){var row=self.data[i];names.push(row[self.nameField])}self.seriesNames=self.array_unique(names);for(j in self.seriesNames){var seriesname=self.seriesNames[j];var s=[];for(var i=0;i<self.data.length;i++){var row=self.data[i];if(seriesname==row[self.nameField]){s.push(row)}}self.series.push(s)}};PMLineChart.prototype.centerLegend=function(value){if(value==true){this.legendAlignment="center"}else{this.legendAlignment=null}};PMLineChart.prototype.isValidNumber=function(n){return!isNaN(parseFloat(n))&&!isNaN(n-0)&&n!=-9999};PMLineChart.prototype.render=function(svgId){var self=this;if(svgId.match(/^#/)){this.svgId=svgId}else{this.svgId="#"+svgId}this.svgIdNoHash=this.svgId.substr(1);this.svg=d3.select(this.svgId);this.fullwidth=this.svg.attr("width");this.fullheight=this.svg.attr("height");this.width=this.fullwidth-this.margin.left-this.margin.right;this.height=this.fullheight-this.margin.top-this.margin.bottom;this.graphHeight=this.height;this.graphWidth=this.width;if(this.hasTitle){this.titleWidth=this.width;this.titleHeight=40;if(this.height*.1>this.titleHeight){this.titleHeight=this.height*.1}if(this.titleHeight>50){this.titleHeight=50}this.graphHeight-=this.titleHeight}else{this.titleWidth=0;this.titleHeight=0}if(this.hasLegend){if(this.legendPosition=="n"){this.legendWidth=this.width;this.legendHeight=30;this.graphWidth=this.width;this.graphHeight=this.height-this.titleHeight-this.legendHeight}else if(this.legendPosition=="s"){this.legendWidth=this.width;this.legendHeight=30;this.graphWidth=this.width;this.graphHeight=this.height-this.titleHeight-this.legendHeight}else if(this.legendPosition=="e"){this.legendWidth=this.width*self.legendWidthPercent;this.legendHeight=this.height-this.titleHeight;this.graphWidth=this.width-this.legendWidth;this.graphHeight=this.height-this.titleHeight}else if(this.legendPosition=="w"){this.legendWidth=this.width*self.legendWidthPercent;this.legendHeight=this.height-this.titleHeight;this.graphWidth=this.width-this.legendWidth;this.graphHeight=this.height-this.titleHeight}}this.graphWidth=this.graphWidth-this.yAxisLegendWidth-this.yAxisWidth;this.graphHeight=this.graphHeight-this.xAxisLegendHeight-this.xAxisHeight;if(this.testing){this.setTestingGroup();this.drawTestingAreas()}this.setMainGroup();this.setTitleGroup();this.setChartGroup();this.setGridGroup();this.setLineGroup();this.setCircleGroup();this.setLabelGroup();this.setErrorGroup();this.setxAxisGroup();this.setyAxisGroup();if(this.hasyAxisLegend){this.setyAxisLegendGroup()}if(this.hasxAxisLegend){this.setxAxisLegendGroup()}if(this.hasLegend){this.setLegendGroup()}this.setxAxisScale();this.setxAxis();this.stylexAxis();this.setyAxisScale();this.setyAxis();this.styleyAxis();if(this.hasLegend){this.setxScaleForLegendLabels();this.drawLegend()}if(this.hasyAxisLegend){this.drawyAxisLegend()}if(this.hasxAxisLegend){this.drawxAxisLegend()}this.drawTitle();this.drawGrid();this.styleGrid();this.setNodeGroup();if(this.yAxisFormat){self.yAxisGroup.selectAll("g.tick text").each(function(d,i){d3.select(this).text(function(d,i){var element=d3.select(this);var text=element.text();text=text.replace(/\,/g,"");var numericvalue=parseFloat(text);return self.formatNumber(numericvalue,self.yAxisFormat,self.yAxisDecimals)})})}if(self.datafound){this.drawLines();this.drawCircles();if(this.dataLabelType=="smart"){this.drawSmartLabels()}else if(this.dataLabelType=="normal"){this.drawNormalLabels()}else{}}else{this.drawErrorMessage()}};PMLineChart.prototype.drawSmartLabels=function(){var self=this;var radius=5;var anchor_array=[];var label_array=[];for(var i=0;i<self.data.length;i++){var row=self.data[i];var xval=self.xAxisScale(self.data[i][self.xAxisField]);var yval=self.yAxisScale(+self.data[i][self.valueField]);if(self.dataLabelFormat){var formattedValue=self.formatNumber(self.data[i][self.valueField],self.dataLabelFormat,self.dataLabelDecimals,self.dataLabelRound)}else{var formattedValue=self.data[i][self.valueField]}var addlabel=true;if(row.hasOwnProperty("showValue")){if(row.showValue==false){addlabel=false}}if(addlabel){anchor_array.push({x:xval,y:yval,r:radius});label_array.push({x:xval,y:yval,name:formattedValue,width:0,height:0,color:self.data[i]["color"]})}}var labels=self.nodeGroup.selectAll(".label").data(label_array).enter().append("text").attr("class","label").attr("text-anchor","start").text(function(d,i){return d.name}).attr("x",function(d){return d.x}).attr("y",function(d){return d.y}).style("font-size",function(){return"10px"}).style("font-family","Arial").style("fill",function(d){return d.color});var index=0;labels.each(function(){label_array[index].width=this.getBBox().width;label_array[index].height=this.getBBox().height;index+=1});if(self.drawLinks){var links=self.nodeGroup.selectAll(".link").data(label_array).enter().append("line").attr("class","link").attr("x1",function(d){return d.x}).attr("y1",function(d){return d.y}).attr("x2",function(d){return d.x}).attr("y2",function(d){return d.y}).attr("stroke-width",.6).attr("stroke","gray")}var sim_ann=d3.labeler().label(label_array).anchor(anchor_array).width(self.width).height(self.height);sim_ann.start(1e3);labels.attr("x",function(d){return d.x}).attr("y",function(d){return d.y});if(self.drawLinks){links.attr("x2",function(d){return d.x}).attr("y2",function(d){return d.y})}};PMLineChart.prototype.drawNormalLabels=function(){var self=this;for(k in self.series){var seriesdata=self.series[k];var labelSubGroup=self.labelGroup.append("g");var text=labelSubGroup.selectAll("text").data(seriesdata).enter().append("text").attr("x",function(d,i){var ret=0;ret+=self.xAxisScale.bandwidth()/2;ret+=self.xAxisScale(d[self.xAxisField]);return ret}).attr("y",function(d,i){var ret=0;ret+=self.yAxisScale(+d[self.valueField]);ret-=10;return ret}).attr("text-anchor","middle").text(function(d,i){var addlabel=true;if(d.hasOwnProperty("showValue")){if(d.showValue==false){addlabel=false}}if(addlabel){return self.formatNumber(d[self.valueField],self.dataLabelFormat,self.dataLabelDecimals,self.dataLabelRound)}return null}).style("font-size",function(){return"10px"}).style("font-family","Arial").style("fill",function(d){return d.color})}};PMLineChart.prototype.setCircleGroup=function(){this.circleGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","circleGroup")};PMLineChart.prototype.setChartGroup=function(){var self=this;var dx=0;var dy=0;if(this.hasTitle){dy+=self.titleHeight}if(this.hasLegend){if(this.legendPosition=="w"){dx+=self.legendWidth}else if(this.legendPosition=="e"){}else if(this.legendPosition=="n"){dy+=self.legendHeight}else if(this.legendPosition=="s"){}}if(this.hasyAxisLegend){dx+=this.yAxisLegendWidth}if(this.hasXAxisLegend){dy+=this.xAxisLegendHeight}dx+=this.yAxisWidth;this.chartGroup=this.mainGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","chartGroup")};PMLineChart.prototype.setData=function(data){var self=this;if(!(Array.isArray(data)&&data.length)){throw"Invalid data."}self.data=data;for(i in this.data){var row=this.data[i];var value=+row[self.valueField];var intVal=parseInt(value).toString();if(intVal.length>self.numOfDigitsInValues){self.numOfDigitsInValues=intVal.length}self.data[i].$value=value;self.data[i].$name=row[self.nameField];self.dataCount++;self.dataSum+=value}for(var i=0;i<self.data.length;i++){var datum=self.data[i];if(typeof datum.color==="undefined"){datum.color=self.colors[i]}}self.datafound=false;for(i in this.data){var row=self.data[i];if(self.isValidNumber(row[self.valueField])){self.datafound=true;break}}if(!self.datafound){for(i in self.data){self.data[i][self.valueField]=90}}self.data_only_valid=[];self.data_only_valid_plus_nulls=[];for(i in self.data){var row=self.data[i];if(self.isValidNumber(row[self.valueField])){self.data_only_valid.push(row);self.data_only_valid_plus_nulls.push(row)}else{self.data_only_valid_plus_nulls.push(null)}}if(self.tieBreakerField){var needTieBreak=false;var tieBreakerFieldValues=self.data.map(function(d){return d[self.tieBreakerField]});var nameFieldValues=self.data.map(function(d){return d[self.nameField]});var uniqueTieBreakerFieldValues=array_unique(tieBreakerFieldValues);var uniqueNameFieldValues=array_unique(nameFieldValues);if(uniqueTieBreakerFieldValues.length!=uniqueNameFieldValues.length){needTieBreak=true}if(needTieBreak){for(i in self.data){var datum=self.data[i];var tiebreakerval=datum[self.tieBreakerField];tiebreakerval=tiebreakerval.charAt(0).toUpperCase()+tiebreakerval.substr(1);var nameval=datum[self.nameField];var regex=/\(.*\)/;if(!regex.test(nameval)&&tiebreakerval!="Place"){if(!(tiebreakerval=="Country"||tiebreakerval=="country")){self.data[i][self.nameField]=nameval+" ("+tiebreakerval+")"}}}}}self.createSeries()};PMLineChart.prototype.setDrawLinks=function(value){this.drawLinks=value};PMLineChart.prototype.setErrorGroup=function(){this.errorGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","errorGroup")};PMLineChart.prototype.setTitleFontSize=function(size){size=size.toString();size=size.replace(/\D+/g,"");this.titleFontSize=size};PMLineChart.prototype.setGridGroup=function(){this.gridGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","gridGroup")};PMLineChart.prototype.setLabelGroup=function(){this.labelGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","labelGroup")};PMLineChart.prototype.setLegend=function(value){this.hasLegend=Boolean(value)};PMLineChart.prototype.setLegendGroup=function(){if(!this.hasLegend){return}var dx=0;var dy=0;if(this.hasTitle){dy+=this.titleHeight}if(this.legendPosition=="n"){}else if(this.legendPosition=="s"){dx-=10;if(isFurman()){dx=50}dy+=this.graphHeight;dy+=this.xAxisHeight}else if(this.legendPosition=="w"){}else if(this.legendPosition=="e"){dx+=this.graphWidth;dx+=this.yAxisWidth;if(this.hasyAxisLegend){dx+=this.yAxisLegendWidth}}this.legendGroup=this.mainGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","legendGroup")};PMLineChart.prototype.setLegendSymbol=function(symbol){var symbol=symbol.toLowerCase().trim();if(symbol=="square"||symbol=="circle"){this.legendSymbol=symbol}else{throw"Invalid legend symbol"}};PMLineChart.prototype.setLegendPosition=function(position){this.legendPosition=position.trim();this.legendPosition=this.legendPosition.toLowerCase();this.legendPosition=this.legendPosition.substr(0,1);if(!(this.legendPosition=="w"||this.legendPosition=="e"||this.legendPosition=="n"||this.legendPosition=="s")){throw"Invalid legend position"}};PMLineChart.prototype.setLineGroup=function(){this.lineGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","lineGroup")};PMLineChart.prototype.setMargin=function(margin){if(Array.isArray(margin)&&margin.length==4){this.margin.top=margin[0];this.margin.right=margin[1];this.margin.bottom=margin[2];this.margin.left=margin[3]}else if(typeof margin=="object"&&margin.hasOwnProperty("top")&&margin.hasOwnProperty("bottom")&&margin.hasOwnProperty("right")&&margin.hasOwnProperty("left")){this.margin=margin}else{throw"Invalid margin."}this.width=this.fullwidth-this.margin.left-this.margin.right;this.height=this.fullheight-this.margin.top-this.margin.bottom};PMLineChart.prototype.setNameField=function(fieldname){this.nameField=fieldname.trim()};PMLineChart.prototype.setNodeGroup=function(){var self=this;this.nodeGroup=this.chartGroup.append("g").attr("transform","translate("+(0+self.xAxisScale.bandwidth()/2)+",0)").attr("class","nodeGroup")};PMLineChart.prototype.setTestingGroup=function(){var self=this;this.testingGroup=this.svg.append("g").attr("transform","translate("+0+","+0+")").attr("class","testingGroup")};PMLineChart.prototype.setTieBreakerField=function(name){this.tieBreakerField=name};PMLineChart.prototype.setTitle=function(title){var newtitle=title.trim();if(newtitle.length){this.title=newtitle;this.hasTitle=true}};PMLineChart.prototype.setTitleGroup=function(){if(this.title==null||this.title.length==0){return}this.titleGroup=this.mainGroup.append("g").attr("class","titleGroup")}
;PMLineChart.prototype.setMainGroup=function(){this.mainGroup=this.svg.append("g").attr("transform","translate("+this.margin.left+","+this.margin.top+")").attr("class","mainGroup")};PMLineChart.prototype.setValueField=function(fieldname){this.valueField=fieldname.trim()};PMLineChart.prototype.setxAxis=function(){var self=this;this.xAxisGroup.append("g").attr("id",self.svgIdNoHash+"xAxis").attr("transform","translate(0,"+self.graphHeight+")").call(d3.axisBottom(self.xAxisScale))};PMLineChart.prototype.setxAxisScale=function(){var self=this;this.xAxisScale=d3.scaleBand().rangeRound([0,self.graphWidth]);this.xAxisScale.domain(self.data.map(function(d){return d.period}))};PMLineChart.prototype.setXAxisScaleType=function(scaletype){this.xAxisScaleType=scaletype.trim().toLowerCase()};PMLineChart.prototype.setxAxisField=function(fieldname){var self=this;this.xAxisField=fieldname};PMLineChart.prototype.setxAxisLegend=function(legend){this.xAxisLegend=legend.trim();this.hasxAxisLegend=true;this.xAxisLegendHeight=20};PMLineChart.prototype.setxAxisLegendGroup=function(){var self=this;this.xAxisLegendGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","xAxisLegendGroup")};PMLineChart.prototype.setxAxisGroup=function(){this.xAxisGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","xAxisGroup")};PMLineChart.prototype.setyAxisGroup=function(){this.yAxisGroup=this.chartGroup.append("g").attr("transform","translate(0,0)").attr("class","yAxisGroup")};PMLineChart.prototype.setyAxisLegend=function(legend){this.yAxisLegend=legend.trim();this.hasyAxisLegend=true;this.yAxisLegendWidth=20};PMLineChart.prototype.setyAxisDisplay=function(value){this.yAxisDisplay=value};PMLineChart.prototype.setyAxisFormat=function(formatstring,decimals){var self=this;if(formatstring){this.yAxisFormat=formatstring}if(decimals||decimals===0){this.yAxisDecimals=parseInt(decimals)}};PMLineChart.prototype.setDataLabelFormat=function(formatstring,decimals,round){var self=this;if(formatstring){this.dataLabelFormat=formatstring}if(decimals||decimals===0){this.dataLabelDecimals=parseInt(decimals)}if(round||round===0){this.dataLabelRound=round}};PMLineChart.prototype.setDataLabelType=function(value){var self=this;if(value=="normal"||value=="smart"||"none"){this.dataLabelType=value}else{throw"Invalid  data label type"}};PMLineChart.prototype.setDisplayGrid=function(value){this.displayGrid=!!value};PMLineChart.prototype.setDisplayCircles=function(value){this.displayCircles=!!value};PMLineChart.prototype.setxScaleForLegendLabels=function(){var self=this;self.xScaleForLegendLabels=d3.scaleBand().domain(self.data.map(function(d){return d.color})).range([0,self.width])};PMLineChart.prototype.setyAxisLegendGroup=function(){var self=this;var offset=self.yAxisWidth*-1;this.yAxisLegendGroup=this.chartGroup.append("g").attr("transform","translate("+offset+",0)").attr("class","yAxisLegendGroup")};PMLineChart.prototype.setyAxis=function(){var self=this;this.yAxisGroup.append("g").attr("id",self.svgIdNoHash+"yAxis").attr("transform","translate(0, 0 )").call(d3.axisLeft(self.yAxisScale))};PMLineChart.prototype.setyAxisStartAtZero=function(value){this.yAxisStartAtZero=!!value};PMLineChart.prototype.setyAxisScale=function(){var self=this;var min=d3.min(self.data,function(d){return d.$value});var max=d3.max(self.data,function(d){return d.$value});min=min/self.yAxisScalePaddingFactorBottom;max=max*self.yAxisScalePaddingFactorTop;if(this.yAxisStartAtZero){if(min>0){min=0}}this.yAxisScale=d3.scaleLinear().rangeRound([self.graphHeight,0]);this.yAxisScale.domain([min,max]);this.yAxisScale.nice()};PMLineChart.prototype.setyAxisScalePaddingFactorTop=function(factor){this.yAxisScalePaddingFactorTop=factor};PMLineChart.prototype.setyAxisScalePaddingFactorBottom=function(factor){this.yAxisScalePaddingFactorBottom=factor};PMLineChart.prototype.stylexAxis=function(){var self=this;d3.select(self.svgId+"xAxis").selectAll("line").attr("stroke","none");d3.select(self.svgId+"xAxis").selectAll("text").style("fill","#797979");d3.select(self.svgId+"xAxis").selectAll("path").style("stroke","lightgrey")};PMLineChart.prototype.styleyAxis=function(){var self=this;d3.select(self.svgId+"yAxis").selectAll("line").attr("stroke","none");d3.select(self.svgId+"yAxis").selectAll("text").style("fill","#797979");if(self.yAxisDisplay){d3.select(self.svgId+"yAxis").selectAll("path").style("stroke","lightgrey")}else{d3.select(self.svgId+"yAxis").selectAll("path").style("opacity",0)}};PMLineChart.prototype.styleGrid=function(){var self=this;d3.select(self.svgId).select("g.chartGroup").select("g.gridGroup").select("g.grid").selectAll("line").attr("stroke-width","1").attr("stroke","lightgrey").attr("stroke-opacity",.7).style("opacity",.7);d3.select(self.svgId).select("g.chartGroup").select("g.gridGroup").select("g.grid").selectAll("path").style("opacity",0)};function midAngle(d){return d.startAngle+(d.endAngle-d.startAngle)/2}function getTransformation(transform){var g=document.createElementNS("http://www.w3.org/2000/svg","g");g.setAttributeNS(null,"transform",transform);var matrix=g.transform.baseVal.consolidate().matrix;var a=matrix.a;var b=matrix.b;var c=matrix.c;var d=matrix.d;var e=matrix.e;var f=matrix.f;var scaleX;var scaleY;var skewX;if(scaleX=Math.sqrt(a*a+b*b)){a/=scaleX;b/=scaleX}if(skewX=a*c+b*d){c-=a*skewX;d-=b*skewX}if(scaleY=Math.sqrt(c*c+d*d)){c/=scaleY;d/=scaleY;skewX/=scaleY}if(a*d<b*c){a=-a;b=-b;skewX=-skewX;scaleX=-scaleX}return{translateX:e,translateY:f,rotate:Math.atan2(b,a)*Math.PI/180,skewX:Math.atan(skewX)*Math.PI/180,scaleX:scaleX,scaleY:scaleY}}function arrangeLabels(selection,label_class){var move=1;while(move>0){move=0;selection.selectAll(label_class).each(function(){var that=this;var a=this.getBoundingClientRect();selection.selectAll(label_class).each(function(){if(this!=that){var b=this.getBoundingClientRect();if(Math.abs(a.left-b.left)*2<a.width+b.width&&Math.abs(a.top-b.top)*2<a.height+b.height){var dx=(Math.max(0,a.right-b.left)+Math.min(0,a.left-b.right))*.01;var dy=(Math.max(0,a.bottom-b.top)+Math.min(0,a.top-b.bottom))*.02;var tt=getTransformation(d3.select(this).attr("transform"));var to=getTransformation(d3.select(that).attr("transform"));move+=Math.abs(dx)+Math.abs(dy);to.translate=[to.translateX+dx,to.translateY+dy];tt.translate=[tt.translateX-dx,tt.translateY-dy];d3.select(this).attr("transform","translate("+tt.translate+")");d3.select(that).attr("transform","translate("+to.translate+")");a=this.getBoundingClientRect()}}})})}}function wrap(text,width){text.each(function(){var text=d3.select(this);var words=text.text().split(/\s+/).reverse();var word;var line=[];var lineHeight=1;var y=0;var x=0;var dy=parseFloat(text.attr("dy"))||0;var dx=parseFloat(text.attr("dx"))||0;var tspan=text.text(null).append("tspan").attr("x",x).attr("y",y);while(word=words.pop()){line.push(word);tspan.text(line.join(" "));if(tspan.node().getComputedTextLength()>width-x){line.pop();tspan.text(line.join(" "));line=[word];tspan=text.append("tspan").attr("x",x).attr("dy",lineHeight+"em").attr("dx",dx+"em").text(word)}}})}function color_luminance(hex,lum){hex=String(hex).replace(/[^0-9a-f]/gi,"");if(hex.length<6){hex=hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]}lum=lum||0;var rgb="#",c,i;for(i=0;i<3;i++){c=parseInt(hex.substr(i*2,2),16);c=Math.round(Math.min(Math.max(0,c+c*lum),255)).toString(16);rgb+=("00"+c).substr(c.length)}return rgb}function isValidNumber(n){return!isNaN(parseFloat(n))&&!isNaN(n-0)&&n!=-9999}function array_unique(arr){var u={},a=[];for(var i=0,l=arr.length;i<l;++i){if(u.hasOwnProperty(arr[i])){continue}a.push(arr[i]);u[arr[i]]=1}return a}(function(){d3.labeler=function(){var lab=[],anc=[],w=1,h=1,labeler={};var max_move=5,max_angle=.5,acc=0;rej=0;var w_len=.3,w_inter=1,w_lab2=30,w_lab_anc=30;w_orient=6;var user_energy=false,user_schedule=false;var user_defined_energy,user_defined_schedule;energy=function(index){var m=lab.length,ener=0,dx=lab[index].x-anc[index].x,dy=anc[index].y-lab[index].y,dist=Math.sqrt(dx*dx+dy*dy),overlap=true,amount=0;theta=0;if(dist>0)ener+=dist*w_len;dx/=dist;dy/=dist;if(dx>0&&dy>0){ener+=0*w_orient}else if(dx<0&&dy>0){ener+=1*w_orient}else if(dx<0&&dy<0){ener+=2*w_orient}else{ener+=3*w_orient}var x21=lab[index].x,y21=lab[index].y-lab[index].height+2,x22=lab[index].x+lab[index].width,y22=lab[index].y+2;var x11,x12,y11,y12,x_overlap,y_overlap,overlap_area;for(var i=0;i<m;i++){if(i!=index){overlap=intersect(anc[index].x,lab[index].x,anc[i].x,lab[i].x,anc[index].y,lab[index].y,anc[i].y,lab[i].y);if(overlap)ener+=w_inter;x11=lab[i].x;y11=lab[i].y-lab[i].height+2;x12=lab[i].x+lab[i].width;y12=lab[i].y+2;x_overlap=Math.max(0,Math.min(x12,x22)-Math.max(x11,x21));y_overlap=Math.max(0,Math.min(y12,y22)-Math.max(y11,y21));overlap_area=x_overlap*y_overlap;ener+=overlap_area*w_lab2}x11=anc[i].x-anc[i].r;y11=anc[i].y-anc[i].r;x12=anc[i].x+anc[i].r;y12=anc[i].y+anc[i].r;x_overlap=Math.max(0,Math.min(x12,x22)-Math.max(x11,x21));y_overlap=Math.max(0,Math.min(y12,y22)-Math.max(y11,y21));overlap_area=x_overlap*y_overlap;ener+=overlap_area*w_lab_anc}return ener};mcmove=function(currT){var i=Math.floor(Math.random()*lab.length);var x_old=lab[i].x;var y_old=lab[i].y;var old_energy;if(user_energy){old_energy=user_defined_energy(i,lab,anc)}else{old_energy=energy(i)}lab[i].x+=(Math.random()-.5)*max_move;lab[i].y+=(Math.random()-.5)*max_move;if(lab[i].x>w)lab[i].x=x_old;if(lab[i].x<0)lab[i].x=x_old;if(lab[i].y>h)lab[i].y=y_old;if(lab[i].y<0)lab[i].y=y_old;var new_energy;if(user_energy){new_energy=user_defined_energy(i,lab,anc)}else{new_energy=energy(i)}var delta_energy=new_energy-old_energy;if(Math.random()<Math.exp(-delta_energy/currT)){acc+=1}else{lab[i].x=x_old;lab[i].y=y_old;rej+=1}};mcrotate=function(currT){var i=Math.floor(Math.random()*lab.length);var x_old=lab[i].x;var y_old=lab[i].y;var old_energy;if(user_energy){old_energy=user_defined_energy(i,lab,anc)}else{old_energy=energy(i)}var angle=(Math.random()-.5)*max_angle;var s=Math.sin(angle);var c=Math.cos(angle);lab[i].x-=anc[i].x;lab[i].y-=anc[i].y;var x_new=lab[i].x*c-lab[i].y*s,y_new=lab[i].x*s+lab[i].y*c;lab[i].x=x_new+anc[i].x;lab[i].y=y_new+anc[i].y;if(lab[i].x>w)lab[i].x=x_old;if(lab[i].x<0)lab[i].x=x_old;if(lab[i].y>h)lab[i].y=y_old;if(lab[i].y<0)lab[i].y=y_old;var new_energy;if(user_energy){new_energy=user_defined_energy(i,lab,anc)}else{new_energy=energy(i)}var delta_energy=new_energy-old_energy;if(Math.random()<Math.exp(-delta_energy/currT)){acc+=1}else{lab[i].x=x_old;lab[i].y=y_old;rej+=1}};intersect=function(x1,x2,x3,x4,y1,y2,y3,y4){var mua,mub;var denom,numera,numerb;denom=(y4-y3)*(x2-x1)-(x4-x3)*(y2-y1);numera=(x4-x3)*(y1-y3)-(y4-y3)*(x1-x3);numerb=(x2-x1)*(y1-y3)-(y2-y1)*(x1-x3);mua=numera/denom;mub=numerb/denom;if(!(mua<0||mua>1||mub<0||mub>1)){return true}return false};cooling_schedule=function(currT,initialT,nsweeps){return currT-initialT/nsweeps};labeler.start=function(nsweeps){var m=lab.length,currT=1,initialT=1;for(var i=0;i<nsweeps;i++){for(var j=0;j<m;j++){if(Math.random()<.5){mcmove(currT)}else{mcrotate(currT)}}currT=cooling_schedule(currT,initialT,nsweeps)}};labeler.width=function(x){if(!arguments.length)return w;w=x;return labeler};labeler.height=function(x){if(!arguments.length)return h;h=x;return labeler};labeler.label=function(x){if(!arguments.length)return lab;lab=x;return labeler};labeler.anchor=function(x){if(!arguments.length)return anc;anc=x;return labeler};labeler.alt_energy=function(x){if(!arguments.length)return energy;user_defined_energy=x;user_energy=true;return labeler};labeler.alt_schedule=function(x){if(!arguments.length)return cooling_schedule;user_defined_schedule=x;user_schedule=true;return labeler};return labeler}})();PMPieChart=function(data){if(Array.isArray(data)&&data.length){this.setData(data)}else{this.data=[]}this.arrowGroup=null;this.chartGroup=null;this.colors=["#67B7DC","#FDD400","#84B761","#CC4748","#CD82AD","#2F4074","#B7B83F","#B9783F","#FF0F00","#FF6600","#FF9E01","#FCD202","#F8FF01","#B0DE09","#04D215","#0D8ECF","#0D52D1","#2A0CD0","#8A0CCF","#CD0D74","#754DEB","#DDDDDD","#999999","#333333","#000000","#57032A","#CA9726","#990000","#4B0C25"];this.dataCount=0;this.dataSum=0;this.donutArc1=null;this.donutArc2=null;this.donutArc3=null;this.donutArc4=null;this.displayValueInSlice=false;this.displayPercentInSlice=false;this.displayValueInLabel=false;this.displayPercentInLabel=false;this.fontcolor="grey";this.fullheight=0;this.fullwidth=0;this.hasTitle=false;this.hasLegend=false;this.height=0;this.hideSmallSlices=false;this.nameField="name";this.labelGroup=null;this.legendFontSize=12;this.legendGroup=null;this.legendPosition="e";this.legendType="singlelabels";this.legendMargin={top:0,right:0,bottom:0,left:0};this.legendWidth=0;this.legendHeight=0;this.labelOffset=10;this.linecolor="lightgrey";this.lineColorMatchesSliceColor=false;this.mainGroup=null;this.margin={top:0,right:0,bottom:0,left:0};this.maxRadius=0;this.maxLabelLength=20;this.numberOfDecimals=0;this.percentGroup=null;this.pie=null;this.pieArc=null;this.graphWidth=null;this.graphHeight=null;this.radiusLevels=[0,.25,.55,.62,.69,.76,.84,.92,1];this.rawdata=[];this.sliceGroup=null;this.svg=null;this.svgid=null;this.smallSliceThreshold=5;this.type="pie";this.title=null;this.testing=0;this.titleFontSize=18;this.titleGroup=null;this.titleHeight=0;this.valueGroup=null;this.valueField="value";this.width=0;this.wrapSize};PMPieChart.prototype.colorLuminance=function(hex,lum){var hex=String(hex).replace(/[^0-9a-f]/gi,"");if(hex.length<6){hex=hex[0]+hex[0]+hex[1]+hex[1]+hex[2]+hex[2]}lum=lum||0;var rgb="#",c,i;for(i=0;i<3;i++){c=parseInt(hex.substr(i*2,2),16);c=Math.round(Math.min(Math.max(0,c+c*lum),255)).toString(16);rgb+=("00"+c).substr(c.length)}return rgb};PMPieChart.prototype.getContrastingColor=function(color){var hexcolor=String(color).replace(/[^0-9a-f]/gi,"");if(hexcolor.length<6){hexcolor=hexcolor[0]+hexcolor[0]+hexcolor[1]+hexcolor[1]+hexcolor[2]+hexcolor[2]}var r=parseInt(hexcolor.substr(0,2),16);var g=parseInt(hexcolor.substr(2,2),16);var b=parseInt(hexcolor.substr(4,2),16);var yiq=(r*299+g*587+b*114)/1e3;if(yiq>=128){return"#000000"}else{return"#FFFFFF"}};PMPieChart.prototype.getOuterLegend=function(orientation){if(orientation=="vertical"){var table='<table class="outerlegend">';for(var i=0;i<this.data.length;i++){var row="<tr><td>";var color=this.data[i].color||this.colors[i];var box='<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><rect width="20" height="20" fill="'+color+'" opacity="1"></rect></svg>';row+=box;row+="</td><td>";row+=this.data[i].$name;row+="</td></tr>";table+=row}table+="</table>";return table}else if(orientation=="horizontal"){var table="<table><tr>";for(var i=0;i<this.data.length;i++){var row="<td>";var color=this.data[i].color||this.colors[i];var box='<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 20 20"><rect width="20" height="20" fill="'+color+'" opacity="1"></rect></svg>';row+=box;row+="</td><td>";row+=this.data[i].$name;row+='</td><td width="10">&nbsp;</td>';table+=row}table+="</tr></table>";return table}else{throw Exception("Invalid legend orientation value")}};PMPieChart.prototype.debug=function(){console.log("---------------------------------------------------");console.log("this.fulwidth: "+this.fullwidth);console.log("this.fullheight: "+this.fullheight);console.log("this.width: "+this.width);console.log("this.height: "+this.height);console.log("this.margin.top: "+this.margin.top);console.log("this.margin.right: "+this.margin.right);console.log("this.margin.bottom: "+this.margin.bottom);console.log("this.margin.left: "+this.margin.left);console.log("this.legendMargin.top: "+this.legendMargin.top);console.log("this.legendMargin.right: "+this.legendMargin.right);console.log("this.legendMargin.bottom: "+this.legendMargin.bottom);console.log("this.legendMargin.left: "+this.legendMargin.left);console.log("this.graphWidth: "+this.graphWidth);console.log("this.graphHeight: "+this.graphHeight);console.log("this.hasTitle:"+this.hasTitle);console.log("this.titleWidth: "+this.titleWidth);console.log("this.titleHeight: "+this.titleHeight);console.log("this.hasLegend: "+this.hasLegend);console.log("this.legendWidth: "+this.legendWidth);console.log("this.legendHeight: "+this.legendHeight);console.log("this.legendPaddingX: "+this.legendPaddingX);console.log("this.legendPaddingY: "+this.legendPaddingY);console.log("this.cx: "+this.cx);console.log("this.cy: "+this.cy);console.log("---------------------------------------------------")};PMPieChart.prototype.drawArrows=function(){var self=this;var group1=self.arrowGroup.append("g").attr("transform","translate(0,0)");group1.selectAll("line").data(self.pie(self.data)).enter().append("line").attr("x1",function(d,i){var pos=self.arrowOriginArc.centroid(d);return pos[0]}).attr("y1",function(d,i){var pos=self.arrowOriginArc.centroid(d);return pos[1]}).attr("x2",function(d,i){if(!d.data.isInSmallCluster){var pos=self.donutArc3.centroid(d)}else{if(d.data.smallClusterPosition==1){var pos=self.labelArc2.centroid(d)}else if(d.data.smallClusterPosition==2){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==3){var pos=self.labelArc4.centroid(d)}else if(d.data.smallClusterPosition==4){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==5){var pos=self.labelArc2.centroid(d)}else{var pos=self.donutArc3.centroid(d)}}return pos[0]}).attr("y2",function(d,i){if(!d.data.isInSmallCluster){var pos=self.donutArc3.centroid(d)}else{if(d.data.smallClusterPosition==1){var pos=self.labelArc2.centroid(d)}else if(d.data.smallClusterPosition==2){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==3){var pos=self.labelArc4.centroid(d)}else if(d.data.smallClusterPosition==4){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==5){var pos=self.labelArc2.centroid(d)}else{var pos=self.donutArc3.centroid(d)}}return pos[1]}).style("stroke",function(d,i){if(self.lineColorMatchesSliceColor){return d.data.color}else{return self.linecolor}}).style("opacity",function(d){if(self.hideSmallSlices){if(d.data.issmall){return 0}else{return 1}}else{return 1}});var group2=this.arrowGroup.append("g").attr("transform","translate(0,0)");group2.selectAll("line").data(self.pie(self.data)).enter().append("line").attr("x1",function(d,i){if(!d.data.isInSmallCluster){var pos=self.donutArc3.centroid(d)}else{if(d.data.smallClusterPosition==1){var pos=self.labelArc2.centroid(d)}else if(d.data.smallClusterPosition==2){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==3){var pos=self.labelArc4.centroid(d)}else if(d.data.smallClusterPosition==4){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==5){var pos=self.labelArc2.centroid(d)}else{var pos=self.donutArc3.centroid(d)}}var leftX=pos[0]-self.labelOffset;var rightX=pos[0]+self.labelOffset;var ret=pos[0];if(d.data.cummulativePercent<=50){ret=rightX}else{ret=leftX}if(i==0&&d.data.percent>50){ret=rightX}var previousCummulativePercent=0;if(i>0){var previousindex=i-1;previousCummulativePercent=self.data[previousindex].cummulativePercent}if(previousCummulativePercent+d.data.percent/2<=50){ret=rightX}if(i==self.dataCount-1&&d.data.issmall&&self.dataCount>=3){if(self.data[0].percent>25&&self.data[i-1].issmall){ret=rightX}}if(d.data.cummulativePercent<50&&previousCummulativePercent>40&&d.data.percent<10){var previousindex=i-1;if(self.data[previousindex].issmall){ret=leftX}}return ret}).attr("y1",function(d,i){if(!d.data.isInSmallCluster){var pos=self.donutArc3.centroid(d)}else{if(d.data.smallClusterPosition==1){var pos=self.labelArc2.centroid(d)}else if(d.data.smallClusterPosition==2){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==3){var pos=self.labelArc4.centroid(d)}else if(d.data.smallClusterPosition==4){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==5){var pos=self.labelArc2.centroid(d)}else{var pos=self.donutArc3.centroid(d)}}return pos[1]}).attr("x2",function(d,i){if(!d.data.isInSmallCluster){var pos=self.donutArc3.centroid(d)}else{if(d.data.smallClusterPosition==1){var pos=self.labelArc2.centroid(d)}else if(d.data.smallClusterPosition==2){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==3){var pos=self.labelArc4.centroid(d)}else if(d.data.smallClusterPosition==4){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==5){var pos=self.labelArc2.centroid(d)}else{var pos=self.donutArc3.centroid(d)}}return pos[0]}).attr("y2",function(d,i){if(!d.data.isInSmallCluster){var pos=self.donutArc3.centroid(d)}else{if(d.data.smallClusterPosition==1){var pos=self.labelArc2.centroid(d)}else if(d.data.smallClusterPosition==2){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==3){var pos=self.labelArc4.centroid(d)}else if(d.data.smallClusterPosition==4){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==5){var pos=self.labelArc2.centroid(d)}else{var pos=self.donutArc3.centroid(d)}}return pos[1]}).style("stroke",function(d,i){if(self.lineColorMatchesSliceColor){return d.data.color}else{return self.linecolor}}).style("opacity",function(d){if(self.hideSmallSlices){if(d.data.issmall){return 0}else{return 1}}else{return 1}})};PMPieChart.prototype.drawOutsideLabels=function(){var self=this;this.labelGroup.selectAll("text").data(this.pie(this.data)).enter().append("text").attr("class","label").attr("transform",function(d,i){if(!d.data.isInSmallCluster){var pos=self.labelArc1.centroid(d)}else{if(d.data.smallClusterPosition==1){var pos=self.labelArc2.centroid(d)}else if(d.data.smallClusterPosition==2){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==3){var pos=self.labelArc4.centroid(d)}else if(d.data.smallClusterPosition==4){var pos=self.labelArc3.centroid(d)}else if(d.data.smallClusterPosition==5){var pos=self.labelArc2.centroid(d)}else{var pos=self.labelArc1.centroid(d)}}var leftX=pos[0]-self.labelOffset;var rightX=pos[0]+self.labelOffset;if(d.data.cummulativePercent<=50){ret=rightX}else{ret=leftX}if(i==0&&d.data.percent>50){ret=rightX}var previousCummulativePercent=0;if(i>0){var previousindex=i-1;previousCummulativePercent=self.data[previousindex].cummulativePercent}if(previousCummulativePercent+d.data.percent/2<=50){ret=rightX}if(i==self.dataCount-1&&d.data.issmall&&self.dataCount>=3){if(self.data[0].percent>25&&self.data[i-1].issmall){ret=rightX}}if(d.data.cummulativePercent<50&&previousCummulativePercent>40&&d.data.percent<10){var previousindex=i-1;if(self.data[previousindex].issmall){ret=leftX}}pos[0]=ret;return"translate("+pos+")"}).style("text-anchor",function(d,i){var ret=midAngle(d)<Math.PI?"start":"end";if(d.data.cummulativePercent<=50){ret="start"}else{ret="end"}if(i==0&&d.data.percent>50){ret="start"}var previousCummulativePercent=0;if(i>0){var previousindex=i-1;previousCummulativePercent=self.data[previousindex].cummulativePercent}if(previousCummulativePercent+d.data.percent/2<=50){ret="start"}if(i==self.dataCount-1&&d.data.issmall&&self.dataCount>=3){if(self.data[0].percent>25&&self.data[i-1].issmall){ret="start"}}if(d.data.cummulativePercent<50&&previousCummulativePercent>40&&d.data.percent<10){var previousindex=i-1;if(self.data[previousindex].issmall){ret="end"}}return ret}).style("font-family","arial").style("font-size","12px").style("fill",function(d,i){if(self.labelColorMatchesSliceColor){return d.data.color}else{return self.fontcolor}}).text(function(d){if(self.hideSmallSlices){if(d.data.issmall){return""}else{if(self.displayPercentInLabel){return d.data.$name+" ("+d.data.percent.toFixed(self.numberOfDecimals)+"%)"}else if(self.displayValueInLabel){return d.data.$name+" ("+d.data.$value+")"}else{return d.data.$name}}}else{if(self.displayPercentInLabel){return d.data.$name+" ("+d.data.percent.toFixed(self.numberOfDecimals)+"%)"}else if(self.displayValueInLabel){return d.data.$name+" ("+d.data.$value+")"}else{return d.data.$name}}}).call(wrap,self.wrapSize)};PMPieChart.prototype.drawLegend=function(){if(this.legendPosition=="n"||this.legendPosition=="s"){this.drawLegendHorizontal()}else if(this.legendPosition=="w"||this.legendPosition=="e"){this.drawLegendVertical()}else{throw"Invalid legend position"}};PMPieChart.prototype.array_unique=function(arr){var u={},a=[];for(var i=0,l=arr.length;i<l;++i){if(u.hasOwnProperty(arr[i])){continue}a.push(arr[i]);u[arr[i]]=1}return a};PMPieChart.prototype.drawLegendHorizontal=function(){var self=this;if(this.testing){this.legendGroup.append("rect").attr("x",0).attr("y",0).attr("width",self.legendWidth).attr("height",self.legendHeight).style("fill","#fedaa3")}var colors=[];colors=self.data.map(function(d,i){return d.color||d.barcolor});colors=self.array_unique(colors);self.legendEntries=self.array_unique(self.data.map(function(d,i){if(self.displayPercentInLabel){var ret=d.$name;var formatComma=d3.format(",");var percentDisplay=self.data[i].percent.toFixed(self.numberOfDecimals);ret+=" ("+formatComma(percentDisplay)+"%)";return ret}else if(self.displayValueInLabel){var ret=d.$name;var formatComma=d3.format(",");var percentDisplay=self.data[i].$value.toFixed(self.numberOfDecimals);ret+=" ("+formatComma(percentDisplay)+")";return ret}else{return d.$name}}));var legendcontent=self.legendGroup.append("g").attr("class","legendcontent");var local=d3.local();var legend=legendcontent.selectAll(null).data(self.legendEntries).enter().append("g");legend.append("rect").style("fill",function(d,i){return colors[i]}).attr("x",function(){return(local.get(this.parentNode)||0)+4}).attr("y",6).attr("width",14).attr("height",14);var labWidths=[];legend.append("text").text(String).attr("y",function(d,i){labWidths[i]=this.getComputedTextLength();local.set(this.parentNode,this.getComputedTextLength());return 20}).attr("x",function(){return 25}).style("font-size",self.legendFontSize).style("font-family","arial").style("fill",self.fontcolor);var dx=0;var dy=0;var limit=this.graphWidth*.8;legend.each(function(d,i){if(i){dx+=local.get(this.previousSibling)+36;if(dx>limit){dx=0;dy+=30}else if(dx+labWidths[i]>limit){dx=0;dy+=30}d3.select(this).attr("transform","translate("+dx+","+dy+")")}});var element=self.legendGroup.select("g.legendcontent").node();var actualHeight=element.getBoundingClientRect().height;var actualWidth=element.getBoundingClientRect().width;var xDifference=self.legendWidth-actualWidth;var yDifference=self.legendHeight-actualHeight;if(xDifference>0||yDifference>0){var moveRightLegendBy=xDifference/2;var moveDownLegendBy=yDifference/2;self.legendGroup.select(".legendcontent").attr("transform","translate("+moveRightLegendBy+","+moveDownLegendBy+")")}};PMPieChart.prototype.drawLegendVertical=function(){var self=this;if(this.testing){this.legendGroup.append("rect").attr("x",0).attr("y",0).attr("width",self.legendWidth).attr("height",self.legendHeight).style("fill","#fedaa3")}var ordinalScale=d3.scaleOrdinal().domain(self.data.map(function(d,i){if(self.displayPercentInLabel){var ret=d.$name;var formatComma=d3.format(",");var percentDisplay=self.data[i].percent.toFixed(self.numberOfDecimals);ret+=" ("+formatComma(percentDisplay)+"%)";return ret}else if(self.displayValueInLabel){var ret=d.$name;var formatComma=d3.format(",");var percentDisplay=self.data[i].$value.toFixed(self.numberOfDecimals);ret+=" ("+formatComma(percentDisplay)+")";return ret}else{return d.$name}})).range(self.data.map(function(d){return d.color}));self.legendGroup.append("g").attr("class","legendOrdinal").attr("transform","translate(0,0)");var shapePadding=10;var finalLegendWidth=self.legendWidth-shapePadding;var legendOrdinal=d3.legendColor().shape("path",d3.symbol().type(d3.symbolSquare).size(150)()).shapePadding(shapePadding).cellFilter(function(d){return d.label!=="e"}).labelWrap(finalLegendWidth).scale(ordinalScale);self.legendGroup.select(".legendOrdinal").call(legendOrdinal);self.legendGroup.select(".legendOrdinal").selectAll("text").style("font-size",self.legendFontSize).style("font-family","arial").style("fill",self.fontcolor);var element=self.legendGroup.select("g.legendOrdinal").node();var actualHeight=element.getBoundingClientRect().height;var actualWidth=element.getBoundingClientRect().width;var xDifference=self.legendWidth-actualWidth;var yDifference=self.legendHeight-actualHeight;if(xDifference>0||yDifference>0){var moveRightLegendBy=xDifference/2;var moveDownLegendBy=yDifference/2;self.legendGroup.select(".legendOrdinal").attr("transform","translate("+moveRightLegendBy+","+moveDownLegendBy+")")}};PMPieChart.prototype.drawPercentLabelsInSlices=function(){var self=this;var text=self.percentGroup.selectAll("text").data(self.pie(self.data)).enter().append("text").attr("transform",function(d){if(self.displayValueInSlice&&self.displayPercentInSlice){return"translate("+self.percentsArc.centroid(d)+")"}else{return"translate("+self.donutArc1.centroid(d)+")"}}).attr("text-anchor","middle").text(function(d){if(d.data.percent<self.smallSliceThreshold){return""}else{var formatComma=d3.format(",");var percentDisplay=d.data.percent.toFixed(self.numberOfDecimals);return formatComma(percentDisplay)+"%"}}).style("font-size",function(){var size=parseInt(self.maxRadius/15);if(size<9){size=9}return size+"px"}).style("font-family","Arial").style("fill",function(d){var color=d.data.color;return self.getContrastingColor(color)})};PMPieChart.prototype.drawSlices=function(){var self=this;var sliceG=this.sliceGroup.append("g").attr("transform","translate(0,0)").attr("class","sliceG");var theArc=this.pieArc;if(self.type=="donut"){theArc=this.donutArc1}sliceG.selectAll("path").data(this.pie(this.data)).enter().append("path").attr("d",theArc).attr("class","slice").attr("id",function(d,i){return d.data.id||d.data.elementId}).style("stroke","gray").style("stroke-width","0.5px").style("fill",function(d){return d.data.color}).on("mouseover",function(d,i){var color=d.data.color;d3.select(this).style("fill",self.colorLuminance(color,.2))}).on("mouseout",function(d,i){var color=d.data.color;d3.select(this).style("fill",color)})};PMPieChart.prototype.drawTitle=function(){if(!this.hasTitle){return}var self=this;if(this.testing){this.titleGroup.append("rect").attr("x",0).attr("y",0).attr("width",self.width).attr("height",self.titleHeight).style("fill","#D7FEA3")}var group=this.titleGroup.append("g").attr("transform","translate(0,0)").attr("class","titleG");var titledata=[{text:this.title}];group.selectAll("text").data(titledata).enter().append("text").attr("class","title").style("font-family","arial").style("text-anchor","middle").style("font-size",self.titleFontSize+"px").style("fill",function(d,i){return self.fontcolor}).text(function(d){return d.text}).attr("transform","translate("+self.width/2+","+self.titleHeight/2+")").call(wrap,self.width)};PMPieChart.prototype.drawValueLabelInSlices=function(){var self=this;var text=self.valueGroup.selectAll("text").data(self.pie(self.data)).enter().append("text").attr("transform",function(d){if(self.displayValueInSlice&&self.displayPercentInSlice){return"translate("+self.valuesArc.centroid(d)+")"}else{return"translate("+self.donutArc1.centroid(d)+")"}}).attr("text-anchor","middle").text(function(d){if(d.data.percent<self.smallSliceThreshold){return""}else{var formatComma=d3.format(",");return formatComma(d.data.$value)}}).style("font-size",function(){var size=parseInt(self.maxRadius/15);if(size<9){size=9}return size+"px"}).style("font-family","Arial").style("fill",function(d){var color=d.data.color;return self.getContrastingColor(color)})};PMPieChart.prototype.makeArrowColorMatchSliceColor=function(){this.lineColorMatchesSliceColor=true};PMPieChart.prototype.makeLabelColorMatchSliceColor=function(){this.labelColorMatchesSliceColor=true};PMPieChart.prototype.render=function(svgId){if(!(Array.isArray(this.data)&&this.data.length)){throw"Invalid data."}var self=this;for(i in this.data){var row=this.data[i];var name=row[this.nameField]
;var value=row[this.valueField];this.data[i].$name=name;this.data[i].$value=value}if(svgId.match(/^#/)){this.svgId=svgId}else{this.svgId="#"+svgId}this.svg=d3.select(this.svgId);this.fullwidth=this.svg.attr("width");this.fullheight=this.svg.attr("height");this.width=this.fullwidth-this.margin.left-this.margin.right;this.height=this.fullheight-this.margin.top-this.margin.bottom;if(this.hasTitle){this.titleHeight=20;if(this.height*.1>this.titleHeight){this.titleHeight=this.height*.1}if(this.titleHeight>50){this.titleHeight=50}this.height=this.fullheight-this.margin.top-this.margin.bottom-this.titleHeight}this.graphHeight=this.height;this.maxRadius=Math.min(this.width,this.height)/2;this.wrapSize=this.maxRadius*this.radiusLevels[4];this.setMargin(this.margin);if(this.hasLegend){this.legendHeight=this.height;if(this.hasTitle){this.legendHeight-=this.titleHeight;this.legendMargin.top=this.titleHeight}if(this.legendPosition=="w"||this.legendPosition=="e"){this.legendWidth=Math.round(this.width*.33);this.graphWidth=this.width-this.legendWidth;this.maxRadius=Math.min(this.graphWidth,this.graphHeight)/2;this.wrapSize=this.maxRadius*this.radiusLevels[4]}else if(this.legendPosition=="n"||this.legendPosition=="s"){this.legendHeight=30*Math.round(this.data.length/3);this.legendWidth=this.width;this.graphWidth=this.width;this.graphHeight=this.height-this.legendHeight-this.titleHeight;this.maxRadius=Math.min(this.graphWidth,this.graphHeight)/2;this.wrapSize=this.maxRadius*this.radiusLevels[4]}}else{this.legendWidth=0;this.legendHeight=0;this.graphWidth=this.width;this.graphHeight=this.height;if(this.hasTitle){this.legendHeight-=this.titleHeight;this.legendMargin.top=this.titleHeight}}this.setMainGroup();if(this.legendType=="singlelabels"){this.setTitleGroup();this.setChartGroup();this.setSliceGroup();this.setLabelGroup();this.setArrowGroup();this.setValueGroup();this.setPercentGroup();this.setPie();this.setArcs();this.drawTitle();this.drawSlices();this.drawArrows();this.drawOutsideLabels();if(this.displayValueInSlice){this.drawValueLabelInSlices()}if(this.displayPercentInSlice){this.drawPercentLabelsInSlices()}}else if(this.legendType=="block"){this.setTitleGroup();this.setChartGroup();this.setSliceGroup();this.setLegendGroup();this.setValueGroup();this.setPercentGroup();this.setPie();this.setArcs();this.drawTitle();this.drawSlices();this.drawLegend();if(this.displayValueInSlice){this.drawValueLabelInSlices()}if(this.displayPercentInSlice){this.drawPercentLabelsInSlices()}}else if(this.legendType=="none"){this.setTitleGroup();this.setChartGroup();this.setSliceGroup();this.setValueGroup();this.setPercentGroup();this.setPie();this.setArcs();this.drawTitle();this.drawSlices();if(this.displayValueInSlice){this.drawValueLabelInSlices()}if(this.displayPercentInSlice){this.drawPercentLabelsInSlices()}}else if(this.legendType=="none"){}else{throw"Invalid legend type"}};PMPieChart.prototype.setArcs=function(){var self=this;if(this.legendType=="block"||this.legendType=="none"){var pieSize=.8;var donutSizeInner=.4;var donutSizeOuter=.8}else{var pieSize=.55;var donutSizeInner=.25;var donutSizeOuter=.55}this.pieArc=d3.arc().innerRadius(0).outerRadius(this.maxRadius*pieSize).padAngle(.03).padRadius(100);this.donutArc1=d3.arc().innerRadius(this.maxRadius*donutSizeInner).outerRadius(this.maxRadius*donutSizeOuter).padAngle(.03).padRadius(100);var distance=(this.radiusLevels[2]-this.radiusLevels[1])*2;var adjustment=this.radiusLevels[1]+distance;this.arrowOriginArc=d3.arc().innerRadius(this.maxRadius*this.radiusLevels[1]).outerRadius(this.maxRadius*adjustment).padAngle(.03).padRadius(100);this.donutArc2=d3.arc().innerRadius(this.maxRadius*this.radiusLevels[2]).outerRadius(this.maxRadius*this.radiusLevels[3]).padAngle(.03).padRadius(100);this.donutArc3=d3.arc().innerRadius(this.maxRadius*this.radiusLevels[3]).outerRadius(this.maxRadius*this.radiusLevels[4]).padAngle(.03).padRadius(100);this.donutArc4=d3.arc().innerRadius(this.maxRadius*this.radiusLevels[4]).outerRadius(this.maxRadius*this.radiusLevels[5]).padAngle(.03).padRadius(100);this.labelArc1=d3.arc().innerRadius(this.maxRadius*((this.radiusLevels[3]+this.radiusLevels[4])/2)).outerRadius(this.maxRadius*((this.radiusLevels[4]+this.radiusLevels[5])/2)).padAngle(.03).padRadius(100);this.labelArc2=d3.arc().innerRadius(this.maxRadius*((this.radiusLevels[4]+this.radiusLevels[5])/2)).outerRadius(this.maxRadius*((this.radiusLevels[5]+this.radiusLevels[6])/2)).padAngle(.03).padRadius(100);this.labelArc3=d3.arc().innerRadius(this.maxRadius*((this.radiusLevels[5]+this.radiusLevels[6])/2)).outerRadius(this.maxRadius*((this.radiusLevels[6]+this.radiusLevels[7])/2)).padAngle(.03).padRadius(100);this.labelArc4=d3.arc().innerRadius(this.maxRadius*((this.radiusLevels[6]+this.radiusLevels[7])/2)).outerRadius(this.maxRadius*((this.radiusLevels[7]+this.radiusLevels[8])/2)).padAngle(.03).padRadius(100);if(this.type=="pie"){this.valuesArc=d3.arc().innerRadius(this.maxRadius*pieSize).outerRadius(this.maxRadius*pieSize).padAngle(.03).padRadius(100)}else{this.valuesArc=d3.arc().innerRadius(this.maxRadius*donutSizeInner*.8).outerRadius(this.maxRadius*donutSizeOuter*.8).padAngle(.03).padRadius(100)}if(this.type=="pie"){this.percentsArc=d3.arc().innerRadius(this.maxRadius*pieSize).outerRadius(this.maxRadius*pieSize).padAngle(.03).padRadius(100)}else{this.percentsArc=d3.arc().innerRadius(this.maxRadius*donutSizeInner).outerRadius(this.maxRadius*donutSizeOuter).padAngle(.03).padRadius(100)}};PMPieChart.prototype.setArrowGroup=function(){dx=0;dy=0;dx+=this.graphWidth/2;dy+=this.graphHeight/2;this.arrowGroup=this.chartGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","arrowGroup")};PMPieChart.prototype.setChartGroup=function(){var self=this;var dx=0;var dy=0;if(this.hasTitle){dy+=this.titleHeight}if(this.legendType=="block"){if(this.legendPosition=="w"){dx+=this.legendWidth}}this.chartGroup=this.mainGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","chartGroup");if(this.testing){this.chartGroup.append("rect").attr("x",0).attr("y",0).attr("width",self.graphWidth).attr("height",self.graphHeight).style("fill","#b1eff1")}};PMPieChart.prototype.setData=function(data){var self=this;self.rawData=data;var validdata=[];for(i in data){var row=data[i];var value=+row[self.valueField];if(value<0){}else{validdata.push(row)}}var data=validdata;if(Array.isArray(data)&&data.length){self.data=data;for(i in this.data){var row=this.data[i];var value=+row[self.valueField];self.data[i].$value=value;self.data[i].$name=row[self.nameField];self.dataCount++;self.dataSum+=value}for(var i=0;i<self.data.length;i++){self.data[i].percent=self.data[i].$value/self.dataSum*100;if(self.data[i].percent<self.smallSliceThreshold){self.data[i].issmall=1}else{self.data[i].issmall=0}}var cummulativePercent=0;for(var i=0;i<self.data.length;i++){cummulativePercent+=self.data[i].percent;self.data[i].cummulativePercent=cummulativePercent}for(var i=0;i<self.data.length;i++){var datum=self.data[i];if(typeof datum.color==="undefined"){datum.color=self.colors[i]}}for(var i=0;i<self.data.length;i++){var datum=self.data[i];var indexbefore=i-1;if(i==0){indexbefore=self.data.length-1}var indexafter=i+1;if(i==self.data.length-1){indexafter=0}var datumbefore=self.data[indexbefore];if(datumbefore.issmall){self.data[i].sliceBeforeIsSmall=1}else{self.data[i].sliceBeforeIsSmall=0}var datumafter=self.data[indexafter];if(datumafter.issmall){self.data[i].sliceAfterIsSmall=1}else{self.data[i].sliceAfterIsSmall=0}if(datum.issmall&&datumbefore.issmall&&datumafter.issmall){self.data[i].isInSmallCluster=1}else{self.data[i].isInSmallCluster=0}}var smallclusterposition=1;for(var i=0;i<self.data.length;i++){var datum=self.data[i];if(datum.isInSmallCluster){self.data[i].smallClusterPosition=smallclusterposition;smallclusterposition++}else{self.data[i].smallClusterPosition=0;smallclusterposition=1}}}else{throw"Invalid data."}};PMPieChart.prototype.setDisplayPercentInLabel=function(value){this.displayPercentInLabel=value};PMPieChart.prototype.setDisplayPercentInSlice=function(value){this.displayPercentInSlice=value};PMPieChart.prototype.setDisplayValuesInLabel=function(value){this.displayValueInLabel=value};PMPieChart.prototype.setDisplayValuesInSlice=function(value){this.displayValueInSlice=value};PMPieChart.prototype.setLabelGroup=function(){dx=0;dy=0;dx+=this.graphWidth/2;dy+=this.graphHeight/2;this.labelGroup=this.chartGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","labelGroup")};PMPieChart.prototype.setNameField=function(fieldname){this.nameField=fieldname.trim()};PMPieChart.prototype.setLegendFontSize=function(size){size=size.toString();size=size.replace(/\D+/g,"");this.legendFontSize=size};PMPieChart.prototype.setLegendType=function(legendtype){var legendType=legendtype.trim();legendType=legendType.toLowerCase();if(legendType=="block"||legendType=="singlelabels"||legendType=="none"){this.legendType=legendType;if(this.legendType=="block"){this.hasLegend=true}}else{throw"Invalid legend type"}};PMPieChart.prototype.setLegendPosition=function(position){var legendPosition=position.trim();legendPosition=legendPosition.toLowerCase();legendPosition=legendPosition.substr(0,1);if(legendPosition=="w"||legendPosition=="e"||legendPosition=="s"||legendPosition=="n"){this.legendPosition=legendPosition}else{throw"Invalid legend position"}};PMPieChart.prototype.setMargin=function(margin){if(Array.isArray(margin)&&margin.length==4){this.margin.top=margin[0];this.margin.right=margin[1];this.margin.bottom=margin[2];this.margin.left=margin[3]}else if(typeof margin=="object"&&margin.hasOwnProperty("top")&&margin.hasOwnProperty("bottom")&&margin.hasOwnProperty("right")&&margin.hasOwnProperty("left")){this.margin=margin}else{throw"Invalid margin."}this.width=this.fullwidth-this.margin.left-this.margin.right;this.height=this.fullheight-this.margin.top-this.margin.bottom;this.maxRadius=Math.min(this.width,this.height)/2;if(this.legendType=="singlelabels"||this.legendType=="none"){this.cx=this.width/2;this.cy=this.height/2}else{if(this.legendPosition=="e"){this.cx=this.margin.left+this.maxRadius;this.cy=this.margin.top+this.maxRadius;this.legendMargin={};for(i in this.margin){this.legendMargin[i]=this.margin[i]}this.legendMargin.left=this.margin.left+this.graphWidth}else if(this.legendPosition=="w"){this.cx=this.width-this.margin.right-this.maxRadius;this.cy=this.margin.top+this.maxRadius;if(this.hasTitle){this.cy+=this.titleHeight}this.legendMargin={};for(i in this.margin){this.legendMargin[i]=this.margin[i]}}else if(this.legendPosition=="n"){throw"Not implemented yet"}else if(this.legendPosition=="s"){this.cx=this.margin.left+this.maxRadius;this.cy=this.margin.top+this.maxRadius;this.legendMargin={};for(i in this.margin){this.legendMargin[i]=this.margin[i]}this.legendMargin.top=this.margin.top+this.graphWidth}}};PMPieChart.prototype.setLegendGroup=function(){var self=this;var dx=0;var dy=0;if(this.hasTitle){dy+=this.titleHeight}if(this.legendType=="block"){if(this.legendPosition=="w"){}else if(this.legendPosition=="e"){dx+=this.graphWidth}else if(this.legendPosition=="s"){dy+=this.graphHeight}}this.legendGroup=this.mainGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","legendGroup")};PMPieChart.prototype.setTitle=function(title){var newtitle=title.trim();if(newtitle.length){this.title=newtitle;this.hasTitle=true}};PMPieChart.prototype.setTitleFontSize=function(size){size=size.toString();size=size.replace(/\D+/g,"");this.titleFontSize=size};PMPieChart.prototype.setTitleGroup=function(){if(this.title==null||this.title.length==0){return}this.titleGroup=this.mainGroup.append("g").attr("transform","translate(0,0)").attr("class","titleGroup")};PMPieChart.prototype.setMainGroup=function(){var self=this;this.mainGroup=this.svg.append("g").attr("transform","translate("+this.margin.left+","+this.margin.top+")").attr("class","mainGroup");if(this.testing){this.mainGroup.append("rect").attr("x",0).attr("y",0).attr("width",self.width).attr("height",self.height).style("fill","#eedc72")}};PMPieChart.prototype.setValueField=function(fieldname){this.valueField=fieldname.trim()};PMPieChart.prototype.setValueGroup=function(){dx=0;dy=0;dx+=this.graphWidth/2;dy+=this.graphHeight/2;this.valueGroup=this.chartGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","valueGroup")};PMPieChart.prototype.setPercentGroup=function(){dx=0;dy=0;dx+=this.graphWidth/2;dy+=this.graphHeight/2;this.percentGroup=this.chartGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","percentGroup")};PMPieChart.prototype.setPie=function(){this.pie=d3.pie().sort(null).value(function(d){return d.$value})};PMPieChart.prototype.setSliceGroup=function(){dx=0;dy=0;dx+=this.graphWidth/2;dy+=this.graphHeight/2;this.sliceGroup=this.chartGroup.append("g").attr("transform","translate("+dx+","+dy+")").attr("class","sliceGroup")};PMPieChart.prototype.setType=function(type){var type=type.toLowerCase();type=type.trim();if(type=="pie"||type=="donut"){this.type=type}else{throw"Invalid type"}};Proj=function(){};Proj.prototype.earthRadius=6378137;Proj.prototype.eccentricity=.08181919131087181;Proj.prototype.meters2rad=function(m){return m/this.earthRadius};Proj.prototype.rad2meters=function(r){return this.earthRadius*r};Proj.prototype.deg2rad=function(d){return d*Math.PI/180};Proj.prototype.rad2deg=function(r){return r*180/Math.PI};alertp=function(point){alert(point.x+" "+point.y)};Proj.prototype.projectMiller=function(coords){var ret=new Object;ret.x=this.deg2rad(coords.x);ret.y=this.deg2rad(coords.y);ret=this.projectMillerRad(ret);ret.x=this.rad2meters(ret.x);ret.y=this.rad2meters(ret.y);return ret};Proj.prototype.projectMerc=function(coords){var ret=new Object;ret.x=this.deg2rad(coords.x);ret.y=this.deg2rad(coords.y);ret=this.projectMercRad(ret);ret.x=this.rad2meters(ret.x);ret.y=this.rad2meters(ret.y);return ret};Proj.prototype.projectEquirectangular=function(coords,parallel){var rc;var ret=new Object;if(parallel==null||parallel==37.5){rc=.793353340291235}else{rc=Math.cos(this.deg2rad(parallel))}ret.y=this.deg2rad(coords.y)*this.earthRadius;ret.x=this.deg2rad(coords.x)*rc*this.earthRadius;return ret};Proj.prototype.unprojectEquirectangular=function(coords,parallel){var rc;var ret=new Object;if(parallel==null||parallel==37.5){rc=.793353340291235}else{rc=Math.cos(this.deg2rad(parallel))}ret.y=this.rad2deg(coords.y/this.earthRadius);ret.x=this.rad2deg(coords.x/this.earthRadius/rc);return ret};Proj.prototype.projectDefault=function(coords){var ret=new Object;ret.x=this.rad2meters(this.deg2rad(coords.x));ret.y=this.rad2meters(this.deg2rad(coords.y));return ret};Proj.prototype.unprojectDefault=function(coords){var ret=new Object;ret.x=this.rad2deg(this.meters2rad(coords.x));ret.y=this.rad2deg(this.meters2rad(coords.y));return ret};Proj.prototype.unprojectMiller=function(coords){var ret=new Object;ret.x=this.meters2rad(coords.x);ret.y=this.meters2rad(coords.y);ret=this.unprojectMillerRad(ret);ret.x=this.rad2deg(ret.x);ret.y=this.rad2deg(ret.y);return ret};Proj.prototype.unprojectMerc=function(coords){var ret=new Object;ret.x=this.meters2rad(coords.x);ret.y=this.meters2rad(coords.y);ret=this.unprojectMercRad(ret);ret.x=this.rad2deg(ret.x);ret.y=this.rad2deg(ret.y);return ret};Proj.prototype.projectMillerRad=function(coords){var ret=new Object;ret.x=coords.x;ret.y=Math.log(Math.tan(Math.PI*.25+coords.y*.4))*1.25;return ret};Proj.prototype.projectMercRad=function(coords){var ret=new Object;var eConstant=Math.pow((1-this.eccentricity*Math.sin(coords.y))/(1+this.eccentricity*Math.sin(coords.y)),this.eccentricity*.5);ret.x=coords.x;ret.y=Math.log(Math.tan(Math.PI*.25+coords.y*.5)*eConstant);return ret};Proj.prototype.unprojectMillerRad=function(coords){var ret=new Object;ret.x=coords.x;ret.y=2.5*(Math.atan(Math.exp(.8*coords.y))-Math.PI*.25);return ret};Proj.prototype.unprojectMercRad=function(coords){var ret=new Object;var es=this.eccentricity*this.eccentricity;var es2=es*es;var es3=es2*es;var es4=es3*es;var Merc_ab=es*.5+5*es2/24+es3/12+13*es4/360;var Merc_bb=7*es2/48+29*es3/240+811*es4/11520;var Merc_cb=7*es3/120+81*es4/1120;var Merc_db=4279*es4/161280;var xphi=Math.PI*.5-2*Math.atan(1/Math.exp(coords.y));ret.y=xphi+Merc_ab*Math.sin(2*xphi)+Merc_bb*Math.sin(4*xphi)+Merc_cb*Math.sin(6*xphi)+Merc_db*Math.sin(8*xphi);ret.x=coords.x;return ret};PProjection=function(projId){this.proj=new Proj;if(projId)this.id=projId};PProjection.prototype.getId=function(){return this.id};PProjection.prototype.fromLatLngToMeters=function(point){if(point instanceof PLatLng)point=new PPoint(point.lng(),point.lat());var ret=null;if(this.id==54003)ret=this.proj.projectMiller(point);else if(this.id==54004)ret=this.proj.projectMerc(point);else ret=this.proj.projectDefault(point);if(ret!=null)return new PPoint(ret.x,ret.y);else return null};PProjection.prototype.fromLatLngToPixel=function(latlng,zoom){if(this.maptype&&this.maptype.map){var projPoint=this.fromLatLngToMeters(latlng);if(zoom){var currentScale=this.maptype.map.kamap.getCurrentScale();var scale=this.maptype.map.getScale(zoom);var factor=scale/currentScale;projPoint.x=projPoint.x*factor;projPoint.y=projPoint.y*factor}var pix=this.maptype.map.kamap.geoToPix(projPoint.x,projPoint.y);return new PPoint(pix[0],pix[1])}else return null};PProjection.prototype.fromMetersToLatLng=function(point){var ret=null;if(this.id==54003)ret=this.proj.unprojectMiller(point);else if(this.id==54004)ret=this.proj.unprojectMerc(point);else ret=this.proj.unprojectDefault(point);if(ret!=null)return new PLatLng(ret.y,ret.x);else return null};PProjection.prototype.fromPixelToLatLng=function(pixel,zoom){if(this.maptype&&this.maptype.map){var meters=this.maptype.map.kamap.pixToGeo(-pixel.x,-pixel.y);if(zoom){var currentScale=this.maptype.map.kamap.getCurrentScale();var scale=this.maptype.map.getScale(zoom);var factor=scale/currentScale;meters[0]=meters[0]*factor;meters[1]=meters[1]*factor}var metersPoint=new PPoint(meters[0],meters[1]);return this.fromMetersToLatLng(metersPoint)}else return null};function analyticsOnReady(){if(P.WKPrint.isPrintPage()===true){var printpage=new PrintPageSetup;printpage.setUpPrintPage()}function initializeGlobals(){map=new PMap(document.getElementById("map"));map.getLegend().setNumberOfBreaks(DEFAULT_NUMBREAKS);map.mapOptions=new TrfMapBoundaries($(".map-boundaries-menu"));map.addControl(new PLargeMapControl);map.enableDoubleClickZoom();map.enableScrollWheelZoom();map.disableKeyboard();printTemplate="PolicyMapAnalyticsPage";pmToolbar=new Toolbar;if(PEnvironment.isPolicyMap||!PEnvironment.isSiteLicense){pmToolbar.disable("share","(Not Available)")}legendContainer=new Array;indicatorLegend=new Array;legendMerger=new PLegendMerger(map);PEvent.addListener(map,"click",function(overlay,point){debug.log(P.Debug.DEBUG,point);PMIdentificationModule.clickHandler(overlay,point)});PEvent.addListener(map,"dblclick",function(){if(map.inPreview()){return}P.instances.map.cancelIdentify=true;P.instances.map.closeInfoWindow()})}function resizeMapContainer(){$mapContainer.css("height",$window.height()-$mapContainer.offset().top-$(".content__footer").height());if(P.instances.map!==undefined&&P.instances.map.kamap!==undefined){P.instances.map.kamap.resize();P.instances.map.setCenter(P.instances.map.getCenter());if(initialLoad==true){initialLoad=false;initializeMapLocation()}}$window.trigger(P.events.MAP_RESIZED)}function initializeCustomRegions(){polygonOptions=new PPolyCreatorOptions;polygonOptions.poly.weight=1;polygonOptions.poly.opacity=.5;polyCreator=polycreator=new PPolyCreator(polygonOptions);polyCreator.boundaryWidget=new PPolyCreatorBoundaryWidget(polyCreator);polyCreator.circleWidget=new PPolyCreatorCircleWidget(polyCreator);polyCreator.assembleInfoWidget=new PPolyCreatorAssembleInfoWidget(polyCreator);trfCustomRegions=new TrfCustomRegionsMenu(polyCreator,session);P.instances.trfCustomRegions=trfCustomRegions;trfCustomRegions.once("change",function loadRegionFromSession(){var boo=false;if(session.hasCenterAndZoom()){boo=true}var cids=session.get("cp");if(cids&&isSubscriber()){_.each(cids,function(customRegionId){trfCustomRegions.addCustomRegionById(customRegionId,boo)})}})}function addOverlaySetFiltersFromSession(overlaySet){if(overlaySet!=null){var filters=session.getFilters(overlaySet);if(filters){if(filters[0]&&filters[0].values[0]=="COLORCODE"){var ftrs=[];var displayfilters=overlaySet.displayfiltergroups[filters[0].name];var m=displayfilters.length;for(var j=0;j<m;j++){if(displayfilters[j].values[0]!="COLORCODE")ftrs.push(displayfilters[j])}overlaySet.setFiltersByIcons(ftrs,overlaySet.colorcodes);overlaySet.filtergroups[filters[0].name]=[];overlaySet.filtergroups[filters[0].name].push(filters[0])}else overlaySet.setFilters(filters)}for(var i=0;i<overlaySet.children.length;i++){addOverlaySetFiltersFromSession(overlaySet.children[i])}}return overlaySet}function getOverlaySetsFromSession(){var promises=[];if(session.get("o")){var oldOverlaySetIds=session.get("o").split(",");_.each(oldOverlaySetIds,function(oldOverlaySetId){var addFiltersToOverlaySetPromise=getOverlaySet(oldOverlaySetId,"old",true).then(addOverlaySetFiltersFromSession);promises.push(addFiltersToOverlaySetPromise)})}if(session.get("dlo")){var dataLoaderOverlaySetIds=session.get("dlo").split(",");_.each(dataLoaderOverlaySetIds,function(dataLoaderOverlaySetId){var addFiltersToOverlaySetPromise=getOverlaySet(dataLoaderOverlaySetId,"dl",true).then(addOverlaySetFiltersFromSession);promises.push(addFiltersToOverlaySetPromise)});if(_.size(dataLoaderOverlaySetIds)===1&&session.get("dloz")&&!session.get("o")){ajax.call({url:PEnvironment.pointUrl+"&act=b&did="+dataLoaderOverlaySetIds[0],success:function(response){var coords=response.site;if(coords.minx&&coords.miny&&coords.maxx&&coords.maxy){var sw=new PLatLng(coords.miny,coords.minx);var ne=new PLatLng(coords.maxy,coords.maxx);map.setCenterBounds(new PLatLngBounds(sw,ne));session.remove("dloz")}}})}}$.when.apply($,promises).then(function addOverlaySetsToMap(){var sets=[];for(var i=0;i<arguments.length;i++){if(arguments[i]==null){continue}var curSet=arguments[i];sets.push(curSet);for(var j=0;j<curSet.children.length;j++){sets.push(curSet.children[j])}}if(sets.length>0){map.setOverlaySets(sets);labelManager.updateMapLabels();var params=getUrlParams();if(params["iwx"]&&params["iwy"]&&params["iwtype"]=="identify"){PMIdentificationModule.showInfoWindow(params)}}})}function initializeAnalyticsLegends(){var $analyticsLegend=$(".legend--analytics");$analyticsLegend.find(".legend__toggle-icon").click(function toggleLegendSize(){if($analyticsLegend.hasClass("is-minimized")){$(this).removeClass("is-minimized");$analyticsLegend.removeClass("is-minimized")}else{$(this).addClass("is-minimized");$analyticsLegend.addClass("is-minimized")}});var $msg=$analyticsLegend.find(".legend__message");if($msg){$msg.find(".color-box").css("background","#"+getAnalyticsHexColor());$msg.find(".color-label").html(getAnalyticsColorLabel())}$legends.each(function(index){var $legend=$(this);var editButton=$legend.find(".legend__edit-button");editButton.click(function(event){event.preventDefault();$(this).toggleClass("is-active");$legend.find(".legend__indicators").toggle()});var pLegend=new PLegend;indicatorLegend.push(new PTRFIndicatorLegend(null,pLegend,{enableToggle:true,enableShade:true,enableRange:true,instanceId:"m"+index,editButton:editButton}))});indElms=$legends;for(var i=0;i<indElms.length;i++){indElms[i]=$(indElms[i]);var indToggle=indicatorLegend[i].getIndicatorToggle();var indicatorShade=indicatorLegend[i].getIndicatorShade();indicatorShade.disableDefault=true;var indicatorRange=indicatorLegend[i].getIndicatorRange();var indicatorValues=indicatorLegend[i].getIndicatorValues();legendContainer[i]=new PLegendContainer(indElms[i]);indicatorLegend[i].addListener("refresh",legendContainer[i].enable,legendContainer[i]);indicatorLegend[i].addListener("refresh",placeZoomSliderMarker,legendContainer[i]);indicatorLegend[i].addListener("clear",legendContainer[i].disable,legendContainer[i]);indicatorLegend[i].addListener("clear",placeZoomSliderMarker,legendContainer[i]);indicatorLegend[i].addListener("refresh",mapRefreshed);indicatorLegend[i].addListener("clear",mapRefreshed);var trfLegendIndicators=new TrfAnalyticsLegendIndicators(indElms[i],i);indToggle.addListener("refresh",trfLegendIndicators.refresh,trfLegendIndicators);indToggle.addListener("clear",trfLegendIndicators.clear,trfLegendIndicators);var rangeWidget=new PRangeWidget(indElms[i].find("#slider_container"));rangeWidget.addListener("update",indicatorRange.setRange,indicatorRange);rangeWidget.init();indicatorRange.addListener("refresh",rangeWidget.updateRange,rangeWidget);indicatorRange.addListener("enable",rangeWidget.enable,rangeWidget);indicatorRange.addListener("disable",rangeWidget.disable,rangeWidget);indicatorLegend[i].addListener("clear",rangeWidget.resetRange,rangeWidget);legendContainer[i].addListener("disable",rangeWidget.disable,rangeWidget);var valuesWidget=new PValuesWidget(indElms[i].find("#values_container"));valuesWidget.addListener("update",indicatorValues.toggleValues,indicatorValues);indicatorValues.addListener("change",valuesWidget.refresh,valuesWidget);indicatorValues.addListener("load",valuesWidget.refresh,valuesWidget);indicatorValues.addListener("enable",valuesWidget.enable,valuesWidget);indicatorValues.addListener("disable",valuesWidget.disable,valuesWidget);indicatorValues.addListener("clear",valuesWidget.clear,valuesWidget);legendContainer[i].addListener("disable",valuesWidget.disable,valuesWidget);var indInfo=new PIndicatorInfoWidget(indElms[i].find(".legend__title"));indInfo.index=i;indicatorLegend[i].addListener("refresh",indInfo.update,indInfo);indicatorLegend[i].addListener("clear",indInfo.clear,indInfo);var trfLegendShadeBy=new TrfLegendShadeBy(indElms[i].find(".legend__shading__shaded-by"),indElms[i].find(".legend__title__source__content"),indElms[i].find("#legend__shading__ranges"));indicatorShade.addListener("refresh",trfLegendShadeBy.update,trfLegendShadeBy);indicatorShade.addListener("clear",trfLegendShadeBy.clear,trfLegendShadeBy);trfLegendShadeBy.addListener("change",indicatorShade.changeShade,indicatorShade);legendContainer[i].init();legendContainer[i].disable();legendMerger.addLegend(indicatorLegend[i])}map.setLegendMerger(legendMerger);dataPointsLegend=new TrfDataPointsLegend($("#data-points-legend"),map);$(".legend__indicators select").chosen({disable_search:true,width:"122px"});var c=$("#map");$(".legend").draggable({containment:c,handle:"h2, .legend-content",scroll:false,stack:"#map, .legend, #theInsideLayer",zIndex:Strata.OVER_MAP0,drag:function(e,ui){if($(this).position().left!==0){$(this).removeClass("legend--docked")}if(ui.position.top<0){ui.position.top=0}$(this).css("height","auto")}})}var showAnalyticsWizard=function(){if(P.WKPrint.isPrintPage()===true){return}if(!session.get("m0i")&&!session.get("m1i")&&!session.get("m2i")&&(!session.get("hide3LayerMapWizard")||session.get("hide3LayerMapWizard")!=="true")){if(getSession("hide3LayerMapWizard")){}else{$wizard.height(Math.max($(document).height(),$(window).height()));$wizard.fadeIn("slow")}$wizard.find(".rounded-button").one("click",function(){if($wizard.find(".wizard__form__checkbox").prop("checked")){session.put("hide3LayerMapWizard",true);setSession("hide3LayerMapWizard",1)}$wizard.fadeOut()})}else{if(getSession("hide3LayerMapWizard")){}else{$wizard.height(Math.max($(document).height(),$(window).height()));$wizard.fadeIn("slow")}}};function analyticsRun(){taxonomyMenu=new TaxonomyMenu($(".taxonomy"),$(".taxonomy-menu"),debug,map);var searchOptions={taxonomyMenu:taxonomyMenu};initializeSearchForm(searchOptions);$window.on(P.events.MAP_CHECK_RESIZE,resizeMapContainer);$(".small-map-message").draggable({containment:"#map",scroll:false,stack:"#map, .legend, #theInsideLayer",drag:function(){if($(".small-map-message").css("bottom")==="0px"){$(".small-map-message").css("bottom","auto")}}});$(".map-options__reset").click(resetMapAlert);$(".map-options__clear-location").click(function(event){event.preventDefault();clearLocationAlert()});PEvent.addListener(polyCreator,"addpoly",function(points){polyCreator.showSaveInfoWindow(points[0])});PEvent.addListener(polyCreator,"savepoly",function(places){polyCreator.addSavedPoly(places)});$(".map-options__map-boundaries__current-overlays-toggle").click(function(event){event.preventDefault();mapOptions(this,true)});map.addListener("setindicator",function(){updateLegendPositionOnMap();var tmpLeg;for(var i=0;tmpLeg=legendMerger.getLegend(i);i++){var leg=tmpLeg.legend;leg.clearStoredScale();if(leg.getBoundaryType()&&tmpLeg.getIndicatorShade().getOldBoundaryTypeId()!=leg.getBoundaryType().id){tmpLeg.getIndicatorShade().setOldBoundaryTypeId(leg.getBoundaryType().id)}}taxonomyMenu.hide();mapRefreshed()});map.addListener("removeindicator",function(){taxonomyMenu.resetActiveRootNodes()});PEvent.addListener(map,"zoomstart",function(){for(var i=0;i<3;i++){var legend=legendMerger.getLegend(i);legend.refresh()}});PEvent.addListener(map,"zoomend",function(){session.put("curZoom",map.getZoom());map.mapOptions.populate();var tmpLeg;for(var i=0;tmpLeg=legendMerger.getLegend(i);i++){var leg=tmpLeg.legend;if(leg.getBoundaryType()&&tmpLeg.getIndicatorShade().getOldBoundaryTypeId()!=leg.getBoundaryType().id){tmpLeg.getIndicatorShade().setOldBoundaryTypeId(leg.getBoundaryType().id)}}mapRefreshed()});PEvent.addListener(P.instances.map,"moveend",function(){session.put("curLat",P.instances.map.getCenter().lat());session.put("curLng",P.instances.map.getCenter().lng());session.put("curZoom",P.instances.map.getZoom());labelManager.updateMapLabels();navteqCounter()});taxonomyMenu.on("show",function(){P.instances.map.mapOptions.hide();trfCustomRegions.hide()});trfCustomRegions.on("show",function(){P.instances.map.mapOptions.hide();taxonomyMenu.hide()});P.instances.map.mapOptions.on("show",function(){trfCustomRegions.hide();taxonomyMenu.hide()});taxonomyMenu.once("change",function(){loadAnalyticsFromSession()});showExpirationModal();var urlParams=getUrlParams();if(urlParams["ques"]&&urlParams["ans"]){if(urlParams["p"])selectPlace(urlParams["p"]);showAnswer(decodeURIComponent(urlParams["ques"]),decodeURIComponent(urlParams["ans"]))}}if(typeof index_delayed!="undefined"){index_delayed()}var $mapContainer=$("#map");var $window=$(window);var $legends=$(".analytics-legend__item");var dataPointsLegend;var initialLoad=true;var polygonOptions;var polyCreator;var trfCustomRegions;var debug=new P.Debug;var taxonomyMenu;var $wizard=$(".wizard");session.checkUrl();if(PEnvironment.isPolicyMap){platformRebuildPopup=new PlatformRebuildPopup}initializeGlobals();initializeAnalyticsLegends();disableWheelScrollPropagation(".taxonomy-menu__data-layers__column, .my-data-menu__favorites__content, .my-data-menu__shared-data__content, .legend__breakdown__container, .custom-regions-menu__content, .map-boundaries__national-boundaries__content, .map-boundaries__provincial-boundaries__content, .legend__data-points__category-item__filter-groups, .legend__data-points__category-item__filters");disableWheelScrollPropagation(".taxonomy-menu__data__submenu",".taxonomy-menu__data__submenu__content");disableWheelScrollPropagation(".values_container");setLegendScrollWheelHoverEvents();resizeMapContainer();initializeCustomRegions();$window.resize(resizeMapContainer);if(!isSubscriber()){$("#header, #content, .content__footer").addClass("is-shaded");$(window).on(P.events.LOGGED_IN,function(){debug.log(P.Debug.INFO,"login detected");analyticsRun();$("#header, #content, .content__footer").removeClass("is-shaded")});subscribeAlert()}else{analyticsRun()}if(productProperty.getValue("disable_dataloader")&&productProperty.exists("disable_dataloader_teaser")){$("#tab_dataloader").tooltip({title:productProperty.getValue("disable_dataloader_teaser"),placement:"right",container:"body",
trigger:"hover focus"})}$("#wizard_on").click(function(){$(this).hide();$wizard.height(Math.max($(document).height(),$(window).height()));$wizard.fadeIn("slow");deleteSession("hide3LayerMapWizard")});$("#3dlayermapwizardgetstarted").click(function(){$wizard.fadeOut("slow");if($wizard.find(".wizard__form__checkbox").prop("checked")){setSession("hide3LayerMapWizard",1)}$("#wizard_on").show()})}function alertSA(indicators,sites,place,question,answer){if(session.get("p")!=void 0||session.get("o")!=void 0||session.get("m0i")!=void 0||session.get("m1i")!=void 0||session.get("m2i")!=void 0){alerter.popup("Displaying a Sample Quick 3-Layer Map will clear any data layers or sites currently being displayed and change the map's location.<br /><br />Do you wish to continue?","No","Yes",function(){selectSA(indicators,sites,place,question,answer);return true})}else{selectSA(indicators,sites,place,question,answer)}}function selectSA(indicators,sites,placeId,question,answer){var indicatorIds=_.chain(indicators).pluck("id").first(3).value();$(".analytics-wizard").hide();resetAnalytics();var addToLegend=function(inds,selected,i,legend){var mva=false;if(indicators[i].mvaLayers!=null&&indicators[i].mvaLayers!=""&&indicators[i].mvaLayers!="null"){mva=true}if(mva){var values=[];for(var j=0;j<indicators[i].mvaLayers.length;j++){values.push(indicators[i].mvaLayers.charAt(j))}session.put("m"+i+"v","["+values+"]")}session.put("m"+i+"i",indicators[i].id);legend.setIndicatorList(inds,null,selected);if(indicators[i].timeFrame!=null&&indicators[i].timeFrame!=0){legend.getIndicator().setPeriod(indicators[i].timeFrame)}if(!mva){if(indicators[i].lowVal!=null&&indicators[i].lowVal!=0||indicators[i].highVal!=null&&indicators[i].highVal!=0){legend.getIndicatorRange().setRange([indicators[i].lowVal,indicators[i].highVal])}}legend.refresh()};var addSitesAndPlace=function(){if(sites!=null){}if(placeId){placeLoader.load([placeId],function(places){if(places.length>0){var addr=null;clearPolygons(map);var place=places[0];if(place instanceof PPlace){if(place&&place.getIdentifier()=="US"){var point=new PLatLng(P.constants.USA_LAT,P.constants.USA_LNG);map.setCenter(point,P.constants.USA_ZOOM)}else{map.setCenterBounds(place.getBounds())}mapstates.currentplace=place}}else{map.setCenter(new PLatLng(getDefaultMapLat(),getDefaultMapLng()),getDefaultMapZoom())}})}};var getIndArrAndSelected=function(indId){var indarr=[indId];var selected=null;var riaInds=ria[indId];if(riaInds){var indlist=riaInds.vars;if(indlist){indarr=indlist.split(",");var l=indarr.length;for(var j=0;j<l;j++){if(indId==indarr[j]){selected=j;break}}}}return{indarr:indarr,selected:selected}};for(var i=0;i<indicatorIds.length;i++){var ind=indicatorIds[i];var riaInds=ria[ind.id];var obj=getIndArrAndSelected(ind);var indarr=obj.indarr;var selected=obj.selected;var legend=legendMerger.getLegend(i);var loadInds=function(indarr,selected,index,legend){PIndicatorLoader.loadWithServices(indarr,function(inds){addToLegend(inds,selected,index,legend);if(index==indicatorIds.length-1){addSitesAndPlace();showAnswer(question,answer)}})};loadInds(indarr,selected,i,legend)}}function updateTitle(check){if(legendMerger.getIndicatorCount()>check)$("#maptitle").html("Purple Areas Show Intersections of Data Layers");else $("#maptitle").html("")}function unsupportedIndicator(callback){var text="We're sorry, but at this time PolicyMap Analytics cannot use this data layer as input.";alerter.popup(text,"OK")}function resetAnalytics(){for(var i=0;i<3;i++)legendMerger.clearIndicator(i);resetMap()}function showMapMessage(message){var $container=$(".map-message");var minRequireZoomLevel=analyticRenderZoomLevel();if(message){if(map.getZoom()>=minRequireZoomLevel){$container.fadeOut()}else{if($container[0].setup!=true){$container.bind("dblclick",function(e){map.kaToolCust.ondblclick(e)});$container.bind("mouseup",function(e){if(e.button==2)map.kaToolCust.onmouseup(e)});$container.bind("contextmenu",function(e){return false});$container[0].setup=true}var mapElm=$("#map");var pos=mapElm.position();$container.find(".map-message__content").html(message);$container.fadeIn()}}else{$container.fadeOut()}}function showSmallMapMessage(message){var $container=$(".small-map-message");var $close=$container.find(".small-map-message__close-icon");$close.off("click");$close.click(function(event){$.data($container[0],"is-disabled",true);$container.fadeOut(1e3)});if(message&&!$.data($container[0],"is-disabled")){$container.find(".small-map-message__content").html(message);$container.fadeIn(1e3)}else{$container.fadeOut(1e3)}}function showSmallMapMessageNoFade(message){var $container=$(".small-map-message");var $close=$container.find(".small-map-message__close-icon");$close.off("click");$close.click(function(event){$.data($container[0],"is-disabled",true);$container.hide()});if(message&&!$.data($container[0],"is-disabled")){$container.find(".small-map-message__content").html(message);$container.show()}else{$container.hide()}}function hideSmallMapMessage(){var $container=$(".small-map-message");if($container.length>0){$.data($container[0],"is-disabled",false);$container.fadeOut(1e3)}}function mapRefreshed(){var minRequireZoomLevel=analyticRenderZoomLevel();var tmpLeg;var c=getAnalyticsColorLabel();var msg=c+" areas on the map show locations where all criteria are met.";if(map.getZoom()<minRequireZoomLevel){showMapMessage("Zoom in to view the results.<br /><span class='map_message_content_smalltext'>The arrow on the zoom bar to the right indicates where data is viewable on the map.</span>");hideSmallMapMessage()}else if(minRequireZoomLevel===0){for(var i=0;tmpLeg=legendMerger.getLegend(i);i++){var leg=tmpLeg.legend;if(leg.getIndicator()){showSmallMapMessage(msg);showMapMessage(false);return}}hideSmallMapMessage();showMapMessage(false)}else{showSmallMapMessage(msg);showMapMessage(false)}}function analyticRenderZoomLevel(){var totalZooms=16;var minZoom=0;for(var i=0;i<legendMerger.getIndicatorCount();i++){var currentIndLegend=legendMerger.getLegend(i);if(!currentIndLegend.containsIndicator()||currentIndLegend.getIndicator()==null){continue}var currentLegend=currentIndLegend.legend;var currentType=currentLegend.getBoundaryType();if(currentLegend==null||currentType==null||currentLegend.allowTypeAlways(currentType)){continue}var foundType=false;for(var j=minZoom;j<totalZooms;j++){var zoomTypes=currentLegend.typeconfig.getTypeByAbsoluteZoom(j);if(zoomTypes instanceof Array){for(k=0;k<zoomTypes.length;k++){if(zoomTypes[k]==currentType){foundType=true;break}}}else{if(zoomTypes==currentType){foundType=true}}if(foundType==true){if(j>minZoom){minZoom=j}break}}}return minZoom}function placeZoomSliderMarker(){var totalZooms=map.getCurrentMapType().getScales().length;var barHeight=8;var zoomLevel=analyticRenderZoomLevel();if(zoomLevel==0){zoomMarker=$("#zoommarker");if(zoomMarker.length>0){zoomMarker.fadeOut()}return}var whichBar=totalZooms-zoomLevel;var zoomSlider=$("#zoomTrack");var zoomSliderPos=getObjectPosition(zoomSlider[0]);var zoomMarkerLeft=zoomSliderPos[0]+zoomSlider.width();var zoomMarkerTop=zoomSliderPos[1]+barHeight*(whichBar-1)-4;var zoomMarker=$("#zoommarker");if(zoomMarker.length==0){zoomMarker=$("<div />");zoomMarker.attr("id","zoommarker");zoomMarker.css({display:"none",position:"absolute","z-index":Strata.MAP_CONTROLS});zoomMarkerImage=$("<img />");zoomMarkerImage.attr("src","/images/analytic_zoom_marker.png");zoomMarker.append(zoomMarkerImage);$("body").append(zoomMarker)}else{zoomMarker.hide()}zoomMarker.css({left:zoomMarkerLeft,top:zoomMarkerTop});zoomMarker.fadeIn()}function getAnalyticsHexColor(){var c="5D4770";if(isCBClone()&&P.CloneOptions.analytics_color){c=P.CloneOptions.analytics_color}return c}function getAnalyticsColorLabel(){var l="Purple";if(isCBClone()&&P.CloneOptions.analytics_color_label){l=P.CloneOptions.analytics_color_label}return l}function getAnalyticsIndicators(){var indicators=[];for(var i=0;i<legendMerger.indicatorLegends.length;i++){var legend=legendMerger.getLegend(i);if(legend.containsIndicator()){var indicator=legend.getIndicator();if(indicator!=null){indicators.push(indicator)}}}return indicators}function loadAnalyticsFromSession(){var map=P.instances.map;var legendMerger=P.instances.map.getLegendMerger();var indlegends=legendMerger.indicatorLegends;var pLatLng=map.getCenter();if(session.get("curLat")&&session.get("curLng")&&session.get("curZoom")){map.setCenter(new PLatLng(session.get("curLat"),session.get("curLng")),session.get("curZoom"))}if(typeof ria!=="undefined"){if(session.get("m0i")&&ria[session.get("m0i")]!==void 0){selectIndicators.call({prefLegend:0},session.get("m0i"));if(session.get("m0r0")&&session.get("m0r1")){indicatorLegend[0].getIndicatorRange().setRange([parseFloat(session.get("m0r0")),parseFloat(session.get("m0r1"))])}}if(session.get("m1i")&&ria[session.get("m1i")]!==void 0){selectIndicators.call({prefLegend:1},session.get("m1i"));if(session.get("m1r0")&&session.get("m1r1")){indicatorLegend[1].getIndicatorRange().setRange([parseFloat(session.get("m1r0")),parseFloat(session.get("m1r1"))])}}if(session.get("m2i")&&ria[session.get("m2i")]!==void 0){selectIndicators.call({prefLegend:2},session.get("m2i"));if(session.get("m2r0")&&session.get("m2r1")){indicatorLegend[2].getIndicatorRange().setRange([parseFloat(session.get("m2r0")),parseFloat(session.get("m2r1"))])}}getOverlaySetsFromSession();map.mapOptions.loadMapOptionsFromSession()}}PPlaceTypeConfig=function(){this.zooms=[]};PPlaceTypeConfig.prototype.setTypeByAbsoluteZoom=function(zoom,type){this.zooms[zoom]=type};PPlaceTypeConfig.prototype.getTypeByAbsoluteZoom=function(zoom,inCurrentMatrix){inCurrentMatrix=inCurrentMatrix===true;if(this.zooms[zoom]&&(!inCurrentMatrix||inCurrentMatrix&&boundaryMatrix.isTypeIdInMatrix(this.zooms[zoom].getId()))){return this.zooms[zoom]}else{for(var i=zoom;i>=0;i--){if(this.zooms[i]&&(!inCurrentMatrix||inCurrentMatrix&&boundaryMatrix.isTypeIdInMatrix(this.zooms[i].getId()))){return this.zooms[i]}}return false}};PPolyline=function(points,color,weight,opacity,callbacks){this.points=points;if(color!=null)this.color=color;else this.color="#eb5920";if(weight!=null)this.weight=weight;else this.weight=5;if(opacity!=null)this.opacity=opacity;else this.opacity=.7;if(callbacks!=null)this.callbacks=callbacks;this.attributes=[]};PPolyline.prototype.setStyle=function(color,weight,opacity,fill,fillopacity){if(color)this.color=color;if(weight)this.weight=weight;if(opacity)this.opacity=opacity;if(fill)this.fill=fill;if(fillopacity||fillopacity==0)this.fillopacity=fillopacity;if(this.map){if(this.line.canvas&&this.line.canvas.tagName=="svg"&&this.line.canvas.childNodes[0]){if(color)this.line.canvas.childNodes[0].setAttribute("stroke",color);if(weight)this.line.canvas.childNodes[0].setAttribute("stroke-width",weight);if(opacity)this.line.canvas.childNodes[0].setAttribute("stroke-opacity",opacity);if(fill)this.line.canvas.childNodes[0].setAttribute("fill",fill);if(fillopacity||fillopacity==0)this.line.canvas.childNodes[0].setAttribute("fill-opacity",fillopacity)}else{this.map.removePoly(this);this.map.addPoly(this)}}};PPolyline.prototype.getVertexCount=function(){var cnt=this.points.length;if(this.points[0]==this.points[cnt-1])cnt--;return cnt};PPolyline.prototype.getVertex=function(index){return this.points[index]};PPolyline.prototype.deleteVertex=function(index){if(this.points[index])this.points.splice(index,1);if(this.map){this.map.removePoly(this);this.map.addPoly(this)}};PPolyline.prototype.insertVertex=function(index,point){if(this.points[index])this.points.splice(index,0,point);if(this.map){this.map.removePoly(this);this.map.addPoly(this)}};PPolyline.prototype.addAttribute=function(attribute){this.attributes.push(attribute)};PPolyline.prototype.removeAttribute=function(name){for(var i=0;i<this.attributes.length;i++){if(this.attributes[i].name==name)this.attributes.splice(i,1);break}};PPolyline.prototype.getAttribute=function(name){for(var i=0;i<this.attributes.length;i++){if(this.attributes[i].name==name)return this.attributes[i]}return null};PPolyline.prototype.setAttributes=function(attributes){this.attributes=attributes};PPolyline.prototype.getAttributes=function(){return this.attributes};PPolyline.prototype.getPlacesWithin=function(placetype,matrixId,defId,callback,overlap,maxResults,order){(new PClientGeocoder).getPlacesWithin(this.points,placetype,matrixId,defId,callback,overlap,maxResults,order)};PPolyline.prototype.getPlacesContaining=function(placetype,matrixId,defId,callback,overlap,maxResults,order){(new PClientGeocoder).getPlacesContaining(this.points,placetype,matrixId,defId,callback,overlap,maxResults,order)};PPolyline.prototype.getMarkersWithin=function(overlayset,callback){(new PClientGeocoder).getMarkersWithin(this.points,overlayset,callback)};PPolyline.prototype.getMarkersWithinCSV=function(ids){(new PClientGeocoder).getMarkersWithinCSV(this.points,ids)};PPolyline.prototype.getCentroid=function(){var sumx=0;var sumy=0;var numPts=this.points.length;for(var i=0;i<numPts;i++){sumx+=this.points[i].lng();sumy+=this.points[i].lat()}return new PLatLng(sumy/numPts,sumx/numPts)};PPolyline.prototype.getBounds=function(){var minx=this.points[0].lng();var miny=this.points[0].lat();var maxx=this.points[0].lng();var maxy=this.points[0].lat();var numPts=this.points.length;for(var i=0;i<numPts;i++){var x=this.points[i].lng();var y=this.points[i].lat();if(x<=minx)minx=x;if(x>maxx)maxx=x;if(y<=miny)miny=y;if(y>maxy)maxy=y}return new PLatLngBounds(new PLatLng(miny,minx),new PLatLng(maxy,maxx))};PSmallZoomControl=function(){};PSmallZoomControl.prototype.attach=function(map){var kamap=map.kamap;this.zoomContainer=document.createElement("div");this.zoomContainer.id="zoomControl";this.zoomContainer.className="zoom-small-control";this.zoomContainer.style.zIndex=Strata.MAP_CONTROLS;this.zoomin=document.createElement("div");this.zoomout=document.createElement("div");this.zoomContainer.appendChild(this.zoomin);this.zoomContainer.appendChild(this.zoomout);var zoomSprite=kamap.server+"images/zoom_buttons.png";this.zoomin.title="Zoom in";this.zoomin.className="map-control zoom-in";this.zoomin.style.cursor="pointer";this.zoomin.style.MozUserSelect="none";var img=document.createElement("div");img.className="icon";img.style.backgroundImage='url("/images/zoom-plus.svg")';this.zoomin.appendChild(img);this.zoomout.title="Zoom out";this.zoomout.className="map-control zoom-out";this.zoomout.style.cursor="pointer";this.zoomout.style.MozUserSelect="none";var img=document.createElement("div");img.className="icon";img.style.backgroundImage='url("/images/zoom-minus.svg")';this.zoomout.appendChild(img);PEvent.addListener(this.zoomin,"mouseup",function(){kamap.zoomIn()});PEvent.addListener(this.zoomout,"mouseup",function(){kamap.zoomOut()});kamap.domObj.appendChild(this.zoomContainer);this.marginLeft=7};PSmallZoomControl.prototype.remove=function(map){var kamap=map.kamap;PEvent.clearInstanceListeners(this.zoomin);kamap.domObj.removeChild(this.zoomin);PEvent.clearInstanceListeners(this.zoomout);kamap.domObj.removeChild(this.zoomout)};P=function(){throw"This is not a class. Do not instantiate it."};P.instances={};P.data={};P.errors=[];P.versions={};P.events={};P.events.MAP_RESIZED="map_resized_event";P.events.MAP_CHECK_RESIZE="map_check_resize_event";P.events.MAP_RESET="map_reset_event";P.events.MAP_REFRESHED="map_refresh_event";P.events.SEARCH_BOX_INIT="search_box_init_event";P.events.ACCOUNT_SECTION_INIT="account_section_init_event";P.events.LOGGED_IN="login_event";P.events.LOGGED_OUT="logout_event";P.events.NOTIFICATION_STARTED="notification_start_event";P.events.NOTIFICATION_STOPPED="notification_stop_event";P.events.ASYNCHRONOUS_ERROR="asynchronous_error_event";P.events.PIN_TAXONOMY_LOADED="pin_taxonomy_loaded_event";P.events.MAP_CREATED="map_created";P.events.MAP_SCROLL_ENABLED="map_scroll_enabled";P.events.GOOGLE_MAP_LOADED="google_map_loaded";P.events.LEGEND_UPDATED="legend_updated";P.events.OVERLAYSET_FILTER_CHANGED="overlayset_filter_changed";P.events.OVERLAYSET_RENDER_SERVER_DONE="overlayset_render_server_done";P.events.CURRENT_MAP_BOUNDARIES_UPDATED="current_map_boundaries_updated";P.events.MAP_BOUNDARIES_INITIALIZED="map_boundaries_initialized";P.events.MY_SAVED_WORK_CUSTOM_REGIONS_CHANGE="my_saved_work_custom_regions_change_event";P.events.MY_SAVED_WORK_DELETE_CUSTOM_REGION="my_saved_work_delete_custom_region";P.events.TEMPLATE_REPORT_LOADED="template_report_loaded";P.events.MODAL_POPUP="modal_popup";P.events.COLOR_RAMP_CHANGED="color_ramp_changed";P.constants={};P.constants.USA_LAT=37.6902;P.constants.USA_LNG=-96.9129;P.constants.USA_ZOOM=3;P.constants.TAXONOMY_TYPE_LAYERS=1;P.constants.TAXONOMY_TYPE_POINTS=2;P.constants.CONTINENTAL_US_EXTENT=[25.040823196216373,-125.9947303584514,49.57141580359143,-65.75733319472725];P.constants.sessionCookie="_sessionId";P.constants.sessionCookieName="SESSIONID";P.constants.sessionExpirationNote="exp_note";P.constants.sessionUsername="_useremail";P.constants.firstName="_firstName";P.constants.userId="_userid";P.constants.userType="_userType";P.constants.userTypeId="_usertypeid";P.constants.isTrial="_trial";P.constants.isAutoLoginUser="_alu";P.constants.dlDisabled="_dlDisabled";P.constants.trackingStore="trackingStore";P.constants.isKeyboardAccessOn=false;P.constants.alternateACSPeriod="2011-2015";P.constants.latestACSPeriod="2015-2019";P.constants.latestACSEndPeriod="2019";P.constants.range2012_2016="2012-2016";P.constants.oldestACSPeriod="2010-2014";P.constants.oldestACSEndPeriod="2014";P.constants.latestHMDAEndPeriod="2019";P.constants.webKitPrintService="webkit";P.constants.initialLoad=false;P.constants.limitMetroAreaCBSA=1;P.constants.limitMetroAreaMD=2;P.constants.subscriptionTypeIds={trial:1,standard:2,premium:3};P.constants.infoWindowTypePlace="place";P.constants.infoWindowTypeIdentify="identify";P.constants.infoWindowTypeAddress="address";P.constants.infoWindowTypeCustomRegion="cp";P.constants.UMTRANSIT_DATASET_ID=84150;P.Tracking=function(){this.version=4;this.store=[];this.debug=new P.Debug;this.debug.override("TRK");this.sessionId=this.debug.getCookie("JSESSIONID");this.frequency=1;this.maxAttempts=10;this.sendToGoogle=true;this.GAQueue=[];this.GALoaded=false};P.Tracking.eventTypes=[];P.Tracking.eventTypes.LOAD="load";P.Tracking.eventTypes.SELECT="select";P.Tracking.eventTypes.CLICK="click";P.Tracking.eventTypes.ERROR="error";P.Tracking.eventTypes.LOGIN="login";P.Tracking.eventTypes.LOGOUT="logout";P.Tracking.eventTypes.ADD_INDICATOR="add_indicator";P.Tracking.eventTypes.REMOVE_INDICATOR="remove_indicator";P.Tracking.eventTypes.ADD_DATASET="add_dataset";P.Tracking.eventTypes.REMOVE_DATASET="remove_dataset";P.Tracking.eventTypes.INDICATOR_YEAR="indicator_year";P.Tracking.eventTypes.KEYBOARD_ENTER="keyboard_enter";P.Tracking.eventTypes.ASYNCHRONOUS_REQUEST_SEND="asynchronous_request_send";P.Tracking.eventTypes.ASYNCHRONOUS_REQUEST_RETURN="asynchronous_request_return";P.Tracking.eventTypes.REPORT="report";P.Tracking.eventTypes.EXPORT_TOOL_DOWNLOAD="export_tool_download";P.Tracking.prototype.setup=function(){var self=this;this.setup=[{type:"jQuery",element:document,name:"document ready",event:"ready",check:"jQuery.isReady",callback:function(){self.track(P.Tracking.eventTypes.LOAD)}},{type:"jQuery",selector:"#satellite",name:"#satellite",event:"click",callback:function(){self.track(P.Tracking.eventTypes.CLICK,{button:"satellite"})}},{type:"PEvent",variable:"P.instances.map",name:"map setindicator",event:"setindicator",callback:function(ind){if(ind!=null&&ind.id!=null){var metadata={indicator_id:ind.id};if(typeof P.instances.searchItem!="undefined"){metadata.search={string:P.instances.searchItem.searchTerm};delete P.instances.searchItem}self.track(P.Tracking.eventTypes.ADD_INDICATOR,metadata)}}},{type:"PEvent",variable:"P.instances.map",name:"map removeindicator",event:"removeindicator",callback:function(ind){if(ind!=null&&ind.id!=null){self.track(P.Tracking.eventTypes.REMOVE_INDICATOR,{indicator_id:ind.id})}}},{type:"PEvent",variable:"P.instances.map",name:"map addoverlayset",event:"addoverlayset",callback:function(set){var metadata={dataset_id:set.id,dataset_type:set.type};if(typeof P.instances.searchItem!="undefined"){metadata.search={string:P.instances.searchItem.searchTerm};delete P.instances.searchItem}self.track(P.Tracking.eventTypes.ADD_DATASET,metadata)}},{type:"PEvent",variable:"P.instances.map",name:"map removeoverlayset",event:"removeoverlayset",callback:function(set){if(set!=null&&set.id!=null){self.track(P.Tracking.eventTypes.REMOVE_DATASET,{dataset_id:set.id,dataset_type:set.type})}}},{type:"jQuery",selector:"#legend__year-select",name:"indicator year",event:"change",callback:function(set){if(set!=null&&set.id!=null){self.track(P.Tracking.eventTypes.INDICATOR_YEAR,{dataset_id:$(this).val()})}}}];this.setupIterator=0;this.interval=window.setInterval(function(){self.setupTimeout()},self.frequency*1e3);this.notificationFound=false;if(typeof noNotifications==="undefined"){if(typeof notification!=="undefined"){this.notificationFound=true}else{this.debug.log(P.Debug.DEBUG2,"Starting tracking listener for notification start");$(window).on(P.events.NOTIFICATION_STARTED,function(){self.debug.log(P.Debug.DEBUG2,"Notification found");self.notificationFound=true})}}this.setupLength=this.setup.length;this.setupTimeout()};P.Tracking.prototype.setupTimeout=function(){this.setupIterator++;this.debug.log(P.Debug.DEBUG4,"setupTimeout interation "+this.setupIterator);var i;for(i=0;i<this.setup.length;i++){if(typeof this.setup[i].done==="undefined"){this.setup[i].done=false}else if(this.setup[i].done===true){continue}var selector;var variable;var isDocument=false;if(typeof this.setup[i].element!=="undefined"){if(this.setup[i].element===document){isDocument=true}selector=$(this.setup[i].element)}else if(typeof this.setup[i].selector!=="undefined"){selector=$(this.setup[i].selector)}else if(typeof this.setup[i].variable!=="undefined"){variable=eval(this.setup[i].variable);selector=$(variable)}else{throw"Unknown tracking type."}if(selector.length>0){this.debug.log(P.Debug.DEBUG4,"Setting up listener for the '"+this.setup[i].name+"' selector.");if(this.setup[i].type==="jQuery"){if(isDocument===true&&this.setup[i].event==="ready"){selector.ready(this.setup[i].callback)}else{selector.on(this.setup[i].event,this.setup[i].callback)}}else if(this.setup[i].type==="PEvent"){PEvent.addListener(variable,this.setup[i].event,this.setup[i].callback)}if(typeof this.setup[i].check!=="undefined"&&eval(this.setup[i].check)===true){this.setup[i].callback.call()}this.setup[i].done=true;this.setupLength--}else{this.debug.log(P.Debug.DEBUG4,"'"+this.setup[i].name+"' selector not yet available. Re-trying again")}}if(this.setupIterator===this.maxAttempts){var objects="";for(i=0;i<this.setup.length;i++){if(this.setup[i].done===false){objects+="  '"+this.setup[i].name+"'"}}this.debug.log(P.Debug.DEBUG4,"Giving up timed setup of "+this.setupLength+" objects:"+objects);window.clearInterval(this.interval)}for(i=0;i<this.setup.length;i++){if(this.setup[i].done===false){return}}if(this.notificationFound===false){return}this.debug.log(P.Debug.DEBUG4,"All setup objects done and notification was found.");window.clearInterval(this.interval)};P.Tracking.prototype.track=function(eventType,metadata){if(typeof eventType==="undefined"){throw"Unknown event type: "+eventType}if(typeof metadata=="undefined"||metadata==null){metadata={}}var currentSessionId=this.debug.getCookie("JSESSIONID");if(currentSessionId!=this.sessionId){metadata.sessionIdChanged=true;metadata.previousSessionId=this.sessionId;this.sessionId=currentSessionId}var store={metadata:{page:window.location.pathname+window.location.search,userAgent:navigator.userAgent,product:{isSiteLicense:PEnvironment.isSiteLicense,isClone:PEnvironment.isClone,isWidget:PEnvironment.isWidget},session:session.data,screen:{width:window.screen.width,height:window.screen.height}},version:this.version,eventType:eventType};if(metadata!=null){for(var i in metadata){store.metadata[i]=metadata[i]}}this.store.push(store);if(this.sendToGoogle===true){if(eventType===P.Tracking.eventTypes.ADD_INDICATOR){this.ga("send","event","ajax",eventType,"indicator_id",metadata.indicator_id)}else if(eventType===P.Tracking.eventTypes.REMOVE_INDICATOR){this.ga("send","event","ajax",eventType,"indicator_id",metadata.indicator_id)}else if(eventType===P.Tracking.eventTypes.ADD_DATASET){this.ga("send","event","ajax",eventType,"dataset_id",metadata.dataset_id)}else if(eventType===P.Tracking.eventTypes.REMOVE_DATASET){this.ga("send","event","ajax",eventType,"dataset_id",metadata.dataset_id)}else if(eventType===P.Tracking.eventTypes.INDICATOR_YEAR){this.ga("send","event","ajax",eventType,"dataset_id",metadata.dataset_id)}else if(eventType===P.Tracking.eventTypes.REPORT){if(metadata.reportObject){if(metadata.reportObject.type){this.ga("send","event","ajax",eventType,"type",metadata.reportObject.type)}if(metadata.reportObject.locationType){this.ga("send","event","ajax",eventType,"location",metadata.reportObject.locationType)}if(metadata.reportObject.pid){this.ga("send","event","ajax",eventType,"pid",metadata.reportObject.pid)}if(metadata.reportObject.url){this.ga("send","event","ajax",eventType,"url",metadata.reportObject.url)}}}else if(eventType===P.Tracking.eventTypes.CLICK){this.ga("send","event","ajax",eventType,"click",metadata.button)}else if(eventType===P.Tracking.eventTypes.ERROR){if(metadata.trackingObject){if(metadata.trackingObject.error){this.ga("send","event","error",eventType,"message",metadata.trackingObject.error)}}}}};P.Tracking.prototype.ga=function(args){if(this.GALoaded===true){ga(args[0],args[1],args[2],args[3],args[4],args[5])}else{this.GAQueue.push(args)}};P.Tracking.prototype.processGAQueue=function(){this.GALoaded=true;for(var i=0;i<this.GAQueue.length;i++){var args=this.GAQueue.length[i];ga(args[0],args[1],args[2],args[3],args[4],args[5])}};P.Tracking.prototype.dump=function(){var store=this.store;delete this.store;this.store=[];return store};P.Ajax=function(){var self=this;this.debug=new P.Debug;this.numRequests=0;this.callbacks=[];this.activeRequests=0;$(window).bind(P.Ajax.requestDoneTrigger,function(){if(self.activeRequests==0){$(window).trigger(P.Ajax.noPendingRequestsTrigger)}});this.target="onload";this.referrer=document.referrer;this._preventRedirect=false;$(document).on("click",function(e){self.target=$($("<div></div>").html($(e.target).clone())).html()})};P.Ajax.requestNewTrigger="asyncRequestNew";P.Ajax.requestDoneTrigger="asyncRequestDone";P.Ajax.noPendingRequestsTrigger="asyncRequestNone";P.Ajax.statusFailure=1;P.Ajax.statusSuccess=2;P.Ajax.prototype.preventRedirect=function(){this._preventRedirect=true};P.Ajax.prototype.errorHandler=function(data,callbacksObj){if(typeof data=="undefined"||data==null){throw new Error("Data received from ajax request was null or undefined. Tracking Code: "+callbacksObj.options.trackingCode)}var sessionId=session.get(P.constants.sessionCookie);var requestSessionId=this.debug.getCookie(P.constants.sessionCookieName);if(sessionId!=null&&requestSessionId!=null&&sessionId!=requestSessionId){this.debug.log(P.Debug.DEBUG,"Session ID changed during AJAX request");session.put(P.constants.sessionCookie,requestSessionId);session.purge();session.load();return true}if(this._preventRedirect===false&&productProperty.getValue("require_login")==true&&(typeof data=="undefined"||typeof data.userId!="undefined"&&session.get("_userid")!=data.userId)){setWindowLocation("/login?m=1");return true}if(this._preventRedirect===false&&productProperty.getValue("auto_login")==true&&productProperty.getValue("allow_login")==true&&typeof data!="undefined"&&typeof data.userId!="undefined"&&session.get("_userid")!=data.userId){setWindowLocation("/maps");return true}var userTypeId=session.get(P.constants.userTypeId);if(this._preventRedirect===false&&typeof data.loginState!="undefined"&&data.loginState!=null&&userTypeId!=null&&userTypeId!=""&&data.loginState!=userTypeId){setWindowLocation("/");return true}if(typeof data!="undefined"&&typeof data.versions!="undefined"&&data.versions!=null&&pageReloading===false){for(var i in P.versions){if(data.versions[i]!=P.versions[i]){console.log(i+" version didn't match. data.versions["+i+"]: "+data.versions[i]+", P.versions["+i+"]: "+P.versions[i]);showVersionChangeModal();return true}}}if(data&&data.responseCode&&data.responseCode!=200){var errorText="Ajax class built in error handler: ";if(data.errors){errorText+="\r\n";for(var i in data.errors){P.errors.push(data.errors[i]);errorText+="\r\nCode: "+data.errors[i].error.errorCode+"\r\nMessage: "+data.errors[i].error.message;if(data.errors[i].error.logId!=null){errorText+="\nlogId: "+data.errors[i].error.logId}errorText+="\r\n"}}else{errorText+='No "errors" node present.'}this.debug.log(P.Debug.DEBUG,errorText);data.url=callbacksObj.options.url;data.target=this.target;data.referrer=this.referrer;errorPopup(data);return true}else{return false}};P.Ajax.prototype.call=function(options){var self=this;var requestId=++this.numRequests;var callbacksObj;if(options.processed==null){var delim;callbacksObj={success:null,context:null,pleaseWait:true,hasUndefined:false,recycle:false,requestId:requestId,undefinedCheck:{}};if(options.dataType==null){options.crossDomain=true;options.dataType="jsonp";options.jsonp="c"}else if(options.dataType==="json"&&options.url!=null&&(options.url.indexOf("/servlets/")!==-1||options.url.indexOf("/rest/")!==-1)){delim=this.getDelim(options.url);options.url+=delim+"_f=j"}if(options.noars!=true){delim=this.getDelim(options.url);options.url+=delim+"ars=1"}callbacksObj.success=options.success;if(options.error!=null){callbacksObj.error=options.error}if(options.url.indexOf("sid=")===-1){if(options.type==="post"||options.type==="POST"){if(typeof options.data==="object"&&options.data!=null){options.data.sid=PEnvironment.productId}else if(typeof options.data==="string"){try{var data=JSON.parse(options.data);data.sid=PEnvironment.productId;options.data=JSON.stringify(data)}catch(e){delim=this.getDelim(options.data);options.data+=delim+"sid="+PEnvironment.productId}}else{delim=this.getDelim(options.url);options.url+=delim+"sid="+PEnvironment.productId}}delim=this.getDelim(options.url);options.url+=delim+"sid="+PEnvironment.productId}var trackingDate=(new Date).getTime();options.trackingCode=hex_md5(options.url+trackingDate)+trackingDate;delim=this.getDelim(options.url);options.url+=delim+"trackingCode="+options.trackingCode;if(options.context!=null){callbacksObj.context=options.context;delete options.context}if(options.pleaseWait!=null){callbacksObj.pleaseWait=options.pleaseWait}options.success=function(data){self._callback(requestId,P.Ajax.statusSuccess,options,data)};options.error=function(data,statusText){self._callback(requestId,P.Ajax.statusFailure,options,data.responseText,statusText)};callbacksObj.options=options;options.url=this.checkUndefined(options.url,callbacksObj,"url");if(typeof options.data==="string"){options.data=this.checkUndefined(options.data,callbacksObj,"data")}if(callbacksObj.hasUndefined===true){var originalUrl="";var originalData="";var caughtError;try{var errorString="Deliberate error to get stack trace due to 'undefined' in ajax request in: ";if(typeof callbacksObj.undefinedCheck["url"]!="undefined"){originalUrl=callbacksObj.undefinedCheck["url"];errorString+="query string "}if(typeof callbacksObj.undefinedCheck["data"]!="undefined"){originalData=callbacksObj.undefinedCheck["data"];errorString+="post data"}throw new Error(errorString)}catch(e){caughtError=e}var logId=makeJSLogId();if(P.instances.wkprint.isPrintPage()===false){P.instances.tracking.track(P.Tracking.eventTypes.ERROR,{error:{message:caughtError.message,stack:caughtError.stack},target:self.target,referrer:self.referrer,url:options.url||"",originalUrl:originalUrl,postdata:options.data||"",originalPostData:originalData,logId:logId})}}if(options.url.length>2e3){options.type="POST"
;options.crossDomain=false;var urlsplit=options.url.split("?");options.url=urlsplit[0];options.data=urlsplit[1]}this.callbacks[requestId]=callbacksObj;callbacksObj.processed=true}else{callbacksObj=options;options=options.options}if(P.WKPrint.isPrintPage()===true){console.log("Ajax.call for request id "+requestId+": "+options.url);P.instances.wkprint.addAction("AjaxAction"+requestId)}var jqXHR=$.ajax(options);if(callbacksObj.pleaseWait===true){this.activeRequests++;$(window).trigger(P.Ajax.requestNewTrigger)}return jqXHR};P.Ajax.prototype.checkUndefined=function(string,callbacksObj,type){if(string.indexOf("=undefined")!==-1){if(typeof callbacksObj.undefinedCheck[type]=="undefined"){callbacksObj.undefinedCheck[type]=string}string=string.slice(0,string.indexOf("=undefined")+1)+string.slice(string.indexOf("=undefined")+10);callbacksObj.hasUndefined=true;return this.checkUndefined(string,callbacksObj,type)}return string};P.Ajax.prototype._decrement=function(requestId,error){if(this.callbacks[requestId].pleaseWait===true){this.activeRequests--;$(window).trigger(P.Ajax.requestDoneTrigger)}if(P.WKPrint.isPrintPage()===true){P.instances.wkprint.removeAction("AjaxAction"+requestId,error)}delete this.callbacks[requestId]};P.Ajax.prototype._contextCheck=function(callback,callbacksObj,data,statusText){if(callbacksObj.context!=null){callback.call(callbacksObj.context,data,statusText)}else{callback(data,statusText)}};P.Ajax.prototype.getDelim=function(text){var delim="&";if(text.indexOf("?")===-1){delim="?"}return delim};P.Ajax.prototype._callback=function(requestId,ajaxStatus,options,data,statusText){var callbacksObj=this.callbacks[requestId];var error=false;try{if(ajaxStatus==P.Ajax.statusFailure){this.debug.log(P.Debug.DEBUG,"Ajax request failure: "+statusText);var logId=makeJSLogId();data={responseCode:500,url:callbacksObj.options.url,errors:[{error:{message:"Ajax request failure: "+statusText,errorCode:500,logId:logId}}]};error=true}else{error=this.errorHandler(data,callbacksObj)}if(error==true&&callbacksObj.error!=null){this._contextCheck(callbacksObj.error,callbacksObj,data,statusText)}if(error==false&&callbacksObj.success!=null){this._contextCheck(callbacksObj.success,callbacksObj,data,statusText)}}catch(e){error=true;errorPopup({error:e,message:"error in Ajax callback",url:callbacksObj.options.url,target:this.target,referrer:this.referrer})}if(callbacksObj.recycle===false){this._decrement(requestId,error)}else{callbacksObj.recycle=false}};function initializeSearchForm(options){if(options==null){options={}}if(!options.defaultState&&productProperty.exists("search_default_state")){options.defaultState=searchStates.getByAbbreviation(productProperty.getValue("search_default_state"))}if(!options.placeholderLocation&&productProperty.exists("search_location_placeholder")){options.placeholderLocation=productProperty.getValue("search_location_placeholder")}var searchTypes=getSearchTypes();var includeDataSearch=options.noDataSearch!==true&&options.taxonomyMenu!=null&&PEnvironment.isClone!==true&&PEnvironment.isWidget!==true;options.noDataSearch=!includeDataSearch;var includeSubmitButton=options.noSubmitButton!==true;searchTemplate=_.template($("#js-search-form__template").html());$("#search-form-container").html(searchTemplate({includeDataSearch:includeDataSearch,includeSubmitButton:includeSubmitButton})).css({display:"inline-block"});search=new TrfSearch($("#location-search-form"),searchTypes,options);P.instances.search=search;if(includeDataSearch){$dataTextbox=$(".data-search-form__query");$dataForm=$dataTextbox.parent("form");if($dataForm.length==0){var datasetAutoComplete=new DatasetAutocomplete(options.taxonomyMenu,$dataTextbox)}else{var datasetAutoComplete=new DatasetAutocomplete(options.taxonomyMenu,$dataTextbox,{my:"left top",at:"left bottom",of:$dataForm});$dataTextbox.on("focus",function(){$dataForm.addClass("data-search-form__focus")});$dataTextbox.on("blur",function(){$dataForm.removeClass("data-search-form__focus")});var $dataTextboxClear=$dataForm.children(".textbox-search-clear");if($dataTextboxClear.length>0){$dataTextbox.on("input",function(){if($dataTextbox.val().length>0){$dataTextboxClear.fadeIn(200)}else{$dataTextboxClear.fadeOut(200)}});$dataTextboxClear.click(function(){$dataTextbox.val("");$dataTextboxClear.hide()})}$dataForm.submit(function(){return false})}}$(window).trigger(P.events.SEARCH_BOX_INIT);$(window).trigger(P.events.MAP_CHECK_RESIZE);return search}function getSearchTypes(){var searchTypes=[];if(!productProperty.getValue("search_no_location")){searchTypes=["Default"]}if(productProperty.exists("search_boundary_types")){var productSearchTypes=productProperty.getValue("search_boundary_types");for(var i=0;i<productSearchTypes.length;i++){var curTypeId=productSearchTypes[i];var curType=boundaryTypes.getTypeById(curTypeId);if(curType!=null){searchTypes.push(curType)}}}else{searchTypes.push(PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP,PPlaceType.CONGRESSIONAL,PPlaceType.SENATE,PPlaceType.SCHOOL,PPlaceType.SLD_UPPER,PPlaceType.SLD_LOWER,PPlaceType.CBSA)}return searchTypes}function resetDatasetSearch(){$(".showingResults").hide();$(".datasetsearch").hide();$("#data-search-form").find("input").val("");$("#data-search-form .textbox-search-clear").hide()}function replaceSVGs(selector,callback){$(selector).each(function(){var $img=$(this);var imgID=$img.attr("id");var imgClass=$img.attr("class");var imgURL=$img.attr("src");$.get(imgURL,function(data){var $svg=jQuery(data).find("svg");if(typeof imgID!=="undefined"){$svg=$svg.attr("id",imgID)}if(typeof imgClass!=="undefined"){$svg=$svg.attr("class",imgClass+" replaced-svg")}$svg=$svg.removeAttr("xmlns:a");$img.replaceWith($svg);if(callback){callback()}},"xml")})}function disableWheelScrollPropagation(selector,triggerSelector){var eventSelectors="mousewheel DOMMouseScroll";if(triggerSelector){$(selector).on(eventSelectors,triggerSelector,disableWheelScrollEventPropagation)}else{$(selector).on(eventSelectors,disableWheelScrollEventPropagation)}}function disableWheelScrollEventPropagation(event){var $this=$(this),scrollTop=this.scrollTop,scrollHeight=this.scrollHeight,height=$this.height(),delta=event.type=="DOMMouseScroll"?event.originalEvent.detail*-40:event.originalEvent.wheelDelta,up=delta>0;var prevent=function(){event.stopPropagation();event.preventDefault();event.returnValue=false;return false};if(!up&&-delta>scrollHeight-height-scrollTop){$this.scrollTop(scrollHeight);return prevent()}else if(up&&delta>scrollTop){$this.scrollTop(0);return prevent()}}function setLegendScrollWheelHoverEvents(){var inPreview=function(){var r=false;var pp=P.instances.printPreview;if(pp){if(pp.isOn()){r=true}}return r};$(".legend").hover(function(){if(!inPreview()){P.instances.map.disableScrollWheelZoom()}},function(){if(!inPreview()){P.instances.map.enableScrollWheelZoom()}})}function appendJS(filename){var fileref=document.createElement("script");fileref.setAttribute("type","text/javascript");fileref.setAttribute("src",filename);document.getElementsByTagName("head")[0].appendChild(fileref)}function initializeMapLocation(){var zoom=session.get("curZoom");if(zoom==null){zoom=getDefaultMapZoom()}var lat=session.get("curLat");var lng=session.get("curLng");if(lat==null||lng==null){lat=getDefaultMapLat();lng=getDefaultMapLng()}var params=getUrlParams();var map=P.instances.map;var placeId=params["p"]||session.get("p");map.setCenter(new PLatLng(lat,lng),zoom);var address=params["place"];if(address){address=decodeURIComponent(params["place"])}if(placeId){placeLoader.load([placeId],function(places){var place=places[places.length-1];if(isWidgetPage()&&P.WKPrint.isPrintPage()===false){map.setCenterBounds(place.getBounds())}mapstates.currentplace=place;if(!productProperty.get("hide_place_polygon")){addPolygons(P.instances.map,place)}showInfoWindowFromUrl(null,place)})}if(address){geocoder.getLocations(address,function(place){if(place instanceof PAddress){if(place.wasFound()){var html=""+place.addr;var noInfoWindow=true;if(params["iwtype"]==P.constants.infoWindowTypeAddress){noInfoWindow=false}addMarkerWindow(null,place,null,null,noInfoWindow)}}})}if(session.get("aerialShowing")!=null&&session.get("aerialShowing")==="true"){initGoogleMap("satellite")}else if(session.get("terrainShowing")!=null&&session.get("terrainShowing")==="true"){initGoogleMap("terrain")}}function errorPopup(data){try{var trackingObject={error:null,logId:null};var shouldPopup=false;if(PEnvironment.development===true||PEnvironment.environment==="staging"||typeof developerControlPanel!="undefined"){shouldPopup=true}var shouldLog=false;if(shouldPopup===true||P.WKPrint.isPrintPage()===true){shouldLog=true}var errorString="PLACEHOLDER occurred. This popup only appears on development sites, staging sites, or in production when the DCP is enabled.";var errorText=errorString;var error={message:"",stack:null,logId:""};if(typeof data==="string"){if(data!=null){error.message=data+"\r\n"}}else if(data instanceof jQuery.Event||data.error instanceof jQuery.Event){if(data.error instanceof jQuery.Event){data=data.error}if(data&&data.originalEvent){if(data.originalEvent.error){error.message=data.originalEvent.error.message+"\r\n";if(data.originalEvent.error.stack!=null){error.stack=data.originalEvent.error.stack}}else if(data.originalEvent.message){error.message=data.originalEvent.message+"\r\n"}}}else if(data.error instanceof Error){error.message=data.error.message+"\r\n";if(typeof data.error.stack!=="undefined"){error.stack=data.error.stack}}else if(typeof data==="object"){if(data&&data.errors){for(var i=0;i<data.errors.length;i++){var anError=data.errors[i].error||{};if(typeof anError.logId!="undefined"){error.logId+=anError.logId+"\r\n"}if(trackingObject.logId==null){trackingObject.logId=anError.logId}if(typeof anError.message!="undefined"){if(typeof anError.errorCode!="undefined"){error.message+=anError.errorCode+": "}error.message+=anError.message+"\r\n"}}}}if(error.logId==""){trackingObject.logId=makeJSLogId();error.logId=trackingObject.logId+"\r\n"}var textArea="logId:\r\n\r\n"+error.logId+"\r\nMessage:\r\n\r\n"+error.message+"\r\n";errorText+="<br/><br/>Error info: (Copy the text below and send it to a developer)<br/><div id='errorPopupTextArea' style='font-family: monospace; white-space: pre; border: 1px solid dimgray; overflow: auto; max-height: 400px;'>";if(typeof data==="object"){if(typeof data.url!=="undefined"){textArea+="URL that generated the error:\r\n\r\n"+data.url+"\r\n\r\n";trackingObject.url=data.url}if(typeof data.target!=="undefined"){trackingObject.target=data.target}if(typeof data.referrer!=="undefined"){trackingObject.referrer=data.referrer}}if(error.stack==null){try{throw new Error("Deliberate error to get stack trace where one wasn't available.")}catch(e){error.stack=e.stack}if(typeof error.stack=="undefined"){textArea+="There would be a stack trace here...if only the browser supported it...";error.stack="This browser sucks, so there's no stack. Here's the message: "+error.message}else{textArea+="Stack Trace:\r\n\r\n"+error.stack}}else{textArea+="Stack Trace:\r\n\r\n"+error.stack}errorText+=textArea+"</pre></div>";if(shouldLog===true){console.log(error.stack)}if(shouldPopup===true){var re=new RegExp("(http.*"+window.location.hostname+"(/.*))","g");var replace='<a href="codeeditor://$2">$2</a>';var $errorPopupTextArea=$("#errorPopupTextArea");if($errorPopupTextArea.length>0){textArea=textArea.replace(re,replace);$errorPopupTextArea.text($errorPopupTextArea.text()+"\r\n\r\n-------------------------------\r\n\r\n"+textArea);var count=$errorPopupTextArea.data("count");count++;$errorPopupTextArea.data("count",count);$errorPopupTextArea.parent().contents().get(0).nodeValue=errorString.replace("PLACEHOLDER",count+" errors have")}else{errorText=errorText.replace(re,replace);alerter.popup(errorText,"Ok","Copy",function(){var aux=document.createElement("textarea");aux.rows=10;aux.cols=30;document.body.appendChild(aux);var text=document.getElementById("errorPopupTextArea").innerText;aux.textContent=text;aux.focus();aux.select();document.execCommand("copy");document.body.removeChild(aux);return false});$errorPopupTextArea=$("#errorPopupTextArea");$errorPopupTextArea.data("count",1);$errorPopupTextArea.parent().contents().get(0).nodeValue=errorString.replace("PLACEHOLDER","An error has")}}else if(console!=null){console.log(error.stack||error.message||error)}if(P.instances.tracking!=null){trackingObject.error=error;P.instances.tracking.track(P.Tracking.eventTypes.ERROR,trackingObject)}}catch(e){console.log(e.stack)}$(window).trigger(P.Ajax.noPendingRequestsTrigger)}function formattedDate(){var d=new Date;var y=d.getFullYear();var m=d.getMonth()+1;if(m<10){m="0"+m}var day=d.getDate();if(day<10){day="0"+day}return y+"-"+m+"-"+day}function makeJSLogId(){var d=new Date;return"j"+hex_md5(d.toString()+d.getMilliseconds().toString())}P.Debug=function(){this.defaultLevel=P.Debug.ERROR;this.prefix="DEBUG";this.customLabel=false};P.Debug.ALL=0;P.Debug.ERROR=1;P.Debug.WARN=2;P.Debug.INFO=3;P.Debug.DEBUG=4;P.Debug.DEBUG2=5;P.Debug.DEBUG3=6;P.Debug.DEBUG4=7;P.Debug.labels=["ALL","ERROR","WARN","INFO","DEBUG","DEBUG2","DEBUG3","DEBUG4"];P.Debug.prototype.override=function(text){this.defaultLevel=P.Debug.ALL;this.customLabel=text};P.Debug.prototype.trace=function(level,text){this.log(level,text,true)};P.Debug.prototype.log=function(level,text,trace){var currentLevel=this.getCookie("developerControlPanelDebugLevel");if(currentLevel===null){currentLevel=this.defaultLevel}currentLevel=P.Debug[currentLevel];if(typeof console!=="undefined"&&level<=currentLevel){var spaces="     ";var label=P.Debug.labels[level];if(this.customLabel!==false){label=this.customLabel}spaces=spaces.substring(0,spaces.length-label.length);prefix=this.prefix+"["+label+spaces+"] - ";var theLog=function(text){console.log(text)};if(trace!==null){if(typeof trace==="object"){theLog=function(text){console.log(text+"\n"+trace.stack)}}else if(trace===true){theLog=function(text){console.trace(text)}}}if(typeof text!=="object"){text=text.split("/\n|\r\n/");for(var i in text){theLog(prefix+text[i])}}else{theLog(prefix+text)}}};P.Debug.prototype.getCookie=function(name){var c=document.cookie;var index=c.indexOf(name+"=");if(index===-1){return null}index=c.indexOf("=",index)+1;var endstr=c.indexOf(";",index);if(endstr==-1){endstr=c.length}return unescape(c.substring(index,endstr))};P.instances.debug=new P.Debug;P.WKPrint=function(){if(P.instances.wkprint!=null){throw"The wkprint object is already instantiated. (Talk to Daniel)"}this.debug=new P.Debug;this.format=P.WKPrint.FORMAT_PDF;this.orientation=P.WKPrint.PORTRAIT;this.pageSize=P.WKPrint.PAGESIZE_A4;this.margin=P.WKPrint.MARGIN;this.encoding=P.WKPrint.ENCODING_NONE;this.waitEvent="waitEvent";this.triggered=false;this.delay=P.WKPrint.defaultDelay;this.fontsize=P.WKPrint.FONTSIZE_SMALL;this.paginate=P.WKPrint.PAGINATENO;this.customFooter=null;this.interval=null;this.notificationDownload=false;this.formattedDate=$.jsDate.strftime(new Date,"%Y-%m-%d");this.actions=[];this.actionTimeOut=10;this.actionTimer=this.actionTimeOut;this.firstAction=true};P.WKPrint.PORTRAIT="P";P.WKPrint.LANDSCAPE="L";P.WKPrint.FORMAT_PNG="p";P.WKPrint.FORMAT_JPG="j";P.WKPrint.FORMAT_PDF="pdf";P.WKPrint.PAGESIZE_LETTER="Letter";P.WKPrint.PAGESIZE_A4="A4";P.WKPrint.ENCODING_NONE="n";P.WKPrint.ENCODING_BASE64="b";P.WKPrint.printFormat="printFormat";P.WKPrint.printTestPage="printTestPage";P.WKPrint.originalLocation=window.location.href;P.WKPrint.MARGIN="10";P.WKPrint.MARGIN_CLASS="print-margins";P.WKPrint.defaultDelay=3;P.WKPrint.FONTSIZE_SMALL="small";P.WKPrint.FONTSIZE_MEDIUM="medium";P.WKPrint.FONT_CLASS="print-font-size";P.WKPrint.PAGINATEYES=1;P.WKPrint.PAGINATENO=0;P.WKPrint.PAGENUMBERPOSITION_RIGHT="R";P.WKPrint.PAGENUMBERPOSITION_CENTER="C";P.WKPrint.PAGENUMBERPOSITION_LEFT="L";P.WKPrint.PAGINATECONTENT_PAGENUMBER=1;P.WKPrint.PAGINATECONTENT_PAGENUMBEROFTOTALPAGES=2;P.WKPrint.GET_PENDING="gp";P.WKPrint.prototype.addAction=function(action){console.log("Added WKPrint action: "+action);this.actionTimer=this.actionTimeOut;this.actions[action]=true;if(this.isPrintPage()===true&&this.firstAction===true){this.firstAction=false;this.startActionTracker()}};P.WKPrint.prototype.removeAction=function(action,error){if(this.actions[action]!=null){var withError="";if(error===true){withError=" (with javascript error)"}console.log("Removed WKPrint action"+withError+": "+action);this.actions[action]=false}else{throw"No such WKPrint action: "+action}};P.WKPrint.prototype.startActionTracker=function(){var self=this;this.interval=window.setInterval(function(){var count=0;for(var i in self.actions){if(self.actions[i]===true){count++}}if(count===0){self.actionTimer--;if(self.actionTimer==0){window.clearInterval(self.interval);self._triggerWaitEvent()}else{console.log("No pending actions. Countdown: "+self.actionTimer)}}else{console.log("Pending actions: "+count)}},1e3)};P.WKPrint.prototype.startImageTracker=function(){var self=this;this.interval=window.setInterval(function(){if(self.imageCount===0){window.clearInterval(self.interval);console.log("No more pending images")}else{console.log("Pending images: "+self.imageCount)}},1e3)};P.WKPrint.prototype.setEncoding=function(encoding){this.encoding=encoding};P.WKPrint.prototype.setPrintCallback=function(callback){this.printCallback=callback};P.WKPrint.prototype.setDelay=function(delay){if(delay>P.WKPrint.defaultDelay){this.delay=delay}};P.WKPrint.prototype.setAdditionalParams=function(params){this.additionalParams=params};P.WKPrint.prototype.setFileName=function(fileName,addDate){this.fileName=fileName;if(addDate!=null&&addDate===true){this.fileName+=" "+this.formattedDate}};P.WKPrint.prototype.setFormat=function(format){this.format=format};P.WKPrint.prototype.setPaginate=function(paginate){this.paginate=paginate};P.WKPrint.prototype.setPaginateContent=function(paginateContent){this.paginateContent=paginateContent};P.WKPrint.prototype.setPageNumberPosition=function(pagenumberposition){this.pageNumberPosition=pagenumberposition};P.WKPrint.prototype.setCustomFooter=function(customFooterFile){this.customFooter=customFooterFile};P.WKPrint.prototype.setOrientation=function(orientation){this.orientation=orientation};P.WKPrint.prototype.setPageSize=function(pageSize){this.pageSize=pageSize};P.WKPrint.prototype.setMargin=function(m){this.margin=m};P.WKPrint.prototype.setWidth=function(w){this.width=w};P.WKPrint.prototype.setHeight=function(h){this.height=h};P.WKPrint.prototype.setUrl=function(url){this.url=url};P.WKPrint.prototype.setWaitEvent=function(waitEvent){this.waitEvent=waitEvent};P.WKPrint.prototype.setNotificationDownload=function(notificationDownload){this.notificationDownload=notificationDownload};P.WKPrint.prototype.setPrePrint=function(prePrint){this.prePrint=prePrint};P.WKPrint.prototype.checkPendingPrint=function(){var url=PEnvironment.sessionUrl+"&act="+P.WKPrint.GET_PENDING+"&pending=print";var responseCode;var success=function(response){if(response!=null&&response.session==null){responseCode=false}else{alerter.popup("Please wait for your print from <strong>"+response.session.time+"</strong> to generate before attempting a new print");responseCode=true}};ajax.call({url:url,dataType:"json",async:false,success:success});$("#working_spinner").addClass("is-hidden");return responseCode};P.WKPrint.prototype.print=function(){if(this.checkPendingPrint()===false){this._print()}};P.WKPrint.prototype._print=function(){if(this.url==null){throw"No url specified"}if(this.debug.getCookie("developerControlPanelServicesDebugPrint")!=null){window.open(this.url+"&"+P.WKPrint.printFormat+"=true&"+P.WKPrint.printTestPage+"=true");if(typeof this.printCallback=="function"){this.printCallback.apply()}return}if(this.fileName==null){this.fileName="PolicyMap Print "+this.formattedDate}var json={policymap:{credentials:{id:1},parameters:{ty:"data",t:"wprnt"},wprnt:{format:this.format,filename:this.fileName,orientation:this.orientation,margin:this.margin,pagesize:this.pageSize,url:this.url,waitEvent:this.waitEvent,paginate:this.paginate,customFooter:this.customFooter}}};if(!isNaN(this.width)){json.policymap.wprnt.width=this.width}if(!isNaN(this.height)){json.policymap.wprnt.height=this.height}if(this.pageNumberPosition=="L"||this.pageNumberPosition=="C"||this.pageNumberPosition=="R"){json.policymap.wprnt.pageNumberPosition=this.pageNumberPosition}if(!isNaN(this.paginateContent)){json.policymap.wprnt.paginateContent=this.paginateContent}if(this.notificationDownload===true){json.policymap.wprnt.notificationDownload=true}var url=PEnvironment.dataServicesUrl;var callback=this.printCallback;var success=function(response){if(response.wprnt==null){response.wprnt=[500,"There was an error"]}if(callback!=null){callback(response.wprnt)}};json=JSON.stringify(json);var data={servicesJSON:json};ajax.call({url:url,dataType:"json",type:"post",data:data,success:success})};P.WKPrint.prototype.download=function(filename,mimeType,content){var d=document.createElement("a");d.setAttribute("href","data:"+mimeType+";base64,"+content);d.setAttribute("download",filename);d.click()};P.WKPrint.prototype.printThisPage=function(){this.url=window.location.href;if(this.additionalParams!=null){this.url=this.url+"&additionalParams="+this.additionalParams}this.print()};P.WKPrint.prototype.isPrintPage=function(){return P.WKPrint.isPrintPage()};P.WKPrint.prototype.isPrintTestPage=function(){return P.WKPrint.originalLocation.indexOf(P.WKPrint.printTestPage)!==-1};P.WKPrint.isPrintPage=function(){return P.WKPrint.originalLocation.indexOf(P.WKPrint.printFormat)!==-1};P.WKPrint.prototype._triggerWaitEvent=function(){var self=this;console.log("_triggerWaitEvent: Now waiting for images...");$("body").waitForImages({finished:function(){$(".pie-chart").find(".jqplot-grid-canvas").remove();self.setWindowStatus()},each:function(loaded,count,success){success=success?"loaded":"failed to load";var src=$(this).attr("src");if(src==null){src=$(this).css("backgroundImage")}self.imageCount--;loaded++;console.log("Image "+loaded+"/"+count+" "+success+" - "+src)},waitForAll:true});this.imageCount=P.instances.allImgs.length;console.log("Waiting for "+this.imageCount+" images");this.startImageTracker()};P.WKPrint.prototype.setWindowStatus=function(){var self=this;var reallySetStatus=function(){var extraText="";if(window.top!=window.self){extraText="IN THE IFRAME "}console.log("\n\n======================== WINDOW.STATUS SET "+extraText+"HERE!! ==================================\n\n");if(self.isPrintTestPage()===true){alert("window.status set to "+self.waitEvent)}window.status=self.waitEvent};if(self.prePrint!=null&&typeof self.prePrint==="function"){console.log("Pre-print callback being run");self.prePrint()}if(this.delay!=null){console.log("Delay is set. Starting delay timer for "+this.delay+" seconds");var count=this.delay+1;var delayTimer=function(){count--;if(count>0){console.log("Setting window.status in "+count+" seconds");setTimeout(delayTimer,1e3)}else{reallySetStatus()}};delayTimer()}else{reallySetStatus()}};(function(){var root=this;var previousUnderscore=root._;var ArrayProto=Array.prototype,ObjProto=Object.prototype,FuncProto=Function.prototype;var push=ArrayProto.push,slice=ArrayProto.slice,toString=ObjProto.toString,hasOwnProperty=ObjProto.hasOwnProperty;var nativeIsArray=Array.isArray,nativeKeys=Object.keys,nativeBind=FuncProto.bind,nativeCreate=Object.create;var Ctor=function(){};var _=function(obj){if(obj instanceof _)return obj;if(!(this instanceof _))return new _(obj);this._wrapped=obj};if(typeof exports!=="undefined"){if(typeof module!=="undefined"&&module.exports){exports=module.exports=_}exports._=_}else{root._=_}_.VERSION="1.8.3";var optimizeCb=function(func,context,argCount){if(context===void 0)return func;switch(argCount==null?3:argCount){case 1:return function(value){return func.call(context,value)};case 2:return function(value,other){return func.call(context,value,other)};case 3:return function(value,index,collection){return func.call(context,value,index,collection)};case 4:return function(accumulator,value,index,collection){return func.call(context,accumulator,value,index,collection)}}return function(){return func.apply(context,arguments)}};var cb=function(value,context,argCount){if(value==null)return _.identity;if(_.isFunction(value))return optimizeCb(value,context,argCount);if(_.isObject(value))return _.matcher(value);return _.property(value)};_.iteratee=function(value,context){return cb(value,context,Infinity)};var createAssigner=function(keysFunc,undefinedOnly){return function(obj){var length=arguments.length;if(length<2||obj==null)return obj;for(var index=1;index<length;index++){var source=arguments[index],keys=keysFunc(source),l=keys.length;for(var i=0;i<l;i++){var key=keys[i];if(!undefinedOnly||obj[key]===void 0)obj[key]=source[key]}}return obj}};var baseCreate=function(prototype){if(!_.isObject(prototype))return{};if(nativeCreate)return nativeCreate(prototype);Ctor.prototype=prototype;var result=new Ctor;Ctor.prototype=null;return result};var property=function(key){return function(obj){return obj==null?void 0:obj[key]}};var MAX_ARRAY_INDEX=Math.pow(2,53)-1;var getLength=property("length");var isArrayLike=function(collection){var length=getLength(collection);return typeof length=="number"&&length>=0&&length<=MAX_ARRAY_INDEX};_.each=_.forEach=function(obj,iteratee,context){iteratee=optimizeCb(iteratee,context);var i,length;if(isArrayLike(obj)){for(i=0,length=obj.length;i<length;i++){iteratee(obj[i],i,obj)}}else{var keys=_.keys(obj);for(i=0,length=keys.length;i<length;i++){iteratee(obj[keys[i]],keys[i],obj)}}return obj};_.map=_.collect=function(obj,iteratee,context){iteratee=cb(iteratee,context);var keys=!isArrayLike(obj)&&_.keys(obj),length=(keys||obj).length,results=Array(length);for(var index=0;index<length;index++){var currentKey=keys?keys[index]:index;results[index]=iteratee(obj[currentKey],currentKey,obj)}return results};function createReduce(dir){function iterator(obj,iteratee,memo,keys,index,length){for(;index>=0&&index<length;index+=dir){var currentKey=keys?keys[index]:index;memo=iteratee(memo,obj[currentKey],currentKey,obj)}return memo}return function(obj,iteratee,memo,context){iteratee=optimizeCb(iteratee,context,4);var keys=!isArrayLike(obj)&&_.keys(obj),length=(keys||obj).length,index=dir>0?0:length-1;if(arguments.length<3){memo=obj[keys?keys[index]:index];index+=dir}return iterator(obj,iteratee,memo,keys,index,length)}}_.reduce=_.foldl=_.inject=createReduce(1);_.reduceRight=_.foldr=createReduce(-1);_.find=_.detect=function(obj,predicate,context){var key;if(isArrayLike(obj)){key=_.findIndex(obj,predicate,context)}else{key=_.findKey(obj,predicate,context)}if(key!==void 0&&key!==-1)return obj[key]};_.filter=_.select=function(obj,predicate,context){var results=[];predicate=cb(predicate,context);_.each(obj,function(value,index,list){if(predicate(value,index,list))results.push(value)});return results};_.reject=function(obj,predicate,context){return _.filter(obj,_.negate(cb(predicate)),context)};_.every=_.all=function(obj,predicate,context){predicate=cb(predicate,context);var keys=!isArrayLike(obj)&&_.keys(obj),length=(keys||obj).length;for(var index=0;index<length;index++){var currentKey=keys?keys[index]:index;if(!predicate(obj[currentKey],currentKey,obj))return false}return true};_.some=_.any=function(obj,predicate,context){predicate=cb(predicate,context);var keys=!isArrayLike(obj)&&_.keys(obj),length=(keys||obj).length;for(var index=0;index<length;index++){var currentKey=keys?keys[index]:index;if(predicate(obj[currentKey],currentKey,obj))return true}return false};_.contains=_.includes=_.include=function(obj,item,fromIndex,guard){if(!isArrayLike(obj))obj=_.values(obj);if(typeof fromIndex!="number"||guard)fromIndex=0;return _.indexOf(obj,item,fromIndex)>=0};_.invoke=function(obj,method){var args=slice.call(arguments,2);var isFunc=_.isFunction(method);return _.map(obj,function(value){var func=isFunc?method:value[method];return func==null?func:func.apply(value,args)})};_.pluck=function(obj,key){return _.map(obj,_.property(key))};_.where=function(obj,attrs){return _.filter(obj,_.matcher(attrs))};_.findWhere=function(obj,attrs){return _.find(obj,_.matcher(attrs))};_.max=function(obj,iteratee,context){var result=-Infinity,lastComputed=-Infinity,value,computed;if(iteratee==null&&obj!=null){obj=isArrayLike(obj)?obj:_.values(obj);for(var i=0,length=obj.length;i<length;i++){value=obj[i];if(value>result){result=value}}}else{iteratee=cb(iteratee,context);_.each(obj,function(value,index,list){computed=iteratee(value,index,list);if(computed>lastComputed||computed===-Infinity&&result===-Infinity){result=value;lastComputed=computed}})}return result};_.min=function(obj,iteratee,context){var result=Infinity,lastComputed=Infinity,value,computed;if(iteratee==null&&obj!=null){obj=isArrayLike(obj)?obj:_.values(obj);for(var i=0,length=obj.length;i<length;i++){value=obj[i];if(value<result){result=value}}}else{iteratee=cb(iteratee,context);_.each(obj,function(value,index,list){computed=iteratee(value,index,list);if(computed<lastComputed||computed===Infinity&&result===Infinity){result=value;lastComputed=computed}})}return result};_.shuffle=function(obj){var set=isArrayLike(obj)?obj:_.values(obj);var length=set.length;var shuffled=Array(length);for(var index=0,rand;index<length;index++){rand=_.random(0,index);if(rand!==index)shuffled[index]=shuffled[rand];shuffled[rand]=set[index]}return shuffled};_.sample=function(obj,n,guard){if(n==null||guard){if(!isArrayLike(obj))obj=_.values(obj);return obj[_.random(obj.length-1)]}return _.shuffle(obj).slice(0,Math.max(0,n))};_.sortBy=function(obj,iteratee,context){iteratee=cb(iteratee,context);return _.pluck(_.map(obj,function(value,index,list){return{value:value,index:index,criteria:iteratee(value,index,list)}}).sort(function(left,right){var a=left.criteria;var b=right.criteria;if(a!==b){if(a>b||a===void 0)return 1;if(a<b||b===void 0)return-1}return left.index-right.index}),"value")};var group=function(behavior){return function(obj,iteratee,context){var result={};iteratee=cb(iteratee,context);_.each(obj,function(value,index){var key=iteratee(value,index,obj);behavior(result,value,key)});return result}};_.groupBy=group(function(result,value,key){if(_.has(result,key))result[key].push(value);else result[key]=[value]});_.indexBy=group(function(result,value,key){result[key]=value});_.countBy=group(function(result,value,key){if(_.has(result,key))result[key]++;else result[key]=1});_.toArray=function(obj){if(!obj)return[];if(_.isArray(obj))return slice.call(obj);if(isArrayLike(obj))return _.map(obj,_.identity);return _.values(obj)};_.size=function(obj){if(obj==null)return 0;return isArrayLike(obj)?obj.length:_.keys(obj).length};_.partition=function(obj,predicate,context){predicate=cb(predicate,context);var pass=[],fail=[];_.each(obj,function(value,key,obj){(predicate(value,key,obj)?pass:fail).push(value)});return[pass,fail]};_.first=_.head=_.take=function(array,n,guard){if(array==null)return void 0;if(n==null||guard)return array[0];return _.initial(array,array.length-n)};_.initial=function(array,n,guard){return slice.call(array,0,Math.max(0,array.length-(n==null||guard?1:n)))};_.last=function(array,n,guard){if(array==null)return void 0;if(n==null||guard)return array[array.length-1];return _.rest(array,Math.max(0,array.length-n))};_.rest=_.tail=_.drop=function(array,n,guard){return slice.call(array,n==null||guard?1:n)};_.compact=function(array){return _.filter(array,_.identity)};var flatten=function(input,shallow,strict,startIndex){var output=[],idx=0;for(var i=startIndex||0,length=getLength(input);i<length;i++){var value=input[i];if(isArrayLike(value)&&(_.isArray(value)||_.isArguments(value))){if(!shallow)value=flatten(value,shallow,strict);var j=0,len=value.length;output.length+=len;while(j<len){output[idx++]=value[j++]}}else if(!strict){output[idx++]=value}}return output};_.flatten=function(array,shallow){
return flatten(array,shallow,false)};_.without=function(array){return _.difference(array,slice.call(arguments,1))};_.uniq=_.unique=function(array,isSorted,iteratee,context){if(!_.isBoolean(isSorted)){context=iteratee;iteratee=isSorted;isSorted=false}if(iteratee!=null)iteratee=cb(iteratee,context);var result=[];var seen=[];for(var i=0,length=getLength(array);i<length;i++){var value=array[i],computed=iteratee?iteratee(value,i,array):value;if(isSorted){if(!i||seen!==computed)result.push(value);seen=computed}else if(iteratee){if(!_.contains(seen,computed)){seen.push(computed);result.push(value)}}else if(!_.contains(result,value)){result.push(value)}}return result};_.union=function(){return _.uniq(flatten(arguments,true,true))};_.intersection=function(array){var result=[];var argsLength=arguments.length;for(var i=0,length=getLength(array);i<length;i++){var item=array[i];if(_.contains(result,item))continue;for(var j=1;j<argsLength;j++){if(!_.contains(arguments[j],item))break}if(j===argsLength)result.push(item)}return result};_.difference=function(array){var rest=flatten(arguments,true,true,1);return _.filter(array,function(value){return!_.contains(rest,value)})};_.zip=function(){return _.unzip(arguments)};_.unzip=function(array){var length=array&&_.max(array,getLength).length||0;var result=Array(length);for(var index=0;index<length;index++){result[index]=_.pluck(array,index)}return result};_.object=function(list,values){var result={};for(var i=0,length=getLength(list);i<length;i++){if(values){result[list[i]]=values[i]}else{result[list[i][0]]=list[i][1]}}return result};function createPredicateIndexFinder(dir){return function(array,predicate,context){predicate=cb(predicate,context);var length=getLength(array);var index=dir>0?0:length-1;for(;index>=0&&index<length;index+=dir){if(predicate(array[index],index,array))return index}return-1}}_.findIndex=createPredicateIndexFinder(1);_.findLastIndex=createPredicateIndexFinder(-1);_.sortedIndex=function(array,obj,iteratee,context){iteratee=cb(iteratee,context,1);var value=iteratee(obj);var low=0,high=getLength(array);while(low<high){var mid=Math.floor((low+high)/2);if(iteratee(array[mid])<value)low=mid+1;else high=mid}return low};function createIndexFinder(dir,predicateFind,sortedIndex){return function(array,item,idx){var i=0,length=getLength(array);if(typeof idx=="number"){if(dir>0){i=idx>=0?idx:Math.max(idx+length,i)}else{length=idx>=0?Math.min(idx+1,length):idx+length+1}}else if(sortedIndex&&idx&&length){idx=sortedIndex(array,item);return array[idx]===item?idx:-1}if(item!==item){idx=predicateFind(slice.call(array,i,length),_.isNaN);return idx>=0?idx+i:-1}for(idx=dir>0?i:length-1;idx>=0&&idx<length;idx+=dir){if(array[idx]===item)return idx}return-1}}_.indexOf=createIndexFinder(1,_.findIndex,_.sortedIndex);_.lastIndexOf=createIndexFinder(-1,_.findLastIndex);_.range=function(start,stop,step){if(stop==null){stop=start||0;start=0}step=step||1;var length=Math.max(Math.ceil((stop-start)/step),0);var range=Array(length);for(var idx=0;idx<length;idx++,start+=step){range[idx]=start}return range};var executeBound=function(sourceFunc,boundFunc,context,callingContext,args){if(!(callingContext instanceof boundFunc))return sourceFunc.apply(context,args);var self=baseCreate(sourceFunc.prototype);var result=sourceFunc.apply(self,args);if(_.isObject(result))return result;return self};_.bind=function(func,context){if(nativeBind&&func.bind===nativeBind)return nativeBind.apply(func,slice.call(arguments,1));if(!_.isFunction(func))throw new TypeError("Bind must be called on a function");var args=slice.call(arguments,2);var bound=function(){return executeBound(func,bound,context,this,args.concat(slice.call(arguments)))};return bound};_.partial=function(func){var boundArgs=slice.call(arguments,1);var bound=function(){var position=0,length=boundArgs.length;var args=Array(length);for(var i=0;i<length;i++){args[i]=boundArgs[i]===_?arguments[position++]:boundArgs[i]}while(position<arguments.length)args.push(arguments[position++]);return executeBound(func,bound,this,this,args)};return bound};_.bindAll=function(obj){var i,length=arguments.length,key;if(length<=1)throw new Error("bindAll must be passed function names");for(i=1;i<length;i++){key=arguments[i];obj[key]=_.bind(obj[key],obj)}return obj};_.memoize=function(func,hasher){var memoize=function(key){var cache=memoize.cache;var address=""+(hasher?hasher.apply(this,arguments):key);if(!_.has(cache,address))cache[address]=func.apply(this,arguments);return cache[address]};memoize.cache={};return memoize};_.delay=function(func,wait){var args=slice.call(arguments,2);return setTimeout(function(){return func.apply(null,args)},wait)};_.defer=_.partial(_.delay,_,1);_.throttle=function(func,wait,options){var context,args,result;var timeout=null;var previous=0;if(!options)options={};var later=function(){previous=options.leading===false?0:_.now();timeout=null;result=func.apply(context,args);if(!timeout)context=args=null};return function(){var now=_.now();if(!previous&&options.leading===false)previous=now;var remaining=wait-(now-previous);context=this;args=arguments;if(remaining<=0||remaining>wait){if(timeout){clearTimeout(timeout);timeout=null}previous=now;result=func.apply(context,args);if(!timeout)context=args=null}else if(!timeout&&options.trailing!==false){timeout=setTimeout(later,remaining)}return result}};_.debounce=function(func,wait,immediate){var timeout,args,context,timestamp,result;var later=function(){var last=_.now()-timestamp;if(last<wait&&last>=0){timeout=setTimeout(later,wait-last)}else{timeout=null;if(!immediate){result=func.apply(context,args);if(!timeout)context=args=null}}};return function(){context=this;args=arguments;timestamp=_.now();var callNow=immediate&&!timeout;if(!timeout)timeout=setTimeout(later,wait);if(callNow){result=func.apply(context,args);context=args=null}return result}};_.wrap=function(func,wrapper){return _.partial(wrapper,func)};_.negate=function(predicate){return function(){return!predicate.apply(this,arguments)}};_.compose=function(){var args=arguments;var start=args.length-1;return function(){var i=start;var result=args[start].apply(this,arguments);while(i--)result=args[i].call(this,result);return result}};_.after=function(times,func){return function(){if(--times<1){return func.apply(this,arguments)}}};_.before=function(times,func){var memo;return function(){if(--times>0){memo=func.apply(this,arguments)}if(times<=1)func=null;return memo}};_.once=_.partial(_.before,2);var hasEnumBug=!{toString:null}.propertyIsEnumerable("toString");var nonEnumerableProps=["valueOf","isPrototypeOf","toString","propertyIsEnumerable","hasOwnProperty","toLocaleString"];function collectNonEnumProps(obj,keys){var nonEnumIdx=nonEnumerableProps.length;var constructor=obj.constructor;var proto=_.isFunction(constructor)&&constructor.prototype||ObjProto;var prop="constructor";if(_.has(obj,prop)&&!_.contains(keys,prop))keys.push(prop);while(nonEnumIdx--){prop=nonEnumerableProps[nonEnumIdx];if(prop in obj&&obj[prop]!==proto[prop]&&!_.contains(keys,prop)){keys.push(prop)}}}_.keys=function(obj){if(!_.isObject(obj))return[];if(nativeKeys)return nativeKeys(obj);var keys=[];for(var key in obj)if(_.has(obj,key))keys.push(key);if(hasEnumBug)collectNonEnumProps(obj,keys);return keys};_.allKeys=function(obj){if(!_.isObject(obj))return[];var keys=[];for(var key in obj)keys.push(key);if(hasEnumBug)collectNonEnumProps(obj,keys);return keys};_.values=function(obj){var keys=_.keys(obj);var length=keys.length;var values=Array(length);for(var i=0;i<length;i++){values[i]=obj[keys[i]]}return values};_.mapObject=function(obj,iteratee,context){iteratee=cb(iteratee,context);var keys=_.keys(obj),length=keys.length,results={},currentKey;for(var index=0;index<length;index++){currentKey=keys[index];results[currentKey]=iteratee(obj[currentKey],currentKey,obj)}return results};_.pairs=function(obj){var keys=_.keys(obj);var length=keys.length;var pairs=Array(length);for(var i=0;i<length;i++){pairs[i]=[keys[i],obj[keys[i]]]}return pairs};_.invert=function(obj){var result={};var keys=_.keys(obj);for(var i=0,length=keys.length;i<length;i++){result[obj[keys[i]]]=keys[i]}return result};_.functions=_.methods=function(obj){var names=[];for(var key in obj){if(_.isFunction(obj[key]))names.push(key)}return names.sort()};_.extend=createAssigner(_.allKeys);_.extendOwn=_.assign=createAssigner(_.keys);_.findKey=function(obj,predicate,context){predicate=cb(predicate,context);var keys=_.keys(obj),key;for(var i=0,length=keys.length;i<length;i++){key=keys[i];if(predicate(obj[key],key,obj))return key}};_.pick=function(object,oiteratee,context){var result={},obj=object,iteratee,keys;if(obj==null)return result;if(_.isFunction(oiteratee)){keys=_.allKeys(obj);iteratee=optimizeCb(oiteratee,context)}else{keys=flatten(arguments,false,false,1);iteratee=function(value,key,obj){return key in obj};obj=Object(obj)}for(var i=0,length=keys.length;i<length;i++){var key=keys[i];var value=obj[key];if(iteratee(value,key,obj))result[key]=value}return result};_.omit=function(obj,iteratee,context){if(_.isFunction(iteratee)){iteratee=_.negate(iteratee)}else{var keys=_.map(flatten(arguments,false,false,1),String);iteratee=function(value,key){return!_.contains(keys,key)}}return _.pick(obj,iteratee,context)};_.defaults=createAssigner(_.allKeys,true);_.create=function(prototype,props){var result=baseCreate(prototype);if(props)_.extendOwn(result,props);return result};_.clone=function(obj){if(!_.isObject(obj))return obj;return _.isArray(obj)?obj.slice():_.extend({},obj)};_.tap=function(obj,interceptor){interceptor(obj);return obj};_.isMatch=function(object,attrs){var keys=_.keys(attrs),length=keys.length;if(object==null)return!length;var obj=Object(object);for(var i=0;i<length;i++){var key=keys[i];if(attrs[key]!==obj[key]||!(key in obj))return false}return true};var eq=function(a,b,aStack,bStack){if(a===b)return a!==0||1/a===1/b;if(a==null||b==null)return a===b;if(a instanceof _)a=a._wrapped;if(b instanceof _)b=b._wrapped;var className=toString.call(a);if(className!==toString.call(b))return false;switch(className){case"[object RegExp]":case"[object String]":return""+a===""+b;case"[object Number]":if(+a!==+a)return+b!==+b;return+a===0?1/+a===1/b:+a===+b;case"[object Date]":case"[object Boolean]":return+a===+b}var areArrays=className==="[object Array]";if(!areArrays){if(typeof a!="object"||typeof b!="object")return false;var aCtor=a.constructor,bCtor=b.constructor;if(aCtor!==bCtor&&!(_.isFunction(aCtor)&&aCtor instanceof aCtor&&_.isFunction(bCtor)&&bCtor instanceof bCtor)&&("constructor"in a&&"constructor"in b)){return false}}aStack=aStack||[];bStack=bStack||[];var length=aStack.length;while(length--){if(aStack[length]===a)return bStack[length]===b}aStack.push(a);bStack.push(b);if(areArrays){length=a.length;if(length!==b.length)return false;while(length--){if(!eq(a[length],b[length],aStack,bStack))return false}}else{var keys=_.keys(a),key;length=keys.length;if(_.keys(b).length!==length)return false;while(length--){key=keys[length];if(!(_.has(b,key)&&eq(a[key],b[key],aStack,bStack)))return false}}aStack.pop();bStack.pop();return true};_.isEqual=function(a,b){return eq(a,b)};_.isEmpty=function(obj){if(obj==null)return true;if(isArrayLike(obj)&&(_.isArray(obj)||_.isString(obj)||_.isArguments(obj)))return obj.length===0;return _.keys(obj).length===0};_.isElement=function(obj){return!!(obj&&obj.nodeType===1)};_.isArray=nativeIsArray||function(obj){return toString.call(obj)==="[object Array]"};_.isObject=function(obj){var type=typeof obj;return type==="function"||type==="object"&&!!obj};_.each(["Arguments","Function","String","Number","Date","RegExp","Error"],function(name){_["is"+name]=function(obj){return toString.call(obj)==="[object "+name+"]"}});if(!_.isArguments(arguments)){_.isArguments=function(obj){return _.has(obj,"callee")}}if(typeof/./!="function"&&typeof Int8Array!="object"){_.isFunction=function(obj){return typeof obj=="function"||false}}_.isFinite=function(obj){return isFinite(obj)&&!isNaN(parseFloat(obj))};_.isNaN=function(obj){return _.isNumber(obj)&&obj!==+obj};_.isBoolean=function(obj){return obj===true||obj===false||toString.call(obj)==="[object Boolean]"};_.isNull=function(obj){return obj===null};_.isUndefined=function(obj){return obj===void 0};_.has=function(obj,key){return obj!=null&&hasOwnProperty.call(obj,key)};_.noConflict=function(){root._=previousUnderscore;return this};_.identity=function(value){return value};_.constant=function(value){return function(){return value}};_.noop=function(){};_.property=property;_.propertyOf=function(obj){return obj==null?function(){}:function(key){return obj[key]}};_.matcher=_.matches=function(attrs){attrs=_.extendOwn({},attrs);return function(obj){return _.isMatch(obj,attrs)}};_.times=function(n,iteratee,context){var accum=Array(Math.max(0,n));iteratee=optimizeCb(iteratee,context,1);for(var i=0;i<n;i++)accum[i]=iteratee(i);return accum};_.random=function(min,max){if(max==null){max=min;min=0}return min+Math.floor(Math.random()*(max-min+1))};_.now=Date.now||function(){return(new Date).getTime()};var escapeMap={"&":"&amp;","<":"&lt;",">":"&gt;",'"':"&quot;","'":"&#x27;","`":"&#x60;"};var unescapeMap=_.invert(escapeMap);var createEscaper=function(map){var escaper=function(match){return map[match]};var source="(?:"+_.keys(map).join("|")+")";var testRegexp=RegExp(source);var replaceRegexp=RegExp(source,"g");return function(string){string=string==null?"":""+string;return testRegexp.test(string)?string.replace(replaceRegexp,escaper):string}};_.escape=createEscaper(escapeMap);_.unescape=createEscaper(unescapeMap);_.result=function(object,property,fallback){var value=object==null?void 0:object[property];if(value===void 0){value=fallback}return _.isFunction(value)?value.call(object):value};var idCounter=0;_.uniqueId=function(prefix){var id=++idCounter+"";return prefix?prefix+id:id};_.templateSettings={evaluate:/<%([\s\S]+?)%>/g,interpolate:/<%=([\s\S]+?)%>/g,escape:/<%-([\s\S]+?)%>/g};var noMatch=/(.)^/;var escapes={"'":"'","\\":"\\","\r":"r","\n":"n","\u2028":"u2028","\u2029":"u2029"};var escaper=/\\|'|\r|\n|\u2028|\u2029/g;var escapeChar=function(match){return"\\"+escapes[match]};_.template=function(text,settings,oldSettings){if(!settings&&oldSettings)settings=oldSettings;settings=_.defaults({},settings,_.templateSettings);var matcher=RegExp([(settings.escape||noMatch).source,(settings.interpolate||noMatch).source,(settings.evaluate||noMatch).source].join("|")+"|$","g");var index=0;var source="__p+='";text.replace(matcher,function(match,escape,interpolate,evaluate,offset){source+=text.slice(index,offset).replace(escaper,escapeChar);index=offset+match.length;if(escape){source+="'+\n((__t=("+escape+"))==null?'':_.escape(__t))+\n'"}else if(interpolate){source+="'+\n((__t=("+interpolate+"))==null?'':__t)+\n'"}else if(evaluate){source+="';\n"+evaluate+"\n__p+='"}return match});source+="';\n";if(!settings.variable)source="with(obj||{}){\n"+source+"}\n";source="var __t,__p='',__j=Array.prototype.join,"+"print=function(){__p+=__j.call(arguments,'');};\n"+source+"return __p;\n";try{var render=new Function(settings.variable||"obj","_",source)}catch(e){e.source=source;throw e}var template=function(data){return render.call(this,data,_)};var argument=settings.variable||"obj";template.source="function("+argument+"){\n"+source+"}";return template};_.chain=function(obj){var instance=_(obj);instance._chain=true;return instance};var result=function(instance,obj){return instance._chain?_(obj).chain():obj};_.mixin=function(obj){_.each(_.functions(obj),function(name){var func=_[name]=obj[name];_.prototype[name]=function(){var args=[this._wrapped];push.apply(args,arguments);return result(this,func.apply(_,args))}})};_.mixin(_);_.each(["pop","push","reverse","shift","sort","splice","unshift"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){var obj=this._wrapped;method.apply(obj,arguments);if((name==="shift"||name==="splice")&&obj.length===0)delete obj[0];return result(this,obj)}});_.each(["concat","join","slice"],function(name){var method=ArrayProto[name];_.prototype[name]=function(){return result(this,method.apply(this._wrapped,arguments))}});_.prototype.value=function(){return this._wrapped};_.prototype.valueOf=_.prototype.toJSON=_.prototype.value;_.prototype.toString=function(){return""+this._wrapped};if(typeof define==="function"&&define.amd){define("underscore",[],function(){return _})}}).call(this);(function(root,factory){if(typeof define==="function"&&define.amd){define([],factory)}else if(typeof exports==="object"){module.exports=factory()}else{root.download=factory()}})(this,function(){return function download(data,strFileName,strMimeType){var self=window,defaultMime="application/octet-stream",mimeType=strMimeType||defaultMime,payload=data,url=!strFileName&&!strMimeType&&payload,anchor=document.createElement("a"),toString=function(a){return String(a)},myBlob=self.Blob||self.MozBlob||self.WebKitBlob||toString,fileName=strFileName||"download",blob,reader;myBlob=myBlob.call?myBlob.bind(self):Blob;if(String(this)==="true"){payload=[payload,mimeType];mimeType=payload[0];payload=payload[1]}if(url&&url.length<2048){fileName=url.split("/").pop().split("?")[0];anchor.href=url;if(anchor.href.indexOf(url)!==-1){var ajax=new XMLHttpRequest;ajax.open("GET",url,true);ajax.responseType="blob";ajax.onload=function(e){download(e.target.response,fileName,defaultMime)};setTimeout(function(){ajax.send()},0);return ajax}}if(/^data:([\w+-]+\/[\w+.-]+)?[,;]/.test(payload)){if(payload.length>1024*1024*1.999&&myBlob!==toString){payload=dataUrlToBlob(payload);mimeType=payload.type||defaultMime}else{return navigator.msSaveBlob?navigator.msSaveBlob(dataUrlToBlob(payload),fileName):saver(payload)}}else{if(/([\x80-\xff])/.test(payload)){var i=0,tempUiArr=new Uint8Array(payload.length),mx=tempUiArr.length;for(i;i<mx;++i)tempUiArr[i]=payload.charCodeAt(i);payload=new myBlob([tempUiArr],{type:mimeType})}}blob=payload instanceof myBlob?payload:new myBlob([payload],{type:mimeType});function dataUrlToBlob(strUrl){var parts=strUrl.split(/[:;,]/),type=parts[1],decoder=parts[2]=="base64"?atob:decodeURIComponent,binData=decoder(parts.pop()),mx=binData.length,i=0,uiArr=new Uint8Array(mx);for(i;i<mx;++i)uiArr[i]=binData.charCodeAt(i);return new myBlob([uiArr],{type:type})}function saver(url,winMode){if("download"in anchor){anchor.href=url;anchor.setAttribute("download",fileName);anchor.className="download-js-link";anchor.innerHTML="downloading...";anchor.style.display="none";document.body.appendChild(anchor);setTimeout(function(){anchor.click();document.body.removeChild(anchor);if(winMode===true){setTimeout(function(){self.URL.revokeObjectURL(anchor.href)},250)}},66);return true}if(/(Version)\/(\d+)\.(\d+)(?:\.(\d+))?.*Safari\//.test(navigator.userAgent)){if(/^data:/.test(url))url="data:"+url.replace(/^data:([\w\/\-\+]+)/,defaultMime);if(!window.open(url)){if(confirm("Displaying New Document\n\nUse Save As... to download, then click back to return to this page.")){location.href=url}}return true}var f=document.createElement("iframe");document.body.appendChild(f);if(!winMode&&/^data:/.test(url)){url="data:"+url.replace(/^data:([\w\/\-\+]+)/,defaultMime)}f.src=url;setTimeout(function(){document.body.removeChild(f)},333)}if(navigator.msSaveBlob){return navigator.msSaveBlob(blob,fileName)}if(self.URL){saver(self.URL.createObjectURL(blob),true)}else{if(typeof blob==="string"||blob.constructor===toString){try{return saver("data:"+mimeType+";base64,"+self.btoa(blob))}catch(y){return saver("data:"+mimeType+","+encodeURIComponent(blob))}}reader=new FileReader;reader.onload=function(e){saver(this.result)};reader.readAsDataURL(blob)}return true}});function populateAggregation(aggregation){aggregation.set(0,[PPlaceType.STATE]);aggregation.set(3,[PPlaceType.COUNTY]);aggregation.set(6,[PPlaceType.ZIP]);aggregation.set(9,[PPlaceType.CENSUSTRACT]);aggregation.set(10,[PPlaceType.BLOCKGROUP]);aggregation.set(0,[PPlaceType.BLOCKGROUP],105);aggregation.set(0,[PPlaceType.CENSUSTRACT],110);aggregation.set(0,[PPlaceType.COUNTY_SUBDIVISION],115);aggregation.set(0,[PPlaceType.ZIP],120);aggregation.set(0,[PPlaceType.SCHOOL],125);aggregation.set(0,[PPlaceType.CONGRESSIONAL],130);aggregation.set(0,[PPlaceType.CITY],135);aggregation.set(0,[PPlaceType.CDBG],140);aggregation.set(0,[PPlaceType.COUNTY],145);aggregation.set(0,[PPlaceType.MD],150);aggregation.set(0,[PPlaceType.CBSA],155);aggregation.set(0,[PPlaceType.STATE],160);aggregation.set(0,[PPlaceType.COUNTY,PPlaceType.CITY],165);aggregation.set(0,[PPlaceType.STATE,PPlaceType.CENSUSTRACT],170);aggregation.set(0,[PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],200);aggregation.set(12,[PPlaceType.BLOCKGROUP],200);aggregation.set(0,[PPlaceType.COUNTY,PPlaceType.CENSUSTRACT],210);aggregation.set(8,[PPlaceType.CENSUSTRACT],210);aggregation.setAvail([PPlaceType.COUNTY,PPlaceType.CENSUSTRACT],210);aggregation.set(0,[PPlaceType.STATE,PPlaceType.ZIP],220);aggregation.set(5,[PPlaceType.ZIP],220);aggregation.set(0,[PPlaceType.STATE,PPlaceType.COUNTY],230);aggregation.set(5,[PPlaceType.COUNTY],230);aggregation.set(0,[PPlaceType.STATE,PPlaceType.CBSA],240);aggregation.set(3,[PPlaceType.CBSA],240);aggregation.set(0,[PPlaceType.COUNTY,PPlaceType.CENSUSTRACT],250);aggregation.set(8,[PPlaceType.CENSUSTRACT],250);aggregation.set(0,[PPlaceType.CDBG,PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],300);aggregation.set(8,[PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],300);aggregation.set(12,[PPlaceType.BLOCKGROUP],300);aggregation.set(0,[PPlaceType.COUNTY,PPlaceType.ZIP,PPlaceType.CENSUSTRACT],310);aggregation.set(8,[PPlaceType.ZIP,PPlaceType.CENSUSTRACT],310);aggregation.set(11,[PPlaceType.CENSUSTRACT],310);aggregation.set(0,[PPlaceType.STATE,PPlaceType.CBSA,PPlaceType.COUNTY],320);aggregation.set(3,[PPlaceType.CBSA,PPlaceType.COUNTY],320);aggregation.set(5,[PPlaceType.COUNTY],320);aggregation.set(0,[PPlaceType.STATE,PPlaceType.COUNTY,PPlaceType.CENSUSTRACT],330);aggregation.set(5,[PPlaceType.COUNTY,PPlaceType.CENSUSTRACT],330);aggregation.set(8,[PPlaceType.CENSUSTRACT],330);aggregation.set(0,[PPlaceType.COUNTY,PPlaceType.ZIP,PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],400);aggregation.set(8,[PPlaceType.ZIP,PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],400);aggregation.set(11,[PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],400);aggregation.set(12,[PPlaceType.BLOCKGROUP],400);aggregation.setAvail([PPlaceType.COUNTY,PPlaceType.ZIP,PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],400);aggregation.set(0,[PPlaceType.STATE,PPlaceType.COUNTY,PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],410);aggregation.set(5,[PPlaceType.COUNTY,PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],410);aggregation.set(8,[PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],410);aggregation.set(12,[PPlaceType.BLOCKGROUP],410);aggregation.setAvail([PPlaceType.STATE,PPlaceType.COUNTY,PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],410);aggregation.set(0,[PPlaceType.STATE,PPlaceType.COUNTY,PPlaceType.ZIP,PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],420);aggregation.set(5,[PPlaceType.COUNTY,PPlaceType.ZIP,PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],420);aggregation.set(8,[PPlaceType.ZIP,PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],420);aggregation.set(12,[PPlaceType.BLOCKGROUP],420);aggregation.set(0,[PPlaceType.STATE,PPlaceType.CBSA,PPlaceType.COUNTY,PPlaceType.CENSUSTRACT],430);aggregation.set(3,[PPlaceType.CBSA,PPlaceType.COUNTY,PPlaceType.CENSUSTRACT],430);aggregation.set(5,[PPlaceType.COUNTY,PPlaceType.CENSUSTRACT],430);aggregation.set(8,[PPlaceType.CENSUSTRACT],430);aggregation.set(0,[PPlaceType.STATE,PPlaceType.CBSA,PPlaceType.COUNTY,PPlaceType.CITY],440);aggregation.set(3,[PPlaceType.CBSA,PPlaceType.COUNTY,PPlaceType.ZIP],440);aggregation.set(5,[PPlaceType.COUNTY,PPlaceType.ZIP],440);aggregation.set(8,[PPlaceType.ZIP],440);aggregation.set(0,[PPlaceType.STATE,PPlaceType.SCHOOL],450);aggregation.set(4,[PPlaceType.SCHOOL],450);aggregation.set(0,[PPlaceType.STATE,PPlaceType.COUNTY,PPlaceType.CENSUSTRACT],460);aggregation.set(5,[PPlaceType.COUNTY,PPlaceType.CENSUSTRACT],460);aggregation.set(8,[PPlaceType.CENSUSTRACT],460);aggregation.setAvail([PPlaceType.STATE,PPlaceType.COUNTY,PPlaceType.CENSUSTRACT],460);aggregation.set(0,[PPlaceType.CBSA,PPlaceType.COUNTY,PPlaceType.ZIP],470);aggregation.set(5,[PPlaceType.COUNTY,PPlaceType.ZIP],470);aggregation.set(8,[PPlaceType.ZIP],470);aggregation.set(0,[PPlaceType.COUNTY,PPlaceType.BLOCKGROUP],480);aggregation.set(12,[PPlaceType.BLOCKGROUP],480);aggregation.set(0,[PPlaceType.COUNTY,PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],490);aggregation.set(8,[PPlaceType.CENSUSTRACT,PPlaceType.BLOCKGROUP],490);aggregation.set(12,[PPlaceType.BLOCKGROUP],490);aggregation.set(0,[PPlaceType.STATE,PPlaceType.ZIP],500);aggregation.set(5,[PPlaceType.STATE,PPlaceType.COUNTY,PPlaceType.ZIP],500);aggregation.set(8,[PPlaceType.ZIP],500);aggregation.set(0,[PPlaceType.BLOCK],510);aggregation.set(0,[PPlaceType.STATE,PPlaceType.COUNTY],520);aggregation.set(3,[PPlaceType.COUNTY],520);aggregation.set(5,[PPlaceType.COUNTY,PPlaceType.COUNTY_SUBDIVISION],520);aggregation.dataset={};aggregation.dataset.CLARITAS=420;aggregation.dataset.CLARITAS_R=410;aggregation.dataset.ACS=410;aggregation.dataset.ACS_TRAVEL_TIME=330;aggregation.dataset.HOMESALE=400;aggregation.dataset.FOODSTAMPS=230;aggregation.dataset.HMDA=330;aggregation.dataset.CCBPD=440;aggregation.dataset.FEC=220;aggregation.dataset.IRS=220;aggregation.dataset.SSI=230;aggregation.dataset.NJRA=110;aggregation.dataset.USPS=210;aggregation.dataset.OA=410;aggregation.dataset.HUDHP=110;aggregation.dataset.HUDSUB=330;aggregation.dataset.CRABF=330;aggregation.dataset.RELIGION=230;aggregation.dataset.MNREPORT=250;aggregation.dataset.IMMIGRATION=460}function checkEmails(selector,checkNull){j=selector;if(j.inputError==null){setupInputError(j,"Invalid email address")}var emails=j.val();if(emails.length==0){if(checkNull){return j.doit()}return j.undoit()}emails=emails.replace(/ /g,"");emails=emails.split(",");for(var i=0;i<emails.length;++i){if(/^([A-Za-z0-9_\-\.\+])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(emails[i])===false){return j.doit()}}return j.undoit()}function checkPrintFormat(j,click){if(j.inputError==null){setupInputError(j,"Please select PDF, PNG, JPG, or all three.")}var pdfChecked=data.pdfInput.is(":checked");var pngChecked=data.pngInput.is(":checked");if(pdfChecked||pngChecked){return j.undoit()}else if(!click){return j.doit()}}function setupInputError(j,errorText){j.inputError=errorText;j.poshytip({content:errorText,showOn:"none",className:"tip-yellowsimple",showTimeout:1,alignTo:"target",alignX:"center",alignY:"top",offsetX:0,offsetY:10,fade:false,slide:false});j.doit=function(){this.poshytip("show");return false};j.undoit=function(){this.poshytip("hide");return true}}function genericPrePrint(callback){if(map!=null){var indicator=map.getIndicator();if(indicator){var jsonbreaks=indicator.createCustomBreaksJSON(session.get("nb")?session.get("nb"):DEFAULT_NUMBREAKS,true);if(jsonbreaks){var obj={};obj[indicator.id]=jsonbreaks;stringStore.store(MochiKit.Base.serializeJSON(obj),callback)}}}return callback()}function genericPrint(data,callback){var linkManager=new PLinkManager;data.link.name=data.name;if(data.template=="map"||data.template=="analytic"){data.parms=genMapJpgLink();if(data.printType=="png"){data.parms+="&fillmap=false";var newWidth,newHeight;if(data.link.url.indexOf("or=landscape")!=-1){newWidth=PrintSizes.map.landscape.width;newHeight=PrintSizes.map.landscape.height}else if(data.link.url.indexOf("or=portrait")!=-1){newWidth=PrintSizes.map.portrait.width;newHeight=PrintSizes.map.portrait.height}if(newWidth&&newHeight){data.parms=data.parms.replace(/imgwidth=\d+/,"imgwidth="+newWidth);data.parms=data.parms.replace(/imgheight=\d+/,"imgheight="+newHeight)}}else{data.parms+="&fillmap=true"}}if(data.action=="print"){if(data.printType=="jpg"){linkManager.printJPG(data.link,callback,data.parms,data.printTemplate)}else if(data.printType=="png"){linkManager.printPNG(data.link,callback,data.parms,data.printTemplate)}else if(data.printType=="pdf"){linkManager.printPDF(data.link,callback,data.parms,data.printTemplate,data.printService)}else if(data.printType=="csv"){linkManager.printCSV(data.link,callback,data.printTemplate)}}else if(data.action=="save"){linkManager.add(data.link,callback,data.printTemplate)}}function genericPrintStatusMessage(data,status,msg){var text;data.header=null;if(data.status!=null){data.previousStatus=data.status}data.status=status;if(status==307){text="Retrieved saved "+data.printType.toUpperCase()+" "+data.template+".";setWindowLocation(msg)}else if(status==202||status==200){var myPolicyMapText='<span class="alertDialogMyPolicyMap my-policymap-title">'+dnf.getName("mySavedWork")+"</span>";text=msg.replace(/My Saved Work/g,myPolicyMapText)}else if(status==242){data.noPopup=true}else if(status==403&&PEnvironment.isPolicyMap){setWindowLocation("/redirect.jsp")}else{var action=data.action=="print"?"printing":"saving";if(data.printType=="map"){text="There was a problem "+action+" the map: "+msg}else if(data.printType!=null&&data.template!=null){text="There was a problem "+action+" the "+data.printType+" "+data.template+": "+msg}else{text=msg}}var addMessage=true;if(data.statusMessages==null){data.statusMessages=[]}else{for(var i=0;i<data.statusMessages.length;i++){if(data.statusMessages[i]==text){addMessage=false;break}}}if(addMessage){if(data.okText==null){data.okText=text}else if(text!=null){data.okText+="<br><br>"+text}data.statusMessages.push(text)}return data}function genericPrintCheck(data){data.name=$("#editTitleInput").val();if(data.action=="print"){if(data.template=="map"||data.template=="analytic"){if($("input[name='orientation']:checked")){data.link.url+="&or="+$("input[name='orientation']:checked").val();printOrientation=$("input[name='orientation']:checked").val();if(printOrientation=="landscape"){P.instances.wkprint.setOrientation(P.WKPrint.LANDSCAPE)}else{P.instances.wkprint.setOrientation(P.WKPrint.PORTRAIT)}}}else if(data.template=="chart"){data.parms+="&or=landscape"}data.name=$("#editTitleInput").val();var pdfChecked=$("#pdfCheckbox").is(":checked");var pngChecked=$("#pngCheckbox").is(":checked");var jpgChecked=$("#jpgCheckbox").is(":checked");var islChecked=$("input[name='island']:checked").val();if(islChecked=="region"){islandPrintEnabled=true;data.link.url+="&island=true"}else{islandPrintEnabled=false}var printTypes=[];if(pdfChecked||data.printType=="pdf"){printTypes.push("pdf")}if(pngChecked||data.printType=="png"){printTypes.push("png")}if(jpgChecked||data.printType=="jpg"){printTypes.push("jpg")}if(printTypes.length>0){sendPrintRequests(data,printTypes)}else{checkPrintFormat(data.pdfInput);return false}}else{genericPrePrint(function(){genericPrint(data,function(status,msg){data=genericPrintStatusMessage(data,status,msg);genericAlertDialog({template:"generic",data:data})})})}return true}function sendPrintRequests(data,printTypes){if(printTypes.length>0){genericPrePrint(function(){data.printType=printTypes.shift();genericPrint(data,function(status,msg){data=genericPrintStatusMessage(data,status,msg);sendPrintRequests(data,printTypes)})})}else{islandPrintEnabled=false;genericAlertDialog({template:"generic",data:data})}}function checkPlaceInd(){var place=null;var ind=null;var pins=null;if(PEnvironment.pageName=="tables"){if(global_places.length>0){place=global_places[0]}if(global_indicators.length>0){ind=global_indicators[0]}}else{if(mapstates.currentplace&&mapstates.currentplace.getType()){place=mapstates.currentplace}if(map.getIndicator()){ind=map.getIndicator()}}if(P.instances.table&&P.instances.table.getOverlaySets().length>0){pins=P.instances.table.getOverlaySets()}else if(map&&map.getOverlaySets().length>0){pins=map.getOverlaySets()}return{place:place,ind:ind,pins:pins}}function genericAlertDialog(object){var data=object.data;if(object.data==null){data={};data.action="";data.cancelButton="Cancel"
;data.emailTo=false;data.emailToMessage=false;data.format=false;data.island=false;data.setName=false;data.okButton="Save";data.orientation=false;data.print=false;data.printTemplate="PolicyMapMapPage";data.printType="";data.checkForCustomBreaks=false;data.warning=object.warning;data.redirect=object.redirect}if(data.noPopup!=null){return}data.template=object.template;if(object.action!=null){data.action=object.action}if(object.printService!=null){data.printService=object.printService}if((data.action=="export"||data.action=="print")&&P.instances.wkprint.checkPendingPrint()===true){return}if(data.template=="chart"||data.template=="ranks"){var p=checkPlaceInd();var place=p.place;var ind=p.ind;if(place&&ind){if(data.action=="export"||data.action=="share"){var indicators=P.instances.table.cube.getIndicators();var indicator=indicators[0];var periods=P.instances.table.cube.getPeriods();var aPeriods=new String(periods).split(",");var period=aPeriods[0];var places=[];var predefined_places=[];var getplaces=P.instances.table.cube.getPlaces();for(var i=0;i<getplaces.length;++i){var place=getplaces[i];places.push(place);if(place.getType()!=PPlaceType.CUSTOM&&place.getType()!=PPlaceType.POLYGON){predefined_places.push(place)}}data.places=predefined_places;data.indicators=indicators;data.periods=periods;data.customregions=custom_places;data.ppoly=ppolygon;data.sessiondata=session.data;if(data.action=="share"){var share=new ShareOptions(data);share.start();return}else{var p=new PrintPreview(data);P.instances.printPreview=p;p.display();return}}else if(data.action=="save"){var places=[];var getplaces=P.instances.table.cube.getPlaces();for(var i=0;i<getplaces.length;i++){if(getplaces[i].getType()!=PPlaceType.CUSTOM&&getplaces[i].getType()!=PPlaceType.POLYGON){places.push(getplaces[i])}}var indicators=P.instances.table.cube.getIndicators();var periods=P.instances.table.cube.getPeriods();data.places=places;data.indicators=indicators;data.periods=periods;data.customregions=custom_places;data.ppoly=ppolygon;data.sessiondata=session.data;data.link=new PChartLink(data);data.name=data.link.name;openMySavedWork(data);return}}else{var a=data.action;if(a=="export"){var a="print/export"}if(place&&!ind){data.warning="To "+a+" a table, please add a data layer from the menu, above."}else if(!place&&ind){data.warning="To "+a+" a table, please add a location."}else if(!place&&!ind){data.warning="To "+a+" a table, please add a location and add a data layer from the menu, above."}data.okButton=null;data.cancelButton="OK"}}else if(data.template=="csv"&&data.action=="save"){var p=checkPlaceInd();if(p.place&&p.ind||p.pins){var places=[];if(PEnvironment.pageName=="tables"&&P.instances.table.cube){var indicators=P.instances.table.cube.getIndicators();var periods=P.instances.table.cube.getPeriods();var getplaces=P.instances.table.cube.getPlaces();for(var i=0;i<getplaces.length;++i){var place=getplaces[i];places.push(place)}}else{var indicators=[];var periods=[];if(p.ind){indicators=[p.ind];periods=p.ind.getPeriods()}if(p.place){places=[p.place]}}data.places=places;data.indicators=indicators;data.periods=periods;data.sessiondata=session.data;data.custom_places=custom_places;data.ppoly=ppolygon;data.printtype="list";data.link=new PChartLink(data);data.name=data.link.name;data.printTemplate="SiteList";data.printType="csv";data.okCallback=function(){return genericPrintCheck(data)}}else{if(place&&!ind){data.warning="To save a table, please add a data layer from the menu, above."}else if(!place&&ind){data.warning="To save a table, please add a location."}else if(!place&&!ind){data.warning="To save a table, please add a location and add a data layer from the menu, above."}data.okButton=null;data.cancelButton="OK"}openMySavedWork(data);return}else if(data.template=="generic"){data.cancelButton="OK";data.print=false;data.island=false;data.emailTo=false;data.emailToMessage=false;data.format=false;data.okButton=null;data.okCallback=null;data.orientation=false;data.name=null;data.checkForCustomBreaks=false}else if(data.action=="share"){var share=new ShareOptions({});share.start();return}else if((data.template=="map"||data.template=="analytic")&&data.action=="export"){if(ajax.activeRequests){data.warning="Please wait until the map finishes loading before printing.";data.okButton=null;data.cancelButton="OK"}else{var f=function(cb){data.cb=cb;var p=new PrintPreview(data);P.instances.printPreview=p;p.display()};data.checkForCustomBreaks=true;saveCustomBreaks(f)}}else if((data.template=="map"||data.template=="analytic")&&data.action=="save"){data.title="Save";var f=function(cb){data.link=new PMapLink(cb);data.name=data.link.name;data.okCallback=function(){return genericPrintCheck(data)};data.cb=cb;data.save=true;openMySavedWork(data);return};data.checkForCustomBreaks=true;saveCustomBreaks(f)}else if(data.template=="report"&&data.action=="print"){if(data.printService!=null&&data.printService==P.constants.webKitPrintService){data.link=new PReportLink;data.link.url="/"+data.link.url;data.name=data.link.name;data.printType="pdf";data.header='Your report is currently downloading. This may take several minutes.<br /><b>Note:</b> Reports no longer save to your "Saved Work" on PolicyMap';data.okButton="Print";data.okCallback=function(){var check=genericPrintCheck(data);if(check){var t="<div class='alertDialogTitle'>Your report is currently downloading.<br />This may take several minutes.</div>";t+="<div class='alertDialogHR'></div>";t+="<div class='alertDialogHeader'><b>Note:</b> Reports no longer save to your \"Saved Work\" on PolicyMap.</div>";alerter.popup(t)}return check}}else{if(ajax.activeRequests){data.warning="Please wait until the report finishes loading before printing.";data.okButton=null;data.cancelButton="OK"}else{data.link=new PReportLink;data.name=data.link.name;if(isCompTypeReport()){data.parms="http://HudReportPage/?"}else{data.parms="http://ReportPage/?"}data.parms+="html="+encodeURIComponent("<html>"+document.body.parentNode.innerHTML+"</html>");var mapParms="";mapParms+="lat="+encodeURIComponent(map.getCenter().lat());mapParms+="&long="+encodeURIComponent(map.getCenter().lng());mapParms+="&scale="+encodeURIComponent(map.getScale());mapParms+="&imgwidth="+encodeURIComponent($("#map").width());mapParms+="&imgheight="+encodeURIComponent($("#map").height());var mapLayers=PMapType.NORMAL.getMapLayers();if(mapLayers!=null&&mapLayers.length>0){mapParms+="&layers=";for(var i=0;i<mapLayers.length;i++){mapParms+=encodeURIComponent(mapLayers[i].name+",")}mapParms=mapParms.slice(0,-3)}var getParms=getUrlParams();if(getParms.cpid){mapParms+="&cpid="+getParms.cpid}else{if(getParms.area=="polygon"||getParms.area=="pradius"){mapParms+="&bid="+getParms.bid+"&pname="+encodeURIComponent(getParms.name)+"&plat="+getParms.plat+"&plng="+getParms.plng}if(getParms.pid||getParms.radius&&getParms.location){var boundary=new Array(new Object);if(getParms.pid){mapParms+="&ps=";boundary[0].id=getParms.pid}else if(getParms.radius&&getParms.location){mapParms+="&rs=";var locPoint=new PMarker(map.radiuscenter).getPoint();boundary[0].radius=getParms.radius;boundary[0].lat=locPoint.lat();boundary[0].lng=locPoint.lng()}boundary[0].f=new Object;boundary[0].f.r=243;boundary[0].f.g=161;boundary[0].f.b=46;boundary[0].f.a=178;mapParms+=encodeURIComponent(MochiKit.Base.serializeJSON(boundary))}}data.header='Your report is currently downloading. This may take several minutes. Note: Reports no longer save to your "Saved Work" on PolicyMap';data.parms+="&mparms="+encodeURIComponent(mapParms);data.print=true;data.printType="pdf";data.printTemplate="ReportPage";if(isCompTypeReport()){data.parms+="&hudparms="+encodeURIComponent(currentReport.hudmaps);data.printTemplate="HudReportPage"}if(PEnvironment.isPolicyMap){data.okButton="Print"}data.okCallback=function(){return genericPrintCheck(data)}}}}else if(data.template=="report"&&data.action=="save"){data.link=new PReportLink;data.name=data.link.name;openMySavedWork(data);return}else if(data.template=="report-wf"&&data.action=="save"){if(ajax.activeRequests){data.warning="Please wait until the report finishes loading before printing.";data.okButton=null;data.cancelButton="OK"}else{data.link=new PReportLink;data.name=data.link.name;data.okCallback=function(){return genericPrintCheck(data)}}openMySavedWork(data);return}else if(data.template=="mysavedwork"&&data.action=="shareregion"){data.title="Share Region";data.cpid=object.cpid;data.regionname=object.regionname;data.emailTo=true;data.emailToMessage=true;if(PEnvironment.isPolicyMap){data.header='Sharing a region allows you to send a region you have created to another PolicyMap subscriber. The subscriber will be notified via email and the region will appear in their <span class="my-custom-regions-title">'+dnf.getName("myCustomRegions")+'</span> and <span class="alertDialogMyPolicyMap my-policymap-title">'+dnf.getName("mySavedWork")+"</span>. To continue, please enter the email address of the PolicyMap subscriber you wish to share the following region with."}else{data.header='Sharing a region allows you to send a region you have created to another site license user. The region will appear in their <span class="my-custom-regions-title">'+dnf.getName("myCustomRegions")+'</span> and <span class="alertDialogMyPolicyMap my-policymap-title">'+dnf.getName("mySavedWork")+"</span>. To continue, please enter the email address of the site license user you wish to share the following region with."}data.okButton="Send";data.okCallback=function(){good=checkEmails(data.emailToInput,true);if(good==false){return false}var emails=data.emailToInput.val();data.emails=emails.replace(/ /g,"");data.message=data.emailToMessageTextarea.val();var message=$("textarea[id=message]").val();var f=function(msg){alerter.popup(msg,"OK")};polycreator.sharePoly(data.cpid,data.emails,data.message,f);return}}else if(data.template=="mysavedwork"&&data.action=="renameregion"){data.setName=true;data.id=object.id;data.oldName=object.regionname;data.type=object.type;var niceType=data.type;niceType="custom region";data.setNameLength=64;data.header="Please enter a new name for this "+niceType+".";data.okButton="Rename";var responseAlert=function(response){if(response===true){}else{alerter.popup(msg,"There was an error renaming this item.")}};data.okCallback=function(){data.newName=data.setNameInput.val();polycreator.renamePoly(object.id,data.newName,responseAlert);return}}else if(data.template=="subscriber"){data.title="Available to subscribers only";data.buttons=[];if(object.customText!=null){data.customText=object.customText}}else if(data.template=="subscriber-widget"){data.title="This data is available in PolicyMap to subscribers";data.buttons=[]}else if(data.template=="subscriber-uploaded-data"||data.template=="subscriber-saved-work"||data.template=="subscriber-max-reports"||data.template=="subscriber-shared-region"){data.title="Subscription required";data.buttons=[]}else if(data.template=="subscriber-dataloader"){data.title="Subscribe to PolicyMap for access to the Data Loader";data.buttons=[]}else if(data.template=="subscriber-data-download"){data.title="Subscribe to PolicyMap for access to downloading data";data.buttons=[]}else if(data.template=="custom-region"){data.title="Custom Region";data.header="Select the type of custom region you wish to build:"}else if(data.template=="coming-soon"){data.header="This feature is currently not available for beta testing.";data.buttons=[]}if(!data.checkForCustomBreaks){addAlerterContent(data)}}function addAlerterContent(data){var content=$("<div/>");content.attr("id","alertDialogContent");if(PEnvironment.isSiteLicense){if(data.action=="print"||data.action=="save"){}else if(data.action!="shareregion"){data.header=null}}var $theTable=$("<div/>");$theTable.addClass("alertDialogMainDiv");var counter=0;if(data.title!=null){var $titleDiv=$("<div/>");$titleDiv.addClass("alertDialogTitle");$titleDiv.text(data.title);$theTable.append($titleDiv);var $hr=$("<div/>");$hr.addClass("alertDialogHR");$theTable.append($hr)}if(data.header!=null){var $headerDiv=$("<div/>");$headerDiv.addClass("alertDialogHeader");$headerDiv.html(data.header);$theTable.append($headerDiv)}if(data.warning!=null){var $warningDiv=$("<div/>");$warningDiv.addClass("alertDialogWarning");$warningDiv.text(data.warning);$theTable.append($warningDiv)}var $middleDiv=$("<div/>");$theTable.append($middleDiv);if(data.template=="mysavedwork"&&data.action=="shareregion"){var $row=$("<div/>");$row.addClass("alertDialogHeaderExtra");$middleDiv.append($row);var $label=$("<div/>");$label.addClass("alertDialogStaggerContentSolo");$label.text("Region: "+data.regionname);$row.append($label)}if(data.name!=null){var $row=$("<div/>");$row.addClass("alertDialogBackground"+counterCheck(counter++));$middleDiv.append($row);var $label=$("<div/>");$label.addClass("alertDialogStaggerName");$label.text("Name: ");$row.append($label);var $content=$("<div/>");$content.addClass("alertDialogStaggerContent");$row.append($content);var $nameTitleText=$("<span />");$nameTitleText.attr("id","nameTitleText");$nameTitleText.text(data.name);$content.append($nameTitleText);var $nameTitle=$("<input/>");$nameTitle.attr({type:"text",name:"edit_report_title",id:"editTitleInput",value:data.name});$nameTitle.css("width","315px");var setTitle=function(e){$nameTitle.hide();$nameTitleText.text($nameTitle.val());$nameTitleText.show();$editTitleSpan.show();e.stopPropagation();e.preventDefault();return false};$nameTitle.bind("keyup",function(e){if(e.keyCode==13){setTitle(e)}});$nameTitle.bind("blur",function(e){setTitle(e)});$nameTitle.hide();$content.append($nameTitle);var $editTitleSpan=$("<span/>");$editTitleSpan.attr("id","editTitleSpan");var $editTitleLink=$("<span/>");$editTitleLink.addClass("simulink");$editTitleLink.text("change name");$editTitleLink.click(function(e){$nameTitleText.hide();$editTitleSpan.hide();$nameTitle.show();$nameTitle.focus();e.stopPropagation();e.preventDefault();return false});$editTitleSpan.append($("<span> (</span>"),$editTitleLink,$("<span>)</span>"));$content.append($editTitleSpan)}else if(data.okText!=null){var $row=$("<div/>");$row.addClass("alertDialogBackground"+counterCheck(counter++));$middleDiv.append($row);var $okText=$("<div/>");$okText.html(data.okText);$row.append($okText)}if(data.setName==true){var $row=$("<div/>");$row.addClass("alertDialogBackground"+counterCheck(counter++));$middleDiv.append($row);var $label=$("<div/>");$label.addClass("alertDialogStaggerName");$label.text("Name: ");$row.append($label);var $content=$("<div/>");$content.addClass("alertDialogStaggerContent");$row.append($content);data.setNameInput=$("<input/>");data.setNameInput.attr({type:"text",id:"setNameInput"});data.setNameInput.css("width","315px");if(data.setNameLength){data.setNameInput.attr("maxlength",data.setNameLength)}if(data.oldName!=null){data.setNameInput.val(data.oldName)}$content.append(data.setNameInput)}if(data.emailTo==true){var $emailToDiv=$("<div />");$emailToDiv.addClass("alertDialogBackground"+counterCheck(counter++));var $emailToSpan=$("<div/>");$emailToSpan.addClass("alertDialogStaggerSolo");$emailToSpan.html("Email To:");$emailToDiv.append($emailToSpan);data.emailToInput=$("<input/>");data.emailToInput.attr({type:"text",id:"emailToInput"});data.emailToInput.css("width","475px");data.onLoad=function(){$(data.emailToInput).focus()};data.emailToInput.bind("blur",function(){checkEmails(data.emailToInput)});data.emailToInput.on("remove",function(){$(this).poshytip("destroy")});$emailToDiv.append(data.emailToInput);$theTable.append($emailToDiv)}if(data.emailToMessage==true){var emailMessageDiv=$("<div />");emailMessageDiv.addClass("alertDialogBackground"+counterCheck(counter++));var emailToMessageSpan=$("<span/>");$(emailToMessageSpan).addClass("alertDialogText");var emailToMessageHTML="Message: (Optional) ";$(emailToMessageSpan).html(emailToMessageHTML);emailMessageDiv.append(emailToMessageSpan);var br=$("<br/>");emailMessageDiv.append(br);data.emailToMessageTextarea=$("<textarea/>");data.emailToMessageTextarea.css("width","475px");$(data.emailToMessageTextarea).attr({cols:"60",rows:"5",id:"emailToMessageTextarea"});$(data.emailToMessageTextarea).bind("keyup",function(e){$(emailToMessageSpan).html(emailToMessageHTML+" - "+data.emailToMessageTextarea.val().length+" characters")});emailMessageDiv.append(data.emailToMessageTextarea);$theTable.append(emailMessageDiv)}if(data.format==true){var pdfString="PDF";var pngString="High Resolution (PNG)";var jpgString="Low Resolution (JPG)";if(data.template=="chart"||data.template=="ranks"){pngString="PNG";jpgString="JPG"}var $row=$("<div/>");$row.addClass("alertDialogBackground"+counterCheck(counter++));$middleDiv.append($row);var $label=$("<div/>");$label.addClass("alertDialogStaggerName");$label.html("Format:");$row.append($label);var $content=$("<div/>");$content.addClass("alertDialogStaggerContent");$row.append($content);if(PEnvironment.pageName!="tables"){var $pdf=$("<div/>");data.pdfInput=$("<input/>");$(data.pdfInput).attr({id:"pdfCheckbox",name:"printType",type:"radio",checked:true});$pdf.append($(data.pdfInput));var $pdfLabel=$("<label/>");$pdfLabel.attr("for","pdfCheckbox");$pdfLabel.text(pdfString);$pdf.append($pdfLabel);$content.append($pdf);$(data.pdfInput).bind("click",function(){checkPrintFormat(data.pdfInput,true)});$(data.pdfInput).on("remove",function(){$(this).poshytip("destroy")})}var $png=$("<div/>");data.pngInput=$("<input/>");$(data.pngInput).attr({id:"pngCheckbox",name:"printType",type:"radio"});if(PEnvironment.pageName=="tables"){$(data.pngInput).attr({checked:true,disabled:true})}$png.append($(data.pngInput));var $pngLabel=$("<label/>");$pngLabel.attr("for","pngCheckbox");$pngLabel.text(pngString);$png.append($pngLabel);$content.append($png);$(data.pngInput).bind("click",function(){checkPrintFormat(data.pdfInput,true)});$(data.pngInput).on("remove",function(){$(this).poshytip("destroy")})}if(data.format==true&&data.orientation==true){var $row=$("<div/>");$row.addClass("alertDialogBackground"+counterCheck(counter++));$middleDiv.append($row);var $label=$("<div/>");$label.addClass("alertDialogStaggerName");$label.text("Orientation:");$row.append($label);var $content=$("<div/>");$content.addClass("alertDialogStaggerContent");$row.append($content);$landscapeInput=$("<input/>");$landscapeInput.attr({id:"landscape",name:"orientation",type:"radio",value:"landscape",checked:"checked"});$content.append($landscapeInput);var $landscapeLabel=$("<label/>");$landscapeLabel.attr("for","landscape");$landscapeLabel.text("Landscape");$content.append($landscapeLabel);$portraitInput=$("<input/>");$portraitInput.attr({id:"portrait",name:"orientation",type:"radio",value:"portrait"});$content.append($portraitInput);var $portraitLabel=$("<label/>");$portraitLabel.attr("for","portrait");$portraitLabel.text("Portrait");$content.append($portraitLabel)}if(data.island==true){var $row=$("<div />");$row.addClass("alertDialogBackground"+counterCheck(counter++));$middleDiv.append($row);var $label=$("<div />");$label.addClass("alertDialogStaggerName");$label.text("Shading:");$row.append($label);var $content=$("<div />");$content.addClass("alertDialogStaggerContent");$row.append($content);$allDiv=$("<div />");$allInput=$("<input/>");$allInput.attr({id:"shadeAll",name:"island",type:"radio",value:"",checked:"checked"});$allDiv.append($allInput);var $allLabel=$("<label />");$allLabel.attr("for","shadeAll");$allLabel.text("Shade entire map");$allDiv.append($allLabel);$content.append($allDiv);$islandDiv=$("<div />");$islandInput=$("<input />");$islandInput.attr({id:"shadeIsland",name:"island",type:"radio",value:"region"});$islandDiv.append($islandInput);var $islandLabel=$("<label />");$islandLabel.attr("for","shadeIsland");$islandLabel.text("Only shade selected region(s)");$islandDiv.append($islandLabel);$content.append($islandDiv)}if(data.template=="subscriber"){var $row=$("<div/>");$middleDiv.append($row);var $blurb=$("<div/>");$blurb.addClass("alertDialogSubscribeBlurb");$row.append($blurb);if(data.customText){$blurb.append(data.customText)}else{$a=$("<a/>");$a.on("click",function(){showLoginModal();return false});$a.text("Login");$blurb.append($a);$blurb.append(" to access, or ");$a=$("<a/>");$a.text("sign up for PolicyMap");$a.attr("class","simulink");$a.click(function(){var defaultTabCode=null;if(PEnvironment.pageName=="reports"){defaultTabCode="s"}showSignupOrUpgradeModal(defaultTabCode)});$blurb.append($a);$blurb.append(".")}}if(data.template=="subscriber-widget"){var $row=$("<div/>");$middleDiv.append($row);var $blurb=$("<div/>");$blurb.addClass("alertDialogSubscribeBlurb");$row.append($blurb);$a=$("<a/>");$a.text("Click here");$a.attr("class","simulink");$a.click(function(){showSignupOrUpgradeModal()});$blurb.append($a);$blurb.append(" if you're like to learn more.")}if(data.template=="subscriber-uploaded-data"){var $row=$("<div/>");$middleDiv.append($row);var $blurb=$("<div/>");$blurb.addClass("alertDialogSubscribeBlurb");$row.append($blurb);$a=$("<a/>");$a.text("Sign up for PolicyMap");$a.attr("class","simulink");$a.click(function(){showSignupOrUpgradeModal()});$blurb.append($a);$blurb.append(" to access your uploaded data.")}if(data.template=="subscriber-saved-work"){var $row=$("<div/>");$middleDiv.append($row);var $blurb=$("<div/>");$blurb.addClass("alertDialogSubscribeBlurb");$row.append($blurb);$a=$("<a/>");$a.text("Sign up for PolicyMap");$a.attr("class","simulink");$a.click(function(){showSignupOrUpgradeModal()});$blurb.append($a);$blurb.append(" to access your saved work.")}if(data.template=="subscriber-max-reports"){var $row=$("<div/>");$middleDiv.append($row);var $blurb=$("<div/>");$blurb.addClass("alertDialogSubscribeBlurb");$row.append($blurb);$blurb.append("You have reached the maximum report generations for a trial user. ");$a=$("<a/>");$a.text("Sign up for PolicyMap");$a.attr("class","simulink");$a.click(function(){showUpgradeModal()});$blurb.append($a);$blurb.append(" to generate more reports.")}if(data.template=="subscriber-shared-region"){var $row=$("<div/>");$middleDiv.append($row);var $blurb=$("<div/>");$blurb.addClass("alertDialogSubscribeBlurb");$row.append($blurb);$a=$("<a/>");$a.text("Login");$a.attr("class","simulink");$a.click(function(){showLoginModal()});$blurb.append($a);$blurb.append(" to view your custom region.")}if(data.template=="subscriber-dataloader"||data.template=="subscriber-data-download"){if(data.template=="subscriber-dataloader"){var linkText="About the Data Loader";var linkURL="https://www.policymap.com/support/tutorial/using-policymap-spreadsheet-data-loader/";var linkClass="noAlert"}else if(data.template=="subscriber-data-download"){var linkText="About downloading data";var linkURL="https://www.policymap.com/support/tutorial/data-download/";var linkClass=null}var $row=$("<div/>");$middleDiv.append($row);var $blurb=$("<div/>");$blurb.addClass("alertDialogSubscribeBlurb");$row.append($blurb);$a1=$("<a />");$a1.text(linkText);$a1.attr({href:linkURL,target:"_blank"});if(linkClass!=null){$a1.addClass(linkClass)}$blurb.append($a1);$br=$("<br />");$blurb.append($br);if(isPublicUser()){$a2=$("<a />");$a2.text("Login to access");$a2.addClass("simulink");$a2.click(function(){showLoginModal()});$blurb.append($a2);$blurb.append(", or ")}$a3=$("<a />");$a3.text("Sign up for PolicyMap");$a3.addClass("simulink");$a3.click(function(){showSignupOrUpgradeModal("s")});$blurb.append($a3)}if(data.template=="custom-region"){var $row=$("<div/>");$row.addClass("alertDialogBackground"+counterCheck(counter++));$middleDiv.append($row);var $label=$("<div/>");$label.addClass("alertDialogStaggerName");$label.html("Type:");$row.append($label);var $content=$("<div/>");$content.addClass("alertDialogStaggerContent");$row.append($content);if(polycreator.options.turnDrawOn){var $custom=$("<div/>");data.customInput=$("<input/>");$(data.customInput).attr({id:"drawcustom",name:"customregiontype",type:"radio",value:"1",checked:""});$custom.append($(data.customInput));var $customLabel=$("<label/>");$customLabel.attr("for","drawcustom");$customLabel.text("Drawn Custom Region");$custom.append($customLabel);$content.append($custom)}if(polycreator.options.turnAssembleOn){var $aCustom=$("<div/>");data.aCustomInput=$("<input/>");$(data.aCustomInput).attr({id:"assemblecustom",name:"customregiontype",type:"radio",value:"2"});$aCustom.append($(data.aCustomInput));var $aCustomLabel=$("<label/>");$aCustomLabel.attr("for","assemblecustom");$aCustomLabel.text("Assembled Custom Region");$aCustom.append($aCustomLabel);$content.append($aCustom)}if(polycreator.options.turnRadiusOn){var $radius=$("<div/>");data.radiusInput=$("<input/>");$(data.radiusInput).attr({id:"circlecustom",name:"customregiontype",type:"radio",value:"3"});$radius.append($(data.radiusInput));var $radiusLabel=$("<label/>");$radiusLabel.attr("for","circlecustom");$radiusLabel.text("Radius Region");$radius.append($radiusLabel);$content.append($radius)}data.okButton="OK";data.okCallback=function(){selectCustomRegionType($("input[name=customregiontype]:checked").val())};data.cancelCallback=function(){cancelCustomRegion()}}content.append($theTable);if(data.cancelCallback==null){data.cancelCallback=function(){return true}}if(typeof data.onLoad=="function"){content.onLoad=data.onLoad}if(data.buttons==null){alerter.popup(content,data.cancelButton,data.okButton,data.okCallback,data.cancelCallback)}else{var newContent={content:content,buttons:data.buttons};alerter.popup(newContent)}}function isCompTypeReport(){if(currentReport.reportType=="hud"||currentReport.reportType=="wellsfargo"){return true}else{return false}}function counterCheck(counter){if(counter%2==0){return"On"}return"Off"}AutoSuggest=function(){this.itemList=null;this.selectedItem=null;this.currentRequest=0;this.eventTypes=new Object;this.eventTypes.select="select";this.eventManager=new _eventManager;for(var event in this.eventTypes){this.eventManager.registerEventID(event)}};AutoSuggest.prototype.attach=function(textbox,type){var self=this;var callCatchKey=function(e){e=e||window.event;if(e){self.catchKey(textbox,type,e)}};PEvent.addListener(textbox,"keydown",function(e){callCatchKey(e)});PEvent.addListener(textbox,"input",function(e){callCatchKey(e)});PEvent.addListener(textbox,"propertychange",function(e){callCatchKey(e)})};AutoSuggest.prototype.catchKey=function(textbox,type,e){if(!$(textbox).is(":visible")){return}e=e||window.event;var keyCode=e.keyCode;var keyType=e.type;var asDropdown=this.getAutoSuggest();if(keyType=="keydown"&&keyCode==27){this.removeAutoSuggest()}else if(keyType=="keydown"&&keyCode==9){this.removeAutoSuggest()}else if(keyType=="keydown"&&asDropdown&&(keyCode==38||keyCode==40)){if(this.itemList&&this.itemList.length>0&&this.itemList[0]&&this.itemList[0].name&&this.itemList[0].name!="NA"){var selectedLi=document.getElementById("as"+this.selectedItem);switch(keyCode){case 38:if(selectedLi==null){this.selectedItem=this.itemList.length-1}else{document.getElementById("as"+this.selectedItem).className="";this.selectedItem--;if(this.selectedItem<0){this.selectedItem=this.itemList.length-1}}break;case 40:if(this.selectedItem==null){this.selectedItem=0}else{document.getElementById("as"+this.selectedItem).className="";this.selectedItem++;if(this.selectedItem>this.itemList.length-1){this.selectedItem=0}}break}document.getElementById("as"+this.selectedItem).className="selected"}}else if(keyType=="keydown"&&keyCode==13){if(this.selectedItem!=null){var itemSelected=this.itemList[this.selectedItem];this.clicked(itemSelected,type,textbox)}else if(this.getAutoSuggest()!=null){this.removeAutoSuggest()}}else if(keyType=="input"||keyType=="propertychange"||keyType=="keydown"&&!asDropdown&&(keyCode==38||keyCode==40)){var searchString=textbox.value;if(type=="p"){searchString=searchString.split(",",1)[0];if(/^\d+.*\s/.test(searchString)){this.removeAutoSuggest();return}}var minChars=3;var maxChars=null;if(type=="p"){var placeTypeCode=this.getPlaceTypeCode(textbox);if(placeTypeCode=="ct"){minChars=10}else if(placeTypeCode=="bg"){minChars=11}}else if(type=="d"){if(datasetSearch.currentDataset&&(datasetSearch.currentDataset.id==112350||datasetSearch.currentDataset.id==112450)){minChars=1}}searchStringLen=searchString.length;if(searchStringLen>=minChars&&(maxChars==null||searchStringLen<=maxChars)){this.build(textbox,type,searchString)}else{this.removeAutoSuggest()}}};AutoSuggest.prototype.build=function(textbox,type,searchString){this.removeAutoSuggest();if(type=="p"){var placeTypeCode=this.getPlaceTypeCode(textbox);var placeState="";if(placeTypeCode=="s"){placeState="&sst="+this.search.textboxState.options[this.search.textboxState.selectedIndex].title}if(placeTypeCode){this.currentRequest++;ajax.call({url:PEnvironment.autosuggestUrl+"&rqid="+this.currentRequest+"&act="+encodeURIComponent(placeTypeCode)+"&ss="+encodeURIComponent(searchString)+placeState,dataType:"json",context:this,success:function(response){if(response==null||response.ast==null||response.ast.rqid==null||response.ast.results==null){return}var rqid=response.ast.rqid;if(rqid!=this.currentRequest){return}var places=response.ast.results;this.itemList=places;var placesList="";var placeYears=function(place){var years=[];for(var i=0;i<place.bounds.length;i++){if(place.bounds[i].year&&place.bounds[i].year!=""){years.push(place.bounds[i].year)}}var numYears=years.length;var yearString="";if(numYears>0){years.sort();if(numYears>1){years[numYears-1]=" and "+years[numYears-1];if(numYears>2){for(var i=0;i<numYears-1;i++){years[i]+=", "}}}yearString='<span class="years">'+years.join("")+" boundary</span>"}return yearString};if(places.length<1){placesList+="No results found."}else{placesList+="<ul>";if(placeTypeCode=="p"||placeTypeCode=="ct"||placeTypeCode=="bg"){for(var i=0;i<places.length;i++){var curPlace=places[i];var curPlaceType=getPlaceTypeById(curPlace.typeId);if(curPlace.bounds==null||curPlace.bounds.length<1){continue}var placeName=curPlace.name;if(curPlaceType!=PPlaceType.STATE&&curPlaceType!=PPlaceType.COUNTRY){placeName+=", "+curPlace.state}placesList+='<li id="as'+i+'">'+placeName+" ("+curPlaceType.getName()+")"+placeYears(curPlace)+"</li>"}}else if(placeTypeCode=="s"){for(var i=0;i<places.length;i++){var curPlace=places[i];if(curPlace.bounds==null||curPlace.bounds.length<1){continue}placesList+='<li id="as'+i+'">'+curPlace.name+"</li>"}}placesList+="</ul>"}var suggest=this.createDivWithEvents(placesList,type,textbox);document.body.appendChild(suggest)}})}}else if(type=="d"){var set=datasetSearch.getCurrentDataset();if(set==null){return}var setId=set.id;var setType=set.type;this.currentRequest++;var act=setType=="old"?"d":"dd";ajax.call({url:PEnvironment.autosuggestUrl+"&rqid="+this.currentRequest+"&act="+act+"&di="+setId+"&ss="+encodeURIComponent(searchString),dataType:"json",context:this,success:function(response){if(response==null||response.ast==null||response.ast.rqid==null||response.ast.results==null){return}if(response.ast.rqid!=this.currentRequest){return}var sites=response.ast.results;this.itemList=sites;var sitesList="";if(sites.length<1){sitesList+="No results found."}else{sitesList+="<ul>";for(var i=0;i<sites.length;i++){sitesList+='<li id="as'+i+'">'+sites[i].name+" ("+sites[i].col+")</li>"}sitesList+="</ul>"}var suggest=this.createDivWithEvents(sitesList,type,textbox);suggest.className="smallText";$(textbox).parent().append(suggest);if(isWidgetPage()){P.instances.legendPanel.update($(suggest))}}})}};AutoSuggest.prototype.createDivWithEvents=function(ulHtml,type,textbox){var suggest=document.createElement("div");suggest.id="autosuggest";var textboxpos=getObjectPosition(textbox);suggest.style.width=textbox.offsetWidth-10+"px";if(PEnvironment.pageName=="citi-reports"){suggest.style.width="400px"}if(isWidgetPage()){var t=$(textbox).parent().outerHeight();var w=$(textbox).parent().width();suggest.style.top=t+"px";suggest.style.left="0px";suggest.style.width=w+"px"}else{var t=$(textbox).outerHeight()
;var w=$(textbox).width();suggest.style.top=t+"px";suggest.style.left="0px";suggest.style.width=w+"px"}suggest.innerHTML=ulHtml;var liList=suggest.getElementsByTagName("li");this.selectedItem=null;var as=this;for(var i=0;i<liList.length;i++){PEvent.addListener(liList[i],"click",function(num){return function(e){as.clicked(as.itemList[num],type,textbox)}}(i));PEvent.addListener(liList[i],"mouseover",function(num){return function(e){as.mouseover(num)}}(i))}document.body.onclick=function(e){e=e||window.event;var clickedObject=e.target||e.srcElement;if(clickedObject!=textbox){as.removeAutoSuggest()}};return suggest};AutoSuggest.prototype.mouseover=function(itemNum){if(this.selectedItem==null||this.selectedItem!=itemNum){if(this.selectedItem!=null){document.getElementById("as"+this.selectedItem).className=""}document.getElementById("as"+itemNum).className="selected";this.selectedItem=itemNum}};AutoSuggest.prototype.clicked=function(item,type,textbox){this.removeAutoSuggest();if(type=="p"){textbox.value=item.value;var placeTypeCode=this.getPlaceTypeCode(textbox);if(placeTypeCode=="p"||placeTypeCode=="s"||placeTypeCode=="ct"||placeTypeCode=="bg"){var matrixOrder=boundaryMatrix.getMatrixOrder(true);var typeId=item.typeId;var defs=[];for(var i=0;i<matrixOrder.length;i++){var curMatrixId=matrixOrder[i];if(boundaryMatrix.isTypeIdInMatrix(typeId,curMatrixId)){defs.push(boundaryMatrix.getDefinitionIdForTypeId(typeId,curMatrixId))}}defLoop:for(var i=0;i<defs.length;i++){var matchDef=defs[i];boundaryLoop:for(var j=0;j<item.bounds.length;j++){if(matchDef==item.bounds[j].defId){selectPlace(item.bounds[j].bid,true);break defLoop}}}}}else if(type=="d"){textbox.value=item.name;datasetSearch.loadSite(item)}this.eventManager.triggerEvent("select")};AutoSuggest.prototype.getAutoSuggest=function(){return document.getElementById("autosuggest")};AutoSuggest.prototype.removeAutoSuggest=function(){var suggest=this.getAutoSuggest();if(suggest!=null){$(suggest).remove();this.removeAutoSuggest()}else{this.selectedItem=null;this.itemList=null}if(isWidgetPage()){P.instances.legendPanel.update()}};AutoSuggest.prototype.getSelectedItem=function(){return this.selectedItem};AutoSuggest.prototype.getPlaceTypeCode=function(textbox){var placeTypeCode=null;if(this.search.textbox.id=="as_searchthemap"||this.search.textbox.id==""){placeTypeCode="p"}else if(this.search.textbox.id=="as_school"){placeTypeCode="s"}else if(this.search.textbox.id=="as_census"){placeTypeCode="ct"}else if(this.search.textbox.id=="as_block"){placeTypeCode="bg"}return placeTypeCode};AutoSuggest.prototype.addListener=function(eventId,func){this.eventManager.registerForEvent(eventId,[],func)};BoundariesMenu=function($c){this.$container=$c;this.$menu=$(".menu-settings").find(".dd-container");this.layers=pMapLayer.nonCategorizedLayers;this.buildMenu()};BoundariesMenu.prototype={show:function(){},buildMenu:function(){var $tab=$("<li />",{html:"<a>Boundaries</a>",class:"boundaries-tab"});this.$container.append($tab);var layers=this.layers;var $ul=$("<ul />");$tab.append($ul);for(var i=0;i<layers.length;i++){var l=layers[i];var $li=$("<li />");$li.attr("id",l.name);var $a=$("<a />",{html:'<span class="icon"></span>'+l.title});$a.click(function(){});$li.append($a);$ul.append($li)}}};BoundaryMatrix=function(data){this.data=JSON.parse(data);this.matrixOrder=this.data.matrixOrder;delete this.data.matrixOrder};BoundaryMatrix.prototype.validateMatrixId=function(matrixId){if(!this.data[matrixId]){throw"Matrix ID: "+matrixId+" not present."}};BoundaryMatrix.prototype.getCurrentMatrixId=function(overrideDefaultMatrixId){var currentMatrixId=this.matrixOrder[0];if(PEnvironment.pageName=="maps"||PEnvironment.pageName=="widget"){var curInd=map.getIndicator();if(curInd!=null){currentMatrixId=curInd.matrixIds[curInd.curPerIndex]}else if(overrideDefaultMatrixId!=null){currentMatrixId=overrideDefaultMatrixId}}else if(PEnvironment.pageName=="tables"){if(global_indicators&&global_indicators.length>0){curInd=global_indicators[0];currentMatrixId=curInd.matrixIds[curInd.curPerIndex]}else if(overrideDefaultMatrixId!=null){currentMatrixId=overrideDefaultMatrixId}}return currentMatrixId};BoundaryMatrix.prototype.getMatrixOrder=function(currentMatrixFirst,overrideDefaultMatrixId){var currentMatrixId=this.getCurrentMatrixId(overrideDefaultMatrixId);if(!currentMatrixFirst||this.matrixOrder[0]==currentMatrixId){return this.matrixOrder}var newMatrixOrder=this.matrixOrder.slice(0);var index=$.inArray(currentMatrixId,newMatrixOrder);newMatrixOrder.splice(index,1);newMatrixOrder.unshift(currentMatrixId);return newMatrixOrder};BoundaryMatrix.prototype.getMatrixId=function(matrixId){if(matrixId!=null){this.validateMatrixId(matrixId)}else{matrixId=this.getCurrentMatrixId()}return matrixId};BoundaryMatrix.prototype.getDefinitionIdForTypeId=function(boundaryTypeId,matrixId){if(boundaryTypeId==null){throw"No argument specified"}matrixId=this.getMatrixId(matrixId);return this.getDefinitionForTypeId(boundaryTypeId,matrixId,true)};BoundaryMatrix.prototype.getDefinitionForTypeId=function(boundaryTypeId,matrixId,idOnly){if(boundaryTypeId==null){throw"No argument specified"}matrixId=this.getMatrixId(matrixId);var returnArray=$.isArray(boundaryTypeId);if(!returnArray){boundaryTypeId=[boundaryTypeId]}var defs=[];for(var i=0;i<boundaryTypeId.length;i++){var curTypeId=boundaryTypeId[i];if(this.data[matrixId][curTypeId]){if(idOnly){if(returnArray){defs.push(this.data[matrixId][curTypeId].boundaryDefinitionId)}else{return this.data[matrixId][curTypeId].boundaryDefinitionId}}else{var def=$.extend({},this.data[matrixId][curTypeId]);if(returnArray){defs.push(def)}else{return def}}}}if(!returnArray||defs.length<1){throw"No definition found in matrix id "+matrixId+" for type id "+boundaryTypeId}return defs};BoundaryMatrix.prototype.getTypeIdForDefinitionId=function(boundaryDefinitionId){if(boundaryDefinitionId==null){throw"No argument specified"}return this._getPropertyByDefinitionId(boundaryDefinitionId,"typeId")};BoundaryMatrix.prototype.getDisplayNameForDefinitionId=function(boundaryDefinitionId){if(boundaryDefinitionId==null){throw"No argument specified"}return this._getPropertyByDefinitionId(boundaryDefinitionId,"displayName")};BoundaryMatrix.prototype.getSimpleNameForDefinitionId=function(boundaryDefinitionId){if(boundaryDefinitionId==null){throw"No argument specified"}return this._getPropertyByDefinitionId(boundaryDefinitionId,"simpleName")};BoundaryMatrix.prototype.getDisplayYearForDefinitionId=function(boundaryDefinitionId){if(boundaryDefinitionId==null){throw"No argument specified"}return this._getPropertyByDefinitionId(boundaryDefinitionId,"displayYear")};BoundaryMatrix.prototype.allowDownloadWithOtherDataForDefinitionId=function(boundaryDefinitionId){if(boundaryDefinitionId==null){throw"No argument specified"}return this._getPropertyByDefinitionId(boundaryDefinitionId,"allowDownloadWithOtherData")};BoundaryMatrix.prototype.getMatrixIdForDefinitionId=function(boundaryDefinitionId){if(boundaryDefinitionId==null){throw"No argument specified"}return this._getPropertyByDefinitionId(boundaryDefinitionId,"matrixId")};BoundaryMatrix.prototype.getAllMatrixIdsForDefinitionId=function(boundaryDefinitionId){if(boundaryDefinitionId==null){throw"No argument specified"}return this._getPropertyByDefinitionId(boundaryDefinitionId,"allMatrixIdsForDefinition")};BoundaryMatrix.prototype.getAllBoundaryDefinitionIdsForTypeId=function(boundaryTypeId){if(boundaryTypeId==null){throw"No argument specified"}return this.getAllBoundaryDefinitionsForTypeId(boundaryTypeId,true)};BoundaryMatrix.prototype.getAllBoundaryDefinitionsForTypeId=function(boundaryTypeId,idsOnly){if(boundaryTypeId==null){throw"No argument specified"}var defs=[];var addedDefs=[];for(var i=0;i<this.matrixOrder.length;i++){var curMatrixId=this.matrixOrder[i];var curMatrix=this.data[curMatrixId];for(curTypeId in curMatrix){if(curTypeId==boundaryTypeId){var defId=curMatrix[curTypeId].boundaryDefinitionId;if(!addedDefs[defId]){if(idsOnly){defs.push(defId)}else{var curMatrixIdArray=new Array;curMatrixIdArray["matrixid"]=curMatrixId;var def=$.extend({},curMatrix[curTypeId],curMatrixIdArray);defs.push(def)}addedDefs[defId]=true}break}}}return defs};BoundaryMatrix.prototype.getAllBoundaryTypeIdsForMatrix=function(matrixId){matrixId=this.getMatrixId(matrixId);var matrix=[];for(var i in this.data[matrixId]){matrix.push(parseInt(i))}return matrix};BoundaryMatrix.prototype.isTypeIdInMatrix=function(boundaryTypeId,matrixId){if(boundaryTypeId==null){throw"No argument specified"}matrixId=this.getMatrixId(matrixId);if(this.data[matrixId][boundaryTypeId]){return true}else{return false}};BoundaryMatrix.prototype.isDefinitionIdInMatrix=function(boundaryDefinitionId,matrixId){if(boundaryDefinitionId==null){throw"No argument specified"}matrixId=this.getMatrixId(matrixId);var matrix=this.data[matrixId];for(typeId in matrix){if(matrix[typeId].boundaryDefinitionId==boundaryDefinitionId){return true}}return false};BoundaryMatrix.prototype._getPropertyByDefinitionId=function(boundaryDefinitionId,propertyName){var allMatrixIds=[];var matrixOrder=this.getMatrixOrder(true);for(var i=0;i<matrixOrder.length;i++){var matrixId=matrixOrder[i];var curMatrix=this.data[matrixId];for(typeId in curMatrix){if(curMatrix[typeId].boundaryDefinitionId==boundaryDefinitionId){if(propertyName=="typeId"){return typeId}else if(propertyName=="matrixId"){return matrixId}else if(propertyName=="allMatrixIdsForDefinition"){allMatrixIds.push(matrixId)}else{return curMatrix[typeId][propertyName]}}}}if(propertyName=="allMatrixIdsForDefinition"){return allMatrixIds}throw"Definition "+boundaryDefinitionId+" not found."};BoundaryTypes=function(data){this.data=data;this.typesById={};this.placeTypes=[];this.containmentPlaceTypes=[];this.typesForContainmentsById={};this.indicatorPlaceTypes=[];this.typesForIndicatorsById={};this.createPlaceTypes()};BoundaryTypes.prototype.createPlaceTypes=function(){var types=this.data.types;for(var i=0;i<types.length;i++){var t=types[i];var ptype=new PPlaceType(t);PPlaceType[t.constant]=ptype;if(ptype.isForIndicator()){this.indicatorPlaceTypes.push(ptype);this.typesForIndicatorsById[t.id]=ptype}if(ptype.isForContainments()){this.containmentPlaceTypes.push(ptype);this.typesForContainmentsById[t.id]=ptype}this.placeTypes.push(ptype);this.typesById[t.id]=ptype}PPlaceType.CUSTOM=new PPlaceType({id:0,display_name:"Custom"});PPlaceType.POLYGON=new PPlaceType({id:95,display_name:"Polygon"});this.typesById[PPlaceType.CUSTOM.id]=PPlaceType.CUSTOM;this.typesById[PPlaceType.POLYGON.id]=PPlaceType.POLYGON;this.setContainmentZoomSettings();this.setContainmentOrder();this.setLegendZoomSettings()};BoundaryTypes.prototype.getTypeById=function(id){var t=this.typesById[id];if(typeof t=="undefined"){t=null}return t};BoundaryTypes.prototype.hasTypeForIndicatorsByTypeId=function(id){var t=this.getTypeForIndicatorsByTypeId(id);var b=false;if(t){b=true}return b};BoundaryTypes.prototype.getTypeForIndicatorsByTypeId=function(id){var t=this.typesForIndicatorsById[id];if(typeof t=="undefined"){t=null}return t};BoundaryTypes.prototype.hasTypeForContainmentsByTypeId=function(id){var t=this.getTypeForContainmentsByTypeId(id);var b=false;if(t){b=true}return b};BoundaryTypes.prototype.getTypeForContainmentsByTypeId=function(id){var t=this.typesForContainmentsById[id];if(typeof t=="undefined"){t=null}return t};BoundaryTypes.prototype.getTypeByConstant=function(c){var t=PPlaceType[c];if(typeof t=="undefined"){t=null}return t};BoundaryTypes.prototype.getindicatorPlaceTypes=function(c){return this.indicatorPlaceTypes};BoundaryTypes.prototype.getPlaceTypes=function(c){return this.placeTypes};BoundaryTypes.prototype.setLegendZoomSettings=function(c){var types=this.indicatorPlaceTypes;var zooms=[];for(var i=0;i<types.length;i++){var t=types[i];var z=t.legend_zoom_level;if(z!=null){if(!zooms[z]){zooms[z]=[]}zooms[z].push(t)}}PPlaceTypeConfig.PLEGEND=new PPlaceTypeConfig;PPlaceTypeConfig.PLEGEND.zooms=zooms};BoundaryTypes.prototype.setContainmentZoomSettings=function(c){var types=this.containmentPlaceTypes;var zooms=[];for(var i=0;i<types.length;i++){var t=types[i];var z=t.containment_zoom_level;if(z!=null){zooms[z]=t}}PPlaceTypeConfig.PPLACECONTAINMENT=new PPlaceTypeConfig;PPlaceTypeConfig.PPLACECONTAINMENT.zooms=zooms};BoundaryTypes.prototype.setContainmentOrder=function(){var types=this.indicatorPlaceTypes;PPlaceTypeConfig.containmentOrder=types.sort(function(a,b){return a.sort_order-b.sort_order})};ChrisVeness={};ChrisVeness.distVincenty=function(p1,p2){var a=6378137,b=6356752.3142,f=1/298.257223563;var L=p2.lon-p1.lon;var U1=Math.atan((1-f)*Math.tan(p1.lat));var U2=Math.atan((1-f)*Math.tan(p2.lat));var sinU1=Math.sin(U1),cosU1=Math.cos(U1);var sinU2=Math.sin(U2),cosU2=Math.cos(U2);var lambda=L,lambdaP=2*Math.PI;var iterLimit=20;while(Math.abs(lambda-lambdaP)>1e-12&&--iterLimit>0){var sinLambda=Math.sin(lambda),cosLambda=Math.cos(lambda);var sinSigma=Math.sqrt(cosU2*sinLambda*(cosU2*sinLambda)+(cosU1*sinU2-sinU1*cosU2*cosLambda)*(cosU1*sinU2-sinU1*cosU2*cosLambda));if(sinSigma==0)return 0;var cosSigma=sinU1*sinU2+cosU1*cosU2*cosLambda;var sigma=Math.atan2(sinSigma,cosSigma);var sinAlpha=cosU1*cosU2*sinLambda/sinSigma;var cosSqAlpha=1-sinAlpha*sinAlpha;var cos2SigmaM=cosSigma-2*sinU1*sinU2/cosSqAlpha;if(isNaN(cos2SigmaM))cos2SigmaM=0;var C=f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha));lambdaP=lambda;lambda=L+(1-C)*f*sinAlpha*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)))}if(iterLimit==0)return NaN;var uSq=cosSqAlpha*(a*a-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)-B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));var s=b*A*(sigma-deltaSigma);s=s.toFixed(3);return parseFloat(s)};ChrisVeness.destVincenty=function(p1,brng,dist){var a=6378137,b=6356752.3142,f=1/298.257223563;var s=dist;var alpha1=ChrisVeness.llToRad(brng);var sinAlpha1=Math.sin(alpha1),cosAlpha1=Math.cos(alpha1);var tanU1=(1-f)*Math.tan(p1.lat);var cosU1=1/Math.sqrt(1+tanU1*tanU1),sinU1=tanU1*cosU1;var sigma1=Math.atan2(tanU1,cosAlpha1);var sinAlpha=cosU1*sinAlpha1;var cosSqAlpha=1-sinAlpha*sinAlpha;var uSq=cosSqAlpha*(a*a-b*b)/(b*b);var A=1+uSq/16384*(4096+uSq*(-768+uSq*(320-175*uSq)));var B=uSq/1024*(256+uSq*(-128+uSq*(74-47*uSq)));var sigma=s/(b*A),sigmaP=2*Math.PI;while(Math.abs(sigma-sigmaP)>1e-12){var cos2SigmaM=Math.cos(2*sigma1+sigma);var sinSigma=Math.sin(sigma),cosSigma=Math.cos(sigma);var deltaSigma=B*sinSigma*(cos2SigmaM+B/4*(cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)-B/6*cos2SigmaM*(-3+4*sinSigma*sinSigma)*(-3+4*cos2SigmaM*cos2SigmaM)));sigmaP=sigma;sigma=s/(b*A)+deltaSigma}var tmp=sinU1*sinSigma-cosU1*cosSigma*cosAlpha1;var lat2=Math.atan2(sinU1*cosSigma+cosU1*sinSigma*cosAlpha1,(1-f)*Math.sqrt(sinAlpha*sinAlpha+tmp*tmp));var lambda=Math.atan2(sinSigma*sinAlpha1,cosU1*cosSigma-sinU1*sinSigma*cosAlpha1);var C=f/16*cosSqAlpha*(4+f*(4-3*cosSqAlpha));var L=lambda-(1-C)*f*sinAlpha*(sigma+C*sinSigma*(cos2SigmaM+C*cosSigma*(-1+2*cos2SigmaM*cos2SigmaM)));var revAz=Math.atan2(sinAlpha,-tmp);return new PLatLng(lat2*180/Math.PI,(p1.lon+L)*180/Math.PI)};ChrisVeness.LatLong=function(degLat,degLong){this.lat=ChrisVeness.llToRad(degLat);this.lon=ChrisVeness.llToRad(degLong)};ChrisVeness.distHaversine=function(p1,p2){var R=6371;var dLat=p2.lat-p1.lat;var dLong=p2.lon-p1.lon;var a=Math.sin(dLat/2)*Math.sin(dLat/2)+Math.cos(p1.lat)*Math.cos(p2.lat)*Math.sin(dLong/2)*Math.sin(dLong/2);var c=2*Math.atan2(Math.sqrt(a),Math.sqrt(1-a));var d=R*c;return d*1e3};ChrisVeness.distCosineLaw=function(p1,p2){var R=6371;var d=Math.acos(Math.sin(p1.lat)*Math.sin(p2.lat)+Math.cos(p1.lat)*Math.cos(p2.lat)*Math.cos(p2.lon-p1.lon))*R;return d*1e3};function PLatLngRad(degLat,degLong){this.lat=ChrisVeness.llToRad(degLat);this.lon=ChrisVeness.llToRad(degLong)}ChrisVeness.llToRad=function(llDeg){if(!isNaN(llDeg))return llDeg*Math.PI/180;llDeg=llDeg.replace(/[\s]*$/,"");var dir=llDeg.slice(-1).toUpperCase();if(!/[NSEW]/.test(dir))return NaN;llDeg=llDeg.slice(0,-1);var dms=llDeg.split(/[\s:,��'\'?\"]/);if(dms[dms.length-1]=="")dms.length--;switch(dms.length){case 3:var deg=dms[0]/1+dms[1]/60+dms[2]/3600;break;case 2:var deg=dms[0]/1+dms[1]/60;break;case 1:if(/[NS]/.test(dir))llDeg="0"+llDeg;var deg=llDeg.slice(0,3)/1+llDeg.slice(3,5)/60+llDeg.slice(5)/3600;break;default:return NaN}if(/[WS]/.test(dir))deg=-deg;return deg*Math.PI/180};function loadCitiPlace(){var alertImages=["/images/map-dialog-bg.gif","/images/map-dialog-button-bg.gif","/images/trans60.png"];$(alertImages).each(function(){$("<img/>")[0].src=this});if(typeof citi_checkContentLoaded=="function"){citi_checkContentLoaded()}PEnvironment.pageName="citi-reports";PEnvironment.citiScrolls={};PEnvironment.tooManySchoolDistricts=[];var func=loadCitiReport;var params=getUrlParams();var id=params["p"];if(P.WKPrint.isPrintPage()===true){addCitiPrintStyle()}if(!id){func()}else{PEnvironment.citiPageUrlParams={};PEnvironment.citiPrintObj={};var url=window.location.pathname;var arr=url.split("/");var pagename=arr[2].split(".")[0];var rType=arr[1];PEnvironment.citiReportPage=pagename;PEnvironment.citiReportType=rType;PEnvironment.citiLoadCount=0;placeLoader.load([id],function(places){var place=places[0];$("#report-header").append('<div class="district-name">'+place.getLabel()+"</div>");place.getPlacesContaining(PPlaceType.STATE,null,null,function(states){var state;for(var i=0;i<states.length;i++){if(place.getState()==states[i].getState()){state=states[i]}}var tractsNeeded=true;var districtPlace=place;if(place.getType()==PPlaceType.SENATE){place=state;tractsNeeded=false}updateCitiBoundaryTypeText(place);place.getAggregates(PPlaceType.COUNTY,null,null,function(counties){var f=function(tracts00,tracts10){var obj={};obj.reportType=rType;obj.place=place;obj.districtPlace=districtPlace;obj.state=state;obj.tracts00=tracts00;obj.tracts10=tracts10;obj.counties=counties;var nation=new PPlace(1061338);nation.label="United States";nation.typeid=1;obj.nation=nation;obj.nationStates=[new PPlace(545667),new PPlace(545669),new PPlace(545670),new PPlace(545671),new PPlace(545672),new PPlace(545673),new PPlace(545674),new PPlace(545675),new PPlace(545676),new PPlace(545677),new PPlace(545679),new PPlace(545680),new PPlace(545681),new PPlace(545682),new PPlace(545683),new PPlace(545684),new PPlace(545685),new PPlace(545686),new PPlace(545687),new PPlace(545688),new PPlace(545689),new PPlace(545690),new PPlace(545691),new PPlace(545692),new PPlace(545693),new PPlace(545694),new PPlace(545695),new PPlace(545696),new PPlace(545697),new PPlace(545698),new PPlace(545699),new PPlace(545700),new PPlace(545701),new PPlace(545702),new PPlace(545703),new PPlace(545704),new PPlace(545705),new PPlace(545706),new PPlace(545707),new PPlace(545708),new PPlace(545709),new PPlace(545710),new PPlace(545711),new PPlace(545712),new PPlace(545713),new PPlace(545714),new PPlace(545715),new PPlace(545716),new PPlace(545717),new PPlace(545668),new PPlace(545678)];func(obj)};if(tractsNeeded){place.getAggregates(PPlaceType.CENSUSTRACT,1,null,function(tracts00){place.getAggregates(PPlaceType.CENSUSTRACT,2,null,function(tracts10){f(tracts00,tracts10)},50,null,null,null,50,null,null,null,"id,identifier,label,typeid,state")},50,null,null,null,50,null,null,null,"id,identifier,label,typeid,state")}else{f([],[])}},20,null,null,null,51,null,null,null,"id,identifier,label,typeid,state,centroid")},3,null,null,null)})}}function citiReportNotAvailableAlert(){var text="This report is not yet available.";alerter.popup(text,"OK")}function selectCitiReport(){var checks=$(".report-option:not(.disable)").find("input:checked");var selectedPlace=$("#cong-places").find("input:checked");var id;if(selectedPlace.length==0){var text="Please complete the Select Your Report section.";alerter.popup(text,"OK");return}else{id=selectedPlace.attr("id")}if(checks.length!=1){var text="No report was selected";alerter.popup(text,"OK");return}else{var rType=null;var rPage=null;checks.each(function(i){var name=$(this).attr("name");if(name=="report"){rPage=this.id}else if(name=="report-type"){rType=$(this).parent().parent().parent().attr("id");rPage=this.id.slice(3,this.id.length)}});var url="/"+rType+"/"+rPage+".html"+"?p="+id;setWindowLocation(url)}checks.each(function(i){})}function filterCitiMassLayoffs(industries){var newArr=[];for(var i=0;i<industries.length;i++){var a=industries[i].columnName.split("cclaimantn");var n=parseFloat(a[1]);if(n<3||n>47){continue}newArr.push(industries[i])}return newArr}function updateCitiBoundaryTypeText(place){var t=getCitiBoundaryTypeText(place);$(".header-boundary-type").html(t.toUpperCase());$(".content-boundary-type").html(t)}function getCitiBoundaryTypeText(place){var t="";if(place.getType()==PPlaceType.STATE){t="state"}else{t="District"}return t}function citiReportError(){alerter.popup("There was an error generating the report for this Distrct.","OK")}function checkCitiPageLoad(hasDynIframe){var obj=PEnvironment.citiPrintObj;if(!obj.docDone){$(document).ready(function(){obj.docDone=true;checkCitiPageLoad()})}if(hasDynIframe&&!obj.iframeDone){PEnvironment.hasDynIframe=true;obj.iframeDone=true}if(!obj.allRequestsDone){var check=function(){setTimeout(function(){if(ajax.activeRequests){check()}else{obj.allRequestsDone=true;checkCitiPageLoad()}},2e3)};check()}var loadIsDone=false;if(obj.allRequestsDone&&obj.docDone&&(obj.iframeDone||!PEnvironment.hasDynIframe)){loadIsDone=true}var params=getUrlParams();if(P.WKPrint.isPrintPage()===true&&loadIsDone&&!PEnvironment.loadIsDone&&PEnvironment.citiLoadCount==PEnvironment.totalCitiPageLoadCount){PEnvironment.loadIsDone=true;addCitiPrintStyle(true)}}function screenGrabCitiPrint(){var element=document.createElement("ScreengrabElement");document.documentElement.appendChild(element);var evt=document.createEvent("Events");evt.initEvent("ScreengrabEvent",true,false);element.dispatchEvent(evt)}function printCitiReport(){var elementstatus="";if(typeof citi_getElementStatus=="function"){var elementstatus=citi_getElementStatus()}alerter.popup("Your PDF will be ready momentarily.","OK");P.instances.wkprint.setPrintCallback(handleNotificationPrint);if(PEnvironment.citiReportPage=="summary"){P.instances.wkprint.setOrientation(P.WKPrint.PORTRAIT)}else{P.instances.wkprint.setOrientation(P.WKPrint.LANDSCAPE)}var regex=/-/g;var pageGroup=window.location.href.split("/")[3];pageGroup=pageGroup.replace(regex," ");pageGroup=pageGroup.replace(/\w\S*/g,function(txt){return txt.charAt(0).toUpperCase()+txt.substr(1).toLowerCase()});var pageName=PEnvironment.citiReportPage;pageName=pageName.replace(regex," ");pageName=pageName.replace(/\w\S*/g,function(txt){return txt.charAt(0).toUpperCase()+txt.substr(1).toLowerCase()});P.instances.wkprint.setFileName("MyDistrictData - "+pageGroup+" - "+pageName+" - ",true);console.log("Filename = "+"MyDistrictData - "+pageGroup+" - "+pageName+" - ");if(elementstatus!=""){P.instances.wkprint.setAdditionalParams(elementstatus)}P.instances.wkprint.printThisPage()}function getCitiPrintPages(){var obj=getCitiReportOptions(PEnvironment.citiReportType);var arr=[];var urls=[];var params=getUrlParams();for(var i in obj.pages){var url={};url.url={};var u=window.location.hostname;url.url.location="http://"+u+"/"+PEnvironment.citiReportType+"/"+i+".html?p="+params["p"]+"&print=true"+obj.pages[i].params;var d=8;var arr=["banking-institutions","housing"];for(var i=0;i<arr.length;i++){if(PEnvironment.citiReportPage==arr[i]){d=15;break}}url.url.delay=d;urls.push(url)}return urls}function getCitiReportOptions(rType){var pagename=PEnvironment.citiReportPage;var scrolls=PEnvironment.citiScrolls;for(var i in scrolls){var scrollPos=scrolls[i].scrollTop();PEnvironment.citiPageUrlParams[i]=scrollPos}var params="";for(var i in PEnvironment.citiPageUrlParams){params+="&"+i+"="+PEnvironment.citiPageUrlParams[i]}var r={};var n=rType;r[n]={};r[n].pages={};r[n].pages[pagename]={params:params};r[n].waitEvent="ScreengrabEvent";return r[n]}function addCitiPrintStyle(hasIframe){return}function addToCitiLoadCount(){PEnvironment.citiLoadCount++;checkCitiPageLoad()}function displayCitiPrintLoading(){if($("#animationLoading").length>0){return}var loading=$("<div />");loading.attr("id","animationLoading");loading.addClass("citiLoading");loading.css("display","none");loading.html("<img src='/images/busy.gif' class='center'><br />Generating PDF...");var body=$("body");body.append(loading);var leftPos=body.width()/2-loading.width()/2+body.offset().left;var topPos=body.height()/2-loading.height()/2+body.offset().top;loading.css({left:leftPos,top:topPos});loading.fadeIn()}function removeCitiPrintLoading(){var loading=$("#animationLoading");loading.fadeOut(400,function(){loading.remove()})}function addCitiPrintParamToWidget(){var t="";if(P.WKPrint.isPrintPage()===true){t+="&"+P.WKPrint.printFormat+"=true"}return t}function createCitiSitesTable(o){var markers=o.markers;var headerNames=o.headerNames;var container=o.container;var title=o.title;var note=o.note;var div=$("<div />");div.addClass("table-list");var header=$("<div />");header.html(title);header.addClass("header");div.append(header);var listDiv=$("<div />");listDiv.addClass("scroll-list-div");div.append(listDiv);var table=$("<table />");listDiv.append(table);table.addClass("tablesorter");var thead=$("<thead />");table.append(thead);var trhead=$("<tr />");thead.append(trhead);var tbody=$("<tbody />");table.append(tbody);var headersAdded=[];var headersAreDone=false;var html="";if(markers.length>0){html+='<div class="table-list"><table id="pinTable" class="chartTable" cellpadding="1" cellspacing="1" width="100%" >\n';html+="<thead><tr>";var tableHeaders=new Array;var tableObject={};for(var i=0;i<markers.length;i++){var marker=markers[i];var markername="marker"+i;tableObject[markername]={};for(var j=0;j<marker.attributes.length;j++){var attribute=marker.attributes[j];if($.inArray(attribute.columnName,headerNames)==-1){continue}if($.inArray(attribute.name,tableHeaders)==-1){trhead.append("<th>"+attribute.name+"</th>");tableHeaders.push(attribute.name)}var value="";if(isNumeric(attribute.value)&&attribute.unit){value+=PWebUtil.formatNumber(attribute.value,attribute.unit)}else{value+=attribute.value}tableObject[markername][attribute.name]={};tableObject[markername][attribute.name].value=value}}var content="";for(var mname in tableObject){content+="<tr>";for(var j=0;j<tableHeaders.length;j++){var found=false;for(var aname in tableObject[mname]){if(tableHeaders[j]==aname){var found=true;var column="<td>"+tableObject[mname][aname].value+"</td>"}}if(!found)column="<td class='empty'></td>";content+=column}content+="</tr>"}tbody.html(content);var params=getUrlParams();var sort=[0,0];container.append(div);$(table).tablesorter({cssAsc:"sortAsc",cssDesc:"sortDesc",sortList:[sort],widgets:["zebra"]});$(table).bind("sortEnd",function(){var headers=$(this).find("th");for(var i=0;i<headers.length;i++){if($(headers[i]).hasClass("sortAsc")||$(headers[i]).hasClass("sortDesc")){var classname=$(headers[i]).attr("class");col=i;break}}var t=1;if(classname.indexOf("sortDesc")!=-1)t=0;PEnvironment.citiPageUrlParams.sort=col+","+t});if(note){var txt=note;$(div).append("<div class='note'>"+txt+"</div>")}}}function seeCitiBoundariesList(elem){if($(elem).text().indexOf("see")!=-1){$(elem).text("(hide list)")}else{$(elem).text("(see list)")}$(elem).next().toggle()}function citi_checkContentLoaded(){if(!(P.WKPrint.isPrintPage()===true)){return}if(citi_isContentLoaded()){if(typeof citi_restoreElementStatus=="function"){try{citi_restoreElementStatus()}catch(e){console.log(e)}}P.instances.wkprint.setDelay(15)}else{setTimeout(function(){citi_checkContentLoaded()},1e3)}}CitiSummaryTables=function(o){PEnvironment.totalCitiPageLoadCount=5;this.o=o;if(this.o.place.getType()==PPlaceType.CONGRESSIONAL){this.typeLabel="District"}else{this.typeLabel="State"}this.container=$(".data-content");if(this.o.counties){var aggs=this.o.counties;this.countieslist=getAggregatedPlaceNames(aggs)}if(this.o.tracts00){var aggs=this.o.tracts00;this.tracts00list=getAggregatedPlaceNames(aggs)}if(this.o.tracts10){var aggs=this.o.tracts10;this.tracts10list=getAggregatedPlaceNames(aggs)}if(this.o.zips){var aggs=this.o.zips;this.zipslist=getAggregatedPlaceNames(aggs)}if(this.o.cbsas){var aggs=this.o.cbsas;this.cbsaslist=getAggregatedPlaceNames(aggs)}};CitiSummaryTables.prototype.addPageBreak=function(){this.pageBreakDiv=$("<div />");this.pageBreakDiv.addClass("page-break");this.container.append(this.pageBreakDiv)};CitiSummaryTables.prototype.popEmployment=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");this.container.append(sectionCont);var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var table=$("<table />");table.addClass("citi-summary-table");table.attr("id","summary-employment");var html="<thead><tr>";html+="<th>Employment</th>";html+="<th colspan='3'>"+this.typeLabel+"</th>";if(!isState){html+="<th colspan='3'>State</th>"}html+="</tr></thead>";table.append(html);sectionCont.append(table);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var pers=inds[0].getPeriods();var periods=[pers[12],pers[0]];var aggs=that.o.counties;if(that.o.place.getType()!=PPlaceType.CONGRESSIONAL){aggs=[that.o.place]}var cube1=new PCube(inds,aggs,periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(inds,[that.o.state],periods);cube2.loadValues(function(statevalues){this.values=statevalues;var html="<tbody>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";if(!isState){var len=2}else{var len=1}for(var i=0;i<len;i++){html+="<td>"+formatMonthlyPeriod(periods[0])+"</td>";html+="<td>"+formatMonthlyPeriod(periods[1])+"</td>";html+="<td>% change from prev year</td>"}html+="<tr class='data-row'>";var ind=inds[0];var label="Employed People";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var sum2=getSumOfPlaces(cube1,ind,periods[1]);var val=PWebUtil.formatNumber(sum2,ind.unit);html+="<td>"+val+"</td>";var change=PWebUtil.formatNumber(divideCheck(sum2-sum1,sum1,100),"_%");html+="<td>"+change+"</td>";if(!isState){var sum1=getSumOfPlaces(cube2,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var sum2=getSumOfPlaces(cube2,ind,periods[1]);var val=PWebUtil.formatNumber(sum2,ind.unit);html+="<td>"+val+"</td>";var change=PWebUtil.formatNumber(divideCheck(sum2-sum1,sum1,100),"_%");html+="<td>"+change+"</td>";html+="</tr>"}html+="<tr class='data-row'>";var ind1=inds[0];var ind2=inds[1];var label="Percent Employed";html+="<td class='label'>"+label+"</td>";var sum1=divideCheck(getSumOfPlaces(cube1,ind1,periods[0]),getSumOfPlaces(cube1,ind2,periods[0]),100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var sum2=divideCheck(getSumOfPlaces(cube1,ind1,periods[1]),getSumOfPlaces(cube1,ind2,periods[1]),100);var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";var change="--";html+="<td>"+change+"</td>";if(!isState){var sum1=getSumOfPlaces(cube2,ind1,periods[0])/getSumOfPlaces(cube2,ind2,periods[0])*100;var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var sum2=getSumOfPlaces(cube2,ind1,periods[1])/getSumOfPlaces(cube2,ind2,periods[1])*100;var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";var change="--";html+="<td>"+change+"</td>";html+="</tr>"}html+="<tr class='data-row'>";var ind=inds[1];var label="Labor Force";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var sum2=getSumOfPlaces(cube1,ind,periods[1]);var val=PWebUtil.formatNumber(sum2,ind.unit);html+="<td>"+val+"</td>"
;var change=PWebUtil.formatNumber(divideCheck(sum2-sum1,sum1,100),"_%");html+="<td>"+change+"</td>";if(!isState){var sum1=getSumOfPlaces(cube2,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var sum2=getSumOfPlaces(cube2,ind,periods[1]);var val=PWebUtil.formatNumber(sum2,ind.unit);html+="<td>"+val+"</td>";var change=PWebUtil.formatNumber(divideCheck(sum2-sum1,sum1,100),"_%");html+="<td>"+change+"</td>";html+="</tr>"}html+="<tr class='data-row'>";var ind1=inds[2];var ind2=inds[1];var ind3=indsO.unemprate;var label="Unemployment Rate";html+="<td class='label'>"+label+"</td>";if(cube1.places[0].getType()==PPlaceType.STATE){var sum1=getSumOfPlaces(cube1,ind3,periods[0]);var sum2=getSumOfPlaces(cube1,ind3,periods[1])}else{var sum1=divideCheck(getSumOfPlaces(cube1,ind1,periods[0]),getSumOfPlaces(cube1,ind2,periods[0]),100);var sum2=divideCheck(getSumOfPlaces(cube1,ind1,periods[1]),getSumOfPlaces(cube1,ind2,periods[1]),100)}var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";var change="--";html+="<td>"+change+"</td>";if(!isState){var sum1=getSumOfPlaces(cube2,ind3,periods[0]);var sum2=getSumOfPlaces(cube2,ind3,periods[1]);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";var change="--";html+="<td>"+change+"</td>";html+="</tr>"}html+="</tbody>";table.append(html);var note="<div class='table-note'>Note: Employment data for the District represent those counties that sit within or touch the Congressional District and come from the Bureau of Labor Statistics</div>";sectionCont.append(note);addToCitiLoadCount()})},{includeMappings:true})};var ids={normal:[9841108,9841101,9841100,9841103]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popJobs=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");this.container.append(sectionCont);var table=$("<table />");table.addClass("citi-summary-table");table.attr("id","summary-jobs");var html="<thead><tr>";html+="<th>Jobs</th>";html+="<th colspan='2'>"+this.typeLabel+"<br />2010-2014</th>";html+="<th colspan='2'>Nation<br />2010-2014</th>";html+="</tr></thead>";table.append(html);sectionCont.append('<div style="page-break-before: always;"></div>');sectionCont.append(table);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var periods=[P.constants.latestACSPeriod];var place=that.o.place;var aggs=[place];var cube10=new PCube(inds,aggs,periods);cube10.loadValues(function(values){this.values=values;var natInds=indsObj.national;var cubeNat=new PCube(inds,[that.o.nation],periods);cubeNat.loadValues(function(nationvalues){this.values=nationvalues;var html="<tbody>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";for(var i=0;i<2;i++){html+="<td>#</td>";html+="<td>%</td>"}html+="</tr>";var addElements=function(inds,sum_cempall){var html="<tr class='data-row'>";var cemp=inds[0];var pemp=inds[1];var label=cemp.getLabel();label=label.replace("Est.","");label=label.replace("Employment","");html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlaces(cube10,cemp,periods[0]);var val=PWebUtil.formatNumber(sum1,cemp.unit);html+="<td>"+val+"</td>";var sum1=getSumOfPlaces(cube10,pemp,periods[0]);var val=PWebUtil.formatNumber(sum1,pemp.unit);html+="<td>"+val+"</td>";var sum1=getSumOfPlaces(cubeNat,cemp,periods[0]);var val=PWebUtil.formatNumber(sum1,cemp.unit);html+="<td>"+val+"</td>";var sum1=getSumOfPlaces(cubeNat,pemp,periods[0]);var val=PWebUtil.formatNumber(sum1,pemp.unit);html+="<td>"+val+"</td>";html+="</tr>";inds.shift();inds.shift();return html};var cempall=inds[inds.length-1];var sum_cempall=getSumOfPlaces(cube10,cempall,periods[0]);inds.pop();var len=inds.length/2;for(var i=0;i<len;i++){html+=addElements(inds,sum_cempall)}html+="</tbody>";table.append(html);var note="<div class='table-note'>Note: Job data is from the Census Bureau's American Community Survey rolling estimate for 2010-2014 as reported by "+place.getType().getName()+".";sectionCont.append(note);addToCitiLoadCount()})})};var ids={normal:[9872931,9872955,9872936,9872918,9872958,9872908,9872919,9872960,9872924,9872945,9872904,9872901,9872909,9872938,9872939,9872911,9872962,9872951,9872927,9872944,9872900,9872925,9872961,9872964,9872952,9872963,9872930,9872943,9872910,9872942,9872929,9872902,9872913,9872915,9872965]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popWorkforce=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");this.container.append(sectionCont);var table=$("<table />");table.addClass("citi-summary-table");table.attr("id","summary-jobs");var html="<thead><tr>";html+="<th>Workforce Demographics</th>";html+="<th colspan='1'>"+this.typeLabel+"</th>";html+="<th colspan='3'>Nation</th>";html+="</tr></thead>";table.append(html);sectionCont.append(table);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var acsYear=P.constants.latestACSPeriod;var periods=[2e3,2010,acsYear];var place=that.o.place;var counties=that.o.counties;var aggs10=[];if(place.getType()==PPlaceType.STATE){aggs10=[place]}else{aggs10=that.o.tracts10}var loadTable=function(cubes){var year11=2011;var year10=2010;var year00=2e3;var cube10=new PCube(inds,[place],[year10,acsYear]);cube10.loadValues(function(values){this.values=values;var cube3=new PCube(inds,counties,[year10]);cube3.loadValues(function(countyvalues){this.values=countyvalues;var cube4=new PCube(inds,[that.o.nation],periods);cube4.loadValues(function(nationvalues){this.values=nationvalues;var cube5=new PCube(inds,that.o.nationStates,periods);cube5.loadValues(function(statesvalues){this.values=statesvalues;var cube6=new PCube([indsO.pforbrn],[that.o.nation],periods);cube6.loadValues(function(nationvalues){this.values=nationvalues;var districtCube10=cube10;var html="<tbody>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>2010-2014</td>";html+="<td></td>";html+="<td>2010-2014</td>";html+="<td>% change since 2000</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=inds[0];var label=ind.getLabel();html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind,acsYear);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=inds[0];html+="<td></td>";var sum1=getSumOfPlaces(cube4,ind,acsYear);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var a=getSumOfPlacesIgnoreNulls(cube4,ind,year00);var b=getSumOfPlacesIgnoreNulls(cube4,ind,acsYear);var sum2=divideCheck(b-a,a,100);var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>2010-2014</td>";html+="<td>2000</td>";html+="<td>2010-2014</td>";html+="<td>% change since 2000</td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.cpop21_24;var ind2=indsO.cpop25_34;var ind3=indsO.cpop35_54;var ind4=indsO.cpop55_64;var ind5=indsO.cpopallage;var label="Percent Working Age (20-64)";html+="<td class='label'>"+label+"</td>";var a=getSumOfPlacesIgnoreNulls(districtCube10,ind1,acsYear);var b=getSumOfPlacesIgnoreNulls(districtCube10,ind2,acsYear);var c=getSumOfPlacesIgnoreNulls(districtCube10,ind3,acsYear);var d=getSumOfPlacesIgnoreNulls(districtCube10,ind4,acsYear);var e=getSumOfPlacesIgnoreNulls(districtCube10,ind5,acsYear);if(a&&b&&c&&d){var tot1=a+b+c+d;var sum1=divideCheck(tot1,e,100)}else{sum1="N/A"}var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var ind1=indsO.cpop21_24;var ind2=indsO.cpop25_34;var ind3=indsO.cpop35_54;var ind4=indsO.cpop55_64;var ind5=indsO.cpopallage;var a=getSumOfPlacesIgnoreNulls(cube5,ind1,year00);var b=getSumOfPlacesIgnoreNulls(cube5,ind2,year00);var c=getSumOfPlacesIgnoreNulls(cube5,ind3,year00);var d=getSumOfPlacesIgnoreNulls(cube5,ind4,year00);var e=getSumOfPlacesIgnoreNulls(cube5,ind5,year00);if(a&&b&&c&&d){var tot1=a+b+c+d;var sum1=divideCheck(tot1,e,100)}else{sum1="N/A"}var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var a=getSumOfPlacesIgnoreNulls(cube5,ind1,acsYear);var b=getSumOfPlacesIgnoreNulls(cube5,ind2,acsYear);var c=getSumOfPlacesIgnoreNulls(cube5,ind3,acsYear);var d=getSumOfPlacesIgnoreNulls(cube5,ind4,acsYear);var e=getSumOfPlacesIgnoreNulls(cube5,ind5,acsYear);if(a&&b&&c&&d){var tot2=a+b+c+d;var sum2=divideCheck(tot2,e,100)}else{sum2="N/A"}var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";var change=divideCheck(tot2-tot1,tot1,100);var val=PWebUtil.formatNumber(change,"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.cpop65p;var ind2=indsO.cpopallage;var label="Percent Older Age (65+)";html+="<td class='label'>"+label+"</td>";var a=getSumOfPlacesIgnoreNulls(districtCube10,ind1,acsYear);var b=getSumOfPlacesIgnoreNulls(districtCube10,ind2,acsYear);var tot1=a;var sum1=divideCheck(a,b,100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var a=getSumOfPlacesIgnoreNulls(cube5,ind1,year00);var b=getSumOfPlacesIgnoreNulls(cube5,ind2,year00);var tot1=a;var sum1=divideCheck(tot1,b,100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var a=getSumOfPlacesIgnoreNulls(cube5,ind1,acsYear);var b=getSumOfPlacesIgnoreNulls(cube5,ind2,acsYear);var tot2=a;var sum2=divideCheck(tot2,b,100);var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";var val=PWebUtil.formatNumber(divideCheck(tot2-tot1,tot1,100),"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.cpop65p;var ind2=indsO.cpop21_24;var ind3=indsO.cpop25_34;var ind4=indsO.cpop35_54;var ind5=indsO.cpop55_64;var label="Older Age to Working Age Ratio";html+="<td class='label'>"+label+"</td>";var a=getSumOfPlacesIgnoreNulls(districtCube10,ind1,acsYear);var b=getSumOfPlacesIgnoreNulls(districtCube10,ind2,acsYear);var c=getSumOfPlacesIgnoreNulls(districtCube10,ind3,acsYear);var d=getSumOfPlacesIgnoreNulls(districtCube10,ind4,acsYear);var e=getSumOfPlacesIgnoreNulls(districtCube10,ind5,acsYear);var sum1=divideCheck(a,b+c+d+e,100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var a=getSumOfPlacesIgnoreNulls(cube5,ind1,year00);var b=getSumOfPlacesIgnoreNulls(cube5,ind2,year00);var c=getSumOfPlacesIgnoreNulls(cube5,ind3,year00);var d=getSumOfPlacesIgnoreNulls(cube5,ind4,year00);var e=getSumOfPlacesIgnoreNulls(cube5,ind5,year00);var sum1=divideCheck(a,b+c+d+e,100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var a=getSumOfPlacesIgnoreNulls(cube5,ind1,acsYear);var b=getSumOfPlacesIgnoreNulls(cube5,ind2,acsYear);var c=getSumOfPlacesIgnoreNulls(cube5,ind3,acsYear);var d=getSumOfPlacesIgnoreNulls(cube5,ind4,acsYear);var e=getSumOfPlacesIgnoreNulls(cube5,ind5,acsYear);var sum2=divideCheck(a,b+c+d+e,100);var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";html+="<td></td>";html+="</tr>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>2010-2014</td>";html+="<td></td>";html+="<td>2010-2014</td>";html+="<td>% change since 2000</td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.ppopmin;var label="Minority Population";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind1,acsYear);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var ind1=indsO.cpop;var ind2=indsO.cpopmin;html+="<td></td>";var s1=getSumOfPlacesIgnoreNulls(cube5,ind1,acsYear);var s2=getSumOfPlacesIgnoreNulls(cube5,ind2,acsYear);var sum1=divideCheck(s2,s1,100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var a=getSumOfPlacesIgnoreNulls(cube5,ind2,year00);var b=getSumOfPlacesIgnoreNulls(cube5,ind2,acsYear);var change=divideCheck(b-a,a,100);var val=PWebUtil.formatNumber(change,"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>2010-2014</td>";html+="<td>2000</td>";html+="<td>2010-2014</td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.pforbrn;var ind2=indsO.cforbrn;var ind3=indsO.ccitizenall;var label="Percent born outside of the U.S.";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind1,acsYear);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cube6,ind1,year00);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var sum2=getSumOfPlacesIgnoreNulls(cube6,ind1,acsYear);var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";html+="<td></td>";html+="</tr>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>2010</td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.returnnum_net;var label="Migration";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cube3,ind1,year10);var val=PWebUtil.formatNumber(sum1);html+="<td>"+val+"</td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.aggragi_net;var label="Change in Adjusted Gross Income";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlaces(cube3,ind1,year10);var val=PWebUtil.formatNumber(sum1,"$_");html+="<td>"+val+"</td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.returnnum_net;var ind2=indsO.nonmigret_in;var label="Change in number of taxpayers";html+="<td class='label'>"+label+"</td>";var a=getSumOfPlacesIgnoreNulls(cube3,ind1,year10);var b=getSumOfPlacesIgnoreNulls(cube3,ind2,year10);var sum1=divideCheck(a,a+b,100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+="</tbody>";table.append(html);var note="<div class='table-note'>Note: Population, Working Age, Dependency and Immigration data is from the American Community Survey 2010-2014 estimates for the Congressional District or State.  Data for migration is representative of the counties that touch the Congressional District as reported by the IRS Migration Data for 2010.</div>";sectionCont.append(note);addToCitiLoadCount()})})})})})};loadTable()};var ids={normal:[9869069,9869071,9868907,9869042,9869076,9869056,9869060,9868898,9868865,9868923,9909505,9887223,9887203,9887201,9909501]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popEducation=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");sectionCont.append('<div style="page-break-before: always;"></div>');this.container.append(sectionCont);var table=$("<table />");table.addClass("citi-summary-table");table.attr("id","summary-education");var html="<thead><tr>";html+="<th>Education</th>";html+="<th colspan='1'>"+this.typeLabel+"</th>";html+="<th colspan='2'>Nation</th>";html+="</tr></thead>";table.append(html);sectionCont.append(table);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var place=that.o.place;var places=that.o.tracts;var acsYear=P.constants.latestACSPeriod;var periods=[2e3,acsYear];var loadTable=function(cubes){var aggs00;var aggs10;if(place.getType()==PPlaceType.STATE){aggs00=[place];aggs10=[place]}else{aggs00=that.o.tracts00;aggs10=that.o.tracts10}var year00=2e3;var cube00=new PCube(inds,aggs00,[year00]);cube00.loadValues(function(values){this.values=values;var year11=2011;var cube10=new PCube(inds,[place],[acsYear]);cube10.loadValues(function(values){this.values=values;var cube3=new PCube(inds,[that.o.state],[acsYear]);cube3.loadValues(function(statevalues){this.values=statevalues;var cube4=new PCube(inds,that.o.nationStates,periods);cube4.loadValues(function(nationvalues){this.values=nationvalues;var type=PPlaceType.SCHOOL;var arr=PEnvironment.tooManySchoolDistricts;for(var i=0;i<arr.length;i++){if(arr[i]==place.getLabel()){type=PPlaceType.STATE}}place.getAggregates(type,null,null,function(schools){var cube5=new PCube(inds,schools,[year11]);cube5.loadValues(function(schoolvalues){this.values=schoolvalues;var cube6=new PCube(inds,[that.o.nation],periods);cube6.loadValues(function(nationvalues){this.values=nationvalues;var districtCube00=cube00;var districtCube10=cube10;var html="<tbody>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>2010-2014</td>";html+="<td>2010-2014</td>";html+="<td>% change since 2000</td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.csmhsnodip;var ind2=indsO.clt9th;var ind3=indsO.ceduall;var label="No High School Diploma";html+="<td class='label'>"+label+"</td>";var sum_csmhsnodip=getSumOfPlacesIgnoreNulls(districtCube10,ind1,acsYear);var sum_clt9th=getSumOfPlacesIgnoreNulls(districtCube10,ind2,acsYear);var sum_ceduall_cube2_1=getSumOfPlacesIgnoreNulls(districtCube10,ind3,acsYear);var val=PWebUtil.formatNumber(divideCheck(sum_clt9th+sum_csmhsnodip,sum_ceduall_cube2_1,100),"_%");html+="<td>"+val+"</td>";var sum_csmhsnodip=getSumOfPlacesIgnoreNulls(cube6,ind1,acsYear);var sum_clt9th=getSumOfPlacesIgnoreNulls(cube6,ind2,acsYear);var sum_ceduall=getSumOfPlacesIgnoreNulls(cube6,ind3,acsYear);var val=PWebUtil.formatNumber(divideCheck(sum_clt9th+sum_csmhsnodip,sum_ceduall,100),"_%");html+="<td>"+val+"</td>";var s1_a=getSumOfPlacesIgnoreNulls(cube6,ind1,year00);var s2_a=getSumOfPlacesIgnoreNulls(cube6,ind2,year00);var s1_b=getSumOfPlacesIgnoreNulls(cube6,ind1,acsYear);var s2_b=getSumOfPlacesIgnoreNulls(cube6,ind2,acsYear);var sum1=divideCheck(s1_b+s2_b-(s1_a+s2_a),s1_a+s2_a,100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.phsp;var label="High School Diploma";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind1,acsYear);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var sum1=getMeanOfPlacesIgnoreNulls(cube6,ind1,acsYear);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var ind1=indsO.chsp;var a=getSumOfPlacesIgnoreNulls(cube6,ind1,year00);var b=getSumOfPlacesIgnoreNulls(cube6,ind1,acsYear);var sum1=divideCheck(b-a,a,100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.pbachp;var label="Bachelor's Degree";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind1,acsYear);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var sum1=getMeanOfPlacesIgnoreNulls(cube6,ind1,acsYear);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var ind1=indsO.cbachp;var a=getSumOfPlacesIgnoreNulls(cube6,ind1,year00);var b=getSumOfPlacesIgnoreNulls(cube6,ind1,acsYear);var sum1=divideCheck(b-a,a,100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.pgtbach;var label="Post-Graduate Degree";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind1,acsYear);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var sum1=getMeanOfPlacesIgnoreNulls(cube6,ind1,acsYear);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var ind1=indsO.cgtbach;var a=getSumOfPlacesIgnoreNulls(cube6,ind1,year00);var b=getSumOfPlacesIgnoreNulls(cube6,ind1,acsYear);var sum1=divideCheck(b-a,a,100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>2011</td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.pct_prof_hsread;var label="High School Proficiency - Reading";html+="<td class='label'>"+label+"</td>";var sum1=getMeanOfPlacesIgnoreNulls(cube5,ind1,year11);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.pct_prof_hsmath;var label="High School Proficiency - Math";html+="<td class='label'>"+label+"</td>";var sum1=getMeanOfPlacesIgnoreNulls(cube5,ind1,year11);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>2013</td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var ind1=indsO.d_total_4yr;var label="Cost of College";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cube3,ind1,acsYear);var val=PWebUtil.formatNumber(sum1,"$_");html+="<td>"+val+"</td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+="</tbody>";table.append(html);var note="<div class='table-note'>Note: Data for this area for educational attainment is representative of Congressional District information provided by the Census' American Community Survey for 2010-2014. School district proficiency statistics and cost of college figures at the state level come from the National Center for Education Statistics.</div>";sectionCont.append(note);addToCitiLoadCount()})})},20,null,null,null,51,null,null,null,"id,identifier,label,typeid,state")})})})})};loadTable()};var ids={normal:[9873900,9873915,9873929,9873915,9873933,9873928,9873916,9873911,9873904,9873935,9847267,9847261,9877852]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popBusiness=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");this.container.append(sectionCont);var table=$("<table />");table.addClass("citi-summary-table");table.attr("id","summary-education");var html="<thead><tr>";html+="<th>Business Environment</th>";html+="<th colspan='1'>State</th>";html+="<th colspan='1'>Nation</th>";html+="</tr></thead>";table.append(html);sectionCont.append(table);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var year13=2013;var periods=[year13];var place=that.o.place;var aggs=that.o.counties;if(place.getType()==PPlaceType.STATE){aggs=[that.o.state]}var cube1=new PCube(inds,aggs,periods);cube1.loadValues(function(values){this.values=values;var url=PEnvironment.dataServicesUrl+"?ty=data&t=avgwage&act=i&bi="+that.o.nation.id+"&per=2013&did=115600&avg=avgemp";ajax.call({url:url,dataType:"json",success:function(response){if(response==null||response.avgwage==null||response.avgwage.length<1){citiReportError();return}var nationindustries=response.avgwage;var url=PEnvironment.dataServicesUrl+"?ty=data&t=avgwage&act=i&bi="+that.o.state.id+"&num=5&per=2012&did=115600&avg=avgemp";ajax.call({url:url,dataType:"json",success:function(response){if(response==null||response.avgwage==null||response.avgwage.length<1){citiReportError();return}var industries=response.avgwage;for(var i=0;i<industries.length;i++){for(var j=0;j<nationindustries.length;j++){if(industries[i].name==nationindustries[j].name){industries[i].nationvalue=nationindustries[j].value}}}var html="<tbody>";html+="<tr class='sub-header'>";var label="Top 3 Industry Wages";html+="<td class='label'>"+label+"</td>";html+="<td>2013</td>";html+="<td>2013</td>";html+="</tr>";html+="<tr class='data-row'>";var label=industries[0].name;html+="<td class='label'>"+label+"</td>";var sum1=industries[0].value;var val=PWebUtil.formatNumber(sum1,"$_");html+="<td>"+val+"</td>";var sum1=industries[0].nationvalue;var val=PWebUtil.formatNumber(sum1,"$_");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var label=industries[1].name;html+="<td class='label'>"+label+"</td>";var sum1=industries[1].value;var val=PWebUtil.formatNumber(sum1,"$_");html+="<td>"+val+"</td>";var sum1=industries[1].nationvalue;var val=PWebUtil.formatNumber(sum1,"$_");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var label=industries[2].name;html+="<td class='label'>"+label+"</td>";var sum1=industries[2].value;var val=PWebUtil.formatNumber(sum1,"$_");html+="<td>"+val+"</td>";var sum1=industries[2].nationvalue;var val=PWebUtil.formatNumber(sum1,"$_");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='sub-header'>";html+="<td></td>";html+="<td>2013</td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var label="Bankruptcy";var ind=inds[0];html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlaces(cube1,ind,year13);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td></td>";html+="</tr>";var url=PEnvironment.dataServicesUrl+"?ty=data&t=topind&act=i&bi="+that.o.state.id+"&num=5&per=2012&did=115450&pre=cclaimant&tot=cclaimantn0001";ajax.call({url:url,dataType:"json",success:function(response){if(response==null||response.topind==null||response.topind.length<1){citiReportError();return}var industries=response.topind;industries=filterCitiMassLayoffs(industries);html+="<tr class='sub-header'>";var label="Top 3 Industry Mass Layoffs";html+="<td class='label'>"+label+"</td>";html+="<td>2012</td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var label=industries[0].name;html+="<td class='label'>"+label+"</td>";var sum1=industries[0].totalvalue;var val=PWebUtil.formatNumber(sum1);html+="<td>"+val+"</td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var label=industries[1].name;html+="<td class='label'>"+label+"</td>";var sum1=industries[1].totalvalue;var val=PWebUtil.formatNumber(sum1);html+="<td>"+val+"</td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var label=industries[2].name;html+="<td class='label'>"+label+"</td>";var sum1=industries[2].totalvalue;var val=PWebUtil.formatNumber(sum1);html+="<td>"+val+"</td>";html+="<td></td>";html+="</tr>";html+="</tbody>";table.append(html);var note="<div class='table-note'>Note: State level wage data is from the Bureau of Labor Statistics' Quarterly Census of Employment and Wages in 2013. While county level wage data is available, it is not possible to calculate a meaningful average for a District geography. Bankruptcy data comes from the U.S. Courts and is aggregated by county. Mass Layoff statistics are only available at the state level. Mass Layoff data is from the Bureau of Labor Statistics for 2012.</div>";sectionCont.append(note);addToCitiLoadCount()}})}})}})})};var ids={normal:[9919001]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.loadInds=function(ids,callback){var idsCnt=0;var loadCnt=0;for(var i in ids){idsCnt++}PIndicatorLoader.load(ids.normal,function(inds){loadCnt++;var iObj={};for(var i=0;i<inds.length;i++){iObj[inds[i].columnName]=inds[i]}var loadCongInds=function(){PIndicatorLoader.load(ids.cong,function(inds){loadCnt++;var iObj={};for(var i=0;i<inds.length;i++){iObj[inds[i].columnName]=inds[i]}indsObj.congsObj=iObj;indsObj.congsArr=inds;if(loadCnt==idsCnt){callback(indsObj)}})};var loadNationalInds=function(){PIndicatorLoader.load(ids.national,function(inds){loadCnt++;var iObj={};for(var i=0;i<inds.length;i++){iObj[inds[i].columnName]=inds[i]}indsObj.nationalObj=iObj;indsObj.nationalArr=inds;if(loadCnt==idsCnt){callback(indsObj)}})};var indsObj={};indsObj.normalObj=iObj;indsObj.normalArr=inds;if(ids.national||ids.cong){if(ids.national){loadNationalInds()}if(ids.cong){loadCongInds()}}else{callback(indsObj)}})};CitiSummaryTables.prototype.popOverviewAB=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");sectionCont.attr("id","summary-overview-ab");this.container.append(sectionCont);var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var table=$("<table />");table.addClass("citi-summary-table");table.attr("id","summary-overview");var tbody=$("<tbody />");tbody.attr("id","overview");var html="";html+="<tr><th>OVERVIEW</th>";html+="<th colspan='3'>"+this.typeLabel+"<br />2010-2014</th>";html+="<th colspan='3'>Nation<br />2010-2014</th>";html+="</tr>";tbody.append(html);table.append(tbody);sectionCont.append('<div style="page-break-before: always;"></div>');sectionCont.append(table);this.popDemographicsAB(table,sectionCont);this.popResidentStatusAB(table,sectionCont);this.popEmploymentAB(table,sectionCont)};CitiSummaryTables.prototype.popDemographicsAB=function(table,sectionCont){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");tbody.attr("id","overview-demo");table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var acsYear=P.constants.latestACSPeriod;var periods=[acsYear];var place=that.o.place;var aggs10=[place];var loadTable=function(cubes){var cube10=new PCube(inds,aggs10,periods);cube10.loadValues(function(values){this.values=values;var cubeNation=new PCube(inds,[that.o.nation],periods);cubeNation.loadValues(function(values){this.values=values;var districtCube10=cube10;var html="";html+="<tr class='new-section-header sub-header'>";html+="<td class='section-title'>Demographics</td>";html+="<td>#</td>";html+="<td>%</td>";html+="<td>% change from 2000</td>";html+="<td>#</td>";html+="<td>%</td>";html+="<td>% change from 2000</td>";html+="</tr>";html+="<tr class='data-row'>";var year=acsYear;var label="Population";html+="<td class='label'>"+label+"</td>";var ind=indsO.cpop;var sum=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";if(isState){var ind=indsO.pccpop;var sum=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum,ind.unit)}else{var val="--"}html+="<td>"+val+"</td>";var ind=indsO.cpop;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";var ind=indsO.pccpop;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr>";html+="<td class='sub-header-label'><b>Race</b></td>";html+="<td></td><td></td><td></td><td></td><td></td><td></td>";html+="</tr>";var cpopallrace=indsO.cpopallrace;var sum_cpopallrace=getSumOfPlacesIgnoreNulls(districtCube10,cpopallrace,year);var getRaceRow=function(cpop,ppop,label,classname){var h="";h+="<tr class='data-row'>";if(!classname){classname=""}h+="<td class='label "+classname+"'>"+label+"</td>";var ind=cpop;var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var ind=ppop;var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var val="--";h+="<td>"+val+"</td>";var ind=cpop;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var ind=ppop;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";h+="<td>--</td>";h+="</tr>";return h};html+=getRaceRow(indsO.cpopnhispbk,indsO.ppopnhispbk,"Black or African American");html+=getRaceRow(indsO.cpopnhispwh,indsO.ppopnhispwh,"White");html+=getRaceRow(indsO.cpopnhispas,indsO.ppopnhispas,"Asian");html+=getRaceRow(indsO.cpopnhispnhpi,indsO.ppopnhispnhpi,"Native Hawaiian and Pacific Islander");html+=getRaceRow(indsO.cpopnhispaian,indsO.ppopnhispaian,"American Indian or Alaskan Native");html+=getRaceRow(indsO.cpopnhispoth,indsO.ppopnhispoth,'"Some Other Race"');html+=getRaceRow(indsO.cpopnhisptwop,indsO.ppopnhisptwop,"Two or More Races");html+=getRaceRow(indsO.cpophisp,indsO.ppophisp,"<b>Ethnicity:</b> Hispanic","sub-header-label");html+=getRaceRow(indsO.ccitizen,indsO.pcitizen,"<b>Citizenship Status:</b> Citizens","sub-header-label");tbody.append(html);var note="<div class='table-note'></div>";sectionCont.append(note);addToCitiLoadCount()})})};loadTable()};var ids={
normal:[9906424,9906423,9922200,9906425,9922201,9906426,9922202,9906401,9906400,9906402,9922204,9922203,9906403,9922205,9868944,9869069,9868934,9868881,9868902,9868879,9868944,9869105,9909504,9909500,9868865,9909502]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popResidentStatusAB=function(table,sectionCont){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");tbody.attr("id","overview-demo");table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var latestacs=P.constants.latestACSPeriod;var periods=[latestacs];var place=that.o.place;var loadTable=function(cubes){var cube10=new PCube(inds,[that.o.state],periods);cube10.loadValues(function(values){this.values=values;var cubeNation=new PCube(inds,[that.o.nation],periods);cubeNation.loadValues(function(values){this.values=values;var districtCube10=cube10;var html="";html+="<tr>";html+="<th></th>";html+="<th colspan='3'>State<br />2013</th>";html+="</tr>";html+="<tr class='new-section-header sub-header'>";html+="<td class='section-title'></td>";html+="<td></td>";html+="<td>%</td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var year=latestacs;var label="Legal Permanent Resident Status";html+="<td class='label'>"+label+"</td>";var ind=indsO.ptotal;var sum=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum,ind.unit);html+="<td></td>";html+="<td>"+val+"</td>";html+="<td></td>";html+="</tr>";tbody.append(html);var note="<div class='table-note'></div>";sectionCont.append(note);addToCitiLoadCount()})})};loadTable()};var ids={normal:[9609451]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popTaxFromResidentsAB=function(table,sectionCont){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");tbody.attr("id","overview-demo");table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var periods=[2010];var place=that.o.place;var aggs=that.o.counties;var loadTable=function(cubes){var cube10=new PCube(inds,aggs,periods);cube10.loadValues(function(values){this.values=values;var cubeNation=new PCube(inds,[that.o.nation],periods);cubeNation.loadValues(function(values){this.values=values;var districtCube10=cube10;var html="";html+="<tr>";html+="<th></th>";html+="<th colspan='3'>"+that.typeLabel+"<br />2010</th>";html+="</tr>";html+="<tr class='new-section-header sub-header'>";html+="<td class='section-title'></td>";html+="<td></td>";html+="<td>$</td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var year=2010;var label="Tax from Residents";html+="<td class='label'>"+label+"</td>";var ind=indsO.aggragi_net;var sum=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum,ind.unit);html+="<td></td>";html+="<td>"+val+"</td>";html+="<td></td>";html+="</tr>";tbody.append(html);addToCitiLoadCount()})},{includeMappings:true})};loadTable()};var ids={normal:[9887201]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popEducationAB=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");sectionCont.attr("id","summary-education-ab");this.container.append(sectionCont);var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var table=$("<table />");table.addClass("citi-summary-table");var tbody=$("<tbody />");tbody.attr("id","overview-education");table.append(tbody);sectionCont.append('<div style="page-break-before: always;"></div>');sectionCont.append(table);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var periods=[P.constants.latestACSPeriod];var place=that.o.place;var aggs10=[place];var loadTable=function(cubes){var cube10=new PCube(inds,aggs10,periods);cube10.loadValues(function(values){this.values=values;var cubeNation=new PCube(inds,[that.o.nation],periods);cubeNation.loadValues(function(values){this.values=values;var districtCube10=cube10;var year=this.periods[0];var html="";html+="<tr>";html+="<th></th>";html+="<th colspan='3'>"+that.typeLabel+"<br />2010-2014</th>";html+="<th colspan='3'>Nation<br />2010-2014</th>";html+="</tr>";html+="<tr class='new-section-header sub-header'>";html+="<td class='section-title'>Education By Race</td>";html+="<td>#</td>";html+="<td>%</td>";html+="<td></td>";html+="<td>#</td>";html+="<td>%</td>";html+="<td></td>";html+="</tr>";var getEducationRow=function(indsCount,indsPerc,label){var h="";h="<tr>";h="<td class='sub-header-label'><b>"+label+"</b></td>";h+="<td></td>";h+="<td></td>";h+="<td></td>";h+="<td></td>";h+="<td></td>";h+="<td></td>";h+="</tr>";var indlabels=["Some High School, But No High School Diploma","High School Diploma","Bachelor's Degree"];for(var i=0;i<indlabels.length;i++){h+="<tr class='data-row'>";var ind=indsCount[i];h+="<td class='label'>"+indlabels[i]+"</td>";var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var ind=indsPerc[i];var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";h+="<td>--</td>";var ind=indsCount[i];var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var ind=indsPerc[i];var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";h+="<td>--</td>";h+="</tr>"}return h};html+=getEducationRow([indsO.csmhsnodipbk,indsO.chspbk,indsO.cbachpbk],[indsO.psmhsnodipbk,indsO.phspbk,indsO.pbachpbk],"Black");html+=getEducationRow([indsO.csmhsnodipwh,indsO.chspwh,indsO.cbachpwh],[indsO.psmhsnodipwh,indsO.phspwh,indsO.pbachpwh],"White");html+=getEducationRow([indsO.csmhsnodipas,indsO.chspas,indsO.cbachpas],[indsO.psmhsnodipas,indsO.phspas,indsO.pbachpas],"Asian");html+=getEducationRow([indsO.csmhsnodipnhpi,indsO.chspnhpi,indsO.cbachpnhpi],[indsO.psmhsnodipnhpi,indsO.phspnhpi,indsO.pbachpnhpi],"Native Hawaiian and Other Pacific Islander");html+=getEducationRow([indsO.csmhsnodipaian,indsO.chspaian,indsO.cbachpaian],[indsO.psmhsnodipaian,indsO.phspaian,indsO.pbachpaian],"American Indian and Alaskan Native");html+=getEducationRow([indsO.csmhsnodipoth,indsO.chspoth,indsO.cbachpoth],[indsO.psmhsnodipoth,indsO.phspoth,indsO.pbachpoth],"Some Other Race");html+=getEducationRow([indsO.csmhsnodiptwop,indsO.chsptwop,indsO.cbachptwop],[indsO.psmhsnodiptwop,indsO.phsptwop,indsO.pbachptwop],"Two or More Races");tbody.append(html);var aggs=that.o.counties;var agglist=getAggregatedPlaceNames(aggs);var note="<div class='table-note'>Notes: Demographic, citizenship, and education data  in this section come from the Census Bureau's American Community Survey rolling estimate for 2010-2014, by Congressional District and by state. Legal Permanent Resident data is from the Department of Homeland Security by state for 2013. Data on unemployment, employment and labor force is from the Bureau of Labor Statistics (BLS) for the latest month available.  The BLS data in this section includes the following "+aggs[0].getType().getPluralName().toLowerCase()+": "+agglist+".</div>";sectionCont.append(note);addToCitiLoadCount()})})};loadTable()};var ids={normal:[9922350,9922355,9922349,9922352,9922348,9922353,9922354,9922342,9922347,9922341,9922344,9922340,9922345,9922346,9922334,9922339,9922333,9922336,9922332,9922337,9922338,9922326,9922331,9922325,9922328,9922324,9922329,9922330,9922311,9922323,9922310,9922320,9922309,9922321,9922322,9922302,9922314,9922301,9922304,9922300,9922312,9922313]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popEmploymentAB=function(table,sectionCont){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");tbody.attr("id","overview-employment");var html="<tr>";html+="<th>Employment</th>";html+="<th colspan='3'>"+this.typeLabel+"</th>";if(!isState){html+="<th colspan='3'>State</th>"}html+="</tr>";tbody.append(html);table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var pers=inds[0].getPeriods();var periods=[pers[12],pers[0]];var aggs=that.o.counties;if(that.o.place.getType()!=PPlaceType.CONGRESSIONAL){aggs=[that.o.place]}var cube1=new PCube(inds,aggs,periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(inds,[that.o.state],periods);cube2.loadValues(function(statevalues){this.values=statevalues;var html="";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";if(!isState){var len=2}else{var len=1}for(var i=0;i<len;i++){html+="<td>"+formatMonthlyPeriod(periods[0])+"</td>";html+="<td>"+formatMonthlyPeriod(periods[1])+"</td>";html+="<td>% change from prev year</td>"}html+="<tr class='data-row'>";var ind=inds[0];var label="Employed People";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var sum2=getSumOfPlaces(cube1,ind,periods[1]);var val=PWebUtil.formatNumber(sum2,ind.unit);html+="<td>"+val+"</td>";var change=PWebUtil.formatNumber(divideCheck(sum2-sum1,sum1,100),"_%");html+="<td>"+change+"</td>";if(!isState){var sum1=getSumOfPlaces(cube2,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var sum2=getSumOfPlaces(cube2,ind,periods[1]);var val=PWebUtil.formatNumber(sum2,ind.unit);html+="<td>"+val+"</td>";var change=PWebUtil.formatNumber(divideCheck(sum2-sum1,sum1,100),"_%");html+="<td>"+change+"</td>";html+="</tr>"}html+="<tr class='data-row'>";var ind1=inds[0];var ind2=inds[1];var label="Percent Employed";html+="<td class='label'>"+label+"</td>";var sum1=divideCheck(getSumOfPlaces(cube1,ind1,periods[0]),getSumOfPlaces(cube1,ind2,periods[0]),100);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var sum2=divideCheck(getSumOfPlaces(cube1,ind1,periods[1]),getSumOfPlaces(cube1,ind2,periods[1]),100);var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";var change="--";html+="<td>"+change+"</td>";if(!isState){var sum1=getSumOfPlaces(cube2,ind1,periods[0])/getSumOfPlaces(cube2,ind2,periods[0])*100;var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var sum2=getSumOfPlaces(cube2,ind1,periods[1])/getSumOfPlaces(cube2,ind2,periods[1])*100;var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";var change="--";html+="<td>"+change+"</td>";html+="</tr>"}html+="<tr class='data-row'>";var ind=inds[1];var label="Labor Force";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var sum2=getSumOfPlaces(cube1,ind,periods[1]);var val=PWebUtil.formatNumber(sum2,ind.unit);html+="<td>"+val+"</td>";var change=PWebUtil.formatNumber(divideCheck(sum2-sum1,sum1,100),"_%");html+="<td>"+change+"</td>";if(!isState){var sum1=getSumOfPlaces(cube2,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var sum2=getSumOfPlaces(cube2,ind,periods[1]);var val=PWebUtil.formatNumber(sum2,ind.unit);html+="<td>"+val+"</td>";var change=PWebUtil.formatNumber(divideCheck(sum2-sum1,sum1,100),"_%");html+="<td>"+change+"</td>";html+="</tr>"}html+="<tr class='data-row'>";var ind1=inds[2];var ind2=inds[1];var ind3=indsO.unemprate;var label="Unemployment Rate";html+="<td class='label'>"+label+"</td>";if(cube1.places[0].getType()==PPlaceType.STATE){var sum1=getSumOfPlaces(cube1,ind3,periods[0]);var sum2=getSumOfPlaces(cube1,ind3,periods[1])}else{var sum1=divideCheck(getSumOfPlaces(cube1,ind1,periods[0]),getSumOfPlaces(cube1,ind2,periods[0]),100);var sum2=divideCheck(getSumOfPlaces(cube1,ind1,periods[1]),getSumOfPlaces(cube1,ind2,periods[1]),100)}var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";var change="--";html+="<td>"+change+"</td>";if(!isState){var sum1=getSumOfPlaces(cube2,ind3,periods[0]);var sum2=getSumOfPlaces(cube2,ind3,periods[1]);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";var val=PWebUtil.formatNumber(sum2,"_%");html+="<td>"+val+"</td>";var change="--";html+="<td>"+change+"</td>";html+="</tr>"}tbody.append(html);addToCitiLoadCount()})},{includeMappings:true})};var ids={normal:[9841108,9841101,9841100,9841103]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popIncomeAndBenefitsAB=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");this.container.append(sectionCont);var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var table=$("<table />");table.addClass("citi-summary-table");table.attr("id","summary-income-benefits");var tbody=$("<tbody />");var html="";html+="<tr><th>FINANCES AND INSURANCE</th>";html+="<th colspan='2'>"+this.typeLabel+"<br />2010-2014</th>";html+="<th colspan='2'>Nation<br />2010-2014</th>";html+="</tr>";tbody.append(html);table.append(tbody);sectionCont.append('<div style="page-break-before: always;"></div>');sectionCont.append(table);sectionCont.attr("id","summary-finance-ab");this.popIncomeAB(table,sectionCont);var self=this;this.o.state.getPlacesWithin(PPlaceType.CONGRESSIONAL,null,null,function(state_congs){self.popEITCAB(table,sectionCont,state_congs);self.popHealthcareAB(table,sectionCont)},50,null,null,null,"id,identifier,label,typeid,state")};CitiSummaryTables.prototype.popIncomeAB=function(table,sectionCont){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");var html="";tbody.append(html);table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var acsYear=P.constants.latestACSPeriod;var periods=[acsYear];var place=that.o.place;var aggs10=[place];var loadTable=function(cubes){var cube10=new PCube(inds,aggs10,periods);cube10.loadValues(function(values){this.values=values;var cubeNation=new PCube(inds,[that.o.nation],[2e3,acsYear]);cubeNation.loadValues(function(values){this.values=values;var districtCube10=cube10;var year=acsYear;var html="";html+="<tr class='new-section-header sub-header'>";html+="<td class='section-title'></td>";html+="<td>$</td>";html+="<td>% change from 2000</td>";html+="<td>$</td>";html+="<td>% change from 2000</td>";html+="</tr>";var getRow=function(ind,label){var h="";h+="<tr class='data-row'>";h+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";h+="<td>--</td>";var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var sum2=getSumOfPlacesIgnoreNulls(cubeNation,ind,2e3);if(sum2){var val=PWebUtil.formatNumber(divideCheck(sum1-sum2,sum2,100),"_%")}else{val="--"}h+="<td>"+val+"</td>";h+="</tr>";return h};html+=getRow(indsO.apci,"Per Capita Income");html+="<tr>";html+="<td class='sub-header-label'><b>Per Capita Income by Race</b></td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+=getRow(indsO.apcibk,"Black");html+=getRow(indsO.apciwh,"White");html+=getRow(indsO.apcias,"Asian");html+=getRow(indsO.apcinhpi,"Native Hawaiian and Other Pacific Islander");html+=getRow(indsO.apciaian,"American Indian and Alaskan Native");html+=getRow(indsO.apcioth,"Some Other Race");html+=getRow(indsO.apcitwop,"Two or More Races");html+=getRow(indsO.mhhinc,"Household Income");html+="<tr>";html+="<td class='sub-header-label'><b>Household Income by Race</b></td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+=getRow(indsO.mhhincbk,"Black");html+=getRow(indsO.mhhincwh,"White");html+=getRow(indsO.mhhincas,"Asian");html+=getRow(indsO.mhhincnhpi,"Native Hawaiian and Other Pacific Islander");html+=getRow(indsO.mhhincaian,"American Indian and Alaskan Native");html+=getRow(indsO.mhhincoth,"Some Other Race");html+=getRow(indsO.mhhinctwop,"Two or More Races");html+=getRow(indsO.mempseinc,"Self-Employed Worker Earnings");tbody.append(html);var note="<div class='table-note'></div>";sectionCont.append(note);addToCitiLoadCount()})})};loadTable()};var ids={normal:[9871924,9922252,9922257,9922251,9922254,9922250,9922255,9922256,9871831,9871811,9871972,9871802,9871948,9871838,9871953,9871905,9909557]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popHealthcareAB=function(table,sectionCont){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");var html="<tr>";html+="<th></th>";html+="<th colspan='2'>"+this.typeLabel+"<br />2010-2014</th>";html+="<th colspan='2'>Nation<br />2010-2014</th>";html+="</tr>";tbody.append(html);table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var periods=[P.constants.latestACSPeriod];var place=that.o.place;var aggs10=[place];var loadTable=function(cubes){var cube10=new PCube(inds,aggs10,periods);cube10.loadValues(function(values){this.values=values;var cubeNation=new PCube(inds,[that.o.nation],periods);cubeNation.loadValues(function(values){this.values=values;var districtCube10=cube10;var year=this.periods[0];var html="";html+="<tr class='new-section-header sub-header'>";html+="<td class='section-title'></td>";html+="<td>#</td>";html+="<td>%</td>";html+="<td>#</td>";html+="<td>%</td>";html+="</tr>";var getRow=function(ind1,ind2,label){var h="";h+="<tr class='data-row'>";h+="<td class='label'>"+label+"</td>";var ind=ind1;var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var ind=ind2;var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var ind=ind1;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var ind=ind2;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";h+="</tr>";return h};html+=getRow(indsO.cpopwoins,indsO.ppopwoins,"Healthcare Uninsurance");html+="<tr>";html+="<td class='sub-header-label'><b>Healthcare Uninsurance by Race</b></td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+=getRow(indsO.cpopbkwoins,indsO.ppopbkwoins,"Black");html+=getRow(indsO.cpopwhwoins,indsO.ppopwhwoins,"White");html+=getRow(indsO.cpopaswoins,indsO.ppopaswoins,"Asian");html+=getRow(indsO.cpopnhpiwoins,indsO.ppopnhpiwoins,"Native Hawaiian and Other Pacific Islander");html+=getRow(indsO.cpopaianwoins,indsO.ppopaianwoins,"American Indian and Alaskan Native");html+=getRow(indsO.cpopothwoins,indsO.ppopothwoins,"Some Other Race");html+=getRow(indsO.cpoptwopwoins,indsO.ppoptwopwoins,"Two or More Races");tbody.append(html);var note="<div class='table-note'>Notes: Per Capita Income, Household income, Self-Employed Worker Earnings, and Healthcare uninsurance data for Congressional Districts and states comes from the Census Bureau's American Community Survey (ACS) rolling estimates for 2010-2014. EITC Recipients information for 2012 is provided by the Brookings Institution for Congressional Districts and states.</div>";sectionCont.append(note);addToCitiLoadCount()})})};loadTable()};var ids={normal:[9921936,9922029,9921902,9921925,9921911,9922009,9922e3,9922013,9921998,9921923,9922031,9921949,9921956,9922023,9921992,9921943]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popHouseholdExpAB=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");sectionCont.attr("id","summary-householdexp-ab");this.container.append(sectionCont);var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var table=$("<table />");table.addClass("citi-summary-table");table.attr("id","summary-income-benefits");var tbody=$("<tbody />");var html="";html+="<tr><th>HOUSEHOLD EXPENDITURES</th>";html+="<th colspan='2'>"+this.typeLabel+"<br />2012</th>";html+="<th colspan='2'>Nation<br />2012</th>";html+="</tr>";tbody.append(html);table.append(tbody);sectionCont.append('<div style="page-break-before: always;"></div>');sectionCont.append(table);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var periods=[P.constants.latestACSPeriod,2012];var place=that.o.place;var aggs10=[place];if(place.getType()!=PPlaceType.STATE){aggs10=that.o.tracts10}var loadTable=function(cubes){var aggsCube=new PCube(inds,aggs10,periods);aggsCube.loadValues(function(values){this.values=values;var districtCube=new PCube(inds,[place],periods);districtCube.loadValues(function(values){this.values=values;var cubeNation=new PCube(inds,[that.o.nation],periods);cubeNation.loadValues(function(values){this.values=values;var year=this.periods[1];var html="";html+="<tr class='new-section-header sub-header'>";html+="<td class='section-title'></td>";html+="<td>%</td>";html+="<td>Average</td>";html+="<td>%</td>";html+="<td>Average</td>";html+="</tr>";var getRow=function(ind1,label){var h="";h+="<tr class='data-row'>";h+="<td class='label'>"+label+"</td>";var ind=ind1;var sum1=getSumOfPlacesIgnoreNulls(aggsCube,ind,year);var sum2=getSumOfPlacesIgnoreNulls(aggsCube,indsO.aggtotexp,year);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");h+="<td>"+val+"</td>";var sum1=getSumOfPlacesIgnoreNulls(aggsCube,ind,year);var sum2=getSumOfPlacesIgnoreNulls(aggsCube,indsO.chh,P.constants.latestACSPeriod);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2),"$_",null,null,1);h+="<td>"+val+"</td>";var ind=ind1;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var sum2=getSumOfPlacesIgnoreNulls(cubeNation,indsO.aggtotexp,year);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");h+="<td>"+val+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var sum2=getSumOfPlacesIgnoreNulls(cubeNation,indsO.chh,P.constants.latestACSPeriod);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2),"$_",null,null,1);h+="<td>"+val+"</td>";h+="</tr>";return h};html+=getRow(indsO.agghoustot,"Housing Expenditures");html+=getRow(indsO.aggtranstot,"Transportation Expenditures");html+=getRow(indsO.agghealthtot,"Healthcare Expentures");html+=getRow(indsO.aggfoodtot,"Food Expenditures");html+="<tr class='new-section-header'>";html+="<td></td>";html+="<td colspan='2'>"+that.typeLabel+"<br />2010-2014</td>";html+="<td colspan='2'>Nation<br />2010-2014</td>";html+="</tr>";html+="<tr class='data-row'>";html+="<td class='label'>Car Ownership (Cars per Household)</td>";var ind=indsO.avmv;html+="<td>--</td>";var sum1=getSumOfPlacesIgnoreNulls(districtCube,ind,P.constants.latestACSPeriod);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,P.constants.latestACSPeriod);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="</tr>";tbody.append(html);var note="<div class='table-note'>Notes: Consumer Expenditure Survey (CES) estimates were created by PolicyMap using the Bureau of Labor Statistics CES microdata and the Census' American Community Survey data.  PolicyMap used a statistical modeling process to create estimates at the tract, county, city, state, and nation levels. The figures are geographic estimates and are not meant to directly reflect the CES data.  Car ownership data comes from the US Census' American Community Survey five-year estimates for 2010-2014 for Congressional Districts and states.</div>";sectionCont.append(note);addToCitiLoadCount()})})})};loadTable()};var ids={normal:[9869078,9921823,9921831,9921806,9921833,9873779,9921834,9873779]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popEITCAB=function(table,sectionCont,state_congs){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");var html="<tr>";html+="<th></th>";html+="<th colspan='2'>"+this.typeLabel+"<br />2012</th>";if(!isState){html+="<th colspan='2'>State<br />2012</th>"}html+="</tr>";tbody.append(html);table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var cindsO=indsObj.congsObj;var cinds=indsObj.congsArr;var periods=[2e3,2011];var place=that.o.place;var loadTable=function(cubes){var year12=2012;var year11=2011;var year00=2e3;var year10=2010;var type=PPlaceType.ZIP;if(isState){var type=PPlaceType.STATE}place.getPlacesWithin(type,1,null,function(aggs){if(isState){aggs=[that.o.state]}var cubeEITC=new PCube(inds,[place],[year12]);cubeEITC.loadValues(function(values){this.values=values;if(isState){var aggs=[that.o.state]}else{var aggs=that.o.counties}var cubeUninsured=new PCube(cinds,[place],[year12]);cubeUninsured.loadValues(function(values){this.values=values;var cubeStateCongs=new PCube(cinds,state_congs,[year12]);cubeStateCongs.loadValues(function(values){this.values=values;var cubeState=new PCube(inds,[that.o.state],[year00,year12]);cubeState.loadValues(function(values){this.values=values;var html="";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>$</td>";html+="<td>%</td>";if(!isState){html+="<td>$</td>";html+="<td>%</td>"}html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.avteic;var label="EITC Recipients";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cubeEITC,ind,year12);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cubeState,indsO.pteic,year12);var val=PWebUtil.formatNumber(sum1,"_%");html+="<td>"+val+"</td>";if(!isState){var ind=indsO.avteic;var sum1=getSumOfPlacesIgnoreNulls(cubeState,ind,year12);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.pteic;var sum1=getSumOfPlacesIgnoreNulls(cubeState,ind,year12);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>"}html+="</tr>";tbody.append(html);var agglist=getAggregatedPlaceNames(aggs);var t1="";var t2="";var t3="";if(!isState){t1=" as aggregated by census tracts that comprise this district";t2=" as aggregated by ZIP code";t3=" and contains the following counties that comprise the district: "+agglist}var note="<div class='table-note'></div>";sectionCont.append(note);addToCitiLoadCount()})})},{includeMappings:true})})},50,null,null,null,"id,identifier,label,typeid,state")};loadTable()};var ids={normal:[9896592,9896546,9896531,9896571,9628806,9896600],cong:[9915154,9915150,9915152]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popBankingAB=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");sectionCont.attr("id","summary-banking-ab");this.container.append(sectionCont);sectionCont.append('<div style="page-break-before: always;"><br><br><br><br><br><br></div>');var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var table=$("<table />");table.addClass("citi-summary-table");table.attr("id","summary-education");var html="<thead><tr>";html+="<th>BANKING INSTITUTIONS</th>";html+="<th colspan='2'>"+this.typeLabel+"</th>";html+="<th colspan='2'>Nation</th>";html+="</tr></thead>";table.append(html);sectionCont.append(table);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var periods=[2e3,2011];var place=that.o.place;var aggs00=[];var aggs10=[];if(place.getType()==PPlaceType.STATE){aggs00=[place]}else{aggs00=that.o.tracts00}var aggs10=[place];var loadTable=function(cubes){var year14=2014;var year12=2012;var year11=2011;var year09=2009;var state=that.o.state;var cubeStateWithCounties=new PCube([indsO.c_abo],that.o.st_counties,[year12]);cubeStateWithCounties.loadValues(function(values){this.values=values;var cubeState=new PCube(inds,[state],[year09,year12,year14]);cubeState.loadValues(function(values){this.values=values;var cubeBanks=new PCube(inds,[place],[year12,year14]);cubeBanks.loadValues(function(values){this.values=values;var busAggs=that.o.tracts10;if(place.getType()==PPlaceType.STATE){busAggs=that.o.st_counties}var cubeBusiness=new PCube(inds,busAggs,[year12]);cubeBusiness.loadValues(function(values){this.values=values;var cubeNation=new PCube(inds,[that.o.nation],[year11,year14]);cubeNation.loadValues(function(values){this.values=values;var set=new POverlaySet(128950);set.type="old";set.pinmax=0;place.getMarkersWithin(set,function(creditmarkers){var nation=that.o.nation;nation.getMarkersWithin(set,function(creditmarkers_nation){var set=new POverlaySet(123200);set.type="old";set.pinmax=0;place.getMarkersWithin(set,function(cdfimarkers){if(cdfimarkers[0]instanceof PMarker){var cdficount=cdfimarkers.length}else{var cdficount=cdfimarkers[0]}nation.getMarkersWithin(set,function(cdfimarkers_nation){if(cdfimarkers_nation[0]instanceof PMarker){var cdfinationcount=cdfimarkers_nation.length}else{var cdfinationcount=cdfimarkers_nation[0]}var html="<tbody>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>#</td>";html+="<td></td>";html+="<td>#</td>";html+="<td></td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.bbct;var label="Bank Branches";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cubeBanks,ind,year14);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";var ind=indsO.bbct;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year14);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";html+="<tr class='data-row'>";var label="Credit Unions";html+="<td class='label'>"+label+"</td>";var val=PWebUtil.formatNumber(creditmarkers[0]);html+="<td>"+val+"</td>";html+="<td>--</td>";var val=PWebUtil.formatNumber(creditmarkers_nation[0]);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";html+="<tr class='data-row'>";var label="CDFIs";html+="<td class='label'>"+label+"</td>";var val=PWebUtil.formatNumber(cdficount);html+="<td>"+val+"</td>";html+="<td>--</td>";var num=924;var val=PWebUtil.formatNumber(num);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";html+="<tr class='new-section-header'>";html+="<td></td>";if(!isState){html+="<td colspan='2'>District</td>"}html+="<td colspan='2'>State</td>";html+="</tr>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";if(!isState){html+="<td>$</td>";html+="<td></td>"}html+="<td>$</td>";html+="<td>%</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.depsumbr;var label="Deposits at Bank Branches";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cubeBanks,ind,year14);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td></td>";if(!isState){var ind=indsO.depsumbr;var sum1=getSumOfPlacesIgnoreNulls(cubeState,ind,year14);PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td></td>"}html+="</tr>";html+="<tr class='data-row'>";var label="Unbanked";html+="<td class='label'>"+label+"</td>";if(!isState){html+="<td>--</td>";html+="<td>--</td>"}var ind=indsO.un_final;var sum1=getSumOfPlacesIgnoreNulls(cubeState,ind,year09);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>--</td>";html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var label="Underbanked";html+="<td class='label'>"+label+"</td>";if(!isState){html+="<td>--</td>";html+="<td>--</td>"}var ind=indsO.under_final;var sum1=getSumOfPlacesIgnoreNulls(cubeState,ind,year09);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>--</td>";html+="<td>"+val+"</td>";html+="</tr>";html+="</tbody>"
;table.append(html);var note="<div class='table-note'>Notes: Bank branch information comes from the FDIC and is available as of 2014.  Data on credit unions is from the NCUA and was last updated in 2013.  CDFI location data is provided through the generosity of the Opportunity Finance Network.  Deposit information comes from the FDIC and is available as of 2014.  And Unbanked and Underbanked data is provided thanks to CFED and represents information from 2011.</div>";sectionCont.append(note);addToCitiLoadCount()})})})})})})})})})};loadTable()};var ids={normal:[9907200,9851007,9907206,9875155,9875156]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popHousingMarketAB=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");sectionCont.attr("id","summary-community-ab");this.container.append(sectionCont);var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var table=$("<table />");table.addClass("citi-summary-table");table.attr("id","summary-community");var html="<thead><tr>";html+="<th>HOUSING</th>";html+="<th colspan='2'>"+this.typeLabel+"<br />2010-2014</th>";html+="<th colspan='2'>Nation<br />2010-2014</th>";html+="</tr></thead>";table.append(html);sectionCont.append(table);this.popHomeownershipAB(table,sectionCont);var that=this;this.o.place.getPlacesWithin(PPlaceType.COUNTY_SUBDIVISION,null,null,function(subdivs){that.popRentAB(table,sectionCont,subdivs)},50,null,null,null,"id,identifier,label,typeid,state")};CitiSummaryTables.prototype.popHomeownershipAB=function(table,sectionCont){var tbody=$("<tbody />");tbody.attr("id","overview-demo");table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var cindsO=indsObj.congsObj;var cinds=indsObj.congsArr;var place=that.o.place;var periods=[P.constants.latestACSPeriod];var aggs10=[];if(place.getType()==PPlaceType.STATE){aggs10=[place]}else{aggs10=that.o.tracts10}var aggs10=[place];var loadTable=function(cubes){var cube10=new PCube(inds,aggs10,periods);cube10.loadValues(function(values){this.values=values;var nation=that.o.nation;var cubeNation=new PCube(inds,[nation],periods);cubeNation.loadValues(function(values){this.values=values;var districtCube10=cube10;var html="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>#</td>";html+="<td>%</td>";html+="<td>#</td>";html+="<td>%</td>";html+="</tr>";var year=periods[0];var getRow=function(ind1,ind2,label){var h="";h+="<tr class='data-row'>";h+="<td class='label'>"+label+"</td>";var ind=ind1;var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var ind=ind2;var sum1=getSumOfPlacesIgnoreNulls(districtCube10,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var ind=ind1;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";var ind=ind2;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);h+="<td>"+val+"</td>";h+="</tr>";return h};html+=getRow(indsO.chhoo,indsO.phhoo,"Homeownership Rate");html+="<tr>";html+="<td class='sub-header-label'><b>Homeownership by Race</b></td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="</tr>";html+=getRow(indsO.chhoobk,indsO.phhoobk,"Black");html+=getRow(indsO.chhoowh,indsO.phhoowh,"White");html+=getRow(indsO.chhooas,indsO.phhooas,"Asian");html+=getRow(indsO.chhoonhpi,indsO.phhoonhpi,"Native Hawaiian and Other Pacific Islander");html+=getRow(indsO.chhooaian,indsO.phhooaian,"American Indian and Alaskan Native");html+=getRow(indsO.chhoooth,indsO.phhoooth,"Some Other Race");html+=getRow(indsO.chhootwop,indsO.phhootwop,"Two or More Races");tbody.append(html);addToCitiLoadCount()})})};loadTable()};var ids={normal:[9873035,9873004,9873090,9873059,9873173,9873002,9873040,9873097,9873049,9873062,9873202,9873057,9873234,9873239,9873086,9873190]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popRentAB=function(table,sectionCont,subdivs){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");tbody.attr("id","overview-demo");table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var place=that.o.place;var acsYear=P.constants.latestACSPeriod;var periods=[acsYear];var aggs10=[];if(place.getType()==PPlaceType.STATE){aggs10=[place]}else{aggs10=that.o.tracts10}var loadTable=function(cubes){var cubeAggs=new PCube(inds,aggs10,periods);cubeAggs.loadValues(function(values){this.values=values;var cubePlace=new PCube(inds,[place],periods);cubePlace.loadValues(function(values){this.values=values;var year14=2014;var cubeCountySub=new PCube(inds,subdivs,[year14]);cubeCountySub.loadValues(function(values){this.values=values;var nation=that.o.nation;var cubeNation=new PCube(inds,[nation],periods);cubeNation.loadValues(function(values){this.values=values;var html="<tr>";var year=acsYear;var html="<tr class='new-section-header'>";html+="<td></td>";html+="<td colspan='2'>"+that.typeLabel+"<br />"+year+"</td>";html+="<td colspan='2'>Nation<br />"+year+"</td>";html+="</tr>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>$</td>";html+="<td>%</td>";html+="<td>$</td>";html+="<td>%</td>";html+="</tr>";html+="<tr class='data-row'>";html+="<td class='label'>Home Values</td>";var ind=indsO.mhv;var sum1=getSumOfPlacesIgnoreNulls(cubePlace,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";var ind=indsO.mhv;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";html+="<tr class='data-row'>";html+="<td class='label'>Mortgage Lending - All</td>";var ind=indsO.mo;if(isState){var sum1=getSumOfPlacesIgnoreNulls(cubeAggs,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit)}else{var arr=cubeAggs.getSortedValuesOfPlacesIgnoreNulls(ind,year);var v1=arr[0];var v2=arr[arr.length-1];var val=getRangeString(v1,v2,ind.unit)}html+="<td>"+val+"</td>";html+="<td>--</td>";var ind=indsO.mo;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";html+="<tr class='data-row'>";html+="<td class='label'>Mortgage Lending - Refinance</td>";var ind=indsO.mrfo;if(isState){var sum1=getSumOfPlacesIgnoreNulls(cubeAggs,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit)}else{var arr=cubeAggs.getSortedValuesOfPlacesIgnoreNulls(ind,year);var v1=arr[0];var v2=arr[arr.length-1];var val=getRangeString(v1,v2,ind.unit)}html+="<td>"+val+"</td>";html+="<td>--</td>";var ind=indsO.mrfo;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";html+="<tr class='data-row'>";html+="<td class='label'>Leveraged Homes</td>";var ind=indsO.mlevratio_o;html+="<td>--</td>";if(isState){var sum1=getSumOfPlacesIgnoreNulls(cubeAggs,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit)}else{var arr=cubeAggs.getSortedValuesOfPlacesIgnoreNulls(ind,year);var v1=arr[0];var v2=arr[arr.length-1];var val=getRangeString(v1,v2,ind.unit)}html+="<td>"+val+"</td>";var ind=indsO.mlevratio_o;html+="<td>--</td>";var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";html+="<td class='label'>Rents</td>";var ind=indsO.mrent_acs;var sum1=getSumOfPlacesIgnoreNulls(cubePlace,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";var ind=indsO.mrent_acs;var sum1=getSumOfPlacesIgnoreNulls(cubeNation,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";html+="<td class='sub-header-label'><b>Rent by Bedroom Size</b></td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="<td></td>";html+="</tr>";var getRow=function(ind1,label){var h="";h+="<tr class='data-row'>";h+="<td class='label'>"+label+"</td>";var ind=ind1;var arr=cubeCountySub.getSortedValuesOfPlacesIgnoreNulls(ind,year14);var v1=arr[0];var v2=arr[arr.length-1];var val=getRangeString(v1,v2,ind.unit);h+="<td>"+val+"</td>";h+="<td>--</td>";h+="<td>--</td>";h+="<td>--</td>";h+="</tr>";return h};html+=getRow(indsO.fmr_0,"Efficiency");html+=getRow(indsO.fmr_1,"1 Bedroom");html+=getRow(indsO.fmr_2,"2 Bedroom");html+=getRow(indsO.fmr_3,"3 Bedroom");html+=getRow(indsO.fmr_4,"4 Bedroom");tbody.append(html);var subdivlist=getAggregatedPlaceNames(subdivs);var note="<div class='table-note' id='notebeforebanking'>Notes: Data for this area for home values, rents, and homeownership rates come from both the US Census' American Community Survey (ACS) five-year estimates for 2010-2014 and are provided at the Congressional District or state level.  Mortgage Lending is from the FFIEC's Home Mortgage Disclosure Act data from 2013 and is aggregated by census tracts that make up the district and is available by state. Leveraged Home information comes from PolicyMap's calculation of the FFIEC's Home Mortgage Disclosure Act data from 2012 comparing loan amount information and stated houshold income. Data for rents by bedroom size is from HUD's Fair Market Rents and is composed of the following county subdivisions: <a onclick='$(this).next().toggle()'>(see list)</a> <span style='display:none'> "+subdivlist+"</span> <br />Data for Low-Income Housing Tax Credits (LIHTC) is available from HUD and is as of 2012.</div>";sectionCont.append(note);addToCitiLoadCount()})})})})};loadTable()};var ids={normal:[9873606,9862509,9862079,9862671,9862509,9873661,9578710,9578719,9578720,9578723,9578714]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popSmallBusinessLendingED=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");sectionCont.attr("id","summary-small-business-lending-ed");this.container.append(sectionCont);var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var table=$("<table />");table.addClass("citi-summary-table");table.append(html);sectionCont.append(table);var tbody=$("<tbody />");tbody.attr("id","small-business-lending");var html="<tr>";html+="<th>SMALL BUSINESS LENDING ENVIRONMENT</th>";html+="<th colspan='3'>"+this.typeLabel+"<br />2013</th>";var compLabel="State";if(isState){compLabel="Nation"}html+="<th colspan='3'>"+compLabel+"<br />2013</th>";html+="</tr>";tbody.append(html);table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var periods=inds[0].getPeriods();var aggs=[that.o.place];var cube1=new PCube(inds,aggs,periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(inds,[that.o.state],periods);cube2.loadValues(function(statevalues){this.values=statevalues;var cubeStateWithCounties=new PCube(inds,that.o.st_counties,periods);cubeStateWithCounties.loadValues(function(statevalues){this.values=statevalues;var cubeNation=new PCube(inds,[that.o.nation],periods);cubeNation.loadValues(function(values){this.values=values;var aggs=that.o.tracts10;if(isState){aggs=[that.o.place]}var cubeTracts=new PCube(inds,aggs,periods);cubeTracts.loadValues(function(values){this.values=values;var aggs=that.o.counties;if(isState){aggs=[that.o.place]}var cubeCounties=new PCube(inds,aggs,periods);cubeCounties.loadValues(function(values){this.values=values;var html="";html+="<tr class='sub-header'>";html+="<td class=''>Small Business Administration (SBA) Loans</td>";var len=2;for(var i=0;i<len;i++){html+="<td>#</td>";html+="<td>$</td>";html+="<td>%</td>"}html+="<tr class='data-row'>";var ind=indsO.cloans;var label="Total";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.avgloanamt;var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var change="--";html+="<td>"+change+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cloans;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.avgloanamt;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var change="--";html+="<td>"+change+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.cloans_7a;var label="504 Loans";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.avgloanamt_7a;var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.ploans_7a;var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cloans_7a;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.avgloanamt_7a;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.ploans_7a;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.cloans_504;var label="Microloans";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.avgloanamt_504;var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.ploans_504;var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cloans_504;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.avgloanamt_504;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.ploans_504;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.cloans_micro;var label="Disaster Relief Loans";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.avgloanamt_micro;var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.ploans_micro;var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cloans_micro;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.avgloanamt_micro;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.ploans_micro;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.cloans_disrelief;var label="7A Loans";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.avgloanamt_disrelief;var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.ploans_disrelief;var sum1=getSumOfPlaces(cube1,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cloans_disrelief;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.avgloanamt_disrelief;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.ploans_disrelief;var sum1=getSumOfPlaces(c,ind,periods[0]);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr>";html+="<th></th>";html+="<th colspan='3'>"+that.typeLabel+"<br />2012</th>";html+="<th colspan='3'>"+compLabel+"<br />2012</th>";html+="</tr>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";for(var i=0;i<len;i++){html+="<td>#</td>";html+="<td>$</td>";html+="<td></td>"}html+="</tr>";var cube=cubeTracts;if(isState){cube=cubeStateWithCounties}html+="<tr class='data-row'>";var ind=indsO.c_cbo;var label="CRA Small Business Average Loans";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cube,ind,2012);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.c_aggbo;var sum2=getSumOfPlacesIgnoreNulls(cube,ind,2012);var val=PWebUtil.formatNumber(divideCheck(sum2,sum1),"$_");html+="<td>"+val+"</td>";html+="<td>--</td>";var c=cubeStateWithCounties;if(isState){c=cubeNation}var ind=indsO.c_cbo;if(isState){var val=PWebUtil.formatNumber(5036256)}else{var sum1=getSumOfPlacesIgnoreNulls(c,ind,2012);var val=PWebUtil.formatNumber(sum1,ind.unit)}html+="<td>"+val+"</td>";if(isState){var val=PWebUtil.formatNumber(39177.49,"$_")}else{var ind=indsO.c_aggbo;var sum2=getSumOfPlacesIgnoreNulls(c,ind,2012);var val=PWebUtil.formatNumber(divideCheck(sum2,sum1),"$_")}html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";var cube=cubeCounties;if(isState){cube=cube2}html+="<tr class='data-row'>";var ind=indsO.cbusfilings;var label="Business Bankruptcy Filings";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cube,ind,2013);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="<td>--</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cbusfilings;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2013);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="<td>--</td>";html+="</tr>";if(isState){var note="<div class='table-note'>Notes: Small Business Administration (SBA) loan data is from usaspending.gov and is available as of 2014.  Small Business Lending comes from the FFIEC's CRA program and is from 2012.  It is aggregated using the following counties: <a onclick='seeCitiBoundariesList(this)'>(see list)</a> <span style='display:none'>"+that.countieslist+"</span>.  Bankruptcy data comes from the U.S. Courts and is available as of 2013.</div>"}else{var note="<div class='table-note'>Notes: Small Business Administration (SBA) loan data is from usaspending.gov and is available as of 2014.  Small Business Lending comes from the FFIEC's CRA program and is from 2012.  It is aggregated by tract.  Bankruptcy data comes from the U.S. Courts and is aggregated from the following counties: <a onclick='seeCitiBoundariesList(this)'>(see list)</a> <span style='display:none'>"+that.countieslist+"</span>.</div>"}sectionCont.append(note);tbody.append(html);addToCitiLoadCount()})})})})})},{includeMappings:true})};var ids={normal:[9925323,9925327,9925331,9925330,9925322,9925304,9925303,9925325,9925324,9925315,9925307,9925301,9925320,9925317,9850995,9850982,9851007,9919001]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popSmallBusinessAndJobsSectionED=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");sectionCont.attr("id","summary-business-and-jobs-ed");this.container.append(sectionCont);var table=$("<table />");table.addClass("citi-summary-table");sectionCont.append(table);this.popSmallBusinessED(table,sectionCont);this.popSmallBusinessStartUpsED(table,sectionCont);this.popSmallBusinessJobsED(table,sectionCont);this.popSmallBusinessStartUpJobsED(table,sectionCont);this.popSmallBusinessBankruptcyED(table,sectionCont);this.popSmallBusinessEndNotesED(sectionCont)};CitiSummaryTables.prototype.popSmallBusinessBankruptcyED=function(table,sectionCont){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");tbody.attr("id","small-business-and-jobs");var html="<tr>";html+="<th></th>";html+="<th colspan='2'>"+this.typeLabel+"<br />2014</th>";var compLabel="State";if(isState){compLabel="Nation"}html+="<th colspan='2'>"+compLabel+"<br />2014</th>";html+="</tr>";tbody.append(html);table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var periods=inds[0].getPeriods();var aggs=[that.o.place];var cube2=new PCube(inds,[that.o.state],periods);cube2.loadValues(function(statevalues){this.values=statevalues;var cubeNation=new PCube(inds,[that.o.nation],periods);cubeNation.loadValues(function(values){this.values=values;var aggs=that.o.counties;if(isState){aggs=[that.o.place]}var cubeCounties=new PCube(inds,aggs,periods);cubeCounties.loadValues(function(values){this.values=values;var html="";html+="<tr class='sub-header'>";html+="<td class=''></td>";var len=2;for(var i=0;i<len;i++){html+="<td>#</td>";html+="<td>$</td>"}var year=this.periods[0];var cube=cubeCounties;if(isState){cube=cube2}html+="<tr class='data-row'>";var ind=indsO.cbusfilings;var label="Business Bankruptcy Filings";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cube,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cbusfilings;var sum1=getSumOfPlacesIgnoreNulls(c,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";var note="";sectionCont.append(note);tbody.append(html);addToCitiLoadCount()})})})};var ids={normal:[9919001]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popSmallBusinessED=function(table,sectionCont){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");tbody.attr("id","small-business-and-jobs");var html="<tr>";html+="<th>SMALL BUSINESSES AND JOBS</th>";html+="<th colspan='2'>"+this.typeLabel+"<br />2013</th>";var compLabel="State";if(isState){compLabel="Nation"}html+="<th colspan='2'>"+compLabel+"<br />2013</th>";html+="</tr>";tbody.append(html);table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var periods=inds[0].getPeriods();var aggs=that.o.zips;if(isState){aggs=[that.o.place]}var cube1=new PCube(inds,aggs,periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(inds,[that.o.state],periods);cube2.loadValues(function(statevalues){this.values=statevalues;var cubeNation=new PCube(inds,[that.o.nation],periods);cubeNation.loadValues(function(values){this.values=values;var html="";html+="<tr class='sub-header'>";html+="<td>Small Businesses</td>";var len=2;for(var i=0;i<len;i++){html+="<td>#</td>";html+="<td>%</td>"}var year=this.periods[0];html+="<tr class='data-row'>";var ind=indsO.n1_499;var label="Establishments with <500 Employees";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.n1_499;var sum1=getSumOfPlacesIgnoreNulls(c,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.n250_499;var label="Establishments with 250-499 Employees";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.n250_499;var sum1=getSumOfPlacesIgnoreNulls(c,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.n50_249;var label="Establishments with 50-249 Employees";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.n50_249;var sum1=getSumOfPlacesIgnoreNulls(c,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.n20_49;var label="Establishments with 20-49 Employees";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.n20_49;var sum1=getSumOfPlacesIgnoreNulls(c,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.n1_19;var label="Establishments with <20 Employees";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.n1_19;var sum1=getSumOfPlacesIgnoreNulls(c,ind,year);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="<td>--</td>";html+="</tr>";tbody.append(html);addToCitiLoadCount()})})})};var ids={normal:[9924901,9935771,9935770,9935769,9924907]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popSmallBusinessStartUpsED=function(table,sectionCont){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");tbody.attr("id","small-business-and-jobs");var html="<tr>";html+="<th class='blank'></th>";html+="<th colspan='2'>"+this.typeLabel+"<br />2012</th>";var compLabel="State";if(isState){compLabel="Nation"}html+="<th colspan='2'>"+compLabel+"<br />2012</th>";html+="</tr>";tbody.append(html);table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var periods=inds[0].getPeriods();var aggs=that.o.cbsas;if(isState){aggs=[that.o.place]}var cube1=new PCube(inds,aggs,periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(inds,[that.o.state],periods);cube2.loadValues(function(statevalues){this.values=statevalues;var cubeNation=new PCube(inds,[that.o.nation],periods);cubeNation.loadValues(function(values){this.values=values;var html="";html+="<tr class='sub-header'>";html+='<td>Small Business "Start-ups"</td>';var len=2;for(var i=0;i<len;i++){html+="<td>#</td>";html+="<td>%</td>"}var latestyear=periods[0];html+="<tr class='data-row'>";var ind=indsO.firms_slt500_alt1;var label="Businesses with <500 Employees, < 1 Year Old";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";if(isState||aggs.length==1){var ind=indsO.pslt500firms_slt500_alt1;var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit)}else{var ind=indsO.firms_slt500_atot;var sum2=getSumOfPlacesIgnoreNulls(cube1,ind,latestyear);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%")}html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.firms_slt500_alt1;var sum1=getSumOfPlacesIgnoreNulls(c,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.pslt500firms_slt500_alt1;var sum1=getSumOfPlacesIgnoreNulls(c,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.firms_slt500_alt3;var label="Businesses with <500 Employees, < 3 Year Old";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";if(isState||aggs.length==1){var ind=indsO.pslt500firms_slt500_alt3;var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit)}else{var ind=indsO.firms_slt500_atot;var sum2=getSumOfPlacesIgnoreNulls(cube1,ind,latestyear);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%")}html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.firms_slt500_alt3;var sum1=getSumOfPlacesIgnoreNulls(c,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.pslt500firms_slt500_alt3;var sum1=getSumOfPlacesIgnoreNulls(c,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.firms_slt500_alt5;var label="Businesses with <500 Employees, < 5 Year Old";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";if(isState||aggs.length==1){var ind=indsO.pslt500firms_slt500_alt5;var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit)}else{var ind=indsO.firms_slt500_atot;var sum2=getSumOfPlacesIgnoreNulls(cube1,ind,latestyear);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%")}html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.firms_slt500_alt5;var sum1=getSumOfPlacesIgnoreNulls(c,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.pslt500firms_slt500_alt5;var sum1=getSumOfPlacesIgnoreNulls(c,ind,latestyear);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="</tr>";tbody.append(html);addToCitiLoadCount()})})})};var ids={normal:[9925117,9925103,9925107,9925104,9925053,9925051,9925055,9925074,9925079,9925076,9925096,9925093,9925091,9925097,9925100,9925102,9925113,9925111,9925109,9925114,9925112,9925110,9925092,9925095,9925090]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popSmallBusinessJobsED=function(table,sectionCont){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");tbody.attr("id","small-business-and-jobs");var html="<tr>";html+="<th class='blank'></th>";html+="<th colspan='2'>"+this.typeLabel+"<br />2011</th>";var compLabel="State";if(isState){compLabel="Nation"}html+="<th colspan='2'>"+compLabel+"<br />2011</th>";html+="</tr>";tbody.append(html);table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var periods=inds[0].getPeriods();var aggs=that.o.tracts10;if(isState){aggs=[that.o.place]}var cube1=new PCube(inds,aggs,periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(inds,[that.o.state],periods);cube2.loadValues(function(statevalues){this.values=statevalues;var cubeNation=new PCube(inds,that.o.nationStates,periods);cubeNation.loadValues(function(values){this.values=values;var html="";html+="<tr class='sub-header'>";html+="<td>Small Business Jobs</td>";var len=2;for(var i=0;i<len;i++){html+="<td>#</td>";html+="<td>%</td>"}html+="<tr class='data-row'>";var ind=indsO.cw_privjobs_fs_500p;var label="Jobs with Larger Businesses (>500 Employees)";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,2011)
;var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.cw_privjobs_fs_uni;var sum2=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cw_privjobs_fs_500p;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.cw_privjobs_fs_uni;var sum2=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.cw_privjobs_fs_250499;var label="Jobs with Small Businesses (250-499 Employees)";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.cw_privjobs_fs_uni;var sum2=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cw_privjobs_fs_250499;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.cw_privjobs_fs_uni;var sum2=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.cw_privjobs_fs_50249;var label="Jobs with Small Businesses (50-249 Employees)";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.cw_privjobs_fs_uni;var sum2=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cw_privjobs_fs_50249;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.cw_privjobs_fs_uni;var sum2=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.cw_privjobs_fs_2049;var label="Jobs with Small Businesses (20-49 Employees)";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.cw_privjobs_fs_uni;var sum2=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cw_privjobs_fs_2049;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.cw_privjobs_fs_uni;var sum2=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.cw_privjobs_fs_lt20;var label="Jobs with Small Businesses (<20 Employees)";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.cw_privjobs_fs_uni;var sum2=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cw_privjobs_fs_lt20;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var ind=indsO.cw_privjobs_fs_uni;var sum2=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%");html+="<td>"+val+"</td>";html+="</tr>";tbody.append(html);addToCitiLoadCount()})})})};var ids={normal:[9923056,9923067,9923073,9923057,9923065,9923050]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popSmallBusinessStartUpJobsED=function(table,sectionCont){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var tbody=$("<tbody />");table.append(tbody);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var periods=inds[0].getPeriods();var aggs=that.o.tracts10;if(isState){aggs=[that.o.place]}var cube1=new PCube(inds,aggs,periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(inds,[that.o.state],periods);cube2.loadValues(function(statevalues){this.values=statevalues;var cubeNation=new PCube(inds,that.o.nationStates,periods);cubeNation.loadValues(function(values){this.values=values;var html="";html+="<tr class='sub-header'>";html+='<td>"Start-up" Jobs</td>';var len=2;for(var i=0;i<len;i++){html+="<td>#</td>";html+="<td>%</td>"}html+="<tr class='data-row'>";var ind=indsO.cw_privjobs_fa_lt1;var label="Jobs with Businesses < 1 Year Old";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";if(isState||aggs.length==1){var ind=indsO.pw_privjobs_fa_lt1;var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit)}else{var ind=indsO.cw_privjobs_fa_uni;var sum2=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%")}html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cw_privjobs_fa_lt1;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";if(isState){var ind=indsO.cw_privjobs_fa_uni;var sum2=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%")}else{var ind=indsO.pw_privjobs_fa_lt1;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit)}html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.cw_privjobs_fa_lt3;var label="Jobs with Businesses < 3 Year Old";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";if(isState||aggs.length==1){var ind=indsO.pw_privjobs_fa_lt3;var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit)}else{var ind=indsO.cw_privjobs_fa_uni;var sum2=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%")}html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cw_privjobs_fa_lt3;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";if(isState){var ind=indsO.cw_privjobs_fa_uni;var sum2=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%")}else{var ind=indsO.pw_privjobs_fa_lt3;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit)}html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.cw_privjobs_fa_lt5;var label="Jobs with Businesses < 5 Year Old";html+="<td class='label'><b>"+label+"</b></td>";var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";if(isState||aggs.length==1){var ind=indsO.pw_privjobs_fa_lt5;var sum1=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit)}else{var ind=indsO.cw_privjobs_fa_uni;var sum2=getSumOfPlacesIgnoreNulls(cube1,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%")}html+="<td>"+val+"</td>";var c=cube2;if(isState){c=cubeNation}var ind=indsO.cw_privjobs_fa_lt5;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";if(isState){var ind=indsO.cw_privjobs_fa_uni;var sum2=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(divideCheck(sum1,sum2,100),"_%")}else{var ind=indsO.pw_privjobs_fa_lt5;var sum1=getSumOfPlacesIgnoreNulls(c,ind,2011);var val=PWebUtil.formatNumber(sum1,ind.unit)}html+="<td>"+val+"</td>";html+="</tr>";tbody.append(html);addToCitiLoadCount()})})})};var ids={normal:[9923053,9923080,9923059,9923081,9923055,9923074,9923061]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popSmallBusinessDevelopmentResourcesED=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");sectionCont.attr("id","summary-small-business-development-resources-ed");this.container.append(sectionCont);var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var table=$("<table />");table.addClass("citi-summary-table");table.append(html);sectionCont.append(table);var tbody=$("<tbody />");tbody.attr("id","small-business-lending");var html="<tr>";html+="<th>SMALL BUSINESS DEVELOPMENT RESOURCES</th>";html+="<th colspan='1'>"+this.typeLabel+"<br />2014</th>";var compLabel="State";if(isState){compLabel="Nation"}html+="<th colspan='1'>"+compLabel+"<br />2014</th>";html+="</tr>";tbody.append(html);table.append(tbody);var that=this;var html="";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";var len=2;for(var i=0;i<len;i++){html+="<td>#</td>"}html+="</tr>";var sets=[];var s=new POverlaySet(142300);s.label="SBA Offices and Branch Locations";s.type="old";s.pinmax=0;s.nationcount=117;sets.push(s);var s=new POverlaySet(138250);s.label="SBA Small Business Development Centers";s.type="old";s.pinmax=0;s.nationcount=774;sets.push(s);var s=new POverlaySet(142200);s.label="Business Incubators";s.type="old";s.pinmax=0;s.nationcount=531;sets.push(s);var s=new POverlaySet(141850);s.label="SBA Women's Business Centers";s.type="old";s.pinmax=0;s.nationcount=62;sets.push(s);var s=new POverlaySet(142700);s.label="Minority Business Development Agency";s.type="old";s.pinmax=0;s.nationcount=44;sets.push(s);var place=that.o.place;var gettingStateData=false;var counts=[];var index=0;var getMarkers=function(index,gettingStateData){if(!isState&&gettingStateData&&place.id!=that.o.state.id){index=0;place=that.o.state}var s=sets[index];place.getMarkersWithin(s,function(markers){var c=null;if(markers[0]instanceof PMarker){c=markers.length}else{c=markers}if(gettingStateData){s.statecount=c}else{s.count=c}var f=function(){var html="";for(var i=0;i<sets.length;i++){var s=sets[i];html+="<tr class='data-row'>";html+="<td>"+s.label+"</td>";html+="<td>"+PWebUtil.formatNumber(s.count)+"</td>";if(!isState){html+="<td>"+PWebUtil.formatNumber(s.statecount)+"</td>"}else{html+="<td>"+PWebUtil.formatNumber(s.nationcount)+"</td>"}html+="</tr>"}var note="<div class='table-note'>Notes: Data on SBA offices and branch locations,Small Business Development Centers and Women's Business Centers come from the Small Business Association and is available as of 2014. Business Incubators data comes from the National Business Incubation Association and is also available as of 2014.  Minority Business Development Agency data comes from the Minority Business Development Agency Business Center of the U.S. Department of Commerce and is available as of 2014.</div>";sectionCont.append(note);tbody.append(html);addToCitiLoadCount()};if(!isState&&!gettingStateData&&index==sets.length-1){gettingStateData=true}else if(index==sets.length-1){f();return}index++;getMarkers(index,gettingStateData)})};getMarkers(0)};CitiSummaryTables.prototype.popBankingED=function(){var sectionCont=$("<div />");sectionCont.addClass("summary-section");sectionCont.attr("id","summary-banking-ed");sectionCont.append('<div style="page-break-before: always;"></div>');this.container.append(sectionCont);var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var table=$("<table />");table.addClass("citi-summary-table");table.attr("id","summary-education");var html="<thead><tr>";html+="<th>BANKING INSTITUTIONS</th>";html+="<th colspan='1'>"+this.typeLabel+"</th>";var compLabel="State";if(isState){compLabel="Nation"}html+="<th colspan='1'>"+compLabel+"</th>";html+="</tr></thead>";table.append(html);sectionCont.append(table);var that=this;var callback=function(indsObj){var inds=indsObj.normalArr;var indsO=indsObj.normalObj;var ninds=indsObj.nationalArr;var periods=[2e3,2011];var place=that.o.place;var aggs00=[];var aggs10=[];if(place.getType()==PPlaceType.STATE){aggs00=[place]}else{aggs00=that.o.tracts00}var aggs10=[place];var loadTable=function(cubes){var year14=2014;var year12=2012;var year11=2011;var year09=2009;var cubeDistrict=new PCube(inds,aggs00,[year11]);cubeDistrict.loadValues(function(values){this.values=values;var state=that.o.state;var cubeState=new PCube(inds,[state],[year09,year11,year12,year14]);cubeState.loadValues(function(values){this.values=values;var cubeBanks=new PCube(inds,[place],[year12,year14]);cubeBanks.loadValues(function(values){this.values=values;var cubeNationStates=new PCube(inds,that.o.nationStates,[year11]);cubeNationStates.loadValues(function(values){this.values=values;var cubeNation=new PCube(inds,[that.o.nation],[year11,year14]);cubeNation.loadValues(function(values){this.values=values;var set=new POverlaySet(128950);set.type="old";set.pinmax=0;place.getMarkersWithin(set,function(creditmarkers){var nation=that.o.nation;var contPlace=state;if(isState){contPlace=nation}contPlace.getMarkersWithin(set,function(creditmarkers_cont){var set=new POverlaySet(142350);set.type="old";set.pinmax=0;place.getMarkersWithin(set,function(micromarkers){if(micromarkers[0]instanceof PMarker){var microcount=micromarkers.length}else{var microcount=micromarkers[0]}contPlace.getMarkersWithin(set,function(micromarkers_cont){if(micromarkers_cont[0]instanceof PMarker){var microcontcount=micromarkers_cont.length}else{var microcontcount=micromarkers_cont[0]}var set=new POverlaySet(123200);set.type="old";set.pinmax=0;place.getMarkersWithin(set,function(cdfimarkers){if(cdfimarkers[0]instanceof PMarker){var cdficount=cdfimarkers.length}else{var cdficount=cdfimarkers[0]}contPlace.getMarkersWithin(set,function(cdfimarkers_cont){if(micromarkers_cont[0]instanceof PMarker){var cdficount_cont=cdfimarkers_cont.length}else{var cdficount_cont=cdfimarkers_cont[0]}var html="<tbody>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>#</td>";html+="<td>#</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.bbct;var label="Bank Branches";html+="<td class='label'>"+label+"</td>";var sum1=getSumOfPlacesIgnoreNulls(cubeBanks,ind,year14);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";var c=cubeState;if(isState){c=cubeNation}var ind=indsO.bbct;var sum1=getSumOfPlacesIgnoreNulls(c,ind,year14);var val=PWebUtil.formatNumber(sum1,ind.unit);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var label="Credit Unions";html+="<td class='label'>"+label+"</td>";var val=PWebUtil.formatNumber(creditmarkers[0]);html+="<td>"+val+"</td>";var val=PWebUtil.formatNumber(creditmarkers_cont[0]);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var label="Community Development Financial Institutions";html+="<td class='label'>"+label+"</td>";var val=PWebUtil.formatNumber(cdficount);html+="<td>"+val+"</td>";var val=PWebUtil.formatNumber(cdficount_cont);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='data-row'>";var label="Microlenders";html+="<td class='label'>"+label+"</td>";var val=PWebUtil.formatNumber(microcount);html+="<td>"+val+"</td>";var num=microcontcount;var val=PWebUtil.formatNumber(num);html+="<td>"+val+"</td>";html+="</tr>";html+="<tr class='new-section-header'>";html+="<td></td>";html+="<td colspan='1'>"+that.typeLabel+"<br />2011</td>";html+="<td colspan='1'>Nation<br />2011</td>";html+="</tr>";html+="<tr class='sub-header'>";html+="<td class='blank'></td>";html+="<td>#</td>";html+="<td>#</td>";html+="</tr>";html+="<tr class='data-row'>";var ind=indsO.totcdecount;var label="Community Development Entities";html+="<td class='label'>"+label+"</td>";if(isState){cubeDistrict=cubeState}var val=PWebUtil.formatNumber(getSumOfPlacesIgnoreNulls(cubeDistrict,ind,year11));html+="<td>"+val+"</td>";var ind=indsO.totcdecount;var val=PWebUtil.formatNumber(getSumOfPlacesIgnoreNulls(cubeNationStates,ind,year11));html+="<td>"+val+"</td>";html+="</tr>";var aggs=that.o.tracts00;var tractslist="";for(var i=0;i<aggs.length;i++){tractslist+=aggs[i].getLabel()+", "}html+="</tbody>";table.append(html);var note="<div class='table-note'>Notes: Small Business Administration (SBA) loan data is from usaspending.gov and is available as of 2014.  Small Business Lending data comes from the Federal Financial Institutions Examination Council (FFIEC)'s CRA program and is from 2012.  It is aggregated using the following counties <a onclick='seeCitiBoundariesList(this)'>(see list)</a> <span style='display:none'>"+that.countieslist+"</span>. Data on credit unions is from the National Credit Union Adminstration (NCUA) and was last updated in 2013.  CDFI location data is provided through the generosity of the Opportunity Finance Network.  Microlender data comes from the SBA and is available as of 2014.  Community Development Entities data from the CDFI Fund and is available as of 2011";if(!isState){note+=" and is aggregated from the following Census tracts: <a onclick='seeCitiBoundariesList(this)'>(see list)</a> <span style='display:none'>"+that.tracts00list+"</span>.</div>"}else{note+="."}sectionCont.append(note);addToCitiLoadCount()})})})})})})})})})})})};loadTable()};var ids={normal:[9907200,9851007,9907206,9875155,9875156,9914666]};this.loadInds(ids,callback)};CitiSummaryTables.prototype.popSmallBusinessEndNotesED=function(c){var isState=false;if(this.o.place.getType()==PPlaceType.STATE){isState=true}var note="<div class='table-note'>Notes: Small Business establishments data comes from Census County Business Patterns is available as of 2013 and is aggregated from the following zip codes: <a onclick='seeCitiBoundariesList(this)'>(see list)</a> <span style='display:none'>"+this.zipslist+"</span>.  Small business startups data is available from Census Business Dynamics Statistics for 2012 and is provided for this CBSA: <a onclick='seeCitiBoundariesList(this)'>(see list)</a> <span style='display:none'>"+this.cbsaslist+'</span>. Please note that, because the data is only available at the metro area, Congressional Districts covering non-metro areas will not include comprehensive information.  Small Business Jobs and "Start-up" Jobs comes from the Census\' Local Employment Household Dynamics dataset';if(!isState){note+=" is aggregated from tracts <a onclick='seeCitiBoundariesList(this)'>(see list)</a> <span style='display:none'>"+this.tracts10list+"</span>."}else{note+="."}note+="  Bankruptcy data comes from the U.S. Courts and is aggregated from the following counties <a onclick='seeCitiBoundariesList(this)'>(see list)</a> <span style='display:none'>"+this.countieslist+"</span>.</div>";$(c).append(note)};(function(){function clamp(element,options){options=options||{};var self=this,win=window,opt={clamp:options.clamp||2,useNativeClamp:typeof options.useNativeClamp!="undefined"?options.useNativeClamp:true,splitOnChars:options.splitOnChars||[".","-","–","—"," "],animate:options.animate||false,truncationChar:options.truncationChar||"…",truncationHTML:options.truncationHTML},sty=element.style,originalText=element.innerHTML,supportsNativeClamp=typeof element.style.webkitLineClamp!="undefined",clampValue=opt.clamp,isCSSValue=clampValue.indexOf&&(clampValue.indexOf("px")>-1||clampValue.indexOf("em")>-1),truncationHTMLContainer;if(opt.truncationHTML){truncationHTMLContainer=document.createElement("span");truncationHTMLContainer.innerHTML=opt.truncationHTML}function computeStyle(elem,prop){if(!win.getComputedStyle){win.getComputedStyle=function(el,pseudo){this.el=el;this.getPropertyValue=function(prop){var re=/(\-([a-z]){1})/g;if(prop=="float")prop="styleFloat";if(re.test(prop)){prop=prop.replace(re,function(){return arguments[2].toUpperCase()})}return el.currentStyle&&el.currentStyle[prop]?el.currentStyle[prop]:null};return this}}return win.getComputedStyle(elem,null).getPropertyValue(prop)}function getMaxLines(height){var availHeight=height||element.clientHeight,lineHeight=getLineHeight(element);return Math.max(Math.floor(availHeight/lineHeight),0)}function getMaxHeight(clmp){var lineHeight=getLineHeight(element);return lineHeight*clmp}function getLineHeight(elem){var lh=computeStyle(elem,"line-height");if(lh=="normal"){lh=parseInt(computeStyle(elem,"font-size"))*1.2}return parseInt(lh)}var splitOnChars=opt.splitOnChars.slice(0),splitChar=splitOnChars[0],chunks,lastChunk;function getLastChild(elem){if(elem.lastChild.children&&elem.lastChild.children.length>0){return getLastChild(Array.prototype.slice.call(elem.children).pop())}else if(!elem.lastChild||!elem.lastChild.nodeValue||elem.lastChild.nodeValue==""||elem.lastChild.nodeValue==opt.truncationChar){elem.lastChild.parentNode.removeChild(elem.lastChild);return getLastChild(element)}else{return elem.lastChild}}function truncate(target,maxHeight){if(!maxHeight){return}function reset(){splitOnChars=opt.splitOnChars.slice(0);splitChar=splitOnChars[0];chunks=null;lastChunk=null}var nodeValue=target.nodeValue.replace(opt.truncationChar,"");if(!chunks){if(splitOnChars.length>0){splitChar=splitOnChars.shift()}else{splitChar=""}chunks=nodeValue.split(splitChar)}if(chunks.length>1){lastChunk=chunks.pop();applyEllipsis(target,chunks.join(splitChar))}else{chunks=null}if(truncationHTMLContainer){target.nodeValue=target.nodeValue.replace(opt.truncationChar,"");element.innerHTML=target.nodeValue+" "+truncationHTMLContainer.innerHTML+opt.truncationChar}if(chunks){if(element.clientHeight<=maxHeight){if(splitOnChars.length>=0&&splitChar!=""){applyEllipsis(target,chunks.join(splitChar)+splitChar+lastChunk);chunks=null}else{return element.innerHTML}}}else{if(splitChar==""){applyEllipsis(target,"");target=getLastChild(element);reset()}}if(opt.animate){setTimeout(function(){truncate(target,maxHeight)},opt.animate===true?10:opt.animate)}else{return truncate(target,maxHeight)}}function applyEllipsis(elem,str){elem.nodeValue=str+opt.truncationChar}if(clampValue=="auto"){clampValue=getMaxLines()}else if(isCSSValue){clampValue=getMaxLines(parseInt(clampValue))}var clampedText;if(supportsNativeClamp&&opt.useNativeClamp){sty.overflow="hidden";sty.textOverflow="ellipsis";sty.webkitBoxOrient="vertical";sty.display="-webkit-box";sty.webkitLineClamp=clampValue;if(isCSSValue){sty.height=opt.clamp+"px"}}else{var height=getMaxHeight(clampValue);if(height<=element.clientHeight){clampedText=truncate(getLastChild(element),height)}}return{original:originalText,clamped:clampedText}}window.$clamp=clamp})();ColorRamps=function(data){this.data=data;this.colorRamps={};this.legendRamps=[];for(rampId in this.data.ramps){var curRamp=this.data.ramps[rampId];if(curRamp.isNegative!=true){var rampColors=this._parseColors(curRamp.colors);var negRampColors=null;if(curRamp.negativeId!=null){negRampColors=this._parseColors(this.data.ramps[curRamp.negativeId].colors)}this.colorRamps[rampId]=new PColorRamp(curRamp.description,rampColors,negRampColors)}}for(var i=0;i<this.data.legend.length;i++){this.legendRamps.push(this.colorRamps[this.data.legend[i]])}};ColorRamps.prototype.getRampById=function(id){if(this.colorRamps[id]!=null){return this.colorRamps[id]}else{return null}};ColorRamps.prototype.getRampByName=function(name){if(name=="default"){name="purple"}if(this.data.nameMap[name]!=null&&this.colorRamps[this.data.nameMap[name]]!=null){return this.colorRamps[this.data.nameMap[name]]}else{return null}};ColorRamps.prototype.getLegendRamps=function(){return this.legendRamps};ColorRamps.prototype._parseColors=function(colors){var pColors=[];for(var i=0;i<colors.length;i++){pColors.push(new PColor(colors[i]))}return pColors};ColorRamps.prototype.getRampIdByName=function(n){return this.data.nameMap[n]};CSVExport=function(options){var self=this;if(options!=null&&typeof options=="object"){this.options=options}else{this.options={}}if(this.options.noAlert!==true){this.options.noAlert=false}this.isMaps=false;this.isTables=false;this.isAnalytics=false;switch(PEnvironment.pageName){case"maps":this.isMaps=true;break;case"tables":this.isTables=true;break;case"analytics":this.isAnalytics=true;break}this.allowedIndicators=[9937371,9937361,9937884,9937875];this.allowedPointsets=[162200,162350,162250,162300,162150,161800,160150,160250,101450,101500,96400,146150,150100,89600,89550];this.availableIndicator=null;this.proprietaryIndicator=null;this.availableAnalyticsIndicators=[];this.numAvailableAnalyticsIndicators=0;this.proprietaryAnalyticsIndicators=[];this.numProprietaryAnalyticsIndicators=0;this.analyticsIndicatorsIncludesBlocks=false;this.availableOverlaySets=[];this.numAvailableOverlaySets=0;this.proprietaryOverlaySets=[];this.numProprietaryOverlaySets=0;this.polygonSets=[];this.numPolygonSets=0;var indicators=[];var overlaySets=[];if(this.isMaps){var curIndicator=map.getIndicator();if(curIndicator!=null){indicators.push(curIndicator)}overlaySets=map.getOverlaySets(true,true)}else if(this.isTables){if(global_indicators!=null&&global_indicators.length>0){indicators.push(global_indicators[0])}if(P.instances.table){overlaySets=P.instances.table.getOverlaySets(true,true)}}else if(this.isAnalytics){indicators=getAnalyticsIndicators();overlaySets=map.getOverlaySets(true,true)}if(indicators.length>0){if(this.isMaps||this.isTables){if(indicators[0].allowDL==true){this.availableIndicator=indicators[0]}else{this.proprietaryIndicator=indicators[0]}}else if(this.isAnalytics){for(var i=0;i<indicators.length;i++){var curIndicator=indicators[i];if(curIndicator.allowDL==true){this.availableAnalyticsIndicators.push(curIndicator);this.numAvailableAnalyticsIndicators++}else{this.proprietaryAnalyticsIndicators.push(curIndicator);this.numProprietaryAnalyticsIndicators++}var boundaryType=curIndicator.legend.getBoundaryType();if(boundaryType!=null&&boundaryType==PPlaceType.BLOCK){this.analyticsIndicatorsIncludesBlocks=true}}}}for(var i=0;i<overlaySets.length;i++){var curOverlaySet=overlaySets[i];if(curOverlaySet.allowDL==true){if(curOverlaySet.isPoly==true){this.polygonSets.push(curOverlaySet);this.numPolygonSets++}else{this.availableOverlaySets.push(curOverlaySet);this.numAvailableOverlaySets++}}else{this.proprietaryOverlaySets.push(curOverlaySet);this.numProprietaryOverlaySets++}}this.allOverlaySets=this.availableOverlaySets.concat(this.proprietaryOverlaySets,this.polygonSets);this.numAllOverlaySets=this.allOverlaySets.length;this.availablePlaces=[];this.availableCustomRegions=[];if(this.isMaps&&mapstates.currentplace!=null&&mapstates.currentplace.getID()!=null){this.availablePlaces.push(mapstates.currentplace)}else if(this.isTables&&global_places!=null&&global_places.length>0){for(var i=0;i<global_places.length;i++){var curPlace=global_places[i];var curPlaceType=curPlace.getType();if(curPlaceType!=PPlaceType.CUSTOM&&curPlaceType!=PPlaceType.POLYGON){this.availablePlaces.push(curPlace)}}}var allCustomRegions=polycreator.getCustomPlaces();for(regionId in allCustomRegions){this.availableCustomRegions.push(allCustomRegions[regionId].place)}this.userCustomRegions=[];polycreator.loadByUser(function(regions){self.userCustomRegions=regions.reverse()});this.availablePlaceTypes={};if(this.isMaps||this.isTables){this.getAllPlaceTypeDropdownOptions()}this.previewImages={};for(var i=0;i<this.availablePlaces.length;i++){this.getPlacePreviewImage(this.availablePlaces[i])}for(var i=0;i<this.availableCustomRegions.length;i++){this.getPlacePreviewImage(this.availableCustomRegions[i])}this.lastPlaceTypes={};this.$content=$("<div />",{id:"csv-preview-content",class:"csv-preview-content"});this.$content.append(this.getTabs());this.$stepContainer=this.getStepContainer();this.$content.append(this.$stepContainer);this.$content.append(this.getFooter());this.currentTab=0;this.$icons={csv:$("<div />",{class:"icon-csv"}),info:$("<div />",{class:"icon-info"}),layer:$("<div />",{class:"icon-layer"}),layerTitle:$("<div />",{class:"icon-layer icon-layer-title"}),point:$("<div />",{class:"icon-point"}),pointTitle:$("<div />",{class:"icon-point icon-point-title"}),layerPoint:$("<div />",{class:"icon-layer-point"}),layerPointTitle:$("<div />",{class:"icon-layer-point icon-layer-point-title"}),places:$("<div />",{class:"icon-places"}),placesTitle:$("<div />",{class:"icon-places icon-places-title"}),predefined:$("<div />",{class:"icon-predefined"}),predefinedTitle:$("<div />",{class:"icon-predefined icon-predefined-title"}),region:$("<div />",{class:"icon-region"}),regionTitle:$("<div />",{class:"icon-region icon-region-title"})};this.cssIcons=["/images/csvexport/layer-button-gray.svg","/images/csvexport/layer-button-orange.svg","/images/csvexport/point-button-gray.svg","/images/csvexport/point-button-orange.svg","/images/csvexport/layer-point-button-gray.svg","/images/csvexport/layer-point-button-orange.svg","/images/csvexport/places-button-gray.svg","/images/csvexport/places-button-orange.svg","/images/csvexport/predefined-location-button-gray.svg","/images/csvexport/predefined-location-button-orange.svg","/images/csvexport/custom-region-button-gray.svg","/images/csvexport/custom-region-button-orange.svg"];this.$content.append(this.getIconPreload());this.$proprietaryData=$("<div />",{class:"unavailable-data"});this.$proprietaryData.text("Proprietary Data");this.$proprietaryData.append(this.$icons.info.clone());this.$polygonData=$("<div />",{class:"unavailable-data"});this.$polygonData.text("Polygon Data");this.$polygonData.append(this.$icons.info.clone());this.$blockData=$("<div />",{class:"unavailable-data"});this.$blockData.text("Blocks and Points");this.$blockData.append(this.$icons.info.clone());this.$predefinedSection=null;this.$regionSection=null;this.search=null;this.listLink=null;this.optionsChanged=false;this.selectedIndicator=null;this.selectedOverlaySet=null;this.selectedPlaces=false;this.selectedPlace=null;this.selectedCustomRegion=null;this.selectedPlaceType=null;this.selectedState=null};CSVExport.prototype.setIndicator=function(indicator){if(indicator!=this.selectedIndicator){this.optionsChanged=true}this.selectedIndicator=indicator;this.selectedOverlaySet=null};CSVExport.prototype.setOverlaySet=function(overlaySet){if(overlaySet!=this.selectedOverlaySet){this.optionsChanged=true}this.selectedOverlaySet=overlaySet;this.selectedIndicator=null;this.selectedPlaceType=null;this.selectedPlaces=false};CSVExport.prototype.setIndicatorOverlaySet=function(indicator,overlaySet){if(indicator!=this.selectedIndicator||overlaySet!=this.selectedOverlaySet){this.optionsChanged=true}this.selectedIndicator=indicator;this.selectedOverlaySet=overlaySet};CSVExport.prototype.setPlaces=function(){if(this.selectedPlaces!=true){this.optionsChanged=true}this.selectedPlaces=true;this.selectedOverlaySet=null};CSVExport.prototype.setPlace=function(place){if(place!=this.selectedPlace){this.optionsChanged=true}this.selectedPlace=place;this.selectedCustomRegion=null};CSVExport.prototype.setCustomRegion=function(customRegion){if(customRegion!=this.selectedCustomRegion){this.optionsChanged=true}this.selectedCustomRegion=customRegion;this.selectedPlace=null};CSVExport.prototype.setPlaceType=function(placeType){if(placeType!=this.selectedPlaceType){this.optionsChanged=true}this.selectedPlaceType=placeType};CSVExport.prototype.setState=function(state){if(state!=this.selectedState){this.optionsChanged=true}this.selectedState=state};CSVExport.prototype.start=function(){var self=this;if(!isSubscriber()||isTrial()){if(!this.options.noAlert){subscribeAlert(null,"subscriber-data-download")}return}if(productProperty.getValue("disable_toolbar_download")){if(productProperty.getValue("disable_toolbar_download_teaser")){
alerter.popup("Available to PolicyMap subscribers only. <a href='https://www.policymap.com/about/contact-us/' target='_blank'>Contact PolicyMap</a> or your PolicyMap liaison about subscribing to PolicyMap to access this feature.","OK")}return}if(this.isMaps||this.isTables){if(this.availableIndicator==null&&this.proprietaryIndicator==null&&this.numAllOverlaySets==0){if(!this.options.noAlert){alerter.popup("At least one data layer or point dataset must be added to download data.")}return}else if(this.availableIndicator==null&&this.numAvailableOverlaySets==0&&(this.proprietaryIndicator!=null||this.numProprietaryOverlaySets>0||this.numPolygonSets>0)){if(!this.options.noAlert){var alertText="Certain data layers and point datasets are not downloadable due to licensing restrictions and/or being polygons. You will need to remove or replace the following data:<br /><ul>";if(this.proprietaryIndicator!=null){alertText+="<li>"+this.proprietaryIndicator.getFullDisplayName()+"</li>"}for(var i=0;i<this.numProprietaryOverlaySets;i++){alertText+="<li>"+this.proprietaryOverlaySets[i].getLabel()+"</li>"}for(var i=0;i<this.numPolygonSets;i++){alertText+="<li>"+this.polygonSets[i].getLabel()+"</li>"}alertText+="</ul>";alerter.popup(alertText)}return}}else if(this.isAnalytics){if(this.numAvailableAnalyticsIndicators==0&&this.numProprietaryAnalyticsIndicators==0){if(!this.options.noAlert){alerter.popup("At least one data layer must be added to download data.")}return}else if(this.numProprietaryAnalyticsIndicators>0||this.numAvailableAnalyticsIndicators==0&&this.numAvailableOverlaySets==0&&(this.numProprietaryOverlaySets>0||this.numPolygonSets>0)){if(!this.options.noAlert){var alertText="Certain data layers and point datasets are not downloadable due to licensing restrictions and/or being polygons. You will need to remove or replace the following data:<br /><ul>";for(var i=0;i<this.numProprietaryAnalyticsIndicators;i++){alertText+="<li>"+this.proprietaryAnalyticsIndicators[i].getFullDisplayName()+"</li>"}for(var i=0;i<this.numProprietaryOverlaySets;i++){alertText+="<li>"+this.proprietaryOverlaySets[i].getLabel()+"</li>"}for(var i=0;i<this.numPolygonSets;i++){alertText+="<li>"+this.polygonSets[i].getLabel()+"</li>"}alertText+="</ul>";alerter.popup(alertText)}return}if(this.numAvailableAnalyticsIndicators>1){var notDownloadable=[];for(var i=0;i<this.numAvailableAnalyticsIndicators;i++){var curIndicator=this.availableAnalyticsIndicators[i];var boundaryType=curIndicator.legend.getBoundaryType();if(boundaryType!=null){var defId=boundaryMatrix.getDefinitionIdForTypeId(boundaryType.getId());var allow=boundaryMatrix.allowDownloadWithOtherDataForDefinitionId(defId);if(!allow){notDownloadable.push(curIndicator.getFullDisplayName())}}}if(notDownloadable.length>0){var alertText="The following layer(s) can only be downloaded separately and by themselves:<br /><ul>";for(var i=0;i<notDownloadable.length;i++){alertText+="<li>"+notDownloadable[i]+"</li>"}alertText+="</ul>";alerter.popup(alertText);return}}}alerter.close();this.cancelCallback=function(){$("#shade-box, #export-region-menu, #export-location-bar").remove();if(this.availableIndicator!=null&&this.options.originalPeriod!=null){this.availableIndicator.setPeriod(this.options.originalPeriod)}$(".modal-dialog").removeClass("csv-preview-modal-width-override")};var modalProperties={body:this.$content,header:"Download Data <span class='icon-csv'></span>",footer:false,size:"modal-lg",closeCallback:function(){self.cancelCallback()}};modal.popup(modalProperties);this.setSelectedOptions();this.toStep(this.getStartStep());$(".modal-dialog").addClass("csv-preview-modal-width-override")};CSVExport.prototype.setSelectedOptions=function(){var todoIndicator=null;var todoPeriod=null;if(this.options.selectedIndicator!=null&&this.availableIndicator!=null&&this.availableIndicator.getID()==this.options.selectedIndicator){todoIndicator=this.availableIndicator;if(this.options.selectedIndicatorPeriod!=null){var period=String(this.options.selectedIndicatorPeriod);if($.inArray(period,todoIndicator.periods)>-1){todoPeriod=period}}}var todoOverlaySet=null;if(this.options.selectedOverlaySet!=null&&this.numAvailableOverlaySets>0){for(var i=0;i<this.numAvailableOverlaySets;i++){var curOverlaySet=this.availableOverlaySets[i];if(curOverlaySet.id==this.options.selectedOverlaySet){todoOverlaySet=curOverlaySet;break}}}if(todoIndicator!=null&&todoOverlaySet!=null){if(todoPeriod!=null){this.options.originalPeriod=todoIndicator.getPeriod();todoIndicator.setPeriod(todoPeriod)}this.setIndicatorOverlaySet(todoIndicator,todoOverlaySet)}else if(todoIndicator!=null){if(todoPeriod!=null){this.options.originalPeriod=todoIndicator.getPeriod();todoIndicator.setPeriod(todoPeriod)}this.setIndicator(todoIndicator)}else if(todoOverlaySet!=null){this.setOverlaySet(todoOverlaySet)}if(this.options.selectedPlace!=null&&this.availablePlaces.length>0){for(var i=0;i<this.availablePlaces.length;i++){var curPlace=this.availablePlaces[i];if(curPlace.getID()==this.options.selectedPlace){this.setPlace(curPlace);break}}}else if(this.options.selectedCustomRegion!=null&&this.availableCustomRegions.length>0){for(var i=0;i<this.availableCustomRegions.length;i++){var curRegion=this.availableCustomRegions[i];if(curRegion.getID()==this.options.selectedCustomRegion){this.setCustomRegion(curRegion);break}}}if(this.options.selectedPlaceType!=null&&(this.selectedPlace!=null||this.selectedCustomRegion!=null)){var place=this.selectedPlace||this.selectedCustomRegion;var cacheId=this.getPlaceCacheId(place);if(this.availablePlaceTypes[cacheId]!=null){for(var i=0;i<this.availablePlaceTypes[cacheId].length;i++){var curType=this.availablePlaceTypes[cacheId][i];if(curType.getId()==this.options.selectedPlaceType){this.setPlaceType(curType);this.lastPlaceTypes[cacheId]=curType;break}}}}};CSVExport.prototype.getStartStep=function(){var step=1;if(this.isMaps||this.isTables){if(this.selectedIndicator!=null||this.selectedOverlaySet!=null){step=2;if((this.selectedPlace!=null||this.selectedCustomRegion!=null)&&(this.selectedIndicator==null||this.selectedIndicator!=null&&this.selectedPlaceType!=null)){step=3}}}return step};CSVExport.prototype.nextStep=function($button){if($button.hasClass("modal-btn-next-btn--disabled")){return}if(this.currentTab==3){this.startExport()}else if(this.currentTab==1||this.currentTab==2){this.toStep(this.currentTab+1)}};CSVExport.prototype.previousStep=function(){if(this.currentTab>1){this.toStep(this.currentTab-1)}};CSVExport.prototype.toStep=function(step){step=parseInt(step);if(this.currentTab==step){return}if(!this.checkNextStepPrerequisites(step)){return}$(".csv-export-individual-step").hide();if(this.isMaps||this.isTables){if(step==1){this.toStepOne()}else if(step==2){this.toStepTwo()}else if(step==3){this.toStepThree()}}else if(this.isAnalytics){if(step==1){this.toStepOneAnalytics()}else if(step==2){this.toStepTwoAnalytics()}else if(step==3){this.toStepThreeAnalytics()}}this.setActiveTab(step);this.setFooter(step)};CSVExport.prototype.checkNextStepPrerequisites=function(nextStep){if(nextStep==1){return true}var stepTwo=false;var stepThree=false;if(this.isMaps||this.isTables){stepTwo=this.selectedIndicator!=null||this.selectedOverlaySet!=null;stepThree=(this.selectedPlace!=null||this.selectedCustomRegion!=null)&&(this.selectedIndicator==null||this.selectedIndicator!=null&&this.selectedPlaceType!=null)}else if(this.isAnalytics){stepTwo=this.selectedPlaces===true||this.selectedOverlaySet!=null;stepThree=this.selectedState!=null}if(nextStep==2){return stepTwo}else if(nextStep==3){return stepTwo&&stepThree}else{return false}};CSVExport.prototype.toStepOne=function(){var self=this;var stepOneDiv=$("#csv-export-step-one-container");if(stepOneDiv.length>0){$("#csv-export-step-one-container").show();return}$stepOneDiv=$("<div />",{id:"csv-export-step-one-container",class:"csv-export-individual-step"});var numItems=this.numAvailableOverlaySets+(this.availableIndicator!=null?1:0);$stepOneDiv.append(this.getInstructionsAndNext(1,numItems));var $selectionContainer=$("<div />",{class:"selection-container"});var $selectionHeader=$("<div />",{class:"section-header"});var $layerHeader=$("<div />",{class:"section-header-section"});$layerHeader.append(this.$icons.layerTitle.clone(),"Layer");var $pointsHeader=$("<div />",{class:"section-header-section"});$pointsHeader.append(this.$icons.pointTitle.clone(),"Points");var $layerPointsHeader=$("<div />",{class:"section-header-section"});$layerPointsHeader.append(this.$icons.layerPointTitle.clone(),"Points with Layer Data ",this.$icons.info.clone());$selectionHeader.append($layerHeader,$pointsHeader,$layerPointsHeader);$selectionContainer.append($selectionHeader);$layerSection=$("<div />",{class:"section-content"});$pointsSection=$("<div />",{class:"section-content"});$layerPointsSection=$("<div />",{class:"section-content"});$selectionContainer.append($layerSection,$pointsSection,$layerPointsSection);$stepOneDiv.append($selectionContainer);this.$stepContainer.append($stepOneDiv);var curIndicator=this.availableIndicator||this.proprietaryIndicator;if(curIndicator!=null){var processedName=this.getProcessedIndicatorName(curIndicator);var $indButton=this.getStepOneButton("button-layer-0","layer-"+curIndicator.getID(),processedName,"img-layer-icon",processedName);$layerSection.append($indButton);if(this.availableIndicator!=null){$indButton.click(function(){self.setIndicator(self.availableIndicator)})}else{$indButton.addClass("select-button-disabled");var $proprietaryData=this.$proprietaryData.clone();$proprietaryData.prop("title","This layer is not downloadable due to licensing restrictions.");$proprietaryData.tooltip();$layerSection.append($proprietaryData)}}else{var $placeholder=$("<div />",{class:"section-placeholder"});if(this.isTables){$placeholder.text("Add layer data to your table.")}else{$placeholder.text("Add layer data to your map.")}$layerSection.append($placeholder)}if(this.numAllOverlaySets>0){for(var i=0;i<this.numAllOverlaySets;i++){(function(curSet){var $setButton=self.getStepOneButton("button-points-"+i,"point-"+curSet.id,curSet.name,"img-point-icon",curSet.name+self.getPointFiltersTooltipText(curSet));for(groupName in curSet.filtergroups){$setButton.find(".select-button-filtered-text").html("Filtered");break}$pointsSection.append($setButton);if(i<self.numAvailableOverlaySets){$setButton.click(function(){self.setOverlaySet(curSet)})}else{$setButton.addClass("select-button-disabled");if(curSet.isPoly){var $polygonData=self.$polygonData.clone();$polygonData.prop("title","Polygon data is not currently available for download.");$polygonData.tooltip();$pointsSection.append($polygonData)}else{var $proprietaryData=self.$proprietaryData.clone();$proprietaryData.prop("title","This point dataset is not downloadable due to licensing restrictions.");$proprietaryData.tooltip();$pointsSection.append($proprietaryData)}}})(this.allOverlaySets[i])}}else{var $placeholder=$("<div />",{class:"section-placeholder"});if(this.isTables){$placeholder.text("Add Point data to your table.")}else{$placeholder.text("Add Point data to your map.")}$pointsSection.append($placeholder)}if(curIndicator!=null&&this.numAllOverlaySets>0){for(var i=0;i<this.numAllOverlaySets;i++){(function(curSet){var text=curIndicator.getLabel()+" data for "+curSet.name;var isAvailable=self.availableIndicator!=null&&i<self.numAvailableOverlaySets;var $layerSetButton=self.getStepOneButton("button-layer-points-"+i,"layer-point-"+curSet.id,text,"img-layer-point-icon",text+self.getPointFiltersTooltipText(curSet));for(groupName in curSet.filtergroups){$layerSetButton.find(".select-button-filtered-text").html("Filtered");break}$layerPointsSection.append($layerSetButton);if(self.availableIndicator!=null&&i<self.numAvailableOverlaySets){$layerSetButton.click(function(){self.setIndicatorOverlaySet(self.availableIndicator,curSet)})}else{$layerSetButton.addClass("select-button-disabled");if(curSet.isPoly){var $polygonData=self.$polygonData.clone();$polygonData.prop("title","Polygon data is not currently available for download.");$polygonData.tooltip();$layerPointsSection.append($polygonData)}else{var $proprietaryData=self.$proprietaryData.clone();$proprietaryData.prop("title","This data is not downloadable due to licensing restrictions.");$proprietaryData.tooltip();$layerPointsSection.append($proprietaryData)}}})(this.allOverlaySets[i])}}else{var $placeholder=$("<div />",{class:"section-placeholder"});if(this.isTables){$placeholder.text("Add both Layer and Point data to your table.")}else{$placeholder.text("Add both Layer and Point data to your map.")}$layerPointsSection.append($placeholder)}$(".select-button-step-one .select-button-button-text").each(function(){$clamp(this,{clamp:3})});$(".select-button-step-one").click(function(){var $self=$(this);if(!$self.hasClass("select-button-disabled")){$(".select-button-step-one").removeClass("select-button--selected");$self.addClass("select-button--selected");self.toggleNextButton(1,true)}});var tooltipText="";if(this.availableIndicator!=null&&this.numAvailableOverlaySets>0){tooltipText="Get the layer value for each point."}else if(this.availableIndicator!=null){if(this.isTables){tooltipText="Add point data to your table to get the layer value for each point."}else{tooltipText="Add point data to your map to get the layer value for each point."}}else if(this.numAvailableOverlaySets>0){if(this.isTables){tooltipText="Add layer data to your table to get the layer value for each point."}else{tooltipText="Add layer data to your map to get the layer value for each point."}}$layerPointsHeader.prop("title",tooltipText);$layerPointsHeader.tooltip();if(this.selectedIndicator!=null){$("#button-layer-0").click()}else if(this.selectedOverlaySet!=null){$(".select-button-step-one[data-value='point-"+this.selectedOverlaySet.id+"']").click()}else if(this.options.defaultOverlaySet!=null&&$(".select-button-step-one[data-value='point-"+this.options.defaultOverlaySet+"']").length>0){$(".select-button-step-one[data-value='point-"+this.options.defaultOverlaySet+"']").click()}else if(this.availableIndicator!=null){$("#button-layer-0").click()}else if(this.numAvailableOverlaySets>0){$(".select-button-step-one[data-value='point-"+this.availableOverlaySets[0].id+"']").click()}};CSVExport.prototype.toStepOneAnalytics=function(){var self=this;var stepOneDiv=$("#csv-export-step-one-container");if(stepOneDiv.length>0){$("#csv-export-step-one-container").show();return}$stepOneDiv=$("<div />",{id:"csv-export-step-one-container",class:"csv-export-individual-step"});var numItems=this.numAvailableOverlaySets+1;$stepOneDiv.append(this.getInstructionsAndNext(1,numItems));var $selectionContainer=$("<div />",{class:"selection-container"});var $selectionHeader=$("<div />",{class:"section-header"});var $halfHeader=$("<div />",{class:"section-header-section section-header-section--half"});var $placesHeader=$("<div />",{class:"section-header-section"});$placesHeader.append(this.$icons.placesTitle.clone(),"Layers ",this.$icons.info.clone());var $pointsHeader=$("<div />",{class:"section-header-section"});$pointsHeader.append(this.$icons.pointTitle.clone(),"Points ",this.$icons.info.clone());$selectionHeader.append($halfHeader,$placesHeader,$pointsHeader);$selectionContainer.append($selectionHeader);var $halfSection=$("<div />",{class:"section-content section-content--half"});var $placesSection=$("<div />",{class:"section-content"});var $pointsSection=$("<div />",{class:"section-content"});$selectionContainer.append($halfSection,$placesSection,$pointsSection);$stepOneDiv.append($selectionContainer);this.$stepContainer.append($stepOneDiv);var $placesButton=this.getStepOneButton("button-places-0","places","All purple areas where criteria are met.","img-places-icon","All purple areas where criteria are met.");$placesSection.click(function(){self.setPlaces()});$placesSection.append($placesButton);if(this.numAllOverlaySets>0){for(var i=0;i<this.numAllOverlaySets;i++){(function(curSet){var buttonName=curSet.name+" that sit within the purple areas where criteria are met.";var $setButton=self.getStepOneButton("button-points-"+i,"point-"+curSet.id,buttonName,"img-point-icon",buttonName+self.getPointFiltersTooltipText(curSet));for(groupName in curSet.filtergroups){$setButton.find(".select-button-filtered-text").html("Filtered");break}$pointsSection.append($setButton);if(i<self.numAvailableOverlaySets&&self.analyticsIndicatorsIncludesBlocks!=true){$setButton.click(function(){self.setOverlaySet(curSet)})}else{$setButton.addClass("select-button-disabled");if(self.analyticsIndicatorsIncludesBlocks==true){var $blockData=self.$blockData.clone();$blockData.prop("title","Points are not currently available for download at the block level.");$blockData.tooltip();$pointsSection.append($blockData)}else if(curSet.isPoly){var $polygonData=self.$polygonData.clone();$polygonData.prop("title","Polygon data is not currently available for download.");$polygonData.tooltip();$pointsSection.append($polygonData)}else{var $proprietaryData=self.$proprietaryData.clone();$proprietaryData.prop("title","This data is not downloadable due to licensing restrictions.");$proprietaryData.tooltip();$pointsSection.append($proprietaryData)}}})(this.allOverlaySets[i])}}else{var $placeholder=$("<div />",{class:"section-placeholder"});$placeholder.text("Add Point data to your map.");$pointsSection.append($placeholder)}$(".select-button-step-one .select-button-button-text").each(function(){$clamp(this,{clamp:3})});$(".select-button-step-one").click(function(){var $self=$(this);if(!$self.hasClass("select-button-disabled")){$(".select-button-step-one").removeClass("select-button--selected");$self.addClass("select-button--selected");self.toggleNextButton(1,true)}});$placesHeader.prop("title","Downloads a list of FIPS codes and layer data for all specified criteria.");$placesHeader.tooltip();$pointsHeader.prop("title","Downloads a list of the point locations for all specified layer and point data criteria.");$pointsHeader.tooltip();$placesButton.click()};CSVExport.prototype.toStepTwo=function(){var self=this;var dataDisplay="<span class='csv-export-selected-data-label'>";if(this.selectedIndicator!=null&&this.selectedOverlaySet!=null){dataDisplay+="<div class='icon-layer'></div>"+this.selectedIndicator.getLabel()+"</span> data for <div class='icon-point'></div><span class='csv-export-selected-data-label'>"+this.selectedOverlaySet.name+"</span>"}else if(this.selectedIndicator!=null){dataDisplay+="<div class='icon-layer'></div>"+this.selectedIndicator.getLabel()+"</span> data"}else if(this.selectedOverlaySet!=null){dataDisplay+="<div class='icon-point'></div>"+this.selectedOverlaySet.name+"</span> data"}var stepTwoDiv=$("#csv-export-step-two-container");if(stepTwoDiv.length>0){$("#csv-export-selected-data").html(dataDisplay);$(".select-button-step-two.select-button--selected").click();$("#csv-export-step-two-container").show();return}$stepTwoDiv=$("<div />",{id:"csv-export-step-two-container",class:"csv-export-individual-step"});var numItems=this.availableCustomRegions.length+this.availablePlaces.length;$stepTwoDiv.append(this.getInstructionsAndNext(2,numItems));var $selectionContainer=$("<div />",{class:"selection-container"});var $locationSelector=$("<div />",{class:"location-selector"});var $locationSelectorHeader=$("<div />",{class:"section-header"});var $predefinedHeader=$("<div />",{class:"section-header-section"});$predefinedHeader.append(this.$icons.predefinedTitle.clone(),"Pre-Defined Location");var $regionHeader=$("<div />",{class:"section-header-section"});$regionHeader.append(this.$icons.regionTitle.clone(),"Custom Region");$locationSelectorHeader.append($predefinedHeader,$regionHeader);$locationSelector.append($locationSelectorHeader);this.$predefinedSection=$("<div />",{id:"predefined-section-content",class:"section-content"});this.$regionSection=$("<div />",{id:"region-section-content",class:"section-content"});$locationSelector.append(this.$predefinedSection,this.$regionSection);var $locationPreview=$("<div />",{class:"location-preview"});var $locationPreviewIntro=$("<div />",{id:"step-two-preview-place-intro",class:"preview-intro"});$locationPreviewIntro.text("Previewing:");var $locationPreviewPlaceName=$("<div />",{id:"step-two-preview-place-name",class:"preview-place-name"});var $locationPreviewMapContainer=$("<div />",{id:"step-two-preview-place-map-container",class:"preview-place-map-container"});var $locationPreviewMapBoxShadow=$("<div />",{class:"preview-box-shadow"});$locationPreviewMapContainer.append($locationPreviewMapBoxShadow);$locationPreview.append($locationPreviewIntro,$locationPreviewPlaceName,$locationPreviewMapContainer);$selectionContainer.append($locationSelector,$locationPreview);$stepTwoDiv.append($selectionContainer);this.$stepContainer.append($stepTwoDiv);$("#csv-export-selected-data").html(dataDisplay);if(this.availablePlaces.length>0){for(var i=0;i<this.availablePlaces.length;i++){(function(curPlace){var placeName=curPlace.getLabel()+getState(curPlace)+" ("+boundaryMatrix.getDisplayNameForDefinitionId(curPlace.getDefinitionId())+")";var $placeButton=self.getStepTwoButton("button-place-"+i,"place-"+curPlace.getID(),placeName,"img-predefined-icon",placeName);self.$predefinedSection.append($placeButton);$placeButton.click(function(){self.setPlace(curPlace);self.setUpStepTwoButtonDropdown($(this));self.updateStepTwoPreview(curPlace)})})(this.availablePlaces[i])}}else{var $placeholder=$("<div />",{id:"predefined-placeholder",class:"section-placeholder"});$placeholder.text("Add a pre-defined location.");this.$predefinedSection.append($placeholder)}if(this.availableCustomRegions.length>0){for(var i=0;i<this.availableCustomRegions.length;i++){(function(curRegion){var $regionButton=self.getStepTwoButton("button-region-"+i,"region-"+curRegion.getID(),curRegion.getLabel(),"img-custom-region-icon",curRegion.getLabel());self.$regionSection.append($regionButton);$regionButton.click(function(){self.setCustomRegion(curRegion);self.setUpStepTwoButtonDropdown($(this));self.updateStepTwoPreview(curRegion)})})(this.availableCustomRegions[i])}}else{var $placeholder=$("<div />",{id:"region-placeholder",class:"section-placeholder"});$placeholder.text("Add a custom region.");this.$regionSection.append($placeholder)}$addPredefined=$("<div />",{id:"add-predefined-button",class:"add-change-button"});if(this.availablePlaces.length>0){$addPredefined.html("Change")}else{$addPredefined.html("Add<span class='glyphicon glyphicon-plus'>")}$addPredefined.click(function(){self.toggleLocationBar($(this))});this.$predefinedSection.append($addPredefined);$addRegion=$("<div />",{id:"add-region-button",class:"add-change-button"});if(this.availableCustomRegions.length>0){$addRegion.html("Change<span class='glyphicon glyphicon-triangle-bottom'>")}else{$addRegion.html("Add<span class='glyphicon glyphicon-plus'>")}$addRegion.click(function(){self.toggleCustomRegionMenu($(this))});this.$regionSection.append($addRegion);$(".select-button-step-two .select-button-button-text").each(function(){$clamp(this,{clamp:2})});$(".select-button-step-two").click(function(){$(".select-button-step-two").removeClass("select-button--selected");$(this).addClass("select-button--selected");self.toggleNextButton(2,true)});if(this.selectedPlace!=null){$(".select-button-step-two[data-value='place-"+this.selectedPlace.getID()+"']").click()}else if(this.selectedCustomRegion!=null){$(".select-button-step-two[data-value='region-"+this.selectedCustomRegion.getID()+"']").click()}else if(this.options.defaultPlace!=null&&$(".select-button-step-two[data-value='place-"+this.options.defaultPlace+"']").length>0){$(".select-button-step-two[data-value='place-"+this.options.defaultPlace+"']").click()}else if(this.options.defaultCustomRegion!=null&&$(".select-button-step-two[data-value='region-"+this.options.defaultCustomRegion+"']").length>0){$(".select-button-step-two[data-value='region-"+this.options.defaultCustomRegion+"']").click()}else if(this.availablePlaces.length>0){$(".select-button-step-two[data-value='place-"+this.availablePlaces[0].getID()+"']").click()}else if(this.availableCustomRegions.length>0){$(".select-button-step-two[data-value='region-"+this.availableCustomRegions[0].getID()+"']").click()}else{$("#add-predefined-button, #add-region-button").addClass("modal-btn-primary add-change-button--empty");var $placeholder=$("<div />",{id:"no-location-placeholder",class:"no-location-placeholder"});$placeholder.html("Preview your<br />location here");$locationPreviewMapContainer.append($placeholder);$("#step-two-preview-place-intro, #step-two-preview-place-name").hide()}};CSVExport.prototype.toStepTwoAnalytics=function(){var self=this;var stepTwoDiv=$("#csv-export-step-two-container");if(stepTwoDiv.length>0){if(this.isAllStatesAllowed()){$("#csv-export-option-all-states").prop("disabled",false)}else{$("#csv-export-option-all-states").prop("disabled",true);if(this.selectedState=="ALL"){this.setState("1")}}var $stateDropdown=$("#csv-export-state-dropdown");$stateDropdown.val(this.selectedState);$stateDropdown.trigger("chosen:updated");this.updateStepTwoAnalyticsPreview($($stateDropdown.find("option[value="+this.selectedState+"]")));$("#csv-export-step-two-container").show();return}$stepTwoDiv=$("<div />",{id:"csv-export-step-two-container",class:"csv-export-individual-step"});$stepTwoDiv.append(this.getInstructionsAndNext(2));var $selectionContainer=$("<div />",{class:"selection-container"});var $locationSelector=$("<div />",{class:"location-selector"});var $locationSelectorHeader=$("<div />",{class:"section-header"});var $halfHeader=$("<div />",{class:"section-header-section section-header-section--half"});var $stateHeader=$("<div />",{class:"section-header-section"});$stateHeader.append(this.$icons.predefinedTitle.clone(),"State");$locationSelectorHeader.append($halfHeader,$stateHeader);$locationSelector.append($locationSelectorHeader);var $halfSection=$("<div />",{class:"section-content section-content--half"});var $stateSection=$("<div />",{id:"state-section-content",class:"section-content state-section-content"});$locationSelector.append($halfSection,$stateSection);var $locationPreview=$("<div />",{class:"location-preview"});var $locationPreviewIntro=$("<div />",{id:"step-two-preview-place-intro",class:"preview-intro"});$locationPreviewIntro.text("Previewing:");var $locationPreviewPlaceName=$("<div />",{id:"step-two-preview-place-name",class:"preview-place-name"});var $locationPreviewMapContainer=$("<div />",{id:"step-two-preview-place-map-container",class:"preview-place-map-container"});var $locationPreviewMapBoxShadow=$("<div />",{class:"preview-box-shadow"});$locationPreviewMapContainer.append($locationPreviewMapBoxShadow);$locationPreview.append($locationPreviewIntro,$locationPreviewPlaceName,$locationPreviewMapContainer);$selectionContainer.append($locationSelector,$locationPreview);$stepTwoDiv.append($selectionContainer);this.$stepContainer.append($stepTwoDiv);var $stateDropdown=$("<select />",{id:"csv-export-state-dropdown","data-placeholder":"Select a state"});var $allStates=$("<option />",{id:"csv-export-option-all-states",title:"All States"});$allStates.val("ALL");$allStates.text("All States");$stateDropdown.append($allStates,searchStates.getOptions());if(this.isAllStatesAllowed()){this.setState("ALL")}else{$allStates.prop("disabled",true);this.setState("1")}$stateDropdown.val(this.selectedState);$stateSection.append($stateDropdown);$stateDropdown.chosen({width:"240px",disable_search:true,display_disabled_options:false});$stateDropdown.chosen().change(function(e,changed){if(changed.selected!=null){var $selected=$($(this).find("option[value="+changed.selected+"]"));self.setState($selected.val());self.updateStepTwoAnalyticsPreview($selected)}});this.updateStepTwoAnalyticsPreview($($stateDropdown.find("option[value="+this.selectedState+"]")));self.toggleNextButton(2,true)};CSVExport.prototype.toStepThree=function(){var self=this;var $stepThreeDiv=$("#csv-export-step-three-container");if($stepThreeDiv.length>0){this.updateStepThree();$stepThreeDiv.show();return}$stepThreeDiv=$("<div />",{id:"csv-export-step-three-container",class:"csv-export-individual-step"});this.addStepThreeBanners($stepThreeDiv);$stepThreeDiv.append(this.getInstructionsAndNext(3));var $confirmationSection=$("<div />",{class:"csv-export-step-three-confirmation-section"});var $sentence=$("<div />",{class:"csv-export-step-three-confirmation-sentence"});var $data=$("<span />",{id:"step-three-data"});var $placeType=$("<span />",{id:"step-three-place-type"});var $place=$("<span />",{id:"step-three-place"});var $filters=$("<div />",{id:"step-three-filters",class:"filter-display"});$sentence.append($data,$placeType," in ",$place,".",$filters);$confirmationSection.append($sentence);$stepThreeDiv.append($confirmationSection);this.$stepContainer.append($stepThreeDiv);this.updateStepThree()};CSVExport.prototype.updateStepThree=function(){var $customErrorBanner=$("#custom-error-banner");$customErrorBanner.hide();if(this.optionsChanged==true){$(".alert-banner").hide();$("#export-close-button").hide();$(".csv-export-instructions[data-tab='3']").show();$(".modal-btn-next-btn[data-tab='3']").show()}var data="";var placeType="";var place="";if(this.selectedIndicator!=null&&this.selectedOverlaySet!=null){data=this.getProcessedIndicatorName(this.selectedIndicator)+" data for "+this.selectedOverlaySet.name}else if(this.selectedIndicator!=null){data=this.getProcessedIndicatorName(this.selectedIndicator)}else if(this.selectedOverlaySet!=null){data=this.selectedOverlaySet.name}if(this.selectedPlaceType!=null){placeType=" by "+this.selectedPlaceType.getDisplayName()}if(this.selectedPlace!=null){place=this.selectedPlace.getLabel()+getState(this.selectedPlace)}else if(this.selectedCustomRegion!=null){place=this.selectedCustomRegion.getLabel()}$("#step-three-data").html(data);$("#step-three-place-type").html(placeType);$("#step-three-place").html(place);var filters="";if(this.selectedOverlaySet!=null){var setFilters=this.getPointFilters(this.selectedOverlaySet);for(var i=0;i<setFilters.length;i++){if(i!=0){filters+="<br />"}filters+=setFilters[i]}}$("#step-three-filters").html(filters);var error=null;if(this.selectedIndicator!=null&&this.selectedOverlaySet!=null&&(this.selectedPlaceType==PPlaceType.BLOCKGROUP||this.selectedPlaceType==PPlaceType.BLOCK)){if(this.selectedPlace!=null&&this.selectedPlace.getType()==PPlaceType.COUNTRY){error="<strong>Points with layer data is not available for download nationwide at the block group or block level.</strong> Please go back to Step 2 and choose a smaller geography such as states."}else if(this.selectedCustomRegion!=null){if(this.getCustomRegionLatLngArea(this.selectedCustomRegion)>10){error="<strong>This custom region is too large to download points with layer data at the block group or block level.</strong> Please go back to Step 2 and choose a smaller custom region."}}}else if(this.selectedIndicator!=null&&(this.selectedPlaceType==PPlaceType.BLOCKGROUP||this.selectedPlaceType==PPlaceType.BLOCK)){if(this.selectedPlace!=null&&this.selectedPlace.getType()==PPlaceType.COUNTRY&&this.selectedPlaceType==PPlaceType.BLOCK){error="<strong>Block data is not currently available for download nationwide.</strong> Please go back to Step 2 and choose a smaller geography such as states."}else if(this.selectedCustomRegion!=null){if(this.getCustomRegionLatLngArea(this.selectedCustomRegion)>10){error="<strong>This custom region is too large to download data at the block group or block level.</strong> Please go back to Step 2 and choose a smaller custom region."}}}if(error!=null){this.toggleNextButton(3,false);$customErrorBanner.html(error);$customErrorBanner.show()}else{this.toggleNextButton(3,true)}};CSVExport.prototype.toStepThreeAnalytics=function(){var self=this;var $stepThreeDiv=$("#csv-export-step-three-container");if($stepThreeDiv.length>0){
this.listLink=this.createAnalyticListLink();this.updateStepThreeAnalytics();$stepThreeDiv.show();return}$stepThreeDiv=$("<div />",{id:"csv-export-step-three-container",class:"csv-export-individual-step"});this.addStepThreeBanners($stepThreeDiv);$stepThreeDiv.append(this.getInstructionsAndNext(3));var $confirmationSection=$("<div />",{class:"csv-export-step-three-confirmation-section"});var $criteriaLabel=$("<div />",{class:"csv-export-step-three-criteria-label"});$criteriaLabel.text("Criteria");var $criteriaBox=$("<div />",{id:"step-three-criteria-box",class:"csv-export-step-three-criteria-box"});$confirmationSection.append($criteriaLabel,$criteriaBox);$stepThreeDiv.append($confirmationSection);this.$stepContainer.append($stepThreeDiv);this.listLink=this.createAnalyticListLink();this.updateStepThreeAnalytics();this.toggleNextButton(3,true)};CSVExport.prototype.updateStepThreeAnalytics=function(){if(this.optionsChanged==true){$(".alert-banner").hide();$("#export-close-button").hide();$(".csv-export-instructions[data-tab='3']").show();$(".modal-btn-next-btn[data-tab='3']").show();$("#step-three-criteria-box").css("max-height","250px")}var analyticsType=this.selectedOverlaySet!=null?"points in intersecting layers":"intersecting layers";$(".csv-export-analytics-type").text(analyticsType);var state="";if(this.selectedState=="ALL"){state="all states"}else{state=searchStates.getByFIPS(this.selectedState).name}$(".csv-export-analytics-state").text(state);$criteriaBox=$("#step-three-criteria-box");$criteriaBox.empty();for(var i=0;i<legendMerger.indicatorLegends.length;i++){if(legendMerger.getLegend(i).containsIndicator()){var legend=legendMerger.getLegend(i);var indicator=legend.getIndicator();var range=legend.getIndicatorRange().getRange();var values=legend.getIndicatorValues().getValues();var display="";if(range!=null){var rangeArray=legend.getIndicatorRange().getFormattedRange();if(rangeArray.length==2){display=rangeArray[0]+" - "+rangeArray[1]}}if(values!=null){var valuesArray=[];for(var j=0;j<values.length;j++){if(values[j][1]==1){valuesArray.push(values[j][0])}}if(valuesArray.length>0){display=valuesArray.join(", ")}else{display="No categories selected."}}var $criteriaDataset=$("<div />",{class:"criteria-dataset criteria-layer"});$criteriaDataset.text(indicator.getFullLabel());var $criteriaValues=$("<div />",{class:"criteria-values"});$criteriaValues.text(display);$criteriaBox.append(this.$icons.layer.clone(),$criteriaDataset,$criteriaValues)}}if(this.selectedOverlaySet!=null){var $criteriaDataset=$("<div />",{class:"criteria-dataset criteria-point"});$criteriaDataset.text(this.selectedOverlaySet.name);var $criteriaValues=$("<div />",{class:"criteria-values"});var filters=this.getPointFilters(this.selectedOverlaySet);for(var i=0;i<filters.length;i++){if(i!=0){$criteriaValues.append($("<br />"))}$criteriaValues.append(filters[i])}$criteriaBox.append(this.$icons.point.clone(),$criteriaDataset,$criteriaValues)}};CSVExport.prototype.addStepThreeBanners=function($stepThreeDiv){var $downloadBanner=$("<div />",{id:"download-banner",class:"alert-banner download-banner"});var $errorBanner=$("<div />",{id:"error-banner",class:"alert-banner error-banner"});$errorBanner.html("<strong>Your CSV download has failed.</strong> Please try again. If you continue to see this error, contact us at 1-866-923-MAPS (6277) or pma<span class='spamFixText'></span>p@po<span class='spamFixText'></span>licy<span class='spamFixText'></span>map.com.");var $customErrorBanner=$("<div />",{id:"custom-error-banner",class:"alert-banner error-banner"});$stepThreeDiv.append($downloadBanner,$errorBanner,$customErrorBanner)};CSVExport.prototype.getTabs=function(){var self=this;var $nav=$("<div />",{class:"csv-export-nav"});var $steps=$("<div />",{class:"csv-export-steps"});for(var i=1;i<4;i++){var $step=$("<div />",{class:"csv-export-step-box","data-tab":i});var $stepActiveBorder=$("<div />",{class:"csv-export-step-box-top-border"});var $stepIcon=$("<div />",{class:"csv-export-step-box-icon csv-export-step-box-step"+i});var $stepText=$("<div />",{class:"csv-export-step-box-text"});switch(i){case 1:$stepText.html("<strong>Step 1</strong><br />Select Data");break;case 2:$stepText.html("<strong>Step 2</strong><br />Select Location");break;case 3:$stepText.html("<strong>Step 3</strong><br />Confirm Download");break}$step.append($stepActiveBorder,$stepIcon,$stepText);$steps.append($step)}$nav.append($steps);$steps.children().click(function(){self.toStep($(this).attr("data-tab"))});return $nav};CSVExport.prototype.getStepContainer=function(){var $stepContainer=$("<div />",{class:"csv-export-step-container"});return $stepContainer};CSVExport.prototype.getFooter=function(){var $footer=$("<div />",{id:"csv-export-footer",class:"csv-export-footer"});return $footer};CSVExport.prototype.getIconPreload=function(){var $preload=$("<div />",{class:"csv-export-icon-preload"});for(icon in this.$icons){var $curIcon=this.$icons[icon].clone();$preload.append($curIcon)}for(var i=0;i<this.cssIcons.length;i++){var $curIcon=$("<img />",{src:this.cssIcons[i]});$preload.append($curIcon)}return $preload};CSVExport.prototype.setActiveTab=function(step){var $steps=$(".csv-export-steps");$steps.children("[data-tab="+step+"]").removeClass("csv-export-step-box-inactive").addClass("csv-export-step-box-active");$steps.children(":not([data-tab="+step+"])").removeClass("csv-export-step-box-active").addClass("csv-export-step-box-inactive");this.currentTab=step};CSVExport.prototype.setFooter=function(step){$footer=$("#csv-export-footer");$footer.empty();if(this.isAnalytics){return}if(step==1){var $dataFooter=$("<span />",{title:"Close this window, and use the data menus to add the data you want to download. Then, re-click Download."});$dataFooter.text("Not the data you wanted?");$dataFooter.append(this.$icons.info.clone());$dataFooter.tooltip();$footer.append($dataFooter)}else if(step==2){$footer.html("&nbsp;")}else if(step==3){$footer.html("&nbsp;")}};CSVExport.prototype.getInstructionsAndNext=function(activeTab,numItems){var self=this;var $container=$("<div />",{class:"csv-export-instructions-next-btn-container"});var $instructions=$("<div />",{class:"csv-export-instructions","data-tab":activeTab});switch(activeTab){case 1:var analyticsString=this.isAnalytics?"3-Layer Map ":"";if(numItems!=null&&numItems==1){$instructions.text("Confirm the "+analyticsString+"data you wish to download.")}else{$instructions.text("Select the "+analyticsString+"data you wish to download.")}var $helpText=$("<div />",{class:"csv-export-instructions-helptext"});$helpText.text("Choose only one");$instructions.append($helpText);break;case 2:if(this.isMaps||this.isTables){if(numItems!=null&&numItems>0){$instructions.html("Select or confirm a location to download <span id='csv-export-selected-data'></span>.")}else{$instructions.html("Select a location to download <span id='csv-export-selected-data'></span>.")}var $helpText=$("<div />",{class:"csv-export-instructions-helptext"});$helpText.text("Choose only one");$instructions.append($helpText)}else if(this.isAnalytics){$instructions.html("Select a location to download.")}break;case 3:if(this.isMaps||this.isTables){$instructions.text("Confirm your data download.")}else if(this.isAnalytics){$instructions.html("Confirm your download of <span class='csv-export-analytics-type'></span> in <span class='csv-export-analytics-state'></span>.")}break}var $buttonContainer=$("<div />",{class:"csv-export-next-btn-container"});var $backButton=null;if(activeTab==2||activeTab==3){$backButton=$("<button />",{class:"modal-btn modal-btn-default modal-btn-back-btn","data-tab":activeTab});$backButton.html("<span class='glyphicon glyphicon-chevron-left'></span>");$backButton.click(function(){self.previousStep()})}var $nextButton=$("<button />",{class:"modal-btn modal-btn-next-btn modal-btn-primary modal-btn-next-btn--disabled","data-tab":activeTab});$nextButton.click(function(){self.nextStep($(this))});switch(activeTab){case 1:$nextButton.html("<strong>Next</strong><br />Select Location");break;case 2:$nextButton.html("<strong>Next</strong><br />Confirm Download");break;case 3:$span=$("<span />",{class:"modal-btn-next-btn-export"});$span.text("Download CSV");$nextButton.append($span);break}if(activeTab==3){$closeButton=$("<button />",{id:"export-close-button",class:"modal-btn modal-btn-default modal-btn-close-btn"});$closeButton.text("Close");$closeButton.css("display","none");$closeButton.click(function(){modal.close()});$buttonContainer.append($closeButton,$nextButton,$backButton)}else{$buttonContainer.append($nextButton,$backButton)}$container.append($instructions,$buttonContainer);return $container};CSVExport.prototype.toggleNextButton=function(tab,enabled){var $button=$(".modal-btn-next-btn[data-tab='"+tab+"']");if(enabled===true){$button.removeClass("modal-btn-next-btn--disabled")}else{$button.addClass("modal-btn-next-btn--disabled")}};CSVExport.prototype.getStepOneButton=function(id,value,text,iconClass,title){var $button=$("<div />",{id:id,class:"select-button select-button-step-one","data-value":value});if(title!=null){$button.prop("title",title)}var $innerWrapper=$("<div />",{class:"select-button-inner-wrapper"});var $iconWrapper=$("<div />",{class:"select-button-icon-wrapper"});var $icon=$("<div />",{class:"img-icon "+iconClass});var $textWrapper=$("<div />",{class:"select-button-text-wrapper"});var $buttonText=$("<div />",{class:"select-button-button-text"});var $filteredText=$("<div />",{class:"select-button-filtered-text"});$iconWrapper.append($icon);$buttonText.text(text);$textWrapper.append($buttonText,$filteredText);$innerWrapper.append($iconWrapper,$textWrapper);$button.append($innerWrapper);return $button};CSVExport.prototype.getStepTwoButton=function(id,value,text,iconClass,title){var self=this;var $button=$("<div />",{id:id,class:"select-button select-button-step-two","data-value":value});if(title!=null){$button.prop("title",title)}var $innerWrapper=$("<div />",{class:"select-button-inner-wrapper"});var $iconWrapper=$("<div />",{class:"select-button-icon-wrapper"});var $icon=$("<div />",{class:"img-icon "+iconClass});var $textWrapper=$("<div />",{class:"select-button-text-wrapper"});var $buttonText=$("<div />",{class:"select-button-button-text"});var $shadedBy=$("<div />",{class:"select-button-shaded-by"});$shadedBy.html("Shaded By:");var $shadedByInfo=this.$icons.info.clone();$shadedByInfo.prop("title","Select the geography level at which you want to download data.");$shadedByInfo.tooltip({placement:"right"});$shadedBy.append($shadedByInfo,"<br />");var $dropdown=$("<select />");$dropdown.on("change",function(){var selectedPlaceType=$("option:selected",this).data("data-place-type");self.setPlaceType(selectedPlaceType);self.lastPlaceTypes[value]=selectedPlaceType});$shadedBy.append($dropdown);$iconWrapper.append($icon);$buttonText.text(text);$textWrapper.append($buttonText,$shadedBy);$innerWrapper.append($iconWrapper,$textWrapper);$button.append($innerWrapper);return $button};CSVExport.prototype.getAllPlaceTypeDropdownOptions=function(){if(this.availableIndicator==null){return}var indicatorPlaceTypes=orderPlaceTypes(this.availableIndicator.getPlaceTypes());for(var i=0;i<this.availablePlaces.length;i++){var curPlace=this.availablePlaces[i];var curPlaceCacheId=this.getPlaceCacheId(curPlace);if(this.availablePlaceTypes[curPlaceCacheId]==null){this.availablePlaceTypes[curPlaceCacheId]=this.getPlaceTypeDropdownOptionsForPlace(curPlace,indicatorPlaceTypes)}}for(var i=0;i<this.availableCustomRegions.length;i++){var curRegion=this.availableCustomRegions[i];var curRegionCacheId=this.getPlaceCacheId(curRegion);if(this.availablePlaceTypes[curRegionCacheId]==null){this.availablePlaceTypes[curRegionCacheId]=this.getPlaceTypeDropdownOptionsForPlace(curRegion,indicatorPlaceTypes)}}};CSVExport.prototype.getPlaceTypeDropdownOptionsForPlace=function(place,indicatorPlaceTypes){return indicatorPlaceTypes};CSVExport.prototype.getDefaultPlaceType=function(cacheId){if(this.options.defaultPlaceType==null){return null}else if(typeof this.options.defaultPlaceType!="object"){return this.options.defaultPlaceType}else if(this.options.defaultPlaceType[cacheId]!=null){return this.options.defaultPlaceType[cacheId]}else{return null}};CSVExport.prototype.setUpStepTwoButtonDropdown=function($button){$(".select-button-shaded-by").hide();if(this.selectedIndicator!=null){var $shadedBy=$button.find(".select-button-shaded-by");var $dropdown=$shadedBy.find("select");var placeValue=$button.attr("data-value");$dropdown.empty();var dropdownOptions=this.availablePlaceTypes[placeValue];var lastPlaceType=this.lastPlaceTypes[placeValue];var curPlaceDefaultPlaceType=this.getDefaultPlaceType(placeValue);for(var i=0;i<dropdownOptions.length;i++){var curPlaceType=dropdownOptions[i];var $newOption=$("<option />",{value:curPlaceType.getId()});$newOption.data("data-place-type",curPlaceType);if(lastPlaceType!=null&&curPlaceType==lastPlaceType||lastPlaceType==null&&curPlaceDefaultPlaceType!=null&&curPlaceType.getId()==curPlaceDefaultPlaceType){$newOption.prop("selected",true)}$newOption.text(curPlaceType.getName());$dropdown.append($newOption)}this.setPlaceType($("option:selected",$dropdown).data("data-place-type"));$shadedBy.show()}};CSVExport.prototype.updateStepTwoPreview=function(place){$("#no-location-placeholder").remove();var $introText=$("#step-two-preview-place-intro");var $namePreview=$("#step-two-preview-place-name");var $mapPreviewContainer=$("#step-two-preview-place-map-container");$namePreview.text(place.getLabel()+getState(place));$introText.show();$namePreview.show();$mapPreviewContainer.find("img").remove();$mapPreviewContainer.append(this.getPlacePreviewImage(place))};CSVExport.prototype.updateStepTwoAnalyticsPreview=function($option){var $namePreview=$("#step-two-preview-place-name");var $mapPreviewContainer=$("#step-two-preview-place-map-container");$namePreview.text($option.text());$mapPreviewContainer.find("img").remove();var $previewImage=$("<img />",{src:"/images/csvexport/states/"+$option.val()+".png"});$mapPreviewContainer.append($previewImage)};CSVExport.prototype.getPlacePreviewImage=function(place){var cacheId=this.getPlaceCacheId(place);if(this.previewImages[cacheId]!=null){return this.previewImages[cacheId]}var mapParms="";var boundary=[{o:{r:243,g:129,b:57,w:3}}];if(place.getType()==PPlaceType.CUSTOM){boundary[0].cpid=place.getID();mapParms+="&cpid="+place.getID()}else{boundary[0].id=place.getID()}var mapScale=map.getScale(map.getZoomLevelByViewPort(place.getBounds(),200,200));var layers=[];for(var i=0;i<pMapLayer.constantLayers.length;i++){if(pMapLayer.constantLayers[i].minScale<=mapScale&&pMapLayer.constantLayers[i].maxScale>=mapScale){layers.push(pMapLayer.constantLayers[i])}}mapParms+="&ps="+encodeURIComponent(JSON.stringify(boundary));mapParms+="&scale="+mapScale;mapParms+="&layers="+encodeURIComponent(_.pluck(layers,"name").join(","));mapParms+="&lat="+encodeURIComponent(place.getCentroid().lat());mapParms+="&long="+encodeURIComponent(place.getCentroid().lng());mapParms+="&imgwidth=200&imgheight=200";var $previewImage=$("<img />",{src:PEnvironment.mapPrintUrl+mapParms});this.previewImages[cacheId]=$previewImage;return $previewImage};CSVExport.prototype.getPlaceCacheId=function(place){var isCustom=place.getType()==PPlaceType.CUSTOM;return(isCustom?"region-":"place-")+place.getID()};CSVExport.prototype.toggleLocationBar=function($button){var self=this;var $locationBar=$("#export-location-bar");if($locationBar.length>0){this.search.destroySubForm();$("#shade-box").remove();$locationBar.remove();return}$locationBar=$("<div />",{id:"export-location-bar",class:"export-location-bar"});$header=$("<div />",{class:"export-location-bar-header"});$header.text("Search for a Pre-Defined Location");$closeButton=$("<div />",{class:"header-close"});$closeButton.html("×");$closeButton.click(function(){self.toggleLocationBar()});$header.append($closeButton);$locationBar.append($header);var $searchFormContainer=$("<div />",{class:"search-form-container"});$searchFormContainer.css("display","inline-block");var $form=$("<form />",{id:"export-search-form",class:"location-search-form"});$form.html("<select name='type' class='search-form__type'></select><select name='' class='search-form__first-dropdown'></select><select name='' class='search-form__second-dropdown'></select><select name='' class='search-form__third-dropdown'></select><input type='text' name='query' class='search-form__query' /><div class='textbox-search-submit textbox-search-button'><img src='/images/searchicons/search_bar_mag.svg' /></div><div class='textbox-search-divider'></div><div class='textbox-search-clear textbox-search-button'><img src='/images/searchicons/search_bar_clear.svg' /></div><button type='submit'>Search</button>");$searchFormContainer.append($form);$locationBar.append($searchFormContainer);var $notFoundError=$("<div />",{class:"export-location-bar-not-found"});$locationBar.append($notFoundError);var $loading=$("<div />",{class:"export-location-bar-loading"});$locationBar.append($loading);this.$content.append($locationBar);var options={formWidth:700,noDataSearch:true,typeAlwaysGray:true,placeholderLocation:"City, County, State, or Zip",responseEvent:function(results){var place=null;if(results!=null&&$.isArray(results)&&results.length>0){place=results[0]}else if(results!=null&&!$.isArray(results)&&!(results instanceof PAddress)){place=results}if(place!=null){var type=place.getType();var identifier=place.getIdentifier();if(type!=PPlaceType.COUNTRY||type==PPlaceType.COUNTRY&&(identifier=="US"||identifier=="UST")){self.loadNewPlace(place);self.toggleLocationBar();return}}$notFoundError.text("Location not found. Please try again.")},asAppendTo:$locationBar,asSelect:function(item){if(item.type==null||item.type==0){return}$loading.fadeIn(300);$notFoundError.text("");var bid=item.getBoundaryIdForCurrentMatrix();placeLoader.load([bid],function(places){if(places.length>0){var place=places[0];var type=place.getType();var identifier=place.getIdentifier();if(type!=PPlaceType.COUNTRY||type==PPlaceType.COUNTRY&&(identifier=="US"||identifier=="UST")){self.loadNewPlace(place);self.toggleLocationBar()}else{$notFoundError.text("Location not found. Please try again.");$loading.fadeOut()}}else{$notFoundError.text("Location not found. Please try again.");$loading.fadeOut()}})}};if(productProperty.exists("search_default_state")){options.defaultState=searchStates.getByAbbreviation(productProperty.getValue("search_default_state"))}if(productProperty.exists("search_location_placeholder")){options.placeholderLocation=productProperty.getValue("search_location_placeholder")}var searchTypes=getSearchTypes();this.search=new TrfSearch($("#export-search-form"),searchTypes,options);var $shadeBox=$("<div />",{id:"shade-box",class:"shade-box"});$shadeBox.click(function(){self.toggleLocationBar()});$(".modal-content").append($shadeBox);var $searchTextbox=$locationBar.find(".search-form__query");$searchTextbox.width(460);$shadeBox.fadeIn(300);$locationBar.fadeIn(300,function(){self.search.subForm.updateWidthOfFluidElement();$searchTextbox.focus()})};CSVExport.prototype.loadNewPlace=function(place){var self=this;var placeId=place.getID();for(var i=0;i<this.availablePlaces.length;i++){var curPlace=this.availablePlaces[i];if(curPlace.getID()==placeId){$(".select-button-step-two[data-value='place-"+placeId+"']").click();return}}var i=this.availablePlaces.length;var $addPredefinedButton=$("#add-predefined-button");$addPredefinedButton.detach();$("#predefined-placeholder").remove();this.availablePlaces.push(place);var placeName=place.getLabel()+getState(place)+" ("+boundaryMatrix.getDisplayNameForDefinitionId(place.getDefinitionId())+")";var $placeButton=this.getStepTwoButton("button-place-"+i,"place-"+placeId,placeName,"img-predefined-icon",placeName);$placeButton.click(function(){self.setPlace(place);self.setUpStepTwoButtonDropdown($(this));self.updateStepTwoPreview(place);$(".select-button-step-two").removeClass("select-button--selected");$(this).addClass("select-button--selected");self.toggleNextButton(2,true)});this.$predefinedSection.append($placeButton);this.$predefinedSection.append($addPredefinedButton);this.getAllPlaceTypeDropdownOptions();this.getPlacePreviewImage(place);$("#add-predefined-button, #add-region-button").removeClass("modal-btn-primary add-change-button--empty");$addPredefinedButton.html("Change");$placeButton.click()};CSVExport.prototype.toggleCustomRegionMenu=function($button){var self=this;var $regionMenu=$("#export-region-menu");if($regionMenu.length>0){$("#shade-box").remove();$regionMenu.remove();return}var currentRegionIds=_.pluck(this.availableCustomRegions,"id");var customRegionOptions=[];for(var i=0;i<this.userCustomRegions.length;i++){var curRegion=this.userCustomRegions[i];if($.inArray(curRegion.getID(),currentRegionIds)==-1){customRegionOptions.push(curRegion)}}$regionMenu=$("<div />",{id:"export-region-menu",class:"export-region-menu"});var buttonPosition=$button.position();$regionMenu.css({top:buttonPosition.top-1+"px",left:buttonPosition.left-1+"px"});var $closeButton=$("<div />",{class:"modal-btn-default add-change-close-button"});$closeButton.html("Close<span class='glyphicon glyphicon-triangle-top'></span>");$closeButton.click(function(){self.toggleCustomRegionMenu()});$regionMenu.append($closeButton);var $menu=$("<div />",{class:"region-menu"});if(customRegionOptions.length>0){var $ul=$("<ul />");for(var i=0;i<customRegionOptions.length;i++){(function(curRegion){var $li=$("<li />");$li.text(curRegion.getLabel());$li.click(function(){self.loadNewCustomRegion(curRegion);self.toggleCustomRegionMenu()});$ul.append($li)})(customRegionOptions[i])}$menu.append($ul)}else{var $noRegions=$("<div />",{class:"no-regions"});$noRegions.text("You do not have any custom regions.");$menu.append($noRegions)}$regionMenu.append($menu);this.$content.append($regionMenu);var $shadeBox=$("<div />",{id:"shade-box",class:"shade-box"});$shadeBox.click(function(){self.toggleCustomRegionMenu()});$(".modal-content").append($shadeBox);$shadeBox.fadeIn(300);$regionMenu.slideDown(200)};CSVExport.prototype.loadNewCustomRegion=function(region){var self=this;var i=this.availableCustomRegions.length;this.availableCustomRegions.push(region);var $regionButton=this.getStepTwoButton("button-region-"+i,"region-"+region.getID(),region.getLabel(),"img-custom-region-icon",region.getLabel());$regionButton.click(function(){self.setCustomRegion(region);self.setUpStepTwoButtonDropdown($(this));self.updateStepTwoPreview(region);$(".select-button-step-two").removeClass("select-button--selected");$(this).addClass("select-button--selected");self.toggleNextButton(2,true)});$("#region-placeholder").remove();var $addRegionButton=$("#add-region-button");$addRegionButton.detach();this.$regionSection.append($regionButton);this.$regionSection.append($addRegionButton);this.getAllPlaceTypeDropdownOptions();this.getPlacePreviewImage(region);$("#add-predefined-button, #add-region-button").removeClass("modal-btn-primary add-change-button--empty");$addRegionButton.html("Change<span class='glyphicon glyphicon-triangle-bottom'></span>");this.$regionSection.scrollTo($addRegionButton);$regionButton.click()};CSVExport.prototype.getProcessedIndicatorName=function(indicator){var name=indicator.getFullDisplayName();if(name.substring(name.length-1)=="."){return name.substring(0,name.length-1)}else{return name}};CSVExport.prototype.getPointFilters=function(pointset){var filters=[];for(groupName in pointset.filtergroups){var groupFilters=_.pluck(pointset.filtergroups[groupName],"valuesDisplay");filters.push(groupName+": "+groupFilters.join(", "))}return filters};CSVExport.prototype.getPointFiltersTooltipText=function(pointset){var tooltip="";var filters=this.getPointFilters(pointset);for(var i=0;i<filters.length;i++){tooltip+="\n("+filters[i]+")"}return tooltip};CSVExport.prototype.isAllStatesAllowed=function(){if(this.selectedPlaces===true){return this.analyticsIndicatorsIncludesBlocks!=true}else if(PEnvironment.productId==1699){if($.inArray(this.selectedOverlaySet.id,this.allowedPointsets)<0&&this.selectedOverlaySet.type!="dl"){return false}var indicatorIds=_.pluck(this.availableAnalyticsIndicators,"id");for(var i=0;i<indicatorIds.length;i++){if($.inArray(indicatorIds[i],this.allowedIndicators)<0){return false}}return true}else{return false}};CSVExport.prototype.createAnalyticListLink=function(){var listLink=new PAnalyticListLink;listLink.setName("3-Layer Maps List");if(this.selectedOverlaySet!=null){var oldSets=[];var dlSets=[];var storeSet=function(set){if(set.type=="old"){oldSets.push(set.id);var filters=set.getFilters();if(filters.length>0){var filterIds=_.pluck(filters,"id").join(",");listLink.addLinkParm("o"+set.id+"ftr",filterIds);listLink.addListParm("o"+set.id+"ftr",filterIds)}}else if(set.type=="dl"){dlSets.push(set.id)}};for(var i=0;i<this.selectedOverlaySet.children.length;i++){storeSet(this.selectedOverlaySet.children[i])}storeSet(this.selectedOverlaySet);if(oldSets.length>0){var oldSetsJoined=oldSets.join(":");listLink.addLinkParm("o",oldSetsJoined);listLink.addListParm("o",oldSetsJoined)}if(dlSets.length>0){var dlSetsJoined=dlSets.join(":");listLink.addLinkParm("dlo",dlSetsJoined);listLink.addListParm("dlo",dlSetsJoined)}listLink.addListParm("points","t")}if(this.selectedState!="ALL"){listLink.addListParm("st",searchStates.getByFIPS(this.selectedState).abbreviation)}return listLink};CSVExport.prototype.getCustomRegionLatLngArea=function(customRegion){var bounds=customRegion.getBounds();var span=bounds.toSpan();return span.latitude*span.longitude};CSVExport.prototype.getCSVName=function(){var csvName="";if(this.isMaps||this.isTables){var dataOf="";var place="";if(this.isMaps){dataOf="Maps Data of "}else if(this.isTables){dataOf="Tables Data of "}if(this.selectedPlace!=null){place=this.selectedPlace.getLabel()+getState(this.selectedPlace)}else if(this.selectedCustomRegion!=null){place=this.selectedCustomRegion.getLabel()}if(this.selectedIndicator!=null&&this.selectedOverlaySet!=null){csvName=dataOf+place+" with "+this.selectedIndicator.getLabel()+" for "+this.selectedOverlaySet.name+" (Point with Layer)"}else if(this.selectedIndicator!=null){csvName=dataOf+place+" with "+this.selectedIndicator.getLabel()+" (Layer)"}else if(this.selectedOverlaySet!=null){csvName=dataOf+place+" with "+this.selectedOverlaySet.name+" (Point)"}}else if(this.isAnalytics){var stateName="All States";if(this.selectedState!="ALL"){stateName=searchStates.getByFIPS(this.selectedState).name}if(this.selectedOverlaySet!=null){csvName="3-Layer Map Data of "+stateName+" (Points in Intersecting Layers)"}else{csvName="3-Layer Map Data of "+stateName+" (Intersecting Layers)"}}return csvName};CSVExport.prototype.getDownloadBannerMessage=function(time){var message="";if(this.isMaps||this.isTables){if(this.selectedOverlaySet!=null){if(this.selectedIndicator!=null){if(isAutoLoginUser()){message="<strong>Your CSV is being processed.</strong> Your file will be saved in Saved Work. Depending on the size of the file it may take up to "+time+" to arrive."}else{message="<strong>Your CSV is being processed.</strong> You will receive an email with your file, and it will be saved in My Saved Work. Depending on the size of the file it may take up to "+time+" to arrive."}}else{message="<strong>Your CSV is being processed.</strong> Larger files could take up to 15 minutes to download."}}else if(this.selectedIndicator!=null){message="<strong>Your CSV is being processed.</strong> Larger files could take up to 15 minutes to download."}}else if(this.isAnalytics){message="<strong>Your CSV is being processed.</strong> Larger files could take up to 15 minutes to download."}return message};CSVExport.prototype.trackDownload=function(){if((this.isMaps||this.isTables)&&this.selectedIndicator!=null){P.instances.tracking.track(P.Tracking.eventTypes.EXPORT_TOOL_DOWNLOAD,{indicator_id:this.selectedIndicator.getID()})}else if(this.isAnalytics){for(var i=0;i<this.numAvailableAnalyticsIndicators;i++){P.instances.tracking.track(P.Tracking.eventTypes.EXPORT_TOOL_DOWNLOAD,{indicator_id:this.availableAnalyticsIndicators[i].getID()})}}if(this.selectedOverlaySet!=null){P.instances.tracking.track(P.Tracking.eventTypes.EXPORT_TOOL_DOWNLOAD,{dataset_id:this.selectedOverlaySet.id,dataset_type:this.selectedOverlaySet.type})}};CSVExport.prototype.startExport=function(){var self=this;var url="";var pntService;if(this.isMaps||this.isTables){if(this.selectedIndicator==null&&this.selectedOverlaySet==null||this.selectedPlace==null&&this.selectedCustomRegion==null){return}if(this.selectedOverlaySet!=null){pntService=true;url=PEnvironment.pointUrl+"&act=w&did="+this.selectedOverlaySet.id+"&dt="+this.selectedOverlaySet.type;if(this.selectedIndicator!=null){url+="&ii="+this.selectedIndicator.getID()+"&tf="+this.selectedIndicator.getPeriod()+"&bt="+this.selectedPlaceType.getId()}if(this.selectedPlace!=null){url+="&pid="+this.selectedPlace.getID()}else if(this.selectedCustomRegion!=null){url+="&customid="+this.selectedCustomRegion.getID()}}else if(this.selectedIndicator!=null){pntService=false;var actionArg="&act=wit";var placeArg="";if(this.selectedPlace!=null){placeArg+="&pid="+this.selectedPlace.getID();if(this.selectedPlace.getType()==PPlaceType.COUNTRY){actionArg="&act=ai"}}else if(this.selectedCustomRegion!=null){placeArg+="&customid="+this.selectedCustomRegion.getID()+"&ctypeid="+this.selectedCustomRegion.ctypeid}url=PEnvironment.boundaryjsUrl+actionArg+"&olp=50&ind="+this.selectedIndicator.getID()+"&per="+this.selectedIndicator.getPeriod()+placeArg;url+="&pdi="+boundaryMatrix.getDefinitionIdForTypeId(this.selectedPlaceType.getId())}else{return}if(this.selectedOverlaySet!=null){url+="&ftr="+_.pluck(this.selectedOverlaySet.getFilters(),"id")}url+="&name="+encodeURIComponent(this.getCSVName());url+="&fmt=csv&nct=t&bgg=1"}else if(this.isAnalytics){if(this.listLink==null){return}pntService=false;url=PEnvironment.analyticsCsvUrl+"&parms="+encodeURIComponent(this.listLink.parms);url+="&name="+encodeURIComponent(this.getCSVName())}$("#error-banner").hide();this.toggleNextButton(3,false);var ajaxOptions={url:url,success:function(response){self.toggleNextButton(3,true);var service=pntService?"pnt":"tc";if((self.isMaps||self.isTables)&&response!=null&&response[service]&&response[service].status&&response[service].status=="ok"||self.isAnalytics&&response!=null&&response.length>0&&response[0]==242){var time="";if((self.isMaps||self.isTables)&&response[service].et!=null){time=response[service].et}$("#download-banner").html(self.getDownloadBannerMessage(time));$("#download-banner").slideDown(200);$(".modal-btn-next-btn[data-tab='3']").hide();$("#export-close-button").show();$(".csv-export-instructions[data-tab='3']").hide();$("#step-three-criteria-box").css("max-height","180px");self.optionsChanged=false;self.trackDownload()}else{$("#error-banner").slideDown(200)}},error:function(){self.toggleNextButton(3,true);$("#error-banner").slideDown(200)}};if(pntService){ajaxOptions.type="POST";ajaxOptions.dataType="json";ajaxOptions.data='{"post": true}';var selfish=self;var url=PEnvironment.sessionUrl+"&act="+P.WKPrint.GET_PENDING+"&pending=download";ajax.call({url:url,dataType:"json",success:function(response){$("#custom-error-banner").hide();if(response!=null&&response.session==null){ajax.call(ajaxOptions)}else{$("#custom-error-banner").html("Please wait for your download from <strong>"+response.session.time+"</strong> to generate before attempting a new download.");$("#custom-error-banner").slideDown(200);selfish.toggleNextButton(3,true)}}})}else{ajax.call(ajaxOptions)}};CSVGenerate=function(type,data,options){this.type=type;this.data=data;if(options!=null){this.options=options}else{this.options={}}if(type=="indicator"){if(this.options.placeOrder==null||$.isArray(this.options.placeOrder)!==true||this.options.placeOrder.length==0){this.options.placeOrder=[]
;for(curPlace in this.data){this.options.placeOrder.push(curPlace)}}if(this.options.indOrder==null||$.isArray(this.options.indOrder)!==true||this.options.indOrder.length==0){this.options.indOrder=[];for(curInd in this.data[this.options.placeOrder[0]]){this.options.indOrder.push(curInd)}}if(this.options.periodOrder==null||$.isArray(this.options.periodOrder)!==true||this.options.periodOrder.length==0){this.options.periodOrder=[];for(i in this.data){var row=this.data[i];for(j in row){var subrow=row[j];for(k in subrow){if(this.options.periodOrder.indexOf(k)!==-1){}else{this.options.periodOrder.push(k)}}}}}}};CSVGenerate.prototype.generate=function(noDownload){var csv;if(this.type=="indicator"){csv=this._buildIndicatorCSV()}else if(this.type=="point"){csv=this._buildPointCSV()}else{}if(noDownload!=null&&noDownload===true){return csv}else{if(csv!=null&&csv!==false){var name;if(this.options.filename!=null){name=this.options.filename}else{var date=new Date;var dateString=date.getUTCFullYear()+"-"+this._formatDateComponent(date.getUTCMonth()+1)+"-"+this._formatDateComponent(date.getUTCDate())+" "+this._formatDateComponent(date.getUTCHours())+this._formatDateComponent(date.getUTCMinutes());name="PolicyMap Data "+dateString+"UTC"}download(csv,name+".csv","text/csv");return true}else{return false}}};CSVGenerate.prototype._buildIndicatorCSV=function(){var csvs={};for(var i=0;i<this.options.placeOrder.length;i++){var curPlace=this.options.placeOrder[i];var curPlaceData=this.data[curPlace];for(var j=0;j<this.options.indOrder.length;j++){var curInd=this.options.indOrder[j];var curIndData=curPlaceData[curInd];if(csvs[curInd]==null){csvs[curInd]='"'+this._clean(curInd)+'"\n"Location"';for(var k=0;k<this.options.periodOrder.length;k++){var curPeriod=this.options.periodOrder[k];csvs[curInd]+=',"'+this._clean(curPeriod)+'"'}csvs[curInd]+="\n"}csvs[curInd]+='"'+this._clean(curPlace)+'"';for(var k=0;k<this.options.periodOrder.length;k++){var curPeriod=this.options.periodOrder[k];csvs[curInd]+=',"'+this._clean(curIndData[curPeriod]||"",true)+'"'}csvs[curInd]+="\n"}}if(this.options.sources!=null&&$.isArray(this.options.sources)!=true&&typeof this.options.sources=="object"){for(curInd in this.options.sources){var curIndSources=this.options.sources[curInd];if($.isArray(curIndSources)&&curIndSources.length>0){for(var i=0;i<curIndSources.length;i++){csvs[curInd]+='"Source: '+curIndSources[i]+'"\n'}csvs[curInd]+="\n"}}}var csv="";if(this.options.name!=null){csv='"'+this._clean(this.options.name)+'"\n\n\n'}for(var i=0;i<this.options.indOrder.length;i++){csv+=csvs[this.options.indOrder[i]];csv+="\n\n"}if(this.options.sources!=null&&$.isArray(this.options.sources)&&this.options.sources.length>0){for(var i=0;i<this.options.sources.length;i++){var curSource=this.options.sources[i];csv+='"Source: '+curSource+'"\n'}csv+="\n"}csv+='"When using PolicyMap data in your work, please consult the Terms of Use and the instructions for Citing Us:"\n"https://www.policymap.com/terms/"\n"https://www.policymap.com/citing/"';return csv};CSVGenerate.prototype._buildPointCSV=function(){return""};CSVGenerate.prototype._formatDateComponent=function(value){var stringValue=String(value);if(stringValue.length==1){stringValue="0"+stringValue}return stringValue};CSVGenerate.prototype._clean=function(value,isDataValue){value=String(value);if(isDataValue===true&&(value=="null"||value=="-9999"||value=="-99999999"||typeof value=="undefined")){value="N/A"}return value.replace('"','""')};function dataloaderPageLoader(){function initializeGlobals(){map=new PMap(document.getElementById("map"));P.instances.map.mapOptions=new TrfMapBoundaries($(".map-boundaries-menu"));P.instances.map.addControl(new PLargeMapControl);P.instances.map.disableDoubleClickZoom();P.instances.map.disableKeyboard();P.instances.map.enableScrollWheelZoom();datasetSearch=new DatasetSearch;datasetSearch.reset()}function initializePageElementsSubscriber(){if(!isSubscriber()&&productProperty.getValue("auto_login")){return}if(isSubscriber()){switchTabs(1);$("#simple, #spreadsheet").attr("disabled",null);if(!PEnvironment.isPolicyMap){var isUniversity=productProperty.getValue("site_license_university");var isRequireLogin=productProperty.getValue("require_login");var isDisablePublic=productProperty.getValue("disable_dataloader_public_permission");if(isUniversity){$("#permlabel2").text(" All University Users")}else{$("#permlabel2").text(" All Site License Users")}if(isRequireLogin&&isDisablePublic){$("#permrow2").hide()}else{$("#permrow2").show()}if(isAutoLoginUser()){$("#permrow1").hide();$("#permrow3").hide()}else{$("#permrow1").show();$("#permrow3").show()}}if(isTrial()){var text="Available on a limited basis for trial users. Upload up to "+trialUserMaxDatasets+" CSV files with no more than "+trialUserMaxDatasetPoints+" addresses each.";getUserDatasets(function(datasets){if(typeof datasets!="string"){var availableDatasets=Math.max(trialUserMaxDatasets-datasets.length,0);text+="<br /><br />You currently have "+availableDatasets+" dataset"+(availableDatasets==1?"":"s")+" remaining."}alerter.popup(text,"OK")})}var params=getUrlParams();if(params.di!=null){$("#tab1").hide();$("#tab2").show();$("#tabname1").removeClass("selectedtab");$("#tabname2").addClass("selectedtab");if(params.dit=="si"){loadDataset(params.di,true)}else if(params.dit=="sp"){loadDataset(params.di,false)}else{loadDataset(params.di)}}}else{$("#simple, #spreadsheet").attr("disabled",true);subscribeAlert(null,"subscriber-dataloader")}}function initializePageElements(){initializePageElementsSubscriber();resetDataloaderMapZoom();positionAddressBox();addressCancel();updateTitleCharRemaining(true);$window.resize(function(){positionAddressBox()});textboxArr=["addressStreet","addressCity","addressState","addressZip"];for(var i=0;i<=textboxArr.length;i++){var curTextBox=$("#"+textboxArr[i])[0];if(curTextBox){var enterKeyEvent=function(textbox){return PEvent.addListener(textbox,"keydown",function(e){var e=e||window.event;if(e&&e.keyCode==13){addressFind()}})}(curTextBox)}}var allLinks=document.links;for(var i=0;i<allLinks.length;i++){var currentLink=allLinks[i];if(!$(currentLink).hasClass("noAlert")){currentLink.onclick=leavingDataloader}}$(window).bind(P.events.ACCOUNT_SECTION_INIT,function(){$("#logoutButton").off("click");$("#logoutButton").click(function(){leavingDataloader("/logout")})});$("#csvFileSelector").val("");updateCSVFilename("");$("#csvUpload").ajaxForm({dataType:"json",clearForm:false,iframe:true,success:function(response){csvUploadResponse(response)},error:function(){csvUploadResponse(false)}});toggleMap(false);showExpirationModal()}var debug=new P.Debug;debug.override("MPL");var $window=$(window);if(productProperty.getValue("disable_dataloader")==true||isDataloaderDisabledForUser()==true){return}session.checkUrl();if(PEnvironment.isPolicyMap){platformRebuildPopup=new PlatformRebuildPopup}initializeGlobals();initializePageElements();initializeSearchForm({noDataSearch:true,placeholderLocation:productProperty.exists("search_location_placeholder")?productProperty.getValue("search_location_placeholder"):"City, County, State, or Zip"});PEvent.addListener(P.instances.map,"dblclick",function(){P.instances.map.cancelIdentify=true;P.instances.map.closeInfoWindow()});PEvent.addListener(P.instances.map,"moveend",function(){session.put("curLat",P.instances.map.getCenter().lat());session.put("curLng",P.instances.map.getCenter().lng())});var layerpoints=P.instances.map.getCurrentMapType().getActiveLayerPoints();PEvent.addListener(P.instances.map,"zoomend",function(){session.put("curZoom",P.instances.map.getZoom());P.instances.map.mapOptions.populate();for(var i in layerpoints){if(P.instances.map.getScale()<=layerpoints[i].maxScale&&layerpoints[i].isOn()){if(!layerpoints[i].pointDataset.isOn())P.instances.map.addOverlaySet(layerpoints[i].pointDataset);layerpoints[i].pointDataset.on()}else if(P.instances.map.getScale()>layerpoints[i].maxScale&&layerpoints[i].isOn()){if(layerpoints[i].pointDataset.isOn())P.instances.map.removeOverlaySet(layerpoints[i].pointDataset);layerpoints[i].pointDataset.off()}}labelManager.updateMapLabels()});$(".map-options__clear-location").click(function(event){event.preventDefault();clearLocationAlert()});$window.on(P.events.LOGGED_IN,function(){if(isDataloaderAvailable()!==true){setWindowLocation("/maps")}initializePageElementsSubscriber()});PEvent.addListener(window,"beforeunload",function(){session.save()});$window.unload(function(){PUnload()})}function switchTabs(selectedTab){if(!isSubscriber()){return}if(selectedTab==1){$("#tab1").show();$("#tab2").hide();$("#tabname1").addClass("selectedtab");$("#tabname2").removeClass("selectedtab");updateMapOverlayText();if(sitecreator&&sitecreator.getEditType()=="create"){$("#datasetEditor").show();alerter.popup({content:"Do you wish to create a new dataset, or continue working on the dataset that is currently open?",useImage:true,addCancel:false,buttons:[{label:"Create New Dataset",callback:function(){$("#datasetEditor").hide();clearDataset()}},{label:"Continue Working",callback:function(){}}]})}else{$("#datasetEditor").hide()}}else if(selectedTab==2){$("#tab1").hide();$("#tab2").show();$("#datasetEditor").hide();$("#tabname1").removeClass("selectedtab");$("#tabname2").addClass("selectedtab");updateMapOverlayText();if(sitecreator&&sitecreator.getEditType()=="edit"){$("#datasetEditor").show()}else{$("#datasetEditor").hide();updateUserDatasetList()}}}function whichDataloaderTab(){if($("#tab1").is(":visible")&&!$("#tab2").is(":visible")){return 1}else if($("#tab2").is(":visible")&&!$("#tab1").is(":visible")){return 2}else{return null}}function switchLoadMethod(selectedOption){if(sitecreator){if(sitecreator.getEditType()=="edit"||sitecreator.getEditType()=="create"&&sitecreator.getType()!=selectedOption){alerter.popup("Starting a new dataset will require closing the dataset you are currently editing. Do you wish to continue?","No","Yes",function(){$("#datasetEditor").hide();clearDataset();$("input[name='newloadmethod']").filter("[value="+selectedOption+"]").attr("checked",true);createNewDataset(selectedOption)},function(){$("input[name='newloadmethod']").filter("[value="+sitecreator.getType()+"]").attr("checked",true);return})}else{return}}else{createNewDataset(selectedOption)}}function toggleSection(section){if(section==1){$("#permissionBox").toggle();if($("#permissionBox").is(":visible")){$("#expandPermissionSign").text("(-)")}else{$("#expandPermissionSign").text("(+)")}}else if(section==2){$("#sitesBox").toggle();if($("#sitesBox").is(":visible")){$("#expandSitesSign").text("(-)")}else{$("#expandSitesSign").text("(+)")}}}function permissionSelected(selectedRadio){if(selectedRadio==null){return}if(parseInt($(selectedRadio).val())==3){$("#userlist").show()}else{$("#userlist").hide()}toggleSiteCreator(true)}function createNewDataset(type){if(type=="simple"){sitecreator=new DataloaderSimpleSiteCreator;sitecreator.setEditType("create");sitelist=new DataloaderSimpleSiteList;$("#da1").val("");$("#da1").attr("disabled",null);P.instances.map.disableDoubleClickZoom()}else if(type=="spreadsheet"){sitecreator=new DataloaderSiteCreator;sitecreator.setEditType("create");$("#da1").val("");$("#da1").attr("disabled",true);P.instances.map.enableDoubleClickZoom()}else{return}updateTitleCharRemaining();updateDatasetIcons();resetEmailBoxes();$("#permissionStep").hide();$("#iconStep").hide();$("#importCSVStep").hide();$(".stepNumber").show();$("#datasetEditor").fadeIn();$("#dasection").hide();updateMapOverlayText()}function toggleSiteCreator(changeModifiedFlag){var scEnable=true;if(!sitecreator||sitecreator&&sitecreator.getLoading()==true){return}if(changeModifiedFlag==true){sitecreator.currentSet.setModified(true)}var datasetTitle=$.trim($("#setTitle").val());if(datasetTitle==""){scEnable=false}else{if(!$("#permissionStep").is(":visible")){$("#permissionStep").fadeIn()}}var displayIconAndCSVStep=function(){if(!$("#iconStep").is(":visible")){$("#iconStep").fadeIn()}if(sitecreator.getType()=="spreadsheet"&&sitecreator.getEditType()=="create"&&sitecreator.currentSet.getId()==null&&!$("#importCSVStep").is(":visible")){$("#importCSVStep").fadeIn()}};var setPerm=$("input[name='permsetting']:checked").val();if(setPerm!=null){if(setPerm==1||setPerm==2){displayIconAndCSVStep()}else if(setPerm==3){updateDatasetUsers();if(sitecreator.currentSet.getUsers().length<1){scEnable=false}else{displayIconAndCSVStep()}}else{scEnable=false}}else{scEnable=false}if(sitecreator.getType()=="simple"){if(scEnable&&!sitecreator.isEnabled()){if(sitecreator.isReady()){sitecreator.enable();$(".datasetFunctions").show();$("#loadDatasetOnMap").show();$(".sitesSection").show();$(".beginAdding").hide()}else{$("#beginAdding").fadeIn(500)}}else if(!scEnable){if(sitecreator.isEnabled()){sitecreator.disable();$(".datasetFunctions").hide();$("#loadDatasetOnMap").hide();$(".sitesSection").hide()}$(".beginAdding").fadeOut(500)}}else if(sitecreator.getType()=="spreadsheet"){var csvFileSelector=$("#csvFileSelector");if(csvFileSelector.is(":visible")){var csvFile=csvFileSelector.val();if(csvFile==null||csvFile==""){scEnable=false}}if(scEnable){if(sitecreator.currentSet.isSaved()){$("#importSpreadsheet").fadeOut(500);sitecreator.enableMap();$(".datasetFunctions").show();$("#loadDatasetOnMap").show();$("#editSpreadsheetSites").show();$(".geocodeTips").show()}else{$("#importSpreadsheet").fadeIn(500);sitecreator.disableMap();$(".datasetFunctions").hide();$("#loadDatasetOnMap").hide();$("#editSpreadsheetSites").hide();$(".geocodeTips").hide()}}else{$("#importSpreadsheet").fadeOut(500);sitecreator.disableMap();$(".datasetFunctions").hide();$("#loadDatasetOnMap").hide();$("#editSpreadsheetSites").hide();$(".geocodeTips").hide()}}}function updateDatasetIcons(){if(sitecreator&&sitecreator.currentSet){var pinUrl=sitecreator.currentSet.getIcon().image;var iconSpans=$(".currentSiteIcon");$.each(iconSpans,function(index){$(this).html("<img src='"+pinUrl+"' border='0' alt='Icon' />")})}}function updateTitleCharRemaining(firstTime){var maxChars=50;if(firstTime){$("#setTitle").attr("maxlength",maxChars)}var currentTitle=$("#setTitle").val();var remaining=maxChars-currentTitle.length;$("#titleCharsRemaining").text("("+remaining+" characters remaining)")}function addEmailBox(){emailboxCount++;$("#emailboxes").append('<div id="email'+emailboxCount+'" class="emailboxHolder"><input type="text" placeholder="e.g., jane.doe@gmail.com" class="textbox emailbox" id="emailbox'+emailboxCount+'" onkeyup="toggleSiteCreator(true);" onblur="validateEmailBox(this);" /> <a onclick="removeEmailBox('+emailboxCount+');"><img src="images/close_button2.gif" alt="Delete" title="Delete" class="emailDelete" border="0" /></a><br/></div>');if($(".emailboxHolder").length==2){$(".emailDelete").show();$("#deleteAllEmailsLink").show()}}function removeEmailBox(num){var removeBox=$("#email"+num);removeBox.remove();if($(".emailboxHolder").length==1){$(".emailDelete").hide();$("#deleteAllEmailsLink").hide()}toggleSiteCreator()}function resetEmailBoxes(){var boxes=$(".emailboxHolder");if(boxes.length>0){boxes.each(function(){$(this).remove()})}$("#deleteAllEmailsLink").hide();emailboxCount=1;$("#emailboxes").html('<div id="email1" class="emailboxHolder"><input type="text" placeholder="e.g., jane.doe@gmail.com" class="textbox emailbox" id="emailbox1" onkeyup="toggleSiteCreator(true);" onblur="validateEmailBox(this);" /> <a onclick="removeEmailBox('+emailboxCount+');"><img src="images/close_button2.gif" alt="Delete" title="Delete" class="emailDelete" border="0" style="display: none;" /></a><br/></div>')}function resetDatasetUsersAlert(){alerter.popup("Are you sure you wish to remove all email addresses from the list?","No","Yes",function(){resetDatasetUsers()},function(){return})}function resetDatasetUsers(){resetEmailBoxes();sitecreator.currentSet.clearUsers();toggleSiteCreator()}function updateDatasetUsers(){var users=[];var boxes=$(".emailbox");if(boxes.length>0){boxes.each(function(){if($(this).val()!=null&&$.trim($(this).val())!=""){var dl=false;if(!sitecreator.currentSet.isSimple()){dl=sitecreator.currentSet.dlperm}users.push(new DataloaderSetUser($(this).val().toLowerCase(),dl))}})}sitecreator.currentSet.setUsers(users)}function recreateUserEmailBoxes(){var turnOffLoading=false;if(sitecreator.getLoading()==false){sitecreator.setLoading(true);turnOffLoading=true}var users=sitecreator.currentSet.getUsers();resetEmailBoxes();for(var i=0;i<users.length;i++){if(i>0){addEmailBox()}$("#emailbox"+(i+1)).val(users[i].getEmail())}if(turnOffLoading){sitecreator.setLoading(false)}}function validateEmailBox(textbox){var textbox=$(textbox);var email=textbox.val();if(!dlValidateEmailAddress(email)){alerter.popup("This email address is not valid.","OK");textbox.addClass("badtextbox")}else{textbox.removeClass("badtextbox")}}function dlValidateEmailAddress(email){return/^([A-Za-z0-9_\-\.\+])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/.test(email)}function highlightBadEmailBoxes(badEmails){$(".emailbox").each(function(){var curTextbox=$(this);if($.inArray(curTextbox.val(),badEmails)!=-1){curTextbox.addClass("badtextbox")}})}function toggleDataloaderIconSelector(link){sitecreator.pinIconSelector.toggle($(link),$("#dataloaderPane"),function(selectedIcon,changed){if(changed){sitecreator.currentSet.setIcon(selectedIcon.pinid);updateDatasetIcons();if(sitecreator.getType()=="spreadsheet"){sitecreator.updateMapOverlaySet()}}})}function saveButton(){if(sitecreator&&sitecreator.getType()=="simple"){if(sitecreator.currentSite!=null){var siteId=null;if(sitecreator.currentSite.isSaved()){siteId=sitecreator.currentSite.getId()}sitecreator.savePointInfoBubbleCheck(siteId)}else{saveDatasetProperties()}}else if(sitecreator&&sitecreator.getType()=="spreadsheet"){saveDatasetProperties()}}function initialDatasetCheck(){if($.trim($("#setTitle").val())==""){alerter.popup("In order to save, you must enter a title for the dataset.","OK");return false}var setPerm=$("input[name='permsetting']:checked").val();if(setPerm==3){var boxes=$(".emailbox");var badEmail=false;boxes.each(function(){var currentEmailAddress=$(this).val();if($.trim(currentEmailAddress)!=""&&!dlValidateEmailAddress(currentEmailAddress)){$(this).addClass("badtextbox");badEmail=true}else{if($(this).hasClass("badtextbox")){$(this).removeClass("badtextbox")}}});if(badEmail){alerter.popup("The highlighted email addresses are not valid.","OK");return false}updateDatasetUsers();recreateUserEmailBoxes()}else{if(setPerm!=1&&setPerm!=2){$("input[name=permsetting]")[0].click()}}return true}function saveDatasetProperties(callback){disableSaveButtons();var finished=function(success,displayNoCallbackSuccess){if(callback!=null){callback(success)}else{if(success&&displayNoCallbackSuccess){saveDatasetAlert()}}enableSaveButtons();return};if(!initialDatasetCheck()){finished(false);return}var simple=sitecreator.getType()!="spreadsheet";var datasetTitle=$.trim($("#setTitle").val());var datasetIdArg="";if(sitecreator.currentSet.isSaved()){datasetIdArg="&di="+sitecreator.currentSet.getId()}var setPerm=$("input[name='permsetting']:checked").val();sitecreator.currentSet.setTitle(datasetTitle);sitecreator.currentSet.setPermission(setPerm);if(setPerm==3){updateDatasetUsers()}var da1=$("#da1");if(da1.length>0){if($.trim(da1.val())==""){da1.val(session.get("_useremail"))}sitecreator.currentSet.da1=da1.val()}else{sitecreator.currentSet.da1=null}var toSend=["id","title","icon","permission","simple","users","da1","saved","email","download"];var subType;var actionString;var postData;if(simple){subType="dlsi";if(sitecreator.currentSet.isSaved()){actionString="u"}else{actionString="c"}postData=JSON.stringify(sitecreator.currentSet,toSend)}else{subType="dlsp";actionString="sp";postData={dataset:JSON.stringify(sitecreator.currentSet,toSend),uid:sitecreator.datasetUid}}ajax.call({type:"POST",url:PEnvironment.dataServicesUrl+"?ty=data&t="+subType+"&sbr=1&act="+actionString,dataType:"json",data:postData,success:function(result){if(result!=null&&result[subType]!=null&&result[subType].status&&result[subType].status=="ok"){sitecreator.currentSet.setSaved(true);sitecreator.currentSet.setModified(false);if(simple){sitecreator.currentSet.setId(result[subType].id)}session.put("dlo",sitecreator.currentSet.getId());finished(true,true)}else{if(result!=null&&result[subType]!=null&&result[subType].status&&result[subType].status=="noowner"){alerter.popup("The specified dataset owner could not be found.","OK")}else if(result!=null&&result[subType]!=null&&result[subType].status&&result[subType].status=="badusers"){highlightBadEmailBoxes(result[subType].badusers);alerter.popup("One or more of the specified accounts do not exist. Please correct the highlighted email addresses.","OK")}else if(result!=null&&result[subType]!=null&&result[subType].status&&result[subType].status=="trialmax"){alerter.popup("You have reached the maximum of "+trialUserMaxDatasets+" datasets for trial users. <a onclick='showUpgradeModal();' class='simulink'>Subscribe</a> to load more.","OK")}else{alerter.popup("There was an error saving your dataset.","OK")}finished(false)}},error:function(){alerter.popup("There was an error saving your dataset.","OK");finished(false)}})}function saveDatasetAlert(excludeStandardAlert){if(!PEnvironment.isPolicyMap&&!isAutoLoginUser()){var myDataTabName=dnf.getName("myDataTab");var perm=sitecreator.currentSet.getPermission();if(perm==1){alerter.popup("Your dataset has been saved and will be accessible to you from the "+myDataTabName+" tab throughout the site license. To make changes or to delete this dataset, please return to PolicyMap’s Data Loader.","OK")}else if(perm==2){alerter.popup("Your dataset has been saved and will be visible to all site license users. It can be accessed from the "+myDataTabName+" tab throughout the site license. To make changes or to delete this dataset, please return to PolicyMap’s Data Loader.","OK")}else if(perm==3){alerter.popup("Your dataset has been saved and will be visible to select site license users. It can be accessed from the "+myDataTabName+" tab throughout the site license. To make changes or to delete this dataset, please return to PolicyMap’s Data Loader.","OK")}}else{if(excludeStandardAlert==null||excludeStandardAlert!==true){alerter.popup("Your dataset has been saved.","OK")}}}function enableSaveButtons(){$(".disabledSaveButton").hide();$(".enabledSaveButton").show();if($("#disabledEditSpreadsheetSites").is(":visible")){$("#disabledEditSpreadsheetSites").hide();$("#editSpreadsheetSites").show()}}function disableSaveButtons(includeEditSites){$(".enabledSaveButton").hide();$(".disabledSaveButton").show();if($("#editSpreadsheetSites").is(":visible")){$("#editSpreadsheetSites").hide();$("#disabledEditSpreadsheetSites").show()}}function updateUserDatasetList(){$("#datasetlist").html("Loading your datasets...");updateMapOverlayText();getUserDatasets(function(datasets){if(typeof datasets=="string"){$("#datasetlist").text(datasets)}else if(datasets.length<1){$("#datasetlist").html("You do not have any saved datasets.")}else{var siteList="";for(var i=0;i<datasets.length;i++){var currentSet=datasets[i];var currentSetId=currentSet.id;var currentSetOpen=false;if(sitecreator&&sitecreator.currentSet&&sitecreator.currentSet.getId()!=null&&sitecreator.currentSet.getId()==currentSetId){currentSetOpen=true}var html="<div id='datasetlistitem"+currentSetId+"' class='datasetlistitem'><table border='0'><tr>";html+="<td width='100%'>";if(currentSetOpen){html+="<b>"+currentSet.name+" (currently editing)</b><br />"}else{html+="<a onclick='loadDatasetAlert("+currentSetId+", "+currentSet.simple_type+");'>"+currentSet.name+"</a><br />"}html+="<span class='dates'>(Created: "+trimDateYear(currentSet.created)+"; last updated: "+trimDateYear(currentSet.last_updated)+")</span></td>";html+="<td>";if(!currentSetOpen){html+='<a onclick="loadDatasetAlert('+currentSetId+", "+currentSet.simple_type+');"><img src="/images/edit_icon_1.png" onmouseover="this.src=\'/images/edit_icon_2.png\';" onmouseout="this.src=\'/images/edit_icon_1.png\';"  alt="Edit" title="Edit" border="0" /></a>'}html+="</td>";if(PEnvironment.isPolicyMap||productProperty.getValue("site_prefix")=="phila"){html+='<td><a onclick="deleteDatasetAlert('+currentSetId+');"><img class="dataloader_delete" src="/images/delete_icon_1.png" onmouseover="this.src=\'/images/delete_icon_2.png\';" onmouseout="this.src=\'/images/delete_icon_1.png\';" alt="Delete" title="Delete" border="0" /></a></td>'}html+="</tr></table></div>";siteList+=html}$("#datasetlist").html(siteList)}})}function getUserDatasets(callback){ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dl&act=l",dataType:"json",success:function(datasets){if(datasets==null||datasets.dl==null||datasets.dl.errors){callback("There was an error retrieving your datasets.")}else{callback(datasets.dl)}},error:function(){callback("There was an error retrieving your datasets.")}})}function clearDataset(){if(sitecreator&&sitecreator.getType()=="simple"){addressCancel();sitecreator.disable();sitecreator.clearSet();sitecreator=null}else if(sitecreator&&sitecreator.getType()=="spreadsheet"){if(sitecreator.numberOfTabs>0){sitecreator.closeDialog()}sitecreator.disableMap();sitecreator.clearSet();sitecreator=null}if(sitelist){sitelist=null;$("#sitesBox").html("")}$("input[name='newloadmethod']").attr("checked",false);$("#setTitle").val("");$("input[name='permsetting']").attr("checked",false);resetEmailBoxes();$(".permissionSubBox").hide();$(".icon-selector").hide();clearCSVFileSelector();$(".geocodeTips").hide();$(".sitesSection").hide();$(".siteEditingFunction").hide();$(".datasetFunction").hide();var da1=$("#da1");if(da1.length>0){da1.attr("placeholder","Enter user's email address")}P.instances.map.clearOverlays();P.instances.map.clearOverlaySets();P.instances.map.closeInfoWindow();session.remove("dlo");datasetSearch.reset();resetDataloaderMapZoom();updateMapOverlayText()}function clearCSVFileSelector(){var oldFileSelector=$("#csvFileSelector");oldFileSelector.val("");var newFileSelector=oldFileSelector.clone(true);oldFileSelector.replaceWith(newFileSelector);updateCSVFilename("")}function loadDatasetAlert(id,simple){if(sitecreator&&sitecreator.getEditType()=="create"){alerter.popup("Loading this dataset will require closing the dataset currently being created. Do you wish to continue?","No","Yes",function(){loadDataset(id,simple)})}else{loadDataset(id,simple)}}function loadDataset(id,simple){var errorLoadingDataset=function(){alerter.popup("There was an error loading the dataset.","OK");$("#loadingDataset").hide();$("#datasetlist").show()};$("#datasetlist").hide();$("#loadingDataset").show();if(simple==null){ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dl&act=l",dataType:"json",success:function(datasets){if(datasets==null||datasets.dl==null||datasets.dl.errors||datasets!=null&&datasets.responseCode&&datasets.responseCode==400||datasets.dl.length<1){errorLoadingDataset();return}else{var datasetList=datasets.dl;for(var i=0;i<datasetList.length;i++){var curDataset=datasetList[i];if(curDataset.id==id){loadDataset(curDataset.id,curDataset.simple_type);return}}errorLoadingDataset()}},error:function(){errorLoadingDataset()}});return}clearDataset();var finishLoadingDataset=function(dataset){var newSet=buildLoadedSet(dataset,dataset.simple_type);if(dataset.simple_type==true){sitecreator=new DataloaderSimpleSiteCreator(newSet);sitelist=new DataloaderSimpleSiteList}else{sitecreator=new DataloaderSiteCreator(newSet)}sitecreator.setLoading(true);sitecreator.setEditType("edit");$("#setTitle").val(dataset.name);updateTitleCharRemaining();switch(parseInt(dataset.permission)){case 1:case 2:$("input[name='permsetting']").filter("[value="+dataset.permission+"]").click();break;case 3:$("input[name='permsetting']").filter("[value=3]").click();recreateUserEmailBoxes();default:break}updateDatasetIcons();var da1=$("#da1");if(dataset.da1!=null&&da1.length>0){da1.val(dataset.da1)}$("#da1").attr("disabled",null);$("#loadingDataset").hide();$("#datasetlist").html("<span class='returnlink'><a onclick='returnDatasetList();'>&lt;&lt; Return to List of Datasets</a></span><br /><br />");$("#datasetlist").show();$(".stepNumber").hide();$("#importCSVStep").hide();$("#datasetEditor").show();$("#saveDataset").show();$("#deleteDataset").show();$("#loadDatasetOnMap").show();var box=newSet.getBox();if(box){P.instances.map.setCenterBounds(box)}else{resetDataloaderMapZoom()}if(dataset.simple_type){sitelist.refreshList();if(newSet.sites.length>0){$("#downloadSites").show()}else{$("#disabledDownloadSites").show()}P.instances.map.disableDoubleClickZoom();sitecreator.setReady(true)}else{sitecreator.datasetUid=dataset.uid;$("#editSpreadsheetSites").show();$("#downloadSites").show();sitecreator.updateMapOverlaySet();P.instances.map.enableDoubleClickZoom()}sitecreator.setLoading(false);session.put("dlo",newSet.getId());toggleSiteCreator()};var requestArgs;if(simple){requestArgs="?ty=data&t=dlsi&act=g&di="+id}else{requestArgs="?ty=data&t=dlsp&act=g&di="+id}ajax.call({url:PEnvironment.dataServicesUrl+requestArgs,dataType:"json",success:function(dataset){if(dataset==null||dataset.dlsi==null&&dataset.dlsp==null||(dataset.dlsi&&dataset.dlsi.errors||dataset.dlsp&&dataset.dlsp.errors)){errorLoadingDataset()}else{if(dataset.dlsi){finishLoadingDataset(dataset.dlsi)}else{finishLoadingDataset(dataset.dlsp)}}},error:function(){errorLoadingDataset()}})}function buildLoadedSet(dataset,simple){var newSet=new DataloaderSet;newSet.setId(parseInt(dataset.id));newSet.setTitle(dataset.name);var perm=parseInt(dataset.permission);newSet.setPermission(perm);if(perm==3&&dataset.users!=null){newSet.setUsersFromObjects(dataset.users)}newSet.setSaved(true);if(dataset.box){newSet.setBox(dataset.box.xmin,dataset.box.ymin,dataset.box.xmax,dataset.box.ymax)}if(simple){newSet.setSimple(true);newSet.dlperm=false;var sitesLength=dataset.sites.length;for(var i=0;i<sitesLength;i++){var curSite=new DataloaderSimpleSite;curSite.setId(i+1);curSite.setDid(dataset.sites[i].id);curSite.setTitle(dataset.sites[i].title);if(dataset.sites[i].description){curSite.setDescription(dataset.sites[i].description)}if(dataset.sites[i].image){curSite.setImage(dataset.sites[i].image)}curSite.setPoint(new PLatLng(dataset.sites[i].y,dataset.sites[i].x));curSite.createMarker(PinIcons[dataset.icon]);curSite.setSaved(true);newSet.addSite(curSite)}}else{newSet.setSimple(false);newSet.setLabels(dataset.labels);newSet.setSearch(dataset.search);if(perm==3&&dataset.users!=null&&dataset.users.length>0){if(dataset.users[0].download){newSet.dlperm=true}}}newSet.setIcon(dataset.icon);return newSet}function deleteDatasetAlert(id){if(id=="current"){if(sitecreator&&sitecreator.currentSet){id=sitecreator.currentSet.getId()}else{return false}}var alertText;var currentSet=false;if(sitecreator&&sitecreator.currentSet&&sitecreator.currentSet.getId()==id){alertText="This dataset is currently open for editing. Deleting it will remove the dataset and all of its points and attributes. Do you wish to delete this dataset?";currentSet=true}else{alertText="Deleting a dataset will remove the dataset and all of its points and attributes. Do you wish to delete this dataset?"}alerter.popup(alertText,"No","Yes",function(){var f=null;if(currentSet){clearDataset();$("#datasetEditor").hide();f=function(success){if(success==false){alerter.popup("There was an error deleting this dataset.","OK")}if(whichDataloaderTab()==2){updateUserDatasetList()}}}deleteDataset(id,f)})}function deleteDataset(id,callback){ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dl&act=d&di="+id,dataType:"json",success:function(result){if(result==null||result.dl==null||!(result.dl.status&&result.dl.status=="ok")){if(callback!=null){callback(false)}else{alerter.popup("There was an error deleting this dataset.","OK")}}else{if(callback!=null){callback(true)}else{$("#datasetlistitem"+id).fadeOut(1e3,function(){$("#datasetlistitem"+id).remove()
;var datasetListItems=$(".datasetlistitem");if(datasetListItems.length<1){$("#datasetlist").html("You do not have any saved datasets.")}})}}},error:function(){if(callback!=null){callback(false)}else{alerter.popup("There was an error deleting this dataset.","OK")}}})}function returnDatasetList(){alerter.popup("Returning to the list of datasets will require closing the dataset that is currently open. Do you wish to continue?","No","Yes",function(){$("#dasection").hide();$("#datasetEditor").hide();clearDataset();updateUserDatasetList()})}function downloadSites(){var downloadCSV=function(){setWindowLocation(PEnvironment.dataServicesUrl+"?ty=data&t=dl&act=dl&di="+sitecreator.currentSet.getId())};if(sitecreator){if(sitecreator.getType()=="simple"){if(sitecreator.currentSet.isModified()){saveDatasetProperties(function(saveSuccess){if(saveSuccess==true){downloadCSV()}})}else{downloadCSV()}}else if(sitecreator.getType()=="spreadsheet"){downloadCSV()}}}function leavingDataloader(link){if(link==null){return}var self=this;var proceed=function(){if(typeof link=="string"){if(link=="/logout"){nrLogoutSubmit(function(){session.load(true,function(){setWindowLocation("/")})})}else{setWindowLocation(link)}}else{setWindowLocation(self.href)}};if(sitecreator&&sitecreator.isEnabled()){var message;if(typeof link=="string"&&link=="/logout"){message="Are you sure you want to logout? Any items that have not been saved will be lost."}else{message="Are you sure you want to leave this page? Any items that have not been saved will be lost."}alerter.popup(message,"No","Yes",function(){proceed()})}else{proceed()}return false}function resetDataloaderAlert(){if(sitecreator&&sitecreator.getType()=="simple"&&sitecreator.ready===true){alerter.popup("Are you sure you want to discard any points you have not saved and start over at the default view?","No","Yes",resetDataloader)}else if(sitecreator&&sitecreator.getType()=="spreadsheet"&&sitecreator.isMapEnabled()){alerter.popup("Are you sure you want to start over at the default view?","No","Yes",resetDataloader)}}function resetDataloader(){P.instances.map.mapOptions.setToDefault();if(sitecreator&&sitecreator.getType()=="simple"&&sitecreator.currentSite){sitecreator.cancelPointInfoBubble()}clearDataloaderLocation();resetDataloaderMapZoom();session.remove("curZoom");session.removeAllRelevant()}function toggleMap(enabled){if(enabled==true){$("#mapOverlay").fadeOut(800)}else{var mapContainer=$("#dataloaderMapContainer");var mapOverlayBox=$("#mapOverlayBox");mapOverlayBox.css({top:45,left:45,height:mapContainer.height()-90,width:mapContainer.width()-90});updateMapOverlayText();$("#mapOverlay").fadeIn(800)}}function updateMapOverlayText(){var message="";var curTab=whichDataloaderTab();if(curTab==1&&!sitecreator){message="Select a method to load your data on the left."}else if(curTab==2&&!sitecreator){message="Select a dataset from the left to view it on the map."}else if(sitecreator){if(sitecreator.getType()=="simple"){message="Complete the steps on the left, then add points to the map."}else if(sitecreator.getType()=="spreadsheet"){if(sitecreator.currentSet.isSaved()){message="Complete the steps on the left."}else{message="Complete the steps on the left, then import a spreadsheet."}}}$("#mapOverlayBoxText").text(message)}function clearDataloaderLocationAlert(){if(mapstates.currentplace&&mapstates.currentplace.getType()){place=mapstates.currentplace;var alertText="Are you sure you want to clear the location currently displayed - "+place.getLabel()+getState(place)+" ("+place.getType().getName()+")?";alerter.popup(alertText,"No","Yes",clearDataloaderLocation)}else{var alertText="There is currently no location specified. You can do this by entering one in the search bar.";alerter.popup(alertText,"OK")}}function clearDataloaderLocation(){if(P.instances.map.polygons){for(var i=0;i<P.instances.map.polygons.length;i++){P.instances.map.removeOverlay(P.instances.map.polygons[i])}}if(P.instances.map.getInfoWindow()){P.instances.map.closeInfoWindow()}clearPlaceFromSessionAndOtherVariables()}function resetDataloaderMapZoom(){P.instances.map.setCenter(new PLatLng(getDefaultMapLat(),getDefaultMapLng()),getDefaultMapZoom())}function beginAddingSites(){$("#beginAdding").hide();$("#disabledBeginAdding").show();saveDatasetProperties(function(success){if(success==true){sitecreator.setReady(true);toggleSiteCreator();$("#saveDataset").show();$("#deleteDataset").show();$("#disabledDownloadSites").show()}else{$("#disabledBeginAdding").hide();$("#beginAdding").show()}})}function positionAddressBox(){var mapwidth=$("#map").width();var addressboxwidth=$("#addressBox").width();var leftpos=(mapwidth-addressboxwidth)/2;$("#addressBox").css("left",leftpos)}function addressExpand(){$("#collapsedContent").hide();$("#expandedContent").show();$("#addressStreet").focus()}function addressCancel(){addressClear();$("#collapsedContent").show();$("#expandedContent").hide()}function addressClear(){$("#addressStreet").val("");$("#addressCity").val("");$("#addressState").val("");$("#addressZip").val("");$("#errorText").html("")}function addressFind(){var addressObj=new Object;var blankAddress=true;var addressStreet=$.trim($("#addressStreet").val());if(addressStreet!=""){addressObj.address1=addressStreet;blankAddress=false}var addressCity=$.trim($("#addressCity").val());if(addressCity!=""){addressObj.city=addressCity;blankAddress=false}var addressState=$.trim($("#addressState").val());if(addressState!=""){addressObj.state=addressState;blankAddress=false}var addressZip=$.trim($("#addressZip").val());if(addressZip!=""){addressObj.zip=addressZip;blankAddress=false}if(blankAddress){$("#errorText").html("No address provided. Enter an address to locate.<br /><br />");$("#addressStreet").val("");$("#addressCity").val("");$("#addressState").val("");$("#addressZip").val("");return}var geocoder=new PClientGeocoder;geocoder.getLatLngFromAddressObject(addressObj,function(address){if(address.wasFound()){var addrLatLng=new PLatLng(address.y,address.x);if(map.getZoom()<13){map.setCenter(addrLatLng,13)}else{map.setCenter(addrLatLng)}addressCancel();sitecreator.pointSelected(addrLatLng,"geocode",null,address.addr)}else{$("#errorText").html("Address not found. Update field(s) or enter another address.<br /><br />")}})}function removeSimpleSite(siteid){$(".sitecontrols"+siteid).hide();var f=function(siteid){var curSite=sitecreator.currentSet.getSiteById(siteid);ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsi&act=rs&di="+sitecreator.currentSet.getId()+"&si="+curSite.getDid(),dataType:"json",success:function(result){if(result!=null&&result.dlsi!=null&&result.dlsi.status&&result.dlsi.status=="ok"){sitecreator.currentSet.removeSite(siteid);sitelist.refreshList();if(sitecreator.currentSet.sites.length<1){$("#downloadSites").hide();$("#disabledDownloadSites").show()}}else{alerter.popup("There was an error removing this site from the dataset.","OK");$(".sitecontrols"+siteid).show()}},error:function(){alerter.popup("There was an error removing this site from the dataset.","OK");$(".sitecontrols"+siteid).show()}})};if(sitecreator.currentSet.isModified()){saveDatasetProperties(function(success){if(success==true){f(siteid)}else{$("#deletesite"+siteid).show();return}})}else{f(siteid)}}function editSimpleSite(siteid){var site=sitecreator.currentSet.getSiteById(siteid);var point=site.getPoint();var mapBounds=map.getBounds();if(!mapBounds.contains(point)){map.setCenter(point)}sitecreator.pointSelected(point,"edit",siteid)}function openSimpleSiteImage(siteid){var site=sitecreator.currentSet.getSiteById(siteid);if(image=site.getImage()){var siteTitle=site.getTitle();siteTitle=siteTitle.replace(/</g,"&lt;").replace(/>/g,"&gt;");imageAlert(image,"Image for Site: "+siteTitle)}}function generateCreateSimpleSiteLink(lat,lng,address){var createSiteLinkHolder=document.createElement("div");$(createSiteLinkHolder).addClass("point_report_link_holder");$(createSiteLinkHolder).addClass("info_extra_link");var createSiteLink;if(sitecreator&&sitecreator.isEnabled()&&sitecreator.getType()=="simple"){createSiteLink=document.createElement("a");createSiteLink.innerHTML="Create Site";PEvent.addListener(createSiteLink,"click",function(e){if(sitecreator&&sitecreator.isEnabled()){session.remove("lng");session.remove("lat");session.remove("place");map.removeOverlay(map.currentAddressMarker);map.closeInfoWindow();var point=new PLatLng(lat,lng);sitecreator.pointSelected(point,"geocode",null,address);if(e&&e.stopPropagation){e.stopPropagation()}}})}else{createSiteLink=document.createElement("span")}$(createSiteLinkHolder).append(createSiteLink);return createSiteLinkHolder}function updateCSVFilename(filename){var fullPathParts=filename.split("\\");$("#csvFileDisplay").val(fullPathParts[fullPathParts.length-1])}function importSpreadsheet(){$("#importSpreadsheet").hide();$("#disabledImportSpreadsheet").show();sitecreator.displayLoadingDialog("Uploading spreadsheet...","Import Points");if(!initialDatasetCheck()){return}var datasetTitle=$.trim($("#setTitle").val());var setPerm=$("input[name='permsetting']:checked").val();sitecreator.currentSet.setTitle(datasetTitle);sitecreator.currentSet.setPermission(setPerm);if(setPerm==3){updateDatasetUsers()}var da1=$("#da1");if(da1.length>0){if($.trim(da1.val())==""){da1.val(session.get("_useremail"))}sitecreator.currentSet.da1=da1.val()}else{sitecreator.currentSet.da1=null}var toSend=["title","icon","permission","users","da1","email","download"];var datasetString=JSON.stringify(sitecreator.currentSet,toSend);$("#csvDataset").val(datasetString);$("#csvUpload").submit()}function csvUploadResponse(response){if(!sitecreator||sitecreator.getType()!="spreadsheet"){return}if(response===false||response==null||response.dlsp==null||response.dlsp.status==null){$("#disabledImportSpreadsheet").hide();$("#importSpreadsheet").show();alerter.popup("There was an error importing your spreadsheet.","OK");sitecreator.closeDialog();return}if(response.dlsp.status!="ok"){$("#disabledImportSpreadsheet").hide();$("#importSpreadsheet").show();var message;if(response.dlsp.status=="badusers"){highlightBadEmailBoxes(response.dlsp.badusers);message="One or more of the specified accounts do not exist. Please correct the highlighted email addresses."}else if(response.dlsp.status=="notcsv"){message='Only CSVs are accepted for upload. Please ensure your file is in CSV format and ends in ".csv".'}else if(response.dlsp.status=="nocsv"){message="There was an error importing your spreadsheet. Please ensure that your spreadsheet is under 5MB. If you continue to receive this error, contact us at 1-866-923-MAPS (6277) or pmap@policymap.com."}else if(response.dlsp.status=="invalidcsv"){var errors=response.dlsp.csverror.errors;message="The following error(s) were encountered while importing your spreadsheet:<br /><br />";for(var i=0;i<errors.length;i++){message+="- "+errors[i]+"<br />"}if(response.dlsp.csverror.halt){message+="<br />One or more of these errors caused the validation process to halt."}}else if(response.dlsp.status=="trialmax"){message="You have reached the maximum of "+trialUserMaxDatasets+" datasets for trial users. <a onclick='showUpgradeModal();' class='simulink'>Subscribe</a> to load more."}else{message="There was an error importing your spreadsheet."}alerter.popup(message,"OK");sitecreator.closeDialog();return}var continueImport=function(){$("#disabledImportSpreadsheet").hide();sitecreator.selectColumnTypesDialog(response.dlsp.uid,response.dlsp.columns)};if(response.dlsp.warning!=null){alerter.popup(response.dlsp.warning,"OK",null,null,function(){continueImport()})}else{continueImport()}}function editSpreadsheetSites(){if(sitecreator==null||sitecreator.getType()!="spreadsheet"){return null}var openEditSites=function(){sitecreator.getDatasetEditData()};if(sitecreator.currentSet.isModified()){saveDatasetProperties(function(success){if(success){openEditSites()}})}else{openEditSites()}}DataloaderSet=function(){this.id=null;this.title="";this.icon=46;this.iconObject=PinIconsById[this.icon];this.permission=null;this.simple=false;this.users=[];this.labels=false;this.search=false;this.da1=null;this.saved=false;this.modified=false;this.box=null;this.sites=[];this.overlaySet=new POverlaySet;this.columns=null;this.numSites=null;this.columnTypes=[];this.dlperm=false};DataloaderSet.prototype.setId=function(newid){this.id=newid};DataloaderSet.prototype.getId=function(){return this.id};DataloaderSet.prototype.setTitle=function(newtitle){this.title=newtitle};DataloaderSet.prototype.getTitle=function(){return this.title};DataloaderSet.prototype.setIcon=function(iconId){var iconObject=PinIconsById[iconId];if(iconObject!=null){this.icon=iconId;this.iconObject=iconObject;if(this.simple){this.regenerateOverlaySet()}}};DataloaderSet.prototype.getIcon=function(){return this.iconObject};DataloaderSet.prototype.setPermission=function(newperm){this.permission=newperm};DataloaderSet.prototype.getPermission=function(){return this.permission};DataloaderSet.prototype.setSimple=function(newsimple){this.simple=newsimple};DataloaderSet.prototype.isSimple=function(){return this.simple};DataloaderSet.prototype.addUser=function(newuser){this.users.push(newuser)};DataloaderSet.prototype.setUsers=function(users){this.users=users};DataloaderSet.prototype.setUsersFromObjects=function(newusers){this.users=[];for(var i=0;i<newusers.length;i++){var curUser=newusers[i];this.users.push(new DataloaderSetUser(curUser.email,curUser.download))}};DataloaderSet.prototype.getUsers=function(){return this.users};DataloaderSet.prototype.clearUsers=function(){this.users=[]};DataloaderSet.prototype.setLabels=function(labels){this.labels=labels};DataloaderSet.prototype.hasLabels=function(){return this.labels};DataloaderSet.prototype.setSearch=function(search){this.search=search};DataloaderSet.prototype.hasSearch=function(){return this.search};DataloaderSet.prototype.setSaved=function(saved){this.saved=saved};DataloaderSet.prototype.isSaved=function(){return this.saved};DataloaderSet.prototype.setModified=function(modified){this.modified=modified};DataloaderSet.prototype.isModified=function(){return this.modified};DataloaderSet.prototype.setBox=function(minx,miny,maxx,maxy){this.box=new PLatLngBounds(new PLatLng(miny,minx),new PLatLng(maxy,maxx))};DataloaderSet.prototype.clearBox=function(minx,miny,maxx,maxy){this.box=null};DataloaderSet.prototype.getBox=function(){return this.box};DataloaderSet.prototype.addSite=function(newsite){this.sites.push(newsite);this.overlaySet.addOverlay(newsite.createMarker(this.iconObject))};DataloaderSet.prototype.setSite=function(newsite){var sitelocation=this.getSiteLocation(newsite.getId());if(sitelocation!=null){this.sites[sitelocation]=newsite}};DataloaderSet.prototype.removeSite=function(siteid){var sitelocation=this.getSiteLocation(siteid);if(sitelocation!=null){this.overlaySet.removeOverlay(this.sites[sitelocation].getMarker());this.sites.splice(sitelocation,1)}};DataloaderSet.prototype.getSiteById=function(siteid){var returnSite=null;var sitelocation=this.getSiteLocation(siteid);if(sitelocation!=null){returnSite=sites[sitelocation]}return returnSite};DataloaderSet.prototype.getSiteByPoint=function(point){var returnSite=null;for(var i=0;i<this.sites.length;i++){if(this.sites[i].getPoint().equals(point)){returnSite=sites[i];break}}return returnSite};DataloaderSet.prototype.getSites=function(){return this.sites};DataloaderSet.prototype.getOverlaySet=function(){return this.overlaySet};DataloaderSet.prototype.regenerateOverlaySet=function(){var curOverlays=this.overlaySet.getOverlays().slice(0);for(var i=0;i<curOverlays.length;i++){this.overlaySet.removeOverlay(curOverlays[i])}for(var i=0;i<this.sites.length;i++){this.overlaySet.addOverlay(this.sites[i].createMarker(this.iconObject))}};DataloaderSet.prototype.setColumns=function(columns){this.columns=columns;this.columnTypes=[];for(var i=0;i<columns.length;i++){var curColumn=columns[i];if(this.columnTypes[curColumn.type]==null){this.columnTypes[curColumn.type]=[]}this.columnTypes[curColumn.type].push(curColumn.num)}};DataloaderSet.prototype.getColumns=function(){return this.columns};DataloaderSet.prototype.hasColumnType=function(type){if(this.columnTypes[type]==null){return false}else{return this.columnTypes[type].length>0}};DataloaderSet.prototype.getTypeColumns=function(type){if(this.columnTypes[type]==null){return[]}else{return this.columnTypes[type]}};DataloaderSet.prototype.getSiteLocation=function(siteid){var location=null;for(var i=0;i<this.sites.length;i++){if(this.sites[i].getId()==siteid){location=i;break}}return location};DataloaderSetUser=function(email,download){this.email=email;this.download=download};DataloaderSetUser.prototype.setEmail=function(email){this.email=email};DataloaderSetUser.prototype.getEmail=function(){return this.email};DataloaderSetUser.prototype.setDownload=function(download){this.download=download};DataloaderSetUser.prototype.getDownload=function(){return this.download};DataloaderSimpleSite=function(){this.id=null;this.did=null;this.x=null;this.y=null;this.title="";this.description="";this.image="";this.saved=false;this.point=null;this.marker=null};DataloaderSimpleSite.prototype.setId=function(newid){this.id=newid};DataloaderSimpleSite.prototype.getId=function(){return this.id};DataloaderSimpleSite.prototype.setDid=function(newdid){this.did=newdid};DataloaderSimpleSite.prototype.getDid=function(){return this.did};DataloaderSimpleSite.prototype.setTitle=function(title){this.title=title};DataloaderSimpleSite.prototype.getTitle=function(){return this.title};DataloaderSimpleSite.prototype.setDescription=function(description){this.description=description};DataloaderSimpleSite.prototype.getDescription=function(){return this.description};DataloaderSimpleSite.prototype.setImage=function(image){this.image=image};DataloaderSimpleSite.prototype.getImage=function(){return this.image};DataloaderSimpleSite.prototype.setPoint=function(point){this.point=point;this.x=point.lng();this.y=point.lat()};DataloaderSimpleSite.prototype.getPoint=function(){return this.point};DataloaderSimpleSite.prototype.createMarker=function(icon){if(this.point){this.marker=new PMarker(this.point,icon);return this.marker}else{return null}};DataloaderSimpleSite.prototype.getMarker=function(){return this.marker};DataloaderSimpleSite.prototype.setSaved=function(saved){this.saved=saved};DataloaderSimpleSite.prototype.isSaved=function(){return this.saved};DataloaderSimpleSiteCreator=function(set){this.clickEvent=null;this.addressBoxShowEvent=null;this.addressBoxHideEvent=null;this.editType=null;this.loading=false;this.ready=false;this.lastPoint=null;this.enabled=false;this.currentSet=null;this.currentSite=null;this.currentSiteMarker=null;this.currentSiteCounter=1;if(set){this.currentSet=set;this.currentSiteCounter=set.getSites().length+1}else{this.currentSet=new DataloaderSet;this.currentSet.setSimple(true)}this.pinIconSelector=new PinIconSelector(PinIconsById[this.currentSet.icon]);map.addOverlaySet(this.currentSet.getOverlaySet())};DataloaderSimpleSiteCreator.prototype.getType=function(){return"simple"};DataloaderSimpleSiteCreator.prototype.setEditType=function(newedittype){this.editType=newedittype};DataloaderSimpleSiteCreator.prototype.getEditType=function(){return this.editType};DataloaderSimpleSiteCreator.prototype.enable=function(){var self=this;this.clickEvent=PEvent.addListener(map,"click",function(overlay,point){if(point){if($("#expandedContent").is(":visible")){addressCancel()}else if(map.getInfoWindow()&&!map.getInfoWindow().isHidden()){self.cancelPointInfoBubble()}else{var pointArgs="&lat="+point.lat()+"&lng="+point.lng();ajax.call({url:PEnvironment.pointUrl+"&act=u"+pointArgs,dataType:"json",success:function(response){if(response!=null&&response.pnt!=null&&response.pnt.con==true){self.pointSelected(point,"click")}},error:function(){alerter.popup("There was an error creating this site.","OK")}})}}else if(overlay){var sitePoint=new PLatLng(overlay.point.lat(),overlay.point.lng());var site=self.currentSet.getSiteByPoint(sitePoint);if(site){self.pointSelected(sitePoint,"edit",site.getId())}}});if(!map.getInfoWindow()||map.getInfoWindow()&&map.getInfoWindow().visible==false){$("#addressBox").show()}this.addressBoxShowEvent=PEvent.addListener(map,"infowindowopen",function(){$("#addressBox").hide()});this.addressBoxHideEvent=PEvent.addListener(map,"infowindowclose",function(){$("#addressBox").show()});toggleMap(true);this.enabled=true};DataloaderSimpleSiteCreator.prototype.disable=function(){PEvent.removeListener(this.clickEvent);PEvent.removeListener(this.addressBoxHideEvent);PEvent.removeListener(this.addressBoxShowEvent);$("#addressBox").hide();toggleMap(false);this.enabled=false};DataloaderSimpleSiteCreator.prototype.isEnabled=function(){return this.enabled};DataloaderSimpleSiteCreator.prototype.setLoading=function(loading){this.loading=loading};DataloaderSimpleSiteCreator.prototype.getLoading=function(){return this.loading};DataloaderSimpleSiteCreator.prototype.setReady=function(ready){this.ready=ready};DataloaderSimpleSiteCreator.prototype.isReady=function(){return this.ready};DataloaderSimpleSiteCreator.prototype.clearSet=function(){this.clickEvent=null;this.editType=null;this.lastPoint=null;this.currentSet=null;this.currentSite=null;this.currentSiteMarker=null;this.currentSiteCounter=1};DataloaderSimpleSiteCreator.prototype.pointSelected=function(point,selectMethod,editSite,defaultDescription){if(point){if(this.lastPoint==null){this.lastPoint=point}else if(selectMethod=="click"){if(this.lastPoint.lat()==point.lat()&&this.lastPoint.lng()==point.lng()){return}}this.lastPoint=point;if(!editSite){sitelist.refreshList(null,"new");this.currentSite=new DataloaderSimpleSite;this.currentSite.setId(this.currentSiteCounter)}else{sitelist.refreshList(null,editSite);this.currentSite=this.currentSet.getSiteById(editSite)}this.currentSite.setPoint(point);if(defaultDescription){this.currentSite.setDescription(defaultDescription)}var bubbleContents;bubbleContents=this.createPointInfoBubble(editSite);this.currentSiteMarker=new PMarker(point,this.currentSet.getIcon());map.addOverlay(this.currentSiteMarker);$("#downloadSites").hide();$("#disabledDownloadSites").show();map.openInfoWindow(point,bubbleContents);$("#infoWindowClose").hide();$("#siteTitle").focus()}};DataloaderSimpleSiteCreator.prototype.createPointInfoBubble=function(editSite){var siteTitle=this.currentSite.getTitle().replace(/'/g,"&#39;");var siteDescription=this.currentSite.getDescription();var siteImage=this.currentSite.getImage();var html="<table border='0'><tr><td>Title:</td><td><input type='text' maxlength='50' value='"+siteTitle+"' class='dltextbox titletextbox' id='siteTitle' onkeyup='sitelist.updateTempSite(this.value);'></td></tr></table>";html+="<table border='0'><tr><td>Description:</td></tr><tr><td><textarea class='dltextbox desctextbox' id='siteDescription' maxlength='2000' onkeyup='sitelist.updateTempSite(null, this.value);'>"+siteDescription+"</textarea></td></tr></table>";html+="<table border='0'><tr><td>Image:</td><td><input type='text' value='"+siteImage+"' class='dltextbox imagetextbox' id='siteImage' placeholder='URL to Image (Optional)'></td></tr></table>";html+="<div class='buttonRow'><table border='0'><tr>";if(editSite==null){html+="<td><a onclick='sitecreator.savePointInfoBubbleCheck();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&w=66&h=24&tx=Save&sid="+PEnvironment.productId+"' border='0' alt='Save'></a></td>";html+="<td><a onclick='sitecreator.cancelPointInfoBubble();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&w=76&h=24&tx=Cancel&sid="+PEnvironment.productId+"' border='0' alt='Cancel'></a></td>"}else{html+="<td><a onclick='sitecreator.deletePointInfoBubbleCheck();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&w=92&h=24&tx=Delete%20Site&sid="+PEnvironment.productId+"' border='0' alt='Delete Site'></a></td>";html+="<td><a onclick='sitecreator.savePointInfoBubbleCheck("+editSite+");'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&w=54&h=24&tx=Save&sid="+PEnvironment.productId+"' border='0' alt='Save'></a></td>";html+="<td><a onclick='sitecreator.cancelPointInfoBubble();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&w=62&h=24&tx=Cancel&sid="+PEnvironment.productId+"' border='0' alt='Cancel'></a></td>"}html+="</tr></table></div>";var infoBubbleContainer=document.createElement("div");infoBubbleContainer.className="InfoBubbleContents";var f=function(e){if(!e){var e=window.event}e.cancelBubble=true;if(e.stopPropagation){e.stopPropagation()}};PEvent.addListener(infoBubbleContainer,"mousedown",f);PEvent.addListener(infoBubbleContainer,"click",f);var siteInfo=document.createElement("div");siteInfo.className="SiteInfoBubble";siteInfo.innerHTML=html;infoBubbleContainer.appendChild(siteInfo);return infoBubbleContainer};DataloaderSimpleSiteCreator.prototype.savePointInfoBubbleCheck=function(editSite){var self=this;var message="Adding site to dataset...";if(editSite){message="Saving changes to site..."}this.togglePointIndicator(true,message);var siteTitle=$.trim($("#siteTitle").val());if(siteTitle==""){alerter.popup("Please enter a title for this site.","OK");this.togglePointIndicator(false);$("#siteTitle").focus();return}var siteImageField=$("#siteImage");var siteImage=$.trim(siteImageField.val());if(siteImage&&siteImage!=""){if(!(siteImage.indexOf("http://")==0||siteImage.indexOf("https://")==0)){siteImage="http://"+siteImage;siteImageField.val(siteImage)}var image=$("<img />");image.load(function(){self.saveDatasetCheck("save",editSite)});image.error(function(){alerter.popup("Unable to load the specified image.","OK");self.togglePointIndicator(false)});image.attr("src",siteImage)}else{this.saveDatasetCheck("save",editSite)}};DataloaderSimpleSiteCreator.prototype.savePointInfoBubble=function(editSite){var self=this;var newSite=this.currentSite;newSite.setTitle($.trim($("#siteTitle").val()));newSite.setDescription($("#siteDescription").val());var siteImageField=$("#siteImage");var siteImage=$.trim(siteImageField.val());if(siteImage&&siteImage!=""){this.currentSite.setImage(siteImage)}if(editSite){newSite.setDid(this.currentSite.getDid());newSite.setSaved(true)}var siteString=JSON.stringify(newSite,["did","x","y","title","description","image","saved"]);ajax.call({type:"POST",url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsi&sbr=1&act=ss&di="+this.currentSet.getId(),dataType:"json",data:siteString,success:function(result){if(result!=null&&result.dlsi!=null&&result.dlsi.status&&result.dlsi.status=="ok"&&result.dlsi.did){self.savePointInfoBubbleFinish(result.dlsi.did,result.dlsi.box,editSite)}else if(result!=null&&result.dlsi!=null&&result.dlsi.status&&result.dlsi.status=="trialmax"){alerter.popup("You have reached the maximum of "+trialUserMaxDatasetPoints+" points for trial users. <a onclick='showUpgradeModal();' class='simulink'>Subscribe</a> to load more.","OK");self.togglePointIndicator(false)}else{alerter.popup("There was an error adding this site to the dataset.","OK");self.togglePointIndicator(false)}},error:function(){alerter.popup("There was an error adding this site to the dataset.","OK");self.togglePointIndicator(false)}})};DataloaderSimpleSiteCreator.prototype.savePointInfoBubbleFinish=function(did,box,editSite){this.currentSite.setDid(did);this.currentSite.setTitle($.trim($("#siteTitle").val()));this.currentSite.setDescription($("#siteDescription").val());var siteImageField=$("#siteImage");var siteImage=$.trim(siteImageField.val());if(siteImage&&siteImage!=""){this.currentSite.setImage(siteImage)}else{this.currentSite.setImage("")}this.currentSite.setSaved(true);this.currentSite.setDid(did);if(editSite==null){this.currentSet.addSite(this.currentSite)}else{this.currentSet.setSite(this.currentSite)}map.removeOverlay(this.currentSiteMarker);this.currentSite=null;this.currentSiteMarker=null;if(editSite==null){this.currentSiteCounter++}map.closeInfoWindow();sitelist.refreshList();if(box){this.currentSet.setBox(box.xmin,box.ymin,box.xmax,box.ymax)}$("#disabledDownloadSites").hide();$("#downloadSites").show()};DataloaderSimpleSiteCreator.prototype.deletePointInfoBubbleCheck=function(editSite){this.togglePointIndicator(true,"Removing site from dataset...");this.saveDatasetCheck("delete")};DataloaderSimpleSiteCreator.prototype.deletePointInfoBubble=function(){var self=this;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsi&act=rs&di="+this.currentSet.getId()+"&si="+this.currentSite.getDid(),dataType:"json",success:function(result){if(result!=null&&result.dlsi!=null&&result.dlsi.status&&result.dlsi.status=="ok"){self.deletePointInfoBubbleFinish(result.dlsi.box)}else{alerter.popup("There was an error removing this site from the dataset.","OK");self.togglePointIndicator(false)}},error:function(){alerter.popup("There was an error removing this site from the dataset.","OK");self.togglePointIndicator(false)}})};DataloaderSimpleSiteCreator.prototype.deletePointInfoBubbleFinish=function(box){var currentId=this.currentSite.getId();map.removeOverlay(this.currentSiteMarker);this.currentSite=null;this.currentSiteMarker=null;this.currentSet.removeSite(currentId);sitelist.refreshList();map.closeInfoWindow();if(this.currentSet.sites.length<1){$("#downloadSites").hide();$("#disabledDownloadSites").show()}else{$("#disabledDownloadSites").hide();$("#downloadSites").show()}if(box){this.currentSet.setBox(box.xmin,box.ymin,box.xmax,box.ymax)}else{this.currentSet.clearBox()}};DataloaderSimpleSiteCreator.prototype.saveDatasetCheck=function(act,editSite){var self=this;if(this.currentSet.isModified()){saveDatasetProperties(function(success){if(success==true){if(act=="save"){self.savePointInfoBubble(editSite)}else if(act=="delete"){self.deletePointInfoBubble()}}else{self.togglePointIndicator(false);return}})}else{if(act=="save"){this.savePointInfoBubble(editSite)}else if(act=="delete"){this.deletePointInfoBubble()}}};DataloaderSimpleSiteCreator.prototype.togglePointIndicator=function(turnOn,message){if($("#siteSaveIndicator").length>0&&turnOn==false){$("#siteSaveIndicator").remove();$(".SiteInfoBubble").show()}else if($("#siteSaveIndicator").length==0&&turnOn==true){var saveIndicator=document.createElement("div");saveIndicator.className="SiteSaveIndicator";saveIndicator.id="siteSaveIndicator";if(message==null){message="Saving..."}var html="<div style='width:232px; height:1px;'>&nbsp;</div>";html+="<br /><br /><br /><img src='/images/busy.gif' /><br /><br />"+message;saveIndicator.innerHTML=html;var infoBubbleContents=$(".InfoBubbleContents");var siteInfoBubble=$(".SiteInfoBubble");siteInfoBubble.hide();infoBubbleContents.append(saveIndicator)}};DataloaderSimpleSiteCreator.prototype.cancelPointInfoBubble=function(){map.removeOverlay(this.currentSiteMarker);this.currentSite=null;this.currentSiteMarker=null;sitelist.refreshList();map.closeInfoWindow();if(this.currentSet.sites.length<1){$("#downloadSites").hide();$("#disabledDownloadSites").show()}else{$("#disabledDownloadSites").hide();$("#downloadSites").show()}};DataloaderSimpleSiteList=function(){this.currentPage=1;this.sitesPerPage=5};DataloaderSimpleSiteList.prototype.setSitesPerPage=function(sitesPerPage){this.sitesPerPage=sitesPerPage};DataloaderSimpleSiteList.prototype.refreshList=function(page,inProcess){$("#sitesBox").text("");sites=sitecreator.currentSet.getSites().slice(0);if(inProcess=="new"){sites.push(new DataloaderSimpleSite);inProcess=sites.length-1}else if(inProcess!=null){inProcess=this.getSiteLocation(sites,inProcess)}var numPages=0;var numSites=sites.length;if(sites.length>this.sitesPerPage){var numPages=Math.ceil(numSites/this.sitesPerPage);if(inProcess!=null){page=Math.ceil((inProcess+1)/this.sitesPerPage)}else{if(!page){page=this.currentPage}}if(page!=1){if(page=="last"||page>numPages){page=numPages}var firstSiteNum=(page-1)*this.sitesPerPage
;for(var i=firstSiteNum;i<firstSiteNum+this.sitesPerPage;i++){if(sites[i]==null){break}$("#sitesBox").append(this.getSingleSiteInfoBox(sites[i],page,inProcess!=null&&inProcess==i))}}else{page=1;for(var i=0;i<this.sitesPerPage;i++){if(sites[i]==null){break}$("#sitesBox").append(this.getSingleSiteInfoBox(sites[i],page,inProcess!=null&&inProcess==i))}}}else{for(var i=0;i<numSites;i++){var curSite=sites[i];$("#sitesBox").append(this.getSingleSiteInfoBox(sites[i],1,inProcess!=null&&inProcess==i))}}if(numPages>0){var htmlPages='<br /><div class="sitesPageLinks">Pages: ';for(var i=0;i<numPages;i++){var pageLinkNum=i+1;var firstSite=this.sitesPerPage*i+1;var lastSite=this.sitesPerPage*i+this.sitesPerPage;if(page==i+1||!page&&i==0){htmlPages+=""+firstSite+"-"+lastSite+" "}else{htmlPages+='<a onclick="sitelist.refreshList('+pageLinkNum+');">'+firstSite+"-"+lastSite+"</a> "}}htmlPages+="</div>";$("#sitesBox").append(htmlPages)}this.currentPage=page};DataloaderSimpleSiteList.prototype.getSiteLocation=function(sitearray,siteid){var location=null;for(var i=0;i<sitearray.length;i++){if(sitearray[i].getId()==siteid){location=i;break}}return location};DataloaderSimpleSiteList.prototype.getSingleSiteInfoBox=function(site,page,tempSite){var siteid=site.getId();var title=site.getTitle();if(title==""){title="[New Site]"}else{title=title.replace(/</g,"&lt;").replace(/>/g,"&gt;")}var description=site.getDescription();description=description.replace(/</g,"&lt;").replace(/>/g,"&gt;");description=description.replace(/\n\r?/g,"<br />");var icon=sitecreator.currentSet.getIcon().image;var image=site.getImage();if(image){image='<b>Image:</b> <a onclick="openSimpleSiteImage('+siteid+');">'+image+"</a>"}else{image=""}var html='<div class="site"><table border="0"><tr>';if(tempSite){html+='<td width="100%"><span class="currentSiteIcon"><img src="'+icon+'" border="0" alt="Icon" /></span>&nbsp;&nbsp;<b><span id="inProcessNameDiv">'+title+'</span></b><br /><span id="inProcessDescDiv">'+description+"</span></td>"}else{html+='<td width="100%"><a onclick="editSimpleSite('+siteid+');"><span class="currentSiteIcon"><img src="'+icon+'" border="0" alt="Icon" /></span></a>&nbsp;&nbsp;<b>'+title+"</b><br />"+description+"<br />"+image+"</td>";html+='<td><span class="sitecontrols'+site.getId()+'"><a onclick="editSimpleSite('+siteid+');"><img src="/images/edit_icon_1.png" alt="Edit" title="Edit" border="0" onmouseover="this.src=\'/images/edit_icon_2.png\';" onmouseout="this.src=\'/images/edit_icon_1.png\';" /></a></span></td>';html+='<td><span class="sitecontrols'+site.getId()+'"><a onclick="removeSimpleSite('+site.getId()+');"><img src="/images/delete_icon_1.png" alt="Remove" title="Remove" border="0"  onmouseover="this.src=\'/images/delete_icon_2.png\';" onmouseout="this.src=\'/images/delete_icon_1.png\';" /></a></span></td>'}html+="</tr></table></div>";return html};DataloaderSimpleSiteList.prototype.updateTempSite=function(title,description){if(title||title==""){title=title.replace(/</g,"&lt;").replace(/>/g,"&gt;");$("#inProcessNameDiv").html(title)}if(description||description==""){description=description.replace(/</g,"&lt;").replace(/>/g,"&gt;");description=description.replace(/\n\r?/g,"<br />");$("#inProcessDescDiv").html(description)}};DataloaderSiteCreator=function(set){this.windowResizeEvent=null;this.clickEvent=null;this.editType=null;this.loading=false;this.currentSet=null;this.mapEnabled=false;this.datasetUid=null;this.geocodeCapable=false;this.numberOfTabs=0;this.currentTab=0;this.tabButtonUrl=PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sid="+PEnvironment.productId+"&sy=2&fs=11&vp=5&hp=16&tx=";this.tabDisabledButtonUrl=PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sid="+PEnvironment.productId+"&sy=2&fs=11&vp=5&hp=16&alt=2&tx=";this.recentRow=null;this.recentCol=null;this.columnTypes=new Object;this.columnTypes.all=[];this.columnTypes["text"]={id:1,name:"Text"};this.columnTypes[1]=this.columnTypes["text"];this.columnTypes.all.push(this.columnTypes["text"]);this.columnTypes["number"]={id:2,name:"Number"};this.columnTypes[2]=this.columnTypes["number"];this.columnTypes.all.push(this.columnTypes["number"]);this.columnTypes["image"]={id:10,name:"Image URL"};this.columnTypes[10]=this.columnTypes["image"];this.columnTypes.all.push(this.columnTypes["image"]);this.columnTypes["address1"]={id:3,name:"Address 1"};this.columnTypes[3]=this.columnTypes["address1"];this.columnTypes.all.push(this.columnTypes["address1"]);this.columnTypes["address2"]={id:4,name:"Address 2"};this.columnTypes[4]=this.columnTypes["address2"];this.columnTypes.all.push(this.columnTypes["address2"]);this.columnTypes["city"]={id:5,name:"City"};this.columnTypes[5]=this.columnTypes["city"];this.columnTypes.all.push(this.columnTypes["city"]);this.columnTypes["state"]={id:6,name:"State"};this.columnTypes[6]=this.columnTypes["state"];this.columnTypes.all.push(this.columnTypes["state"]);this.columnTypes["zip"]={id:7,name:"Zip Code"};this.columnTypes[7]=this.columnTypes["zip"];this.columnTypes.all.push(this.columnTypes["zip"]);this.columnTypes["lat"]={id:8,name:"Latitude"};this.columnTypes[8]=this.columnTypes["lat"];this.columnTypes.all.push(this.columnTypes["lat"]);this.columnTypes["lng"]={id:9,name:"Longitude"};this.columnTypes[9]=this.columnTypes["lng"];this.columnTypes.all.push(this.columnTypes["lng"]);this.numericTypes=new Object;this.numericTypes.dollar=1;this.numericTypes.percent=2;this.container=$("<div />");this.dialogTabs=$("<div />");this.dialogTabs.attr("id","dataloaderPopupTabs");this.dialogContent=$("<div />");this.dialogContent.attr("id","dataloaderPopupDialog");this.container.append(this.dialogTabs,this.dialogContent);var div=$("<div />");div.addClass("contentContainer");this.contentContainer=div;this.dialogContentHeightAdjustment=14;if(set){this.currentSet=set}else{this.currentSet=new DataloaderSet;this.currentSet.setSimple(false)}this.pinIconSelector=new PinIconSelector(PinIconsById[this.currentSet.icon])};DataloaderSiteCreator.prototype.getType=function(){return"spreadsheet"};DataloaderSiteCreator.prototype.setEditType=function(newedittype){this.editType=newedittype};DataloaderSiteCreator.prototype.getEditType=function(){return this.editType};DataloaderSiteCreator.prototype.isEnabled=function(){return true};DataloaderSiteCreator.prototype.setLoading=function(loading){this.loading=loading};DataloaderSiteCreator.prototype.getLoading=function(){return this.loading};DataloaderSiteCreator.prototype.clearSet=function(){this.editType=null;this.currentSet=null;this.datasetUid=null;this.geocodeCapable=false;this.recentRow=null;this.recentCol=null;this.numberOfTabs=0;this.currentTab=0};DataloaderSiteCreator.prototype.enableMap=function(){this.clickEvent=PEvent.addListener(map,"click",function(overlay,point){PMIdentificationModule.clickHandler(overlay,point)});toggleMap(true);this.mapEnabled=true};DataloaderSiteCreator.prototype.disableMap=function(){PEvent.removeListener(this.clickEvent);toggleMap(false);this.mapEnabled=false};DataloaderSiteCreator.prototype.isMapEnabled=function(){return this.mapEnabled};DataloaderSiteCreator.prototype.buildDialog=function(tabs,defaultTab){this.closeDialog();var self=this;if(defaultTab==null||defaultTab==0){defaultTab=1}var dialogContent=this.contentContainer;for(var i=0;i<tabs.length;i++){var curTab=tabs[i];var tabNum=i+1;if(curTab.enabled==null){curTab.enabled=true}var tab=$("<div />");tab.attr("id","spdlTab"+tabNum);tab.addClass("popupTab spdlTab");var tabImage=$("<img />");if(curTab.enabled===true){tabImage.attr("src",this.tabButtonUrl+encodeURIComponent(curTab.title));tabImage.css("cursor","pointer")}else{tabImage.attr("src",this.tabDisabledButtonUrl+encodeURIComponent(curTab.title))}tab.append(tabImage);this.dialogTabs.append(tab);var tabContents=$("<div />");tabContents.attr("id","spdlTabContents"+tabNum);tabContents.addClass("spdlTabContents");if(tabNum==defaultTab){this.currentTab=tabNum;tab.addClass("selectedPopupTab")}else{tabContents.hide()}dialogContent.append(tabContents);if(curTab.content!=null){tabImage.click(function(tabNum){return function(){self.dialogTabSelected(tabNum)}}(tabNum))}this.numberOfTabs++}this.dialogContent.append(dialogContent);this.dialog=$("<div/>");this.dialog.attr("id","dataloaderPopupContainer");this.dialog.append(this.container);this.dialog.dialog({close:function(e,ui){self.closeDialog()},modal:true,closeOnEscape:false,draggable:false,resizable:false,zIndex:5002,dialogClass:"juiDataloaderDialog",height:0,width:0,position:{at:"left top"}});for(var i=0;i<tabs.length;i++){var tabId="spdlTabContents"+(i+1);document.getElementById(tabId).innerHTML=tabs[i].content}this.resizeDialog();this.windowResizeEvent=PEvent.addListener(window,"resize",function(){self.resizeDialog()});this.dialogContent.show()};DataloaderSiteCreator.prototype.dialogTabSelected=function(tabNum){if(this.currentTab==tabNum){return}$(".spdlTabContents").hide();$("#spdlTab"+this.currentTab).removeClass("selectedPopupTab");$("#spdlTab"+tabNum).addClass("selectedPopupTab");$("#spdlTabContents"+tabNum).show();this.currentTab=tabNum;this.resizeDialog()};DataloaderSiteCreator.prototype.resizeDialog=function(){var wHeight=$(window).height();var wWidth=$(window).width();var height=Math.floor(wHeight*.8);var width=Math.floor(wWidth*.85);var cHeight=height-this.dialogTabs.height();this.dialogContent.css({height:cHeight,width:width});this.dialogTabs.css("width",width);$(".juiDataloaderDialog").css({top:(wHeight-height)/2,left:(wWidth-width)/2});var self=this;this.dialogContent.waitForImages(function(){var variableHeight=$("#spdlTabContents"+self.currentTab+" .variableHeight");if(variableHeight.length>0){var nonvariableHeight=$("#spdlTabContents"+self.currentTab+" .nonvariableHeight");var nonvariableHeightTotal=0;nonvariableHeight.each(function(){nonvariableHeightTotal+=$(this).outerHeight(true)});var varHeight=cHeight-nonvariableHeightTotal-self.dialogContentHeightAdjustment;var minHeight=0;if(variableHeight.hasClass("typeTable")){minHeight=130}if(variableHeight.hasClass("editSitesTable")||variableHeight.hasClass("columnPermTable")){minHeight=300}variableHeight.css("height",Math.max(varHeight,Math.min(minHeight,variableHeight.height())))}})};DataloaderSiteCreator.prototype.closeDialog=function(){this.dialogTabs.html("");this.contentContainer.html("");this.numberOfTabs=0;this.currentTab=0;PEvent.removeListener(this.windowResizeEvent);$("#dataloaderPopupContainer").remove()};DataloaderSiteCreator.prototype.displayLoadingDialog=function(message,title){if(message==null||$.trim(message)==""){message="Loading..."}var dialogContent="<table class='centerContainer'><tr><td><div class='inProgress'>"+message+"<br /><br /><img src='/images/busy.gif' alt='Loading...' /></div></td></tr></table>";this.buildDialog([{title:title,content:dialogContent,enabled:true}]);$(".centerContainer").css("height",this.dialogContent.height()-this.dialogContentHeightAdjustment+"px")};DataloaderSiteCreator.prototype.selectColumnTypesDialog=function(uid,columns){this.datasetUid=uid;var addressFields=[];var latlngFields=[];var otherColumns=[];for(var i=0;i<columns.length;i++){var curColumn=columns[i];switch(curColumn.type){case this.columnTypes["address1"].id:addressFields[0]=curColumn;break;case this.columnTypes["address2"].id:addressFields[1]=curColumn;break;case this.columnTypes["city"].id:addressFields[2]=curColumn;break;case this.columnTypes["state"].id:addressFields[3]=curColumn;break;case this.columnTypes["zip"].id:addressFields[4]=curColumn;break;case this.columnTypes["lat"].id:latlngFields[0]=curColumn;break;case this.columnTypes["lng"].id:latlngFields[1]=curColumn;break;default:otherColumns.push(curColumn);break}}var displayAddress=addressFields.length>0;var displayLatLng=latlngFields.length>0;var displayBoth=displayAddress&&displayLatLng;var content="<div class='nonvariableHeight'>";if(displayBoth){content+="<div class='tableHeader'>Confirm that these columns contain the information to locate an address. Use the \"remaining columns\" section to find missing or mislabeled data types.</div><div class='typeTableRow'><table class='layoutTable'><tr>"}else if(displayAddress){content+="<div class='tableHeader'>Confirm that these columns are to be used for geocoding addresses. Use the \"remaining columns\" section to find missing or mislabeled data types.</div><div class='typeTableRow'><table class='layoutTable'><tr>"}else if(displayLatLng){content+="<div class='tableHeader'>Confirm that these columns represent the latitude and longitude for each point. Use the \"remaining columns\" section to find missing or mislabeled data types.</div><div class='typeTableRow'><table class='layoutTable'><tr>"}if(displayAddress){content+="<td><div id='addressTable' class='typeTable'><table><tr><th>Column Name:</th><th>Data Type:</th></tr>";content+=this.buildTypeDropdownRow(addressFields);content+="</table></div></td>"}if(displayBoth){content+="<td class='andor'><div class='typeTable'>and /<br />or</div></td>"}if(displayLatLng){content+="<td><div id='latlngTable' class='typeTable'><table><tr><th>Column Name:</th><th>Data Type:</th></tr>";content+=this.buildTypeDropdownRow(latlngFields);content+="</table></div></td>"}if(displayAddress||displayLatLng){content+="</table></div><hr class='typeTableDivider' />"}otherColumns.sort(function(a,b){if(a==null){return 1}else if(b==null){return-1}else{return a.num-b.num}});content+="<div class='tableHeader'>Confirm the types for the remaining columns:</div></div>";content+="<div class='typeTableRow'><div id='otherTable' class='typeTable scrollingTypeTable variableHeight'><table><tr><th>Column Name:</th><th>Data Type:</th><th>$</th><th>%</th></tr>";for(var i=0;i<otherColumns.length;i++){var curColumn=otherColumns[i];if(curColumn==null){break}var colNum=curColumn.num;var colType=curColumn.type;var rowClass="";if(i%2==1){rowClass=" class='altRow'"}var disableNumericRadios=" disabled";var dollarCheck="";var percentCheck="";if(colType==this.columnTypes["number"].id){disableNumericRadios="";if(curColumn.numtype!=null){if(curColumn.numtype==this.numericTypes.dollar){dollarCheck=" checked"}else if(curColumn.numtype==this.numericTypes.percent){percentCheck=" checked"}}}content+="<tr><td"+rowClass+">"+curColumn.name+"</td><td"+rowClass+">"+this.buildTypeDropdown(colNum,colType)+"</td><td><input type='radio' id='col"+colNum+"NumTypeD' name='col"+colNum+"NumType' value='"+this.numericTypes.dollar+"' onmousedown='sitecreator.numericTypeRadioClicked(this);'"+disableNumericRadios+dollarCheck+" /></td><td><input type='radio' id='col"+colNum+"NumTypeP' name='col"+colNum+"NumType' value='"+this.numericTypes.percent+"' onmousedown='sitecreator.numericTypeRadioClicked(this);'"+disableNumericRadios+percentCheck+" /></td></tr>"}content+="</table></div></div><br />";content+="<div class='buttonRow nonvariableHeight'>";content+="<div class='leftButtons'><a onclick='sitecreator.deleteReimportAlert();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=5&hp=16&tx=Delete%20Points%20and%20Reimport&sid="+PEnvironment.productId+"' alt='Delete Points and Reimport' /></a></div>";content+="<div class='rightButtons'><a onclick='sitecreator.confirmColumns();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=5&hp=16&tx=Next%20%3E%3E&sid="+PEnvironment.productId+"' alt='Next >>' /></a></div>";content+="</div>";this.buildDialog([{title:"Import Points",content:content,enabled:true}]);$(".scrollingTypeTable").each(function(){var innerTable=$(this).find("table");$(this).width(innerTable.width()+2)})};DataloaderSiteCreator.prototype.buildTypeDropdownRow=function(fields){var row="";var numRows=0;for(var i=0;i<fields.length;i++){var curField=fields[i];if(fields[i]!=null){var fieldNum=curField.num;var rowClass="";if(numRows%2==1){rowClass=" class='altRow'"}row+="<tr><td"+rowClass+">"+curField.name+"</td><td"+rowClass+">"+this.buildTypeDropdown(fieldNum,this.columnTypes[curField.type].id)+"</td></tr>";numRows++}}return row};DataloaderSiteCreator.prototype.buildTypeDropdown=function(colNum,colDefault){if(colNum==null||typeof colNum=="string"&&colNum==""){return""}if(colDefault==null){colDefault=""}var dropdown="<select id='colType"+colNum+"' class='typeSelect' onchange='sitecreator.typeDropdownChange(this, "+colNum+");'>";var types=this.columnTypes.all;for(var i=0;i<types.length;i++){var curType=types[i];var selected="";if(curType.id==colDefault){selected=" selected "}dropdown+="<option value='"+curType.id+"'"+selected+">"+curType.name+"</option>"}dropdown+="</select>";return dropdown};DataloaderSiteCreator.prototype.typeDropdownChange=function(dropdown,colNum){if($(dropdown).val()==this.columnTypes["number"].id){$("input[name=col"+colNum+"NumType]:radio").removeAttr("disabled")}else{var radios=$("input[name=col"+colNum+"NumType]:radio");radios.each(function(){$(this).attr("checked",false);$(this).attr("disabled","disabled")})}};DataloaderSiteCreator.prototype.numericTypeRadioClicked=function(radioBox){var radioBox=$(radioBox);if(radioBox.is(":enabled")&&radioBox.attr("checked")){radioBox.mouseup(function(){setTimeout(function(){radioBox.attr("checked",false)});radioBox.unbind("mouseup")})}};DataloaderSiteCreator.prototype.deleteReimportAlert=function(){var self=this;alerter.popup("This will delete the points in your dataset and allow you to upload a new CSV. Do you wish to continue?","No","Yes",function(){self.deleteReimport()})};DataloaderSiteCreator.prototype.deleteReimport=function(skipDatabaseDelete){if(this.currentSet.isSaved()){if(!skipDatabaseDelete){deleteDataset(this.currentSet.getId())}this.currentSet.setId(null);this.currentSet.setSaved(false);this.disableMap();$(".siteEditingFunction").hide();$(".datasetFunction").hide();$("#importCSVStep").show()}this.currentSet.columns=null;this.currentSet.columnTypes=[];this.currentSet.numSites=null;clearCSVFileSelector();map.clearOverlays();map.clearOverlaySets();map.closeInfoWindow();session.remove("dlo");datasetSearch.reset();resetDataloaderMapZoom();updateMapOverlayText();this.closeDialog()};DataloaderSiteCreator.prototype.confirmColumns=function(){var self=this;var specialTypes=[];var duplicatedSpecialTypes=[];var columns=[];$(".typeSelect").each(function(){var curDropdown=$(this);var curType=curDropdown.val();if(curType!=self.columnTypes["text"].id&&curType!=self.columnTypes["number"].id){if(specialTypes[curType]==null){specialTypes[curType]=0}specialTypes[curType]++;if(specialTypes[curType]>1){if(specialTypes[curType]==2){duplicatedSpecialTypes.push(self.columnTypes[curType].name)}}}var colNum=curDropdown.attr("id").substring(7);var column=new Object;column.num=colNum;column.type=curType;if(curType==self.columnTypes["number"].id){var numType=$("input[name=col"+colNum+"NumType]:checked").val();if(numType!=null){column.numtype=numType}else{column.numtype=null}}columns.push(column)});if(duplicatedSpecialTypes.length>0){var message="The following column types have been set for more than one column:<br /><br />";for(var i=0;i<duplicatedSpecialTypes.length;i++){message+="- "+duplicatedSpecialTypes[i]+"<br />"}message+="<br />These types can only be set for one column each.";alerter.popup(message,"OK");return}var hasType=function(type){return!(specialTypes[self.columnTypes[type].id]==null||specialTypes[self.columnTypes[type].id]==0)};this.geocodeCapable=false;if(hasType("address1")&&(hasType("city")&&hasType("state")||hasType("zip"))){this.geocodeCapable=true}if(!(hasType("lat")&&hasType("lng"))&&!this.geocodeCapable){alerter.popup("In order to provide a location for each site, spreadsheets must have either a latitude and longitude column, or an address column combined with a zip column, or city and state columns.","OK");return}if(hasType("lat")?!hasType("lng"):hasType("lng")){alerter.popup("In order to use latitude and longitude, both must be assigned to a column.","OK");return}var columnUpdateError=function(error){var text="There was an error updating the columns of this dataset";if(error!=null){text+=": "+error}else{text+="."}alerter.popup(text,"OK")};ajax.call({type:"POST",url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsp&sbr=1&act=c",dataType:"json",data:{columns:JSON.stringify(columns),uid:this.datasetUid},success:function(result){if(result!=null&&result.dlsp!=null&&result.dlsp.status){if(result.dlsp.status=="ok"){self.validateDatasetValuesDialog()}else if(result.dlsp.status=="error"&&result.dlsp.error){columnUpdateError(result.dlsp.error)}else{columnUpdateError()}}else{columnUpdateError()}},error:function(){columnUpdateError()}})};DataloaderSiteCreator.prototype.validateDatasetValuesDialog=function(){this.displayLoadingDialog("Validation in progress...","Import Points");var self=this;var validateError=function(error){var text="There was an error validating your spreadsheet";if(error!=null){text+=": "+error}else{text+="."}alerter.popup(text,"OK");self.closeDialog();toggleSiteCreator()};ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsp&act=v&uid="+this.datasetUid,dataType:"json",success:function(result){if(result!=null&&result.dlsp!=null&&result.dlsp.status){if(result.dlsp.status=="ok"){self.geocodeDatasetDialog()}else if(result.dlsp.status=="error"&&result.dlsp.error){validateError(result.dlsp.error)}else{validateError()}}else{validateError()}},error:function(){validateError()}})};DataloaderSiteCreator.prototype.genericImportError=function(){alerter.popup("There was an error importing your spreadsheet. Please try again or contact PolicyMap technical support.","OK");this.deleteReimport(true)};DataloaderSiteCreator.prototype.geocodeDatasetDialog=function(){this.displayLoadingDialog("Geocoding in progress...","Import Points");var self=this;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsp&act=gc&uid="+this.datasetUid,dataType:"json",success:function(result){if(result!=null&&result.dlsp!=null&&result.dlsp.status){if(result.dlsp.status=="ok"){var geocodeResults={geocodedRows:result.dlsp.geocodedrows,latlngRows:result.dlsp.latlngrows,totalRows:result.dlsp.totalrows};self.getDatasetEditData(geocodeResults)}else{self.genericImportError()}}else{self.genericImportError()}},error:function(){self.genericImportError()}})};DataloaderSiteCreator.prototype.getDatasetEditData=function(geocodeResults){this.displayLoadingDialog("Building table...","Import Points");var self=this;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsp&act=t&uid="+self.datasetUid,dataType:"json",success:function(response){if(response!=null&&response.dlsp!=null&&response.dlsp.status){if(response.dlsp.status=="ok"&&response.dlsp.table!=null){self.editDatasetDialog(response.dlsp.table,response.dlsp.columns,response.dlsp.labelcol,response.dlsp.searchcol,response.dlsp.sites,geocodeResults)}else{self.genericImportError()}}else{self.genericImportError()}},error:function(){self.genericImportError()}})};DataloaderSiteCreator.prototype.editDatasetDialog=function(table,columns,labelCol,searchCol,numSites,geocodeResults){var self=this;this.currentSet.setColumns(columns);this.currentSet.numSites=numSites;var setPerm=this.currentSet.getPermission();if(this.editType=="edit"){this.geocodeCapable=this.currentSet.hasColumnType(this.columnTypes["address1"].id)&&(this.currentSet.hasColumnType(this.columnTypes["city"].id)&&this.currentSet.hasColumnType(this.columnTypes["state"].id)||this.currentSet.hasColumnType(this.columnTypes["zip"].id))}var columnSortOptions=new Object;var columnOptions="<option value='none'>[None]</option>";for(var i=0;i<columns.length;i++){var curColumn=columns[i];if(curColumn.type!=this.columnTypes["image"].id){columnOptions+="<option value='"+curColumn.num+"'>"+curColumn.name+"</option>"}}var headerText="<span class='topHeaderText'>"+this.currentSet.title;var permLabel=$("#permlabel"+this.currentSet.permission).text();if(permLabel!=""){headerText+=" (Shared with"+permLabel.toLowerCase()+")"}headerText+="</span>";var editSitesContent="";editSitesContent="<div class='editSitesTop floatContainer nonvariableHeight'>";editSitesContent+="<div class='left'>"+headerText+"<br /><ol>";if(geocodeResults!=null){var latlngTotal=geocodeResults.latlngRows+geocodeResults.geocodedRows;editSitesContent+="<li>Result: "+latlngTotal+" of "+geocodeResults.totalRows+" points successfully geocoded.</li>"}editSitesContent+="<li>Click within an address field to manually edit address information. The system will automatically re-geocode updated address fields.</li><li>To sort your data, click on any of the column headers.</li></ol></div>";editSitesContent+="<div class='right'><table><tr><td class='leftTd'>Select field for label</br />to display (optional):</td>";editSitesContent+="<td><select id='labelColumn' onchange='sitecreator.labelColumnChange();'>"+columnOptions+"</select><br />";editSitesContent+="<span class='labelsDisabled'>Labels are only available for datasets<br />that contain up to 250 points.</span></td></tr>";editSitesContent+="<tr style='display: none;'><td class='leftTd'>Select field for<br />search (optional):</td>";editSitesContent+="<td><select id='searchColumn'>"+columnOptions+"</select></td></tr></table></div>";editSitesContent+="</div>";editSitesContent+="<div id='datasetTableContainer' class='editSitesTable variableHeight'>"+table+"</div>";for(var i=0;i<columns.length;i++){var curColumn=columns[i];switch(parseInt(curColumn.type)){case this.columnTypes["lat"].id:case this.columnTypes["lng"].id:columnSortOptions[i+2]={sorter:false};break;case this.columnTypes["number"].id:columnSortOptions[i+2]={sorter:"digit"};default:break}}if(this.geocodeCapable){editSitesContent+="<div class='floatContainer nonvariableHeight'><div class='addRowButton'>";editSitesContent+="<span class='enabledSaveButton'><a onclick='sitecreator.addDatasetRow();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=4&hp=12&tx=Add%20Row&sid="+PEnvironment.productId+"' alt='Add Row' /></a></span>";editSitesContent+="<span class='disabledSaveButton'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&alt=2&fs=11&vp=4&hp=12&tx=Add%20Row&sid="+PEnvironment.productId+"' alt='Add Row' /></span>";editSitesContent+="</div></div>"}editSitesContent+="<div class='buttonRow nonvariableHeight'>";if(this.editType=="create"){editSitesContent+="<div class='leftButtons'>";editSitesContent+="<span class='enabledSaveButton'><a onclick='sitecreator.deleteReimportAlert();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=5&hp=16&tx=Delete%20Points%20and%20Reimport&sid="+PEnvironment.productId+"' alt='Delete Points and Reimport' /></a></span>";editSitesContent+="<span class='disabledSaveButton'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&alt=2&vp=5&hp=16&tx=Delete%20Points%20and%20Reimport&sid="+PEnvironment.productId+"' alt='Delete Points and Reimport' /></span>";editSitesContent+="</div>"}editSitesContent+="<div class='rightButtons'>";editSitesContent+="<span class='enabledSaveButton'><a onclick='sitecreator.downloadSites();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=5&hp=16&tx=Download%20Points&sid="+PEnvironment.productId+"' alt='Download Points' /></a></span>";editSitesContent+="<span class='disabledSaveButton'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&alt=2&fs=11&vp=5&hp=16&tx=Download%20Points&sid="+PEnvironment.productId+"' alt='Download Points' /></span>";editSitesContent+="<span class='enabledSaveButton'><a onclick='sitecreator.saveDatasetButton();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=5&hp=16&tx=Save&sid="+PEnvironment.productId+"' alt='Save' /></a></span>";editSitesContent+="<span class='disabledSaveButton'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&alt=2&fs=11&vp=5&hp=16&tx=Save&sid="+PEnvironment.productId+"' alt='Save' /></span>";editSitesContent+="<span class='enabledSaveButton'><a onclick='sitecreator.goToMap();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=5&hp=16&tx=Save%20%26%20Close&sid="+PEnvironment.productId+"' alt='Save & Close' /></a></span>";editSitesContent+="<span class='disabledSaveButton'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&alt=2&fs=11&vp=5&hp=16&tx=Save%20%26%20Close&sid="+PEnvironment.productId+"' alt='Save & Close' /></span>";editSitesContent+="</div></div>";var isSiteLicense=PEnvironment.isSiteLicense;var myselfHeader="Display for Myself?";var publicHeader="Display for Public?";var individualHeader="Display for Individual Users?";if(isSiteLicense){publicHeader="Display for All Users?"}var setAccessContent="";setAccessContent="<div class='editSitesTop floatContainer nonvariableHeight'>";setAccessContent+="<div class='left'>"+headerText+"<br />Select the fields that will appear in the info bubble for each user category.</div>";setAccessContent+="<div class='right'>";if(setPerm==2){setAccessContent+="<table><tr><td class='leftTd'>All users will have permission<br />to download your dataset.</td></tr></table>"}else if(setPerm==3){var checked="";if(this.currentSet.dlperm){checked=" checked"}setAccessContent+="<table><tr><td class='leftTd'><label for='sharedDownload'>Allow individual users permission<br />to download this dataset</label></td><td class='rightTd'><input type='checkbox' id='sharedDownloadBox' onclick='sitecreator.toggleDownloadPerm(this);'"+checked+" /></td></tr></table>"}setAccessContent+="</div>";setAccessContent+="</div>";setAccessContent+="<div id='columnTableContainer' class='columnPermTable variableHeight'><table id='columnTable'>";setAccessContent+="<tr><td class='firstRow'></td><td id='firstRowMyself' class='firstRow myselfColumn'>"+myselfHeader+"</td><td id='firstRowPublic' class='firstRow publicColumn'>"+publicHeader+"</td><td id='firstRowIndividual' class='firstRow individualColumn'>"+individualHeader+"<br /></td></tr>";setAccessContent+="<tr><td class='headerRow'>Field</td><td class='headerRow myselfColumn'><input type='checkbox' id='allMyself' value='1' onclick='sitecreator.toggleColumnAllPerm(this);'><label id='labelMyself' for='allMyself'> All</label></td><td class='headerRow publicColumn'><input type='checkbox' id='allPublic' value='2' onclick='sitecreator.toggleColumnAllPerm(this);'><label id='labelPublic' for='allPublic'> All</label></td><td class='headerRow individualColumn'><input type='checkbox' id='allIndividual' value='3' onclick='sitecreator.toggleColumnAllPerm(this);'><label id='labelIndividual' for='allIndividual'> All</label></td></tr>";for(var i=0;i<columns.length;i++){var curColumn=columns[i];var rowClass;if(i%2==0){rowClass="rowStyle1"}else{rowClass="rowStyle2"}setAccessContent+="<tr><td class='"+rowClass+"'>"+curColumn.name+"</td><td class='checkBoxCell "+rowClass+" myselfColumn'><input type='checkbox' id='myselfBox"+i+"' class='myselfBox' value='"+i+"' onclick='sitecreator.toggleColumnPerm(this);'></td><td class='checkBoxCell "+rowClass+" publicColumn'><input type='checkbox' id='publicBox"+i+"' class='publicBox' value='"+i+"' onclick='sitecreator.toggleColumnPerm(this);'></td><td class='checkBoxCell "+rowClass+" individualColumn'><input type='checkbox' id='individualBox"+i+"' class='individualBox' value='"+i+"' onclick='sitecreator.toggleColumnPerm(this);'></td></tr>"}setAccessContent+="</table></div>";setAccessContent+="<div class='buttonRow nonvariableHeight'>";if(this.editType=="create"){setAccessContent+="<div class='leftButtons'>";setAccessContent+="<span class='enabledSaveButton'><a onclick='sitecreator.deleteReimportAlert();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=5&hp=16&tx=Delete%20Points%20and%20Reimport&sid="+PEnvironment.productId+"' alt='Delete Points and Reimport' /></a></span>";setAccessContent+="<span class='disabledSaveButton'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&alt=2&fs=11&vp=5&hp=16&tx=Delete%20Points%20and%20Reimport&sid="+PEnvironment.productId+"' alt='Delete Points and Reimport' /></span>";setAccessContent+="</div>"}setAccessContent+="<div class='rightButtons'>"
;setAccessContent+="<span class='enabledSaveButton'><a onclick='sitecreator.saveDatasetButton();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=5&hp=16&tx=Save&sid="+PEnvironment.productId+"' alt='Save' /></a></span>";setAccessContent+="<span class='disabledSaveButton'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&alt=2&fs=11&vp=5&hp=16&tx=Save&sid="+PEnvironment.productId+"' alt='Save' /></span>";setAccessContent+="<span class='enabledSaveButton'><a onclick='sitecreator.goToMap();'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=5&hp=16&tx=Save%20%26%20Close&sid="+PEnvironment.productId+"' alt='Save & Close' /></a></span>";setAccessContent+="<span class='disabledSaveButton'><img src='"+PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&alt=2&fs=11&vp=5&hp=16&tx=Save%20%26%20Close&sid="+PEnvironment.productId+"' alt='Save & Close' /></span>";setAccessContent+="</div></div>";this.buildDialog([{title:"Add / Edit Points",content:editSitesContent,enabled:true},{title:"Set Access to Fields",content:setAccessContent,enabled:true}]);columnSortOptions[columns.length+2]={sorter:false};$("#datasetTable").tablesorter({cancelSelection:false,headers:columnSortOptions,cssHeader:"dlHeader",cssAsc:"dlHeaderSortAsc",cssDesc:"dlHeaderSortDesc",sortList:[[1,0]]});$("#datasetTable").bind("sortStart",function(){self.lockTable(1)});$("#datasetTable").bind("sortEnd",function(){self.unlockTable()});if(labelCol!=null){$("#labelColumn").val(labelCol)}if(searchCol!=null){$("#searchColumn").val(searchCol)}for(var i=0;i<columns.length;i++){var curColumn=columns[i];var revertToMyself=false;if(curColumn.permission==2&&setPerm!=2||curColumn.permission==3&&setPerm!=3){revertToMyself=true}if(curColumn.permission==1||revertToMyself){$("#myselfBox"+i).attr("checked","checked")}else if(curColumn.permission==2){$("#myselfBox"+i).attr("checked","checked");$("#publicBox"+i).attr("checked","checked")}else if(curColumn.permission==3){$("#myselfBox"+i).attr("checked","checked");$("#individualBox"+i).attr("checked","checked")}}var disablePublic=function(){$("#firstRowPublic").addClass("disabledPerm");$("#labelPublic").addClass("disabledPerm");$("#allPublic").attr("disabled","disabled");$(".publicBox").attr("disabled","disabled")};var disableIndividual=function(){$("#firstRowIndividual").addClass("disabledPerm");$("#labelIndividual").addClass("disabledPerm");$("#allIndividual").attr("disabled","disabled");$(".individualBox").attr("disabled","disabled")};if(setPerm==1){disablePublic();disableIndividual()}else if(setPerm==2){disableIndividual()}else if(setPerm==3){disablePublic()}if(isSiteLicense&&isAutoLoginUser()){$(".myselfColumn, .individualColumn").hide()}this.checkLabelDropdown();for(var i=0;i<columns.length;i++){var curColumn=columns[i];if(curColumn.type==this.columnTypes["number"].id&&curColumn.numtype&&curColumn.numtype==this.numericTypes.percent){var addButtons=function(curColumn){var curColumnNum=curColumn.num;var stopClick=function(event){event.cancelBubble=true;if(event.stopPropagation){event.stopPropagation()}};var shiftLeft=$("<img />");shiftLeft.attr({id:"c"+curColumnNum+"sdl",src:"/images/shift_decimal_left.png",alt:"Divide all values by 100",title:"Divide all values by 100"});shiftLeft.click(function(e){self.shiftDecimals(curColumnNum,1);if(!e){var e=window.event}stopClick(e)});var shiftRight=$("<img />");shiftRight.attr({id:"c"+curColumnNum+"sdr",src:"/images/shift_decimal_right.png",alt:"Multiply all values by 100",title:"Multiply all values by 100"});shiftRight.click(function(e){self.shiftDecimals(curColumnNum,2);if(!e){var e=window.event}stopClick(e)});$("#col"+curColumnNum+"DecimalFunctions").append(shiftLeft);$("#col"+curColumnNum+"DecimalFunctions").append(shiftRight);$("#col"+curColumnNum+"Header").css("min-width","50px")}(curColumn)}}$("#labelColumn").poshytip({content:"Labels appear at the six closest zoom levels.",className:"tip-yellowsimple",showOn:"none",alignTo:"target",alignX:"inner-left",offsetX:-30,offsetY:7,timeOnScreen:3e3})};DataloaderSiteCreator.prototype.formatLatLng=function(value){var valueString=String(value);var parts=valueString.split(".");if(parts.length>1){if(parts[1].length>3){value=parts[0]+"."+parts[1].substring(0,3)+"..."}}return value};DataloaderSiteCreator.prototype.checkLabelDropdown=function(){if(this.currentSet.numSites>250){$("#labelColumn").val("none");$("#labelColumn").attr("disabled","disabled");$(".labelsDisabled").show()}else{$("#labelColumn").attr("disabled",null);$(".labelsDisabled").hide()}};DataloaderSiteCreator.prototype.editDatasetItem=function(td,row,col){if(this.recentRow!=null&&this.recentRow==row&&this.recentCol!=null&&this.recentCol==col){this.recentRow=null;this.recentCol=null;return}var self=this;var td=$(td);if(td.hasClass("pending")){return}var tdWidth=td.width();td.width(tdWidth);var tdText=td.text();var tdTextbox=$("<input type='text' />");tdTextbox.attr("id","editr"+row+"c"+col);tdTextbox.addClass("cellEditInProgress");tdTextbox.width(tdWidth-3);tdTextbox.val(tdText);tdTextbox.click(function(e){e.stopPropagation()});tdTextbox.blur(function(e){self.updateDatasetItem(td,row,col,tdText,$(this).val())});tdTextbox.bind("keydown",function(e){e=e||window.event;var code=e.keyCode||e.which;if(code==9){var numCols=self.currentSet.getColumns().length;var nextCol;if(e.shiftKey){nextCol=col-1;if(nextCol<2){nextCol=numCols-1}}else{nextCol=col+1;if(nextCol>=numCols){nextCol=2}}self.editDatasetItem($("#cellr"+row+"c"+nextCol)[0],row,nextCol)}else if(code==13){$(this).blur()}else if(code==27){td.text(tdText);self.recentRow=null;self.recentCol=null;enableSaveButtons()}});this.recentRow=row;this.recentCol=col;td.html(tdTextbox);setTimeout(function(){tdTextbox.focus()},0);disableSaveButtons()};DataloaderSiteCreator.prototype.updateDatasetItem=function(td,row,col,oldValue,newValue){var self=this;td.css({width:""});if(oldValue==newValue){td.text(oldValue);if($(".cellEditInProgress").length==0){enableSaveButtons()}return}td.text(newValue);td.removeClass("editable");td.addClass("pending");var updateItemError=function(error){var text="There was an error updating this value";if(error!=null){text+=": "+error}else{text+="."}alerter.popup(text,"OK",null,null,function(){var cellEdit=$(".cellEditInProgress");if(cellEdit.length>0){cellEdit.focus()}});td.removeClass("pending");td.addClass("editable");td.text(oldValue);if($(".cellEditInProgress").length==0){enableSaveButtons()}};var cellQuery="&rid="+row+"&cid="+col+"&v="+encodeURIComponent(newValue);ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsp&act=u"+cellQuery+"&uid="+this.datasetUid,dataType:"json",success:function(result){if(result!=null&&result.dlsp!=null&&result.dlsp.status){if(result.dlsp.status=="ok"){td.removeClass("pending");td.addClass("editable");td.text(result.dlsp.value);if(result.dlsp.geocode==true){if(result.dlsp.latlng==true){$("#geocoded"+row).html("<img src='/images/greendot.png' class='geocodeImage' alt='Yes' title='Site successfully geocoded' />");$("#cellr"+row+"c0").text(self.formatLatLng(result.dlsp.lat));$("#cellr"+row+"c1").text(self.formatLatLng(result.dlsp.lng))}else{$("#geocoded"+row).html("<img src='/images/reddot.png' class='geocodeImage' alt='No' title='Site not successfully geocoded' />");$("#cellr"+row+"c0").text("");$("#cellr"+row+"c1").text("")}}$("#datasetTable").trigger("update");if($(".cellEditInProgress").length==0){enableSaveButtons()}}else if(result.dlsp.status=="error"&&result.dlsp.error){updateItemError(result.dlsp.error)}else{updateItemError()}}else{updateItemError()}},error:function(){updateItemError()}})};DataloaderSiteCreator.prototype.lockTable=function(whichMessage){var message="Updating table...";if(whichMessage==2){message="Saving dataset..."}var tableIds=["datasetTable","columnTable"];for(var i=0;i<tableIds.length;i++){curTableId=tableIds[i];var curContainerId=curTableId+"Container";var curContainer=$("#"+curContainerId);var tableCover=$("<div />");tableCover.attr("id",curTableId+"Cover");tableCover.addClass("dataloaderTableCover");curContainer.append(tableCover);var tableLoading=$("<div />");tableLoading.attr("id",curTableId+"Loading");tableLoading.addClass("dataloaderTableLoading");tableLoading.html("<img src='/images/busy.gif' class='center' alt='Loading...'><br />"+message);curContainer.append(tableLoading)}this.lockTablePosition();$(window).bind("resize",this.lockTablePosition);$(".dataloaderTableCover").show();$(".dataloaderTableLoading").show();disableSaveButtons()};DataloaderSiteCreator.prototype.lockTablePosition=function(){var tableIds=["datasetTable","columnTable"];for(var i=0;i<tableIds.length;i++){var curTableId=tableIds[i];var curTable=$("#"+curTableId);var tableCover=$("#"+curTableId+"Cover");tableCover.css({height:curTable.height(),width:curTable.width()});var tableContainer=$("#"+curTableId+"Container");var tableLoading=$("#"+curTableId+"Loading");var leftPos=tableContainer.width()/2-tableLoading.width()/2+tableContainer.offset().left;var topPos=tableContainer.height()/2-tableLoading.height()/2+tableContainer.offset().top;tableLoading.css({left:leftPos,top:topPos})}};DataloaderSiteCreator.prototype.unlockTable=function(){$(window).unbind("resize",this.lockTablePosition);var covers=$(".dataloaderTableCover");covers.fadeOut(300,function(){covers.remove()});var loading=$(".dataloaderTableLoading");loading.fadeOut(300,function(){loading.remove()});enableSaveButtons()};DataloaderSiteCreator.prototype.shiftDecimals=function(colNum,direction){var self=this;var shiftDecimalsError=function(error){alerter.popup("There was an error adjusting the decimals of this column.","OK");self.unlockTable()};this.lockTable(1);ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsp&act=sd&cid="+colNum+"&sd="+direction+"&uid="+this.datasetUid,dataType:"json",success:function(result){if(result!=null&&result.dlsp!=null&&result.dlsp.status){if(result.dlsp.status=="ok"){if(result.dlsp.newvalues!=null){for(rowNum in result.dlsp.newvalues){$("#cellr"+rowNum+"c"+colNum).text(result.dlsp.newvalues[rowNum])}}else{var alertText;if(direction==1){alertText="Unable to divide the values in this column by 100. At least one value will exceed the minimum."}else{alertText="Unable to multiply the values in this column by 100. At least one value will exceed the maximum."}alerter.popup(alertText,"OK")}self.unlockTable()}else{shiftDecimalsError()}}else{shiftDecimalsError()}},error:function(){shiftDecimalsError()}})};DataloaderSiteCreator.prototype.labelColumnChange=function(){var labelVal=$("#labelColumn").val();if(labelVal!="none"){$("#labelColumn").poshytip("show")}};DataloaderSiteCreator.prototype.addDatasetRow=function(){if($(".dataloaderTableCover").length>0){return}var self=this;this.lockTable(1);var addRowError=function(error){alerter.popup("There was an error adding a new row to the dataset.","OK");self.unlockTable()};ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsp&act=a&uid="+this.datasetUid,dataType:"json",success:function(result){if(result!=null&&result.dlsp!=null&&result.dlsp.status){if(result.dlsp.status=="ok"){var newRowId=result.dlsp.newrow;var newRow="<tr id='row"+newRowId+"'><td id='geocoded"+newRowId+"'><img src='/images/reddot.png' class='geocodeImage' alt='No' title='Site not successfully geocoded' /></td><td>"+(newRowId+1)+"</td>";var firstFieldId=null;var columns=self.currentSet.getColumns();for(var i=0;i<columns.length;i++){var colType=columns[i].type;var cellId="cellr"+newRowId+"c"+i;var onclick="";var cellClass="";if(colType!=self.columnTypes["lat"].id&&colType!=self.columnTypes["lng"].id){onclick=" onclick='sitecreator.editDatasetItem(this, "+newRowId+", "+i+");'";cellClass=" class='editableCell'";if(firstFieldId==null){firstFieldId=cellId}}newRow+="<td id='"+cellId+"'"+cellClass+onclick+"></td>"}newRow+="<td><a onclick='sitecreator.removeDatasetRow("+newRowId+");'><img src='/images/close_button2.gif' alt='Delete Row' /></a></td></tr>";$("#datasetTable tr:last").after(newRow);var firstField=$("#"+firstFieldId);$("#datasetTable").trigger("update");$("#datasetTableContainer").scrollTo(firstField);self.currentSet.numSites++;self.checkLabelDropdown();self.unlockTable();setTimeout(function(){firstField.click()},0)}else if(result.dlsp.status=="trialmax"){alerter.popup("You have reached the maximum of "+trialUserMaxDatasetPoints+" rows for trial users. <a onclick='showUpgradeModal();' class='simulink'>Subscribe</a> to load more.","OK");self.unlockTable()}else{addRowError()}}else{addRowError()}},error:function(result){addRowError()}})};DataloaderSiteCreator.prototype.removeDatasetRow=function(rowNum){var self=this;var removeRowError=function(error){alerter.popup("There was an error removing the row from the dataset.","OK");self.unlockTable()};alerter.popup("Are you sure you want to remove this row from the dataset?","No","Yes",function(){self.lockTable(1);ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsp&act=d&rid="+rowNum+"&uid="+self.datasetUid,dataType:"json",success:function(result){if(result!=null&&result.dlsp!=null&&result.dlsp.status){if(result.dlsp.status=="ok"){$("#row"+rowNum).fadeOut();$("#datasetTable").trigger("update");self.currentSet.numSites--;self.checkLabelDropdown();self.unlockTable()}else{removeRowError()}}else{removeRowError()}},error:function(){removeRowError()}})},function(){return})};DataloaderSiteCreator.prototype.toggleColumnPerm=function(checkbox){checkbox=$(checkbox);checkboxValue=checkbox.val();if(PEnvironment.isSiteLicense==true&&isAutoLoginUser()){if(!checkbox.hasClass("publicBox")){return}if(checkbox.is(":checked")){$("#myselfBox"+checkboxValue).attr("checked","checked")}else{$("#myselfBox"+checkboxValue).removeAttr("checked");$("#allMyself, #allPublic").removeAttr("checked")}return}if(checkbox.is(":checked")){if(checkbox.hasClass("publicBox")||checkbox.hasClass("individualBox")){$("#myselfBox"+checkboxValue).attr("checked","checked")}}else{if(checkbox.hasClass("myselfBox")){$("#publicBox"+checkboxValue+", #individualBox"+checkboxValue).removeAttr("checked");$("#allMyself").removeAttr("checked");$("#allPublic, #allIndividual").removeAttr("checked")}else if(checkbox.hasClass("publicBox")){$("#allPublic").removeAttr("checked")}else if(checkbox.hasClass("individualBox")){$("#allIndividual").removeAttr("checked")}}};DataloaderSiteCreator.prototype.toggleColumnAllPerm=function(checkbox){checkbox=$(checkbox);checkboxValue=checkbox.val();if(PEnvironment.isSiteLicense==true&&isAutoLoginUser()){if(checkboxValue!="2"){return}if(checkbox.is(":checked")){$("#allMyself").attr("checked","checked");$(".myselfBox, .publicBox").each(function(){$(this).attr("checked","checked")})}else{$("#allMyself").attr("checked",false);$(".myselfBox, .publicBox").each(function(){$(this).attr("checked",false)})}return}var whichClass=null;if(checkboxValue=="1"){whichClass=".myselfBox"}else if(checkboxValue=="2"){whichClass=".publicBox"}else if(checkboxValue=="3"){whichClass=".individualBox"}else{return}if(checkbox.is(":checked")){if(checkboxValue=="2"||checkboxValue=="3"){var allMyselfBox=$("#allMyself");if(!allMyselfBox.is(":checked")){allMyselfBox.attr("checked","checked");this.toggleColumnAllPerm(allMyselfBox[0])}}$(whichClass).each(function(){$(this).attr("checked","checked")})}else{if(checkboxValue=="1"){$("#allMyself, #allPublic, #allIndividual, .myselfBox, .publicBox, .individualBox").attr("checked",false)}else{$(whichClass).each(function(){$(this).attr("checked",false)})}}};DataloaderSiteCreator.prototype.toggleDownloadPerm=function(checkbox){this.currentSet.dlperm=$(checkbox).is(":checked")};DataloaderSiteCreator.prototype.saveDatasetButton=function(){this.saveDataset(function(){saveDatasetAlert()})};DataloaderSiteCreator.prototype.saveDataset=function(callback){if($(".dataloaderTableLoading").length>0){return}var self=this;this.lockTable(2);var reenableSave=function(){self.unlockTable()};var columnPerms=this.buildColumnPermissions();var dlperm=this.currentSet.dlperm;var labelCol=$("#labelColumn").val();var searchCol=$("#searchColumn").val();this.currentSet.setLabels(labelCol!="none");this.currentSet.setSearch(searchCol!="none");var saveError=function(){alerter.popup("There was an error saving your dataset.","OK");reenableSave()};ajax.call({type:"POST",url:PEnvironment.dataServicesUrl+"?ty=data&t=dlsp&sbr=1&act=s",dataType:"json",data:{columnperms:JSON.stringify(columnPerms),dlperm:dlperm,label:labelCol,search:searchCol,uid:this.datasetUid},success:function(result){if(result!=null&&result.dlsp!=null&&result.dlsp.status&&result.dlsp.status=="ok"){self.currentSet.setSaved(true);var datasetId=result.dlsp.id;self.currentSet.setId(datasetId);session.put("dlo",datasetId);if(result.dlsp.box){self.currentSet.setBox(result.dlsp.box.xmin,result.dlsp.box.ymin,result.dlsp.box.xmax,result.dlsp.box.ymax)}else{self.currentSet.clearBox()}reenableSave();if(callback!=null){callback()}}else if(result!=null&&result.dlsp!=null&&result.dlsp.status&&result.dlsp.status=="noowner"){alerter.popup("The specified dataset owner could not be found.","OK");reenableSave()}else{saveError()}},error:function(){saveError()}})};DataloaderSiteCreator.prototype.buildColumnPermissions=function(){var columnPerms=[];var columns=this.currentSet.getColumns();for(var i=0;i<columns.length;i++){if($("#individualBox"+i).is(":checked")){columnPerms[i]=3}else if($("#publicBox"+i).is(":checked")){columnPerms[i]=2}else if($("#myselfBox"+i).is(":checked")){columnPerms[i]=1}else{columnPerms[i]=0}}return columnPerms};DataloaderSiteCreator.prototype.downloadSites=function(){this.saveDataset(function(){downloadSites()})};DataloaderSiteCreator.prototype.goToMap=function(skipSave){var self=this;var postSave=function(){self.updateMapOverlaySet();map.setCenterBounds(self.currentSet.getBox());$("#da1").attr("disabled",null);$("#importCSVStep").hide();toggleSiteCreator();self.closeDialog()};if(skipSave!=true){this.saveDataset(function(){postSave();saveDatasetAlert(true)})}else{postSave()}};DataloaderSiteCreator.prototype.updateMapOverlaySet=function(){map.clearOverlaySets();var icon=this.currentSet.getIcon();var set=new POverlaySet(this.currentSet.getId(),icon,15);if(icon.headpin){set.colorcodes=PinIcons[icon.headpin].colors}set.allowDL=false;set.child=false;set.children=[];set.hidelabels=false;set.isPoly=false;set.labels=this.currentSet.hasLabels();set.name=this.currentSet.getTitle();set.processed=false;set.search=this.currentSet.hasSearch();set.type="dl";P.instances.map.addOverlaySet(set);if(set.search){datasetSearch.update(set.id)}else{datasetSearch.reset()}labelManager.updateMapLabels()};DatasetSearch=function(){this.enabled=true;this.mapDiv=null;this.searchBox=null;this.searchField=null;this.urlParams=getUrlParams();this.currentDataset=null;this.autosuggest=new AutoSuggest;var ds=this;this.mapDiv=$("#map");if(this.mapDiv.length>0){this.build();if(isWidgetPage()||isCBClone()){$(window).resize(function(){ds.position()})}PEvent.addListener(map,"removeoverlayset",function(){if(ds.currentDataset!=null){var setOnMap=false;var sets=map.getOverlaySets(false,true);for(var i=0;i<sets.length;i++){if(sets[i].id==ds.currentDataset.id){setOnMap=true;break}}if(setOnMap==false){ds.reset()}}})}else{this.enabled=false}};DatasetSearch.prototype.build=function(){if(PEnvironment.pageName=="dataloader"){return}if(!this.enabled||this.searchBox!=null){return}var ds=this;var searchBox=$("<div />");searchBox.attr("id","datasetSearch");searchBox.addClass("datasetSearch");var searchBoxContents=$("<table />");var tr=$("<tr />");searchBoxContents.append(tr);var td=$("<td />");td.html("Search Sites:");td.addClass("text");tr.append(td);var td=$("<td />");searchField=$("<input />");searchField.attr({id:"dsearchbox",text:"text",size:32});td.append(searchField);tr.append(td);var td=$("<td />");var searchBoxGo=$("<img />");searchBoxGo.addClass("goButton");searchBoxGo.attr({src:"/images/global-button-go-small.png",title:"Search"});searchBoxGo.click(function(){ds.search()});td.append(searchBoxGo);tr.append(td);if(PEnvironment.pageName!="dataloader"){var td=$("<td />");var searchBoxClose=$("<img />");searchBoxClose.addClass("closeButton");searchBoxClose.attr({src:"/images/close_button2.gif",title:"Close Dataset Search"});searchBoxClose.mousedown(function(){ds.reset()});td.append(searchBoxClose);tr.append(td)}searchBox.append(searchBoxContents);this.mapDiv.append(searchBox);var searchBoxElement=searchField[0];this.autosuggest.attach(searchBoxElement,"d");PEvent.addListener(searchBoxElement,"keydown",function(e){var e=e||window.event;if(e&&e.keyCode==13&&ds.autosuggest.getSelectedItem()==null){ds.search()}});this.searchBox=searchBox;this.searchField=searchField;if(isWidgetPage()||isCBClone()){this.position()}};DatasetSearch.prototype.position=function(){if(isWidgetPage()){if(this.urlParams["altLayout"]){this.searchBox.css("left","225px")}else{this.searchBox.css("left","7px")}this.searchBox.css("top",this.mapDiv.height()-58+"px")}else if(isCBClone()){this.searchBox.css({left:Math.floor(this.mapDiv.width()/2-this.searchBox.width()/2)+"px",top:"10px"})}};DatasetSearch.prototype.reset=function(){if(PEnvironment.pageName=="dataloader"){return}this.searchBox.hide();$(".dsearchr").attr("checked",false);$(".data-points__search-icon").removeClass("is-active");this.currentDataset=null};DatasetSearch.prototype.show=function(){if(PEnvironment.pageName=="dataloader"){return}if(!this.enabled||this.currentDataset==null){return}this.searchField.val("");this.searchBox.show()};DatasetSearch.prototype.update=function(datasetId){if(!this.enabled||datasetId==null||this.currentDataset!=null&&this.currentDataset.id==datasetId){return}var dataset=null;var sets=map.getOverlaySets(false,true);for(var i=0;i<sets.length;i++){if(sets[i].id==datasetId){dataset=sets[i];break}}this.currentDataset=dataset;if(dataset!=null){this.show()}else{this.reset()}};DatasetSearch.prototype.search=function(){if(!this.enabled){return}var ds=this;var searchText=this.searchField.val();if(searchText.length<1){return}var setId=this.currentDataset.id;var setType=this.currentDataset.type;var act=setType=="old"?"d":"dd";ajax.call({url:PEnvironment.autosuggestUrl+"&rqid=1&act="+act+"&di="+setId+"&ss="+encodeURIComponent(searchText),dataType:"json",context:this,success:function(response){if(response==null||response.ast==null||response.ast.results==null){return}if(response.ast.results.length<1){alerter.popup('No sites matching the search term "'+searchText+'" were found.',"OK");return}ds.loadSite(response.ast.results[0]);ds.autosuggest.removeAutoSuggest()}})};DatasetSearch.prototype.loadSite=function(site){var ds=this;switch(site.type){case 7:var sitePoint=new PLatLng(site.lat,site.lng);var z=map.getCurrentMapType().getScales().length-3;map.setCenter(sitePoint,z);var filters=this.currentDataset.createQuery();map.identifyItem(site.did,site.dt,site.iid,filters,function(markers){ds.displayInfoBubble(ds,site,markers)});break;case 8:case 9:case 10:polycreator.polyload(this.currentDataset.bdid,site.name,site.lat,site.lng,function(poly){if(poly[0]){var bounds=poly[0].getBounds();var centroid=poly[0].getCentroid();var zoomLevel=map.getBoundsZoomLevel(bounds);map.setCenter(centroid,zoomLevel);var filters=ds.currentDataset.createQuery();map.identifyItem(site.did,site.dt,site.iid,filters,function(markers){ds.displayInfoBubble(ds,site,markers)})}});break}};DatasetSearch.prototype.displayInfoBubble=function(ds,site,markers){if(markers.length>0){PMIdentificationModule.buildInfoWindow(markers)}else{var filters=false;for(var group in ds.currentDataset.filtergroups){var filters=ds.currentDataset.filtergroups[group];if(filters.length>0&&!filters[0].name.match("_HIDE")){filters=true;break}}if(filters){alerter.popup("The site you're searching for has been filtered and will not display. Please clear all filters to view this site.","OK");map.identifyItem(site.did,site.dt,site.iid,null,function(markers){ds.displayInfoBubble(ds,site,markers)})}}};DatasetSearch.prototype.setCurrentDataset=function(dataset){if(!this.enabled){return}this.currentDataset=dataset};DatasetSearch.prototype.getCurrentDataset=function(){if(!this.enabled){return null}return this.currentDataset};DatasetAutocomplete=function(taxonomyMenu,_formElement,_position,_fromCP){var self=this;var $datasetSearchForm=$(_formElement);var position=_position||{my:"left top",at:"left bottom"};var fromCP=_fromCP||false;if(fromCP===true){jQuery.widget("ui.autocomplete",jQuery.ui.autocomplete,{_close:function(){return true}})}var $showing=$('<div class="showingResults"><div class="insideShowing">Showing <span class="firstNumber number"></span> of <span class="secondNumber number"></span> results</div></div>');$("body").append($showing);var currentSearchTerm="";var currentSearchIndex=0;var currentItems=[];var displayedItemCount=0;var resultCount=0;var executionTime;var queryType=null;var override=null;$datasetSearchForm.removeAttr("disabled");$datasetSearchForm.on("focus",function(){$(this).select()});var scrollFunction=function(){if($(this).scrollTop()+$(this).innerHeight()>=$(this)[0].scrollHeight){$(this).off("scroll");$datasetSearchForm.autocomplete("search")}};var types="2,7";this.setTypes=function(_types){types=_types};this.getSelector=function(){return $datasetSearchForm};this.repeatSearch=function(){this.resetSearch();$datasetSearchForm.autocomplete("search")};this.hideSearch=function(){$showing.hide();$(".datasetsearch").hide()};this.getResultCount=function(){return resultCount};this.getCurrentCount=function(){return displayedItemCount};this.getCurrentSearchTerm=function(){return currentSearchTerm};this.setOverride=function(_override){override=_override};this.resetSearch=function(resetTerm){if(resetTerm!=null&&resetTerm===true){currentSearchTerm=""}currentItems=[];queryType=null;displayedItemCount=0;$(".datasetsearch").scrollTop(0)};$datasetSearchForm.autocomplete({position:position,delay:500,minLength:3,focus:function(e,ui){return false},hover:function(e,ui){return false},source:function(request,response){$datasetSearchForm.addClass("searchSpinner");$(".loadingMore").css("visibility","visible");if(request.term!=currentSearchTerm){self.resetSearch()}currentSearchTerm=request.term;var offset=displayedItemCount;var limit=10;currentSearchIndex++;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=dsch&dsss="+request.term+"&dsci="+currentSearchIndex+"&dsst="+types+"&dsof="+offset+"&dsli="+limit+(override?"&dsov="+override:"")+(queryType?"&dsqt="+queryType:"")+(fromCP?"&p=1&d=1":""),pleaseWait:false,success:function(data){$datasetSearchForm.removeClass("searchSpinner");$(".loadingMore").css("visibility","hidden");if(!$datasetSearchForm.is(":visible")){self.resetSearch(true);return}if(typeof data=="object"&&typeof data.dsch=="object"&&typeof data.dsch.results=="object"){if(data.dsch.currentSearchIndex!=currentSearchIndex){return}if(data.dsch.results.length==0&&displayedItemCount>0){$(".scrollToLoadMoreLi").remove();return}if(data.dsch.count!=null){$showing.hide();resultCount=data.dsch.count}if(data.dsch.queryType!=null){queryType=data.dsch.queryType}if(data.debug!=null&&data.debug.executionTime!=null){executionTime=data.debug.executionTime}for(var i in data.dsch.results){var d=data.dsch.results[i];var callback=d.callback;var description=d.description||"";var full_label=d.full_label||d.name||"";var id=d.id;var path="No match in the PM proper taxonomy. This is not implemented for user datasets.";if(d.path!=null){path="";var last="";var first=true;for(var j in d.path){if(first===true){first=false}else{path+=" &raquo;"}path+=d.path[j];last=d.path[j]}if(d.full_label==null||d.full_label==""){full_label=last}}var type=d.type||-1;var source=d.data_source_name;var hasAccess=d.has_access;var nodeInfo=taxonomyMenu.datasetSearch(d.type,d.id);if(nodeInfo.length>0){var node=nodeInfo[0];callback=node.callback;path=node.path||path;if(d.type==7){full_label=node.shortLabel}}else{}if(fromCP===true){callback=function(x){return function(){refreshDataset(x)}}(d)}displayedItemCount++;var last=false;if(displayedItemCount==resultCount){last=true}currentItems.push({callback:callback,description:description,full_label:full_label,id:id,index:displayedItemCount,path:path,hasAccess:hasAccess,type:type,last:last,source:source,searchTerm:currentSearchTerm,value:currentSearchTerm,words:d.words})}if(currentItems.length==0){self.resetSearch();currentItems.push({index:1,path:null,callback:null,type:0,description:"",full_label:'<span class="boldText">No results found.</span> Try entering a different search term.'});response(currentItems)}else{$showing.find(".firstNumber").text(currentItems.length);$showing.find(".secondNumber").text(resultCount);if(fromCP===true){$("#searchTook").remove();$showing.find(".insideShowing").append($('<span id="searchTook"> ('+executionTime+")</span>"));if(data.dsch.queryType=="AND"){$("#queryType").css("color","green")}else{$("#queryType").css("color","red")}$("#queryType").html(data.dsch.queryType);$(".queryInfo").html("Query: <strong>"+data.dsch.results[0].query+"</strong>")}$showing.show();response(currentItems);var setScroll=function(){if(!$(".datasetsearch").is(":visible")){return}$(".datasetsearch").on("scroll",scrollFunction);$(".datasetsearch").trigger("scroll")};setTimeout(setScroll,1e3)}}}})},create:function(event,ui){disableWheelScrollPropagation(".datasetsearch")},select:function(event,ui){if(ui.item.type==0||ui.item.type==-1){}else{if(typeof ui.item.callback=="function"){P.instances.searchItem=ui.item;ui.item.callback()}}},search:function(){$(".datasetsearch").off("scroll")},open:function(){$(this).removeClass("ui-corner-all").addClass("ui-corner-top");if(displayedItemCount>0){$showing.css({top:$(".datasetsearch").offset().top,left:$(".datasetsearch").offset().left});$(".datasetsearch").css({top:$(".datasetsearch").offset().top+30})}$(".datasetsearch").off("mouseenter")},close:function(){$showing.hide();self.resetSearch(true);$(this).removeClass("ui-corner-top").addClass("ui-corner-all")}});$datasetSearchForm.autocomplete("instance")._renderMenu=function(ul,items){var that=this;ul.addClass("searchdropdown datasetsearch");if(PEnvironment.isWidget&&inIframe()){ul.addClass("in-iframe")}$(".tooltip_templates").remove();var $holder=$("<div/>");$holder.addClass("tooltip_templates");$holder.appendTo($("body"));$.each(items,function(index,item){that._renderItemData(ul,item)});$(".searchTooltipIcon").tooltipster({side:"right",maxWidth:285,interactive:true,theme:["tooltipster-shadow","tooltipster-shadow-policymap"]});if(items[0].type==0||items[items.length-1].last==true){return}var $li=$('<li class="scrollToLoadMoreLi"><div class="scrollToLoadMore"><div>SCROLL TO LOAD MORE RESULTS...<span class="loadingMore"> <img src="/images/busy_transparent_purple.gif"></span></div></div></li>');$li.data("ui-autocomplete-item",{value:""});ul.append($li)};$datasetSearchForm.autocomplete("instance")._renderItem=function(ul,item){var maxTitleLength=90;var maxBreadcrumbLength=139;var $li=$("<li/>");if(item.type==0){$li=$("<li/>");$li.addClass("noresults");var $msg=$("<div/>");$msg.addClass("noresults");$msg.append(item.full_label);$li.append($msg);ul.append($li);return $li}if(item.hasAccess===false){$li.addClass("noAccess")}if(isCBClone()||isWidgetPage()){$li.addClass("no-color")}var $container=$("<div/>");$container.addClass("searchContainer");$li.append($container);var $leftcolumn=$("<span/>");$leftcolumn.addClass("leftcol");var $icon=$("<img/>");if(item.type===2){$icon.attr("src","/images/a_pixel.gif").addClass("layericon").width("24px").height("10px")}else if(item.type===7){$icon.attr("src","/images/a_pixel.gif").addClass("pointicon").width("10px").height("17px")}else if(item.type===10){$icon.attr("src","/images/a_pixel.gif").addClass("usericon").width("24px").height("24px")}else if(item.type==-1){$li.addClass("tail");$icon.attr("src","/images/a_pixel.gif").width("24px").height("10px")}else{$icon.attr("src","/images/a_pixel.gif").width("24px").height("10px")}$leftcolumn.append($icon)
;$container.append($leftcolumn);var $rightcolumn=$("<span/>");$rightcolumn.addClass("rightcol");$container.append($rightcolumn);var $label=$("<div/>");if(item.full_label.length>maxTitleLength){item.full_label=item.full_label.substr(0,maxTitleLength-3)+"..."}$label.append(item.full_label);$label.addClass("searchlabel");$rightcolumn.append($label);if(item.type==2){var $holder=$(".tooltip_templates");var $infoIcon=$("<img/>");$infoIcon.addClass("searchTooltipIcon");$infoIcon.attr("src","/images/searchicons/info_default_gray.svg");var tooltipContentSelector="search-item-tooltip"+item.index;$infoIcon.attr("data-tooltip-content","#"+tooltipContentSelector);$label.append($infoIcon);var $span=$("<span/>");$span.attr("id",tooltipContentSelector);$span.html(item.description);$span.appendTo($holder);$(item.words).each(function(i){$span.mark(item.words[i],{element:"span",className:"highlight",acrossElements:true,accuracy:"exactly"})})}var $breadcrumbs=$("<div/>");$breadcrumbs.addClass("breadcrumbs");if(item.path){var breadcrumb=breadcrumbFormatter(item.path,maxBreadcrumbLength);var p=breadcrumb.split(/\s*&raquo;\s*/);try{var match=p[0].match(/(.*? Data)/);if(match){breadcrumb=breadcrumb.replace(match[1],"<span class='breadcrumbsMyData'>"+match[1]+"</span>")}}catch(e){}$breadcrumbs.append(breadcrumb)}else{$breadcrumbs.append("")}$rightcolumn.append($breadcrumbs);if(item.type!=10){var $source=$("<div/>");$source.addClass("source");$source.append("Source: "+item.source);$rightcolumn.append($source)}$(item.words).each(function(i){$li.mark(item.words[i],{element:"span",className:"highlight",acrossElements:true,caseSensitive:true})});ul.append($li);return $li}};function breadcrumbFormatter(path,_max_length){var max_length=_max_length;var parts=path.split(">");for(var i=0;i<parts.length;i++){parts[i]=parts[i].trim()}var lastPart="";var newParts=[];for(i=0;i<parts.length;i++){if(parts[i]!=lastPart){newParts.push(parts[i])}lastPart=parts[i]}parts=newParts;var output=parts.join(" &raquo; ");if(output.length>max_length){var recursion=function(_parts,_max_length){var longest=0;var index=0;for(var i=1;i<_parts.length;i++){if(_parts[i].length>longest){longest=_parts[i].length;index=i}}_parts[index]=_parts[index].substr(0,_parts[index].length-4)+"...";if(_parts.join(" &raquo; ").length<_max_length){return _parts}return recursion(_parts,_max_length)};var fixedParts=recursion(parts,max_length);output=fixedParts.join(" &raquo; ")}return output}function rebuildDropkick(dropdownId,options){$("#dk_container_"+dropdownId).remove();$("#"+dropdownId).off();$("#"+dropdownId).chosen({width:options.width,disable_search:true});$("#"+dropdownId).on("change",options.change);if($("#"+dropdownId).attr("disabled")){disableDropkick(dropdownId)}}function selectDropkickItem(dropdownId,value,options){$("#"+dropdownId).val(value);rebuildDropkick(dropdownId,options)}function disableDropkick(dropdownId){$("#"+dropdownId).prop("disabled",true).trigger("chosen:updated")}function enableDropkick(dropdownId){$("#"+dropdownId).prop("disabled",false).trigger("chosen:updated")}function collapseDropkick(dropdownId){$("#"+dropdownId).trigger("chosen:close")}DynamicNamedFeature=function(){this.names={};this.updateNames()};DynamicNamedFeature.prototype.getName=function(feature){if(this.names[feature]!=null){return this.names[feature]}else{return""}};DynamicNamedFeature.prototype.updateNames=function(noReplace){if(PEnvironment.isPolicyMap){this.names["mySavedWork"]="My Saved Work";this.names["myCustomRegions"]="My Custom Regions";this.names["myDataTab"]="My Data";this.names["myUploadedData"]="My Uploaded Data"}else{if(isPublicUser()||isAutoLoginUser()){this.names["mySavedWork"]="Saved Work";this.names["myCustomRegions"]="Saved Custom Regions";this.names["myUploadedData"]="Data Uploaded By Users"}else{this.names["mySavedWork"]="My Saved Work";this.names["myCustomRegions"]="My Saved Custom Regions";if(productProperty.getValue("require_login")&&productProperty.getValue("disable_dataloader_public_permission")&&$(".my-data-menu__me-others__content").length==0){this.names["myUploadedData"]="Data Loaded By Me"}else{this.names["myUploadedData"]="Data Loaded By Me or Other Users"}}var currentMyDataLabel=$.trim($(".taxonomy__tab--my-data").text());if(currentMyDataLabel=="My Data"||currentMyDataLabel=="Uploaded Data"){if(isPublicUser()||isAutoLoginUser()){this.names["myDataTab"]="Uploaded Data"}else{this.names["myDataTab"]="My Data"}}else{this.names["myDataTab"]=currentMyDataLabel}}if(noReplace==null||noReplace!==true){$(".my-policymap-title").text(this.names["mySavedWork"]);$(".my-custom-regions-title").text(this.names["myCustomRegions"]);$(".my-data-tab-title").text(this.names["myDataTab"]);$(".my-uploaded-data-title").text(this.names["myUploadedData"])}};P.GoogleMap=function(mapType){this.debug=new P.Debug;this.showing=false;this.loaded=false;this.loading=false;this.mapDivName="googleMap";this.$controlsContainer=$(".googlemap-controls");this.initMapType="satellite";if(mapType){this.initMapType=mapType}this.indicatorOn=true;this.indicatorShowing=false;this.overlayMaps={};this.roundRobin=[0,0,0,0];this.startZoom=17;this.maxZoom=21;this.baseSend=PEnvironment.dataServicesUrl+"?";this.sid="&sid="+PEnvironment.productId;this.SVGOverlays=[];this.debugLayer={};this.debugLayer.opacity=.5;this.defaults={};this.defaults.mapOptions={};this.defaults.indicator={};this.defaults.polygons={};this.defaults.lineWidth=1;this.defaults.polygonLineWidth=3;this.defaults.opacity=.75;this.defaults.polygons.color="0070FF";this.defaults.mapOptions.opacity=.5;this.current={};this.current.indicator={};this.current.mapOptions=[];this.current.polygons=[];this.current.tileTypes={};this.current.tileTypes.mapOptions=false;this.current.tileTypes.indicator=false;this.current.tileTypes.polygons=false;this.current.indicator.opacity=this.defaults.opacity;this.current.indicator.opacityText=this.defaults.opacity*100;this.geoBoundaryId=0;this.polygons=[89300,9e4,90100,90200,90300,90450,90500,90550,92050,92200,92900,94e3,94200,95200,95600,95850,96100,96600,96650];this.currentBoundaries={};this.currentBoundaryIds="";this.boundariesToId=[];this.boundariesToId.pp_statebounds=2;this.boundariesToId.pp_cbsabounds07=201;this.boundariesToId.pp_mdbounds07=202;this.boundariesToId.pp_csubbounds=21;this.boundariesToId.countybounds=4;this.boundariesToId.pp_placebounds=16;this.boundariesToId.pp_zipbounds=8;this.boundariesToId.tractbounds=6;this.boundariesToId.blkgrpbounds=15;this.boundariesToId.parcels=22;this.boundariesToId.pp_congdistbounds=23;this.boundariesToId.pp_sldubounds=48;this.boundariesToId.pp_sldlbounds=49;this.boundariesToId.prox_schdistbounds=42;this.boundariesToId.pp_cdbgbounds=76;this.boundariesToId.parcels_camden_nj=204;this.boundariesToId.pp_chiwardbounds=205;this.boundariesToId.pp_chicabounds=206;this.boundariesToId.pp_njrentmktbounds=207};P.GoogleMap.prototype.load=function(){if(this.loading===true){return}if(this.loading===false&&this.loaded===false){this.loading=true}if(this.loaded===false){this.appendJS("//maps.googleapis.com/maps/api/js?key="+PEnvironment.googleMapsApiKey+"&callback=P.instances.googleMap.init")}};P.GoogleMap.prototype.toggle=function(){if(this.loaded===false){this.load();return}if(this.isChecked()){this.show()}else{this.hide()}};P.GoogleMap.prototype.init=function(){var self=this;this.loading=false;this.loaded=true;if(typeof P.instances.map==="object"){this.pMapDiv=$(P.instances.map.getContainer());this.mapDiv=$("<div />");this.mapDiv.attr("id",this.mapDivName);this.mapDiv.addClass("map--split");this.pMapDiv.after(this.mapDiv)}else{throw"No map object to attach to."}if(!google.maps.Polygon.prototype.getBounds){google.maps.Polygon.prototype.getBounds=function(latLng){var bounds=new google.maps.LatLngBounds;var paths=this.getPaths();var path;for(var p=0;p<paths.getLength();p++){path=paths.getAt(p);for(var i=0;i<path.getLength();i++){bounds.extend(path.getAt(i))}}return bounds}}this.overlayMaps.base={getTileUrl:function(c,z){self.roundRobin[0]++;if(self.roundRobin[0]>1){self.roundRobin[0]=0}return"//mt"+self.roundRobin[0]+".google.com/vt/lyrs=s&hl=en&x="+c.x+"&y="+c.y+"&z="+z},tileSize:new google.maps.Size(256,256),maxZoom:23,minZoom:0,isPng:true,name:"base"};this.overlayMaps.terrain={getTileUrl:function(c,z){self.roundRobin[0]++;if(self.roundRobin[0]>1){self.roundRobin[0]=0}return"//mt"+self.roundRobin[0]+".google.com/vt/lyrs=p&hl=en&x="+c.x+"&y="+c.y+"&z="+z},tileSize:new google.maps.Size(256,256),maxZoom:23,minZoom:0,isPng:true,name:"base"};this.overlayMaps.label={getTileUrl:function(c,z){self.roundRobin[2]++;if(self.roundRobin[2]>1){self.roundRobin[2]=0}return"//mt"+self.roundRobin[2]+".google.com/vt?lyrs=h@135&src=apiv3&hl=en-US&apistyle=p.v:off,s.t:1|p.v:on,s.t:2|p.v:on,s.t:3|p.v:on,s.t:6|p.v:on&x="+c.x+"&y="+c.y+"&z="+z},tileSize:new google.maps.Size(256,256),maxZoom:23,minZoom:0,isPng:true};this.overlayMaps.boundary={getTileUrl:function(c,z){var url=self.baseSend+"ty=tile&t=bnd"+self.sid+"&blw="+self.defaults.lineWidth+"&bcc="+"000000"+"&x="+c.x+"&y="+c.y+"&z="+z+"&mo="+self.current.boundaryTypeId;self.debug.log(P.Debug.DEBUG3,url);return url},opacity:self.defaults.mapOptions.opacity,tileSize:new google.maps.Size(256,256),maxZoom:23,minZoom:0,isPng:true};this.overlayMaps.indicator={getTileUrl:function(c,z){var indicator=self.current.indicator;var url=self.baseSend+"ty=tile&t=ind"+self.sid+"&x="+c.x+"&y="+c.y+"&z="+z+"&ii="+indicator.id+"&tfi="+indicator.periodids[indicator.periodIndex]+"&ilw="+indicator.lineWidth+"&bt="+indicator.boundaryType+"&ir="+indicator.breaksText+"&crc="+indicator.colors;self.debug.log(P.Debug.DEBUG3,url);return url},opacity:self.current.indicator.opacity,tileSize:new google.maps.Size(256,256),maxZoom:23,minZoom:0,isPng:true};this.overlayMaps.polygons={getTileUrl:function(c,z){var polygon=self.current.polygon;var extra="";if(polygon.filters!=""){extra="&fl="+polygon.filters}var url=self.baseSend+"ty=tile&t=ply"+self.sid+"&x="+c.x+"&y="+c.y+"&z="+z+"&bi="+polygon.ids+"&fcc="+polygon.colors+"&flw="+polygon.lws+extra;self.debug.log(P.Debug.DEBUG3,url);return url},opacity:1,tileSize:new google.maps.Size(256,256),maxZoom:23,minZoom:0,isPng:true};this.overlayMaps.debug={getTileUrl:function(c,z){var url=self.baseSend+"ty=tile&t=dbg"+"&x="+c.x+"&y="+c.y+"&z="+z;self.debug.log(P.Debug.DEBUG3,url);return url},opacity:self.debugLayer.opacity,tileSize:new google.maps.Size(256,256),maxZoom:23,minZoom:0,isPng:true};var data=P.instances.map.getCenter();var mapOptions={zoom:P.instances.map.getZoom()+2,center:new google.maps.LatLng(data.latitude,data.longitude),mapTypeControl:false,rotateControl:false,panControl:false,scrollwheel:false,streetViewControl:false,zoomControl:false};this.map=new google.maps.Map(document.getElementById(this.mapDivName),mapOptions);this.layerLevel={};this.layerLevel.base=0;this.layerLevel.satellite=1;this.layerLevel.terrain=2;this.layerLevel.boundary=3;this.layerLevel.indicator=4;this.layerLevel.debug=5;this.layerLevel.label=6;this.layerLevel.polygons=7;this.map.overlayMapTypes.clear();this.map.overlayMapTypes.push(null);this.map.overlayMapTypes.push(null);this.map.overlayMapTypes.push(null);this.map.overlayMapTypes.push(null);this.map.overlayMapTypes.push(null);this.map.overlayMapTypes.push(null);this.map.overlayMapTypes.push(null);this.imageMapType={};this.imageMapType.base=new google.maps.ImageMapType(this.overlayMaps.base);this.imageMapType.terrain=new google.maps.ImageMapType(this.overlayMaps.terrain);this.imageMapType.boundary=new google.maps.ImageMapType(this.overlayMaps.boundary);this.imageMapType.indicator=new google.maps.ImageMapType(this.overlayMaps.indicator);this.imageMapType.debug=new google.maps.ImageMapType(this.overlayMaps.debug);this.imageMapType.label=new google.maps.ImageMapType(this.overlayMaps.label);this.imageMapType.polygons=new google.maps.ImageMapType(this.overlayMaps.polygons);google.maps.event.addDomListener(window,"resize",function(){self.resize()});google.maps.event.addListener(this.map,"zoom_changed",function(){self.checkZoom()});google.maps.event.addListener(this.map,"dragend",function(){var data=self.map.getCenter();P.instances.map.setCenter(new PLatLng(data.lat(),data.lng()))});$(window).on(P.events.MAP_RESIZED,function(){self.resize()});$(window).on(P.events.MAP_RESET,function(){self.hide()});$(window).on(P.events.LEGEND_UPDATED,function(){self.removeIndicator();self.addIndicator(P.instances.map.getLegend().getIndicator());self.indicatorLayerOff();self.indicatorLayer();self.refreshBoundaries()});$(window).on(P.events.OVERLAYSET_FILTER_CHANGED,function(){self.checkOverlaySet()});PEvent.addListener(P.instances.map,"moveend",function(){var data=P.instances.map.getCenter();self.map.setCenter(new google.maps.LatLng(data.latitude,data.longitude));google.maps.event.trigger(self.map,"resize")});PEvent.addListener(P.instances.map,"zoomend",function(){self.refreshBoundaries(true);self.map.setZoom(P.instances.map.getZoom()+2);self.checkZoom()});PEvent.addListener(P.instances.map,"addoverlay",function(overlay){self.checkSVGPolygons()});PEvent.addListener(P.instances.map,"removeoverlay",function(overlay){self.checkSVGPolygons()});PEvent.addListener(P.instances.map,"setindicator",function(overlay){self.addIndicator(overlay);self.indicatorLayer()});PEvent.addListener(P.instances.map,"removeindicator",function(overlay){self.indicatorOn=true;$("#indicatorToggle").prop("checked",true);self.removeIndicator();self.indicatorLayer()});PEvent.addListener(P.instances.map,"addoverlayset",function(overlay){self.checkOverlaySet(overlay)});PEvent.addListener(P.instances.map,"removeoverlayset",function(overlay){self.checkOverlaySet(overlay)});this.$indicatorOptions=$("<div />",{class:"indicator__options"});this.$controlsContainer.prepend(this.$indicatorOptions);this.toggleIndicator=$('<div id="indicator__toggle" class="is-hidden googleMapControlsCommon"><input id="indicatorToggle" type="checkbox" checked="checked" /><label for="indicatorToggle">Data Layer</label></div>');this.$indicatorOptions.prepend(this.toggleIndicator);this.toggleIndicator.on("change",function(){if($(this).find("input").is(":checked")){self.indicatorOn=true}else{self.indicatorOn=false}self.indicatorLayer()});this.indicatorOpacitySlider=$('<div id="indicatorOpacitySlider" class="is-hidden"></div>');this.$indicatorOptions.prepend(this.indicatorOpacitySlider);this.indicatorOpacitySlider.slider({min:0,max:100,value:self.current.indicator.opacityText,slide:function(event,ui){self.current.indicator.opacityText=ui.value;self.current.indicator.opacity=ui.value/100;self.indicatorOpacityTextDiv.text("Opacity: "+self.current.indicator.opacityText)},change:function(event,ui){self.imageMapType.indicator.setOpacity(self.current.indicator.opacity)}});this.indicatorOpacityTextDiv=$('<div id="indicatorOpacityTextDiv" class="googleMapControlsCommon is-hidden"></div>');this.indicatorOpacityTextDiv.text("Opacity: "+this.current.indicator.opacityText);this.$indicatorOptions.prepend(this.indicatorOpacityTextDiv);this.toggleLabels=$("#satellite__labels");this.toggleLabels.on("change",function(){if($(this).is(":checked")){self.map.overlayMapTypes.setAt(self.layerLevel.label,self.imageMapType.label)}else{self.map.overlayMapTypes.setAt(self.layerLevel.label,null)}});this.toggleSatellite=$("#satellite");this.toggleSatellite.on("change",function(){if(self.isChecked()){self.show()}else{self.hide()}self.clearMapType();if($(this).is(":checked")){self.toggleLabels.prop("checked",false);self.toggleTerrain.prop("checked",false);$(this).prop("checked",true);self.map.setMapTypeId("base");session.put("aerialShowing",true);self.map.overlayMapTypes.setAt(self.layerLevel.base,self.imageMapType.base);self.toggleLabels.prop("disabled",false);self.toggleLabels.prop("checked",true);self.$controlsContainer.addClass("has_labels");self.map.overlayMapTypes.setAt(self.layerLevel.label,self.imageMapType.label)}else{self.removeMapType(self.layerLevel.base)}});this.toggleTerrain=$("#terrain");this.toggleTerrain.on("change",function(){if(self.isChecked()){self.show()}else{self.hide()}self.clearMapType();if($(this).is(":checked")){self.toggleLabels.prop("checked",false);self.toggleSatellite.prop("checked",false);$(this).prop("checked",true);self.map.setMapTypeId("terrain");session.put("terrainShowing",true);self.map.overlayMapTypes.setAt(self.layerLevel.terrain,self.imageMapType.terrain);self.toggleLabels.prop("disabled",true);self.$controlsContainer.removeClass("has_labels");self.map.overlayMapTypes.setAt(self.layerLevel.label,null)}else{self.removeMapType(self.layerLevel.base)}});this.zoomBar=$('<div class="google-zoom-control">'+'<img src="/images/control_zoomin.png" class="google-zoom-control__control-images google-zoom-control__plus-image" id="googleZoomInImg" title="Zoom In">'+'<img src="/images/control_zoomout.png" class="google-zoom-control__control-images google-zoom-control__minus-image" id="googleZoomOutImg" title="Zoom Out">'+"</div>");this.mapDiv.append(this.zoomBar);this.zoomInImg=$("#googleZoomInImg");this.zoomOutImg=$("#googleZoomOutImg");this.zoomInImg.on("click",function(){self.map.setZoom(self.map.getZoom()+1)});this.zoomOutImg.on("click",function(){self.map.setZoom(self.map.getZoom()-1)});this.dividerDiv=$('<div id="googleDividerDiv" />');this.dividerDiv.addClass("map--divider");this.mapDiv.append(this.dividerDiv);this.pMapDiv.addClass("map--split");this.mapDiv.show();this.mapDiv.append(this.$controlsContainer);this.show();this.checkZoom();this.refreshBoundaries(true);this.checkOverlaySet();this.checkSVGPolygons();if(P.instances.map&&P.instances.map.getIndicator()!=null){this.addIndicator(P.instances.map.getIndicator());this.indicatorLayer()}var t=this.initMapType;if(t=="terrain"){this.toggleTerrain.prop("checked",true);this.toggleTerrain.trigger("change")}else if(t=="satellite"){this.toggleSatellite.prop("checked",true);this.toggleSatellite.trigger("change")}$(window).trigger(P.events.GOOGLE_MAP_LOADED);this.loaded=true};P.GoogleMap.prototype.removeMapType=function(type){this.map.overlayMapTypes.setAt(type,null);if(type==this.layerLevel.base){session.remove("aerialShowing")}else if(type==this.layerLevel.terrain){session.remove("terrainShowing")}};P.GoogleMap.prototype.clearMapType=function(){this.removeMapType(this.layerLevel.base);this.removeMapType(this.layerLevel.terrain)};P.GoogleMap.prototype.show=function(){if(this.showing===true){return}var center=P.instances.map.getCenter();this.pMapDiv.addClass("map--split");this.mapDiv.show();this.mapDiv.append(this.$controlsContainer);google.maps.event.trigger(this.map,"resize");this.pmapReset(center);this.showing=true};P.GoogleMap.prototype.hide=function(){if(this.showing===false){return}this.mapDiv.hide();var center=P.instances.map.getCenter();this.pMapDiv.removeClass("map--split");this.pMapDiv.append(this.$controlsContainer);this.pmapReset(center);this.showing=false};P.GoogleMap.prototype.isChecked=function(){var b=false;if($("#satellite").is(":checked")||$("#terrain").is(":checked")){b=true}return b};P.GoogleMap.prototype.resize=function(){if(P.instances.map&&P.instances.map.inPreview()){return}this.mapDiv.css("height",this.pMapDiv.css("height"));this.dividerDiv.css("height",this.pMapDiv.css("height"));google.maps.event.trigger(self.map,"resize")};P.GoogleMap.prototype.pmapReset=function(center){this.resize();P.instances.map.kamap.resize();P.instances.map.panTo(center)};P.GoogleMap.prototype.refreshBoundaries=function(dontZoom){if(typeof this.map==="object"){this.currentBoundaryIds="";var first=true;for(var i in this.currentBoundaries){if(this.boundariesToId[i]!==null){var scale=P.instances.map.getScale();if(scale<=this.currentBoundaries[i].maxScale&&scale>=this.currentBoundaries[i].minScale){if(first===true){first=false}else{this.currentBoundaryIds+=","}this.currentBoundaryIds+=this.boundariesToId[i]}}}this.current.tileTypes.bound=!first;if(dontZoom==null){this.map.setZoom(this.map.getZoom())}}};P.GoogleMap.prototype.checkOverlaySet=function(){this.current.polygons=[];this.current.polygon={};this.current.tileTypes.poly=false;var sets=P.instances.map.getOverlaySets();if(sets.length>0){for(var i=0;i<sets.length;i++){var polygon={};polygon.ids=[];polygon.filters=[];polygon.colors=[];polygon.lws=[];var set=sets[i];if(set.type=="dl"){continue}if(set.bdid!==null){this.current.tileTypes.poly=true;if(set.filtersbyicons.length>0){for(var z=0;z<set.filtersbyicons.length;z++){polygon.filters.push(set.createFilterQuery(set.filtersbyicons[z]));if(set.colorcodes!==null&&set.colorcodes[z]!==null){polygon.colors.push(set.colorcodes[z].color)}else{polygon.colors.push(this.defaults.polygons.color)}polygon.lws.push(this.defaults.polygonLineWidth)}}else{polygon.filters.push(set.createQuery(false));polygon.colors.push(this.defaults.polygons.color);polygon.lws.push(this.defaults.polygonLineWidth)}polygon.ids.push(set.bdid);this.current.polygons.push(polygon)}this.current.polygon={ids:polygon.ids.join(","),filters:polygon.filters.join(","),colors:polygon.colors.join(","),lws:polygon.lws.join(",")};break}}if(this.current.tileTypes.poly===true){this.map.overlayMapTypes.setAt(this.layerLevel.polygons,this.imageMapType.polygons)}else{this.map.overlayMapTypes.setAt(this.layerLevel.polygons,null)}};P.GoogleMap.prototype.appendJS=function(filename){var s=document.createElement("script");s.setAttribute("type","text/javascript");s.setAttribute("src",filename);document.getElementsByTagName("head")[0].appendChild(s)};P.GoogleMap.prototype.checkZoom=function(){var gzoom=P.instances.googleMap.map.getZoom();if(gzoom>=this.startZoom){this.zoomBar.show()}else{this.zoomBar.hide()}if(gzoom===this.startZoom){this.zoomOutImg.hide()}else{this.zoomOutImg.show()}if(gzoom===this.maxZoom){this.zoomInImg.hide()}else{this.zoomInImg.show()}};P.GoogleMap.prototype.removeIndicator=function(){this.indicatorShowing=false;this.current.indicator={};this.overlayMaps.indicator.opacity=this.current.indicator.opacity=this.defaults.opacity;this.current.indicator.opacityText=this.defaults.opacity*100;this.toggleIndicator.addClass("is-hidden")};P.GoogleMap.prototype.addIndicator=function(ind){if(ind!=null){var legend=map.getLegend();this.current.indicator={id:ind.id,periodids:ind.periodids,lineWidth:this.defaults.lineWidth,periodId:ind.periodids[ind.curPerIndex],periodIndex:ind.curPerIndex,boundaryType:ind.legend._boundaryType.id,breaksText:ind.breaks[ind.curPerIndex][ind.legend._boundaryType.id][legend.getNumberOfBreaks()],colors:P.instances.map.getLegend().getColors().join(","),on:true};if(ind.nodata!=null){this.current.indicator.breaksText=ind.nodata+","+this.current.indicator.breaksText}this.indicatorShowing=true;this.toggleIndicator.removeClass("is-hidden")}};P.GoogleMap.prototype.indicatorLayer=function(){if(this.indicatorOn===true&&this.indicatorShowing===true){this.indicatorLayerOn()}else{this.indicatorLayerOff()}};P.GoogleMap.prototype.indicatorLayerOn=function(){this.map.overlayMapTypes.setAt(this.layerLevel.indicator,this.imageMapType.indicator);this.indicatorOpacitySlider.removeClass("is-hidden");this.indicatorOpacityTextDiv.removeClass("is-hidden")};P.GoogleMap.prototype.indicatorLayerOff=function(){this.map.overlayMapTypes.setAt(this.layerLevel.indicator,null);this.indicatorOpacitySlider.addClass("is-hidden");this.indicatorOpacityTextDiv.addClass("is-hidden")};P.GoogleMap.prototype.checkSVGPolygons=function(){this.clearSVGPolygons();if(P.instances.map!==null&&P.instances.map.overlays!==null){for(var x=0;x<P.instances.map.overlays.length;x++){var gpaths=[];var overlay=P.instances.map.overlays[x];if(overlay instanceof PPolyline){for(var y=0;y<overlay.points.length;y++){var gll=new google.maps.LatLng(overlay.points[y].latitude,overlay.points[y].longitude);gpaths.push(gll)}}var polyline={path:gpaths,strokeColor:overlay.color,strokeOpacity:overlay.opacity,strokeWeight:overlay.weight};var poly=new google.maps.Polyline(polyline);poly.setMap(this.map);this.SVGOverlays.push(poly)}}};P.GoogleMap.prototype.clearSVGPolygons=function(){for(var i in this.SVGOverlays){this.SVGOverlays[i].setMap(null);delete this.SVGOverlays[i]}this.SVGOverlays=new Array};var hoverLoader=0;function loadHovers(){hoverLoader++;hoverSVGObj=new hoverSVG;hoverSVGObj.addBoundaries()}function hoverSVG(){this.opacity=0;this.stroke=1;this.color="#000000";this.places=new Array;this.minx=0;this.miny=0;this.maxx=0;this.maxy=0;this.firstPolygon=true;this.padding=300;this.svg_ns="http://www.w3.org/2000/svg";var xlink_ns="http://www.w3.org/1999/xlink";this.svg=document.createElementNS(this.svg_ns,"svg");this.svg.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",xlink_ns);this.svg.setAttributeNS(null,"version","1.1");this.svg.setAttributeNS(null,"overflow","visible");this.svg.style.position="absolute";this.svg.style.zIindex=10001;var s=document.createElementNS(this.svg_ns,"script");s.setAttributeNS(xlink_ns,"type","text/ecmascript");s.setAttributeNS(xlink_ns,"xlink:href","/js/svg.js");this.svg.appendChild(s)}hoverSVG.prototype.addBoundaries=function(){var bounds=map.getBounds();bounds.getPlacesWithin(PPlaceTypeConfig.PPLACECONTAINMENT.getTypeByAbsoluteZoom(map.getZoom(),true),null,null,function(places){for(var i=0;i<places.length;i++){if(places[i].country=="United States"){hoverSVGObj.addBoundary(places[i])}}hoverSVGObj.plotBoundaries()})};hoverSVG.prototype.addBoundary=function(place){var polygons=place.getVertices();var stuff=new Object;stuff.label=place.label;var centerpoint=map.mapType.projection.fromLatLngToPixel(place.centroid);stuff.center=[centerpoint.x,centerpoint.y];stuff.data=new Array;for(var v=0;v<polygons.length;v++){var polygon=polygons[v];for(var i=0;i<polygon.length;i++){var first;var projectedpoint=map.mapType.projection.fromLatLngToPixel(polygon[i]);var xy=[projectedpoint.x,projectedpoint.y,false];if(xy!=null){var x=xy[0];var y=xy[1];if(this.firstPolygon||x<this.minx){this.minx=x;this.minLon=polygon[i].longitude}if(this.firstPolygon||y<this.miny){this.miny=y;this.minLat=polygon[i].latitude}if(this.firstPolygon||x>this.maxx){this.maxx=x;this.maxLon=polygon[i].longitude}if(this.firstPolygon||y>this.maxy){this.maxy=y;this.maxLat=polygon[i].latitude}if(i==0){first=xy;first[2]=true}stuff.data.push(xy);this.firstPolygon=false}}stuff.data.push(first)}this.places.push(stuff)};hoverSVG.prototype.plotBoundaries=function(){if(this.minx<0)this.offx=Math.abs(this.minx);if(this.miny<0)this.offy=Math.abs(this.miny);for(var i=0;i<this.places.length;i++){var place=this.places[i];var pathString="";var p=document.createElementNS(this.svg_ns,"path");p.setAttribute("stroke-linejoin","round");p.setAttribute("stroke-linecap","round");p.setAttribute("stroke-opacity",this.opacity);p.setAttribute("stroke-width",this.stroke);p.setAttribute("stroke",this.color);p.setAttribute("fill","black");p.setAttribute("fill-opacity","0");p.setAttribute("centerx",place.center[0]+this.offx+this.padding);p.setAttribute("centery",place.center[1]+this.offy+this.padding);p.setAttribute("onmouseover","hoverShow(evt)");p.setAttribute("onmouseout","hoverHide(evt)");p.setAttribute("onclick","hoverClick(evt)");var desc=document.createElementNS(this.svg_ns,"desc");var t=document.createTextNode(place.label);desc.appendChild(t);p.appendChild(desc);for(var z=0;z<place.data.length;z++){var data=place.data[z];var x=data[0];var y=data[1];var first=data[2];var dataString=x+this.offx+this.stroke+this.padding+" "+(y+this.offy+this.stroke+this.padding);pathString+=first==true?"M":" L";pathString+=dataString}p.setAttribute("d",pathString);this.svg.appendChild(p)}var g=document.createElementNS(this.svg_ns,"g");g.setAttributeNS(null,"id","infoBubble");g.setAttributeNS(null,"opacity","1");g.setAttributeNS(null,"visibility","hidden");g.setAttributeNS(null,"pointer-events","none");this.svg.appendChild(g);var path=document.createElementNS(this.svg_ns,"path");path.setAttributeNS(null,"fill-opacity","0.5");path.setAttributeNS(null,"fill-rule","evenodd");path.setAttributeNS(null,"stroke-width","2.5");path.setAttributeNS(null,"d","m89.69019,40.06386l336.9598,2.3983c20.81299,0.1481 56.056,5.474 63.55399,34.7749c8.66101,38.5328 11.547,211.94778 -2.39899,238.6308c-10.28101,21.521 -19.828,28.698 -29.97702,34.77399c-30.065,14.44302 -170.28,11.99103 -170.28,11.99103l-178.67169,100.72897l115.11769,-101.92798l-145.09619,0.00098c-20.36009,0 -38.9787,-12.80399 -45.5673,-40.77197c-11.47156,-50.78302 -13.70463,-193.21301 -2.3984,-226.63781c10.7142,-30.5384 28.72081,-54.175 58.75811,-53.9612z");g.appendChild(path);path=document.createElementNS(this.svg_ns,"path");path.setAttributeNS(null,"fill","#ffffff");path.setAttributeNS(null,"fill-rule","evenodd");path.setAttributeNS(null,"stroke","#000000");path.setAttributeNS(null,"stroke-width","10");path.setAttributeNS(null,"stroke-linejoin","round");path.setAttributeNS(null,"d","m76.7452,28.737l336.95979,2.3983c20.81302,0.1481 56.056,5.474 63.55402,34.7749c8.66101,38.5328 11.547,211.9478 -2.39902,238.63078c-10.28098,21.52103 -19.82797,28.69803 -29.97699,34.77402c-30.065,14.44299 -170.28,11.991 -170.28,11.991l-178.6717,100.729l115.1177,-101.92801l-145.0962,0.00101c-20.3601,0 -38.9787,-12.80402 -45.5673,-40.772c-11.47156,-50.78299 -13.70463,-193.213 -2.3984,-226.6378c10.7142,-30.53839 28.7208,-54.175 58.7581,-53.9612z");path.setAttributeNS(null,"onclick","bubbleClick(evt)");g.appendChild(path);g=document.createElementNS(this.svg_ns,"g");g.setAttributeNS(null,"id","toolTip");g.setAttributeNS(null,"opacity","1");g.setAttributeNS(null,"visibility","hidden");g.setAttributeNS(null,"pointer-events","none");this.svg.appendChild(g);var rect=document.createElementNS(this.svg_ns,"rect");rect.setAttributeNS(null,"id","tipBox");rect.setAttributeNS(null,"x","0");rect.setAttributeNS(null,"y","5");rect.setAttributeNS(null,"width","88");rect.setAttributeNS(null,"height","20");rect.setAttributeNS(null,"rx","2");rect.setAttributeNS(null,"ry","2");rect.setAttributeNS(null,"fill","white");rect.setAttributeNS(null,"stroke","none");g.appendChild(rect);var text=document.createElementNS(this.svg_ns,"text");text.setAttributeNS(null,"id","tipText");text.setAttributeNS(null,"x","5");text.setAttributeNS(null,"y","20");text.setAttributeNS(null,"font-family","Arial");text.setAttributeNS(null,"font-size","12");g.appendChild(text);var tspan=document.createElementNS(this.svg_ns,"tspan");tspan.setAttributeNS(null,"id","tipDesc");tspan.setAttributeNS(null,"dx","5");tspan.setAttributeNS(null,"font-weight","bold");text.appendChild(tspan);this.svg.setAttributeNS(null,"width",Math.abs(this.maxx-this.minx+this.padding*2)+"px");this.svg.setAttributeNS(null,"height",Math.abs(this.maxy-this.miny+this.padding*2)+"px");var icon=new PIcon;icon.iconSize=new PSize(1,1);map.addOverlay(new PMarker(new PLatLng(this.minLat,this.minLon),icon));overlay=map.overlays[map.overlays.length-1];var top=parseInt(overlay.image.style.top);var left=parseInt(overlay.image.style.left);this.svg.style.top=top-this.padding+"px";this.svg.style.left=left-this.padding+"px";$("#hoverSVG").remove();var div=$("<div/>");div.attr("style","position: absolute; left: 0px; top: 0px; width: 3000px; height: 3000px; z-index: 101");div.attr("id","hoverSVG");div.append(this.svg);$("#merged").after(div)};function globalOnLoad(){populateAggregation(PPlaceTypeConfig2.AGGREGATION);if(productProperty.exists("center_point")){var pointString=productProperty.getValue("center_point");var points=pointString.split(",");if(points.length==2){customLng=points[0];customLat=points[1]}}if(productProperty.exists("zoom")){customZoom=productProperty.getValue("zoom")}if(productProperty.exists("live_map_boundary_island")){placeLoader.load(productProperty.getValue("live_map_boundary_island"),function(places){if(places.length>0){liveMapBoundaryIsland=places[0]}})}}function switchUserWarning(callback,newUser){if(PEnvironment.isPolicyMap){callback()}if(newUser==null||newUser!==true){newUser=false}if(PEnvironment.pageName=="maps"||PEnvironment.pageName=="analytics"){if(polycreator&&polycreator.getCustomPlacesCount()>0){
var alertText=(newUser?"Creating an account":"Logging in")+" requires removing all custom regions that are currently on the map. Do you wish to continue?";alerter.popup(alertText,"No","Yes",function(){var placesToRemove=[];for(id in polycreator.customPlaces){placesToRemove.push(polycreator.customPlaces[id].place)}for(var i=0;i<placesToRemove.length;i++){polycreator.removeCustomRegionFromMap(placesToRemove[i])}callback()});return}}else if(PEnvironment.pageName=="tables"){if(polycreator&&polycreator.getCustomPlacesCount()>0){var alertText=(newUser?"Creating an account":"Logging in")+" requires removing all custom regions that are currently in the table. Do you wish to continue?";alerter.popup(alertText,"No","Yes",function(){var placesToRemove=[];for(var i=0;i<global_places.length;i++){var curPlace=global_places[i];if(curPlace.getType()==PPlaceType.CUSTOM){placesToRemove.push(curPlace)}}for(var i=0;i<placesToRemove.length;i++){cube.remove(placesToRemove[i])}callback()});return}}else if(PEnvironment.pageName=="reports"||PEnvironment.pageName=="report_generate"){if(ajax.activeRequests>0){var alertText="Cannot "+(newUser?"create a new account":"login")+" while a report is generating. Please wait until it has finished and try again.";alerter.popup(alertText,"OK");return}if(reportObject.locationType&&reportObject.locationType=="custom"){var alertText=(newUser?"Creating an account":"Logging in")+" requires closing this custom region report. Do you wish to continue?";alerter.popup(alertText,"No","Yes",function(){resetReportPage();callback()});return}}else if(PEnvironment.pageName=="dataloader"){if(sitecreator!=null){var alertText=(newUser?"Creating an account":"Logging in")+" requires closing the current dataset. All unsaved changes will be lost. Do you wish to continue?";alerter.popup(alertText,"No","Yes",function(){$("#datasetEditor").hide();clearDataset();if(whichDataloaderTab()==2){updateUserDatasetList()}callback()});return}}callback()}function showLoginModal(warning,redirect){switchUserWarning(function(){alerter.close();var reArg="";if(redirect!=null){reArg="?r="+encodeURIComponent(redirect)}var modalProperties={body:"<iframe src='/modal-login"+reArg+"&sid="+PEnvironment.productId+"' width='270' height='360' border='0'></iframe>",header:"Log in",size:"modal-sm"};if(PEnvironment.isPolicyMap){modalProperties.footer="Don't have an account? <a href='/subscribe'>Sign up here</a>.";modalProperties.shadeFooter=true}else{modalProperties.footer=false}modal.popup(modalProperties)},false)}function showSignupModal(defaultTabCode){window.open("/subscribe","_blank");return;alerter.close();var tabParam="";if(defaultTabCode!=null){tabParam+="?t="+defaultTabCode}modal.popup({body:"<iframe src='/modal-signup"+tabParam+"' width='860' height='655' border='0'></iframe>",header:"Sign up for PolicyMap",footer:false,size:"modal-lg"})}function showUpgradeModal(){window.open("/subscribe","_blank");return;alerter.close();modal.popup({body:"<iframe src='/modal-subscribe?t=up' width='860' height='520' border='0'></iframe>",header:"Upgrade",size:"modal-lg"})}function showMyAccountModal(){modal.popup({body:"<iframe src='/modal-myaccount' width='860' height='610' border='0'></iframe>",header:"",footer:false,shadeBody:true,shadeHeader:true,shadeFooter:true,size:"modal-lg"})}function showTrialSubscribeModal(){alerter.close();modal.popup({body:"<iframe src='/modal-subscribe?t=st' width='860' height='520' border='0'></iframe>",header:"Subscribe",size:"modal-lg"})}function showSLSignupModal(){switchUserWarning(function(){alerter.close();modal.popup({body:"<iframe src='/modal-slsignup' width='640' height='540' border='0'></iframe>",header:"Create an account",footer:false,size:"modal-md"})},true)}function showExpirationModal(){return;var expNote=session.get(P.constants.sessionExpirationNote);if(expNote!=null&&expNote!=false){if(expNote==P.constants.subscriptionTypeIds.trial){modal.popup({body:"<iframe src='/modal-subscribe?t=et' width='860' height='520' border='0'></iframe>",header:"Your 7-day trial has expired",size:"modal-lg"})}else if(expNote==P.constants.subscriptionTypeIds.standard||expNote==P.constants.subscriptionTypeIds.premium){modal.popup({body:"<iframe src='/modal-subscribe?t=es' width='860' height='520' border='0'></iframe>",header:"Your subscription has expired",size:"modal-lg"})}session.put(P.constants.sessionExpirationNote,false)}}function showFeedbackModal(){modal.popup({body:"<iframe src='/modal-feedback' width='640' height='500' border='0'></iframe>",header:"Feedback",size:"modal-md",footer:false})}function showVersionChangeModal(){if(pageReloading===false){modal.popup({noClose:true,header:"Outdated page detected!",footer:false,body:"<span>PolicyMap has been updated since you last loaded this page. Click the reload link below to continue. Your current work will be saved.</span>"+"<br/><br/><a class='btn btn-primary pull-right' style='color: #fff; text-decoration: none' href='"+window.location.href+"'>Reload</a><br class='clear'/>",size:"modal-md",shadeHeader:true});if(typeof notification!="undefined"){notification.stop(true);notification.closeWebSocket()}}}function showSessionExpiredModal(){if(pageReloading===false){modal.popup({header:"Your session has expired!",footer:false,body:"<span>You have been logged out of PolicyMap due to inactivity.</span>",size:"modal-md",shadeHeader:true})}}function showSignupOrUpgradeModal(defaultTabCode){if(isPublicUser()){showSignupModal(defaultTabCode)}else{showUpgradeModal()}}function showExportModal(options){if(!isSubscriber()||isTrial()){subscribeAlert(null,"subscriber-data-download");return}if(options==null){options={}}if(options.noAlert!==true){options.noAlert=false}if(options.selectedPlace==null&&options.selectedPlaceType==null){if(PEnvironment.pageName=="maps"&&map.getIndicator()){var legendBoundaryType=map.getLegend().getBoundaryType();if(legendBoundaryType!=null){options.defaultPlaceType=legendBoundaryType.getId()}}else if(PEnvironment.pageName=="tables"&&global_indicators.length>0&&global_places.length>0){options.defaultPlaceType={};var curPeriod=global_indicators[0].getPeriod();for(var i=0;i<global_places.length;i++){var curPlace=global_places[i];var curPlaceId=curPlace.getID();var curPlaceType=curPlace.getType();if(curPlaceType==PPlaceType.POLYGON){continue}else if(curPlaceType==PPlaceType.CUSTOM){if(aggData.types[curPlaceId]!=null&&aggData.types[curPlaceId][curPeriod]!=null&&aggData.types[curPlaceId][curPeriod].type!=null){options.defaultPlaceType["region-"+curPlaceId]=aggData.types[curPlaceId][curPeriod].type.getId()}}else{if(seeValuesTypes[curPlaceId]!=null){options.defaultPlaceType["place-"+curPlaceId]=seeValuesTypes[curPlaceId].getId()}}}}}var c=new CSVExport(options);c.start()}function loginSuccess(){$("#modal").modal("hide");session.put(P.constants.userTypeId,null);session.load()}function sessionUpdate(){session.load()}function getDefaultMapLat(){if(customLat!=null&&customLng!=null){return customLat}else{return P.constants.USA_LAT}}function getDefaultMapLng(){if(customLat!=null&&customLng!=null){return customLng}else{return P.constants.USA_LNG}}function getDefaultMapZoom(){if(customZoom!=null){return customZoom}else{return P.constants.USA_ZOOM}}function getOverlaySetByIdAndType(id,type){var set=null;catLoop:for(var i=0;i<pincats.length;i++){var sets=pincats[i].pinsets;setLoop:for(var j=0;j<sets.length;j++){if(sets[j].id==id&&sets[j].type==type){set=sets[j];break catLoop}}}return set}function getActiveOverlaySetByIdAndType(id,type){var searchSets=[];if(PEnvironment.pageName=="maps"||PEnvironment.pageName=="analytics"||PEnvironment.pageName=="widget"){searchSets=P.instances.map.getOverlaySets()}else if(PEnvironment.pageName=="tables"){searchSets=P.instances.table.getOverlaySets()}var setMatch=function(checkSet){return checkSet.id&&checkSet.id==id&&checkSet.type&&checkSet.type==type};for(var i=0;i<searchSets.length;i++){var curSet=searchSets[i];if(setMatch(curSet)){return curSet}else if(curSet.children.length>0){for(var j=0;j<curSet.children.length;j++){var curChildSet=curSet.children[j];if(setMatch(curChildSet)){return curChildSet}}}}return null}function isPublicUser(){var retVal;if(session.get(P.constants.sessionUsername)===undefined){retVal=true}if(isWidgetOrEmbedMap()||isCitiReports()||isCBClone()){retVal=false}return retVal}function isRegisteredUser(){var isRegisteredUser=false;if(session!==undefined&&session.get(P.constants.userType)!==undefined){isRegisteredUser=session.get(P.constants.userType)==="Registered User"||session.get(P.constants.userType)==="Standard Subscriber"||session.get(P.constants.userType)==="Premium Subscriber"}else{isRegisteredUser=isSubscriberValue}if(isWidgetOrEmbedMap()||isCitiReports()){isRegisteredUser=true}return isRegisteredUser}function isSubscriber(){var retVal;if(session!==undefined&&session.get(P.constants.userType)!==undefined){retVal=session.get(P.constants.userType)==="Standard Subscriber"||session.get(P.constants.userType)==="Premium Subscriber"}else{retVal=isSubscriberValue}if(isWidgetOrEmbedMap()||isCitiReports()){retVal=true}return retVal}function isPremiumSubscriber(){var retVal;if(session!==undefined&&session.get(P.constants.userType)!==undefined){retVal=session.get(P.constants.userType)==="Premium Subscriber"}else{retVal=isPremiumSubscriberValue}return retVal}function isTrial(){var retVal;if(session!==undefined&&session.get(P.constants.isTrial)!==undefined){retVal=session.get(P.constants.isTrial)}else{retVal=isTrialValue}return retVal}function isAutoLoginUser(){if(session!=null&&session.get(P.constants.isAutoLoginUser)!=null){if(isWKSiteLicense()){return true}else{return session.get(P.constants.isAutoLoginUser)}}else{return false}}function allowPeriod(ind,period){return true}function getContextPath(){return""}function allowIndicator(ind){if(isSubscriber()){return true}var retVal=true;if(ind.containsSource(/boxwood means/i,true)){retVal=false}else if(ind.containsSource(/greatschools/i,true)){retVal=false}return retVal}function selectIndicators(){var inds=arguments[0]+"";var ind0=[inds];var fromlist=null;if(arguments.length>1)fromlist=true;var indlist=null;if(ria[ind0]&&ria[ind0].vars){var indlist=ria[ind0].vars}var selected=null;var indarr;if(indlist){indarr=indlist.split(",");var l=indarr.length;for(var i=1;i<l;i++){if(ind0==indarr[i]){selected=i;break}}}else{indarr=ind0}if(PEnvironment.pageName=="analytics"){var disableList=[];if(jQuery.inArray(ind0[0],disableList)>=0){allowSelect=false;unsupportedIndicator()}else{allowSelect=true;var legendIndex=legendMerger.addIndicator(indarr,selected,fromlist,this.prefLegend);session.put("m"+legendIndex+"i",ind0);updateTitle(0);if(typeof wiz!="undefined"&&wiz!=null)wiz.next();closeCubeWindow()}}else{session.put("i",ind0);widget.setIndicatorListByIds(indarr,selected,fromlist);closeCubeWindow()}}function selectQA(indicator,sites,placeId,question,answer){if(indicator!=null&&indicator.length>0){selectIndicator(indicator[0].id,indicator[0].timeFrame)}if(sites!=null&&sites.length>0){}if(placeId){placeLoader.load([placeId],function(places){if(places.length>0){var addr=null;clearPolygons(map);var place=places[0];if(place instanceof PPlace){if(place&&place.getIdentifier()=="US"){var point=new PLatLng(P.constants.USA_LAT,P.constants.USA_LNG);map.setCenter(point,P.constants.USA_ZOOM)}else{map.setCenterBounds(place.getBounds())}mapstates.currentplace=place}}else{map.setCenter(new PLatLng(getDefaultMapLat(),getDefaultMapLng()),getDefaultMapZoom())}})}showAnswer(question,answer)}function clearDataAlert(){var text="Are you sure you want to clear the data layer currently displayed?";if(isCBClone()){alerter.popup(text,"No","Yes",clearMapDataCB)}else if(PEnvironment.pageName=="tables"){alerter.popup(text,"No","Yes",clearTableData)}else{alerter.popup(text,"No","Yes",clearMapData)}}function showAnswer(ques,ans){var text="<b>"+ques+"</b><br /><br />"+ans;alerter.popup(text,"OK")}function changeQA(category,title){if(PEnvironment.pageName=="maps"){qawidget.change(category);var ct=document.getElementById("quickanswerscategory");if(title)ct.innerHTML="&nbsp;&#8212; "+title;else ct.innerHTML=""}}function selectIndicator(id,period){session.put("period",period);selectIndicators(id)}function clearIndicatorList(){widget.clearIndicatorList()}function createSites(map,attr){if(attr.isPoly==true&&(attr.icon==null||typeof attr.icon=="string"&&$.trim(attr.icon)=="")){attr.icon=PinIcons["polygon"]}else if(attr.icon!=null&&!(attr.icon instanceof Object)){attr.icon=PinIcons[attr.icon]}var site=new POverlaySet(attr.id,attr.icon,15);site.setLabel(attr.name);if(attr.icon&&attr.icon.headpin){site.colorcodes=PinIcons[attr.icon.headpin].colors}site.sources=attr.sources;site.type=attr.type;site.isPoly=attr.isPoly;site.hasLabels=attr.labels;site.hideLabels=attr.hidelabels;site.labelZoom=attr.labelzoom;site.search=attr.search;site.allowDL=attr.allowDL;site.children=attr.children;site.child=attr.child;site.description=attr.description;if(attr.isPoly){site.bdid=attr.bdid;site.polycolor=attr.polycolor;site.polystyle=attr.polystyle}if(attr.boundingBox){site.boundingBox=attr.boundingBox}if(attr.type=="dl"){site.owner=attr.owner;site.ownerfirst=attr.ownerfirst;site.ownerlast=attr.ownerlast;site.created=attr.created;site.perm=attr.perm}var haveSet=false;var sets=map.getOverlaySets();for(var i=0;i<sets.length;i++){if(sets[i].id&&sets[i].id==attr.id){haveSet=true;break}}if(!haveSet){return site}}function getPinByAttributes(categoryId,sizeId,colorId){for(var i=0;i<PinIconsById.length;i++){if(PinIconsById[i]==null){continue}var curPinIcon=PinIconsById[i];if(curPinIcon.categoryid==categoryId&&curPinIcon.sizeid==sizeId&&curPinIcon.colorid==colorId){return curPinIcon}}return null}function bestFitZoomAndCenterForOverlaySets(){var overlaySets=map.getOverlaySets(true,true);var boundingBox=[0,90,-180,0];for(var i=0;i<overlaySets.length;i++){if(overlaySets[i].boundingBox){var box=overlaySets[i].boundingBox.split(/,/);if(box[0]<boundingBox[0]){boundingBox[0]=box[0]}if(box[1]<boundingBox[1]){boundingBox[1]=box[1]}if(box[2]>boundingBox[2]){boundingBox[2]=box[2]}if(box[3]>boundingBox[3]){boundingBox[3]=box[3]}}}if(boundingBox[0]!=0){map.setCenterBounds(new PLatLngBounds(new PLatLng(boundingBox[1],boundingBox[0]),new PLatLng(boundingBox[3],boundingBox[2])))}}function addAllSitesNew(top,node,rootNode){var pinsets;if(newpincats[rootNode]==null){pinsets=new Array;var theNode=new Object;theNode.id="newMenuNode"+rootNode;theNode.node_id=theNode.id;theNode.display=true;theNode.pinsets=pinsets;newpincats.push(theNode)}else{pinsets=newpincats[rootNode].pinsets}var ul=$("<ul/>");for(var i in node){n=node[i];rootNode=n.rootId;var pincount=pinsets.length;var li=$("<li/>");ul.append(li);var a=$("<a/>");a.text(n.label);li.append(a);if(n.children){li.attr("rel","branch");addAllSitesNew(li,n.children,rootNode)}else if(n.set_id!=null){li.attr("rel","leaf");a.attr("rootId",n.rootId);a.attr("pincount",pincount);a.attr("datasetId",n.dataset_id);var pinset={icon:n.icon,allow:true,labels:false,children:[],type:n.type,sources:[],isPoly:n.isPoly,polystyle:n.polystyle,polycolor:n.polycolor?n.polycolor:null,bdid:n.dataset_id,boundingBox:n.boundingBox?n.boundingBox:null,id:n.dataset_id,child:false,hidelabels:false,search:n.search,name:n.label,description:n.description};if(n.type=="dl"){var text=a.text();a.html(text+'<img rootId="'+n.rootId+'" pincount="'+pincount+'" class="getsPoshyTip" src="/images/info_small.png"/>')}pinsets.push(pinset)}}top.append(ul)}function getWKOverlaySetData(overlaySet){var foundSet=false;for(var i=0;i<pincats.length;i++){var pinsets=pincats[i].pinsets;if(pinsets){for(var j=0;j<pinsets.length;j++){var data=pinsets[j];if(overlaySet.id==data.id){overlaySet.setLabel(data.name);if(overlaySet.colorcodes.length===0){if(data.icon&&data.icon.headpin){overlaySet.colorcodes=PinIcons[data.icon.headpin].colors}}overlaySet.sources=data.sources;overlaySet.type=data.type;overlaySet.isPoly=data.isPoly;overlaySet.hasLabels=data.labels;overlaySet.hideLabels=data.hidelabels;overlaySet.labelZoom=data.labelzoom;overlaySet.search=data.search;overlaySet.allowDL=data.allowDL;overlaySet.children=_.map(data.children,function(child){return buildSet({childset:child})});overlaySet.child=data.child;overlaySet.description=data.description;overlaySet.map=map;if(data.isPoly){overlaySet.bdid=data.bdid;overlaySet.polycolor=data.polycolor;overlaySet.polystyle=data.polystyle}if(data.boundingBox){overlaySet.boundingBox=data.boundingBox}if(data.type==="dl"){overlaySet.owner=data.owner;overlaySet.ownerfirst=data.ownerfirst;overlaySet.ownerlast=data.ownerlast;overlaySet.created=data.created;overlaySet.perm=data.perm}if(data.isPoly===true&&(data.icon==null||typeof data.icon==="string"&&$.trim(data.icon)==="")){overlaySet.icon=PinIcons["polygon"]}else if(data.icon!=null&&!(data.icon instanceof Object)){var arr=data.icon.split("/");var fileName=arr[arr.length-1];iconName=fileName.split(".")[0];overlaySet.icon=PinIcons[iconName]}var foundSet=true;break}}}if(foundSet){break}}return overlaySet}function addAllSitesWK(){var div=$("<div/>");div.attr("id",name);var html="";for(var i=0;pincats[i]!=null;i++){if(pincats[i]!=null){html+='<div class="siteHolderMenu" id="siteHolderMenu'+i+'"/>'}}$("body").append(html);var cancelCallback=function(suffix){$("#siteHolderMenu"+suffix).hide();$("body").append($("#siteHolderMenu"+suffix));var dialogId=$("#siteHolderMenu"+suffix).attr("dialogId");$("#"+dialogId).remove()};for(var i=0;pincats[i]!=null;i++){if(pincats[i]!=null){addAllSitesNew($("#siteHolderMenu"+i),pincats[i].children,i,i)}}var jstreeConfig={themes:{theme:"default",dots:false,icons:true,url:"/cssold/jstree.css"},core:{animation:0},plugins:["html_data","themes","ui","types"],types:{types:{branch:{icon:{image:"/images/folder.png"}},leaf:{icon:{image:"/images/file.png"}}}}};var poshytipConfig={className:"tip-yellowsimple",showTimeout:1,alignTo:"target",alignX:"right",alignY:"center",offsetX:30,fade:false,slide:false,allowTipHover:true};var addPoshyTip=function(n,i){$(this).find(".getsPoshyTip").each(function(n,i){var config=poshytipConfig;var rootId=$(this).attr("rootId");var pincount=$(this).attr("pincount");poshytipConfig.content=pincats[rootId].pinsets[pincount].description;$(this).poshytip(config)})};var selectNode=function(event,data,suffix){var node=$(data.rslt.obj).find("a").first();var rootId=node.attr("rootId");if(rootId!=null){var pincount=node.attr("pincount");var datasetId=node.attr("datasetId");addOverlaySet(datasetId,"dl");cancelCallback(suffix)}};var setupTree=function(i){$($("#siteHolderMenu"+i)).jstree(jstreeConfig).bind("loaded.jstree",addPoshyTip).bind("select_node.jstree",function(event,data){selectNode(event,data,i)}).delegate("a","click",function(e){$($("#siteHolderMenu"+i)).jstree("toggle_node",this);e.preventDefault();return false})};for(var i=0;pincats[i]!=null;i++){if(pincats[i]!=null){setupTree(i)}}pincats=newpincats}function isDataloaderDisabledForUser(){return session.get(P.constants.dlDisabled)!=null&&session.get(P.constants.dlDisabled)==true}function editDlSet(setid){setWindowLocation("/dataloader?di="+setid)}function getState(place){var state="";if(!place){return null}if(PEnvironment.pageName=="report_generate"||PEnvironment.pageName=="report_widget"){for(var i=0;i<place.length;i++){if(place[i].getType()==PPlaceType.STATE){return place[i]}}}else{var placeType=place.getType();var placeState=place.getState();if(PEnvironment.pageName=="report_area"){if(placeState&&placeType!=PPlaceType.CBSA&&placeType!=PPlaceType.STATE&&placeType!=PPlaceType.CDBG&&placeType!=PPlaceType.COUNTRY){state=", "+placeState}return state}else if(PEnvironment.pageName=="tables"){if(placeState&&placeType!=PPlaceType.CBSA&&placeType!=PPlaceType.STATE&&placeType!=PPlaceType.COUNTRY){state=", "+placeState}return state}else{if(placeState&&placeType!=PPlaceType.CBSA&&placeType!=PPlaceType.STATE&&placeType!=PPlaceType.CDBG&&placeType!=PPlaceType.COUNTRY){state=", "+placeState}return state}}}function getCounty(places){if(!places)return null;for(var i=0;i<places.length;i++){if(places[i].getType()==PPlaceType.COUNTY)return places[i]}}function getTypeFromPlaces(places,type){if(!places){return null}for(var i=0;i<places.length;i++){if(places[i].getType()==type){return places[i]}}}function getSumOfPlaces(cube,indicator,period,igNull,igPlaces,igInds){if(indicator instanceof PIndicator){return cube.getSumOfPlaces(indicator,period,false,igNull,igPlaces)}else{if(igInds==null){igInds=[]}var sums={};for(indName in indicator){currentInd=indicator[indName];if(currentInd instanceof PIndicator&&$.inArray(indName,igInds)==-1){sums[indName]=cube.getSumOfPlaces(currentInd,period,false,igNull,igPlaces)}}return sums}}function getMultiPeriodSumOfPlaces(cube,indicator,periods,igNull,igPlaces,igInds){var sums=[];for(var i=0;i<periods.length;i++){var curPeriod=periods[i];sums[curPeriod]=getSumOfPlaces(cube,indicator,curPeriod,igNull,igPlaces,igInds)}return sums}function getSumOfPlacesIgnoreNulls(cube,indicator,period){return cube.getSumOfPlaces(indicator,period,null,true)}function getMeanOfPlacesIgnoreNulls(cube,indicator,period){return cube.getMeanOfPlaces(indicator,period,true,true)}function createSparkLine(values,options,className){var $sparkline=$("<span />");if(options!=null){$sparkline.attr(options)}if(className!=null){$sparkline.addClass(className)}$sparkline.attr("values",values.join(","));return $sparkline}function subscribeCheckRedirect(location){if(isSubscriber()){var l="/"+location;setWindowLocation(l)}else{genericAlertDialog({template:"subscriber"})}}function subscribeAlertCallback(callback,customText,pinsetId){var link=isPublicUser()?"/subscribe/standard":"/upgrade/standard";var text="";if(customText){text=customText}else{text="Available to subscribers only.  If you're a subscriber, <a onclick='showLoginModal();' class='pagelinks'>login</a> to access, or become a <a href='"+link+"' class='pagelinks'>subscriber</a>."}if(pinsetId&&pinsetId==86500){text+="<br /><br />Click <a href='/our-data-directory.html#National Center for Charitable Statistics (NCCS) at the Urban Institute' class='pagelinks'>here</a> to learn more about National Center for Charitable Statistics Nonprofit Locations."}else if(pinsetId&&pinsetId==99800){text="Not yet available to PolicyMap users. Stay tuned to our PolicyMap email updates and blog for a release announcement about these data."}else if(pinsetId&&pinsetId==98500){text="Only available to subscribers. For more information about accessing this data, please <a href='/contact.html' class='pagelinks'>contact us</a>"}else if(pinsetId&&pinsetId==97400||pinsetId==99050||pinsetId==99100){superMarketLIIFTeaseAlert();return}if(PEnvironment.pageName=="widget")text="This data is available in PolicyMap to subscribers.  <a href='/subscribe' class='pagelinks' target='_blank'>Click here</a> if you'd like to learn more.";if(callback&&callback.constructor==Function){alerter.popup(text,"OK",null,callback)}else{alerter.popup(text,"OK")}}function subscribeAlert(customText,customTemplate){var options={};if(customTemplate!=null){options.template=customTemplate}else if(PEnvironment.pageName=="widget"){options.template="subscriber-widget"}else{options.template="subscriber"}if(customText!=null){options.customText=customText}genericAlertDialog(options)}function allowedPinsets(pinsetID){if(PEnvironment.pageName=="embedmap_dyn")return true;for(var i=0;i<pincats.length;i++){for(var j=0;j<pincats[i].pinsets.length;j++){if(pincats[i].pinsets[j].id==pinsetID){return pincats[i].pinsets[j]}}}}function selectPlace(geo_boundary_id,overrideZoomWarning){if(allowSelect!==false){placeLoader.load([geo_boundary_id],function(place){if(place.length>0){selectLoadedPlace(place[0],overrideZoomWarning)}})}}function selectLoadedPlace(place,overrideZoomWarning){if(allowSelect!=false){var geo_boundary_id=place.getID();if(PEnvironment.pageName=="tables"){if(window.chart){addPlaceType(geo_boundary_id);session.put("p",geo_boundary_id)}}else if(PEnvironment.pageName=="citi-reports"){addPlaceToCitiMap([place])}else{if(window.map){if(PEnvironment.pageName=="widget"&&textOnlyIsOn){textOnlyLoadPlace([place])}if(!overrideZoomWarning){var text="This data layer is specific to <b>"+place.getLabel()+", "+place.getState()+"</b>.<br /><br />Do you wish to recenter the map over this location, or remain at the current position at the current zoom level?";var yes=function(){var html=createPlacesDiv([place]);addMarkerWindow(html,place);session.put("p",geo_boundary_id)};var no=function(){if(PEnvironment.pageName!=="analytics"){widget.refresh()}};alerter.popup(text,"Stay","Recenter",yes,no)}else{var html=createPlacesDiv([place]);addMarkerWindow(html,place);session.put("p",geo_boundary_id)}}}}}function getPlaceTypeById(typeId){var tempPlace=new PPlace;tempPlace.typeid=typeId;return tempPlace.getTypeById()}function getObjectPosition(object){return[$(object).offset().left,$(object).offset().top]}function filenameFromURL(url){urlParts=url.split("/");return urlParts[urlParts.length-1]}function validateContactForm(){var valid=true;var nameError="",emailError="",descriptionError="";$("#name").val($.trim($("#name").val()));$("#email").val($.trim($("#email").val()));$("#description").val($.trim($("#description").val()));if($("#name").val().length==0){nameError="Please enter your name.";valid=false}if(!validateContactEmail($("#email").val())){emailError="Please enter a valid email address.";valid=false}if($("#description").val().length==0){descriptionError="Please enter a question before submitting the form.";valid=false}$("#nameError").text(nameError);$("#emailError").text(emailError);$("#descriptionError").text(descriptionError);if(valid){var form=$("#emailForm");var superSecretVar=$("<input />");superSecretVar.attr({type:"hidden",name:"superSecretVar",value:hex_md5($("#name").val()+$("#email").val())});form.append(superSecretVar);form.submit()}}function validateUniversityForm(){var valid=true;var fnameError="",lnameError="",emailError="",universityError="",titleError="";$("#university").val($.trim($("#university").val()));$("#fname").val($.trim($("#fname").val()));$("#lname").val($.trim($("#lname").val()));$("#title").val($.trim($("#title").val()));$("#email").val($.trim($("#email").val()));if($("#university").val().length==0){universityError="Please enter your University.";valid=false}if($("#fname").val().length==0){fnameError="Please enter your first name.";valid=false}if($("#lname").val().length==0){lnameError="Please enter your last name.";valid=false}if($("#title").val().length==0){titleError="Please enter your title.";valid=false}if(!validateContactEmail($("#email").val())){emailError="Please enter a valid email address.";valid=false}$("#universityError").text(universityError);$("#fnameError").text(fnameError);$("#lnameError").text(lnameError);$("#titleError").text(titleError);$("#emailError").text(emailError);if(valid){var form=$("#siteLicenseForm");var superSecretVar=$("<input />");superSecretVar.attr({type:"hidden",name:"superSecretVar",value:hex_md5($("#fname").val()+$("#lname").val())});form.append(superSecretVar);form.submit()}}function validateContactEmail(email){var reg=/^([A-Za-z0-9_\-\.])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z]{2,4})$/;return reg.test(email)}function getUrlParams(onlyUrl,url){if(P.data.savedurl){var which=P.data.savedurl}else{var which=window.location.search}if(reportObject.urlSuffix!=null){which=reportObject.urlSuffix}var urlParams=PWebUtil.parseQuery(which);if(PEnvironment.pageName=="embedmap_dyn"){var dbParams=getEmbedMapParams(urlParams);$.extend(urlParams,dbParams)}else if(PEnvironment.pageName=="widget"&&!onlyUrl){urlParams=getWidgetParams(urlParams)}return urlParams}function getWidgetParams(urlParams){if(PEnvironment.isWidgetParamsSet){return PEnvironment.widgetParams}if(P.WKPrint.isPrintPage()===false){if(PEnvironment.widgetParams.i){delete urlParams["i"]}if(PEnvironment.widgetParams.o){delete urlParams["o"]}delete urlParams["ofilters"];delete urlParams["mlon"];delete urlParams["mltitle"];if(PEnvironment.widgetParams.cp){delete urlParams["cp"]}}var widgetParams=jQuery.extend(PEnvironment.widgetParams,urlParams);PEnvironment.widgetParams=widgetParams;PEnvironment.isWidgetParamsSet=true;return widgetParams}function isWidgetOrEmbedMap(){return isWidgetPage()||isWidgetReportPage()||isEmbedPage()}function isWidgetPage(){return PEnvironment.isWidget}function isWidgetReportPage(){return PEnvironment.pageName=="report_widget"}function isEmbedPage(){return PEnvironment.pageName=="embedmap_dyn"}function isMNWidget(){return PEnvironment.productId==74||PEnvironment.productId==1396}function isGeorgiaReadingWidget(){return PEnvironment.productId==6705||PEnvironment.productId==8857}function isWKWidget(){var isWK=false;if(isWidgetPage()){try{isWK=session.get(P.constants.sessionUsername).match(/wk\d{1,5}/)!=null?true:false}catch(e){}}return isWK}function isWKSiteLicense(){return productProperty.getValue("site_license_wk")}function imageAlert(imgurl,topcaption,bottomcaption){var minAlertWidth=200;var maxImageWidth=600;if(topcaption&&topcaption!=""){topcaption=topcaption+"<br /><br />"}else{topcaption=""}if(bottomcaption&&bottomcaption!=null){bottomcaption+="<br /><br />"+bottomcaption}else{bottomcaption=""}var image=$("<img />");image.load(function(){var imgWidth=this.width;var imgHeight=this.height;if(imgWidth>maxImageWidth){imgHeight=imgHeight/(imgWidth/maxImageWidth);imgWidth=maxImageWidth}var html=topcaption+"<img src='"+imgurl+"' width='"+imgWidth+"' height='"+imgHeight+"' />"+bottomcaption;var alertWidth;if(imgWidth<minAlertWidth){alertWidth=minAlertWidth}else{alertWidth=imgWidth+20}alerter.popup({content:html,width:alertWidth,cancelText:"OK"})});image.error(function(){var html=topcaption+"[Image Not Found]"+bottomcaption;alerter.popup(html,"OK")});image.attr("src",imgurl)}function validateEmailAddressValue(email){return/^([A-Za-z0-9_\-\.\+])+\@([A-Za-z0-9_\-\.])+\.([A-Za-z0-9]{2,})$/.test(email)}function nrLogoutSubmit(callback){session.put(P.constants.userTypeId,null);ajax.call({url:PEnvironment.logoutURL,success:callback})}Function.prototype.KamapBindAsEventListener=function(object){var __method=this;return function(event){return __method.call(object,event||window.event)}};String.prototype.trim=function(){return this.replace(/^\s+|\s+$/g,"")};PUnload=function(){PEvent.clearAllListeners()};function capitalizeFirstLetter(string){return string.charAt(0).toUpperCase()+string.slice(1)}function fixPNG(o){var arVersion=navigator.appVersion.split("MSIE");var version=parseFloat(arVersion[1]);if(version>=5.5&&version<7&&document.body.filters){var t=PEnvironment.kamapUrl+"images/a_pixel.gif";if(o.src!=t){var s=o.src;o.src=t;o.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+s+"',sizingMethod='scale')"}}}function addPNGBackground(o,url){var arVersion=navigator.appVersion.split("MSIE");var version=parseFloat(arVersion[1]);o.style.backgroundImage="url("+url+")";if(version>=5.5&&version<7&&document.body.filters){o.style.backgroundImage="none";o.runtimeStyle.filter="progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+url+"',sizingMethod='crop')"}}function resetDetailsButton(){$("#morelink").hide();$("#morelink").removeClass("on")}function navteqCounter(){if(P.WKPrint.isPrintPage()===false){ajax.call({pleaseWait:false,url:PEnvironment.navteqTrackerUrl})}}function noDataAlert(){if(noDataAlertCount++>0){return}if(PEnvironment.pageName=="report_generate"&&(currentReport.reportType=="hud"||currentReport.reportType=="wellsfargo"||currentReport.reportType.indexOf("wf_")==0)||isCBClone()){var p=getUrlParams();addErrors('If the area you\'ve selected shows "N/A" in parts of the report, there is no data for that location, or data has been suppressed for components of that area.')}else if((PEnvironment.pageName=="report_generate"||PEnvironment.pageName=="report_widget")&&currentReport.reportType=="op"){}else{
addErrors('If the area you\'ve selected shows "N/A" in parts of the report, your area is too small, there is no data for that location, or data has been suppressed for components of that area.')}}function isCitiReports(){if(PEnvironment.pageName=="citi-reports")return true;else return false}function getMonthFromPeriod(index){var month=["January","February","March","April","May","June","July","August","September","October","November","December"];return month[index]}function formatMonthlyPeriod(p){var arr=p.split("-");var m=getMonthFromPeriod(arr[1]-1);return m+" "+arr[0]}function getOrdinal(n,noSup){var o=n%10==1&&n%100!=11?"st":n%10==2&&n%100!=12?"nd":n%10==3&&n%100!=13?"rd":"th";if(noSup){return n+o}else{return n+"<sup>"+o+"</sup>"}}function isFinalReportPage(){if(PEnvironment&&(PEnvironment.pageName=="report_generate"||PEnvironment.pageName=="report_widget")){return true}else{return false}}function isCensusTractTypeId(i){if(i==PPlaceType.CENSUSTRACT.id){return true}return false}function setUpMobileMapIdentifyEvents(map){initMobileMapEvents(map);PEvent.addListener(map,"drag",function(){map.cancelClick=true});PEvent.addListener(map,"mouseup",function(overlay,point){map.cancelClick=false;if(!map.infoWindowIsClosing&&(point&&!isNaN(point.lat())||overlay)){PMIdentificationModule.clickHandler(overlay,point)}map.infoWindowIsClosing=false});PEvent.addListener(map,"infowindowclose",function(){map.infoWindowIsClosing=true})}function touchHandler(event){var touches=event.changedTouches,first=touches[0],type="";switch(event.type){case"touchstart":type="mousedown";break;case"touchmove":type="mousemove";break;case"touchend":type="mouseup";break;default:return}var simulatedEvent=document.createEvent("MouseEvent");simulatedEvent.initMouseEvent(type,true,true,window,1,first.screenX,first.screenY,first.clientX,first.clientY,false,false,false,false,0,null);first.target.dispatchEvent(simulatedEvent);event.stopImmediatePropagation();event.preventDefault()}function initMobileMapEvents(map){var id=map.getContainer().id;document.getElementById(id).addEventListener("touchstart",touchHandler,true);document.getElementById(id).addEventListener("touchmove",touchHandler,true);document.getElementById(id).addEventListener("touchend",touchHandler,true);document.getElementById(id).addEventListener("touchcancel",touchHandler,true)}function isMobile(){return PEnvironment.mobile}function isIffCustomFilterWidget(){return PEnvironment.isWidget&&$.inArray(PEnvironment.productId,[237,1399,1400,1692])>-1}function isIFFAccountabilityColumn(datasetId,columnName){return datasetId!=null&&columnName!=null&&((datasetId==123100||datasetId==143400||datasetId==147950)&&columnName=="accountdeterm"||(datasetId==139700||datasetId==149900||datasetId==160400)&&columnName=="accountrating"||(datasetId==140850||datasetId==150800||datasetId==155200||datasetId==156800||datasetId==157050)&&columnName=="schoolgrade")}function isMilwaukeeMVAWidget(){if(PEnvironment.isWidget&&PEnvironment.productId==386){return true}return false}function isEnterpriseCommunityProduct(){return $.inArray(PEnvironment.productId,[1989,1990,2010])>-1}function isEnterpriseWidget(){if(PEnvironment.isWidget&&PEnvironment.productId==2010){return true}return false}function isRhodeIslandWidget(){if(PEnvironment.isWidget&&PEnvironment.productId==8838){return true}return false}function isCHFAWidget(){if(PEnvironment.isWidget&&PEnvironment.productId==8899){return true}return false}function isEnterpriseTestWidget(){return PEnvironment.isWidget&&PEnvironment.productId==3470}function isEnterpriseSiteLicense(){if(PEnvironment.isSiteLicense&&PEnvironment.productId==1989){return true}return false}function isFurman(){return PEnvironment.productId==10192}function createMergedCube(cubes){var places=[];var values=[];var inds=[];var periods=[];for(var i=0;i<cubes.length;i++){places=places.concat(cubes[i].places);var per=cubes[i].periods[0];periods.push(per);values[per]=cubes[i].values[per];inds=inds.concat(cubes[i].indicators)}var cube=new PCube(inds,places,periods);cube.values=values;return cube}function splitArray(a,n){var len=a.length,out=[],i=0;while(i<len){var size=Math.ceil((len-i)/n--);out.push(a.slice(i,i+=size))}return out}function isTractType(type,id){var r=false;if(type&&(type==PPlaceType.CENSUSTRACT||type==PPlaceType.CENSUSTRACT_2010)){r=true}else if(id&&(id==6||id==106)){r=true}return r}function comparePlaceType(placeTypeLeft,placeTypeRight){var containmentOrder=PPlaceTypeConfig.containmentOrder;var leftIndex;var rightIndex;for(var i=0;i<containmentOrder.length;i++){if(containmentOrder[i].id==placeTypeLeft.id)leftIndex=i;if(containmentOrder[i].id==placeTypeRight.id)rightIndex=i}if(leftIndex>rightIndex)return 1;else if(rightIndex>leftIndex)return-1;else if(rightIndex!=null&&rightIndex==leftIndex)return 0;else return null}function orderPlaceTypes(placeTypes){var containmentOrder=PPlaceTypeConfig.containmentOrder;var sortedPlaceTypes=new Array;for(var i=0;i<containmentOrder.length;i++){for(var j=0;j<placeTypes.length;j++){if(containmentOrder[i]==placeTypes[j]&&sortedPlaceTypes[sortedPlaceTypes.length-1]!=placeTypes[j])sortedPlaceTypes.push(placeTypes[j])}}return sortedPlaceTypes}function allPlacesSameType(places){var lastPlaceType=null;for(var i=0;i<places.length;i++){var curPlaceType=places[i].getType();if(lastPlaceType==null){lastPlaceType=curPlaceType}else if(lastPlaceType!=curPlaceType){return false}}return true}function trimDateYear(date){if(date!=null&&typeof date=="string"&&date!=""&&date.toLowerCase()!="n/a"){return date.substring(0,date.length-4)+date.substring(date.length-2)}else{return"N/A"}}function setSession(name,value){var expires=new Date;if(value==null){value="";expires.setTime(expires.getTime()-10*365*24*60*60*1e3)}else{expires.setTime(expires.getTime()+10*365*24*60*60*1e3)}var cookie_string=name+"="+value+"; expires="+expires.toGMTString()+"; path=/"+"; domain="+PEnvironment.cookieDomain;document.cookie=cookie_string}function getSession(cookiename){var name=cookiename+"=";var ca=document.cookie.split(";");for(var i=0;i<ca.length;i++){var c=ca[i];while(c.charAt(0)==" ")c=c.substring(1);if(c.indexOf(name)!=-1)return c.substring(name.length,c.length)}return""}function deleteSession(cookiename){document.cookie=cookiename+"=; expires=Thu, 01 Jan 1970 00:00:01 GMT;"}function addOverlaySet(datasetId,type){var logger=P.instances.debug;getOverlaySet(datasetId,type).done(function(overlayset){if(PEnvironment.pageName=="tables"){var overlayExists=_.some(P.instances.table.getOverlaySets(),function(overlay){return overlay.id===overlayset.id});if(!overlayExists){if(global_places.length<1){alerter.popup("At least one place must be added to the table before a point or polygon dataset can be added.","OK")}else{refreshCubeQueue(null,[overlayset])}}else if(logger){logger.log(P.Debug.ERROR,"Overlay set not added. Overlay set already exists.")}}else{var checkAndAddOverlaySet=function(curSet){var overlayExists=_.some(map.getOverlaySets(),function(curMapSet){return curMapSet.id===curSet.id});if(!overlayExists){map.addOverlaySet(curSet);bestFitZoomAndCenterForOverlaySets();for(var i=0;i<curSet.children.length;i++){checkAndAddOverlaySet(curSet.children[i])}}else if(logger){logger.log(P.Debug.ERROR,"Overlay set not added. Overlay set already exists.")}};checkAndAddOverlaySet(overlayset);if(overlayset.hasLabels){if(overlayset.hideLabels||overlayset.hidelabels||labelManager.isHidden(overlayset.id,overlayset.type)){if(!labelManager.isHidden(overlayset.id,overlayset.type)){labelManager.setHiddenNoUpdate(overlayset.id,overlayset.type,true)}}}labelManager.updateMapLabels()}})}function removeOverlaySet(datasetId,type){if(PEnvironment.pageName=="tables"){}else{var overlays=map.getOverlaySets();var overlay=_.find(overlays,function(overlay){return overlay.id===datasetId&&overlay.type===type});map.removeOverlaySet(overlay);labelManager.updateMapLabels()}}function getDataset(datasetId,type){return ajax.call({url:PEnvironment.pointUrl+"&act=g&did="+datasetId+"&dt="+type})}function getOverlaySet(datasetId,type,onLoadFromSession){return getDataset(datasetId,type).then(function(data){if(data.responseCode==200&&data.pnt!=null){var setArray=_.toArray(data.pnt);if(setArray.length==1){return overlaySetUtil.buildOverlaySet(setArray[0],onLoadFromSession!=null&&onLoadFromSession===true)}else if(setArray.length>1){var overlaySets=[];for(var i=0;i<setArray.length;i++){overlaySets.push(overlaySetUtil.buildOverlaySet(setArray[i],onLoadFromSession!=null&&onLoadFromSession===true))}return overlaySets}}})}function saveCustomBreaks(callback){var indicator=map.getIndicator();if(indicator){var jsonbreaks=indicator.createCustomBreaksJSON(session.get("nb")?session.get("nb"):DEFAULT_NUMBREAKS,true);if(jsonbreaks){var obj={};obj[indicator.id]=jsonbreaks;stringStore.store(MochiKit.Base.serializeJSON(obj),callback)}else{callback()}}else{callback()}}function setWindowLocation(location,unload){P.instances.reallyUnload=true;if(typeof unload!="undefined"&&unload===false){P.instances.reallyUnload=false}window.location=location}function requestFullScreen(e){var e=document.body;$(e).addClass("fullscreen");var requestMethod=e.requestFullScreen||e.webkitRequestFullScreen||e.mozRequestFullScreen||e.msRequestFullscreen;if(requestMethod){requestMethod.call(e)}}function getOverlaySetsFromSession(callback){var onLoadFromSession=true;if(isWidgetPage()&&P.WKPrint.isPrintPage()===false){onLoadFromSession=false}var promises=[];if(session.get("o")){var oldOverlaySetIds=session.get("o").split(",");_.each(oldOverlaySetIds,function(oldOverlaySetId){var addFiltersToOverlaySetPromise;if(onLoadFromSession){addFiltersToOverlaySetPromise=getOverlaySet(oldOverlaySetId,"old",onLoadFromSession).then(addOverlaySetFiltersFromSession)}else{addFiltersToOverlaySetPromise=getOverlaySet(oldOverlaySetId,"old",onLoadFromSession)}promises.push(addFiltersToOverlaySetPromise)})}if(session.get("dlo")){var dataLoaderOverlaySetIds=session.get("dlo").split(",");_.each(dataLoaderOverlaySetIds,function(dataLoaderOverlaySetId){var addFiltersToOverlaySetPromise;if(onLoadFromSession){addFiltersToOverlaySetPromise=getOverlaySet(dataLoaderOverlaySetId,"dl",onLoadFromSession).then(addOverlaySetFiltersFromSession)}else{addFiltersToOverlaySetPromise=getOverlaySet(dataLoaderOverlaySetId,"dl",onLoadFromSession)}promises.push(addFiltersToOverlaySetPromise)});if(_.size(dataLoaderOverlaySetIds)===1&&session.get("dloz")&&!session.get("o")){ajax.call({url:PEnvironment.pointUrl+"&act=b&did="+dataLoaderOverlaySetIds[0],success:function(response){var coords=response.pnt;if(coords.minx&&coords.miny&&coords.maxx&&coords.maxy){var sw=new PLatLng(coords.miny,coords.minx);var ne=new PLatLng(coords.maxy,coords.maxx);map.setCenterBounds(new PLatLngBounds(sw,ne));session.remove("dloz")}}})}}$.when.apply($,promises).then(function addOverlaySetsToMap(){var sets=[];for(var i=0;i<arguments.length;i++){if(arguments[i]==null){continue}var curSet=arguments[i];sets.push(curSet);for(var j=0;j<curSet.children.length;j++){sets.push(curSet.children[j])}}if(callback){callback(sets)}else if(sets.length>0){var params=getUrlParams(true);if(params["o"]){var idsObj={};var ids=params["olabels"];if(ids){ids=ids.split(",");for(var i=0;i<ids.length;i++){idsObj[ids[i]]=true}}for(var i=0;i<sets.length;i++){var s=sets[i];s.hideLabels=true;if(idsObj[s.id]){s.hideLabels=false}}}map.setOverlaySets(sets);labelManager.updateMapLabels();var params=getUrlParams();if(params["iwx"]&&params["iwy"]&&params["iwtype"]=="identify"){PMIdentificationModule.showInfoWindow(params)}}})}function addOverlaySetFiltersFromSession(overlaySet){if(overlaySet!=null){var filters=session.getFilters(overlaySet);if(filters){if(filters[0]&&filters[0].values[0]=="COLORCODE"){var iffDataset=false;if(overlaySet.isIFFDataset()){iffDataset=true;overlaySet=getIFFOverlaySetWithFilters(overlaySet,filters)}else{var ftrs=[];var displayfilters=overlaySet.displayfiltergroups[filters[0].name];var m=displayfilters.length;for(var j=0;j<m;j++){if(displayfilters[j].values[0]!="COLORCODE"){ftrs.push(displayfilters[j]);if(iffDataset&&displayfilters[j].columnName=="type"){overlaySet.iffschoolfiltersbyicons.push(displayfilters[j])}}}overlaySet.setFiltersByIcons(ftrs,overlaySet.colorcodes);overlaySet.filtergroups[filters[0].name]=[];overlaySet.filtergroups[filters[0].name].push(filters[0])}}else{overlaySet.setFilters(filters)}}for(var i=0;i<overlaySet.children.length;i++){addOverlaySetFiltersFromSession(overlaySet.children[i])}}return overlaySet}function inIframe(){try{return window.self!==window.top}catch(e){return true}}function downloadData(){var map=P.instances.map;var currentLegend=map.getLegend();var currentInd=currentLegend.getIndicator();var currentIndPeriod=currentInd.periods[currentInd.curPerIndex];var currentPlaceType=currentLegend.getCurrentPlaceType();if(!currentInd.allowDL){alerter.popup("This data is not downloadable.","OK");return}geocoder.getAllPlacesCSV(currentPlaceType,null,null,currentInd,currentIndPeriod);alerter.popup("Your data is being prepared and will be ready in a few moments.","OK")}function loadIndicatorsForCustomizedIdentify(){var ids=globalIndListBubble.allIds;return PIndicatorLoader.load(ids,function(inds){globalIndListBubble.inds=inds})}function areElementsOverlapping($div1,$div2,pxBuffer){if(pxBuffer==null){pxBuffer=0}var rect1=$div1[0].getBoundingClientRect();var rect2=$div2[0].getBoundingClientRect();var overlap=!(rect1.right+pxBuffer<rect2.left||rect1.left-pxBuffer>rect2.right||rect1.bottom+pxBuffer<rect2.top||rect1.top-pxBuffer>rect2.bottom);return overlap}function findClosestBorderOfOverlapping($div1,$div2){var rect1=$div1[0].getBoundingClientRect();var rect2=$div2[0].getBoundingClientRect();var arr=[];var obj={};var diff=rect1.right-rect2.left;arr.push(diff);obj.right=diff;var curLow=diff;var lowPos="right";var diff=rect2.bottom-rect1.top;arr.push(diff);obj.top=diff;if(diff<curLow){curLow=diff;lowPos="top"}return obj}function isCDCCityData(dids){var isCDC=false;for(var i=0;i<dids.length;i++){if(dids[i]==175800){isCDC=true;break}}return isCDC}function openMySavedWork(saveInfo){if(!P.instances.mySavedWork){P.instances.mySavedWork=new MySavedWork}P.instances.mySavedWork.open(saveInfo)}function promotePlatformRebuild(){return window.location.href.indexOf("testing1")!=-1||isWidgetOrEmbedMap()!=true&&PEnvironment.isClone!=true&&productProperty.getValue("site_prefix")!="phdl"}function displayCovidLink(){return productProperty.getValue("site_license_wk")==false&&PEnvironment.productId!=8883}function isCovidData(){var datasetIds=[227700];var ind=map.getIndicator();var indDatasetId=ind&&ind.sources[0]?ind.sources[0].datasetId*1:null;if(datasetIds.indexOf(indDatasetId)!==-1){return true}else{return false}}kaToolCustomizer=function(katool,pmap){this.katool=katool;this.kaMap=katool.kaMap;this.pmap=pmap;this._onmousemove=null;this._onmousedown=null;this._onmouseup=null;this._ondblclick=null;this._onclick=null;this._onmousewheel=null;this._onkeypress=null;this._onmouseover=null;this._onmouseout=null;this.name="custom";this.cursor="move";this.rMouseDownTime=0;kaToolCustomizer.prototype.activate=this.katool.activate;kaToolCustomizer.prototype.deactivate=this.katool.activate};kaToolCustomizer.prototype.onmousemove=function(e){if(this.pmap)this.pmap.triggerEvent("mousemove",e);else if(this._onmousemove)this._onmousemove.apply(this,[e]);this.katool.onmousemove.apply(this.katool,[e])};kaToolCustomizer.prototype.onmousedown=function(e){if(this._onmousedown)this._onmousedown.apply(this,[e]);this.katool.onmousedown.apply(this.katool,[e])};kaToolCustomizer.prototype.onmouseup=function(e){e=e?e:event?event:null;if(e.button==2){if(this.pmap&&this.pmap.enableDblClickZoom&&this.pmap.getZoom()>0){var clickTime=(new Date).getTime()-this.rMouseDownTime;if(clickTime<750){var pos=this.katool.getMousePosition(e);var aPixPos=this.katool.adjustPixPosition(pos[0],pos[1]);var geo=this.kaMap.pixToGeo(aPixPos[0],aPixPos[1]);this.kaMap.zoomTo(geo[0],geo[1],this.pmap.getScale(this.pmap.getZoom()-1))}else this.rMouseDownTime=(new Date).getTime()}}if(this.pmap)this.pmap.triggerEvent("mouseup",e);else if(this._onmouseup)this._onmouseup.apply(this,[e]);this.katool.onmouseup.apply(this.katool,[e])};kaToolCustomizer.prototype.onclick=function(e){if(this.katool.allowClick){if(this.pmap)this.pmap.triggerEvent("click",e);else if(this._onclick)this._onclick.apply(this,[e]);this.katool.onclick.apply(this.katool,[e])}};kaToolCustomizer.prototype.ondblclick=function(e){if(this._ondblclick)this._ondblclick.apply(this,[e]);if(this.pmap&&this.pmap.enableDblClickZoom&&this.pmap.getScale(this.pmap.getZoom()+1)){var pos=this.katool.getMousePosition(e);var aPixPos=this.katool.adjustPixPosition(pos[0],pos[1]);var geo=this.kaMap.pixToGeo(aPixPos[0],aPixPos[1]);this.kaMap.zoomTo(geo[0],geo[1],this.pmap.getScale(this.pmap.getZoom()+1));this.pmap.triggerEvent("dblclick",e)}else{if(this.pmap)this.pmap.triggerEvent("dblclick",e);else if(this._ondblclick)this._ondblclick.apply(this,[e]);this.katool.ondblclick.apply(this.katool,[e])}};kaToolCustomizer.prototype.onmousewheel=function(e){if(this._onmousewheel)this._onmousewheel.apply(this,[e]);if(this.pmap&&this.pmap.enableScrollWheel)this.katool.onmousewheel.apply(this.katool,[e])};kaToolCustomizer.prototype.onkeypress=function(e){if(this._onkeypress)this._onkeypress.apply(this,[e]);if(this.pmap&&this.pmap.enableKB)this.katool.onkeypress.apply(this.katool,[e])};kaToolCustomizer.prototype.onmouseover=function(e){if(this.pmap)this.pmap.triggerEvent("mouseover",e);else if(this._onmouseover)this._onmouseover.apply(this,[e]);this.katool.onmouseover.apply(this.katool,[e])};kaToolCustomizer.prototype.onmouseout=function(e){if(this.pmap)this.pmap.triggerEvent("mouseout",e);else if(this._onmouseout)this._onmouseout.apply(this,[e]);this.katool.onmouseout.apply(this.katool,[e])};function kaXmlOverlay(oKaMap,zIndex){kaTool.apply(this,[oKaMap]);this.name="kaXmlOverlay";for(var p in kaTool.prototype){if(!kaXmlOverlay.prototype[p])kaXmlOverlay.prototype[p]=kaTool.prototype[p]}this.urlBase=this.kaMap.server;this.urlBase+=this.urlBase!=""&&this.urlBase.substring(-1)!="/"?"":"/";this.ovrObjects=new Array;this.z_index=zIndex;this.overlayCanvas=this.kaMap.createDrawingCanvas(zIndex);this.kaMap.registerForEvent(KAMAP_SCALE_CHANGED,this,this.scaleChanged)}kaXmlOverlay.prototype.scaleChanged=function(eventID,mapName){if(this.ovrObjects==null)return;for(var i=0;i<this.ovrObjects.length;i++){if(this.ovrObjects[i])this.ovrObjects[i].rescale()}};kaXmlOverlay.prototype.remove=function(){this.kaMap.deregisterForEvent(KAMAP_SCALE_CHANGED,this,this.scaleChanged);this.removePoint();this.kaMap.removeDrawingCanvas(this.overlayCanvas)};kaXmlOverlay.prototype.loadXml=function(xml_url){this.urlBase=this.kaMap.server;this.urlBase+=this.urlBase!=""&&this.urlBase.substring(-1)!="/"?"":"/";this.xmlOvrUrl=this.urlNormalize(xml_url);var xmlDocument=loadXMLDoc(this.xmlOvrUrl);var objDomTree=xmlDocument.documentElement;var dels=objDomTree.getElementsByTagName("delete");for(var i=0;i<dels.length;i++){var a_id=dels[i].getAttributeNode("id");if(a_id==null){this.removePoint()}else{this.removePoint(a_id.value)}}var need_update=false;var points=objDomTree.getElementsByTagName("point");for(var i=0;i<points.length;i++){var a_pid=points[i].getAttributeNode("id");if(a_pid==null){continue}var pid=a_pid.value;var np=this.getPointObject(pid);if(np==null){np=new kaXmlPoint(pid,this);this.ovrObjects.push(np)}np.parse(points[i]);need_update=true}if(need_update)this.kaMap.updateObjects()};kaXmlOverlay.prototype.urlNormalize=function(url){if(url==null)return"";if(url.match(/^\//)!="/"){return this.urlBase+url}return url};kaXmlOverlay.prototype.getDiv=function(pid){var div_id=this.getDivId(pid);return getRawObject(div_id)};kaXmlOverlay.prototype.getPointObject=function(pid){for(var i=0;i<this.ovrObjects.length;i++){if(this.ovrObjects[i]!=null&&this.ovrObjects[i].pid==pid){return this.ovrObjects[i]}}return null};kaXmlOverlay.prototype.addNewPoint=function(pid,x,y){this.removePoint(pid);var np=new kaXmlPoint(pid,this);np.placeOnMap(x,y);this.ovrObjects.push(np);return np};kaXmlOverlay.prototype.getDivId=function(pid){return"xmlovr_"+pid+"_div"};kaXmlOverlay.prototype.removePoint=function(pid){if(this.removePoint.arguments.length<1||pid==null){for(var i=0;i<this.ovrObjects.length;i++){if(this.ovrObjects[i]!=null){this.ovrObjects[i].removeFromMap();delete this.ovrObjects[i];this.ovrObjects[i]=null;this.ovrObjects.splice(i,1)}delete this.ovrObjects[i];this.ovrObjects.splice(i,1)}return}var re=new RegExp(pid);for(var i=0;i<this.ovrObjects.length;i++){if(this.ovrObjects[i]!=null){if(re.test(this.ovrObjects[i].pid)){this.ovrObjects[i].removeFromMap();delete this.ovrObjects[i];this.ovrObjects[i]=null;this.ovrObjects.splice(i,1)}}else{delete this.ovrObjects[i];this.ovrObjects.splice(i,1)}}};function loadXMLDoc(url){var xDoc;var req;if(window.XMLHttpRequest){req=new XMLHttpRequest;req.open("GET",url,false);req.send(null)}else if(window.ActiveXObject){req=new ActiveXObject("Microsoft.XMLHTTP");if(req){req.open("GET",url,false);req.send()}}if(req){if(req.status==200){xDoc=req.responseXML;if(xDoc&&typeof xDoc.childNodes!="undefined"&&xDoc.childNodes.length==0){xDoc=null}}else{alert("There was a problem retrieving the XML data:\n"+req.statusText)}}else{alert("Sorry, this browser isn't equipped to read XML data.")}return xDoc}function kaXmlGraphicElement(){}kaXmlGraphicElement.prototype.parseElement=function(point,domElement){};kaXmlGraphicElement.prototype.draw=function(point){};kaXmlGraphicElement.prototype.rescale=function(point){};kaXmlGraphicElement.prototype.remove=function(point){};function kaXmlSymbol(){kaXmlGraphicElement.apply(this);if(_BrowserIdent_hasCanvasSupport())kaXmlSymbol.prototype["draw"]=kaXmlSymbol.prototype["draw_canvas"];else kaXmlSymbol.prototype["draw"]=kaXmlSymbol.prototype["draw_js"];for(var p in kaXmlGraphicElement.prototype){if(!kaXmlSymbol.prototype[p])kaXmlSymbol.prototype[p]=kaXmlGraphicElement.prototype[p]}this.shape="bullet";this.size=10;this.stroke=1;this.color=null;this.bcolor=null;this.opacity=1;this.canvas=null;this.ldiv=null}kaXmlSymbol.prototype.remove=function(point){this.canvas=null;this.ldiv=null};kaXmlSymbol.prototype.parseElement=function(point,domElement){this.shape=domElement.getAttribute("shape");this.size=parseInt(domElement.getAttribute("size"));var c=domElement.getAttribute("color");if(c!=null)this.color=c;var c=domElement.getAttribute("bcolor");if(c!=null)this.bcolor=c;c=parseFloat(domElement.getAttribute("opacity"));if(!isNaN(c))this.opacity=c;c=parseInt(domElement.getAttribute("stroke"));if(!isNaN(c))this.stroke=c};kaXmlSymbol.prototype.draw_js=function(point){var jsgObject=new jsGraphics(point.divId);with(jsgObject){setColor(this.color);var d=this.size/2;fillEllipse(-d,-d,this.size,this.size);paint()}};kaXmlSymbol.prototype.draw_canvas=function(point){var d=Math.floor((this.size+this.stroke)/2);if(this.canvas==null){this.ldiv=document.createElement("div");this.ldiv.style.position="absolute";this.ldiv.style.left=-d+"px";this.ldiv.style.top=-d+"px";point.div.appendChild(this.ldiv);this.canvas=_BrowserIdent_newCanvas(this.ldiv);_BrowserIdent_setCanvasHW(this.canvas,d*2,d*2)}var ctx=_BrowserIdent_getCanvasContext(this.canvas);ctx.save();ctx.translate(d,d);ctx.globalAlpha=this.opacity;ctx.lineWidth=this.stroke;if(this.bcolor)ctx.strokeStyle=this.bcolor;if(this.color)ctx.fillStyle=this.color;if(this.shape=="square"){if(this.color)ctx.fillRect(-this.size/2,-this.size/2,this.size,this.size);if(this.bcolor)ctx.strokeRect(-this.size/2,-this.size/2,this.size,this.size)}else{ctx.beginPath();ctx.arc(0,0,this.size/2,0,Math.PI*2,false);if(this.color)ctx.fill();if(this.bcolor)ctx.stroke()}ctx.restore()};function kaXmlFeature(point){kaXmlGraphicElement.apply(this);for(var p in kaXmlGraphicElement.prototype){if(!kaXmlFeature.prototype[p])kaXmlFeature.prototype[p]=kaXmlGraphicElement.prototype[p]}this.stroke=1;this.color=null;this.bcolor=null;this.opacity=1;this.cxmin=0;this.cymax=0;this.cymin=0;this.cxmax=0;this.coords="";this.img=null;this.canvas=null;this.ldiv=null;this.xn=null;this.yn=null;var map=point.xml_overlay.kaMap.getCurrentMap();var scales=map.getScales();this.maxScale=scales[scales.length-1];this.mcs=point.xml_overlay.kaMap.cellSize/point.xml_overlay.kaMap.getCurrentScale()*this.maxScale}kaXmlFeature.prototype.remove=function(point){this.img=null;this.canvas=null;this.ldiv=null;this.coords=null;this.xn.splice(0);this.yn.splice(0)};kaXmlFeature.prototype.parseElement=function(point,domElement){var t;t=parseInt(domElement.getAttribute("stroke"));if(!isNaN(t))this.stroke=t;t=domElement.getAttribute("color");if(t!=null)this.color=t;t=domElement.getAttribute("bcolor");if(t!=null)this.bcolor=t;t=parseFloat(domElement.getAttribute("opacity"));if(!isNaN(t))this.opacity=t;var text="";if(domElement.firstChild!=null){text=domElement.firstChild.data;this.readCoordinates(point,text)}};kaXmlFeature.prototype.readCoordinates=function(point,text){var cx=new Array;var cy=new Array;this.cxmin=0;this.cymax=0;this.cymin=0;this.cxmax=0;this.coords="";var pp=text.split(",");var i;for(i=0;i<pp.length;i++){var s=pp[i];var xy=s.match(/[-\+\d\.]+/g);if(xy!=null){var x=parseFloat(xy[0]);var y=parseFloat(xy[1]);cx.push(x);cy.push(y);if(i==0||x<this.cxmin)this.cxmin=x;if(i==0||y>this.cymax)this.cymax=y;if(i==0||y<this.cymin)this.cymin=y;if(i==0||x>this.cxmax)this.cxmax=x}}this.xn=new Array;this.yn=new Array;for(i=0;i<pp.length;i++){var x=Math.round((cx[i]-this.cxmin)/this.mcs);var y=Math.round((this.cymax-cy[i])/this.mcs);if(i>0)this.coords+=",";this.coords+=x+","+y;this.xn.push(x);this.yn.push(y)}};kaXmlFeature.prototype.rescale=function(point){this.draw(point)};function kaXmlLinestring(point){kaXmlFeature.apply(this,[point]);if(_BrowserIdent_hasCanvasSupport())kaXmlLinestring.prototype["draw"]=kaXmlLinestring.prototype["draw_canvas"];else kaXmlLinestring.prototype["draw"]=kaXmlLinestring.prototype["draw_server"];for(var p in kaXmlFeature.prototype){if(!kaXmlLinestring.prototype[p])kaXmlLinestring.prototype[p]=kaXmlFeature.prototype[p]}}kaXmlLinestring.prototype.draw_server=function(point){this.draw_canvas(point)};kaXmlLinestring.prototype.draw_canvas=function(point){var xy=point.xml_overlay.kaMap.geoToPix(this.cxmin,this.cymax);var x0=xy[0];var y0=xy[1];xy=point.xml_overlay.kaMap.geoToPix(this.cxmax,this.cymin);var x1=xy[0];var y1=xy[1];xy=point.xml_overlay.kaMap.geoToPix(point.div.lon,point.div.lat);var xr=xy[0];var yr=xy[1];var border=5;var scf=point.xml_overlay.kaMap.getCurrentScale()/this.maxScale;var sizex=x1-x0+border*2;var sizey=y1-y0+border*2;if(this.canvas==null){this.ldiv=document.createElement("div");this.ldiv.style.position="absolute";point.div.appendChild(this.ldiv);this.canvas=_BrowserIdent_newCanvas(this.ldiv)}this.ldiv.style.left=x0-xr-border+"px";this.ldiv.style.top=y0-yr-border+"px";_BrowserIdent_setCanvasHW(this.canvas,sizey,sizex);var ctx=_BrowserIdent_getCanvasContext(this.canvas);ctx.save();ctx.clearRect(0,0,sizex,sizey);ctx.translate(border,border);ctx.strokeStyle=this.color;ctx.globalAlpha=this.opacity;ctx.lineWidth=this.stroke;ctx.beginPath();ctx.moveTo(this.xn[0]/scf,this.yn[0]/scf);var i;for(i=1;i<this.xn.length;i++){ctx.lineTo(this.xn[i]/scf,this.yn[i]/scf)}ctx.stroke();ctx.restore()};function kaXmlPolygon(point){kaXmlFeature.apply(this,[point]);if(_BrowserIdent_hasCanvasSupport())kaXmlPolygon.prototype["draw"]=kaXmlPolygon.prototype["draw_canvas"];else kaXmlPolygon.prototype["draw"]=kaXmlPolygon.prototype["draw_server"];for(var p in kaXmlFeature.prototype){if(!kaXmlPolygon.prototype[p])kaXmlPolygon.prototype[p]=kaXmlFeature.prototype[p]}}kaXmlPolygon.prototype.draw_server=function(point){this.draw_canvas(point)};kaXmlPolygon.prototype.draw_canvas=function(point){var xy=point.xml_overlay.kaMap.geoToPix(this.cxmin,this.cymax);var x0=xy[0];var y0=xy[1];xy=point.xml_overlay.kaMap.geoToPix(this.cxmax,this.cymin);var x1=xy[0];var y1=xy[1];xy=point.xml_overlay.kaMap.geoToPix(point.div.lon,point.div.lat);var xr=xy[0];var yr=xy[1];var border=5;var scf=point.xml_overlay.kaMap.getCurrentScale()/this.maxScale;var sizex=x1-x0+border*2;var sizey=y1-y0+border*2;if(this.canvas==null){this.ldiv=document.createElement("div");this.ldiv.style.position="absolute";point.div.appendChild(this.ldiv);this.canvas=_BrowserIdent_newCanvas(this.ldiv)}this.ldiv.style.left=x0-xr-border+"px";this.ldiv.style.top=y0-yr-border+"px";_BrowserIdent_setCanvasHW(this.canvas,sizey,sizex);var ctx=_BrowserIdent_getCanvasContext(this.canvas);ctx.save();ctx.clearRect(0,0,sizex,sizey);ctx.translate(border,border);if(this.color!=null)ctx.fillStyle=this.color;if(this.bcolor!=null&&this.bcolor!="")ctx.strokeStyle=this.bcolor;ctx.lineWidth=this.stroke;ctx.beginPath();ctx.moveTo(this.xn[0]/scf,this.yn[0]/scf);var i;for(i=1;i<this.xn.length;i++){ctx.lineTo(this.xn[i]/scf,this.yn[i]/scf)}if(this.color!=null){ctx.globalAlpha=this.fillopacity;ctx.fill()}if(this.bcolor!=null&&this.bcolor!=""){ctx.globalAlpha=this.opacity;ctx.stroke()}ctx.restore()};function kaXmlLabel(){kaXmlGraphicElement.apply(this);for(var p in kaXmlGraphicElement.prototype){if(!kaXmlLabel.prototype[p])kaXmlLabel.prototype[p]=kaXmlGraphicElement.prototype[p]}this.text="";this.color="black";this.boxcolor=null;this.w=64;this.h=24;this.xoff=0;this.yoff=0;this.fsize="10px";this.font="Arial";this.ldiv=null;this.ltxt=null}kaXmlLabel.prototype.remove=function(point){this.canvas=null;this.ldiv=null;this.ltxt=null};kaXmlLabel.prototype.parseElement=function(point,domElement){if(domElement.firstChild!=null){this.text=domElement.firstChild.data}var t;t=domElement.getAttribute("color");if(t!=null){this.color=t}this.boxcolor=domElement.getAttribute("boxcolor");t=parseInt(domElement.getAttribute("w"));if(!isNaN(t)){this.w=t}t=parseInt(domElement.getAttribute("h"));if(!isNaN(t)){this.h=t}t=parseInt(domElement.getAttribute("px"));if(!isNaN(t)){this.xoff=t}t=parseInt(domElement.getAttribute("py"));if(!isNaN(t)){this.yoff=t}t=domElement.getAttribute("fsize");if(t!=null){this.fsize=t}t=domElement.getAttribute("font");if(t!=null){this.font=t}};kaXmlLabel.prototype.draw=function(point){var x=this.xoff;var y=this.yoff;this.ldiv=document.createElement("div");this.ldiv.style.fontFamily=this.font;this.ldiv.style.fontSize=this.fsize;this.ldiv.style.textAlign="center";this.ldiv.style.color=this.color;this.ldiv.style.left=x+"px";this.ldiv.style.top=y+"px";this.ldiv.style.position="absolute";if(this.boxcolor!=null)this.ldiv.style.backgroundColor=this.boxcolor;if(this.w>0)this.ldiv.style.width=this.w+"px";else this.ldiv.style.whiteSpace="nowrap";if(this.h>0)this.ldiv.style.height=this.h+"px";this.ltxt=document.createTextNode(this.text);this.ldiv.appendChild(this.ltxt);point.div.appendChild(this.ldiv)};function kaXmlIcon(){kaXmlGraphicElement.apply(this);if(_BrowserIdent_hasCanvasSupport())kaXmlIcon.prototype["draw"]=kaXmlIcon.prototype["draw_canvas"];else kaXmlIcon.prototype["draw"]=kaXmlIcon.prototype["draw_plain"];for(var p in kaXmlGraphicElement.prototype){if(!kaXmlIcon.prototype[p])kaXmlIcon.prototype[p]=kaXmlGraphicElement.prototype[p]}this.icon_src=null;this.icon_w=0;this.icon_h=0;this.xoff=0;this.yoff=0;this.rot=0;this.ldiv=null;this.img=null;this.canvas=null}kaXmlIcon.prototype.remove=function(point){this.ldiv=null;this.canvas=null;if(this.img)this.img.onload=null;this.img=null};kaXmlIcon.prototype.parseElement=function(point,domElement){this.icon_src=point.xml_overlay.urlNormalize(domElement.getAttribute("src"));this.icon_w=parseInt(domElement.getAttribute("w"));this.icon_h=parseInt(domElement.getAttribute("h"));var t;t=parseInt(domElement.getAttribute("px"));if(!isNaN(t)){this.xoff=t}t=parseInt(domElement.getAttribute("py"));if(!isNaN(t)){this.yoff=t}t=parseInt(domElement.getAttribute("rot"));if(!isNaN(t)){this.rot=t}};kaXmlIcon.prototype.draw_canvas=function(point){var dx=-this.icon_w/2+this.xoff;var dy=-this.icon_h/2+this.yoff;if(this.canvas==null){
this.ldiv=document.createElement("div");this.ldiv.style.position="absolute";this.ldiv.style.top=dy+"px";this.ldiv.style.left=dx+"px";point.div.appendChild(this.ldiv);this.canvas=_BrowserIdent_newCanvas(this.ldiv);_BrowserIdent_setCanvasHW(this.canvas,this.icon_h*2,this.icon_w*2)}var ctx=_BrowserIdent_getCanvasContext(this.canvas);ctx.save();ctx.translate(-dx,-dy);ctx.rotate(this.rot*Math.PI/180);this.img=new Image;this.img.src=this.icon_src;var timg=this.img;var tw=this.icon_w;var th=this.icon_h;this.img.onload=function(){ctx.drawImage(timg,dx,dy,tw,th);ctx.restore()}};kaXmlIcon.prototype.draw_plain=function(point){var dx=-this.icon_w/2+this.xoff;var dy=-this.icon_h/2+this.yoff;this.ldiv=document.createElement("div");this.ldiv.style.position="absolute";this.ldiv.style.top=dy+"px";this.ldiv.style.left=dx+"px";this.img=document.createElement("img");this.img.src=this.icon_src;this.img.width=this.icon_w;this.img.height=this.icon_h;this.ldiv.appendChild(this.img);point.div.appendChild(this.ldiv)};function kaXmlPoint(pid,xml_overlay){this.xml_overlay=xml_overlay;this.pid=pid;this.divId=this.xml_overlay.getDivId(pid);this.geox=0;this.geoy=0;this.shown=false;this.graphics=new Array;this.div=document.createElement("div");this.div.setAttribute("id",this.divId)}kaXmlPoint.prototype.placeOnMap=function(x,y){if(!this.shown){this.geox=x;this.geoy=y;this.xml_overlay.kaMap.addObjectGeo(this.xml_overlay.overlayCanvas,x,y,this.div);this.shown=true}};kaXmlPoint.prototype.removeFromMap=function(){if(this.shown){this.xml_overlay.kaMap.removeObject(this.div);this.shown=false}var i;for(i=0;i<this.graphics.length;i++){this.graphics[i].remove(this)}this.graphics.splice(0);this.div=null;this.xml_overlay=null};kaXmlPoint.prototype.setPosition=function(x,y){if(this.shown){this.geox=x;this.geoy=y;this.div.lat=y;this.div.lon=x}};kaXmlPoint.prototype.addGraphic=function(obj){this.graphics.push(obj);obj.draw(this)};kaXmlPoint.prototype.clear=function(){this.div.innerHTML="";this.graphics.length=0};kaXmlPoint.prototype.setInnerHtml=function(ihtml){this.clear();this.div.innerHTML=ihtml};kaXmlPoint.prototype.parse=function(point_element){var i;var x=parseFloat(point_element.getAttribute("x"));var y=parseFloat(point_element.getAttribute("y"));var redraw_a=point_element.getAttribute("redraw");var redraw=false;if(redraw_a=="true")redraw=true;if(!this.shown){this.placeOnMap(x,y);this.shown=true}else{this.setPosition(x,y);if(!redraw)return;this.clear()}var ihtml_element=point_element.getElementsByTagName("ihtml");for(i=0;i<ihtml_element.length;i++){this.div.innerHTML=ihtml_element[i].firstChild.nodeValue}var t;var elements;elements=point_element.getElementsByTagName("symbol");for(i=0;i<elements.length;i++){t=new kaXmlSymbol;t.parseElement(this,elements[i]);this.addGraphic(t)}elements=point_element.getElementsByTagName("icon");for(i=0;i<elements.length;i++){t=new kaXmlIcon;t.parseElement(this,elements[i]);this.addGraphic(t)}elements=point_element.getElementsByTagName("label");for(i=0;i<elements.length;i++){t=new kaXmlLabel;t.parseElement(this,elements[i]);this.addGraphic(t)}elements=point_element.getElementsByTagName("linestring");for(i=0;i<elements.length;i++){t=new kaXmlLinestring(this);t.parseElement(this,elements[i]);this.addGraphic(t)}elements=point_element.getElementsByTagName("polygon");for(i=0;i<elements.length;i++){t=new kaXmlPolygon(this);t.parseElement(this,elements[i]);this.addGraphic(t)}};kaXmlPoint.prototype.rescale=function(point_element){var i;for(i=0;i<this.graphics.length;i++){this.graphics[i].rescale(this)}};var _BrowserIdent_browser=null;var _BrowserIdent_version=null;var _BrowserIdent_place=0;var _BrowserIdent_thestring=null;var _BrowserIdent_detect=null;function _BrowserIdent(){_BrowserIdent_detect=navigator.userAgent.toLowerCase();if(_BrowserIdent_checkIt("konqueror")){_BrowserIdent_browser="Konqueror"}else if(_BrowserIdent_checkIt("safari"))_BrowserIdent_browser="Safari";else if(_BrowserIdent_checkIt("omniweb"))_BrowserIdent_browser="OmniWeb";else if(_BrowserIdent_checkIt("opera"))_BrowserIdent_browser="Opera";else if(_BrowserIdent_checkIt("webtv"))_BrowserIdent_browser="WebTV";else if(_BrowserIdent_checkIt("icab"))_BrowserIdent_browser="iCab";else if(_BrowserIdent_checkIt("msie"))_BrowserIdent_browser="Internet Explorer";else if(_BrowserIdent_checkIt("firefox"))_BrowserIdent_browser="Firefox";else if(!_BrowserIdent_checkIt("compatible")){_BrowserIdent_browser="Netscape Navigator";_BrowserIdent_version=_BrowserIdent_detect.charAt(8)}else _BrowserIdent_browser="An unknown browser";if(!_BrowserIdent_version)_BrowserIdent_version=_BrowserIdent_detect.charAt(_BrowserIdent_place+_BrowserIdent_thestring.length)}function _BrowserIdent_checkIt(string){_BrowserIdent_place=_BrowserIdent_detect.indexOf(string)+1;_BrowserIdent_thestring=string;return _BrowserIdent_place}function _BrowserIdent_setOpacity(imageobject,opacity){if(opacity==undefined||opacity>=1)return"";if(_BrowserIdent_browser=="Netscape Navigator")imageobject.style.MozOpacity=opacity;else if(_BrowserIdent_browser=="Internet Explorer"&&parseInt(this.version)>=4){var tmp=imageobject.style.cssText;tmp="filter: alpha(opacity="+opacity*100+");"+tmp;imageobject.style.cssText=tmp}else{var tmp=imageobject.style.cssText;tmp="opacity: "+opacity+";"+tmp;imageobject.style.cssText=tmp}}function _BrowserIdent_getPreferredImageType(){if(_BrowserIdent_browser=="Netscape Navigator")return"P";else if(_BrowserIdent_browser=="Opera")return"P";else if(_BrowserIdent_browser=="Firefox")return"P";else if(_BrowserIdent_browser=="Safari")return"P";else if(_BrowserIdent_browser=="Konqueror")return"P";else return"G"}function _BrowserIdent_getPreferredOpacity(){if(_BrowserIdent_browser=="Netscape Navigator")return"server";else if(_BrowserIdent_browser=="Firefox")return"server";else if(_BrowserIdent_browser=="Opera")return"server";else if(_BrowserIdent_browser=="Konqueror")return"server";else return"client"}var xmlOverlayUseCanvas=true;function _BrowserIdent_hasCanvasSupport(){if(!xmlOverlayUseCanvas)return false;if(_BrowserIdent_browser=="Internet Explorer")return true;if(_BrowserIdent_browser=="Firefox")return true;if(_BrowserIdent_browser=="Safari")return true;return false}function _BrowserIdent_newCanvas(parentNode){var el=document.createElement("canvas");parentNode.appendChild(el);if(typeof G_vmlCanvasManager!="undefined"){el=G_vmlCanvasManager.initElement(el)}return el}function _BrowserIdent_getCanvasContext(canvas){return canvas.getContext("2d")}function _BrowserIdent_setCanvasHW(canvas,height,width){canvas.width=width;canvas.height=height}_BrowserIdent();if(navigator.userAgent.indexOf("Firefox")!=-1||navigator.userAgent.indexOf("Safari")!=-1){var svg_ns="http://www.w3.org/2000/svg";kaXmlPolygon.prototype.draw_canvas=function(point){var xy=point.xml_overlay.kaMap.geoToPix(this.cxmin,this.cymax);var x0=xy[0];var y0=xy[1];xy=point.xml_overlay.kaMap.geoToPix(this.cxmax,this.cymin);var x1=xy[0];var y1=xy[1];xy=point.xml_overlay.kaMap.geoToPix(point.div.lon,point.div.lat);var xr=xy[0];var yr=xy[1];var scf=point.xml_overlay.kaMap.getCurrentScale()/this.maxScale;var sizex=x1-x0+this.stroke*2;var sizey=y1-y0+this.stroke*2;if(this.canvas==null){this.canvas=document.createElementNS(svg_ns,"svg");point.div.appendChild(this.canvas)}while(this.canvas.childNodes.length>0)this.canvas.removeChild(this.canvas.firstChild);this.canvas.setAttribute("version","1.1");this.canvas.setAttribute("overflow","visible");this.canvas.style.position="absolute";this.canvas.style.left=x0-xr-this.stroke+"px";this.canvas.style.top=y0-yr-this.stroke+"px";this.canvas.setAttribute("width",sizex+"px");this.canvas.setAttribute("height",sizey+"px");var p=document.createElementNS(svg_ns,"path");p.setAttribute("stroke-linejoin","round");p.setAttribute("stroke-linecap","round");p.setAttribute("stroke-opacity",this.opacity);p.setAttribute("stroke-width",this.stroke);p.setAttribute("stroke",this.bcolor);p.setAttribute("fill-rule","evenodd");p.setAttribute("fill",this.color);p.setAttribute("fill-opacity",this.fillopacity);var data="";for(var i=0;i<this.xn.length;i++){if(i==0)data+="M";else data+="L";data+=this.xn[i]/scf+this.stroke+" "+(this.yn[i]/scf+this.stroke)}p.setAttribute("d",data);this.canvas.appendChild(p)};kaXmlLinestring.prototype.draw_canvas=function(point){var xy=point.xml_overlay.kaMap.geoToPix(this.cxmin,this.cymax);var x0=xy[0];var y0=xy[1];xy=point.xml_overlay.kaMap.geoToPix(this.cxmax,this.cymin);var x1=xy[0];var y1=xy[1];xy=point.xml_overlay.kaMap.geoToPix(point.div.lon,point.div.lat);var xr=xy[0];var yr=xy[1];var scf=point.xml_overlay.kaMap.getCurrentScale()/this.maxScale;var sizex=x1-x0+this.stroke*2;var sizey=y1-y0+this.stroke*2;if(this.canvas==null){this.canvas=document.createElementNS(svg_ns,"svg");point.div.appendChild(this.canvas)}while(this.canvas.childNodes.length>0)this.canvas.removeChild(this.canvas.firstChild);this.canvas.setAttribute("version","1.1");this.canvas.setAttribute("overflow","visible");this.canvas.style.position="absolute";this.canvas.style.left=x0-xr-this.stroke+"px";this.canvas.style.top=y0-yr-this.stroke+"px";this.canvas.setAttribute("width",sizex+"px");this.canvas.setAttribute("height",sizey+"px");var p=document.createElementNS(svg_ns,"path");p.setAttribute("stroke-linejoin","round");p.setAttribute("stroke-linecap","round");p.setAttribute("stroke-opacity",this.opacity);p.setAttribute("stroke-width",this.stroke);p.setAttribute("stroke",this.color);p.setAttribute("fill","none");var data="";for(var i=0;i<this.xn.length;i++){if(i==0)data+="M";else data+="L";data+=this.xn[i]/scf+this.stroke+" "+(this.yn[i]/scf+this.stroke)}p.setAttribute("d",data);this.canvas.appendChild(p)}}LayerToolButton=function(data){if(data){$.extend(this,data)}};LayerToolButton.prototype={show:function(){},hide:function(){}};function handleCutPoints(select){if(isSubscriber()||isCovidData()){map.getLegend().setNumberOfBreaks(parseInt(select.value));session.put("nb",parseInt(select.value));widget.refresh()}else{for(var i=0;i<select.options.length;i++){if(select.options[i].defaultSelected){select.options[i].selected=true}else{select.options[i].selected=false}}subscribeAlert()}}function displayEditRangesPanel(){if(!isSubscriber()&&!isCovidData()){widget.getIndicatorBreaks().setEditMode(false);subscribeAlert()}else{widget.getIndicatorBreaks().setEditMode(true)}return false}PIndicatorBreaks=function(legend,options){this.legend=legend;this.instanceId=options&&options.instanceId!=null?options.instanceId:"";this.sessionId=this.instanceId+"breaks";this.editmode=false;this.hasEditedBreaks=false;this.eventTypes=new Object;this.eventTypes.refresh="refresh";this.eventTypes.clear="clear";this.eventManager=new PEventManager;this.refresh()};PIndicatorBreaks.EDITSTATE=new Object;PIndicatorBreaks.EDITSTATE.nonSubscriber=1;PIndicatorBreaks.EDITSTATE.currentlyEditing=2;PIndicatorBreaks.EDITSTATE.alreadyEdited=4;PIndicatorBreaks.EDITSTATE.zoomInFurther=8;PIndicatorBreaks.EDITSTATE.exactBreaks=16;PIndicatorBreaks.EDITSTATE.noBoundaryType=32;PIndicatorBreaks.EDITSTATE.noData=128;var editState=0;PIndicatorBreaks.prototype={addListener:function(eventId,f,c){this.eventManager.addListener(eventId,f,c)},clear:function(){session.remove(this.sessionId);this.eventManager.triggerListeners(this.eventTypes.clear)},setEditMode:function(mode){this.editMode=mode;this.refresh()},restoreBreaks:function(){this.hasEditedBreaks=false;if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){session.remove("legendind");this.setEditMode(false);this.refresh();map.refresh()}else{var numBreaks=this.legend.getNumberOfBreaks();this.legend.getIndicator().restoreBreaks(this.legend.getIndicator().getPeriod(),this.legend.getBoundaryType(),numBreaks);this.createBreaksSession();this.refresh()}},refresh:function(){if(this.legend.getIndicator()){var ind=this.legend.getIndicator();var placetype=this.legend.getBoundaryType();var numBreaks=this.legend.getNumberOfBreaks();var colors=this.legend.getColors();var incrementValue=PWebUtil.getBreakIncrement(this.legend.getBreaks());var breaks=this.legend.getFormattedBreaks(incrementValue);var incrementBreaks=this.legend.getIncrementedBreaks(incrementValue);editState=0;if(ind.getID()!=session.get("legendind")){this.hasEditedBreaks=false;session.remove("mvalayers")}if(this.editMode)editState|=PIndicatorBreaks.EDITSTATE.currentlyEditing;if(!isSubscriber()&&!isCovidData())editState|=PIndicatorBreaks.EDITSTATE.nonSubscriber;if(placetype&&ind.hasCustomBreaks(ind.getPeriod(),placetype,numBreaks))editState|=PIndicatorBreaks.EDITSTATE.alreadyEdited;if(placetype==null)editState|=PIndicatorBreaks.EDITSTATE.noBoundaryType;if(ind.nodata)editState|=PIndicatorBreaks.EDITSTATE.noData;if(ind.breakid==P_BREAKTYPE_EXACT_VALUE_ID||ind.breakid==P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID)editState|=PIndicatorBreaks.EDITSTATE.exactBreaks;var numExactBreaks=0;if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){if(editState&PIndicatorBreaks.EDITSTATE.noData)numExactBreaks=numBreaks+1;else numExactBreaks=numBreaks}var isUrlInd=false;if(session.get("lind")!=null){var layersString=session.get("lind");if(layersString.length>=numExactBreaks){var mvaLayers=[];isUrlInd=true;session.put("legendind",ind.getID());for(var i=0;i<layersString.length;i++){if(layersString.charAt(i)=="0")mvaLayers[i]=false;else if(layersString.charAt(i)=="1")mvaLayers[i]=true;else session.remove("legendind")}session.put("mvalayers",mvaLayers)}else{session.remove("legendind");session.remove("mvaLayers")}if(!P.instances.wkprint.isPrintPage()){session.remove("lind")}}if(!isUrlInd&&!this.hasEditedBreaks){session.put("legendind",ind.getID());if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){var mvaLayers=[];for(var i=0;i<numExactBreaks;i++){mvaLayers[i]=true}session.put("mvalayers",mvaLayers)}}if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){var breaksChanged=false;var mvaLayers=session.get("mvalayers");for(var i=0;i<numExactBreaks;i++){if(!mvaLayers[i])breaksChanged=true}if(breaksChanged)editState|=PIndicatorBreaks.EDITSTATE.alreadyEdited}this.eventManager.triggerListeners(this.eventTypes.refresh,breaks,incrementBreaks,numBreaks,colors,this.legend)}},createBreaksSession:function(){var ind=this.legend.getIndicator();var breaksobj=ind.createCustomBreaksJSON();var obj=session.get(this.sessionId);if(obj==null)obj={};obj[ind.id]=breaksobj;session.put(this.sessionId,obj)},applyCustomBreaks:function(allPeriods){this.hasEditedBreaks=true;var numBreaks=this.legend.getNumberOfBreaks();if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){var mvaLayers=[];if(editState&PIndicatorBreaks.EDITSTATE.noData)numBreaks++;for(var i=0;i<numBreaks;i++)mvaLayers[i]=$("input[id=breakbox"+i+"][type=checkbox]").attr("checked");session.put("mvalayers",mvaLayers);this.setEditMode(false);map.refresh()}else{var breaks="";var curInd=this.legend.getIndicator();for(var i=0;i<numBreaks;i++){var index;if(curInd.nodata){index=i+1}else{index=i}var rgx=/[^0-9\.-]/g;if(i==0){breaks=document.getElementById(this.instanceId+"breakbox"+index+"a").value.replace(rgx,"")}breaks+=","+document.getElementById(this.instanceId+"breakbox"+index+"b").value.replace(rgx,"")}if(allPeriods){curInd.setCustomBreaks(breaks,this.legend.getBoundaryType(),"all")}else{curInd.setCustomBreaks(breaks,this.legend.getBoundaryType())}this.createBreaksSession();this.setEditMode(false)}},checkBreakBoxes:function(id){function getIncrement(dec){if(dec==0)return 1;else{var inc="0.";for(var i=1;i<dec;i++)inc+="0";inc+="1";return Number(inc)}}var box=document.getElementById(id);var rgx=/[^0-9\.-]/g;var rgxNum=/[0-9]/g;var boxval=parseFloat(box.value.replace(rgx,""));var dec=PWebUtil.getDecimalPlaces(boxval);var inc=getIncrement(dec);var bordercolor="2px solid #ff9900";var index=parseInt(id.charAt(id.length-2));var subindex=id.charAt(id.length-1);var unit=this.legend.getIndicator().unit;if(subindex=="a"){var boxBprev=document.getElementById("breakbox"+(index-1)+"b");if(boxBprev){var checkdec=PWebUtil.getDecimalPlaces(boxBprev.value.replace(rgx,""));if(checkdec>dec)dec=checkdec;inc=getIncrement(dec);if(boxval.toString().match(rgxNum)){var boxBprevval=boxval-inc;boxBprev.value=PWebUtil.formatNumber(boxBprevval,unit,dec);boxBprev.style.border=bordercolor;var boxAprev=document.getElementById("breakbox"+(index-1)+"a");var boxAprevval=parseFloat(boxAprev.value.replace(rgx,""));if(boxAprevval>boxBprevval){boxAprev.value=PWebUtil.formatNumber(boxBprevval,unit,dec);this.checkBreakBoxes("breakbox"+(index-1)+"a")}}else boxval=parseFloat(boxBprev.value.replace(rgx,""))+inc}var boxB=document.getElementById("breakbox"+index+"b");var boxBval=parseFloat(boxB.value.replace(rgx,""));if(boxval>boxBval){boxB.value=PWebUtil.formatNumber(boxval,unit,dec);this.checkBreakBoxes("breakbox"+index+"b")}if(!boxBprev&&!boxval){var breaks=this.legend.getBreaks();var breaksarr=breaks.split(",");var index=0;if(this.legend.getIndicator().nodata)index=1;boxval=breaksarr[index];dec=PWebUtil.getDecimalPlaces(boxB.value.replace(rgx,""))}}else if(subindex=="b"){var boxAnext=document.getElementById("breakbox"+(index+1)+"a");if(boxAnext){var checkdec=PWebUtil.getDecimalPlaces(boxAnext.value.replace(rgx,""));if(checkdec>dec)dec=checkdec;var inc=getIncrement(dec);if(boxval.toString().match(rgxNum)){var boxAnextval=boxval+inc;boxAnext.value=PWebUtil.formatNumber(boxAnextval,unit,dec);boxAnext.style.border=bordercolor;var boxBnext=document.getElementById("breakbox"+(index+1)+"b");var boxBnextval=parseFloat(boxBnext.value.replace(rgx,""));if(boxBnextval<boxAnextval){boxBnext.value=PWebUtil.formatNumber(boxAnextval,unit,dec);this.checkBreakBoxes("breakbox"+(index+1)+"b")}}else boxval=parseFloat(boxAnext.value.replace(rgx,""))-inc}var boxA=document.getElementById("breakbox"+index+"a");if(boxA){var boxAval=parseFloat(boxA.value.replace(rgx,""));if(boxAval>boxval){boxA.value=PWebUtil.formatNumber(boxval,unit,dec);this.checkBreakBoxes("breakbox"+index+"a")}}if(!boxAnext&&!boxval){var breaks=this.legend.getBreaks();var breaksarr=breaks.split(",");boxval=breaksarr[breaksarr.length-1];dec=PWebUtil.getDecimalPlaces(boxA.value.replace(rgx,""))}}box.value=PWebUtil.formatNumber(boxval,unit,dec);box.style.border=bordercolor}};PIndicatorToggle=function(legend,map,indLegend,options){this.legend=legend;this.map=map;this.indLegend=indLegend;this.instanceId=options&&options.instanceId!=null?options.instanceId:"";this.listeners=[];this.eventTypes=new Object;this.eventTypes.refresh="refresh";this.eventTypes.clear="clear";this.eventManager=new PEventManager};PIndicatorToggle.YEAR=new Object;PIndicatorToggle.YEAR.selectedYear=1;PIndicatorToggle.YEAR.availableYear=2;PIndicatorToggle.YEAR.mustSubscribe=4;PIndicatorToggle.YEAR.notAvailable=8;PIndicatorToggle.YEAR.projection=16;PIndicatorToggle.QUARTER=new Object;PIndicatorToggle.QUARTER.selectedQuarter=1;PIndicatorToggle.QUARTER.availableQuarter=2;PIndicatorToggle.MONTH=new Object;PIndicatorToggle.MONTH.selectedMonth=1;PIndicatorToggle.MONTH.availableMonth=2;PIndicatorToggle.DAY=new Object;PIndicatorToggle.DAY.selectedDay=1;PIndicatorToggle.DAY.availableDay=2;PIndicatorToggle.INDICATOR=new Object;PIndicatorToggle.INDICATOR.selectedIndicator=1;PIndicatorItemToggle=function(value,state,func,funcParams,title){this.value=value;this.state=state;this.func=func;this.funcParams=funcParams;this.title=title};PIndicatorToggle.prototype={clear:function(){this.eventManager.triggerListeners(this.eventTypes.clear)},addListener:function(eventId,f,c){this.eventManager.addListener(eventId,f,c)},refresh:function(){var self=this;this.clear();var ind=this.legend.getIndicator();if(ind&&!allowIndicator(ind)){this.indLegend.clear();var content="You must be a subscriber to view this indicator.";alerter.popup(content,"OK")}else if(ind){var quarters=new Array;var months=new Array;var days=new Array;var indicators=new Array;var years=_.chain(ind.periods).sortBy(function sortByTextAscending(period){return period}).map(function parseYears(period){if(period.match(/^\d{4}-\d{4}$/)){return period}else{return period.substring(0,4)}}).uniq().map(function(year){return new PIndicatorItemToggle(year,self.getYearState(ind,year),self.selectYearFunction,{legend:self.legend,ind:ind,map:self.map,period:year,indLegend:self.indLegend})}).value();if(ind.getPeriod().match("q")){var q=ind.getPeriod().split("q");for(var i=1;i<5;i++){var qLabel="Q"+i;var period=q[0]+"q"+i;if(q[1]==i)quarters.push(new PIndicatorItemToggle(qLabel,PIndicatorToggle.QUARTER.selectedQuarter,null,null));else if(ind.hasPeriod(period)&&allowPeriod(ind,period))quarters.push(new PIndicatorItemToggle(qLabel,PIndicatorToggle.QUARTER.availableQuarter,this.selectQuarterFunction,{ind:ind,period:period,legend:this.legend,indLegend:this.indLegend,map:this.map}));else quarters.push(new PIndicatorItemToggle(qLabel,0,null,null))}}else if(ind.getPeriod().match(/^\d{4}-\d{2}$/)){var m=ind.getPeriod().split("-");var labels=["J","F","M","A","M","J","J","A","S","O","N","D"];for(var i=1;i<13;i++){var mLabel=labels[i-1];var z="";if(i<10)z="0";var period=m[0]+"-"+z+i;if(m[1]==i)months.push(new PIndicatorItemToggle(mLabel,PIndicatorToggle.MONTH.selectedMonth,null,null));else if(ind.hasPeriod(period)&&allowPeriod(ind,period))months.push(new PIndicatorItemToggle(mLabel,PIndicatorToggle.MONTH.availableMonth,this.selectMonthFunction,{ind:ind,period:period,legend:this.legend,indLegend:this.indLegend,map:this.map}));else months.push(new PIndicatorItemToggle(mLabel,0,null,null))}}else if(ind.getPeriod().split("-").length==3){var arr=ind.getPeriod().split("-");var year=arr[0];var month=arr[1];var d=arr[2];var padWithZero=function(n){n=n.toString();if(n.length==1){n="0"+n}return n};var labels=["J","F","M","A","M","J","J","A","S","O","N","D"];for(var i=1;i<13;i++){var mLabel=labels[i-1];var totalDays=new Date(year,i,0).getDate();var foundDay=false;var period;for(var j=totalDays;j>0;j--){period=year+"-"+padWithZero(i)+"-"+padWithZero(j);if(ind.hasPeriod(period)){foundDay=true;break}}if(month==i)months.push(new PIndicatorItemToggle(mLabel,PIndicatorToggle.MONTH.selectedMonth,null,null));else if(ind.hasPeriod(period)&&allowPeriod(ind,period))months.push(new PIndicatorItemToggle(mLabel,PIndicatorToggle.MONTH.availableMonth,this.selectMonthFunction,{ind:ind,period:period,legend:this.legend,indLegend:this.indLegend,map:this.map}));else months.push(new PIndicatorItemToggle(mLabel,0,null,null))}var totalDays=new Date(year,month,0).getDate();for(var i=1;i<=totalDays;i++){var label=i;var period=year+"-"+month+"-"+padWithZero(i);if(d==i){days.push(new PIndicatorItemToggle(label,PIndicatorToggle.DAY.selectedDay,null,null))}else if(ind.hasPeriod(period)&&allowPeriod(ind,period))days.push(new PIndicatorItemToggle(label,PIndicatorToggle.DAY.availableDay,this.selectDayFunction,{ind:ind,period:period,legend:this.legend,indLegend:this.indLegend,map:this.map}));else days.push(new PIndicatorItemToggle(label,0,null,null))}}if(this.indLegend.indicatorList){this.indLegend.clearMeasurementLabels();for(var i=0;i<this.indLegend.indicatorList.length;i++){var currentInd=this.indLegend.indicatorList[i];this.indLegend.storeMeasurementLabel(currentInd.measurement);var periods=currentInd.getPeriods();var indAllow=false;for(var j=0;j<periods.length;j++){if(allowPeriod(currentInd,periods[j])){indAllow=true;break}}if(indAllow){var value=this.indLegend.getMeasurementLabel(currentInd);var title=currentInd.title||this.indLegend.getMeasurementLabel(currentInd,true);if(currentInd==ind)indicators.push(new PIndicatorItemToggle(value,PIndicatorToggle.INDICATOR.selectedIndicator,null,null,title));else indicators.push(new PIndicatorItemToggle(value,0,this.selectIndicatorFunction,{ind:currentInd,legend:this.legend,indLegend:this.indLegend},title))}}}this.eventManager.triggerListeners(this.eventTypes.refresh,years,quarters,indicators,months,days)}},getYearState:function(ind,period){var state=PIndicatorToggle.YEAR.notAvailable;var checkPeriod;if(ind.getPeriod().match(/^\d{4}-\d{4}$/)){checkPeriod=ind.getPeriod()}else{checkPeriod=ind.getPeriod().slice(0,4)}if(checkPeriod==period){state=PIndicatorToggle.YEAR.selectedYear}else if(ind.hasYear(period)&&allowPeriod(ind,period)){state=PIndicatorToggle.YEAR.availableYear}else if(ind.hasYear(period)&&ind.containsSource("Census and Nielsen")){state=PIndicatorToggle.YEAR.mustSubscribe}return state},selectYearFunction:function(){if(!this.ind.hasPeriod(this.period)){this.period=this.ind.getQuarter(this.period)||this.ind.getMonth(this.period)||this.ind.getDay(this.period);this.legend.unlockBoundaryType()}this.ind.setPeriod(this.period);global_period=this.period;if(PEnvironment.pageName=="tables"){setTablesPeriod([this.period])}else{this.indLegend.refreshLegendThenCheckPlaceTypes()}this.indLegend.indicatorChanged();if(this.map){jQuery("#maptitlebox").hide();jQuery("#moretitle").hide();showIndicatorDescriptionIfOn(this.ind);jQuery("#maptitlebox").fadeIn(2e3)}closeCubeWindow();if(PEnvironment.pageName=="widget"){this.indLegend.refreshWidgetPopUpTable();refreshWidgetCharts()}var ind=this.ind;if(ind.hasOverlaySets()){map.updateIndicatorOverlaySets(ind)}},selectQuarterFunction:function(){this.ind.setPeriod(this.period);global_period=this.period;if(PEnvironment.pageName=="tables"){setTablesPeriod([this.period])}else{this.indLegend.refreshLegendThenCheckPlaceTypes()}this.indLegend.indicatorChanged();if(this.map){jQuery("#maptitlebox").hide();jQuery("#moretitle").hide();showIndicatorDescriptionIfOn(this.ind);jQuery("#maptitlebox").fadeIn(2e3)}closeCubeWindow();if(PEnvironment.pageName=="widget"){this.indLegend.refreshWidgetPopUpTable();refreshWidgetCharts()}},selectMonthFunction:function(){this.ind.setPeriod(this.period);global_period=this.period;if(PEnvironment.pageName=="tables"){setTablesPeriod([this.period])}else{this.indLegend.refreshLegendThenCheckPlaceTypes()}this.indLegend.indicatorChanged();if(this.map){jQuery("#maptitlebox").hide();jQuery("#moretitle").hide();showIndicatorDescriptionIfOn(this.ind);jQuery("#maptitlebox").fadeIn(2e3)}closeCubeWindow();if(PEnvironment.pageName=="widget"){this.indLegend.refreshWidgetPopUpTable();refreshWidgetCharts()}},selectDayFunction:function(){this.ind.setPeriod(this.period);global_period=this.period;if(PEnvironment.pageName=="tables"){setTablesPeriod([this.period])}else{this.indLegend.refreshLegendThenCheckPlaceTypes()}this.indLegend.indicatorChanged();if(this.map){jQuery("#maptitlebox").hide();jQuery("#moretitle").hide();showIndicatorDescriptionIfOn(this.ind);jQuery("#maptitlebox").fadeIn(2e3)}closeCubeWindow();if(PEnvironment.pageName=="widget"){this.indLegend.refreshWidgetPopUpTable();refreshWidgetCharts()}},selectIndicatorFunction:function(){this.indLegend.setIndicatorList([this.ind],true,null,true);if(this.map){jQuery("#maptitlebox").hide();jQuery("#moretitle").hide();showIndicatorDescriptionIfOn(this.ind);jQuery("#maptitlebox").fadeIn(2e3);jQuery("#maptitlbox").animate({backgroundColor:"orange"},1e3)}closeCubeWindow();if(this.map)this.map.setIndicator(this.ind);this.indLegend.refresh();this.indLegend.indicatorChanged();if(PEnvironment.pageName=="widget"){this.indLegend.refreshWidgetPopUpTable()}}};PIndicatorShade=function(legend,options){this.legend=legend;this.instanceId=options&&options.instanceId!=null?options.instanceId:"";this.disableDefault=options&&options.disableDefault!=null?options.disableDefault:false;this.sessionId=this.instanceId+"btds";this.oldBoundaryTypeId=0;this.boundaryId=0;this.userBoundaryId=0;this.userSelectedBoundaryTypeAtLeastOnce=false;this.eventTypes=new Object;this.eventTypes.clear="clear";this.eventTypes.refresh="refresh";this.eventTypes.change="change";this.eventManager=new PEventManager};PIndicatorShadeInfo=function(ind){this.indicator=ind;this.shadeString=null;this.shadeItems=null};PIndicatorShadeItem=function(typeId,defId,name,selected,notAvailAtZoom){this.id=typeId;this.typeId=typeId;this.defId=defId;this.name=name;this.selected=selected;this.defaultSelected=false;this.disabled=notAvailAtZoom};PIndicatorShade.prototype={clear:function(){session.remove(this.sessionId);this.setOldBoundaryTypeId(0);this.boundaryId=0;this.userBoundaryId=0;this.eventManager.triggerListeners(this.eventTypes.clear)},addListener:function(eventId,f,c){this.eventManager.addListener(eventId,f,c)},setOldBoundaryTypeId:function(id){this.oldBoundaryTypeId=id},getOldBoundaryTypeId:function(){return this.oldBoundaryTypeId},changeShade:function(boundaryId,useLockOption){if(boundaryId==0&&(this.legend.boundaryTypeIsLocked(this.legend.getIndicator().id)||this.legend.isBoundaryTypeSetToLockGlobally())){this.legend.unlockBoundaryType();if(this.legend.isBoundaryTypeSetToLockGlobally()&&useLockOption){this.legend.unlockBoundaryTypeGlobally(boundaryId)}else{var btds=session.get(this.sessionId)&&session.get(this.sessionId).constructor==Object?session.get(this.sessionId):{};btds[this.legend.getIndicator().id]=null;session.put(this.sessionId,btds)}this.update(this.legend.getIndicator());this.setOldBoundaryTypeId(boundaryId)}else if(this.legend.isValidBoundaryType(boundaryId)||PEnvironment.pageName=="analytics"||boundaryId==0){this.legend.lockBoundaryType();this.legend.setBoundaryType(boundaryId);if(this.legend.isBoundaryTypeSetToLockGlobally()&&useLockOption){this.legend.lockBoundaryTypeGlobally(boundaryId)}else{var btds=session.get(this.sessionId)&&session.get(this.sessionId).constructor==Object?session.get(this.sessionId):{};btds[this.legend.getIndicator().id]=boundaryId;session.put(this.sessionId,btds)}this.setOldBoundaryTypeId(boundaryId);this.boundaryId=boundaryId}this.userBoundaryId=boundaryId;this.userSelectedBoundaryTypeAtLeastOnce=true;this.eventManager.triggerListeners(this.eventTypes.change);closeCubeWindow();map.refresh()},update:function(ind){if(ind){if(this.disableDefault)this.legend.lockBoundaryType();var shadeInfo=new PIndicatorShadeInfo(ind);if(this.legend.isPrerenderedBoundary()){shadeInfo.shadeString=this.legend.getBoundaryType().getName()}else{shadeInfo.shadeItems=[];var indBoundTypes=orderPlaceTypes(ind.getPlaceTypes()).reverse();var listDefault=false;if(!this.legend.getBoundaryType()){this.eventManager.triggerListeners(this.eventTypes.refresh,shadeInfo);return}var prefBoundaryId=this.legend.getBoundaryType().id;if(PEnvironment.pageName=="analytics"){if(jQuery.inArray(PPlaceType.CENSUSTRACT,indBoundTypes)>=0){prefBoundaryId=PPlaceType.CENSUSTRACT.id}else if(indBoundTypes.length>0){prefBoundaryId=indBoundTypes[0].id}}var sessionBoundaryId=null;var btds={};if(session.get(this.sessionId)){if(typeof session.get(this.sessionId)==="string"){btds=JSON.parse(session.get(this.sessionId))}else if(typeof session.get(this.sessionId)==="object"){btds=session.get(this.sessionId)}}var btd=session.get(this.instanceId+"btd");session.remove(this.instanceId+"btd");if(PEnvironment.pageName=="widget"&&this.legend.isBoundaryTypeSetToLockGlobally()&&this.legend.isValidBoundaryType(this.legend.getGloballyLockedType())){sessionBoundaryId=this.legend.getGloballyLockedType()}else if(btd&&this.legend.isValidBoundaryType(btd)||btd&&PEnvironment.pageName=="analytics"){btds[ind.id]=btd;if(PEnvironment.pageName!="widget"){session.put(this.sessionId,btds)}if((PEnvironment.pageName=="maps"||isEmbedPage())&&this.userSelectedBoundaryTypeAtLeastOnce===false){var urlParams=getUrlParams();if(urlParams["btd"]&&urlParams["btd"]==btd){session.remove(this.instanceId+"btd");session.remove(this.instanceId+"btds")}}sessionBoundaryId=btd}else if(!sessionBoundaryId){sessionBoundaryId=btds[ind.id]}if(sessionBoundaryId&&parseInt(sessionBoundaryId)>0&&this.legend.isValidBoundaryType(sessionBoundaryId)){prefBoundaryId=sessionBoundaryId;this.legend.lockBoundaryType();this.legend.setBoundaryType(prefBoundaryId)}else if(sessionBoundaryId&&parseInt(sessionBoundaryId)>0&&PEnvironment.pageName=="analytics"){prefBoundaryId=sessionBoundaryId;this.legend.lockBoundaryType();this.legend.setBoundaryType(prefBoundaryId)}if(this.userBoundaryId>0&&PEnvironment.pageName=="analytics")prefBoundaryId=this.userBoundaryId;else if(this.boundaryId>0&&PEnvironment.pageName=="analytics")prefBoundaryId=this.boundaryId
;allowBlockGroupData=true;this.boundaryId=0;for(var j=0;j<indBoundTypes.length;++j){var notAvailAtZoom=false;if(!this.legend.isValidBoundaryType(indBoundTypes[j])){notAvailAtZoom=true}if(!isCBClone()){if(PEnvironment.pageName=="analytics"&&!allowBlockGroupData&&indBoundTypes[j].id==15&&indBoundTypes.length>1){continue}}var typeId=indBoundTypes[j].id;var matrixId=ind.matrixIds[ind.curPerIndex];var def=boundaryMatrix.getDefinitionForTypeId(typeId,matrixId);var displayName=def.displayName;if(PEnvironment.pageName=="widget"&&(indBoundTypes[j]==PPlaceType.SLD_UPPER||indBoundTypes[j]==PPlaceType.SLD_LOWER)){displayName=displayName.replace("District","Dist")}var newItem=new PIndicatorShadeItem(typeId,def.boundaryDefinitionId,displayName,false,notAvailAtZoom);if(prefBoundaryId==indBoundTypes[j].id&&(this.legend.isValidBoundaryType(indBoundTypes[j])||PEnvironment.pageName=="analytics")){newItem.selected=true;newItem.defaultSelected=true;if(btds[ind.id]||this.legend.isBoundaryTypeSetToLockGlobally()&&this.legend.getGloballyLockedType())listDefault=true;this.legend.setBoundaryType(indBoundTypes[j]);this.boundaryId=newItem.id}shadeInfo.shadeItems.push(newItem)}if(listDefault&&this.disableDefault!=true){shadeInfo.shadeItems[shadeInfo.shadeItems.length]=new PIndicatorShadeItem(0,0,"Default",false)}else if(this.boundaryId==0){for(var i=0;i<shadeInfo.shadeItems.length&&this.boundaryId==0;i++){var id=shadeInfo.shadeItems[i].id;if(id!=PPlaceType.CBSA.id&&id!=PPlaceType.COUNTY_SUBDIVISION.id&&id!=PPlaceType.CITY.id&&id!=PPlaceType.MD.id){this.legend.setBoundaryType(shadeInfo.shadeItems[i].id);this.boundaryId=shadeInfo.shadeItems[i].id;shadeInfo.shadeItems[i].selected=true}}if(this.boundaryId==0&&shadeInfo.shadeItems.length>0){this.legend.setBoundaryType(shadeInfo.shadeItems[0].id);this.boundaryId=shadeInfo.shadeItems[0].id;shadeInfo.shadeItems[0].selected=true}}}}this.eventManager.triggerListeners(this.eventTypes.refresh,shadeInfo)}};PIndicatorValues=function(legend,options){this.legend=legend;this.instanceId=options&&options.instanceId!=null?options.instanceId:"";this.sessionId=this.instanceId+"v";this.values=null;this.eventManager=new PEventManager;this.eventTypes={change:"change",load:"load",enable:"enable",disable:"disable"}};PIndicatorValues.prototype={clear:function(){this.values=null;session.remove(this.sessionId);this.eventManager.triggerListeners(this.eventTypes.clear)},load:function(){var ind=this.legend.getIndicator();if(ind.breakid==P_BREAKTYPE_EXACT_VALUE_ID||ind.breakid==P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID){this.enable();var incrementValue=PWebUtil.getBreakIncrement(this.legend.getBreaks());var breaks=this.legend.getFormattedBreaks(incrementValue);var valOptions=[];if(session.get(this.sessionId))valOptions=MochiKit.Base.evalJSON(session.get(this.sessionId));this.values=[];for(var i=ind.nodata?1:0,j=0;i<breaks.length;i++,j++)this.values.push([breaks[i],valOptions.length>j?valOptions[j]:1]);this.eventManager.triggerListeners(this.eventTypes.load,this.values)}else{this.disable()}},toggleValues:function(values){this.values=values;session.put(this.sessionId,MochiKit.Base.serializeJSON(this.getValueOptions()));this.eventManager.triggerListeners(this.eventTypes.change,values)},addListener:function(eventId,f,c){this.eventManager.addListener(eventId,f,c)},enable:function(){this.eventManager.triggerListeners(this.eventTypes.enable)},disable:function(){this.eventManager.triggerListeners(this.eventTypes.disable)},getValues:function(){return this.values},getValueOptions:function(){var valOptions;if(this.values){valOptions=[];for(var i=0;i<this.values.length;i++)valOptions.push(this.values[i][1])}return valOptions}};PIndicatorRange=function(legend,map,options){this.legend=legend;this.map=map;this.instanceId=options&&options.instanceId!=null?options.instanceId:"";this.sessionId=this.instanceId+"r";this.range=null;this.min=null;this.max=null;this.userUnit=null;this.userRange=null;this.eventManager=new PEventManager;this.eventTypes={change:"change",refresh:"refresh",enable:"enable",disable:"disable"};if(session.get(this.sessionId+"0")&&session.get(this.sessionId+"1")){this.range=[parseFloat(session.get(this.sessionId+"0")),parseFloat(session.get(this.sessionId+"1"))];this.setUserRange(this.range)}};PIndicatorRange.prototype={clear:function(){this.range=null;this.min=null;this.max=null;this.userRange=null;this.userUnit=null;session.remove(this.sessionId+"0");session.remove(this.sessionId+"1")},getRange:function(){return this.range},getFormattedRange:function(){var unit=this.legend.getIndicator()?this.legend.getIndicator().unit:null;return[PWebUtil.formatNumber(this.range[0],unit),PWebUtil.formatNumber(this.range[1],unit)]},getLimits:function(){return[this.min,this.max]},addListener:function(eventId,f,c){this.eventManager.addListener(eventId,f,c)},setRange:function(range){this.storeRange(range);this.setUserRange(range);this.eventManager.triggerListeners(this.eventTypes.change,range);map.refresh()},setUserRange:function(range){var indicator=this.legend.getIndicator();if(indicator)this.userUnit=indicator.unit;this.userRange=new Array;this.userRange[0]=range[0]==this.min?null:range[0];this.userRange[1]=range[1]==this.max?null:range[1]},refresh:function(){var breaks=this.legend.getBreaks().split(",");var indicator=this.legend.getIndicator();if(indicator.breakid!=P_BREAKTYPE_EXACT_VALUE_ID&&indicator.breakid!=P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID){this.enable();if(indicator!=null&&breaks.length>0&&this.legend.getBoundaryType()){var range=[];range[0]=parseFloat(breaks[0]==indicator.nodata?breaks[1]:breaks[0]);range[1]=parseFloat(breaks[breaks.length-1]);var tMin=this.min;var tMax=this.max;this.min=range[0];this.max=range[1];if(this.range!=null||(range[0]!=tMin||range[1]!=tMax)&&(tMin!=null&&tMax!=null)){if(this.userRange&&(this.userUnit==indicator.unit||this.unit==null)&&(this.userRange[0]>range[0]&&this.userRange[0]<range[1]||this.userRange[1]>range[0]&&this.userRange[1]<range[1])){var tmpRange=new Array;tmpRange[0]=this.userRange[0]!=null&&this.userRange[0]>range[0]&&this.userRange[0]<range[1]?this.userRange[0]:range[0];tmpRange[1]=this.userRange[1]!=null&&this.userRange[1]>range[0]&&this.userRange[1]<range[1]?this.userRange[1]:range[1];this.storeRange(tmpRange)}else{this.storeRange(range)}}else this.storeRange([this.min,this.max]);this.eventManager.triggerListeners(this.eventTypes.refresh,[this.min,this.max],this.range,indicator.unit)}else{this.eventManager.triggerListeners(this.eventTypes.refresh,[null,null],[null,null],null)}}else{this.disable()}},storeRange:function(range){this.range=new Array(range[0],range[1]);if(this.min!=null&&this.max!=null&&(range[0]!=this.min||range[1]!=this.max)){session.put(this.sessionId+"0",this.range[0]);session.put(this.sessionId+"1",this.range[1])}},enable:function(){this.eventManager.triggerListeners(this.eventTypes.enable)},disable:function(){this.eventManager.triggerListeners(this.eventTypes.disable)}};PTRFIndicatorLegend=function(map,legend,options){this.map=map;this.legend=legend;options=options||new Object;this.instanceId=options.instanceId||"";this.hasIndicator=false;if(this.legend.isBoundaryTypeSetToLockGlobally())this.legend.instanceId="";else this.legend.instanceId=options.instanceId||"";this.setIdentifyLoaded(false);this.eventTypes=new Object;this.eventTypes.clear="clear";this.eventTypes.init="init";this.eventTypes.refresh="refresh";this.eventTypes.changed="changed";this.eventManager=new PEventManager;this.measurements=[];if(options.enableToggle){this.indicatorToggle=new PIndicatorToggle(this.legend,this.map,this,{instanceId:this.instanceId});this.addListener("refresh",this.indicatorToggle.refresh,this.indicatorToggle);this.addListener("clear",this.indicatorToggle.clear,this.indicatorToggle)}if(options.enableShade){this.indicatorShade=new PIndicatorShade(this.legend,{instanceId:this.instanceId});this.addListener("refresh",this.indicatorShade.update,this.indicatorShade);this.addListener("clear",this.indicatorShade.clear,this.indicatorShade);this.indicatorShade.addListener("change",this.refresh,this)}if(options.enableRange){this.indicatorRange=new PIndicatorRange(this.legend,this.map,{instanceId:this.instanceId});this.indicatorRange.addListener("change",this.indicatorChanged,this);this.addListener("refresh",this.indicatorRange.refresh,this.indicatorRange);this.addListener("clear",this.indicatorRange.clear,this.indicatorRange);this.indicatorValues=new PIndicatorValues(this.legend,{instanceId:this.instanceId});this.indicatorValues.addListener("change",this.indicatorChanged,this);this.addListener("clear",this.indicatorValues.clear,this.indicatorValues);this.addListener("refresh",this.indicatorValues.load,this.indicatorValues)}if(options.enableBreaks){this.indicatorBreaks=new PIndicatorBreaks(this.legend,{instanceId:this.instanceId});this.addListener("changed",this.indicatorBreaks.refresh,this.indicatorBreaks);this.addListener("refresh",this.indicatorBreaks.refresh,this.indicatorBreaks);this.addListener("clear",this.indicatorBreaks.clear,this.indicatorBreaks)}if(options.editButton){this.editButton=options.editButton}};PTRFIndicatorLegend.prototype={init:function(){this.eventManager.triggerListeners(this.eventTypes.init)},clear:function(){this.clearMeasurementLabels();this.indicatorList=null;this.hasIndicator=false;this.legend.removeIndicator();session.remove(this.instanceId+"period");this.eventManager.triggerListeners(this.eventTypes.clear)},clearIndicatorList:function(){this.indicatorList=null},getIndicator:function(){return this.legend.getIndicator()},addListener:function(eventId,f,c){this.eventManager.addListener(eventId,f,c)},refresh:function(){var ind=this.legend.getIndicator();if(ind){session.put(this.instanceId+"period",ind.getPeriod());this.eventManager.triggerListeners(this.eventTypes.refresh,ind)}},getIndicatorToggle:function(){return this.indicatorToggle},getIndicatorBreaks:function(){return this.indicatorBreaks},getIndicatorShade:function(){return this.indicatorShade},getIndicatorRange:function(){return this.indicatorRange},getIndicatorValues:function(){return this.indicatorValues},containsIndicator:function(){return this.hasIndicator},setIndicatorListByIds:function(ids,selected,fromlist){this.indicatorIds=ids;this.hasIndicator=true;var self=this;var indsReceived=function(inds){if(fromlist&&selected==null){var l=inds.length;var mt;for(var i=0;i<l;i++){mt=inds[i].measurement;if(mt&&(mt=="percent"||mt=="rate")){selected=i;break}}}self.setIndicatorList(inds,null,selected)};PIndicatorLoader.loadWithServices(ids,indsReceived)},setIndicatorList:function(inds,noupdate,selected,preservePeriod){this.hasIndicator=true;if(!noupdate)this.indicatorList=inds;if(!selected)selected=0;var ind=inds[selected];var ids=ind.getDatasetIds();if(isCDCCityData(ids)){this.inCustomZoomsMode=true;PPlaceTypeConfig.PLEGEND.zooms[3]=[];PPlaceTypeConfig.PLEGEND.zooms[5]=[PPlaceType.CITY]}else if(this.inCustomZoomsMode==true){boundaryTypes.setLegendZoomSettings()}session.put(this.instanceId+"i",ind.id);var period=null;if(preservePeriod!=null&&preservePeriod===true||(PEnvironment.pageName=="maps"||PEnvironment.pageName=="widget")&&map.getIndicator()==null||PEnvironment.pageName!="maps"&&PEnvironment.pageName!="widget"){var tfId=session.get(this.instanceId+"tf");if(tfId!=null&&$.trim(tfId)!=""){period=ind.periods[$.inArray(parseInt(tfId),ind.periodids)]}else{period=session.get(this.instanceId+"period")}}if(!period||!ind.hasPeriod(period)){period=ind.getPeriod()}if(period!=null&&ind.hasPeriod(period)&&allowPeriod(ind,period)&&allowIndicator(ind)){ind.setPeriod(period)}else if(!allowIndicator(ind)){var content="This data is available only to subscribers.";alerter.popup(content,"OK");map.removeIndicator();jQuery("#maptitle").empty().text(ind.getFullDisplayName()).fadeIn("slow");ind=null}if(ind!=null){if(PEnvironment.pageName=="tables"){this.legend.setIndicator(ind);refreshCubeQueue(null,null,ind);return}var urlParams=getUrlParams();ind.setCustomBreaksByJSON(session.get(this.instanceId+"breaks"));var self=this;if(urlParams["cb"]){stringStore.getStringById(urlParams["cb"],function(breaks){var jsonbreaks=MochiKit.Base.evalJSON(breaks);ind.setCustomBreaksByJSON(jsonbreaks);var breaksobj=ind.createCustomBreaksJSON();var obj=session.get(self.instanceId+"breaks");if(obj==null)obj={};obj[ind.id]=breaksobj;session.put(self.instanceId+"breaks",obj);self.legend.setIndicator(ind);self.refresh();if(urlParams["iwx"]&&urlParams["iwy"]&&(urlParams["iwtype"]==P.constants.infoWindowTypeIdentify||urlParams["iwtype"]==P.constants.infoWindowTypeAddress)&&self.isIdentifyLoaded()==false){showInfoWindowFromUrl(urlParams)}map.refresh()})}else{this.legend.setIndicator(ind);var incrementValue=PWebUtil.getBreakIncrement(this.legend.getBreaks());var breaks=this.legend.getFormattedBreaks(incrementValue);if(!((ind.breakid==P_BREAKTYPE_EXACT_VALUE_ID||ind.breakid==P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID)&&(breaks.length<3&&breaks[breaks.length-1]==""))){this.refresh()}map.refresh()}if(urlParams["iwx"]&&urlParams["iwy"]&&(urlParams["iwtype"]==P.constants.infoWindowTypeIdentify||urlParams["iwtype"]==P.constants.infoWindowTypeAddress)&&!urlParams["cb"]&&this.isIdentifyLoaded()==false){showInfoWindowFromUrl(urlParams)}if(typeof widget!=="undefined"&&ind.getPlaceTypes().length==1){var mvaSession=session.get("mvalayers");if(mvaSession!=null){var lindNew="";for(i=0;i<mvaSession.length;i++){lindNew+=mvaSession[i]==true?"1":"0"}session.put("lind",lindNew)}widget.refresh()}this.setIdentifyLoaded(true)}},indicatorChanged:function(){var mo=map.mapOptions;if(mo&&mo.isCurrentOn()){mo.showLayerForCurrentView()}this.eventManager.triggerListeners(this.eventTypes.changed,this.legend.getIndicator())},storeMeasurementLabel:function(m){if(!this.measurements[m])this.measurements[m]=0;this.measurements[m]++},getMeasurementLabel:function(ind,full){var retVal=ind.getMeasurementToggle(full);var m=ind.measurement;if(this.measurements&&this.measurements[m]&&this.measurements[m]>1){retVal+=" ";if(full)retVal+="(Type ";retVal+=this.measurements[m];if(full)retVal+=")"}return retVal},clearMeasurementLabels:function(){this.measurements=[]},getName:function(){var curLeg=this.legend;var curInd=curLeg.getIndicator();var name="";if(curInd&&curLeg.getBoundaryType()&&curLeg.isValidBoundaryType(curLeg.getBoundaryType(),true)){name="p_"+curInd.periodids[curInd.curPerIndex]+".id_"+curInd.id;if(this.indicatorRange){var range=this.indicatorRange.getRange();var values=this.indicatorValues.getValues();if(range&&range.length>1&&range[0]!=null&&!isNaN(range[0])&&range[1]!=null&&!isNaN(range[1])){var idValue=curInd.nodata!=null?curInd.nodata:-9999;name+=".br_"+idValue+":"+range[0]+":"+range[1];name+=".bd_"+curLeg.getBoundaryDefinitionId(curLeg.getBoundaryType().id)}else if(values){var idValue=curInd.nodata!=null?curInd.nodata:"Insufficient Data";name+=".br_"+idValue+":";var nd=0;var breakName="";for(var i=0;i<values.length;i++){if(values[i][1]==1){breakName=values[i][0];var len=breakName.length;if(len>0){var lastChar=breakName.substring(len-1);if(lastChar=="("||lastChar==")"){breakName+=" "}name+=breakName+":";nd++}}}name=name.replace(/:$/,"");name+=".bd_"+curLeg.getBoundaryDefinitionId(curLeg.getBoundaryType().id)+":nd_"+nd;if(nd==0)name=""}else name=""}}return name},changeColorRamp:function(name,restore,isUserPref,isChooser){if(restore==null||restore!==true){restore=false}this.legend.setColorRamp(colorRamps.getRampByName(name),restore);if(isUserPref==null){session.put("rmp",name)}var prefRampId=null;if(productProperty.exists("user_preference")){var up=userPreference;var prefRampId=up.getValue(up.PREFERENCE_INDICATOR_COLOR_RAMP,session.get("i"))}if(prefRampId&&isChooser==null){var ramp=colorRamps.getRampById(prefRampId);this.legend.setColorRamp(ramp)}else if(session.get("rmp")&&colorRamps.getRampByName(session.get("rmp"))){this.legend.setColorRamp(colorRamps.getRampByName(session.get("rmp")))}else{this.legend.setColorRamp(PColorRamp.DEFAULT)}this.refresh()},refreshLegendThenCheckPlaceTypes:function(){var oldid=this.indicatorShade.boundaryId;this.refresh();var newid=this.indicatorShade.boundaryId;if(oldid!=newid)this.indicatorShade.changeShade(newid)},refreshWidgetPopUpTable:function(){if(map.widgetRankingsOn)refreshWidgetRankings();if(textOnlyIsOn){refreshWidgetCube()}},setIdentifyLoaded:function(b){this.identifyLoaded=b},isIdentifyLoaded:function(){return this.identifyLoaded}};PLegendMerger=function(map){this.map=map;this.map.kamap.getCurrentMap().aLayers[0].legendMerger=this;this.indicatorLegends=new Array};PLegendMerger.prototype={addLegend:function(legend){this.indicatorLegends.push(legend);legend.addListener("changed",this.indicatorChanged,this)},clearIndicator:function(index){session.remove("m"+index+"i");this.indicatorLegends[index].clear();this.indicatorChanged();if(typeof wiz!="undefined"&&wiz!=null){if(wiz.step>2&&wiz.step!=7&&this.getIndicatorCount()==0){wiz.hideAllArrows();wiz.hideAllSteps();wiz.step=1;wiz.next()}else if(wiz.step>3&&wiz.step!=7&&this.getIndicatorCount()<2){wiz.hideAllArrows();wiz.hideAllSteps();wiz.step=3;wiz.next()}}},getIndicatorCount:function(){var count=0;for(var i=0;i<this.indicatorLegends.length;i++)if(this.indicatorLegends[i].containsIndicator()==true)count++;return count},addIndicator:function(indarr,selected,fromlist,prefLegend){var found=-1;if(this.getIndicatorCount()<this.indicatorLegends.length){if(prefLegend!=null&&this.indicatorLegends[prefLegend].containsIndicator()==false){this.indicatorLegends[prefLegend].setIndicatorListByIds(indarr,selected,fromlist);found=prefLegend}else{for(var i=0;i<this.indicatorLegends.length&&found==-1;i++){if(this.indicatorLegends[i].containsIndicator()==false){this.indicatorLegends[i].setIndicatorListByIds(indarr,selected,fromlist);found=i}}}}else{var content="You can only have a maximum of "+this.indicatorLegends.length+" indicators at once.  Please remove one if you wish to add another.";alerter.popup(content,"OK")}return found},getLegend:function(index){if(index==null&&this.indicatorLegends.length>0)return this.indicatorLegends;else if(this.indicatorLegends.length==0||index>=this.indicatorLegends.length)return null;else return this.indicatorLegends[index]},getName:function(){var name="";if(this.getIndicatorCount()>0){var c=getAnalyticsHexColor();name="mt("+c+",BFBFBF";for(var i=0;i<this.indicatorLegends.length;i++){if(this.indicatorLegends[i].getIndicator()){var n=this.indicatorLegends[i].getName();if(n!=""){name+=","+n.replace(/%/g,"%25")}else{name="";break}}}}return name.length>0?name+")":""},indicatorChanged:function(ind){map.refresh();if(PEnvironment.pageName=="analytics"){mapRefreshed()}},areAllIndicatorsOnMap:function(){var ret=false;var indcnt=this.getIndicatorCount();var cnt=0;var legends=this.getLegend();for(var i=0;i<legends.length;i++){var l=legends[i];var ind=l.getIndicator();if(ind){cnt++}}if(cnt==indcnt){ret=true}return ret},hasIndicatorOn:function(){var r=false;if(this.getIndicatorCount()>0){r=true}return r}};LegendPanel=function(data){if(data){$.extend(this,data)}P.instances.legendPanel=this;this.hasEvents=false;this.$container=$(".map-legends__panel");this.$legendSection=this.$container.find(".legend-section");this.indicator=null;this.overlaysets=[];this.layers=null;var $b=this.$container.find(".legend-options-button");this.$optionButton=$b;var self=this;$b.click(function(){self.toggleMinimize()});$b.tooltip({title:"Edit display options,<br />if available",html:true,placement:"left",container:"body"});var map=P.instances.map;var $colorToggle=$(".legend__breakdown__edit__item__color-toggle");var $rangeToggle=$(".legend__breakdown__edit__item__range-toggle");var $optionsElem=$(".legend__breakdown__edit-options");var cnt=0;if(productProperty.getValue("enable_widget_color_ramp_options")){$colorToggle.addClass("is-visible");$optionsElem.addClass("has-option");cnt++}if(productProperty.getValue("enable_widget_edit_ranges")){$rangeToggle.addClass("is-visible");$colorToggle.find(".button--generic").addClass("hide-text");$colorToggle.tooltip({title:"Change Colors",placement:"left",container:"body"});PEvent.addListener(map,"setindicator",function(indicator){if(indicator.breakid==P_BREAKTYPE_EXACT_VALUE_ID||indicator.breakid==P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID){$colorToggle.attr("data-original-title","Not Available")}else{$colorToggle.attr("data-original-title","Change Colors")}});$optionsElem.addClass("has-option");cnt++}if(cnt==1){$(".legend__breakdown__edit__item").css("display","block")}this.isMinimized=true;if(productProperty.exists("default_legend_panel_to_maximized")){this.toggleMinimize()}this.addEvents()};LegendPanel.prototype={update:function($newElement){if(this.hasData()){this.show()}else{this.hide();return}var $elem=this.$legendSection;var scrollheight=$elem.get(0).scrollHeight;var maxheight=$("body").height()-$elem.offset().top;var hasScroll=function($e){return $e.get(0).scrollHeight>$e.height()};if($elem&&$elem.length>0&&($elem.get(0).scrollHeight>maxheight+1||hasScroll($elem)&&this.isMinimized)){this.$container.css("max-height","100%");$elem.css("overflow-y","auto");$elem.css("height",maxheight)}else if($newElement&&$newElement.css("display")!="none"){this.$legendSection.css("height",scrollheight)}else{this.$legendSection.css("height","auto")}if($newElement){var newTop=$newElement.offset().top;var newHeight=$newElement.height();var v=$newElement.height()+$newElement.offset().top;if(v>$(document).height()){if(newHeight+50>$elem.height()){$elem.scrollTop($newElement.offset().top-$elem.offset().top+$elem.scrollTop())}else{$elem.scrollTop(scrollheight)}}}},show:function(){if(!this.hasEvents){this.addEvents();this.hasEvents=true}this.$container.show()},hide:function(){this.$container.hide();if(!this.isMinimized){this.toggleMinimize()}},hasData:function(){var hasLayer=false;if(this.layers){var ls=this.layers;for(var n in ls){if(ls[n]){hasLayer=true;break}}}var hasData=this.indicator||this.overlaysets.length>0||hasLayer;return hasData},toggleMinimize:function(){this.isMinimized=!this.isMinimized;this.$container.toggleClass("is-minimized");this.$container.parent().toggleClass("is-minimized");var label="EXPAND LEGEND";var tlabel="Edit display options<br />or remove data";if(!this.$container.hasClass("is-minimized")){label="COLLAPSE LEGEND";tlabel="Hide display options"}this.$optionButton.tooltip("hide");this.$optionButton.find(".text").text(label);this.$optionButton.attr("data-original-title",tlabel);if(this.hasData()){this.update()}},addMapBoundariesToPanel:function(){var $e=P.instances.map.mapOptions.getLegendContainer();if($e){this.$legendSection.append($e)}},addEvents:function(){var map=P.instances.map;var self=this;PEvent.addListener(map,"setindicator",function(ind){self.indicator=ind;self.update();if(isWidgetPage()){if(ind.allowDL){$(".legend--indicator__download-button").show()}else{$(".legend--indicator__download-button").hide()}}checkForSecondHeaderRow()});PEvent.addListener(map,"removeindicator",function(){self.indicator=null;self.update();checkForSecondHeaderRow(true)});PEvent.addListener(map,"addoverlayset",function(){self.overlaysets=map.getOverlaySets();self.update()});PEvent.addListener(map,"setoverlaysets",function(){self.overlaysets=map.getOverlaySets();self.update()});PEvent.addListener(map,"removeoverlayset",function(){self.overlaysets=map.getOverlaySets()});$(window).on(P.events.MAP_REFRESHED,function(){if(self.hasData()){self.update()}});$(window).on(P.events.OVERLAYSET_RENDER_SERVER_DONE+" "+P.events.CURRENT_MAP_BOUNDARIES_UPDATED,function(){self.update()});$(window).on(P.events.MAP_BOUNDARIES_INITIALIZED,function(){self.addMapBoundariesToPanel();self.layers=P.instances.map.mapOptions.getCurrentBoundaries()});$window=$(window);$window.resize(function(){self.update();self.updatePosition()});if(P.instances.search&&P.instances.search.$form){P.instances.search.$form.click(function(){if(self.isMinimized!=true&&areElementsOverlapping($(this),self.$container)){self.toggleMinimize()}})}},setIndLegendHideEvents:function(trfLegendBreaks){$(".legend__breakdown").click(function(e){e.stopPropagation()});$(".map-legends__panel").click(function(){trfLegendBreaks.resetView()})},updatePosition:function(){var $c=this.$container.parent();var $m=$(P.instances.map.getContainer());$m.removeClass("search-over-legend");$m.addClass("search-not-over-legend");var search=P.instances.search;if(search&&this.isMinimized&&areElementsOverlapping(search.$form.parent(),$c,12)){$m.removeClass("search-not-over-legend");$m.addClass("search-over-legend")}if(search){P.instances.search.updateWidthOfFluidElement()}}};PLegendContainer=function(jElm){this.jElm=jElm;this.eventTypes=new Object;this.eventTypes.init="init";this.eventTypes.remove="remove";this.eventTypes.enable="enable";this.eventTypes.disable="disable";this.eventTypes.hide="hide";this.eventTypes.show="show";this.eventManager=new PEventManager};PLegendContainer.prototype={init:function(){this.eventManager.triggerListeners(this.eventTypes.init)},remove:function(){this.jElm.remove();this.eventManager.triggerListeners(this.eventTypes.remove)},hide:function(){this.jElm.hide();this.jElm.removeClass("is-visible");this.eventManager.triggerListeners(this.eventTypes.hide)},show:function(){this.jElm.show();this.jElm.addClass("is-visible");this.eventManager.triggerListeners(this.eventTypes.show)},addElement:function(elm){this.jElm.append(elm)},addListener:function(eventId,f,c){this.eventManager.addListener(eventId,f,c)},enable:function(){this.jElm.removeClass("disabled");this.jElm.find(":input").removeAttr("disabled");this.jElm.find("select").trigger("chosen:updated");this.jElm.find("*").removeClass("disable_pointer");this.enabled=true;this.eventManager.triggerListeners(this.eventTypes.enable)},disable:function(){this.jElm.addClass("disabled");this.jElm.find(":input").attr("disabled","disabled");this.jElm.find("select").trigger("chosen:updated");this.jElm.find("*").addClass("disable_pointer");this.enabled=false;this.eventManager.triggerListeners(this.eventTypes.disable)},isEnabled:function(){return this.enabled}};PIndicatorShadeWidget=function(elm,showShadeByAsString){this.elm=elm;this.sourceHref=this.elm.find("#source").attr("href");this.shade_by=this.elm.find("#shade_by");this.showShadeByAsString=null;if(showShadeByAsString){this.showShadeByAsString=showShadeByAsString}this.shade_by[0].shadeWidget=this;this.shade_by.bind("change",function(){this.shadeWidget.changeShade.call(this.shadeWidget);if(PEnvironment.pageName=="widget"&&map.widgetRankingsOn){refreshWidgetRankings()}var mo=map.mapOptions;if(mo&&mo.isCurrentOn()){mo.showLayerForCurrentView()}});this.current_shade=this.shade_by;this.eventTypes=new Object;this.eventTypes.change="change";this.eventManager=new PEventManager};PIndicatorShadeWidget.prototype={addListener:function(eventId,f,c){this.eventManager.addListener(eventId,f,c)},clear:function(){this.shade_by.empty();this.elm.find("#source").empty().removeAttr("href")},changeShade:function(){var options=this.shade_by.find("option");var id=this.shade_by.find(":selected").attr("id");var useLockOption=false;if(PEnvironment.pageName=="widget")useLockOption=true;this.eventManager.triggerListeners(this.eventTypes.change,id,useLockOption)},update:function(shadeInfo){this.elm.find("#source").html(shadeInfo.indicator.getSourceList(true,true));if(shadeInfo.shadeString){this.current_shade=this.current_shade.replaceWith(shadeInfo.shadeString)}else if(this.showShadeByAsString){this.shade_by.html(map.getLegend().getCurrentPlaceType().getName())}else{var shadeItems=shadeInfo.shadeItems;this.shade_by.empty();for(var i=0;i<shadeItems.length;i++){var shadeItem=shadeItems[i];if(shadeItem.disabled){continue}var option=document.createElement("option");option.id=shadeItem.typeId;option.selected=shadeItem.selected;option.innerHTML=shadeItem.name;option.defaultSelected=shadeItem.defaultSelected;this.shade_by.append(option)}if(this.current_shade!=this.shade_by){this.current_shade=this.current_shade.replaceWith(this.shade_by);this.shade_by.hide();this.shade_by.fadeIn("slow")}}},enable:function(){this.elm.find("a").unbind("click")},disable:function(){this.elm.find("a").click(function(){return false})}};PIndicatorInfoWidget=function($elem,opts){this.jElms=[];this.jElms[0]=$elem.find(".legend__title__content");this.$source=$elem.find(".legend__title__source__content");this.defaultText="Add data layer to map from data menus above.";this.noIndex=false;if(opts){if(opts.defaultText){this.defaultText=opts.defaultText}if(opts.noIndex){this.noIndex=opts.noIndex}}};PIndicatorInfoWidget.prototype={clear:function(){for(var i=0;i<this.jElms.length;i++){if(_.isNumber(this.index)&&!this.noIndex){this.jElms[i].html(this.index+1+". ");this.jElms[i].append(this.defaultText)}else{this.jElms[i].html(this.defaultText)}}this.$source.empty()},update:function(ind){var that=this;function toggleLegendDetails($legend){var index=that.index;var $editButton=legendMerger.indicatorLegends[index].editButton;if($editButton&&$editButton.hasClass("is-active")){$editButton.click()}$legend.find(".legend__title__source").toggleClass("disable_pointer");$legend.find(".legend__edit-button__container").toggleClass("disable_pointer");$legend.find(".legend__indicators--analytics").hide();$legend.find(".legend_container").toggle()}if(ind){var that=this;_.each(this.jElms,function(indicatorContent){var $indicatorContent=$(indicatorContent);var isMinimized=$indicatorContent.hasClass("is-minimized");var $toggleIcon=$('<span class="legend__toggle-icon l-hide-text" title="Minimize Indicator"><a>Minimize Indicator</a></span>');if(isMinimized){$toggleIcon.addClass("is-minimized")}$toggleIcon.click(function(){var $self=$(this);var $legend=$self.parents(".legend__content");$self.toggleClass("is-minimized");$indicatorContent.toggleClass("is-minimized");toggleLegendDetails($legend)});$indicatorContent.empty().append($toggleIcon,ind.getFullLabel());that.$source.html(ind.getSourceList(true))})}}};PRangeWidget=function(elm,options){this.elm=$(elm);options=options||new Object;this.min=options.min==null?0:options.min;this.max=options.max==null?100:options.max;this.unit=options.unit==null?"":options.unit;this.step=1;this.range=[this.min,this.max];this.rangeElms=this.elm.find("input");this.rangeElms[0].iControl=this;this.rangeElms[1].iControl=this;this.printRangeElms=this.elm.find(".print-slider-values").find(".value");this.sliderElm=this.elm.find("#slider")[0];this.sliderElm.rangeWidget=this;this.sliderElm=$(this.sliderElm);this.rangeElmTimer;this.prevMinValue;this.prevMaxValue;this.eventTypes={update:"update"};this.eventManager=new PEventManager;this.initialized=false};PRangeWidget.prototype={init:function(){var self=this;var changeDelay=1500;var change=function(event){function changeRange(){clearTimeout(self.rangeElmTimer);self.rangeElmTimer=setTimeout(function(){rangeElem.iControl.setRange.call(rangeElem.iControl,range)},changeDelay)}var rangeElem=this;var range=rangeElem.iControl.getRange.call(rangeElem.iControl);if(event.keyCode===13){changeRange()}else if(self.prevMinValue!=PWebUtil.formatNumber(range[0],self.unit)||self.prevMaxValue!=PWebUtil.formatNumber(range[1],self.unit)){changeRange()}};$(this.rangeElms[0]).keyup(change);$(this.rangeElms[1]).keyup(change);var showFillBar=true;if(version)showFillBar=false;this.sliderElm.slider({range:showFillBar,min:this.min,max:this.max,step:this.step,values:this.range,slide:function(event,ui){this.rangeWidget.setRange.call(this.rangeWidget,ui.values,{noslide:true})},stop:function(){this.rangeWidget.updated.call(this.rangeWidget)}});this.initialized=true},addListener:function(eventId,f,c){this.eventManager.addListener(eventId,f,c)},disable:function(){this.sliderElm.slider("disable");this.elm.hide();this.rangeElms[0].value="";this.rangeElms[1].value=""},enable:function(){this.elm.show();if(this.initialized==false)this.init();this.sliderElm.slider("enable")},updateRange:function(rangeLimits,range,unit){this.min=rangeLimits[0];this.max=rangeLimits[1];this.sliderElm.slider("option","min",rangeLimits[0])
;this.sliderElm.slider("option","max",rangeLimits[1]);var diff=this.max-this.min;this.step=diff>=this.sliderElm.parent().width()?1:diff/this.sliderElm.parent().width();this.sliderElm.slider("option","step",this.step);this.unit=unit;this.setRange(range,{update:false})},setRange:function(range,options){options=options||new Object;if(range[1]>this.max)range[1]=this.max;else if(range[1]<this.min)range[1]=this.min;if(range[0]<this.min)range[0]=this.min;else if(range[0]>this.max)range[0]=this.max;if(range[0]>range[1])range[0]=range[1];else if(range[1]<range[0])range[1]=range[0];this.range=range;var v1=PWebUtil.formatNumber(range[0],this.unit);var v2=PWebUtil.formatNumber(range[1],this.unit);this.prevMinValue=v1;this.prevMaxValue=v2;this.rangeElms[0].value=v1;this.rangeElms[1].value=v2;if(this.printRangeElms.length>0){$(this.printRangeElms[0]).html(v1);$(this.printRangeElms[1]).html(v2)}if(options.noslide!=true){this.sliderElm.slider("values",0,range[0]);this.sliderElm.slider("values",1,range[1]);if(options.update!=false)this.updated()}},getRange:function(){var range=new Array;range[0]=parseFloat(this.rangeElms[0].value.replace(/[^\d&^\.^-]/g,""));range[1]=parseFloat(this.rangeElms[1].value.replace(/[^\d&^\.^-]/g,""));if(_.isNaN(range[0])){range[0]=this.min}if(_.isNaN(range[1])){range[1]=this.max}return range},resetRange:function(){this.setRange([this.min,this.max],{update:false})},getElement:function(){return this.element},updated:function(){this.eventManager.triggerListeners(this.eventTypes.update,this.getRange())}};PValuesWidget=function(jContainer){this.elm=$(document.createElement("div"));jContainer.append(this.elm);this.eventTypes={update:"update"};this.eventManager=new PEventManager};PValuesWidget.prototype={clear:function(){this.elm.empty();this.values=null},refresh:function(values){this.values=values;var html="<table cellpadding=0 cellspacing=0 border=0>";var lblCheck="$(this).parent().find('input').attr('checked', !$(this).parent().find('input').attr('checked'));";for(var i=0;i<values.length;i++){var checked="checked";var disabled="";if(!values[i][1]){disabled="disabled";checked=""}html+="<tr class='"+disabled+"'><td><input type='checkbox' "+checked+"/></td><td class='labels'>"+values[i][0]+"</td></tr>"}html+="</table>";this.elm.html(html);var self=this;this.elm.find("input").bind("change",function(){self.changed()});this.elm.find(".labels").bind("click",function(){$(this).parent().find("input").attr("checked",!$(this).parent().find("input").attr("checked"));self.changed()})},changed:function(){var checkboxes=this.elm.find("input[type=checkbox]");var len=checkboxes.length;for(var i=0;i<len&&i<this.values.length;i++)this.values[i][1]=checkboxes[i].checked?1:0;this.eventManager.triggerListeners(this.eventTypes.update,this.values)},enable:function(){this.elm.show()},disable:function(){this.elm.hide()},addListener:function(eventId,f,c){this.eventManager.addListener(eventId,f,c)}};PBreaksWidget=function(jContainer){this.elm=$(document.createElement("div"));jContainer.append(this.elm);this.showEditRangesLinks=true};PBreaksWidget.prototype={clear:function(){this.elm.empty()},refresh:function(breaks,incrementBreaks,numBreaks,colors,legend){var html="<div class='breakdown'>";if(this.showEditRangesLinks){html+="<div style='float: left'>";if(editState&(PIndicatorBreaks.EDITSTATE.currentlyEditing|PIndicatorBreaks.EDITSTATE.alreadyEdited))html+="<a href='#' class='editbreaks' onclick='widget.getIndicatorBreaks().restoreBreaks();return false;'>Restore Defaults</a>";else html+="<span class='editbreaks'>Restore Defaults</span>";html+="</div>";html+="<div style='float: right'>";if(editState&(PIndicatorBreaks.EDITSTATE.currentlyEditing|PIndicatorBreaks.EDITSTATE.noBoundaryType))html+="<span class='editbreaks'>Edit Ranges</span>";else{html+="<a href='#' class='editbreaks' onclick='displayEditRangesPanel();return false;'>Edit Ranges</a>"}html+="</div><br clear='both'><br>"}if(editState&PIndicatorBreaks.EDITSTATE.noBoundaryType)html+="<div class='legend__warning'>Zoom in further to see this data.</div>";else{html+="<table cellpadding=0 cellspacing=0 border=0>";if(editState&PIndicatorBreaks.EDITSTATE.noData)numBreaks+=1;var nodata=false;if(breaks==null||breaks[numBreaks-1]==null){html+="<tr><td><div class='legend__warning'>There is insufficient data to create the current ranges. Try a smaller number.<br><br></div></td></tr>"}else{var mvaLayers=session.get("mvalayers");for(var i=0;i<numBreaks;i++){var breaksString="";if(editState&PIndicatorBreaks.EDITSTATE.noData&&i==0){html+="<tr><td width=25 style='width: 25px; background-color: #"+colors[i]+"'>&nbsp;</td><td class='legend-bg-color'>";if(editState&PIndicatorBreaks.EDITSTATE.currentlyEditing&&editState&PIndicatorBreaks.EDITSTATE.exactBreaks){html+="<input id='breakbox0' class='breaksbox' type='checkbox' ";if(mvaLayers[0])html+="checked ";html+="/>&nbsp;"}if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){if(!(editState&PIndicatorBreaks.EDITSTATE.currentlyEditing)){if(mvaLayers[0])html+="</td><td colspan=3 style='color:#878787;padding-left:3px;'>";else html+="</td><td colspan=3 style='color:#d7d7d7;font-style:italic;padding-left:3px'>"}else html+="</td><td colspan=3 style='padding-left:3px'>"}else{html+="</td><td colspan=3 style='padding-left:3px;font-style:italic'>"}html+=legend.getIndicator().nodatalabel+"</td></tr>";nodata=true}else if(editState&PIndicatorBreaks.EDITSTATE.currentlyEditing){if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){html+="<tr><td width=25 style='width: 25px; background-color: #"+colors[i]+"'>&nbsp;</td>"+"<td class='legend-bg-color'><input id='breakbox"+i+"' class='breaksbox' type='checkbox' ";if(mvaLayers[i])html+="checked ";html+="/><td align='right' style='padding-left: 3px'>"+breaks[i]+"</td></tr>"}else{var startbreak;if(i==0||i==1&&nodata)startbreak=breaks[i];else startbreak=incrementBreaks[i];breaksString="<td align='right' style='padding-left: 3px'><input onchange='widget.getIndicatorBreaks().checkBreakBoxes(this.id)' id='breakbox"+i+"a' class='breaksbox' type='text' value='"+startbreak+"'></td><td width=20 align='center'>&ndash;</td><td align='right' style='padding-right: 3px'><input onchange='widget.getIndicatorBreaks().checkBreakBoxes(this.id)' id='breakbox"+i+"b' class='breaksbox' type='text' value='"+breaks[i+1]+"'></td>";html+="<tr><td width=25 style='width: 25px; border: 1px solid #ddd'>&nbsp;</td><td class='legend-bg-color'>&nbsp;</td>"+breaksString+"</tr>"}}else{if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){breaksString="<td colspan=3 align='center' style='padding-left:3px";if(mvaLayers[i])breaksString+=";color:#878787";else breaksString+=";color:#d7d7d7;font-style:italic";breaksString+="'>"+breaks[i]+"</td>"}else{if((i==0||i==1&&nodata)&&!legend.compareCustomBreaks(i,">")){breaksString="<td colspan='3' align='center' style='padding-left: 3px'>"+breaks[i+1]+" or less</td>"}else if(i==numBreaks-1&&!legend.compareCustomBreaks(i+1,"<"))breaksString="<td colspan='3' align='center' style='padding-left: 3px'>"+incrementBreaks[i]+" or more </td>";else{var startbreak;if(i==0||i==1&&nodata)startbreak=breaks[i];else startbreak=incrementBreaks[i];if(startbreak==breaks[i+1])breaksString="<td align='right' style='padding-left: 3px'>"+startbreak+"</td><td width=20 align='center'></td><td align='right' style='padding-right: 3px'></td>";else breaksString="<td align='right' style='padding-left: 3px'>"+startbreak+"</td><td width=20 align='center'>&ndash;</td><td align='right' style='padding-right: 3px'>"+breaks[i+1]+"</td>"}}html+="<tr><td width=25 style='width: 25px; background-color: #"+colors[i]+"'>&nbsp;</td><td class='legend-bg-color'>&nbsp;</td>"+breaksString+"</tr>"}html+="<tr><td colspan=4><div style='font-size:1px'>&nbsp;</div></td></tr>"}}html+="</table><div style='padding-bottom: 3px'>";if(!isWidgetOrEmbedMap()&&!isCBClone()){if(editState&PIndicatorBreaks.EDITSTATE.currentlyEditing){var cancelLink="<a href='#' class='editbreaks' onclick='widget.getIndicatorBreaks().setEditMode(false); return false;'>Cancel</a>";var applyLink="";var applyAllLink="";if(!(editState&PIndicatorBreaks.EDITSTATE.nonSubscriber)){applyLink="<a href='#' class='editbreaks' onclick='widget.getIndicatorBreaks().applyCustomBreaks(false); return false;'>Apply to Current Time Period</a>";applyAllLink="<a href='#' class='editbreaks' onclick='widget.getIndicatorBreaks().applyCustomBreaks(true); return false;'>Apply to All Time Periods</a>"}else{applyLink="<a href='#' class='editbreaks' onclick='widget.getIndicatorBreaks().setEditMode(false); return false;'>Apply to Current Time Period</a>";applyAllLink="<a href='#' class='editbreaks' onclick='widget.getIndicatorBreaks().setEditMode(false); return false;'>Apply to All Time Periods</a>"}html+="<div align='center' style='padding: 5px 0px'>"+applyLink+"<br />"+applyAllLink+"<br />"+cancelLink+"</div>"}if(!(editState&(PIndicatorBreaks.EDITSTATE.variableNotSupported|PIndicatorBreaks.EDITSTATE.preRendered|PIndicatorBreaks.EDITSTATE.currentlyEditing))&&!(editState&PIndicatorBreaks.EDITSTATE.exactBreaks)){html+='<br/><span>Map shaded in: </span> <select style="font-size:10px; color:#7a7a7a" onchange="handleCutPoints(this);">';for(var i=2;i<=8;i++){var option="<option value='"+i+"'";if(i==map.getLegend().getNumberOfBreaks())option+=" selected";option+=">"+i+"</option>";html+=option}html+="</select> ranges"}}html+="</div>";html+="</div>"}this.elm.html(html)},removeEditRangesLinks:function(){this.showEditRangesLinks=false},showEditRangesLinks:function(){this.showEditRangesLinks=true}};function addMarkerWindow(html,place,zoom,noSiteLinks,noInfoWindow){if(!zoom){zoom=P.instances.map.getCurrentMapType().getScales().length-3}var point=null;if(PEnvironment.pageName=="report_area"){clearPolygons(map);if(place instanceof PPlace){map.setCenterBounds(place.getBounds());point=place.getBounds().getCenter();var polygons=place.getVertices();if(polygons&&currentReport.areaType!="custom")addPolygons(map,place);search.currentplace=place}else{search.currentplace=place;map.setCenter(place,zoom);point=place}map.openInfoWindow(point,html)}else{var params=getUrlParams(true);if(params["p"]==null){clearPolygons(map)}if(place instanceof PPlace){if(place&&place.getIdentifier()=="US"){point=new PLatLng(P.constants.USA_LAT,P.constants.USA_LNG);map.setCenter(point,P.constants.USA_ZOOM)}else{map.setCenterBounds(place.getBounds());var centroid=place.getCentroid();if(centroid)point=centroid;else point=place.getBounds().getCenter()}map.closeInfoWindow();var polygons=place.getVertices();if(polygons)addPolygons(map,place);mapstates.setCurrentPlace(place);map.openInfoWindow(point,html,null,P.constants.infoWindowTypePlace)}else{var addr=place.addr;var point=new PLatLng(place.y,place.x);if(P.WKPrint.isPrintPage()===false){map.setCenter(place,zoom)}mapstates.setCurrentPlace(null);var div=document.createElement("div");if(PEnvironment.pageName!="embedmap_dyn"){var $addr=getAddressBubbleContent(place.addr);$(div).html($addr)}if(!noSiteLinks){var link;if(PEnvironment.pageName=="dataloader"){link=generateCreateSimpleSiteLink(point.lat(),point.lng(),addr)}else{link=generatePointReportLink(point.lat(),point.lng(),addr)}div.appendChild(link)}html=div;var marker=new PMarker(point,PIcon.PMap);map.addOverlay(marker);if(map.currentAddressMarker){map.removeOverlay(map.currentAddressMarker)}map.currentAddressMarker=marker;if(!noInfoWindow){if(map.getIndicator()){PMIdentificationModule.clickHandler(null,point,addr)}else{var infoWindowType=P.constants.infoWindowTypeAddress;marker.openInfoWindow(html,infoWindowType);PEvent.addListener(marker,"click",function(){var ind=map.getIndicator();if(ind){PMIdentificationModule.clickHandler(null,point,addr)}else{marker.openInfoWindow(html,infoWindowType)}})}}}if(mapstates&&PMapState)mapstates.add(new PMapState(map.getCenter(),map.getZoom(),map.getIndicator(),null,mapstates.currentplace,addr))}}function closeCubeWindow(){var map=P.instances.map;if(P.WKPrint.isPrintPage()===true){return}var c=document.getElementById("identifyContainer");if(c!=null&&(c.showsCube||c.isCustomOrPoly)){map.closeInfoWindow()}}function generatePointReportLink(lat,lng,address){var reportLinkHolder=document.createElement("div");reportLinkHolder.className="infoBubbleLinks";if(isEnterpriseCommunityProduct()||isEnterpriseWidget()||isEnterpriseTestWidget()){if(address){var point=new PLatLng(lat,lng);var placeholder="<br /><br />";if(isEnterpriseWidget()){placeholder="<br />"}$(reportLinkHolder).html(placeholder);point.getPlacesContaining(PPlaceType.CENSUSTRACT,null,null,function(tracts){var page="reports";var sid="";if(isWidgetPage()){page="report_widget";var sid="&sid="+PEnvironment.productId}if(tracts.length>0){var reportLink=document.createElement("a");reportLink.innerHTML="See Enterprise Report For Tract";var reportCode="op";if(isEnterpriseTestWidget()){reportCode="optest"}var tracturl=page+"?type="+reportCode+"&area=predefined&pid="+tracts[0].id+sid;PEvent.addListener(reportLink,"click",function(){window.open(tracturl,"_blank")},"mousedown");$(reportLinkHolder).html(reportLink)}});return reportLinkHolder}}if(isWidgetOrEmbedMap()||PEnvironment.pageName=="report_generate"||isCBClone())return reportLinkHolder;$(reportLinkHolder).addClass("point_report_link_holder");$(reportLinkHolder).addClass("info_extra_link");var reportLink=document.createElement("a");if(isSubscriber()){var url;if(address){reportLink.innerHTML="See Report";url="reports?area=radius&location="+address}else{reportLink.innerHTML="See Radius Report";url="reports?area=radius&lat="+lat+"&lng="+lng;var overlaySets=map.getOverlaySets();dids=[];dldids=[];for(var i=0;i<overlaySets.length;++i){if(overlaySets[i].id){if(overlaySets[i].type&&overlaySets[i].type=="dl"){dldids.push(overlaySets[i].id)}else{dids.push(overlaySets[i].id)}}}if(dids.length>0){url+="&did="+dids.join(",")}if(dldids.length>0){url+="&dldid="+dldids.join(",")}}PEvent.addListener(reportLink,"click",function(){setWindowLocation(url)},"mousedown")}else{reportLink.innerText="To see a report for the area around the address you’ve selected, sign up for PolicyMap.";PEvent.addListener(reportLink,"click",function(){showSignupOrUpgradeModal()},"mousedown")}if(address){return reportLink}else{$(reportLinkHolder).append(reportLink);return reportLinkHolder}}function generatePolygonTableLink(bid,pname,plat,plng){var tableLinkHolder=document.createElement("div");if(isWidgetOrEmbedMap())return tableLinkHolder;$(tableLinkHolder).addClass("polygon_table_link_holder");$(tableLinkHolder).addClass("info_extra_link");var tableLink=document.createElement("a");tableLink.innerHTML="See Table";PEvent.addListener(tableLink,"click",function(){if(map.getIndicator()){var indicator=map.getIndicator();var period=indicator.getPeriod();session.put("i",indicator.id);session.put("period",period)}session.remove("p");session.remove("place");session.put("bid",bid);session.put("pname",pname);session.put("plat",plat);session.put("plng",plng);setWindowLocation("/tables")},"mousedown");$(tableLinkHolder).append(tableLink);return tableLinkHolder}function generatePolygonReportLink(bid,polyid,pname,plat,plng,pid,rtype,submsg){var reportLinkHolder=document.createElement("div");if(isEmbedPage()||!isSubscriber()&&!submsg)return reportLinkHolder;$(reportLinkHolder).addClass("polygon_report_link_holder");$(reportLinkHolder).addClass("info_extra_link");var linkElems=[];var linksInfo={};if(isSubscriber()){if(isWidgetPage()){linksInfo=getWidgetPolyReportLinkInfo(polyid,rtype)}else{linksInfo=getPolyReportLinkInfo(polyid,rtype)}var links=linksInfo.links;if(linksInfo.page&&links&&links.length>0){for(var i=0;i<links.length;i++){var a=document.createElement("a");linkElems.push(a)}if(linksInfo.isHudReport){var noComps=function(elem){PEvent.addListener(elem,"click",function(){var text="No comparables were identified for this NSP Investment Cluster (NIC), so no report can be generated.";alerter.popup(text,"OK")},"mousedown")};ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=nic&act=n&nic="+pid,dataType:"json",success:function(response){if(response!=null&&response.nic!=null&&response.nic[pid]!=null&&response.nic[pid].comps!=null){if(response.nic[pid].comps.length>0){for(var i=0;i<links.length;i++){var linkinfo=links[i];var elem=linkElems[i];if(rtype=="polygon"){var txt=linkinfo.polygonOptionLabel}else if(rtype=="pradius"){continue;var txt="See Radius Report"}$(elem).html(txt);elem.info=linkinfo;PEvent.addListener(elem,"click",function(){var url=linksInfo.page+"?area="+rtype+"&bid="+bid+"&polyid="+polyid+"&pname="+encodeURIComponent(pname)+"&plat="+plat+"&plng="+plng+"&type="+this.info.reportType;if(PEnvironment.pageName=="widget"){url+="&sid="+getUrlParams().sid;window.open(url,"_blank")}else{setWindowLocation(url)}},"mousedown")}return}}noComps(elem)},error:function(){noComps(elem)}})}else{if(linksInfo.page=="report_area"){polycreator.polyload(bid,pname,plat,plng,function(places){for(var i=0;i<links.length;i++){var linkinfo=links[i];var elem=linkElems[i];var txt="";if(rtype=="polygon"){txt=linkinfo.polygonOptionLabel}else if(rtype=="pradius"){continue;txt="See Radius Report"}$(elem).html(txt);elem.info=linkinfo;var polyrad=getPolygonRadius(places[0]);var location=polyrad.lat+","+polyrad.lng;reportAreaParams="&location="+location+"&lat="+polyrad.lat+"&lng="+polyrad.lng+"&radius="+polyrad.size;PEvent.addListener(elem,"click",function(){setWindowLocation(linksInfo.page+"?area="+rtype+"&bid="+bid+"&polyid="+polyid+"&pname="+encodeURIComponent(pname)+"&plat="+plat+"&plng="+plng+"&type="+this.info.reportType+reportAreaParams)},"mousedown")}})}else{for(var i=0;i<links.length;i++){var linkinfo=links[i];var elem=linkElems[i];var txt="";if(rtype=="polygon"){txt=linkinfo.polygonOptionLabel}else if(rtype=="pradius"){continue;txt="See Radius Report"}$(elem).html(txt);elem.info=linkinfo;PEvent.addListener(elem,"click",function(){var type="";if(this.info.reportType){var type="&type="+this.info.reportType}var url=linksInfo.page+"?area="+rtype+"&bid="+bid+"&polyid="+polyid+"&pname="+encodeURIComponent(pname)+"&plat="+plat+"&plng="+plng+type;if(PEnvironment.pageName=="widget"){url+="&sid="+getUrlParams().sid;window.open(url,"_blank")}else if(this.info.reportType){window.open(url,"_blank")}else{setWindowLocation(url)}},"mousedown")}}}}}else if(submsg){var a=document.createElement("a");a.innerHTML="To see a report for this area, subscribe now.";PEvent.addListener(reportLink,"click",function(){showSignupOrUpgradeModal()},"mousedown");linkElems.push(a)}var c=reportLinkHolder;var elems=linkElems;for(var i=0;i<elems.length;i++){$(c).append(elems[i]);if(i<elems.length){$(c).append("<br />")}}return c}function generatePolygonPointlistLinks(bid,pname,plat,plng){var pointlistLinkHolder=document.createElement("div");var overlays=map.getOverlaySets();if(isEmbedPage()||overlays.length==0)return pointlistLinkHolder;if(isWidgetPage()){if(!productProperty.getValue("show_see_list_bubble_option")){return pointlistLinkHolder}}$(pointlistLinkHolder).addClass("polygon_pointlist_link_holder");$(pointlistLinkHolder).addClass("info_extra_link");for(var i=0;i<overlays.length;i++){if(!overlays[i].id||overlays[i].isPoly)continue;$(pointlistLinkHolder).append(document.createElement("br"));var listLink=document.createElement("a");listLink.innerHTML="See List of "+overlays[i].getLabel();listLink.setid=overlays[i].id;listLink.settype=overlays[i].type;listLink.set=overlays[i];listLink.place=bid;PEvent.addListener(listLink,"click",function(){var that=this;polycreator.polyload(bid,pname,plat,plng,function(places){if(places[0]){var allowedStatus=isSeeListAllowed(places[0],that.set.id);if(allowedStatus!==true){alerter.popup(allowedStatus,"OK");return}showSiteListPopup(that.set,places[0])}})},"mousedown");$(pointlistLinkHolder).append(listLink);var img=document.createElement("img");img.src=overlays[i].icon.image;$(pointlistLinkHolder).append(" ");$(pointlistLinkHolder).append(img)}if(!pointlistLinkHolder.hasChildNodes())pointlistLinkHolder.style.display="none";return pointlistLinkHolder}function generatePolygonPolylistLinks(bid,pname,plat,plng,marker){var polylistLinkHolder=document.createElement("div");var overlays=map.getOverlaySets();if(isWidgetOrEmbedMap()||overlays.length==0)return polylistLinkHolder;var polygonSets=[];for(var i=0;i<overlays.length;i++){if(overlays[i].isPoly){polygonSets.push(i)}}if(polygonSets.length>0){$(polylistLinkHolder).addClass("polygon_polylist_link_holder");$(polylistLinkHolder).addClass("info_extra_link");var ignoreList=[93400,96500,99150,103450,107e3,109200,112e3,114250,118150,121400,121550];for(i=0;i<polygonSets.length;i++){var ignore=false;for(var j=0;j<ignoreList.length;j++){if(marker.datasetID==ignoreList[j]&&ignoreList[j]==overlays[polygonSets[i]].id){ignore=true}}if(ignore)continue;$(polylistLinkHolder).append(document.createElement("br"));var listLink=document.createElement("a");listLink.innerHTML="See List of "+overlays[polygonSets[i]].getLabel()+" polygons";listLink.set=overlays[polygonSets[i]];PEvent.addListener(listLink,"click",function(){var that=this;polycreator.polyload(bid,pname,plat,plng,function(places){if(places[0]){var allowedStatus=isSeeListAllowed(places[0],that.set.id);if(allowedStatus!==true){alerter.popup(allowedStatus,"OK");return}showSiteListPopup(that.set,places[0])}})},"mousedown");$(polylistLinkHolder).append(listLink);var img=document.createElement("img");img.src=overlays[polygonSets[i]].icon.image;$(polylistLinkHolder).append(" ");$(polylistLinkHolder).append(img)}}if(!polylistLinkHolder.hasChildNodes())polylistLinkHolder.style.display="none";return polylistLinkHolder}function generateDownloadLink(classes,defaultOverlaySet,defaultPlace,defaultCustomRegion){var $downloadLinkHolder=$("<div />");if(!isSubscriber()||isWidgetPage()||isCBClone()||isEmbedPage()){return $downloadLinkHolder.get(0)}if(classes!=null){$downloadLinkHolder.addClass(classes)}var options={};if(defaultOverlaySet!=null){options.defaultOverlaySet=defaultOverlaySet}if(defaultPlace!=null){options.defaultPlace=defaultPlace}else if(defaultCustomRegion!=null){options.defaultCustomRegion=defaultCustomRegion}var $downloadLink=$("<a>");$downloadLink.text("Download Data");$downloadLink.click(function(){showExportModal(options)});$downloadLinkHolder.append($downloadLink);return $downloadLinkHolder.get(0)}function createPlacesDiv(candidatePlaces,searchString){if(isCBClone()){return createPlacesDivCB(candidatePlaces,searchString)}if(PEnvironment.pageName=="report_area"){var places=[];if(searchString){for(var i=0;i<candidatePlaces.length;++i){if(candidatePlaces[i].getLabel().toLowerCase().indexOf(searchString.toLowerCase())==0){places.push(candidatePlaces[i])}}for(var i=0;i<candidatePlaces.length;++i){if(candidatePlaces[i].getLabel().toLowerCase().indexOf(searchString.toLowerCase())!=0){places.push(candidatePlaces[i])}}}else{places=candidatePlaces}var l=similarClicks.length;for(var i=0;i<l;i++)PEvent.removeListener(similarClicks[i]);similarClicks=[];html=document.createElement("div");html.style.fontSize="11px";var title=document.createElement("div");var displayDefinition=boundaryMatrix.getDisplayNameForDefinitionId(places[0].getDefinitionId());title.innerHTML=places[0].getLabel()+getState(places[0])+" ("+displayDefinition+")";html.appendChild(title);if(places.length>1){var similar=document.createElement("div");similar.innerHTML="<br><b>Similar results:</b><br>";html.appendChild(similar);for(var i=1;i<places.length;i++){var anchor=document.createElement("a");anchor.href="javascript:void(0)";anchor.innerHTML=places[i].getLabel()+getState(places[i])+" ("+places[i].getType().getName()+")";anchor.place=places[i];similarClicks.push(PEvent.addListener(anchor,"click",function(){var title="<div style='font-size: 11px'>"+this.place.getLabel()+" ("+this.place.getType().getName()+")</div>";addMarkerWindow(title,this.place)}));html.appendChild(anchor);html.appendChild(document.createElement("br"))}}return html}else if(PEnvironment.pageName=="tables"){var l=similarClicks.length;for(var i=0;i<l;i++){PEvent.removeListener(similarClicks[i])}similarClicks=[];var html=$("<div />");var title=$("<div />");title.addClass("similarTitle");title.text("Location Added:");var similar=$("<div />");similar.text(candidatePlaces[0].getLabel()+getState(candidatePlaces[0])+" ("+candidatePlaces[0].getType().getName()+")");html.append(title,similar);if(candidatePlaces.length>1){title=$("<div />");title.addClass("similarTitle");title.text("Similar Results:");html.append($("<br />"),title);for(var i=1;i<candidatePlaces.length;i++){var curPlace=candidatePlaces[i];similar=$("<a />");similar.addClass("tableLink");similar.text(curPlace.getLabel()+getState(curPlace)+" ("+curPlace.getType().getName()+")");similar.attr("placeid",curPlace.id);similarClicks.push(PEvent.addListener(similar[0],"click",function(){addPlaceType($(this).attr("placeid"))}));html.append(similar,$("<br />"))}}return html[0]}else{var places=[];if(searchString){for(var i=0;i<candidatePlaces.length;++i){if(candidatePlaces[i].getLabel().toLowerCase().indexOf(searchString.toLowerCase())==0){places.push(candidatePlaces[i])}}for(var i=0;i<candidatePlaces.length;++i){if(candidatePlaces[i].getLabel().toLowerCase().indexOf(searchString.toLowerCase())!=0){places.push(candidatePlaces[i])}}}else{places=candidatePlaces}var l=similarClicks.length;for(var i=0;i<l;i++)PEvent.removeListener(similarClicks[i]);similarClicks=[];html=document.createElement("div");html.className="similarresults";var title=document.createElement("div");var displayDefinition=boundaryMatrix.getDisplayNameForDefinitionId(places[0].getDefinitionId());title.innerHTML=places[0].getLabel()+getState(places[0])+" ("+displayDefinition+")";html.appendChild(title);var placeType=places[0].getType();if(isFurman()&&(placeType==PPlaceType.CITY||placeType==PPlaceType.COUNTY||placeType==PPlaceType.CBSA)){var furmanReportLink=document.createElement("a");furmanReportLink.style.fontSize="12px";furmanReportLink.href="/report_widget?type=fur&area=predefined&pid="+places[0].id+"&sid="+PEnvironment.productId;furmanReportLink.text="Get Report for this "+placeType.getDisplayName();furmanReportLink.target="_blank";var furmanReportLinkContainer=document.createElement("div");furmanReportLinkContainer.appendChild(furmanReportLink);html.appendChild(document.createElement("br"));html.appendChild(furmanReportLinkContainer)}if(places.length>1){var similar=document.createElement("div");similar.innerHTML="<br><b>Similar Results:</b><br>";html.appendChild(similar);for(var i=1;i<places.length;i++){var placelink=document.createElement("span");placelink.className="similar-link";placelink.style.color="#5D83D0";placelink.textDecoration="underline";placelink.innerHTML=places[i].getLabel()+getState(places[i])+" ("+boundaryMatrix.getDisplayNameForDefinitionId(places[i].getDefinitionId())+")";var p=places[i];placelink.place=p;similarClicks.push(PEvent.addListener(placelink,"mouseup",function(){selectLoadedPlace(this.place,true)}));html.appendChild(placelink);html.appendChild(document.createElement("br"))}}return html}}function addPolygons(map,place,fill,color){if(color){polycolor=color}if(PEnvironment.pageName=="widget"){refreshWidgetRankings(place);if(PEnvironment.widgetParams&&(PEnvironment.widgetParams["sid"]==61||PEnvironment.widgetParams["sid"]==117)){polycolor="#000000"}var prodId=PEnvironment.productId;if(prodId==1395){var buttonClass="content__header__report_button";var url="/report_widget?type=hfap&area=predefined&pid="+place.id+"&sid="+prodId;var $button=$("."+buttonClass);if($button.length){$button.attr("href",url)}else{var $button=$("<a />",{class:"button--generic "+buttonClass,href:url,target:"new"});$button.append('<div class="icon"></div><div class="text">Get Report</div>');$(".column__buttons").append($button)}}}mapstates.setCurrentPlace(place);map.polygons=new Array;var polygons=place.getVertices();var p=function(polygons){for(var i=0;i<polygons.length;i++){var polygon;if(PEnvironment.pageName=="report_area"){polygon=new PPolyline(polygons[i],polycolor)}else if((PEnvironment.pageName=="report_generate"||PEnvironment.pageName=="report_widget")&&currentReport&&currentReport.reportType!="hud"){polygon=new PPolygon(polygons[i],polycolor,polyweight,polyopacity,polyfill,fillopacity)}else{if(fill){polygon=new PPolygon(polygons[i])}else{polygon=new PPolyline(polygons[i],polycolor)}}if(i==0&&P.instances.wkprint.isPrintPage()===false&&PEnvironment.pageName!="report_generate"){var midpos=Math.round(polygon.points.length/2);var point=polygon.points[midpos];var icon=new PIcon(PIcon.POINT);icon.iconSize=new PSize(12,12);icon.shadow="";icon.image="/images/remove_icon_active.png";var clearmarker=new PMarker(point,icon);$(clearmarker.image).addClass("clear-region-marker");polygon.clearmarker=clearmarker;PEvent.addListener(clearmarker,"mouseup",function(event){if(PEnvironment.pageName=="reports"){clearLocationAlert()}else{if(map.polygons){for(var i=0;i<map.polygons.length;i++){map.removeOverlay(map.polygons[i])}map.polygons=[]}if(map.getInfoWindow()){map.closeInfoWindow()}clearPlaceFromSessionAndOtherVariables()}});map.addOverlay(clearmarker)}map.addOverlay(polygon);map.polygons.push(polygon)}};if(polygons==null){var f=function(places){mapstates.setCurrentPlace(places[0]);var polygons=places[0].getVertices();p(polygons)};placeLoader.load([place.id],f)}else{p(polygons)}}function addPolylines(map,verts,opts){if(opts&&opts.color)reportpolygoncolor=opts.color;for(var i=0;i<verts.length;i++){var polyline=new PPolyline(verts[i],reportpolygoncolor,3);map.addOverlay(polyline)}}function clearPolygons(map){var polys=map.polygons;if(polys){for(var i=polys.length;i>=0;i--){map.removeOverlay(polys[i])}clearPlaceFromSessionAndOtherVariables()}}function createTitle(state,title){var text="";if(title&&state.indicator&&state.indicator.getFullDisplayName()){addDetailsButton();text=state.indicator.getFullDisplayName()}else if(state.indicator){text=state.indicator.displayName}if(!title){if(text&&text.length>0)text+=", ";if(state.addr)text+=state.addr;else if(state.place){text+=state.place.getLabel();if(state.place.getType()==PPlaceType.COUNTY)text+=" County";text+=getState(state.place)}}return text}function createTitleForWidgetAndEmbedMap(indicator,sets){var text="";if(indicator&&indicator.getFullDisplayName()){addDetailsButton();text=indicator.getFullDisplayName()}else if(indicator){text=indicator.displayName}else if(sets){text=createSitesMapTitle(sets)}return text}function updateDetailsButton(isOn){if(isCBClone()){updateDetailsButtonCB(isOn);return}if(isOn){$("#moreimg").attr({src:"/images/home-maptitle-button-close.png"})}else{$("#moreimg").attr({src:"/images/home-maptitle-button-details.png"})}}function addDetailsButton(){$("#morelink").show();if(isCBClone()){addDetailsButtonCB();return}if($("#morelink").hasClass("on")){$("#moreimg").attr({src:"/images/home-maptitle-button-close.png"})}else{$("#moreimg").attr({src:"/images/home-maptitle-button-details.png"})}}function createSitesMapTitle(sets){if(!sets)sets=map.getOverlaySets();var text="";for(var i=0;i<sets.length;i++){var a="";if(sets.length>1&&i!=0){a=", ";if(i==sets.length-1){if(i>1)a=", and ";else a=" and "}}text+=a+sets[i].getLabel()}return text}function mapOptions(elem,showCurrent){if(jQuery("#mapOptionsToggle").hasClass("disable")){var text="The map options are not available while assembling a custom region.";alerter.popup(text,"OK");return}if(showCurrent){var mo=map.mapOptions;if(mo.isCurrentOn()){mo.cancelShowLayerForCurrentView()}else{mo.showLayerForCurrentView()}}else{$("#optsbox").toggle()}}function changeSaveMapName(anchor){anchor.parentNode.parentNode.getElementsByTagName("input")[0].style.display="block";anchor.parentNode.parentNode.childNodes[0].style.display="none"}function createDivMapMessage(content,width,height){return alerter.popup(content)}function genMapJpgLink(template,identifyNotAllowed){var mapImageUrlTokens=map.printImage().split("?");if(mapImageUrlTokens.length>1){if(mapImageUrlTokens.length>2){
mapImageUrlTokens[1]=mapImageUrlTokens[2]}var indicator=map.getIndicator();var legendMerger=map.getLegendMerger();var title="";var description="";if(indicator){title="&title="+escape(indicator.getFullDisplayName());description="&desc="+escape(indicator.getDescription())}else if(legendMerger){title="&title=";descriptions="&desc="}var iData="";if(!identifyNotAllowed){var infoWindow=map.getInfoWindow();if(infoWindow&&infoWindow.isHidden()==false){var iPoint=infoWindow.getPoint();iData="&inflat="+escape(iPoint.lat());iData+="&inflong="+escape(iPoint.lng());var iContent=infoWindow.tabs[infoWindow.selectedTab].content;if(iContent.parentNode)iContent=iContent.parentNode.innerHTML;iData+="&infcont="+escape(iContent)}}var indId="";var period="";var dataType="";var data="";var additionalData="";var color="";var visible="";var dataSize="";var additionalDataSize="";var source="";var boundary="";var defYear="";var orientation="";var expanded="&ex=0";var breadcrumbsString="&bc="+escape(jQuery("div#breadcrumbs").text().split(">").join(" > "));orientation="&or="+printOrientation;if($("#addsites_widget")[0]&&$("#addsites_widget")[0].style.display=="none")expanded="&ex=1";if(indicator){boundary="&bdnm="+escape(map.getLegend().getBoundaryType().getName());var checkDefYear=boundaryMatrix.getDisplayYearForDefinitionId(map.getLegend().getCurrentBoundaryDefinitionId());if(checkDefYear!=null){defYear="&bdyr="+escape(checkDefYear)}source="&src="+escape(indicator.getSourceList());indId="&ind="+indicator.getID();period="&p="+indicator.getPeriod();dataType="&dt="+escape(widget.getMeasurementLabel(indicator).replace("&nbsp;",""));if(isWidgetPage()){var table=$("#legend").find("table");var trs=table.find("tr:even");dataSize="&ds="+trs.size();trs.each(function(i){var tds=jQuery(this).children("td:even");if(tds.eq(1).text()&&tds.eq(2).text()){data+="&d_"+i+"="+escape(tds.eq(1).text()+" - "+tds.eq(2).text())}else if(tds.eq(1).text()){data+="&d_"+i+"="+escape(tds.eq(1).text())}var rgb=/^rgb\((.*)\)/.exec(tds.eq(0).css("background-color"));if(rgb&&rgb.length>0){color+="&c_"+i+"="+escape(rgb[1])}});var span=table.next().find("span");additionalDataSize="&ads="+span.size();span.each(function(i){additionalData+="&ad_"+i+"="+escape(jQuery(this).text()+jQuery(this).get(0).nextSibling.data)})}else{var legendItems=$(".legend__breakdown__container").find(".legend__breakdown__item");dataSize="&ds="+legendItems.size();legendItems.each(function(i){var curItem=$(this);if(curItem.find("span.legend__breakdown__label").length>0){data+="&d_"+i+"="+encodeURIComponent(curItem.find("span.legend__breakdown__label").text())}else if(curItem.find("div.legend__breakdown__range").length>0){var rangeItems=curItem.find("div.legend__breakdown__range");data+="&d_"+i+"="+encodeURIComponent(rangeItems.find("span.legend__breakdown__left-range").text()+" - "+rangeItems.find("span.legend__breakdown__right-range").text())}var rgb=/^rgb\((.*)\)/.exec(curItem.find("div.legend__breakdown__color").css("background-color"));if(rgb&&rgb.length>0){color+="&c_"+i+"="+escape(rgb[1])}else{rgb=/^(#[a-fA-F0-9]{3,6})/.exec(curItem.find("div.legend__breakdown__color").css("background-color"));if(rgb&&rgb.length>0){color+="&c_"+i+"="+escape(rgb[1])}}if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){mvaLayers=session.get("mvalayers");visible+="&v_"+i+"="+mvaLayers[i]}})}}var addSitesIcons="";var addSitesLabels="";var addSitesSources="";var osets=map.getOverlaySets(false,true);var addSitesSize="&ass="+osets.length;var curNum=0;for(var i=0;i<osets.length;i++){if(!osets[i].id||osets[i].child){continue}if(osets[i].icon){addSitesIcons+="&asi_"+curNum+"="+encodeURIComponent(filenameFromURL(osets[i].icon.image))}if(osets[i].id==massTransitSetId){addSitesLabels+="&asl_"+curNum+"="+encodeURIComponent("Mass Transit Lines");addSitesLabels+="&asa_"+curNum+"="+encodeURIComponent("Urban Mapping, Inc.")}else{addSitesLabels+="&asl_"+curNum+"="+encodeURIComponent(osets[i].name)}if(osets[i].filtersbyicons.length>0){var filterGroups=osets[i].getFilters();if(filterGroups[0]){addSitesLabels+="&asl_"+curNum+"_"+"0"+"="+encodeURIComponent(filterGroups[0].name);for(var m=0;m<osets[i].filtersbyicons.length;m++){addSitesIcons+="&asi_"+curNum+"_"+"0"+"_"+m+"="+encodeURIComponent(filenameFromURL(osets[i].filtericons[m].image));addSitesLabels+="&asl_"+curNum+"_"+"0"+"_"+m+"="+encodeURIComponent(osets[i].filtersbyicons[m].valuesDisplay)}}}else{var filterGroups=osets[i].filtergroups;var k=0;for(group in filterGroups){if(!group.match("_HIDE")){addSitesLabels+="&asl_"+curNum+"_"+k+"="+group;var groupFilters=filterGroups[group];for(var m=0;m<groupFilters.length;m++){addSitesLabels+="&asl_"+curNum+"_"+k+"_"+m+"="+encodeURIComponent(groupFilters[m].valuesDisplay)}}k++}}var psource=osets[i].sources;var sourceString=null;if(psource.length>0){sourceString="";for(var j=0;j<psource.length;j++){sourceString+=psource[j].label;if(j<psource.length-1)sourceString+=", "}encodeURIComponent(filenameFromURL(sourceString))}if(sourceString){addSitesSources+="&asa_"+curNum+"="+sourceString}curNum++}var placeId="";var address="";var boundaryOutline="";if(session.get("place")){address="&a="+escape(session.get("place"));if(session.get("lng")&&session.get("lat")){address+="&ax="+escape(session.get("lng"))+"&ay="+escape(session.get("lat"))}else{address+="&ax="+escape(map.getCenter().longitude)+"&ay="+escape(map.getCenter().latitude)}}if(session.get("p"))placeId="&pid="+session.get("p");var customPlaces="";if(session.get("cp")){customPlaces+="&cp="+session.get("cp").join(",")}if(islandPrintEnabled==true){boundaryOutline="&bo=custom"}else{boundaryOutline="&bo=all"}var labels="";var labelParms=labelManager.generateMapLabelArguments(true);for(var i=0;i<labelParms.length;i++){labels+="&"+labelParms[i]}var mergedLegendData="";if(legendMerger){var indLegend=null;var cnt=0;for(var i=0;indLegend=legendMerger.getLegend(i);i++){var ind=indLegend.getIndicator();if(ind){mergedLegendData+="&mlabel_"+cnt+"="+escape(ind.getFullLabel());mergedLegendData+="&mbdnm_"+cnt+"="+escape(indLegend.legend.getBoundaryType().getName());var checkDefYear=boundaryMatrix.getDisplayYearForDefinitionId(indLegend.legend.getCurrentBoundaryDefinitionId());if(checkDefYear!=null){mergedLegendData+="&mbdyr_"+cnt+"="+escape(checkDefYear)}mergedLegendData+="&msrc_"+cnt+"="+escape(ind.getSourceList());mergedLegendData+="&mp_"+cnt+"="+escape(ind.getPeriod());if(indLegend.getMeasurementLabel(ind)){mergedLegendData+="&mdt_"+cnt+"="+escape(indLegend.getMeasurementLabel(ind).replace("&nbsp;",""))}var range=indLegend.getIndicatorRange().getRange();var values=indLegend.getIndicatorValues().getValues();if(range){mergedLegendData+="&mr0_"+cnt+"="+escape(PWebUtil.formatNumber(range[0],ind.unit));mergedLegendData+="&mr1_"+cnt+"="+escape(PWebUtil.formatNumber(range[1],ind.unit));var limits=indLegend.getIndicatorRange().getLimits();mergedLegendData+="&mrmin_"+cnt+"="+escape(limits[0]);mergedLegendData+="&mrmax_"+cnt+"="+escape(limits[1])}if(values){mergedLegendData+="&mv"+cnt+"="+escape(MochiKit.Base.serializeJSON(values))}cnt++}mergedLegendData+="&ms="+cnt}}var newTarget="http://"+printTemplate+"/";if(template){newTarget="http://"+template+"/"}var widgetparams="";if(PEnvironment.pageName=="widget"){if(map.widgetRankingsOn&&P.instances.rRanks!=null&&$("#popup").is(":visible")){widgetparams+="&wri="+encodeURIComponent(P.instances.rRanks.ind.getID());widgetparams+="&wrper="+encodeURIComponent(P.instances.rRanks.period);widgetparams+="&wrp="+encodeURIComponent(P.instances.rRanks.place.getID());widgetparams+="&wrpt="+encodeURIComponent(P.instances.rRanks.place.getType().getPluralName());widgetparams+="&wrd="+encodeURIComponent(P.instances.rRanks.ind.fullDisplayNames[P.instances.rRanks.ind.curPerIndex])}}var url=newTarget+"?"+mapImageUrlTokens[1]+title+orientation+expanded+boundary+defYear+source+indId+period+dataType+dataSize+data+color+visible+mergedLegendData+additionalDataSize+additionalData+addSitesSize+addSitesLabels+addSitesIcons+addSitesSources+labels+placeId+customPlaces+address+boundaryOutline+widgetparams+breadcrumbsString+description+iData;return url}else{customAlert("Please display a map.")}return null}function customAlert(text){alerter.popup(text,"OK")}function registerAlert(){var text="Available to Basic (free) Users and Subscribers only. <a onclick='showLoginModal();' class='simulink pagelinks'>Login</a> to access, or <a onclick='showSignupOrUpgradeModal();' class='simulink pagelinks'>sign up for PolicyMap</a>.";alerter.popup(text,"OK")}function premiumSubscribeAlert(){var text="Currently, this data is only available to selected users.";alerter.popup(text,"OK")}function resetMap(){map.mapOptions.setToDefault();map.getLegend().setNumberOfBreaks(DEFAULT_NUMBREAKS);if(widget)widget.clear();clearLocation();if(polycreator){polycreator.reset();if(polycreator.isBuildOn())toggleCustomRegion()}map.clearOverlays();map.clearOverlaySets();if(labelManager){labelManager.resetLabelManager()}if(datasetSearch){datasetSearch.reset()}if(map.getInfoWindow())map.closeInfoWindow();map.setCenter(new PLatLng(getDefaultMapLat(),getDefaultMapLng()),getDefaultMapZoom());session.remove("curZoom");$("#moretitle").hide(200);resetDetailsButton();search.reset();resetDatasetSearch();session.removeAllRelevant()}function clearMapData(){widget.clear();session.remove("i");session.remove("mvalayers")}function clearLocationAlert(){var text="";var place=null;if(PEnvironment.pageName=="widget"&&textOnlyIsOn){if(cube.places&&cube.places[0]){place=cube.places[0]}}else if(mapstates.currentplace&&mapstates.currentplace.getType()){place=mapstates.currentplace}if(polycreator.customPlacesCount>0)var customplaces=polycreator.customPlaces;if(place||customplaces){if(place){text="Are you sure you want to clear the location currently displayed - <b>"+place.getLabel()+getState(place)+" ("+place.getType().getName()+"</b>)?"}if(place&&customplaces){text+="<br /><br />This will also clear the custom regions currently displayed."}else if(customplaces){text="Are you sure you want to clear the custom regions currently displayed?"}alerter.popup(text,"No","Yes",clearLocation)}else{if(PEnvironment.pageName=="widget"){text="There is currently no location specified. You can do this by entering one in the search bar."}else if(isCBClone()){text="There is currently no location specified. You can select a location by entering one in the search bar."}else{text="There is currently no location specified. You can do this by entering one in the search bar or building a custom region (subscribers only)."}alerter.popup(text,"OK")}}function clearLocation(notReally){if(map.polygons){for(var i=0;i<map.polygons.length;i++){map.removeOverlay(map.polygons[i])}map.polygons=[]}if(map.getInfoWindow())map.closeInfoWindow();session.remove("legendind");session.remove("cp");if(polycreator){var customplaces=polycreator.customPlaces;for(var i in customplaces){polycreator.removeCustomRegionFromMap(customplaces[i].place)}if(!isWidgetPage()&&!isCBClone){polycreator.resetPlaces();if(polycreator.assembleInfoWidget){polycreator.assembleInfoWidget.clear()}if(!polycreator.customRegionsOn()){polycreator.clearPolygonsWithin();polycreator.clearBuildingOverlays()}}}custom_place=null;clearPlaceFromSessionAndOtherVariables();if(PEnvironment.pageName=="widget"&&textOnlyIsOn){cube.remove(cube.places[0]);jQuery("#similarbox").html("")}if(PEnvironment.pageName=="reports"&&notReally==null){reportObject.locationClear();$("#predefined").click()}}function clearPlaceFromSessionAndOtherVariables(){session.remove("p");session.remove("pLabel");mapstates.setCurrentPlace(initialplace);global_places=[]}function isCustomRegionOn(){var $customRegionButton;if(PEnvironment.pageName==="widget"){var params=getUrlParams();$customRegionButton=$(".custom-region-button__widget");var text=polycreator.widgetButtonText;return $customRegionButton.length&&$customRegionButton.find(".text").text()!==text}else{$customRegionButton=$(".custom-regions__create");return $customRegionButton.length&&$customRegionButton.text().toLowerCase()!=="create"}}function buildRegionAlert(custreg){var text="To create a custom region, click a spot on the map, move your mouse to another spot and click, and continue until you close the region by clicking on the first point.   At that point you may name the region and save it to "+dnf.getName("mySavedWork")+". To clear a custom region, click Clear Location and to disable this feature, click Disable Custom Region.";function f(){custreg.innerHTML="Disable Custom Region";map.enablePolyCreator(polycreator)}alerter.popup(text,null,"OK",f)}function toggleIndicatorDescription(){var more=document.getElementById("moretitle");var morelink=document.getElementById("morelink");if(!$(morelink).hasClass("on")){if(PEnvironment.pageName!="tables"){var ind=map.getIndicator();more.innerHTML=ind.getDescription();var sources=ind.getSources();if(sources.length>1){more.innerHTML+=" (See data directory for "+ind.getSourceList(true)+".)"}else if(sources.length==1){var sourceURL=ind.getSourceURL(sources[0]);if(sourceURL!=null){more.innerHTML+=" <a class='dataLink' target='_blank' href='"+sourceURL+"'>(see data directory)</a>"}}}jQuery("#moretitle").show(200);jQuery("#moretitle").fadeIn(200);updateDetailsButton(true)}else{jQuery("#moretitle").hide(200);updateDetailsButton()}$(morelink).toggleClass("on")}function showIndicatorDescriptionIfOn(ind){var ind=map.getIndicator();if(typeof ind==="object"){var label=ind.getFullLabel();$(".content__header__content .title").text(label);var more=ind.getDescription();var sources=ind.getSources();if(sources.length>1){more+=" (See data directory for "+ind.getSourceList(true)+".)"}else if(sources.length===1){var sourceURL=ind.getSourceURL(sources[0]);if(sourceURL!==null){more+=" <a class='dataLink' target='_blank' href='"+sourceURL+"'>(see data directory)</a>"}}$(".content__header__addtional-info__content p").html(more);$(".content__header").removeClass("is-hidden")}else{$(".content__header").addClass("is-hidden")}$(window).resize()}function showColorOptions(){if(!isSubscriber()){subscribeAlert();return}if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){alerter.popup("Legend colors cannot be changed for categorical data.","OK");return}var rampsDiv=document.getElementById("colorRampsBox");if(rampsDiv.style.display=="none")$(rampsDiv).fadeIn(300);else $(rampsDiv).hide();if(rampsDiv.hasChildNodes())return;var arr=[];var ramps=colorRamps.getLegendRamps();for(var i=0;i<ramps.length;i++){arr.push(ramps[i])}for(var j=0;j<2;j++){var column=$("<div />");column.addClass("column");var count=0;for(var y=0;y<arr.length;y++){var nameDiv='<div class="name">'+arr[y].name+"</div>";$(column).append(nameDiv);var colors=arr[y].getColors();var colorsDiv=$("<div />");colorsDiv.addClass("colorRamps");for(var i=0;i<colors.length;i++){var div=document.createElement("div");div.className="color";div.style.background="#"+colors[i].color;div.name=arr[y].name;PEvent.addListener(div,"click",function(){widget.changeColorRamp(this.name)});colorsDiv.append(div)}column.append(colorsDiv);var d=$("<div />");d.css({clear:"both",padding:"2px"});column.append(d);count++;if(count==4){arr.splice(0,count);break}}$(rampsDiv).append(column)}var menuTimer=null;var clrcont=document.getElementById("colorRampsContainer");PEvent.addListener(clrcont,"mouseout",function(){menuTimer=setTimeout(function(){jQuery(rampsDiv).hide()},300)});PEvent.addListener(clrcont,"mouseover",function(){clearTimeout(menuTimer)})}function createSitesHtmlForLegend(){var site_containers=$(".site_container");var sitesDiv="";if(site_containers.length>0){sitesDiv='<div id="sitesLegendContainer"><h4>Sites</h4><div class="breakdown sites" style="padding-top: 0; color:#FFA800;">';for(var i=0;i<site_containers.length;i++){var siteLabel=$(site_containers[i]).find(".site_title");var siteImage=$(site_containers[i]).find(".site_image");sitesDiv+="<div>";sitesDiv+='<img src="'+$(siteImage[0]).attr("src")+'" /> ';sitesDiv+=$(siteLabel[0]).html();sitesDiv+="</div>";var filters=$(site_containers[i]).find(".filter_container");for(var j=0;j<filters.length;j++){var filter=$(filters[j]).find(".filter");if(filter.length>0){var filterType=$(filters[j]).find(".filter_type");var filterColors=$(filters[j]).find(".filter_colors");sitesDiv+='<div class="name">'+$(filter[0]).html()+"</div>";if(filterColors.length>0){for(var k=0;k<filterColors.length;k++){sitesDiv+='<div class="value">'+$(filterColors[k]).html()+"</div>"}}else{sitesDiv+='<div class="value">';for(var k=0;k<filterType.length;k++){if(k!=0)sitesDiv+=", ";sitesDiv+=$(filterType[k]).html()}sitesDiv+="</div>"}}}}sitesDiv+="</div></div>"}return sitesDiv}function toggleMapLegend(elem,hide){if(elem)jQuery(elem).toggleClass("hide");if(hide||elem&&jQuery(elem).hasClass("hide")){jQuery(".legContentHolder").css("display","none");jQuery(".legend_container").find("br").css("display","none");jQuery("#legend").find(".toggleText").html("Show Legend");jQuery("#onmaplegend").find(".toggleText").html("Show Legend");map.getLegend().isHidden=true}else{jQuery(".legContentHolder").css("display","block");jQuery(".legend_container").find("br").css("display","inline");jQuery("#legend").find(".toggleText").html("Hide Legend");jQuery("#onmaplegend").find(".toggleText").html("Hide Legend");map.getLegend().isHidden=false}}function resetMapAlert(){var text;if(PEnvironment.pageName=="report_area"){text="Are you sure you want to clear the location currently displayed?"}else if(PEnvironment.pageName=="tables"){text="Are you sure you want to clear any data layers, points and locations and start over?"}else{text="Are you sure you want to clear any data layers or points currently displayed and start over at the default view?"}if(PEnvironment.pageName=="analytics"){alerter.popup(text,"No","Yes",resetAnalytics)}else if(PEnvironment.pageName=="widget"){alerter.popup(text,"No","Yes",resetWidget)}else if(PEnvironment.pageName=="report_area"){alerter.popup(text,"No","Yes",resetReportArea)}else if(PEnvironment.pageName=="tables"){alerter.popup(text,"No","Yes",resetTables)}else{alerter.popup(text,"No","Yes",resetMap)}}function getPolyReportLinkInfo(id,rtype){var linksInfo={};linksInfo.page="reports";linksInfo.links=[];info={};linksInfo.links.push(info);if(id==99800){info.polygonOptionLabel="See Brookings Institution LAA Report";info.reportType="brookingslaa"}else if(id==93400||id==96500||id==99150||id==103450||id==107e3||id==109200||id==112e3||id==114250||id==118150){if(rtype=="pradius"){linksInfo.page="report_area"}else{linksInfo.page="reports"}info.polygonOptionLabel="See M&T Bank Report";info.reportType="h"}else if(id==114550){linksInfo.isHudReport=true;info.polygonOptionLabel="See HUD NSP Neighborhood Change Report";linksInfo.page="reports";info.reportType="hud"}else if(id==114050){linksInfo.isWellsFargoReport=true;linksInfo.page="reports";info.polygonOptionLabel="See Demographics Change Report";info.reportType="wf_demographic";var info={};info.polygonOptionLabel="See Housing and Real Estate Change Report";info.reportType="wf_housing";linksInfo.links.push(info);var info={};info.polygonOptionLabel="See Education Change Report";info.reportType="wf_education";linksInfo.links.push(info);var info={};info.polygonOptionLabel="See Jobs and Economy Report";info.reportType="wf_jobseconomy";linksInfo.links.push(info)}else{info.polygonOptionLabel="See Polygon Report";info.reportType=""}return linksInfo}function getWidgetPolyReportLinkInfo(id,rtype){var linksInfo={};linksInfo.page="reports";linksInfo.links=[];if(id==114550){var info={};linksInfo.page="report_widget";linksInfo.isHudReport=true;info.polygonOptionLabel="See HUD NSP Neighborhood Change Report";info.reportType="hud";linksInfo.links.push(info)}else if(id==114050){var info={};linksInfo.isWellsFargoReport=true;linksInfo.page="report_widget";info.polygonOptionLabel="See Demographics Change Report";info.reportType="wf_demographic";linksInfo.links.push(info);linksInfo.isWellsFargoReport=true;linksInfo.page="report_widget";info.polygonOptionLabel="See Housing and Real Estate Report";info.reportType="wf_housing";linksInfo.links.push(info);linksInfo.isWellsFargoReport=true;linksInfo.page="report_widget";info.polygonOptionLabel="See Community Change Report – Education";info.reportType="wf_education";linksInfo.links.push(info)}return linksInfo}function isSupermarketIndicator(ind){var supermarketInds=[9845403,9845303,9845304,9845300,9845306,9845312];for(var i=0;i<supermarketInds.length;i++){if(ind.id==supermarketInds[i])return true}return false}function isSeeListAllowed(curPlace,datasetId){var datasetsToCheck=[129600,130350];var checkDataset=false;for(var i=0;i<datasetsToCheck.length;i++){if(datasetsToCheck[i]==datasetId){checkDataset=true;break}}if(!checkDataset){return true}if(curPlace.isCustomOrPoly()){return"Lists of points for this dataset are not available for custom regions or polygons."}var curPlaceTypeId=curPlace.getType().id;var placeZoom;if(PEnvironment.pageName=="tables"){placeZoom=map.setCenterBoundsAndGetZoomLevelByViewPort(curPlace.getBounds(),1e3,600)}else{placeZoom=map.getBoundsZoomLevel(curPlace.getBounds())}if(curPlace.isCustomOrPoly()&&placeZoom<11){return"Lists of points for this dataset are only available for custom regions that are smaller."}else if(!curPlace.isCustomOrPoly()&&curPlaceTypeId!=15&&!isCensusTractTypeId(curPlaceTypeId)){return"Lists of points for this dataset are only available for census tracts and block groups."}else{return true}}function mapOptionsDisable(){var elem=jQuery("#mapOptionsToggle");elem.addClass("disable")}function mapOptionsEnable(){var elem=jQuery("#mapOptionsToggle");elem.removeClass("disable")}function showSiteListPopup(set,boundary){if(!isSubscriber()){subscribeAlert();return}var b=boundary;if(!b){b=P.instances.map.getBounds()}var seeListPopup=$("#seeListPopup");if(seeListPopup.length==0){var seeListPopup=$("<div />");seeListPopup.attr("id","seeListPopup");seeListPopup.addClass("chartContainer");seeListPopup.css({position:"absolute","z-index":71});seeListPopup.html('<div id="popup" class="popup"></div>');$("body").append(seeListPopup)}else{seeListPopup.show()}if($("#reportPins").length==0){var content=$("<div />");content.attr("id","reportPins");content.addClass("reportPlaces");content.html('<div id="smallTitle" class="smallTitle"></div>'+'<div id="bigTitle" class="bigTitle"></div>'+'<div id="tableContainer">'+'<div class="scrollTableContainer"></div>'+"</div>"+'<div class="pageNav">'+'<div class="pageLink">'+'<a onclick="P.instances.rPins.changePage(0);">&lt;&lt;</a>'+"</div>"+'<div class="pageLink">'+'<a onclick="P.instances.rPins.changePage(P.instances.rPins.currentPage - 1);">&lt;</a>'+"</div>"+'<div id="pageNums" class="pageNums"></div>'+'<div class="pageLink">'+'<a onclick="P.instances.rPins.changePage(P.instances.rPins.currentPage + 1);">&gt;</a>'+"</div>"+'<div class="pageLink">'+'<a onclick="P.instances.rPins.changePage();">&gt;&gt;</a>'+"</div>"+"</div>");$("body").append(content)}if(PEnvironment.pageName=="maps"||PEnvironment.pageName=="analytics"||PEnvironment.pageName=="widget"){var mapPos=$("#map").offset();var mapSize=[$("#map").height(),$("#map").width()];var containerHeight=Math.floor(mapSize[0]*.8);var containerWidth=Math.floor(mapSize[1]*.8);var containerTop=Math.floor((mapSize[0]-containerHeight)/2);var containerLeft=Math.floor((mapSize[1]-containerWidth)/2);seeListPopup.css({top:mapPos.top+containerTop+"px",left:mapPos.left+containerLeft+"px",height:containerHeight+"px",width:containerWidth+"px"})}else if(isReportPage()){seeListPopup.css({top:0,left:0,right:0,position:"relative",margin:"auto",width:"100%"});var callback=function(){alerter.popup({content:seeListPopup,width:996,addCancel:false,buttons:[],customDialogClass:"clone-alert--see-list"});$(".scrollTableContainer").scrollLeft(0)}}var isReport=isReportPage();if(P.instances.pagePopUp==null||isReport){var opts=null;if(isReport){opts={noClose:true}}P.instances.pagePopUp=new PopUp(opts)}if(P.instances.rPins==null||isReport){P.instances.rPins=new ReportPins}b.getMarkersWithin(set,function(markers){var count=0;if(!(markers[0]instanceof PMarker)){count=markers[0]}else if(markers[0]instanceof PMarker&&!markers[0].isPoly){count=markers.length}var label="";var typeid=null;var bid=null;var polyid=null;if(b instanceof PPlace){label=b.getLabel();typeid=b.getType().id;bid=b.id;polyid=b.polysetid;mapstates.setCurrentPlace(b)}var radiusObj=null;if(b instanceof PRadius){radiusObj=b}if(set.displayfiltergroups){P.instances.rPins.loadWithSet(label,set,bid,"",count,null,typeid,polyid,radiusObj,callback)}else{P.instances.rPins.load(label,set.id,set.type,set.name,bid,"",count,null,typeid,polyid,radiusObj,callback)}})}function showValuesListPopup(boundary,ind,type,placesWithin,period){var b=boundary;if(!isSubscriber()){subscribeAlert();return}var seeListPopup=$("#seeListPopup");if(seeListPopup.length==0){var seeListPopup=$("<div />");seeListPopup.attr("id","seeListPopup");seeListPopup.addClass("chartContainer");seeListPopup.css({position:"absolute","z-index":71});seeListPopup.html('<div id="popup" class="popup"></div>');$("body").append(seeListPopup)}else{seeListPopup.show()}if($("#reportPlaces").length==0){var content=$("<div />");content.attr("id","reportPlaces");content.addClass("reportPlaces");content.html('<div id="smallTitle" class="smallTitle"></div>'+'<div id="bigTitle" class="bigTitle"></div>'+'<div id="tableContainer">'+'<div class="scrollTableContainer"></div>'+"</div>"+'<div class="pageNav">'+'<div class="pageLink">'+'<a onclick="P.instances.rPlaces.changePage(0);">&lt;&lt;</a>'+"</div>"+'<div class="pageLink">'+'<a onclick="P.instances.rPlaces.changePage(P.instances.rPlaces.currentPage - 1);">&lt;</a>'+"</div>"+'<div id="pageNums" class="pageNums"></div>'+'<div class="pageLink">'+'<a onclick="P.instances.rPlaces.changePage(P.instances.rPlaces.currentPage + 1);">&gt;</a>'+"</div>"+'<div class="pageLink">'+'<a onclick="P.instances.rPlaces.changePage();">&gt;&gt;</a>'+"</div>"+"</div>");$("body").append(content)}if(PEnvironment.pageName=="maps"||PEnvironment.pageName=="analytics"||PEnvironment.pageName=="widget"){var mapPos=$("#map").offset();var mapSize=[$("#map").height(),$("#map").width()];var containerHeight=Math.floor(mapSize[0]*.8);var containerWidth=Math.floor(mapSize[1]*.8);var containerTop=Math.floor((mapSize[0]-containerHeight)/2);var containerLeft=Math.floor((mapSize[1]-containerWidth)/2);seeListPopup.css({top:mapPos.top+containerTop+"px",left:mapPos.left+containerLeft+"px",height:containerHeight+"px",width:containerWidth+"px"})}else if(PEnvironment.pageName=="report_generate"){seeListPopup.css({top:0,left:0,right:0,position:"relative",margin:"auto",width:"100%"});var callback=function(){alerter.popup({content:seeListPopup,width:996,addCancel:false,buttons:[],customDialogClass:"clone-alert--see-list"});$(".scrollTableContainer").scrollLeft(0)}}var isReport=isReportPage();if(P.instances.pagePopUp==null||isReport){var opts=null;if(isReport){opts={noClose:true}}P.instances.pagePopUp=new PopUp(opts)}if(P.instances.rPlaces==null||isReport){P.instances.rPlaces=new ReportPlaces}var boundaryType="gb";if(b.typeid==0){boundaryType="gbc"}else if(b.typeid==95){boundaryType="gbp"}if(period==null){period=ind.getPeriod()}P.instances.rPlaces.loadAfterLoadingIndicator(boundaryType,b.id,ind.getID(),type.getId(),period,b.getLabel(),50,placesWithin,ind,b,callback)}function isReportPage(){return PEnvironment.pageName=="report_generate"||PEnvironment.pageName=="report_widget"}function getCircle(miles,centerpoint){dist=miles*1609.344;var radiusX=centerpoint.moveBy("0 1N",dist);var radiusY=centerpoint.moveBy("90 1N",dist);var xRadiusMetres=radiusX.lat()-centerpoint.lat();var yRadiusMetres=radiusY.lng()-centerpoint.lng();var pointyeast=centerpoint.lng()+yRadiusMetres;var pointywest=centerpoint.lng()-yRadiusMetres;var pointxsouth=centerpoint.lat()-xRadiusMetres;var pointxnorth=centerpoint.lat()+xRadiusMetres;var sw=new PLatLng(pointxsouth,pointywest);var ne=new PLatLng(pointxnorth,pointyeast);circlepoints=[];for(var a=0;a<361;a+=5){var aRad=a*(Math.PI/180);var pointx=centerpoint.lat()+xRadiusMetres*Math.cos(aRad);var pointy=centerpoint.lng()+yRadiusMetres*Math.sin(aRad);var p=new PLatLng(pointx,pointy);circlepoints.push(p)}var cpoint=new PLatLngBounds(sw,ne);var obj={circlepoints:circlepoints,cpoint:cpoint};return obj}function drawRadius(miles,centerpoint){var c=getCircle(miles,centerpoint);var circlepoints=c.circlepoints;var cpoint=c.cpoint;map.removeOverlay(poly);poly=new PPolygon(circlepoints,polycolor,polyweight,polyopacity,polyfill);map.setCenterBounds(cpoint);map.addOverlay(poly);return poly}function setDefaultSubwayFilters(set,f){var filters=[];if(f){f=f["Line"];for(var i=0;i<f.length;i++){if(i==0)continue;filters.push(f[i])}var cfilter=f[0];var name=cfilter.name}else{filters=set.filtersbyicons;var name=set.filtersbyicons[0].name}set.permanentFilter=true;set.setFiltersByIcons(filters,set.colorcodes);set.filtergroups[name]=[];set.filtergroups[name].push(set.displayfiltergroups[name][0]);if(isCBClone()){if(set.id==125800){var id=overlaySetUtil.getFilterIds([set]);session.put("ofilters",id)}}}function isCultureBlocksSubwayDataset(set){if(set.id==125750||set.id==125800){return true}return false}function updateLegendPositionOnMap(){if(isWidgetPage()){return}var $legends=$(".legend").not(".legend--boundaries");$legends.addClass("legend--docked");$legends.css({top:"10px",left:"auto",right:"auto"});var num=10;var pos="left";var neg="";if($legends.css("float")=="right"||isCBClone()){neg="-";num=65}$legends.each(function(){$(this).css("top","10px");$(this).css(pos,neg+num+"px");if(isCBClone()){if($(this).attr("class").indexOf("indicator")!=-1||$(this).attr("class").indexOf("analytics")!=-1){return}}num=num+10})}function hasGlobalIndListBubble(){var r=false;if(typeof globalIndListBubble!="undefined"&&globalIndListBubble!=null){r=true}return r}function showInfoWindowFromUrl(params,place){if(!params){var params=getUrlParams()}if(params["iwtype"]=="identify"){if(params["i"]&&!map.getIndicator()){return}else if(params["m0i"]&&!map.getLegendMerger().areAllIndicatorsOnMap()){return}else if(params["o"]&&map.getOverlaySets().length!=params["o"].split(",").length){return}else{PMIdentificationModule.showInfoWindow(params)}}else if(params["iwtype"]==P.constants.infoWindowTypeAddress){var searchString=decodeURIComponent(params["place"]);var matches=/^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/.exec(searchString);if(matches){var lat=parseFloat(matches[1]);var lng=parseFloat(matches[3]);if(lat>=90||lat<=-90||lng>=180||lng<=-180){self.displayAlert('"<b>'+query+'</b>" is not a valid latitude/longitude.');return}var address=new PAddress(lat+","+lng,lng,lat);var html=""+lng+", "+lat;addMarkerWindow(html,address)}else{geocoder.getLocations(params["place"],function(places){if(places instanceof PAddress){if(places.wasFound()){var html=""+places.addr;addMarkerWindow(html,places)}}})}}}function checkForSecondHeaderRow(hideMenu){var minWidth=500;var $column=$(".column__title");var $c2=$(".content__header__level2");var ind=P.instances.map.getIndicator();if(!hideMenu&&ind){if($("body").width()<minWidth){$(".content__header").addClass("flat-bg");$c2.show();$c2.append($column)}else{$c2.hide();var $c=$(".column__menu-toggle");if($c.length){$(".column__menu-toggle").after($column)}else{$(".content__header").first().prepend($column)}$(".content__header").removeClass("flat-bg")}}else{$c2.hide();$(".content__header").removeClass("flat-bg")}}function loadLocationFromUrl(){var params=getUrlParams();if(params["zip"]||params["zipcode"]){var ptype=PPlaceType.ZIP;var zip=params["zip"]||params["zipcode"];var t="";if(params["county"]){ptype=PPlaceType.COUNTY;t=params["county"]+", "+state}else if(params["city"]){ptype=PPlaceType.CITY;t=params["city"]+", "+state}else if(params["cbsa"]){ptype=PPlaceType.CBSA;t=params["cbsa"]+", "+state}else{ptype=PPlaceType.ZIP;if(PEnvironment.productId==1395){ptype=PPlaceType.ZCTA}t=zip}var that=this
;geocoder.getPlace(t,function(places){map.refresh();var place=places[0];map.setCenterBounds(place.getBounds());addPolygons(that.map,place)},null,null,[ptype])}else if(params["state"]){var ptype=PPlaceType.STATE;var state=params["state"];var t="";if(params["county"]){ptype=PPlaceType.COUNTY;t=params["county"]+", "+state}else if(params["city"]){ptype=PPlaceType.CITY;t=params["city"]+", "+state}else if(params["cbsa"]){ptype=PPlaceType.CBSA;t=params["cbsa"]+", "+state}else{ptype=PPlaceType.STATE;t=state}var that=this;geocoder.getPlace(t,function(places){map.refresh();if(places==null||places.length<1){return}var place=places[0];map.setCenterBounds(place.getBounds());addPolygons(that.map,place)},null,2,[ptype])}}function buildFilterIconOptionsIFF(overlaySet,displayFilterGroup,filter){var iconOptions=null;if(overlaySet.isIFFDataset()){if(overlaySet.id==123100||overlaySet.id==143400||overlaySet.id==147950){if(displayFilterGroup.displayName=="School Type_HIDE"){switch(filter.displayName){case"Traditional District":iconOptions={icon:PinIcons.circle,shape:"circle"};break;case"Instrumentality Charter":iconOptions={icon:PinIcons.triangle,shape:"triangle"};break;case"Non-Instrumentality Charter":iconOptions={icon:PinIcons.el,shape:"el"};break;case"Independent 2-R Charter":iconOptions={icon:PinIcons.square,shape:"square"};break;case"Private":iconOptions={icon:PinIcons.diamond,shape:"diamond"};break}}else if(displayFilterGroup.displayName=="Accountability Determination"){switch(filter.displayName){case"Color Code All":iconOptions={color:"darkgreen"};break;case"Significantly Exceeds Expectations":iconOptions={icon:PinIcons.square_darkgreen,color:"darkgreen"};break;case"Exceeds Expectations":iconOptions={icon:PinIcons.square_green,color:"green"};break;case"Meets Expectations":iconOptions={icon:PinIcons.square_yellow,color:"yellow"};break;case"Meets Few Expectations":iconOptions={icon:PinIcons.square,color:"orange"};break;case"Fails to Meet Expectations":iconOptions={icon:PinIcons.square_red,color:"red"};break;case"Alternate Rating - Satisfactory Progress":iconOptions={icon:PinIcons.square_pink,color:"pink"};break;case"Alternate Rating - Needs Improvement":iconOptions={icon:PinIcons.square_darkpurple,color:"darkpurple"};break;case"No Overall Accountability Rating":iconOptions={icon:PinIcons.square_darkblue,color:"darkblue"};break}}}else if(overlaySet.id==139700||overlaySet.id==149900||overlaySet.id==160400){if(displayFilterGroup.displayName=="School Type_HIDE"){switch(filter.displayName){case"District, neighborhood":iconOptions={icon:PinIcons.circle,shape:"circle"};break;case"District, magnet/citywide":iconOptions={icon:PinIcons.triangle,shape:"triangle"};break;case"District, selective":iconOptions={icon:PinIcons.el,shape:"el"};break;case"Charter":iconOptions={icon:PinIcons.square,shape:"square"};break;case"Private":iconOptions={icon:PinIcons.diamond,shape:"diamond"};break}}else if(displayFilterGroup.displayName=="Accountability Determination"){switch(filter.displayName){case"Color Code All":iconOptions={color:"darkgreen"};break;case"Accredited with Distinction":iconOptions={icon:PinIcons.square_darkgreen,color:"darkgreen"};break;case"Accredited":iconOptions={icon:PinIcons.square_green,color:"green"};break;case"Provisional":iconOptions={icon:PinIcons.square_yellow,color:"yellow"};break;case"Unaccredited":iconOptions={icon:PinIcons.square_red,color:"red"};break;case"No Overall Accountability Rating":iconOptions={icon:PinIcons.square_darkblue,color:"darkblue"};break}}}else if(overlaySet.id==140850||overlaySet.id==150800){if(displayFilterGroup.displayName=="School Type_HIDE"){switch(filter.displayName){case"District":iconOptions={icon:PinIcons.circle,shape:"circle"};break;case"Charter":iconOptions={icon:PinIcons.square,shape:"square"};break;case"Private":iconOptions={icon:PinIcons.diamond,shape:"diamond"};break}}else if(displayFilterGroup.displayName=="Accountability Determination"){switch(filter.displayName){case"Color Code All":iconOptions={color:"darkgreen"};break;case"A":iconOptions={icon:PinIcons.square_darkgreen,color:"darkgreen"};break;case"B":iconOptions={icon:PinIcons.square_green,color:"green"};break;case"C":iconOptions={icon:PinIcons.square_yellow,color:"yellow"};break;case"D":iconOptions={icon:PinIcons.square,color:"orange"};break;case"F":iconOptions={icon:PinIcons.square_red,color:"red"};break;case"Insufficient Data to Rate":iconOptions={icon:PinIcons.square_darkblue,color:"darkblue"};break}}}else if(overlaySet.id==155200||overlaySet.id==156800||overlaySet.id==157050){if(displayFilterGroup.displayName=="School Type_HIDE"){switch(filter.displayName){case"Traditional District":iconOptions={icon:PinIcons.circle,shape:"circle"};break;case"District, charter":iconOptions={icon:PinIcons.diamond,shape:"diamond"};break;case"NPO/HEI Charter":iconOptions={icon:PinIcons.square,shape:"square"};break;case"Independent":iconOptions={icon:PinIcons.triangle,shape:"triangle"};break;case"District, other":iconOptions={icon:PinIcons.el,shape:"el"};break}}else if(displayFilterGroup.displayName=="MMR Designation"){switch(filter.displayName){case"Color Code All":iconOptions={color:"darkgreen"};break;case"Reward":iconOptions={icon:PinIcons.square_darkgreen,color:"darkgreen"};break;case"Celebration Eligible":iconOptions={icon:PinIcons.square_green,color:"green"};break;case"No Designation":iconOptions={icon:PinIcons.square_yellow,color:"yellow"};break;case"Continuous Improvement":iconOptions={icon:PinIcons.square,color:"orange"};break;case"Focus":iconOptions={icon:PinIcons.square_red,color:"red"};break;case"Priority":iconOptions={icon:PinIcons.square_darkpurple,color:"darkpurple"};break;case"No Performance Rating":iconOptions={icon:PinIcons.square_blue,color:"blue"};break}}}}return iconOptions}function getAddressBubbleContent(address){var map=P.instances.map;var $div=$("<div />",{class:"address-content"});var $s=$("<span />",{class:"address",html:address});$div.append($s);var $a=$("<a />",{class:"clear-point",html:"(Clear)"});$a.mousedown(function(){session.remove("lng");session.remove("lat");session.remove("place");map.removeOverlay(map.currentAddressMarker);map.closeInfoWindow()});$div.append($a);return $div}function initGoogleMap(initType){P.instances.googleMap=new P.GoogleMap(initType);P.instances.googleMap.load()}MapOptions=function(data){this.layersByName={};this.layersByDefId={};this.optionLayersByName={};this.defaultMapOptionsOn={};this.data=data;var layers=this.data.layers;for(var k in layers){var v=layers[k];this[k]=new PMapLayer(v);this[k].constant=k;if(v.definition_id!=null){this[k].definition_id=v.definition_id;if(this.layersByDefId[v.definition_id]==null){this.layersByDefId[v.definition_id]=[]}this.layersByDefId[v.definition_id].push(this[k])}if(v.copyright!=null){this[k].addCopyright(copyrights[v.copyright])}if(v.name!=null){this[k].name=v.name;this.layersByName[v.name]=this[k]}}this.mapLayerLabels=[];for(var i=0;i<this.data.allOptionLayers.length;i++){var l=this.data.allOptionLayers[i];if(l.label_constant){this.mapLayerLabels[l.name]=this[l.label_constant]}this.optionLayersByName[l.name]=l}this.mapOptionsOn={};this.constantLayers=[this.BASE,this.POLY,this.TMINORROADS,this.TPOINTLINE,this.POLY_LABEL,this.POINTLINE_LABEL,this.TLABEL,this.NEIGHBORHOOD,this.CITIES];for(var i=0;i<this.constantLayers.length;i++){this.constantLayers[i].allowed=true;this.constantLayers[i].display=true}this.defaultMapLayers=[].concat(this.constantLayers);var labels=[];var holeLayer=null;for(var i=0;i<data.allOptionLayers.length;i++){var layer=data.allOptionLayers[i];var l=this[layer.constant];if(l.allowed==false){continue}if(isCBClone()&&l.name.indexOf("_hole")!=-1){holeLayer=l;continue}if(!this.isConstantLayer(l)){this.defaultMapLayers.splice(6,0,l)}var label=this.mapLayerLabels[l.name];if(label){label.off();labels.push(label)}if(layer.on){l.on();if(label){label.on()}this.defaultMapOptionsOn[l.name]=l;this.mapOptionsOn[l.name]=true}else{l.off()}}for(var i=0;i<labels.length;i++){var l=labels[i];if(!this.isConstantLayer(l)){this.defaultMapLayers.push(l)}}if(holeLayer){holeLayer.on();this.defaultMapLayers.push(holeLayer)}this.layerCategories=this.data.layerCategories;if(this.data.nonCategorizedLayers){this.nonCategorizedLayers=this.data.nonCategorizedLayers}if(this.data.mapToolLayers){this.mapToolLayers=this.data.mapToolLayers}delete this.data};MapOptions.prototype.getMapLayersByDefinitionId=function(defId){return this.layersByDefId[defId]};MapOptions.prototype.getMapLayersByName=function(name){return this.layersByName[name]};MapOptions.prototype.addLayer=function(layer){if(!this[layer.name]){return}var bn=layer.name;if(bn=="pp2_poly"){return}this[bn]=new PMapLayer;this[bn].name=bn;this[bn].constant=layer.constant;this[bn].title=layer.title?layer.title:"test";if(layer.maxScale){this[bn].maxScale=layer.maxScale}if(layer.minScale){this[bn].minScale=layer.minScale}this[bn].off();PMapType.DEFAULT.addMapLayer(this[bn]);var labellayer=this.mapLayerLabels[layer.name];if(labellayer){var ln=labellayer.name;this[ln]=new PMapLayer;this[ln].name=ln;this[ln].constant=labellayer.constant;this[ln].title=layer.title;if(labellayer.maxScale){this[ln].maxScale=labellayer.maxScale}else if(layer.maxScale){this[ln].maxScale=layer.maxScale}if(labellayer.minScale){this[ln].minScale=labellayer.minScale}else if(layer.minScale){this[ln].minScale=layer.minScale}this[ln].off();PMapType.DEFAULT.addMapLayer(this[ln]);this.mapLayerLabels[bn]=this[ln]}};MapOptions.prototype.isConstantLayer=function(l){var layers=this.constantLayers;for(var i=0;i<layers.length;i++){if(layers[i]==l){return true}}return false};MapOptions.prototype.getMapOptionsOnMap=function(){var mapOptions=[];for(mapOption in this.mapOptionsOn){mapOptions.push(this.getMapLayersByName(mapOption))}return mapOptions};MapOptions.prototype.getMapOptionsOnMapNames=function(){var mapOptions=[];for(mapOption in this.mapOptionsOn){mapOptions.push(mapOption)}return mapOptions};MapOptions.prototype.getSessionMapOptions=function(){var mapOptions=[];var layers=this.getMapOptionsOnMap();var def=this.defaultMapOptionsOn;for(var i=0;i<layers.length;i++){var l=layers[i];if(l.isOn()&&l!=def[l.name]){mapOptions.push(l.name)}}for(var n in def){var l=def[n];if(!l.isOn()){mapOptions.push(l.name+":"+l.isOn())}}return mapOptions};function mapsPageLoader(){if(P.WKPrint.isPrintPage()===true){var printpage=new PrintPageSetup;printpage.setUpPrintPage()}var slideComplete={complete:function(){$(window).resize()}};function resetMap(){P.instances.map.mapOptions.setToDefault();P.instances.map.getLegend().setNumberOfBreaks(DEFAULT_NUMBREAKS);if(widget){widget.clear()}clearLocation();if(polyCreator){polyCreator.reset();if(polyCreator.dropdown){polyCreator.dropdown.reset()}if(polyCreator.isBuildOn()){toggleCustomRegion()}}P.instances.map.clearOverlays();P.instances.map.clearOverlaySets();if(datasetSearch!=null){datasetSearch.reset()}if(P.instances.map.getInfoWindow()){P.instances.map.closeInfoWindow()}session.remove("curZoom");session.remove("curLat");session.remove("curLng");session.removeAllRelevant();initialLoad=true;P.instances.map.setCenter(new PLatLng(getDefaultMapLat(),getDefaultMapLng()),getDefaultMapZoom());resizeMapContainer();$window.trigger(P.events.MAP_RESET)}function resizeMapContainer(){$mapContainer.css("height",$window.height()-$mapContainer.offset().top-$(".content__footer").height());P.instances.map.kamap.resize();if(P.instances.map!==undefined&&P.instances.map.kamap!==undefined){if(initialLoad==true){initialLoad=false;initializeMapLocation()}}trfLegendBreaks.adjustMaxHeight();$window.trigger(P.events.MAP_RESIZED)}function initializeGlobals(){if(productProperty.exists("min_zoom")){P_SCALES_DEFAULT=P_SCALES_NORMAL.slice(0,productProperty.getValue("min_zoom"));PMapType.DEFAULT.setScales(P_SCALES_DEFAULT)}if(productProperty.exists("max_zoom")){P_SCALES_DEFAULT=P_SCALES_NORMAL.slice(P_SCALES_NORMAL.length-productProperty.getValue("max_zoom"),P_SCALES_NORMAL.length);PMapType.DEFAULT.setScales(P_SCALES_DEFAULT)}map=new PMap(document.getElementById("map"));map.getLegend().setNumberOfBreaks(DEFAULT_NUMBREAKS);P.instances.map.mapOptions=new TrfMapBoundaries($(".map-boundaries-menu"));P.instances.map.addControl(new PLargeMapControl);P.instances.map.enableDoubleClickZoom();P.instances.map.enableScrollWheelZoom();P.instances.map.disableKeyboard();$("#map").append($("#working_spinner"));printTemplate="PolicyMapMapPage";pmToolbar=new Toolbar;if(productProperty.exists("user_preference")){userPreference.activate()}}function updateMapTitleAndLegendHeader(indicator){if(typeof indicator==="object"){var label=indicator.getFullLabel()+'<span class="is-dcp-hidden"> ('+indicator.id+")</span>";var more=indicator.getDescription();var sources=indicator.getSources();$mapTitle.find(".title").html(label);$indicatorLegend.find(".legend__title__content").text(indicator.displayName);$indicatorLegend.find(".legend__title").show();$indicatorLegend.find(".legend__title__source").show();if(sources.length>1){more+=" (See data directory for "+indicator.getSourceList(true)+".)"}else if(sources.length===1){var sourceURL=indicator.getSourceURL(sources[0]);if(sourceURL!==null){more+=" <a class='dataLink' target='_blank' href='"+sourceURL+"'>(see data directory)</a>"}if(!sources[0].display||!sources[0].name){$indicatorLegend.find(".legend__title__source").hide()}}$(".content__header__additional-info__content p").html(more);$mapTitle.slideDown(slideComplete)}else{hideContentHeader()}}function updateMapPosition(indicator){var center,zoom;if(session.get("place")&&session.get("lng")&&session.get("lat")&&session.get("zoom")){center=new PLatLng(session.get("lat"),session.get("lng"));zoom=session.get("zoom")}else{center=P.instances.map.getCenter();zoom=P.instances.map.getZoom()}var mo=P.instances.map.mapOptions;if(mo){mo.setShowCurrentElement();if(mo.isCurrentOn()){mo.showLayerForCurrentView()}}mapstates.add(new PMapState(center,zoom,indicator,null,mapstates.currentplace,session.get("place")),prevmaps)}function initializeLegend(){indicatorLegend=widget=new PTRFIndicatorLegend(map,P.instances.map.getLegend(),{enableToggle:true,enableShade:true,enableBreaks:true});indicatorBreaks=indicatorLegend.getIndicatorBreaks();indToggle=indicatorLegend.getIndicatorToggle();legendContainer=new PLegendContainer($indicatorLegend);indicatorLegend.addListener("refresh",legendContainer.show,legendContainer);indicatorLegend.addListener("clear",legendContainer.hide,legendContainer);indicatorLegend.addListener("changed",updateMapTitleAndLegendHeader);trfLegendIndicators=new TrfLegendIndicators($indicatorLegend);indToggle.addListener("refresh",trfLegendIndicators.refresh,trfLegendIndicators);indToggle.addListener("clear",trfLegendIndicators.clear,trfLegendIndicators);trfLegendBreaks=new TrfLegendBreaks($(".legend__breakdown"),$("#legend__shading__ranges"));indicatorBreaks.addListener("refresh",trfLegendBreaks.refresh,trfLegendBreaks);indicatorBreaks.addListener("clear",trfLegendBreaks.clear,trfLegendBreaks);trfLegendShadeBy=new TrfLegendShadeBy($(".legend__shading__shaded-by"),$(".legend__title__source__content"),$("#legend__shading__ranges"));indicatorShade=indicatorLegend.getIndicatorShade();indicatorShade.addListener("refresh",trfLegendShadeBy.update,trfLegendShadeBy);indicatorShade.addListener("clear",trfLegendShadeBy.clear,trfLegendShadeBy);trfLegendShadeBy.addListener("change",indicatorShade.changeShade,indicatorShade);legendContainer.init();map.addListener("setindicator",function(indicator){if(indicator.hasBubbleOptions()){indicator.loadBubbleIndicators()}updateLegendPositionOnMap();P.instances.map.getLegend().clearStoredScale();if(indicator.breakid==P_BREAKTYPE_EXACT_VALUE_ID||indicator.breakid==P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID){trfLegendBreaks.disableColorEditToggle()}else{trfLegendBreaks.enableColorEditToggle();trfLegendBreaks.enableRangesEditToggle()}})}function initializeCustomRegions(){polygonOptions=new PPolyCreatorOptions;polygonOptions.poly.weight=1;polygonOptions.poly.opacity=.5;polyCreator=polycreator=new PPolyCreator(polygonOptions);polyCreator.boundaryWidget=new PPolyCreatorBoundaryWidget(polyCreator);polyCreator.circleWidget=new PPolyCreatorCircleWidget(polyCreator);polyCreator.assembleInfoWidget=new PPolyCreatorAssembleInfoWidget(polyCreator);trfCustomRegions=new TrfCustomRegionsMenu(polyCreator,session);P.instances.trfCustomRegions=trfCustomRegions;trfCustomRegions.once("change",function loadRegionFromSession(){var boo=false;if(session.hasCenterAndZoom()){boo=true}var cids=session.get("cp");if(cids&&isSubscriber()){_.each(cids,function(customRegionId){trfCustomRegions.addCustomRegionById(customRegionId,boo)})}})}var $mapContainer=$("#map");var $window=$(window);var $indicatorLegend=$(".legend--indicator");var $mapHeaderToggle=$(".content__header__additional-info__toggle");var $mapTitle=$(".content__header");var indicatorLegend;var indicatorBreaks;var indToggle;var legendContainer;var trfLegendIndicators;var trfLegendBreaks;var trfLegendShadeBy;var indicatorShade;var debug=new P.Debug;debug.override("MPL");var initialLoad=true;var polygonOptions;var polyCreator;var trfCustomRegions;var taxonomyMenu;var dataPointsLegend;session.checkUrl();if(promotePlatformRebuild()){platformRebuildPopup=new PlatformRebuildPopup}var termsOfUse=new TermsOfUse;initializeGlobals();taxonomyMenu=new TaxonomyMenu($(".taxonomy"),$(".taxonomy-menu"),debug,map);dataPointsLegend=new TrfDataPointsLegend($("#data-points-legend"),map);var searchOptions={taxonomyMenu:taxonomyMenu};initializeSearchForm(searchOptions);initializeLegend();resizeMapContainer();disableWheelScrollPropagation(".taxonomy-menu__data-layers__column, .my-data-menu__favorites__content, .my-data-menu__shared-data__content, .legend__breakdown__container, .custom-regions-menu__content, .map-boundaries__national-boundaries__content, .map-boundaries__provincial-boundaries__content, .legend__data-points__category-item__filter-groups, .legend__data-points__category-item__filters");disableWheelScrollPropagation(".taxonomy-menu__data__submenu",".taxonomy-menu__data__submenu__content");setLegendScrollWheelHoverEvents();initializeCustomRegions();showExpirationModal();if(productProperty.getValue("disable_dataloader")&&productProperty.exists("disable_dataloader_teaser")){$("#tab_dataloader").tooltip({title:productProperty.getValue("disable_dataloader_teaser"),placement:"right",container:"body",trigger:"hover focus"})}$window.resize(resizeMapContainer);$window.on(P.events.MAP_CHECK_RESIZE,resizeMapContainer);var c=$("#map");$(".legend").draggable({containment:c,handle:"h2, .legend__content",cancel:".chosen-drop, input, .no-drag",scroll:false,stack:"#map, .legend, #theInsideLayer",zIndex:Strata.OVER_MAP0,drag:function(e,ui){if($(this).position().left!==0){$(this).removeClass("legend--docked")}if(ui.position.top<0){ui.position.top=0}$(this).css("height","auto")}});$mapHeaderToggle.click(toggleMapTitleAdditionalInfo);$(".content__header .title").click(toggleMapTitleAdditionalInfo);function toggleMapTitleAdditionalInfo(){if($mapHeaderToggle.hasClass("is-maximized")){$mapHeaderToggle.removeClass("is-maximized");$(".content__header__additional-info__content").slideUp()}else{$mapHeaderToggle.addClass("is-maximized");$(".content__header__additional-info__content").slideDown()}}$(".content__header__additional-info__close").click(function(){$mapHeaderToggle.removeClass("is-maximized");$(".content__header__additional-info__content").slideUp()});$(".legend__indicators select").chosen({disable_search:true,width:"142px"});$(".content__header__close-icon").click(function(){clearMapData();session.remove("i")});$(".map-options__reset").click(resetMapAlert);$(".map-options__clear-location").click(function(event){event.preventDefault();clearLocationAlert()});$(map).bind("dragend",function(){$(".content__breadcrumbs").html("stuff")});widget.addListener("clear",hideContentHeader,this);PEvent.addListener(map,"click",function(overlay,point){debug.log(P.Debug.DEBUG,point);PMIdentificationModule.clickHandler(overlay,point)});PEvent.addListener(map,"dblclick",function(){if(map.inPreview()){return}P.instances.map.cancelIdentify=true;P.instances.map.closeInfoWindow()});PEvent.addListener(polyCreator,"addpoly",function(points){polyCreator.showSaveInfoWindow(points[0])});PEvent.addListener(polyCreator,"savepoly",function(places){polyCreator.addSavedPoly(places)});PEvent.addListener(map,"setindicator",function(){var indicator=P.instances.map.getIndicator();updateMapTitleAndLegendHeader(indicator);updateMapPosition(indicator);$window.resize()});PEvent.addListener(map,"removeindicator",function(){updateLegendPositionOnMap();$(".content__header").slideUp(slideComplete)});function hideContentHeader(){$(".content__header").slideUp(slideComplete)}PEvent.addListener(P.instances.map,"moveend",function(){session.put("curLat",P.instances.map.getCenter().lat());session.put("curLng",P.instances.map.getCenter().lng());session.put("curZoom",P.instances.map.getZoom());labelManager.updateMapLabels();navteqCounter()});PEvent.addListener(P.instances.map,"zoomend",function(){session.put("curZoom",P.instances.map.getZoom());var legend=P.instances.map.getLegend();legend.clearStoredScale();if(legend.boundaryTypeIsLocked()){if(!legend.isValidBoundaryType(P.instances.map.getLegend().getBoundaryType())){legend.unlockBoundaryType()}}P.instances.map.mapOptions.populate();if(P.instances.map.getLegend().getBoundaryType()){widget.getIndicatorShade().setOldBoundaryTypeId(P.instances.map.getLegend().getBoundaryType().id)}if(widget.legend.getBoundaryType()&&widget.getIndicatorShade().getOldBoundaryTypeId()!=widget.legend.getBoundaryType().id){widget.getIndicatorShade().setOldBoundaryTypeId(widget.legend.getBoundaryType().id)}widget.refresh();P.instances.map.refresh()});$(".map-options__map-boundaries__current-overlays-toggle").click(function(event){event.preventDefault();mapOptions(this,true)});map.addListener("setindicator",function(){taxonomyMenu.hide()});map.addListener("removeindicator",function(){taxonomyMenu.resetActiveRootNodes()});taxonomyMenu.on("show",function(){P.instances.map.mapOptions.hide();trfCustomRegions.hide()});trfCustomRegions.on("show",function(){P.instances.map.mapOptions.hide();taxonomyMenu.hide()});P.instances.map.mapOptions.on("show",function(){trfCustomRegions.hide();taxonomyMenu.hide()});var urlParams=getUrlParams();var requireUser=urlParams["ru"];if(requireUser!=null){if(!isPublicUser()&&session.get(P.constants.userId)==requireUser){taxonomyMenu.once("change",function(){loadMapFromSession()})}else{showLoginModal();$window.on(P.events.LOGGED_IN,function(){if(session.get(P.constants.userId)==requireUser){taxonomyMenu.once("change",function(){loadMapFromSession()})}$window.off(P.events.LOGGED_IN)})}}else{taxonomyMenu.once("change",function(){loadMapFromSession()})}var loginRequiredModal=urlParams["lrm"];if(loginRequiredModal!=null){var showModal=function(){if(loginRequiredModal=="myacct"){showMyAccountModal()}};if(!isPublicUser()){showModal()}else{showLoginModal();$window.on(P.events.LOGGED_IN,function(){taxonomyMenu.once("change",function(){showModal()});$window.off(P.events.LOGGED_IN)})}}}function loadMapFromSession(){var taxonomyMenu=P.instances.taxonomyMenu;var map=P.instances.map;var pLatLng=map.getCenter();var numBreaks;if(session.get("curLat")&&session.get("curLng")&&session.get("curZoom")){map.setCenter(new PLatLng(session.get("curLat"),session.get("curLng")),session.get("curZoom"))}if(typeof ria!=="undefined"){if(session.get("i")!==void 0){var urlParams=getUrlParams();var up=userPreference;var prefRampId=up.getValue(up.PREFERENCE_INDICATOR_COLOR_RAMP,session.get("i"));if(prefRampId&&urlParams["rmp"]==null){var ramp=colorRamps.getRampById(prefRampId);widget.legend.setColorRamp(ramp)}else if(session.get("rmp")&&colorRamps.getRampByName(session.get("rmp"))){widget.legend.setColorRamp(colorRamps.getRampByName(session.get("rmp")))}if(session.get("nb")){numBreaks=parseInt(session.get("nb"),10);if(!_.isNaN(numBreaks)){widget.legend.setNumberOfBreaks(numBreaks)}}selectIndicators(session.get("i"));taxonomyMenu.setActiveRootNodeByIndicatorId(parseInt(session.get("i")[0],10))}getOverlaySetsFromSession();P.instances.map.mapOptions.loadMapOptionsFromSession()}}function hex_md5(s){return binl2hex(core_md5(str2binl(s),s.length*chrsz))}function b64_md5(s){return binl2b64(core_md5(str2binl(s),s.length*chrsz))}function str_md5(s){return binl2str(core_md5(str2binl(s),s.length*chrsz))}function hex_hmac_md5(key,data){return binl2hex(core_hmac_md5(key,data))}function b64_hmac_md5(key,data){return binl2b64(core_hmac_md5(key,data))}function str_hmac_md5(key,data){return binl2str(core_hmac_md5(key,data))}function md5_vm_test(){return hex_md5("abc")=="900150983cd24fb0d6963f7d28e17f72"}function core_md5(x,len){x[len>>5]|=128<<len%32;x[(len+64>>>9<<4)+14]=len;var a=1732584193;var b=-271733879;var c=-1732584194;var d=271733878;for(var i=0;i<x.length;i+=16){var olda=a;var oldb=b;var oldc=c;var oldd=d;a=md5_ff(a,b,c,d,x[i+0],7,-680876936);d=md5_ff(d,a,b,c,x[i+1],12,-389564586);c=md5_ff(c,d,a,b,x[i+2],17,606105819);b=md5_ff(b,c,d,a,x[i+3],22,-1044525330);a=md5_ff(a,b,c,d,x[i+4],7,-176418897);d=md5_ff(d,a,b,c,x[i+5],12,1200080426);c=md5_ff(c,d,a,b,x[i+6],17,-1473231341);b=md5_ff(b,c,d,a,x[i+7],22,-45705983);a=md5_ff(a,b,c,d,x[i+8],7,1770035416);d=md5_ff(d,a,b,c,x[i+9],12,-1958414417);c=md5_ff(c,d,a,b,x[i+10],17,-42063);b=md5_ff(b,c,d,a,x[i+11],22,-1990404162);a=md5_ff(a,b,c,d,x[i+12],7,1804603682);d=md5_ff(d,a,b,c,x[i+13],12,-40341101);c=md5_ff(c,d,a,b,x[i+14],17,-1502002290);b=md5_ff(b,c,d,a,x[i+15],22,1236535329);a=md5_gg(a,b,c,d,x[i+1],5,-165796510);d=md5_gg(d,a,b,c,x[i+6],9,-1069501632);c=md5_gg(c,d,a,b,x[i+11],14,643717713);b=md5_gg(b,c,d,a,x[i+0],20,-373897302);a=md5_gg(a,b,c,d,x[i+5],5,-701558691);d=md5_gg(d,a,b,c,x[i+10],9,38016083);c=md5_gg(c,d,a,b,x[i+15],14,-660478335);b=md5_gg(b,c,d,a,x[i+4],20,-405537848);a=md5_gg(a,b,c,d,x[i+9],5,568446438);d=md5_gg(d,a,b,c,x[i+14],9,-1019803690);c=md5_gg(c,d,a,b,x[i+3],14,-187363961);b=md5_gg(b,c,d,a,x[i+8],20,1163531501);a=md5_gg(a,b,c,d,x[i+13],5,-1444681467);d=md5_gg(d,a,b,c,x[i+2],9,-51403784);c=md5_gg(c,d,a,b,x[i+7],14,1735328473);b=md5_gg(b,c,d,a,x[i+12],20,-1926607734);a=md5_hh(a,b,c,d,x[i+5],4,-378558);d=md5_hh(d,a,b,c,x[i+8],11,-2022574463);c=md5_hh(c,d,a,b,x[i+11],16,1839030562);b=md5_hh(b,c,d,a,x[i+14],23,-35309556);a=md5_hh(a,b,c,d,x[i+1],4,-1530992060);d=md5_hh(d,a,b,c,x[i+4],11,1272893353);c=md5_hh(c,d,a,b,x[i+7],16,-155497632);b=md5_hh(b,c,d,a,x[i+10],23,-1094730640);a=md5_hh(a,b,c,d,x[i+13],4,681279174);d=md5_hh(d,a,b,c,x[i+0],11,-358537222);c=md5_hh(c,d,a,b,x[i+3],16,-722521979);b=md5_hh(b,c,d,a,x[i+6],23,76029189);a=md5_hh(a,b,c,d,x[i+9],4,-640364487);d=md5_hh(d,a,b,c,x[i+12],11,-421815835);c=md5_hh(c,d,a,b,x[i+15],16,530742520);b=md5_hh(b,c,d,a,x[i+2],23,-995338651);a=md5_ii(a,b,c,d,x[i+0],6,-198630844);d=md5_ii(d,a,b,c,x[i+7],10,1126891415);c=md5_ii(c,d,a,b,x[i+14],15,-1416354905);b=md5_ii(b,c,d,a,x[i+5],21,-57434055);a=md5_ii(a,b,c,d,x[i+12],6,1700485571);d=md5_ii(d,a,b,c,x[i+3],10,-1894986606);c=md5_ii(c,d,a,b,x[i+10],15,-1051523);b=md5_ii(b,c,d,a,x[i+1],21,-2054922799);a=md5_ii(a,b,c,d,x[i+8],6,1873313359);d=md5_ii(d,a,b,c,x[i+15],10,-30611744);c=md5_ii(c,d,a,b,x[i+6],15,-1560198380);b=md5_ii(b,c,d,a,x[i+13],21,1309151649);a=md5_ii(a,b,c,d,x[i+4],6,-145523070);d=md5_ii(d,a,b,c,x[i+11],10,-1120210379);c=md5_ii(c,d,a,b,x[i+2],15,718787259);b=md5_ii(b,c,d,a,x[i+9],21,-343485551);a=safe_add(a,olda);b=safe_add(b,oldb);c=safe_add(c,oldc);d=safe_add(d,oldd)}return Array(a,b,c,d)}function md5_cmn(q,a,b,x,s,t){return safe_add(bit_rol(safe_add(safe_add(a,q),safe_add(x,t)),s),b)}function md5_ff(a,b,c,d,x,s,t){return md5_cmn(b&c|~b&d,a,b,x,s,t)}function md5_gg(a,b,c,d,x,s,t){return md5_cmn(b&d|c&~d,a,b,x,s,t)}function md5_hh(a,b,c,d,x,s,t){return md5_cmn(b^c^d,a,b,x,s,t)}function md5_ii(a,b,c,d,x,s,t){return md5_cmn(c^(b|~d),a,b,x,s,t)}function core_hmac_md5(key,data){var bkey=str2binl(key);if(bkey.length>16)bkey=core_md5(bkey,key.length*chrsz);var ipad=Array(16),opad=Array(16);for(var i=0;i<16;i++){ipad[i]=bkey[i]^909522486;opad[i]=bkey[i]^1549556828}var hash=core_md5(ipad.concat(str2binl(data)),512+data.length*chrsz);return core_md5(opad.concat(hash),512+128)}function safe_add(x,y){var lsw=(x&65535)+(y&65535);var msw=(x>>16)+(y>>16)+(lsw>>16);return msw<<16|lsw&65535}function bit_rol(num,cnt){return num<<cnt|num>>>32-cnt}function str2binl(str){var bin=Array();var mask=(1<<chrsz)-1;for(var i=0;i<str.length*chrsz;i+=chrsz)bin[i>>5]|=(str.charCodeAt(i/chrsz)&mask)<<i%32;return bin}function binl2str(bin){var str="";var mask=(1<<chrsz)-1;for(var i=0;i<bin.length*32;i+=chrsz)str+=String.fromCharCode(bin[i>>5]>>>i%32&mask);return str}function binl2hex(binarray){var hex_tab=hexcase?"0123456789ABCDEF":"0123456789abcdef";var str="";for(var i=0;i<binarray.length*4;i++){str+=hex_tab.charAt(binarray[i>>2]>>i%4*8+4&15)+hex_tab.charAt(binarray[i>>2]>>i%4*8&15)}return str}function binl2b64(binarray){var tab="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";var str="";for(var i=0;i<binarray.length*4;i+=3){var triplet=(binarray[i>>2]>>8*(i%4)&255)<<16|(binarray[i+1>>2]>>8*((i+1)%4)&255)<<8|binarray[i+2>>2]>>8*((i+2)%4)&255;for(var j=0;j<4;j++){if(i*8+j*6>binarray.length*32)str+=b64pad;else str+=tab.charAt(triplet>>6*(3-j)&63)}}return str}miniMenu=function(options){this.elem=options.elem;this.title=options.title;this.clickEvent=options.clickEvent;var div=$("<div />");div.html(this.title);div.addClass("header");this.elem.append(div);this.menu=$("<div />");this.menu.addClass("miniMenu");this.elem.append(this.menu);if(options.note){var note=$("<div />");note.addClass("menu-note");note.html(options.note);this.elem.append(note)}this.indids=options.indids;this.loadInds(this.indids)};miniMenu.prototype={loadInds:function(ids){var self=this;PIndicatorLoader.load(ids,function(inds){self.inds=inds;self.buildMenu()})},buildMenu:function(){var self=this;var inds=this.inds;var ul=$("<ul />");for(var i=0;i<inds.length;i++){var li=$("<li />");var span=$("<span />");span.html(inds[i].getLabel(true).replace("Percent ",""));li.append(span);$.data(li[0],"ind",inds[i]);li.attr("ind",inds[i]);li.click(function(){self.clickEvent($.data(this,"ind"))});ul.append(li)}$(this.menu).append(ul)}};Modal=function(){this.$=jQuery;this.$modal=null;this.$modalClose=this.$("<button />");this.$modalClose.addClass("close");this.$modalClose.attr({type:"button","data-dismiss":"modal"});var $closeSpan=this.$("<span />");$closeSpan.html("&times;");this.$modalClose.append($closeSpan);this.$defaultFooter=this.$("<button />");this.$defaultFooter.addClass("default-close-button");this.$defaultFooter.attr("data-dismiss","modal");this.$defaultFooter.text("Close");this.closeCallback=null};Modal.prototype.popup=function(options){if(typeof P!=="undefined"&&P!=null){this.$(window).trigger(P.events.MODAL_POPUP)}if(options==null||typeof options!="object"){return}if(this.$("#modal").length<1){this._create(options)}if(options.size==null){options.size="modal-md"}var $modalDialog=this.$("#modal-dialog");$modalDialog.removeClass().addClass("modal-dialog");$modalDialog.addClass(options.size);var $modalHeader=this.$("#modal-header");var $modalBody=this.$("#modal-body");var $modalFooter=this.$("#modal-footer");$modalBody.html(options.body);$modalHeader.html("");if(options.header===false){$modalHeader.addClass("no-display")}else{if(options.header==""||options.header==null){options.header="&nbsp;"}$modalHeader.removeClass("no-display");$modalHeader.html(options.header);if(options.noClose==null){var $closeSpan=this.$("<span />");$closeSpan.html("&times;");this.$modalClose.html($closeSpan);$modalHeader.append(this.$modalClose)}}$modalFooter.html("");if(options.footer===false){$modalFooter.addClass("no-display")}else{$modalFooter.removeClass("no-display");if(options.footer==null){$modalFooter.append(this.$defaultFooter)}else{if(options.footer==""){options.footer="&nbsp;"}
$modalFooter.html(options.footer)}}if(options.shadeBody!=null&&options.shadeBody===true){$modalBody.addClass("shade")}else{$modalBody.removeClass("shade")}if(options.shadeHeader!=null&&options.shadeHeader===true){$modalHeader.addClass("shade")}else{$modalHeader.removeClass("shade")}if(options.shadeFooter!=null&&options.shadeFooter===true){$modalFooter.addClass("shade")}else{$modalFooter.removeClass("shade")}this.closeCallback=null;if(options.closeCallback!=null){this.closeCallback=options.closeCallback}if(options.events!=null){for(eventName in options.events){this.$("#modal").on(eventName,options.events[eventName])}}this.$("#modal").modal()};Modal.prototype.close=function(){if(this.$modal!=null){this.$modal.modal("hide")}};Modal.prototype._create=function(options){this.$modal=this.$("<div />");this.$modal.addClass("modal fade");this.$modal.attr({id:"modal",tabindex:"-1",role:"dialog"});if(typeof options.noClose!="undefined"){this.$modal.attr({"data-keyboard":false,"data-backdrop":"static"})}var $modalDialog=this.$("<div />");$modalDialog.addClass("modal-dialog");$modalDialog.attr("id","modal-dialog");$modalDialog.attr("role","document");this.$modal.append($modalDialog);var $modalContent=this.$("<div />");$modalContent.addClass("modal-content");$modalContent.attr("id","modal-content");$modalDialog.append($modalContent);var $modalHeader=this.$("<div />");$modalHeader.addClass("modal-header");$modalHeader.attr("id","modal-header");$modalContent.append($modalHeader);var $modalBody=this.$("<div />");$modalBody.addClass("modal-body");$modalBody.attr("id","modal-body");$modalContent.append($modalBody);var $modalFooter=this.$("<div />");$modalFooter.addClass("modal-footer");$modalFooter.attr("id","modal-footer");$modalContent.append($modalFooter);this.$("body").append(this.$modal);var self=this;this.$modal.on("hidden.bs.modal",function(){if(self.closeCallback!=null){self.closeCallback();self.closeCallback=null}})};(function(window,document,undefined){var classes=[];var tests=[];var ModernizrProto={_version:"3.3.1",_config:{classPrefix:"",enableClasses:true,enableJSClass:true,usePrefixes:true},_q:[],on:function(test,cb){var self=this;setTimeout(function(){cb(self[test])},0)},addTest:function(name,fn,options){tests.push({name:name,fn:fn,options:options})},addAsyncTest:function(fn){tests.push({name:null,fn:fn})}};var Modernizr=function(){};Modernizr.prototype=ModernizrProto;Modernizr=new Modernizr;Modernizr.addTest("svg",!!document.createElementNS&&!!document.createElementNS("http://www.w3.org/2000/svg","svg").createSVGRect);Modernizr.addTest("svgfilters",function(){var result=false;try{result="SVGFEColorMatrixElement"in window&&SVGFEColorMatrixElement.SVG_FECOLORMATRIX_TYPE_SATURATE==2}catch(e){}return result});function is(obj,type){return typeof obj===type}function testRunner(){var featureNames;var feature;var aliasIdx;var result;var nameIdx;var featureName;var featureNameSplit;for(var featureIdx in tests){if(tests.hasOwnProperty(featureIdx)){featureNames=[];feature=tests[featureIdx];if(feature.name){featureNames.push(feature.name.toLowerCase());if(feature.options&&feature.options.aliases&&feature.options.aliases.length){for(aliasIdx=0;aliasIdx<feature.options.aliases.length;aliasIdx++){featureNames.push(feature.options.aliases[aliasIdx].toLowerCase())}}}result=is(feature.fn,"function")?feature.fn():feature.fn;for(nameIdx=0;nameIdx<featureNames.length;nameIdx++){featureName=featureNames[nameIdx];featureNameSplit=featureName.split(".");if(featureNameSplit.length===1){Modernizr[featureNameSplit[0]]=result}else{if(Modernizr[featureNameSplit[0]]&&!(Modernizr[featureNameSplit[0]]instanceof Boolean)){Modernizr[featureNameSplit[0]]=new Boolean(Modernizr[featureNameSplit[0]])}Modernizr[featureNameSplit[0]][featureNameSplit[1]]=result}classes.push((result?"":"no-")+featureNameSplit.join("-"))}}}}var docElement=document.documentElement;var isSVG=docElement.nodeName.toLowerCase()==="svg";function setClasses(classes){var className=docElement.className;var classPrefix=Modernizr._config.classPrefix||"";if(isSVG){className=className.baseVal}if(Modernizr._config.enableJSClass){var reJS=new RegExp("(^|\\s)"+classPrefix+"no-js(\\s|$)");className=className.replace(reJS,"$1"+classPrefix+"js$2")}if(Modernizr._config.enableClasses){className+=" "+classPrefix+classes.join(" "+classPrefix);isSVG?docElement.className.baseVal=className:docElement.className=className}}function createElement(){if(typeof document.createElement!=="function"){return document.createElement(arguments[0])}else if(isSVG){return document.createElementNS.call(document,"http://www.w3.org/2000/svg",arguments[0])}else{return document.createElement.apply(document,arguments)}}Modernizr.addTest("canvas",function(){var elem=createElement("canvas");return!!(elem.getContext&&elem.getContext("2d"))});var canvas=createElement("canvas");Modernizr.addTest("todataurljpeg",function(){return!!Modernizr.canvas&&canvas.toDataURL("image/jpeg").indexOf("data:image/jpeg")===0});Modernizr.addTest("todataurlpng",function(){return!!Modernizr.canvas&&canvas.toDataURL("image/png").indexOf("data:image/png")===0});Modernizr.addTest("todataurlwebp",function(){var supports=false;try{supports=!!Modernizr.canvas&&canvas.toDataURL("image/webp").indexOf("data:image/webp")===0}catch(e){}return supports});var toStringFn={}.toString;Modernizr.addTest("smil",function(){return!!document.createElementNS&&/SVGAnimate/.test(toStringFn.call(document.createElementNS("http://www.w3.org/2000/svg","animate")))});var omPrefixes="Moz O ms Webkit";var cssomPrefixes=ModernizrProto._config.usePrefixes?omPrefixes.split(" "):[];ModernizrProto._cssomPrefixes=cssomPrefixes;var domPrefixes=ModernizrProto._config.usePrefixes?omPrefixes.toLowerCase().split(" "):[];ModernizrProto._domPrefixes=domPrefixes;function contains(str,substr){return!!~(""+str).indexOf(substr)}function cssToDOM(name){return name.replace(/([a-z])-([a-z])/g,function(str,m1,m2){return m1+m2.toUpperCase()}).replace(/^-/,"")}function fnBind(fn,that){return function(){return fn.apply(that,arguments)}}function testDOMProps(props,obj,elem){var item;for(var i in props){if(props[i]in obj){if(elem===false){return props[i]}item=obj[props[i]];if(is(item,"function")){return fnBind(item,elem||obj)}return item}}return false}Modernizr.addTest("bgpositionshorthand",function(){var elem=createElement("a");var eStyle=elem.style;var val="right 10px bottom 10px";eStyle.cssText="background-position: "+val+";";return eStyle.backgroundPosition===val});var modElem={elem:createElement("modernizr")};Modernizr._q.push(function(){delete modElem.elem});var mStyle={style:modElem.elem.style};Modernizr._q.unshift(function(){delete mStyle.style});function domToCSS(name){return name.replace(/([A-Z])/g,function(str,m1){return"-"+m1.toLowerCase()}).replace(/^ms-/,"-ms-")}function getBody(){var body=document.body;if(!body){body=createElement(isSVG?"svg":"body");body.fake=true}return body}function injectElementWithStyles(rule,callback,nodes,testnames){var mod="modernizr";var style;var ret;var node;var docOverflow;var div=createElement("div");var body=getBody();if(parseInt(nodes,10)){while(nodes--){node=createElement("div");node.id=testnames?testnames[nodes]:mod+(nodes+1);div.appendChild(node)}}style=createElement("style");style.type="text/css";style.id="s"+mod;(!body.fake?div:body).appendChild(style);body.appendChild(div);if(style.styleSheet){style.styleSheet.cssText=rule}else{style.appendChild(document.createTextNode(rule))}div.id=mod;if(body.fake){body.style.background="";body.style.overflow="hidden";docOverflow=docElement.style.overflow;docElement.style.overflow="hidden";docElement.appendChild(body)}ret=callback(div,rule);if(body.fake){body.parentNode.removeChild(body);docElement.style.overflow=docOverflow;docElement.offsetHeight}else{div.parentNode.removeChild(div)}return!!ret}function nativeTestProps(props,value){var i=props.length;if("CSS"in window&&"supports"in window.CSS){while(i--){if(window.CSS.supports(domToCSS(props[i]),value)){return true}}return false}else if("CSSSupportsRule"in window){var conditionText=[];while(i--){conditionText.push("("+domToCSS(props[i])+":"+value+")")}conditionText=conditionText.join(" or ");return injectElementWithStyles("@supports ("+conditionText+") { #modernizr { position: absolute; } }",function(node){return getComputedStyle(node,null).position=="absolute"})}return undefined}function testProps(props,prefixed,value,skipValueTest){skipValueTest=is(skipValueTest,"undefined")?false:skipValueTest;if(!is(value,"undefined")){var result=nativeTestProps(props,value);if(!is(result,"undefined")){return result}}var afterInit,i,propsLength,prop,before;var elems=["modernizr","tspan"];while(!mStyle.style){afterInit=true;mStyle.modElem=createElement(elems.shift());mStyle.style=mStyle.modElem.style}function cleanElems(){if(afterInit){delete mStyle.style;delete mStyle.modElem}}propsLength=props.length;for(i=0;i<propsLength;i++){prop=props[i];before=mStyle.style[prop];if(contains(prop,"-")){prop=cssToDOM(prop)}if(mStyle.style[prop]!==undefined){if(!skipValueTest&&!is(value,"undefined")){try{mStyle.style[prop]=value}catch(e){}if(mStyle.style[prop]!=before){cleanElems();return prefixed=="pfx"?prop:true}}else{cleanElems();return prefixed=="pfx"?prop:true}}}cleanElems();return false}function testPropsAll(prop,prefixed,elem,value,skipValueTest){var ucProp=prop.charAt(0).toUpperCase()+prop.slice(1),props=(prop+" "+cssomPrefixes.join(ucProp+" ")+ucProp).split(" ");if(is(prefixed,"string")||is(prefixed,"undefined")){return testProps(props,prefixed,value,skipValueTest)}else{props=(prop+" "+domPrefixes.join(ucProp+" ")+ucProp).split(" ");return testDOMProps(props,prefixed,elem)}}ModernizrProto.testAllProps=testPropsAll;function testAllProps(prop,value,skipValueTest){return testPropsAll(prop,undefined,undefined,value,skipValueTest)}ModernizrProto.testAllProps=testAllProps;Modernizr.addTest("boxsizing",testAllProps("boxSizing","border-box",true)&&(document.documentMode===undefined||document.documentMode>7));Modernizr.addTest("backgroundsize",testAllProps("backgroundSize","100%",true));testRunner();setClasses(classes);delete ModernizrProto.addTest;delete ModernizrProto.addAsyncTest;for(var i=0;i<Modernizr._q.length;i++){Modernizr._q[i]()}window.Modernizr=Modernizr})(window,document);MySavedWork=function(){this.mySavedWorkUrl="/d/?id=1&ty=data&t=msw";this.ITEM_TYPE_LINK_QUERY=1;this.ITEM_TYPE_CUSTOM_REGION=2;this.ITEM_TYPE_DATALOADER_DATASET=3;this.trees={};this.$selectedTree=null;this.selectedRootKey=null;this.editModeClass="edit-mode";this.FOLDER_ICON_ID=11;this.treeOrder={order:"desc",columnName:"created"};var title=dnf.getName("mySavedWork");if(productProperty.getValue("my_pm_end_of_term")){var $end=$(".my-saved-work--end-of-term");if($end.length){title=$end.prop("outerHTML")+title;$end.remove()}}var modalProperties={header:title,footer:false,size:"modal-xlg my-saved-work--modal",events:{}};this.modalProperties=modalProperties;if(polycreator){var self=this;polycreator.addListener("renamepoly",function(){self.setDataToLoadOnOpen()});polycreator.addListener("deletepoly",function(){self.setDataToLoadOnOpen()});polycreator.addListener("savepoly",function(){self.setDataToLoadOnOpen()})}};MySavedWork.prototype.open=function(saveInfo,onPage){var self=this;var checkIfForSave=function(){if(saveInfo){self.enterSaveMode(saveInfo)}};if(!this.dataIsLoaded){this.buildModalContent();this.showLoading();this.loadData(checkIfForSave)}else{modal.popup(this.modalProperties);checkIfForSave()}};MySavedWork.prototype.buildModalContent=function(){var self=this;this.$container=$(".msw--body").empty();this.modalProperties.body=this.$container;this.$container.append($d);this.$body_container=$("<div />",{class:"body-container"});this.$container.append(this.$body_container);this.loader=$("<div />",{class:"loader notifier-popup",html:'<img src="/images/busy_transparent_purple.gif" style="display:block; margin:auto" />'});this.loader.css({display:"none",margin:"auto"});this.$body_container.append(this.loader);this.allowedReports=null;var $c=$("<div />",{class:"categories-column"});this.$categoryColumn=$c;this.$body_container.append($c);this.$treesColumn=$("<div />",{class:"trees-column"});var o={createFolder:true,createProject:true};this.options=o;var $options=$("<div />",{class:"options-container"});var self=this;var $left=$("<div />",{class:"left"});var self=this;var $right=$("<div />",{class:"right"});$options.append($left,$right,'<br class="clear" />');if(o.createFolder){var $d=$("<div />",{class:"button",html:'<img src="/images/my-saved-work/folder.svg" class="svg-icon icon category-icon--folder" /> New Folder'});$d.click(function(){self.createNewFolder()});$left.append($d)}var $b=$("<div />",{class:"button disabled",html:"Delete"});$b.click(function(){if($(this).hasClass("disabled")){return}var tree=self.getSelectedFancyTree();var nodes=tree.getSelectedNodes();self.deleteSelectedTreeNodes(nodes)});this.$deleteButton=$b;$right.append($b);var $b=$("<div />",{class:"button disabled",html:"Copy"});$b.click(function(){if($(this).hasClass("disabled")){return}var selectedNodes=self.getSelectedFancyTree().getSelectedNodes();self.enterCopyMode(selectedNodes)});this.$copyToProjectButton=$b;$right.append($b);var $b=$("<div />",{class:"button disabled",html:"Move"});$b.click(function(){if($(this).hasClass("disabled")){return}var selectedNodes=self.getSelectedFancyTree().getSelectedNodes();self.enterMoveMode(selectedNodes)});this.$moveButton=$b;$right.append($b);var $searchContainer=$("<div />",{class:"search-container"});var $button=$("<button />",{class:"search-button",html:'<span class="icon l-hide-text">Search</span>'});var $s=$("<input />",{class:"search",placeholder:"Search"});this.$search=$s;$searchContainer.append($button,$s);$right.append($searchContainer);this.$treeTitle=$("<div />",{class:"tree-title"});var $t=$("<span />",{class:"text"});this.$destinationTitle=$("<div />",{class:"destination"});var $d=$("<div />",{class:"path"});this.$destinationTitle.append($d);var $opts=$("<span />",{class:"button node-options"});$opts.click(function(e){$(document).contextmenu("open",$(this),{is_project:true})});this.$treeTitle.append($t,$opts,this.$destinationTitle);this.$treesColumn.html("");this.$treesColumn.append(this.$treeTitle);this.$treesColumn.append($options);this.$treeContainer=$("<div />",{class:"tree-container"});this.$treesColumn.append(this.$treeContainer);this.$body_container.append(this.$treesColumn,'<br class="clear" />');this.$destinationFooter=$("<div />",{class:"destination-footer"});this.$treesColumn.append(this.$destinationFooter);var $left=$("<div />",{class:"left"});var $d=$("<div />",{html:'<span class="text">Save As:</span> ',class:"save-title"});var $input=$("<input />",{value:"",class:"save-name",autofocus:true});var self=this;$input.on("keyup",function(e){self.setSaveName(this.value);if(e.which==13){self.save()}});$d.append($input);$left.append($d);this.$destinationFooter.append($left);var $s=$("<div />",{class:"select-title",html:"Select a Folder or Project"});var $d=$("<div />",{class:"path"});$left.append($s,$d);var $right=$("<div />",{class:"right"});var $buttons=$("<div />",{class:"buttons"});var $b=$("<div />",{class:"button action-button",html:"Move",click:function(){}});var self=this;var $c=$("<div />",{class:"button cancel",html:"Cancel",click:function(){if(self.getEditType()=="save"){modal.close()}self.exitEditMode()}});$buttons.append($b,$c);$right.append($buttons);this.$destinationFooter.append($right,'<br class="clear" />')};MySavedWork.prototype.getTreeByCategoryNodeId=function(id){return this.trees[id].$tree.fancytree("getTree")};MySavedWork.prototype.selectCatByNodeId=function(id){if(this.trees[id]){var $cat=this.trees[id].$category_tab;this.selectCat($cat)}};MySavedWork.prototype.clearSearch=function(){var tree=this.getSelectedFancyTree();if(tree){tree.clearFilter();this.$search.attr("value","")}};MySavedWork.prototype.selectCat=function($e){var $prevSel=this.getSelectedTreeElement();if($e==$prevSel){return}this.clearSearch();$(".category-node").removeClass("selected");$e.addClass("selected");$(".category-tree").removeClass("selected");this.uncheckSelectAll();$(".category-tree").hide();var $sel=$e.data("tree");$sel.show();$sel.addClass("selected");var t=$sel.fancytree("getTree");if(t.options.is_project){this.$treesColumn.addClass("is-project")}else{this.$treesColumn.removeClass("is-project")}t.visit(function(n){n.setSelected(false)});this.$selectedTree=$sel;this.selectedRootKey=t.options.root_key;this.disableOptions();var nodes=t.getSelectedNodes();if(nodes.length){this.enableOptions()}this.setOrderOfTable();var title=this.getNodeByNodeKey(this.selectedRootKey).name;this.$treeTitle.find(".text").html(title);this.checkNoneSavedNote();this.updateDestinationPath()};MySavedWork.prototype.setOrderOfTable=function(){var self=this;var sortFunc=function(a,b){var x=a;var y=b;if(self.treeOrder.order=="desc"){x=b;y=a}if(self.treeOrder.columnName=="name"){x=x.title.toLowerCase();y=y.title.toLowerCase()}else if(self.treeOrder.columnName=="created"){x=x.data.created==null?"":x.data.created;y=y.data.created==null?"":y.data.created}else if(self.treeOrder.columnName=="author"){x=x.data.author==null?"":x.data.author.toLowerCase();y=y.data.author==null?"":y.data.author.toLowerCase()}return x===y?0:x>y?1:-1};var $thead=this.getSelectedTreeElement().find("thead");if(self.treeOrder.columnName=="author"&&self.getSelectedFancyTree().hasAuthor==false){self.treeOrder.columnName="created";self.treeOrder.order="desc"}$thead.find(".table-order-icon").hide();var $th=$thead.find("."+self.treeOrder.columnName);$th.find(".table-order-icon").show();if(self.treeOrder.order=="asc"){$th.removeClass("order-desc");$th.find(".table-order-icon").switchClass("glyphicon-menu-down","glyphicon-menu-up")}else{$th.addClass("order-desc");$th.find(".table-order-icon").switchClass("glyphicon-menu-up","glyphicon-menu-down")}var node=this.getSelectedTreeElement().fancytree("getRootNode");node.sortChildren(sortFunc,true)};MySavedWork.prototype.getSelectedTreeElement=function(){var k=this.selectedRootKey;var $t=null;if(k&&this.trees[k]){var $t=this.trees[k].$tree}return $t};MySavedWork.prototype.getSelectedFancyTree=function(){var tree=null;var $e=this.getSelectedTreeElement();if($e){tree=$e.fancytree("getTree")}return tree};MySavedWork.prototype.getFancyTreeOfRootKey=function(key){var tree=this.trees[key];var fancytree=null;if(tree){var fancytree=tree.$tree.fancytree("getTree")}return fancytree};MySavedWork.prototype.clear=function(){this.$categoryColumn.html("");this.$treeContainer.html("");this.$selectedTree=null;this.trees={}};MySavedWork.prototype.buildTreeContent=function(){var self=this;var $column=$("<div />",{class:"column"});var $default_categories=$("<div />",{class:"default_categories"});$column.append($default_categories);this.$default_categories=$default_categories;var sections={};var $projects_container=$("<div />",{class:"projects_container"});$column.append($projects_container);this.$projects_container=$projects_container;var $h=$("<div />",{class:"header"});$h.append('<span class="title">My Projects</span>');$projects_container.append($h);if(this.options.createProject){var $s=$("<span />",{class:"button create-new glyphicon glyphicon-plus",html:""});$s.click(function(){self.createNewProject();$(this).tooltip("hide")});$s.tooltip({title:"New Project",html:true,container:"body",placement:"right"});$h.append($s)}var $note=$("<div />",{class:"saved-work-note",html:"Create a Project to organize your work."});$projects_container.append($note);var nodes=this.getRootNodes();for(var i=0;i<nodes.length;i++){var n=nodes[i];if(productProperty.getValue("disable_toolbar_share")&&n.title=="Shared Datasets"){continue}var $category=this.createCategory(n)}var nodes=this.getRootProjectNodes();for(var i=0;i<nodes.length;i++){var n=nodes[i];n.is_project=true;var $category=this.createCategory(n)}$column.append($projects_container);this.$categoryColumn.html("");this.$categoryColumn.append($column);this.checkProjectsList()};MySavedWork.prototype.setRootNodes=function(nodes){this.rootNodes=[];for(var i=0;i<nodes.length;i++){this.rootNodes.push(nodes[i])}};MySavedWork.prototype.setProjectRootNodes=function(nodes){this.rootProjectNodes=[];for(var i=0;i<nodes.length;i++){this.rootProjectNodes.push(nodes[i])}};MySavedWork.prototype.getRootNodes=function(){return this.rootNodes};MySavedWork.prototype.getRootProjectNodes=function(){return this.rootProjectNodes};MySavedWork.prototype.getFolderNodes=function(nodes){var folders=_.filter(nodes,function(node){return node.children_ids.length})};MySavedWork.prototype.getData=function(type){if(!type){var type="af"}var url=this.mySavedWorkUrl+"&act="+type;return ajax.call({url:url,dataType:"json",success:function(response){}})};MySavedWork.prototype.getRootNode=function(obj){return this.rootNodes};MySavedWork.prototype.getCategoryNodes=function(obj){return this.categoryNodes};MySavedWork.prototype.showLoading=function(){this.loader.show()};MySavedWork.prototype.hideLoading=function(){this.loader.hide()};MySavedWork.prototype.getAllowedReports=function(callback){return ajax.call({url:PEnvironment.reportUrl+"&act=l",dataType:"json",success:function(reports){if(reports&&reports.error===void 0){var html="";return reports.rpt.r}}})};MySavedWork.prototype.rename=function(nodeKey,name,update){if(update){this.showLoading()}var params="";var node=this.getNodeByNodeKey(nodeKey);var type=node.type;if(node.objectId==null){params+="&swf="+node.id}else{params+="&swi="+node.id}var url=this.mySavedWorkUrl+"&act=r&swn="+name+params;var self=this;ajax.call({url:url,dataType:"json",success:function(response){var callback=function(){if(self.isEditModeOn()){var n=self.getSelectedFancyTree().getNodeByKey(nodeKey);self.updateDestinationPath(n)}};self.loadData(callback,true);if(self.isCustomRegionItem(type)){$(window).trigger(P.events.MY_SAVED_WORK_CUSTOM_REGIONS_CHANGE)}},error:function(response){alerter.popup("There was an error renaming this item.")}})};MySavedWork.prototype.copy=function(nodes){};MySavedWork.prototype.cut=function(nodes){};MySavedWork.prototype.paste=function(nodes){};MySavedWork.prototype.createNewFolder=function($node){this.showLoading();var self=this;var $t=this.getSelectedFancyTree();var nodes=$t.getSelectedNodes();if(nodes.length==1&&nodes[0].isFolder()){var destinationId=self.getNodeByNodeKey(nodes[0].key).id;var destinationNode=nodes[0]}else{var destinationId=self.getNodeByNodeKey($t.options.root_key).id;var destinationNode=$t.rootNode}var url=this.mySavedWorkUrl+"&act=cf&swn=New Folder&swd="+destinationId;ajax.call({url:url,dataType:"json",success:function(response){var callback=function(){destinationNode.addChildren(response.msw.data);self.setOrderOfTable();var $tree=self.getSelectedFancyTree();var n=$tree.getNodeByKey(response.msw.data.key);if(destinationNode.isFolder()){destinationNode.setExpanded()}self.checkNoneSavedNote();n.editStart();if(self.isEditModeOn()){$tree.visit(function(node){node.setSelected(false)});n.setSelected(true);self.updateDestinationPath(n)}};self.loadData(callback,true)},error:function(response){alerter.popup("There was an error creating a new folder.")}})};MySavedWork.prototype.createNewProject=function($node){this.showLoading();var self=this;var url=this.mySavedWorkUrl+"&act=cf&swn=New Project";ajax.call({url:url,dataType:"json",success:function(response){var key=response.msw.data.key;self.loadData(function(){var $newProjCat=self.$projects_container.find("#"+key);self.selectCat($newProjCat);self.enterEditTextMode($newProjCat)})},error:function(response){alerter.popup("There was an error creating a new project.")}})};MySavedWork.prototype.loadData=function(callback,noRebuild){var self=this;var rebuild=true;if(noRebuild){rebuild=false}self.getData().then(function(response){var dataFancyTree=response.msw;self.getData("a").then(function(response){var dataObj=response.msw;self.dataFancyTree=dataFancyTree;self.dataObj=dataObj;self.setRootNodes(dataFancyTree.main);self.setProjectRootNodes(dataFancyTree.projects);if(rebuild){self.buildAndShowModal()}if(callback){callback()}self.dataIsLoaded=true;self.hideLoading()})})};MySavedWork.prototype.buildAndShowModal=function(){this.clear();this.buildTreeContent();this.hideLoading();if(PEnvironment.pageName=="mysavedwork"){$(".my-policymap__content").html(this.$container)}else if($("body.modal-open").length==0){var p=this.modalProperties;modal.popup(p);this.addModalEvents()}if(this.selectedRootKey){var k=this.selectedRootKey;this.selectCatByNodeId(k)}else{this.selectDefaultForPage()}var $imgs=this.$body_container.find(".svg-icon");replaceSVGs($imgs)};MySavedWork.prototype.createCategory=function(node,newProject){var $c=this.$default_categories;if(node.is_project){$c=this.$projects_container}var $cat=$("<div />",{class:"category-node",id:node.key,type:node.title});var self=this;$cat.click(function(){if($(this).hasClass("disabled")){return}self.selectCat($(this))});var iconSrc=node.icon;if(node.is_project){this.$projects_container.append($cat)}else{this.$default_categories.append($cat)}var $icon=$("<img />",{class:"svg-icon category-icon category-icon--"+node.title.toLowerCase().replace(/ /g,"-"),src:iconSrc});$cat.append($icon);var $text=$("<span />",{html:node.title,class:"category-text",title:node.title});$cat.append($text);if(node.is_project){$cat.addClass("category-node--with-options");var setTitle=function(e,elem){var t=$(elem).val()};var $input=$("<input />",{class:"text-edit",value:node.title,maxlength:50});$input.hide();$input.on("blur",function(e){self.exitEditTextMode(e,this)});$input.on("keyup",function(e){if(e.which==13){self.exitEditTextMode(e,this)}});$cat.append($input);var $opts=$("<span />",{class:"button node-options"});$opts.click(function(e){$(document).contextmenu("open",$(this),{is_project:true})});$cat.append($opts);$cat.addClass("droppable")}$c.append($cat);var self=this;$cat.droppable({tolerance:"pointer",drop:function(event,ui){var $this=$(this);var $elem=$this.data("tree");var tree=$elem.fancytree("getTree");var rootNode=tree.getRootNode();if($this.hasClass("droppable")==false||$elem==self.getSelectedTreeElement()){alerter.popup("Dropping items can only be done in Projects or within the same category the item(s) are from.")}else{var nodes=self.getSelectedFancyTree().getSelectedNodes();if(nodes.length==0){var sourceNode=$(ui.helper).data("ftSourceNode");nodes.push(sourceNode)}var projectNode=self.getNodeByNodeKey(tree.options.root_key);$.each(nodes,function(){self.copyOrMoveNode(this,projectNode.id,"m")})}}});this.createTree($cat,node)};MySavedWork.prototype.getNodeByNodeKey=function(key){return this.dataObj[key]};MySavedWork.prototype.exitEditTextMode=function(e,elem){$(elem).hide();var value=$(elem).val();var $t=$(elem).parent().find(".category-text");var oldName=$t.text();$t.text(value);$t.attr("title",value);$t.show();this.$treeTitle.find(".text").text(value);if(oldName!=value){var $elems=this.$projects_container.find(".category-node");$elems.sort(function(a,b){return $(a).text().localeCompare($(b).text())});var $container=this.$projects_container;$.each($elems,function(idx,itm){$container.append(itm)});var key=$(elem).parent().attr("id");this.rename(key,value)}};MySavedWork.prototype.enterEditTextMode=function($elem){$elem.find(".category-text").hide();var $editBox=$elem.find(".text-edit");$editBox.show();$editBox.focus()};MySavedWork.prototype.createTree=function($category,n){var self=this;var $tree=$("<table />",{class:"category-tree"});this.trees[n.title.toLowerCase()]=$tree;this.trees[n.key]={$tree:$tree,$category_tab:$category};$category.data("tree",$tree);this.$treeContainer.append($tree);var columns=[{selectAll:true,width:"510px",title:"Name",order:true},{width:"100px",title:"Created",order:true},{width:"0",title:"Author",order:true},{width:"auto",title:""}];var $colgroup=$("<colgroup />");var $thead=$("<thead />");var $tr=$("<tr />");$thead.append($tr);var $tbody=$("<tbody />");var $tr=$("<tr />");$tbody.append($tr);for(var i=0;i<columns.length;i++){var c=columns[i];$colgroup.append('<col width="'+c.width+'">');var title=c.width==0?"":c.title;var $th=$("<th />",{class:c.title.toLowerCase(),count:i});if(i==0){var $c=$("<span />",{class:"fancytree-checkbox select-all glyphicon glyphicon-unchecked",click:function(e){var b=false;if($(this).hasClass("glyphicon-unchecked")){b=true;$(this).removeClass("glyphicon-unchecked");$(this).addClass("glyphicon-check")}else{b=false;$(this).removeClass("glyphicon-check");$(this).addClass("glyphicon-unchecked")}self.getSelectedFancyTree().visit(function(n){n.setSelected(b)});e.stopPropagation()}});$th.append($c)}var $t=$("<span />",{class:"column-title",html:title});$th.append($t);if(c.order){var arrow='<span class="glyphicon glyphicon-menu-up table-order-icon hide"></span>';$th.addClass("has-order-option");$th.append(arrow)}$th.click(function(){if($(this).hasClass("has-order-option")==false){return}if(self.treeOrder.order=="asc"){self.treeOrder.order="desc"}else{self.treeOrder.order="asc"}self.treeOrder.columnName=$(this).text().toLowerCase();self.setOrderOfTable()});$thead.find("tr").append($th);$tbody.find("tr").append("<td></td>")}$tree.append($colgroup,$thead,$tbody);var children=n.children;var glyph_opts={map:{doc:"glyphicon glyphicon-file",docOpen:"glyphicon glyphicon-file",checkbox:"glyphicon glyphicon-unchecked",checkboxSelected:"glyphicon glyphicon-check",checkboxUnknown:"glyphicon glyphicon-share",dragHelper:"glyphicon glyphicon-play",dropMarker:"glyphicon glyphicon-arrow-right",error:"glyphicon glyphicon-warning-sign",expanderClosed:"glyphicon glyphicon-menu-right",expanderLazy:"glyphicon glyphicon-menu-right",expanderOpen:"glyphicon glyphicon-menu-down",folder:"glyphicon glyphicon-folder-close",folderOpen:"glyphicon glyphicon-folder-open",loading:"glyphicon glyphicon-refresh glyphicon-spin"}};$tree.fancytree({debugLevel:0,source:children,$category_tab:$category,is_project:n.is_project,root_key:n.key,checkbox:true,tooltip:true,titlesTabbable:true,quicksearch:true,extensions:["dnd","edit","glyph","table","gridnav","filter"],glyph:glyph_opts,collapse:function(event,data){var node=data.node;var deselectAll=function(children){$.each(children,function(){var n=this;n.setSelected(false);if(n.children){deselectAll(n.children)}})};deselectAll(node.children)},icon:function(event,data){if(data.node.isFolder()){}},dnd:{focusOnClick:true,dropMarkerOffsetX:30,preventVoidMoves:true,preventRecursiveMoves:true,dragStart:function(node,data){if(self.isEditModeOn()){return false}else{var sourceNodes=data.ui.helper.data("sourceNodes");$.each(sourceNodes,function(){var n=this;n.setSelected(true)});self.enterDragMode(sourceNodes);return true}},dragStop:function(node,data){self.exitEditMode()},dragEnter:function(node,data){var path=node.getKeyPath();var deny=false;var sourceNodes=data.ui.helper.data("sourceNodes");$.each(sourceNodes,function(){if(path.indexOf(this.key)!=-1){deny=true;return false}});if(deny){return false}else if(node.isFolder()){return true}else{return false}},dragLeave:function(node,data){return false},dragDrop:function(node,data){var folderId=node.data.folderId;if(data.hitMode=="before"){var n=self.getNodeByNodeKey(data.node.key);folderId=n.parentId||n.folderId}var url=null;if(folderId){var params="";if(data.otherNode.data.itemId){params+="&swi="+data.otherNode.data.itemId}else{params+="&swf="+data.otherNode.data.folderId}url=self.mySavedWorkUrl+"&act=m&&swd="+folderId+params}if(url==null){return}var sourceNodes=data.ui.helper.data("sourceNodes");var sourceNodesObj={};$.each(sourceNodes,function(){sourceNodesObj[this.key]=this});$.each(sourceNodes,function(){if(sourceNodesObj[this.parent.key]==null){self.copyOrMoveNode(this,folderId,"m")}})},initHelper:function(node,data){var tree=node.tree;var $tab=tree.options.$category_tab;if(node.selected==false){data.tree.visit(function(n){n.setSelected(false)})}
var helper=data.ui.helper,sourceNodes=data.tree.getSelectedNodes();if(!node.isSelected()){sourceNodes.unshift(node)}helper.data("sourceNodes",sourceNodes);$(".fancytree-active,.fancytree-selected",tree.$container).addClass("fancytree-drag-source");if(sourceNodes.length>1){helper.append($("<span class='fancytree-childcounter'/>").text("+"+(sourceNodes.length-1)))}helper.prepend($("<span class='fancytree-dnd-modifier'/>").text("+").hide())},updateHelper:function(node,data){var event=data.originalEvent,tree=node.tree,copyMode=event.ctrlKey||event.altKey;data.ui.helper.find(".fancytree-dnd-modifier").toggle(copyMode);$(".fancytree-drag-source",tree.$container).toggleClass("fancytree-drag-remove",!copyMode)}},filter:{autoApply:true,autoExpand:true,counter:true,fuzzy:false,hideExpandedCounter:true,hideExpanders:false,highlight:false,leavesOnly:false,nodata:true,mode:"hide"},select:function(e,data){var tree=self.getSelectedFancyTree();if(tree.getSelectedNodes().length>0){self.enableOptions()}else{self.disableOptions()}e.stopPropagation();return false},click:function(event,data){return},dblclick:function(event,data){return},edit:{maxLength:64,triggerStart:["f2","shift+click","mac+enter"],close:function(event,data){self.setOrderOfTable();if(data.save&&data.isNew){}},beforeClose:function(event,data){if(data.save){self.rename(data.node.key,data.input.val())}data.node.unselectable=false;self.enableAnchors()}},table:{indentation:20,nodeColumnIdx:0},gridnav:{autofocusInput:false,handleCursorKeys:true},createNode:function(event,data){var node=data.node,$tdList=$(node.tr).find(">td");if(node.isFolder()){}},renderColumns:function(event,data){if(data.tree.hasAuthor==null){data.tree.hasAuthor=false}var node=data.node,$tdList=$(node.tr).find(">td");var $thList=this.$container.find("th");if(node.data.accessDenied){$tdList.addClass("access-denied")}var url=node.data.url;var objectId=node.data.objectId;var $a=$tdList.eq(0).find(".fancytree-node");$a.data("node",node);var url=node.data.url;var objectId=node.data.objectId;$a.off("click").on("click",function(e){return self.addClickEventForNode(e,$(this))});var $c=$tdList.eq(0).find(".fancytree-checkbox");$tdList.eq(0).find(".fancytree-node").prepend($c);var $a=$a.clone(true);$a.removeAttr("style");$a.css("padding-left","0px");$a.html("");if(node.data.created){var t=node.data.created;var todate=new Date(t).getDate();var tomonth=new Date(t).getMonth()+1;var toyear=new Date(t).getFullYear();var date=tomonth+"/"+todate+"/"+toyear;$a.html(date)}$tdList.eq(1).html($a);var author=node.data.author;if(author){var $thList=this.$container.find("th");$thList.eq(2).addClass("has-author");$thList.eq(2).css("width","15%");$thList.eq(2).find(".column-title").html("Author");var $a=$a.clone();$a.html(author);$a.addClass("author-name");$tdList.eq(2).html($a);$tdList.eq(2).addClass("author-column");data.tree.hasAuthor=true}var $div=$("<div />",{class:"button node-options"});$div.click(function(){$(document).contextmenu("open",$(this),{isTreeNode:true})});$tdList.last().html($div);replaceSVGs($tdList.eq(0).find("img.fancytree-icon"))}}).on("nodeCommand",function(event,data){var refNode,moveMode;var tree=$(this).fancytree("getTree");var node=tree.getActiveNode();var rootNode=tree.getRootNode();if(data.cmd=="renameProject"||data.cmd=="removeProject"){var $elem=self.$projects_container.find(".selected")}else{}switch(data.cmd){case"moveUp":refNode=node.getPrevSibling();if(refNode){node.moveTo(refNode,"before");node.setActive()}break;case"moveDown":refNode=node.getNextSibling();if(refNode){node.moveTo(refNode,"after");node.setActive()}break;case"indent":refNode=node.getPrevSibling();if(refNode){node.moveTo(refNode,"child");refNode.setExpanded();node.setActive()}break;case"outdent":if(!node.isTopLevel()){node.moveTo(node.getParent(),"after");node.setActive()}break;case"open":var data=node.data;var url=data.url;if(url){node.span.click()}break;case"downloadcsv":var data=node.data;var attachment=data.attachment;if(attachment&&attachment.length){modal.close();var data=node.data;var linkUri=self.getLinkUriForItem(data);self.resetAndLoadFromSession(data,linkUri)}case"rename":node.unselectable=true;self.disableAnchors();node.editStart();break;case"renameProject":self.enterEditTextMode($elem);break;case"removeProject":var $tab=tree.options.$category_tab;var node=self.getNodeByNodeKey($tab.attr("id"));self.deleteProject(node,$tab);break;case"share":var id=node.data.objectId;var label=node.title;polycreator.sharePolyDialog(id,label);break;case"remove":self.deleteSelectedTreeNodes([node]);break;case"addChild":node.editCreateNode("child","");break;case"addSibling":node.editCreateNode("after","");break;case"cut":CLIPBOARD={mode:data.cmd,data:node};break;case"copy":self.enterCopyMode([node]);break;case"move":self.enterMoveMode([node]);break;case"clear":CLIPBOARD=null;break;case"paste":if(CLIPBOARD.mode==="cut"){CLIPBOARD.data.moveTo(node,"child");CLIPBOARD.data.setActive()}else if(CLIPBOARD.mode==="copy"){node.addChildren(CLIPBOARD.data).setActive()}break;default:alert("Unhandled command: "+data.cmd);return}}).on("keydown",function(e){var cmd=null;switch($.ui.fancytree.eventToString(e)){case"ctrl+shift+n":case"meta+shift+n":cmd="addChild";break;case"ctrl+c":case"meta+c":cmd="copy";break;case"ctrl+v":case"meta+v":cmd="paste";break;case"ctrl+x":case"meta+x":cmd="cut";break;case"ctrl+n":case"meta+n":cmd="addSibling";break;case"del":case"meta+backspace":cmd="remove";break;case"ctrl+up":cmd="moveUp";break;case"ctrl+down":cmd="moveDown";break;case"ctrl+right":case"ctrl+shift+right":cmd="indent";break;case"ctrl+left":case"ctrl+shift+left":cmd="outdent"}if(cmd){$(this).trigger("nodeCommand",{cmd:cmd});return false}});this.$search.keyup(function(e){var n,tree=self.getSelectedFancyTree(),filterFunc=tree.filterNodes,match=$(this).val();if(e&&e.which===$.ui.keyCode.ESCAPE||$.trim(match)===""){tree.clearFilter();return}var opts={autoExpand:true,mode:"hide"};n=filterFunc.call(tree,match);$("button#btnResetSearch").attr("disabled",false)}).focus();var CLIPBOARD=null;$(document).contextmenu({delegate:".node-options",addClass:"my-saved-work--contextmenu",position:function(event,ui){var pos=null;if(ui.extraData.isTreeNode){pos={my:"right top",at:"right bottom",of:ui.target}}return pos},menu:[{title:"Open",cmd:"open",addClass:"open"},{title:"Rename",cmd:"rename",addClass:"rename"},{title:"Rename",cmd:"renameProject",addClass:"rename-project"},{title:"Delete",cmd:"removeProject",addClass:"remove-project"},{title:"Delete",cmd:"remove",addClass:"remove"},{title:"Share",cmd:"share",addClass:"share"},{title:"Copy",cmd:"copy",addClass:"copy"},{title:"Move",cmd:"move",addClass:"move"},{title:"Download CSV",cmd:"downloadcsv",addClass:"downloadcsv"}],close:function(event,ui){ui.target.removeClass("open")},open:function(event,ui){ui.target.addClass("open")},beforeOpen:function(event,ui){if(ui.target.hasClass("open")){return false}var $m=ui.menu;$m.find("li").show();$m.find(".downloadcsv").hide();$m.find(".share").hide();if(ui.extraData.is_project){$m.find(".open").hide();$m.find(".remove").hide();$m.find(".rename").hide();$m.find(".share").hide();$m.find(".copy").hide();$m.find(".move").hide()}else{var node=$.ui.fancytree.getNode(ui.target);if(node.data.attachments&&node.data.attachments.length){$m.find(".downloadcsv").show();$m.find(".open").hide();$m.find(".remove").hide();$m.find(".rename").hide();$m.find(".share").hide();$m.find(".copy").hide();$m.find(".move").hide()}$m.find(".rename-project").hide();$m.find(".remove-project").hide();var d=node.data;if(self.isCustomRegionItem(d.type)&&productProperty.getValue("remove_share_region")==false){$m.find(".share").show()}$(document).contextmenu("enableEntry","paste",!!CLIPBOARD);node.setActive()}},select:function(event,ui){var that=this;setTimeout(function(){var $tree=self.getSelectedTreeElement();$tree.trigger("nodeCommand",{cmd:ui.cmd})},100)}})};MySavedWork.prototype.deleteProject=function(rootNode,$tab){var self=this;var deleteFunc=function(){var f=function(){self.selectedRootKey=null;var $selectTab=$tab.prev(".category-node");if($selectTab.length==0){$selectTab=$tab.next(".category-node")}if($selectTab.length>0){self.selectCat($selectTab)}else{self.selectDefaultForPage()}$tab.remove();self.hideLoading();self.checkProjectsList()};self.deleteNode(rootNode,f)};var text="Are you sure you want to delete this Project?";alerter.popup(text,"No","Yes",deleteFunc)};MySavedWork.prototype.enableOptions=function(){this.$deleteButton.removeClass("disabled");this.$moveButton.removeClass("disabled");this.$copyToProjectButton.removeClass("disabled");this.$deleteButton.addClass("enabled");this.$moveButton.addClass("enabled");this.$copyToProjectButton.addClass("enabled")};MySavedWork.prototype.disableOptions=function(){this.$deleteButton.addClass("disabled");this.$moveButton.addClass("disabled");this.$copyToProjectButton.addClass("disabled");this.$deleteButton.removeClass("enabled");this.$moveButton.removeClass("enabled");this.$copyToProjectButton.removeClass("enabled")};MySavedWork.prototype.getProjectsData=function(){return this.data.projects};MySavedWork.prototype.copyOrMoveNode=function(node,destId,action){var self=this;var destKey="f-"+destId;var rootNode=self.getRootNodeOfNodeKey(destKey);if(action=="m"){node.remove()}var destinationTree=self.getFancyTreeOfRootKey("f-"+rootNode.id);if(destinationTree.getNodeByKey(destKey)){var destinationNode=destinationTree.getNodeByKey(destKey)}else{var destinationNode=destinationTree.rootNode}if(node.data.itemId){params="&swi="+node.data.itemId}else if(node.data.folderId){params="&swf="+node.data.folderId}else{return}var url=this.mySavedWorkUrl+"&act="+action+"&&swd="+destId+params;this.showLoading();ajax.call({url:url,dataType:"json",success:function(response){self.loadData(null,true);destinationNode.addChildren(response.msw.new);self.setOrderOfTable();self.exitEditMode()},error:function(response){var t="copying";if(action=="m"){t="moving"}alerter.popup("There was an error in "+t+" this item.")}})};MySavedWork.prototype.deleteNode=function(n,callback){var params="";if(n.objectId){params+="&swi="+n.id}else{params+="&swf="+n.id}var type=n.type;var url=this.mySavedWorkUrl+"&act=d"+name+params;var self=this;ajax.call({url:url,dataType:"json",success:function(response){self.loadData(null,true);if(callback){callback()}var crs=response.msw.deleted[self.ITEM_TYPE_CUSTOM_REGION];if(crs.length>0){$(window).trigger(P.events.MY_SAVED_WORK_DELETE_CUSTOM_REGION,[crs])}self.checkNoneSavedNote()},error:function(response){alerter.popup("There was an error deleting this item.")}})};MySavedWork.prototype.deleteSelectedTreeNodes=function(nodes){var self=this;var f=function(){$.each(nodes,function(){var n=self.getNodeByNodeKey(this.key);self.deleteNode(n);this.remove()})};var text="Are you sure you want to delete this saved item?";if(nodes.length>1){text="Are you sure you want to delete these saved items?"}alerter.popup(text,"No","Yes",f)};MySavedWork.prototype.selectDefaultForPage=function(){var rootNodes=this.getRootNodes();var defaults={Maps:"maps",Tables:"tables","3-Layer Maps":"analytics",Reports:"reports","Saved Datasets":"dataloader"};var n=null;for(var i=0;i<rootNodes.length;i++){var n=rootNodes[i];var title=n.title;if(defaults[title]==PEnvironment.pageName){break}}this.selectCatByNodeId(n.key)};MySavedWork.prototype.isEditModeOn=function(){return this.inEditMode};MySavedWork.prototype.enterCopyMode=function(nodes){this.setEditMode("copy",nodes)};MySavedWork.prototype.enterMoveMode=function(nodes){this.setEditMode("move",nodes)};MySavedWork.prototype.enterSaveMode=function(saveInfo){this.saveInfo=saveInfo;this.setEditMode("save",null)};MySavedWork.prototype.enterDragMode=function(nodes){this.$container.addClass("drag-mode");this.setEditMode("drag",nodes)};MySavedWork.prototype.getSaveInfo=function(saveInfo){return this.saveInfo};MySavedWork.prototype.getEditType=function(){return this.editType};MySavedWork.prototype.disableAnchors=function(){modal.$modal.find("a").each(function(){var $a=$(this);var node=$a.data("node");if(node&&node.isFolder()){return}$a.attr("xhref",$(this).attr("href"));$a.removeAttr("href");$a.off("click")})};MySavedWork.prototype.enableAnchors=function(){var self=this;modal.$modal.find("a").each(function(){var $a=$(this);$a.attr("href",$(this).attr("xhref"));$a.removeAttr("xhref");$a.off("click").on("click",function(e){return self.addClickEventForNode(e,$(this))})})};MySavedWork.prototype.setEditMode=function(type,nodes){this.inEditMode=true;this.editType=type;this.clearSearch();this.disableAnchors();var isCopyOrMove=false;if(type=="copy"||type=="move"){isCopyOrMove=true}if(isCopyOrMove||type=="drag"){var tree=this.getSelectedFancyTree();if(!nodes){var nodes=tree.getSelectedNodes()}if(isCopyOrMove){var nodeTitle="";if(nodes.length>1){nodeTitle="Multiple items selected"}else{nodeTitle=nodes[0].title}var title='<div class="title">'+nodeTitle+"</div>";this.setSelectedNodes(nodes);tree.visit(function(n){n.setSelected(false)})}var $tabs=this.$default_categories.find(".category-node").not(".selected");var obj={};var getAllNodes=function(ns){$.each(ns,function(){obj[this.data.iconId]=this;if(this.children){getAllNodes(this.children)}})};getAllNodes(nodes);var cnt=0;for(var id in obj){if(id!=this.FOLDER_ICON_ID){cnt++;nodeForRoot=obj[id]}}$tabs.addClass("disabled");var allowedRootNode=null;if(cnt==1){var rootNodes=this.getRootNodes();for(var i=0;i<rootNodes.length;i++){if(rootNodes[i].iconId==nodeForRoot.data.iconId){allowedRootNode=rootNodes[i]}}}if(allowedRootNode){var $cat=this.$default_categories.find("#"+allowedRootNode.key);$cat.removeClass("disabled");$cat.addClass("allowed");$cat.addClass("droppable")}if(isCopyOrMove){this.$destinationFooter.removeClass("save-mode");this.$destinationFooter.addClass("copy-move-mode")}}else if(type=="save"){var s=this.getSaveInfo();this.$destinationFooter.find(".save-name").attr("value",s.link.name);this.setCategoryForSave();this.$destinationFooter.removeClass("copy-move-mode");this.$destinationFooter.addClass("save-mode")}var $tabs=this.$projects_container.find(".category-node");$tabs.addClass("allowed");if(type=="save"||isCopyOrMove){this.updateDestinationPath();modal.$modal.addClass(this.editModeClass)}};MySavedWork.prototype.setCategoryForSave=function(){var obj={0:["map"],1:["chart","ranks"],2:["csv"],3:["report"],4:["analytic"]};var $tabs=this.$default_categories.find(".category-node");$tabs.addClass("disabled");var self=this;$tabs.each(function(i){var flag=true;var $t=$(this);if(obj[i]){var arr=obj[i];$.each(arr,function(j){if(arr[j]==self.getSaveInfo().template){$t.removeClass("disabled");$t.addClass("allowed");self.selectCat($t);flag=false;return flag}})}return flag})};MySavedWork.prototype.setSaveName=function(name){var d=this.getSaveInfo();if(d&&d.link){d.link.name=name}};MySavedWork.prototype.save=function(callback){this.showLoading();var destNodeId=null;var n=this.getDestinationNode();if(n){destNodeId=n.id}var self=this;var data=this.getSaveInfo();var callback=function(){var f=function(){modal.close()};self.loadData(f)};linkManager.add(data.link,callback,destNodeId)};MySavedWork.prototype.setSelectedNodes=function(nodes){this.selectedEditNodes=nodes;this.setSelectedNodesStyle()};MySavedWork.prototype.getSelectedNodes=function(){return this.selectedEditNodes};MySavedWork.prototype.resetSelectedNodes=function(){this.setSelectedNodesStyle(true);this.selectedEditnodes=null};MySavedWork.prototype.setSelectedNodesStyle=function(removeHighlight){if(this.isEditModeOn()||removeHighlight){var nodes=this.getSelectedNodes();$.each(nodes,function(){if(removeHighlight){this.unselectable=false;$(this.tr).removeClass("fancytree-unselectable")}else{this.unselectable=true;$(this.tr).addClass("fancytree-unselectable")}})}};MySavedWork.prototype.getActionButton=function(destNode){return this.$destinationFooter.find(".action-button")};MySavedWork.prototype.updateActionButton=function(destNode){var $b=this.getActionButton();$b.removeClass("disabled");var type=this.editType;var text="";if(type=="move"){text="Confirm Move"}else if(type=="copy"){text="Paste"}else if(type=="save"){text="Save"}$b.html(text);var self=this;var selectedNodes=this.getSelectedNodes();$b.off("click").on("click",function(){$(this).addClass("disabled");self.showLoading();$(this).unbind("click");if(self.getEditType()=="save"){self.save()}else{$.each(selectedNodes,function(idx,node){var action=type.substr(0,1);var f=function(){self.exitEditMode()};self.copyOrMoveNode(node,destNode.id,action)})}})};MySavedWork.prototype.updateDestinationPath=function(destNode){var rootNode=this.getNodeByNodeKey(this.selectedRootKey);var rootName=rootNode.name;var pathText=rootName;if(destNode){var path=destNode.getKeyPath();var arr=path.split("/");for(var i=0;i<arr.length;i++){var n=this.getNodeByNodeKey(arr[i]);if(n){pathText+=' <span class="arrow">»</span> '+n.name}}$(destNode.tr).addClass("selected-destination");destNode=this.getNodeByNodeKey(destNode.key)}else{destNode=rootNode}this.setDestinationNode(destNode);var pre="";if(this.getEditType()=="save"){pre='<span class="text">Save To:</span> '}this.$destinationFooter.find(".path").html(pre+'<span class="names">'+dnf.getName("mySavedWork")+' <span class="arrow">»</span> '+pathText+"</span>");this.$destinationTitle.find(".path").html('<span class="names">'+dnf.getName("mySavedWork")+' <span class="arrow">»</span> '+rootName+"</span>");this.updateActionButton(destNode)};MySavedWork.prototype.exitEditMode=function(){var nodes=this.getSelectedNodes();this.resetSelectedNodes();this.inEditMode=false;this.uncheckSelectAll();this.$destinationFooter.find(".path").html("");this.enableAnchors();modal.$modal.removeClass(this.editModeClass);this.$container.removeClass("drag-mode");this.checkNoneSavedNote();var $tabs=this.$default_categories.find(".category-node").not(".selected");$tabs.removeClass("disabled");$tabs.removeClass("allowed");$tabs.removeClass("droppable");var $tabs=this.$projects_container.find(".category-node");$tabs.removeClass("allowed");this.editType=null;this.saveInfo=null};MySavedWork.prototype.setDestinationNode=function(node){this.destinationNode=node};MySavedWork.prototype.getDestinationNode=function(){return this.destinationNode};MySavedWork.prototype.getRootNodeOfNodeKey=function(key){var currentNode=this.getNodeByNodeKey(key);if(currentNode.parentId===null){return currentNode}else{var id=currentNode.parentId||currentNode.folderId;var key="f-"+id;return this.getRootNodeOfNodeKey(key)}};MySavedWork.prototype.addModalEvents=function(){var self=this;modal.$modal.off("shown.bs.modal").on("shown.bs.modal",function(e){var saveInput=$(this).find(".save-title").find("input");if(saveInput.length){saveInput.focus()}});modal.$modal.off("hidden.bs.hidden").on("hidden.bs.modal",function(e){$("body").append(self.$container)});$(window).off(P.events.MODAL_POPUP).on(P.events.MODAL_POPUP,function(e){$("body").append(self.$container)});modal.$modal.off("hide.bs.modal").on("hide.bs.modal",function(e){if(self.isEditModeOn()){self.exitEditMode();var f=function(){modal.close();self.exitEditMode()}}})};MySavedWork.prototype.checkNoneSavedNote=function(){var $t=this.getSelectedFancyTree();$c=this.$treesColumn;var $n=$c.find(".saved-work-note");if($n){$n.remove()}if($t.count()==0){var treeOpts=$t.options;var treeRootTitle=this.getNodeByNodeKey(treeOpts.root_key).name;var note="You don't have any saved "+treeRootTitle+" yet.";if(treeOpts.is_project){note="You don't have any saved Projects yet."}$c.append('<div class="saved-work-note">'+note+"</div>")}};MySavedWork.prototype.checkProjectsList=function(){var $c=this.$projects_container;var $n=$c.find(".saved-work-note");$n.hide();if($c.find(".category-node").length==0){$n.show()}};MySavedWork.prototype.selectWhereToOpen=function(type,objectId){var self=this;var t="";if(this.isCustomRegionItem(type)){t="Custom Region"}else if(this.isDatasetItem(type)){t="Dataset"}var alertContent='<div class="my-saved-work__dataset__select-label">'+"<label>Access "+t+" via:</label>"+"</div>"+'<div class="my-saved-work__dataset__select-content">'+'<select class="my-saved-work__dataset__select">'+'<option value="maps">Maps</option>'+'<option value="tables">Tables</option>';if(isSubscriber()){alertContent+='<option value="analytics">3-Layer Maps</option>'}alertContent+="</select></div>";alerter.popup({content:alertContent,addCancel:true,cancelText:"Cancel",buttons:[{label:"Go",callback:function(){var selectedValue=$(".my-saved-work__dataset__select").val();switch(selectedValue){case"maps":if(self.isCustomRegionItem(type)){session.remove("curLat");session.remove("curLng");session.remove("curZoom");session.put("cp",objectId)}else if(self.isDatasetItem(type)){session.put("dlo",objectId);session.put("dloz","t")}setWindowLocation("/maps");break;case"tables":if(self.isCustomRegionItem(type)){session.put("cp",objectId)}else if(self.isDatasetItem(type)){session.put("dlo",objectId);setWindowLocation("/tables")}break;case"analytics":if(self.isCustomRegionItem(type)){session.remove("curLat");session.remove("curLng");session.remove("curZoom");session.put("cp",objectId)}else if(self.isDatasetItem(type)){session.put("dlo",objectId);session.put("dloz","t")}setWindowLocation("/analytics");break}}}]})};MySavedWork.prototype.setDataToLoadOnOpen=function(){this.dataIsLoaded=false};MySavedWork.prototype.isCustomRegionItem=function(t){return t==this.ITEM_TYPE_CUSTOM_REGION};MySavedWork.prototype.isDatasetItem=function(t){return t==this.ITEM_TYPE_DATALOADER_DATASET};MySavedWork.prototype.uncheckSelectAll=function(){$c=$(".category-tree").find(".select-all");$c.removeClass("glyphicon-check");$c.addClass("glyphicon-unchecked")};MySavedWork.prototype.resetAndLoadFromSession=function(data,linkUri){var url=data.url;if(data.attachment&&data.attachment.length){window.location(PEnvironment.attachmentUrl+"&attid="+data.attachments[0].id);return}else if(linkUri!=PEnvironment.pageName&url){window.location(url);return}if(url){window.history.pushState(data,document.title,"/"+linkUri+"?"+url)}var t=data.type;var cpid=null;if(this.isCustomRegionItem(t)){linkUri=t;cpid=data.objectId}else if(this.isDatasetItem(t)){linkUri=t}P.data.savedurl=url;switch(linkUri){case"maps":resetMap();widget.setIdentifyLoaded(false);var params=PWebUtil.parseQuery(url);session.checkUrl(params);loadMapFromSession();var cids=session.get("cp");if(cids&&isSubscriber()){_.each(cids,function(customRegionId){P.instances.trfCustomRegions.addCustomRegionById(customRegionId)})}break;case"analytics":resetAnalytics();var legendMerger=P.instances.map.getLegendMerger();var indlegends=legendMerger.indicatorLegends;for(var i=0;i<indlegends.length;i++){indlegends[i].setIdentifyLoaded(false)}var params=PWebUtil.parseQuery(url);session.checkUrl(params);loadAnalyticsFromSession();var cids=session.get("cp");if(cids&&isSubscriber()){_.each(cids,function(customRegionId){P.instances.trfCustomRegions.addCustomRegionById(customRegionId)})}break;case"tables":resetTables();var params=PWebUtil.parseQuery(url);if(P.instances.pagePopUp.elm.is(":visible")){P.instances.pagePopUp.hide(function(){loadTableFromSession(params)})}else{loadTableFromSession(params)}break;case"reports":window.location(linkUri+"/"+url);break;case 2:var cids=[cpid];if(cids&&isSubscriber()){var m=P.instances.trfCustomRegions;_.each(cids,function(customRegionId){m.addCustomRegionById(customRegionId)});m.update()}break;case 3:addOverlaySet(data.objectId,"dl");break}};MySavedWork.prototype.getLinkUriForItem=function(data){var linkUri=data.linkUri;if(linkUri!="maps"&&linkUri!="tables"&&linkUri!="analytics"&&linkUri!="reports"){if(linkUri=="lists"){linkUri="tables"}else{linkUri=PEnvironment.pageName}}return linkUri};MySavedWork.prototype.addClickEventForNode=function(e,$a){var self=this;var node=$a.data("node");var url=node.data.url;var objectId=node.data.objectId;if(node.isFolder()){$a.off("click").on("click",function(e){if(self.isEditModeOn()){self.getSelectedFancyTree().visit(function(n){n.setSelected(false)});node.setSelected(true);self.updateDestinationPath(node)}return false})}if(url||objectId){var type=node.data.type;if(self.isCustomRegionItem(type)){url="cp="+objectId}else if(self.isDatasetItem(type)){url="dlo="+objectId+"&dloz=t"}var showSelectPage=false;if(objectId&&(self.isCustomRegionItem(type)||self.isDatasetItem(type))){var page=PEnvironment.pageName;var foundPage=false;var arr=["maps","tables","analytics"];for(var i=0;i<arr.length;i++){if(page==arr[i]){foundPage=true;break}}if(foundPage==false){showSelectPage=true}}if(showSelectPage){$a.off("click").on("click",function(e){if($.ui.fancytree.getEventTargetType(e.originalEvent)=="checkbox"){return false}if(node.unselectable){return false}self.selectWhereToOpen(type,objectId)})}else if(node.data.attachments&&node.data.attachments.length>0){$a.attr("href",PEnvironment.attachmentUrl+"&attid="+node.data.attachments[0].id);$a.off("click").on("click",function(e){if($.ui.fancytree.getEventTargetType(e.originalEvent)=="checkbox"){return false}})}else{var linkUri=self.getLinkUriForItem(node.data);$a.attr("href",linkUri+"?"+url);if(self.isEditModeOn()){return}if($.ui.fancytree.getEventTargetType(e.originalEvent)=="checkbox"){return false}else if(node.data.accessDenied){subscribeAlert(null,"subscriber-saved-work");return false}if(node.unselectable){return false}var onlyLinks={reports:true};if(onlyLinks[linkUri]==null&&PEnvironment.pageName==linkUri||linkUri==null){modal.close();$(".notifier-popup").removeClass("is-hidden");modal.$modal.one("hidden.bs.modal",function(e){var type=node.data.linkUri||node.data.type;self.resetAndLoadFromSession(node.data,linkUri);$(".notifier-popup").addClass("is-hidden")});return false}}}};Notification=function(frequency){var self=this;window.indexedDB=window.indexedDB||window.mozIndexedDB||window.webkitIndexedDB||window.msIndexedDB;window.IDBTransaction=window.IDBTransaction||window.webkitIDBTransaction||window.msIDBTransaction;window.IDBKeyRange=window.IDBKeyRange||window.webkitIDBKeyRange||window.msIDBKeyRange;if(window.indexedDB==null){console.log("This browser doesn't support indexedDB...");return}this.request=window.indexedDB.open("PolicyMapNotificationDatabase1",3);this.tableName="notifications";this.db=null;this.request.onerror=function(e){P.instances.debug.log(P.Debug.ERROR,"Failed to open the indexedDB database")};this.request.onsuccess=function(e){P.instances.debug.log(P.Debug.INFO,"Opened the indexedDB database");self.db=e.target.result};this.request.onupgradeneeded=function(e){P.instances.debug.log(P.Debug.INFO,"Initializing the indexedDB database");self.db=e.target.result;self.objectStore=self.db.createObjectStore(self.tableName,{keyPath:"theId"})};this.cookieName="notificationDownloadInProcess";if(this.validateFrequency(frequency)){this.frequency=frequency}else{this.frequency=60}this.notifications=[];this.enabled=false;this.url=PEnvironment.dataServicesUrl+"?ty=data&t=not";this.interval;this.ws;this.webSocketThreshold=3;this.webSocketRetry=0;this.build()};Notification.prototype.readDB=function(theId,callback){var transaction=this.db.transaction([this.tableName]);var objectStore=transaction.objectStore(this.tableName);var request=objectStore.get(theId);request.onerror=function(e){P.instances.debug.log(P.Debug.ERROR,"Error reading from the db: "+e)};request.onsuccess=function(e){if(request.result){P.instances.debug.log(P.Debug.INFO,"Read id '"+theId+"' from the database.");callback(theId,true)}else{P.instances.debug.log(P.Debug.INFO,"The id '"+theId+"' was not in the database when reading.");callback(theId,false)}}};Notification.prototype.addDB=function(theId,callback){var transaction=this.db.transaction([this.tableName],"readwrite");var objectStore=transaction.objectStore(this.tableName);var request=objectStore.add({theId:theId});request.onsuccess=function(e){P.instances.debug.log(P.Debug.INFO,"Added id '"+theId+"' to the database.");callback(theId,true)};request.onerror=function(e){P.instances.debug.log(P.Debug.ERROR,"Cannot add id '"+theId+"' to the db: "+e);callback(theId,false)}};Notification.prototype.removeDB=function(theId,callback){var transaction=this.db.transaction([this.tableName]);var objectStore=transaction.objectStore(this.tableName);var request=objectStore.delete(theId);request.onsuccess=function(e){P.instances.debug.log(P.Debug.INFO,"Removed id '"+theId+"' from the db: "+e);callback(theId,true)};request.onerror=function(e){P.instances.debug.log(P.Debug.ERROR,"Cannot remove id '"+theId+"' from the db: "+e);callback(theId,false)}};Notification.prototype.setFrequency=function(frequency){if(this.enabled===true){if(this.validateFrequency(frequency)){window.clearInterval(this.interval);this.frequency=frequency;this.begin()}}};Notification.prototype.start=function(){if(P.WKPrint.isPrintPage()===true){return}if(this.enabled!=true){this.enabled=true;this.begin();$(window).trigger(P.events.NOTIFICATION_STARTED)}};Notification.prototype.begin=function(){var self=this;this.poll();var frequency=this.frequency||60;this.interval=window.setInterval(function(){self.poll()},frequency*1e3)};Notification.prototype.stop=function(hideAlert){if(this.enabled==true){this.enabled=false;if(hideAlert==true){this.close()}window.clearInterval(this.interval);$(window).trigger(P.events.NOTIFICATION_STOPPED)}};Notification.prototype.build=function(){var self=this;this.notDiv=$("<div />");this.notDiv.attr("id","notification");var titleSpan=$("<div />");titleSpan.addClass("title");titleSpan.text("PolicyMap Notifications");this.notDiv.append(titleSpan);var closeSpan=$("<div />");closeSpan.addClass("close");closeSpan.text("close");closeSpan.click(function(){self.close()});this.notDiv.append(closeSpan);var lineBreak=$("<br />");this.notDiv.append(lineBreak);var list=$("<div />");list.attr("id","notificationList");list.addClass("list");list.html("test");this.notDiv.append(list);this.position()};Notification.prototype.position=function(){if(PEnvironment.pageName=="maps"||PEnvironment.pageName=="analytics"){$("#map").append(this.notDiv);this.notDiv.css({top:"10px",right:"100px"})}else if(PEnvironment.pageName=="tables"){$("#mainTable").append(this.notDiv);this.notDiv.css({top:"10px",right:"10px"})}else if(PEnvironment.pageName=="reports"||PEnvironment.pageName=="report_generate"){$(".header__interface").append(this.notDiv);this.notDiv.css({top:"10px",right:"10px"})}else if(PEnvironment.pageName=="dataloader"){$("#map").append(this.notDiv);this.notDiv.css({top:"10px",right:"45px"})}else if(PEnvironment.pageName=="mysavedwork"){$(".my-saved-work__container").append(this.notDiv);this.notDiv.css({top:"230px",right:"10px"})}else{this.hideDiv=$("<div/>");this.hideDiv.addClass("is-hidden");this.hideDiv.append(this.notDiv);$("body").append(this.hideDiv)}};Notification.prototype.poll=function(asyncArg){var async=true;if(typeof asyncArg!=="undefined"&&asyncArg===false){async=false}var self=this;var postData=null;if(typeof P.instances.tracking==="object"&&noTracking==null){var trackingStore=P.instances.tracking.dump();if(trackingStore.length>0){try{for(var i=0;i<trackingStore.length;i++){if(trackingStore[i].metadata&&trackingStore[i].metadata.target){delete trackingStore[i].metadata.target}if(trackingStore[i].metadata&&trackingStore[i].metadata.window){delete trackingStore[i].metadata.window}}trackingStore=JSON.stringify(trackingStore)}catch(e){P.instances.debug.log(P.Debug.ERROR,e);trackingStore="[{'error':'This tracking store had recursion :('}]"}postData={trk:trackingStore}}}var url=this.url||(PEnvironment.dataServicesUrl||"/d/")+"?id=1&ty=data&t=not";ajax.call({url:url+"&act=g",dataType:"json",type:"post",data:postData,async:async,pleaseWait:false,success:function(notifications){var newNotifications=false;if(notifications!=null&&notifications.not!=null){for(var i=0;i<notifications.not.length;i++){(function(curNotification){try{var json=JSON.parse(curNotification.message);if(json.url!=null){try{var doTheDownload=function(id){
P.instances.debug.log(P.Debug.DEBUG,"Running notification with id '"+id+"'!!");P.instances.reallyUnload=false;self.acknowledge(id,function(){setWindowLocation(json.url,false)})};if(typeof this.db=="undefined"){doTheDownload(curNotification.id)}else{self.readDB(curNotification.id,function(id,found){if(found===false){self.addDB(id,function(id,added){if(added===true){doTheDownload(id)}else{P.instances.debug.log(P.Debug.DEBUG,"Not running notification with id '"+id+"' because it was added elsewhere when trying to add")}})}else{P.instances.debug.log(P.Debug.DEBUG,"Not running notification with id '"+id+"' because it is running elsewhere")}})}}catch(e){P.instances.debug.log(P.Debug.ERROR,"Error in indexedDB code: "+e)}}else if(json.alerter){alerter.popup(json.alerter)}return}catch(e){P.instances.debug.log(P.Debug.INFO,"Notification did not parse as JSON: "+e)}newNotifications=self.add(curNotification)||newNotifications})(notifications.not[i])}if(newNotifications){self.refresh()}}}})};Notification.prototype.refresh=function(){var self=this;var notDiv=$("#notification");var notListDiv=$("#notificationList");var updateNotification=function(){notListDiv.empty();var urgentAlert=false;var newList=$("<ul />");for(not in self.notifications){var curNot=self.notifications[not];var newListItem=$("<li />");newListItem.html(curNot.message);newList.append(newListItem);urgentAlert=curNot.urgent||urgentAlert}notListDiv.append(newList);if(urgentAlert){notDiv.addClass("urgentNotification")}else{notDiv.removeClass("urgentNotification")}notDiv.fadeIn(500)};if(notDiv.is(":visible")){notDiv.fadeOut(500,function(){updateNotification()})}else{updateNotification()}};Notification.prototype.close=function(){$("#notification").fadeOut(500);var notIds="";for(not in this.notifications){notIds+=this.notifications[not].id+","}this.notifications=[];if(notIds.length>0){var ignore=session.get("inot");if(ignore==null||$.trim(ignore)==""){ignore=","}ignore+=notIds;session.put("inot",ignore);notIds=notIds.substring(0,notIds.length-1);this.acknowledge(notIds)}};Notification.prototype.acknowledge=function(notIds,callback){var cb=function(){if(callback!=null){callback()}};ajax.call({url:this.url+"&act=a&notid="+notIds,pleaseWait:false,success:cb,error:cb})};Notification.prototype.add=function(newNot){if(this&&this.notifications&&!this.notifications[newNot.id]){if(newNot.uidtype==0||newNot.uidtype==3){var ignore=session.get("inot");if(ignore!=null&&$.trim(ignore)!=""){if(ignore.indexOf(","+newNot.id+",")!=-1){return false}}}this.notifications[newNot.id]=newNot;return true}else{return false}};Notification.prototype.validateFrequency=function(frequency){if(frequency!=null&&parseFloat(frequency)==parseInt(frequency)&&!isNaN(frequency)&&frequency>0){return true}else{return false}};Notification.prototype.startWebSocket=function(){var self=this;try{this.webSocketRetry++;P.instances.debug.log(P.Debug.DEBUG,"WebSocket connecting try "+this.webSocketRetry);this.ws=new WebSocket("wss://"+PEnvironment.notificationHost+":5000");this.ws.onopen=function(e){P.instances.debug.log(P.Debug.DEBUG,"WebSocket connected.");self.sendSessionId();self.webSocketRetry=0};this.ws.onclose=function(e){if(self.webSocketRetry<self.webSocketThreshold){function retry(){self.startWebSocket()}setTimeout(retry,1e3)}else{P.instances.debug.log(P.Debug.WARN,"WebSocket connection threshold reached. Not trying any more.")}};this.ws.onmessage=function(e){P.instances.debug.log(P.Debug.INFO,"WebSocket received: "+e.data);if(e.data!=null&&e.data==="refresh"){self.poll()}};this.ws.onerror=function(e){P.instances.debug.log(P.Debug.ERROR,"WebSocket error: "+e)}}catch(e){P.instances.debug.log(P.Debug.ERROR,"WebSocket connection error: "+e)}};Notification.prototype.sendSessionId=function(){var m={sessionId:getSession(PEnvironment.sessionVar)};this.ws.send(JSON.stringify(m))};Notification.prototype.closeWebSocket=function(){if(this.ws!=null){this.ws.close()}};PAddress=function(addr,x,y,errorMsg,errorCode){this.addr=addr;this.x=x;this.y=y;if(errorMsg!=null){this.errorMessage=errorMsg}if(errorCode!=null){this.errorCode=errorCode}};PAddress.prototype.wasFound=function(){return this.x!=null&&this.y!=null};PAlerter=function(){};PAlerter.prototype.popup=function(content,clabel,alabel,acallback,ccallback,width){if(P.WKPrint.isPrintPage()===true){return}var currentDialog=$(".ui-dialog");if(currentDialog.length>0&&!currentDialog.hasClass("juiDataloaderDialog")){currentDialog.remove()}this.dialogContainer=$("<div/>");var dialogId="theDialog"+Math.floor(1e3*(Math.random()%1));var useImage=false;var minWidth=width||"600";var width=minWidth;var imageUrl;var imageFocusUrl;var widen=false;var popupStyle="normal";var customDialogClass="";var buttons=[];var addCancel=false;var cancelText="OK";var cancelType="cancel";var cancelCallback=function(){$("#"+dialogId).remove();return true};var callback=null;if(typeof content=="object"&&content.content!=null){if(content.cancelText){cancelText=content.cancelText}if(content.cancelCallback){cancelCallback=content.cancelCallback}if(content.addCancel!=null){addCancel=content.addCancel}buttons=content.buttons;if(buttons==null){buttons=[]}if(buttons.length>=2){widen=true}if(content.popupStyle!=null){popupStyle=content.popupStyle}if(content.customDialogClass!=null){customDialogClass=content.customDialogClass}if(content.useImage!=null){useImage=content.useImage}if(content.width!=null){width=content.width}if(content.callback){callback=content.callback}content=content.content}else{addCancel=true;cancelType=null;if(alabel&&acallback){buttons.push({label:alabel,callback:acallback,type:"ok"})}if(clabel){cancelText=clabel}if(typeof ccallback==="function"){cancelCallback=function(){var ret=ccallback();return ret!=null?ret:true}}}if(popupStyle=="slideshow"||popupStyle=="video"||popupStyle=="seelist"){var tab=$("<img/>");tab.attr({src:"/images/close_icon.png"});tab.addClass("alertCloseTab");tab.click(function(){if(cancelCallback instanceof Function){cancelCallback()}$("#"+dialogId).remove()});this.dialogContainer.append(tab);this.dialogContainer.addClass("alertDialogLarge")}if(popupStyle=="seelist"){this.dialogContainer.addClass("seeListPopUp")}this.dialogContainer.append(content);var buttonsDiv=$("<div/>");buttonsDiv.addClass("alertDialogButtonsDiv");if(widen==true){width=800}if(addCancel==true){buttons.push({label:cancelText,callback:cancelCallback,type:cancelType})}while(buttons.length>0){button=buttons.shift();var actionSpan=$("<span/>");var actionInput;if(useImage==true){imageUrl=PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sid="+PEnvironment.productId+"&sy=2&fs=11&vp=10&hp=10&tx=";imageFocusUrl=PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sid="+PEnvironment.productId+"&sy=2&fs=11&vp=10&hp=10&alt=1&tx=";actionInput=$('<input type="image"/>');actionInput.addClass("alertImageButtons");actionInput.data("actionText",button.label);actionInput.attr("src",imageUrl+button.label);actionInput.attr("alt",button.label);actionInput.addClass("inputImageFocus");actionInput.focus(function(){$(this).attr("src",imageFocusUrl+$(this).data("actionText"))});actionInput.blur(function(){$(this).attr("src",imageUrl+$(this).data("actionText"))});var preload=$("<img/>");preload.attr("src",imageFocusUrl+button.label)}else{actionInput=$('<input type="button"/>');if(isCBClone()){actionInput.addClass("clone-button");actionInput.css("font-size","15px");actionInput.css("color","#6f6f6f");actionInput.css("font-size","15px");actionInput.css("min-width","105px");actionInput.css("border","solid 1px #d4d4d4")}actionInput.addClass("alertDialogAlertButtons");if(button.className!=null){actionInput.addClass(button.className)}else{if(button.type=="cancel"){actionInput.addClass("alertDialogAlertButtonsCancel")}else{actionInput.addClass("alertDialogAlertButtonsOk")}}actionInput.attr("value",button.label)}if(button.type=="ok"){actionInput.attr("id","okCallbackButton")}actionInput.data("actionCallback",button.callback);actionInput.click(function(){var buttonCallback=$(this).data("actionCallback");if(buttonCallback instanceof Function){if(buttonCallback()!==false){$("#"+dialogId).remove()}}});actionSpan.append(actionInput);buttonsDiv.append(actionSpan)}this.dialogContainer.append(buttonsDiv);this.dialog=$("<div/>");this.dialog.addClass("theDialog");this.dialog.attr("id",dialogId);this.dialog.append(this.dialogContainer);this.dialog.dialog({dialogClass:customDialogClass,open:function(e,ui){$(".ui-dialog-titlebar-close").focus();if(typeof content.onLoad=="function"){content.onLoad()}},close:function(e,ui){if(cancelCallback instanceof Function){cancelCallback()}$("#"+dialogId).remove()},modal:true,width:width,minWidth:minWidth,closeOnEscape:true,draggable:false,resizable:false,zIndex:5002});if(popupStyle=="plain"){$(".ui-widget-overlay").css({background:"#000",opacity:.8});this.dialog.addClass("theDialogPlain");var go=$("<span />");go.click(function(){cancelCallback()});go.addClass("goButton");go.html("<span>GO</span>");buttonsDiv.append(go)}if(popupStyle=="wk"){this.dialog.addClass("theDialogPlain");this.dialog.addClass("WKPopUp")}this.dialogContainer.show();if(callback){callback()}return dialogId};PAlerter.prototype.add=function(content){this.dialogContainer.append(content)};PAlerter.prototype.close=function(){var currentDialog=$(".ui-dialog");if(currentDialog.length>0){currentDialog.remove()}};PAnalyticListLink=function(){this.name="3-Layer Map List";var linkParms=[];var listParms=[];var centerPoint=map.getCenterLatLng();linkParms.push("cx="+centerPoint.x);linkParms.push("cy="+centerPoint.y);linkParms.push("cz="+map.getZoom());for(var i=0;i<legendMerger.indicatorLegends.length;i++){if(legendMerger.getLegend(i).containsIndicator()){var legend=legendMerger.getLegend(i);var indicator=legend.getIndicator();linkParms.push("m"+i+"i="+indicator.id);listParms.push("m"+i+"i="+indicator.id);listParms.push("m"+i+"n="+encodeURIComponent(indicator.getFullLabel()));linkParms.push("m"+i+"btd="+legend.legend.getBoundaryType().id);listParms.push("m"+i+"bdi="+legend.legend.getCurrentBoundaryDefinitionId());var measurementType=indicator.measurement;if(measurementType){listParms.push("m"+i+"mt="+encodeURIComponent(measurementType))}var range=legend.getIndicatorRange().getRange();if(range){linkParms.push("m"+i+"r0="+range[0]);linkParms.push("m"+i+"r1="+range[1]);listParms.push("m"+i+"r0="+range[0]);listParms.push("m"+i+"r1="+range[1]);var fRange=legend.getIndicatorRange().getFormattedRange();listParms.push("m"+i+"fr0="+encodeURIComponent(fRange[0]));listParms.push("m"+i+"fr1="+encodeURIComponent(fRange[1]))}var values=legend.getIndicatorValues().getValues();if(values){var selValues=[];for(var j=0;j<values.length;j++){if(values[j][1]==1){selValues.push(values[j][0])}}linkParms.push("m"+i+"v="+encodeURIComponent(MochiKit.Base.serializeJSON(selValues)));listParms.push("m"+i+"v="+encodeURIComponent(MochiKit.Base.serializeJSON(selValues)))}linkParms.push("m"+i+"period="+indicator.getPeriod());listParms.push("m"+i+"period="+indicator.getPeriod())}}this.url="analyticslist?"+linkParms.join("&");this.parms="http://PolicyMapAnalyticsPage/analyticslist?"+listParms.join("&")};PAnalyticListLink.prototype.setName=function(linkName){this.name=linkName};PAnalyticListLink.prototype.addLinkParm=function(parmName,parmValue){this.url+="&"+parmName+"="+parmValue};PAnalyticListLink.prototype.addListParm=function(parmName,parmValue){this.parms+="&"+parmName+"="+parmValue};PAttribute=function(name,value,type,columnname,unit,tabname,tabindex){this.name=name;this.value=value;this.type=type;if(columnname)this.columnName=columnname;else this.columnName=name;this.unit="";if(unit)this.unit=unit;if(tabname)this.tabName=tabname;if(tabindex)this.tabIndex=tabindex};PAttributeFilter=function(name,values,type,valuesdisplay,columnname,columntype,id,groupId,iconOpts,defaultOn){this.name=name;this.values=values;if(type)this.type=type;else this.type=PAttributeFilter.EQUAL;if(valuesdisplay)this.valuesDisplay=valuesdisplay;if(columnname)this.columnName=columnname;else this.columnName=name;if(columntype||columntype==0)this.columnType=columntype;else this.columnType=PAttribute.NUMBER;var o=iconOpts;if(o){if(o.icon){this.icon=o.icon}if(o.color){this.color=o.color}if(o.shape){this.shape=o.shape}}this.id=id;this.groupId=groupId;if(defaultOn!=null){this.defaultOn=defaultOn}else{this.defaultOn=false}};PAttributeFilter.prototype.displayValues=function(){var retVal="";if(this.valuesDisplay&&this.valuesDisplay!=null&&this.valuesDisplay!=""){retVal=this.valuesDisplay}else{var display=[];var separator=", ";if(this.columnType==PAttribute.DATE){for(var i=0;i<this.values.length;i++)display.push(this.values[i].getFullYear()+"-"+this.values[i].getMonth()+"-"+this.values[i].getDate())}else if(this.columnType==PAttribute.BOOLEAN){if(this.values[0]&&this.values[0]==true)display.push("Yes");else display.push("No")}else display=this.values;if(this.type==PAttributeFilter.RANGE&&(this.columnType==PAttribute.NUMBER||this.columnType==PAttribute.DATE))separator=" - ";retVal=display.join(separator)}return retVal};PBounds=function(minX,minY,maxX,maxY){this.minX=minX;this.minY=minY;this.maxX=maxX;this.maxY=maxY};PBounds.prototype.toString=function(){return"("+this.min()+", "+this.max()+")"};PBounds.prototype.min=function(){return new PPoint(this.minX,this.minY)};PBounds.prototype.max=function(){return new PPoint(this.maxX,this.maxY)};PBounds.prototype.containsBounds=function(other){if(this.minX<=other.minX&&this.maxX>=other.maxX&&this.minY<=other.minY&&this.maxY>=other.maxY)return true;else return false};PBounds.prototype.extend=function(point){if(this.minX>point.x)this.minX=point.x;else if(this.maxX<point.x)this.maxX=point.x;if(this.minY>point.y)this.minY=point.y;else if(this.maxY<point.y)this.maxY=point.y};PChart=function(node,options,cube){this.options=new PChartOptions;if(options)this.options=options;this.ogColors=this.options.colorRamp.colors.slice();this.container=node;if(this.options.displayTitle){this.title=$("<div />");$(this.title).addClass("trend-chart-title");$(this.container).parent().prepend(this.title)}if(cube){this.setData(cube);this.refresh()}};PChart.prototype.setOptions=function(options){this.options=options};PChart.prototype.setData=function(cube){this.cube=cube;this.cube.charts.push(this)};PChart.prototype.clear=function(){while(this.container.hasChildNodes())this.container.removeChild(this.container.firstChild);this.canvas=document.createElement("canvas");this.canvas.id="chartcanvas_"+this.container.id;this.canvas.width=parseInt(jQuery(this.container).width());this.canvas.height=parseInt(this.container.style.height);this.container.appendChild(this.canvas)};PChart.prototype.getPlaceLabel=function(place){var label=place.label;var type=place.getType();if(this.options.displayState){label+=place.getDisplayState()}if(type){if(type==PPlaceType.CUSTOM||type==PPlaceType.POLYGON||!place.getDefinitionId()){label+=" ("+place.getType().getName()+")"}else{label+=" ("+boundaryMatrix.getDisplayNameForDefinitionId(place.getDefinitionId())+")"}}return label};PChart.prototype.getIndicatorLabel=function(ind){var label;if(this.options.displayFullIndicatorName)label=ind.getFullDisplayName();else label=ind.displayName;return label};PChart.prototype.refresh=function(){this.clear();if(this.options.displayTitle){this.title.html(this.cube.indicators[0].getLabel());if(this.options.type==PChartOptions.BAR)this.title.append(" in "+this.cube.periods[0])}var labels=[];var data=[];var xVar=[];if(this.options.xAxis==PChartOptions.PLACE)xVar=this.cube.places;else if(this.options.xAxis==PChartOptions.INDICATOR)xVar=this.cube.indicators;else xVar=this.cube.periods;var groupVar=[];if(this.options.group==PChartOptions.PLACE)groupVar=this.cube.places;else if(this.options.group==PChartOptions.INDICATOR)groupVar=this.cube.indicators;else groupVar=this.cube.periods;var rVar=[];if(this.options.xAxis==PChartOptions.PLACE&&this.options.group==PChartOptions.INDICATOR||this.options.xAxis==PChartOptions.INDICATOR&&this.options.group==PChartOptions.PLACE)rVar=this.cube.periods;else if(this.options.xAxis==PChartOptions.PLACE&&this.options.group==PChartOptions.PERIOD||this.options.xAxis==PChartOptions.PERIOD&&this.options.group==PChartOptions.PLACE)rVar=this.cube.indicators;else rVar=this.cube.places;if(this.options.displayXAxisLabel){var l=xVar.length;var width=jQuery(this.container).width();var allowedNum=null;if(65*l>width){allowedNum=Math.floor(width/65)}var count=0;for(var i=0;i<l;i++){var label="";var showlabel=true;count++;if(allowedNum){showlabel=false;if(Math.floor(l/allowedNum)==count||i==0){showlabel=true;count=0}}if(xVar[i]instanceof PPlace)label=this.getPlaceLabel(xVar[i]);else if(xVar[i]instanceof PIndicator)label=this.getIndicatorLabel(xVar[i]);else if(showlabel){label=xVar[i]}var xticks={v:i,label:label};labels.push(xticks)}if(l==1){labels.push({v:1,label:""})}}var periodid=null;var placeid=null;var indid=null;var nodata=null;var maxValue=0;var l1=groupVar.length;var l2=xVar.length;var l3=rVar.length;for(var i=0;i<l1;i++){var values=[];if(groupVar[i]instanceof PPlace)placeid=groupVar[i].id;else if(groupVar[i]instanceof PIndicator){indid=groupVar[i].id;nodata=groupVar[i].nodata}else periodid=groupVar[i];for(var j=0;j<l2;j++){if(xVar[j]instanceof PPlace)placeid=xVar[j].id;else if(xVar[j]instanceof PIndicator){indid=xVar[j].id;nodata=xVar[j].nodata}else periodid=xVar[j];for(var k=0;k<l3;k++){if(rVar[k]instanceof PPlace)placeid=rVar[k].id;else if(rVar[k]instanceof PIndicator){indid=rVar[k].id;nodata=rVar[k].nodata}else periodid=rVar[k];if(this.cube.values[periodid][placeid]===undefined){this.cube.values[periodid][placeid]=[];this.cube.values[periodid][placeid][indid]=null}var value=this.cube.values[periodid][placeid][indid];if(typeof value!="number"||value==nodata)value=null;if(value&&value>maxValue)maxValue=value;if(value==null)value="0.00000";values.push([j,value]);if(l2==1)values.push([1,0])}}data.push(values)}if(this.options.yMax)maxValue=this.options.yMax;else{var interval="1";var maxInt=maxValue.toString().split(".");for(var i=1;i<maxInt[0].toString().length;i++)interval+="0";maxValue+=parseInt(interval);maxValue=parseInt(maxValue/interval)*interval}if(maxValue<0)maxValue=0;var intervals=this.options.yIntervals;if(intervals==null){intervals=maxValue.toString().charAt(0);if(intervals<2)intervals=intervals*4;else if(intervals<4)intervals=intervals*2}this.layoutOptions={xTicks:labels,yNumberOfTicks:intervals};var hexColor=MochiKit.Color.Color.fromHexString;var color;if(this.options.baseColor)color=PlotKit.Base.palette(hexColor(this.options.baseColor));else{var colors=this.options.colorRamp.colors;if(groupVar.length>colors.length){for(var i=0;i<this.ogColors.length;i++){colors.push(this.ogColors[i])}}color=this.options.colorRamp.convertToHex()}var shouldFill=true;if(this.options.type==PChartOptions.LINE)shouldFill=false;var paddingLeft=70;if(this.options.type==PChartOptions.PIE)paddingLeft=0;this.renderOptions={colorScheme:color,padding:{left:paddingLeft,right:0,top:10,bottom:30},shouldFill:shouldFill,backgroundColor:hexColor(this.options.backgroundColor),displayValue:this.options.displayValue,barSingleDatasetColor:this.options.barSingleDatasetColor};var charttype="bar";if(this.options.type==PChartOptions.LINE)charttype="line";else if(this.options.type==PChartOptions.PIE)charttype="pie";var layout=new PlotKit.Layout(charttype,this.layoutOptions);for(var i=0;i<data.length;i++)layout.addDataset(i,data[i]);layout.evaluate();var plotter=new PlotKit.SweetCanvasRenderer(this.canvas,layout,this.renderOptions);this.plotkitLayout=layout;plotter.render()};PChart.prototype.inTrendChart=function(){return this.options&&this.options.type==PChartOptions.LINE};PChartLink=function(data){var places=data.places;var indicators=data.indicators;var periods=data.periods;var customregions=data.customregions;var ppoly=data.ppoly;var sessiondata=data.sessiondata;var printtype=data.printtype;var args=[];var placelabels=[];var placelabel="";var overlayLabels=[];if(P.instances.rRanks&&P.instances.rRanks.elm.is(":visible")){printtype="ranks"}else if(P.instances.rPlaces&&P.instances.rPlaces.elm.is(":visible")){printtype="list"}else if(P.instances.rPins&&P.instances.rPins.elm.is(":visible")){printtype="list"}var a=sessiondata.o;if(a){args.push("o="+a);var overlays=a.split(",");var l=overlays.length;for(var i=0;i<l;i++){var oset=getActiveOverlaySetByIdAndType(overlays[i],"old");if(!oset.child){overlayLabels.push(oset.name)}}}var a=sessiondata.ofilters;if(a){args.push("ofilters="+a)}var a=sessiondata.dlo;if(a){args.push("dlo="+a);var overlays=a.split(",");var l=overlays.length;for(var i=0;i<l;i++){var oset=getActiveOverlaySetByIdAndType(overlays[i],"dl");if(!oset.child){overlayLabels.push(oset.name)}}}if(customregions&&customregions.length>0){var cpids="";var cplabels="";var l=customregions.length;for(var i=0;i<l;i++){cpids+=customregions[i].id;cplabels+=customregions[i].label;if(i<l-1){cpids+=",";cplabels+=", "}}args.push("cp="+cpids);if(l>1){placelabels.push("Custom Regions ("+cplabels+")")}else{placelabels.push("Custom Region ("+cplabels+")")}}if(ppoly){var polyname=decodeURIComponent(session.get("pname"));args.push("bid="+session.get("bid"));args.push("pname="+encodeURIComponent(polyname));args.push("plat="+session.get("plat"));args.push("plng="+session.get("plng"));placelabels.push("Polygon ("+polyname+")")}if(aggPlaceType){args.push("agg="+aggPlaceType.id)}var page="tables?";var l=placelabels.length;if(l==1){placelabel=placelabels[0]}else if(l==2){placelabel=placelabels[0]+" and "+placelabels[1]}else{for(var i=0;i<l;i++){placelabel+=placelabels[i];if(i<l-2){placelabel+=", "}else if(i==l-2){placelabel+=", and "}}}if(printtype=="list"){if(data.action=="save"){page="lists?"}if(P.instances.rPlaces&&P.instances.rPlaces.elm.is(":visible")){var overlap=P.instances.rPlaces.overlap;if(P.instances.rPlaces.placeTouch==true){overlap="touch"}args.push("rpl1="+P.instances.rPlaces.placeType);args.push("rpl2="+P.instances.rPlaces.placeId);args.push("rpl3="+P.instances.rPlaces.indId);args.push("rpl4="+P.instances.rPlaces.placeTypeId);args.push("rpl5="+P.instances.rPlaces.period);args.push("rpl6="+encodeURIComponent(P.instances.rPlaces.placeName));args.push("rpl8="+P.instances.rPlaces.placeCount);if(P.instances.rPlaces.datasetType){args.push("rpl9="+P.instances.rPlaces.datasetType)}args.push("rpl10="+overlap);var tmpPlace=new PPlace;tmpPlace.typeid=P.instances.rPlaces.placeTypeId;this.name="List of "+tmpPlace.getTypeById().getPluralName()+(P.instances.rPlaces.placeTouch==true?" touching ":" within ")+P.instances.rPlaces.placeName+" with "+P.instances.rPlaces.indName}else if(P.instances.rPins&&P.instances.rPins.elm.is(":visible")){args.push("rpp1="+encodeURIComponent(P.instances.rPins.placeName));args.push("rpp2="+P.instances.rPins.dataset.id);args.push("rpp3="+encodeURIComponent(P.instances.rPins.dataset.name));args.push("rpp4="+P.instances.rPins.placeId);args.push("rpp5="+P.instances.rPins.vertices);args.push("rpp6="+P.instances.rPins.pinCount);args.push("rpp8="+P.instances.rPins.placeTypeId);if(P.instances.rPins.datasetType){args.push("rpp9="+P.instances.rPins.dataset.type)}if(P.instances.rPins.polysetid){args.push("rpp10="+P.instances.rPins.polysetid)}this.name="List of "+P.instances.rPins.dataset.name+" in "+P.instances.rPins.placeName}}else if(printtype=="ranks"){var rankPlace=P.instances.rRanks.place.getID();var rankPlaceType=P.instances.rRanks.place.getType().getPluralName();var rankDisplayName=P.instances.rRanks.ind.fullDisplayNames[P.instances.rRanks.ind.curPerIndex];args.push("rp="+rankPlace);this.name="Ranking of "+rankPlaceType+" for "+rankDisplayName}else{this.name="Table of "+placelabel+(sessiondata.o||sessiondata.dlo?" with ":"")+overlayLabels.join(", ")+(sessiondata.o||sessiondata.dlo?sessiondata.i?" and ":"":" with ")+indicators[0].getFullDisplayName()}if(printtype!="list"){var l=indicators?indicators.length:0;if(l>0){var ids=[];for(var i=0;i<l;i++){ids.push(indicators[i].id)}args.push("i="+ids.join(","))}var l=periods?periods.length:0;if(l>0){var ids=[];for(var i=0;i<l;i++){ids.push(periods[i])}args.push("period="+ids.join(","))}var l=places?places.length:0;if(l>0){var ids=[];for(var i=0;i<l;i++){if(places[i].typeid!=0&&places[i].typeid!=95){ids.push(places[i].id);placelabels.push(places[i].label)}}args.push("chp="+ids.join(","))}}this.fullName=this.name;this.url=page+args.join("&")};PChartOptions=function(){this.type=PChartOptions.BAR;this.xAxis=PChartOptions.PLACE;this.group=PChartOptions.INDICATOR;this.baseColor=null;this.colorRamp=colorRamps.getRampByName("distinct");this.backgroundColor="#eeeeee";this.yDecimal=0;this.yIntervals=null;this.yMax=null;this.displayState=true;this.displayFullIndicatorName=false;this.displayXAxisLabel=true;this.displayValue=false;this.barSingleDatasetColor=false};PClientGeocoder=function(type,loc){this.type="navteq";this.location="us";if(type)this.type=type;if(loc)this.location=loc};PClientGeocoder.prototype.getLatLng=function(address,callback){ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=geo&geoa="+encodeURIComponent(address.trim())+"&fmt=js",context:this,success:callback})};PClientGeocoder.prototype.getLatLngFromAddressObject=function(address,callback){var args="";if(address.address1){args+="&geoa1="+encodeURIComponent(address.address1)}if(address.address2){args+="&geoa2="+encodeURIComponent(address.address2)}if(address.city){args+="&geoc="+encodeURIComponent(address.city)}if(address.state){args+="&geos="+encodeURIComponent(address.state)}if(address.zip){args+="&geoz="+encodeURIComponent(address.zip)}ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=geo"+args+"&fmt=js",context:this,success:callback})};PClientGeocoder.prototype.getLocations=function(address,callback){ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=geo&geoa="+encodeURIComponent(address.trim())+"&fmt=js",context:this,success:callback})};PClientGeocoder.prototype.getPlace=function(search,callback,maxResults,order,placetypes,matrixId,defIds,country,attr,multiMatrix){search=search.toLowerCase();if(search.match("county")!=null){search=search.replace("county","");placetype=PPlaceType.COUNTY}var max=10;if(maxResults)max=maxResults;var query="&sch="+encodeURIComponent(search.trim())+"&max="+max;if(matrixId==null){matrixId=boundaryMatrix.getCurrentMatrixId()}if(!defIds){if(!placetypes){placetypes=[PPlaceType.COUNTRY,PPlaceType.STATE,PPlaceType.COUNTY,PPlaceType.COUNTY_SUBDIVISION,PPlaceType.CITY,PPlaceType.ZIP]}try{defIds=boundaryMatrix.getDefinitionIdForTypeId(this._getPlaceTypeIds(placetypes),matrixId)}catch(e){callback.call(this,[]);return}}query+="&pdi="+defIds;if(order){query+="&ord="+order}if(country){query+="&ctry="+encodeURIComponent(country)}if(attr){query+="&attr="+attr}if(productProperty.exists("search_limit_states")){query+="&ls="+productProperty.getValue("search_limit_states")}ajax.call({url:PEnvironment.boundaryjsUrl+"&act=plc"+query,context:this,success:function(places){if(multiMatrix!=null&&multiMatrix===true){if(places.length==0){var matrixOrder=boundaryMatrix.getMatrixOrder(true);var curPos=$.inArray(matrixId,matrixOrder);if(curPos<matrixOrder.length-1){this.getPlace(search,callback,maxResults,order,placetypes,matrixOrder[curPos+1],null,country,attr,true)}else{callback.call(this,[])}}else{callback.call(this,places)}}else{callback.call(this,places)}}})};PClientGeocoder.prototype.getPlaceContainment=function(center,placetype,matrixId,defId,callback,cmc){var defArg;if(defId){defArg=defId}else{defArg=boundaryMatrix.getDefinitionIdForTypeId(placetype.getId(),matrixId)}var url=PEnvironment.boundaryjsUrl+"&act=con"+"&attr=id,identifier,label,typeid,centroid,bounds,area,pop,state,country,gsussdid"+"&x="+center.lng()+"&y="+center.lat()+"&pdi="+defArg+"&lmi="+boundaryMatrix.getCurrentMatrixId()+(cmc!=null&&cmc===true?"&cmc=1":"");ajax.call({url:url,context:this,success:callback})};PClientGeocoder.prototype.getPlaceContainmentByPlace=function(place,callback){ajax.call({url:PEnvironment.boundaryjsUrl+"&act=con&pid="+place.id,context:this,success:callback})};PClientGeocoder.prototype.getPlacesQuery=function(action,bounds,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,count,context,offset,query,attr){var isAssembled=bounds instanceof PPlace&&bounds.isAssembledCustom()&&bounds.aplaces&&bounds.aplaces.length>0;var assembledDefId=isAssembled?String(bounds.aplaces[0].getDefinitionId()):null;var defIdStrings=[];if(defId){if(!(defId instanceof Array)){defId=[defId]}if(placetype==null){placetype=getPlaceTypeById(boundaryMatrix.getTypeIdForDefinitionId(defId[0]))}var defIdCopy=defId.slice(0);defId=[];$.each(defIdCopy,function(index,id){if($.inArray(id,defId)===-1){defId.push(id)}});if(isAssembled){var defIdIndex=null;for(var i=0;i<defId.length;i++){if(defId==assembledDefId){defIdIndex=i;break}}if(defIdIndex!=null){defIdStrings.push(String(defId[defIdIndex]));defId.splice(defIdIndex,1)}if(defId.length>0){defIdStrings.push(defId.join(","))}}else{defIdStrings.push(defId.join(","))}}else{defIdStrings.push(String(boundaryMatrix.getDefinitionIdForTypeId(placetype.getId(),matrixId)))}query=query||"";query+="&"+this.getBoundsQuery(bounds);query+=this.getContainmentsQuery(bounds,placetype);if(quota==undefined){var olap=true;if(arguments.length>3&&overlap!=undefined){olap=overlap}query+="&olp="+olap}if(maxResults){query+="&max="+maxResults}if(order){query+="&ord="+order}if(quota!=undefined&&quota!=null){query+="&qta="+quota}if(count!=undefined&&count!=null){query+="&cnt=1"}if(attr){query+="&attr="+attr}var callbackContext=context||this;var allPlaces=[];var requestsReceived=0;for(var i=0;i<defIdStrings.length;i++){var curDefIdString=defIdStrings[i];var requestQuery=query;requestQuery+="&pdi="+curDefIdString;ajax.call({url:PEnvironment.boundaryjsUrl+"&act="+action+requestQuery,context:this,success:function(places){requestsReceived++;allPlaces=allPlaces.concat(places);if(requestsReceived==defIdStrings.length){callback.call(callbackContext,allPlaces)}}})}};PClientGeocoder.prototype.getPlacesQueryPage=function(action,bounds,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,context,offset,query){query=query||"";query+="&fmt=json";query+="&"+this.getBoundsQuery(bounds);query+=this.getContainmentsQuery(bounds,placetype);if(defId){query+="&pdi="+defId}else{query+="&pdi="+boundaryMatrix.getDefinitionIdForTypeId(placetype.getId(),matrixId)}if(quota==undefined){var olap=true;if(arguments.length>3&&overlap!=undefined)olap=overlap;query+="&olp="+olap}if(maxResults)query+="&max="+maxResults;if(order)query+="&ord="+order;if(quota!=undefined&&quota!=null)query+="&qta="+quota;if(offset!=undefined&&offset!=null)query+="&off="+offset;ajax.call({url:PEnvironment.boundaryjsUrl+"&act="+action+query,context:this,success:callback})};PClientGeocoder.prototype.getPlacesQueryCSV=function(action,bounds,placetype,matrixId,defId,overlap,order,quota,query){query=query||"";query+="&fmt=csv";query+="&"+this.getBoundsQuery(bounds);query+="&sid="+PEnvironment.productId;if(defId){query+="&pdi="+defId;placetype=getPlaceTypeById(boundaryMatrix.getTypeIdForDefinitionId(defId))}else{query+="&pdi="+boundaryMatrix.getDefinitionIdForTypeId(placetype.getId(),matrixId)}query+=this.getContainmentsQuery(bounds,placetype);if(quota==undefined){var olap=true;if(overlap!=undefined)olap=overlap;query+="&olp="+olap}if(order)query+="&ord="+order;if(quota!=undefined&&quota!=null)query+="&qta="+quota;setWindowLocation(PEnvironment.boundaryjsUrl+"&act="+action+query)};PClientGeocoder.prototype.getAllPlacesCSV=function(placetype,matrixId,defId,indicator,period){var query="&ind="+indicator.getID()+"&per="+period;if(defId){query+="&pdi="+defId}else{query+="&pdi="+boundaryMatrix.getDefinitionIdForTypeId(placetype.getId(),matrixId)}setWindowLocation(PEnvironment.boundaryjsUrl+"&act=all"+query+"&fmt=csv"+"&sid="+PEnvironment.productId)};PClientGeocoder.prototype.getPlaceContaining=function(center,placetypes,matrixId,defIds,callback){if(!defIds){
defIds=boundaryMatrix.getDefinitionIdForTypeId(this._getPlaceTypeIds(placetypes),matrixId)}ajax.call({url:PEnvironment.boundaryjsUrl+"&act=ctg&x="+center.lng()+"&y="+center.lat()+"&pdi="+defIds.join(","),context:this,success:callback})};PClientGeocoder.prototype.getBoundsQuery=function(bounds){var query="";if(bounds instanceof PPlace){if(bounds.typeid==0){query+="customid="+bounds.id;if(bounds.ctypeid!=null){query+="&ctypeid="+bounds.ctypeid}}else if(bounds.polysetid){query+="polyid="+bounds.id;query+="&polysetid="+bounds.polysetid}else{query+="pid="+bounds.id}}else if(bounds instanceof Array){query+="vtc=";if(bounds.length<3)return;if(!bounds[0].equals(bounds[bounds.length-1]))bounds.push(bounds[0]);for(var i=0;i<bounds.length;i++){query+=bounds[i].lat()+","+bounds[i].lng();if(i<bounds.length-1)query+=";"}}else if(bounds instanceof PLatLngBounds){var sw=bounds.getSouthWest();var ne=bounds.getNorthEast();query+="mnx="+sw.lng()+"&mny="+sw.lat()+"&mxx="+ne.lng()+"&mxy="+ne.lat()}else if(bounds instanceof PLatLng){query+="x="+bounds.lng()+"&y="+bounds.lat()}else if(bounds instanceof PRadius){var centerPoint=bounds.getCenter();query+="rlat="+centerPoint.lat();query+="&rlng="+centerPoint.lng();query+="&rd="+bounds.getDistanceMeters()}return query};PClientGeocoder.prototype.getPlacesWithin=function(bounds,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr){this.getPlacesQuery("wit",bounds,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,null,null,null,null,attr)};PClientGeocoder.prototype.getPlacesWithinCount=function(bounds,placetype,matrixId,defId,callback,overlap,quota,context){this.getPlacesQuery("wit",bounds,placetype,matrixId,defId,callback,overlap,null,null,quota,true,context)};PClientGeocoder.prototype.getPlacesWithinPage=function(bounds,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,context,offset,query){this.getPlacesQueryPage("wit",bounds,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,context,offset,query)};PClientGeocoder.prototype.getPlacesWithinCSV=function(bounds,placetype,matrixId,defId,overlap,order,quota,query){this.getPlacesQueryCSV("wit",bounds,placetype,matrixId,defId,overlap,order,quota,query)};PClientGeocoder.prototype.getPlacesContaining=function(bounds,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr){this.getPlacesQuery("ctg",bounds,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,null,null,null,null,attr)};PClientGeocoder.prototype.getPlacesContainingCount=function(bounds,placetype,matrixId,defId,callback,overlap,quota,callback){this.getPlacesQuery("ctg",bounds,placetype,matrixId,defId,callback,overlap,null,null,quota,true)};PClientGeocoder.prototype.getPlacesOverlapping=function(bounds,placetype,matrixId,defId,callback,quota,maxResults,order){this.getPlacesQuery("olp",bounds,placetype,matrixId,defId,callback,null,maxResults,order,quota)};PClientGeocoder.prototype.getPlacesOverlappingCount=function(bounds,placetype,matrixId,defId,callback,quota){this.getPlacesQuery("olp",bounds,placetype,matrixId,defId,callback,null,null,null,quota,true)};PClientGeocoder.prototype.getPlacesIntersecting=function(bounds,placetype,matrixId,defId,callback,quota,maxResults,order){this.getPlacesQuery("int",bounds,placetype,matrixId,defId,callback,null,maxResults,order,quota)};PClientGeocoder.prototype.getPlacesIntersectingCount=function(bounds,placetype,matrixId,defId,callback,quota){this.getPlacesQuery("int",bounds,placetype,matrixId,defId,callback,null,null,null,quota,true)};PClientGeocoder.prototype.getPlacesIntersectingPage=function(bounds,placetype,matrixId,defId,callback,maxResults,order,quota,context,offset,query){this.getPlacesQueryPage("int",bounds,placetype,matrixId,defId,callback,null,maxResults,order,quota,context,offset,query)};PClientGeocoder.prototype.getPlacesIntersectingCSV=function(bounds,placetype,matrixId,defId,order,quota,query){this.getPlacesQueryCSV("int",bounds,placetype,matrixId,defId,null,order,quota,query)};PClientGeocoder.prototype.getMarkersWithin=function(bounds,overlayset,callback){var query="&"+this.getBoundsQuery(bounds);if(overlayset.limit!=null){query+="&lim="+overlayset.limit}if(overlayset.offset!=null){query+="&off="+overlayset.offset}if(overlayset.noCount&&overlayset.noCount===true){query+="&nct=t"}if(overlayset.overrideLimit&&overlayset.overrideLimit===true){query+="&ovlim=t"}var url=PEnvironment.pointUrl+"&act=w&did="+overlayset.id+"&dt="+overlayset.type;if(overlayset.isPoly){url+="&typ=poly"}url+=query+"&ftr="+encodeURIComponent(overlayset.createQuery());if(overlayset.format=="csv"){url+="&fmt=csv&sid="+PEnvironment.productId;setWindowLocation(url)}else{ajax.call({url:url,context:this,success:function(response){var markers=POverlaySet.createMarkers(response.pnt);callback(markers)}})}};PClientGeocoder.prototype.getAttributeSumFromMarkersWithin=function(bounds,overlayset,callback){var query="&"+this.getBoundsQuery(bounds);var url=PEnvironment.pointUrl+"&act=s&did="+overlayset.id+"&dt="+overlayset.type;if(overlayset.isPoly){url+="&typ=poly"}url+=query+"&ftr="+encodeURIComponent(overlayset.createQuery());ajax.call({url:url,context:this,success:function(response){callback(response.pnt)}})};PClientGeocoder.prototype.getMarkersWithinCSV=function(bounds,ids){var types="";var filters="";for(var i=0;i<ids.length;i++){if(i!=0){types+=","}types+="old";if(i!=0){filters+=encodeURIComponent("/,")}}var query="&"+this.getBoundsQuery(bounds);var url=PEnvironment.pointUrl+"&did="+ids.join(",")+"&dt="+types+"&ftr="+filters+query+"&fmt=csv&sid="+PEnvironment.productId;setWindowLocation(url)};PClientGeocoder.prototype.getContainmentsQuery=function(bounds,placetype){var query="";var inContainments;if(bounds instanceof PPlace){if(bounds.isAssembledCustom()){var assembledPlaceType=bounds.aplaces[0].getType();inContainments=this.isInContainments(placetype,assembledPlaceType)}else{inContainments=this.isInContainments(placetype,bounds.getType())}if(inContainments&&(!bounds.isCustomOrPoly()||bounds.isAssembledCustom()))query+="&usecon=true"}return query};PClientGeocoder.prototype.isInContainments=function(type1,type2){var arr=[PPlaceType.NJ_RENTAL_MARKETS];for(var i=0;i<arr.length;i++){if(type1==arr[i]||type2==arr[i])return false}return true};PClientGeocoder.prototype._getPlaceTypeIds=function(placeTypes,list){if(!$.isArray(placeTypes)){placeTypes=[placeTypes]}var placeTypeIds=[];for(var i=0;i<placeTypes.length;i++){placeTypeIds.push(placeTypes[i].getId())}if(list){return placeTypeIds.join(",")}else{return placeTypeIds}};PColor=function(color){this.color=color};PColor.prototype.getColor=function(){return this.color};PColor.prototype.convertToHex=function(){var hexColor=MochiKit.Color.Color.fromHexString;return hexColor(this.color)};PColorRamp=function(name,colors,negativeColors){this.name=name;this.colors=colors;if(negativeColors){this.negativeColors=negativeColors;this.customNegative=true}else{this.negativeColors=[new PColor("FFE493"),new PColor("FFD75F"),new PColor("FFCD50"),new PColor("FFB633"),new PColor("F9A22C"),new PColor("E58E1A"),new PColor("D07A08"),new PColor("BB6600")];this.customNegative=false}};PColorRamp.prototype.getName=function(){return this.name};PColorRamp.prototype.getColors=function(){return this.colors};PColorRamp.prototype.convertToHex=function(){var hexColors=[];for(var i=0;i<this.colors.length;i++){hexColors.push(this.colors[i].convertToHex())}return hexColors};PColorRamp.prototype.getNegativeColors=function(){return this.negativeColors};PColorRamp.prototype.isCustomNegative=function(){return this.customNegative};PCopyright=function(id,text,bounds,minzoom){this.id=id;this.text=text;if(bounds)this.bounds=bounds;if(minzoom)this.minzoom=minzoom};PCube=function(inds,places,periods,opts){this.eventTypes=new Object;this.eventTypes.add="add";this.eventTypes.remove="remove";this.eventManager=new _eventManager;for(var ev in this.eventTypes)this.eventManager.registerEventID(ev);this.indicators=inds;this.places=places;this.periods=periods;this.values=[];this.charts=[];this.tables=[];this.stepplaces=[];this.useMultiMatrix=false;this.actualPlace=null;this.definitionAggs={};this.definitionAggs.definitionIdsUsed=[];this.indicatorPeriodAggs={};if(opts){this.useMultiMatrix=true;if(opts.stepplaces){this.stepplaces=opts.stepplaces}this.ignorePPlace=opts.ignorePPlace;this.actualPlace=opts.actualPlace}this.valueBoundaries=[];if(this.useMultiMatrixAggs()){var defAggs=this.stepplaces;if(this.actualPlace&&!this.ignorePPlace&&this.actualPlace.getType()!=PPlaceType.STATE){var mergeArrays=false;if(this.actualPlace.isAssembledCustom()){mergeArrays=true;var pls=this.actualPlace.getAssembledPlaces();var did=pls[0].getDefinitionId();for(var i=0;i<pls.length;i++){for(var j=0;j<defAggs.length;j++){if(pls[i].id==defAggs[j].id){defAggs.splice(j,1);break}}}}else if(!this.actualPlace.isCustomOrPoly()){mergeArrays=true;for(var i=0;i<defAggs.length;i++){if(this.actualPlace.id==defAggs[i].id){defAggs.splice(i,1);break}}}if(mergeArrays){var placesIds=_.pluck(this.places,"id");for(var i=0;i<defAggs.length;i++){var curDefAgg=defAggs[i];if($.inArray(curDefAgg.id,placesIds)==-1){this.places=this.places.concat(curDefAgg)}}}}this.clearCurrentTypeAggs();var dAggs=this.definitionAggs;if(this.places.length==0){return}var aggType=this.places[this.places.length-1].getType();if(dAggs[aggType.id]){dAggs[aggType.id].current=true}else{for(var i=0;i<this.places.length;i++){var p=this.places[i];var typeid=p.getType().id;var defid=p.getDefinitionId();if(!dAggs[typeid]){dAggs[typeid]={};dAggs[typeid].defIdToUse=[]}dAggs[typeid].current=true;if(!dAggs[typeid][defid]){dAggs[typeid][defid]=[]}dAggs[typeid][defid].push(p);if(this.actualPlace==p){dAggs[typeid].actualPlace=this.actualPlace}}}}};PCube.prototype.refreshChart=function(){for(var i=0;i<this.charts.length;i++)this.charts[i].refresh();for(var i=0;i<this.tables.length;i++)this.tables[i].refresh()};PCube.prototype.addListener=function(eventId,func){this.eventManager.registerForEvent(eventId,[],func)};PCube.prototype.getArray=function(elem){var array=[];if(elem instanceof PIndicator)array=this.indicators;else if(elem instanceof PPlace)array=this.places;else array=this.periods;return array};PCube.prototype.add=function(elem,array){if(!array)array=this.getArray(elem);array.push(elem);this.refreshChart();this.eventManager.triggerEvent("add",elem)};PCube.prototype.addPlace=function(place){this.add(place,this.places)};PCube.prototype.addIndicator=function(ind){this.add(ind,this.indicators)};PCube.prototype.addPlace=function(place){this.add(place,this.places)};PCube.prototype.addPeriod=function(period){this.add(period,this.periods)};PCube.prototype.replace=function(oldPlace,newPlace,array){if(!array)array=this.getArray(elem);array[$.inArray(oldPlace,array)]=newPlace;this.refreshChart();this.eventManager.triggerEvent("remove",oldPlace);this.eventManager.triggerEvent("add",newPlace)};PCube.prototype.replacePlace=function(oldPlace,newPlace){this.replace(oldPlace,newPlace,this.places)};PCube.prototype.remove=function(elem,array){if(!array)array=this.getArray(elem);var getCustomId=function(place){if(place instanceof PPlace&&place.getType()==PPlaceType.CUSTOM){return place.getID()}else{return null}};var customId=getCustomId(elem);for(var i=0;i<array.length;i++){var curCustomId=getCustomId(array[i]);if(customId!=null&&curCustomId!=null&&customId==curCustomId||array[i]==elem){array.splice(i,1);if(this.charts.length>0){for(var j=0;j<this.charts.length;j++){if(elem instanceof PIndicator&&this.charts[j].options.group==PChartOptions.INDICATOR||elem instanceof PPlace&&this.charts[j].options.group==PChartOptions.PLACE){var colors=this.charts[j].options.colorRamp.colors;var currentcolor=colors[i];colors.splice(i,1);colors.splice(array.length,0,currentcolor)}}}break}}this.refreshChart();this.eventManager.triggerEvent("remove",elem)};PCube.prototype.removeIndicator=function(ind){this.remove(ind,this.indicators)};PCube.prototype.removePlace=function(place){this.remove(place,this.places)};PCube.prototype.removePeriod=function(period){this.remove(period,this.periods)};PCube.prototype.getIndicators=function(){return this.indicators};PCube.prototype.getPlaces=function(){return this.places};PCube.prototype.getPeriods=function(){return this.periods};PCube.prototype.getSumOfPlaces=function(ind,per,mean,igNull,igPlaces){var indid;if(ind){indid=ind.id}else{indid=this.indicators[0].id}if(pCubeIndCache&&pCubeIndCache[indid]){ind=pCubeIndCache[ind.id]}var period;if(per)period=per;else period=this.periods[0];var ignoreIds=[];if(igPlaces!=null&&igPlaces.length>0){for(var i=0;i<igPlaces.length;i++){ignoreIds.push(String(igPlaces[i].getID()))}}var places;if(this.useMultiMatrixAggs()){places=this.getPlacesForDefinition(ind,period,igPlaces)}else{places=this.places}var sum=null;var placelength=0;var l=places.length;var valuesArr=[];for(var i=0;i<l;i++){var curPlace=places[i];var placeId=curPlace.id;var value=this.values[period][placeId][indid];if(!(ind.nodata&&value==ind.nodata)&&value!=null&&$.inArray(String(placeId),ignoreIds)==-1){sum+=value;placelength++;valuesArr.push(value)}}if(igNull||this.hasCompleteData(period,ind,valuesArr,places,igPlaces)){if(mean&&placelength>0)return sum/placelength;else return sum}else return null};PCube.prototype.getSumOfPlacesNullCheck=function(ind,per,mean){var indid;if(ind)indid=ind.id;else indid=this.indicators[0].id;var period;if(per)period=per;else period=this.periods[0];var sum=null;var placelength=0;var l=this.places.length;for(var i=0;i<l;i++){var value=this.values[period][this.places[i].id][indid];if(!(ind.nodata&&value==ind.nodata)&&value!=null){sum+=value;placelength++}else return null}return sum};PCube.prototype.getMeanOfPlaces=function(ind,per,igNull){return this.getSumOfPlaces(ind,per,true,igNull)};PCube.prototype.getMedianOfPlaces=function(ind,per){var values=this.getSortedValuesOfPlaces(ind,per);var valueslength=values.length;if(valueslength%2){var odd=valueslength/2-.5;median=values[odd]}else{var even=values[valueslength/2-1]+values[valueslength/2];even=even/2;median=even}return median};PCube.prototype.getMedianOfPlacesIgnoreNulls=function(ind,per){var values=this.getSortedValuesOfPlacesIgnoreNulls(ind,per);var valueslength=values.length;if(valueslength%2){var odd=valueslength/2-.5;median=values[odd]}else{var even=values[valueslength/2-1]+values[valueslength/2];even=even/2;median=even}return median};PCube.prototype.getSortedValuesOfPlacesIgnoreNulls=function(ind,per){var places=this.places;var indid;if(ind)indid=ind.id;else indid=this.indicators[0].id;var period;if(per)period=per;else period=this.periods[0];var values=[];for(var i=0;i<places.length;i++){var value=this.values[period][places[i].id][indid];if(!(ind.nodata&&value==ind.nodata)&&value!=null)values.push(value)}return values.sort(function(a,b){return a<b?-1:1})};PCube.prototype.getSumOfIndicators=function(place,per,mean){var placeid;if(place)placeid=place.id;else placeid=this.places[0].id;var period;if(per)period=per;else period=this.periods[0];var sum=null;var indlength=0;for(var i=0;i<this.indicators.length;i++){var value=this.values[period][placeid][this.indicators[i].id];if(!(this.indicators[i].nodata&&value==this.indicators[i].nodata)&&value!=null){sum+=value;indlength++}}if(mean&&indlength>0)return sum/indlength;else return sum};PCube.prototype.getMeanOfIndicators=function(place,per){return this.getSumOfIndicators(place,per,true)};PCube.prototype.getSortedValuesOfIndicators=function(place,per){var placeid;if(place)placeid=place.id;else placeid=this.places[0].id;var period;if(per)period=per;else period=this.periods[0];var values=[];for(var i=0;i<this.indicators.length;i++){var value=this.values[period][placeid][this.indicators[i].id];if(!(this.indicators[i].nodata&&value==this.indicators[i].nodata)&&value!=null)values.push(value)}return values.sort(function(a,b){return a<b?-1:1})};PCube.prototype.getSumOfPeriods=function(place,ind,mean){var placeid;if(place)placeid=place.id;else placeid=this.places[0].id;var indid;if(ind)indid=ind.id;else indid=this.indicators[0].id;var sum=null;var plength=0;for(var i=0;i<this.periods.length;i++){var value=this.values[this.periods[i]][placeid][indid];if(!(ind.nodata&&value==ind.nodata)&&value!=null){sum+=value;plength++}}if(mean&&plength>0)return sum/plength;else return sum};PCube.prototype.getMeanOfPeriods=function(place,ind){return this.getSumOfPeriods(place,ind,true)};PCube.prototype.getSortedValuesOfPeriods=function(place,ind){var placeid;if(place)placeid=place.id;else placeid=this.places[0].id;var indid;if(ind)indid=ind.id;else indid=this.indicators[0].id;var values=[];for(var i=0;i<this.periods.length;i++){var value=this.values[this.periods[i]][placeid][indid];if(!(ind.nodata&&value==ind.nodata)&&value!=null)values.push(value)}return values.sort(function(a,b){return a<b?-1:1})};PCube.prototype.getSortedValuesOfPlaces=function(ind,per){var places=this.places;var indid;if(ind)indid=ind.id;else indid=this.indicators[0].id;var period;if(per)period=per;else period=this.periods[0];if(this.useMultiMatrixAggs()){var places=this.getPlacesForDefinition(ind,period)}var values=this.getValuesArray(places,ind,period);if(this.hasCompleteData(period,ind,values,places))return values.sort(function(a,b){return a<b?-1:1});else return[]};PCube.prototype.getValuesObjectOfPlaces=function(ind,per){var indid;if(ind)indid=ind.id;else indid=this.indicators[0].id;var period;if(per)period=per;else period=this.periods[0];var valObj={};for(var i=0;i<this.places.length;i++){var value=this.values[period][this.places[i].id][indid];if(!(ind.nodata&&value==ind.nodata)&&value!=null){valObj[this.places[i].id]=value}else{valObj[this.places[i].id]=null}}return valObj};PCube.prototype.getValuesArray=function(places,ind,period,includeNull){var values=[];for(var i=0;i<places.length;i++){var value=this.values[period][places[i].id][ind.id];if(!(ind.nodata&&value==ind.nodata)&&value!=null){values.push(value)}else if(includeNull){values.push(null)}}return values};PCube.prototype.getValuesArrayIncludeNull=function(places,ind,period){return this.getValuesArray(places,ind,period,true)};PCube.prototype.hasCompleteData=function(period,ind,values,pls,skipped){var places=this.places;if(pls){places=pls}if(skipped==null){skipped=[]}if(!values){var values=this.getValuesArray(places,ind,period)}var numSkipped=0;if(skipped.length>0){var placeIds=_.pluck(places,"id");var skippedIds=_.pluck(skipped,"id");for(var i=0;i<skippedIds.length;i++){if($.inArray(skippedIds[i],placeIds)!=-1){numSkipped++}}}if(places.length-numSkipped==values.length){return true}else{this.showNoDataAlert();return false}};PCube.prototype.showNoDataAlert=function(){if(!PCube.dataIncomplete)noDataAlert();PCube.dataIncomplete=true};PCube.prototype.loadValues=function(callback,options){var self=this;var inds=this.indicators;var periods=this.periods;var places=this.places;if(inds.length<1||periods.length<1){callback.apply(this,[[]]);return}if(places.length<1){var values=[];values[periods[0]]=[];values[periods[0]][null]=[];values[periods[0]][null][inds[0].id]=null;callback.apply(this,[values]);return}if(options==null){options={}}if(options.includeMappings==null||typeof options.includeMappings!="boolean"){options.includeMappings=PEnvironment.pageName=="report_generate"||PEnvironment.pageName=="report_widget"}if(options.includeBGMappings==null||typeof options.includeBGMappings!="boolean"){options.includeBGMappings=false}if(options.includeChangedFIPSMappings==null||typeof options.includeChangedFIPSMappings!="boolean"){options.includeChangedFIPSMappings=true}var placeIds=[];for(var i=0;i<places.length;i++){placeIds.push(places[i].id)}for(var i=0;i<periods.length;i++){periods[i]=String(periods[i])}var getMappings=function(){var matrixIds=[];for(var i=0;i<inds.length;i++){var curInd=inds[i];var curIndId=curInd.getID();for(var j=0;j<periods.length;j++){var curPeriod=periods[j];var curPeriodIndex=$.inArray(curPeriod,curInd.periods);if(curPeriodIndex!=-1){var curMatrixId=curInd.matrixIds[curPeriodIndex];if($.inArray(curMatrixId,matrixIds)==-1){matrixIds.push(curMatrixId)}}}}var typeIds=[];var defIds=[];for(var i=0;i<places.length;i++){var type=places[i].getType();if(!type){continue}var curTypeId=type.getId();if($.inArray(curTypeId,typeIds)==-1){typeIds.push(curTypeId);for(var j=0;j<matrixIds.length;j++){var curDefId;try{curDefId=boundaryMatrix.getDefinitionIdForTypeId(curTypeId,matrixIds[j])}catch(e){continue}if($.inArray(curDefId,defIds)==-1){defIds.push(curDefId)}}}}placeLoader.loadOneToOne(placeIds,defIds,true,false,function(mappings){getValues(mappings)})};var getValues=function(mappings){var addlPlaceIds=[];if(mappings!=null){for(var i=0;i<places.length;i++){var curPlace=places[i];var curPlaceId=curPlace.getID();var curPlaceType=curPlace.getType();if(curPlaceType==PPlaceType.CENSUSTRACT||curPlaceType==PPlaceType.BLOCKGROUP){if(!options.includeBGMappings&&curPlaceType==PPlaceType.BLOCKGROUP){mappings[curPlaceId]=[];continue}if(!options.includeChangedFIPSMappings){var newMappings=[];var curMappings=mappings[curPlaceId];for(var j=0;j<curMappings.length;j++){var curMapping=curMappings[j];if(curPlace.identifier==curMapping.identifier){newMappings.push(curMapping);addlPlaceIds.push(curMapping.getID())}}mappings[curPlaceId]=newMappings;continue}}var curMappings=mappings[curPlaceId];for(var j=0;j<curMappings.length;j++){addlPlaceIds.push(curMappings[j].getID())}}}self.mappings=mappings;var indString="";for(var i=0;i<inds.length;i++){indString+=","+inds[i].id}indString=indString.substring(1);var periodString=periods.join(",");var placeString=placeIds.join(",");if(addlPlaceIds.length>0){placeString+=","+addlPlaceIds.join(",")}var func=function(values){if(addlPlaceIds.length<1){callback.apply(self,[values]);return}var newValues=[];self.valueBoundaries=[];for(var i=0;i<periods.length;i++){var curPeriod=periods[i];newValues[curPeriod]=[];self.valueBoundaries[curPeriod]=[];for(var j=0;j<places.length;j++){var curPlaceId=places[j].getID();newValues[curPeriod][curPlaceId]=[];self.valueBoundaries[curPeriod][curPlaceId]=[];for(var k=0;k<inds.length;k++){var curIndId=inds[k].getID();newValues[curPeriod][curPlaceId][curIndId]=null;self.valueBoundaries[curPeriod][curPlaceId][curIndId]=null}}}for(var i=0;i<places.length;i++){var curPlace=places[i];var curPlaceId=curPlace.getID();for(var j=0;j<inds.length;j++){var curInd=inds[j];var curIndId=curInd.getID();for(var k=0;k<periods.length;k++){var curPeriod=periods[k];var curPeriodIndex=$.inArray(curPeriod,curInd.periods);if(curPeriodIndex!=-1){var curMatrixId=curInd.matrixIds[curPeriodIndex];var defId;try{defId=boundaryMatrix.getDefinitionIdForTypeId(curPlace.getType().getId(),curMatrixId)}catch(e){continue}if(defId==curPlace.getDefinitionId()){newValues[curPeriod][curPlaceId][curIndId]=values[curPeriod][curPlaceId][curIndId];self.valueBoundaries[curPeriod][curPlaceId][curIndId]=curPlace}else{var curMappings=mappings[curPlaceId];for(var l=0;l<curMappings.length;l++){var curMapping=curMappings[l];if(defId==curMapping.getDefinitionId()){newValues[curPeriod][curPlaceId][curIndId]=values[curPeriod][curMapping.getID()][curIndId];self.valueBoundaries[curPeriod][curPlaceId][curIndId]=curMapping;break}}}}}}}callback.apply(self,[newValues])};var url=PEnvironment.indicatorUrl+"&iid="+indString+"&bid="+placeString+"&per="+periodString;var requestType;if(url.length>2e3){requestType="POST"}else{requestType="GET"}ajax.call({url:url,context:this,type:requestType,success:func})};if(options.includeMappings){var indsToLoad=[];var indsToLoadIndex={};for(var i=0;i<inds.length;i++){var curInd=inds[i];var curIndId=curInd.getID();if(curInd.periods==null||curInd.periods.length<1||curInd.matrixIds==null||curInd.matrixIds.length<1){if(pCubeIndCache[curIndId]){inds[i]=pCubeIndCache[curIndId]}else{indsToLoad.push(curIndId);indsToLoadIndex[curIndId]=i}}}if(indsToLoad.length>0){PIndicatorLoader.load(indsToLoad,function(newInds){if(PEnvironment.pageName=="report_generate"&&currentReport&&currentReport.reportType=="d"){add2009ToIndicatorForHMDAReport(newInds)}for(var i=0;i<newInds.length;i++){var curInd=newInds[i];var curIndId=curInd.getID();pCubeIndCache[curIndId]=curInd;inds[indsToLoadIndex[curIndId]]=curInd}getMappings()})}else{getMappings()}}else{getValues()}};PCube.prototype.getPlacesForDefinition=function(ind,per,ignorePlaces){if(pCubeIndCache==null||pCubeIndCache[ind.id]==null){return[]}var places=[];var foundPlaces=false;var oneToOnePlace=null;var ignoreIds=[];if(ignorePlaces!=null){ignoreIds=_.pluck(ignorePlaces,"id")}var mId=pCubeIndCache[ind.id].getMatrixIdForPeriod(per);var dAggs=this.definitionAggs;for(var i=0;i<this.places.length;i++){var p=this.places[i];if($.inArray(String(p.getID()),ignoreIds)!=-1){continue}var typeid=p.getType().id;var hasType;if(isFurman()){hasType=pCubeIndCache[ind.id].hasPlaceType(p.getType(),per)}else{hasType=pCubeIndCache[ind.id].hasPlaceType(p.getType())}if(!hasType){continue}if(dAggs[typeid].actualPlace){var oneToOne=this.mappings[dAggs[typeid].actualPlace.id];var defid=null;try{defid=boundaryMatrix.getDefinitionIdForTypeId(typeid,mId)}catch(e){continue}if(oneToOne&&oneToOne.length>0||dAggs[typeid][defid]){dAggs[typeid].oneToOnePlace=this.mappings[dAggs[typeid].actualPlace.id][0];if(oneToOne&&oneToOne.length>0){places=[dAggs[typeid].actualPlace];oneToOnePlace=dAggs[typeid].oneToOnePlace}else{places=dAggs[typeid][defid]}if($.inArray(defid,dAggs[typeid].defIdToUse)==-1){dAggs[typeid].defIdToUse.push(defid);dAggs.definitionIdsUsed.push(defid)}break}}for(var defid in dAggs[typeid]){if(isNaN(defid)){continue}var allMatrixIds=boundaryMatrix.getAllMatrixIdsForDefinitionId(defid);for(var j=0;j<allMatrixIds.length;j++){var mid=allMatrixIds[j];if(mid==mId){places=dAggs[typeid][defid];if($.inArray(defid,dAggs[typeid].defIdToUse)==-1){dAggs[typeid].defIdToUse.push(defid);dAggs.definitionIdsUsed.push(defid)}var foundPlaces=true;break}}if(isUniversalDefinitionId(defid)){places=dAggs[typeid][defid];if($.inArray(defid,dAggs[typeid].defIdToUse)==-1){dAggs[typeid].defIdToUse.push(defid);dAggs.definitionIdsUsed.push(defid)}var foundPlaces=true;break}}if(foundPlaces){break}}if(!this.indicatorPeriodAggs[ind.id]){this.indicatorPeriodAggs[ind.id]={}}this.indicatorPeriodAggs[ind.id][per]=[];this.indicatorPeriodAggs[ind.id][per]=places;this.indicatorPeriodAggs[ind.id][mId]=places;if(oneToOnePlace){var mid1=boundaryMatrix.getMatrixIdForDefinitionId(oneToOnePlace.getDefinitionId());var mid2=pCubeIndCache[ind.id].getMatrixIdForPeriod(per);if(mid1==mid2){this.indicatorPeriodAggs[ind.id][per]=[oneToOnePlace];this.indicatorPeriodAggs[ind.id][mid1]=[oneToOnePlace]}}return places};PCube.prototype.clearCurrentTypeAggs=function(){var dAggs=this.definitionAggs;for(var typeid in dAggs){dAggs[typeid].current=false}};PCube.prototype.getPlacesForIndAndPeriod=function(ind,per,matrixId){var places=[];if(this.indicatorPeriodAggs[ind.id]){if(this.indicatorPeriodAggs[ind.id][per]){places=this.indicatorPeriodAggs[ind.id][per]}else if(this.indicatorPeriodAggs[ind.id][matrixId]){places=this.indicatorPeriodAggs[ind.id][matrixId]}}return places};PCube.prototype.hasPlacesForIndAndPeriod=function(ind,per){var o=this.indicatorPeriodAggs[ind.id];if(o&&o[per]&&o[per].length>0){return true}else{return false}};PCube.prototype.useMultiMatrixAggs=function(){return this.useMultiMatrix};PCube.prototype.mergeCubesAggInfo=function(c){var arr1=this.indicatorPeriodAggs;var arr2=c.indicatorPeriodAggs;$.extend(arr1,arr2)};PEvent=function(){};PEvent.eventObjs=[];PEvent.addListener=function(source,eventName,listenerFn,mEvent){var eventObj=null;if(isMobile()&&mEvent){eventName=mEvent}if(source.addListener){eventObj=new PEventListener(source,eventName,listenerFn);source.addListener(eventName,listenerFn);this.eventObjs.push(eventObj)}else eventObj=this.addDomListener(source,eventName,listenerFn);return eventObj};PEvent.addDomListener=function(source,eventName,listenerFn){var eventObj=new PEventListener(source,eventName,listenerFn);if(source.addEventListener)source.addEventListener(eventName,listenerFn,false);else if(source.attachEvent){var f=function(){listenerFn.call(source)};eventObj.ieFunc=f;source.attachEvent("on"+eventName,eventObj.ieFunc)}this.eventObjs.push(eventObj);return eventObj};PEvent.removeListener=function(eventObj){var l=this.eventObjs.length;for(var i=0;i<l;i++){if(eventObj==this.eventObjs[i]){this.clearListener(eventObj);this.eventObjs.splice(i,1);break}}};PEvent.clearListeners=function(obj,eventid){var l=this.eventObjs.length;for(var i=0;i<l;i++){if(obj==this.eventObjs[i].obj&&eventid==this.eventObjs[i].id){this.clearListener(this.eventObjs[i]);this.eventObjs.splice(i,1);i--;l--}}};PEvent.clearInstanceListeners=function(obj){var l=this.eventObjs.length;for(var i=0;i<l;i++){if(obj==this.eventObjs[i].obj){this.clearListener(this.eventObjs[i]);this.eventObjs.splice(i,1);i--;l--}}};PEvent.clearAllListeners=function(){var l=this.eventObjs.length;for(var i=0;i<l;i++){var j=this.eventObjs[i];this.clearListener(j)}this.eventObjs=[]};PEvent.clearListener=function(j){if(j.obj.removeEventListener)j.obj.removeEventListener(j.id,j.func,false);else if(j.obj.detachEvent)j.obj.detachEvent("on"+j.id,j.ieFunc);else if(j.obj.removeListener)j.obj.removeListener(j)};PEventListener=function(obj,eventid,fn){this.obj=obj;this.id=eventid;this.func=fn};PEventManager=function(){this.listeners={};this.contexts={}};PEventManager.prototype.addListener=function(eventId,f,context){if(!f){throw"No listener function provided"}var eid=new String(eventId);if(this.listeners[eid]){this.listeners[eid].push(f);this.contexts[eid].push(context||window)}else{this.listeners[eid]=[f];this.contexts[eid]=[context||window]}};PEventManager.prototype.removeListener=function(eventId,f){var eid=new String(eventId);var listeners=this.listeners[eid];var contexts=this.contexts[eid];var l=listeners?listeners.length:0;for(var i=0;i<l;i++){if(listeners[i]==f){listeners.splice(i,1);contexts.splice(i,1)}}};PEventManager.prototype.triggerListeners=function(eventId){var passables=[];var l=arguments.length;for(var i=1;i<l;i++){passables.push(arguments[i])}var eid=new String(eventId);var listeners=this.listeners[eid];var contexts=this.contexts[eid];l=listeners?listeners.length:0;for(var i=0;i<l;i++){listeners[i].apply(contexts[i],passables)}};PGeoUtil=function(){};PGeoUtil.deg2RadObj=function(p){return{lat:ChrisVeness.llToRad(p.latitude),lon:ChrisVeness.llToRad(p.longitude)}};PGeoUtil.rad2DegObj=function(p){return new PLatLng(PGeoUtil.rad2deg(p.lat),PGeoUtil.rad2deg(p.lon))};PGeoUtil.deg2rad=function(d){return d*Math.PI/180};PGeoUtil.rad2deg=function(r){return r*180/Math.PI};PGeoUtil.distVincenty=function(p1,p2){return ChrisVeness.distVincenty(PGeoUtil.deg2RadObj(p1),PGeoUtil.deg2RadObj(p2))};PGeoUtil.distHaversine=function(p1,p2){return ChrisVeness.distHaversine(PGeoUtil.deg2RadObj(p1),PGeoUtil.deg2RadObj(p2))};PGeoUtil.distCosineLaw=function(p1,p2){return ChrisVeness.distCosineLaw(PGeoUtil.deg2RadObj(p1),PGeoUtil.deg2RadObj(p2))};PGeoUtil.moveVincenty=function(point,bearing,distance){return ChrisVeness.destVincenty(PGeoUtil.deg2RadObj(point),bearing,distance)};PIcon=function(copy,image){this.image="";this.shadow="";this.iconSize="";this.shadowSize="";this.iconAnchor=new PPoint(0,0);this.shadowAnchor=new PPoint(0,0);this.infoWindowAnchor=new PPoint(0,0);if(copy&&copy instanceof PIcon){this.image=copy.image;this.shadow=copy.shadow;this.iconSize=copy.iconSize;this.shadowSize=copy.shadowSize;this.iconAnchor=copy.iconAnchor;this.shadowAnchor=copy.shadowAnchor;this.infoWindowAnchor=copy.infoWindowAnchor}if(image)this.image=image};PIndicator=function(id){this.id=id;this.breaks=[];this.custombreaks=[];this.displayName="Unknown Indicator";this.fullDisplayNames=[];this.descriptions=[];this.periods=[];this.periodids=[];this.curPerIndex=0;this.matrixIds=[];this.unit="";this.sources="";this.measurement="";this.prohibitTrends=false;this.breakid=P_BREAKTYPE_QUANTILE_ID;this.colorRampId=null;this.nodata="-9999"}
;PIndicator.prototype.getID=function(){return this.id};PIndicator.prototype.getLabel=function(noChange){if(noChange){return this.displayName}if(PEnvironment.pageName=="widget"){var urlParams=getUrlParams();if(urlParams["sid"]&&(urlParams["sid"]==94||urlParams["sid"]==95)){if(this.id==9841103){return"State Unemployment Rate"}else if(this.id==9877403){return"Metropolitan Area Unemployment Rate"}}}if(this.containsSource(/nielsen/i,true)){if(this.getPeriod()=="2000")return this.displayName.replace(/Projected/,"");else if(this.getPeriod()=="2009")return this.displayName.replace(/Projected/,"Estimated");else if(this.getPeriod()=="2010")return"Estimated ".concat(this.displayName);else if(this.getPeriod()=="2015")return"Projected ".concat(this.displayName)}if(this.containsSource("Census")){if(this.getPeriod()==2009)return"Est. ".concat(this.displayName)}return this.displayName};PIndicator.prototype.getFullLabel=function(){if(PEnvironment.pageName=="widget"){var urlParams=getUrlParams();if(urlParams["sid"]&&(urlParams["sid"]==94||urlParams["sid"]==95)){var arr=this.getPeriod().split("-");var year=arr[0];var months=["January","February","March","April","May","June","July","August","September","October","November","December"];var month=months[parseFloat(arr[1])-1];if(this.id==9841103){return"State Unemployment Rate in "+month+" "+year}else if(this.id==9877403){return"Metropolitan Area Unemployment Rate in "+month+" "+year}}}return this.fullDisplayNames[this.curPerIndex]};PIndicator.prototype.getFullDisplayName=function(){return this.getFullLabel()};PIndicator.prototype.getDescription=function(){return this.descriptions[this.curPerIndex]};PIndicator.prototype.getSource=function(){if(this.sources[0]&&this.sources[0].name){return this.sources[0].name}else{return""}};PIndicator.prototype.getSources=function(){return this.sources};PIndicator.prototype.getMeasurement=function(){return this.measurement};PIndicator.prototype.getMeasurementToggle=function(full){var r=this.toggle;if(full){var m=this.getMeasurement();if(m=="count")r="Number";else if(m=="count2")r="Count";else if(m=="currency aggregate")r="Currency";else if(m=="total currency aggregate")r="Total currency";else if(m=="rate2")r="Rate";else r=m.substr(0,1).toUpperCase()+m.substr(1)}return r};PIndicator.prototype.setPeriod=function(period){for(var i=0;i<this.periods.length;i++){if(this.periods[i]==period){this.curPerIndex=i;if(this.legend)this.legend.redraw();return}}};PIndicator.prototype.hasPeriod=function(period){for(var i=0;i<this.periods.length;i++){if(this.periods[i]==period)return true}return false};PIndicator.prototype.getPeriod=function(){return this.periods[this.curPerIndex]};PIndicator.prototype.getPeriods=function(){return this.periods};PIndicator.prototype.getPeriodIndex=function(period){for(var i=0;i<this.periods.length;i++){if(this.periods[i]==period)return i}return false};PIndicator.prototype.getPeriodLabel=function(per){var p=per;if(p==2012&&this.getSources()[0].name=="Census"){p="2008-2012"}return p};PIndicator.prototype.getPlaceTypes=function(){var types=[];for(var i in this.breaks[this.curPerIndex]){types.push(boundaryTypes.getTypeById(i))}return types};PIndicator.prototype.getBreaks=function(numbreaks,placetype,period){var pti=placetype.id;var per=null;if(period)per=this.getPeriodIndex(period);if(!per)per=this.curPerIndex;var retVal="";if(this.custombreaks[per]&&this.custombreaks[per][pti]&&this.custombreaks[per][pti][numbreaks])retVal=this.custombreaks[per][pti][numbreaks];else if(this.breaks[per]&&this.breaks[per][pti]&&this.breaks[per][pti][numbreaks])retVal=this.breaks[per][pti][numbreaks];return retVal};PIndicator.prototype.setCustomBreaks=function(breaks,placetype,period){var breaksarr=breaks.split(",");var numbreaks=breaksarr.length-1;var pti=placetype.id;var periods=[];if(period&&period instanceof Array){periods=this.getPeriodIndexArray(this.getPeriods())}else if(period&&period==""||period==null){periods.push(this.curPerIndex)}else if(period&&period.toLowerCase()=="all"){for(var i=0;i<this.getPeriods().length;i++){periods.push(i)}}else{periods.push(this.getPeriodIndex(period))}for(var i=0;i<periods.length;i++){var per=periods[i];if(per!=null){if(!this.custombreaks[per]){this.custombreaks[per]=[]}if(!this.custombreaks[per][pti]){this.custombreaks[per][pti]=[]}this.custombreaks[per][pti][numbreaks]=breaks}}this.breakid=P_BREAKTYPE_EQUAL_INTERVAL_CUSTOM_ID;if(this.legend){this.legend.redraw()}};PIndicator.prototype.getPeriodIndexArray=function(periodArray){var indexes=[];if(periodArray instanceof Array){for(var i=0;i<periodArray.length;i++){var foundIndex=false;var currentIndex;for(var j=0;j<this.periods.length;j++){if(this.periods[j]==periodArray[i]){foundIndex=true;currentIndex=j;break}}if(foundIndex){indexes.push(currentIndex)}else{indexes.push(null)}}}return indexes};PIndicator.prototype.hasCustomBreaks=function(period,placetype,numbreaks){per=this.getPeriodIndex(period);pti=placetype.id;if(this.custombreaks[per]&&this.custombreaks[per][pti]&&this.custombreaks[per][pti][numbreaks])return true;else return false};PIndicator.prototype.getBreakId=function(){return this.breakid};PIndicator.prototype.isCategorical=function(){if(this.breakid==4){return true}else{return false}};PIndicator.prototype.restoreBreaks=function(period,placetype,numbreaks){var per,pti,numb=null;if(period)per=this.getPeriodIndex(period);if(placetype)pti=placetype.id;if(numbreaks)numb=numbreaks;if(per!=null&&pti!=null&&numb!=null&&this.custombreaks[per]&&this.custombreaks[per][pti]&&this.custombreaks[per][pti][numb])this.custombreaks[per][pti][numb]=null;else if(per!=null&&pti!=null&&this.custombreaks[per]&&this.custombreaks[per][pti])this.custombreaks[per][pti]=null;else if(per!=null&&this.custombreaks[per])this.custombreaks[per]=null;else{this.custombreaks=[];this.breakid=P_BREAKTYPE_QUANTILE_ID}if(this.legend)this.legend.redraw()};PIndicator.prototype.hasPlaceType=function(type,period){var typeId=type.getId();if(period!=null){period=this.getPeriodIndex(period)}if(period==null||period===false){period=this.curPerIndex}var types=this.breaks[period];for(var i=0;i<types.length;i++){if(types[i]!=null&&i==typeId){return true}}return false};PIndicator.prototype.createCustomBreaksJSON=function(numbreaks,curper){var custombreaks=this.custombreaks;var obj=null;var i,perlen;if(curper){i=this.curPerIndex;perlen=i+1}else{i=0;perlen=this.periodids.length}var places=this.getPlaceTypes();var placeslen=places.length;var nb;if(numbreaks)nb=[numbreaks];else nb=[2,3,4,5,6,7,8];var breaksobj={};var foundbreaks=false;for(i;i<perlen;i++){var period=i;if(custombreaks[period]){breaksobj[period]={};for(var j=0;j<placeslen;j++){var pid=places[j].id;if(custombreaks[period][pid]){breaksobj[period][pid]={};for(var k=0;k<nb.length;k++){if(custombreaks[period][pid][nb[k]]){breaksobj[period][pid][nb[k]]=custombreaks[period][pid][nb[k]];foundbreaks=true}}}}}}if(foundbreaks)obj=breaksobj;return obj};PIndicator.prototype.setCustomBreaksByJSON=function(breaks){var id=this.id;var per=this.periodids;var perlen=per.length;var places=this.getPlaceTypes();var placeslen=places.length;if(breaks&&breaks[id]){for(var i=0;i<perlen;i++){if(breaks[id][i]){var breaksper=breaks[id][i];if(!this.custombreaks[i])this.custombreaks[i]=[];for(var j=0;j<placeslen;j++){var pid=places[j].id;if(breaksper[pid]){var breaksplace=breaksper[pid];if(!this.custombreaks[i][pid])this.custombreaks[i][pid]=[];for(var k in breaksplace){if(breaksplace[k])this.custombreaks[i][pid][k]=breaksplace[k]}}}}}}};PIndicator.prototype.hasYear=function(year){var l=this.periods.length;for(var i=0;i<l;i++){if(this.periods[i].match(year))return true}return false};PIndicator.prototype.getQuarter=function(year){var l=this.periods.length;var qtr=0;for(var i=0;i<l;i++){if(this.periods[i].match(year)){var q=this.periods[i].split("q");if(q[1]&&q[1]>qtr)qtr=q[1]}}if(qtr==0)return null;else return year+"q"+qtr};PIndicator.prototype.getMonth=function(year){var l=this.periods.length;var month=0;for(var i=0;i<l;i++){if(this.periods[i].match(year)){var m=this.periods[i].split("-");if(m[1]&&m[1]>month){month=m[1];break}}}if(month==0)return null;else return year+"-"+month};PIndicator.prototype.containsSource=function(sourceName,sourceReg){hasSource=false;for(var i=0;i<this.sources.length;i++){if(sourceReg!=null&&sourceReg===true&&this.sources[i].name.match(sourceName)||this.sources[i].name==sourceName){hasSource=true;break}}return hasSource};PIndicator.prototype.getSourceList=function(useLinks,makeAbsolute,addTooltip){sources=[];for(var i=0;i<this.sources.length;i++){var source=this.sources[i];if(source.name){var sourceURL=this.getSourceURL(source);if(useLinks===true&&sourceURL!=null){if(makeAbsolute){if(sourceURL.search("www.")==-1&&sourceURL.search("http")==-1){sourceURL="http://"+PEnvironment.wwwUrl+sourceURL}}var tooltip="";if(addTooltip!=null&&addTooltip.length>0){tooltip="data-toggle='tooltip' title='"+addTooltip+"' "}sources.push("<a target='_blank' "+tooltip+"href='"+sourceURL+"'>"+source.name+"</a>")}else{sources.push(source.name)}}}return sources.join(", ")};PIndicator.prototype.getSourceURL=function(source){var url=null;if(source.link!=null&&source.link!=""){if(source.link.indexOf("http://")==0||source.link.indexOf("https://")==0){url=source.link}else if(source.link.indexOf("/")==0){url=source.link}else if(source.link.indexOf("data-directory")==0||source.link.indexOf("data_directory")==0||source.link.indexOf("datadirectory")==0){url=source.link}else{if(productProperty.exists("data_directory_page")){if(productProperty.exists("force_data_directory")){url="/"+productProperty.getValue("data_directory_page")+"#"+source.link}else{url="/our-data-directory.html#"+source.link}}else{url="/our-data-directory.html#"+source.link}}}if(isCBClone()&&P.CloneOptions.source_link_constant){url=P.CloneOptions.source_link_constant}return url};PIndicator.prototype.isMVA=function(){return this.breakid!=null&&(this.breakid==P_BREAKTYPE_EXACT_VALUE_ID||this.breakid==P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID)};PIndicator.prototype.getMatrixIdForPeriod=function(per){return this.matrixIds[this.getPeriodIndex(per)]};PIndicator.prototype.areTrendsAllowed=function(){return!this.prohibitTrends};PIndicator.prototype.getDatasetIds=function(){var srcs=this.sources;var dids=[];for(var i=0;i<srcs.length;i++){dids.push(srcs[i].datasetId)}return dids};PIndicator.prototype.hasOverlaySets=function(){var a=this.getCurrentOverlaySet();if(a){return true}else{return false}};PIndicator.prototype.getCurrentOverlaySet=function(){var o=this.getOverlaySets();var ret=null;if(o&&o[this.curPerIndex]){ret=o[this.curPerIndex]}return ret};PIndicator.prototype.getOverlaySets=function(){return this.overlaysets};PIndicator.prototype.isDataAggregatable=function(){return this.isAggregatable};PIndicator.prototype.loadBubbleIndicators=function(){var opts=this.getBubbleOptions();var ids=opts.allIds;var periods=opts.periods;var hidePeriod=opts.hidePeriod;var that=this;var numTimeFrames=opts.numberOfTimeFrames;PIndicatorLoader.load(ids,function(inds){for(var i=0;i<inds.length;i++){if(periods||hidePeriod){var hideMapIndPeriod=true;if(periods&&periods[i]){inds[i].setPeriod(periods[i])}if(hidePeriod){inds[i].hidePeriod=hidePeriod[i];if(!hidePeriod[i]){hideMapIndPeriod=false}}inds[i].numberOfTimeFrames=numTimeFrames[i]}}that.bubbleInds=inds})};PIndicator.prototype.hasBubbleOptions=function(hasGlobal){var r=false;var opts=this.getBubbleOptions();if(opts||hasGlobal&&hasGlobalIndListBubble()){r=true}return r};PIndicator.prototype.hasBubbleIndicators=function(){var r=false;if(this.getBubbleIndicators()){r=true}return r};PIndicator.prototype.getBubbleIndicators=function(){var inds=null;if(this.bubbleInds){inds=this.bubbleInds}else if(hasGlobalIndListBubble()){inds=globalIndListBubble.inds}return inds};PIndicator.prototype.getBubbleOptions=function(){var opts=null;if(hasGlobalIndListBubble()){opts=globalIndListBubble}if(this.indBubbleOptions){opts=this.indBubbleOptions}return opts};PIndicator.prototype.getReportCodeForBubbleLink=function(){return this.reportCodeForBubbleLink};PIndicatorLoader=function(){};PIndicatorLoader.load=function(inds,callback){return ajax.call({url:PEnvironment.indicatorUrl+"&iid="+inds.join(","),context:this,success:callback})};PIndicatorLoader.loadWithServices=function(inds,callback){var url=PEnvironment.dataServicesUrl+"?ty=data&t=brk&f=v&ii="+inds.join(",");if((isWidgetPage()||isCBClone())&&PEnvironment.productId){url+="&sid="+PEnvironment.productId}return ajax.call({url:url,context:this,success:callback})};PIndicatorLoaderCache=function(){this.loadCache={}};PIndicatorLoaderCache.prototype.load=function(inds,callback){var self=this;var indicators=[];var requestIds=[];for(var i=0;i<inds.length;i++){var curId=inds[i];if(this.loadCache[curId]!=null){indicators.push(this.loadCache[curId])}else{requestIds.push(curId)}}if(requestIds.length>0){requestIds=requestIds.join(",");ajax.call({url:PEnvironment.indicatorUrl+"&iid="+requestIds,context:this,success:function(reqIndicators){for(var i=0;i<reqIndicators.length;i++){var curInd=reqIndicators[i];var curId=curInd.getID();if(self.loadCache[curId]==null){self.loadCache[curId]=curInd}indicators.push(curInd)}callback(indicators)}})}else{callback(indicators)}};PInfoWindow=function(type){this.type=null;if(type){this.type=type}this.visible=true;this.isOpen=false;this.point=null;this.tabs=[];this.selectedTab=0;this.tabDivs=[];this.tabOverlap=20;this.nwDiff=0;this.tabsWidth=0;this.tabsAdjust=0;this.tabRows=[];this.tabwidth=103;this.maxRowLength=5;this.listeners=[]};PInfoWindow.prototype.selectTab=function(index){if(index<this.tabs.length)this.selectedTab=index;this.updateTabs();this.updateInfoDiv();this.create();if(this.tabs[index].tabclick)this.tabs[index].tabclick()};PInfoWindow.prototype.hide=function(){this.visible=false;this.bubbleDiv.style.visibility="hidden";this.shadowDiv.style.visibility="hidden"};PInfoWindow.prototype.show=function(){this.visible=true;this.bubbleDiv.style.visibility="visible";this.shadowDiv.style.visibility="visible"};PInfoWindow.prototype.isHidden=function(){return!this.visible};PInfoWindow.prototype.getPoint=function(){return this.point};PInfoWindow.prototype.getSelectedTab=function(){return this.selectedTab};PInfoWindow.prototype.getTabs=function(){return this.tabs};PInfoWindow.prototype.initialize=function(){this.createBubble();this.createShadow();this.createClose()};PInfoWindow.prototype.updateTabs=function(){for(var i=0;i<this.tabDivs.length;i++)this.updateTab(i)};PInfoWindow.prototype.updateTab=function(i){var labelDiv=this.tabDivs[i].firstChild.nextSibling;var label=this.tabs[i].label;var backImg;var frontImg;if(this.tabDivs[i].row==1){backImg=this.map.kamap.server+"images/tab_back_"+this.tabwidth+".png";frontImg=this.map.kamap.server+"images/tab_front_"+this.tabwidth+".png"}else{backImg=this.map.kamap.server+"images/tab_back_back_rows_"+this.tabwidth+".png";frontImg=this.map.kamap.server+"images/tab_front_back_rows_"+this.tabwidth+".png"}var width=this.tabwidth-33;var tStyle="style='position:relative; left:0px; width:"+width+"px; height:21px; font-weight:bold; top:-2px;'";if(i==this.selectedTab){addPNGBackground(this.tabDivs[i].firstChild,frontImg);labelDiv.innerHTML="<table "+tStyle+" class='tab selected'><tr><td><b>"+label+"</b></td></tr></table>";this.tabDivs[i].style.zIndex=this.tabs.length+1;if(this.tabDivs[i].row!=1)this.tabDivs[i].style.top="-4px"}else{addPNGBackground(this.tabDivs[i].firstChild,backImg);labelDiv.innerHTML="<table "+tStyle+" class='tab'><tr><td><a href='#' onclick='return false;'>"+label+"</a></td></tr></table>";this.tabDivs[i].style.zIndex=this.tabs.length-i;this.tabDivs[i].style.top=0}};PInfoWindow.prototype.createTabs=function(){var tabcnt=0;var rowcnt=0;var adjustTop=0;for(var i=0;i<this.tabs.length;i++){if(tabcnt==0){var row=document.createElement("span");row.style.position="absolute";row.style.top=adjustTop+"px";var adjustLeft=parseInt(this.nw.style.width)}var tabDivMain=document.createElement("div");tabDivMain.style.position="absolute";tabDivMain.style.top="0px";tabDivMain.style.height="49px";tabDivMain.style.width=this.tabwidth+"px";tabDivMain.style.left=adjustLeft+"px";var tabDiv=document.createElement("div");var tabLabel=document.createElement("div");tabDiv.style.position="absolute";tabDiv.style.width=this.tabwidth+"px";tabDiv.style.height="49px";tabDiv.style.left="0px";tabDiv.style.top="0px";tabDiv.style.textAlign="center";tabLabel.style.position="absolute";tabLabel.style.top="0px";tabLabel.style.left="0px";tabLabel.style.textAlign="center";tabLabel.style.width=this.tabwidth+"px";tabLabel.style.cursor="pointer";tabLabel.style.paddingTop="4px";tabDivMain.appendChild(tabDiv);tabDivMain.appendChild(tabLabel);this.tabDivs.push(tabDivMain);tabDivMain.row=rowcnt+1;this.updateTab(i);tabcnt++;if(i<this.maxRowLength){this.tabsWidth+=parseInt(tabDiv.style.width);if(i<this.tabs.length-1&&tabcnt<this.maxRowLength){this.tabsWidth-=this.tabOverlap}}tabLabel.infowin=this;tabLabel.index=i;this.listeners.push(PEvent.addListener(tabLabel,"mousedown",function(){this.infowin.selectTab(this.index)}));row.appendChild(tabDivMain);if(i<this.tabs.length-1&&tabcnt<this.maxRowLength){adjustLeft-=this.tabOverlap}adjustLeft+=parseInt(tabDivMain.style.width);if(tabcnt==this.maxRowLength||i==this.tabs.length-1){this.tabRows.push(row);adjustTop=adjustTop-19;if(tabcnt==this.maxRowLength){tabcnt=0;rowcnt++;this.nLeft=adjustLeft}if(!this.nLeft){this.nLeft=adjustLeft}}}this.tabsWidth-=this.nwDiff};PInfoWindow.prototype.createBubble=function(){this.bubbleCanvas=this.map.getMarkerCanvas();this.bubbleDiv=document.createElement("div");this.bubbleDiv.className="info-bubble-container";this.bubbleDiv.style.width="100%";this.bubbleDiv.style.height="100%";this.bubbleDiv.style.zIndex=Z_BUBBLE;this.bubbleDiv.style.cursor="default";this.bubbleDiv.style.textAlign="left";var f=function(e){if(!e){e=window.event}e.cancelBubble=true;if(e.stopPropagation){e.stopPropagation()}};this.listeners.push(PEvent.addListener(this.bubbleDiv,"click",f));if(this.tabs.length>1||this.tabs.length>0&&this.tabs[0].showSingleTab){this.nw=this.createImage("tab_nw.png",11,49);this.nwDiff=14;this.createTabs()}else this.nw=this.createImage("bubble_nw.png",25,25);this.n=this.createImage("bubble_n.png",1,25);this.ne=this.createImage("bubble_ne.png",25,25);this.w=this.createImage("bubble_w.png",25,1);this.c=this.createImage("bubble_center.png",1,1);this.e=this.createImage("bubble_e.png",25,1);this.sw=this.createImage("bubble_sw.png",25,96);this.s1=this.createImage("bubble_s.png",1,96);this.pointer=this.createImage("bubble_pointer.png",98,96);this.s2=this.createImage("bubble_s.png",1,96);this.se=this.createImage("bubble_se.png",25,96)};PInfoWindow.prototype.createShadow=function(){this.shadowCanvas=this.map.getShadowCanvas();this.shadowDiv=document.createElement("div");this.shadowDiv.className="info-bubble-shadow";this.s_nw=this.createImage("bubble_shadow_nw.png",70,30);this.s_n=this.createImage("bubble_shadow_n.png",1,30);this.s_ne=this.createImage("bubble_shadow_ne.png",70,30);this.s_c=this.createImage("bubble_shadow_center.png",1,1);this.s_sw=this.createImage("bubble_shadow_sw.png",70,60);this.s_s1=this.createImage("bubble_shadow_s.png",1,60);this.s_pointer=this.createImage("bubble_shadow_pointer.png",140,60);this.s_s2=this.createImage("bubble_shadow_s.png",1,60);this.s_se=this.createImage("bubble_shadow_se.png",70,60);this.s_w_img=this.createImage("bubble_shadow_w.png",360,280);this.s_e_img=this.createImage("bubble_shadow_e.png",360,280);this.s_w=this.createDivImage(this.s_w_img);this.s_e=this.createDivImage(this.s_e_img)};PInfoWindow.prototype.createClose=function(){this.closeImage=this.createImage("button_close.gif",14,13);this.closeImage.style.cursor="pointer";this.closeImage.style.zIndex=this.tabs.length+3;var infoWin=this;this.listeners.push(PEvent.addListener(this.closeImage,"mousedown",function(){infoWin.close();infoWin.map.clearInfoWindowBoundary()}))};PInfoWindow.prototype.encloseSize=function(w,h){var nWidth=this.tabsWidth;if(nWidth>w){this.tabsAdjust=nWidth-w;nWidth=w}this.n.style.width=w-nWidth+"px";this.c.style.width=w+this.nwDiff+this.tabsAdjust+"px";var s1w=Math.ceil((w-parseInt(this.pointer.style.width))*.5);var s2w=Math.floor((w-parseInt(this.pointer.style.width))*.5)+this.tabsAdjust;this.s1.style.width=s1w+"px";this.s2.style.width=s2w+"px";this.w.style.height=h+"px";this.c.style.height=h+"px";this.e.style.height=h+"px"};PInfoWindow.prototype.encloseShadowSize=function(w,h){var skew=10;this.s_n.style.width=w+this.tabsAdjust+"px";var s_s1w=Math.floor((w-parseInt(this.s_pointer.style.width)+30)*.5)-skew;var s_s2w=Math.ceil((w-parseInt(this.s_pointer.style.width)+30)*.5+this.tabsAdjust)+skew;this.s_s1.style.width=s_s1w+"px";this.s_s2.style.width=s_s2w+"px";this.s_w.style.width=parseInt(this.s_nw.style.width)+h+"px";this.s_e.style.width=parseInt(this.s_ne.style.width)+h+this.tabsAdjust+"px";this.s_c.style.width=w-(parseInt(this.s_w.style.width)-parseInt(this.s_nw.style.width))+30+"px";this.s_w.style.height=h+"px";this.s_c.style.height=h+"px";this.s_e.style.height=h+"px"};PInfoWindow.prototype.positionInternals=function(){var bubblePaddingWidth=15;var bubblePaddingHeight=5;this.nw.style.left=0;this.nw.style.top=0;this.n.style.top=0;this.ne.style.top=0;var nLeft=this.nLeft;if(!nLeft)nLeft=parseInt(this.nw.style.width);if(this.tabDivs.length>1||this.tabDivs.length>0&&this.tabs[0].showSingleTab){this.n.style.top=parseInt(this.tabDivs[0].style.height)-parseInt(this.ne.style.height)+"px";this.ne.style.top=this.n.style.top}this.n.style.left=nLeft+"px";var neLeft=parseInt(this.n.style.left)+parseInt(this.n.style.width);this.ne.style.left=neLeft+"px";this.w.style.left=0;this.w.style.top=this.nw.style.height;this.c.style.left=this.nw.style.width;this.c.style.top=this.nw.style.height;this.e.style.left=this.ne.style.left;this.e.style.top=parseInt(this.ne.style.top)+parseInt(this.ne.style.height)+"px";this.sw.style.left=0;this.sw.style.top=parseInt(this.w.style.top)+parseInt(this.w.style.height)+"px";this.s1.style.left=this.sw.style.width;this.s1.style.top=this.sw.style.top;this.pointer.style.left=parseInt(this.s1.style.left)+parseInt(this.s1.style.width)+"px";this.pointer.style.top=this.sw.style.top;this.s2.style.left=parseInt(this.pointer.style.left)+parseInt(this.pointer.style.width)+"px";this.s2.style.top=this.sw.style.top;this.se.style.left=parseInt(this.s2.style.left)+parseInt(this.s2.style.width)+"px";this.se.style.top=this.sw.style.top;this.infoDiv.style.left=parseInt(this.c.style.left)-(parseInt(this.nw.style.width)-bubblePaddingWidth)+"px";this.infoDiv.style.top=parseInt(this.c.style.top)-bubblePaddingHeight+"px";this.s_nw.style.left=0;this.s_nw.style.top=0;this.s_n.style.left=this.s_nw.style.width;this.s_n.style.top=0;this.s_ne.style.left=parseInt(this.s_n.style.left)+parseInt(this.s_n.style.width)+"px";this.s_ne.style.top=0;this.s_w.style.left=0-parseInt(this.s_w.style.width)+parseInt(this.s_nw.style.width)+10+"px";this.s_w.style.top=this.s_nw.style.height;this.s_c.style.left=parseInt(this.s_w.style.left)+parseInt(this.s_w.style.width)+"px";this.s_c.style.top=this.s_nw.style.height;this.s_e.style.left=parseInt(this.s_c.style.left)+parseInt(this.s_c.style.width)+"px";this.s_e.style.top=this.s_ne.style.height;this.s_sw.style.left=parseInt(this.s_w.style.left)-40+"px";this.s_sw.style.top=parseInt(this.s_w.style.top)+parseInt(this.s_w.style.height)+"px";this.s_s1.style.left=parseInt(this.s_sw.style.left)+parseInt(this.s_sw.style.width)+"px";this.s_s1.style.top=this.s_sw.style.top;this.s_pointer.style.left=parseInt(this.s_s1.style.left)+parseInt(this.s_s1.style.width)+"px";this.s_pointer.style.top=this.s_sw.style.top;this.s_s2.style.left=parseInt(this.s_pointer.style.left)+parseInt(this.s_pointer.style.width)+"px";this.s_s2.style.top=this.s_sw.style.top;this.s_se.style.left=parseInt(this.s_s2.style.left)+parseInt(this.s_s2.style.width)+"px";this.s_se.style.top=this.s_sw.style.top;this.s_w_img.style.left=0-(parseInt(this.s_w_img.style.width)-parseInt(this.s_w.style.width))+"px";this.s_e_img.style.left=parseInt(this.s_e.style.width)-parseInt(this.s_e_img.style.width)+"px";var closeImageOffset=2;this.closeImage.style.left=parseInt(this.ne.style.left)+closeImageOffset+"px";this.closeImage.style.top=parseInt(this.ne.style.top)+parseInt(this.ne.style.height)-parseInt(this.closeImage.style.height)-closeImageOffset+"px";this.closeImage.id="infoWindowClose"};PInfoWindow.prototype.updateInfoDiv=function(){var content=this.tabs[this.selectedTab].content;if(content.data||content.innerHTML!=null){while(this.infoDiv.hasChildNodes())this.infoDiv.removeChild(this.infoDiv.firstChild);this.infoDiv.appendChild(content)}else this.infoDiv.innerHTML=content};PInfoWindow.prototype.createInfoDiv=function(){this.infoDiv=document.createElement("div");this.infoDiv.style.position="absolute";this.infoDiv.style.background="#FFFFFF";this.infoDiv.style.border="none";this.infoDiv.style.zIndex=this.tabs.length+2;var f=function(e){if(!e){e=window.event}e.cancelBubble=true;if(e.stopPropagation){e.stopPropagation()}};this.listeners.push(PEvent.addListener(this.infoDiv,"mousedown",f));this.updateInfoDiv()};PInfoWindow.prototype.create=function(){this.createInfoDiv();this.bubbleDiv.appendChild(this.nw);var adjustTop=0;var rows=this.tabRows;for(var i=0;i<rows.length;i++){rows[i].style.top=adjustTop+"px";rows[i].style.zIndex=rows.length-i;this.bubbleDiv.appendChild(rows[i]);adjustTop=adjustTop-19}this.bubbleDiv.appendChild(this.n);this.bubbleDiv.appendChild(this.ne);this.bubbleDiv.appendChild(this.w);this.bubbleDiv.appendChild(this.c);this.bubbleDiv.appendChild(this.e);this.bubbleDiv.appendChild(this.sw);this.bubbleDiv.appendChild(this.s1);this.bubbleDiv.appendChild(this.pointer);this.bubbleDiv.appendChild(this.s2);this.bubbleDiv.appendChild(this.se);this.bubbleDiv.appendChild(this.infoDiv);this.bubbleDiv.appendChild(this.closeImage);this.shadowDiv.appendChild(this.s_nw);this.shadowDiv.appendChild(this.s_n);this.shadowDiv.appendChild(this.s_ne);this.shadowDiv.appendChild(this.s_w);this.shadowDiv.appendChild(this.s_c);this.shadowDiv.appendChild(this.s_e);this.shadowDiv.appendChild(this.s_sw);this.shadowDiv.appendChild(this.s_s1);this.shadowDiv.appendChild(this.s_pointer);this.shadowDiv.appendChild(this.s_s2);this.shadowDiv.appendChild(this.s_se);this.addBubbleToMap();var infoWidth=this.infoDiv.offsetWidth;var infoHeight=this.infoDiv.offsetHeight;if(infoWidth<DEFAULT_INFODIV_WIDTH)infoWidth=DEFAULT_INFODIV_WIDTH;if(infoHeight<DEFAULT_INFODIV_HEIGHT)infoHeight=DEFAULT_INFODIV_HEIGHT;this.encloseSize(infoWidth,infoHeight);var shadowWidth=Math.ceil(infoWidth*.75);var shadowHeight=Math.ceil(infoHeight*.5);this.encloseShadowSize(shadowWidth,shadowHeight);this.positionInternals();this.adjustBubble();this.addBubbleToMap();this.resize();this.slideMap();this.isOpen=true;this.map.eventManager.triggerEvent("infowindowopen")};PInfoWindow.prototype.resize=function(){this.bubbleDiv.style.width=this.getWidth()+"px";this.bubbleDiv.style.height=this.getHeight()+"px"};PInfoWindow.prototype.close=function(){this.clearListeners();this.removeDiv(this.bubbleDiv);this.map.kamap.removeObject(this.bubbleDiv);this.removeDiv(this.shadowDiv);this.map.kamap.removeObject(this.shadowDiv);this.isOpen=false;this.visible=false;this.type=null;this.map.eventManager.triggerEvent("infowindowclose")};PInfoWindow.prototype.clearListeners=function(){for(var i=0;i<this.listeners.length;i++)PEvent.removeListener(this.listeners[i]);this.listeners=[]};PInfoWindow.prototype.removeDiv=function(o){while(o.childNodes.length)o.removeChild(o.firstChild)};PInfoWindow.prototype.addBubbleToMap=function(){this.map.kamap.addObjectGeo(this.bubbleCanvas,this.whereGeo.x,this.whereGeo.y,this.bubbleDiv);this.map.kamap.addObjectGeo(this.shadowCanvas,this.whereGeo.x,this.whereGeo.y,this.shadowDiv)};PInfoWindow.prototype.adjustBubble=function(){var offsetX=0;var offsetY=0;var shadowOffsetX=0;var shadowOffsetY=0;if(this.marker||this.map.getOverlaySets().length>0){if(this.marker)var icon=this.marker.icon;else var icon=this.map.getOverlaySets()[0].icon;offsetX=icon.infoWindowAnchor.x-icon.iconAnchor.x;offsetY=icon.infoWindowAnchor.y-icon.iconAnchor.y;shadowOffsetX=-5;shadowOffsetY=5}this.bubbleDiv.xOffset=-parseInt(this.pointer.style.left)+offsetX;this.bubbleDiv.yOffset=-this.getHeight()+offsetY;this.shadowDiv.xOffset=-parseInt(this.s_pointer.style.left)+shadowOffsetX;this.shadowDiv.yOffset=-(parseInt(this.s_c.style.height)+parseInt(this.s_pointer.style.height)+parseInt(this.s_n.style.height))+shadowOffsetY};PInfoWindow.prototype.slideMap=function(){var controlMarginLeft=0;var controlMarginTop=0;for(var i=0;i<this.map.controls.length;i++){if(this.map.controls[i].marginLeft)controlMarginLeft=this.map.controls[i].marginLeft;if(this.map.controls[i].marginTop)controlMarginTop=this.map.controls[i].marginTop}var legendMarginRight=0;var legendMarginTop=0;var searchMarginTop=0;if(isWidgetOrEmbedMap()&&$("body").width()>550&&$("body").height()>500){var lp=P.instances.legendPanel;var legendMarginRight=0;if(lp){var $div1=$(this.bubbleDiv);var $div2=lp.$container;if(areElementsOverlapping($div1,$div2)){legendMarginRight=$div2.width()}}var s=P.instances.search;if(s){var $div1=$(this.bubbleDiv);var $div2=s.$form;if(areElementsOverlapping($div1,$div2)){searchMarginTop=$div2.position().top+$div2.height()}}var $z=$("#zoomControl");if($z.length){var $div1=$(this.bubbleDiv);var $div2=$z;if(areElementsOverlapping($div1,$div2)){controlMarginLeft=$div2.position().left+$div2.width()}}var $c=$(".map-layer-tool-button");if($c.length){var $div1=$(this.bubbleDiv);var $div2=$c;if(areElementsOverlapping($div1,$div2)){controlMarginLeft=$div2.position().left+$div2.width()}}}var paddingTop=7+controlMarginTop+searchMarginTop+legendMarginTop;var paddingLeft=7+controlMarginLeft;var paddingBottom=25;var paddingRight=7+legendMarginRight;var mapExtents=this.map.kamap.getGeoExtents();var mapMin=this.map.kamap.geoToPix(mapExtents[0],mapExtents[1]);var mapMax=this.map.kamap.geoToPix(mapExtents[2],mapExtents[3]);var mapMinX=mapMin[0]+paddingLeft;var mapMinY=mapMin[1]-paddingBottom;var mapMaxX=mapMax[0]-paddingRight;var mapMaxY=mapMax[1]+paddingTop;var point=this.map.kamap.geoToPix(this.whereGeo.x,this.whereGeo.y);var pointMinX=point[0]+this.bubbleDiv.xOffset;var pointMinY=point[1];var pointMaxX=point[0]+(this.map.kamap.getObjectWidth(this.bubbleDiv)+this.bubbleDiv.xOffset+this.nwDiff);var tabsHeight=0;if(this.tabRows.length>1)tabsHeight=(this.tabRows.length-1)*49;var pointMaxY=point[1]+this.bubbleDiv.yOffset-tabsHeight;var moveX=0;var moveY=0;if(pointMaxX>mapMaxX)moveX+=mapMaxX-pointMaxX;else if(pointMinX<mapMinX)moveX-=pointMinX-mapMinX;if(pointMinY>mapMinY)moveY+=mapMinY-pointMinY;else if(pointMaxY<mapMaxY)moveY-=pointMaxY-mapMaxY;if(moveX!=0||moveY!=0)this.map.kamap.slideBy(moveX,moveY)};PInfoWindow.prototype.getHeight=function(){return parseInt(this.nw.style.height)+parseInt(this.w.style.height)+parseInt(this.pointer.style.height)};PInfoWindow.prototype.getWidth=function(){return parseInt(this.nw.style.width)+parseInt(this.n.style.width)+parseInt(this.ne.style.width)+this.tabsWidth};PInfoWindow.prototype.createImage=function(src,w,h,left,top,display){var ret=document.createElement("img");ret.style.display=display==null?"inline":display;ret.style.position="absolute";ret.style.border="none";ret.style.margin="0";ret.style.padding="0";ret.style.MozUserSelect="none";if(left!=null&&left!="")ret.style.left=left+"px";if(top!=null&&top!="")ret.style.top=top+"px";if(w!=null&&w!="")ret.style.width=w+"px";if(w!=null&&h!="")ret.style.height=h+"px";var server=this.map.kamap.server;ret.src=this.map.kamap.server+"images/"+src;if(src.match("png"))fixPNG(ret);return ret};PInfoWindow.prototype.createDivImage=function(i){var ret=document.createElement("div");ret.style.position="absolute";ret.style.overflow="hidden";ret.appendChild(i);return ret};PInfoWindow.prototype.getInfoWindowType=function(){return this.type}
;PInfoWindowTab=function(label,content,metadata,stab){this.label=label;this.content=content;this.metadata=metadata?metadata:null;this.showSingleTab=stab};PinIconSelector=function(defaultIcon){this.pins={shapes:[{id:2,icon:PinIcons.triangle180_medium_white},{id:3,icon:PinIcons.circle_medium_white},{id:6,icon:PinIcons.square_medium_white},{id:4,icon:PinIcons.star_medium_white},{id:10,icon:PinIcons.plus_medium_white},{id:1,icon:PinIcons.triangle_medium_white},{id:7,icon:PinIcons.flag_medium_white},{id:9,icon:PinIcons.pie_medium_white},{id:5,icon:PinIcons.diamond_medium_white},{id:11,icon:PinIcons.el_medium_white}],sizes:[{id:1,name:"Small",icon:PinIcons.triangle_white},{id:2,name:"Medium",icon:PinIcons.triangle_medium_white},{id:3,name:"Large",icon:PinIcons.triangle_large_white}],colors:[{id:1,rgb:"ff9832"},{id:5,rgb:"5dcaf7"},{id:4,rgb:"5df75d"},{id:6,rgb:"f75d5d"},{id:8,rgb:"ffffff"},{id:7,rgb:"fff600"}]};if(defaultIcon!=null){this.currentIcon=defaultIcon;this.currentShape=defaultIcon.categoryid;this.currentSize=defaultIcon.sizeid;this.currentColor=defaultIcon.colorid}else{this.currentShape=1;this.currentSize=1;this.currentColor=1;this.currentIcon=null;this._setCurrentIcon()}this.$shapeIconSelector=null;this.$sizeIconSelector=null;this.$colorIconSelector=null;this.selectorTimers=[]};PinIconSelector.prototype.toggle=function($link,$parent,callback){var which=$link.data("which");var $selector=this._getSelectorForWhich(which);if($selector===false){return}if(this._selectorExists(which)){for(var i=0;i<this.selectorTimers.length;i++){clearTimeout(this.selectorTimers[i])}if($selector.is(":visible")){$selector.fadeOut(300)}else{$(".icon-selector").hide();this._shadeCurrentIconOptions();this._positionSelector($link,$selector);$selector.fadeIn(300)}}else{$(".icon-selector").hide();this._buildIconSelector($link,$parent,callback)}};PinIconSelector.prototype.getCurrentIcon=function(){return this.currentIcon};PinIconSelector.prototype._buildIconSelector=function($link,$parent,callback){var self=this;var which=$link.data("which");var $selector;if(which==1){if(this._selectorExists(which)){this._shadeCurrentIconOptions();this.$shapeIconSelector.fadeIn(300);return}var shapeCount=this.pins.shapes.length;var iconsPerRow=Math.ceil(shapeCount/2);trs=[$("<tr />")];$table=$("<table />");var currentIconsInRow=0;var currentRow=0;for(var i=0;i<shapeCount;i++){var curShape=this.pins.shapes[i];$td=$("<td />");$td.addClass("icon-option icon-shape-option-"+curShape.id);$td.data("shapeId",curShape.id);$td.click(function(){$(".icon-selector").hide();var changed=self._iconSelected(1,$(this).data("shapeId"));if(callback!=null){callback(self.currentIcon,changed)}});$img=$("<img />",{src:curShape.icon.image});$td.append($img);trs[currentRow].append($td);currentIconsInRow++;if(currentIconsInRow==iconsPerRow){trs.push($("<tr />"));currentRow++}}for(var i=0;i<trs.length;i++){$table.append(trs[i])}$selector=$("<div />");$selector.append($table)}else if(which==2){if(this._selectorExists(which)){this._shadeCurrentIconOptions();this.$sizeIconSelector.fadeIn(300);return}$table=$("<table />");for(var i=0;i<this.pins.sizes.length;i++){var curSize=this.pins.sizes[i];$tr=$("<tr />");$td=$("<td />");$td.addClass("icon-option icon-size-option-"+curSize.id);$td.data("sizeId",curSize.id);$td.click(function(){$(".icon-selector").hide();var changed=self._iconSelected(2,$(this).data("sizeId"));if(callback!=null){callback(self.currentIcon,changed)}});$divImage=$("<div />");$divImage.addClass("icon-selector-size-image");$img=$("<img />",{src:curSize.icon.image});$divImage.append($img);$divText=$("<div />");$divText.addClass("icon-selector-size-text");$divText.text(curSize.name);$td.append($divImage,$divText);$tr.append($td);$table.append($tr)}$selector=$("<div />");$selector.append($table)}else if(which==3){if(this._selectorExists(which)){this._shadeCurrentIconOptions();this.$colorIconSelector.fadeIn(300);return}$table=$("<table />");$tr=$("<tr />");$table.append($tr);for(var i=0;i<this.pins.colors.length;i++){var curColor=this.pins.colors[i];$td=$("<td />");$td.addClass("icon-option icon-color-option-"+curColor.id);$td.data("colorId",curColor.id);$td.click(function(){$(".icon-selector").hide();var changed=self._iconSelected(3,$(this).data("colorId"));if(callback!=null){callback(self.currentIcon,changed)}});$colorBox=$("<div />");$colorBox.addClass("icon-selector-color-box");$colorBox.css("background","#"+curColor.rgb);$td.append($colorBox);$tr.append($td)}$selector=$("<div />");$selector.append($table)}else{return}$selector.addClass("icon-selector");this._positionSelector($link,$selector);this.selectorTimers[which]=null;$selector.mouseout(function(){self.selectorTimers[which]=setTimeout(function(){$selector.fadeOut(300)},2500)});$selector.mouseover(function(){clearTimeout(self.selectorTimers[which])});if($parent!=null){$parent.append($selector)}else{$("body").append($selector)}if(which==1){this.$shapeIconSelector=$selector}else if(which==2){this.$sizeIconSelector=$selector}else if(which==3){this.$colorIconSelector=$selector}this._shadeCurrentIconOptions();$selector.fadeIn(300)};PinIconSelector.prototype._shadeCurrentIconOptions=function(){if(this.$shapeIconSelector!=null){this.$shapeIconSelector.find(".icon-option").removeClass("current");this.$shapeIconSelector.find(".icon-shape-option-"+this.currentShape).addClass("current")}if(this.$sizeIconSelector!=null){this.$sizeIconSelector.find(".icon-option").removeClass("current");this.$sizeIconSelector.find(".icon-size-option-"+this.currentSize).addClass("current")}if(this.$colorIconSelector!=null){this.$colorIconSelector.find(".icon-option").removeClass("current");this.$colorIconSelector.find(".icon-color-option-"+this.currentColor).addClass("current")}};PinIconSelector.prototype._iconSelected=function(which,id){if(which==1){if(this.currentShape==id){return false}this.currentShape=id}else if(which==2){if(this.currentSize==id){return false}this.currentSize=id}else if(which==3){if(this.currentColor==id){return false}this.currentColor=id}else{return false}this._setCurrentIcon();return true};PinIconSelector.prototype._setCurrentIcon=function(){for(var i=0;i<PinIconsById.length;i++){if(PinIconsById[i]==null){continue}var curPinIcon=PinIconsById[i];if(curPinIcon.categoryid==this.currentShape&&curPinIcon.sizeid==this.currentSize&&curPinIcon.colorid==this.currentColor){this.currentIcon=curPinIcon;return true}}return false};PinIconSelector.prototype._getSelectorForWhich=function(which){if(which==1){return this.$shapeIconSelector}else if(which==2){return this.$sizeIconSelector}else if(which==3){return this.$colorIconSelector}else{return false}};PinIconSelector.prototype._selectorExists=function(which){var $selector=this._getSelectorForWhich(which);return $selector!=null&&$selector.length>0&&$selector.closest("body").size()>0};PinIconSelector.prototype._positionSelector=function($link,$selector){var linkPosition=$link.position();$selector.css({left:linkPosition.left,top:linkPosition.top+$link.height()+5})};PLabelManager=function(opts){this.hiddenSets={};this.zoomOffset=0;this.defaultZoom=10;if(opts!=null){if(opts.zoomOffset!=null){this.zoomOffset=opts.zoomOffset}if(opts.defaultZoom!=null){this.defaultZoom=opts.defaultZoom}else{this.defaultZoom=Math.max(0,this.defaultZoom-this.zoomOffset)}}};PLabelManager.prototype.updateMapLabels=function(){var args=this.generateMapLabelArguments(true);this.removeAllLabelSets();this._updateLabelCheckboxes();if(args.length<1){return}var self=this;ajax.call({url:PEnvironment.labelUrl+"&act=all&"+args.join("&"),dataType:"json",success:function(results){if(results&&results.tc&&results.tc.labels!=null){self._setupLabels(results.tc.labels)}}})};PLabelManager.prototype.hideLabelSet=function(id,type,childSets){if(id&&type){var set=getActiveOverlaySetByIdAndType(id,type);if(set==null){return}var sets=[{id:id,type:type}];if(childSets){for(var i=0;i<set.children.length;i++){sets.push({id:set.children[i].id,type:set.children[i].type})}}var overlaySets=map.getOverlaySets().slice(0);for(var i=0;i<sets.length;i++){var curSet=sets[i];this.hiddenSets[curSet.id+curSet.type]=true;for(var j=0;j<overlaySets.length;j++){var curMapSet=overlaySets[j];if(curMapSet.id===id&&curMapSet.type===type){curMapSet.hideLabels=true}if(curMapSet.name=="labels"+curSet.id+curSet.type){map.removeOverlaySet(curMapSet)}}}}};PLabelManager.prototype.showLabelSet=function(id,type,childSets){if(id&&type){var set=getActiveOverlaySetByIdAndType(id,type);if(set==null){return}var sets=[{id:id,type:type}];if(childSets){for(var i=0;i<set.children.length;i++){sets.push({id:set.children[i].id,type:set.children[i].type})}}var displaySets=0;showSetLoop:for(var i=0;i<sets.length;i++){var curSet=sets[i];var overlaySets=map.getOverlaySets();for(var j=0;j<overlaySets.length;j++){var curMapSet=overlaySets[j];if(curMapSet.id===id&&curMapSet.type===type){curMapSet.hideLabels=false}if(curMapSet.name=="labels"+curSet.id+curSet.type){this.hiddenSets[curSet.id+curSet.type]=false;continue showSetLoop}}this.hiddenSets[curSet.id+curSet.type]=false;displaySets++}if(displaySets>0){this.updateMapLabels()}}};PLabelManager.prototype.isHidden=function(id,type){if(id&&type){if(this.hiddenSets[id+type]==null){return null}else{return this.hiddenSets[id+type]==true}}};PLabelManager.prototype.removeLabelSet=function(id,type,removeHidden){if(id&&type){var overlaySets=map.getOverlaySets();for(var i=0;i<overlaySets.length;i++){var curSet=overlaySets[i];if(curSet.name=="labels"+id+type){map.removeOverlaySet(curSet);break}}}if(removeHidden==true){this.hiddenSets[id+type]=null}};PLabelManager.prototype.removeAllLabelSets=function(clearHiddenList){var overlaySets=map.getOverlaySets().slice(0);for(var i=0;i<overlaySets.length;i++){var curSet=overlaySets[i];if(curSet.name.indexOf("labels")==0){map.removeOverlaySet(curSet)}}if(clearHiddenList==true){this.hiddenSets={}}};PLabelManager.prototype.resetLabelManager=function(removeFromMap){if(removeFromMap==true){this.removeAllLabelSets()}this.hiddenSets={}};PLabelManager.prototype.getLabelCount=function(id,type,callback){ajax.call({url:PEnvironment.labelUrl+"&act=cnt&id="+id+"&type="+type,dataType:"json",success:function(results){if(results&&results.tc&&results.tc.count!=null){callback(results.tc.count)}}})};PLabelManager.prototype.toggleHidden=function(elem,id,type){if(!$(elem).is("input")){$(elem).toggleClass("checked")}if(elem&&id&&type){if(elem.checked||$(elem).hasClass("checked")){this.showLabelSet(id,type,true)}else{this.hideLabelSet(id,type,true);if($(elem).hasClass("checked")){}}}};PLabelManager.prototype.setHiddenNoUpdate=function(id,type,hidden){if(id&&type){var set=getActiveOverlaySetByIdAndType(id,type);if(set==null){return}var sets=[{id:id,type:type}];for(var i=0;i<set.children.length;i++){sets.push({id:set.children[i].id,type:set.children[i].type})}if(hidden!=true){hidden=null}for(var i=0;i<sets.length;i++){this.hiddenSets[sets[i].id+sets[i].type]=hidden}}};PLabelManager.prototype.generateMapLabelArguments=function(excludeHidden){var args=[];var curZoom=map.getZoom();var tempOverlaySet=new POverlaySet;var overlays=map.getOverlaySets(true,true);var osets=[];var dlosets=[];for(var i=0;i<overlays.length;i++){var curOverlay=overlays[i];var curOverlayZoom=curOverlay.labelZoom;if(curOverlayZoom!=null){curOverlayZoom=Math.max(0,curOverlayZoom-this.zoomOffset)}if(curOverlayZoom!=null&&curZoom<curOverlayZoom||curOverlayZoom==null&&curZoom<this.defaultZoom){continue}if(curOverlay.id&&!curOverlay.withLayer){if(excludeHidden!=true||!this.isHidden(curOverlay.id,curOverlay.type)){if(curOverlay.type=="old"){osets.push(curOverlay)}else if(curOverlay.type=="dl"){dlosets.push(curOverlay)}}if(curOverlay.children.length>0){if(excludeHidden!=true||!this.isHidden(curOverlay.id,curOverlay.type)){for(var j=0;j<curOverlay.children.length;j++){var curChildSet=curOverlay.children[j];if(curChildSet.type=="old"){osets.push(curChildSet)}else if(curChildSet.type=="dl"){dlosets.push(curChildSet)}}}}}}for(var i=0;i<osets.length;i++){var curSet=osets[i];args.push("o"+i+"="+curSet.id);if(curSet.filtersbyicons.length>0){var ofilters=curSet.filtersbyicons;var combinedFilter=_.chain(ofilters).map(function getOverlaySetFilterQuery(filter){return decodeURIComponent(tempOverlaySet.createFilterQuery(filter))}).join(",").value();args.push("o"+i+"f0"+"="+encodeURIComponent(combinedFilter))}else{var filterGroups=curSet.filtergroups;var filterCount=0;for(curGroup in filterGroups){if(!curGroup.match("_HIDE")){var curFilters=filterGroups[curGroup];if(curFilters.length>0){var combinedFilter=_.chain(curFilters).map(function getOverlaySetFilterQuery(filter){return decodeURIComponent(tempOverlaySet.createFilterQuery(filter))}).join(",").value();args.push("o"+i+"f"+filterCount+"="+encodeURIComponent(combinedFilter));filterCount++}}}}}for(var i=0;i<dlosets.length;i++){var curSet=dlosets[i];if(curSet.id){args.push("dlo"+i+"="+curSet.id)}}if(args.length>0){var mapBounds=map.getBounds();args.push("minx="+mapBounds.getSouthWest().lng());args.push("miny="+mapBounds.getSouthWest().lat());args.push("maxx="+mapBounds.getNorthEast().lng());args.push("maxy="+mapBounds.getNorthEast().lat());if(productProperty.exists("live_map_boundary_island")){args.push("islpd="+productProperty.getValue("live_map_boundary_island")[0]);if(liveMapBoundaryIsland!=null&&liveMapBoundaryIsland.getDefinitionId()!=null){args.push("islpddi="+liveMapBoundaryIsland.getDefinitionId())}}if(productProperty.exists("live_map_custom_region_island")){args.push("islcus="+productProperty.getValue("live_map_custom_region_island").join(","))}}return args};PLabelManager.prototype._updateLabelCheckboxes=function(){var curZoom=map.getZoom();var overlaySets=map.getOverlaySets();for(var j=0;j<overlaySets.length;j++){var curSet=overlaySets[j];var curSetZoom=curSet.labelZoom;if(curSetZoom!=null){curSetZoom=Math.max(0,curSetZoom-this.zoomOffset)}if(curSetZoom!=null&&curZoom<curSetZoom||curSetZoom==null&&curZoom<this.defaultZoom){var checkbox=$("#label"+curSet.id+"[type=checkbox]");var checkbox=$("#label"+curSet.id);if(checkbox.length>0){if(!checkbox.is("input")){checkbox.addClass("disabled");checkbox.removeClass("checked");checkbox.tooltip({title:"Please zoom in to enable labels.",placement:"left",container:"body"})}else{checkbox.attr("disabled",true);checkbox.attr("checked",false);$("#label"+curSet.id+"Label").addClass("disabled");$("#label"+curSet.id+"Label").attr("title","Please zoom in to enable labels.");checkbox.attr("title","Please zoom in to enable labels.")}this.setHiddenNoUpdate(curSet.id,curSet.type,true)}}else{var checkbox=$("#label"+curSet.id+"[type=checkbox]");var checkbox=$("#label"+curSet.id);if(checkbox.length>0){if(!checkbox.is("input")){checkbox.removeClass("disabled");checkbox.tooltip("disable")}else{checkbox.attr("disabled",null);$("#label"+curSet.id+"Label").removeClass("disabled");$("#label"+curSet.id+"Label").attr("title","")}checkbox.attr("title","")}if(isCBClone()){if(this.isHidden(curSet.id,curSet.type)!=false&&(this.isHidden(curSet.id,curSet.type)==true||(curSet.hideLabels||curSet.hidelabels))){this.setHiddenNoUpdate(curSet.id,curSet.type,true)}}}}};PLabelManager.prototype._setupLabels=function(labels){var params=getUrlParams(true);if(params["printFormat"]=="true"){return}var sets={};for(var i=0;i<labels.length;i++){var curLabel=labels[i];var curSetId=curLabel.setid;var curSetType=curLabel.settype;if(sets[curSetId+curSetType]==null){sets[curSetId+curSetType]={};sets[curSetId+curSetType].markers=[];sets[curSetId+curSetType].id=curSetId}var labelLatLng=new PLatLng(curLabel.lat,curLabel.lng);var labelAnchor=new PPoint(10,28);var labelIcon=new PIcon;labelIcon.image=PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=1&tx="+encodeURIComponent(curLabel.label.toUpperCase())+"&sid="+PEnvironment.productId;labelIcon.iconAnchor=labelAnchor;var labelMarker=new PMarker(labelLatLng,labelIcon);labelMarker.setCursor("move");sets[curSetId+curSetType].markers.push(labelMarker)}var olabels=null;var hasUrlParam=false;if(params["o"]&&typeof this.paramLoadDone=="undefined"){this.paramLoadDone=true;hasUrlParam=true;var ids=params["olabels"];if(ids){var olabels={};ids=ids.split(",");for(var i=0;i<ids.length;i++){olabels[ids[i]]=true}}}var ids=[];for(set in sets){var labelSet=new POverlaySet(sets[set].markers);labelSet.name="labels"+set;labelSet.withLayer=true;labelSet.isLabel=true;labelSet.parentsetId=sets[set].id;if(olabels&&olabels[sets[set].id]||!hasUrlParam&&!this.hiddenSets[set]){map.addOverlaySet(labelSet);ids.push(sets[set].id)}}};PLabelManager.prototype.getLabelSetIds=function(){var sets=P.instances.map.getOverlaySets();var ids=[];if(sets){for(var i=0;i<sets.length;i++){var s=sets[i];if(s.isLabel){ids.push(s.parentsetId)}}}if(ids.length>0){return ids}else{return null}};PLargeMapControl=function(){};PLargeMapControl.prototype.attach=function(map){var kamap=map.kamap;this.kaZoomer=new kaZoomer;this.kaZoomer.left=null;this.kaZoomer.right=7;this.kaZoomer.top=50;this.kaZoomer.attach(kamap);this.marginRight=7};PLargeMapControl.prototype.remove=function(map){this.kaZoomer.remove()};PlatformRebuildPopup=function(){this.$overlay=null;this.$intialPopup=null;this.$switchPopup=null;if(session.get("prpa")==null){session.put("prpa",false);session.save()}if(session.get("prpa")!=1&&session.get("prpa")!=2){if(PEnvironment.pageName=="maps"){this._initialPopup()}}};PlatformRebuildPopup.prototype.switchPopup=function(){if(session.get("prpa")==2){window.location="/newmaps";return}var self=this;this._displayOverlay();if(this.$switchPopup!=null){this.$switchPopup.slideDown(400);return}this.$switchPopup=$("<div />");this.$switchPopup.attr("id","platform-rebuild-switch-popup");this.$switchPopup.addClass("platform-rebuild__popup platform-rebuild__popup__switch");$("body").append(this.$switchPopup);var $content=$("<div />");$content.addClass("content");$content.html("<h1>Dig in and explore the Beta version of the new PolicyMap!</h1>This beta version includes:<ul><li>Contemporary mapping platform, building footprints, 22 zoom levels and 3D maps</li><li>New trend charts available by clicking on the map</li><li>Deeper analytics with Multi-Layer Mapping</li><li>Fluid custom region builder that also allows you to save and edit regions</li></ul><a href='https://policymap.helpdocs.io/' target='_blank'>Visit our support page</a> to learn more about these features!<br /><br /><i>The New PolicyMap is currently optimized for Google Chrome only and all PolicyMap features are not yet in the beta release. You can easily toggle between the two versions.</i><br /><br /><a href='https://www.policymap.com/policymap-newsletter/' target='_blank'>Sign up</a> for our newsletter to stay on top of upcoming releases.<br />");this.$switchPopup.append($content);var $buttonContainter=$("<div />");$buttonContainter.addClass("button-container");var $cancelButton=$("<img />");$cancelButton.addClass("button");$cancelButton.attr({src:PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=10&hp=10&tx=Cancel&sid="+PEnvironment.productId,alt:"Ok"});$cancelButton.click(function(){self._close(self.$switchPopup)});$buttonContainter.append($cancelButton);var $prButton=$("<img />");$prButton.addClass("button");$prButton.attr({src:PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=10&hp=10&tx=Take%20Me%20There&sid="+PEnvironment.productId,alt:"Ok"});$prButton.click(function(){session.put("prpa",2);session.save();window.location="/newmaps"});$buttonContainter.append($prButton);this.$switchPopup.append($buttonContainter);this._position(this.$switchPopup);$(window).on("resize",function(){self._position(self.$switchPopup)});this.$switchPopup.slideDown(400)};PlatformRebuildPopup.prototype._initialPopup=function(){this._displayOverlay();if(this.$initialPopup!=null){this.$initialPopup.slideDown(400);return}this.$intialPopup=$("<div />");this.$intialPopup.attr("id","platform-rebuild-initial-popup");this.$intialPopup.addClass("platform-rebuild__popup platform-rebuild__popup__initial");$("body").append(this.$intialPopup);var $content=$("<div />");$content.addClass("content");$content.html("<h1>Dig Deeper: The New PolicyMap is Here!</h1>To explore the new Beta site, just click on the <img src='/images/legacy-to-pr-link-image.png' class='legacy-to-pr-icon'/> link above.");this.$intialPopup.append($content);var $okButton=$("<img />");$okButton.addClass("button");$okButton.attr({src:PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=10&hp=10&tx=Ok&sid="+PEnvironment.productId,alt:"Ok"});var self=this;$okButton.click(function(){session.put("prpa",1);session.save();self._close(self.$intialPopup)});this.$intialPopup.append($okButton);this._position(this.$intialPopup);$(window).on("resize",function(){self._position(self.$intialPopup)});this.$intialPopup.slideDown(400)};PlatformRebuildPopup.prototype._displayOverlay=function(){if(this.$overlay==null){this.$overlay=$("<div />");this.$overlay.attr("id","platform-rebuild-overlay");this.$overlay.addClass("platform-rebuild__overlay");var self=this;this.$overlay.click(function(){if(self.$intialPopup!=null&&self.$intialPopup.is(":visible")){session.put("prpa",1);session.save();self._close(self.$intialPopup)}else if(self.$switchPopup!=null&&self.$switchPopup.is(":visible")){self._close(self.$switchPopup)}});$("body").append(this.$overlay)}this.$overlay.fadeIn(400)};PlatformRebuildPopup.prototype._position=function($popup){var wHeight=$(window).height();var wWidth=$(window).width();$popup.css({top:(wHeight-$popup.height())/2,left:(wWidth-$popup.width())/2})};PlatformRebuildPopup.prototype._close=function($popup){this.$overlay.fadeOut(400);$popup.slideUp(400)};PLatLng=function(arg1,lng){if(arg1 instanceof PAddress){this.latitude=arg1.y;this.longitude=arg1.x}else{this.latitude=arg1;this.longitude=lng}};PLatLng.prototype.lat=function(){return this.latitude};PLatLng.prototype.lng=function(){return this.longitude};PLatLng.prototype.latRadians=function(){return this.latitude*Math.PI/180};PLatLng.prototype.lngRadians=function(){return this.longitude*Math.PI/180};PLatLng.prototype.toString=function(){return"("+this.latitude+", "+this.longitude+")"};PLatLng.prototype.equals=function(other){return this.latitude==other.latitude&&this.longitude==other.longitude};PLatLng.prototype.distanceFrom=function(from){return PGeoUtil.distVincenty(from,this)};PLatLng.prototype.moveBy=function(bearing,meters){return PGeoUtil.moveVincenty(this,bearing,meters)};PLatLng.prototype.getPlacesContaining=function(placetype,matrixId,defId,callback,overlap,maxResults,order){(new PClientGeocoder).getPlacesContaining(this,placetype,matrixId,defId,callback,overlap,maxResults,order)};PLatLngBounds=function(arg1,arg2){this.sw=null;this.ne=null;if(arg2 instanceof PLatLng){if(arg1)this.sw=arg1;if(arg2)this.ne=arg2}else{this.ne=PGeoUtil.moveVincenty(arg1,"45 1 1N",arg2);this.sw=PGeoUtil.moveVincenty(arg1,"135 1 1S",arg2)}};PLatLngBounds.prototype.contains=function(latlng){if(latlng.lat()>=this.sw.lat()&&latlng.lat()<=this.ne.lat()&&latlng.lng()>=this.sw.lng()&&latlng.lng()<=this.ne.lng())return true;else return false};PLatLngBounds.prototype.containsBounds=function(other){if(this.sw.lat()<=other.sw.lat()&&this.ne.lat()>=other.ne.lat()&&this.sw.lng()<=other.sw.lng()&&this.ne.lng()>=other.ne.lng())return true;else return false};PLatLngBounds.prototype.extend=function(latlng){if(this.sw.lat()>latlng.lat())this.sw.latitude=latlng.lat();else if(this.ne.lat()<latlng.lat())this.ne.latitude=latlng.lat();if(this.sw.lng()>latlng.lng())this.sw.longitude=latlng.lng();else if(this.ne.lng()<latlng.lng())this.ne.longitude=latlng.lng()};PLatLngBounds.prototype.getSouthWest=function(){return this.sw};PLatLngBounds.prototype.getNorthEast=function(){return this.ne};PLatLngBounds.prototype.toSpan=function(){var dLat=Math.abs(this.ne.lat()-this.sw.lat());var dLng=Math.abs(this.ne.lng()-this.sw.lng());return new PLatLng(dLat,dLng)};PLatLngBounds.prototype.isEmpty=function(){if(this.sw==null||this.ne==null)return true;else return false};PLatLngBounds.prototype.getCenter=function(){var size=this.toSpan();var lat=this.sw.lat()+size.lat()*.5;var lng=this.sw.lng()+size.lng()*.5;return new PLatLng(lat,lng)};PLatLngBounds.prototype.getPlacesWithin=function(placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr){(new PClientGeocoder).getPlacesWithin(this,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr)};PLatLngBounds.prototype.getPlacesWithinCount=function(placetype,matrixId,defId,callback,overlap,quota){(new PClientGeocoder).getPlacesWithinCount(this,placetype,matrixId,defId,callback,overlap,quota)};PLatLngBounds.prototype.getPlacesWithinPage=function(placetype,matrixId,defId,callback,overlap,maxResults,order,quota,context,offset,query){(new PClientGeocoder).getPlacesWithinPage(this,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,context,offset,query)};PLatLngBounds.prototype.getPlacesWithinCSV=function(placetype,matrixId,defId,overlap,order,quota,query){(new PClientGeocoder).getPlacesWithinCSV(this,placetype,matrixId,defId,overlap,order,quota,query)};PLatLngBounds.prototype.getPlacesContaining=function(placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr){(new PClientGeocoder).getPlacesContaining(this,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr)};PLatLngBounds.prototype.getPlacesContainingCount=function(placetype,matrixId,defId,callback,overlap,quota){(new PClientGeocoder).getPlacesContainingCount(this,placetype,matrixId,defId,callback,overlap,quota)};PLatLngBounds.prototype.getPlacesOverlapping=function(placetype,matrixId,defId,callback,quota,maxResults,order,quota){(new PClientGeocoder).getPlacesOverlapping(this,placetype,matrixId,defId,callback,quota,maxResults,order,quota)};PLatLngBounds.prototype.getPlacesOverlappingCount=function(placetype,matrixId,defId,callback,quota,quota){(new PClientGeocoder).getPlacesOverlappingCount(this,placetype,matrixId,defId,callback,quota,quota)};PLatLngBounds.prototype.getPlacesIntersecting=function(placetype,matrixId,defId,callback,quota,maxResults,order,quota){(new PClientGeocoder).getPlacesIntersecting(this,placetype,matrixId,defId,callback,quota,maxResults,order,quota)};PLatLngBounds.prototype.getPlacesIntersectingCount=function(placetype,matrixId,defId,callback,quota,quota){(new PClientGeocoder).getPlacesIntersectingCount(this,placetype,matrixId,defId,callback,quota,quota)};PLatLngBounds.prototype.getPlacesIntersectingPage=function(placetype,matrixId,defId,callback,maxResults,order,quota,context,offset,query){(new PClientGeocoder).getPlacesIntersectingPage(this,placetype,matrixId,defId,callback,maxResults,order,quota,context,offset,query)};PLatLngBounds.prototype.getPlacesIntersectingCSV=function(placetype,matrixId,defId,order,quota,query){(new PClientGeocoder).getPlacesIntersectingCSV(this,placetype,null,null,order,quota,query)};PLatLngBounds.prototype.getMarkersWithin=function(overlayset,callback){(new PClientGeocoder).getMarkersWithin(this,overlayset,callback)};PLatLngBounds.prototype.getMarkersWithinCSV=function(ids){(new PClientGeocoder).getMarkersWithinCSV(this,ids)};PLatLngBounds.prototype.toString=function(){return"("+this.sw+", "+this.ne+")"};PLatLngBounds.prototype.getAggregates=function(placeType,callback,woverlap,wmax,worder,wquota,coverlap,cmax,corder,cquota,attr){var self=this;self.getPlacesWithin(placeType,function(placesWithin){if(placesWithin.length>0){callback(placesWithin)}else{self.getPlacesContaining(placeType,null,null,function(placesContaining){callback(placesContaining)},coverlap,cmax,corder,cquota,attr)}},woverlap,wmax,worder,wquota,attr)};PLegend=function(colorramp,numbreaks){this.indicator=null;this.indicatorList=[];if(colorramp){this.colorRamp=colorramp;this.selectedColorRamp=colorramp;this.isDefault=false}else{this.colorRamp=PColorRamp.DEFAULT;this.selectedColorRamp=PColorRamp.DEFAULT;this.isDefault=true}if(numbreaks)this.numbreaks=numbreaks;else this.numbreaks=DEFAULT_NUMBREAKS;this.typeconfig=PPlaceTypeConfig.PLEGEND;this.nodatacolor=new PColor("CCCCCC")};PLegend.prototype.getCurrentPlaceType=function(){return this.getBoundaryType()};PLegend.prototype.getBoundaryType=function(){var btds=session.get(this.instanceId+"btds")&&session.get(this.instanceId+"btds").constructor==Object?session.get(this.instanceId+"btds"):{};if(this.indicator&&btds[this.indicator.id]&&this.isValidBoundaryType(btds[this.indicator.id])){return this.setBoundaryType(btds[this.indicator.id])}var scale=null;if(this.map&&this.map.kamap)scale=this.map.kamap.getCurrentScale();else if(map&&map.kamap)scale=map.kamap.getCurrentScale();if(this._boundaryType&&(this.scale&&this.scale==scale)&&this.indicator!=null&&this.indicator.hasPlaceType(this._boundaryType,this.indicator.getPeriod())){return this._boundaryType}this.scale=scale;if(scale&&this.indicator){var zooms=this.typeconfig.zooms;var l=zooms.length;var latestNonDefaultType=null;for(var i=l-1;i>=0;i--){if(zooms[i]){if(zooms[i].length){var l2=zooms[i].length;for(var j=0;j<l2;j++){if(scale<=P_SCALES_DEFAULT[i]&&this.getBoundaryDefinitionId(zooms[i][j].id)!=null&&this.indicator.breaks[this.indicator.curPerIndex][zooms[i][j].id]){if(this.showTypeInShadeBy(zooms[i][j].id)){this._boundaryType=zooms[i][j];return this._boundaryType}else{latestNonDefaultType=zooms[i][j]}}}}else if(scale<=P_SCALES_DEFAULT[i]&&this.getBoundaryDefinitionId(zooms[i].id)!=null&&this.indicator.breaks[this.indicator.curPerIndex][zooms[i].id]){if(this.showTypeInShadeBy(zooms[i].id)){this._boundaryType=zooms[i];return this._boundaryType}else latestNonDefaultType=zooms[i]}}}if(latestNonDefaultType){this._boundaryType=latestNonDefaultType;return latestNonDefaultType}if(PEnvironment.pageName=="analytics"){var highestZoomType=this.getBoundaryTypeAtHighestZoom();if(highestZoomType){this._boundaryType=highestZoomType;return highestZoomType}}if(this.indicator.maxscale&&scale<=this.indicator.maxscale){for(var i=0;i<l;i++){if(zooms[i]){if(zooms[i].length){for(var j=0;j<zooms[i].length;j++){if(this.getBoundaryDefinitionId(zooms[i][j].id)!=null&&this.indicator.breaks[this.indicator.curPerIndex][zooms[i][j].id]){if(this.showTypeInShadeBy(zooms[i][j].id)){this._boundaryType=zooms[i][j];return this._boundaryType}else latestNonDefaultType=zooms[i]}}}else if(this.getBoundaryDefinitionId(zooms[i].id)!=null&&this.indicator.breaks[this.indicator.curPerIndex][zooms[i].id]){if(this.showTypeInShadeBy(zooms[i].id)){this._boundaryType=zooms[i];return this._boundaryType}else latestNonDefaultType=zooms[i]}}}}if(latestNonDefaultType){this._boundaryType=latestNonDefaultType;return latestNonDefaultType}}return null};PLegend.prototype.getCurrentBoundaryDefinitionId=function(){var type=this.getBoundaryType();if(type==null){return null}return this.getBoundaryDefinitionId(type.getId())};PLegend.prototype.getBoundaryDefinitionId=function(typeId){try{var defId=boundaryMatrix.getDefinitionForTypeId(typeId,this.indicator.matrixIds[this.indicator.curPerIndex],true);return defId}catch(e){return null}};PLegend.prototype.setIndicator=function(ind){this.indicator=ind;this.indicator.legend=this;this.redraw();if(this.map){this.map.eventManager.triggerEvent("setindicator",ind)}if(PEnvironment.pageName==="analytics"){map.eventManager.triggerEvent("setindicator",ind)}};PLegend.prototype.removeIndicator=function(){if(this.map)this.map.eventManager.triggerEvent("removeindicator",this.indicator);this.indicator=null;this.redraw()};PLegend.prototype.redraw=function(){if(this.map){var kLayers=this.map.kamap.getCurrentMap().getLayers();if(this.indicator!=null)kLayers[0].legend=this;else kLayers[0].legend=null;this.map.refresh()}if(this.map)this.map.refreshWidget(this.map.widgetIndicator)};PLegend.prototype.getIndicator=function(){return this.indicator};PLegend.prototype.setColorRamp=function(colorramp,restore){this.isDefault=restore!=null&&restore===true&&colorramp==PColorRamp.DEFAULT;this.colorRamp=colorramp;this.selectedColorRamp=colorramp;this.redraw()
;$(window).trigger(P.events.COLOR_RAMP_CHANGED)};PLegend.prototype.getColorRamp=function(){return this.colorRamp};PLegend.prototype.getColors=function(){var colorramp=[];if(this.indicator.nodata)colorramp.push(this.nodatacolor.getColor());var colorRampToUse=null;var colorRampColors=[];var customColors=false;if(this.indicator&&this.indicator.colorRampId!=null&&(this.indicator.isMVA()||this.selectedColorRamp==PColorRamp.DEFAULT&&this.isDefault)){colorRampToUse=colorRamps.getRampById(this.indicator.colorRampId);if(colorRampToUse!=null){this.colorRamp=colorRampToUse;colorRampColors=colorRampToUse.getColors()}var customColors=this.indicator.isMVA()}if(colorRampToUse==null){this.colorRamp=this.selectedColorRamp;colorRampColors=this.selectedColorRamp.getColors()}var negativeColors=this.colorRamp.getNegativeColors();var negativeLength=negativeColors.length;var negativeCount=0;if(this.getBreaks()!=""&&this.colorRamp.isCustomNegative()){var breaks=this.getBreaks().split(",");var l=breaks.length-1;for(var i=0;i<l;i++){if(breaks[i]<0&&!(this.indicator.nodata&&breaks[i]==this.indicator.nodata))negativeCount++}}for(var i=0;i<negativeCount;i++){var colorIndex=i*Math.floor(negativeLength/negativeCount)%negativeLength+1;if(i==negativeCount-1){colorramp.push(negativeColors[0].getColor())}else{colorramp.push(negativeColors[negativeLength-colorIndex].getColor())}}var numBreaks=this.getNumberOfBreaks()-colorramp.length;var numColorRampColors=colorRampColors.length;if(this.indicator.nodata)numBreaks+=1;if(customColors||numColorRampColors<numBreaks||numBreaks>8||numColorRampColors<8){for(var i=0;i<numBreaks;i++){var colorIndex=i*Math.floor(numColorRampColors/numBreaks)%numColorRampColors;if(numColorRampColors<=5){colorramp.push(colorRampColors[colorIndex].getColor())}else if(i==numBreaks-1){colorramp.push(colorRampColors[numColorRampColors-1].getColor())}else if(numBreaks==5&&i==3&&!customColors){colorramp.push(colorRampColors[colorIndex+1].getColor())}else{colorramp.push(colorRampColors[colorIndex].getColor())}}}else{var colorIndexes;switch(numBreaks){case 0:colorIndexes=[];break;case 1:colorIndexes=[8];break;case 2:colorIndexes=[1,8];break;case 3:colorIndexes=[1,4,8];break;case 4:colorIndexes=[1,3,6,8];break;case 5:colorIndexes=[1,3,5,6,8];break;case 6:colorIndexes=[1,2,4,5,7,8];break;case 7:colorIndexes=[1,3,4,5,6,7,8];break;case 8:colorIndexes=[1,2,3,4,5,6,7,8];break}_.each(colorIndexes,function(colorIndex){colorramp.push(colorRampColors[colorIndex-1].getColor())})}return colorramp};PLegend.prototype.setNumberOfBreaks=function(numbreaks){if(numbreaks>=2&&numbreaks<=8){this.numbreaks=numbreaks;this.redraw()}};PLegend.prototype.getNumberOfBreaks=function(){var breaks=this.numbreaks;if(this.indicator&&this.indicator.defaultNumBreaks){breaks=this.indicator.defaultNumBreaks}else if(this.indicator!=null&&(this.indicator.breakid==P_BREAKTYPE_EXACT_VALUE_ID||this.indicator.breakid==P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID)&&this.getBoundaryType()&&this.indicator.breaks[this.indicator.curPerIndex][this.getBoundaryType().id]){breaks=this.indicator.breaks[this.indicator.curPerIndex][this.getBoundaryType().id].length-1}else if(this.isPrerenderedBoundary()&&this.getBoundaryType()){breaks=DEFAULT_NUMBREAKS}return breaks};PLegend.prototype.getBreaks=function(){var retVal="";if(this.indicator!=null&&this.getBoundaryType()){if(this.indicator.custombreaks[this.indicator.curPerIndex]&&this.indicator.custombreaks[this.indicator.curPerIndex][this.getBoundaryType().id]&&this.indicator.custombreaks[this.indicator.curPerIndex][this.getBoundaryType().id][this.getNumberOfBreaks()])retVal=this.indicator.custombreaks[this.indicator.curPerIndex][this.getBoundaryType().id][this.getNumberOfBreaks()];else if(this.indicator.breaks[this.indicator.curPerIndex]&&this.indicator.breaks[this.indicator.curPerIndex][this.getBoundaryType().id]&&this.indicator.breaks[this.indicator.curPerIndex][this.getBoundaryType().id][this.getNumberOfBreaks()])retVal=this.indicator.breaks[this.indicator.curPerIndex][this.getBoundaryType().id][this.getNumberOfBreaks()];if(this.indicator.nodata)retVal=this.indicator.nodata+","+retVal}return retVal};PLegend.prototype.getEncodedBreaks=function(){var breaks=this.getBreaks().split(",");var l=breaks.length;var encoded="";for(var i=0;i<l;i++){encoded+=encodeURIComponent(breaks[i]);if(i<l-1)encoded+=":"}return encoded};PLegend.prototype.getFormattedBreaks=function(increment){if(this.indicator!=null){var ind=this.indicator;var breaks=this.getBreaks().split(",");if(this.indicator.breakid!=P_BREAKTYPE_EXACT_VALUE_ID&&this.indicator.breakid!=P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID){for(var i=0;i<breaks.length;i++){var exp=breaks[i].split("E");if(exp.length>1&&exp[0]&&Math.pow(10,exp[1]))breaks[i]=exp[0]*Math.pow(10,exp[1])+"";var dec=null;if(increment)dec=PWebUtil.getDecimalPlaces(increment);breaks[i]=PWebUtil.formatNumber(breaks[i],ind.unit,dec)}}return breaks}};PLegend.prototype.getIncrementedBreaks=function(increment){if(this.indicator!=null){var ind=this.indicator;var breaks=this.getBreaks().split(",");var l=breaks.length;var incremented=[];var dec=PWebUtil.getDecimalPlaces(increment);for(var i=0;i<l;i++){var firstBreak=Number(breaks[i]);firstBreak=firstBreak.toFixed(dec);firstBreak=Number(firstBreak)+Number(increment);incremented.push(PWebUtil.formatNumber(firstBreak,ind.unit,dec))}return incremented}};PLegend.prototype.setIndicatorList=function(indicatorList){this.indicatorList=indicatorList;if(this.map)this.map.refreshWidget(this.map.widgetIndicator)};PLegend.prototype.getIndicatorList=function(){return this.indicatorList};PLegend.prototype.setNoDataColor=function(color){this.nodatacolor=color};PLegend.prototype.lockBoundaryType=function(){this._lockBoundaryType=true};PLegend.prototype.unlockBoundaryType=function(){this._lockBoundaryType=false;this.clearStoredScale()};PLegend.prototype.boundaryTypeIsLocked=function(indid){var btds=session.get(this.instanceId+"btds")&&session.get(this.instanceId+"btds").constructor==Object?session.get(this.instanceId+"btds"):{};if(btds[indid])return true;else return false};PLegend.prototype.setLockBoundaryTypeGlobally=function(){this.keepboundarieslocked=true};PLegend.prototype.isBoundaryTypeSetToLockGlobally=function(){return this.keepboundarieslocked};PLegend.prototype.lockBoundaryTypeGlobally=function(id){this._lockBoundaryTypeGlobally=id};PLegend.prototype.unlockBoundaryTypeGlobally=function(){this._lockBoundaryTypeGlobally=null};PLegend.prototype.getGloballyLockedType=function(){return this._lockBoundaryTypeGlobally};PLegend.prototype.setBoundaryType=function(btd){if(btd&&btd.constructor==PPlaceType){this._boundaryType=btd;return btd}var candidates=this.getBoundaryTypes();for(var i=0;i<candidates.length;++i){if(candidates[i].id==btd){this._boundaryType=candidates[i];return candidates[i];break}}};PLegend.prototype.clearBoundaryType=function(btd){this._boundaryType=null};PLegend.prototype.isValidBoundaryType=function(btd,noPreRendered){var bt=btd&&btd.constructor==PPlaceType?btd.id:btd;var candidates=this.getBoundaryTypes(noPreRendered);var isValid=false;for(var i=0;i<candidates.length;++i){if(candidates[i].id==bt){isValid=true;break}}return isValid};PLegend.prototype.clearStoredScale=function(){this.scale=null};PLegend.prototype.getBoundaryTypes=function(noPreRendered){var results=[];var scale=null;if(this.map&&this.map.kamap)scale=this.map.kamap.getCurrentScale();else if(map&&map.kamap)scale=map.kamap.getCurrentScale();if(scale&&this.indicator){var zooms=this.typeconfig.zooms;var l=zooms.length;for(var i=l-1;i>=0;i--){if(zooms[i]){if(zooms[i].length){var l2=zooms[i].length;for(var j=0;j<l2;j++){if((scale<=P_SCALES_DEFAULT[i]||this.allowTypeAlways(zooms[i][j]))&&this.getBoundaryDefinitionId(zooms[i][j].id)!=null&&this.indicator.breaks[this.indicator.curPerIndex][zooms[i][j].id]){results.push(zooms[i][j])}}}else if(scale<=P_SCALES_DEFAULT[i]&&this.getBoundaryDefinitionId(zooms[i].id)!=null&&this.indicator.breaks[this.indicator.curPerIndex][zooms[i].id]){results.push(zooms[i])}}}if(noPreRendered!=true&&results.length<=0&&this.indicator.maxscale&&scale<=this.indicator.maxscale){for(var i=0;i<l&&results.length<=0;i++){if(zooms[i]){if(zooms[i].length){for(var j=0;j<zooms[i].length;j++){if(this.getBoundaryDefinitionId(zooms[i][j].id)!=null&&this.indicator.breaks[this.indicator.curPerIndex][zooms[i][j].id]){results.push(zooms[i][j]);break}}}else if(this.getBoundaryDefinitionId(zooms[i].id)!=null&&this.indicator.breaks[this.indicator.curPerIndex][zooms[i].id]){results.push(zooms[i])}}}}}return results};PLegend.prototype.showTypeInShadeBy=function(typeid){if(this.indicator.getPlaceTypes().length==1)return true;var ignoreTypes=PPlaceTypeConfig.typesToIgnoreAsDefaultInShadeBy;for(var p=0;p<ignoreTypes.length;p++){if(typeid==ignoreTypes[p].id)return false}return true};PLegend.prototype.allowTypeAlways=function(type){var allow=[PPlaceType.COUNTY];for(var i=0;i<allow.length;i++){if(allow[i].id==type.id)return true}return false};PLegend.prototype.isPrerenderedBoundary=function(indicator,indz){if(!indicator)indicator=this.indicator;if(this.map&&this.map.kamap&&indicator){var scale=this.map.kamap.getCurrentScale();var curIndPlaceType=null;var indPlaceTypes=indicator.getPlaceTypes();if(indPlaceTypes&&indPlaceTypes.length&&indicator.curPerIndex)curIndPlaceType=indPlaceTypes[indicator.curPerIndex];if(indicator.maxscale&&curIndPlaceType&&scale>curIndPlaceType.maxScale)return true;else return false}return false};PLegend.prototype.getNumberOfAvailablePlaces=function(){if(this.map&&this.map.kamap&&this.indicator){var places=this.indicator.getPlaceTypes();var placesl=places.length;var zooms=this.typeconfig.zooms;var l=zooms.length;var count=0;for(var i=0;i<l;i++){if(zooms[i]){if(zooms[i].length){for(var j=0;j<zooms[i].length;j++){for(var k=0;k<placesl;k++){if(zooms[i][j]==places[k])count++}}}else{for(var k=0;k<placesl;k++){if(zooms[i]==places[k])count++}}}}}return count};PLegend.prototype.compareCustomBreaks=function(index,condition){var retVal=false;if(this.indicator&&this.indicator.custombreaks.length>0){var placetype=this.getBoundaryType();var numbreaks=this.getNumberOfBreaks();if(this.indicator.custombreaks[this.indicator.curPerIndex]&&this.indicator.custombreaks[this.indicator.curPerIndex][placetype.id]&&this.indicator.custombreaks[this.indicator.curPerIndex][placetype.id][numbreaks]){if(this.indicator.nodata)index--;var custombreaks=this.indicator.custombreaks[this.indicator.curPerIndex][placetype.id][numbreaks].split(",");var breaks=this.indicator.breaks[this.indicator.curPerIndex][placetype.id][numbreaks].split(",");if(custombreaks[index]&&breaks[index]){if(condition==">"){if(parseFloat(custombreaks[index])>parseFloat(breaks[index]))retVal=true}else if(condition=="<"){if(parseFloat(custombreaks[index])<parseFloat(breaks[index]))retVal=true}}}}return retVal};PLegend.prototype.getBoundaryTypeAtHighestZoom=function(){var ind=this.getIndicator();var highestType=null;if(ind){var zooms=this.typeconfig.zooms;var l=zooms.length;var types=ind.getPlaceTypes();loop1:for(var i=l-1;i>=0;i--){if(zooms[i]){if(!zooms[i].length){zooms[i]=[zooms[i]]}loop2:for(var j=0;j<zooms[i].length;j++){var zType=zooms[i][j];loop3:for(var k=0;k<types.length;k++){var t=types[k];if(this.showTypeInShadeBy(t.id)&&t==zType){highestType=t;break loop1}}}}}}return highestType};PLinkManager=function(){this.oldBackend=PEnvironment.linkOldUrl;this.backend=PEnvironment.linkUrl};PLinkManager.prototype.add=function(link,f,destFolderId){var url=this.backend+"&act=a&link="+encodeURIComponent(link.url)+"&name="+encodeURIComponent(link.name);if(destFolderId){url+="&swd="+destFolderId}f=f?f:{};ajax.call({url:url,context:this,success:function(response){this._callback(response,f,"lnk")}})};PLinkManager.prototype.printPDF=function(link,f,parms,template,printService){if(printService!=null&&printService==P.constants.webKitPrintService){var self=this;var callback=function(response){self._callback(response,f,"wprnt")};P.instances.wkprint.setFileName(link.name);P.instances.wkprint.setPrintCallback(callback);if(link.url){P.instances.wkprint.setUrl(link.url);P.instances.wkprint.print()}else{P.instances.wkprint.printThisPage()}}else{template=template?"&template="+encodeURIComponent(template):"";parms=parms?"&parms="+encodeURIComponent(parms):"";if(link&&f){var url=this.oldBackend+"&act=print"+"&type=pdf"+"&link="+encodeURIComponent(link.url)+"&name="+encodeURIComponent(link.name)+template+parms;f=f?f:{};ajax.call({url:url,context:this,success:function(response){this._callback(response,f,"tc")}})}}};PLinkManager.prototype.printJPG=function(link,f,parms,template){if(template&&parms){var url=this.oldBackend+"&act=print"+"&type=jpeg"+"&template="+encodeURIComponent(template)+"&link="+encodeURIComponent(link.url)+"&name="+encodeURIComponent(link.name)+"&parms="+encodeURIComponent(parms);f=f?f:{};ajax.call({url:url,context:this,success:function(response){this._callback(response,f,"tc")}})}};PLinkManager.prototype.printPNG=function(link,f,parms,template){if(template&&parms){var url=this.oldBackend+"&act=print"+"&type=png"+"&template="+encodeURIComponent(template)+"&link="+encodeURIComponent(link.url)+"&name="+encodeURIComponent(link.name)+"&parms="+encodeURIComponent(parms);f=f?f:{};ajax.call({url:url,context:this,success:function(response){this._callback(response,f,"tc")}})}};PLinkManager.prototype.printCSV=function(link,f,template,parms){if(template){var url=this.oldBackend+"&act=print"+"&type=csv"+"&template="+encodeURIComponent(template)+"&link="+encodeURIComponent(link.url)+"&name="+encodeURIComponent(link.name)+"&parms="+encodeURIComponent(parms);if(typeof link.data!="undefined"){url+="&data="+encodeURIComponent(link.data)}f=f?f:{};ajax.call({url:url,context:this,success:function(response){this._callback(response,f,"tc")}})}};PLinkManager.prototype.embed=function(link,f){var url=this.backend+"&act=e&link="+encodeURIComponent(link.url)+"&name="+encodeURIComponent(link.name);f=f?f:{};ajax.call({url:url,context:this,success:function(response){this._callback(response,f,"lnk")}})};PLinkManager.prototype.emailLink=function(linkUrl,f,emails,message,fromName){emails=emails.length>0?"&seto="+encodeURIComponent(emails.join(",")):"";fromName=fromName!=null?"&sefr="+encodeURIComponent(fromName):"";message=message?"&msg="+encodeURIComponent(message):"";var url=this.backend+"&act=em&link="+encodeURIComponent(linkUrl)+emails+fromName+message;f=f?f:function(){};ajax.call({url:url,context:this,success:function(response){this._callback(response,f,"lnk")}})};PLinkManager.prototype.checkLink=function(link,f){var url=this.backend+"&act=c&link="+encodeURIComponent(link.url);f=f?f:{};ajax.call({url:url,context:this,success:function(response){this._callback(response,f,"lnk")}})};PLinkManager.prototype._callback=function(response,callback,service){if(callback!=null){if($.isArray(response)){callback.apply(null,response)}else if(response!=null&&service!=null&&response[service]!=null){if(service=="lnk"){if(response.lnk.i!=null){callback(response.lnk.s,response.lnk.m,response.lnk.i)}else if(response.lnk.na!=null){callback(response.lnk.s,response.lnk.na)}else{callback(response.lnk.s,response.lnk.m)}}else{callback(response[service])}}else{callback()}}};PLogin=function(){};PLogin.prototype.initialize=function(){this.login=jQuery("#login")[0];this.forgot=jQuery("#forgot_password")[0];this.parent=this.login.parentNode};PLogin.prototype.login=function(salt){var password=jQuery("#_password")[0];var username=jQuery("#username")[0];var input=hex_md5(username.value.toLowerCase()+password.value+salt);var loginForm=jQuery("#login")[0];var pass=document.createElement("input");pass.setAttribute("type","hidden");pass.setAttribute("name","password");pass.value=input;loginForm.appendChild(pass);loginForm.submit();return true};PMap=function(viewport,logo,isGlobalInstance){this.canvasMarker=null;this.canvasShadow=null;myKaMap=myKaNavigator=myKaQuery=myScalebar=null;initDHTMLAPI();myKaMap=new kaMap(viewport.id);this.kamap=myKaMap;window.onresize=this.kamap.resize;myKaMap.shouldBypassSameSourcePolicy=true;myKaMap.id="myKaMap";this.kamap.accelerationFactor=1;this.kamap.pixelsPerStep=15;this.kamap.timePerStep=1;myKaMap.server=PEnvironment.kamapUrl;myKaMap.isDirectTileAccess=true;myKaMap.directTilePath=PEnvironment.tileDirect;var kaNav=new kaNavigator(myKaMap);this.kaToolCust=new kaToolCustomizer(kaNav,this);this.kaToolCust.activate();myKaMap.initialize();this.registerEvents();this.enableInfoWin=true;this.enableDrag=true;this.enableDblClickZoom=false;this.enableScrollWheel=false;this.enableKB=true;myKaMap.delayLoad=false;this.copyrights=[];this.copyright=this.createCopyright();this.logImg=document.createElement("img");this.transactionType=null;var isGlobal=true;if(isGlobalInstance===false){isGlobal=isGlobalInstance}var maptype;if(isGlobal){P.instances.map=this;maptype=PMapType.DEFAULT}else{maptype=Object.assign(Object.create(Object.getPrototypeOf(PMapType.DEFAULT)),PMapType.DEFAULT)}this.setMapType(maptype);this.setLegend(new PLegend);this.controls=[];this.overlays=[];this.overlaySets=[];if(logo){this.logo=logo;if(!logo.style.width)logo.style.width="0px";if(!logo.style.height)logo.style.height="0px"}else{this.logo=document.createElement("div");this.logo.className="pmap_map_logo";this.logo.style.width="110px";this.logo.style.height="19px";this.logo.style.cursor="pointer";this.logoImg=document.createElement("img");this.logoImg.src=this.kamap.server+"images/PolicyMap/policymap-map-logo.png";this.logo.appendChild(this.logoImg);PEvent.addListener(this.logo,"click",function(){window.open("http://www.policymap.com","policymap")});var a=document.createElement("a");a.style.display="none";a.className="pmap-print-logo";a.href="http://www.policymap.com";a.target="new";var img=document.createElement("img");img.src="/images/policymap-print-logo.svg";a.appendChild(img);this.kamap.domObj.appendChild(a)}this.footer=document.createElement("div");var f=this.footer;f.className="map-footer";f.appendChild(this.logo);if(isWidgetPage()||isEmbedPage()){var $box=$("<div />",{class:"box"});var curYear=(new Date).getFullYear();var $copy=$("<span />",{html:"&copy; "+curYear+" PolicyMap",class:"copyright"});$box.append($copy);var $a=$("<a />",{html:"Privacy",target:"_blank",href:"/privacy/"});$box.append($a);var $a=$("<a />",{html:"Terms",target:"_blank",href:"/support/widget-terms-use/"});$box.append($a);var $a=$("<a />",{html:"Citing",target:"_blank",href:"/support/citing-policymap-widgets/"});$box.append($a);$(f).append($box)}this.positionFooter();this.kamap.domObj.appendChild(f);this.markerListeners=[];this.cancelIdentify=false;this.identifyCount=0;$(window).trigger(P.events.MAP_CREATED)};PMap.prototype.getCenterLatLng=function(){var ret=new PPoint;var bounds=this.getBoundsLatLng();ret.x=bounds.minX+Math.abs(bounds.maxX-bounds.minX)*.5;ret.y=bounds.minY-Math.abs(bounds.maxY-bounds.minY)*.5;return ret};PMap.prototype.getBoundsLatLng=function(){var extent=this.kamap.getGeoExtents();var min=new PPoint(extent[0],extent[1]);var max=new PPoint(extent[2],extent[3]);min=this.mapType.projection.fromMetersToLatLng(min);max=this.mapType.projection.fromMetersToLatLng(max);return new PBounds(min.lng(),max.lat(),max.lng(),min.lat())};PMap.prototype.getSpanLatLng=function(){var bounds=this.getBoundsLatLng();var width=bounds.maxX-bounds.minX;var height=bounds.maxY-bounds.minY;return new PSize(width,Math.abs(height))};PMap.prototype.centerAtLatLng=function(point){this.setCenter(point)};PMap.prototype.getZoomLevel=function(){var currentScale=parseInt(this.kamap.getCurrentMap().currentScale+"");var nScales=this.kamap.getCurrentMap().getScales().length;return nScales-currentScale};PMap.prototype.zoomTo=function(zoomLevel){var nScales=this.kamap.getCurrentMap().getScales().length;this.setZoom(nScales-zoomLevel)};PMap.prototype.centerAndZoom=function(point,zoomLevel){this.zoomTo(zoomLevel);this.setCenter(point)};PMap.prototype.recenterOrPanToLatLng=function(point){var bounds=this.getBoundsLatLng();if(point.x>=bounds.minX&&point.x<=bounds.maxX&&point.y>=bounds.maxY&&point.y<=bounds.minY){var mPoint=this.mapType.projection.fromLatLngToMeters(point);var mCenter=this.mapType.projection.fromLatLngToMeters(this.getCenterLatLng());var pixelPoint=this.kamap.geoToPix(mPoint.x,mPoint.y);var pixelCenter=this.kamap.geoToPix(mCenter.x,mCenter.y);var slideX=pixelCenter[0]-pixelPoint[0];var slideY=pixelCenter[1]-pixelPoint[1];this.kamap.slideBy(slideX,slideY)}else{this.centerAtLatLng(point)}};PMap.prototype.enableDragging=function(){if(!this.enableDrag){this.enableDrag=true;this.kamap.activateTool(this.kaToolCust)}};PMap.prototype.disableDragging=function(){if(this.enableDrag){this.enableDrag=false;this.kamap.deactivateTool(this.kaToolCust)}};PMap.prototype.draggingEnabled=function(){return this.enableDrag};PMap.prototype.enableInfoWindow=function(){this.enableInfoWin=true};PMap.prototype.disableInfoWindow=function(){this.enableInfoWin=false};PMap.prototype.infoWindowEnabled=function(){return this.enableInfoWin};PMap.prototype.enableDoubleClickZoom=function(){this.enableDblClickZoom=true};PMap.prototype.disableDoubleClickZoom=function(){this.enableDblClickZoom=false};PMap.prototype.doubleClickZoomEnabled=function(){return this.enableDblClickZoom};PMap.prototype.enableScrollWheelZoom=function(){this.enableScrollWheel=true;$(this.kamap.domObj).on("mousewheel",function(event,delta){if(event.target.nodeName=="svg"||event.target.offsetParent&&(event.target.offsetParent.className=="mapLayer"||event.target.offsetParent.id=="theInsideLayer")){event.preventDefault()}});$(window).trigger(P.events.MAP_SCROLL_ENABLED)};PMap.prototype.disableScrollWheelZoom=function(){this.enableScrollWheel=false;$(this.kamap.domObj).off("mousewheel")};PMap.prototype.scrollWheelZoomEnabled=function(){return this.enableScrollWheel};PMap.prototype.enableContinuousZoom=function(){this.kamap.animatedZoom=true};PMap.prototype.disableContinuousZoom=function(){this.kamap.animatedZoom=false};PMap.prototype.continuousZoomEnabled=function(){return this.kamap.animatedZoom};PMap.prototype.enableKeyboard=function(){this.enableKB=true};PMap.prototype.disableKeyboard=function(){this.enableKB=false};PMap.prototype.keyboardEnabled=function(){return this.enableKB};PMap.prototype.addControl=function(control){control.attach(this);this.controls.push(control)};PMap.prototype.removeControl=function(control){for(var i=0;i<this.controls.length;i++){if(this.controls[i]==control){this.controls.splice(i,1);control.remove(this);break}}};PMap.prototype.hasControl=function(controlType){for(var i=0;i<this.controls.length;i++){if(this.controls[i]instanceof controlType)return true}return false};PMap.prototype.getContainer=function(){return this.kamap.domObj};PMap.prototype.getCurrentMapType=function(){return this.mapType};PMap.prototype.setMapType=function(maptype){for(var i=0;i<maptype.maplayers.length;i++){maptype.maplayers[i].maptype=maptype}this.mapType=maptype;this.mapType.map=this;this.mapType.makeLayers();this.refreshCopyright();this.refreshWidget(this.widgetLayer);var control=this.getControlByType(PMapTypeControl);if(control!=null)control.switchType(this,this.mapType)};PMap.prototype.getCenter=function(){var center=this.kamap.getCenter();return this.mapType.projection.fromPixelToLatLng(new PPoint(center[0],center[1]))};PMap.prototype.getBounds=function(){var extent=this.kamap.getGeoExtents();var min=new PPoint(extent[0],extent[1]);var max=new PPoint(extent[2],extent[3]);var sw=this.mapType.projection.fromMetersToLatLng(min);var ne=this.mapType.projection.fromMetersToLatLng(max);return new PLatLngBounds(sw,ne)};PMap.prototype.getBoundsZoomLevel=function(bounds){var projSW=this.mapType.projection.fromLatLngToMeters(bounds.sw);var projNE=this.mapType.projection.fromLatLngToMeters(bounds.ne);var scale=this.kamap.zoomToExtents(Math.ceil(projSW.x),Math.ceil(projSW.y),Math.floor(projNE.x),Math.floor(projNE.y),true);return this.mapType.getZoomLevelByScale(scale)};PMap.prototype.getSize=function(){return new PSize(parseInt(this.kamap.domObj.offsetWidth),parseInt(this.kamap.domObj.offsetHeight))};PMap.prototype.getZoom=function(){var currentScale=parseInt(this.kamap.getCurrentMap().currentScale+"");return currentScale};PMap.prototype.getAbsoluteZoom=function(){var scale=this.kamap.getCurrentMap().aScales[this.kamap.getCurrentMap().currentScale];return this.mapType.getZoomLevelByScale(scale,true)};PMap.prototype.setCenter=function(center,zoom){var projectedPoint=this.mapType.projection.fromLatLngToMeters(center);if(arguments.length==2&&this.getScale(zoom))this.kamap.zoomTo(projectedPoint.x,projectedPoint.y,this.getScale(zoom));else{this.kamap.zoomTo(projectedPoint.x,projectedPoint.y)}if(!this.saveLatLng&&!this.saveZoom){this.saveLatLng=center;if(zoom)this.saveZoom=zoom;else this.saveZoom=this.getZoom()}};PMap.prototype.setCenterBounds=function(bounds){var projSW=this.mapType.projection.fromLatLngToMeters(bounds.sw);var projNE=this.mapType.projection.fromLatLngToMeters(bounds.ne);this.kamap.zoomToExtents(Math.ceil(projSW.x),Math.ceil(projSW.y),Math.floor(projNE.x),Math.floor(projNE.y))};PMap.prototype.setCenterBoundsAndGetZoomLevelByViewPort=function(poly,width,height){var bounds=poly instanceof PLatLngBounds?poly:poly.getBounds();var oldWidth=this.kamap.viewportWidth;var oldHeight=this.kamap.viewportHeight;this.kamap.viewportWidth=width;this.kamap.viewportHeight=height;this.setCenterBounds(bounds);var zoomLevel=this.getZoom();this.kamap.viewportWidth=oldWidth;this.kamap.viewportHeight=oldHeight;this.setCenterBounds(bounds);return zoomLevel};PMap.prototype.getZoomLevelByViewPort=function(poly,width,height){var oldBounds=this.getBounds();var oldWidth=this.kamap.viewportWidth;var oldHeight=this.kamap.viewportHeight;var bounds=poly instanceof PLatLngBounds?poly:poly.getBounds();this.kamap.viewportWidth=width;this.kamap.viewportHeight=height;this.setCenterBounds(bounds);var zoomLevel=this.getZoom();this.kamap.viewportWidth=oldWidth;this.kamap.viewportHeight=oldHeight;this.setCenterBounds(oldBounds);return zoomLevel};PMap.prototype.panTo=function(center){if(this.getBounds().contains(center)){var mPoint=this.mapType.projection.fromLatLngToMeters(center);var mCenter=this.mapType.projection.fromLatLngToMeters(this.getCenter());var pixelPoint=this.kamap.geoToPix(mPoint.x,mPoint.y);var pixelCenter=this.kamap.geoToPix(mCenter.x,mCenter.y);var slideX=pixelCenter[0]-pixelPoint[0];var slideY=pixelCenter[1]-pixelPoint[1];this.kamap.slideBy(slideX,slideY)}else this.setCenter(center)};PMap.prototype.panBy=function(distance,smooth){if(smooth!=null&&smooth===false){this.kamap.moveBy(distance.width,distance.height)}else{this.kamap.slideBy(distance.width,distance.height)}};PMap.prototype.panDirection=function(dx,dy,smooth){var mapSize=this.getSize();var panWidth=dx*mapSize.width*.5;var panHeight=dy*mapSize.height*.5;if(smooth!=null&&smooth===false){this.kamap.moveBy(panWidth,panHeight)}else{this.kamap.slideBy(panWidth,panHeight)}};PMap.prototype.setZoom=function(level,absolute){var scale;if(absolute)scale=this.getScale(level,true);else scale=this.getScale(level);if(scale){var projectedPoint=this.mapType.projection.fromLatLngToMeters(this.getCenter());this.kamap.zoomTo(projectedPoint.x,projectedPoint.y,scale)}};PMap.prototype.setAbsoluteZoom=function(level){this.setZoom(level,true)};PMap.prototype.zoomIn=function(){this.kamap.zoomIn()};PMap.prototype.zoomOut=function(){this.kamap.zoomOut()};PMap.prototype.printImage=function(size,center,zoom,mkr){if(!size)size=this.getSize();if(!center)center=this.getCenter();if(!zoom)zoom=this.getZoom();var scale=this.getScale(zoom);var layers=this.kamap.getCurrentMap().getLayers();var layerlist="";for(var i=0;i<layers.length;i++)layerlist+=layers[i].buildLayerList(scale)+",";layerlist=layerlist.substring(0,layerlist.length-1);var query="lat="+center.lat()+"&long="+center.lng()+"&scale="+scale+"&imgwidth="+size.width+"&imgheight="+size.height+"&layers="+layerlist;var marker=null;var pinquery="";if(mkr){marker=mkr}else if(this.overlays.length>0){var l=this.overlays.length;for(var i=0;i<l;i++){if(this.overlays[i]instanceof PMarker){marker=this.overlays[i];break}}}if(marker){var point;var mapsize=this.getSize();if(size!=mapsize){var tempx=this.kamap.xOrigin;var tempy=this.kamap.yOrigin;this.kamap.xOrigin=this.kamap.xOrigin-(size.width-mapsize.width)*.5;this.kamap.yOrigin=this.kamap.yOrigin-(size.height-mapsize.height)*.5;point=this.fromLatLngToDivPixel(marker.getPoint());this.kamap.xOrigin=tempx;this.kamap.yOrigin=tempy}else point=this.fromLatLngToDivPixel(marker.getPoint());var pinx=point.x-marker.icon.iconAnchor.x;var piny=point.y-marker.icon.iconAnchor.y;var shdx=point.x-marker.icon.shadowAnchor.x;var shdy=point.y-marker.icon.shadowAnchor.y;if(pinx>0&&piny>0)pinquery="&pinurl="+encodeURIComponent(marker.icon.image)+"&shdurl="+encodeURIComponent(marker.icon.shadow)+"&pinx="+pinx+"&piny="+piny+"&shdx="+shdx+"&shdy="+shdy}return"/image.pl?"+query+pinquery};PMap.prototype.savePosition=function(){this.saveLatLng=this.getCenter();this.saveZoom=this.getZoom()};PMap.prototype.returnToSavedPosition=function(){if(this.saveLatLng&&this.saveZoom){if(this.saveZoom==this.getZoom())this.panTo(this.saveLatLng);else this.setCenter(this.saveLatLng,this.saveZoom)}};PMap.prototype.addPoly=function(poly){poly.overlay=new kaXmlOverlay(this.kamap,Z_POLYLINE);var point_coords="";var point_poly=null;var points=poly.points;var l=points.length;for(var i=0;i<l;i++){var projectedpoint=this.mapType.projection.fromLatLngToMeters(points[i]);point_coords+=projectedpoint.x+" "+projectedpoint.y;if(i==0){point_poly=poly.overlay.addNewPoint(this.overlays.length,projectedpoint.x,projectedpoint.y)}if(i!=points.length-1)point_coords+=","}if(poly instanceof PPolygon){poly.line=new kaXmlPolygon(point_poly);poly.line.bcolor=poly.color;poly.line.color=poly.fill;poly.line.fillopacity=poly.fillopacity}else{poly.line=new kaXmlLinestring(point_poly);poly.line.color=poly.color}poly.line.readCoordinates(point_poly,point_coords);poly.line.stroke=poly.weight;poly.line.opacity=poly.opacity;poly.line.callbacks=poly.callbacks;point_poly.addGraphic(poly.line)};PMap.prototype.removePoly=function(poly){poly.overlay.remove();poly.overlay=null};PMap.prototype.addOverlay=function(marker){marker.map=this;if(marker instanceof PMarker){this.getMarkerCanvas();var projectedPoint=this.mapType.projection.fromLatLngToMeters(marker.point);this.kamap.addObjectGeo(this.canvasMarker,projectedPoint.x,projectedPoint.y,marker.image);if(marker.shadow){this.getShadowCanvas();this.kamap.addObjectGeo(this.canvasShadow,projectedPoint.x,projectedPoint.y,marker.shadow)}marker.addListener("click",function(){this.overlay=marker},true)}else if(marker instanceof PPolyline||marker instanceof PPolygon){this.addPoly(marker)}this.overlays.push(marker);this.eventManager.triggerEvent("addoverlay",marker)};PMap.prototype.removeOverlay=function(marker,all){if(this.overlays.length>0){if(marker instanceof PMarker){this.kamap.removeObject(marker.image);if(marker.shadow)this.kamap.removeObject(marker.shadow)}else if((marker instanceof PPolyline||marker instanceof PPolygon)&&marker.overlay){if(marker.clearmarker!=null){this.removeOverlay(marker.clearmarker)}this.removePoly(marker)}if(!all){var l=this.overlays.length;for(var i=0;i<l;i++){if(this.overlays[i]==marker){var l2=this.markerListeners.length;for(var j=0;j<l2;j++){if(this.markerListeners[j].obj==marker.image){PEvent.removeListener(this.markerListeners[j]);this.markerListeners.splice(j,1);j--;l2--}}this.overlays.splice(i,1);break}}this.eventManager.triggerEvent("removeoverlay",marker)}}};PMap.prototype.clearOverlays=function(){var l=this.overlays.length;for(var i=0;i<l;i++)this.removeOverlay(this.overlays[i],true);l=this.markerListeners.length;for(var i=0;i<l;i++)PEvent.removeListener(this.markerListeners[i]);this.overlays=[];this.markerListeners=[];this.eventManager.triggerEvent("clearoverlays")};PMap.prototype.callNext=function(context){if(this.cancelIdentify){
this.identifyCancel(context)}else{var ops=context.ops;var i=context.opsIndex;if(i<ops.length){context.opsIndex++;ops[i](context)}}};PMap.prototype.identify=function(latlng,callback,options){this.identifyCount++;var context={latlng:latlng,callback:callback,opreatorindex:0,options:options,indicator:this.getIndicator(),legendMerger:this.getLegendMerger()};var that=this;var ops=[];context.ops=ops;context.opsIndex=0;var overlaySets=this.getOverlaySets();if(options.showmarker&&overlaySets&&overlaySets.length>0)ops.push(function(){that.identifyMarker(context)});if(options.showplaces||options.showindicator&&this.getIndicator())ops.push(function(){that.identifyPlaces(context)});if(options.showindicator&&(this.getIndicator()||this.getLegendMerger()&&this.getLegendMerger().getIndicatorCount()>0))ops.push(function(){that.identifyIndicator(context)});ops.push(function(){that.identifyEnd(context)});this.callNext(context)};PMap.prototype.identifyMarker=function(context){var that=this;var f=function(markers){context.markers=markers;if(context.options.nonmixedresult&&markers&&markers.length>0){that.identifyEnd(context)}else{that.callNext(context)}};this.identifyMarker0(context.latlng,f,context.options.pinmax)};PMap.prototype.identifyMarker0=function(latlng,callback,pinmax){if(!(pinmax||pinmax==0))pinmax=100;var datasetids="";var filters="";var bufferString="";var datasetTypes="";var sets=this.getOverlaySets(false,true);for(var i=0;i<sets.length;i++){var overlaySet=sets[i];if(overlaySet.display&&overlaySet.id){datasetids+=overlaySet.id+",";if(overlaySet.type=="dl"){datasetTypes+="dl,"}else{datasetTypes+="old,"}var icon=overlaySet.icon;var pixels=this.fromLatLngToDivPixel(latlng);var adjustx=1;var adjusty=2;var zoom=this.getZoom();var extendx=0;var extendy=0;if(zoom>10){extendx=(zoom-10)*.4;extendy=(zoom-10)*.4}var minxy=this.fromDivPixelToLatLng(new PPoint(pixels.x-icon.iconAnchor.x-adjustx-extendx,pixels.y+icon.iconAnchor.y+adjusty+extendy));var maxxy=this.fromDivPixelToLatLng(new PPoint(pixels.x+icon.iconSize.width-icon.iconAnchor.x-adjustx+extendx,pixels.y-icon.iconSize.height+icon.iconAnchor.y+adjusty-extendy));bufferString+=minxy.lng()+","+minxy.lat()+","+maxxy.lng()+","+maxxy.lat()+";";filters+=encodeURIComponent(overlaySet.createQuery())+"/,"}}var datasetidsIndex=datasetids.lastIndexOf(",");var filtersIndex=filters.lastIndexOf("/,");var bufferIndex=bufferString.lastIndexOf(";");var datasetTypesIndex=datasetTypes.lastIndexOf(",");if(datasetidsIndex!=-1)datasetids=datasetids.substring(0,datasetidsIndex);if(filtersIndex!=-1)filters=filters.substring(0,filtersIndex);if(bufferIndex!=-1)bufferString=bufferString.substring(0,bufferIndex);if(datasetTypesIndex!=-1)datasetTypes=datasetTypes.substring(0,datasetTypesIndex);if(datasetids!=""){ajax.call({url:PEnvironment.pointUrl+"&act=i&did="+datasetids+"&dt="+datasetTypes+"&ftr="+filters+"&lat="+latlng.lat()+"&lng="+latlng.lng()+"&buf="+bufferString+"&lim="+pinmax,context:this,success:function(results){var markers=POverlaySet.createMarkers(results.pnt,overlaySet.icon);callback(markers)}})}};PMap.prototype.identifyPlaces=function(context){var opt=context.options;var that=this;var f=function(places){context.places=places;that.callNext(context)};if(opt.defIds&&opt.defIds.length>0){geocoder.getPlaceContaining(context.latlng,null,null,opt.defIds,f)}else if(opt.boundaryTypes&&opt.boundaryTypes.length>0){geocoder.getPlaceContaining(context.latlng,opt.boundaryTypes,null,null,f)}else{var placeType;if(opt.uptotype)placeType=opt.uptotype;else placeType=PPlaceTypeConfig.PPLACECONTAINMENT.getTypeByAbsoluteZoom(16,true);var cmc=false;if(opt.cmc!=null&&opt.cmc===true){cmc=true}geocoder.getPlaceContainment(context.latlng,placeType,null,null,f,cmc)}};PMap.prototype.identifyIndicator=function(context){var indicator=context.indicator;var legendMerger=context.legendMerger;var period=indicator?indicator.getPeriod():null;var cube=null;if(indicator&&indicator.hasBubbleIndicators(true)){var indicators=[];indicators.push(indicator);var periods=[];periods.push(period);var periodString=period+",";var newInds=indicator.getBubbleIndicators();for(var i=0;i<newInds.length;i++){var ind=newInds[i];indicators.push(ind);var numberOfTimeFrames=ind.numberOfTimeFrames;var indPeriods=ind.getPeriods().slice(0,numberOfTimeFrames);for(var j=0;j<indPeriods.length;j++){var p=indPeriods[j];if(periodString.indexOf(p.toString()+",")==-1){periods.push(p);periodString+=p+","}}}var cubePlace=[];if(context.places.length>0){cubePlace.push(context.places[context.places.length-1])}cube=new PCube(indicators,cubePlace,periods)}else if(indicator){cube=new PCube([indicator],context.places,[period])}else if(legendMerger){var indicators=[];var periods=[];for(var i=0;i<3;i++){if(legendMerger.getLegend(i).getIndicator()){indicators[indicators.length]=legendMerger.getLegend(i).getIndicator();periods[periods.length]=legendMerger.getLegend(i).getIndicator().getPeriod()}}if(indicators.length>0)cube=new PCube(indicators,context.places,periods)}context.cube=cube;var that=this;cube.loadValues(function(values){cube.values=values;context.values=values;that.callNext(context)})};PMap.prototype.identifyCancel=function(context){this.identifyCount--;if(this.identifyCount==0){this.cancelIdentify=false}};PMap.prototype.identifyEnd=function(context){this.identifyCount=0;this.cancelIdentify=false;context.callback(context.markers,context.places,context.cube)};PMap.prototype.openInfoWindow=function(point,info,marker,type){var tab=new PInfoWindowTab("",info);this.openInfoWindowTabs(point,[tab],marker,null,type)};PMap.prototype.openInfoWindowHtml=function(point,info,type){this.openInfoWindow(point,info,null,type)};PMap.prototype.openInfoWindowTabs=function(point,tabs,marker,extendTabs,type){if(!this.infoWindowEnabled())return false;var projected=this.mapType.projection.fromLatLngToMeters(point);if(this.infoWindow&&this.infoWindow.isOpen)this.closeInfoWindow();this.infoWindow=new PInfoWindow(type);if(marker&&marker!=null)this.infoWindow.marker=marker;this.infoWindow.point=point;this.infoWindow.whereGeo=projected;this.infoWindow.tabs=tabs;this.infoWindow.map=this;if(extendTabs){this.infoWindow.maxRowLength=3;this.infoWindow.tabwidth=165}this.infoWindow.initialize();this.infoWindow.create()};PMap.prototype.openInfoWindowTabsHtml=function(point,tabs){this.openInfoWindowTabs(point,tabs)};PMap.prototype.closeInfoWindow=function(){if(this.infoWindow)this.infoWindow.close()};PMap.prototype.getInfoWindow=function(){return this.infoWindow};PMap.prototype.fromLatLngToDivPixel=function(latlng){var extents=this.kamap.getGeoExtents();var minx=extents[0];var maxy=extents[3];var pix=this.kamap.geoToPix(minx,maxy);var projpoint=this.mapType.projection.fromLatLngToPixel(latlng);return new PPoint(projpoint.x-pix[0],projpoint.y-pix[1])};PMap.prototype.fromDivPixelToLatLng=function(pixel){var extents=this.kamap.getGeoExtents();var minx=extents[0];var maxy=extents[3];var pix=this.kamap.geoToPix(minx,maxy);var unprojpoint=new PPoint(pix[0]+pixel.x,pix[1]+pixel.y);return this.mapType.projection.fromPixelToLatLng(unprojpoint)};PMap.prototype.addOverlaySet=function(overlayset,nofire){overlayset.map=this;this.overlaySets.push(overlayset);if(overlayset.id){overlayset.renderClient()}else{overlayset.refresh()}if(arguments.length!=2)this.eventManager.triggerEvent("addoverlayset",overlayset)};PMap.prototype.removeOverlaySet=function(overlayset){for(var i=0;i<this.overlaySets.length;i++){if(this.overlaySets[i]==overlayset){this.removeOverlaySetByIndex(i);break}}};PMap.prototype.removeOverlaySetByIdAndType=function(id,type){for(var i=0;i<this.overlaySets.length;i++){if(this.overlaySets[i].id==id&&this.overlaySets[i].type==type){this.removeOverlaySetByIndex(i);break}}};PMap.prototype.removeOverlaySetByIndex=function(i){var overlayset=this.overlaySets[i];if(this.overlaySets[i].display){this.overlaySets[i].off();this.overlaySets[i].display=true}for(var j=0;j<this.overlaySets[i].children.length;j++){var curChild=this.overlaySets[i].children[j];this.removeOverlaySetByIdAndType(curChild.id,curChild.type)}this.overlaySets[i].map=null;this.overlaySets.splice(i,1);this.refreshWidget(this.widgetOverlay);this.eventManager.triggerEvent("removeoverlayset",overlayset)};PMap.prototype.clearOverlaySets=function(){for(var i=0;i<this.overlaySets.length;i++){if(this.overlaySets[i].display){this.overlaySets[i].off();this.overlaySets[i].display=true}this.overlaySets[i].map=null}this.overlaySets=[];this.refreshWidget(this.widgetOverlay);this.eventManager.triggerEvent("clearoverlaysets")};PMap.prototype.setOverlaySets=function(overlaysets){this.clearOverlaySets();for(var i=0;i<overlaysets.length;i++)this.addOverlaySet(overlaysets[i],true);this.eventManager.triggerEvent("setoverlaysets",overlaysets)};PMap.prototype.getOverlaySets=function(excludeChildren,excludeLabels){if(excludeChildren!=true&&excludeLabels!=true){return this.overlaySets}var sets=[];for(var i=0;i<this.overlaySets.length;i++){if(excludeChildren==true&&this.overlaySets[i].child==true||excludeLabels==true&&this.overlaySets[i].name.indexOf("labels")==0){continue}else{sets.push(this.overlaySets[i])}}return sets};PMap.prototype.positionFooter=function(){this.footer.style.position="absolute";this.footer.style.right="3px";this.footer.style.bottom="3px";this.footer.style.zIndex=Strata.MAP_CONTROLS};PMap.prototype.createCopyright=function(){var cr=document.createElement("div");cr.style.position="absolute";cr.style.height="12px";cr.style.left="7px";cr.style.bottom="7px";cr.style.zIndex=Z_CONTROLS;cr.style.fontFamily="arial, verdana";cr.style.fontSize="10px";cr.style.color="#333";cr.style.MozUserSelect="none";this.kamap.domObj.appendChild(cr);return cr};PMap.prototype.addCopyrights=function(copyrights){var haveCopyright=false;var l=copyrights.length;var l2=this.copyrights.length;for(var i=0;i<l;i++){for(var j=0;j<l2;j++){if(copyrights[i]==this.copyrights[j])haveCopyright=true}if(!haveCopyright)this.copyrights.push(copyrights[i]);haveCopyright=false}};PMap.prototype.displayCopyright=function(){var text="";var l=this.copyrights.length;for(var i=0;i<l;i++){text+=this.copyrights[i].text;if(i<this.copyrights.length-1)text+=", "}this.copyright.innerHTML=text};PMap.PANLATLNG=0;PMap.prototype.getControlByType=function(controltype){if(this.controls){for(var i=0;i<this.controls.length;i++){if(this.controls[i]instanceof controltype)return this.controls[i]}}return null};PMap.prototype.getScale=function(zoomlevel,absolute){if(arguments.length==0)zoomlevel=this.getZoom();var scales=[];if(absolute)scales=this.mapType.absscales;else scales=this.kamap.getCurrentMap().getScales();return scales[zoomlevel]};PMap.prototype.getMarkerCanvas=function(){if(this.canvasMarker==null)this.canvasMarker=this.kamap.createDrawingCanvas(Z_MARKER);return this.canvasMarker};PMap.prototype.getShadowCanvas=function(){if(this.canvasShadow==null)this.canvasShadow=this.kamap.createDrawingCanvas(Z_MARKER_SHADOW);return this.canvasShadow};PMap.prototype.registerEvents=function(){this.eventTypes=new Object;this.eventTypes.click="click";this.eventTypes.mouseup="mouseup";this.eventTypes.dblclick="dblclick";this.eventTypes.mouseover="mouseover";this.eventTypes.mouseout="mouseout";this.eventTypes.mousemove="mousemove";this.eventTypes.infowindowopen="infowindowopen";this.eventTypes.infowindowclose="infowindowclose";this.eventTypes.addoverlay="addoverlay";this.eventTypes.removeoverlay="removeoverlay";this.eventTypes.clearoverlays="clearoverlays";this.eventTypes.setindicator="setindicator";this.eventTypes.removeindicator="removeindicator";this.eventTypes.addoverlayset="addoverlayset";this.eventTypes.setoverlaysets="setoverlaysets";this.eventTypes.removeoverlayset="removeoverlayset";this.eventTypes.clearoverlaysets="clearoverlaysets";this.eventManager=new _eventManager;for(var ev in this.eventTypes){this.eventManager.registerEventID(ev)}};PMap.prototype.triggerEvent=function(eventName,e){var events=this.eventManager.events[eventName];if(events==null||events.length==0)return;var map=this;if(eventName=="click"||eventName=="dblclick"||isMobile()&&!this.cancelClick&&eventName=="mouseup"){var pos=this.kamap.currentTool.katool.getMousePosition(e);pos=this.kamap.currentTool.katool.adjustPixPosition(pos[0],pos[1]);var overlay=map.overlay;map.overlay=null;var point=null;var latlng=null;if(overlay==null){pos=this.kamap.pixToGeo(pos[0],pos[1]);point=new PPoint(pos[0],pos[1]);latlng=this.mapType.projection.fromMetersToLatLng(point)}map.eventManager.triggerEvent(eventName,overlay,latlng)}else{map.cancelClick=false;map.eventManager.triggerEvent(eventName)}};PMap.prototype.identifyItem=function(datasetId,datasetType,itemId,filters,callback){if(filters!=null&&filters!=""){filters="&ftr="+encodeURIComponent(filters)}else{filters=""}ajax.call({url:PEnvironment.pointUrl+"&act=i&did="+datasetId+"&dt="+datasetType+"&iid="+itemId+filters,context:this,success:function(results){var markers=POverlaySet.createMarkers(results.pnt);callback(markers)}})};PMap.prototype.addListener=function(eventId,func){if(eventId=="zoomend")this.kamap.registerForEvent(KAMAP_SCALE_CHANGED,this,func);else if(eventId=="zoomstart")this.kamap.registerForEvent(KAMAP_SCALE_CHANGE_START,this,func);else if(eventId=="drag")this.kamap.registerForEvent(KAMAP_DRAG,this,func);else if(eventId=="dragstart")this.kamap.registerForEvent(KAMAP_DRAG_START,this,func);else if(eventId=="dragend")this.kamap.registerForEvent(KAMAP_DRAG_END,this,func);else if(eventId=="move")this.kamap.registerForEvent(KAMAP_MOVE,this,func);else if(eventId=="movestart")this.kamap.registerForEvent(KAMAP_MOVE_START,this,func);else if(eventId=="moveend")this.kamap.registerForEvent(KAMAP_EXTENTS_CHANGED,this,func);else this.eventManager.registerForEvent(eventId,this,func);var event=new PEventListener(this,eventId,func);return event};PMap.prototype.removeListener=function(event){if(event.id=="zoomend")this.kamap.deregisterForEvent(KAMAP_SCALE_CHANGED,event.obj,event.func);else if(event.id=="zoomstart")this.kamap.registerForEvent(KAMAP_SCALE_CHANGE_START,this,event.func);else if(event.id=="drag")this.kamap.deregisterForEvent(KAMAP_DRAG,event.obj,event.func);else if(event.id=="dragstart")this.kamap.deregisterForEvent(KAMAP_DRAG_START,event.obj,event.func);else if(event.id=="dragend")this.kamap.deregisterForEvent(KAMAP_DRAG_END,event.obj,event.func);else if(event.id=="move")this.kamap.deregisterForEvent(KAMAP_MOVE,event.obj,event.func);else if(event.id=="movestart")this.kamap.deregisterForEvent(KAMAP_MOVE_START,event.obj,event.func);else if(event.id=="moveend")this.kamap.deregisterForEvent(KAMAP_EXTENTS_CHANGED,event.obj,event.func);else this.eventManager.deregisterForEvent(event.id,event.obj,event.func)};PMap.prototype.refresh=function(){var map=this.kamap.getCurrentMap();var layers=map.getLayers();for(var i=0;i<layers.length;i++)layers[i].setTileLayer();$(window).trigger(P.events.MAP_REFRESHED)};PMap.prototype.refreshCopyright=function(){this.copyrights=[];var maplayers=this.mapType.maplayers;for(var i=0;i<maplayers.length;i++){var l=maplayers[i];if(l.isOn()){if(l.copyrights){this.addCopyrights(l.copyrights)}}}this.displayCopyright()};PMap.prototype.refreshWidget=function(widget){if(widget)widget.buildWidget()};PMap.prototype.enablePolyCreator=function(polycreator){polycreator.attachMap(this)};PMap.prototype.disablePolyCreator=function(polycreator){polycreator.detachMap(this)};PMap.prototype.setIndicator=function(ind){this.legend.setIndicator(ind)};PMap.prototype.setIndicatorById=function(id){ajax.call({url:PEnvironment.indicatorUrl+"&iid="+id,context:this,success:this.setIndicatorByArray})};PMap.prototype.setIndicatorByArray=function(ind){this.setIndicator(ind[0])};PMap.prototype.removeIndicator=function(){this.legend.removeIndicator()};PMap.prototype.getIndicator=function(){return this.legend.getIndicator()};PMap.prototype.setIndicatorListByIds=function(ids){ajax.call({url:PEnvironment.indicatorUrl+"&iid="+ids.join(","),context:this,success:this.setIndicatorList})};PMap.prototype.setIndicatorList=function(indicatorList){this.legend.setIndicatorList(indicatorList)};PMap.prototype.getIndicatorList=function(){return this.legend.getIndicatorList()};PMap.prototype.getLegend=function(){return this.legend};PMap.prototype.setLegend=function(legend){this.legend=legend;this.legend.map=this};PMap.prototype.setLegendMerger=function(legendMerger){this.legendMerger=legendMerger};PMap.prototype.getLegendMerger=function(){return this.legendMerger};PMap.prototype.lock=function(){this.disableDoubleClickZoom();this.disableScrollWheelZoom();this.disableDragging()};PMap.prototype.unlock=function(){this.enableDoubleClickZoom();this.enableScrollWheelZoom();this.enableDragging()};PMap.prototype.updateIndicatorOverlaySets=function(ind){if(!ind){var ind=this.getIndicator()}if(PEnvironment.pageName!="widget"||!ind.hasOverlaySets()){return}var indsets=ind.getOverlaySets();var sets=this.getOverlaySets();var oldFilters=null;var indset=null;var mapSetsIds=[];var foundSet=false;for(var i=0;i<sets.length;i++){var set=sets[i];foundSet=false;for(var j=0;j<indsets.length;j++){if(set.id==indsets[j].id){oldFilters=set.getFilters();this.removeOverlaySet(set);foundSet=true;i--}}if(!foundSet){mapSetsIds.push(set.id)}}var id=ind.getCurrentOverlaySet().id;mapSetsIds.push(id);session.put("o",mapSetsIds.join(","));session.remove("ofilters");var that=this;var f=function(sets){var filterIds=[];for(var i=0;i<sets.length;i++){var set=sets[i];filterIds=set.findMatchingFilters(oldFilters)}var df=ind.getCurrentOverlaySet().filter;if(df){filterIds.push(df)}session.put("ofilters",filterIds.join(","));for(var i=0;i<sets.length;i++){var s=sets[i];addOverlaySetFiltersFromSession(s)}that.setOverlaySets(sets)};getOverlaySetsFromSession(f)};PMap.prototype.clearInfoWindowBoundary=function(){var ps=this.polygons;if(ps&&this.isRemovePolygonsOnInfoWindowCloseSet()){for(var i=0;i<ps.length;i++){this.removeOverlay(ps[i])}this.polygons=[];this.setRemovePolygonsOnInfoWindowClose(false);clearPlaceFromSessionAndOtherVariables()}};PMap.prototype.setRemovePolygonsOnInfoWindowClose=function(b){this.removePolygonsOnInfoWindowClose=b};PMap.prototype.isRemovePolygonsOnInfoWindowCloseSet=function(){return this.removePolygonsOnInfoWindowClose};PMap.prototype.inPreview=function(){return $(this.getContainer()).hasClass("preview")};PMapLayer=function(data){if(data){this.client=false;this.kLayerIndex=-1;this.opacity=1;this.copyrights=[];this.tileServers=PEnvironment.tileUrls;this.display=true;if(data.allowed===false){this.display=data.allowed}$.extend(this,data);if(data.min_scale){this.minScale=data.min_scale}if(data.max_scale){this.maxScale=data.max_scale}}else{this.name="";this.title="";this.display=true;this.client=false;this.kLayerIndex=-1;this.tileServers=PEnvironment.tileUrls;this.minScale=0;this.maxScale=1e9;this.copyrights=[];this.opacity=1}};PMapLayer.prototype.setTitle=function(title){this.setLabel(title)};PMapLayer.prototype.getTitle=function(){return this.getLabel()};PMapLayer.prototype.setLabel=function(title){this.title=title;if(this.maptype&&this.maptype.map)this.maptype.map.refreshWidget(this.maptype.map.widgetLayer)};PMapLayer.prototype.getLabel=function(){return this.title};PMapLayer.prototype.setOpacity=function(opacity){this.opacity=opacity;this.on()};PMapLayer.prototype.getOpacity=function(){return this.opacity};PMapLayer.prototype.on=function(){this.display=true;if(this.maptype&&this.kLayerIndex>=0){if(this.client){if(this.maptype.map){var kLayers=this.maptype.map.kamap.getCurrentMap().getAllLayers();kLayers[this.kLayerIndex].setVisibility(true);this.maptype.map.kamap.setMapLayers();kLayers[this.kLayerIndex].setVisibility(true);kLayers[this.kLayerIndex].setOpacity(this.opacity*100);this.maptype.map.kamap.paintLayer(kLayers[this.kLayerIndex])}}else this.maptype.makeMergedLayerList(this.kLayerIndex)}if(this.maptype&&this.maptype.map){this.maptype.map.refreshCopyright();this.maptype.map.refreshWidget(this.maptype.map.widgetLayer)}};PMapLayer.prototype.off=function(){this.display=false;if(this.maptype&&this.kLayerIndex>=0){if(this.client){if(this.maptype.map){var kLayers=this.maptype.map.kamap.getCurrentMap().getAllLayers();kLayers[this.kLayerIndex].setVisibility(false)}}else this.maptype.makeMergedLayerList(this.kLayerIndex)}if(this.maptype&&this.maptype.map){this.maptype.map.refreshCopyright();this.maptype.map.refreshWidget(this.maptype.map.widgetLayer)}};PMapLayer.prototype.isOn=function(){return this.display};PMapLayer.prototype.mergeClient=function(){this.client=true;if(this.maptype)this.maptype.makeLayers()};PMapLayer.prototype.mergeServer=function(){this.client=false;if(this.maptype)this.maptype.makeLayers()};PMapLayer.prototype.isMergeClient=function(){return this.client};PMapLayer.prototype.addCopyright=function(copyright){var haveCopyright=false;for(var i=0;i<this.copyrights.length;i++){if(this.copyrights[i]==copyright){haveCopyright=true;break}}if(!haveCopyright)this.copyrights.push(copyright)};PMapLayer.prototype.setTileServers=function(tileservers){this.tileServers=tileservers;if(this.maptype)this.maptype.makeLayers()};PMapLayer.prototype.getLayerNameByDefinitionId=function(id){for(var i in this){if(this[i]!=null&&this[i].definition_id!=null&&this[i].definition_id==id){return i}}};PMapLayer.prototype.getMapLayerByDefinitionId=function(id){var mapLayerArray=new Array;var arrayCount=0;for(var i in this){if(this[i]!=null&&this[i].definition_id!=null&&this[i].definition_id==id){mapLayerArray[arrayCount]=this[i];arrayCount++}}return mapLayerArray};PMapLayer.prototype.isHoleLayer=function(){var isHole=false;if(this.name.indexOf("_hole")!=-1){isHole=true}return isHole};PMapLayer.prototype.setForSubscriber=function(b){this.forSubscribers=b};PMapLayer.prototype.isSubscriberLayer=function(){return this.forSubscribers};PMapLayer.prototype.setTeaser=function(b){this.non_subscriber_teaser=b};PMapLayer.prototype.isTeaser=function(){return this.non_subscriber_teaser};PMapLink=function(custombreakid,linktype){var data=session.data;var indicator=map.getIndicator();var args=[];var overlayLabels=[];var currentMapPlace=mapstates.currentplace;var placelabel="";var a=data.p;if(a)args.push("p="+a);if(PEnvironment.pageName=="analytics"){var a=data.mi;if(a){args.push("="+a);var overlays=a.split(",");var l=overlays.length;for(var i=0;i<l;i++){var oldSet=getActiveOverlaySetByIdAndType(overlays[i],"old");if(oldSet!=null&&!oldSet.child){overlayLabels.push(oldSet.name)}}}var a=data.o;if(a){var overlays=a.split(",");var l=overlays.length;var linkOverlays=[];for(var i=0;i<l;i++){if(overlays[i]==massTransitSetId){overlayLabels.push("Mass Transit Lines")}else{var oset=getActiveOverlaySetByIdAndType(overlays[i],"old");if(!oset.child){overlayLabels.push(oset.name)}linkOverlays.push(overlays[i])}}if(linkOverlays.length>0){args.push("o="+linkOverlays)}}var a=data.ofilters;if(a){args.push("ofilters="+a)}var a=data.olabels;if(a){args.push("olabels="+a)}var a=data.dlo;if(a){args.push("dlo="+a);var overlays=a.split(",");var l=overlays.length;for(var i=0;i<l;i++){var oset=getActiveOverlaySetByIdAndType(overlays[i],"dl");if(!oset.child){overlayLabels.push(oset.name)}}}var a=data.ibi;if(a){var ibis=[];for(datasetId in data.ibi){ibis.push(datasetId+":"+data.ibi[datasetId])}args.push("ibi="+ibis.join(","))}var add=data.place;if(add){args.push("place="+escape(add))}var moo=data.moo;if(moo){args.push("moo="+moo)}var cpnames="";var a=data.cp;if(a&&a!=""){args.push("cp="+a.join(","));var cpids=a;var cplength=cpids.length;for(var i=0;i<cplength;i++){cpnames+=polycreator.customPlaces[cpids[i]].place.getLabel();if(i!=cplength-1){cpnames+=", "}}if(cplength>1){placelabel+="Custom Regions ("}else{placelabel+="Custom Region ("}placelabel+=cpnames+")"}else if(currentMapPlace&&currentMapPlace.getType()!=null){if(cpnames!=""){placelabel+=" and "}if(currentMapPlace.getType()==PPlaceType.BLOCKGROUP){placelabel="Block Group ("+currentMapPlace.getIdentifier()+", "+currentMapPlace.getState()+")"}else if(currentMapPlace.getType()==PPlaceType.CENSUSTRACT){placelabel="Census Tract ("+currentMapPlace.getLabel()+", "+currentMapPlace.getState()+")"}else{placelabel=currentMapPlace.getLabel()}}var centerPoint=map.getCenterLatLng();args.push("cx="+centerPoint.x);args.push("cy="+centerPoint.y);args.push("cz="+map.getZoom());if(!linktype||linktype&&linktype!="embed"){if(map.getInfoWindow()&&map.getInfoWindow().getInfoWindowType()!=null&&map.getInfoWindow().isHidden()==false&&map.getBounds().contains(map.getInfoWindow().getPoint())){args.push("iwx="+map.getInfoWindow().getPoint().lat());args.push("iwy="+map.getInfoWindow().getPoint().lng());args.push("iwtype="+map.getInfoWindow().getInfoWindowType());if(map.getInfoWindow().getTabs()&&map.getInfoWindow().getTabs().length>0){args.push("iwtab="+map.getInfoWindow().getSelectedTab())}if(PMIdentificationPrinter.selectedLink&&map.getInfoWindow())args.push("iwlink="+PMIdentificationPrinter.selectedLink)}}var indCount=legendMerger.getIndicatorCount();var cnt=0;for(var i=0;i<3;i++){if(legendMerger.getLegend(i).containsIndicator()){var legend=legendMerger.getLegend(i);args.push("m"+cnt+"i="+legend.getIndicator().id);args.push("m"+cnt+"btd="+legend.legend.getBoundaryType().id);var range=legend.getIndicatorRange().getRange();if(range){args.push("m"+cnt+"r0="+range[0]);args.push("m"+cnt+"r1="+range[1])}var valOptions=legend.getIndicatorValues().getValueOptions();if(valOptions)args.push("m"+cnt+"v="+MochiKit.Base.serializeJSON(valOptions));args.push("m"+cnt+"period="+legend.getIndicator().getPeriod());args.push();cnt++}}var pagename="analytics";if(isCBClone()){pagename="";var sel=cbMatchPopup.selected;msel="";var cnt=0;for(var i=0;i<sel.length;i++){if(typeof sel[i].cat!="undefined"&&legendMerger.getLegend(i).containsIndicator()){msel+=sel[i].cat+","+sel[i].ind+","+sel[i].level;if(i<sel.length-1){msel+=";"}cnt++}}args.push("msel="+msel);var labels=labelManager.generateMapLabelArguments(true);if(labels&&labels.length>0){for(var i=0;i<labels.length;i++){args.push(labels[i])}}}this.url=pagename+"?"+args.join("&");this.name="Custom PolicyMap 3-Layer Map"+(placelabel?" of "+placelabel:"")+(data.o||data.dlo?" with ":"")+overlayLabels.join(", ");this.fullName=this.name}else{var a=data.i;if(a){args.push("i="+a);var nb=data.nb;if(nb)args.push("nb="+nb);if(custombreakid)args.push("cb="+custombreakid);args.push("btd="+map.getLegend().getBoundaryType().id)}var a=data.o;if(a){var overlays=a.split(",");var l=overlays.length;var linkOverlays=[];for(var i=0;i<l;i++){if(overlays[i]==massTransitSetId){overlayLabels.push("Mass Transit Lines")}else{var oset=getActiveOverlaySetByIdAndType(overlays[i],"old");if(!oset.child){overlayLabels.push(oset.name)}linkOverlays.push(overlays[i])}}if(linkOverlays.length>0){args.push("o="+linkOverlays)}}var a=data.ofilters;if(a){args.push("ofilters="+a)}var a=data.olabels;if(a){args.push("olabels="+a)}var a=data.dlo;if(a){args.push("dlo="+a);var overlays=a.split(",");var l=overlays.length;for(var i=0;i<l;i++){var oset=getActiveOverlaySetByIdAndType(overlays[i],"dl");if(!oset.child){overlayLabels.push(oset.name)}}}var a=data.ibi;if(a){var ibis=[];for(datasetId in data.ibi){ibis.push(datasetId+":"+data.ibi[datasetId])}args.push("ibi="+ibis.join(","))}var a=data.period;if(a)args.push("period="+a);if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){var a=data.mvalayers;if(a){var layersString="";for(var i=0;i<a.length;i++){if(a[i])layersString+="1";else layersString+="0"}args.push("lind="+layersString)}}var a=data.rmp;if(a){var colorRamp=colorRamps.getRampByName(a);if(indicator!=null&&colorRamp!=null){var indColorRamp=null;if(indicator.colorRampId!=null){indColorRamp=colorRamps.getRampById(indicator.colorRampId)}if(indColorRamp!=null&&colorRamp!=indColorRamp||(colorRamp!=PColorRamp.DEFAULT||indColorRamp!=null&&colorRamp==PColorRamp.DEFAULT&&PColorRamp.DEFAULT!=indColorRamp)){args.push("rmp="+a)}}}var add=data.place;if(add){args.push("place="+escape(add))}if(linktype&&linktype=="embed"){var sets=map.getOverlaySets();var oicons=[];var onames=[];var dloicons=[];var dlonames=[];for(var i=0;i<sets.length;i++){if(sets[i].type=="old"){onames.push(encodeURIComponent(sets[i].name));for(var j in PinIcons){if(sets[i].icon==PinIcons[j]){oicons.push(encodeURIComponent(j))}}}else if(sets[i].type=="dl"){dlonames.push(encodeURIComponent(sets[i].name));for(var j in PinIcons){if(sets[i].icon==PinIcons[j]){dloicons.push(encodeURIComponent(j))}}}}if(oicons.length>0){args.push("icons="+oicons.join(","));args.push("onames="+onames.join(","))}if(dloicons.length>0){args.push("dloicons="+dloicons.join(","));args.push("dlonames="+dlonames.join(","))}}var moo=data.moo;if(moo){args.push("moo="+moo)}var cpnames="";var a=data.cp;if(a&&a!=""){args.push("cp="+a.join(","));var cpids=a;var cplength=cpids.length;for(var i=0;i<cplength;i++){cpnames+=polycreator.customPlaces[cpids[i]].place.getLabel();if(i!=cplength-1){cpnames+=", "}}if(cplength>1){placelabel+="Custom Regions ("}else{placelabel+="Custom Region ("}placelabel+=cpnames+")"}if(currentMapPlace&&currentMapPlace.getType()!=null){if(cpnames!=""){placelabel+=" and "}if(currentMapPlace.getType()==PPlaceType.BLOCKGROUP){placelabel+="Block Group ("+currentMapPlace.getIdentifier()+", "+currentMapPlace.getState()+")"}else if(currentMapPlace.getType()==PPlaceType.CENSUSTRACT){placelabel+="Census Tract ("+currentMapPlace.getLabel()+", "+currentMapPlace.getState()+")"}else{placelabel+=currentMapPlace.getLabel()}}var centerPoint=map.getCenterLatLng();args.push("cx="+centerPoint.x);args.push("cy="+centerPoint.y);args.push("cz="+map.getZoom());if(!linktype||linktype&&linktype!="embed"){if(map.getInfoWindow()&&map.getInfoWindow().getInfoWindowType()!=null&&map.getInfoWindow().isHidden()==false&&map.getBounds().contains(map.getInfoWindow().getPoint())){args.push("iwx="+map.getInfoWindow().getPoint().lat());args.push("iwy="+map.getInfoWindow().getPoint().lng());args.push("iwtype="+map.getInfoWindow().getInfoWindowType());if(map.getInfoWindow().getTabs()&&map.getInfoWindow().getTabs().length>0){args.push("iwtab="+map.getInfoWindow().getSelectedTab())}if(PMIdentificationPrinter.selectedLink&&map.getInfoWindow())args.push("iwlink="+PMIdentificationPrinter.selectedLink)}}if(typeof P.instances.googleMap!="undefined"&&P.instances.googleMap.showing==true)args.push("aerial=google");var pagename;if(linktype!=null&&linktype=="embed"){pagename="embedmap"}else{pagename="maps"}if(isWidgetPage()){pagename="widget";var pp=productProperty;args.push("sid="+PEnvironment.productId);args.push("wkey="+productProperty.getValue("widget_key"))}else if(isCBClone()){pagename="";var labels=labelManager.generateMapLabelArguments(true);if(labels&&labels.length>0){for(var i=0;i<labels.length;i++){args.push(labels[i])}}}this.url=pagename+"?"+args.join("&");this.name="Map";if(data.i){this.name=indicator.getFullDisplayName()}this.fullName="Map"+(placelabel?" of "+placelabel:"")+(data.o||data.dlo?" with ":"")+overlayLabels.join(", ")+(data.o?data.i?" and ":"":data.i?" with ":"")+(data.i?indicator.getFullDisplayName():"")}};PMapLink.prototype.toString=function(){return this.url};PMapState=function(center,zoom,indicator,sets,place,addr){if(place&&place.getIdentifier()=="US"){var uscenter=new PLatLng(P.constants.USA_LAT,P.constants.USA_LNG);this.center=uscenter;this.zoom=P.constants.USA_ZOOM;map.setCenter(uscenter,P.constants.USA_ZOOM)}else{this.center=center;this.zoom=zoom}this.indicator=indicator;this.sets=sets;this.place=place;if(addr)this.addr=addr;else this.addr=null};PMapState.prototype.toDataObject=function(){var retVal={};if(this.indicator)retVal.i=this.indicator.id;if(this.place)retVal.p=this.place.id;if(this.sets){var sets=this.sets;var l=sets.length;var ids=[];var filters={};var s;for(var i=0;i<l;i++){var s=sets[i];ids.push(s.id);filters[s.id]=s.filtergroups}retVal.o=ids;retVal.ofilter=filters}retVal.center=this.center;retVal.zoom=this.zoom;retVal.addr=this.addr;return retVal};PMapStateDropDown=function(map,node){this.map=map;this.dropdown=node
;this.eventManager=new PEventManager;this.listeners=[]};PMapStateDropDown.prototype.addListener=function(id,f){this.eventManager.addListener(id,f)};PMapStateDropDown.prototype.onchange=function(){this.eventManager.triggerListeners("change")};PMapStateDropDown.prototype.refresh=function(states){var l=this.listeners.length;for(var i=0;i<l;i++)PEvent.removeListener(this.listeners[i]);this.listeners=[];while(this.dropdown.hasChildNodes())this.dropdown.removeChild(this.dropdown.firstChild);for(var i=states.list.length-1;i>=0;i--){var li=document.createElement("li");var div=document.createElement("div");li.index=i;li.dropdown=this;li.states=states;this.listeners.push(PEvent.addListener(li,"mousedown",function(){this.dropdown.dropdown.style.display="none";this.dropdown.onchange();if(this.index!=-1)this.states.setMap(this.dropdown.map,this.index)}));var state=states.list[i];div.innerHTML=createTitle(state);this.dropdown.appendChild(li);li.appendChild(div)}};PMapStateDropDown.prototype.toggle=function(){if(this.dropdown.style.display=="none")this.dropdown.style.display="block";else this.dropdown.style.display="none"};PMapStateList=function(size,place){this.eventTypes=new Object;this.eventTypes.add="add";this.eventTypes.set="set";this.eventManager=new _eventManager;for(var ev in this.eventTypes)this.eventManager.registerEventID(ev);this.list=[];this.size=size;this.currentplace=place};PMapStateList.prototype.addListener=function(eventId,func){this.eventManager.registerForEvent(eventId,[],func)};PMapStateList.prototype.removeListener=function(eventId,func){this.eventManager.deregisterForEvent(eventId,[],func)};PMapStateList.prototype.add=function(state){this.addQuietly(state);this.eventManager.triggerEvent("add",state)};PMapStateList.prototype.addQuietly=function(state){for(var i=0;i<this.list.length;i++){var checkpid=false;var checkiid=false;if(!this.list[i].addr&&!state.addr){if(!this.list[i].place&&!state.place&&!this.list[i].addr&&!state.addr)checkpid=true;else if(this.list[i].place&&this.list[i].place.id&&state.place&&state.place.id&&this.list[i].place.id==state.place.id)checkpid=true}else if(this.list[i].addr&&state.addr&&this.list[i].addr==state.addr)checkpid=true;if(!this.list[i].indicator&&!state.indicator)checkiid=true;else if(this.list[i].indicator&&this.list[i].indicator.id&&state.indicator&&state.indicator.id&&this.list[i].indicator.id==state.indicator.id)checkiid=true;if(checkpid&&checkiid){this.list.splice(i,1);i--}}if(this.list.length==this.size)this.list.splice(0,1);if(state.place&&state.place.label&&state.place.label!="USA"||state.addr)this.list.push(state)};PMapStateList.prototype.setMap=function(map,index){map.removeIndicator();map.clearOverlays();var state=this.list[index];if(state.place&&state.place.getBounds()){map.setCenterBounds(state.place.getBounds());var polygons=state.place.getVertices();if(polygons)addPolygons(map,state.place);this.currentplace=state.place}else{this.currentplace=null;map.setCenter(state.center,state.zoom)}this.addQuietly(state);this.eventManager.triggerEvent("set",state)};PMapStateList.prototype.toDataObject=function(){var retVal=[];var states=this.list;var l=states.length;var state;for(var i=0;i<l;i++){retVal.push(states[i].toDataObject())}return retVal};PMapStateList.prototype.setList=function(obj){var indids=[];var placeids=[];var indconstructors={};var placeconstructors={};var constructors=[];var seen={};for(var i=0;i<obj.length;i++){var sd=obj[i];var sets=[];var seenkey=sd.center.latitude+","+sd.center.longitude+","+sd.zoom+","+sd.p+","+sd.i+",";if(seen[seenkey])continue;seen[seenkey]=1;var center;if(sd.center){center=new PLatLng(sd.center.latitude,sd.center.longitude)}var stateargs={center:center,zoom:sd.zoom,sets:sets,addr:sd.addr};if(sd.p){if(!placeconstructors[sd.p]){placeids.push(sd.p);placeconstructors[sd.p]=[]}placeconstructors[sd.p].push(stateargs)}if(sd.i){if(!indconstructors[sd.i]){indids.push(sd.i);indconstructors[sd.i]=[]}indconstructors[sd.i].push(stateargs)}constructors.push(stateargs)}var setstates=function(pmsl){var states=[];for(var i=0;i<constructors.length;i++){var c=constructors[i];if(typeof c.place!="undefined"&&c.place&&c.place.label&&c.place.label!="USA"||c.addr)states.push(new PMapState(c.center,c.zoom,c.ind,c.sets,c.place,c.addr))}pmsl.list=states;if(typeof prevmaps!="undefined")prevmaps.refresh(pmsl)};var pmsl=this;var needplaces=placeids.length>0;var needinds=indids.length>0;if(needinds){PIndicatorLoader.load(indids,function(inds){for(var i=0;i<inds.length;i++){var ind=inds[i];var c=indconstructors[ind.id];for(var j=0;j<c.length;j++)c[j].ind=ind}if(!needplaces)setstates(pmsl);needinds=false})}if(placeids.length>0){placeLoader.load(placeids,function(places){for(var i=0;i<places.length;i++){var place=places[i];var c=placeconstructors[place.id];for(var j=0;j<c.length;j++)c[j].place=place}if(!needinds)setstates(pmsl);needplaces=false})}};PMapStateList.prototype.setCurrentPlace=function(place){var p=null;var cp=this.currentplace;if(cp&&place){if(place.id!=cp.id){this.currentplace=place}else if(cp.getVertices()==null){this.currentplace=place}}else{this.currentplace=place}};PMapType=function(layers,proj,name){this.maplayers=layers;this.pointLayers={};this.holeLayer=null;for(var i in layers){if(layers[i].pointDataset){this.pointLayers[layers[i].name]=layers[i]}if(isCBClone()&&layers[i].name.indexOf("_hole")!=-1){this.holeLayer=layers[i]}}this.name="";if(name)this.name=name;this.projection=new PProjection(54004);if(proj)this.projection=proj;this.projection.maptype=this;this.scales=P_SCALES_DEFAULT.slice();this.absscales=this.scales;this.zooms=[];for(var i=0;i<this.scales.length;i++)this.zooms.push(true);this.client=false};PMapType.prototype.setLabel=function(name){this.name=name;if(this.map)this.map.refreshWidget(this.map.widgetLayer)};PMapType.prototype.getLabel=function(){return this.name};PMapType.prototype.getProjection=function(){return this.projection};PMapType.prototype.getName=function(){return this.name};PMapType.prototype.getMapLayers=function(){return this.maplayers};PMapType.prototype.setScales=function(scales){this.scales=scales;this.redrawScale()};PMapType.prototype.getScales=function(){return this.scales};PMapType.prototype.updateZooms=function(){this.scales=[];for(var i=0;i<this.zooms.length;i++){if(this.zooms[i])this.scales.push(this.absscales[i])}};PMapType.prototype.enableAbsoluteZooms=function(zooms){for(var i=0;i<this.zooms.length;i++)this.zooms[i]=false;for(var i=0;i<zooms.length;i++)this.zooms[zooms[i]]=true;this.updateZooms();this.redrawScale()};PMapType.prototype.getEnabledAbsoluteZooms=function(){var zooms=[];for(var i=0;i<this.zooms.length;i++){if(this.zooms[i])zooms.push(i)}return zooms};PMapType.prototype.getAbsoluteZooms=function(){var zooms=[];for(var i=0;i<this.absscales.length;i++)zooms.push(i);return zooms};PMapType.prototype.addMapLayer=function(layer,position,id,index){if(this.map&&this.map.mapType==this)layer.maptype=this;if(id){layer.overlaysetId=id}if(index){layer.overlaysetIndex=index}if(position){this.maplayers.splice(position,0,layer)}else{this.maplayers.push(layer)}this.makeLayers();if(this.map)this.map.refresh();if(this.map){this.map.refreshCopyright();this.map.refreshWidget(this.map.widgetLayer)}};PMapType.prototype.removeMapLayer=function(layer){var l=this.maplayers.length;for(var i=0;i<l;i++){if(this.maplayers[i]==layer){this.maplayers.splice(i,1);break}}this.makeLayers();if(this.map)this.map.refresh();if(this.map){this.map.refreshCopyright();this.map.refreshWidget(this.map.widgetLayer)}};PMapType.prototype.getZoomLevelByScale=function(scale,absolute){var ltDiff=0;var scales=[];if(absolute)scales=this.absscales;else scales=this.scales;for(var i=0;i<scales.length-1;i++){if(scale==scales[i])return i;else if(scale<scales[i])ltDiff=scales[i]-scale;else{var gtDiff=scale-scales[i];if(gtDiff<ltDiff)return i;else return i-1}}if(ltDiff>=0)return scales.length-1;else return 0};PMapType.prototype.makeLayers=function(){if(this.map&&this.map.getCurrentMapType()==this){var layers=this.getMapLayers();var kMap=this.map.kamap.getCurrentMap();var kLayerIndex=0;kMap.aLayers=[];var kLayers=kMap.aLayers;var l=layers.length;for(var i=0;i<l;i++){if(layers[i].isMergeClient()||layers[i-1]&&layers[i-1].isMergeClient()||i==0){if(i!=0)kLayerIndex++;var kLayer=new _layer("merged",true,100,"PNG24",false,new Array(1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1),new Array,layers[i].tileServers);this.map.kamap.addMapLayer(kLayer);if(layers[i].isMergeClient()){this.client=true;kLayer.addMergedLayer(layers[i]);kLayer.setOpacity(layers[i].opacity*100)}if(layers[i].isMergeClient()&&!layers[i].isOn())kLayer.setVisibility(false)}if(!layers[i].isMergeClient()&&layers[i].isOn()){kLayers[kLayerIndex].addMergedLayer(layers[i])}layers[i].kLayerIndex=kLayerIndex}if(this.map.legend&&this.map.legend.indicator)kLayers[0].legend=this.map.legend;this.redrawScale();if(this.client)this.map.refresh()}};PMapType.prototype.redrawScale=function(){if(this.map&&this.map.getCurrentMapType()==this){var kMap=this.map.kamap.getCurrentMap();if(kMap.aScales!=this.scales){var scale=this.map.getScale();kMap.aScales=this.scales;if(this.map.controls){this.map.setZoom(this.getZoomLevelByScale(scale));var control=this.map.getControlByType(PLargeMapControl);if(control!=null){control.remove(this.map);control.attach(this.map)}}}}};PMapType.prototype.makeMergedLayerList=function(index){if(this.map&&this.map.getCurrentMapType()==this){var layers=this.getMapLayers();var kLayers=this.map.kamap.getCurrentMap().getAllLayers();kLayers[index].clearMergedLayers();for(var i=0;i<layers.length;i++){if(layers[i].isOn()&&layers[i].kLayerIndex==index)kLayers[index].addMergedLayer(layers[i])}this.map.refresh()}};PMapType.prototype.mergeClient=function(){for(var i=0;i<this.maplayers.length;i++)this.maplayers[i].client=true;this.makeLayers()};PMapType.prototype.mergeServer=function(){for(var i=0;i<this.maplayers.length;i++)this.maplayers[i].client=false;this.makeLayers()};PMapType.prototype.getActiveLayerPoints=function(){return this.pointLayers};PMapType.prototype.getHoleLayer=function(){return this.holeLayer};PMapType.prototype.getActiveLayers=function(){var ls=this.maplayers;var arr=[];for(var i=0;i<ls.length;i++){var l=ls[i];if(l.isOn()){arr.push(l)}}return arr};PMapTypeControl=function(){};PMapTypeControl.prototype.attach=function(map){var kamap=map.kamap;this.typemap=document.createElement("img");this.typesat=document.createElement("img");this.typehyb=document.createElement("img");this.typehyb.id="typeHyb";this.typehyb.title="Show Satellite with Streets";this.typehyb.style.width="65px";this.typehyb.style.height="19px";this.typehyb.style.position="absolute";this.typehyb.style.top="7px";this.typehyb.style.right="7px";this.typehyb.style.zIndex=Z_CONTROLS;this.typehyb.style.cursor="pointer";this.typehyb.style.MozUserSelect="none";this.typesat.id="typeSat";this.typesat.title="Show Satellite Imagery";this.typesat.style.width="65px";this.typesat.style.height="19px";this.typesat.style.position="absolute";this.typesat.style.top="7px";this.typesat.style.right=parseInt(this.typehyb.style.width)+parseInt(this.typehyb.style.right)+3+"px";this.typesat.style.zIndex=Z_CONTROLS;this.typesat.style.cursor="pointer";this.typesat.style.MozUserSelect="none";this.typemap.id="typeMap";this.typemap.title="Show Street Map";this.typemap.style.width="65px";this.typemap.style.height="19px";this.typemap.style.position="absolute";this.typemap.style.top="7px";this.typemap.style.right=parseInt(this.typesat.style.width)+parseInt(this.typesat.style.right)+3+"px";this.typemap.style.zIndex=Z_CONTROLS;this.typemap.style.cursor="pointer";this.typemap.style.MozUserSelect="none";this.switchType(map,map.getCurrentMapType());var maptypecontrol=this;PEvent.addListener(this.typemap,"click",function(){maptypecontrol.switchType(map,PMapType.NORMAL)});PEvent.addListener(this.typesat,"click",function(){maptypecontrol.switchType(map,PMapType.SATELLITE)});PEvent.addListener(this.typehyb,"click",function(){maptypecontrol.switchType(map,PMapType.HYBRID)});kamap.domObj.appendChild(this.typemap);kamap.domObj.appendChild(this.typesat);kamap.domObj.appendChild(this.typehyb);this.marginTop=parseInt(this.typemap.style.top)+parseInt(this.typemap.style.height)};PMapTypeControl.prototype.switchType=function(map,maptype){var kamap=map.kamap;this.typemap.src=kamap.server+"images/control_map.gif";this.typesat.src=kamap.server+"images/control_satellite.gif";this.typehyb.src=kamap.server+"images/control_hybrid.gif";if(maptype==PMapType.HYBRID){this.typehyb.src=kamap.server+"images/control_hybrid_down.gif"}else if(maptype==PMapType.SATELLITE){this.typesat.src=kamap.server+"images/control_satellite_down.gif"}else if(maptype==PMapType.NORMAL){this.typemap.src=kamap.server+"images/control_map_down.gif"}if(map.mapType!=maptype)map.setMapType(maptype)};PMapTypeControl.prototype.remove=function(map){var kamap=map.kamap;PEvent.clearInstanceListeners(this.typemap);kamap.domObj.removeChild(this.typemap);PEvent.clearInstanceListeners(this.typesat);kamap.domObj.removeChild(this.typesat);PEvent.clearInstanceListeners(this.typehyb);kamap.domObj.removeChild(this.typehyb)};PMarker=function(point,icon){this.point=point;if(icon&&icon instanceof PIcon)this.icon=icon;else this.icon=PIcon.DEFAULT;var image=document.createElement("div");image.style.fontSize="1px";var imageImg=document.createElement("img");if(this.icon.iconSize){image.style.width=imageImg.style.width=this.icon.iconSize.width+"px";image.style.height=imageImg.style.height=this.icon.iconSize.height+"px"}imageImg.src=this.icon.image;image.style.cursor="pointer";image.xOffset=-this.icon.iconAnchor.x;image.yOffset=-this.icon.iconAnchor.y;fixPNG(imageImg);imageImg.style.MozUserSelect="none";image.appendChild(imageImg);image.marker=this;this.image=image;if(this.icon.shadow){var shadow=document.createElement("div");shadow.style.fontSize="1px";var shadowImg=document.createElement("img");if(this.icon.shadowSize){shadow.style.width=shadowImg.style.width=this.icon.shadowSize.width+"px";shadow.style.height=shadowImg.style.height=this.icon.shadowSize.height+"px"}shadowImg.src=this.icon.shadow;shadow.xOffset=-this.icon.shadowAnchor.x;shadow.yOffset=-this.icon.shadowAnchor.y;fixPNG(shadowImg);shadowImg.style.MozUserSelect="none";shadow.appendChild(shadowImg);this.shadow=shadow}this.attributes=[]};PMarker.prototype.openInfoWindow=function(info,type){if(this.map)this.map.openInfoWindow(this.point,info,this,type)};PMarker.prototype.openInfoWindowHtml=function(info,type){this.openInfoWindow(info,type)};PMarker.prototype.openInfoWindowTabs=function(tabs,type){if(this.map)this.map.openInfoWindowTabs(this.point,tabs,this,null,type)};PMarker.prototype.openInfoWindowTabsHtml=function(tabs,type){this.openInfoWindowTabs(tabs,type)};PMarker.prototype.getIcon=function(){return this.icon};PMarker.prototype.getPoint=function(){return this.point};PMarker.prototype.setPoint=function(point){this.point=point};PMarker.prototype.addAttribute=function(attribute){this.attributes.push(attribute)};PMarker.prototype.removeAttribute=function(name){for(var i=0;i<this.attributes.length;i++){if(this.attributes[i].name==name)this.attributes.splice(i,1);break}};PMarker.prototype.getAttribute=function(name){for(var i=0;i<this.attributes.length;i++){if(this.attributes[i].name==name)return this.attributes[i]}return null};PMarker.prototype.setAttributes=function(attributes){this.attributes=attributes};PMarker.prototype.getAttributes=function(){return this.attributes};PMarker.prototype.addListener=function(eventId,f,fromMap){var map=this.map;var marker=this;var listener=PEvent.addListener(this.image,eventId,f);if(fromMap&&map&&eventId=="click"){map.markerListeners.push(PEvent.addListener(this.image,"click",function(){map.overlay=marker}));map.markerListeners.push(listener)}};PMarker.prototype.setCursor=function(cursorType){this.image.style.cursor=cursorType};PMarkerManager=function(map,icon){this.map=map;this.markers=[];this.clusters=[];this.timeout=null;this.currentZoomLevel=map.getZoom();this.maxVisibleMarkers=150;this.gridSize=5;this.minMarkersPerCluster=5;if(icon)this.icon=icon;else this.icon=PIcon.CLUSTER;PEvent.addListener(map,"zoomend",PMarkerManager.makeCaller(PMarkerManager.display,this));PEvent.addListener(map,"moveend",PMarkerManager.makeCaller(PMarkerManager.display,this));PEvent.addListener(map,"infowindowclose",PMarkerManager.makeCaller(PMarkerManager.popDown,this))};PMarkerManager.prototype.getIcon=function(icon){return this.icon};PMarkerManager.prototype.setMaxVisibleMarkers=function(n){this.maxVisibleMarkers=n};PMarkerManager.prototype.setMinMarkersPerCluster=function(n){this.minMarkersPerCluster=n};PMarkerManager.prototype.addMarker=function(marker){marker.onMap=false;this.markers.push(marker);this.displayLater()};PMarkerManager.prototype.addMarkers=function(markers){for(var i=0;i<markers.length;++i)this.addMarker(markers[i])};PMarkerManager.prototype.removeMarker=function(marker){for(var i=0;i<this.markers.length;++i)if(this.markers[i]==marker){if(marker.onMap)this.map.removeOverlay(marker);for(var j=0;j<this.clusters.length;++j){var cluster=this.clusters[j];if(cluster!=null){for(var k=0;k<cluster.markers.length;++k)if(cluster.markers[k]==marker){cluster.markers[k]=null;--cluster.markerCount;break}if(cluster.markerCount==0){this.clearCluster(cluster);this.clusters[j]=null}else if(cluster==this.poppedUpCluster)PMarkerManager.rePop(this)}}this.markers[i]=null;break}this.displayLater()};PMarkerManager.prototype.clearMarkers=function(){for(var i=0;i<this.markers.length;i++){if(this.markers[i]&&this.markers[i].onMap)this.map.removeOverlay(this.markers[i])}for(var i=0;i<this.clusters.length;i++){if(this.clusters[i])this.clearCluster(this.clusters[i])}this.markers=[];this.clusters=[];this.timeout=null};PMarkerManager.prototype.displayLater=function(){if(this.timeout!=null)clearTimeout(this.timeout);this.timeout=setTimeout(PMarkerManager.makeCaller(PMarkerManager.display,this),50)};PMarkerManager.display=function(clusterer){var i,j,marker,cluster;clearTimeout(clusterer.timeout);var newZoomLevel=clusterer.map.getZoom();if(newZoomLevel!=clusterer.currentZoomLevel){for(i=0;i<clusterer.clusters.length;++i)if(clusterer.clusters[i]!=null){clusterer.clearCluster(clusterer.clusters[i]);clusterer.clusters[i]=null}clusterer.clusters.length=0;clusterer.currentZoomLevel=newZoomLevel}var bounds=clusterer.map.getBounds();var sw=bounds.getSouthWest();var ne=bounds.getNorthEast();var dx=ne.lng()-sw.lng();var dy=ne.lat()-sw.lat();dx*=.1;dy*=.1;bounds=new PLatLngBounds(new PLatLng(sw.lat()-dy,sw.lng()-dx),new PLatLng(ne.lat()+dy,ne.lng()+dx));var visibleMarkers=[];var nonvisibleMarkers=[];for(i=0;i<clusterer.markers.length;++i){marker=clusterer.markers[i];if(marker!=null)if(bounds.contains(marker.getPoint()))visibleMarkers.push(marker);else nonvisibleMarkers.push(marker)}for(i=0;i<nonvisibleMarkers.length;++i){marker=nonvisibleMarkers[i];if(marker.onMap){clusterer.map.removeOverlay(marker);marker.onMap=false}}for(i=0;i<clusterer.clusters.length;++i){cluster=clusterer.clusters[i];if(cluster!=null&&!bounds.contains(cluster.marker.getPoint())&&cluster.onMap){clusterer.map.removeOverlay(cluster.marker);cluster.onMap=false}}if(visibleMarkers.length>clusterer.maxVisibleMarkers){var latRange=bounds.getNorthEast().lat()-bounds.getSouthWest().lat();var latInc=latRange/clusterer.gridSize;var lngInc=latInc/Math.cos((bounds.getNorthEast().lat()+bounds.getSouthWest().lat())/2*Math.PI/180);for(var lat=bounds.getSouthWest().lat();lat<=bounds.getNorthEast().lat();lat+=latInc)for(var lng=bounds.getSouthWest().lng();lng<=bounds.getNorthEast().lng();lng+=lngInc){cluster=new Object;cluster.clusterer=clusterer;cluster.bounds=new PLatLngBounds(new PLatLng(lat,lng),new PLatLng(lat+latInc,lng+lngInc));cluster.markers=[];cluster.markerCount=0;cluster.onMap=false;cluster.marker=null;clusterer.clusters.push(cluster)}for(i=0;i<visibleMarkers.length;++i){marker=visibleMarkers[i];if(marker!=null&&!marker.inCluster){for(j=0;j<clusterer.clusters.length;++j){cluster=clusterer.clusters[j];if(cluster!=null&&cluster.bounds.contains(marker.getPoint())){cluster.markers.push(marker);++cluster.markerCount;marker.inCluster=true}}}}for(i=0;i<clusterer.clusters.length;++i)if(clusterer.clusters[i]!=null&&clusterer.clusters[i].markerCount<clusterer.minMarkersPerCluster){clusterer.clearCluster(clusterer.clusters[i]);clusterer.clusters[i]=null}for(i=clusterer.clusters.length-1;i>=0;--i)if(clusterer.clusters[i]!=null)break;else--clusterer.clusters.length;for(i=0;i<clusterer.clusters.length;++i){cluster=clusterer.clusters[i];if(cluster!=null){for(j=0;j<cluster.markers.length;++j){marker=cluster.markers[j];if(marker!=null&&marker.onMap){clusterer.map.removeOverlay(marker);marker.onMap=false}}}}for(i=0;i<clusterer.clusters.length;++i){cluster=clusterer.clusters[i];if(cluster!=null&&cluster.marker==null){var xTotal=0,yTotal=0;for(j=0;j<cluster.markers.length;++j){marker=cluster.markers[j];if(marker!=null){xTotal+=+marker.getPoint().lng();yTotal+=+marker.getPoint().lat()}}var location=new PLatLng(yTotal/cluster.markerCount,xTotal/cluster.markerCount);marker=new PMarker(location,clusterer.icon);cluster.marker=marker;PEvent.addListener(marker,"click",PMarkerManager.makeCaller(PMarkerManager.popUp,cluster))}}}for(i=0;i<visibleMarkers.length;++i){marker=visibleMarkers[i];if(marker!=null&&!marker.onMap&&!marker.inCluster){clusterer.map.addOverlay(marker);if(marker.addedToMap!=null)marker.addedToMap();marker.onMap=true}}for(i=0;i<clusterer.clusters.length;++i){cluster=clusterer.clusters[i];if(cluster!=null&&!cluster.onMap&&bounds.contains(cluster.marker.getPoint())){clusterer.map.addOverlay(cluster.marker);cluster.onMap=true}}PMarkerManager.rePop(clusterer)};PMarkerManager.popUp=function(cluster){var clusterer=cluster.clusterer;var html="This cluster represents <b>"+cluster.markerCount+"</b> individual pins.<br>Zoom in closer to see them.";cluster.marker.openInfoWindowHtml(html);clusterer.poppedUpCluster=cluster};PMarkerManager.rePop=function(clusterer){if(clusterer.poppedUpCluster!=null)PMarkerManager.popUp(clusterer.poppedUpCluster)};PMarkerManager.popDown=function(clusterer){clusterer.poppedUpCluster=null};PMarkerManager.prototype.clearCluster=function(cluster){var i,marker;for(i=0;i<cluster.markers.length;++i)if(cluster.markers[i]!=null){cluster.markers[i].inCluster=false;cluster.markers[i]=null}cluster.markers.length=0;cluster.markerCount=0;if(cluster==this.poppedUpCluster)this.map.closeInfoWindow();if(cluster.onMap){this.map.removeOverlay(cluster.marker);cluster.onMap=false}};PMarkerManager.makeCaller=function(func,arg){return function(){func(arg)}};prevHover=function(){var sfEls=document.getElementById("previousdropid").getElementsByTagName("LI");for(var i=0;i<sfEls.length;i++){sfEls[i].onmouseover=function(){this.className+=" prevhover"};sfEls[i].onmouseout=function(){this.className=this.className.replace(new RegExp(" prevhover\\b"),"")}}};function disableMenu(){$("#nav li ul").hide()}function enableMenu(){$("#nav li ul").show()}keyboardAccessible=function(){if(document.getElementById("nav")){var mcEls=document.getElementById("nav").getElementsByTagName("A");for(var i=0;i<mcEls.length;i++){mcEls[i].onfocus=function(){this.className+=(this.className.length>0?" ":"")+"sffocus";this.parentNode.parentNode.className+=(this.parentNode.parentNode.className.length>0?" ":"")+"sfhover";if(this.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.parentNode.className.length>0?" ":"")+"sfhover";if(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className.length>0?" ":"")+"sfhover"}}else if(this.parentNode.parentNode.parentNode.parentNode.nodeName=="DIV"){this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className.length>0?" ":"")+"sfhover";if(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className.length>0?" ":"")+"sfhover"}}};mcEls[i].onblur=function(){this.className=this.className.replace(new RegExp("( ?|^)sffocus\\b"),"");this.parentNode.parentNode.className=this.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"),"");if(this.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"),"");if(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"),"")}}if(this.parentNode.parentNode.parentNode.parentNode.nodeName=="DIV"){this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"),"");if(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover\\b"),"")}}}}}var uls=jQuery(".horMenu");for(var j=0;j<uls.length;j++){var mcEls=jQuery(uls[j]).find("a");for(var i=0;i<mcEls.length;i++){mcEls[i].onfocus=function(){this.className+=(this.className.length>0?" ":"")+"sffocus";this.parentNode.parentNode.className+=(this.parentNode.parentNode.className.length>0?" ":"")+"sfhover2";if(this.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.parentNode.className.length>0?" ":"")+"sfhover2";if(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className.length>0?" ":"")+"sfhover2"}}else if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.parentNode.className+=(this.parentNode.parentNode.parentNode.parentNode.parentNode.className.length>0?" ":"")+"sfhover2"}};mcEls[i].onblur=function(){this.className=this.className.replace(new RegExp("( ?|^)sffocus\\b"),"");this.parentNode.parentNode.className=this.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover2\\b"),"");if(this.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover2\\b"),"");if(this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover2\\b"),"")}}else if(this.parentNode.parentNode.parentNode.parentNode.parentNode.nodeName=="LI"){this.parentNode.parentNode.parentNode.parentNode.parentNode.className=this.parentNode.parentNode.parentNode.parentNode.parentNode.className.replace(new RegExp("( ?|^)sfhover2\\b"),"")}}}}};if(window.addEventListener){window.addEventListener("load",keyboardAccessible,false)}else if(document.addEventListener)document.addEventListener("load",keyboardAccessible,false);else if(window.attachEvent){window.attachEvent("onload",keyboardAccessible)}else{if(typeof window.onload=="function"){var existing=onload;window.onload=function(){keyboardAccessible()}}else{window.onload=function(){keyboardAccessible()}}}PMercatorProjection=function(){};PMercatorProjection.prototype=new PProjection;PMercatorProjection.prototype.fromLatLngToMeters=function(point){if(point instanceof PLatLng)point=new PPoint(point.lng(),point.lat());var ret=this.proj.projectMerc(point);return new PPoint(ret.x,ret.y)};PMercatorProjection.prototype.fromMetersToLatLng=function(point){var ret=this.proj.unprojectMerc(point);return new PLatLng(ret.y,ret.x)};PMIdentificationModule={disabled:false};PMIdentificationModule.disableClick=function(){this.disabled=true};PMIdentificationModule.enableClick=function(){this.disabled=false};PMIdentificationModule.isDisabled=function(){return this.disabled};PMIdentificationModule.showInfoWindow=function(urlParams){var addr=null;if(urlParams["place"]){addr=decodeURIComponent(urlParams["place"])}this.clickHandler(null,new PLatLng(urlParams["iwx"],urlParams["iwy"]),addr)};PMIdentificationModule.clickHandler=function(overlay,point,address,forceIndData){if(isFurman()&&PEnvironment.pageName==="widget"){return}if(this.isDisabled()){return}if(isCBClone()){this.clickHandlerCB(overlay,point,address);return}if(isCustomRegionOn())return;var self=this;if(overlay){var attributes=overlay.getAttributes();if(attributes.length>0){var point=overlay.getPoint()}else{return}}var map=P.instances.map;map.setRemovePolygonsOnInfoWindowClose(true);var legend=map.legend;var options={showmarker:forceIndData?false:true,showindicator:true,showplaces:true,nonmixedresult:true,uptotype:legend.getIndicator()?legend.getBoundaryType():null};options.cmc=options.uptotype!=null&&options.uptotype==PPlaceType.SCHOOL;if(isFinalReportPage()){if(typeof currentReport!="undefined"&&currentReport.reportType=="hud"){options.showplaces=false;options.showindicator=false}}if(map.getLegendMerger()){var uptotype=null;var legendMerger=map.getLegendMerger();var legend=null;options.boundaryTypes=[];options.defIds=[];for(var i=0;legend=legendMerger.getLegend(i);i++){var curInd=legend.legend.getIndicator();if(curInd!=null){var boundaryType=legend.legend.getBoundaryType();options.boundaryTypes.push(boundaryType);options.defIds.push(boundaryMatrix.getDefinitionIdForTypeId(boundaryType.getId(),curInd.matrixIds[curInd.curPerIndex]))}}}map.identify(point,function(markers,places,cube){self.buildInfoWindow(markers,places,cube,point,address)},options)};PMIdentificationModule.buildInfoWindow=function(markers,places,cube,point,address){var tabs;var map=P.instances.map;var ind=map.getIndicator();var boundaryType=map.getLegend()?map.getLegend().getBoundaryType():null;if(markers&&markers.length>0){map.setRemovePolygonsOnInfoWindowClose(false);if(PEnvironment.pageName=="widget"){if(PEnvironment.widgetParams.sid==59){PMIdentificationPrinter.customizeSitesIdentifyForPSPWidget(markers[0]);return}}var sitesAttributes=[];var sameMarkers=[];for(var i=0;i<markers.length;i++){if(markers[0].getPoint().lat()==markers[i].getPoint().lat()&&markers[0].getPoint().lng()==markers[i].getPoint().lng()){sitesAttributes.push(markers[i].getAttributes());sameMarkers.push(markers[i])}}if(sitesAttributes.length>1)var tabs=PMIdentificationPrinter.printSameAddresses(markers[0].getPoint(),sameMarkers);else{var attributes=markers[0].getAttributes();var tabs=PMIdentificationPrinter.printAttributes(attributes,null,markers[0])}map.openInfoWindowTabs(markers[0].getPoint(),tabs,null,null,P.constants.infoWindowTypeIdentify);var pmid=PMIdentificationPrinter;var urlParams=getUrlParams();if(!pmid.savedMapLoaded&&urlParams["iwtab"]){pmid.savedMapLoaded=true
;if(urlParams["iwlink"])pmid.addAttributeTabs(pmid.savedMarkerAttr,tabs,markers[0].getPoint(),urlParams["iwlink"],markers[0]);if(urlParams["iwtab"]){var t=urlParams["iwtab"];map.getInfoWindow().selectTab(t)}}}else if(places&&places.length>0||cube){clearPolygons(map);var identifyDiv=document.createElement("div");identifyDiv.id="identifyContainer";identifyDiv.style.width="240px";identifyDiv.className="identify";if(cube){identifyDiv.showsCube=true;var p=null;if(PEnvironment.pageName!="analytics"){var typeInd=map.getLegend().getBoundaryType();var l=places.length;if(l==1||l>1&&!allPlacesSameType(places)){for(var i=l-1;i>=0;i--){var curPlace=places[i];var typePlace=curPlace.getType();if(typePlace&&typeInd&&typePlace.id==typeInd.id){p=curPlace;break}}}}else{var containmentOrder=PPlaceTypeConfig.containmentOrder;var l=containmentOrder.length;var borderPlaces=[];placeTypeLoop:for(var i=l-1;i>=0;i--){var curPlaceType=containmentOrder[i];for(var j=0;j<places.length;j++){if(places[j].typeid==curPlaceType.getId()){borderPlaces.push(places[j])}}if(borderPlaces.length>0){var matrixOrder=boundaryMatrix.getMatrixOrder();for(var j=0;j<matrixOrder.length;j++){var currentMatrix=matrixOrder[j];for(var k=0;k<borderPlaces.length;k++){if(boundaryMatrix.isDefinitionIdInMatrix(borderPlaces[k].defid,currentMatrix)){p=borderPlaces[k];break placeTypeLoop}}}borderPlaces=[]}}}var currentPlace=null;if(address){var $addr=getAddressBubbleContent(address);$(identifyDiv).append($addr)}if(p!=null&&address==null){clearPolygons(map);addPolygons(map,p);currentPlace=p;session.put("p",currentPlace.id)}var publicUser=isPublicUser()&&!isCovidData();if(map.getLegendMerger()&&PEnvironment.pageName=="analytics"){for(var i=0;i<3;i++){if(map.getLegendMerger().getLegend(i).getIndicator()){var legend=map.getLegendMerger().getLegend(i).legend;PMIdentificationPrinter.printCube(cube,legend,identifyDiv,publicUser,address);PMIdentificationPrinter.printDataLinks(identifyDiv,legend)}}if(p!=null){var pSpans=$(identifyDiv).find(".placeType"+p.getID());for(var i=0;i<pSpans.length;i++){var curText=pSpans[i].innerHTML;pSpans[i].innerHTML=curText.substring(0,curText.length-1)+" - Outlined)"}}PMIdentificationPrinter.printLatLng(point,identifyDiv);if(!isSubscriber()){var div=document.createElement("div");var text="Become a <a href='subscribe.jsp'>Subscriber</a> to use the Analytics feature.";div.innerHTML=text;identifyDiv.appendChild(div)}var infoBubbleLinks=document.createElement("div");infoBubbleLinks.id="infoBubbleLinks";identifyDiv.appendChild(infoBubbleLinks);infoBubbleLinks.appendChild(document.createElement("br"));$(infoBubbleLinks).append(PMIdentificationPrinter.getReportLink(currentPlace));infoBubbleLinks.appendChild(document.createElement("br"));infoBubbleLinks.appendChild(document.createElement("br"));infoBubbleLinks.appendChild(generateDownloadLink());PMIdentificationPrinter.printSeeSites(infoBubbleLinks,currentPlace);PMIdentificationPrinter.printSeePolygons(infoBubbleLinks,currentPlace)}else if(ind&&ind.hasBubbleIndicators(true)){var inds=cube.getIndicators();var opts=ind.getBubbleOptions();var tabNames=opts.tabs;if(opts.isGlobal){if(PEnvironment.pageName=="widget"&&PEnvironment.widgetParams.sid==113){PMIdentificationPrinter.printCubeIndicatorsDCEDCustom(cube,map.getLegend(),identifyDiv,publicUser,inds,point);return}else if(PEnvironment.pageName=="widget"&&isMNWidget()){tabs=PMIdentificationPrinter.printCubeIndicatorsMNHFACustom(cube,map.getLegend(),identifyDiv,publicUser,inds,places,tabNames)}else if(PEnvironment.pageName=="widget"&&PEnvironment.widgetParams.sid==235){PMIdentificationPrinter.printCubeIndicatorsMoodyCustom(cube,map.getLegend(),identifyDiv,publicUser,inds,point);for(var i=0;i<places.length;i++){if(places[i].getType()==PPlaceType.COUNTY||places[i].getType()==PPlaceType.STATE){global_places.push(places[i])}}refreshWidgetCharts();return}else{tabs=PMIdentificationPrinter.printCubeIndicatorsForGlobalIdentify(cube,map.getLegend(),identifyDiv,publicUser,inds,places,tabNames)}}else{if(isIffCustomFilterWidget()){var ignoreInds=[9919851,9919852,9919853,9922161,9922160,9922162,9922166,9923859,9923858,9923860,9923864,9936685,9936686,9936687,9936691];var removeMapInd=false;var mapInd=P.instances.map.getIndicator();for(var i=0;i<ignoreInds.length;i++){if(mapInd.id==ignoreInds[i]){removeMapInd=true;break}}if(removeMapInd){for(var i=0;i<inds.length;i++){if(inds[i].id==mapInd.id){inds.splice(i,1)}}}}var checkForMultiTimeFrames=function(){var hasMulti=false;if(opts&&opts.numberOfTimeFrames){var tframes=opts.numberOfTimeFrames;for(var t=0;t<tframes.length;t++){if(tframes[t]>1){hasMulti=true;break}}}return hasMulti};if(PEnvironment.pageName=="widget"&&PEnvironment.widgetParams.sid==72&&(ind.periods[ind.curPerIndex]!="2010"&&ind.periods[ind.curPerIndex]!=P.constants.latestACSPeriod)){PMIdentificationPrinter.printCube(cube,map.getLegend(),identifyDiv,publicUser,address)}else if(PEnvironment.productId==1699&&checkForMultiTimeFrames()===true){tabs=PMIdentificationPrinter.printCubeIndicatorsMultiTimeFrames(cube,map.getLegend(),identifyDiv,publicUser,inds,places,tabNames,address)}else{tabs=PMIdentificationPrinter.printCubeIndicators(cube,map.getLegend(),identifyDiv,publicUser,inds,places,tabNames,address)}}}else{PMIdentificationPrinter.printCube(cube,map.getLegend(),identifyDiv,publicUser,address);PMIdentificationPrinter.printLatLng(point,identifyDiv);PMIdentificationPrinter.printGreatSchoolsLink(cube,identifyDiv);PMIdentificationPrinter.printDataLinks(identifyDiv);if(isGeorgiaReadingWidget()){var link=PMIdentificationPrinter.getWidgetReportLink(null,point);$(identifyDiv).append(link)}}if(PEnvironment.pageName!="analytics"){if(publicUser){identifyDiv.appendChild(PMIdentificationPrinter.getSignUpText())}else{if(isWidgetPage()){var infoBubbleLinks=document.createElement("div");infoBubbleLinks.id="infoBubbleLinks";identifyDiv.appendChild(infoBubbleLinks);if(isEnterpriseWidget()||isEnterpriseTestWidget()){for(var i in places){var place=places[i];var placetypeid=place.getTypeById().getId();if(placetypeid==PPlaceType.CENSUSTRACT.id){var currPlaceType=curPlace.getType().getId();if(currPlaceType==placetypeid){var infoBubbleLinks=document.createElement("div");infoBubbleLinks.id="infoBubbleLinks";identifyDiv.appendChild(infoBubbleLinks);var anchor=document.createElement("a");text="Get Enterprise Opportunity Report";var reportCode="op";if(isEnterpriseTestWidget()){reportCode="optest"}anchor.innerHTML=text;anchor.style.marginRight="15px";anchor.placeid=place.getID();anchor.target="_blank";anchor.href="/report_widget?pid="+anchor.placeid+"&type="+reportCode+"&area=predefined&sid=2010";infoBubbleLinks.appendChild(anchor)}}}PMIdentificationPrinter.printSeeSites(infoBubbleLinks,currentPlace);PMIdentificationPrinter.printSeePolygons(infoBubbleLinks,currentPlace)}else if(isRhodeIslandWidget()){var place=places[i];var ullinkcontainer=document.createElement("ul");identifyDiv.appendChild(ullinkcontainer);var infoBubbleLinks=document.createElement("li");infoBubbleLinks.style="margin-bottom: 5px;";var anchor=document.createElement("a");text="<br />                                                                             <br />";var reportCode="rih";anchor.innerHTML=text;anchor.style.marginRight="15px";anchor.target="_blank";anchor.href="#";anchor.id="rihlink5";anchor.style="font-size: 10px;";infoBubbleLinks.appendChild(anchor);ullinkcontainer.appendChild(infoBubbleLinks);var infoBubbleLinks=document.createElement("li");infoBubbleLinks.style="margin-bottom: 5px;";var anchor=document.createElement("a");text="<br />                                                                             <br />";var reportCode="rih";anchor.innerHTML=text;anchor.style.marginRight="15px";anchor.target="_blank";anchor.href="#";anchor.id="rihlink1";anchor.style="font-size: 10px;";infoBubbleLinks.appendChild(anchor);ullinkcontainer.appendChild(infoBubbleLinks);var infoBubbleLinks=document.createElement("li");infoBubbleLinks.style="margin-bottom: 5px;";var anchor=document.createElement("a");text="<br />                                                                             <br />";var reportCode="rih";anchor.innerHTML=text;anchor.style.marginRight="15px";anchor.target="_blank";anchor.href="#";anchor.id="rihlink2";anchor.style="font-size: 10px;";infoBubbleLinks.appendChild(anchor);ullinkcontainer.appendChild(infoBubbleLinks);var infoBubbleLinks=document.createElement("li");infoBubbleLinks.style="margin-bottom: 5px;";var anchor=document.createElement("a");text="<br />                                                                             <br />";var reportCode="rih";anchor.innerHTML=text;anchor.style.marginRight="15px";anchor.target="_blank";anchor.href="#";anchor.id="rihlink3";anchor.style="font-size: 10px;";infoBubbleLinks.appendChild(anchor);ullinkcontainer.appendChild(infoBubbleLinks);var infoBubbleLinks=document.createElement("li");var anchor=document.createElement("a");text="<br />                                                                             <br />";var reportCode="rih";anchor.innerHTML=text;anchor.style.marginRight="15px";anchor.target="_blank";anchor.href="#";anchor.id="rihlink4";anchor.style="font-size: 10px;";infoBubbleLinks.appendChild(anchor);ullinkcontainer.appendChild(infoBubbleLinks);PMIdentificationPrinter.printSeeSites(infoBubbleLinks,currentPlace);PMIdentificationPrinter.printSeePolygons(infoBubbleLinks,currentPlace);point.getPlacesContaining(PPlaceType.CONGRESSIONAL,5,null,function(congressionalplaces){try{var place=congressionalplaces[0];var placeid=place.getID();var reportCode="rih";var href="/report_widget?pid="+placeid+"&type="+reportCode+"&area=predefined&sid=8838";var linktext="Get RIHousing Report for "+place.getLabel();$("#rihlink1").attr("href",href);$("#rihlink1").text(linktext)}catch(e){console.log(e)}point.getPlacesContaining(PPlaceType.SLD_UPPER,5,null,function(sld_upper_places){try{var place=sld_upper_places[0];var placeid=place.getID();var reportCode="rih";var href="/report_widget?pid="+placeid+"&type="+reportCode+"&area=predefined&sid=8838";var linktext="Get RIHousing Report for "+place.getLabel();$("#rihlink2").attr("href",href);$("#rihlink2").text(linktext)}catch(e){console.log(e)}point.getPlacesContaining(PPlaceType.SLD_LOWER,5,null,function(sld_lower_places){try{var place=sld_lower_places[0];var placeid=place.getID();var reportCode="rih";var href="/report_widget?pid="+placeid+"&type="+reportCode+"&area=predefined&sid=8838";var linktext="Get RIHousing Report for "+place.getLabel();$("#rihlink3").attr("href",href);$("#rihlink3").text(linktext)}catch(e){console.log(e)}point.getPlacesContaining(PPlaceType.COUNTY_SUBDIVISION,5,null,function(county_subdivision_places){try{var place=county_subdivision_places[0];var placeid=place.getID();var reportCode="rih";var href="/report_widget?pid="+placeid+"&type="+reportCode+"&area=predefined&sid=8838";var linktext="Get RIHousing Report for "+place.getLabel();$("#rihlink4").attr("href",href);$("#rihlink4").text(linktext)}catch(e){console.log(e)}try{var placeid=545706;var reportCode="rih";var href="/report_widget?pid="+placeid+"&type="+reportCode+"&area=predefined&sid=8838";var linktext="Get RIHousing Report for Rhode Island";$("#rihlink5").attr("href",href);$("#rihlink5").text(linktext)}catch(e){console.log(e)}})})})})}else if(isCHFAWidget()){var place=places[i];var reportCode="chfa";var productId=8899;var ullinkcontainer=document.createElement("ul");identifyDiv.appendChild(ullinkcontainer);for(var i=1;i<=6;i++){var infoBubbleLinks=document.createElement("li");infoBubbleLinks.style="margin-bottom: 5px;";var anchor=document.createElement("a");var text="<br />"+Array(77).join(" ")+"<br />";anchor.innerHTML=text;anchor.style.marginRight="15px";anchor.target="_blank";anchor.href="#";anchor.id="chfa_link"+i;anchor.style="font-size: 10px;";infoBubbleLinks.appendChild(anchor);ullinkcontainer.appendChild(infoBubbleLinks)}PMIdentificationPrinter.printSeeSites(infoBubbleLinks,currentPlace);PMIdentificationPrinter.printSeePolygons(infoBubbleLinks,currentPlace);var placetypes=[];placetypes[1]=PPlaceType.CENSUSTRACT;placetypes[2]=PPlaceType.COUNTY_SUBDIVISION;placetypes[3]=PPlaceType.COUNTY;placetypes[4]=PPlaceType.SLD_LOWER;placetypes[5]=PPlaceType.SLD_UPPER;placetypes[6]=PPlaceType.CONGRESSIONAL;var matrixids=[];matrixids[1]=5;matrixids[2]=5;matrixids[3]=5;matrixids[4]=5;matrixids[5]=5;matrixids[6]=7;for(var i=1;i<=6;i++){updateChfaLinks(point,i)}function updateChfaLinks(point,index){var plType=placetypes[index];var matrId=matrixids[index];point.getPlacesContaining(plType,matrId,null,function(places){try{var aplace=places[0];var placeid=aplace.getID();var href="/report_widget?pid="+placeid+"&type="+reportCode+"&area=predefined&sid="+productId;var linktext="Get CHFA Housing Report for "+aplace.getLabel();if(index==3){linktext+=" County"}$("#chfa_link"+index).attr("href",href);$("#chfa_link"+index).text(linktext)}catch(e){console.log(e)}})}}else{PMIdentificationPrinter.printSeeSites(infoBubbleLinks,currentPlace);PMIdentificationPrinter.printSeePolygons(infoBubbleLinks,currentPlace)}}else if(!isEmbedPage()&&!isMobile()&&!isCBClone()){var infoBubbleLinks=document.createElement("div");infoBubbleLinks.appendChild(document.createElement("br"));infoBubbleLinks.id="infoBubbleLinks";identifyDiv.appendChild(infoBubbleLinks);var hasData=false;var period=cube.getPeriods()[0];var indicator=cube.getIndicators()[0];for(var i=0;i<places.length;++i){var place=places[i];if(cube.values[period]&&cube.values[period][place.id]&&cube.values[period][place.id][indicator.id]!==null&&!isNaN(cube.values[period][place.id][indicator.id])){hasData=true;break}}if(hasData&&productProperty.getValue("disable_tables")!=true){var anchor=document.createElement("a");anchor.innerHTML="See Table";anchor.style.marginRight="15px";PEvent.addListener(anchor,"click",function(){var placeIds=[];var l=places.length;var place;var shouldInclude=false;var hasData=false;var period=cube.getPeriods()[0];var indicator=cube.getIndicators()[0];for(var i=0;i<l;i++){place=places[i];hasData=cube.values[period][place.id][indicator.id]!=null;shouldInclude=indicator.getMeasurement()!="count"||place.getType()!=PPlaceType.STATE||map.getLegend().getBoundaryType().id==PPlaceType.STATE.id;if(shouldInclude&&hasData){placeIds.push(place.id)}}session.put("p",placeIds.join(","));session.put("i",cube.getIndicators()[0].id);session.put("period",cube.getPeriods()[0]);session.save();setWindowLocation("tables")});infoBubbleLinks.appendChild(anchor)}var showReportLink=true;var showTableLink=false;var arr=[130900,129400];var dids=map.getIndicator().getDatasetIds();for(var i=0;i<arr.length;i++){for(var d=0;d<dids.length;d++){if(arr[i]==dids[d]){showReportLink=false}}}if(ind.isCategorical()&&ind.getReportCodeForBubbleLink()==null){showReportLink=false;showTableLink=true}var isEnterpriseInd=false;if(isEnterpriseCommunityProduct()){var indids=[9940638,9940633];for(var i=0;i<indids.length;i++){if(ind.id==indids[i]){var isEnterpriseInd=true;showReportLink=true;break}}}if((currentPlace||address)&&showReportLink){if(address){var anchor=generatePointReportLink(point.lat(),point.lng(),address);infoBubbleLinks.appendChild(anchor);infoBubbleLinks.appendChild(document.createElement("br"))}else{var anchor=document.createElement("a");var text="Get Report";if(isEnterpriseInd){text="Get Enterprise Opportunity Report"}anchor.innerHTML=text;anchor.style.marginRight="15px";anchor.target="_blank";anchor.placeid=currentPlace.id;PEvent.addListener(anchor,"click",function(){session.put("p",currentPlace.id);var ind=map.getIndicator();var report="";if(ind&&isSupermarketIndicator(ind)){report="&type=brookingslaa"}else if(isEnterpriseInd){report="&type=op&area=predefined"}else if(ind.getReportCodeForBubbleLink()){report="&type="+ind.getReportCodeForBubbleLink()}setWindowLocation("/reports?pid="+anchor.placeid+report)});infoBubbleLinks.appendChild(anchor)}infoBubbleLinks.appendChild(document.createElement("br"));infoBubbleLinks.appendChild(document.createElement("br"));infoBubbleLinks.appendChild(generateDownloadLink());if(!showTableLink&&!address){PMIdentificationPrinter.printSeeSites(infoBubbleLinks,currentPlace);PMIdentificationPrinter.printSeePolygons(infoBubbleLinks,currentPlace)}}if(currentPlace&&showTableLink){var anchor=document.createElement("a");anchor.innerHTML="See Table";anchor.style.marginRight="15px";anchor.placeid=currentPlace.id;PEvent.addListener(anchor,"click",function(){if(map.getIndicator()){var indicator=map.getIndicator();var period=indicator.getPeriod();session.put("i",indicator.id);session.put("period",period);session.save()}setWindowLocation("tables")});infoBubbleLinks.appendChild(anchor);infoBubbleLinks.appendChild(document.createElement("br"));infoBubbleLinks.appendChild(document.createElement("br"));infoBubbleLinks.appendChild(generateDownloadLink());PMIdentificationPrinter.printSeeSites(infoBubbleLinks,currentPlace);PMIdentificationPrinter.printSeePolygons(infoBubbleLinks,currentPlace)}}}if(ind.getMeasurement()=="type"||ind.getMeasurement()=="Type"){var mva_charts=[196211,196126,9609712,196193,196510,196528,198853,196544,198870,198887,9627551,196300,9844405,9896954];for(var m=0;m<mva_charts.length;m++){if(ind.getID()==mva_charts[m]){var link=document.createElement("a");link.innerHTML="See table of underlying values";if(mva_charts[m]==196126)link.innerHTML="See cluster descriptions";link.target="_blank";link.href="/our-data-directory.html#mva_"+ind.getID();identifyDiv.appendChild(document.createElement("br"));identifyDiv.appendChild(document.createElement("br"));identifyDiv.appendChild(link)}}}}}else if(places){var p=PMIdentificationPrinter.selectPlace(map.getZoom(),places);PMIdentificationPrinter.printPlaces(places,identifyDiv,p);PMIdentificationPrinter.printLatLng(point,identifyDiv);var infoBubbleLinks=document.createElement("div");infoBubbleLinks.id="infoBubbleLinks";identifyDiv.appendChild(infoBubbleLinks);PMIdentificationPrinter.printSeeSites(infoBubbleLinks,p);PMIdentificationPrinter.printSeePolygons(infoBubbleLinks,p);if(p){session.put("p",p.id);session.put("pLabel",p.getLabel())}if(isEnterpriseWidget()||isEnterpriseTestWidget()){for(var i in places){var place=places[i];var placetypeid=place.getTypeById().getId();if(placetypeid==PPlaceType.CENSUSTRACT.id){var infoBubbleLinks=document.createElement("div");infoBubbleLinks.id="infoBubbleLinks";identifyDiv.appendChild(infoBubbleLinks);var anchor=document.createElement("a");text="Get Enterprise Opportunity Report";var reportCode="op";if(isEnterpriseTestWidget()){reportCode="optest"}anchor.innerHTML=text;anchor.style.marginRight="15px";anchor.placeid=place.getID();anchor.target="_blank";anchor.href="/report_widget?pid="+anchor.placeid+"&type="+reportCode+"&area=predefined&sid=2010";infoBubbleLinks.appendChild(anchor)}}}}if(tabs&&tabs.length>0){if(address){var marker=map.currentAddressMarker;marker.currentInd=map.getIndicator();marker.openInfoWindowTabs(tabs,P.constants.infoWindowTypeAddress);var self=this;PEvent.addListener(marker,"click",function(){var ind=map.getIndicator();if(ind==marker.currentInd){marker.openInfoWindowTabs(tabs,P.constants.infoWindowTypeIdentify)}else if(ind){self.clickHandler(null,point,address)}else{var addressContent=getAddressBubbleContent(address);var reportLink=generatePointReportLink(point.lat(),point.lng(),address);var $d=$("<div />");$d.append(addressContent,reportLink);marker.openInfoWindow($d[0],P.constants.infoWindowTypeAddress)}})}else{map.openInfoWindowTabs(point,tabs,null,null,P.constants.infoWindowTypeIdentify)}}else{if(isCBClone()){var attachGetProfile=false;if(P.CloneOptions.report_latest_vintage_only){var allDefs=boundaryMatrix.getAllBoundaryDefinitionsForTypeId(p.getType().getId());if(allDefs.length>0){allDefs=_.sortBy(allDefs,"displayYear");if(p.getDefinitionId()==allDefs[allDefs.length-1].boundaryDefinitionId){attachGetProfile=true}}}else{attachGetProfile=true}if(attachGetProfile){var button=getCBGetProfileButton(p);if(button){$(identifyDiv).append(button)}}}if(address){var marker=map.currentAddressMarker;marker.currentInd=map.getIndicator();marker.openInfoWindow(identifyDiv,P.constants.infoWindowTypeAddress);var self=this;PEvent.addListener(marker,"click",function(){var ind=map.getIndicator();if(ind==marker.currentInd){marker.openInfoWindow(identifyDiv,P.constants.infoWindowTypeIdentify)}else if(ind){self.clickHandler(null,point,address)}else{var addressContent=getAddressBubbleContent(address);var reportLink=generatePointReportLink(point.lat(),point.lng(),address);var $d=$("<div />");$d.append(addressContent,reportLink);marker.openInfoWindow($d[0],P.constants.infoWindowTypeAddress)}})}else{map.openInfoWindow(point,identifyDiv,null,P.constants.infoWindowTypeIdentify)}}}};PMIdentificationModule.clickHandlerCB=function(overlay,point,address){if(isCustomRegionOnForClones())return;var self=this;if(overlay){var attributes=overlay.getAttributes();if(attributes.length>0){var point=overlay.getPoint()}else{return}}map.setRemovePolygonsOnInfoWindowClose(true);var legend=map.legend;var showPlaces=true;var options={showmarker:true,showindicator:true,showplaces:showPlaces,nonmixedresult:true,uptotype:legend.getIndicator()?legend.getBoundaryType():null,onlytype:PPlaceType.BLOCKGROUP};if(isFinalReportPage()){options.showplaces=false;options.showindicator=false}if(map.getLegendMerger()&&PEnvironment.pageName=="analytics"){var uptotype=null;var legendMerger=map.getLegendMerger();var legend=null;options.boundaryTypes=[];options.defIds=[];for(var i=0;legend=legendMerger.getLegend(i);i++){var curInd=legend.legend.getIndicator();if(curInd!=null){var boundaryType=legend.legend.getBoundaryType();options.boundaryTypes.push(boundaryType);options.defIds.push(boundaryMatrix.getDefinitionIdForTypeId(boundaryType.getId(),curInd.matrixIds[curInd.curPerIndex]))}}}map.identify(point,function(markers,places,cube){if(places&&!map.getIndicator()&&(!map.getLegendMerger()||map.getLegendMerger()&&map.getLegendMerger().getIndicatorCount()==0)){var arr=[];for(var i=0;i<places.length;i++){var p=places[i];var t=p.getType();if(t&&t==options.onlytype){arr.push(p)}}places=arr}self.buildInfoWindow(markers,places,cube,point,address)},options)};PMIdentificationPrinter={placeTypeConfig:new PPlaceTypeConfig};PMIdentificationPrinter.findPlace=function(z,places){return this.findPlaceTopDown(z,places)};PMIdentificationPrinter.findPlaceTopDown=function(z,places){var t;var p;var found=false;for(var i=z;i<16&&!found;i++){t=this.placeTypeConfig.zooms[i];if(t){for(var j=0;j<places.length;j++){p=places[j];if(p.typeid==t.id){found=true;break}}}}if(!p){p=places[places.length-1]}return p};PMIdentificationPrinter.findPlaceBottomUp=function(z,places){var t;var p;var found=false;for(var i=z;i>=0&&!found;i--){t=PPlaceTypeConfig.PLEGEND.zooms[i];if(t){for(var j=0;j<places.length;j++){p=places[j];if(p.typeid==t.id){found=true;break}}}}if(!p){p=places[places.length-1]}return p};PMIdentificationPrinter.selectPlace=function(z,places){clearPolygons(map);var p=this.findPlace(z,places);if(!p)p=places[0];if(p)addPolygons(map,p);return p};PMIdentificationPrinter.printPlaces=function(places,container,selectedPlace){var tableElem=document.createElement("table");tableElem.id="identify";tableElem.className="cube";tableElem.style.width="240px";container.appendChild(tableElem);var tbodyElem=document.createElement("tbody");tableElem.appendChild(tbodyElem);var place;var type;var l=places.length;var teaser;var rowElem;for(var i=0;i<l;i++){place=places[i];type=place.getType();if(!boundaryTypes.hasTypeForContainmentsByTypeId(type.id)){continue}if(!type||type.isCongressional()||type==PPlaceType.SLD_UPPER||type==PPlaceType.SLD_LOWER)continue;highlight=type.id==selectedPlace.getType().id?"hl":"";if(type.id==selectedPlace.getType().id)mapstates.setCurrentPlace(place);rowElem=document.createElement("tr");rowElem.className=highlight;tbodyElem.appendChild(rowElem);var cellElem=document.createElement("td");rowElem.appendChild(cellElem);if(teaser){cellElem.className=teaser;cellElem.innerHTML=place.label+"<span class='placeType'> ("+type.getName()+")</span></td>"}else{this.addPlaceLink(place,cellElem)}}};PMIdentificationPrinter.addPlaceLink=function(place,container){var a;if(PEnvironment.pageName=="analytics"){a=document.createElement("span");$(a).addClass("boundary-link")}else{a=document.createElement("a");$(a).addClass("boundary-link");PEvent.addListener(a,"mouseup",function(){map.setCenterBounds(place.bounds);clearPolygons(map);map.closeInfoWindow();addPolygons(map,place);mapstates.add(new PMapState(map.getCenter(),map.getZoom(),map.getIndicator(),null,place));session.put("p",place.id)},"mousedown")}a.innerHTML=place.label;container.appendChild(a);var s=document.createElement("span");s.style.color="#999999";s.style.fontSize="10px";s.className="placeType placeType"+place.getID();s.innerHTML="&nbsp;("+boundaryMatrix.getDisplayNameForDefinitionId(place.defid)+")";container.appendChild(s)};PMIdentificationPrinter.printCustomPolyPlaces=function(polyplace,marker){var container=document.createElement("div");container.id="identifyContainer";container.className="custom-region";container.isCustomOrPoly=true;var div=$("<div />");div.addClass("title");div.html(polyplace.getLabel());if(polyplace.description&&polyplace.description!="null"){var desc=$("<div />");desc.addClass("description");desc.html(polyplace.description);div.append(desc)}$(container).append(div);var options=$("<div />");options.attr("id","custom-region-options");options.addClass("custom-region-options");var coloropts=$("<div />");coloropts.addClass("color-options");var colorlink=$("<a />");colorlink.addClass("color-link");colorlink.html("Change Color");var colorbox=$("<div />");colorbox.addClass("color-box");var color=polycreator.defaultcolor;if(polyplace.color)color=polyplace.color;colorbox.css("background",color);coloropts.append(colorlink);coloropts.append(colorbox);options.append(coloropts);var box=$("<div />");$(box).hide();box.addClass("color-options-box");var colors=["#000202","#953503","#35381D","#003906","#03316D","#020274","#282AA1","#373737","#7C0200","#F76905","#848000","#037B0D","#008589","#0001FE","#63649D","#7E7E7E","#FE0000","#F7981A","#93CD00","#2D9C69","#21D4CE","#3860FF","#700788","#909090","#F60EE0","#FFC500","#FFFC01","#00FF00","#0CFFFD","#03CBFF","#AB245F","#B9B9B9","#FF8CCE","#FFCB90","#FFFF94","#BFFFC5","#C4FFFF","#92CDFF","#D996FF","#FFFFFF"];var count=0;for(var i=0;i<colors.length;i++){count++;var div=$("<div />");div.addClass("color");div.css({background:colors[i]});div.attr("color",colors[i]);div.click(function(){var color=$(this).attr("color");var options={};options.color=color;options.opacity=polyplace.opacity;options.fill=polyplace.fill;polycreator.setPolyStyle(polyplace,options);$(colorbox).css("background",color)});box.append(div);if(count==8){box.append($("<br />"));count=0}}$(coloropts).append(box);var timer=null;PEvent.addListener(box[0],"mouseout",function(){timer=setTimeout(function(){$(box).hide()},200)});PEvent.addListener(box[0],"mouseover",function(){clearTimeout(timer)});coloropts.click(function(){$(box).show()});var filldiv=$("<div />");filldiv.addClass("fill");var img=$("<img />");$(img).attr("title","Fill");img.attr("src","/images/paint-bucket.gif");if(polyplace.fill)img.addClass("fill");img.click(function(){$(this).toggleClass("fill");var fill=false;if($(this).hasClass("fill")){fill=true}var options={};options.fill=fill;options.color=polyplace.color;options.opacity=polyplace.opacity;polycreator.setPolyStyle(polyplace,options)});filldiv.append(img);options.append(filldiv);var sliderdiv=$("<div />");sliderdiv.addClass("opacity");options.append(sliderdiv);var slider=$("<div />");sliderdiv.append(slider);slider.attr("id","slider");$(slider).attr("delaySave",true);$(slider).mouseup(function(event){$(this).attr("delaySave",false)});slider.slider({step:.01,min:0,max:1,value:polyplace.polyline.opacity,stop:function(event,ui){var options={};options.opacity=ui.value;options.fill=polyplace.fill;options.color=polyplace.color;polycreator.setPolyStyle(polyplace,options)},slide:function(event,ui){var options={};options.opacity=ui.value;options.fill=polyplace.fill;options.color=polyplace.color;options.delaySave=true;polycreator.setPolyStyle(polyplace,options)}});var text=$("<div />");text.html("Transparency");sliderdiv.append(text);var br=$("<br />");br.addClass("clear");options.append(br);$(container).append(options);var infoBubbleLinks=document.createElement("div");infoBubbleLinks.id="infoBubbleLinks";container.appendChild(infoBubbleLinks);var div=$("<div />");div.addClass("divider");$(infoBubbleLinks).append(div);var zoom=document.createElement("a");zoom.innerHTML="Zoom to Custom Region";zoom.place=polyplace;PEvent.addListener(zoom,"mousedown",function(){map.setCenterBounds(this.place.getBounds())});infoBubbleLinks.appendChild(zoom);var span=document.createElement("span");span.innerHTML=" - ";infoBubbleLinks.appendChild(span);var remove=document.createElement("a");remove.innerHTML="Clear Custom Region";remove.place=polyplace;PEvent.addListener(remove,"mousedown",function(){polycreator.removeCustomRegionFromMap(this.place);map.closeInfoWindow()});infoBubbleLinks.appendChild(remove);if(!isWidgetOrEmbedMap()){infoBubbleLinks.appendChild(document.createElement("br"));infoBubbleLinks.appendChild(document.createElement("br"));var anchor1=document.createElement("a");anchor1.innerHTML="See Table";anchor1.style.marginRight="15px";PEvent.addListener(anchor1,"click",function(){if(map.getIndicator()){var indicator=map.getIndicator();var period=indicator.getPeriod();session.put("i",indicator.id);session.put("period",period)}setWindowLocation("tables")});infoBubbleLinks.appendChild(anchor1);var ind=map.getIndicator();var anchor2=document.createElement("a");anchor2.innerHTML="Get Report";anchor2.style.marginRight="15px";anchor2.polylabel=polyplace.getLabel();anchor2.polyid=polyplace.id;PEvent.addListener(anchor2,"click",function(){var ind=map.getIndicator();var report="";if(ind&&isSupermarketIndicator(ind)){report="&type=brookingslaa"}setWindowLocation("/reports?area=custom&cpid="+anchor2.polyid+report)});infoBubbleLinks.appendChild(anchor2);if(productProperty.getValue("remove_share_region")==false){var anchor3=document.createElement("a");anchor3.innerHTML="Share Region";anchor3.style.marginRight="15px";anchor3.polylabel=polyplace.getLabel();anchor3.polyid=polyplace.id;PEvent.addListener(anchor3,"click",function(){polycreator.sharePolyDialog(this.polyid,this.polylabel)});infoBubbleLinks.appendChild(anchor3)}infoBubbleLinks.appendChild(document.createElement("br"));infoBubbleLinks.appendChild(document.createElement("br"));infoBubbleLinks.appendChild(generateDownloadLink(null,null,null,polyplace.getID()))}if(!isEmbedPage()){PMIdentificationPrinter.printSeeValues(container,polyplace);PMIdentificationPrinter.printSeeSites(container,polyplace);PMIdentificationPrinter.printSeePolygons(container,polyplace)}if(polyplace.ctypeid==3){var div=document.createElement("div");div.className="extraInfo";div.innerHTML="";if(polyplace.caddress){var addr="<div><span class='header'>Center of Radius:</span> <span class='content'>"+polyplace.caddress+"</span></div>";div.innerHTML+=addr}var radius="<div><span class='header'>Radius:</span> <span class='content'>"+polyplace.radius+" Miles</span></div>";div.innerHTML+=radius;container.appendChild(div)}if(isWidgetPage()){var div=this.getWidgetReportLink(polyplace);if(div)$(infoBubbleLinks).append(div)}return container};PMIdentificationPrinter.printCubeWithEnum=function(){};PMIdentificationPrinter.printCube=function(cube,legend,container,isPublicUser,address){var places=cube.getPlaces();var values=cube.values;global_places=[];if(cube.periods.length>0){var period=legend.getIndicator().getPeriod();var indicator=legend.getIndicator();var place;var typePlace;var typeInd;var obs;var shaded;var highlight="";var teaser;var dispIndex=0;var titleElem=document.createElement("div")
;titleElem.innerHTML=legend.getIndicator().getLabel();titleElem.className="title";titleElem.style.color="#000000";titleElem.style.fontSize="15px";titleElem.style.fontWeight="bold";titleElem.style.paddingBottom="5px";titleElem.style.fontFamily="font-family:Arial,Helvetica,sans-serif";container.appendChild(titleElem);var tableElem=document.createElement("table");tableElem.style.fontFamily="font-family:Arial,Helvetica,sans-serif";container.appendChild(tableElem);tableElem.id="identify";tableElem.className="cube";tableElem.style.width="240px";var tbodyElem=document.createElement("tbody");tableElem.appendChild(tbodyElem);var rowElem=document.createElement("tr");tbodyElem.appendChild(rowElem);var cellElem=document.createElement("th");cellElem.style.backgroundColor="#EEEEEE";rowElem.appendChild(cellElem);cellElem.innerHTML="Area";cellElem=document.createElement("th");cellElem.style.backgroundColor="#EEEEEE";rowElem.appendChild(cellElem);cellElem.innerHTML="Value";var l=places.length;var sameType=allPlacesSameType(places);for(var myi=0;myi<l;myi++){place=places[myi];typePlace=place.getType();if(typePlace!=PPlaceType.COUNTRY&&typePlace!=PPlaceType.HPP_COUNTY&&typePlace!=PPlaceType.HPP_ZONE&&typePlace!=PPlaceType.KYOSA_APPCOUNTY){if(!boundaryTypes.hasTypeForIndicatorsByTypeId(typePlace.id)||!indicator.hasPlaceType(typePlace,period)){continue}}typeInd=legend.getBoundaryType();var iPlaceType=false;var electionIds=[9851401,9851262,9851257,9851253,9851252,9851251,9851255,9851263,9851250,9851259];if(typePlace&&typePlace.isCongressional()){for(var e=0;e<electionIds.length;e++){if(indicator.id==electionIds[e]){place.label=place.label.slice(0,place.label.indexOf("(")-1);break}}}if(!typePlace)continue;if(PEnvironment.pageName!="analytics"){if(typePlace&&typeInd&&!sameType&&address==null){highlight=typePlace.id==typeInd.id?"hl":"";if(typePlace.id==typeInd.id){mapstates.setCurrentPlace(place);iPlaceType=true}}}else{if(typePlace==typeInd&&boundaryMatrix.isDefinitionIdInMatrix(place.defid,indicator.matrixIds[indicator.curPerIndex])){highlight="hl";iPlaceType=true}}if(typePlace&&(typePlace.isCongressional()||typePlace==PPlaceType.SLD_UPPER||typePlace==PPlaceType.SLD_LOWER)&&(typeInd&&typeInd.id!=typePlace.id))continue;if(PEnvironment.pageName!="analytics"||iPlaceType==true){var isNum=null;obs=values[period][place.id][indicator.id];if(isPublicUser){obs="<b>-</b>"}else if(typeof obs=="string"){obs=obs}else if(indicator.nodata&&indicator.nodata!=""&&obs==indicator.nodata||obs=="-9999"){if(indicator.nodatalabel&&indicator.nodatalabel!=""){obs=indicator.nodatalabel}else{obs="Insufficient Data"}}else if(obs||obs==0){obs=PWebUtil.formatNumber(obs,indicator.unit);isNum=true}else if(typeInd&&typeInd.id==typePlace.id){obs=""}else{continue}global_places.unshift(place);dispIndex++;shaded=dispIndex%2==1?"on":"off";rowElem=document.createElement("tr");tbodyElem.appendChild(rowElem);rowElem.className=highlight;cellElem=document.createElement("td");rowElem.appendChild(cellElem);cellElem.className="place "+shaded;if(shaded=="on")cellElem.style.backgroundColor="#FFFFEE";this.addPlaceLink(place,cellElem);cellElem=document.createElement("td");if(isNum)cellElem.style.whiteSpace="nowrap";rowElem.appendChild(cellElem);cellElem.className="obs "+shaded;if(shaded=="on")cellElem.style.backgroundColor="#FFFFEE";cellElem.innerHTML=obs}}}};PMIdentificationPrinter.printCubeIndicators=function(cube,legend,container,isPublicUser,inds,places,tabNames,address){var values=cube.values;var tabs=[];if(cube.periods.length>0&&cube.places.length>0){var urlParams=getUrlParams();var place=cube.getPlaces()[0];mapstates.setCurrentPlace(place);typePlace=place.getType();typeInd=legend.getBoundaryType();var l=inds.length;var period;var count=0;var myi=0;var newplaces=[];for(var i=places.length-1;i>=0;i--){var p=places[i];var type=p.getType();if(type!=PPlaceType.STATE&&type!=PPlaceType.CBSA)continue;newplaces.push(p)}var addedMapInd=false;for(var t=0;t<tabNames.length;t++){var container=document.createElement("div");container.id="identifyContainer";container.style.width="240px";container.className="identify";container.className+=" multiIndicators";container.showsCube=true;if(address){var $addr=getAddressBubbleContent(address);$(container).append($addr)}var titleElem=document.createElement("div");if(isIffCustomFilterWidget()){var typename=""}else{var typename=" ("+typePlace.getName()+")"}titleElem.innerHTML=place.getLabel()+typename;titleElem.className="title";titleElem.style.color="#000000";titleElem.style.fontSize="14px";titleElem.style.fontWeight="bold";titleElem.style.paddingBottom="5px";titleElem.style.fontFamily="font-family:Arial,Helvetica,sans-serif";container.appendChild(titleElem);var tableElem=document.createElement("table");tableElem.style.fontFamily="font-family:Arial,Helvetica,sans-serif";container.appendChild(tableElem);tableElem.id="identify";tableElem.className="cube";tableElem.style.fontSize="90%";var theadElem=document.createElement("thead");tableElem.appendChild(theadElem);var tbodyElem=document.createElement("tbody");tableElem.appendChild(tbodyElem);var shaded="on";mapIndAddedToTab=false;var addedFirstInd=false;if(t==0&&inds[0]==legend.getIndicator()){var rowElem=document.createElement("tr");rowElem.shaded=shaded;row=this.getIndicatorColumns(inds[0],cube,legend,rowElem,isPublicUser,null);tbodyElem.appendChild(row);mapIndAddedToTab=true;addedFirstInd=true}for(var name in tabNames[t]){var cnt=0;if(mapIndAddedToTab)cnt++;mapIndAddedToTab=false;var indidArray=tabNames[t][name];for(var y=0;y<indidArray.length;y++){for(var myi=0;myi<inds.length;myi++){shaded=cnt%2==0?"on":"off";var rowElem=document.createElement("tr");rowElem.shaded=shaded;var row=null;if(indidArray[y]==inds[myi].id){var isFirstInd=false;var useLegendPeriod=false;if(isIffCustomFilterWidget()){useLegendPeriod=true;if(myi==0&&!addedFirstInd){isFirstInd=true}}row=this.getIndicatorColumns(inds[myi],cube,legend,rowElem,isPublicUser,null,null,isFirstInd);if(row){tbodyElem.appendChild(row);container.tablabel=name;cnt++}break}}}}var rowElem=document.createElement("tr");theadElem.appendChild(rowElem);var cellElem=document.createElement("th");rowElem.appendChild(cellElem);cellElem.innerHTML="Indicator";cellElem=document.createElement("th");cellElem.style.width="125px";rowElem.appendChild(cellElem);cellElem.innerHTML="Value";tableElem.appendChild(theadElem);tableElem.appendChild(tbodyElem);var showPlaces=false;if(showPlaces){var placesDiv=document.createElement("div");placesDiv.className="placesContainer";for(var i=newplaces.length-1;i>=0;i--){var p=newplaces[i];var div=document.createElement("div");this.addPlaceLink(p,div);placesDiv.appendChild(div)}container.appendChild(placesDiv);container.appendChild(document.createElement("br"))}if(!isWidgetOrEmbedMap()&&!isCBClone()){$(container).append("<br />");this.setBubbleLinks(cube,place,container)}if(legend.getIndicator().id==9936959){var $n=$("<div />",{html:"The following is a geographic assessment of your location's availability for incentives.",css:{"font-style":"italic",margin:"0 0 15px 0"}});$(container).find("table").before($n);var $n=$("<div />",{html:"<a href='mailto:nmtc@bakertilly.com' target='_top'>Contact us</a> to discuss your project.",css:{margin:"15px 0 0 0"}});$(container).append($n)}tabs.push(new PInfoWindowTab(container.tablabel,container))}if(PEnvironment.pageName=="widget"&&urlParams["sid"]==117){var container=document.createElement("div");container.id="identifyContainer";container.style.width="240px";container.className="identify";container.className+=" multiIndicators";container.showsCube=true;var titleElem=document.createElement("div");titleElem.innerHTML=place.getLabel()+" ("+typePlace.getName()+")";titleElem.className="title";titleElem.style.color="#000000";titleElem.style.fontSize="14px";titleElem.style.fontWeight="bold";titleElem.style.paddingBottom="5px";titleElem.style.fontFamily="font-family:Arial,Helvetica,sans-serif";container.appendChild(titleElem);var div=$("<div />");div.css({color:"#333",padding:"10px 0"});div.html('To see Severely Distressed Secondary Criteria, see individual indicators  in the <b>"NMTC Severely Distressed - Secondary Criteria"</b> menu to the left.');$(container).append(div);var placesDiv=document.createElement("div");placesDiv.className="placesContainer";for(var i=newplaces.length-1;i>=0;i--){var p=newplaces[i];var div=document.createElement("div");this.addPlaceLink(p,div);placesDiv.appendChild(div)}container.appendChild(placesDiv);tabs.push(new PInfoWindowTab("Secondary Criteria",container))}}if(!isEmbedPage()){if(isPublicUser){$(container).append("<br /><br />");$(container).append(this.getSignUpText())}}return tabs};PMIdentificationPrinter.printCubeIndicatorsMultiTimeFrames=function(cube,legend,container,isPublicUser,inds,places,tabNames,address){var values=cube.values;var tabs=[];if(cube.periods.length>0&&cube.places.length>0){var urlParams=getUrlParams();var place=cube.getPlaces()[0];mapstates.setCurrentPlace(place);typePlace=place.getType();typeInd=legend.getBoundaryType();var l=inds.length;var period;var count=0;var myi=0;var addedMapInd=false;for(var t=0;t<tabNames.length;t++){var container=document.createElement("div");container.id="identifyContainer";container.style.width="240px";container.className="identify";container.className+=" multiIndicators";container.showsCube=true;if(address){var $addr=getAddressBubbleContent(address);$(container).append($addr)}var titleElem=document.createElement("div");if(isIffCustomFilterWidget()){var typename=""}else{var typename=" ("+typePlace.getName()+")"}titleElem.innerHTML=place.getLabel()+typename;titleElem.className="title";titleElem.style.color="#000000";titleElem.style.fontSize="14px";titleElem.style.fontWeight="bold";titleElem.style.paddingBottom="5px";titleElem.style.fontFamily="font-family:Arial,Helvetica,sans-serif";container.appendChild(titleElem);var tableElem=document.createElement("table");tableElem.style.fontFamily="font-family:Arial,Helvetica,sans-serif";container.appendChild(tableElem);tableElem.id="identify";tableElem.className="cube";tableElem.style.fontSize="90%";var theadElem=document.createElement("thead");tableElem.appendChild(theadElem);var tbodyElem=document.createElement("tbody");tableElem.appendChild(tbodyElem);var shaded="on";mapIndAddedToTab=false;var addedFirstInd=false;if(t==0&&inds[0]==legend.getIndicator()){var rowElem=document.createElement("tr");rowElem.shaded=shaded;inds[0].numberOfTimeFrames=2;row=this.getIndicatorColumns(inds[0],cube,legend,rowElem,isPublicUser,null);tbodyElem.appendChild(row);mapIndAddedToTab=true;addedFirstInd=true}for(var name in tabNames[t]){var cnt=0;if(mapIndAddedToTab)cnt++;mapIndAddedToTab=false;var indidArray=tabNames[t][name];for(var y=0;y<indidArray.length;y++){for(var myi=0;myi<inds.length;myi++){shaded=cnt%2==0?"on":"off";var rowElem=document.createElement("tr");rowElem.shaded=shaded;var row=null;if(indidArray[y]==inds[myi].id){row=this.getIndicatorColumns(inds[myi],cube,legend,rowElem,isPublicUser);if(row){tbodyElem.appendChild(row);container.tablabel=name;cnt++}break}}}}var rowElem=document.createElement("tr");theadElem.appendChild(rowElem);var cellElem=document.createElement("th");rowElem.appendChild(cellElem);cellElem.innerHTML="";var ind=legend.getIndicator().getBubbleIndicators()[0];var periods=ind.getPeriods().slice(0,ind.numberOfTimeFrames).reverse();for(var i=0;i<periods.length;i++){var p=periods[i];cellElem=document.createElement("th");cellElem.style.width="125px";rowElem.appendChild(cellElem);cellElem.innerHTML=p}tableElem.appendChild(theadElem);tableElem.appendChild(tbodyElem);if(!isWidgetOrEmbedMap()&&!isCBClone()){$(container).append("<br />");this.setBubbleLinks(cube,place,container)}tabs.push(new PInfoWindowTab(container.tablabel,container))}}if(!isEmbedPage()){if(isPublicUser){$(container).append("<br /><br />");$(container).append(this.getSignUpText())}}return tabs};PMIdentificationPrinter.getSignUpText=function(){var span=document.createElement("span");span.innerHTML='<a onclick="showSignupModal();" class="simulink">Sign up</a> free for PolicyMap to see the information about this place.  If you already have a PolicyMap account, <a onclick="showLoginModal()" class="simulink">login here</a>.<br /><br />';return span};PMIdentificationPrinter.getIndicatorColumns=function(indicator,cube,legend,rowElem,isPublicUser,justValue,hideYear,isFirstInd,noHighlight){var values=cube.values;var legperiod=legend.getIndicator().getPeriod();var periodLabel="";var place;var typePlace;var typeInd;var periods;var cellElem;var place=cube.getPlaces()[0];mapstates.setCurrentPlace(place);var typePlace=place.getType();var typeInd=legend.getBoundaryType();var obs;var shaded;var teaser;var ind;var multiTimeFrameTable=false;if(indicator.numberOfTimeFrames&&indicator.numberOfTimeFrames>1){periods=indicator.getPeriods().slice(0,indicator.numberOfTimeFrames);periods.sort(function(a,b){return a.substr(0,4)-b.substr(0,4)});var hideYear=true;multiTimeFrameTable=true}else if(indicator.hasPeriod(legperiod)){periods=[legperiod]}else{periods=[indicator.getPeriod()];if(!allowPeriod(indicator,period)){indicator.curPerIndex=indicator.getPeriods().length-1}periods=[indicator.getPeriod()]}if(!hideYear){var hideYear=this.checkToIncludeYearInLabel(indicator)}if(!hideYear){periodLabel=" ("+periods[0]+")"}var indlabel=indicator.getLabel()+periodLabel;var highlight="";if((indicator==legend.getIndicator()||isFirstInd)&&!noHighlight){highlight="hl"}rowElem.className=highlight;var shaded=rowElem.shaded;if(!justValue){cellElem=document.createElement("td");rowElem.appendChild(cellElem);cellElem.className="indicators "+shaded;if(shaded=="on")cellElem.style.backgroundColor="#fffbf2";var span=document.createElement("span");span.innerHTML=indlabel;cellElem.appendChild(span)}for(var i=0;i<periods.length;i++){var period=periods[i];var isNum=null;obs=values[period][place.id][indicator.id];if(isPublicUser){obs="<b>-</b>"}else if(typeof obs=="string"){obs=obs}else if(indicator.nodata&&indicator.nodata!=""&&obs==indicator.nodata||obs=="-9999"){if(indicator.nodatalabel&&indicator.nodatalabel!=""){obs=indicator.nodatalabel}else{obs="Insufficient Data"}}else if(obs||obs==0){obs=PWebUtil.formatNumber(obs,indicator.unit);isNum=true}else{return null}if(PEnvironment.productId==1699&&(multiTimeFrameTable&&periods.length!=indicator.numberOfTimeFrames)){cellElem=document.createElement("td");cellElem.innerHTML="--";cellElem.className="indicators obs "+shaded;rowElem.appendChild(cellElem)}cellElem=document.createElement("td");if(isNum)cellElem.style.whiteSpace="nowrap";rowElem.appendChild(cellElem);cellElem.className="indicators obs "+shaded;if(shaded=="on")cellElem.style.backgroundColor="#fffbf2";cellElem.innerHTML=obs}return rowElem};PMIdentificationPrinter.printCubeIndicatorsDCEDCustom=function(cube,legend,container,isPublicUser,inds,point){var tabs=[];var places=cube.places;var place;var values=cube.values;for(var i=0;i<places.length;i++){if(places[i].getType()==PPlaceType.COUNTY){place=places[i];break}}var ind=map.getIndicator();var period=ind.getPeriod();place.getPlacesContaining(PPlaceType.STATE,null,null,function(states){var statecube=new PCube(cube.indicators,states,[period]);statecube.loadValues(function(statevalues){this.values=statevalues;$(container).css("width","465px");$(container).addClass("identify identify-dced-widget");var table=$("<table />");var row=$("<tr />");table.append(row);$(container).append(table);var populateBubble=function(vals,place){var column=$("<td />");column.addClass("column");column.attr("valign","top");var section=$("<div />");column.append(section);var title="";if(place.getType()==PPlaceType.STATE){column.addClass("right");column.css({padding:"0 0 0 15px"});title="Statewide"}else{column.addClass("left");column.css({padding:"0 5px 0 0"});title=place.getLabel()+" County"}var header='<div class="header"><div class="title" style="font-weight:bold">'+title+"</div></div>";var dataTable=$("<table />");var tr=$("<tr />");var td=$("<td />");td.html("Number of Projects:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[0];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("Jobs Created:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[1];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("Amount Invested:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[2];td.html(obs);tr.append(td);dataTable.append(tr);section.html(header);section.append($("<br />"));section.append(dataTable);section.append($("<br />"));var header='<div class="table-header">Top Projects by Rank of Jobs Created (2000-2012)</div>';var dataTable=$("<table />");var tr=$("<tr />");tr.html("<th>Rank</th><th>Jobs</th><th>Project</th>");dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("1");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[3];td.html(obs);tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[4];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("2");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[5];td.html(obs);tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[6];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("3");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[7];td.html(obs);tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[8];td.html(obs);tr.append(td);dataTable.append(tr);section.append(header);section.append(dataTable);return column};var place=cube.places[0];var vals=[];vals.push(PWebUtil.formatNumber(values[period][place.id][inds[1].id]));vals.push(PWebUtil.formatNumber(values[period][place.id][inds[2].id]));vals.push(PWebUtil.formatNumber(values[period][place.id][inds[3].id],"$_"));vals.push(PWebUtil.formatNumber(values[period][place.id][inds[4].id]));vals.push(values[period][place.id][inds[5].id]);vals.push(PWebUtil.formatNumber(values[period][place.id][inds[6].id]));vals.push(values[period][place.id][inds[7].id]);vals.push(PWebUtil.formatNumber(values[period][place.id][inds[8].id]));vals.push(values[period][place.id][inds[9].id]);$(row).append(populateBubble(vals,place));var place=states[0];var vals=[];vals.push(PWebUtil.formatNumber(statevalues[period][place.id][inds[1].id]));vals.push(PWebUtil.formatNumber(statevalues[period][place.id][inds[2].id]));vals.push(PWebUtil.formatNumber(statevalues[period][place.id][inds[3].id],"$_"));vals.push(PWebUtil.formatNumber(statevalues[period][place.id][inds[4].id]));vals.push(statevalues[period][place.id][inds[5].id]);vals.push(PWebUtil.formatNumber(statevalues[period][place.id][inds[6].id]));vals.push(statevalues[period][place.id][inds[7].id]);vals.push(PWebUtil.formatNumber(statevalues[period][place.id][inds[8].id]));vals.push(statevalues[period][place.id][inds[9].id]);$(row).append(populateBubble(vals,place));var endnote='<br class="clear" /><div class="endnote">';endnote+="Cases of double counting within the data occur.";if(!isMobile()){endnote+='<br /><a href="/our-data-directory.html#PA Department of Community & Economic Development (DCED)" target="_blank">Please see the Data Directory for details.</a>'}endnote+="</div>";$(container).append(endnote);tabs.push(new PInfoWindowTab(period,container,null,true));map.openInfoWindowTabs(point,tabs,null,null,P.constants.infoWindowTypeIdentify)})})};PMIdentificationPrinter.printCubeIndicatorsMoodyCustom=function(cube,legend,container,isPublicUser,inds,point){var tabs=[];var places=cube.places;var place;var values=cube.values;for(var i=0;i<places.length;i++){if(places[i].getType()==PPlaceType.COUNTY){place=places[i];break}}var ind=map.getIndicator();var period=ind.getPeriod();var periods=[period];periodsObj={};for(var i=0;i<inds.length;i++){periodsObj[inds[i].getPeriod()]=1}for(var i in periodsObj){periods.push(i)}place.getPlacesContaining(PPlaceType.STATE,null,null,function(states){var statecube=new PCube(cube.indicators,states,periods);statecube.loadValues(function(statevalues){this.values=statevalues;states[0].getAggregates(PPlaceType.COUNTY,null,null,function(counties){var mInds=[inds[5]];var countycube=new PCube(mInds,counties,periods);countycube.loadValues(function(countyvalues){this.values=countyvalues;$(container).css("width","375px");$(container).addClass("identify identify-dced-widget");var table=$("<table />");var row=$("<tr />");table.append(row);$(container).append(table);var populateBubble=function(vals,place){var column=$("<td />");column.addClass("column");column.attr("valign","top");var section=$("<div />");column.append(section);var title="";if(place.getType()==PPlaceType.STATE){column.addClass("right");column.css({padding:"0 0 0 15px"});title=place.getLabel()}else{column.addClass("left");column.css({padding:"0 5px 0 0"});title=place.getLabel()+" County"}var header='<div class="header"><div class="title" style="font-weight:bold">'+title+"</div></div>";var dataTable=$("<table />");var tr=$("<tr />");var td=$("<td />");td.html("Unemployment:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[0];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("Labor Force:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[1];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("Population:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[2];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("Working Age:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[7];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("Dependency Ratio:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[8];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("Immigration:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[3];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("Migration:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[4];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("Household Income:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[5];td.html(obs);tr.append(td);dataTable.append(tr);var tr=$("<tr />");var td=$("<td />");td.html("People in Poverty:");tr.append(td);var td=$("<td />");td.addClass("value");var obs=vals[6];td.html(obs);tr.append(td);dataTable.append(tr);section.append(header);section.append(dataTable);return column};var place=cube.places[0];var vals=[];vals.push(PWebUtil.formatNumber(values[inds[1].getPeriod()][place.id][inds[1].id],"_%"));vals.push(PWebUtil.formatNumber(values[inds[2].getPeriod()][place.id][inds[2].id]));vals.push(PWebUtil.formatNumber(values[inds[3].getPeriod()][place.id][inds[3].id]));vals.push(PWebUtil.formatNumber(values[inds[4].getPeriod()][place.id][inds[4].id],"_%"));vals.push(PWebUtil.formatNumber(values[inds[5].getPeriod()][place.id][inds[5].id]));vals.push(PWebUtil.formatNumber(values[inds[6].getPeriod()][place.id][inds[6].id],"$_"));vals.push(PWebUtil.formatNumber(values[inds[7].getPeriod()][place.id][inds[7].id],"_%"));var a=values[inds[8].getPeriod()][place.id][inds[8].id];var b=values[inds[9].getPeriod()][place.id][inds[9].id];var c=values[inds[10].getPeriod()][place.id][inds[10].id];var d=values[inds[11].getPeriod()][place.id][inds[11].id];var e=values[inds[12].getPeriod()][place.id][inds[12].id];var val=PWebUtil.formatNumber(divideCheck(a+b+c+d,e,100),"_%");vals.push(val);var f=values[inds[13].getPeriod()][place.id][inds[13].id];var val=PWebUtil.formatNumber(divideCheck(f,a+b+c+d,100),"_%");vals.push(val);$(row).append(populateBubble(vals,place));var place=states[0];var vals=[];vals.push(PWebUtil.formatNumber(statevalues[inds[1].getPeriod()][place.id][inds[1].id],"_%"));vals.push(PWebUtil.formatNumber(statevalues[inds[2].getPeriod()][place.id][inds[2].id]));vals.push(PWebUtil.formatNumber(statevalues[inds[3].getPeriod()][place.id][inds[3].id]));vals.push(PWebUtil.formatNumber(statevalues[inds[4].getPeriod()][place.id][inds[4].id],"_%"));var val=getSumOfPlaces(countycube,inds[5],inds[5].getPeriod());vals.push(PWebUtil.formatNumber(val));vals.push(PWebUtil.formatNumber(statevalues[inds[6].getPeriod()][place.id][inds[6].id],"$_"));vals.push(PWebUtil.formatNumber(statevalues[inds[7].getPeriod()][place.id][inds[7].id],"_%"));var a=statevalues[inds[8].getPeriod()][place.id][inds[8].id];var b=statevalues[inds[9].getPeriod()][place.id][inds[9].id];var c=statevalues[inds[10].getPeriod()][place.id][inds[10].id];var d=statevalues[inds[11].getPeriod()][place.id][inds[11].id];var e=statevalues[inds[12].getPeriod()][place.id][inds[12].id];var val=PWebUtil.formatNumber(divideCheck(a+b+c+d,e,100),"_%");vals.push(val);var f=statevalues[inds[13].getPeriod()][place.id][inds[13].id];var val=PWebUtil.formatNumber(divideCheck(f,a+b+c+d,100),"_%");vals.push(val);$(row).append(populateBubble(vals,place));var endnote="";$(container).append(endnote);tabs.push(new PInfoWindowTab(period,container));map.openInfoWindowTabs(point,tabs,null,null,P.constants.infoWindowTypeIdentify)})})})})};PMIdentificationPrinter.printCubeIndicatorsMNHFACustom=function(cube,legend,container,isPublicUser,inds,places,tabNames){var values=cube.values;var tabs=[];if(cube.periods.length>0){place=cube.getPlaces()[0];mapstates.setCurrentPlace(place);typePlace=place.getType();typeInd=legend.getBoundaryType();var l=inds.length;var period;var count=0;var myi=0;var addedMapInd=false;for(var t=0;t<tabNames.length;t++){var container=document.createElement("div");container.id="identifyContainer";container.style.width="410px";container.className="identify";container.className+=" multiIndicators multiIndicatorColumns";container.showsCube=true;var titleElem=document.createElement("div");titleElem.innerHTML=place.getLabel()+" ("+typePlace.getName()+")";titleElem.className="title";titleElem.style.color="#000000";titleElem.style.fontSize="14px";titleElem.style.fontWeight="bold";titleElem.style.paddingBottom="5px";titleElem.style.fontFamily="font-family:Arial,Helvetica,sans-serif";container.appendChild(titleElem);var tableElem=document.createElement("table");tableElem.style.fontFamily="font-family:Arial,Helvetica,sans-serif";container.appendChild(tableElem);tableElem.id="identify";tableElem.className="cube";tableElem.style.fontSize="90%";var theadElem=document.createElement("thead");tableElem.appendChild(theadElem);var tbodyElem=document.createElement("tbody");tableElem.appendChild(tbodyElem);var shaded="on";var rowLength;for(var name in tabNames[t]){var cnt=0;var indidArray=tabNames[t][name];for(var y=0;y<indidArray.length;y++){shaded=cnt%2==0?"on":"off";var rowElem=document.createElement("tr");rowElem.shaded=shaded;var row=null;for(var p=0;p<indidArray[y].length;p++){rowLength=indidArray[y].length;for(var myi=0;myi<inds.length;myi++){if(indidArray[y][p]==inds[myi].id){var justValue=false;if(p>0)justValue=true;row=this.getIndicatorColumns(inds[myi],cube,legend,rowElem,isPublicUser,justValue,true);if(row){tbodyElem.appendChild(row);container.tablabel=name;cnt++}break}}}}}var rowElem=document.createElement("tr");theadElem.appendChild(rowElem);var cellElem=document.createElement("th");rowElem.appendChild(cellElem);cellElem.innerHTML="Indicator";cellElem=document.createElement("th");cellElem.className="value";rowElem.appendChild(cellElem);cellElem.innerHTML="Value";if(rowLength>2){cellElem=document.createElement("th");cellElem.innerHTML="Rank";rowElem.appendChild(cellElem);cellElem=document.createElement("th");cellElem.innerHTML="Notes";rowElem.appendChild(cellElem)}tableElem.appendChild(theadElem);tableElem.appendChild(tbodyElem);var linksContainer=$("<div />");linksContainer.attr("id","infoBubbleLinks");var downloadDiv=document.createElement("div");downloadDiv.className="downloadContainer";var downloadLink=document.createElement("a");downloadLink.href=PEnvironment.dataServicesUrl+"?ty=data&t=cibdl&pl="+place.getID()+"&sid="+getUrlParams()["sid"];downloadLink.innerHTML="Download Data";downloadDiv.appendChild(downloadLink);linksContainer.append(downloadDiv);if(isWidgetPage()){var link=this.getWidgetReportLink(place);if(link)linksContainer.append(link)}$(container).append(linksContainer);tabs.push(new PInfoWindowTab(container.tablabel,container))}}return tabs};PMIdentificationPrinter.printCubeIndicatorsForGlobalIdentify=function(cube,legend,container,isPublicUser,inds,places,tabNames){var values=cube.values;var tabs=[];if(cube.periods.length>0){place=cube.getPlaces()[0];mapstates.setCurrentPlace(place);typePlace=place.getType();typeInd=legend.getBoundaryType();var l=inds.length;var period;var count=0;var myi=0;var addedMapInd=false;for(var t=0;t<tabNames.length;t++){var container=document.createElement("div");container.id="identifyContainer";container.style.width="410px";container.className="identify";container.className+=" multiIndicators";container.showsCube=true;var titleElem=document.createElement("div");titleElem.innerHTML=place.getLabel()+" ("+typePlace.getName()+")";titleElem.className="title";titleElem.style.color="#000000";titleElem.style.fontSize="14px";titleElem.style.fontWeight="bold";titleElem.style.paddingBottom="5px";titleElem.style.fontFamily="font-family:Arial,Helvetica,sans-serif";container.appendChild(titleElem);var tableElem=document.createElement("table");tableElem.style.fontFamily="font-family:Arial,Helvetica,sans-serif";container.appendChild(tableElem);tableElem.id="identify";tableElem.className="cube";tableElem.style.fontSize="90%";var theadElem=document.createElement("thead");tableElem.appendChild(theadElem);var tbodyElem=document.createElement("tbody");tableElem.appendChild(tbodyElem);var shaded="on";var rowLength;for(var name in tabNames[t]){var cnt=0;var indidArray=tabNames[t][name];for(var y=0;y<indidArray.length;y++){shaded=cnt%2==0?"on":"off";var rowElem=document.createElement("tr");rowElem.shaded=shaded;var row=null;for(var p=0;p<indidArray[y].length;p++){rowLength=indidArray[y].length;for(var myi=0;myi<inds.length;myi++){if(indidArray[y][p]==inds[myi].id){var justValue=false;row=this.getIndicatorColumns(inds[myi],cube,legend,rowElem,isPublicUser,justValue,true,null,true);if(row){tbodyElem.appendChild(row);container.tablabel=name;cnt++}break}}}}}var rowElem=document.createElement("tr");theadElem.appendChild(rowElem);var cellElem=document.createElement("th");rowElem.appendChild(cellElem);cellElem.innerHTML="Indicator";cellElem=document.createElement("th");cellElem.className="value";rowElem.appendChild(cellElem);cellElem.innerHTML="Value";tableElem.appendChild(theadElem);tableElem.appendChild(tbodyElem);var linksContainer=$("<div />");linksContainer.attr("id","infoBubbleLinks");if(isWidgetPage()){var link=this.getWidgetReportLink(place);if(link)linksContainer.append(link)}$(container).append(linksContainer);tabs.push(new PInfoWindowTab(container.tablabel,container))}}return tabs};PMIdentificationPrinter.printAttributes=function(attributes,num,marker){var tabs=[];var divArr=[];var tabIndex;var tabLength=marker.customTabLength;var strayAttr=[];if(marker.isPoly){var bdid;var polysetid;var pointSets=map.getOverlaySets(false,true);for(var i=0;i<pointSets.length;i++){var pointSet=pointSets[i];if(pointSet.isPoly&&pointSet.id==marker.datasetID){bdid=pointSet.bdid;polysetid=pointSet.id;break}}marker.bdid=bdid;marker.polysetid=polysetid}if(tabLength){for(var t=0;t<tabLength;t++){var div=document.createElement("div");div.id="identifyContainer";div.className="pointAttributes";divArr.push(div)}for(var a=0;a<attributes.length;a++){var tabName=attributes[a].tabName;if(!tabName){strayAttr.push(attributes[a]);continue}tabIndex=attributes[a].tabIndex
;this.addAttributeElem(attributes[a],divArr[tabIndex]);divArr[tabIndex].tabName=tabName}for(var t=0;t<tabLength;t++){if(divArr[t].hasChildNodes()){if(!isMobile()){this.addExtraInfoToTab(divArr[t],marker)}this.addPolyReportLinks(divArr[t],marker);this.addSeeLayerDataOption(divArr[t],marker);var addSingleTabName=false;if(isIffCustomFilterWidget()){addSingleTabName=true}tabs.push(new PInfoWindowTab(divArr[t].tabName,divArr[t],null,addSingleTabName))}}}if(!tabLength||strayAttr.length>0){var i=1;var j=0;var l=attributes.length;if(strayAttr.length>0){var attributes=strayAttr;l=attributes.length}while(j<l){var div=document.createElement("div");div.id="identifyContainer";div.className="pointAttributes";var cnt=0;while(cnt<10){if(j==l)break;var addElem=this.addAttributeElem(attributes[j],div);if(addElem){cnt++}j++}if(num)var index=" - "+num;else var index="";if(div.hasChildNodes()||div.hasChildNodes()==false&&j==l){this.addExtraInfoToTab(div,marker);this.addPolyReportLinks(div,marker);this.addSeeLayerDataOption(div,marker);tabs.push(new PInfoWindowTab("Info "+i+index,div))}i++}}return tabs};PMIdentificationPrinter.addAttributeElem=function(attribute,div){if(isIffCustomFilterWidget()){var displayVouchAtts=false;var showAnalysis=true;if(attribute.columnName=="infobub"){this.infobub=attribute.value;return false}if(this.infobub&&this.infobub=="fullpubchar"){attribute.name=attribute.name.replace("Estimated ","")}else if(this.infobub&&this.infobub=="partpubchar"){}else if(this.infobub&&this.infobub=="nonanal"){showAnalysis=false;if(attribute.columnName=="charter_auth"){attribute.name="Authorizer"}}else if(this.infobub&&this.infobub=="partmpcp"){displayVouchAtts=true;if(attribute.columnName=="grades"){attribute.name="Grades (School-wide)"}else if(attribute.columnName=="enroll"){attribute.name="Total School Enrollment"}}if(!showAnalysis){var names=["accountdeterm","elem_account","mid_account","high_account","pct_rdg","pct_math"];for(var i=0;i<names.length;i++){if(attribute.columnName==names[i]){return false}}}if(!displayVouchAtts){var names=["vouchenroll","pctvouch"];for(var i=0;i<names.length;i++){if(attribute.columnName==names[i]){return false}}}}var value;if(attribute.unit)value=PWebUtil.formatNumber(attribute.value,attribute.unit);else value=attribute.value;if(attribute.value!=""&&attribute.value!="null"||attribute.value=="0"){if(typeof value=="string"){if(attribute.type==PAttribute.IMAGE){value="<a onclick=\"imageAlert('"+value+"');\">Click to View</a>"}else if(value.indexOf("</a>")==-1&&(value.indexOf("http://")!=-1||value.indexOf("https://")!=-1)){if(isMobile()){return false}value="<a href='"+value+"' target='new'>"+value+"</a>"}}var b=document.createElement("b");b.innerHTML=attribute.name+": ";var span=document.createElement("span");span.innerHTML=value+"<br />";div.appendChild(b);div.appendChild(span);return true}return false};PMIdentificationPrinter.addPolyReportLinks=function(div,marker){if(isCBClone()){return}var infoBubbleLinks=document.createElement("div");infoBubbleLinks.id="infoBubbleLinks";if(marker.isPoly){var pname=marker.name;var plat=marker.getPoint().lat();var plng=marker.getPoint().lng();var pid=marker.pid;var bdid=marker.bdid;var polysetid=marker.polysetid;if(marker.polyType=="polygon"&&bdid!=null){var showlink=true;var arr=[114550,114050,141e3];for(var j=0;j<arr.length;j++){if(polysetid==arr[j]){showlink=false;break}}if(showlink)infoBubbleLinks.appendChild(generatePolygonTableLink(bdid,pname,plat,plng));if(isSubscriber()){infoBubbleLinks.appendChild(generatePolygonReportLink(bdid,polysetid,pname,plat,plng,pid,"polygon",true));if(showlink)infoBubbleLinks.appendChild(generatePolygonReportLink(bdid,polysetid,pname,plat,plng,pid,"pradius",false))}if(showlink){PMIdentificationPrinter.printSeeValues(infoBubbleLinks,null,marker);infoBubbleLinks.appendChild(generatePolygonPointlistLinks(bdid,pname,plat,plng));infoBubbleLinks.appendChild(generatePolygonPolylistLinks(bdid,pname,plat,plng,marker))}}else if(marker.polyType=="line"){}else if(marker.polyType=="specialized"){}}else{infoBubbleLinks.appendChild(generatePointReportLink(marker.getPoint().lat(),marker.getPoint().lng()));infoBubbleLinks.appendChild(generateDownloadLink("info_extra_link",marker.datasetID))}$(div).append(infoBubbleLinks)};PMIdentificationPrinter.addExtraInfoToTab=function(div,marker){div.appendChild(document.createElement("br"));var datadir=document.createElement("a");datadir.className="details";datadir.target="_blank";if(marker.datasetID==98500||marker.datasetID==98900){datadir.innerHTML="Details and Methodology";datadir.href="our-data-directory.html#TRF Supermarket Study of Low Access Areas"}if(marker.datasetID==111150||marker.datasetID==111200){datadir.innerHTML="Details and Methodology";datadir.href="our-data-directory.html#TRF Study of Limited Supermarket Access Areas"}if(marker.datasetID==147500||marker.datasetID==148500||marker.datasetID==148550||marker.datasetID==148650||marker.datasetID==148600||marker.datasetID==149150){datadir.innerHTML="Details and Methodology";datadir.href="our-data-directory.html#TRF 2014 Study of Limited Supermarket Access Areas"}if(marker.datasetID==186150||marker.datasetID==186200||marker.datasetID==186250||marker.datasetID==186300||marker.datasetID==186350||marker.datasetID==186400||marker.datasetID==186450){datadir.innerHTML="Details and Methodology";datadir.href="our-data-directory.html#TRF 2018 Study of Limited Supermarket Access Areas"}if(marker.datasetID==114250||marker.datasetID==118150){datadir.innerHTML="Details";datadir.href="our-data-directory.html#M&T Bank"}if(marker.datasetID==133150){var note=document.createElement("div");note.innerHTML="Note: Patient and quality of care data do not apply strictly to individual health center sites; figures include aggregate data for all sites managed by each grantee.";div.appendChild(note);return div}if(marker.datasetID==166500){var note=document.createElement("div");note.innerHTML="The estimated supply of licensed childcare slots is from 4Cs of Passaic County and DCF, as of 2016. The estimated supply of licensed infant and toddler childcare slots is from ACNJ survey, as of August 2016.";div.appendChild(note);return div}if(marker.datasetID==176050){datadir.innerHTML="Learn more about how to use this data to identify a facility.";datadir.href="/files/FFQ-Potential-Childcare-Facilities.pdf";$(div).append(datadir,"<br /><br />");return div}if(marker.datasetID==188450){var note=document.createElement("div");note.innerHTML="Teaching linguistically diverse youths to provide multilingual tech support for adults.";div.appendChild(note);return div}if(PEnvironment.productId==1391){var ids=[162500,162800,176050,161950];for(var i=0;i<ids.length;i++){var id=ids[i];if(marker.datasetID==id){datadir.innerHTML="Learn more about how to use this data to identify a facility.";datadir.href="/files/FFQ-Potential-Childcare-Facilities.pdf";$(div).append(datadir);return div}}}if(PEnvironment.productId==10027){var ids=[304150,304250,317900,304200,322550];for(var i=0;i<ids.length;i++){var id=ids[i];if(marker.datasetID==id){datadir.innerHTML="Find out how to access these sites using NJ Transit";datadir.href="https://www.njtransit.com/";$(div).append(datadir);return div}}}div.appendChild(datadir);return div};PMIdentificationPrinter.printSameAddresses=function(point,markers){var pmid=this;var urlParams=getUrlParams();var tabs=[];var i=1;var j=0;if(markers.length>1){while(j<markers.length){var marker=markers[j];var attributes=markers[j].attributes;var cnt=0;var div=document.createElement("div");div.id="identifyContainer";div.className="pointAttributes";var h4=document.createElement("h4");h4.innerHTML=markers[j].attributes[0].name;div.appendChild(h4);while(cnt<10){if(j==markers.length)break;var value;if(attributes[0].unit)value=PWebUtil.formatNumber(markers[j].attributes[0].value,markers[j].attributes[0].unit);else value=markers[j].attributes[0].value;if(value=="null")value="";var link=document.createElement("a");link.innerHTML=j+1+") "+value+"<br />";link.attr=markers[j].attributes;link.num=j;link.marker=markers[j];PEvent.addListener(link,"mouseup",function(){pmid.addAttributeTabs(this.attr,tabs,point,this.num+1,this.marker);pmid.selectedLink=this.num},"mousedown");if(urlParams["iwlink"]&&urlParams["iwlink"]==j)pmid.savedMarkerAttr=markers[j].attributes;div.appendChild(link);cnt++;j++}if(isCBClone()){div.appendChild(document.createElement("br"));var note=$("<div />");var ids=[127e3,124300,124350];var text="";for(var i=0;i<ids.length;i++){if(marker.datasetID==ids[i]){var text="Note: Multiple entries for the same organization suggest multiple grants awarded in different years."}}if(text.length>0){note.html(text);$(div).append(note)}}tabs.push(new PInfoWindowTab("Sites",div))}return tabs}};PMIdentificationPrinter.addAttributeTabs=function(attributes,tabs,point,num,marker){var attributeTabs=PMIdentificationPrinter.printAttributes(attributes,num,marker);var newtabs=[];for(var i=0;i<tabs.length;i++)newtabs.push(tabs[i]);for(var i=0;i<attributeTabs.length;i++)newtabs.push(attributeTabs[i]);var t=tabs.length;if(!map){var map=P.instances.map}map.openInfoWindowTabs(point,newtabs,null,null,P.constants.infoWindowTypeIdentify);map.getInfoWindow().selectTab(t)};PMIdentificationPrinter.addFakes=function(places,cube){var fake=new PPlace;fake.label="Coming Soon";fake.typeid=PPlaceType.BLOCKGROUP.id;fake.id=0;places.push(fake);if(cube){var period=cube.getPeriods()[0];var indicator=cube.getIndicators()[0];if(cube.getPlaces()!=places)cube.addPlace(fake);cube.values[period][fake.id]=[];cube.values[period][fake.id][indicator.id]=""}};PMIdentificationPrinter.printComingSoon=function(blurb,container){container.style.textAlign="center";container.style.width="200px";container.id="identifyContainer";container.showsCube=true;var msg='<h2 style="font-style: italic; color: #f00">Coming Soon</h2>';msg+='<p style="text-align: justify">'+blurb+"</p>";container.innerHTML=msg};PMIdentificationPrinter.printHudMVA=function(places,indicator,blurb,container){for(var i=0;i<places.length;i++){if(places[i].getType()==PPlaceType.BLOCKGROUP)var place=places[i]}container.style.width="320px";container.id="identifyContainer";container.style.width="240px";container.className="identify";container.style.fontSize="12px";container.style.color="#333333";container.showsCube=true;var title=document.createElement("div");title.className="title";title.style.color="#000000";title.style.fontSize="19px";title.style.fontWeight="bold";title.style.paddingBottom="13px";title.innerHTML=indicator.getLabel();container.appendChild(title);if(place){var placeDiv=document.createElement("div");this.addPlaceLink(place,placeDiv);container.appendChild(placeDiv);clearPolygons(map);addPolygons(map,place)}var content=document.createElement("div");content.innerHTML='<p style="text-align: justify">'+blurb+"</p>";if(!isMobile()){content.innerHTML+="<br /><a target='_blank' href='http://www.huduser.org/publications/commdevl/nsp_target.html'>http://www.huduser.org/publications/commdevl/nsp_target.html</a>"}container.appendChild(content)};PMIdentificationPrinter.printSeeSites=function(container,selectedPlace){if(isEmbedPage()||isCBClone())return;if(isWidgetPage()){if(!productProperty.getValue("show_see_list_bubble_option")){return}}var overlays=map.getOverlaySets();if(overlays.length==0)return;for(var i=0;i<overlays.length;i++){if(!overlays[i].id||overlays[i].isPoly)continue;var anchor=document.createElement("a");anchor.style.marginRight="5px";anchor.innerHTML="See List of "+overlays[i].getLabel();anchor.setid=overlays[i].id;anchor.settype=overlays[i].type;anchor.place=selectedPlace;anchor.set=overlays[i];PEvent.addListener(anchor,"click",function(){if(isTrial()){subscribeAlert();return}var allowedStatus=isSeeListAllowed(this.place,this.set.id);if(allowedStatus!==true){alerter.popup(allowedStatus,"OK");return}showSiteListPopup(this.set,this.place)},"mousedown");container.appendChild(document.createElement("br"));container.appendChild(anchor);var img=document.createElement("img");img.src=overlays[i].icon.image;container.appendChild(img)}};PMIdentificationPrinter.printSeePolygons=function(container,selectedPlace){if(isEmbedPage()||isCBClone())return;if(isWidgetPage()){if(!productProperty.getValue("show_see_list_bubble_option")){return}}var polygonSets=[];var pointSets=map.getOverlaySets();var ind=map.getIndicator();for(var i=0;i<pointSets.length;i++){if(pointSets[i].id&&pointSets[i].id==99800){if(ind&&isSupermarketIndicator(ind)){continue}}var isCitiExclude=false;var citiIds=[152400,152800,152850,152900,177900,177950,178e3];for(var j=0;j<citiIds.length;j++){if(pointSets[i].id&&pointSets[i].id==citiIds[j]){isCitiExclude=true;break}}if(isCitiExclude){continue}if(pointSets[i].isPoly){polygonSets.push(i)}}if(polygonSets.length>0){container.appendChild(document.createElement("br"));for(i=0;i<polygonSets.length;i++){var anchor=document.createElement("a");anchor.style.marginRight="5px";anchor.innerHTML="See List of "+pointSets[polygonSets[i]].getLabel()+" polygons";anchor.set=pointSets[polygonSets[i]];anchor.place=selectedPlace;PEvent.addListener(anchor,"click",function(){if(isTrial()){subscribeAlert();return}var allowedStatus=isSeeListAllowed(this.place,this.set.id);if(allowedStatus!==true){alerter.popup(allowedStatus,"OK");return}showSiteListPopup(this.set,this.place)},"mousedown");container.appendChild(document.createElement("br"));container.appendChild(anchor);var img=document.createElement("img");img.src=pointSets[polygonSets[i]].icon.image;container.appendChild(img)}}};PMIdentificationPrinter.printSeeValues=function(container,selectedPlace,polymarker){if(isEmbedPage()||isCBClone())return;if(!productProperty.getValue("show_see_values_bubble_option")){return}var m=P.instances.map;var ind=m.getIndicator();if(!ind){return}var anchor=document.createElement("a");$(anchor).addClass("values-link");$(anchor).html("See Values... <img src='/images/busy_transparent_purple.gif' style='width:10px' />"),$(container).append(document.createElement("br"));$(container).append(anchor);$(container).append(document.createElement("br"));var f=function(p){anchor.place=p;var leg=m.getLegend();var type=leg.getCurrentPlaceType();p.getPlacesWithinCount(type,null,null,function(count){var typename=type.getPluralName();if(count==1){typename=type.getDisplayName()}anchor.innerHTML="See Values (Contains "+count+" "+typename+")";PEvent.addListener(anchor,"click",function(){if(isTrial()){subscribeAlert();return}showValuesListPopup(this.place,ind,type,count)},"mousedown")},50)};if(polymarker){var pname=polymarker.name;var plat=polymarker.getPoint().lat();var plng=polymarker.getPoint().lng();var bdid=polymarker.bdid;polycreator.polyload(bdid,pname,plat,plng,function(places){var polyplace=places[0];f(polyplace)})}else{f(selectedPlace)}};PMIdentificationPrinter.customizeSitesIdentifyForPSPWidget=function(marker){var radius=.5;var c=getCircle(radius,marker.getPoint());var circlepoints=c.circlepoints;var circle=new PPolyline(circlepoints,polycolor,3,.8);var set;for(var i=0;i<map.getOverlaySets().length;i++){if(map.getOverlaySets()[i].id==marker.datasetID)set=map.getOverlaySets()[i]}circle.getMarkersWithin(set,function(newmarkers){var createTabMetadata=function(datasetid,pid,name){var obj=new Object;obj.datasetid=datasetid;obj.pid=pid;obj.name=name;return obj};var sitesAttributes=[];var sitesMetadata=[];var markers=[];sitesAttributes.push(marker.getAttributes());sitesMetadata.push(createTabMetadata(marker.datasetID,marker.pid,marker.name));markers.push(marker);for(var i=0;i<newmarkers.length;i++){if(marker.getPoint().lat()!=newmarkers[i].getPoint().lat()&&marker.getPoint().lng()!=newmarkers[i].getPoint().lng()){sitesAttributes.push(newmarkers[i].getAttributes());markers.push(newmarkers[i]);sitesMetadata.push(createTabMetadata(newmarkers[i].datasetID,newmarkers[i].pid,newmarkers[i].name))}}var tabs=[];for(var i=0;i<sitesAttributes.length;i++){var attributes=sitesAttributes[i];var container=document.createElement("div");container.id="identifyContainer";container.className="PSPcustomPointAttributes pointAttributes";var mAttributes=[];var compProfile="";var schoolName="";var mathvalue;var readvalue;var mathname;var readname;var mathgrades=[];var readgrades=[];for(var a=0;a<attributes.length;a++){var attr=attributes[a];if(attr.columnName=="url")compProfile=attr.value;else if(attr.columnName=="schoolname")schoolName=attr.value;else if(attr.columnName=="mprof10"){mathvalue=parseFloat(attr.value);mathname=attr.name}else if(attr.columnName=="rprof10"){readvalue=parseFloat(attr.value);readname=attr.name}else if(attr.columnName.indexOf("grmprof")!=-1&&attr.columnName!="grmprof"){mathgrades.push(attr)}else if(attr.columnName.indexOf("grrprof")!=-1&&attr.columnName!="grrprof"){readgrades.push(attr)}else mAttributes.push(attr)}var table=$("<table />");$(table).addClass("custom_widget_sites_info");var tr=$("<tr />");var td=$("<td />");$(tr).append(td);$(td).attr({valign:"top"});$(td).addClass("rankTD");var title=$("<div />");$(title).addClass("schooltitle");$(title).html(schoolName);$(td).append(title);var tabName=schoolName;var gradesSection=$("<div />");$(gradesSection).addClass("math");$(td).append(gradesSection);var gradestable=$("<table />");$(gradestable).addClass("grades-table");$(gradesSection).append(gradestable);var gtr=$("<tr />");$(gradestable).append(gtr);var gtd=$("<td />");$(gtd).html("Math");$(gtr).append(gtd);var grades=mathgrades;for(var g=0;g<grades.length;g++){var last="";if(g==grades.length-1)last="last";var gtd=$("<td />");$(gtd).addClass("grade");$(gtd).html('<div class="'+last+'">'+grades[g].value+'</div><div class="year">'+grades[g].name.substring(0,4)+"</div>");$(gtr).append(gtd)}var pc=$("<div />");$(pc).addClass("progressbar_cont");if(mathvalue){var div=$("<div />");$(div).html("2010 proficient or advanced ("+mathvalue+"%)");$(pc).append(div);var div=$("<div />");$(div).attr({id:"mathlevel"});$(div).progressbar({value:mathvalue});$(div).addClass("progressbar");$(pc).append(div)}$(gradesSection).append(pc);var gradesSection=$("<div />");$(gradesSection).addClass("read");$(td).append(gradesSection);var gradestable=$("<table />");$(gradestable).addClass("grades-table");$(gradesSection).append(gradestable);var gtr=$("<tr />");$(gradestable).append(gtr);var gtd=$("<td />");$(gtd).html("Reading");$(gtr).append(gtd);var grades=readgrades;for(var g=0;g<grades.length;g++){var last="";if(g==grades.length-1)last="last";var gtd=$("<td />");$(gtd).addClass("grade");$(gtd).html('<div class="'+last+'">'+grades[g].value+'</div><div class="year">'+grades[g].name.substring(0,4)+"</div>");$(gtr).append(gtd)}var pc=$("<div />");$(pc).addClass("progressbar_cont");if(readvalue){var div=$("<div />");$(div).html("2010 proficient or advanced ("+readvalue+"%)");$(pc).append(div);var div=$("<div />");$(div).attr({id:"readlevel"});$(div).progressbar({value:readvalue});$(div).addClass("progressbar");$(pc).append(div)}$(gradesSection).append(pc);var td=$("<td />");$(td).attr({valign:"top"});var moreinfo=$("<div />");$(moreinfo).addClass("moreinfo");for(var a=0;a<mAttributes.length;a++){var attribute=mAttributes[a];if(attribute.unit)var value=PWebUtil.formatNumber(attribute.value,attribute.unit);else var value=attribute.value;if(value!=""&&value!="null"||value=="0"){var attr=$("<div />");$(attr).html(attribute.name+": "+value);$(moreinfo).append(attr)}}$(td).append(moreinfo);$(tr).append(td);$(table).append(tr);$(container).append(table);if(!isMobile()){var links=$("<div />");$(links).addClass("links");var def=$("<a />");$(def).html("Definition of scoring system");var comp=$("<a />");$(comp).html("Complete school profile");$(comp).attr({href:"/pdf/Sample PSP pdf.pdf",target:"new"});$(links).append(def);$(links).append(comp);$(container).append(links)}var metadata=sitesMetadata[i];var tab=new PInfoWindowTab(tabName,container,metadata);tab.marker=new PMarker(markers[i].getPoint(),PIcon.CIRCLE_HIGHLIGHT);tab.tabclick=function(){if(map.tabmarker)map.removeOverlay(map.tabmarker);map.addOverlay(this.marker);map.tabmarker=this.marker};tabs.push(tab)}map.clearOverlays();var extendTabs=true;map.openInfoWindowTabs(marker.getPoint(),tabs,null,extendTabs,P.constants.infoWindowTypeIdentify);map.tabmarker=new PMarker(marker.getPoint(),PIcon.CIRCLE_HIGHLIGHT);map.addOverlay(map.tabmarker);map.addOverlay(circle);PEvent.addListener(map,"infowindowclose",function(){map.removeOverlay(circle);map.removeOverlay(map.tabmarker)})})};PMIdentificationPrinter.getWidgetReportLink=function(place,point){var div=null;if(isMNWidget()){var div=$("<div />");div.addClass("custom-report-link");var br=$("<br />");div.append(br);var a=$("<a />");a.html("See Minnesota Community Report");var params="";if(place.isCustomOrPoly()){params="&area=custom&cpid="+place.id}else{params="&area=predefined&pid="+place.id}var productId=PEnvironment.productId;var reportType="mn1";if(productId==1396){reportType="mn2"}a.attr({href:"/report_widget?type="+reportType+params+"&sid="+productId,target:"new"});div.append(a)}else if(isGeorgiaReadingWidget()){if(point){var div=$("<div />");div.addClass("custom-report-link");var br=$("<br />");div.append(br);var a=$("<a />");a.html("<br /><br /><br /> ");point.getPlacesContaining(PPlaceType.GA_SCHDIST,2,null,function(schools){var p=schools[0];var productId=PEnvironment.productId;var params="";params="&area=predefined&pid="+p.id;var reportType="ggr";a.html("See GGR Report for School District: "+p.getLabel());a.attr({href:"/report_widget?type="+reportType+params+"&sid="+productId,target:"new"})});div.append(a)}else if(place&&place.isCustomOrPoly()){var div=$("<div />");div.addClass("custom-report-link");var br=$("<br />");div.append(br);var a=$("<a />");var p=place;var productId=PEnvironment.productId;var params="";params="&area=custom&cpid="+p.id;var reportType="ggr";a.html("See GGR Report for this Custom Region");a.attr({href:"/report_widget?type="+reportType+params+"&sid="+productId,target:"new"});div.append(a)}}return div};PMIdentificationPrinter.checkToIncludeYearInLabel=function(ind){var hide=false;if(ind.hidePeriod){hide=true}if(PEnvironment.pageName=="widget"){if(isIffCustomFilterWidget()||isMilwaukeeMVAWidget()||PEnvironment.widgetParams.sid==1409||PEnvironment.widgetParams.sid==1695||PEnvironment.widgetParams.sid==8814){hide=true}if(PEnvironment.widgetParams.sid==61||PEnvironment.widgetParams.sid==117){var hideyearids=[9871750,9858712,9858700];for(var b=0;b<hideyearids.length;b++){if(ind.id==hideyearids[b]){hide=true}}}}return hide};PMIdentificationPrinter.getReportLink=function(place){var $a=$("<a />");$a.html("Get Report");$a.css("margin-right","15px");$a.data("placeid",place.id);$a.click(function(){session.put("p",place.id);var ind=map.getIndicator();var report="";if(ind&&isSupermarketIndicator(ind)){report="&type=brookingslaa"}else if(ind&&ind.getReportCodeForBubbleLink()){report="&type="+ind.getReportCodeForBubbleLink()}setWindowLocation("reports?pid="+$(this).data("placeid")+report)});return $a};PMIdentificationPrinter.setBubbleLinks=function(cube,currentPlace,container){var $links=$("<div />",{id:"infoBubbleLinks"});$(container).append($links);var l=PMIdentificationPrinter.getTableLink(cube,currentPlace);$links.append(l);var showLink=true;var arr=[130900,129400];var indicator=map.getIndicator();var dids=indicator.getDatasetIds();for(var i=0;i<arr.length;i++){for(var d=0;d<dids.length;d++){if(arr[i]==dids[d]){showLink=false}}}if(indicator.isCategorical()&&indicator.getReportCodeForBubbleLink()==null){showLink=false}if(currentPlace&&showLink){var l=PMIdentificationPrinter.getReportLink(currentPlace);$links.append(l);$links.append("<br />");PMIdentificationPrinter.printSeeSites($links[0],currentPlace);PMIdentificationPrinter.printSeePolygons($links[0],currentPlace)}if(indicator.id==9951740){var $a=$("<a />",{html:"See Description of Underlying Values",target:"new",href:"our-data-directory.html#Reinvestment Fund Market Value Analyses (MVAs) Kansas City 2016"});$links.append("<br /><br />",$a)}};PMIdentificationPrinter.getTableLink=function(cube,currentPlace){var $a=null;var hasData=false;var period=cube.getPeriods()[0];var indicator=cube.getIndicators()[0];var places=cube.getPlaces();if(indicator.hasBubbleIndicators(true)){places=[currentPlace]}for(var i=0;i<places.length;++i){var place=places[i];if(cube.values[period][place.id][indicator.id]!==null&&!isNaN(cube.values[period][place.id][indicator.id])){hasData=true;break}}if(hasData||indicator.isCategorical()){var $a=$("<a />");$a.html("See Table");$a.css("margin-right","15px");$a.click(function(){var placeIds=[];var l=places.length;var place;var shouldInclude=false;var hasData=false;var period=cube.getPeriods()[0];var indicator=cube.getIndicators()[0];for(var i=0;i<l;i++){place=places[i];hasData=cube.values[period][place.id][indicator.id]!=null;shouldInclude=indicator.getMeasurement()!="count"||place.getType()!=PPlaceType.STATE||map.getLegend().getBoundaryType().id==PPlaceType.STATE.id;if(shouldInclude&&hasData){placeIds.push(place.id)}}session.put("p",placeIds.join(","));session.put("i",cube.getIndicators()[0].id);session.put("period",cube.getPeriods()[0]);setWindowLocation("tables")})}return $a};PMIdentificationPrinter.addSeeLayerDataOption=function(div,marker){var map=P.instances.map;var ind=map.getIndicator();if(!productProperty.getValue("show_bubble_see_layer_data_option")){return}if(!ind){return}var point=marker.point;var $a=$("<a />",{html:"See Layer Data For This Location",click:function(){var map=P.instances.map;var ind=map.getIndicator();if(ind){PMIdentificationModule.clickHandler(null,point,null,true)}}});$(div).append($a)};PMIdentificationPrinter.printGreatSchoolsLink=function(cube,div){var places=cube.places;var map=P.instances.map;var indicator=map.getIndicator();var schoolPlace=null;if(!isMobile()&&isSubscriber()&&indicator.containsSource("GreatSchools")){for(var i=0;i<places.length;i++){var p=places[i];if(p.gsussdid){schoolPlace=p;break}}if(schoolPlace){var link="http://www.greatschools.net/cgi-bin/"+schoolPlace.state.toLowerCase()+"/district_profile/"+schoolPlace.gsussdid;var $a=$("<a />",{href:link,html:link});$(div).append("<br />",$a,"<br /><br />")}}};PMIdentificationPrinter.printLatLng=function(p,div){if(!productProperty.getValue("show_lat_lng_in_identify")){return}var round=function(v){var r=1e5;return Math.round(v*r)/r};var $d=$("<div />",{class:"lat-lng"});var $s=$("<span />",{html:"Lat/Long: ",class:"placeType"});var $a=$("<a />",{html:round(p.lat())+", "+round(p.lng()),click:function(){var map=P.instances.map;map.setCenter(p,14)}});$d.append($s,$a);$(div).append($d)};PMIdentificationPrinter.printDataLinks=function(div,legend){if(isMobile()){return}var map=P.instances.map;if(legend==null){var legend=map.getLegend()}var indicator=legend.getIndicator();var linkDiv=null;if(indicator.id==9627155||indicator.id==9627151||indicator.id==9627201||indicator.id==9627156){linkDiv=document.createElement("div");linkDiv.className="link-container";linkDiv.innerHTML="<a style='word-wrap:break-word;' target='_blank' href='http://www.huduser.org/publications/commdevl/nsp_target.html'>http://www.huduser.org/publications/commdevl/nsp_target.html</a>"}else if(isCBClone()&&indicator.id==9899703){linkDiv=document.createElement("div");linkDiv.className="link-container";linkDiv.innerHTML="<a style='word-wrap:break-word;' target='_blank'href='http://philadelphiaplaneto.com/wp-content/uploads/2012/09/Quick-Reference-Guide_reduced.pdf'>http://philadelphiaplaneto.com/wp-content/uploads/2012/09/Quick-Reference-Guide_reduced.pdf</a>"}if(indicator.containsSource("IRS & The Brookings Institution")){linkDiv=document.createElement("div");linkDiv.className="link-container";linkDiv.innerHTML="<a target='_blank' href='http://www.brookings.edu/metro/EITC/EITC-Homepage.aspx'>http://www.brookings.edu/metro/EITC/EITC-Homepage.aspx</a>"}if(indicator.id==9639604){linkDiv=document.createElement("div");linkDiv.className="link-container";linkDiv.innerHTML="<a target='_blank' href='/our-data-directory.html#trf_NIDAdescriptionmatrix'>Methodology</a>"}if(linkDiv){div.appendChild(linkDiv);div.appendChild(document.createElement("br"))}};PMultiDefinitionBoundary=function(data){this.name=data.name;this.typeId=data.typeId;this.bounds=data.bounds;this.type=getPlaceTypeById(this.typeId);this.value=data.value?data.value:null;this.state=data.state?data.state:null};PMultiDefinitionBoundary.prototype.getType=function(){return this.type};PMultiDefinitionBoundary.prototype.getBoundaryIdForCurrentMatrix=function(){var overrideDefaultMatrixId=null;if(this.type==PPlaceType.CBSA||this.type==PPlaceType.MD){overrideDefaultMatrixId=4}var matrixOrder=boundaryMatrix.getMatrixOrder(true,overrideDefaultMatrixId);var defs=[];for(var i=0;i<matrixOrder.length;i++){var curMatrixId=matrixOrder[i];if(boundaryMatrix.isTypeIdInMatrix(this.typeId,curMatrixId)){defs.push(boundaryMatrix.getDefinitionIdForTypeId(this.typeId,curMatrixId))}}for(var i=0;i<defs.length;i++){var matchDef=defs[i];for(var j=0;j<this.bounds.length;j++){if(matchDef==this.bounds[j].defId){return this.bounds[j].bid}}}return null};PMultiDefinitionBoundary.prototype.getYearsAsString=function(){var years=$.map(this.bounds,function(bound){return bound.year});years.sort();var yearString="";var numYears=years.length;if(numYears==1){yearString=years[0]}else if(numYears==2){yearString=years.join(" and ")}else if(numYears>2){yearString=years.join(", ").replace(/,([^,]*)$/,", and"+"$1")}return yearString};function teaseIndicators(premium,extra){if(premium!=null&&premium===true){var text="Available to Premium Subscribers and most Enterprise Licenses. <a onclick='showLoginModal();' class='simulink pagelinks'>Login</a> to access or <a onclick='showSignupOrUpgradeModal();' class='simulink pagelinks'>sign up for a Premium/Enterprise License</a>."}else{var text="Available to subscribers only. <a onclick='showLoginModal();' class='simulink pagelinks'>Login</a> to access or <a onclick='showSignupOrUpgradeModal();' class='simulink pagelinks'>sign up for PolicyMap</a>."}if(extra){text+="<br><br>"+extra}alerter.popup(text,"OK")}function comingIndicators(){var text="Not yet available to PolicyMap users. Stay tuned to our PolicyMap email updates and blog for a release announcement about these data.";alerter.popup(text,"OK")}function superMarketLIIFTeaseAlert(){var text="Available to select subscribers only. For information about obtaining a Supermarket Study of Low Access Areas, please <a href='/contact.html'>contact us</a>.";alerter.popup(text,"OK")}function trfSuperMarketTeaseAlert(){var text="Only available to subscribers. For more information about accessing this data, please <a href='/contact.html' class='pagelinks'>contact us</a>";alerter.popup(text,"OK")}function naIndicators(){var text="This data is not available.";alerter.popup(text,"OK")}function sendMail(domain,account,subject){var a="mailto:"+account+domain+"?"+"subject="+subject;location.href=a}function clientStoriesToggle(elem){if($(elem).hasClass("readmore")){$(elem).parent(".links").prev(".desc").children(".long-version").show();$(elem).children(".text").html("Collapse");$(elem).removeClass("readmore");$(elem).addClass("collapse")}else{$(elem).parent(".links").prev(".desc").children(".long-version").hide();$(elem).children(".text").html("Read More");$(elem).addClass("readmore");$(elem).removeClass("collapse")}}function popupYouTube(videoId,width,height){width=width||560;height=height||420;var html='<iframe width="'+width+'" height="'+height+'" src="//www.youtube.com/embed/'+videoId+'?rel=0" frameborder="0" allowfullscreen></iframe>';var content={content:html,width:width+70};alerter.popup(content)}PolyCreatorDropDownList=function(node,polycreator,map){this.map=map;this.polycreator=polycreator;this.dropdown=node;this.container=node.parentNode.parentNode.parentNode;this.eventManager=new PEventManager;this.listeners=[]};PolyCreatorDropDownList.prototype={refresh:function(places){var l=this.listeners.length
;for(var i=0;i<l;i++)PEvent.removeListener(this.listeners[i]);this.listeners=[];while(this.dropdown.hasChildNodes())this.dropdown.removeChild(this.dropdown.firstChild);if(places.length==0){var div=$("<div/>");$(div).css({padding:"10px",color:"#999"});div.html("You have no saved custom regions.");$(this.dropdown).append(div);return}for(var i=places.length-1;i>=0;i--){var place=places[i];var li=document.createElement("li");var div=document.createElement("div");div.className="name";li.appendChild(div);li.index=i;li.dropdown=this;li.place=place;li.on=false;div.innerHTML=place.getLabel();var br=document.createElement("br");br.className="clear";li.appendChild(br);if(polycreator.customPlaces[place.id]){li.on=true;li.className="active";polycreator.customPlaces[place.id].dropdownEl=li}this.listeners.push(PEvent.addListener(li,"mousedown",function(){var place=this.place;this.dropdown.dropdown.style.display="none";if(this.on==true){if(PEnvironment.pageName=="tables"){cube.remove(place)}else{polycreator.removeCustomRegionFromMap(place)}}else{if(PEnvironment.pageName=="report_area"){var customplaces=polycreator.customPlaces;for(var i in customplaces){polycreator.removeCustomRegionFromMap(customplaces[i].place)}}else if(PEnvironment.pageName=="tables"){this.className="active";this.on=true;polycreator.addCustomRegionForTable(place);polycreator.customPlaces[place.id].dropdownEl=this}else{this.className="active";this.on=true;polycreator.setUpPlaceAndPolylines(place,map);polycreator.customPlaces[place.id].dropdownEl=this;map.setCenterBounds(place.getBounds())}this.dropdown.toggle()}}));this.dropdown.appendChild(li)}},toggle:function(){if(!isSubscriber()){subscribeAlert();return}if(this.dropdown.style.display=="none")this.dropdown.style.display="block";else this.dropdown.style.display="none"},show:function(){this.container.style.display="block"},hide:function(){this.container.style.display="none"},setUsersPlaces:function(){var that=this;var loading=document.createElement("li");loading.style.margin="10px";loading.innerHTML="Loading...";this.dropdown.appendChild(loading);if(session.get("_userid")!=null){polycreator.loadByUser(function(places){that.refresh(places)})}else{that.refresh([])}this.show()},reset:function(){this.dropdown.style.display="none";this.setUsersPlaces()}};PopUp=function(options){if(options==null){options={}}if(options.elm){this.elm=options.elm}else{this.elm=$("#popup")}if(options.style){this.elm.addClass("popOpt"+options.style)}var content=$("<div />");content.addClass("content");this.elm.append(content);this.popup_content=content;this.showClose=options.noClose!==true;this.noButtons=options.noButtons===true;this.buttons=$("<div />");this.buttons.attr("id","popupButtons");this.buttons.addClass("buttons");this.elm.append(this.buttons);this.loader=$("<img />").attr("src","/images/busy_invert.gif");this.loader.attr("id","popupBusy");this.loader.css({position:"absolute",display:"none"});this.elm.append(this.loader);this.content=null;this.inMotion=false;if(options.chartContainer){this.chartContainer=options.chartContainer}else{this.chartContainer=$(".chartContainer")}};PopUp.prototype={show:function(callback,context){this.chartContainer.show();$("body").addClass("tables-popup-is-open");this.refreshSize();this.popup_content.children().hide();this.loader.show();if(!this.elm.is(":visible")){this.inMotion=true;this.elm.width(0).height(0).css({left:this.left+this.width/2+"px",top:this.top+this.height/2+"px"});var op=.92;if(PEnvironment.pageName=="tables"){op=1}var self=this;if(isReportPage()){this.elm.show().css({left:"0px",top:"0px",width:"100%",height:"auto",opacity:1});self.inMotion=false;self.changeContent(null,callback,context)}else{this.elm.show();this.elm.animate({left:this.left+"px",top:this.top+"px",width:this.width+"px",height:this.height+"px",opacity:op},700,"swing",function(){self.inMotion=false;self.changeContent(null,callback,context)})}}},setButtons:function(buttons){var self=this;this.buttons.empty();if(this.noButtons){return}if(this.showClose){var close=$("<div />");close.addClass("button close");close.click(function(){self.hide()});var br=$("<br />");br.attr("clear","both");this.buttons.append(close,br)}for(var i=0;i<buttons.length;i++){this.buttons.append(buttons[i])}},hide:function(callback){if(this.elm.is(":visible")){$("body").removeClass("tables-popup-is-open");unselectColumn();var self=this;this.popup_content.children().hide();this.elm.animate({left:this.left+this.elm.width()/2+"px",top:this.top+this.elm.height()/2+"px",width:"0px",height:"0px",opacity:0},700,"swing",function(){self.elm.hide();$("#save").fadeIn();if(PEnvironment.pageName!="tables"){self.chartContainer.hide()}if(callback){callback()}})}},refreshSize:function(){if(this.chartContainer.css("position")=="absolute"||this.elm.css("position")!="absolute"){this.left=0;this.top=0}else{var chartContainerPos=this.chartContainer.position();this.left=chartContainerPos.left;this.top=chartContainerPos.top}this.height=this.chartContainer.height();this.width=this.chartContainer.width();this.loader.css({left:"0",right:"0",margin:"auto",top:this.height/2+"px"})},refreshScrollContainerSize:function(){var scrollTableContainer=this.elm.find(".scrollTableContainer");var height=this.chartContainer.height()-140+"px";if(isCitiReports()){height="265px"}else if(isReportPage()){height="290px"}scrollTableContainer.css("height",height)},emptyScrollContainer:function(callback){var scrollTableContainer=this.elm.find(".scrollTableContainer");scrollTableContainer.fadeOut(200,function(){scrollTableContainer.html("");scrollTableContainer.show();callback()})},changeContent:function(elm,callback,context){if(elm){this.content=elm}if(callback){this.callback=callback;this.context=context}if(this.inMotion==false&&this.content&&(this.elm.is(":visible")||isReportPage())){this.popup_content.children().hide();this.popup_content.empty();this.popup_content.append(this.content);this.content.show();this.content=null;this.loader.hide();this.refreshScrollContainerSize();if(this.callback){this.callback.call(this.context);this.callback=null;this.context=null}}}};POverlaySet=function(markers,mgr,zoom){this.name="Overlay Set";if(markers instanceof Array){this.markers=markers;if(mgr)this.markermgr=mgr}else{this.markers=[];this.id=markers;this.serverOn=false;this.serverPinCount=0;if(zoom||zoom==0)this.zoom=zoom;else this.zoom=12;if(mgr)this.icon=mgr;else this.icon=PIcon.POINT}this.filtered=this.markers.slice();this.refreshed=[];this.filtergroups=new Object;this.display=true;this.oldQuery="";this.sources=[];this.children=[];this.filtersbyicons=[];this.filtericons=[];this.reloadfiltericons=true;this.type="old";this.isPoly=false;this.bdid=null;this.polycolor=null;this.polystyle=null;this.boundingBox=null;this.owner=false;this.ownerfirst="";this.ownerlast="";this.created="";this.perm=null;this.allowFiltersWithColorCode=false;this.isLabel=false};POverlaySet.prototype.setLabel=function(label){this.name=label;if(this.map)this.map.refreshWidget(this.map.widgetOverlay)};POverlaySet.prototype.getLabel=function(){return this.name};POverlaySet.prototype.addOverlay=function(marker){this.markers.push(marker);if(this.overlayInFilters(marker)){this.filtered.push(marker);if(this.map&&this.isOn())this.addMarker(marker);if(this.map)this.map.refreshWidget(this.map.widgetOverlay)}};POverlaySet.prototype.removeOverlay=function(marker){for(var i=0;i<this.markers.length;i++){if(this.markers[i]==marker){this.markers.splice(i,1);break}}if(this.overlayInFilters(marker)){if(this.filtered!=this.markers){for(var i=0;i<this.filtered.length;i++){if(this.filtered[i]==marker){this.filtered.splice(i,1);break}}}if(this.map&&this.isOn())this.removeMarker(marker);if(this.map)this.map.refreshWidget(this.map.widgetOverlay)}};POverlaySet.prototype.getOverlays=function(){return this.filtered};POverlaySet.prototype.getOverlayCount=function(){if(this.serverOn)return this.serverPinCount;else return this.filtered.length};POverlaySet.prototype.on=function(){if(!this.display){this.display=true;if(this.map){for(var i=0;i<this.filtered.length;i++)this.addMarker(this.filtered[i]);this.refreshed=this.filtered;this.map.refreshWidget(this.map.widgetOverlay)}if(this.id)this.renderClient()}};POverlaySet.prototype.off=function(){if(this.display){this.display=false;if(this.map){this.clearMarkers();this.map.refreshWidget(this.map.widgetOverlay)}if(this.map&&this.serverOn)this.removeServer()}};POverlaySet.prototype.isOn=function(){return this.display};POverlaySet.prototype.addFilter=function(filter){this.addFilterToGroup(filter);this.executeFilters();this.refresh()};POverlaySet.prototype.removeFilter=function(filter){this.removeFilterFromGroup(filter);this.executeFilters();this.refresh()};POverlaySet.prototype.clearFilters=function(){this.filtergroups=new Object;this.filtered=this.markers.slice();this.executeFilters();this.refresh()};POverlaySet.prototype.setFilters=function(filters){this.filtergroups=new Object;for(var i=0;i<filters.length;i++)this.addFilterToGroup(filters[i]);this.executeFilters();this.refresh()};POverlaySet.prototype.getFilters=function(){var retFilters=[];for(var i in this.filtergroups){var filters=this.filtergroups[i];for(var j=0;j<filters.length;j++){if(!filters[j].name.match("_HIDE"))retFilters.push(filters[j])}}return retFilters};POverlaySet.prototype.setDisplayFilters=function(filters){this.displayfiltergroups=new Object;for(var i=0;i<filters.length;i++){var filter=filters[i];if(!this.displayfiltergroups[filter.name])this.displayfiltergroups[filter.name]=[];this.displayfiltergroups[filter.name].push(filter)}};POverlaySet.prototype.getDisplayFilters=function(){return this.displayfiltergroups};POverlaySet.prototype.setFiltersByIcons=function(filters,icons){this.filtersbyicons=filters.slice();this.filtericons=icons.slice();if(this.allowFiltersWithColorCode){this.executeFilters();this.refresh()}else{this.clearFilters()}};POverlaySet.prototype.clearFiltersByIcons=function(){if(this.filtersbyicons.length>0){this.filtersbyicons=[];this.filtericons=[];this.reloadfiltericons=true;this.oldQuery=null;if(!this.allowFiltersWithColorCode){this.clearFilters()}}};POverlaySet.prototype.addFilterToGroup=function(filter){if(!this.allowFiltersWithColorCode){this.clearFiltersByIcons()}if(!this.filtergroups[filter.name])this.filtergroups[filter.name]=[];this.filtergroups[filter.name].push(filter)};POverlaySet.prototype.removeFilterFromGroup=function(filter){if(this.filtergroups[filter.name]){var filters=this.filtergroups[filter.name];if(this.isIFFDataset()&&filters[0].values[0]=="COLORCODE"&&isIFFAccountabilityColumn(this.id,filters[0].columnName)){this.clearFiltersByIcons();this.setFiltersByIcons(this.iffschoolfiltersbyicons,this.colorcodes)}var jsonFilter=JSON.stringify(filter);for(var i=0;i<filters.length;i++){if(filter==filters[i]||jsonFilter==JSON.stringify(filters[i])){this.filtergroups[filter.name].splice(i,1);if(this.filtergroups[filter.name].length==0){delete this.filtergroups[filter.name]}break}}}};POverlaySet.prototype.executeFilters=function(){if(this.id){this.setMarkersById()}else{this.filtered=[];for(var i=0;i<this.markers.length;i++){if(this.overlayInFilters(this.markers[i]))this.filtered.push(this.markers[i])}}$(window).trigger(P.events.OVERLAYSET_FILTER_CHANGED)};POverlaySet.prototype.overlayInFilters=function(overlay){var andCheck=true;for(var i in this.filtergroups){var filters=this.filtergroups[i];var orCheck=true;for(var j=0;j<filters.length;j++){var attrib=overlay.getAttribute(filters[j].name);if(attrib){if(this.attributeInFilter(attrib,filters[j])){orCheck=true;break}else orCheck=false}}if(orCheck)andCheck=true;else{andCheck=false;break}}return andCheck};POverlaySet.prototype.attributeInFilter=function(attrib,filter){var values=filter.values;if(filter.type==PAttributeFilter.EQUAL){for(var k=0;k<values.length;k++){if(attrib.value==values[k])return true}}else if(filter.type==PAttributeFilter.RANGE){if(attrib.type==PAttribute.STRING){for(var k=0;k<values.length;k++){if(attrib.value.match(values[k]))return true}}else if(attrib.type==PAttribute.NUMBER||attrib.type==PAttribute.DATE){if(attrib.value>=values[0]&&attrib.value<values[1])return true}}return false};POverlaySet.prototype.refresh=function(){if(this.map){if(this.display){this.clearMarkers();for(var i=0;i<this.filtered.length;i++)this.addMarker(this.filtered[i]);this.refreshed=this.filtered.slice()}this.map.refreshWidget(this.map.widgetOverlay)}};POverlaySet.prototype.addMarker=function(marker){if(this.markermgr)this.markermgr.addMarker(marker);else this.map.addOverlay(marker)};POverlaySet.prototype.removeMarker=function(marker){if(this.markermgr)this.markermgr.removeMarker(marker);else this.map.removeOverlay(marker)};POverlaySet.prototype.clearMarkers=function(){if(this.markermgr)this.markermgr.clearMarkers();else{for(var i=0;i<this.refreshed.length;i++)this.map.removeOverlay(this.refreshed[i])}};POverlaySet.prototype.renderClient=function(){if(this.id){if(this.map&&this.display){this.setMarkersById();this.pinLayer=null;var set=this;if(!this.moveRenderEvent)this.moveRenderEvent=PEvent.addListener(this.map,"moveend",function(){set.setMarkersById()})}}};POverlaySet.prototype.setMarkersById=function(){if(this.map){var bounds=this.map.getBounds();var sw=bounds.getSouthWest();var ne=bounds.getNorthEast();this.filtered=[];var set=this;if(this.map&&this.display){var f=function(markers){if(set.isPoly){set.renderServer()}else if(markers.length>0&&!(markers[0]instanceof PMarker)){set.serverPinCount=markers[0];set.renderServer()}else if(markers.length>0&&set.map&&set.map.getZoom()<=set.zoom){set.serverPinCount=markers.length;set.renderServer()}else{set.removeServer();set.filtered=markers;set.refresh();set.serverOn=false}};var url=PEnvironment.pointUrl+"&act=p&did="+this.id+"&dt="+this.type+"&mnx="+sw.lng()+"&mny="+sw.lat()+"&mxx="+ne.lng()+"&mxy="+ne.lat()+"&ftr="+encodeURIComponent(this.createQuery())+"&nocol=1";ajax.call({url:url,context:this,success:function(response){var markers=POverlaySet.createMarkers(response.pnt,set.icon);f(markers)}})}}};POverlaySet.prototype.encodeIconString=function(icon){return"img="+encodeURIComponent(icon.image)+"&shd="+encodeURIComponent(icon.shadow)+"&isz="+encodeURIComponent(icon.iconSize)+"&ssz="+encodeURIComponent(icon.shadowSize)+"&ian="+encodeURIComponent(icon.iconAnchor)+"&san="+encodeURIComponent(icon.shadowAnchor)+"&group=1"};POverlaySet.prototype.encodeIconStringById=function(icon){return"pinid="+encodeURIComponent(icon.pinid)+"&shd="+encodeURIComponent(icon.shadow)+"&isz="+encodeURIComponent(icon.iconSize)+"&ssz="+encodeURIComponent(icon.shadowSize)+"&ian="+encodeURIComponent(icon.iconAnchor)+"&san="+encodeURIComponent(icon.shadowAnchor)+"&group=1"};POverlaySet.prototype.renderServer=function(force){if(this.id){if(this.map){var newQuery=this.createQuery();if(force||!(this.serverOn&&this.oldQuery==newQuery)||this.filtersbyicons.length>0&&this.reloadfiltericons){this.removeServer();this.pinLayer=new PMapLayer;this.oldQuery=newQuery;var layername="";var pinIslandString="";var polyIslandString="";if(productProperty.exists("live_map_boundary_island")||productProperty.exists("live_map_custom_region_island")){if(productProperty.exists("live_map_boundary_island")){var islandBoundary=productProperty.getValue("live_map_boundary_island")[0];pinIslandString+="&islpd="+islandBoundary;polyIslandString+=":islpd_"+islandBoundary;if(liveMapBoundaryIsland!=null&&liveMapBoundaryIsland.getDefinitionId()!=null){var defId=liveMapBoundaryIsland.getDefinitionId();pinIslandString+="&islpddi="+defId;polyIslandString+=":islpddi_"+defId}}if(productProperty.exists("live_map_custom_region_island")){var islandRegions=productProperty.getValue("live_map_custom_region_island").join("-");pinIslandString+="&islcus="+islandRegions;polyIslandString+=":islcus_"+islandRegions}}else if(islandPrintEnabled==true){var islandBoundary=session.get("p");if(islandBoundary!=null){pinIslandString+="&islpd="+islandBoundary;polyIslandString+=":islpd_"+islandBoundary}var islandRegions=session.get("cp");if(islandRegions!=null&&$.isArray(islandRegions)){var islandRegionsString=islandRegions.join("-");pinIslandString+="&islcus="+islandRegionsString;polyIslandString+=":islcus_"+islandRegionsString}}if(this.filtersbyicons.length>0&&(!this.isIFFDataset()||this.isIFFDataset()&&!this.iffIgnoreColorCode)){var l=this.filtersbyicons.length;var l2=this.filtericons.length;if(l2<l)l=l2;if(this.isPoly){for(var i=0;i<l;i++){var layerStyle="gpoly";if(this.polystyle!=null){layerStyle=this.polystyle}var colorString="";if(this.colorcodes!=null){colorString=":clr_"+this.colorcodes[i].color}else if(PinIcons.polygon.colors[i].color!=null){colorString=":clr_"+PinIcons.polygon.colors[i].color}var filterString=encodeURIComponent(this.createFilterQueryMapnik(this.filtersbyicons[i]));if(this.type!=null&&this.type=="dl"){layername+=layerStyle+":ptype_dl:did_"+this.bdid+colorString+polyIslandString+":ftr_"+filterString+","}else{layername+=layerStyle+":bdid_"+this.bdid+colorString+polyIslandString+":ftr_"+filterString+","}}}for(var i=0;i<l;i++){var filterColorCode=true;if(this.isPoly)filterColorCode=false;if(this.isIFFDataset()&&isIFFAccountabilityColumn(this.id,this.filtersbyicons[0].columnName)){_.each(this.iffschoolfiltersbyicons,function(schoolFilter){var setFilterQuery=this.createFilterQuery(this.filtersbyicons[i]);var schoolFilterQuery=this.createFilterQuery(schoolFilter);var filterString=encodeURIComponent(setFilterQuery+","+schoolFilterQuery);var shape=schoolFilter.shape;var color="_"+this.filtersbyicons[i].color;if(color=="_orange"){color=""}var icon=PinIcons[shape+color];var iconString=this.encodeIconStringById(icon);layername+=encodeURIComponent("pins_"+iconString+":data_did="+this.id+pinIslandString+"&ftr="+filterString);if(i<l*this.iffschoolfiltersbyicons.length){layername+=":"}},this)}else{var filterString=encodeURIComponent(this.createFilterQuery(this.filtersbyicons[i]));var iconString;if(this.isPoly){var picon;if(this.colorcodes!==undefined&&this.colorcodes!=null){picon=this.colorcodes[i]}else{picon=this.icon.colors[i]}iconString=this.encodeIconStringById(picon)}else{var icon=this.colorcodes[i];if(this.filtersbyicons[i].icon){icon=this.filtersbyicons[i].icon}iconString=this.encodeIconStringById(icon)}layername+=encodeURIComponent("pins_"+iconString+":data_did="+this.id+pinIslandString+"&ftr="+filterString);if(i<l-1){layername+=":"}}}this.reloadfiltericons=false}else{var dataType=this.type;var encFilter=encodeURIComponent(this.oldQuery.replace(/,/gi,"-"));if(this.isPoly){var layerStyle="gpoly";if(this.polystyle!=null){layerStyle=this.polystyle}var colorString="";if(this.polycolor!=null){colorString=":clr_"+this.polycolor}if(this.type!=null&&this.type=="dl"){layername+=layerStyle+":ptype_dl:did_"+this.bdid+colorString+polyIslandString+":ftr_"+encodeURIComponent(this.createQuery(true))+","}else{layername+=layerStyle+":bdid_"+this.bdid+colorString+polyIslandString+":ftr_"+encodeURIComponent(this.createQuery(true))+","}}if(this.isIFFDataset()){var allPinLayers="";_.each(this.iffschoolfiltersbyicons,function(curSchoolFilter){var curEncFilter=encFilter+"-"+curSchoolFilter.id;var iconString=this.encodeIconStringById(curSchoolFilter.icon);var dataString="did="+encodeURIComponent(this.id)+"&type="+dataType+pinIslandString+"&ftr="+curEncFilter;allPinLayers+=":pins_"+encodeURIComponent(iconString)+":"+"data_"+encodeURIComponent(dataString)},this);layername+=allPinLayers.substring(1);this.reloadfiltericons=false}else{var iconString=this.encodeIconStringById(this.icon);var dataString="did="+encodeURIComponent(this.id)+"&type="+dataType+pinIslandString+"&ftr="+encFilter;layername+="pins_"+encodeURIComponent(iconString)+":"+"data_"+encodeURIComponent(dataString)}}var set=this;function f(name){var checkDupe=true;var layers=set.map.mapType.getMapLayers();var l=layers.length;for(var i=0;i<l;i++){if(layers[i].name==name){checkDupe=false;break}}if(checkDupe){set.map.refresh();set.pinLayer.name=name;set.pinLayer.title="donotshowinwidget";set.serverOn=true;var pos=null;var ll=layers.length;var ppoverlaysets=productProperty.getValue("overlaysets");if(set.map.mapType.getHoleLayer()){pos=ll-1}else if(ppoverlaysets!=null){if(typeof P.data.ppoverlaysetsDone==="undefined"){P.data.ppoverlaysetsDone=0}if(P.data.ppoverlaysetsDone!==l){var index=0;l=ppoverlaysets.length;for(i=0;i<l;i++){if(set.id==ppoverlaysets[i]){index=i;break}}for(var y=0;y<ll;y++){if(typeof layers[y].overlaysetId!="undefined"){if(layers[y].overlaysetIndex>index){pos=y;break}}}P.data.ppoverlaysetsDone++}}set.map.mapType.addMapLayer(set.pinLayer,pos,set.id,index);set.filtered=[];set.refresh()}}if(window.ActiveXObject&&version<8||layername.length>4e3){var maplayers=this.map.getCurrentMapType().getMapLayers();var l=maplayers.length;var layernames=layername;for(var i=0;i<l;i++)layernames+=maplayers[i].name;if(layernames.length>1800){if(this.isPoly){var morenames=layername.split(",");var lcids="";var count=0;var storeStrings=function(str){stringStore.store(str,function(id){lcids+="lcid_"+id+",";count++;if(count<morenames.length){storeStrings(morenames[count])}else{lcids=lcids.slice(0,lcids.length-1);f(lcids)}})};storeStrings(morenames[count])}else{stringStore.store(layername,function(id){f("lcid_"+id)})}}else f(layername)}else f(layername)}else this.map.refreshWidget(this.map.widgetOverlay)}}$(window).trigger(P.events.OVERLAYSET_RENDER_SERVER_DONE)};POverlaySet.prototype.removeServer=function(){if(this.map&&this.pinLayer!=null){this.map.mapType.removeMapLayer(this.pinLayer);this.pinLayer=null;this.serverOn=false}};POverlaySet.prototype.createQuery=function(poly){var query="";var filterGroupsWithFilters;if(this.isIFFDataset()&&this.filtergroups["School Type_HIDE"]){delete this.filtergroups["School Type_HIDE"]}var hasColorCode=_.some(this.filtergroups,function(filterGroup){return filterGroup.length>0&&filterGroup[0].values[0]==="COLORCODE"});if(hasColorCode){filterGroupsWithFilters=this.filtersbyicons}else{filterGroupsWithFilters=_.filter(this.filtergroups,function(filterGroup){return filterGroup.length>0})}if(this.isIFFDataset()&&hasColorCode&&isIFFAccountabilityColumn(this.id,filterGroupsWithFilters[0].columnName)){this.iffIgnoreColorCode=false;var schoolFilters=this.iffschoolfiltersbyicons.slice();_.each(filterGroupsWithFilters,function(filter){if(filter.values.length>0){_.each(schoolFilters,function(schoolFilter){query+=(query.length===0?"":",")+this.createFilterQuery(filter)+","+this.createFilterQuery(schoolFilter)},this)}},this)}else{if(this.isIFFDataset()){this.iffIgnoreColorCode=_.size(this.filtergroups)>0}if(hasColorCode){query=_.chain(this.filtersbyicons).pluck("id").join(",").value()}else{if(poly){_.each(filterGroupsWithFilters,function(filterGroup,fgIndex,filterGroups){query+="(";_.each(filterGroup,function(filter,fIndex,filters){query+=this.createFilterQueryMapnik(filter);if(fIndex<filters.length-1){query+=" or "}},this);query+=")";if(fgIndex<filterGroups.length-1){query+=" and "}},this)}else{_.each(filterGroupsWithFilters,function(filterGroup){_.each(filterGroup,function(filter){query+=(query.length===0?"":",")+this.createFilterQuery(filter)},this)},this)}}}return query};POverlaySet.prototype.createFilterQuery=function(filter,hasColorCode){return filter.id};POverlaySet.prototype.createFilterQueryMapnik=function(filter){var query="";if(filter.columnType==PAttribute.NUMBER||filter.columnType==PAttribute.DATE){if(filter.type==PAttributeFilter.RANGE){var start=filter.values[0];var end=filter.values[1];if(filter.columnType==PAttribute.DATE){start="timestamp'"+filter.values[0].getFullYear()+"-"+filter.values[0].getMonth()+"-"+filter.values[0].getDate()+"'";end="timestamp'"+filter.values[1].getFullYear()+"-"+filter.values[1].getMonth()+"-"+filter.values[1].getDate()+"'"}query+="("+filter.columnName+" >= "+start+" and "+filter.columnName+" <= "+end+")"}else if(filter.type==PAttributeFilter.EQUAL){query+="(";for(var k=0;k<filter.values.length;k++){var value=filter.values[k];if(filter.columnType==PAttribute.DATE)value="timestamp'"+filter.values[k].getFullYear()+"-"+filter.values[k].getMonth()+"-"+filter.values[k].getDate()+"'";query+=filter.columnName+" = "+value;if(k<filter.values.length-1)query+=" or "}query+=")"}}else if(filter.columnType==PAttribute.STRING){for(var k=0;k<filter.values.length;k++){var nextQuery="";if(filter.type==PAttributeFilter.EQUAL){nextQuery=filter.columnName+" = '"+filter.values[k]+"'"}else if(filter.type==PAttributeFilter.RANGE){nextQuery=filter.columnName+".match('.*"+filter.values[k]+".*')"}else if(filter.type==PAttributeFilter.STARTSWITH){nextQuery=filter.columnName+".match('"+filter.values[k]+".*')"}if(nextQuery!=""){query+=nextQuery;if(k<filter.values.length-1){query+=" or "}}}}else if(filter.columnType==PAttribute.BOOLEAN){query+=filter.columnName+" = "+filter.values[0]}return query};POverlaySet.prototype.changeIcon=function(icon,update){this.icon=icon;if(icon.colors!=null&&icon.colors.length>0){this.filtericons=icon.colors;this.colorcodes=icon.colors}else{var headpin=icon.headpin;if(PinIcons[headpin]!=null&&PinIcons[headpin].colors!=null&&PinIcons[headpin].colors.length>0){this.filtericons=PinIcons[headpin].colors;this.colorcodes=PinIcons[headpin].colors}else{this.filtericons=[];this.colorcodes=[]}}if(this.isPoly){this.polycolor=icon.color}if(update){this.renderServer(true)}};POverlaySet.prototype.findMatchingFilters=function(filters){if(!filters||filters.length==0){return[]}var setFilterIds=[];for(var n1 in this.displayfiltergroups){var columnName=this.displayfiltergroups[n1][0].columnName;var curFilters=this.displayfiltergroups[n1];for(var i=0;i<filters.length;i++){var filter=filters[i];if(filter.columnName==columnName){for(var j=0;j<curFilters.length;j++){var curFilter=curFilters[j];if(curFilter.valuesDisplay==filter.valuesDisplay){if(curFilter.id==0){setFilterIds.push("c"+curFilter.groupId)}else{setFilterIds.push(curFilter.id)}}}}}}return setFilterIds};POverlaySet.prototype.isIFFDataset=function(){var r=false;if(isIffCustomFilterWidget()){var arr=[123100,139700,140850,143400,147950,149900,150800,155200,156800,157050,160400];for(var i=0;i<arr.length;i++){if(arr[i]==this.id){r=true;break}}}return r};POverlaySet.createMarkers=function(points,icon){if($.isArray(points)&&points.length==0){return points}if(isNaN(points)==false){return[points]}var markers=[];for(var i=0;i<points.length;i++){var curPoint=points[i];var newMarker=new PMarker(new PLatLng(curPoint.y,curPoint.x),icon);newMarker.name=curPoint.name;newMarker.datasetID=curPoint.datasetId;newMarker.pid=curPoint.pid;newMarker.isPoly=curPoint.isPoly;if(curPoint.isPoly){newMarker.polyType=curPoint.polyType}if(curPoint.customTabLength!=null){newMarker.customTabLength=curPoint.customTabLength}else{newMarker.customTabLength=null}for(var j=0;j<curPoint.attributes.length;j++){var curAttribute=curPoint.attributes[j];var attrType;switch(curAttribute.type){case"number":attrType=PAttribute.NUMBER;break;case"image":attrType=PAttribute.IMAGE;break;case"date":attrType=PAttribute.DATE;break;case"boolean":attrType=PAttribute.BOOLEAN;break;default:attrType=PAttribute.STRING;break}value="";if(curAttribute.value!=null){value=curAttribute.value}var columnName="";var unit="";var tabName="";var tabIndex="";if(curAttribute.columnName!=null){columnName=curAttribute.columnName}if(curAttribute.unit!=null){unit=curAttribute.unit}if(curAttribute.tabName!=null){tabName=curAttribute.tabName}if(curAttribute.tabIndex!=null){tabIndex=curAttribute.tabIndex}newMarker.addAttribute(new PAttribute(curAttribute.name,value,attrType,columnName,unit,tabName,tabIndex))}markers.push(newMarker)}return markers};POverlaySet.prototype.getFilterGroupByName=function(name){return this.displayfiltergroups[name]};POverlaySet.prototype.getSources=function(){return this.sources};POverlaySet.prototype.getSourceYear=function(){var sources=this.sources;var y=null;if(sources){for(var i=0;i<sources.length;i++){y=sources[i].year;if(y){break}}}return y};POverlaySetUtil=function(){};POverlaySetUtil.prototype.buildOverlaySet=function(data,onLoadFromSession){var self=this;if(data.isPoly===true&&(data.icon==null||typeof data.icon==="string"&&$.trim(data.icon)==="")){data.icon=PinIcons["polygon"]}else if(data.icon!=null&&!(data.icon instanceof Object)){data.icon=PinIcons[data.icon]}var overlaySet=new POverlaySet(data.id,data.icon,15);overlaySet.setLabel(data.name);if(overlaySet.isIFFDataset()){overlaySet.allowFiltersWithColorCode=true}if(overlaySet.displayfiltergroups===void 0){overlaySet.displayfiltergroups={}}overlaySet.colorcodes=_.map(data.colorcodes,function(colorCodeName){return PinIcons[colorCodeName]});if(overlaySet.colorcodes.length===0){if(data.icon&&data.icon.headpin){overlaySet.colorcodes=PinIcons[data.icon.headpin].colors}}var defaultColorCodeFilter=null;var defaultFilters=[];_.each(data.filters,function(displayFilterGroup){overlaySet.displayfiltergroups[displayFilterGroup.displayName]=_.map(displayFilterGroup.filters,function(filter){var iconOptions=buildFilterIconOptionsIFF(overlaySet,displayFilterGroup,filter);var f=new PAttributeFilter(displayFilterGroup.displayName,filter.values,filter.type,filter.displayName,displayFilterGroup.columnName,filter.attrType,filter.id,displayFilterGroup.id,iconOptions,filter.defaultOn);if(!onLoadFromSession&&f.defaultOn){if(f.id==0){defaultColorCodeFilter=f}else{defaultFilters.push(f)}}return f})});if(defaultFilters.length>0){overlaySet.setFilters(defaultFilters)}else if(defaultColorCodeFilter){var f=defaultColorCodeFilter;var ftrs=[];var displayfilters=overlaySet.displayfiltergroups[f.name];var m=displayfilters.length;for(var j=0;j<m;j++){if(displayfilters[j].values[0]!="COLORCODE")ftrs.push(displayfilters[j])}overlaySet.setFiltersByIcons(ftrs,overlaySet.colorcodes);overlaySet.filtergroups[f.name]=[];overlaySet.filtergroups[f.name].push(displayfilters[0])}if(isCultureBlocksSubwayDataset(overlaySet)){setDefaultSubwayFilters(overlaySet,overlaySet.displayfiltergroups)}overlaySet.sources=data.sources;overlaySet.type=data.type;overlaySet.isPoly=data.isPoly;overlaySet.hasLabels=data.labels;overlaySet.hideLabels=data.hidelabels;overlaySet.labelZoom=data.labelzoom;overlaySet.search=data.search;overlaySet.allowDL=data.allowDL;overlaySet.children=_.map(data.children,function(child){return self.buildOverlaySet(child)});overlaySet.child=data.child;overlaySet.description=data.description;overlaySet.map=map;if(data.isPoly){overlaySet.bdid=data.bdid;overlaySet.polycolor=data.polycolor;overlaySet.polystyle=data.polystyle}if(data.boundingBox){overlaySet.boundingBox=data.boundingBox}if(data.type==="dl"){overlaySet.owner=data.owner;overlaySet.ownerfirst=data.ownerfirst;overlaySet.ownerlast=data.ownerlast;overlaySet.created=data.created;overlaySet.perm=data.perm}return overlaySet};POverlaySetUtil.prototype.getSetIds=function(sets,type,includeChildren,includeMapBoundarySets){if(type==null||type==""){type=false}if(includeChildren==null||includeChildren!==true){includeChildren=false}if(includeMapBoundarySets==null){includeMapBoundarySets=false}var retVal=[];for(var i=0;i<sets.length;i++){var s=sets[i];if(s.id&&(type===false||type!==false&&type==s.type)&&(s.child!==true||s.child===true&&includeChildren)&&(s.withLayer==null||includeMapBoundarySets&&s.withLayer)){retVal.push(s.id)}}return retVal.join(",")};POverlaySetUtil.prototype.getFilterIds=function(sets){var filterIds=[];var getFilterIdsArray=function(set){var setFilterIds=[];for(groupName in set.filtergroups){var filters=set.filtergroups[groupName];for(var i=0;i<filters.length;i++){var curFilter=filters[i];if(curFilter.id==0){setFilterIds.push("c"+curFilter.groupId)}else{setFilterIds.push(curFilter.id)}}}return setFilterIds};for(var i=0;i<sets.length;i++){var curSet=sets[i];var curSetFilters=getFilterIdsArray(curSet);for(var j=0;j<curSet.children.length;j++){var childSetFilters=getFilterIdsArray(curSet.children[j]);curSetFilters=curSetFilters.concat(childSetFilters)}filterIds=filterIds.concat(curSetFilters)}return filterIds.join(",")}
;POverlaySetUtil.prototype.getChildFilter=function(parentFilter,childSet){var filters=childSet.displayfiltergroups[parentFilter.name];if(filters!=null){for(var i=0;i<filters.length;i++){var curFilter=filters[i];if(curFilter.columnName==parentFilter.columnName&&curFilter.columnType==parentFilter.columnType&&curFilter.valuesDisplay==parentFilter.valuesDisplay){return curFilter}}}return null};POverlaySetUtil.prototype.oldGetFilterIds=function(jFilters){var filterIds=[];for(var i in jFilters){if(jFilters[i]){for(var j in jFilters[i]){var jFilters2=jFilters[i][j];var l=jFilters2.length;for(var k=0;k<l;k++){var curFilter=jFilters2[k];if(curFilter.id==0){filterIds.push("c"+curFilter.groupId)}else{filterIds.push(curFilter.id)}}}}}return filterIds.join(",")};PPlace=function(id){if(id)this.id=id;else this.id=null;this.identifier=null;this.label=null;this.typeid=null;this.defid=null;this.bounds=null;this.centroid=null;this.vertices=null;this.area=null;this.pop=null;this.state=null;this.country=null};PPlace.prototype.getID=function(){return this.id};PPlace.prototype.getIdentifier=function(){return this.identifier};PPlace.prototype.getLabel=function(){return this.label};PPlace.prototype.getType=function(){return this.getTypeById(this.typeid)};PPlace.prototype.getDefinitionId=function(){return this.defid};PPlace.prototype.getBounds=function(){return this.bounds};PPlace.prototype.getCentroid=function(){return this.centroid};PPlace.prototype.getVertices=function(){return this.vertices};PPlace.prototype.getArea=function(){return this.area};PPlace.prototype.getPopulation=function(){return this.pop};PPlace.prototype.getState=function(){return this.state};PPlace.prototype.getDisplayState=function(){var state="";if(this.getState()&&this.getType()!=PPlaceType.CBSA&&this.getType()!=PPlaceType.STATE&&this.getType()!=PPlaceType.CDBG)state=", "+this.getState();return state};PPlace.prototype.getCountry=function(){return this.country};PPlace.prototype.getPlacesWithin=function(placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr){(new PClientGeocoder).getPlacesWithin(this,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr)};PPlace.prototype.getPlacesWithinCount=function(placetype,matrixId,defId,callback,overlap,quota,context){if(this.isAssembledAndSameDefinition(this._getDefinitionId(placetype,matrixId,defId))){callback.apply(this,[this.getAssembledCount()])}else{(new PClientGeocoder).getPlacesWithinCount(this,placetype,matrixId,defId,callback,overlap,quota,context)}};PPlace.prototype.getPlacesWithinPage=function(placetype,matrixId,defId,callback,overlap,maxResults,order,quota,context,offset,query){(new PClientGeocoder).getPlacesWithinPage(this,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,context,offset,query)};PPlace.prototype.getPlacesWithinCSV=function(placetype,matrixId,defId,overlap,order,quota,query){(new PClientGeocoder).getPlacesWithinCSV(this,placetype,matrixId,defId,overlap,order,quota,query)};PPlace.prototype.getPlacesContaining=function(placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr){(new PClientGeocoder).getPlacesContaining(this,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr)};PPlace.prototype.getPlacesContainingCount=function(placetype,matrixId,defId,callback,overlap,quota){if(this.isAssembledAndSameDefinition(this._getDefinitionId(placetype,matrixId,defId))){callback.apply(this,[this.getAssembledCount()])}else{(new PClientGeocoder).getPlacesContainingCount(this,placetype,matrixId,defId,callback,overlap,quota)}};PPlace.prototype.getPlacesOverlapping=function(placetype,matrixId,defId,callback,quota,maxResults,order){(new PClientGeocoder).getPlacesOverlapping(this,placetype,matrixId,defId,callback,quota,maxResults,order)};PPlace.prototype.getPlacesOverlappingCount=function(placetype,matrixId,defId,callback,quota){if(this.isAssembledAndSameDefinition(this._getDefinitionId(placetype,matrixId,defId))){callback.apply(this,[this.getAssembledCount()])}else{(new PClientGeocoder).getPlacesOverlappingCount(this,placetype,matrixId,defId,callback,quota)}};PPlace.prototype.getPlacesIntersecting=function(placetype,matrixId,defId,callback,quota,maxResults,order){(new PClientGeocoder).getPlacesIntersecting(this,placetype,matrixId,defId,callback,quota,maxResults,order)};PPlace.prototype.getPlacesIntersectingCount=function(placetype,matrixId,defId,callback,quota){if(this.isAssembledAndSameDefinition(this._getDefinitionId(placetype,matrixId,defId))){callback.apply(this,[this.getAssembledCount()])}else{(new PClientGeocoder).getPlacesIntersectingCount(this,placetype,matrixId,defId,callback,quota)}};PPlace.prototype.getPlacesIntersectingPage=function(placetype,matrixId,defId,callback,maxResults,order,quota,context,offset,query){(new PClientGeocoder).getPlacesIntersectingPage(this,placetype,matrixId,defId,callback,maxResults,order,quota,context,offset,query)};PPlace.prototype.getPlacesIntersectingCSV=function(placetype,matrixId,defId,order,quota,query){(new PClientGeocoder).getPlacesIntersectingCSV(this,placetype,matrixId,defId,order,quota,query)};PPlace.prototype.getAttributeSumFromMarkersWithin=function(overlayset,callback){(new PClientGeocoder).getAttributeSumFromMarkersWithin(this,overlayset,callback)};PPlace.prototype.getMarkersWithin=function(overlayset,callback){(new PClientGeocoder).getMarkersWithin(this,overlayset,callback)};PPlace.prototype.getMarkersWithinCSV=function(ids){(new PClientGeocoder).getMarkersWithinCSV(this,ids)};PPlace.prototype.getContainment=function(callback){(new PClientGeocoder).getPlaceContainmentByPlace(this,callback)};PPlace.prototype.getTypeById=function(){var type=boundaryTypes.getTypeById(this.typeid);return type};PPlace.prototype.getAggregateCount=function(placeType,matrixId,defId,callback,woverlap,wquota,wcontext){var self=this;if(this.isAssembledAndSameDefinition(this._getDefinitionId(placeType,matrixId,defId))){callback(this.getAssembledCount())}else{self.getPlacesWithinCount(placeType,matrixId,defId,function(placesWithinCount){callback(placesWithinCount)},woverlap,wquota,wcontext)}};PPlace.prototype.getAggregates=function(placeType,matrixId,defId,callback,woverlap,wmax,worder,wquota,coverlap,cmax,corder,cquota,attr){var self=this;if(this.isAssembledAndSameDefinition(this._getDefinitionId(placeType,matrixId,defId))){return callback(this.getAssembledPlaces())}if(self.getType()==placeType&&!(defId instanceof Array)){callback([])}else{self.getPlacesWithin(placeType,matrixId,defId,function(placesWithin){if(placesWithin.length>0){callback(placesWithin)}else{self.getPlacesContaining(placeType,matrixId,defId,function(placesContaining){callback(placesContaining)},coverlap,cmax,corder,cquota,attr)}},woverlap,wmax,worder,wquota,attr)}};PPlace.prototype.isCustomOrPoly=function(){return this.typeid==95||this.typeid==0};PPlace.prototype.isAssembledCustom=function(){return this.ctypeid&&this.ctypeid==2};PPlace.prototype.getAssembledPlaces=function(callback){return this.aplaces};PPlace.prototype.getAssembledType=function(){if(this.aplaces)return this.aplaces[0].getType();else return null};PPlace.prototype.getAssembledDefinition=function(){if(this.aplaces){return this.aplaces[0].getDefinitionId()}else{return null}};PPlace.prototype.getAssembledCount=function(){if(this.aplaces)return this.aplaces.length;else return null};PPlace.prototype.isAssembledAndSameType=function(type){return this.isAssembledCustom()&&this.getAssembledType().id==type.id};PPlace.prototype.isAssembledAndSameDefinition=function(defId){return this.isAssembledCustom()&&this.getAssembledDefinition()==defId};PPlace.prototype.isAssembledCustomInCurrentMatrix=function(){if(this.isAssembledCustom()){if(this.aplaces&&this.aplaces.length>0){return boundaryMatrix.isDefinitionIdInMatrix(this.aplaces[0].getDefinitionId())}}return false};PPlace.prototype._getDefinitionId=function(placetype,matrixId,defId){if(defId){return defId}else{return boundaryMatrix.getDefinitionIdForTypeId(placetype.getId(),matrixId)}};PPlaceContainmentWidget=function(map,node,placeorder,separator){this.map=map;this.background=node;if(placeorder)this.placeorder=placeorder;else this.placeorder=[PPlaceType.STATE,PPlaceType.COUNTY,PPlaceType.ZIP];if(separator)this.separator=separator;else this.separator=">";this.eventTypes=new Object;this.eventTypes.click="click";this.eventManager=new _eventManager;for(var ev in this.eventTypes)this.eventManager.registerEventID(ev);this.listeners=[]};PPlaceContainmentWidget.prototype.refresh=function(places){this.clearListeners();var placeString="";this.places=places;while(this.background.hasChildNodes())this.background.removeChild(this.background.firstChild);for(var i=0;i<this.placeorder.length;i++){for(var j=0;j<places.length;j++){if(this.placeorder[i].id==places[j].typeid){var separator=document.createElement("div");separator.style.styleFloat="left";separator.style.cssFloat="left";separator.style.paddingLeft="5px";separator.style.paddingRight="5px";separator.innerHTML=this.separator;this.background.appendChild(separator);var placeDiv=document.createElement("div");placeDiv.style.styleFloat="left";placeDiv.style.cssFloat="left";var placeLink=document.createElement("a");placeLink.href="#";placeLink.innerHTML=places[j].label;if(this.placeorder[i]==PPlaceType.COUNTY)placeLink.innerHTML+=" County";placeDiv.place=places[j];placeDiv.map=this.map;placeDiv.outerDiv=this.background;placeDiv.widget=this;placeDiv.highlight=this.highlight;this.listeners.push(PEvent.addListener(placeDiv,"click",function(){this.map.setCenterBounds(this.place.bounds);this.widget.eventManager.triggerEvent("click",this.place)}));placeDiv.appendChild(placeLink);this.background.appendChild(placeDiv)}}}if(this.background.firstChild)this.background.removeChild(this.background.firstChild)};PPlaceContainmentWidget.prototype.addListener=function(eventId,func){this.eventManager.registerForEvent(eventId,[],func)};PPlaceContainmentWidget.prototype.removeListener=function(event){this.eventManager.deregisterForEvent(event.id,event.obj,event.func)};PPlaceContainmentWidget.prototype.clearListeners=function(){for(var i=0;i<this.listeners.length;i++)PEvent.removeListener(this.listeners[i]);this.listeners=[]};PPlaceLoader=function(){this.loadCache={};this.mappingCache={};this.typeCache={};this.cdCache={};this.stateTypeCache={}};PPlaceLoader.prototype.load=function(ids,callback){var self=this;var places=[];var requestIds=[];for(var i=0;i<ids.length;i++){var curId=ids[i];if(this.loadCache[curId]!=null){places.push(this.loadCache[curId])}else{requestIds.push(curId)}}if(requestIds.length>0){requestIds=requestIds.join(",");ajax.call({url:PEnvironment.boundaryUrl+"&sty=pid&i="+requestIds,success:function(reqPlaces){for(var i=0;i<reqPlaces.length;i++){var curPlace=reqPlaces[i];var curId=curPlace.getID();if(self.loadCache[curId]==null){self.loadCache[curId]=curPlace}places.push(curPlace)}callback(places)}})}else{callback(places)}};PPlaceLoader.prototype.loadFIPS=function(fips,defs,parms,callback){var parmString="";if(defs&&defs.length>0){parmString="&di="+defs.join(",")}if(parms){for(var i in parms){parmString+="&"+i+"="+parms[i]}}ajax.call({url:PEnvironment.boundaryUrl+"&sty=fips&i="+fips+parmString,success:callback})};PPlaceLoader.prototype.loadOneToOne=function(bids,defs,includeNameChange,includeFiftyPercent,callback){this._loadOtoOrSimilar("oto",bids,defs,callback,includeNameChange,includeFiftyPercent)};PPlaceLoader.prototype.loadSimilar=function(bids,defs,callback){this._loadOtoOrSimilar("sim",bids,defs,callback)};PPlaceLoader.prototype.loadType=function(type,order,callback){var self=this;var typeId=type.getId();if(order==null){order=PPlaceOrder.STATE_CANONICALNAME}var keyId=typeId+"_"+order;if(this.typeCache[keyId]!=null){callback(this.typeCache[keyId])}else{ajax.call({url:PEnvironment.boundaryUrl+"&sty=type&pti="+encodeURIComponent(typeId)+"&ord="+encodeURIComponent(order),success:function(places){self.typeCache[keyId]=places;callback(places)}})}};PPlaceLoader.prototype.loadStateAllType=function(state,type,callback){var self=this;var typeId=type.getId();var keyId=typeId+"_"+state;if(this.stateTypeCache[keyId]!=null){callback(this.stateTypeCache[keyId])}else{ajax.call({url:PEnvironment.boundaryUrl+"&sty=sbtype&pti="+typeId+"&st="+state,success:function(bounds){self.stateTypeCache[keyId]=bounds;callback(bounds)}})}};PPlaceLoader.prototype.loadCongressionalDistricts=function(state,callback){var self=this;state=state.toLowerCase();if(this.cdCache[state]!=null){callback(this.cdCache[state])}else{ajax.call({url:PEnvironment.boundaryUrl+"&sty=cd&st="+state,success:function(places){self.cdCache[state]=places;callback(places)}})}};PPlaceLoader.prototype._loadOtoOrSimilar=function(which,bids,defs,callback,includeNameChange,includeFiftyPercent){var self=this;var places={};includeNameChange=includeNameChange!=null&&includeNameChange===false?"0":"1";includeFiftyPercent=includeFiftyPercent!=null&&includeFiftyPercent===true?"1":"0";var defKey="";var defArg="";if(defs!=null&&defs.length>0){defs.sort();var defList=defs.join(",");defKey="_"+defList;defArg="&di="+defList}var requestIds=[];for(var i=0;i<bids.length;i++){var curId=bids[i];var curIdKey=curId+"_"+which+"_"+includeNameChange+"_"+includeFiftyPercent+defKey;if(this.mappingCache[curIdKey]!=null){places[curId]=this.mappingCache[curIdKey]}else{requestIds.push(curId)}}if(requestIds.length>0){requestIds=requestIds.join(",");ajax.call({url:PEnvironment.boundaryUrl+"&sty="+which+"&i="+requestIds+defArg+"&inc="+includeNameChange+"&ifp="+includeFiftyPercent,success:function(mappings){for(boundaryId in mappings){var curIdKey=boundaryId+"_"+includeNameChange+"_"+includeFiftyPercent+defKey;if(self.mappingCache[curIdKey]==null){self.mappingCache[curIdKey]=mappings[boundaryId]}places[boundaryId]=mappings[boundaryId]}callback(places)}})}else{callback(places)}};PPlaceOrder=function(){};PPlaceSearchBox=function(node){this.eventTypes=new Object;this.eventTypes.submit="submit";this.eventTypes.response="response";this.eventManager=new _eventManager;for(var ev in this.eventTypes)this.eventManager.registerEventID(ev);this.type=null;this.textbox=document.createElement("input");this.textbox.type="text";this.textbox.style.width="100%";this.textbox.style.height="100%";var usStates=document.createElement("select");usStates.style.display="none";usStates.style.width="25%";usStates.style.height="100%";usStates.style.marginRight="10px";this.addState=function(stateName,fips){var o=document.createElement("option");o.value=fips;o.innerHTML=stateName;var l=stateName.length;if(l>20)o.style.fontSize="12px";else if(l>15)o.style.fontSize="14px";usStates.appendChild(o)};this.addState("Alabama","01");this.addState("Alaska","02");this.addState("Arizona","04");this.addState("Arkansas","05");this.addState("California","06");this.addState("Colorado","08");this.addState("Connecticut","09");this.addState("Delaware",10);this.addState("District of Columbia",11);this.addState("Florida",12);this.addState("Georgia",13);this.addState("Hawaii",15);this.addState("Idaho",16);this.addState("Illinois",17);this.addState("Indiana",18);this.addState("Iowa",19);this.addState("Kansas",20);this.addState("Kentucky",21);this.addState("Louisiana",22);this.addState("Maine",23);this.addState("Maryland",24);this.addState("Massachusetts",25);this.addState("Michigan",26);this.addState("Minnesota",27);this.addState("Mississippi",28);this.addState("Missouri",29);this.addState("Montana",30);this.addState("Nebraska",31);this.addState("Nevada",32);this.addState("New Hampshire",33);this.addState("New Jersey",34);this.addState("New Mexico",35);this.addState("New York",36);this.addState("North Carolina",37);this.addState("North Dakota",38);this.addState("Ohio",39);this.addState("Oklahoma",40);this.addState("Oregon",41);this.addState("Pennsylvania",42);this.addState("Rhode Island",44);this.addState("South Carolina",45);this.addState("South Dakota",46);this.addState("Tennessee",47);this.addState("Texas",48);this.addState("Utah",49);this.addState("Vermont",50);this.addState("Virginia",51);this.addState("Washington",53);this.addState("West Virginia",54);this.addState("Wisconsin",55);this.addState("Wyoming",56);this.textboxState=usStates;this.textboxCounty=document.createElement("input");this.textboxCounty.type="text";this.textboxCounty.style.width="45%";this.textboxCounty.style.height="100%";this.textboxCounty.style.display="none";this.textboxCounty.style.marginRight="10px";var box=this;PEvent.addListener(this.textbox,"keydown",function(e){e=e?e:event?event:null;if(e&&e.keyCode==13)box.submit()});PEvent.addListener(this.textboxState,"change",function(e){box.textboxCounty.focus()});PEvent.addListener(this.textboxCounty,"change",function(e){box.textbox.focus()});node.appendChild(this.textboxState);node.appendChild(this.textboxCounty);node.appendChild(this.textbox)};PPlaceSearchBox.prototype.addListener=function(eventId,func){this.eventManager.registerForEvent(eventId,[],func)};PPlaceSearchBox.prototype.setType=function(type){if(type==PPlaceType.CENSUSTRACT){this.textboxState.style.display="inline";this.textboxCounty.style.display="inline";this.textbox.style.width="20%"}else{this.textboxState.style.display="none";this.textboxCounty.style.display="none";this.textbox.style.width="100%"}if(type){this.type=[type]}else{this.type=null}};PPlaceSearchBox.prototype.setTypes=function(types){if(types){this.type=types}else{this.type=this.defaultType}};PPlaceSearchBox.prototype.setDefaultTypes=function(types){this.defaultType=types};PPlaceSearchBox.prototype.getSearchString=function(){return this.textbox.value};PPlaceSearchBox.prototype.cleanString=function(s){if(s.search("e.g.,")==0){return""}else{return s.replace(/^\s+|\s+$/g,"")}};PPlaceSearchBox.prototype.submit=function(){var geocoder=new PClientGeocoder;this.eventManager.triggerEvent("submit");var box=this;var text=this.getSearchString();var type=this.type;if(text.search("e.g.,")==0){text=text.replace(/e.g., "/,"");text=text.replace(/"/,"")}var matches=/^(-?\d+(\.\d+)?)\s*,\s*(-?\d+(\.\d+))?$/.exec(text);if(this.type&&this.type[0]==PPlaceType.CENSUSTRACT){var d=this.textboxState;var stateText=d.options[d.selectedIndex].value;var countyText=this.textboxCounty.value;if(this.cleanString(countyText)==""){alert("Please enter County name.");return}if(this.cleanString(text)!=""){var f=function(places){box.eventManager.triggerEvent("response",places)};var path=["states","fips",stateText,"counties","names",countyText,"censustracts","numbers",text];path=path.join("/");placeLoader.loadByPath(path,f)}}else if((PEnvironment.pageName=="reports"||PEnvironment.pageName=="report_area")&&matches){var lat=parseFloat(matches[1]);var lng=parseFloat(matches[3]);var address=new PAddress(lat+","+lng,lng,lat);box.eventManager.triggerEvent("response",address)}else{if(this.cleanString(text)!=""){geocoder.getPlace(text,function(places){if(places.length>0)box.eventManager.triggerEvent("response",places);else geocoder.getLocations(text,function(address){box.eventManager.triggerEvent("response",address)})},5,PPlaceOrder.POPULATION,box.type)}}if(search.tab=="searchthemap")search.searchthemap=search.textbox.value;else if(search.tab=="county")search.county=search.textbox.value;else if(search.tab=="census")search.census=search.textbox.value};PPlaceType=function(o){$.extend(this,o);this.minScale=0;this.maxScale=1e9};PPlaceType.prototype.getId=function(){return this.id};PPlaceType.prototype.getName=function(){var n=this.getSimpleName();return n};PPlaceType.prototype.getDisplayName=function(){var n=this.display_name;return n};PPlaceType.prototype.getSimpleName=function(){var n=this.simple_name||this.getDisplayName();return n};PPlaceType.prototype.getCustomDisplayName=function(){if(productProperty.exists("search_boundary_type_custom_labels")){customLabels=productProperty.getValue("search_boundary_type_custom_labels");if(customLabels[this.id]){return customLabels[this.id]}}return this.getDisplayName()};PPlaceType.prototype.getPath=function(){return this.path};PPlaceType.prototype.getPluralName=function(){var displayName=this.getDisplayName().trim();if(displayName!=null&&displayName.length>0){if(displayName.substring(displayName.length-1).toLowerCase()=="s"){return displayName}else{return displayName.replace(/y$/,"ie")+"s"}}else{return""}};PPlaceType.prototype.isCongressional=function(){if(this==PPlaceType.CONGRESSIONAL||this==PPlaceType.CONGRESSIONAL_112){return true}else{return false}};PPlaceType.prototype.isForIndicator=function(){var b=false;if(this.geo_boundary_type_indicator_template_id!=null){b=true}return b};PPlaceType.prototype.isForContainments=function(){var b=false;if(this.geo_boundary_type_containment_template_id!=null){b=true}return b};function PPlaceTypeConfig2(){var placeTypes={};var emptySet=[];var maxZoom={};var minZoom={};var none="default";this.set=function(zoom,placetypes,aggrule){if(arguments.length<2){return false}if(arguments.length<=2){aggrule=none}if(!placeTypes[aggrule]){placeTypes[aggrule]={}}placeTypes[aggrule][zoom]=placetypes;if(maxZoom[aggrule]||maxZoom[aggrule]===0){if(zoom>maxZoom[aggrule]){maxZoom[aggrule]=zoom}}else{maxZoom[aggrule]=zoom}if(minZoom[aggrule]||minZoom[aggrule]===0){if(zoom<minZoom[aggrule]){minZoom[aggrule]=zoom}}else{minZoom[aggrule]=zoom}return true};this.get=function(zoom,aggrule){if(arguments.length<1){return emptySet}if(arguments.length==1||!placeTypes[aggrule]){aggrule=none}if(placeTypes[aggrule]&&placeTypes[aggrule][zoom]){return placeTypes[aggrule][zoom]}return emptySet};this.getBestFitIn=function(zoom,aggrule){if(arguments.length<1){return emptySet}if(arguments.length==1||!placeTypes[aggrule]){aggrule=none}if(placeTypes[aggrule]&&(maxZoom[aggrule]||maxZoom[aggrule]===0)){if(zoom>maxZoom[aggrule]){zoom=maxZoom[aggrule]}var perfectFit=this.get(zoom,aggrule);if(perfectFit.length>0){return perfectFit}for(var z=zoom;z<=maxZoom[aggrule];++z){if(placeTypes[aggrule][z]){return placeTypes[aggrule][z]}}}return emptySet};this.getBestFitOut=function(zoom,aggrule){if(arguments.length<1){return emptySet}if(arguments.length==1||!placeTypes[aggrule]){aggrule=none}if(placeTypes[aggrule]&&(minZoom[aggrule]||minZoom[aggrule]===0)){if(zoom<minZoom[aggrule]){zoom=minZoom[aggrule]}var perfectFit=this.get(zoom,aggrule);if(perfectFit.length>0){return perfectFit}for(var z=zoom;z>=minZoom[aggrule];--z){if(placeTypes[aggrule][z]){return placeTypes[aggrule][z]}}}return emptySet};this.setAvail=function(placetypes,aggrule){placeTypes[aggrule].avail=placetypes};this.getAvail=function(aggrule){return placeTypes[aggrule].avail};this.getAllPlaceTypes=function(aggrule){var allPlaceTypes=[];if(placeTypes[aggrule]){var curAggs=placeTypes[aggrule];for(zoom in curAggs){var curZoomAggs=curAggs[zoom];for(var i=0;i<curZoomAggs.length;i++){var curPlaceType=curZoomAggs[i];if($.inArray(curPlaceType,allPlaceTypes)==-1){allPlaceTypes.push(curPlaceType)}}}}return allPlaceTypes}}PPoint=function(arg1,y){if(arg1 instanceof PAddress){this.x=arg1.x;this.y=arg1.y}else{this.x=arg1;this.y=y}};PPoint.prototype.equals=function(other){if(this.x==other.x&&this.y==other.y)return true;else return false};PPoint.prototype.toString=function(){return"("+this.x+", "+this.y+")"};PPolyCreator=function(options){if(options)this.options=options;else this.options=new PPolyCreatorOptions;$("#map").append('<div id="custom-regions__map-options">');this.click=null;this.points=[];this.savePoints=[];this.polyline=null;this.name=null;this.description=null;this.buildingOverlays=[];this.eventTypes=new Object;this.eventTypes.addpoly="addpoly";this.eventTypes.savepoly="savepoly";this.eventTypes.saveAssembledPoly="saveassemblepoly";this.eventTypes.saveCirclePoly="savecirclepoly";this.eventTypes.removepoly="removepoly";this.eventTypes.renamepoly="renamepoly";this.eventTypes.deletepoly="deletepoly";this.eventManager=new _eventManager;for(var ev in this.eventTypes)this.eventManager.registerEventID(ev);this.buildType=null;this.DRAW={};this.DRAW.title="Show Boundaries in Region:";this.DRAW.regions={};this.DRAW.ctypeid="1";this.ASSEMBLE={};this.ASSEMBLE.title="<span>Select Areas on the Map By:</span>";this.ASSEMBLE.polygons=[];this.ASSEMBLE.places=[];this.ASSEMBLE.placeids=[];this.ASSEMBLE.ctypeid="2";this.CIRCLE={};this.CIRCLE.title="Show Boundaries in Region:";this.CIRCLE.centerpoint=null;this.CIRCLE.address=null;this.CIRCLE.radius=null;this.CIRCLE.ctypeid="3";this.customPlaces={};this.customPlacesCount=0;this.polygonsWithin=[];this.defaultcolor="#e68000";this.defaultopacity="0.7";this.defaultfill=false;this.defaultweight=5;if(isWidgetPage()){var text=productProperty.getValue("widget_custom_region_button_text")||"Draw Report Area";this.widgetButtonText=text;var $crButton=$(".custom-region-button__widget");if($crButton.length){$crButton.tooltip({title:text,placement:"bottom",container:"body"});$crButton.on("show.bs.tooltip",function(){if($(this).find(".text").is(":visible")){return false}})}}};PPolyCreator.prototype.addListener=function(eventId,func){this.eventManager.registerForEvent(eventId,[],func)};PPolyCreator.prototype.removeListener=function(eventId,func){this.eventManager.deregisterForEvent(eventId,[],func)};PPolyCreator.prototype.attachMap=function(map){this.map=map;this.initCustomRegionType()};PPolyCreator.prototype.detachMap=function(){if(this.map&&this.click)this.map.removeListener(this.click)};PPolyCreator.prototype.cancelPoly=function(stillBuilding){if(!stillBuilding)this.resetBuildType();this.resetBuildOptions();this.clearBuildingOverlays();this.boundaryWidget.populate()};PPolyCreator.prototype.clearBuildingOverlays=function(){var overlays=this.buildingOverlays;for(var i=0;i<overlays.length;i++){this.map.removeOverlay(overlays[i])}this.buildingOverlays=[]};PPolyCreator.prototype.resetBuildOptions=function(){this.polyline=null;this.points=[];this.places=[];this.name=null;this.description=null;this.ASSEMBLE.verts=[];this.ASSEMBLE.places=[];this.boundaryWidget.removeMapLayers();this.assembleInfoWidget.update();this.CIRCLE.address=null;this.CIRCLE.centerpoint=null;this.CIRCLE.centeraddress=null;if(this.map)this.map.closeInfoWindow()};PPolyCreator.prototype.reset=function(){this.resetBuildOptions();this.resetPlaces();this.toggleWidgets()};PPolyCreator.prototype.resetPlaces=function(){this.customPlaces={};this.customPlacesCount=0};PPolyCreator.prototype.addPoly=function(point,radius,places){if(radius){this.eventManager.triggerEvent("addpoly",[point])}else if(places){point=this.ASSEMBLE.places[0].getVertices()[0][0];this.eventManager.triggerEvent("addpoly",[point])}if(point.equals(this.points[0])){this.points.push(point);this.clearBuildingOverlays();var polygon=new PPolygon(this.points,this.options.poly.color,this.options.poly.weight,this.options.poly.opacity,this.options.poly.fill);this.buildingOverlays.push(polygon);this.map.addOverlay(polygon);this.savePoints=this.points.slice();this.points=[];this.eventManager.triggerEvent("addpoly",this.savePoints)}};PPolyCreator.prototype.addPointLine=function(point){this.points.push(point);if(this.map){var marker=new PMarker(point,this.options.icon);this.buildingOverlays.push(marker);this.map.addOverlay(marker);if(this.points.length>1){var polyline=new PPolyline([point,this.points[this.points.length-2]],this.options.line.color,this.options.line.weight,this.options.line.opacity);this.buildingOverlays.push(polyline);this.map.addOverlay(polyline)}}};PPolyCreator.prototype.saveDrawPoly=function(){if(this.name==null||this.name.trim()==""){alerter.popup("A custom region title is required.","OK");return}if(this.savePoints.length<4)return;if(!this.savePoints[0].equals(this.savePoints[this.savePoints.length-1]))this.savePoints.push(this.savePoints[0]);this.clearBuildingOverlays();var verts=[];for(var i=0;i<this.savePoints.length;i++){verts.push([this.savePoints[i].lng(),this.savePoints[i].lat()])}var region={name:this.name,desc:this.description,verts:[verts]};var postData=JSON.stringify(region);var self=this;var saveError=function(){alerter.popup("There was an error saving your custom region.","OK")};ajax.call({type:"POST",url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&sbr=1&act=c&crty="+this.DRAW.ctypeid,dataType:"json",data:postData,success:function(result){if(result==null||result.cr==null||!(result.cr.status&&result.cr.status=="ok")||result.cr.regions==null||result.cr.regions.length<1){saveError()}else{var newPlace=self.createPlaceFromObject(result.cr.regions[0]);self.eventManager.triggerEvent("savepoly",[newPlace])}},error:function(){saveError()}})};PPolyCreator.prototype.sharePolyDialog=function(id,label){if(!PEnvironment.isPolicyMap&&PEnvironment.isSiteLicense&&!isAutoLoginUser()){var allUsersText;var individualUserText;if(productProperty.getValue("site_license_university")){allUsersText="All University Users";individualUserText="Individual University User"}else{allUsersText="All Site License Users";individualUserText="Individual Site License User"}var alertText="<div class='alertDialogTitle'>Share Region</div><div class='alertDialogHR'></div>Share this custom region with:<br /><div style='margin: 10px 5px;'><input id='shareRegionGeneral' type='radio' name='shareRegionOption' value='all' checked> <label for='shareRegionGeneral' style='margin-right: 35px;'>"+allUsersText+"</label><br /><input id='shareRegionIndividual' type='radio' name='shareRegionOption' value='individual'> <label for='shareRegionIndividual'>"+individualUserText+"</label></div>";alerter.popup(alertText,"Cancel","Share",function(){var whichShare=$("input[name='shareRegionOption']:checked").val();if(whichShare=="all"){polycreator.sharePolyWithSiteLicense(id,function(message){alerter.popup(message,"OK")})}else{genericAlertDialog({template:"mysavedwork",action:"shareregion",cpid:id,regionname:label})}})}else{genericAlertDialog({template:"mysavedwork",action:"shareregion",cpid:id,regionname:label})}};PPolyCreator.prototype.sharePoly=function(id,shareTo,message,callback){var parms="&crid="+id+"&crst="+encodeURIComponent(shareTo);if(message!=null&&message.trim()!=""){parms+="&crmsg="+encodeURIComponent(message)}var who=PEnvironment.isSiteLicense?"site license user":"subscriber";ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&act=s"+parms,dataType:"json",success:function(result){if(result!=null&&result.cr!=null&&result.cr.status!=null){if(result.cr.status=="nouser"){callback("The email address you entered does not match a "+who+" in our system. Please check the email address and try again.")}else if(result.cr.status=="thisuser"){callback("You must specify another "+who+" to share a region.")}else if(result.cr.status=="ok"){callback("The region was sent successfully.")}else{callback("There was an error sharing your custom region.")}}else{callback("There was an error sharing your custom region.")}},error:function(){callback("There was an error sharing your custom region.")}})};PPolyCreator.prototype.sharePolyWithSiteLicense=function(id,callback){var parms="&crid="+id+"&crst=all";ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&act=s"+parms,dataType:"json",success:function(result){if(result!=null&&result.cr!=null&&result.cr.status!=null){if(result.cr.status=="ok"){callback("The region was sent successfully.")}else{callback("There was an error sharing your custom region.")}}else{callback("There was an error sharing your custom region.")}},error:function(){callback("There was an error sharing your custom region.")}})};PPolyCreator.prototype.renamePoly=function(id,newName,callback){ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&act=r&crid="+id+"&crn="+encodeURIComponent(newName),dataType:"json",success:function(result){callback(result!=null&&result.cr!=null&&result.cr.status!=null&&result.cr.status=="ok")},error:function(){callback(false)}});this.eventManager.triggerEvent("renamepoly",id,newName)};PPolyCreator.prototype.renamePolyDialog=function(id,label){genericAlertDialog({template:"mysavedwork",action:"renameregion",id:id,regionname:label,type:"region"})};PPolyCreator.prototype.deletePoly=function(id,callback){
var self=this;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&act=d&crid="+id,dataType:"json",success:function(result){if(result!=null&&result.cr!=null&&result.cr.status!=null&&result.cr.status=="ok"){callback(true);self.eventManager.triggerEvent("deletepoly",id)}else{callback(false)}},error:function(){callback(false)}})};PPolyCreator.prototype.load=function(ids,callback){var self=this;var idString;if(_.isArray(ids)){idString=ids.join(",")}else{idString=ids}if(idString==""||idString==null){return[]}ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&act=g&crid="+idString,dataType:"json",success:function(result){if(result==null||result.cr==null||!(result.cr.status&&result.cr.status=="ok")||result.cr.regions==null||result.cr.regions.length<1){callback([])}else{var places=[];for(var i=0;i<result.cr.regions.length;i++){places.push(self.createPlaceFromObject(result.cr.regions[i]))}callback(places)}},error:function(){callback([])}})};PPolyCreator.prototype.polyload=function(bid,pname,plat,plng,callback){var url=PEnvironment.dataServicesUrl+"?ty=data&t=cr&act=p&pbdid="+bid+"&plat="+encodeURIComponent(plat)+"&plng="+encodeURIComponent(plng)+"&pname="+encodeURIComponent(pname);this._polyloadRequest(url,callback)};PPolyCreator.prototype.polyloadByItemId=function(datasetId,itemId,callback){var url=PEnvironment.dataServicesUrl+"?ty=data&t=cr&act=p&did="+datasetId+"&iid="+itemId;this._polyloadRequest(url,callback)};PPolyCreator.prototype.polyloadFromReportObject=function(reportObject,callback){if(reportObject.bid!=null&&reportObject.areaName!=null&&reportObject.plat!=null&&reportObject.plng!=null){this.polyload(reportObject.bid,reportObject.areaName,reportObject.plat,reportObject.plng,callback)}else if(reportObject.did!=null&&reportObject.polyid!=null){this.polyloadByItemId(reportObject.did,reportObject.polyid,callback)}};PPolyCreator.prototype._polyloadRequest=function(url,callback){var self=this;ajax.call({url:url,dataType:"json",success:function(result){if(result==null||result.cr==null||!(result.cr.status&&result.cr.status=="ok")||result.cr.regions==null||result.cr.regions.length<1){callback([])}else{var newPlace=self.createPlaceFromObject(result.cr.regions[0]);callback([newPlace])}},error:function(){callback([])}})};PPolyCreator.prototype.loadByUser=function(callback){var self=this;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&act=ga",dataType:"json",success:function(result){if(result&&result.cr&&result.cr.status&&result.cr.status=="ok"&&result.cr.regions){var places=[];for(var i=0;i<result.cr.regions.length;i++){places.push(self.createPlaceFromObject(result.cr.regions[i]))}callback(places)}}})};PPolyCreator.prototype.initDrawRegion=function(){var polycreator=this;this.detachMap();this.click=PEvent.addListener(this.map,"click",function(overlay,point){if(overlay&&polycreator.points.length<3){var text="You need at least one more point to complete a proper custom region. Click OK and continue where you left off to finish your custom region.";alerter.popup(text,"OK")}else if(overlay){polycreator.addPoly(overlay.point)}else if(point){polycreator.addPointLine(point)}})};PPolyCreator.prototype.addPolyMarker=function(place,polylines,map){if(!this.map&&map)this.map=map;var point1=polylines[0].points[0];var midpos=Math.round(polylines[0].points.length/2);var point2=polylines[0].points[midpos];var icon=new PIcon(PIcon.POINT);icon.iconSize=new PSize(12,12);icon.shadow="";icon.image="/images/remove_icon_active.png";var clearmarker=new PMarker(point2,icon);clearmarker.buildtype=this.buildType;$(clearmarker.image).addClass("custom-region-marker");icon.image="/images/pins/polygon_red.png";var infomarker=new PMarker(point1,icon);$(infomarker.image).addClass("custom-region-marker");clearmarker.image.index=this.getCustomPlacesCount();clearmarker.image.polylines=polylines;clearmarker.image.polycreator=this;clearmarker.image.infomarker=infomarker;clearmarker.image.clearmarker=clearmarker;clearmarker.image.place=place;this.customPlaces[place.id].markers=[infomarker,clearmarker];infomarker.image.infomarker=infomarker;infomarker.image.place=place;PEvent.addListener(infomarker,"click",function(){var content=PMIdentificationPrinter.printCustomPolyPlaces(this.place);this.marker.openInfoWindowHtml(content,P.constants.infoWindowTypeCustomRegion)});PEvent.addListener(clearmarker,"click",function(e){this.polycreator.removeCustomRegionFromMap(this.place);e.cancelBubble=true;if(e.stopPropagation){e.stopPropagation()}});this.map.addOverlay(clearmarker);this.map.addOverlay(infomarker)};PPolyCreator.prototype.saveAssemblePoly=function(){if(this.name==null||this.name.trim()==""){alerter.popup("A custom region title is required.","OK");return}this.map.closeInfoWindow();this.boundaryWidget.hide();this.assembleInfoWidget.hide();this.showSavingDialog();var places=this.ASSEMBLE.places;this.clearBuildingOverlays();var pids=[];for(var p=0;p<places.length;p++){pids.push(places[p].id)}var region={name:this.name,desc:this.description,bids:pids,defid:places[0].getDefinitionId()};var postData=JSON.stringify(region);var self=this;var saveError=function(){alerter.popup("There was an error saving your custom region.","OK")};ajax.call({type:"POST",url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&sbr=1&act=c&crty="+this.ASSEMBLE.ctypeid,dataType:"json",data:postData,success:function(result){if(result==null||result.cr==null||!(result.cr.status&&result.cr.status=="ok")||result.cr.regions==null||result.cr.regions.length<1){saveError()}else{var newPlace=self.createPlaceFromObject(result.cr.regions[0]);self.eventManager.triggerEvent("savepoly",[newPlace])}},error:function(){saveError()}})};PPolyCreator.prototype.saveCirclePoly=function(){if(this.name==null||this.name.trim()==""){alerter.popup("A custom region title is required.","OK");return}this.clearBuildingOverlays();var points=this.CIRCLE.points;var verts=[];for(var i=0;i<points.length;i++){verts.push([points[i].lng(),points[i].lat()])}var region={name:this.name,desc:this.description,verts:[verts],rad:this.CIRCLE.radius};if(this.CIRCLE.address){region.caddr=this.CIRCLE.address}var postData=JSON.stringify(region);var self=this;var saveError=function(){alerter.popup("There was an error saving your custom region.","OK")};ajax.call({type:"POST",url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&sbr=1&act=c&crty="+this.CIRCLE.ctypeid,dataType:"json",data:postData,success:function(result){if(result==null||result.cr==null||!(result.cr.status&&result.cr.status=="ok")||result.cr.regions==null||result.cr.regions.length<1){saveError()}else{var newPlace=self.createPlaceFromObject(result.cr.regions[0]);self.eventManager.triggerEvent("savepoly",[newPlace])}},error:function(){saveError()}})};PPolyCreator.prototype.initAssembleRegion=function(type,defId){this.resetType();if(this.isBuildOn())this.assembleInfoWidget.show();this.detachMap();var polycreator=this;this.click=PEvent.addListener(this.map,"click",function(overlay,point){if(overlay)return;polycreator.addPlace(type,defId,point)})};PPolyCreator.prototype.removeAssembledPlaceIfExists=function(place){var assplaces=this.ASSEMBLE.places;var assverts=this.ASSEMBLE.verts;for(var j=0;j<assplaces.length;j++){if(assplaces[j].id==place.id){for(var p=0;p<assplaces[j].savedPolys.length;p++)map.removeOverlay(assplaces[j].savedPolys[p]);assplaces.splice([j],1);assverts.splice([j],1);polycreator.assembleInfoWidget.update();return true}}return false};PPolyCreator.prototype.addPlace=function(type,defId,point){var geocoder=new PClientGeocoder;geocoder.getPlacesContaining(point,type,null,defId,function(places){var place=places[0];if(places.length==0){var latestMatrixId=boundaryMatrix.getMatrixOrder()[0];var def=boundaryMatrix.getDefinitionForTypeId(type.getId(),latestMatrixId);var name=def.displayName;alerter.popup("There is no "+name+" located here. Try another location or select a different type of area from the menu.");return}if(type==PPlaceType.CITY){for(var i=0;i<places.length;i++){if(places[i].state!=null)place=places[i]}}var verts=place.getVertices();var assverts=polycreator.ASSEMBLE.verts;var assplaces=polycreator.ASSEMBLE.places;place.savedPolys=[];for(var i=0;i<verts.length;i++){if(i==0){if(polycreator.removeAssembledPlaceIfExists(place))return true}var polygon=new PPolygon(verts[i],"#eb5920",1,.5,"#ffffff");polycreator.ASSEMBLE.polygons.push(polygon);polycreator.buildingOverlays.push(polygon);polycreator.map.addOverlay(polygon);polycreator.ASSEMBLE.lastpoint=point;assverts.push(verts[i]);place.savedPolys.push(polygon);if(i==verts.length-1)assplaces.push(place);polycreator.assembleInfoWidget.update()}})};PPolyCreator.prototype.showSaveInfoWindow=function(point){var polycreator=this;var html="<div class='polycreatorInfoBubble'>";html+="Name: <input class='nameField' type='text' maxlength='64' onchange='polycreator.name=this.value;' /><br /><br />";html+="Description:<br /><textarea maxlength='1024' onchange='polycreator.description=this.value;' cols='20' rows='3' /></textarea><br />";html+="<div id='crButtons' class='buttons'></div>";html+="</div>";if(this.buildType==this.DRAW){var icon=new PIcon(PIcon.POINT);icon.iconSize=new PSize(12,12);icon.shadow="";icon.image="/images/pins/polygon_red.png";var marker=new PMarker(point,icon);marker.image.point=point;PEvent.addListener(marker,"click",function(){polycreator.showSaveInfoWindow(this.point)});this.buildingOverlays.push(marker);this.map.addOverlay(marker);marker.openInfoWindowHtml(html);this.points=[]}else if(this.buildType==this.ASSEMBLE){if(this.ASSEMBLE.places.length==0){customAlert('To create an Assembled Custom Region, click inside the boundaries you wish to include and when you are finished, click "Save Region" to name your region.');return}this.map.openInfoWindowHtml(point,html)}else if(this.buildType==this.CIRCLE){var icon=new PIcon(PIcon.POINT);icon.iconSize=new PSize(12,12);icon.shadow="";icon.image="/images/pins/polygon_red.png";var marker=new PMarker(point,icon);marker.image.point=point;PEvent.addListener(marker,"click",function(){polycreator.showSaveInfoWindow(this.point)});this.buildingOverlays.push(marker);this.map.addOverlay(marker);marker.openInfoWindowHtml(html);this.points=[]}var saveText="Save";if(PEnvironment.pageName=="widget"){saveText="Done"}var saveButton=$("<img />");saveButton.attr({src:PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&w=76&h=24&tx="+saveText+"&sid="+PEnvironment.productId,border:"0",alt:saveText});saveButton.click(function(e){e.cancelBubble=true;if(e.stopPropagation){e.stopPropagation()}var buildType=polycreator.buildType;if(buildType==polycreator.DRAW){polycreator.saveDrawPoly()}else if(buildType==polycreator.ASSEMBLE){polycreator.saveAssemblePoly()}else if(buildType==polycreator.CIRCLE){polycreator.saveCirclePoly()}});var cancelButton=$("<img />");cancelButton.attr({src:PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&w=76&h=24&tx=Cancel&sid="+PEnvironment.productId,border:"0",alt:"Cancel"});cancelButton.click(function(e){e.cancelBubble=true;if(e.stopPropagation){e.stopPropagation()}polycreator.cancelPoly(true)});$("#crButtons").append(saveButton,cancelButton)};PPolyCreator.prototype.resetType=function(){this.ASSEMBLE.verts=[];this.ASSEMBLE.places=[];var polygons=this.ASSEMBLE.polygons;for(var i=0;i<polygons.length;i++){map.removeOverlay(polygons[i])}this.assembleInfoWidget.update()};PPolyCreator.prototype.initRadiusRegion=function(){var polycreator=this;this.clearBuildingOverlays();this.detachMap();var that=this;this.click=PEvent.addListener(this.map,"click",function(overlay,point){if(overlay)return;var searchValue=Math.round(point.lat()*1e5)/1e5+","+Math.round(point.lng()*1e5)/1e5;if(isCBClone()){var miles=that.circleWidget.$radiusElem.val();that.circleWidget.rsearch.$textbox.val(searchValue)}else{var miles=document.getElementById("radiusSetting").value;that.circleWidget.searchbox.textbox.value=searchValue}if(miles==0||miles==null){var text="You need to add a radius.";alerter.popup(text,"OK");return}var vert=polycreator.drawCircle(point,miles);var icon=new PIcon(PIcon.POINT);icon.iconSize=new PSize(12,12);icon.shadow="";icon.image="/images/pins/polygon_red.png";var marker=new PMarker(point,icon);polycreator.map.addOverlay(marker);polycreator.buildingOverlays.push(marker);var polyline=new PPolyline(vert,"#e68000");polycreator.buildingOverlays.push(polyline);polycreator.map.addOverlay(polyline);polycreator.eventManager.triggerEvent("addpoly",[point])})};PPolyCreator.prototype.drawCircle=function(point,miles,recenter){this.clearBuildingOverlays();var centerpoint=point;dist=miles*1609.344;var radiusX=centerpoint.moveBy("0 1N",dist);var radiusY=centerpoint.moveBy("90 1N",dist);var xRadiusMetres=radiusX.lat()-centerpoint.lat();var yRadiusMetres=radiusY.lng()-centerpoint.lng();var pointyeast=centerpoint.lng()+yRadiusMetres;var pointywest=centerpoint.lng()-yRadiusMetres;var pointxsouth=centerpoint.lat()-xRadiusMetres;var pointxnorth=centerpoint.lat()+xRadiusMetres;var sw=new PLatLng(pointxsouth,pointywest);var ne=new PLatLng(pointxnorth,pointyeast);if(recenter)this.map.setCenterBounds(new PLatLngBounds(sw,ne));var circlepoints=[];with(Math){for(var a=0;a<361;a+=5){var aRad=a*(PI/180);var pointx=centerpoint.lat()+xRadiusMetres*cos(aRad);var pointy=centerpoint.lng()+yRadiusMetres*sin(aRad);var p=new PLatLng(pointx,pointy);circlepoints.push(p)}}this.CIRCLE.centerpoint=centerpoint;this.CIRCLE.radius=miles;this.CIRCLE.points=circlepoints;return circlepoints};PPolyCreator.prototype.customRegionsOn=function(){if(this.getCustomPlacesCount()>0)return true;else return false};PPolyCreator.prototype.toggleWidgets=function(){this.circleWidget.hide();this.assembleInfoWidget.hide();this.boundaryWidget.hide();if(!this.customRegionsOn()){this.clearPolygonsWithin();this.clearBuildingOverlays()}};PPolyCreator.prototype.addPlacesWithinAllRegions=function(type){this.clearPolygonsWithin();var count=this.getCustomPlacesCount();var places=this.customPlaces;if(count>0){for(var i in places){this.showPlacesWithin(places[i].place,type)}}};PPolyCreator.prototype.showPlacesWithin=function(place,type){var polycreator=this;place.getPlacesWithin(type,null,null,function(places){for(var i=0;i<places.length;i++){for(var j=0;j<places[i].getVertices().length;j++){var poly=new PPolygon(places[i].getVertices()[j],"#eb5920",3,.1,"#eb5920",.4);polycreator.map.addOverlay(poly);polycreator.polygonsWithin.push(poly)}}},3)};PPolyCreator.prototype.clearPolygonsWithin=function(){if(this.polygonsWithin.length>0){for(var i=0;i<this.polygonsWithin.length;i++)map.removeOverlay(this.polygonsWithin[i])}};PPolyCreator.prototype.clearPolyline=function(polylines){if(!polylines){return}for(var i=0;i<polylines.length;i++){this.map.removeOverlay(polylines[i]);if(polylines[i].infomarker){this.map.removeOverlay(polylines[i].infomarker);this.map.removeOverlay(polylines[i].clearmarker)}}};PPolyCreator.prototype.clearPolylineAssembled=function(polylines){for(var i=0;i<polylines.length;i++){for(var j=0;j<polylines[i].length;j++){this.map.removeOverlay(polylines[i][j])}if(polylines[i].infomarker){this.map.removeOverlay(polylines[i].infomarker);this.map.removeOverlay(polylines[i].clearmarker)}}};PPolyCreator.prototype.initCustomRegionType=function(){if(this.buildType==this.DRAW){this.initDrawRegion()}else if(this.buildType==this.CIRCLE){this.initRadiusRegion()}};PPolyCreator.prototype.isBuildOn=function(){return this.buildType?true:false};PPolyCreator.prototype.resetBuildType=function(){this.buildType=null};PPolyCreator.prototype.addPlaceById=function(){this.customPlaces[place.id].place=place};PPolyCreator.prototype.setUpPlaceAndPolylines=function(place,map,noIcons){if(!map)this.map=map;this.customPlacesCount++;this.customPlaces[place.id]={};this.customPlaces[place.id].place=place;this.addPolylines(place);if(noIcons==null){this.addPolyMarker(place,this.customPlaces[place.id].polylines,map)}this.addCustomRegionToSession(place)};PPolyCreator.prototype.addPolylines=function(place){var polylines=[];var vertices=place.getVertices();var color=place.color!=null?place.color:this.defaultcolor;var opacity=place.opacity!=null?place.opacity:this.defaultopacity;var fill=place.fill!=null?place.fill:this.defaultfill;this.customPlaces[place.id].polylines=[];for(var i=0;i<vertices.length;i++){var fillopacity=0;var fillcolor=null;if(fill){fillopacity=opacity;fillcolor=color}var polyline=new PPolygon(vertices[i],color,this.defaultweight,opacity,fillcolor,fillopacity);place.polyline=polyline;this.polyline=polyline;map.addOverlay(polyline);this.customPlaces[place.id].polylines.push(polyline);polylines.push(polyline)}place.polylines=polylines};PPolyCreator.prototype.addCustomRegionForTable=function(place,norefresh){var placesToLoad=[];if(place instanceof Array){placesToLoad=place}else{placesToLoad.push(place)}for(var i=0;i<placesToLoad.length;i++){this.customPlacesCount++;this.customPlaces[placesToLoad[i].id]={};this.customPlaces[placesToLoad[i].id].place=placesToLoad[i]}if(!norefresh){refreshCubeQueue(placesToLoad)}this.addCustomRegionToSession(placesToLoad[0])};PPolyCreator.prototype.removeCustomRegionFromMap=function(place){var region=this.customPlaces[place.id];this.clearPolyline(region.polylines);var markers=region.markers;if(markers){for(var i=0;i<markers.length;i++){this.map.removeOverlay(markers[i])}}delete this.customPlaces[place.id];this.customPlacesCount--;var dropdownEl=region.dropdownEl;if(dropdownEl){dropdownEl.on=false;dropdownEl.className=""}if(map.getInfoWindow()){map.closeInfoWindow()}this.removeCustomRegionFromSession(place);this.eventManager.triggerEvent("removepoly",[place])};PPolyCreator.prototype.removeCustomRegionFromTable=function(place){var regions=this.customPlaces;if(regions[place.id]){var dropdownEl=regions[place.id].dropdownEl;if(dropdownEl){dropdownEl.on=false;dropdownEl.className=""}delete regions[place.id];this.customPlacesCount--}this.removeCustomRegionFromSession(place)};PPolyCreator.prototype.getCustomPlacesCount=function(){return this.customPlacesCount};PPolyCreator.prototype.getCustomPlaces=function(){return this.customPlaces};PPolyCreator.prototype.addCustomRegionToSession=function(place){var places=this.customPlaces;var cp="";for(var i in places){cp+=places[i].place.id+","}cp=cp.substring(0,cp.length-1);session.put("cp",cp)};PPolyCreator.prototype.removeCustomRegionFromSession=function(place){var places=this.customPlaces;var cp="";for(var i in places){cp+=places[i].place.id+","}cp=cp.substring(0,cp.length-1);session.put("cp",cp)};PPolyCreator.prototype.hasBuildOverlays=function(){return this.buildingOverlays.length>0?true:false};PPolyCreator.prototype.showSavingDialog=function(){if(!this.saveLoading){var div=$("<div/>");this.savingDialog=div;div.attr({id:"savingCustomRegionDialog"});div.hide();div.html("<img src='/images/busy.gif' class='center'><br />Building and saving your custom region...");var mapDiv=$(this.map.getContainer());mapDiv.append(div)}jQuery(this.savingDialog).fadeIn()};PPolyCreator.prototype.hideSavingDialog=function(){jQuery(this.savingDialog).hide()};PPolyCreator.prototype.addSavedPoly=function(places){if(PEnvironment.pageName=="report_area"){var customplaces=polycreator.customPlaces;for(var i in customplaces){polycreator.removeCustomRegionFromMap(customplaces[i].place)}}custom_place=places[0];polycreator.setUpPlaceAndPolylines(places[0],map);if(polycreator.buildType==polycreator.ASSEMBLE){polycreator.resetBuildType()}if(polycreator.buildType==polycreator.CIRCLE){polycreator.circleWidget.hide()}toggleCustomRegion();polycreator.hideSavingDialog()};PPolyCreator.prototype.setPolyStyle=function(place,options){var region=this.customPlaces[place.id];var polys=region.polylines;var opacity=options.opacity;var color=options.color;var fill=options.fill;var fillopacity=0;for(var i=0;i<polys.length;i++){if(!color)color=polys[i].color;if(!opacity)opacity=polys[i].opacity;if(fill){if(opacity)fillopacity=opacity;else fillopacity=polys[i].opacity}polys[i].setStyle(color,polys[i].weight,opacity,color,fillopacity)}place.opacity=opacity;place.fill=fill;place.color=color;var that=this;var func=function(msg){that.load(place.id,function(p){if(p.length<1){alerter.popup("There was an error updating this custom region.","OK");return}var newplace=p[0];that.removeCustomRegionFromMap(place);that.setUpPlaceAndPolylines(newplace,map);var content=PMIdentificationPrinter.printCustomPolyPlaces(newplace);that.customPlaces[newplace.id].markers[0].openInfoWindowHtml(content,P.constants.infoWindowTypeCustomRegion);if(P.instances.trfCustomRegions){P.instances.trfCustomRegions.update()}})};if(!options.delaySave){this.saveStyleChanges(place,func)}};PPolyCreator.prototype.saveStyleChanges=function(place,callback){var self=this;var fill=place.fill?1:0;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&act=st&crid="+place.id+"&crf="+fill+"&crc="+encodeURIComponent(place.color)+"&cro="+encodeURIComponent(place.opacity),dataType:"json",success:function(result){if(result==null||result.cr==null||!(result.cr.status&&result.cr.status=="ok")||result.cr.regions==null||result.cr.regions.length<1){callback([])}else{var newPlace=self.createPlaceFromObject(result.cr.regions[0]);callback([newPlace])}},error:function(){callback([])}})};PPolyCreator.prototype.createPlaceFromObject=function(region){var place=new PPlace;place.id=region.id;place.label=region.label;place.author=region.author;if(region.created&&region.created!=""){place.created=region.created}else{place.created="N/A"}if(region.description!=null){place.description=region.description}else{place.description=""}place.typeid=region.typeid;if(region.centroid){place.centroid=new PLatLng(parseFloat(region.centroid.y),parseFloat(region.centroid.x))}if(region.bounds){place.bounds=new PLatLngBounds(new PLatLng(parseFloat(region.bounds.min.y),parseFloat(region.bounds.min.x)),new PLatLng(parseFloat(region.bounds.max.y),parseFloat(region.bounds.max.x)))}place.vertices=[];if(region.vertices){for(var i=0;i<region.vertices.length;i++){var curPolygon=region.vertices[i];var newPolygon=[];for(var j=0;j<curPolygon.length;j++){newPolygon.push(new PLatLng(parseFloat(curPolygon[j].y),parseFloat(curPolygon[j].x)))}place.vertices.push(newPolygon)}}if(place.typeid==PPlaceType.CUSTOM.id){place.ctypeid=region.ctypeid;if(region.color){place.color=region.color!=null?"#"+region.color:this.defaultcolor}if(region.opacity){place.opacity=region.opacity!=null?region.opacity:this.defaultopacity}if(region.fill){place.fill=region.fill!=null?region.fill:this.defaultfill}if(region.ctypeid==this.ASSEMBLE.ctypeid&&region.vertices){place.aplaces=[];for(var i=0;i<region.aplaces.length;i++){var curPlace=region.aplaces[i];var newPlace=new PPlace;newPlace.id=curPlace.id;newPlace.label=curPlace.label;newPlace.typeid=curPlace.typeid;newPlace.defid=curPlace.defid;newPlace.state=curPlace.state;newPlace.identifier=curPlace.identifier;place.aplaces.push(newPlace)}place.placeids=region.placeids}if(region.ctypeid==this.CIRCLE.ctypeid){if(region.radius){place.radius=region.radius}if(region.caddress){var arr=region.caddress.split(",");var isLatLng=true;for(var i=0;i<arr.length;i++){if(isNaN(arr[i])){isLatLng=false;break}}if(isLatLng){region.caddress=Math.round(arr[0]*1e5)/1e5+", "+Math.round(arr[1]*1e5)/1e5}place.caddress=region.caddress}}}else if(place.typeid==PPlaceType.POLYGON.id){place.polysetid=region.polysetid}return place};function toggleCustomRegion(opts){var $customRegionButton;if(isCustomRegionOn()){cancelCustomRegion();map.disablePolyCreator(polycreator);polycreator.cancelPoly();polycreator.toggleWidgets();if(PEnvironment.pageName=="maps"||PEnvironment.pageName=="analytics"){mapOptionsEnable()}}else{map.closeInfoWindow();if(PEnvironment.pageName!=="widget"){$customRegionButton=$(".custom-regions__create");$customRegionButton.addClass("is-active");$customRegionButton.html("Cancel")}else{$customRegionButton=$(".custom-region-button__widget");$customRegionButton.find(".text").html("Cancel")}genericAlertDialog({template:"custom-region"})}}function selectCustomRegionType(type){var isForWidget=false;if(PEnvironment.pageName=="widget"){isForWidget=true}var content="";if(type==1){polycreator.buildType=polycreator.DRAW;content="<h2>Drawn Custom Region</h2>";if(isForWidget){content+='<p>To create a Drawn Custom Region, click a spot on the map, move your mouse to another spot and click, and continue until you close the region by clicking back on the first point. When you are finished, name your region and click "Done".</p>'+'<p>To disable this feature, click "Disable Custom Region" at the bottom of the map. Click "Clear Location" to remove your custom region from the map.</p>'}else{content+="<p>To create a Drawn Custom Region, click a spot on the map, move your mouse to another spot and click, "+"and continue until you close the region by clicking on the first point.</p>"+"<p>At that point you may name the region and save it to "+dnf.getName("mySavedWork")+". </p>"+'<p>To disable this feature, click "Cancel" at the bottom of the map.</p>'}}else if(type==2){polycreator.buildType=polycreator.ASSEMBLE;content="<h2>Assembled Custom Region</h2>";if(isForWidget){content+='<p>To create an Assembled Custom Region, click inside the boundaries you wish to include. To remove a boundary, click it again. When you are finished, name your region and click "Done".</p>'+'<p>To disable this feature, click "Disable Custom Region" at the bottom of the map. Click "Clear Location" to remove your custom region from the map.</p>'}else{content+="<p>To create an Assembled Custom Region, click inside the boundaries you wish to include.  To remove a boundary, click it again.</p>"+'<p>When you are finished, click "Save Region" to name your region and save it to '+dnf.getName("mySavedWork")+".</p>"+"<p>The map will display the default boundary for the current zoom level.  The boundary will display in the pulldown and can be changed there.</p>"+'<p>To disable this feature, click "Cancel" at the bottom of the map.</p>';var indicatorArr=[];if(PEnvironment.pageName=="analytics"){for(var i=0;i<3;i++){try{var ind=map.getLegendMerger().getLegend(i).getIndicator();indicatorArr.push(ind)}catch(err){console.log(err)}}}else{try{var ind=map.getIndicator();indicatorArr.push(ind)}catch(err){console.log(err)}}if(indicatorArr.length>0){var fakeBlockGroupsInd=[9901950,9901951,9901952,9901953,9901955,9932700,9932701,9932702,9932703,9932704,9932705,9932706,9932707,9932708,9932709,9932710,9932711,9932712,9932713,9932714,9932715,9932716,9933250,9933251,9901954,9902200,9902202,9902203,9902204,9902205,9902201,9933252,9933253,9933255,9933254,9903400,9903401,9903402,9903403,9903405,9903404,9903450,9903451,9903452,9903453,9903455,9903454,9903500,9903501,9903502,9903503,9903505,9903504,9903550,9903551,9903552,9903553,9903555,9903554,9899704,9933500,9926550,9926551,9926552,9926553,9926554,9926555,9926556,9926557,9926558,9926559,9926560,9926561,9926562,9926563,9926564,9926565,9926566,9926567,9926568,9926569,9926570,9926571,9926572,9926573,9926574,9926575,9926576,9926577,9904501,9904502,9904503,9904504,9904505,9904500,9935797,9935798,9935803,9935807,9935808,9935802,9935804,9935805,9935801,9935806,9935795,9935796,9935799,9935800,9927850,9927851,9927852,9927853,9927854,9927855,9928401,9928403,9928404,9928405,9928406,9928400,9928402,9928407,9919605,9919609,9919610,9919616,9919619,9919600,9919601,9919602,9919604,9919606,9919607,9919608,9919611,9919612,9919613,9919614,9919615,9919617,9919618,9919620,9919621,9919623,9919624,9919622,9919603,9905600,9905601,9905602,9905603,9905604,9905605,9905606,9905607,9905608,9896358,9896370,9896371,9896381,9896388,9896350,9896351,9896352,9896353,9896354,9896355,9896392,9896356,9896357,9896359,9896360,9896361,9896362,9896363,9896364,9896365,9896366,9896367,9896368,9896369,9896372,9896373,9896374,9896375,9896376,9896377,9896378,9896379,9896380,9896382,9896383,9896384,9896385,9896386,9896387,9896389,9896390,9896391,9896393,9896394,9896395,9896396,9896397,9899700,9899701,9899702,9899705,9899703,9935597,9935598,9935599,9935600,9935601,9907254,9907256,9907259,9907260,9907252,9907262,9907253,9907250,9907251,9907255,9907257,9907258,9907261,9907507,9907508,9907514,9907516,9907517,9909658,9909661,9909662,9909663,9909664,9909650,9909651,9909652,9909653,9909654,9909655,9909656,9909657,9909659,9909660,9909665,9909666,9909667,9910202,9910203,9910209,9910213,9910214,9910208,9910200,9910201,9910204,9910205,9910206,9910207,9910210,9910211,9910212];var flaggedIndicatorNames=[];for(var i=0;i<indicatorArr.length;i++){if(indicatorArr[i]==null){continue}var indid=indicatorArr[i].getID();var indname=indicatorArr[i].getLabel();for(var j=0;j<fakeBlockGroupsInd.length;j++){if(indid==fakeBlockGroupsInd[j]){flaggedIndicatorNames.push(indname)}}}if(flaggedIndicatorNames.length>0){content="<h2>Assembled Custom Region</h2>";if(flaggedIndicatorNames.length>1){content+="<p>Creating an Assembled Custom Region for the following indicators is not available: "}else{content+="<p>Creating an Assembled Custom Region for the following indicator is not available: "}content+=flaggedIndicatorNames.join(", ");content+=".</p>";if(PEnvironment.pageName=="analytics"){if(flaggedIndicatorNames.length>1){content+="<p>Please remove the indicators from the 3 Layer Map to create your custom region.</p>"}else{content+="<p>Please remove the indicator from the 3 Layer Map to create your custom region.</p>"}}else{content+="<p>Please remove the indicator from the map to create your custom region.</p>"}alerter.popup(content,"OK");$("button.custom-regions__create").click();return}}}}else if(type==3){polycreator.buildType=polycreator.CIRCLE;var miles=polycreator.CIRCLE.radius||1;var unit=" mile";if(miles!=1){unit+="s"}miles+=unit;if(isForWidget){content="<h2>Radius Region</h2>"+"<p>To create a Radius Region, either enter an address to center the radius, or click directly on the map.</p>"+'<p>The radius can be changed in the white box on the map. When you are finished, click "GO", which will allow you to name your region and click "Done".</p>'+'<p> To disable this feature, click "Cancel Custom Region" at the bottom of the map. Click "Clear Location" to remove your custom region from the map.</p>'}else{content="<h2>Radius Region</h2>"+"<p>To create a Radius Region, either enter an address to center the radius, or click directly on the map.</p>"+'<p>The radius can be changed in the white box on the map. When you are finished, click "GO", which will allow you to name your region and click "Save" to save it to '+dnf.getName("mySavedWork")+".</p>"+'<p> To disable this feature, click "Cancel" at the bottom of the map.</p>'}}var next=function(){map.enablePolyCreator(polycreator);polycreator.initCustomRegionType();if(polycreator.buildType==polycreator.CIRCLE)polycreator.circleWidget.show();if(polycreator.buildType==polycreator.ASSEMBLE){polycreator.boundaryWidget.enable();if(PEnvironment.pageName=="maps"){map.mapOptions.setToDefault();jQuery("#optsbox").hide();mapOptionsDisable()}polycreator.boundaryWidget.show()}};var cancel=function(){cancelCustomRegion()};alerter.popup(content,"Cancel","OK",next,cancel)}function cancelCustomRegion(){if(isWidgetPage()){var text=polycreator.widgetButtonText;$(".custom-region-button__widget").find(".text").html(text)}else{$(".custom-regions__create").html("Create").removeClass("is-active")}}PMap.prototype.enablePolyCreator=function(polycreator){polycreator.attachMap(this)};PMap.prototype.disablePolyCreator=function(polycreator){polycreator.detachMap(this)};PPolyCreator.prototype.confirmRemoveCBRegion=function(){var self=this;alerter.popup("Are you sure you want to clear this custom area?","No","Yes",function(){self.removeCBRegion()})};PPolyCreator.prototype.isCBCustomRegionSet=function(){return this.polyline!=null};PPolyCreator.prototype.startCBDrawn=function(){this.enableCBCustomRegion(this.DRAW)};PPolyCreator.prototype.startCBRadius=function(){this.enableCBCustomRegion(this.CIRCLE)};PPolyCreator.prototype.disableRegionBuilderCB=function(callback){var self=this
;var f=function(){if(callback){callback()}self.circleWidget.hide();self.drawWidget.hide()};if(this.isBuildingCBRegion()){alerter.popup("You are currently building a custom area on the map. Do you wish to abandon this region?","No","Yes",function(){self.stopCBRegion();f()},function(){return})}else if(this.isCBCustomRegionSet()){alerter.popup("You currently have a custom area on the map. Do you wish to clear this region?","No","Yes",function(){self.removeCBRegion();f()},function(){return})}else{f()}};PPolyCreator.prototype.stopCBRegion=function(){this.resetBuildType();this.resetBuildOptions();this.clearBuildingOverlays();map.disablePolyCreator(polycreator)};PPolyCreator.prototype.removeCBRegion=function(){this.circleWidget.hide();this.drawWidget.hide();this.drawWidget.resetGenerateButton();this.circleWidget.resetGenerateButton();var map=this.map;var customplaces=this.customPlaces;if(this.polyline){map.removeOverlay(this.polyline);for(var i=0;i<this.polyline.markers.length;i++){map.removeOverlay(this.polyline.markers[i])}}if(map.currentAddressMarker){map.removeOverlay(map.currentAddressMarker)}for(var i in customplaces){this.removeCustomRegionFromMap(customplaces[i].place)}this.resetBuildType();this.resetBuildOptions();map.disablePolyCreator(polycreator)};PPolyCreator.prototype.enableCBCustomRegion=function(type){if(!$(".profile").hasClass("on")){return}var self=this;var enableRegionBuilding=function(){map.closeInfoWindow();self.buildType=type;map.enablePolyCreator(polycreator);if(type==self.DRAW){$("#drawRegionOption").addClass("on");$("#radiusRegionOption").removeClass("on")}else if(type==self.CIRCLE){$("#radiusRegionOption").addClass("on");$("#drawRegionOption").removeClass("on")}self.displayCBRegionMapOverlay(type)};enableRegionBuilding()};PPolyCreator.prototype.isBuildingCBRegion=function(){return $(".modal").is(":visible")&&!this.isCBCustomRegionSet()};PPolyCreator.prototype.displayCBRegionMapOverlay=function(type){var self=this;if(type==this.DRAW){this.drawWidget.show()}else if(type==this.CIRCLE){this.circleWidget.show()}};PPolyCreator.prototype.finishCBRegion=function(){if(this.polyline){map.removeOverlay(this.polyline);if(this.polyline.markers){for(var i=0;i<this.polyline.markers.length;i++){map.removeOverlay(this.polyline.markers[i])}}}var that=this;var addReportLink=function(region){session.remove("cp");session.put("cp",region.id);that.customPlaces[region.id]={};that.customPlaces[region.id].place=region;var but=that.circleWidget.$generateButton;but.unbind("click");but.removeAttr("href");var f=function(){but.addClass("on");but.attr({href:getProfileReportUrl(region),target:"_blank"});showCloneCustomRegionInfoBubble(region.getCentroid())};if(P.CloneOptions.report_limit_boundary_id){if(isNCCVersion()){region.getPlacesContaining(PPlaceType.CITY,2,null,function(cities){var allowReport=false;if(cities.length==1){if(cities[0].id==P.CloneOptions.report_limit_boundary_id){allowReport=true}}if(allowReport){f()}else{but.click(function(){notInNewarkAlert()});showCloneCustomRegionInfoBubble(region.getCentroid())}},100)}else if(isAtlantaChildCareVersion()){region.getAggregates(PPlaceType.COUNTY,2,null,function(counties){var atlantaCounties=[100098,100089,100640,100595,100137];var allowReport=true;if(P.CloneOptions.report_limit_boundary_id&&counties.length>1){for(i in counties){var hasMatch=false;var aCounty=counties[i];for(j in atlantaCounties){var atlantacounty=atlantaCounties[j];if(aCounty.getID()==atlantacounty){hasMatch=true}}if(!hasMatch){allowReport=false;break}}}if(allowReport){f()}else{but.click(function(){notInAtlantaAlert()});showCloneCustomRegionInfoBubble(region.getCentroid())}})}else{region.getAggregates(PPlaceType.COUNTY,2,null,function(counties){var allowReport=true;if(P.CloneOptions.report_limit_boundary_id&&(counties.length>1||counties[0].id!=P.CloneOptions.report_limit_boundary_id)){allowReport=false}if(allowReport){f()}else{but.click(function(){notInPhiladelphiaAlert()});showCloneCustomRegionInfoBubble(region.getCentroid())}})}}else{f()}};if(this.buildType==this.DRAW){if(this.savePoints.length<4){return}if(!this.savePoints[0].equals(this.savePoints[this.savePoints.length-1])){this.savePoints.push(this.savePoints[0])}this.polyline=new PPolygon(this.savePoints,this.options.line.color,this.options.line.weight,this.options.line.opacity,this.options.poly.fill);polycreator.saveDrawPolyCB(function(region){addReportLink(region)})}else if(this.buildType==this.CIRCLE){this.polyline=new PPolygon(this.CIRCLE.points,this.options.line.color,this.options.line.weight,this.options.line.opacity,this.options.poly.fill);polycreator.saveCirclePolyCB(function(region){addReportLink(region)})}else{return}this.clearBuildingOverlays();this.map.addOverlay(this.polyline);this.addPolyMarkerCB();map.disablePolyCreator(polycreator)};PPolyCreator.prototype.addPolyMarkerCB=function(){var polylines=[this.polyline];var midpos=Math.round(polylines[0].points.length/2);var point=polylines[0].points[midpos];var icon=new PIcon(PIcon.POINT);icon.iconSize=new PSize(12,12);icon.shadow="";icon.image="/images/remove_icon_active.png";var clearmarker=new PMarker(point,icon);clearmarker.image.index=this.getCustomPlacesCount();clearmarker.image.polylines=polylines;clearmarker.image.polycreator=this;clearmarker.image.clearmarker=clearmarker;this.polyline.markers=[clearmarker];var self=this;PEvent.addListener(clearmarker,"mouseup",function(){self.confirmRemoveCBRegion()});this.map.addOverlay(clearmarker)};PPolyCreator.prototype.saveCirclePolyCB=function(callback){this.clearBuildingOverlays();var points=this.CIRCLE.points;var verts=[];for(var i=0;i<points.length;i++){verts.push([points[i].lng(),points[i].lat()])}var region={name:productProperty.getValue("name"),verts:[verts],rad:this.CIRCLE.radius};if(this.CIRCLE.address){region.caddr=this.CIRCLE.address}var postData=JSON.stringify(region);var self=this;ajax.call({type:"POST",url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&sbr=1&act=c&crty="+this.CIRCLE.ctypeid,dataType:"json",data:postData,success:function(result){if(result==null||result.cr==null||!(result.cr.status&&result.cr.status=="ok")||result.cr.regions==null){callback(false)}else{var newPlace=self.createPlaceFromObject(result.cr.regions[0]);callback(newPlace)}},error:function(){callback(false)}})};PPolyCreator.prototype.saveDrawPolyCB=function(callback){if(this.savePoints.length<4)return;if(!this.savePoints[0].equals(this.savePoints[this.savePoints.length-1]))this.savePoints.push(this.savePoints[0]);var verts=[];for(var i=0;i<this.savePoints.length;i++){verts.push([this.savePoints[i].lng(),this.savePoints[i].lat()])}var region={name:productProperty.getValue("name"),verts:[verts]};var postData=JSON.stringify(region);var self=this;ajax.call({type:"POST",url:PEnvironment.dataServicesUrl+"?ty=data&t=cr&sbr=1&act=c&crty="+this.DRAW.ctypeid,dataType:"json",data:postData,success:function(result){if(result==null||result.cr==null||!(result.cr.status&&result.cr.status=="ok")||result.cr.regions==null){callback(false)}else{var newPlace=self.createPlaceFromObject(result.cr.regions[0]);callback(newPlace)}},error:function(){callback(false)}})};PPolyCreator.prototype.updateRadiusCB=function(point,miles){map.removeOverlay(this.polyline);for(var i=0;i<this.polyline.markers.length;i++){map.removeOverlay(this.polyline.markers[i])}polycreator.drawCircle(point,miles);polycreator.eventManager.triggerEvent("addpoly",[point])};PPolyCreatorAssembleInfoWidget=function(polycreator){this.polycreator=polycreator;var container=document.createElement("div");container.id="custom-regions__assemble";container.className="custom-regions__creator";this.container=container;var title=document.createElement("div");title.className="title";var html="Click Map to Assemble Region";title.innerHTML=html;var div=document.createElement("div");div.className="placesContainer";var contenttitle=document.createElement("span");contenttitle.innerHTML="Current places: ";var content=document.createElement("span");content.className="placeLabels";this.content=content;jQuery(div).append(contenttitle);jQuery(div).append(content);jQuery(container).hide();jQuery(container).append(title);jQuery(container).append(div);var footer=document.createElement("div");footer.className="footer";var clear=document.createElement("a");clear.innerHTML="Clear All and Start Over";clear.widget=this;clear.onclick=function(){this.widget.clear()};var save=document.createElement("a");if(isWidgetPage()){save.innerHTML="Done"}else{save.innerHTML="Save Region"}save.widget=this;save.onclick=function(){this.widget.polycreator.showSaveInfoWindow(this.widget.polycreator.ASSEMBLE.lastpoint)};jQuery(footer).append(clear);jQuery(footer).append(save);jQuery(container).append(footer);jQuery("#custom-regions__map-options").append(container);this.update()};PPolyCreatorAssembleInfoWidget.prototype={show:function(){$("#notification div.close").click();this.container.style.display="block"},hide:function(){this.container.style.display="none"},clear:function(){this.polycreator.clearBuildingOverlays();this.polycreator.ASSEMBLE.places=[];this.polycreator.assembleInfoWidget.update()},update:function(){var div=this.content;jQuery(div).empty();var places=this.polycreator.ASSEMBLE.places;if(places&&places.length==0){var span=document.createElement("span");span.className="empty";span.innerHTML="(no places selected)";jQuery(div).append(span)}for(var i=0;i<places.length;i++){var a=document.createElement("a");if(places[i].typeid==15)a.innerHTML=places[i].identifier;else a.innerHTML=places[i].getLabel();a.title="Remove";a.widget=this;a.place=places[i];a.onclick=function(){var polycreator=this.widget.polycreator;polycreator.removeAssembledPlaceIfExists(this.place)};jQuery(div).append(a);if(i<places.length-1){var comma=document.createElement("span");comma.className="comma";comma.innerHTML=", ";jQuery(div).append(comma)}}}};PPolyCreatorBoundaryWidget=function(polycreator,opts){this.polycreator=polycreator;this.listeners=[];var container=document.createElement("div");this.container=container;container.id="custom-regions__boundary";container.className="custom-regions__creator";jQuery(container).hide();jQuery("#custom-regions__map-options").append(container);var div=document.createElement("div");div.className="title";this.titleContainer=div;this.defaultTitle="Show Boundaries in Region:";this.container.appendChild(div);if(opts&&opts.placetypes){this.placetypes=opts.placetypes;this.useOnlyCurrentDefinitions=true}else{this.placetypes=[PPlaceType.BLOCKGROUP,PPlaceType.CENSUSTRACT,PPlaceType.ZCTA,PPlaceType.ZIP,PPlaceType.CITY,PPlaceType.COUNTY,PPlaceType.COUNTY_SUBDIVISION,PPlaceType.MD,PPlaceType.CBSA,PPlaceType.STATE,PPlaceType.CONGRESSIONAL,PPlaceType.SLD_UPPER,PPlaceType.SLD_LOWER,PPlaceType.SCHOOL,PPlaceType.CDBG,PPlaceType.INDIANAREAS]}this.defaultPlaceTypes=[];for(var i=0;i<this.placetypes.length;i++){var t=this.placetypes[i];if(t==PPlaceType.STATE){this.defaultPlaceTypes[0]=t}if(t==PPlaceType.COUNTY){this.defaultPlaceTypes[4]=PPlaceType.COUNTY}if(t==PPlaceType.CENSUSTRACT){this.defaultPlaceTypes[9]=PPlaceType.CENSUSTRACT}if(t==PPlaceType.BLOCKGROUP){this.defaultPlaceTypes[12]=PPlaceType.BLOCKGROUP}}var select=document.createElement("select");select.className="boundaries";select.disabled=true;this.container.appendChild(select);this.typeMenu=select};PPolyCreatorBoundaryWidget.prototype={enable:function(){this.typeMenu.disabled=false},disable:function(){this.typeMenu.disabled=true},show:function(){this.populate();this.container.style.display="block"},hide:function(){this.container.style.display="none"},addTitle:function(){if(this.polycreator.isBuildOn())this.titleContainer.innerHTML=this.polycreator.buildType.title;else this.titleContainer.innerHTML=this.defaultTitle},populate:function(){for(var i=0;i<this.listeners.length;i++){PEvent.removeListener(this.listeners[i])}var select=this.typeMenu;select.innerHTML="";this.addTitle();if(!this.polycreator.isBuildOn()||this.polycreator.buildType!=this.polycreator.ASSEMBLE){var option=document.createElement("option");option.placetype=null;option.innerHTML="None";select.appendChild(option)}var pdef=null;var currentInd=map.getIndicator();if(currentInd!=null){var legend=map.getLegend();var indPlaceType=legend.getBoundaryType();var scale=map.getScale();if(indPlaceType.maplayers!=null&&indPlaceType.maplayers[0]&&this.checkMapLayerZoom(indPlaceType.maplayers[0],scale)==0){pdef=legend.getBoundaryDefinitionId(indPlaceType.id)}}if(pdef==null){var z=map.getZoom();for(var i=z;i>=0;i--){if(this.defaultPlaceTypes[i]!=null){pdef=boundaryMatrix.getDefinitionIdForTypeId(this.defaultPlaceTypes[i].id);break}}}for(var i=0;i<this.placetypes.length;i++){var curType=this.placetypes[i];var defs;var latestMatrixId=boundaryMatrix.getMatrixOrder()[0];if(!this.useOnlyCurrentDefinitions&&(curType==PPlaceType.CONGRESSIONAL||curType==PPlaceType.CENSUSTRACT||curType==PPlaceType.BLOCKGROUP)){defs=boundaryMatrix.getAllBoundaryDefinitionsForTypeId(curType.getId())}else{defs=[boundaryMatrix.getDefinitionForTypeId(curType.getId(),latestMatrixId)]}var numDefs=defs.length;for(var j=0;j<numDefs;j++){var curDef=defs[j];var curDefId=curDef.boundaryDefinitionId;if(curDef.assembledCustomRegionEnabled==null||curDef.assembledCustomRegionEnabled!=true){continue}if(curType==PPlaceType.CONGRESSIONAL&&pMapLayer.getMapLayersByDefinitionId(curDefId)==null){continue}var option=document.createElement("option");if(numDefs>1){option.innerHTML=curDef.displayName}else{option.innerHTML=curDef.simpleName}option.placetype=curType;option.defid=curDefId;if(this.polycreator.buildType==this.polycreator.ASSEMBLE&&curDefId==pdef){option.selected=true;this.addMapLayerAndInitAssemble(curType,curDefId)}select.appendChild(option)}}select.widget=this;this.listeners.push(PEvent.addListener(select,"change",function(){var polycreator=select.widget.polycreator;if(!this.options[this.selectedIndex].defid){polycreator.clearPolygonsWithin()}else if(polycreator.isBuildOn()&&polycreator.buildType==polycreator.ASSEMBLE){if(polycreator.hasBuildOverlays()){var text="If you change the boundary type, you will clear all existing boundaries on the map.";var s=this;var ok=function(){select.widget.addMapLayerAndInitAssemble(s.options[s.selectedIndex].placetype,s.options[s.selectedIndex].defid)};alerter.popup(text,"Cancel","OK",ok)}else{select.widget.addMapLayerAndInitAssemble(this.options[this.selectedIndex].placetype,this.options[this.selectedIndex].defid)}}else{polycreator.addPlacesWithinAllRegions(this.options[this.selectedIndex].placetype,this.options[this.selectedIndex].defid)}}))},addMapLayerAndInitAssemble:function(type,defId){this.removeMapLayers();this.addMapLayers(defId);this.polycreator.initAssembleRegion(type,defId)},addMapLayers:function(defId){this.maplayers=pMapLayer.getMapLayersByDefinitionId(defId);if(this.maplayers){for(var i=0;i<this.maplayers.length;i++){this.maplayers[i].on()}var scale=map.getScale();var text="";var showAlert=false;var mapLayerZoom=this.checkMapLayerZoom(this.maplayers[0],scale);if(mapLayerZoom>0){var label=this.maplayers[0].getLabel().replace("<br>"," ");var label=this.maplayers[0].getLabel().replace("<br>"," ");text="To see the "+label+" boundaries and labels on the map you'll need to zoom out.";showAlert=true}else if(mapLayerZoom<0){var label=this.maplayers[0].getLabel().replace("<br>"," ");text="To see the "+label+" boundaries and labels on the map you'll need to zoom in.";showAlert=true}if(showAlert){alerter.popup(text,"OK")}}},removeMapLayers:function(){if(this.maplayers){for(var i=0;i<this.maplayers.length;i++)this.maplayers[i].off()}},checkMapLayerZoom:function(mapLayer,scale){if(mapLayer.minScale&&scale<mapLayer.minScale){return 1}else if(mapLayer.maxScale&&scale>mapLayer.maxScale){return-1}else{return 0}}};PPolyCreatorCircleWidget=function(polycreator){this.polycreator=polycreator;var container=document.createElement("div");this.container=container;container.id="custom-regions__circle";container.className="custom-regions__creator";jQuery(container).hide();$("#custom-regions__map-options").append(container);var div=document.createElement("div");div.className="title";this.titleContainer=div;this.titleContainer.innerHTML="Specify Center of Radius:";this.container.appendChild(div);var searchContainer=document.createElement("div");searchContainer.id="custom-region-radius-search";$(searchContainer).addClass("noStartOver");$(searchContainer).addClass("noSetLocationIcon");$(container).append(searchContainer);var searchTabTypes=["Default"];var options={noStartOver:true,noSetLocationIcon:true,noSearchTypes:true,noAutosuggest:true,width:"175px"};var searchbox=new PTRFPlaceSearchBox(searchContainer,searchTabTypes,options);this.searchbox=searchbox;this.exampleAddress='e.g., "421 North Boundary Street, Williamsburg, VA 23185"';searchbox.textbox.value=this.exampleAddress;searchbox.defaultText=this.exampleAddress;var that=this;searchbox.addListener("response",function(places){if(places instanceof PAddress){if(places.wasFound()){that.showCircle(places)}else{var content='Location "<b>'+places.addr+"</b>\" not found. For help finding your address, <a class='pagelinks' href='/?page_id=22256' target='_blank'>click here</a>.";alerter.popup(content,"OK")}}else{alerter.popup("Please specify a street address, not an area.","OK")}});this.container.appendChild(searchContainer);var div=document.createElement("div");div.className="title";div.innerHTML="OR<br />Click Map to Center Radius";this.container.appendChild(div);var div=document.createElement("div");div.className="radiusDiv";var span=document.createElement("span");span.className="title";span.innerHTML="Specify Radius:";div.appendChild(span);var radius=document.createElement("input");radius.type="text";radius.className="radius";radius.id="radiusSetting";radius.value=.5;if(PEnvironment.pageName=="widget"){radius.value=1}PEvent.addListener(radius,"keydown",function(e){e=e?e:event?event:null;if(e&&e.keyCode==13)that.searchbox.submit()});this.radius=radius;div.appendChild(radius);var span=document.createElement("span");span.innerHTML="Miles";span.className="radiusText";div.appendChild(span);var go=document.createElement("input");go.type="image";go.src="/images/global-button-go-xlarge.gif";go.alt="Go";PEvent.addListener(go,"click",function(){that.searchbox.submit()});div.appendChild(go);this.container.appendChild(div)};PPolyCreatorCircleWidget.prototype={show:function(){$("#notification div.close").click();this.searchbox.textbox.value=this.exampleAddress;this.container.style.display="block"},hide:function(){this.container.style.display="none"},showCircle:function(address){var point=new PLatLng(address.y,address.x);var miles=this.polycreator.circleWidget.radius.value;var vert=this.polycreator.drawCircle(point,miles,true);this.polycreator.CIRCLE.address=address instanceof PLatLng?address.y+", "+address.x:address.addr;var polyline=new PPolyline(vert,"#e68000");this.polycreator.map.addOverlay(polyline);this.polycreator.buildingOverlays.push(polyline);this.polycreator.eventManager.triggerEvent("addpoly",[point])}};PPolyCreatorOptions=function(){this.icon=new PIcon;this.icon.image=PEnvironment.kamapUrl+"images/icon_polypoint.gif";this.icon.iconSize=new PSize(10,10);this.icon.shadowSize=new PSize(0,0);this.icon.iconAnchor=new PPoint(5,5);this.line=new Object;this.line.color="#999999";this.line.weight=4;this.line.opacity=.7;this.poly=new Object;this.poly.color="#eb5920";this.poly.weight=4;this.poly.opacity=.7;this.poly.fill="#eb7041";this.turnDrawOn=true;this.turnAssembleOn=true;this.turnRadiusOn=true};PPolygon=function(points,color,weight,opacity,fill,fillopacity){this.points=points;if(color)this.color=color;else this.color="#eb5920";if(weight)this.weight=weight;else this.weight=5;if(opacity)this.opacity=opacity;else this.opacity=.7;if(fill)this.fill=fill;else this.fill="#eb7041";if(fillopacity||fillopacity==0)this.fillopacity=fillopacity;else this.fillopacity=.7;this.attributes=[]};PPolygon.prototype=new PPolyline(this.points,this.color,this.weight,this.opacity);PPolygon.prototype.getArea=function(proj){if(this.area){return this.area}else{this.area=0}var pointCount=this.getVertexCount();var proj=proj?proj:new PProjection(54004);var area=0;if(pointCount>=3){var p0=proj.fromLatLngToMeters(this.getVertex(0));var cross,p1,p2,x1,y1,x2,y2;for(var i=1;i+1<pointCount;++i){p1=proj.fromLatLngToMeters(this.getVertex(i));p2=proj.fromLatLngToMeters(this.getVertex(i+1));x1=p1.x-p0.x;y1=p1.y-p0.y;x2=p2.x-p0.x;y2=p2.y-p0.y;cross=x1*y2-x2*y1;area+=cross}}this.area=Math.abs(area/2);return this.area};PPolygon.prototype.getAggregateCount=function(placeType,matrixId,defId,callback,woverlap,wquota,wcontext){var self=this;self.getPlacesWithinCount(placeType,matrixId,defId,function(placesWithinCount){callback(placesWithinCount)},woverlap,wquota,wcontext)};PPolygon.prototype.getAggregates=function(placeType,matrixId,defId,callback,woverlap,wmax,worder,wquota,coverlap,cmax,corder,cquota,attr){var self=this;self.getPlacesWithin(placeType,matrixId,defId,function(placesWithin){if(placesWithin.length>0){callback(placesWithin)}else{self.getPlacesContaining(placeType,matrixId,defId,function(placesContaining){callback(placesContaining)},coverlap,cmax,corder,cquota,attr)}},woverlap,wmax,worder,wquota,attr)};PPolygon.prototype.getPlacesWithin=function(placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr){(new PClientGeocoder).getPlacesWithin(this.points,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr)};PPolygon.prototype.getPlacesWithinCount=function(placetype,matrixId,defId,callback,overlap,quota,context){(new PClientGeocoder).getPlacesWithinCount(this.points,placetype,matrixId,defId,callback,overlap,quota,context)};PPolygon.prototype.getPlacesWithinPage=function(placetype,matrixId,defId,callback,overlap,maxResults,order,quota,context,offset,query){(new PClientGeocoder).getPlacesWithinPage(this.points,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,context,offset,query)};PPolygon.prototype.getPlacesWithinCSV=function(placetype,matrixId,defId,overlap,order,quota,query){(new PClientGeocoder).getPlacesWithinCSV(this.points,placetype,matrixId,defId,overlap,order,quota,query)};PPolygon.prototype.getPlacesContaining=function(placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr){(new PClientGeocoder).getPlacesContaining(this.points,placetype,matrixId,defId,callback,overlap,maxResults,order,quota,attr)};PPolygon.prototype.getPlacesContainingCount=function(placetype,matrixId,defId,callback,overlap,quota){(new PClientGeocoder).getPlacesContainingCount(this.points,placetype,matrixId,defId,callback,overlap,quota)};PPolygon.prototype.getPlacesOverlapping=function(placetype,matrixId,defId,callback,quota,maxResults,order){(new PClientGeocoder).getPlacesOverlapping(this,placetype,matrixId,defId,callback,quota,maxResults,order)};PPolygon.prototype.getPlacesOverlappingCount=function(placetype,matrixId,defId,callback,quota){(new PClientGeocoder).getPlacesOverlappingCount(this,placetype,matrixId,defId,callback,quota)};PPolygon.prototype.getPlacesIntersecting=function(placetype,matrixId,defId,callback,quota,maxResults,order){(new PClientGeocoder).getPlacesIntersecting(this,placetype,matrixId,defId,callback,quota,maxResults,order)};PPolygon.prototype.getPlacesIntersectingCount=function(placetype,matrixId,defId,callback,quota){(new PClientGeocoder).getPlacesIntersectingCount(this,placetype,matrixId,defId,callback,quota)};PPolygon.prototype.getPlacesIntersectingPage=function(placetype,matrixId,defId,callback,maxResults,order,quota,context,offset,query){(new PClientGeocoder).getPlacesIntersectingPage(this.points,placetype,matrixId,defId,callback,maxResults,order,quota,context,offset,query)};PPolygon.prototype.getPlacesIntersectingCSV=function(placetype,matrixId,defId,order,quota,query){(new PClientGeocoder).getPlacesIntersectingCSV(this.points,placetype,matrixId,defId,null,order,quota,query)};PRadius=function(centerPoint,distanceMiles){this.centerPoint=centerPoint;this.distanceMiles=distanceMiles;this.distanceMeters=distanceMiles*1609.344;this.boundaries=null;this.label=this.distanceMiles+" mile radius area";this.type="PRadius";this.vertices=[]};PRadius.prototype.getId=function(){return this.id};PRadius.prototype.setId=function(id){this.id=id};PRadius.prototype.getVertices=function(){return this.vertices};PRadius.prototype.setVertices=function(vertArr){this.vertices=vertArr};PRadius.prototype.getLabel=function(){return this.label};PRadius.prototype.getType=function(){return this.type};PRadius.prototype.getCenter=function(){return this.centerPoint};PRadius.prototype.getDistanceMiles=function(){return this.distanceMiles};PRadius.prototype.getDistanceMeters=function(){return this.distanceMeters};PRadius.prototype.getBounds=function(){if(this.boundaries==null){var c=getCircle(this.distanceMiles,this.centerPoint);this.boundaries=c.circlepoints}return this.boundaries};PRadius.prototype.getMarkersWithin=function(overlaySet,callback){(new PClientGeocoder).getMarkersWithin(this,overlaySet,callback)};PRankingCube.prototype=new PCube;function PRankingCube(inds,places,periods,options){PCube.call(this,inds,places,periods);this.options=options||new PRankingCubeOptions}PRankingCube.prototype.loadValues=function(callback){var allMVA=true;for(var i=0;i<this.indicators.length;i++){if(this.indicators[i].isMVA()!=true){allMVA=false;break}}if(allMVA){var emptyData=[];for(var i=0;i<this.periods.length;i++){var curPeriod=this.periods[i];emptyData[curPeriod]=[];for(var j=0;j<this.places.length;j++){var curPlace=this.places[j].getID();emptyData[curPeriod][curPlace]=[];for(var k=0;k<this.indicators.length;k++){var curIndicator=this.indicators[k].getID();emptyData[curPeriod][curPlace][curIndicator]=new PRankingValue({value:null,rank:null,position:null,totalRanked:null,totalBoundaries:null,boundaryName:null})}}}this.values=emptyData;this.callback=callback;this.loading=false;callback(emptyData);return}var inds=this.indicators;var indString="";for(var i=0;i<inds.length;i++){indString+=","+inds[i].id}var places=this.places;var placeString="";for(var i=0;i<places.length;i++){var curPlace=places[i];if(curPlace.getType()!=PPlaceType.CUSTOM&&curPlace.getType()!=PPlaceType.POLYGON){placeString+=","+curPlace.id}}if(placeString.length>0&&indString.length>0){this.loading=true;indString=indString.substring(1);placeString=placeString.substring(1);var periodString=this.periods.join(",");var reqString="iid="+indString+"&bid="+placeString+"&per="+periodString;reqString+=this.options.loadRankings?"&ranks=true":"&ranks=false";reqString+=this.options.loadValues?"&vals=true":"&vals=false";if(this.options.listOptions!=null&&this.options.listOptions.length==2){reqString+="&pos="+this.options.listOptions[0];reqString+="&len="+this.options.listOptions[1]}this.callback=callback;ajax.call({url:PEnvironment.indicatorUrl+"&"+reqString,context:this,success:this.loadValuesCallback})}};PRankingCube.prototype.loadValuesCallback=function(values){for(var period in values){for(var bid in values[period]){for(var indid in values[period][bid]){var v=values[period][bid][indid];values[period][bid][indid]=new PRankingValue({value:v[0],rank:v[1],position:v[2],totalRanked:v[3],totalBoundaries:v[4],boundaryName:v[5]})}}}this.values=values;this.callback(values)};PRankingCube.prototype.setOptions=function(options){this.options=options};PRankingCube.prototype.getSumOfPlaces=function(ind,per,mean){var indid;if(ind)indid=ind.id;else indid=this.indicators[0].id;var period;if(per)period=per;else period=this.periods[0];var sum=null;var placelength=0;var l=this.places.length;for(var i=0;i<l;i++){var value=this.values[period][this.places[i].id][indid][0];if(!(ind.nodata&&value==ind.nodata)&&value!=null){sum+=value;placelength++}}if(mean&&placelength>0)return sum/placelength;else return sum};PRankingCube.prototype.getSortedValuesOfPlaces=function(ind,per){var indid;if(ind)indid=ind.id;else indid=this.indicators[0].id;var period;if(per)period=per;else period=this.periods[0];var values=[];for(var i=0;i<this.places.length;i++){var value=this.values[period][this.places[i].id][indid][0];if(!(ind.nodata&&value==ind.nodata)&&value!=null)values.push(value)}return values.sort(function(a,b){return a<b?-1:1})};PRankingCube.prototype.getSumOfIndicators=function(place,per,mean){var placeid;if(place)placeid=place.id;else placeid=this.places[0].id;var period;if(per)period=per;else period=this.periods[0];var sum=null;var indlength=0;for(var i=0;i<this.indicators.length;i++){var value=this.values[period][placeid][this.indicators[i].id][0];if(!(this.indicators[i].nodata&&value==this.indicators[i].nodata)&&value!=null){sum+=value;indlength++}}if(mean&&indlength>0)return sum/indlength;else return sum};PRankingCube.prototype.getSortedValuesOfIndicators=function(place,per){var placeid;if(place)placeid=place.id;else placeid=this.places[0].id;var period;if(per)period=per;else period=this.periods[0];var values=[];for(var i=0;i<this.indicators.length;i++){var value=this.values[period][placeid][this.indicators[i].id][0];if(!(this.indicators[i].nodata&&value==this.indicators[i].nodata)&&value!=null)values.push(value)}return values.sort(function(a,b){return a<b?-1:1})};PRankingCube.prototype.getSumOfPeriods=function(place,ind,mean){var placeid;if(place)placeid=place.id;else placeid=this.places[0].id;var indid;if(ind)indid=ind.id;else indid=this.indicators[0].id;var sum=null;var plength=0;for(var i=0;i<this.periods.length;i++){var value=this.values[this.periods[i]][placeid][indid][0];if(!(ind.nodata&&value==ind.nodata)&&value!=null){sum+=value;plength++}}if(mean&&plength>0)return sum/plength;else return sum};PRankingCube.prototype.getSortedValuesOfPeriods=function(place,ind){var placeid;if(place)placeid=place.id;else placeid=this.places[0].id;var indid;if(ind)indid=ind.id;else indid=this.indicators[0].id;var values=[];for(var i=0;i<this.periods.length;i++){var value=this.values[this.periods[i]][placeid][indid][0];if(!(ind.nodata&&value==ind.nodata)&&value!=null)values.push(value)}return values.sort(function(a,b){return a<b?-1:1})};function PRankingCubeOptions(values){values=values||new Object;this.loadRankings=values["loadRankings"]!=null?values["loadRankings"]:true;this.listOptions=values["listOptions"]!=null?values["listOptions"]:null}function PRankingValue(values){values=values||new Object;this.value=values["value"];this.rank=values["rank"];this.position=values["position"];this.totalRanked=values["totalRanked"];this.totalBoundaries=values["totalBoundaries"];this.boundaryName=values["boundaryName"]}PReportLink=function(){var urlParams=getUrlParams();this.url="reports?"+reportObject.urlSuffix;if(map!=null&&!urlParams["cx"]){var center=map.getCenterLatLng();this.url+="&cx="+center.x;this.url+="&cy="+center.y;this.url+="&cs="+map.getScale()}var reportNameElements=[".reportname",".report-name"];for(var i=0;i<reportNameElements.length;i++){var reportNameElement=$(reportNameElements[i]);if(reportNameElement.length>0){this.name=$(reportNameElement.get(0)).text();break}}if((reportObject==null||reportObject.code==null||reportObject.locationType==null)&&urlParams["area"]&&urlParams["type"]){var paramStr="";for(var i in urlParams){if(i!=""&&i!="sections"){paramStr+=i+"="+urlParams[i]+"&"}}if(paramStr.length>0){paramStr=paramStr.substring(0,paramStr.length-1)}this.url="reports?"+paramStr}var $elems=$(".reporttitles").find(".toggle");var arr=[];$elems.each(function(){if($(this).hasClass("close")){arr.push(0)}else{arr.push(1)}});this.url+="&sections="+arr.toString();if(urlParams["type"]=="hud"){this.name+=": "+urlParams["pname"]}else if(urlParams["type"]=="op"||urlParams["type"]=="optest"){var tempname="Opportunity Measurement Report. ";tempname+=$("#report_geography_long").text();this.name=tempname}else if(urlParams["type"]=="hfap"){var tempname="HFAP Report. ";tempname+=$("#report_location").text();this.name=tempname}else if(urlParams["type"].indexOf("wf_")==0){
this.name=$($(".reporttitle")[0]).text()+": "+urlParams["pname"]}else if(urlParams["type"]=="rd-usda"){var tempname="USDA RD Civil Rights Report - ";tempname+=$("#maptitle").text().trim()+" - ";this.name=tempname}else if(urlParams["type"]=="usdaex"){var tempname="USDA Exiting Report - ";tempname+=$("#maptitle").text().trim()+" - ";this.name=tempname}this.name+=" "+formattedDate();this.url+="&formattedDate="+formattedDate()};PrintPageSetup=function(){this.params=getUrlParams()};PrintPageSetup.prototype.setUpPrintPage=function(){this.checkParams()};PrintPageSetup.prototype.checkParams=function(){var params=this.params;if(params["island"]||params["islandp"]||params["islandcp"]){islandPrintEnabled=true}this.setOrientation();this.addLogo();if(params["bclass"]){$("body").addClass(params["bclass"])}if(params["margin"]){$("body").addClass(P.WKPrint.MARGIN_CLASS)}if(params["fontsize"]){$("body").addClass(P.WKPrint.FONT_CLASS+"--"+params["fontsize"])}if(params["hidesiteslegend"]){$("body").addClass("hide-sites-legend")}if(params["hideindlegend"]){$("body").addClass("hide-ind-legend")}if(params["hideboundarieslegend"]){$("body").addClass("hide-boundaries-legend")}P.instances.wkprint.prePrint=function(){if(params["ptitle"]!=null){var t;try{t=decodeURIComponent(params["ptitle"])}catch(e){t=params["ptitle"]}$(".print-map-title").show();$(".print-map-title").find(".title").show();$(".print-map-title").find(".title").html(t)}if(params["description"]!=null){var st;try{st=decodeURIComponent(params["description"])}catch(e){st=params["description"]}$(".print-map-title").show();$(".print-map-title").find(".description").show();$(".print-map-title").find(".description").html(st)}}};PrintPageSetup.prototype.setOrientation=function(){var p=this.params;var o=p["orientation"]||P.WKPrint.LANDSCAPE;P.instances.wkprint.setOrientation(o);if(typeof p["orientation"]!=="undefined"){if(p["orientation"]==P.WKPrint.LANDSCAPE){$("body").addClass("landscape")}else if(p["orientation"]==P.WKPrint.PORTRAIT){$("body").addClass("portrait")}}};PrintPageSetup.prototype.addLogo=function(){var p=this.params;if(p["printlogosrc"]){$("body").addClass("with-logo");var src=decodeURIComponent(p["printlogosrc"]);$("#map").append('<div class="custom-logo"><img src="'+src+'" /></div>')}};PrintPreview=function(data){this.$printableElement=$("body");this.$clonePlaceHolder;this.data=data;var t=PEnvironment.pageName;if(t=="widget"){t="maps"}this.data.template=t;this.listeners=[];this.setType(t);this.mapIsSet=false;this.currentplace=null;this.currentcustomregions={};this.map=P.instances.map;if(P.instances.googleMap&&P.instances.googleMap.showing){this.warning="Satellite imagery is not available for export images."}this.bodyClass="print-page";this.orientation=P.WKPrint.LANDSCAPE;P.instances.wkprint.setOrientation(this.orientation);this.margin=false;this.fontsize=P.WKPrint.FONTSIZE_SMALL;this.imageType=P.WKPrint.FORMAT_PDF;var ind=this.map.getIndicator();if(ind){this.showTitle=true;this.showDescription=$(".content__header__additional-info__content:visible").length;this.title=ind.getFullDisplayName();this.description=ind.getDescription()}P.instances.wkprint.setMargin(0);this.skippreview=false;if(isWidgetPage()){this.skippreview=true}};PrintPreview.prototype.display=function(){alerter.close();var $d=$("<div />",{class:"print-dialog print-preview-content"});$d.append(this.getPrintPreview());var self=this;var modalProperties={body:$d,header:"Export Your Work as an Image",footer:false,size:"modal-lg",closeCallback:function(){self.cancel()},events:{"shown.bs.modal":function(){self.on()}}};if(this.skipPreview()){this.print()}else{modal.popup(modalProperties)}};PrintPreview.prototype.getPrintPreview=function(){var data=this.data;data.printService="webkit";var content;var preview=true;if(this.skipPreview()){var preview=null}var type=this.getType();if(type=="maps"||type=="analytics"){var o={preview:preview?"addMapToPreview":null,opts:["getFileNameOption","getFontSizeOption","getOrientationOption","getTitleOption","getLegendOptions"],more:["getDescriptionOption","getBoundaryOutlineOption","getIslandOption","getInfoBubbleOption","getMarginsOption"]};this.imageType=P.WKPrint.FORMAT_PNG;P.instances.wkprint.setFormat(P.WKPrint.FORMAT_PNG);if(!this.skipPreview()){this.$printableElement=$(P.instances.map.getContainer());this.createClone();var content=this.getPreviewContent(o)}}else if(type=="tables"){var o={preview:preview?"addChartToPreview":null,opts:["getFileNameOption","getFontSizeOption","getOrientationOption","getImageTypeOption","getTitleOption"],more:["getDescriptionOption","getMarginsOption"]};if(!this.skipPreview()){this.$printableElement=$("#chartTable");this.createClone();var content=this.getPreviewContent(o)}}return content};PrintPreview.prototype.getPreviewContent=function(exportOpts){var data=this.data;var $content=$("<div/>");var $middleDiv=$("<div/>");$middleDiv.addClass("image-content");$content.append($middleDiv);var $col=$("<div />",{class:"options--col"});$middleDiv.append($col);this.$options=$col;var $preview=$("<div />",{class:"preview"});this.$previewSection=$preview;var $div=$("<div />",{class:"center-page"});var $m=$("<div />",{class:"print-dialog--map-container print-page landscape"});this.$mapPrintPage=$m;$div.append($m);$preview.append($div);var p=exportOpts.preview;if(p){this[p]()}$middleDiv.append($preview);var self=this;var $header=$("<div />",{class:"header"});$col.append($header);var $o=this.getExportButton(data);$header.append($o);var $divider=$("<div />",{class:"divider"});$header.append($divider);var $options=$("<div/>",{class:"options"});$col.append($options);var opts=exportOpts.opts;if(opts){for(var i=0;i<opts.length;i++){$options.append(this[opts[i]]())}}var opts=exportOpts.more;if(opts){var $more=$("<div />",{class:"more-options"});$options.append($more);for(var i=0;i<opts.length;i++){$more.append(this[opts[i]]())}$b=$("<div />",{class:"button--generic button--options",text:"More options +"});$b.toggle(function(){$more.toggle();var $t=$more.find("textarea");$t.each(function(){$(this).height(this.scrollHeight)});$(this).html("Fewer options &ndash;")},function(){$more.toggle();$(this).html("More options +")});$options.append($b)}var $footer=$("<div />",{class:"footer"});$col.append($footer);var $divider=$("<div />",{class:"divider"});$footer.append($divider);data.buttons=[];this.$content=$content;return $content};PrintPreview.prototype.getPrintUrlParams=function(){var arr=[];var p="";if(this.hideIndLegend){p+="&hideindlegend=true"}if(this.hideSitesLegend){p+="&hidesiteslegend=true"}if(this.hideBoundariesLegend){p+="&hideboundarieslegend=true"}if(this.showTitle){p+="&ptitle="+encodeURIComponent(this.title)}if(this.showDescription){p+="&description="+encodeURIComponent(this.description)}p+="&orientation="+this.orientation;p+="&format="+this.imageType;if(this.margin){p+="&margin="+this.margin}if(this.bodyClass){p+="&bclass="+this.bodyClass}if(this.fontsize){p+="&fontsize="+this.fontsize}if(this.useIsland){p+="&island=true";p+="&bo=all"}if(this.showLogo){p+="&printlogosrc="+encodeURIComponent(this.logosrc)}return p};PrintPreview.prototype.getExportButton=function(){var data=this.data;var self=this;var $b=$("<div />",{class:"button--export",text:"Export",click:function(){self.print()}});data.ExportButton=$b;return $b};PrintPreview.prototype.print=function(){var data=this.data;var self=this;var title=$(".print-map-title").find(".title").html();var url="";var type=self.getType();if(type=="maps"||type=="analytics"){data.link=new PMapLink(data.cb);url=data.link.url}else if(type=="tables"){data.link=new PChartLink(data);url=data.link.url}var params=self.getPrintUrlParams();self.setPrintSessionParams();var u="/"+url+params;P.instances.wkprint.setUrl(u);P.instances.wkprint.setPageSize(P.WKPrint.PAGESIZE_LETTER);P.instances.wkprint.setPrintCallback(function(response){self.exportComplete(response)});if(self.imageType==P.WKPrint.FORMAT_PDF){P.instances.wkprint.setWidth(null);P.instances.wkprint.setHeight(null)}else{var $c=$(".print-page");var w=$c.width();var h=$c.height();P.instances.wkprint.setWidth(w);P.instances.wkprint.setHeight(h)}var n=self.filename;P.instances.wkprint.setFileName(n);P.instances.wkprint.print()};PrintPreview.prototype.getTitleOption=function(){var d=this.data;var ind=this.map.getIndicator();var t="Enter a map title here.";if(ind){t=ind.getFullDisplayName()}this.title=t;var $content=$("<div />",{class:"option"});var $title=this.$mapPrintPage.find(".print-map-title").find(".title");$title.html(this.title);var skey="print-showtitle";var def=true;var ch=this.getDefault(skey,def);var id="print-title-option";var $c=$("<input />",{type:"checkbox",id:id,checked:ch});this.showTitle=true;var $label=$("<label />",{for:id,html:"Title"});var self=this;var $buttonContainer=$("<div />",{class:"edit-container"});var $pencil=$("<div />",{class:"pencil"});var $button=$("<div />",{class:"button--generic button--edit"});var $text=$("<div />",{class:"text",text:self.title});$button.append($text);$button.on("click",function(e){if(self.showTitle){self.enterEditTextMode(e,this)}});$buttonContainer.append($button,$pencil);var self=this;var setTitle=function(e,elem){var html="";var lines=$(elem).val().split("\n");for(var i=0;i<lines.length;i++){html+=lines[i];if(i<lines.length-1){html+="<br>"}}self.title=html;$title.html(html)};var $input=$("<textarea />",{class:"text-edit",html:self.title,maxlength:1e3});$input.hide();$input.on("blur",function(e){self.exitEditTextMode(e,this)});$input.on("keyup",function(e){setTitle(e,this)});$buttonContainer.append($input);$note=$("<div />",{class:"note"});var self=this;var f=function(elem){if(elem.checked){self.showTitle=true;$title.show();$buttonContainer.removeClass("disabled")}else{self.showTitle=false;$title.hide();$buttonContainer.addClass("disabled")}session.put(skey,elem.checked)};$c.click(function(){f(this)});f($c[0]);$content.append($c,$label,$buttonContainer,$note);return $content};PrintPreview.prototype.getOrientationOption=function(){var d=this.data;var defaultType=P.WKPrint.LANDSCAPE;this.orientation=defaultType;var map=this.map;var skey="print-orientation";defaultType=this.getDefault(skey,defaultType);var $content=$("<div />",{class:"option"});var self=this;var f=function(elem,onOpen){var value=elem.value;self.orientation=value;P.instances.wkprint.setOrientation(value);session.put(skey,value);var center=map.getCenter();if(elem&&elem.id=="portrait"){self.$mapPrintPage.removeClass("landscape").addClass("portrait");self.$mapPrintPage.parent().removeClass("landscape").addClass("portrait")}else{self.$mapPrintPage.removeClass("portrait").addClass("landscape");self.$mapPrintPage.parent().removeClass("portrait").addClass("landscape")}if(!onOpen){self.refreshMap(center)}};var radios={};var type=P.WKPrint.LANDSCAPE;var $r=$("<input/>");radios[type]=$r;$r.attr({id:"landscape",name:"orientation",type:"radio",value:type,checked:defaultType==type?true:false});$r.click(function(){f(this)});$content.append($r);var $landscapeLabel=$("<label/>");$landscapeLabel.attr("for","landscape");$landscapeLabel.text("Landscape");$content.append($landscapeLabel);var type=P.WKPrint.PORTRAIT;var $r=$("<input/>",{class:"right-side"});radios[type]=$r;$r.attr({id:"portrait",name:"orientation",type:"radio",value:type,checked:defaultType==type?true:false});$r.click(function(){f(this)});$content.append($r);var $portraitLabel=$("<label/>");$portraitLabel.attr("for","portrait");$portraitLabel.text("Portrait");$content.append($portraitLabel);f(radios[defaultType][0],true);return $content};PrintPreview.prototype.getImageTypeOption=function(){var d=this.data;var defaultType=P.WKPrint.FORMAT_PDF;this.imageType=defaultType;var skey="print-imagetype";defaultType=this.getDefault(skey,defaultType);var self=this;var f=function(elem){var format=elem.value;P.instances.wkprint.setFormat(format);self.imageType=format;session.put(skey,format)};var $content=$("<div />",{class:"option"});var radios={};var type=P.WKPrint.FORMAT_PDF;var $r=$("<input/>");radios[type]=$r;$r.attr({id:"pdfCheckbox",name:"image-type",type:"radio",value:type,checked:defaultType==type?true:false});$content.append($r);var $pdfLabel=$("<label/>");$pdfLabel.attr("for","pdfCheckbox");$pdfLabel.text("PDF");$content.append($pdfLabel);$r.bind("click",function(){f(this)});var type=P.WKPrint.FORMAT_PNG;var $r=$("<input/>",{class:"right-side"});radios[type]=$r;$r.attr({id:"pngCheckbox",name:"image-type",type:"radio",value:type,checked:defaultType==type?true:false});$content.append($r);var $pngLabel=$("<label/>");$pngLabel.attr("for","pngCheckbox");$pngLabel.text("PNG");$content.append($pngLabel);$r.bind("click",function(){f(this)});f(radios[defaultType][0]);return $content};PrintPreview.prototype.getDescriptionOption=function(){var d=this.data;this.showDescription=false;var ind=this.map.getIndicator();var $content=$("<div />",{class:"option"});if(!ind){this.description="";this.showDescription=false;return""}var skey="print-showdescription";var def=false;var ch=def;if(ind){ch=this.getDefault(skey,def)}this.description="Enter a description here.";if(ind){this.description=ind.getDescription()}var self=this;var $title=this.$mapPrintPage.find(".print-map-title").find(".description");$title.html(self.description);var id="print-description-option";var $c=$("<input />",{type:"checkbox",id:id,checked:ch});var $label=$("<label />",{for:id,html:"Data Layer description"});var self=this;var $buttonContainer=$("<div />",{class:"edit-container"});var $pencil=$("<div />",{class:"pencil"});var $button=$("<div />",{class:"button--generic button--edit"});var $text=$("<div />",{class:"text",text:self.description});$button.append($text);$button.bind("click",function(e){if(self.showTitle){self.enterEditTextMode(e,this)}});$buttonContainer.append($button,$pencil);var self=this;var setTitle=function(e,elem){var html="";var lines=$(elem).val().split("\n");for(var i=0;i<lines.length;i++){html+=lines[i];if(i<lines.length-1){html+="<br>"}}self.description=html;$title.html(html)};var $input=$("<textarea />",{class:"text-edit",html:self.description,maxlength:1e3});$input.hide();$input.bind("blur",function(e){self.exitEditTextMode(e,this)});$input.bind("keyup",function(e){setTitle(e,this)});$buttonContainer.append($input);$note=$("<div />",{class:"note"});var f=function(elem){if(elem.checked){self.showDescription=true;$title.show();$buttonContainer.removeClass("disabled")}else{self.showDescription=false;$title.hide();$buttonContainer.addClass("disabled")}session.put(skey,elem.checked)};$c.click(function(){f(this)});f($c[0]);$content.append($c,$label,$buttonContainer,$note);return $content};PrintPreview.prototype.getLegendOptions=function(){var d=this.data;this.hideIndLegend=false;this.hideSitesLegend=false;this.hideBoundariesLegend=false;var $content=$("<div />",{class:"option"});var m=this.map;var ind=m.getIndicator();var sites=m.getOverlaySets();var boundaries=m.mapOptions.getCurrentBoundaries();if(ind||sites&&sites.length>0||boundaries&&$.isEmptyObject(boundaries)==false){var $t=$("<div />",{class:"opt-title"});$t.html("Include legend(s):");$content.append($t)}var self=this;if(ind){var $leg=$("<input />");$leg.click(function(){self.$mapPrintPage.toggleClass("hide-ind-legend");self.hideIndLegend=!this.checked});d.indLegendInput=$leg;$leg.attr({id:"ind-legend-opt",name:"leg-type",type:"checkbox",checked:!self.hideIndLegend});$content.append($leg);var $l=$("<label/>",{class:"sub-label"});$l.attr("for","ind-legend-opt");$l.text(ind.getLabel());$content.append($l);$content.append("<br />")}var hasInd=false;var legMerger=m.getLegendMerger();if(legMerger){var hasInd=legMerger.hasIndicatorOn()}if(hasInd){var $leg=$("<input />");$leg.click(function(){self.$mapPrintPage.toggleClass("hide-ind-legend");self.hideIndLegend=!this.checked});d.indLegendInput=$leg;$leg.attr({id:"ind-legend-opt",name:"leg-type",type:"checkbox",checked:!self.hideIndLegend});$content.append($leg);var $l=$("<label/>",{class:"sub-label"});$l.attr("for","ind-legend-opt");$l.text("3-Layer Map Legend");$content.append($l);$content.append("<br />")}if(sites&&sites.length>0){var $leg=$("<input />");$leg.click(function(){self.$mapPrintPage.toggleClass("hide-sites-legend");self.hideSitesLegend=!this.checked});d.sitesLegendInput=$leg;$leg.attr({id:"sites-legend-opt",name:"leg-type",type:"checkbox",checked:!self.hideSitesLegend});$content.append($leg);var $l=$("<label/>",{class:"sub-label"});$l.attr("for","sites-legend-opt");$l.text("Points Legend");$content.append($l);$content.append("<br />")}if(boundaries&&$.isEmptyObject(boundaries)==false){var $leg=$("<input />");$leg.click(function(){self.$mapPrintPage.toggleClass("hide-boundaries-legend");self.hideBoundariesLegend=!this.checked});d.boundariesLegendInput=$leg;$leg.attr({id:"boundaries-legend-opt",name:"leg-type",type:"checkbox",checked:!self.hideBoundariesLegend});$content.append($leg);var $l=$("<label/>",{class:"sub-label"});$l.attr("for","boundaries-legend-opt");$l.text("Boundaries Legend");$content.append($l)}return $content};PrintPreview.prototype.getBoundaryOutlineOption=function(){var d=this.data;var $content=$("<div />",{class:"option"});var m=this.map;if((!mapstates.currentplace||mapstates.currentplace.id==null)&&polycreator.getCustomPlacesCount()==0){return""}var $t=$("<div />",{class:"opt-title"});$t.html("Outline selected location(s):");$content.append($t);var self=this;if(mapstates.currentplace&&mapstates.currentplace.id){var place=mapstates.currentplace;var id="outline-opt-"+place.getID();var $ch=$("<input />",{id:id,type:"checkbox",checked:true});$ch.data("p",place);var $l=$("<label/>",{for:id,class:"sub-label",text:mapstates.currentplace.getLabel()});$ch.click(function(){var $this=$(this);var place=$this.data("p");if(this.checked){addPolygons(map,place);session.put("p",place.id)}else{clearPolygons(map);clearPlaceFromSessionAndOtherVariables()}if(self.useIsland){map.refresh()}});$content.append($ch);$content.append($l);$content.append("<br />")}var customplaces=polycreator.getCustomPlaces();for(var p in customplaces){var place=customplaces[p].place;var id="outline-opt-"+place.getID();var $ch=$("<input />",{id:id,type:"checkbox",checked:true});$ch.data("p",place);var $l=$("<label/>",{for:id,class:"sub-label",text:place.getLabel()});var trfCustomRegions=P.instances.trfCustomRegions;$ch.click(function(){var $this=$(this);var place=$this.data("p");if(this.checked){trfCustomRegions.addCustomRegion(place,true)}else{trfCustomRegions.removeCustomRegion(place)}if(self.useIsland){map.refresh()}});$content.append($ch);$content.append($l);$content.append("<br />")}return $content};PrintPreview.prototype.getIslandOption=function(){var d=this.data;this.useIsland=false;if(this.getType()=="analytics"){return""}var m=this.map;var hasInd=m.getIndicator()?true:false;var hasPoints=map.getOverlaySets(true,true).length>0;if(!hasInd&&!hasPoints||(!mapstates.currentplace||mapstates.currentplace.id==null)&&polycreator.getCustomPlacesCount()==0){return""}var self=this;var $content=$("<div />",{class:"option"});var $ch=$("<input />");$ch.click(function(){var $this=$(this);var checked=this.checked;islandPrintEnabled=checked;map.refresh();self.useIsland=checked});$ch.attr({id:"island-opt",type:"checkbox",checked:self.useIsland});$content.append($ch);var $l=$("<label/>",{class:"opt-title"});$l.attr("for","island-opt");$l.text("Cut out selected location(s)");$content.append($l);$content.append("<br />");var $bounds=$("<div />",{class:"boundary-options"});$content.append($bounds);return $content};PrintPreview.prototype.getInfoBubbleOption=function(){var d=this.data;var $content=$("<div />",{class:"option"});var m=this.map;var bubble=m.getInfoWindow();if(!bubble||bubble.isHidden()){return""}var $ch=$("<input />");$ch.click(function(){var $this=$(this);if(this.checked){bubble.show()}else{bubble.hide()}});$ch.attr({id:"info-bubble-opt",type:"checkbox",checked:true});$content.append($ch);var $l=$("<label/>",{class:"opt-title"});$l.attr("for","info-bubble-opt");$l.text("Include info bubble");$content.append($l);$content.append("<br />");return $content};PrintPreview.prototype.getMarginsOption=function(){var d=this.data;var $content=$("<div />",{class:"option"});var skey="print-margin";var def=false;var ch=this.getDefault(skey,def);var $c=$("<input />");$c.attr({id:"margins-opt",type:"checkbox",checked:ch});var self=this;var f=function(elem,onOpen){var center=map.getCenter();var cl=P.WKPrint.MARGIN_CLASS;if(elem.checked){self.$mapPrintPage.addClass(cl)}else{self.$mapPrintPage.removeClass(cl)}if(!onOpen){map.kamap.resize();map.setCenter(center)}self.margin=elem.checked;session.put(skey,elem.checked)};$c.click(function(){f(this)});$content.append($c);f($c[0],true);var $l=$("<label/>",{class:"opt-title"});$l.attr("for","margins-opt");$l.text("Add print margins");$content.append($l);$content.append("<br />");return $content};PrintPreview.prototype.getFontSizeOption=function(){var d=this.data;var defaultType=P.WKPrint.FONTSIZE_SMALL;var map=this.map;var skey=P.WKPrint.FONT_CLASS;defaultType=this.getDefault(skey,defaultType);var $content=$("<div />",{class:"option text-size-option"});var $l=$("<label />");$l.html("Text size");$content.append($l);var self=this;var f=function(elem){var value=elem.id;session.put(skey,value);self.fontsize=value;$(elem).addClass("selected");var $e;self.$mapPrintPage.addClass(P.WKPrint.FONT_CLASS+"--"+value);if(elem&&elem.id=="small"){$e=$(elem).next()}else{$e=$(elem).prev()}$e.removeClass("selected");self.$mapPrintPage.removeClass(P.WKPrint.FONT_CLASS+"--"+$e.attr("id"))};var buttons={};var type=P.WKPrint.FONTSIZE_SMALL;var $b=$("<div />",{class:"button--font "+type,id:type,html:"Aa"});if(defaultType==type){$b.addClass("selected")}buttons[type]=$b;$b.click(function(){f(this)});$content.append($b);var type=P.WKPrint.FONTSIZE_MEDIUM;var $b=$("<div />",{class:"button--font "+type,id:type,html:"Aa"});if(defaultType==type){$b.addClass("selected")}buttons[type]=$b;$b.click(function(){f(this)});$content.append($b);f(buttons[defaultType][0],true);return $content};PrintPreview.prototype.getFileNameOption=function(){var d=this.data;var $content=$("<div />",{class:"option"});var skey="print-filename";var def="PolicyMap Map";if(this.getType()=="tables"){def="PolicyMap Table"}var defaultName=this.getDefault(skey,def);this.filename=defaultName;var self=this;var f=function(elem){session.put(skey,elem.value)};var $d=$("<div />",{class:"opt-title",text:"Filename"});$content.append($d);var $buttonContainer=$("<div />",{class:"edit-container"});var $pencil=$("<div />",{class:"pencil"});var $button=$("<div />",{class:"button--generic button--edit"});var $text=$("<div />",{class:"text",text:defaultName});$button.append($text);$button.on("click",function(e){self.enterEditTextMode(e,this)});$buttonContainer.append($button,$pencil);var self=this;var setTitle=function(e,elem){var t=$(elem).val();self.filename=t};var $input=$("<input />",{class:"text-edit",html:defaultName,maxlength:155});$input.hide();$input.on("blur",function(e){var t=$(this).val();if(t==""){t=def;$(this).val(t);self.filename=t}self.exitEditTextMode(e,this)});$input.on("keyup",function(e){setTitle(e,this)});$buttonContainer.append($input);$note=$("<div />",{class:"note"});$content.append($buttonContainer);$content.append($note);return $content};PrintPreview.prototype.getLogoOption=function(){var d=this.data;this.showLogo=false;this.logosrc="/images/policymap_80x80.png";if($(this.map.getContainer()).find("custom-print-logo").length==0){var logo='<div class="custom-print-logo"><img src="'+this.logosrc+'" /></div>';$(this.map.getContainer()).append(logo)}var $content=$("<div />",{class:"option"});var self=this;var $ch=$("<input />");$ch.click(function(){self.showLogo=this.checked;if(this.checked){$(".print-page").addClass("with-logo")}else{$(".print-page").removeClass("with-logo")}});$ch.attr({id:"logo-opt",type:"checkbox",checked:self.showLogo});$content.append($ch);var $l=$("<label/>",{class:"opt-title"});$l.attr("for","logo-opt");$l.text("Insert logo");$content.append($l);$content.append("<br />");var $b=$("<div />",{class:"button--generic button--upload",text:"Upload file"});$content.append($b);$content.append("<br />");var $note=$("<div />",{class:"note"});$note.html("JPG, PNG, GIF - no longer than 200 x 200 px");$content.append($note);return $content};PrintPreview.prototype.putMapBack=function(){this.off();$(".legend").draggable("enable");var m=this.map;islandPrintEnabled=false;m.refresh();var $map=this.$printableElement;$map.removeClass("print-content");var center=m.getCenter();if(this.wasMapMoved()==null&&this.baseMapCenter){center=this.baseMapCenter}this.$clonePlaceHolder.replaceWith($map);$map.removeClass("landscape portrait map--print-dialog");m.kamap.resize();$(window).trigger(P.events.MAP_CHECK_RESIZE);m.setCenter(center);this.updateInfoBubble();PMIdentificationModule.enableClick();m.enableDoubleClickZoom();m.enableScrollWheelZoom()};PrintPreview.prototype.putChartBack=function(){this.off();var $c=this.$printableElement;$c.removeClass("print-content");this.$clonePlaceHolder.replaceWith($c);$c.removeClass("landscape portrait map--print-dialog")};PrintPreview.prototype.updateInfoBubble=function(){var b=this.map.getInfoWindow();if(b&&!b.isHidden()){var tab=b.getSelectedTab();b.selectTab(tab)}};PrintPreview.prototype.addMapToPreview=function(){this.addMapListeners();this.mapWasMoved=null;var $container=this.$mapPrintPage;var m=this.map;PMIdentificationModule.disableClick();m.disableDoubleClickZoom();m.disableScrollWheelZoom();$(".legend").draggable("disable");var center=m.getCenter();this.baseMapCenter=center;var $clone=this.$clonePlaceHolder;if($("#googleMap").length>0){$clone.insertBefore("#googleMap")}else{this.$printableElement.parent().append($clone)}var $c=this.$printableElement;$container.append($c);$c.addClass("print-content");this.addZoomControl()};PrintPreview.prototype.addChartToPreview=function(){var $preview_container=this.$mapPrintPage;var $clone=this.$clonePlaceHolder;this.$printableElement.parent().append($clone);var $c=this.$printableElement;$c.addClass("print-content");$preview_container.append($c)};PrintPreview.prototype.exportComplete=function(response){modal.close();var t="<div class='alertDialogTitle'>Your image is currently downloading.<br />This may take several minutes.</div>";t+="<div class='alertDialogHR'></div>";if(PEnvironment.isPolicyMap||PEnvironment.isSiteLicense){t+="<div class='alertDialogHeader'><b>Note:</b> Images no longer save to your \"Saved Work\" on PolicyMap.</div>"}alerter.popup(t)};PrintPreview.prototype.getCurrentPlace=function(){return this.currentplace};PrintPreview.prototype.getCurrentCustomRegions=function(){return this.currentcustomregions};PrintPreview.prototype.getCurrentCustomRegionIds=function(){var places=this.getCurrentCustomRegions();var arr=[];for(var i in places){arr.push(places[i].getID())}if(arr.length==0){arr=null}return arr};PrintPreview.prototype.isOn=function(){return this.previewIsOn};PrintPreview.prototype.on=function(){if(!this.mapIsSet){this.refreshMap()}this.previewIsOn=true;var $t=this.$content.find("textarea");$t.each(function(){$(this).height(this.scrollHeight)})};PrintPreview.prototype.off=function(){this.previewIsOn=false;this.removeListeners()};PrintPreview.prototype.setPrintSessionParams=function(){var d=this.data;var obj={showtitle:this.showTitle,showdescription:this.showDescription,ptitle:this.title,pdescription:this.description,orientation:this.orientation,bclass:this.bodyClass,hideindlegend:this.hideIndLegend,hidesiteslegend:this.hideSitesLegend,hideBoundariesLegend:this.hideBoundariesLegend,island:this.useIsland,margin:this.margin,imagetype:this.imageType,logosrc:this.logosrc}};PrintPreview.prototype.getDefault=function(k,d){var v=d;var s=session.get(k);if(typeof s!=="undefined"){v=s}return v};PrintPreview.prototype.refreshMap=function(center){this.map.kamap.resize();this.map.refresh();if(center){map.setCenter(center)}else{var c=this.baseMapCenter;if(c){map.setCenter(c)}}$(window).trigger(P.events.MAP_CHECK_RESIZE);this.mapIsSet=true};PrintPreview.prototype.exitEditTextMode=function(e,elem){$(elem).hide();var t=$(elem).val();var $b=$(elem).parent().find(".button--edit");$b.find(".text").text(t);$b.show();var $p=$(elem).parent().find(".pencil");$p.show()};PrintPreview.prototype.enterEditTextMode=function(e,elem){if($(elem).parent().hasClass("disabled")){return}$(elem).hide();$(elem).parent().find(".pencil").hide();var $editBox=$(elem).parent().find(".text-edit");$editBox.show();$editBox.focus()};PrintPreview.prototype.addZoomControl=function(){var map=this.map;var $cont=$("<div />",{class:"preview-zoom-container"});var $zIn=$("<div />",{title:"Zoom in",class:"zoom"});var p=$("<span />",{class:"zoom-plus"});$zIn.append(p);var $div=$("<div />",{class:"zoom-divider"});var $zOut=$("<div />",{title:"Zoom out",class:"zoom"});var p=$("<span />",{class:"zoom-minus"});$zOut.append(p);$cont.append($zIn,$div,$zOut);$zIn.on("mouseup",function(){map.zoomIn()});$zOut.on("mouseup",function(){map.zoomOut()});var $alert=$("<div />",{class:"alert-pan-zoom"});var $s=$("<span />",{class:"alert-pan-zoom-img"});$alert.append($s);$alert.append("Pan and zoom to format your image");this.$previewSection.one("mouseover",function(){$alert.animate({opacity:0,bottom:"50px"},750,null,function(){$(this).hide()})});this.$previewSection.append($cont,$alert)};PrintPreview.prototype.cancel=function(){this.replacePrintableElement();this.off()};PrintPreview.prototype.replacePrintableElement=function(){var t=this.getType();if(t=="maps"||t=="analytics"){this.putMapBack()}else if(t=="tables"){this.putChartBack()}};PrintPreview.prototype.getType=function(){return this.type};PrintPreview.prototype.setType=function(t){this.type=t};PrintPreview.prototype.createClone=function(){this.$clonePlaceHolder=this.$printableElement.clone(true).addClass("clone--place-holder")};PrintPreview.prototype.skipPreview=function(){return this.skippreview};PrintPreview.prototype.wasMapMoved=function(){return this.mapWasMoved};PrintPreview.prototype.setWasMapMoved=function(wasMoved){this.mapWasMoved=wasMoved};PrintPreview.prototype.addMapListeners=function(){var self=this;this.listeners.push(PEvent.addListener(map,"zoomend",function(){self.setWasMapMoved(true)}));this.listeners.push(PEvent.addListener(map,"dragend",function(){self.setWasMapMoved(true)}))};PrintPreview.prototype.removeListeners=function(){for(var i=0;i<this.listeners.length;i++){PEvent.removeListener(this.listeners[i])}this.listeners=[]};ProductProperty=function(data){this.data=data;this.PRODUCT_TYPE_SERVICES_CLIENT=1;this.PRODUCT_TYPE_SITE_LICENSE=2;this.PRODUCT_TYPE_WIDGET=3;this.PROPERTY_TYPE_TEXT=1;this.PROPERTY_TYPE_NUMBER=2;this.PROPERTY_TYPE_BOOLEAN=3;this.PROPERTY_TYPE_JSON_OBJECT=4;this.typeNames={};this.typeNames[this.PROPERTY_TYPE_TEXT]="Text";this.typeNames[this.PROPERTY_TYPE_NUMBER]="Number";this.typeNames[this.PROPERTY_TYPE_BOOLEAN]="Boolean";this.typeNames[this.PROPERTY_TYPE_JSON_OBJECT]="JSON Object"};ProductProperty.prototype.exists=function(propertyName){return this.data[propertyName]!=null};ProductProperty.prototype.get=function(propertyName){if(this.data[propertyName]==null){return null}else{return this.data[propertyName]}};ProductProperty.prototype.getValue=function(propertyName){if(this.data[propertyName]==null){return false}else{return this.data[propertyName].value}};ProductProperty.prototype.getTypeId=function(propertyName){if(this.data[propertyName]==null){return null}else{return this.data[propertyName].type}};ProductProperty.prototype.getTypeName=function(propertyName){if(this.data[propertyName]==null){return null}else{return this.typeNames[this.data[propertyName].type]}};PSession=function(data){this.debug=new P.Debug;this.eventManager=new PEventManager;this.ACTION_GET="g";this.ACTION_SAVE="s";this.ACTION_CLEAR="c";this.ACTION_ATTRIB="attrib";this.ACTION_META="meta";this.url=PEnvironment.sessionUrl;this.init(data)}
;PSession.prototype.init=function(data){var self=this;self.purge();_.each(data,function(value,key){if(typeof value==="string"){switch(key){case"cp":try{self.put(key,JSON.parse(value))}catch(exception){self.put(key,value.split(","))}break;default:self.put(key,value)}}else{self.put(key,value)}})};PSession.prototype.purge=function(){this.data={}};PSession.prototype.toURI=function(){var query="?";if(this.get("i"))query+="i="+this.get("i");if(this.get("p"))query+="&p="+this.get("p");if(this.get("period"))query+="&period="+this.get("period");if(this.get("tf"))query+="&tf="+this.get("tf");if(this.get("o"))query+="&o="+this.get("o");query=query=="?"?"":query;return query};PSession.prototype.fromURI=function(o){this.put("p",o["p"]);this.put("i",o["i"]);this.put("period",o["period"]);this.put("tf",o["tf"]);this.put("o",o["o"])};PSession.prototype.onput=function(k,v){this.eventManager.triggerListeners("put",k,v)};PSession.prototype.onremove=function(k){this.eventManager.triggerListeners("remove",k)};PSession.prototype.onchange=function(){this.eventManager.triggerListeners("change")};PSession.prototype.addListener=function(eventId,f){this.eventManager.addListener(eventId,f)};PSession.prototype.get=function(k){return this.data[k]};PSession.prototype.put=function(key,value){if(value==null||value===""||value==="undefined"||typeof value=="object"&&$.isEmptyObject(value)){this.remove(key);return}if(typeof value=="number")value+="";switch(key){case"cp":if(typeof value==="string"){this.data[key]=value.split(",")}else if(_.isArray(value)){this.data[key]=value;this.onput(key,value)}break;default:this.data[key]=value;this.onput(key,value)}this.onchange()};PSession.prototype.remove=function(k){if(this.data[k]==null){return}this.data[k]="";this.save();delete this.data[k];this.onremove()};PSession.prototype.removeAllRelevant=function(){var removeVars=["i","btd","p","chp","pLabel","o","dlo","dloz","period","tf","place","lat","lng","zoom","ofilters","cp","nb","moo","legendind","mvalayers","lind","bid","pname","plat","plng","agg","rp","ps","m0i","m1i","m2i","curLat","curLng","curZoom","breaks","rmp","ibi"];for(var i=0;i<removeVars.length;i++){var check=this.get(removeVars[i]);if(check!=null){session.remove(removeVars[i])}}};PSession.prototype.clear=function(){if(P.WKPrint.isPrintPage()===true){return}this.data={};var postData={act:this.ACTION_CLEAR};ajax.call({url:this.url,dataType:"json",type:"post",data:postData,noars:true,pleaseWait:false,async:false})};PSession.prototype.save=function(){if(this.debug.getCookie("developerControlPanelSessionSave")!=null){return}if(P.WKPrint.isPrintPage()===true){return}if(PEnvironment.pageName=="embedmap_dyn"){return}var data={act:this.ACTION_SAVE,data:this.data};ajax.call({url:this.url,dataType:"json",type:"post",noars:true,pleaseWait:false,data:data,async:false})};PSession.prototype.load=function(ignoreRedirect,callback){var data={act:this.ACTION_GET};ajax.call({url:this.url,context:this,dataType:"json",type:"post",data:data,noars:true,pleaseWait:false,success:function(response){var redirect=null;if(ignoreRedirect==null||ignoreRedirect!==true){if(this.get("redirect")!=null){redirect=this.get("redirect")}}if(response!=null&&response.session!=null){this.init(response.session);if(this.get(P.constants.sessionUsername)!=null){$(window).trigger(P.events.LOGGED_IN)}else{$(window).trigger(P.events.LOGGED_OUT)}if(redirect!=null){setWindowLocation(redirect)}if(callback!=null){callback()}}}})};PSession.prototype.checkUrl=function(params){var urlParams;if(!params){urlParams=getUrlParams()}else{urlParams=params}if(urlParams["o"]){var os=urlParams["o"].split(",");for(var i=0;i<os.length;i++){if(!allowedPinsets(os[i]))return}}var staleIndicators=function(id,analytics){var staleInds=[9609197,9608806,9608894,9608769,9608989,9608896];for(var i=0;i<staleInds.length;i++){if(staleInds[i]==id){var text="The data layer that was saved with this page is no longer available. Please use the Add Data Layer menu above to select an alternative indicator.";if(analytics)text="One or more of the data layers saved with this page is no longer available. Please use the Add Data Layer menu above to select an alternative indicator.";alerter.popup(text,"OK");return true}}return false};if(!isCBClone()&&urlParams["i"]){if(staleIndicators(urlParams["i"])){return}}if(urlParams["i"]||urlParams["btd"]||urlParams["p"]||urlParams["chp"]||urlParams["period"]||urlParams["tf"]||urlParams["place"]||urlParams["o"]||urlParams["dlo"]||urlParams["dloz"]||urlParams["ofilters"]||urlParams["cp"]||urlParams["nb"]||urlParams["moo"]||urlParams["lng"]||urlParams["lat"]||urlParams["zoom"]||urlParams["iwx"]||urlParams["iwy"]||urlParams["lind"]||urlParams["bid"]||urlParams["pname"]||urlParams["plat"]||urlParams["plng"]||urlParams["agg"]||urlParams["rp"]||urlParams["ibi"]){this.remove("i");this.remove("btd");this.remove("p");this.remove("chp");this.remove("pLabel");this.remove("period");this.remove("tf");this.remove("place");this.remove("o");this.remove("dlo");this.remove("dloz");this.remove("ofilters");this.remove("cp");this.remove("nb");this.remove("moo");this.remove("lng");this.remove("lat");this.remove("zoom");this.remove("lind");this.remove("bid");this.remove("pname");this.remove("plat");this.remove("plng");this.remove("agg");this.remove("rp");this.remove("ibi")}if(urlParams["m0i"]||urlParams["m1i"]||urlParams["m2i"]){for(var i=0;i<3;i++){this.remove("m"+i+"i");this.remove("m"+i+"btd");this.remove("m"+i+"r0");this.remove("m"+i+"r1");this.remove("m"+i+"period");this.remove("m"+i+"tf");this.remove("m"+i+"v");if(!isCBClone()&&urlParams["m"+i+"i"]){if(staleIndicators(urlParams["m"+i+"i"],true)){continue}}if(urlParams["m"+i+"i"])this.put("m"+i+"i",urlParams["m"+i+"i"]);if(urlParams["m"+i+"btd"])this.put("m"+i+"btd",urlParams["m"+i+"btd"]);if(urlParams["m"+i+"r0"])this.put("m"+i+"r0",urlParams["m"+i+"r0"]);if(urlParams["m"+i+"r1"])this.put("m"+i+"r1",urlParams["m"+i+"r1"]);if(urlParams["m"+i+"period"])this.put("m"+i+"period",urlParams["m"+i+"period"]);if(urlParams["m"+i+"tf"])this.put("m"+i+"tf",urlParams["m"+i+"tf"]);if(urlParams["m"+i+"v"])this.put("m"+i+"v",decodeURIComponent(urlParams["m"+i+"v"]))}}if(urlParams["cp"]){this.put("cp",urlParams["cp"].split(","))}if(urlParams["ibi"]){var ibiString=urlParams["ibi"];var ibiObject=null;var ibis=ibiString.split(",");for(var i=0;i<ibis.length;i++){var curPair=ibis[i];var curVal=curPair.split(":");if(curVal.length==2&&curVal[0]!=null&&curVal[1]!=null){if(ibiObject==null){ibiObject={}}ibiObject[curVal[0]]=curVal[1]}}if(ibiObject!=null){this.put("ibi",ibiObject)}}if(urlParams["i"])this.put("i",urlParams["i"]);if(urlParams["cx"])this.put("curLng",urlParams["cx"]);if(urlParams["cy"])this.put("curLat",urlParams["cy"]);if(urlParams["cz"])this.put("curZoom",urlParams["cz"]);if(urlParams["btd"])this.put("btd",urlParams["btd"]);if(urlParams["p"])this.put("p",urlParams["p"]);if(urlParams["chp"])this.put("chp",urlParams["chp"]);if(urlParams["period"])this.put("period",urlParams["period"]);if(urlParams["tf"])this.put("tf",urlParams["tf"]);if(urlParams["place"])this.put("place",unescape(urlParams["place"]));if(urlParams["o"])this.put("o",urlParams["o"]);if(urlParams["dlo"])this.put("dlo",urlParams["dlo"]);if(urlParams["dloz"])this.put("dloz",urlParams["dloz"]);if(urlParams["ofilters"])this.put("ofilters",urlParams["ofilters"]);if(urlParams["nb"])this.put("nb",urlParams["nb"]);if(urlParams["moo"])this.put("moo",urlParams["moo"]);if(urlParams["rmp"])this.put("rmp",urlParams["rmp"]);if(urlParams["lind"])this.put("lind",urlParams["lind"]);if(urlParams["bid"])this.put("bid",urlParams["bid"]);if(urlParams["pname"])this.put("pname",urlParams["pname"]);if(urlParams["plat"])this.put("plat",urlParams["plat"]);if(urlParams["plng"])this.put("plng",urlParams["plng"]);if(urlParams["agg"])this.put("agg",urlParams["agg"]);if(urlParams["rp"])this.put("rp",urlParams["rp"])};PSession.prototype.getFilters=function(overlaySet,ignoreColorCodes){var filters=[];var filterIdsString=this.get("ofilters");if(overlaySet==null||filterIdsString==null||filterIdsString.length<1){return filters}var filterIdsArray=filterIdsString.split(",");var filterIds=[];var colorCodeGroupIds=[];for(var i=0;i<filterIdsArray.length;i++){var curFilterId=filterIdsArray[i];if(curFilterId.charAt(0)=="c"&&ignoreColorCodes!==true){colorCodeGroupIds.push(curFilterId.substring(1))}else{filterIds.push(curFilterId)}}var filterGroups=overlaySet.getDisplayFilters();for(groupName in filterGroups){var groupFilters=filterGroups[groupName];if(groupFilters.length==0){continue}var curGroupId=groupFilters[0].groupId;if(colorCodeGroupIds.length>0){for(var j=0;j<colorCodeGroupIds.length;j++){if(colorCodeGroupIds[j]==curGroupId){var newFilter=new PAttributeFilter(groupName,["COLORCODE"],groupFilters[0].type,"Color Code All",groupFilters[0].columnName,groupFilters[0].columnType,0,curGroupId);filters.push(newFilter);colorCodeGroupIds.splice(j,1);break}}}if(filterIds.length>0){for(var j=0;j<groupFilters.length;j++){var curFilter=groupFilters[j];for(k=0;k<filterIds.length;k++){if(curFilter.id==filterIds[k]){filters.push(curFilter);filterIds.splice(k,1);break}}}}if(filterIds.length<1&&colorCodeGroupIds.length<1){break}}return filters};PSession.prototype.hasCenterAndZoom=function(){var r=false;if(this.get("curLat")&&this.get("curLng")&&this.get("curZoom")){r=true}return r};PSize=function(width,height){this.width=width;this.height=height};PSize.prototype.equals=function(other){if(this.width==other.width&&this.height==other.height)return true;else return false};PSize.prototype.toString=function(){return"("+this.width+", "+this.height+")"};PSmallMapControl=function(){};PSmallMapControl.prototype=new PSmallZoomControl;PTable=function(node,options,chart,cube){this.options=new PTableOptions;if(options){this.options=options}if(P.instances.chart){this.chart=P.instances.chart}else{this.chart=null}this.table=node;this.listeners=[];this.eventManager=new _eventManager;this.eventManager.registerEventID("setindicator");this.eventManager.registerEventID("removeindicator");this.eventManager.registerEventID("addoverlayset");this.eventManager.registerEventID("removeoverlayset");this.eventManager.registerEventID("clearoverlaysets");if(cube){this.setData(cube);this.refresh()}this.equivalentCache={};this.similarCache={};this.overlaySets=[]};PTable.prototype.setOptions=function(options){this.options=options};PTable.prototype.setData=function(cube){this.cube=cube;this.cube.tables.push(this)};PTable.prototype.clear=function(){for(var i=0;i<this.listeners.length;i++)PEvent.removeListener(this.listeners[i]);this.listeners=[];while(this.table.hasChildNodes())this.table.removeChild(this.table.firstChild);this.tablebody=document.createElement("tbody")};PTable.prototype.getPlaceLabel=function(place){var label=place.label;var type=place.getType();if(this.options.displayState){label+=place.getDisplayState()}if(type){if(type==PPlaceType.CUSTOM||type==PPlaceType.POLYGON||!place.getDefinitionId()){label+=" ("+place.getType().getName()+")"}else{label+=" ("+boundaryMatrix.getDisplayNameForDefinitionId(place.getDefinitionId())+")"}}return label};PTable.prototype.getMultiPlaceLabel=function(places){var placeCount=places.length;if(placeCount==0){return""}else if(placeCount==1){return this.getPlaceLabel(places[0])}else if(placeCount>1){var oxfordComma=placeCount==2?"":",";var lastLabel=this.getPlaceLabel(places.splice(-1,1)[0]);var otherLabels=[];for(var i=0;i<places.length;i++){otherLabels.push(this.getPlaceLabel(places[i]))}return otherLabels.join("<b>,</b> ")+oxfordComma+" <b>and</b> "+lastLabel}};PTable.prototype.getEquivalentSimilarPlaceLabel=function(place,esPlaces,which,trendLabel){trendLabel=trendLabel==null||typeof trendLabel!="boolean"?false:trendLabel;var label=this.getPlaceLabel(place);var numPlaces=esPlaces.length;if(numPlaces!=null&&numPlaces>0){if(trendLabel){label+=" <b>"+which+" to</b> ";for(var i=0;i<numPlaces;i++){var curPlace=esPlaces[i];if(i!=0){label+=", "}label+=this.getPlaceLabel(curPlace)}}else{label+="<br /><span class='equivalentSimilar'>"+which+" to:";for(var i=0;i<numPlaces;i++){var curPlace=esPlaces[i];label+="<br /><a onclick='selectPlace("+curPlace.getID()+");'>"+this.getPlaceLabel(curPlace)+"</a>"}label+="</span>"}}return label};PTable.prototype.getIndicatorLabel=function(ind){var label;if(this.options.displayFullIndicatorName)label=ind.getFullDisplayName();else label=ind.getLabel();return label};PTable.prototype.createChartLegend=function(div,index,elem){if(this.chart){if(this.chart.options.group==PChartOptions.INDICATOR&&elem instanceof PIndicator||this.chart.options.group==PChartOptions.PLACE&&elem instanceof PPlace||this.chart.options.group==PChartOptions.PERIOD&&!(elem instanceof PIndicator)&&!(elem instanceof PPlace)){var legend=this.options.chartLegend.cloneNode(true);var colors=this.chart.options.colorRamp.getColors();if(index>=colors.length)index=index-colors.length;var color=colors[index].getColor();legend.style.backgroundColor="#"+color;div.appendChild(legend)}}};PTable.prototype.createRemove=function(elem,floatStyle){var remove=document.createElement("div");remove.className="remove";var title="";if(elem instanceof PIndicator)title="Remove Indicator";else if(elem instanceof PPlace)title="Remove Place";else title="Remove Period";remove.title=title;var item=elem;var cube=this.cube;var self=this;this.listeners.push(PEvent.addListener(remove,"click",function(){cube.remove(item);$("#"+self.table.id).hide();setTimeout(function(){$("#"+self.table.id).show()},1)}));remove.style.cursor="pointer";remove.style.cssFloat=floatStyle;remove.style.styleFloat=floatStyle;remove.appendChild(this.options.removeButton.cloneNode(true));return remove};PTable.prototype.addListener=function(eventId,func){this.eventManager.registerForEvent(eventId,this,func);var event=new PEventListener(this,eventId,func);return event};PTable.prototype.removeListener=function(event){this.eventManager.deregisterForEvent(event.id,event.obj,event.func)};PTable.prototype.refresh=function(){this.clear();var rowVar=[];var colVar=[];if(this.options.row==PTableOptions.INDICATOR){rowVar=this.cube.indicators&&this.cube.indicators.constructor==Array&&this.cube.indicators.length?this.cube.indicators:[];colVar=this.cube.places;if(this.options.rowHeading==null)this.options.rowHeading="Indicators"}else{rowVar=this.cube.places;colVar=this.cube.indicators&&this.cube.indicators.constructor==Array&&this.cube.indicators.length?this.cube.indicators:[];if(this.options.rowHeading==null)this.options.rowHeading="Places"}var sortedPeriods=[];if(this.cube.periods.length<=0){this.options.displayPeriods=false}else{sortedPeriods=this.cube.periods.slice(0);sortedPeriods.sort()}var tr1=document.createElement("tr");var td1=document.createElement("th");td1.innerHTML=this.options.rowHeading;td1.rowSpan=2;tr1.appendChild(td1);this.tablebody.appendChild(tr1);var tr2=document.createElement("tr");for(var i=0;i<colVar.length;i++){var td2=document.createElement("th");td2.scope="col";var div=document.createElement("div");if(this.options.row==PTableOptions.INDICATOR){div.innerHTML=this.getPlaceLabel(colVar[i]);colVar[i].colLabel=div}else{div.innerHTML=this.getIndicatorLabel(colVar[i])}if(this.cube.periods.length>1)td2.colSpan=this.cube.periods.length;if(!this.options.displayPeriods)td2.rowSpan=2;this.createChartLegend(div,i,colVar[i]);if(this.options.row==PTableOptions.INDICATOR){var remove=this.createRemove(colVar[i],"right");td2.appendChild(remove)}td2.appendChild(div);tr1.appendChild(td2);if(this.options.displayPeriods){for(var j=0;j<this.cube.periods.length;j++){var td2a=document.createElement("th");td2a.align="left";td2a.scope="col";var div=document.createElement("div");div.innerHTML=this.cube.periods[j];this.createChartLegend(td2a,j,this.cube.periods[j]);var removeperiod=null;if(this.cube.periods.length>1){removeperiod=this.createRemove(this.cube.periods[j],"right");td2a.appendChild(removeperiod)}td2a.appendChild(div);tr2.appendChild(td2a)}}}if(this.cube.getPeriods().length==1&&this.options.row==PTableOptions.INDICATOR){var tdtoggle=document.createElement("th");tdtoggle.scope="col";tdtoggle.rowSpan=2;tdtoggle.width="150";tdtoggle.height="40";if(!this.options.disableToggles){var toggles=["mean","sum","median"];for(var i=0;i<toggles.length;i++){var toggle=document.createElement("span");toggle.innerHTML=toggles[i].charAt(0).toUpperCase()+toggles[i].substr(1);toggle.toggle=toggles[i];toggle.table=this;if(this.calculation==toggles[i]){toggle.className="active"}else{toggle.className="inactive";this.listeners.push(PEvent.addListener(toggle,"click",function(){this.table.setCalculationColumn(this.toggle);this.table.refresh()}))}tdtoggle.appendChild(toggle)}tr1.appendChild(tdtoggle)}}this.tablebody.appendChild(tr2);for(var i=0;i<rowVar.length;i++){var tr3=document.createElement("tr");var td3=document.createElement("td");td3.scope="row";var div=document.createElement("div");div.className="rowHeader";if(this.options.row==PTableOptions.INDICATOR){div.innerHTML=this.getIndicatorLabel(rowVar[i])}else{var rowVarType=rowVar[i].getType();if(rowVarType==PPlaceType.CUSTOM||rowVarType==PPlaceType.POLYGON||this.cube.valueBoundaries.length<1||colVar.length!=1){div.innerHTML=this.getPlaceLabel(rowVar[i])}else{var baseBoundary=rowVar[i];var baseBoundaryId=baseBoundary.getID();var indId=colVar[0].getID();var addlBoundaries=[];for(var j=0;j<sortedPeriods.length;j++){var boundary=this.cube.valueBoundaries[sortedPeriods[j]][baseBoundaryId][indId];if(boundary!=null&&boundary.getID()!=baseBoundaryId&&$.inArray(boundary,addlBoundaries)==-1){addlBoundaries.push(boundary)}}var changed=false;if(rowVarType==PPlaceType.CENSUSTRACT||rowVarType==PPlaceType.BLOCKGROUP){for(var j=0;j<addlBoundaries.length;j++){var curIdentifier=addlBoundaries[j].getIdentifier();if(j==0&&baseBoundary.getIdentifier()!=curIdentifier||j>0&&addlBoundaries[j-1].getIdentifier()!=curIdentifier){changed=true;break}}}else{for(var j=0;j<addlBoundaries.length;j++){var curLabel=addlBoundaries[j].getLabel();if(j==0&&baseBoundary.getLabel()!=curLabel||j>0&&addlBoundaries[j-1].getLabel()!=curLabel){changed=true;break}}}if(changed){div.innerHTML=this.getEquivalentSimilarPlaceLabel(baseBoundary,addlBoundaries,"equivalent",true)}else{div.innerHTML=this.getMultiPlaceLabel([baseBoundary].concat(addlBoundaries))}}}var remove=null;if(rowVar.length>1){remove=this.createRemove(rowVar[i],"left");td3.appendChild(remove)}this.createChartLegend(div,i,rowVar[i]);td3.appendChild(div);tr3.appendChild(td3);for(var j=0;j<colVar.length;j++){for(var k=0;k<this.cube.periods.length;k++){var curPlace;var curInd;if(this.options.row==PTableOptions.INDICATOR){curPlace=colVar[j];curInd=rowVar[i]}else{curPlace=rowVar[i];curInd=colVar[j]}var curPeriod=this.cube.periods[k];var curMatrixId=curInd.matrixIds[curInd.getPeriodIndex(curPeriod)];var nodata=curInd.nodata;var value=null;var novalue=false;if(this.options.row==PTableOptions.INDICATOR){value=this.cube.values[curPeriod][curPlace.id][curInd.id]}else{if(curPlace.getType()!=PPlaceType.BLOCKGROUP){value=this.cube.values[curPeriod][curPlace.id][curInd.id]}}if((value||value==0)&&value!=nodata){if(isNumeric(value)){value=PWebUtil.formatNumber(value,curInd.unit)}}else{novalue=true;value="<span style='color:#bbb;font-style:italic'>N/A</span>"}var aggPlaceType=null;var aggPlaceTouch=false;var aggPlaceValue=null;if(aggData.types[curPlace.id]&&aggData.types[curPlace.id][curPeriod]){var adType=aggData.types[curPlace.id][curPeriod];aggPlaceType=adType.type;aggPlaceTouch=adType.touch}if(aggData.values[curPlace.id]&&aggData.values[curPlace.id][curPeriod]){aggPlaceValue=aggData.values[curPlace.id][curPeriod]}var td3a=document.createElement("td");td3a.align="left";td3a.innerHTML=value;tr3.appendChild(td3a);if(aggPlaceType!=null&&aggPlaceValue!=null){var overlap=null;if(!aggPlaceTouch){var indOverlap=curInd.overlapPercentages[curInd.curPerIndex];if(indOverlap!=null){overlap=indOverlap}else{overlap=50}}var aggPlacesLink=function(curPlace,curInd,curAggType,curAggTouch,curOverlap,curTd,curPeriod,columnCount){return function(){var createLink=function(count){if(count>0){var overlapValue=curOverlap;var containTouch="Contains ";if(curAggTouch){overlapValue="touch";containTouch="Touches "}var aggPlaceTypeName=" ";if(count==1){aggPlaceTypeName+=curAggType.getName()}else{aggPlaceTypeName+=curAggType.getPluralName()}var linkJS="subscribeAlert();";if(isSubscriber()&&!isTrial()){var placeString="gb";if(curPlace.getType()==PPlaceType.POLYGON){placeString+="p"}else if(curPlace.getType()==PPlaceType.CUSTOM){placeString+="c"}linkJS="selectColumn("+(columnCount+1)+"); P.instances.rPlaces.load('"+placeString+"', "+curPlace.id+", "+curInd.id+", "+curAggType.id+", '"+curPeriod+"', '"+P.instances.table.getPlaceLabel(curPlace).replace(/'/g,"\\'").replace(/"/g,"\\'")+"', '"+overlapValue+"', "+count+");"}curTd.innerHTML+="<br />"+containTouch+count+aggPlaceTypeName;curTd.innerHTML+=' (<a onclick="'+linkJS+'">See Values</a>)'}};if(curAggTouch){curPlace.getPlacesIntersectingCount(curAggType,curMatrixId,null,createLink)}else{curPlace.getPlacesWithinCount(curAggType,curMatrixId,null,createLink,curOverlap,null,curPlace)}}}(curPlace,curInd,aggPlaceType,aggPlaceTouch,overlap,td3a,curPeriod,j);aggPlacesLink()}if(this.options.row==PTableOptions.INDICATOR){var childType=null;if(!aggData.values[curPlace.id]||!aggData.values[curPlace.id][curPeriod]||!isTablesAggregatePlaceType(curPlace.getType(),true)){childType=nextAvailablePlaceType(curInd.getPlaceTypes(),curPlace.getType())}if(novalue==false){if(childType){var checkCount=function(count){if(count>0){if(this.td3a.innerHTML.indexOf("See Values for ")==-1){var val='<br /><a href="javascript:';if(isSubscriber()&&!isTrial()){var placeString="gb";if(this.getType()==PPlaceType.POLYGON){placeString+="p"}else if(this.getType()==PPlaceType.CUSTOM){placeString+="c"}val+="selectColumn("+this.col+"); P.instances.rPlaces.load('"+placeString+"', "+this.id+", "+this.rowVar.id+", "+this.childType.id+", '"+this.rowVar.getPeriod()+"', '"+P.instances.table.getPlaceLabel(this).replace(/'/g,"\\'").replace(/"/g,"\\'")+"', 50, "+count+");";seeValuesTypes[this.getID()]=this.childType}else{val+="subscribeAlert();"}val+='">See Values for '+this.childType.getPluralName()+"</a>";this.td3a.innerHTML+=val}}else if(count==0){this.childType=nextAvailablePlaceType(this.rowVar.getPlaceTypes(),this.childType);if(this.childType!=null){this.getPlacesWithinCount(this.childType,null,null,arguments.callee,50,null,this)}}};curPlace.td3a=td3a;curPlace.rowVar=curInd;curPlace.childType=childType;curPlace.col=j+1;curPlace.getPlacesWithinCount(childType,null,null,checkCount,50,null,curPlace)}}}}}if(this.cube.getPeriods().length==1&&this.options.row==PTableOptions.INDICATOR){var tdvalue=document.createElement("td");tdvalue.align="left";if(!this.options.disableToggles){tdvalue.innerHTML=this.calculateColumn(rowVar[i],this.cube.getPeriods()[0]);tr3.appendChild(tdvalue)}}this.tablebody.appendChild(tr3)}if(this.cube.indicators&&this.cube.indicators.constructor==Array&&this.cube.indicators.length&&P.instances.table.options.displayPeriods==false){if(isSubscriber()&&!isTrial()){this.refreshRanks()}else if(this.cube.places.length>0){var tr=document.createElement("tr");var td=document.createElement("td");var div=document.createElement("div");div.className="rowHeader";div.innerHTML="Ranking";td.scope="row";td.appendChild(div);tr.appendChild(td);for(var i=0;i<this.cube.places.length;i++){td=document.createElement("td");td.align="left";var html="";if(this.cube.indicators[0].isMVA()){html="No Ranking Data"}else{html='<a onclick="subscribeAlert()">See Rankings</a>'}td.innerHTML=html;tr.appendChild(td)}if(!this.options.disableToggles){td=document.createElement("td");td.innerHTML="";tr.appendChild(td)}this.tablebody.appendChild(tr)}}this.table.appendChild(this.tablebody);this.refreshOverlaySets();this.refreshEquivalentAndSimilar();selectColumn()};PTable.prototype.refreshOverlaySets=function(){$(".overlaySetRow").remove();for(var i=0;i<this.overlaySets.length;i++){var curSet=this.overlaySets[i];var header=document.createElement("div");header.className="rowHeader";var t="Points: ";if(curSet.isPoly){t="Polygons: "}var headerText=t;if(curSet.id!=null&&curSet.id==massTransitSetId){headerText+="Public Transit Rail Lines"}else{headerText+=curSet.name}header.innerHTML=headerText;var trsets=document.createElement("tr");trsets.className="overlaySetRow";var addCloseButton=function(self,set){var close=$("<div />");close.addClass("sitesCloseButton");close.click(function(){self.removeOverlaySet(set);self.refreshOverlaySets()});header.appendChild(close[0])}(this,curSet);if(P.instances.table.options.displayPeriods==false){var tdHeader=document.createElement("td");tdHeader.appendChild(header);trsets.appendChild(tdHeader)}else{var tdHeader=document.createElement("th");tdHeader.appendChild(header);tdHeader.rowSpan="2";this.tablebody.rows[0].appendChild(tdHeader)}for(var j=0;j<this.cube.places.length;j++){var currentPlace=function(self,i,j){var td4=null;if(P.instances.table.options.displayPeriods==false){td4=document.createElement("td")}else{td4=self.tablebody.rows[j+2].insertCell(self.tablebody.rows[j+2].cells.length)}td4.align="left";var curInfo=new Object;curInfo.pointCount=0;curInfo.polygonCount=0;curInfo.pointsets=[];curInfo.polygonsets=[];curInfo.requestCount=curSet.children.length+1;curInfo.hasPolySet=false;curInfo.place=self.cube.places[j];curInfo.label=self.getPlaceLabel(self.cube.places[j]);curInfo.tdset=[];curInfo.tdset[i]=td4;curInfo.index=i;curInfo.col=j+1;var renderSetInfo=function(){var pointset=curInfo.pointsets.length>0?curInfo.pointsets[0]:null;var polygonset=curInfo.polygonsets.length>0?curInfo.polygonsets[0]:null;var placeTypeId=curInfo.place.getType().id;var polysetid=curInfo.place.polysetid?curInfo.place.polysetid:null;var tmpVerts=curInfo.vertices?curInfo.vertices.join(","):"";var tmpPid=curInfo.vertices?"":curInfo.place.id;var html="";if(curInfo.pointsets.length>0){var singlePoint=curInfo.pointCount!=null&&curInfo.pointCount==1;html=PWebUtil.formatNumber(curInfo.pointCount)+" point"+(singlePoint?"":"s");if(curInfo.pointCount>0){var report="subscribeAlert();";var allowedStatus=isSeeListAllowed(curInfo.place,pointset.id);if(allowedStatus!==true){report="alerter.popup('"+allowedStatus+"', 'OK');"}else if(isSubscriber()&&!isTrial()){var label=curInfo.label.replace(/'/g,"\\'").replace(/"/g,"\\'");report="selectColumn("+curInfo.col+"); P.instances.rPins.load('"+label+"', '"+pointset.id+"', '"+pointset.type+"', '"+pointset.name.replace(/'/g,"\\'")+"', '"+tmpPid+"', '"+tmpVerts.replace(/'/g,"\\'")+"', "+curInfo.pointCount+", "+null+", '"+placeTypeId+"', "+polysetid+");"}html+='<br><a onclick="'+report+'">See List</a>'}}if(curInfo.hasPolySet){if(html.length>0){html+="<br>"}var singlePoly=curInfo.polygonCount!=null&&curInfo.polygonCount==1;html+=PWebUtil.formatNumber(curInfo.polygonCount)+" polygon"+(singlePoly?"":"s");if(curInfo.polygonCount>0){var report="subscribeAlert();";if(isSubscriber()&&!isTrial()){report="selectColumn("+curInfo.col+"); P.instances.rPins.load('"+curInfo.label.replace(/'/g,"\\'")+"', '"+polygonset.id+"', '"+polygonset.type+"', '"+polygonset.name.replace(/'/g,"\\'")+"', '"+tmpPid+"', '"+tmpVerts.replace(/'/g,"\\'")+"', "+curInfo.polygonCount+", null, '"+placeTypeId+"', "+polysetid+");"}html+='<br/><a href="javascript:'+report+'">See List</a>'}}curInfo.tdset[curInfo.index].innerHTML=html;var urlParams=getUrlParams();if(pointset!=null&&urlParams["showlist"]==pointset.id&&urlParams["slt"]==pointset.type){if(session.get("p")==curInfo.place.id||session.get("cp")&&_.first(session.get("cp")).match(curInfo.place.id)!=null){selectColumn(curInfo.col);P.instances.rPins.load(curInfo.label,pointset.id,pointset.type,pointset.name,tmpPid,tmpVerts,curInfo.pointCount,null,placeTypeId,polysetid)}else if(session.get("pname")+" (Polygon)"==curInfo.label){selectColumn(curInfo.col);P.instances.rPins.load(curInfo.label,pointset.id,pointset.type,pointset.name,tmpPid,tmpVerts,null,null,null,polysetid)}}else if(polygonset!=null&&urlParams["showlist"]==polygonset.id){if(session.get("p")==curInfo.place.id||curInfo.place.polysetid){selectColumn(curInfo.col);P.instances.rPins.load(curInfo.label,polygonset.id,polygonset.type,polygonset.name,tmpPid,tmpVerts,null,null,null,polysetid)}}};curInfo.hasPolySet=curSet.isPoly;var allSets=[curSet];for(var k=0;k<curSet.children.length;k++){var newSet=curSet.children[k];curInfo.hasPolySet=curInfo.hasPolySet||newSet.isPoly;allSets.push(newSet)}for(var k=0;k<allSets.length;k++){var receivedRequest=function(){curInfo.requestCount--;if(curInfo.requestCount==0){renderSetInfo()}};if(allSets[k].isPoly){curInfo.polygonsets.push(allSets[k])}else{curInfo.pointsets.push(allSets[k])}var getCount=function(countSet){geocoder.getMarkersWithin(curInfo.place,countSet,function(markers){var count=0;if(markers.length>0){if(markers[0]instanceof PMarker){count=markers.length}else{count=markers[0]}}if(countSet.isPoly){curInfo.polygonCount+=count}else{curInfo.pointCount+=count}receivedRequest()})}(allSets[k])}td4.innerHTML='<span style="color:#bbb;font-style:italic">Loading...</span>';if(P.instances.table.options.displayPeriods==false){trsets.appendChild(td4)}};currentPlace(this,i,j)}if(P.instances.table.options.displayPeriods==false){if(P.instances.table.options.disableToggles!=true&&this.cube.getIndicators()&&this.cube.getIndicators().length>0){var tdvalue=document.createElement("td");tdvalue.innerHTML="";trsets.appendChild(tdvalue)}this.tablebody.appendChild(trsets)}}};PTable.prototype.addOverlaySet=function(overlaySet){for(var i=0;i<this.overlaySets.length;i++){if(this.overlaySets[i]==overlaySet){return}}this.overlaySets.push(overlaySet);this.eventManager.triggerEvent("addoverlayset",overlaySet)};PTable.prototype.removeOverlaySet=function(overlaySet){for(var i=0;i<this.overlaySets.length;i++){if(this.overlaySets[i]==overlaySet){this.overlaySets.splice(i,1);this.eventManager.triggerEvent("removeoverlayset",overlaySet);return true}}return false};PTable.prototype.getOverlaySets=function(excludeChildren,excludeLabels){if(excludeChildren!=true&&excludeLabels!=true){return this.overlaySets}var sets=[];for(var i=0;i<this.overlaySets.length;i++){if(excludeChildren==true&&this.overlaySets[i].child==true||excludeLabels==true&&this.overlaySets[i].name.indexOf("labels")==0){continue}else{sets.push(this.overlaySets[i])}}return sets};PTable.prototype.clearOverlaySets=function(){this.overlaySets=[];this.eventManager.triggerEvent("clearoverlaysets")};PTable.prototype.refreshRanks=function(updatePopUp){if(!rankingCube)return;var values=rankingCube.values;if(updatePopUp&&P.instances.rRanks.elm.is(":visible")){var val=values[rankingCube.getPeriods()[0]][P.instances.rRanks.place.id][rankingCube.getIndicators()[0].id];var rankValue=new PRankingValue({value:val.value,rank:val.rank,position:val.position,totalRanked:val.totalRanked,totalBoundaries:val.totalBoundaries});P.instances.rRanks.load(P.instances.rRanks.place,rankingCube.getIndicators()[0],rankingCube.getPeriods()[0],rankValue)}else if(updatePopUp&&P.instances.rPlaces.elm.is(":visible")){P.instances.rPlaces.load(P.instances.rPlaces.placeType,P.instances.rPlaces.placeId,rankingCube.getIndicators()[0].id,P.instances.rPlaces.placeTypeId,rankingCube.getPeriods()[0],P.instances.rPlaces.placeName,P.instances.rPlaces.overlap,P.instances.rPlaces.placeCount)}if(P.instances.table.options.displayPeriods==false&&rankingCube.loading==false){var tr=document.createElement("tr");var td=document.createElement("td");var div=document.createElement("div");div.className="rowHeader";div.innerHTML="Ranking";td.scope="row";td.appendChild(div);tr.appendChild(td);for(var i=0;i<rankingCube.places.length;i++){var place=rankingCube.places[i];var ind=rankingCube.getIndicators()?rankingCube.getIndicators()[0]:null;var per=rankingCube.periods[0];td=document.createElement("td");td.align="left";if(place.getType()==PPlaceType.COUNTRY){tr.appendChild(td);continue}
if(ind&&!ind.isMVA()&&values[per]&&values[per][place.id]&&values[per][place.id][ind.id]){var rank=values[per][place.id][ind.id].rank;var pos=values[per][place.id][ind.id].position;var totalRanked=values[per][place.id][ind.id].totalRanked;var total=values[per][place.id][ind.id].totalBoundaries;if(total==null){if(rank==null){td.innerHTML="<span style='color:#bbb;font-style:italic'>N/A</span><br/>"}else{td.innerHTML="No Ranking Data"}}else{var html="";if(isSubscriber()&&!isTrial()){if(rank>0){html="<b>"+rank+"</b> of "+totalRanked+" "+place.getType().getPluralName()+"<br/><a>See Rankings</a>"}else{html="<span style='color:#bbb;font-style:italic'>N/A</span><br/>"}}td.innerHTML=html;var link=$(td).find("a");if(isSubscriber()&&!isTrial()&&link.length>0){var rankValue=new PRankingValue({rank:rank,position:pos,totalRanked:totalRanked,totalBoundaries:total});link[0].place=place;link[0].ind=ind;link[0].per=per;link[0].col=i+1;link[0].rankValue=rankValue;link.bind("click",function(){selectColumn(this.col);P.instances.rRanks.load(this.place,this.ind,this.per,this.rankValue)});var rp=session.get("rp");if(rp!=null&&rp==place.getID()){P.instances.rRanks.load(place,ind,per,rankValue);session.remove("rp")}}else{link.bind("click",subscribeAlert)}}}else{td.innerHTML="No Ranking Data"}tr.appendChild(td)}if(P.instances.table.options.displayPeriods==false&&!this.options.disableToggles){td=document.createElement("td");td.innerHTML="";tr.appendChild(td)}this.rankRow=tr;if(this.tablebody){if(this.tablebody.childNodes.length>3&&this.tablebody.childNodes.item(3)!=this.rankRow)this.tablebody.insertBefore(tr,this.tablebody.childNodes.item(3));else this.tablebody.appendChild(tr)}}};PTable.prototype.refreshEquivalentAndSimilar=function(){var self=this;if(this.options.row==PTableOptions.PLACE){return}var equivalentPlaces={objects:[],ids:[]};var similarPlaces={objects:[],ids:[]};for(var i=0;i<this.cube.places.length;i++){var curPlace=this.cube.places[i];var curPlaceType=curPlace.getType();if(curPlaceType==PPlaceType.ZIP||curPlaceType==PPlaceType.ZCTA){similarPlaces.objects.push(curPlace);var curPlaceId=curPlace.getID();if(this.similarCache[curPlaceId]==null){similarPlaces.ids.push(String(curPlaceId))}}else if(curPlaceType!=PPlaceType.BLOCKGROUP&&curPlaceType!=PPlaceType.CUSTOM&&curPlaceType!=PPlaceType.POLYGON){equivalentPlaces.objects.push(curPlace);var curPlaceId=curPlace.getID();if(this.equivalentCache[curPlaceId]==null){equivalentPlaces.ids.push(String(curPlaceId))}}}if(equivalentPlaces.objects.length<1&&similarPlaces.objects.length<1){return}var equivalentDone=false;var similarDone=false;var updateEquivalentAndSimilar=function(){if(equivalentDone!=true||similarDone!=true){return}for(var i=0;i<equivalentPlaces.objects.length;i++){var curPlace=equivalentPlaces.objects[i];var curPlaceType=curPlace.getType();var curPlaceMappings=self.equivalentCache[curPlace.getID()];var curPlaceEquivalents=[];if(curPlaceType==PPlaceType.CENSUSTRACT||curPlaceType==PPlaceType.BLOCKGROUP){for(var j=0;j<curPlaceMappings.length;j++){var curPlaceMapping=curPlaceMappings[j];if(curPlace.getIdentifier()!=curPlaceMapping.getIdentifier()){curPlaceEquivalents.push(curPlaceMapping)}}}else{for(var j=0;j<curPlaceMappings.length;j++){var curPlaceMapping=curPlaceMappings[j];if(curPlace.getLabel()!=curPlaceMapping.getLabel()){curPlaceEquivalents.push(curPlaceMapping)}}}var newLabel=self.getEquivalentSimilarPlaceLabel(curPlace,curPlaceEquivalents,"equivalent");curPlace.colLabel.innerHTML=newLabel}for(var i=0;i<similarPlaces.objects.length;i++){var curPlace=similarPlaces.objects[i];var curPlaceMappings=self.similarCache[curPlace.getID()];var newLabel=self.getEquivalentSimilarPlaceLabel(curPlace,curPlaceMappings,"similar");curPlace.colLabel.innerHTML=newLabel}};if(equivalentPlaces.ids.length>0){placeLoader.loadOneToOne(equivalentPlaces.ids,null,true,false,function(mappings){for(var i=0;i<equivalentPlaces.ids.length;i++){var curPlaceId=equivalentPlaces.ids[i];self.equivalentCache[curPlaceId]=mappings[curPlaceId]}equivalentDone=true;updateEquivalentAndSimilar()})}else{equivalentDone=true}if(similarPlaces.ids.length>0){placeLoader.loadSimilar(similarPlaces.ids,null,function(mappings){for(var i=0;i<similarPlaces.ids.length;i++){var curPlaceId=similarPlaces.ids[i];self.similarCache[curPlaceId]=mappings[curPlaceId]}similarDone=true;updateEquivalentAndSimilar()})}else{similarDone=true}updateEquivalentAndSimilar()};PTable.prototype.setCalculationColumn=function(calc){this.calculation=calc};PTable.prototype.calculateColumn=function(ind,per){var retVal;if(this.calculation=="median"){var array=this.cube.getSortedValuesOfPlaces(ind,per);var med=parseInt(array.length*.5);retVal=PWebUtil.formatNumber(array[med],ind.unit)}else if(this.calculation=="sum")retVal=PWebUtil.formatNumber(this.cube.getSumOfPlaces(ind,per),ind.unit);else retVal=PWebUtil.formatNumber(this.cube.getMeanOfPlaces(ind,per),ind.unit);return retVal};PTableOptions=function(){this.row=PTableOptions.INDICATOR;this.rowHeading="";this.displayState=true;this.displayFullIndicatorName=false;this.displayPeriods=true;this.displayRemoveIndicator=true;this.displayRemovePlace=true;this.displayRemovePeriod=true;this.removeButton=document.createElement("img");this.removeButton.src="/images/PolicyMap/icons/popup-x.png";this.removeButton.alt="Remove";this.removeButton.style.padding="0px 2px";this.chartLegend=document.createElement("div");this.chartLegend.className="chartLegend"};PTRFPlaceSearchBox=function(searchContainer,searchTypes,options){var self=this;this.eventTypes=new Object;this.eventTypes.submit="submit";this.eventTypes.response="response";this.eventTypes.dd_initialized="dd_initialized";this.autosuggest=new AutoSuggest;this.autosuggest.search=this;this.defaultText="Enter Address, City, County, State, or Zip";this.defaultCensusText="Enter full FIPS code of census tract";this.defaultBlockText="Enter full FIPS code of block group";this.defaultSchoolText='e.g., "Springfield Unified"';this.defaultState="06";this.defaultStateAbbrev="CA";if(options!=null){if(options.defaultState){this.defaultState=options.defaultState}if(options.defaultText){this.defaultText=options.defaultText}}this.eventManager=new _eventManager;for(var ev in this.eventTypes)this.eventManager.registerEventID(ev);this.container=searchContainer;$(this.container).addClass("searchContainer");if(!options)this.options={};else this.options=options;if(this.options.responseEvent){this.addListener("response",this.options.responseEvent)}else{this.addListener("response",function(places){var html=null;if(places instanceof PAddress){if(places.wasFound()){session.put("place",places.addr);session.put("lng",places.x);session.put("lat",places.y);html=""+places.addr+"<br /><br />";addMarkerWindow(html,new PLatLng(places.y,places.x))}else{var content='Location "<b>'+places.addr+"</b>\" not found. For help finding your location, <a class='pagelinks' href='/?page_id=22256' target='_blank'>click here</a>.";alerter.popup(content,"OK")}}else{var l=places.length;var full=places;places=[];var p;for(var i=0;i<l;i++){p=full[i];if(p.country=="United States"){places.push(p)}}if(places.length==0){alerter.popup('Location "<b>'+self.getSearchString()+'</b>" not found.',"OK")}else{var html=createPlacesDiv(places,self.getSearchString());addMarkerWindow(html,places[0]);session.put("p",places[0].id)}}})}this.buildSetLocation();var node=this.node;var typeNode=this.typeNode;this.type=null;this.defaultType=null;this.searchTypes=null;this.textbox=document.createElement("input");this.textbox.type="text";this.textbox.style.width="97%";this.textbox.style.height="100%";var usStates=document.createElement("select");usStates.id="states";usStates.name="states";usStates.style.display="none";if(this.options.stateMenuWidth){usStates.style.width=this.options.stateMenuWidth}else{usStates.style.width="30%"}usStates.style.marginRight="10px";this.addState=function(stateName,fips,abbrev){var o=document.createElement("option");o.value=fips;o.title=abbrev;o.innerHTML=stateName;if(fips==this.defaultState){this.defaultStateAbbrev=abbrev;o.selected=true}usStates.appendChild(o)};this.addState("Alabama","01","AL");this.addState("Alaska","02","AK");this.addState("Arizona","04","AZ");this.addState("Arkansas","05","AR");this.addState("California","06","CA");this.addState("Colorado","08","CO");this.addState("Connecticut","09","CT");this.addState("Delaware",10,"DE");this.addState("District of Columbia",11,"DC");this.addState("Florida",12,"FL");this.addState("Georgia",13,"GA");this.addState("Hawaii",15,"HI");this.addState("Idaho",16,"ID");this.addState("Illinois",17,"IL");this.addState("Indiana",18,"IN");this.addState("Iowa",19,"IA");this.addState("Kansas",20,"KS");this.addState("Kentucky",21,"KY");this.addState("Louisiana",22,"LA");this.addState("Maine",23,"ME");this.addState("Maryland",24,"MD");this.addState("Massachusetts",25,"MA");this.addState("Michigan",26,"MI");this.addState("Minnesota",27,"MN");this.addState("Mississippi",28,"MS");this.addState("Missouri",29,"MO");this.addState("Montana",30,"MT");this.addState("Nebraska",31,"NE");this.addState("Nevada",32,"NV");this.addState("New Hampshire",33,"NH");this.addState("New Jersey",34,"NJ");this.addState("New Mexico",35,"NM");this.addState("New York",36,"NY");this.addState("North Carolina",37,"NC");this.addState("North Dakota",38,"ND");this.addState("Ohio",39,"OH");this.addState("Oklahoma",40,"OK");this.addState("Oregon",41,"OR");this.addState("Pennsylvania",42,"PA");this.addState("Rhode Island",44,"RI");this.addState("South Carolina",45,"SC");this.addState("South Dakota",46,"SD");this.addState("Tennessee",47,"TN");this.addState("Texas",48,"TX");this.addState("Utah",49,"UT");this.addState("Vermont",50,"VT");this.addState("Virginia",51,"VA");this.addState("Washington",53,"WA");this.addState("West Virginia",54,"WV");this.addState("Wisconsin",55,"WI");this.addState("Wyoming",56,"WY");this.textboxState=usStates;this.textboxCong=document.createElement("select");this.textboxCong.style.display="none";if(this.options.congMenuWidth){this.textboxCong.style.width=this.options.congMenuWidth}else{this.textboxCong.style.width="66%"}this.textboxCong.style.marginRight="10px";this.textboxCong.state="";this.textboxSenate=document.createElement("select");this.textboxSenate.style.display="none";this.textboxSenate.style.width="98%";this.textboxSenate.style.marginRight="10px";for(var i=0;i<searchTypes.length;i++){if(searchTypes[i].id!=null&&searchTypes[i].id==PPlaceType.SENATE.id){this.populateSenate()}}this.textboxStateDistOpts=document.createElement("select");this.textboxStateDistOpts.style.paddingLeft="0px";this.textboxStateDistOpts.style.display="none";this.textboxStateDistOpts.style.width="27%";this.textboxStateDistOpts.style.marginRight="10px";var option=document.createElement("option");option.innerHTML="Upper House Districts";option.value=PPlaceType.SLD_UPPER.id;this.textboxStateDistOpts.appendChild(option);var option=document.createElement("option");option.innerHTML="Lower House Districts";option.value=PPlaceType.SLD_LOWER.id;this.textboxStateDistOpts.appendChild(option);var box=this;PEvent.addListener(this.textboxStateDistOpts,"change",function(){if(this.value==PPlaceType.SLD_UPPER.id)box.setType(PPlaceType.SLD_UPPER);else if(this.value==PPlaceType.SLD_LOWER.id)box.setType(PPlaceType.SLD_LOWER)});this.textboxStateDist=document.createElement("select");this.textboxStateDist.style.paddingLeft="0px";this.textboxStateDist.style.display="none";this.textboxStateDist.style.width="38%";this.textboxStateDist.style.marginRight="10px";this.textboxStateDist.state="";this.textboxStateDist.stateDistType="";this.textboxCBSA=document.createElement("select");this.textboxCBSA.style.paddingLeft="0px";this.textboxCBSA.style.display="none";this.textboxCBSA.style.width="66%";this.textboxCBSA.style.marginRight="10px";this.textboxCBSA.state="";var box=this;this.textboxArr=[this.textbox,this.textboxCBSA,this.textboxStateDist,this.textboxStateDistOpts,this.textboxCong,this.textboxState,this.textboxSenate];for(var i=0;i<this.textboxArr.length;i++){var enterKeyEvent=function(textbox){return PEvent.addListener(textbox,"keydown",function(e){var e=e||window.event;if(e&&e.keyCode==13&&box.autosuggest.getSelectedItem()==null){box.submit()}})}(this.textboxArr[i])}PEvent.addListener(this.textboxState,"change",function(e){if(box.type[0]==PPlaceType.CONGRESSIONAL){box.populateCongressional()}else if(box.type[0]==PPlaceType.SLD_UPPER||box.type[0]==PPlaceType.SLD_LOWER){box.populateStateDistricts()}else if(box.type[0]==PPlaceType.CBSA){box.populateCBSA()}});node.appendChild(this.textboxState);node.appendChild(this.textboxCong);node.appendChild(this.textboxStateDistOpts);node.appendChild(this.textboxStateDist);node.appendChild(this.textboxCBSA);node.appendChild(this.textboxSenate);node.appendChild(this.textbox);this.setFocusEvents();this.setUp();if(!this.options.noAutosuggest){this.autoSuggestBoxes=[this.textbox];for(var i=0;i<this.autoSuggestBoxes.length;i++){this.autosuggest.attach(this.autoSuggestBoxes[i],"p")}}this.storeSearchTypes(searchTypes);if(typeNode){this.addSearchTabs(typeNode,searchTypes);this.selectTab(0)}};PTRFPlaceSearchBox.prototype.addSearchTabs=function(tabNode){var tabTypes=this.searchTypes;this.tabs=[];var box=this;for(var i=0;i<tabTypes.length;i++){var tab=document.createElement("a");var b=document.createElement("b");tab.appendChild(b);tab.tabType=tabTypes[i];tab.tabNum=i;if(tabTypes[i]=="Default"){b.innerHTML="Search the Map";tab.className="highlightTab";PEvent.addListener(tab,"click",function(){box.setType();box.selectTab(this.tabNum);box.setSearchValue();for(var i=0;i<box.textboxArr.length;i++){if(box.textboxArr[i].style.display=="inline"){if(box.textbox.value.search("Enter Address")!=0)box.textboxArr[i].focus();break}}})}else{var label="";if(tabTypes[i]==PPlaceType.CONGRESSIONAL){label="Cong. District"}else if(tabTypes[i]==PPlaceType.SENATE){label="Senate"}else{label=tabTypes[i].displayName}b.innerHTML=label;tab.className="searchboxTabs";PEvent.addListener(tab,"click",function(){box.setType(this.tabType);box.selectTab(this.tabNum);box.setSearchValue(this.tabType)})}this.tabs.push(tab);tabNode.appendChild(tab)}};PTRFPlaceSearchBox.prototype.storeSearchTypes=function(types){for(var i=0;i<types.length;i++){if(types[i]!="Default"){if(types[i]==PPlaceType.SLD_UPPER){types[i].displayName="State District"}else if(types[i]==PPlaceType.CBSA){types[i].displayName="Metro"}else if(types[i]==PPlaceType.CENSUSTRACT){types[i].displayName="Census Tract"}else if(types[i]==PPlaceType.BLOCKGROUP){types[i].displayName="BG"}else{types[i].displayName=types[i].getName()}}}this.searchTypes=types};PTRFPlaceSearchBox.prototype.disableTab=function(tabNum){var tab=this.tabs[tabNum];tab.disabled=true;tab.className+=" searchboxDisableTab";PEvent.clearInstanceListeners(tab)};PTRFPlaceSearchBox.prototype.enableTab=function(tabNum){var tab=this.tabs[tabNum];tab.disabled=false;tab.className="searchboxTabs";var box=this;PEvent.addListener(tab,"click",function(){box.setType(box.searchTypes[tabNum]);box.selectTab(tabNum);box.setSearchValue(box.searchTypes[tabNum])})};PTRFPlaceSearchBox.prototype.buildSetLocation=function(node){var container=this.container;var className="searchWithTabs";if(PEnvironment.pageName=="widget"){var topMenuWidth=this.options.topMenuWidth;var maxWidth=770;if(this.options.altlayout&&$("body").width()<topMenuWidth+maxWidth)this.options.noSearchTypes=true;else if($("body").width()<maxWidth)this.options.noSearchTypes=true}var table=$("<table />");$(table).addClass(className);$(table).css({width:"100%"});if(!this.options.noSearchTypes)$(table).css({minWidth:"800px"});var tr=$("<tr />");var addRow=false;if(!this.options.noSetLocationIcon){var td=$("<td />");$(td).addClass("setLocationIconTD");$(td).attr({rowspan:"2",valign:"bottom",align:"right"});var div=$("<div />");$(div).addClass("setLocationIcon");$(td).append(div);$(tr).append(td);addRow=true}if(!this.options.noSearchTypes||!this.options.noStartOver){var td=$("<td />");addRow=true;if(!this.options.noSearchTypes){var td=$("<td />");var span=$("<span />");$(span).addClass("searchboxSetLocationLabel");var b=$("<b />");$(b).html("Set Location");$(span).append(b);var typeNode=$("<span />");$(typeNode).addClass("searchboxtypes");this.typeNode=typeNode[0];$(td).append(span);$(td).append(typeNode)}if(!this.options.noStartOver){var so=$("<a />");$(so).addClass("startover");$(so).html("Start Over");if(!PEnvironment.pageName=="dataloader")$(so).attr("href","#");$(so).click(function(){if(PEnvironment.pageName=="tables"){clearChartAlert()}else if(PEnvironment.pageName=="dataloader"){resetDataloaderAlert()}else{resetMapAlert()}return false});$(td).append(so)}$(tr).append(td);var td=$("<td />");$(tr).append(td)}if(addRow)$(table).append(tr);var tr=$("<tr />");var td=$("<td />");var searchdiv=$("<div />");$(searchdiv).addClass("searchboxDiv");if(this.options.width)$(searchdiv).css("width",this.options.width);this.node=searchdiv[0];$(td).append(searchdiv);$(tr).append(td);var td=$("<td />");$(td).attr("align","left");var div=$("<div />");$(div).addClass("gobutton");var that=this;$(div).click(function(){that.submit()});$(td).append(div);$(tr).append(td);$(table).append(tr);$(container).append(table)};PTRFPlaceSearchBox.prototype.selectTab=function(tabNum){for(var i=0;i<this.tabs.length;i++){if(i==tabNum)this.tabs[i].className="highlightTab";else if(this.tabs[i].disabled==true)this.tabs[i].className="searchboxTabs searchboxDisableTab";else this.tabs[i].className="searchboxTabs"}};PTRFPlaceSearchBox.prototype.getCurrentType=function(){return this.type};PTRFPlaceSearchBox.prototype.getType=function(typeNum){return this.searchTypes[typeNum]};PTRFPlaceSearchBox.prototype.getTypes=function(){return this.searchTypes};PTRFPlaceSearchBox.prototype.setSearchValue=function(tabType){if(!tabType){if(this.tab!="searchthemap"){this.textbox.id="as_searchthemap";this.tab="searchthemap";if(this.searchthemap&&this.searchthemap!=""){this.textbox.value=this.searchthemap}else{this.textbox.value=this.defaultText}}}else if(tabType==PPlaceType.CENSUSTRACT){if(this.tab!="census"){this.textbox.id="as_census";this.tab="census";if(this.census&&this.census!=""){this.textbox.value=this.census}else{this.textbox.value=this.defaultCensusText}}}else if(tabType==PPlaceType.BLOCKGROUP){if(this.tab!="block"){this.textbox.id="as_block";this.tab="block";if(this.block&&this.block!=""){this.textbox.value=this.block}else{this.textbox.value=this.defaultBlockText}}}else if(tabType==PPlaceType.CONGRESSIONAL){if(this.tab!="congressional"){this.tab="congressional";if(this.congressional&&this.congressional!=""){this.textboxState.value=this.congressionalState}else{this.textboxState.value=this.defaultState}}}else if(tabType==PPlaceType.SENATE){if(this.tab!="senate"){this.tab="senate";if(this.senate&&this.senate!=""){this.textboxSenate.value=this.senate}}}else if(tabType==PPlaceType.SCHOOL){if(this.tab!="school"){this.textbox.id="as_school";this.tab="school";if(this.school&&this.school!=""){this.textboxState.value=this.schoolState;this.textbox.value=this.school}else{this.textboxState.value=this.defaultState;this.textbox.value=this.defaultSchoolText}}}else if(tabType==PPlaceType.SLD_UPPER){if(this.tab!="statedistricts"){this.tab="statedistricts";if(this.statedist&&this.statedist!=""){this.textboxState.value=this.statedistState}else{this.textboxState.value=this.defaultState}}}else if(tabType==PPlaceType.CBSA){if(this.tab!="cbsa"){this.tab="cbsa";if(this.cbsa&&this.cbsa!=""){this.textboxState.value=this.cbsaState}else{this.textboxState.value=this.defaultState}}}};PTRFPlaceSearchBox.prototype.setFocusEvents=function(){var search=this;PEvent.addListener(search.textbox,"focus",function(){var s=search.textbox.value;if(s==search.defaultText||s==search.defaultSchoolText||s==search.defaultCensusText||s==search.defaultBlockText){this.value=""}})};PTRFPlaceSearchBox.prototype.reset=function(){this.setType(null);this.selectTab(0);this.setSearchValue(null);this.census=this.defaultCensusText;this.block=this.defaultBlockText;this.school=this.defaultSchoolText;this.searchthemap=this.defaultText;this.textbox.value=this.searchthemap};PTRFPlaceSearchBox.prototype.setUp=function(){this.textbox.className="searchbox";this.textbox.value=this.defaultText;this.textboxState.className="searchbox";this.textboxCong.className="searchbox";this.textboxStateDistOpts.className="searchbox";this.textboxStateDist.className="searchbox";this.textboxCBSA.className="searchbox";this.textboxSenate.className="searchbox"};PTRFPlaceSearchBox.prototype.addListener=function(eventId,func){this.eventManager.registerForEvent(eventId,[],func)};PTRFPlaceSearchBox.prototype.setDefaultTypes=function(types){this.defaultType=types;this.setTypes(types)};PTRFPlaceSearchBox.prototype.getSearchString=function(){return this.textbox.value};PTRFPlaceSearchBox.prototype.setTypes=function(types){if(types){this.type=types}else this.type=this.defaultType};PTRFPlaceSearchBox.prototype.setType=function(type){if(type)this.type=[type];else this.type=this.defaultType;if(type&&type==PPlaceType.CENSUSTRACT){this.textboxCong.style.display="none";this.textboxState.style.display="none";this.textboxStateDistOpts.style.display="none";this.textboxStateDist.style.display="none";this.textbox.style.display="inline";this.textbox.style.width="97%";this.textboxCBSA.style.display="none";this.textboxSenate.style.display="none"}if(type&&type==PPlaceType.BLOCKGROUP){this.textboxCong.style.display="none";this.textboxState.style.display="none";this.textboxStateDistOpts.style.display="none";this.textboxStateDist.style.display="none";this.textbox.style.display="inline";this.textbox.style.width="97%";this.textboxCBSA.style.display="none";this.textboxSenate.style.display="none"}else if(type&&type==PPlaceType.CONGRESSIONAL){this.textboxState.style.display="inline";this.textboxState.style.paddingLeft="0px";this.textbox.style.display="none";this.textboxStateDistOpts.style.display="none";this.textboxStateDist.style.display="none";this.textboxCong.style.display="inline";this.textboxCBSA.style.display="none";this.textboxSenate.style.display="none";this.populateCongressional()}else if(type&&type==PPlaceType.SCHOOL){this.textboxCong.style.display="none";this.textboxState.style.display="inline";this.textboxState.style.paddingLeft="0px";this.textboxStateDistOpts.style.display="none";this.textboxStateDist.style.display="none";this.textbox.style.display="inline";this.textbox.style.width="65%";this.textboxSenate.style.display="none";this.textboxCBSA.style.display="none"}else if(type&&(type==PPlaceType.SLD_UPPER||type==PPlaceType.SLD_LOWER)){this.textboxState.style.display="inline";this.textboxState.style.paddingLeft="0px";this.textbox.style.display="none";this.textboxCong.style.display="none";this.textboxStateDistOpts.style.display="inline";this.textboxStateDist.style.display="inline";this.textboxCBSA.style.display="none";this.textboxSenate.style.display="none";this.populateStateDistricts()}else if(type&&type==PPlaceType.CBSA){this.textboxState.style.display="inline";this.textboxState.style.paddingLeft="0px";this.textbox.style.display="none";this.textboxCong.style.display="none";this.textboxStateDistOpts.style.display="none";this.textboxStateDist.style.display="none";this.textboxCBSA.style.display="inline";this.textboxSenate.style.display="none";this.populateCBSA()}else if(type&&type==PPlaceType.SENATE){this.textboxState.style.display="none";this.textboxState.style.paddingLeft="0px";this.textbox.style.display="none";this.textboxCong.style.display="none";this.textboxStateDistOpts.style.display="none";this.textboxStateDist.style.display="none";this.textboxCBSA.style.display="none";this.textboxSenate.style.display="inline"}else{this.textboxState.style.display="none";this.textboxState.style.paddingLeft="0px";this.textbox.style.display="inline";this.textbox.style.width="97%";this.textboxCong.style.display="none";this.textboxStateDistOpts.style.display="none";this.textboxStateDist.style.display="none";this.textboxCBSA.style.display="none";this.textboxSenate.style.display="none"}};PTRFPlaceSearchBox.prototype.populateDropDowns=function(placetypes,elem){var d=this.textboxState;var stateText=d.options[d.selectedIndex].innerHTML;var stateId=d.options[d.selectedIndex].value;if(stateId!=elem.state||elem.stateDistType&&placetypes[0]!=elem.stateDistType){while(elem.hasChildNodes())elem.removeChild(elem.firstChild);var box=this;if(placetypes[0]==PPlaceType.SLD_UPPER||placetypes[0]==PPlaceType.SLD_LOWER){geocoder.getPlace(stateText,function(stateplaces){var state=stateplaces[0];if(stateplaces.length>1){for(var j=0;j<stateplaces.length;j++){if(stateplaces[j].getLabel()==stateText&&stateplaces[j].country=="United States")state=stateplaces[j]}}state.getPlacesWithin(placetypes[0],null,null,function(places){for(var i=0;i<places.length;i++){if(stateText=="Kansas"&&places[i].getState()=="AR")continue;var cdoption=document.createElement("option");cdoption.value=places[i].id;cdoption.text=places[i].getLabel();try{elem.add(cdoption,null)}catch(ex){elem.add(cdoption)}}if(stateText=="Pennsylvania"&&placetypes[0]==PPlaceType.SLD_LOWER){var allplaces=places;placeLoader.load([3553083,3552768,3553084],function(places){for(var i=0;i<places.length;i++){var cdoption=document.createElement("option");cdoption.value=places[i].id;cdoption.text=places[i].getLabel();try{elem.add(cdoption,null)}catch(ex){elem.add(cdoption)}allplaces.push(places[i])}box.eventManager.triggerEvent("dd_initialized",allplaces)})}else box.eventManager.triggerEvent("dd_initialized",places)},5,200,PPlaceOrder.IDENTIFIER,null,"id,label")},200,1,[PPlaceType.STATE])}else if(placetypes[0]==PPlaceType.CBSA){actuallyPopulateDropdown=function(cbsas,metros){var $optionsArray=[];var $optGroup=$("<optgroup />");var $option;$optGroup.attr("label","CBSAs");$optionsArray.push($optGroup);for(var i=0;i<cbsas.length;i++){var pmdb=new PMultiDefinitionBoundary(cbsas[i]);$option=$("<option />");$option.data("pmdb",pmdb);$option.text(pmdb.name+" ("+pmdb.getYearsAsString()+")");$optGroup.append($option)}$(elem).append($optGroup);if(metros.length>0){$optGroup=$("<optgroup />");$optGroup.attr("label","Metro Divisions");$optionsArray.push($optGroup);for(i=0;i<metros.length;i++){var pmdb=new PMultiDefinitionBoundary(metros[i]);$option=$("<option />");$option.data("pmdb",pmdb);$option.text(pmdb.name+" ("+pmdb.getYearsAsString()+")");$optGroup.append($option)}}$(elem).append($optGroup)};var stateAbbr=this.getSearchStateAbbr();if(stateAbbr=="DC"){var cbsas=[{name:"Washington-Arlington-Alexandria, DC-VA-MD-WV Metro Area",typeId:58,bounds:[{bid:2066104,defId:105,year:"2003"},{bid:3579094,defId:125,year:"2013"}]}];var metros=[{name:"Washington-Arlington-Alexandria, DC-VA-MD-WV Metro Division",typeId:60,bounds:[{bid:2066170,defId:107,year:"2003"},{bid:3580037,defId:127,year:"2013"}]}];actuallyPopulateDropdown(cbsas,metros)}else{placeLoader.loadStateAllType(stateAbbr,PPlaceType.CBSA,function(cbsas){placeLoader.loadStateAllType(stateAbbr,PPlaceType.MD,function(metros){actuallyPopulateDropdown(cbsas,metros)})})}}else{geocoder.getPlace(stateText,function(places){var stext="";if(placetypes[0]==PPlaceType.CONGRESSIONAL){stext="'s"}for(var i=0;i<places.length;i++){if(stateText=="Kansas"&&places[i].getState()=="AR")continue;var cdoption=document.createElement("option");cdoption.value=places[i].id;cdoption.text=places[i].getLabel().replace(stateText+stext+" ","");try{elem.add(cdoption,null)}catch(ex){elem.add(cdoption)}}if(stateText=="Pennsylvania"&&placetypes[0]==PPlaceType.SLD_LOWER){var allplaces=places;placeLoader.load([1884717,1884718,1884711],function(places){for(var i=0;i<places.length;i++){var cdoption=document.createElement("option");cdoption.value=places[i].id;cdoption.text=places[i].getLabel().replace(stateText+" ","");try{elem.add(cdoption,null)}catch(ex){elem.add(cdoption)}allplaces.push(places[i])}box.eventManager.triggerEvent("dd_initialized",allplaces)})}else box.eventManager.triggerEvent("dd_initialized",places)},200,1,placetypes,null,null,null,"id,label")}elem.state=stateId;if(elem.stateDistType||elem.stateDistType==""){elem.stateDistType=placetypes[0]}}};PTRFPlaceSearchBox.prototype.getSearchStateAbbr=function(){var d=this.textboxState;var stateText=d.options[d.selectedIndex].title;return stateText};PTRFPlaceSearchBox.prototype.populateCongressional=function(){this.populateDropDowns(this.type,this.textboxCong)};PTRFPlaceSearchBox.prototype.populateStateDistricts=function(){this.populateDropDowns(this.type,this.textboxStateDist)};PTRFPlaceSearchBox.prototype.populateCBSA=function(){this.populateDropDowns(this.type,this.textboxCBSA)};PTRFPlaceSearchBox.prototype.populateSenate=function(){var elem=this.textboxSenate;var senatorSet=false;var self=this;placeLoader.loadType(PPlaceType.SENATE,PPlaceOrder.STATE_CANONICALNAME,function(places){for(var i=0;i<places.length;i++){var o=document.createElement("option");o.value=places[i].id;var l=places[i].getLabel();o.text=l;if(!senatorSet&&places[i].getState()==self.defaultStateAbbrev){o.selected=true;senatorSet=true}try{elem.add(o,null)}catch(ex){elem.add(o)}}})};PTRFPlaceSearchBox.prototype.cleanString=function(s){if(s.search("e.g.,")==0){return""}else{return s.replace(/^\s+|\s+$/g,"")}};PTRFPlaceSearchBox.prototype.submit=function(){var displayAlert=function(alertText){setTimeout(function(){alerter.popup(alertText,"OK")},300)};this.eventManager.triggerEvent("submit");var box=this;var text=this.getSearchString();if(this.type&&(this.type[0]==PPlaceType.CENSUSTRACT||this.type[0]==PPlaceType.BLOCKGROUP)){var typeId=this.type[0].getId();var isCensus=this.type[0]==PPlaceType.CENSUSTRACT;if(isCensus&&text==this.defaultCensusText||!isCensus&&text==this.defaultBlockText){return}var searchText=this.cleanString(this.textbox.value);if(searchText==""){this.textbox.focus();return}var fipsBad='Location "<b>'+searchText+"</b>\" was not found. For help finding census tracts and block groups, <a class='pagelinks' href='"+PEnvironment.blogUrl+"?p=3580' target='_blank'>click here</a>.";var defs=[];var alertText="";if(isCensus&&searchText.length!=11||!isCensus&&searchText.length!=12){alertText=fipsBad}else{var matrixIds=boundaryMatrix.getMatrixOrder(true);var addedDefs=[];for(var i=0;i<matrixIds.length;i++){try{var def=boundaryMatrix.getDefinitionIdForTypeId(typeId,matrixIds[i]);if(addedDefs[def]==null){defs.push(def);addedDefs[def]=true}}catch(e){}}if(defs.length<1){alertText="Unable to perform FIPS search."}}if(alertText!=""){displayAlert(alertText);return}var f=function(places){if(places.length>0){box.eventManager.triggerEvent("response",places,box)}else{alerter.popup(fipsBad,"OK")}};var options={ord:1};placeLoader.loadFIPS(searchText,defs,options,f)}else if(this.type&&this.type[0]==PPlaceType.CONGRESSIONAL){var d=this.textboxCong;var congid=d.options[d.selectedIndex].value;placeLoader.load([congid],function(places){box.eventManager.triggerEvent("response",places,box)})}else if(this.type&&this.type[0]==PPlaceType.SCHOOL){if(text==this.defaultSchoolText){return}var d=this.textboxState;var stateText=d.options[d.selectedIndex].title;text+=", "+stateText;if(this.cleanString(text)==""){alert("Please enter School District name.");return}if(this.cleanString(text)!=""){geocoder.getPlace(text,function(places){if(places.length>0){box.eventManager.triggerEvent("response",places,box)}else{var content='Location "<b>'+box.getSearchString()+'</b>" not found.';alerter.popup(content,"OK")}},5,PPlaceOrder.POPULATION,box.type)}}else if(this.type&&(this.type[0]==PPlaceType.SLD_UPPER||this.type[0]==PPlaceType.SLD_LOWER)){var d=this.textboxStateDist;var statedistid=d.options[d.selectedIndex].value;placeLoader.load([statedistid],function(places){box.eventManager.triggerEvent("response",places,box)})}else if(this.type&&this.type[0]==PPlaceType.CBSA){var pmdb=$(this.textboxCBSA).find("option:selected").data("pmdb");var bid=pmdb.getBoundaryIdForCurrentMatrix();placeLoader.load([bid],function(places){
box.eventManager.triggerEvent("response",places,box)})}else if(this.type&&this.type[0]==PPlaceType.SENATE){var d=this.textboxSenate;var senateid=d.options[d.selectedIndex].value;placeLoader.load([senateid],function(places){box.eventManager.triggerEvent("response",places,box)})}else{if(text==this.defaultText){return}var matches=/^(-?\d+(\.\d+)?),(-?\d+(\.\d+)?)$/.exec(text);if(matches){var lat=parseFloat(matches[1]);var lng=parseFloat(matches[3]);if(lat>=90||lat<=-90||lng>=180||lng<=-180){displayAlert('"<b>'+text+'</b>" is not a valid latitude/longitude.');return}var address=new PAddress(lat+","+lng,lng,lat);box.eventManager.triggerEvent("response",address,box)}else{var placetypes=null;if(text.toLowerCase().indexOf(" county subdivision")!=-1){text=text.toLowerCase().replace(" county subdivision","");placetypes=[PPlaceType.COUNTY_SUBDIVISION]}else{placetypes=box.type}if(this.cleanString(text)!=""){geocoder.getPlace(text,function(places){if(places.length>0){box.eventManager.triggerEvent("response",places,box)}else{geocoder.getLocations(text,function(address){box.eventManager.triggerEvent("response",address,box)})}},5,PPlaceOrder.POPULATION,placetypes,null,null,null,null,true)}}}if(this.tab=="searchthemap"){this.searchthemap=this.textbox.value}else if(this.tab=="census"){this.census=this.textbox.value}else if(this.tab=="block"){this.block=this.textbox.value}else if(this.tab=="congressional"){this.congressional=this.textboxCong.value;this.congressionalState=this.textboxState.value}else if(this.tab=="senate"){this.senate=this.textboxSenate.value}else if(this.tab=="school"){this.school=this.textbox.value;this.schoolState=this.textboxState.value}else if(this.tab=="statedistricts"){this.statedist=this.textboxStateDist.value;this.statedistState=this.textboxState.value;this.statedistUL=this.textboxStateDistOpts.value}else if(this.tab=="cbsa"){this.cbsa=this.textboxCBSA.value;this.cbsaState=this.textboxState.value}};PWebUtil=function(){};PWebUtil.lastExecutors=[];PWebUtil.executeLast=function(o,f){this.lastExecutors.push([o,f]);var code="var cmd9876 = PWebUtil.lastExecutors.shift(); cmd9876[1].apply(cmd9876[0]);";setTimeout(code,1)};PWebUtil.addArgs=function(url){var l=arguments.length;if(l>1)url+="?";var pair,value;for(var i=l-1;i>0;i--){pair=arguments[i];value=pair[1];if(value&&value+""!="")url+=pair[0]+"="+value+"&"}if(url.lastIndexOf("&")==url.length-1)url=url.substring(0,url.length-1);return url};PWebUtil.purge=function(d){var a=d.attributes,i,l,n;if(a){l=a.length;for(i=0;i<l;i+=1){n=a[i].name;if(typeof d[n]==="function")d[n]=null}}a=d.childNodes;if(a){l=a.length;for(i=0;i<l;i+=1){this.purge(d.childNodes[i])}}};PWebUtil.formatNumber=function(value,unit,dec,idv,round){if(!idv)idv=-9999;if(!round)round=100;if(value==null||isNaN(value)||value==Infinity||value==idv)return"N/A";else if(dec||dec==0)value=Number(value).toFixed(dec);else value=Math.round(value*round)/round;var neg=false;if(value<0)neg=true;value=value.toString();if(unit=="non_"||unit=="year_"){return value}var x=value.split(".");var x1=x[0];var x2=x.length>1?x[1]:"0";if(unit&&unit=="$_"&&x2.length==1)x2+="0";var rgx=/(\d+)(\d{3})/;while(rgx.test(x1))x1=x1.replace(rgx,"$1"+","+"$2");value=x1;if(dec)value+="."+x2;else if(parseInt(x2,10)!=0)value+="."+x2.substr(0,2);if(unit&&unit!=""&&unit!="number_"){var fix=unit.split("_");if(fix[0]!=""){value=fix[0]+value;if(neg==true){var arr=value.split("-");value="-"+arr[0]+arr[1]}}if(fix[1]!="")value+=fix[1]}return value};PWebUtil.getBreakIncrement=function(breaksString){var breaks=breaksString.split(",");var l=breaks.length;var decimalPlaces=0;for(var i=0;i<l;i++){var splitDec=breaks[i].split(".");if(splitDec[1]&&splitDec[1].length>decimalPlaces&&splitDec[1]!=0&&!splitDec[1].match("E")){decimalPlaces=splitDec[1].length;if(decimalPlaces>2)decimalPlaces=2}}if(decimalPlaces==0)return 1;else{var inc="0.";for(var i=1;i<decimalPlaces;i++)inc+="0";inc+="1";return Number(inc)}};PWebUtil.getDecimalPlaces=function(num){var dec=0;var decs=num.toString().split(".");if(decs[1]&&decs[1].length>0)dec=decs[1].length;return dec};PWebUtil.shuffleArray=function(arr,b){var i=arr.length,j,t;while(i){j=Math.floor(i--*Math.random());t=b&&arr[i]instanceof Array?PWebUtil.shuffleArray(arr[i]):arr[i];arr[i]=arr[j];arr[j]=t}return arr};PWebUtil.parseQuery=function(q){var ret={};if(q==null){q=window.location.search}if(q.length==0){return ret}if(q.substring(0,1)=="&"||q.substring(0,1)=="?"){q=q.substring(1,q.length)}var pairs=q.split("&");var pair;for(var i=0;i<pairs.length;i++){pair=pairs[i].split("=");ret[pair[0]]=decodeURIComponent(pair[1])}return ret};PWidget=function(map,div,widgetid){var pWidget=this;if(map)this.map=map;else{this.map=new Object;this.map.kamap=new Object;this.map.kamap.server=PEnvironment.kamapUrl}this.id=widgetid;this.background=div;this.background.style.borderRight="1px solid #666";this.background.style.borderBottom="1px solid #666";this.background.style.backgroundColor="#fff";this.box=document.createElement("div");this.box.style.border="1px solid #C7BEA5";this.box.style.padding="2px";this.heading=document.createElement("div");this.heading.id=div.id+"_heading";this.heading.style.border="1px solid #E2DFD3";this.heading.style.backgroundColor="#E2DFD3";this.heading.style.padding="0px 1px 0px 5px";this.heading.style.height="15px";PEvent.addListener(this.heading,"click",function(){widgetZIndex++;pWidget.background.style.zIndex=widgetZIndex});PEvent.addListener(this.heading,"dblclick",function(){pWidget.toggleMinMaximize()});var widgetWidth=parseInt(this.background.style.width);var totalPadding=parseInt(this.box.style.paddingLeft)+parseInt(this.box.style.paddingRight)+parseInt(this.heading.style.paddingLeft)+parseInt(this.heading.style.paddingRight)+parseInt(this.box.style.borderLeftWidth)+parseInt(this.box.style.borderRightWidth)+parseInt(this.heading.style.borderRightWidth)+parseInt(this.background.style.borderRightWidth);this.heading.style.width=widgetWidth-totalPadding+"px";this.title=document.createElement("div");this.title.style.styleFloat="left";this.title.style.cssFloat="left";this.title.style.color="#666";this.title.style.fontFamily="arial";this.title.style.fontSize="11px";this.title.style.fontWeight="bold";this.title.innerHTML="";this.controls=document.createElement("div");this.controls.style.width="28px";this.controls.style.height="13px";this.controls.style.styleFloat="right";this.controls.style.cssFloat="right";this.button_maximize=document.createElement("img");PEvent.addListener(this.button_maximize,"click",function(){pWidget.toggleMinMaximize()});this.button_maximize.style.cursor="pointer";this.button_maximize.style.width="13px";this.button_maximize.style.height="13px";this.button_maximize.border=0;this.button_maximize.hspace=1;this.button_maximize.vspace=1;this.button_maximize.src=this.map.kamap.server+"images/button_minimize_widget.gif";this.button_maximize.title="Minimize";this.button_close=document.createElement("img");PEvent.addListener(this.button_close,"click",function(){pWidget.close()});this.button_close.style.cursor="pointer";this.button_close.style.width="13px";this.button_close.style.height="13px";this.button_close.border=0;this.button_close.vspace=1;this.button_close.src=this.map.kamap.server+"images/button_close_widget.gif";this.button_close.title="Close";this.controls.appendChild(this.button_maximize);this.controls.appendChild(this.button_close);this.heading.appendChild(this.title);this.heading.appendChild(this.controls);this.body=document.createElement("div");this.body.style.padding="3px";this.body.style.fontFamily="arial";this.body.style.fontWeight="normal";this.body.style.fontSize="11px";this.body.style.color="#666";this.disableDragging();this.box.appendChild(this.heading);this.background.appendChild(this.box);this.maximize();this.listeners=[];if(widgetid){if(widgetid==P_WIDGET_LAYER_ID){this.map.widgetLayer=this;var mapref=this.map;PEvent.addListener(this.map,"zoomend",function(){mapref.refreshWidget(mapref.widgetLayer)})}else if(this.id==P_WIDGET_OVERLAY_ID)this.map.widgetOverlay=this;else if(this.id==P_WIDGET_INDICATOR_ID){this.map.widgetIndicator=this;this.map.kamap.widgetIndicator=this}this.buildWidget()}};PWidget.prototype.setTitle=function(html){this.setLabel(html)};PWidget.prototype.getTitle=function(){return this.title.innerHTML};PWidget.prototype.setBody=function(html){this.setContentHtml(html)};PWidget.prototype.getBody=function(){return this.body.innerHTML};PWidget.prototype.setLabel=function(html){this.title.innerHTML=html};PWidget.prototype.setContent=function(dom){this.body.appendChild(dom)};PWidget.prototype.setContentHtml=function(html){this.body.innerHTML=html};PWidget.prototype.maximize=function(){if(!this.isMaximized()){this.box.appendChild(this.body);if(this.layersDiv||this.overlaysDiv)this.buildWidget();this.button_maximize.src=this.map.kamap.server+"images/button_minimize_widget.gif";this.button_maximize.title="Minimize";this.isMax=true}};PWidget.prototype.minimize=function(){if(this.isMaximized()){this.box.removeChild(this.body);this.button_maximize.src=this.map.kamap.server+"images/button_maximize_widget.gif";this.button_maximize.title="Maximize";this.isMax=false}};PWidget.prototype.isMaximized=function(){if(this.isMax)return this.isMax;else return false};PWidget.prototype.enableDragging=function(){var div_id=this.background.id;this.heading.style.cursor="move";this.drag=new PWidgetDrag(div_id);this.drag.setHandleElId(div_id+"_heading")};PWidget.prototype.disableDragging=function(){if(this.drag)this.drag.unreg();this.drag=null;this.heading.style.cursor="default"};PWidget.prototype.draggingEnabled=function(){if(this.drag==null)return false;else return true};PWidget.prototype.close=function(){this.clearListeners();this.background.parentNode.removeChild(this.background)};PWidget.prototype.clearListeners=function(){for(var i=0;i<this.listeners.length;i++)PEvent.removeListener(this.listeners[i]);this.listeners=[]};PWidget.prototype.buildWidget=function(){this.clearListeners();if(this.id==P_WIDGET_LAYER_ID){if(this.title&&this.title.innerHTML=="")this.setLabel("Display "+this.map.getCurrentMapType().getName()+" Layers");if(!this.layersDiv){this.layersDiv=document.createElement("div");this.body.appendChild(this.layersDiv)}else{this.layersDiv.innerHTML=""}var layers=this.map.getCurrentMapType().getMapLayers();for(var i=1;i<layers.length;i++){if(layers[i].title!="donotshowinwidget"){var checkDiv=document.createElement("div");checkDiv.style.styleFloat="left";checkDiv.style.cssFloat="left";var check=document.createElement("input");check.type="checkbox";check.value=i;checkDiv.appendChild(check);this.layersDiv.appendChild(checkDiv);if(layers[i].isOn())check.checked="true";this.listeners.push(PEvent.addListener(check,"click",function(){if(layers[this.value].isOn())layers[this.value].off();else layers[this.value].on()}));if(layers[i].minScale>this.map.getScale()||layers[i].maxScale<this.map.getScale())check.disabled=true;var textDiv=document.createElement("div");textDiv.style.styleFloat="left";textDiv.style.cssFloat="left";textDiv.style.paddingTop="3px";textDiv.style.paddingLeft="2px";textDiv.innerHTML=layers[i].title;if(check.disabled)textDiv.style.color="#ccc";this.layersDiv.appendChild(textDiv);var br=document.createElement("br");br.clear="both";this.layersDiv.appendChild(br)}}}else if(this.id==P_WIDGET_OVERLAY_ID){if(!this.expandDiv)this.expandDiv=[];if(this.title&&this.title.innerHTML=="")this.setLabel("Display Overlays");if(!this.overlaysDiv){this.overlaysDiv=document.createElement("div");this.overlaysDiv.style.padding="1px";this.body.appendChild(this.overlaysDiv)}else{this.overlaysDiv.innerHTML=""}var overlays=this.map.getOverlaySets();for(var i=0;i<overlays.length;i++){var overlayi=overlays[i];var checkDiv=document.createElement("div");checkDiv.style.styleFloat="left";checkDiv.style.cssFloat="left";var check=document.createElement("input");check.type="checkbox";check.value=i;checkDiv.appendChild(check);this.overlaysDiv.appendChild(checkDiv);if(overlayi.isOn())check.checked="true";this.listeners.push(PEvent.addListener(check,"click",function(){if(overlays[this.value].isOn())overlays[this.value].off();else overlays[this.value].on()}));var imgWidth=10;var iconDiv=null;if(overlayi.markers&&overlayi.markers[0]||overlayi.icon){var overlay=null;if(overlayi.markers&&overlayi.markers[0])overlay=overlayi.markers[0];if(overlay instanceof PMarker||overlayi.icon){iconDiv=document.createElement("img");var icon;if(overlayi.icon)icon=new PIcon(overlayi.icon);else icon=new PIcon(overlay.icon);iconDiv.src=icon.image;var height=icon.iconSize.height;var width=icon.iconSize.width;if(width>imgWidth){height=imgWidth/width*height;width=imgWidth}iconDiv.style.height=height+"px";iconDiv.style.width=width+"px";fixPNG(iconDiv)}else if(overlay instanceof PPolyline||overlay instanceof PPolygon){iconDiv=document.createElement("div");iconDiv.style.styleFloat="left";iconDiv.style.cssFloat="left";iconDiv.style.height=overlay.weight+"px";iconDiv.style.width=imgWidth+"px";iconDiv.style.marginTop=15-overlay.weight+"px";iconDiv.style.marginRight="3px";iconDiv.style.backgroundColor=overlay.color;iconDiv.style.fontSize="1px";_BrowserIdent_setOpacity(iconDiv,overlay.opacity)}}var textDiv=document.createElement("div");var textNode=document.createTextNode(" "+overlayi.name+" ["+overlayi.getOverlayCount()+"] ");textDiv.style.styleFloat="left";textDiv.style.cssFloat="left";textDiv.style.paddingTop="3px";textDiv.style.paddingLeft="2px";if(iconDiv)textDiv.appendChild(iconDiv);textDiv.appendChild(textNode);this.overlaysDiv.appendChild(textDiv);if(!$.isEmptyObject(overlayi.displayfiltergroups)){var menuTimer=[];var menuTimerNameDiv=[];var menuTimerValueDiv=[];var menuWait=300;function findPos(obj){var curleft=curtop=0;if(obj.offsetParent){curleft=obj.offsetLeft;curtop=obj.offsetTop;while(obj=obj.offsetParent){curleft+=obj.offsetLeft;curtop+=obj.offsetTop}}return[curleft,curtop]}function removeNode(div,id){for(var i=0;i<div.childNodes.length;i++){if(div.childNodes[i].id==id)div.removeChild(div.childNodes[i])}}var filterArrow=document.createElement("img");var nameDiv=document.createElement("div");filterArrow.style.width="13px";filterArrow.style.height="13px";filterArrow.style.cursor="pointer";filterArrow.style.paddingRight="3px";filterArrow.align="top";filterArrow.textDiv=textDiv;filterArrow.nameDiv=nameDiv;filterArrow.mouseoverimg=this.map.kamap.server+"images/button_arrow_down_widget.gif";filterArrow.mouseoutimg=this.map.kamap.server+"images/button_arrow_widget.gif";filterArrow.src=filterArrow.mouseoutimg;filterArrow.timerIndex=i;filterArrow.valueDivId="filterValueDiv";this.listeners.push(PEvent.addListener(filterArrow,"mouseover",function(){this.src=this.mouseoverimg;clearTimeout(menuTimer[this.timerIndex]);clearTimeout(menuTimerNameDiv[this.timerIndex]);clearTimeout(menuTimerValueDiv[this.timerIndex]);this.textDiv.appendChild(this.nameDiv);removeNode(this.textDiv,this.valueDivId)}));this.listeners.push(PEvent.addListener(filterArrow,"mouseout",function(){var self=this;menuTimer[self.timerIndex]=setTimeout(function(){self.src=self.mouseoutimg;self.textDiv.removeChild(self.nameDiv)},menuWait)}));while(textDiv.hasChildNodes())textDiv.removeChild(textDiv.firstChild);textDiv.appendChild(filterArrow);if(iconDiv)textDiv.appendChild(iconDiv);textDiv.appendChild(textNode);nameDiv.style.zIndex=10;nameDiv.style.position="absolute";nameDiv.style.borderTop=this.box.style.borderTop;nameDiv.style.borderRight=this.background.style.borderRight;nameDiv.style.borderBottom=this.background.style.borderBottom;nameDiv.style.width="150px";nameDiv.style.backgroundColor=this.background.style.backgroundColor;nameDiv.filterArrow=filterArrow;this.listeners.push(PEvent.addListener(nameDiv,"mouseover",function(){clearTimeout(menuTimer[this.filterArrow.timerIndex]);clearTimeout(menuTimerNameDiv[this.filterArrow.timerIndex]);clearTimeout(menuTimerValueDiv[this.filterArrow.timerIndex])}));this.listeners.push(PEvent.addListener(nameDiv,"mouseout",function(){var filterArrow=this.filterArrow;menuTimerNameDiv[filterArrow.timerIndex]=setTimeout(function(){filterArrow.src=filterArrow.mouseoutimg;filterArrow.textDiv.removeChild(filterArrow.nameDiv);removeNode(filterArrow.textDiv,filterArrow.valueDivId)},menuWait)}));var nameDivPos=findPos(filterArrow);var widgetPos=findPos(this.background);nameDiv.style.left=nameDivPos[0]-widgetPos[0]+parseInt(filterArrow.style.width)+2+"px";nameDiv.style.top=nameDivPos[1]-widgetPos[1]+"px";for(var j in overlayi.displayfiltergroups){var filters=overlayi.displayfiltergroups[j];if(filters.length>0){var newDivOuter=document.createElement("div");newDivOuter.style.padding="1px";newDivOuter.style.borderLeft=this.box.style.borderLeft;newDivOuter.style.borderRight=this.box.style.borderRight;newDivOuter.style.borderBottom=this.box.style.borderBottom;var valueDiv=document.createElement("div");valueDiv.id=filterArrow.valueDivId;valueDiv.style.zIndex=nameDiv.style.zIndex;valueDiv.style.position=nameDiv.style.position;valueDiv.style.borderTop=nameDiv.style.borderTop;valueDiv.style.borderRight=nameDiv.style.borderRight;valueDiv.style.borderBottom=nameDiv.style.borderBottom;valueDiv.style.width=nameDiv.style.width;valueDiv.style.backgroundColor=nameDiv.style.backgroundColor;valueDiv.style.left=parseInt(nameDiv.style.left)+parseInt(nameDiv.style.width)-1+"px";valueDiv.style.top=nameDiv.style.top;valueDiv.filterArrow=filterArrow;this.listeners.push(PEvent.addListener(valueDiv,"mouseover",function(){clearTimeout(menuTimerValueDiv[this.filterArrow.timerIndex]);clearTimeout(menuTimerNameDiv[this.filterArrow.timerIndex])}));this.listeners.push(PEvent.addListener(valueDiv,"mouseout",function(){var self=this;var filterArrow=this.filterArrow;menuTimerValueDiv[filterArrow.timerIndex]=setTimeout(function(){filterArrow.src=filterArrow.mouseoutimg;filterArrow.textDiv.removeChild(filterArrow.nameDiv);filterArrow.textDiv.removeChild(self)},menuWait)}));var newDiv=document.createElement("div");newDiv.innerHTML=j;newDiv.style.width="136px";newDiv.style.padding="0px 5px 0px 5px";newDiv.style.cursor="pointer";newDiv.style.fontSize="10px";newDiv.valueDiv=valueDiv;newDiv.textDiv=textDiv;newDiv.filterArrow=filterArrow;newDiv.mouseovercolor=this.heading.style.backgroundColor;newDiv.mouseoutcolor=this.background.style.backgroundColor;this.listeners.push(PEvent.addListener(newDiv,"mouseover",function(){this.style.backgroundColor=this.mouseovercolor;removeNode(this.textDiv,this.filterArrow.valueDivId);this.textDiv.appendChild(this.valueDiv)}));this.listeners.push(PEvent.addListener(newDiv,"mouseout",function(){this.style.backgroundColor=this.mouseoutcolor}));newDivOuter.appendChild(newDiv);nameDiv.appendChild(newDivOuter);for(var k=0;k<filters.length;k++){var existfilters=overlayi.filtergroups[j];var found=false;var newChild=document.createElement("div");var newChildOuter=document.createElement("div");newChildOuter.style.padding=newDivOuter.style.padding;newChildOuter.style.borderLeft=newDivOuter.style.borderLeft;newChildOuter.style.borderRight=newDivOuter.style.borderRight;newChildOuter.style.borderBottom=newDivOuter.style.borderBottom;newChild.style.width=newDiv.style.width;newChild.style.padding=newDiv.style.padding;newChild.style.fontSize="10px";newChild.innerHTML=filters[k].displayValues();if(existfilters){for(var l=0;l<existfilters.length;l++){if(filters[k]==existfilters[l]){found=true;break}}}if(found)newChild.style.backgroundColor=this.heading.style.backgroundColor;else{newChild.mouseovercolor=this.heading.style.backgroundColor;newChild.mouseoutcolor=this.background.style.backgroundColor;newChild.overlay=overlayi;newChild.filter=filters[k];newChild.style.cursor="pointer";newChild.filterArrow=filterArrow;newChild.timerIndex=k;this.listeners.push(PEvent.addListener(newChild,"mouseover",function(){this.style.backgroundColor=this.mouseovercolor}));this.listeners.push(PEvent.addListener(newChild,"mouseout",function(){this.style.backgroundColor=this.mouseoutcolor}));this.listeners.push(PEvent.addListener(newChild,"click",function(){this.overlay.addFilter(this.filter)}))}newChildOuter.appendChild(newChild);valueDiv.appendChild(newChildOuter)}}}}if(overlayi.getFilters().length>0){var activeDiv=document.createElement("div");activeDiv.style.paddingLeft="15px";var expandImg=document.createElement("img");expandImg.style.width="9px";expandImg.style.height="9px";expandImg.hspace=3;this.expandDiv[i]=document.createElement("div");this.expandDiv[i].expand=true;this.expandDiv[i].plusImg=this.map.kamap.server+"images/expand.png";this.expandDiv[i].minusImg=this.map.kamap.server+"images/collapse.png";expandImg.src=this.expandDiv[i].minusImg;this.expandDiv[i].appendChild(expandImg);this.expandDiv[i].innerHTML+="<b><u>Active Filters</u></b><br>";this.expandDiv[i].style.cursor="pointer";this.listeners.push(PEvent.addListener(this.expandDiv[i],"click",function(){if(this.expand){this.childNodes[0].src=this.plusImg;this.expand=false;this.parentNode.removeChild(this.activeDiv)}else{this.childNodes[0].src=this.minusImg;this.expand=true;this.parentNode.appendChild(this.activeDiv)}}));this.expandDiv[i].activeDiv=activeDiv;textDiv.appendChild(this.expandDiv[i]);if(this.expandDiv[i].expand)textDiv.appendChild(activeDiv);for(var j in overlayi.filtergroups){var filters=overlayi.filtergroups[j];if(filters.length>0){var newDiv=document.createElement("div");var newChild=document.createElement("div");newDiv.innerHTML=j+": <span style='font-size: 9px; color: #aaa'>(click to remove)</span>";newChild.style.paddingLeft="15px";newChild.style.fontSize="10px";newDiv.appendChild(newChild);activeDiv.appendChild(newDiv);for(var k=0;k<filters.length;k++){var newA=document.createElement("a");newA.href="#";newA.title="Remove";newA.style.paddingRight="2px";newA.filter=filters[k];newA.overlay=overlayi;newA.innerHTML=newA.filter.displayValues();this.listeners.push(PEvent.addListener(newA,"click",function(){this.overlay.removeFilter(this.filter)}));newChild.appendChild(newA);newChild.appendChild(document.createElement("br"))}}}}var br=document.createElement("br");br.clear="both";this.overlaysDiv.appendChild(br)}}else if(this.id==P_WIDGET_INDICATOR_ID){if(this.title&&this.title.innerHTML=="")this.setLabel("Choose an Indicator");if(!this.indSelect){this.indSelect=document.createElement("select");this.indSelect.style.width="100%";this.indSelect.style.fontSize="10px";this.body.appendChild(this.indSelect)}else{this.indSelect.innerHTML=""}var widgetMap=this.map;var widget=this;var indList=this.map.getIndicatorList();this.listeners.push(PEvent.addListener(this.indSelect,"change",function(){if(this.value==-1)widgetMap.removeIndicator();else widgetMap.setIndicator(indList[this.value])}));var indOption=document.createElement("option");indOption.text="None";indOption.value=-1;try{this.indSelect.add(indOption,null)}catch(ex){this.indSelect.add(indOption)}if(this.map.getLegend()!=null&&this.map.getIndicatorList()){var inds=this.map.getIndicatorList();var selectedIndex=0;for(var i=0;i<inds.length;i++){var indOption=document.createElement("option");indOption.text=inds[i].displayName;indOption.value=i;if(this.map.getIndicator()!=null&&this.map.getIndicator().id==inds[i].id)selectedIndex=i+1;try{this.indSelect.add(indOption,null)}catch(ex){this.indSelect.add(indOption)}}this.indSelect.selectedIndex=selectedIndex}var legend="";if(this.map.getLegend()!=null&&this.map.getIndicator()!=null&&this.map.getLegend().getBoundaryType()){var leg=this.map.getLegend();var incrementValue=PWebUtil.getBreakIncrement(leg.getBreaks());var breaks=leg.getFormattedBreaks(incrementValue);var incrementBreaks=leg.getIncrementedBreaks(incrementValue);var colors=leg.getColors();legend="<div style='padding-bottom: 5px'></div><table width=98% cellpadding=0 cellspacing=0 border=0 style='border-left: #ccc 1px solid; border-top: #ccc 1px solid; border-right: #ccc 1px solid'>";var numbreaks=leg.getNumberOfBreaks();if(leg.getIndicator().nodata)numbreaks+=1;for(var i=0;i<numbreaks;i++){var breaksString;if(leg.getIndicator().nodata&&i==0)breaksString="<span style='color:#ccc;font-style:italic'>Data Not Available</span>";else if(leg.getIndicator().breakid==P_BREAKTYPE_EXACT_VALUE_ID||leg.getIndicator().breakid==P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID||breaks[i]==breaks[i+1])breaksString=breaks[i];else{var startBreak="";if(i==0||i==1&&leg.getIndicator().nodata)startBreak=breaks[i];else startBreak=incrementBreaks[i];if(startBreak==breaks[i+1])breaksString=startBreak;else breaksString=startBreak+"&nbsp;&nbsp;&ndash;&nbsp;&nbsp;"+breaks[i+1]}legend+="<tr><td style='border-right: #ccc 1px solid; border-bottom: #ccc 1px solid; width: 30px; background-color: #"+colors[i]+"'>&nbsp;</td><td style='border-bottom: #ccc 1px solid'>&nbsp;&nbsp;"+breaksString+"</td></tr>"}legend+="</table><div style='padding-bottom: 3px'></div>";legend+="Shaded by "+leg.getBoundaryType().name;legend+="<br>";if(leg.getIndicator().getSources().length>0)legend+="<i>Source: "+leg.getIndicator().getSourceList()+"</i>"}else if(this.map.getIndicator()!=null)legend+="<i>Data not available at this zoom level.</i><br>";if(!this.indLegend){this.indLegend=document.createElement("div");this.body.appendChild(this.indLegend)}this.indLegend.innerHTML=legend}};PWidget.prototype.toggleMinMaximize=function(){if(this.isMaximized()){this.minimize()}else{this.maximize()}};function PWidgetDrag(id,sGroup){this.id=id;if(id){this.init(id,sGroup)}}PWidgetDrag.prototype=new YAHOO_PP.util.DD;PWidgetDrag.prototype.startDrag=function(x,y){var style=this.getEl().style;widgetZIndex++;style.zIndex=widgetZIndex;style.position="absolute"};PWizard=function(container){this.eventManager=new PEventManager;this.stepIndex=-1;this.steps=[];this.wizContainer};PWizard.prototype.onstepchange=function(prev,current){this.eventManager.triggerListeners("stepchange",prev,current)};PWizard.prototype.onclear=function(current){this.eventManager.triggerListeners("clear",current)};PWizard.prototype.next=function(){if(this.stopPlaying){this.stopPlaying=false;return}if(this.stepIndex>=0){this.steps[this.stepIndex].hide()}if(this.steps.length!=this.stepIndex)this.stepIndex+=1;if(this.stepIndex==0)$(this.prevbutton).css("visibility","hidden");else $(this.prevbutton).css("visibility","visible");if(this.stepIndex==this.steps.length-1)$(this.nextbutton).css("visibility","hidden");if(this.stepIndex>this.steps.length-1){this.stepIndex=this.steps.length-1}else{this.steps[this.stepIndex].show();this.onstepchange(this.stepIndex-1,this.stepIndex)}};PWizard.prototype.prev=function(){if(this.stepIndex>=0){$(this.nextbutton).css("visibility","visible");this.steps[this.stepIndex].hide();if(this.stepIndex==1||this.stepIndex==0)$(this.prevbutton).css("visibility","hidden")}if(this.stepIndex>0)this.stepIndex-=1;this.steps[this.stepIndex].show();this.onstepchange(this.stepIndex+1,this.stepIndex)};PWizard.prototype.start=function(){this.stepIndex=-1;this.next()};PWizard.prototype.goTo=function(num){var i=this.stepIndex;if(i>=0){if(num<this.stepIndex){this.steps[i].hide()}else{return}}this.stepIndex=num;if(this.stepIndex>this.steps.length-1){this.stepIndex=this.steps.length-1}this.steps[this.stepIndex].show();this.onstepchange(i,this.stepIndex)};PWizard.prototype.clear=function(){this.onclear(this.stepIndex);document.location=(document.location+"").split("?")[0]+(this.signature?"?signature="+this.signature.getSignature():"")};PWizard.prototype.addListener=function(eventId,func){this.eventManager.addListener(eventId,this,func)};PWizard.prototype.hideStep=function(num){this.steps[num].hide()};PWizardStep=function(){this.drawn=false};PWizardStep.prototype.show=function(){this.draw();$(this.stepContainer).show()};PWizardStep.prototype.hide=function(){$(this.stepContainer).hide()};PXslt=function(xsltnode){this.xsltnode=xsltnode};PXslt.prototype.transformToHtml=function(xmlnode,htmlnode){if(typeof xmlnode.transformNode!="undefined")htmlnode.innerHTML+=xmlnode.transformNode(this.xsltnode);else if(typeof XSLTProcessor!="undefined"&&typeof XSLTProcessor.prototype.importStylesheet!="undefined"){var processor=new XSLTProcessor;processor.importStylesheet(this.xsltnode);htmlnode.appendChild(processor.transformToFragment(xmlnode,window.document))}else return false;return true};function showMap(i,period,ques,ans){setWindowLocation("/maps?ques="+encodeURIComponent(ques)+"&ans="+encodeURIComponent(ans)+"&i="+i+"&period="+period)}function showAnalyticMap(inds,sites,place,ques,ans){if(isSubscriber==false){return}var url="?p="+place;for(var i=0;i<inds.length;i++){if(inds[i][0]!=null){url+="&m"+i+"i="+inds[i][0];url+="&m"+i+"period="+inds[i][1];if(inds[i][4]!=""&&inds[i][4]!="null"&&inds[i][4]!=undefined){var values=[];for(var j=0;j<inds[i][4].length;j++)values.push(inds[i][4].charAt(j));url+="&m"+i+"v=["+values+"]"}else{url+="&m"+i+"r0="+inds[i][2];url+="&m"+i+"r1="+inds[i][3]}}}var sitesCSV="";if(sites!=undefined){for(var i=0;i<sites.length;i++){sitesCSV+=sites[i][0];if(i+1!=sites.length)sitesCSV+=","}url+="&o="+sitesCSV}setWindowLocation("/analytics"+url+"&ques="+encodeURIComponent(ques)+"&ans="+encodeURIComponent(ans))}function getPlaceDetails(currentReport,callback,options){if(options==null){options={}}var placeIdOrAddress=null;var radius=null;if(currentReport.areaType=="radius"||currentReport.areaType=="pradius"){placeIdOrAddress=currentReport.location;radius=currentReport.radius}else if(currentReport.areaType=="predefined"){placeIdOrAddress=currentReport.placeId}if(currentReport.areaType=="predefined"){placeLoader.load([placeIdOrAddress],function(places){if(places.length==0){callback()}if(places[0]){if(places[0].getType()==PPlaceType.CBSA||places[0].getType()==PPlaceType.MD||places[0].getType().isCongressional()||options.includeAllCountiesAndStates===true){places[0].getAggregates(PPlaceType.STATE,null,null,function(states){places[0].getAggregates(PPlaceType.COUNTY,null,null,function(counties){callback(places[0],places[0].getCentroid(),counties,states)},3,maxResultsConfInt,null,null,97,null,null,0)},3,maxResultsConfInt,null,null,97,null,PPlaceOrder.OVERLAP_PERCENTAGE,0)}else{callback(places[0],places[0].getCentroid())}}})}else if(currentReport.areaType=="radius"||currentReport.areaType=="pradius"){if(currentReport.lat!=null&&currentReport.lng!=null){var centerpoint=new PLatLng(currentReport.lat,currentReport.lng);var circle=getCircle(radius,centerpoint);var bounds=new PPolygon(circle.circlepoints,polycolor,polyweight,polyopacity,polyfill);bounds.getAggregates(PPlaceType.STATE,null,null,function(states){bounds.getAggregates(PPlaceType.COUNTY,null,null,function(counties){callback(bounds,centerpoint,counties,states)},3,maxResultsConfInt,null,null,null,null,null,0)},3,maxResultsConfInt,null,null,null,null,null,0)}else{geocoder.getLatLng(placeIdOrAddress,function(point){if(!point){callback()}else{var bounds=getCircle(radius,point);bounds.getAggregates(PPlaceType.STATE,null,null,function(states){bounds.getAggregates(PPlaceType.COUNTY,null,null,function(counties){callback(bounds,point,counties,states)},3,maxResultsConfInt,null,null,null,null,null,0)},3,maxResultsConfInt,null,null,null,null,null,0)}})}}else if(currentReport.areaType=="custom"){polycreator.load(currentReport.cpid,function(places){var place=places[0];if(place.isAssembledCustom()){var places=place.getAssembledPlaces();var states;var counties;if(places[0].getType()==PPlaceType.State){states=places}else if(places[0].getType()==PPlaceType.COUNTY){counties=places}if(!states&&!counties){place.getAggregates(PPlaceType.STATE,null,null,function(states){place.getAggregates(PPlaceType.COUNTY,null,null,function(counties){callback(place,place.getCentroid(),counties,states)},3,maxResultsConfInt,null,null,null,null,null,0)},3,maxResultsConfInt,null,null,null,null,null,0)}else if(!states){place.getAggregates(PPlaceType.STATE,null,null,function(states){callback(place,place.getCentroid(),counties,states)},3,maxResultsConfInt,null,null,null,null,null,0)}else if(!counties){
place.getAggregates(PPlaceType.COUNTY,null,null,function(counties){callback(place,place.getCentroid(),counties,states)},3,maxResultsConfInt,null,null,null,null,null,0)}}else{place.getAggregates(PPlaceType.STATE,null,null,function(states){place.getAggregates(PPlaceType.COUNTY,null,null,function(counties){callback(place,place.getCentroid(),counties,states)},3,maxResultsConfInt,null,null,null,null,null,0)},3,maxResultsConfInt,null,null,null,null,null,0)}})}else if(currentReport.areaType=="polygon"){polycreator.polyloadFromReportObject(currentReport,function(places){var place=places[0];place.getAggregates(PPlaceType.STATE,null,null,function(states){place.getAggregates(PPlaceType.COUNTY,null,null,function(counties){callback(place,place.getCentroid(),counties,states)},3,maxResultsConfInt,null,null,null,null,null,0)},3,maxResultsConfInt,null,null,null,null,null,0)})}}function getContainedPlaces(currentReport,boundarea,centerpoint,counties,states,callback){var zoomlevel=map.setCenterBoundsAndGetZoomLevelByViewPort(boundarea,1e3,450);var overlap_pct=50;geocoder.getPlaceContainment(centerpoint,PPlaceType.COUNTY,null,null,function(places){var newplaces;var pplace=null;if(boundarea instanceof PPlace&&!boundarea.isCustomOrPoly()){newplaces=[boundarea];for(var i=0;i<places.length;i++){newplaces.push(places[i])}pplace=[boundarea]}else{newplaces=places}if(reportChooserInstalled()){if(boundarea instanceof PPlace){pplace=[boundarea]}else{pplace=new PPlace;pplace.vertices=[boundarea.points];pplace.typeid=0;pplace.ctypeid=3;pplace=[pplace]}}var placetypes=PPlaceTypeConfig2.AGGREGATION.getBestFitOut(zoomlevel);var placetype=placetypes[0];var c_overlap_pct=placetype==PPlaceType.COUNTY||placetype==PPlaceType.STATE?3:overlap_pct;boundarea.getAggregates(PPlaceType.CITY,null,null,function(cities){boundarea.getAggregates(PPlaceType.ZIP,null,null,function(zips){var defId=null;var mId=null;var only2000=false;var arr=[];var rtype=currentReport.reportType;for(var i=0;i<arr.length;i++){if(arr[i]==rtype){only2000=true;break}}if(only2000){mId=1}else if(boundarea instanceof PPlace&&!boundarea.isCustomOrPoly()){var defId=boundarea.getDefinitionId();var mId=boundaryMatrix.getMatrixIdForDefinitionId(defId)}else if(boundarea instanceof PPlace&&boundarea.isAssembledCustom()){var ps=boundarea.getAssembledPlaces();var defId=ps[0].getDefinitionId();var mId=boundaryMatrix.getMatrixIdForDefinitionId(defId)}boundarea.getAggregates(PPlaceType.CENSUSTRACT,mId,null,function(tracts){if(boundarea instanceof PPlace&&!boundarea.isAssembledCustom()){callback(newplaces,cities,zips,tracts,[boundarea],pplace,boundarea,counties,states)}else{boundarea.getPlacesWithin(placetype,null,null,function(pps){callback(newplaces,cities,zips,tracts,pps,pplace,boundarea,counties,states)},overlap_pct,null,null,null,"id,identifier,label,typeid,state")}},0,null,null,null,null,null,null,0,"id,identifier,label,typeid,state")},0,null,null,null,null,null,null,0,"id,identifier,label,typeid,state")},0,null,null,null,null,null,null,0,"id,identifier,label,typeid,state")})}function getGroupPlaceTypeAggregates(boundArea,groups,tracts,callback,opts){var zoomLevel=map.setCenterBoundsAndGetZoomLevelByViewPort(boundArea,1e3,450);var groupPlaceTypes={};var getAggsForAllDef=false;var matrixIds=[];if(opts==null){opts={}}if(opts.getAggsForAllDef){getAggsForAllDef=true;matrixIds=[1,2,4]}if(opts.matrixIds){matrixIds=opts.matrixIds}for(var i=0;i<groups.length;++i){groupPlaceTypes[groups[i]]=PPlaceTypeConfig2.AGGREGATION.getBestFitOut(zoomLevel,groups[i])}var defaultPlaceTypeId=tracts.length>0?tracts[0].getType().id:0;isRegularBoundary=false;if(boundArea instanceof PPlace&&!boundArea.isCustomOrPoly()&&boundArea.getType()!=PPlaceType.SCHOOL){isRegularBoundary=true}if(getAggsForAllDef&&!isRegularBoundary){var defaultPlaceTypeId=0}var overlapPercentage=50;var groupPlaceTypeAggregates={};var tooManyBoundaries=false;var displayWithAggregatePlaceTypes=function(g_index,pt_index){if(groups.length==g_index)checkStepsForNoAggregates(groups,groupPlaceTypeAggregates);if(groups.length>g_index){if(groupPlaceTypes[groups[g_index]].length>pt_index){if(groupPlaceTypes[groups[g_index]][pt_index].id==defaultPlaceTypeId&&!getAggsForAllDef||getAggsForAllDef&&defaultPlaceTypeId==PPlaceType.BLOCKGROUP.id&&groupPlaceTypes[groups[g_index]][pt_index].id==PPlaceType.BLOCKGROUP.id){groupPlaceTypeAggregates[groups[g_index]]=tracts;displayWithAggregatePlaceTypes(g_index+1,0)}else{var defIds=null;if(matrixIds.length>0){defIds=[];for(var m=0;m<matrixIds.length;m++){var type=groupPlaceTypes[groups[g_index]][pt_index];var did=boundaryMatrix.getDefinitionIdForTypeId(type.id,matrixIds[m]);defIds.push(did)}}var aggCallback=function(aggregates){if(!isRegularBoundary&&aggregates.length>maxResultsConfInt){tooManyBoundaries=true}groupPlaceTypeAggregates[groups[g_index]]=aggregates;if(aggregates.length>0&&aggregates.length<maxResultsConfInt){displayWithAggregatePlaceTypes(g_index+1,0)}else{displayWithAggregatePlaceTypes(g_index,pt_index+1)}};if(boundArea instanceof PPlace&&boundArea.isAssembledCustom()){boundArea.getAggregates(groupPlaceTypes[groups[g_index]][pt_index],null,defIds,function(aggregates){aggCallback(aggregates)},50,null,null,null,50,null,null,null,"id,identifier,label,typeid,state")}else{boundArea.getPlacesWithin(groupPlaceTypes[groups[g_index]][pt_index],null,defIds,function(aggregates){aggCallback(aggregates)},50,null,null,null,"id,identifier,label,typeid,state")}}}else{displayWithAggregatePlaceTypes(g_index+1,0)}}else{if(tooManyBoundaries){if(opts.noMaxAlert!=null&&opts.noMaxAlert==true){callback(false)}else{maxResultsAlert();return}}else{callback(groupPlaceTypeAggregates)}}};displayWithAggregatePlaceTypes(0,0)}function getBoundaryNameForReportTitle(currentReportOrObj,reportObject,pplace){var boundaryTitle="";if(currentReportOrObj.areaType=="radius"){boundaryTitle="Radius around ";var matches=/^(-?\d+(\.\d+)?)\s*,\s*(-?\d+(\.\d+)?)$/.exec(currentReportOrObj.location);if(matches){if(typeof reportObject.locationText.radius!="undefined"&&reportObject.locationText.radius){boundaryTitle+=decodeURIComponent(reportObject.locationText.radius)}else{boundaryTitle+="Centroid: ("+matches[1]+","+matches[3]+")"}}else{boundaryTitle+="Address: "+currentReportOrObj.radius+" mile radius around "+currentReportOrObj.location}}else if(currentReportOrObj.areaType=="pradius"){boundaryTitle="Radius Based on Polygon: "+currentReportOrObj.areaName}else if(currentReportOrObj.areaType=="predefined"){if(pplace!=null){boundaryTitle=pplace.getType().getName()+": "+pplace.getLabel()}else if(currentReportOrObj.pplace!=null){boundaryTitle=currentReportOrObj.pplace.getType().getName()+": "+currentReportOrObj.pplace.getLabel()}else if(currentReportOrObj.place!=null&&currentReportOrObj.place instanceof PPlace){boundaryTitle=currentReportOrObj.place.getType().getName()+": "+currentReportOrObj.place.getLabel()}}else if(currentReportOrObj.areaType=="custom"&&currentReportOrObj.areaName.length>0){boundaryTitle="Custom Region: "+currentReportOrObj.areaName}else if(currentReportOrObj.areaType=="custom"){boundaryTitle="Custom Region"}else if(currentReportOrObj.areaType=="polygon"&&currentReportOrObj.areaName.length>0){boundaryTitle="Polygon: "+currentReportOrObj.areaName}else if(currentReportOrObj.areaType=="polygon"){boundaryTitle="Polygon"}return boundaryTitle}ReportPins=function(){this.elm=$("#reportPins");this.smallTitle=this.elm.find(".smallTitle");this.bigTitle=this.elm.find(".bigTitle");this.dataset;this.cube;this.pageSize=50;this.pages=1;this.pinCount=0;this.place=null;this.pinType;this.buttonsEnabled;this.pagePopUp=P.instances.pagePopUp};ReportPins.prototype={load:function(placeName,datasetId,datasetType,datasetName,placeId,vertices,pinCount,pinType,placeTypeId,polysetid,radiusObj,callback){var datasetObj=getActiveOverlaySetByIdAndType(datasetId,datasetType);if(datasetObj!=null){this.loadWithSet(placeName,datasetObj,placeId,vertices,pinCount,pinType,placeTypeId,polysetid,radiusObj,callback)}else{var self=this;var datasetError=function(){alerter.popup("There was an error retrieving the dataset.","OK")};ajax.call({url:PEnvironment.pointUrl+"&act=g&did="+encodeURIComponent(datasetId)+"&dt="+encodeURIComponent(datasetType),success:function(response){if(response.pnt&&response.pnt[datasetId+datasetType]){self.loadWithSet(placeName,overlaySetUtil.buildOverlaySet(response.pnt[datasetId+datasetType]),placeId,vertices,pinCount,pinType,placeTypeId,polysetid,radiusObj,callback)}else{datasetError()}},error:datasetError})}},loadWithSet:function(placeName,dataset,placeId,vertices,pinCount,pinType,placeTypeId,polysetid,radiusObj,callback){if(isCBClone()&&dataset.children.length>0&&dataset.isPoly){dataset=dataset.children[0]}if(PEnvironment.pageName=="widget"){if(!dataset.allowDL){this.buttonsEnabled=[false,false]}else{this.buttonsEnabled=[false,true]}}else if(this.disableDownloadAndPrint(dataset.id,placeTypeId,placeId)){this.buttonsEnabled=[false,false]}else if(!dataset.allowDL){this.buttonsEnabled=[true,false]}else{this.buttonsEnabled=[true,true]}this.dataset=dataset;this.placeName=placeName;this.placeId=placeId;this.vertices=vertices;this.pinCount=pinCount;this.pages=Math.ceil(this.pinCount/this.pageSize);this.pinType=pinType;this.placeTypeId=placeTypeId;this.polysetid=polysetid;this.callback=callback;this.pagePopUp.show();var self=this;this.elm.find(".pageNav").hide();this.currentPage=0;if(vertices!=""){var verts=[];vertices=vertices.split("),(");for(var i=0;i<vertices.length;i++){var tmpVert=vertices[i].split(",");tmpVert[0]=parseFloat(tmpVert[0].indexOf("(")==0?tmpVert[0].substr(1,tmpVert[0].length):tmpVert[0]);tmpVert[1]=parseFloat(tmpVert[1].indexOf(")")!=-1?tmpVert[1].substr(0,tmpVert[1].length-1):tmpVert[1]);verts[verts.length]=new PLatLng(tmpVert[0],tmpVert[1])}this.place=new PPolygon(verts)}else if(radiusObj){this.place=radiusObj}else if(placeId){this.place=new PPlace(placeId);this.place.typeid=placeTypeId}else{var bounds=P.instances.map.getBounds();this.place=new PPolygon(bounds);placeName="Current Map View"}this.place.label=placeName;if(polysetid)this.place.polysetid=this.polysetid;this.smallTitle.text(dataset.name+" in:");this.bigTitle.text(this.place.label);if(this.pages>1){this.elm.find(".pageNav").show();this.createPageLinks()}this.overlayset=new POverlaySet(dataset.id);this.overlayset.limit=this.pageSize;this.overlayset.offset=0;this.overlayset.type=dataset.type;this.overlayset.pinType=this.pinType;this.overlayset.noCount=true;this.overlayset.setFilters(dataset.getFilters());this.overlayset.isPoly=dataset.isPoly;this.place.getMarkersWithin(this.overlayset,function(markers){self.markers=markers;var f=function(){self.displayTable();if(self.callback){self.callback()}};self.show(f);self.currentPage=0})},displayTable:function(){this.elm.find(".scrollTableContainer").html("");this.pagePopUp.loader.show();var markers=this.markers;if(markers.length>0){var $table=$("<table />",{id:"pinTable",class:"chartTable",cellpadding:1,cellspacing:1,width:"100%"});var $thead=$("<thead />");var $tbody=$("<tbody />");var tableHeaders=new Array;var tableObject={};var that=this;var buildTable=function(indObj){var indLabelAdded=false;for(var i=0;i<markers.length;i++){var marker=markers[i];var markername="marker"+i;tableObject[markername]={};tableObject[markername].marker=marker;if(indObj){tableObject[markername].placevalue=indObj[markername].placevalue;tableObject[markername].place=indObj[markername].place}for(var j=0;j<marker.attributes.length;j++){var attribute=marker.attributes[j];if(jQuery.inArray(attribute.name,tableHeaders)==-1){$thead.append("<th>"+attribute.name+"</th>");tableHeaders.push(attribute.name)}if(indObj&&!indLabelAdded){var label=indObj[markername].place.getType().getDisplayName();$thead.append("<th>"+label+"</th>");tableHeaders.push(label);var label=P.instances.map.getIndicator().getLabel();$thead.append("<th>"+label+"</th>");tableHeaders.push(label);indLabelAdded=true}var value="";if(isNumeric(attribute.value)&&attribute.unit){value+=PWebUtil.formatNumber(attribute.value,attribute.unit)}else{value+=attribute.value}tableObject[markername][attribute.name]={};tableObject[markername][attribute.name].value=value}}var $tr;for(var mname in tableObject){$tr=$("<tr />",{class:"values-row"});if(PEnvironment.pageName=="maps"||PEnvironment.pageName=="analytics"||PEnvironment.pageName=="widget"){$tr.data("marker",tableObject[mname].marker);$tr.click(function(){var elm=$(this);var m=elm.data("marker");var attr=m.attributes;var tabs=PMIdentificationPrinter.printAttributes(attr,null,m);P.instances.map.openInfoWindowTabs(m.getPoint(),tabs,null,null,P.constants.infoWindowTypeIdentify);that.pagePopUp.hide()})}for(var j=0;j<tableHeaders.length;j++){var found=false;var column="";if(indObj&&tableHeaders[j]==ind.getLabel()){found=true;column="<td>"+tableObject[mname].placevalue+"</td>"}else if(indObj&&tableHeaders[j]==tableObject[mname].place.getType().getDisplayName()){var label=tableObject[mname].place.getLabel();if(place.getType()==PPlaceType.CENSUSTRACT||place.getType()==PPlaceType.BLOCKGROUP){label+=", "+place.getState()}column="<td>"+label+"</td>";found=true}else{for(var aname in tableObject[mname]){if(tableHeaders[j]==aname){found=true;column="<td>"+tableObject[mname][aname].value+"</td>"}}}if(!found){column="<td class='empty'></td>"}$tr.append(column)}$tbody.append($tr)}$table.append($thead);$table.append($tbody);that.elm.find(".scrollTableContainer").html($table);that.pagePopUp.loader.hide()};var m=P.instances.map;var ind=m.getIndicator();if(productProperty.getValue("show_sites_list_indicator_column")&&this.place.isCustomOrPoly()&&!this.overlayset.isPoly&&ind){var markerplaces=[];if(ind){var loadValues=function(markerplaces){var indObj={};var period=ind.getPeriod();var cube=new PCube([ind],markerplaces,[period]);cube.loadValues(function(values){this.values=values;for(var j=0;j<markerplaces.length;j++){var markername="marker"+j;indObj[markername]={};var v=values[period][markerplaces[j].id][ind.id];if(!isNaN(v)){v=PWebUtil.formatNumber(v,ind.unit)}indObj[markername].placevalue=v;indObj[markername].place=markerplaces[j]}buildTable(indObj)})};var cnt=0;for(var i=0;i<markers.length;i++){(function(curIndex){markers[curIndex].getPoint().getPlacesContaining(m.getLegend().getCurrentPlaceType(),null,null,function(places){markerplaces[curIndex]=places[0];cnt++;if(cnt==markers.length){loadValues(markerplaces)}})})(i)}}}else{buildTable()}}else{this.elm.find(".scrollTableContainer").html("<span style='font-size: 14px;'>No Data Points available.</span>");this.pagePopUp.loader.hide()}},downloadCSV:function(){if(this.dataset.allowDL!=true){alerter.popup("This dataset is not available for download.","OK");return}else if(this.dataset.isPoly==true){alerter.popup("Polygon data is not currently available for download.");return}else if(this.placeTypeId==PPlaceType.POLYGON.getId()){alerter.popup("Data is not available for download for polygons. Please draw your polygon as a custom region to download data.");return}if(PEnvironment.pageName=="widget"||PEnvironment.pageName=="report_generate"||PEnvironment.pageName=="report_widget"||isCBClone()){this.overlayset.format="csv";this.overlayset.offset=null;this.overlayset.limit=null;this.place.getMarkersWithin(this.overlayset)}else{var options={};options.selectedOverlaySet=this.dataset.id;if(this.placeTypeId==PPlaceType.CUSTOM.getId()){options.selectedCustomRegion=this.placeId}else{options.selectedPlace=this.placeId}showExportModal(options)}},changePage:function(pageNum){var self=this;if(pageNum==null){pageNum=this.pages-1}if(pageNum<this.pages&&pageNum>=0){this.currentPage=pageNum;this.createPageLinks();this.pagePopUp.emptyScrollContainer(function(){self.pagePopUp.loader.show();self.overlayset.format="js";self.overlayset.offset=pageNum*self.pageSize;self.overlayset.limit=self.pageSize;self.place.getMarkersWithin(self.overlayset,function(markers){self.markers=markers;self.currentPage=pageNum;self.displayTable();self.createPageLinks()})})}},createPageLinks:function(){var currentPage=this.currentPage+1;var totalPages=this.pages;var pageNums=[];if(currentPage-1>1)pageNums.push(currentPage-1);if(currentPage>1)pageNums.push(currentPage);if(currentPage+1<totalPages)pageNums.push(currentPage+1);if(this.totalPages>20){var br=Math.ceil(totalPages/6);for(var i=1;i<6;i++){var num=br*i;if(num>currentPage+br/2)pageNums.push(num);else if(num<currentPage-br/2)pageNums.push(num)}}pageNums=pageNums.sort(function(a,b){return a-b});pageNums.unshift(1);if(pageNums[pageNums.length-1]!=totalPages)pageNums.push(totalPages);var pageLinks="";for(var i=0;i<pageNums.length;i++){if(pageNums[i]==currentPage){pageLinks+="<div class='pageLink'><a class='selectedPage'>"+pageNums[i]+"</a></div>"}else{pageLinks+="<div class='pageLink'><a href='#' onclick='P.instances.rPins.changePage("+(pageNums[i]-1)+"); return false;'>"+pageNums[i]+"</a></div>"}if(i!=pageNums.length-1&&(pageNums[i]>currentPage||pageNums[i]<currentPage-1)){pageLinks+="<div class='ellipsis'>...</div>"}}this.elm.find("#pageNums").html(pageLinks)},show:function(callback){var self=this;cHeader=this.placeName;selectColumn();this.pagePopUp.changeContent(this.elm,callback,this);var $saveButton=$("<div />");if(this.buttonsEnabled[0]===true){$saveButton.addClass("button save");$saveButton.attr({alt:"Save",title:"Save"});$saveButton.click(function(){if(!isSubscriber()){subscribeAlert()}else{genericAlertDialog({template:"csv",action:"save"})}})}else{$saveButton.addClass("button save-disabled")}var $downloadButton=$("<div />");if(this.buttonsEnabled[1]===true){$downloadButton.addClass("button download");$downloadButton.attr({alt:"Download",title:"Download"});$downloadButton.click(function(){if(!isSubscriber()){subscribeAlert()}else{self.downloadCSV()}})}else{$downloadButton.addClass("button download-disabled");$downloadButton.attr({title:"This dataset is not available for download."})}if(PEnvironment.pageName=="widget"||PEnvironment.pageName=="report_generate"||PEnvironment.pageName=="report_widget"){this.pagePopUp.setButtons($downloadButton)}else{this.pagePopUp.setButtons([$saveButton,$downloadButton])}},disableDownloadAndPrint:function(id,placeTypeId,placeId){var arr=[129600,130350];for(var i=0;i<arr.length;i++){if(id==arr[i]&&placeTypeId&&(placeTypeId==PPlaceType.BLOCKGROUP.id||isCensusTractTypeId(placeTypeId))){return false}else if(arr[i]==id&&(placeTypeId==95||placeTypeId==0)){var bounds=null;if(placeTypeId==0){for(var j=0;j<custom_places.length;j++){if(custom_places[j].id==placeId){bounds=custom_places[j].getBounds();break}}}else{bounds=ppolygon.getBounds()}if(bounds!=null){if(map.setCenterBoundsAndGetZoomLevelByViewPort(bounds,1e3,600)>=11){return false}else{return true}}else{return false}}else if(arr[i]==id){return true}}return false}};ReportPlaces=function(options){if(options&&options.elm){this.elm=options.elm}else{this.elm=$("#reportPlaces")}this.smallTitle=this.elm.find(".smallTitle");this.bigTitle=this.elm.find(".bigTitle");this.rows;this.eventTypes={};this.eventTypes.beforedisplay="beforedisplay";this.eventTypes.afterdisplay="afterdisplay";this.eventManager=new _eventManager;for(var ev in this.eventTypes){this.eventManager.registerEventID(ev)}this.pageSize=50;this.pages=1;this.showAllInOnePage=false;this.orderByValue=false;if(options){if(options.showAllInOnePage)this.showAllInOnePage=options.showAllInOnePage;if(options.orderByValue)this.orderByValue=options.orderByValue}if(options&&options.pagePopUp){this.pagePopUp=options.pagePopUp}else{this.pagePopUp=P.instances.pagePopUp}this.hideOnLoad=false;if(options&&options.hideOnLoad){this.hideOnLoad=options.hideOnLoad}this.pinCount=0};ReportPlaces.prototype={load:function(placeType,placeId,indId,placeTypeId,period,placeName,overlap,placeCount,callback){var self=this;PIndicatorLoader.load([indId],function(inds){self.loadAfterLoadingIndicator(placeType,placeId,indId,placeTypeId,period,placeName,overlap,placeCount,inds[0],null,callback)})},loadAfterLoadingIndicator:function(placeType,placeId,indId,placeTypeId,period,placeName,overlap,placeCount,indObj,boundaryObj,callback){this.pagePopUp.show();var self=this;this.placeType=placeType;this.placeId=placeId;this.indId=indId;this.placeTypeId=placeTypeId;this.period=period;this.placeName=placeName;this.indName="";this.indObj=indObj;this.callback=callback;if(this.placeType.toLowerCase()=="gbp"){this.bid=session.get("bid");this.pname=session.get("pname");this.plat=session.get("plat");this.plng=session.get("plng")}else{this.bid=null;this.pname=null;this.plat=null;this.plng=null}this.matrixId=indObj.matrixIds[indObj.getPeriodIndex(period)];this.overlap=null;this.placeTouch=false;if(overlap=="touch"){this.placeTouch=true}else{this.overlap=overlap}this.placeCount=placeCount;if(this.showAllInOnePage){this.pages=1;this.pageSize=placeCount}else{this.pages=Math.ceil(this.placeCount/this.pageSize)}this.currentPage=0;this.elm.find(".pageNav").hide();var f=function(place,context){var self=self||context;var placewithin=new PPlace;placewithin.typeid=self.placeTypeId;self.pPlaceType=placewithin.getTypeById();if(self.placeCount==null){var selfLoad=function(count){self.load(self.placeType,self.placeId,self.indId,self.placeTypeId,self.period,self.placeName,self.overlap,count)};if(self.placeTouch){place.getPlacesIntersectingCount(self.pPlaceType,self.matrixId,null,selfLoad,self.overlap,null,this)}else{place.getPlacesWithinCount(self.pPlaceType,self.matrixId,null,selfLoad,self.overlap,null,this)}return}self.place=place;var period=self.period;self.indObj.setPeriod(period);self.indName=self.indObj.getFullLabel();self.smallTitle.text("Values per "+self.pPlaceType.getName()+":");self.bigTitle.text(self.placeName);var dataLoad=function(data){self.rows=new Array;if(self.orderByValue){var order=function(a,b){if(a["pcube"][self.period][a["id"]][self.indId]<b["pcube"][self.period][b["id"]][self.indId])return 1;if(a["pcube"][self.period][a["id"]][self.indId]>b["pcube"][self.period][b["id"]][self.indId])return-1;return 0};data.sort(order)}for(var i=0;i<data.length;i++){var label=data[i]["label"];if(self.placeTypeId==PPlaceType.CENSUSTRACT.getId()||self.placeTypeId==PPlaceType.BLOCKGROUP.getId()){label+=", "+data[i]["state"]}self.rows[i]=new Array(label,data[i]["pcube"][self.period][data[i]["id"]][self.indId])}self.show();if(self.placeCount>self.pageSize){self.elm.find(".pageNav").show();self.createPageLinks()}self.displayTable();if(self.callback){self.callback()}};if(self.placeTouch){self.place.getPlacesIntersectingPage(self.pPlaceType,self.matrixId,null,dataLoad,self.pageSize,PPlaceOrder.LABEL,null,null,0,"&attr=id,label,state,pcube(("+self.indId+"),("+self.period+"))")}else{self.place.getPlacesWithinPage(self.pPlaceType,self.matrixId,null,dataLoad,self.overlap,self.pageSize,PPlaceOrder.LABEL,null,null,0,"&attr=id,label,state,pcube(("+self.indId+"),("+self.period+"))")}};if(this.placeType.toLowerCase()=="gb"){if(boundaryObj){f(boundaryObj,self)}else{placeLoader.load([this.placeId],function(places){f(places[0],self)})}}else if(this.placeType.toLowerCase()=="gbc"){if(boundaryObj){f(boundaryObj,self)}else{polycreator.load(this.placeId,function(places){f(places[0],self)})}}else if(this.placeType.toLowerCase()=="gbp"){if(boundaryObj){f(boundaryObj,self)}else{polycreator.polyload(this.bid,this.pname,this.plat,this.plng,function(places){f(places[0],self)})}}},displayTable:function(){if(this.rows.length>0){var html="<table id='placeTable' class='chartTable' cellpadding='1' cellspacing='1' width='100%' >\n";var dataCol=1;html+="<thead><tr><th scope='col'>"+this.pPlaceType.getName()+"</th><th scope='col'>"+this.indName+"</th></tr></thead>\n";html+="<tbody>\n";for(var i=0;i<this.rows.length;i++){if(isNumeric(this.rows[i][dataCol])){this.rows[i][dataCol]=PWebUtil.formatNumber(this.rows[i][dataCol],this.indObj.unit)}else if(this.rows[i][dataCol]==null){this.rows[i][dataCol]="N/A"}html+="<tr><td scope='row'>"+this.rows[i][0]+"</td><td>"+this.rows[i][1]+"</td></tr>\n"}html+="</tbody></table>\n";var tableContainer=this.elm.find(".scrollTableContainer");tableContainer.html(html)}else{this.elm.find(".scrollTableContainer").html("No regions available.")}this.pagePopUp.loader.hide();this.eventManager.triggerEvent("afterdisplay")},changePage:function(pageNum){var self=this;if(pageNum==null){pageNum=this.pages-1}if(pageNum<this.pages&&pageNum>=0){this.pagePopUp.emptyScrollContainer(function(){self.pagePopUp.loader.show();self.currentPage=pageNum;self.createPageLinks();self.place.getPlacesWithinPage(self.pPlaceType,self.matrixId,null,function(data){self.rows=new Array;for(var i=0;i<data.length;i++){var label=data[i]["label"];if(self.placeTypeId==PPlaceType.CENSUSTRACT.getId()||self.placeTypeId==PPlaceType.BLOCKGROUP.getId()){label+=", "+data[i]["state"]}self.rows[i]=new Array(label,data[i]["pcube"][self.period][data[i]["id"]][self.indId])}self.displayTable();self.currentPage=pageNum;self.createPageLinks()},self.overlap,self.pageSize,PPlaceOrder.LABEL,null,null,pageNum*self.pageSize,"&attr=id,label,state,pcube(("+self.indId+"),("+self.period+"))")})}},createPageLinks:function(){var currentPage=this.currentPage+1;var totalPages=this.pages;var pageNums=[];if(currentPage-1>1)pageNums.push(currentPage-1);if(currentPage>1)pageNums.push(currentPage);if(currentPage+1<totalPages)pageNums.push(currentPage+1);if(this.totalPages>20){var br=Math.ceil(totalPages/6);for(var i=1;i<6;i++){var num=br*i;if(num>currentPage+br/2)pageNums.push(num);else if(num<currentPage-br/2)pageNums.push(num)}}pageNums=pageNums.sort(function(a,b){return a-b});pageNums.unshift(1);if(pageNums[pageNums.length-1]!=totalPages)pageNums.push(totalPages);var pageLinks="";for(var i=0;i<pageNums.length;i++){if(pageNums[i]==currentPage){pageLinks+="<div class='pageLink'><a class='selectedPage'>"+pageNums[i]+"</a></div>"}else{pageLinks+="<div class='pageLink'><a href='#' onclick='P.instances.rPlaces.changePage("+(pageNums[i]-1)+"); return false;'>"+pageNums[i]+"</a></div>"}if(i!=pageNums.length-1&&(pageNums[i]>currentPage||pageNums[i]<currentPage-1)){pageLinks+="<div class='ellipsis'>...</div>"}}this.elm.find("#pageNums").html(pageLinks)},downloadCSV:function(){if(this.indObj.allowDL!=true||this.placeTouch){alerter.popup("This dataset is not available for download.","OK");return}else if(this.dataset!=null&&this.dataset.isPoly==true){alerter.popup("Polygon data is not currently available for download.");return}else if(this.placeType.toLowerCase()=="gbp"){alerter.popup("Data is not available for download for polygons. Please draw your polygon as a custom region to download data.");return}if(PEnvironment.pageName=="widget"||PEnvironment.pageName=="report_generate"||PEnvironment.pageName=="report_widget"||isCBClone()){if(this.placeTouch){}else{this.place.getPlacesWithinCSV(this.pPlaceType,self.matrixId,null,this.overlap,PPlaceOrder.LABEL,null,"&ind="+this.indId+"&per="+this.period)}}else{var options={};options.selectedIndicator=this.indObj.getID();options.selectedIndicatorPeriod=this.period;options.selectedPlaceType=this.pPlaceType.getId();var placeType=this.place.getType();if(placeType!=null&&placeType==PPlaceType.CUSTOM){options.selectedCustomRegion=this.placeId}else{options.selectedPlace=this.placeId}showExportModal(options)}},show:function(){var self=this;cHeader=this.placeName;selectColumn();this.eventManager.triggerEvent("beforedisplay");this.pagePopUp.changeContent(this.elm,this.showDone,this);var $saveButton=$("<div />");$saveButton.addClass("button save");$saveButton.attr({alt:"Save",title:"Save"});$saveButton.click(function(){genericAlertDialog({template:"csv",action:"save"})});var $downloadButton=$("<div />");if(this.indObj.allowDL&&!this.placeTouch){$downloadButton.addClass("button download");$downloadButton.attr({alt:"Download",title:"Download"});$downloadButton.click(function(){self.downloadCSV()})}else{$downloadButton.addClass("button download-disabled")}if(PEnvironment.pageName=="widget"||PEnvironment.pageName=="report_widget"||PEnvironment.pageName=="report_generate"){this.pagePopUp.setButtons($downloadButton)}else{this.pagePopUp.setButtons([$saveButton,$downloadButton])}},showDone:function(){if(this.hideOnLoad){this.pagePopUp.elm.hide();this.hideOnLoad=false}this.eventManager.triggerEvent("afterdisplay")},addListener:function(eventId,func){this.eventManager.registerForEvent(eventId,[],func)},removeListener:function(eventId,func){this.eventManager.deregisterForEvent(eventId,[],func)}};ReportRanks=function(options){if(options&&options.elm){this.elm=options.elm}else{this.elm=$("#reportRanks")}this.smallTitle=this.elm.find(".smallTitle");this.bigTitle=this.elm.find(".bigTitle");this.eventTypes={};this.eventTypes.beforedisplay="beforedisplay";this.eventTypes.afterdisplay="afterdisplay";this.eventManager=new _eventManager;for(var ev in this.eventTypes){this.eventManager.registerEventID(ev)}this.pageLength=21;this.position=null;if(options&&options.pagePopUp){this.pagePopUp=options.pagePopUp}else{this.pagePopUp=P.instances.pagePopUp}this.ranksLoaded};ReportRanks.prototype={load:function(place_,ind_,period_,rankValue_){this.ranksLoaded=0;if(rankValue_.rank==null){if(PEnvironment.pageName=="widget"){var placetype=place_.getType();$("#noDataAvailable").html("Data for "+placetype.getPluralName()+" is not available for this indicator. Please search for another geography.");$("#noDataAvailable").show()}this.pagePopUp.hide()}else if(this.place==place_&&this.ind==ind_&&this.period==period_){this.pagePopUp.show();this.showCount(true)}else{if(PEnvironment.pageName=="widget"){$("#noDataAvailable").hide()}this.rankValue=rankValue_;this.ind=ind_;this.place=place_;this.period=period_;var self=this;this.totalPages=Math.ceil(rankValue_.totalBoundaries/this.pageLength);this.currentPage=Math.ceil(rankValue_.position/rankValue_.totalBoundaries*this.totalPages);this.pageOffset=-10+(rankValue_.position<21?11-rankValue_.position:0);this.pagePopUp.show();var defYear=boundaryMatrix.getDisplayYearForDefinitionId(place_.getDefinitionId());defYear=defYear!=null?", "+defYear:"";this.smallTitle.text("Ranking of "+place_.getType().getPluralName()+defYear);this.bigTitle.text(ind_.getFullDisplayName());this.createPageLinks();var position=-rankValue_.position+1;var top10=new PRankingCube([ind_],[place_],[period_]);top10.setOptions(new PRankingCubeOptions({loadValues:true,loadRanks:true,listOptions:[position,10]}));top10.loadValues(function(v){if(v&&v[self.period]){v=v[self.period];var table=self.elm.find("#top10");self.fillTable.call(self,table,v,1,10)}self.showCount()});if(rankValue_.totalRanked>0)position=rankValue_.totalRanked-rankValue_.position-9;else position=rankValue_.totalBoundaries-rankValue_.position-9;var bot10=new PRankingCube([ind_],[place_],[period_]);bot10.setOptions(new PRankingCubeOptions({loadValues:true,loadRanks:true,listOptions:[position,10]}));bot10.loadValues(function(v){if(v&&v[self.period]){var start;var end;if(self.rankValue.totalRanked>0){start=self.rankValue.totalRanked-9;end=self.rankValue.totalRanked}else{start=self.rankValue.totalBoundaries-9;end=self.rankValue.totalBoundaries}v=v[self.period];var table=self.elm.find("#bot10");self.fillTable.call(self,table,v,start,end)}self.showCount()});var rankingCube=new PRankingCube([ind_],[place_],[period_]);rankingCube.setOptions(new PRankingCubeOptions({loadValues:true,loadRanks:true,listOptions:[this.pageOffset,this.pageLength]}));rankingCube.loadValues(function(v){if(v&&v[self.period]){v=v[self.period];var table=self.elm.find("#ranking_page table");var startPos=v[self.place.id][self.ind.id].position+self.pageOffset;var endPos=startPos+self.pageLength;self.fillTable.call(self,table,v,startPos,endPos,true)}self.showCount()})}},changePage:function(page){if(page>this.totalPages)page=this.totalPages;if(page<1)page=1;if(page!=this.currentPage){this.currentPage=page;this.createPageLinks();this.elm.find("#ranking_page table").empty();this.pagePopUp.loader.show();var firstPos=-this.rankValue.position+1;var newPagePos=firstPos+(page-1)*this.pageLength
;if(newPagePos<firstPos)newPagePos=firstPos;var self=this;var rankingCube=new PRankingCube([this.ind],[this.place],[this.period]);rankingCube.setOptions(new PRankingCubeOptions({loadValues:true,loadRanks:true,listOptions:[newPagePos,this.pageLength]}));rankingCube.loadValues(function(v){this.v=v;if(v&&v[self.period]){v=v[self.period];var table=self.elm.find("#ranking_page table");self.pagePopUp.loader.hide();self.fillTable.call(self,table,v,self.rankValue.position+newPagePos,self.rankValue.position+newPagePos+self.pageLength)}else{}})}},createPageLinks:function(){var currentPage=this.currentPage;var totalPages=this.totalPages;var pageNums=[];if(currentPage-1>1)pageNums.push(currentPage-1);if(currentPage>1)pageNums.push(currentPage);if(currentPage+1<totalPages)pageNums.push(currentPage+1);if(this.totalPages>20){var br=Math.ceil(totalPages/6);for(var i=1;i<6;i++){var num=br*i;if(num>currentPage+br/2)pageNums.push(num);else if(num<currentPage-br/2)pageNums.push(num)}}pageNums=pageNums.sort(function(a,b){return a-b});pageNums.unshift(1);if(pageNums[pageNums.length-1]!=totalPages)pageNums.push(totalPages);var pageLinks="";for(var i=0;i<pageNums.length;i++){if(pageNums[i]==currentPage){pageLinks+="<div class='pageLink'><a class='selectedPage'>"+pageNums[i]+"</a></div>"}else{pageLinks+="<div class='pageLink'><a href='#' onclick='P.instances.rRanks.changePage("+pageNums[i]+"); return false;'>"+pageNums[i]+"</a></div>"}if(i!=pageNums.length-1&&(pageNums[i]>currentPage||pageNums[i]<currentPage-1)){pageLinks+="<div class='ellipsis'>...</div>"}}this.elm.find("#pageNums").html(pageLinks)},fillTable:function(table,v,startPos,endPos,isAllRanksTable){table.empty();if(isAllRanksTable){var thead=document.createElement("thead");var trhead=document.createElement("tr");var th=document.createElement("th");th.innerHTML="Ranking";trhead.appendChild(th);th=document.createElement("th");th.innerHTML="Name";trhead.appendChild(th);th=document.createElement("th");th.innerHTML="Value";trhead.appendChild(th);thead.appendChild(trhead);table.append(thead)}var orderRanks=new Object;for(var bid in v){orderRanks[v[bid][this.ind.id].position]=v[bid][this.ind.id]}for(var i=startPos;i<=endPos;i++){if(orderRanks[i]){var tr=document.createElement("tr");if(i==this.rankValue.position){tr.className="selected";if(isAllRanksTable){if(this.rankValue.position>startPos+12){this.scrollElem=tr}else{this.scrollElem=null}}}var td=document.createElement("td");td.className="rank";td.innerHTML+=orderRanks[i].rank==-1?" ":orderRanks[i].rank+".";tr.appendChild(td);td=document.createElement("td");td.className="place";td.innerHTML=orderRanks[i].boundaryName;tr.appendChild(td);td=document.createElement("td");td.className="value";var val=orderRanks[i].value;if(val==null||val==this.ind.nodata)val="N/A";else if(isNumeric(val))val=PWebUtil.formatNumber(parseFloat(val),this.ind.unit);td.innerHTML=val;tr.appendChild(td);table.append(tr)}}},showCount:function(skipToShow){this.ranksLoaded++;if(skipToShow||this.ranksLoaded>=3){this.show()}},show:function(){this.eventManager.triggerEvent("beforedisplay");this.pagePopUp.changeContent(this.elm,this.showDone,this);this.pagePopUp.loader.hide();var $printButton=$("<div />");$printButton.addClass("button print");$printButton.attr({alt:"Print",title:"Print"});$printButton.click(function(){genericAlertDialog({template:"ranks",action:"export"});return false});this.pagePopUp.setButtons($printButton)},showDone:function(){this.eventManager.triggerEvent("afterdisplay");if(this.scrollElem){this.elm.find("#ranksContainer").scrollTo($(this.scrollElem))}else{this.elm.find("#ranksContainer").scrollTo(0)}},addListener:function(eventId,func){this.eventManager.registerForEvent(eventId,[],func)},removeListener:function(eventId,func){this.eventManager.deregisterForEvent(eventId,[],func)}};var reportsInitialLoad=true;var resetReportPage;function reportsPageLoader(){var urlParams=getUrlParams();reportObject.hasLocation={};reportObject.place={};reportObject.currentPage=1;reportObject.radius=urlParams["radius"]||.5;reportObject.type=null;reportObject.locationText={};reportObject.locationText.predefined=null;reportObject.locationText.custom=null;reportObject.locationText.radius=null;reportObject.locationText.polygon=null;reportObject.locationText.nolocation=null;reportObject.hasLocation.predefined=false;reportObject.hasLocation.custom=false;reportObject.hasLocation.radius=false;reportObject.hasLocation.polygon=false;reportObject.hasLocation.nolocation=false;reportObject.maxRadius=parseFloat(productProperty.getValue("max-radius-report"))||10;printTemplate="PolicyMapMapPage";var $window=$(window);var $mainContainer=$(".report_content");var $mapContainer=$("#map");var $content_footer=$(".content__footer");var $report_location_type_header=$(".report_location_type_header");var $report_header=$(".report_header");var $report_step_selected_parent=$(".report_step_selected_parent");var $report_step_selected_step_1=$(".report_step_selected_step_1");var $report_step_selected_step_2=$(".report_step_selected_step_2");var $report_step_selected_step_3=$(".report_step_selected_step_3");var $report_step_selected_child_step_2=$(".report_step_selected_child_step_2");var $report_step_selected_child_step_3=$(".report_step_selected_child_step_3");var $report_holder=$(".report_holder");var $report_holder_up_spacer=$("#report_holder_up_spacer");var $report_footer=$(".report_footer");var $report_action_header=$(".report_action_header");var $report_choose=$("#report_choose");var $report_preview=$("#report_preview");var $report_generate=$("#report_generate");var $report_location_selection_item=$(".report_location_selection_item");var $report_location_footer=$(".report_location_footer");var $report_location_selection_holder=$(".report_location_selection_holder");var $set_location_bar=$(".set_location_bar");var $working_spinner=$("#working_spinner");var $navbar=$("#navbar");var $report_generate_content=$(".report_generate");var $report_toolbar=$(".report_toolbar");var $map_options=$(".map-options");var $zoomIn=$("#zoomIn");var $predefined=$("#predefined");var $radius=$("#radius");var $polygon=$("#polygon");var $custom=$("#custom");var $report_preview_button=$(".report_preview_button");var $report_back_button=$(".report_back_button");var $report_generate_button=$(".report_generate_button");var $report_button_hover_text=$(".report_button_hover_text");var $report_location_container=$(".report_location_container");var $report_spacer=$(".report_spacer");var $report_spacer_filler=$("#report_spacer_filler");var $report_type_holder=$(".report_type_holder");var $report_type_holder_header=$(".report_type_holder_header");var isPolygon=false;var isPradius=false;var mapInitialized=false;var $report_type_container;var $report_radius;var $report_radius_input;var $zoomControl;var $report_type_container__report_type_image__img;var $report_type_container__report_type_header;var $search_form;var $search_form__query;var $search_form_submit;var trfSearch;var reportTypes={};var reportLocationTypeNames={predefined:"Pre-Defined Location",custom:"Custom Region",radius:"Radius",polygon:"Polygon",nolocation:"No Location"};if(productProperty.getValue("disable_dataloader")&&productProperty.exists("disable_dataloader_teaser")){$("#tab_dataloader").tooltip({title:productProperty.getValue("disable_dataloader_teaser"),placement:"right",container:"body",trigger:"hover focus"})}var placeholderLocation=productProperty.exists("search_location_placeholder")?productProperty.getValue("search_location_placeholder"):"City, County, State, or Zip";var placeholderRadius="Address or Lat, Long for radius center";var options={placeholderLocation:placeholderLocation,noDataSearch:true,responseEvent:reportLocationBarHandler};var updateReportSpacerHeight=function(){$report_spacer.height($report_type_holder.height());$report_spacer_filler.height($report_type_holder.height())};var polygonLoader=function(callback){polycreator.polyload(urlParams["bid"],urlParams["pname"],urlParams["plat"],urlParams["plng"],function(places){var place=places[0];if(place!=null){reportObject.place["polygon"]=place;if(isPradius===true){var radius=getPolygonRadius(place);reportObject.radius=radius.size;$report_radius_input.val(reportObject.radius);$report_radius_input.change()}if(callback!=null){callback()}}else{alerter.popup("The polygon '<b>"+urlParams["pname"]+"</b>' was not found.")}})};var clearMap=function(){if(mapInitialized===true){clearLocation(true);P.instances.map.clearOverlays();P.instances.map.clearOverlaySets();P.instances.map.closeInfoWindow();P.instances.map.setCenter(new PLatLng(getDefaultMapLat(),getDefaultMapLng()),getDefaultMapZoom())}};var locationCheck=function(){if(reportObject.hasLocation[reportObject.locationType]===true){return true}else{if(reportObject.locationType=="predefined"){if($.trim($search_form__query.val())!=""){$(".search-form button").click();return false}}else if(reportObject.locationType=="radius"){if($.trim($search_form__query.val())!=""&&$.trim($report_radius_input.val())!=""){$(".search-form button").click();return false}}alerter.popup("Please select a location.","OK",null,null,function(){var setFocus=function(){if($search_form__query.is(":visible")){$search_form__query.focus()}};setTimeout(setFocus,200)});return false}};var pageOneState=function(){window.history.replaceState({},document.title,"/reports");$mainContainer.removeClass("is-hidden");$report_location_type_header.removeClass("is-hidden");$mapContainer.addClass("is-hidden");$report_header.after($mapContainer);$report_step_selected_parent.addClass("is-hidden");$report_step_selected_step_1.removeClass("is-hidden");$report_holder.show();$report_holder_up_spacer.show();$report_footer.removeClass("is-hidden");$report_action_header.removeClass("report_step_active simulink");$report_location_selection_item.addClass("is-hidden");$report_location_footer.append($report_location_selection_holder);$navbar.append($working_spinner);$report_generate_content.addClass("is-hidden");$report_generate_content.empty();$report_toolbar.find(".toolbar-icon--save").parent().hide();$report_toolbar.find(".toolbar-icon--print").parent().hide();$map_options.addClass("is-hidden");$working_spinner.addClass("is-hidden");$report_choose.off();$report_choose.addClass("report_step_active");$report_preview.off();$report_preview.click(reportPreviewStart);$report_generate.off();$report_generate.click(function(){reportGenerateConfirm()});PEnvironment.pageName="reports";reportObject.currentPage=1;if(mapInitialized===true){P.instances.map.unlock();$zoomControl.removeClass("is-hidden")}updateReportSpacerHeight()};var pageTwoState=function(){window.history.replaceState({},document.title,"/reports");$report_location_type_header.removeClass("is-hidden");$report_location_selection_item.addClass("is-hidden");$zoomIn.removeClass("is-hidden");$mapContainer.removeClass("is-hidden");$mapContainer.css("min-height","512px");$report_header.after($mapContainer);$report_action_header.removeClass("report_step_active");$report_preview.addClass("report_step_active");$report_holder.hide();$report_holder_up_spacer.hide();$report_footer.addClass("is-hidden");$report_step_selected_parent.addClass("is-hidden");$report_step_selected_step_2.removeClass("is-hidden");$report_location_type_header.append($report_location_selection_holder);$report_generate_content.addClass("is-hidden");$report_generate_content.empty();$report_toolbar.find(".toolbar-icon--save").parent().hide();$report_toolbar.find(".toolbar-icon--print").parent().hide();$map_options.removeClass("is-hidden");$report_header.append($working_spinner);$working_spinner.addClass("is-hidden");$report_choose.off();$report_choose.click(reportTypeAndLocation);$report_preview.off();$report_preview.addClass("report_step_active");$report_generate.off();$report_generate.click(function(){reportGenerateConfirm()});PEnvironment.pageName="reports";reportObject.currentPage=2;$(".report_location_selection_"+reportObject.locationType).removeClass("is-hidden");$report_step_selected_child_step_2.html("Preview Report Area:"+'<img class="report_preview_image" src="/images/reports/'+reportObject.code+'-preview.png"/><span class="step_text_bolder">'+reportTypes[reportObject.code]+" by </span>"+'<img class="report_preview_image" src="/images/reports/'+reportObject.locationType+'-preview.png"/><span class="step_text_bolder">'+reportLocationTypeNames[reportObject.locationType]+"</span>");if(mapInitialized===true){P.instances.map.unlock()}};var pageThreeState=function(){$report_location_type_header.addClass("is-hidden");$mapContainer.removeClass("is-hidden");$report_holder.hide();$report_holder_up_spacer.hide();$report_footer.addClass("is-hidden");$report_action_header.removeClass("report_step_active");$report_generate.addClass("report_step_active");$report_toolbar.find(".toolbar-icon--save").parent().show();$report_toolbar.find(".toolbar-icon--print").parent().show();$report_generate_content.removeClass("is-hidden");$report_step_selected_parent.addClass("is-hidden");$report_step_selected_step_3.removeClass("is-hidden");$map_options.addClass("is-hidden");$navbar.append($working_spinner);$working_spinner.addClass("is-hidden");$report_choose.off();$report_choose.click(reportTypeAndLocation);$report_preview.off();$report_preview.click(reportPreviewStart);$report_generate.off();$report_generate.addClass("report_step_active");reportObject.currentPage=3;PEnvironment.pageName="report_generate";if(reportObject!=null&&reportObject.code!=null){$report_step_selected_child_step_3.html('Generated Report: <span class="reportname step_text_bolder"></span>')}if(mapInitialized===true){$zoomControl.addClass("is-hidden")}};var reportTypeContainerClick=function(){var $self=$(this);var code=$self.attr("code");var permCode=$self.attr("permcode");var type=$self.attr("rtype");if(reportAvailability(permCode)!==true){return}if(code=="hc"&&reportObject.placeId!=null){var reportPlaceTypes=["predefined","custom","polygon"];for(var i=0;i<reportPlaceTypes.length;i++){if(reportObject.place[reportPlaceTypes[i]].id==reportObject.placeId){var curPlaceType=reportObject.place[reportPlaceTypes[i]].getType();if(curPlaceType!=PPlaceType.COUNTY&&curPlaceType!=PPlaceType.CENSUSTRACT){alerter.popup("The Community Health Report is only available for counties and census tracts. Please clear your location to generate this report.","OK");return}break}}}$report_type_container.removeClass("report_type_selected");$self.addClass("report_type_selected");$report_type_container__report_type_image__img.each(function(k,v){$(this).attr("src","/images/reports/"+$(this).attr("code")+".png")});$self.find(".report_type_image img").attr("src","/images/reports/"+code+"-selected.png");$("span.reportdescription").hide();$self.find("span.reportdescription").show();$report_type_container__report_type_header.each(function(k,v){$(this).removeClass("report_type_header_selected")});$self.find(".report_type_header").addClass("report_type_header_selected");reportObject.permcode=permCode;reportObject.code=code;reportObject.type=type;noLocationReport(type);updateReportSpacerHeight();if(code=="hc"){$("#predefined.report_location_container").click()}else{healthcareReportCountyHack(code)}};var reportLocationContainerClick=function(){var $self=$(this);var id=$self.attr("id");if(id=="polygon"){if(isPradius===true||isPolygon===true){if($self.hasClass("report_location_disabled")){alerter.popup("The selected report does not support this location type at this time.","OK");return}else{$(".report_location_selection_polygon").html('<span class="report_location_selection_text report_location_selection_intro">Selected Polygon:</span>'+'<span class="report_location_selection_text report_location_selection_name">'+urlParams["pname"]+"</span>")}}else{alerter.popup("Polygons must be selected from the map to access their available reports.<br/><br/>Load a polygon dataset on the "+'<a href="/maps">maps page</a> and click the info icon <img src="/images/pins/polygon_orange.png">  to access.',"OK");return}}else{if($self.hasClass("report_location_disabled")){alerter.popup("The selected report does not support this location type at this time.","OK");return}}var reportRadiusHide=true;reportObject.locationType=id;$report_location_container.removeClass("report_location_selected");$self.addClass("report_location_selected");$(".report_location_container .report_location_image img").each(function(k,v){$(this).attr("src",$(this).attr("orig"))});$(this).find(".report_location_image img").attr("src","/images/reports/"+id+"-selected.png");$(".report_location_container .report_location_selection").each(function(k,v){$(this).removeClass("report_location_selection_selected")});$(this).find(".report_location_selection").addClass("report_location_selection_selected");$set_location_bar.addClass("is-hidden");$("div.search-form__type").removeClass("is-hidden");$(".locked_location").addClass("is-hidden");if(reportObject.locationType==="predefined"){var pdPlace=reportObject.place["predefined"];if(pdPlace!=null&&pdPlace.loadedFromPID){$("#locked_location_name").text(buildPlaceLabel(pdPlace));$(".report_location_selection_predefined").append($(".locked_location"));$(".locked_location").removeClass("is-hidden")}else{$(".report_location_selection_predefined").append($set_location_bar);trfSearch.reset();$set_location_bar.removeClass("is-hidden")}}else if(reportObject.locationType==="radius"){trfSearch.reset();$(".report_location_selection_radius_search_holder").append($set_location_bar);$set_location_bar.removeClass("is-hidden");reportRadiusHide=false;$("div.search-form__type").addClass("is-hidden")}else if(reportObject.locationType==="custom"){$(".report_location_selection_custom_search_holder").after($set_location_bar)}else if(reportObject.locationType==="polygon"){}$report_location_selection_item.addClass("is-hidden");$(".report_location_selection_"+reportObject.locationType).removeClass("is-hidden");if(P.instances.search==null){$(window).one(P.events.SEARCH_BOX_INIT,function(){$(window).resize()})}if($report_radius!=null){if(reportRadiusHide==true){$report_radius.addClass("is-hidden");$search_form_submit.removeClass("is-hidden");$search_form__query.attr("placeholder",placeholderLocation)}else{$report_radius.removeClass("is-hidden");$search_form_submit.addClass("is-hidden");$search_form__query.attr("placeholder",placeholderRadius)}}if($search_form__query!=null){if(reportObject.locationType!=null&&(reportObject.locationType=="predefined"||reportObject.locationType=="radius")&&reportObject.locationText[reportObject.locationType]!=null){$search_form__query.val(reportObject.locationText[reportObject.locationType]);$search_form__query.focus()}else{$search_form__query.val("")}}healthcareReportCountyHack($(".report_type_selected").attr("code"));if(trfSearch!=null&&trfSearch.subForm!=null){trfSearch.subForm.updateWidthOfFluidElement()}};var reportPreviewStart=function(){if(P.WKPrint.isPrintPage()===true){reportPreviewContinue()}if(reportAvailability(reportObject.permcode)===false||locationCheck()===false){return}var max=reportObject.maxRadius;if(reportObject.locationType=="radius"&&reportObject.radius&&reportObject.radius>max){alerter.popup("Please specify a valid radius (a number between 0 and "+max+" miles).","OK");return}if(reportObject.place["predefined"]!=null){reportPlace=reportObject.place["predefined"];if(reportPlace.getType()==PPlaceType.CONGRESSIONAL&&boundaryMatrix.getDisplayYearForDefinitionId(reportPlace.getDefinitionId())=="117th"){alerter.popup({content:"The boundaries of this Congressional District were changed since the last ACS data release, so this report will use data aggregated from smaller geographies.",addCancel:false,buttons:[{label:"OK",callback:function(){reportPreviewContinue()}}]});return}}if(reportObject.currentPage!=3&&(reportObject.code=="b"||reportObject.code=="a")&&reportObject.locationType=="predefined"&&reportObject.place["predefined"]!=null&&reportObject.place["predefined"].getType()==PPlaceType.ZIP){var whichReport=reportObject.code=="b"?"Community Profile":"Rental Housing";alerter.popup({content:"<div class='alertDialogTitle'>We recommend <b>Zip Code Tabulation Areas</b><br />rather than Zip Codes for the "+whichReport+" report.</div><div class='alertDialogHR'></div><div class='alertDialogHeader'>Zip Code Tabulation Areas are like Zip Codes, with more accurate data and slightly different boundaries. <a href='http://www.policymap.com/blog/2016/03/what-are-zip-code-tabulation-areas/' target='_blank'>Click here</a> for more information.</div>",useImage:true,addCancel:false,buttons:[{label:"Use Zip Code Tabulation Area",callback:function(){var zipCode=reportObject.place["predefined"].getIdentifier();placeLoader.loadFIPS(zipCode,[boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.ZCTA.getId())],null,function(places){if(places==null||places.length<1){alerter.popup("A corresponding ZCTA could not be found. The report will be generated for the Zip Code.","OK");reportPreviewContinue()}else{var place=places[0];reportObject.placeId=place.getID();reportObject.place["predefined"]=place;reportPreviewContinue()}})}},{label:"Use Zip Code",callback:function(){reportPreviewContinue()}}]});return}if(reportObject.currentPage!=3&&reportObject.code=="e"&&reportObject.locationType=="predefined"&&reportObject.place["predefined"]!=null&&reportObject.place["predefined"].getType()==PPlaceType.ZCTA){alerter.popup({content:"<div class='alertDialogTitle'>We recommend <b>Zip Codes</b> rather than<br />Zip Code Tabulation Areas for the Home Sale report.</div><div class='alertDialogHR'></div><div class='alertDialogHeader'>Zip Codes are similar to Zip Code Tabulation Areas, with each of them having slightly different boundaries from each other. <a href='http://www.policymap.com/blog/2016/03/what-are-zip-code-tabulation-areas/' target='_blank'>Click here</a> for more information.</div>",useImage:true,addCancel:false,buttons:[{label:"Use Zip Code",callback:function(){var zcta=reportObject.place["predefined"].getIdentifier();placeLoader.loadFIPS(zcta,[boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.ZIP.getId())],null,function(places){if(places==null||places.length<1){alerter.popup("A corresponding zip code could not be found. The report will be generated for the zip code tabulation area.","OK");reportPreviewContinue()}else{var place=places[0];reportObject.placeId=place.getID();reportObject.place["predefined"]=place;reportPreviewContinue()}})}},{label:"Use Zip Code Tabulation Area",callback:function(){reportPreviewContinue()}}]});return}reportPreviewContinue()};var reportPreviewContinue=function(){pageTwoState();initializeMap();resizeMapContainer();clearMap();P.instances.map.unlock();if(reportObject.locationType=="predefined"){var id=null;if(reportObject.placeId!=null){id=reportObject.placeId}else if(reportObject.place["predefined"]!=null&&reportObject.place["predefined"].id!=null){id=reportObject.place["predefined"].id}if(id!=null){selectPlace(id,true)}else{alerter.popup("Unable to determine the report location.")}}else if(reportObject.locationType=="radius"){var max=reportObject.maxRadius;if(reportObject.radius&&reportObject.radius>max){alerter.popup("Please specify a valid radius (between 0 and "+max+" miles).","OK");return}if(isPradius===true){P.instances.map.addOverlay(new PMarker(reportObject.place["radius"].centroid));addPolylines(P.instances.map,reportObject.place["radius"].getVertices());reportObject.radiusPoly=drawRadius(reportObject.radius,reportObject.place["radius"].centroid);P.instances.map.setCenterBounds(reportObject.radiusPoly.getBounds())}else{var latLng=new PLatLng(parseFloat(reportObject.address.y),parseFloat(reportObject.address.x));P.instances.map.addOverlay(new PMarker(latLng));var poly=drawRadius(reportObject.radius,latLng);P.instances.map.setCenterBounds(poly.getBounds())}}else if(reportObject.locationType=="custom"){polyCreator.setUpPlaceAndPolylines(reportObject.place["custom"],P.instances.map);P.instances.map.setCenterBounds(reportObject.place["custom"].getBounds())}else if(reportObject.locationType=="polygon"){addPolylines(P.instances.map,reportObject.place["polygon"].getVertices());P.instances.map.setCenterBounds(reportObject.place["polygon"].getBounds())}};var buildPlaceLabel=function(place){var label;var ptype=place.getType();if(ptype==PPlaceType.CENSUSTRACT||ptype==PPlaceType.BLOCKGROUP){label=place.identifier}else{label=place.label;var placeState=place.getState();if(placeState!=null&&placeState!=""&&placeState!="null"){label+=", "+place.getState()}}label+=" ("+ptype.getName()+")";return label};var populateReportPage=function(reportResponse){var reports=[];if(reportResponse!=null&&reportResponse.rpt!=null&&reportResponse.rpt.r!=null){reports=reportResponse.rpt.r;for(var i=0;i<reports.length;i++){var report=reports[i];reportTypes[report.code]=report.name}}$(".report_type_container").remove();for(var i=reports.length-1;i>=0;i--){var report=reports[i];var reportContainerClass="report_type_container";if(!report.enabled){reportContainerClass+=" disabled"}if(report.description==null){report.description=""}if(report.code=="hc"){report.name+='<sup class="report_type_header_beta">Beta</sup>'}var reportHTML='<div id="report_type_'+i+'" code="'+report.code+'" permcode="'+report.permcode+'" rtype="'+report.type+'" class="'+reportContainerClass+'">'+'<div class="report_type report_type_dashed">'+"<div>"+'<div class="report_type_image report_inline_block"><img code="'+report.code+'" src="/images/reports/'+report.code+'.png"></div>'+'<div class="report_type_header report_inline_block">'+report.name+"</div>"+"</div>"+'<div class="report_type_copy_holder report_inline_block">'+'<div class="report_type_image report_inline_block">&nbsp;</div>'+'<div style="clear: both;"></div>'+'<div class="report_type_copy"><span class="reportdescription" style="display: none;">'+report.description+"</span></div>"+"</div>"+"</div>"+"</div>";var reportDiv=$(reportHTML);$report_type_holder_header.after(reportDiv)}$report_type_container=$(".report_type_container");$report_type_container__report_type_image__img=$(".report_type_container .report_type_image img");$report_type_container__report_type_header=$(".report_type_container .report_type_header");pageOneState();$report_type_container.click(reportTypeContainerClick);$report_location_container.click(reportLocationContainerClick);updateReportSpacerHeight();$report_location_container.height($predefined.height());if(urlParams["area"]!=null||urlParams["pid"]!=null){if(urlParams["area"]==null){urlParams["area"]=reportObject.locationType="predefined"}else{reportObject.locationType=urlParams["area"]}if(urlParams["type"]==null){reportObject.code="b"}else{reportObject.code=urlParams["type"]}reportObject.hasLocation[reportObject.locationType]=true;var commonCallback=function(){var innerCallback=function(){if(urlParams["lqid"]!=null||P.WKPrint.isPrintPage()===true){reportPreviewStart();reportGenerateConfirm()}else{if(reportObject.defaultLocationType!=null){reportObject.defaultLocationType.click()}}};if(reportsInitialLoad===false){innerCallback()}else{$(window).on("initialLoadDone",innerCallback)}};if(urlParams["area"]==="predefined"){reportObject.defaultLocationType=$predefined;if(urlParams["pid"]!=null){reportObject.placeId=urlParams["pid"];placeLoader.load([reportObject.placeId],function(places){var place=places[0];place.loadedFromPID=true;if(place!=null){reportObject.place["predefined"]=place;commonCallback()}else{alerter.popup("The place id '"+reportObject.placeId+"' could not be found.")}})}else{alerter.popup("A place id was not provided.")}}else if(urlParams["area"]==="radius"){reportObject.defaultLocationType=$radius;if(urlParams["lat"]!=null&&urlParams["lng"]!=null){reportObject.hasLocation.radius=true;reportObject.address=new PAddress(urlParams["lat"]+","+urlParams["lng"],urlParams["lng"],urlParams["lat"]);reportObject.locationText.radius=reportObject.address.y+","+reportObject.address.x;if(urlParams["location"]!=null){reportObject.locationText.radius=urlParams["location"]}commonCallback()}else if(urlParams["location"]!=null){geocoder.getLatLng(urlParams["location"],function(PAddressObject){if(PAddressObject.x!=null&&PAddressObject.y!=null){reportObject.hasLocation.radius=true;reportObject.address=PAddressObject;reportObject.locationText.radius=urlParams["location"];commonCallback()}else{alerter.popup("The address '<b>"+reportObject.address+"'</b> could not be geocoded.")}})}else{alerter.popup("A suitable radius location was not provided.")}}else if(urlParams["area"]==="custom"){reportObject.defaultLocationType=$custom;polyCreator.loadByUser(function(places){for(var i=0;i<places.length;i++){if(places[i].id==urlParams["cpid"]){reportObject.place["custom"]=places[i];customRegionText(places[i]);commonCallback();return}}alerter.popup("Could not location the custom region")})}else if(urlParams["area"]==="polygon"){if(urlParams["pname"]==null&&urlParams["name"]!=null){urlParams["pname"]=urlParams["name"]}if(urlParams["bid"]&&urlParams["polyid"]&&urlParams["pname"]&&urlParams["plat"]&&urlParams["plng"]){isPolygon=true;reportObject.defaultLocationType=$polygon;reportObject.hasLocation.polygon=true;reportObject.locationText.polygon=urlParams["pname"];if(urlParams["area"]&&urlParams["area"]=="pradius"){isPradius=true;reportObject.defaultLocationType=$radius;reportObject.hasLocation.radius=true;reportObject.locationText.radius=urlParams["pname"]}polygonLoader(commonCallback)}else{alerter.popup("The polygon was not found.")}}}if(isPolygon===true||isPradius===true){$("#polygon.report_location_container").removeClass("report_location_disabled")}trfSearch=initializeSearchForm(options);$search_form=$(".location-search-form");$search_form__query=$(".search-form__query");$search_form_submit=$(".textbox-search-submit");var locationClear=function(){delete reportObject.place[reportObject.locationType];reportObject.hasLocation[reportObject.locationType]=false;if(reportObject.locationType=="predefined"){delete reportObject.placeId}else if(reportObject.locationType=="radius"){delete reportObject.address}};reportObject.locationClear=locationClear;$(".search-form__type").change(function(){if($(this).val()=="location"){if($(".report_type_selected").attr("code")=="hc"){search.subForm.changePlaceType(PPlaceType.COUNTY);$(".search-form__query").attr("placeholder","Enter County")}else{search.subForm.changePlaceType()}}});if(reportsInitialLoad===true){reportsInitialLoad=false;var radius=reportObject.radius;$search_form.after($('<span class="report_radius is-hidden"><span class="report_location_selection_text report_radius_text">Radius (Miles)</span>'+'<input class="report_radius_input" type="text" name="report_radius_input" placeholder="'+radius+'" value="'+radius+'">'+'<span class="report_radius_submit"><img class="report_radius_submit_mag" src="/images/searchicons/search_bar_mag.svg" /></span></span>'));$report_radius=$(".report_radius");$report_radius_input=$(".report_radius_input");$(".custom-regions-holder").after('<div class="report_custom_region_name report_inline_block"/>');replaceSVGs("img.report_radius_submit_mag");var radiusCheck=function(){var val=$(this).val();if(val==""){val="0.5"}var valInt=parseFloat(val);var max=reportObject.maxRadius;if(isNaN(valInt)||valInt>max){$(this).css("background-color","red")}else{$(this).css("background-color","white")}reportObject.radius=valInt};var radiusValueCheck=function(){var val=$(this).val();if(val==""){val="0.5"}$(this).val(val)};$report_radius_input.change(radiusCheck);$report_radius_input.keyup(radiusCheck);$report_radius_input.focus(radiusValueCheck);$search_form__query.change(locationClear);$search_form__query.keyup(locationClear);$(".report_radius_submit").click(function(){$search_form.submit()});$(window).trigger("initialLoadDone")}$defaultType=$("#report_type_0");if(reportObject.code!=null){$reportTypeElem=$(".report_type_container[code="+reportObject.code+"]");var permCode=$reportTypeElem.attr("permcode")
;if(permCode==undefined||reportAvailability(permCode)!==true){$defaultType.click()}else{$reportTypeElem.click()}}else{$defaultType.click()}$("#clear_location").click(function(){locationClear();$("#predefined").click()});if(reportObject.locationType==null){if(isNoLocationReport(reportObject.code)){}else{$predefined.click()}}else{$("#"+reportObject.locationType).click()}var displayTrialReportsAlert=function(){if(trialUserRemainingReports>0){alerter.popup("Reports are available on a limited basis for trial users: Generate up to "+trialUserMaxReports+" Community Profile reports.<br /><br />You currently have "+trialUserRemainingReports+" report"+(trialUserRemainingReports==1?"":"s")+" remaining.","OK")}else{subscribeAlert(null,"subscriber-max-reports")}};if(isTrial()){if(trialUserRemainingReports==null){updateTrialGenerations(function(){displayTrialReportsAlert()})}else{displayTrialReportsAlert()}}showExpirationModal()};var reportTypeAndLocation=function(){clearMap();pageOneState();$("#"+reportObject.locationType).click()};var resetMap=function(){clearLocation();P.instances.map.clearOverlays();P.instances.map.clearOverlaySets();if(datasetSearch!=null){datasetSearch.reset()}if(P.instances.map.getInfoWindow()){P.instances.map.closeInfoWindow()}P.instances.map.setCenter(new PLatLng(getDefaultMapLat(),getDefaultMapLng()),getDefaultMapZoom());resizeMapContainer();P.instances.map.unlock();$window.trigger(P.events.MAP_RESET)};var resizeMapContainer=function(){var height=window.innerHeight-$mapContainer.offset().top-$content_footer.height();var width=$mapContainer.parent().width();$mapContainer.height(height);$mapContainer.width(width);P.instances.map.kamap.resize();$window.trigger(P.events.MAP_RESIZED)};var reportGenerateConfirm=function(yesCallback,noCallback){if(isTrial()&&!P.WKPrint.isPrintPage()){alerter.popup("You are about to generate a report. This report will be counted towards your limit as a trial user.<br /><br />If you wish to view this report again, you may chose to print it once it is complete. It will remain available as a download in My PolicyMap.<br /><br />Do you wish to continue?","No","Yes",function(){if(yesCallback!=null){yesCallback()}else{reportGenerateBegin()}},function(){if(noCallback!=null){noCallback()}else{resetReportPage()}})}else if(yesCallback!=null){yesCallback()}else{reportGenerateBegin()}};var reportGenerateBegin=function(){reportObject.generateNext=true;if(locationCheck()===false){return}else{delete reportObject.generateNext}var url="/report_generate?";var urlSuffix="";var reportTrackingObject={locationType:reportObject.locationType,type:reportObject.code};if(reportObject.locationType==="predefined"){urlSuffix="type="+reportObject.code+"&area=predefined"+"&pid="+reportObject.place["predefined"].id;reportTrackingObject.pid=reportObject.place["predefined"].id}else if(reportObject.locationType==="radius"){if(isPradius===true){urlSuffix="type="+reportObject.code+"&area=pradius"+"&location="+urlParams["plat"]+","+urlParams["plng"]+"&radius="+reportObject.radius+"&lat="+urlParams["plat"]+"&lng="+urlParams["plng"]+"&bid="+urlParams["bid"]+"&polyid="+urlParams["polyid"]+"&name="+encodeURIComponent(decodeURIComponent(urlParams["pname"]))+"&plat="+urlParams["plat"]+"&plng="+urlParams["plng"];reportTrackingObject.polyid=urlParams["polyid"]}else{urlSuffix="type="+reportObject.code+"&area=radius"+"&location="+encodeURIComponent(reportObject.address.addr)+"&radius="+reportObject.radius+"&lat="+reportObject.address.y+"&lng="+reportObject.address.x;if(urlParams["did"]){urlSuffix+="&did="+urlParams["did"]}if(urlParams["dldid"]){urlSuffix+="&did="+urlParams["dldid"]}if(urlParams["lqid"]){urlSuffix+="&lqid="+urlParams["lqid"]}reportTrackingObject.location=reportObject.address.addr}reportTrackingObject.radius=reportObject.radius}else if(reportObject.locationType==="custom"){urlSuffix="type="+reportObject.code+"&area=custom"+"&cpid="+reportObject.place["custom"].id+"&name="+encodeURIComponent(reportObject.place["custom"].label);if(urlParams["lqid"]){urlSuffix+="&lqid="+urlParams["lqid"]}reportTrackingObject.pid=reportObject.place["custom"].id}else if(reportObject.locationType==="polygon"){urlSuffix="type="+reportObject.code+"&area=polygon";if(urlParams["did"]){urlSuffix+="&did="+urlParams["did"]}if(urlParams["polyid"]){urlSuffix+="&polyid="+urlParams["polyid"]}if(urlParams["pname"]){urlSuffix+="&name="+encodeURIComponent(decodeURIComponent(urlParams["pname"]))}if(urlParams["bid"]){urlSuffix+="&bid="+urlParams["bid"]}if(urlParams["plat"]){urlSuffix+="&plat="+urlParams["plat"]}if(urlParams["plng"]){urlSuffix+="&plng="+urlParams["plng"]}if(urlParams["lqid"]){urlSuffix+="&lqid="+urlParams["lqid"]}reportTrackingObject.polyid=urlParams["polyid"]}if(urlSuffix!==""){url+="&"+urlSuffix;window.history.replaceState({},document.title,"/reports?"+urlSuffix);P.instances.debug.log(P.Debug.DEBUG,"report_generate url: "+url);reportTrackingObject.url=reportObject.urlSuffix=urlSuffix;if(P.WKPrint.isPrintPage()===false){P.instances.tracking.track(P.Tracking.eventTypes.REPORT,{reportObject:reportTrackingObject})}var callback=function(data){var innerCallback=function(data){renderReport(data)};if(reportsInitialLoad===false){innerCallback(data)}else{$(window).on("initialLoadDone",innerCallback)}};ajax.call({url:url,dataType:"html",success:callback})}else{alerter.popup("Unable to determine the report location type.")}};var loadReportTypes=function(){return ajax.call({url:PEnvironment.reportUrl+"&act=l",dataType:"json",success:function(reports){for(var i=0;i<reports.length;i++){var report=reports[i];reportTypes[report.code]=report.name}return reports}})};var healthcareReportCountyHack=function(code){if(code=="hc"){$("#radius.report_location_container").addClass("report_location_disabled");$("#custom.report_location_container").addClass("report_location_disabled");$("#polygon.report_location_container").addClass("report_location_disabled");$("#predefined .report_location_copy").text("Specify a county or census tract.");search.reset();var $typeDropdown=$(".search-form__type");$.each($typeDropdown.find("option"),function(){var $curOption=$(this);if($curOption.val()!="location"&&$curOption.val()!=PPlaceType.CENSUSTRACT.getId()){$curOption.prop("disabled",true)}});$typeDropdown.trigger("chosen:updated")}else{$("#radius.report_location_container").removeClass("report_location_disabled");$("#custom.report_location_container").removeClass("report_location_disabled");$("#polygon.report_location_container").addClass("report_location_disabled");if(isPradius===true||isPolygon===true){$("#polygon.report_location_container").removeClass("report_location_disabled")}$("#predefined .report_location_copy").text("Specify an area like a state, county, city, political district, etc.");if(reportObject.locationType=="radius"){$(".search-form__query").attr("placeholder",placeholderRadius)}else{var $typeDropdown=$(".search-form__type");$.each($typeDropdown.find("option"),function(){$(this).prop("disabled",false)});$typeDropdown.trigger("chosen:updated");if($typeDropdown.val()=="location"){$(".search-form__query").attr("placeholder",placeholderLocation);search.subForm.changePlaceType()}}}if(trfSearch!=null&&trfSearch.subForm!=null){trfSearch.subForm.updateWidthOfFluidElement()}};var noLocationReport=function(reportType){if(isNoLocationReport(reportType)){$("div.report_location_holder").find("div.report_location_holder_header").addClass("nolocation");$("div.report_location_holder").find("div.report_location_copy").addClass("nolocation");$("div.report_location_holder").find("div.report_location_selection").addClass("nolocation");$("div.report_location_holder").find("div.report_location_container").removeClass("report_location_selected");reportLocationContainerClick();$("div.report_location_holder").find(".report_location_image img").each(function(k,v){var source=$(this).attr("src");if(source.indexOf("predefined")!=-1){$(this).attr("src","/images/reports/predefined-disabled.png")}else if(source.indexOf("radius")!=-1){$(this).attr("src","/images/reports/radius-disabled.png")}else if(source.indexOf("polygon")!=-1){$(this).attr("src","/images/reports/polygon-disabled.png")}else if(source.indexOf("custom")!=-1){$(this).attr("src","/images/reports/custom-disabled.png")}});$("#report_steps").block({message:null,overlayCSS:{backgroundColor:"#FFFFFF",opacity:0,cursor:"default"}});$("div.report_footer").block({message:null,overlayCSS:{backgroundColor:"#FFFFFF",opacity:0,cursor:"default"}});$("div.report_location_holder").block({message:null,overlayCSS:{backgroundColor:"#FFFFFF",opacity:0,cursor:"default"}})}else{$("div.report_location_holder").find("div.report_location_holder_header").removeClass("nolocation");$("div.report_location_holder").find("div.report_location_copy").removeClass("nolocation");$("div.report_location_holder").find("div.report_location_selection").removeClass("nolocation");$("div.report_location_holder").find(".report_location_image img").each(function(k,v){var source=$(this).attr("src");if(source.indexOf("predefined")!=-1){$(this).attr("src","/images/reports/predefined.png")}else if(source.indexOf("radius")!=-1){$(this).attr("src","/images/reports/radius.png")}else if(source.indexOf("polygon")!=-1){$(this).attr("src","/images/reports/polygon.png")}else if(source.indexOf("custom")!=-1){$(this).attr("src","/images/reports/custom.png")}});$("#report_steps").unblock();$("div.report_footer").unblock();$("div.report_location_holder").unblock();$("#predefined.report_location_container").click()}};var isNoLocationReport=function(reportType){return reportType==4};resetReportPage=function(){reportTypeAndLocation();$("#predefined").click();customRegionText();reportObject.place={};reportObject.locationText.predefined=null;reportObject.locationText.custom=null;reportObject.locationText.radius=null;reportObject.locationText.polygon=null;reportObject.locationText.nolocation=null;reportObject.hasLocation.predefined=false;reportObject.hasLocation.custom=false;reportObject.hasLocation.radius=false;reportObject.hasLocation.polygon=false;reportObject.hasLocation.nolocation=false};function loadReportByAreaAndType(area,type){switch(area){case"predefined":getPlace(urlParams["pid"]).then(function loadLocation(place){selectLoadedPlace(place,true);renderPredefinedLocationReport(type,place.id)},function(){alerter.popup("The place could not be loaded for this report.")});break;case"custom":getCustomRegion(urlParams["cpid"]).then(function loadCustomRegion(customRegion){initializeMap();polyCreator.setUpPlaceAndPolylines(customRegion,P.instances.map);P.instances.map.setCenterBounds(customRegion.getBounds());renderCustomRegionReport(type,customRegion)});break;case"radius":renderRadiusRegionReport(type,urlParams["location"],urlParams["radius"],urlParams["lat"],urlParams["lng"]);break;case"polygon":if(urlParams["did"]&&urlParams["polyid"]){renderPolygonRegionReportByItemId(type,urlParams["did"],urlParams["polyid"],urlParams["name"])}else{renderPolygonRegionReport(type,urlParams["bid"],urlParams["polyid"],urlParams["name"],urlParams["plat"],urlParams["plng"])}break;default:renderReportForm()}}function getPlace(placeId){var $deferred=new $.Deferred;placeLoader.load([placeId],function(places){var place=places[0];if(place!=null){$deferred.resolve(place)}else{alerter.popup("The place id '"+reportObject.placeId+"' could not be found.");$deferred.reject()}});return $deferred}function getCustomRegion(customRegionId){var $deferred=new $.Deferred;polyCreator.loadByUser(function(places){var place=_.find(places,function(place){return place.id==customRegionId});if(place){$deferred.resolve(place)}else{$deferred.reject("Unable to retreive custom region")}});return $deferred}function renderPredefinedLocationReport(reportType,placeId){ajax.call({url:"/report_generate?area=predefined"+"&type="+reportType+"&pid="+placeId,dataType:"html"}).then(renderDirectReport)}function renderCustomRegionReport(reportType,customRegion){return ajax.call({url:"/report_generate?area=custom"+"&type="+reportType+"&cpid="+customRegion.id+"&name="+encodeURIComponent(customRegion.label),dataType:"html"}).then(renderDirectReport)}function renderRadiusRegionReport(reportType,radiusLocation,radius,lat,lng){return ajax.call({url:"/report_generate?area=radius"+"&type="+reportType+"&location="+radiusLocation+"&radius="+radius+"&lat="+lat+"&lng="+lng,dataType:"html"}).then(renderDirectReport)}function renderPolygonRegionReport(reportType,boundaryId,polygonId,name,lattitude,longitude){return ajax.call({url:"/report_generate?area=polygon"+"&type="+reportType+"&bid="+boundaryId+"&polyid="+polygonId+"&name="+encodeURIComponent(decodeURIComponent(name))+"&plat="+lattitude+"&plng="+longitude,dataType:"html"}).then(renderDirectReport)}function renderPolygonRegionReportByItemId(reportType,datasetId,itemId,name){return ajax.call({url:"/report_generate?area=polygon"+"&type="+reportType+"&did="+datasetId+"&polyid="+itemId+(name!=null&&name.length>0?"&name="+encodeURIComponent(decodeURIComponent(name)):""),dataType:"html"}).then(renderDirectReport)}function renderDirectReport(data){renderReport(data);var height=getMapHeight();var width=$mapContainer.parent().width();$mapContainer.css("min-height",height+"px");$mapContainer.height(height);$mapContainer.width(width);$mapContainer.show();if(mapInitialized===true){P.instances.map.kamap.resize();P.instances.map.setCenter(P.instances.map.getCenter())}}function renderMinnesotaHousingReport(placeId){ajax.call({url:"/report_generate?type=mn&area=predefined"+"&pid="+placeId,dataType:"html"}).then(function(data){initializeMap();renderReport(data);$(".report_content").hide()}).fail(function(){renderReportForm()})}function renderHudReport(boundaryId,polygonId,name,lattitude,longitude){ajax.call({url:"/report_generate?type=hud&area=polygon"+"&bid="+boundaryId+"&polyid="+polygonId+"&name="+encodeURIComponent(decodeURIComponent(name))+"&plat="+lattitude+"&plng="+longitude,dataType:"html"}).then(renderDirectReport).then(function hideMapContainer(){$mapContainer.hide()}).fail(function(data,xhr,req){renderReportForm()})}function renderReportForm(){loadReportTypes().then(populateReportPage)}function renderWellsFargoReport(type,boundaryId,polygonId,name,lattitude,longitude){ajax.call({url:"/report_generate?area=polygon"+"&type="+type+"&bid="+boundaryId+"&polyid="+polygonId+"&name="+encodeURIComponent(decodeURIComponent(name))+"&plat="+lattitude+"&plng="+longitude,dataType:"html"}).then(renderDirectReport).then(function hideMapContainer(){$mapContainer.hide()}).fail(function(data,xhr,req){renderReportForm()})}function renderOpportunityReport(type,placeId){ajax.call({url:"/report_generate?type=op&pid="+placeId,dataType:"html"}).then(renderDirectReport).then(function hideMapContainer(){$mapContainer.hide()}).fail(function(data,xhr,req){renderReportForm()})}function renderOpportunityReportTest(type,placeId){ajax.call({url:"/report_generate?type=optest&pid="+placeId,dataType:"html"}).then(renderDirectReport).then(function hideMapContainer(){$mapContainer.hide()}).fail(function(data,xhr,req){renderReportForm()})}function renderRDUSDAReport(type,placeId){ajax.call({url:"/report_generate?type=rd-usda&pid="+placeId,dataType:"html"}).then(renderDirectReport).then(function hideMapContainer(){$mapContainer.hide()}).fail(function(data,xhr,req){renderReportForm()})}function renderUSDAEXReport(type,placeId){ajax.call({url:"/report_generate?type=usdaex&pid="+placeId,dataType:"html"}).then(renderDirectReport).then(function hideMapContainer(){$mapContainer.hide()}).fail(function(data,xhr,req){renderReportForm()})}function renderReport(data,fromRenderDirect){if(!fromRenderDirect){initializeMap()}pageThreeState();clearMap();var $div=$('<div class="report_generate_holder"/>');$div.html(data);$report_generate_content.append($div);$(".sectioncontent #footer").addClass("reporttext");$(".new_footer").addClass("is-hidden");$("#theMap").append($mapContainer);var thisYear=(new Date).getFullYear();reportGenerateOnLoad(true);if(P.WKPrint.isPrintPage()===false){setTimeout(function(){$(".logoTD").addClass("hide-the-logo")},1e3)}if(mapInitialized===true&&currentReport.typeId!=3){var height=getMapHeight();var width=$mapContainer.parent().width();$("#map").css("min-height",height+"px");$("#map").height(height);$("#map").width(width);P.instances.map.kamap.resize();P.instances.map.setCenter(P.instances.map.getCenter())}}function initializeMap(){if(mapInitialized===false){map=new PMap(document.getElementById("map"));P.instances.map=map;P.instances.map.addControl(new PLargeMapControl);P.instances.map.enableDoubleClickZoom();P.instances.map.enableScrollWheelZoom();P.instances.map.disableKeyboard();P.instances.map.setCenter(new PLatLng(getDefaultMapLat(),getDefaultMapLng()),getDefaultMapZoom());$zoomControl=$("#zoomControl");mapInitialized=true}else{P.instances.map=map}}if(reportsInitialLoad===true){$window.on("resize",updateReportSpacerHeight);$report_preview_button.on("click",reportPreviewStart);$report_preview_button.hover(function(){$report_button_hover_text.text("Preview Report Area")},function(){$report_button_hover_text.text("")});$report_back_button.on("click",reportTypeAndLocation);$report_back_button.hover(function(){$report_button_hover_text.text("Choose Report Type and Location")},function(){$report_button_hover_text.text("")});$(".report_location_selection_custom").on("show",function(){$(".report_location_selection_custom .custom-regions-menu").css("top",$(".report_location_selection_custom").offset().bottom);$(".report_location_selection_custom .custom-regions-menu").css("left",$(".report_location_selection_custom").offset().left)});$report_generate_button.off();$report_generate_button.on("click",function(){reportGenerateConfirm()});$(".map-options__clear-location").click(function(){clearLocationAlert()});$(".map-options__reset").click(function(){var text="Are you sure you want to clear any data layers or sites currently displayed and start over at the default view?";alerter.popup(text,"No","Yes",resetMap)});$(".custom-region-button, .custom-regions__create").click(function(){toggleCustomRegion()});PEvent.addListener(polycreator,"addpoly",function(points){polycreator.showSaveInfoWindow(points[0])});PEvent.addListener(polycreator,"savepoly",function(places){polycreator.addSavedPoly(places)});$("toolbar-icon--save").click(function(){genericAlertDialog({template:"report",action:"save"})});$("toolbar-icon--print").click(function(){printReport()});$(".custom-regions__create").hide();$window.on(P.events.LOGGED_IN,reportsPageLoader);$window.on(P.events.LOGGED_OUT,reportsPageLoader)}if(isSubscriber()&&urlParams["type"]&&urlParams["area"]){var doNotLoadReport=function(){urlParams={};$mainContainer.removeClass("is-hidden");renderReportForm()};var loadReport=function(){reportGenerateConfirm(function(){switch(urlParams["type"]){case"hud":renderHudReport(urlParams["bid"],urlParams["polyid"],urlParams["pname"],urlParams["plat"],urlParams["plng"]);break;case"mn":renderMinnesotaHousingReport(urlParams["pid"]);break;case"wellsfargo":case"wf_demographic":case"wf_housing":case"wf_education":case"wf_jobseconomy":renderWellsFargoReport(urlParams["type"],urlParams["bid"],urlParams["polyid"],urlParams["pname"],urlParams["plat"],urlParams["plng"]);break;case"op":renderOpportunityReport("op",urlParams["pid"]);break;case"optest":renderOpportunityReportTest("optest",urlParams["pid"]);break;default:loadReportByAreaAndType(urlParams["area"],urlParams["type"])}},function(){doNotLoadReport()})};if(isTrial()){var checkAvailableReports=function(){if(trialUserRemainingReports>0){loadReport()}else{doNotLoadReport()}};if(trialUserRemainingReports==null){updateTrialGenerations(function(){checkAvailableReports()})}else{checkAvailableReports()}}else{loadReport()}}else{renderReportForm()}}function updateTrialGenerations(callback){if(!isTrial()){return}ajax.call({url:PEnvironment.reportUrl+"&act=t",dataType:"json",success:function(response){trialUserRemainingReports=response==null||response.rpt==null||response.rpt.c==null?0:response.rpt.c;if(callback!=null){callback()}},error:function(){trialUserRemainingReports=0}})}function reportLocationBarHandler(arg,search,doNotDoIt){var proceed=function(){reportCheckBoundary(reportObject.code,reportObject.place[reportObject.locationType],false,function(allowed){if(allowed){if(reportObject.generateNext){delete reportObject.generateNext;$(".report_generate_button").click()}else{$(".report_preview_button_main").click()}}})};delete reportObject.placeId;delete reportObject.address;if(arg instanceof Array){arg=arg[0]}if(arg instanceof PAddress&&arg.errorCode===-2){var alertText='"<b>'+arg.addr+'</b>" could not be found.';if(reportObject.code=="hc"){alertText+=" Currently, Community Health Reports can only be generated for counties and census tracts."}alerter.popup(alertText,"OK");return}if(reportObject.locationType=="predefined"){if(arg instanceof PAddress){alerter.popup("Please specify an area, not an address.","OK");return}if(arg instanceof PPlace&&arg.getType()==PPlaceType.COUNTRY||search=="autosuggest"&&arg=="country"){alerter.popup("Reports cannot be generated for the United States.","OK");return}}if(reportObject.locationType=="radius"){if(!(arg instanceof PAddress)){alerter.popup("Please specify a street address, not an area.","OK");return}}if(arg instanceof PPlace){reportObject.place[reportObject.locationType]=arg;reportObject.locationText[reportObject.locationType]=arg.label}else if(arg instanceof PAddress){reportObject.address=arg;reportObject.locationText[reportObject.locationType]=arg.addr}else if(typeof arg=="number"){doNotDoIt=true;reportObject.placeId=arg;placeLoader.load([arg],function(places){var place=places[0];if(reportObject.locationType==="custom"){customRegionText(place)}reportObject.place[reportObject.locationType]=place;proceed()})}else{alerter.popup("The location search did not return any results. Please try again.","OK");return}if(reportObject.locationType==="custom"){customRegionText(arg)}reportObject.hasLocation[reportObject.locationType]=true;if(doNotDoIt==null){proceed()}}function customRegionText(place){if(place!=null){$(".report_custom_region_name").html('<span class="report_location_selection_text report_location_selection_intro">Selected Custom Region:</span>'+'<span class="report_location_selection_text report_location_selection_name">'+place.label+"</span>")}else{$(".report_custom_region_name").empty()}}function reportAvailability(perm){if(perm==null){alerter.popup("Please select a report type.","OK");return false}else if(perm==1){if(!productProperty.getValue("auto_login")){subscribeAlert()}return false}else if(perm==2){alerter.popup("This report is not available.","OK");return false}else if(perm==3){alerter.popup("This report is custom and not available.","OK");return false}else if(perm==4){subscribeAlert();return false}else if(perm==5){subscribeAlert(null,"subscriber-max-reports");return false}else if(perm==6){if(PEnvironment.isPolicyMap){alerter.popup("This report is available to premium subscribers and most enterprise licenses. <a href='/contact.html' target='_blank'>Contact PolicyMap</a> to learn how to access this feature.","OK")}else{alerter.popup("This report is not available at this subscription level. <a href='/contact.html' target='_blank'>Contact PolicyMap</a> or your electronic resource librarian about accessing this feature.","OK")}return false}return true}function getPolygonRadius(place){var polycenter=place.getCentroid();var farthestDistance=0;var polyverts=place.getVertices();for(var i=0;i<polyverts.length;i++){var points=polyverts[i];for(var j=0;j<points.length;j++){if(polycenter.distanceFrom(points[j])>farthestDistance){farthestDistance=polycenter.distanceFrom(points[j])}}}var miles=Math.ceil(farthestDistance/804.672)/2;var radius=new Object;radius.lat=Math.round(polycenter.lat()*1e4)/1e4;radius.lng=Math.round(polycenter.lng()*1e4)/1e4;radius.size=miles;return radius}function getMapHeight(){var height=200;if(currentReport.reportType=="usdaex"||currentReport.reportType=="rd-usda"){height=400}return height}function reportCheckBoundary(reportCode,boundary,noAlert,callback){var boundaryType=boundary.getType();if(boundary.address!=null||boundaryType==PPlaceType.CUSTOM||boundaryType==PPlaceType.POLYGON){if(reportCode=="hc"){healthcareReportCheckBoundary(boundary,noAlert,function(hcAllowed){callback(hcAllowed)})}else{callback(true)}return}ajax.call({url:PEnvironment.reportUrl+"&act=b&rpti="+reportCode+"&bi="+boundary.getID(),dataType:"json",success:function(response){if(response!=null&&response.rpt!=null&&response.rpt.a!=null){if(response.rpt.a!=true){if(noAlert==null||noAlert!==true){alerter.popup("This report is not available for this geography.")}callback(false)}else{if(reportCode=="hc"){healthcareReportCheckBoundary(boundary,noAlert,function(hcAllowed){callback(hcAllowed)})}else{callback(true)}}}else{alerter.popup("There was an error checking the location availability for this report.")}},error:function(){alerter.popup("There was an error checking the location availability for this report.")}})}function healthcareReportCheckBoundary(boundary,noAlert,callback){var displayAlert=noAlert==null||noAlert!==true;if(boundary instanceof PPlace&&(boundary.getType()!=PPlaceType.CUSTOM&&boundary.getType()!=PPlaceType.POLYGON)){var boundaryType=boundary.getType();if(boundaryType==PPlaceType.STATE&&boundary.getState()!="DC"){if(displayAlert){alerter.popup("The Healthcare Report is not currently available for states.")}callback(false);return}var year=boundaryMatrix.getDisplayYearForDefinitionId(boundary.getDefinitionId());if(year=="2000"){if(displayAlert){alerter.popup("The Healthcare Report is not currently available for 2000 boundaries.")}callback(false);return}}geocoder.getPlacesQuery("wit",boundary,PPlaceType.COUNTY,null,null,function(numCounties){if(numCounties!=null&&numCounties>25){if(displayAlert){alerter.popup("The Healthcare Report cannot be generated for boundaries exceeding 25 counties.")}callback(false);return}else{callback(true);return}},50,null,null,null,true)}function rhodeIslandReportCheckBoundary(boundary,noAlert,callback){var displayAlert=noAlert==null||noAlert!==true;if(boundary instanceof PPlace&&(boundary.getType()!=PPlaceType.CUSTOM&&boundary.getType()!=PPlaceType.POLYGON)){var year=boundaryMatrix.getDisplayYearForDefinitionId(boundary.getDefinitionId());if(year=="2000"){if(displayAlert){alerter.popup("The Rhode Island Housing  is not currently available for 2000 boundaries.")}callback(false);return}}geocoder.getPlacesQuery("wit",boundary,PPlaceType.COUNTY,null,null,function(numCounties){if(numCounties!=null&&numCounties>25){if(displayAlert){alerter.popup("The Rhode Island Housing  cannot be generated for boundaries exceeding 25 counties.")}callback(false);return}else{callback(true);return}},50,null,null,null,true)}function connecticutHousingReportCheckBoundary(boundary,noAlert,callback){var displayAlert=noAlert==null||noAlert!==true;if(boundary instanceof PPlace&&(boundary.getType()!=PPlaceType.CUSTOM&&boundary.getType()!=PPlaceType.POLYGON)){var year=boundaryMatrix.getDisplayYearForDefinitionId(boundary.getDefinitionId());if(year=="2000"){if(displayAlert){alerter.popup("The Connecticut Housing  is not currently available for 2000 boundaries.")}callback(false);return}}geocoder.getPlacesQuery("wit",boundary,PPlaceType.COUNTY,null,null,function(numCounties){if(numCounties!=null&&numCounties>25){if(displayAlert){alerter.popup("The Connecticut Housing  cannot be generated for boundaries exceeding 25 counties.")}callback(false);return}else{callback(true);return}},50,null,null,null,true)}ReportSectionInfo=function(cr,cont,aggRule,opts){$.extend(this,cr);this.reportPlace=this.pplace;this.dataset=aggRule;this.aggRule=aggRule;this.extraSources=[];this.container=null;if(cont!=null){this.container=cont}this.aggList=[];if(opts==null){opts={}}this.types=PPlaceTypeConfig2.AGGREGATION.getAvail(aggRule);this.defaultStepIsOn=true;this.defaulttype=null;this.$info=$("<div />",{class:"info"});if(opts.hideInfo==true){this.$info.css("display","none")}this.$sourceDiv=$("<div />",{class:"source"});this.$info.append(this.$sourceDiv);this.$aggcont=$("<div />",{class:"aggOptions"});this.$info.append(this.$aggcont);this.$agglist=$("<div />",{class:"agglist"});this.$info.append(this.$agglist);if(this.container!=null&&opts.noInfoDisplay!==true){$(cont).after(this.$info)}};ReportSectionInfo.prototype.update=function(hideAggs){this.updateSource();if(!hideAggs){this.updateAggregateInfo();this.updateAggregateList()}this.extraSources=[]};ReportSectionInfo.prototype.updateSource=function(){var inds=this.sourceinds;var txt="";var arr=[];for(var i=0;i<inds.length;i++){arr.push(this.sourceinds[i].getSourceList(true))}arr=this.getUnique(arr);if(this.extraSources.length){arr=arr.concat(this.extraSources)}txt=arr.join(", ");this.$sourceDiv.html("Source: "+txt)};ReportSectionInfo.prototype.getUnique=function(arr){var u={},a=[];for(var i=0,l=arr.length;i<l;++i){if(u.hasOwnProperty(arr[i])){continue}a.push(arr[i]);u[arr[i]]=1}return a};ReportSectionInfo.prototype.updateAggregateInfo=function(){var pplace=this.pplace;var getplaces=this.getplaces;var cont=this.container;var func=this.func;var group=this.groupPlaceTypeAggregates;var dataset=this.dataset;var dAggs=this.aggCube.definitionAggs;if(!this.defaulttype&&this.pplace&&(this.pplace.isAssembledCustom()&&this.getplaces&&this.getplaces[0])){this.defaulttype=this.getplaces[0].getType();var foundtype=false;if(this.types){for(var i=0;i<this.types.length;i++){if(this.types[i]==this.defaulttype)foundtype=true}}if(!foundtype){if(typeof this.types=="undefined"||this.types.constructor!==Array){this.types=[]}this.types.push(this.defaulttype)}var arr=[];for(var j=0;j<PPlaceTypeConfig.containmentOrder.length;j++){for(var i=0;i<this.types.length;i++){if(PPlaceTypeConfig.containmentOrder[j]==this.types[i]){arr.push(this.types[i])}}}PPlaceTypeConfig2.AGGREGATION.getAvail(dataset);this.types=arr}else if(group[dataset]&&group[dataset].length>0&&!this.reportPlace.isAssembledCustom()){this.defaulttype=group[dataset][0].getType()}this.$aggcont.html("");if(!getplaces||!getplaces[0]){return}else{var $div=$("<div />");var typeid=pplace.getType().id;var defid=pplace.getDefinitionId();var text="";$div.html("Data aggregated by: "+text);this.$aggcont.append($div)}};ReportSectionInfo.prototype.buildDropDown=function(){var $span=$("<span />");$span.html("Data aggregated by: ");this.$aggcont.append($span);var $select=$("<select />");var addDefault=false;var types=this.types;for(var i=0;i<types.length;i++){var currentType=types[i];var $opt=$("<option />");if(this.selectedType&&this.selectedType!=this.defaulttype){addDefault=true;if(this.selectedType==currentType)$opt.attr("selected","true")}else if(this.defaulttype==currentType){$opt.attr("selected","true");this.selectedType=this.defaulttype}$opt.attr("value",currentType.id);$opt.html(currentType.getName());$select.append($opt)}if(addDefault){var $opt=$("<option />");$opt.addClass("default");$opt.attr("value",this.defaulttype.id);$opt.html("Default");$select.append($opt)}this.$aggcont.append($select);if(this.selectedType)this.$aggcont.append("<span class='aggTypeLabel'>"+this.selectedType.getName()+"</span>");var that=this;$select.change(function(){that.refreshReportSection(this.value)});this.$select=$select};ReportSectionInfo.prototype.useDefaultStep=function(){return this.defaultStepIsOn};ReportSectionInfo.prototype.refreshReportSection=function(typeid){this.prevSelectedType=this.selectedType;var prevhtml=$(this.container).html();$(this.container).html("<div class='reportloading'>Loading...</div>");var aggtype=boundaryTypes.getTypeById(typeid);this.selectedType=aggtype;var boundArea=this.boundArea;var defIds=boundaryMatrix.getAllBoundaryDefinitionIdsForTypeId(aggtype.id);var that=this;boundArea.getPlacesWithin(aggtype,null,defIds,function(aggregates){if(aggregates.length==0){alertCustomRegionIsTooSmall(aggtype)
;$(that.container).html(prevhtml);var options=that.$select.find("option");for(var i=0;i<options.length;i++){if(that.prevSelectedType.id==$(options[i]).attr("value")){$(options[i]).attr("selected","true");that.selectedType=that.prevSelectedType}}return}that.useAssembledPlaces=false;if(aggtype==that.defaulttype){that.defaultStepIsOn=true;that.ignorePPlace=true;if(that.pplace.isAssembledCustom())that.ignorePPlace=false}else{that.defaultStepIsOn=false;that.ignorePPlace=true}that.aggs=aggregates;that.aPlace=null;that.func(that)},50,null,null,null,"id,identifier,label,typeid,state")};ReportSectionInfo.prototype.createList=function(aggs,per,ind,showsrc){var aggCount=aggs.length;if(aggCount>0){var names=getAggregatedPlaceNames(aggs);var typeNames=formatAggregatePlaceType(aggs[0].getType().getName());var type=aggCount==1?typeNames[0]:typeNames[1];var aggText=aggCount+" "+type+" "}else{var names="";var typeNames=["",""];var type="";var aggText="0 Boundaries Found"}if(aggCount>0&&per!=null&&ind!=null){this.aggList.push({year:per,src:ind.getSourceList(),count:aggs.length,type:typeNames,aggs:aggs,names:getAggregatedPlaceNames(aggs)})}var div=$("<div />");var txt="";if(ind&&per){per=ind.getPeriodLabel(per)}if(per){txt=per+" "}txt+="Data ";if(showsrc){txt+="for "+ind.getSourceList()+" "}$(div).html("<span class='agglist--year-src'>"+txt+"Contains:</span> "+aggText);this.$agglist.append(div);if(aggs.length==0){return}var span=$("<span />");var show=$("<a />");$(span).addClass("toggle");$(span).html("(");$(span).append(show);$(span).append(")");$(show).html("show");$(show).click(function(){if($(this).hasClass("hide")){$(this).html("hide")}else{$(this).html("show")}$(this).parent().parent().children(".names").toggleClass("hide")});$(div).append(span);var namesDiv=$("<div />");namesDiv.html(names);$(namesDiv).addClass("names");$(namesDiv).addClass("hide");$(div).append(namesDiv)};ReportSectionInfo.prototype.updateAggregateList=function(){this.aggList=[];this.$agglist.empty();var aggregates=this.getplaces;var periods=this.periods;var div=$("<div />");if(!aggregates||!aggregates[0]){this.createList([])}else{if(this.aggCube&&this.aggCube.useMultiMatrixAggs()&&periods){var sourceList={};for(var i=0;i<this.sourceinds.length;i++){var ind=this.sourceinds[i];if(ind.sourcePeriods){periods=ind.sourcePeriods}var source=ind.getSource();if(!sourceList[source]){sourceList[source]={}}for(var p=0;p<periods.length;p++){var per=periods[p];var aggregates=this.aggCube.getPlacesForIndAndPeriod(ind,per);var showSrc=false;if(this.sourceinds.length>1){showSrc=true}var mId=ind.getMatrixIdForPeriod(per);if(!sourceList[source][mId]){sourceList[source][mId]={};sourceList[source][mId].periods=[];sourceList[source][mId].aggs=[];sourceList[source][mId].ind=null;sourceList[source][mId].showSrc=null}sourceList[source][mId].periods.push(per);sourceList[source][mId].aggs=aggregates;sourceList[source][mId].ind=ind;sourceList[source][mId].showSrc=showSrc}}var aggTracker={};for(var s in sourceList){if(!aggTracker[s]){aggTracker[s]={}}var matrixList=sourceList[s];for(var mid in matrixList){if(!aggTracker[s][mid]){aggTracker[s][mid]={}}aggTracker[s][mid]["periods"]=matrixList[mid].periods;aggTracker[s][mid]["aggregates"]=matrixList[mid].aggs;aggTracker[s][mid]["ind"]=matrixList[mid].ind;aggTracker[s][mid]["showSrc"]=matrixList[mid].showSrc}}for(var s in aggTracker){var previousEntry=null;var previousMid=null;var matrixList=aggTracker[s];for(var mid in matrixList){var entry=matrixList[mid];var aggregates=entry["aggregates"];var periods=entry["periods"];var keepPointingToSamePreviousEntry=false;if(previousEntry){var previousAggregates=previousEntry["aggregates"];var previousPeriods=previousEntry["periods"];var prevIds=getAggregatedPlaceIds(previousAggregates);var currentIds=getAggregatedPlaceIds(aggregates);if(prevIds==currentIds){aggTracker[s][previousMid]["periods"]=previousPeriods.concat(periods);entry["hide"]=true;keepPointingToSamePreviousEntry=true}}if(keepPointingToSamePreviousEntry){}else{previousEntry=entry;previousMid=mid}}}for(var s in aggTracker){var matrixList=aggTracker[s];for(var mid in matrixList){var entry=matrixList[mid];if(entry.hide){continue}var aggregates=entry["aggregates"];var periods=entry["periods"];var ind=entry["ind"];var showSrc=entry["showSrc"];if(periods.length>1){var perString=periods[0]+" - "+periods[periods.length-1]}else{perString=ind.getPeriodLabel(periods[0])}this.createList(aggregates,perString,ind,showSrc)}}}else{if(this.sourceinds){var ind=this.sourceinds[0]}this.createList(aggregates,per,ind)}}var aggContText=$.trim(this.$aggcont.text());var aggContTextLen=aggContText.length;if(this.$agglist.text().length==0&&aggContTextLen>0&&aggContText.substring(aggContTextLen-1)==":"){var innerDiv=this.$aggcont.find("div");if(innerDiv.length>0){innerDiv.append(" N/A")}}};ReportSectionInfo.prototype.getInfoDiv=function(){return this.$info};ReportSectionInfo.prototype.getTemplateInfoDivContents=function(cube,excludeContains,sourceEndnote){var contents="";if(cube!=null&&Object.keys(cube.values).length>0){this.aggCube=cube;this.periods=this.aggCube.periods}var sources=[];for(var i=0;i<this.sourceinds.length;i++){sources.push(this.sourceinds[i].getSourceList(true,false,"View Data Directory"))}sources=this.getUnique(sources);contents+="Source: <span class='source-name'>"+sources.join(", ")+"</span>";if(sourceEndnote!=null){contents+="<sup class='endnote'><a href='#endnote-"+sourceEndnote+"'>"+sourceEndnote+"</a></sup>"}if(excludeContains==null||excludeContains!==true){var gotFromCube=false;if(this.aggCube!=null&&this.periods!=null){this.updateAggregateInfo();this.updateAggregateList();for(var i=0;i<this.aggList.length;i++){var curAgg=this.aggList[i];contents+="<br /><span class='data-contains'>"+curAgg.year+" Data Contains: "+String(curAgg.count)+" "+(curAgg.count==1?curAgg.type[0]:curAgg.type[1])+"</span>";contents+="<span class='data-contains-places' style='display: none;'><br />"+curAgg.names+"</span>";gotFromCube=true}}if(gotFromCube==false){var defIds=_.uniq(_.pluck(this.naGetPlaces,"defid"));defIds.sort(function(a,b){var aYear=boundaryMatrix.getDisplayYearForDefinitionId(a);var bYear=boundaryMatrix.getDisplayYearForDefinitionId(b);return aYear-bYear});for(var i=0;i<defIds.length;i++){var curDefId=defIds[i];var curDefPlaces=[];var curDefType=null;for(var j=0;j<this.naGetPlaces.length;j++){var curPlace=this.naGetPlaces[j];if(curPlace.getDefinitionId()==curDefId){curDefPlaces.push(curPlace);if(curDefType==null){curDefType=curPlace.getType()}}}var curDefPlacesCount=curDefPlaces.length;contents+="<br /><span class='data-contains'>Data Contains: "+String(curDefPlacesCount)+" "+(curDefPlacesCount==1?curDefType.getDisplayName():curDefType.getPluralName())+"</span>";contents+="<span class='data-contains-places' style='display: none;'><br />"+_.pluck(curDefPlaces,"label").join(", ")+"</span>"}}}return contents};ReportSectionInfo.prototype.isRangeValueNeeded=function(ind,per){if(ind&&per&&this.aggCube){var pls=this.aggCube.getPlacesForIndAndPeriod(ind,per)}if(this.ignorePPlace||this.pplace.isAssembledCustom()||this.pplace.isCustomOrPoly()||pls&&pls.length>1)return true;else return false};ReportSectionInfo.prototype.hideAggDropDownOption=function(){this.$aggcont.hide();this.$agglist.hide()};ReportSectionInfo.prototype.setIgnorePPlace=function(places,pplace){if(places.length>1&&(pplace&&!pplace.isAssembledCustom())){this.ignorePPlace=true}};ReportSectionInfo.prototype.isDefIdUsed=function(defids,id){for(var i=0;i<defids.length;i++){if(id==defids[i]){return true}}return false};ReportSectionInfo.prototype.addExtraSource=function(link){this.extraSources.push(link)};function reportGenerateOnLoad(newStyle){link=new PReportLink;PMapType.DEFAULT=PMapType.NORMAL;$reportGenerate=$(".report_generate");$reportGenerate.removeClass("rt-report-content rt-prototype-report rt-template-report");if(currentReport.typeId==1){$reportGenerate.addClass("rt-report-content")}else if(currentReport.typeId==2){$reportGenerate.addClass("rt-prototype-report")}else if(currentReport.typeId==3){$reportGenerate.addClass("rt-template-report")}if(currentReport.reportType=="hud"){loadHudReport()}else if(currentReport.reportType=="wellsfargo"){loadWellsFargoReportOld()}else if(currentReport.reportType=="wf_demographic"){loadWellsFargoDemographicReport()}else if(currentReport.reportType=="wf_housing"){loadWellsFargoHousingReport()}else if(currentReport.reportType=="wf_education"){loadWellsFargoEducationReport()}else if(currentReport.reportType=="wf_jobseconomy"){loadWellsFargoJobsEconomyReport()}else if(currentReport.reportType=="hfap"){loadHFAPReport()}else if(currentReport.reportType=="mn1"||currentReport.reportType=="mn2"){loadMinnesotaHousingReport()}else if(currentReport.reportType=="ggr"){loadGeorgiaReadingReport()}else if(currentReport.reportType=="op"){loadOpportunityReport()}else if(currentReport.typeId==3){initializeTemplateReport()}else{drawMap(newStyle)}var setSectionDisplays=function(){var toggles=$(".reporttitles").find(".toggle");var params=getUrlParams();var arr=[];var s=params["sections"];if(s){arr=s.split(",")}for(var i=0;i<arr.length;i++){if(!parseInt(arr[i])&&toggles[i]){sectionDisplayToggle(toggles[i])}}};var checkAsync=function(){if(ajax.activeRequests){setTimeout(checkAsync,1e3)}else{setSectionDisplays();if(currentReport.typeId==3){$(window).trigger(P.events.TEMPLATE_REPORT_LOADED)}if(theErrors!=""){alerter.popup(theErrors,"OK")}}};setTimeout(checkAsync,1e3)}function drawMap(newStyle){var placeIdOrAddress=null;var radius=null;if(currentReport.areaType=="radius"||currentReport.areaType=="pradius"){placeIdOrAddress=currentReport.location;radius=currentReport.radius}else if(currentReport.areaType=="predefined"){placeIdOrAddress=currentReport.placeId}if(!newStyle||!P.instances.map){map=new PMap(document.getElementById("map"));P.instances.map=map}getPlaceDetails(currentReport,function(place,centroid,counties,states){if(currentReport.areaType=="predefined"){if(place==null){alert('Place "'+placeIdOrAddress+'" not found')}else{map.setCenterBounds(place.getBounds());addPolygons(map,place);displayContainedPlaces(place,centroid,counties,states)}}else if(currentReport.areaType=="radius"||currentReport.areaType=="pradius"){if(currentReport.lat!=null&&currentReport.lng!=null){map.clearOverlays();var centerpoint=new PLatLng(currentReport.lat,currentReport.lng);var centermarker=new PMarker(centerpoint);map.radiuscenter=centerpoint;map.addOverlay(centermarker);var bounds=drawRadius(radius,centerpoint);if(currentReport.areaType=="pradius"){polycreator.polyload(currentReport.bid,currentReport.areaName,currentReport.plat,currentReport.plng,function(places){if(places[0]){addPolylines(map,places[0].getVertices())}})}displayContainedPlaces(place,centroid,counties,states)}else{if(!centroid){alert('Address "'+placeIdOrAddress+'" not found')}else{map.clearOverlays();var centerpoint=point;var centermarker=new PMarker(centerpoint);map.radiuscenter=centerpoint;map.addOverlay(centermarker);var bounds=drawRadius(radius,centerpoint);displayContainedPlaces(bounds,point,counties,states)}}}else if(currentReport.areaType=="custom"){session.put("cp",[place.id]);map.setCenterBounds(place.getBounds());addPolygons(map,place);displayContainedPlaces(place,centroid,counties,states)}else if(currentReport.areaType=="polygon"){map.setCenterBounds(place.getBounds());addPolylines(map,place.getVertices());displayContainedPlaces(place,centroid,counties,states)}map.disableDragging()})}function getRangeString(alpha,beta,unit,dec,str1,str2,idValue){if(!str1&&str1!=""){var str1="Ranged From "}if(!str2&&str2!=""){var str2=" to "}var fnAlpha=PWebUtil.formatNumber(alpha,unit,null,idValue);var fnBeta=PWebUtil.formatNumber(beta,unit,dec,idValue);if(alpha==beta){return fnAlpha}else{if(fnBeta=="N/A"&&fnAlpha!="N/A"){return str1+fnBeta+str2+fnAlpha}else{return str1+fnAlpha+str2+fnBeta}}}function getRangeStringHMDAIncome(alpha1,beta1,alpha2,beta2,unit,dec){var alpha=alpha1;var beta=beta1;var fnAlpha=PWebUtil.formatNumber(alpha,unit);var fnBeta=PWebUtil.formatNumber(beta,unit,dec);if(!alpha2){var a=alpha==beta?fnAlpha:"ranged from "+fnAlpha+" to "+fnBeta;return a}else{var a=alpha==beta?fnAlpha:"between "+fnAlpha+" to "+fnBeta+" and "}var alpha=alpha2;var beta=beta2;var fnAlpha=PWebUtil.formatNumber(alpha,unit);var fnBeta=PWebUtil.formatNumber(beta,unit,dec);var b=alpha==beta?" - "+fnAlpha:fnAlpha+" to "+fnBeta;return a+b}function formatValueWithinText(val,conj){if(val!="N/A"){val=val.toLowerCase().replace(/ n\/a/gi," N/A")}val="<b>"+val+"</b>";if(!conj)conj="";else conj=conj+" ";if(val.indexOf("range")==-1){val=conj+val}return val}function previousPage(forceReportMenu){var url;if(forceReportMenu)url="reports?";else url="report_area?";if(currentReport.areaType=="radius"||currentReport.areaType=="pradius"){url+="type="+currentReport.reportType+"&area="+currentReport.areaType+"&location="+currentReport.location+"&radius="+currentReport.radius;if(currentReport.lat&&currentReport.lat!=""&&currentReport.lng&&currentReport.lng!=""){url+="&lat="+currentReport.lat+"&lng="+currentReport.lng}if(currentReport.did&&currentReport.did!=""){url+="&did="+currentReport.did}if(currentReport.dldid&&currentReport.dldid!=""){url+="&dldid="+currentReport.dldid}var areaName;if(PEnvironment.pageName=="report_area"){if(currentReport.pname&&currentReport.pname!=""){areaName=currentReport.pname}}else if(PEnvironment.pageName=="report_generate"){if(currentReport.areaName&&currentReport.areaName!=""){areaName=currentReport.areaName}}if(currentReport.bid&&currentReport.bid!=""&&currentReport.polyid&&currentReport.polyid!=""&&areaName&&currentReport.plat&&currentReport.plat!=""&&currentReport.plng&&currentReport.plng!=""){url+="&bid="+currentReport.bid+"&polyid="+currentReport.polyid+"&pname="+encodeURIComponent(areaName)+"&plat="+currentReport.plat+"&plng="+currentReport.plng}}else if(currentReport.areaType=="predefined"&&currentReport.placeId){url+="type="+currentReport.reportType+"&area="+currentReport.areaType+"&pid="+currentReport.placeId}else if(currentReport.areaType=="custom"){url="reports?type="+currentReport.reportType+"&area="+currentReport.areaType+"&cpid="+currentReport.cpid}else if(currentReport.areaType=="polygon"){var areaName;if(PEnvironment.pageName=="report_area"){if(currentReport.pname&&currentReport.pname!=""){areaName=currentReport.pname}}else if(PEnvironment.pageName=="report_generate"){if(currentReport.areaName&&currentReport.areaName!=""){areaName=currentReport.areaName}}url="reports?type="+currenReport.reportType+"&area="+currentReport.areaType+"&bid="+currentReport.bid+"&polyid="+currentReport.polyid+"&pname="+encodeURIComponent(areaName)+"&plat="+currentReport.plat+"&plng="+currentReport.plng}setWindowLocation(url)}function reportsMenu(){previousPage(true)}function printReport(){if(PEnvironment.pageName=="report_widget"){printWidgetReport()}else{var params=getUrlParams();if(params.type&&params.type.indexOf("wf_")==0){genericAlertDialog({template:"report",action:"print",printService:P.constants.webKitPrintService})}else if(params.type=="hud"){genericAlertDialog({template:"report",action:"print",printService:P.constants.webKitPrintService})}else if(/^(a|b|c|d|e|f|g|h|hc)$/.exec(params.type)!=null){genericAlertDialog({template:"report",action:"print",printService:P.constants.webKitPrintService})}else if(params.type=="hfap"){var filename="HFAP Report. ";filename+=$("#report_location").text();P.instances.wkprint.setPrintCallback(handleNotificationPrint);P.instances.wkprint.setFileName(filename,true);P.instances.wkprint.setOrientation(P.WKPrint.PORTRAIT);P.instances.wkprint.setPageSize(P.WKPrint.PAGESIZE_LETTER);P.instances.wkprint.setPaginate(P.WKPrint.PAGINATEYES);P.instances.wkprint.setPaginateContent(P.WKPrint.PAGINATECONTENT_PAGENUMBER);genericAlertDialog({template:"report",action:"print",printService:P.constants.webKitPrintService})}else if(params.type=="rd-usda"||params.type=="usdaex"){genericAlertDialog({template:"report",action:"print",printService:P.constants.webKitPrintService})}else if(params.type=="op"){P.instances.wkprint.setPaginate(P.WKPrint.PAGINATEYES);P.instances.wkprint.setPageSize(P.WKPrint.PAGESIZE_LETTER);P.instances.wkprint.setCustomFooter("opportunityCustomPaginationFooter.html");genericAlertDialog({template:"report",action:"print",printService:P.constants.webKitPrintService})}else{genericAlertDialog({template:"report",action:"print"})}}}function displayContainedPlaces(boundarea,centerpoint,counties,states){getContainedPlaces(currentReport,boundarea,centerpoint,counties,states,displayReport);var zoomlevel=map.setCenterBoundsAndGetZoomLevelByViewPort(boundarea,1e3,450);if(zoomlevel>6){boundarea.getAggregates(PPlaceType.SCHOOL,null,null,function(aggregatePlaces){displayDistricts(aggregatePlaces,"schooldist",boundarea)},0,null,PPlaceType.LABEL,null,null,null,PPlaceType.LABEL,0)}else{displayDistricts(null,"schooldist")}if(zoomlevel>5){boundarea.getAggregates(PPlaceType.SLD_UPPER,null,null,function(aggregatePlaces){displayDistricts(aggregatePlaces,"senatedist",boundarea)},0,null,1,null,null,null,1,0);boundarea.getAggregates(PPlaceType.SLD_LOWER,null,null,function(aggregatePlaces){displayDistricts(aggregatePlaces,"housedist",boundarea)},0,null,1,null,null,null,1,0)}else{displayDistricts(null,"senatedist");displayDistricts(null,"housedist")}if(zoomlevel>4){boundarea.getAggregates(PPlaceType.CONGRESSIONAL,null,null,function(aggregatePlaces){displayDistricts(aggregatePlaces,"congdist",boundarea)},0,null,1,null,null,null,1,0)}else{displayDistricts(null,"congdist")}boundarea.getAggregates(PPlaceType.SENATE,null,null,function(aggregatePlaces){displayDistricts(aggregatePlaces,"senators",boundarea)},0,null,1,null,null,null,1,0)}function displayReport(places,cities,zips,tracts,aggregates,pplace,boundarea,counties,states){var centerpoint=map.radiuscenter;if(centerpoint){centerpoint.getPlacesContaining(PPlaceType.CENSUSTRACT,null,null,function(censustract){if(censustract.length>0){var tractlabel=censustract[0].getLabel()}else{var tractlabel="n/a"}displayAreaSummary(document.getElementById("areasummary"),document.getElementById("contains1"),document.getElementById("contains2"),document.getElementById("containslist1"),document.getElementById("containslist2"),places,zips,tracts,counties,states,tractlabel);var sitesIds=currentReport.did||getUrlParams()["did"];var dlsitesIds=currentReport.dldid||getUrlParams()["dldid"];if(sitesIds||dlsitesIds){var dids=[];var dldids=[];if(sitesIds){var dids=sitesIds.split(",")}if(dlsitesIds){var dldids=dlsitesIds.split(",")}for(var i=0;i<dids.length;++i){var site=new POverlaySet(dids[i],PinIcons.triangle,15);if(dids[i]==massTransitSetId){site.icon=PinIcons.circle_blue;map.getCurrentMapType().addMapLayer(pMapLayer.UMTRANSIT)}site.setLabel("sentinel");map.addOverlaySet(site)}for(var i=0;i<dldids.length;++i){var site=new POverlaySet(dldids[i],PinIcons.triangle,15);site.type="dl";site.setLabel("sentinel");map.addOverlaySet(site)}if(dids.length>0||dldids.length>0){map.identifyMarker0(centerpoint,displayPointPolygonAttributes,200)}}})}else{displayAreaSummary(document.getElementById("areasummary"),document.getElementById("contains1"),document.getElementById("contains2"),document.getElementById("containslist1"),document.getElementById("containslist2"),places,zips,tracts,counties,states)}if(currentReport.areaType=="polygon"||currentReport.areaType=="pradius"){polycreator.polyloadFromReportObject(currentReport,function(places){if(places[0]){if(currentReport.bid!=null&&currentReport.areaName!=null&&currentReport.plat!=null&&currentReport.plng!=null){var poly=new PPolygon(places[0].getVertices()[0]);var polybound=poly.getBounds();var bufferstring=polybound.getNorthEast().lng()+1+","+(polybound.getNorthEast().lat()+1)+","+(polybound.getSouthWest().lng()-1)+","+(polybound.getSouthWest().lat()-1);ajax.call({url:PEnvironment.pointUrl+"&act=i&did="+currentReport.polyid+"&dt=old&ftr=/,&lat="+currentReport.plat+"&lng="+currentReport.plng+"&buf="+bufferstring+"&lim=50",context:this,success:function(response){if(response&&response.pnt&&response.pnt.length>0){var markers=POverlaySet.createMarkers(response.pnt);var polylist=[];for(var i=0;i<markers.length;i++){if(markers[i].isPoly&&markers[i].getPoint().lat()==currentReport.plat&&markers[i].getPoint().lng()==currentReport.plng)polylist.push(markers[i])}if(polylist.length>0){displayPointPolygonAttributes(polylist)}}}})}else if(currentReport.did!=null&&currentReport.polyid!=null){ajax.call({url:PEnvironment.pointUrl+"&act=i&did="+currentReport.did+"&dt=old&iid="+currentReport.polyid,context:this,success:function(response){if(response&&response.pnt&&response.pnt.length>0){var markers=POverlaySet.createMarkers([response.pnt[0]]);displayPointPolygonAttributes(markers)}}})}}})}if(aggregates&&aggregates.length>maxResultsConfInt){maxResultsAlert();return}var title="";if(currentReport.lq!=null){title=currentReport.lq.replace("'","\\\\'")}else{var reportHeader=$("#reportHeaderTitle").find(".reporttitle");reportHeader.html("Current Report:");if(currentReport.reportType=="a"){title+="Rental Housing Report of "}else if(currentReport.reportType=="b"){title+="Community Profile Report of "}else if(currentReport.reportType=="c"){title+="Internal Revenue Service Tax Report of "}else if(currentReport.reportType=="d"){title+="Home Mortgage Report of "}else if(currentReport.reportType=="e"){title+="Home Sale Report of "}else if(currentReport.reportType=="g"){title+="Federal Reserve Bank of Philadelphia HMDA Report of "}else if(currentReport.reportType=="brookingslaa"){title+="Brookings Institution Food Retail Low Access Area Report of  "}else if(currentReport.reportType=="h"){reportHeader.html("Project Snapshot:");title+="M&T Bank Report of "}else if(currentReport.reportType=="rd-usda"){title+="USDA RD Civil Rights Report of "}else if(currentReport.reportType=="hfap"){title+="HFAP Report of "}else if(currentReport.reportType=="ggr"){title+="Georgia Reading Report of "}else if(currentReport.reportType=="usdaex"){title+="USDA Exiting Report of "}else{title="Report Not Yet Available"}title+=getBoundaryNameForReportTitle(currentReport,reportObject,pplace[0])}jQuery(".reportname").empty().text(title);var areaTitle="Report Area";if(currentReport.areaType=="predefined"){areaTitle=pplace[0].getType().getName()+" ("+pplace[0].getLabel()+")"}else if(currentReport.areaType=="custom"&&currentReport.areaName.length>0){areaTitle=currentReport.areaName}else if(currentReport.areaType=="polygon"&&currentReport.areaName.length>0){areaTitle=currentReport.areaName}var aPlace=null;if(boundarea instanceof PPlace&&boundarea.isAssembledCustom())aPlace=boundarea;displayReportByType(aggregates,places,pplace,currentReport.areaType,boundarea,counties,states,centerpoint,areaTitle,aPlace);displayFooter(document.getElementById("footer"),places,counties,states)}function displayPointPolygonAttributes(markers){if(markers.length>0){jQuery("#sites_titles").show();if(markers[0].isPoly){if(markers[0].datasetID==99800){var detailsText="Low Access Area (LAA) Summary<sup>&dagger;</sup>"}else{var detailsText="Polygon Details"}}else{var detailsText="Sites"}for(var i=0;i<markers.length;++i){var attributes=markers[i].getAttributes();var tabIndex;var tabLength=markers[i].customTabLength;var divArr=[];var strayAttr=[];if(tabLength){for(var t=0;t<tabLength;t++){var div=document.createElement("div");div.className="sectioncontent attributesSection";divArr.push(div)}for(var j=0;j<attributes.length;++j){var attribute=attributes[j];if(attribute.name&&attribute.value!=""&&attribute.value!="null"||attribute.value=="0"){var tabName=attribute.tabName;if(!tabName){strayAttr.push(attribute);continue}tabIndex=attribute.tabIndex;addAttributeToDetailsSection(attribute,divArr[tabIndex]);divArr[tabIndex].tabName=tabName}}for(var t=0;t<tabLength;t++){if(divArr[t].hasChildNodes()){var title=document.createElement("div");title.className="reporttitles";title.innerHTML='<span class="toggle" onclick="sectionDisplayToggle(this)">(-)</span>'+divArr[t].tabName+' <span class="type">('+detailsText+")</span>";jQuery("#sites_titles").append(title);jQuery("#sites_titles").append(divArr[t])}}}if(!tabLength||strayAttr.length>0){var div=document.createElement("div");div.className="sectioncontent attributesSection";if(strayAttr.length>0)attributes=strayAttr;for(var j=0;j<attributes.length;++j){var attribute=attributes[j];if(attribute.name&&attribute.value!=""&&attribute.value!="null"||attribute.value=="0"){addAttributeToDetailsSection(attribute,div)}}var title=document.createElement("div");title.className="reporttitles";title.innerHTML='<span class="toggle" onclick="sectionDisplayToggle(this)">(-)</span>'+detailsText;if(strayAttr.length>0){title.innerHTML='<span class="toggle" onclick="sectionDisplayToggle(this)">(-)</span>Additional Info <span class="type">('+detailsText+")</span>"}jQuery("#sites_titles").append(title);jQuery("#sites_titles").append(div)}}if(markers[0].datasetID==99800){var footer=document.createElement("div");footer.className="reporttext sitesFooter";footer.innerHTML="<sup>&dagger;</sup>A Low Access Area (LAA) is a geographic area determined by TRF for the Brookings Institution as having low access to "+"grocery retail.  LAAs were determined based on low/mod-income communities' distances from supermarkets, as compared to "+"similar higher-income counterparts.  For an explanation of how TRF determined LAAs and the family of LAA indicators "+"available in this report, please see the <a class='pagelinks' href='our-data-directory.html#TRF Supermarket Study of Low "+"Access Areas for Brookings Institution' target='_blank'>Data Directory</a>.";jQuery("#sites_titles").append(footer)}var divider=document.createElement("div");divider.className="divider";jQuery("#sites_titles").append(divider)}else{jQuery("#sites_titles").hide()}}function addAttributeToDetailsSection(attribute,div){var formattedValue;if(attribute.value==-9999||attribute.value==-999999){formattedValue="N/A"}else if(attribute.unit){formattedValue=PWebUtil.formatNumber(attribute.value,attribute.unit)}else{formattedValue=attribute.value}if(typeof formattedValue=="string"&&formattedValue.match("http://"))formattedValue="<a href='"+formattedValue+"' target='new' style='color:#5D83D0;text-decoration:underline;'>"+formattedValue+"</a>";var content=document.createElement("div");jQuery(content).css({padding:"2px 0 2px 10px",fontSize:"14px"});var name=document.createElement("span");jQuery(name).css({fontSize:"11pt",fontWeight:"bold"});jQuery(name).text(attribute.name+":  ");var value=document.createElement("span");jQuery(value).css({fontSize:"11pt",color:"#666"});jQuery(value).html(formattedValue);jQuery(content).append(name);jQuery(content).append(value);jQuery(div).append(content)}function getCountiesLabels(counties,states){var countiesText="";if(counties.length>0){for(var i=0;i<counties.length;++i){var comma=", ";if(counties.length==2){comma=" "}var a="";if(i==counties.length-1){comma="";if(counties.length>1)a="and "}label=counties[i].getLabel();countiesText+=a+"<b>"+label+"</b> County";if(states!=null&&states.length>1){countiesText+=" ("+counties[i].getState()+")"}countiesText+=comma;link.name+=label+" County"+comma}}return countiesText}function getStatesLabels(states,place){var t=", in";if(place&&place.getType()==PPlaceType.COUNTY){t=""}var statesText="";if(states.length>0){if(states.length>1){statesText+=t+" the states of ";link.name+=t+" the states of "}else{statesText+=t+" the state of ";link.name+=t+" the state of "}for(var i=0;i<states.length;++i){var comma=", ";if(states.length==2){comma=" "}var a="";if(i==states.length-1){comma="";if(states.length>1)a="and "}label=states[i].getLabel();statesText+=a+"<b>"+label+"</b>"+comma;link.name+=label+comma}}return statesText}function getCurrentDate(){var d=new Date;var months=new Array("January","February","March","April","May","June","July","August","September","October","November","December");var today=months[d.getMonth()]+" "+d.getDate()+", "+d.getFullYear();return today}function displayAreaSummary(div,cdiv1,cdiv2,cldiv1,cldiv2,places,zips,tracts,counties,states,tractlabel){if(currentReport.reportType=="usdaex"){return}var today=getCurrentDate();var text="<span class='topbox-header'>Date:</span>"+today+"<br /><br>";var c1text="";var c2text="";var cl1text="";var cl2text="";link.name=currentReport.reportName+" - ";if(currentReport.areaType=="radius"||currentReport.areaType=="pradius"){text+="<span class='topbox-header'>Proposed Address:</span><br>";var county=getCounty(places);text+="The <b>"+currentReport.radius+"</b> mile radius around this location, <b>"+currentReport.location+"</b>, is located in ";if(counties.length==2){for(var i=0;i<counties.length;++i){if(county.id!=counties[i].id){text+="<b>"+counties[i].getLabel()+"</b> County";if(states.length>1){text+=" ("+counties[i].getState()+")"}break}}text+=" and <b>"+county.getLabel()+"</b> County"}else if(counties.length>2){for(var i=0;i<counties.length;++i){if(county.id!=counties[i].id){text+="<b>"+counties[i].getLabel()+"</b> County";if(states.length>1){text+=" ("+counties[i].getState()+")"}text+=", "}}text+="and <b>"+county.getLabel()+"</b> County";if(states.length>1){text+=" ("+county.getState()+")"}}else{text+="<b>"+county.getLabel()+"</b> County"}var state=getState(places);if(states.length<=1){text+=", in the state of <b>"+state.getLabel()+"</b>.<br/><br/>"}else{text+=", in the states of "}if(states.length==2){for(var i=0;i<states.length;++i){if(state.id!=states[i].id){text+="<b>"+states[i].getLabel()+"</b> and ";break}}text+="<b>"+state.getLabel()+"</b>.<br/><br/>"}else if(states.length>2){for(var i=0;i<states.length;++i){if(state.id!=states[i].id){text+="<b>"+states[i].getLabel()+"</b>, "}}text+=" and <b>"+state.getLabel()+"</b>.<br/><br/>"}link.name+=currentReport.radius+" mile radius around "+currentReport.location}else if(currentReport.areaType=="predefined"){var place=places[0];var label=place.getLabel();var displayDefinition=boundaryMatrix.getDisplayNameForDefinitionId(place.getDefinitionId());if(currentReport.reportType=="rd-usda"||currentReport.reportType=="usdaex"){text=""}text+="<span class='topbox-header'>Proposed Location:</span><br>";text+="This location, <b>"+label+"</b> ("+displayDefinition+"), is located in ";link.name+=place.getLabel()+" ("+displayDefinition+")";if(place.getType()!=PPlaceType.COUNTY&&place.getType()!=PPlaceType.STATE){if(!counties)var counties=[getCounty(places)];var cText=getCountiesLabels(counties,states);text+=cText}if(place.getType()!=PPlaceType.STATE){if(!states)var states=[getState(places)];var sText=getStatesLabels(states,place);text+=sText}else{text+="in the US"}text+=".<br><br>"}else if(currentReport.areaType=="custom"||currentReport.areaType=="polygon"){text+="<span class='topbox-header'>Proposed Area:</span><br>";text+="This area is located in ";if(!counties.length){var counties=[getCounty(places)]||[]}var cText=getCountiesLabels(counties,states);if(!states.length){var states=[getState(places)]||[];var sText=getStatesLabels(states,place)}else{var sText=getStatesLabels(states)}text+=cText+sText;text+="<br /><br />"}if(currentReport.areaType=="radius"||currentReport.areaType=="pradius"||!(place&&place.getType()==PPlaceType.CENSUSTRACT)){var yearStr="";if(tracts[0]){var defid=tracts[0].getDefinitionId();var year=boundaryMatrix.getDisplayYearForDefinitionId(defid);yearStr=year+" "}if(currentReport.areaType=="radius"||currentReport.areaType=="pradius"){c1text+="This address is located in Census Tract <b>"+tractlabel+"</b>, and the report area contains the following "+yearStr+"census tract(s): "}else{c1text+="It is located within or touches the following "+yearStr+"census tract(s): "}if(tracts.length<=100){c1text+="<b>"+getPlaceNames(tracts)+"</b>."}else if(tracts.length<=500){
c1text+=tracts.length+" census tracts (<a onclick=\"switchListVisibility('"+cldiv1.id+"', 'expandlink1');\"><span class='pagelinks' id='expandlink1'>show</span></a>)</span>";cl1text="<b>"+getPlaceNames(tracts)+"</b>."}else{c1text+="<span style='color:#777;font-weight:normal;font-style:italic'>Not displayed; exceeds 500 census tracts.</span>"}}if(!(place&&place.getType()==PPlaceType.ZIP)){c2text+="<br />Similarly, it is located within or touches the following zip code(s): ";if(zips.length<=100){c2text+="<b>"+getPlaceNames(zips)+"</b>."}else if(zips.length<=500){c2text+=zips.length+" zip codes (<a onclick=\"switchListVisibility('"+cldiv2.id+"', 'expandlink2');\"><span class='pagelinks' id='expandlink2'>show</span></a>)</span>";cl2text="<b>"+getPlaceNames(zips)+"</b>."}else{c2text+="<span style='color:#777;font-weight:normal;font-style:italic'>Not displayed; exceeds 500 zip codes.</span>"}}div.innerHTML=text;cdiv1.innerHTML=c1text;cdiv2.innerHTML=c2text;cldiv1.innerHTML=cl1text;cldiv2.innerHTML=cl2text;if(reportChooserInstalled()){$("#aggregationNote").html("<br />Data presented in this report summarize the geographies specified in the citation information in each section.")}}function getPlaceNames(places){var retval="";if(places){for(var i=0;i<places.length;i++){retval+=places[i].getLabel()+", "}retval=retval.substring(0,retval.length-2)}return retval}function switchListVisibility(divid,linkspanid){var div=$("#"+divid);var linkspan=$("#"+linkspanid);if(div.css("display")=="block"){div.css("display","none");linkspan.text("show")}else if(div.css("display")=="none"){div.css("display","block");linkspan.text("hide")}}function displayDistricts(ps,divId,compare){if(currentReport.reportType=="rd-usda"||currentReport.reportType=="usdaex"){return}var places=ps;var districtdiv=document.getElementById(divId);districtdiv.style.color="";districtdiv.className="districttext";var html="";var state=null;if(compare&&compare instanceof PPlace){state=compare.getState()}if(places==null){html="<span style='color:#ccc;font-style:italic'>Too many to display</span>"}else if(places.length>0){for(var i=0;i<places.length;i++){if(currentReport.areaType!="predefined"||state&&state==places[i].getState()){html+=places[i].getLabel()+", "}}html=html.substring(0,html.length-2)}else if(compare&&compare instanceof PPlace&&(compare.getType()==PPlaceType.CONGRESSIONAL||compare.getType()==PPlaceType.SCHOOL||compare.getType()==PPlaceType.SLD_UPPER||compare.getType()==PPlaceType.SLD_LOWER)){html=compare.getLabel()}if(html=="")html="<span style='color:#ccc;font-style:italic'>None Found</span>";districtdiv.innerHTML=html}function displayFooter(div,places,counties,states){if(currentReport.reportType=="rd-usda"||currentReport.reportType=="usdaex"){return}var html=currentReport.reportName+" for ";if(currentReport.areaType=="radius"||currentReport.areaType=="pradius"){html+="<b>"+currentReport.radius+"</b> mile radius surrounding <b>"+currentReport.location+"</b>"}else if(currentReport.areaType=="predefined"){var place=places[0];html+="<b>"+place.getLabel()+"</b> ("+place.getType().getName()+")"}else if(currentReport.areaType=="custom"||currentReport.areaType=="polygon"){var countyNames="";for(var i=0;i<counties.length;i++){var comma=", ";if(i==counties.length-1)comma="";countyNames+="<b>"+counties[i].getLabel()+"</b> County"+comma}html+="area in "+countyNames}html+="<br>";var today=new Date;var day=today.getDate();if(day<10)day="0"+day;var mth=today.getMonth()+1;if(mth<10)mth="0"+mth;html+=mth+"/"+day+"/"+today.getFullYear();html+="<br>Copyright&nbsp;&copy;&nbsp;PolicyMap "+today.getFullYear()+". All rights reserved.";html+="<br>1-866-923-MAPS";html+="<br>policymap.com";div.innerHTML=html}function getAggregatedPlaceNames(places){var placeNames=[];for(var i=0;i<places.length;i++){if(places[i].getType()==PPlaceType.BLOCKGROUP)placeNames.push(places[i].getIdentifier());else placeNames.push(places[i].getLabel())}placeNames=placeNames.join(", ");return placeNames}function getAggregatedPlaceIds(places){var placeIds=[];for(var i=0;i<places.length;i++){placeIds.push(places[i].getIdentifier())}var strIds=placeIds.join(", ");return strIds}function formatAggregatePlaceType(name){var placetype=[];if(name=="Zip")placetype[0]="Zip Code";else if(name=="Block Group")placetype[0]="Census Block Group";else placetype[0]=name;if(name=="County")placetype[1]="Counties";else if(name=="City")placetype[1]="Cities";else placetype[1]=placetype[0]+"s";return placetype}function sectionDisplayToggle(elem){$(elem).toggleClass("close");if(P.WKPrint.isPrintPage()){$(elem).parent().addClass("collapsed");$(".page-break").hide();$("table").addClass("page-break-avoid")}var content=getNextSibling(elem.parentNode);elem.innerHTML=content.style.display!="none"?"(+)":"(-)";$(content).toggle()}function getNextSibling(n){x=n.nextSibling;while(x.nodeType!=1)x=x.nextSibling;return x}function checkStepsForNoAggregates(groups,groupPlaceTypeAggregates){for(var i=0;i<groups.length;i++){if(groupPlaceTypeAggregates[groups[i]]&&groupPlaceTypeAggregates[groups[i]].length==0)noDataAlert()}}function addErrors(text){if(theErrors!=""){text+="<br /><br />"}theErrors+=text}function clearErrors(){theErrors=""}function maxResultsAlert(){if(maxResultsAlertCount++>0){return}addErrors("The calculations in this report allow a maximum of "+maxResultsConfInt/2+" boundaries, and in at least one section this number was exceeded. Please try again with a smaller area.")}function checkCalculationValuesForNull(vals){for(var i in vals){if(vals[i]==null){return false}}return true}function divideCheck(sum1,sum2,mult,sum2min,naValue,naWithNoDenom){var na="N/A";if(naValue||naValue==0)na=naValue;var total;if(sum1==null){return na}else if(sum2==null||sum2==0){if(mult&&!naWithNoDenom){total=sum1*mult}else{return na}}else if(mult){total=sum1/sum2*mult}else{total=sum1/sum2}if(total==Infinity||sum2min&&sum2<sum2min){return na}else{return total}}function getAllPlaceData(inds,periods,place,c){var values=c.values;var rowVals={};rowVals.values=[];rowVals.hasData=false;for(var j=0;j<inds.length;j++){rowVals.values[j]=[];for(var p=0;p<periods.length;p++){var unit=inds[j].unit;var val=PWebUtil.formatNumber(values[periods[p]][place.id][inds[j].id],unit);if(val&&val!="N/A"){rowVals.hasData=true;c.showNoDataAlert()}rowVals.values[j][periods[p]]=val}}return rowVals}function createNoDataForPlacesNote(places){var placesString="";var placetype=places[0].getType();for(var i=0;i<places.length;i++){if(placetype==PPlaceType.BLOCKGROUP)var label=places[i].identifier;else var label=places[i].getLabel();placesString+=label+", "}placesString=placesString.replace(/, $/,"");var placeTypeName=placetype.getPluralName();var note="<div class='reporttext'>The following "+placeTypeName+" that are within or contain the report area have no data available: <b>"+placesString+"</b></div>";return note}function getVariationPercentChange(sum1,sum2){if(sum1&&sum2)return PWebUtil.formatNumber((sum2-sum1)/sum1*100,"_%");else return"N/A"}function checkIfZip(pplace){if(pplace instanceof Array)pplace=pplace[0];if(pplace){if(pplace instanceof PPlace&&pplace.isAssembledCustom()){var places=pplace.getAssembledPlaces();if(places[0].getType()==PPlaceType.ZIP)pplace=null}else if(pplace.getType()==PPlaceType.ZIP){pplace=null}}return pplace}function displayReportByType(aggregates,places,pplace,areaType,boundarea,counties,states,centerpoint,areaTitle,aPlace){var state=getState(places);var county=getCounty(places);if(!states||states.length<=0){states=[state]}if(!counties||counties.length<=0){counties=[county]}var obj={};obj.aggs=aggregates;obj.places=places;obj.pplace=pplace?pplace[0]:null;obj.areaType=areaType;obj.boundArea=boundarea;obj.counties=counties;obj.county=county;obj.states=states;obj.state=state;obj.centerpoint=centerpoint;obj.areaTitle=areaTitle;obj.aPlace=aPlace;obj.ignorePPlace=false;currentReport=jQuery.extend(currentReport,obj);switch(currentReport.reportType){case"a":displayReportByTypeA(obj);break;case"b":displayReportByTypeB(obj);break;case"c":displayReportByTypeC(aggregates,places,pplace,areaType,boundarea,counties,states,centerpoint,areaTitle,aPlace);break;case"d":displayReportByTypeD(obj);break;case"e":displayReportByTypeE(obj);break;case"g":displayReportByTypeG(aggregates,places,pplace,areaType,boundarea,counties,states,centerpoint,areaTitle,aPlace);break;case"h":displayReportByTypeH(aggregates,places,pplace,areaType,boundarea,counties,states,centerpoint,areaTitle,aPlace);break;case"brookingslaa":displayReportByTypeLAA(aggregates,places,pplace,areaType,boundarea,counties,states,centerpoint,areaTitle,aPlace);break;case"usdaex":displayReportByTypeUSDAEX(obj);break;case"rd-usda":displayReportByTypeRDUSDA(obj);break}}function displayIncomes(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13){switch(currentReport.reportType){case"b":displayIncomesB(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13);break}}function displayHouseholds(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14){switch(currentReport.reportType){case"h":displayHouseholdsH(arg1,arg2,arg3,arg4,arg5,arg6,arg7,arg8,arg9,arg10,arg11,arg12,arg13,arg14);break}}function reportChooserInstalled(){if(currentReport.reportType=="b"||currentReport.reportType=="a"||currentReport.reportType=="e"||currentReport.reportType=="d"||currentReport.reportType=="rd-usda"||currentReport.reportType=="usdaex"){return true}else{return false}}function alertCustomRegionIsTooSmall(type){var text="";if(type)text="Your custom region is too small to aggregate by "+type.getPluralName()+". Please select a smaller geography from the list.";else text="Your custom region is too small to aggregate by any type of boundary.";addErrors(text)}function displayCompReportCityAndZip(place,td,total){place.getPlacesContaining(PPlaceType.CITY,null,null,function(cities){place.getPlacesContaining(PPlaceType.ZIP,null,null,function(zips){var city=cities[0];var val="";if(city)val=city.getLabel()+", ";for(var i=0;i<zips.length;i++){val+=zips[i].getLabel();if(i!=zips.length-1)val+=", "}$(td).html(val);currentReport.populateZipTableIndex++;if(currentReport.populateZipTableIndex==total){var table=$("<table />");$(table).addClass("HudReportTable cloneDistanceTable");$(table).attr({border:"1",frame:"void",rules:"all",cellpadding:"0",cellspacing:"0",borderColor:"#cfe6ad"});$(table).css({width:$(".HudReportTable").outerWidth()});var tbody=$("#areainfo").clone();$(table).append(tbody);$(".pageHeader").after(table)}})})}function displayCompReportPointPolygonAttributes(markers){if(markers.length>0){jQuery("#areasummary").show();for(var i=0;i<markers.length;++i){var attributes=markers[i].getAttributes();var tabIndex;var tabLength=markers[i].customTabLength;var divArr=[];var strayAttr=[];var table=document.createElement("table");table.className="HudAttributeTable";var row=$("<tr />");var title=$("<th />");title.html("NSP Investments");var values=$("<th />");$(values).html("As of ");$(values).append(getCurrentDate());$(row).append(title);$(row).append(values);$(table).append(row);for(var j=0;j<attributes.length;++j){var attribute=attributes[j];if(attribute.name&&attribute.value!=""&&attribute.value!="null"||attribute.value=="0"){addAttributeToDetailsSectionCompReport(attribute,table)}}jQuery("#areasummary").append(table)}var divider=document.createElement("div");divider.className="divider";jQuery("#areasummary").append(divider)}else{jQuery("#areasummary").hide()}}function addAttributeToDetailsSectionCompReport(attribute,table){var formattedValue;if(attribute.value==-9999||attribute.value==-999999){formattedValue="N/A"}else if(attribute.unit){formattedValue=PWebUtil.formatNumber(attribute.value,attribute.unit)}else{formattedValue=attribute.value}if(typeof formattedValue=="string"&&formattedValue.match("http://"))formattedValue="<a href='"+formattedValue+"' target='new' style='color:#5D83D0;text-decoration:underline;'>"+formattedValue+"</a>";var row=document.createElement("tr");var name=document.createElement("td");$(name).addClass("hudattributename");jQuery(name).html(attribute.name);var value=document.createElement("td");$(value).addClass("hudattributevalue");jQuery(value).html(formattedValue);jQuery(row).append(name);jQuery(row).append(value);jQuery(table).append(row)}function populateCensusAggregatesNote(pls1,pls2,omit2000){var na="<b>N/A</b>";var d=$("#censusAggregatesNote");d.html("For custom areas, such as radii, custom regions, school districts, and political districts, Census ACS data was calculated by summing the following component ");if(omit2000==null||omit2000!==true){if(pls1&&pls1.length>0){var placeType=formatAggregatePlaceType(pls1[0].getType().getName())[0];var placeNames=getAggregatedPlaceNames(pls1);var namesText=": <b>"+placeNames+"</b>"}else{var placeType=na;var namesText=""}d.append(placeType+" in 2000"+namesText+", and the following component ")}if(pls2&&pls2.length>0){var placeType=formatAggregatePlaceType(pls2[0].getType().getName())[0];var placeNames=getAggregatedPlaceNames(pls2);var namesText=": <b>"+placeNames+"</b>"}else{var placeType=na;var namesText=""}d.append(placeType+" in "+P.constants.latestACSPeriod+namesText);d.append(".")}function populateOneToOneReportNote(pplace,cube,pls1,pls2){if(!pplace||pplace.isCustomOrPoly()){return}var typeid=pplace.getType().id;var dAggs=cube.definitionAggs;if(!dAggs[typeid]){return}var oneToOne=dAggs[typeid].oneToOnePlace;if(!oneToOne){return}if(pls1.length==1&&pls2.length==1&&pplace.id==pls1[0].id&&oneToOne.getLabel()!=pplace.getLabel()){var year1=boundaryMatrix.getDisplayYearForDefinitionId(pplace.getDefinitionId());var year2=boundaryMatrix.getDisplayYearForDefinitionId(oneToOne.getDefinitionId());var text="The "+pplace.getType().getName()+" being used in this report (<b>"+pplace.getLabel()+"</b>) ("+year1+") is equivalent to <b>"+oneToOne.getLabel()+"</b> in "+year2+".";$("#fipsNote").html(text)}}function reportSumMultipleSums(arr){var nullCount=0;var value=0;for(var i=0;i<arr.length;i++){if(arr[i]==null){nullCount++}value=value+arr[i]}if(nullCount==arr.length){value=null}return value}function areStepPlacesNeeded(place){var ret=true;var t=[PPlaceType.COUNTY,PPlaceType.STATE];for(var i=0;i<t.length;i++){if(place.getType()==t.type){ret=false;break}}return ret}function isUniversalDefinitionId(defid){var ret=false;var ids=[50,176];for(var i=0;i<ids.length;i++){if(ids[i]==defid){ret=true;break}}return ret}function add2009ToIndicatorForHMDAReport(inds){for(var i=0;i<inds.length;i++){var ind=inds[i];var periods=ind.getPeriods();var did=ind.getSources()[0].datasetid;if((did==105050||did==131750)&&periods.indexOf("2009")==-1){ind.periods.unshift("2009");ind.periodids.unshift(10);ind.matrixIds.unshift(1)}}}function screenGrabPrint(){var element=document.createElement("ScreengrabElement");document.documentElement.appendChild(element);var evt=document.createEvent("Events");evt.initEvent("ScreengrabEvent",true,false);element.dispatchEvent(evt)}function getEmptyColumnsForTable(periods,has2009SplitColumns){var h="";for(var i=0;i<periods.length;i++){h+="<td></td>"}if(has2009SplitColumns){h+="<td></td>"}return h}function getPeriodLabelColumns(p,has2009SplitColumns){var h="";for(var i=0;i<p.length;i++){if(has2009SplitColumns&&p[i]==2009){h+="<th>2009Q1 - 2009Q3</th>";h+="<th>2009Q4</th>"}else{h+="<th>"+p[i].toString().toUpperCase()+"</th>"}}return h}function getQuarterStringFromPeriod(p){var l=p.length-1;var num=p.slice(l);return getOrdinal(num)}function printWellsFargoReport(){var obj={};obj.policymap={};var u=document.URL.replace("report_widget","reports")+"&print=true";var url={};var urls=[];url.url={location:u,delay:15};urls.push(url);obj.policymap={credentials:{id:1},parameters:{ty:"data",t:"prnt"},prnt:{urls:urls,orientation:"P",width:800,filename:"WellsFargoReport.pdf"}};if(PEnvironment.pageName!="report_widget"){genericAlertDialog({template:"report-wf",action:"save"})}var url=PEnvironment.dataServicesUrl+"?ty=data&t=prnt";var jsonStr=JSON.stringify(obj);$("#servicesJSON").val(jsonStr);$("#cbPrintForm").submit()}function isPhilaCustomGeography(boundarea){var philaCustomGeographies=[];philaCustomGeographies.push(PPlaceType.PHILA_NEIGHBORHOOD.getId());philaCustomGeographies.push(PPlaceType.CB_PLANNING.getId());philaCustomGeographies.push(PPlaceType.PHILA_RCO.getId());philaCustomGeographies.push(PPlaceType.PHILA_POLICE.getId());philaCustomGeographies.push(PPlaceType.PHILA_WARD.getId());philaCustomGeographies.push(PPlaceType.PHILA_CATCHMENT_ES.getId());try{var philaCurrentBoundaryType=boundarea.getType().getId()}catch(e){return false}if(philaCustomGeographies.indexOf(philaCurrentBoundaryType)==-1){return false}return true}function reportWidgetOnLoad(){if(currentReport.typeId==3&&$(".template-report-content").length>0||currentReport.typeId!=3&&$(".ReportGeneratePageContent").length>0){$(".button_save").remove();reportGenerateOnLoad();if(P.WKPrint.isPrintPage()===true){}else if(getUrlParams().type!=="wf_demographic"){$("#areasummary").parent().prepend('<a onclick="printWidgetReport()"><div id="printreport" class="print-report-button"></div></a>');$(".reporttext").next().next().after('<a onclick="printWidgetReport()"><div id="printreport" class="print-report-button"></div></a>')}}else{console.log("here is the problem")}}function handleNotificationPrint(response){if($.isArray(response)&&response.length>1){var code=response[0];if(code==307){setWindowLocation(response[1],false)}else if(code==202){var content="<div class='alertDialogTitle'>"+response[1]+"</div><div class='alertDialogHR'></div><div class='alertDialogHeader'><b>Note:</b> You may need to pan the map prior to printing to show all map elements.</div>";if(isFurman()){content="<div className='alertDialogTitle'>"+response[1]+"</div>"}alerter.popup(content)}else{alerter.popup("There was an error processing the request")}}}function printWidgetReport(){if(currentReport.reportType=="mn1"||currentReport.reportType=="mn2"){P.instances.wkprint.setFileName("Minnesota Housing Finance Agency Report - "+$(".reportname").text()+" - ",true);P.instances.wkprint.setOrientation(P.WKPrint.PORTRAIT);P.instances.wkprint.setPrintCallback(handleNotificationPrint);P.instances.wkprint.printThisPage();return}else if(currentReport.reportType=="hud"){P.instances.wkprint.setFileName("NSP Neighborhood Change Report - "+$("div.HudNICName").text()+" - ",true);P.instances.wkprint.setOrientation(P.WKPrint.PORTRAIT);P.instances.wkprint.setPrintCallback(handleNotificationPrint);P.instances.wkprint.printThisPage();return}if(ajax.activeRequests){alerter.popup("Please wait until the report finishes loading before printing.","OK");return}var template;if(isCompTypeReport()){template="WidgetHudReportPage"}else{template="WidgetReportPage"}var parms="http://"+template+"/?html="+encodeURIComponent("<html>"+document.body.parentNode.innerHTML+"</html>");var mapParms="lat="+encodeURIComponent(map.getCenter().lat());mapParms+="&long="+encodeURIComponent(map.getCenter().lng());mapParms+="&scale="+encodeURIComponent(map.getScale());mapParms+="&imgwidth="+encodeURIComponent($("#map").width());mapParms+="&imgheight="+encodeURIComponent($("#map").height());var mapLayers=map.getCurrentMapType().getMapLayers();if(mapLayers!=null&&mapLayers.length>0){mapParms+="&layers=";var layerCount=0;for(var i=0;i<mapLayers.length;i++){var curLayer=mapLayers[i];if(curLayer.display){mapParms+=encodeURIComponent(curLayer.name+",");layerCount++}}if(layerCount>0){mapParms=mapParms.slice(0,-3)}}var getParms=getUrlParams();if(getParms.cpid){mapParms+="&cpid="+getParms.cpid}else{if(getParms.area=="polygon"||getParms.area=="pradius"){mapParms+="&bid="+getParms.bid+"&pname="+encodeURIComponent(getParms.name)+"&plat="+getParms.plat+"&plng="+getParms.plng}if(getParms.pid||getParms.radius&&getParms.location){var boundary=new Array(new Object);if(getParms.pid){mapParms+="&ps=";boundary[0].id=getParms.pid}else if(getParms.radius&&getParms.location){mapParms+="&rs=";var locPoint=new PMarker(map.radiuscenter).getPoint();boundary[0].radius=getParms.radius;boundary[0].lat=locPoint.lat();boundary[0].lng=locPoint.lng()}boundary[0].f=new Object;boundary[0].f.r=243;boundary[0].f.g=161;boundary[0].f.b=46;boundary[0].f.a=178;mapParms+=encodeURIComponent(MochiKit.Base.serializeJSON(boundary))}}parms+="&mparms="+encodeURIComponent(mapParms);if(isCompTypeReport()){parms+="&hudparms="+encodeURIComponent(currentReport.hudmaps)}$("#widgetprint").attr("action",PEnvironment.widgetPrintUrl+"&sid="+PEnvironment.productId);$("#p_act").val("print");$("#p_type").val("pdf");$("#p_template").val(template);$("#p_parms").val(parms);$("#p_reporttype").val(currentReport.reportType);$("#widgetprint").submit()}var SearchForm=function($form,$formElements,eventManager,options){this.$form=$form;this.formElements=$formElements||[];this.eventManager=eventManager;this.options=options||{};this.$fluidWidthElement;this.errorMessages=[];if(!this.options.formWidth||!_.isNumber(this.options.formWidth)){if(this.options.noDataSearch){this.options.formWidth=600}else{this.options.formWidth=520}}};SearchForm.prototype.bindEvents=function(){this.bindResizeEvent()};SearchForm.prototype.show=function(){var promises=[];var self=this;$.each(this.formElements,function(key,$elem){if($elem.is("select")){promises.push($elem.next().show().promise())}else{promises.push($elem.show().promise())}});$.when.apply(self,promises).done($.proxy(self.updateFormElementStyles,self),$.proxy(self.updateWidthOfFluidElement,self))};SearchForm.prototype.bindResizeEvent=function(){this.$form.width(this.options.formWidth);$(window).resize($.proxy(this.updateWidthOfFluidElement,this))};SearchForm.prototype.hide=function(){$.each(this.formElements,function(key,$elem){if($elem.is("select")){$elem.next().hide()}else{$elem.hide()}})};SearchForm.prototype.destroy=function(){$(window).off("resize",this.bindResizeEvent);$.each(this.formElements,function(key,$elem){if($elem.is("select")){$elem.off("change")}else{$elem.off()}});this.hide()};SearchForm.prototype.isValid=function(){$.each(this.formElements,function(key,$elem){if($elem.is("input:text")&&$elem.val().replace(/^\s+|\s+$/g)===""||$elem.val()==="0"||$elem.val()===""){return false}});return true};SearchForm.prototype.resetChosenWidth=function($dropdown){var $chosenDropdown=$dropdown.next();$chosenDropdown.css("width","auto");var $chosenContents=$chosenDropdown.find(".chosen-drop");$chosenContents.width(Math.max($chosenDropdown.width(),220))};SearchForm.prototype.updateFormElementStyles=function(){var $typesDropdownChosen=this.$form.find(".search-form__type:eq(1)");var $textboxSubmit=this.$form.find(".textbox-search-submit");var firstIsDropdown=false;var lastIsDropdown=false;if(this.formElements!=null){var numFormElements=this.formElements.length;for(var i=0;i<numFormElements;i++){if(this.formElements[i].is("select")){if(i==0){firstIsDropdown=true}if(i==numFormElements-1){lastIsDropdown=true}}}}if(this.typeDropdownAlwaysGray()){if(firstIsDropdown){$typesDropdownChosen.children(".chosen-single").removeClass("right-border")}else{$typesDropdownChosen.children(".chosen-single").addClass("right-border")}$typesDropdownChosen.children(".chosen-single").addClass("gray-background")}else{if(firstIsDropdown){$typesDropdownChosen.children(".chosen-single").addClass("gray-background")}else{$typesDropdownChosen.children(".chosen-single").removeClass("gray-background")}$typesDropdownChosen.children(".chosen-single").removeClass("right-border")}if(lastIsDropdown){$textboxSubmit.addClass("gray-background")}else{$textboxSubmit.removeClass("gray-background")}};SearchForm.prototype.updateWidthOfFluidElement=function(){if(this.$fluidWidthElement==null){return}var $fluidElement=this.$fluidWidthElement.is("select")?this.$fluidWidthElement.next():this.$fluidWidthElement;var totalUsed=0;var visibleElements=this.$form.children(":visible");for(var i=0;i<visibleElements.length;i++){var $curElement=$(visibleElements[i]);if(!$curElement.is($fluidElement)){totalUsed+=$curElement.outerWidth()}if($curElement.hasClass("chosen-container")){if(this.$form.attr("id")=="export-search-form"){totalUsed+=1}else{totalUsed+=3}}}if($fluidElement.is("input")){totalUsed+=50}var fluidWidth=this.$form.innerWidth()-totalUsed;$fluidElement.width(fluidWidth);if($fluidElement.hasClass("chosen-container")){$fluidElement.children(".chosen-drop").width(fluidWidth)}};SearchForm.prototype.typeDropdownAlwaysGray=function(){return this.options.typeAlwaysGray===true||PEnvironment.isWidget||isCBClone()||PEnvironment.pageName=="reports"||PEnvironment.pageName=="dataloader"};SearchForm.prototype.submit=function(){if(this.$form!==undefined){this.$form.submit()}};SearchForm.prototype.displayAlert=function(text){alerter.popup(text,"OK")};SearchForm.prototype.getErrorMessages=function(){return this.errorMessages};SearchForm.prototype.getLastErrorMessage=function(){return this.errorMessages[this.errorMessages.length-1]};var SearchFormAutoComplete=function($form,typeId,$textbox,$stateDropdown,options){this.typeId=typeId;this.placeTypeCode;this.$textbox=$textbox;this.$stateDropdown=$stateDropdown;this.options={};if(options!=null){this.options=options}var self=this;var autoCompleteCache={};this.limitStates="";if(productProperty.exists("search_limit_states")){this.limitStates="&ls="+productProperty.getValue("search_limit_states")}this.placeTypeCodes={};this.placeTypeCodes[PPlaceType.STATE.id]="st";this.placeTypeCodes[PPlaceType.COUNTY.id]="co";this.placeTypeCodes[PPlaceType.COUNTY.id+"-"+PPlaceType.CITY.id]="cc";this.placeTypeCodes[PPlaceType.CITY.id]="c";this.placeTypeCodes[PPlaceType.COUNTY_SUBDIVISION.id]="cs";this.placeTypeCodes[PPlaceType.SCHOOL.id]="s";this.placeTypeCodes[PPlaceType.CENSUSTRACT.id]="ct";this.placeTypeCodes[PPlaceType.BLOCKGROUP.id]="bg";var placeTypeKey=$.isArray(this.typeId)?this.typeId.join("-"):this.typeId;if(this.placeTypeCodes[placeTypeKey]){this.placeTypeCode=this.placeTypeCodes[placeTypeKey]}else{this.placeTypeCode="p"}var appendTo="#header div";if(this.options.asAppendTo!=null){appendTo=this.options.asAppendTo}this.$textbox.autocomplete({position:{my:"left top",at:"left bottom",of:$form},source:function(request,response){self.$textbox.addClass("searchSpinner");var query=request.term;var placeState=self.placeTypeCode==="s"?"&sst="+self.$stateDropdown.children("option:selected").attr("title"):"";if(self.placeTypeCode=="p"){if(/^\d+.*\s/.test(query)){self.closeAutoComplete();self.$textbox.removeClass("searchSpinner");return}}var minLength=3;if(self.placeTypeCode=="ct"){minLength=10}else if(self.placeTypeCode=="bg"){minLength=11}if($.trim(query).length<minLength){self.$textbox.removeClass("searchSpinner");return}var queryCacheKey=query+"_"+placeState;if(queryCacheKey in autoCompleteCache){response(autoCompleteCache[queryCacheKey]);self.$textbox.removeClass("searchSpinner");return}ajax.call({url:PEnvironment.autosuggestUrl+"&act="+self.placeTypeCode+"&ss="+encodeURIComponent(query)+placeState+self.limitStates,dataType:"json",pleaseWait:false,success:function(r){self.$textbox.removeClass("searchSpinner");if(r&&r.ast&&r.ast.results){var astResults=r.ast.results;var limitDefinitions=productProperty.getValue("search_boundary_definition_ids");if(limitDefinitions!=false&&limitDefinitions.length>0){astResults=searchFormStripResultsByDefinition(astResults,limitDefinitions)}var results=[];for(var i=0;i<astResults.length;i++){results.push(new PMultiDefinitionBoundary(astResults[i]))}autoCompleteCache[queryCacheKey]=results;if(results.length==0){results.push({type:0,search:request.term})}response(results)}},error:function(){self.$textbox.removeClass("searchSpinner")}})},select:function(event,ui){if(_.contains(self.placeTypeCodes,self.placeTypeCode)||self.placeTypeCode=="p"){var item=ui.item;if(self.options.asSelect!=null){self.options.asSelect(item);return}if(item.type==null||item.type==0){return}if(PEnvironment.pageName=="reports"){self.$textbox.blur();if(item.typeId==1){reportLocationBarHandler("country","autosuggest");return}}var bid=item.getBoundaryIdForCurrentMatrix();if(bid!=null){if(PEnvironment.pageName=="reports"){reportLocationBarHandler(bid,"autosuggest")}else{selectPlace(bid,true)}}}else{$form.submit()}},appendTo:appendTo,open:function(){}});this.$textbox.autocomplete("instance")._renderMenu=function(ul,items){var that=this;ul.addClass("searchdropdown locationsearch");if(PEnvironment.isWidget&&inIframe()){ul.addClass("in-iframe")}$.each(items,function(index,item){that._renderItemData(ul,item)})};this.$textbox.autocomplete("instance")._renderItem=function(ul,item){if(item.type==0){$li=$("<li/>");$li.addClass("noresults");var $msg=$("<div/>");$msg.addClass("noresults");$msg.html('Location "'+item.search+'" not found. For help finding your location, <a href="/?page_id=22256" target="_blank">click here</a>.');$li.append($msg);ul.append($li);return $li}var yearString=item.getYearsAsString();if(yearString!=""){yearString+=" boundary"}var $li=$("<li/>");$li.addClass("locationSearch");if(isCBClone()||isWidgetPage()){$li.addClass("no-color")}var $container=$("<div/>");$container.addClass("searchContainer");$li.append($container);var $iconHolder=$("<span/>");$iconHolder.addClass("iconHolder");$container.append($iconHolder);var $icon=$("<img/>");$icon.attr("src","/images/a_pixel.gif").addClass("locationicon").width("24px").height("15px");$iconHolder.append($icon);var $labelHolder=$("<span/>");$labelHolder.addClass("labelHolder");$container.append($labelHolder);$labelHolder.text(item.value);var $locationTypeHolder=$("<span/>");$locationTypeHolder.addClass("locationTypeHolder");$container.append($locationTypeHolder);$locationTypeHolder.text("("+item.getType().getCustomDisplayName()+")");var $boundaryMatrixHolder=$("<span/>");$boundaryMatrixHolder.addClass("boundaryMatrixHolder");$container.append($boundaryMatrixHolder);$boundaryMatrixHolder.text(yearString);ul.append($li);return $li};if(isWidgetPage()){this.$textbox.autocomplete("instance")._resizeMenu=function(){var ul=this.menu.element;ul.outerWidth(self.$textbox.parents("form").outerWidth())}}this.$textbox.autocomplete("widget").removeClass("ui-corner-all").addClass("ui-corner-bottom");this.closeAutoComplete=function(){self.$textbox.autocomplete("close")};$(window).resize(this.closeAutoComplete);this.clearCache=function(){autoCompleteCache={}};this.destroy=function(){$(window).off("resize",self.closeAutoComplete);this.$textbox.autocomplete("destroy")}};var SearchFormBuilder=function(){};SearchFormBuilder.prototype.makeForm=function(typeid,$form,formElements,eventManager,options){var self=this;var defaultState=options.defaultState;var form;if(!typeid||typeid=="location"){form=new LocationSearch($form,formElements.$textbox,eventManager,options);return form}var typeid=parseInt(typeid,10);var ptype=boundaryTypes.getTypeById(typeid);if(ptype==null){throw"Place type id "+typeid+" not found."}if(ptype==PPlaceType.CENSUSTRACT||ptype==PPlaceType.BLOCKGROUP){form=new FipsSearch($form,typeid,formElements.$textbox,eventManager,options)}else if(ptype==PPlaceType.CONGRESSIONAL){form=new DoubleDropdownSearch($form,formElements.$firstDropdown,formElements.$secondDropdown,eventManager,options);this.populateDropdownWithStates(formElements.$firstDropdown,defaultState);formElements.$firstDropdown.change(function(){populateCongressionalDropdown();formElements.$firstDropdown.next().trigger("chosen:updated");form.updateWidthOfFluidElement()});var populateCongressionalDropdown=function(){var selectedOption=formElements.$firstDropdown.children("option:selected");var stateName=selectedOption.text();var stateAbbr=selectedOption.attr("title");placeLoader.loadCongressionalDistricts(stateAbbr,function(places){var $optionsArray=[];for(var i=0;i<places.length;i++){var $option=$("<option />");$option.val(places[i].id);$option.text(places[i].getLabel().replace(stateName+"'s ",""));$optionsArray.push($option)}self.populateDropdown(formElements.$secondDropdown,$optionsArray);form.eventManager.triggerEvent("dd_initialized",places)})
};populateCongressionalDropdown()}else if(ptype==PPlaceType.SENATE){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);placeLoader.loadType(PPlaceType.SENATE,PPlaceOrder.STATE_CANONICALNAME,function(places){var $optionsArray=[];var defaultSenator=null;for(var i=0;i<places.length;i++){var $option=$("<option />");$option.val(places[i].id);$option.text(places[i].getLabel());if(defaultSenator==null&&places[i].getState()===options.defaultState.abbreviation){defaultSenator=places[i].id}$optionsArray.push($option)}self.populateDropdown(formElements.$firstDropdown,$optionsArray,defaultSenator)})}else if(ptype==PPlaceType.SCHOOL){form=new SchoolSearch($form,formElements.$firstDropdown,formElements.$textbox,eventManager,options);this.populateDropdownWithStates(formElements.$firstDropdown,defaultState)}else if(ptype==PPlaceType.SLD_UPPER){form=new TripleDropdownSearch($form,formElements.$firstDropdown,formElements.$secondDropdown,formElements.$thirdDropdown,eventManager,options);this.populateDropdownWithStates(formElements.$firstDropdown,defaultState);this.populateDropdown(formElements.$secondDropdown,[$("<option value="+PPlaceType.SLD_UPPER.id+">Upper House</option>"),$("<option value="+PPlaceType.SLD_LOWER.id+">Lower House</option>")]);formElements.$firstDropdown.change(function(){populateStateDistrictDropdown();formElements.$firstDropdown.next().trigger("chosen:updated");form.updateWidthOfFluidElement()});formElements.$secondDropdown.change(function(){populateStateDistrictDropdown();formElements.$secondDropdown.next().trigger("chosen:updated");form.updateWidthOfFluidElement()});var populateStateDistrictDropdown=function(){var stateText=formElements.$firstDropdown.children("option:selected").text();var placeType=parseInt(formElements.$secondDropdown.val(),10)===PPlaceType.SLD_UPPER.id?PPlaceType.SLD_UPPER:PPlaceType.SLD_LOWER;geocoder.getPlace(stateText,function(stateplaces){var state=stateplaces[0];if(stateplaces.length>1){for(var j=0;j<stateplaces.length;j++){if(stateplaces[j].getLabel()===stateText&&stateplaces[j].country==="United States"){state=stateplaces[j]}}}state.getPlacesWithin(placeType,null,null,function(places){var $optionsArray=[];for(var i=0;i<places.length;i++){if(stateText==="Kansas"&&places[i].getState()==="AR"){continue}var $option=$("<option />");$option.val(places[i].id);$option.text(places[i].getLabel());$optionsArray.push($option)}self.populateDropdown(formElements.$thirdDropdown,$optionsArray);form.eventManager.triggerEvent("dd_initialized",places)},5,205,PPlaceOrder.IDENTIFIER,null,"id,label")},200,1,[PPlaceType.STATE])};populateStateDistrictDropdown()}else if(ptype==PPlaceType.CBSA){form=new DoubleDropdownSearch($form,formElements.$firstDropdown,formElements.$secondDropdown,eventManager,options);form.submit=function(){var pmdb=this.$secondDropdown.find("option:selected").data("pmdb");var bid=pmdb.getBoundaryIdForCurrentMatrix();var self=this;placeLoader.load([bid],function(places){self.eventManager.triggerEvent("response",places,self)})};this.populateDropdownWithStates(formElements.$firstDropdown,defaultState);formElements.$firstDropdown.change(function(){populateCBSADropdown();formElements.$firstDropdown.next().trigger("chosen:updated");form.updateWidthOfFluidElement()});var populateCBSADropdown=function(){actuallyPopulateDropdown=function(cbsas,metros){var limitDefinitions=productProperty.getValue("search_boundary_definition_ids");if(limitDefinitions!=false&&limitDefinitions.length>0){cbsas=searchFormStripResultsByDefinition(cbsas,limitDefinitions);metros=searchFormStripResultsByDefinition(metros,limitDefinitions)}var $optionsArray=[];var $optGroup=$("<optgroup />");var $option;$optGroup.attr("label","CBSAs");$optionsArray.push($optGroup);for(var i=0;i<cbsas.length;i++){var pmdb=new PMultiDefinitionBoundary(cbsas[i]);$option=$("<option />");$option.data("pmdb",pmdb);$option.text(pmdb.name+" ("+pmdb.getYearsAsString()+")");$optGroup.append($option)}if(metros.length>0){$optGroup=$("<optgroup />");$optGroup.attr("label","Metro Divisions");$optionsArray.push($optGroup);for(i=0;i<metros.length;i++){var pmdb=new PMultiDefinitionBoundary(metros[i]);$option=$("<option />");$option.data("pmdb",pmdb);$option.text(pmdb.name+" ("+pmdb.getYearsAsString()+")");$optGroup.append($option)}}self.populateDropdown(formElements.$secondDropdown,$optionsArray);var places=cbsas.concat(metros);form.eventManager.triggerEvent("dd_initialized",places)};var stateAbbr=formElements.$firstDropdown.children("option:selected").attr("title");var limitMetroArea=productProperty.getValue("limit_search_metro_area");var cbsaOnly=limitMetroArea==P.constants.limitMetroAreaCBSA;var mdOnly=limitMetroArea==P.constants.limitMetroAreaMD;if(stateAbbr=="DC"){var cbsas=[];var metros=[];if(mdOnly!==true){cbsas=[{name:"Washington-Arlington-Alexandria, DC-VA-MD-WV Metro Area",typeId:58,bounds:[{bid:2066104,defId:105,year:"2003"},{bid:3579094,defId:125,year:"2013"}]}]}if(cbsaOnly!==true){metros=[{name:"Washington-Arlington-Alexandria, DC-VA-MD-WV Metro Division",typeId:60,bounds:[{bid:2066170,defId:107,year:"2003"},{bid:3580037,defId:127,year:"2013"}]}]}actuallyPopulateDropdown(cbsas,metros)}else{var cbsas=mdOnly===true?[]:null;var metros=cbsaOnly===true?[]:null;var checkFinished=function(){if(cbsas!=null&&metros!=null){actuallyPopulateDropdown(cbsas,metros)}};if(mdOnly!==true){placeLoader.loadStateAllType(stateAbbr,PPlaceType.CBSA,function(places){cbsas=places;checkFinished()})}if(cbsaOnly!==true){placeLoader.loadStateAllType(stateAbbr,PPlaceType.MD,function(places){metros=places;checkFinished()})}}};populateCBSADropdown()}else if(ptype==PPlaceType.STATE||ptype==PPlaceType.COUNTY||ptype==PPlaceType.COUNTY_SUBDIVISION||ptype==PPlaceType.CITY){var customLabels={};if(productProperty.exists("search_boundary_type_custom_labels")){customLabels=productProperty.getValue("search_boundary_type_custom_labels")}var placeholder="Enter "+(customLabels[ptype.id]||ptype.name||ptype.display_name);form=new LocationSearch($form,formElements.$textbox,eventManager,options,[ptype],placeholder)}else if(ptype==PPlaceType.CB_COUNCIL){form=new DoubleDropdownSearch($form,formElements.$firstDropdown,formElements.$secondDropdown,eventManager,options);this.populateDropdown(formElements.$firstDropdown,[$("<option value="+PPlaceType.CB_COUNCIL.id+">2000</option>"),$("<option value="+PPlaceType.CB_COUNCIL_2016.id+">2016</option>")]);formElements.$firstDropdown.change(function(){populateCouncilDistricts();formElements.$firstDropdown.next().trigger("chosen:updated");form.updateWidthOfFluidElement()});var populateCouncilDistricts=function(){var districtType=getPlaceTypeById(formElements.$firstDropdown.children("option:selected").val());self.populateDropdownWithType(districtType,PPlaceOrder.CAST_IDENTIFIER,formElements.$secondDropdown)};populateCouncilDistricts()}else if(ptype==PPlaceType.PHILA_NEIGHBORHOOD){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.PHILA_NEIGHBORHOOD,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.CB_PLANNING){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.CB_PLANNING,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.PHILA_RCO){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.PHILA_RCO,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.PHILA_POLICE){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.PHILA_POLICE,PPlaceOrder.CAST_IDENTIFIER,formElements.$firstDropdown)}else if(ptype==PPlaceType.PHILA_WARD){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.PHILA_WARD,PPlaceOrder.CAST_IDENTIFIER,formElements.$firstDropdown)}else if(ptype==PPlaceType.PHILA_CATCHMENT_ES){form=new DoubleDropdownSearch($form,formElements.$firstDropdown,formElements.$secondDropdown,eventManager,options);this.populateDropdown(formElements.$firstDropdown,[$("<option value="+PPlaceType.PHILA_CATCHMENT_ES.id+">Elementary School</option>"),$("<option value="+PPlaceType.PHILA_CATCHMENT_MS.id+">Middle School</option>"),$("<option value="+PPlaceType.PHILA_CATCHMENT_HS.id+">High School</option>")]);formElements.$firstDropdown.change(function(){populateSchoolCatchmentAreas();formElements.$firstDropdown.next().trigger("chosen:updated");form.updateWidthOfFluidElement()});var populateSchoolCatchmentAreas=function(){var catchmentType=getPlaceTypeById(formElements.$firstDropdown.children("option:selected").val());self.populateDropdownWithType(catchmentType,PPlaceOrder.CANONICALNAME,formElements.$secondDropdown)};populateSchoolCatchmentAreas()}else if(ptype==PPlaceType.WP_ZIP){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.WP_ZIP,PPlaceOrder.CAST_IDENTIFIER,formElements.$firstDropdown)}else if(ptype==PPlaceType.AW_NEIGHBORHOOD){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.AW_NEIGHBORHOOD,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.NWK_ZIP){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.NWK_ZIP,PPlaceOrder.CAST_IDENTIFIER,formElements.$firstDropdown)}else if(ptype==PPlaceType.NWK_NEIGHBORHOOD){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.NWK_NEIGHBORHOOD,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.NWK_WARD){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.NWK_WARD,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.MEMPHIS_HC){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.MEMPHIS_HC,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.MEMPHIS_NEIGHBORHOOD){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.MEMPHIS_NEIGHBORHOOD,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.MEMPHIS_PRECINCT){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.MEMPHIS_PRECINCT,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.ATL_NPU){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.ATL_NPU,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.MEMPHIS_CLEAN){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.MEMPHIS_CLEAN,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.DC_NHOOD_CLUSTERS){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.DC_NHOOD_CLUSTERS,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.DC_PSA){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.DC_PSA,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.DC_ATTENDANCE_PRIMARY){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.DC_ATTENDANCE_PRIMARY,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else if(ptype==PPlaceType.DALLAS_CITYLIMIT){form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(PPlaceType.DALLAS_CITYLIMIT,PPlaceOrder.CANONICALNAME,formElements.$firstDropdown)}else{form=new SingleDropdownSearch($form,formElements.$firstDropdown,eventManager,options);this.populateDropdownWithType(ptype,PPlaceOrder.CAST_IDENTIFIER,formElements.$firstDropdown)}return form};SearchFormBuilder.prototype.populateDropdown=function($dropdown,$optionsArray,defaultValue){$dropdown.empty();$dropdown.append($optionsArray);if(defaultValue!=null){$dropdown.val(defaultValue)}$dropdown.trigger("chosen:updated")};SearchFormBuilder.prototype.populateDropdownWithType=function(placeType,placeOrder,$dropdown,defaultValue){var self=this;placeLoader.loadType(placeType,placeOrder,function(places){var $optionsArray=[];for(var i=0;i<places.length;i++){var $option=$("<option />");$option.val(places[i].id);$option.text(places[i].getLabel());$optionsArray.push($option)}self.populateDropdown($dropdown,$optionsArray,defaultValue)})};SearchFormBuilder.prototype.populateDropdownWithStates=function($dropdown,defaultState){this.populateDropdown($dropdown,searchStates.getOptions(),defaultState.id)};function searchFormStripResultsByDefinition(results,definitionIds){var newResults=$.extend(true,[],results);for(var i=0;i<newResults.length;i++){newResults[i].bounds=_.filter(newResults[i].bounds,function(bound){return _.contains(definitionIds,bound.defId)})}newResults=_.filter(newResults,function(result){return result.bounds.length>0});return newResults}var SearchStates=function(){this.states=[{name:"Alabama",id:1,abbreviation:"AL"},{name:"Alaska",id:2,abbreviation:"AK"},{name:"Arizona",id:4,abbreviation:"AZ"},{name:"Arkansas",id:5,abbreviation:"AR"},{name:"California",id:6,abbreviation:"CA"},{name:"Colorado",id:8,abbreviation:"CO"},{name:"Connecticut",id:9,abbreviation:"CT"},{name:"Delaware",id:10,abbreviation:"DE"},{name:"District of Columbia",id:11,abbreviation:"DC"},{name:"Florida",id:12,abbreviation:"FL"},{name:"Georgia",id:13,abbreviation:"GA"},{name:"Hawaii",id:15,abbreviation:"HI"},{name:"Idaho",id:16,abbreviation:"ID"},{name:"Illinois",id:17,abbreviation:"IL"},{name:"Indiana",id:18,abbreviation:"IN"},{name:"Iowa",id:19,abbreviation:"IA"},{name:"Kansas",id:20,abbreviation:"KS"},{name:"Kentucky",id:21,abbreviation:"KY"},{name:"Louisiana",id:22,abbreviation:"LA"},{name:"Maine",id:23,abbreviation:"ME"},{name:"Maryland",id:24,abbreviation:"MD"},{name:"Massachusetts",id:25,abbreviation:"MA"},{name:"Michigan",id:26,abbreviation:"MI"},{name:"Minnesota",id:27,abbreviation:"MN"},{name:"Mississippi",id:28,abbreviation:"MS"},{name:"Missouri",id:29,abbreviation:"MO"},{name:"Montana",id:30,abbreviation:"MT"},{name:"Nebraska",id:31,abbreviation:"NE"},{name:"Nevada",id:32,abbreviation:"NV"},{name:"New Hampshire",id:33,abbreviation:"NH"},{name:"New Jersey",id:34,abbreviation:"NJ"},{name:"New Mexico",id:35,abbreviation:"NM"},{name:"New York",id:36,abbreviation:"NY"},{name:"North Carolina",id:37,abbreviation:"NC"},{name:"North Dakota",id:38,abbreviation:"ND"},{name:"Ohio",id:39,abbreviation:"OH"},{name:"Oklahoma",id:40,abbreviation:"OK"},{name:"Oregon",id:41,abbreviation:"OR"},{name:"Pennsylvania",id:42,abbreviation:"PA"},{name:"Puerto Rico",id:72,abbreviation:"PR"},{name:"Rhode Island",id:44,abbreviation:"RI"},{name:"South Carolina",id:45,abbreviation:"SC"},{name:"South Dakota",id:46,abbreviation:"SD"},{name:"Tennessee",id:47,abbreviation:"TN"},{name:"Texas",id:48,abbreviation:"TX"},{name:"Utah",id:49,abbreviation:"UT"},{name:"Vermont",id:50,abbreviation:"VT"},{name:"Virginia",id:51,abbreviation:"VA"},{name:"Washington",id:53,abbreviation:"WA"},{name:"West Virginia",id:54,abbreviation:"WV"},{name:"Wisconsin",id:55,abbreviation:"WI"},{name:"Wyoming",id:56,abbreviation:"WY"}];this.stateOptions=null};SearchStates.prototype.getByFIPS=function(fips){return _.find(this.states,function(curState){return curState.id==fips})};SearchStates.prototype.getByAbbreviation=function(abbreviation){return _.find(this.states,function(curState){return curState.abbreviation==abbreviation})};SearchStates.prototype.getOptions=function(){if(this.stateOptions==null){var self=this;this.stateOptions=[];limitStates=null;if(productProperty.exists("search_limit_states")){limitStates=productProperty.getValue("search_limit_states").split(",");_.each(limitStates,function(stateAbbr,i){limitStates[i]=stateAbbr.toLowerCase()})}_.each(this.states,function(state){if(limitStates==null||$.inArray(state.abbreviation.toLowerCase(),limitStates)!=-1){var $option=$("<option />");$option.val(state.id);$option.attr("title",state.abbreviation);$option.text(state.name);self.stateOptions.push($option)}})}return this.stateOptions};var DoubleDropdownSearch=function($form,$firstDropdown,$secondDropdown,eventManager,options){SearchForm.call(this,$form,[$firstDropdown,$secondDropdown],eventManager,options);var self=this;this.$firstDropdown=$firstDropdown;this.$secondDropdown=$secondDropdown;if(options.noFluid!==true){this.$fluidWidthElement=this.$secondDropdown}this.resetChosenWidth($firstDropdown);this.resetChosenWidth($secondDropdown);$firstDropdown.empty();$firstDropdown.trigger("chosen:updated");$secondDropdown.empty();$secondDropdown.trigger("chosen:updated");this.bindEvents();this.submit=function(){placeLoader.load([self.$secondDropdown.val()],function(places){self.eventManager.triggerEvent("response",places,self)})};if(!options.noAutoSubmit){$secondDropdown.change(function(){self.submit()})}};DoubleDropdownSearch.prototype=new SearchForm;var FipsSearch=function($form,typeId,$textbox,eventManager,options){SearchForm.call(this,$form,[$textbox],eventManager,options);var self=this;this.typeId=parseInt(typeId,10);this.$textbox=$textbox;this.$textbox.val("");if(options.placeholderFips){this.placeholder=options.placeholderFips}else{this.placeholder=this.typeId===PPlaceType.CENSUSTRACT.id?"Enter full FIPS code of census tract":"Enter full FIPS code of block group"}this.$textbox.attr("placeholder",this.placeholder);if(options.noFluid!==true){this.$fluidWidthElement=this.$textbox}var autoComplete=null;if(options.noAutoComplete!==true){autoComplete=new SearchFormAutoComplete($form,this.typeId,this.$textbox,null,options)}this.bindEvents();this.show();this.isValid=function(){var isValid=true;var query=this.$textbox.val();if(this.typeId===PPlaceType.CENSUSTRACT.id&&query.length!==11){this.errorMessages.push("FIPS ID is too short.  Expected length 11, got:"+query.length);isValid=false}else if(this.typeId===PPlaceType.BLOCKGROUP.id&&query.length!==12){this.errorMessages.push("FIPS ID is too short.  Expected length 12, got:"+query.length);isValid=false}if(isNaN(parseInt(query,10))){this.errorMessages.push("FIPS ID is not numeric");isValid=false}return isValid};this.submit=function(){var definitions=getBoundaryMatrixDefinitionIds(this.typeId);var query=self.$textbox.val();if(definitions.length>=1){submitFipsQuery(query,definitions)}else{self.displayAlert("Unable to perform FIPS search.")}};function submitFipsQuery(query,definitions){var callback=function(places){if(places.length>0){self.eventManager.triggerEvent("response",places,self)}else{fipsNotFoundAlert(query)}};placeLoader.loadFIPS(query,definitions,{ord:1},callback)}function fipsNotFoundAlert(query){self.displayAlert('Location "<b>'+query+"</b>\" was not found. For help finding census tracts and block groups, <a class='pagelinks' href='"+PEnvironment.blogUrl+"?p=3580' target='_blank'>click here</a>.")}function getBoundaryMatrixDefinitionIds(typeId){var definitionIds=[];var matrixIds=boundaryMatrix.getMatrixOrder(true);var addedDefs=[];for(var i=0;i<matrixIds.length;i++){try{var def=boundaryMatrix.getDefinitionIdForTypeId(typeId,matrixIds[i]);if(addedDefs[def]==null){definitionIds.push(def);addedDefs[def]=true}}catch(e){}}return definitionIds}this.destroy=function(){if(autoComplete!=null){autoComplete.destroy()}SearchForm.prototype.destroy.call(this)}};FipsSearch.prototype=new SearchForm;var LocationSearch=function($form,$textbox,eventManager,options,placeTypes,placeholder){SearchForm.call(this,$form,[$textbox],eventManager,options);var self=this;this.$textbox=$textbox;if(placeTypes!=null){this.placeTypes=placeTypes}else if(options.placeTypes){this.placeTypes=options.placeTypes}if(placeholder!=null){this.placeholder=placeholder}else if(options.placeholderLocation){this.placeholder=options.placeholderLocation}else{this.placeholder="Address, City, County, State, Zip";if(!isCBClone()&&!isWidgetPage()){this.placeholder+=", or Lat, Long"}}this.$textbox.attr("placeholder",this.placeholder);this.$textbox.val("");if(options.noFluid!==true){this.$fluidWidthElement=$textbox}var autoComplete=null;if(options.noAutoComplete!==true){var autoCompleteType=0;if(this.placeTypes&&$.isArray(this.placeTypes)){autoCompleteType=_.pluck(this.placeTypes,"id")}else if(productProperty.exists("search_location_boundary_types")){autoCompleteType=productProperty.getValue("search_location_boundary_types")}autoComplete=new SearchFormAutoComplete($form,autoCompleteType,this.$textbox,null,options)}this.bindEvents();this.show();this.submit=function(){var query=self.$textbox.val();var matches=/^(\-?\d+(\.\d+)?),\s*(\-?\d+(\.\d+)?)$/.exec(query);if(matches){var lat=parseFloat(matches[1]);var lng=parseFloat(matches[3]);if(lat>=90||lat<=-90||lng>=180||lng<=-180){self.displayAlert('"<b>'+query+'</b>" is not a valid latitude/longitude.');return}var address=new PAddress(lat+","+lng,lng,lat);self.eventManager.triggerEvent("response",address,self)}else{var placetypes;if(query.toLowerCase().indexOf(" county subdivision")!==-1){query=query.toLowerCase().replace(" county subdivision","");placetypes=[PPlaceType.COUNTY_SUBDIVISION]}else{if(self.placeTypes!=null){placetypes=self.placeTypes}else{placetypes=[PPlaceType.COUNTRY,PPlaceType.STATE,PPlaceType.COUNTY,PPlaceType.COUNTY_SUBDIVISION,PPlaceType.CITY,PPlaceType.ZIP]}}var o=P.CloneOptions;if(isCBClone()&&o.search_string_addon&&!/^[0-9]{5}$/.test(query)){var t=o.search_string_addon;var a=t.split(" ");if(query.toLowerCase().indexOf(a[0])==-1){query+=", "+t}else if(query.toLowerCase().indexOf(t)||query.toLowerCase().indexOf(a[0]+", "+a[1])){query+=", "+a[1]}}if(query.replace(/^\s+|\s+$/g,"")!==""){var limitDefinitionIds=productProperty.getValue("search_boundary_definition_ids");var definitionIds=null;if(limitDefinitionIds!=false&&limitDefinitionIds.length>0){definitionIds=_.filter(limitDefinitionIds,function(definitionId){var definitionTypeId=boundaryMatrix.getTypeIdForDefinitionId(definitionId);return _.find(placetypes,function(placeType){return placeType.getId()==definitionTypeId})!=null});if(definitionIds.length>0){placetypes=null}else{definitionIds=null}}geocoder.getPlace(query,function(places){if(places.length>0){if(autoComplete!=null){autoComplete.closeAutoComplete()}self.eventManager.triggerEvent("response",places,self)}else{geocoder.getLocations(query,function(address){self.eventManager.triggerEvent("response",address,self)})}},5,PPlaceOrder.POPULATION,placetypes,null,definitionIds,null,null,true)}}};this.changePlaceType=function(type){if(autoComplete!=null){if(type!=null){var typeId=type.getId();if(autoComplete.placeTypeCodes[typeId]){autoComplete.typeId=typeId;autoComplete.placeTypeCode=autoComplete.placeTypeCodes[typeId];this.placeTypes=[type]}else{return}}else{autoComplete.typeId=0;autoComplete.placeTypeCode="p";this.placeTypes=null}autoComplete.clearCache()}};this.destroy=function(){if(autoComplete!=null){autoComplete.destroy()}SearchForm.prototype.destroy.call(this)}};LocationSearch.prototype=new SearchForm;var SchoolSearch=function($form,$statesDropdown,$textbox,eventManager,options){SearchForm.call(this,$form,[$statesDropdown,$textbox],eventManager,options);var self=this;this.$statesDropdown=$statesDropdown;this.$statesDropdown.val(this.options.defaultState);this.$statesDropdown.trigger("chosen:updated");this.$textbox=$textbox;this.$textbox.val("");if(options.placeholderSchool){this.placeholder=options.placeholderSchool}else{this.placeholder='e.g., "Springfield Unified"'}this.$textbox.attr("placeholder",this.placeholder);if(options.noFluid!==true){this.$fluidWidthElement=this.$textbox}this.$statesDropdown.next().css("width","auto");var placeType=PPlaceType.SCHOOL;var autoComplete=null;if(options.noAutoComplete!==true){autoComplete=new SearchFormAutoComplete($form,placeType.id,this.$textbox,this.$statesDropdown,options)}this.bindEvents();this.show();this.$statesDropdown.change(function(){self.updateWidthOfFluidElement()});this.submit=function(){var stateText=this.$statesDropdown.children("option:selected").text();var query=self.$textbox.val()+", "+stateText;geocoder.getPlace(query,function(places){if(places.length>0){self.eventManager.triggerEvent("response",places,self)}else{var content='Location "<b>'+self.$textbox.val()+'</b>" not found.';alerter.popup(content,"OK")}},5,PPlaceOrder.POPULATION,placeType)};this.destroy=function(){if(autoComplete!=null){autoComplete.destroy()}SearchForm.prototype.destroy.call(this)}};SchoolSearch.prototype=new SearchForm;var SingleDropdownSearch=function($form,$dropdown,eventManager,options){SearchForm.call(this,$form,[$dropdown],eventManager,options);var self=this;this.$dropdown=$dropdown;if(options.noFluid!==true){this.$fluidWidthElement=this.$dropdown}this.resetChosenWidth($dropdown);$dropdown.empty();$dropdown.trigger("chosen:updated");this.bindEvents();this.submit=function(){placeLoader.load([this.$dropdown.val()],function(places){self.eventManager.triggerEvent("response",places,self)})};if(!options.noAutoSubmit){$dropdown.change(function(){self.submit()})}};SingleDropdownSearch.prototype=new SearchForm;var TripleDropdownSearch=function($form,$firstDropdown,$secondDropdown,$thirdDropdown,eventManager,options){SearchForm.call(this,$form,[$firstDropdown,$secondDropdown,$thirdDropdown],eventManager,options);var self=this;this.$firstDropdown=$firstDropdown;this.$secondDropdown=$secondDropdown;this.$thirdDropdown=$thirdDropdown;if(options.noFluid!==true){this.$fluidWidthElement=this.$thirdDropdown}this.resetChosenWidth($firstDropdown);this.resetChosenWidth($secondDropdown);this.resetChosenWidth($thirdDropdown);$firstDropdown.empty();$firstDropdown.trigger("chosen:updated");$secondDropdown.empty();$secondDropdown.trigger("chosen:updated");$thirdDropdown.empty();$thirdDropdown.trigger("chosen:updated");this.bindEvents();this.submit=function(){placeLoader.load([self.$thirdDropdown.val()],function(places){self.eventManager.triggerEvent("response",places,self)})};if(!options.noAutoSubmit){$thirdDropdown.change(function(){self.submit()})}};TripleDropdownSearch.prototype=new SearchForm;ShadeBy=function(o){$.extend(this,o)};ShadeBy.prototype.update=function(){};ShadeBy.prototype.clear=function(){};ShadeBy.prototype.hide=function(){};ShadeBy.prototype.show=function(){};ShareOptions=function(data){this.data=data;this.setType(PEnvironment.pageName);this.custombreaks=null;this.embedSizes={small:{width:560,height:450},medium:{width:768,height:532},large:{width:1280,height:720}};this.$container=$("<div />",{class:"share-container"});this.$tabs=$("<div />",{class:"tabs"});this.$container.append(this.$tabs);this.$contents=$("<div />",{class:"contents"});this.$container.append(this.$contents);this.$loading=$("<div />",{class:"loading"});var $spinner=$("<div />",{class:"spinner"});this.$loading.append($spinner);this.$container.append(this.$loading)};ShareOptions.prototype.start=function(){var self=this;alerter.close();if(!isRegisteredUser()){registerAlert();return}if(productProperty.getValue("disable_toolbar_share")){return}var checkLink=function(cb){self.custombreaks=cb;var modalProperties={body:self.$container,header:"Share",footer:false,size:"modal-sm"};if(isCBClone()){self.generateCloneLink();if(session.get("cp")){alerter.popup("Maps with custom areas cannot be shared.","OK")}else{modal.popup(modalProperties);initializeModal(self.checkAccess())}return}self.generateLink();linkManager.checkLink(self.link,function(status,na){var checkResults=self.checkAccess(na);if(typeof checkResults=="string"){alerter.popup(checkResults,"OK")}else{modal.popup(modalProperties);initializeModal(checkResults)}})};var initializeModal=function(checkResults){var populateModal=function(checkResults){if(checkResults.link!==false){if(typeof checkResults.link=="string"){self.addLinkOption(checkResults.link)}else{self.addLinkOption()}}if(checkResults.email!==false){if(typeof checkResults.email=="string"){self.addEmailOption(checkResults.email)}else{self.addEmailOption()}}if(self.getType()=="maps"&&checkResults.embed!==false){if(typeof checkResults.embed=="string"){self.addEmbedOption(checkResults.embed)}else{self.generateEmbedLink();self.addEmbedOption()}}if(self.getType()!="analytics"&&checkResults.social!==false){if(typeof checkResults.social=="string"){self.addSocialOption(checkResults.social)}else{self.addSocialOption()}}self.selectTab(0);replaceSVGs(".share-container .tabs .tab .icon");self.$loading.remove();self.$loading=null};if(PEnvironment.environment=="production"&&!(PEnvironment.isSiteLicense&&self.getType()=="analytics")){var imageURL=null;var imageType=null;if(self.getType()=="maps"){imageURL=ShortLink.getMapPreviewImageURL(map);if(imageURL!=null){imageType="png"}}var urlToShorten;if(PEnvironment.isSiteLicense&&!isCBClone()){urlToShorten=self.pmLinkUrl}else{urlToShorten=self.linkUrl}ShortLink.create(urlToShorten,self.link.fullName,null,imageURL,imageType,function(linkCode){if(linkCode!==false){if(PEnvironment.isSiteLicense&&!isCBClone()){self.pmLinkUrl="https://plcy.mp/"+linkCode}else{self.linkUrl="https://plcy.mp/"+linkCode}}populateModal(checkResults)})}else{populateModal(checkResults)}};saveCustomBreaks(checkLink)};ShareOptions.prototype.checkAccess=function(na){if(session.get("cp")){return"Maps with custom regions cannot be shared."}var allowed={link:true,email:true,embed:true,social:true};if(isCBClone()){allowed["embed"]=false;return allowed}var indicator=map.getIndicator();var pointsets=map.getOverlaySets(false,true);var layers=null;if(P.instances.map.mapOptions){layers=P.instances.map.mapOptions.getCurrentBoundaries()}var notPublicPM=[];var notPublicDL=[];var notDownloadablePM=[];var allDL=[];if(indicator!=null){if($.inArray(parseInt(indicator.getID()),na.pm.indicators)!=-1){notPublicPM.push(indicator.getFullLabel())}if(indicator.allowDL!=true){notDownloadablePM.push(indicator.getFullLabel())}}if(pointsets!=null&&pointsets.length>0){for(var i=0;i<pointsets.length;i++){var curPointset=pointsets[i];if(curPointset.type=="dl"){allDL.push(curPointset.name);if(curPointset.perm!=2){notPublicDL.push(curPointset.name)}}else{if($.inArray(parseInt(curPointset.id),na.pm.datasets)!=-1){notPublicPM.push(curPointset.name)}if(curPointset.allowDL!=true){notDownloadablePM.push(curPointset.name)}}}}if(layers!=null){for(var name in layers){var layer=pMapLayer.layersByName[name];if($.inArray(parseInt(layer.map_option_id),na.pm.layers)!=-1){notPublicPM.push(layer.getLabel())}}}if(PEnvironment.isPolicyMap){if(notPublicPM.length>0||notPublicDL.length>0){var message="";if(notPublicPM.length>0){message+="Maps containing certain data layers, point datasets, and map boundaries cannot be shared due to sharing and/or licensing restrictions. You will need to remove or replace the following data:<br /><ul>";for(var i=0;i<notPublicPM.length;i++){message+="<li>"+notPublicPM[i]+"</li>"}message+="</ul><br />"}if(notPublicDL.length>0){message+="Maps containing datasets created by the dataloader that are not public cannot be shared. You will need to remove or replace the following data:<br /><ul>";for(var i=0;i<notPublicDL.length;i++){message+="<li>"+notPublicDL[i]+"</li>"}message+="</ul>"}return message}if(notDownloadablePM.length>0){
var message="Maps containing certain data layers and point datasets cannot be embedded due to sharing and/or licensing restrictions. You will need to remove or replace the following data:<br /><ul>";for(var i=0;i<notDownloadablePM.length;i++){message+="<li>"+notDownloadablePM[i]+"</li>"}message+="</ul>";allowed["embed"]=message}return allowed}else{var notPublicSL=[];if(indicator!=null){if($.inArray(parseInt(indicator.getID()),na.sl.indicators)!=-1){notPublicSL.push(indicator.getFullLabel())}}if(pointsets!=null&&pointsets.length>0){for(var i=0;i<pointsets.length;i++){var curPointset=pointsets[i];if(curPointset.type=="old"&&$.inArray(parseInt(curPointset.id),na.sl.datasets)!=-1){notPublicSL.push(curPointset.name)}}}if(notPublicSL.length>0||notPublicDL.length>0){var message="";if(notPublicSL.length>0){message+="Maps containing certain data layers and point datasets cannot be shared. You will need to remove or replace the following data:<br /><ul>";for(var i=0;i<notPublicSL.length;i++){message+="<li>"+notPublicSL[i]+"</li>"}message+="</ul><br />"}if(notPublicDL.length>0){message+="Maps containing datasets created by the dataloader that are not public cannot be shared. You will need to remove or replace the following data:<br /><ul>";for(var i=0;i<notPublicDL.length;i++){message+="<li>"+notPublicDL[i]+"</li>"}message+="</ul>"}return message}if(notPublicPM.length>0){var message="Maps containing certain data layers and point datasets cannot be shared due to sharing and/or licensing restrictions. You will need to remove or replace the following data:<br /><ul>";for(var i=0;i<notPublicPM.length;i++){message+="<li>"+notPublicPM[i]+"</li>"}message+="</ul>";allowed["social"]=message}if(notPublicPM.length>0||notDownloadablePM.length>0){var notPublicPMandNotDownloadablePM=_.union(notPublicPM,notDownloadablePM);var message="Maps containing certain data layers and point datasets cannot be embedded due to sharing and/or licensing restrictions. You will need to remove or replace the following data:<br /><ul>";for(var i=0;i<notPublicPMandNotDownloadablePM.length;i++){message+="<li>"+notPublicPMandNotDownloadablePM[i]+"</li>"}message+="</ul>";allowed["embed"]=message}if(allDL.length>0){var messageEmbed="Maps containing datasets created by the dataloader in an enterprise license cannot be embedded. You will need to remove or replace the following data:<br /><ul>";var messageSocial="Maps containing datasets created by the dataloader in an enterprise license cannot be shared. You will need to remove or replace the following data:<br /><ul>";for(var i=0;i<allDL.length;i++){messageEmbed+="<li>"+allDL[i]+"</li>";messageSocial+="<li>"+allDL[i]+"</li>"}messageEmbed+="</ul>";messageSocial+="</ul>";if(allowed["embed"]==true){allowed["embed"]=messageEmbed}else if(typeof allowed["embed"]=="string"){allowed["embed"]+="<br />"+messageEmbed}if(allowed["social"]==true){allowed["social"]=messageSocial}else if(typeof allowed["social"]=="string"){allowed["social"]+="<br />"+messageSocial}}return allowed}};ShareOptions.prototype.addTab=function(opts,callbackOnOpen){var lowerLabel=opts.label.toLowerCase();var disableClass="";if(!isSubscriber()&&opts.label=="Embed"){disableClass="disabled"}var $t=$("<div />",{class:"tab tab--"+lowerLabel+" "+disableClass});var $i=$("<img />",{class:"icon",src:"/images/sharetool/"+lowerLabel+".svg"});var $text=$("<div />",{class:"text",html:opts.label});$t.append($i,$text);var self=this;$t.attr("type",opts.label);$t.click(function(){if(!isSubscriber()&&$(this).attr("type")=="Embed"){subscribeAlert();return}var tabs=self.$tabs.find(".tab");self.selectTab(self.$tabs.find(".tab").index($(this)));if(callbackOnOpen){self[callbackOnOpen]();callbackOnOpen=null}});this.$tabs.append($t)};ShareOptions.prototype.selectTab=function(index){this.$tabs.find(".tab").removeClass("selected");this.$contents.find(".content").removeClass("selected");this.$tabs.find(".tab").eq(index).addClass("selected");this.$contents.find(".content").eq(index).addClass("selected");this.hideCopyTooltip()};ShareOptions.prototype.addLinkOption=function(message){this.addTab({label:"Link"});var $c=$("<div />",{class:"content"});if(message!=null){$c.addClass("content-disabled");$c.html(message);this.$contents.append($c);return}var $p=$("<p />",{class:"text",html:"Copy and paste the following URL:"});$c.append($p);var t=this.getType();var url=this.linkUrl;var $input=$("<input />",{type:"text",value:url});$input.click(function(){this.select()});$c.append($input);var $button=this.getCopyButton($input);$c.append("<br /><br />",$button,'<br class="clear" /><br />');if(PEnvironment.isSiteLicense&&!isCBClone()){var $f=$("<div />",{class:"note recipient-note"});$f.text("All link recipients must have access to this enterprise license.");$c.append($f)}this.$contents.append($c)};ShareOptions.prototype.addEmailOption=function(message){this.addTab({label:"Email"});var $c=$("<div />",{class:"content"});if(message!=null){$c.addClass("content-disabled");$c.html(message);this.$contents.append($c);return}var userFrom=isAutoLoginUser();if(userFrom){var $fromDiv=$("<div />");var $fromSpan=$("<div/>",{class:"input-label",html:"From:"});var $fromInput=$("<input/>",{placeholder:"Enter name",type:"text",id:"fromInput","data-toggle":"tooltip","data-placement":"top",title:"Name is required"});$fromInput.bind("focus",function(){$fromInput.tooltip("hide")});$fromDiv.append($fromSpan,$fromInput);$c.append($fromDiv)}var emailTo=true;if(emailTo){var $emailToDiv=$("<div />");var $emailToSpan=$("<div/>",{class:"input-label",html:"Email to"});$emailToSpan.html("Email to:");$emailToDiv.append($emailToSpan);var $emailToInput=$("<input/>",{placeholder:"Enter email(s)",type:"text",id:"emailToInput","data-toggle":"tooltip","data-placement":"top",title:"Invalid email address"});$emailToInput.bind("focus",function(){$emailToInput.tooltip("hide")});$emailToDiv.append($emailToInput);var emailMultiTo=true;if(emailMultiTo){var $e=$("<div />",{class:"note",html:"Separate email addresses by commas"});$emailToDiv.append($e)}$c.append($emailToDiv)}var emailMessage=true;if(emailMessage){var emailMessageDiv=$("<div />");var emailToMessageSpan=$("<div />",{class:"input-label",html:"Message:"});emailMessageDiv.append(emailToMessageSpan);var emailToMessageTextarea=$("<textarea/>",{placeholder:"Enter message (optional)",cols:"60",rows:"4",id:"emailToMessageTextarea"});$(emailToMessageTextarea).bind("keyup",function(e){emailToMessageSpan.html("Message"+" - "+emailToMessageTextarea.val().length+" characters")});emailMessageDiv.append(emailToMessageTextarea);$c.append(emailMessageDiv)}var self=this;var send=function(){var userFromValue=null;if(userFrom){userFromValue=$fromInput.val();if($.trim(userFromValue)==""){$fromInput.tooltip("show");return false}}if(emailTo){var emailToValue=$emailToInput.val();good=self.validateEmails(emailToValue);if(good==false){$emailToInput.tooltip("show");return false}}emailToValue=emailToValue.replace(/ /g,"");var emails=emailToValue.split(",");var message=emailToMessageTextarea.val();var callback=function(status,msg){modal.close();var data=self.data;data.type="share";data.title="Email";data=genericPrintStatusMessage(data,status,msg);genericAlertDialog({template:"generic",data:data})};linkManager.emailLink(self.linkUrl,callback,emails,message,userFromValue)};var $b=$("<div />",{class:"action-button action-button--share",html:"Send"});$b.click(function(){send()});$c.append("<br />",$b,'<br class="clear" /><br />');if(PEnvironment.isSiteLicense&&!isCBClone()){var $f=$("<div />",{class:"note recipient-note"});$f.text("All email recipients must have access to this enterprise license.");$c.append($f)}this.$contents.append($c)};ShareOptions.prototype.addEmbedOption=function(message){var self=this;if(message!=null){this.addTab({label:"Embed"});var $c=$("<div />",{class:"content"});$c.addClass("content-disabled");$c.html(message);this.$contents.append($c);return}this.addTab({label:"Embed"},"generateEmbedCode");var $c=$("<div />",{class:"content"});var $options=$("<div />",{class:"embed-options"});var embedOptions={width:768,height:532,showMapTitle:true,showLegend:true};this.embedOptions=embedOptions;var $sizeMenu=$("<div />",{class:"embed-size-menu"});var $sizeButtonSmall=$("<div />",{class:"embed-size-button embed-size-button-small"});$sizeButtonSmall.attr("data-size","small");var $sizeButtonSmallText=$("<div />",{class:"size-button-text"});$sizeButtonSmallText.text("Small");$sizeButtonSmall.append($("<div />",{class:"size-button-image"}),$sizeButtonSmallText);$sizeButtonSmall.click(function(){self.embedSizeButton($(this))});var $sizeButtonMedium=$("<div />",{class:"embed-size-button embed-size-button-medium"});$sizeButtonMedium.attr("data-size","medium");var $sizeButtonMediumText=$("<div />",{class:"size-button-text"});$sizeButtonMediumText.text("Medium");$sizeButtonMedium.append($("<div />",{class:"size-button-image"}),$sizeButtonMediumText);$sizeButtonMedium.click(function(){self.embedSizeButton($(this))});var $sizeButtonLarge=$("<div />",{class:"embed-size-button embed-size-button-large"});$sizeButtonLarge.attr("data-size","large");var $sizeButtonLargeText=$("<div />",{class:"size-button-text"});$sizeButtonLargeText.text("Large");$sizeButtonLarge.append($("<div />",{class:"size-button-image"}),$sizeButtonLargeText);$sizeButtonLarge.click(function(){self.embedSizeButton($(this))});$sizeMenu.append($sizeButtonSmall,$sizeButtonMedium,$sizeButtonLarge);$options.append($sizeMenu);var $label=$("<label />",{text:"Width",class:"embed-label-left"});var $widthInput=$("<input />");$widthInput.attr({value:self.embedOptions.width,type:"text",class:"embed-size",id:"embedWidthInput"});$widthInput.change(function(){self.embedOptions.width=this.value;self.updateEmbedCode();self.updateSizeButtons()});$options.append($label,$widthInput);var $label=$("<label />",{text:"Height",class:"embed-label-left"});var $heightInput=$("<input />");$heightInput.attr({value:self.embedOptions.height,type:"text",class:"embed-size",id:"embedHeightInput"});$heightInput.change(function(){self.embedOptions.height=this.value;self.updateEmbedCode();self.updateSizeButtons()});$options.append($label,$heightInput,'<br class="clear" /><br />');var $check=$("<input />",{type:"checkbox",id:"embed-map-title",checked:"checked"});$check.click(function(){self.embedOptions.showMapTitle=this.checked;self.updateEmbedCode()});var $label=$("<label />",{text:"Map title",for:"embed-map-title",class:"embed-label embed-label-right"});$options.append($check,$label,'<br class="clear" /><br />');var $check=$("<input />",{type:"checkbox",id:"embed-legends",checked:"checked"});$check.click(function(){self.embedOptions.showLegend=this.checked;self.updateEmbedCode()});var $label=$("<label />",{text:"Legend(s)",for:"embed-legends",class:"embed-label embed-label-right"});$options.append($check,$label);$c.append($options);var $p=$("<p />",{class:"text",html:"Copy and paste the following URL:"});$c.append($p);var $input=$("<input />",{type:"text",value:""});$input.click(function(){this.select()});this.embedOptions.$input=$input;this.updateEmbedCode();$c.append($input);var $button=self.getCopyButton($input);$c.append("<br /><br />",$button,'<br class="clear" />');this.embedSizeButton($sizeButtonMedium);$sizeButtonMedium.addClass("selected-button");this.$contents.append($c)};ShareOptions.prototype.addSocialOption=function(message){this.addTab({label:"Social"});var $c=$("<div />",{class:"content"});if(message!=null){$c.addClass("content-disabled");$c.html(message);this.$contents.append($c);return}var url;if(PEnvironment.isSiteLicense&&!isCBClone()){url=this.pmLinkUrl}else{url=this.linkUrl}var windowOptions="width=550, height=550, location=no, menubar=no, status=no, toolbar=no";var title=this.getLink().fullName;if(title.match(/^map/i)==null){title="Map of "+title}var $div=$("<div />",{class:"share-social-icons"});var $f=$("<a />",{class:"facebook"});$f.click(function(){var urlFacebook="https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent(url)+"&title="+encodeURIComponent(title)+"&caption=PolicyMap%3A%20Online%20GIS%20Maps";window.open(urlFacebook,"newwindow",windowOptions)});var $t=$("<a />",{class:"twitter"});$t.click(function(){if(title.length>101){title=title.substr(0,98)+"..."}var via="policymap";if(window.location.hostname.indexOf("placedatabase")>-1){via="landpolicy"}var urlTwitter="https://twitter.com/intent/tweet?via="+via+"&url="+encodeURIComponent(url)+"&text="+encodeURIComponent(title);window.open(urlTwitter,"newwindow",windowOptions)});var $l=$("<a />",{class:"linkedin"});$l.click(function(){var urlLinkedIn="https://www.linkedin.com/shareArticle?mini=true&url="+encodeURIComponent(url)+"&title="+encodeURIComponent(title)+"&source=";window.open(urlLinkedIn,"newwindow",windowOptions)});$div.append($f,$t,$l);$c.append($div);this.$contents.append($c)};ShareOptions.prototype.getCopyButton=function($i){var self=this;var $b=$("<div />",{class:"action-button action-button--share",html:"Copy to clipboard"});$b.click(function(){$i.select();document.execCommand("copy");self.showCopyTooltip()});return $b};ShareOptions.prototype.showCopyTooltip=function(){var $button=$(".action-button--share");$button.tooltip({trigger:"manual",placement:"bottom",title:"Copied"});$button.tooltip("show");$button.prop("stay",true);$button.on("hide.bs.tooltip",function(){if($(this).prop("stay")==true){return false}})};ShareOptions.prototype.hideCopyTooltip=function(){var $button=$(".action-button--share");$button.prop("stay",false);$button.tooltip("destroy")};ShareOptions.prototype.embedSizeButton=function($button){$("#embedWidthInput").val(this.embedSizes[$button.attr("data-size")].width);$("#embedHeightInput").val(this.embedSizes[$button.attr("data-size")].height);$("#embedWidthInput").change();$("#embedHeightInput").change()};ShareOptions.prototype.updateSizeButtons=function(){$(".embed-size-button").removeClass("selected-button");var width=$("#embedWidthInput").val();var height=$("#embedHeightInput").val();for(size in this.embedSizes){if(width==this.embedSizes[size].width&&height==this.embedSizes[size].height){$(".embed-size-button[data-size="+size+"]").addClass("selected-button")}}};ShareOptions.prototype.generateEmbedCode=function(){var self=this;var map=P.instances.map;var cb=self.custombreaks;var link=self.getEmbedLink();link.url+="&etype=embedmap_dyn";linkManager.embed(link,function(status,msg,lqid){if(status==200){var url;if(PEnvironment.isSiteLicense&&!isCBClone()){url="https://"+PEnvironment.wwwUrl+"/embedmap_dyn?lqid="+lqid}else{url=location.protocol+"//"+location.host+"/embedmap_dyn?lqid="+lqid}self.embedOptions.url=url;self.updateEmbedCode()}else{alerter.popup(msg,"OK")}})};ShareOptions.prototype.updateEmbedCode=function(){var url=this.embedOptions.url+"&ew="+this.embedOptions.width+"&eh="+this.embedOptions.height;if(this.embedOptions.showMapTitle){url+="&etitle="+this.embedOptions.showMapTitle}if(this.embedOptions.showLegend){url+="&elegend="+this.embedOptions.showLegend}var value='<iframe src="'+url+'"'+' named="embeddedmap" scrolling="no" marginheight="0" marginwidth="0" frameborder="0" style="border:0"'+' width="'+this.embedOptions.width+'" height="'+this.embedOptions.height+'" ></iframe>';this.embedOptions.$input.attr("value",value);this.hideCopyTooltip()};ShareOptions.prototype.getType=function(){return this.type};ShareOptions.prototype.setType=function(t){this.type=t};ShareOptions.prototype.generateLink=function(){var cb=this.custombreaks;if(this.getType()=="maps"||this.getType()=="analytics"){var link=new PMapLink(cb)}else if(this.getType()=="tables"){var data=this.data;var link=new PChartLink(data)}this.link=link;this.linkUrl=location.protocol+"//"+location.host+"/"+this.getLink().url;this.pmLinkUrl="https://"+PEnvironment.wwwUrl+"/"+this.getLink().url};ShareOptions.prototype.generateCloneLink=function(){var cb=this.custombreaks;this.link=new PMapLink(cb);this.linkUrl=location.protocol+"//"+location.host+location.pathname+P.instances.map.cbtypes.getLinkParams(cb)};ShareOptions.prototype.getLink=function(){return this.link};ShareOptions.prototype.generateEmbedLink=function(){var cb=this.custombreaks;var link=new PMapLink(cb,"embed");this.embedlink=link};ShareOptions.prototype.getEmbedLink=function(){return this.embedlink};ShareOptions.prototype.validateEmails=function(emailString){if(emailString==null||emailString.trim()==""){return false}var emailString=emailString.replace(/ /g,"");var emails=emailString.split(",");for(var i=0;i<emails.length;i++){if(validateEmailAddressValue(emails[i])!=true){return false}}return true};jQuery(document).bind("keydown","Ctrl+Shift+space",function(){if(!P.constants.isKeyboardAccessOn){initKeyboardAccessibility();P.constants.isKeyboardAccessOn=true}else{P.constants.isKeyboardAccessOn=false}});function initKeyboardAccessibility(){var $tabs=$(".taxonomy__tabs").find("a");$tabs.attr("href","javscript:void(0)");var majorTools={};majorTools.options=[];majorTools.options.push($("#textOnlyLink"));var links=[];links.push(jQuery("#searchboxtabs").find("a"));links.push(jQuery("#nav").find("a"));if(jQuery("#ind_menu_widget").css("display")!="none"&&jQuery("#widgetcolumn").css("display")!="none")links.push(jQuery("#ind_menu_widget").find("a"));links.push(jQuery("#legend").find("a"));if(jQuery("#addsites").css("display")!="none"&&jQuery("#widgetcolumn").css("display")!="none")links.push(jQuery("#addsites").find("a"));for(var j=0;j<links.length;j++){for(var i=0;i<links[j].length;i++){if(jQuery(links[j][i]).attr("href")){majorTools.options.push(links[j][i]);break}}}var $mapLink=$("#tab_maps").find("a").first();if($mapLink.length>0){majorTools.options.push($mapLink)}var $tax=$(".taxonomy__tabs").find("a").first();if($tax.length>0){majorTools.options.push($tax)}var $mapLayers=$("#mapOptionsLayer");if($mapLayers.length>0){majorTools.options.push($mapLayers)}var $mapLayers=$(".map-options__map-boundaries");if($mapLayers.length>0){majorTools.options.push($mapLayers)}majorTools.index=0;if($mapLink.length>0){$mapLink.focus()}else{$mapLink.focus()}if(map){$(document).bind("keydown","Ctrl+up",function(){map.zoomIn()});$(document).bind("keydown","Ctrl+down",function(){map.zoomOut()})}$(document).bind("keydown","Ctrl+right",function(){majorTools.index++;if(majorTools.index>majorTools.options.length-1){majorTools.index=0}majorTools.options[majorTools.index].focus()});$(document).bind("keydown","Ctrl+left",function(){majorTools.index--;if(majorTools.index<0){majorTools.index=majorTools.options.length-1}$(majorTools.options[majorTools.index]).focus()});$(document).bind("keydown","Shift+right",function(event){var focused=$(":focus");var $tabs=$(".taxonomy__tab").find("a");$tabs.each(function(index){if($(this).is(":focus")){var num=index+1;if(index==$tabs.length-1){num=0}var tab=$tabs[num];$(tab).focus();return false}if(index==$tabs.length-1){$tabs.first().focus()}})});$(document).bind("keydown","Shift+left",function(event){var focused=$(":focus");var $tabs=$(".taxonomy__tab").find("a");$tabs.each(function(index){if($(this).is(":focus")){var num=index-1;if(index==0){num=$tabs.length-1}var tab=$tabs[num];$(tab).focus();return false}if(index==$tabs.length-1){$tabs.first().focus()}})});$(document).bind("keydown","space",function(){var f=$(":focus");if(f.is(":checked")){f.removeAttr("checked")}else{f.attr("checked","true")}})}ShortLink=function(){};ShortLink.create=function(url,title,description,image,imageType,callback){var data=null;if(title!=null){data={title:title};if(description!=null){data.description=description}if(image!=null&&imageType!=null){data.image=image;data.imageType=imageType}}ajax.call({type:"POST",url:PEnvironment.dataServicesUrl+"?ty=data&t=sl&act=c&link="+encodeURIComponent(url),dataType:"json",data:{sld:JSON.stringify(data)},success:function(response){if(response!=null&&response.sl!=null){if(response.sl.status=="ok"&&response.sl.code!=null){callback(response.sl.code);return}}callback(false)},error:function(){callback(false)}})};ShortLink.getMapPreviewImageURL=function(map){var size=new PSize(470,235);var printImageURL=map.printImage(size);var printImageURLSplit=printImageURL.split("?");var printImageURLSplitLength=printImageURLSplit.length;if(printImageURLSplitLength<2){return null}else{return location.protocol+"//"+location.host+"/image.pl?"+printImageURLSplit[printImageURLSplitLength-1]}};StringStore=function(){};StringStore.prototype.store=function(string,callback){this._request("s",string,null,callback)};StringStore.prototype.getStringById=function(id,callback){this._request("g",null,id,callback)};StringStore.prototype.getIdByString=function(string,callback){this._request("i",string,null,callback)};StringStore.prototype._request=function(action,string,id,callback){var args="&act="+action;if(string!=null){args+="&sss="+string}else if(id!=null){args+="&sssi="+id}else{callback(false)}ajax.call({url:PEnvironment.stringstoreUrl+args,type:"POST",context:this,success:function(response){if(response!=null&&response.ss!=null){callback(response.ss)}else{callback(false)}}})};var SVGDocument=null;var toolTip=null;var tipBox=null;var tipText=null;var tipDesc=null;var lastElement=null;var hoverIsClicked=false;var currentClick=null;var theA=null;function hoverInit(doc){SVGDocument=doc;tipBox=SVGDocument.getElementById("tipBox");tipText=SVGDocument.getElementById("tipText");tipDesc=SVGDocument.getElementById("tipDesc");toolTip=SVGDocument.getElementById("toolTip");infoBubble=SVGDocument.getElementById("infoBubble")}function hoverShow(evt){var targetElement=evt.target;if(lastElement!=targetElement&&!hoverIsClicked){var targetDesc=targetElement.getElementsByTagName("desc").item(0);var theText=targetDesc.firstChild.nodeValue;var SVGDocument=targetElement.ownerDocument;var tipBox=SVGDocument.getElementById("tipBox");var tipText=SVGDocument.getElementById("tipText");var tipDesc=SVGDocument.getElementById("tipDesc");var toolTip=SVGDocument.getElementById("toolTip");var infoBubble=SVGDocument.getElementById("infoBubble");targetElement.setAttribute("stroke-opacity","1");while(tipDesc.firstChild){tipDesc.removeChild(tipDesc.firstChild)}var a=SVGDocument.createElement("a");a.setAttribute("xlink:href","http://wikipedia.org/"+theText);a.setAttribute("target","_blank");var text=SVGDocument.createTextNode(theText);a.appendChild(text);tipDesc.appendChild(text);tipDesc.appendChild(a);tipDesc.setAttributeNS(null,"display","inline");var outline=tipText.getBBox();var centerx=targetElement.getAttribute("centerx");var centery=targetElement.getAttribute("centery");var xPos=parseInt(centerx)+10;var yPos=parseInt(centery)-Number(outline.height)-10;tipBox.setAttributeNS(null,"width",Number(outline.width)+20);tipBox.setAttributeNS(null,"height",Number(outline.height)+10);toolTip.setAttributeNS(null,"transform","translate("+(xPos-10)+","+(yPos-70)+")");toolTip.setAttributeNS(null,"visibility","visible");infoBubble.setAttributeNS(null,"width",Number(outline.width)+20);infoBubble.setAttributeNS(null,"height",Number(outline.height)+10);infoBubble.setAttributeNS(null,"transform","translate("+(xPos-40)+","+(yPos-110)+") scale (.3)");infoBubble.setAttributeNS(null,"visibility","visible");lastElement=targetElement}}function hoverHide(evt){if(!hoverIsClicked){var SVGDocument=evt.target.ownerDocument;var toolTip=SVGDocument.getElementById("toolTip");var infoBubble=SVGDocument.getElementById("infoBubble");evt.target.setAttribute("stroke-opacity","0");toolTip.setAttributeNS(null,"visibility","hidden");infoBubble.setAttributeNS(null,"visibility","hidden");lastElement=null}}function hoverClick(evt){hoverIsClicked=!hoverIsClicked;if(hoverIsClicked==false){if(currentClick!=evt){hoverHide(currentClick);hoverShow(evt)}currentClick=null}else{currentClick=evt}evt.stopPropagation()}function bubbleClick(evt){evt.stopPropagation()}function tablesPageLoader(){if(P.WKPrint.isPrintPage()===true){var printpage=new PrintPageSetup;printpage.setUpPrintPage()}function initializeGlobals(){resetCubeQueue();P.instances.wkprint.setOrientation(P.WKPrint.LANDSCAPE);$chartDiv=$("#chart");P.instances.chart=new PChart($chartDiv[0]);var tableoptions=new PTableOptions;tableoptions.disableToggles=true;P.instances.table=new PTable(document.getElementById("table"),tableoptions,chart);P.instances.table.setCalculationColumn("mean");P.instances.pagePopUp=new PopUp;P.instances.rPlaces=new ReportPlaces;P.instances.rPins=new ReportPins;P.instances.rRanks=new ReportRanks;var $mapDiv=$("<div />");$mapDiv.attr("id","map");$mapDiv.css({width:"100%",height:"450px",position:"absolute",display:"none"});$chartDiv.parent().append($mapDiv);map=new PMap($mapDiv[0]);PPlaceTypeConfig.PLEGEND=new PPlaceTypeConfig;PPlaceTypeConfig.PLEGEND.zooms[0]=PPlaceType.STATE;PPlaceTypeConfig.PLEGEND.zooms[3]=[PPlaceType.COUNTY,PPlaceType.CITY];PPlaceTypeConfig.PLEGEND.zooms[5]=PPlaceType.SCHOOL;PPlaceTypeConfig.PLEGEND.zooms[6]=PPlaceType.ZIP;PPlaceTypeConfig.PLEGEND.zooms[7]=PPlaceType.COUNTY_SUBDIVISION;PPlaceTypeConfig.PLEGEND.zooms[9]=PPlaceType.CENSUSTRACT;PPlaceTypeConfig.PLEGEND.zooms[12]=PPlaceType.BLOCKGROUP;printTemplate="PolicyMapMapPage";pmToolbar=new Toolbar;pmToolbar.disable("share","(Not Available)")}function updateTableTitleAndLegendHeader(indicator){if(typeof indicator==="object"){var label=indicator.getFullLabel();var more=indicator.getDescription();var sources=indicator.getSources();$tableTitle.find(".title").text(label);$indicatorLegend.find(".legend__title__content").text(indicator.displayName);$indicatorLegend.find(".legend__title").show();if(sources.length>1){more+=" (See data directory for "+indicator.getSourceList(true)+".)"}else if(sources.length===1){var sourceURL=indicator.getSourceURL(sources[0]);if(sourceURL!==null){more+=" <a class='dataLink' target='_blank' href='"+sourceURL+"'>(see data directory)</a>";var src="<a class='dataLink' target='_blank' href='"+sourceURL+"'>"+sources[0].name+"</a>";$indicatorLegend.find(".legend__title__source__content").html(src).show();$(".print__source").find(".legend__title__source__content").html(src)}else{$indicatorLegend.find(".legend__title__source").hide();$(".print__source").find(".legend__title__source__content").hide()}}$(".content__header__additional-info__content p").html(more);$tableTitle.slideDown()}else{hideContentHeader()}}function updateLegendTrendCheckbox(indicator){var $trendCheckContainer=$("#legend__trend-toggle");$trendCheckContainer.empty();var allPeriods=indicator.getPeriods().slice();allPeriods.sort(function(a,b){return a<b?-1:1});var periods=[];for(var i=0;i<allPeriods.length;i++){if(allowPeriod(indicator,allPeriods[i])){periods.push(allPeriods[i])}}if(!indicator.areTrendsAllowed()){$trendCheckContainer.text("Not available");return}else if(periods.length<2){$trendCheckContainer.text("Only one year available");return}var $trendCheck=$("<input />");$trendCheck.attr({id:"legend__trend-check",type:"checkbox"});if(P.instances.chart.inTrendChart()){$trendCheck.attr("checked",true)}$trendCheck.change(function(){if($(this).is(":checked")){var placeCount=global_places.length;var bgCount=0;for(var i=0;i<placeCount;i++){if(global_places[i].getType()==PPlaceType.BLOCKGROUP){bgCount++}}if(bgCount>0){alerter.popup("Trend charts are not available for block groups. For an explanation of why block groups can't show in trend charts, <a href='http://www.policymap.com/blog/2013/11/arent-trend-charts-available-block-groups/' target='_blank'>click here</a>.","OK")}if(bgCount==placeCount){$(this).attr("checked",null)}else{P.instances.pagePopUp.hide();$("#legend__year-select").attr("disabled",true);$("#legend__month-select").attr("disabled",true);$("#legend__quarter-select").attr("disabled",true);setTablesPeriod(periods,true)}}else{$("#legend__year-select").attr("disabled",null);$("#legend__month-select").attr("disabled",null);$("#legend__quarter-select").attr("disabled",null);setTablesPeriod([legend.getIndicator().getPeriod()],true)}});var $trendCheckLabel=$("<label />");$trendCheckLabel.attr("for","legend__trend-check");$trendCheckLabel.html(periods[0].toUpperCase()+" &nbsp;&ndash;&nbsp; "+periods[periods.length-1].toUpperCase());$trendCheckContainer.append($trendCheck);$trendCheckContainer.append($trendCheckLabel)}function updateOverlaySetsInSession(){session.put("o",overlaySetUtil.getSetIds(P.instances.table.getOverlaySets(),"old"));session.put("dlo",overlaySetUtil.getSetIds(P.instances.table.getOverlaySets(),"dl"))}function toggleTableTitleAdditionalInfo(){if($tableHeaderToggle.hasClass("is-maximized")){$tableHeaderToggle.removeClass("is-maximized");$(".content__header__additional-info__content").slideUp()}else{$tableHeaderToggle.addClass("is-maximized");$(".content__header__additional-info__content").slideDown()}}function initializeLegend(){legend=widget=new PTRFIndicatorLegend(P.instances.map,P.instances.map.getLegend(),{enableToggle:true,enableShade:false,enableBreaks:false});var legendContainer=new PLegendContainer($indicatorLegend);legend.addListener("refresh",legendContainer.show,legendContainer);legend.addListener("clear",legendContainer.hide,legendContainer);legend.addListener("changed",updateTableTitleAndLegendHeader);var trfLegendIndicators=new TrfLegendIndicators($indicatorLegend);indToggle=legend.getIndicatorToggle();indToggle.addListener("refresh",trfLegendIndicators.refresh,trfLegendIndicators);indToggle.addListener("clear",trfLegendIndicators.clear,trfLegendIndicators);legendContainer.init()}function initializeCustomRegions(){polygonOptions=new PPolyCreatorOptions;polygonOptions.poly.weight=1;polygonOptions.poly.opacity=.5;polyCreator=polycreator=new PPolyCreator(polygonOptions);polyCreator.boundaryWidget=new PPolyCreatorBoundaryWidget(polyCreator);polyCreator.circleWidget=new PPolyCreatorCircleWidget(polyCreator);polyCreator.assembleInfoWidget=new PPolyCreatorAssembleInfoWidget(polyCreator);trfCustomRegions=new TrfCustomRegionsMenu(polyCreator,session);P.instances.trfCustomRegions=trfCustomRegions;trfCustomRegions.once("change",function loadRegionFromSession(){if(session.get("cp")&&isSubscriber()){_.each(session.get("cp"),function(customRegionId){trfCustomRegions.addCustomRegionById(customRegionId)})}})}var debug=new P.Debug;debug.override("MPL");var $window=$(window);var $indicatorLegend=$(".legend--tables");var $tableHeaderToggle=$(".content__header__additional-info__toggle");var $tableTitle=$(".content__header");var $wizard=$(".wizard");var indToggle;var legendContainer;var trfLegendIndicators;var trfLegendBreaks;var trfLegendShadeBy;var indicatorShade;var polygonOptions;var polyCreator;var trfCustomRegions;var tempMap={};tempMap.getIndicator=function(){if(global_indicators.length>0){return global_indicators[0]}else{return null}};var taxonomyMenu=new TaxonomyMenu($(".taxonomy"),$(".taxonomy-menu"),debug,tempMap);var searchOptions={taxonomyMenu:taxonomyMenu};initializeSearchForm(searchOptions);initializeGlobals();initializeLegend();initializeCustomRegions();showExpirationModal();$tableHeaderToggle.click(toggleTableTitleAdditionalInfo);$(".content__header .title").click(toggleTableTitleAdditionalInfo);$(".content__header__additional-info__close").click(function(){$tableHeaderToggle.removeClass("is-maximized");$(".content__header__additional-info__content").slideUp()});$(".legend__indicators select").chosen({disable_search:true,width:"142px"});$(".content__header__close-icon").click(function(){clearTableData()});$(".map-options__reset").click(resetMapAlert);$(".map-options__clear-location").click(function(event){event.preventDefault();clearLocationAlert()});PEvent.addListener(polyCreator,"addpoly",function(points){polyCreator.showSaveInfoWindow(points[0])});function hideContentHeader(){$(".content__header").slideUp()}search.addListener("response",function(places){setTablesPlaces(places,search.getSearchString())});$(window).on(P.events.LOGGED_IN,function(){refreshCube()});resizeChartTable();$(window).resize(function(){resizeChartTable()});taxonomyMenu.on("show",function(){trfCustomRegions.hide()})
;taxonomyMenu.once("change",function(){loadTableFromSession();var hideTablesWizard=getSession("hideTablesWizard");if(hideTablesWizard==1){}else{}});trfCustomRegions.on("show",function(){taxonomyMenu.hide()});if(productProperty.getValue("disable_dataloader")&&productProperty.exists("disable_dataloader_teaser")){$("#tab_dataloader").tooltip({title:productProperty.getValue("disable_dataloader_teaser"),placement:"right",container:"body",trigger:"hover focus"})}P.instances.table.addListener("setindicator",function(indicator){updateTableTitleAndLegendHeader(indicator);updateLegendTrendCheckbox(indicator);var favorites=taxonomyMenu.getFavorites();if(favorites!=null){favorites.updateFavoritesIcon()}taxonomyMenu.hide()});P.instances.table.addListener("removeindicator",function(){hideContentHeader();taxonomyMenu.resetActiveRootNodes()});P.instances.table.addListener("addoverlayset",function(){updateOverlaySetsInSession()});P.instances.table.addListener("removeoverlayset",function(){updateOverlaySetsInSession()});P.instances.table.addListener("clearoverlaysets",function(){updateOverlaySetsInSession()});legend.addListener("clear",function(){hideContentHeader()});PEvent.addListener(window,"beforeunload",function(){session.save()});$window.unload(function(){PUnload()});$("#wizard_on").click(function(){$(this).hide();$wizard.height(Math.max($(document).height(),$(window).height()));$wizard.fadeIn("slow");deleteSession("hideTablesWizard")});$("#wizard_get_started").click(function(){if($wizard.find(".wizard__form__checkbox").attr("checked")){setSession("hideTablesWizard",1)}$wizard.fadeOut();$("#wizard_on").show()})}function resizeChartTable(){var div=$("#chartTable");var pos=getObjectPosition(div[0]);var width=$(window).width();var newWidth=width-pos[0]-40}function onLoadRefreshCube(add,places){if(add>0){onLoadCounter=onLoadCounter+add}else if(add==0){onLoadCounter=onLoadCounter-1;for(var i=0;i<places.length;i++){onLoadPlaces.push(places[i])}if(onLoadCounter<=0){onLoadCounter=0;refreshCubeQueue(onLoadPlaces)}}}function clearTableData(){P.instances.table.clear();P.instances.chart.clear();legend.clear();P.instances.pagePopUp.hide();global_indicators=[];clearHideSimilarBox();$("#aggFootnote").hide();session.remove("i");if(global_indicators.length<=0&&global_places.length>0){P.instances.table.cube=new PCube([],global_places,[]);P.instances.table.refresh()}resetChart();P.instances.table.eventManager.triggerEvent("removeindicator")}function clearHideSimilarBox(){var similarBox=$("#similarBox");similarBox.slideUp(null,function(){similarBox.text("")})}function displaySimilarBox(html){var similarBox=$("#similarBox");similarBox.html(html);similarBox.slideDown()}function addPlaceType(id){clearHideSimilarBox();placeLoader.load([id],function(places){if(places.length==0)alert('Place "'+id+'" not found');if(places.length>0){session.remove("place");refreshCubeQueue(places)}})}function setTablesPlaces(candidatePlaces,searchString){var places=[];if(searchString){if(candidatePlaces)for(var i=0;i<candidatePlaces.length;++i){if(candidatePlaces[i].getLabel().toLowerCase().indexOf(searchString.toLowerCase())==0){places.push(candidatePlaces[i])}}for(var i=0;i<candidatePlaces.length;++i){if(candidatePlaces[i].getLabel().toLowerCase().indexOf(searchString.toLowerCase())!=0){places.push(candidatePlaces[i])}}}else{places=candidatePlaces}var html=null;clearHideSimilarBox();if(places instanceof PAddress){alerter.popup("No data available for addresses.","OK");return}else{var l=places.length;var full=places;places=[];var p;for(var i=0;i<l;i++){p=full[i];if(p.country=="United States"){places.push(p)}}if(places.length==0){var sstr=search.getSearchString();alerter.popup('Location "<b>'+(sstr&&sstr!=""?sstr:session.placeName)+'</b>" not found.',"OK");return}else if(places.length>1){var html=createPlacesDiv(places);displaySimilarBox(html);refreshCubeQueue([places[0]])}else{refreshCubeQueue([places[0]])}}}function setTablesPeriod(periods){var chartoptions=new PChartOptions;var tableoptions=P.instances.table.options;if(periods.length>1){chartoptions.xAxis=PChartOptions.PERIOD;chartoptions.group=PChartOptions.PLACE;chartoptions.type=PChartOptions.LINE;tableoptions.row=PTableOptions.PLACE;tableoptions.displayPeriods=true}else{tableoptions.row=PTableOptions.INDICATOR;tableoptions.displayPeriods=false}if(periods.length>15)P.instances.chart.container.style.width=40*periods.length+"px";else P.instances.chart.container.style.width="600px";P.instances.chart.setOptions(chartoptions);while(global_periods.length>0)global_periods.pop();for(var i=0;i<periods.length;i++)global_periods.push(periods[i]);legend.refresh();refreshCube()}function getAggregatePlaceTypes(indicator,period,place){var placeTypes=[];if(place!=null){var zoomLevel=map.setCenterBoundsAndGetZoomLevelByViewPort(place.getBounds(),1e3,450);var aggRule=null;if(indicator!=null){var perIndex=null;if(period!=null){perIndex=indicator.getPeriodIndex(period)}if(perIndex==null||perIndex===false){perIndex=indicator.curPerIndex}aggRule=indicator.aggregationRules[perIndex]}placeTypes=PPlaceTypeConfig2.AGGREGATION.getBestFitOut(zoomLevel,aggRule)}return placeTypes}function refreshCubeQueue(places,sites,indicator){if(places!=null&&places instanceof Array){for(var i=0;i<places.length;i++){var curPlace=places[i];var addToQueue=true;for(var j=0;j<cubeQueue.places.length;j++){if(cubeQueue.places[j].getID()==curPlace.getID()){addToQueue=false;break}}if(addToQueue){cubeQueue.places.push(curPlace)}}}if(sites!=null&&sites instanceof Array){for(var i=0;i<sites.length;i++){var curSite=sites[i];var addToQueue=true;for(var j=0;j<cubeQueue.sites.length;j++){if(cubeQueue.sites[j].id==curSite.id&&cubeQueue.sites[j].type==curSite.type){addToQueue=false;break}}if(addToQueue){cubeQueue.sites.push(curSite)}}}if(indicator!=null){cubeQueue.indicator=indicator}if(!refreshCubeRunning){loadCubeQueue()}}function loadCubeQueue(){if(cubeQueue.indicator!=null){global_indicators.pop();global_indicators.push(cubeQueue.indicator);if(global_periods.length>1){var periodCopy=new Array;var periods=cubeQueue.indicator.getPeriods();for(var i=0;i<periods.length;i++){periodCopy[i]=periods[i]}setTablesPeriod(periodCopy.sort(function(a,b){return a<b?-1:1}))}else{setTablesPeriod([cubeQueue.indicator.getPeriod()])}legend.refresh();P.instances.table.eventManager.triggerEvent("setindicator",cubeQueue.indicator);cubeQueue.indicator=null}else if(cubeQueue.places.length>0){for(var i=0;i<cubeQueue.places.length;i++){if(cubeQueue.places[i].getType()==PPlaceType.CUSTOM){custom_places.push(cubeQueue.places[i])}else if(cubeQueue.places[i].getType()==PPlaceType.POLYGON){ppolygon=cubeQueue.places[i]}else{global_places.push(cubeQueue.places[i]);updateSessionPlaces()}}cubeQueue.places=[];refreshCube()}else if(cubeQueue.sites.length>0){for(var i=0;i<cubeQueue.sites.length;i++){P.instances.table.addOverlaySet(cubeQueue.sites[i])}cubeQueue.sites=[];P.instances.table.refreshOverlaySets()}}function updateSessionPlaces(){var pids=[];for(var i=0;i<global_places.length;i++){if(global_places[i].getType()!=PPlaceType.CUSTOM&&global_places[i].getType()!=PPlaceType.POLYGON){pids.push(global_places[i].id)}}if(pids.length>0){session.put("ps",pids.join(","));session.put("p",pids[pids.length-1])}else{session.remove("ps");session.remove("p")}}function updatePlacesForIndicatorMatrix(callback){if(global_indicators==null||global_indicators[0]==null){callback();return}var indicator=global_indicators[0];var matrixId=indicator.matrixIds[indicator.curPerIndex];var boundIds=[];var defIds=[];var gpMapping=[];for(var i=0;i<global_places.length;i++){var currentPlace=global_places[i];var placeType=currentPlace.getType();if(placeType!=PPlaceType.CUSTOM&&placeType!=PPlaceType.POLYGON){var defId;try{defId=boundaryMatrix.getDefinitionIdForTypeId(placeType.getId(),matrixId)}catch(e){continue}if(defId==currentPlace.getDefinitionId()){continue}var boundId=currentPlace.getID();if($.inArray(boundId,boundIds)==-1){boundIds.push(boundId)}if($.inArray(defId,defIds)==-1){defIds.push(defId)}gpMapping[boundId]=i}}if(boundIds.length<1){callback();return}placeLoader.loadOneToOne(boundIds,defIds,true,false,function(mappings){var swappedBoundaries={};var popupOpen=P.instances.pagePopUp&&P.instances.pagePopUp.elm&&P.instances.pagePopUp.elm.is(":visible");for(var i=0;i<boundIds.length;i++){var boundId=boundIds[i];swappedBoundaries[boundId]=false;for(var j=0;j<mappings[boundId].length;j++){var currentMapping=mappings[boundId][j];if(boundaryMatrix.isDefinitionIdInMatrix(currentMapping.getDefinitionId(),matrixId)){var placeType=currentMapping.getType();if(placeType==PPlaceType.BLOCKGROUP||placeType==PPlaceType.CENSUSTRACT&&currentMapping.getIdentifier()!=global_places[gpMapping[boundId]].getIdentifier()||currentMapping.getLabel()!=global_places[gpMapping[boundId]].getLabel()){break}global_places[gpMapping[boundId]]=currentMapping;swappedBoundaries[boundId]=true;if(popupOpen){if(P.instances.rRanks&&P.instances.rRanks.place&&P.instances.rRanks.place.getID()==boundId){P.instances.rRanks.place=currentMapping}if(P.instances.rPlaces&&(P.instances.rPlaces.place&&P.instances.rPlaces.place.getID()==boundId||P.instances.rPlaces.placeId&&P.instances.rPlaces.placeId==boundId)){P.instances.rPlaces.place=currentMapping;P.instances.rPlaces.placeId=currentMapping.getID();P.instances.rPlaces.placeName=P.instances.table.getPlaceLabel(currentMapping)}if(P.instances.rPins&&(P.instances.rPins.place&&P.instances.rPins.place.getID()==boundId||P.instances.rPins.placeId&&P.instances.rPins.placeId==boundId)){P.instances.rPins.place=currentMapping;P.instances.rPins.placeId=currentMapping.getID();P.instances.rPins.placeName=P.instances.table.getPlaceLabel(currentMapping)}}}}}if(popupOpen){for(boundId in swappedBoundaries){if(swappedBoundaries[boundId]==false){closePlacePopup(boundId)}}}updateSessionPlaces();callback()})}function refreshCubePlaces(){if(P.instances.table.options.displayPeriods==false&&isSubscriber()&&!isTrial()){P.instances.table.rankRow=null;rankingCube=new PRankingCube(global_indicators,global_places,global_periods);rankingCube.setOptions(new PRankingCubeOptions({loadValues:false,loadRanks:true}));rankingCube.loadValues(function(v){this.loading=false;this.values=v;P.instances.table.refreshRanks(true)})}var trendChart=P.instances.chart&&P.instances.chart.inTrendChart();var placesToLoad;if(trendChart){placesToLoad=placesWithoutBlockGroups(global_places)}else{placesToLoad=global_places}cube=new PCube(global_indicators,placesToLoad,global_periods);PEvent.addListener(cube,"remove",cubeRemoveListener);if(cube.places.length>0){cube.loadValues(function(values){this.values=values;cubeLoadValuesCommon(this);P.instances.chart.setData(this);P.instances.table.setData(this);P.instances.chart.refresh();P.instances.table.refresh();rotateLabels();refreshCubeFinished()},{includeMappings:trendChart})}else{refreshCubeFinished()}if(!session.get("i")){var tmpCube=new PCube([],global_places,[]);PEvent.addListener(tmpCube,"remove",cubeRemoveListener);P.instances.table.setData(tmpCube);P.instances.table.refresh()}}function refreshCubeAggregatePlaces(agg_places){var aggCount=0;var aggTotal=agg_places.length*global_periods.length;for(var i=0;i<agg_places.length;i++){var curAggPlace=agg_places[i];if(global_indicators&&global_indicators.length>0){var curInd=global_indicators[0];for(var j=0;j<global_periods.length;j++){var curPeriod=global_periods[j];var curMatrixId=curInd.matrixIds[curInd.getPeriodIndex(curPeriod)];var aggregatePlaceTypes=[];if(aggPlaceType){aggregatePlaceTypes=[aggPlaceType]}else{aggregatePlaceTypes=getAggregatePlaceTypes(curInd,curPeriod,curAggPlace).slice(0);if(curAggPlace.isAssembledCustom()){var firstBoundary=curAggPlace.getAssembledPlaces()[0];var type=firstBoundary.getType();var defId=firstBoundary.getDefinitionId();if(type!=PPlaceType.ZIP&&curInd.hasPlaceType(type,curPeriod)&&boundaryMatrix.isDefinitionIdInMatrix(defId,curMatrixId)){var typeIndex=null;for(var k=0;k<aggregatePlaceTypes.length;k++){if(aggregatePlaceTypes[k]==type){typeIndex=k;break}}if(typeIndex!=null){if(typeIndex!=0){aggregatePlaceTypes.splice(typeIndex,1);aggregatePlaceTypes.unshift(type)}}else{aggregatePlaceTypes.unshift(type)}}}}if(aggregatePlaceTypes.length>0){aggData.values[curAggPlace.id]={};aggData.types[curAggPlace.id]={};var aggregateValuesAllComplete=function(){var trendChart=P.instances.chart&&P.instances.chart.inTrendChart();var placesToLoad;if(trendChart){placesToLoad=placesWithoutBlockGroups(global_places)}else{placesToLoad=global_places}cube=new PCube(global_indicators,placesToLoad,global_periods);PEvent.addListener(cube,"remove",cubeRemoveListener);cube.loadValues(function(values){this.values=values;cubeLoadValuesCommon(this);if(P.instances.table.options.displayPeriods==false&&isSubscriber()&&!isTrial()){P.instances.table.rankRow=null;rankingCube=new PRankingCube(global_indicators,global_places,global_periods);rankingCube.setOptions(new PRankingCubeOptions({loadValues:false,loadRanks:true}));rankingCube.loadValues(function(v){this.loading=false;this.values=v;P.instances.table.refreshRanks(true)})}for(aggDataPlaceId in aggData.values){for(aggDataPeriod in aggData.values[aggDataPlaceId]){this.values[aggDataPeriod][aggDataPlaceId][this.indicators[0].id]=aggData.values[aggDataPlaceId][aggDataPeriod]}}P.instances.chart.setData(this);P.instances.table.setData(this);P.instances.chart.refresh();P.instances.table.refresh();rotateLabels();refreshCubeFinished()},{includeMappings:trendChart})};var aggregate=function(aggregatePlaces,aggPlace,aggPeriod){var customcube=new PCube(global_indicators,aggregatePlaces,[aggPeriod]);customcube.loadValues(function(customvalues){this.values=customvalues;var aggregatePlaceType=this.places[0].getType();if($.inArray(aggPlace,global_places)==-1){global_places.push(aggPlace)}var cpvalue=null;var allowVal=true;var ltvIndicators=[9589402,9589355];for(var k=0;k<ltvIndicators.length;k++){if(this.indicators[0].id==ltvIndicators[k]){allowVal=false}}if(allowVal){var curAgg=new Object;curAgg.type=aggregatePlaceType;curAgg.touch=false;aggData.types[aggPlace.id][this.periods[0]]=curAgg}var isAggregatable=this.indicators[0].isDataAggregatable();if(allowVal&&isAggregatable){if(this.places.length<=500){cpvalue=this.getSumOfPlacesNullCheck(this.indicators[0],this.periods[0]);if(cpvalue==null){cpvalue="<span class='unable'>Unable to aggregate by "+aggregatePlaceType.getName()+"; data coverage is incomplete</span>"}}else{cpvalue="<span class='unable'>Unable to aggregate by "+aggregatePlaceType.getName()+"; exceeds maximum of 500 boundaries</span>"}}else if(this.indicators[0].measurement=="percent"){cpvalue="<span class='unable'>Aggregated values N/A for percentages</span>"}else{cpvalue="<span class='unable'>Aggregated values N/A for this data type</span>"}aggData.values[aggPlace.id][this.periods[0]]=cpvalue;aggCount++;if(aggCount==aggTotal){aggregateValuesAllComplete()}})};var displayFirstSuccessfulAggregate=function(k,aggPlace,aggPlaceTypes,aggPeriod,aggMatrixId){var polyplace=aggPlace;if(k<aggPlaceTypes.length){if(curInd.getPeriods()[curInd.curPerIndex]=="2000"&&curInd.containsSource(/census/i,true)&&aggPlaceTypes[k]==PPlaceType.ZIP){displayFirstSuccessfulAggregate(k+1,aggPlace,aggPlaceTypes,aggPeriod,aggMatrixId)}else{var overlap=curInd.overlapPercentages[curInd.curPerIndex];if(overlap==null){overlap=50}polyplace.getAggregateCount(aggPlaceTypes[k],aggMatrixId,null,function(count){if(count>0){polyplace.getAggregates(aggPlaceTypes[k],aggMatrixId,null,function(aggregates){aggregate(aggregates,aggPlace,aggPeriod)},overlap,null,null,null,null,null,null,50,"id,label,typeid,centroid,bounds,area,state,country")}else{displayFirstSuccessfulAggregate(k+1,aggPlace,aggPlaceTypes,aggPeriod,aggMatrixId)}},overlap)}}else{var cpvalue="<span class='unable'>";if(aggPlaceType){cpvalue+="Unable to aggregate by "+aggPlaceType.getName()+"; more than 50% of each boundary exists outside region"}else{cpvalue+="Area too small for aggregation"}cpvalue+="</span>";aggData.values[aggPlace.id][aggPeriod]=cpvalue;var curAgg=new Object;curAgg.type=aggPlaceTypes[aggPlaceTypes.length-1];curAgg.touch=true;aggData.types[aggPlace.id][aggPeriod]=curAgg;if($.inArray(aggPlace,global_places)==-1){global_places.push(aggPlace)}aggCount++;if(aggCount==aggTotal){aggregateValuesAllComplete()}}};displayFirstSuccessfulAggregate(0,curAggPlace,aggregatePlaceTypes,curPeriod,curMatrixId)}}}else{if($.inArray(aggPlace,global_places)==-1){global_places.push(aggPlace)}P.instances.table.cube=new PCube([],global_places,[]);P.instances.table.refresh();rotateLabels();refreshCubeFinished()}}$("#aggFootnote").show()}function cubeLoadValuesCommon(theCube){if(theCube.periods.length>15){P.instances.chart.container.style.cssFloat="left";P.instances.chart.container.style.styleFloat="left"}else{P.instances.chart.container.style.cssFloat="none";P.instances.chart.container.style.styleFloat="none"}var printlink=document.getElementById("printLink");if(!printlink)var printlink=document.getElementById("saveLink");var indid=theCube.indicators[0].id;var unemp=[9841100,9841103,9841108,9841101];var buildperm=[9845550,9845551,9845552,9845553,9845554,9845555,9845557,9845558,9845560,9845561,9845562,9845563,9845564,9845566,9845567,9845570,9845571];var indids=unemp.concat(buildperm);var disablePrint=false;for(var i=0;i<indids.length;i++){if(indids[i]==indid)disablePrint=true}if(theCube.periods.length>1&&disablePrint){}else{}}function refreshCube(){refreshCubeRunning=true;resetAggData();if(global_indicators[0]&&global_periods[0]){var continueCubeRefresh=function(){var idArray=[];for(var i=0;i<global_places.length;i++){if(isTablesAggregatePlaceType(global_places[i].getType())){idArray.push(global_places[i].getID())}}if(idArray.length>0){var ids=idArray.join(",");ajax.call({url:PEnvironment.indicatorUrl+"&iid="+global_indicators[0].getID()+"&bid="+ids+"&per="+global_periods.join(","),context:this,success:function(values){var agg_places=[];for(var i=0;i<global_places.length;i++){if(isTablesAggregatePlaceType(global_places[i].getType())){var periodCount=0;for(var j=0;j<global_periods.length;j++){if(values[global_periods[j]][global_places[i].id][global_indicators[0].id]==null){periodCount++;if(periodCount==global_periods.length){agg_places.push(global_places.splice(i,1)[0]);i--}}}}else if(global_places[i].isCustomOrPoly()){global_places.splice(i,1);i--}}if(custom_places.length>0){for(var i=0;i<custom_places.length;i++){agg_places.push(custom_places[i])}}if(ppolygon){agg_places.push(ppolygon)}if(agg_places.length>0){refreshCubeAggregatePlaces(agg_places)}else{refreshCubePlaces()}}})}else{var agg_places=[];for(var i=0;i<global_places.length;i++){if(global_places[i].isCustomOrPoly()){global_places.splice(i,1);i--}}if(custom_places.length>0){for(var i=0;i<custom_places.length;i++){agg_places.push(custom_places[i])}}if(ppolygon){agg_places.push(ppolygon)}if(agg_places.length>0){refreshCubeAggregatePlaces(agg_places)}else if(global_places.length>0){refreshCubePlaces()}else{if(global_indicators[0]&&global_periods[0]){cube=new PCube(global_indicators,[],global_periods);P.instances.table.setData(cube);P.instances.table.refresh()}refreshCubeFinished()}}};if(P.instances.chart&&P.instances.chart.inTrendChart()){continueCubeRefresh()}else{updatePlacesForIndicatorMatrix(continueCubeRefresh)}}else{if(custom_places.length>0||ppolygon){for(var i=0;i<global_places.length;i++){if(global_places[i].isCustomOrPoly()){global_places.splice(i,1);i--}}for(var i=0;i<custom_places.length;i++){global_places.push(custom_places[i])}if(ppolygon){global_places.push(ppolygon)}}var tmpCube=new PCube([],global_places,[]);PEvent.addListener(tmpCube,"remove",cubeRemoveListener);P.instances.table.setData(tmpCube);P.instances.table.refresh();refreshCubeFinished()}}function refreshCubeFinished(){if(cubeQueue.places.length>0||cubeQueue.sites.length>0){loadCubeQueue()}else{refreshCubeRunning=false;updateChartNotes()}}function placesWithoutBlockGroups(places){var newPlaces=[];for(var i=0;i<global_places.length;i++){if(global_places[i].getType()!=PPlaceType.BLOCKGROUP){newPlaces.push(global_places[i])}}return newPlaces}function updateChartNotes(onlyClear){$("#chartNotes .note").hide();if(onlyClear!=null&&onlyClear===true){return}if(P.instances.chart&&P.instances.chart.inTrendChart()){for(var i=0;i<global_places.length;i++){if(global_places[i].getType()==PPlaceType.BLOCKGROUP){$("#blockGroupNote").show();break}}if(cube==null){return}periodLoop:for(var i=0;i<cube.periods.length;i++){var curPeriod=cube.periods[i];for(var j=0;j<cube.places.length;j++){var curPlaceType=cube.places[j].getType();if(curPlaceType==PPlaceType.CUSTOM||curPlaceType==PPlaceType.POLYGON){continue}var curPlaceId=cube.places[j].getID();for(var k=0;k<cube.indicators.length;k++){var curIndId=cube.indicators[k].getID();if(cube.valueBoundaries[curPeriod]&&cube.valueBoundaries[curPeriod][curPlaceId]&&cube.valueBoundaries[curPeriod][curPlaceId][curIndId]==null){$("#boundaryChangeNote").show();break periodLoop}}}}}}function cubeRemoveListener(elem){if(elem instanceof PPlace){closePlacePopup(elem.id);if(elem.getType()==PPlaceType.CUSTOM){removeFromCustomPlacesArray(elem);polycreator.removeCustomRegionFromTable(elem)}else if(elem.getType()==PPlaceType.POLYGON){resetChartsPolygonPlace()}for(var i=0;i<global_places.length;i++){if(global_places[i]==elem){global_places.splice(i,1)}}var ids=[];for(var i=0;i<global_places.length;i++){var curPlace=global_places[i];if(curPlace.getType()!=PPlaceType.CUSTOM&&curPlace.getType()!=PPlaceType.POLYGON){ids.push(curPlace.getID())}}updateSessionPlaces();if(ppolygon==null&&custom_places.length<1){$("#aggFootnote").hide()}}if(cube&&cube.periods.length>15){var width=P.instances.chart.container.style.width;P.instances.chart.container.style.width=parseFloat(width)-40+"px"}else{P.instances.chart.container.style.cssFloat="none";P.instances.chart.container.style.styleFloat="none"}if(global_places.length==0){resetChart();if(global_indicators.length==0){P.instances.table.clear()}}updateChartNotes()}function closePlacePopup(placeId){if(P.instances.rRanks&&P.instances.rRanks.place&&P.instances.rRanks.place.getID()==placeId||P.instances.rPlaces&&(P.instances.rPlaces.place&&P.instances.rPlaces.place.getID()==placeId||P.instances.rPlaces.placeId&&P.instances.rPlaces.placeId==placeId)||P.instances.rPins&&(P.instances.rPins.place&&P.instances.rPins.place.getID()==placeId||P.instances.rPins.placeId&&P.instances.rPins.placeId==placeId)){P.instances.pagePopUp.hide()}}function resetChart(){var chartDiv=$("#chart");chartDiv.html("<img src='/images/sample_chart.gif' />")}function nextAvailablePlaceType(availPlaceTypes,currentPlaceType){var childType=null;if(currentPlaceType){var indPlaceTypes=orderPlaceTypes(availPlaceTypes);var allowPlaceType=function(id){var arr=[PPlaceType.CITY.id,PPlaceType.CBSA.id,PPlaceType.CONGRESSIONAL.id,PPlaceType.SLD_UPPER.id,PPlaceType.SLD_LOWER.id,PPlaceType.MD.id];for(var i=0;i<arr.length;i++){if(id==arr[i])return false}return true};for(var l=0;l<indPlaceTypes.length;l++){if(comparePlaceType(currentPlaceType,indPlaceTypes[l])<0&&allowPlaceType(indPlaceTypes[l].id)){childType=indPlaceTypes[l];break}else if(currentPlaceType==indPlaceTypes[l]&&l<indPlaceTypes.length-1&&allowPlaceType(indPlaceTypes[l+1].id)){childType=indPlaceTypes[l+1];break}}}return childType}function isTablesAggregatePlaceType(type,includeCustomPoly){if(includeCustomPoly==true&&(type==PPlaceType.CUSTOM||type==PPlaceType.POLYGON)){return true}for(var i=0;i<tablesAggPlaceTypes.length;i++){if(tablesAggPlaceTypes[i]==type){return true}}return false}function rotateLabels(){var periods=P.instances.table&&P.instances.table.cube&&P.instances.table.cube.getPeriods?P.instances.table.cube.getPeriods():"";var aPeriods=new String(periods).split(",");if(aPeriods.length<=1&&P.instances.table.cube.getPlaces().length>4){$(".xLabel").css({"writing-mode":"tb-rl","max-height":"100px"});var elms=$(".xLabel");var maxHeight=0;for(var i=0;i<elms.length;i++)maxHeight=maxHeight>$(elms[i]).height()?maxHeight:$(elms[i]).height();if(maxHeight>50)$("#chart").height($("#chart").height()+maxHeight-50)}}function selectColumn(col){var trs=$("#table tr");var ths=$("#table th");var tds=$("#table td");if(col==null&&cHeader!=null){ths.each(function(i){if($(this).find("div:last").html()==cHeader){col=i;return false}})}if(col!=null){cHeader=$(ths[col]).find("div:last").html();ths.addClass("non-selected-column");tds.addClass("non-selected-column");trs.each(function(){$(this.cells[col]).removeClass("non-selected-column")})}}function unselectColumn(){cHeader=null;$("#table th, #table td").removeClass("non-selected-column","")}function resetChartsCustomPlace(){custom_places=[];polycreator.reset()}function resetChartsPolygonPlace(){ppolygon=null;session.remove("bid")}function resetAggData(){aggData={values:{},types:{}}}function removeFromCustomPlacesArray(place){var placeId=place.getID();for(var i=0;i<custom_places.length;i++){if(custom_places[i].getID()==placeId){custom_places.splice(i,1);break}}}function isNumeric(sText){if(sText){var ValidChars="-0123456789.e+";var IsNumber=true;var Char;for(var i=0;i<sText.length&&IsNumber==true;i++){Char=sText.charAt(i);if(ValidChars.indexOf(Char)==-1){IsNumber=false}}return IsNumber}}function resetTables(){P.instances.table.clear();P.instances.table.clearOverlaySets();P.instances.chart.clear();legend.clear();P.instances.pagePopUp.hide();global_places=[];global_indicators=[];global_periods=[];rankingCube=null;resetCubeQueue();resetChartsCustomPlace();resetChartsPolygonPlace();resetAggData();session.removeAllRelevant();resetChart();updateChartNotes(true);$("#aggFootnote").hide();clearHideSimilarBox();refreshCubeRunning=false;P.instances.table.eventManager.triggerEvent("removeindicator");search.reset();resetDatasetSearch()}function resetCubeQueue(){cubeQueue={places:[],sites:[],indicator:null}}function loadTableFromSession(params){session.checkUrl(params);if(PEnvironment.isPolicyMap){platformRebuildPopup=new PlatformRebuildPopup}var urlParms=getUrlParams();if((urlParms["cp"]!=null||urlParms["bid"]!=null&&urlParms["pname"]!=null&&urlParms["plat"]!=null&&urlParms["plng"]!=null)&&urlParms["ps"]==null){session.remove("ps")}if(session.get("i")){selectIndicators(session.get("i"))}if(session.get("o")||session.get("dlo")){var promises=[];if(session.get("o")){oids=session.get("o").toString().split(",");_.each(oids,function(oid){promises.push(getOverlaySet(oid,"old"))})}if(session.get("dlo")){dloids=session.get("dlo").toString().split(",");_.each(dloids,function(dloid){promises.push(getOverlaySet(dloid,"dl"))})}$.when.apply($,promises).then(function(){P.instances.table.clearOverlaySets();for(var i=0;i<arguments.length;i++){if(arguments[i]!=null){P.instances.table.addOverlaySet(arguments[i])}}})}var btid;if(session.get("agg")){btid=session.get("agg")}if(btid){aggPlaceType=boundaryTypes.getTypeById(btid)}var loadCustom=false;var loadPoly=false;if(session.get("cp")&&custom_places.length==0&&isSubscriber()){loadCustom=true;onLoadRefreshCube(1)}if(session.get("bid")&&session.get("pname")&&session.get("plat")&&session.get("plng")&&ppolygon==null){loadPoly=true;onLoadRefreshCube(1)}if(loadCustom){polycreator.load(session.get("cp"),function(places){if(places.length>0){polycreator.addCustomRegionForTable(places,true);onLoadRefreshCube(0,places)}})}if(loadPoly){polycreator.polyload(session.get("bid"),session.get("pname"),session.get("plat"),session.get("plng"),function(places){if(places[0]){onLoadRefreshCube(0,places)}})}else{session.remove("bid");session.remove("pname");session.remove("plat");session.remove("plng")}if(session.get("chp")){addPlaceType(session.get("chp"));session.remove("chp")}else if(session.get("ps")||session.get("p")){var ps=session.get("ps")?session.get("ps"):"";ps+=session.get("p")&&ps.indexOf(session.get("p"))<0?(ps.length>0?",":"")+session.get("p"):"";addPlaceType(ps)}if(session.get("period")){var periods=session.get("period").split(",");if(periods.length>1){setTablesPeriod(periods)}}var nn=function(foo){return foo!=null};if(nn(urlParms["rpl1"])&&nn(urlParms["rpl2"])&&nn(urlParms["rpl3"])&&nn(urlParms["rpl4"])&&nn(urlParms["rpl5"])&&nn(urlParms["rpl6"])){var rpl10=50;if(nn(urlParms["rpl10"])){rpl10=urlParms["rpl10"]}P.instances.rPlaces.load(urlParms["rpl1"],urlParms["rpl2"],urlParms["rpl3"],urlParms["rpl4"],urlParms["rpl5"],urlParms["rpl6"],rpl10,urlParms["rpl8"])}else if(nn(urlParms["rpp1"])&&nn(urlParms["rpp2"])&&nn(urlParms["rpp3"])&&nn(urlParms["rpp4"])&&nn(urlParms["rpp5"])){var rpp9="old";if(nn(urlParms["rpp9"])){rpp9=urlParms["rpp9"]}P.instances.rPins.load(urlParms["rpp1"],urlParms["rpp2"],rpp9,urlParms["rpp3"],urlParms["rpp4"],urlParms["rpp5"],urlParms["rpp6"],null,urlParms["rpp8"],urlParms["rpp10"])}}var Taxonomy=function(_nodes,_type){var nodes=_nodes;var type=_type;var rootNodes=_.filter(nodes,function(node){return node.parent_node_id===null});this.rootNodes=rootNodes;var self=this;this.setTaxonomyData=function(_data){this.data=_data;this.setNodes(_data.tax.taxonomy)};this.setNodes=function(_nodes){nodes=_nodes;rootNodes=_.filter(nodes,function(node){return node.parent_node_id===null})};this.getNode=function(nodeId){return nodes[nodeId]};this.hasNodes=function(){return nodes};this.getRootNodes=function(){return rootNodes};this.getRootNodeIdByLabel=function(label){var rootNode=_.find(rootNodes,function(node){return node.label.toLowerCase()===_.unescape(label.toLowerCase())});if(rootNode===void 0){return false}return rootNode.node_id};this.getNodeIdsByIndicatorId=function(indicatorId){return _.chain(nodes).filter(function(node){return _.contains(node.indicator_ids,indicatorId)}).map(function(node){return node.node_id}).value()};this.getNodeIdsByDatasetId=function(datasetId){var ret=[];$.each(nodes,function(k,v){if(v.dataset_id==datasetId){ret.push(v.node_id)}});return ret};this.setType=function(_type){type=_type};this.getType=function(){return type};this.isLayersTaxonomy=function(){return type!=null&&type==P.constants.TAXONOMY_TYPE_LAYERS};this.isPointsTaxonomy=function(){return type!=null&&type==P.constants.TAXONOMY_TYPE_POINTS};this.getGeoBoundaryId=function(nodeId){return nodes[nodeId].geo_boundary_id};this.getShortLabel=function(nodeId){return nodes[nodeId].short_label};this.getLabel=function(nodeId){return nodes[nodeId].label};this.exists=function(nodeId){return nodes[nodeId]!==void 0};this.hasIndicators=function(nodeId){return nodes[nodeId].indicator_ids!==null};this.getIndicators=function(nodeId){return nodes[nodeId].indicator_ids};this.hasDataset=function(nodeId){return nodes[nodeId].dataset_id!==null};this.getDataset=function(nodeId){return nodes[nodeId].dataset_id};this.hasData=function(nodeId){if(self.isLayersTaxonomy()){return self.hasIndicators(nodeId)}else if(self.isPointsTaxonomy()){return self.hasDataset(nodeId)}else{return null}};this.getData=function(nodeId){if(self.isLayersTaxonomy()){return self.getIndicators(nodeId)}else if(self.isPointsTaxonomy()){return self.getDataset(nodeId)}else{return null}};this.getChildrenOfNode=function(nodeId){if(nodes[nodeId]===void 0){return[]}else{return _.map(nodes[nodeId].children,function(childId){return nodes[childId]})}};this.getChildrenOfNodeWithInlineChildren=function(nodeId){var children=self.getChildrenOfNode(nodeId);for(var i=children.length-1;i>=0;i--){if(children[i].disposition==="inline"){children.splice.apply(children,[i+1,0].concat(self.getChildrenOfNode(children[i].node_id)))}}return children};this.getPathToNodeId=function(nodeId){function buildPath(nodeId,childPath){var path=nodes[nodeId].label.replace(/"/g,"'");if(childPath!==""){path+=" > "+childPath}if(nodes[nodeId].parent_node_id!==null){return buildPath(nodes[nodeId].parent_node_id,path)}else{return path}}return buildPath(nodeId,"")};this.getRootNodeOfIndicatorId=function(indicatorId){var rootNodeId=_.chain(self.getNodeIdsByIndicatorId(indicatorId)).first().value();return self.getRootNodeOfNodeId(rootNodeId)};this.getRootNodeOfNodeId=function(nodeId){
var currentNode=self.getNode(nodeId);if(currentNode.parent_node_id===null){return currentNode}else{return self.getRootNodeOfNodeId(currentNode.parent_node_id)}};this.getAllChildrenOfNodeId=function(nodeId){function getChildrenRecursive(nodeId,children){children.push(nodes[nodeId]);_.each(self.getChildrenOfNode(nodeId),function(child){getChildrenRecursive(child.node_id,children)});return children}return _.tail(getChildrenRecursive(nodeId,[]))}};var TaxonomyMenu=function(_$taxonomyTabsContainer,$taxonomyMenuContainer,_logger,_map,_fake){var fake=_fake;var TAXONOMY_ID_PREFIX="taxonomy-node-id_";var TAXONOMY_MENU_COLUMN_HEIGHT=433;var TAXONOMY_MENU_COLUMN_WIDTH=228;var SUB_MENU_TIMEMOUT_DELAY=500;var MAX_NUM_SUBMENUS=2;var MAX_NUM_PROMOTIONAL_LINKS=3;var MAX_NUM_QUICK_ANSWERS=2;var MAX_NUM_QUICK_ANALYSES=2;var PROMOTIONAL_LINK_MAX_LINE_NUMBERS=2;var TAXONOMY_TYPE_LAYERS=P.constants.TAXONOMY_TYPE_LAYERS;var TAXONOMY_TYPE_POINTS=P.constants.TAXONOMY_TYPE_POINTS;var TYPE_INDICATOR=2;var TYPE_POINT=7;var TYPE_USERDATASET=10;var PUBLIC_DATASET_TOOLTIP_CLASS=".my-data-menu__public-dataset-tooltip";var SUB_MENU_HIDE_EVENT="taxonomyDataLayersSubMenuHide";P.instances.taxonomyMenu=this;var logger=_logger;var map=_map;var $taxonomyTabsContainer=_$taxonomyTabsContainer;this.$taxonomyRootItems=$(".taxonomy__tab")||this.$taxonomyRootItems;var $taxonomyRootItems=this.$taxonomyRootItems;var $taxonomyMenu=$taxonomyMenuContainer;var $elementsToShadeOnTaxonomyMenuShow=$(".content__header, .content__breadcrumbs, #map, #googleMap");var $overlay=$(".taxonomy-menu__overlay");var $taxonomyMenuPadding=$(".taxonomy-menu__padding");var taxonomyMenuClass="taxonomy-menu";var myDataMenuClass="my-data-menu";var currentActiveNodeId;var myUploadedData;var myPointSets;var $myUploadedDataContainer=$(".my-data-menu__uploaded-data__content");var myUploadedDataTemplate;var $myUploadedDataHeader;var $myUploadedDataItems;if($myUploadedDataContainer.length>0){myUploadedDataTemplate=_.template($("#js-my-data-menu__uploaded-data__content__template").html());$myUploadedDataHeader=$(".my-data-menu__uploaded-data__item-header");$myUploadedDataItems=$(".my-data-menu__uploaded-data__item")}var myUploadedDataSortColumn="created";var isMyUploadedDataSortedByAscending=false;var dataSharedWithMe;var $dataSharedWithMeContainer=$(".my-data-menu__shared-data__content");var dataSharedWithMeTemplate;var $dataSharedWithMeHeader;var $dataSharedWithMeItems;if($dataSharedWithMeContainer.length>0){dataSharedWithMeTemplate=_.template($("#js-my-data-menu__shared-data__content__template").html());$dataSharedWithMeHeader=$(".my-data-menu__shared-data__item-header");$dataSharedWithMeItems=$(".my-data-menu__shared-data__item")}var dataSharedWithMeSortColumn="created";var isDataSharedWithMeSortedByAscending=false;var dataByMeOrOthers;var $dataByMeOrOthersContainer=$(".my-data-menu__me-others__content");var dataByMeOrOthersTemplate;var $dataByMeOrOthersHeader;var $dataByMeOrOthersItems;if($dataByMeOrOthersContainer.length>0){dataByMeOrOthersTemplate=_.template($("#js-my-data-menu__me-others__content__template").html());$dataByMeOrOthersHeader=$(".my-data-menu__me-others__item-header");$dataByMeOrOthersItems=$(".my-data-menu__me-others__item")}var dataByMeOrOthersSortColumn="created";var isDataByMeOrOthersSortedByAscending=false;var $myDataMenuPadding=$(".my-data-menu__padding");var $myDataMenu=$("."+myDataMenuClass);var $myDataMenuDataLayers=$("."+myDataMenuClass+" .taxonomy-menu__data-layers");var $myDataMenuDataPoints=$("."+myDataMenuClass+" .taxonomy-menu__data-points");var taxonomy=new Taxonomy(null,TAXONOMY_TYPE_LAYERS);this.taxonomy=taxonomy;var $dataLayers=$("."+taxonomyMenuClass+" .taxonomy-menu__data-layers");var dataLayersColumnClass="taxonomy-menu__data-layers__column";var dataLayersColumnListItemSelector=".taxonomy-menu__data-layers__column li";var pinTaxonomy=new Taxonomy(null,TAXONOMY_TYPE_POINTS);var dataloaderTaxonomy=new Taxonomy(null,TAXONOMY_TYPE_POINTS);this.pinTaxonomy=pinTaxonomy;var taxonomies={};taxonomies[TAXONOMY_TYPE_LAYERS]=taxonomy;taxonomies[TAXONOMY_TYPE_POINTS]=pinTaxonomy;this.taxonomies=taxonomies;var $dataPoints=$("."+taxonomyMenuClass+" .taxonomy-menu__data-points");var dataPointsColumnClass="taxonomy-menu__data-points__column";var dataPointsColumnListItemSelector=".taxonomy-menu__data-points__column li";var dataTemplate=_.template($("#js-taxonomy-menu__data__template").html());var subMenu;var subMenuClass="taxonomy-menu__data__submenu";var taxonomyQuickAnswers;var taxonomyQuickAnalyses;var quickAnswersTemplate;var quickAnalysesTemplate;var $quickAnswersContainer=$(".taxonomy-menu__quick-answers__container");if($quickAnswersContainer.length>0){quickAnswersTemplate=_.template($("#js-taxonomy-menu__quick-answers__template").html());quickAnalysesTemplate=quickAnswersTemplate}var $quickAnswersTextReplacement=$(".taxonomy-menu__quick-answers__text-replacement");var promotionalLinksTemplate=_.template($("#js-taxonomy-menu__promotional-links__template").html());var $promotionalLinksContainer=$(".taxonomy-menu__promotional-links__container");var $promotionalLinksAnchors=$(".taxonomy-menu__promotional-link a");var promotionalLinks;var favorites=null;var $favoritesContainer=$(".my-data-menu__favorites__content");if($favoritesContainer.length>0){var favorites=new TrfFavorites(taxonomy,$(".content__header__favorites-toggle"),logger)}else{$(".content__header__favorites-toggle").remove()}var BANNERS_DIRECTORY="/images/PolicyMap/menu_banners/";var $banner=$(".taxonomy-menu__promotional-data__banner");var $currentRootNode;var $activeRootNode;var self=this;setLayerPointColumnWidths();initSubMenus();if(!productProperty.getValue("auto_login")||session.get("_userid")!=null){refreshData()}if($overlay.length===0){$overlay=$('<div class="taxonomy-menu__overlay is-hidden"></div>');$taxonomyMenu.before($overlay)}if($taxonomyMenuPadding.length===0){$taxonomyMenuPadding=$('<div class="taxonomy-menu__padding is-hidden"></div>');$taxonomyMenu.before($taxonomyMenuPadding)}if($myDataMenuPadding.length===0){$myDataMenuPadding=$('<div class="my-data-menu__padding is-hidden"></div>');$myDataMenu.before($myDataMenuPadding)}this.getFavorites=function(){return favorites};$overlay.click(function(){var $selectedRootItems=self.$taxonomyRootItems.filter(".is-selected");if($selectedRootItems.length>0){$selectedRootItems.removeClass(".is-selected");self.hide()}});$(window).on(P.events.GOOGLE_MAP_LOADED,function(){$elementsToShadeOnTaxonomyMenuShow=$(".content__header, .content__breadcrumbs, #map, #googleMap")});$(window).on(P.events.LOGGED_IN,function(){logger.log(P.Debug.INFO,"taxonomy login detected");refreshData();self.resetActiveRootNodes()});$(window).on(P.events.LOGGED_OUT,function(){logger.log(P.Debug.INFO,"taxonomy logout detected");refreshData();self.resetActiveRootNodes()});function refreshData(){function getIndTaxonomyData(){function successCallback(data){if(data!==void 0&&data.responseCode===200){taxonomy.setTaxonomyData(data);logger.log(P.Debug.INFO,"taxonomy initialized");ria=data.tax.ria;logger.log(P.Debug.INFO,"ria array initialized");globalIndListBubble=data.tax.my_globalTabsInds;if(globalIndListBubble){loadIndicatorsForCustomizedIdentify()}}}function failureCallback(){logger.log(P.Debug.ERROR,"Taxonomy Error: Unable to get url: "+PEnvironment.dataServicesUrl+"?ty=data&t=tax&act=i")}return getProductTaxonomyData(successCallback,failureCallback,"i")}function getAllTaxonomyData(){function successCallback(data){if(data!==void 0&&data.responseCode===200){taxonomy.setTaxonomyData(data);logger.log(P.Debug.INFO,"taxonomy initialized");ria=data.tax.ria;logger.log(P.Debug.INFO,"ria array initialized");globalIndListBubble=data.tax.my_globalTabsInds;if(globalIndListBubble){loadIndicatorsForCustomizedIdentify()}}}function failureCallback(){logger.log(P.Debug.ERROR,"Taxonomy Error: Unable to get url: "+PEnvironment.dataServicesUrl+"?ty=data&t=tax&act=a")}return getProductTaxonomyData(successCallback,failureCallback,"a")}function getPinTaxonomyData(){return ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=tax&act=p",success:function(data){if(data!==void 0&&data.responseCode===200){pinTaxonomy.setTaxonomyData(data);logger.log(P.Debug.INFO,"pin taxonomy initialized");myPointSets=data.tax.mine;logger.log(P.Debug.INFO,"my point sets initialized");dataSharedWithMe=data.tax.shared;logger.log(P.Debug.INFO,"my shared point sets initialized")}}})}function getUserNodePinTaxonomyData(){return ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=tax&act=u",success:function(data){if(data!==void 0&&data.responseCode===200){if(isWKSiteLicense()){buildWKDataTab(data);logger.log(P.Debug.INFO,"wk user pin taxonomy initialized")}}}})}function getQuickAnswersData(){if(PEnvironment.pageName==="analytics"){return ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=qa&act=ga",success:function(data){if(data!==void 0){taxonomyQuickAnalyses=data.qa;logger.log(P.Debug.INFO,"quick analyses initialized")}}})}else{return ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=qa&act=gm",success:function(data){if(data!==void 0){taxonomyQuickAnswers=data.qa;logger.log(P.Debug.INFO,"quick answers initialized")}}})}}function getPromotionalLinks(){return ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=wp&act=cat",success:function(data){if(data!==void 0){promotionalLinks=_.pluck(data.wp.posts,"post");logger.log(P.Debug.INFO,"promotional links initialized")}}})}hideTaxonomyMenu();hideMyDataMenu();$taxonomyTabsContainer.addClass("is-shaded");if(isWidgetPage()){var isWK=isWKWidget();self.isWK=isWK;if(isWK){$.when(getAllTaxonomyData(),getUserNodePinTaxonomyData()).done(function(){if(self.isWK){pincats=pinTaxonomy.data.tax.taxonomy;addAllSitesWK()}buildWidgetMenu();logger.log(P.Debug.INFO,"TaxonomyMenu data is refreshed")})}else{$.when(getAllTaxonomyData()).done(function(){buildWidgetMenu();logger.log(P.Debug.INFO,"TaxonomyMenu data is refreshed")})}}else{var getUserNodePinTax=function(){return true};if(isWKSiteLicense()){getUserNodePinTax=getUserNodePinTaxonomyData}$.when(getIndTaxonomyData(),getPinTaxonomyData(),getUserNodePinTax(),getQuickAnswersData(),getPromotionalLinks()).done(function(){if(favorites){favorites.updateFavorites()}renderMyUploadedData();renderDataSharedWithMe();renderDataByMeOrOthers();logger.log(P.Debug.INFO,"TaxonomyMenu data is refreshed");$taxonomyTabsContainer.removeClass("is-shaded");$taxonomyMenu.trigger("change")})}}function renderMyUploadedData(){dnf.updateNames();var myDataLabel=dnf.getName("myDataTab");var taxonomyNodeId=taxonomy.getRootNodeIdByLabel(myDataLabel);var pinTaxonomyNodeId=pinTaxonomy.getRootNodeIdByLabel(myDataLabel);var dataLayers=taxonomy.getChildrenOfNode(taxonomyNodeId);var dataPoints=pinTaxonomy.getChildrenOfNode(pinTaxonomyNodeId);if($myDataMenu.find(".taxonomy-menu__data-layers").length>0){renderData(dataLayers,$myDataMenu,TAXONOMY_TYPE_LAYERS,myDataLabel)}if($myDataMenu.find(".taxonomy-menu__data-points").length>0){renderData(dataPoints,$myDataMenu,TAXONOMY_TYPE_POINTS,myDataLabel)}if($myUploadedDataContainer.length==0){return}myUploadedData=myPointSets.concat(dataLayers).concat(dataPoints);myUploadedData=_.sortBy(myUploadedData,function(myUploadedDataSet){var column;var day,month,year,date;switch(myUploadedDataSortColumn){case"name":column=myUploadedDataSet.label;break;case"type":column=myUploadedDataSet.type;break;case"author":column=myUploadedDataSet.owner_first+" "+myUploadedDataSet.owner_last;break;case"access":column=myUploadedDataSet.permission;break;default:if(myUploadedDataSet.created){myUploadedDataSortColumn="created";date=myUploadedDataSet.created.split("/");day=date[1];month=date[0];year=date[2];column=new Date(year+"-"+month+"-"+day).getTime()}else{return""}}return column});if(!isMyUploadedDataSortedByAscending){myUploadedData.reverse()}$myUploadedDataContainer.html(myUploadedDataTemplate({pointSets:myUploadedData,sortColumn:myUploadedDataSortColumn,isAscendingSort:isMyUploadedDataSortedByAscending,isSiteLicense:PEnvironment.isSiteLicense,isPublicUser:isPublicUser()}));$myUploadedDataContainer.find(PUBLIC_DATASET_TOOLTIP_CLASS).tooltip();$myUploadedDataHeader=$($myUploadedDataHeader.selector);$myUploadedDataItems=$($myUploadedDataItems.selector);bindMyUploadedData(myUploadedData)}function bindMyUploadedData(myUploadedData){var $headers=$myUploadedDataHeader.find("th");$headers.filter(":lt(3)").click(function sortByHeader(event){var columnName=$.trim($(this).text().toLowerCase());event.preventDefault();if(myUploadedDataSortColumn===columnName){isMyUploadedDataSortedByAscending=!isMyUploadedDataSortedByAscending}else{myUploadedDataSortColumn=columnName;isMyUploadedDataSortedByAscending=true}renderMyUploadedData()});disableWheelScrollPropagation(".my-data-menu__uploaded-data__data");$myUploadedDataItems.each(function(index){var $self=$(this);var $name=$self.children(".my-data-menu__uploaded-data__name");var $edit=$self.find(".my-data-menu__uploaded-data__edit a");var $download=$self.find(".my-data-menu__uploaded-data__download a");var isPointSet=$self.children(".my-data-menu__data-type").hasClass("my-data-menu__data-type--pointset");$name.click(function toggleData(event){event.preventDefault();var node=myUploadedData[index];if(node.denied_access||!node.has_access){subscribeAlert(null,"subscriber-uploaded-data");return}if(isPointSet){toggleMyUploadedDataPointSet($self,node.dataset_id,node.type)}else{toggleMyUploadedDataLayer($self,node.node_id)}hideMyDataMenu()});$edit.click(function(event){event.preventDefault();var node=myUploadedData[index];if(node.denied_access||!node.has_access){subscribeAlert(null,"subscriber-uploaded-data")}else{setWindowLocation("/dataloader?di="+node.dataset_id)}});$download.click(function(event){event.preventDefault();var node=myUploadedData[index];if(node.denied_access||!node.has_access){subscribeAlert(null,"subscriber-uploaded-data")}else{setWindowLocation(PEnvironment.dataServicesUrl+"?ty=data&t=dl&act=dl&di="+node.dataset_id)}})})}function renderDataSharedWithMe(){if($dataSharedWithMeContainer.length==0){return}dataSharedWithMe=_.sortBy(dataSharedWithMe,function(sharedPointSet){var column;var day,month,year,date;switch(dataSharedWithMeSortColumn){case"name":column=sharedPointSet.label;break;case"type":column=sharedPointSet.type;break;case"author":column=myUploadedDataSet.owner_first+" "+myUploadedDataSet.owner_last;break;case"access":column=myUploadedDataSet.permission;break;default:if(sharedPointSet.created){dataSharedWithMeSortColumn="created";date=sharedPointSet.created.split("/");day=date[1];month=date[0];year=date[2];column=new Date(year+"-"+month+"-"+day).getTime()}else{return""}}return column});if(!isDataSharedWithMeSortedByAscending){dataSharedWithMe.reverse()}$dataSharedWithMeContainer.html(dataSharedWithMeTemplate({dataSharedWithMe:dataSharedWithMe,sortColumn:dataSharedWithMeSortColumn,isAscendingSort:isDataSharedWithMeSortedByAscending,isSiteLicense:PEnvironment.isSiteLicense,isPublicUser:isPublicUser(),isAutoLoginUser:isAutoLoginUser()}));if($dataSharedWithMeContainer.children().length<1){var $parent=$dataSharedWithMeContainer.parent();$parent.find(".my-data-menu__header-icon, .taxonomy-menu__header_content").hide()}else{var $parent=$dataSharedWithMeContainer.parent();$parent.find(".my-data-menu__header-icon, .taxonomy-menu__header_content").show()}$dataSharedWithMeHeader=$($dataSharedWithMeHeader.selector);$dataSharedWithMeItems=$($dataSharedWithMeItems.selector);bindDataSharedWithMe()}function bindDataSharedWithMe(){var $headers=$dataSharedWithMeHeader.find("th");$headers.click(function(event){var columnName=$.trim($(this).text().toLowerCase());event.preventDefault();if(dataSharedWithMeSortColumn===columnName){isDataSharedWithMeSortedByAscending=!isDataSharedWithMeSortedByAscending}else{dataSharedWithMeSortColumn=columnName;isDataSharedWithMeSortedByAscending=true}renderDataSharedWithMe()});$dataSharedWithMeItems.each(function(index){var $pointSet=$(this);var $name=$pointSet.find(".my-data-menu__shared-data__name");var $download=$pointSet.find(".my-data-menu__shared-data__download a");$name.click(function(event){event.preventDefault();var node=dataSharedWithMe[index];if($(this).hasClass("is-active")){removeOverlaySet(node.dataset_id,node.type);$(this).removeClass("is-active")}else{addOverlaySet(node.dataset_id,node.type);$(this).addClass("is-active")}hideMyDataMenu()});$download.click(function(event){event.preventDefault();var node=dataSharedWithMe[index];if(node.download){setWindowLocation(PEnvironment.dataServicesUrl+"?ty=data&t=dl&act=dl&di="+node.dataset_id)}})})}function renderDataByMeOrOthers(){if($dataByMeOrOthersContainer.length==0){return}dataByMeOrOthers=myPointSets.concat(dataSharedWithMe);dataByMeOrOthers=_.sortBy(dataByMeOrOthers,function(pointSet){var column;var day,month,year,date;switch(dataSharedWithMeSortColumn){case"name":column=pointSet.label;break;case"type":column=pointSet.type;break;case"author":column=myUploadedDataSet.owner_first+" "+myUploadedDataSet.owner_last;break;case"access":column=myUploadedDataSet.permission;break;default:if(pointSet.created){dataSharedWithMeSortColumn="created";date=pointSet.created.split("/");day=date[1];month=date[0];year=date[2];column=new Date(year,month,day).getTime()}else{return""}}return column});if(!isDataByMeOrOthersSortedByAscending){dataByMeOrOthers.reverse()}$dataByMeOrOthersContainer.html(dataByMeOrOthersTemplate({dataByMeOrOthers:dataByMeOrOthers,sortColumn:dataByMeOrOthersSortColumn,isAscendingSort:isDataByMeOrOthersSortedByAscending,isPublicUser:isPublicUser()}));$dataByMeOrOthersContainer.find(PUBLIC_DATASET_TOOLTIP_CLASS).tooltip();$dataByMeOrOthersHeader=$($dataByMeOrOthersHeader.selector);$dataByMeOrOthersItems=$($dataByMeOrOthersItems.selector);bindDataByMeOrOthers()}function bindDataByMeOrOthers(){var $headers=$dataByMeOrOthersHeader.find("th");$headers.click(function(event){var columnName=$.trim($(this).text().toLowerCase());event.preventDefault();if(dataByMeOrOthersSortColumn===columnName){isDataByMeOrOthersSortedByAscending=!isDataByMeOrOthersSortedByAscending}else{dataByMeOrOthersSortColumn=columnName;isDataByMeOrOthersSortedByAscending=true}renderDataByMeOrOthers()});$dataByMeOrOthersItems.each(function(index){var $pointSet=$(this);var $name=$pointSet.find(".my-data-menu__me-others__name");var $download=$pointSet.find(".my-data-menu__me-others__download a");$name.click(function(event){event.preventDefault();var node=dataByMeOrOthers[index];if(node.denied_access||!node.has_access){subscribeAlert(null,"subscriber-uploaded-data");return}if($(this).hasClass("is-active")){removeOverlaySet(dataByMeOrOthers[index].dataset_id,dataByMeOrOthers[index].type);$(this).removeClass("is-active")}else{addOverlaySet(dataByMeOrOthers[index].dataset_id,dataByMeOrOthers[index].type);$(this).addClass("is-active")}hideMyDataMenu()});$download.click(function(event){event.preventDefault();var node=dataByMeOrOthers[index];if(node.denied_access||!node.has_access){subscribeAlert(null,"subscriber-uploaded-data")}else if(node.download){setWindowLocation(PEnvironment.dataServicesUrl+"?ty=data&t=dl&act=dl&di="+node.dataset_id)}})})}function toggleMyUploadedDataPointSet($element,datasetId,datasetType){if($element.hasClass("is-active")){removeOverlaySet(datasetId,datasetType);$element.removeClass("is-active")}else{addOverlaySet(datasetId,datasetType);$element.addClass("is-active")}}function toggleMyUploadedDataLayer($element,nodeId){if($element.hasClass("is-active")){var text="Are you sure you want to clear the data layer currently displayed?";alerter.popup(text,"No","Yes",function(){$element.removeClass("is-active")})}else{if(selectNodeByIdAndType(nodeId,TAXONOMY_TYPE_LAYERS)){$element.addClass("is-active")}else{logger.log(P.Debug.ERROR,"Unable to select Node: "+nodeId)}}}function renderData(nodes,$menu,type,rootLabel){var leftNodes=nodes;var rightNodes=[];var nodesWithBreak;var dataColumnClass;var curTaxonomy;if(type==TAXONOMY_TYPE_LAYERS){dataColumnClass=dataLayersColumnClass;curTaxonomy=taxonomy}else if(type==TAXONOMY_TYPE_POINTS){dataColumnClass=dataPointsColumnClass;curTaxonomy=pinTaxonomy}var $dataColumns=$menu.find("."+dataColumnClass);var $leftDataColumn=$dataColumns.filter(":eq(0)");var $rightDataColumn=$dataColumns.filter(":eq(1)");var singleColumn=$rightDataColumn.length==0;if(singleColumn){$leftDataColumn.addClass("scroll-column")}else{var $tempDataColumn=$("#js-"+dataColumnClass+"--temp");if($tempDataColumn.length===0){var newDiv=document.createElement("div");newDiv.id="js-"+dataColumnClass+"--temp";newDiv.className=dataColumnClass+" taxonomy-menu__data__temp-column";newDiv.style.visibility="hidden";newDiv.style.position="fixed";newDiv.style.bottom="-"+TAXONOMY_MENU_COLUMN_HEIGHT+"px";$("body").append(newDiv);$tempDataColumn=$($tempDataColumn.selector)}nodesWithBreak=_.filter(leftNodes,function(node){return node.disposition==="inline break"||node.disposition==="break"});if(_.size(nodesWithBreak)===0||P.constants.isKeyboardAccessOn){$tempDataColumn.html(dataTemplate({nodes:leftNodes,idPrefix:TAXONOMY_ID_PREFIX,taxonomy:curTaxonomy,rootLabel:rootLabel,firstColumn:false,isKeyboardAccessOn:P.constants.isKeyboardAccessOn}));if(P.constants.isKeyboardAccessOn){$("."+dataColumnClass).css("overflow","scroll")}else{while($tempDataColumn.children("ul").height()>=TAXONOMY_MENU_COLUMN_HEIGHT){rightNodes.unshift(leftNodes.pop());$tempDataColumn.html(dataTemplate({nodes:leftNodes,idPrefix:TAXONOMY_ID_PREFIX,taxonomy:curTaxonomy,rootLabel:rootLabel,firstColumn:false,isKeyboardAccessOn:P.constants.isKeyboardAccessOn}))}}}else{var leftNodesCount=leftNodes.length;for(var i=0;i<leftNodesCount;i++){var node=leftNodes[i];if(node.disposition==="inline break"||node.disposition==="break"){rightNodes=leftNodes.splice(i,leftNodesCount-i);break}}}}$leftDataColumn.html(dataTemplate({nodes:leftNodes,idPrefix:TAXONOMY_ID_PREFIX,taxonomy:curTaxonomy,rootLabel:rootLabel,firstColumn:true,isKeyboardAccessOn:P.constants.isKeyboardAccessOn}));if(!singleColumn){$rightDataColumn.html(dataTemplate({nodes:rightNodes,idPrefix:TAXONOMY_ID_PREFIX,taxonomy:curTaxonomy,rootLabel:rootLabel,firstColumn:false,isKeyboardAccessOn:P.constants.isKeyboardAccessOn}))}var allNodes=singleColumn?leftNodes:leftNodes.concat(rightNodes);disableNodesAndHeaders(allNodes,curTaxonomy);bindDataEventHandlers($menu,type)}function renderPromotionalLinks(title,nodeId){var promotionalLinksForNode=_.chain(promotionalLinks).filter(function(promotionalLink){return promotionalLink.node_id===nodeId}).first(MAX_NUM_PROMOTIONAL_LINKS).value();$promotionalLinksContainer.html(promotionalLinksTemplate({title:title,promotionalLinks:promotionalLinksForNode}));$promotionalLinksAnchors=$($promotionalLinksAnchors.selector);truncatePromotionalLinksText(promotionalLinksForNode)}function truncatePromotionalLinksText(promotionalLinks){var linkWords;var fontSize;var wordCount;var truncatedTitles=[];var $tempPromotionalLinksContainer=$("#js-"+$promotionalLinksContainer.selector.substring(1)+"--temp");if($tempPromotionalLinksContainer.length===0){var newDiv=document.createElement("div");newDiv.id=$tempPromotionalLinksContainer.selector.substring(1);newDiv.className=$promotionalLinksContainer.selector.substring(1);newDiv.style.visibility="hidden";newDiv.style.position="fixed";newDiv.style.bottom="-1000px";newDiv.style.width=TAXONOMY_MENU_COLUMN_WIDTH+"px";$("body").append(newDiv);$tempPromotionalLinksContainer=$($tempPromotionalLinksContainer.selector)}$tempPromotionalLinksContainer.html(promotionalLinksTemplate({title:"temp",promotionalLinks:promotionalLinks}));$tempPromotionalLinksContainer.find($promotionalLinksAnchors.selector).each(function(){var $self=$(this);fontSize=Math.floor(parseInt($self.css("font-size").replace("px",""),10));linkWords=$self.text().split(" ");wordCount=linkWords.length;while($self.height()>fontSize*1.5*PROMOTIONAL_LINK_MAX_LINE_NUMBERS){linkWords.pop();$self.text(linkWords.join(" ")+"...")}if(linkWords.length===wordCount){truncatedTitles.push($self.text())}else{truncatedTitles.push(linkWords.join(" ")+"...")}});$promotionalLinksAnchors.each(function(index){$(this).text(truncatedTitles[index])})}function bindRootMenu(){self.$taxonomyRootItems.each(function(index){var $self=$(this);var label=$(this).text();if(label=="Uploaded Data"){label="My Data"}var nodeId=taxonomy.getRootNodeIdByLabel(label);$self.off("click");$self.click(function(e){e.preventDefault();$("."+dataLayersColumnClass+", ."+dataPointsColumnClass).removeClass("is-selected");var nodes,pinSets;if($self.hasClass("is-selected")){$(this).removeClass("is-selected");if($self.hasClass("taxonomy__tab--my-data")){hideMyDataMenu()}else{hideTaxonomyMenu()}}else{$self.siblings().removeClass("is-selected").removeClass("is-active");$self.addClass("is-selected");$currentRootNode=$self;if($self.hasClass("taxonomy__tab--my-data")){showMyDataMenu();var $focusElems=$("."+myDataMenuClass).find("button");if(P.constants.isKeyboardAccessOn&&$focusElems.length){$focusElems.first().focus()}}else{if(nodeId){nodes=taxonomy.getChildrenOfNode(nodeId);if(P.constants.isKeyboardAccessOn){nodes=taxonomy.getAllChildrenOfNodeId(nodeId)}renderData(nodes,$taxonomyMenu,TAXONOMY_TYPE_LAYERS,label);var pinNodeId=pinTaxonomy.getRootNodeIdByLabel(label);pinNodes=pinTaxonomy.getChildrenOfNode(pinNodeId);if(P.constants.isKeyboardAccessOn){pinNodes=pinTaxonomy.getAllChildrenOfNodeId(pinNodeId)}renderData(pinNodes,$taxonomyMenu,TAXONOMY_TYPE_POINTS,label);if(productProperty.getValue("disable_quick_answers")==true){var qar=productProperty.getValue("quick_answers_replacement_html");if(qar!=null&&qar!=false){$quickAnswersTextReplacement.show();$quickAnswersTextReplacement.html(qar)}}else{renderPromotionalLinks(label,nodeId);if(PEnvironment.pageName==="maps"){renderQuickAnswers(label)}else if(PEnvironment.pageName==="analytics"){renderQuickAnalyses(label)}}renderBanner($(this));showTaxonomyMenu();if(P.constants.isKeyboardAccessOn){$("."+dataLayersColumnClass).find("button").first().focus()}}else{$self.removeClass("is-selected")}}}})})}function setLayerPointColumnWidths(){$dataLayers.width($("."+taxonomyMenuClass+" ."+dataLayersColumnClass).length*(TAXONOMY_MENU_COLUMN_WIDTH+2));$dataPoints.width($("."+taxonomyMenuClass+" ."+dataPointsColumnClass).length*(TAXONOMY_MENU_COLUMN_WIDTH+2));$myDataMenuDataLayers.width($("."+myDataMenuClass+" ."+dataLayersColumnClass).length*(TAXONOMY_MENU_COLUMN_WIDTH+2));$myDataMenuDataPoints.width($("."+myDataMenuClass+" ."+dataPointsColumnClass).length*(TAXONOMY_MENU_COLUMN_WIDTH+2))}function initSubMenus(){var taxonomies={};taxonomies[TAXONOMY_TYPE_LAYERS]=taxonomy;taxonomies[TAXONOMY_TYPE_POINTS]=pinTaxonomy;var currentSubmenu,prevSubmenu;for(var depth=1;depth<=MAX_NUM_SUBMENUS;depth++){currentSubmenu=new DataSubMenu(depth,taxonomies,prevSubmenu);if(depth===1){subMenu=currentSubmenu}if(prevSubmenu!==void 0){prevSubmenu.setChildMenu(currentSubmenu)}prevSubmenu=currentSubmenu}}function buildWidgetMenu(){var taxonomy=self.taxonomy;var pinTaxonomy=self.pinTaxonomy;self.$menu=$(".menu-settings");var $t=$(".taxonomy__tabs");var $boundariesTab=$t.find(".map-boundaries__menu-tab");var nodes=taxonomy.getRootNodes();if(self.isWK){var pinnodes=pinTaxonomy.getRootNodes();nodes=nodes.concat(pinnodes)}var buildElement=function(n,$tablist){var $li=$("<li />");$li.attr("id",n.node_id);var $a=$("<a />",{html:'<span class="text">'+n.label+"</span>",tabindex:"0"});$li.append($a);if($tablist){$tablist.append($li);var children=n.children;if(children&&children.length>0){$tablist.addClass("taxonomy-list");buildChildren(n,$li,$tablist)}}else{if($boundariesTab.length){$li.insertBefore($boundariesTab)}else{$t.append($li)}}var nodeId=n.node_id;if(taxonomy.exists(nodeId)&&(taxonomy.hasIndicators(nodeId)||taxonomy.hasDataset(nodeId))){var type;if(taxonomy.hasIndicators(nodeId)){type=TAXONOMY_TYPE_LAYERS;$a.addClass("taxonomy-ind")}else{type=TAXONOMY_TYPE_POINTS;$a.addClass("taxonomy-pin")}$a.prepend('<span class="type-icon"></span>');$a.data({nodeId:nodeId,type:type});$a.click(function(){var d=$(this).data();$currentRootNode=$(this);if(TAXONOMY_TYPE_LAYERS){self.$menu.find(".taxonomy-ind").removeClass("is-active")}selectNodeByIdAndType(d.nodeId,d.type,taxonomy);self.toggleMenu()})}else if(n.isUserDataset){var type;type="wk";$a.addClass("taxonomy-wk");$a.prepend('<span class="type-icon"></span>');$a.data({nodeId:nodeId,type:type,i:n.rootId});$a.click(function(){var d=$(this).data();$currentRootNode=$(this);var i=$(this).data("i");setUpWKTree(i,$(this).text());if(TAXONOMY_TYPE_LAYERS){}self.toggleMenu()})}};$.each(nodes,function(){var nodeId=this.node_id;if(taxonomy.exists(nodeId)&&(taxonomy.hasIndicators(nodeId)||taxonomy.hasDataset(nodeId))||this.isUserDataset){buildElement(this)}else{var className="";if(this.label=="My Data"||this.label=="Philly Data"){className=" taxonomy__tab--my-data"}var $tab=$("<li />",{class:"taxonomy__tab"});if($boundariesTab.length){$tab.insertBefore($boundariesTab)}else{$t.append($tab)}$tab.append('<a tabindex="0">'+this.label+"</a>");var tablists={};var buildChildren=function(n,$tab){var children=n.children;$ul=$("<ul />");tablists[n.node_id]=$ul;$tab.append($ul);$.each(children,function(){var n=taxonomy.getNode(this);var $li=$("<li />");$li.attr("id",n.node_id);var $a=$("<a />",{html:'<span class="text">'+n.label+"</span>",tabindex:"0"});$li.append($a);$tablist=tablists[n.parent_node_id];$tablist.append($li);var children=n.children;if(children&&children.length>0){$tablist.addClass("taxonomy-list");buildChildren(n,$li,$tablist)}var nodeId=n.node_id;var d=taxonomy.hasIndicators(nodeId)||taxonomy.hasDataset(nodeId);if(taxonomy.exists(nodeId)&&(taxonomy.hasIndicators(nodeId)||taxonomy.hasDataset(nodeId))){var type;if(taxonomy.hasIndicators(nodeId)){type=TAXONOMY_TYPE_LAYERS;$a.addClass("taxonomy-ind")}else{type=TAXONOMY_TYPE_POINTS;$a.addClass("taxonomy-pin")}$a.prepend('<span class="type-icon"></span>');$a.data({nodeId:nodeId,type:type});$a.click(function(){var d=$(this).data();$currentRootNode=$(this);if(TAXONOMY_TYPE_LAYERS){self.$menu.find(".taxonomy-ind").removeClass("is-active")}selectNodeByIdAndType(d.nodeId,d.type,taxonomy);self.toggleMenu()})}})};buildChildren(this,$tab)}});var $t=$(".column__menu-toggle");$t.click(function(){self.toggleMenu();$(this).tooltip("hide")});$t.tooltip({title:"Select or change<br />data on map",html:true,placement:"bottom",container:"body",trigger:"hover"});self.$menu.find(".close").click(function(){self.toggleMenu()});self.$taxonomyRootItems=$(".taxonomy__tab");PEvent.addListener(map,"removeindicator",function(ind){var nodeId=taxonomy.getNodeIdsByIndicatorId(ind.id)[0];unSelectTaxonomyNodeElement(nodeId)});PEvent.addListener(map,"setindicator",function(ind){var nodeId=taxonomy.getNodeIdsByIndicatorId(ind.id)[0];selectTaxonomyNodeElement(nodeId)});PEvent.addListener(map,"addoverlayset",function(set){var nodeId=taxonomy.getNodeIdsByDatasetId(set.id)[0];selectTaxonomyNodeElement(nodeId)});PEvent.addListener(map,"setoverlaysets",function(sets){for(var i=0;i<sets.length;i++){var set=sets[i];var nodeId=taxonomy.getNodeIdsByDatasetId(set.id)[0];selectTaxonomyNodeElement(nodeId)}});PEvent.addListener(map,"removeoverlayset",function(set){var nodeId=taxonomy.getNodeIdsByDatasetId(set.id)[0];unSelectTaxonomyNodeElement(nodeId)});$(".taxonomy__tab").off("click");$(".taxonomy").removeClass("taxonomy");$(".taxonomy__tab").removeClass("taxonomy__tab");$(".taxonomy__tabs").removeClass("taxonomy__tabs");$close=self.$menu.find(".close");$(".drilldown-menu").dcDrilldown({taxonomyMenu:self,speed:"fast",saveState:false,showCount:false,linkType:"backlink",resetText:"All",defaultText:"",$closeElement:$close,includeTextModeOption:productProperty.getValue("show_text_only")});$(".drilldown-menu").on("change",function(){self.resizeMenuHeight()});$taxonomyMenu.find(".dd-container").css("height","100%");$(".background-pane").click(function(){if(!self.$menu.hasClass("hidden")){self.toggleMenu()}});$(".dd-container").hide()
;$(".dd-container").css({visibility:"visible"});logger.log(P.Debug.INFO,"TaxonomyMenu data is refreshed");$taxonomyTabsContainer.removeClass("is-shaded");$taxonomyMenu.trigger("change");$window=$(window);$window.resize(function(){self.resizeMenuHeight()})}this.toggleMenu=function(){var $dd=$taxonomyMenu.find(".dd-container");$dd.stop();$dd.animate({left:"toggle"},{duration:300});var $m=self.$menu;if($m.hasClass("hidden"))$m.removeClass("hidden");else $m.addClass("hidden");self.resizeMenuHeight()};this.resizeMenuHeight=function(){$taxonomyMenu.find(".dd-content").css("height",function(){return window.innerHeight-$(this).offset().top-3})};this.on=function(event,callback){$taxonomyMenu.on(event,callback)};this.once=function(event,callback){$taxonomyMenu.one(event,callback)};this.hide=function(){hideMyDataMenu();hideTaxonomyMenu()};this.setActiveRootNodeByIndicatorId=function(indicatorId){if(ria[indicatorId]==null){return}var rootNode=taxonomy.getRootNodeOfIndicatorId(indicatorId);if(rootNode!==void 0){self.$taxonomyRootItems.each(function(){if(_.unescape($(this).text().toLowerCase())===rootNode.label.toLowerCase()){$activeRootNode=$(this);$activeRootNode.addClass("is-active")}})}};function showMyDataMenu(){$elementsToShadeOnTaxonomyMenuShow.addClass("is-faded");$myDataMenu.slideDown("fast");$taxonomyMenu.slideUp("fast");$taxonomyMenuPadding.slideUp("fast");$myDataMenuPadding.slideDown("fast");$overlay.show();$taxonomyMenu.trigger("show")}function hideMyDataMenu(){$myDataMenu.slideUp({duration:"fast",complete:function(){$elementsToShadeOnTaxonomyMenuShow.removeClass("is-faded");self.$taxonomyRootItems.removeClass("is-selected");refreshActiveRootNode()}});$myDataMenuPadding.slideUp("fast");$overlay.hide()}function showTaxonomyMenu(){$elementsToShadeOnTaxonomyMenuShow.addClass("is-faded");$taxonomyMenuPadding.slideDown("fast");$myDataMenuPadding.slideUp("fast");$taxonomyMenu.slideDown("fast");$myDataMenu.slideUp("fast");$overlay.show();$taxonomyMenu.trigger("show")}function hideTaxonomyMenu(){if(isWidgetPage()){return}$taxonomyMenu.slideUp({duration:"fast",complete:function(){$elementsToShadeOnTaxonomyMenuShow.removeClass("is-faded");self.$taxonomyRootItems.removeClass("is-selected");refreshActiveRootNode()}});$(".taxonomy-menu__padding").slideUp("fast");$overlay.hide()}function refreshActiveRootNode(){if($activeRootNode!==void 0&&$activeRootNode!==null){$activeRootNode.addClass("is-active")}}this.resetActiveRootNodes=function(){if($activeRootNode!==void 0&&$activeRootNode!==null){$activeRootNode.removeClass("is-active");$activeRootNode=null}};this.datasetSearch=function(type,id){var data=[];var top;var theNodes=[];var label;if(type===TYPE_INDICATOR){top=taxonomy;theNodes=top.getNodeIdsByIndicatorId(id);label=top.getShortLabel;type=TAXONOMY_TYPE_LAYERS}else if(type===TYPE_POINT){top=pinTaxonomy;theNodes=top.getNodeIdsByDatasetId(id);label=top.getLabel;type=TAXONOMY_TYPE_POINTS}else if(type===TYPE_USERDATASET){top=dataloaderTaxonomy;theNodes=top.getNodeIdsByDatasetId(id);label=top.getLabel;type=TAXONOMY_TYPE_POINTS}for(var i in theNodes){var nodeId=theNodes[i];var path=top.getPathToNodeId(nodeId);var shortLabel=label(nodeId);var datum={path:path,shortLabel:shortLabel,nodeId:nodeId,callback:function(){selectNodeByIdAndType(nodeId,type)}};data.push(datum)}return data};function parseIdAttribute(idString){var nodeId;if(idString===void 0){return false}nodeId=parseInt(idString.substring(TAXONOMY_ID_PREFIX.length,idString.length),10);return nodeId>0?nodeId:false}function setIndicator(node){var isTeaser=node.display&&!node.has_access;var geoBoundaryId=node.geo_boundary_id;logger.log(P.Debug.INFO,"Attempting to select nodeId: "+node.node_id);if(isTeaser){if(node.teaserMessage){teaseIndicators(node.premium_only,node.teaserMessage);logger.log(P.Debug.DEBUG,"teaserMessage: "+node.teaserMessage)}else{teaseIndicators(node.premium_only);logger.log(P.Debug.ERROR,"NodeId: "+node.node_id+" has no permissions set")}}else if(!node.denied_access&&node.has_access){var isAnalytics=PEnvironment.pageName=="analytics";if(isAnalytics==false&&node.isOn){clearMapData()}else{var ind=map.getIndicator();if(ind){var oldNodeId=taxonomy.getNodeIdsByIndicatorId(ind.id)[0];unSelectTaxonomyNodeElement(oldNodeId)}if(node.default_indicator){selectIndicators.apply(this,[node.default_indicator])}else{selectIndicators.apply(this,node.indicator_ids)}if(isAnalytics==false){$activeRootNode=$currentRootNode;if($activeRootNode!=null){$activeRootNode.addClass("is-active")}}}logger.log(P.Debug.INFO,"Selected nodeId: "+node.node_id);if(geoBoundaryId){selectPlace(geoBoundaryId)}}else{logger.log(P.Debug.ERROR,"NodeId: "+node.node_id+" has no permissions set")}return!isTeaser}function unSelectTaxonomyNodeElement(nodeId){$("#"+nodeId).find("a").removeClass("is-active");for(var t in taxonomies){var tax=taxonomies[t];if(tax.hasNodes()){var n=tax.getNode(nodeId);if(n){n.isOn=false}}}}function selectTaxonomyNodeElement(nodeId){$("#"+nodeId).find("a").addClass("is-active");for(var t in taxonomies){var tax=taxonomies[t];if(tax.hasNodes()){var n=tax.getNode(nodeId);if(n){n.isOn=true}}}}function selectNodeByIdAndType(nodeId,type,t){if(type==TAXONOMY_TYPE_LAYERS){if(!t){t=taxonomy}selectLayerNode(t.getNode(nodeId))}else if(type==TAXONOMY_TYPE_POINTS){if(!t){t=pinTaxonomy}selectPointNode(t.getNode(nodeId))}}function selectLayerNode(node){if(setIndicator(node)){currentActiveNodeId=node.node_id;if(favorites){favorites.setCurrentFavoriteNodeId(node.node_id)}return true}return false}function selectPointNode(node){if(node.denied_access||!node.has_access){teaseIndicators(node.premium_only)}else{var id=node.dataset_id;var t=node.type;if(node.isOn){removeOverlaySet(id,t)}else{addOverlaySet(id,t)}hideMyDataMenu();hideTaxonomyMenu()}}function bindDataEventHandlers($menu,type){var dataColumnSelector;var curTaxonomy;if(type==TAXONOMY_TYPE_LAYERS){dataColumnSelector=dataLayersColumnClass;curTaxonomy=taxonomy}else if(type==TAXONOMY_TYPE_POINTS){dataColumnSelector=dataPointsColumnClass;curTaxonomy=pinTaxonomy}var dataColumnListItemSelector="."+dataColumnSelector+" li";if(P.constants.isKeyboardAccessOn){dataColumnListItemSelector+=" button"}$menu.find(dataColumnListItemSelector).each(function(){var $dataItem=$(this);var nodeId=parseIdAttribute($dataItem.attr("id"));if(curTaxonomy.exists(nodeId)&&curTaxonomy.hasData(nodeId)){$dataItem.click(function(event){event.preventDefault();selectNodeByIdAndType(nodeId,type)});$dataItem.hover(function(event){subMenu.hide();$dataItem.parents("."+dataColumnSelector).addClass("is-selected")},function(event){$dataItem.parents("."+dataColumnSelector).removeClass("is-selected")})}else{bindDataHoverEvent.call(this,nodeId,type)}})}function bindDataHoverEvent(nodeId,type){var $self=$(this);var dataColumnListItemSelector;var dataColumnClass;var curTaxonomy;if(type==TAXONOMY_TYPE_LAYERS){dataColumnListItemSelector=dataLayersColumnListItemSelector;dataColumnClass=dataLayersColumnClass;curTaxonomy=taxonomy}else if(type==TAXONOMY_TYPE_POINTS){dataColumnListItemSelector=dataPointsColumnListItemSelector;dataColumnClass=dataPointsColumnClass;curTaxonomy=pinTaxonomy}if(P.constants.isKeyboardAccessOn){dataColumnListItemSelector+=" button"}$self.hover(dataItemMouseEnter,dataItemMouseLeave);function dataItemMouseEnter(){var fontSize=Math.floor(parseInt($self.css("font-size"),10));if($self.height()>fontSize*1.5){$self.addClass("taxonomy-menu__item--two-lined-item")}$(dataLayersColumnListItemSelector+", "+dataPointsColumnListItemSelector).removeClass("is-selected");$("."+dataLayersColumnClass+", ."+dataPointsColumnClass).removeClass("is-selected");$self.addClass("is-selected");var $parentColumn=$self.parents("."+dataColumnClass);$parentColumn.addClass("is-selected");var nodes=curTaxonomy.getChildrenOfNodeWithInlineChildren(nodeId);subMenu.show(nodes,type);subMenu.updatePosition($parentColumn.position().left+TAXONOMY_MENU_COLUMN_WIDTH);subMenu.updateContentPosition($self.position().top-6)}function dataItemMouseLeave(){subMenu.hideAfterDelay();subMenu.on(SUB_MENU_HIDE_EVENT,function(){$self.removeClass("is-selected");$self.parents("."+dataColumnClass).removeClass("is-selected")})}}function disableNodesAndHeaders(allNodes,curTaxonomy){for(var i=0;i<allNodes.length;i++){var curHeader=allNodes[i];var enableHeader=anyEnabled(curHeader.node_id,curTaxonomy);if(!enableHeader){getNodeElementByNodeId(curHeader.node_id).addClass("is-disabled")}for(var j=0;j<curHeader.children.length;j++){var curItem=curHeader.children[j];if(!enableHeader||!anyEnabled(curItem,curTaxonomy)){getNodeElementByNodeId(curItem).addClass("is-disabled")}}}}function anyEnabled(nodeId,curTaxonomy){var anyEnabled=false;var allChildren=curTaxonomy.getAllChildrenOfNodeId(nodeId);for(var i=0;i<allChildren.length;i++){var curChild=allChildren[i];if(!curChild.denied_access&&curChild.has_access){anyEnabled=true;break}}if(!anyEnabled){var curNode=curTaxonomy.getNode(nodeId);anyEnabled=!curNode.denied_access&&curNode.has_access}return anyEnabled}function getNodeElementByNodeId(nodeId){return $("#"+TAXONOMY_ID_PREFIX+nodeId)}var renderQuickAnswers=function(nodeLabel){var numQuickAnswerOverrides=MAX_NUM_QUICK_ANSWERS>taxonomyQuickAnswers.overrides.length?taxonomyQuickAnswers.overrides.length:MAX_NUM_QUICK_ANSWERS;var numQuickAnswers=MAX_NUM_QUICK_ANSWERS-numQuickAnswerOverrides;var quickAnswers=_.first(taxonomyQuickAnswers.overrides,numQuickAnswerOverrides).concat(_.first(taxonomyQuickAnswers.sections[nodeLabel],numQuickAnswers));if($quickAnswersContainer.length===0){return}quickAnswers=_.reject(quickAnswers,function(quickAnswer){return quickAnswer===void 0||quickAnswer.inds.length===0});$quickAnswersContainer.html(quickAnswersTemplate({isAnalyses:PEnvironment.pageName==="analytics",quickAnswers:quickAnswers}));bindQuickAnswerEventHandlers(quickAnswers)};var renderQuickAnalyses=function(nodeLabel){var numQuickAnalysesOverrides=MAX_NUM_QUICK_ANALYSES>taxonomyQuickAnalyses.overrides.length?taxonomyQuickAnalyses.overrides.length:MAX_NUM_QUICK_ANALYSES;var numQuickAnalyses=MAX_NUM_QUICK_ANALYSES-numQuickAnalysesOverrides;var quickAnalyses=_.first(taxonomyQuickAnalyses.overrides,numQuickAnalysesOverrides).concat(_.first(taxonomyQuickAnalyses.sections[nodeLabel],numQuickAnalyses));quickAnalyses=_.reject(quickAnalyses,function(quickAnalysis){return quickAnalysis===void 0||quickAnalysis.inds.length===0});$quickAnswersContainer.html(quickAnalysesTemplate({isAnalyses:PEnvironment.pageName==="analytics",quickAnswers:quickAnalyses}));bindQuickAnswerEventHandlers(quickAnalyses,true)};function bindQuickAnswerEventHandlers(quickAnswers,isAnalytics){$quickAnswersContainer.find(".taxonomy-menu__quick-answer__question").click(function(e){var $quickAnswer=$(this);var index=$quickAnswer.index();e.preventDefault();if(isAnalytics){alertSA(quickAnswers[index].inds,quickAnswers[index].sites,quickAnswers[index].placeId,quickAnswers[index].question,quickAnswers[index].answer)}else{selectQA(quickAnswers[index].inds,quickAnswers[index].sites,quickAnswers[index].placeId,quickAnswers[index].question,quickAnswers[index].answer);$activeRootNode=$currentRootNode;$activeRootNode.addClass("is-active")}hideTaxonomyMenu()})}function renderBanner($li){var bannerImage=$li.attr("data-banner");if(bannerImage!=null){$banner.show();$banner.attr("src",BANNERS_DIRECTORY+bannerImage)}else{$banner.hide()}}function DataSubMenu(depth,_taxonomies,_parentMenu){var IS_HIDDEN_CLASS="is-hidden";var menuDepth=depth;var parentMenu=_parentMenu;var taxonomies=_taxonomies;var childMenu;var hideTimer;var self=this;var template=_.template($("#js-"+subMenuClass).html());var $menu=$("."+subMenuClass+"--tier"+menuDepth);if($menu.length===0){var menu=document.createElement("div");menu.className=subMenuClass+" "+subMenuClass+"--tier"+menuDepth+" "+IS_HIDDEN_CLASS;$taxonomyMenu.append(menu);$menu=$("."+subMenuClass+"--tier"+menuDepth)}var $contentContainer=$menu.find("."+subMenuClass+"__content");$menu.mouseover(function(){self.cancelHideAfterDelay();if(parentMenu!==void 0){parentMenu.cancelHideAfterDelay()}}).mouseleave(function(){self.hideAfterDelay();if(parentMenu!==void 0){parentMenu.hideAfterDelay()}});this.setChildMenu=function(_childMenu){childMenu=_childMenu};this.updatePosition=function(left){$menu.css("left",left)};this.updateContentPosition=function(top){var newTop=top+10-$contentContainer.height()/2;if(newTop+$contentContainer.height()>433){newTop=433-$contentContainer.height()}if(newTop<0){newTop=0}$contentContainer.css("top",newTop)};this.show=function(nodes,type){self.cancelHideAfterDelay();if($taxonomyMenu.is(":visible")){$menu.appendTo($taxonomyMenu)}else if($myDataMenu.is(":visible")){$menu.appendTo($myDataMenu)}render(nodes,type);disableNodesAndHeaders(nodes,taxonomies[type]);bindEventHandlers(type);$menu.slideDown(0)};this.cancelHideAfterDelay=function(){clearTimeout(hideTimer)};this.hide=function(){$menu.find("li").removeClass(IS_HIDDEN_CLASS);$menu.slideUp(0);$menu.trigger(SUB_MENU_HIDE_EVENT);if(childMenu!==void 0){childMenu.hide()}};this.hideAfterDelay=function(){clearTimeout(hideTimer);hideTimer=setTimeout(self.hide,SUB_MENU_TIMEMOUT_DELAY)};this.on=function(event,callback){if($.isFunction(callback)){$menu.on(event,callback)}};function render(nodes,type){$menu.html(template({nodes:nodes,idPrefix:TAXONOMY_ID_PREFIX,taxonomy:taxonomies[type],template:template,isInlineChild:false,isKeyboardAccessOn:P.constants.isKeyboardAccessOn}));$contentContainer=$($contentContainer.selector)}function bindEventHandlers(type){$menu.find("li").each(function(){var $self=$(this);var nodeId=parseIdAttribute($self.attr("id"));var fontSize=Math.floor(parseInt($self.css("font-size").replace("px",""),10));if($self.height()>fontSize*1.5){$self.addClass(subMenuClass+"__item--two-lined-item")}if(taxonomies[type].exists(nodeId)&&taxonomies[type].hasData(nodeId)){$self.click(function(event){event.preventDefault();selectNodeByIdAndType(nodeId,type)});$self.hover(function(event){if(childMenu!==void 0){childMenu.hide()}})}else{bindMenuHoverEvent.call(this,nodeId,type)}})}function bindMenuHoverEvent(nodeId,type){var $self=$(this);$(this).hover(itemMouseEnter,itemMouseLeave);function itemMouseEnter(){$menu.find("li").removeClass("is-selected");$self.addClass("is-selected");if(childMenu!==void 0){var $parentColumn=$self.parents("."+subMenuClass);var nodes=taxonomies[type].getChildrenOfNodeWithInlineChildren(nodeId);childMenu.show(nodes,taxonomies[type].getType());childMenu.updatePosition($parentColumn.position().left+TAXONOMY_MENU_COLUMN_WIDTH);childMenu.updateContentPosition($self.position().top+parseInt($self.parents("."+subMenuClass+"__content").css("top"),10)-6);childMenu.on(SUB_MENU_HIDE_EVENT,function(){$self.removeClass("is-selected")})}}function itemMouseLeave(){if(childMenu!==void 0){childMenu.hideAfterDelay(function(){$self.removeClass(IS_HIDDEN_CLASS)})}else{$self.removeClass(IS_HIDDEN_CLASS)}}}}this.once("change",function(){bindRootMenu()});function buildWKDataTab(data){var glyph_opts={map:{doc:"glyphicon glyphicon-file",expanderClosed:"glyphicon glyphicon-menu-right",expanderOpen:"glyphicon glyphicon-menu-down",folder:"glyphicon glyphicon-folder-close",folderOpen:"glyphicon glyphicon-folder-open",loading:"glyphicon glyphicon-refresh glyphicon-spin"}};var pincats=data.tax.taxonomy;for(var i=0;i<pincats.length;i++){if(pincats[i]==null||pincats[i].children==null){continue}$(".my-data-menu__wk").eq(i).fancytree({source:pincats[i],tooltip:true,titlesTabbable:true,extensions:["glyph"],glyph:glyph_opts,click:function(event,data){var node=data.node},icon:function(event,data){if(data.node.isFolder()){return"/images/my-saved-work/folder.svg"}else{return""}},renderNode:function(event,data){var node=data.node;var d=node.data.description;if(d&&$(node.span).find(".tree-tooltip").length==0){var poshytipConfig={className:"tip-yellowsimple",showTimeout:1,alignTo:"target",alignX:"right",alignY:"center",offsetX:10,fade:false,slide:false,allowTipHover:true,content:d};var $img=$("<img />",{class:"tree-tooltip",title:d,src:"/images/info-icon.svg"});$img.poshytip(poshytipConfig);$(node.span).append($img);var imgSrc="/images/point-gray.svg";if(node.data.isPoly==true){imgSrc="/images/boundary.svg"}var $img=$("<img />",{class:node.data.isPoly==false?"":"poly-icon",src:imgSrc});var tooltipOptions={container:"body"};var $d=$("<div />",{class:"data-icon sites-icon",title:node.data.isPoly==false?"Add Dataset":"Add Assessment Area"});$d.click(function(){addOverlaySet(data.node.data.dataset_id,"dl");hideMyDataMenu()});$d.append($img);$d.tooltip(tooltipOptions);$(node.span).prepend($d);replaceSVGs([$img]);var indicatorId=data.node.data.indicator_id;if(indicatorId){var $img=$("<img />",{class:"",src:"/images/layer-gray.svg"});var $d=$("<div />",{class:"data-icon ind-icon",title:"Add Data Layer"});$d.click(function(){selectIndicators([indicatorId])});$d.append($img);$d.tooltip(tooltipOptions);$(node.span).prepend($d);replaceSVGs([$img])}}}})}}function setUpWKTree(which,text){var cancelCallback=function(suffix){$("#siteHolderMenu"+suffix).hide();$("body").append($("#siteHolderMenu"+suffix));var dialogId=$("#siteHolderMenu"+suffix).attr("dialogId");$("#"+dialogId).remove()};var treeMenu=function(which,text){$("#siteHolderMenu"+which).show();var title=$("<div />");title.html(text);title.addClass("menu-title");var content=$("<div/>");content.addClass("WKMenuContent");content.append(title);var menu=$("#siteHolderMenu"+which);content.append(menu);content={content:content,popupStyle:"wk",width:715,addCancel:true,cancelText:"Close",cancelCallback:function(){cancelCallback(which)}};var dialogId=alerter.popup(content);$("#siteHolderMenu"+which).attr("dialogId",dialogId)};treeMenu(which,text)}};function getProductTaxonomyData(successCallback,failureCallback,type){return ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=tax&act="+type,success:successCallback,error:failureCallback})}function initializeTemplateReport(){$(".template-report-content .report-nav-bar li").click(function(){$(".template-report-content .report-nav-bar li").removeClass("selected");$this=$(this);$this.addClass("selected");$.scrollTo($("#"+$this.text().replace(/[^a-zA-Z0-9]/g,"")),200)});$($(".template-report-content .report-nav-bar li").get(0)).addClass("selected")}function buildTemplateCurrentReportObject(options,callback){if(options==null){options={}}getPlaceDetails(currentReport,function(place,centroid,counties,states){getContainedPlaces(currentReport,place,centroid,counties,states,function(places,cities,zips,tracts,aggregates,pplace,boundarea,counties,states){var state=getState(places);var county=getCounty(places);if(!states||states.length<=0){states=[state]}if(!counties||counties.length<=0){counties=[county]}if(counties.length>1){counties=_.sortBy(counties,"label")}var obj={};obj.reportObject=reportObject;obj.aggs=[];for(var i=0;i<aggregates.length;i++){if(aggregates[i].getType()!=PPlaceType.CUSTOM){obj.aggs.push(aggregates[i])}}obj.place=place;obj.pplace=place;obj.places=places;obj.country=getTypeFromPlaces(places,PPlaceType.COUNTRY);obj.states=states;obj.counties=counties;obj.cities=cities;obj.zips=zips;obj.tracts=tracts;obj.boundArea=boundarea;obj.centerpoint=centroid;obj.sections=currentReport.sections;var params=getUrlParams();if(params.le!=null){obj.limitElement=params.le}obj.areaType=currentReport.areaType;if(obj.areaType=="predefined"&&obj.place!=null){obj.areaName=obj.place.getType().getName()+" ("+obj.place.getLabel()+")"}else if((obj.areaType=="custom"||obj.areaType=="polygon")&&currentReport.areaName.length>0){obj.areaName=currentReport.areaName}else{obj.areaName="Report Area"}if(boundarea instanceof PPlace&&boundarea.isAssembledCustom()){obj.aPlace=boundarea}else{obj.aPlace=null}obj.areaTypeName=currentReport.areaTypeName;obj.placeId=obj.place.getID();obj.placeLabel=obj.place.getLabel();obj.reportName=currentReport.reportName;obj.reportType=currentReport.reportType;obj.typeId=currentReport.typeId;if(currentReport.groups!=null&&currentReport.groups.length>0){obj.groups=currentReport.groups;getGroupPlaceTypeAggregates(boundarea,currentReport.groups,tracts,function(groupPlaceTypeAggregates){if(groupPlaceTypeAggregates===false){clearErrors();maxResultsAlert();noDataAlertCount++;return}obj.groupPlaceTypeAggregates=groupPlaceTypeAggregates;callback(obj)},{getAggsForAllDef:true,noMaxAlert:true})}else{obj.groups=[];obj.groupPlaceTypeAggregates=[];callback(obj)}})},{includeAllCountiesAndStates:options.includeAllCountiesAndStates===true})}function renderTemplateReport(obj){if(obj==null||obj.sections==null||$.isArray(obj.sections)!=true||obj.sections.length==0){return false}var sections=[];if(obj.limitElement!=null){var $element=$("#"+obj.limitElement);var elementSection=$element.parents(".report-section").attr("id");var reportSection=_.find(obj.sections,function(rs){return rs.element==elementSection});if(reportSection!=null){sections.push(reportSection.render)}}else{sections=_.pluck(obj.sections,"render")}$(window).on(P.events.TEMPLATE_REPORT_LOADED,function(){initializeTemplatePopovers();$("[data-toggle='tooltip']").tooltip({container:"body"});initializeTemplateDownloadImageButtons();initializeTemplateDataContainsToggles();hideAllExceptLimitElement(obj);$(window).off(P.events.TEMPLATE_REPORT_LOADED)});for(var i=0;i<sections.length;i++){window[sections[i]](obj)}}function hideAllExceptLimitElement(obj){if(obj.limitElement!=null){$(".limit-only").removeClass("limit-only");$(".limit-only-hide").hide();var $limitElement=$("#"+obj.limitElement);$limitElement.siblings().hide();$limitElement.parents().siblings().hide();$("body").addClass("limit-element")}}function getTemplateCubePlaces(obj,rsi,replacePlace){var useStepsDefault=false;var stepPlaces=obj.groupPlaceTypeAggregates[rsi.aggRule];if(stepPlaces&&stepPlaces.length>0&&rsi.useDefaultStep()){useStepsDefault=true}var reportPlace=obj.place;if(replacePlace!=null){reportPlace=replacePlace}var getPlaces=[];var reportPlace=checkIfZip(reportPlace);if(rsi.ignorePPlace!=true&&reportPlace!=null&&(reportPlace.isCustomOrPoly()!=true||reportPlace.isAssembledCustom())){if(reportPlace.isAssembledCustom()){getPlaces=reportPlace.getAssembledPlaces()}else{getPlaces=[reportPlace]}}else if(useStepsDefault){getPlaces=stepPlaces}else{getPlaces=rsi.aggs}rsi.setIgnorePPlace(getPlaces,obj.place);rsi.naGetPlaces=getPlaces;var getPlacesWithAdditional=getPlaces.slice(0);for(var i=0;i<obj.additionalPlaces.length;i++){var curAdditionalPlace=obj.additionalPlaces[i];var curAdditionalPlaceId=curAdditionalPlace.getID();var exists=_.find(getPlacesWithAdditional,function(curGetPlace){return curGetPlace.getID()==curAdditionalPlaceId});if(exists==null){getPlacesWithAdditional.push(curAdditionalPlace)}}rsi.getplaces=getPlacesWithAdditional;var cubePlaces={getPlaces:getPlacesWithAdditional,stepPlaces:stepPlaces,reportPlace:reportPlace};return cubePlaces}function additionalPlacesWithoutStepPlaces(additionalPlaces,stepPlaces){var stepPlacesIds=_.pluck(stepPlaces,"id");var remainderPlaces=[];for(var i=0;i<additionalPlaces.length;i++){if($.inArray(additionalPlaces[i].getID(),stepPlacesIds)==-1){remainderPlaces.push(additionalPlaces[i])}}return remainderPlaces}function getTemplateSectionPlace(obj,ind){var sectionPlace={place:obj.place,placeLabel:obj.placeLabel};var placeType=obj.place.getType();if($.isArray(ind)){var allPlaceTypes=[];for(var i=0;i<ind.length;i++){allPlaceTypes=allPlaceTypes.concat(ind[i].getPlaceTypes())}var indPlaceTypes=_.uniq(allPlaceTypes)}else{var indPlaceTypes=ind.getPlaceTypes()}if(placeType==PPlaceType.BLOCKGROUP){if($.inArray(PPlaceType.BLOCKGROUP,indPlaceTypes)==-1){if($.inArray(PPlaceType.CENSUSTRACT,indPlaceTypes)>-1){sectionPlace.place=obj.tracts[0];sectionPlace.placeLabel=obj.tracts[0].getLabel()+" (Census Tract)"}else if(obj.cities.length>0&&$.inArray(PPlaceType.CITY,indPlaceTypes)>-1){sectionPlace.place=obj.cities[0];sectionPlace.placeLabel=obj.cities[0].getLabel()+" (City)"}}}if(placeType==PPlaceType.CENSUSTRACT){if($.inArray(PPlaceType.CENSUSTRACT,indPlaceTypes)==-1){if(obj.cities.length>0&&$.inArray(PPlaceType.CITY,indPlaceTypes)>-1){sectionPlace.place=obj.cities[0];sectionPlace.placeLabel=obj.cities[0].getLabel()+" (City)"}}}if(placeType==PPlaceType.STATE&&obj.place.getLabel()=="District of Columbia"){if($.inArray(PPlaceType.STATE,indPlaceTypes)==-1){if($.inArray(PPlaceType.COUNTY,indPlaceTypes)>-1){sectionPlace.place=obj.counties[0];sectionPlace.placeLabel="District of Columbia"}else if($.inArray(PPlaceType.CITY,indPlaceTypes)>-1){sectionPlace.place=obj.cities[0];sectionPlace.placeLabel="District of Columbia"}}}return sectionPlace}function shouldCalculatePercent(obj,pls,sectionPlace){return obj.areaType=="radius"||obj.areaType=="custom"||obj.ignorePPlace||pls.length>1||!obj.ignorePPlace&&pls.length>0&&(sectionPlace==null&&pls[0].getType()!=obj.pplace.getType()||sectionPlace!=null&&pls[0].getType()!=sectionPlace.getType())}function sizeChartSVG($svg){var sizeSVG=function($svg){$svgParent=$svg.parent();$svg.attr("width",$svgParent.width())};$(window).resize(function(){sizeSVG($svg)});sizeSVG($svg)}function generateTemplateTableCellHTML(isHeader,columnClass,value){var cellClass="td";if(isHeader===true){cellClass="thead"}return"<div class='"+columnClass+" list-cell text-center'><span class='"+cellClass+"-center-align'>"+value+"</span></div>"}function generateTemplateMultiCountyRows(columns,data,highlightFirst){if(highlightFirst===true){highlightFirst=1}if(isNaN(highlightFirst)||highlightFirst==0){highlightFirst=false}var html="";var curRow=0;var curColumn=0;for(var i=0;i<data.length;i++){var curData=data[i];var highlight="";if(highlightFirst!==false&&curRow<highlightFirst){highlight+=" highlight-column"}if(curColumn==0){var solidDivider=curRow==0?"--solid":"";html+="<hr class='list-divider"+solidDivider+"' />";html+="<div class='row'>";html+="<div class='col-xs-"+columns[curColumn]+" list-cell td-left-align"+highlight+"'>"+curData.place+"</div>";curColumn++}html+="<div class='col-xs-"+columns[curColumn]+" list-cell text-center"+highlight+"'>"+curData.formattedValue+"</div>";curColumn++;if(curColumn>=columns.length){curColumn=0;curRow++;html+="</div>"}}return html}function generateGenericValueObject(place,indicator,period,value,formattedValue){var newObject={place:place,ind:indicator,period:period,value:value};if(formattedValue!=null){newObject.formattedValue=formattedValue}return newObject}function getTemplatePlaceLabelWithType(place){return place.getType().getDisplayName()+" ("+place.getLabel()+")"}function getTemplateCombinedPlacesOfTypes(obj,counties,states,country){var places=[];if(counties===true){places=places.concat(obj.counties)}if(states===true){places=places.concat(obj.states)}if(country===true){places=places.concat([obj.country])}return places}function getTemplateUpDown(curValue,oldValue,oldPeriod,noPercentage,insufficientDataValue,round){var naValues=["N/A","n/a"];if(insufficientDataValue==null){naValues.push(-9999,"-9999")}else{if(_.isNumber(insufficientDataValue)){naValues.push(String(insufficientDataValue))}else if(_.isString(insufficientDataValue)){var insufficientDataValueNumber=Number(insufficientDataValue);if(!isNaN(insufficientDataValueNumber)){naValues.push(insufficientDataValueNumber)}}naValues.push(insufficientDataValue)}if(curValue==null||$.inArray(curValue,naValues)!=-1||oldPeriod==null||$.inArray(oldPeriod,naValues)!=-1){return""}var upDown="";var divide=divideCheck(curValue,oldValue);var percentChange=null;if(!isNaN(divide)){percentChange=Math.abs(divide-1)*100}if(curValue>oldValue){upDown="<div class='up-down-since'></div>";if(percentChange!=null&&noPercentage!==true){upDown+=" "+PWebUtil.formatNumber(percentChange,"_%",null,null,round)}if(oldPeriod!=null){upDown+=" Since "+oldPeriod}}else if(curValue<oldValue){upDown="<div class='up-down-since down-since'></div>";if(percentChange!=null&&noPercentage!==true){upDown+=" "+PWebUtil.formatNumber(Math.abs(percentChange),"_%",null,null,round)}if(oldPeriod!=null){upDown+=" Since "+oldPeriod}}else{upDown="Same";if(oldPeriod!=null){upDown+=" as "+oldPeriod}}return upDown}function initializeTemplatePopovers(){$(".report-popover").each(function(){var $this=$(this);var $attachTo;if($this.data("element-id")!=null){$attachTo=$("#"+$this.data("element-id"))}else if($this.data("element-class")!=null){$attachTo=$("."+$this.data("element-class"))}else{return}var options={container:".template-report-content",placement:"auto right",trigger:"hover",html:true,content:$this.html()};var title=$this.data("title");if(title!=null&&title.length>0){options.title=title}var placement=$this.data("placement");if(placement!=null&&placement.length>0){options.placement=placement}$attachTo.popover(options);$attachTo.addClass("hover");$attachTo.on("shown.bs.popover",function(){$(".popover").find(".popover-sparkline").sparkline("html",{disableHiddenCheck:true,enableTagOptions:true})})})}function initializeTemplateDownloadImageButtons(){$(".download-image").click(function(){if(P.instances.wkprint.checkPendingPrint()===false){var $this=$(this);elementId=$this.data("element-id");downloadName=$this.data("name");var url=window.location.href+"&le="+encodeURIComponent(elementId);P.instances.wkprint.setFileName(downloadName);P.instances.wkprint.setUrl(url);P.instances.wkprint.print();alerter.popup("Your download will be available momentarily.","OK")}})}function initializeTemplateDownloadDataButton($element,indicatorData,sources,place,pointsets){var $section;if($element.hasClass("section")){$section=$element}else{$section=$element.parents(".section").first();if($section.length==0){return false}}$downloadButton=$section.find(".download-data");if($downloadButton.length==0){return false}$downloadButton.click(function(){$this=$(this);var csvName=null;if($this.data("name")!=null){csvName=$this.data("name")}if(indicatorData!=null){executeTemplateIndicatorDownload(csvName,indicatorData,sources)}else if(place!=null&&pointsets!=null){executeTemplatePointDownload(place,pointsets)}});return true}function initializeTemplateDataContainsToggles(){$(".data-contains").each(function(){var $a=$("<a />");$a.text("show");$a.click(function(){$(this).parents(".data-contains").next(".data-contains-places").toggle()});var $c=$("<span />");$c.addClass("toggle-container");$(this).append($c);$c.append(" (",$a,")")})}function executeTemplateIndicatorDownload(csvName,indicatorData,sources){var csvData={};for(var i=0;i<indicatorData.length;i++){var curData=indicatorData[i];var curDataPlace=curData.place.replace(/ \(\d\d\d\d\)$/,"");if(csvData[curDataPlace]==null){csvData[curDataPlace]={}}if(csvData[curDataPlace][curData.ind]==null){csvData[curDataPlace][curData.ind]={}}if(isFurman()){if(curData.formattedValue==="N/A"||curData.value===null){curData.value=curData.formattedValue}}csvData[curDataPlace][curData.ind][curData.period]=curData.value}var csvGenerate=new CSVGenerate("indicator",csvData,{name:csvName,sources:sources});csvGenerate.generate()}function executeTemplatePointDownload(place,pointsets){var placeArg="";var curPlaceType=place.getType();if(curPlaceType==PPlaceType.CUSTOM){placeArg="&customid="+place.getID()}else if(curPlaceType==PPlaceType.POLYGON){alert("Data is not available for download for polygons. Please draw your polygon as a custom region to download data.","OK");return}else{placeArg="&pid="+place.getID()}var setIdsArg="&did="+_.pluck(pointsets,"id").join(",");var setTypesArg="&dt="+_.pluck(pointsets,"type").join(",");url=PEnvironment.pointUrl+"&act=w"+setIdsArg+setTypesArg+placeArg+"&fmt=csv&nct=t&bgg=1";var ajaxOptions={url:url,success:function(response){if(response!=null&&response.pnt&&response.pnt.status&&response.pnt.status=="ok"){alerter.popup("Your data download is being processed and will be ready momentarily.","OK")}else{
alerter.popup("Your data download has failed. Please try again. If you continue to see this error, contact us at 1-866-923-MAPS (6277) or pma<span class='spamFixText'></span>p@po<span class='spamFixText'></span>licy<span class='spamFixText'></span>map.com.","OK")}},error:function(){alerter.popup("Your data download has failed. Please try again. If you continue to see this error, contact us at 1-866-923-MAPS (6277) or pma<span class='spamFixText'></span>p@po<span class='spamFixText'></span>licy<span class='spamFixText'></span>map.com.","OK")},type:"POST",dataType:"json",data:"{'post': true}"};ajax.call(ajaxOptions)}function populateTemplateCensusAggregatesEndnote(pls1,pls2,$div){if(pls1!=null&&pls1.length>0&&pls2!=null&&pls2.length>0){var note="For custom areas, such as radii, custom regions, school districts, and political districts, Census ACS data was calculated by summing the following component ";var pls1PlaceType=formatAggregatePlaceType(pls1[0].getType().getName())[0];var pls1PlaceNames=getAggregatedPlaceNames(pls1);var pls2PlaceType=formatAggregatePlaceType(pls2[0].getType().getName())[0];var pls2PlaceNames=getAggregatedPlaceNames(pls2);$div.html(note+pls1PlaceType+" in 2000: <strong>"+pls1PlaceNames+"</strong>, and the following component "+pls2PlaceType+" in "+P.constants.latestACSPeriod+": <strong>"+pls2PlaceNames+"</strong>.")}}TermsOfUse=function(){this.$overlay=null;this.$popup=null;if(session.get("termsAgreed")==null){session.put("termsAgreed",false);session.save()}if(session.get("termsAgreed")!=true&&session.get("termsAgreed")!="true"){this._start()}};TermsOfUse.prototype._start=function(){var self=this;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=tou&act=g",success:function(response){if(response.responseCode==200&&response.tou!=null){if(response.tou==false){session.put("termsAgreed",true);session.save()}else{self._displayTerms(response.tou)}}}})};TermsOfUse.prototype._displayTerms=function(terms){var self=this;this.$overlay=$("<div />");this.$overlay.attr("id","termsOverlay");this.$overlay.addClass("terms-of-use__overlay");$("body").append(this.$overlay);this.$popup=$("<div />");this.$popup.attr("id","termsPopup");this.$popup.addClass("terms-of-use__popup");$("body").append(this.$popup);$terms=$("<div />");$terms.addClass("terms-box");$terms.html(terms);this.$popup.append($terms);$agreeButton=$("<img />");$agreeButton.addClass("button");$agreeButton.attr({src:PEnvironment.dataServicesUrl+"?ty=image&t=lbl&sy=2&fs=11&vp=10&hp=10&tx=I%20Agree&sid="+PEnvironment.productId,alt:"I Agree",title:"I Agree"});$agreeButton.click(function(){self._agreeTerms()});this.$popup.append($agreeButton);this._position();$(window).on("resize",null,{self:this},this._position);this.$overlay.fadeIn(400);this.$popup.slideDown(400)};TermsOfUse.prototype._position=function(e){var self;if(e!=null){self=e.data.self}else{self=this}var wHeight=$(window).height();var wWidth=$(window).width();self.$popup.css({top:(wHeight-self.$popup.height())/2,left:(wWidth-self.$popup.width())/2})};TermsOfUse.prototype._agreeTerms=function(){session.put("termsAgreed",true);session.save();$(window).off("resize",this._position);var self=this;this.$overlay.fadeOut(400,function(){$(this).remove();self.$overlay=null});this.$popup.slideUp(400,function(){$(this).remove();self.$popup=null})};Toolbar=function(){this.pageName=PEnvironment.pageName;switch(this.pageName){case"maps":this.template="map";break;case"widget":this.template="map";break;case"tables":this.template="chart";break;case"reports":this.template="report";break;case"analytics":this.template="analytic";break;default:this.template=""}var self=this;$(".toolbar").hover(function(){$(".toolbar__tooltip").stop(true,true).slideDown("fast")},function(){$(".toolbar__tooltip").stop(true,true).slideUp("fast")});$(".toolbar a").mouseover(function(){$(".toolbar__tooltip").html($(this).html())});$(".toolbar li").click(function(e){if(!$(this).hasClass("active-link")){e.preventDefault()}self.click($(this).find("a").data("button-name"))});if(isWidgetPage()){var $c=$(".column__toolbar");$c.click(function(e){e.stopPropagation();$(".toolbar-icons").toggleClass("is-visible")});$("body").click(function(){$(".toolbar-icons").removeClass("is-visible")})}if(isWidgetOrEmbedMap()){$("#toolbar-view-larger").parent().tooltip({title:"Opens default view of map in a new tab",html:true,placement:"bottom",container:"body",trigger:"hover"});var $c=$(".column__toolbar");if(!inIframe()){$("#toolbar-view-larger").parent().remove();if($c.find("a").length==0){$c.hide()}}}var buttonNames=["print","download","share","save"];for(var i=0;i<buttonNames.length;i++){if(productProperty.getValue("disable_toolbar_"+buttonNames[i])){this.disable(buttonNames[i],"(Not Available)");if(productProperty.getValue("remove_disabled_toolbar_items")){this.remove(buttonNames[i])}}}$(".toolbar-icons").removeClass("is-hidden")};Toolbar.prototype.click=function(button){if($("#toolbar-"+button).hasClass("toolbar-icon--disabled")){if(productProperty.getValue("disable_toolbar_"+button.replace("-","_")+"_teaser")){alerter.popup("Available to PolicyMap subscribers only. <a href='https://www.policymap.com/about/contact-us/' target='_blank'>Contact PolicyMap</a> or your PolicyMap liaison about subscribing to PolicyMap to access this feature.","OK")}return}if(button=="print"||button=="share"||button=="save"||button=="saved-work"){if(isPublicUser()){registerAlert();return}}else if(button=="download"){if(!isSubscriber()||isTrial()){subscribeAlert(null,"subscriber-data-download");return}}if(button=="print"){if(this.pageName=="maps"||this.pageName=="tables"||this.pageName=="analytics"||this.pageName=="widget"){genericAlertDialog({template:this.template,action:"export"})}else if(this.pageName==="reports"){printReport()}else{genericAlertDialog({template:this.template,action:"print",printService:P.constants.webKitPrintService})}}else if(button=="download"){showExportModal()}else if(button=="share"){if(this.pageName=="maps"||this.pageName=="analytics"){genericAlertDialog({template:this.template,action:"share"})}}else if(button=="save"){genericAlertDialog({template:this.template,action:"save"})}else if(button=="saved-work"){openMySavedWork()}};Toolbar.prototype.disable=function(button,addlText){var toolbarButton=$("#toolbar-"+button);toolbarButton.addClass("toolbar-icon--disabled");if(addlText==null){addlText=""}toolbarButton.find(".addl-text").text(addlText)};Toolbar.prototype.enable=function(button,addlText){var toolbarButton=$("#toolbar-"+button);toolbarButton.removeClass("toolbar-icon--disabled");if(addlText==null){addlText=""}toolbarButton.find(".addl-text").text(addlText)};Toolbar.prototype.remove=function(button){var toolbarButton=$("#toolbar-"+button);var toolbarButtonParent=toolbarButton.parent("li");toolbarButtonParent.remove()};TrfAnalyticsLegendIndicators=function($elm,index){this.index=index;this.$elm=$elm;this.$years=$elm.find(".legend__year-select");this.quarters=$elm.find(".legend__quarter-select");this.months=$elm.find(".legend__month-select");this.days=$elm.find(".legend__day-select");this.$yearsContainer=$elm.find(".legend__year__container");this.$quartersContainer=$elm.find(".legend__quarter__container");this.$monthsContainer=$elm.find(".legend__month__container");this.$daysContainer=$elm.find(".legend__day__container");this.indicators=$elm.find(".legend__variable-select");var self=this;this.listeners=[];this.$elm.find(".legend__title__close").click(function(){var index=self.index;$elm.find(".legend__title__content").removeClass("is-minimized");$elm.find(".legend_container").show();legendMerger.clearIndicator(index);var $editButton=legendMerger.indicatorLegends[index].editButton;if($editButton&&$editButton.hasClass("is-active")){$editButton.click()}updateTitle(0);if(map){map.closeInfoWindow()}});if(isWidgetOrEmbedMap()){this.periodsContainer=$elm.find("#periods_container");this.variablesContainer=$elm.find("#variable_container");this.indicatorToggle=$elm.find("#indicator_toggle")}};TrfAnalyticsLegendIndicators.prototype={enable:function(){this.$elm.show()},disable:function(){this.$elm.hide()},clear:function(){var l=this.listeners.length;for(var i=0;i<l;i++)PEvent.removeListener(this.listeners[i]);this.listeners=[];this.$years.empty();this.quarters.empty();this.months.empty();this.days.empty();this.indicators.empty()},refresh:function(years,quarters,indicators,months,days){this.updateYears(years);this.updateQuarters(quarters);this.updateMonths(months);this.updateDays(days);this.updateIndicators(indicators)},hidePeriods:function(){this.periodsContainer.hide();if(this.variablesContainer.css("display")=="none")this.indicatorToggle.hide()},showPeriods:function(){this.periodsContainer.show();this.indicatorToggle.show()},hideVariables:function(){this.variablesContainer.hide();if(this.periodsContainer.css("display")=="none")this.indicatorToggle.hide()},showVariables:function(){this.variablesContainer.show();this.indicatorToggle.show()},updateYears:function(years){var that=this;this.$years.empty();this.$years.unbind("change");var $year,disableTeasers,params,teaserYears,selectedYear;var yearParams={},yearCallbacks={};for(var i=0;i<years.length;i++){params=getUrlParams();disableTeasers=params["disableTeaserYears"];teaserYears=[];if(years[i].state&PIndicatorToggle.YEAR.selectedYear){selectedYear=years[i].value;$year=$("<option value='"+years[i].value+"'>"+years[i].value+"</option>");$year.prop("selected",true)}else if(years[i].state&PIndicatorToggle.YEAR.availableYear){$year=$("<option value='"+years[i].value+"'>"+years[i].value+"</option>");yearParams[years[i].value]=years[i].funcParams;yearCallbacks[years[i].value]=years[i].func}else if(years[i].state&PIndicatorToggle.YEAR.mustSubscribe&&!disableTeasers){teaserYears.push(years[i].value);$year=$("<option value='"+years[i].value+"'>"+years[i].value+"</option>")}if(years[i].state[i]&PIndicatorToggle.YEAR.projection)$year.style.borderLeft="1px solid #ccc";this.$years.prepend($year)}this.$yearsContainer.find(".print-value").html(selectedYear);if(this.$years.children("option").size()>0){this.$yearsContainer.show();this.$years.val(selectedYear);this.$years.trigger("chosen:updated");this.$years.change(function(){if(_.contains(teaserYears,that.$years.val())){subscribeAlert()}else{yearCallbacks[$(this).val()].apply(yearParams[$(this).val()],yearCallbacks[$(this).val()])}});var $p=this.$yearsContainer.find(".print-value");if($p.length>0){$p.html(selectedYear)}}else{this.$yearsContainer.hide()}},updateQuarters:function(quarters){var that=this;this.quarters.empty();this.quarters.unbind("change");var $quarter,selectedQuarter;var quarterParams={},quarterCallbacks={};for(var i=0;i<quarters.length;i++){if(quarters[i].state&PIndicatorToggle.QUARTER.selectedQuarter){selectedQuarter=quarters[i].value;$quarter=$("<option value='"+quarters[i].value+"'>"+quarters[i].value+"</option>")}else if(quarters[i].state&PIndicatorToggle.QUARTER.availableQuarter){$quarter=$("<option value='"+quarters[i].value+"'>"+quarters[i].value+"</option>");quarterParams[quarters[i].value]=quarters[i].funcParams;quarterCallbacks[quarters[i].value]=quarters[i].func}this.quarters.append($quarter)}if(this.quarters.children("option").size()>0){this.$quartersContainer.show();this.quarters.val(selectedQuarter);this.quarters.trigger("chosen:updated");this.quarters.change(function(){quarterCallbacks[$(this).val()].apply(quarterParams[$(this).val()],quarterCallbacks[$(this).val()])});var $p=this.$quartersContainer.find(".print-value");if($p.length>0){$p.html(selectedQuarter)}}else{this.$quartersContainer.hide()}},updateMonths:function(months){var that=this;var monthsToString=["January","February","March","April","May","June","July","August","September","October","November","December"];this.months.empty();this.months.unbind("change");var $month,selectedMonth;var monthParams={},monthCallbacks={};for(var i=0;i<months.length;i++){if(months[i].state&PIndicatorToggle.MONTH.selectedMonth){selectedMonth=monthsToString[i];$month=$("<option value='"+monthsToString[i]+"'>"+monthsToString[i]+"</option>")}else if(months[i].state&PIndicatorToggle.MONTH.availableMonth){$month=$("<option value='"+monthsToString[i]+"'>"+monthsToString[i]+"</option>");monthParams[monthsToString[i]]=months[i].funcParams;monthCallbacks[monthsToString[i]]=months[i].func}this.months.append($month)}if(this.months.children("option").size()>0){this.$monthsContainer.show();this.months.val(selectedMonth);this.months.trigger("chosen:updated");this.months.change(function(){monthCallbacks[$(this).val()].apply(monthParams[$(this).val()],monthCallbacks[$(this).val()])});var $p=this.$monthsContainer.find(".print-value");if($p.length>0){$p.html(selectedMonth)}}else{this.$monthsContainer.hide()}},updateDays:function(days){this.days.empty();this.days.unbind("change");var $day,selectedDay;var dayParams={},dayCallbacks={};for(var i=0;i<days.length;i++){var label=i+1;if(days[i].state&PIndicatorToggle.DAY.selectedDay){selectedDay=label;$day=$("<option value='"+label+"'>"+label+"</option>")}else if(days[i].state&PIndicatorToggle.DAY.availableDay){$day=$("<option value='"+label+"'>"+label+"</option>");dayParams[label]=days[i].funcParams;dayCallbacks[label]=days[i].func}this.days.append($day)}if(this.days.children("option").size()>0){this.$daysContainer.show();this.days.val(selectedDay);this.days.trigger("chosen:updated");this.days.change(function(){dayCallbacks[$(this).val()].apply(dayParams[$(this).val()],dayCallbacks[$(this).val()])});var $p=this.$daysContainer.find(".print-value");if($p.length>0){$p.html(selectedDay)}}else{this.$daysContainer.hide()}},updateIndicators:function(indicators){var that=this;this.indicators.empty();this.indicators.unbind("change");var $indicator,selectedIndicator;var indicatorParams={},indicatorCallbacks={};if(indicators&&indicators.length>0){for(var i=0;i<indicators.length;i++){if(indicators[i].state&PIndicatorToggle.INDICATOR.selectedIndicator){$indicator=$("<option value='"+indicators[i].value+"'>"+indicators[i].title+"</option>");selectedIndicator=indicators[i].value}else{$indicator=$("<option value='"+indicators[i].value+"'>"+indicators[i].title+"</option>");indicatorParams[indicators[i].value]=indicators[i].funcParams;indicatorCallbacks[indicators[i].value]=indicators[i].func}this.indicators.append($indicator)}}this.indicators.val(selectedIndicator);this.indicators.trigger("chosen:updated");this.indicators.change(function(){indicatorCallbacks[$(this).val()].apply(indicatorParams[$(this).val()],indicatorCallbacks[$(this).val()])});var $p=this.indicators.parent().find(".print-value");if($p.length>0){$p.html(selectedIndicator)}if(PEnvironment.pageName=="widget"){if(yearToggleCount<=1){if(quartToggleCount<=1&&monthToggleCount<=1)this.hidePeriods()}else this.showPeriods();if(indicators&&indicators.length<=1)this.hideVariables();else this.showVariables()}}};var TrfCustomRegionsMenu=function(pPolyCreator,session){var polyCreator=pPolyCreator;var $container=$(".custom-regions-menu__content");var $toggleButton=$(".custom-regions__access");var $regionHeader=$(".custom-regions__region-header-row");var $regionItems=$(".custom-regions__region-item");var regions=[];var regionsIsActive=[];var regionsTemplate=_.template($("#js-custom-regions-menu__regions__template").html());var self=this;var sortColumn="created";var sortAscending=false;polyCreator.addListener("savepoly",addRegions);polyCreator.addListener("removepoly",function(_regions){updateActiveRegions();updateTemplate()});polyCreator.addListener("renamepoly",function(id,newname){for(var i=0;i<regions.length;i++){if(regions[i].id==id){regions[i].label=newname;break}}setTimeout(function(){updateActiveRegions();updateTemplate()},250)});$(window).on(P.events.LOGGED_IN,function(){self.update(null,true);closeMenu()});$(window).on(P.events.LOGGED_OUT,function(){self.update();closeMenu()});$(window).on(P.events.MY_SAVED_WORK_CUSTOM_REGIONS_CHANGE,function(){self.update()});$(window).on(P.events.MY_SAVED_WORK_DELETE_CUSTOM_REGION,function(e,ids){for(var i=0;i<ids.length;i++){var id=ids[i];if(polyCreator.customPlaces[id]!==undefined){self.removeCustomRegion(polyCreator.customPlaces[id].place)}updateCustomRegionsSession(id);removeFromMenuById(id)}});$(".custom-region-button, .custom-regions__create").click(function(){if(isSubscriber()){toggleCustomRegion()}else{genericAlertDialog({template:"subscriber"});closeMenu()}});$(".custom-regions__access, .custom-regions-icon--close").click(function(e){e.preventDefault();if($toggleButton.hasClass("is-active")){closeMenu()}else{showMenu()}});self.hide=function(){closeMenu()};self.on=function(event,callback){$container.on(event,callback)};self.once=function(event,callback){$container.one(event,callback)};function closeMenu(){$toggleButton.removeClass("is-active");$(".map-options__item--custom-regions").removeClass("is-active");$(".custom-regions-menu").slideUp({complete:function(){$(".map-options__item").removeClass("is-faded")}})}function showMenu(){$toggleButton.addClass("is-active");$(".map-options__item--custom-regions").addClass("is-active").siblings().addClass("is-faded");$(".custom-regions-menu").slideDown();$container.trigger("show")}function deleteCustomRegion(id){var $deferred=new $.Deferred;polyCreator.deletePoly(id,function(success){if(success){updateCustomRegionsSession(id);$deferred.resolve()}else{alerter.popup("There was an error deleting your custom region.","OK");$deferred.reject()}});return $deferred}function updateCustomRegionsSession(id){var regions=session.get("cp");if(regions!=null&&$.isArray(regions)){var regionLength=regions.length;for(var i=0;i<regionLength;i++){if(regions[i]==id){regions.splice(i,1);break}}if(regions.length<regionLength){session.put("cp",regions)}}}function bindCustomRegionEvents(){$regionHeader=$($regionHeader.selector);var $headers=$regionHeader.find("th");$headers.filter(":lt(3)").click(function sortByHeader(event){var columnName=$.trim($(this).text().toLowerCase());event.preventDefault();if(sortColumn=columnName){sortAscending=!sortAscending}else{sortColumn=columnName;sortAscending=true}self.update(true)});$regionItems=$($regionItems.selector);$regionItems.each(function(index){var $regionItem=$(this);var $item=$(this).find(".custom-regions__label");var $share=$(this).find(".custom-regions__share");var $rename=$(this).find(".custom-regions__rename");var $remove=$(this).find(".custom-regions__remove");var $delete=$(this).find(".custom-regions__delete");$item.click(function(e){e.preventDefault();if(!isSubscriber()){subscribeAlert(null,"subscriber-saved-work");return}if(polyCreator.customPlaces[regions[index].id]!==undefined){self.removeCustomRegion(regions[index]);regionsIsActive[index]=false}else{self.addCustomRegion(regions[index]);regionsIsActive[index]=true}updateTemplate()});$remove.click(function(e){if(polyCreator.customPlaces[regions[index].id]!==undefined){self.removeCustomRegion(regions[index]);regionsIsActive[index]=false}});$share.click(function(e){e.preventDefault();if(isSubscriber()){polyCreator.sharePolyDialog(regions[index].id,regions[index].label)}else{subscribeAlert(null,"subscriber-saved-work")}});$delete.click(function(e){e.preventDefault();alerter.popup("Are you sure you want to delete this custom region?","Cancel","Delete",function(){if(polyCreator.customPlaces[regions[index].id]!==undefined){self.removeCustomRegion(regions[index])}deleteCustomRegion(regions[index].id).done(function(){regions.splice(index,1);$regionItem.fadeOut().promise().done(function(){self.update()})})})});$rename.click(function(e){e.preventDefault();polyCreator.renamePolyDialog(regions[index].id,regions[index].label)})})}self.addCustomRegionById=function(regionId,noCenterAndZoom){if(polycreator.customPlaces[regionId]){return}if(regionId&&!isSubscriber()){subscribeAlert(null,"subscriber-shared-region");return}var region=_.find(regions,function(region){return parseInt(regionId,10)===region.id});if(region!=null){self.addCustomRegion(region,noCenterAndZoom)}};self.addCustomRegion=function(region,noCenterAndZoom){if(PEnvironment.pageName=="tables"){polyCreator.addCustomRegionForTable(region)}else if(PEnvironment.pageName=="reports"){reportLocationBarHandler(region,"custom-region");closeMenu()}else{polyCreator.setUpPlaceAndPolylines(region,map);var params=getUrlParams();if(params["iwtype"]==P.constants.infoWindowTypeCustomRegion){var customRegion=polycreator.customPlaces[region.id];var marker=customRegion.markers[0];if(params["iwx"]==marker.point.latitude){var content=PMIdentificationPrinter.printCustomPolyPlaces(region);customRegion.markers[0].openInfoWindowHtml(content,P.constants.infoWindowTypeCustomRegion)}}if(!noCenterAndZoom){map.setCenterBounds(region.getBounds())}}};self.removeCustomRegion=function(region){if(PEnvironment.pageName=="tables"){cube.remove(region)}else{polyCreator.removeCustomRegionFromMap(region)}};function addRegions(_regions){regions=_regions.concat(regions);setTimeout(function(){updateActiveRegions();updateTemplate()},500)}function updateActiveRegions(){regionsIsActive=_.map(regions,function isRegionCurrentlyActive(region){return polyCreator.customPlaces[region.id]!==void 0})}function sortRegions(_regions){regions=_.sortBy(_regions,function(region){var column;var day,month,year,date;switch(sortColumn){case"created":if(region.created&&typeof region.created=="string"&&region.created!=""&&region.created.toLowerCase()!="n/a"){date=region.created.split("/");day=date[1];month=date[0];year=date[2];column=new Date(year,month,day).getTime()}else{column=""}break;case"name":column=region.label.toLowerCase();break;case"author":column=region.author.toLowerCase();break}return column});if(!sortAscending){regions.reverse()}}function updateTemplate(){updateActiveRegions();$container.html(regionsTemplate({regions:regions,regionsIsActive:regionsIsActive,isPublicUser:session.get(P.constants.sessionUsername)===void 0,isCurrentSubscriber:isSubscriber(),sortColumn:sortColumn,isAscendingSort:sortAscending}));bindCustomRegionEvents()}function removeFromMenuById(id){for(var i=0;i<regions.length;i++){if(regions[i].id==id){regions.splice(i,1);break}}updateTemplate()}self.update=function(noReload,onLogin){if(session.get(P.constants.sessionUsername)!==void 0){if(noReload!==true){var f=function(places){sortRegions(places);regionsIsActive=_.map(regions,function isRegionCurrentlyActive(region){return polyCreator.customPlaces[region.id]!==void 0});if(onLogin){var p=getUrlParams();if(p["cp"]){var ids=p["cp"].split(",");for(var i=0;i<ids.length;i++){self.addCustomRegionById(ids[i])}}}$container.trigger("change");updateTemplate()};if(P.WKPrint.isPrintPage()===true){var ids=session.get("cp");if(ids){polyCreator.load(ids,function(places){f(places)})}}else{polyCreator.loadByUser(function(places){f(places)})}}else{sortRegions(regions);$container.trigger("change");updateTemplate()}}else{regions=[];regionsIsActive=[];updateTemplate()}};self.update()};TrfDataPointsLegend=function($container,_map){var map=_map;var $legend=$container;var $indicatorLegend=$("#legend");var $contentContainer=$legend.find(".legend__content");var $dataPoints=$legend.find(".legend--data-points__category-item");var overlays=[];var overlayFilterContainerHiddenStates=[];var overlayOptionsHiddenStates=[];var template=_.template($("#js-data-points-legend__content__template").html());var $filterGroupsContainer=$legend.find(".legend__data-points__category-item__filter-groups");var filterGroupsTemplate=_.template($("#js-data-points-legend__category-item__group-filters__template").html());var $filterGroupItems=$filterGroupsContainer.find("li");var $filtersContainer=$legend.find(".legend__data-points__category-item__filters");var filtersTemplate=_.template($("#js-data-points-legend__category-item__filters__template").html());var $filterItems=$filtersContainer.find("li");var pinIconSelectors={};$filterGroupsContainer.hover(cancelHideAfterDelay,hideFilterMenusAfterDelay);$filtersContainer.hover(cancelHideAfterDelay,hideFilterMenusAfterDelay);var hideTimer;var timeoutDelay=2e3;var self=this;datasetSearch=new DatasetSearch;datasetSearch.searchBox.hide();var enableCloneIconOptions=false;if(isCBClone()){enableCloneIconOptions=true;if(!map.storedSetIcons){map.storedSetIcons={}}var p=PinIcons;var icons_options=[p.triangle,p.triangle180,p.circle,p.diamond,p.square,p.star,p.flag,p.bow,p.pie,p.el];var div=$("<div />");div.hide();for(var i=0;i<icons_options.length;i++){var img=$("<img />");img.attr("src",icons_options[i].image);div.append(img);var mediumIcon=PinIcons[icons_options[i].category+"_medium"];var img=$("<img />");img.attr("src",mediumIcon.image);div.append(img)}$("body").append(div)}$legend.find(".legend__toggle-icon").click(function(){var $self=$(this);if($legend.hasClass("is-minimized")){$self.removeClass("is-minimized");$legend.removeClass("is-minimized")}else{$self.addClass("is-minimized");$legend.addClass("is-minimized")}});map.addListener("addoverlayset",function(overlayset){var sets=map.getOverlaySets();if(sets.length==1){updateLegendPositionOnMap()}if(overlayset.child!==true&&overlayset.displayfiltergroups){overlays.push(overlayset);overlayFilterContainerHiddenStates.push(false);renderTemplate()}updateOverlaySetsInSession();updateOverlayLabelsInSession();checkToCloseInfoWindow(overlayset)});PEvent.addListener(map,"removeoverlayset",function(overlayset){var sets=map.getOverlaySets();if(sets.length==0){updateLegendPositionOnMap()}if(overlayset.displayfiltergroups){var index=_.indexOf(overlays,overlayset);if(index!=-1){overlays.splice(index,1);overlayFilterContainerHiddenStates.splice(index,1);overlayOptionsHiddenStates.splice(index,1)}if(overlays.length===0){self.hide()}renderTemplate();updateOverlayFiltersInSession()}updateOverlaySetsInSession();updateOverlayLabelsInSession();checkToCloseInfoWindow(overlayset);var lp=P.instances.legendPanel;if(lp){lp.update()}});map.addListener("setoverlaysets",function(overlaysets){_.each(overlaysets,function(overlayset){if(overlayset.child!=true&&overlayset.displayfiltergroups){overlays.push(overlayset);overlayFilterContainerHiddenStates.push(false);renderTemplate()}});updateLegendPositionOnMap();updateOverlaySetsInSession();updateOverlayLabelsInSession();checkToCloseInfoWindow(overlayset)});map.addListener("clearoverlaysets",function(){self.hide();overlays=[];overlayFilterContainerHiddenStates=[]});$legend.on("mousewheel",function(event){event.stopPropagation()});this.show=function(){if(map.getIndicator()!==null&&$indicatorLegend.hasClass("legend--docked")&&overlays.length===1){positionUnderIndicatorLegend()}$legend.addClass("is-visible");$legend.show()};this.hide=function(){$legend.removeClass("is-visible");$legend.hide()};function updateOverlayFiltersInSession(){var sets=map.getOverlaySets(true,true);session.put("ofilters",overlaySetUtil.getFilterIds(sets))}function positionUnderIndicatorLegend(){$legend.css("top",$indicatorLegend.position().top+$indicatorLegend.outerHeight());$legend.css("left",$indicatorLegend.position().left)}function updateOverlayLabelsInSession(){var ids=labelManager.getLabelSetIds();if(ids){session.put("olabels",ids.toString())}else{session.remove("olabels")}}function updateOverlaySetsInSession(){session.put("o",overlaySetUtil.getSetIds(map.getOverlaySets(),"old"));session.put("dlo",overlaySetUtil.getSetIds(map.getOverlaySets(),"dl"));updateOverlayFiltersInSession()}function renderTemplate(){if(overlays.length>0){var s=null;if(isCBClone()&&P.CloneOptions.source_link_constant){s=P.CloneOptions.source_link_constant}$contentContainer.html(template({overlays:overlays,overlayFilterContainerHiddenStates:overlayFilterContainerHiddenStates,overlayOptionsHiddenStates:overlayOptionsHiddenStates,source_link_constant:s}));$dataPoints=$($dataPoints.selector);bindEventHandlers();$container.addClass("is-visible");$container.show()}else{$container.removeClass("is-visible");$container.hide()}}function bindEventHandlers(){$dataPoints.each(function(overlaysetIndex){var $dataPoint=$(this);var overlaySet=overlays[overlaysetIndex];var overlaySetIdWithType=overlaySet.id+overlaySet.type;var $closeButton=$dataPoint.find(".legend--data-points__category__header .legend__close-icon");var $minimizeButton=$dataPoint.find(".legend--data-points__category__header .legend__toggle-icon");if(isWKSiteLicense()){var newIcon;if(pinIconSelectors[overlaySetIdWithType]==null){var iconsById=session.get("ibi");if(iconsById!=null&&iconsById[overlaySetIdWithType]!=null){newIcon=PinIconsById[iconsById[overlaySetIdWithType]]}else{newIcon=overlaySet.icon}pinIconSelectors[overlaySetIdWithType]=new PinIconSelector(newIcon)}else{newIcon=pinIconSelectors[overlaySetIdWithType].getCurrentIcon()}if(productProperty.exists("user_preference")){var urlParams=getUrlParams();var paramIconsById=urlParams["ibi"];if(paramIconsById==null||paramIconsById.indexOf(overlaySetIdWithType)==-1){if(userPreference&&userPreference.data[userPreference.PREFERENCE_DATASET_PIN]&&userPreference.data[userPreference.PREFERENCE_DATASET_PIN][overlaySet.id]){newIcon=PinIconsById[userPreference.data[userPreference.PREFERENCE_DATASET_PIN][overlaySet.id]];pinIconSelectors[overlaySetIdWithType]=new PinIconSelector(newIcon)}}}if(newIcon!=overlaySet.icon){updatePinIcon($dataPoint,overlaySet,newIcon)}}var $searchButton;var $searchInput;var $filterButton=$dataPoint.find(".legend--data-points__filter-button");if(isWidgetPage()){$filterButton.tooltip({title:"Filter how data is displayed",placement:"left",container:"body"})}var $filters;var autoSuggest;var $filterHeader;var $filterContentContainer;var $downloadButton=$dataPoint.find(".legend--data-points__download-button");var $viewButton=$dataPoint.find(".legend--data-points__view-button");var hasColorAllFilter=$dataPoint.find(".legend--data-points__filter-by-icons").length>0;if(hasColorAllFilter){$dataPoint.find(".legend--data-points__category__header .legend--data-points__icon").addClass("legend--data-points__icon--hidden")}$closeButton.click(function(){$(this).tooltip("destroy");map.removeOverlaySet(overlaySet);labelManager.updateMapLabels();var lp=P.instances.legendPanel;if(lp){lp.update()}});if(isWidgetPage()){$closeButton.tooltip({title:"Remove data",placement:"top",container:"body"})}$minimizeButton.click(function(){var c="is-minimized";$(this).toggleClass(c);$dataPoint.toggleClass(c);overlayOptionsHiddenStates[overlaysetIndex]=$(this).hasClass(c)});if(overlaySet.search&&overlaySet.type!="dl"){$searchButton=$dataPoint.find(".legend--data-points__search-button");$searchInput=$dataPoint.find(".legend--data-points__search");autoSuggest=new AutoSuggest;autoSuggest.attach($searchInput.get(0),"d");$searchInput.keydown(function(event){var $self=$(this);datasetSearch.currentDataset=overlaySet;datasetSearch.searchField=$self.get(0);if(event&&event.keyCode==13&&autoSuggest.getSelectedItem()==null){datasetSearchQuery(overlaySet.id,overlaySet.type,$self.val())}});$searchButton.click(function(){datasetSearch.currentDataset=overlaySet;datasetSearch.searchField=$searchInput.get(0);datasetSearchQuery(overlaySet.id,overlaySet.type,$searchInput.val())})}if($downloadButton.length>0){var s=overlaySet;if(s.isPoly&&s.children.length>0){s=s.children[0]}$downloadButton.data("o",s);var o=$.extend({},s);$downloadButton.click(function(){o.format="csv";o.offset=null;o.limit=null;var b=P.instances.map.getBounds();b.getMarkersWithin(o)})}if($viewButton.length>0){$viewButton.click(function(){showSiteListPopup(overlaySet)})}if(_.keys(overlaySet.displayfiltergroups).length>0){$filterButton.click(function(e){e.stopPropagation();var $self=$(this);$filtersContainer.hide();renderGroupFiltersTemplate(overlaySet,$(this));if($(this).hasClass("is-active")){hideFilterMenus()}else{$legend.css("z-index",Strata.OVER_MAP2);$legend.find(".legend--data-points__filter-button").removeClass("is-active");$(this).addClass("is-active");$filterGroupsContainer.css("top",$self.position().top+"px");$filtersContainer.css("top",$self.position().top+"px");$filterGroupsContainer.show()}if(isWidgetPage()){
P.instances.legendPanel.update(self.$menuContainer)}})}if(_.keys(overlaySet.filtergroups).length>0){$filters=$dataPoint.find(".legend--data-points__filter");$filters.each(function(){var $filter=$(this);var filterGroupKey=$filter.find(".legend--data-points__filter-group-name").text();var filterName=$filter.find(".legend--data-points__filter-name").text();var filter=_.find(overlaySet.filtergroups[filterGroupKey],function(filter){return filter.valuesDisplay===filterName});var $close=$filter.find(".legend__close-icon");$close.click(function(event){event.preventDefault();$(this).tooltip("destroy");removeOverlayFilter(overlaySet,filter);renderTemplate();updateOverlayFiltersInSession()});if(isWidgetPage()){$close.tooltip({title:"Remove filter",placement:"left",container:"body"})}});$filterHeader=$dataPoint.find(".legend--data-points__filters__header");$filterContentContainer=$dataPoint.find(".legend--data-points__filters__content");$filterHeader.click(function(event){var $header=$(this);event.preventDefault();$header.toggleClass("is-minimized");$filterContentContainer.toggle();overlayFilterContainerHiddenStates[overlaysetIndex]=!overlayFilterContainerHiddenStates[overlaysetIndex];if(overlayFilterContainerHiddenStates[overlaysetIndex]){$header.find(".legend__filter-minimize-icon").removeClass("legend__filter-minimize-icon").addClass("legend__filter-maximize-icon")}else{$header.find(".legend__filter-maximize-icon").removeClass("legend__filter-maximize-icon").addClass("legend__filter-minimize-icon")}})}if(pinIconSelectors[overlaySetIdWithType]!=null){var $links=$dataPoint.find(".icon-settings-link");$links.click(function(){var $link=$(this);var $parent=$link.parent();pinIconSelectors[overlaySetIdWithType].toggle($link,$parent,function(selectedIcon,changed){if(changed){updatePinIcon($dataPoint,overlaySet,selectedIcon)}})});if(productProperty.exists("user_preference")){$b=$dataPoint.find(".user-preference");$b.addClass("show");var type=userPreference.PREFERENCE_DATASET_PIN;userPreference.$buttons[type][overlaySet.id]=$b;$b.click(function(){$e=$(this);var m=P.instances.map;var target=overlaySet.id;var iconId=overlaySet.icon.pinid;if($e.hasClass("active")){iconId=null}$e.tooltip("hide");userPreference.setPreference(target,iconId,type)});$b.tooltip();userPreference.updatePreferenceDatasetPinButton()}}if(enableCloneIconOptions){var $e=$(".legend--data-points__icon");$e.addClass("enabled");$e.click(function(){setIconOptions(overlaySet,this,$(this).find("img"))})}})}function hideFilterMenusAfterDelay(){cancelHideAfterDelay();hideTimer=setTimeout(hideFilterMenus,timeoutDelay)}function hideFilterMenus(){$legend.find(".legend--data-points__filter-button").removeClass("is-active");if(self.$menuContainer){self.$menuContainer.hide();P.instances.legendPanel.update()}$filtersContainer.scrollTop(0);$filtersContainer.hide();$filterGroupsContainer.scrollTop(0);$filterGroupsContainer.hide();$dataPoints.removeClass("is-selected")}function cancelHideAfterDelay(){clearTimeout(hideTimer)}function renderGroupFiltersTemplate(overlay,$button){if(isWidgetPage()){renderGroupFiltersTemplateDrilldown(overlay,$button);return}var filterGroups=_.keys(overlay.displayfiltergroups);$filterGroupsContainer.html(filterGroupsTemplate({filterGroups:filterGroups}));$filterGroupsContainer.scrollTop(0);$filterGroupItems=$($filterGroupItems.selector);$filterGroupItems.each(function(index){var $filterGroupItem=$(this);$filterGroupItem.hover(function showFiltersContainer(){var filters=overlay.displayfiltergroups[$(this).text()];renderFiltersTemplate(overlay,filters);$filtersContainer.show();$filterGroupItem.siblings().removeClass("is-selected");$filterGroupItem.addClass("is-selected")},function hideMenusAfterDelay(){$dataPoints.removeClass("is-selected")})})}function renderGroupFiltersTemplateDrilldown(overlay,$button){if(self.$filterMenu){self.$filterMenu.remove()}var filtergroups=_.keys(overlay.displayfiltergroups);var $menuContainer=$("<div />",{class:"drill-down-taxonomy filters--dd-container"});self.$menuContainer=$menuContainer;var $header=$("<div />",{class:"menu__title"});var $title=$("<div />",{class:"menu__title__content",text:"FILTER BY:"});var $close=$("<div />",{class:"menu__title__close",title:"Remove Filter"});var $icon=$("<span />",{class:"legend__close-icon legend__close-icon__sub l-hide-text",text:"Remove Filter"});$close.append($icon);$close.click(function(){hideFilterMenus()});$header.append($title,$close);$menuContainer.append($header);self.$filterMenu=$menuContainer;var $menu=$("<ul />",{class:"filters-drilldown"});$menuContainer.append($menu);$menuContainer.click(function(e){e.stopPropagation()});var lp=P.instances.legendPanel;if(lp){$(".map-legends__panel").click(function(){hideFilterMenus()})}$.each(filtergroups,function(index){var name=filtergroups[index];if(name.indexOf("_HIDE")!=-1){return}var $li=$("<li />",{html:'<a tabindex="0">'+name+"</a>",class:"filter-group"});var $ul=$("<ul />",{class:"filtergroup"});$li.append($ul);$menu.append($li);var filters=overlay.displayfiltergroups[name];$.each(filters,function(index){var $f=$("<li />",{html:'<a class="taxonomy-filter" tabindex="0"><span class="type-icon"></span><span class="text">'+this.valuesDisplay+"</span></a>",class:"filter"});$ul.append($f);var isActive=isOverlayFilterIdActive(overlay,filters[index].columnName,filters[index].id);var $filterItem=$f;if(isActive){$f.addClass("is-active")}else{$f.removeClass("is-active")}$f.click(function(e){e.preventDefault();if(isActive){$(this).removeClass("is-selected");removeOverlayFilterByIndex(overlay,filters,index)}else{$(this).addClass("is-selected");addOverlayFilter(overlay,filters,index)}renderTemplate();updateOverlayFiltersInSession();hideFilterMenus();labelManager.updateMapLabels();var lp=P.instances.legendPanel;if(lp){lp.update()}})})});$button.parent().append($menuContainer);var pos=$button.offset();$(".filters-drilldown").dcDrilldown({speed:"fast",saveState:false,showCount:false,linkType:"backlink",resetText:"All",defaultText:"",classActive:"active",$closeElement:$close,$container:$menuContainer,includeTextModeOption:productProperty.getValue("show_text_only")});$(".filters-drilldown").on("change",function(){P.instances.legendPanel.update(self.$menuContainer)});$("body").off("click.filters").on("click.filters",function(event){if(self.$filterMenu&&!$(event.target).closest(self.$filterMenu).length&&!$(event.target).parents(self.$filterMenu).length){self.$filterMenu.remove();P.instances.legendPanel.update()}if(self.$filterMenu){}});P.instances.legendPanel.update()}function renderFiltersTemplate(overlay,filters){$filtersContainer.html(filtersTemplate({filters:filters}));$filtersContainer.scrollTop(0);$filterItems=$($filterItems.selector);$filterItems.each(function(index){var isActive=isOverlayFilterIdActive(overlay,filters[index].columnName,filters[index].id);var $filterItem=$(this);if(isActive){$(this).addClass("is-active")}else{$(this).removeClass("is-active")}$filterItem.click(function(e){e.preventDefault();if(isActive){$filterItem.removeClass("is-selected");removeOverlayFilterByIndex(overlay,filters,index)}else{$filterItem.addClass("is-selected");addOverlayFilter(overlay,filters,index)}renderTemplate();updateOverlayFiltersInSession();hideFilterMenus();labelManager.updateMapLabels()})})}function isOverlayFilterIdActive(overlay,filterColumnName,filterId){return _.some(overlay.filtergroups,function(filterGroup){return _.some(filterGroup,function(filter){return filter.id===filterId&&filter.columnName===filterColumnName})})}function addOverlayFilter(overlay,filters,filterIndex){var mapSets=map.getOverlaySets(false,true);var colorCodeFilter;if(filters[filterIndex].values[0]==="COLORCODE"){var availableFilters=_.filter(filters,function(filter){return filter.values[0]!=="COLORCODE"});colorCodeFilter=filters;var addFilterFunc=function(){overlay.setFiltersByIcons(availableFilters,overlay.colorcodes);overlay.filtergroups[filters[filterIndex].name]=[];overlay.filtergroups[filters[filterIndex].name].push(filters[filterIndex]);for(var l=0;l<overlay.children.length;l++){var curSet=overlay.children[l];for(var m=0;m<mapSets.length;m++){var curMapSet=mapSets[m];if(curMapSet.id===curSet.id&&curMapSet.type===curSet.type){curMapSet.setFiltersByIcons(availableFilters,overlay.colorcodes);curMapSet.filtergroups[filters[filterIndex].name]=[];curMapSet.filtergroups[filters[filterIndex].name].push(filters[filterIndex]);break}}}renderTemplate()};if(!overlay.isIFFDataset()&&overlay.filtersbyicons.length>0){var text="The previous color code filter will be removed to add this new one.";var that=this;alerter.popup(text,"Cancel","OK",function(){overlay.clearFiltersByIcons();addFilterFunc()})}else if(overlay.isIFFDataset()){overlay.clearFilters();addFilterFunc()}else{addFilterFunc()}}else{if(overlay.isIFFDataset()){var filtergroups=overlay.filtergroups;for(var l in filtergroups){if(filtergroups[l].length>0){if(filtergroups[l][0].values[0]==="COLORCODE"&&isIFFAccountabilityColumn(overlay.id,filtergroups[l][0].columnName)){overlay.removeFilterFromGroup(filtergroups[l][0])}}}}overlay.addFilter(filters[filterIndex]);for(var i=0;i<overlay.children.length;i++){var curChildSet=overlay.children[i];var childFilter=overlaySetUtil.getChildFilter(filters[filterIndex],curChildSet);if(childFilter!=null){curChildSet.addFilter(childFilter)}}if(colorCodeFilter!==undefined){overlay.removeFilterFromGroup(colorCodeFilter)}}}function removeOverlayFilterByIndex(overlay,filters,index){removeOverlayFilter(overlay,filters[index])}function removeOverlayFilter(overlay,filter){function removeFromSet(set,filter){set.removeFilter(filter);if(filter.values[0]==="COLORCODE"&&!set.isIFFDataset()){set.clearFiltersByIcons()}}removeFromSet(overlay,filter);for(var i=0;i<overlay.children.length;i++){var curChildSet=overlay.children[i];var childFilter=overlaySetUtil.getChildFilter(filter,curChildSet);if(childFilter!=null){removeFromSet(curChildSet,childFilter)}}if(datasetSearch&&datasetSearch.currentDataset&&datasetSearch.currentDataset.id===overlay.id){datasetSearch.setCurrentDataset(overlay)}}function datasetSearchQuery(datasetID,datasetType,query){var act=datasetType=="old"?"d":"dd";ajax.call({url:PEnvironment.autosuggestUrl+"&rqid=1&act="+act+"&di="+datasetID+"&ss="+encodeURIComponent(query),dataType:"json",context:this,success:function(response){if(response==null||response.ast==null||response.ast.results==null){return}if(response.ast.results.length<1){alerter.popup('No sites matching the search term "'+query+'" were found.',"OK");return}datasetSearch.loadSite(response.ast.results[0])}})}function setIconOptions(set,linkElem,imgElem){var div=$("<div />");div.addClass("icon-options");var icons=icons_options;var cnt=0;for(var i=0;i<icons.length;i++){if(cnt>4){div.append("<br />");cnt=0}var icon=icons[i];var mediumIcon=PinIcons[icons[i].category+"_medium"];var a=$("<a />");a.html("<img src='"+mediumIcon.image+"' />");a.attr("i",i);var that=this;a.click(function(){var icon=icons[$(this).attr("i")];imgElem.attr("src",icon.image);set.changeIcon(icon,true);map.storedSetIcons[set.id]=icon});div.append(a);cnt++}$(linkElem).append(div);var menuTimer;$(linkElem).mouseleave(function(){var that=this;menuTimer=setTimeout(function(){$(that).find(".icon-options").remove()},300)});$(linkElem).mouseover(function(){clearTimeout(menuTimer)})}function updatePinIcon($dataPoint,overlaySet,selectedIcon){overlaySet.changeIcon(selectedIcon,true);var $legendImgParent=$dataPoint.find(".legend--data-points__icon");var $legendImg=$legendImgParent.find("img");$legendImg.attr("src",selectedIcon.image);$legendImgParent.removeClass("legend--data-points__icon__small legend--data-points__icon__medium legend--data-points__icon__large legend--data-points__icon__polygon");if(selectedIcon.sizeid==1){$legendImgParent.addClass("legend--data-points__icon__small")}else if(selectedIcon.sizeid==2){$legendImgParent.addClass("legend--data-points__icon__medium")}else if(selectedIcon.sizeid==3){$legendImgParent.addClass("legend--data-points__icon__large")}else if(selectedIcon.sizeid==4){$legendImgParent.addClass("legend--data-points__icon__polygon")}var iconsById=session.get("ibi");if(iconsById==null){iconsById={}}iconsById[overlaySet.id+overlaySet.type]=selectedIcon.pinid;session.put("ibi",iconsById);if(productProperty.exists("user_preference")){userPreference.updatePreferenceDatasetPinButton()}}function checkToCloseInfoWindow(o){if(P.WKPrint.isPrintPage()===true){return}if(map.getInfoWindow()&&o.isLabel!=true){map.clearInfoWindowBoundary();map.closeInfoWindow()}}};var TrfFavorites=function(taxonomy,$toggleContainer,logger){var MAX_FAVORITES_PATH_LENGTH=40;var $toggle=$toggleContainer;var $myDataMenuFavoritesItems=$(".my-data-menu__favorites__item");var favorites;var $favoritesIcon=$toggle.children(".add-to-favorites-icon");var currentFavoriteNodeId;var self=this;var $myDataMenuFavorites=$(".my-data-menu__favorites__content");var myDataMenuFavoritesTemplate=_.template($("#js-my-data-menu__favorites__content__template").html());var $addToFavoritesIcon=$(".content__header__favorites-toggle .add-to-favorites-icon");if(PEnvironment.pageName!=="tables"&&map!=null){map.addListener("setindicator",function(){self.updateFavoritesIcon()})}$(window).on(P.events.LOGGED_IN,function(){self.updateFavorites();self.updateFavoritesIcon()});$(window).on(P.events.LOGGED_OUT,function(){self.updateFavorites();self.updateFavoritesIcon()});$toggle.click(function(){var $self=$(this);var nodeId=currentFavoriteNodeId;if(isFavorite(nodeId)){self.modifyFavoriteIndicator("remove",nodeId,function(isSuccessful){if(isSuccessful){$favoritesIcon.removeClass("is-favorite");self.updateFavorites();$self.attr("title","Add to Favorites")}else{alerter.popup("There was an error adding this indicator to your favorites.","OK")}})}else{self.modifyFavoriteIndicator("add",nodeId,function(isSuccessful){if(isSuccessful){$favoritesIcon.addClass("is-favorite");self.updateFavorites();$self.attr("title","This indicator has been added to your Favorites. You can access your Favorites at any time from the My Data Menu.");alerter.popup("This indicator has been added to your Favorites. You can access your Favorites at any time from the My Data Menu.","OK")}else{alerter.popup("There was an error adding this indicator to your favorites.","OK")}})}});function isFavorite(nodeId){return _.any(favorites,function(favorite){return favorite.id===nodeId})}this.setCurrentFavoriteNodeId=function(nodeId){currentFavoriteNodeId=nodeId};this.updateFavoritesTemplate=function(){var favoritePaths=_.map(favorites,function(favorite){var shortenedPath="";var charactersLeft;var paths;if(favorite.path.length>MAX_FAVORITES_PATH_LENGTH){paths=favorite.path.split(" > ");charactersLeft=MAX_FAVORITES_PATH_LENGTH-paths[paths.length-1].length;shortenedPath=$.trim(favorite.path.substring(0,charactersLeft));if(shortenedPath.slice(-1)===">"){shortenedPath=shortenedPath.substring(0,shortenedPath.length-2)}shortenedPath+="... > "+paths[paths.length-1];return shortenedPath}else{return favorite.path}});$myDataMenuFavorites.html(myDataMenuFavoritesTemplate({favorites:favorites,favoritePaths:favoritePaths,isPublicUser:isPublicUser()}));$myDataMenuFavoritesItems=$($myDataMenuFavoritesItems.selector);bindMyDataMenuFavoritesEvents()};function bindMyDataMenuFavoritesEvents(){$myDataMenuFavoritesItems.each(function(index){var $self=$(this);var $name=$self.find(".my-data-menu__favorites__name");var $delete=$self.find(".my-data-menu__icon--delete");var nodeId=favorites[index].id;var indicators=taxonomy.getIndicators(nodeId);var geoBoundaryId=taxonomy.getGeoBoundaryId(nodeId);$name.click(function(e){e.preventDefault();currentFavoriteNodeId=nodeId;selectIndicators.apply(this,indicators);if(geoBoundaryId!==null){selectPlace(geoBoundaryId)}});$delete.click(function(e){e.preventDefault();var removeFavorite=function(){self.modifyFavoriteIndicator("remove",nodeId,function(isSuccessful){if(isSuccessful){if(nodeId===currentFavoriteNodeId){$addToFavoritesIcon.removeClass("is-favorite")}favorites.splice(index,1);$self.fadeOut({complete:function(){self.updateFavoritesTemplate()}})}else{alerter.popup("There was an error removing this indicator from your favorites.","OK")}})};alerter.popup("Are you sure you want to remove this favorite?","Cancel","Remove",removeFavorite)})})}this.updateFavorites=function(){if(session.get(P.constants.sessionUsername)!==undefined){$.when(getFavorites()).done(function(response){if(response&&response.fav){favorites=buildFavoritesMap(response.fav);logger.log(P.Debug.INFO,"favorites initialized");self.updateFavoritesIcon();self.updateFavoritesTemplate();$toggle.trigger("change")}else{alerter.popup("There was an error loading your favorite indicators.","OK")}})}else{if(favorites!==undefined&&favorites.length>0){favorites=[]}self.updateFavoritesIcon();self.updateFavoritesTemplate();$toggle.trigger("change")}};this.updateFavoritesIcon=function(){if(session.get(P.constants.sessionUsername)!==undefined&&getIndicator()!==undefined&&getIndicator()!==null){var currentIndicatorId=getIndicator().id;var nodeIds=taxonomy.getNodeIdsByIndicatorId(currentIndicatorId);var isFavorited=false;if(nodeIds.length>0){if(!_.contains(nodeIds,currentFavoriteNodeId)){_.each(nodeIds,function(nodeId){if(isFavorite(nodeId)){$favoritesIcon.addClass("is-favorite");isFavorited=true;currentFavoriteNodeId=nodeId}});if(!isFavorited){currentFavoriteNodeId=nodeIds[0];$favoritesIcon.removeClass("is-favorite")}}else{if(isFavorite(currentFavoriteNodeId)){$favoritesIcon.addClass("is-favorite");$favoritesIcon.attr("title","This indicator has been added to your Favorites. You can access your Favorites at any time from the My Data Menu.")}else{$favoritesIcon.removeClass("is-favorite");$favoritesIcon.attr("title","Add to Favorites")}}}else{$favoritesIcon.removeClass("is-favorite")}}};this.modifyFavoriteIndicator=function(action,nodeId,callback){var actionParm="";if(action=="add"){actionParm="ia"}else if(action=="remove"){actionParm="ir"}else{callback(false)}if(!isPublicUser()){ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=fav&act="+actionParm+"&nodeid="+nodeId,dataType:"json",success:function(result){if(result.fav&&result.fav.status=="OK"&&result.fav.indicators){callback(true)}else{callback(false)}},error:function(){callback(false)}})}else{var text="Favorites are available to Basic (free) Users and Subscribers only. <a onclick='showLoginModal();' class='simulink pagelinks'>Login</a> to access or <a onclick='showSignupOrUpgradeModal();' class='simulink pagelinks'>sign up for PolicyMap</a>.";alerter.popup(text,"OK")}};function getIndicator(){var indicator;switch(PEnvironment.pageName){case"tables":if(global_indicators.length>0){indicator=global_indicators[0]}break;default:indicator=map.getIndicator()}return indicator}function getFavorites(){return ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=fav&act=ig",dataType:"json",success:function(result){},error:function(){alerter.popup("There was an error loading your favorite indicators.","OK")}})}function buildFavoritesMap(favoriteIndicatorIds){return _.chain(favoriteIndicatorIds).map(function(favoriteIndicatorId){return _.head(taxonomy.getNodeIdsByIndicatorId(favoriteIndicatorId))}).filter(function(nodeId){return nodeId!==undefined}).map(function(nodeId){return{id:nodeId,path:taxonomy.getPathToNodeId(nodeId)}}).sortBy(function(favorite){return favorite.path}).value()}};TrfLegendBreaks=function($element,_$shadingRangesSelect){this.$elm=$element;this.$container=this.$elm.find(".legend__breakdown__container").first();this.$legendContainer=this.$elm.parents(".legend");this.$legendContentContainer=this.$elm.parent(".legend__content");this.breaksTemplate=_.template($("#js-legend__breakdown__item__template").html());this.$shadingRangesSelect=_$shadingRangesSelect;var breaksRangeEditClass="legend__breakdown--edit-ranges";var breaksColorEditClass="legend__breakdown--edit-colors";var $editOptions=$(".legend__breakdown__edit__item");var $colorEditToggle=$(".legend__breakdown__edit__item__color-toggle");var $rangeEditToggle=$(".legend__breakdown__edit__item__range-toggle");var $breakdownItems=$(".legend__breakdown__item");var colorRampsTemplate=_.template($("#js-legend__breakdown__color-ramp__template").html());var saveButtonSelector=".legend__breakdown__apply";var cancelButtonSelector=".legend__breakdown__cancel";var defaultButtonSelector=".legend__breakdown__default";var breaksEditOptionSelector=".legend__breakdown__breaks-options a";var self=this;var $editTitle=$(".legend__breakdown-options").find(".title .text");$(".legend__breakdown-options").find(".legend__title__close").click(function(){self.resetView()});function refreshColorRamps(){var ramps=[];var arr=[];var legendRamps=colorRamps.getLegendRamps();self.$elm.addClass(breaksColorEditClass);self.$elm.removeClass(breaksRangeEditClass);for(var i=0;i<legendRamps.length;i++){arr.push(legendRamps[i])}for(var y=0;y<arr.length;y++){var colorRamp={};colorRamp.name=arr[y].name;var colors=arr[y].getColors();colorRamp.colors=[];for(var i=0;i<colors.length;i++){colorRamp.colors.push("#"+colors[i].color)}ramps.push(colorRamp)}self.$container.html(colorRampsTemplate({colorRamps:ramps,currentColorRampName:widget.legend.getColorRamp().name}));$(".legend__breakdown__item").click(function(){$(".legend__breakdown__item").removeClass("selected");$(this).addClass("selected")});bindColorRamps()}function bindColorRamps(){var $save=self.$container.find(saveButtonSelector);var $cancel=self.$container.find(cancelButtonSelector);var $restore=self.$container.find(defaultButtonSelector);$breakdownItems=self.$container.find($breakdownItems.selector);$save.click(function(){widget.changeColorRamp($breakdownItems.find("input:checked").val(),null,null,true);self.resetView()});$cancel.click(function(){self.resetView()});$restore.click(function(){var rampname=PColorRamp.DEFAULT.name;widget.changeColorRamp(rampname,true,null,true);self.resetView()})}function bindBreakOptions(){self.$shadingRangesSelect.change(function(){handleCutPoints(this)});self.$container.find(saveButtonSelector).click(function(e){e.preventDefault();widget.getIndicatorBreaks().applyCustomBreaks(true);self.resetView()});self.$container.find(cancelButtonSelector).click(function(e){e.preventDefault();widget.getIndicatorBreaks().setEditMode(false);self.resetView()});self.$container.find(defaultButtonSelector).click(function(e){e.preventDefault();widget.getIndicatorBreaks().restoreBreaks();self.resetView()})}this.resetView=function(){var self=this;widget.getIndicatorBreaks().setEditMode(false);self.$elm.removeClass(breaksColorEditClass);self.$elm.removeClass(breaksRangeEditClass);$editOptions.removeClass("is-active")};this.refresh=function(breaks,incrementBreaks,numBreaks,colors,legend){var legendBreaks=[];var legendBreak;if(editState&PIndicatorBreaks.EDITSTATE.currentlyEditing){this.$elm.addClass(breaksRangeEditClass)}else{this.$elm.removeClass(breaksRangeEditClass)}this.$elm.removeClass(breaksColorEditClass);this.$container.empty();var legend=P.instances.map.getLegend();var types=legend.getBoundaryTypes();if(editState&PIndicatorBreaks.EDITSTATE.noBoundaryType||types.length==0){legend.clearBoundaryType();legend.redraw();var text="Zoom in further to see this data.";var ids=legend.getIndicator().getDatasetIds();if(isCDCCityData(ids)){text="Data is available for select cities; pan or zoom if data is not visible."}this.$container.append("<div class='legend__warning'>"+text+"</div>")}else{var nodata=false;if(editState&PIndicatorBreaks.EDITSTATE.noData)numBreaks+=1;if(breaks===null||breaks[numBreaks-1]===null){this.$container.append("<p>There is insufficient data to create the current ranges. Try a smaller number.</p>")}else{var mvaLayers=session.get("mvalayers");for(var i=0;i<numBreaks;i++){legendBreak={};var breaksString="";if(editState&PIndicatorBreaks.EDITSTATE.noData&&i==0){legendBreak.color="#"+colors[i];if(editState&PIndicatorBreaks.EDITSTATE.currentlyEditing&&editState&PIndicatorBreaks.EDITSTATE.exactBreaks){legendBreak.label="<input id='breakbox0' class='breaksbox' type='checkbox' ";if(mvaLayers[0]){legendBreak.label+="checked "}legendBreak.label+="/>"}if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){if(!(editState&PIndicatorBreaks.EDITSTATE.currentlyEditing)){if(!mvaLayers[0]){legendBreak.isDisabled=true}}}if(legendBreak.label===undefined){legendBreak.label=legend.getIndicator().nodatalabel}else{legendBreak.label+="<label for='breakbox0'>"+legend.getIndicator().nodatalabel+"</label>"}legendBreak.isInsufficientData=true;nodata=true}else if(editState&PIndicatorBreaks.EDITSTATE.currentlyEditing){if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){legendBreak.color="#"+colors[i];legendBreak.label="<input id='breakbox"+i+"' class='breaksbox' type='checkbox' ";if(mvaLayers[i]){legendBreak.label+="checked "}legendBreak.label+="/><label for='breakbox"+i+"'>"+breaks[i]+"</label>"}else{var startbreak;if(i==0||i==1&&nodata)startbreak=breaks[i];else startbreak=incrementBreaks[i];breaksString="<td align='right' style='padding-left: 3px'><input onchange='widget.getIndicatorBreaks().checkBreakBoxes(this.id)' id='breakbox"+i+"a' class='breaksbox' type='text' value='"+startbreak+"'></td><td width=20 align='center'>&ndash;</td><td align='right' style='padding-right: 3px'><input onchange='widget.getIndicatorBreaks().checkBreakBoxes(this.id)' id='breakbox"+i+"b' class='breaksbox' type='text' value='"+breaks[i+1]+"'></td>";legendBreak.color="#"+colors[i];legendBreak.min="<input onchange='widget.getIndicatorBreaks().checkBreakBoxes(this.id)' id='breakbox"+i+"a' class='breaksbox' type='text' value='"+startbreak+"'>";legendBreak.max="<input onchange='widget.getIndicatorBreaks().checkBreakBoxes(this.id)' id='breakbox"+i+"b' class='breaksbox' type='text' value='"+breaks[i+1]+"'>"}}else{if(editState&PIndicatorBreaks.EDITSTATE.exactBreaks){breaksString="<td colspan=3 align='center' style='padding-left:3px";if(mvaLayers[i]){breaksString+=";color:#878787"}else{breaksString+=";color:#d7d7d7;font-style:italic";legendBreak.isDisabled=true}breaksString+="'>"+breaks[i]+"</td>";legendBreak.label=breaks[i]}else{if((i==0||i==1&&nodata)&&!legend.compareCustomBreaks(i,">")){breaksString="<td colspan='3' align='center' style='padding-left: 3px'>"+breaks[i+1]+" or less</td>";legendBreak.label=breaks[i+1]+" or less"}else if(i==numBreaks-1&&!legend.compareCustomBreaks(i+1,"<")){breaksString="<td colspan='3' align='center' style='padding-left: 3px'>"+incrementBreaks[i]+" or more </td>";legendBreak.label=incrementBreaks[i]+" or more"}else{var startbreak;if(i==0||i==1&&nodata)startbreak=breaks[i];else startbreak=incrementBreaks[i];if(startbreak==breaks[i+1]){breaksString="<td align='right' style='padding-left: 3px'>"+startbreak+"</td><td width=20 align='center'></td><td align='right' style='padding-right: 3px'></td>";legendBreak.label=startbreak}else{breaksString="<td align='right' style='padding-left: 3px'>"+startbreak+"</td><td width=20 align='center'>&ndash;</td><td align='right' style='padding-right: 3px'>"+breaks[i+1]+"</td>";legendBreak.min=startbreak;legendBreak.max=breaks[i+1]}}}legendBreak.color="#"+colors[i]}legendBreaks.push(legendBreak)}}}self.$container.append(this.breaksTemplate({legendBreaks:legendBreaks,isEditing:(editState&PIndicatorBreaks.EDITSTATE.currentlyEditing)>0,exactBreaks:(editState&PIndicatorBreaks.EDITSTATE.exactBreaks)>0}));this.adjustMaxHeight();if((editState&PIndicatorBreaks.EDITSTATE.currentlyEditing)>0&&(editState&PIndicatorBreaks.EDITSTATE.nonSubscriber)===0){self.$shadingRangesSelect=$(self.$shadingRangesSelect.selector);var width="auto";if(isWidgetPage()){width="100%"}$("#legend__shading__ranges").chosen({disable_search:true,width:width});bindBreakOptions()}this.$shadingRangesSelect.val(map.getLegend().getNumberOfBreaks());this.$shadingRangesSelect.trigger("chosen:updated");this.$elm.scrollTo(0,0);$(window).trigger(P.events.LEGEND_UPDATED)};this.enableColorEditToggle=function(){$colorEditToggle.removeClass("is-disabled")};this.disableColorEditToggle=function(){$colorEditToggle.addClass("is-disabled")};this.enableRangesEditToggle=function(){$rangeEditToggle.removeClass("is-disabled")};this.disableRangesEditToggle=function(){$rangeEditToggle.addClass("is-disabled")};this.updatePanel=function(){};$colorEditToggle.click(function(e){var $self=$(this);e.preventDefault();if(!$self.hasClass("is-disabled")){if(!isSubscriber()&&!isCovidData()){subscribeAlert()}else{if($self.hasClass("is-active")){$self.removeClass("is-active");self.resetView()}else{$self.siblings().removeClass("is-active");$self.addClass("is-active");$editTitle.html("CHANGE COLORS");refreshColorRamps()}}var lp=P.instances.legendPanel;if(lp){lp.update($("."+breaksColorEditClass))}}});$rangeEditToggle.click(function(e){e.preventDefault();var $self=$(this);if(!$self.hasClass("is-disabled")){if(!isSubscriber()&&!isCovidData()){subscribeAlert()}else{if($self.hasClass("is-active")){$self.removeClass("is-active");self.resetView()}else{$self.siblings().removeClass("is-active");$self.addClass("is-active");$editTitle.html("EDIT RANGES");displayEditRangesPanel()}}var lp=P.instances.legendPanel;if(lp){lp.update($("."+breaksRangeEditClass))}}});this.adjustMaxHeight=function(){if(isWidgetOrEmbedMap()){return}if(!this.$legendContainer.is(":visible")){return}var self=this;var legendHeight=this.$legendContainer.find("h2").outerHeight();this.$legendContentContainer.children().each(function(){if(!$.contains(this,self.$container.get(0))){legendHeight+=$(this).outerHeight()}});this.$container.css("max-height",Math.max(200,$(map.getContainer()).height()-legendHeight-100)+"px");var scrollbarVisible=function(){this.$container.addClass("no-drag");this.$container.find(".legend__breakdown__color").css("width","16px")};var scrollbarNotVisible=function(){this.$container.removeClass("no-drag");this.$container.find(".legend__breakdown__color").css("width","")};if(this.$container.hasScrollBar()){scrollbarVisible.apply(this);if(!this.$container.hasScrollBar()){scrollbarNotVisible.apply(this)}}else{scrollbarNotVisible.apply(this)}}};TrfLegendBreaks.prototype={clear:function(){this.$container.empty()},removeEditRangesLinks:function(){this.showEditRangesLinks=false},showEditRangesLinks:function(){this.showEditRangesLinks=true}};TrfLegendIndicators=function($elm){this.$elm=$elm;this.$years=$elm.find("#legend__year-select");this.quarters=$elm.find("#legend__quarter-select");this.months=$elm.find("#legend__month-select");this.days=$elm.find("#legend__day-select");this.$yearsContainer=$elm.find("#legend__year__container");this.$quartersContainer=$elm.find("#legend__quarter__container");this.$monthsContainer=$elm.find("#legend__month__container");this.$daysContainer=$elm.find("#legend__day__container");this.indicators=$elm.find("#legend__variable-select");this.toggleButton=$elm.find(".legend__toggle-icon");var self=this;this.listeners=[];this.toggleButton.click(function(){if(self.$elm.hasClass("is-minimized")){$(this).removeClass("is-minimized");self.$elm.removeClass("is-minimized")}else{$(this).addClass("is-minimized");self.$elm.addClass("is-minimized").addClass("legend--docked")}});var $closeButton=this.$elm.find(".legend__title .legend__title__close");$closeButton.click(function(){if(PEnvironment.pageName=="tables"){clearTableData()}else{clearMapData()}var map=P.instances.map;if(map&&map.getInfoWindow()&&P.WKPrint.isPrintPage()===false){map.closeInfoWindow()}$(this).tooltip("destroy")});if(isWidgetPage()){$closeButton.tooltip({title:"Remove data",placement:"top",container:"body"})}if(isWidgetOrEmbedMap()){this.periodsContainer=$elm.find("#periods_container");this.variablesContainer=$elm.find("#variable_container");this.indicatorToggle=$elm.find("#indicator_toggle")}};TrfLegendIndicators.prototype={enable:function(){this.$elm.show()},disable:function(){this.$elm.hide()},clear:function(){var l=this.listeners.length;for(var i=0;i<l;i++){PEvent.removeListener(this.listeners[i])}this.listeners=[]
;this.$years.empty();this.quarters.empty();this.months.empty();this.days.empty();this.indicators.empty()},refresh:function(years,quarters,indicators,months,days){this.updateYears(years);this.updateQuarters(quarters);this.updateMonths(months);this.updateDays(days);this.updateIndicators(indicators)},hidePeriods:function(){this.periodsContainer.hide();if(this.variablesContainer.css("display")=="none"){this.indicatorToggle.hide()}},showPeriods:function(){this.periodsContainer.show();this.indicatorToggle.show()},hideVariables:function(){this.variablesContainer.hide();if(this.periodsContainer.css("display")=="none"){this.indicatorToggle.hide()}},showVariables:function(){this.variablesContainer.show();this.indicatorToggle.show()},updateYears:function(years){var that=this;this.$years.empty();this.$years.unbind("change");var $year,disableTeasers,params,teaserYears,selectedYear;var yearParams={},yearCallbacks={};for(var i=0;i<years.length;i++){params=getUrlParams();disableTeasers=params["disableTeaserYears"];teaserYears=[];if(years[i].state&PIndicatorToggle.YEAR.selectedYear){selectedYear=years[i].value;$year=$("<option value='"+years[i].value+"'>"+years[i].value+"</option>");$year.prop("selected",true)}else if(years[i].state&PIndicatorToggle.YEAR.availableYear){$year=$("<option value='"+years[i].value+"'>"+years[i].value+"</option>");yearParams[years[i].value]=years[i].funcParams;yearCallbacks[years[i].value]=years[i].func}else if(years[i].state&PIndicatorToggle.YEAR.mustSubscribe&&!disableTeasers){teaserYears.push(years[i].value);$year=$("<option value='"+years[i].value+"'>"+years[i].value+"</option>")}if(years[i].state[i]&PIndicatorToggle.YEAR.projection){$year.style.borderLeft="1px solid #ccc"}this.$years.prepend($year)}if(this.$years.children("option").size()>0){this.showMenu(this.$yearsContainer);this.$years.val(selectedYear);this.$years.trigger("chosen:updated");this.$years.change(function(){if(_.contains(teaserYears,that.$years.val())){subscribeAlert()}else{yearCallbacks[$(this).val()].apply(yearParams[$(this).val()],yearCallbacks[$(this).val()])}})}else{this.$yearsContainer.hide()}this.$yearsContainer.find(".print-value").html(selectedYear)},showMenu:function($e){if(isWidgetPage()){$e.css("display","table-cell")}else{$e.show()}},updateQuarters:function(quarters){var that=this;this.quarters.empty();this.quarters.unbind("change");var $quarter,selectedQuarter;var quarterParams={},quarterCallbacks={};for(var i=0;i<quarters.length;i++){if(quarters[i].state&PIndicatorToggle.QUARTER.selectedQuarter){selectedQuarter=quarters[i].value;$quarter=$("<option value='"+quarters[i].value+"'>"+quarters[i].value+"</option>")}else if(quarters[i].state&PIndicatorToggle.QUARTER.availableQuarter){$quarter=$("<option value='"+quarters[i].value+"'>"+quarters[i].value+"</option>");quarterParams[quarters[i].value]=quarters[i].funcParams;quarterCallbacks[quarters[i].value]=quarters[i].func}this.quarters.append($quarter)}if(this.quarters.children("option").size()>0){this.showMenu(this.$quartersContainer);this.quarters.val(selectedQuarter);this.quarters.trigger("chosen:updated");this.quarters.change(function(){quarterCallbacks[$(this).val()].apply(quarterParams[$(this).val()],quarterCallbacks[$(this).val()])})}else{this.$quartersContainer.hide()}this.$quartersContainer.find(".print-value").html(selectedQuarter)},updateMonths:function(months){var that=this;var monthsToString=["January","February","March","April","May","June","July","August","September","October","November","December"];this.months.empty();this.months.unbind("change");var $month,selectedMonth;var monthParams={},monthCallbacks={};for(var i=0;i<months.length;i++){if(months[i].state&PIndicatorToggle.MONTH.selectedMonth){selectedMonth=monthsToString[i];$month=$("<option value='"+monthsToString[i]+"'>"+monthsToString[i]+"</option>")}else if(months[i].state&PIndicatorToggle.MONTH.availableMonth){$month=$("<option value='"+monthsToString[i]+"'>"+monthsToString[i]+"</option>");monthParams[monthsToString[i]]=months[i].funcParams;monthCallbacks[monthsToString[i]]=months[i].func}this.months.append($month)}if(this.months.children("option").size()>0){this.showMenu(this.$monthsContainer);this.months.val(selectedMonth);this.months.trigger("chosen:updated");this.months.change(function(){monthCallbacks[$(this).val()].apply(monthParams[$(this).val()],monthCallbacks[$(this).val()])})}else{this.$monthsContainer.hide()}this.$monthsContainer.find(".print-value").html(selectedMonth)},updateDays:function(days){this.days.empty();this.days.unbind("change");var $day,selectedDay;var dayParams={},dayCallbacks={};for(var i=0;i<days.length;i++){var label=i+1;if(days[i].state&PIndicatorToggle.DAY.selectedDay){selectedDay=label;$day=$("<option value='"+label+"'>"+label+"</option>")}else if(days[i].state&PIndicatorToggle.DAY.availableDay){$day=$("<option value='"+label+"'>"+label+"</option>");dayParams[label]=days[i].funcParams;dayCallbacks[label]=days[i].func}this.days.append($day)}if(this.days.children("option").size()>0){this.showMenu(this.$daysContainer);this.days.val(selectedDay);this.days.trigger("chosen:updated");this.days.change(function(){dayCallbacks[$(this).val()].apply(dayParams[$(this).val()],dayCallbacks[$(this).val()])})}else{this.$daysContainer.hide()}this.$daysContainer.find(".print-value").html(selectedDay)},updateIndicators:function(indicators){var that=this;this.indicators.empty();this.indicators.unbind("change");var $indicator,selectedIndicator;var indicatorParams={},indicatorCallbacks={};if(indicators&&indicators.length>0){for(var i=0;i<indicators.length;i++){var ind=indicators[i];var v=ind.value+"_"+i;if(ind.state&PIndicatorToggle.INDICATOR.selectedIndicator){$indicator=$("<option value='"+v+"'>"+ind.title+"</option>");selectedIndicator=v}else{$indicator=$("<option value='"+v+"'>"+ind.title+"</option>");indicatorParams[v]=ind.funcParams;indicatorCallbacks[v]=ind.func}this.indicators.append($indicator)}}this.indicators.val(selectedIndicator);this.indicators.trigger("chosen:updated");this.indicators.change(function(){indicatorCallbacks[$(this).val()].apply(indicatorParams[$(this).val()],indicatorCallbacks[$(this).val()])})}};TrfLegendShadeBy=function($select,$source,_$shadingRangesSelect,showShadeByAsString,$container){this.elm=$select;this.$shadingRangesSelect=_$shadingRangesSelect;this.shade_by=$select;this.$source=$source;this.$container=$container;this.showShadeByAsString=showShadeByAsString||false;this.shade_by[0].shadeWidget=this;this.shade_by.bind("change",function(){this.shadeWidget.changeShade.call(this.shadeWidget);if(PEnvironment.pageName=="widget"&&map.widgetRankingsOn){refreshWidgetRankings()}var mo=map.mapOptions;if(mo&&mo.isCurrentOn()){mo.showLayerForCurrentView()}if(PEnvironment.pageName=="analytics"){mapRefreshed()}});this.current_shade=this.shade_by;this.eventTypes=new Object;this.eventTypes.change="change";this.eventTypes.update="update";this.eventManager=new PEventManager};TrfLegendShadeBy.prototype={addListener:function(eventId,f,c){this.eventManager.addListener(eventId,f,c)},clear:function(){this.shade_by.empty();this.$source.html("None Available");if(this.$container){this.$container.addClass("is-hidden")}},changeShade:function(){var id=this.shade_by.find(":selected").attr("id");var useLockOption=false;if(PEnvironment.pageName=="widget")useLockOption=true;this.eventManager.triggerListeners(this.eventTypes.change,id,useLockOption)},update:function(shadeInfo){this.$source.html(shadeInfo.indicator.getSourceList(true));var selectedItem=null;if(shadeInfo.shadeString){this.current_shade=this.current_shade.replaceWith(shadeInfo.shadeString)}else if(this.showShadeByAsString){this.shade_by.html(map.getLegend().getCurrentPlaceType().getName())}else{var shadeItems=shadeInfo.shadeItems;this.shade_by.empty();for(var i=0;i<shadeItems.length;i++){var shadeItem=shadeItems[i];var option=document.createElement("option");option.id=shadeItem.typeId;option.selected=shadeItem.selected;if(shadeItem.selected){selectedItem=shadeItem}if(shadeItem.disabled&&PEnvironment.pageName!="analytics"){option.disabled=true}option.innerHTML=shadeItem.name;option.defaultSelected=shadeItem.defaultSelected;this.shade_by.append(option)}this.shade_by.trigger("chosen:updated");var p="right";if(isWidgetOrEmbedMap()){p="left"}this.shade_by.next().tooltip({selector:".disabled-result",title:"Zoom in to select",placement:p,container:"body"});if(this.current_shade!=this.shade_by){this.current_shade=this.current_shade.replaceWith(this.shade_by);this.shade_by.hide();this.shade_by.fadeIn("slow")}}var $p=this.shade_by.parent().find(".print-value");$p.html("");if(selectedItem){$p.each(function(){$(this).html(selectedItem.name)})}if(this.$container){if(shadeInfo.indicator){this.$container.removeClass("is-hidden")}else{this.$container.addClass("is-hidden")}}this.eventManager.triggerListeners(this.eventTypes.update)},enable:function(){this.elm.find("a").unbind("click")},disable:function(){this.elm.find("a").click(function(){return false})}};var TrfLogin=function($container,session){var $window=$(window);var template=_.template($("#js-account-section__template").html());var $feedback=$("#session-feedback-a");var $login=$("#session-login");var $logout=$("#session-logout-a");var $myAccount=$("#session-myaccount-a");var $signup=$("#session-signup");var $subscribe=$("#session-subscribe");var $upgrade=$("#session-upgrade");var $siteLicenseLogo=$("#siteLicenseLogo");$window.on(P.events.LOGGED_IN,updateData);$window.on(P.events.LOGGED_OUT,updateData);updateData();function updateData(){var userType=session.get(P.constants.userType);var isTrial=session.get(P.constants.isTrial);var isSiteLicense=PEnvironment.isSiteLicense;var isClone=PEnvironment.isClone;var isAllowLogin=productProperty.getValue("allow_login");var isRequireLogin=productProperty.getValue("require_login");var isSingleSignOn=productProperty.getValue("single_sign_on");var isAutoLoginUser=session.get(P.constants.isAutoLoginUser);var dataDirectoryPage;var greeting;if(!PEnvironment.isPolicyMap&&productProperty.exists("data_directory_page")){dataDirectoryPage=productProperty.getValue("data_directory_page")}else{dataDirectoryPage="our-data-directory.html"}if(PEnvironment.isPolicyMap||!isAutoLoginUser){var name=session.get(P.constants.firstName);if(name==null||name==""){greeting="Manage account"}else{greeting=session.get(P.constants.firstName)+"'s account"}}else{greeting=productProperty.getValue("name")}$feedback.off("click");$login.off("click");$logout.off("click");$myAccount.off("click");$signup.off("click");$subscribe.off("click");$upgrade.off("click");$container.html(template({userType:userType,greeting:greeting,dataDirectoryPage:dataDirectoryPage,isTrial:isTrial,isWrapper:isWrapper,isAllowLogin:isAllowLogin,isSiteLicense:isSiteLicense,isClone:isClone,isAutoLoginUser:isAutoLoginUser,displayPRLink:promotePlatformRebuild(),displayCovidLink:displayCovidLink()}));dnf.updateNames();$feedback=$($feedback.selector);$login=$($login.selector);$logout=$($logout.selector);$myAccount=$($myAccount.selector);$signup=$($signup.selector);$subscribe=$($subscribe.selector);$upgrade=$($upgrade.selector);if(isAllowLogin||isRequireLogin){if(!$login.hasClass("is-logged-in")){$login.click(function(){var redirect=null;if(isWrapper==true){redirect="/maps"}showLoginModal(null,redirect)})}}if(isAllowLogin){$logout.click(function(){nrLogoutSubmit(function(){if(isRequireLogin){setWindowLocation("/login?m=2");return}else{session.load(true,function(){if(isWrapper==false){setWindowLocation("/");return}})}})})}if(isSingleSignOn){$logout.click(function(){nrLogoutSubmit(function(){setWindowLocation("/sso/?loggedOut=true");return})})}$feedback.on("click",function(){if(productProperty.exists("feedback_email")){window.location="mailto:"+productProperty.getValue("feedback_email")}else{showFeedbackModal()}});$myAccount.on("click",function(){showMyAccountModal()});$signup.on("click",function(){if(PEnvironment.isPolicyMap){showSignupModal()}else{showSLSignupModal()}});$subscribe.on("click",function(){showTrialSubscribeModal()});$upgrade.on("click",function(){showUpgradeModal()});$("#session-navigation-data-directory").tooltip();$("#session-navigation-feedback").tooltip();$("#session-navigation-support").tooltip();if($siteLicenseLogo.length>0){var siteLicenseURL=productProperty.getValue("site_license_url");if(siteLicenseURL){$siteLicenseLogo.on("click",function(){setWindowLocation(siteLicenseURL)})}}$(window).trigger(P.events.ACCOUNT_SECTION_INIT)}};var TrfLoginButtons=function($container,session){var $window=$(window);var template=_.template($("#js-account-buttons-section__template").html());$window.on(P.events.LOGGED_IN,updateState);$window.on(P.events.LOGGED_OUT,updateState);updateState();function updateState(){var userType=session.get(P.constants.userType);var isTrial=session.get(P.constants.isTrial)==="true";var isSiteLicense=PEnvironment.productId!=1;$container.html(template({userType:userType,isTrial:isTrial,isWrapper:isWrapper,isSiteLicense:isSiteLicense}))}};TrfMapBoundaries=function($elem){function adjustLeftPosition(){if(self.$container.parent().width()>1228){self.$container.css("left","auto");self.$container.css("right",rightPosition)}else if(self.$container.position().left<=0){self.$container.css("right","auto");self.$container.css("left","0")}}this.allLayers={};this.enabled=true;this.$container=$elem;this.$toggleButton=$(".map-options__map-boundaries");this.$closeButton=this.$container.find(".map-boundaries-icon--close");this.drilldowntemplate=_.template($("#js-map-boundaries-drilldown-menu-column__content__template").html());this.$nationalBoundariesColumn=this.$container.find(".map-boundaries-menu-column--national-boundaries");this.$provincialBoundariesColumn=this.$container.find(".map-boundaries-menu-column--provincial-boundaries");this.$mapFeaturesColumn=this.$container.find(".map-boundaries-menu-column--map-features");this.$cloneBoundaries=this.$container.find(".map-boundaries__general__content");var self=this;var rightPosition=self.$container.css("right");adjustLeftPosition();$(window).resize(adjustLeftPosition);$(".map-boundaries-menu input").change(function(){if($(this).is(":checked")){$(this).parent().addClass("is-selected")}else{$(this).parent().removeClass("is-selected")}});this.$toggleButton.click(function(e){var $self=$(this);e.preventDefault();if($self.hasClass("is-active")){hideMenu()}else{showMenu()}});if(isCBClone()){$(document).mouseup(function(e){var $c=$(".map-options__container");if(!$c.is(e.target)&&$c.has(e.target).length===0){hideMenu()}})}function hideMenu(){self.$toggleButton.removeClass("is-active");self.$container.slideUp({complete:function(){self.$toggleButton.parent().siblings().removeClass("is-faded")}})}function showMenu(){if(self.enabled!==true){return}self.$toggleButton.addClass("is-active");self.populate();self.$container.slideDown();self.$container.trigger("show");self.$container.find("input").first().focus()}this.on=function(event,callback){self.$container.on(event,callback)};this.hide=function(){hideMenu()};this.$closeButton.click(function(e){e.preventDefault();hideMenu()});this.setCurrentOff();this.currentViewLayer=null;this.currentViewLayerSticky=false;PEvent.addListener(map,"zoomend",function(){if(self.currentViewLayer){self.showLayerForCurrentView()}self.populate();self.setShowCurrentElement()});$(window).on(P.events.LOGGED_IN+" "+P.events.LOGGED_OUT,function(){self.refreshOptions()});var l=pMapLayer;this.zooms=[];var z=this.zooms;z[0]=l.STATE;z[3]=l.COUNTY;z[6]=l.ZIP;z[9]=l.TRACT;z[12]=l.BLOCK;var $legend=$(".legend--boundaries");this.currentMapOptions=$legend;$legend.find(".legend__toggle-icon").click(function toggleLegendSize(){if($legend.hasClass("is-minimized")){$(this).removeClass("is-minimized");$legend.removeClass("is-minimized")}else{$(this).addClass("is-minimized");$legend.addClass("is-minimized")}});this.currentBoundaries={};if(productProperty.getValue("disable_parks_layer")){pMapLayer.POLY.off();pMapLayer.POLY_LABEL.off()}P.instances.map.mapOptions=this;$(window).trigger(P.events.MAP_BOUNDARIES_INITIALIZED)};TrfMapBoundaries.prototype.refreshOptions=function(){var self=this;this.disable();ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=mo&act=g",success:function(data){if(data!=null&&data.mo!=null&&data.responseCode===200){self.setToDefault();pMapLayer=new MapOptions(data.mo);self.addTransitPoints(pMapLayer);PMapType.POLICYMAP=new PMapType(pMapLayer.defaultMapLayers,new PProjection(54004),"Map");PMapType.DEFAULT=PMapType.POLICYMAP;P.instances.map.setMapType(PMapType.DEFAULT);getOverlaySetsFromSession()}self.enable()},error:function(){self.enable()}})};TrfMapBoundaries.prototype.populate=function(){var allLayers=this.allLayers;if(isCBClone()&&!productProperty.get("cb_include_map_boundaries")){return}if(pMapLayer.layerCategories!=null&&pMapLayer.layerCategories.length>0){var addMessage=false;var cats=pMapLayer.layerCategories;if(cats.length==1){cats.push({layers:[],title:""});cats.push({layers:[],title:""})}for(var i=0;i<cats.length;i++){if(i==cats.length-1){addMessage=true}this.renderColumnBoundaries(cats[i],i,addMessage)}if(cats[1]&&cats[1].layers.length>0){this.$provincialBoundariesColumn.show();this.$nationalBoundariesColumn.removeClass("wide");this.$mapFeaturesColumn.removeClass("wide")}else{this.$provincialBoundariesColumn.hide();this.$nationalBoundariesColumn.addClass("wide");this.$mapFeaturesColumn.addClass("wide")}}else if(isWidgetPage()&&pMapLayer.nonCategorizedLayers!=null&&pMapLayer.nonCategorizedLayers.length>0){var mapToolLayers=pMapLayer.mapToolLayers;if(mapToolLayers&&mapToolLayers.length>0&&!this.mapLayerTool){var layers=this.buildLayers(mapToolLayers);var arr=[];for(var i in layers){arr.push(layers[i])}arr=arr.sort(function(a,b){return a.order-b.order});_.extend(allLayers,layers);this.createMapLayerTool(arr)}var generalBoundariesLayers=this.buildLayers(pMapLayer.nonCategorizedLayers);this.renderDrilldown(generalBoundariesLayers);_.extend(allLayers,generalBoundariesLayers)}else if(isCBClone()&&pMapLayer.nonCategorizedLayers!=null&&pMapLayer.nonCategorizedLayers.length>0){var generalBoundariesLayers=this.buildLayers(pMapLayer.nonCategorizedLayers);this.renderCloneBoundaries(generalBoundariesLayers);_.extend(allLayers,generalBoundariesLayers)}var self=this;$(".map-boundaries-menu__item").not(".map-boundaries-menu__item--disabled").find("a").unbind("click");$(".map-boundaries-menu__item").not(".map-boundaries-menu__item--disabled").find(".clickable-part").unbind("click").click(function(e){var $i=$(this).find("input:checkbox");if($i.length){$i.attr("checked",function(id,val){return!val}).trigger("change")}e.stopPropagation();if(isWidgetPage()){if(!$i.length){self.selectLayer($(this));P.instances.taxonomyMenu.toggleMenu()}}});this.$container.find("input:checkbox, label").click(function(e){e.stopPropagation()});this.$container.find("input:checkbox").keydown(function(e){if(e.which==13){$(this).attr("checked",function(id,val){return!val}).trigger("change")}});this.$container.find("input:checkbox").change(function(){self.selectLayer($(this))});var $elems=this.$container.find(".source__icon");$elems.each(function(){var $e=$(this);$e.popover({container:$e,placement:"auto",trigger:"hover",html:true,animation:true})})};TrfMapBoundaries.prototype.selectLayer=function($e){var self=this;var layer=self.allLayers[$e.attr("id")];if(layer.isSubscriberLayer()&&!isSubscriber()){$e.attr("checked",false);subscribeAlert()}else{if(self.currentViewLayer&&self.currentViewLayer===layer){self.cancelShowLayerForCurrentView()}else{self.toggleLayer(layer)}}};TrfMapBoundaries.prototype.renderColumnBoundaries=function(c,index,addMessage){var layers=this.buildLayers(c.layers);_.extend(this.allLayers,layers);var title=c.title;var columnLayers=_.toArray(layers);var firstColumnSize=null;if(index==0){var displayTotal=_.chain(columnLayers).filter(function(layer){return layer.hide!=true}).size().value();firstColumnSize=Math.ceil(displayTotal/2)}this.columnBoundariesTemplate=_.template($("#js-map-boundaries-menu-column__content__template").html());this.$columnBoundaries=$(this.$container.find(".map-boundaries-menu-column").get(index));var msg=null;if(addMessage){msg="Looking for a boundary you don't see?  Check out <a href='http://www.policymap.com/blog/?p=16655' target='new'>what's available</a> or <a href='http://www.policymap.com/contact.html' target='new'>Email us</a>."}this.$columnBoundaries.html(this.columnBoundariesTemplate({title:title,layers:columnLayers,firstColumnSize:firstColumnSize,footerMessage:msg}))};TrfMapBoundaries.prototype.renderCloneBoundaries=function(layers){this.cloneTemplate=_.template($("#js-map-boundaries-menu-column__content__template").html());this.$cloneBoundaries.html(this.cloneTemplate({layers:_.toArray(layers)}))};TrfMapBoundaries.prototype.updateDrilldown=function(layers){var $li=this.$drilldownMenu.find(".map-boundaries-menu__item");$li.each(function(i){var $e=$(this);var $a=$e.find("a");$a.removeClass("disabled");$a.removeAttr("title");var layer=layers[$a.attr("id")];$e.removeClass();$e.addClass("map-boundaries-menu__item");var liClasses=layer.disabled?" map-boundaries-menu__item--disabled":"";liClasses+=layer.hide?" map-boundaries-menu__item--hidden":"";$e.addClass(liClasses);var aClasses=layer.display?" checked selected":"";aClasses+=layer.disabled?" disabled":"";$a.addClass(aClasses);if(!$a.data("bs.tooltip")){$a.tooltip({title:"Zoom in to select",placement:"right",container:"body"})}if(layer.disabled){$a.tooltip("enable")}else{$a.tooltip("disable")}})};TrfMapBoundaries.prototype.renderDrilldown=function(layers){if($(".menu-settings").find(".map-boundaries__menu-tab").length>0){this.updateDrilldown(layers);return}else{var $li=$("<li />",{class:"map-boundaries__menu-tab"});$(".menu-settings").find(".drilldown-menu").append($li)}this.$drilldownMenu=$li;this.$drilldownMenu.html(this.drilldowntemplate({layers:_.toArray(layers)}));this.updateDrilldown(layers)};TrfMapBoundaries.prototype.buildLayers=function(layers){var layerMap={};for(var i=0;i<layers.length;i++){var layer=pMapLayer[layers[i].constant];if(layer.allowed==false&&layers[i].non_subscriber_teaser==false){continue}else if(layers[i].non_subscriber_teaser){var isTeaser=layers[i].non_subscriber_teaser;layer.setTeaser(isTeaser);layer.setForSubscriber(isTeaser)}layer.order=i;layer.hide=layers[i].hide;layer.title=layers[i].title.replace(/<br>/," ");layer.title=layers[i].title.replace(/<br \/>/," ");if(layer.name){if(!this.isLayerAvailableAtMapZoom(layer)){layer.disabled=true}else{layer.disabled=false}}layerMap[layers[i].name]=layer}return layerMap};TrfMapBoundaries.prototype.toggleLayer=function(layer,forCurrentMapView){var label=null;if(pMapLayer.mapLayerLabels[layer.name])label=pMapLayer.mapLayerLabels[layer.name];if(layer.isOn()){if(P.instances.googleMap!==undefined){delete P.instances.googleMap.currentBoundaries[layer.name]}layer.off();delete pMapLayer.mapOptionsOn[layer.name];if(label){label.off()}if(layer.pointDataset){map.removeOverlaySet(layer.pointDataset);layer.pointDataset.off()}var $e=$("#"+layer.name);if($e.length>0){$e.removeClass("selected")}}else{if(P.instances.googleMap!==undefined){P.instances.googleMap.currentBoundaries[layer.name]=layer}layer.on();pMapLayer.mapOptionsOn[layer.name]=true;if(label)label.on();if(layer.pointDataset&&map.getScale()<=layer.maxScale){map.addOverlaySet(layer.pointDataset);layer.pointDataset.on()}var $e=$("#"+layer.name);if($e.length>0){$e.addClass("selected")}}this.updateCurrentList(layer,forCurrentMapView);if(P.instances.googleMap!==undefined){P.instances.googleMap.refreshBoundaries()}if(PEnvironment.pageName!=="report_generate"){session.put("moo",pMapLayer.getSessionMapOptions().join(","))}};TrfMapBoundaries.prototype.updateCurrentList=function(layer,forCurrentMapView){var ignore=[pMapLayer.POLY,pMapLayer.TPOINTLINE];for(var i=0;i<ignore.length;i++){if(ignore[i]===layer){return}}if(layer.isHoleLayer()){return}var $legend=this.getLegendContainer();var $cont=$legend.find(".legend__content");var id=layer.name+"-map";var title=layer.title;var that=this;if(layer.isOn()){var div=$("<div />",{class:"map__active-boundaries__layer"});$cont.append(div);$legend.addClass("is-visible");$legend.show();div.show();if(forCurrentMapView&&this.isCurrentOn()){div.addClass("for-current-map-view");this.currentViewLayer=layer;title+=" (Current)"}div.attr("id",id);div.append('<span class="legend__close-icon legend__close-icon__sub"></span>');var color=layer.fill_color;var $icon=$("<span />",{class:"layer-icon"});if(layer.filename){$icon=$("<img />",{class:"layer-icon"})}div.append($icon);if(layer.filename){var n=layer.filename;$icon.attr("src","/images/"+n);var callback=function(){if(color){var $path=$cont.find("path");$path.css("fill","#"+color)}};if(n.indexOf(".svg")!=-1){replaceSVGs($icon,callback)}}else if(color){$icon.css("background","#"+color);$icon.addClass("box-icon");div.addClass("with-color")}var bcolor=layer.border_color;if(bcolor){$icon.css("border","1px solid #"+bcolor);$icon.addClass("box-icon");div.addClass("with-color")}var $title_container=$("<div />",{class:"title-container"});div.append($title_container);$title=$("<span />",{class:"layer-title",html:'<span class="text">'+title+"</span>"});$title_container.append($title);var src=layer.source_name;if(src){var link=layer.source_link;if(link){var url=null;if(link.indexOf("http://")==0||link.indexOf("https://")==0){url=link}else if(link.indexOf("/")==0){url=link}else if(link.indexOf("data-directory")==0||link.indexOf("data_directory")==0||link.indexOf("datadirectory")==0){url=link}else{if(productProperty.exists("data_directory_page")){if(productProperty.exists("force_data_directory")){url="/"+productProperty.getValue("data_directory_page")+"#"+link}else{url="/our-data-directory.html#"+link}}else{url="/our-data-directory.html#"+link}}src="<a href='"+url+"' target='new'>"+layer.source_name+"</a>"}if(src){$title_container.append('<span class="legend__title__source"><span class="source">Source: '+src+"</span></span>")}}var clickEvent=function(){if(that.currentViewLayer&&layer===that.currentViewLayer){that.cancelShowLayerForCurrentView()}else{that.toggleLayer(layer);that.populate()}};$close=div.find(".legend__close-icon");$close.click(function(){clickEvent()});if(isWidgetOrEmbedMap()){$close.tooltip({title:"Remove boundary",placement:"left",container:"body"});$close.click(function(){$(this).tooltip("hide")})}div.hide();$cont.append(div);this.currentMapOptions.addClass("is-visible");this.currentMapOptions.show();var speed="slow";if(this.currentMapOptions.find(".map__active-boundaries__layer").length===1){speed=null}div.show();this.currentBoundaries[layer.name]=div;$(window).trigger(P.events.CURRENT_MAP_BOUNDARIES_UPDATED)}else{$("#"+id).hide(1,function(){$(this).remove();if(that.currentMapOptions.find(".map__active-boundaries__layer").length===0){that.currentMapOptions.fadeOut();that.currentMapOptions.removeClass("is-visible");that.currentMapOptions.hide();that.currentMapOptions.removeAttr("style");that.currentMapOptions.addClass("legend--docked");$(window).trigger(P.events.CURRENT_MAP_BOUNDARIES_UPDATED)}});delete this.currentBoundaries[layer.name]}};TrfMapBoundaries.prototype.disable=function(){this.hide();this.enabled=false;this.$toggleButton.addClass("is-disabled")};TrfMapBoundaries.prototype.enable=function(){this.enabled=true;this.$toggleButton.removeClass("is-disabled")};TrfMapBoundaries.prototype.setLayer=function(name){var layer=pMapLayer.getMapLayersByName(name);var label=null;if(layer===null){return}if(pMapLayer.mapLayerLabels[layer.name]){label=pMapLayer.mapLayerLabels[layer.name]}if(this.isMapOptionOn(layer.name)===true&&(!layer.isSubscriberLayer()||isSubscriber())){pMapLayer.mapOptionsOn[layer.name]=true;layer.on();googleMap.currentBoundaries[layer.name]=layer;if(label){label.on()}if(layer.pointDataset){layer.pointDataset.on();map.addOverlaySet(layer.pointDataset)}}else{delete pMapLayer.mapOptionsOn[layer.name];layer.off();if(P.instances.googleMap){delete P.instances.googleMap.currentBoundaries[layer.name]}if(label){label.off()}}this.updateCurrentList(layer)};TrfMapBoundaries.prototype.setToDefault=function(){var mapOptionsDefault=_.pluck(pMapLayer.defaultMapOptionsOn,"name");var mapOptionsOn=pMapLayer.getMapOptionsOnMapNames();var toToggle=_.uniq(_.difference(mapOptionsOn,mapOptionsDefault).concat(_.difference(mapOptionsDefault,mapOptionsOn)));for(var i=0;i<toToggle.length;i++){this.toggleLayer(pMapLayer.getMapLayersByName(toToggle[i]))}if(toToggle.length>0){this.populate()}};TrfMapBoundaries.prototype.hide=function(){$(this.container).hide()};TrfMapBoundaries.prototype.isMapOptionOn=function(name){return pMapLayer.mapOptionsOn[name]!=null&&pMapLayer.mapOptionsOn[name]===true};TrfMapBoundaries.prototype.showLayerForCurrentView=function(){this.setCurrentOff();if(map.getIndicator()){var curLayer=this.determineCurrentViewLayer();if(curLayer!=null){if(!this.isLayerAvailableAtMapZoom(curLayer)){return}this.setCurrentOn();$("#show-current").text("Hide Current");if(this.currentViewLayer){if(this.currentViewLayer!=curLayer){if(this.currentViewLayerSticky){this.toggleLayer(this.currentViewLayer);this.currentViewLayerSticky=false}this.toggleLayer(this.currentViewLayer);if(curLayer.isOn()){this.currentViewLayerSticky=true;this.toggleLayer(curLayer)}this.toggleLayer(curLayer,true)}}else{if(curLayer.isOn()){this.currentViewLayerSticky=true;this.toggleLayer(curLayer)}this.toggleLayer(curLayer,true)}}}else{var text="Only available when an indicator is on the map.";alerter.popup(text,"OK")}};TrfMapBoundaries.prototype.cancelShowLayerForCurrentView=function(){var layer=this.currentViewLayer;if(layer&&layer.isOn()){this.toggleLayer(layer)}this.setCurrentOff();this.currentViewLayer=null;this.currentViewLayerSticky=false;$("#show-current").text("Show Current")};TrfMapBoundaries.prototype.determineCurrentViewLayer=function(){var layer=null;if(map.getIndicator()){var type=map.getLegend().getBoundaryType();if(type==null){return layer}var defid=boundaryMatrix.getDefinitionIdForTypeId(type.id);var layers=pMapLayer.getMapLayersByDefinitionId(defid);if(layers==null){layers=[]}for(var i=0;i<layers.length;i++){var curLayer=layers[i];if(pMapLayer.optionLayersByName[curLayer.name]){layer=curLayer;break}}}return layer};TrfMapBoundaries.prototype.setCurrentOn=function(){this.showCurrentIsOn=true};TrfMapBoundaries.prototype.setCurrentOff=function(){this.showCurrentIsOn=false};TrfMapBoundaries.prototype.isCurrentOn=function(){return this.showCurrentIsOn};TrfMapBoundaries.prototype.setShowCurrentElement=function(enabled){if(enabled===null||typeof enabled!=="boolean"){var layer=this.determineCurrentViewLayer();if(layer!==null){enabled=this.isLayerAvailableAtMapZoom(layer)}else{enabled=false}}var currentLink=$("#show-current");if(enabled){currentLink.removeClass("is-disabled");currentLink.attr("title","")}else{currentLink.addClass("is-disabled");if(map.getIndicator()){currentLink.attr("title","Current boundary cannot display at this level. Please zoom in.")}else{currentLink.attr("title","Available when an indicator is on the map.")}}};TrfMapBoundaries.prototype.isLayerAvailableAtMapZoom=function(layer){var scale=map.getScale();return!(layer.minScale>scale||layer.maxScale<scale)};TrfMapBoundaries.prototype.loadMapOptionsFromSession=function(){var sessionOptionsString=session.get("moo");if(sessionOptionsString==null){return}var sessionOptions=sessionOptionsString.split(",");var toToggle=sessionOptions;var runPopulate=false;for(var i=0;i<toToggle.length;i++){var curLayer=pMapLayer.getMapLayersByName(toToggle[i].split(":")[0]);if(curLayer!=null){if(curLayer.isSubscriberLayer()&&!isSubscriber()){continue}this.toggleLayer(curLayer);runPopulate=true}}if(runPopulate){this.populate()}};TrfMapBoundaries.prototype.getLegendContainer=function(){return this.currentMapOptions};TrfMapBoundaries.prototype.getCurrentBoundaries=function(){return this.currentBoundaries}
;TrfMapBoundaries.prototype.buildLegendFromCurrent=function(layers){var layers=pMapLayer.defaultMapOptionsOn;for(var n in layers){var l=layers[n];var $e=$("#"+l.name);if($e.length>0){$e.addClass("selected")}this.updateCurrentList(l)}};TrfMapBoundaries.prototype.createMapLayerTool=function(layers){var $button=$("<div />",{class:"map-layer-tool-button map-control",zIndex:Strata.MAP_CONTROLS});this.mapLayerTool=$button;var $icon=$("<div />",{class:"icon"});$button.append($icon);var $menu=$("<div />",{class:"map-layer-tool-menu"});var $h=$("<div />",{class:"header",text:"MAP OPTIONS"});var $c=$("<div />",{class:"close"});$h.append($c);$menu.append($h);for(var i=0;i<layers.length;i++){var layer=layers[i];pMapLayer.defaultMapOptionsOn[layer.name]=layer;var $row=$("<div />",{class:"map-boundaries-menu__item"});var $cont=$("<div />",{class:"clickable-part",id:layer.name});$cont.click(function(e){$(this).find("input").trigger("change");e.stopPropagation()});var $d=$("<div />",{class:"map-boundaries-menu__checkbox"});var $check=$("<input />",{type:"checkbox",id:layer.name,checked:layer.isOn()});var self=this;$check.change(function(){self.selectLayer($(this))});$check.click(function(e){e.stopPropagation()});$d.append($check);var $label=$("<label />",{for:layer.name,text:layer.title});$cont.append($d,$label);$row.append($cont);$menu.append($row)}$button.click(function(e){e.stopPropagation();$menu.toggle()});$button.append($menu);var $m=$(P.instances.map.getContainer());$m.append($button);$("body").click(function(){$menu.hide()})};TrfMapBoundaries.prototype.addTransitPoints=function(pMapLayer){if(pMapLayer.UMTRANSIT){pMapLayer.UMTRANSIT.pointDataset=new POverlaySet(P.constants.UMTRANSIT_DATASET_ID,PinIcons.circle_blue,15);pMapLayer.UMTRANSIT.pointDataset.withLayer=true;pMapLayer.UMTRANSIT.pointDataset.off()}};TrfSearch=function($form,searchTypes,options){var self=this;this.$form=$form;$form.find("select").chosen({disable_search:true,width:"auto",inherit_select_classes:true});$form.find("select").not(":eq(0)").next().hide();var types={};_.each(_.rest(searchTypes,1),function(type){types[type.id]=type});if(types[PPlaceType.SLD_UPPER.id]!==undefined&&types[PPlaceType.SLD_LOWER.id]!==undefined){this.searchTypes=_.filter(searchTypes,function(type){return type==="Default"||type.id!==PPlaceType.SLD_LOWER.id})}else{this.searchTypes=searchTypes}var formElements={$firstDropdown:$form.find(".search-form__first-dropdown:eq(0)"),$secondDropdown:$form.find(".search-form__second-dropdown:eq(0)"),$thirdDropdown:$form.find(".search-form__third-dropdown:eq(0)"),$textbox:$form.find(".search-form__query")};this.options=options||{};this.options.defaultState=this.options.defaultState||searchStates.getByAbbreviation("CA");this.eventTypes={submit:"submit",response:"response",dd_initialized:"dd_initialized"};this.eventManager=new _eventManager;_.each(this.eventTypes,function(eventId){self.eventManager.registerEventID(eventId)});var $typesDropdown=$form.find(".search-form__type:eq(0)");var $typesDropdownChosen=$form.find(".search-form__type:eq(1)");var $statesDropdown=formElements.$statesDropdown;var $textboxClear=$form.find(".textbox-search-clear");var $textboxDivider=$form.find(".textbox-search-divider");var $textboxSubmit=$form.find(".textbox-search-submit");bindTextboxEvents();$textboxClear.click(function(){self.$textbox.val("");$textboxClear.hide();$textboxDivider.hide()});$textboxSubmit.click(function(){$form.submit()});if(this.searchTypes.length==1&&this.searchTypes[0]=="Default"){$form.find(".chosen-container").hide()}else{populateTypesDropdown(this.searchTypes)}bindResponseEvent();this.searchFormBuilder=new SearchFormBuilder;this.subForm=this.searchFormBuilder.makeForm($typesDropdown.val(),self.$form,formElements,self.eventManager,self.options);bindFormSubmitEvent();$typesDropdown.change(function(){if(self.subForm!==undefined){self.subForm.destroy()}$textboxClear.hide();$textboxDivider.hide();self.subForm=self.searchFormBuilder.makeForm($(this).val(),self.$form,formElements,self.eventManager,self.options);self.subForm.show();bindTextboxEvents()});function bindTextboxEvents(){var $textbox=$form.find(".search-form__query");formElements.$textbox=$textbox;self.$textbox=$textbox;$textbox.on("focus",function(){$form.addClass("location-search-form__focus")});$textbox.on("blur",function(){$form.removeClass("location-search-form__focus")});$textbox.on("input",function(){if($textbox.val().length>0){$textboxClear.fadeIn(200);if($textboxSubmit.is(":visible")){$textboxDivider.fadeIn(200)}}else{$textboxClear.fadeOut(200);$textboxDivider.fadeOut(200)}})}function bindFormSubmitEvent(){self.$form.submit(function(event){event.preventDefault();if(self.subForm.isValid()){self.subForm.submit()}else{self.subForm.errorMessages.push("Unable to find location");P.instances.debug.log(P.Debug.ERROR,self.subForm.errorMessages)}})}function populateTypesDropdown(types){var customLabels={};if(productProperty.exists("search_boundary_type_custom_labels")){customLabels=productProperty.getValue("search_boundary_type_custom_labels")}_.each(types,function(type){var $option=$("<option></option>");if(type==="Default"){$option.text("Location");$option.val("location")}else{if(customLabels[type.id]){$option.text(customLabels[type.id])}else{$option.text(type.getSimpleName())}$option.val(type.id)}$typesDropdown.append($option)});$typesDropdown.trigger("chosen:updated")}function bindResponseEvent(){if(self.options.responseEvent){self.addListener("response",self.options.responseEvent)}else{self.addListener("response",function(places){if(places instanceof PAddress){var place=places;if(place.wasFound()){session.put("place",place.addr);session.put("lng",place.x);session.put("lat",place.y);addMarkerWindow(null,place)}else{var content='Location "<b>'+place.addr+"</b>\" not found. For help finding your address or city, <a class='pagelinks' href='/?page_id=22256' target='_blank'>click here</a>.";alerter.popup(content,"OK")}}else{var l=places.length;var full=places;places=[];var p;for(var i=0;i<l;i++){p=full[i];if(p.country==="United States"){places.push(p)}}if(places.length===0){alerter.popup('Location "<b>'+self.$textbox.val()+'</b>" not found.',"OK")}else{if(PEnvironment.pageName!="tables"){var html=createPlacesDiv(places,self.$textbox.val());addMarkerWindow(html,places[0])}session.put("p",places[0].id)}}})}}};TrfSearch.prototype.addListener=function(eventId,func){this.eventManager.registerForEvent(eventId,[],func)};TrfSearch.prototype.getSearchString=function(){return this.$textbox.val()};TrfSearch.prototype.reset=function(){var $searchType=this.$form.find(".search-form__type");$searchType[0].selectedIndex=0;$searchType.trigger("change");$searchType.trigger("chosen:updated");this.$form.find("input[type=text]").val("")};TrfSearch.prototype.updateWidthOfFluidElement=function(){if(this.subForm!=null){this.subForm.updateWidthOfFluidElement()}};TrfSearch.prototype.destroySubForm=function(){if(this.subForm!=null){this.subForm.destroy()}};UserPreference=function(data){this.$buttons={};this.PREFERENCE_INDICATOR_COLOR_RAMP="user_preference_indicator_color";this.PREFERENCE_DATASET_PIN="user_preference_dataset_pin";this.$buttons[this.PREFERENCE_INDICATOR_COLOR_RAMP]={};this.$buttons[this.PREFERENCE_DATASET_PIN]={};this.USER_PREFERENCE_SELECTOR=".user-preference";this.PREFERENCE_INDICATOR_COLOR_RAMP_ID="1";this.PREFERENCE_DATASET_PIN_ID="2";this.data=data;var self=this;$(window).on(P.events.LOGGED_IN+" "+P.events.LOGGED_OUT,function(){self.load();self.activate()})};UserPreference.prototype.activate=function(){if(isPublicUser()==null){this.load();this.show();this.addEvents();this.addTooltips()}};UserPreference.prototype.show=function(){$(this.USER_PREFERENCE_SELECTOR).addClass("show")};UserPreference.prototype.addTooltips=function(){$(".user-preference").tooltip()};UserPreference.prototype.addEvents=function(){var self=this;$(window).on(P.events.COLOR_RAMP_CHANGED,function(){self.updatePreferenceColorRampButton()});if(map!=null){map.addListener("setindicator",function(ind){if(session.get("rmp")==null){P.instances.map.getLegend().setColorRamp(PColorRamp.DEFAULT)}else{P.instances.map.getLegend().setColorRamp(colorRamps.getRampByName(session.get("rmp")))}self.applyColorRamp(self.data[self.PREFERENCE_INDICATOR_COLOR_RAMP],ind);self.updatePreferenceColorRampButton()});map.addListener("removeindicator",function(indicator){if(session.get("rmp")==null){P.instances.map.getLegend().setColorRamp(PColorRamp.DEFAULT)}});var $b=$(".legend").find(".user-preference");var type=this.PREFERENCE_INDICATOR_COLOR_RAMP;this.$buttons[type]=$b;$b.click(function(){var m=P.instances.map;var color=m.getLegend().getColorRamp().name;var target=m.getIndicator().id;var $e=$(this);var rampId=colorRamps.getRampIdByName(color);if($e.hasClass("active")){rampId=null}$e.tooltip("hide");self.setPreference(target,rampId,type)})}};UserPreference.prototype.updatePreferenceColorRampButton=function(){if(isPublicUser()){return}var map=P.instances.map;if(map!=null){var type=this.PREFERENCE_INDICATOR_COLOR_RAMP;var data=this.data[type];var ind=map.getIndicator();var legend=map.getLegend();if(ind&&data&&data[ind.id]){var prefRamp=colorRamps.getRampById(data[ind.id]);var curRamp=legend.getColorRamp();if(prefRamp==curRamp){this.activateButton(type)}else{this.deactivateButton(type)}}else if(ind){this.deactivateButton(type)}}};UserPreference.prototype.updatePreferenceDatasetPinButton=function(){if(isPublicUser()){return}if(map!=null){var type=this.PREFERENCE_DATASET_PIN;var data=this.data[type];var sets=map.getOverlaySets();for(var i=0;i<sets.length;i++){var s=sets[i];if(data&&data[s.id]){if(s.icon.pinid==data[s.id]){this.activateButton(type,s.id)}else{this.deactivateButton(type,s.id)}}}}};UserPreference.prototype.load=function(){var self=this;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=usrp&act=a",success:function(data){if(data!=null&&data.usrp!=null&&data.responseCode===200){self.data=data.usrp;for(var name in self.data){if(name==self.PREFERENCE_INDICATOR_COLOR_RAMP){var inds=self.data[name];self.applyColorRamp(self.data[name]);self.updatePreferenceColorRampButton()}else if(name==self.PREFERENCE_DATASET_PIN){self.applyDatasetPin(self.data[name]);self.updatePreferenceDatasetPinButton()}}}},error:function(){console.log("An error occurred")}})};UserPreference.prototype.applyColorRamp=function(d){var curInd=null;if(map!=null){curInd=map.getIndicator()}if(curInd!=null){for(var i in d){var value=d[i];if(i==curInd.id&&value){widget.changeColorRamp(colorRamps.getRampById(value).name,null,true)}}}};UserPreference.prototype.setPreference=function(target,value,type){var params="";var prefId=this.data[type].preference_id;if(value&&target){params="&act=s&upi="+prefId+"&upt="+target+"&upv="+value}else if(target){params="&act=d&upi="+prefId+"&upt="+target}var self=this;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=usrp"+params,success:function(data){if(data!=null&&data.usrp!=null&&data.responseCode===200){if(value){self.data[type][target]=data.usrp.newValue;if(type==self.PREFERENCE_INDICATOR_COLOR_RAMP){target=null}self.activateButton(type,target)}else{delete self.data[type][target];if(type==self.PREFERENCE_INDICATOR_COLOR_RAMP){target=null}self.deactivateButton(type,target)}}},error:function(){console.log("An error occurred")}})};UserPreference.prototype.applyDatasetPin=function(d){if(d.target&&d.value){var sets=map.getOverlaySets();for(var i=0;i<sets.length;i++){var s=sets[i];if(s.getId()==d.target){s.changeIcon(PinIconsById[d.value],true)}}}};UserPreference.prototype.exists=function(name){return this.data[name]!=null};UserPreference.prototype.get=function(name){if(this.data[name]==null){return null}else{return this.data[name]}};UserPreference.prototype.getValue=function(name,target){if(this.data[name]==null||this.data[name][target]==null){return false}else{return this.data[name][target]}};UserPreference.prototype.activateButton=function(type,id){if(id){var buttons=this.$buttons[type];var $b=null;if(buttons){$b=buttons[id]}}else{var $b=this.$buttons[type]}if($b==null){return}$b.addClass("active");$b.attr("title","Remove preference").tooltip("fixTitle").show()};UserPreference.prototype.deactivateButton=function(type,id){if(id){var buttons=this.$buttons[type];var $b=null;if(buttons){$b=buttons[id]}}else{var $b=this.$buttons[type]}if($b==null){return}var title="Set as preference";if(type=="user_preference_indicator_color"){title="Set preference for color"}$b.removeClass("active");$b.attr("title",title).tooltip("fixTitle").show()};function convertWidgetProductPropertiesToURLParams(){var mapping={address:"addr",zoom:"cz",ranking_style:"rstyle",color_ramp:"rmp",number_of_breaks:"nb",identify_type:"itype",map_height:"height",search_state:"searchstate",boundary_id:"p",custom_boundary_id:"cp",overlaysets:"o",ofilters:"ofilters",ocolorcodes:"ofilters",dataloader_overlaysets:"dlo",indicator_id:"i",indicator_boundary_type_id:"btd",default_search_dataset:"dsearch",time_frame:"tf"};var booleanMapping={hide_place_polygon:"nobounds",search:"search",hide_search_tabs:"hidestypes",ranking:"ranking",hide_all_menus:"nomenus",hide_ind_menu:"hideimenu",hide_sites_menu:"hidepmenu",show_text_only:"textonly",hide_legend:"hideleg",printing_enabled:"print",disable_parks_layer:"disableParksLayer",disable_teaser_years:"disableTeaserYears",lock_indicator_boundary_type:"lockBoundaryType",alternate_layout:"altLayout",charts_enabled:"charts",enable_custom_region_builder:"crbuilder",hide_breadcrumbs:"hidebreadcrumbs"};var pointMapping={center_point:["cx","cy"],identify_point:["iwx","iwy"]};var widgetOptions={};for(option in mapping){if(productProperty.exists(option)){var curProductProperty=productProperty.get(option);if(curProductProperty.array==true){var valuesArray=curProductProperty.value;var valuesString="";if(option=="ocolorcodes"){var valuesCount=valuesArray.length;for(var i=0;i<valuesCount;i++){valuesString+="c"+valuesArray[i]+","}if(valuesCount>0){valuesString=valuesString.substr(0,valuesString.length-1)}}else{valuesString=valuesArray.join(",")}if(widgetOptions[mapping[option]]!=null){widgetOptions[mapping[option]]+=valuesString}else{widgetOptions[mapping[option]]=valuesString}}else{widgetOptions[mapping[option]]=curProductProperty.value}}}for(option in booleanMapping){widgetOptions[booleanMapping[option]]=productProperty.getValue(option)}for(option in pointMapping){if(productProperty.exists(option)){var pointString=productProperty.getValue(option);var points=pointString.split(",");widgetOptions[pointMapping[option][0]]=points[0];widgetOptions[pointMapping[option][1]]=points[1]}}PEnvironment.widgetParams=widgetOptions}function customizeMapLayersForWidget(urlParams){if(urlParams["sid"]==339){pMapLayer.POINTLINE.off();pMapLayer.POINTLINE_LABEL.off();pMapLayer.TMINORROADS.off();pMapLayer.TPOINTLINE.off();pMapLayer.TLABEL.off();pMapLayer.LABEL.off()}else if(urlParams["sid"]==375){pMapLayer.POINTLINE.off();pMapLayer.POINTLINE_LABEL.off();pMapLayer.TPOINTLINE.off();pMapLayer.TLABEL.off()}else if(urlParams["sid"]==1392){pMapLayer.POINTLINE.off();pMapLayer.POINTLINE_LABEL.off();pMapLayer.TPOINTLINE.off();pMapLayer.TLABEL.off()}else if(urlParams["sid"]==381){pMapLayer.POINTLINE.off();pMapLayer.POINTLINE_LABEL.off();pMapLayer.TPOINTLINE.off();pMapLayer.TLABEL.off()}else if(urlParams["sid"]==1419){pMapLayer.POINTLINE.off();pMapLayer.POINTLINE_LABEL.off();pMapLayer.TPOINTLINE.off();pMapLayer.TLABEL.off()}}function getIFFOverlaySetWithFilters(overlaySet,filters){overlaySet.iffschoolfiltersbyicons=[];var ftrs=[];var displayfilters=overlaySet.displayfiltergroups[filters[0].name];var l=displayfilters.length;for(var j=0;j<l;j++){if(displayfilters[j].values[0]!="COLORCODE"){ftrs.push(displayfilters[j]);if(displayfilters[j].columnName=="type"){overlaySet.iffschoolfiltersbyicons.push(displayfilters[j])}}}overlaySet.setFiltersByIcons(ftrs,overlaySet.colorcodes);overlaySet.filtergroups[filters[0].name]=[];overlaySet.filtergroups[filters[0].name].push(filters[0]);otherFilters=[];for(var i=1;i<filters.length;i++){var f=filters[i];if(f.values[0]=="COLORCODE"){var ftrs=[];var displayfilters=overlaySet.displayfiltergroups[f.name];var l=displayfilters.length;for(var j=0;j<l;j++){if(displayfilters[j].values[0]!="COLORCODE"){ftrs.push(displayfilters[j])}}overlaySet.setFiltersByIcons(ftrs,overlaySet.colorcodes);overlaySet.filtergroups[f.name]=[];overlaySet.filtergroups[f.name].push(f)}else{otherFilters.push(f)}}if(otherFilters.length>0){overlaySet.setFilters(otherFilters)}return overlaySet}function refreshWidgetRankings(){}function refreshWidgetCube(){}function refreshWidgetCharts(){}function widgetPageLoader(){$(window).one(P.Ajax.noPendingRequestsTrigger,function(){$(".widget-page-content").css({visibility:"visible"});$(".widget-page-content").find("#theInsideLayer").show();$(".widget-page-content").animate({opacity:1});$(".notifier-popup").addClass("is-hidden")});$(document).keydown(function(event){var e;if(event.which!=""){e=event.which}else if(event.charCode!=""){e=event.charCode}else if(event.keyCode!=""){e=event.keyCode}switch(e){case 13:$(event.target).trigger("click");setTimeout(function(){$(event.target).next().find("a:eq(0)").trigger("mouseover")});break}});if(!productProperty.exists("show_text_only")){$("div[tabindex]").attr("tabindex",null)}if(!P.WKPrint.isPrintPage()){session.removeAllRelevant()}convertWidgetProductPropertiesToURLParams();var urlParams=getUrlParams();customizeMapLayersForWidget(urlParams);if(P.WKPrint.isPrintPage()===true){var printpage=new PrintPageSetup;printpage.setUpPrintPage()}function resetMap(){P.instances.map.mapOptions.setToDefault();P.instances.map.getLegend().setNumberOfBreaks(DEFAULT_NUMBREAKS);if(widget){widget.clear()}clearLocation();if(polyCreator){polyCreator.reset();if(polyCreator.dropdown){polyCreator.dropdown.reset()}if(polyCreator.isBuildOn()){toggleCustomRegion()}}P.instances.map.clearOverlays();P.instances.map.clearOverlaySets();if(datasetSearch!=null){datasetSearch.reset()}if(P.instances.map.getInfoWindow()){P.instances.map.closeInfoWindow()}session.remove("curZoom");session.remove("curLat");session.remove("curLng");session.removeAllRelevant();initialLoad=true;P.instances.map.setCenter(new PLatLng(getDefaultMapLat(),getDefaultMapLng()),getDefaultMapZoom());resizeMapContainer();$window.trigger(P.events.MAP_RESET)}function resizeMapContainer(){$mapContainer.css("height",$window.height()-$mapContainer.offset().top);P.instances.map.kamap.resize();if(P.instances.map!==undefined&&P.instances.map.kamap!==undefined){if(initialLoad==true){initialLoad=false;initializeMapLocation()}}checkForSecondHeaderRow();updateMapTitleAndLegendHeader(P.instances.map.getIndicator());updateShadeByTitle();$window.trigger(P.events.MAP_RESIZED)}function initializeGlobals(){if(productProperty.exists("min_zoom")){P_SCALES_DEFAULT=P_SCALES_NORMAL.slice(0,productProperty.getValue("min_zoom"));PMapType.DEFAULT.setScales(P_SCALES_DEFAULT)}if(productProperty.exists("max_zoom")){P_SCALES_DEFAULT=P_SCALES_NORMAL.slice(P_SCALES_NORMAL.length-productProperty.getValue("max_zoom"),P_SCALES_NORMAL.length);PMapType.DEFAULT.setScales(P_SCALES_DEFAULT)}var zoomOffset=PMapType.DEFAULT.getAbsoluteZooms().length-PMapType.DEFAULT.getScales().length;labelManager=new PLabelManager({zoomOffset:zoomOffset});if(productProperty.getValue("map_height")){$("#map").css("height",productProperty.getValue("map_height")+"px")}map=new PMap(document.getElementById("map"));map.getLegend().setNumberOfBreaks(DEFAULT_NUMBREAKS);if(session.get("nb")){var numBreaks=parseInt(session.get("nb"),10);if(!_.isNaN(numBreaks)){map.getLegend().setNumberOfBreaks(numBreaks)}}P.instances.map.addControl(new PSmallMapControl);P.instances.map.enableDoubleClickZoom();P.instances.map.enableScrollWheelZoom();P.instances.map.disableKeyboard();$("#map").append($("#working_spinner"));printTemplate="PolicyMapMapPage";pmToolbar=new Toolbar}function updateMapTitleAndLegendHeader(indicator){if(!indicator){var indicator=P.instances.map.getIndicator()}if(indicator&&typeof indicator==="object"){var label=indicator.getFullLabel();var more=indicator.getDescription();var sources=indicator.getSources();var $title=$mapTitle.find(".title");$title.html(label+'<img src="/images/info-icon.svg" class="after__title" />');$indicatorLegend.find(".legend__title__content").text(indicator.displayName);$indicatorLegend.find(".legend__title").show();$indicatorLegend.find(".legend__title__source").show();if(sources.length>1){more+=" (See data directory for "+indicator.getSourceList(true)+".)"}else if(sources.length===1){var sourceURL=indicator.getSourceURL(sources[0]);if(sourceURL!==null){more+=" <a class='dataLink' target='_blank' href='"+sourceURL+"'>(see data directory)</a>"}if(!sources[0].display||!sources[0].name){$indicatorLegend.find(".legend__title__source").hide()}}$(".content__header__additional-info__content p").html(more);$mapTitle.css("visibility","visible");$title.dotdotdot({after:".after__title"});$title.attr("title",label);updateShadeByTitle()}else{var params=getUrlParams();if(isEmbedPage()&&params["etitle"]){return}hideContentHeader()}}function updateShadeByTitle(){if(isEmbedPage()){$(".shade-by-feature").find(".print-value").dotdotdot()}}function updateMapPosition(indicator){var center,zoom;if(session.get("place")&&session.get("lng")&&session.get("lat")&&session.get("zoom")){center=new PLatLng(session.get("lat"),session.get("lng"));zoom=session.get("zoom")}else{center=P.instances.map.getCenter();zoom=P.instances.map.getZoom()}var mo=P.instances.map.mapOptions;if(mo){mo.setShowCurrentElement();if(mo.isCurrentOn()){mo.showLayerForCurrentView()}}mapstates.add(new PMapState(center,zoom,indicator,null,mapstates.currentplace,session.get("place")),prevmaps)}function initializeLegend(){indicatorLegend=widget=new PTRFIndicatorLegend(map,P.instances.map.getLegend(),{enableToggle:true,enableShade:true,enableBreaks:true});indicatorBreaks=indicatorLegend.getIndicatorBreaks();PEvent.addListener(indicatorBreaks,"refresh",function(){P.instances.legendPanel.update()});PEvent.addListener(indicatorLegend,"refresh",function(){P.instances.legendPanel.update()});indToggle=indicatorLegend.getIndicatorToggle();legendContainer=new PLegendContainer($indicatorLegend);legendContainer.addListener("hide",P.instances.legendPanel.update,P.instances.legendPanel);indicatorLegend.addListener("refresh",legendContainer.show,legendContainer);indicatorLegend.addListener("clear",legendContainer.hide,legendContainer);indicatorLegend.addListener("changed",updateMapTitleAndLegendHeader);trfLegendIndicators=new TrfLegendIndicators($indicatorLegend);indToggle.addListener("refresh",trfLegendIndicators.refresh,trfLegendIndicators);indToggle.addListener("clear",trfLegendIndicators.clear,trfLegendIndicators);trfLegendBreaks=new TrfLegendBreaks($(".legend__breakdown"),$("#legend__shading__ranges"));indicatorBreaks.addListener("refresh",trfLegendBreaks.refresh,trfLegendBreaks);indicatorBreaks.addListener("clear",trfLegendBreaks.clear,trfLegendBreaks);trfLegendShadeBy=new TrfLegendShadeBy($(".legend__shading__shaded-by"),$(".legend__title__source__content"),$("#legend__shading__ranges"),null,$(".shade-by-feature"));indicatorShade=indicatorLegend.getIndicatorShade();indicatorShade.addListener("refresh",trfLegendShadeBy.update,trfLegendShadeBy);indicatorShade.addListener("clear",trfLegendShadeBy.clear,trfLegendShadeBy);trfLegendShadeBy.addListener("change",indicatorShade.changeShade,indicatorShade);trfLegendShadeBy.addListener("update",updateMapTitleAndLegendHeader);legendContainer.init();map.addListener("setindicator",function(indicator){if(indicator.hasOverlaySets()){map.updateIndicatorOverlaySets(indicator)}if(indicator.hasBubbleOptions()){indicator.loadBubbleIndicators()}updateLegendPositionOnMap();P.instances.map.getLegend().clearStoredScale();if(indicator.breakid==P_BREAKTYPE_EXACT_VALUE_ID||indicator.breakid==P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID){trfLegendBreaks.disableColorEditToggle()}else{trfLegendBreaks.enableColorEditToggle();trfLegendBreaks.enableRangesEditToggle()}});P.instances.legendPanel.$optionButton.on("click",function(){trfLegendBreaks.resetView()});P.instances.legendPanel.setIndLegendHideEvents(trfLegendBreaks)}function initializeCustomRegions(){polygonOptions=new PPolyCreatorOptions;polygonOptions.poly.weight=1;polygonOptions.poly.opacity=.5;if(productProperty.getValue("disable_custom_region_draw_option")){polygonOptions.turnDrawOn=false}if(productProperty.getValue("disable_custom_region_assemble_option")){polygonOptions.turnAssembleOn=false}if(productProperty.getValue("disable_custom_region_radius_option")){polygonOptions.turnRadiusOn=false}polyCreator=polycreator=new PPolyCreator(polygonOptions);var opts={};opts.placetypes=[PPlaceType.CENSUSTRACT,PPlaceType.COUNTY];polyCreator.boundaryWidget=new PPolyCreatorBoundaryWidget(polyCreator,opts);polyCreator.circleWidget=new PPolyCreatorCircleWidget(polyCreator);polyCreator.assembleInfoWidget=new PPolyCreatorAssembleInfoWidget(polyCreator);session.checkUrl();trfCustomRegions=new TrfCustomRegionsMenu(polyCreator,session);P.instances.trfCustomRegions=trfCustomRegions;trfCustomRegions.once("change",function loadRegionFromSession(){var boo=false;if(session.hasCenterAndZoom()){boo=true}var cids=session.get("cp");if(cids&&isSubscriber()){_.each(cids,function(customRegionId){trfCustomRegions.addCustomRegionById(customRegionId,boo)})}})}var $mapContainer=$("#map");var $window=$(window);var $indicatorLegend=$(".legend--indicator");var $mapHeaderToggle=$(".content__header__additional-info__toggle");var $mapTitle=$(".content__header").find(".title-info");var indicatorLegend;var indicatorBreaks;var indToggle;var legendContainer;var trfLegendIndicators;var trfLegendBreaks;var trfLegendShadeBy;var indicatorShade;var debug=new P.Debug;debug.override("MPL");var initialLoad=true;var polygonOptions;var polyCreator;var trfCustomRegions;var taxonomyMenu;var dataPointsLegend;session.checkUrl();var termsOfUse=new TermsOfUse;if(productProperty.getValue("search")){initializeSearchForm();replaceSVGs(".svg-search-submit")}initializeGlobals();var legendPanel=new LegendPanel;var mo=new TrfMapBoundaries($(".map-boundaries-menu"));mo.buildLegendFromCurrent();loadLocationFromUrl();taxonomyMenu=new TaxonomyMenu($(".taxonomy"),$(".menu-settings"),debug,map);dataPointsLegend=new TrfDataPointsLegend($("#data-points-legend"),map);initializeLegend();resizeMapContainer();initializeCustomRegions();showExpirationModal();$window.resize(resizeMapContainer);$window.on(P.events.MAP_CHECK_RESIZE,resizeMapContainer);var c=$("#map");$(".legend").draggable({containment:c,handle:"h2, .legend__content",cancel:".chosen-drop, input, .no-drag",scroll:false,stack:"#map, .legend, #theInsideLayer",zIndex:Strata.OVER_MAP0,drag:function(e,ui){if($(this).position().left!==0){$(this).removeClass("legend--docked")}if(ui.position.top<0){ui.position.top=0}$(this).css("height","auto")}});$mapHeaderToggle.click(toggleMapTitleAdditionalInfo);$(".content__header .title").click(toggleMapTitleAdditionalInfo);function toggleMapTitleAdditionalInfo(){var ind=P.instances.map.getIndicator();if(!ind){return}if($mapHeaderToggle.hasClass("is-maximized")){$mapHeaderToggle.removeClass("is-maximized");$(".content__header__additional-info__content").slideUp()}else{$mapHeaderToggle.addClass("is-maximized");$(".content__header__additional-info__content").slideDown()}}$(".content__header__additional-info__close").click(function(){$mapHeaderToggle.removeClass("is-maximized");$(".content__header__additional-info__content").slideUp()});$(".legend__indicators select#legend__year-select").chosen({disable_search:true,inherit_select_classes:true,width:"auto"});$(".legend__indicators select#legend__month-select").chosen({disable_search:true,inherit_select_classes:true,width:"auto"});$(".legend__indicators select#legend__quarter-select").chosen({disable_search:true,inherit_select_classes:true,width:"auto"});$(".legend__indicators select#legend__day-select").chosen({disable_search:true,inherit_select_classes:true,width:"auto"});$(".legend__indicators select#legend__variable-select").chosen({disable_search:true,inherit_select_classes:true,width:"auto"});$(".shade-by select").chosen({disable_search_threshold:15,width:"100%"});$(".legend--indicator").find(".shade-by").remove();$(".content__header .shade-by").click(function(e){if($(".chosen-with-drop").length==0){e.stopPropagation()}$(".content__header").find(".shade-by").find(".chosen-container").trigger("mousedown")});$(".content__header__close-icon").click(function(){clearMapData();session.remove("i")});$(".map-options__reset").click(resetMapAlert);$(".map-options__clear-location").click(function(event){event.preventDefault();clearLocationAlert()});$(map).bind("dragend",function(){$(".content__breadcrumbs").html("stuff")});widget.addListener("clear",hideContentHeader,this);PEvent.addListener(map,"click",function(overlay,point){debug.log(P.Debug.DEBUG,point);PMIdentificationModule.clickHandler(overlay,point)});PEvent.addListener(map,"dblclick",function(){if(map.inPreview()){return}P.instances.map.cancelIdentify=true;P.instances.map.closeInfoWindow()});PEvent.addListener(polyCreator,"addpoly",function(points){polyCreator.showSaveInfoWindow(points[0])});PEvent.addListener(polyCreator,"savepoly",function(places){polyCreator.addSavedPoly(places)});PEvent.addListener(map,"setindicator",function(){var indicator=P.instances.map.getIndicator();updateMapPosition(indicator);updateMapTitleAndLegendHeader(indicator);$window.resize()});PEvent.addListener(map,"removeindicator",function(){updateLegendPositionOnMap()});function hideContentHeader(){$mapTitle.css("visibility","hidden")}PEvent.addListener(P.instances.map,"moveend",function(){session.put("curLat",P.instances.map.getCenter().lat());session.put("curLng",P.instances.map.getCenter().lng());session.put("curZoom",P.instances.map.getZoom());labelManager.updateMapLabels();navteqCounter()});PEvent.addListener(P.instances.map,"zoomend",function(){session.put("curZoom",P.instances.map.getZoom());var legend=P.instances.map.getLegend();legend.clearStoredScale();if(legend.boundaryTypeIsLocked()){if(!legend.isValidBoundaryType(P.instances.map.getLegend().getBoundaryType())){legend.unlockBoundaryType()}}P.instances.map.mapOptions.populate();if(P.instances.map.getLegend().getBoundaryType()){widget.getIndicatorShade().setOldBoundaryTypeId(P.instances.map.getLegend().getBoundaryType().id)}if(widget.legend.getBoundaryType()&&widget.getIndicatorShade().getOldBoundaryTypeId()!=widget.legend.getBoundaryType().id){widget.getIndicatorShade().setOldBoundaryTypeId(widget.legend.getBoundaryType().id)}widget.refresh();P.instances.map.refresh()});$(".map-options__map-boundaries__current-overlays-toggle").click(function(event){event.preventDefault();mapOptions(this,true)});map.addListener("setindicator",function(){taxonomyMenu.hide()});map.addListener("removeindicator",function(){taxonomyMenu.resetActiveRootNodes()});taxonomyMenu.on("show",function(){P.instances.map.mapOptions.hide();trfCustomRegions.hide()});trfCustomRegions.on("show",function(){P.instances.map.mapOptions.hide();taxonomyMenu.hide()});P.instances.map.mapOptions.on("show",function(){trfCustomRegions.hide();taxonomyMenu.hide()});if(isEmbedPage()){var params=getUrlParams();var $c=legendPanel.$container;if(!params["etitle"]){$("body").addClass("embed-without-title");$c.addClass("has-toolbar").prepend($(".content__header"))}else{if(!params["i"]){PEvent.addListener(P.instances.map,"setoverlaysets",function(sets){var title=createSitesMapTitle(sets);var $mapTitle=$(".content__header").find(".title-info");$mapTitle.addClass("sites-in-title");$mapTitle.find(".title").html(title)})}}if(!params["elegend"]){$c.addClass("force-hidden")}}function loadMapFromSession(){var pLatLng=map.getCenter();var numBreaks;if(session.get("curLat")&&session.get("curLng")&&session.get("curZoom")){map.setCenter(new PLatLng(session.get("curLat"),session.get("curLng")),session.get("curZoom"))}
if(typeof ria!=="undefined"){if(session.get("i")!==void 0&&ria[session.get("i")]){if(session.get("rmp")&&colorRamps.getRampByName(session.get("rmp"))){widget.legend.setColorRamp(colorRamps.getRampByName(session.get("rmp")))}selectIndicators(session.get("i"));taxonomyMenu.setActiveRootNodeByIndicatorId(parseInt(session.get("i")[0],10))}getOverlaySetsFromSession();P.instances.map.mapOptions.loadMapOptionsFromSession();if(session.get("cp")){var boo=false;if(session.hasCenterAndZoom()){boo=true}_.each(session.get("cp"),function(customRegionId){trfCustomRegions.addCustomRegionById(customRegionId,boo)})}}}var urlParams=getUrlParams();var requireUser=urlParams["ru"];if(requireUser!=null){if(!isPublicUser()&&session.get(P.constants.userId)==requireUser){taxonomyMenu.once("change",function(){loadMapFromSession()})}else{showLogin();$window.on(P.events.LOGGED_IN,function(){if(session.get(P.constants.userId)==requireUser){taxonomyMenu.once("change",function(){loadMapFromSession()})}$window.off(P.events.LOGGED_IN)})}}else{taxonomyMenu.once("change",function(){loadMapFromSession()})}}(function($){$.AccordionMenu=function(elem,options){this.elem=elem;this.elem.addClass("menu menu-color-1");this.opts=options;this.init()};$.AccordionMenu.prototype={init:function(){var taxo=this.opts.taxonomy;for(var i=0;i<taxo.length;i++){var data;var menuType=this.opts.menuType;if(menuType=="sites"){if(!taxo[i].display){continue}data=taxo[i].pinsets}else if(menuType=="indicator"){data=taxo[i].children;var that=this;PEvent.addListener(P.instances.map,"removeindicator",function(){$(that.elem).find(".on").removeClass("on")})}if(data&&data.length>0){var ul=$("<ul />");ul.addClass("level1");this.elem.append(ul);var li=$("<li />");ul.append(li);var header=$("<div />");header.addClass("cat-header");header.append('<div class="arrow-container right"><div class="arrow"></div></div>');header.append('<div class="text">'+taxo[i].name+"</div>");var that=this;header.click(function(){var wasOpen=false;var el=this;$(el).find(".arrow-container").toggleClass("right");$(el).find(".arrow-container").toggleClass("down");if(menuType=="indicator"){that.elem.find(".open").each(function(index){if(this==$(el).next()[0]){wasOpen=true}$(this).removeClass("open");$(this).parent().find(".arrow-container").addClass("right");$(this).parent().find(".arrow-container").removeClass("down");$(this).slideToggle()})}if(!wasOpen){$(this).next().slideToggle();$(this).next().toggleClass("open")}});li.append(header);ul.append("<li><div class='divider'></div></li>");var ul=$("<ul />");ul.addClass("level2 menu-color-2");li.append(ul);for(var j=0;j<data.length;j++){var set=data[j];var li=$("<li />");li.html(set.name);li.addClass("trigger");li.attr({cat:i,set:j});var indids=set.ids;var geo_boundary_id=set.geo_boundary_id;var elemid;if(indids){elemid=indids[0]}else{elemid=set.id}li.attr({ids:indids,default_indicator_id:set.default_indicator_id});li.attr({bid:geo_boundary_id});li.attr({id:elemid});var that=this;this.sites={};li.click(function(){var ignoreToggle=false;var isOn=$(this).hasClass("on");if(that.opts.menuType=="sites"){var cat=$(this).attr("cat");var set=$(this).attr("set");var attr=pincats[cat].pinsets[set];var name=attr.name+attr.id;var site;if(!that.sites[name]){}else{site=that.sites[name]}if(!isOn){addOverlaySet(attr.id,attr.type);$(this).addClass("on menu-color-3")}else{var sets=map.getOverlaySets();for(var k=0;k<sets.length;k++){if(sets[k].id==attr.id){map.removeOverlaySet(sets[k])}}$(this).removeClass("on")}}else if(that.opts.menuType=="indicator"){if(!isOn){var ids=$(this).attr("ids");var bid=$(this).attr("bid");var default_id=$(this).attr("default_indicator_id");session.put("exids",ids);that.unselectAll();selectIndicatorsCB(ids,default_id);if(bid){selectPlaceCB(bid)}}else{var id=map.getIndicator().id;if($(this).attr("ids").indexOf(id)!=-1){ignoreToggle=true}clearMapDataCB();session.remove("exids")}if(!ignoreToggle){$(this).toggleClass("on menu-color-3")}}});ul.append(li)}}}},unselectAll:function(){this.elem.find(".on").removeClass("on")}};$.fn.accordion.defaults={animated:"slide",autoHeight:true,event:"click",menuType:"indicator"};$.fn.AccordionMenu=function(options){var opts=$.extend({},$.fn.accordion.defaults,options);return new $.AccordionMenu(this,opts)}})(jQuery);CBMapPageTypes=function(opts){this.opts=opts;this.map=opts.map;this.types={};this.contents=$(".nav-type-content-container");this.toggles=$(".navigation");this.typeContentClass="nav-type-content";PEvent.addListener(map,"removeoverlayset",function(set){var id=set.id;$("#"+id).removeClass("on")});if(cbTaxonomy.tax.explore.length>0){this.buildIndMenu()}if(pincats&&pincats.length>0){this.buildSitesMenu()}if(opts.include_explore){this.buildExploreFeatures()}if(opts.include_profile){this.buildProfileFeatures()}if(opts.include_match){this.buildMatchFeatures()}this.setToggleEvent();var params=getUrlParams();var type=this.getTypeByProp("label",params["tt"]);if(type){this.selectType(type,true)}else if(opts.start_with_pop_up){this.showPopUp()}else{this.selectType(this.types.EX,true)}if(productProperty.getValue("cb_welcome_modal")==true){if(session.get("welcomeClosed")==null){session.put("welcomeClosed",false);session.save()}if(session.get("welcomeClosed")!=true&&session.get("welcomeClosed")!="true"){var styles="";if(P.CloneOptions.button_color){styles+="background: #"+P.CloneOptions.button_color+"; color: #fff;"}modal.popup({body:"<iframe src='/modal-welcome' width='860' height='610' style='width: 860px !important; height: 610px !important;' border='0'></iframe>",header:false,footer:"<div id='closeWelcomeModal' style='"+styles+"'>Go to Map</button>",shadeBody:true,shadeHeader:true,shadeFooter:true,size:"modal-lg"});$("#closeWelcomeModal").click(function(){modal.close();session.put("welcomeClosed",true);session.save()})}}};CBMapPageTypes.prototype={navBarSelectType:function(type){var currentType=this.getCurrentType();if(type==currentType){return}if(currentType==null||currentType==this.types.EX||currentType==this.types.MA){this.selectType(type);return}var self=this;if(polycreator.isBuildingCBRegion()){alerter.popup("You are currently building a custom area on the map. Leaving the Profile section will result in losing this area. Are you sure you want to continue?","No","Yes",function(){polycreator.stopCBRegion();self.selectType(type)})}else if(polycreator.isCBCustomRegionSet()){alerter.popup("You currently have a custom area on the map. Leaving the Profile section will result in losing this area. Are you sure you want to continue?","No","Yes",function(){polycreator.removeCBRegion();self.selectType(type)})}else{this.selectType(type)}},selectType:function(type,stick){this.clear();this.clearMap(type);if(type.includeSitesMenu){type.menuSection.append(this.sitesMenu)}PEnvironment.pageName="maps";if(type==this.types.MA){type.legendElem.show()}else{if(this.types.MA&&this.types.MA.legendElem){this.types.MA.legendElem.hide()}}if(type==this.types.MA&&legendMerger.getIndicatorCount()==0){PEnvironment.pageName="analytics";cbMatchPopup.buildPopupContents();var sel=cbMatchPopup.selected;var hasProp=false;for(var i=0;i<sel.length;i++){for(var prop in sel[i]){if(sel[i].hasOwnProperty(prop)){hasProp=true;break}}}if(this.inPrintMode){}else{if(hasProp){cbMatchPopup.runMatch(hasProp)}else{cbMatchPopup.openPopup()}}}else if(type==this.types.EX){}type.content.addClass("on");type.toggle.addClass("on");$("."+this.typeContentClass).removeClass("stick");if(stick){type.content.addClass("stick");var that=this;this.toggles.on("mouseleave",function(){var $e=$("."+that.typeContentClass);if($e.find(".modal.on").length==0){$e.removeClass("stick")}that.toggles.off("mouseleave")})}for(var i in this.types){this.types[i].isOn=false}type.isOn=true;if(this.inPrintMode){for(var n in this.types){$("body").removeClass("clone-print--"+this.types[n].name)}$("body").addClass("clone-print--"+type.name)}},clear:function(){this.hidePopUp();for(var i in this.types){this.types[i].content.removeClass("on");this.types[i].toggle.removeClass("on")}if(this.types.MA&&this.types.MA.legend){this.types.MA.legend.hide()}},hidePopUp:function(){if(this.popup){this.popupbg.hide();this.popup.hide()}},showPopUp:function(){if(this.popup){this.popupbg.show();this.popup.show();return}var mapcont=this.map.getContainer();var bg=$("<div />");bg.addClass("popup-bg");this.popupbg=bg;$("body").append(bg);var popup=$("<div />");$("body").append(popup);this.popup=popup;popup.addClass("welcome-options");var opts=this.opts;var labels=[opts.map_welcome_button_label,opts.report_welcome_button_label,opts.match_welcome_button_label];var title=[opts.map_welcome_title,opts.report_welcome_title,opts.match_welcome_title];var align="";if(isOPVersion()){align=' style="text-align:center"'}var html='<div class="inner-container generic-background">';if(this.types.EX){html+='\t<div onclick="map.cbtypes.selectType(map.cbtypes.types.EX, true)" class="grid_8 alpha opt explore-opt">'+'\t\t<div class="inner-box">'+'\t\t\t<h3 class="clone-custom-color">'+title[0]+"</h3>"+'\t\t\t<div class="textwidget">'+"\t\t\t\t<p>"+opts.map_welcome_text+"</p>"+"\t\t\t</div>"+'\t\t\t<div class="clone-custom-button">'+'\t\t\t\t<span class="icon"></span>'+'\t\t\t\t<span class="text">'+labels[0]+"</span>"+"\t\t\t</div>"+"\t\t</div>"+"\t</div>"}if(this.types.PR){html+='\t<div onclick="map.cbtypes.selectType(map.cbtypes.types.PR, true)" class="grid_8 opt profile-opt">'+'\t\t<div class="inner-box">'+'\t\t\t\t<h3 class="clone-custom-color">'+title[1]+"</h3>"+'\t\t\t<div class="textwidget">'+"\t\t\t\t<p>"+opts.report_welcome_text+"</p>"+"\t\t\t</div>"+'\t\t\t<div class="clone-custom-button">'+'\t\t\t\t<span class="icon"></span>'+'\t\t\t\t<span class="text">'+labels[1]+"</span>"+"\t\t\t</div>"+"\t\t</div>"+"\t</div>"}if(this.types.MA){html+='\t<div onclick="map.cbtypes.selectType(map.cbtypes.types.MA, true)" class="grid_8 omega opt match-opt">'+'\t\t<div class="inner-box">'+'\t\t\t<h3 class="clone-custom-color">'+title[2]+"</h3>"+'\t\t\t<div class="textwidget">'+"\t\t\t\t<p"+align+">"+opts.match_welcome_text+"</p>"+"\t\t\t</div>"+'\t\t\t<div class="clone-custom-button">'+'\t\t\t\t<span class="icon"></span>'+'\t\t\t\t<span class="text">'+labels[2]+"</span>"+"\t\t\t</div>"+"\t\t</div>"+"\t</div>"}html+="</div>";popup.hide();popup.append(html);popup.slideDown("slow")},buildSitesMenu:function(){var container=$("<div />",{class:"menu-column"});var h='<div class="menu-column-header"><img src="/images/cbclone/point-icon.png" />Points, Lines, Polygons</div>';container.append(h);var d=$("<div />",{id:"sites-menu"});var taxo=pincats;d.AccordionMenu({taxonomy:taxo,menuType:"sites"});container.append(d);this.sitesMenu=container},buildIndMenu:function(){var container=$("<div />",{class:"menu-column left"});var h='<div class="menu-column-header"><img src="/images/cbclone/layer-icon.png" />Layers</div>';container.append(h);var d=$("<div />",{id:"ind-menu"});var taxo=cbTaxonomy.tax.explore;d.AccordionMenu({taxonomy:taxo,menuType:"indicator"});container.append(d);this.indMenu=container},buildExploreFeatures:function(){this.types.EX={name:"EX",label:P.CloneOptions.map_label,includeSitesMenu:true};var type=this.types.EX;var div=$("<div />");div.addClass(this.typeContentClass);type.content=div;var sectHead=$("<div />");sectHead.addClass("menu-instructional-text");sectHead.html(P.CloneOptions.map_menu_text);div.html(sectHead);div.append("<div class='menu-instructional-text-divider'></div>");var d=$("<div />",{class:"menus-section"});this.types.EX.menuSection=d;div.append(d);var that=this;var addSitesMenu=function(d){type.menuSection.append(that.sitesMenu)};var addIndMenu=function(d){type.menuSection.append(that.indMenu)};if(isCSIVersion()){addIndMenu(div);addSitesMenu(div);this.contents.append(div)}else{addSitesMenu(div);addIndMenu(div);this.contents.append(div)}var div=$("<div />");div.addClass("clone-nav-tab explore");type.toggle=div;var title=this.opts.map_label;div.html('<div class="opt-icon"></div><span>'+title+"</span>");div.append('<div class="arrow-up"></div>');this.toggles.append(div)},buildProfileFeatures:function(){this.types.PR={name:"PR",label:P.CloneOptions.report_label};var type=this.types.PR;var div=$("<div />");div.addClass(this.typeContentClass);type.content=div;div.append($(".custom-location-modal-container"));var sectHead=$("<div />");sectHead.addClass("menu-instructional-text report-header");sectHead.html(P.CloneOptions.report_menu_text);div.append(sectHead);div.append("<div class='menu-instructional-text-divider'></div>");var menus_section=$("<div />",{class:"menus-section"});div.append(menus_section);var $column=$("<div />",{class:"menu-column left"});var rtypes=cbProfileDropdowns.allDropdowns;var text="";if(rtypes.length>0){text="Select a preloaded<br />location:"}else{text="Select an area from<br />the location search above."}var $d=$("<div />",{class:"menu-column-header"});$d.html(text);$column.append($d);var locDropdowns=$("<div />");locDropdowns.addClass("profileDropdownSection");for(var i=0;i<rtypes.length;i++){var rtype=rtypes[i];var h=$("<div />",{class:"profileDropdownHeader"});h.html(rtype.typeDisplay);var d=$("<div />",{class:"profileDropdown"});var s=$("<select />",{class:"locationSelect",id:rtype.id});d.html(s);locDropdowns.append(h);locDropdowns.append(d)}$column.append(locDropdowns);var n=P.CloneOptions.report_boundaries_note;if(n){$column.append('<div class="note">'+n+"</div>")}menus_section.append($column);if(this.opts.include_custom_region_feature){var $column=$("<div />",{class:"menu-column"});var $d=$("<div />",{class:"menu-column-header"});$d.html("Or, create a custom location:");$column.append($d);var drawRegion=$("<div />",{class:"clone-button custom-region-button custom-region-button--draw"});drawRegion.html('<img class="custom-location-button-icons" src="/images/cbclone/drawn-custom-area.png">');drawRegion.append("Draw a custom area");drawRegion.click(function(){polycreator.startCBDrawn()});$column.append(drawRegion);var radiusRegion=$("<div />",{class:"clone-button custom-region-button custom-region-button--radius"});radiusRegion.html('<img class="custom-location-button-icons" src="/images/cbclone/radius-custom-area.png">');radiusRegion.append("Specify a radius around a point");radiusRegion.click(function(){polycreator.startCBRadius()});$column.append(radiusRegion)}menus_section.append($column);this.contents.append(div);var div=$("<div />");div.addClass("clone-nav-tab profile");type.toggle=div;var title=P.CloneOptions.report_label;div.html('<div class="opt-icon"></div><span>'+title+"</span>");div.append('<div class="arrow-up"></div>');this.toggles.append(div)},buildMatchFeatures:function(){this.types.MA={name:"MA",label:P.CloneOptions.match_label,includeSitesMenu:true,legendElem:$(".legend--analytics")};var type=this.types.MA;var div=$("<div />");div.addClass(this.typeContentClass+" match-content");type.content=div;this.contents.append(div);var sectHead=$("<div />");sectHead.addClass("menu-instructional-text");sectHead.html(P.CloneOptions.match_menu_text);div.html(sectHead);div.append("<div class='menu-instructional-text-divider'></div>");var $b=$("<div />",{class:"edit-match-button"});$b.html("Edit Match Layers");$b.click(function(){cbMatchPopup.openPopup(true)});div.append($b);$(".select-layer").click(function(){cbMatchPopup.openPopup(true)});var menus_section=$("<div />",{class:"menus-section"});div.append(menus_section);var $column=$("<div />",{class:"menu-column left"});menus_section.append($column);var h='<div class="menu-column-header"><img src="/images/cbclone/layer-icon.png" />Layers</div>';$column.append(h);for(var i=0;i<3;i++){var num=i+1;var d=$("<div />",{class:"menu-column-layer-match-container legend__content analytics-legend__item"});d.html('<div class="match-layer-selected-header generic-background"><p>Layer #'+num+"</p></div>");d.append('<div class="match-layer-selected-container-expanded generic-background"></div>');$column.append(d)}matchMenuLegendUpdate();var $column=$("<div />",{class:"menu-column"});menus_section.append($column);this.types.MA.menuSection=$column;$column.append(this.sitesMenu);var div=$("<div />");div.addClass("clone-nav-tab match");type.toggle=div;var title=P.CloneOptions.match_label;div.html('<div class="opt-icon"></div><span>'+title+"</span>");div.append('<div class="arrow-up"></div>');this.toggles.append(div);var self=this;cbMatchPopup.addListener("runmatch",function(rInds){self.clearMatchData();var loadInd=function(rInds,cnt){PIndicatorLoader.load([rInds[cnt].ids[0]],function(inds){var ind=inds[0];var types=ind.getPlaceTypes();var typeid;if(jQuery.inArray(PPlaceType.BLOCKGROUP,types)>=0){typeid=PPlaceType.BLOCKGROUP.id}else if(jQuery.inArray(PPlaceType.CENSUSTRACT,types)>=0){typeid=PPlaceType.CENSUSTRACT.id}else{var l=new PLegend;l.indicator=ind;var type=l.getBoundaryType();typeid=type.id}var indicatorLegend=map.legendMerger.getLegend(cnt);var period=ind.getPeriod();var params=getUrlParams();if(rInds[cnt].type==cbTaxonomy.typeNumeric){var numLevels=rInds[cnt].numLevels;var typebreaks=ind.breaks[0][typeid];var level=parseInt(rInds[cnt].level);var high=null;var low=null;if(params["m"+cnt+"r0"]&&params["m"+cnt+"r1"]){low=parseFloat(params["m"+cnt+"r0"]);high=parseFloat(params["m"+cnt+"r1"]);var p=params["m"+cnt+"period"];if(p){period=p}var t=params["m"+cnt+"btd"];if(t){typeid=t}}else if(typebreaks[numLevels]){var breaks=typebreaks[numLevels].split(",");low=parseFloat(breaks[level]);high=parseFloat(breaks[level+1])}else{for(var i=2;i<8;i++){if(typebreaks[i]){numLevels=i}}var breaks=typebreaks[numLevels].split(",");var l=breaks.length;breaks=[breaks[0],breaks[1],breaks[Math.round(l/2)],breaks[l-1]];low=parseFloat(breaks[level]);high=parseFloat(breaks[level+1])}session.put("m"+cnt+"r0",low);session.put("m"+cnt+"r1",high);var indicatorRange=indicatorLegend.getIndicatorRange();indicatorRange.setRange([low,high])}else if(rInds[cnt].type==cbTaxonomy.typeCategorical){var values=rInds[cnt].values;if(params["m"+cnt+"v"]){values=JSON.parse(params["m"+cnt+"v"])}session.put("m"+cnt+"v","["+values.toString()+"]")}session.put("m"+cnt+"i",ind.id);session.put("m"+cnt+"btd",typeid);session.put("m"+cnt+"period",period);indicatorLegend.setIndicatorList(inds,null,0);cnt++;if(cnt<rInds.length){loadInd(rInds,cnt)}})};var cnt=0;loadInd(rInds,cnt);cbMatchPopup.closePopup()})},setToggleEvent:function(){for(var i in this.types){var that=this;this.types[i].toggle.data("type",this.types[i]);this.types[i].toggle.click(function(){var type=$(this).data("type");if($(this).hasClass("on")){}else{that.navBarSelectType(type)}})}},setUpAnalytics:function(){$legends=$(".analytics-legend__item");var legendContainer=new Array;var indicatorLegend=new Array;legendMerger=new PLegendMerger(this.map);var $analyticsLegend=$(".legend--analytics");$analyticsLegend.find(".legend__toggle-icon").click(function toggleLegendSize(){if($analyticsLegend.hasClass("is-minimized")){$(this).removeClass("is-minimized");$analyticsLegend.removeClass("is-minimized")}else{$(this).addClass("is-minimized");$analyticsLegend.addClass("is-minimized")}});$legends.each(function(index){var $legend=$(this);var editButton=$legend.find(".legend__edit-button");var pLegend=new PLegend;indicatorLegend.push(new PTRFIndicatorLegend(null,pLegend,{enableToggle:true,enableShade:true,enableRange:true,instanceId:"m"+index}));editButton.click(function(event){event.preventDefault();$(this).toggleClass("is-active");$legend.find(".legend__indicators").toggle()})});var indElms=$legends;for(var i=0;i<indElms.length;i++){indElms[i]=$(indElms[i]);var indToggle=indicatorLegend[i].getIndicatorToggle();var indicatorShade=indicatorLegend[i].getIndicatorShade();indicatorShade.disableDefault=true;var indicatorRange=indicatorLegend[i].getIndicatorRange();var indicatorValues=indicatorLegend[i].getIndicatorValues();legendContainer[i]=new PLegendContainer(indElms[i]);indicatorLegend[i].addListener("refresh",legendContainer[i].enable,legendContainer[i]);indicatorLegend[i].addListener("refresh",placeZoomSliderMarker,legendContainer[i]);indicatorLegend[i].addListener("clear",legendContainer[i].disable,legendContainer[i]);indicatorLegend[i].addListener("clear",placeZoomSliderMarker,legendContainer[i]);var trfLegendIndicators=new TrfAnalyticsLegendIndicators(indElms[i]);indToggle.addListener("refresh",trfLegendIndicators.refresh,trfLegendIndicators);indToggle.addListener("clear",trfLegendIndicators.clear,trfLegendIndicators);var rangeWidget=new PRangeWidget(indElms[i].find("#slider_container"));rangeWidget.addListener("update",indicatorRange.setRange,indicatorRange);rangeWidget.init();indicatorRange.addListener("refresh",rangeWidget.updateRange,rangeWidget);indicatorRange.addListener("enable",rangeWidget.enable,rangeWidget);indicatorRange.addListener("disable",rangeWidget.disable,rangeWidget);indicatorLegend[i].addListener("clear",rangeWidget.resetRange,rangeWidget);legendContainer[i].addListener("disable",rangeWidget.disable,rangeWidget);var valuesWidget=new PValuesWidget(indElms[i].find("#values_container"));valuesWidget.addListener("update",indicatorValues.toggleValues,indicatorValues);indicatorValues.addListener("load",valuesWidget.refresh,valuesWidget);indicatorValues.addListener("enable",valuesWidget.enable,valuesWidget);indicatorValues.addListener("disable",valuesWidget.disable,valuesWidget);indicatorValues.addListener("clear",valuesWidget.clear,valuesWidget);legendContainer[i].addListener("disable",valuesWidget.disable,valuesWidget);var indInfo=new PIndicatorInfoWidget(indElms[i].find(".legend__title__content"),'<span onclick="cbMatchPopup.openPopup(true)">Select Layer</span>');indInfo.index=i;indicatorLegend[i].addListener("refresh",indInfo.update,indInfo);indicatorLegend[i].addListener("clear",indInfo.clear,indInfo);var trfLegendShadeBy=new TrfLegendShadeBy(indElms[i].find(".legend__shading__shaded-by"),indElms[i].find(".legend__title__source__content"),indElms[i].find("#legend__shading__ranges"));indicatorShade.addListener("refresh",trfLegendShadeBy.update,trfLegendShadeBy);indicatorShade.addListener("clear",trfLegendShadeBy.clear,trfLegendShadeBy);trfLegendShadeBy.addListener("change",indicatorShade.changeShade,indicatorShade);legendContainer[i].init();legendContainer[i].disable();legendMerger.addLegend(indicatorLegend[i])}map.setLegendMerger(legendMerger);PEvent.addListener(map,"setindicator",function(ind){});PEvent.addListener(map,"zoomstart",function(){for(var i=0;i<3;i++){var legend=legendMerger.getLegend(i);legend.refresh()}});PEvent.addListener(map,"zoomend",function(){session.put("curZoom",map.getZoom());var tmpLeg;for(var i=0;tmpLeg=legendMerger.getLegend(i);i++){var leg=tmpLeg.legend;if(leg.getBoundaryType()&&tmpLeg.getIndicatorShade().getOldBoundaryTypeId()!=leg.getBoundaryType().id){tmpLeg.getIndicatorShade().setOldBoundaryTypeId(leg.getBoundaryType().id)}}mapRefreshed()})},getCurrentType:function(){var types=this.types;var t=null;for(var i in types){if(types[i].isOn){t=types[i];break}}return t},getTypeByName:function(name){return this.types[name]},getTypeByProp:function(key,val){var type=null;if(key&&val){val=val.toLowerCase();for(var i in this.types){if(this.types[i][key].toLowerCase()==val){type=this.types[i]}}}return type},clearMap:function(type){if(type==this.types.MA){if(this.types.EX){this.clearExploreData()}if(this.types.PR){this.clearProfileData()}}else if(type==this.types.EX){if(this.types.MA){this.clearMatchData()}if(this.types.PR){this.clearProfileData()}}else if(type==this.types.PR){}else{if(this.types.EX){this.clearExploreData()}if(this.types.MA){this.clearMatchData()}if(this.types.PR){this.clearProfileData()}}},clearExploreData:function(fullclear){var ind=this.map.getIndicator();if(ind){var indid=ind.id;$("#"+indid).removeClass("on");this.map.removeIndicator();widget.clear();if(fullclear){session.remove("exids");this.indMenu.find(".open").slideToggle(null,function(){$(this).removeClass("open");$(this).parent().find(".down").addClass("right").removeClass("down")})}}},clearProfileData:function(fullclear,callback){polycreator.disableRegionBuilderCB(callback)},clearMatchData:function(fullclear,showPopup){for(var i=0;i<3;i++){legendMerger.clearIndicator(i)}var m=$("#map_message");m.hide();if(fullclear){cbMatchPopup.clearSelected()}if(showPopup){cbMatchPopup.openPopup()}},fullClearOfCurrentMap:function(){var that=this;var callback=function(){clearPolygons(that.map);that.map.clearOverlays();var sets=map.getOverlaySets();for(var z=0;z<sets.length;z++){var set=sets[z];var id=set.id;$("#"+id).removeClass("on")}that.sitesMenu.find(".open").slideToggle(null,function(){$(this).removeClass("open");$(this).parent().find(".down").addClass("right").removeClass("down")});map.clearOverlaySets();labelManager.resetLabelManager();if(datasetSearch!=null){datasetSearch.reset()}if(map.getInfoWindow())map.closeInfoWindow();search.reset()};var type=this.getCurrentType();if(type==this.types.EX){callback();this.clearExploreData(true)}else if(type==this.types.PR){this.clearProfileData(true,callback);if(this.types.EX){this.clearExploreData(true)}if(this.types.MA){this.clearMatchData(true)}}else if(type==this.types.MA){callback();this.clearMatchData(true,true)}},centerMap:function(){map.setCenter(new PLatLng(getDefaultMapLat(),getDefaultMapLng()),getDefaultMapZoom())},getLinkParams:function(cb){var link=new PMapLink(cb,PEnvironment.pageName);var s=link.url;s+="&tt="+this.getCurrentType().label.toLowerCase();if($("#moretitle").is(":visible")){s+="&idesc=true"}var icons=map.storedSetIcons;if(icons){var cnt=0;var iconParams="&icons=";for(var i in icons){iconParams+=i+":"+icons[i].category+";";cnt++}if(cnt>0){s+=iconParams}}return s},buildHamburger:function(){var $d=$("<div />",{class:"hamburger-container"});var that=this;this.hamburger=$d;$d.click(function(){that.toggleCurrentTypeMenu()});this.toggles.append($d)},toggleHamburger:function(){var types=this.types;var isOn=false;for(var i in types){if(types[i].content.hasClass("on")){isOn=true;break}}if(isOn){this.hamburger.addClass("on")}else{this.hamburger.removeClass("on")}},toggleCurrentTypeMenu:function(){var type=this.getCurrentType()}};CBMatchPopup=function(){this.container1=$("<div />");this.container1.addClass("cbMatchPopupOuterContainer centerContainer1");this.container2=$("<div />");this.container2.addClass("centerContainer2");this.container3=$("<div />");this.container3.addClass("centerContainer3");this.contentContainer=$("<div />");this.contentContainer.addClass("content");this.popupContainer=$("<div />");this.popupContainer.attr("id","cbMatchPopupContainer");this.popupContainer.addClass("cbMatchPopupContainer");this.popupContainer.append(this.contentContainer);this.container3.append(this.popupContainer);this.container2.append(this.container3);this.container1.append(this.container2);this.popupContents=null;this.numIndicators=3;this.numIndicatorsString="three";this.lastCompletedRow=0;this.numericLevels=["Low","Moderate","High"];this.values=new Object;this.eventTypes={};this.eventTypes.runmatch="runmatch";this.eventManager=new _eventManager;for(var ev in this.eventTypes){this.eventManager.registerEventID(ev)}this.selected=[{},{},{}]};CBMatchPopup.prototype.openPopup=function(edit){this.closePopup();var self=this;this.buildPopupContents();this.contentContainer.html(this.popupContents);this.dialog=$("<div/>");this.dialog.attr("id","cbMatchPopup");this.dialog.append(this.container1);this.dialog.dialog({dialogClass:"match-dialog",modal:true,closeOnEscape:false,draggable:false,resizable:false,zIndex:5002,show:function(){$(this).slideDown("slow")}});this.setEditMode(false);if(edit){this.setEditMode(true)}this.initializeSelectorDropdowns()};CBMatchPopup.prototype.closePopup=function(){this.contentContainer.html("");$("#cbMatchPopup").remove()};CBMatchPopup.prototype.buildPopupContents=function(){if(this.popupContents!=null){return}var html="<div class='mpHeader clone-custom-color'>"+P.CloneOptions.match_wizard_header+"</div>";html+="<div class='mpSubHeader'>"+P.CloneOptions.match_wizard_text+"</div>";html+="<a class='close' onclick='cbMatchPopup.closePopup()'><img class='close-x' src='images/cbclone/x-dark.png'></a>";html+="<div class='mpIndSelectors'>";for(var i=1;i<=this.numIndicators;i++){html+="<div class='mpIndSelectorRow generic-background'>";html+="  <div class='selectorRowNum clone-custom-color'>";html+="    <span>Layer #"+i+"</span>";html+="  </div>";html+="  <div class='selectorCell selectorCell-"+i+" selectorCellInd'>";html+="    <div class='selectorHeader selectorHeader-"+i+" clone-custom-color'>Select Category</div>";html+="    <div class='dropdownHeader'>&nbsp;</div>";html+="    <select id='selector-a-"+i+"' class='selector-a' />";html+="  </div>";html+="  <div class='selectorCell selectorCell-"+i+"'>";html+="    <div class='selectorHeader selectorHeader-"+i+" clone-custom-color'>Select Indicator</div>";html+="    <div id='dropdownHeader-b-"+i+"' class='dropdownHeader'>&nbsp;</div>";html+="    <select id='selector-b-"+i+"' class='selector-b' />";html+="  </div>";html+="  <div class='selectorCell selectorCell-"+i+"'>";html+="    <div class='selectorHeader selectorHeader-"+i+" clone-custom-color'>Select Level</div>";html+="    <div id='dropdownHeader-c-"+i+"' class='dropdownHeader'>&nbsp;</div>";html+="    <select id='selector-c-"+i+"' class='selector-c' />";html+="  </div>";html+="</div>"}html+="</div>";html+="<div class='mpFooter'>";html+="<div class='clone-custom-button button__run-match' onclick='cbMatchPopup.runMatch();'>"+P.CloneOptions.match_run_label+"</div>";html+="<div class='clone-button clone-cancel-button button__cancel' onclick='P.instances.map.cbtypes.clearMatchData(true, true);'>Start Over</div>";html+="</div>";this.popupContents=html};CBMatchPopup.prototype.startOver=function(){var self=this;alerter.popup("This will reset all selected indicators. Do you wish to continue?","No","Yes",function(){self.buildPopupContents();self.lastCompletedRow=0;self.values=new Object;self.contentContainer.html(self.popupContents);self.setEditMode(false);self.initializeSelectorDropdowns()})};CBMatchPopup.prototype.initializeSelectorDropdowns=function(){var self=this;$(".selector-a").each(function(index,dropdown){var dropdown=$(dropdown);var dropdownId=dropdown.attr("id");$("#"+dropdownId+" option").each(function(index,option){$(option).remove()});var newOption=$("<option />");newOption.attr({value:"NA",text:"-- Select category --",innerText:"-- Select category --"});newOption.html("-- Select category --");dropdown.append(newOption);for(var i=0;i<cbTaxonomy.tax.match.length;i++){var newOption=$("<option />");newOption.attr({value:i,text:cbTaxonomy.tax.match[i].name,innerText:cbTaxonomy.tax.match[i].name});newOption.html(cbTaxonomy.tax.match[i].name);if(self.isEditModeOn()){if(self.getSelectedValForRow(index,"cat")==i){newOption.attr("selected",true)}}dropdown.append(newOption)}self.rebuildDropkick(dropdownId);disableDropkick(dropdownId)});$(".selector-b, .selector-c").each(function(index,dropdown){var dropdown=$(dropdown);var dropdownId=dropdown.attr("id");var dropdownClass=dropdown.attr("class");var dropdownIdDetails=dropdownId.split("-");var dropdownType=dropdownIdDetails[1];var dropdownRow=dropdownIdDetails[2];if(dropdownType=="b"){self.resetIndicatorOrLevelDropdown(1,dropdownRow)}else if(dropdownType=="c"){self.resetIndicatorOrLevelDropdown(2,dropdownRow)}self.rebuildDropkick(dropdownId);disableDropkick(dropdownId)});$(".selectorCell").hide();$(".selectorCell-1").show();$(".selectorCellInd").show();enableDropkick("selector-a-1");$(".selectorHeader-1").show();this.values=new Object;var aLength=3;for(var i=0;i<aLength;i++){var num=i+1;var id="#selector-a-"+num;var li=$(id).find("li");this.processIndicator($(id)[0]);var id="#selector-b-"+num;this.processIndicator($(id)[0]);var id="#selector-c-"+num;this.processIndicator($(id)[0])}};CBMatchPopup.prototype.rebuildDropkick=function(dropdownId){var self=this;$("#"+dropdownId+"_chosen").remove();$("#"+dropdownId).chosen({width:"100%",
disable_search:true});$("#"+dropdownId).on("change",function(){self.processIndicator(this)});if($("#"+dropdownId).attr("disabled")){disableDropkick(dropdownId)}};CBMatchPopup.prototype.processIndicator=function(item){var item=$(item);if(item.length<1){return}var itemId=item.attr("id");var itemClass=item.attr("class");var itemValue=item.val();var itemIdDetails=itemId.split("-");var itemType=itemIdDetails[1];var itemRow=parseInt(itemIdDetails[2]);var rowIndex=itemRow-1;if(this.values[itemId]&&this.values[itemId]==itemValue){return}else{this.values[itemId]=itemValue}if(itemType=="a"){var indDropdownId="selector-b-"+itemRow;var levDropdownId="selector-c-"+itemRow;this.resetIndicatorOrLevelDropdown(1,itemRow);if(itemValue!="NA"){if(!cbTaxonomy.tax.match[itemValue]||!cbTaxonomy.tax.match[itemValue].children||cbTaxonomy.tax.match[itemValue].children.length<1){return}for(var i=0;i<cbTaxonomy.tax.match[itemValue].children.length;i++){var ind=cbTaxonomy.tax.match[itemValue].children[i];var newOption=$("<option />");newOption.attr({value:i,text:ind.name,innerText:ind.name});newOption.html(ind.name);if(this.isEditModeOn()&&this.getSelectedValForRow(rowIndex,"ind")==i){newOption.attr("selected",true)}$("#"+indDropdownId).append(newOption)}enableDropkick(indDropdownId);disableDropkick(levDropdownId);$("#dropdownHeader-b-"+itemRow).text(cbTaxonomy.tax.match[itemValue].name);this.selected[rowIndex]["cat"]=itemValue}else{disableDropkick(indDropdownId);disableDropkick(levDropdownId)}this.rebuildDropkick(indDropdownId);this.rebuildDropkick(levDropdownId)}else if(itemType=="b"){var categoryValue=$("#selector-a-"+itemRow).val();var levDropdownId="selector-c-"+itemRow;this.resetIndicatorOrLevelDropdown(2,itemRow);if(itemValue!="NA"){var selectedInd=cbTaxonomy.tax.match[categoryValue].children[itemValue];if(selectedInd.type==cbTaxonomy.typeNumeric){if(!selectedInd.levels){selectedInd.levels=this.numericLevels}for(var i=selectedInd.levels.length-1;i>=0;i--){var newOption=$("<option />");newOption.attr({value:i,text:selectedInd.levels[i],innerText:selectedInd.levels[i]});newOption.html(selectedInd.levels[i]);if(this.isEditModeOn()&&this.getSelectedValForRow(rowIndex,"level")==i){newOption.attr("selected",true)}$("#"+levDropdownId).append(newOption)}}else if(selectedInd.type==cbTaxonomy.typeCategorical){if(!selectedInd.levels){selectedInd.levels=[]}for(var i=0;i<selectedInd.levels.length;i++){var newOption=$("<option />");newOption.attr({value:i,text:selectedInd.levels[i].name,innerText:selectedInd.levels[i].name});newOption.html(selectedInd.levels[i].name);if(this.isEditModeOn()&&this.getSelectedValForRow(rowIndex,"level")==i){newOption.attr("selected",true)}$("#"+levDropdownId).append(newOption)}}enableDropkick(levDropdownId);$("#dropdownHeader-c-"+itemRow).text(selectedInd.name);this.selected[rowIndex]["ind"]=itemValue}else{disableDropkick(levDropdownId)}this.rebuildDropkick(levDropdownId)}else if(itemType=="c"){if(itemValue!="NA"){var nextRow=itemRow+1;$(".selectorCell-"+nextRow).show();enableDropkick("selector-a-"+nextRow);if(this.lastCompletedRow<itemRow){this.lastCompletedRow=itemRow;$(".selectorHeader").hide();$(".selectorHeader-"+nextRow).show()}this.selected[rowIndex]["level"]=itemValue}}};CBMatchPopup.prototype.resetIndicatorOrLevelDropdown=function(which,row){if(which<1||which>2||row<1||row>this.numIndicators){return}var indDropdownId="selector-b-"+row;var levDropdownId="selector-c-"+row;var indDropdown=$("#"+indDropdownId);var levDropdown=$("#"+levDropdownId);var indDropdownHeader=$("#dropdownHeader-b-"+row);var levDropdownHeader=$("#dropdownHeader-c-"+row);if(indDropdown.length<1||levDropdown.length<1){return}if(which==1){$("#"+indDropdownId+" option").each(function(index,option){$(option).remove()});var newOption=$("<option />");newOption.attr({value:"NA",text:"-- Select indicator --",innerText:"-- Select indicator --"});newOption.html("-- Select indicator --");indDropdown.append(newOption);indDropdownHeader.html("&nbsp;");delete this.values[indDropdownId]}$("#"+levDropdownId+" option").each(function(index,option){$(option).remove()});var newOption=$("<option />");newOption.attr({value:"NA",text:"-- Select level --",innerText:"-- Select level --"});newOption.html("-- Select level --");levDropdown.append(newOption);levDropdownHeader.html("&nbsp;");delete this.values[levDropdownId]};CBMatchPopup.prototype.runMatch=function(loadselected){var indicators=[];for(var i=1;i<=this.numIndicators;i++){var indValue="NA";var levValue="NA";var catValue="NA";if(loadselected){var sel=this.selected;var index=i-1;if(sel[index].cat&&sel[index].ind&&sel[index].level){catValue=sel[index].cat;indValue=sel[index].ind;levValue=sel[index].level}}else{catValue=$("#selector-a-"+i).val();indValue=$("#selector-b-"+i).val();levValue=$("#selector-c-"+i).val()}if(indValue=="NA"||levValue=="NA"){continue}var selectedInd=cbTaxonomy.tax.match[catValue].children[indValue];var curInd=new Object;curInd.ids=selectedInd.ids;curInd.type=selectedInd.type;if(selectedInd.type==cbTaxonomy.typeNumeric){curInd.level=levValue;curInd.numLevels=this.numericLevels.length}else if(selectedInd.type==cbTaxonomy.typeCategorical){curInd.level=levValue;curInd.values=selectedInd.levels[levValue].values}indicators.push(curInd)}if(indicators.length<1){alerter.popup("You must select at least one category, indicator, and level to run a match.","OK");return}this.setEditMode(false);this.eventManager.triggerEvent("runmatch",indicators)};CBMatchPopup.prototype.addListener=function(eventId,func){this.eventManager.registerForEvent(eventId,[],func)};CBMatchPopup.prototype.removeListener=function(eventId,func){this.eventManager.deregisterForEvent(eventId,[],func)};CBMatchPopup.prototype.clearSelected=function(){this.selected=[{},{},{}]};CBMatchPopup.prototype.getSelectedValForRow=function(index,type){var val=this.selected[index][type];return val};CBMatchPopup.prototype.setEditMode=function(boo){this.inEditMode=boo};CBMatchPopup.prototype.isEditModeOn=function(){return this.inEditMode};CBMatchPopup.prototype.setSelectedByUrl=function(){var params=getUrlParams();var sel=params["msel"].split(";");for(var i=0;i<sel.length;i++){var s=sel[i].split(",");var o={cat:s[0],ind:s[1],level:s[2]};this.selected[i]=o}};CBPopUp=function(options){if(options&&options.elm)this.elm=options.elm;else this.elm=$("#popup");if(options&&options.style)this.elm.addClass("popOpt"+options.style);var showClose=false;if(options&&options.noClose)showClose=false;if(showClose){var close=$("<a />");close.addClass("close noPrint");var self=this;close.click(function(){self.hide()});close.html("Close <div>X</div>");this.elm.append(close)}var content=$("<div />");content.addClass("content");this.elm.append(content);this.popup_content=content;this.loader=$(document.createElement("img")).attr("src","/images/busy.gif");this.loader.hide();this.loader.css("position","absolute");this.elm.append(this.loader);this.content=null;this.inMotion=false};CBPopUp.prototype={show:function(callback,context){this.refreshSize();if(PEnvironment.pageName=="tables"){$("#chart").hide();$("#save").fadeOut()}this.popup_content.children().hide();this.showLoader();if(!this.elm.is(":visible")){this.inMotion=true;var self=this;this.elm.width(0).height(0).css({left:this.left+this.width/2+"px",top:this.top+this.height/2+"px"});this.elm.show().css({left:this.left+"px",top:this.top+"px",width:"100%",height:"auto",opacity:1});self.inMotion=false;self.changeContent(null,callback,context)}},hide:function(){if(this.elm.is(":visible")){var self=this;unselectColumn();this.popup_content.children().hide();this.elm.animate({left:this.left+this.elm.width()/2+"px",top:this.top+this.elm.height()/2+"px",width:"0px",height:"0px",opacity:0},700,"swing",function(){self.elm.hide();$("#chart").fadeIn();$("#save").fadeIn()})}},refreshSize:function(){var fillElm=$("#chartContainer");var pos=fillElm.offset();this.left=0;this.top=0;this.width=fillElm.width();if(PEnvironment.pageName!="tables")this.height=400;else this.height=fillElm.height();this.loader.css("left",this.width/2+"px");this.loader.css("top","50px")},changeContent:function(elm,callback,context){if(elm)this.content=elm;if(callback){this.callback=callback}if(this.inMotion==false&&this.content){this.popup_content.children().hide();this.popup_content.empty();this.popup_content.append(this.content);this.content.show();this.content=null;this.hideLoader();if(this.callback){this.callback.call();this.callback=null;this.context=null}}},showLoader:function(){$("#sites-list").addClass("loading")},hideLoader:function(){this.loader.hide();$("#sites-list").removeClass("loading")}};CBProfileDropdowns=function(){this.hasCustomRegionBuilding=true;this.allDropdowns=[];if(isCSIVersion()){this.hasCustomRegionBuilding=false;this.allDropdowns=[{id:"profileNeighborhoods",typeKey:"neighborhood",typeDisplay:"Neighborhood"}]}else if(isWPVersion()){this.hasCustomRegionBuilding=false;this.allDropdowns=[{id:"profileNeighborhoods",typeKey:"neighborhood",typeDisplay:"Neighborhood"},{id:"profileZips",typeKey:"zip",typeDisplay:"Zip Code"},{id:"profileCouncils",typeKey:"council",typeDisplay:"Council District"},{id:"profileSchoolCatchment",typeKey:"school",typeDisplay:"School Catchment"},{id:"profileCommunityUAA",typeKey:"community_umbrella_agency",typeDisplay:"Community Umbrella Agency Area"},{id:"profileSLDUpper",typeKey:"sld_upper",typeDisplay:"Upper State Legislative District"},{id:"profileSLDLower",typeKey:"sld_lower",typeDisplay:"Lower State Legislative District"}]}else if(isCBVersion()){this.allDropdowns=[{id:"profileNeighborhoods",typeKey:"neighborhood",typeDisplay:"Neighborhood"},{id:"profileZips",typeKey:"zip",typeDisplay:"Zip Code"},{id:"profileCouncils",typeKey:"council",typeDisplay:"Council District"}]}else if(isAWVersion()){}else if(isNCCVersion()){this.allDropdowns=[{id:"profileNeighborhoods",typeKey:"neighborhood",typeDisplay:"Neighborhood"},{id:"profileZips",typeKey:"zip",typeDisplay:"Zip Code"},{id:"profileWards",typeKey:"ward",typeDisplay:"Ward"}]}else if(isPassaicVersion()){this.allDropdowns=[{id:"profileZips",typeKey:"passaic_zip",typeDisplay:"Zip Code"},{id:"profileCities",typeKey:"passaic_cities",typeDisplay:"City"}]}else if(isAtlantaChildCareVersion()){this.allDropdowns=[{id:"profileZips",typeKey:"atl_zip",typeDisplay:"Zip Code"},{id:"profilePlaces",typeKey:"atl_place",typeDisplay:"City"},{id:"profileNeighborhoods",typeKey:"atl_npu",typeDisplay:"Atlanta Neighborhood Planning Unit"},{id:"profileCluster",typeKey:"atl_apsclusters",typeDisplay:"Atlanta High School Cluster"}]}else if(isDCChildCareVersion()){this.allDropdowns=[{id:"profileWards",typeKey:"dc_ward",typeDisplay:"Ward"},{id:"profileZips",typeKey:"dc_zip",typeDisplay:"Zip Code"},{id:"profileNeighborhoods",typeKey:"dc_nhood_clusters",typeDisplay:"Neighborhood Cluster"},{id:"profilePlaces",typeKey:"dc_attendance_primary",typeDisplay:"Elementary Attendance Zone"},{id:"profileTrans",typeKey:"dc_taz",typeDisplay:"Transportation Analysis Zone"},{id:"profilePolice",typeKey:"dc_psa",typeDisplay:"Police Service Area"}]}var self=this;this.dropkickOpts={width:"145px",change:function(){self.itemSelected(this)}}};CBProfileDropdowns.prototype.initializeAllDropdowns=function(){for(var i=0;i<this.allDropdowns.length;i++){var curDropdown=this.allDropdowns[i];this.initializeDropdown(curDropdown)}};CBProfileDropdowns.prototype.initializeDropdown=function(dropdownDetails){var dropdownId=dropdownDetails.id;var dropdown=$("#"+dropdownId);var locations=cbLocations[dropdownDetails.typeKey];var locationTypeDisplay=dropdownDetails.typeDisplay;if(dropdown.length<1||locations==null||locations.length<1){return}var defaultOption=$("<option />");if(locationTypeDisplay.match(/y$/)){var defaultOptionText=locationTypeDisplay;defaultOptionText=defaultOptionText.replace(/y$/,"ies")}else{var defaultOptionText=locationTypeDisplay+"s"}if(isWPVersion()){var defaultOptionText=locationTypeDisplay}defaultOption.attr({value:"NA",text:defaultOptionText,innerText:defaultOptionText});defaultOption.html(defaultOptionText);dropdown.append(defaultOption);for(var j=0;j<locations.length;j++){var curLocation=locations[j];var newOption=$("<option />");newOption.attr({value:curLocation.id,text:curLocation.name,innerText:curLocation.name});newOption.html(curLocation.name);dropdown.append(newOption)}rebuildDropkick(dropdownId,this.dropkickOpts)};CBProfileDropdowns.prototype.itemSelected=function(dropdown){var self=this;var dropdown=$(dropdown);var dropdownId=dropdown.attr("id");var isNeighborhood=dropdownId=="profileNeighborhoods";var bid=$(dropdown).val();var selPlace=function(){selectPlaceCB(bid,true,true);self.resetAllDropdowns(dropdownId)};if(bid!="NA"){var boo=this.hasCustomRegionBuilding;if(boo&&polycreator.isCBCustomRegionSet()){alerter.popup("You currently have a custom area on the map. Do you wish to clear this region?","No","Yes",function(){polycreator.removeCBRegion();selPlace()},function(){self.resetAllDropdowns();return})}else if(boo&&polycreator.isBuildingCBRegion()){alerter.popup("You are currently building a custom area on the map. Do you wish to abandon this region?","No","Yes",function(){polycreator.stopCBRegion();selPlace()},function(){self.resetAllDropdowns();return})}else{selPlace()}}};CBProfileDropdowns.prototype.resetAllDropdowns=function(skipDropdownId){for(var i=0;i<this.allDropdowns.length;i++){var curDropdownId=this.allDropdowns[i].id;if(skipDropdownId!=null&&skipDropdownId==curDropdownId){continue}selectDropkickItem(curDropdownId,"NA",this.dropkickOpts)}};CBProfileDropdowns.prototype.getProfileLocation=function(){for(var i=0;i<this.allDropdowns.length;i++){var curDropdownId=this.allDropdowns[i].id;var curDropdown=$("#"+curDropdownId);var curValue=curDropdown.val();if(curValue!="NA"){return{id:curValue,name:$("#"+curDropdownId+" option:selected").text()}}}return null};CBProfileDropdowns.prototype.collapseAllDropdowns=function(){for(var i=0;i<this.allDropdowns.length;i++){collapseDropkick(this.allDropdowns[i].id)}};CBReportPins=function(opts){this.elm=$("#reportPins");this.cube;this.pageSize=50;this.pages=1;this.pinCount=0;this.place=null;this.loader=$(document.createElement("img")).attr("src","/images/busy.gif").css({display:"none",position:"absolute",top:"50px",left:"170px"});this.datasetType;this.pinType;this.hidetitle=false;if(opts&&opts.hidetitle){this.hidetitle=true}};CBReportPins.prototype={load:function(placeName,datasetId,datasetType,datasetName,placeId,vertices,pinCount,pinType,placeTypeId,polysetid,bounds,filters,callback){noDownload=false;if(PEnvironment.pageName=="maps"){var arr=[136100];for(var i=0;i<arr.length;i++){if(datasetId==arr[i]){noDownload=true}}}var elems=this.elm.find("#pinOptions a.clone-button");if(noDownload){elems.hide()}else{elems.show();elems[0].style.display="block";elems[0].style.padding="12px";elems[0].onclick=function(){P.instances.rPins.downloadCSV()}}this.placeName=placeName;this.datasetId=datasetId;this.datasetName=datasetName;this.placeId=placeId;this.vertices=vertices;this.pinCount=pinCount;this.pages=Math.ceil(this.pinCount/this.pageSize);this.datasetType=datasetType;this.pinType=pinType;this.placeTypeId=placeTypeId;this.polysetid=polysetid;P.instances.pagePopUp.show();var self=this;this.elm.find(".pageNav").hide();this.currentPage=0;var label="";if(vertices!=""){var verts=[];vertices=vertices.split("),(");for(var i=0;i<vertices.length;i++){var tmpVert=vertices[i].split(",");tmpVert[0]=parseFloat(tmpVert[0].indexOf("(")==0?tmpVert[0].substr(1,tmpVert[0].length):tmpVert[0]);tmpVert[1]=parseFloat(tmpVert[1].indexOf(")")!=-1?tmpVert[1].substr(0,tmpVert[1].length-1):tmpVert[1]);verts[verts.length]=new PLatLng(tmpVert[0],tmpVert[1])}this.place=new PPolygon(verts)}else if(placeId){this.place=new PPlace(placeId);this.place.typeid=placeTypeId;label=placeName}else if(bounds){this.place=new PPolygon(bounds);label="Current Map View"}this.place.label=placeName;if(polysetid)this.place.polysetid=this.polysetid;label="Click Update List button to show current points on map.";if(!this.hidetitle){this.elm.find("#title").html(datasetName+": <span class='label'>"+label+"</span>")}if(this.pages>1){this.elm.find(".pageNav").show();this.createPageLinks()}this.overlayset=new POverlaySet(datasetId);this.overlayset.limit=this.pageSize;this.overlayset.offset=0;this.overlayset.type=datasetType;this.overlayset.pinType=this.pinType;this.overlayset.noCount=true;if(filters&&filters.length>0){this.overlayset.setFilters(filters)}this.place.getMarkersWithin(this.overlayset,function(markers){self.markers=markers;self.displayTable();self.show(callback);self.currentPage=0})},loadPradius:function(place,set,markers,filters,callback){noDownload=false;if(PEnvironment.pageName=="maps"){var arr=[136100];for(var i=0;i<arr.length;i++){if(datasetId==arr[i]){noDownload=true}}}var elems=this.elm.find("#pinOptions a.clone-button");if(noDownload){elems.hide()}else{elems.show();elems[0].style.display="block";elems[0].style.padding="12px";elems[0].onclick=function(){P.instances.rPins.downloadCSV()}}P.instances.pagePopUp.show();var self=this;this.elm.find(".pageNav").hide();this.currentPage=0;label="Click Update List button to show current points on map.";if(filters&&filters.length>0){this.overlayset.setFilters(filters)}place.getMarkersWithin(set,function(markers){self.markers=markers;self.displayTable();self.show(callback);self.currentPage=0})},displayTable:function(){var markers=this.markers;if(markers.length>0){var tableElem=$("<table />");tableElem.attr({id:"pinTable",cellpadding:1,cellspacing:1});tableElem.addClass("chartTable");tableElem.css("width","100%");var thead=$("<thead />");var trHead=$("<tr />");thead.append(trHead);var content="";var tableHeaders=new Array;var tableObject={};var markerPoints={};for(var i=0;i<markers.length;i++){var marker=markers[i];var markername="marker"+i;tableObject[markername]={};tableObject[markername].marker=marker;for(var j=0;j<marker.attributes.length;j++){var attribute=marker.attributes[j];if(jQuery.inArray(attribute.name,tableHeaders)==-1){trHead.append("<th>"+attribute.name+"</th>");tableHeaders.push(attribute.name)}var value="";if(isNumeric(attribute.value)&&attribute.unit){value+=PWebUtil.formatNumber(attribute.value,attribute.unit)}else{value+=attribute.value}tableObject[markername][attribute.name]={};tableObject[markername][attribute.name].value=value}}var tbody=$("<tbody />");for(var mname in tableObject){var tr=$("<tr />");tr[0].marker=tableObject[mname].marker;tr.click(function(){var marker=this.marker;var attributes=marker.attributes;var tabs=PMIdentificationPrinter.printAttributes(attributes,null,marker);map.openInfoWindowTabs(marker.getPoint(),tabs,null,null,P.constants.infoWindowTypeIdentify)});for(var j=0;j<tableHeaders.length;j++){var found=false;var column="";for(var aname in tableObject[mname]){if(tableHeaders[j]==aname){var found=true;column="<td>"+tableObject[mname][aname].value+"</td>"}}if(!found){column="<td class='empty'></td>"}tr.append(column)}tbody.append(tr)}tableElem.append(thead);tableElem.append(tbody);var div=$("<div />");div.addClass("scrollTableContainer");var arr=[127750,129150];if(markers.length>0){for(var i=0;i<arr.length;i++){if(markers[0].datasetID==arr[i]){div.addClass("temp-width-fix")}}}div.append(tableElem);this.elm.find("#tableContainer").html(div)}else{this.elm.find("#tableContainer").html("No pins available.")}},downloadCSV:function(){this.overlayset.format="csv";this.overlayset.offset=null;this.overlayset.limit=null;var self=this;this.place.getMarkersWithin(this.overlayset)},changePage:function(pageNum){if(pageNum==null)pageNum=this.pages-1;if(pageNum<this.pages&&pageNum>=0){this.currentPage=pageNum;this.createPageLinks();this.elm.find("#tableContainer").html("<br/><br/><br/><br/><br/><br/><br/><br/><br/><br/>");this.elm.find("#tableContainer").append(this.loader);this.overlayset.format="js";this.overlayset.offset=pageNum*this.pageSize;this.overlayset.limit=this.pageSize;var self=this;this.place.getMarkersWithin(this.overlayset,function(markers){self.markers=markers;self.currentPage=pageNum;self.displayTable();self.createPageLinks()})}},createPageLinks:function(){var currentPage=this.currentPage+1;var totalPages=this.pages;var pageNums=[];if(currentPage-1>1)pageNums.push(currentPage-1);if(currentPage>1)pageNums.push(currentPage);if(currentPage+1<totalPages)pageNums.push(currentPage+1);if(this.totalPages>20){var br=Math.ceil(totalPages/6);for(var i=1;i<6;i++){var num=br*i;if(num>currentPage+br/2)pageNums.push(num);else if(num<currentPage-br/2)pageNums.push(num)}}pageNums=pageNums.sort(function(a,b){return a-b});pageNums.unshift(1);if(pageNums[pageNums.length-1]!=totalPages)pageNums.push(totalPages);var pageLinks="";for(var i=0;i<pageNums.length;i++){if(pageNums[i]==currentPage)pageLinks+="<a class='selected'>"+pageNums[i]+"</a> ";else pageLinks+="<a onclick='P.instances.rPins.changePage("+(pageNums[i]-1)+")'>"+pageNums[i]+"</a> ";if(i!=pageNums.length-1&&(pageNums[i]>currentPage||pageNums[i]<currentPage-1))pageLinks+="..."}this.elm.find("#pageNums").html(pageLinks)},show:function(callback){cHeader=this.placeName;selectColumn();P.instances.pagePopUp.changeContent(this.elm,callback)},disableDownloadAndPrint:function(id,placeTypeId,placeId){var arr=[129600,130350];for(var i=0;i<arr.length;i++){if(id==arr[i]&&placeTypeId&&(placeTypeId==6||isCensusTractTypeId(placeTypeId))){return false}else if(arr[i]==id&&(placeTypeId==95||placeTypeId==0)){var bounds=null;if(placeTypeId==0){for(var j=0;j<custom_places.length;j++){if(custom_places[j].id==placeId){bounds=custom_places[j].getBounds();break}}}else{bounds=ppolygon.getBounds()}if(bounds!=null){if(map.setCenterBoundsAndGetZoomLevelByViewPort(bounds,1e3,600)>=11){return false}else{return true}}else{return false}}else if(arr[i]==id){return true}}return false}};CBTaxonomy=function(){this.typeNumeric=1;this.typeCategorical=2;this.tax={explore:{},match:{}}};CBTaxonomy.prototype.setMatchOverrides=function(){if(isCBVersion()){this.tax.match[1].children=[{name:"Commercial",ind:true,type:2,ids:[9901451],levels:[{name:"All Commercial",values:[1,1,0,0,0,0,0,0,0,0,0]},{name:"Commercial (Auto-Oriented)",values:[1,0,0,0,0,0,0,0,0,0,0]},{name:"Commercial Mixed-Use",values:[0,1,0,0,0,0,0,0,0,0,0]}],children:[]},{name:"Industrial",ind:true,type:2,ids:[9901451],levels:[{name:"All Industrial",values:[0,0,1,1,0,0,0,0,0,0,0]},{name:"Industrial (Light, Medium, Heavy, Port)",values:[0,0,1,0,0,0,0,0,0,0,0]},{name:"Industrial Mixed-Use",values:[0,0,0,1,0,0,0,0,0,0,0]}],children:[]},{name:"Residential",ind:true,type:2,ids:[9901451],levels:[{name:"All Residential",values:[0,0,0,0,1,1,1,1,1,0,0]},{name:"Residential Single-Family Attached",values:[0,0,0,0,1,0,0,0,0,0,0]},{name:"Residential Two-Family Attached",values:[0,0,0,0,0,1,0,0,0,0,0]},{name:"Residential Single-Family Detached",values:[0,0,0,0,0,0,1,0,0,0,0]},{name:"Residential Multi-Family",values:[0,0,0,0,0,0,0,1,0,0,0]},{name:"Residential Mixed-Use",values:[0,0,0,0,0,0,0,0,1,0,0]}],children:[]},{name:"Special Purpose",ind:true,type:2,ids:[9901451],levels:[{name:"Parks and Open Space",values:[0,0,0,0,0,0,0,0,0,1,0]},{name:"Airport, Insitutional, Entertainment, Stadium",values:[0,0,0,0,0,0,0,0,0,0,1]}],children:[]}];this.tax.match[2].children[0].levels=[{name:"Residential",values:[1,0,0,0,0,0,0,0,0]},{name:"Commercial",values:[0,1,0,0,0,0,0,0,0]},{name:"Industrial",values:[0,0,1,0,0,0,0,0,0]},{name:"Civic/Institution",values:[0,0,0,1,0,0,0,0,0]},{name:"Culture/Recreation",values:[0,0,0,0,1,0,0,0,0]},{name:"Park/Open Space",values:[0,0,0,0,0,1,0,0,0]},{name:"Transportation",values:[0,0,0,0,0,0,1,0,0]},{name:"Vacant or Other",values:[0,0,0,0,0,0,0,1,0]},{name:"Water",values:[0,0,0,0,0,0,0,0,1]}];this.tax.match[3].children[0].levels=[{name:"Keystone Innovation Zone",values:[1,0]},{name:"Not a Keystone Innovation Zone",values:[0,1]}];this.tax.match[3].children[1].levels=[{name:"ALL Keystone Opportunity Zones",values:[1,1,1,1,0]},{name:"Keystone Opportunity Zone (KOZ)",values:[1,0,0,0,0]},{name:"Keystone Opportunity Expansion Zone (KOEZ)",values:[0,1,0,0,0]},{name:"Keystone Opportunity Improvement Zone (KOIZ)",values:[0,0,1,0,0]},{name:"Strategic Development Area",values:[0,0,0,1,0]},{name:"Not a Keystone Opportunity Zone",values:[0,0,0,0,1]}];for(var i=0;i<this.tax.match[4].children.length;i++){var curInd=this.tax.match[4].children[i];curInd.levels=["Low Access","Moderate Access","High Access"]}this.tax.match[5].children[2].levels=[{name:"Household Diverse",values:[1,0]},{name:"Not Household Diverse",values:[0,1]}];this.tax.match[6].children[4].levels=[{name:"Ethnically Diverse",values:[1,0,0,0,0]},{name:"Asian Pacific Islander (>80%)",values:[0,1,0,0,0]},{name:"Hispanic (>80%)",values:[0,0,1,0,0]},{name:"Non-Hispanic Black (>80%)",values:[0,0,0,1,0]},{name:"Non-Hispanic White (>80%)",values:[0,0,0,0,1]}];this.tax.match[7].children[2].levels=[{name:"Economically Diverse",values:[1,0]},{name:"Not Economically Diverse",values:[0,1]}]}else if(isAWEduction()){this.tax.match[4].children[4].levels=[{name:"White",values:[1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{name:"African American",values:[0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{name:"Hispanic",values:[0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{name:"Asian",values:[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]}else if(isAWNeighborhood()){this.tax.match[2].children[4].levels=[{name:"White",values:[1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{name:"African American",values:[0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{name:"Hispanic",values:[0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]},{name:"Asian",values:[0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]}]}else if(isOPVersion()){this.tax.match[0].children[0].levels=[{name:"Stressed",values:[1,1,0,0,0,0,0]},{name:"Moderate",values:[0,0,1,1,1,0,0]},{name:"Strong",values:[0,0,0,0,0,1,1]}];for(var i=0;i<this.tax.match[3].children.length;i++){var curInd=this.tax.match[3].children[i];curInd.levels=["High Cost","Moderate Cost","Low Cost"]}}else if(isLLVersion()){cbTaxonomy.tax.match[0].children[0].levels=[{name:"Endangered",values:[1,0,0]},{name:"Threatened",values:[0,1,0]},{name:"No Critical Habitat",values:[0,0,1]}];cbTaxonomy.tax.match[0].children[1].levels=[{name:"Brownfields",values:[1,0]},{name:"No Brownfields",values:[0,1]}];cbTaxonomy.tax.match[1].children[0].levels=[{name:"Bridge(s) in Poor Condition",values:[1,0]},{name:"No Bridge(s) in Poor Condition",values:[0,1]}]}};var cbProfileDropdowns;var cbMatchPopup;var cbTaxonomy;var cbLocations;function loadCultureBlocks(){setCloneOptions();if(P.WKPrint.isPrintPage()===true){cb_checkContentLoaded()}if(P.CloneOptions.report_label){$(".generate-report-button").html("Generate "+P.CloneOptions.report_label.toLowerCase())}if(P.CloneOptions.include_map_boundaries){$(".map-options__container").show()}if(P.CloneOptions.show_download_ind_data){$(".legend--indicator__download-button").css("display","block")}session.removeAllRelevant();cbProfileDropdowns=new CBProfileDropdowns;cbMatchPopup=new CBMatchPopup;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=cbc&act=gl",dataType:"json",success:function(response){cbLocations=response.cbc;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=cbc&act=gt",dataType:"json",success:function(response){cbTaxonomy=new CBTaxonomy;cbTaxonomy.tax={};cbTaxonomy.tax.explore=response.cbc.explore;cbTaxonomy.tax.match=response.cbc.match;ajax.call({url:PEnvironment.dataServicesUrl+"?ty=data&t=tax&act=p",success:function(data){if(data!==undefined&&data.responseCode===200){P.instances.debug.log(P.Debug.DEBUG2,"Pin Taxonomy obtained");pinTaxonomy=new Taxonomy(data.tax.taxonomy,P.constants.TAXONOMY_TYPE_POINTS);var rootNodes=pinTaxonomy.getRootNodes();for(var i in rootNodes){var node=rootNodes[i];pincats[i]=node;pincats[i].pinsets=pinTaxonomy.getAllChildrenOfNodeId(node.node_id)}pincatsType="old"}else{alerter.popup("There was an error loading the taxonomy.")}if(cbTaxonomy.tax.match&&cbTaxonomy.tax.match.length>0){cbTaxonomy.setMatchOverrides()}setUpCultureBlocks();P.instances.map.mapOptions.loadMapOptionsFromSession()}})}})}})}function setCloneOptions(){P.CloneOptions={map_label:productProperty.getValue("cb_map_label"),report_label:productProperty.getValue("cb_report_label"),match_label:productProperty.getValue("cb_match_label"),map_welcome_title:productProperty.getValue("cb_map_welcome_title")||productProperty.getValue("cb_map_label"),report_welcome_title:productProperty.getValue("cb_report_welcome_title")||productProperty.getValue("cb_report_label"),match_welcome_title:productProperty.getValue("cb_match_welcome_title")||productProperty.getValue("cb_match_label"),map_welcome_button_label:productProperty.getValue("cb_map_welcome_button_label")||productProperty.getValue("cb_map_label"),report_welcome_button_label:productProperty.getValue("cb_report_welcome_button_label")||productProperty.getValue("cb_report_label"),match_welcome_button_label:productProperty.getValue("cb_match_welcome_button_label")||productProperty.getValue("cb_match_label"),color_ramp:productProperty.getValue("color_ramp"),include_explore:productProperty.getValue("cb_include_explore"),include_profile:productProperty.getValue("cb_include_profile"),include_match:productProperty.getValue("cb_include_match"),start_with_pop_up:productProperty.getValue("cb_start_with_pop_up"),analytics_color:productProperty.getValue("cb_analytics_color"),analytics_color_label:productProperty.getValue("cb_analytics_color_label"),custom_region_color:productProperty.getValue("cb_custom_region_color"),map_welcome_text:productProperty.getValue("cb_map_welcome_text"),report_welcome_text:productProperty.getValue("cb_report_welcome_text"),match_welcome_text:productProperty.getValue("cb_match_welcome_text"),report_file_name:productProperty.getValue("cb_report_file_name"),map_menu_text:productProperty.getValue("cb_map_menu_text"),report_menu_text:productProperty.getValue("cb_report_menu_text"),match_menu_text:productProperty.getValue("cb_match_menu_text"),report_boundaries_note:productProperty.getValue("cb_report_boundaries_note"),match_wizard_header:productProperty.getValue("cb_match_wizard_header"),match_wizard_text:productProperty.getValue("cb_match_wizard_text"),include_custom_region_feature:productProperty.getValue("cb_include_custom_region_feature"),include_map_boundaries:productProperty.getValue("cb_include_map_boundaries"),max_zoom:productProperty.getValue("max_zoom"),min_zoom:productProperty.getValue("min_zoom"),show_download_ind_data:productProperty.getValue("cb_show_download_ind_data"),boundary_color:productProperty.getValue("cb_boundary_color"),report_limit_boundary_id:productProperty.getValue("cb_report_limit_boundary_id"),button_color:productProperty.getValue("cb_button_color"),button_hover_color:productProperty.getValue("cb_button_hover_color"),search_string_addon:productProperty.getValue("cb_search_string_addon"),search_button_color:productProperty.getValue("cb_search_button_color"),search_button_hover_color:productProperty.getValue("cb_search_button_color_hover"),custom_font_color:productProperty.getValue("cb_custom_font_color"),source_link_constant:productProperty.getValue("cb_source_link_constant"),match_run_label:productProperty.getValue("cb_match_run_label"),report_latest_vintage_only:productProperty.getValue("cb_report_latest_vintage_only"),boundary_button_text:productProperty.getValue("cb_boundary_button_text")};if(P.CloneOptions.report_limit_boundary_id&&P.CloneOptions.report_limit_boundary_id.length>0){P.CloneOptions.report_limit_boundary_id=P.CloneOptions.report_limit_boundary_id[0]}var cloneStyles="";if(P.CloneOptions.custom_font_color){
cloneStyles+=".clone-custom-color, .clone-nav-tab.on, body.cb-clone .menu-column li.on { color: #"+P.CloneOptions.custom_font_color+" !important; }"+".clone-custom-button { background: #"+P.CloneOptions.custom_font_color+" !important; } "+".clone-custom-button:hover { background: #"+P.CloneOptions.custom_font_color+" !important; } "+".map-boundaries-menu__item .source a { color: #"+P.CloneOptions.custom_font_color+"} "}if(P.CloneOptions.button_color){cloneStyles+=".clone-nav-tab.on { border-color: #"+P.CloneOptions.button_color+" !important; } ";cloneStyles+=".search-form-container .location-search-form__focus { border: 1px solid #"+P.CloneOptions.button_color+" !important; } ";cloneStyles+=".search-form-container .data-search-form__focus { border: 1px solid #"+P.CloneOptions.button_color+" !important; } ";cloneStyles+=".share-container .tab.selected, .share-container .tab.selected .icon { color: #"+P.CloneOptions.button_color+" !important; } ";cloneStyles+=".share-container .tab.selected .icon path { fill: #"+P.CloneOptions.button_color+" !important; } ";cloneStyles+=".share-container .action-button { background: #"+P.CloneOptions.button_color+" !important; } "}if(P.CloneOptions.button_hover_color){cloneStyles+=".clone-button:hover { background-color: #"+P.CloneOptions.button_hover_color+" !important; }";cloneStyles+=".share-container .action-button:hover { background: #"+P.CloneOptions.button_hover_color+" !important; } "}if(P.CloneOptions.search_button_color){cloneStyles+=".search-form-holder .search-form button { background-color: #"+P.CloneOptions.search_button_color+" !important; }";cloneStyles+=".svg-search-submit path { fill: #"+P.CloneOptions.search_button_color+" !important; }"}if(P.CloneOptions.search_button_hover_color){cloneStyles+=".search-form-holder .search-form button:hover { background-color: #"+P.CloneOptions.search_button_hover_color+" !important; }"}$("<style>").text(cloneStyles).appendTo("head");if(P.CloneOptions.boundary_color){polycolor="#"+P.CloneOptions.boundary_color}}function setUpCultureBlocks(){var params=getUrlParams();if(P.WKPrint.isPrintPage()===true){$("head").append('<link rel="stylesheet" href="/cssPrint/culture_blocks.css" type="text/css" />')}session.checkUrl();mapsOnReadyCB();var nb=parseInt(session.get("nb"))||DEFAULT_NUMBREAKS;map.getLegend().setNumberOfBreaks(nb);var n=null;if(session.get("rmp")!=null){n=session.get("rmp")}else if(P.CloneOptions.color_ramp!=null){var ramp=colorRamps.getRampById(P.CloneOptions.color_ramp);if(ramp!=null){n=ramp.name}}if(n){map.getLegend().setColorRamp(colorRamps.getRampByName(n))}PEvent.addListener(map,"removeindicator",function(){$("#legend").css({top:"auto",left:"auto"});if(map.getInfoWindow()){map.closeInfoWindow()}});if(productProperty.exists("cb_boundary_button_text")){var text=productProperty.getValue("cb_boundary_button_text");$("#cb-content > div.nav-title-container > div.map-options__container > button").html(text);if(text.length>"Boundaries".length){var newwidth=72+(text.length-"Boundaries".length)*6;$("#cb-content > div.nav-title-container > div.map-options__container > button").width(newwidth)}}var types=map.cbtypes.types;var type=map.cbtypes.getTypeByProp("label",params["tt"]);if(type){map.cbtypes.selectType(type)}if(params["cp"]){polycreator.load(params["cp"],function(places){for(var i=0;i<places.length;i++){var place=places[i];place.fill=1;if(P.CloneOptions.custom_region_color){place.color="#"+P.CloneOptions.custom_region_color}polycreator.setUpPlaceAndPolylines(place,map,true)}})}if(params["o"]){var icons=params["icons"];if(icons){var sets=icons.split(";");map.storedSetIcons={};for(var i=0;i<sets.length;i++){var set=sets[i].split(":");map.storedSetIcons[set[0]]=PinIcons[set[1]]}}PEvent.addListener(map,"setoverlaysets",function(){var setids=params["o"].split(",");if(setids&&setids.length>0){for(var i=0;i<setids.length;i++){var labelset=params["o"+i];if(setids[i]==labelset){labelManager.showLabelSet(setids[i],"old");$("#label"+setids[i]).click()}}}if(params["iwtype"]&&params["iwtype"]=="identify"){showInfoWindowFromUrl(params)}});getOverlaySetsFromSession()}if(type==types.EX||type==types.PR){if(params["i"]){selectIndicatorsCB([params["i"]])}}else if(type==types.MA){$(".maptitlebox_holder").hide();if(params["msel"]){cbMatchPopup.setSelectedByUrl();cbMatchPopup.buildPopupContents();cbMatchPopup.runMatch(true)}}else if(type==types.PR){}if(P.WKPrint.isPrintPage()===true){setUpCultureBlocksPrint(params)}}function getProfileReportUrl(place){if(isCSIVersion()){var url="/files/csi/CSI_Report_"+place.id+".pdf";return url}var url="/report.html?";if(place.ctypeid){url+="areaType=custom&cpid="+place.id}else{url+="areaType=predefined&pid="+place.id}return url}function updateLegendsPositioning(){var cont=$("#map-legends-container");var height=cont.height();var p=$("#map").position();$("#map-legends-container").css({top:p.top,left:p.left+20})}function clearCultureBlocksMap(){P.instances.map.mapOptions.setToDefault();map.cbtypes.fullClearOfCurrentMap()}function screenGrabCultureBlocksPrint(){var element=document.createElement("ScreengrabElement");document.documentElement.appendChild(element);var evt=document.createEvent("Events");evt.initEvent("ScreengrabEvent",true,false);element.dispatchEvent(evt)}function printCultureBlocks(){var filename="";if(isCSIVersion()){filename="KnowYourNeighborhood"}else if(isWPVersion()){filename="Childcare "}else if(isAWVersion()){if(productProperty.getValue("name")=="ArtsWave_Neighborhood"){filename="Neighborhood Tool "}else{filename="Arts and Education Tool "}}else if(isLLVersion()){filename="Lincoln Institute of Land Policy "}else if(isCBVersion()){filename="CultureBlocks "}else if(isNCCVersion()){filename="Newark Childcare "}else if(isPassaicVersion()){filename="Passaic Childcare "}else if(isAtlantaChildCareVersion()){filename="Atlanta Childcare "}else if(isDCChildCareVersion()){filename="DC Childcare "}else if(isNCCVersion()){filename="Childcare "}P.instances.wkprint.setPrintCallback(handleNotificationPrint);if(PEnvironment.pageName=="report"){filename+="Report -";P.instances.wkprint.setFileName(filename,true);P.instances.wkprint.setOrientation(P.WKPrint.PORTRAIT);P.instances.wkprint.printThisPage()}else{var f=function(cb){filename+="Map -";P.instances.wkprint.setFileName(filename,true);var params=map.cbtypes.getLinkParams(cb);var u=location.protocol+"//"+location.host+location.pathname+params;P.instances.wkprint.setOrientation(P.WKPrint.LANDSCAPE);P.instances.wkprint.setUrl(u);P.instances.wkprint.print()};saveCustomBreaks(f)}}function setUpCultureBlocksPrint(params){$("body").addClass("print-page");map.cbtypes.inPrintMode=true;$(".legend--data-points").before($(".legend--indicator"));$(".legend--data-points").before($(".legend--analytics"))}function mapsOnReadyCB(){mapsPageLoaderCB();analyticsMapLoaderCB();var opts=P.CloneOptions;opts.map=map;if(!cbTaxonomy.tax.match||cbTaxonomy.tax.match.length==0){opts.include_match=false}map.cbtypes=new CBMapPageTypes(opts);cbProfileDropdowns.initializeAllDropdowns()}function selectIndicatorsCB(){var inds=arguments;var ind0=arguments[0];var fromlist=true;var indarr=[ind0];var selected=null;var defaultId=arguments[1];if(defaultId){var arr=ind0.split(",");for(var i=0;i<arr.length;i++){if(arr[i]==defaultId){selected=i}}}if(PEnvironment.pageName=="analytics"){var disableList=[];if(jQuery.inArray(ind0[0],disableList)>=0){allowSelect=false;unsupportedIndicator()}else{allowSelect=true;var legendIndex=legendMerger.addIndicator(_.first(indarr,3),selected,fromlist,this.prefLegend);session.put("m"+legendIndex+"i",ind0);updateTitle(0);if(typeof wiz!="undefined"&&wiz!=null)wiz.next();closeCubeWindow()}}else{session.put("i",ind0);widget.setIndicatorListByIds(indarr,selected,fromlist);closeCubeWindow()}}function createPlacesDivCB(candidatePlaces,searchString,cbProfileLocation){var places=[];if(searchString){for(var i=0;i<candidatePlaces.length;++i){if(candidatePlaces[i].getLabel().toLowerCase().indexOf(searchString.toLowerCase())==0){places.push(candidatePlaces[i])}}for(var i=0;i<candidatePlaces.length;++i){if(candidatePlaces[i].getLabel().toLowerCase().indexOf(searchString.toLowerCase())!=0){places.push(candidatePlaces[i])}}}else{places=candidatePlaces}var l=similarClicks.length;for(var i=0;i<l;i++)PEvent.removeListener(similarClicks[i]);similarClicks=[];html=document.createElement("div");html.className="similarresults";var title=document.createElement("div");title.innerHTML=places[0].getLabel()+" ("+places[0].getType().getName()+")";html.appendChild(title);if(cbProfileLocation||P.instances.map.cbtypes.getCurrentType().name=="PR"){var attachGetProfile=false;if(P.CloneOptions.report_latest_vintage_only){var allDefs=boundaryMatrix.getAllBoundaryDefinitionsForTypeId(places[0].getType().getId());if(allDefs.length>0){allDefs=_.sortBy(allDefs,"displayYear");if(places[0].getDefinitionId()==allDefs[allDefs.length-1].boundaryDefinitionId){attachGetProfile=true}}}else{attachGetProfile=true}if(attachGetProfile){var buttonContainer=getCBGetProfileButton(places[0],cbProfileLocation);if(buttonContainer){html.appendChild(buttonContainer)}}}if(places.length>1){var similar=document.createElement("div");similar.innerHTML="<br><b>Similar Results:</b><br>";html.appendChild(similar);for(var i=1;i<places.length;i++){var placelink=document.createElement("span");placelink.className="similarlinks";placelink.style.color="#5D83D0";placelink.textDecoration="underline";placelink.innerHTML=places[i].getLabel()+getState(places[i])+" ("+places[i].getType().getName()+")";placelink.place=places[i];similarClicks.push(PEvent.addListener(placelink,"mouseup",function(){selectLoadedPlace(this.place,true)}));html.appendChild(placelink);html.appendChild(document.createElement("br"))}}return html}function getCBGetProfileButton(place,cbProfileLocation){if(!P.CloneOptions.include_profile||!place){return null}var buttonContainer=document.createElement("div");buttonContainer.className="infoBubbleGetProfile";var button=document.createElement("a");button.id="getProfileButton";button.className="on clone-custom-button";button.innerHTML="Get "+P.CloneOptions.report_label;if(isCSIVersion()){var arr=[3578951,3578963,3578977,3579088,3579092,3579012];var noReport=false;for(var i=0;i<arr.length;i++){if(arr[i]==place.id){noReport=true;var f=function(){var t="No Neighborhood Report Card available at this time.  The neighborhood selected has insufficient data";alerter.popup(t,"OK")};$(button).click(f)}}if(noReport){buttonContainer.appendChild(button);return buttonContainer}}if(isAtlantaChildCareVersion()){var type=place.getType();var addButton=true;var arr=[PPlaceType.CB_ZONING,PPlaceType.CB_KOZ,PPlaceType.CB_KIZ,PPlaceType.CB_LANDUSE];for(var i=0;i<arr.length;i++){if(type==arr[i]){addButton=false}}if(addButton){if(P.CloneOptions.report_limit_boundary_id){$(buttonContainer).css({visibility:"hidden"});buttonContainer.appendChild(button);place.getAggregates(PPlaceType.COUNTY,2,null,function(counties){var atlantaCounties=[100098,100089,100640,100595,100137];var allowReport=true;if(P.CloneOptions.report_limit_boundary_id&&counties.length>1){for(i in counties){var hasMatch=false;var aCounty=counties[i];for(j in atlantaCounties){var atlantacounty=atlantaCounties[j];if(aCounty.getID()==atlantacounty){hasMatch=true;break}}if(!hasMatch){allowReport=false;break}}}if(allowReport){$(buttonContainer).css({visibility:"visible"});button.target="_blank";button.href=getProfileReportUrl(place)}else{$(buttonContainer).css({visibility:"hidden"});$(button).click(notInAtlantaAlert())}})}else{button.target="_blank";button.href=getProfileReportUrl(place);buttonContainer.appendChild(button)}return buttonContainer}}if(cbProfileLocation){button.target="_blank";button.href=getProfileReportUrl(place);buttonContainer.appendChild(button)}else if(isNCCVersion()){var type=place.getType();var addButton=true;var arr=[PPlaceType.CB_ZONING,PPlaceType.CB_KOZ,PPlaceType.CB_KIZ,PPlaceType.CB_LANDUSE];for(var i=0;i<arr.length;i++){if(type==arr[i]){addButton=false}}if(addButton){if(P.CloneOptions.report_limit_boundary_id){$(buttonContainer).css({visibility:"hidden"});buttonContainer.appendChild(button);place.getAggregates(PPlaceType.COUNTY,2,null,function(counties){});place.getPlacesContaining(PPlaceType.CITY,2,null,function(cities){var allowReport=false;if(cities.length==1){if(cities[0].id==P.CloneOptions.report_limit_boundary_id){allowReport=true}}if(allowReport){button.target="_blank";button.href=getProfileReportUrl(place)}else{$(button).click(notInNewarkAlert)}$(buttonContainer).css({visibility:"visible"})},100)}else{button.target="_blank";button.href=getProfileReportUrl(place);buttonContainer.appendChild(button)}}}else if(!isCSIVersion()){var type=place.getType();var addButton=true;var arr=[PPlaceType.CB_ZONING,PPlaceType.CB_KOZ,PPlaceType.CB_KIZ,PPlaceType.CB_LANDUSE];for(var i=0;i<arr.length;i++){if(type==arr[i]){addButton=false}}if(addButton){if(P.CloneOptions.report_limit_boundary_id){$(buttonContainer).css({visibility:"hidden"});buttonContainer.appendChild(button);place.getAggregates(PPlaceType.COUNTY,2,null,function(counties){if(counties.length==1&&counties[0].id==P.CloneOptions.report_limit_boundary_id){button.target="_blank";button.href=getProfileReportUrl(place)}else{$(button).click(notInPhiladelphiaAlert)}$(buttonContainer).css({visibility:"visible"})})}else{button.target="_blank";button.href=getProfileReportUrl(place);buttonContainer.appendChild(button)}}}return buttonContainer}function selectPlaceCB(geo_boundary_id,overrideZoomWarning,cbProfileLocation,cbHideMapBoundary){if(allowSelect!=false){placeLoader.load([geo_boundary_id],function(place){if(place.length>0){selectLoadedPlaceCB(place[0],overrideZoomWarning,cbProfileLocation,cbHideMapBoundary)}})}}function selectLoadedPlaceCB(place,overrideZoomWarning,cbProfileLocation,cbHideMapBoundary){if(allowSelect!=false){var geo_boundary_id=place.getID();if(PEnvironment.pageName=="tables"){if(window.chart){addPlaceType(geo_boundary_id);session.put("p",geo_boundary_id)}}else if(PEnvironment.pageName=="citi-reports"){addPlaceToCitiMap([place])}else{if(window.map){if(PEnvironment.pageName=="widget"&&textOnlyIsOn){textOnlyLoadPlace([place])}var curZoom=map.getZoom();if(!overrideZoomWarning){widget.refresh();var text="This data layer is specific to <b>"+place.getLabel()+", "+place.getState()+"</b>.<br /><br />Do you wish to recenter the map over this location, or remain at the current position at the current zoom level?";var yes=function(){var html=createPlacesDivCB([place],null,cbProfileLocation);addMarkerWindow(html,place,null,null,cbHideMapBoundary);session.put("p",geo_boundary_id)};alerter.popup(text,"Stay","Recenter",yes)}else{var html=createPlacesDivCB([place],null,cbProfileLocation);addMarkerWindow(html,place,null,null,cbHideMapBoundary);session.put("p",geo_boundary_id)}if(!cbProfileLocation){cbProfileDropdowns.resetAllDropdowns()}}}}}function clearMapDataCB(){var indid=map.getIndicator().id;$("#"+indid).removeClass("on");widget.clear();map.removeIndicator()}function getSiteListHtmlCB(set,place){var html='<div id="sites-list">'+'<div id="tableContainer" class="table-container">'+'<div id="chartContainer" class="chartContainer">'+'<div id="popup" class="popup alertList">'+'<div id="reportPins" class="reportPlaces">'+'<div class="title" align="left" id="title"></div>'+'<div id="tableContainer"><span style="color:#ccc;font-style:italic">Loading...</span></div>'+'<div class="pageNav" onselectstart="return false;" style="display:block;">'+'<div class="pageLinks" onclick="P.instances.rPins.changePage(0);">'+'<div class="button first"></div>'+'<div class="flt">First</div>'+"</div>"+'<div class="pageLinks" onclick="P.instances.rPins.changePage(P.instances.rPins.currentPage-1);">'+'<div class="button prev"></div>'+'<div class="flt">Prev</div>'+"</div>"+'<div class="flt">Page</div>'+'<div class="pageLinks" id="pageNums"></div>'+'<div class="pageLinks" onclick="P.instances.rPins.changePage(P.instances.rPins.currentPage+1);">'+'<div class="flt">Next</div>'+'<div class="button next"></div>'+"</div>"+'<div class="pageLinks" onclick="P.instances.rPins.changePage();">'+'<div class="flt">Last</div>'+'<div class="button last"></div>'+"</div>"+"</div>"+'<div class="buttons noPrint" id="pinOptions">'+'<a class="clone-button" onclick="P.instances.rPins.downloadCSV()"><span>Export to Excel</span></a>'+"</div>"+"</div>"+"</div>"+"</div>"+"</div>"+"</div>";return html}function addDetailsButtonCB(){$("#morelink").show();if($("#morelink").hasClass("on")){$("#morelink").html("close")}else{$("#morelink").html("details")}}function updateDetailsButtonCB(isOn){if(isOn){$("#morelink").html("close")}else{$("#morelink").html("details")}}function isCBVersion(){return productProperty.getValue("site_prefix")=="cultureblocks"}function isCSIVersion(){return productProperty.getValue("site_prefix")=="csi"}function isWPVersion(){return productProperty.getValue("site_prefix")=="childcaremap"}function isLLVersion(){return productProperty.getValue("site_prefix")=="placedatabase"}function isAWVersion(){return isAWNeighborhood()||isAWEduction()}function isPassaicVersion(){return productProperty.getValue("site_prefix")=="passaiccountychildcare"}function isAWEduction(){return productProperty.getValue("site_prefix")=="artswaveatlas-artseducationtool"}function isAWNeighborhood(){return productProperty.getValue("site_prefix")=="artswaveatlas-neighborhoodtool"}function isAtlantaChildCareVersion(){return productProperty.getValue("site_prefix")=="atlantachildcaremap"}function isCSIorWPVersion(){return isCSIVersion()||isWPVersion()}function isCBClone(){return PEnvironment.isClone}function isNCCVersion(){return productProperty.getValue("site_prefix")=="newarkchildcaremap"}function isOPVersion(){return productProperty.getValue("site_prefix")=="opportunity"}function isDCChildCareVersion(){return productProperty.getValue("site_prefix")=="dcchildcare"}function setUpNeighborhoodLayerCB(){var bounds=pMapLayer.PHILA_NHOOD_BOUNDS;var labels=pMapLayer.PHILA_NHOOD_LABELS;PMapType.DEFAULT.addMapLayer(bounds,13);PMapType.DEFAULT.addMapLayer(labels)}function toggleMapLayerCB(elem,l){var layer=pMapLayer[l.name]||pMapLayer[l.constant];var labels=pMapLayer.mapLayerLabels[l.name]||pMapLayer.mapLayerLabels[l.constant];if(elem.checked){layer.on();if(labels){labels.on()}layer.onFromMapBoundaries=true;labels.onFromMapBoundaries=true}else{layer.off();if(labels){labels.off()}}}function toggleNeighborhoodMapLayerCSI(elem){if(elem.checked){pMapLayer.PHILA_NHOOD_BOUNDS.on();pMapLayer.PHILA_NHOOD_LABELS.on()}else{pMapLayer.PHILA_NHOOD_BOUNDS.off();pMapLayer.PHILA_NHOOD_LABELS.off()}}function notInPhiladelphiaAlert(){var text="Reports are only available within Philadelphia.";alerter.popup(text,null,null,"OK")}function notInNewarkAlert(){var text="Reports are only available within Newark.";var alerter=new PAlerter;alerter.popup(text,null,null,"OK")}function notInAtlantaAlert(){var text="Reports are only available within the 5 County Atlanta Metro area (Clayton, Cobb, DeKalb, Fulton, and Gwinnett Counties).";var alerter=new PAlerter;alerter.popup(text,null,null,"OK")}function toggleIndicatorDescriptionCB(){var more=document.getElementById("moretitle");var morelink=document.getElementById("morelink");if(!$(morelink).hasClass("on")){var ind=map.getIndicator();more.innerHTML=ind.getDescription();var sources=ind.getSources();if(P.CloneOptions.source_link_constant){more.innerHTML+=" <a class='dataLink' target='_blank' href='"+P.CloneOptions.source_link_constant+"'>(see data directory)</a>"}else if(sources.length>1){more.innerHTML+=" (See data directory for "+ind.getSourceList(true)+".)"}else if(sources.length==1){var sourceURL=ind.getSourceURL(sources[0]);if(sourceURL!=null){more.innerHTML+=" <a class='dataLink' target='_blank' href='"+sourceURL+"'>(see data directory)</a>"}}jQuery("#moretitle").show(200);jQuery("#moretitle").fadeIn(200);updateDetailsButton(true)}else{jQuery("#moretitle").hide(200);updateDetailsButton()}$(morelink).toggleClass("on")}function matchMenuLegendUpdate(){var $legTitles=$(".legend.legend--analytics").find(".legend__title");var $menuTitles=$(".match-layer-selected-container-expanded");$menuTitles.each(function(i){$(this).html($($legTitles[i]).clone(true,true));$(this).find(".select-layer").addClass("clone-custom-button")})}function checkValueForNull(val){if(val==null||val=="N/A"){return 0}else{return val}}function getCloneAttribute(a){return P.CloneOptions[a]}function isCustomRegionOnForClones(){var v=false;var c=$(".custom-location-modal-container");if(c.find(".modal:visible").length>0){v=true}return v}function cb_restoreElementStatus(){$("div.report-download-button").hide();$("body").css("background-color","white");if(PEnvironment.pageName=="maps"){var tmp=$(".content__header__additional-info__content p").html();if(tmp.length>400){$("body.cb-clone > div.top-container").css("min-height","125px");$("body.cb-clone #map").height("690px");$("body.cb-clone .map-and-legends").height("690px");$("body.cb-clone #cb-content .map").css("min-height",0);$("body.cb-clone #toolmap-copyrights").css("margin-top","10px")}}else if(PEnvironment.pageName=="report"){$("body.cb-clone div.top-container").remove()}}function cb_checkContentLoaded(){if(!(P.WKPrint.isPrintPage()===true)){return}if(cb_isContentLoaded()){if(typeof cb_restoreElementStatus=="function"){try{cb_restoreElementStatus()}catch(e){console.log(e)}}}else{setTimeout(function(){cb_checkContentLoaded()},1e3)}}function cb_isContentLoaded(){if(PEnvironment.pageName=="report"){if(isAWVersion()){var mapimagecount=$("#merged").find("img").length;var chart1count=$("#chart1").find("canvas").length;var chart2count=$("#chart2").find("canvas").length;var chart3count=$("#chart3").find("canvas").length;var chart4count=$("#chart4").find("canvas").length;if(mapimagecount>=20&&chart1count>=1&&chart2count>=1&&chart3count>=1&&chart4count>=1){return true}}else if(isWPVersion()){var mapimagecount=$("#merged").find("img").length;var chart1count=$("#wp-childcare-pie1").find("canvas").length;var chart2count=$("#wp-childcare-pie2").find("canvas").length;var chart3count=$("#age-chart").find("canvas").length;if(mapimagecount>=20&&chart1count>=1&&chart2count>=1&&chart3count>=1){return true}}else if(isCBVersion()){var mapimagecount=$("#merged").find("img").length;var chart1count=$("#chart1").find("canvas").length;var chart2count=$("#chart2").find("canvas").length;var chart3count=$("#chart3").find("canvas").length;var chart4count=$("#chart4").find("canvas").length;if(mapimagecount>=20&&chart1count>=1&&chart2count>=1&&chart3count>=1&&chart4count>=1){return true}}else if(isNCCVersion()){var mapimagecount=$("#merged").find("img").length;var chart1count=$("#nwk-childcare-pie1").find("canvas").length;var chart2count=$("#nwk-childcare-pie2").find("canvas").length;var agechartcount=$("#age-chart").find("canvas").length;if(mapimagecount>=20&&chart1count>=1&&chart2count>=1&&agechartcount>=1){return true}}else if(isPassaicVersion()){var mapimagecount=$("#merged").find("img").length;var chart1count=$("#atl-childcare-pie1").find("canvas").length;var chart2count=$("#atl-childcare-pie2").find("canvas").length;var chart3count=$("#atl-childcare-pie3").find("canvas").length;var chart4count=$("#pas-childcare-pie4").find("canvas").length;if(mapimagecount>=20&&chart1count>=1&&chart2count>=1&&chart3count>=1&&chart4count>=1){return true}}else if(isAtlantaChildCareVersion()){var mapimagecount=$("#merged").find("img").length;var chart1count=$("#pas-childcare-pie1").find("canvas").length;var chart2count=$("#pas-childcare-pie2").find("canvas").length;var chart3count=$("#pas-childcare-pie3").find("canvas").length;if(mapimagecount>=20&&chart1count>=1&&chart2count>=1&&chart3count>=1){return true}}else{}}else if(PEnvironment.pageName=="maps"){if(isWPVersion()||isCBVersion()||isAWVersion()){var mapimagecount=$("#merged").find("img").length;if(mapimagecount>=48){return true}}else{var mapimagecount=$("#merged").find("img").length;if(mapimagecount>=30){return true}}}else if(PEnvironment.pageName=="analytics"){if(isCBVersion()||isAWVersion()){var mapimagecount=$("#merged").find("img").length;if($("body.cb-clone .nav-title-container").width()>=1900){if(mapimagecount>=80){return true}}else{if(mapimagecount>=40){return true}}}else{var mapimagecount=$("#merged").find("img").length;if(mapimagecount>=40){return true}}}return false}function showCloneCustomRegionInfoBubble(point){var $button=$(".generate-report-button").first().clone(true);var $d=$("<div />");$d.append("<br />");$d.append($button);P.instances.map.openInfoWindow(point,$d[0])}function shareCloneMap(){genericAlertDialog({template:this.template,action:"share"})}function mapsPageLoaderCB(){var slideComplete={complete:function(){$(window).resize()}};function resetMap(){P.instances.map.mapOptions.setToDefault();P.instances.map.getLegend().setNumberOfBreaks(DEFAULT_NUMBREAKS);if(widget){widget.clear()}clearLocation();if(polyCreator){polyCreator.reset();if(polyCreator.dropdown){polyCreator.dropdown.reset()}if(polyCreator.isBuildOn()){toggleCustomRegion()}}P.instances.map.clearOverlays();P.instances.map.clearOverlaySets();if(datasetSearch!=null){datasetSearch.reset()}if(P.instances.map.getInfoWindow()){P.instances.map.closeInfoWindow()}session.remove("curZoom");session.remove("curLat");session.remove("curLng");session.removeAllRelevant();P.constants.initialLoad=true;var opts=P.CloneOptions;P.instances.map.setCenter(new PLatLng(getDefaultMapLat(),getDefaultMapLng()),getDefaultMapZoom());resizeMapContainer();$window.trigger(P.events.MAP_RESET)}function resizeMapContainer(){$mapContainer.css("height",$window.height()-$mapContainer.offset().top-$(".content__footer").height());P.instances.map.kamap.resize();if(P.instances.map!==undefined&&P.instances.map.kamap!==undefined){if(P.constants.initialLoad==true){P.constants.initialLoad=false;var opts=P.CloneOptions;initializeMapLocation(opts)}}trfLegendBreaks.adjustMaxHeight();$window.trigger(P.events.MAP_RESIZED)}function initializeGlobals(){if(productProperty.exists("min_zoom")){P_SCALES_DEFAULT=P_SCALES_NORMAL.slice(0,productProperty.getValue("min_zoom"));PMapType.DEFAULT.setScales(P_SCALES_DEFAULT)}if(productProperty.exists("max_zoom")){P_SCALES_DEFAULT=P_SCALES_NORMAL.slice(P_SCALES_NORMAL.length-productProperty.getValue("max_zoom"),P_SCALES_NORMAL.length);PMapType.DEFAULT.setScales(P_SCALES_DEFAULT)}var zoomOffset=PMapType.DEFAULT.getAbsoluteZooms().length-PMapType.DEFAULT.getScales().length;labelManager=new PLabelManager({zoomOffset:zoomOffset});P.instances.wkprint.setOrientation(P.WKPrint.LANDSCAPE);map=new PMap(document.getElementById("map"));map.getLegend().setNumberOfBreaks(DEFAULT_NUMBREAKS);P.instances.map.mapOptions=new TrfMapBoundaries($(".map-boundaries-menu"));P.instances.map.addControl(new PLargeMapControl);P.instances.map.enableDoubleClickZoom();P.instances.map.enableScrollWheelZoom();P.instances.map.disableKeyboard();map.sid=PEnvironment.productId;$("#map").append($("#working_spinner"));printTemplate="PolicyMapMapPage";pmToolbar=new Toolbar;pmToolbar.disable("download","(Coming Soon)")}function updateMapTitleAndLegendHeader(indicator){if(indicator&&typeof indicator==="object"){var label=indicator.getFullLabel();var more=indicator.getDescription();var sources=indicator.getSources();$mapTitle.find(".title").text(label);$indicatorLegend.find(".legend__title__content").text(indicator.displayName);$indicatorLegend.find(".legend__title").show();$indicatorLegend.find(".legend__title__source").show();if(sources.length>1){more+=" (See data directory for "+indicator.getSourceList(true)+".)"}else if(sources.length===1){var sourceURL=indicator.getSourceURL(sources[0]);if(sourceURL!==null){more+=" <a class='dataLink' target='_blank' href='"+sourceURL+"'>(see data directory)</a>"}if(!sources[0].display||!sources[0].name){$indicatorLegend.find(".legend__title__source").hide()}}$(".content__header__additional-info__content p").html(more);$mapTitle.slideDown(slideComplete)}else{hideContentHeader()}if(P.WKPrint.isPrintPage()===true){var $desc=$(".content__header__additional-info__content");if($desc.length>0){$desc.show();if(PEnvironment.pageName=="maps"){$("div.header-opts").hide();var title=$("div.title").first().html();$("div.nav-title-container").hide();var $logo=$(".top-container .logo");var t='<div id="titleprint">'+title+"</div>";if($logo.length){$logo.after(t)}else{$(".top-container").addClass("no-logo");$(".top-container").prepend(t)}$desc.insertAfter($("#titleprint"));if($("div.search-form-container").length){$("div.search-form-container").hide()}}else{$desc.insertAfter($desc.parent())}}}}function updateMapPosition(indicator){var center,zoom;if(session.get("place")&&session.get("lng")&&session.get("lat")&&session.get("zoom")){center=new PLatLng(session.get("lat"),session.get("lng"));zoom=session.get("zoom")}else{center=P.instances.map.getCenter();zoom=P.instances.map.getZoom()}var mo=P.instances.map.mapOptions;if(mo){mo.setShowCurrentElement();if(mo.isCurrentOn()){mo.showLayerForCurrentView()}}mapstates.add(new PMapState(center,zoom,indicator,null,mapstates.currentplace,session.get("place")),prevmaps)}function initializeLegend(){indicatorLegend=widget=new PTRFIndicatorLegend(map,P.instances.map.getLegend(),{enableToggle:true,enableShade:true,enableBreaks:true});indicatorBreaks=indicatorLegend.getIndicatorBreaks();indToggle=indicatorLegend.getIndicatorToggle();legendContainer=new PLegendContainer($indicatorLegend);indicatorLegend.addListener("refresh",legendContainer.show,legendContainer);indicatorLegend.addListener("clear",legendContainer.hide,legendContainer);indicatorLegend.addListener("changed",updateMapTitleAndLegendHeader);trfLegendIndicators=new TrfLegendIndicators($indicatorLegend);indToggle.addListener("refresh",trfLegendIndicators.refresh,trfLegendIndicators);indToggle.addListener("clear",trfLegendIndicators.clear,trfLegendIndicators);trfLegendBreaks=new TrfLegendBreaks($(".legend__breakdown"),$("#legend__shading__ranges"));indicatorBreaks.addListener("refresh",trfLegendBreaks.refresh,trfLegendBreaks);indicatorBreaks.addListener("clear",trfLegendBreaks.clear,trfLegendBreaks);trfLegendShadeBy=new TrfLegendShadeBy($("#legend__shading__shaded-by"),$(".legend__title__source__content"),$("#legend__shading__ranges"));indicatorShade=indicatorLegend.getIndicatorShade();indicatorShade.addListener("refresh",trfLegendShadeBy.update,trfLegendShadeBy);indicatorShade.addListener("clear",trfLegendShadeBy.clear,trfLegendShadeBy);trfLegendShadeBy.addListener("change",indicatorShade.changeShade,indicatorShade);legendContainer.init();map.addListener("setindicator",function(indicator){if(indicator.hasBubbleOptions()){indicator.loadBubbleIndicators()}updateLegendPositionOnMap();P.instances.map.getLegend().clearStoredScale();if(indicator.breakid==P_BREAKTYPE_EXACT_VALUE_ID||indicator.breakid==P_BREAKTYPE_EXACT_VALUE_CUSTOM_ID){trfLegendBreaks.disableColorEditToggle()}else{trfLegendBreaks.enableColorEditToggle();trfLegendBreaks.enableRangesEditToggle()}})}function intializeCustomRegions(){polygonOptions=new PPolyCreatorOptions;polygonOptions.poly.weight=4;polygonOptions.poly.opacity=.9;var c=null;if(P.CloneOptions.custom_region_color){var c="#"+P.CloneOptions.custom_region_color}polygonOptions.poly.color=c;polygonOptions.poly.fill=c;polygonOptions.line.color=c;polyCreator=polycreator=new PPolyCreator(polygonOptions);polyCreator.boundaryWidget=new PPolyCreatorBoundaryWidget(polyCreator);polyCreator.circleWidget=new PPolyCreatorCircleWidgetCB(polyCreator,$(".radius-modal"));polyCreator.assembleInfoWidget=new PPolyCreatorAssembleInfoWidget(polyCreator);polyCreator.drawWidget=new PPolyCreatorDrawWidgetCB(polyCreator,$(".draw-modal"))}P.constants.initialLoad=true;var $mapContainer=$("#map");var $window=$(window);var $indicatorLegend=$(".legend--indicator");var $mapHeaderToggle=$(".content__header__additional-info__toggle");var $mapTitle=$(".content__header");var indicatorLegend
;var indicatorBreaks;var indToggle;var legendContainer;var trfLegendIndicators;var trfLegendBreaks;var trfLegendShadeBy;var indicatorShade;var debug=new P.Debug;debug.override("MPL");var polygonOptions;var polyCreator;var trfCustomRegions;var dataPointsLegend;var searchOptions={noDataSearch:true};initializeSearchForm(searchOptions);replaceSVGs(".svg-search-submit");initializeGlobals();dataPointsLegend=new TrfDataPointsLegend($("#data-points-legend"),map);initializeLegend();resizeMapContainer();setLegendScrollWheelHoverEvents();intializeCustomRegions();$window.resize(resizeMapContainer);$window.on(P.events.MAP_CHECK_RESIZE,resizeMapContainer);setDraggableForCloneLegends();$mapHeaderToggle.click(toggleMapTitleAdditionalInfo);$(".content__header .title").click(toggleMapTitleAdditionalInfo);function toggleMapTitleAdditionalInfo(){if($mapHeaderToggle.hasClass("is-maximized")){$mapHeaderToggle.removeClass("is-maximized");$(".content__header__additional-info__content").slideUp()}else{$mapHeaderToggle.addClass("is-maximized");$(".content__header__additional-info__content").slideDown()}}$(".content__header__additional-info__close").click(function(){$mapHeaderToggle.removeClass("is-maximized");$(".content__header__additional-info__content").slideUp()});$(".legend__indicators select").chosen({disable_search:true,width:"142px"});$(".content__header__close-icon").click(function(){clearMapData();session.remove("i")});$(".map-options__reset").click(resetMapAlert);$(".map-options__clear-location").click(function(event){event.preventDefault();clearLocationAlert()});$(map).bind("dragend",function(){$(".content__breadcrumbs").html("stuff")});widget.addListener("clear",hideContentHeader,this);PEvent.addListener(map,"click",function(overlay,point){debug.log(P.Debug.DEBUG,point);PMIdentificationModule.clickHandler(overlay,point)});PEvent.addListener(map,"dblclick",function(){P.instances.map.cancelIdentify=true;P.instances.map.closeInfoWindow()});PEvent.addListener(polyCreator,"addpoly",function(points){polycreator.finishCBRegion(points[0])});PEvent.addListener(polyCreator,"savepoly",function(places){polyCreator.addSavedPoly(places)});PEvent.addListener(map,"setindicator",function(){var indicator=P.instances.map.getIndicator();updateMapTitleAndLegendHeader(indicator);updateMapPosition(indicator);$window.resize()});PEvent.addListener(map,"removeindicator",function(){updateLegendPositionOnMap();$(".content__header").hide("slow")});function hideContentHeader(){$(".content__header").slideUp(slideComplete)}PEvent.addListener(P.instances.map,"moveend",function(){session.put("curLat",P.instances.map.getCenter().lat());session.put("curLng",P.instances.map.getCenter().lng());session.put("curZoom",P.instances.map.getZoom());labelManager.updateMapLabels();navteqCounter()});PEvent.addListener(P.instances.map,"zoomend",function(){session.put("curZoom",P.instances.map.getZoom());var legend=P.instances.map.getLegend();legend.clearStoredScale();if(legend.boundaryTypeIsLocked()){if(!legend.isValidBoundaryType(P.instances.map.getLegend().getBoundaryType())){legend.unlockBoundaryType()}}P.instances.map.mapOptions.populate();if(P.instances.map.getLegend().getBoundaryType()){widget.getIndicatorShade().setOldBoundaryTypeId(P.instances.map.getLegend().getBoundaryType().id)}if(widget.legend.getBoundaryType()&&widget.getIndicatorShade().getOldBoundaryTypeId()!=widget.legend.getBoundaryType().id){widget.getIndicatorShade().setOldBoundaryTypeId(widget.legend.getBoundaryType().id)}widget.refresh();P.instances.map.refresh();var tmpLeg;for(var i=0;tmpLeg=legendMerger.getLegend(i);i++){var leg=tmpLeg.legend;if(leg.getBoundaryType()&&tmpLeg.getIndicatorShade().getOldBoundaryTypeId()!=leg.getBoundaryType().id){tmpLeg.getIndicatorShade().setOldBoundaryTypeId(leg.getBoundaryType().id)}}if(PEnvironment.pageName=="analytics"){mapRefreshed()}});$(".map-options__map-boundaries__current-overlays-toggle").click(function(event){event.preventDefault();mapOptions(this,true)});function addOverlaySetFiltersFromSession(overlaySet){if(overlaySet!=null){var filters=session.getFilters(overlaySet);if(filters){if(filters[0]&&filters[0].values[0]=="COLORCODE"){var ftrs=[];var displayfilters=overlaySet.displayfiltergroups[filters[0].name];var m=displayfilters.length;for(var j=0;j<m;j++){if(displayfilters[j].values[0]!="COLORCODE")ftrs.push(displayfilters[j])}overlaySet.setFiltersByIcons(ftrs,overlaySet.colorcodes);overlaySet.filtergroups[filters[0].name]=[];overlaySet.filtergroups[filters[0].name].push(filters[0])}else overlaySet.setFilters(filters)}for(var i=0;i<overlaySet.children.length;i++){addOverlaySetFiltersFromSession(overlaySet.children[i])}}return overlaySet}function getOverlaySetsFromSession(){var promises=[];if(session.get("o")){var oldOverlaySetIds=session.get("o").split(",");_.each(oldOverlaySetIds,function(oldOverlaySetId){var addFiltersToOverlaySetPromise=getOverlaySet(oldOverlaySetId,"old").then(addOverlaySetFiltersFromSession);promises.push(addFiltersToOverlaySetPromise)})}if(session.get("dlo")){var dataLoaderOverlaySetIds=session.get("dlo").split(",");_.each(dataLoaderOverlaySetIds,function(dataLoaderOverlaySetId){var addFiltersToOverlaySetPromise=getOverlaySet(dataLoaderOverlaySetId,"dl").then(addOverlaySetFiltersFromSession);promises.push(addFiltersToOverlaySetPromise)});if(_.size(dataLoaderOverlaySetIds)===1&&session.get("dloz")&&!session.get("o")){ajax.call({url:PEnvironment.pointUrl+"&act=b&did="+dataLoaderOverlaySetIds[0],success:function(response){var coords=response.site;if(coords.minx&&coords.miny&&coords.maxx&&coords.maxy){var sw=new PLatLng(coords.miny,coords.minx);var ne=new PLatLng(coords.maxy,coords.maxx);map.setCenterBounds(new PLatLngBounds(sw,ne));session.remove("dloz")}}})}}$.when.apply($,promises).then(function addOverlaySetsToMap(){var sets=[];for(var i=0;i<arguments.length;i++){if(arguments[i]==null){continue}var curSet=arguments[i];sets.push(curSet);for(var j=0;j<curSet.children.length;j++){sets.push(curSet.children[j])}}if(sets.length>0){map.setOverlaySets(sets);labelManager.updateMapLabels()}})}function loadMapFromSession(){var pLatLng=map.getCenter();var numBreaks;session.checkUrl();if(typeof ria!=="undefined"){if(session.get("i")!==void 0){if(session.get("rmp")&&colorRamps.getRampByName(session.get("rmp"))){widget.legend.setColorRamp(colorRamps.getRampByName(session.get("rmp")))}if(session.get("nb")){numBreaks=parseInt(session.get("nb"),10);if(!_.isNaN(numBreaks)){widget.legend.setNumberOfBreaks(numBreaks)}}selectIndicators(session.get("i"));taxonomyMenu.setActiveRootNodeByIndicatorId(parseInt(session.get("i")[0],10))}getOverlaySetsFromSession();P.instances.map.mapOptions.loadMapOptionsFromSession()}if(session.get("curLat")&&session.get("curLng")&&session.get("curZoom")){map.setCenter(new PLatLng(session.get("curLat"),session.get("curLng")),session.get("curZoom"))}}if(productProperty.exists("cb_small_message_on_map")){var text=productProperty.getValue("cb_small_message_on_map");showSmallMapMessageNoFade(text)}}function analyticsMapLoaderCB(){function initializeGlobals(){legendContainer=new Array;indicatorLegend=new Array;legendMerger=new PLegendMerger(map)}function resizeMapContainer($container){$mapContainer.css("height",$window.height()-$mapContainer.offset().top-$(".content__footer").height());if(P.instances.map!==void 0&&P.instances.map.kamap!==void 0){P.instances.map.kamap.resize();P.instances.map.setCenter(P.instances.map.getCenter());if(P.constants.initialLoad==true){P.constants.initialLoad=false;var opts=P.CloneOptions;initializeMapLocation(opts)}}$window.trigger(P.events.MAP_RESIZED)}function initializeAnalyticsLegends(){var $analyticsLegend=$(".legend--analytics");var $msg=$analyticsLegend.find(".legend__message");if($msg){$msg.find(".color-box").css("background","#"+getAnalyticsHexColor());$msg.find(".color-label").html(getAnalyticsColorLabel())}$analyticsLegend.find(".legend__toggle-icon").click(function toggleLegendSize(){if($analyticsLegend.hasClass("is-minimized")){$(this).removeClass("is-minimized");$analyticsLegend.removeClass("is-minimized")}else{$(this).addClass("is-minimized");$analyticsLegend.addClass("is-minimized")}});$legends.each(function(index){var $legend=$(this);var editButton=$legend.find(".legend__edit-button");var pLegend=new PLegend;indicatorLegend.push(new PTRFIndicatorLegend(null,pLegend,{enableToggle:true,enableShade:true,enableRange:true,instanceId:"m"+index}));editButton.click(function(event){event.preventDefault();$(this).toggleClass("is-active");$legend.find(".legend__indicators").toggle()})});indElms=$legends;for(var i=0;i<indElms.length;i++){indElms[i]=$(indElms[i]);var indToggle=indicatorLegend[i].getIndicatorToggle();var indicatorShade=indicatorLegend[i].getIndicatorShade();indicatorShade.disableDefault=true;var indicatorRange=indicatorLegend[i].getIndicatorRange();var indicatorValues=indicatorLegend[i].getIndicatorValues();legendContainer[i]=new PLegendContainer(indElms[i]);indicatorLegend[i].addListener("refresh",legendContainer[i].enable,legendContainer[i]);indicatorLegend[i].addListener("refresh",placeZoomSliderMarker,legendContainer[i]);indicatorLegend[i].addListener("clear",legendContainer[i].disable,legendContainer[i]);indicatorLegend[i].addListener("clear",placeZoomSliderMarker,legendContainer[i]);var trfLegendIndicators=new TrfAnalyticsLegendIndicators(indElms[i],i);indToggle.addListener("refresh",trfLegendIndicators.refresh,trfLegendIndicators);indToggle.addListener("clear",trfLegendIndicators.clear,trfLegendIndicators);var rangeWidget=new PRangeWidget(indElms[i].find("#slider_container"));rangeWidget.addListener("update",indicatorRange.setRange,indicatorRange);rangeWidget.init();indicatorRange.addListener("refresh",rangeWidget.updateRange,rangeWidget);indicatorRange.addListener("enable",rangeWidget.enable,rangeWidget);indicatorRange.addListener("disable",rangeWidget.disable,rangeWidget);indicatorLegend[i].addListener("clear",rangeWidget.resetRange,rangeWidget);legendContainer[i].addListener("disable",rangeWidget.disable,rangeWidget);var valuesWidget=new PValuesWidget(indElms[i].find("#values_container"));valuesWidget.addListener("update",indicatorValues.toggleValues,indicatorValues);indicatorValues.addListener("load",valuesWidget.refresh,valuesWidget);indicatorValues.addListener("enable",valuesWidget.enable,valuesWidget);indicatorValues.addListener("disable",valuesWidget.disable,valuesWidget);indicatorValues.addListener("clear",valuesWidget.clear,valuesWidget);legendContainer[i].addListener("disable",valuesWidget.disable,valuesWidget);var opts={defaultText:'<span class="select-layer" onclick="cbMatchPopup.openPopup(true)">Select Layer</span>',noIndex:true};var indInfo=new PIndicatorInfoWidget(indElms[i].find(".legend__title"),opts);indInfo.index=i;indicatorLegend[i].addListener("refresh",indInfo.update,indInfo);indicatorLegend[i].addListener("clear",indInfo.clear,indInfo);indicatorLegend[i].addListener("refresh",matchMenuLegendUpdate,indInfo);indicatorLegend[i].addListener("clear",matchMenuLegendUpdate,indInfo);var trfLegendShadeBy=new TrfLegendShadeBy(indElms[i].find(".legend__shading__shaded-by"),indElms[i].find(".legend__title__source__content"),indElms[i].find("#legend__shading__ranges"));indicatorShade.addListener("refresh",trfLegendShadeBy.update,trfLegendShadeBy);indicatorShade.addListener("clear",trfLegendShadeBy.clear,trfLegendShadeBy);trfLegendShadeBy.addListener("change",indicatorShade.changeShade,indicatorShade);legendContainer[i].init();legendContainer[i].disable();legendMerger.addLegend(indicatorLegend[i])}map.setLegendMerger(legendMerger);$(".legend__indicators select").chosen({disable_search:true,width:"122px"});setDraggableForCloneLegends()}function analyticsRun(){$window.on(P.events.MAP_CHECK_RESIZE,resizeMapContainer);$(".small-map-message").draggable({containment:"#map",scroll:false,stack:"#map, .legend, #theInsideLayer",drag:function(){if($(".small-map-message").css("bottom")==="0px"){$(".small-map-message").css("bottom","auto")}}});map.addListener("setindicator",function(){var tmpLeg;for(var i=0;tmpLeg=legendMerger.getLegend(i);i++){var leg=tmpLeg.legend;leg.clearStoredScale();if(leg.getBoundaryType()&&tmpLeg.getIndicatorShade().getOldBoundaryTypeId()!=leg.getBoundaryType().id){tmpLeg.getIndicatorShade().setOldBoundaryTypeId(leg.getBoundaryType().id)}}mapRefreshed()});map.addListener("removeindicator",function(){updateLegendPositionOnMap()});PEvent.addListener(map,"zoomstart",function(){map.mapOptions.populate();for(var i=0;i<3;i++){var legend=legendMerger.getLegend(i);legend.refresh()}})}if(typeof index_delayed!="undefined"){index_delayed()}var $mapContainer=$("#map");var $window=$(window);var $legends=$(".analytics-legend__item");var dataPointsLegend;if(typeof P.constants.initialLoad==="undefined"){P.constants.initialLoad=true}var debug=new P.Debug;var $wizard=$(".wizard");initializeGlobals();initializeAnalyticsLegends();resizeMapContainer();$window.resize(resizeMapContainer);analyticsRun()}function setDraggableForCloneLegends(){var c=$("#map");$(".legend").draggable({containment:c,handle:"h2, .legend__content",cancel:".chosen-drop, input, .no-drag",scroll:false,stack:"#map, .legend, #theInsideLayer",zIndex:Strata.OVER_MAP0,drag:function(e,ui){if($(this).position().left!==0){$(this).removeClass("legend--docked")}if(ui.position.top<0){ui.position.top=0}$(this).css("height","auto")}})}PPolyCreatorCircleWidgetCB=function(polycreator,cont){this.polycreator=polycreator;this.$cont=cont;this.$generateButton=$(".generate-report-button");this.resetGenerateButton();var that=this;this.$cont.find(".generate-report-cancel-button").click(function(){that.polycreator.disableRegionBuilderCB()});this.$cont.find(".close-x").click(function(){that.polycreator.disableRegionBuilderCB()});this.$radiusForm=$("#search-form-radius");this.$radiusElem=this.$radiusForm.find(".radius");var response=function(places){if(places instanceof PAddress){if(places.wasFound()){html=""+places.addr+"<br /><br />";cbProfileDropdowns.resetAllDropdowns();that.showCircle(places)}else{var content='Location "<b>'+places.addr+'</b>" not found. For help finding your address:';alerter.popup(content,"OK")}}else{alerter.popup("Please specify a street address, not an area.","OK")}};var searchTypes=["Default"];var options={formWidth:290,placeholderLocation:'e.g., "601 Walnut Street, Philadelphia, PA 19106"',noAutoComplete:true,noFluid:true,responseEvent:response};var rsearch=new TrfSearch($("#search-form-radius-address"),searchTypes,options);this.rsearch=rsearch;var that=this;this.$radiusForm.submit(function(event){event.preventDefault();if(that.polycreator.CIRCLE.centerpoint){that.updateRadius()}})};PPolyCreatorCircleWidgetCB.prototype={show:function(){this.$cont.show();this.$cont.addClass("on");this.$cont.parent().parent().addClass("stick")},hide:function(){this.$cont.hide();this.$cont.removeClass("on");this.$cont.parent().parent().removeClass("stick")},resetGenerateButton:function(){var b=this.$generateButton;b.unbind("click");b.removeAttr("href");b.removeClass("on");b.click(function(){alerter.popup("First create a custom region to generate a report.","OK")})},updateRadius:function(){var pc=this.polycreator;var elem=this.$radiusElem;var miles=elem.val();if(miles==null||miles==0||isNaN(miles)){alerter.popup("A valid radius must be provided.","OK");elem.val(pc.CIRCLE.radius);return false}pc.updateRadiusCB(pc.CIRCLE.centerpoint,miles);return true},showCircle:function(places){var pc=this.polycreator;var address=places;var point=new PLatLng(address.y,address.x);var miles=this.$radiusElem.val();var vert=pc.drawCircle(point,miles,true);pc.CIRCLE.address=address instanceof PLatLng?address:address.y+", "+address.x;pc.eventManager.triggerEvent("addpoly",[point])}};PPolyCreatorDrawWidgetCB=function(polycreator,cont){this.polycreator=polycreator;this.$cont=cont;this.$generateButton=$(".generate-report-button");this.resetGenerateButton();var that=this;this.$cont.find(".generate-report-cancel-button").click(function(){that.polycreator.disableRegionBuilderCB()});this.$cont.find(".close-x").click(function(){that.polycreator.disableRegionBuilderCB()})};PPolyCreatorDrawWidgetCB.prototype={show:function(){this.$cont.show();this.$cont.addClass("on");this.$cont.parent().parent().addClass("stick")},hide:function(){this.$cont.hide();this.$cont.removeClass("on");this.$cont.parent().parent().removeClass("stick")},resetGenerateButton:function(){var b=this.$generateButton;b.unbind("click");b.removeAttr("href");b.removeClass("on");b.click(function(){alerter.popup("First create a custom region to generate a report.","OK")})}};function reportGenerateOnLoadCB(){setCloneOptions();PEnvironment.pageName="report";var urlParam=getUrlParams();currentReport=urlParam;var address=null;var radius=null;if(currentReport.areaType=="radius"||currentReport.areaType=="pradius"){address=currentReport.location;radius=currentReport.radius}else if(currentReport.areaType=="predefined"){address=currentReport.pid}else if(currentReport.areaType=="custom"){}PMapType.DEFAULT=PMapType.NORMAL;drawMapCB(document.getElementById("report-map"),address,radius);cb_checkContentLoaded()}function drawMapCB(div,place,radius){var params=getUrlParams();if(P.WKPrint.isPrintPage()===true){$("head").append('<link rel="stylesheet" href="/cssPrint/culture_blocks.css" type="text/css" />')}map=new PMap(div);if(currentReport.areaType=="predefined"){placeLoader.load([place],function(places){if(places.length==0)alert('Place "'+place+'" not found');if(places[0]){map.setCenterBounds(places[0].getBounds());addPolygons(map,places[0],null);displayContainedPlacesCB(places[0],places[0].getCentroid())}})}else if(currentReport.areaType=="radius"||currentReport.areaType=="pradius"){if(currentReport.lat!=null&&currentReport.lng!=null){map.clearOverlays();var centerpoint=new PLatLng(currentReport.lat,currentReport.lng);var centermarker=new PMarker(centerpoint);map.radiuscenter=centerpoint;map.addOverlay(centermarker);var bounds=drawRadius(radius,centerpoint);if(currentReport.areaType=="pradius"){polycreator.polyload(currentReport.bid,currentReport.areaName,currentReport.plat,currentReport.plng,function(places){if(places[0]){addPolylines(map,places[0].getVertices())}})}bounds.getAggregates(PPlaceType.STATE,null,null,function(states){bounds.getAggregates(PPlaceType.COUNTY,null,null,function(counties){displayContainedPlacesCB(bounds,centerpoint,counties,states)},3,maxResultsConfInt,null,null,null,null,null,0)},3,maxResultsConfInt,null,null,null,null,null,0)}else{geocoder.getLatLng(place,function(point){if(!point)alert('Address "'+place+'" not found');else{map.clearOverlays();var centerpoint=point;var centermarker=new PMarker(centerpoint);map.radiuscenter=centerpoint;map.addOverlay(centermarker);var bounds=drawRadius(radius,centerpoint);bounds.getAggregates(PPlaceType.STATE,null,null,function(states){bounds.getAggregates(PPlaceType.COUNTY,null,null,function(counties){displayContainedPlacesCB(bounds,centerpoint,counties,states)},3,maxResultsConfInt,null,null,null,null,null,0)},3,maxResultsConfInt,null,null,null,null,null,0)}})}}else if(currentReport.areaType=="custom"){polycreator.load(currentReport.cpid,function(places){var place=places[0];map.setCenterBounds(place.getBounds());addPolygons(map,place);displayContainedPlacesCB(place,place.getCentroid())})}map.disableDragging()}function displayReportCB(aggregates,boundarea,counties,states){if(aggregates&&aggregates.length>maxResultsConfInt){maxResultsAlert();return}var title="";var areaTitle="Report Area";$("#report-title").html(areaTitle);$(".report-title").html(areaTitle);if(isWPVersion()){displayWilliamPennReport(aggregates,boundarea,counties)}else if(isAWVersion()){displayArtsWaveReport(aggregates,boundarea,counties)}else if(isNCCVersion()){displayNewarkReport(aggregates,boundarea,counties)}else if(isPassaicVersion()){displayPassaicReport(aggregates,boundarea,counties)}else if(isAtlantaChildCareVersion()){displayAtlantaReport(aggregates,boundarea,counties)}else if(isDCChildCareVersion()){displayDCReport(aggregates,boundarea,counties)}else{displayCultureBlocksReport(aggregates,boundarea,counties)}}function displayContainedPlacesCB(boundarea,centerpoint,counties,states){var zoomlevel=map.setCenterBoundsAndGetZoomLevelByViewPort(boundarea,1e3,600);var overlap_pct=50;var quota=50;var mid=1;if(isCBVersion()||isWPVersion()){var t=PPlaceType.BLOCKGROUP;var defids=boundaryMatrix.getAllBoundaryDefinitionIdsForTypeId(t.getId());boundarea.getAggregates(t,null,defids,function(pps){centerpoint.getPlacesContaining(PPlaceType.COUNTY,null,null,function(counties){displayReportCB(pps,boundarea,counties)})},overlap_pct,null,null,null,null,null,null,quota)}else if(isPassaicVersion()){var t=PPlaceType.BLOCKGROUP;var defids=boundaryMatrix.getAllBoundaryDefinitionIdsForTypeId(t.getId());boundarea.getAggregates(t,null,defids,function(pps){var paterson_id=157561;placeLoader.load([paterson_id],function(places){var place_paterson_city=places[0];var passaic_id=157560;placeLoader.load([passaic_id],function(places){var place_passaic_city=places[0];var passaic_county_id=101916;placeLoader.load([passaic_county_id],function(places){var place_passaic_county=places[0];displayReportCB(pps,boundarea,[place_paterson_city,place_passaic_city,place_passaic_county])})})})},overlap_pct,null,null,null,null,null,null,quota)}else if(isAtlantaChildCareVersion()){var t=PPlaceType.BLOCKGROUP;var defids=boundaryMatrix.getAllBoundaryDefinitionIdsForTypeId(t.getId());boundarea.getAggregates(t,null,defids,function(pps){var atlanta_id=153408;var comparisonPlaces=[153408,100089,100098,100137,100595,100640];placeLoader.load(comparisonPlaces,function(places){displayReportCB(pps,boundarea,places)})},overlap_pct,null,null,null,null,null,null,quota)}else if(isDCChildCareVersion()){var t=PPlaceType.BLOCKGROUP;var defids=boundaryMatrix.getAllBoundaryDefinitionIdsForTypeId(t.getId());boundarea.getAggregates(t,null,defids,function(pps){var washingtondc=152292;var districtofcolumbia=100463;var usa=1061338;var washingtondcBGs=[318951,318954,318955,318956,318957,318961,318962,318963,318964,318967,318968,318969,318970,318973,318974,318975,318976,318977,318979,318980,318981,318982,318984,318985,318986,318987,318992,318993,318994,318995,319006,319007,319008,319009,319010,319011,319015,319016,319017,319018,319021,319022,319023,319024,319025,319026,319027,319028,319031,319032,319033,319034,319035,319036,319037,319039,319040,319041,319042,319043,319046,319047,319048,319049,319055,319056,319057,319058,319061,319062,319063,319064,319067,319068,319069,319070,319071,319073,319074,319075,319076,319091,319092,319093,319094,319097,319098,319099,319100,319104,319105,319106,319107,319110,319111,319112,319124,319126,319127,319128,319131,319133,319134,319135,319136,319138,319139,319146,319147,319148,319149,319150,319155,319156,319162,319163,319164,319165,319171,319172,319176,319177,319182,319183,319184,319185,319192,319193,319194,319195,319197,319198,319203,319204,319209,319210,319216,319217,319218,319219,319221,319222,319236,319237,319238,319244,319245,319246,319247,319248,319251,319257,319258,319259,319260,319263,319264,319265,319266,319275,319276,319277,319278,319279,319283,319284,319285,319286,319291,319292,319293,319294,319300,319301,319302,319303,319307,319308,319309,319310,319313,319315,319316,319317,319318,319321,319323,319324,319325,319326,319327,319328,319329,319330,319331,319332,319334,319335,319336,319337,319339,319340,319342,319343,319347,319349,319350,319351,319353,319359,319360,319361,319362,319372,319373,319374,319375,319376,319378,319379,319380,319381,319382,319384,319385,319386,319387,319389,319390,319391,319392,319399,319400,319401,319402,319403,319404,319407,319408,319409,319410,319411,319415,319416,319417,319418,319419,319420,319421,319422,319423,319424,319425,319426,319427,319428,319429,319430,319452,319453,319454,319455,319461,319462,319463,319464,319465,319466,319467,319468,319469,319470,319471,319472,319473,319474,319475,319476,319482,319483,319484,319485,319487,319488,319489,319490,319491,319500,319503,319504,319505,319515,319518,319519,319520,319523,319525,319526,319535,319536,319537,319541,319542,319543,319544,319546,319551,319552,319553,319557,319572,319573,319574,319577,319578,319579,319580,319581,319585,319586,319587,319588,319589,319593,319594,319595,319596,319597,319606,319607,319608,319609,383610,383611,383612,383613,250598,250599,250600,250601,250602,250603,250604,250605,250606,250607,250608,250609,250610,250611,250612,250613,250614,250615,250616,250617,250618,250619,250621,250622,250623,250624,250625,250626,250627,250628,250629,250630,250631,250632,250633,250634,250635,250636,250637,250638,250639,250640,250641,250642,250643,250644,250645,250646,250647,250648,250649,250650,250651,250652,250653,250654,250655,250656,250657,250658,250659,250660,250661,250662,250663,250664,295165,307496,307497,307550,307564,307577,307580,307581,307596,307597,307598,307599,307600,307643,307644,307660,307661,307662,307663,307664,307665,307666,307704,307714,307721,307722,307723,307724,307725,307726,307741,307756,307808,307842,307843,307844,307851,307852,307858,307859,307860,307865,307902,307903,307917,307918,307919,307974];var comparisonPlaces=[152292,100463,1061338];comparisonPlaces=comparisonPlaces.concat(washingtondcBGs);placeLoader.load(comparisonPlaces,function(places){displayReportCB(pps,boundarea,places)})},overlap_pct,null,null,null,null,null,null,quota)}else if(isNCCVersion()){var t=PPlaceType.BLOCKGROUP;var defids=boundaryMatrix.getAllBoundaryDefinitionIdsForTypeId(t.getId());boundarea.getAggregates(t,null,defids,function(pps){centerpoint.getPlacesContaining(PPlaceType.CITY,null,null,function(cities){if(boundarea.typeid==PPlaceType.NWK_ZIP){centerpoint.getPlacesContaining(PPlaceType.ZCTA,null,null,function(zctas){var zcta=zctas[0];displayReportCB(pps,zcta,cities)})}else{displayReportCB(pps,boundarea,cities)}})},overlap_pct,null,null,null,null,null,null,quota)}else{displayReportCB([],boundarea,counties)}}function displayDistrictsCB(ps,divid,compare,joinType){if(!joinType){joinType=","}var places=ps;var $div=$("#"+divid);var $content=$("<span>");var state=null;if(compare&&compare instanceof PPlace){state=compare.getState()}function getList(){var html="";for(var i=0;i<places.length;i++){html+=places[i].getLabel()+joinType+" "}html=html.substring(0,html.length-2);return html}if(places==null){$content.append("<span style='color:#ccc;font-style:italic'>Too many to display</span>")}else if(places.length>10){var html=" "+places.length+" "+places[0].getType().getPluralName()+" ";$content.append(html);var $a=$("<a>",{class:"link"});$a.html("(show)");$a.click(function(){var $list=$(this).parent().parent().parent().next();if($list.is(":visible")){$list.hide();$(this).html("(show)")}else{$list.show();$(this).html("(hide)")}});$content.append($a);var $listdiv=$("<div>",{class:"long-list is-hidden"});$listdiv.html(getList());$div.parent().after($listdiv)}else if(places.length>0){$content.append(getList())}else if(compare&&compare instanceof PPlace&&(compare.getType()==PPlaceType.PHILA_NEIGHBORHOOD||compare.getType()==PPlaceType.AW_NEIGHBORHOOD||compare.getType()==PPlaceType.CB_PLANNING||compare.getType()==PPlaceType.CB_COUNCIL||compare.getType()==PPlaceType.WP_ZIP||compare.getType()==PPlaceType.ZIP||compare.getType()==PPlaceType.PHILA_CATCHMENT_ES||compare.getType()==PPlaceType.CB_COUNCIL_2016||compare.getType()==PPlaceType.SCHOOL)){$content.html(compare.getLabel())}if($content.html()==""){$content.html("<span class='na'>None Found</span>")}$div.append(" ");$div.append($content)}function generateReportSitesList(set,place,filters){P.instances.pagePopUp=new CBPopUp;if(filters){set.clearFilters();for(var i=0;i<filters.length;i++){set.addFilter(filters[i])}}set.overrideLimit=false;P.instances.pagePopUp.show();place.getMarkersWithin(set,function(markers){var opts={hidetitle:true};P.instances.rPins=new CBReportPins(opts);var count=0;if(!(markers[0]instanceof PMarker)){count=markers[0]}else if(markers[0]instanceof PMarker&&!markers[0].isPoly){count=markers.length}P.instances.rPins.load(place.getLabel(),set.id,set.type,set.getLabel(),place.id,"",count,null,place.getType().id,place.polysetid,null,filters)})}function getDisplayMarkersListCB(markers,elem,label,joinType){if(!label){var label=""}if(!joinType){joinType=","}var $content=$("<span>");var list='<span class="na">None Found</span>';var getList=function(){if(markers[0]instanceof PMarker){var arr=[];for(var i=0;i<markers.length;i++){var m=markers[i];var attr=m.attributes[0];if(attr.value&&attr.value.length>0){arr.push(attr.value)}}if(arr.length>0){list=arr.join(joinType+" ")}}else if(markers.length>0){list=markers[0]}return list};if(markers.length>15){var html=" "+markers.length+" "+label+" ";$content.append(html);var $a=$("<a>",{class:"link"});$a.html("(show)");$a.click(function(){var $list=$(this).parent().parent().parent().next();if($list.is(":visible")){$list.hide();$(this).html("(show)")}else{$list.show();$(this).html("(hide)")}});$content.append($a);var $listdiv=$("<div>",{class:"long-list is-hidden"});$listdiv.html(getList());elem.parent().after($listdiv)}else{$content.append(getList())}elem.append($content)}function getPhillyContainmentsLists(b){var mid=1;b.getAggregates(PPlaceType.PHILA_NEIGHBORHOOD,mid,null,function(aggs){displayDistrictsCB(aggs,"neighborhoods",b)},0,null,PPlaceType.LABEL,null,0,null,PPlaceType.LABEL);b.getAggregates(PPlaceType.WP_ZIP,mid,null,function(aggs){displayDistrictsCB(aggs,"zip-codes",b)},0,null,PPlaceType.LABEL,null,0,null,PPlaceType.LABEL);b.getAggregates(PPlaceType.CB_COUNCIL_2016,mid,null,function(aggs){displayDistrictsCB(aggs,"council-districts",b)},0,null,PPlaceType.LABEL,null,3,null,PPlaceType.LABEL);b.getAggregates(PPlaceType.PHILA_CATCHMENT_ES,mid,null,function(aggs){displayDistrictsCB(aggs,"school-catchment",b,";")},0,null,PPlaceType.LABEL,null,3,null,PPlaceType.LABEL);b.getAggregates(PPlaceType.CB_PLANNING,mid,null,function(aggs){displayDistrictsCB(aggs,"planning-districts",b,";")},0,null,PPlaceType.LABEL,null,3,null,PPlaceType.LABEL)}function displayAtlantaReport(aggregates,boundarea,comparisonPlaces){$("html > head > title").html("Atlanta Childcare Map");if(boundarea.getType().getId()==0){$("span.boundarea").html("Report Area")}else{$("span.boundarea").html(boundarea.getLabel())}var params=getUrlParams();getAtlantaContainmentsLists(boundarea);if(P.WKPrint.isPrintPage()===true){$("body > div.top-container").remove();$("body").css("background-color","white")}var aggObj={};var ids=boundaryMatrix.getMatrixOrder();for(var i=0;i<ids.length;i++){aggObj[ids[i]]=[]}for(var i=0;i<aggregates.length;i++){var p=aggregates[i];var mIds=boundaryMatrix.getAllMatrixIdsForDefinitionId(p.getDefinitionId());for(var j=0;j<mIds.length;j++){mId=mIds[j];aggObj[mId].push(p)}}if(boundarea.getType()==PPlaceType.BLOCKGROUP){var p=boundarea;var mId=boundaryMatrix.getMatrixIdForDefinitionId(p.getDefinitionId());aggObj[mId]=[p]}if(P.WKPrint.isPrintPage()===true){$("head").append('<link rel="stylesheet" href="/cssPrint/culture_blocks.css" type="text/css" />');$(".print-page2").append($(".report-charts"))}var overrideSitesLimit=true;var place_atlanta_city=comparisonPlaces.shift();var counties_atlanta_metro_area=comparisonPlaces;ATLLoadChildCare2020(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadChildCare(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadChildCareGraph1(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadChildCareGraph2(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadChildCareGraph3(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadChildCareLegend();ATLLoadChildCareGraph4(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadPopulationText(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadPopAndAge(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area)
;ATLLoadRace(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadIncomeText(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadIncomePart1(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadHouseholdStatus(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadSchoolEnrollment(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadJobsEconomy(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadTransportationPart1(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadTransportationPart2(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadEducationAttainment(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadLanguageSpokenAtHome(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area);ATLLoadGeographyType(boundarea);var overlap_pct=50;boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,null,function(tracts){ATLLoadIncomePart2(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area,tracts);var aggList=$("#tracts-list");var aggToggle=$("#tracts-toggle");var aggTogglePrint=$("#tracts-toggle-print");var t=getAggregatedPlaceNames(tracts);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show");aggTogglePrint.text("Not Displayed")}else{aggList.slideDown();aggToggle.text("(-) Hide");aggTogglePrint.text("")}});if(params["da"]){aggToggle.click()}},overlap_pct,null,null,null,"id,identifier,label,typeid,state");var aggList=$("#agg-list");var aggToggle=$("#agg-toggle");var aggTogglePrint=$("#agg-toggle-print");var t=getAggregatedPlaceNames(aggObj[2]);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show");aggTogglePrint.text("Not Displayed")}else{aggList.slideDown();aggToggle.text("(-) Hide");aggTogglePrint.text("")}});var overlaySet=new POverlaySet(216e3,PinIcons.triangle180,15);map.addOverlaySet(overlaySet)}function getAtlantaContainmentsLists(b){var mid=1;if(b.typeid==PPlaceType.ATL_ZIP.getId()){displayDistrictsCB([b],"zip-codes",b)}else{b.getPlacesContaining(PPlaceType.ATL_ZIP,null,null,function(zips){displayDistrictsCB(zips,"zip-codes",b)})}var set=new POverlaySet(140150);set.type="old";set.overrideLimit=true;set.map=null;b.getMarkersWithin(set,function(markers){var combinedMarkers=[];for(var i=0;i<markers.length;i++){var attributes=markers[i].attributes;for(var j=0;j<attributes.length;j++){var attribute=attributes[j];if(attribute.columnName=="schnam"){combinedMarkers.push(markers[i])}}}var set=new POverlaySet(139350);set.type="old";set.overrideLimit=true;set.map=null;b.getMarkersWithin(set,function(markers){for(var i=0;i<markers.length;i++){var attributes=markers[i].attributes;for(var j=0;j<attributes.length;j++){var attribute=attributes[j];if(attribute.columnName=="pinst"){combinedMarkers.push(markers[i])}}}var elem=$("#schools");var list=getDisplayMarkersListCB(combinedMarkers,elem,"Schools",",")},true)},true);var set=new POverlaySet(131650);set.type="old";set.overrideLimit=true;set.map=null;b.getMarkersWithin(set,function(markers){var elem=$("#libraries");var list=getDisplayMarkersListCB(markers,elem,"Libraries")})}function ATLLoadChildCare2020(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var set1=new POverlaySet(216e3);set1.type="old";set1.overrideLimit=true;set1.map=null;boundarea.getMarkersWithin(set1,function(markers){markers=markers||[];var count_regulated_childcare_facilities=markers.length;var capacity_regulated_childcare_facilities=0;for(i in markers){var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){capacity_regulated_childcare_facilities+=sup_est}}}}$("#childcare-2020-count0").html(PWebUtil.formatNumber(count_regulated_childcare_facilities));$("#childcare-2020-slots0").html(PWebUtil.formatNumber(capacity_regulated_childcare_facilities));if(count_regulated_childcare_facilities==0){$("#childcare-2020-count0").next().hide()}else{$("#childcare-2020-count0").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set1,place);$elem.append(html);generateReportSitesListInAlert(set1,boundarea,filters,$elem)})}var set2=new POverlaySet(216050);set2.type="old";set2.overrideLimit=true;set2.map=null;boundarea.getMarkersWithin(set2,function(markers){markers=markers||[];var count_quality_rated=markers.length;var capacity_quality_rated=0;for(i in markers){var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){capacity_quality_rated+=sup_est}}}}$("#childcare-2020-count1").html(PWebUtil.formatNumber(count_quality_rated));$("#childcare-2020-slots1").html(PWebUtil.formatNumber(capacity_quality_rated));if(count_quality_rated==0){$("#childcare-2020-count1").next().hide()}else{$("#childcare-2020-count1").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set2,place);$elem.append(html);generateReportSitesListInAlert(set2,boundarea,filters,$elem)})}})})}function ATLLoadChildCare(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var set1=new POverlaySet(174100);set1.type="old";set1.overrideLimit=true;set1.map=null;boundarea.getMarkersWithin(set1,function(markers){markers=markers||[];var count_regulated_childcare_facilities=markers.length;var capacity_regulated_childcare_facilities=0;for(i in markers){var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){capacity_regulated_childcare_facilities+=sup_est}}}}$("#childcaretext_count_regulated_childcare_facilities").html(PWebUtil.formatNumber(count_regulated_childcare_facilities));$("#childcaretext_capacity_regulated_childcare_facilities").html(PWebUtil.formatNumber(capacity_regulated_childcare_facilities));$("#childcare-count0").html(PWebUtil.formatNumber(count_regulated_childcare_facilities));$("#childcare-slots0").html(PWebUtil.formatNumber(capacity_regulated_childcare_facilities));if(count_regulated_childcare_facilities==0){$("#childcare-count0").next().hide()}else{$("#childcare-count0").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set1,place);$elem.append(html);generateReportSitesListInAlert(set1,boundarea,filters,$elem)})}var set2=new POverlaySet(174e3);set2.type="old";set2.overrideLimit=true;set2.map=null;boundarea.getMarkersWithin(set2,function(markers){markers=markers||[];var count_quality_rated=markers.length;var capacity_quality_rated=0;for(i in markers){var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){capacity_quality_rated+=sup_est}}}}$("#childcaretext_count_quality_rated").html(PWebUtil.formatNumber(count_quality_rated));$("#childcaretext_capacity_quality_rated").html(PWebUtil.formatNumber(capacity_quality_rated));$("#childcare-count1").html(PWebUtil.formatNumber(count_quality_rated));$("#childcare-slots1").html(PWebUtil.formatNumber(capacity_quality_rated));if(count_quality_rated==0){$("#childcare-count1").next().hide()}else{$("#childcare-count1").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set2,place);$elem.append(html);generateReportSitesListInAlert(set2,boundarea,filters,$elem)})}});var places=aggObj[2];if(boundarea.typeid==PPlaceType.BLOCKGROUP.id){places=[boundarea]}var periods=[2018];var indsObj={};indsObj.demand_0to4pop=new PIndicator(9956292);indsObj.demand_bg=new PIndicator(9958781);indsObj.demand_total=new PIndicator(9956293);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var inds=indsArr;var cube=new PCube(inds,places,periods);cube.loadValues(function(values){this.values=values;var demand_0to4pop=getSumOfPlaces(cube,indsObj.demand_0to4pop,"2018")||0;var demand_bg=getSumOfPlaces(cube,indsObj.demand_bg,"2018")||0;var demand_total=getSumOfPlaces(cube,indsObj.demand_total,"2018")||0;$("#childcaretext_demand_total").html(PWebUtil.formatNumber(demand_total));$("#childcaretext-commuter_adjusted_demand").html(PWebUtil.formatNumber(demand_bg));$("#childcare-baseline_demand").html(PWebUtil.formatNumber(demand_0to4pop));$("#childcare-commuter_adjusted_demand").html(PWebUtil.formatNumber(demand_bg));$("#childcare-maximum_potential_demand").html(PWebUtil.formatNumber(demand_total));var demand_minus_capacity=Math.abs(demand_bg-capacity_regulated_childcare_facilities);$("#childcaretext_demand_minus_capacity").html(PWebUtil.formatNumber(demand_minus_capacity));if(demand_bg<capacity_regulated_childcare_facilities){$("#childcaretext_more_or_less").html("fewer")}$(".seelist").poshytip({content:"View in table",className:"tip-twitter",alignTo:"target",alignX:"center",alignY:"top",offsetY:30,slide:false,showTimeout:0,hideTimeout:0})})})}function ATLLoadChildCareGraph1(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var periods=[2018];var indid=9958781;var graph_values={supply:{regulated:0,unregulated:0},demand:0};var indsObj={};indsObj.demand_bg=new PIndicator(9958781);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var areaCube=new PCube(indsArr,aggObj[2],periods);areaCube.loadValues(function(values){this.values=values;graph_values.demand=getSumOfPlacesIgnoreNulls(this,indsObj.demand_bg,periods[0]);var set1=new POverlaySet(175900);set1.type="old";set1.overrideLimit=true;set1.map=null;boundarea.getMarkersWithin(set1,function(markers){markers=markers||[];for(i in markers){var atts=markers[i].attributes;var isregulated=true;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="provider_type"){if(a.value=="Unregulated"||a.value=="unregulated"){isregulated=false}break}}for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(isregulated){graph_values.supply.regulated+=sup_est}else{graph_values.supply.unregulated+=sup_est}}}}var chartData=[{label:"Estimated Regulated Supply",value:graph_values.supply.regulated,color:"#01A5E6",type:"Supply",accumulatedValue:0},{label:"Estimated Unregulated Supply",value:graph_values.supply.unregulated,color:"#8FC942",type:"Supply",accumulatedValue:0},{label:"Estimated Commuter Adjusted Demand",value:graph_values.demand,color:"#FA931D",type:"Demand",accumulatedValue:0}];ATL_render_atlanta_childcare_supply_and_demand_graph("atl-childcare-graph1",chartData,boundarea.getLabel())})})}function ATLLoadChildCareGraph2(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var overlap_pct=50;var quota=50;var periods=[2017];var indid=9958781;var graph_values={supply:{regulated:0,unregulated:0},demand:0};var boundarea=place_atlanta_city;var defid=boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.BLOCKGROUP.id,2);boundarea.getAggregates(PPlaceType.BLOCKGROUP,null,defid,function(blockgroups){if(blockgroups.length){var indsObj={};indsObj.demand_bg=new PIndicator(9958781);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var areaCube=new PCube(indsArr,blockgroups,periods);areaCube.loadValues(function(values){this.values=values;graph_values.demand=getSumOfPlacesIgnoreNulls(this,indsObj.demand_bg,periods[0]);var set1=new POverlaySet(175900);set1.type="old";set1.overrideLimit=true;set1.map=null;boundarea.getMarkersWithin(set1,function(markers){markers=markers||[];for(i in markers){var atts=markers[i].attributes;var isregulated=true;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="provider_type"){if(a.value=="Unregulated"||a.value=="unregulated"){isregulated=false}break}}for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(isregulated){graph_values.supply.regulated+=sup_est}else{graph_values.supply.unregulated+=sup_est}}}}var chartData=[{label:"Estimated Regulated Supply",value:graph_values.supply.regulated,color:"#01A5E6",type:"Supply",accumulatedValue:0},{label:"Estimated Unregulated Supply",value:graph_values.supply.unregulated,color:"#8FC942",type:"Supply",accumulatedValue:0},{label:"Estimated Commuter Adjusted Demand",value:graph_values.demand,color:"#FA931D",type:"Demand",accumulatedValue:0}];ATL_render_atlanta_childcare_supply_and_demand_graph("atl-childcare-graph2",chartData,boundarea.getLabel())})})}else{throw new Exception("Could not find any blockgroups")}},overlap_pct,null,null,null,null,null,null,quota)}function ATLLoadChildCareGraph3(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var overlap_pct=50;var quota=50;var periods=[2017];var indid=9958781;var graph_values={supply:{regulated:0,unregulated:0},demand:0};var set=new POverlaySet(175900);set.type="old";set.overrideLimit=true;set.map=null;var markers=[];var boundarea=counties_atlanta_metro_area[0];boundarea.getMarkersWithin(set,function(markers0){markers0=markers0||[];markers=markers.concat(markers0);var boundarea=counties_atlanta_metro_area[1];boundarea.getMarkersWithin(set,function(markers1){markers1=markers1||[];markers=markers.concat(markers1);var boundarea=counties_atlanta_metro_area[2];boundarea.getMarkersWithin(set,function(markers2){markers2=markers2||[];markers=markers.concat(markers2);var boundarea=counties_atlanta_metro_area[3];boundarea.getMarkersWithin(set,function(markers3){markers3=markers3||[];markers=markers.concat(markers3);var boundarea=counties_atlanta_metro_area[4];boundarea.getMarkersWithin(set,function(markers4){markers4=markers4||[];markers=markers.concat(markers4);for(i in markers){var atts=markers[i].attributes;var isregulated=true;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="provider_type"){if(a.value=="Unregulated"||a.value=="unregulated"){isregulated=false}break}}for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(isregulated){graph_values.supply.regulated+=sup_est}else{graph_values.supply.unregulated+=sup_est}}}}var defid=boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.BLOCKGROUP.id,2);var blockgroups=[];var boundarea=counties_atlanta_metro_area[0];boundarea.getAggregates(PPlaceType.BLOCKGROUP,null,defid,function(blockgroups0){var blockgroups0=blockgroups0||[];blockgroups=blockgroups.concat(blockgroups0);var boundarea=counties_atlanta_metro_area[1];boundarea.getAggregates(PPlaceType.BLOCKGROUP,null,defid,function(blockgroups1){var blockgroups1=blockgroups1||[];blockgroups=blockgroups.concat(blockgroups1);var boundarea=counties_atlanta_metro_area[2];boundarea.getAggregates(PPlaceType.BLOCKGROUP,null,defid,function(blockgroups2){var blockgroups2=blockgroups2||[];blockgroups=blockgroups.concat(blockgroups2);var boundarea=counties_atlanta_metro_area[3];boundarea.getAggregates(PPlaceType.BLOCKGROUP,null,defid,function(blockgroups3){var blockgroups3=blockgroups3||[];blockgroups=blockgroups.concat(blockgroups3);var boundarea=counties_atlanta_metro_area[4];boundarea.getAggregates(PPlaceType.BLOCKGROUP,null,defid,function(blockgroups4){var blockgroups4=blockgroups4||[];blockgroups=blockgroups.concat(blockgroups4);var indsObj={};indsObj.demand_bg=new PIndicator(9958781);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube=new PCube(indsArr,blockgroups,periods);cube.loadValues(function(values){this.values=values;graph_values.demand=getSumOfPlacesIgnoreNulls(this,indsObj.demand_bg,periods[0]);var chartData=[{label:"Estimated Regulated Supply",value:graph_values.supply.regulated,color:"#01A5E6",type:"Supply",accumulatedValue:0},{label:"Estimated Unregulated Supply",value:graph_values.supply.unregulated,color:"#8FC942",type:"Supply",accumulatedValue:0},{label:"Estimated Commuter Adjusted Demand",value:graph_values.demand,color:"#FA931D",type:"Demand",accumulatedValue:0}];ATL_render_atlanta_childcare_supply_and_demand_graph("atl-childcare-graph3",chartData,"5-County Metro Area")})})})})})})})})})})})}function ATLLoadChildCareGraph4(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var overlap_pct=50;var quota=50;var periods=[2017];var indid=9958781;var graph_values={metroarea:{rated:0,denominatorcount:0},city:{rated:0,denominatorcount:0},area:{rated:0,denominatorcount:0}};var chartData=[{area:"area",placename:"Report Area",value:0,percent:0,color:"#01A5E6"},{area:"city",placename:"Atlanta",value:0,percent:0,color:"#01A5E6"},{area:"metroarea",placename:"5-County Metro Area",value:0,percent:0,color:"#01A5E6"}];var set=new POverlaySet(174100);set.type="old";set.overrideLimit=true;set.map=null;var markers=[];boundarea.getMarkersWithin(set,function(markers){markers=markers||[];for(i in markers){var atts=markers[i].attributes;var is_qr_rated=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="qr_rating"){if(a.value=="Rated"){is_qr_rated=true}break}}var providertypeflag=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="provider_type"){if(a.value=="Child Care Learning Center"||a.value=="Family Child Care Learning Home"){providertypeflag=true}break}}for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(is_qr_rated){graph_values.area.rated+=sup_est}if(providertypeflag){graph_values.area.denominatorcount+=sup_est}}}}var markers=[];place_atlanta_city.getMarkersWithin(set,function(markers){markers=markers||[];for(i in markers){var atts=markers[i].attributes;var is_qr_rated=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="qr_rating"){if(a.value=="Rated"){is_qr_rated=true}break}}var providertypeflag=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="provider_type"){if(a.value=="Child Care Learning Center"||a.value=="Family Child Care Learning Home"){providertypeflag=true}break}}for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(is_qr_rated){graph_values.city.rated+=sup_est}if(providertypeflag){graph_values.city.denominatorcount+=sup_est}}}}var markers=[];var boundarea=counties_atlanta_metro_area[0];boundarea.getMarkersWithin(set,function(markers0){markers0=markers0||[];markers=markers.concat(markers0);var boundarea=counties_atlanta_metro_area[1];boundarea.getMarkersWithin(set,function(markers1){markers1=markers1||[];markers=markers.concat(markers1);var boundarea=counties_atlanta_metro_area[2];boundarea.getMarkersWithin(set,function(markers2){markers2=markers2||[];markers=markers.concat(markers2);var boundarea=counties_atlanta_metro_area[3];boundarea.getMarkersWithin(set,function(markers3){markers3=markers3||[];markers=markers.concat(markers3);var boundarea=counties_atlanta_metro_area[4];boundarea.getMarkersWithin(set,function(markers4){markers4=markers4||[];markers=markers.concat(markers4);for(i in markers){var atts=markers[i].attributes;var is_qr_rated=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="qr_rating"){if(a.value=="Rated"){is_qr_rated=true}break}}var providertypeflag=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="provider_type"){if(a.value=="Child Care Learning Center"||a.value=="Family Child Care Learning Home"){providertypeflag=true}break}}for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(is_qr_rated){graph_values.metroarea.rated+=sup_est}if(providertypeflag){graph_values.metroarea.denominatorcount+=sup_est}}}}if(graph_values.area.denominatorcount==0){var areapercent=0}else{var areapercent=graph_values.area.rated/graph_values.area.denominatorcount*100}chartData[0].value=graph_values.area.rated;chartData[0].percent=areapercent;if(graph_values.city.denominatorcount==0){var citypercent=0}else{var citypercent=graph_values.city.rated/graph_values.city.denominatorcount*100}chartData[1].value=graph_values.city.rated;chartData[1].percent=citypercent;if(graph_values.metroarea.denominatorcount==0){var metroareapercent=0}else{var metroareapercent=graph_values.metroarea.rated/graph_values.metroarea.denominatorcount*100}chartData[2].value=graph_values.metroarea.rated;chartData[2].percent=metroareapercent;ATL_render_quality_rated_chart("atl-childcare-graph4",chartData)})})})})})})})}function ATLLoadChildCareLegend(){var svgId="atl-childcare-legend";var svg=d3.select("#"+svgId);var margin={top:10,right:5,bottom:5,left:10};var width=+svg.attr("width")-margin.left-margin.right;var height=+svg.attr("height")-margin.top-margin.bottom;var chartData=[{label:"Estimated Regulated Supply",color:"#01A5E6",type:"Supply"},{label:"Estimated Unregulated Supply",color:"#8FC942",type:"Supply"},{label:"Estimated Commuter Adjusted Demand",color:"#FA931D",type:"Demand"}];var ordinal=d3.scaleOrdinal().domain(chartData.map(function(d){return d.label})).range(chartData.map(function(d){return d.color}));svg.append("g").attr("class","legendOrdinal").attr("transform","translate("+margin.left+","+margin.top+")");var legendOrdinal=d3.legendColor().shape("path",d3.symbol().type(d3.symbolSquare).size(150)()).shapePadding(10).labelWrap(width*.8).scale(ordinal);svg.select(".legendOrdinal").attr("font-family","arial").attr("font-size","12px").style("fill","#757575").call(legendOrdinal)}function ATL_render_atlanta_childcare_supply_and_demand_graph(svgId,chartData,placename){var sumSupply=0;for(i in chartData){var row=chartData[i];if(row.type=="Supply"){sumSupply+=+row.value}}var accumulatedValueSupply=0;var accumulatedValueDemand=0;for(i in chartData){var row=chartData[i];if(row.type=="Supply"){if(sumSupply==0){var percent=0}else{var percent=+row.value/sumSupply*100}chartData[i].percent=percent;accumulatedValueSupply=accumulatedValueSupply+row.value;chartData[i].accumulatedValue=accumulatedValueSupply}else{chartData[i].percent=100;chartData[i].accumulatedValue=accumulatedValueDemand;accumulatedValueDemand=accumulatedValueDemand+row.value;chartData[i].accumulatedValue=accumulatedValueDemand}}var svgId=svgId;var svg=d3.select("#"+svgId);var margin={top:10,right:30,bottom:80,left:60};var width=+svg.attr("width")-margin.left-margin.right;var height=+svg.attr("height")-margin.top-margin.bottom;var barWidthPercent=.7;var barWidth=width*barWidthPercent/2;var minimumPercentToShow=5;var yAxisNumOfTicks=8;var xScale=d3.scaleBand().range([0,width]);xScale.domain(chartData.map(function(d){return d.type}));var xAxis=svg.append("g").attr("id",svgId+"xAxis").call(d3.axisBottom(xScale));xAxis.attr("transform","translate("+margin.left+","+(margin.top+height)+")");d3.select("#"+svgId+"xAxis").selectAll("line").attr("stroke","none");d3.select("#"+svgId+"xAxis").selectAll("text").style("font-size","10px").style("fill","#797979");d3.select("#"+svgId+"xAxis").selectAll("path").style("stroke","lightgrey");var trueMax=d3.max(chartData,function(d){return+d.value});if(sumSupply>trueMax){trueMax=sumSupply}var yScale=d3.scaleLinear().domain([0,trueMax]).range([0,height]);yScale.nice();var yScaleInverse=d3.scaleLinear().domain([0,d3.max(chartData,function(d){return+d.value})]).range([height,0]);yScaleInverse.nice();var yAxis=svg.append("g").attr("id",svgId+"yAxis").call(d3.axisLeft(yScaleInverse).ticks(yAxisNumOfTicks));yAxis.attr("transform","translate("+margin.left+","+margin.top+")");d3.select("#"+svgId+"yAxis").selectAll("line").attr("stroke","none");d3.select("#"+svgId+"yAxis").selectAll("text").style("font-size","10px").style("fill","#797979");d3.select("#"+svgId+"yAxis").selectAll("path").style("stroke","lightgrey");d3.select("#"+svgId+"yAxis").selectAll("g.tick text");svg.append("g").attr("id",svgId+"grid").call(make_y_gridlines().tickSize(-width).tickFormat("")).attr("transform","translate("+margin.left+", "+margin.top+")");function make_y_gridlines(){return d3.axisLeft(yScaleInverse).ticks(yAxisNumOfTicks)}d3.select("#"+svgId+"grid").selectAll("path").attr("opacity",0);d3.select("#"+svgId+"grid").selectAll("line").attr("stroke","lightgrey").style("stroke-dasharray","3, 3").attr("stroke-opacity",.7);var dataBarsG=svg.append("g").attr("transform","translate("+margin.left+","+margin.top+")");dataBarsG.selectAll("rect").data(chartData).enter().append("rect").attr("x",function(d,i){var ret=0;ret=ret+xScale(d.type);ret=ret+barWidth/4;return ret}).attr("y",function(d,i){var ret=0;ret+=height;ret-=yScale(d.accumulatedValue);return ret}).attr("width",barWidth).attr("height",function(d,i){var ret=0;ret+=yScale(+d.value);return ret}).attr("fill",function(d,i){return d.color});var valuesG=svg.append("g").attr("transform","translate("+margin.left+","+margin.top+")");valuesG.selectAll("text").data(chartData).enter().append("text").attr("x",function(d,i){var ret=0;ret=ret+xScale(d.type);ret+=xScale.bandwidth()/2;return ret}).attr("y",function(d,i){var ret=0;ret+=height;ret-=yScale(d.accumulatedValue);ret+=yScale(d.value)/2;return ret}).text(function(d,i){var formatComma=d3.format(",");if(d.percent<minimumPercentToShow){return""}else{return formatComma(d.value)}}).attr("text-anchor","middle").style("font-size",9).style("font-family","arial").style("fill","#232323");var percentsG=svg.append("g").attr("transform","translate("+margin.left+","+margin.top+")");percentsG.selectAll("text").data(chartData).enter().append("text").attr("x",function(d,i){var ret=0;ret=ret+xScale(d.type);ret+=xScale.bandwidth()/2;return ret}).attr("y",function(d,i){var ret=0;ret+=height;ret-=yScale(d.accumulatedValue);ret+=yScale(d.value)/2;ret+=10;return ret}).text(function(d,i){var formatPercent=d3.format(",.0%");if(d.type=="Supply"){if(d.percent<minimumPercentToShow){return""}else{var p=d.percent/100;return formatPercent(p)}}else{return""}}).attr("text-anchor","middle").style("font-size",9).style("font-family","arial").style("fill","#232323");var placeNameG=svg.append("g").attr("transform","translate("+(margin.left+width/2)+","+(margin.top+height+margin.bottom/2)+")");placeNameG.append("text").text(placename).attr("text-anchor","middle").style("font-size",12).style("font-family","arial").style("fill","#797979");var yAxisLabelG=svg.append("g").attr("transform","translate("+margin.left*.2+","+(margin.top+height/2)+")");yAxisLabelG.append("text").text("Count").attr("text-anchor","middle").style("font-size",12).style("font-family","arial").style("fill","#797979").attr("transform","rotate(-90)")}function ATL_render_quality_rated_chart(svgId,chartData){var svgId=svgId;var svg=d3.select("#"+svgId);var margin={top:10,right:30,bottom:40,left:40};var width=+svg.attr("width")-margin.left-margin.right;var height=+svg.attr("height")-margin.top-margin.bottom;var barWidthPercent=.7;var barWidth=width*barWidthPercent/chartData.length;var xScale=d3.scaleBand().range([0,width]);xScale.domain(chartData.map(function(d){return d.placename}));var xAxis=svg.append("g").attr("id",svgId+"xAxis").call(d3.axisBottom(xScale));xAxis.attr("transform","translate("+margin.left+","+(margin.top+height)+")");d3.select("#"+svgId+"xAxis").selectAll("line").attr("stroke","none");d3.select("#"+svgId+"xAxis").selectAll("text").style("font-size","10px").style("fill","#797979");d3.select("#"+svgId+"xAxis").selectAll("path").style("stroke","lightgrey");var yScale=d3.scaleLinear().domain([0,d3.max(chartData,function(d){return+d.percent})]).range([0,height]);yScale.nice();var yScaleInverse=d3.scaleLinear().domain([0,d3.max(chartData,function(d){return+d.percent})]).range([height,0]);yScaleInverse.nice();var yAxis=svg.append("g").attr("id",svgId+"yAxis").call(d3.axisLeft(yScaleInverse));yAxis.attr("transform","translate("+margin.left+","+margin.top+")");d3.select("#"+svgId+"yAxis").selectAll("line").attr("stroke","none");d3.select("#"+svgId+"yAxis").selectAll("text").style("font-size","10px").style("fill","#797979");d3.select("#"+svgId+"yAxis").selectAll("path").style("stroke","lightgrey");d3.select("#"+svgId+"yAxis").selectAll("g.tick text");svg.append("g").attr("id",svgId+"grid").call(make_y_gridlines().tickSize(-width).tickFormat("")).attr("transform","translate("+margin.left+", "+margin.top+")");function make_y_gridlines(){return d3.axisLeft(yScaleInverse)}d3.select("#"+svgId+"grid").selectAll("path").attr("opacity",0);d3.select("#"+svgId+"grid").selectAll("line").attr("stroke","lightgrey").style("stroke-dasharray","3, 3").attr("stroke-opacity",.7);var dataBarsG=svg.append("g").attr("transform","translate("+margin.left+","+margin.top+")");dataBarsG.selectAll("rect").data(chartData).enter().append("rect").attr("x",function(d,i){var ret=0;ret=ret+xScale(d.placename);ret=ret+barWidth/(chartData.length*2);return ret}).attr("y",function(d,i){var ret=0;ret+=height;ret-=yScale(d.percent);return ret}).attr("width",barWidth).attr("height",function(d,i){var ret=0;ret+=yScale(+d.percent);return ret}).attr("fill",function(d,i){return d.color});var percentsG=svg.append("g").attr("transform","translate("+margin.left+","+margin.top+")");percentsG.selectAll("text").data(chartData).enter().append("text").attr("x",function(d,i){var ret=0;ret=ret+xScale(d.placename);ret+=xScale.bandwidth()/2;return ret}).attr("y",function(d,i){var ret=0;ret+=height;ret-=yScale(d.percent);ret+=yScale(d.percent)/2;return ret}).text(function(d,i){var formatPercent=d3.format(",.0%");var p=d.percent/100;return formatPercent(p)}).attr("text-anchor","middle").style("font-size",9).style("font-family","arial").style("fill","#232323");var yAxisLabelG=svg.append("g").attr("transform","translate("+margin.left*.35+","+(margin.top+height/2)+")");yAxisLabelG.append("text").text("Percent").attr("text-anchor","middle").style("font-size",12).style("font-family","arial").style("fill","#797979").attr("transform","rotate(-90)")}function ATLLoadPopAndAge(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var periods=[2010];var years={y2010:periods[0]};var indid=9937862;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cpoplt1=new PIndicator(9937862);indsObj.cpop1=new PIndicator(9937861);indsObj.cpop2=new PIndicator(9937858);indsObj.cpop3=new PIndicator(9937857);indsObj.cpop4=new PIndicator(9937859);indsObj.cpopallage=new PIndicator(9937864);indsObj.cpop0_4=new PIndicator(9868901);indsObj.cpop10_14=new PIndicator(9869025);indsObj.cpop5_9=new PIndicator(9869090);indsObj.cpop15_17=new PIndicator(9868851);indsObj.cpop18_34=new PIndicator(9868870);indsObj.cpop35_64=new PIndicator(9906418);indsObj.cpop=new PIndicator(9869069);indsObj.cpop65p=new PIndicator(9868923);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cpoplt1=getSumOfPlaces(this,indsObj.cpoplt1,years.y2010);var cpop1=getSumOfPlaces(this,indsObj.cpop1,years.y2010);var cpop2=getSumOfPlaces(this,indsObj.cpop2,years.y2010);var cpop3=getSumOfPlaces(this,indsObj.cpop3,years.y2010);var cpop4=getSumOfPlaces(this,indsObj.cpop4,years.y2010);var cpopallage=getSumOfPlaces(this,indsObj.cpopallage,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop10_14=getSumOfPlaces(this,indsObj.cpop10_14,years.y2010);var cpop5_9=getSumOfPlaces(this,indsObj.cpop5_9,years.y2010);var cpop15_17=getSumOfPlaces(this,indsObj.cpop15_17,years.y2010);var cpop05_17=cpop10_14+cpop5_9+cpop15_17;var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010)
;var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var cpop18_64=cpop18_34+cpop35_64;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop65p=getSumOfPlaces(this,indsObj.cpop65p,years.y2010);$("#cpoplt1_place_num").html(PWebUtil.formatNumber(cpoplt1));$("#cpop1_place_num").html(PWebUtil.formatNumber(cpop1));$("#cpop2_place_num").html(PWebUtil.formatNumber(cpop2));$("#cpop3_place_num").html(PWebUtil.formatNumber(cpop3));$("#cpop4_place_num").html(PWebUtil.formatNumber(cpop4));$("#cpop0_4_place_num").html(PWebUtil.formatNumber(cpop0_4));$("#cpop05_17_place_num").html(PWebUtil.formatNumber(cpop05_17));$("#cpop18_64_place_num").html(PWebUtil.formatNumber(cpop18_64));$("#cpop65p_place_num").html(PWebUtil.formatNumber(cpop65p));$("#cpopallage_place_num").html(PWebUtil.formatNumber(cpopallage));var cpoplt1_percent=PWebUtil.formatNumber(divideCheck(cpoplt1,cpopallage,100,null,null,true),"_%",1);var cpop1_percent=PWebUtil.formatNumber(divideCheck(cpop1,cpopallage,100,null,null,true),"_%",1);var cpop2_percent=PWebUtil.formatNumber(divideCheck(cpop2,cpopallage,100,null,null,true),"_%",1);var cpop3_percent=PWebUtil.formatNumber(divideCheck(cpop3,cpopallage,100,null,null,true),"_%",1);var cpop4_percent=PWebUtil.formatNumber(divideCheck(cpop4,cpopallage,100,null,null,true),"_%",1);var cpop0_4_percent=PWebUtil.formatNumber(divideCheck(cpop0_4,cpopallage,100,null,null,true),"_%",1);var cpop05_17_percent=PWebUtil.formatNumber(divideCheck(cpop05_17,cpopallage,100,null,null,true),"_%",1);var cpop18_64_percent=PWebUtil.formatNumber(divideCheck(cpop18_64,cpopallage,100,null,null,true),"_%",1);var cpop65p_percent=PWebUtil.formatNumber(divideCheck(cpop65p,cpopallage,100,null,null,true),"_%",1);$("#cpoplt1_place_percent").html(cpoplt1_percent);$("#cpop1_place_percent").html(cpop1_percent);$("#cpop2_place_percent").html(cpop2_percent);$("#cpop3_place_percent").html(cpop3_percent);$("#cpop4_place_percent").html(cpop4_percent);$("#cpop0_4_place_percent").html(cpop0_4_percent);$("#cpop05_17_place_percent").html(cpop05_17_percent);$("#cpop18_64_place_percent").html(cpop18_64_percent);$("#cpop65p_place_percent").html(cpop65p_percent);$("#cpopallage_place_percent").html("N/A");var cube2=new PCube(indsArr,[place_atlanta_city],periods);cube2.loadValues(function(values){this.values=values;var cpoplt1=getSumOfPlaces(this,indsObj.cpoplt1,years.y2010);var cpop1=getSumOfPlaces(this,indsObj.cpop1,years.y2010);var cpop2=getSumOfPlaces(this,indsObj.cpop2,years.y2010);var cpop3=getSumOfPlaces(this,indsObj.cpop3,years.y2010);var cpop4=getSumOfPlaces(this,indsObj.cpop4,years.y2010);var cpopallage=getSumOfPlaces(this,indsObj.cpopallage,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop10_14=getSumOfPlaces(this,indsObj.cpop10_14,years.y2010);var cpop5_9=getSumOfPlaces(this,indsObj.cpop5_9,years.y2010);var cpop15_17=getSumOfPlaces(this,indsObj.cpop15_17,years.y2010);var cpop05_17=cpop10_14+cpop5_9+cpop15_17;var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010);var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var cpop18_64=cpop18_34+cpop35_64;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop65p=getSumOfPlaces(this,indsObj.cpop65p,years.y2010);var cpoplt1_percent=PWebUtil.formatNumber(divideCheck(cpoplt1,cpopallage,100,null,null,true),"_%",1);var cpop1_percent=PWebUtil.formatNumber(divideCheck(cpop1,cpopallage,100,null,null,true),"_%",1);var cpop2_percent=PWebUtil.formatNumber(divideCheck(cpop2,cpopallage,100,null,null,true),"_%",1);var cpop3_percent=PWebUtil.formatNumber(divideCheck(cpop3,cpopallage,100,null,null,true),"_%",1);var cpop4_percent=PWebUtil.formatNumber(divideCheck(cpop4,cpopallage,100,null,null,true),"_%",1);var cpop0_4_percent=PWebUtil.formatNumber(divideCheck(cpop0_4,cpopallage,100,null,null,true),"_%",1);var cpop05_17_percent=PWebUtil.formatNumber(divideCheck(cpop05_17,cpopallage,100,null,null,true),"_%",1);var cpop18_64_percent=PWebUtil.formatNumber(divideCheck(cpop18_64,cpopallage,100,null,null,true),"_%",1);var cpop65p_percent=PWebUtil.formatNumber(divideCheck(cpop65p,cpopallage,100,null,null,true),"_%",1);$("#cpoplt1_atlanta_percent").html(cpoplt1_percent);$("#cpop1_atlanta_percent").html(cpop1_percent);$("#cpop2_atlanta_percent").html(cpop2_percent);$("#cpop3_atlanta_percent").html(cpop3_percent);$("#cpop4_atlanta_percent").html(cpop4_percent);$("#cpop0_4_atlanta_percent").html(cpop0_4_percent);$("#cpop05_17_atlanta_percent").html(cpop05_17_percent);$("#cpop18_64_atlanta_percent").html(cpop18_64_percent);$("#cpop65p_atlanta_percent").html(cpop65p_percent);$("#cpopallage_atlanta_percent").html("N/A")});var cube4=new PCube(indsArr,counties_atlanta_metro_area,periods);cube4.loadValues(function(values){this.values=values;var cpoplt1=getSumOfPlaces(this,indsObj.cpoplt1,years.y2010);var cpop1=getSumOfPlaces(this,indsObj.cpop1,years.y2010);var cpop2=getSumOfPlaces(this,indsObj.cpop2,years.y2010);var cpop3=getSumOfPlaces(this,indsObj.cpop3,years.y2010);var cpop4=getSumOfPlaces(this,indsObj.cpop4,years.y2010);var cpopallage=getSumOfPlaces(this,indsObj.cpopallage,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop10_14=getSumOfPlaces(this,indsObj.cpop10_14,years.y2010);var cpop5_9=getSumOfPlaces(this,indsObj.cpop5_9,years.y2010);var cpop15_17=getSumOfPlaces(this,indsObj.cpop15_17,years.y2010);var cpop05_17=cpop10_14+cpop5_9+cpop15_17;var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010);var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var cpop18_64=cpop18_34+cpop35_64;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop65p=getSumOfPlaces(this,indsObj.cpop65p,years.y2010);var cpoplt1_percent=PWebUtil.formatNumber(divideCheck(cpoplt1,cpopallage,100,null,null,true),"_%",1);var cpop1_percent=PWebUtil.formatNumber(divideCheck(cpop1,cpopallage,100,null,null,true),"_%",1);var cpop2_percent=PWebUtil.formatNumber(divideCheck(cpop2,cpopallage,100,null,null,true),"_%",1);var cpop3_percent=PWebUtil.formatNumber(divideCheck(cpop3,cpopallage,100,null,null,true),"_%",1);var cpop4_percent=PWebUtil.formatNumber(divideCheck(cpop4,cpopallage,100,null,null,true),"_%",1);var cpop0_4_percent=PWebUtil.formatNumber(divideCheck(cpop0_4,cpopallage,100,null,null,true),"_%",1);var cpop05_17_percent=PWebUtil.formatNumber(divideCheck(cpop05_17,cpopallage,100,null,null,true),"_%",1);var cpop18_64_percent=PWebUtil.formatNumber(divideCheck(cpop18_64,cpopallage,100,null,null,true),"_%",1);var cpop65p_percent=PWebUtil.formatNumber(divideCheck(cpop65p,cpopallage,100,null,null,true),"_%",1);$("#cpoplt1_atlanta_metro_area_percent").html(cpoplt1_percent);$("#cpop1_atlanta_metro_area_percent").html(cpop1_percent);$("#cpop2_atlanta_metro_area_percent").html(cpop2_percent);$("#cpop3_atlanta_metro_area_percent").html(cpop3_percent);$("#cpop4_atlanta_metro_area_percent").html(cpop4_percent);$("#cpop0_4_atlanta_metro_area_percent").html(cpop0_4_percent);$("#cpop05_17_atlanta_metro_area_percent").html(cpop05_17_percent);$("#cpop18_64_atlanta_metro_area_percent").html(cpop18_64_percent);$("#cpop65p_atlanta_metro_area_percent").html(cpop65p_percent);$("#cpopallage_atlanta_metro_area_percent").html("N/A")});var arr=["Census"];var $src=ATLSetSourceLinks(arr,"popage-section")})})}function ATLLoadRace(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9869048;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cpopwh=new PIndicator(9869048);indsObj.cpopbk=new PIndicator(9868917);indsObj.cpopas=new PIndicator(9868922);indsObj.cpopnhpi=new PIndicator(9868883);indsObj.cpopaian=new PIndicator(9868954);indsObj.cpopoth=new PIndicator(9868998);indsObj.cpoptwop=new PIndicator(9869034);indsObj.cpophisp=new PIndicator(9868879);indsObj.cpopallrace=new PIndicator(9868881);indsObj.cpopalleth=new PIndicator(9868976);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cpopwh=getSumOfPlaces(this,indsObj.cpopwh,years.ACSPERIOD)||0;var cpopbk=getSumOfPlaces(this,indsObj.cpopbk,years.ACSPERIOD)||0;var cpopas=getSumOfPlaces(this,indsObj.cpopas,years.ACSPERIOD)||0;var cpopnhpi=getSumOfPlaces(this,indsObj.cpopnhpi,years.ACSPERIOD)||0;var cpopaian=getSumOfPlaces(this,indsObj.cpopaian,years.ACSPERIOD)||0;var cpopoth=getSumOfPlaces(this,indsObj.cpopoth,years.ACSPERIOD)||0;var cpoptwop=getSumOfPlaces(this,indsObj.cpoptwop,years.ACSPERIOD)||0;var cpophisp=getSumOfPlaces(this,indsObj.cpophisp,years.ACSPERIOD)||0;var cpopallrace=getSumOfPlaces(this,indsObj.cpopallrace,years.ACSPERIOD)||0;var cpopalleth=getSumOfPlaces(this,indsObj.cpopalleth,years.ACSPERIOD)||0;$("#cpopwh_place_num").html(PWebUtil.formatNumber(cpopwh));$("#cpopbk_place_num").html(PWebUtil.formatNumber(cpopbk));$("#cpopas_place_num").html(PWebUtil.formatNumber(cpopas));$("#cpopnhpi_place_num").html(PWebUtil.formatNumber(cpopnhpi));$("#cpopaian_place_num").html(PWebUtil.formatNumber(cpopaian));$("#cpopoth_place_num").html(PWebUtil.formatNumber(cpopoth));$("#cpoptwop_place_num").html(PWebUtil.formatNumber(cpoptwop));$("#cpophisp_place_num").html(PWebUtil.formatNumber(cpophisp));$("#cpopallrace_place_num").html(PWebUtil.formatNumber(cpopallrace));$("#cpopalleth_place_num").html(PWebUtil.formatNumber(cpopalleth));var cpopwh_percent=divideCheck(cpopwh,cpopallrace,100,null,null,true);var cpopbk_percent=divideCheck(cpopbk,cpopallrace,100,null,null,true);var cpopas_percent=divideCheck(cpopas,cpopallrace,100,null,null,true);var cpopnhpi_percent=divideCheck(cpopnhpi,cpopallrace,100,null,null,true);var cpopaian_percent=divideCheck(cpopaian,cpopallrace,100,null,null,true);var cpopoth_percent=divideCheck(cpopoth,cpopallrace,100,null,null,true);var cpoptwop_percent=divideCheck(cpoptwop,cpopallrace,100,null,null,true);var cpophisp_percent=divideCheck(cpophisp,cpopallrace,100,null,null,true);$("#cpopwh_place_percent").html(PWebUtil.formatNumber(cpopwh_percent,"_%"));$("#cpopbk_place_percent").html(PWebUtil.formatNumber(cpopbk_percent,"_%"));$("#cpopas_place_percent").html(PWebUtil.formatNumber(cpopas_percent,"_%"));$("#cpopnhpi_place_percent").html(PWebUtil.formatNumber(cpopnhpi_percent,"_%"));$("#cpopaian_place_percent").html(PWebUtil.formatNumber(cpopaian_percent,"_%"));$("#cpopoth_place_percent").html(PWebUtil.formatNumber(cpopoth_percent,"_%"));$("#cpoptwop_place_percent").html(PWebUtil.formatNumber(cpoptwop_percent,"_%"));$("#cpophisp_place_percent").html(PWebUtil.formatNumber(cpophisp_percent,"_%"));var cube2=new PCube(indsArr,[place_atlanta_city],periods);cube2.loadValues(function(values){this.values=values;var cpopwh=getSumOfPlaces(this,indsObj.cpopwh,years.ACSPERIOD)||0;var cpopbk=getSumOfPlaces(this,indsObj.cpopbk,years.ACSPERIOD)||0;var cpopas=getSumOfPlaces(this,indsObj.cpopas,years.ACSPERIOD)||0;var cpopnhpi=getSumOfPlaces(this,indsObj.cpopnhpi,years.ACSPERIOD)||0;var cpopaian=getSumOfPlaces(this,indsObj.cpopaian,years.ACSPERIOD)||0;var cpopoth=getSumOfPlaces(this,indsObj.cpopoth,years.ACSPERIOD)||0;var cpoptwop=getSumOfPlaces(this,indsObj.cpoptwop,years.ACSPERIOD)||0;var cpophisp=getSumOfPlaces(this,indsObj.cpophisp,years.ACSPERIOD)||0;var cpopallrace=getSumOfPlaces(this,indsObj.cpopallrace,years.ACSPERIOD)||0;var cpopalleth=getSumOfPlaces(this,indsObj.cpopalleth,years.ACSPERIOD)||0;var cpopwh_percent=divideCheck(cpopwh,cpopallrace,100,null,null,true);var cpopbk_percent=divideCheck(cpopbk,cpopallrace,100,null,null,true);var cpopas_percent=divideCheck(cpopas,cpopallrace,100,null,null,true);var cpopnhpi_percent=divideCheck(cpopnhpi,cpopallrace,100,null,null,true);var cpopaian_percent=divideCheck(cpopaian,cpopallrace,100,null,null,true);var cpopoth_percent=divideCheck(cpopoth,cpopallrace,100,null,null,true);var cpoptwop_percent=divideCheck(cpoptwop,cpopallrace,100,null,null,true);var cpophisp_percent=divideCheck(cpophisp,cpopalleth,100,null,null,true);$("#cpopwh_atlanta_percent").html(PWebUtil.formatNumber(cpopwh_percent,"_%"));$("#cpopbk_atlanta_percent").html(PWebUtil.formatNumber(cpopbk_percent,"_%"));$("#cpopas_atlanta_percent").html(PWebUtil.formatNumber(cpopas_percent,"_%"));$("#cpopnhpi_atlanta_percent").html(PWebUtil.formatNumber(cpopnhpi_percent,"_%"));$("#cpopaian_atlanta_percent").html(PWebUtil.formatNumber(cpopaian_percent,"_%"));$("#cpopoth_atlanta_percent").html(PWebUtil.formatNumber(cpopoth_percent,"_%"));$("#cpoptwop_atlanta_percent").html(PWebUtil.formatNumber(cpoptwop_percent,"_%"));$("#cpophisp_atlanta_percent").html(PWebUtil.formatNumber(cpophisp_percent,"_%"))});var cube4=new PCube(indsArr,counties_atlanta_metro_area,periods);cube4.loadValues(function(values){this.values=values;var cpopwh=getSumOfPlaces(this,indsObj.cpopwh,years.ACSPERIOD)||0;var cpopbk=getSumOfPlaces(this,indsObj.cpopbk,years.ACSPERIOD)||0;var cpopas=getSumOfPlaces(this,indsObj.cpopas,years.ACSPERIOD)||0;var cpopnhpi=getSumOfPlaces(this,indsObj.cpopnhpi,years.ACSPERIOD)||0;var cpopaian=getSumOfPlaces(this,indsObj.cpopaian,years.ACSPERIOD)||0;var cpopoth=getSumOfPlaces(this,indsObj.cpopoth,years.ACSPERIOD)||0;var cpoptwop=getSumOfPlaces(this,indsObj.cpoptwop,years.ACSPERIOD)||0;var cpophisp=getSumOfPlaces(this,indsObj.cpophisp,years.ACSPERIOD)||0;var cpopallrace=getSumOfPlaces(this,indsObj.cpopallrace,years.ACSPERIOD)||0;var cpopalleth=getSumOfPlaces(this,indsObj.cpopalleth,years.ACSPERIOD)||0;var cpopwh_percent=divideCheck(cpopwh,cpopallrace,100,null,null,true);var cpopbk_percent=divideCheck(cpopbk,cpopallrace,100,null,null,true);var cpopas_percent=divideCheck(cpopas,cpopallrace,100,null,null,true);var cpopnhpi_percent=divideCheck(cpopnhpi,cpopallrace,100,null,null,true);var cpopaian_percent=divideCheck(cpopaian,cpopallrace,100,null,null,true);var cpopoth_percent=divideCheck(cpopoth,cpopallrace,100,null,null,true);var cpoptwop_percent=divideCheck(cpoptwop,cpopallrace,100,null,null,true);var cpophisp_percent=divideCheck(cpophisp,cpopalleth,100,null,null,true);$("#cpopwh_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cpopwh_percent,"_%"));$("#cpopbk_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cpopbk_percent,"_%"));$("#cpopas_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cpopas_percent,"_%"));$("#cpopnhpi_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cpopnhpi_percent,"_%"));$("#cpopaian_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cpopaian_percent,"_%"));$("#cpopoth_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cpopoth_percent,"_%"));$("#cpoptwop_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cpoptwop_percent,"_%"));$("#cpophisp_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cpophisp_percent,"_%"));var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=ATLSetSourceLinks(arr,"race-section")})})})}function ATLLoadIncomeText(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9871831;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.mhhinc=new PIndicator(9871831);indsObj.mhhinc.nodata=-99999999;indsObj.mfaminc=new PIndicator(9871853);indsObj.mfaminc.nodata=-99999999;indsObj.cfam=new PIndicator(9868933);indsObj.chh=new PIndicator(9869078);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var areaCube=new PCube(indsArr,aggObj[2],periods);areaCube.loadValues(function(values){this.values=values;var cfam=getSumOfPlaces(this,indsObj.cfam,periods[0]);$("#income_text_cfam").html(PWebUtil.formatNumber(cfam));var chh=getSumOfPlaces(this,indsObj.chh,periods[0]);$("#income_text_chh").html(PWebUtil.formatNumber(chh));var atlantaCube=new PCube(indsArr,[place_atlanta_city],periods);atlantaCube.loadValues(function(values){this.values=values;var arr=areaCube.getSortedValuesOfPlacesIgnoreNulls(indsObj.mhhinc,periods[0]);var mhhinc_range=getRangeString(arr[0],arr[arr.length-1],"$_").toLowerCase();$("#income_text_mhhinc_range").html(mhhinc_range)});var defid=boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.BLOCKGROUP.id,2);place_atlanta_city.getPlacesWithin(PPlaceType.BLOCKGROUP,null,defid,function(blockgroups){var cube=new PCube(indsArr,blockgroups,periods);cube.loadValues(function(values){this.values=values;var median_mhhinc_atlanta=cube.getMedianOfPlacesIgnoreNulls(indsObj.mhhinc,periods[0]);$("#income_text_mhhinc_atlanta_range").html(PWebUtil.formatNumber(median_mhhinc_atlanta,"$_",0))})});var defid=boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.CENSUSTRACT.id,2);boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,defid,function(tracts){var tracts=tracts||[];var cube=new PCube(indsArr,tracts,periods);cube.loadValues(function(values){this.values=values;var arr=cube.getSortedValuesOfPlacesIgnoreNulls(indsObj.mfaminc,periods[0]);var mfaminc=getRangeString(arr[0],arr[arr.length-1],"$_").toLowerCase();$("#income_text_mfaminc").html(mfaminc)})});var defid=boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.CENSUSTRACT.id,2);place_atlanta_city.getPlacesWithin(PPlaceType.CENSUSTRACT,null,defid,function(tracts){var tracts=tracts||[];var cube=new PCube(indsArr,tracts,periods);cube.loadValues(function(values){this.values=values;var median_mfaminc_altanta=cube.getMedianOfPlacesIgnoreNulls(indsObj.mfaminc,periods[0]);$("#income_text_mfaminc_city").html(PWebUtil.formatNumber(median_mfaminc_altanta,"$_"))})})})})}function ATLLoadPopulationText(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var periods=[2010];var years={y2010:periods[0]};var indid=9869069;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cpop=new PIndicator(9869069);indsObj.cpop0_4=new PIndicator(9868901);indsObj.cpop18_34=new PIndicator(9868870);indsObj.cpop35_64=new PIndicator(9906418);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010);var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var population_working_age=cpop18_34+cpop35_64;$("#population_text_total_population").html(PWebUtil.formatNumber(cpop));$("#population_text_population_chilcare_age").html(PWebUtil.formatNumber(cpop0_4));$("#population_text_population_working_age").html(PWebUtil.formatNumber(population_working_age))})})}function ATLLoadIncomePart1(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9938092;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cfamlt25=new PIndicator(9938092);indsObj.cfam25_35=new PIndicator(9938088);indsObj.cfam35_50=new PIndicator(9938089);indsObj.cfam50_75=new PIndicator(9938090);indsObj.cfam75_100=new PIndicator(9938091);indsObj.cfam100_125=new PIndicator(9938085);indsObj.cfam125_150=new PIndicator(9938086);indsObj.cfam150p=new PIndicator(9938087);indsObj.cfamallinc=new PIndicator(9871916);indsObj.chilt25=new PIndicator(9871803);indsObj.chi25_35=new PIndicator(9871920);indsObj.chi35_50=new PIndicator(9871806);indsObj.chi50_75=new PIndicator(9871923);indsObj.chi75_100=new PIndicator(9871914);indsObj.chi100_125=new PIndicator(9871957);indsObj.chi125_150=new PIndicator(9871938);indsObj.chi150p=new PIndicator(9871960);indsObj.chiall=new PIndicator(9871984);indsObj.mfaminc=new PIndicator(9871853);indsObj.mhhinc=new PIndicator(9871831);indsObj.mhhinc.nodata=-99999999;indsObj.cfam=new PIndicator(9868933);indsObj.chh=new PIndicator(9869078);indsObj.cfampov50p=new PIndicator(9938096);indsObj.cfamund5_all=new PIndicator(9938097);indsObj.cfampov=new PIndicator(9871986);indsObj.cfampov_lt200p=new PIndicator(9938094);indsObj.cfampov_lt300p=new PIndicator(9938095);indsObj.cfampov_gt300p=new PIndicator(9938093);indsObj.cfamund5pov=new PIndicator(9938098);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cfamlt25=getSumOfPlaces(this,indsObj.cfamlt25,years.ACSPERIOD)||0;var cfam25_35=getSumOfPlaces(this,indsObj.cfam25_35,years.ACSPERIOD)||0;var cfam35_50=getSumOfPlaces(this,indsObj.cfam35_50,years.ACSPERIOD)||0;var cfam50_75=getSumOfPlaces(this,indsObj.cfam50_75,years.ACSPERIOD)||0;var cfam75_100=getSumOfPlaces(this,indsObj.cfam75_100,years.ACSPERIOD)||0;var cfam100_125=getSumOfPlaces(this,indsObj.cfam100_125,years.ACSPERIOD)||0;var cfam125_150=getSumOfPlaces(this,indsObj.cfam125_150,years.ACSPERIOD)||0;var cfam150p=getSumOfPlaces(this,indsObj.cfam150p,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;$("#cfamlt25_place_num").html(PWebUtil.formatNumber(cfamlt25));$("#cfam25_35_place_num").html(PWebUtil.formatNumber(cfam25_35));$("#cfam35_50_place_num").html(PWebUtil.formatNumber(cfam35_50));$("#cfam50_75_place_num").html(PWebUtil.formatNumber(cfam50_75));$("#cfam75_100_place_num").html(PWebUtil.formatNumber(cfam75_100));$("#cfam100_125_place_num").html(PWebUtil.formatNumber(cfam100_125));$("#cfam125_150_place_num").html(PWebUtil.formatNumber(cfam125_150));$("#cfam150p_place_num").html(PWebUtil.formatNumber(cfam150p));var cfamlt25_percent=divideCheck(cfamlt25,cfamallinc,100,null,null,true);var cfam25_35_percent=divideCheck(cfam25_35,cfamallinc,100,null,null,true);var cfam35_50_percent=divideCheck(cfam35_50,cfamallinc,100,null,null,true);var cfam50_75_percent=divideCheck(cfam50_75,cfamallinc,100,null,null,true);var cfam75_100_percent=divideCheck(cfam75_100,cfamallinc,100,null,null,true);var cfam100_125_percent=divideCheck(cfam100_125,cfamallinc,100,null,null,true);var cfam125_150_percent=divideCheck(cfam125_150,cfamallinc,100,null,null,true);var cfam150p_percent=divideCheck(cfam150p,cfamallinc,100,null,null,true);$("#cfamlt25_place_percent").html(PWebUtil.formatNumber(cfamlt25_percent,"_%",1));$("#cfam25_35_place_percent").html(PWebUtil.formatNumber(cfam25_35_percent,"_%",1));$("#cfam35_50_place_percent").html(PWebUtil.formatNumber(cfam35_50_percent,"_%",1));$("#cfam50_75_place_percent").html(PWebUtil.formatNumber(cfam50_75_percent,"_%",1));$("#cfam75_100_place_percent").html(PWebUtil.formatNumber(cfam75_100_percent,"_%",1));$("#cfam100_125_place_percent").html(PWebUtil.formatNumber(cfam100_125_percent,"_%",1));$("#cfam125_150_place_percent").html(PWebUtil.formatNumber(cfam125_150_percent,"_%",1));$("#cfam150p_place_percent").html(PWebUtil.formatNumber(cfam150p_percent,"_%",1));var cube2=new PCube(indsArr,[place_atlanta_city],periods);cube2.loadValues(function(values){this.values=values;var cfamlt25=getSumOfPlaces(this,indsObj.cfamlt25,years.ACSPERIOD)||0;var cfam25_35=getSumOfPlaces(this,indsObj.cfam25_35,years.ACSPERIOD)||0;var cfam35_50=getSumOfPlaces(this,indsObj.cfam35_50,years.ACSPERIOD)||0;var cfam50_75=getSumOfPlaces(this,indsObj.cfam50_75,years.ACSPERIOD)||0;var cfam75_100=getSumOfPlaces(this,indsObj.cfam75_100,years.ACSPERIOD)||0;var cfam100_125=getSumOfPlaces(this,indsObj.cfam100_125,years.ACSPERIOD)||0;var cfam125_150=getSumOfPlaces(this,indsObj.cfam125_150,years.ACSPERIOD)||0;var cfam150p=getSumOfPlaces(this,indsObj.cfam150p,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamlt25_percent=divideCheck(cfamlt25,cfamallinc,100,null,null,true);var cfam25_35_percent=divideCheck(cfam25_35,cfamallinc,100,null,null,true);var cfam35_50_percent=divideCheck(cfam35_50,cfamallinc,100,null,null,true);var cfam50_75_percent=divideCheck(cfam50_75,cfamallinc,100,null,null,true);var cfam75_100_percent=divideCheck(cfam75_100,cfamallinc,100,null,null,true);var cfam100_125_percent=divideCheck(cfam100_125,cfamallinc,100,null,null,true);var cfam125_150_percent=divideCheck(cfam125_150,cfamallinc,100,null,null,true);var cfam150p_percent=divideCheck(cfam150p,cfamallinc,100,null,null,true);$("#cfamlt25_atlanta_percent").html(PWebUtil.formatNumber(cfamlt25_percent,"_%",1));$("#cfam25_35_atlanta_percent").html(PWebUtil.formatNumber(cfam25_35_percent,"_%",1));$("#cfam35_50_atlanta_percent").html(PWebUtil.formatNumber(cfam35_50_percent,"_%",1));$("#cfam50_75_atlanta_percent").html(PWebUtil.formatNumber(cfam50_75_percent,"_%",1));$("#cfam75_100_atlanta_percent").html(PWebUtil.formatNumber(cfam75_100_percent,"_%",1));$("#cfam100_125_atlanta_percent").html(PWebUtil.formatNumber(cfam100_125_percent,"_%",1));$("#cfam125_150_atlanta_percent").html(PWebUtil.formatNumber(cfam125_150_percent,"_%",1));$("#cfam150p_atlanta_percent").html(PWebUtil.formatNumber(cfam150p_percent,"_%",1))});var cube4=new PCube(indsArr,counties_atlanta_metro_area,periods);cube4.loadValues(function(values){this.values=values;var cfamlt25=getSumOfPlaces(this,indsObj.cfamlt25,years.ACSPERIOD)||0;var cfam25_35=getSumOfPlaces(this,indsObj.cfam25_35,years.ACSPERIOD)||0;var cfam35_50=getSumOfPlaces(this,indsObj.cfam35_50,years.ACSPERIOD)||0;var cfam50_75=getSumOfPlaces(this,indsObj.cfam50_75,years.ACSPERIOD)||0;var cfam75_100=getSumOfPlaces(this,indsObj.cfam75_100,years.ACSPERIOD)||0;var cfam100_125=getSumOfPlaces(this,indsObj.cfam100_125,years.ACSPERIOD)||0;var cfam125_150=getSumOfPlaces(this,indsObj.cfam125_150,years.ACSPERIOD)||0;var cfam150p=getSumOfPlaces(this,indsObj.cfam150p,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamlt25_percent=divideCheck(cfamlt25,cfamallinc,100,null,null,true);var cfam25_35_percent=divideCheck(cfam25_35,cfamallinc,100,null,null,true);var cfam35_50_percent=divideCheck(cfam35_50,cfamallinc,100,null,null,true);var cfam50_75_percent=divideCheck(cfam50_75,cfamallinc,100,null,null,true);var cfam75_100_percent=divideCheck(cfam75_100,cfamallinc,100,null,null,true);var cfam100_125_percent=divideCheck(cfam100_125,cfamallinc,100,null,null,true);var cfam125_150_percent=divideCheck(cfam125_150,cfamallinc,100,null,null,true);var cfam150p_percent=divideCheck(cfam150p,cfamallinc,100,null,null,true);$("#cfamlt25_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfamlt25_percent,"_%",1));$("#cfam25_35_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfam25_35_percent,"_%",1));$("#cfam35_50_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfam35_50_percent,"_%",1));$("#cfam50_75_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfam50_75_percent,"_%",1));$("#cfam75_100_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfam75_100_percent,"_%",1));$("#cfam100_125_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfam100_125_percent,"_%",1));$("#cfam125_150_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfam125_150_percent,"_%",1));$("#cfam150p_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfam150p_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=ATLSetSourceLinks(arr,"income-section")})})}function ATLLoadIncomePart2(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area,tracts){var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9938092;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cfampov50p=new PIndicator(9938096);indsObj.cfampov=new PIndicator(9871986);indsObj.cfampov_lt200p=new PIndicator(9938094);indsObj.cfampov_lt300p=new PIndicator(9938095);indsObj.cfampov_gt300p=new PIndicator(9938093);indsObj.cfamund5pov=new PIndicator(9938098);indsObj.cfamallinc=new PIndicator(9871916);indsObj.cfamund5_all=new PIndicator(9938097);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,tracts,periods);cube1.loadValues(function(values){this.values=values;var cfampov50p=getSumOfPlaces(this,indsObj.cfampov50p,years.ACSPERIOD)||0;var cfampov=getSumOfPlaces(this,indsObj.cfampov,years.ACSPERIOD)||0;var cfampov_lt200p=getSumOfPlaces(this,indsObj.cfampov_lt200p,years.ACSPERIOD)||0;var cfampov_lt300p=getSumOfPlaces(this,indsObj.cfampov_lt300p,years.ACSPERIOD)||0;var cfampov_gt300p=getSumOfPlaces(this,indsObj.cfampov_gt300p,years.ACSPERIOD)||0;var cfamund5pov=getSumOfPlaces(this,indsObj.cfamund5pov,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamund5_all=getSumOfPlaces(this,indsObj.cfamund5_all,years.ACSPERIOD)||0;$("#cfampov50p_place_num").html(PWebUtil.formatNumber(cfampov50p));$("#cfampov_place_num").html(PWebUtil.formatNumber(cfampov));$("#cfampov_lt200p_place_num").html(PWebUtil.formatNumber(cfampov_lt200p));$("#cfampov_lt300p_place_num").html(PWebUtil.formatNumber(cfampov_lt300p));$("#cfampov_gt300p_place_num").html(PWebUtil.formatNumber(cfampov_gt300p));$("#cfamund5pov_place_num").html(PWebUtil.formatNumber(cfamund5pov));var cfampov50p_percent=divideCheck(cfampov50p,cfamallinc,100,null,null,true);var cfampov_percent=divideCheck(cfampov,cfamallinc,100,null,null,true);var cfampov_lt200p_percent=divideCheck(cfampov_lt200p,cfamallinc,100,null,null,true);var cfampov_lt300p_percent=divideCheck(cfampov_lt300p,cfamallinc,100,null,null,true);var cfampov_gt300p_percent=divideCheck(cfampov_gt300p,cfamallinc,100,null,null,true);var cfamund5pov_percent=divideCheck(cfamund5pov,cfamund5_all,100,null,null,true);$("#cfampov50p_place_percent").html(PWebUtil.formatNumber(cfampov50p_percent,"_%",1));$("#cfampov_place_percent").html(PWebUtil.formatNumber(cfampov_percent,"_%",1));$("#cfampov_lt200p_place_percent").html(PWebUtil.formatNumber(cfampov_lt200p_percent,"_%",1));$("#cfampov_lt300p_place_percent").html(PWebUtil.formatNumber(cfampov_lt300p_percent,"_%",1));$("#cfampov_gt300p_place_percent").html(PWebUtil.formatNumber(cfampov_gt300p_percent,"_%",1));$("#cfamund5pov_place_percent").html(PWebUtil.formatNumber(cfamund5pov_percent,"_%",1))});var cube2=new PCube(indsArr,[place_atlanta_city],periods);cube2.loadValues(function(values){this.values=values;var cfampov50p=getSumOfPlaces(this,indsObj.cfampov50p,years.ACSPERIOD)||0;var cfampov=getSumOfPlaces(this,indsObj.cfampov,years.ACSPERIOD)||0;var cfampov_lt200p=getSumOfPlaces(this,indsObj.cfampov_lt200p,years.ACSPERIOD)||0;var cfampov_lt300p=getSumOfPlaces(this,indsObj.cfampov_lt300p,years.ACSPERIOD)||0;var cfampov_gt300p=getSumOfPlaces(this,indsObj.cfampov_gt300p,years.ACSPERIOD)||0;var cfamund5pov=getSumOfPlaces(this,indsObj.cfamund5pov,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamund5_all=getSumOfPlaces(this,indsObj.cfamund5_all,years.ACSPERIOD)||0;var cfampov50p_percent=divideCheck(cfampov50p,cfamallinc,100,null,null,true);var cfampov_percent=divideCheck(cfampov,cfamallinc,100,null,null,true);var cfampov_lt200p_percent=divideCheck(cfampov_lt200p,cfamallinc,100,null,null,true);var cfampov_lt300p_percent=divideCheck(cfampov_lt300p,cfamallinc,100,null,null,true);var cfampov_gt300p_percent=divideCheck(cfampov_gt300p,cfamallinc,100,null,null,true);var cfamund5pov_percent=divideCheck(cfamund5pov,cfamund5_all,100,null,null,true);$("#cfampov50p_atlanta_percent").html(PWebUtil.formatNumber(cfampov50p_percent,"_%",1));$("#cfampov_atlanta_percent").html(PWebUtil.formatNumber(cfampov_percent,"_%",1));$("#cfampov_lt200p_atlanta_percent").html(PWebUtil.formatNumber(cfampov_lt200p_percent,"_%",1));$("#cfampov_lt300p_atlanta_percent").html(PWebUtil.formatNumber(cfampov_lt300p_percent,"_%",1));$("#cfampov_gt300p_atlanta_percent").html(PWebUtil.formatNumber(cfampov_gt300p_percent,"_%",1));$("#cfamund5pov_atlanta_percent").html(PWebUtil.formatNumber(cfamund5pov_percent,"_%",1))});var cube3=new PCube(indsArr,counties_atlanta_metro_area,periods);cube3.loadValues(function(values){this.values=values;var cfampov50p=getSumOfPlaces(this,indsObj.cfampov50p,years.ACSPERIOD)||0;var cfampov=getSumOfPlaces(this,indsObj.cfampov,years.ACSPERIOD)||0;var cfampov_lt200p=getSumOfPlaces(this,indsObj.cfampov_lt200p,years.ACSPERIOD)||0
;var cfampov_lt300p=getSumOfPlaces(this,indsObj.cfampov_lt300p,years.ACSPERIOD)||0;var cfampov_gt300p=getSumOfPlaces(this,indsObj.cfampov_gt300p,years.ACSPERIOD)||0;var cfamund5pov=getSumOfPlaces(this,indsObj.cfamund5pov,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamund5_all=getSumOfPlaces(this,indsObj.cfamund5_all,years.ACSPERIOD)||0;var cfampov50p_percent=divideCheck(cfampov50p,cfamallinc,100,null,null,true);var cfampov_percent=divideCheck(cfampov,cfamallinc,100,null,null,true);var cfampov_lt200p_percent=divideCheck(cfampov_lt200p,cfamallinc,100,null,null,true);var cfampov_lt300p_percent=divideCheck(cfampov_lt300p,cfamallinc,100,null,null,true);var cfampov_gt300p_percent=divideCheck(cfampov_gt300p,cfamallinc,100,null,null,true);var cfamund5pov_percent=divideCheck(cfamund5pov,cfamund5_all,100,null,null,true);$("#cfampov50p_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfampov50p_percent,"_%",1));$("#cfampov_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfampov_percent,"_%",1));$("#cfampov_lt200p_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfampov_lt200p_percent,"_%",1));$("#cfampov_lt300p_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfampov_lt300p_percent,"_%",1));$("#cfampov_gt300p_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfampov_gt300p_percent,"_%",1));$("#cfamund5pov_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cfamund5pov_percent,"_%",1))})})}function ATLSetSourceLinks(arr,id){var links=[];for(var i=0;i<arr.length;i++){var a='<a class="link" href="/files/ATLAccessMap_DataDirectory.pdf" target="new">'+arr[i]+"</a>";links.push(a)}if(links.length>0){links=links.join("; ")}var $src=$("<div>",{class:"source"});$src.html("Source: "+links);$("#"+id).append($src)}function ATLLoadHouseholdStatus(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var periods=[2010,2015,P.constants.latestACSPeriod];var years={y2010:periods[0],y2015:periods[1],latestACSPeriod:periods[2]};var indid=9937862;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.chh_noch=new PIndicator(9868874);indsObj.chh_mcwc=new PIndicator(9868990);indsObj.chh_shwc=new PIndicator(9869028);indsObj.chh_fhnhwc=new PIndicator(9869005);indsObj.chh_gp=new PIndicator(9948469);indsObj.chh_alltype=new PIndicator(9868988);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var chh_noch=getSumOfPlaces(this,indsObj.chh_noch,years.y2010);var chh_mcwc=getSumOfPlaces(this,indsObj.chh_mcwc,years.y2010);var chh_shwc=getSumOfPlaces(this,indsObj.chh_shwc,years.y2010);var chh_fhnhwc=getSumOfPlaces(this,indsObj.chh_fhnhwc,years.y2010);var chh_alltype=getSumOfPlaces(this,indsObj.chh_alltype,years.y2010);$("#chh_noch_place_num").html(PWebUtil.formatNumber(chh_noch));$("#chh_mcwc_place_num").html(PWebUtil.formatNumber(chh_mcwc));$("#chh_shwc_place_num").html(PWebUtil.formatNumber(chh_shwc));$("#chh_fhnhwc_place_num").html(PWebUtil.formatNumber(chh_fhnhwc));var chh_noch_percent=divideCheck(chh_noch,chh_alltype,100,null,null,true);var chh_mcwc_percent=divideCheck(chh_mcwc,chh_alltype,100,null,null,true);var chh_shwc_percent=divideCheck(chh_shwc,chh_alltype,100,null,null,true);var chh_fhnhwc_percent=divideCheck(chh_fhnhwc,chh_alltype,100,null,null,true);$("#chh_noch_place_percent").html(PWebUtil.formatNumber(chh_noch_percent,"_%",1));$("#chh_mcwc_place_percent").html(PWebUtil.formatNumber(chh_mcwc_percent,"_%",1));$("#chh_shwc_place_percent").html(PWebUtil.formatNumber(chh_shwc_percent,"_%",1));$("#chh_fhnhwc_place_percent").html(PWebUtil.formatNumber(chh_fhnhwc_percent,"_%",1));var overlap_pct=50;boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,null,function(tracts){var tracts=tracts||[];var cube=new PCube(indsArr,tracts,periods);cube.loadValues(function(values){this.values=values;var chh_gp=getSumOfPlaces(this,indsObj.chh_gp,years.latestACSPeriod);$("#chh_gp_place_num").html(PWebUtil.formatNumber(chh_gp));var chh_gp_percent=divideCheck(chh_gp,chh_alltype,100,null,null,true);$("#chh_gp_place_percent").html(PWebUtil.formatNumber(chh_gp_percent,"_%",1))})},overlap_pct,null,null,null,"id,identifier,label,typeid,state");var cube2=new PCube(indsArr,[place_atlanta_city],periods);cube2.loadValues(function(values){this.values=values;var chh_noch=getSumOfPlaces(this,indsObj.chh_noch,years.y2010);var chh_mcwc=getSumOfPlaces(this,indsObj.chh_mcwc,years.y2010);var chh_shwc=getSumOfPlaces(this,indsObj.chh_shwc,years.y2010);var chh_fhnhwc=getSumOfPlaces(this,indsObj.chh_fhnhwc,years.y2010);var chh_alltype=getSumOfPlaces(this,indsObj.chh_alltype,years.y2010);var chh_gp=getSumOfPlaces(this,indsObj.chh_gp,years.latestACSPeriod);var chh_noch_percent=divideCheck(chh_noch,chh_alltype,100,null,null,true);var chh_mcwc_percent=divideCheck(chh_mcwc,chh_alltype,100,null,null,true);var chh_shwc_percent=divideCheck(chh_shwc,chh_alltype,100,null,null,true);var chh_fhnhwc_percent=divideCheck(chh_fhnhwc,chh_alltype,100,null,null,true);var chh_gp_percent=divideCheck(chh_gp,chh_alltype,100,null,null,true);$("#chh_noch_atlanta_percent").html(PWebUtil.formatNumber(chh_noch_percent,"_%",1));$("#chh_mcwc_atlanta_percent").html(PWebUtil.formatNumber(chh_mcwc_percent,"_%",1));$("#chh_shwc_atlanta_percent").html(PWebUtil.formatNumber(chh_shwc_percent,"_%",1));$("#chh_fhnhwc_atlanta_percent").html(PWebUtil.formatNumber(chh_fhnhwc_percent,"_%",1));$("#chh_gp_atlanta_percent").html(PWebUtil.formatNumber(chh_gp_percent,"_%",1))});var cube4=new PCube(indsArr,counties_atlanta_metro_area,periods);cube4.loadValues(function(values){this.values=values;var chh_noch=getSumOfPlaces(this,indsObj.chh_noch,years.y2010);var chh_mcwc=getSumOfPlaces(this,indsObj.chh_mcwc,years.y2010);var chh_shwc=getSumOfPlaces(this,indsObj.chh_shwc,years.y2010);var chh_fhnhwc=getSumOfPlaces(this,indsObj.chh_fhnhwc,years.y2010);var chh_alltype=getSumOfPlaces(this,indsObj.chh_alltype,years.y2010);var chh_gp=getSumOfPlaces(this,indsObj.chh_gp,years.latestACSPeriod);var chh_noch_percent=divideCheck(chh_noch,chh_alltype,100,null,null,true);var chh_mcwc_percent=divideCheck(chh_mcwc,chh_alltype,100,null,null,true);var chh_shwc_percent=divideCheck(chh_shwc,chh_alltype,100,null,null,true);var chh_fhnhwc_percent=divideCheck(chh_fhnhwc,chh_alltype,100,null,null,true);var chh_gp_percent=divideCheck(chh_gp,chh_alltype,100,null,null,true);$("#chh_noch_atlanta_metro_area_percent").html(PWebUtil.formatNumber(chh_noch_percent,"_%",1));$("#chh_mcwc_atlanta_metro_area_percent").html(PWebUtil.formatNumber(chh_mcwc_percent,"_%",1));$("#chh_shwc_atlanta_metro_area_percent").html(PWebUtil.formatNumber(chh_shwc_percent,"_%",1));$("#chh_fhnhwc_atlanta_metro_area_percent").html(PWebUtil.formatNumber(chh_fhnhwc_percent,"_%",1));$("#chh_gp_atlanta_metro_area_percent").html(PWebUtil.formatNumber(chh_gp_percent,"_%",1))});var arr=["Census, 2010"];var $src=ATLSetSourceLinks(arr,"household-section")})})}function ATLLoadSchoolEnrollment(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9873905;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.ck12pub=new PIndicator(9873905);indsObj.ck12priv=new PIndicator(9873910);indsObj.ck12all=new PIndicator(9873922);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var ck12pub=getSumOfPlaces(this,indsObj.ck12pub,years.ACSPERIOD);var ck12priv=getSumOfPlaces(this,indsObj.ck12priv,years.ACSPERIOD);var ck12all=getSumOfPlaces(this,indsObj.ck12all,years.ACSPERIOD);var ck12pub_percent=divideCheck(ck12pub,ck12all,100,null,null,true);var ck12priv_percent=divideCheck(ck12priv,ck12all,100,null,null,true);$("#ck12pub_place_percent").html(PWebUtil.formatNumber(ck12pub_percent,"_%",1));$("#ck12priv_place_percent").html(PWebUtil.formatNumber(ck12priv_percent,"_%",1));var cube2=new PCube(indsArr,[place_atlanta_city],periods);cube2.loadValues(function(values){this.values=values;var ck12pub=getSumOfPlaces(this,indsObj.ck12pub,years.ACSPERIOD);var ck12priv=getSumOfPlaces(this,indsObj.ck12priv,years.ACSPERIOD);var ck12all=getSumOfPlaces(this,indsObj.ck12all,years.ACSPERIOD);var ck12pub_percent=divideCheck(ck12pub,ck12all,100,null,null,true);var ck12priv_percent=divideCheck(ck12priv,ck12all,100,null,null,true);$("#ck12pub_atlanta_percent").html(PWebUtil.formatNumber(ck12pub_percent,"_%",1));$("#ck12priv_atlanta_percent").html(PWebUtil.formatNumber(ck12priv_percent,"_%",1))});var cube3=new PCube(indsArr,[place_atlanta_city],periods);cube3.loadValues(function(values){this.values=values;var ck12pub=getSumOfPlaces(this,indsObj.ck12pub,years.ACSPERIOD);var ck12priv=getSumOfPlaces(this,indsObj.ck12priv,years.ACSPERIOD);var ck12all=getSumOfPlaces(this,indsObj.ck12all,years.ACSPERIOD);var ck12pub_percent=divideCheck(ck12pub,ck12all,100,null,null,true);var ck12priv_percent=divideCheck(ck12priv,ck12all,100,null,null,true);$("#ck12pub_Atlanta_percent").html(PWebUtil.formatNumber(ck12pub_percent,"_%",1));$("#ck12priv_Atlanta_percent").html(PWebUtil.formatNumber(ck12priv_percent,"_%",1))});var cube4=new PCube(indsArr,counties_atlanta_metro_area,periods);cube4.loadValues(function(values){this.values=values;var ck12pub=getSumOfPlaces(this,indsObj.ck12pub,years.ACSPERIOD);var ck12priv=getSumOfPlaces(this,indsObj.ck12priv,years.ACSPERIOD);var ck12all=getSumOfPlaces(this,indsObj.ck12all,years.ACSPERIOD);var ck12pub_percent=divideCheck(ck12pub,ck12all,100,null,null,true);var ck12priv_percent=divideCheck(ck12priv,ck12all,100,null,null,true);$("#ck12pub_atlanta_metro_area_percent").html(PWebUtil.formatNumber(ck12pub_percent,"_%",1));$("#ck12priv_atlanta_metro_area_percent").html(PWebUtil.formatNumber(ck12priv_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=ATLSetSourceLinks(arr,"school-section")})})}function ATLLoadJobsEconomy(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var periods=[2015];var years={y2015:periods[0]};var indid=9873905;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cr_primjobs_earnlow=new PIndicator(9911313);indsObj.cr_primjobs_earnmed=new PIndicator(9911341);indsObj.cr_primjobs_all=new PIndicator(9911309);indsObj.cw_primjobs_earnlow=new PIndicator(9911392);indsObj.cw_primjobs_earnmed=new PIndicator(9911408);indsObj.cw_primjobs_all=new PIndicator(9911366);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cr_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnlow,years.y2015);var cr_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnmed,years.y2015);var cr_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_all,years.y2015);var cw_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnlow,years.y2015);var cw_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnmed,years.y2015);var cw_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_all,years.y2015);$("#cr_primjobs_earnlow_place_num").html(PWebUtil.formatNumber(cr_primjobs_earnlow));$("#cr_primjobs_earnmed_place_num").html(PWebUtil.formatNumber(cr_primjobs_earnmed));$("#cw_primjobs_earnlow_place_num").html(PWebUtil.formatNumber(cw_primjobs_earnlow));$("#cw_primjobs_earnmed_place_num").html(PWebUtil.formatNumber(cw_primjobs_earnmed));var cr_primjobs_earnlow_percent=divideCheck(cr_primjobs_earnlow,cr_primjobs_all,100,null,null,true);var cr_primjobs_earnmed_percent=divideCheck(cr_primjobs_earnmed,cr_primjobs_all,100,null,null,true);var cw_primjobs_earnlow_percent=divideCheck(cw_primjobs_earnlow,cw_primjobs_all,100,null,null,true);var cw_primjobs_earnmed_percent=divideCheck(cw_primjobs_earnmed,cw_primjobs_all,100,null,null,true);$("#cr_primjobs_earnlow_place_percent").html(PWebUtil.formatNumber(cr_primjobs_earnlow_percent,"_%",1));$("#cr_primjobs_earnmed_place_percent").html(PWebUtil.formatNumber(cr_primjobs_earnmed_percent,"_%",1));$("#cw_primjobs_earnlow_place_percent").html(PWebUtil.formatNumber(cw_primjobs_earnlow_percent,"_%",1));$("#cw_primjobs_earnmed_place_percent").html(PWebUtil.formatNumber(cw_primjobs_earnmed_percent,"_%",1));var cube2=new PCube(indsArr,[place_atlanta_city],periods);cube2.loadValues(function(values){this.values=values;var cr_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnlow,years.y2015);var cr_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnmed,years.y2015);var cr_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_all,years.y2015);var cw_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnlow,years.y2015);var cw_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnmed,years.y2015);var cw_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_all,years.y2015);var cr_primjobs_earnlow_percent=divideCheck(cr_primjobs_earnlow,cr_primjobs_all,100,null,null,true);var cr_primjobs_earnmed_percent=divideCheck(cr_primjobs_earnmed,cr_primjobs_all,100,null,null,true);var cw_primjobs_earnlow_percent=divideCheck(cw_primjobs_earnlow,cw_primjobs_all,100,null,null,true);var cw_primjobs_earnmed_percent=divideCheck(cw_primjobs_earnmed,cw_primjobs_all,100,null,null,true);$("#cr_primjobs_earnlow_atlanta_percent").html(PWebUtil.formatNumber(cr_primjobs_earnlow_percent,"_%",1));$("#cr_primjobs_earnmed_atlanta_percent").html(PWebUtil.formatNumber(cr_primjobs_earnmed_percent,"_%",1));$("#cw_primjobs_earnlow_atlanta_percent").html(PWebUtil.formatNumber(cw_primjobs_earnlow_percent,"_%",1));$("#cw_primjobs_earnmed_atlanta_percent").html(PWebUtil.formatNumber(cw_primjobs_earnmed_percent,"_%",1))});var arr=["LEHD ( "+periods[0]+" )"];var $src=ATLSetSourceLinks(arr,"jobs-section")})})}function ATLLoadTransportationPart1(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var periods=[P.constants.latestACSPeriod];var years={latestACSPeriod:periods[0]};var indid=9873787;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.ctranpt=new PIndicator(9873787);indsObj.chunomv=new PIndicator(9873783);indsObj.ctranall=new PIndicator(9873825);indsObj.chhmiall=new PIndicator(9873833);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var ctranpt=getSumOfPlaces(this,indsObj.ctranpt,years.latestACSPeriod);var chunomv=getSumOfPlaces(this,indsObj.chunomv,years.latestACSPeriod);var ctranall=getSumOfPlaces(this,indsObj.ctranall,years.latestACSPeriod);var chhmiall=getSumOfPlaces(this,indsObj.chhmiall,years.latestACSPeriod);$("#ctranpt_place_num").html(PWebUtil.formatNumber(ctranpt));$("#chunomv_place_num").html(PWebUtil.formatNumber(chunomv));var ctranpt_percent=divideCheck(ctranpt,ctranall,100,null,null,true);var chunomv_percent=divideCheck(chunomv,chhmiall,100,null,null,true);$("#ctranpt_place_percent").html(PWebUtil.formatNumber(ctranpt_percent,"_%",1));$("#chunomv_place_percent").html(PWebUtil.formatNumber(chunomv_percent,"_%",1))});var cubePaterson=new PCube(indsArr,[place_atlanta_city],periods);cubePaterson.loadValues(function(values){this.values=values;var ctranpt=getSumOfPlaces(this,indsObj.ctranpt,years.latestACSPeriod);var chunomv=getSumOfPlaces(this,indsObj.chunomv,years.latestACSPeriod);var ctranall=getSumOfPlaces(this,indsObj.ctranall,years.latestACSPeriod);var chhmiall=getSumOfPlaces(this,indsObj.chhmiall,years.latestACSPeriod);var ctranpt_percent=divideCheck(ctranpt,ctranall,100,null,null,true);var chunomv_percent=divideCheck(chunomv,chhmiall,100,null,null,true);$("#ctranpt_atlanta_percent").html(PWebUtil.formatNumber(ctranpt_percent,"_%",1));$("#chunomv_atlanta_percent").html(PWebUtil.formatNumber(chunomv_percent,"_%",1))});var cubeAtlantaCounty=new PCube(indsArr,counties_atlanta_metro_area,periods);cubeAtlantaCounty.loadValues(function(values){this.values=values;var ctranpt=getSumOfPlaces(this,indsObj.ctranpt,years.latestACSPeriod);var chunomv=getSumOfPlaces(this,indsObj.chunomv,years.latestACSPeriod);var ctranall=getSumOfPlaces(this,indsObj.ctranall,years.latestACSPeriod);var chhmiall=getSumOfPlaces(this,indsObj.chhmiall,years.latestACSPeriod);var ctranpt_percent=divideCheck(ctranpt,ctranall,100,null,null,true);var chunomv_percent=divideCheck(chunomv,chhmiall,100,null,null,true);$("#ctranpt_atlanta_metro_area_percent").html(PWebUtil.formatNumber(ctranpt_percent,"_%",1));$("#chunomv_atlanta_metro_area_percent").html(PWebUtil.formatNumber(chunomv_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=ATLSetSourceLinks(arr,"transportation-section")})}function ATLLoadTransportationPart2(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var indsObj={};indsObj.ctt0_15=new PIndicator(9873806);indsObj.ctt15_29=new PIndicator(9873831);indsObj.ctt30_44=new PIndicator(9873829);indsObj.ctt45_59=new PIndicator(9873823);indsObj.ctt60p=new PIndicator(9873785);indsObj.cttall=new PIndicator(9873827);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var periods=[P.constants.latestACSPeriod];var years={latestACSPeriod:periods[0]};var overlap_pct=50;boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,null,function(tracts){var tracts=tracts||[];var cube=new PCube(indsArr,tracts,periods);cube.loadValues(function(values){this.values=values;var ctt0_15=getSumOfPlaces(this,indsObj.ctt0_15,years.latestACSPeriod)||0;var ctt15_29=getSumOfPlaces(this,indsObj.ctt15_29,years.latestACSPeriod)||0;var ctt30_44=getSumOfPlaces(this,indsObj.ctt30_44,years.latestACSPeriod)||0;var ctt45_59=getSumOfPlaces(this,indsObj.ctt45_59,years.latestACSPeriod)||0;var ctt60p=getSumOfPlaces(this,indsObj.ctt60p,years.latestACSPeriod)||0;var cttall=getSumOfPlaces(this,indsObj.cttall,years.latestACSPeriod);var ctt0_29=ctt0_15+ctt15_29;var ctt30_59=ctt30_44+ctt45_59;var ctt0_29_percent=divideCheck(ctt0_29,cttall,100,null,null,true);var ctt30_59_percent=divideCheck(ctt30_59,cttall,100,null,null,true);var ctt60p_percent=divideCheck(ctt60p,cttall,100,null,null,true);$("#ctt0_29_place_num").html(PWebUtil.formatNumber(ctt0_29));$("#ctt30_59_place_num").html(PWebUtil.formatNumber(ctt30_59));$("#ctt60p_place_num").html(PWebUtil.formatNumber(ctt60p));$("#ctt0_29_place_percent").html(PWebUtil.formatNumber(ctt0_29_percent,"_%",1));$("#ctt30_59_place_percent").html(PWebUtil.formatNumber(ctt30_59_percent,"_%",1));$("#ctt60p_place_percent").html(PWebUtil.formatNumber(ctt60p_percent,"_%",1))})},overlap_pct,null,null,null,"id,identifier,label,typeid,state");var cityCube=new PCube(indsArr,[place_atlanta_city],periods);cityCube.loadValues(function(values){this.values=values;var ctt0_15=getSumOfPlaces(this,indsObj.ctt0_15,years.latestACSPeriod)||0;var ctt15_29=getSumOfPlaces(this,indsObj.ctt15_29,years.latestACSPeriod)||0;var ctt30_44=getSumOfPlaces(this,indsObj.ctt30_44,years.latestACSPeriod)||0;var ctt45_59=getSumOfPlaces(this,indsObj.ctt45_59,years.latestACSPeriod)||0;var ctt60p=getSumOfPlaces(this,indsObj.ctt60p,years.latestACSPeriod)||0;var cttall=getSumOfPlaces(this,indsObj.cttall,years.latestACSPeriod);var ctt0_29=ctt0_15+ctt15_29;var ctt30_59=ctt30_44+ctt45_59;var ctt0_29_percent=divideCheck(ctt0_29,cttall,100,null,null,true);var ctt30_59_percent=divideCheck(ctt30_59,cttall,100,null,null,true);var ctt60p_percent=divideCheck(ctt60p,cttall,100,null,null,true);$("#ctt0_29_atlanta_percent").html(PWebUtil.formatNumber(ctt0_29_percent,"_%",1));$("#ctt30_59_atlanta_percent").html(PWebUtil.formatNumber(ctt30_59_percent,"_%",1));$("#ctt60p_atlanta_percent").html(PWebUtil.formatNumber(ctt60p_percent,"_%",1))});var metroCube=new PCube(indsArr,counties_atlanta_metro_area,periods);metroCube.loadValues(function(values){this.values=values;var ctt0_15=getSumOfPlaces(this,indsObj.ctt0_15,years.latestACSPeriod)||0;var ctt15_29=getSumOfPlaces(this,indsObj.ctt15_29,years.latestACSPeriod)||0;var ctt30_44=getSumOfPlaces(this,indsObj.ctt30_44,years.latestACSPeriod)||0;var ctt45_59=getSumOfPlaces(this,indsObj.ctt45_59,years.latestACSPeriod)||0;var ctt60p=getSumOfPlaces(this,indsObj.ctt60p,years.latestACSPeriod)||0;var cttall=getSumOfPlaces(this,indsObj.cttall,years.latestACSPeriod);var ctt0_29=ctt0_15+ctt15_29;var ctt30_59=ctt30_44+ctt45_59;var ctt0_29_percent=divideCheck(ctt0_29,cttall,100,null,null,true);var ctt30_59_percent=divideCheck(ctt30_59,cttall,100,null,null,true);var ctt60p_percent=divideCheck(ctt60p,cttall,100,null,null,true);$("#ctt0_29_atlanta_metro_area_percent").html(PWebUtil.formatNumber(ctt0_29_percent,"_%",1));$("#ctt30_59_atlanta_metro_area_percent").html(PWebUtil.formatNumber(ctt30_59_percent,"_%",1));$("#ctt60p_atlanta_metro_area_percent").html(PWebUtil.formatNumber(ctt60p_percent,"_%",1))})}function ATLLoadEducationAttainment(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var periods=[P.constants.latestACSPeriod];var years={latestACSPeriod:periods[0]};var indid=9873900;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.clt9th=new PIndicator(9873900);indsObj.csmhsnodip=new PIndicator(9873915);indsObj.chs=new PIndicator(9873934);indsObj.csmcolass=new PIndicator(9873912);indsObj.cbach=new PIndicator(9873914);indsObj.ceduall=new PIndicator(9873929);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var clt9th=getSumOfPlaces(this,indsObj.clt9th,years.latestACSPeriod);var csmhsnodip=getSumOfPlaces(this,indsObj.csmhsnodip,years.latestACSPeriod);var clt9th_plus_csmhsnodip=clt9th+csmhsnodip;var chs=getSumOfPlaces(this,indsObj.chs,years.latestACSPeriod);var csmcolass=getSumOfPlaces(this,indsObj.csmcolass,years.latestACSPeriod);var cbach=getSumOfPlaces(this,indsObj.cbach,years.latestACSPeriod);var ceduall=getSumOfPlaces(this,indsObj.ceduall,years.latestACSPeriod);$("#clt9th_plus_csmhsnodip_place_num").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip));$("#chs_place_num").html(PWebUtil.formatNumber(chs));$("#csmcolass_place_num").html(PWebUtil.formatNumber(csmcolass));$("#cbach_place_num").html(PWebUtil.formatNumber(cbach));$("#ceduall_place_num").html(PWebUtil.formatNumber(ceduall));var clt9th_plus_csmhsnodip_percent=divideCheck(clt9th_plus_csmhsnodip,ceduall,100,null,null,true);var chs_percent=divideCheck(chs,ceduall,100,null,null,true);var csmcolass_percent=divideCheck(csmcolass,ceduall,100,null,null,true);var cbach_percent=divideCheck(cbach,ceduall,100,null,null,true);var ceduall_percent=divideCheck(ceduall,ceduall,100,null,null,true);$("#clt9th_plus_csmhsnodip_place_percent").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip_percent,"_%",1));$("#chs_place_percent").html(PWebUtil.formatNumber(chs_percent,"_%",1));$("#csmcolass_place_percent").html(PWebUtil.formatNumber(csmcolass_percent,"_%",1));$("#cbach_place_percent").html(PWebUtil.formatNumber(cbach_percent,"_%",1));$("#ceduall_place_percent").html(PWebUtil.formatNumber(ceduall_percent,"_%",1))});var cubePaterson=new PCube(indsArr,[place_atlanta_city],periods);cubePaterson.loadValues(function(values){this.values=values;var clt9th=getSumOfPlaces(this,indsObj.clt9th,years.latestACSPeriod);var csmhsnodip=getSumOfPlaces(this,indsObj.csmhsnodip,years.latestACSPeriod);var clt9th_plus_csmhsnodip=clt9th+csmhsnodip;var chs=getSumOfPlaces(this,indsObj.chs,years.latestACSPeriod);var csmcolass=getSumOfPlaces(this,indsObj.csmcolass,years.latestACSPeriod);var cbach=getSumOfPlaces(this,indsObj.cbach,years.latestACSPeriod);var ceduall=getSumOfPlaces(this,indsObj.ceduall,years.latestACSPeriod);var clt9th_plus_csmhsnodip_percent=divideCheck(clt9th_plus_csmhsnodip,ceduall,100,null,null,true);var chs_percent=divideCheck(chs,ceduall,100,null,null,true);var csmcolass_percent=divideCheck(csmcolass,ceduall,100,null,null,true);var cbach_percent=divideCheck(cbach,ceduall,100,null,null,true);var ceduall_percent=divideCheck(ceduall,ceduall,100,null,null,true);$("#clt9th_plus_csmhsnodip_atlanta_percent").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip_percent,"_%",1));$("#chs_atlanta_percent").html(PWebUtil.formatNumber(chs_percent,"_%",1));$("#csmcolass_atlanta_percent").html(PWebUtil.formatNumber(csmcolass_percent,"_%",1));$("#cbach_atlanta_percent").html(PWebUtil.formatNumber(cbach_percent,"_%",1));$("#ceduall_atlanta_percent").html(PWebUtil.formatNumber(ceduall_percent,"_%",1))});var cubeAtlantaCounty=new PCube(indsArr,counties_atlanta_metro_area,periods);cubeAtlantaCounty.loadValues(function(values){this.values=values;var clt9th=getSumOfPlaces(this,indsObj.clt9th,years.latestACSPeriod);var csmhsnodip=getSumOfPlaces(this,indsObj.csmhsnodip,years.latestACSPeriod);var clt9th_plus_csmhsnodip=clt9th+csmhsnodip;var chs=getSumOfPlaces(this,indsObj.chs,years.latestACSPeriod);var csmcolass=getSumOfPlaces(this,indsObj.csmcolass,years.latestACSPeriod);var cbach=getSumOfPlaces(this,indsObj.cbach,years.latestACSPeriod);var ceduall=getSumOfPlaces(this,indsObj.ceduall,years.latestACSPeriod);var clt9th_plus_csmhsnodip_percent=divideCheck(clt9th_plus_csmhsnodip,ceduall,100,null,null,true);var chs_percent=divideCheck(chs,ceduall,100,null,null,true);var csmcolass_percent=divideCheck(csmcolass,ceduall,100,null,null,true);var cbach_percent=divideCheck(cbach,ceduall,100,null,null,true);var ceduall_percent=divideCheck(ceduall,ceduall,100,null,null,true);$("#clt9th_plus_csmhsnodip_atlanta_metro_area_percent").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip_percent,"_%",1));$("#chs_atlanta_metro_area_percent").html(PWebUtil.formatNumber(chs_percent,"_%",1));$("#csmcolass_atlanta_metro_area_percent").html(PWebUtil.formatNumber(csmcolass_percent,"_%",1));$("#cbach_atlanta_metro_area_percent").html(PWebUtil.formatNumber(cbach_percent,"_%",1));$("#ceduall_atlanta_metro_area_percent").html(PWebUtil.formatNumber(ceduall_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=ATLSetSourceLinks(arr,"education-section")})}function ATLLoadLanguageSpokenAtHome(aggObj,boundarea,place_atlanta_city,counties_atlanta_metro_area){var indsObj={};indsObj.clang_engl=new PIndicator(9948928);indsObj.clang_all=new PIndicator(9948926);indsObj.clang_span=new PIndicator(9948981);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var periods=[P.constants.alternateACSPeriod];var years={alternateACSPeriod:periods[0]};var overlap_pct=50;boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,null,function(tracts){var tracts=tracts||[];var cube=new PCube(indsArr,tracts,periods);cube.loadValues(function(values){this.values=values;var clang_engl=getSumOfPlaces(this,indsObj.clang_engl,years.alternateACSPeriod)||0;var clang_all=getSumOfPlaces(this,indsObj.clang_all,years.alternateACSPeriod)||0;var clang_span=getSumOfPlaces(this,indsObj.clang_span,years.alternateACSPeriod)||0;var clang_other=clang_all-clang_engl-clang_span;var clang_engl_percent=divideCheck(clang_engl,clang_all,100,null,null,true);var clang_span_percent=divideCheck(clang_span,clang_all,100,null,null,true);var clang_other_percent=divideCheck(clang_other,clang_all,100,null,null,true);$("#table_clang_engl_place_num").html(PWebUtil.formatNumber(clang_engl));$("#table_clang_span_place_num").html(PWebUtil.formatNumber(clang_span));$("#table_clang_other_place_num").html(PWebUtil.formatNumber(clang_other));$("#table_clang_engl_place_percent").html(PWebUtil.formatNumber(clang_engl_percent,"_%",1));$("#table_clang_span_place_percent").html(PWebUtil.formatNumber(clang_span_percent,"_%",1));$("#table_clang_other_place_percent").html(PWebUtil.formatNumber(clang_other_percent,"_%",1))})},overlap_pct,null,null,null,"id,identifier,label,typeid,state");var cityCube=new PCube(indsArr,[place_atlanta_city],periods);cityCube.loadValues(function(values){this.values=values;var clang_engl=getSumOfPlaces(this,indsObj.clang_engl,years.alternateACSPeriod)||0;var clang_all=getSumOfPlaces(this,indsObj.clang_all,years.alternateACSPeriod)||0;var clang_span=getSumOfPlaces(this,indsObj.clang_span,years.alternateACSPeriod)||0;var clang_other=clang_all-clang_engl-clang_span;var clang_engl_percent=divideCheck(clang_engl,clang_all,100,null,null,true);var clang_span_percent=divideCheck(clang_span,clang_all,100,null,null,true);var clang_other_percent=divideCheck(clang_other,clang_all,100,null,null,true);$("#table_clang_engl_atlanta_percent").html(PWebUtil.formatNumber(clang_engl_percent,"_%",1));$("#table_clang_span_atlanta_percent").html(PWebUtil.formatNumber(clang_span_percent,"_%",1));$("#table_clang_other_atlanta_percent").html(PWebUtil.formatNumber(clang_other_percent,"_%",1))});var metroCube=new PCube(indsArr,counties_atlanta_metro_area,periods);metroCube.loadValues(function(values){this.values=values;var clang_engl=getSumOfPlaces(this,indsObj.clang_engl,years.alternateACSPeriod)||0;var clang_all=getSumOfPlaces(this,indsObj.clang_all,years.alternateACSPeriod)||0;var clang_span=getSumOfPlaces(this,indsObj.clang_span,years.alternateACSPeriod)||0;var clang_other=clang_all-clang_engl-clang_span;var clang_engl_percent=divideCheck(clang_engl,clang_all,100,null,null,true);var clang_span_percent=divideCheck(clang_span,clang_all,100,null,null,true);var clang_other_percent=divideCheck(clang_other,clang_all,100,null,null,true);$("#table_clang_engl_atlanta_metro_area_percent").html(PWebUtil.formatNumber(clang_engl_percent,"_%",1));$("#table_clang_span_atlanta_metro_area_percent").html(PWebUtil.formatNumber(clang_span_percent,"_%",1));$("#table_clang_other_atlanta_metro_area_percent").html(PWebUtil.formatNumber(clang_other_percent,"_%",1))})}function ATLLoadGeographyType(boundarea){var location="Custom Area";var locationtype="Custom Area";if(boundarea.typeid==191){location="the zip code of "+boundarea.getLabel();locationtype="Zip Code"}else if(boundarea.typeid==192){location="the NPU of "+boundarea.getLabel();locationtype="NPU"}else if(boundarea.typeid==8){location="the zip code of "+boundarea.getLabel();locationtype="Zip Code"}else if(boundarea.typeid==194){location="the city of "+boundarea.getLabel();locationtype="City"}else if(boundarea.typeid==195){location="the cluster of "+boundarea.getLabel();locationtype="Cluster"}$("#title_location").html(location);$("#geography-type").html(locationtype+" : ")}function displayArtsWaveReport(aggregates,boundarea,counties){P.CloneOptions.chartsColors=["#ed3523","#542889","#a1a1a4","#00aeef","#d7b034","#8dc63f"];$(".color.report-area").css("background-color",P.CloneOptions.chartsColors[0]);$(".color.county").css("background-color",P.CloneOptions.chartsColors[1]);boundarea.getAggregates(PPlaceType.ZIP,null,null,function(aggs){displayDistrictsCB(aggs,"zip-codes",boundarea)},0,null,PPlaceType.LABEL,null,0,null,PPlaceType.LABEL);boundarea.getAggregates(PPlaceType.AW_NEIGHBORHOOD,null,null,function(aggs){displayDistrictsCB(aggs,"neighborhoods",boundarea)},0,null,PPlaceType.LABEL,null,0,null,PPlaceType.LABEL);boundarea.getAggregates(PPlaceType.SCHOOL,null,null,function(aggs){displayDistrictsCB(aggs,"school-districts",boundarea)},0,null,PPlaceType.LABEL,null,0,null,PPlaceType.LABEL);var display=function(groupPlaceTypeAggregates){boundarea.getPlacesContaining(PPlaceType.COUNTY,null,null,function(boundaryCounties){var boundaryCounty=null;if(boundaryCounties.length==1){boundaryCounty=boundaryCounties[0]}var obj={pplace:boundarea,county:boundaryCounty,groupPlaceTypeAggregates:groupPlaceTypeAggregates};populateArtsWaveIndicatorData(obj)},3)};var groups=[PPlaceTypeConfig2.AGGREGATION.dataset.ACS];getGroupPlaceTypeAggregates(boundarea,groups,aggregates,display,{getAggsForAllDef:true});var params=getUrlParams();if(P.WKPrint.isPrintPage()===true){
$("head").append('<link rel="stylesheet" href="/cssPrint/culture_blocks.css" type="text/css" />');$(".print-page2").append($(".report-charts"))}populateArtsWaveSitesTable(boundarea)}function populateArtsWaveSitesTable(boundarea){var populateTableList=function(cnt,ids,$cont){if(ids[cnt]==null){var $cnt_elem=$cont.find(".count"+cnt);$cnt_elem.html("n/a");$cnt_elem.next().html("");cnt++;if(cnt<ids.length){populateTableList(cnt,ids,$cont)}return}var set=new POverlaySet(ids[cnt]);set.type="old";set.cnt=cnt;boundarea.getMarkersWithin(set,function(markers){var length=0;if(markers.length>0){if(markers[0]instanceof PMarker){length=markers.length}else{length=markers[0]}}var $cnt_elem=$cont.find(".count"+cnt);$cnt_elem.html(length);if(length==0){$cnt_elem.next().hide()}else{$cnt_elem.next().click(function(){$(".seelist").html("(click to see list)");var elem=$(this).parent().parent().next().find(".list");if(elem.hasClass("on")){elem.hide();elem.removeClass("on");return}$(this).html("(click to close list)");var elems=$(".see-lists-section").find(".list");elems.empty();elems.hide();elems.removeClass("on");elem.addClass("on");elem.show();var html=getSiteListHtmlCB(set,boundarea);elem.html(html);generateReportSitesList(set,boundarea)})}cnt++;if(cnt<ids.length){populateTableList(cnt,ids,$cont)}})};if(isAWEduction()){var ids=[148100,149600,149550];populateTableList(0,ids,$("#cultural-assets"));var ids=[147750,147800,148450,149500,147850];populateTableList(0,ids,$("#education"));var ids=[148400,148350];populateTableList(0,ids,$("#neighborhood-resources"))}else if(isAWNeighborhood()){var ids=[150250,150450,150400,150200];populateTableList(0,ids,$("#cultural-assets"));var ids=[147750,147800,148450,149500,147850];populateTableList(0,ids,$("#education"));var ids=[148400,148350,150350,133900,150300];populateTableList(0,ids,$("#neighborhood-resources"))}}function populateArtsWaveIndicatorData(obj){var pplace=obj.pplace;var getplaces=[];var useStepsDefault=false;var stepplaces=obj.groupPlaceTypeAggregates[PPlaceTypeConfig2.AGGREGATION.dataset.ACS];if(stepplaces&&stepplaces.length>0)useStepsDefault=true;if(!obj.ignorePPlace&&pplace&&!pplace.isCustomOrPoly()){getplaces=[pplace]}else if(!obj.ignorePPlace&&pplace&&pplace.isAssembledCustom()){getplaces=pplace.getAssembledPlaces()}else if(useStepsDefault){getplaces=stepplaces}var i={};i.CPOP=new PIndicator(9869069);i.CHH=new PIndicator(9869078);i.CPOP18B=new PIndicator(9868993);i.CPOP65P=new PIndicator(9868923);i.CPOP0_4=new PIndicator(9868901);i.CPOP5_9=new PIndicator(9869090);i.CPOP10_14=new PIndicator(9869025);i.CPOP15_17=new PIndicator(9868851);i.CPOP18_34=new PIndicator(9868870);i.CPOP35_54=new PIndicator(9869042);i.CPOP55_64=new PIndicator(9869076);i.CHILT15=new PIndicator(9871823);i.CHI15_25=new PIndicator(9871862);i.CHI25_35=new PIndicator(9871920);i.CHI35_50=new PIndicator(9871806);i.CHI50_75=new PIndicator(9871923);i.CHI75_100=new PIndicator(9871914);i.CHILT100=new PIndicator(9871935);i.CHIALL=new PIndicator(9871984);var countyinds=[];for(var ind in i){countyinds.push(i[ind])}i.CLT9TH=new PIndicator(9873900);i.CSMHSNODIP=new PIndicator(9873915);i.CHS=new PIndicator(9873934);i.CSMCOLASS=new PIndicator(9873912);i.CBACHP=new PIndicator(9873911);i.CEDUALL=new PIndicator(9873929);i.CFAM=new PIndicator(9868933);i.CPOPALLAGE=new PIndicator(9869056);i.CPOPWH=new PIndicator(9869048);i.CPOPBK=new PIndicator(9868917);i.CPOPAS=new PIndicator(9868922);i.CPOPALLRACE=new PIndicator(9868881);i.CPOPHISP=new PIndicator(9868879);i.CPOPALLETH=new PIndicator(9868976);i.MHHINC=new PIndicator(9871831);var allinds=[];for(var ind in i){allinds.push(i[ind])}var periods=[2e3,P.constants.latestACSPeriod];var opts={stepplaces:stepplaces,actualPlace:pplace,ignorePPlace:obj.ignorePPlace};var cube=new PCube(allinds,getplaces,periods,opts);cube.loadValues(function(values){this.values=values;var periods=this.periods;var cpop00=getSumOfPlaces(this,i.CPOP,periods[0]);var cpop=getSumOfPlaces(this,i.CPOP,periods[1]);var val=PWebUtil.formatNumber(cpop);$("#total-population").html(val);var chhValues10=this.getValuesObjectOfPlaces(i.CHH,periods[1]);if(!obj.ignorePPlace&&!cpop){obj.ignorePPlace=true;populateArtsWaveIndicatorData(obj);return}var pls00=this.getPlacesForIndAndPeriod(i.CPOP,periods[0]);var pls10=this.getPlacesForIndAndPeriod(i.CPOP,periods[1]);var t="As of "+P.constants.latestACSEndPeriod+", this area was home to "+PWebUtil.formatNumber(cpop)+" residents";if(pls00.length==1&&pls10.length==1){t+=", with a population change of "+PWebUtil.formatNumber(divideCheck(cpop-cpop00,cpop00,100),"_%")+" since 2000"}t+=".";$("#population-text").html(t);var aggList=$("#agg-list");var aggToggle=$("#agg-toggle");var aggTogglePrint=$("#agg-toggle-print");var t=getAggregatedPlaceNames(pls10);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show")}else{aggList.slideDown();aggToggle.text("(-) Hide")}});var params=getUrlParams();if(params["da"]){aggToggle.click()}var s1=getSumOfPlaces(this,i.CPOP18B,periods[1]);var s2=getSumOfPlaces(this,i.CPOPALLAGE,periods[1]);var s=divideCheck(s1,s2,100);var val=PWebUtil.formatNumber(s,"_%");$("#under-18").html(val);if(pls10.length>1){$(".median-income-row").hide()}else{var mhhinc=getSumOfPlaces(this,i.MHHINC,periods[1]);var val=PWebUtil.formatNumber(mhhinc,"$_");$("#median-income").html(val)}var cpophisp=getSumOfPlaces(this,i.CPOPHISP,periods[1]);var cpopalleth=getSumOfPlaces(this,i.CPOPALLETH,periods[1]);var s=divideCheck(cpophisp,cpopalleth,100);var val=PWebUtil.formatNumber(s,"_%");$("#hispanic-pop").html(val);var data=[];var s1=getSumOfPlaces(this,i.CLT9TH,periods[1]);var ceduall=getSumOfPlaces(this,i.CEDUALL,periods[1]);var s=divideCheck(s1,ceduall,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["Less than 9th Grade",parseFloat(s)]);var s1=getSumOfPlaces(this,i.CSMHSNODIP,periods[1]);var s=divideCheck(s1,ceduall,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["Some High School",parseFloat(s)]);var s1=getSumOfPlaces(this,i.CHS,periods[1]);var s=divideCheck(s1,ceduall,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["High School Diploma",parseFloat(s)]);var s1=getSumOfPlaces(this,i.CSMCOLASS,periods[1]);var s=divideCheck(s1,ceduall,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["Some College or Associate's",parseFloat(s)]);var s1=getSumOfPlaces(this,i.CBACHP,periods[1]);var s=divideCheck(s1,ceduall,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["At Least a Bachelor's Degree",parseFloat(s)]);var plot1=jQuery.jqplot("chart1",[data],{title:"Education",seriesColors:P.CloneOptions.chartsColors,seriesDefaults:{renderer:jQuery.jqplot.PieRenderer,rendererOptions:{showDataLabels:true}},legend:{renderer:$.jqplot.EnhancedLegendRenderer,show:true,location:"s",placement:"outside",rendererOptions:{numberColumns:2},border:"none"},grid:{drawGridlines:false,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent"}});var data=[];var cpopwh=getSumOfPlaces(this,i.CPOPWH,periods[1]);var cpopallrace=getSumOfPlaces(this,i.CPOPALLRACE,periods[1]);var s=divideCheck(cpopwh,cpopallrace,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["White",parseFloat(s)]);var cpopbk=getSumOfPlaces(this,i.CPOPBK,periods[1]);var cpopallrace=getSumOfPlaces(this,i.CPOPALLRACE,periods[1]);var s=divideCheck(cpopbk,cpopallrace,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["African American",parseFloat(s)]);var cpopas=getSumOfPlaces(this,i.CPOPAS,periods[1]);var cpopallrace=getSumOfPlaces(this,i.CPOPALLRACE,periods[1]);var s=divideCheck(cpopas,cpopallrace,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["Asian",parseFloat(s)]);var s=divideCheck(cpopallrace-cpopwh-cpopbk-cpopas,cpopallrace,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["Other",parseFloat(s)]);var plot1=jQuery.jqplot("chart2",[data],{title:"Race",seriesColors:P.CloneOptions.chartsColors,seriesDefaults:{renderer:jQuery.jqplot.PieRenderer,rendererOptions:{showDataLabels:true}},legend:{renderer:$.jqplot.EnhancedLegendRenderer,show:true,location:"s",placement:"outside",rendererOptions:{numberColumns:2},border:"none"},grid:{drawGridlines:false,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent"}});var chiall=getSumOfPlaces(this,i.CHIALL,periods[1]);var arr1=[];var s=getSumOfPlaces(this,i.CHILT15,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),1]);var s=getSumOfPlaces(this,i.CHI15_25,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),2]);var s1=getSumOfPlaces(this,i.CHI25_35,periods[1]);var s2=getSumOfPlaces(this,i.CHI35_50,periods[1]);var s=s1+s2;var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),3]);var s=getSumOfPlaces(this,i.CHI50_75,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),4]);var s=getSumOfPlaces(this,i.CHI75_100,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),5]);var s1=getSumOfPlaces(this,i.CHILT100,periods[1]);var s=chiall-s1;var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),6]);var ageDistArr1=[];var s=getSumOfPlaces(this,i.CPOP0_4,periods[1]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr1.push(parseFloat(val));var s1=getSumOfPlaces(this,i.CPOP5_9,periods[1]);var s2=getSumOfPlaces(this,i.CPOP10_14,periods[1]);var s3=getSumOfPlaces(this,i.CPOP15_17,periods[1]);var s=s1+s2+s3;var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr1.push(parseFloat(val));var s=getSumOfPlaces(this,i.CPOP18_34,periods[1]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr1.push(parseFloat(val));var s1=getSumOfPlaces(this,i.CPOP35_54,periods[1]);var s2=getSumOfPlaces(this,i.CPOP55_64,periods[1]);var s=s1+s2;var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr1.push(parseFloat(val));var s=getSumOfPlaces(this,i.CPOP65P,periods[1]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr1.push(parseFloat(val));var p=new PPlace(3579149);var cube2=new PCube(countyinds,[p],periods);cube2.loadValues(function(metrovalues){this.values=metrovalues;var cpop=getSumOfPlaces(this,i.CPOP,periods[1]);var chiall=getSumOfPlaces(this,i.CHIALL,periods[1]);var arr2=[];var s=getSumOfPlaces(this,i.CHILT15,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),1]);var s=getSumOfPlaces(this,i.CHI15_25,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),2]);var s1=getSumOfPlaces(this,i.CHI25_35,periods[1]);var s2=getSumOfPlaces(this,i.CHI35_50,periods[1]);var s=s1+s2;var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),3]);var s=getSumOfPlaces(this,i.CHI50_75,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),4]);var s=getSumOfPlaces(this,i.CHI75_100,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),5]);var s1=getSumOfPlaces(this,i.CHILT100,periods[1]);var s2=getSumOfPlaces(this,i.CHIALL,periods[1]);var s=s2-s1;var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),6]);var ageDistArr2=[];var s=getSumOfPlaces(this,i.CPOP0_4,periods[1]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr2.push(parseFloat(val));var s1=getSumOfPlaces(this,i.CPOP5_9,periods[1]);var s2=getSumOfPlaces(this,i.CPOP10_14,periods[1]);var s3=getSumOfPlaces(this,i.CPOP15_17,periods[1]);var s=s1+s2+s3;var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr2.push(parseFloat(val));var s=getSumOfPlaces(this,i.CPOP18_34,periods[1]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr2.push(parseFloat(val));var s1=getSumOfPlaces(this,i.CPOP35_54,periods[1]);var s2=getSumOfPlaces(this,i.CPOP55_64,periods[1]);var s=s1+s2;var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr2.push(parseFloat(val));var s=getSumOfPlaces(this,i.CPOP65P,periods[1]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr2.push(parseFloat(val));var renderBarCharts=function(householdIncomeData,ageDistributionData){var ticks=["< $15K","$15 - 25K","$25K-50K","$50K-75K","$75k-100K","> $100K"];var plot2=$.jqplot("chart3",householdIncomeData,{title:"Household Income",seriesColors:P.CloneOptions.chartsColors,seriesDefaults:{renderer:$.jqplot.BarRenderer,pointLabels:{show:false,location:"e",edgeTolerance:-15},shadowAngle:135,rendererOptions:{barDirection:"horizontal"}},axes:{yaxis:{renderer:$.jqplot.CategoryAxisRenderer,ticks:ticks},xaxis:{tickOptions:{formatString:"%d%"}}}});var ticks=["< 5","5-17","18-34","35-64","> 64"];var plot1=$.jqplot("chart4",ageDistributionData,{title:"Age Distribution",seriesColors:P.CloneOptions.chartsColors,seriesDefaults:{renderer:$.jqplot.BarRenderer,rendererOptions:{fillToZero:true}},axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer,ticks:ticks},yaxis:{tickOptions:{formatString:"%d%"}}}})};if(obj.county!=null){var $barChartLegend=$(".bar-chart-legend");var $newRow=$("<div />");$newRow.addClass("row");var $rowColor=$("<div />");$rowColor.addClass("color county");var $rowLabel=$("<span />");$rowLabel.text(obj.county.getLabel()+" County");$newRow.append($rowColor,$rowLabel);$barChartLegend.append($newRow);var cube3=new PCube(countyinds,[obj.county],periods);cube3.loadValues(function(countyvalues){this.values=countyvalues;var cpop=getSumOfPlaces(this,i.CPOP,periods[1]);var chiall=getSumOfPlaces(this,i.CHIALL,periods[1]);var arr3=[];var s=getSumOfPlaces(this,i.CHILT15,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr3.push([parseFloat(val),1]);var s=getSumOfPlaces(this,i.CHI15_25,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr3.push([parseFloat(val),2]);var s1=getSumOfPlaces(this,i.CHI25_35,periods[1]);var s2=getSumOfPlaces(this,i.CHI35_50,periods[1]);var s=s1+s2;var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr3.push([parseFloat(val),3]);var s=getSumOfPlaces(this,i.CHI50_75,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr3.push([parseFloat(val),4]);var s=getSumOfPlaces(this,i.CHI75_100,periods[1]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr3.push([parseFloat(val),5]);var s1=getSumOfPlaces(this,i.CHILT100,periods[1]);var s2=getSumOfPlaces(this,i.CHIALL,periods[1]);var s=s2-s1;var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr3.push([parseFloat(val),6]);var ageDistArr3=[];var s=getSumOfPlaces(this,i.CPOP0_4,periods[1]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr3.push(parseFloat(val));var s1=getSumOfPlaces(this,i.CPOP5_9,periods[1]);var s2=getSumOfPlaces(this,i.CPOP10_14,periods[1]);var s3=getSumOfPlaces(this,i.CPOP15_17,periods[1]);var s=s1+s2+s3;var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr3.push(parseFloat(val));var s=getSumOfPlaces(this,i.CPOP18_34,periods[1]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr3.push(parseFloat(val));var s1=getSumOfPlaces(this,i.CPOP35_54,periods[1]);var s2=getSumOfPlaces(this,i.CPOP55_64,periods[1]);var s=s1+s2;var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr3.push(parseFloat(val));var s=getSumOfPlaces(this,i.CPOP65P,periods[1]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr3.push(parseFloat(val));var householdIncomeData=[arr1,arr2,arr3];var ageDistributionData=[ageDistArr1,ageDistArr2,ageDistArr3];renderBarCharts(householdIncomeData,ageDistributionData)})}else{$(".no-county-data").show();var householdIncomeData=[arr1,arr2];var ageDistributionData=[ageDistArr1,ageDistArr2];renderBarCharts(householdIncomeData,ageDistributionData)}})},{includeMappings:true})}function displayCultureBlocksReport(aggregates,boundarea,counties){getPhillyContainmentsLists(boundarea);var aggObj={};var ids=boundaryMatrix.getMatrixOrder();for(var i=0;i<ids.length;i++){aggObj[ids[i]]=[]}for(var i=0;i<aggregates.length;i++){var p=aggregates[i];var mIds=boundaryMatrix.getAllMatrixIdsForDefinitionId(p.getDefinitionId());for(var j=0;j<mIds.length;j++){mId=mIds[j];aggObj[mId].push(p)}}if(boundarea.getType()==PPlaceType.BLOCKGROUP){var p=boundarea;var mId=boundaryMatrix.getMatrixIdForDefinitionId(p.getDefinitionId());aggObj[mId]=[p]}var params=getUrlParams();if(P.WKPrint.isPrintPage()===true){$("head").append('<link rel="stylesheet" href="/cssPrint/culture_blocks.css" type="text/css" />');$(".print-page2").append($(".report-charts"))}var set=new POverlaySet(125350);set.overrideLimit=true;set.type="old";set.isPoly=true;boundarea.getMarkersWithin(set,function(markers){var elem=$("#parks");var list=getDisplayMarkersListCB(markers,elem,"Parks")},true);var set=new POverlaySet(125100);set.overrideLimit=true;set.type="old";boundarea.getMarkersWithin(set,function(markers){var elem=$("#rec-centers");var list=getDisplayMarkersListCB(markers,elem,"Recreation Centres")});var set=new POverlaySet(125e3);set.overrideLimit=true;set.type="old";boundarea.getMarkersWithin(set,function(markers){var elem=$("#libraries");var list=getDisplayMarkersListCB(markers,elem,"Libraries")});var set=new POverlaySet(126900);set.type="old";boundarea.getMarkersWithin(set,function(markers){var set=new POverlaySet(126950);set.type="old";set.isPoly=true;var elem=$("#organizations");boundarea.getMarkersWithin(set,function(polymarkers){var allmarkers=markers.concat(polymarkers);var list=getDisplayMarkersListCB(allmarkers,elem,"",";")},true)});var aggList=$("#agg-list");var aggToggle=$("#agg-toggle");var aggTogglePrint=$("#agg-toggle-print");var t=getAggregatedPlaceNames(aggObj[2]);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show");aggTogglePrint.text("Not Displayed")}else{aggList.slideDown();aggToggle.text("(-) Hide");aggTogglePrint.text("")}});if(params["da"]){aggToggle.click()}var ids=[125900,125850,124400,124450,124500];$("#asset-directory").click(function(){boundarea.getMarkersWithinCSV(ids)});var f=function(cnt){var set=new POverlaySet(ids[cnt]);set.type="old";set.cnt=cnt;boundarea.getMarkersWithin(set,function(markers){var id="#count"+cnt;var length=0;if(markers.length>0){if(markers[0]instanceof PMarker){length=markers.length}else{length=markers[0]}}$(id).html(length);if(length==0){$(id).next().hide()}else{$(id).next().click(function(){$(".seelist").html("(click to see list)");var elem=$(this).parent().parent().next().find(".list");if(elem.hasClass("on")){elem.hide();elem.removeClass("on");return}$(this).html("(click to close list)");var elems=$(this).parent().parent().parent().find(".list");elems.empty();elems.hide();elems.removeClass("on");elem.addClass("on");elem.show();var html=getSiteListHtmlCB(set,boundarea);elem.html(html);generateReportSitesList(set,boundarea)})}cnt++;if(cnt<ids.length){f(cnt)}})};f(0);var i={};i.CPOP=new PIndicator(9901615);i.CHH=new PIndicator(9901629);i.CPOP18B=new PIndicator(9901611);i.CPOP65P=new PIndicator(9901613);i.CHILT15=new PIndicator(9929655);i.CHI15_25=new PIndicator(9929650);i.CHI25_35=new PIndicator(9929651);i.CHI35_50=new PIndicator(9929652);i.CHI50_75=new PIndicator(9929653);i.CHI75_100=new PIndicator(9929654);i.CHILT100=new PIndicator(9929656);i.CHIALL=new PIndicator(9929657);i.CPOP0_4=new PIndicator(9932200);i.CPOP5_9=new PIndicator(9869090);i.CPOP10_14=new PIndicator(9932201);i.CPOP15_17=new PIndicator(9932202);i.CPOP18_34=new PIndicator(9901624);i.CPOP35_54=new PIndicator(9901610);i.CPOP55_64=new PIndicator(9901623);var countyinds=[];for(var ind in i){countyinds.push(i[ind])}i.CFAM=new PIndicator(9868933);i.CPOPALLAGE=new PIndicator(9901639);i.CLT9TH=new PIndicator(9901500);i.CSMHSNODIP=new PIndicator(9901516);i.CHS=new PIndicator(9901521);i.CSMCOLASS=new PIndicator(9901510);i.CBACHP=new PIndicator(9901509);i.CEDUALL=new PIndicator(9901512);i.CPOPWH=new PIndicator(9901617);i.CPOPBK=new PIndicator(9901604);i.CPOPAS=new PIndicator(9901612);i.CPOPALLRACE=new PIndicator(9901605);i.CPOPHISP=new PIndicator(9901601);i.CPOPALLETH=new PIndicator(9901638);var allinds=[];for(var ind in i){allinds.push(i[ind])}i.PHARESPT=new PIndicator(9899654);i.CUSTPHH10=new PIndicator(9899661);i.CHH_2009=new PIndicator(9933350);var periods=[P.constants.latestACSPeriod];var cube=new PCube(allinds,aggObj[2],periods);cube.loadValues(function(values){this.values=values;var chhValues10=this.getValuesObjectOfPlaces(i.CHH,periods[0]);var cpop=getSumOfPlaces(this,i.CPOP,periods[0]);var val=PWebUtil.formatNumber(cpop);$("#total-population").html(val);var chh=getSumOfPlaces(this,i.CHH,periods[0]);var val=PWebUtil.formatNumber(chh);$("#total-households").html(val);var cfam=getSumOfPlaces(this,i.CFAM,periods[0]);var s=divideCheck(cfam,chh,100);var val=PWebUtil.formatNumber(s,"_%");$("#family-households").html(val);if(cfam&&chh){var s=divideCheck(chh-cfam,chh,100)}else{var s=null}var val=PWebUtil.formatNumber(s,"_%");$("#nonfamily-households").html(val);var s1=getSumOfPlaces(this,i.CPOP18B,periods[0]);var s2=getSumOfPlaces(this,i.CPOPALLAGE,periods[0]);var s=divideCheck(s1,s2,100);var val=PWebUtil.formatNumber(s,"_%");$("#under-18").html(val);var s1=getSumOfPlaces(this,i.CPOP65P,periods[0]);var s2=getSumOfPlaces(this,i.CPOPALLAGE,periods[0]);var s=divideCheck(s1,s2,100);var val=PWebUtil.formatNumber(s,"_%");$("#over-65").html(val);var cpophisp=getSumOfPlaces(this,i.CPOPHISP,periods[0]);var cpopalleth=getSumOfPlaces(this,i.CPOPALLETH,periods[0]);var s=divideCheck(cpophisp,cpopalleth,100);var val=PWebUtil.formatNumber(s,"_%");$("#hispanic-pop").html(val);var s1=cpop-cpophisp;var s2=cpopalleth;var s=divideCheck(s1,s2,100);var val=PWebUtil.formatNumber(s,"_%");$("#non-hispanic-pop").html(val);var data=[];var s1=getSumOfPlaces(this,i.CLT9TH,periods[0]);var ceduall=getSumOfPlaces(this,i.CEDUALL,periods[0]);var s=divideCheck(s1,ceduall,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["Less than 9th Grade",parseFloat(s)]);var s1=getSumOfPlaces(this,i.CSMHSNODIP,periods[0]);var s=divideCheck(s1,ceduall,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["Some High School",parseFloat(s)]);var s1=getSumOfPlaces(this,i.CHS,periods[0]);var s=divideCheck(s1,ceduall,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["High School Diploma",parseFloat(s)]);var s1=getSumOfPlaces(this,i.CSMCOLASS,periods[0]);var s=divideCheck(s1,ceduall,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["Some College or Associate's",parseFloat(s)]);var s1=getSumOfPlaces(this,i.CBACHP,periods[0]);var s=divideCheck(s1,ceduall,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["At Least a Bachelor's Degree",parseFloat(s)]);var plot1=jQuery.jqplot("chart1",[data],{title:"Education",seriesDefaults:{renderer:jQuery.jqplot.PieRenderer,rendererOptions:{showDataLabels:true}},legend:{renderer:$.jqplot.EnhancedLegendRenderer,show:true,location:"s",placement:"outside",rendererOptions:{numberColumns:2},border:"none"},grid:{drawGridlines:false,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent"}});var data=[];var cpopwh=getSumOfPlaces(this,i.CPOPWH,periods[0]);var cpopallrace=getSumOfPlaces(this,i.CPOPALLRACE,periods[0]);var s=divideCheck(cpopwh,cpopallrace,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["White",parseFloat(s)]);var cpopbk=getSumOfPlaces(this,i.CPOPBK,periods[0]);var cpopallrace=getSumOfPlaces(this,i.CPOPALLRACE,periods[0]);var s=divideCheck(cpopbk,cpopallrace,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["African American",parseFloat(s)]);var cpopas=getSumOfPlaces(this,i.CPOPAS,periods[0]);var cpopallrace=getSumOfPlaces(this,i.CPOPALLRACE,periods[0]);var s=divideCheck(cpopas,cpopallrace,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["Asian",parseFloat(s)]);var s=divideCheck(cpopallrace-cpopwh-cpopbk-cpopas,cpopallrace,100);var val=PWebUtil.formatNumber(s,"_%");data.push(["Other",parseFloat(s)]);var plot1=jQuery.jqplot("chart2",[data],{title:"Race",seriesDefaults:{renderer:jQuery.jqplot.PieRenderer,rendererOptions:{showDataLabels:true}},legend:{renderer:$.jqplot.EnhancedLegendRenderer,show:true,location:"s",placement:"outside",rendererOptions:{numberColumns:2},border:"none"},grid:{drawGridlines:false,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent"}});var chiall=getSumOfPlaces(this,i.CHIALL,periods[0]);var arr1=[];var s=getSumOfPlaces(this,i.CHILT15,periods[0]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),1]);var s=getSumOfPlaces(this,i.CHI15_25,periods[0]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),2]);var s1=getSumOfPlaces(this,i.CHI25_35,periods[0]);var s2=getSumOfPlaces(this,i.CHI35_50,periods[0]);var s=s1+s2;var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),3]);var s=getSumOfPlaces(this,i.CHI50_75,periods[0]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),4]);var s=getSumOfPlaces(this,i.CHI75_100,periods[0]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),5]);var s1=getSumOfPlaces(this,i.CHILT100,periods[0]);var s=chiall-s1;var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr1.push([parseFloat(val),6]);var ageDistArr1=[];var s=getSumOfPlaces(this,i.CPOP0_4,periods[0]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr1.push(parseFloat(val));var s1=getSumOfPlaces(this,i.CPOP5_9,periods[0]);var s2=getSumOfPlaces(this,i.CPOP10_14,periods[0]);var s3=getSumOfPlaces(this,i.CPOP15_17,periods[0]);var s=s1+s2+s3;var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr1.push(parseFloat(val));var s=getSumOfPlaces(this,i.CPOP18_34,periods[0]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr1.push(parseFloat(val));var s1=getSumOfPlaces(this,i.CPOP35_54,periods[0]);var s2=getSumOfPlaces(this,i.CPOP55_64,periods[0]);var s=s1+s2;var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr1.push(parseFloat(val));var s=getSumOfPlaces(this,i.CPOP65P,periods[0]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr1.push(parseFloat(val));var cube=new PCube([i.PHARESPT,i.CUSTPHH10,i.CHH_2009],aggObj[1],[2e3,2009,2010]);cube.loadValues(function(values){this.values=values;var chhValues_2000boundaries=this.getValuesObjectOfPlaces(i.CHH_2009,2009);var chh09=getSumOfPlaces(this,i.CHH_2009,2009);this.values=values;var s1=getSumOfPlaces(this,i.PHARESPT,2010);var s=divideCheck(s1,chh09,1e3);var val=PWebUtil.formatNumber(s);$("#res-art-value").html(val);var custphh10Values=this.getValuesObjectOfPlaces(i.CUSTPHH10,2010);var s1=getBGCulturalPartData(chhValues_2000boundaries,custphh10Values);var s=divideCheck(s1,chh09);var val=PWebUtil.formatNumber(s);$("#cultural-part-value").html(val);var county=new PPlace(548016);var county=new PPlace(102400);var cube2=new PCube(countyinds,[county],periods);cube2.loadValues(function(countyvalues){this.values=countyvalues;var cpop=getSumOfPlaces(this,i.CPOP,periods[0]);var chiall=getSumOfPlaces(this,i.CHIALL,periods[0]);var arr2=[];var s=getSumOfPlaces(this,i.CHILT15,periods[0]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),1]);var s=getSumOfPlaces(this,i.CHI15_25,periods[0]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),2]);var s1=getSumOfPlaces(this,i.CHI25_35,periods[0]);var s2=getSumOfPlaces(this,i.CHI35_50,periods[0]);var s=s1+s2;var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),3]);var s=getSumOfPlaces(this,i.CHI50_75,periods[0]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),4]);var s=getSumOfPlaces(this,i.CHI75_100,periods[0]);var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),5]);var s1=getSumOfPlaces(this,i.CHILT100,periods[0]);var s2=getSumOfPlaces(this,i.CHIALL,periods[0]);var s=s2-s1;var val=divideCheck(s,chiall,100);val=checkValueForNull(val);arr2.push([parseFloat(val),6]);var data=[];data.push(arr2);data.push(arr1);var ticks=["< $15K","$15 - 25K","$25K-50K","$50K-75K","$75k-100K","> $100K"];var plot2=$.jqplot("chart3",data,{title:"Household Income",seriesDefaults:{renderer:$.jqplot.BarRenderer,pointLabels:{show:false,location:"e",edgeTolerance:-15},shadowAngle:135,rendererOptions:{barDirection:"horizontal"}},axes:{yaxis:{renderer:$.jqplot.CategoryAxisRenderer,ticks:ticks},xaxis:{tickOptions:{formatString:"%d%"}}}});var ageDistArr2=[];var s=getSumOfPlaces(this,i.CPOP0_4,periods[0]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr2.push(parseFloat(val));var s1=getSumOfPlaces(this,i.CPOP5_9,periods[0]);var s2=getSumOfPlaces(this,i.CPOP10_14,periods[0]);var s3=getSumOfPlaces(this,i.CPOP15_17,periods[0]);var s=s1+s2+s3;var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr2.push(parseFloat(val));var s=getSumOfPlaces(this,i.CPOP18_34,periods[0]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr2.push(parseFloat(val));var s1=getSumOfPlaces(this,i.CPOP35_54,periods[0]);var s2=getSumOfPlaces(this,i.CPOP55_64,periods[0]);var s=s1+s2;var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr2.push(parseFloat(val));var s=getSumOfPlaces(this,i.CPOP65P,periods[0]);var val=divideCheck(s,cpop,100);val=checkValueForNull(val);ageDistArr2.push(parseFloat(val));var data=[];data.push(ageDistArr2);data.push(ageDistArr1);var ticks=["< 5","5-17","18-34","35-64","> 64"];var plot1=$.jqplot("chart4",data,{title:"Age Distribution",seriesDefaults:{renderer:$.jqplot.BarRenderer,rendererOptions:{fillToZero:true}},axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer,ticks:ticks},yaxis:{tickOptions:{formatString:"%d%"}}}})})})})}function getBGCulturalPartData(v1,v2){var total=0;for(var p in v1){if(v1[p]&&v2[p]){total+=v1[p]*v2[p]}}return total}function displayDCReport(aggregates,boundarea,comparisonPlaces){$("html > head > title").html("DC Childcare Map");if(boundarea.getType().getId()==0){$("span.boundarea").html("Report Area")}else{$("span.boundarea").html(boundarea.getLabel())}var params=getUrlParams();getDCContainmentsLists(boundarea);if(P.WKPrint.isPrintPage()===true){$("body > div.top-container").remove();$("body").css("background-color","white")}var aggObj={};var ids=boundaryMatrix.getMatrixOrder();for(var i=0;i<ids.length;i++){aggObj[ids[i]]=[]}for(var i=0;i<aggregates.length;i++){var p=aggregates[i];var mIds=boundaryMatrix.getAllMatrixIdsForDefinitionId(p.getDefinitionId());for(var j=0;j<mIds.length;j++){mId=mIds[j];aggObj[mId].push(p)}}if(boundarea.getType()==PPlaceType.BLOCKGROUP){var p=boundarea;var mId=boundaryMatrix.getMatrixIdForDefinitionId(p.getDefinitionId());aggObj[mId]=[p]}if(P.WKPrint.isPrintPage()===true){$("head").append('<link rel="stylesheet" href="/cssPrint/culture_blocks.css" type="text/css" />');$(".print-page2").append($(".report-charts"))}var overrideSitesLimit=true;var place_washington_city=comparisonPlaces.shift();var district_of_columbia_county=comparisonPlaces.shift();var usa=comparisonPlaces.shift();var washingtonDCbgs=comparisonPlaces;DCLoadChildCare(aggObj,boundarea,place_washington_city,district_of_columbia_county,washingtonDCbgs);DCLoadChildCareCity(aggObj,boundarea,place_washington_city,district_of_columbia_county,washingtonDCbgs,usa);DCLoadPopulationText(aggObj,boundarea,place_washington_city,district_of_columbia_county);DCLoadPopAndAge(aggObj,boundarea,place_washington_city,district_of_columbia_county);DCLoadRace(aggObj,boundarea,place_washington_city,district_of_columbia_county);DCLoadIncomeText(aggObj,boundarea,place_washington_city,district_of_columbia_county)
;DCLoadIncomePart1(aggObj,boundarea,place_washington_city,district_of_columbia_county);DCLoadHouseholdStatus(aggObj,boundarea,place_washington_city,district_of_columbia_county);DCLoadSchoolEnrollment(aggObj,boundarea,place_washington_city,district_of_columbia_county);DCLoadJobsEconomy(aggObj,boundarea,place_washington_city,district_of_columbia_county);DCLoadTransportationPart1(aggObj,boundarea,place_washington_city,district_of_columbia_county);DCLoadEducationAttainment(aggObj,boundarea,place_washington_city,district_of_columbia_county);DCLoadLanguageSpokenAtHome(aggObj,boundarea,place_washington_city,district_of_columbia_county);DCLoadGeographyType(boundarea);var t=PPlaceType.CENSUSTRACT;var defids=boundaryMatrix.getAllBoundaryDefinitionIdsForTypeId(t.getId());var overlap_pct=50;var quota=50;boundarea.getAggregates(t,null,defids,function(censustracts){var tracts=censustracts||[];DCLoadIncomePart2(aggObj,boundarea,place_washington_city,district_of_columbia_county,tracts);var aggList=$("#tracts-list");var aggToggle=$("#tracts-toggle");var aggTogglePrint=$("#tracts-toggle-print");var t=getAggregatedPlaceNames(tracts);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show");aggTogglePrint.text("Not Displayed")}else{aggList.slideDown();aggToggle.text("(-) Hide");aggTogglePrint.text("")}});if(params["da"]){aggToggle.click()}},overlap_pct,null,null,null,null,null,null,quota);var aggList=$("#agg-list");var aggToggle=$("#agg-toggle");var aggTogglePrint=$("#agg-toggle-print");var t=getAggregatedPlaceNames(aggObj[2]);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show");aggTogglePrint.text("Not Displayed")}else{aggList.slideDown();aggToggle.text("(-) Hide");aggTogglePrint.text("")}});var overlaySet=new POverlaySet(178500,PinIcons.triangle180,15);map.addOverlaySet(overlaySet)}function getDCContainmentsLists(b){var mid=1;if(b.typeid==PPlaceType.DC_ZIP.getId()){displayDistrictsCB([b],"zip-codes",b)}else{b.getPlacesContaining(PPlaceType.DC_ZIP,null,null,function(zips){if(!zips.length){b.getAggregates(PPlaceType.DC_ZIP,null,null,function(zips){displayDistrictsCB(zips,"zip-codes",b)})}else{displayDistrictsCB(zips,"zip-codes",b)}})}var set=new POverlaySet(140150);set.type="old";set.overrideLimit=true;set.map=null;b.getMarkersWithin(set,function(markers){var combinedMarkers=[];for(var i=0;i<markers.length;i++){var attributes=markers[i].attributes;for(var j=0;j<attributes.length;j++){var attribute=attributes[j];if(attribute.columnName=="schnam"){combinedMarkers.push(markers[i])}}}var set=new POverlaySet(139350);set.type="old";set.overrideLimit=true;set.map=null;b.getMarkersWithin(set,function(markers){for(var i=0;i<markers.length;i++){var attributes=markers[i].attributes;for(var j=0;j<attributes.length;j++){var attribute=attributes[j];if(attribute.columnName=="pinst"){combinedMarkers.push(markers[i])}}}var elem=$("#schools");var list=getDisplayMarkersListCB(combinedMarkers,elem,"Schools",",")},true)},true);var set=new POverlaySet(131650);set.type="old";set.overrideLimit=true;set.map=null;b.getMarkersWithin(set,function(markers){var elem=$("#libraries");var list=getDisplayMarkersListCB(markers,elem,"Libraries")})}function DCLoadChildCare(aggObj,boundarea,place_washington_city,district_of_columbia_county){var set1=new POverlaySet(178500);set1.type="old";set1.overrideLimit=true;set1.map=null;var high_quality_supply_facilities=0;var non_high_quality_supply_facilities=0;var total_supply_facilities=0;var high_quality_supply_slots=0;var non_high_quality_supply_slots=0;var total_supply_slots=0;var unlicensed_slots=0;boundarea.getMarkersWithin(set1,function(markers){markers=markers||[];for(i in markers){var atts=markers[i].attributes;var isLicenced=false;var isHighQuality=false;var slots=0;for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="licensed"){var value=attrib.value;if(value=="Yes"||value=="yes"){isLicenced=true}break}}for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="highquality"){var value=attrib.value;if(value=="Yes"||value=="yes"){isHighQuality=true}break}}for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="capacity"){var capacity=parseInt(attrib.value)||0;slots=capacity;break}}if(isLicenced){total_supply_facilities++;total_supply_slots+=slots;if(isHighQuality){high_quality_supply_facilities++;high_quality_supply_slots+=slots}else{non_high_quality_supply_facilities++;non_high_quality_supply_slots+=slots}}else{unlicensed_slots+=slots}}$("#childcare-count0").html(PWebUtil.formatNumber(high_quality_supply_facilities));$("#childcare-slots0").html(PWebUtil.formatNumber(high_quality_supply_slots));if(high_quality_supply_facilities==0){$("#childcare-count0").next().hide()}else{$("#childcare-count0").click(function(){var filters=this.filters||[];var newFilter=new PAttributeFilter("highquality",["Yes"],1,"Yes","highquality",1,0,53440);filters.push(newFilter);var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set1,boundarea);$elem.append(html);generateReportSitesListInAlert(set1,boundarea,filters,$elem)})}$("#childcare-count1").html(PWebUtil.formatNumber(total_supply_facilities));$("#childcare-slots1").html(PWebUtil.formatNumber(total_supply_slots));if(total_supply_facilities==0){$("#childcare-count1").next().hide()}else{$("#childcare-count1").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set1,boundarea);$elem.append(html);generateReportSitesListInAlert(set1,boundarea,filters,$elem)})}$("#childcaretext_total_supply_facilities").html(PWebUtil.formatNumber(total_supply_facilities));$("#childcaretext_licensed_supply_slots").html(PWebUtil.formatNumber(total_supply_slots));$("#childcaretext_highquality_supply_facilities").html(PWebUtil.formatNumber(high_quality_supply_facilities));$("#childcaretext_highquality_supply_slots").html(PWebUtil.formatNumber(high_quality_supply_slots));var set2=new POverlaySet(180200);set2.type="old";set2.overrideLimit=true;set2.map=null;var high_quality_supply_inftod_facilities=0;var non_high_quality_supply_inftod_facilities=0;var total_supply_inftod_facilities=0;var high_quality_supply_inftod_slots=0;var non_high_quality_supply_inftod_slots=0;var total_supply_inftod_slots=0;boundarea.getMarkersWithin(set2,function(markers){markers=markers||[];for(i in markers){var atts=markers[i].attributes;var isLicenced=false;var isHighQuality=false;var slots=0;for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="licensed"){var value=attrib.value;if(value=="Yes"||value=="yes"){isLicenced=true}break}}for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="highquality"){var value=attrib.value;if(value=="Yes"||value=="yes"){isHighQuality=true}break}}for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="inf_capacity"){var capacity=parseInt(attrib.value)||0;slots=capacity;break}}if(isLicenced){total_supply_inftod_facilities++;total_supply_inftod_slots+=slots;if(isHighQuality){high_quality_supply_inftod_facilities++;high_quality_supply_inftod_slots+=slots}else{non_high_quality_supply_inftod_facilities++;non_high_quality_supply_inftod_slots+=slots}}}$("#childcare-count2").html(PWebUtil.formatNumber(high_quality_supply_inftod_facilities));$("#childcare-slots2").html(PWebUtil.formatNumber(high_quality_supply_inftod_slots));if(high_quality_supply_inftod_facilities==0){$("#childcare-count2").next().hide()}else{$("#childcare-count2").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set2,boundarea);$elem.append(html);generateReportSitesListInAlert(set2,boundarea,filters,$elem)})}$("#childcare-count3").html(PWebUtil.formatNumber(total_supply_inftod_facilities));$("#childcare-slots3").html(PWebUtil.formatNumber(total_supply_inftod_slots));if(total_supply_inftod_facilities==0){$("#childcare-count3").next().hide()}else{$("#childcare-count3").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set2,boundarea);$elem.append(html);generateReportSitesListInAlert(set2,boundarea,filters,$elem)})}var places=aggObj[2];if(boundarea.typeid==PPlaceType.BLOCKGROUP.id){places=[boundarea]}var periods=[2017];var indsObj={};indsObj.estdemand=new PIndicator(9959531);indsObj.estinfanttoddlerdemand=new PIndicator(9959526);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var inds=indsArr;var cube=new PCube(inds,places,periods);cube.loadValues(function(values){this.values=values;var estdemand=getSumOfPlaces(cube,indsObj.estdemand,"2017")||0;var estinfanttoddlerdemand=getSumOfPlaces(cube,indsObj.estinfanttoddlerdemand,"2017")||0;$("#total_estimated_ece_demand").html(PWebUtil.formatNumber(estdemand));$("#total_estimated_infant_toddler_ece_demand").html(PWebUtil.formatNumber(estinfanttoddlerdemand));$("#childcaretext_total_estimated_ece_demand").html(PWebUtil.formatNumber(estdemand));var demand_minus_supply=Math.abs(estdemand-total_supply_slots);$("#childcaretext_demand_minus_supply").html(PWebUtil.formatNumber(demand_minus_supply));if(estdemand<total_supply_inftod_slots){$("#childcaretext_more_or_less").html("fewer")}var chartData=[{label:"High-Quality Licensed Slots",value:high_quality_supply_slots,color:"#00a9e0",type:"Supply",accumulatedValue:0},{label:"Other Licensed Slots",value:non_high_quality_supply_slots,color:"#84bd00",type:"Supply",accumulatedValue:0},{label:"Unlicensed Slots",value:unlicensed_slots,color:"#9966cc",type:"Supply",accumulatedValue:0},{label:"Estimated Demand",value:estdemand,color:"#ff9e1b",type:"Demand",accumulatedValue:0}];var placename="Report Area( "+boundarea.getLabel()+" )";DC_render_childcare_supply_and_demand_graph("childcare-graph1",chartData,placename);var chartDataInfantToddlers=[{label:"High-Quality Licensed Slots",value:high_quality_supply_inftod_slots,color:"#00a9e0",type:"Supply",accumulatedValue:0},{label:"Other Licensed Slots",value:non_high_quality_supply_inftod_slots,color:"#84bd00",type:"Supply",accumulatedValue:0},{label:"Estimated Infant/Toddler Demand",value:estinfanttoddlerdemand,color:"#ff9e1b",type:"Demand",accumulatedValue:0}];DC_render_childcare_supply_and_demand_graph("childcare-graph3",chartDataInfantToddlers,placename);$(".seelist").poshytip({content:"View in table",className:"tip-twitter",alignTo:"target",alignX:"center",alignY:"top",offsetY:30,slide:false,showTimeout:0,hideTimeout:0})})})})}function DCLoadChildCareCity(aggObj,boundarea,place_washington_city,district_of_columbia_county,washingtonDCbgs,usa){var set1=new POverlaySet(178500);set1.type="old";set1.overrideLimit=true;set1.map=null;var high_quality_supply_facilities=0;var non_high_quality_supply_facilities=0;var total_supply_facilities=0;var high_quality_supply_slots=0;var non_high_quality_supply_slots=0;var total_supply_slots=0;var unlicensed_slots=0;usa.getMarkersWithin(set1,function(markers){markers=markers||[];for(i in markers){var atts=markers[i].attributes;var isLicenced=false;var isHighQuality=false;var slots=0;for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="licensed"){var value=attrib.value;if(value=="Yes"||value=="yes"){isLicenced=true}break}}for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="highquality"){var value=attrib.value;if(value=="Yes"||value=="yes"){isHighQuality=true}break}}for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="capacity"){var capacity=parseInt(attrib.value)||0;slots=capacity;break}}if(isLicenced){total_supply_facilities++;total_supply_slots+=slots;if(isHighQuality){high_quality_supply_facilities++;high_quality_supply_slots+=slots}else{non_high_quality_supply_facilities++;non_high_quality_supply_slots+=slots}}else{unlicensed_slots+=slots}}var set2=new POverlaySet(180200);set2.type="old";set2.overrideLimit=true;set2.map=null;var high_quality_supply_inftod_facilities=0;var non_high_quality_supply_inftod_facilities=0;var total_supply_inftod_facilities=0;var high_quality_supply_inftod_slots=0;var non_high_quality_supply_inftod_slots=0;var total_supply_inftod_slots=0;var unlicensed_inftod_slots=0;usa.getMarkersWithin(set2,function(markers){markers=markers||[];for(i in markers){var atts=markers[i].attributes;var isLicenced=false;var isHighQuality=false;var slots=0;for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="licensed"){var value=attrib.value;if(value=="Yes"||value=="yes"){isLicenced=true}break}}for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="highquality"){var value=attrib.value;if(value=="Yes"||value=="yes"){isHighQuality=true}break}}for(var j=0;j<atts.length;j++){var attrib=atts[j];if(attrib.columnName=="inf_capacity"){var capacity=parseInt(attrib.value)||0;slots=capacity;break}}if(isLicenced){total_supply_inftod_facilities++;total_supply_inftod_slots+=slots;if(isHighQuality){high_quality_supply_inftod_facilities++;high_quality_supply_inftod_slots+=slots}else{non_high_quality_supply_inftod_facilities++;non_high_quality_supply_inftod_slots+=slots}}else{unlicensed_inftod_slots+=slots}}var periods=[2017];var indsObj={};indsObj.estdemand=new PIndicator(9959531);indsObj.estinfanttoddlerdemand=new PIndicator(9959526);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var inds=indsArr;var cube=new PCube(inds,washingtonDCbgs,periods);cube.loadValues(function(values){this.values=values;var estdemand=getSumOfPlacesIgnoreNulls(this,indsObj.estdemand,"2017")||0;var estinfanttoddlerdemand=getSumOfPlacesIgnoreNulls(this,indsObj.estinfanttoddlerdemand,"2017")||0;var chartData=[{label:"High-Quality Licensed Slots",value:high_quality_supply_slots,color:"#00a9e0",type:"Supply",accumulatedValue:0},{label:"Other Licensed Slots",value:non_high_quality_supply_slots,color:"#84bd00",type:"Supply",accumulatedValue:0},{label:"Unlicensed Slots",value:unlicensed_slots,color:"#9966cc",type:"Supply",accumulatedValue:0},{label:"Estimated Demand",value:estdemand,color:"#ff9e1b",type:"Demand",accumulatedValue:0}];var placename="Washington D.C.";DC_render_childcare_supply_and_demand_graph("childcare-graph2",chartData,placename);var chartDataInfantToddlers=[{label:"High-Quality Licensed Slots",value:high_quality_supply_inftod_slots,color:"#00a9e0",type:"Supply",accumulatedValue:0},{label:"Other Licensed Slots",value:non_high_quality_supply_inftod_slots,color:"#84bd00",type:"Supply",accumulatedValue:0},{label:"Estimated Infant/Toddler Demand",value:estinfanttoddlerdemand,color:"#ff9e1b",type:"Demand",accumulatedValue:0}];DC_render_childcare_supply_and_demand_graph("childcare-graph4",chartDataInfantToddlers,placename)})})})}function DC_render_childcare_supply_and_demand_graph(svgId,chartData,placename){var sumSupply=0;for(i in chartData){var row=chartData[i];if(row.type=="Supply"){sumSupply+=+row.value}}var accumulatedValueSupply=0;var accumulatedValueDemand=0;for(i in chartData){var row=chartData[i];if(row.type=="Supply"){if(sumSupply==0){var percent=0}else{var percent=+row.value/sumSupply*100}chartData[i].percent=percent;accumulatedValueSupply=accumulatedValueSupply+row.value;chartData[i].accumulatedValue=accumulatedValueSupply}else{chartData[i].percent=100;chartData[i].accumulatedValue=accumulatedValueDemand;accumulatedValueDemand=accumulatedValueDemand+row.value;chartData[i].accumulatedValue=accumulatedValueDemand}}var svgId=svgId;var svg=d3.select("#"+svgId);var margin={top:10,right:15,bottom:80,left:60};var width=+svg.attr("width")-margin.left-margin.right;var height=+svg.attr("height")-margin.top-margin.bottom;var barWidthPercent=.65;var barWidth=width*barWidthPercent/2;var minimumPercentToShow=5;var yAxisNumOfTicks=8;var xScale=d3.scaleBand().range([0,width]);xScale.domain(chartData.map(function(d){return d.type}));var xAxis=svg.append("g").attr("id",svgId+"xAxis").call(d3.axisBottom(xScale));xAxis.attr("transform","translate("+margin.left+","+(margin.top+height)+")");d3.select("#"+svgId+"xAxis").selectAll("line").attr("stroke","none");d3.select("#"+svgId+"xAxis").selectAll("text").style("font-size","10px").style("fill","#797979");d3.select("#"+svgId+"xAxis").selectAll("path").style("stroke","lightgrey");var trueMax=d3.max(chartData,function(d){return+d.value});if(sumSupply>trueMax){trueMax=sumSupply}var yScale=d3.scaleLinear().domain([0,trueMax]).range([0,height]);yScale.nice();var yScaleInverse=d3.scaleLinear().domain([0,d3.max(chartData,function(d){return+d.value})]).range([height,0]);yScaleInverse.nice();var yAxis=svg.append("g").attr("id",svgId+"yAxis").call(d3.axisLeft(yScaleInverse).ticks(yAxisNumOfTicks));yAxis.attr("transform","translate("+margin.left+","+margin.top+")");d3.select("#"+svgId+"yAxis").selectAll("line").attr("stroke","none");d3.select("#"+svgId+"yAxis").selectAll("text").style("font-size","10px").style("fill","#797979");d3.select("#"+svgId+"yAxis").selectAll("path").style("stroke","lightgrey");d3.select("#"+svgId+"yAxis").selectAll("g.tick text");svg.append("g").attr("id",svgId+"grid").call(make_y_gridlines().tickSize(-width).tickFormat("")).attr("transform","translate("+margin.left+", "+margin.top+")");function make_y_gridlines(){return d3.axisLeft(yScaleInverse).ticks(yAxisNumOfTicks)}d3.select("#"+svgId+"grid").selectAll("path").attr("opacity",0);d3.select("#"+svgId+"grid").selectAll("line").attr("stroke","lightgrey").style("stroke-dasharray","3, 3").attr("stroke-opacity",.7);var dataBarsG=svg.append("g").attr("transform","translate("+margin.left+","+margin.top+")");dataBarsG.selectAll("rect").data(chartData).enter().append("rect").attr("x",function(d,i){var ret=0;ret=ret+xScale(d.type);ret=ret+barWidth/4;return ret}).attr("y",function(d,i){var ret=0;ret+=height;ret-=yScale(d.accumulatedValue);return ret}).attr("width",barWidth).attr("height",function(d,i){var ret=0;ret+=yScale(+d.value);return ret}).attr("fill",function(d,i){return d.color});var valuesG=svg.append("g").attr("transform","translate("+margin.left+","+margin.top+")");valuesG.selectAll("text").data(chartData).enter().append("text").attr("x",function(d,i){var ret=0;ret=ret+xScale(d.type);ret+=xScale.bandwidth()/2;return ret}).attr("y",function(d,i){var ret=0;ret+=height;ret-=yScale(d.accumulatedValue);ret+=yScale(d.value)/2;return ret}).text(function(d,i){var formatComma=d3.format(",");if(d.percent<minimumPercentToShow){return""}else{return formatComma(d.value)}}).attr("text-anchor","middle").style("font-size",9).style("font-family","arial").style("fill","#232323");var percentsG=svg.append("g").attr("transform","translate("+margin.left+","+margin.top+")");percentsG.selectAll("text").data(chartData).enter().append("text").attr("x",function(d,i){var ret=0;ret=ret+xScale(d.type);ret+=xScale.bandwidth()/2;return ret}).attr("y",function(d,i){var ret=0;ret+=height;ret-=yScale(d.accumulatedValue);ret+=yScale(d.value)/2;ret+=10;return ret}).text(function(d,i){var formatPercent=d3.format(",.0%");if(d.type=="Supply"){if(d.percent<minimumPercentToShow){return""}else{var p=d.percent/100;return formatPercent(p)}}else{return""}}).attr("text-anchor","middle").style("font-size",9).style("font-family","arial").style("fill","#232323");if(placename.substring(0,"Report Area".length)=="Report Area"){var placeNameG=svg.append("g").attr("transform","translate("+(margin.left+width/2)+","+(margin.top+height+margin.bottom/2)+")");placeNameG.append("text").text("Report Area").attr("text-anchor","middle").style("font-size",12).style("font-family","arial").style("fill","#797979");placename=placename.substring("Report Area".length);if(placename.length>25){placename=placename.substring(0,20)+", etc.)"}var placeNameG2=svg.append("g").attr("transform","translate("+(margin.left+width/2)+","+(margin.top+height+margin.bottom/2+16)+")");placeNameG2.append("text").text(placename).attr("text-anchor","middle").style("font-size",12).style("font-family","arial").style("fill","#797979")}else{var placeNameG=svg.append("g").attr("transform","translate("+(margin.left+width/2)+","+(margin.top+height+margin.bottom/2)+")");placeNameG.append("text").text(placename).attr("text-anchor","middle").style("font-size",12).style("font-family","arial").style("fill","#797979")}var yAxisLabelG=svg.append("g").attr("transform","translate("+margin.left*.2+","+(margin.top+height/2)+")");yAxisLabelG.append("text").text("Count").attr("text-anchor","middle").style("font-size",12).style("font-family","arial").style("fill","#797979").attr("transform","rotate(-90)")}function DCLoadPopAndAge(aggObj,boundarea,place_washington_city,district_of_columbia_county){var periods=[2010];var years={y2010:periods[0]};var indid=9937862;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cpoplt1=new PIndicator(9937862);indsObj.cpop1=new PIndicator(9937861);indsObj.cpop2=new PIndicator(9937858);indsObj.cpop3=new PIndicator(9937857);indsObj.cpop4=new PIndicator(9937859);indsObj.cpopallage=new PIndicator(9937864);indsObj.cpop0_4=new PIndicator(9868901);indsObj.cpop10_14=new PIndicator(9869025);indsObj.cpop5_9=new PIndicator(9869090);indsObj.cpop15_17=new PIndicator(9868851);indsObj.cpop18_34=new PIndicator(9868870);indsObj.cpop35_64=new PIndicator(9906418);indsObj.cpop=new PIndicator(9869069);indsObj.cpop65p=new PIndicator(9868923);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cpoplt1=getSumOfPlaces(this,indsObj.cpoplt1,years.y2010);var cpop1=getSumOfPlaces(this,indsObj.cpop1,years.y2010);var cpop2=getSumOfPlaces(this,indsObj.cpop2,years.y2010);var cpop3=getSumOfPlaces(this,indsObj.cpop3,years.y2010);var cpop4=getSumOfPlaces(this,indsObj.cpop4,years.y2010);var cpopallage=getSumOfPlaces(this,indsObj.cpopallage,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop10_14=getSumOfPlaces(this,indsObj.cpop10_14,years.y2010);var cpop5_9=getSumOfPlaces(this,indsObj.cpop5_9,years.y2010);var cpop15_17=getSumOfPlaces(this,indsObj.cpop15_17,years.y2010);var cpop05_17=cpop10_14+cpop5_9+cpop15_17;var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010);var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var cpop18_64=cpop18_34+cpop35_64;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop65p=getSumOfPlaces(this,indsObj.cpop65p,years.y2010);$("#cpoplt1_place_num").html(PWebUtil.formatNumber(cpoplt1));$("#cpop1_place_num").html(PWebUtil.formatNumber(cpop1));$("#cpop2_place_num").html(PWebUtil.formatNumber(cpop2));$("#cpop3_place_num").html(PWebUtil.formatNumber(cpop3));$("#cpop4_place_num").html(PWebUtil.formatNumber(cpop4));$("#cpop0_4_place_num").html(PWebUtil.formatNumber(cpop0_4));if(cpop10_14==null&&cpop5_9==null&&cpop15_17==null){$("#cpop05_17_place_num").html("N/A")}else{$("#cpop05_17_place_num").html(PWebUtil.formatNumber(cpop05_17))}if(cpop18_34==null&&cpop35_64==null){$("#cpop18_64_place_num").html("N/A")}else{$("#cpop18_64_place_num").html(PWebUtil.formatNumber(cpop18_64))}$("#cpop65p_place_num").html(PWebUtil.formatNumber(cpop65p));$("#cpopallage_place_num").html(PWebUtil.formatNumber(cpopallage));var cpoplt1_percent=PWebUtil.formatNumber(divideCheck(cpoplt1,cpopallage,100,null,null,true),"_%",1);var cpop1_percent=PWebUtil.formatNumber(divideCheck(cpop1,cpopallage,100,null,null,true),"_%",1);var cpop2_percent=PWebUtil.formatNumber(divideCheck(cpop2,cpopallage,100,null,null,true),"_%",1);var cpop3_percent=PWebUtil.formatNumber(divideCheck(cpop3,cpopallage,100,null,null,true),"_%",1);var cpop4_percent=PWebUtil.formatNumber(divideCheck(cpop4,cpopallage,100,null,null,true),"_%",1);var cpop0_4_percent=PWebUtil.formatNumber(divideCheck(cpop0_4,cpopallage,100,null,null,true),"_%",1);var cpop05_17_percent=PWebUtil.formatNumber(divideCheck(cpop05_17,cpopallage,100,null,null,true),"_%",1);var cpop18_64_percent=PWebUtil.formatNumber(divideCheck(cpop18_64,cpopallage,100,null,null,true),"_%",1);var cpop65p_percent=PWebUtil.formatNumber(divideCheck(cpop65p,cpopallage,100,null,null,true),"_%",1);$("#cpoplt1_place_percent").html(cpoplt1_percent);$("#cpop1_place_percent").html(cpop1_percent);$("#cpop2_place_percent").html(cpop2_percent);$("#cpop3_place_percent").html(cpop3_percent);$("#cpop4_place_percent").html(cpop4_percent);$("#cpop0_4_place_percent").html(cpop0_4_percent);$("#cpop05_17_place_percent").html(cpop05_17_percent);$("#cpop18_64_place_percent").html(cpop18_64_percent);$("#cpop65p_place_percent").html(cpop65p_percent);$("#cpopallage_place_percent").html("N/A");var cube2=new PCube(indsArr,[district_of_columbia_county],periods);cube2.loadValues(function(values){this.values=values;var cpoplt1=getSumOfPlaces(this,indsObj.cpoplt1,years.y2010);var cpop1=getSumOfPlaces(this,indsObj.cpop1,years.y2010);var cpop2=getSumOfPlaces(this,indsObj.cpop2,years.y2010);var cpop3=getSumOfPlaces(this,indsObj.cpop3,years.y2010);var cpop4=getSumOfPlaces(this,indsObj.cpop4,years.y2010);var cpopallage=getSumOfPlaces(this,indsObj.cpopallage,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop10_14=getSumOfPlaces(this,indsObj.cpop10_14,years.y2010);var cpop5_9=getSumOfPlaces(this,indsObj.cpop5_9,years.y2010);var cpop15_17=getSumOfPlaces(this,indsObj.cpop15_17,years.y2010);var cpop05_17=cpop10_14+cpop5_9+cpop15_17;var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010);var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var cpop18_64=cpop18_34+cpop35_64;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop65p=getSumOfPlaces(this,indsObj.cpop65p,years.y2010);var cpoplt1_percent=PWebUtil.formatNumber(divideCheck(cpoplt1,cpopallage,100,null,null,true),"_%",1);var cpop1_percent=PWebUtil.formatNumber(divideCheck(cpop1,cpopallage,100,null,null,true),"_%",1);var cpop2_percent=PWebUtil.formatNumber(divideCheck(cpop2,cpopallage,100,null,null,true),"_%",1);var cpop3_percent=PWebUtil.formatNumber(divideCheck(cpop3,cpopallage,100,null,null,true),"_%",1);var cpop4_percent=PWebUtil.formatNumber(divideCheck(cpop4,cpopallage,100,null,null,true),"_%",1);var cpop0_4_percent=PWebUtil.formatNumber(divideCheck(cpop0_4,cpopallage,100,null,null,true),"_%",1);var cpop05_17_percent=PWebUtil.formatNumber(divideCheck(cpop05_17,cpopallage,100,null,null,true),"_%",1);var cpop18_64_percent=PWebUtil.formatNumber(divideCheck(cpop18_64,cpopallage,100,null,null,true),"_%",1);var cpop65p_percent=PWebUtil.formatNumber(divideCheck(cpop65p,cpopallage,100,null,null,true),"_%",1);$("#cpoplt1_washington_percent").html(cpoplt1_percent);$("#cpop1_washington_percent").html(cpop1_percent);$("#cpop2_washington_percent").html(cpop2_percent);$("#cpop3_washington_percent").html(cpop3_percent);$("#cpop4_washington_percent").html(cpop4_percent);$("#cpop0_4_washington_percent").html(cpop0_4_percent);$("#cpop05_17_washington_percent").html(cpop05_17_percent);$("#cpop18_64_washington_percent").html(cpop18_64_percent);$("#cpop65p_washington_percent").html(cpop65p_percent);$("#cpopallage_washington_percent").html("N/A")});var arr=["Census, 2010"];var $src=DCSetSourceLinks(arr,"popage-section")})})}function DCLoadRace(aggObj,boundarea,place_washington_city,district_of_columbia_county){var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9869048;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cpopwh=new PIndicator(9869048);indsObj.cpopbk=new PIndicator(9868917);indsObj.cpopas=new PIndicator(9868922);indsObj.cpopnhpi=new PIndicator(9868883);indsObj.cpopaian=new PIndicator(9868954);indsObj.cpopoth=new PIndicator(9868998);indsObj.cpoptwop=new PIndicator(9869034);indsObj.cpophisp=new PIndicator(9868879);indsObj.cpopallrace=new PIndicator(9868881);indsObj.cpopalleth=new PIndicator(9868976);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cpopwh=getSumOfPlaces(this,indsObj.cpopwh,years.ACSPERIOD)||0;var cpopbk=getSumOfPlaces(this,indsObj.cpopbk,years.ACSPERIOD)||0;var cpopas=getSumOfPlaces(this,indsObj.cpopas,years.ACSPERIOD)||0;var cpopnhpi=getSumOfPlaces(this,indsObj.cpopnhpi,years.ACSPERIOD)||0;var cpopaian=getSumOfPlaces(this,indsObj.cpopaian,years.ACSPERIOD)||0;var cpopoth=getSumOfPlaces(this,indsObj.cpopoth,years.ACSPERIOD)||0;var cpoptwop=getSumOfPlaces(this,indsObj.cpoptwop,years.ACSPERIOD)||0;var cpophisp=getSumOfPlaces(this,indsObj.cpophisp,years.ACSPERIOD)||0;var cpopallrace=getSumOfPlaces(this,indsObj.cpopallrace,years.ACSPERIOD)||0;var cpopalleth=getSumOfPlaces(this,indsObj.cpopalleth,years.ACSPERIOD)||0;$("#cpopwh_place_num").html(PWebUtil.formatNumber(cpopwh));$("#cpopbk_place_num").html(PWebUtil.formatNumber(cpopbk));$("#cpopas_place_num").html(PWebUtil.formatNumber(cpopas));$("#cpopnhpi_place_num").html(PWebUtil.formatNumber(cpopnhpi));$("#cpopaian_place_num").html(PWebUtil.formatNumber(cpopaian));$("#cpopoth_place_num").html(PWebUtil.formatNumber(cpopoth));$("#cpoptwop_place_num").html(PWebUtil.formatNumber(cpoptwop));$("#cpophisp_place_num").html(PWebUtil.formatNumber(cpophisp));$("#cpopallrace_place_num").html(PWebUtil.formatNumber(cpopallrace));$("#cpopalleth_place_num").html(PWebUtil.formatNumber(cpopalleth));var cpopwh_percent=divideCheck(cpopwh,cpopallrace,100,null,null,true);var cpopbk_percent=divideCheck(cpopbk,cpopallrace,100,null,null,true);var cpopas_percent=divideCheck(cpopas,cpopallrace,100,null,null,true);var cpopnhpi_percent=divideCheck(cpopnhpi,cpopallrace,100,null,null,true);var cpopaian_percent=divideCheck(cpopaian,cpopallrace,100,null,null,true);var cpopoth_percent=divideCheck(cpopoth,cpopallrace,100,null,null,true);var cpoptwop_percent=divideCheck(cpoptwop,cpopallrace,100,null,null,true);var cpophisp_percent=divideCheck(cpophisp,cpopallrace,100,null,null,true);$("#cpopwh_place_percent").html(PWebUtil.formatNumber(cpopwh_percent,"_%",1));$("#cpopbk_place_percent").html(PWebUtil.formatNumber(cpopbk_percent,"_%",1));$("#cpopas_place_percent").html(PWebUtil.formatNumber(cpopas_percent,"_%",1));$("#cpopnhpi_place_percent").html(PWebUtil.formatNumber(cpopnhpi_percent,"_%",1));$("#cpopaian_place_percent").html(PWebUtil.formatNumber(cpopaian_percent,"_%",1));$("#cpopoth_place_percent").html(PWebUtil.formatNumber(cpopoth_percent,"_%",1));$("#cpoptwop_place_percent").html(PWebUtil.formatNumber(cpoptwop_percent,"_%",1));$("#cpophisp_place_percent").html(PWebUtil.formatNumber(cpophisp_percent,"_%",1));var cube2=new PCube(indsArr,[place_washington_city],periods);cube2.loadValues(function(values){this.values=values;var cpopwh=getSumOfPlaces(this,indsObj.cpopwh,years.ACSPERIOD)||0;var cpopbk=getSumOfPlaces(this,indsObj.cpopbk,years.ACSPERIOD)||0;var cpopas=getSumOfPlaces(this,indsObj.cpopas,years.ACSPERIOD)||0;var cpopnhpi=getSumOfPlaces(this,indsObj.cpopnhpi,years.ACSPERIOD)||0;var cpopaian=getSumOfPlaces(this,indsObj.cpopaian,years.ACSPERIOD)||0;var cpopoth=getSumOfPlaces(this,indsObj.cpopoth,years.ACSPERIOD)||0;var cpoptwop=getSumOfPlaces(this,indsObj.cpoptwop,years.ACSPERIOD)||0;var cpophisp=getSumOfPlaces(this,indsObj.cpophisp,years.ACSPERIOD)||0;var cpopallrace=getSumOfPlaces(this,indsObj.cpopallrace,years.ACSPERIOD)||0;var cpopalleth=getSumOfPlaces(this,indsObj.cpopalleth,years.ACSPERIOD)||0;var cpopwh_percent=divideCheck(cpopwh,cpopallrace,100,null,null,true)
;var cpopbk_percent=divideCheck(cpopbk,cpopallrace,100,null,null,true);var cpopas_percent=divideCheck(cpopas,cpopallrace,100,null,null,true);var cpopnhpi_percent=divideCheck(cpopnhpi,cpopallrace,100,null,null,true);var cpopaian_percent=divideCheck(cpopaian,cpopallrace,100,null,null,true);var cpopoth_percent=divideCheck(cpopoth,cpopallrace,100,null,null,true);var cpoptwop_percent=divideCheck(cpoptwop,cpopallrace,100,null,null,true);var cpophisp_percent=divideCheck(cpophisp,cpopalleth,100,null,null,true);$("#cpopwh_washington_percent").html(PWebUtil.formatNumber(cpopwh_percent,"_%",1));$("#cpopbk_washington_percent").html(PWebUtil.formatNumber(cpopbk_percent,"_%",1));$("#cpopas_washington_percent").html(PWebUtil.formatNumber(cpopas_percent,"_%",1));$("#cpopnhpi_washington_percent").html(PWebUtil.formatNumber(cpopnhpi_percent,"_%",1));$("#cpopaian_washington_percent").html(PWebUtil.formatNumber(cpopaian_percent,"_%",1));$("#cpopoth_washington_percent").html(PWebUtil.formatNumber(cpopoth_percent,"_%",1));$("#cpoptwop_washington_percent").html(PWebUtil.formatNumber(cpoptwop_percent,"_%",1));$("#cpophisp_washington_percent").html(PWebUtil.formatNumber(cpophisp_percent,"_%",1));var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=DCSetSourceLinks(arr,"race-section")})})})}function DCLoadIncomeText(aggObj,boundarea,place_washington_city,district_of_columbia_county){var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9871831;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.mhhinc=new PIndicator(9871831);indsObj.mhhinc.nodata=-99999999;indsObj.mfaminc=new PIndicator(9871853);indsObj.mfaminc.nodata=-99999999;indsObj.cfam=new PIndicator(9868933);indsObj.chh=new PIndicator(9869078);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var areaCube=new PCube(indsArr,aggObj[2],periods);areaCube.loadValues(function(values){this.values=values;var cfam=getSumOfPlaces(this,indsObj.cfam,periods[0]);$("#income_text_cfam").html(PWebUtil.formatNumber(cfam));var chh=getSumOfPlaces(this,indsObj.chh,periods[0]);$("#income_text_chh").html(PWebUtil.formatNumber(chh));var washingtonCube=new PCube(indsArr,[place_washington_city],periods);washingtonCube.loadValues(function(values){this.values=values;var arr=areaCube.getSortedValuesOfPlacesIgnoreNulls(indsObj.mhhinc,periods[0]);var mhhinc_range=getRangeString(arr[0],arr[arr.length-1],"$_").toLowerCase();if(mhhinc_range=="n/a"||mhhinc_range=="N/A"){mhhinc_range="ranged from N/A to N/A"}$("#income_text_mhhinc_range").html(mhhinc_range)});var cube=new PCube(indsArr,[district_of_columbia_county],periods);cube.loadValues(function(values){this.values=values;var median_mhhinc_washington=cube.getMedianOfPlacesIgnoreNulls(indsObj.mhhinc,periods[0]);$("#income_text_mhhinc_washington_range").html(PWebUtil.formatNumber(median_mhhinc_washington,"$_",0));var median_mfaminc_paterson=cube.getMedianOfPlacesIgnoreNulls(indsObj.mfaminc,periods[0]);$("#income_text_mfaminc_city").html(PWebUtil.formatNumber(median_mfaminc_paterson,"$_"))});var defid=boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.CENSUSTRACT.id,2);boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,defid,function(tracts){var tracts=tracts||[];var cube=new PCube(indsArr,tracts,periods);cube.loadValues(function(values){this.values=values;var arr=cube.getSortedValuesOfPlacesIgnoreNulls(indsObj.mfaminc,periods[0]);var mfaminc=getRangeString(arr[0],arr[arr.length-1],"$_").toLowerCase();$("#income_text_mfaminc").html(mfaminc)})})})})}function DCLoadPopulationText(aggObj,boundarea,place_washington_city,district_of_columbia_county){var periods=[2010];var years={y2010:periods[0]};var indid=9869069;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cpop=new PIndicator(9869069);indsObj.cpop0_4=new PIndicator(9868901);indsObj.cpop18_34=new PIndicator(9868870);indsObj.cpop35_64=new PIndicator(9906418);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010);var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var population_working_age=cpop18_34+cpop35_64;$("#population_text_total_population").html(PWebUtil.formatNumber(cpop));$("#population_text_population_chilcare_age").html(PWebUtil.formatNumber(cpop0_4));if(cpop18_34==null&&cpop35_64==null){$("#population_text_population_working_age").html("N/A")}else{$("#population_text_population_working_age").html(PWebUtil.formatNumber(population_working_age))}})})}function DCLoadIncomePart1(aggObj,boundarea,place_washington_city,district_of_columbia_county){var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9938092;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cfamlt25=new PIndicator(9938092);indsObj.cfam25_35=new PIndicator(9938088);indsObj.cfam35_50=new PIndicator(9938089);indsObj.cfam50_75=new PIndicator(9938090);indsObj.cfam75_100=new PIndicator(9938091);indsObj.cfam100_125=new PIndicator(9938085);indsObj.cfam125_150=new PIndicator(9938086);indsObj.cfam150p=new PIndicator(9938087);indsObj.cfamallinc=new PIndicator(9871916);indsObj.chilt25=new PIndicator(9871803);indsObj.chi25_35=new PIndicator(9871920);indsObj.chi35_50=new PIndicator(9871806);indsObj.chi50_75=new PIndicator(9871923);indsObj.chi75_100=new PIndicator(9871914);indsObj.chi100_125=new PIndicator(9871957);indsObj.chi125_150=new PIndicator(9871938);indsObj.chi150p=new PIndicator(9871960);indsObj.chiall=new PIndicator(9871984);indsObj.mfaminc=new PIndicator(9871853);indsObj.mfaminc.nodata=-99999999;indsObj.mhhinc=new PIndicator(9871831);indsObj.mhhinc.nodata=-99999999;indsObj.cfam=new PIndicator(9868933);indsObj.chh=new PIndicator(9869078);indsObj.cfampov50p=new PIndicator(9938096);indsObj.cfamund5_all=new PIndicator(9938097);indsObj.cfampov=new PIndicator(9871986);indsObj.cfampov_lt200p=new PIndicator(9938094);indsObj.cfampov_lt300p=new PIndicator(9938095);indsObj.cfampov_gt300p=new PIndicator(9938093);indsObj.cfamund5pov=new PIndicator(9938098);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cfamlt25=getSumOfPlaces(this,indsObj.cfamlt25,years.ACSPERIOD)||0;var cfam25_35=getSumOfPlaces(this,indsObj.cfam25_35,years.ACSPERIOD)||0;var cfam35_50=getSumOfPlaces(this,indsObj.cfam35_50,years.ACSPERIOD)||0;var cfam50_75=getSumOfPlaces(this,indsObj.cfam50_75,years.ACSPERIOD)||0;var cfam75_100=getSumOfPlaces(this,indsObj.cfam75_100,years.ACSPERIOD)||0;var cfam100_125=getSumOfPlaces(this,indsObj.cfam100_125,years.ACSPERIOD)||0;var cfam125_150=getSumOfPlaces(this,indsObj.cfam125_150,years.ACSPERIOD)||0;var cfam150p=getSumOfPlaces(this,indsObj.cfam150p,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;$("#cfamlt25_place_num").html(PWebUtil.formatNumber(cfamlt25));$("#cfam25_35_place_num").html(PWebUtil.formatNumber(cfam25_35));$("#cfam35_50_place_num").html(PWebUtil.formatNumber(cfam35_50));$("#cfam50_75_place_num").html(PWebUtil.formatNumber(cfam50_75));$("#cfam75_100_place_num").html(PWebUtil.formatNumber(cfam75_100));$("#cfam100_125_place_num").html(PWebUtil.formatNumber(cfam100_125));$("#cfam125_150_place_num").html(PWebUtil.formatNumber(cfam125_150));$("#cfam150p_place_num").html(PWebUtil.formatNumber(cfam150p));var cfamlt25_percent=divideCheck(cfamlt25,cfamallinc,100,null,null,true);var cfam25_35_percent=divideCheck(cfam25_35,cfamallinc,100,null,null,true);var cfam35_50_percent=divideCheck(cfam35_50,cfamallinc,100,null,null,true);var cfam50_75_percent=divideCheck(cfam50_75,cfamallinc,100,null,null,true);var cfam75_100_percent=divideCheck(cfam75_100,cfamallinc,100,null,null,true);var cfam100_125_percent=divideCheck(cfam100_125,cfamallinc,100,null,null,true);var cfam125_150_percent=divideCheck(cfam125_150,cfamallinc,100,null,null,true);var cfam150p_percent=divideCheck(cfam150p,cfamallinc,100,null,null,true);$("#cfamlt25_place_percent").html(PWebUtil.formatNumber(cfamlt25_percent,"_%",1));$("#cfam25_35_place_percent").html(PWebUtil.formatNumber(cfam25_35_percent,"_%",1));$("#cfam35_50_place_percent").html(PWebUtil.formatNumber(cfam35_50_percent,"_%",1));$("#cfam50_75_place_percent").html(PWebUtil.formatNumber(cfam50_75_percent,"_%",1));$("#cfam75_100_place_percent").html(PWebUtil.formatNumber(cfam75_100_percent,"_%",1));$("#cfam100_125_place_percent").html(PWebUtil.formatNumber(cfam100_125_percent,"_%",1));$("#cfam125_150_place_percent").html(PWebUtil.formatNumber(cfam125_150_percent,"_%",1));$("#cfam150p_place_percent").html(PWebUtil.formatNumber(cfam150p_percent,"_%",1));var cube2=new PCube(indsArr,[place_washington_city],periods);cube2.loadValues(function(values){this.values=values;var cfamlt25=getSumOfPlaces(this,indsObj.cfamlt25,years.ACSPERIOD)||0;var cfam25_35=getSumOfPlaces(this,indsObj.cfam25_35,years.ACSPERIOD)||0;var cfam35_50=getSumOfPlaces(this,indsObj.cfam35_50,years.ACSPERIOD)||0;var cfam50_75=getSumOfPlaces(this,indsObj.cfam50_75,years.ACSPERIOD)||0;var cfam75_100=getSumOfPlaces(this,indsObj.cfam75_100,years.ACSPERIOD)||0;var cfam100_125=getSumOfPlaces(this,indsObj.cfam100_125,years.ACSPERIOD)||0;var cfam125_150=getSumOfPlaces(this,indsObj.cfam125_150,years.ACSPERIOD)||0;var cfam150p=getSumOfPlaces(this,indsObj.cfam150p,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamlt25_percent=divideCheck(cfamlt25,cfamallinc,100,null,null,true);var cfam25_35_percent=divideCheck(cfam25_35,cfamallinc,100,null,null,true);var cfam35_50_percent=divideCheck(cfam35_50,cfamallinc,100,null,null,true);var cfam50_75_percent=divideCheck(cfam50_75,cfamallinc,100,null,null,true);var cfam75_100_percent=divideCheck(cfam75_100,cfamallinc,100,null,null,true);var cfam100_125_percent=divideCheck(cfam100_125,cfamallinc,100,null,null,true);var cfam125_150_percent=divideCheck(cfam125_150,cfamallinc,100,null,null,true);var cfam150p_percent=divideCheck(cfam150p,cfamallinc,100,null,null,true);$("#cfamlt25_washington_percent").html(PWebUtil.formatNumber(cfamlt25_percent,"_%",1));$("#cfam25_35_washington_percent").html(PWebUtil.formatNumber(cfam25_35_percent,"_%",1));$("#cfam35_50_washington_percent").html(PWebUtil.formatNumber(cfam35_50_percent,"_%",1));$("#cfam50_75_washington_percent").html(PWebUtil.formatNumber(cfam50_75_percent,"_%",1));$("#cfam75_100_washington_percent").html(PWebUtil.formatNumber(cfam75_100_percent,"_%",1));$("#cfam100_125_washington_percent").html(PWebUtil.formatNumber(cfam100_125_percent,"_%",1));$("#cfam125_150_washington_percent").html(PWebUtil.formatNumber(cfam125_150_percent,"_%",1));$("#cfam150p_washington_percent").html(PWebUtil.formatNumber(cfam150p_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=DCSetSourceLinks(arr,"income-section")})})}function DCLoadIncomePart2(aggObj,boundarea,place_washington_city,district_of_columbia_county,tracts){var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9938096;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cfampov50p=new PIndicator(9938096);indsObj.cfampov=new PIndicator(9871986);indsObj.cfampov_lt200p=new PIndicator(9938094);indsObj.cfampov_lt300p=new PIndicator(9938095);indsObj.cfampov_gt300p=new PIndicator(9938093);indsObj.cfamund5pov=new PIndicator(9938098);indsObj.cfamallinc=new PIndicator(9871916);indsObj.cfamund5_all=new PIndicator(9938097);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,tracts,periods);cube1.loadValues(function(values){this.values=values;var cfampov50p=getSumOfPlaces(this,indsObj.cfampov50p,years.ACSPERIOD)||0;var cfampov=getSumOfPlaces(this,indsObj.cfampov,years.ACSPERIOD)||0;var cfampov_lt200p=getSumOfPlaces(this,indsObj.cfampov_lt200p,years.ACSPERIOD)||0;var cfampov_lt300p=getSumOfPlaces(this,indsObj.cfampov_lt300p,years.ACSPERIOD)||0;var cfampov_gt300p=getSumOfPlaces(this,indsObj.cfampov_gt300p,years.ACSPERIOD)||0;var cfamund5pov=getSumOfPlaces(this,indsObj.cfamund5pov,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamund5_all=getSumOfPlaces(this,indsObj.cfamund5_all,years.ACSPERIOD)||0;$("#cfampov50p_place_num").html(PWebUtil.formatNumber(cfampov50p));$("#cfampov_place_num").html(PWebUtil.formatNumber(cfampov));$("#cfampov_lt200p_place_num").html(PWebUtil.formatNumber(cfampov_lt200p));$("#cfampov_lt300p_place_num").html(PWebUtil.formatNumber(cfampov_lt300p));$("#cfampov_gt300p_place_num").html(PWebUtil.formatNumber(cfampov_gt300p));$("#cfamund5pov_place_num").html(PWebUtil.formatNumber(cfamund5pov));var cfampov50p_percent=divideCheck(cfampov50p,cfamallinc,100,null,null,true);var cfampov_percent=divideCheck(cfampov,cfamallinc,100,null,null,true);var cfampov_lt200p_percent=divideCheck(cfampov_lt200p,cfamallinc,100,null,null,true);var cfampov_lt300p_percent=divideCheck(cfampov_lt300p,cfamallinc,100,null,null,true);var cfampov_gt300p_percent=divideCheck(cfampov_gt300p,cfamallinc,100,null,null,true);var cfamund5pov_percent=divideCheck(cfamund5pov,cfamund5_all,100,null,null,true);$("#cfampov50p_place_percent").html(PWebUtil.formatNumber(cfampov50p_percent,"_%",1));$("#cfampov_place_percent").html(PWebUtil.formatNumber(cfampov_percent,"_%",1));$("#cfampov_lt200p_place_percent").html(PWebUtil.formatNumber(cfampov_lt200p_percent,"_%",1));$("#cfampov_lt300p_place_percent").html(PWebUtil.formatNumber(cfampov_lt300p_percent,"_%",1));$("#cfampov_gt300p_place_percent").html(PWebUtil.formatNumber(cfampov_gt300p_percent,"_%",1));$("#cfamund5pov_place_percent").html(PWebUtil.formatNumber(cfamund5pov_percent,"_%",1))});var cube2=new PCube(indsArr,[place_washington_city],periods);cube2.loadValues(function(values){this.values=values;var cfampov50p=getSumOfPlaces(this,indsObj.cfampov50p,years.ACSPERIOD)||0;var cfampov=getSumOfPlaces(this,indsObj.cfampov,years.ACSPERIOD)||0;var cfampov_lt200p=getSumOfPlaces(this,indsObj.cfampov_lt200p,years.ACSPERIOD)||0;var cfampov_lt300p=getSumOfPlaces(this,indsObj.cfampov_lt300p,years.ACSPERIOD)||0;var cfampov_gt300p=getSumOfPlaces(this,indsObj.cfampov_gt300p,years.ACSPERIOD)||0;var cfamund5pov=getSumOfPlaces(this,indsObj.cfamund5pov,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamund5_all=getSumOfPlaces(this,indsObj.cfamund5_all,years.ACSPERIOD)||0;var cfampov50p_percent=divideCheck(cfampov50p,cfamallinc,100,null,null,true);var cfampov_percent=divideCheck(cfampov,cfamallinc,100,null,null,true);var cfampov_lt200p_percent=divideCheck(cfampov_lt200p,cfamallinc,100,null,null,true);var cfampov_lt300p_percent=divideCheck(cfampov_lt300p,cfamallinc,100,null,null,true);var cfampov_gt300p_percent=divideCheck(cfampov_gt300p,cfamallinc,100,null,null,true);var cfamund5pov_percent=divideCheck(cfamund5pov,cfamund5_all,100,null,null,true);$("#cfampov50p_washington_percent").html(PWebUtil.formatNumber(cfampov50p_percent,"_%",1));$("#cfampov_washington_percent").html(PWebUtil.formatNumber(cfampov_percent,"_%",1));$("#cfampov_lt200p_washington_percent").html(PWebUtil.formatNumber(cfampov_lt200p_percent,"_%",1));$("#cfampov_lt300p_washington_percent").html(PWebUtil.formatNumber(cfampov_lt300p_percent,"_%",1));$("#cfampov_gt300p_washington_percent").html(PWebUtil.formatNumber(cfampov_gt300p_percent,"_%",1));$("#cfamund5pov_washington_percent").html(PWebUtil.formatNumber(cfamund5pov_percent,"_%",1))})})}function DCSetSourceLinks(arr,id){var links=[];for(var i=0;i<arr.length;i++){var a='<a class="link" href="/files/DCAccessMap_DataDirectory.pdf" target="new">'+arr[i]+"</a>";links.push(a)}if(links.length>0){links=links.join("; ")}var $src=$("<div>",{class:"source"});$src.html("Source: "+links);$("#"+id).append($src)}function DCLoadHouseholdStatus(aggObj,boundarea,place_washington_city,district_of_columbia_county){var periods=[2010,2015,P.constants.latestACSPeriod];var years={y2010:periods[0],y2015:periods[1],latestACSPeriod:periods[2]};var indid=9937862;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.chh_noch=new PIndicator(9868874);indsObj.chh_mcwc=new PIndicator(9868990);indsObj.chh_shwc=new PIndicator(9869028);indsObj.chh_fhnhwc=new PIndicator(9869005);indsObj.chh_gp=new PIndicator(9948469);indsObj.chh_alltype=new PIndicator(9868988);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var chh_noch=getSumOfPlaces(this,indsObj.chh_noch,years.y2010);var chh_mcwc=getSumOfPlaces(this,indsObj.chh_mcwc,years.y2010);var chh_shwc=getSumOfPlaces(this,indsObj.chh_shwc,years.y2010);var chh_fhnhwc=getSumOfPlaces(this,indsObj.chh_fhnhwc,years.y2010);var chh_alltype=getSumOfPlaces(this,indsObj.chh_alltype,years.y2010);$("#chh_noch_place_num").html(PWebUtil.formatNumber(chh_noch));$("#chh_mcwc_place_num").html(PWebUtil.formatNumber(chh_mcwc));$("#chh_shwc_place_num").html(PWebUtil.formatNumber(chh_shwc));$("#chh_fhnhwc_place_num").html(PWebUtil.formatNumber(chh_fhnhwc));var chh_noch_percent=divideCheck(chh_noch,chh_alltype,100,null,null,true);var chh_mcwc_percent=divideCheck(chh_mcwc,chh_alltype,100,null,null,true);var chh_shwc_percent=divideCheck(chh_shwc,chh_alltype,100,null,null,true);var chh_fhnhwc_percent=divideCheck(chh_fhnhwc,chh_alltype,100,null,null,true);$("#chh_noch_place_percent").html(PWebUtil.formatNumber(chh_noch_percent,"_%",1));$("#chh_mcwc_place_percent").html(PWebUtil.formatNumber(chh_mcwc_percent,"_%",1));$("#chh_shwc_place_percent").html(PWebUtil.formatNumber(chh_shwc_percent,"_%",1));$("#chh_fhnhwc_place_percent").html(PWebUtil.formatNumber(chh_fhnhwc_percent,"_%",1));var overlap_pct=50;boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,null,function(tracts){var tracts=tracts||[];var cube=new PCube(indsArr,tracts,periods);cube.loadValues(function(values){this.values=values;var chh_gp=getSumOfPlaces(this,indsObj.chh_gp,years.latestACSPeriod);$("#chh_gp_place_num").html(PWebUtil.formatNumber(chh_gp));var chh_gp_percent=divideCheck(chh_gp,chh_alltype,100,null,null,true);$("#chh_gp_place_percent").html(PWebUtil.formatNumber(chh_gp_percent,"_%",1))})},overlap_pct,null,null,null,"id,identifier,label,typeid,state");var cube2=new PCube(indsArr,[place_washington_city],periods);cube2.loadValues(function(values){this.values=values;var chh_noch=getSumOfPlaces(this,indsObj.chh_noch,years.y2010);var chh_mcwc=getSumOfPlaces(this,indsObj.chh_mcwc,years.y2010);var chh_shwc=getSumOfPlaces(this,indsObj.chh_shwc,years.y2010);var chh_fhnhwc=getSumOfPlaces(this,indsObj.chh_fhnhwc,years.y2010);var chh_alltype=getSumOfPlaces(this,indsObj.chh_alltype,years.y2010);var chh_gp=getSumOfPlaces(this,indsObj.chh_gp,years.latestACSPeriod);var chh_noch_percent=divideCheck(chh_noch,chh_alltype,100,null,null,true);var chh_mcwc_percent=divideCheck(chh_mcwc,chh_alltype,100,null,null,true);var chh_shwc_percent=divideCheck(chh_shwc,chh_alltype,100,null,null,true);var chh_fhnhwc_percent=divideCheck(chh_fhnhwc,chh_alltype,100,null,null,true);var chh_gp_percent=divideCheck(chh_gp,chh_alltype,100,null,null,true);$("#chh_noch_washington_percent").html(PWebUtil.formatNumber(chh_noch_percent,"_%",1));$("#chh_mcwc_washington_percent").html(PWebUtil.formatNumber(chh_mcwc_percent,"_%",1));$("#chh_shwc_washington_percent").html(PWebUtil.formatNumber(chh_shwc_percent,"_%",1));$("#chh_fhnhwc_washington_percent").html(PWebUtil.formatNumber(chh_fhnhwc_percent,"_%",1));$("#chh_gp_washington_percent").html(PWebUtil.formatNumber(chh_gp_percent,"_%",1))});var arr=["Census, 2010"];var $src=DCSetSourceLinks(arr,"household-section")})})}function DCLoadSchoolEnrollment(aggObj,boundarea,place_washington_city,district_of_columbia_county){var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9873905;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.ck12pub=new PIndicator(9873905);indsObj.ck12priv=new PIndicator(9873910);indsObj.ck12all=new PIndicator(9873922);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var ck12pub=getSumOfPlaces(this,indsObj.ck12pub,years.ACSPERIOD);var ck12priv=getSumOfPlaces(this,indsObj.ck12priv,years.ACSPERIOD);var ck12all=getSumOfPlaces(this,indsObj.ck12all,years.ACSPERIOD);var ck12pub_percent=divideCheck(ck12pub,ck12all,100,null,null,true);var ck12priv_percent=divideCheck(ck12priv,ck12all,100,null,null,true);$("#ck12pub_place_percent").html(PWebUtil.formatNumber(ck12pub_percent,"_%",1));$("#ck12priv_place_percent").html(PWebUtil.formatNumber(ck12priv_percent,"_%",1));var cube2=new PCube(indsArr,[place_washington_city],periods);cube2.loadValues(function(values){this.values=values;var ck12pub=getSumOfPlaces(this,indsObj.ck12pub,years.ACSPERIOD);var ck12priv=getSumOfPlaces(this,indsObj.ck12priv,years.ACSPERIOD);var ck12all=getSumOfPlaces(this,indsObj.ck12all,years.ACSPERIOD);var ck12pub_percent=divideCheck(ck12pub,ck12all,100,null,null,true);var ck12priv_percent=divideCheck(ck12priv,ck12all,100,null,null,true);$("#ck12pub_washington_percent").html(PWebUtil.formatNumber(ck12pub_percent,"_%",1));$("#ck12priv_washington_percent").html(PWebUtil.formatNumber(ck12priv_percent,"_%",1))});var cube3=new PCube(indsArr,[place_washington_city],periods);cube3.loadValues(function(values){this.values=values;var ck12pub=getSumOfPlaces(this,indsObj.ck12pub,years.ACSPERIOD);var ck12priv=getSumOfPlaces(this,indsObj.ck12priv,years.ACSPERIOD);var ck12all=getSumOfPlaces(this,indsObj.ck12all,years.ACSPERIOD);var ck12pub_percent=divideCheck(ck12pub,ck12all,100,null,null,true);var ck12priv_percent=divideCheck(ck12priv,ck12all,100,null,null,true);$("#ck12pub_DC_percent").html(PWebUtil.formatNumber(ck12pub_percent,"_%",1));$("#ck12priv_DC_percent").html(PWebUtil.formatNumber(ck12priv_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=DCSetSourceLinks(arr,"school-section")})})}function DCLoadJobsEconomy(aggObj,boundarea,place_washington_city,district_of_columbia_county){var periods=[2015];var years={y2015:periods[0]};var indid=9873905;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cr_primjobs_earnlow=new PIndicator(9911313);indsObj.cr_primjobs_earnmed=new PIndicator(9911341);indsObj.cr_primjobs_all=new PIndicator(9911309);indsObj.cw_primjobs_earnlow=new PIndicator(9911392);indsObj.cw_primjobs_earnmed=new PIndicator(9911408);indsObj.cw_primjobs_all=new PIndicator(9911366);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cr_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnlow,years.y2015);var cr_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnmed,years.y2015);var cr_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_all,years.y2015);var cw_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnlow,years.y2015);var cw_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnmed,years.y2015);var cw_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_all,years.y2015);$("#cr_primjobs_earnlow_place_num").html(PWebUtil.formatNumber(cr_primjobs_earnlow));$("#cr_primjobs_earnmed_place_num").html(PWebUtil.formatNumber(cr_primjobs_earnmed));$("#cw_primjobs_earnlow_place_num").html(PWebUtil.formatNumber(cw_primjobs_earnlow));$("#cw_primjobs_earnmed_place_num").html(PWebUtil.formatNumber(cw_primjobs_earnmed));var cr_primjobs_earnlow_percent=divideCheck(cr_primjobs_earnlow,cr_primjobs_all,100,null,null,true);var cr_primjobs_earnmed_percent=divideCheck(cr_primjobs_earnmed,cr_primjobs_all,100,null,null,true);var cw_primjobs_earnlow_percent=divideCheck(cw_primjobs_earnlow,cw_primjobs_all,100,null,null,true);var cw_primjobs_earnmed_percent=divideCheck(cw_primjobs_earnmed,cw_primjobs_all,100,null,null,true);$("#cr_primjobs_earnlow_place_percent").html(PWebUtil.formatNumber(cr_primjobs_earnlow_percent,"_%",1));$("#cr_primjobs_earnmed_place_percent").html(PWebUtil.formatNumber(cr_primjobs_earnmed_percent,"_%",1));$("#cw_primjobs_earnlow_place_percent").html(PWebUtil.formatNumber(cw_primjobs_earnlow_percent,"_%",1));$("#cw_primjobs_earnmed_place_percent").html(PWebUtil.formatNumber(cw_primjobs_earnmed_percent,"_%",1));var cube2=new PCube(indsArr,[place_washington_city],periods);cube2.loadValues(function(values){this.values=values;var cr_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnlow,years.y2015);var cr_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnmed,years.y2015);var cr_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_all,years.y2015);var cw_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnlow,years.y2015);var cw_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnmed,years.y2015);var cw_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_all,years.y2015);var cr_primjobs_earnlow_percent=divideCheck(cr_primjobs_earnlow,cr_primjobs_all,100,null,null,true);var cr_primjobs_earnmed_percent=divideCheck(cr_primjobs_earnmed,cr_primjobs_all,100,null,null,true);var cw_primjobs_earnlow_percent=divideCheck(cw_primjobs_earnlow,cw_primjobs_all,100,null,null,true);var cw_primjobs_earnmed_percent=divideCheck(cw_primjobs_earnmed,cw_primjobs_all,100,null,null,true);$("#cr_primjobs_earnlow_washington_percent").html(PWebUtil.formatNumber(cr_primjobs_earnlow_percent,"_%",1));$("#cr_primjobs_earnmed_washington_percent").html(PWebUtil.formatNumber(cr_primjobs_earnmed_percent,"_%",1));$("#cw_primjobs_earnlow_washington_percent").html(PWebUtil.formatNumber(cw_primjobs_earnlow_percent,"_%",1));$("#cw_primjobs_earnmed_washington_percent").html(PWebUtil.formatNumber(cw_primjobs_earnmed_percent,"_%",1))});var arr=["LEHD ( "+periods[0]+" )"];var $src=DCSetSourceLinks(arr,"jobs-section")})})}function DCLoadTransportationPart1(aggObj,boundarea,place_washington_city,district_of_columbia_county){var periods=[P.constants.latestACSPeriod];var years={latestACSPeriod:periods[0]};var indid=9873787;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.ctranpt=new PIndicator(9873787);indsObj.chunomv=new PIndicator(9873783);indsObj.ctranall=new PIndicator(9873825);indsObj.chhmiall=new PIndicator(9873833);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var ctranpt=getSumOfPlaces(this,indsObj.ctranpt,years.latestACSPeriod);var chunomv=getSumOfPlaces(this,indsObj.chunomv,years.latestACSPeriod);var ctranall=getSumOfPlaces(this,indsObj.ctranall,years.latestACSPeriod);var chhmiall=getSumOfPlaces(this,indsObj.chhmiall,years.latestACSPeriod);$("#ctranpt_place_num").html(PWebUtil.formatNumber(ctranpt));$("#chunomv_place_num").html(PWebUtil.formatNumber(chunomv));var ctranpt_percent=divideCheck(ctranpt,ctranall,100,null,null,true);var chunomv_percent=divideCheck(chunomv,chhmiall,100,null,null,true);$("#ctranpt_place_percent").html(PWebUtil.formatNumber(ctranpt_percent,"_%",1));$("#chunomv_place_percent").html(PWebUtil.formatNumber(chunomv_percent,"_%",1))});var cube2=new PCube(indsArr,[place_washington_city],periods);cube2.loadValues(function(values){this.values=values;var ctranpt=getSumOfPlaces(this,indsObj.ctranpt,years.latestACSPeriod);var chunomv=getSumOfPlaces(this,indsObj.chunomv,years.latestACSPeriod);var ctranall=getSumOfPlaces(this,indsObj.ctranall,years.latestACSPeriod);var chhmiall=getSumOfPlaces(this,indsObj.chhmiall,years.latestACSPeriod);var ctranpt_percent=divideCheck(ctranpt,ctranall,100,null,null,true);var chunomv_percent=divideCheck(chunomv,chhmiall,100,null,null,true);$("#ctranpt_washington_percent").html(PWebUtil.formatNumber(ctranpt_percent,"_%",1));$("#chunomv_washington_percent").html(PWebUtil.formatNumber(chunomv_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=DCSetSourceLinks(arr,"transportation-section")})}function DCLoadEducationAttainment(aggObj,boundarea,place_washington_city,district_of_columbia_county){var periods=[P.constants.latestACSPeriod];var years={latestACSPeriod:periods[0]};var indid=9873900;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.clt9th=new PIndicator(9873900);indsObj.csmhsnodip=new PIndicator(9873915);indsObj.chs=new PIndicator(9873934);indsObj.csmcolass=new PIndicator(9873912);indsObj.cbach=new PIndicator(9873914);indsObj.ceduall=new PIndicator(9873929);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var clt9th=getSumOfPlaces(this,indsObj.clt9th,years.latestACSPeriod);var csmhsnodip=getSumOfPlaces(this,indsObj.csmhsnodip,years.latestACSPeriod);var clt9th_plus_csmhsnodip=clt9th+csmhsnodip;var chs=getSumOfPlaces(this,indsObj.chs,years.latestACSPeriod);var csmcolass=getSumOfPlaces(this,indsObj.csmcolass,years.latestACSPeriod);var cbach=getSumOfPlaces(this,indsObj.cbach,years.latestACSPeriod);var ceduall=getSumOfPlaces(this,indsObj.ceduall,years.latestACSPeriod);if(clt9th==null&&csmhsnodip==null){$("#clt9th_plus_csmhsnodip_place_num").html("N/A")}else{$("#clt9th_plus_csmhsnodip_place_num").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip))}$("#chs_place_num").html(PWebUtil.formatNumber(chs));$("#csmcolass_place_num").html(PWebUtil.formatNumber(csmcolass));$("#cbach_place_num").html(PWebUtil.formatNumber(cbach));$("#ceduall_place_num").html(PWebUtil.formatNumber(ceduall));var clt9th_plus_csmhsnodip_percent=divideCheck(clt9th_plus_csmhsnodip,ceduall,100,null,null,true);var chs_percent=divideCheck(chs,ceduall,100,null,null,true);var csmcolass_percent=divideCheck(csmcolass,ceduall,100,null,null,true);var cbach_percent=divideCheck(cbach,ceduall,100,null,null,true);var ceduall_percent=divideCheck(ceduall,ceduall,100,null,null,true);$("#clt9th_plus_csmhsnodip_place_percent").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip_percent,"_%",1));$("#chs_place_percent").html(PWebUtil.formatNumber(chs_percent,"_%",1));$("#csmcolass_place_percent").html(PWebUtil.formatNumber(csmcolass_percent,"_%",1));$("#cbach_place_percent").html(PWebUtil.formatNumber(cbach_percent,"_%",1));$("#ceduall_place_percent").html(PWebUtil.formatNumber(ceduall_percent,"_%",1))});var cubePaterson=new PCube(indsArr,[place_washington_city],periods);cubePaterson.loadValues(function(values){this.values=values;var clt9th=getSumOfPlaces(this,indsObj.clt9th,years.latestACSPeriod);var csmhsnodip=getSumOfPlaces(this,indsObj.csmhsnodip,years.latestACSPeriod);var clt9th_plus_csmhsnodip=clt9th+csmhsnodip;var chs=getSumOfPlaces(this,indsObj.chs,years.latestACSPeriod);var csmcolass=getSumOfPlaces(this,indsObj.csmcolass,years.latestACSPeriod);var cbach=getSumOfPlaces(this,indsObj.cbach,years.latestACSPeriod);var ceduall=getSumOfPlaces(this,indsObj.ceduall,years.latestACSPeriod);var clt9th_plus_csmhsnodip_percent=divideCheck(clt9th_plus_csmhsnodip,ceduall,100,null,null,true);var chs_percent=divideCheck(chs,ceduall,100,null,null,true);var csmcolass_percent=divideCheck(csmcolass,ceduall,100,null,null,true);var cbach_percent=divideCheck(cbach,ceduall,100,null,null,true);var ceduall_percent=divideCheck(ceduall,ceduall,100,null,null,true);$("#clt9th_plus_csmhsnodip_washington_percent").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip_percent,"_%",1));$("#chs_washington_percent").html(PWebUtil.formatNumber(chs_percent,"_%",1))
;$("#csmcolass_washington_percent").html(PWebUtil.formatNumber(csmcolass_percent,"_%",1));$("#cbach_washington_percent").html(PWebUtil.formatNumber(cbach_percent,"_%",1));$("#ceduall_washington_percent").html(PWebUtil.formatNumber(ceduall_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=DCSetSourceLinks(arr,"education-section")})}function DCLoadLanguageSpokenAtHome(aggObj,boundarea,place_washington_city,district_of_columbia_county){var indsObj={};indsObj.clang_engl=new PIndicator(9948928);indsObj.clang_all=new PIndicator(9948926);indsObj.clang_span=new PIndicator(9948981);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var periods=[P.constants.alternateACSPeriod];var years={alternateACSPeriod:periods[0]};var overlap_pct=50;boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,null,function(tracts){var tracts=tracts||[];var cube=new PCube(indsArr,tracts,periods);cube.loadValues(function(values){this.values=values;var clang_engl=getSumOfPlaces(this,indsObj.clang_engl,years.alternateACSPeriod)||0;var clang_all=getSumOfPlaces(this,indsObj.clang_all,years.alternateACSPeriod)||0;var clang_span=getSumOfPlaces(this,indsObj.clang_span,years.alternateACSPeriod)||0;var clang_other=clang_all-clang_engl-clang_span;var clang_engl_percent=divideCheck(clang_engl,clang_all,100,null,null,true);var clang_span_percent=divideCheck(clang_span,clang_all,100,null,null,true);var clang_other_percent=divideCheck(clang_other,clang_all,100,null,null,true);$("#table_clang_engl_place_num").html(PWebUtil.formatNumber(clang_engl));$("#table_clang_span_place_num").html(PWebUtil.formatNumber(clang_span));$("#table_clang_other_place_num").html(PWebUtil.formatNumber(clang_other));$("#table_clang_engl_place_percent").html(PWebUtil.formatNumber(clang_engl_percent,"_%",1));$("#table_clang_span_place_percent").html(PWebUtil.formatNumber(clang_span_percent,"_%",1));$("#table_clang_other_place_percent").html(PWebUtil.formatNumber(clang_other_percent,"_%",1))})},overlap_pct,null,null,null,"id,identifier,label,typeid,state");var cityCube=new PCube(indsArr,[place_washington_city],periods);cityCube.loadValues(function(values){this.values=values;var clang_engl=getSumOfPlaces(this,indsObj.clang_engl,years.alternateACSPeriod)||0;var clang_all=getSumOfPlaces(this,indsObj.clang_all,years.alternateACSPeriod)||0;var clang_span=getSumOfPlaces(this,indsObj.clang_span,years.alternateACSPeriod)||0;var clang_other=clang_all-clang_engl-clang_span;var clang_engl_percent=divideCheck(clang_engl,clang_all,100,null,null,true);var clang_span_percent=divideCheck(clang_span,clang_all,100,null,null,true);var clang_other_percent=divideCheck(clang_other,clang_all,100,null,null,true);$("#table_clang_engl_washington_percent").html(PWebUtil.formatNumber(clang_engl_percent,"_%",1));$("#table_clang_span_washington_percent").html(PWebUtil.formatNumber(clang_span_percent,"_%",1));$("#table_clang_other_washington_percent").html(PWebUtil.formatNumber(clang_other_percent,"_%",1))})}function DCLoadGeographyType(boundarea){var location="Custom Area";var locationtype="Custom Area";if(boundarea.typeid==200){location="the neighborhood cluster of "+boundarea.getLabel();locationtype="Neighborhood Cluster"}else if(boundarea.typeid==201){location="the Police Service Area of "+boundarea.getLabel();locationtype="Police Service Area"}else if(boundarea.typeid==8){location="the zip code of "+boundarea.getLabel();locationtype="Zip Code"}else if(boundarea.typeid==202){location="the ward of "+boundarea.getLabel();locationtype="Ward"}else if(boundarea.typeid==203){location="the zip code of "+boundarea.getLabel();locationtype="Zip Code"}else if(boundarea.typeid==204){location="the elementary school attendance zone of "+boundarea.getLabel();locationtype="Elementary School Attendance Zone"}else if(boundarea.typeid==205){location="the transportation analysis zone of "+boundarea.getLabel();locationtype="Transportation Analysis Zone"}else if(boundarea.typeid==195){location="the cluster of "+boundarea.getLabel();locationtype="Cluster"}$("#title_location").html(location);$("#geography-type").html(locationtype+" : ")}function displayNewarkReport(aggregates,boundarea,cities){$("html > head > title").html("Newark Childcare Map");var params=getUrlParams();getNewarkContainmentsLists(boundarea);var aggObj={};var ids=boundaryMatrix.getMatrixOrder();for(var i=0;i<ids.length;i++){aggObj[ids[i]]=[]}for(var i=0;i<aggregates.length;i++){var p=aggregates[i];var mIds=boundaryMatrix.getAllMatrixIdsForDefinitionId(p.getDefinitionId());for(var j=0;j<mIds.length;j++){mId=mIds[j];aggObj[mId].push(p)}}if(boundarea.getType()==PPlaceType.BLOCKGROUP){var p=boundarea;var mId=boundaryMatrix.getMatrixIdForDefinitionId(p.getDefinitionId());aggObj[mId]=[p]}if(P.WKPrint.isPrintPage()===true){$("head").append('<link rel="stylesheet" href="/cssPrint/culture_blocks.css" type="text/css" />');$(".print-page2").append($(".report-charts"))}var overrideSitesLimit=true;NWKLoadChildCare(aggObj,boundarea,cities);NewarkCityChildCarePieChart(aggObj,boundarea,cities);NWKLoadPopAndAge(aggObj,boundarea,cities);NWKLoadRace(aggObj,boundarea,cities);var overlap_pct=50;boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,null,function(tracts){NWKLoadIncome(aggObj,boundarea,cities,tracts);var aggList=$("#tracts-list");var aggToggle=$("#tracts-toggle");var aggTogglePrint=$("#tracts-toggle-print");var t=getAggregatedPlaceNames(tracts);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show");aggTogglePrint.text("Not Displayed")}else{aggList.slideDown();aggToggle.text("(-) Hide");aggTogglePrint.text("")}});if(params["da"]){aggToggle.click()}},overlap_pct,null,null,null,"id,identifier,label,typeid,state");NWKLoadHouseholdStatus(aggObj,boundarea,cities);NWKLoadSchoolEnrollment(aggObj,boundarea,cities);NWKLoadJobsEconomyText(aggObj,boundarea,cities);NWKLoadJobsEconomy(aggObj,boundarea,cities);NWKLoadTransportation(aggObj,boundarea,cities);NWKLoadEducationalAttainment(aggObj,boundarea,cities);NWKLoadGeographyType(boundarea.typeid);var set=new POverlaySet(140150);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;boundarea.getMarkersWithin(set,function(markers){var elem=$("#schools");var list=getDisplayMarkersListCB(markers,elem,"Schools",",")},true);var set=new POverlaySet(131650);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;boundarea.getMarkersWithin(set,function(markers){var elem=$("#libraries");var list=getDisplayMarkersListCB(markers,elem,"Libraries")});var set=new POverlaySet(156050);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;boundarea.getMarkersWithin(set,function(markers){var elem=$("#rec-centers");var list=getDisplayMarkersListCB(markers,elem,"Recreation Centers")});var aggList=$("#agg-list");var aggToggle=$("#agg-toggle");var aggTogglePrint=$("#agg-toggle-print");var t=getAggregatedPlaceNames(aggObj[2]);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show");aggTogglePrint.text("Not Displayed")}else{aggList.slideDown();aggToggle.text("(-) Hide");aggTogglePrint.text("")}});var overlaySet=new POverlaySet(157750,PinIcons.triangle180,15);map.addOverlaySet(overlaySet)}function getNewarkContainmentsLists(b){var mid=1;b.getAggregates(PPlaceType.NWK_NEIGHBORHOOD,mid,null,function(aggs){if(b.typeid==PPlaceType.NWK_NEIGHBORHOOD.id){if(aggs.length==0){aggs.push(b)}}displayDistrictsCB(aggs,"neighborhoods",b)},0,null,PPlaceType.LABEL,null,0,null,PPlaceType.LABEL);b.getAggregates(PPlaceType.NWK_ZIP,mid,null,function(aggs){if(b.typeid==PPlaceType.NWK_ZIP.id){if(aggs.length==0){aggs.push(b)}}displayDistrictsCB(aggs,"zip-codes",b)},0,null,PPlaceType.LABEL,null,0,null,PPlaceType.LABEL);b.getAggregates(PPlaceType.NWK_WARD,mid,null,function(aggs){if(b.typeid==PPlaceType.NWK_WARD.id){if(aggs.length==0){aggs.push(b)}}displayDistrictsCB(aggs,"wards",b)},0,null,PPlaceType.LABEL,null,0,null,PPlaceType.LABEL)}function NewarkCityChildCarePieChart(aggregates,boundarea,cities){var city=cities[0];if(city!=null){var overrideSitesLimit=true;var overlap_pct=50;var sum_high_quality_slots=0;var sum_other_licensed_slots=0;var sum_unlicensed_child_care=0;var set=new POverlaySet(157550);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;city.getMarkersWithin(set,function(markers){for(var i=0;i<markers.length;i++){var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){sum_high_quality_slots+=sup_est}}}}var set2=new POverlaySet(157750);set2.type="old";set2.overrideLimit=overrideSitesLimit;set2.map=null;city.getMarkersWithin(set2,function(markers){for(var i=0;i<markers.length;i++){var is_high_qual=false;var sup_est=0;var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){sup_est=parseInt(a.value)}else if(a.columnName=="highqual"){if(a.value=="yes"||a.value=="Yes"){is_high_qual=true}}}if(!is_high_qual){sum_other_licensed_slots+=sup_est}}var set3=new POverlaySet(157600);set3.type="old";set3.overrideLimit=overrideSitesLimit;set3.map=null;city.getMarkersWithin(set3,function(markers){for(var i=0;i<markers.length;i++){var atts=markers[i].attributes;var is_sources_schools=false;var sources="";var sup_est=0;var is_abbott=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value)}else if(a.columnName=="abbott"){if(a.value=="Yes"||a.value=="yes"){is_abbott=true}}}if(!is_abbott){sum_unlicensed_child_care+=sup_est}}var colors=["#716A99","#87AA4f","#C67830","#247dA0","#C65265"];var data=[["High Quality Slots <br> (NAEYC/Abbott/ <br> Head Start)",sum_high_quality_slots],["Other Licensed Slots <br> (Non-NAEYC/Abbott/ <br> Head Start)",sum_other_licensed_slots],["Unlicensed Slots <br> (Non-Abbott/Head Start)",sum_unlicensed_child_care]];var sumData=[PWebUtil.formatNumber(sum_high_quality_slots),PWebUtil.formatNumber(sum_other_licensed_slots),PWebUtil.formatNumber(sum_unlicensed_child_care)];var plot1=jQuery.jqplot("nwk-childcare-pie2",[data],{title:"Childcare Slots, City of Newark, October 2015",seriesDefaults:{renderer:jQuery.jqplot.PieRenderer,rendererOptions:{showDataLabels:true,dataLabels:["percent"],sumDataLabels:sumData}},seriesColors:colors,legend:{show:true,location:"e",border:"none"},grid:{drawGridlines:false,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent"}})},true)},true)},true)}else{alerter.popup("Newark City info could not be loaded.")}}function NWKLoadChildCare(aggObj,boundarea,cities){var overrideSitesLimit=true;var overlap_pct=50;var high_quality_count=0;var sum_high_quality_slots=0;var sum_no_high_quality_slots=0;var total_childcare_count=0;var total_childcare_slots=0;var donewithlicensed=false;var sum_unlicensed_child_care=0;var sum_other_licensed_slots=0;boundarea.getPlacesWithin(PPlaceType.BLOCKGROUP,null,null,function(blockgroups){if(boundarea.typeid==PPlaceType.BLOCKGROUP.id){blockgroups=[boundarea]}var places=blockgroups;var periods=[2015];var indsObj={};indsObj.rdem0433=new PIndicator(9937422);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var inds=indsArr;var cube=new PCube(inds,places,periods);cube.loadValues(function(values){this.values=values;var sum_rdem0433_2015=getSumOfPlaces(cube,indsObj.rdem0433,"2015")||0;$("#sum_rdem0433_2015").html(PWebUtil.formatNumber(sum_rdem0433_2015));$("#tbl_sum_rdem0433_2015").html(PWebUtil.formatNumber(sum_rdem0433_2015));var set=new POverlaySet(157550);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;boundarea.getMarkersWithin(set,function(markers){markers=markers||[];if(markers.length>0){for(var i=0;i<markers.length;i++){high_quality_count+=1;$("#childcare-count0").html(PWebUtil.formatNumber(high_quality_count));$("#text_high_quality_count").html(PWebUtil.formatNumber(high_quality_count));var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){sum_high_quality_slots+=sup_est}}}$("#childcare-slots0").html(PWebUtil.formatNumber(sum_high_quality_slots));$("#text_high_quality_slots").html(PWebUtil.formatNumber(sum_high_quality_slots))}}else{$("#childcare-count0").html("0");$("#text_high_quality_count").html("0");$("#childcare-slots0").html("0");$("#text_high_quality_slots").html("0")}if(!donewithlicensed){var set2=new POverlaySet(157750);set2.type="old";set2.overrideLimit=overrideSitesLimit;set2.map=null;boundarea.getMarkersWithin(set2,function(markers){if(markers.length){for(var i=0;i<markers.length;i++){total_childcare_count+=1;$("#childcare-count1").html(total_childcare_count);$("#total_childcare_count").html(total_childcare_count);var atts=markers[i].attributes;var is_high_qual=false;var progflag="";var sup_est=0;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){total_childcare_slots+=sup_est}}else if(a.columnName=="highqual"){if(a.value=="yes"||a.value=="Yes"){is_high_qual=true}}else{continue}}if(!is_high_qual){sum_no_high_quality_slots+=sup_est}$("#childcare-slots1").html(PWebUtil.formatNumber(total_childcare_slots));$("#text_total_childcare_slots").html(PWebUtil.formatNumber(total_childcare_slots));$(".seelist").poshytip({content:"View in table",className:"tip-twitter",alignTo:"target",alignX:"center",alignY:"top",offsetY:30,slide:false,showTimeout:0,hideTimeout:0});donewithlicensed=true}}else{$("#childcare-count1").html(PWebUtil.formatNumber(total_childcare_count));$("#total_childcare_count").html(PWebUtil.formatNumber(total_childcare_count));$("#childcare-slots1").html(PWebUtil.formatNumber(total_childcare_slots));$("#text_total_childcare_slots").html(PWebUtil.formatNumber(total_childcare_slots))}if(high_quality_count==0){$("#childcare-count0").next().hide()}else{$("#childcare-count0").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set,place);$elem.append(html);generateReportSitesListInAlert(set,boundarea,filters,$elem)})}if(total_childcare_count==0){$("#childcare-count1").next().hide()}else{$("#childcare-count1").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set,place);$elem.append(html);generateReportSitesListInAlert(set,boundarea,filters,$elem)})}var calc=Math.abs(sum_rdem0433_2015-(sum_no_high_quality_slots+sum_high_quality_slots));$("#childcaretext_span6").html(PWebUtil.formatNumber(calc));var demand=sum_rdem0433_2015;var supply=sum_no_high_quality_slots+sum_high_quality_slots;if(demand<supply){$("#childcare_more_or_less").html("less")}else{$("#childcare_more_or_less").html("more")}var set3=new POverlaySet(157600);set3.type="old";set3.overrideLimit=overrideSitesLimit;set3.map=null;boundarea.getMarkersWithin(set3,function(markers){for(var i=0;i<markers.length;i++){var atts=markers[i].attributes;var is_sources_schools=false;var sources="";var sup_est=0;var is_abbott=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value)}else if(a.columnName=="abbott"){if(a.value=="Yes"||a.value=="yes"){is_abbott=true}}}if(!is_abbott){sum_unlicensed_child_care+=sup_est}}var colors=["#716A99","#87AA4f","#C67830","#247dA0","#C65265"];var data=[["High Quality Slots <br> (NAEYC/Abbott/ <br> Head Start)",sum_high_quality_slots],["Other Licensed Slots <br> (Non-NAEYC/Abbott/ <br> Head Start)",sum_no_high_quality_slots],["Unlicensed Slots <br> (Non-Abbott/Head Start)",sum_unlicensed_child_care]];sumData=[PWebUtil.formatNumber(sum_high_quality_slots),PWebUtil.formatNumber(sum_no_high_quality_slots),PWebUtil.formatNumber(sum_unlicensed_child_care)];var plot1=jQuery.jqplot("nwk-childcare-pie1",[data],{title:"Childcare Slots, "+boundarea.getLabel()+", October 2015",seriesDefaults:{renderer:jQuery.jqplot.PieRenderer,rendererOptions:{showDataLabels:true,sumDataLabels:sumData}},seriesColors:colors,legend:{show:true,location:"e",border:"none"},grid:{drawGridlines:false,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent"}})},true)},true)}},true)})},overlap_pct,null,null,null,"id,identifier,label,typeid,state")}function NWKLoadPopAndAge(aggObj,boundarea,cities){var i={};i.CPOPLT1=new PIndicator(9937862);i.CPOP1=new PIndicator(9937861);i.CPOP2=new PIndicator(9937858);i.CPOP3=new PIndicator(9937857);i.CPOP4=new PIndicator(9937859);i.CPOPALLAGE=new PIndicator(9937864);i.CPOP0_4=new PIndicator(9868901);i.CPOP5_9=new PIndicator(9869090);i.CPOP10_14=new PIndicator(9869025);i.CPOP15_17=new PIndicator(9868851);i.CPOP18_34=new PIndicator(9868870);i.CPOP35_64=new PIndicator(9906418);i.CPOP65P=new PIndicator(9868923);i.CPOP=new PIndicator(9869069);var countyinds=[];for(var ind in i){countyinds.push(i[ind])}var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[2010];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,cities,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};var ind=i.CPOP;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP0_4;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP18_34;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP35_64;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPLT1;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP1;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP2;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP3;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP4;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP0_4;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP5_9;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP10_14;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP15_17;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP65P;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPALLAGE;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var text="In the report area in 2010, there were a total of "+VALUES[i.CPOP.n].f+" people, "+VALUES[i.CPOP0_4.n].f+" of which were childcare age (under the age of 5) and "+PWebUtil.formatNumber(VALUES[i.CPOP18_34.n].s+VALUES[i.CPOP35_64.n].s)+" of which were of working age.";$("#population-text").html(text);var $table=$("<table>",{class:" datatable boldfirsttd"});var html="<caption>Age distribution in "+$("#report-title").html()+"</caption>";html+="<thead>";html+="<tr>";html+="<th>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Age &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</th>";html+="<th>Number of People in Age Group</th>";html+="<th>Percent of People in Age Group</th>";html+="<th>Percent of People in Age Group (Newark)</th>";html+="</tr>";html+="</thead>";var ind=i.CPOP;var cpop_denominator=VALUES[ind.n].s;var cpop_newark_denominator=CVALUES[ind.n].s;var ind=i.CPOPLT1;var dInd=i.CPOPALLAGE;html+="<tr>";html+="<td class='ind-label'>Under 1 year old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,cpop_denominator,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOP1;html+="<tr>";html+="<td class='ind-label'>1 year old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,cpop_denominator,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOP2;html+="<tr>";html+="<td class='ind-label'>2 years old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,cpop_denominator,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOP3;html+="<tr>";html+="<td class='ind-label'>3 years old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,cpop_denominator,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOP4;html+="<tr>";html+="<td class='ind-label'>4 years old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,cpop_denominator,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOP0_4;html+="<tr>";html+="<td class='ind-label'>Under 5 years old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,cpop_denominator,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,cpop_newark_denominator,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var V=VALUES;var total=V[i.CPOP5_9.n].s+V[i.CPOP10_14.n].s+V[i.CPOP15_17.n].s;var V=CVALUES;var cityTotal=V[i.CPOP5_9.n].s+V[i.CPOP10_14.n].s+V[i.CPOP15_17.n].s;html+="<tr>";html+="<td class='ind-label'>5 - 17 years old</td>";html+="<td>"+PWebUtil.formatNumber(total)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(total,cpop_denominator,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(cityTotal,cpop_newark_denominator,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var V=VALUES;var total=V[i.CPOP18_34.n].s+V[i.CPOP35_64.n].s;var V=CVALUES;var cityTotal=V[i.CPOP18_34.n].s+V[i.CPOP35_64.n].s;html+="<tr>";html+="<td class='ind-label'>18-64 year old</td>";html+="<td>"+PWebUtil.formatNumber(total)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(total,cpop_denominator,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(cityTotal,cpop_newark_denominator,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOP65P;html+="<tr>";html+="<td class='ind-label'>65+ years old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,cpop_denominator,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,cpop_newark_denominator,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOP;html+="<tr>";html+="<td class='ind-label'>Total Population</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";$table.append(html);$("#population-table").append($table);var s1=[];var s2=[];var s3=[];var s4=[];var s5=[];ageArr1=[];ageArr2=[];var V=VALUES;var prc=divideCheck(V[i.CPOPLT1.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr1.push(parseFloat(val));s1.push(parseFloat(val));var V=CVALUES;var prc=divideCheck(V[i.CPOPLT1.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr2.push(parseFloat(val));s1.push(parseFloat(val));var V=VALUES;var prc=divideCheck(V[i.CPOP1.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr1.push(parseFloat(val));s2.push(parseFloat(val));var V=CVALUES;var prc=divideCheck(V[i.CPOP1.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr2.push(parseFloat(val));s2.push(parseFloat(val));var V=VALUES;var prc=divideCheck(V[i.CPOP2.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr1.push(parseFloat(val));s3.push(parseFloat(val));var V=CVALUES;var prc=divideCheck(V[i.CPOP2.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr2.push(parseFloat(val));s3.push(parseFloat(val));var V=VALUES;var prc=divideCheck(V[i.CPOP3.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr1.push(parseFloat(val));s4.push(parseFloat(val));var V=CVALUES;var prc=divideCheck(V[i.CPOP3.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr2.push(parseFloat(val));s4.push(parseFloat(val));var V=VALUES;var prc=divideCheck(V[i.CPOP4.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr1.push(parseFloat(val));s5.push(parseFloat(val));var V=CVALUES;var prc=divideCheck(V[i.CPOP4.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr2.push(parseFloat(val));s5.push(parseFloat(val));var data=[];data.push(ageArr1);data.push(ageArr2);var colors=["#716A99","#87AA4f","#247dA0","#C67830","#C65265"];plot3=$.jqplot("age-chart",[s1,s2,s3,s4,s5],{title:"Age Distribution of Children <br> Under the Age of 5",stackSeries:true,seriesColors:colors,captureRightClick:true,seriesDefaults:{renderer:$.jqplot.BarRenderer,rendererOptions:{barMargin:30,highlightMouseDown:true,barWidth:50},pointLabels:{show:false}},axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer,ticks:["Report Area","City of Newark"],drawMajorGridlines:false},yaxis:{renderer:$.jqplot.LogAxisRenderer,tickOptions:{labelPosition:"middle",angle:-30},tickRenderer:$.jqplot.CanvasAxisTickRenderer,labelRenderer:$.jqplot.CanvasAxisLabelRenderer,labelOptions:{fontFamily:"Helvetica",fontSize:"14pt"},label:"Percent of Children under 5",padMin:0,min:0,max:100,tickInterval:20}},legend:{renderer:$.jqplot.EnhancedLegendRenderer,show:true,location:"s",placement:"outside",rendererOptions:{numberColumns:3},border:"none",marginTop:"40px",marginLeft:"-55px",labels:["Under 1 year","1 year old","2 year old","3 year old","4 year old"]},grid:{drawGridlines:true,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent",background:"#FFFFFF"}});var arr=["Census, 2010"];var $src=NWKSetSourceLinks(arr,"population-section")})})}function NWKSetSourceLinks(arr,id){var links=[];for(var i=0;i<arr.length;i++){var a="<a class='link' href='http://www.childcaremap.org/files/ChildcareMapDataDirectory.pdf' target='new'>"+arr[i]+"</a>";links.push(a)}if(links.length>0){links=links.join("; ")}var $src=$("<div>",{class:"source"});$src.html("Source: "+links);$("#"+id).append($src)}function NWKLoadRace(aggObj,boundarea,cities){var i={};i.CPOPWH=new PIndicator(9869048);i.CPOPBK=new PIndicator(9868917);i.CPOPAS=new PIndicator(9868922);i.CPOPNHPI=new PIndicator(9868883);i.CPOPAIAN=new PIndicator(9868954);i.CPOPOTH=new PIndicator(9868998);i.CPOPTWOP=new PIndicator(9869034);i.CPOPHISP=new PIndicator(9868879);i.CPOPALLRACE=new PIndicator(9868881);i.CPOPALLETH=new PIndicator(9868976);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[P.constants.latestACSPeriod];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,cities,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};var ind=i.CPOPWH;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPBK;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPAS;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPNHPI;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPAIAN;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPOTH;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPTWOP;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPHISP;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPALLRACE;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPALLETH;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var html="<caption>Race and Ethnicity in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number of People</th>";html+="<th>Percent of Population</th>";html+="<th>Percent of Population (Newark)</th>";html+="</tr></thead>";var ind=i.CPOPWH;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>White</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOPBK;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>African-American</td>";html+="<td>"+VALUES[ind.n].f+"</td>"
;html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOPAS;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>Asian</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOPNHPI;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>Native Hawaiian or Pacific Islander</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOPAIAN;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>American Indian or Alaskan Native</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOPOTH;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>Some Other Race</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOPTWOP;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>Two or More Races</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var ind=i.CPOPHISP;var dInd=i.CPOPALLETH;html+="<tr>";html+="<td class='ind-label'>Hispanic</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="</tr>";var $table=$("<table>",{class:"datatable boldfirsttd",width:"100%"});$table.append(html);$("#nwk-race-table").append($table);var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=NWKSetSourceLinks(arr,"race-section")})})}function NWKLoadIncome(aggObj,boundarea,cities,tracts){var i={};var ti={};i.CFAMLT25=new PIndicator(9938092);i.CFAM25_35=new PIndicator(9938088);i.CFAM35_50=new PIndicator(9938089);i.CFAM50_75=new PIndicator(9938090);i.CFAM75_100=new PIndicator(9938091);i.CFAM100_125=new PIndicator(9938085);i.CFAM125_150=new PIndicator(9938086);i.CFAM150P=new PIndicator(9938087);i.CFAMALLINC=new PIndicator(9871916);i.CHILT25=new PIndicator(9871803);i.CHI25_35=new PIndicator(9871920);i.CHI35_50=new PIndicator(9871806);i.CHI50_75=new PIndicator(9871923);i.CHI75_100=new PIndicator(9871914);i.CHI100_125=new PIndicator(9871957);i.CHI125_150=new PIndicator(9871938);i.CHI150P=new PIndicator(9871960);i.CHIALL=new PIndicator(9871984);i.MFAMINC=new PIndicator(9871853);i.MFAMINC.nodata=-99999999;i.MHHINC=new PIndicator(9871831);i.MHHINC.nodata=-99999999;i.CFAM=new PIndicator(9868933);i.CHH=new PIndicator(9869078);ti.CFAMPOV50P=new PIndicator(9938096);ti.CFAMUND5_ALL=new PIndicator(9938097);ti.CFAMPOV=new PIndicator(9871986);ti.CFAMPOV_LT200P=new PIndicator(9938094);ti.CFAMPOV_LT300P=new PIndicator(9938095);ti.CFAMPOV_GT300P=new PIndicator(9938093);ti.CFAMUND5POV=new PIndicator(9938098);ti.CFAMALLINC=new PIndicator(9871916);ti.MFAMINC=new PIndicator(9871853);ti.MFAMINC.nodata=-99999999;var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var tractIndsArr=[];for(var ind in ti){ti[ind].n=ind;tractIndsArr.push(ti[ind])}var periods=[P.constants.latestACSPeriod];var areaCube=new PCube(allinds,aggObj[2],periods);areaCube.loadValues(function(values){this.values=values;var cityCube=new PCube(allinds.concat(tractIndsArr),cities,periods);cityCube.loadValues(function(values){this.values=values;var censusTractsCube=new PCube(tractIndsArr,tracts,periods);censusTractsCube.loadValues(function(values){this.values=values;var areaValues_2013={};var cityValues_2013={};var areaValues_ACSPERIOD={};var cityValues_ACSPERIOD={};var censusTractsValues_2013={};var censusTractsCityValues_2013={};var censusTractsValues_ACSPERIOD={};var censusTractsCityValues_ACSPERIOD={};for(year in periods){var theyear=periods[year];for(var name in i){var ind=i[name];if(theyear==2013){var s=getSumOfPlaces(areaCube,ind,theyear);areaValues_2013[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cityCube,ind,theyear);cityValues_2013[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}else if(theyear==P.constants.latestACSPeriod){var s=getSumOfPlaces(areaCube,ind,theyear);areaValues_ACSPERIOD[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cityCube,ind,theyear);cityValues_ACSPERIOD[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}}for(var name in ti){if(theyear==2013){var ind=ti[name];var s=getSumOfPlaces(censusTractsCube,ind,theyear);censusTractsValues_2013[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cityCube,ind,theyear);censusTractsCityValues_2013[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}else if(theyear==P.constants.latestACSPeriod){var ind=ti[name];var s=getSumOfPlaces(censusTractsCube,ind,theyear);censusTractsValues_ACSPERIOD[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cityCube,ind,theyear);censusTractsCityValues_ACSPERIOD[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}}}var ind=i.MHHINC;var arr=areaCube.getSortedValuesOfPlacesIgnoreNulls(ind,periods[0]);var mhhinc=getRangeString(arr[0],arr[arr.length-1],"$_").toLowerCase();var arr=cityCube.getSortedValuesOfPlaces(ind,periods[0]);var mhhinc_city=getRangeString(arr[0],arr[arr.length-1],"$_");var ind=i.MFAMINC;var arr=censusTractsCube.getSortedValuesOfPlacesIgnoreNulls(ind,periods[0]);var mfaminc=getRangeString(arr[0],arr[arr.length-1],"$_").toLowerCase();var arr=cityCube.getSortedValuesOfPlaces(ind,periods[0]);var mfaminc_city=getRangeString(arr[0],arr[arr.length-1],"$_");var cfam=areaValues_ACSPERIOD[i.CFAM.n].f;var chh=areaValues_ACSPERIOD[i.CHH.n].f;var text="The median <b>household</b> income for block groups in this area "+mhhinc+", compared to the city median of "+mhhinc_city+", as estimated for "+P.constants.latestACSPeriod+" by the Census' American Community Survey.  The median"+" <b>family</b> income of census tracts in this area "+mfaminc+", compared to the city median of "+mfaminc_city+". The area includes a total of "+cfam+" families and "+chh+" households.";var html="<caption>Income in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number of Families</th>";html+="<th>Percent of Families</th>";html+="<th>Percent of Families (Newark)</th>";html+="<th>Number of Households</th>";html+="<th>Percent of Households</th>";html+="<th>Percent of Households (Newark)</th>";html+="</tr></thead>";var getRow=function(ind1,dInd1,ind2,dInd2,label){var h="";var ind=ind1;var dInd=dInd1;h+="<tr>";h+="<td class='ind-label'>"+label+"</td>";h+="<td>"+areaValues_ACSPERIOD[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(areaValues_ACSPERIOD[ind.n].s,areaValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(cityValues_ACSPERIOD[ind.n].s,cityValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";var ind=ind2;var dInd=dInd2;h+="<td>"+areaValues_ACSPERIOD[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(areaValues_ACSPERIOD[ind.n].s,areaValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(cityValues_ACSPERIOD[ind.n].s,cityValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";h+="</tr>";return h};var dInd1=i.CFAMALLINC;var dInd2=i.CHIALL;html+=getRow(i.CFAMLT25,dInd1,i.CHILT25,dInd2,"Less than $25,000");html+=getRow(i.CFAM25_35,dInd1,i.CHI25_35,dInd2,"$25,000 - $34,999");html+=getRow(i.CFAM35_50,dInd1,i.CHI35_50,dInd2,"$35,000 - $49,999");html+=getRow(i.CFAM50_75,dInd1,i.CHI50_75,dInd2,"$50,000 - $74,999");html+=getRow(i.CFAM75_100,dInd1,i.CHI75_100,dInd2,"$75,000 - $99,999");html+=getRow(i.CFAM100_125,dInd1,i.CHI100_125,dInd2,"$100,000 - $124,999");html+=getRow(i.CFAM125_150,dInd1,i.CHI125_150,dInd2,"$125,000 - $149,999");html+=getRow(i.CFAM150P,dInd1,i.CHI150P,dInd2,"$150,000 or more");var ind=ti.CFAMPOV50P;var dInd=ti.CFAMALLINC;var label="Families in Deep Poverty: Up to 50% of Poverty";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+censusTractsValues_ACSPERIOD[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsValues_ACSPERIOD[ind.n].s,censusTractsValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsCityValues_ACSPERIOD[ind.n].s,censusTractsCityValues_ACSPERIOD[dInd.n].s,100,null,null,true,1),"_%")+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var ind=ti.CFAMPOV;var dInd=ti.CFAMALLINC;var label="Families in Poverty";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+censusTractsValues_ACSPERIOD[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsValues_ACSPERIOD[ind.n].s,censusTractsValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsCityValues_ACSPERIOD[ind.n].s,censusTractsCityValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var ind=ti.CFAMPOV_LT200P;var dInd=ti.CFAMALLINC;var label="Up to 200% of Poverty";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+censusTractsValues_ACSPERIOD[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsValues_ACSPERIOD[ind.n].s,censusTractsValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsCityValues_ACSPERIOD[ind.n].s,censusTractsCityValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var ind=ti.CFAMPOV_LT300P;var dInd=ti.CFAMALLINC;var label="Up to 300% of Poverty";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+censusTractsValues_ACSPERIOD[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsValues_ACSPERIOD[ind.n].s,censusTractsValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsCityValues_ACSPERIOD[ind.n].s,censusTractsCityValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var ind=ti.CFAMPOV_GT300P;var dInd=ti.CFAMALLINC;var label="More than 300% of Poverty";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+censusTractsValues_ACSPERIOD[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsValues_ACSPERIOD[ind.n].s,censusTractsValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsCityValues_ACSPERIOD[ind.n].s,censusTractsCityValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var ind=ti.CFAMUND5POV;var dInd=ti.CFAMUND5_ALL;var label="Families with Children Under 5 in Poverty***";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+censusTractsValues_ACSPERIOD[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsValues_ACSPERIOD[ind.n].s,censusTractsValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(censusTractsCityValues_ACSPERIOD[ind.n].s,censusTractsCityValues_ACSPERIOD[dInd.n].s,100,null,null,true),"_%",1)+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var $table=$("<table>",{class:"datatable boldfirsttd"});$table.append(html);$("#nwk-income-text").append(text);$("#nwk-income-table").append($table);var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=NWKSetSourceLinks(arr,"income-section")})})})}function NWKLoadHouseholdStatus(aggObj,boundarea,cities){var i={};i.CHH_NOCH=new PIndicator(9868874);i.CHH_MCWC=new PIndicator(9868990);i.CHH_SHWC=new PIndicator(9869028);i.CHH_FHNHWC=new PIndicator(9869005);i.CHH_ALLTYPE=new PIndicator(9868988);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[2010];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,cities,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};for(var name in i){var ind=i[name];var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}var html="<caption>Household Status in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number of Households</th>";html+="<th>Percent of Households</th>";html+="<th>Percent of Households (Newark)</th>";html+="</tr></thead>";var getRow=function(ind,dInd,label){var h="";h+="<tr>";h+="<td class='ind-label'>"+label+"</td>";h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%",1)+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%",1)+"</td>";h+="</tr>";return h};var dInd=i.CHH_ALLTYPE;html+=getRow(i.CHH_NOCH,dInd,"Without children");html+=getRow(i.CHH_MCWC,dInd,"Married with children");html+=getRow(i.CHH_SHWC,dInd,"Single with children");html+=getRow(i.CHH_FHNHWC,dInd,"Single female with children");var $table=$("<table>",{class:"datatable boldfirsttd"});$table.append(html);$("#nwk-household-table").append($table);var arr=["Census, 2010"];var $src=NWKSetSourceLinks(arr,"household-section")})})}function NWKLoadSchoolEnrollment(aggObj,boundarea,cities){var i={};i.CK12PUB=new PIndicator(9873905);i.CK12PRIV=new PIndicator(9873910);i.CK12ALL=new PIndicator(9873922);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[P.constants.latestACSPeriod];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,cities,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};var ind=i.CK12PUB;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CK12PRIV;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CK12ALL;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var $table=$("<table>",{class:"datatable boldfirsttd"});var html="<caption>School Enrollment</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Percent of Children</th>";html+="<th>Percent of Children (Newark)</th>";html+="</tr></thead>";var ind=i.CK12PUB;var dInd=i.CK12ALL;html+="<tr>";html+="<td class='ind-label'>Children enrolled in public school</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%",1)+"</td>";html+="</tr>";var ind=i.CK12PRIV;var dInd=i.CK12ALL;html+="<tr>";html+="<td class='ind-label'>Children enrolled in private school</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%",1)+"</td>";html+="</tr>";$table.append(html);$("#school-table").append($table);var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=NWKSetSourceLinks(arr,"school-section")})})}function NWKLoadJobsEconomyText(aggObj,boundarea,cities){var i={};i.CPOP16P=new PIndicator(9906504);i.CLABORFORCE=new PIndicator(9906502);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[P.constants.latestACSPeriod];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,cities,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};for(var name in i){var per=periods[0];if(name=="CPOP16P"||name=="CLABORFORCE")per=periods[1];var ind=i[name];var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}var value=PWebUtil.formatNumber(divideCheck(VALUES[i.CLABORFORCE.n].s,VALUES[i.CPOP16P.n].s,100),"_%",1);var text="As of the "+P.constants.latestACSPeriod+" time period, "+value+" of people ages 16 or older were in the labor force, according to the Census' American Community Survey.";$("#nwk-jobs-text").html(text)})})}function NWKLoadJobsEconomy(aggObj,boundarea,cities){var i={};i.CR_PRIMJOBS_EARNLOW=new PIndicator(9911313);i.CR_PRIMJOBS_EARNMED=new PIndicator(9911341);i.CR_PRIMJOBS_ALL=new PIndicator(9911309);i.CW_PRIMJOBS_EARNLOW=new PIndicator(9911392);i.CW_PRIMJOBS_EARNMED=new PIndicator(9911408);i.CW_PRIMJOBS_ALL=new PIndicator(9911366);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[2015];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,cities,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};for(var name in i){var per=periods[0];var ind=i[name];var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}var html="<caption>Jobs and Economy in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number of Working Residents</th>";html+="<th>Percent of Working Residents</th>";html+="<th>Percent of Working Residents (Newark)</th>";html+="<th>Number of Workers Employed in Area</th>";html+="<th>Percent of Workers Employed in Area</th>";html+="<th>Percent of Workers Employed in Newark</th>";html+="</tr></thead>";var getRow=function(ind1,dInd1,ind2,dInd2,label){var h="";var ind=ind1;var dInd=dInd1;h+="<tr>";h+="<td class='ind-label'>"+label+"</td>";h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%",1)+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%",1)+"</td>";var ind=ind2;var dInd=dInd2;h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%",1)+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%",1)+"</td>";h+="</tr>";return h};var dInd1=i.CR_PRIMJOBS_ALL;var dInd2=i.CW_PRIMJOBS_ALL;html+=getRow(i.CR_PRIMJOBS_EARNLOW,dInd1,i.CW_PRIMJOBS_EARNLOW,dInd2,"Earning less than $15,000 from primary job");html+=getRow(i.CR_PRIMJOBS_EARNMED,dInd1,i.CW_PRIMJOBS_EARNMED,dInd2,"Earning $15,000 - $39,999 from primary job");var $table=$("<table>",{class:"datatable boldfirsttd"});$table.append(html);$("#nwk-jobs-table").append($table);var arr=["LEHD ( "+periods[0]+" )"];var $src=NWKSetSourceLinks(arr,"jobs-section")})})}function NWKLoadTransportation(aggObj,boundarea,cities){var i={};i.CTRANPT=new PIndicator(9873787);i.CHUNOMV=new PIndicator(9873783);i.CTRANALL=new PIndicator(9873825);i.CHHMIALL=new PIndicator(9873833);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[P.constants.latestACSPeriod];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,cities,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};for(var name in i){var ind=i[name];var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}var html="<caption>Transportation in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number</th>";html+="<th>Percent</th>";html+="<th>Percent (Newark)</th>";html+="</tr></thead>";var getRow=function(ind,dInd,label){var h="";h+="<tr>";h+="<td class='ind-label'>"+label+"</td>";h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%",1)+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%",1)+"</td>";h+="</tr>";return h};var dInd=i.CTRANALL;html+=getRow(i.CTRANPT,dInd,"People using public transportation to get to work");var dInd=i.CHHMIALL;html+=getRow(i.CHUNOMV,dInd,"Households without a vehicle");var $table=$("<table>",{class:"datatable boldfirsttd"});$table.append(html);$("#nwk-transportation-table").append($table);var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=NWKSetSourceLinks(arr,"transportation-section")})})}function NWKLoadEducationalAttainment(aggObj,boundarea,cities){var i={};i.CLT9TH=new PIndicator(9873900);i.CSMHSNODIP=new PIndicator(9873915);i.CHS=new PIndicator(9873934);i.CSMCOLASS=new PIndicator(9873912);i.CBACH=new PIndicator(9873914);i.CEDUALL=new PIndicator(9873929);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[P.constants.latestACSPeriod];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,cities,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};for(var name in i){var ind=i[name];var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}var html="<caption>Educational Attainment in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number of People</th>";html+="<th>Percent of Population</th>";html+="<th>Percent of Population (Newark)</th>";html+="</tr></thead>";var dInd=i.CEDUALL;var value=VALUES[i.CLT9TH.n].s+VALUES[i.CSMHSNODIP.n].s;var cvalue=CVALUES[i.CLT9TH.n].s+CVALUES[i.CSMHSNODIP.n].s;var label="Without a high school diploma";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+PWebUtil.formatNumber(value)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(value,VALUES[dInd.n].s,100),"_%",1)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(cvalue,CVALUES[dInd.n].s,100),"_%",1)+"</td>";html+="</tr>";var getRow=function(ind,dInd,label){var h="";h+="<tr>";h+="<td class='ind-label'>"+label+"</td>";h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%",1)+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%",1)+"</td>";h+="</tr>";return h};html+=getRow(i.CHS,dInd,"With only a high school diploma");html+=getRow(i.CSMCOLASS,dInd,"With some college or an Associate's Degree");html+=getRow(i.CBACH,dInd,"With at least a Bachelor's Degree");var $table=$("<table>",{class:"datatable boldfirsttd"});$table.append(html);$("#nwk-education-table").append($table);var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=NWKSetSourceLinks(arr,"education-section")})})}function NWKLoadGeographyType(typeid){var displayword="";var iscustomarea=false;if(typeid==170){displayword="neighborhood"}else if(typeid==171){$("#reportlocation_of").html("");displayword=""}else if(typeid==172){displayword="Zip Code"}else if(typeid==15){$("#reportlocation_of").html("");displayword=""}else{iscustomarea=true;displayword="report area"}if(iscustomarea){$("#reportlocationwrapper").html(displayword)}else{$("#geographytype").html(displayword)}}function displayPassaicReport(aggregates,boundarea,comparisonLocations){$("html > head > title").html("Passaic Childcare Map");if(boundarea.getType().getId()==0){$("span.boundarea").html("Report Area")}else{$("span.boundarea").html(boundarea.getLabel())}var params=getUrlParams();getPassaicContainmentsLists(boundarea);if(P.WKPrint.isPrintPage()===true){$("body > div.top-container").remove()}var aggObj={};var ids=boundaryMatrix.getMatrixOrder();for(var i=0;i<ids.length;i++){aggObj[ids[i]]=[]}for(var i=0;i<aggregates.length;i++){var p=aggregates[i];var mIds=boundaryMatrix.getAllMatrixIdsForDefinitionId(p.getDefinitionId());for(var j=0;j<mIds.length;j++){mId=mIds[j];aggObj[mId].push(p)}}if(boundarea.getType()==PPlaceType.BLOCKGROUP){var p=boundarea;var mId=boundaryMatrix.getMatrixIdForDefinitionId(p.getDefinitionId());aggObj[mId]=[p]}if(P.WKPrint.isPrintPage()===true){$("head").append('<link rel="stylesheet" href="/cssPrint/culture_blocks.css" type="text/css" />');$(".print-page2").append($(".report-charts"))}var overrideSitesLimit=true;PASLoadChildCare(aggObj,boundarea,comparisonLocations);PASLoadChildCareGraph2(aggObj,boundarea,comparisonLocations);PASLoadChildCareGraph3(aggObj,boundarea,comparisonLocations);PASLoadChildCareGraph4(aggObj,boundarea,comparisonLocations);PASLoadPopulationText(aggObj,boundarea,comparisonLocations);PASLoadPopAndAge(aggObj,boundarea,comparisonLocations);PASLoadRace(aggObj,boundarea,comparisonLocations);PASLoadIncomeText(aggObj,boundarea,comparisonLocations);PASLoadIncomePart1(aggObj,boundarea,comparisonLocations);PASLoadHouseholdStatus(aggObj,boundarea,comparisonLocations);PASLoadSchoolEnrollment(aggObj,boundarea,comparisonLocations);PASLoadJobsEconomy(aggObj,boundarea,comparisonLocations);PASLoadTransportation(aggObj,boundarea,comparisonLocations);PASLoadEducationAttainment(aggObj,boundarea,comparisonLocations);PASLoadGeographyType(boundarea.typeid);var overlap_pct=50;boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,null,function(tracts){PASLoadIncomePart2(aggObj,boundarea,comparisonLocations,tracts);var aggList=$("#tracts-list");var aggToggle=$("#tracts-toggle");var aggTogglePrint=$("#tracts-toggle-print");var t=getAggregatedPlaceNames(tracts);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show");aggTogglePrint.text("Not Displayed")}else{aggList.slideDown();aggToggle.text("(-) Hide");aggTogglePrint.text("")}});if(params["da"]){aggToggle.click()}},overlap_pct,null,null,null,"id,identifier,label,typeid,state");var aggList=$("#agg-list");var aggToggle=$("#agg-toggle");var aggTogglePrint=$("#agg-toggle-print");var t=getAggregatedPlaceNames(aggObj[2]);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show");aggTogglePrint.text("Not Displayed")}else{aggList.slideDown();aggToggle.text("(-) Hide");aggTogglePrint.text("")}});var overlaySet=new POverlaySet(166500,PinIcons.triangle180,15);map.addOverlaySet(overlaySet)}function getPassaicContainmentsLists(b){var mid=1;if(b.typeid==PPlaceType.PASSAIC_ZIP.getId()){displayDistrictsCB([b],"zip-codes",b)}else{b.getPlacesContaining(PPlaceType.PASSAIC_ZIP,null,null,function(zips){displayDistrictsCB(zips,"zip-codes",b)})}var set=new POverlaySet(140150);set.type="old";set.overrideLimit=true;set.map=null;b.getMarkersWithin(set,function(markers){var combinedMarkers=[];for(var i=0;i<markers.length;i++){var attributes=markers[i].attributes;for(var j=0;j<attributes.length;j++){var attribute=attributes[j];if(attribute.columnName=="schnam"){combinedMarkers.push(markers[i])}}}var set=new POverlaySet(139350);set.type="old";set.overrideLimit=true;set.map=null;b.getMarkersWithin(set,function(markers){for(var i=0;i<markers.length;i++){var attributes=markers[i].attributes;for(var j=0;j<attributes.length;j++){var attribute=attributes[j];if(attribute.columnName=="pinst"){combinedMarkers.push(markers[i])}}}var elem=$("#schools");var list=getDisplayMarkersListCB(combinedMarkers,elem,"Schools",",")},true)},true);var set=new POverlaySet(131650);set.type="old";set.overrideLimit=true;set.map=null;b.getMarkersWithin(set,function(markers){var elem=$("#libraries");var list=getDisplayMarkersListCB(markers,elem,"Libraries")})}function PASLoadChildCare(aggObj,boundarea,comparisonLocations){var overrideSitesLimit=true;var overlap_pct=50;var high_quality_count=0;var sum_high_quality_slots=0;var sum_no_high_quality_slots=0;var total_childcare_count=0;var total_childcare_slots=0;var donewithlicensed=false;var sum_unlicensed_child_care=0;var sum_other_licensed_slots=0;var infant_toddler_count=0;var sum_licensed_infant_toddler=0;var total_infant_toddler_slots=0;boundarea.getPlacesWithin(PPlaceType.BLOCKGROUP,null,null,function(blockgroups){if(boundarea.typeid==PPlaceType.BLOCKGROUP.id){blockgroups=[boundarea]}var places=blockgroups;var periods=[2016];var indsObj={};indsObj.rdem0433=new PIndicator(9948180);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var inds=indsArr;var cube=new PCube(inds,places,periods);cube.loadValues(function(values){this.values=values;var sum_rdem0433_2016=getSumOfPlaces(cube,indsObj.rdem0433,"2016")||0;$("#sum_rdem0433_2016").html(PWebUtil.formatNumber(sum_rdem0433_2016));$("#tbl_sum_rdem0433_2016").html(PWebUtil.formatNumber(sum_rdem0433_2016));var set=new POverlaySet(166550);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;boundarea.getMarkersWithin(set,function(markers){markers=markers||[];if(markers.length>0){for(var i=0;i<markers.length;i++){high_quality_count+=1;$("#childcare-count0").html(PWebUtil.formatNumber(high_quality_count));$("#text_high_quality_count").html(PWebUtil.formatNumber(high_quality_count));var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){sum_high_quality_slots+=sup_est}}}$("#childcare-slots0").html(PWebUtil.formatNumber(sum_high_quality_slots));$("#text_high_quality_slots").html(PWebUtil.formatNumber(sum_high_quality_slots))}}else{$("#childcare-count0").html("0");$("#text_high_quality_count").html("0");$("#childcare-slots0").html("0");$("#text_high_quality_slots").html("0")}var set=new POverlaySet(166500);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;boundarea.getMarkersWithin(set,function(markers){markers=markers||[];if(markers.length>0){for(var i=0;i<markers.length;i++){var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est_inf"){var sup_est_inf=parseInt(a.value);if(sup_est_inf!=-9999&&!isNaN(sup_est_inf)){total_infant_toddler_slots+=sup_est_inf;if(sup_est_inf>0){infant_toddler_count+=1;$("#childcare-count2").html(PWebUtil.formatNumber(infant_toddler_count))}}}}$("#childcare-slots2").html(PWebUtil.formatNumber(total_infant_toddler_slots))}
if(infant_toddler_count==0){$("#childcare-count2").next().hide()}else{$("#childcare-count2").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set,place);$elem.append(html);generateReportSitesListInAlert(set,boundarea,filters,$elem)})}}else{$("#childcare-count2").html("0");$("#childcare-slots2").html("0")}});if(!donewithlicensed){var set2=new POverlaySet(166500);set2.type="old";set2.overrideLimit=overrideSitesLimit;set2.map=null;boundarea.getMarkersWithin(set2,function(markers){if(markers.length){for(var i=0;i<markers.length;i++){total_childcare_count+=1;$("#childcare-count1").html(total_childcare_count);$("#total_childcare_count").html(total_childcare_count);var atts=markers[i].attributes;var is_high_qual=false;var progflag="";var sup_est=0;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){total_childcare_slots+=sup_est}}else if(a.columnName=="highqual"){if(a.value=="yes"||a.value=="Yes"){is_high_qual=true}}else{continue}}if(!is_high_qual){sum_no_high_quality_slots+=sup_est}$("#childcare-slots1").html(PWebUtil.formatNumber(total_childcare_slots));$("#text_total_childcare_slots").html(PWebUtil.formatNumber(total_childcare_slots));$(".seelist").poshytip({content:"View in table",className:"tip-twitter",alignTo:"target",alignX:"center",alignY:"top",offsetY:30,slide:false,showTimeout:0,hideTimeout:0});donewithlicensed=true}}else{$("#childcare-count1").html(PWebUtil.formatNumber(total_childcare_count));$("#total_childcare_count").html(PWebUtil.formatNumber(total_childcare_count));$("#childcare-slots1").html(PWebUtil.formatNumber(total_childcare_slots));$("#text_total_childcare_slots").html(PWebUtil.formatNumber(total_childcare_slots))}if(high_quality_count==0){$("#childcare-count0").next().hide()}else{$("#childcare-count0").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set,place);$elem.append(html);generateReportSitesListInAlert(set,boundarea,filters,$elem)})}if(total_childcare_count==0){$("#childcare-count1").next().hide()}else{$("#childcare-count1").click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set,place);$elem.append(html);generateReportSitesListInAlert(set,boundarea,filters,$elem)})}var calc=Math.abs(sum_rdem0433_2016-(sum_no_high_quality_slots+sum_high_quality_slots));$("#childcaretext_span6").html(PWebUtil.formatNumber(calc));var demand=sum_rdem0433_2016;var supply=sum_no_high_quality_slots+sum_high_quality_slots;if(demand<supply){$("#childcare_more_or_less").html("less")}else{$("#childcare_more_or_less").html("more")}var set3=new POverlaySet(166600);set3.type="old";set3.overrideLimit=overrideSitesLimit;set3.map=null;boundarea.getMarkersWithin(set3,function(markers){for(var i=0;i<markers.length;i++){var atts=markers[i].attributes;var is_sources_schools=false;var sources="";var sup_est=0;var is_abbott=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value)}else if(a.columnName=="abbott"){if(a.value=="Yes"||a.value=="yes"){is_abbott=true}}}if(!is_abbott){sum_unlicensed_child_care+=sup_est}}var colors=["#716A99","#87AA4f","#C67830","#247dA0","#C65265"];var data=[["High Quality Slots <br> (NAEYC/Abbott/ <br> Head Start)",sum_high_quality_slots],["Other Licensed Slots <br> (Non-NAEYC/Abbott/ <br> Head Start)",sum_no_high_quality_slots],["Unlicensed Slots <br> (Non-Abbott/Head Start)",sum_unlicensed_child_care]];sumData=[PWebUtil.formatNumber(sum_high_quality_slots),PWebUtil.formatNumber(sum_no_high_quality_slots),PWebUtil.formatNumber(sum_unlicensed_child_care)];if(boundarea.getType().getId()==0){var graphTitle="Childcare Slots, Report Area, December 2016"}else{var graphTitle="Childcare Slots, "+boundarea.getLabel()+", December 2016"}var plot1=jQuery.jqplot("pas-childcare-pie1",[data],{title:{text:graphTitle,textAlign:"left",color:"black"},seriesDefaults:{renderer:jQuery.jqplot.PieRenderer,rendererOptions:{showDataLabels:true,sumDataLabels:sumData}},seriesColors:colors,legend:{show:true,location:"e",border:"none"},grid:{drawGridlines:false,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent"}});$("#pas-childcare-pie1 > div.jqplot-title").css("font-size","14px").css("font-weight","bold")},true)},true)}},true)})},overlap_pct,null,null,null,"id,identifier,label,typeid,state")}function PASLoadChildCareGraph2(aggObj,boundarea,comparisonLocations){var overrideSitesLimit=true;var overlap_pct=50;var sum_high_quality_slots=0;var sum_no_high_quality_slots=0;var total_childcare_slots=0;var sum_unlicensed_child_care=0;var sum_other_licensed_slots=0;var paterson_id=4601852;placeLoader.load([paterson_id],function(places){var place=places[0];var set=new POverlaySet(166550);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;place.getMarkersWithin(set,function(markers){markers=markers||[];if(markers.length>0){for(var i=0;i<markers.length;i++){var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){sum_high_quality_slots+=sup_est}}}}}var set2=new POverlaySet(166500);set2.type="old";set2.overrideLimit=overrideSitesLimit;set2.map=null;place.getMarkersWithin(set2,function(markers){if(markers.length){for(var i=0;i<markers.length;i++){total_childcare_count+=1;var atts=markers[i].attributes;var is_high_qual=false;var progflag="";var sup_est=0;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){total_childcare_slots+=sup_est}}else if(a.columnName=="highqual"){if(a.value=="yes"||a.value=="Yes"){is_high_qual=true}}else{continue}}if(!is_high_qual){sum_no_high_quality_slots+=sup_est}}}var set3=new POverlaySet(166600);set3.type="old";set3.overrideLimit=overrideSitesLimit;set3.map=null;place.getMarkersWithin(set3,function(markers){for(var i=0;i<markers.length;i++){var atts=markers[i].attributes;var is_sources_schools=false;var sources="";var sup_est=0;var is_abbott=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value)}else if(a.columnName=="abbott"){if(a.value=="Yes"||a.value=="yes"){is_abbott=true}}}if(!is_abbott){sum_unlicensed_child_care+=sup_est}}var data=[["High Quality Slots <br> (NAEYC/Abbott/ <br> Head Start)",sum_high_quality_slots],["Other Licensed Slots <br> (Non-NAEYC/Abbott/ <br> Head Start)",sum_no_high_quality_slots],["Unlicensed Slots <br> (Non-Abbott/Head Start)",sum_unlicensed_child_care]];var sumData=[PWebUtil.formatNumber(sum_high_quality_slots),PWebUtil.formatNumber(sum_no_high_quality_slots),PWebUtil.formatNumber(sum_unlicensed_child_care)];var colors=["#716A99","#87AA4f","#C67830","#247dA0","#C65265"];var plot2=jQuery.jqplot("pas-childcare-pie2",[data],{title:"Childcare Slots, City of "+place.getLabel(),seriesDefaults:{renderer:jQuery.jqplot.PieRenderer,rendererOptions:{showDataLabels:true,sumDataLabels:sumData}},seriesColors:colors,legend:{show:false,location:"e",border:"none"},grid:{drawGridlines:false,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent"}});$("#pas-childcare-pie2 > div.jqplot-title").css("font-size","14px").css("font-weight","bold")})})})})}function PASLoadChildCareGraph3(aggObj,boundarea,comparisonLocations){var overrideSitesLimit=true;var overlap_pct=50;var sum_high_quality_slots=0;var sum_no_high_quality_slots=0;var total_childcare_slots=0;var sum_unlicensed_child_care=0;var sum_other_licensed_slots=0;var passaic_id=4601858;placeLoader.load([passaic_id],function(places){var place=places[0];var set=new POverlaySet(166550);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;place.getMarkersWithin(set,function(markers){markers=markers||[];if(markers.length>0){for(var i=0;i<markers.length;i++){var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){sum_high_quality_slots+=sup_est}}}}}var set2=new POverlaySet(166500);set2.type="old";set2.overrideLimit=overrideSitesLimit;set2.map=null;place.getMarkersWithin(set2,function(markers){if(markers.length){for(var i=0;i<markers.length;i++){total_childcare_count+=1;var atts=markers[i].attributes;var is_high_qual=false;var progflag="";var sup_est=0;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){total_childcare_slots+=sup_est}}else if(a.columnName=="highqual"){if(a.value=="yes"||a.value=="Yes"){is_high_qual=true}}else{continue}}if(!is_high_qual){sum_no_high_quality_slots+=sup_est}}}var set3=new POverlaySet(166600);set3.type="old";set3.overrideLimit=overrideSitesLimit;set3.map=null;place.getMarkersWithin(set3,function(markers){for(var i=0;i<markers.length;i++){var atts=markers[i].attributes;var is_sources_schools=false;var sources="";var sup_est=0;var is_abbott=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value)}else if(a.columnName=="abbott"){if(a.value=="Yes"||a.value=="yes"){is_abbott=true}}}if(!is_abbott){sum_unlicensed_child_care+=sup_est}}var data=[["High Quality Slots <br> (NAEYC/Abbott/ <br> Head Start)",sum_high_quality_slots],["Other Licensed Slots <br> (Non-NAEYC/Abbott/ <br> Head Start)",sum_no_high_quality_slots],["Unlicensed Slots <br> (Non-Abbott/Head Start)",sum_unlicensed_child_care]];var sumData=[PWebUtil.formatNumber(sum_high_quality_slots),PWebUtil.formatNumber(sum_no_high_quality_slots),PWebUtil.formatNumber(sum_unlicensed_child_care)];var colors=["#716A99","#87AA4f","#C67830","#247dA0","#C65265"];var plot3=jQuery.jqplot("pas-childcare-pie3",[data],{title:"Childcare Slots, City of "+place.getLabel(),seriesDefaults:{renderer:jQuery.jqplot.PieRenderer,rendererOptions:{showDataLabels:true,sumDataLabels:sumData}},seriesColors:colors,legend:{show:false,location:"e",border:"none"},grid:{drawGridlines:false,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent"}});$("#pas-childcare-pie3 > div.jqplot-title").css("font-size","14px").css("font-weight","bold")})})})})}function PASLoadChildCareGraph4(aggObj,boundarea,comparisonLocations){var overrideSitesLimit=true;var overlap_pct=50;var sum_high_quality_slots=0;var sum_no_high_quality_slots=0;var total_childcare_slots=0;var sum_unlicensed_child_care=0;var sum_other_licensed_slots=0;var passaic_id=comparisonLocations[2].getID();placeLoader.load([passaic_id],function(places){var place=places[0];var set=new POverlaySet(166550);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;place.getMarkersWithin(set,function(markers){markers=markers||[];if(markers.length>0){for(var i=0;i<markers.length;i++){var atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){sum_high_quality_slots+=sup_est}}}}}var set2=new POverlaySet(166500);set2.type="old";set2.overrideLimit=overrideSitesLimit;set2.map=null;place.getMarkersWithin(set2,function(markers){if(markers.length){for(var i=0;i<markers.length;i++){total_childcare_count+=1;var atts=markers[i].attributes;var is_high_qual=false;var progflag="";var sup_est=0;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value);if(sup_est!=-9999&&!isNaN(sup_est)){total_childcare_slots+=sup_est}}else if(a.columnName=="highqual"){if(a.value=="yes"||a.value=="Yes"){is_high_qual=true}}else{continue}}if(!is_high_qual){sum_no_high_quality_slots+=sup_est}}}var set3=new POverlaySet(166600);set3.type="old";set3.overrideLimit=overrideSitesLimit;set3.map=null;place.getMarkersWithin(set3,function(markers){for(var i=0;i<markers.length;i++){var atts=markers[i].attributes;var is_sources_schools=false;var sources="";var sup_est=0;var is_abbott=false;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){var sup_est=parseInt(a.value)}else if(a.columnName=="abbott"){if(a.value=="Yes"||a.value=="yes"){is_abbott=true}}}if(!is_abbott){sum_unlicensed_child_care+=sup_est}}var data=[["High Quality Slots <br> (NAEYC/Abbott/ <br> Head Start)",sum_high_quality_slots],["Other Licensed Slots <br> (Non-NAEYC/Abbott/ <br> Head Start)",sum_no_high_quality_slots],["Unlicensed Slots <br> (Non-Abbott/Head Start)",sum_unlicensed_child_care]];var sumData=[PWebUtil.formatNumber(sum_high_quality_slots),PWebUtil.formatNumber(sum_no_high_quality_slots),PWebUtil.formatNumber(sum_unlicensed_child_care)];var colors=["#716A99","#87AA4f","#C67830","#247dA0","#C65265"];var plot4=jQuery.jqplot("pas-childcare-pie4",[data],{title:"Childcare Slots, County of "+place.getLabel(),seriesDefaults:{renderer:jQuery.jqplot.PieRenderer,rendererOptions:{showDataLabels:true,sumDataLabels:sumData}},seriesColors:colors,legend:{show:false,location:"e",border:"none"},grid:{drawGridlines:false,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent"}});$("#pas-childcare-pie4 > div.jqplot-title").css("font-size","14px").css("font-weight","bold")})})})})}function PASLoadPopAndAge(aggObj,boundarea,comparisonLocations){var place_paterson_city=comparisonLocations[0];var place_passaic_city=comparisonLocations[1];var place_passaic_county=comparisonLocations[2];var periods=[2010];var years={y2010:periods[0]};var indid=9937862;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cpoplt1=new PIndicator(9937862);indsObj.cpop1=new PIndicator(9937861);indsObj.cpop2=new PIndicator(9937858);indsObj.cpop3=new PIndicator(9937857);indsObj.cpop4=new PIndicator(9937859);indsObj.cpopallage=new PIndicator(9937864);indsObj.cpop0_4=new PIndicator(9868901);indsObj.cpop10_14=new PIndicator(9869025);indsObj.cpop5_9=new PIndicator(9869090);indsObj.cpop15_17=new PIndicator(9868851);indsObj.cpop18_34=new PIndicator(9868870);indsObj.cpop35_64=new PIndicator(9906418);indsObj.cpop=new PIndicator(9869069);indsObj.cpop65p=new PIndicator(9868923);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cpoplt1=getSumOfPlaces(this,indsObj.cpoplt1,years.y2010);var cpop1=getSumOfPlaces(this,indsObj.cpop1,years.y2010);var cpop2=getSumOfPlaces(this,indsObj.cpop2,years.y2010);var cpop3=getSumOfPlaces(this,indsObj.cpop3,years.y2010);var cpop4=getSumOfPlaces(this,indsObj.cpop4,years.y2010);var cpopallage=getSumOfPlaces(this,indsObj.cpopallage,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop10_14=getSumOfPlaces(this,indsObj.cpop10_14,years.y2010);var cpop5_9=getSumOfPlaces(this,indsObj.cpop5_9,years.y2010);var cpop15_17=getSumOfPlaces(this,indsObj.cpop15_17,years.y2010);var cpop05_17=cpop10_14+cpop5_9+cpop15_17;var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010);var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var cpop18_64=cpop18_34+cpop35_64;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop65p=getSumOfPlaces(this,indsObj.cpop65p,years.y2010);$("#cpoplt1_place_num").html(PWebUtil.formatNumber(cpoplt1));$("#cpop1_place_num").html(PWebUtil.formatNumber(cpop1));$("#cpop2_place_num").html(PWebUtil.formatNumber(cpop2));$("#cpop3_place_num").html(PWebUtil.formatNumber(cpop3));$("#cpop4_place_num").html(PWebUtil.formatNumber(cpop4));$("#cpop0_4_place_num").html(PWebUtil.formatNumber(cpop0_4));$("#cpop05_17_place_num").html(PWebUtil.formatNumber(cpop05_17));$("#cpop18_64_place_num").html(PWebUtil.formatNumber(cpop18_64));$("#cpop65p_place_num").html(PWebUtil.formatNumber(cpop65p));$("#cpopallage_place_num").html(PWebUtil.formatNumber(cpopallage));var cpoplt1_percent=PWebUtil.formatNumber(divideCheck(cpoplt1,cpopallage,100,null,null,true),"_%",1);var cpop1_percent=PWebUtil.formatNumber(divideCheck(cpop1,cpopallage,100,null,null,true),"_%",1);var cpop2_percent=PWebUtil.formatNumber(divideCheck(cpop2,cpopallage,100,null,null,true),"_%",1);var cpop3_percent=PWebUtil.formatNumber(divideCheck(cpop3,cpopallage,100,null,null,true),"_%",1);var cpop4_percent=PWebUtil.formatNumber(divideCheck(cpop4,cpopallage,100,null,null,true),"_%",1);var cpop0_4_percent=PWebUtil.formatNumber(divideCheck(cpop0_4,cpopallage,100,null,null,true),"_%",1);var cpop05_17_percent=PWebUtil.formatNumber(divideCheck(cpop05_17,cpopallage,100,null,null,true),"_%",1);var cpop18_64_percent=PWebUtil.formatNumber(divideCheck(cpop18_64,cpopallage,100,null,null,true),"_%",1);var cpop65p_percent=PWebUtil.formatNumber(divideCheck(cpop65p,cpopallage,100,null,null,true),"_%",1);$("#cpoplt1_place_percent").html(cpoplt1_percent);$("#cpop1_place_percent").html(cpop1_percent);$("#cpop2_place_percent").html(cpop2_percent);$("#cpop3_place_percent").html(cpop3_percent);$("#cpop4_place_percent").html(cpop4_percent);$("#cpop0_4_place_percent").html(cpop0_4_percent);$("#cpop05_17_place_percent").html(cpop05_17_percent);$("#cpop18_64_place_percent").html(cpop18_64_percent);$("#cpop65p_place_percent").html(cpop65p_percent);$("#cpopallage_place_percent").html("N/A");var cube2=new PCube(indsArr,[place_paterson_city],periods);cube2.loadValues(function(values){this.values=values;var cpoplt1=getSumOfPlaces(this,indsObj.cpoplt1,years.y2010);var cpop1=getSumOfPlaces(this,indsObj.cpop1,years.y2010);var cpop2=getSumOfPlaces(this,indsObj.cpop2,years.y2010);var cpop3=getSumOfPlaces(this,indsObj.cpop3,years.y2010);var cpop4=getSumOfPlaces(this,indsObj.cpop4,years.y2010);var cpopallage=getSumOfPlaces(this,indsObj.cpopallage,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop10_14=getSumOfPlaces(this,indsObj.cpop10_14,years.y2010);var cpop5_9=getSumOfPlaces(this,indsObj.cpop5_9,years.y2010);var cpop15_17=getSumOfPlaces(this,indsObj.cpop15_17,years.y2010);var cpop05_17=cpop10_14+cpop5_9+cpop15_17;var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010);var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var cpop18_64=cpop18_34+cpop35_64;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop65p=getSumOfPlaces(this,indsObj.cpop65p,years.y2010);var cpoplt1_percent=PWebUtil.formatNumber(divideCheck(cpoplt1,cpopallage,100,null,null,true),"_%",1);var cpop1_percent=PWebUtil.formatNumber(divideCheck(cpop1,cpopallage,100,null,null,true),"_%",1);var cpop2_percent=PWebUtil.formatNumber(divideCheck(cpop2,cpopallage,100,null,null,true),"_%",1);var cpop3_percent=PWebUtil.formatNumber(divideCheck(cpop3,cpopallage,100,null,null,true),"_%",1);var cpop4_percent=PWebUtil.formatNumber(divideCheck(cpop4,cpopallage,100,null,null,true),"_%",1);var cpop0_4_percent=PWebUtil.formatNumber(divideCheck(cpop0_4,cpopallage,100,null,null,true),"_%",1);var cpop05_17_percent=PWebUtil.formatNumber(divideCheck(cpop05_17,cpopallage,100,null,null,true),"_%",1);var cpop18_64_percent=PWebUtil.formatNumber(divideCheck(cpop18_64,cpopallage,100,null,null,true),"_%",1);var cpop65p_percent=PWebUtil.formatNumber(divideCheck(cpop65p,cpopallage,100,null,null,true),"_%",1);$("#cpoplt1_paterson_percent").html(cpoplt1_percent);$("#cpop1_paterson_percent").html(cpop1_percent);$("#cpop2_paterson_percent").html(cpop2_percent);$("#cpop3_paterson_percent").html(cpop3_percent);$("#cpop4_paterson_percent").html(cpop4_percent);$("#cpop0_4_paterson_percent").html(cpop0_4_percent);$("#cpop05_17_paterson_percent").html(cpop05_17_percent);$("#cpop18_64_paterson_percent").html(cpop18_64_percent);$("#cpop65p_paterson_percent").html(cpop65p_percent);$("#cpopallage_paterson_percent").html("N/A")});var cube3=new PCube(indsArr,[place_passaic_city],periods);cube3.loadValues(function(values){this.values=values;var cpoplt1=getSumOfPlaces(this,indsObj.cpoplt1,years.y2010);var cpop1=getSumOfPlaces(this,indsObj.cpop1,years.y2010);var cpop2=getSumOfPlaces(this,indsObj.cpop2,years.y2010);var cpop3=getSumOfPlaces(this,indsObj.cpop3,years.y2010);var cpop4=getSumOfPlaces(this,indsObj.cpop4,years.y2010);var cpopallage=getSumOfPlaces(this,indsObj.cpopallage,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop10_14=getSumOfPlaces(this,indsObj.cpop10_14,years.y2010);var cpop5_9=getSumOfPlaces(this,indsObj.cpop5_9,years.y2010);var cpop15_17=getSumOfPlaces(this,indsObj.cpop15_17,years.y2010);var cpop05_17=cpop10_14+cpop5_9+cpop15_17;var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010);var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var cpop18_64=cpop18_34+cpop35_64;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop65p=getSumOfPlaces(this,indsObj.cpop65p,years.y2010);var cpoplt1_percent=PWebUtil.formatNumber(divideCheck(cpoplt1,cpopallage,100,null,null,true),"_%",1);var cpop1_percent=PWebUtil.formatNumber(divideCheck(cpop1,cpopallage,100,null,null,true),"_%",1);var cpop2_percent=PWebUtil.formatNumber(divideCheck(cpop2,cpopallage,100,null,null,true),"_%",1);var cpop3_percent=PWebUtil.formatNumber(divideCheck(cpop3,cpopallage,100,null,null,true),"_%",1);var cpop4_percent=PWebUtil.formatNumber(divideCheck(cpop4,cpopallage,100,null,null,true),"_%",1);var cpop0_4_percent=PWebUtil.formatNumber(divideCheck(cpop0_4,cpopallage,100,null,null,true),"_%",1);var cpop05_17_percent=PWebUtil.formatNumber(divideCheck(cpop05_17,cpopallage,100,null,null,true),"_%",1);var cpop18_64_percent=PWebUtil.formatNumber(divideCheck(cpop18_64,cpopallage,100,null,null,true),"_%",1);var cpop65p_percent=PWebUtil.formatNumber(divideCheck(cpop65p,cpopallage,100,null,null,true),"_%",1);$("#cpoplt1_passaic_percent").html(cpoplt1_percent);$("#cpop1_passaic_percent").html(cpop1_percent);$("#cpop2_passaic_percent").html(cpop2_percent);$("#cpop3_passaic_percent").html(cpop3_percent);$("#cpop4_passaic_percent").html(cpop4_percent);$("#cpop0_4_passaic_percent").html(cpop0_4_percent);$("#cpop05_17_passaic_percent").html(cpop05_17_percent);$("#cpop18_64_passaic_percent").html(cpop18_64_percent);$("#cpop65p_passaic_percent").html(cpop65p_percent);$("#cpopallage_passaic_percent").html("N/A")});var cube4=new PCube(indsArr,[place_passaic_county],periods);cube4.loadValues(function(values){this.values=values;var cpoplt1=getSumOfPlaces(this,indsObj.cpoplt1,years.y2010);var cpop1=getSumOfPlaces(this,indsObj.cpop1,years.y2010);var cpop2=getSumOfPlaces(this,indsObj.cpop2,years.y2010);var cpop3=getSumOfPlaces(this,indsObj.cpop3,years.y2010);var cpop4=getSumOfPlaces(this,indsObj.cpop4,years.y2010);var cpopallage=getSumOfPlaces(this,indsObj.cpopallage,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop10_14=getSumOfPlaces(this,indsObj.cpop10_14,years.y2010);var cpop5_9=getSumOfPlaces(this,indsObj.cpop5_9,years.y2010);var cpop15_17=getSumOfPlaces(this,indsObj.cpop15_17,years.y2010);var cpop05_17=cpop10_14+cpop5_9+cpop15_17;var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010);var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var cpop18_64=cpop18_34+cpop35_64;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop65p=getSumOfPlaces(this,indsObj.cpop65p,years.y2010);var cpoplt1_percent=PWebUtil.formatNumber(divideCheck(cpoplt1,cpopallage,100,null,null,true),"_%",1);var cpop1_percent=PWebUtil.formatNumber(divideCheck(cpop1,cpopallage,100,null,null,true),"_%",1);var cpop2_percent=PWebUtil.formatNumber(divideCheck(cpop2,cpopallage,100,null,null,true),"_%",1);var cpop3_percent=PWebUtil.formatNumber(divideCheck(cpop3,cpopallage,100,null,null,true),"_%",1);var cpop4_percent=PWebUtil.formatNumber(divideCheck(cpop4,cpopallage,100,null,null,true),"_%",1);var cpop0_4_percent=PWebUtil.formatNumber(divideCheck(cpop0_4,cpopallage,100,null,null,true),"_%",1);var cpop05_17_percent=PWebUtil.formatNumber(divideCheck(cpop05_17,cpopallage,100,null,null,true),"_%",1);var cpop18_64_percent=PWebUtil.formatNumber(divideCheck(cpop18_64,cpopallage,100,null,null,true),"_%",1);var cpop65p_percent=PWebUtil.formatNumber(divideCheck(cpop65p,cpopallage,100,null,null,true),"_%",1);$("#cpoplt1_passaic_county_percent").html(cpoplt1_percent);$("#cpop1_passaic_county_percent").html(cpop1_percent);$("#cpop2_passaic_county_percent").html(cpop2_percent);$("#cpop3_passaic_county_percent").html(cpop3_percent);$("#cpop4_passaic_county_percent").html(cpop4_percent);$("#cpop0_4_passaic_county_percent").html(cpop0_4_percent);$("#cpop05_17_passaic_county_percent").html(cpop05_17_percent);$("#cpop18_64_passaic_county_percent").html(cpop18_64_percent);$("#cpop65p_passaic_county_percent").html(cpop65p_percent);$("#cpopallage_passaic_county_percent").html("N/A")});var arr=["Census"];var $src=PASSetSourceLinks(arr,"popage-section")})})}function PASLoadRace(aggObj,boundarea,comparisonLocations){var place_paterson_city=comparisonLocations[0];var place_passaic_city=comparisonLocations[1];var place_passaic_county=comparisonLocations[2];var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9869048;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cpopwh=new PIndicator(9869048);indsObj.cpopbk=new PIndicator(9868917);indsObj.cpopas=new PIndicator(9868922);indsObj.cpopnhpi=new PIndicator(9868883);indsObj.cpopaian=new PIndicator(9868954);indsObj.cpopoth=new PIndicator(9868998);indsObj.cpoptwop=new PIndicator(9869034);indsObj.cpophisp=new PIndicator(9868879);indsObj.cpopallrace=new PIndicator(9868881);indsObj.cpopalleth=new PIndicator(9868976);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cpopwh=getSumOfPlaces(this,indsObj.cpopwh,years.ACSPERIOD)||0;var cpopbk=getSumOfPlaces(this,indsObj.cpopbk,years.ACSPERIOD)||0;var cpopas=getSumOfPlaces(this,indsObj.cpopas,years.ACSPERIOD)||0;var cpopnhpi=getSumOfPlaces(this,indsObj.cpopnhpi,years.ACSPERIOD)||0;var cpopaian=getSumOfPlaces(this,indsObj.cpopaian,years.ACSPERIOD)||0;var cpopoth=getSumOfPlaces(this,indsObj.cpopoth,years.ACSPERIOD)||0;var cpoptwop=getSumOfPlaces(this,indsObj.cpoptwop,years.ACSPERIOD)||0;var cpophisp=getSumOfPlaces(this,indsObj.cpophisp,years.ACSPERIOD)||0;var cpopallrace=getSumOfPlaces(this,indsObj.cpopallrace,years.ACSPERIOD)||0;var cpopalleth=getSumOfPlaces(this,indsObj.cpopalleth,years.ACSPERIOD)||0;$("#cpopwh_place_num").html(PWebUtil.formatNumber(cpopwh));$("#cpopbk_place_num").html(PWebUtil.formatNumber(cpopbk));$("#cpopas_place_num").html(PWebUtil.formatNumber(cpopas));$("#cpopnhpi_place_num").html(PWebUtil.formatNumber(cpopnhpi));$("#cpopaian_place_num").html(PWebUtil.formatNumber(cpopaian));$("#cpopoth_place_num").html(PWebUtil.formatNumber(cpopoth));$("#cpoptwop_place_num").html(PWebUtil.formatNumber(cpoptwop));$("#cpophisp_place_num").html(PWebUtil.formatNumber(cpophisp));$("#cpopallrace_place_num").html(PWebUtil.formatNumber(cpopallrace));$("#cpopalleth_place_num").html(PWebUtil.formatNumber(cpopalleth));var cpopwh_percent=divideCheck(cpopwh,cpopallrace,100,null,null,true);var cpopbk_percent=divideCheck(cpopbk,cpopallrace,100,null,null,true);var cpopas_percent=divideCheck(cpopas,cpopallrace,100,null,null,true);var cpopnhpi_percent=divideCheck(cpopnhpi,cpopallrace,100,null,null,true);var cpopaian_percent=divideCheck(cpopaian,cpopallrace,100,null,null,true);var cpopoth_percent=divideCheck(cpopoth,cpopallrace,100,null,null,true);var cpoptwop_percent=divideCheck(cpoptwop,cpopallrace,100,null,null,true);var cpophisp_percent=divideCheck(cpophisp,cpopallrace,100,null,null,true);$("#cpopwh_place_percent").html(PWebUtil.formatNumber(cpopwh_percent,"_%"));$("#cpopbk_place_percent").html(PWebUtil.formatNumber(cpopbk_percent,"_%"));$("#cpopas_place_percent").html(PWebUtil.formatNumber(cpopas_percent,"_%"));$("#cpopnhpi_place_percent").html(PWebUtil.formatNumber(cpopnhpi_percent,"_%"));$("#cpopaian_place_percent").html(PWebUtil.formatNumber(cpopaian_percent,"_%"));$("#cpopoth_place_percent").html(PWebUtil.formatNumber(cpopoth_percent,"_%"));$("#cpoptwop_place_percent").html(PWebUtil.formatNumber(cpoptwop_percent,"_%"));$("#cpophisp_place_percent").html(PWebUtil.formatNumber(cpophisp_percent,"_%"));var cube2=new PCube(indsArr,[place_paterson_city],periods);cube2.loadValues(function(values){this.values=values;var cpopwh=getSumOfPlaces(this,indsObj.cpopwh,years.ACSPERIOD)||0;var cpopbk=getSumOfPlaces(this,indsObj.cpopbk,years.ACSPERIOD)||0;var cpopas=getSumOfPlaces(this,indsObj.cpopas,years.ACSPERIOD)||0;var cpopnhpi=getSumOfPlaces(this,indsObj.cpopnhpi,years.ACSPERIOD)||0;var cpopaian=getSumOfPlaces(this,indsObj.cpopaian,years.ACSPERIOD)||0;var cpopoth=getSumOfPlaces(this,indsObj.cpopoth,years.ACSPERIOD)||0;var cpoptwop=getSumOfPlaces(this,indsObj.cpoptwop,years.ACSPERIOD)||0;var cpophisp=getSumOfPlaces(this,indsObj.cpophisp,years.ACSPERIOD)||0;var cpopallrace=getSumOfPlaces(this,indsObj.cpopallrace,years.ACSPERIOD)||0;var cpopalleth=getSumOfPlaces(this,indsObj.cpopalleth,years.ACSPERIOD)||0;var cpopwh_percent=divideCheck(cpopwh,cpopallrace,100,null,null,true);var cpopbk_percent=divideCheck(cpopbk,cpopallrace,100,null,null,true);var cpopas_percent=divideCheck(cpopas,cpopallrace,100,null,null,true);var cpopnhpi_percent=divideCheck(cpopnhpi,cpopallrace,100,null,null,true);var cpopaian_percent=divideCheck(cpopaian,cpopallrace,100,null,null,true);var cpopoth_percent=divideCheck(cpopoth,cpopallrace,100,null,null,true);var cpoptwop_percent=divideCheck(cpoptwop,cpopallrace,100,null,null,true);var cpophisp_percent=divideCheck(cpophisp,cpopalleth,100,null,null,true);$("#cpopwh_paterson_percent").html(PWebUtil.formatNumber(cpopwh_percent,"_%"));$("#cpopbk_paterson_percent").html(PWebUtil.formatNumber(cpopbk_percent,"_%"));$("#cpopas_paterson_percent").html(PWebUtil.formatNumber(cpopas_percent,"_%"));$("#cpopnhpi_paterson_percent").html(PWebUtil.formatNumber(cpopnhpi_percent,"_%"));$("#cpopaian_paterson_percent").html(PWebUtil.formatNumber(cpopaian_percent,"_%"));$("#cpopoth_paterson_percent").html(PWebUtil.formatNumber(cpopoth_percent,"_%"));$("#cpoptwop_paterson_percent").html(PWebUtil.formatNumber(cpoptwop_percent,"_%"));$("#cpophisp_paterson_percent").html(PWebUtil.formatNumber(cpophisp_percent,"_%"))});var cube3=new PCube(indsArr,[place_passaic_city],periods);cube3.loadValues(function(values){this.values=values;var cpopwh=getSumOfPlaces(this,indsObj.cpopwh,years.ACSPERIOD)||0;var cpopbk=getSumOfPlaces(this,indsObj.cpopbk,years.ACSPERIOD)||0;var cpopas=getSumOfPlaces(this,indsObj.cpopas,years.ACSPERIOD)||0;var cpopnhpi=getSumOfPlaces(this,indsObj.cpopnhpi,years.ACSPERIOD)||0;var cpopaian=getSumOfPlaces(this,indsObj.cpopaian,years.ACSPERIOD)||0;var cpopoth=getSumOfPlaces(this,indsObj.cpopoth,years.ACSPERIOD)||0;var cpoptwop=getSumOfPlaces(this,indsObj.cpoptwop,years.ACSPERIOD)||0;var cpophisp=getSumOfPlaces(this,indsObj.cpophisp,years.ACSPERIOD)||0;var cpopallrace=getSumOfPlaces(this,indsObj.cpopallrace,years.ACSPERIOD)||0;var cpopalleth=getSumOfPlaces(this,indsObj.cpopalleth,years.ACSPERIOD)||0;var cpopwh_percent=divideCheck(cpopwh,cpopallrace,100,null,null,true);var cpopbk_percent=divideCheck(cpopbk,cpopallrace,100,null,null,true);var cpopas_percent=divideCheck(cpopas,cpopallrace,100,null,null,true);var cpopnhpi_percent=divideCheck(cpopnhpi,cpopallrace,100,null,null,true);var cpopaian_percent=divideCheck(cpopaian,cpopallrace,100,null,null,true);var cpopoth_percent=divideCheck(cpopoth,cpopallrace,100,null,null,true)
;var cpoptwop_percent=divideCheck(cpoptwop,cpopallrace,100,null,null,true);var cpophisp_percent=divideCheck(cpophisp,cpopalleth,100,null,null,true);$("#cpopwh_passaic_percent").html(PWebUtil.formatNumber(cpopwh_percent,"_%"));$("#cpopbk_passaic_percent").html(PWebUtil.formatNumber(cpopbk_percent,"_%"));$("#cpopas_passaic_percent").html(PWebUtil.formatNumber(cpopas_percent,"_%"));$("#cpopnhpi_passaic_percent").html(PWebUtil.formatNumber(cpopnhpi_percent,"_%"));$("#cpopaian_passaic_percent").html(PWebUtil.formatNumber(cpopaian_percent,"_%"));$("#cpopoth_passaic_percent").html(PWebUtil.formatNumber(cpopoth_percent,"_%"));$("#cpoptwop_passaic_percent").html(PWebUtil.formatNumber(cpoptwop_percent,"_%"));$("#cpophisp_passaic_percent").html(PWebUtil.formatNumber(cpophisp_percent,"_%"))});var cube4=new PCube(indsArr,[place_passaic_county],periods);cube4.loadValues(function(values){this.values=values;var cpopwh=getSumOfPlaces(this,indsObj.cpopwh,years.ACSPERIOD)||0;var cpopbk=getSumOfPlaces(this,indsObj.cpopbk,years.ACSPERIOD)||0;var cpopas=getSumOfPlaces(this,indsObj.cpopas,years.ACSPERIOD)||0;var cpopnhpi=getSumOfPlaces(this,indsObj.cpopnhpi,years.ACSPERIOD)||0;var cpopaian=getSumOfPlaces(this,indsObj.cpopaian,years.ACSPERIOD)||0;var cpopoth=getSumOfPlaces(this,indsObj.cpopoth,years.ACSPERIOD)||0;var cpoptwop=getSumOfPlaces(this,indsObj.cpoptwop,years.ACSPERIOD)||0;var cpophisp=getSumOfPlaces(this,indsObj.cpophisp,years.ACSPERIOD)||0;var cpopallrace=getSumOfPlaces(this,indsObj.cpopallrace,years.ACSPERIOD)||0;var cpopalleth=getSumOfPlaces(this,indsObj.cpopalleth,years.ACSPERIOD)||0;var cpopwh_percent=divideCheck(cpopwh,cpopallrace,100,null,null,true);var cpopbk_percent=divideCheck(cpopbk,cpopallrace,100,null,null,true);var cpopas_percent=divideCheck(cpopas,cpopallrace,100,null,null,true);var cpopnhpi_percent=divideCheck(cpopnhpi,cpopallrace,100,null,null,true);var cpopaian_percent=divideCheck(cpopaian,cpopallrace,100,null,null,true);var cpopoth_percent=divideCheck(cpopoth,cpopallrace,100,null,null,true);var cpoptwop_percent=divideCheck(cpoptwop,cpopallrace,100,null,null,true);var cpophisp_percent=divideCheck(cpophisp,cpopalleth,100,null,null,true);$("#cpopwh_passaic_county_percent").html(PWebUtil.formatNumber(cpopwh_percent,"_%"));$("#cpopbk_passaic_county_percent").html(PWebUtil.formatNumber(cpopbk_percent,"_%"));$("#cpopas_passaic_county_percent").html(PWebUtil.formatNumber(cpopas_percent,"_%"));$("#cpopnhpi_passaic_county_percent").html(PWebUtil.formatNumber(cpopnhpi_percent,"_%"));$("#cpopaian_passaic_county_percent").html(PWebUtil.formatNumber(cpopaian_percent,"_%"));$("#cpopoth_passaic_county_percent").html(PWebUtil.formatNumber(cpopoth_percent,"_%"));$("#cpoptwop_passaic_county_percent").html(PWebUtil.formatNumber(cpoptwop_percent,"_%"));$("#cpophisp_passaic_county_percent").html(PWebUtil.formatNumber(cpophisp_percent,"_%"));var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=PASSetSourceLinks(arr,"race-section")})})})}function PASLoadIncomeText(aggObj,boundarea,comparisonLocations){var place_paterson_city=comparisonLocations[0];var place_passaic_city=comparisonLocations[1];var place_passaic_county=comparisonLocations[2];var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9871831;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.mhhinc=new PIndicator(9871831);indsObj.mhhinc.nodata=-99999999;indsObj.mfaminc=new PIndicator(9871853);indsObj.mfaminc.nodata=-99999999;indsObj.cfam=new PIndicator(9868933);indsObj.chh=new PIndicator(9869078);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var areaCube=new PCube(indsArr,aggObj[2],periods);areaCube.loadValues(function(values){this.values=values;var cfam=getSumOfPlaces(this,indsObj.cfam,periods[0]);$("#income_text_cfam").html(PWebUtil.formatNumber(cfam));var chh=getSumOfPlaces(this,indsObj.chh,periods[0]);$("#income_text_chh").html(PWebUtil.formatNumber(chh));var patersonCube=new PCube(indsArr,[place_paterson_city],periods);patersonCube.loadValues(function(values){this.values=values;var arr=areaCube.getSortedValuesOfPlacesIgnoreNulls(indsObj.mhhinc,periods[0]);var mhhinc_range=getRangeString(arr[0],arr[arr.length-1],"$_").toLowerCase();$("#income_text_mhhinc_range").html(mhhinc_range)});var defid=boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.CENSUSTRACT.id,2);boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,defid,function(tracts){var tracts=tracts||[];var cube=new PCube(indsArr,tracts,periods);cube.loadValues(function(values){this.values=values;var arr=cube.getSortedValuesOfPlacesIgnoreNulls(indsObj.mfaminc,periods[0]);var mfaminc=getRangeString(arr[0],arr[arr.length-1],"$_").toLowerCase();$("#income_text_mfaminc").html(mfaminc)})});var defid=boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.BLOCKGROUP.id,2);place_paterson_city.getPlacesWithin(PPlaceType.BLOCKGROUP,null,defid,function(blockgroups){var cube=new PCube(indsArr,blockgroups,periods);cube.loadValues(function(values){this.values=values;var median_mhhinc_paterson=cube.getMedianOfPlacesIgnoreNulls(indsObj.mhhinc,periods[0]);$("#income_text_mhhinc_paterson_range").html(PWebUtil.formatNumber(median_mhhinc_paterson,"$_"))})});var defid=boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.CENSUSTRACT.id,2);place_paterson_city.getPlacesWithin(PPlaceType.CENSUSTRACT,null,defid,function(tracts){var tracts=tracts||[];var cube=new PCube(indsArr,tracts,periods);cube.loadValues(function(values){this.values=values;var median_mfaminc_paterson=cube.getMedianOfPlacesIgnoreNulls(indsObj.mfaminc,periods[0]);$("#income_text_mfaminc_city").html(PWebUtil.formatNumber(median_mfaminc_paterson,"$_"))})})})})}function PASLoadPopulationText(aggObj,boundarea,comparisonLocations){var periods=[2010];var years={y2010:periods[0]};var indid=9869069;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cpop=new PIndicator(9869069);indsObj.cpop0_4=new PIndicator(9868901);indsObj.cpop18_34=new PIndicator(9868870);indsObj.cpop35_64=new PIndicator(9906418);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cpop=getSumOfPlaces(this,indsObj.cpop,years.y2010);var cpop0_4=getSumOfPlaces(this,indsObj.cpop0_4,years.y2010);var cpop18_34=getSumOfPlaces(this,indsObj.cpop18_34,years.y2010);var cpop35_64=getSumOfPlaces(this,indsObj.cpop35_64,years.y2010);var population_working_age=cpop18_34+cpop35_64;$("#population_text_total_population").html(PWebUtil.formatNumber(cpop));$("#population_text_population_chilcare_age").html(PWebUtil.formatNumber(cpop0_4));$("#population_text_population_working_age").html(PWebUtil.formatNumber(population_working_age))})})}function PASLoadIncomePart1(aggObj,boundarea,comparisonLocations){var place_paterson_city=comparisonLocations[0];var place_passaic_city=comparisonLocations[1];var place_passaic_county=comparisonLocations[2];var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9938092;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cfamlt25=new PIndicator(9938092);indsObj.cfam25_35=new PIndicator(9938088);indsObj.cfam35_50=new PIndicator(9938089);indsObj.cfam50_75=new PIndicator(9938090);indsObj.cfam75_100=new PIndicator(9938091);indsObj.cfam100_125=new PIndicator(9938085);indsObj.cfam125_150=new PIndicator(9938086);indsObj.cfam150p=new PIndicator(9938087);indsObj.cfamallinc=new PIndicator(9871916);indsObj.chilt25=new PIndicator(9871803);indsObj.chi25_35=new PIndicator(9871920);indsObj.chi35_50=new PIndicator(9871806);indsObj.chi50_75=new PIndicator(9871923);indsObj.chi75_100=new PIndicator(9871914);indsObj.chi100_125=new PIndicator(9871957);indsObj.chi125_150=new PIndicator(9871938);indsObj.chi150p=new PIndicator(9871960);indsObj.chiall=new PIndicator(9871984);indsObj.mfaminc=new PIndicator(9871853);indsObj.mfaminc.nodata=-99999999;indsObj.mhhinc=new PIndicator(9871831);indsObj.mhhinc.nodata=-99999999;indsObj.cfam=new PIndicator(9868933);indsObj.chh=new PIndicator(9869078);indsObj.cfampov50p=new PIndicator(9938096);indsObj.cfamund5_all=new PIndicator(9938097);indsObj.cfampov=new PIndicator(9871986);indsObj.cfampov_lt200p=new PIndicator(9938094);indsObj.cfampov_lt300p=new PIndicator(9938095);indsObj.cfampov_gt300p=new PIndicator(9938093);indsObj.cfamund5pov=new PIndicator(9938098);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cfamlt25=getSumOfPlaces(this,indsObj.cfamlt25,years.ACSPERIOD)||0;var cfam25_35=getSumOfPlaces(this,indsObj.cfam25_35,years.ACSPERIOD)||0;var cfam35_50=getSumOfPlaces(this,indsObj.cfam35_50,years.ACSPERIOD)||0;var cfam50_75=getSumOfPlaces(this,indsObj.cfam50_75,years.ACSPERIOD)||0;var cfam75_100=getSumOfPlaces(this,indsObj.cfam75_100,years.ACSPERIOD)||0;var cfam100_125=getSumOfPlaces(this,indsObj.cfam100_125,years.ACSPERIOD)||0;var cfam125_150=getSumOfPlaces(this,indsObj.cfam125_150,years.ACSPERIOD)||0;var cfam150p=getSumOfPlaces(this,indsObj.cfam150p,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;$("#cfamlt25_place_num").html(cfamlt25);$("#cfam25_35_place_num").html(cfam25_35);$("#cfam35_50_place_num").html(cfam35_50);$("#cfam50_75_place_num").html(cfam50_75);$("#cfam75_100_place_num").html(cfam75_100);$("#cfam100_125_place_num").html(cfam100_125);$("#cfam125_150_place_num").html(cfam125_150);$("#cfam150p_place_num").html(cfam150p);var cfamlt25_percent=divideCheck(cfamlt25,cfamallinc,100,null,null,true);var cfam25_35_percent=divideCheck(cfam25_35,cfamallinc,100,null,null,true);var cfam35_50_percent=divideCheck(cfam35_50,cfamallinc,100,null,null,true);var cfam50_75_percent=divideCheck(cfam50_75,cfamallinc,100,null,null,true);var cfam75_100_percent=divideCheck(cfam75_100,cfamallinc,100,null,null,true);var cfam100_125_percent=divideCheck(cfam100_125,cfamallinc,100,null,null,true);var cfam125_150_percent=divideCheck(cfam125_150,cfamallinc,100,null,null,true);var cfam150p_percent=divideCheck(cfam150p,cfamallinc,100,null,null,true);$("#cfamlt25_place_percent").html(PWebUtil.formatNumber(cfamlt25_percent,"_%",1));$("#cfam25_35_place_percent").html(PWebUtil.formatNumber(cfam25_35_percent,"_%",1));$("#cfam35_50_place_percent").html(PWebUtil.formatNumber(cfam35_50_percent,"_%",1));$("#cfam50_75_place_percent").html(PWebUtil.formatNumber(cfam50_75_percent,"_%",1));$("#cfam75_100_place_percent").html(PWebUtil.formatNumber(cfam75_100_percent,"_%",1));$("#cfam100_125_place_percent").html(PWebUtil.formatNumber(cfam100_125_percent,"_%",1));$("#cfam125_150_place_percent").html(PWebUtil.formatNumber(cfam125_150_percent,"_%",1));$("#cfam150p_place_percent").html(PWebUtil.formatNumber(cfam150p_percent,"_%",1));var cube2=new PCube(indsArr,[place_paterson_city],periods);cube2.loadValues(function(values){this.values=values;var cfamlt25=getSumOfPlaces(this,indsObj.cfamlt25,years.ACSPERIOD)||0;var cfam25_35=getSumOfPlaces(this,indsObj.cfam25_35,years.ACSPERIOD)||0;var cfam35_50=getSumOfPlaces(this,indsObj.cfam35_50,years.ACSPERIOD)||0;var cfam50_75=getSumOfPlaces(this,indsObj.cfam50_75,years.ACSPERIOD)||0;var cfam75_100=getSumOfPlaces(this,indsObj.cfam75_100,years.ACSPERIOD)||0;var cfam100_125=getSumOfPlaces(this,indsObj.cfam100_125,years.ACSPERIOD)||0;var cfam125_150=getSumOfPlaces(this,indsObj.cfam125_150,years.ACSPERIOD)||0;var cfam150p=getSumOfPlaces(this,indsObj.cfam150p,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamlt25_percent=divideCheck(cfamlt25,cfamallinc,100,null,null,true);var cfam25_35_percent=divideCheck(cfam25_35,cfamallinc,100,null,null,true);var cfam35_50_percent=divideCheck(cfam35_50,cfamallinc,100,null,null,true);var cfam50_75_percent=divideCheck(cfam50_75,cfamallinc,100,null,null,true);var cfam75_100_percent=divideCheck(cfam75_100,cfamallinc,100,null,null,true);var cfam100_125_percent=divideCheck(cfam100_125,cfamallinc,100,null,null,true);var cfam125_150_percent=divideCheck(cfam125_150,cfamallinc,100,null,null,true);var cfam150p_percent=divideCheck(cfam150p,cfamallinc,100,null,null,true);$("#cfamlt25_paterson_percent").html(PWebUtil.formatNumber(cfamlt25_percent,"_%",1));$("#cfam25_35_paterson_percent").html(PWebUtil.formatNumber(cfam25_35_percent,"_%",1));$("#cfam35_50_paterson_percent").html(PWebUtil.formatNumber(cfam35_50_percent,"_%",1));$("#cfam50_75_paterson_percent").html(PWebUtil.formatNumber(cfam50_75_percent,"_%",1));$("#cfam75_100_paterson_percent").html(PWebUtil.formatNumber(cfam75_100_percent,"_%",1));$("#cfam100_125_paterson_percent").html(PWebUtil.formatNumber(cfam100_125_percent,"_%",1));$("#cfam125_150_paterson_percent").html(PWebUtil.formatNumber(cfam125_150_percent,"_%",1));$("#cfam150p_paterson_percent").html(PWebUtil.formatNumber(cfam150p_percent,"_%",1))});var cube3=new PCube(indsArr,[place_passaic_city],periods);cube3.loadValues(function(values){this.values=values;var cfamlt25=getSumOfPlaces(this,indsObj.cfamlt25,years.ACSPERIOD)||0;var cfam25_35=getSumOfPlaces(this,indsObj.cfam25_35,years.ACSPERIOD)||0;var cfam35_50=getSumOfPlaces(this,indsObj.cfam35_50,years.ACSPERIOD)||0;var cfam50_75=getSumOfPlaces(this,indsObj.cfam50_75,years.ACSPERIOD)||0;var cfam75_100=getSumOfPlaces(this,indsObj.cfam75_100,years.ACSPERIOD)||0;var cfam100_125=getSumOfPlaces(this,indsObj.cfam100_125,years.ACSPERIOD)||0;var cfam125_150=getSumOfPlaces(this,indsObj.cfam125_150,years.ACSPERIOD)||0;var cfam150p=getSumOfPlaces(this,indsObj.cfam150p,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamlt25_percent=divideCheck(cfamlt25,cfamallinc,100,null,null,true);var cfam25_35_percent=divideCheck(cfam25_35,cfamallinc,100,null,null,true);var cfam35_50_percent=divideCheck(cfam35_50,cfamallinc,100,null,null,true);var cfam50_75_percent=divideCheck(cfam50_75,cfamallinc,100,null,null,true);var cfam75_100_percent=divideCheck(cfam75_100,cfamallinc,100,null,null,true);var cfam100_125_percent=divideCheck(cfam100_125,cfamallinc,100,null,null,true);var cfam125_150_percent=divideCheck(cfam125_150,cfamallinc,100,null,null,true);var cfam150p_percent=divideCheck(cfam150p,cfamallinc,100,null,null,true);$("#cfamlt25_passaic_percent").html(PWebUtil.formatNumber(cfamlt25_percent,"_%",1));$("#cfam25_35_passaic_percent").html(PWebUtil.formatNumber(cfam25_35_percent,"_%",1));$("#cfam35_50_passaic_percent").html(PWebUtil.formatNumber(cfam35_50_percent,"_%",1));$("#cfam50_75_passaic_percent").html(PWebUtil.formatNumber(cfam50_75_percent,"_%",1));$("#cfam75_100_passaic_percent").html(PWebUtil.formatNumber(cfam75_100_percent,"_%",1));$("#cfam100_125_passaic_percent").html(PWebUtil.formatNumber(cfam100_125_percent,"_%",1));$("#cfam125_150_passaic_percent").html(PWebUtil.formatNumber(cfam125_150_percent,"_%",1));$("#cfam150p_passaic_percent").html(PWebUtil.formatNumber(cfam150p_percent,"_%",1))});var cube4=new PCube(indsArr,[place_passaic_county],periods);cube4.loadValues(function(values){this.values=values;var cfamlt25=getSumOfPlaces(this,indsObj.cfamlt25,years.ACSPERIOD)||0;var cfam25_35=getSumOfPlaces(this,indsObj.cfam25_35,years.ACSPERIOD)||0;var cfam35_50=getSumOfPlaces(this,indsObj.cfam35_50,years.ACSPERIOD)||0;var cfam50_75=getSumOfPlaces(this,indsObj.cfam50_75,years.ACSPERIOD)||0;var cfam75_100=getSumOfPlaces(this,indsObj.cfam75_100,years.ACSPERIOD)||0;var cfam100_125=getSumOfPlaces(this,indsObj.cfam100_125,years.ACSPERIOD)||0;var cfam125_150=getSumOfPlaces(this,indsObj.cfam125_150,years.ACSPERIOD)||0;var cfam150p=getSumOfPlaces(this,indsObj.cfam150p,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamlt25_percent=divideCheck(cfamlt25,cfamallinc,100,null,null,true);var cfam25_35_percent=divideCheck(cfam25_35,cfamallinc,100,null,null,true);var cfam35_50_percent=divideCheck(cfam35_50,cfamallinc,100,null,null,true);var cfam50_75_percent=divideCheck(cfam50_75,cfamallinc,100,null,null,true);var cfam75_100_percent=divideCheck(cfam75_100,cfamallinc,100,null,null,true);var cfam100_125_percent=divideCheck(cfam100_125,cfamallinc,100,null,null,true);var cfam125_150_percent=divideCheck(cfam125_150,cfamallinc,100,null,null,true);var cfam150p_percent=divideCheck(cfam150p,cfamallinc,100,null,null,true);$("#cfamlt25_passaic_county_percent").html(PWebUtil.formatNumber(cfamlt25_percent,"_%",1));$("#cfam25_35_passaic_county_percent").html(PWebUtil.formatNumber(cfam25_35_percent,"_%",1));$("#cfam35_50_passaic_county_percent").html(PWebUtil.formatNumber(cfam35_50_percent,"_%",1));$("#cfam50_75_passaic_county_percent").html(PWebUtil.formatNumber(cfam50_75_percent,"_%",1));$("#cfam75_100_passaic_county_percent").html(PWebUtil.formatNumber(cfam75_100_percent,"_%",1));$("#cfam100_125_passaic_county_percent").html(PWebUtil.formatNumber(cfam100_125_percent,"_%",1));$("#cfam125_150_passaic_county_percent").html(PWebUtil.formatNumber(cfam125_150_percent,"_%",1));$("#cfam150p_passaic_county_percent").html(PWebUtil.formatNumber(cfam150p_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=PASSetSourceLinks(arr,"income-section")})})}function PASLoadIncomePart2(aggObj,boundarea,comparisonLocations,tracts){var place_paterson_city=comparisonLocations[0];var place_passaic_city=comparisonLocations[1];var place_passaic_county=comparisonLocations[2];var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9938092;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cfampov50p=new PIndicator(9938096);indsObj.cfampov=new PIndicator(9871986);indsObj.cfampov_lt200p=new PIndicator(9938094);indsObj.cfampov_lt300p=new PIndicator(9938095);indsObj.cfampov_gt300p=new PIndicator(9938093);indsObj.cfamund5pov=new PIndicator(9938098);indsObj.cfamallinc=new PIndicator(9871916);indsObj.cfamund5_all=new PIndicator(9938097);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,tracts,periods);cube1.loadValues(function(values){this.values=values;var cfampov50p=getSumOfPlaces(this,indsObj.cfampov50p,years.ACSPERIOD)||0;var cfampov=getSumOfPlaces(this,indsObj.cfampov,years.ACSPERIOD)||0;var cfampov_lt200p=getSumOfPlaces(this,indsObj.cfampov_lt200p,years.ACSPERIOD)||0;var cfampov_lt300p=getSumOfPlaces(this,indsObj.cfampov_lt300p,years.ACSPERIOD)||0;var cfampov_gt300p=getSumOfPlaces(this,indsObj.cfampov_gt300p,years.ACSPERIOD)||0;var cfamund5pov=getSumOfPlaces(this,indsObj.cfamund5pov,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfamund5_all=getSumOfPlaces(this,indsObj.cfamund5_all,years.ACSPERIOD)||0;$("#cfampov50p_place_num").html(cfampov50p);$("#cfampov_place_num").html(cfampov);$("#cfampov_lt200p_place_num").html(cfampov_lt200p);$("#cfampov_lt300p_place_num").html(cfampov_lt300p);$("#cfampov_gt300p_place_num").html(cfampov_gt300p);$("#cfamund5pov_place_num").html(cfamund5pov);var cfampov50p_percent=divideCheck(cfampov50p,cfamallinc,100,null,null,true);var cfampov_percent=divideCheck(cfampov,cfamallinc,100,null,null,true);var cfampov_lt200p_percent=divideCheck(cfampov_lt200p,cfamallinc,100,null,null,true);var cfampov_lt300p_percent=divideCheck(cfampov_lt300p,cfamallinc,100,null,null,true);var cfampov_gt300p_percent=divideCheck(cfampov_gt300p,cfamallinc,100,null,null,true);var cfamund5pov_percent=divideCheck(cfamund5pov,cfamund5_all,100,null,null,true);$("#cfampov50p_place_percent").html(PWebUtil.formatNumber(cfampov50p_percent,"_%",1));$("#cfampov_place_percent").html(PWebUtil.formatNumber(cfampov_percent,"_%",1));$("#cfampov_lt200p_place_percent").html(PWebUtil.formatNumber(cfampov_lt200p_percent,"_%",1));$("#cfampov_lt300p_place_percent").html(PWebUtil.formatNumber(cfampov_lt300p_percent,"_%",1));$("#cfampov_gt300p_place_percent").html(PWebUtil.formatNumber(cfampov_gt300p_percent,"_%",1));$("#cfamund5pov_place_percent").html(PWebUtil.formatNumber(cfamund5pov_percent,"_%",1))});var overlap_pct=50;var defid=boundaryMatrix.getDefinitionIdForTypeId(PPlaceType.CENSUSTRACT.id,2);place_paterson_city.getPlacesWithin(PPlaceType.CENSUSTRACT,null,defid,function(tracts){var cube2=new PCube(indsArr,tracts,periods);cube2.loadValues(function(values){this.values=values;var cfampov50p=getSumOfPlaces(this,indsObj.cfampov50p,years.ACSPERIOD)||0;var cfampov=getSumOfPlaces(this,indsObj.cfampov,years.ACSPERIOD)||0;var cfampov_lt200p=getSumOfPlaces(this,indsObj.cfampov_lt200p,years.ACSPERIOD)||0;var cfampov_lt300p=getSumOfPlaces(this,indsObj.cfampov_lt300p,years.ACSPERIOD)||0;var cfampov_gt300p=getSumOfPlaces(this,indsObj.cfampov_gt300p,years.ACSPERIOD)||0;var cfamund5pov=getSumOfPlaces(this,indsObj.cfamund5pov,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfampov50p_percent=divideCheck(cfampov50p,cfamallinc,100,null,null,true);var cfampov_percent=divideCheck(cfampov,cfamallinc,100,null,null,true);var cfampov_lt200p_percent=divideCheck(cfampov_lt200p,cfamallinc,100,null,null,true);var cfampov_lt300p_percent=divideCheck(cfampov_lt300p,cfamallinc,100,null,null,true);var cfampov_gt300p_percent=divideCheck(cfampov_gt300p,cfamallinc,100,null,null,true);var cfamund5pov_percent=divideCheck(cfamund5pov,cfamallinc,100,null,null,true);$("#cfampov50p_paterson_percent").html(PWebUtil.formatNumber(cfampov50p_percent,"_%",1));$("#cfampov_paterson_percent").html(PWebUtil.formatNumber(cfampov_percent,"_%",1));$("#cfampov_lt200p_paterson_percent").html(PWebUtil.formatNumber(cfampov_lt200p_percent,"_%",1));$("#cfampov_lt300p_paterson_percent").html(PWebUtil.formatNumber(cfampov_lt300p_percent,"_%",1));$("#cfampov_gt300p_paterson_percent").html(PWebUtil.formatNumber(cfampov_gt300p_percent,"_%",1));$("#cfamund5pov_paterson_percent").html(PWebUtil.formatNumber(cfamund5pov_percent,"_%",1))})});place_passaic_city.getPlacesWithin(PPlaceType.CENSUSTRACT,null,defid,function(tracts){var cube2=new PCube(indsArr,tracts,periods);cube2.loadValues(function(values){this.values=values;var cfampov50p=getSumOfPlaces(this,indsObj.cfampov50p,years.ACSPERIOD)||0;var cfampov=getSumOfPlaces(this,indsObj.cfampov,years.ACSPERIOD)||0;var cfampov_lt200p=getSumOfPlaces(this,indsObj.cfampov_lt200p,years.ACSPERIOD)||0;var cfampov_lt300p=getSumOfPlaces(this,indsObj.cfampov_lt300p,years.ACSPERIOD)||0;var cfampov_gt300p=getSumOfPlaces(this,indsObj.cfampov_gt300p,years.ACSPERIOD)||0;var cfamund5pov=getSumOfPlaces(this,indsObj.cfamund5pov,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfampov50p_percent=divideCheck(cfampov50p,cfamallinc,100,null,null,true);var cfampov_percent=divideCheck(cfampov,cfamallinc,100,null,null,true);var cfampov_lt200p_percent=divideCheck(cfampov_lt200p,cfamallinc,100,null,null,true);var cfampov_lt300p_percent=divideCheck(cfampov_lt300p,cfamallinc,100,null,null,true);var cfampov_gt300p_percent=divideCheck(cfampov_gt300p,cfamallinc,100,null,null,true);var cfamund5pov_percent=divideCheck(cfamund5pov,cfamallinc,100,null,null,true);$("#cfampov50p_passaic_percent").html(PWebUtil.formatNumber(cfampov50p_percent,"_%",1));$("#cfampov_passaic_percent").html(PWebUtil.formatNumber(cfampov_percent,"_%",1));$("#cfampov_lt200p_passaic_percent").html(PWebUtil.formatNumber(cfampov_lt200p_percent,"_%",1));$("#cfampov_lt300p_passaic_percent").html(PWebUtil.formatNumber(cfampov_lt300p_percent,"_%",1));$("#cfampov_gt300p_passaic_percent").html(PWebUtil.formatNumber(cfampov_gt300p_percent,"_%",1));$("#cfamund5pov_passaic_percent").html(PWebUtil.formatNumber(cfamund5pov_percent,"_%",1))})});place_passaic_county.getPlacesWithin(PPlaceType.CENSUSTRACT,null,defid,function(tracts){var cube2=new PCube(indsArr,tracts,periods);cube2.loadValues(function(values){this.values=values;var cfampov50p=getSumOfPlaces(this,indsObj.cfampov50p,years.ACSPERIOD)||0;var cfampov=getSumOfPlaces(this,indsObj.cfampov,years.ACSPERIOD)||0;var cfampov_lt200p=getSumOfPlaces(this,indsObj.cfampov_lt200p,years.ACSPERIOD)||0;var cfampov_lt300p=getSumOfPlaces(this,indsObj.cfampov_lt300p,years.ACSPERIOD)||0;var cfampov_gt300p=getSumOfPlaces(this,indsObj.cfampov_gt300p,years.ACSPERIOD)||0;var cfamund5pov=getSumOfPlaces(this,indsObj.cfamund5pov,years.ACSPERIOD)||0;var cfamallinc=getSumOfPlaces(this,indsObj.cfamallinc,years.ACSPERIOD)||0;var cfampov50p_percent=divideCheck(cfampov50p,cfamallinc,100,null,null,true);var cfampov_percent=divideCheck(cfampov,cfamallinc,100,null,null,true);var cfampov_lt200p_percent=divideCheck(cfampov_lt200p,cfamallinc,100,null,null,true);var cfampov_lt300p_percent=divideCheck(cfampov_lt300p,cfamallinc,100,null,null,true);var cfampov_gt300p_percent=divideCheck(cfampov_gt300p,cfamallinc,100,null,null,true);var cfamund5pov_percent=divideCheck(cfamund5pov,cfamallinc,100,null,null,true);$("#cfampov50p_passaic_county_percent").html(PWebUtil.formatNumber(cfampov50p_percent,"_%",1));$("#cfampov_passaic_county_percent").html(PWebUtil.formatNumber(cfampov_percent,"_%",1));$("#cfampov_lt200p_passaic_county_percent").html(PWebUtil.formatNumber(cfampov_lt200p_percent,"_%",1));$("#cfampov_lt300p_passaic_county_percent").html(PWebUtil.formatNumber(cfampov_lt300p_percent,"_%",1));$("#cfampov_gt300p_passaic_county_percent").html(PWebUtil.formatNumber(cfampov_gt300p_percent,"_%",1));$("#cfamund5pov_passaic_county_percent").html(PWebUtil.formatNumber(cfamund5pov_percent,"_%",1))})})})}function PASSetSourceLinks(arr,id){var links=[];for(var i=0;i<arr.length;i++){var a="<a class='link' href='http://passaiccountychildcare.policymap.com/files/PassaicPaterson_ChildcareMapDataDirectory.pdf' target='new'>"+arr[i]+"</a>";links.push(a)}if(links.length>0){links=links.join("; ")}var $src=$("<div>",{class:"source"});$src.html("Source: "+links);$("#"+id).append($src)}function PASLoadHouseholdStatus(aggObj,boundarea,comparisonLocations){var place_paterson_city=comparisonLocations[0];var place_passaic_city=comparisonLocations[1];var place_passaic_county=comparisonLocations[2];var periods=[2010];var years={y2010:periods[0]};var indid=9937862;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.chh_noch=new PIndicator(9868874);indsObj.chh_mcwc=new PIndicator(9868990);indsObj.chh_shwc=new PIndicator(9869028);indsObj.chh_fhnhwc=new PIndicator(9869005);indsObj.chh_alltype=new PIndicator(9868988);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var chh_noch=getSumOfPlaces(this,indsObj.chh_noch,years.ACSPERIOD);var chh_mcwc=getSumOfPlaces(this,indsObj.chh_mcwc,years.ACSPERIOD);var chh_shwc=getSumOfPlaces(this,indsObj.chh_shwc,years.ACSPERIOD);var chh_fhnhwc=getSumOfPlaces(this,indsObj.chh_fhnhwc,years.ACSPERIOD);var chh_alltype=getSumOfPlaces(this,indsObj.chh_alltype,years.ACSPERIOD);$("#chh_noch_place_num").html(PWebUtil.formatNumber(chh_noch));$("#chh_mcwc_place_num").html(PWebUtil.formatNumber(chh_mcwc));$("#chh_shwc_place_num").html(PWebUtil.formatNumber(chh_shwc));$("#chh_fhnhwc_place_num").html(PWebUtil.formatNumber(chh_fhnhwc));var chh_noch_percent=divideCheck(chh_noch,chh_alltype,100,null,null,true);var chh_mcwc_percent=divideCheck(chh_mcwc,chh_alltype,100,null,null,true);var chh_shwc_percent=divideCheck(chh_shwc,chh_alltype,100,null,null,true);var chh_fhnhwc_percent=divideCheck(chh_fhnhwc,chh_alltype,100,null,null,true);$("#chh_noch_place_percent").html(PWebUtil.formatNumber(chh_noch_percent,"_%",1));$("#chh_mcwc_place_percent").html(PWebUtil.formatNumber(chh_mcwc_percent,"_%",1));$("#chh_shwc_place_percent").html(PWebUtil.formatNumber(chh_shwc_percent,"_%",1));$("#chh_fhnhwc_place_percent").html(PWebUtil.formatNumber(chh_fhnhwc_percent,"_%",1));var cube2=new PCube(indsArr,[place_paterson_city],periods);cube2.loadValues(function(values){this.values=values;var chh_noch=getSumOfPlaces(this,indsObj.chh_noch,years.ACSPERIOD);var chh_mcwc=getSumOfPlaces(this,indsObj.chh_mcwc,years.ACSPERIOD);var chh_shwc=getSumOfPlaces(this,indsObj.chh_shwc,years.ACSPERIOD);var chh_fhnhwc=getSumOfPlaces(this,indsObj.chh_fhnhwc,years.ACSPERIOD);var chh_alltype=getSumOfPlaces(this,indsObj.chh_alltype,years.ACSPERIOD);var chh_noch_percent=divideCheck(chh_noch,chh_alltype,100,null,null,true);var chh_mcwc_percent=divideCheck(chh_mcwc,chh_alltype,100,null,null,true);var chh_shwc_percent=divideCheck(chh_shwc,chh_alltype,100,null,null,true);var chh_fhnhwc_percent=divideCheck(chh_fhnhwc,chh_alltype,100,null,null,true);$("#chh_noch_paterson_percent").html(PWebUtil.formatNumber(chh_noch_percent,"_%",1));$("#chh_mcwc_paterson_percent").html(PWebUtil.formatNumber(chh_mcwc_percent,"_%",1));$("#chh_shwc_paterson_percent").html(PWebUtil.formatNumber(chh_shwc_percent,"_%",1));$("#chh_fhnhwc_paterson_percent").html(PWebUtil.formatNumber(chh_fhnhwc_percent,"_%",1))});var cube3=new PCube(indsArr,[place_passaic_city],periods);cube3.loadValues(function(values){this.values=values;var chh_noch=getSumOfPlaces(this,indsObj.chh_noch,years.ACSPERIOD);var chh_mcwc=getSumOfPlaces(this,indsObj.chh_mcwc,years.ACSPERIOD);var chh_shwc=getSumOfPlaces(this,indsObj.chh_shwc,years.ACSPERIOD);var chh_fhnhwc=getSumOfPlaces(this,indsObj.chh_fhnhwc,years.ACSPERIOD);var chh_alltype=getSumOfPlaces(this,indsObj.chh_alltype,years.ACSPERIOD);var chh_noch_percent=divideCheck(chh_noch,chh_alltype,100,null,null,true);var chh_mcwc_percent=divideCheck(chh_mcwc,chh_alltype,100,null,null,true);var chh_shwc_percent=divideCheck(chh_shwc,chh_alltype,100,null,null,true);var chh_fhnhwc_percent=divideCheck(chh_fhnhwc,chh_alltype,100,null,null,true);$("#chh_noch_passaic_percent").html(PWebUtil.formatNumber(chh_noch_percent,"_%",1));$("#chh_mcwc_passaic_percent").html(PWebUtil.formatNumber(chh_mcwc_percent,"_%",1));$("#chh_shwc_passaic_percent").html(PWebUtil.formatNumber(chh_shwc_percent,"_%",1));$("#chh_fhnhwc_passaic_percent").html(PWebUtil.formatNumber(chh_fhnhwc_percent,"_%",1))});var cube4=new PCube(indsArr,[place_passaic_county],periods);cube4.loadValues(function(values){this.values=values;var chh_noch=getSumOfPlaces(this,indsObj.chh_noch,years.ACSPERIOD);var chh_mcwc=getSumOfPlaces(this,indsObj.chh_mcwc,years.ACSPERIOD);var chh_shwc=getSumOfPlaces(this,indsObj.chh_shwc,years.ACSPERIOD);var chh_fhnhwc=getSumOfPlaces(this,indsObj.chh_fhnhwc,years.ACSPERIOD);var chh_alltype=getSumOfPlaces(this,indsObj.chh_alltype,years.ACSPERIOD);var chh_noch_percent=divideCheck(chh_noch,chh_alltype,100,null,null,true);var chh_mcwc_percent=divideCheck(chh_mcwc,chh_alltype,100,null,null,true);var chh_shwc_percent=divideCheck(chh_shwc,chh_alltype,100,null,null,true);var chh_fhnhwc_percent=divideCheck(chh_fhnhwc,chh_alltype,100,null,null,true);$("#chh_noch_passaic_county_percent").html(PWebUtil.formatNumber(chh_noch_percent,"_%",1));$("#chh_mcwc_passaic_county_percent").html(PWebUtil.formatNumber(chh_mcwc_percent,"_%",1));$("#chh_shwc_passaic_county_percent").html(PWebUtil.formatNumber(chh_shwc_percent,"_%",1));$("#chh_fhnhwc_passaic_county_percent").html(PWebUtil.formatNumber(chh_fhnhwc_percent,"_%",1))});var arr=["Census, 2010"];var $src=PASSetSourceLinks(arr,"household-section")})})}function PASLoadSchoolEnrollment(aggObj,boundarea,comparisonLocations){var place_paterson_city=comparisonLocations[0];var place_passaic_city=comparisonLocations[1];var place_passaic_county=comparisonLocations[2];var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9873905;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.ck12pub=new PIndicator(9873905);indsObj.ck12priv=new PIndicator(9873910);indsObj.ck12all=new PIndicator(9873922);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var ck12pub=getSumOfPlaces(this,indsObj.ck12pub,years.ACSPERIOD);var ck12priv=getSumOfPlaces(this,indsObj.ck12priv,years.ACSPERIOD)
;var ck12all=getSumOfPlaces(this,indsObj.ck12all,years.ACSPERIOD);var ck12pub_percent=divideCheck(ck12pub,ck12all,100,null,null,true);var ck12priv_percent=divideCheck(ck12priv,ck12all,100,null,null,true);$("#ck12pub_place_percent").html(PWebUtil.formatNumber(ck12pub_percent,"_%",1));$("#ck12priv_place_percent").html(PWebUtil.formatNumber(ck12priv_percent,"_%",1));var cube2=new PCube(indsArr,[place_paterson_city],periods);cube2.loadValues(function(values){this.values=values;var ck12pub=getSumOfPlaces(this,indsObj.ck12pub,years.ACSPERIOD);var ck12priv=getSumOfPlaces(this,indsObj.ck12priv,years.ACSPERIOD);var ck12all=getSumOfPlaces(this,indsObj.ck12all,years.ACSPERIOD);var ck12pub_percent=divideCheck(ck12pub,ck12all,100,null,null,true);var ck12priv_percent=divideCheck(ck12priv,ck12all,100,null,null,true);$("#ck12pub_paterson_percent").html(PWebUtil.formatNumber(ck12pub_percent,"_%",1));$("#ck12priv_paterson_percent").html(PWebUtil.formatNumber(ck12priv_percent,"_%",1))});var cube3=new PCube(indsArr,[place_passaic_city],periods);cube3.loadValues(function(values){this.values=values;var ck12pub=getSumOfPlaces(this,indsObj.ck12pub,years.ACSPERIOD);var ck12priv=getSumOfPlaces(this,indsObj.ck12priv,years.ACSPERIOD);var ck12all=getSumOfPlaces(this,indsObj.ck12all,years.ACSPERIOD);var ck12pub_percent=divideCheck(ck12pub,ck12all,100,null,null,true);var ck12priv_percent=divideCheck(ck12priv,ck12all,100,null,null,true);$("#ck12pub_passaic_percent").html(PWebUtil.formatNumber(ck12pub_percent,"_%",1));$("#ck12priv_passaic_percent").html(PWebUtil.formatNumber(ck12priv_percent,"_%",1))});var cube4=new PCube(indsArr,[place_passaic_county],periods);cube4.loadValues(function(values){this.values=values;var ck12pub=getSumOfPlaces(this,indsObj.ck12pub,years.ACSPERIOD);var ck12priv=getSumOfPlaces(this,indsObj.ck12priv,years.ACSPERIOD);var ck12all=getSumOfPlaces(this,indsObj.ck12all,years.ACSPERIOD);var ck12pub_percent=divideCheck(ck12pub,ck12all,100,null,null,true);var ck12priv_percent=divideCheck(ck12priv,ck12all,100,null,null,true);$("#ck12pub_passaic_county_percent").html(PWebUtil.formatNumber(ck12pub_percent,"_%",1));$("#ck12priv_passaic_county_percent").html(PWebUtil.formatNumber(ck12priv_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=PASSetSourceLinks(arr,"school-section")})})}function PASLoadJobsEconomy(aggObj,boundarea,comparisonLocations){var place_paterson_city=comparisonLocations[0];var place_passaic_city=comparisonLocations[1];var place_passaic_county=comparisonLocations[2];var periods=[2015];var years={y2015:periods[0]};var indid=9873905;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.cr_primjobs_earnlow=new PIndicator(9911313);indsObj.cr_primjobs_earnmed=new PIndicator(9911341);indsObj.cr_primjobs_all=new PIndicator(9911309);indsObj.cw_primjobs_earnlow=new PIndicator(9911392);indsObj.cw_primjobs_earnmed=new PIndicator(9911408);indsObj.cw_primjobs_all=new PIndicator(9911366);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cr_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnlow,years.y2015);var cr_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnmed,years.y2015);var cr_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_all,years.y2015);var cw_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnlow,years.y2015);var cw_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnmed,years.y2015);var cw_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_all,years.y2015);$("#cr_primjobs_earnlow_place_num").html(PWebUtil.formatNumber(cr_primjobs_earnlow));$("#cr_primjobs_earnmed_place_num").html(PWebUtil.formatNumber(cr_primjobs_earnmed));$("#cw_primjobs_earnlow_place_num").html(PWebUtil.formatNumber(cw_primjobs_earnlow));$("#cw_primjobs_earnmed_place_num").html(PWebUtil.formatNumber(cw_primjobs_earnmed));var cr_primjobs_earnlow_percent=divideCheck(cr_primjobs_earnlow,cr_primjobs_all,100,null,null,true);var cr_primjobs_earnmed_percent=divideCheck(cr_primjobs_earnmed,cr_primjobs_all,100,null,null,true);var cw_primjobs_earnlow_percent=divideCheck(cw_primjobs_earnlow,cw_primjobs_all,100,null,null,true);var cw_primjobs_earnmed_percent=divideCheck(cw_primjobs_earnmed,cw_primjobs_all,100,null,null,true);$("#cr_primjobs_earnlow_place_percent").html(PWebUtil.formatNumber(cr_primjobs_earnlow_percent,"_%",1));$("#cr_primjobs_earnmed_place_percent").html(PWebUtil.formatNumber(cr_primjobs_earnmed_percent,"_%",1));$("#cw_primjobs_earnlow_place_percent").html(PWebUtil.formatNumber(cw_primjobs_earnlow_percent,"_%",1));$("#cw_primjobs_earnmed_place_percent").html(PWebUtil.formatNumber(cw_primjobs_earnmed_percent,"_%",1));var cube2=new PCube(indsArr,[place_paterson_city],periods);cube2.loadValues(function(values){this.values=values;var cr_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnlow,years.y2015);var cr_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_earnmed,years.y2015);var cr_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cr_primjobs_all,years.y2015);var cw_primjobs_earnlow=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnlow,years.y2015);var cw_primjobs_earnmed=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_earnmed,years.y2015);var cw_primjobs_all=getSumOfPlacesIgnoreNulls(this,indsObj.cw_primjobs_all,years.y2015);var cr_primjobs_earnlow_percent=divideCheck(cr_primjobs_earnlow,cr_primjobs_all,100,null,null,true);var cr_primjobs_earnmed_percent=divideCheck(cr_primjobs_earnmed,cr_primjobs_all,100,null,null,true);var cw_primjobs_earnlow_percent=divideCheck(cw_primjobs_earnlow,cw_primjobs_all,100,null,null,true);var cw_primjobs_earnmed_percent=divideCheck(cw_primjobs_earnmed,cw_primjobs_all,100,null,null,true);$("#cr_primjobs_earnlow_paterson_percent").html(PWebUtil.formatNumber(cr_primjobs_earnlow_percent,"_%",1));$("#cr_primjobs_earnmed_paterson_percent").html(PWebUtil.formatNumber(cr_primjobs_earnmed_percent,"_%",1));$("#cw_primjobs_earnlow_paterson_percent").html(PWebUtil.formatNumber(cw_primjobs_earnlow_percent,"_%",1));$("#cw_primjobs_earnmed_paterson_percent").html(PWebUtil.formatNumber(cw_primjobs_earnmed_percent,"_%",1))});var arr=["LEHD ( "+periods[0]+" )"];var $src=PASSetSourceLinks(arr,"jobs-section")})})}function PASLoadTransportation(aggObj,boundarea,comparisonLocations){var place_paterson_city=comparisonLocations[0];var place_passaic_city=comparisonLocations[1];var place_passaic_county=comparisonLocations[2];var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9873787;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.ctranpt=new PIndicator(9873787);indsObj.chunomv=new PIndicator(9873783);indsObj.ctranall=new PIndicator(9873825);indsObj.chhmiall=new PIndicator(9873833);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var ctranpt=getSumOfPlacesIgnoreNulls(this,indsObj.ctranpt,years.ACSPERIOD);var chunomv=getSumOfPlacesIgnoreNulls(this,indsObj.chunomv,years.ACSPERIOD);var ctranall=getSumOfPlacesIgnoreNulls(this,indsObj.ctranall,years.ACSPERIOD);var chhmiall=getSumOfPlacesIgnoreNulls(this,indsObj.chhmiall,years.ACSPERIOD);$("#ctranpt_place_num").html(PWebUtil.formatNumber(ctranpt));$("#chunomv_place_num").html(PWebUtil.formatNumber(chunomv));var ctranpt_percent=divideCheck(ctranpt,ctranall,100,null,null,true);var chunomv_percent=divideCheck(chunomv,chhmiall,100,null,null,true);$("#ctranpt_place_percent").html(PWebUtil.formatNumber(ctranpt_percent,"_%",1));$("#chunomv_place_percent").html(PWebUtil.formatNumber(chunomv_percent,"_%",1))});var cubePaterson=new PCube(indsArr,[place_paterson_city],periods);cubePaterson.loadValues(function(values){this.values=values;var ctranpt=getSumOfPlacesIgnoreNulls(this,indsObj.ctranpt,years.ACSPERIOD);var chunomv=getSumOfPlacesIgnoreNulls(this,indsObj.chunomv,years.ACSPERIOD);var ctranall=getSumOfPlacesIgnoreNulls(this,indsObj.ctranall,years.ACSPERIOD);var chhmiall=getSumOfPlacesIgnoreNulls(this,indsObj.chhmiall,years.ACSPERIOD);var ctranpt_percent=divideCheck(ctranpt,ctranall,100,null,null,true);var chunomv_percent=divideCheck(chunomv,chhmiall,100,null,null,true);$("#ctranpt_paterson_percent").html(PWebUtil.formatNumber(ctranpt_percent,"_%",1));$("#chunomv_paterson_percent").html(PWebUtil.formatNumber(chunomv_percent,"_%",1))});var cubePassaic=new PCube(indsArr,[place_passaic_city],periods);cubePassaic.loadValues(function(values){this.values=values;var ctranpt=getSumOfPlacesIgnoreNulls(this,indsObj.ctranpt,years.ACSPERIOD);var chunomv=getSumOfPlacesIgnoreNulls(this,indsObj.chunomv,years.ACSPERIOD);var ctranall=getSumOfPlacesIgnoreNulls(this,indsObj.ctranall,years.ACSPERIOD);var chhmiall=getSumOfPlacesIgnoreNulls(this,indsObj.chhmiall,years.ACSPERIOD);var ctranpt_percent=divideCheck(ctranpt,ctranall,100,null,null,true);var chunomv_percent=divideCheck(chunomv,chhmiall,100,null,null,true);$("#ctranpt_passaic_percent").html(PWebUtil.formatNumber(ctranpt_percent,"_%",1));$("#chunomv_passaic_percent").html(PWebUtil.formatNumber(chunomv_percent,"_%",1))});var cubePassaicCounty=new PCube(indsArr,[place_passaic_county],periods);cubePassaicCounty.loadValues(function(values){this.values=values;var ctranpt=getSumOfPlacesIgnoreNulls(this,indsObj.ctranpt,years.ACSPERIOD);var chunomv=getSumOfPlacesIgnoreNulls(this,indsObj.chunomv,years.ACSPERIOD);var ctranall=getSumOfPlacesIgnoreNulls(this,indsObj.ctranall,years.ACSPERIOD);var chhmiall=getSumOfPlacesIgnoreNulls(this,indsObj.chhmiall,years.ACSPERIOD);var ctranpt_percent=divideCheck(ctranpt,ctranall,100,null,null,true);var chunomv_percent=divideCheck(chunomv,chhmiall,100,null,null,true);$("#ctranpt_passaic_county_percent").html(PWebUtil.formatNumber(ctranpt_percent,"_%",1));$("#chunomv_passaic_county_percent").html(PWebUtil.formatNumber(chunomv_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=PASSetSourceLinks(arr,"transportation-section")})}function PASLoadEducationAttainment(aggObj,boundarea,comparisonLocations){var place_paterson_city=comparisonLocations[0];var place_passaic_city=comparisonLocations[1];var place_passaic_county=comparisonLocations[2];var periods=[P.constants.latestACSPeriod];var years={ACSPERIOD:periods[0]};var indid=9873900;PIndicatorLoader.load([indid],function(inds){var indsObj={};indsObj.clt9th=new PIndicator(9873900);indsObj.csmhsnodip=new PIndicator(9873915);indsObj.chs=new PIndicator(9873934);indsObj.csmcolass=new PIndicator(9873912);indsObj.cbach=new PIndicator(9873914);indsObj.ceduall=new PIndicator(9873929);var indsArr=[];for(var i in indsObj){indsArr.push(indsObj[i])}var cube1=new PCube(indsArr,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var clt9th=getSumOfPlaces(this,indsObj.clt9th,years.ACSPERIOD);var csmhsnodip=getSumOfPlaces(this,indsObj.csmhsnodip,years.ACSPERIOD);var clt9th_plus_csmhsnodip=clt9th+csmhsnodip;var chs=getSumOfPlaces(this,indsObj.chs,years.ACSPERIOD);var csmcolass=getSumOfPlaces(this,indsObj.csmcolass,years.ACSPERIOD);var cbach=getSumOfPlaces(this,indsObj.cbach,years.ACSPERIOD);var ceduall=getSumOfPlaces(this,indsObj.ceduall,years.ACSPERIOD);$("#clt9th_plus_csmhsnodip_place_num").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip));$("#chs_place_num").html(PWebUtil.formatNumber(chs));$("#csmcolass_place_num").html(PWebUtil.formatNumber(csmcolass));$("#cbach_place_num").html(PWebUtil.formatNumber(cbach));$("#ceduall_place_num").html(PWebUtil.formatNumber(ceduall));var clt9th_plus_csmhsnodip_percent=divideCheck(clt9th_plus_csmhsnodip,ceduall,100,null,null,true);var chs_percent=divideCheck(chs,ceduall,100,null,null,true);var csmcolass_percent=divideCheck(csmcolass,ceduall,100,null,null,true);var cbach_percent=divideCheck(cbach,ceduall,100,null,null,true);var ceduall_percent=divideCheck(ceduall,ceduall,100,null,null,true);$("#clt9th_plus_csmhsnodip_place_percent").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip_percent,"_%",1));$("#chs_place_percent").html(PWebUtil.formatNumber(chs_percent,"_%",1));$("#csmcolass_place_percent").html(PWebUtil.formatNumber(csmcolass_percent,"_%",1));$("#cbach_place_percent").html(PWebUtil.formatNumber(cbach_percent,"_%",1));$("#ceduall_place_percent").html(PWebUtil.formatNumber(ceduall_percent,"_%",1))});var cubePaterson=new PCube(indsArr,[place_paterson_city],periods);cubePaterson.loadValues(function(values){this.values=values;var clt9th=getSumOfPlaces(this,indsObj.clt9th,years.ACSPERIOD);var csmhsnodip=getSumOfPlaces(this,indsObj.csmhsnodip,years.ACSPERIOD);var clt9th_plus_csmhsnodip=clt9th+csmhsnodip;var chs=getSumOfPlaces(this,indsObj.chs,years.ACSPERIOD);var csmcolass=getSumOfPlaces(this,indsObj.csmcolass,years.ACSPERIOD);var cbach=getSumOfPlaces(this,indsObj.cbach,years.ACSPERIOD);var ceduall=getSumOfPlaces(this,indsObj.ceduall,years.ACSPERIOD);var clt9th_plus_csmhsnodip_percent=divideCheck(clt9th_plus_csmhsnodip,ceduall,100,null,null,true);var chs_percent=divideCheck(chs,ceduall,100,null,null,true);var csmcolass_percent=divideCheck(csmcolass,ceduall,100,null,null,true);var cbach_percent=divideCheck(cbach,ceduall,100,null,null,true);var ceduall_percent=divideCheck(ceduall,ceduall,100,null,null,true);$("#clt9th_plus_csmhsnodip_paterson_percent").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip_percent,"_%",1));$("#chs_paterson_percent").html(PWebUtil.formatNumber(chs_percent,"_%",1));$("#csmcolass_paterson_percent").html(PWebUtil.formatNumber(csmcolass_percent,"_%",1));$("#cbach_paterson_percent").html(PWebUtil.formatNumber(cbach_percent,"_%",1));$("#ceduall_paterson_percent").html(PWebUtil.formatNumber(ceduall_percent,"_%",1))});var cubePassaic=new PCube(indsArr,[place_passaic_city],periods);cubePassaic.loadValues(function(values){this.values=values;var clt9th=getSumOfPlaces(this,indsObj.clt9th,years.ACSPERIOD);var csmhsnodip=getSumOfPlaces(this,indsObj.csmhsnodip,years.ACSPERIOD);var clt9th_plus_csmhsnodip=clt9th+csmhsnodip;var chs=getSumOfPlaces(this,indsObj.chs,years.ACSPERIOD);var csmcolass=getSumOfPlaces(this,indsObj.csmcolass,years.ACSPERIOD);var cbach=getSumOfPlaces(this,indsObj.cbach,years.ACSPERIOD);var ceduall=getSumOfPlaces(this,indsObj.ceduall,years.ACSPERIOD);var clt9th_plus_csmhsnodip_percent=divideCheck(clt9th_plus_csmhsnodip,ceduall,100,null,null,true);var chs_percent=divideCheck(chs,ceduall,100,null,null,true);var csmcolass_percent=divideCheck(csmcolass,ceduall,100,null,null,true);var cbach_percent=divideCheck(cbach,ceduall,100,null,null,true);var ceduall_percent=divideCheck(ceduall,ceduall,100,null,null,true);$("#clt9th_plus_csmhsnodip_passaic_percent").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip_percent,"_%",1));$("#chs_passaic_percent").html(PWebUtil.formatNumber(chs_percent,"_%",1));$("#csmcolass_passaic_percent").html(PWebUtil.formatNumber(csmcolass_percent,"_%",1));$("#cbach_passaic_percent").html(PWebUtil.formatNumber(cbach_percent,"_%",1));$("#ceduall_passaic_percent").html(PWebUtil.formatNumber(ceduall_percent,"_%",1))});var cubePassaicCounty=new PCube(indsArr,[place_passaic_county],periods);cubePassaicCounty.loadValues(function(values){this.values=values;var clt9th=getSumOfPlaces(this,indsObj.clt9th,years.ACSPERIOD);var csmhsnodip=getSumOfPlaces(this,indsObj.csmhsnodip,years.ACSPERIOD);var clt9th_plus_csmhsnodip=clt9th+csmhsnodip;var chs=getSumOfPlaces(this,indsObj.chs,years.ACSPERIOD);var csmcolass=getSumOfPlaces(this,indsObj.csmcolass,years.ACSPERIOD);var cbach=getSumOfPlaces(this,indsObj.cbach,years.ACSPERIOD);var ceduall=getSumOfPlaces(this,indsObj.ceduall,years.ACSPERIOD);var clt9th_plus_csmhsnodip_percent=divideCheck(clt9th_plus_csmhsnodip,ceduall,100,null,null,true);var chs_percent=divideCheck(chs,ceduall,100,null,null,true);var csmcolass_percent=divideCheck(csmcolass,ceduall,100,null,null,true);var cbach_percent=divideCheck(cbach,ceduall,100,null,null,true);var ceduall_percent=divideCheck(ceduall,ceduall,100,null,null,true);$("#clt9th_plus_csmhsnodip_passaic_county_percent").html(PWebUtil.formatNumber(clt9th_plus_csmhsnodip_percent,"_%",1));$("#chs_passaic_county_percent").html(PWebUtil.formatNumber(chs_percent,"_%",1));$("#csmcolass_passaic_county_percent").html(PWebUtil.formatNumber(csmcolass_percent,"_%",1));$("#cbach_passaic_county_percent").html(PWebUtil.formatNumber(cbach_percent,"_%",1));$("#ceduall_passaic_county_percent").html(PWebUtil.formatNumber(ceduall_percent,"_%",1))});var arr=["Census, American Community Survey ("+P.constants.latestACSPeriod+")"];var $src=PASSetSourceLinks(arr,"education-section")})}function PASLoadGeographyType(typeid){var displayword="";var iscustomarea=false;if(typeid==178){displayword="city"}else if(typeid==177){displayword="zip code"}else if(typeid==15){displayword="block group"}else{iscustomarea=true;displayword="report area"}if(iscustomarea){$("#reportlocationwrapper").html(displayword)}else{$("#geographytype").html(displayword)}}function displayWilliamPennReport(aggregates,boundarea,counties){var params=getUrlParams();getPhillyContainmentsLists(boundarea);var aggObj={};var ids=boundaryMatrix.getMatrixOrder();for(var i=0;i<ids.length;i++){aggObj[ids[i]]=[]}for(var i=0;i<aggregates.length;i++){var p=aggregates[i];var mIds=boundaryMatrix.getAllMatrixIdsForDefinitionId(p.getDefinitionId());for(var j=0;j<mIds.length;j++){mId=mIds[j];aggObj[mId].push(p)}}if(boundarea.getType()==PPlaceType.BLOCKGROUP){var p=boundarea;var mId=boundaryMatrix.getMatrixIdForDefinitionId(p.getDefinitionId());aggObj[mId]=[p]}if(P.WKPrint.isPrintPage()===true){$("head").append('<link rel="stylesheet" href="/cssPrint/culture_blocks.css" type="text/css" />');$(".print-page2").append($(".report-charts"))}var overrideSitesLimit=true;var ocdelphiaid=136250;var set=getOverlaySet(ocdelphiaid,"old").then(function(set){var filters=set.displayfiltergroups["Keystone STARS"];var ftrs=[];for(var i=0;i<filters.length;i++){if(filters[i].values[0]!="COLORCODE"){ftrs.push(filters[i])}}set.setFiltersByIcons(ftrs,set.colorcodes);map.addOverlaySet(set);$c=$("#filters-container");var cnt=0;var $column=$("<div>",{class:"column"});for(var i=0;i<ftrs.length;i++){var imgsrc=set.filtericons[i].image;var str=ftrs[i].valuesDisplay;var $img=$("<img>",{class:"icon",src:imgsrc});var $label=$("<span>",{class:"label"});$label.html(str);var $div=$("<div>",{class:"filter"});$div.append($img);$div.append($label);$column.append($div);cnt++;if(cnt==2||i==ftrs.length-1){$c.append($column);$column=$("<div>",{class:"column"});cnt=0}}});var set=new POverlaySet(124950);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;boundarea.getMarkersWithin(set,function(markers){var elem=$("#schools");var list=getDisplayMarkersListCB(markers,elem,"Schools",";")},true);var set=new POverlaySet(125100);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;boundarea.getMarkersWithin(set,function(markers){var elem=$("#rec-centers");var list=getDisplayMarkersListCB(markers,elem,"Recreation Centers")});var set=new POverlaySet(125e3);set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;boundarea.getMarkersWithin(set,function(markers){var elem=$("#libraries");var list=getDisplayMarkersListCB(markers,elem,"Libraries")});var aggList=$("#agg-list");var aggToggle=$("#agg-toggle");var aggTogglePrint=$("#agg-toggle-print");var t=getAggregatedPlaceNames(aggObj[2]);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show");aggTogglePrint.text("Not Displayed")}else{aggList.slideDown();aggToggle.text("(-) Hide");aggTogglePrint.text("")}});if(params["da"]){aggToggle.click()}var PIE_DATA=[];var TOTAL_CAPACITY=0;var childCareSitesData=[];var starLevels=[["STAR 4","STAR 3"],["STAR 2","STAR 1"],["No STAR Level"],["STAR 4","STAR 3","STAR 2","STAR 1","No STAR Level"]];var getMarkersData=function(set,cnt,totalcnt,elemname){set.type="old";set.overrideLimit=overrideSitesLimit;set.map=null;set.cnt=cnt;set.clearFilters();if(set.id==136250){var filters=set.displayfiltergroups["Keystone STARS"];addfilters=[];for(var i=0;i<filters.length;i++){var filter=filters[i];var stars=starLevels[cnt];for(var k=0;k<stars.length;k++){if(stars[k]==filter.values[0]){addfilters.push(filter)}}}for(var i=0;i<addfilters.length;i++){set.addFilter(addfilters[i])}}boundarea.getMarkersWithin(set,function(markers){var countid="#"+elemname+"-count"+cnt;var slotsid="#"+elemname+"-slots"+cnt;var length=0;if(markers.length>0){if(markers[0]instanceof PMarker){length=markers.length}else{length=markers[0]}}var slots=0;for(var i=0;i<markers.length;i++){atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.name=="Capacity"||a.name=="Estimated Supply"){var value=parseInt(a.value);if(value!=-9999&&!isNaN(value)){slots+=value}continue}}}var arr=["Certified Slots <br> (3 & 4 Stars)","Certified Slots  <br> (1 & 2 Stars)","Certified Slots <br>  0 Stars"];if(set.id==136250){childCareSitesData.push({fac:markers.length,slots:slots});if(cnt<arr.length){TOTAL_CAPACITY=TOTAL_CAPACITY+slots;PIE_DATA.push([arr[cnt],slots])}}$(countid).html(PWebUtil.formatNumber(length));$(slotsid).html(PWebUtil.formatNumber(slots));if(typeof $(countid)[0]!="undefined"){$(countid)[0].filters=set.getFilters()}$(".seelist").poshytip({content:"View in table",className:"tip-twitter",alignTo:"target",alignX:"center",alignY:"top",offsetY:30,slide:false,showTimeout:0,hideTimeout:0});if(length==0){$(countid).next().hide()}else{$(countid).click(function(){var filters=this.filters;var $elem=$("<div />",{class:"see-list--container"});var $t=$("<div />",{class:"site-title"});var text=$(this).parent().prev().text();$t.html(text);$elem.append($t);$(this).append($elem);var html=getSiteListHtmlCB(set,place);$elem.append(html);generateReportSitesListInAlert(set,boundarea,filters,$elem)})}cnt++;if(cnt<totalcnt){getMarkersData(set,cnt,totalcnt,elemname)}else if(set.id==136250){var totalChildCareSites=markers.length;var id=136100;var s=new POverlaySet(id);s.type="old";s.overrideLimit=overrideSitesLimit;s.map=null;boundarea.getMarkersWithin(s,function(markers){var un_cap=0;for(var i=0;i<markers.length;i++){atts=markers[i].attributes;for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="sup_est"){if(a.value!=-9999){un_cap+=a.value}continue}}}var unCertLabel="Not Certified Slots";PIE_DATA.push([unCertLabel,un_cap]);var sum_data=[];var percent_data=[];for(var i=0;i<PIE_DATA.length;i++){var value=PIE_DATA[i][1];var p=value/(TOTAL_CAPACITY+un_cap);percent_data.push([PIE_DATA[i][0],p]);sum_data.push(PWebUtil.formatNumber(value))}WPLoadChildCare(aggObj,counties,childCareSitesData,totalChildCareSites);load_childcare_slots_by_starlevel_chart(boundarea);var location4title=boundarea.getLabel().toUpperCase();if(boundarea.isCustomOrPoly()){var location4title="REPORT REGION"}var title="Childcare Slots, "+location4title+", June 2019";buildWPPieChart(percent_data,"wp-childcare-pie1",title,sum_data);var countydata=[[arr[0],29],[arr[1],46],[arr[2],4],[unCertLabel,22]];var sum_data=["29,159","46,172","3,735","21,686"];title="Childcare Slots, "+"City Of Philadelphia"+", June 2019";buildWPPieChart(countydata,"wp-childcare-pie2",title,sum_data)})}})};$("#asset-directory").click(function(){boundarea.getMarkersWithinCSV([ocdelphiaid])});var set=getOverlaySet(ocdelphiaid,"old").then(function(set){getMarkersData(set,0,4,"childcare")});var id=133950;$("#asset-directory").click(function(){boundarea.getMarkersWithin([id])});var set=getOverlaySet(id,"old").then(function(set){getMarkersData(set,0,1,"headstart")});WPLoadSchoolEnrollment(aggObj,counties);WPLoadPopAndAge(aggObj,counties);WPLoadRace(aggObj,counties);var overlap_pct=50;boundarea.getPlacesWithin(PPlaceType.CENSUSTRACT,null,null,function(tracts){WPLoadIncome(aggObj,counties,tracts);var aggList=$("#tracts-list");var aggToggle=$("#tracts-toggle");var aggTogglePrint=$("#tracts-toggle-print");var t=getAggregatedPlaceNames(tracts);aggList.html(t);aggToggle.click(function(){if(aggList.is(":visible")){aggList.slideUp();aggToggle.text("(+) Show");aggTogglePrint.text("Not Displayed")}else{aggList.slideDown();aggToggle.text("(-) Hide");aggTogglePrint.text("")}});if(params["da"]){aggToggle.click()}},overlap_pct,null,null,null,"id,identifier,label,typeid,state");P.CloneOptions.acssrc="Census, American Community Survey ("+P.constants.latestACSPeriod+")";WPLoadHouseholdStatus(aggObj,counties);WPLoadJobs(aggObj,counties);WPLoadTrans(aggObj,counties);WPLoadEducation(aggObj,counties);WPLoadGeographyType(boundarea.typeid)}function WPLoadSchoolEnrollment(aggObj,counties){var i={};i.CK12PUB=new PIndicator(9873905);i.CK12PRIV=new PIndicator(9873910);i.CK12ALL=new PIndicator(9873922);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[P.constants.latestACSPeriod];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,counties,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};var ind=i.CK12PUB;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CK12PRIV;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CK12ALL;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var $table=$("<table>",{class:"datatable boldfirsttd"});var html="<caption>School Enrollment</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Percent of Children</th>";html+="<th>Percent of Children (Philadelphia)</th>";html+="</tr></thead>";var ind=i.CK12PUB;var dInd=i.CK12ALL;html+="<tr>";html+="<td class='ind-label'>Children enrolled in public school</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CK12PRIV;var dInd=i.CK12ALL;html+="<tr>";html+="<td class='ind-label'>Children enrolled in private school</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";$table.append(html);$("#school-table").append($table);var arr=[P.CloneOptions.acssrc];var $src=WPSetSourceLinks(arr,"school-section")})})}function WPLoadPopAndAge(aggObj,counties){var i={};i.CPOPLT1=new PIndicator(9917671);i.CPOP1=new PIndicator(9917664);i.CPOP2=new PIndicator(9917661);i.CPOP3=new PIndicator(9917659);i.CPOP4=new PIndicator(9917663);i.CPOP0_4=new PIndicator(9868901);i.CPOP5_9=new PIndicator(9869090);i.CPOP10_14=new PIndicator(9869025);i.CPOP15_17=new PIndicator(9868851);i.CPOP18_34=new PIndicator(9868870);i.CPOP35_64=new PIndicator(9906418);i.CPOP65P=new PIndicator(9868923);i.CPOP=new PIndicator(9869069);i.CPOPALLAGE=new PIndicator(9917674);var countyinds=[];for(var ind in i){countyinds.push(i[ind])}var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[2010];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,counties,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};var ind=i.CPOP;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP0_4;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP18_34;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP35_64;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPLT1;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP1;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP2;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP3;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP4;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP0_4;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP5_9;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP10_14;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP15_17;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP65P;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOP;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPALLAGE;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var text="In the report area in 2010, there were a total of "+VALUES[i.CPOP.n].f+" people, "+VALUES[i.CPOP0_4.n].f+" of which were childcare age (under the age of 5) and "+PWebUtil.formatNumber(VALUES[i.CPOP18_34.n].s+VALUES[i.CPOP35_64.n].s)+" of which were of working age.";$("#population-text").html(text);var $table=$("<table>",{class:" datatable boldfirsttd"});var html="<caption>Age distribution in "+$("#report-title").html()+"</caption>";html+="<thead>";html+="<tr>";html+="<th>&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp; Age &nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;</th>";html+="<th>Number of People in Age Group</th>";html+="<th>Percent of People in Age Group</th>";html+="<th>Percent of People in Age Group (Philadelphia)</th>";html+="</tr>";html+="</thead>";var ind=i.CPOPLT1;var dInd=i.CPOPALLAGE;html+="<tr>";html+="<td class='ind-label'>Under 1 year old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOP1;html+="<tr>";html+="<td class='ind-label'>1 year old</td>";html+="<td>"+VALUES[ind.n].f+"</td>"
;html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOP2;html+="<tr>";html+="<td class='ind-label'>2 years old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOP3;html+="<tr>";html+="<td class='ind-label'>3 years old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOP4;html+="<tr>";html+="<td class='ind-label'>4 years old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOP0_4;html+="<tr>";html+="<td class='ind-label'>Under 5 years old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var V=VALUES;var total=V[i.CPOP5_9.n].s+V[i.CPOP10_14.n].s+V[i.CPOP15_17.n].s;var V=CVALUES;var countyTotal=V[i.CPOP0_4.n].s+V[i.CPOP5_9.n].s+V[i.CPOP10_14.n].s+V[i.CPOP15_17.n].s;html+="<tr>";html+="<td class='ind-label'>5 - 17 years old</td>";html+="<td>"+PWebUtil.formatNumber(total)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(total,VALUES[i.CPOPALLAGE.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(countyTotal,CVALUES[i.CPOPALLAGE.n].s,100),"_%")+"</td>";html+="</tr>";var V=VALUES;var total=V[i.CPOP18_34.n].s+V[i.CPOP35_64.n].s;var V=CVALUES;var countyTotal=V[i.CPOP18_34.n].s+V[i.CPOP35_64.n].s;html+="<tr>";html+="<td class='ind-label'>18-64 year old</td>";html+="<td>"+PWebUtil.formatNumber(total)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(total,VALUES[i.CPOPALLAGE.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(countyTotal,CVALUES[i.CPOPALLAGE.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOP65P;html+="<tr>";html+="<td class='ind-label'>65+ years old</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOP;html+="<tr>";html+="<td class='ind-label'>Total Population</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";$table.append(html);$("#population-table").append($table);var s1=[];var s2=[];var s3=[];var s4=[];var s5=[];ageArr1=[];ageArr2=[];var V=VALUES;var prc=divideCheck(V[i.CPOPLT1.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr1.push(parseFloat(val));s1.push(parseFloat(val));var V=CVALUES;var prc=divideCheck(V[i.CPOPLT1.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr2.push(parseFloat(val));s1.push(parseFloat(val));var V=VALUES;var prc=divideCheck(V[i.CPOP1.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr1.push(parseFloat(val));s2.push(parseFloat(val));var V=CVALUES;var prc=divideCheck(V[i.CPOP1.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr2.push(parseFloat(val));s2.push(parseFloat(val));var V=VALUES;var prc=divideCheck(V[i.CPOP2.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr1.push(parseFloat(val));s3.push(parseFloat(val));var V=CVALUES;var prc=divideCheck(V[i.CPOP2.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr2.push(parseFloat(val));s3.push(parseFloat(val));var V=VALUES;var prc=divideCheck(V[i.CPOP3.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr1.push(parseFloat(val));s4.push(parseFloat(val));var V=CVALUES;var prc=divideCheck(V[i.CPOP3.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr2.push(parseFloat(val));s4.push(parseFloat(val));var V=VALUES;var prc=divideCheck(V[i.CPOP4.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr1.push(parseFloat(val));s5.push(parseFloat(val));var V=CVALUES;var prc=divideCheck(V[i.CPOP4.n].s,V[i.CPOP0_4.n].s,100);var val=checkValueForNull(prc);ageArr2.push(parseFloat(val));s5.push(parseFloat(val));var data=[];data.push(ageArr1);data.push(ageArr2);var colors=["#716A99","#87AA4f","#247dA0","#C67830","#C65265"];plot3=$.jqplot("age-chart",[s1,s2,s3,s4,s5],{title:"Age Distribution of Children <br> Under the Age of 5",stackSeries:true,seriesColors:colors,captureRightClick:true,seriesDefaults:{renderer:$.jqplot.BarRenderer,rendererOptions:{barMargin:30,highlightMouseDown:true,barWidth:50},pointLabels:{show:false}},axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer,ticks:["Report Area","City of Philadelphia"],drawMajorGridlines:false},yaxis:{renderer:$.jqplot.LogAxisRenderer,tickOptions:{labelPosition:"middle",angle:-30},tickRenderer:$.jqplot.CanvasAxisTickRenderer,labelRenderer:$.jqplot.CanvasAxisLabelRenderer,labelOptions:{fontFamily:"Helvetica",fontSize:"14pt"},label:"Percent of Children under 5",padMin:0,min:0,max:100,tickInterval:20}},legend:{renderer:$.jqplot.EnhancedLegendRenderer,show:true,location:"s",placement:"outside",rendererOptions:{numberColumns:3},border:"none",marginTop:"40px",marginLeft:"-55px",labels:["Under 1 year","1 year old","2 year old","3 year old","4 year old"]},grid:{drawGridlines:true,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent",background:"#FFFFFF"}});var arr=["Census, 2010"];var $src=WPSetSourceLinks(arr,"population-section")})})}function WPLoadRace(aggObj,counties){var i={};i.CPOPWH=new PIndicator(9869048);i.CPOPBK=new PIndicator(9868917);i.CPOPAS=new PIndicator(9868922);i.CPOPNHPI=new PIndicator(9868883);i.CPOPAIAN=new PIndicator(9868954);i.CPOPOTH=new PIndicator(9868998);i.CPOPTWOP=new PIndicator(9869034);i.CPOPHISP=new PIndicator(9868879);i.CPOPALLRACE=new PIndicator(9868881);i.CPOPALLETH=new PIndicator(9868976);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[2010];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,counties,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};var ind=i.CPOPWH;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPBK;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPAS;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPNHPI;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPAIAN;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPOTH;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPTWOP;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPHISP;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPALLRACE;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var ind=i.CPOPALLETH;var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var html="<caption>Race and Ethnicity in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number of People</th>";html+="<th>Percent of Population</th>";html+="<th>Percent of Population (Philadelphia)</th>";html+="</tr></thead>";var ind=i.CPOPWH;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>White</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOPBK;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>African-American</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOPAS;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>Asian</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOPNHPI;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>Native Hawaiian or Pacific Islander</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOPAIAN;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>American Indian or Alaskan Native</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOPOTH;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>Some Other Race</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOPTWOP;var dInd=i.CPOPALLRACE;html+="<tr>";html+="<td class='ind-label'>Two or More Races</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var ind=i.CPOPHISP;var dInd=i.CPOPALLETH;html+="<tr>";html+="<td class='ind-label'>Hispanic</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var $table=$("<table>",{class:"datatable boldfirsttd",width:"100%"});$table.append(html);$("#wp-race-table").append($table);var arr=["Census, 2010"];var $src=WPSetSourceLinks(arr,"race-section")})})}function WPLoadIncome(aggObj,counties,tracts){var i={};i.CFAMLT25=new PIndicator(9938092);i.CFAM25_35=new PIndicator(9938088);i.CFAM35_50=new PIndicator(9938089);i.CFAM50_75=new PIndicator(9938090);i.CFAM75_100=new PIndicator(9938091);i.CFAM100_125=new PIndicator(9938085);i.CFAM125_150=new PIndicator(9938086);i.CFAM150P=new PIndicator(9938087);i.CFAMALLINC=new PIndicator(9871916);i.CFAMPOV=new PIndicator(9871986);i.MFAMINC=new PIndicator(9871853);i.MFAMINC.nodata=-99999999;i.CFAM=new PIndicator(9868933);i.CHILT25=new PIndicator(9871803);i.CHI25_35=new PIndicator(9871920);i.CHI35_50=new PIndicator(9871806);i.CHI50_75=new PIndicator(9871923);i.CHI75_100=new PIndicator(9871914);i.CHI100_125=new PIndicator(9871957);i.CHI125_150=new PIndicator(9871938);i.CHI150P=new PIndicator(9871960);i.CHIALL=new PIndicator(9871984);i.MHHINC=new PIndicator(9871831);i.MHHINC.nodata=-99999999;i.CHH=new PIndicator(9869078);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var ti={};ti.CFAMPOV_LT200P=new PIndicator(9938094);ti.CFAMPOV_LT300P=new PIndicator(9938095);ti.CFAMPOV_GT300P=new PIndicator(9938093);ti.CFAMPOV50P=new PIndicator(9938096);ti.CFAMUND5POV=new PIndicator(9938098);ti.CFAMUND5_ALL=new PIndicator(9938097);ti.CFAMALLINC=new PIndicator(9871916);ti.MFAMINC=new PIndicator(9871853);ti.MFAMINC.nodata=-99999999;var tractIndsArr=[];for(var ind in ti){ti[ind].n=ind;tractIndsArr.push(ti[ind])}var periods=[P.constants.latestACSPeriod];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds.concat(tractIndsArr),counties,periods);cube2.loadValues(function(values){this.values=values;var cube3=new PCube(tractIndsArr,tracts,periods);cube3.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};var TVALUES={};for(var name in i){var ind=i[name];var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}for(var name in ti){var ind=ti[name];var s=getSumOfPlaces(cube3,ind,per);TVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}var ind=i.MHHINC;var arr=cube1.getSortedValuesOfPlacesIgnoreNulls(ind,per);var mhhinc=getRangeString(arr[0],arr[arr.length-1],"$_").toLowerCase();var arr=cube2.getSortedValuesOfPlaces(ind,per);var mhhinc_county=getRangeString(arr[0],arr[arr.length-1],"$_");var ind=ti.MFAMINC;var arr=cube3.getSortedValuesOfPlacesIgnoreNulls(ind,per);var mfaminc=getRangeString(arr[0],arr[arr.length-1],"$_").toLowerCase();var arr=cube2.getSortedValuesOfPlaces(ind,per);var mfaminc_county=getRangeString(arr[0],arr[arr.length-1],"$_");var cfam=VALUES[i.CFAM.n].f;var chh=VALUES[i.CHH.n].f;var text="The median <b>household</b> income for block groups in this area "+mhhinc+", compared to the city median of "+mhhinc_county+", as estimated for "+P.constants.latestACSPeriod+" by the Census' American Community Survey.  The median"+" <b>family</b> income of census tracts in this area is "+mfaminc+", compared to the city"+" median of "+mfaminc_county+". The area includes a total of "+cfam+" families and "+chh+" households.";var html="<caption>Income in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number of Families</th>";html+="<th>Percent of Families</th>";html+="<th>Percent of Families (Philadelphia)</th>";html+="<th>Number of Households</th>";html+="<th>Percent of Households</th>";html+="<th>Percent of Households (Philadelphia)</th>";html+="</tr></thead>";var getRow=function(ind1,dInd1,ind2,dInd2,label){var h="";var ind=ind1;var dInd=dInd1;h+="<tr>";h+="<td class='ind-label'>"+label+"</td>";h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";var ind=ind2;var dInd=dInd2;h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";h+="</tr>";return h};var dInd1=i.CFAMALLINC;var dInd2=i.CHIALL;html+=getRow(i.CFAMLT25,dInd1,i.CHILT25,dInd2,"Less than $25,000");html+=getRow(i.CFAM25_35,dInd1,i.CHI25_35,dInd2,"$25,000 - $34,999");html+=getRow(i.CFAM35_50,dInd1,i.CHI35_50,dInd2,"$35,000 - $49,999");html+=getRow(i.CFAM50_75,dInd1,i.CHI50_75,dInd2,"$50,000 - $74,999");html+=getRow(i.CFAM75_100,dInd1,i.CHI75_100,dInd2,"$75,000 - $99,999");html+=getRow(i.CFAM100_125,dInd1,i.CHI100_125,dInd2,"$100,000 - $124,999");html+=getRow(i.CFAM125_150,dInd1,i.CHI125_150,dInd2,"$125,000 - $149,999");html+=getRow(i.CFAM150P,dInd1,i.CHI150P,dInd2,"$150,000 or more");var ind=ti.CFAMPOV50P;var dInd=ti.CFAMALLINC;var label="Families in Deep Poverty: Up to 50% of Poverty";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+TVALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(TVALUES[ind.n].s,TVALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var ind=i.CFAMPOV;var dInd=i.CFAMALLINC;var label="Families in Poverty";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var ind=ti.CFAMPOV_LT200P;var dInd=ti.CFAMALLINC;var label="Up to 200% of Poverty";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+TVALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(TVALUES[ind.n].s,TVALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var ind=ti.CFAMPOV_LT300P;var dInd=ti.CFAMALLINC;var label="Up to 300% of Poverty";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+TVALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(TVALUES[ind.n].s,TVALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var ind=ti.CFAMPOV_GT300P;var dInd=ti.CFAMALLINC;var label="More than 300% of Poverty";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+TVALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(TVALUES[ind.n].s,TVALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var ind=ti.CFAMUND5POV;var dInd=ti.CFAMUND5_ALL;var label="Families with Children Under 5 in Poverty***";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+TVALUES[ind.n].f+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(TVALUES[ind.n].s,TVALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="<td>N/A</td>";html+="</tr>";var $table=$("<table>",{class:"datatable boldfirsttd"});$table.append(html);$("#wp-income-text").append(text);$("#wp-income-table").append($table);var arr=[P.CloneOptions.acssrc];var $src=WPSetSourceLinks(arr,"income-section")})})})}function WPLoadHouseholdStatus(aggObj,counties){var i={};i.CHH_NOCH=new PIndicator(9868874);i.CHH_MCWC=new PIndicator(9868990);i.CHH_SHWC=new PIndicator(9869028);i.CHH_FHNHWC=new PIndicator(9869005);i.CHH_ALLTYPE=new PIndicator(9868988);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[2010];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,counties,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};for(var name in i){var ind=i[name];var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}var html="<caption>Household Status in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number of Households</th>";html+="<th>Percent of Households</th>";html+="<th>Percent of Households (Philadelphia)</th>";html+="</tr></thead>";var getRow=function(ind,dInd,label){var h="";h+="<tr>";h+="<td class='ind-label'>"+label+"</td>";h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";h+="</tr>";return h};var dInd=i.CHH_ALLTYPE;html+=getRow(i.CHH_NOCH,dInd,"Without children");html+=getRow(i.CHH_MCWC,dInd,"Married with children");html+=getRow(i.CHH_SHWC,dInd,"Single with children");html+=getRow(i.CHH_FHNHWC,dInd,"Single female with children");var $table=$("<table>",{class:"datatable boldfirsttd"});$table.append(html);$("#wp-household-table").append($table);var arr=["Census, 2010"];var $src=WPSetSourceLinks(arr,"household-section")})})}function WPLoadJobs(aggObj,counties){var i={};i.CR_PRIMJOBS_EARNLOW=new PIndicator(9911313);i.CR_PRIMJOBS_EARNMED=new PIndicator(9911341);i.CR_PRIMJOBS_ALL=new PIndicator(9911309);i.CW_PRIMJOBS_EARNLOW=new PIndicator(9911392);i.CW_PRIMJOBS_EARNMED=new PIndicator(9911408);i.CW_PRIMJOBS_ALL=new PIndicator(9911366);i.CPOP16P=new PIndicator(9906504);i.CLABORFORCE=new PIndicator(9906502);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[2015,P.constants.latestACSPeriod];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,counties,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};for(var name in i){var per=periods[0];if(name=="CPOP16P"||name=="CLABORFORCE")per=periods[1];var ind=i[name];var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}var value=PWebUtil.formatNumber(divideCheck(VALUES[i.CLABORFORCE.n].s,VALUES[i.CPOP16P.n].s,100),"_%");var text="As of the "+P.constants.latestACSPeriod+" time period, "+value+" of people ages 16 or older were in the labor force, according to the Census' American Community Survey.";$("#wp-jobs-text").html(text);var html="<caption>Jobs and Economy in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number of Working Residents</th>";html+="<th>Percent of Working Residents</th>";html+="<th>Percent of Working Residents (Philadelphia)</th>";html+="<th>Number of Workers Employed in Area</th>";html+="<th>Percent of Workers Employed in Area</th>";html+="<th>Percent of Workers Employed in Philadelphia</th>";html+="</tr></thead>";var getRow=function(ind1,dInd1,ind2,dInd2,label){var h="";var ind=ind1;var dInd=dInd1;h+="<tr>";h+="<td class='ind-label'>"+label+"</td>";h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";var ind=ind2;var dInd=dInd2;h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";h+="</tr>";return h};var dInd1=i.CR_PRIMJOBS_ALL;var dInd2=i.CW_PRIMJOBS_ALL;html+=getRow(i.CR_PRIMJOBS_EARNLOW,dInd1,i.CW_PRIMJOBS_EARNLOW,dInd2,"Earning less than $15,000 from primary job");html+=getRow(i.CR_PRIMJOBS_EARNMED,dInd1,i.CW_PRIMJOBS_EARNMED,dInd2,"Earning $15,000 - $39,999 from primary job");var $table=$("<table>",{class:"datatable boldfirsttd"});$table.append(html);$("#wp-jobs-table").append($table);var arr=[P.CloneOptions.acssrc,"Longitudinal Employer-Household Dynamics (2015)****"];var $src=WPSetSourceLinks(arr,"jobs-section")})})}function WPLoadTrans(aggObj,counties){var i={};i.CTRANPT=new PIndicator(9873787);i.CHUNOMV=new PIndicator(9873783);i.CTRANALL=new PIndicator(9873825);i.CHHMIALL=new PIndicator(9873833);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[P.constants.latestACSPeriod];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,counties,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};for(var name in i){var ind=i[name];var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}var html="<caption>Transportation in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number</th>";html+="<th>Percent</th>";html+="<th>Percent (Philadelphia)</th>";html+="</tr></thead>";var getRow=function(ind,dInd,label){var h="";h+="<tr>";h+="<td class='ind-label'>"+label+"</td>";h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";h+="</tr>";return h};var dInd=i.CTRANALL;html+=getRow(i.CTRANPT,dInd,"People using public transportation to get to work");var dInd=i.CHHMIALL;html+=getRow(i.CHUNOMV,dInd,"Households without a vehicle");var $table=$("<table>",{class:"datatable boldfirsttd"});$table.append(html);$("#wp-transportation-table").append($table);var arr=[P.CloneOptions.acssrc];var $src=WPSetSourceLinks(arr,"transportation-section")})})}function WPLoadEducation(aggObj,counties){var i={};i.CLT9TH=new PIndicator(9873900);i.CSMHSNODIP=new PIndicator(9873915);i.CHS=new PIndicator(9873934);i.CSMCOLASS=new PIndicator(9873912);i.CBACH=new PIndicator(9873914);i.CEDUALL=new PIndicator(9873929);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[P.constants.latestACSPeriod];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,counties,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};for(var name in i){var ind=i[name];var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}var html="<caption>Educational Attainment in "+$("#report-title").html()+"</caption>";html+="<thead><tr>";html+="<th></th>";html+="<th>Number of People</th>";html+="<th>Percent of Population</th>";html+="<th>Percent of Population (Philadelphia)</th>";html+="</tr></thead>";var dInd=i.CEDUALL;var value=VALUES[i.CLT9TH.n].s+VALUES[i.CSMHSNODIP.n].s;var cvalue=CVALUES[i.CLT9TH.n].s+CVALUES[i.CSMHSNODIP.n].s;var label="Without a high school diploma";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+PWebUtil.formatNumber(value)+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(value,VALUES[dInd.n].s,100),"_%")+"</td>";html+="<td>"+PWebUtil.formatNumber(divideCheck(cvalue,CVALUES[dInd.n].s,100),"_%")+"</td>";html+="</tr>";var getRow=function(ind,dInd,label){var h="";h+="<tr>";h+="<td class='ind-label'>"+label+"</td>";h+="<td>"+VALUES[ind.n].f+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(VALUES[ind.n].s,VALUES[dInd.n].s,100),"_%")+"</td>";h+="<td>"+PWebUtil.formatNumber(divideCheck(CVALUES[ind.n].s,CVALUES[dInd.n].s,100),"_%")+"</td>";h+="</tr>";return h};html+=getRow(i.CHS,dInd,"With only a high school diploma");html+=getRow(i.CSMCOLASS,dInd,"With some college or an Associate's Degree");html+=getRow(i.CBACH,dInd,"With at least a Bachelor's Degree");var $table=$("<table>",{class:"datatable boldfirsttd"});$table.append(html);$("#wp-education-table").append($table);var arr=[P.CloneOptions.acssrc];var $src=WPSetSourceLinks(arr,"education-section")})})}function WPLoadChildCare(aggObj,counties,childCareSitesData,totalChildCareSites){var i={};i.RDEM0433=new PIndicator(9917350);var allinds=[];for(var ind in i){i[ind].n=ind;allinds.push(i[ind])}var periods=[2018];var cube1=new PCube(allinds,aggObj[2],periods);cube1.loadValues(function(values){this.values=values;var cube2=new PCube(allinds,counties,periods);cube2.loadValues(function(values){this.values=values;var per=periods[0];var VALUES={};var CVALUES={};for(var name in i){var ind=i[name];var s=getSumOfPlaces(cube1,ind,per);VALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)};var s=getSumOfPlaces(cube2,ind,per);CVALUES[ind.n]={s:s,f:PWebUtil.formatNumber(s)}}var diffvalue=VALUES[i.RDEM0433.n].s-childCareSitesData[3].slots;var prn=" more";if(diffvalue<0){prn=" less"}var diff=PWebUtil.formatNumber(Math.abs(diffvalue));var text="In the report area, as of June 2019, there were a total of "+PWebUtil.formatNumber(totalChildCareSites)+" certified childcare facilities, providing approximately "+PWebUtil.formatNumber(childCareSitesData[3].slots)+" certified childcare slots. "+PWebUtil.formatNumber(childCareSitesData[0].fac)+" of these facilities and "+PWebUtil.formatNumber(childCareSitesData[0].slots)+" of these slots had a top Keystone STARS rating of 3 or 4 Stars. With a total estimated childcare demand of "+VALUES[i.RDEM0433.n].f+" children, there were approximately "+diff+prn+"  children of childcare age in the area than there were certified childcare slots.";$("#childcare-text").html(text);var html="<caption>Childcare Demand</caption>";html+="<tr>";html+="<td></td>";html+="<td>Children</td>";html+="</tr>";var ind=i.RDEM0433;var label="Total Estimated Childcare Demand**";html+="<tr>";html+="<td class='ind-label'>"+label+"</td>";html+="<td>"+VALUES[ind.n].f+"</td>";html+="</tr>";var $table=$("<table>",{class:"datatable pull-right",width:"100%"});$table.append(html);$("#wp-childcare-table").append($table);var arr=["TRF analysis of Office of Childhood Development and Early Learning (OCDEL-March 2015), Head Start, Info USA, and NETS data (2013)."];var $src=WPSetSourceLinks(arr,"cultural-assets-section")})})}function load_childcare_slots_by_starlevel_chart(boundarea){var overlaySet=new POverlaySet(152500);overlaySet.type="old";overlaySet.overrideLimit=true;boundarea.getMarkersWithin(overlaySet,function(markers){var capacityArr=[[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0],[0,0,0,0,0,0,0,0,0,0]];var starValues=["No STAR Level","STAR 1","STAR 2","STAR 3","STAR 4"];var timeframeValues=["2016Q3","2016Q4","2017Q1","2017Q2","2017Q3","2018Q1","2018Q3","2018Q4","2019Q1","2019Q2"];var errorsfound=false;try{for(var i=0;i<markers.length;i++){atts=markers[i].attributes;var capacity=0;var star="";var timeframe="";for(var j=0;j<atts.length;j++){var a=atts[j];if(a.columnName=="star"){star=a.value}else if(a.columnName=="capacity"){capacity=a.value}else if(a.columnName=="time_frame"){timeframe=a.value}}if(capacity==-9999||capacity=="Insufficient Data"){continue}if($.inArray(star,starValues)!=-1){var index1=starValues.indexOf(star);if($.inArray(timeframe,timeframeValues)!=-1){var index2=timeframeValues.indexOf(timeframe);capacityArr[index1][index2]+=capacity}}}}catch(error){errorsfound=true}if(errorsfound){
$("#wp-childcare-line-chart").html('<p style="text-align: center;"> The number of points exceeds a set limit. </p>')}else{var colors=["#716A99","#87AA4f","#247dA0","#C67830","#C65265"];var plot3=$.jqplot("wp-childcare-line-chart",capacityArr,{title:"Change in Certified Childcare Slots by STAR Level",seriesColors:colors,axes:{xaxis:{renderer:$.jqplot.CategoryAxisRenderer,ticks:timeframeValues,drawMajorGridlines:false},yaxis:{renderer:$.jqplot.LogAxisRenderer,tickOptions:{labelPosition:"middle",angle:-30},tickRenderer:$.jqplot.CanvasAxisTickRenderer,labelRenderer:$.jqplot.CanvasAxisLabelRenderer,label:"Childcare Slots",padMin:0,min:0}},legend:{renderer:$.jqplot.EnhancedLegendRenderer,show:true,location:"s",placement:"outside",labels:starValues,rendererOptions:{numberColumns:5},marginTop:"40px",border:"none"},grid:{drawGridlines:true,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent",background:"#FFFFFF"}})}})}function generateReportSitesListInAlert(set,place,filters,$e){P.instances.pagePopUp=new CBPopUp;if(filters){set.clearFilters();for(var i=0;i<filters.length;i++){set.addFilter(filters[i])}}set.overrideLimit=false;P.instances.pagePopUp.show();place.getMarkersWithin(set,function(markers){var opts={hidetitle:true};P.instances.rPins=new CBReportPins(opts);var count=0;if(!(markers[0]instanceof PMarker)){count=markers[0]}else if(markers[0]instanceof PMarker&&!markers[0].isPoly){count=markers.length}var f=function(){alerter.popup({content:$e,width:996,addCancel:false,buttons:[],customDialogClass:"clone-alert--see-list"})};P.instances.rPins.load(place.getLabel(),set.id,set.type,set.getLabel(),place.id,"",count,null,place.getType().id,place.polysetid,null,filters,f)})}function getBGCulturalPartData(v1,v2){var total=0;for(var p in v1){if(v1[p]&&v2[p]){total+=v1[p]*v2[p]}}return total}function buildWPPieChart(data,elemid,title,PIE_DATA){var colors=["#716A99","#87AA4f","#247dA0","#C67830","#C65265"];var plot1=jQuery.jqplot(elemid,[data],{title:title,seriesColors:colors,seriesDefaults:{renderer:jQuery.jqplot.PieRenderer,rendererOptions:{showDataLabels:true,sumDataLabels:PIE_DATA}},legend:{show:true,location:"e",border:"none"},grid:{drawGridlines:false,borderColor:"transparent",shadow:false,drawBorder:false,shadowColor:"transparent"}})}function WPSetSourceLinks(arr,id){var links=[];for(var i=0;i<arr.length;i++){var a="<a class='link' href='http://www.childcaremap.org/files/ChildcareMapDataDirectory.pdf' target='new'>"+arr[i]+"</a>";links.push(a)}if(links.length>0){links=links.join("; ")}var $src=$("<div>",{class:"source"});$src.html("Source: "+links);$("#"+id).append($src)}function WPLoadGeographyType(typeid){var displayword="neighborhood";var iscustomarea=false;if(typeid==136){displayword="Zip Code"}else if(typeid==152){displayword="Elementary School Catchment Area"}else if(typeid==24){displayword="Upper State Legislative District"}else if(typeid==25){displayword="Lower State Legislative District"}else if(typeid==135){displayword="Community Umbrella Agency"}else if(typeid==148){displayword="Neighborhood"}else if(typeid==116){displayword="Council District"}else{iscustomarea=true;displayword="report area"}if(iscustomarea){$("#reportlocationwrapper").html(displayword)}else{$("#geographytype").html(displayword)}}
//# sourceMappingURL=/assets/js/b9b4955ccb3beeb8a9f43ae4337ae75465322bc3.js.map