
var Prototype={Version:'1.5.0',BrowserFeatures:{XPath:!!document.evaluate},ScriptFragment:'(?:<script.*?>)((\n|\r|.)*?)(?:<\/script>)',emptyFunction:function(){},K:function(x){return x}}
var Class={create:function(){return function(){this.initialize.apply(this,arguments);}}}
var Abstract=new Object();Object.extend=function(destination,source){for(var property in source){destination[property]=source[property];}
return destination;}
Object.extend(Object,{inspect:function(object){try{if(object===undefined)return'undefined';if(object===null)return'null';return object.inspect?object.inspect():object.toString();}catch(e){if(e instanceof RangeError)return'...';throw e;}},keys:function(object){var keys=[];for(var property in object)
keys.push(property);return keys;},values:function(object){var values=[];for(var property in object)
values.push(object[property]);return values;},clone:function(object){return Object.extend({},object);}});Function.prototype.bind=function(){var __method=this,args=$A(arguments),object=args.shift();return function(){return __method.apply(object,args.concat($A(arguments)));}}
Function.prototype.bindAsEventListener=function(object){var __method=this,args=$A(arguments),object=args.shift();return function(event){return __method.apply(object,[(event||window.event)].concat(args).concat($A(arguments)));}}
Object.extend(Number.prototype,{toColorPart:function(){var digits=this.toString(16);if(this<16)return'0'+digits;return digits;},succ:function(){return this+1;},times:function(iterator){$R(0,this,true).each(iterator);return this;}});var Try={these:function(){var returnValue;for(var i=0,length=arguments.length;i<length;i++){var lambda=arguments[i];try{returnValue=lambda();break;}catch(e){}}
return returnValue;}}
var PeriodicalExecuter=Class.create();PeriodicalExecuter.prototype={initialize:function(callback,frequency){this.callback=callback;this.frequency=frequency;this.currentlyExecuting=false;this.registerCallback();},registerCallback:function(){this.timer=setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},stop:function(){if(!this.timer)return;clearInterval(this.timer);this.timer=null;},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.callback(this);}finally{this.currentlyExecuting=false;}}}}
String.interpret=function(value){return value==null?'':String(value);}
Object.extend(String.prototype,{gsub:function(pattern,replacement){var result='',source=this,match;replacement=arguments.callee.prepareReplacement(replacement);while(source.length>0){if(match=source.match(pattern)){result+=source.slice(0,match.index);result+=String.interpret(replacement(match));source=source.slice(match.index+match[0].length);}else{result+=source,source='';}}
return result;},sub:function(pattern,replacement,count){replacement=this.gsub.prepareReplacement(replacement);count=count===undefined?1:count;return this.gsub(pattern,function(match){if(--count<0)return match[0];return replacement(match);});},scan:function(pattern,iterator){this.gsub(pattern,iterator);return this;},truncate:function(length,truncation){length=length||30;truncation=truncation===undefined?'...':truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation:this;},strip:function(){return this.replace(/^\s+/,'').replace(/\s+$/,'');},stripTags:function(){return this.replace(/<\/?[^>]+>/gi,'');},stripScripts:function(){return this.replace(new RegExp(Prototype.ScriptFragment,'img'),'');},extractScripts:function(){var matchAll=new RegExp(Prototype.ScriptFragment,'img');var matchOne=new RegExp(Prototype.ScriptFragment,'im');return(this.match(matchAll)||[]).map(function(scriptTag){return(scriptTag.match(matchOne)||['',''])[1];});},evalScripts:function(){return this.extractScripts().map(function(script){return eval(script)});},escapeHTML:function(){var div=document.createElement('div');var text=document.createTextNode(this);div.appendChild(text);return div.innerHTML;},unescapeHTML:function(){var div=document.createElement('div');div.innerHTML=this.stripTags();return div.childNodes[0]?(div.childNodes.length>1?$A(div.childNodes).inject('',function(memo,node){return memo+node.nodeValue}):div.childNodes[0].nodeValue):'';},toQueryParams:function(separator){var match=this.strip().match(/([^?#]*)(#.*)?$/);if(!match)return{};return match[1].split(separator||'&').inject({},function(hash,pair){if((pair=pair.split('='))[0]){var name=decodeURIComponent(pair[0]);var value=pair[1]?decodeURIComponent(pair[1]):undefined;if(hash[name]!==undefined){if(hash[name].constructor!=Array)
hash[name]=[hash[name]];if(value)hash[name].push(value);}
else hash[name]=value;}
return hash;});},toArray:function(){return this.split('');},succ:function(){return this.slice(0,this.length-1)+
String.fromCharCode(this.charCodeAt(this.length-1)+1);},camelize:function(){var parts=this.split('-'),len=parts.length;if(len==1)return parts[0];var camelized=this.charAt(0)=='-'?parts[0].charAt(0).toUpperCase()+parts[0].substring(1):parts[0];for(var i=1;i<len;i++)
camelized+=parts[i].charAt(0).toUpperCase()+parts[i].substring(1);return camelized;},capitalize:function(){return this.charAt(0).toUpperCase()+this.substring(1).toLowerCase();},underscore:function(){return this.gsub(/::/,'/').gsub(/([A-Z]+)([A-Z][a-z])/,'#{1}_#{2}').gsub(/([a-z\d])([A-Z])/,'#{1}_#{2}').gsub(/-/,'_').toLowerCase();},dasherize:function(){return this.gsub(/_/,'-');},inspect:function(useDoubleQuotes){var escapedString=this.replace(/\\/g,'\\\\');if(useDoubleQuotes)
return'"'+escapedString.replace(/"/g,'\\"')+'"';else
return"'"+escapedString.replace(/'/g,'\\\'')+"'";}});String.prototype.gsub.prepareReplacement=function(replacement){if(typeof replacement=='function')return replacement;var template=new Template(replacement);return function(match){return template.evaluate(match)};}
String.prototype.parseQuery=String.prototype.toQueryParams;var Template=Class.create();Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;Template.prototype={initialize:function(template,pattern){this.template=template.toString();this.pattern=pattern||Template.Pattern;},evaluate:function(object){return this.template.gsub(this.pattern,function(match){var before=match[1];if(before=='\\')return match[2];return before+String.interpret(object[match[3]]);});}}
var $break=new Object();var $continue=new Object();var Enumerable={each:function(iterator){var index=0;try{this._each(function(value){try{iterator(value,index++);}catch(e){if(e!=$continue)throw e;}});}catch(e){if(e!=$break)throw e;}
return this;},eachSlice:function(number,iterator){var index=-number,slices=[],array=this.toArray();while((index+=number)<array.length)
slices.push(array.slice(index,index+number));return slices.map(iterator);},all:function(iterator){var result=true;this.each(function(value,index){result=result&&!!(iterator||Prototype.K)(value,index);if(!result)throw $break;});return result;},any:function(iterator){var result=false;this.each(function(value,index){if(result=!!(iterator||Prototype.K)(value,index))
throw $break;});return result;},collect:function(iterator){var results=[];this.each(function(value,index){results.push((iterator||Prototype.K)(value,index));});return results;},detect:function(iterator){var result;this.each(function(value,index){if(iterator(value,index)){result=value;throw $break;}});return result;},findAll:function(iterator){var results=[];this.each(function(value,index){if(iterator(value,index))
results.push(value);});return results;},grep:function(pattern,iterator){var results=[];this.each(function(value,index){var stringValue=value.toString();if(stringValue.match(pattern))
results.push((iterator||Prototype.K)(value,index));})
return results;},include:function(object){var found=false;this.each(function(value){if(value==object){found=true;throw $break;}});return found;},inGroupsOf:function(number,fillWith){fillWith=fillWith===undefined?null:fillWith;return this.eachSlice(number,function(slice){while(slice.length<number)slice.push(fillWith);return slice;});},inject:function(memo,iterator){this.each(function(value,index){memo=iterator(memo,value,index);});return memo;},invoke:function(method){var args=$A(arguments).slice(1);return this.map(function(value){return value[method].apply(value,args);});},max:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(result==undefined||value>=result)
result=value;});return result;},min:function(iterator){var result;this.each(function(value,index){value=(iterator||Prototype.K)(value,index);if(result==undefined||value<result)
result=value;});return result;},partition:function(iterator){var trues=[],falses=[];this.each(function(value,index){((iterator||Prototype.K)(value,index)?trues:falses).push(value);});return[trues,falses];},pluck:function(property){var results=[];this.each(function(value,index){results.push(value[property]);});return results;},reject:function(iterator){var results=[];this.each(function(value,index){if(!iterator(value,index))
results.push(value);});return results;},sortBy:function(iterator){return this.map(function(value,index){return{value:value,criteria:iterator(value,index)};}).sort(function(left,right){var a=left.criteria,b=right.criteria;return a<b?-1:a>b?1:0;}).pluck('value');},toArray:function(){return this.map();},zip:function(){var iterator=Prototype.K,args=$A(arguments);if(typeof args.last()=='function')
iterator=args.pop();var collections=[this].concat(args).map($A);return this.map(function(value,index){return iterator(collections.pluck(index));});},size:function(){return this.toArray().length;},inspect:function(){return'#<Enumerable:'+this.toArray().inspect()+'>';}}
Object.extend(Enumerable,{map:Enumerable.collect,find:Enumerable.detect,select:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray});var $A=Array.from=function(iterable){if(!iterable)return[];if(iterable.toArray){return iterable.toArray();}else{var results=[];for(var i=0,length=iterable.length;i<length;i++)
results.push(iterable[i]);return results;}}
Object.extend(Array.prototype,Enumerable);if(!Array.prototype._reverse)
Array.prototype._reverse=Array.prototype.reverse;Object.extend(Array.prototype,{_each:function(iterator){for(var i=0,length=this.length;i<length;i++)
iterator(this[i]);},clear:function(){this.length=0;return this;},first:function(){return this[0];},last:function(){return this[this.length-1];},compact:function(){return this.select(function(value){return value!=null;});},flatten:function(){return this.inject([],function(array,value){return array.concat(value&&value.constructor==Array?value.flatten():[value]);});},without:function(){var values=$A(arguments);return this.select(function(value){return!values.include(value);});},indexOf:function(object){for(var i=0,length=this.length;i<length;i++)
if(this[i]==object)return i;return-1;},reverse:function(inline){return(inline!==false?this:this.toArray())._reverse();},reduce:function(){return this.length>1?this:this[0];},uniq:function(){return this.inject([],function(array,value){return array.include(value)?array:array.concat([value]);});},clone:function(){return[].concat(this);},size:function(){return this.length;},inspect:function(){return'['+this.map(Object.inspect).join(', ')+']';}});Array.prototype.toArray=Array.prototype.clone;function $w(string){string=string.strip();return string?string.split(/\s+/):[];}
if(window.opera){Array.prototype.concat=function(){var array=[];for(var i=0,length=this.length;i<length;i++)array.push(this[i]);for(var i=0,length=arguments.length;i<length;i++){if(arguments[i].constructor==Array){for(var j=0,arrayLength=arguments[i].length;j<arrayLength;j++)
array.push(arguments[i][j]);}else{array.push(arguments[i]);}}
return array;}}
var Hash=function(obj){Object.extend(this,obj||{});};Object.extend(Hash,{toQueryString:function(obj){var parts=[];this.prototype._each.call(obj,function(pair){if(!pair.key)return;if(pair.value&&pair.value.constructor==Array){var values=pair.value.compact();if(values.length<2)pair.value=values.reduce();else{key=encodeURIComponent(pair.key);values.each(function(value){value=value!=undefined?encodeURIComponent(value):'';parts.push(key+'='+encodeURIComponent(value));});return;}}
if(pair.value==undefined)pair[1]='';parts.push(pair.map(encodeURIComponent).join('='));});return parts.join('&');}});Object.extend(Hash.prototype,Enumerable);Object.extend(Hash.prototype,{_each:function(iterator){for(var key in this){var value=this[key];if(value&&value==Hash.prototype[key])continue;var pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}},keys:function(){return this.pluck('key');},values:function(){return this.pluck('value');},merge:function(hash){return $H(hash).inject(this,function(mergedHash,pair){mergedHash[pair.key]=pair.value;return mergedHash;});},remove:function(){var result;for(var i=0,length=arguments.length;i<length;i++){var value=this[arguments[i]];if(value!==undefined){if(result===undefined)result=value;else{if(result.constructor!=Array)result=[result];result.push(value)}}
delete this[arguments[i]];}
return result;},toQueryString:function(){return Hash.toQueryString(this);},inspect:function(){return'#<Hash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ');}).join(', ')+'}>';}});function $H(object){if(object&&object.constructor==Hash)return object;return new Hash(object);};ObjectRange=Class.create();Object.extend(ObjectRange.prototype,Enumerable);Object.extend(ObjectRange.prototype,{initialize:function(start,end,exclusive){this.start=start;this.end=end;this.exclusive=exclusive;},_each:function(iterator){var value=this.start;while(this.include(value)){iterator(value);value=value.succ();}},include:function(value){if(value<this.start)
return false;if(this.exclusive)
return value<this.end;return value<=this.end;}});var $R=function(start,end,exclusive){return new ObjectRange(start,end,exclusive);}
var Ajax={getTransport:function(){return Try.these(function(){return new XMLHttpRequest()},function(){return new ActiveXObject('Msxml2.XMLHTTP')},function(){return new ActiveXObject('Microsoft.XMLHTTP')})||false;},activeRequestCount:0}
Ajax.Responders={responders:[],_each:function(iterator){this.responders._each(iterator);},register:function(responder){if(!this.include(responder))
this.responders.push(responder);},unregister:function(responder){this.responders=this.responders.without(responder);},dispatch:function(callback,request,transport,json){this.each(function(responder){if(typeof responder[callback]=='function'){try{responder[callback].apply(responder,[request,transport,json]);}catch(e){}}});}};Object.extend(Ajax.Responders,Enumerable);Ajax.Responders.register({onCreate:function(){Ajax.activeRequestCount++;},onComplete:function(){Ajax.activeRequestCount--;}});Ajax.Base=function(){};Ajax.Base.prototype={setOptions:function(options){this.options={method:'post',asynchronous:true,contentType:'application/x-www-form-urlencoded',encoding:'UTF-8',parameters:''}
Object.extend(this.options,options||{});this.options.method=this.options.method.toLowerCase();if(typeof this.options.parameters=='string')
this.options.parameters=this.options.parameters.toQueryParams();}}
Ajax.Request=Class.create();Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Request.prototype=Object.extend(new Ajax.Base(),{_complete:false,initialize:function(url,options){this.transport=Ajax.getTransport();this.setOptions(options);this.request(url);},request:function(url){this.url=url;this.method=this.options.method;var params=this.options.parameters;if(!['get','post'].include(this.method)){params['_method']=this.method;this.method='post';}
params=Hash.toQueryString(params);if(params&&/Konqueror|Safari|KHTML/.test(navigator.userAgent))params+='&_='
if(this.method=='get'&&params)
this.url+=(this.url.indexOf('?')>-1?'&':'?')+params;try{Ajax.Responders.dispatch('onCreate',this,this.transport);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous)
setTimeout(function(){this.respondToReadyState(1)}.bind(this),10);this.transport.onreadystatechange=this.onStateChange.bind(this);this.setRequestHeaders();var body=this.method=='post'?(this.options.postBody||params):null;this.transport.send(body);if(!this.options.asynchronous&&this.transport.overrideMimeType)
this.onStateChange();}
catch(e){this.dispatchException(e);}},onStateChange:function(){var readyState=this.transport.readyState;if(readyState>1&&!((readyState==4)&&this._complete))
this.respondToReadyState(this.transport.readyState);},setRequestHeaders:function(){var headers={'X-Requested-With':'XMLHttpRequest','X-Prototype-Version':Prototype.Version,'Accept':'text/javascript, text/html, application/xml, text/xml, */*'};if(this.method=='post'){headers['Content-type']=this.options.contentType+
(this.options.encoding?'; charset='+this.options.encoding:'');if(this.transport.overrideMimeType&&(navigator.userAgent.match(/Gecko\/(\d{4})/)||[0,2005])[1]<2005)
headers['Connection']='close';}
if(typeof this.options.requestHeaders=='object'){var extras=this.options.requestHeaders;if(typeof extras.push=='function')
for(var i=0,length=extras.length;i<length;i+=2)
headers[extras[i]]=extras[i+1];else
$H(extras).each(function(pair){headers[pair.key]=pair.value});}
for(var name in headers)
this.transport.setRequestHeader(name,headers[name]);},success:function(){return!this.transport.status||(this.transport.status>=200&&this.transport.status<300);},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState];var transport=this.transport,json=this.evalJSON();if(state=='Complete'){try{this._complete=true;(this.options['on'+this.transport.status]||this.options['on'+(this.success()?'Success':'Failure')]||Prototype.emptyFunction)(transport,json);}catch(e){this.dispatchException(e);}
if((this.getHeader('Content-type')||'text/javascript').strip().match(/^(text|application)\/(x-)?(java|ecma)script(;.*)?$/i))
this.evalResponse();}
try{(this.options['on'+state]||Prototype.emptyFunction)(transport,json);Ajax.Responders.dispatch('on'+state,this,transport,json);}catch(e){this.dispatchException(e);}
if(state=='Complete'){this.transport.onreadystatechange=Prototype.emptyFunction;}},getHeader:function(name){try{return this.transport.getResponseHeader(name);}catch(e){return null}},evalJSON:function(){try{var json=this.getHeader('X-JSON');return json?eval('('+json+')'):null;}catch(e){return null}},evalResponse:function(){try{return eval(this.transport.responseText);}catch(e){this.dispatchException(e);}},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Updater=Class.create();Object.extend(Object.extend(Ajax.Updater.prototype,Ajax.Request.prototype),{initialize:function(container,url,options){this.container={success:(container.success||container),failure:(container.failure||(container.success?null:container))}
this.transport=Ajax.getTransport();this.setOptions(options);var onComplete=this.options.onComplete||Prototype.emptyFunction;this.options.onComplete=(function(transport,param){this.updateContent();onComplete(transport,param);}).bind(this);this.request(url);},updateContent:function(){var receiver=this.container[this.success()?'success':'failure'];var response=this.transport.responseText;if(!this.options.evalScripts)response=response.stripScripts();if(receiver=$(receiver)){if(this.options.insertion)
new this.options.insertion(receiver,response);else
receiver.update(response);}
if(this.success()){if(this.onComplete)
setTimeout(this.onComplete.bind(this),10);}}});Ajax.PeriodicalUpdater=Class.create();Ajax.PeriodicalUpdater.prototype=Object.extend(new Ajax.Base(),{initialize:function(container,url,options){this.setOptions(options);this.onComplete=this.options.onComplete;this.frequency=(this.options.frequency||2);this.decay=(this.options.decay||1);this.updater={};this.container=container;this.url=url;this.start();},start:function(){this.options.onComplete=this.updateComplete.bind(this);this.onTimerEvent();},stop:function(){this.updater.options.onComplete=undefined;clearTimeout(this.timer);(this.onComplete||Prototype.emptyFunction).apply(this,arguments);},updateComplete:function(request){if(this.options.decay){this.decay=(request.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=request.responseText;}
this.timer=setTimeout(this.onTimerEvent.bind(this),this.decay*this.frequency*1000);},onTimerEvent:function(){this.updater=new Ajax.Updater(this.container,this.url,this.options);}});function $(element){if(arguments.length>1){for(var i=0,elements=[],length=arguments.length;i<length;i++)
elements.push($(arguments[i]));return elements;}
if(typeof element=='string')
element=document.getElementById(element);return Element.extend(element);}
if(Prototype.BrowserFeatures.XPath){document._getElementsByXPath=function(expression,parentElement){var results=[];var query=document.evaluate(expression,$(parentElement)||document,null,XPathResult.ORDERED_NODE_SNAPSHOT_TYPE,null);for(var i=0,length=query.snapshotLength;i<length;i++)
results.push(query.snapshotItem(i));return results;};}
document.getElementsByClassName=function(className,parentElement){if(Prototype.BrowserFeatures.XPath){var q=".//*[contains(concat(' ', @class, ' '), ' "+className+" ')]";return document._getElementsByXPath(q,parentElement);}else{var children=($(parentElement)||document.body).getElementsByTagName('*');var elements=[],child;for(var i=0,length=children.length;i<length;i++){child=children[i];if(Element.hasClassName(child,className))
elements.push(Element.extend(child));}
return elements;}};if(!window.Element)
var Element=new Object();Element.extend=function(element){if(!element||_nativeExtensions||element.nodeType==3)return element;if(!element._extended&&element.tagName&&element!=window){var methods=Object.clone(Element.Methods),cache=Element.extend.cache;if(element.tagName=='FORM')
Object.extend(methods,Form.Methods);if(['INPUT','TEXTAREA','SELECT'].include(element.tagName))
Object.extend(methods,Form.Element.Methods);Object.extend(methods,Element.Methods.Simulated);for(var property in methods){var value=methods[property];if(typeof value=='function'&&!(property in element))
element[property]=cache.findOrStore(value);}}
element._extended=true;return element;};Element.extend.cache={findOrStore:function(value){return this[value]=this[value]||function(){return value.apply(null,[this].concat($A(arguments)));}}};Element.Methods={visible:function(element){return $(element).style.display!='none';},toggle:function(element){element=$(element);Element[Element.visible(element)?'hide':'show'](element);return element;},hide:function(element){$(element).style.display='none';return element;},show:function(element){$(element).style.display='';return element;},remove:function(element){element=$(element);element.parentNode.removeChild(element);return element;},update:function(element,html){html=typeof html=='undefined'?'':html.toString();$(element).innerHTML=html.stripScripts();setTimeout(function(){html.evalScripts()},10);return element;},replace:function(element,html){element=$(element);html=typeof html=='undefined'?'':html.toString();if(element.outerHTML){element.outerHTML=html.stripScripts();}else{var range=element.ownerDocument.createRange();range.selectNodeContents(element);element.parentNode.replaceChild(range.createContextualFragment(html.stripScripts()),element);}
setTimeout(function(){html.evalScripts()},10);return element;},inspect:function(element){element=$(element);var result='<'+element.tagName.toLowerCase();$H({'id':'id','className':'class'}).each(function(pair){var property=pair.first(),attribute=pair.last();var value=(element[property]||'').toString();if(value)result+=' '+attribute+'='+value.inspect(true);});return result+'>';},recursivelyCollect:function(element,property){element=$(element);var elements=[];while(element=element[property])
if(element.nodeType==1)
elements.push(Element.extend(element));return elements;},ancestors:function(element){return $(element).recursivelyCollect('parentNode');},descendants:function(element){return $A($(element).getElementsByTagName('*'));},immediateDescendants:function(element){if(!(element=$(element).firstChild))return[];while(element&&element.nodeType!=1)element=element.nextSibling;if(element)return[element].concat($(element).nextSiblings());return[];},previousSiblings:function(element){return $(element).recursivelyCollect('previousSibling');},nextSiblings:function(element){return $(element).recursivelyCollect('nextSibling');},siblings:function(element){element=$(element);return element.previousSiblings().reverse().concat(element.nextSiblings());},match:function(element,selector){if(typeof selector=='string')
selector=new Selector(selector);return selector.match($(element));},up:function(element,expression,index){return Selector.findElement($(element).ancestors(),expression,index);},down:function(element,expression,index){return Selector.findElement($(element).descendants(),expression,index);},previous:function(element,expression,index){return Selector.findElement($(element).previousSiblings(),expression,index);},next:function(element,expression,index){return Selector.findElement($(element).nextSiblings(),expression,index);},getElementsBySelector:function(){var args=$A(arguments),element=$(args.shift());return Selector.findChildElements(element,args);},getElementsByClassName:function(element,className){return document.getElementsByClassName(className,element);},readAttribute:function(element,name){element=$(element);if(document.all&&!window.opera){var t=Element._attributeTranslations;if(t.values[name])return t.values[name](element,name);if(t.names[name])name=t.names[name];var attribute=element.attributes[name];if(attribute)return attribute.nodeValue;}
return element.getAttribute(name);},getHeight:function(element){return $(element).getDimensions().height;},getWidth:function(element){return $(element).getDimensions().width;},classNames:function(element){return new Element.ClassNames(element);},hasClassName:function(element,className){if(!(element=$(element)))return;var elementClassName=element.className;if(elementClassName.length==0)return false;if(elementClassName==className||elementClassName.match(new RegExp("(^|\\s)"+className+"(\\s|$)")))
return true;return false;},addClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element).add(className);return element;},removeClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element).remove(className);return element;},toggleClassName:function(element,className){if(!(element=$(element)))return;Element.classNames(element)[element.hasClassName(className)?'remove':'add'](className);return element;},observe:function(){Event.observe.apply(Event,arguments);return $A(arguments).first();},stopObserving:function(){Event.stopObserving.apply(Event,arguments);return $A(arguments).first();},cleanWhitespace:function(element){element=$(element);var node=element.firstChild;while(node){var nextNode=node.nextSibling;if(node.nodeType==3&&!/\S/.test(node.nodeValue))
element.removeChild(node);node=nextNode;}
return element;},empty:function(element){return $(element).innerHTML.match(/^\s*$/);},descendantOf:function(element,ancestor){element=$(element),ancestor=$(ancestor);while(element=element.parentNode)
if(element==ancestor)return true;return false;},scrollTo:function(element){element=$(element);var pos=Position.cumulativeOffset(element);window.scrollTo(pos[0],pos[1]);return element;},getStyle:function(element,style){element=$(element);if(['float','cssFloat'].include(style))
style=(typeof element.style.styleFloat!='undefined'?'styleFloat':'cssFloat');style=style.camelize();var value=element.style[style];if(!value){if(document.defaultView&&document.defaultView.getComputedStyle){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null;}else if(element.currentStyle){value=element.currentStyle[style];}}
if((value=='auto')&&['width','height'].include(style)&&(element.getStyle('display')!='none'))
value=element['offset'+style.capitalize()]+'px';if(window.opera&&['left','top','right','bottom'].include(style))
if(Element.getStyle(element,'position')=='static')value='auto';if(style=='opacity'){if(value)return parseFloat(value);if(value=(element.getStyle('filter')||'').match(/alpha\(opacity=(.*)\)/))
if(value[1])return parseFloat(value[1])/100;return 1.0;}
return value=='auto'?null:value;},setStyle:function(element,style){element=$(element);for(var name in style){var value=style[name];if(name=='opacity'){if(value==1){value=(/Gecko/.test(navigator.userAgent)&&!/Konqueror|Safari|KHTML/.test(navigator.userAgent))?0.999999:1.0;if(/MSIE/.test(navigator.userAgent)&&!window.opera)
element.style.filter=element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');}else if(value===''){if(/MSIE/.test(navigator.userAgent)&&!window.opera)
element.style.filter=element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'');}else{if(value<0.00001)value=0;if(/MSIE/.test(navigator.userAgent)&&!window.opera)
element.style.filter=element.getStyle('filter').replace(/alpha\([^\)]*\)/gi,'')+'alpha(opacity='+value*100+')';}}else if(['float','cssFloat'].include(name))name=(typeof element.style.styleFloat!='undefined')?'styleFloat':'cssFloat';element.style[name.camelize()]=value;}
return element;},getDimensions:function(element){element=$(element);var display=$(element).getStyle('display');if(display!='none'&&display!=null)
return{width:element.offsetWidth,height:element.offsetHeight};var els=element.style;var originalVisibility=els.visibility;var originalPosition=els.position;var originalDisplay=els.display;els.visibility='hidden';els.position='absolute';els.display='block';var originalWidth=element.clientWidth;var originalHeight=element.clientHeight;els.display=originalDisplay;els.position=originalPosition;els.visibility=originalVisibility;return{width:originalWidth,height:originalHeight};},makePositioned:function(element){element=$(element);var pos=Element.getStyle(element,'position');if(pos=='static'||!pos){element._madePositioned=true;element.style.position='relative';if(window.opera){element.style.top=0;element.style.left=0;}}
return element;},undoPositioned:function(element){element=$(element);if(element._madePositioned){element._madePositioned=undefined;element.style.position=element.style.top=element.style.left=element.style.bottom=element.style.right='';}
return element;},makeClipping:function(element){element=$(element);if(element._overflow)return element;element._overflow=element.style.overflow||'auto';if((Element.getStyle(element,'overflow')||'visible')!='hidden')
element.style.overflow='hidden';return element;},undoClipping:function(element){element=$(element);if(!element._overflow)return element;element.style.overflow=element._overflow=='auto'?'':element._overflow;element._overflow=null;return element;}};Object.extend(Element.Methods,{childOf:Element.Methods.descendantOf});Element._attributeTranslations={};Element._attributeTranslations.names={colspan:"colSpan",rowspan:"rowSpan",valign:"vAlign",datetime:"dateTime",accesskey:"accessKey",tabindex:"tabIndex",enctype:"encType",maxlength:"maxLength",readonly:"readOnly",longdesc:"longDesc"};Element._attributeTranslations.values={_getAttr:function(element,attribute){return element.getAttribute(attribute,2);},_flag:function(element,attribute){return $(element).hasAttribute(attribute)?attribute:null;},style:function(element){return element.style.cssText.toLowerCase();},title:function(element){var node=element.getAttributeNode('title');return node.specified?node.nodeValue:null;}};Object.extend(Element._attributeTranslations.values,{href:Element._attributeTranslations.values._getAttr,src:Element._attributeTranslations.values._getAttr,disabled:Element._attributeTranslations.values._flag,checked:Element._attributeTranslations.values._flag,readonly:Element._attributeTranslations.values._flag,multiple:Element._attributeTranslations.values._flag});Element.Methods.Simulated={hasAttribute:function(element,attribute){var t=Element._attributeTranslations;attribute=t.names[attribute]||attribute;return $(element).getAttributeNode(attribute).specified;}};if(document.all&&!window.opera){Element.Methods.update=function(element,html){element=$(element);html=typeof html=='undefined'?'':html.toString();var tagName=element.tagName.toUpperCase();if(['THEAD','TBODY','TR','TD'].include(tagName)){var div=document.createElement('div');switch(tagName){case'THEAD':case'TBODY':div.innerHTML='<table><tbody>'+html.stripScripts()+'</tbody></table>';depth=2;break;case'TR':div.innerHTML='<table><tbody><tr>'+html.stripScripts()+'</tr></tbody></table>';depth=3;break;case'TD':div.innerHTML='<table><tbody><tr><td>'+html.stripScripts()+'</td></tr></tbody></table>';depth=4;}
$A(element.childNodes).each(function(node){element.removeChild(node)});depth.times(function(){div=div.firstChild});$A(div.childNodes).each(function(node){element.appendChild(node)});}else{element.innerHTML=html.stripScripts();}
setTimeout(function(){html.evalScripts()},10);return element;}};Object.extend(Element,Element.Methods);var _nativeExtensions=false;if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))
['','Form','Input','TextArea','Select'].each(function(tag){var className='HTML'+tag+'Element';if(window[className])return;var klass=window[className]={};klass.prototype=document.createElement(tag?tag.toLowerCase():'div').__proto__;});Element.addMethods=function(methods){Object.extend(Element.Methods,methods||{});function copy(methods,destination,onlyIfAbsent){onlyIfAbsent=onlyIfAbsent||false;var cache=Element.extend.cache;for(var property in methods){var value=methods[property];if(!onlyIfAbsent||!(property in destination))
destination[property]=cache.findOrStore(value);}}
if(typeof HTMLElement!='undefined'){copy(Element.Methods,HTMLElement.prototype);copy(Element.Methods.Simulated,HTMLElement.prototype,true);copy(Form.Methods,HTMLFormElement.prototype);[HTMLInputElement,HTMLTextAreaElement,HTMLSelectElement].each(function(klass){copy(Form.Element.Methods,klass.prototype);});_nativeExtensions=true;}}
var Toggle=new Object();Toggle.display=Element.toggle;Abstract.Insertion=function(adjacency){this.adjacency=adjacency;}
Abstract.Insertion.prototype={initialize:function(element,content){this.element=$(element);this.content=content.stripScripts();if(this.adjacency&&this.element.insertAdjacentHTML){try{this.element.insertAdjacentHTML(this.adjacency,this.content);}catch(e){var tagName=this.element.tagName.toUpperCase();if(['TBODY','TR'].include(tagName)){this.insertContent(this.contentFromAnonymousTable());}else{throw e;}}}else{this.range=this.element.ownerDocument.createRange();if(this.initializeRange)this.initializeRange();this.insertContent([this.range.createContextualFragment(this.content)]);}
setTimeout(function(){content.evalScripts()},10);},contentFromAnonymousTable:function(){var div=document.createElement('div');div.innerHTML='<table><tbody>'+this.content+'</tbody></table>';return $A(div.childNodes[0].childNodes[0].childNodes);}}
var Insertion=new Object();Insertion.Before=Class.create();Insertion.Before.prototype=Object.extend(new Abstract.Insertion('beforeBegin'),{initializeRange:function(){this.range.setStartBefore(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element);}).bind(this));}});Insertion.Top=Class.create();Insertion.Top.prototype=Object.extend(new Abstract.Insertion('afterBegin'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(true);},insertContent:function(fragments){fragments.reverse(false).each((function(fragment){this.element.insertBefore(fragment,this.element.firstChild);}).bind(this));}});Insertion.Bottom=Class.create();Insertion.Bottom.prototype=Object.extend(new Abstract.Insertion('beforeEnd'),{initializeRange:function(){this.range.selectNodeContents(this.element);this.range.collapse(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.appendChild(fragment);}).bind(this));}});Insertion.After=Class.create();Insertion.After.prototype=Object.extend(new Abstract.Insertion('afterEnd'),{initializeRange:function(){this.range.setStartAfter(this.element);},insertContent:function(fragments){fragments.each((function(fragment){this.element.parentNode.insertBefore(fragment,this.element.nextSibling);}).bind(this));}});Element.ClassNames=Class.create();Element.ClassNames.prototype={initialize:function(element){this.element=$(element);},_each:function(iterator){this.element.className.split(/\s+/).select(function(name){return name.length>0;})._each(iterator);},set:function(className){this.element.className=className;},add:function(classNameToAdd){if(this.include(classNameToAdd))return;this.set($A(this).concat(classNameToAdd).join(' '));},remove:function(classNameToRemove){if(!this.include(classNameToRemove))return;this.set($A(this).without(classNameToRemove).join(' '));},toString:function(){return $A(this).join(' ');}};Object.extend(Element.ClassNames.prototype,Enumerable);var Selector=Class.create();Selector.prototype={initialize:function(expression){this.params={classNames:[]};this.expression=expression.toString().strip();this.parseExpression();this.compileMatcher();},parseExpression:function(){function abort(message){throw'Parse error in selector: '+message;}
if(this.expression=='')abort('empty expression');var params=this.params,expr=this.expression,match,modifier,clause,rest;while(match=expr.match(/^(.*)\[([a-z0-9_:-]+?)(?:([~\|!]?=)(?:"([^"]*)"|([^\]\s]*)))?\]$/i)){params.attributes=params.attributes||[];params.attributes.push({name:match[2],operator:match[3],value:match[4]||match[5]||''});expr=match[1];}
if(expr=='*')return this.params.wildcard=true;while(match=expr.match(/^([^a-z0-9_-])?([a-z0-9_-]+)(.*)/i)){modifier=match[1],clause=match[2],rest=match[3];switch(modifier){case'#':params.id=clause;break;case'.':params.classNames.push(clause);break;case'':case undefined:params.tagName=clause.toUpperCase();break;default:abort(expr.inspect());}
expr=rest;}
if(expr.length>0)abort(expr.inspect());},buildMatchExpression:function(){var params=this.params,conditions=[],clause;if(params.wildcard)
conditions.push('true');if(clause=params.id)
conditions.push('element.readAttribute("id") == '+clause.inspect());if(clause=params.tagName)
conditions.push('element.tagName.toUpperCase() == '+clause.inspect());if((clause=params.classNames).length>0)
for(var i=0,length=clause.length;i<length;i++)
conditions.push('element.hasClassName('+clause[i].inspect()+')');if(clause=params.attributes){clause.each(function(attribute){var value='element.readAttribute('+attribute.name.inspect()+')';var splitValueBy=function(delimiter){return value+' && '+value+'.split('+delimiter.inspect()+')';}
switch(attribute.operator){case'=':conditions.push(value+' == '+attribute.value.inspect());break;case'~=':conditions.push(splitValueBy(' ')+'.include('+attribute.value.inspect()+')');break;case'|=':conditions.push(splitValueBy('-')+'.first().toUpperCase() == '+attribute.value.toUpperCase().inspect());break;case'!=':conditions.push(value+' != '+attribute.value.inspect());break;case'':case undefined:conditions.push('element.hasAttribute('+attribute.name.inspect()+')');break;default:throw'Unknown operator '+attribute.operator+' in selector';}});}
return conditions.join(' && ');},compileMatcher:function(){this.match=new Function('element','if (!element.tagName) return false; \
      element = $(element); \
      return '+this.buildMatchExpression());},findElements:function(scope){var element;if(element=$(this.params.id))
if(this.match(element))
if(!scope||Element.childOf(element,scope))
return[element];scope=(scope||document).getElementsByTagName(this.params.tagName||'*');var results=[];for(var i=0,length=scope.length;i<length;i++)
if(this.match(element=scope[i]))
results.push(Element.extend(element));return results;},toString:function(){return this.expression;}}
Object.extend(Selector,{matchElements:function(elements,expression){var selector=new Selector(expression);return elements.select(selector.match.bind(selector)).map(Element.extend);},findElement:function(elements,expression,index){if(typeof expression=='number')index=expression,expression=false;return Selector.matchElements(elements,expression||'*')[index||0];},findChildElements:function(element,expressions){return expressions.map(function(expression){return expression.match(/[^\s"]+(?:"[^"]*"[^\s"]+)*/g).inject([null],function(results,expr){var selector=new Selector(expr);return results.inject([],function(elements,result){return elements.concat(selector.findElements(result||element));});});}).flatten();}});function $$(){return Selector.findChildElements(document,$A(arguments));}
var Form={reset:function(form){$(form).reset();return form;},serializeElements:function(elements,getHash){var data=elements.inject({},function(result,element){if(!element.disabled&&element.name){var key=element.name,value=$(element).getValue();if(value!=undefined){if(result[key]){if(result[key].constructor!=Array)result[key]=[result[key]];result[key].push(value);}
else result[key]=value;}}
return result;});return getHash?data:Hash.toQueryString(data);}};Form.Methods={serialize:function(form,getHash){return Form.serializeElements(Form.getElements(form),getHash);},getElements:function(form){return $A($(form).getElementsByTagName('*')).inject([],function(elements,child){if(Form.Element.Serializers[child.tagName.toLowerCase()])
elements.push(Element.extend(child));return elements;});},getInputs:function(form,typeName,name){form=$(form);var inputs=form.getElementsByTagName('input');if(!typeName&&!name)return $A(inputs).map(Element.extend);for(var i=0,matchingInputs=[],length=inputs.length;i<length;i++){var input=inputs[i];if((typeName&&input.type!=typeName)||(name&&input.name!=name))
continue;matchingInputs.push(Element.extend(input));}
return matchingInputs;},disable:function(form){form=$(form);form.getElements().each(function(element){element.blur();element.disabled='true';});return form;},enable:function(form){form=$(form);form.getElements().each(function(element){element.disabled='';});return form;},findFirstElement:function(form){return $(form).getElements().find(function(element){return element.type!='hidden'&&!element.disabled&&['input','select','textarea'].include(element.tagName.toLowerCase());});},focusFirstElement:function(form){form=$(form);form.findFirstElement().activate();return form;}}
Object.extend(Form,Form.Methods);Form.Element={focus:function(element){$(element).focus();return element;},select:function(element){$(element).select();return element;}}
Form.Element.Methods={serialize:function(element){element=$(element);if(!element.disabled&&element.name){var value=element.getValue();if(value!=undefined){var pair={};pair[element.name]=value;return Hash.toQueryString(pair);}}
return'';},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();return Form.Element.Serializers[method](element);},clear:function(element){$(element).value='';return element;},present:function(element){return $(element).value!='';},activate:function(element){element=$(element);element.focus();if(element.select&&(element.tagName.toLowerCase()!='input'||!['button','reset','submit'].include(element.type)))
element.select();return element;},disable:function(element){element=$(element);element.disabled=true;return element;},enable:function(element){element=$(element);element.blur();element.disabled=false;return element;}}
Object.extend(Form.Element,Form.Element.Methods);var Field=Form.Element;var $F=Form.Element.getValue;Form.Element.Serializers={input:function(element){switch(element.type.toLowerCase()){case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element);default:return Form.Element.Serializers.textarea(element);}},inputSelector:function(element){return element.checked?element.value:null;},textarea:function(element){return element.value;},select:function(element){return this[element.type=='select-one'?'selectOne':'selectMany'](element);},selectOne:function(element){var index=element.selectedIndex;return index>=0?this.optionValue(element.options[index]):null;},selectMany:function(element){var values,length=element.length;if(!length)return null;for(var i=0,values=[];i<length;i++){var opt=element.options[i];if(opt.selected)values.push(this.optionValue(opt));}
return values;},optionValue:function(opt){return Element.extend(opt).hasAttribute('value')?opt.value:opt.text;}}
Abstract.TimedObserver=function(){}
Abstract.TimedObserver.prototype={initialize:function(element,frequency,callback){this.frequency=frequency;this.element=$(element);this.callback=callback;this.lastValue=this.getValue();this.registerCallback();},registerCallback:function(){setInterval(this.onTimerEvent.bind(this),this.frequency*1000);},onTimerEvent:function(){var value=this.getValue();var changed=('string'==typeof this.lastValue&&'string'==typeof value?this.lastValue!=value:String(this.lastValue)!=String(value));if(changed){this.callback(this.element,value);this.lastValue=value;}}}
Form.Element.Observer=Class.create();Form.Element.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.Observer=Class.create();Form.Observer.prototype=Object.extend(new Abstract.TimedObserver(),{getValue:function(){return Form.serialize(this.element);}});Abstract.EventObserver=function(){}
Abstract.EventObserver.prototype={initialize:function(element,callback){this.element=$(element);this.callback=callback;this.lastValue=this.getValue();if(this.element.tagName.toLowerCase()=='form')
this.registerFormCallbacks();else
this.registerCallback(this.element);},onElementEvent:function(){var value=this.getValue();if(this.lastValue!=value){this.callback(this.element,value);this.lastValue=value;}},registerFormCallbacks:function(){Form.getElements(this.element).each(this.registerCallback.bind(this));},registerCallback:function(element){if(element.type){switch(element.type.toLowerCase()){case'checkbox':case'radio':Event.observe(element,'click',this.onElementEvent.bind(this));break;default:Event.observe(element,'change',this.onElementEvent.bind(this));break;}}}}
Form.Element.EventObserver=Class.create();Form.Element.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.Element.getValue(this.element);}});Form.EventObserver=Class.create();Form.EventObserver.prototype=Object.extend(new Abstract.EventObserver(),{getValue:function(){return Form.serialize(this.element);}});if(!window.Event){var Event=new Object();}
Object.extend(Event,{KEY_BACKSPACE:8,KEY_TAB:9,KEY_RETURN:13,KEY_ESC:27,KEY_LEFT:37,KEY_UP:38,KEY_RIGHT:39,KEY_DOWN:40,KEY_DELETE:46,KEY_HOME:36,KEY_END:35,KEY_PAGEUP:33,KEY_PAGEDOWN:34,element:function(event){return event.target||event.srcElement;},isLeftClick:function(event){return(((event.which)&&(event.which==1))||((event.button)&&(event.button==1)));},pointerX:function(event){return event.pageX||(event.clientX+
(document.documentElement.scrollLeft||document.body.scrollLeft));},pointerY:function(event){return event.pageY||(event.clientY+
(document.documentElement.scrollTop||document.body.scrollTop));},stop:function(event){if(event.preventDefault){event.preventDefault();event.stopPropagation();}else{event.returnValue=false;event.cancelBubble=true;}},findElement:function(event,tagName){var element=Event.element(event);while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase())))
element=element.parentNode;return element;},observers:false,_observeAndCache:function(element,name,observer,useCapture){if(!this.observers)this.observers=[];if(element.addEventListener){this.observers.push([element,name,observer,useCapture]);element.addEventListener(name,observer,useCapture);}else if(element.attachEvent){this.observers.push([element,name,observer,useCapture]);element.attachEvent('on'+name,observer);}},unloadCache:function(){if(!Event.observers)return;for(var i=0,length=Event.observers.length;i<length;i++){Event.stopObserving.apply(this,Event.observers[i]);Event.observers[i][0]=null;}
Event.observers=false;},observe:function(element,name,observer,useCapture){element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.attachEvent))
name='keydown';Event._observeAndCache(element,name,observer,useCapture);},stopObserving:function(element,name,observer,useCapture){element=$(element);useCapture=useCapture||false;if(name=='keypress'&&(navigator.appVersion.match(/Konqueror|Safari|KHTML/)||element.detachEvent))
name='keydown';if(element.removeEventListener){element.removeEventListener(name,observer,useCapture);}else if(element.detachEvent){try{element.detachEvent('on'+name,observer);}catch(e){}}}});if(navigator.appVersion.match(/\bMSIE\b/))
Event.observe(window,'unload',Event.unloadCache,false);var Position={includeScrollOffsets:false,prepare:function(){this.deltaX=window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft||0;this.deltaY=window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop||0;},realOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return[valueL,valueT];},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return[valueL,valueT];},positionedOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;if(element){if(element.tagName=='BODY')break;var p=Element.getStyle(element,'position');if(p=='relative'||p=='absolute')break;}}while(element);return[valueL,valueT];},offsetParent:function(element){if(element.offsetParent)return element.offsetParent;if(element==document.body)return element;while((element=element.parentNode)&&element!=document.body)
if(Element.getStyle(element,'position')!='static')
return element;return document.body;},within:function(element,x,y){if(this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=this.cumulativeOffset(element);return(y>=this.offset[1]&&y<this.offset[1]+element.offsetHeight&&x>=this.offset[0]&&x<this.offset[0]+element.offsetWidth);},withinIncludingScrolloffsets:function(element,x,y){var offsetcache=this.realOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=this.cumulativeOffset(element);return(this.ycomp>=this.offset[1]&&this.ycomp<this.offset[1]+element.offsetHeight&&this.xcomp>=this.offset[0]&&this.xcomp<this.offset[0]+element.offsetWidth);},overlap:function(mode,element){if(!mode)return 0;if(mode=='vertical')
return((this.offset[1]+element.offsetHeight)-this.ycomp)/element.offsetHeight;if(mode=='horizontal')
return((this.offset[0]+element.offsetWidth)-this.xcomp)/element.offsetWidth;},page:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{if(!window.opera||element.tagName=='BODY'){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}}while(element=element.parentNode);return[valueL,valueT];},clone:function(source,target){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{})
source=$(source);var p=Position.page(source);target=$(target);var delta=[0,0];var parent=null;if(Element.getStyle(target,'position')=='absolute'){parent=Position.offsetParent(target);delta=Position.page(parent);}
if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;}
if(options.setLeft)target.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)target.style.top=(p[1]-delta[1]+options.offsetTop)+'px';if(options.setWidth)target.style.width=source.offsetWidth+'px';if(options.setHeight)target.style.height=source.offsetHeight+'px';},absolutize:function(element){element=$(element);if(element.style.position=='absolute')return;Position.prepare();var offsets=Position.positionedOffset(element);var top=offsets[1];var left=offsets[0];var width=element.clientWidth;var height=element.clientHeight;element._originalLeft=left-parseFloat(element.style.left||0);element._originalTop=top-parseFloat(element.style.top||0);element._originalWidth=element.style.width;element._originalHeight=element.style.height;element.style.position='absolute';element.style.top=top+'px';element.style.left=left+'px';element.style.width=width+'px';element.style.height=height+'px';},relativize:function(element){element=$(element);if(element.style.position=='relative')return;Position.prepare();element.style.position='relative';var top=parseFloat(element.style.top||0)-(element._originalTop||0);var left=parseFloat(element.style.left||0)-(element._originalLeft||0);element.style.top=top+'px';element.style.left=left+'px';element.style.height=element._originalHeight;element.style.width=element._originalWidth;}}
if(/Konqueror|Safari|KHTML/.test(navigator.userAgent)){Position.cumulativeOffset=function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body)
if(Element.getStyle(element,'position')=='absolute')break;element=element.offsetParent;}while(element);return[valueL,valueT];}}
Element.addMethods();
if(typeof YAHOO=="undefined"){var YAHOO={};}YAHOO.namespace=function(){var a=arguments,o=null,i,j,d;for(i=0;i<a.length;++i){d=a[i].split(".");o=YAHOO;for(j=(d[0]=="YAHOO")?1:0;j<d.length;++j){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}return o;};YAHOO.log=function(_2,_3,_4){var l=YAHOO.widget.Logger;if(l&&l.log){return l.log(_2,_3,_4);}else{return false;}};YAHOO.extend=function(_6,_7,_8){var F=function(){};F.prototype=_7.prototype;_6.prototype=new F();_6.prototype.constructor=_6;_6.superclass=_7.prototype;if(_7.prototype.constructor==Object.prototype.constructor){_7.prototype.constructor=_7;}if(_8){for(var i in _8){_6.prototype[i]=_8[i];}}};YAHOO.augment=function(r,s){var rp=r.prototype,sp=s.prototype,a=arguments,i,p;if(a[2]){for(i=2;i<a.length;++i){rp[a[i]]=sp[a[i]];}}else{for(p in sp){if(!rp[p]){rp[p]=sp[p];}}}};YAHOO.namespace("util","widget","example");
(function(){var Y=YAHOO.util,getStyle,setStyle,id_counter=0,propertyCache={};var ua=navigator.userAgent.toLowerCase(),isOpera=(ua.indexOf('opera')>-1),isSafari=(ua.indexOf('safari')>-1),isGecko=(!isOpera&&!isSafari&&ua.indexOf('gecko')>-1),isIE=(!isOpera&&ua.indexOf('msie')>-1);var patterns={HYPHEN:/(-[a-z])/i};var toCamel=function(property){if(!patterns.HYPHEN.test(property)){return property;}if(propertyCache[property]){return propertyCache[property];}while(patterns.HYPHEN.exec(property)){property=property.replace(RegExp.$1,RegExp.$1.substr(1).toUpperCase());}propertyCache[property]=property;return property;};if(document.defaultView&&document.defaultView.getComputedStyle){getStyle=function(el,property){var value=null;var computed=document.defaultView.getComputedStyle(el,'');if(computed){value=computed[toCamel(property)];}return el.style[property]||value;};}else if(document.documentElement.currentStyle&&isIE){getStyle=function(el,property){switch(toCamel(property)){case'opacity':var val=100;try{val=el.filters['DXImageTransform.Microsoft.Alpha'].opacity;}catch(e){try{val=el.filters('alpha').opacity;}catch(e){}}return val/100;break;default:var value=el.currentStyle?el.currentStyle[property]:null;return(el.style[property]||value);}};}else{getStyle=function(el,property){return el.style[property];};}if(isIE){setStyle=function(el,property,val){switch(property){case'opacity':if(typeof el.style.filter=='string'){el.style.filter='alpha(opacity='+val*100+')';if(!el.currentStyle||!el.currentStyle.hasLayout){el.style.zoom=1;}}break;default:el.style[property]=val;}};}else{setStyle=function(el,property,val){el.style[property]=val;};}YAHOO.util.Dom={get:function(el){if(!el){return null;}if(typeof el!='string'&&!(el instanceof Array)){return el;}if(typeof el=='string'){return document.getElementById(el);}else{var collection=[];for(var i=0,len=el.length;i<len;++i){collection[collection.length]=Y.Dom.get(el[i]);}return collection;}return null;},getStyle:function(el,property){property=toCamel(property);var f=function(element){return getStyle(element,property);};return Y.Dom.batch(el,f,Y.Dom,true);},setStyle:function(el,property,val){property=toCamel(property);var f=function(element){setStyle(element,property,val);};Y.Dom.batch(el,f,Y.Dom,true);},getXY:function(el){var f=function(el){if(el.parentNode===null||el.offsetParent===null||this.getStyle(el,'display')=='none'){return false;}var parentNode=null;var pos=[];var box;if(el.getBoundingClientRect){box=el.getBoundingClientRect();var doc=document;if(!this.inDocument(el)&&parent.document!=document){doc=parent.document;if(!this.isAncestor(doc.documentElement,el)){return false;}}var scrollTop=Math.max(doc.documentElement.scrollTop,doc.body.scrollTop);var scrollLeft=Math.max(doc.documentElement.scrollLeft,doc.body.scrollLeft);return[box.left+scrollLeft,box.top+scrollTop];}else{pos=[el.offsetLeft,el.offsetTop];parentNode=el.offsetParent;if(parentNode!=el){while(parentNode){pos[0]+=parentNode.offsetLeft;pos[1]+=parentNode.offsetTop;parentNode=parentNode.offsetParent;}}if(isSafari&&this.getStyle(el,'position')=='absolute'){pos[0]-=document.body.offsetLeft;pos[1]-=document.body.offsetTop;}}if(el.parentNode){parentNode=el.parentNode;}else{parentNode=null;}while(parentNode&&parentNode.tagName.toUpperCase()!='BODY'&&parentNode.tagName.toUpperCase()!='HTML'){if(Y.Dom.getStyle(parentNode,'display')!='inline'){pos[0]-=parentNode.scrollLeft;pos[1]-=parentNode.scrollTop;}if(parentNode.parentNode){parentNode=parentNode.parentNode;}else{parentNode=null;}}return pos;};return Y.Dom.batch(el,f,Y.Dom,true);},getX:function(el){var f=function(el){return Y.Dom.getXY(el)[0];};return Y.Dom.batch(el,f,Y.Dom,true);},getY:function(el){var f=function(el){return Y.Dom.getXY(el)[1];};return Y.Dom.batch(el,f,Y.Dom,true);},setXY:function(el,pos,noRetry){var f=function(el){var style_pos=this.getStyle(el,'position');if(style_pos=='static'){this.setStyle(el,'position','relative');style_pos='relative';}var pageXY=this.getXY(el);if(pageXY===false){return false;}var delta=[parseInt(this.getStyle(el,'left'),10),parseInt(this.getStyle(el,'top'),10)];if(isNaN(delta[0])){delta[0]=(style_pos=='relative')?0:el.offsetLeft;}if(isNaN(delta[1])){delta[1]=(style_pos=='relative')?0:el.offsetTop;}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);}};Y.Dom.batch(el,f,Y.Dom,true);},setX:function(el,x){Y.Dom.setXY(el,[x,null]);},setY:function(el,y){Y.Dom.setXY(el,[null,y]);},getRegion:function(el){var f=function(el){var region=new Y.Region.getRegion(el);return region;};return Y.Dom.batch(el,f,Y.Dom,true);},getClientWidth:function(){return Y.Dom.getViewportWidth();},getClientHeight:function(){return Y.Dom.getViewportHeight();},getElementsByClassName:function(className,tag,root){var method=function(el){return Y.Dom.hasClass(el,className);};return Y.Dom.getElementsBy(method,tag,root);},hasClass:function(el,className){var re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)');var f=function(el){return re.test(el['className']);};return Y.Dom.batch(el,f,Y.Dom,true);},addClass:function(el,className){var f=function(el){if(this.hasClass(el,className)){return;}el['className']=[el['className'],className].join(' ');};Y.Dom.batch(el,f,Y.Dom,true);},removeClass:function(el,className){var re=new RegExp('(?:^|\\s+)'+className+'(?:\\s+|$)','g');var f=function(el){if(!this.hasClass(el,className)){return;}var c=el['className'];el['className']=c.replace(re,' ');if(this.hasClass(el,className)){this.removeClass(el,className);}};Y.Dom.batch(el,f,Y.Dom,true);},replaceClass:function(el,oldClassName,newClassName){if(oldClassName===newClassName){return false;}var re=new RegExp('(?:^|\\s+)'+oldClassName+'(?:\\s+|$)','g');var f=function(el){if(!this.hasClass(el,oldClassName)){this.addClass(el,newClassName);return;}el['className']=el['className'].replace(re,' '+newClassName+' ');if(this.hasClass(el,oldClassName)){this.replaceClass(el,oldClassName,newClassName);}};Y.Dom.batch(el,f,Y.Dom,true);},generateId:function(el,prefix){prefix=prefix||'yui-gen';el=el||{};var f=function(el){if(el){el=Y.Dom.get(el);}else{el={};}if(!el.id){el.id=prefix+id_counter++;}return el.id;};return Y.Dom.batch(el,f,Y.Dom,true);},isAncestor:function(haystack,needle){haystack=Y.Dom.get(haystack);if(!haystack||!needle){return false;}var f=function(needle){if(haystack.contains&&!isSafari){return haystack.contains(needle);}else if(haystack.compareDocumentPosition){return!!(haystack.compareDocumentPosition(needle)&16);}else{var parent=needle.parentNode;while(parent){if(parent==haystack){return true;}else if(!parent.tagName||parent.tagName.toUpperCase()=='HTML'){return false;}parent=parent.parentNode;}return false;}};return Y.Dom.batch(needle,f,Y.Dom,true);},inDocument:function(el){var f=function(el){return this.isAncestor(document.documentElement,el);};return Y.Dom.batch(el,f,Y.Dom,true);},getElementsBy:function(method,tag,root){tag=tag||'*';root=Y.Dom.get(root)||document;var nodes=[];var elements=root.getElementsByTagName(tag);if(!elements.length&&(tag=='*'&&root.all)){elements=root.all;}for(var i=0,len=elements.length;i<len;++i){if(method(elements[i])){nodes[nodes.length]=elements[i];}}return nodes;},batch:function(el,method,o,override){var id=el;el=Y.Dom.get(el);var scope=(override)?o:window;if(!el||el.tagName||!el.length){if(!el){return false;}return method.call(scope,el,o);}var collection=[];for(var i=0,len=el.length;i<len;++i){if(!el[i]){id=el[i];}collection[collection.length]=method.call(scope,el[i],o);}return collection;},getDocumentHeight:function(){var scrollHeight=(document.compatMode!='CSS1Compat')?document.body.scrollHeight:document.documentElement.scrollHeight;var h=Math.max(scrollHeight,Y.Dom.getViewportHeight());return h;},getDocumentWidth:function(){var scrollWidth=(document.compatMode!='CSS1Compat')?document.body.scrollWidth:document.documentElement.scrollWidth;var w=Math.max(scrollWidth,Y.Dom.getViewportWidth());return w;},getViewportHeight:function(){var height=self.innerHeight;var mode=document.compatMode;if((mode||isIE)&&!isOpera){height=(mode=='CSS1Compat')?document.documentElement.clientHeight:document.body.clientHeight;}return height;},getViewportWidth:function(){var width=self.innerWidth;var mode=document.compatMode;if(mode||isIE){width=(mode=='CSS1Compat')?document.documentElement.clientWidth:document.body.clientWidth;}return width;}};})();YAHOO.util.Region=function(t,r,b,l){this.top=t;this[1]=t;this.right=r;this.bottom=b;this.left=l;this[0]=l;};YAHOO.util.Region.prototype.contains=function(region){return(region.left>=this.left&&region.right<=this.right&&region.top>=this.top&&region.bottom<=this.bottom);};YAHOO.util.Region.prototype.getArea=function(){return((this.bottom-this.top)*(this.right-this.left));};YAHOO.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.util.Region(t,r,b,l);}else{return null;}};YAHOO.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.util.Region(t,r,b,l);};YAHOO.util.Region.prototype.toString=function(){return("Region {"+"top: "+this.top+", right: "+this.right+", bottom: "+this.bottom+", left: "+this.left+"}");};YAHOO.util.Region.getRegion=function(el){var p=YAHOO.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.util.Region(t,r,b,l);};YAHOO.util.Point=function(x,y){if(x instanceof Array){y=x[1];x=x[0];}this.x=this.right=this.left=this[0]=x;this.y=this.top=this.bottom=this[1]=y;};YAHOO.util.Point.prototype=new YAHOO.util.Region();
YAHOO.util.CustomEvent=function(_1,_2,_3,_4){this.type=_1;this.scope=_2||window;this.silent=_3;this.signature=_4||YAHOO.util.CustomEvent.LIST;this.subscribers=[];if(!this.silent){}var _5="_YUICEOnSubscribe";if(_1!==_5){this.subscribeEvent=new YAHOO.util.CustomEvent(_5,this,true);}};YAHOO.util.CustomEvent.LIST=0;YAHOO.util.CustomEvent.FLAT=1;YAHOO.util.CustomEvent.prototype={subscribe:function(fn,_7,_8){if(this.subscribeEvent){this.subscribeEvent.fire(fn,_7,_8);}this.subscribers.push(new YAHOO.util.Subscriber(fn,_7,_8));},unsubscribe:function(fn,_9){var _10=false;for(var i=0,len=this.subscribers.length;i<len;++i){var s=this.subscribers[i];if(s&&s.contains(fn,_9)){this._delete(i);_10=true;}}return _10;},fire:function(){var len=this.subscribers.length;if(!len&&this.silent){return true;}var _14=[],ret=true,i;for(i=0;i<arguments.length;++i){_14.push(arguments[i]);}var _15=_14.length;if(!this.silent){}for(i=0;i<len;++i){var s=this.subscribers[i];if(s){if(!this.silent){}var _16=s.getScope(this.scope);if(this.signature==YAHOO.util.CustomEvent.FLAT){var _17=null;if(_14.length>0){_17=_14[0];}ret=s.fn.call(_16,_17,s.obj);}else{ret=s.fn.call(_16,this.type,_14,s.obj);}if(false===ret){if(!this.silent){}return false;}}}return true;},unsubscribeAll:function(){for(var i=0,len=this.subscribers.length;i<len;++i){this._delete(len-1-i);}},_delete:function(_18){var s=this.subscribers[_18];if(s){delete s.fn;delete s.obj;}this.subscribers.splice(_18,1);},toString:function(){return"CustomEvent: "+"'"+this.type+"', "+"scope: "+this.scope;}};YAHOO.util.Subscriber=function(fn,obj,_20){this.fn=fn;this.obj=obj||null;this.override=_20;};YAHOO.util.Subscriber.prototype.getScope=function(_21){if(this.override){if(this.override===true){return this.obj;}else{return this.override;}}return _21;};YAHOO.util.Subscriber.prototype.contains=function(fn,obj){if(obj){return(this.fn==fn&&this.obj==obj);}else{return(this.fn==fn);}};YAHOO.util.Subscriber.prototype.toString=function(){return"Subscriber { obj: "+(this.obj||"")+", override: "+(this.override||"no")+" }";};if(!YAHOO.util.Event){YAHOO.util.Event=function(){var _22=false;var _23=[];var _24=[];var _25=[];var _26=[];var _27=0;var _28=[];var _29=[];var _30=0;return{POLL_RETRYS:200,POLL_INTERVAL:20,EL:0,TYPE:1,FN:2,WFN:3,OBJ:3,ADJ_SCOPE:4,isSafari:(/Safari|Konqueror|KHTML/gi).test(navigator.userAgent),isIE:(!this.isSafari&&!navigator.userAgent.match(/opera/gi)&&navigator.userAgent.match(/msie/gi)),_interval:null,startInterval:function(){if(!this._interval){var _31=this;var _32=function(){_31._tryPreloadAttach();};this._interval=setInterval(_32,this.POLL_INTERVAL);}},onAvailable:function(_33,_34,_35,_36){_28.push({id:_33,fn:_34,obj:_35,override:_36,checkReady:false});_27=this.POLL_RETRYS;this.startInterval();},onContentReady:function(_37,_38,_39,_40){_28.push({id:_37,fn:_38,obj:_39,override:_40,checkReady:true});_27=this.POLL_RETRYS;this.startInterval();},addListener:function(el,_42,fn,obj,_43){if(!fn||!fn.call){return false;}if(this._isValidCollection(el)){var ok=true;for(var i=0,len=el.length;i<len;++i){ok=this.on(el[i],_42,fn,obj,_43)&&ok;}return ok;}else{if(typeof el=="string"){var oEl=this.getEl(el);if(oEl){el=oEl;}else{this.onAvailable(el,function(){YAHOO.util.Event.on(el,_42,fn,obj,_43);});return true;}}}if(!el){return false;}if("unload"==_42&&obj!==this){_24[_24.length]=[el,_42,fn,obj,_43];return true;}var _46=el;if(_43){if(_43===true){_46=obj;}else{_46=_43;}}var _47=function(e){return fn.call(_46,YAHOO.util.Event.getEvent(e),obj);};var li=[el,_42,fn,_47,_46];var _50=_23.length;_23[_50]=li;if(this.useLegacyEvent(el,_42)){var _51=this.getLegacyIndex(el,_42);if(_51==-1||el!=_25[_51][0]){_51=_25.length;_29[el.id+_42]=_51;_25[_51]=[el,_42,el["on"+_42]];_26[_51]=[];el["on"+_42]=function(e){YAHOO.util.Event.fireLegacyEvent(YAHOO.util.Event.getEvent(e),_51);};}_26[_51].push(li);}else{this._simpleAdd(el,_42,_47,false);}return true;},fireLegacyEvent:function(e,_52){var ok=true;var le=_26[_52];for(var i=0,len=le.length;i<len;++i){var li=le[i];if(li&&li[this.WFN]){var _54=li[this.ADJ_SCOPE];var ret=li[this.WFN].call(_54,e);ok=(ok&&ret);}}return ok;},getLegacyIndex:function(el,_56){var key=this.generateId(el)+_56;if(typeof _29[key]=="undefined"){return-1;}else{return _29[key];}},useLegacyEvent:function(el,_58){if(!el.addEventListener&&!el.attachEvent){return true;}else{if(this.isSafari){if("click"==_58||"dblclick"==_58){return true;}}}return false;},removeListener:function(el,_59,fn){var i,len;if(typeof el=="string"){el=this.getEl(el);}else{if(this._isValidCollection(el)){var ok=true;for(i=0,len=el.length;i<len;++i){ok=(this.removeListener(el[i],_59,fn)&&ok);}return ok;}}if(!fn||!fn.call){return this.purgeElement(el,false,_59);}if("unload"==_59){for(i=0,len=_24.length;i<len;i++){var li=_24[i];if(li&&li[0]==el&&li[1]==_59&&li[2]==fn){_24.splice(i,1);return true;}}return false;}var _60=null;var _61=arguments[3];if("undefined"==typeof _61){_61=this._getCacheIndex(el,_59,fn);}if(_61>=0){_60=_23[_61];}if(!el||!_60){return false;}if(this.useLegacyEvent(el,_59)){var _62=this.getLegacyIndex(el,_59);var _63=_26[_62];if(_63){for(i=0,len=_63.length;i<len;++i){li=_63[i];if(li&&li[this.EL]==el&&li[this.TYPE]==_59&&li[this.FN]==fn){_63.splice(i,1);break;}}}}else{this._simpleRemove(el,_59,_60[this.WFN],false);}delete _23[_61][this.WFN];delete _23[_61][this.FN];_23.splice(_61,1);return true;},getTarget:function(ev,_65){var t=ev.target||ev.srcElement;return this.resolveTextNode(t);},resolveTextNode:function(_67){if(_67&&3==_67.nodeType){return _67.parentNode;}else{return _67;}},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;},getXY:function(ev){return[this.getPageX(ev),this.getPageY(ev)];},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 this.resolveTextNode(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.keyCode||0;},_getCacheIndex:function(el,_71,fn){for(var i=0,len=_23.length;i<len;++i){var li=_23[i];if(li&&li[this.FN]==fn&&li[this.EL]==el&&li[this.TYPE]==_71){return i;}}return-1;},generateId:function(el){var id=el.id;if(!id){id="yuievtautoid-"+_30;++_30;el.id=id;}return id;},_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(){},_load:function(e){_22=true;var EU=YAHOO.util.Event;if(this.isIE){EU._simpleRemove(window,"load",EU._load);}},_tryPreloadAttach:function(){if(this.locked){return false;}this.locked=true;var _75=!_22;if(!_75){_75=(_27>0);}var _76=[];for(var i=0,len=_28.length;i<len;++i){var _77=_28[i];if(_77){var el=this.getEl(_77.id);if(el){if(!_77.checkReady||_22||el.nextSibling||(document&&document.body)){var _78=el;if(_77.override){if(_77.override===true){_78=_77.obj;}else{_78=_77.override;}}_77.fn.call(_78,_77.obj);delete _28[i];}}else{_76.push(_77);}}}_27=(_76.length===0)?0:_27-1;if(_75){this.startInterval();}else{clearInterval(this._interval);this._interval=null;}this.locked=false;return true;},purgeElement:function(el,_79,_80){var _81=this.getListeners(el,_80);if(_81){for(var i=0,len=_81.length;i<len;++i){var l=_81[i];this.removeListener(el,l.type,l.fn);}}if(_79&&el&&el.childNodes){for(i=0,len=el.childNodes.length;i<len;++i){this.purgeElement(el.childNodes[i],_79,_80);}}},getListeners:function(el,_83){var _84=[];if(_23&&_23.length>0){for(var i=0,len=_23.length;i<len;++i){var l=_23[i];if(l&&l[this.EL]===el&&(!_83||_83===l[this.TYPE])){_84.push({type:l[this.TYPE],fn:l[this.FN],obj:l[this.OBJ],adjust:l[this.ADJ_SCOPE],index:i});}}}return(_84.length)?_84:null;},_unload:function(e){var EU=YAHOO.util.Event,i,j,l,len,index;for(i=0,len=_24.length;i<len;++i){l=_24[i];if(l){var _85=window;if(l[EU.ADJ_SCOPE]){if(l[EU.ADJ_SCOPE]===true){_85=l[EU.OBJ];}else{_85=l[EU.ADJ_SCOPE];}}l[EU.FN].call(_85,EU.getEvent(e),l[EU.OBJ]);delete _24[i];l=null;_85=null;}}if(_23&&_23.length>0){j=_23.length;while(j){index=j-1;l=_23[index];if(l){EU.removeListener(l[EU.EL],l[EU.TYPE],l[EU.FN],index);}j=j-1;}l=null;EU.clearCache();}for(i=0,len=_25.length;i<len;++i){delete _25[i][0];delete _25[i];}EU._simpleRemove(window,"unload",EU._unload);},_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||dd.scrollLeft)){return[dd.scrollTop,dd.scrollLeft];}else{if(db){return[db.scrollTop,db.scrollLeft];}else{return[0,0];}}},_simpleAdd:function(){if(window.addEventListener){return function(el,_87,fn,_88){el.addEventListener(_87,fn,(_88));};}else{if(window.attachEvent){return function(el,_89,fn,_90){el.attachEvent("on"+_89,fn);};}else{return function(){};}}}(),_simpleRemove:function(){if(window.removeEventListener){return function(el,_91,fn,_92){el.removeEventListener(_91,fn,(_92));};}else{if(window.detachEvent){return function(el,_93,fn){el.detachEvent("on"+_93,fn);};}else{return function(){};}}}()};}();(function(){var EU=YAHOO.util.Event;EU.on=EU.addListener;if(document&&document.body){EU._load();}else{EU._simpleAdd(window,"load",EU._load);}EU._simpleAdd(window,"unload",EU._unload);EU._tryPreloadAttach();})();}YAHOO.util.EventProvider=function(){};YAHOO.util.EventProvider.prototype={__yui_events:null,__yui_subscribers:null,subscribe:function(_94,_95,_96,_97){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[_94];if(ce){ce.subscribe(_95,_96,_97);}else{this.__yui_subscribers=this.__yui_subscribers||{};var _99=this.__yui_subscribers;if(!_99[_94]){_99[_94]=[];}_99[_94].push({fn:_95,obj:_96,override:_97});}},unsubscribe:function(_100,p_fn,_102){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[_100];if(ce){return ce.unsubscribe(p_fn,_102);}else{return false;}},createEvent:function(_103,_104){this.__yui_events=this.__yui_events||{};var opts=_104||{};var _106=this.__yui_events;if(_106[_103]){}else{var _107=opts.scope||this;var _108=opts.silent||null;var ce=new YAHOO.util.CustomEvent(_103,_107,_108,YAHOO.util.CustomEvent.FLAT);_106[_103]=ce;if(opts.onSubscribeCallback){ce.subscribeEvent.subscribe(opts.onSubscribeCallback);}this.__yui_subscribers=this.__yui_subscribers||{};var qs=this.__yui_subscribers[_103];if(qs){for(var i=0;i<qs.length;++i){ce.subscribe(qs[i].fn,qs[i].obj,qs[i].override);}}}return _106[_103];},fireEvent:function(_110,arg1,arg2,etc){this.__yui_events=this.__yui_events||{};var ce=this.__yui_events[_110];if(ce){var args=[];for(var i=1;i<arguments.length;++i){args.push(arguments[i]);}return ce.fire.apply(ce,args);}else{return null;}},hasEvent:function(type){if(this.__yui_events){if(this.__yui_events[type]){return true;}}return false;}};
YAHOO.util.Connect={_msxml_progid:['MSXML2.XMLHTTP.3.0','MSXML2.XMLHTTP','Microsoft.XMLHTTP'],_http_header:{},_has_http_headers:false,_use_default_post_header:true,_default_post_header:'application/x-www-form-urlencoded',_isFormSubmit:false,_isFileUpload:false,_formNode:null,_sFormData:null,_poll:{},_timeOut:{},_polling_interval:50,_transaction_id:0,setProgId:function(id)
{this._msxml_progid.unshift(id);},setDefaultPostHeader:function(b)
{this._use_default_post_header=b;},setPollingInterval:function(i)
{if(typeof i=='number'&&isFinite(i)){this._polling_interval=i;}},createXhrObject:function(transactionId)
{var obj,http;try
{http=new XMLHttpRequest();obj={conn:http,tId:transactionId};}
catch(e)
{for(var i=0;i<this._msxml_progid.length;++i){try
{http=new ActiveXObject(this._msxml_progid[i]);obj={conn:http,tId:transactionId};break;}
catch(e){}}}
finally
{return obj;}},getConnectionObject:function()
{var o;var tId=this._transaction_id;try
{o=this.createXhrObject(tId);if(o){this._transaction_id++;}}
catch(e){}
finally
{return o;}},asyncRequest:function(method,uri,callback,postData)
{var o=this.getConnectionObject();if(!o){return null;}
else{if(this._isFormSubmit){if(this._isFileUpload){this.uploadFile(o.tId,callback,uri,postData);this.releaseObject(o);return;}
if(method=='GET'){if(this._sFormData.length!=0){uri+=((uri.indexOf('?')==-1)?'?':'&')+this._sFormData;}
else{uri+="?"+this._sFormData;}}
else if(method=='POST'){postData=postData?this._sFormData+"&"+postData:this._sFormData;}}
o.conn.open(method,uri,true);if(this._isFormSubmit||(postData&&this._use_default_post_header)){this.initHeader('Content-Type',this._default_post_header);if(this._isFormSubmit){this.resetFormState();}}
if(this._has_http_headers){this.setHeader(o);}
this.handleReadyState(o,callback);o.conn.send(postData||null);return o;}},handleReadyState:function(o,callback)
{var oConn=this;if(callback&&callback.timeout){this._timeOut[o.tId]=window.setTimeout(function(){oConn.abort(o,callback,true);},callback.timeout);}
this._poll[o.tId]=window.setInterval(function(){if(o.conn&&o.conn.readyState==4){window.clearInterval(oConn._poll[o.tId]);delete oConn._poll[o.tId];if(callback&&callback.timeout){delete oConn._timeOut[o.tId];}
oConn.handleTransactionResponse(o,callback);}},this._polling_interval);},handleTransactionResponse:function(o,callback,isAbort)
{if(!callback){this.releaseObject(o);return;}
var httpStatus,responseObject;try
{if(o.conn.status!==undefined&&o.conn.status!=0){httpStatus=o.conn.status;}
else{httpStatus=13030;}}
catch(e){httpStatus=13030;}
if(httpStatus>=200&&httpStatus<300){try
{responseObject=this.createResponseObject(o,callback.argument);if(callback.success){if(!callback.scope){callback.success(responseObject);}
else{callback.success.apply(callback.scope,[responseObject]);}}}
catch(e){}}
else{try
{switch(httpStatus){case 12002:case 12029:case 12030:case 12031:case 12152:case 13030:responseObject=this.createExceptionObject(o.tId,callback.argument,(isAbort?isAbort:false));if(callback.failure){if(!callback.scope){callback.failure(responseObject);}
else{callback.failure.apply(callback.scope,[responseObject]);}}
break;default:responseObject=this.createResponseObject(o,callback.argument);if(callback.failure){if(!callback.scope){callback.failure(responseObject);}
else{callback.failure.apply(callback.scope,[responseObject]);}}}}
catch(e){}}
this.releaseObject(o);responseObject=null;},createResponseObject:function(o,callbackArg)
{var obj={};var headerObj={};try
{var headerStr=o.conn.getAllResponseHeaders();var header=headerStr.split('\n');for(var i=0;i<header.length;i++){var delimitPos=header[i].indexOf(':');if(delimitPos!=-1){headerObj[header[i].substring(0,delimitPos)]=header[i].substring(delimitPos+2);}}}
catch(e){}
obj.tId=o.tId;obj.status=o.conn.status;obj.statusText=o.conn.statusText;obj.getResponseHeader=headerObj;obj.getAllResponseHeaders=headerStr;obj.responseText=o.conn.responseText;obj.responseXML=o.conn.responseXML;if(typeof callbackArg!==undefined){obj.argument=callbackArg;}
return obj;},createExceptionObject:function(tId,callbackArg,isAbort)
{var COMM_CODE=0;var COMM_ERROR='communication failure';var ABORT_CODE=-1;var ABORT_ERROR='transaction aborted';var obj={};obj.tId=tId;if(isAbort){obj.status=ABORT_CODE;obj.statusText=ABORT_ERROR;}
else{obj.status=COMM_CODE;obj.statusText=COMM_ERROR;}
if(callbackArg){obj.argument=callbackArg;}
return obj;},initHeader:function(label,value)
{if(this._http_header[label]===undefined){this._http_header[label]=value;}
else{this._http_header[label]=value+","+this._http_header[label];}
this._has_http_headers=true;},setHeader:function(o)
{for(var prop in this._http_header){if(this._http_header.hasOwnProperty(prop)){o.conn.setRequestHeader(prop,this._http_header[prop]);}}
delete this._http_header;this._http_header={};this._has_http_headers=false;},setForm:function(formId,isUpload,secureUri)
{this.resetFormState();var oForm;if(typeof formId=='string'){oForm=(document.getElementById(formId)||document.forms[formId]);}
else if(typeof formId=='object'){oForm=formId;}
else{return;}
if(isUpload){this.createFrame(secureUri?secureUri:null);this._isFormSubmit=true;this._isFileUpload=true;this._formNode=oForm;return;}
var oElement,oName,oValue,oDisabled;var hasSubmit=false;for(var i=0;i<oForm.elements.length;i++){oElement=oForm.elements[i];oDisabled=oForm.elements[i].disabled;oName=oForm.elements[i].name;oValue=oForm.elements[i].value;if(!oDisabled&&oName)
{switch(oElement.type)
{case'select-one':case'select-multiple':for(var j=0;j<oElement.options.length;j++){if(oElement.options[j].selected){if(window.ActiveXObject){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].attributes['value'].specified?oElement.options[j].value:oElement.options[j].text)+'&';}
else{this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oElement.options[j].hasAttribute('value')?oElement.options[j].value:oElement.options[j].text)+'&';}}}
break;case'radio':case'checkbox':if(oElement.checked){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';}
break;case'file':case undefined:case'reset':case'button':break;case'submit':if(hasSubmit==false){this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';hasSubmit=true;}
break;default:this._sFormData+=encodeURIComponent(oName)+'='+encodeURIComponent(oValue)+'&';break;}}}
this._isFormSubmit=true;this._sFormData=this._sFormData.substr(0,this._sFormData.length-1);return this._sFormData;},resetFormState:function(){this._isFormSubmit=false;this._isFileUpload=false;this._formNode=null;this._sFormData="";},createFrame:function(secureUri){var frameId='yuiIO'+this._transaction_id;if(window.ActiveXObject){var io=document.createElement('<iframe id="'+frameId+'" name="'+frameId+'" />');if(typeof secureUri=='boolean'){io.src='javascript:false';}
else if(typeof secureURI=='string'){io.src=secureUri;}}
else{var io=document.createElement('iframe');io.id=frameId;io.name=frameId;}
io.style.position='absolute';io.style.top='-1000px';io.style.left='-1000px';document.body.appendChild(io);},appendPostData:function(postData)
{var formElements=new Array();var postMessage=postData.split('&');for(var i=0;i<postMessage.length;i++){var delimitPos=postMessage[i].indexOf('=');if(delimitPos!=-1){formElements[i]=document.createElement('input');formElements[i].type='hidden';formElements[i].name=postMessage[i].substring(0,delimitPos);formElements[i].value=postMessage[i].substring(delimitPos+1);this._formNode.appendChild(formElements[i]);}}
return formElements;},uploadFile:function(id,callback,uri,postData){var frameId='yuiIO'+id;var io=document.getElementById(frameId);this._formNode.action=uri;this._formNode.method='POST';this._formNode.target=frameId;if(this._formNode.encoding){this._formNode.encoding='multipart/form-data';}
else{this._formNode.enctype='multipart/form-data';}
if(postData){var oElements=this.appendPostData(postData);}
this._formNode.submit();if(oElements&&oElements.length>0){try
{for(var i=0;i<oElements.length;i++){this._formNode.removeChild(oElements[i]);}}
catch(e){}}
this.resetFormState();var uploadCallback=function()
{var obj={};obj.tId=id;obj.argument=callback.argument;try
{obj.responseText=io.contentWindow.document.body?io.contentWindow.document.body.innerHTML:null;obj.responseXML=io.contentWindow.document.XMLDocument?io.contentWindow.document.XMLDocument:io.contentWindow.document;}
catch(e){}
if(callback.upload){if(!callback.scope){callback.upload(obj);}
else{callback.upload.apply(callback.scope,[obj]);}}
if(YAHOO.util.Event){YAHOO.util.Event.removeListener(io,"load",uploadCallback);}
else if(window.detachEvent){io.detachEvent('onload',uploadCallback);}
else{io.removeEventListener('load',uploadCallback,false);}
setTimeout(function(){document.body.removeChild(io);},100);};if(YAHOO.util.Event){YAHOO.util.Event.addListener(io,"load",uploadCallback);}
else if(window.attachEvent){io.attachEvent('onload',uploadCallback);}
else{io.addEventListener('load',uploadCallback,false);}},abort:function(o,callback,isTimeout)
{if(this.isCallInProgress(o)){o.conn.abort();window.clearInterval(this._poll[o.tId]);delete this._poll[o.tId];if(isTimeout){delete this._timeOut[o.tId];}
this.handleTransactionResponse(o,callback,true);return true;}
else{return false;}},isCallInProgress:function(o)
{if(o.conn){return o.conn.readyState!=4&&o.conn.readyState!=0;}
else{return false;}},releaseObject:function(o)
{o.conn=null;o=null;}};
if(typeof(SAPO)=='undefined'){window.SAPO={};}else{window.SAPO=window.SAPO;}
SAPO.namespace=function(ns){if(!ns||!ns.length){return null;}
var levels=ns.split(".");var nsobj=SAPO;for(var i=(levels[0]=="SAPO")?1:0;i<levels.length;++i){nsobj[levels[i]]=nsobj[levels[i]]||{};nsobj=nsobj[levels[i]];}
return nsobj;};SAPO.extend=function(subclass,superclass){var f=function(){};f.prototype=superclass.prototype;subclass.prototype=new f();subclass.prototype.constructor=subclass;subclass.superclass=superclass.prototype;if(superclass.prototype.constructor==Object.prototype.constructor){superclass.prototype.constructor=superclass;}};function s$(element)
{if(arguments.length>1){for(var i=0,elements=[],length=arguments.length;i<length;i++){elements.push(s$(arguments[i]));}
return elements;}
if(typeof(element)=='string'){element=document.getElementById(element);}
return element;}
Function.prototype.createCallback=function(){var args=arguments;var method=this;return function(){return method.apply(window,args);}};Function.prototype.bindObj=function(obj,args){var method=this;return function(){return method.apply(obj,args||arguments);}};Object.extend=function(destination,source){for(var property in source){destination[property]=source[property];}
return destination;};if(typeof(SAPO.Browser)=='undefined'){SAPO.Browser={IE:false,GECKO:false,OPERA:false,SAFARI:false,KONQUEROR:false,model:false,version:false,userAgent:false,init:function()
{this.detectBrowser();this.setDimensions();this.setReferrer();},setDimensions:function()
{var myWidth=0,myHeight=0;if(typeof(window.innerWidth)=='number'){myWidth=window.innerWidth;myHeight=window.innerHeight;}else if(document.documentElement&&(document.documentElement.clientWidth||document.documentElement.clientHeight)){myWidth=document.documentElement.clientWidth;myHeight=document.documentElement.clientHeight;}else if(document.body&&(document.body.clientWidth||document.body.clientHeight)){myWidth=document.body.clientWidth;myHeight=document.body.clientHeight;}
this.windowWidth=myWidth;this.windowHeight=myHeight;},setReferrer:function()
{this.referrer=document.referrer!==undefined?document.referrer.length>0?escape(document.referrer):false:false;},detectBrowser:function()
{var sAgent=navigator.userAgent;this.userAgent=sAgent;sAgent=sAgent.toLowerCase();if((new RegExp("applewebkit\/")).test(sAgent)){this.SAFARI=true;this.model='safari';this.version=sAgent.replace(new RegExp("(.*)applewebkit\/([^\\s]+)(.*)"),"$2");}else if((new RegExp("opera")).test(sAgent)){this.OPERA=true;this.model='opera';this.version=sAgent.replace(new RegExp("(.*)opera.([^\\s$]+)(.*)"),"$2");}else if((new RegExp("konqueror")).test(sAgent)){this.KONQUEROR=true;this.model='konqueror';this.version=sAgent.replace(new RegExp("(.*)konqueror\/([^;]+);(.*)"),"$2");}else if((new RegExp("msie\ ")).test(sAgent)){this.IE=true;this.model='ie';this.version=sAgent.replace(new RegExp("(.*)\\smsie\\s([^;]+);(.*)"),"$2");}else if((new RegExp("gecko")).test(sAgent)){this.GECKO=true;var re=new RegExp("(camino|chimera|epiphany|minefield|firefox|firebird|phoenix|galeon|iceweasel|k\-meleon|seamonkey|netscape|songbird|sylera)");if(re.test(sAgent)){this.model=sAgent.match(re)[1];this.version=sAgent.replace(new RegExp("(.*)"+this.model+"\/([^;\\s$]+)(.*)"),"$2");}else{this.model='mozilla';var reVersion=new RegExp("(.*)rv\:([^\)]+)(.*)");if(reVersion.test(sAgent)){this.version=sAgent.replace(reVersion,"$2");}}}},debug:function()
{var str="known browsers: (ie, gecko, opera, safari, konqueror) \n";str+=[this.IE,this.GECKO,this.OPERA,this.SAFARI,this.KONQUEROR]+"\n";str+="model -> "+this.model+"\n";str+="version -> "+this.version+"\n";str+="\n";str+="original UA -> "+this.userAgent;alert(str);}};SAPO.Browser.init();}
SAPO.logReferer=function(classURL,options){var thisOptions={s:(typeof(options)=='object'&&options['s'])?options['s']:'js.sapo.pt',swakt:(typeof(options)=='object'&&options['swakt'])?options['swakt']:'59a97a5f-0924-3720-a62e-0c44d9ea4f16'};if(typeof(classURL)!='undefined'){var waURI='http://wa.sl.pt/wa.gif?';var aQuery=['pg='+encodeURIComponent(classURL),'swasection='+encodeURIComponent(classURL),'s='+thisOptions.s,'ref='+encodeURIComponent(location.href),'swakt='+thisOptions.swakt,'etype=libsapojs-view','swav=1','swauv=1','bcs=1','bsr=1','bul=1','bje=1','bfl=1',''];var img=new Image();img.src=waURI+aQuery.join('&');}};
if(!SAPO.Utility&&typeof(SAPO.Utility)=='undefined'){SAPO.namespace('Utility');}
SAPO.Utility.String={_chars:['&','Ã ','Ã¡','Ã¢','Ã£','Ã¤','Ã¥','Ã¦','Ã§','Ã¨','Ã©','Ãª','Ã«','Ã¬','Ã­','Ã®','Ã¯','Ã°','Ã±','Ã²','Ã³','Ã´','Ãµ','Ã¶','Ã¸','Ã¹','Ãº','Ã»','Ã¼','Ã½','Ã¾','Ã¿','Ã€','Ã','Ã‚','Ãƒ','Ã„','Ã…','Ã†','Ã‡','Ãˆ','Ã‰','ÃŠ','Ã‹','ÃŒ','Ã','ÃŽ','Ã','Ã','Ã‘','Ã’','Ã“','Ã”','Ã•','Ã–','Ã˜','Ã™','Ãš','Ã›','Ãœ','Ã','Ãž','â‚¬','\"','ÃŸ','<','>','Â¢','Â£','Â¤','Â¥','Â¦','Â§','Â¨','Â©','Âª','Â«','Â¬','Â­','Â®','Â¯','Â°','Â±','Â²','Â³','Â´','Âµ','Â¶','Â·','Â¸','Â¹','Âº','Â»','Â¼','Â½','Â¾'],_entities:['amp','agrave','aacute','acirc','atilde','auml','aring','aelig','ccedil','egrave','eacute','ecirc','euml','igrave','iacute','icirc','iuml','eth','ntilde','ograve','oacute','ocirc','otilde','ouml','oslash','ugrave','uacute','ucirc','uuml','yacute','thorn','yuml','Agrave','Aacute','Acirc','Atilde','Auml','Aring','AElig','Ccedil','Egrave','Eacute','Ecirc','Euml','Igrave','Iacute','Icirc','Iuml','ETH','Ntilde','Ograve','Oacute','Ocirc','Otilde','Ouml','Oslash','Ugrave','Uacute','Ucirc','Uuml','Yacute','THORN','euro','quot','szlig','lt','gt','cent','pound','curren','yen','brvbar','sect','uml','copy','ordf','laquo','not','shy','reg','macr','deg','plusmn','sup2','sup3','acute','micro','para','middot','cedil','sup1','ordm','raquo','frac14','frac12','frac34'],_accentedChars:['Ã ','Ã¡','Ã¢','Ã£','Ã¤','Ã¥','Ã¨','Ã©','Ãª','Ã«','Ã¬','Ã­','Ã®','Ã¯','Ã²','Ã³','Ã´','Ãµ','Ã¶','Ã¹','Ãº','Ã»','Ã¼','Ã§','Ã±','Ã€','Ã','Ã‚','Ãƒ','Ã„','Ã…','Ãˆ','Ã‰','ÃŠ','Ã‹','ÃŒ','Ã','ÃŽ','Ã','Ã’','Ã“','Ã”','Ã•','Ã–','Ã™','Ãš','Ã›','Ãœ','Ã‡','Ã‘'],_accentedRemovedChars:['a','a','a','a','a','a','e','e','e','e','i','i','i','i','o','o','o','o','o','u','u','u','u','c','n','A','A','A','A','A','A','E','E','E','E','I','I','I','I','O','O','O','O','O','U','U','U','U','C','N'],ucFirst:function(string)
{var aStr=string.split(" ");var newStr='';var w1=false;var w2=false;var re=new RegExp("^(.)(.*)");if(aStr.length>0){for(var i=0;i<aStr.length;i++){if(aStr[i].length>2){aStr[i]=this.trim(aStr[i].toLowerCase());w1=aStr[i].replace(re,"$1");w2=aStr[i].replace(re,"$2");newStr+=w1.toUpperCase()+w2;if(i!=(aStr.length-1)){newStr+=' ';}}else{newStr+=aStr[i]+' ';}}}
return newStr;},trim:function(string)
{if(typeof(string)=='string'){return string.replace(/^\s+|\s+$|\n+$/g,'');}},stripTags:function(string,allowed)
{if(allowed&&typeof(allowed)!='undefined'){var aAllowed=this.trim(allowed).split(',');var aNewAllowed=[];var cleanedTag=false;for(var i=0;i<aAllowed.length;i++){if(this.trim(aAllowed[i])!=''){cleanedTag=this.trim(aAllowed[i].replace(/(\<|\>)/g,'').replace(/\s/,''));aNewAllowed.push('(<'+cleanedTag+'\\s[^>]+>|<(\\s|\\/)?(\\s|\\/)?'+cleanedTag+'>)');}}
var strAllowed=aNewAllowed.join('|');var reAllowed=new RegExp(strAllowed,"i");var aFoundTags=string.match(new RegExp("<[^>]*>","g"));for(var j=0;j<aFoundTags.length;j++){if(!aFoundTags[j].match(reAllowed)){string=string.replace((new RegExp(aFoundTags[j],"gm")),'');}}
return string;}else{return string.replace(/\<[^\>]+\>/g,'');}},htmlEntitiesEncode:function(string)
{var newString=string;var re=false;for(var i=0;i<this._chars.length;i++){re=new RegExp(this._chars[i],"gm");newString=newString.replace(re,'&'+this._entities[i]+';');}
return newString;},htmlEntitiesDecode:function(string)
{var newString=string;var re=false;for(var i=0;i<this._entities.length;i++){re=new RegExp("&"+this._entities[i]+";","gm");newString=newString.replace(re,this._chars[i]);}
return newString;},utf8Encode:function(string)
{string=string.replace(/\r\n/g,"\n");var utfstring="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utfstring+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utfstring+=String.fromCharCode((c>>6)|192);utfstring+=String.fromCharCode((c&63)|128);}
else{utfstring+=String.fromCharCode((c>>12)|224);utfstring+=String.fromCharCode(((c>>6)&63)|128);utfstring+=String.fromCharCode((c&63)|128);}}
return utfstring;},shortString:function(str,n){var words=str.split(' ');var resultstr='';for(var i=0;i<words.length;i++){if((resultstr+words[i]+' ').length>=n){resultstr+='&hellip;';break;}
resultstr+=words[i]+' ';}
return resultstr;},truncateString:function(str,l){if(str.length>l){return str.substr(0,l)+"...";}else{return str;}},utf8Decode:function(utfstring)
{var string="";var i=0;var c=c1=c2=0;while(i<utfstring.length){c=utfstring.charCodeAt(i);if(c<128){string+=String.fromCharCode(c);i++;}
else if((c>191)&&(c<224)){c2=utfstring.charCodeAt(i+1);string+=String.fromCharCode(((c&31)<<6)|(c2&63));i+=2;}
else{c2=utfstring.charCodeAt(i+1);c3=utfstring.charCodeAt(i+2);string+=String.fromCharCode(((c&15)<<12)|((c2&63)<<6)|(c3&63));i+=3;}}
return string;},removeAccentedChars:function(string)
{var newString=string;var re=false;for(var i=0;i<this._accentedChars.length;i++){re=new RegExp(this._accentedChars[i],"gm");newString=newString.replace(re,''+this._accentedRemovedChars[i]+'');}
return newString;},substrCount:function(haystack,needle)
{return(haystack.length-haystack.replace(new RegExp(needle,"g"),'').length)/needle.length;},debug:function(){}};
if(!SAPO.Utility||typeof(SAPO.Utility)=='undefined'){SAPO.namespace('Utility');}
SAPO.Utility.Validator={_countryCodes:['AO','CV','MZ','PT'],_internacionalPT:351,_indicativosPT:{21:'lisboa',22:'porto',231:'mealhada',232:'viseu',233:'figueira da foz',234:'aveiro',235:'arganil',236:'pombal',238:'seia',239:'coimbra',241:'abrantes',242:'ponte de sÃ´r',243:'santarÃ©m',244:'leiria',245:'portalegre',249:'torres novas',251:'valenÃ§a',252:'vila nova de famalicÃ£o',253:'braga',254:'peso da rÃ©gua',255:'penafiel',256:'sÃ£o joÃ£o da madeira',258:'viana do castelo',259:'vila real',261:'torres vedras',262:'caldas da raÃ­nha',263:'vila franca de xira',265:'setÃºbal',266:'Ã©vora',268:'estremoz',269:'santiago do cacÃ©m',271:'guarda',272:'castelo branco',273:'braganÃ§a',274:'proenÃ§a-a-nova',275:'covilhÃ£',276:'chaves',277:'idanha-a-nova',278:'mirandela',279:'moncorvo',281:'tavira',282:'portimÃ£o',283:'odemira',284:'beja',285:'moura',286:'castro verde',289:'faro',291:'funchal, porto santo',292:'corvo, faial, flores, horta, pico',295:'angra do heroÃ­smo, graciosa, sÃ£o jorge, terceira',296:'ponta delgada, sÃ£o miguel, santa maria',91:'rede mÃ³vel 91 (Vodafone / Yorn)',93:'rede mÃ³vel 93 (Optimus)',96:'rede mÃ³vel 96 (TMN)',925:'rede mÃ³vel 925 (TMN 925)',926:'rede mÃ³vel 926 (TMN 926)',927:'rede mÃ³vel 927 (TMN 927)',922:'rede mÃ³vel 922 (Phone-ix)',707:'nÃºmero Ãºnico',760:'nÃºmero Ãºnico',800:'nÃºmero grÃ¡tis',808:'chamada local'},_internacionalCV:238,_indicativosCV:{2:'fixo',91:'mÃ³vel 91',95:'mÃ³vel 95',97:'mÃ³vel 97',98:'mÃ³vel 98',99:'mÃ³vel 99'},_internacionalAO:244,_indicativosAO:{2:'fixo',91:'mÃ³vel 91',92:'mÃ³vel 92'},_internacionalMZ:258,_indicativosMZ:{2:'fixo',82:'mÃ³vel 82',84:'mÃ³vel 84'},_isLeapYear:function(year){var yearRegExp=/^\d{4}$/;if(yearRegExp.test(year)){return((year%4)?false:((year%100)?true:((year%400)?false:true)));}
return false;},_dateParsers:{'yyyy-mm-dd':{day:5,month:3,year:1,sep:'-',parser:/^(\d{4})(\-)(\d{1,2})(\-)(\d{1,2})$/},'yyyy/mm/dd':{day:5,month:3,year:1,sep:'/',parser:/^(\d{4})(\/)(\d{1,2})(\/)(\d{1,2})$/},'yy-mm-dd':{day:5,month:3,year:1,sep:'-',parser:/^(\d{2})(\-)(\d{1,2})(\-)(\d{1,2})$/},'yy/mm/dd':{day:5,month:3,year:1,sep:'/',parser:/^(\d{2})(\/)(\d{1,2})(\/)(\d{1,2})$/},'dd-mm-yyyy':{day:1,month:3,year:5,sep:'-',parser:/^(\d{1,2})(\-)(\d{1,2})(\-)(\d{4})$/},'dd/mm/yyyy':{day:1,month:3,year:5,sep:'/',parser:/^(\d{1,2})(\/)(\d{1,2})(\/)(\d{4})$/},'dd-mm-yy':{day:1,month:3,year:5,sep:'-',parser:/^(\d{1,2})(\-)(\d{1,2})(\-)(\d{2})$/},'dd/mm/yy':{day:1,month:3,year:5,sep:'/',parser:/^(\d{1,2})(\/)(\d{1,2})(\/)(\d{2})$/}},_daysInMonth:function(_m,_y){var nDays=0;if(_m==1||_m==3||_m==5||_m==7||_m==8||_m==10||_m==12)
{nDays=31;}
else if(_m==4||_m==6||_m==9||_m==11)
{nDays=30;}
else
{if((_y%400==0)||(_y%4==0&&_y%100!=0))
{nDays=29;}
else
{nDays=28;}}
return nDays;},_isValidDate:function(year,month,day){var yearRegExp=/^\d{4}$/;var validOneOrTwo=/^\d{1,2}$/;if(yearRegExp.test(year)&&validOneOrTwo.test(month)&&validOneOrTwo.test(day)){if(month>=1&&month<=12&&day>=1&&this._daysInMonth(month,year)>=day){return true;}}
return false;},mail:function(email)
{var emailValido=new RegExp("^[_a-z0-9-]+((\\.|\\+)[_a-z0-9-]+)*@([\\w]*-?[\\w]*\\.)+[a-z]{2,4}$","i");if(!emailValido.test(email)){return false;}else{return true;}},url:function(url,full)
{if(typeof full=="undefined"||full===false){var reHTTP=new RegExp("(^(http\\:\\/\\/|https\\:\\/\\/)(.+))","i");if(reHTTP.test(url)===false){url='http://'+url;}}
var reUrl=new RegExp("^(http:\\/\\/|https:\\/\\/)([\\w]*(-?[\\w]*)*\\.)+[a-z]{2,4}","i");if(reUrl.test(url)===false){return false;}else{return true;}},isPTPhone:function(phone)
{phone=phone.toString();var aInd=[];for(var i in this._indicativosPT){if(typeof(this._indicativosPT[i])=='string'){aInd.push(i);}}
var strInd=aInd.join('|');var re351=/^(00351|\+351)/;if(re351.test(phone)){phone=phone.replace(re351,"");}
var reSpecialChars=/(\s|\-|\.)+/g;phone=phone.replace(reSpecialChars,'');var reInt=new RegExp("\\d","i");if(phone.length==9&&reInt.test(phone)){var reValid=new RegExp("^("+strInd+")");if(reValid.test(phone)){return true;}}
return false;},isPortuguesePhone:function(phone)
{return this.isPTPhone(phone);},isCVPhone:function(phone)
{phone=phone.toString();var aInd=[];for(var i in this._indicativosCV){if(typeof(this._indicativosCV[i])=='string'){aInd.push(i);}}
var strInd=aInd.join('|');var re238=/^(00238|\+238)/;if(re238.test(phone)){phone=phone.replace(re238,"");}
var reSpecialChars=/(\s|\-|\.)+/g;phone=phone.replace(reSpecialChars,'');var reInt=new RegExp("\\d","i");if(phone.length==7&&reInt.test(phone)){var reValid=new RegExp("^("+strInd+")");if(reValid.test(phone)){return true;}}
return false;},isAOPhone:function(phone)
{phone=phone.toString();var aInd=[];for(var i in this._indicativosAO){if(typeof(this._indicativosAO[i])=='string'){aInd.push(i);}}
var strInd=aInd.join('|');var re244=/^(00244|\+244)/;if(re244.test(phone)){phone=phone.replace(re244,"");}
var reSpecialChars=/(\s|\-|\.)+/g;phone=phone.replace(reSpecialChars,'');var reInt=new RegExp("\\d","i");if(phone.length==9&&reInt.test(phone)){var reValid=new RegExp("^("+strInd+")");if(reValid.test(phone)){return true;}}
return false;},isMZPhone:function(phone)
{phone=phone.toString();var aInd=[];for(var i in this._indicativosMZ){if(typeof(this._indicativosMZ[i])=='string'){aInd.push(i);}}
var strInd=aInd.join('|');var re258=/^(00258|\+258)/;if(re258.test(phone)){phone=phone.replace(re258,"");}
var reSpecialChars=/(\s|\-|\.)+/g;phone=phone.replace(reSpecialChars,'');var reInt=new RegExp("\\d","i");if((phone.length==9||phone.length==8)&&reInt.test(phone)){var reValid=new RegExp("^("+strInd+")");if(reValid.test(phone)){if(phone.indexOf('2')==0&&phone.length==8){return true;}else if(phone.indexOf('8')==0&&phone.length==9){return true;}}}
return false;},isPhone:function(){if(arguments.length==0){return false;}
var phone=arguments[0];if(arguments.length>1){if(arguments[1].constructor===Array){var func;for(var index=0;index<arguments[1].length;index++){if(typeof(func=this['is'+arguments[1][index].toUpperCase()+'Phone'])=='function'){if(func(phone)){return true;}}else{throw"Invalid Country Code!";}}}else if(typeof(this['is'+arguments[1].toUpperCase()+'Phone'])=='function'){return this['is'+arguments[1].toUpperCase()+'Phone'](phone);}else{throw"Invalid Country Code!";}}else{for(var index=0;index<this._countryCodes.length;index++){if(this['is'+this._countryCodes[index]+'Phone'](phone)){return true;}}}
return false;},codPostal:function(cp1,cp2){var cPostalSep=/^(\s*\-\s*|\s+)$/;var trim=/^\s+|\s+$/g;var cPostal4=/^[1-9]\d{3}$/;var cPostal3=/^\d{3}$/;var parserCPostal=/^(.{4})(.*)(.{3})$/;cp1=cp1.replace(trim,'');if(typeof(cp2)!='undefined'){cp2=cp2.replace(trim,'');if(cPostal4.test(cp1)&&cPostal3.test(cp2)){return true;}}else{if(cPostal4.test(cp1)){return true;}
var cPostal=cp1.match(parserCPostal);if(cPostal!=null&&cPostal4.test(cPostal[1])&&cPostalSep.test(cPostal[2])&&cPostal3.test(cPostal[3])){return true;}}
return false;},isDate:function(format,dateStr){if(typeof(this._dateParsers[format])=='undefined'){return false;}
var yearIndex=this._dateParsers[format].year;var monthIndex=this._dateParsers[format].month;var dayIndex=this._dateParsers[format].day;var dateParser=this._dateParsers[format].parser;var separator=this._dateParsers[format].sep;var trim=/^\w+|\w+$/g;var data=dateStr.match(dateParser);if(data!=null){if(data[2]==data[4]&&data[2]==separator){var _y=((data[yearIndex].length==2)?"20"+data[yearIndex].toString():data[yearIndex]);if(this._isValidDate(_y,data[monthIndex].toString(),data[dayIndex].toString())){return true;}}}
return false;},debug:function()
{}};
if(!SAPO.Utility||typeof(SAPO.Utility)=='undefined'){SAPO.namespace('Utility');}
SAPO.Utility.CSS={set:function(cssjson,jsonid,prefix)
{if(jsonid===undefined){jsonid='sapojson';}
else
{jsonid='sapojson'+jsonid;}
if(prefix===undefined){prefix='';}
else
{prefix="."+prefix+" ";}
var styleStr="";for(i in cssjson){styleStr+=prefix+i+" {\n";for(var j in cssjson[i]){if(j=="CSSJSON-INHERIT-SELECTOR"){for(var k in cssjson[cssjson[i][j]]){styleStr+="\t"+k+":"+cssjson[cssjson[i][j]][k]+";\n";}}else{styleStr+="\t"+j+":"+cssjson[i][j]+";\n";}}
styleStr+="}\n";}
if(styleStr.length>0){var head=document.getElementsByTagName('head');if(head.length>0){var last=document.getElementById(jsonid);if(last){last.parentNode.removeChild(last);}
var styleid=document.createElement('style');styleid.setAttribute('type','text/css');styleid.setAttribute('id',jsonid);if(styleid.styleSheet){styleid.styleSheet.cssText=styleStr;}else{styleid.appendChild(document.createTextNode(styleStr));}
head[0].appendChild(styleid);}}},debug:function()
{}};
if(!SAPO.Utility||typeof(SAPO.Utility)=='undefined'){SAPO.namespace('Utility');}
SAPO.Utility.Url={_keyStr:'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=',getUrl:function()
{var url=false;url=location.href;return url;},getQueryString:function(string)
{if(string&&typeof(string)!='undefined'){var url=string;}else{var url=this.getUrl();}
var aParams={};if(url.match(/\?(.+)/i)){var queryStr=url.replace(/^(.*)\?([^\#]+)(\#(.*))?/g,"$2");if(queryStr.length>0){var aQueryStr=queryStr.split(/[;&]/);for(var i=0;i<aQueryStr.length;i++){var pairVar=aQueryStr[i].split('=');aParams[decodeURIComponent(pairVar[0])]=(typeof(pairVar[1])!='undefined'&&pairVar[1])?decodeURIComponent(pairVar[1]):false;}}}
return aParams;},getAnchor:function(string)
{if(string&&typeof(string)!='undefined'){var url=string;}else{var url=this.getUrl();}
var anchor=false;if(url.match(/#(.+)/)){anchor=url.replace(/([^#]+)#(.*)/,"$2");}
return anchor;},getAnchorString:function(string)
{if(string&&typeof(string)!='undefined'){var url=string;}else{var url=this.getUrl();}
var aParams={};if(url.match(/#(.+)/i)){var anchorStr=url.replace(/^([^#]+)#(.*)?/g,"$2");if(anchorStr.length>0){var aAnchorStr=anchorStr.split(/[;&]/);for(var i=0;i<aAnchorStr.length;i++){var pairVar=aAnchorStr[i].split('=');aParams[decodeURIComponent(pairVar[0])]=(typeof(pairVar[1])!='undefined'&&pairVar[1])?decodeURIComponent(pairVar[1]):false;}}}
return aParams;},parseUrl:function(url)
{var aURL={};if(url&&typeof(url)!='undefined'&&typeof(url)=='string'){if(url.match(/^([^:]+):\/\//i)){var re1=new RegExp("^([^:]+)://([^/]+)/([^\\?]+)\\?([^#]+)#(.*)$","i");var re2=new RegExp("^([^:]+)://([^/]+)/([^\\?]+)\\?([^#]+)#?$","i");var re3=new RegExp("^([^:]+)://([^/]+)/([^\\?]+)\\??$","i");var re4=new RegExp("^([^:]+)://([^/]+)/?$","i");if(url.match(re1)){aURL['scheme']=url.replace(re1,"$1");aURL['host']=url.replace(re1,"$2");aURL['path']='/'+url.replace(re1,"$3");aURL['query']=url.replace(re1,"$4");aURL['fragment']=url.replace(re1,"$5");}else if(url.match(re2)){aURL['scheme']=url.replace(re2,"$1");aURL['host']=url.replace(re2,"$2");aURL['path']='/'+url.replace(re2,"$3");aURL['query']=url.replace(re2,"$4");aURL['fragment']=false;}else if(url.match(re3)){aURL['scheme']=url.replace(re3,"$1");aURL['host']=url.replace(re3,"$2");aURL['path']='/'+url.replace(re3,"$3");aURL['query']=false;aURL['fragment']=false;}else if(url.match(re4)){aURL['scheme']=url.replace(re4,"$1");aURL['host']=url.replace(re4,"$2");aURL['path']=false;aURL['query']=false;aURL['fragment']=false;}}else{var re1=new RegExp("^([^\\?]+)\\?([^#]+)#(.*)","i");var re2=new RegExp("^([^\\?]+)\\?([^#]+)#?","i");var re3=new RegExp("^([^\\?]+)\\??","i");if(url.match(re1)){aURL['scheme']=false;aURL['host']=false;aURL['path']=url.replace(re1,"$1");aURL['query']=url.replace(re1,"$2");aURL['fragment']=url.replace(re1,"$3");}else if(url.match(re2)){aURL['scheme']=false;aURL['host']=false;aURL['path']=url.replace(re2,"$1");aURL['query']=url.replace(re2,"$2");aURL['fragment']=false;}else if(url.match(re3)){aURL['scheme']=false;aURL['host']=false;aURL['path']=url.replace(re3,"$1");aURL['query']=false;aURL['fragment']=false;}}
if(aURL['host']){var regPort=new RegExp("^(.*)\\:(\\d+)$","i");if(aURL['host'].match(regPort)){var tmpHost1=aURL['host'];aURL['host']=tmpHost1.replace(regPort,"$1");aURL['port']=tmpHost1.replace(regPort,"$2");}else{aURL['port']=false;}
if(aURL['host'].match(/@/i)){var tmpHost2=aURL['host'];aURL['host']=tmpHost2.split('@')[1];var tmpUserPass=tmpHost2.split('@')[0];if(tmpUserPass.match(/\:/)){aURL['user']=tmpUserPass.split(':')[0];aURL['pass']=tmpUserPass.split(':')[1];}else{aURL['user']=tmpUserPass;aURL['pass']=false;}}}}
return aURL;},currentScriptElement:function()
{var aScripts=document.getElementsByTagName('script');if(aScripts.length>0){return aScripts[(aScripts.length-1)];}else{return false;}},base64Encode:function(string)
{if(!SAPO.Utility.String||typeof(SAPO.Utility.String)=='undefined'){throw"SAPO.Utility.Url.base64Encode depends of SAPO.Utility.String, which has not been referred.";return false;}
var output="";var chr1,chr2,chr3,enc1,enc2,enc3,enc4;var i=0;var input=SAPO.Utility.String.utf8Encode(string);while(i<input.length){chr1=input.charCodeAt(i++);chr2=input.charCodeAt(i++);chr3=input.charCodeAt(i++);enc1=chr1>>2;enc2=((chr1&3)<<4)|(chr2>>4);enc3=((chr2&15)<<2)|(chr3>>6);enc4=chr3&63;if(isNaN(chr2)){enc3=enc4=64;}else if(isNaN(chr3)){enc4=64;}
output=output+
this._keyStr.charAt(enc1)+this._keyStr.charAt(enc2)+
this._keyStr.charAt(enc3)+this._keyStr.charAt(enc4);}
return output;},base64Decode:function(string)
{if(!SAPO.Utility.String||typeof(SAPO.Utility.String)=='undefined'){throw"SAPO.Utility.Url.base64Decode depends of SAPO.Utility.String, which has not been referred.";return false;}
var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;var input=string.replace(/[^A-Za-z0-9\+\/\=]/g,"");while(i<input.length){enc1=this._keyStr.indexOf(input.charAt(i++));enc2=this._keyStr.indexOf(input.charAt(i++));enc3=this._keyStr.indexOf(input.charAt(i++));enc4=this._keyStr.indexOf(input.charAt(i++));chr1=(enc1<<2)|(enc2>>4);chr2=((enc2&15)<<4)|(enc3>>2);chr3=((enc3&3)<<6)|enc4;output=output+String.fromCharCode(chr1);if(enc3!=64){output=output+String.fromCharCode(chr2);}
if(enc4!=64){output=output+String.fromCharCode(chr3);}}
output=SAPO.Utility.String.utf8Decode(output);return output;}};
if(!SAPO.Geo||typeof(SAPO.Geo)=='undefined'){SAPO.namespace('Geo');}
SAPO.Geo.Map=function(options){if(SAPO.Exception&&typeof(SAPO.Exception)!='undefined'){this.exception=new SAPO.Exception('SAPO::Geo.Map');}else{this.exception=false;}
this.init(options);};SAPO.Geo.Map.prototype={map:null,init:function(){var options=Object.extend({"divid":null,"lat":g_pt_view.y,"lon":g_pt_view.x,"zoom":g_pt_view_zoom,"mapcontrol":"large","locator_callback":null,"extents_callback":null,"extents_callback_delay":10000,"navArea":true,"navAreaHeight":20},(arguments[0]||{}));this.options=options;var map=new GMap2(s$(options.divid),options.render_opts);map.setNavAreaVis(options.navArea,options.navAreaHeight);if(options.mapcontrol=="small"){map.addControl(new GSmallMapControl());}
else{map.addControl(new GLargeMapControl());}
map.centerAndZoom(new GLatLng(options.lat,options.lon),options.zoom);if(options.locator_callback){map.activate_locator(options.locator_callback);}
if(options.locator_marker){smaps_locator_marker=options.locator_marker;}
if(options.extents_callback){map.setExtentsCallback(options.extents_callback,options.extents_callback_delay);}
this.map=map;smaps_geomap=this;},addMarker:function(lat,lon,markerOptions,text){return g_GSMap1.addMarker(lat,lon,markerOptions,text);},centerAndZoom:function(lat,lon,zoom){this.map.centerAndZoom(new GLatLng(lat,lon),zoom);},getBoundsLatLng_centered:function(percent_option){if(!percent_option){percent_option=1.0;}
return this.map.getBoundsLatLng_centered(percent_option);},getLatitude:function(){return g_GSMap1.get_lat();},getLongitude:function(){return g_GSMap1.get_lon();},getZoom:function(){return g_GSMap1.gmap.getZoom();},getRadius:function(){return 0.5*GS_wms_tiles.get_resolution(g_GSMap1.get_zoom())*g_GSMap1.cols;},setClickCallback:function(function_name){_g_clickCallback=function_name;},getClickCoordinates:function(event){return smaps_mouse2point(event,0,0);},refreshMarkers:function(){smaps_map_pontos();},isRendered:function(){return g_GSMap1.is_rendered();},remove_marker:function(marker){smaps_remove_marker(marker);}};var g_gs_server='http://mapas.sapo.pt/';var g_smaps_page="";var g_css_server="http://js.sapo.pt";var g_gs_route_server="http://apps4.mapas.sapo.pt/caminhos2/servlet/ims_caminhos_servlet";var g_querydb_server="http://apps3.mapas.sapo.pt";var g_xsl_server=g_querydb_server;var g_layers_server=["http://apps1.mapas.sapo.pt","http://apps2.mapas.sapo.pt","http://apps3.mapas.sapo.pt","http://apps4.mapas.sapo.pt"];var g_xsl_files_server=g_gs_server;var g_copyr_img=g_css_server+"/Assets/Maps/Images/logomapas_api.png";var g_copyr_msg="";var g_lines_min=350;var g_img_server=['http://tiles1.imgs.sapo.pt','http://tiles2.imgs.sapo.pt','http://tiles3.imgs.sapo.pt','http://tiles4.imgs.sapo.pt'];var g_tiles_layout="no_ layout loaded";var g_stages=false;var gPan_percent=0.25;var g_percursos=true;var g_timer_extents_callback;var g_extents_callback_delay=5000;var g_itenerario=null;var g_line_size=10;var g_wms1_url="";var g_wms2_url="";var g_smaps_add_css=true;var g_smaps_escala_pix=100;var g_wms_tiled=false;var g_ie=navigator.userAgent.indexOf("MSIE")>0;var g_ffox=navigator.userAgent.indexOf("Firefox")>0;var g_ie_version=0;if(g_ie){var smaps_temp=navigator.appVersion.split("MSIE");g_ie_version=parseFloat(navigator.appVersion.split("MSIE")[1]);}
var g_ie6=g_ie&&(g_ie_version<7);var smaps_zoom_level_layers_base=6;var smaps_zoom_level_layers=2;var smaps_zoom_level_pharm_serv=smaps_zoom_level_layers_base;var g_smaps_limit_pois=20;var g_z_index_pt_opened=50;var g_z_index_pt_closed=40;var g_GSMap1;var _g_clickCallback=false;var g_smaps_label_layer=false;var g_pharm_at_service_on=false;var g_smaps_active_layers="";var g_last_open_pin=null;var smaps_minimap_start_opened=false;var smaps_geomap=null;var smaps_traffic_active=false;var smaps_pharmacies_active=false;var smaps_default_layers_active=true;var smaps_rss_layers={};var smaps_mouse_wheel=true;function smaps_new_node(){var node_name=arguments[0];var is_img=(node_name=='img');var node_src;if(g_ie){node_name='<'+node_name;var j=1;while(j<arguments.length){if(typeof(arguments[j])!="object"){if(is_img&&arguments[j]=='src'){node_src=arguments[j+1];}
node_name=node_name.concat(' '+arguments[j]+'="'+arguments[j+1]+'"');j+=2;}else{j++;}}
node_name=node_name.concat('/>');}
var node;if(is_img){node=new Image();if(g_ie){node.src=node_src;node=document.createElement(node_name);}}
else{node=document.createElement(node_name);}
var i=1;while(i<arguments.length){if(typeof(arguments[i])=="object"){node.appendChild(arguments[i]);i++;}else{if(g_ie!=1){if(is_img&&arguments[i]=='src'){node.src=arguments[i+1];}else{try{node.setAttribute(arguments[i],arguments[i+1]);}catch(e){alert(e+" "+arguments[i]+" "+arguments[i+1]);}}}
i+=2;}}
return node;}
function smaps_write_node(div,node){div.appendChild(node);}
function smaps_set_prop(node,name,val){node.setAttribute(name,val);}
function smaps_new_text_node(text){var tN=document.createTextNode(text);return tN;}
function smaps_set_node_html(node,text){node.innerHTML=text;return node;}
function smaps_dbg(txt){var div=s$("div_debug");if(div!==null){smaps_write_node(div,smaps_new_node('br'));smaps_write_node(div,smaps_new_text_node(txt));}}
function smaps_dbg_link(txt){var div=s$("div_debug");if(div!==null){smaps_write_node(div,smaps_new_node('br'));smaps_write_node(div,smaps_new_node("a","target","blank","href",txt,smaps_new_text_node(txt)));}}
function smaps_parse(v){if(typeof(v)!="number"){return parseFloat(v);}
return v;}
function smaps_roundLatLon(v){return Math.round(v*100000)/100000;}
var degree_lat=110822.601;var degree_lon=86464.0596;function lon_degrees_2_meters_aprox(width){return width*degree_lon;}
function lat_degrees_2_meters_aprox(height){return height*degree_lat;}
function meters_2_degrees_lon_aprox(width){return width/degree_lon;}
function meters_2_degrees_lat_aprox(height){return height/degree_lat;}
function smaps_js_request(url,id){var prev_node=s$(id);var _hf=smaps_new_node('script',"name",id,'src',url,"id",id);if(prev_node!==null){document.getElementsByTagName('head')[0].replaceChild(_hf,prev_node);}else{document.getElementsByTagName('head')[0].appendChild(_hf);}}
function smaps_add_css(url)
{var _hf=smaps_new_node('link',"rel","stylesheet",'type',"text/css","href",url);document.getElementsByTagName('head')[0].appendChild(_hf);}
function Mouse2point_xy(e,div_name){try{if(!e){e=window.event;}
var posx=0;var posy=0;if(e.pageX||e.pageY){posx=e.pageX;posy=e.pageY;}
else if(e.clientX||e.clientY){posx=e.clientX+document.body.scrollLeft+
document.documentElement.scrollLeft;posy=e.clientY+document.body.scrollTop+
document.documentElement.scrollTop;}
var div=s$(div_name);var sumY=0;var sumX=0;while(div.offsetParent!==null&&div.offsetParent!==div){sumY+=div.offsetTop;sumX+=div.offsetLeft;div=div.offsetParent;}
this.y=posy-sumY;this.x=posx-sumX;}catch(e){this.x=0;this.y=0;smaps_dbg("error Mouse2point_xy"+e);}}
function dec2rad(dec){var d=dec*Math.atan(1.0)/45.0;return d;}
function rad2dec(rad){var d=rad*45.0/Math.atan(1.0);return d;}
function gms2decimal(graus,minutos,segundos,bug){var d;if(graus>0){d=graus+(minutos/60.0)+(segundos/3600.0);}else{d=graus-(minutos/60.0)-(segundos/3600.0);}
if(typeof(bug)!="undefined"){window.prompt("gms2decimal: extra input:",bug);}
return smaps_roundLatLon(d);}
function Gms(graus_decimais){var neg=false;if(graus_decimais<0){graus_decimais=-graus_decimais;neg=true;}
this.graus=Math.floor(graus_decimais);graus_decimais=graus_decimais-this.graus;this.minutos=Math.floor(graus_decimais*60.0);graus_decimais=graus_decimais-(this.minutos/60.0);this.segundos=graus_decimais*3600.0;if(neg){this.graus=-this.graus;this.minutos=-this.minutos;this.segundos=-this.segundos;}}
var smaps_earth_radius=6378137.0;function smaps_lonToX(longitudeDegrees){var longitude=dec2rad(longitudeDegrees);return(smaps_earth_radius*longitude);}
function smaps_latToY(latitudeDegrees){var latitude=dec2rad(latitudeDegrees);var y=smaps_earth_radius/2.0*Math.log((1.0+Math.sin(latitude))/(1.0-Math.sin(latitude)));return y;}
function smaps_xToLon(x){var longRadians=x/smaps_earth_radius;var longDegrees=rad2dec(longRadians);var rotations=Math.floor((longDegrees+180)/360);var longitude=longDegrees-(rotations*360);return longitude;}
function smaps_yToLat(y){var latitude=(Math.PI/2)-
(2*Math.atan(Math.exp(-1.0*y/smaps_earth_radius)));return rad2dec(latitude);}
function conv_lat_lon_mercator_sphere(lat,lon){this.x=smaps_lonToX(lon);this.y=smaps_latToY(lat);}
function conv_xy_mercator_sphere_lat_lon(x,y){this.lat=smaps_yToLat(y);this.lon=smaps_xToLon(x);}
var g_map_ready=false;var g_pt_view=new GPoint(-8.12714,39.70453);var g_pt_view_zoom=5;var g_zoom_drag_height=100;var g_disable_locator_callback=false;var smaps_add_marker_mode=false;var smaps_locator_marker;var smaps_locator_marker_link=true;var smaps_widget=true;var g_draw_index=1;var GS_wms_tiles=new WMS_tiles_client();function GMap2(container,opts){var map;if(typeof(opts)!="undefined"){map=new GMap(container,opts.mapTypes,opts.size.width,opts.size.height);}else{map=new GMap(container,undefined,parseInt(container.offsetWidth,10),parseInt(container.offsetHeight,10));}
map.gmaps_version=2;map.getContainer=function(){return g_GSMap1.div;};map.addMapType=function(type){};map.removeMapType=function(type){};map.isLoaded=function(){return g_GSMap1.ready;};map.isRendered=function(){return g_GSMap1.is_rendered();};map.getCenter=function(){return map.getCenterLatLng();};map.getBounds=map.getBoundsLatLng;map.getSize=function(){return new GSize(g_GSMap1.cols,g_GSMap1.lines);};map.getZoom=function(){return 17-GS_wms_tiles.current_zoom;};map.setCenter=map.centerAndZoom;map.panTo=map.centerAtLatLng;map.panBy=function(){not_implemented("panBy");};map.setZoom=map.zoomTo;map.zoomIn=function(){map.zoomTo(GS_wms_tiles.current_zoom-1);};map.zoomOut=function(){map.zoomTo(GS_wms_tiles.current_zoom+1);};map.setCenterAndSpan=function(latLng,span){g_GSMap1.set_lat_lon_span(latLng.y,latLng.x,span.x);};map.setCenterAndWidth=function(latLng,width){g_GSMap1.set_lat_lon_width(latLng.y,latLng.x,width);};map.refresh=function(){smaps_refresh();};map.toUrlValue=function(){return g_GSMap1.toUrlValue();};map.toQueryValue=function(){return g_GSMap1.toQueryValue();};map.toPointsURL=function(){return g_GSMap1.toPointsURL();};map.toLink=function(separator){if(g_itenerario!==null){return separator+g_qparams.get_param();}else{return separator+this.toPointsURL();}};map.toLinkComplete=function(){return g_gs_server+g_smaps_page+this.toLink("?");};map.setCallback=function(fn){map._callback=fn;};map.setExtentsCallback=function(fn,delay){map._extents_callback=fn;map._extents_callback_delay=delay;};map.setSizeCallback=function(fn){map._size_callback=fn;};map.setNavAreaVis=function(bool,navAreaHeight){map.navAreaVis=bool;map.navAreaHeight=navAreaHeight;};map.retrieve_win_size=function(){map.win_width=document.documentElement.clientWidth;map.win_height=document.documentElement.clientHeight;};return map;}
function GMapOptions(){var size=0;var mapTypes=[];}
function GLatLng(lat,lon){var ll=new GPoint(lon,lat);ll.lng=function(){return this.x;};ll.lat=function(){return this.y;};ll.latRadians=function(){return this.y/180*Math.PI;};ll.lonRadians=function(){return this.x/180*Math.PI;};ll.equals=function(other){return this.x==other.x&&this.y==other.y;};ll.toUrlValue=function(){return g_gs_server+"?q="+lat+","+lon;};return ll;}
function GLatLngBounds(sw,ne){var b=new GBounds(sw.x,sw.y,ne.x,ne.y);b.equals=function(other){return this.minX==other.minX&&this.minY==other.minY&&this.maxX==other.maxX&&this.maxY==other.maxY;};b.contains=function(latlng){not_implemented("intersects");return false;};b.getSouthWest=function(latlng){return new GLatLng(this.minY,this.minX);};b.getNorthEast=function(latlng){return new GLatLng(this.maxY,this.maxX);};b.toSpan=function(){return new GLatLng(this.maxY-this.minY,this.maxX-this.minX);};return b;}
function GControl(){this.GSmallMapControl=GSmallMapControl;this.GLargeMapControl=GLargeMapControl;this.GSmallZoomControl=function(){};this.GScaleControl=function(){};this.GMapTypeControl=function(){};}
function GMapType(){this.getSpanZoomLevel=function(){return 0;};this.getBoundsZoomLevel=function(){return 0;};this.getName=function(){return"SAPO Mapas";};this.getProjection=function(){return"WGS84 UTM 29N";};this.getTileSize=function(){return 256;};this.getTileLayers=function(){return[];};this.getMinimumResolution=function(){return 0;};this.getMaximumResolution=function(){return 11;};this.getTextColor=function(){return"#000000";};this.getLinkColor=function(){return"#000000";};this.getErrorMessage=function(){return"";};this.getCopy=function(){return"@PTM.COM";};this.getUrlArg=function(){return"";};}
var G_NORMAL_MAP=0;var G_SATELLITE_MAP=1;var G_HYBRID_MAP=2;var G_DEFAULT_MAP_TYPES=3;var GEvent=new GEvent_instance();var const_id_small_control=1;var const_id_large_control=2;var g_map_control_type=const_id_large_control;function GMap(container,mapTypes,width,height){init_smaps_const();init_tiles_layout();this.gmaps_version=1;this.navAreaVis=true;var cols;if(typeof(width)=="undefined"){cols=parseInt(container.offsetWidth,10);}else{cols=width;}
if(typeof(cols)=="undefined"||cols===0){cols=200;}
var lines;if(typeof(height)=="undefined"){lines=parseInt(container.offsetHeight,10);}else{lines=height;}
if(typeof(lines)=="undefined"||lines===0){lines=150;}
this.draggingEnabled=function(){return true;};this.enableInfoWindow=function(){};this.disableInfoWindow=function(){};this.infoWindowEnabled=function(){return false;};this.addControl=function(control){if(!control.map_control_type){return;}
g_map_control_type=control.map_control_type;};this.getCenterLatLng=function(){return new GPoint(g_GSMap1.get_lon(),g_GSMap1.get_lat());};this.getBoundsLatLng=function(){if(g_GSMap1.is_rendered()){var w=g_GSMap1.get_span_lon()/2;var h=g_GSMap1.get_span_lat()/2;var lat=g_GSMap1.get_lat();var lon=g_GSMap1.get_lon();return new GBounds(lon-w,lat-h,lon+w,lat+h);}
else if(g_GSMap1.resolution!==0){var largura=g_GSMap1.resolution*g_GSMap1.cols;var altura=g_GSMap1.resolution*g_GSMap1.lines;var w_lon=meters_2_degrees_lon(largura);var h_lat=meters_2_degrees_lat(altura);return new GBounds(g_GSMap1._lon-0.5*w_lon,g_GSMap1._lat-0.5*h_lat,g_GSMap1._lon+0.5*w_lon,g_GSMap1._lat+0.5*h_lat);}};this.getSpanLatLng=function(){var bounds=this.getBoundsLatLng();return new GSize(bounds.maxX-bounds.minX,bounds.maxY-bounds.minY);};this.getBoundsLatLng_centered=function(percent){var bounds=this.getBoundsLatLng();var size=new GSize((bounds.maxX-bounds.minX)*percent*0.5,(bounds.maxY-bounds.minY)*percent*0.5);var mid=this.getCenterLatLng();return new GBounds(mid.x-size.width,mid.y-size.height,mid.x+size.width,mid.y+size.height);};this.getZoomLevel=function(){var z=g_GSMap1.get_zoom();if(this.gmaps_version==2){return 17-z;}
return z;};this.centerAtLatLng=function(latLng){g_GSMap1.set_lat_lon(latLng.y,latLng.x);};this.recenterOrPanToLatLng=function(latLng){g_GSMap1.set_lat_lon(latLng.y,latLng.x);};this.zoomTo=function(zoomLevel){var z=zoomLevel;if(this.gmaps_version==2){z=17-z;}
g_GSMap1.set_zoom(z);};this.centerAndZoom=function(latLng,zoomLevel){var z=zoomLevel;if(this.gmaps_version==2){z=17-z;}
g_GSMap1.set_lat_lon_zoom(latLng.y,latLng.x,z);};this.getMapTypes=function(){return[0,1,2];};this.getCurrentMapType=function(){return 0;};this.setMapType=function(mapType){};this.addOverlay=function(overlay){if(typeof(overlay)!="undefined"&&typeof(overlay._type)!="undefined"){if(overlay._type==1){add_ponto_marker(overlay);}}};this.clearOverlays=function(){smaps_del_markers();};this.activate_locator=function(callback_fn){g_locator_widget=true;g_percursos=false;g_results_per_win=5;g_locator_callback=callback_fn;if(g_smaps_add_css){smaps_add_css(g_css_server+"/Assets/Maps/geosapo_loc.css");}};this.render=function(){setTimeout(GSMap_render,500);};g_GSMap1=new GSMap(this,container,cols,lines);if(g_smaps_add_css){smaps_add_css(g_css_server+"/Assets/Maps/geosapo_api.css");}}
function GMarker(point,param1,param2){this.point=point;if(param1&&param1._type=="GMarkerOptions"){this.options=param1;}else{this.options=new GMarkerOptions();this.options.icon=param1;if(param2){this.options.clickable=!param2;}}
this._type=1;this.click_fn=null;this.html="";this.index=-1;this._set_html=function(str1){var str=smaps_trim(str1);var div=s$("callout_div_"+this.index);if(div!==null){div.innerHTML=str;g_a_pontos[this.index].titulo="";g_a_pontos[this.index].desc=str;}
this.html=str;};this.openInfoWindow=function(htmlElem){this._set_html(htmlElem.innerHTML);};this.openInfoWindowHtml=function(htmlStr){this._set_html(htmlStr);};this.openInfoWindowTabs=this.openInfoWindow;this.openInfoWindowTabsHtml=this.openInfoWindow;this.getIcon=function(){return this.options.icon;};this.getPoint=function(){return this.point;};}
function GMarkerOptions(){this._type="GMarkerOptions";this.title="";this.selected=false;this.visible=true;this.opened=false;this.editable=false;this.permanent=false;}
function GIcon(){}
function GEvent_instance(){this.addListener=function(source,eventName,listenerFn){if(typeof(source._type)!="undefined"&&source._type==1&&eventName=="click"){listenerFn(source);return new GEventListener();}};this.removeListener=function(listener){};this.clearListeners=function(source,eventName){};this.trigger=function(source,eventName){};this.bind=function(source,eventName,object,method){};this.addDomListener=this.addListener;this.clearInstanceListeners=this.clearListeners;this.bindDom=this.bind;}
function GEventListener(){}
function GPoint(x,y){this.x=x;this.y=y;this.equals=function(other){return this.x==other.x&&this.y==other.y;};this.toString=function(){return"x="+x+",y="+y;};}
function GSize(width,height){this.width=width;this.height=height;this.equals=function(other){return this.width==other.width&&this.height==other.height;};this.toString=function(){return"w="+width+",h="+height;};}
function GBounds(v1,v2,v3,v4){if(typeof(v3)=="undefined"){this.minX=smaps_roundLatLon(v1.x);this.minY=smaps_roundLatLon(v1.y);this.maxX=smaps_roundLatLon(v2.x);this.maxY=smaps_roundLatLon(v2.y);}
else{this.minX=smaps_roundLatLon(v1);this.minY=smaps_roundLatLon(v2);this.maxX=smaps_roundLatLon(v3);this.maxY=smaps_roundLatLon(v4);}
this.min=function(){return new GPoint(this.minX,this.minY);};this.max=function(){return new GPoint(this.maxX,this.maxY);};this.intersects=function(x0,y0,x1,y1){if(x0<this.minX){x0=this.minX;}
if(x1>this.maxX){x1=this.maxX;}
if(x0>x1){return false;}
if(y0<this.minY){y0=this.minY;}
if(y1>this.maxY){y1=this.maxY;}
if(y0>y1){return false;}
return true;};this.add=function(ext){if(ext.minX<this.minX){this.minX=ext.minX;}
if(ext.minY<this.minY){this.minY=ext.minY;}
if(ext.maxX>this.maxX){this.maxX=ext.maxX;}
if(ext.maxY>this.maxY){this.maxY=ext.maxY;}};}
function GSmallMapControl(){this.map_control_type=const_id_small_control;}
function GLargeMapControl(){this.map_control_type=const_id_large_control;}
function GSMap(gmap,div,cols,lines){this._lat=0;this._lon=0;this._zoom=0;this.div=div;this.cols=cols;this.lines=lines;this.resolution=0;this.gmap=gmap;this._rendered=false;this._set_is_rendered=function(){this._rendered=true;};this.is_rendered=function(){return this._rendered;};this.addMarker=function(lat,lon,markerOptions,text){var GmkOptions=new GMarkerOptions();for(property in markerOptions){GmkOptions[property]=markerOptions[property];}
if(GmkOptions.guid&&g_a_pontos_hash_map[GmkOptions.guid]){g_a_pontos_hash_map[GmkOptions.guid].options.layers_call_count=g_layers_call_count;return;}
if(GmkOptions.icon_selected&&GmkOptions.icon_selected.display_titles){GmkOptions.icon_selected.title="<img border='0' src='"+GmkOptions.icon_selected.image+"' width='"+GmkOptions.icon_selected.iconSize.width+"' height='"+GmkOptions.icon_selected.iconSize.height+"'/><span class='map_pin'>"+GmkOptions.title+"</span>";}
var marker=new GMarker(new GLatLng(lat,lon),GmkOptions);if(GmkOptions.guid){g_a_pontos_hash_map[GmkOptions.guid]=marker;}
marker.openInfoWindowHtml(text);this.gmap.addOverlay(marker);return marker;};this.redraw=function(){smaps_dbg("redraw:"+this._lat+" "+this._lon+" "+this._zoom);if(this.is_rendered()){navigate_to_async(this._lat,this._lon,this._zoom);}};this.set_zoom=function(zoomLevel){if(!GS_wms_tiles.location.has_zoom(zoomLevel)){return;}
this.resolution=(1<<zoomLevel)*GS_wms_tiles.zoom0_resolution;this._zoom=zoomLevel;this.redraw();};this.set_lat_lon=function(lat,lon){if(isNaN(lat)||isNaN(lon)){return false;}
this._lat=lat;this._lon=lon;this._zoom=this.get_zoom();this.redraw();return true;};this.set_lat_lon_zoom=function(lat,lon,zoom){if(isNaN(lat)||isNaN(lon)){return false;}
this._lat=lat;this._lon=lon;this.set_zoom(zoom);};this.get_zoom=function(){return GS_wms_tiles.current_zoom;};this.get_lon=function(){if(global_xform_params){return global_xform_params.lon;}
return this._lon;};this.get_lat=function(){if(global_xform_params){return global_xform_params.lat;}
return this._lat;};this.get_span_lon=function(){if(!this.is_rendered()){throw"Function valid only when the Map is rendered";}
return meters_2_degrees_lon(global_xform_params.w);};this.get_span_lat=function(){if(!this.is_rendered()){throw"Function valid only when the Map is rendered";}
return meters_2_degrees_lat(global_xform_params.h);};this.set_lat_lon_span=function(lat,lon,span){var span0=this.get_span_lon();var z=Math.floor(span/span0*this.get_zoom());this.set_lat_lon_zoom(lat,lon,z);};this.set_lat_lon_width=function(lat,lon,width){var z=GS_wms_tiles.get_zoom_res(width/this.cols);if(z>g_max_zoom){z=g_max_zoom;}
if(z<g_min_zoom){z=g_min_zoom;}
this.set_lat_lon_zoom(lat,lon,z);};this.toPointsURL=function(to_print){var tmp_a_pontos=g_a_pontos;var tmp_num_pontos=g_num_pontos;var layers=escape(smaps_get_normalized_layers());if(layers.length===0)layers="Z";var str="M="+smaps_roundLatLon(g_GSMap1.get_lat())+","+
smaps_roundLatLon(g_GSMap1.get_lon())+","+(17-g_GSMap1.get_zoom())+","+layers;for(var i=0;i<tmp_a_pontos.length;i++){if(tmp_a_pontos[i].obj.options.visible&&tmp_a_pontos[i].obj.options.selected&&!tmp_a_pontos[i].obj.options.guid&&!tmp_a_pontos[i].obj.options.permanent){var mk=tmp_a_pontos[i].obj;var txt1;if(typeof(to_print)=="undefined"){txt1=escape(escape(SAPO.Utility.String.utf8Encode(mk.options.title)));}else if(to_print){txt1=escape(escape(SAPO.Utility.String.utf8Encode(mk.options.title)));}else{txt1=escape(escape(escape(SAPO.Utility.String.utf8Encode(mk.options.title))));}
str=str+";"+mk.point.y+","+mk.point.x+","+txt1+","+(mk.options.opened?"1":"0");}}
if(tmp_a_pontos.length===0){return this.toCoordsValue();}
return str;};this.toUrlValue=function(to_print){return g_smaps_page+"#"+this.toPointsURL(to_print);};this.toCoordsValue=function(){return"c"+smaps_roundLatLon(g_GSMap1.get_lat())+"_"+
smaps_roundLatLon(g_GSMap1.get_lon())+"_"+(17-g_GSMap1.get_zoom());};this.toQueryValue=function(){return"#"+this.toCoordsValue();};}
function link_mapas_sapo_pt(){window.top.location.href="http://mapas.sapo.pt/"+g_GSMap1.toQueryValue();}
function GSMap_render(){smaps_dbg("GSMap_render");g_GSMap1._set_is_rendered(true);map_div(g_GSMap1.div,g_GSMap1._lat,g_GSMap1._lon,g_GSMap1.resolution*g_GSMap1.cols,g_GSMap1.cols,g_GSMap1.lines,"POI","rapido");}
var g_max_zoom=12;var g_min_zoom=1;var g_zoom_title=[];g_zoom_title[0]="Detalhe m&aacute;ximo";g_zoom_title[1]="Ruas";g_zoom_title[2]="Ruas principais";g_zoom_title[3]="Bairro";g_zoom_title[4]="Arredores";g_zoom_title[5]="Freguesias";g_zoom_title[6]="Concelho";g_zoom_title[7]="Cidades";g_zoom_title[8]="Distrito";g_zoom_title[9]="Regi&atilde;o";g_zoom_title[10]="Auto-estradas";g_zoom_title[11]="Distritos";g_zoom_title[12]="Pa&iacute;s";var g_a_pontos=[];var g_num_pontos=0;var g_smaps_serial=0;var g_layers_call_count=0;var g_a_pontos_hash_map=[];var smaps_const=null;function init_smaps_const(){smaps_const={img_marca:g_css_server+"/Assets/Maps/Images/mapas_pin1.png",img_marca_sel:g_css_server+"/Assets/Maps/Images/mapas_pin1.png",img_deselecionar:g_css_server+"/Assets/Maps/Images/bot_minimizar.gif",img_selecionar:g_css_server+"/Assets/Maps/Images/bot_maximizar.gif",window_offset_x:3,window_offset_y:27};g_grid_index=0;}
var g_img_marca_w=21;var g_img_marca_h=25;var g_img_marca_dx=10;var g_img_marca_dy=g_img_marca_h;var g_texto_deselecionar_ponto="Retirar alfinete";var g_texto_selecionar_ponto="Colocar alfinete";var g_grid_index=0;var g_locator_widget=false;var oficial_version=true;function smaps_del_markers(){g_num_pontos=0;g_a_pontos=[];g_a_pontos_hash_map=[];}
function add_ponto(titulo,lat,lon){g_a_pontos[g_num_pontos]={titulo:titulo,lat:lat,lon:lon,img:(smaps_const.img_marca),w:g_img_marca_w,h:g_img_marca_h};g_num_pontos++;}
function add_ponto_desc(titulo,lat,lon,desc){if(titulo===""&&desc===""){titulo="Ponto "+g_num_pontos;}
g_a_pontos[g_num_pontos]={titulo:titulo,lat:lat,lon:lon,img:(smaps_const.img_marca),w:g_img_marca_w,h:g_img_marca_h,desc:desc};g_num_pontos++;}
function add_ponto_img(titulo,lat,lon,desc,img,img_w,img_h){if(img===""){add_ponto_desc(titulo,lat,lon,desc);return;}
g_a_pontos[g_num_pontos]={titulo:titulo,lat:lat,lon:lon,img:img,w:img_w,h:img_h};g_num_pontos++;}
function add_ponto_obj(titulo,lat,lon,desc,img,img_w,img_h,marker){g_a_pontos[g_num_pontos]={titulo:titulo,lat:lat,lon:lon,img:img,w:img_w,h:img_h,obj:marker};marker.index=g_num_pontos;g_num_pontos++;}
function add_ponto_marker(marker){var img=(marker.options.icon)?marker.options.icon.image:"";var w,h,dx,dy;if(img!==""){w=(marker.options.icon.iconSize)?marker.options.icon.iconSize.width:0;h=(marker.options.icon.iconSize)?marker.options.icon.iconSize.height:0;dx=(marker.options.icon.iconAnchor)?marker.options.icon.iconAnchor.x:0;dy=(marker.options.icon.iconAnchor)?marker.options.icon.iconAnchor.y:0;dx_win=(marker.options.icon.infoWindowAnchor)?marker.options.icon.infoWindowAnchor.x:0;dy_win=(marker.options.icon.infoWindowAnchor)?marker.options.icon.infoWindowAnchor.y:0;}else{img=smaps_const.img_marca;w=g_img_marca_w;h=g_img_marca_h;}
g_a_pontos[g_num_pontos]={titulo:marker.options.title,lat:marker.point.y,lon:marker.point.x,desc:marker.html,img:img,w:w,h:h,obj:marker,dx:dx,dy:dy,dx_win:dx_win,dy_win:dy_win,index:g_num_pontos};marker.index=g_num_pontos;g_num_pontos++;}
var global_xform_params;function Xform_params(lat,lon,x,y,cols,lines,largura,pan_percent,nome_servico,tipo_percurso){this.largura=largura;this.lon=lon;this.lat=lat;this.cols=cols;this.lines=lines;this.x=x;this.y=y;this.w=this.largura;this.h=this.w*this.lines/this.cols;if(x){this.x0=x-0.5*this.w;this.y0=y-0.5*this.h;this.x1=x+0.5*this.w;this.y1=y+0.5*this.h;}
this.pan_percent=pan_percent;this.pan_cols=this.cols*this.pan_percent;this.pan_lines=this.lines*this.pan_percent;this.img2_cols=Math.round(this.cols*(1.0+2*this.pan_percent));this.img2_lines=Math.round(this.lines*(1.0+2*this.pan_percent));this.nome_servico=nome_servico;this.tipo_percurso=tipo_percurso;}
function Xform_point(pt_x,pt_y,xform_par){this.x=(pt_x-xform_par.x0)/xform_par.w;this.y=(pt_y-xform_par.y0)/xform_par.h;this.x=this.x*xform_par.cols;this.y=xform_par.lines-this.y*xform_par.lines;}
function Xform_point_inv(x,y,xform_par){this.x=xform_par.x0+(xform_par.w*x/xform_par.cols);this.y=xform_par.y0+(xform_par.h*(xform_par.lines-y)/xform_par.lines);}
var _map_pontos_timer=null;function timer_smaps_map_pontos(){if(_map_pontos_timer!==null)
clearTimeout(_map_pontos_timer);_map_pontos_timer=setTimeout(smaps_map_pontos,500);}
function clear_timer_smaps_map_pontos(){if(_map_pontos_timer!==null)
clearTimeout(_map_pontos_timer);}
function smaps_set_map_cursor(){var cur_msg=((g_ie)?'url( '+g_css_server+'/Assets/Maps/Images/hand.cur)':'url('+g_css_server+'/Assets/Maps/Images/cur_hand.gif), auto');s$('div_no_clip').style.cursor=cur_msg;}
function smaps_map_pontos(){if(!GS_wms_tiles.ready)
return;if(_map_pontos_timer!==null){clearTimeout(_map_pontos_timer);}
_map_pontos_timer=null;smaps_dbg("map_pontos");smaps_dbg(g_num_pontos);var ind=1;var div_pontos_old=s$("div_pontos_child");var div=smaps_new_node('div','id','div_pontos_child',"style",'overflow:visible;padding:0px;margin:0px;position:absolute;z-index:25;top:0px;left:0px;width:'+
global_xform_params.img2_cols+'px;height:'+global_xform_params.img2_lines+'px;');smaps_dbl_click_ffox(div,center_map);var div_parent=s$('div_pontos');smaps_write_node(div_parent,div);smaps_set_map_cursor();var lat=global_xform_params.lat;var lon=global_xform_params.lon;var largura=global_xform_params.largura;var cols=global_xform_params.cols;var lines=global_xform_params.lines;var div_cam=s$("div_des_cam");div_cam.innerHTML="";var img_sel,texto_sel;var zoom=g_GSMap1.get_zoom();var is_great_zoom=zoom<=smaps_zoom_level_layers_base;for(ind=g_num_pontos-1;ind>=0;ind--){var pt_a=g_a_pontos[ind];if(!pt_a.lat){continue;}
if(pt_a.obj.options.guid&&pt_a.obj.options.permanent&&!is_great_zoom)continue;if(typeof(pt_a.obj.options.minResolution)!="undefined"){if(pt_a.obj.options.minResolution<GS_wms_tiles.get_resolution(zoom))continue;}
if(typeof(pt_a.obj.options.visibility_fn)!="undefined"){pt_a.obj.options.visible=pt_a.obj.options.visibility_fn(pt_a.obj);}
if(pt_a.obj&&!pt_a.obj.options.visible){continue;}
pt_nome=pt_a.titulo?pt_a.titulo:"";pt_desc=(pt_a.desc)?pt_a.desc:"";var pt_lat=pt_a.lat;var pt_lon=pt_a.lon;var g_callout_small_cols=142;var g_callout_small_lines=105;var g_callout_big_cols=214;var locator_pin=pt_a.obj.options&&pt_a.obj.options.editable;var g_callout_big_lines=(locator_pin)?220:166;var big_callout=locator_pin||(lines>=1.3*g_callout_big_lines&&cols>=1.3*g_callout_big_cols);if(!locator_pin){if(pt_nome.toString().length+pt_desc.toString().length<40){big_callout=false;}}
var g_callout_lines=big_callout?g_callout_big_lines:g_callout_small_lines;var g_callout_cols=big_callout?g_callout_big_cols:g_callout_small_cols;var callout_Nborder=10;var callout_Sdiv_border=10;var callout_Sborder=callout_Sdiv_border+20;var callout_Wborder=10;var callout_Eborder=5;var callout_offset_x=big_callout?98:62;var callout_offset_y=0;var font_style=big_callout?'font-size:10px;font-family:sans-serif':'font-size:9px;font-family:sans-serif';var callout_css=big_callout?"callout_big":"callout_small";var callout_desc_class="callout_desc";if(locator_pin){callout_css="callout_widget";callout_desc_class="callout_desc_widget";}
var selected=false;pt_img_w=pt_a.w;pt_img_h=pt_a.h;if(pt_a.obj&&pt_a.obj.options.selected){if(pt_a.obj.options.icon_selected){pt_img=(!pt_a.obj.options.opened)?pt_a.obj.options.icon_selected.title:pt_a.obj.options.icon_selected.image;if(pt_a.obj.options.icon_selected&&pt_a.obj.options.icon_selected.iconSize){pt_img_w=pt_a.obj.options.icon_selected.iconSize.width;pt_img_h=pt_a.obj.options.icon_selected.iconSize.height;}
if(typeof(pt_img)=="undefined"){pt_img=pt_a.obj.options.icon_selected.image;}}else{pt_img=pt_a.img;}
img_sel=smaps_const.img_deselecionar;texto_sel=g_texto_deselecionar_ponto;selected=true;}else{pt_img=pt_a.img;img_sel=smaps_const.img_selecionar;texto_sel=g_texto_selecionar_ponto;}
var conv=new conv_lat_lon_mercator_sphere(pt_lat,pt_lon);var pt_x=conv.x;var pt_y=conv.y;var xform=new Xform_point(pt_x,pt_y,global_xform_params);var xp=Math.floor(xform.x);var yp=Math.floor(xform.y);if(typeof(pt_a.obj.options.matchlevel)!="undefined"){if(pt_a.obj.options.matchlevel<6&&zoom<=2){xp+=pt_a.obj.options.dx*(3-zoom);yp+=pt_a.obj.options.dy*(3-zoom);}}
if(typeof(pt_a.dx)!="undefined"){x=xp-pt_a.dx;y=yp-pt_a.dy;}else{x=Math.floor(xform.x-0.5*pt_img_w);y=Math.floor(xform.y+0.5*pt_img_h)-pt_img_h;}
var x_ponto=x+global_xform_params.pan_cols;var y_ponto=y+global_xform_params.pan_lines;if(x_ponto<0.0||x_ponto>=global_xform_params.img2_cols||y_ponto<0.0||y_ponto>=global_xform_params.img2_lines){continue;}
var pt_link1="smaps_callout("+ind+")";var pt_link0="smaps_esconde("+ind+")";var is_html=pt_img.indexOf("<")>=0||(pt_img.indexOf(".png")<=0&&pt_img.indexOf(".gif")<=0&&pt_img.indexOf(".jpg")<=0);var z_index_pt=g_z_index_pt_closed;if(pt_a.obj.options.opened){z_index_pt=g_z_index_pt_opened;}
var img_style="";var img_src=pt_img;if(!is_html&&g_ie6&&img_src.indexOf(".png")>=0){img_style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+pt_img+"', sizingMethod='scale')";img_src=g_css_server+"/Assets/Maps/Images/pngtransp.gif";}
var pt_nome_ie=locator_pin?"":pt_nome;if(!g_ie)pt_nome_ie="";var div_marker=smaps_new_node('div','id','mark'+ind,"style",'position:absolute;z-index:'+g_z_index_pt_closed+';padding:0px;margin:0px;top:'+y_ponto+'px;left:'+x_ponto+'px;width:'+pt_img_w+'px;height:'+pt_img_h+'px;border:0px',"ondblclick","smaps_nop()",smaps_new_node('a',"href","javascript:"+pt_link1,'onmouseover',"unregister_move()",'onmouseout',"smaps_register_move()",(!is_html)?smaps_new_node('img',"galleryimg","no","oncontextmenu","return false","src",img_src,"style",img_style,"align","top","width",pt_img_w,"height",pt_img_h,"border",0,"title",(pt_nome_ie)):smaps_set_node_html(smaps_new_node('div',"style","margin:0px auto"),pt_img)));var widget_location_bar_h=(g_locator_callback?25:5);var x_callout=xp-callout_offset_x;var y_callout=yp-g_callout_lines-callout_offset_y;if(typeof(pt_a.dx_win)!="undefined"){x_callout=x_callout+pt_a.dx_win-2;if(pt_a.dx){x_callout=x_callout-pt_a.dx;}
y_callout=y_callout+pt_a.dy_win;if(pt_a.dy){y_callout=y_callout-pt_a.dy;}}
if(y_callout<0){pt_a.navigate_dy=-y_callout;}else{pt_a.navigate_dy=0;}
if(x_callout+g_callout_cols>cols){pt_a.navigate_dx=x_callout+g_callout_cols-cols;}else if(x_callout<40){pt_a.navigate_dx=x_callout-40;}else{pt_a.navigate_dx=0;}
x_callout+=global_xform_params.pan_cols;y_callout+=global_xform_params.pan_lines;var opened=false;if(pt_a.obj.options&&pt_a.obj.options.opened){opened=true;}
if(pt_desc!==""){pt_desc="<p>"+pt_desc+"</p>";}
var desc_div=smaps_set_node_html(smaps_new_node('div'),(pt_nome!=="")?("<h1>"+pt_nome+'</h1>'+pt_desc):pt_desc);var div_apagar=smaps_new_node('dummy');if(pt_a.obj.options&&!pt_a.obj.options.guid&&!pt_a.obj.options.permanent){div_apagar=smaps_new_node('a','href',"javascript:apagar_ponto("+ind+")",smaps_new_node('img',"src",g_css_server+"/Assets/Maps/Images/bot_apagar.gif","title","Apagar"));}
var div_callout_ind=smaps_new_node('div','id','callout'+ind,"class",callout_css,"style",'visibility:'+(opened?'visible':'hidden')+';position:absolute;z-index:'+(z_index_pt+10)+';top:'+(y_callout)+'px;left:'+(x_callout)+'px;cursor:pointer;cursor:default;',"ondblclick","smaps_nop()",'onmouseover',"unregister_move()",'onmouseout',"smaps_register_move()",smaps_new_node('div','id','callout_div_'+ind,'class',callout_desc_class,"style",'position:absolute;top:'+callout_Nborder+'px;left:'+callout_Wborder+'px;border:0px;width:'+(g_callout_cols-callout_Wborder-callout_Eborder)+'px;height:'+(g_callout_lines-callout_Nborder-callout_Sborder)+'px',desc_div),smaps_new_node('div',"style",'position:absolute;top:'+(g_callout_lines-callout_Sborder)+'px;left:'+(g_callout_cols-callout_Eborder-30)+'px;border:0px;width:20px;height:15px;overflow:visible'),smaps_new_node('div','class','callout_content',"style",'position:absolute;overflow:hidden;top:'+(g_callout_lines-callout_Sborder)+'px;left:'+(g_callout_cols-18)+'px;border:0px;width:20px;height:15px',div_apagar),smaps_new_node('div',"style",'position:absolute;overflow:hidden;top:7px;left:'+(g_callout_cols-18)+'px;border:0px;width:20px;height:15px',smaps_new_node('a','href',"javascript:"+pt_link0,smaps_new_node('img',"src",g_css_server+"/Assets/Maps/Images/bot_fechar.gif","title","Fechar"))));smaps_dbl_click_ffox(div_callout_ind,smaps_nop);smaps_write_node(div,div_marker);smaps_write_node(div,div_callout_ind);}
s$("div_pontos_child").style.visibility="visible";if(div_pontos_old!==null){div_pontos_old.style.display="none";div_parent.removeChild(div_pontos_old);}
for(var i=0;i<g_num_pontos;i++){smaps_dbl_click_ffox('callout'+ind,smaps_nop);}
smaps_desenha();}
function smaps_dbl_click_ffox(element,fn){element.ondblclick=fn;if(element.captureEvents){element.captureEvents(Event.ONDBLCLICK);}}
function smaps_nop(e){try{if(!e){e=window.event;}
if(e.cancelBubble){e.returnValue=false;e.cancelBubble=true;}
if(e.preventDefault){e.preventDefault();e.stopPropagation();}}catch(e){}}
function muda_texto_ponto(ind){var txt=s$("textarea_"+ind).value;var pt_a=g_a_pontos[ind];pt_a.desc=txt;smaps_refresh();}
function smaps_map(div_name,lat00,lon00,largura00,cols00,lines00,nome_servico,tipo_percurso){var div=s$(div_name);var lat=smaps_parse(lat00);var lon=smaps_parse(lon00);var largura=smaps_parse(largura00);var cols=smaps_parse(cols00);var lines=smaps_parse(lines00);map_params_global=null;map_div(div,lat,lon,largura,cols,lines,nome_servico,tipo_percurso);}
var map_params_global=null;function Map_params(div0,lat0,lon0,largura0,cols0,lines0,nome_servico0,tipo_percurso0){this.div=div0;this.lat=lat0;this.lon=lon0;this.largura=largura0;this.cols=cols0;this.lines=lines0;this.nome_servico=nome_servico0;this.tipo_percurso=tipo_percurso0;}
function map_div(div,lat,lon,largura,cols,lines,nome_servico,tipo_percurso){_last_map_params=null;var mymap=s$("mymap");if(mymap!==null&&mymap.hasChildNodes()){mymap.innerHTML="";}
var div_tags=smaps_new_node('div');var div_tags_h=s$('tags_hidden');if(div_tags_h!==null){div_tags.innerHTML=div_tags_h.innerHTML;}
var div_btn_area;div_btn_area=smaps_new_node('div','id',"btnArea",div_tags);if(g_GSMap1.gmap.navAreaVis){var navArea=smaps_new_node('div','id',"navArea",div_btn_area,"style","width:"+(cols)+"px;overflow:hidden");smaps_write_node(div,navArea);smaps_dbg(g_GSMap1.gmap.navAreaHeight);lines=lines-g_GSMap1.gmap.navAreaHeight;}
var map_style="height:"+lines+"px;";smaps_write_node(div,smaps_new_node('div','id',"mapborder","style",map_style,smaps_new_node('div','id',"mapborder2",smaps_new_node('img','id','img_wheel',"style","position:absolute;left:"+(cols/2-55)+"px;top:"+(lines/2-41)+"px;z-index:0","src",g_css_server+"/Assets/Maps/Images/bigwheel_1.gif","galleryimg","no","oncontextmenu","return false"),smaps_new_node('div','id',"mymap"))));map_params_global=new Map_params(div,lat,lon,largura,cols,lines,nome_servico,tipo_percurso);map_div_continue();}
function map_div_continue(){var div_mymap=s$('mymap');if(div_mymap===null||(typeof(GS_wms_tiles)=="undefined"||!GS_wms_tiles.ready)){setTimeout(map_div_continue,250);}
else{if(g_GSMap1.gmap._size_callback){setTimeout(g_GSMap1.gmap._size_callback,100);}
var div_border=s$('mapborder');var w=parseInt(div_border.offsetWidth,10);var h=parseInt(div_border.offsetHeight,10);if(!w){w=map_params_global.cols;}
if(!h){w=map_params_global.lines;}
div_mymap.width=w+"px";div_mymap.height=h+"px";var lar=map_params_global.largura;map_params_global.largura=map_params_global.largura*w/map_params_global.cols;map_params_global.cols=w;map_params_global.lines=h;map_params_global.div=div_mymap;map_div_with_params();if(smaps_mouse_wheel){smaps_register_mouse_wheel();}}}
function smaps_register_mouse_wheel(){var mapdiv=s$("gsmap");if(mapdiv.addEventListener){mapdiv.addEventListener('DOMMouseScroll',wheel,false);}
mapdiv.onmousewheel=wheel;}
function map_div_with_params(){var div=map_params_global.div;var lat=map_params_global.lat;var lon=map_params_global.lon;var largura=map_params_global.largura;var cols=map_params_global.cols;var lines=map_params_global.lines;var nome_servico=map_params_global.nome_servico;var tipo_percurso=map_params_global.tipo_percurso;var tiles_zoom=0;var zoom_control=g_map_control_type;var str=""+window.location;tiles_zoom=GS_wms_tiles.get_zoom_res(largura/cols);largura=GS_wms_tiles.get_resolution_aprox(tiles_zoom)*cols;global_xform_params=new Xform_params(lat,lon,undefined,undefined,cols,lines,largura,gPan_percent,nome_servico,tipo_percurso);var div_desenho_caminho=smaps_new_node('div','id','div_des_cam',"style",'overflow:hidden;padding:0px;margin:0px;visibility:visible;position:absolute;z-index:20;top:0px;left:0px;width:'+global_xform_params.img2_cols+'px;height:'+global_xform_params.img2_lines+'px');var div_zoom;var zoom_mais=smaps_new_node('div',"style",'position:relative;top:5px;left:6px;width:17px;height:19px',smaps_new_node('a',"href","javascript:smaps_zoomin();",smaps_new_node('img',"src",g_css_server+"/Assets/Maps/Images/mais.gif","galleryimg","no","oncontextmenu","return false","border",0,"title","Maior detalhe")));var zoom_menos=smaps_new_node('div',"style",'position:relative;top:8px;left:6px;width:17px;height:16px',smaps_new_node('a',"href","javascript:smaps_zoomout();",smaps_new_node('img',"src",g_css_server+"/Assets/Maps/Images/menos.gif","galleryimg","no","oncontextmenu","return false","border",0,"align","top","title","Menor detalhe")));var zoom_drag_display="";if(zoom_control==const_id_small_control){zoom_drag_display="display:none;";div_zoom=smaps_new_node('div',"id","div_zoom","style",'position:absolute;z-index:25;top:2px;left:2px;visibility:hidden;width:35px;height:60px;',zoom_mais,zoom_menos);}else if(zoom_control==const_id_large_control){var style_caixa_zoom="position:absolute;top:0;left:0;";src_caixa_zoom=g_css_server+'/Assets/Maps/Images/caixa_zoom_linha.png';if(g_ie6&&src_caixa_zoom.indexOf(".png")>=0){style_caixa_zoom=style_caixa_zoom+"filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+src_caixa_zoom+"', sizingMethod='scale')";src_caixa_zoom=g_css_server+"/Assets/Maps/Images/pngtransp.gif";}
div_zoom=smaps_new_node('div',"id","div_zoom","style",'position:absolute;z-index:25;top:7px;left:6px;visibility:hidden;width:32px;height:150px;overflow:visible;',smaps_new_node('img','width',32,'height',142,'src',src_caixa_zoom,'style',style_caixa_zoom),zoom_mais,'onmouseout','hide_zoom_titles()');}
var zoom_drag=smaps_new_node('div','id','zoom_drag',"style",zoom_drag_display+"position:absolute;z-index:30;top:20px;left:5px;cursor:pointer;cursor:hand;",smaps_new_node('img','id','zoom_drag_img','width','20','height',g_zoom_drag_height,'src',g_css_server+'/Assets/Maps/Images/pix.gif'));smaps_write_node(div_zoom,smaps_new_node('div','style','overflow:hidden;position:relative;width:5px;height:5px'));for(i=g_min_zoom;i<=g_max_zoom;i++){var zoom_title=smaps_new_node('div',"id","div_t"+i,"class",'zoom_title',"style",'visibility:hidden;position:absolute;top:-5px;left:20px;');zoom_title.innerHTML=g_zoom_title[i];smaps_write_node(div_zoom,smaps_new_node('div',"style",zoom_drag_display+'margin:0;padding:0;position:relative;top:5px;left:4px;width:20px;height:7px',smaps_new_node('div',"id","div_z"+i,"class","zoom_norm_ie"),zoom_title));}
smaps_write_node(div_zoom,zoom_drag);if(zoom_control==const_id_large_control){smaps_write_node(div_zoom,zoom_menos);}
var div_escala=smaps_new_node('div','id','div_escala',"style",'cursor:default;visibility:hidden;padding:0px;margin:0px;position:absolute;z-index:30;'+'top:'+(lines-22)+'px;left:7px;width:190px;height:12px',smaps_new_node('div','id','div_escala_0',"style",'position:absolute;top:0px;left:0px;width:20px;height:10px',smaps_new_text_node("0")),smaps_new_node('img',"src",g_css_server+"/Assets/Maps/Images/mapas_escala.gif","galleryimg","no","oncontextmenu","return false","border","0px","onmouseover","window.status=''","style",'visibility:visible;padding:0px;margin:0px;position:absolute;top:4px;left:8px;width:'+g_smaps_escala_pix+'px;height:6px',"alt","escala"),smaps_new_node('div','id','div_escala_1',"style",';position:absolute;top:0px;left:'+(g_smaps_escala_pix+10)+'px;width:80px;height:10px'));if(g_copyr_img!=""){var img_src=g_copyr_img;var img_style="";if(g_ie6&&img_src.indexOf(".png")>=0){img_style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\""+img_src+"\", sizingMethod=\"scale\")";img_src=g_css_server+"/Assets/Maps/Images/pngtransp.gif";}
var div_copy_child=smaps_new_node('div','maps_copyr',"class","gs_ok");smaps_set_node_html(div_copy_child,"<a style='font-size:0.9em' href='#' onclick='link_mapas_sapo_pt()'><img src='"+img_src+"' width='98' height='23' style='"+img_style+"'/></a></div>");div_copyr=smaps_new_node('div','id','div_copyr',"style",'visibility:visible;position:absolute;z-index:30;top:'+(lines-25)+'px;left:'+(cols-105)+'px;width:100px;height:20px;',smaps_new_node('div',"style","position:absolute;left:0px;top:0px",div_copy_child));}else if(g_copyr_msg!==""){div_copyr=smaps_new_node('div','id','div_copyr',"style",'visibility:visible;position:absolute;z-index:30;top:'+(lines-22)+'px;left:'+(cols-70)+'px;width:75px;height:20px;');smaps_set_node_html(div_copyr,g_copyr_msg);}else{div_copyr=smaps_new_node('dummy');}
var div_mapa_img,div_no_clip;div_mapa_img=smaps_new_node('div','id','div_grelha0',"style","visibility:hidden");var div_pontos=smaps_new_node('div','id','div_pontos',"style",'overflow:visible;padding:0px;margin:0px;position:absolute;z-index:25;top:0px;left:0px;width:'+
global_xform_params.img2_cols+'px;height:'+global_xform_params.img2_lines+'px;');div_no_clip=smaps_new_node('div','id','div_no_clip',"style",'overflow:visible;position:relative;top:-'+(global_xform_params.pan_lines)+'px;left:-'+(global_xform_params.pan_cols)+'px;'+'width:'+global_xform_params.img2_cols+'px;height:'+global_xform_params.img2_lines+'px',div_mapa_img,div_desenho_caminho,div_pontos);var div_mapa=smaps_new_node('div','id','smaps_div',"style",'overflow:hidden;position:absolute;z-index:10;padding:0px;margin:0px;top:0px;left:0px;width:'+cols+'px;height:'+lines+'px;border:0px',smaps_new_node('div','id','div_clip',"style",'visibility:visible;overflow:visible;position:relative;z-index:11;top:0px;left:0px;width:'+cols+'px;height:'+lines+'px',div_no_clip));var minimap_opened_style;var minimap_closed_style;if(smaps_widget){minimap_opened_style="display:none";minimap_closed_style="display:none";}else{minimap_opened_style=smaps_minimap_start_opened?"display:block":"display:none";minimap_closed_style=smaps_minimap_start_opened?"display:none":"display:block";}
var a_close_minimap=smaps_new_node('a',"href","#",smaps_new_node('img',"src","http://mapas.sapo.pt/images/bot_mapapq_fechar.gif","title","Minimizar mapa"));var div_minimap=smaps_new_node('div','id','minimap',"class","clearfix mapa-pq1","style",minimap_opened_style+";height:100px;position:absolute;z-index:30;top:6px;left:"+(cols-145)+"px",smaps_new_node('div',"class","mapa-ilhas","style","position:absolute",smaps_new_node('div','id','minimap_overview',"class","mapa-continente","title","Clique para centrar o mapa noutro local","style","position:absolute;left:0px;top:0px",smaps_new_node('div','id','minimap_feedback',"class","mapa-pq-feedback","style","position:absolute")),smaps_new_node('div',"class","mapa-pq-bot1","style","position:absolute;left:105px;top:0px",a_close_minimap)));div_minimap.onclick=smaps_click_overview;a_close_minimap.onclick=smaps_close_minimap;var div_minimap_closed=smaps_new_node('div','id','minimap_closed',"class","clearfix mapa-pq2","style",minimap_closed_style+";position:absolute;z-index:30;top:6px;left:"+(cols-36)+"px",smaps_new_node("a","href","javascript:smaps_open_minimap()",smaps_new_node("img","src","http://mapas.sapo.pt/images/bot_mapapq_abrir.gif","title","Maximizar mapa")));smaps_write_node(div,smaps_new_node("div","id","gsmap","style",'position:relative;z-index:10;padding:0px;margin:0px;top:0px;left:0px;width:'+cols+'px;height:'+lines+'px;overflow:hidden',div_mapa,div_escala,div_zoom,div_minimap,div_minimap_closed,div_copyr));GS_wms_tiles.get_map_tiles(lat,lon,tiles_zoom,global_xform_params.img2_cols,global_xform_params.img2_lines);if(g_locator_widget){var btn=smaps_new_node("div","id","gs_btn",smaps_new_node("a","href",'javascript:smaps_submitPesqForm()',smaps_new_text_node("Pesquisar")));var btn_aqui=smaps_new_node("div","id","gs_btn_aqui",smaps_new_node("a","href",'javascript:smaps_estou_aqui()',smaps_new_text_node("Estou aqui")));var btn_group=smaps_new_node('div','id','btn_group',btn,btn_aqui);smaps_write_node(div,smaps_new_node("div","id","div_loc_search","style","position:absolute; top:5px; left:45px; width:"+(cols-50)+"px;z-index:100;",smaps_new_node("span","class","gs_boxPesquisa",smaps_new_node("form","name","SearchForm","id","SearchForm","action","","onsubmit","smaps_pesquisa_geral();return false;",smaps_new_node("input","type","text","name","q","id","caixap","class","gs_inputtext"))),btn,btn_aqui));var navi=smaps_new_node("div","id","results-paginacao");smaps_set_node_html(navi,'<a id = "pg_ant" href="#" onclick="showMatches(\'ant\');" style = "visibility:hidden">&#0171; ant.&nbsp;</a>&nbsp;&nbsp;'+'<a id = "pg1" href="#" onclick="showMatches(1);" class = "selected" style = "visibility:hidden">1</a>&nbsp;&nbsp;'+'<a id = "pg2" href="#" onclick="showMatches(2);" style = "visibility:hidden">2</a>&nbsp;&nbsp;'+'<a id = "pg3" href="#" onclick="showMatches(3);" style = "visibility:hidden">3</a>&nbsp;&nbsp;'+'<a id = "pg4" href="#" onclick="showMatches(4);" style = "visibility:hidden">4</a>&nbsp;&nbsp;'+'<a id = "pg_seg" href="#" onclick="showMatches(\'seg\');" style = "visibility:hidden">&nbsp;seg.&#0187;</a>');smaps_write_node(div,smaps_new_node("div","id","results","class","gs_res_frame","style","background-color:white;visibility:hidden;position:absolute;top:5px;left:45px;width:"+(cols-90)+"px;height:300px;z-index:100;overflow:auto",smaps_new_node("div","id","matches"),navi,smaps_new_node('div',"style","position:absolute;top:5px;left:"+(cols-120)+"px;width:15px;height:15px;z-index:110",smaps_new_node('a','href',"javascript:smaps_hide_results( true)",smaps_new_node('img',"src",g_css_server+"/Assets/Maps/Images/fechar.gif","width",13,"height",13,"title","Fechar")))));}
if(g_stages&&s$("div_debug")===null){smaps_write_node(div,smaps_new_node("div","id","div_debug","style","visibility:hidden;position:absolute;top:0px;left:0px;width:"+cols+"px;height:"+(lines-50)+"px;z-index:1000;overflow:auto;background-color:white;text-align:left"));}
register_zoom_drag(s$("zoom_drag_img"));smaps_set_map_cursor();}
function smaps_close_minimap(e){s$("minimap").style.display="none";s$("minimap_closed").style.display="block";smaps_nop(e);return true;}
function smaps_open_minimap(){s$("minimap").style.display="block";s$("minimap_closed").style.display="none";smaps_update_minimap();}
var smaps_overview_bounds=null;function smaps_update_minimap(){if(s$("minimap").style.display!="block")return;var lat=smaps_geomap.getLatitude();var lon=smaps_geomap.getLongitude();var factor;if(g_GSMap1.get_zoom()==12){factor=3.0;}else{factor=2.0;}
var bounds=smaps_geomap.getBoundsLatLng_centered(factor);var dLat=0.5*100/125*(bounds.maxX-bounds.minX);var lat0=lat-dLat;var lat1=lat+dLat;var map_url="http://services.sapo.pt/Maps/GetMap?version=1.1.1&service=WMS&layers=concelhos&request=GetMap&width=125&height=100&transparent=true&bbox="+bounds.minX+","+lat0+","+bounds.maxX+","+lat1;smaps_dbg(map_url);s$('minimap_overview').style.background="url("+map_url+")";smaps_overview_bounds=new GBounds(bounds.minX,lat0,bounds.maxX,lat1);var boundsMap=smaps_geomap.getBoundsLatLng_centered(1.0);var ratiow=0.8*(boundsMap.maxX-boundsMap.minX)/(bounds.maxX-bounds.minX);var ratioh=1.1*(boundsMap.maxY-boundsMap.minY)/(lat1-lat0);var dx=parseInt(ratiow*125);var dy=parseInt(ratioh*100);s$("minimap_feedback").style.width=dx+"px";s$("minimap_feedback").style.height=dy+"px";s$("minimap_feedback").style.top=parseInt(0.5*(100-dy))+"px";s$("minimap_feedback").style.left=parseInt(0.5*(125-dx))+"px";}
function smaps_click_overview(e){if(s$("minimap").style.display!="block")return;if(!e)e=window.event;var xy=new Mouse2point_xy(e,"minimap_overview");smaps_dbg("overview:");smaps_dbg(xy.x);smaps_dbg(xy.y);var bounds=smaps_overview_bounds;var dLon=(bounds.maxX-bounds.minX);var dLat=(bounds.maxY-bounds.minY);var lon=bounds.minX+((xy.x-1)/125)*dLon;var lat=bounds.maxY-((xy.y-1)/100)*dLat;var zoom=g_GSMap1.get_zoom();smaps_geomap.centerAndZoom(lat,lon,17-zoom);}
var loading=false;function mapa_loaded(){if(s$("div_relogio").style.visibility!="visible"){s$("div_clip").style.visibility="visible";s$("div_zoom").style.visibility="visible";smaps_escala();smaps_register_move();}}
function smaps_callout(ind,prevent_bubble){if(typeof(g_a_pontos[ind].obj)!="undefined"){if(g_a_pontos[ind].obj.click_fn!==null){g_a_pontos[ind].obj.click_fn(g_a_pontos[ind].obj);return;}}
smaps_close_markers();if(!g_a_pontos[ind])return;if(!prevent_bubble&&g_a_pontos[ind].navigate_dy!==0||g_a_pontos[ind].navigate_dx!==0){smaps_drag(g_a_pontos[ind].navigate_dx/global_xform_params.cols,g_a_pontos[ind].navigate_dy/global_xform_params.lines);setTimeout("smaps_callout( "+ind+",true)",300);}else{try{if(s$("callout"+ind).style.visibility=="visible"){smaps_esconde(ind);return;}}catch(e){return;}
try{if(g_last_open_pin!==null&&g_last_open_pin!==ind){smaps_esconde(g_last_open_pin);}}catch(e){}
g_last_open_pin=ind;g_a_pontos[ind].obj.options.opened=true;s$("callout"+ind).style.zIndex=g_z_index_pt_opened;s$("callout"+ind).style.visibility="visible";}}
function smaps_esconde(ind){try{s$("callout"+ind).style.visibility="hidden";s$("callout"+ind).style.zIndex=g_z_index_pt_closed;var pt_a=g_a_pontos[ind];if(typeof(pt_a.obj)!="undefined"&&pt_a.obj.options&&pt_a.obj.options.opened){pt_a.obj.options.opened=false;}}catch(e){}}
function esconde_cam(){s$('caminho_frame').style.visibility='hidden';}
function smaps_escala(){var v=Math.round(global_xform_params.largura*g_smaps_escala_pix/global_xform_params.cols);var u=" m";if(v>=10000){v=Math.round(v/1000);u=" Km";}else if(v>=50){v=Math.round(v/10)*10;}
s$('div_escala_1').innerHTML=v+u;s$('div_escala').style.visibility="visible";}
function smaps_desenha(){if(loading||g_itenerario===null||!g_itenerario.segs){return;}
limpa_iten(false);var div_des_cam=s$("div_des_cam");if(g_ie)
s$("div_des_cam").style.display="block";div_des_cam.style.visibility="visible";div_des_cam.innerHTML="";div_des_cam.style.top="0px";div_des_cam.style.left="0px";var p1,p2;var i=1;var ruas=g_itenerario.segs;var x,y;var count=0;var z=17-g_GSMap1.gmap.getZoom();var len_discard=GS_wms_tiles.get_resolution(z)*20;var count_rua=0;var last_x,last_y;var polyline=[];for(i=0;i<ruas.length;i++){var rua=ruas[i];var step=1;if(rua.m<len_discard){step=rua.lines.length-1;}
if(!rua.extents.intersects(global_xform_params.x0,global_xform_params.y0,global_xform_params.x1,global_xform_params.y1)){continue;}
count_rua++;for(var j=0;j<rua.lines.length;j+=step){if(!rua.lines[j]){continue;}
x=rua.lines[j].x;y=rua.lines[j].y;p1=new Xform_point(x,y,global_xform_params);x=Math.round(p1.x+global_xform_params.pan_cols);y=Math.round(p1.y+global_xform_params.pan_lines);if(x!=last_x||y!=last_y){polyline[count]=x;polyline[count+1]=y;count+=2;}
last_x=x;last_y=y;}}
var points_str="";var width=10-2*z;if(width<3){width=3;}
var opacity=0.4;var polyline_color="#0000ff";if(g_ie){opacity=1.0;for(i=0;i<polyline.length;i+=2){points_str=points_str+polyline[i]+" "+polyline[i+1]+" ";}
div_des_cam.innerHTML=('<v:polyline points="'+points_str+'" strokecolor="'+polyline_color+'" strokeweight="'+width+'pt"><v:stroke opacity="'+opacity+'"/><v:fill on="false"/></v:polyline>');if(width>3){width=width-2;}else{width=2;}}else if(g_ffox){for(i=0;i<polyline.length;i+=2){points_str=points_str+polyline[i]+","+polyline[i+1]+" ";}
div_des_cam.style.visibility="visible";div_des_cam.innerHTML='<svg xmlns="http://www.w3.org/2000/svg"><polyline points="'+points_str+'" style="fill:none;stroke:'+polyline_color+';stroke-width:'+width+';stroke-opacity:'+opacity+'"/></svg>';setTimeout(svg_power_on_nodes,500);s$("div_des_cam").style.display="block";}
if(!g_ffox&&!smaps_print_version){s$("div_des_cam").style.opacity=opacity;if(g_ie)s$("div_des_cam").style.filter="alpha(opacity=40)";var jg=new jsGraphics(div_des_cam);if(!g_ie){jg.setPrintable(true);}
jg.setStroke(width+1);jg.setColor("blue");for(i=0;i<polyline.length-3;i+=2){jg.drawLine(polyline[i],polyline[i+1],polyline[i+2],polyline[i+3]);}
jg.paint();s$("div_des_cam").style.display="block";}}
function smaps_janela_mensagem(texto){s$('caminho_frame').style.visibility='visible';var linhas=s$('linhas');if(linhas!==null){s$('caminho').removeChild(linhas);}
s$('caminho').innerHTML=texto;s$('caminho').style.top=0;}
function smaps_iten_query(){try{tab_iten();}catch(e){}
if(!g_map_ready){setTimeout(smaps_iten_query,1000);}else{smaps_iten_query_cont();}}
function smaps_iten_query_cont(){try{var query=g_qparams.query;g_qparams.tipo_query=1;query=query.substring(2,query.length);var args=query.split(";");var pt1=args[1];var pt2=args[2];var modo=args[0];var do_print=args[3];var args1=pt1.split(",");var args2=pt2.split(",");var lat1=args1[0];var lon1=args1[1];var txt1=unescape(args1[2]);var lat2=args2[0];var lon2=args2[1];var txt2=unescape(args2[2]);var img=g_css_server+"/Assets/Maps/Images/bandeira_verde.gif";var mk1=gs_createMarker(txt1,"",new GPoint(lon1,lat1),img,img,23,28,12,30);mk1.options.selected=true;g_GSMap1.gmap.addOverlay(mk1);img=g_css_server+"/Assets/Maps/Images/bandeira_vermelha.gif";var mk2=gs_createMarker(txt2,"",new GPoint(lon2,lat2),img,img,23,28,12,30);mk2.options.selected=true;g_GSMap1.gmap.addOverlay(mk2);g_qparams.partida=mk1;g_qparams.chegada=mk2;g_qparams.print_version=(typeof(do_print)!=="undefined"&&do_print==="p");smaps_itenerario(modo,do_print);}catch(e){}}
function smaps_itenerario(mode_query){var mode="rapido";if(typeof(mode_query)!=="undefined"){mode=mode_query;}else{for(var i=0;i<=2;i++){if(s$("SearchForm_iten").tipocam[i].checked){mode=s$("SearchForm_iten").tipocam[i].value;}}}
g_qparams.modo=mode;g_smaps_serial=get_sec1970();var route_link=g_gs_route_server+"?js=yes&mode="+mode+"&pts=";route_link=route_link+g_qparams.partida.point.x+","+g_qparams.partida.point.y;route_link=route_link+","+g_qparams.chegada.point.x+","+g_qparams.chegada.point.y;smaps_dbg(route_link);g_qparams.cancel=false;_percurso_timeout=setTimeout(erro_percurso,20000);smaps_js_request(route_link,"script1");if(g_map_ready){smaps_dim_markers(true);}
try{s$('gs_pub').style.display="none";}catch(e){}
s$("group1_tab2").style.display="block";s$('iten_results').style.display='none';s$("percurso").style.display="block";s$('percurso').innerHTML="<center><img src='"+g_css_server+"/Assets/Maps/Images/bigwheel_1.gif'></center>";}
function erro_percurso(){percurso_callback({error_code:-4});}
_percurso_timeout=null;function percurso_callback(route_obj){if(_percurso_timeout!=null){clearTimeout(_percurso_timeout);_percurso_timeout=null;}else{return;}
s$('iten_results').style.display='none';s$("percurso").style.display="block";s$("group1_tab2").style.display="block";if(g_qparams.cancel){s$('percurso').style.display='none';return;}
s$('iten_voltar').style.display="block";s$("iten_resumo").style.display="block";s$(g_qparams.div_results).style.display="none";var txt="";if(route_obj&&route_obj.error_code){s$('percurso').innerHTML="";s$('percurso').style.display='none';percurso_note("iten_erro",smaps_msgs(route_obj.error_code));return;}
if(!route_obj||!route_obj.segs||!route_obj.total){s$('percurso').innerHTML="";s$('percurso').style.display='none';percurso_note("iten_erro","O serviço n&atilde;o est&aacute; disponível neste momento.");return;}
percurso_note("iten_erro");s$('a_itenzoom').style.visibility="hidden";var modo=g_qparams.modo;modo=(modo=="rapido")?"Mais r&aacute;pido de carro":((modo=="curto")?"Mais curto de carro":"Mais curto a p&eacute;");percurso_note_modo(modo);txt=txt+'<div id="percurso_table" style="height:100%"><table cellspacing="0" cellpadding="0">'+header_percurso();var ruas=route_obj.segs;var i;var i0=route_obj.inverted?(ruas.length-1):0;var i_plus=route_obj.inverted?-1:+1;var i1=route_obj.inverted?-1:ruas.length;var extents=null;for(i=i0;i!=i1;i+=i_plus){var rua=ruas[i];centroid_rua_percurso(rua,route_obj.inverted);if(extents===null){extents=new GBounds(rua.extents.minX,rua.extents.minY,rua.extents.maxX,rua.extents.maxY);}else{extents.add(rua.extents);}
if(rua.st===""&&rua.dir===0){continue;}
var len_plus=0;for(var j=i+i_plus;j!=i1;j+=i_plus){if(j<0||j>ruas.length-1){break;}
if(ruas[j].st===""&&ruas[j].dir===0){len_plus+=ruas[j].m;}
else{break;}}
txt=txt+trata_rua_percurso(i,ruas[i],route_obj.inverted,len_plus);}
txt=txt+footer_percurso(i)+'</table>';percurso_msg(txt);var dist=route_obj.total.m;var m=dist;var unit="m";if(route_obj.total.m>=1000){unit="Km";dist=Math.floor(dist/100)/10;}
var t=route_obj.total.s;var t0=Math.floor(t/3600);var min=Math.floor((t-t0*3600)/60);if(t0>0&&min<10){min="0"+min;}
percurso_note("iten_sum",dist+" "+unit+" em "+((t0>0)?(t0+"h"):"")+min+" min");g_itenerario=route_obj;smaps_desenha();var x0=extents.minX;var y0=extents.minY;var x1=extents.maxX;var y1=extents.maxY;var y=(y0+y1)/2;var x=(x0+x1)/2;var dx=Math.abs(x0-x1);var dy=Math.abs(y0-y1);var len=(dx>dy)?dx:dy;len=len*2.0;var z=GS_wms_tiles.get_zoom_res(len/g_GSMap1.cols);smaps_dbg("z:"+z);var conv=new conv_xy_mercator_sphere_lat_lon(x,y);g_iten_view=new Smaps_View(conv.lat,conv.lon,z);g_GSMap1.set_lat_lon_zoom(conv.lat,conv.lon,z);setTimeout(smaps_iten_zoomed,2000);try{s$('group1_tab2').style.display="block";s$("guardar_mapa").style.display="none";s$("guardar_iten").style.display="block";}catch(e){}
g_qparams.query="";smaps_stats("itinerario","percurso",g_qparams.partida.options.title+" "+g_qparams.chegada.options.title);}
function smaps_print_copy(){if(g_itenerario&&document.getElementById('percurso_table')===null){setTimeout(smaps_print_copy,1000);return;}
var url="index_print.php?itin="+(g_itenerario?"1":"0");window.open(url,"maps_print","menubar=no,width=750,height=950");}
function smaps_iten_zoomed(){g_qparams.iten_zoomed=g_GSMap1.toQueryValue();}
function iten_navigate_to(lat,lon,zoom){navigate_to_async(lat,lon,zoom);}
function scroll_into_map(){try{s$("mapAPI").scrollIntoView();}catch(e){}}
function iten_zoom(){if(g_iten_view!==null){g_GSMap1.set_lat_lon_zoom(g_iten_view.lat,g_iten_view.lon,g_iten_view.zoom);s$('a_itenzoom').style.visibility="hidden";}else{smaps_refresh();}}
function smaps_msgs(msg_code){switch(msg_code){case 0:case-1:case-2:case-4:return"N&atilde;o foi poss&iacute;vel calcular um percurso entre os pontos indicados.";case-3:return"N&atilde;o foi encontrado um percurso completo entre os pontos indicados";case 1:return"A partida ou a chegada est&atilde;o numa &aacute;rea com restri&ccedil;&otilde;es de circula&ccedil;&atilde;o autom&oacute;vel";default:return"";}}
function smaps_iten_voltar(){g_qparams.cancel=true;s$('iten_voltar').style.display="none";s$('iten_results').style.display="none";s$('iten_resumo').style.display="none";s$('iten_modo').style.display="none";s$('percurso').style.display="none";s$('gs_pub').className="screen";s$('esquerda').className="screen";s$('direita').className="screen";activa_banner();smaps_stats("Itinerario","voltar","");s$('percurso_print').style.display="none";s$('caixa_partida').focus();if(g_map_ready){smaps_dim_markers();}
iten_zoom();s$('esquerda').style.display="block";}
function limpa_percurso(){smaps_dim_markers();limpa_iten(true);setTimeout(smaps_refresh,1000);try{s$("guardar_mapa").style.display="block";s$("guardar_iten").style.display="none";}catch(e){}}
function limpa_percurso_anterior(){smaps_dim_markers();limpa_iten(true);}
function limpa_iten(format){if(format){g_itenerario=null;}
try{var div_des_cam=s$("div_des_cam");var children=div_des_cam.childNodes;for(var i=0;i<children.length;i++){div_des_cam.removeChild(children[i]);}
s$("div_des_cam").style.display="none";s$("div_des_cam").style.visibility="hidden";}catch(e){}}
function header_percurso(){var img=g_css_server+"/Assets/Maps/Images/bandeira_verde.gif";var pt=g_qparams.partida.point;var z=2;var stripe='stripe';var title=g_qparams.partida.html?SAPO.Utility.String.stripTags(g_qparams.partida.html):"";var st=g_qparams.partida.options.title+" "+((typeof(desc)!=="undefined")?desc:"");var a_href='<a title="'+title+'" href="javascript:iten_navigate_to('+pt.y+', '+pt.x+', '+z+')">';if(typeof(g_qparams.partida_ascii)!="undefined")
s$("caixa_partida").value=g_qparams.partida_ascii;return'<tr class="separator itinbegin '+stripe+'"><td class="td img">'+a_href+'<img src="'+img+'" alt="partida"/></a></td>'+'<td class="td dir">'+a_href+st+'</a><br/></td><td class="td km"></td></tr>';}
function footer_percurso(i){var img=g_css_server+"/Assets/Maps/Images/bandeira_vermelha.gif";var pt=g_qparams.chegada.point;var z=2;var stripe='';if((i%2)==1){stripe='stripe';}
var title=g_qparams.chegada.html?SAPO.Utility.String.stripTags(g_qparams.chegada.html):"";var st=g_qparams.chegada.options.title+" "+((typeof(desc)!=="undefined")?desc:"");var a_href='<a title="'+title+'" href="javascript:iten_navigate_to('+pt.y+', '+pt.x+', '+z+')">';if(typeof(g_qparams.chegada_ascii)!="undefined")
s$("caixa_chegada").value=g_qparams.chegada_ascii;return'<tr class="separator itinend '+stripe+'"><td class="td img">'+a_href+'<img src="'+img+'" alt="chegada"/></a></td>'+'<td class="td dir">'+a_href+st+'</a><br/></td><td class="td km"></td></tr>';}
function trata_rua_percurso(i,rua,inverted,len_plus){if(!rua||!rua.lines||!rua.lines[0]||!rua.m){return"";}
var pt=new GLatLng(0,0);pt.x=rua.lon;pt.y=rua.lat;var len=parseFloat(rua.m)+len_plus;var z=(len>500)?3:1;var unit="m";var dist=len/1000;if(len>1000){len=Math.floor(len/100)/10;unit="Km";}
var img="frente.gif";if(rua.dir>0){img="esquerda.gif";}
else if(rua.dir<0){img="direita.gif";}
var stripe='';if((i%2)==1){stripe='stripe';}
var str_dir=((rua.dir===0)?"Continue":((rua.dir>0)?"Vire &agrave; esquerda":"Vire &agrave; direita"));var st=str_dir+(rua.st?(" para "+rua.st):"");var a_href='<a href="#" onclick="iten_navigate_to('+pt.y+', '+pt.x+', '+z+')">';return'<tr class="separator '+stripe+'"><td class="td img">'+a_href+'<img src="'+g_css_server+'/Assets/Maps/Images/'+img+'" alt="'+str_dir+'"/></a></td>'+'<td class="td dir">'+a_href+st+'</a><br/></td><td class="td km">'+len+'<br />'+unit+'</td></tr>';}
function percurso_msg(msg){s$('percurso').innerHTML=msg;}
function percurso_note_modo(msg){s$("SearchForm_iten_radios").tipocam2[0].checked=(g_qparams.modo=="rapido");s$("SearchForm_iten_radios").tipocam2[1].checked=(g_qparams.modo=="curto");s$("SearchForm_iten_radios").tipocam2[2].checked=(g_qparams.modo=="apeado");s$("SearchForm_iten").tipocam[0].checked=(g_qparams.modo=="rapido");s$("SearchForm_iten").tipocam[1].checked=(g_qparams.modo=="curto");s$("SearchForm_iten").tipocam[2].checked=(g_qparams.modo=="apeado");s$("iten_modo").style.display="block";}
function percurso_note(id,msg){if(typeof(msg)!=="undefined"){s$(id+"_txt").innerHTML=msg;s$(id).style.display="block";s$(id+"_txt").style.display="block";}else{s$(id).style.display="none";s$(id+"_txt").style.display="none";}}
function percurso_msg_old(msg){smaps_dbg(msg);s$('caminho').innerHTML=msg;s$('caminho').style.top=0;}
function centroid_rua_percurso(rua,inverted){if(typeof(rua.lat)=="undefined"||typeof(rua.lon)=="undefined"){var x,y;if(!inverted){x=rua.lines[0].x;y=rua.lines[0].y;}else{x=rua.lines[rua.lines.length-1].x;y=rua.lines[rua.lines.length-1].y;}
var conv=new conv_xy_mercator_sphere_lat_lon(x,y);rua.lat=conv.lat;rua.lon=conv.lon;var x0=rua.lines[0].x;var x1=rua.lines[rua.lines.length-1].x;var y0=rua.lines[0].y;var y1=rua.lines[rua.lines.length-1].y;var minx=(x0<x1)?x0:x1;var maxx=(x0>x1)?x0:x1;var miny=(y0<y1)?y0:y1;var maxy=(y0>y1)?y0:y1;rua.extents=new GBounds(minx,miny,maxx,maxy);}}
function smaps_sel_ponto(ind){var pt_a=g_a_pontos[ind];if(!pt_a.obj){return;}
pt_a.obj.options.selected=!pt_a.obj.options.selected;if(pt_a.obj.options.selected){img_sel=smaps_const.img_deselecionar;texto_sel=g_texto_deselecionar_ponto;}else{img_sel=smaps_const.img_selecionar;texto_sel=g_texto_selecionar_ponto;}
var img=s$("imgsel"+ind);if(img===null){return;}
img.src=img_sel;img.title=texto_sel;smaps_refresh();}
function apagar_ponto(ind){try{var pt_a=g_a_pontos[ind];if(!pt_a.obj){return;}
smaps_remove_marker(pt_a.obj);}catch(e){}}
function smaps_remove_marker(marker){try{marker.options.visible=!marker.options.visible;if(marker.options.guid){g_a_pontos_hash_map[marker.options.guid]=false;}
smaps_map_pontos();}catch(e){}}
var scroolling=false;var scroll_layer=null;var timerScroll=null;function smaps_scroll(spd){if(!scroolling){return;}
var direction=null;var layer=s$(scroll_layer);var page=layer.style;var y_pos=parseInt(page.top,10);var speed=spd;if(speed<0){direction="up";speed=-speed;}else{direction="dn";}
var new_top;if(direction=="dn"){new_top=(y_pos-(speed));}else if(direction=="up"&&y_pos<speed){new_top=(y_pos+(speed));}else{return;}
page.top=new_top+"px";timerScroll=setTimeout("smaps_scroll("+spd+")",100);}
function stopScroll(){scroolling=false;clearTimeout(timerScroll);}
function startScroll(layer,spd){scroolling=true;scroll_layer=layer;smaps_scroll(spd);}
var last_top=0;var last_left=0;var smaps_moved=false;var smaps_moving=false;var zooming=false;var g_last_drag_x=0;var g_last_drag_y=0;function smaps_drag(xx,yy,e){if(loading){return;}
var px=xx*global_xform_params.cols;var py=yy*global_xform_params.lines;px=Math.round(px);py=Math.round(py);g_last_drag_x=-px;g_last_drag_y=py;if(-1<px&&px<1&&-1<py&&py<1){loading=false;return;}
smaps_moved=false;var layer=s$("div_clip");var page=layer.style;if(!smaps_moved){last_top=parseInt(page.top,10);last_left=parseInt(page.left,10);page.top=(last_top+py)+"px";page.left=(last_left-px)+"px";}
var largura;var zoom;GS_wms_tiles.get_map_tiles(global_xform_params.lat,global_xform_params.lon,GS_wms_tiles.current_zoom,global_xform_params.img2_cols,global_xform_params.img2_lines,undefined,px,py);}
function smaps_wait(){smaps_dbg("wait");s$('img_wheel').style.visibility="visible";unregister_move();}
function smaps_reset_drag(){var layer=s$("div_clip");var page;try{page=layer.style;page.top="0px";page.left="0px";var div_pontos=s$("div_pontos_child");div_pontos.style.top=g_last_drag_y+"px";div_pontos.style.left=g_last_drag_x+"px";var div_des_cam=s$("div_des_cam");div_des_cam.style.top=g_last_drag_y+"px";div_des_cam.style.left=g_last_drag_x+"px";g_last_drag_x=0;g_last_drag_y=0;}catch(e){}}
function mapa_replaced(){smaps_dbg("replaced");if(loading===false){return;}
if(g_itenerario!==null){s$("div_des_cam").style.visibility="visible";}
s$("div_zoom").style.visibility="visible";loading=false;smaps_moved=false;smaps_moving=false;zooming=false;smaps_escala();smaps_register_move();window.status="";smaps_map_pontos();zoom_tiles_callback(GS_wms_tiles.current_zoom);s$('img_wheel').style.visibility="hidden";if(g_GSMap1.gmap._callback){g_GSMap1.gmap._callback();}}
function smaps_zoomin(){if(loading){return;}
var zoom=GS_wms_tiles.get_zoom_res(global_xform_params.largura/global_xform_params.cols)-1;if(!GS_wms_tiles.location.has_zoom(zoom)){return;}
zoom_tiles_async(zoom);smaps_stats("mapa","zoomIn",zoom);}
function smaps_zoomout(){if(loading){return;}
var zoom=GS_wms_tiles.get_zoom_res(global_xform_params.largura/global_xform_params.cols)+1;if(!GS_wms_tiles.location.has_zoom(zoom)){return;}
zoom_tiles_async(zoom);smaps_stats("mapa","zoomIn",zoom);}
function show_zoom(tiles_zoom){for(i=g_min_zoom;i<=g_max_zoom;i++){s$("div_z"+i).className="zoom_norm_ie";}
s$("div_z"+tiles_zoom).className="zoom_sel_ie";}
function hide_zoom_titles(){for(i=g_min_zoom;i<=g_max_zoom;i++){s$("div_t"+i).style.visibility='hidden';}}
var g_last_zoom=-1;function zoom_tiles_async(zoom){if(zooming||loading){return;}
try{if(!GS_wms_tiles.location.has_zoom(zoom)){return;}
var lat1=global_xform_params.lat;var lon1=global_xform_params.lon;zooming=true;GS_wms_tiles.get_map_tiles(lat1,lon1,zoom,global_xform_params.img2_cols,global_xform_params.img2_lines,undefined);}catch(e){}}
function smaps_refresh(){if(g_GSMap1.is_rendered()){zoom_tiles_async(GS_wms_tiles.current_zoom);}}
function navigate_to_async(lat1,lon1,zoom){if(!g_map_ready||zooming||loading){return;}
zooming=true;GS_wms_tiles.get_map_tiles(lat1,lon1,zoom,global_xform_params.img2_cols,global_xform_params.img2_lines,undefined);}
function zoom_tiles_callback(zoom){show_zoom(zoom);g_last_zoom=zoom;}
var move_last_x,move_last_y;function smaps_move(e){if(!smaps_moving){return;}
if(!e){e=window.event;}
var layer=s$("div_clip");var page=layer.style;var left=parseInt(page.left,10);var top=parseInt(page.top,10);var x=e.clientX;var y=e.clientY;if(!smaps_moved){last_top=top;last_left=left;}
var dx=x-move_last_x;var dy=y-move_last_y;var fixed_move_dx=global_xform_params.cols;var fixed_move_dy=global_xform_params.lines;if(dx!==0){page.left=(left+dx)+"px";}
if(dy!==0){page.top=(top+dy)+"px";}
move_last_x=x;move_last_y=y;if(dx!==0||dy!==0){smaps_moved=true;}}
function smaps_disable_rbutton(e){try{if(!e){e=window.event;}
if(e.which&&e.which!=1){return false;}
if(e.button&&e.button!=1){if(g_ie){e.cancelBubble=true;}
return false;}}catch(x){return true;}
return true;}
function smaps_move_start(e){if(smaps_add_marker_mode){smaps_click_ponto(e);clearTimeout(_smaps_click_ponto_timeout);smaps_add_marker_mode=false;return true;}
if(loading){return true;}
if(!e){e=window.event;}
if(!smaps_disable_rbutton(e)){return false;}
smaps_dbg("move_start");move_last_x=e.clientX;move_last_y=e.clientY;smaps_moving=true;smaps_moved=false;return true;}
function smaps_move_end(e){if(!smaps_moving||!smaps_moved){smaps_moving=false;return true;}
smaps_moving=false;var layer=s$("div_clip");var page=layer.style;var left=parseInt(page.left,10);var top=parseInt(page.top,10);var fixed_move_dx=global_xform_params.cols;var fixed_move_dy=global_xform_params.lines;smaps_drag(-(left-last_left)/fixed_move_dx,(top-last_top)/fixed_move_dy,e);}
function smaps_mouse2point(e,dx,dy){if(!g_GSMap1){return null;}
var xy=new Mouse2point_xy(e,"gsmap");xy.x+=dx;xy.y+=dy;var xform=new Xform_point_inv((xy.x),(xy.y),global_xform_params);var conv=new conv_xy_mercator_sphere_lat_lon(xform.x,xform.y);return new GPoint(conv.lon,conv.lat);}
var _last_location_index=null;var _smaps_click_ponto_timeout=null;function smaps_estou_aqui(){smaps_add_marker_mode=true;var cur=g_ie?"url("+g_css_server+"/Assets/Maps/Images/pin.cur)":'url('+g_css_server+'/Assets/Maps/Images/pin.cur), auto';if(!smaps_widget){s$("wraper_mapas").style.cursor=cur;}
s$("div_no_clip").style.cursor=cur;_smaps_click_ponto_timeout=setTimeout(cancel_estou_aqui,10000);window.document.onkeyup=function(e){var e=window.event||e;if(e.keyCode==27){cancel_estou_aqui();}}}
function cancel_estou_aqui(){smaps_add_marker_mode=false;if(!smaps_widget){s$("wraper_mapas").style.cursor="default";}
s$("div_no_clip").style.cursor="default";}
function smaps_click_ponto(e){if(!e){e=window.event;}
if(!g_ie&&e.target.id!="div_pontos_child"){return false;}
s$("div_no_clip").style.cursor="pointer";var p=smaps_mouse2point(e,0,0);if(p===null){return false;}
return marca_ponto(p.y,p.x);}
function estou_aqui_task(){if(g_disable_locator_callback){return false;}
g_disable_locator_callback=false;return marca_ponto(global_xform_params.lat,global_xform_params.lon);}
var _smaps_pin_tit_del=true;var _smaps_pin_desc_del=true;function marca_ponto(lat,lon){var point=new GPoint(lon,lat);var txt="",desc="";var editable=true;if(!smaps_locator_marker){txt="T&iacute;tulo:<br/><form onsubmit='return false;'><input type='text' style='width:170px' maxlength='80' id='pin_tit' onclick='smaps_apaga_tit()'/>";if(smaps_locator_marker_link){desc="Descri&ccedil;&atilde;o:<br/><textarea rows='1' id='pin_desc' maxlength='80' style='width:175px' onclick='smaps_apaga_desc()' wrap='physical' onKeyDown='smaps_textCounter(this,null,150)' onKeyUp='smaps_textCounter(this,null,150)'></textarea>";desc=desc+"<br clear='all'/><span id='pin_link'>Link:</span><a id='pin_ok' href='javascript:create_marker_link("+lat+","+lon+")'><img src='"+g_css_server+"/Assets/Maps/Images/caixa_ok.gif'/></a>"+"<br clear='all'/><input type='text' id='div_copy' readonly='readonly'/>"+"<div id='pin_copy'><a href='javascript:copy_marker_clipboard("+lat+","+lon+")'>Copiar link</a></div><div id='pin_fim'><a href='javascript:terminar_pin("+lat+","+lon+")'>Fim</a></div></form>";}else{desc="Descri&ccedil;&atilde;o:<br/><textarea rows='4' id='pin_desc' maxlength='120' style='width:170px' onclick='smaps_apaga_desc()' wrap='physical' onKeyDown='smaps_textCounter(this,null,150)' onKeyUp='smaps_textCounter(this,null,150)'></textarea>";desc=desc+"<br/><a href='javascript:terminar_pin("+lat+","+lon+")'><img id='marcador_ok' align='right' src='"+g_css_server+"/Assets/Maps/Images/bot_ok.gif'/></a></form>";}}else{txt=smaps_locator_marker.title;desc=smaps_locator_marker.description;editable=false;}
_smaps_pin_tit_del=true;_smaps_pin_desc_del=true;if(g_locator_widget&&_last_location_index!==null){apagar_ponto(_last_location_index);}
_last_location_index=g_num_pontos;var marker=gs_createMarker(txt,desc,point,smaps_const.img_marca,smaps_const.img_marca_sel,g_img_marca_w,g_img_marca_h,g_img_marca_dx,g_img_marca_dy);marker.options.selected=true;marker.options.editable=editable;g_GSMap1.gmap.addOverlay(marker);setTimeout(smaps_open_pin,500);smaps_refresh();if(typeof(g_locator_callback)=="function"){g_locator_callback(lat,lon);}
if(!smaps_widget){s$("wraper_mapas").style.cursor="default";}
smaps_set_map_cursor();return false;}
function smaps_textCounter(field,cntfield,maxlimit){if(field.value.length>maxlimit){field.value=field.value.substring(0,maxlimit);}else if(cntfield!==null){cntfield.value=maxlimit-field.value.length;}}
function smaps_open_pin(){smaps_callout(_last_location_index);}
function smaps_apaga_tit(){if(!_smaps_pin_tit_del){return;}
s$('pin_tit').value="";_smaps_pin_tit_del=false;}
function smaps_apaga_desc(){if(!_smaps_pin_desc_del){return;}
s$('pin_desc').value="";_smaps_pin_desc_del=false;}
function create_marker_link(lat,lon){var txt=s$('pin_tit').value;var desc=s$('pin_desc').value;var div=s$("div_copy");div.style.visibility="visible";var z=(17-GS_wms_tiles.current_zoom);if(txt.length===0&&desc.length===0){div.value=g_gs_server+g_smaps_page+"?q="+lat+","+lon+","+z;}else{div.value=g_gs_server+g_smaps_page+"?W="+lat+","+lon+","+z+","+escape(escape(txt))+","+escape(escape(desc));}}
function copy_marker_clipboard(lat,lon){var div=s$("div_copy");create_marker_link(lat,lon);smaps_copy(div);}
function terminar_pin(lat,lon){var point=new GPoint(lon,lat);var txt=s$('pin_tit').value;var desc=s$('pin_desc').value;var marker=gs_createMarker(txt,desc,point,smaps_const.img_marca,smaps_const.img_marca_sel,g_img_marca_w,g_img_marca_h,g_img_marca_dx,g_img_marca_dy);marker.options.selected=true;marker.options.opened=true;g_GSMap1.gmap.addOverlay(marker);apagar_ponto(_last_location_index);_last_location_index=null;}
function center_map(e){g_disable_locator_callback=true;if(!e){e=window.event;}
var p=smaps_mouse2point(e,0,0);if(p===null){return;}
var z=g_GSMap1.get_zoom();if(z>0){z--;}
g_GSMap1.set_lat_lon_zoom(p.y,p.x,z);smaps_stats("mapa","doubleclick","");}
function smaps_register_move(){var div=s$("div_clip");smaps_moving=false;smaps_moved=false;if(g_ie){div.ondragstart=function(){return false;};div.onmousedown=smaps_move_start;div.onmousemove=smaps_move;div.onmouseup=smaps_move_end;div.onmouseout=smaps_move_end;}else{div.onmousedown=smaps_move_start;div.onmousemove=smaps_move;div.onmouseup=smaps_move_end;div.onmouseout=smaps_move_end;oncontextmenu=function(){return false;};}}
function unregister_move(){try{var div=s$("div_clip");if(g_ie){div.onmousemove=null;div.onmousedown=null;div.onmouseup=null;div.onmouseout=null;}else{div.onmousemove=null;div.onmousedown=smaps_disable_rbutton;div.onmouseup=null;div.onmouseout=null;}}catch(e){}}
var skip_tags="input,textarea";function select_if_form(e){if(!e){e=window.event;}
if(skip_tags.indexOf(e.target.tagName.toLowerCase())<0){return false;}}
function smaps_disable_select(){if(g_stages){return;}
if(typeof document.onselectstart!="undefined"){document.onselectstart=function(){return false;};}else if(!g_ie){document.onmousedown=select_if_form;document.onmouseup=function(){return true;};}}
function smaps_enable_select(){if(g_ie&&typeof document.onselectstart!="undefined"){document.onselectstart=function(){return true;};}}
function WMS_tiles_client(){this.ready=false;this.zoom0_resolution=0;this.request_pixels=0;this.pixels=0;this.no_inset_zoom=0;this.old_png_extension=false;this.location=null;this.insets=[];this.num_insets=0;this.current_zoom=-1;this.current_location=null;this.current_tiles_zoom=null;this.add_location=function(loc){this.location=loc;};this.add_inset=function(inset){this.insets[this.num_insets]=inset;this.num_insets++;};this.get_resolution_aprox=function(zoom){return this.zoom0_resolution*(1<<parseInt(zoom,10));};this.get_resolution=function(zoom){return this.get_resolution_aprox(zoom);};this.get_zoom_res=function(resolution){return Math.ceil(Math.log(resolution/this.zoom0_resolution)/Math.LN2);};this.get_map_tiles=_get_map_tiles;this.lon_degrees_2_meters=function(width){return width*this.current_tiles_zoom.degree_lon;};this.lat_degrees_2_meters=function(height){return height*this.current_tiles_zoom.degree_lat;};this.meters_2_degrees_lon=function(width){return width/this.current_tiles_zoom.degree_lon;};this.meters_2_degrees_lat=function(height){return height/this.current_tiles_zoom.degree_lat;};this.intersects_insets=function(x1,y1,x2,y2){for(var i=0;i<this.num_insets;i++){if(this.insets[i].intersects(x1,y1,x2,y2)){return true;}}
return false;};}
function Wms_tiles_location(id0,bounds0,min_zoom0,max_zoom0,degree_lat0,degree_lon0){this.id=id0;this.bounds=bounds0;this.min_zoom=min_zoom0;this.max_zoom=max_zoom0;this.zooms=[];this.degree_lat=degree_lat0;this.degree_lon=degree_lon0;this.center=new GPoint((this.bounds.minX+this.bounds.maxX)/2.0,(this.bounds.minY+this.bounds.maxY)/2.0);smaps_dbg("center");smaps_dbg(this.center.x);smaps_dbg(this.center.y);this.get_existing_zoom=function(zoom){if(zoom<this.max_zoom){return this.max_zoom;}
if(zoom>this.min_zoom){return this.min_zoom;}
return zoom;};this.has_zoom=function(zoom){return(this.max_zoom<=zoom&&zoom<=this.min_zoom);};this.square_distance_to_center=function(x,y){return(this.center.x-x)*(this.center.x-x)+(this.center.y-y)*(this.center.y-y);};this.intersects=function(lat0,lon0,lat1,lon1){if(lon0<this.bounds.minX){lon0=this.bounds.minX;}
if(lon1>this.bounds.maxX){lon1=this.bounds.maxX;}
if(lon0>lon1){return false;}
if(lat0<this.bounds.minY){lat0=this.bounds.minY;}
if(lat1>this.bounds.maxY){lat1=this.bounds.maxY;}
if(lat0>lat1){return false;}
return true;};}
function Wms_tiles_zoom(zoom_level0,tiles_x0,tiles_y0,len_tile_cs_web_x0,len_tile_cs_web_y0,pixels,len_tile_wms0,degree_lat,degree_lon){this.zoom_level=zoom_level0;this.tiles_x=tiles_x0;this.tiles_y=tiles_y0;this.len_tile_cs_web_x=len_tile_cs_web_x0;this.len_tile_cs_web_y=len_tile_cs_web_y0;this.res_tile_cs_web_x=this.len_tile_cs_web_x/pixels;this.res_tile_cs_web_y=this.len_tile_cs_web_y/pixels;this.len_tile_wms=len_tile_wms0;this.degree_lon=degree_lon;this.degree_lat=degree_lat;this.resolution=this.len_tile_wms/pixels;this.intersects=function(tx,ty){return(tx>=0&&ty>=0&&tx<this.tiles_x&&ty<this.tiles_y);};}
function Wms_tiles_inset(x1,y1,x2,y2){this.minX=x1;this.minY=y1;this.maxX=x2;this.maxY=y2;this.intersects=function(x0,y0,x1,y1){if(x0<this.minX){x0=this.minX;}
if(x1>this.maxX){x1=this.maxX;}
if(x0>x1){return false;}
if(y0<this.minY){y0=this.minY;}
if(y1>this.maxY){y1=this.maxY;}
if(y0>y1){return false;}
return true;};}
var _last_tile_W_int;var _last_tile_N_int;var _num_tiles_to_load;var _last_map_params=null;var _img_void=null;function _get_map_tiles(lat,lon,zoom,cols,lines,callback_fn,px,py){smaps_dbg("get_map_tiles0");lat=smaps_parse(lat);lon=smaps_parse(lon);zoom=smaps_parse(zoom);cols=smaps_parse(cols);lines=smaps_parse(lines);lat=smaps_roundLatLon(lat);lon=smaps_roundLatLon(lon);if(!px&&_last_map_params!=null){if(lat==_last_map_params.lat&&lon==_last_map_params.lon&&zoom==_last_map_params.zoom&&cols==_last_map_params.cols&&lines==_last_map_params.lines){loading=true;g_map_ready=true;mapa_replaced();return;}}
_last_map_params={lat:lat,lon:lon,zoom:zoom,cols:cols,lines:lines};smaps_dbg("get_map_tiles");g_map_ready=false;if(zooming){s$("div_pontos_child").style.visibility="hidden";s$("div_des_cam").style.display="none";s$("div_des_cam").style.visibility="hidden";}
var pixels=GS_wms_tiles.pixels;g_draw_index++;try{if(zoom!=GS_wms_tiles.location.min_zoom){s$("div_acores").style.visibility="hidden";s$("div_madeira").style.visibility="hidden";}else{s$("div_acores").style.visibility="visible";s$("div_madeira").style.visibility="visible";}}catch(e){}
var x;var y;var conv=new conv_lat_lon_mercator_sphere(lat,lon);x=conv.x;y=conv.y;smaps_dbg("lat, lon");smaps_dbg(lat);smaps_dbg(lon);if(px||py){x+=px*GS_wms_tiles.current_tiles_zoom.resolution;y+=py*GS_wms_tiles.current_tiles_zoom.resolution;}
smaps_dbg("x, y");smaps_dbg(x);smaps_dbg(y);loading=true;var location1=this.location;if(location1===null){smaps_dbg("As coordenadas est&atilde;o numa &aacute;rea n&atilde;o abrangida");zooming=false;loading=false;return null;}
if(!location1.has_zoom(zoom)){smaps_dbg("O nivel de zoom especificado n&atilde;o est&aacute; coberto");zoom=location1.get_existing_zoom(zoom);}
smaps_wait();var ntiles_group=GS_wms_tiles.request_pixels/pixels;var tiles_zoom=location1.zooms[zoom];GS_wms_tiles.current_zoom=zoom;GS_wms_tiles.current_location=location1;GS_wms_tiles.current_tiles_zoom=tiles_zoom;var res=GS_wms_tiles.get_resolution(zoom);var w2=res*cols/2;var h2=res*lines/2;var x_W=x-w2;var x_E=x+w2;var y_S=y-h2;var y_N=y+h2;var tile_W=(x_W-location1.bounds.minX)/tiles_zoom.len_tile_cs_web_x;var tile_N=(y_N-location1.bounds.minY)/tiles_zoom.len_tile_cs_web_y;var tile_E=(x_E-location1.bounds.minX)/tiles_zoom.len_tile_cs_web_x;var tile_S=(y_S-location1.bounds.minY)/tiles_zoom.len_tile_cs_web_y;var tile_W_int=Math.floor(tile_W);var tile_E_int=Math.floor(tile_E);var tile_N_int=Math.floor(tile_N);var tile_S_int=Math.floor(tile_S);var num_map_tiles_x=tile_E_int-tile_W_int+1;var num_map_tiles_y=tile_N_int-tile_S_int+1;var tile_W_int_x=location1.bounds.minX+tile_W_int*tiles_zoom.len_tile_cs_web_x;var tile_N_int_y=location1.bounds.minY+(tile_N_int+1)*tiles_zoom.len_tile_cs_web_y;var map_tiles=s$("div_grelha"+g_grid_index);var x_offset_old;var y_offset_old;try{x_offset_old=parseInt(map_tiles.style.left,10);y_offset_old=parseInt(map_tiles.style.top,10);}catch(e){g_grid_index=0;}
if(g_grid_index===0){x_offset_old=0;y_offset_old=0;g_last_zoom=-1;}
var pix_offset_tile_W;var pix_offset_tile_N;var lat1;var lon1;var x1;var y1;if(typeof(px)=="undefined"){pix_offset_tile_W=-Math.round((x_W-tile_W_int_x)/tiles_zoom.res_tile_cs_web_x);pix_offset_tile_N=-Math.round((tile_N_int_y-y_N)/tiles_zoom.res_tile_cs_web_y);lat1=lat;lon1=lon;x1=x;y1=y;}else{pix_offset_tile_W=Math.round((x_offset_old-px)+(tile_W_int-_last_tile_W_int)*pixels);pix_offset_tile_N=Math.round((y_offset_old+py)+(_last_tile_N_int-tile_N_int)*pixels);var exact_pix_offset_tile_W=-Math.round((x_W-tile_W_int_x)/tiles_zoom.res_tile_cs_web_x);var exact_pix_offset_tile_N=-Math.round((tile_N_int_y-y_N)/tiles_zoom.res_tile_cs_web_y);y1=y+(pix_offset_tile_N-exact_pix_offset_tile_N)*tiles_zoom.res_tile_cs_web_y;x1=x-(pix_offset_tile_W-exact_pix_offset_tile_W)*tiles_zoom.res_tile_cs_web_x;var conv=new conv_xy_mercator_sphere_lat_lon(x1,y1);lat1=conv.lat;lon1=conv.lon;}
global_xform_params=new Xform_params(lat1,lon1,x1,y1,global_xform_params.cols,global_xform_params.lines,res*global_xform_params.cols,gPan_percent,global_xform_params.nome_servico,global_xform_params.tipo_percurso);_last_tile_W_int=tile_W_int;_last_tile_N_int=tile_N_int;var grelha_top=pix_offset_tile_N+'px';var grelha_left=pix_offset_tile_W+'px';var grelha_w=num_map_tiles_x*pixels;var grelha_h=num_map_tiles_y*pixels;var div_grelha;if(g_last_zoom!=zoom){g_grid_index++;var str='position:relative;top:'+grelha_top+';left:'+grelha_left+';width:'+grelha_w+'px;'+'height:'+grelha_h+'px;';div_grelha=smaps_new_node('div','id','div_grelha'+g_grid_index,'style',str);}else{div_grelha=map_tiles;div_grelha.style.top=grelha_top;div_grelha.style.left=grelha_left;smaps_reset_drag();}
var ty,tx,div,div_name,row,col,src,srcLabels,top_str,left_str;_num_tiles_to_load=(tile_N_int-tile_S_int+1)*(tile_E_int-tile_W_int+1);var current_zIndex=(10+(g_draw_index%2));var last_zIndex=(10+((g_draw_index-1)%2));var tile_x0,tile_y0,tile_x1,tile_y1;var src_void=g_img_server[0]+'/loc_'+location1.id+'/void.png';if(_img_void==null){_img_void=new Image();_img_void.src=src_void;}
if(!g_wms_tiled&&g_wms1_url!==""){try{s$('div_clip').removeChild(s$('wms_map1'));s$('div_clip').removeChild(s$('wms_map2'));}catch(e){}
tile_x0=global_xform_params.x0;tile_y0=global_xform_params.y0;tile_x1=global_xform_params.x1;tile_y1=global_xform_params.y1;src=g_wms1_url+"BBOX="+global_xform_params.x0+","+global_xform_params.y0+","+
global_xform_params.x1+","+global_xform_params.y1+"&width="+global_xform_params.cols+"&height="+global_xform_params.lines;smaps_dbg(src);str='position:absolute;top:0'+';left:0'+';width:'+cols+'px'+';height:'+lines+'px'+';z-index:'+current_zIndex;img1=smaps_new_node('img',"galleryimg","no","oncontextmenu","return false",'src',src,"align","top","border",0,"width",global_xform_params.cols,"height",global_xform_params.lines,"onmousedown",'return  smaps_disable_rbutton()',"onmouseup",'return  smaps_disable_rbutton()',"ondblclick","center_map()");div1=smaps_new_node('div','id',"wms_map1",'style',str,img1);s$('div_clip').appendChild(div1);if(g_wms2_url!==""){src2=g_wms2_url+"BBOX="+global_xform_params.x0+","+global_xform_params.y0+","+
global_xform_params.x1+","+global_xform_params.y1+"&width="+global_xform_params.cols+"&height="+global_xform_params.lines;smaps_dbg(src2);img2=smaps_new_node('img',"galleryimg","no","oncontextmenu","return false",'src',src2,"align","top","border",0,"width",global_xform_params.cols,"height",global_xform_params.lines,"onmousedown",'return  smaps_disable_rbutton()',"onmouseup",'return  smaps_disable_rbutton()',"ondblclick","center_map()");div2=smaps_new_node('div','id',"wms_map2",'style',str,img2);s$('div_clip').appendChild(div2);}}
else{smaps_tiles_bounds=[];var tiles_bounds_i=0;for(ty=tile_S_int;ty<=tile_N_int;ty++){for(tx=tile_W_int;tx<=tile_E_int;tx++){tile_x0=location1.bounds.minX+(tx)*tiles_zoom.len_tile_cs_web_x;tile_y0=location1.bounds.minY+(ty)*tiles_zoom.len_tile_cs_web_y;tile_x1=location1.bounds.minX+(tx+1)*tiles_zoom.len_tile_cs_web_x;tile_y1=location1.bounds.minY+(ty+1)*tiles_zoom.len_tile_cs_web_y;var has_tile=(tx>=0&&ty>=0&&tx<tiles_zoom.tiles_x&&ty<tiles_zoom.tiles_y&&location1.intersects(tile_y0,tile_x0,tile_y1,tile_x1));if(has_tile&&zoom<GS_wms_tiles.no_inset_zoom){has_tile=GS_wms_tiles.intersects_insets(tile_x0,tile_y0,tile_x1,tile_y1);}
var src;if(has_tile)
{x=tx%ntiles_group;col=(tx-x)/ntiles_group;y=ty%ntiles_group;row=(ty-y)/ntiles_group;var server_idx=((x+y)%g_img_server.length);var server_idx_layers=((x+y)%g_layers_server.length);setTimeout("smaps_layers( "+server_idx_layers+", "+tile_x0+", "+tile_y0+", "+tile_x1+", "+tile_y1+","+g_draw_index+","+tiles_bounds_i+")",500);tiles_bounds_i++;if(!g_wms_tiled){src=g_img_server[server_idx]+'/loc_'+location1.id+'/zoom_'+zoom+'/row_'+row+'/map_col_'+col+'_'+y+'_'+x+'.png';}else{src=g_wms1_url+"BBOX="+tile_x0+","+tile_y0+","+tile_x1+","+tile_y1+"&width="+pixels+"&height="+pixels;}
if(g_smaps_label_layer){if(!g_wms_tiled){srcLabels=g_img_server[server_idx]+'/loc_'+location1.id+'_L/zoom_'+zoom+'/row_'+row+'/map_col_'+col+'_'+y+'_'+x+'.png';}else{srcLabels=g_wms2_url+"BBOX="+tile_x0+","+tile_y0+","+tile_x1+","+tile_y1+"&width="+pixels+"&height="+pixels;}}
smaps_dbg(src);div_name="z"+zoom+'r'+row+'c'+col+'y'+y+'x'+x;div=s$(div_name);}else{src=src_void;div=null;div_name="void";}
top_str=""+(parseInt((tile_N_int-ty)*pixels,10)+'px');left_str=""+(parseInt((tx-tile_W_int)*pixels,10)+'px');if(div===null){str='position:absolute;top:'+top_str+';left:'+left_str+';width:'+pixels+'px'+';height:'+pixels+'px'+';z-index:'+current_zIndex;div=smaps_new_node('div','id',div_name,'style',str,smaps_new_node('img',"galleryimg","no","oncontextmenu","return false",'src',src,"align","top","border",0,"width",pixels,"height",pixels,"onmousedown",'return  smaps_disable_rbutton()',"onmouseup",'return  smaps_disable_rbutton()',"ondblclick","center_map()"));div_grelha.appendChild(div);if(div_name!="void"&&g_smaps_label_layer){var style=(!g_ie6)?"":"filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src='"+srcLabels+"', sizingMethod='scale')";var divLabels=smaps_new_node('div','id',div_name+"L",'style',str,smaps_new_node('img','src',(!g_ie6)?srcLabels:g_css_server+"/Assets/Maps/Images/pngtransp.gif","align","top","border",0,"width",pixels,"height",pixels,"style",style,"galleryimg","no","oncontextmenu","return false","onmousedown",'return  smaps_disable_rbutton()',"onmouseup",'return  smaps_disable_rbutton()',"ondblclick","center_map()"));div_grelha.appendChild(divLabels);}}else{div.style.top=top_str;div.style.left=left_str;div.style.zIndex=current_zIndex;div.style.visibility="visible";if(g_smaps_label_layer){div2=s$(div_name+"L");div2.style.top=top_str;div2.style.left=left_str;div2.style.zIndex=current_zIndex;div2.style.visibility="visible";}}}}}
setTimeout(mapa_replaced,100);smaps_update_minimap();g_disable_locator_callback=false;if(g_last_zoom!=zoom){map_tiles.style.visibility="hidden";s$('div_no_clip').replaceChild(div_grelha,map_tiles);smaps_reset_drag();}else{var children=div_grelha.childNodes;for(var i=0;i<children.length;i++){if(children[i].style.zIndex!=current_zIndex&&children[i].style.zIndex!==""){children[i].style.visibility="hidden";}}}
g_map_ready=true;if(callback_fn){callback_fn();}
if(g_GSMap1.gmap._extents_callback){if(g_timer_extents_callback){clearTimeout(g_timer_extents_callback);}
g_timer_extents_callback=setTimeout(extents_callback_event,g_GSMap1.gmap._extents_callback_delay);}
if(g_qparams.tipo_query>0){if(g_qparams.iten_zoomed!==""){s$('a_itenzoom').style.visibility="visible";}}
if(_g_clickCallback){var mapdiv=s$("gsmap");if(mapdiv.addEventListener){mapdiv.addEventListener('DOMMouseUp',_g_clickCallback,false);}
mapdiv.onmouseup=_g_clickCallback;_g_clickCallback=false;}
if(!smaps_widget){smaps_layers_interface_update();}}
function smaps_add_layer_markers(Markers){var max_desc_len=150;g_layers_call_count++;if(Markers.rss!==undefined){for(var i=0;i<Markers.rss.channel.item.length;i++){var mk=Markers.rss.channel.item[i];var lat=mk['geo:lat'];var lon=mk['geo:lon'];if(!lat||!lon){continue;}
var base=mk['gis:base'];var full_desc=mk.description;var re=new RegExp("<[^>]*>","g");full_desc=full_desc.replace(re," ");full_desc=lTrim(full_desc);if(full_desc.length<max_desc_len){var freg=mk['gis:parish'];var conc=mk['gis:municipality'];var email=mk['gis:email'];var phone=mk['gis:phone'];var category=mk['category'];if(category.indexOf(mk.title)<0){full_desc="("+category+") <br/>"+full_desc;}
if(full_desc.indexOf(freg)<0){full_desc=full_desc+" <br/>"+freg;}
if(full_desc.indexOf(conc)<0){full_desc=full_desc+" <br/>"+conc;}
if(email&&email.length>0){full_desc=full_desc+" <br/>email: "+email;}
if(phone&&phone.length>0){full_desc=full_desc+" <br/>T: "+phone;}}else{var idx=full_desc.indexOf(" ",max_desc_len);if(idx<0)idx=max_desc_len;full_desc=full_desc.substring(0,idx)+"...";}
if(mk.link&&mk.link.length>0){var url_simple=mk.link.replace(new RegExp("/http.[:]\/\/","g"),"");if(mk.link.indexOf("://")<=0)mk.link="http://"+mk.link;if(!full_desc||full_desc.length===0){full_desc="»";}
full_desc=full_desc+"<br/><div style='float:left'><a  title='Site' href='"+mk.link+"' target='_blank'>Site</a></div>";}
var marker_opts={title:mk.title,selected:false,opened:false,guid:mk['guid'],layers_call_count:g_layers_call_count,permanent:true};var icon={iconSize:{width:16,height:16},infoWindowAnchor:{x:0,y:0},iconAnchor:{x:8,y:0}};icon.image=mk['gis:icon'];if(base=='f'&&mk['gis:layer']){marker_opts.category=mk['gis:layer'].toLowerCase();if(icon.image.length==0){icon.image="icon_"+marker_opts.category+".gif";}}
if(icon.image.length===0){icon.image=g_gs_server+"images/icone_sapo.png";if(base=='t'){icon.image=g_gs_server+"images/message.png";}}else icon.image=g_gs_server+"images/layers/"+icon.image;if(typeof(Markers.icon)!="undefined"){icon=Object.extend(icon,Markers.icon);}
marker_opts.icon=marker_opts.icon_selected=icon;if(mk['gis:minResolution'].length>0){marker_opts.minResolution=parseFloat(mk['gis:minResolution']);}else{marker_opts.minResolution=2.0;}
marker_opts.matchlevel=parseInt(mk['gis:matchlevel']);if(marker_opts.matchlevel<6){continue;}
g_GSMap1.addMarker(lat,lon,marker_opts,full_desc);}}
timer_smaps_map_pontos();}
function extents_callback_event(){var bounds=g_GSMap1.gmap.getBoundsLatLng(0.9);g_GSMap1.gmap._extents_callback(bounds.minX,bounds.minY,bounds.maxX,bounds.maxY);}
function init_tiles_layout(){var params=g_tiles_layout.params;var location1=params.location;var id=location1.id;var request_pixels=location1.request_pixels;var pixels=location1.pixels;var max_zoom=location1.max_zoom;GS_wms_tiles.zoom0_resolution=location1.zoom0_resolution;GS_wms_tiles.request_pixels=request_pixels;GS_wms_tiles.pixels=pixels;var dbl=params.double_image_size;GS_wms_tiles.no_inset_zoom=location1.no_inset_zoom;var num_insets=location1.num_insets;var x1,y1,x2,y2;for(var i=0;i<num_insets;i++){var g_inset=location1.insets[i];x1=g_inset.x1w;y1=g_inset.y1w;x2=g_inset.x2w;y2=g_inset.y2w;GS_wms_tiles.add_inset(new Wms_tiles_inset(x1,y1,x2,y2));}
var xtiles=g_tiles_layout.tiles;var lon_unit_meters=xtiles.unit_meters;var lat_unit_meters=xtiles.unit_meters;if(lon_unit_meters===0){lon_unit_meters=degree_lon;}
if(lat_unit_meters===0){lat_unit_meters=degree_lat;}
x1=xtiles.x1;y1=xtiles.y1;x2=xtiles.x2;y2=xtiles.y2;var num_zooms=g_max_zoom-g_min_zoom+1;var min_zoom=g_max_zoom;var wms_tiles_loc=new Wms_tiles_location(id,new GBounds(x1,y1,x2,y2),min_zoom,max_zoom,lat_unit_meters,lon_unit_meters);for(var z=0;z<num_zooms;z++){var zoom=xtiles.zooms[z];var zoom_level=zoom.level;var tiles_x=zoom.tiles_x;var tiles_y=zoom.tiles_y;var len_tile_cs_web_x=zoom.length_tile;var len_tile_cs_web_y=zoom.length_tile;var len_tile_wms=zoom.length_tile;wms_tiles_loc.zooms[zoom_level]=new Wms_tiles_zoom(zoom_level,tiles_x,tiles_y,len_tile_cs_web_x,len_tile_cs_web_y,pixels,len_tile_wms,lat_unit_meters,lon_unit_meters);}
GS_wms_tiles.add_location(wms_tiles_loc);GS_wms_tiles.ready=true;}
function lon_degrees_2_meters(width){if(typeof(GS_wms_tiles)!="undefined"&&GS_wms_tiles.ready&&GS_wms_tiles.current_location!==null&&GS_wms_tiles.current_tiles_zoom!==null){return GS_wms_tiles.lon_degrees_2_meters(width);}
return lon_degrees_2_meters_aprox(width);}
function lat_degrees_2_meters(height){if(typeof(GS_wms_tiles)!="undefined"&&GS_wms_tiles.ready&&GS_wms_tiles.current_location!==null&&GS_wms_tiles.current_tiles_zoom!==null){return GS_wms_tiles.lat_degrees_2_meters(height);}
return lat_degrees_2_meters_aprox(height);}
function meters_2_degrees_lon(width){if(typeof(GS_wms_tiles)!="undefined"&&GS_wms_tiles.ready&&GS_wms_tiles.current_location!==null&&GS_wms_tiles.current_tiles_zoom!==null){return GS_wms_tiles.meters_2_degrees_lon(width);}
return meters_2_degrees_lon_aprox(width);}
function meters_2_degrees_lat(height){if(typeof(GS_wms_tiles)!="undefined"&&GS_wms_tiles.ready&&GS_wms_tiles.current_location!==null&&GS_wms_tiles.current_tiles_zoom!==null){return GS_wms_tiles.meters_2_degrees_lat(height);}
return meters_2_degrees_lat_aprox(height);}
function not_implemented(name){try{window.defaultStatus="Uma das funções chamadas não estão implementadas neste API:"+name;}catch(e){}}
function smaps_toogle_debug()
{var div=s$("div_debug");if(div!==null){if(div.style.visibility=="hidden"){div.style.visibility="visible";}else{div.style.visibility="hidden";}}}
function gs_createMarker(tit,text,point,icon_style,selected_icon_style,sizex,sizey,anchorx,anchory,selected_icon_title){var icon=new GIcon();icon.image=icon_style?icon_style:smaps_const.img_marca;icon.iconSize=icon_style?new GSize(sizex,sizey):new GSize(g_img_marca_w,g_img_marca_h);icon.infoWindowAnchor=new GPoint(smaps_const.window_offset_x,smaps_const.window_offset_y);icon.iconAnchor=icon_style?new GPoint(anchorx,anchory):new GPoint(g_img_marca_dx,g_img_marca_dy);var opts=new GMarkerOptions();opts.icon=icon;var marker=new GMarker(point,opts);GEvent.addListener(marker,"click",function(marker){marker.openInfoWindowHtml(text);marker.options.opened=false;});marker.options.title=tit;marker.options.icon_selected=new GIcon();marker.options.icon_selected.title=marker.options.icon_selected.image=selected_icon_style?selected_icon_style:smaps_const.img_marca_sel;return marker;}
function register_zoom_drag(div){if(g_ie){div.ondragstart=function(){return false;};div.onclick=zoom_drag_up;div.onmousedown=zoom_drag_down;div.onmousemove=zoom_drag_move;div.onmouseup=zoom_drag_up;}else{div.onmousedown=zoom_drag_down;div.onmousemove=zoom_drag_move;div.onmouseup=zoom_drag_up;}
div.onmouseout=zoom_drag_up;}
var _zoom_dragging=false;function zoom_drag_down(e){if(!e){e=window.event;}
if(!e){return false;}
if(!g_ie&&e.preventDefault){e.preventDefault();}
_zoom_dragging=true;return true;}
function zoom_drag_move(e,interval){if(!g_ie){s$("zoom_drag_img").onmouseup=zoom_drag_up;}
if(!e){e=window.event;}
if(!e){return false;}
var zoom=smaps_get_zoom(e);set_zoom_title(e,zoom);if(_zoom_dragging){show_zoom(zoom);}
return true;}
function zoom_drag_up(e){if(!e){e=window.event;}
if(!e){return false;}
if(!_zoom_dragging){return true;}
var zoom=smaps_get_zoom(e);s$("zoom_drag_img").onmouseup=null;_zoom_dragging=false;zoom_tiles_async(zoom);smaps_stats("mapa","zoom_drag","");return true;}
function smaps_get_zoom(e){var xy=new Mouse2point_xy(e,"zoom_drag_img");var zoom=parseInt(((xy.y)/g_zoom_drag_height*(g_max_zoom+2))-1,10);zoom++;if(zoom<g_min_zoom){zoom=g_min_zoom;}
if(zoom>g_max_zoom){zoom=g_max_zoom;}
return zoom;}
var _last_zoom_title=-1;function set_zoom_title(e,zoom){if(typeof(zoom)=="undefined"){zoom=smaps_get_zoom(e);}
if(zoom!=_last_zoom_title&&_last_zoom_title>=0){hide_zoom_title(_last_zoom_title);}
_last_zoom_title=zoom;s$("div_t"+zoom).style.visibility='visible';}
function hide_last_zoom_title(e){_zoom_dragging=false;hide_zoom_title(_last_zoom_title);return true;}
function hide_zoom_title(zoom){if(typeof(zoom)!="undefined"){try{s$("div_t"+zoom).style.visibility='hidden';}catch(e){}}}
var xMinBound=-1;var yMinBound=-1;var xMaxBound=1;var yMaxBound=1;var g_matches_text="";var pontos_pesquisa=[];var smaps_filter="allnotmedia";var g_query;var g_qparams={query:"",tipo_query:-1,div_results:'results',div_matches:'matches',div_pages:'results-paginacao',div_pg_ant:'pg_ant',div_pg:'pg',div_pg_seg:'pg_seg',partida:null,chegada:null,modo:"rapido",cancel:false,iten_zoomed:"",print_version:false,get_param:function(to_print){var txt1,txt2;if(typeof(to_print)=="undefined"){txt1=escape(escape(SAPO.Utility.String.utf8Encode(this.partida.options.title)));txt2=escape(escape(SAPO.Utility.String.utf8Encode(this.chegada.options.title)));}
else if(to_print){txt1=escape(escape(SAPO.Utility.String.utf8Encode(this.partida.options.title)));txt2=escape(escape(SAPO.Utility.String.utf8Encode(this.chegada.options.title)));}else{txt1=escape(escape(escape(SAPO.Utility.String.utf8Encode(this.partida.options.title))));txt2=escape(escape(escape(SAPO.Utility.String.utf8Encode(this.chegada.options.title))));}
return"P="+this.modo+";"+
this.partida.point.y+","+
this.partida.point.x+","+
txt1+";"+
this.chegada.point.y+","+
this.chegada.point.x+","+
txt2+(to_print?";p":"");},get_url:function(to_print){return g_smaps_page+"?"+this.get_param(to_print);}};var g_results_per_win=10;var g_num_wins=1;var g_locator_callback;var g_area_visivel=false;var _g_pesq_timeout;var g_matches_index=1;var smaps_print_version=false;var g_iten_view=null;function Smaps_View(lat,lon,zoom){this.lat=lat;this.lon=lon;this.zoom=zoom;}
function smaps_pesquisa(text){try{s$("iten_matches").innerHTML="";s$("iten_results").style.display="none";}catch(e){}
g_qparams.tipo_query=0;var area_vis=false;try{area_vis=s$("SearchForm").area[1].checked;}catch(e){}
g_qparams.div_results='results';g_qparams.div_matches='matches';g_qparams.div_pages='results-paginacao';g_qparams.div_pg_ant='pg_ant';g_qparams.div_pg='pg';g_qparams.div_pg_seg='pg_seg';smaps_pesq_form(text,area_vis,g_qparams.tipo_query,smaps_filter);}
function smaps_pesquisa_geral(query){if(typeof(query)!="undefined"){s$('caixap').value=query;}else{query=s$('caixap').value;}
if(!g_map_ready){setTimeout(smaps_submitMapOrServForm,1000);}else{smaps_submitMapOrServForm();}}
function smaps_submitMapOrServForm(){if(!g_map_ready){setTimeout(smaps_submitMapOrServForm,1000);}else{smaps_pesquisa(s$("caixap").value);}}
function smaps_pesq_partida(){s$("matches").innerHTML="";s$("results").style.display="none";s$("percurso").style.display="none";percurso_note("iten_erro");g_qparams.tipo_query=1;g_qparams.div_results='iten_results';g_qparams.div_matches='iten_matches';g_qparams.div_pages='results-paginacao-itin';g_qparams.div_pg_ant='iten_pg_ant';g_qparams.div_pg='iten_pg';g_qparams.div_pg_seg='iten_pg_seg';g_qparams.iten_zoomed="";var em=smaps_trim(s$("caixa_partida").value);var em2=smaps_trim(s$("caixa_chegada").value);if(em.length<2){g_query=em;smaps_pesq_vazia("Por favor indique a partida");return;}
if(em2.length<2){g_query=em2;smaps_pesq_vazia("Por favor indique a chegada");return;}
smaps_pesq_form(em,false,g_qparams.tipo_query,"allnotmedia");}
function smaps_pesq_chegada(){g_qparams.tipo_query=2;g_qparams.div_results='iten_results';g_qparams.div_matches='iten_matches';g_qparams.div_pages='results-paginacao-itin';g_qparams.div_pg_ant='iten_pg_ant';g_qparams.div_pg='iten_pg';g_qparams.div_pg_seg='iten_pg_seg';var em=smaps_trim(s$("caixa_chegada").value);smaps_pesq_form(em,false,g_qparams.tipo_query,"allnotmedia");}
function smaps_pesq_form(query,area_vis,tipo_caixa,filter){g_matches_text="";g_query=query;if(g_query.length===0){return;}
if(g_query.length<2){smaps_pesq_vazia("Por favor introduza mais texto");return;}
if(tipo_caixa===0){if(g_query.toLowerCase().match(/^a\u00E7ores/)||g_query.toLowerCase().match(/^azores/)){smaps_acores();smaps_hide_results(false);return;}
if(g_query.toLowerCase().match(/^madeira/)){smaps_madeira();smaps_hide_results(false);return;}}else{s$('percurso').innerHTML="";percurso_note("iten_erro");s$("iten_modo").style.display="none";percurso_note("iten_sum");s$("iten_texto_pesq").innerHTML=(tipo_caixa==1)?"partida":"chegada";s$("pesqIten_opcoes").style.display="none";}
s$(g_qparams.div_pg_ant).style.visibility="hidden";s$(g_qparams.div_pg+'1').style.visibility="hidden";s$(g_qparams.div_pg+'2').style.visibility="hidden";s$(g_qparams.div_pg+'3').style.visibility="hidden";s$(g_qparams.div_pg+'4').style.visibility="hidden";s$(g_qparams.div_pg_seg).style.visibility="hidden";var re=new RegExp("'","g");g_query=g_query.replace(re,"´");try{if(!g_locator_widget)
s$(g_qparams.div_pages).style.display="none";}catch(e){}
if(tipo_caixa===0&&(g_query.indexOf("http://")>=0)){smaps_parseQuery("S="+query);return;}
else if(tipo_caixa===0&&smaps_parseQuery("q="+g_query)){s$(g_qparams.div_matches).innerHTML="";smaps_setCursor(1);smaps_stats("mapas","pesquisa_latlon",g_query);smaps_hide_results(false);return;}else{smaps_setCursor(2);s$(g_qparams.div_matches).innerHTML="<center><img src='"+g_css_server+"/Assets/Maps/Images/bigwheel_1.gif'></center>";g_area_visivel=g_locator_widget?false:(area_vis);if(g_area_visivel){get_bounds();}
var callback;callback="smaps_pesq_callback";g_smaps_serial=get_sec1970();var srvlt_url=g_querydb_server+"/queryGIS/servlet/queryGIS?max="+(g_results_per_win*g_num_wins)+"&cb="+callback+"&q="+escape(g_query)+"&f="+filter+
(!g_area_visivel?"":("&xMin="+xMinBound+"&yMin="+yMinBound+"&xMax="+xMaxBound+"&yMax="+yMaxBound))+"&i="+g_smaps_serial;smaps_dbg(srvlt_url);smaps_js_request(srvlt_url,"script1");if(tipo_caixa===0){smaps_stats("mapas","pesquisa_"+((filter.indexOf("allpois")>0)?"servicos":"geral"),g_query);}}}
function smaps_pesq_callback(result){g_matches_text=result;showMatches(1);}
function smaps_parseRSSQuery(query){if(!g_GSMap1||!g_GSMap1.is_rendered()){setTimeout("smaps_parseRSSQuery(\""+query+"\")",500);return;}
if(query&&query.indexOf("S=")===0){return smaps_getRSS_Markers(query.substring(2,query.length),"smaps_add_markers");}else{return false;}}
function smaps_getRSS_Markers(rss,callback_name){return smaps_getRSS_Markers_xsl(rss,callback_name,null,300);}
function smaps_getRSS_Markers_xsl(rss,callback_name,xsl,expires_sec,server_idx){smaps_dbg_link(rss);var jrss_url;if(!xsl||xsl===null){jrss_url="http://services.sapo.pt/Transformer/RSSOrAtomToJSON?url="+SAPO.Utility.String.utf8Encode(rss)+"&jsonCallback="+callback_name;}
else{xsl_server=(typeof(server_idx)!="undefined")?g_layers_server[server_idx]:g_xsl_server;jrss_url=xsl_server+"/xsl_servlet/servlet/xsl_servlet?expires="+expires_sec+"&cb="+callback_name+"&xml="+
encodeURIComponent(rss)+"&xsl="+encodeURIComponent(xsl);}
smaps_dbg_link(jrss_url);smaps_js_request(jrss_url,"script_jrss");try{}catch(e){}
return true;}
function smaps_addRSS_Markers_xsl_byRadius(key,rss,callback_name,xsl,expires_sec,zoom_required){smaps_rss_layers[key]={rss:rss,callback_name:callback_name,xsl:xsl,expires_sec:expires_sec,zoom_required:zoom_required};}
function smaps_getRSS_Markers_xsl_byRadius(tile_bounds_obj,rss,callback_name,xsl,expires_sec){var bounds=tile_bounds_obj.tile_bounds.boundsLL;var server_idx=tile_bounds_obj.server_idx;var boundsXY=tile_bounds_obj.tile_bounds.boundsXY;lon=(bounds.maxX+bounds.minX)*0.5;lat=(bounds.maxY+bounds.minY)*0.5;lat=smaps_roundLatLon(lat);lon=smaps_roundLatLon(lon);var dx=(boundsXY.maxX-boundsXY.minX);var dy=(boundsXY.maxY-boundsXY.minY);radius=0.5*Math.sqrt((dx*dx)+(dy*dy));dx=0.5*dx;dy=0.5*dy;var re=new RegExp("\\?","g");rss=rss.replace(re,"?latitude="+lat+"&longitude="+lon+"&radius="+radius+"&");smaps_getRSS_Markers_xsl(rss,callback_name,xsl,expires_sec,server_idx);}
var smaps_tiles_bounds=[];function smaps_layers(server_idx,x0,y0,x1,y1,draw_index,tiles_bounds_index){smaps_dbg("smaps_layers");if((g_draw_index-draw_index)>0)
return;var xform0=new conv_xy_mercator_sphere_lat_lon(x0,y0);var xform1=new conv_xy_mercator_sphere_lat_lon(x1,y1);var bounds=new GBounds(xform0.lon,xform0.lat,xform1.lon,xform1.lat);var boundsXY=new GBounds(x0,y0,x1,y1);var tile_bounds={boundsLL:bounds,boundsXY:boundsXY};smaps_tiles_bounds[tiles_bounds_index]={"tile_bounds":tile_bounds,"server_idx":server_idx};smaps_layers_part2(smaps_tiles_bounds[tiles_bounds_index]);}
function smaps_layers_part2(tile_bounds_obj){var minRes=GS_wms_tiles.get_resolution(GS_wms_tiles.current_zoom);if(GS_wms_tiles.current_zoom<=smaps_zoom_level_layers_base){if(smaps_default_layers_active){smaps_layers_call("",g_smaps_limit_pois,tile_bounds_obj,minRes);}
if(g_pharm_at_service_on){smaps_pharm_at_service(tile_bounds_obj);}}
if(GS_wms_tiles.current_zoom<=smaps_zoom_level_layers){var layers=smaps_get_normalized_layers();smaps_dbg("layers="+layers);if(layers.length>0){var layers_a=layers.split("-");smaps_dbg("#layers="+layers_a.length);for(var i=0;i<layers_a.length;i++){if(layers_a[i]!==""){smaps_layers_call(layers_a[i],g_smaps_limit_pois,tile_bounds_obj,minRes);if(typeof(add_option)=="function"){add_option("option_"+layers_a[i]);}}}}}
for(key in smaps_rss_layers){if(!smaps_rss_layers[key])break;var obj=smaps_rss_layers[key];if(GS_wms_tiles.current_zoom<=(17-obj.zoom_required)){smaps_getRSS_Markers_xsl_byRadius(tile_bounds_obj,obj.rss,obj.callback_name,obj.xsl,obj.expires_sec);}}}
function smaps_get_normalized_layers(){var layers=g_smaps_active_layers;var re=new RegExp("--","g");layers=layers.replace(re,"-");if(smaps_traffic_active)
layers=layers+"-transito-";if(smaps_pharmacies_active)
layers=layers+"-farmacias-"
return layers;}
function smaps_layers_call(layer,limit_pois,tile_bounds_obj,minRes){var bounds=tile_bounds_obj.tile_bounds.boundsLL;var server_idx=tile_bounds_obj.server_idx;if(layer.match("/^farmacias/")){return;}
var markers_url=g_layers_server[server_idx]+"/AjaxLayers/servlet/AjaxLayers?layers="+layer+"&x0="+bounds.minX+"&y0="+bounds.minY+"&x1="+bounds.maxX+"&y1="+bounds.maxY+"&limit="+limit_pois+"&minRes="+minRes+"&cb=smaps_add_layer_markers";smaps_dbg_link(markers_url);smaps_js_request(markers_url,"script_layers");}
function smaps_refresh_layers(){smaps_dbg("smaps_refresh_layers");for(var i=0;i<smaps_tiles_bounds.length;i++){smaps_layers_part2(smaps_tiles_bounds[i]);}}
var _smaps_refresh_layers_timeout=false;function smaps_refresh_layers_timer(){smaps_dbg("smaps_refresh_layers_timer");smaps_refresh_layers_timer_del();_smaps_refresh_layers_timeout=setTimeout(smaps_refresh_layers,500);}
function smaps_refresh_layers_timer_del(){if(_smaps_refresh_layers_timeout)
clearTimeout(_smaps_refresh_layers_timeout);_smaps_refresh_layers_timeout=false;}
function smaps_layers_add(layer){if(g_smaps_active_layers.indexOf(layer)>=0)
return;g_smaps_active_layers=g_smaps_active_layers+"-"+layer+"-";smaps_refresh_layers_timer();}
function smaps_layers_remove(layer){var re=new RegExp(layer,"g");g_smaps_active_layers=g_smaps_active_layers.replace(re,"");g_smaps_active_layers=smaps_get_normalized_layers();smaps_dim_markers_category(layer);}
function smaps_parseQuery(query,mark){if(smaps_parseRSSQuery(query)){return true;}
var put_marker=(mark!==0);var coords_query=(query.indexOf("q=")===0);var text_query=(query.indexOf("t=")===0);var widget_query=(query.indexOf("W=")===0);var cities_query=widget_query||(query.indexOf("L=")===0);var points_query=(query.indexOf("M=")===0);if(put_marker&&query.indexOf("P=")===0){g_qparams.query=query;smaps_iten_query();return true;}
if(!coords_query&&!cities_query&&!points_query&&!text_query){return false;}
query=query.substring(2,query.length);if(text_query&&smaps_trim(query).length>0){smaps_pesquisa_geral(query);return true;}
var coords=query.split(";");var valid_query=false;for(i=0;i<coords.length;i++){query=coords[i];var args=query.split(",");var point=null;var comma_pos=query.indexOf(',');if(args.length<2){continue;}else{var lat=args[0];var lon=args[1];if(args.length>2){var zoom=17-7;var txt="";var desc="";var opened=false;if(cities_query){if(widget_query){zoom=args[2];}else{var criterio=args[2];if(!isNaN(criterio)){if(cities_query){zoom=17-(9-criterio);}else{zoom=criterio;}}}
if(args.length>3){txt=unescape(args[3]);}
if(args.length>4){desc=unescape(args[4]);}}else{if(args.length>2&&points_query){if(i==0){g_smaps_active_layers=unescape(args[3]);if(g_smaps_active_layers.length<2||g_smaps_active_layers==="undefined"){g_smaps_active_layers="";}
if(g_smaps_active_layers.indexOf("-farmacias-")>=0){add_option("option_farmacias");}
if(g_smaps_active_layers.indexOf("-transito-")>=0){add_option("option_transito");}}else{txt=unescape(unescape(args[2]));}}else{txt="lat: "+lat+"<br/>lon: "+lon;}
if(args.length>3&&points_query){opened=parseInt(args[3])>0;}
if(!points_query||(points_query&&i===0)){zoom=args[2];}}
if(!isNaN(lat)&&!isNaN(lon)&&!isNaN(zoom)){point=new GPoint(lon,lat);valid_query=true;if(put_marker&&(!points_query||i>0)){var mk=gs_createMarker(txt,desc,point,smaps_const.img_marca,smaps_const.img_marca_sel,g_img_marca_w,g_img_marca_h,g_img_marca_dx,g_img_marca_dy);mk.options.opened=opened;mk.options.selected=true;g_GSMap1.gmap.addOverlay(mk);}
if(i===0){g_GSMap1.gmap.centerAndZoom(point,zoom);}}
else{continue;}}
else{if(!isNaN(lat)&&!isNaN(lon)){valid_query=true;point=new GPoint(lon,lat);if(i===0){g_GSMap1.gmap.centerAndZoom(point,17-6);}
if(put_marker&&(!points_query||i>0)){mk=gs_createMarker("Coordenadas","lat: "+lat+"<br/>lon: "+lon,point,smaps_const.img_marca,smaps_const.img_marca_sel,g_img_marca_w,g_img_marca_h,g_img_marca_dx,g_img_marca_dy);mk.options.opened=true;mk.options.selected=true;g_GSMap1.gmap.addOverlay(mk);}}
else{continue;}}}}
return valid_query;}
function get_bounds(){var bounds=g_GSMap1.gmap.getBoundsLatLng(0.99);var width=bounds.maxX-bounds.minX;var height=bounds.maxY-bounds.minY;xMinBound=bounds.minX;yMinBound=bounds.minY;xMaxBound=bounds.maxX;yMaxBound=bounds.maxY;}
function smaps_focus(index,zoom){if(!g_map_ready){return;}
var i=0;if((index%g_results_per_win)===0){i=g_results_per_win;}else{i=index%g_results_per_win;}
var x=pontos_pesquisa[i-1].marker.point.x;var y=pontos_pesquisa[i-1].marker.point.y;point=new GPoint(x,y);if(zoom>=0){g_GSMap1.gmap.centerAndZoom(point,zoom);}
var rotate_banner=g_locator_widget||(g_qparams.tipo_query==0);if(rotate_banner){smaps_hide_results(!rotate_banner);}
if(g_qparams.tipo_query==1){try{g_qparams.partida.options.selected=false;}catch(e){}}
if(g_qparams.tipo_query==2){try{g_qparams.chegada.options.selected=false;}catch(e){}}
var marker=pontos_pesquisa[i-1].marker;marker.options.opened=(g_qparams.tipo_query===0);marker.options.selected=true;marker.options.visible=true;var desc,icon;if(g_qparams.tipo_query==1){icon=new GIcon();icon.image=g_css_server+"/Assets/Maps/Images/bandeira_verde.gif";icon.iconSize=new GSize(23,28);icon.infoWindowAnchor=new GPoint(smaps_const.window_offset_x,smaps_const.window_offset_y);icon.iconAnchor=new GPoint(12,30);pontos_pesquisa[i-1].marker.options.icon_selected=icon;g_qparams.partida=pontos_pesquisa[i-1].marker;g_qparams.partida_ascii=pontos_pesquisa[i-1].nome_ascii;smaps_pesq_chegada();}
else if(g_qparams.tipo_query==2){icon=new GIcon();icon.image=g_css_server+"/Assets/Maps/Images/bandeira_vermelha.gif";icon.iconSize=new GSize(23,28);icon.infoWindowAnchor=new GPoint(smaps_const.window_offset_x,smaps_const.window_offset_y);icon.iconAnchor=new GPoint(12,30);pontos_pesquisa[i-1].marker.options.icon_selected=icon;g_qparams.chegada=pontos_pesquisa[i-1].marker;g_qparams.chegada_ascii=pontos_pesquisa[i-1].nome_ascii;smaps_itenerario();}
smaps_dim_markers(true);timer_smaps_map_pontos();}
function smaps_pesq_vazia(exception){if(!exception&&g_matches_text===""){exception='N&atilde;o foi poss&iacute;vel obter resposta';}
var area_txt="";if(g_query.indexOf(" em ")<0){area_txt=g_area_visivel?"na &aacute;rea vis&iacute;vel":"em Portugal";}
smaps_hide_results(false);var msg;if(exception){if(g_query.length>0)
msg='N&atilde;o foi poss&iacute;vel pesquisar por: <b>'+g_query+'</b><br>'+exception;else
msg=exception;}else{msg="A sua pesquisa por: <b>"+g_query+"<br>"+area_txt+"</b> n&atilde;o devolveu qualquer resultado."+(g_area_visivel?" Experimente pesquisar em Portugal.":"");}
if(g_qparams.tipo_query>0){s$("pesqIten_opcoes").style.display="none";s$("iten_resumo").style.display="none";}
s$(g_qparams.div_matches).innerHTML=smaps_msg_results((exception?"icone_impossivel.gif":"warning.gif"),msg);show_results();smaps_setCursor(1);try{s$(g_qparams.div_pages).style.display="none";}catch(e){}
try{if(g_qparams.tipo_query>0){s$('iten_voltar').style.display="block";}}catch(e){}}
function smaps_msg_results(img_warn,msg){var imgs;var styles;if(g_ie6){imgs="";styles="style='padding-left:10px;'";}else{imgs='<span class="iten_erro"><img src="'+g_css_server+'/Assets/Maps/Images/'+img_warn+'"/></span>';styles="";}
return imgs+"<div class='iten_erro_txt' "+styles+">"+msg+"</div>";}
function high_number_div(divname){s$(divname).style.backgroundColor='#7d9b15';s$(divname).style.color='white';}
function dim_number_div(divname){s$(divname).style.backgroundColor='';s$(divname).style.color='#374C41';}
function showMatches(index){if(!g_map_ready){return;}
var resultPesq;var points="";var point,marker;var nome,morada,telefone,photo,tipo;dim_number_div(g_qparams.div_pg+'1');dim_number_div(g_qparams.div_pg+'2');dim_number_div(g_qparams.div_pg+'3');dim_number_div(g_qparams.div_pg+'4');if(index=="ant"){index=g_matches_index-1;}
if(index=="seg"){index=g_matches_index+1;}
g_matches_index=index;high_number_div(g_qparams.div_pg+index);smaps_hide_results(true);if(g_matches_text.length===0){smaps_pesq_vazia();return;}
var lowerBound=(0+((index-1)*g_results_per_win));var upperBound=(g_results_per_win+((index-1)*g_results_per_win));smaps_pagingControl(g_matches_text.length);if(upperBound>g_matches_text.length){upperBound=g_matches_text.length;}
smaps_dim_markers(true);var sortudo=false;var anyword=false;var pesquisa_em=false;var freg_conc_txt;var first=index==1;for(var i=lowerBound;i<upperBound;i++){var xml=g_matches_text[i];var lon=xml.lon;var lat=xml.lat;var nome=unescape(xml.nome);var morada=unescape(xml.morada);var telefone=unescape(xml.telefone);var photo=unescape(xml.photo);var tipo=xml.tipo;var zoom=xml.z;var anyword=anyword||smaps_trim(""+xml.anyw)=="true";var freguesia=unescape(xml.freguesia);var concelho=unescape(xml.concelho);var distrito=unescape(xml.distrito);var criterio=0;var is_loc=(tipo.toLowerCase()=="localidades");try{criterio=parseInt(xml.criterio);}catch(e){}
if(is_loc){if(criterio>=1&&criterio<=2){freguesia=concelho=distrito="";tipo="Cidade";}
if(criterio==3){freguesia="";tipo="Cidade";}
else if(criterio==4){tipo="Vila";freguesia="";}
else if(criterio==5){tipo="Vila";}}
pesquisa_em=pesquisa_em||smaps_trim(""+xml.em)!=="";var email=""+unescape(xml.email);var net=""+unescape(xml.net);var tags=""+unescape(xml.tags);var desc="";var zipcode=(xml.zipcode.length>4)?(xml.zipcode.substring(0,4)+"-"+xml.zipcode.substring(4)):"";point=new GPoint(lon,lat);if(upperBound==1){sortudo=true;}
if(first){if(nome.toLowerCase()==g_query.toLowerCase()){sortudo=true;}
first=false;}else{if(nome.toLowerCase()==g_query.toLowerCase())sortudo=false;}
if(tags.indexOf("allmedia")>=0){desc=xml.pubdate;}
if(is_loc&&distrito==concelho){concelho="";}
if(is_loc&&concelho==freguesia){freguesia="";}
freg_conc_txt=((freguesia!=="")?("<span title='freguesia'>"+freguesia+". </span>"):"")+
((concelho!=="")?("<span title='concelho'>"+concelho+". </span>"):"")+
((freguesia==""&&distrito!=="")?("<span title='distrito'>"+distrito+". </span>"):"");var email_data="";var net_data="";if(!g_locator_widget&&telefone!==""){telefone="Tel.:"+telefone+"<br/>";}
if(!g_locator_widget&&net!==""){var url_simple=net.replace(new RegExp("/http.[:]\/\/","g"),"");if(net.indexOf("://")<0){net="http://"+net;}
net_data="<div style='float:left'><a title='Site' target='_blank' href='"+net+"'>Site</a></div>";}
var email_sep="";if(!g_locator_widget&&email!==""){if(net!==""){email_sep="&nbsp;|&nbsp;";}
email_data="<a href='mailto:"+email+"'>Enviar email</a>";}
var num=i+1;var num_left=7,num_size=12;if(num>9){num_left=4;num_size=11;}
var img_style="";var img_src=smaps_const.img_marca;if(g_ie6&&img_src.indexOf(".png")>=0){img_style="filter: progid:DXImageTransform.Microsoft.AlphaImageLoader(src=\""+img_src+"\", sizingMethod=\"scale\")";img_src=g_css_server+"/Assets/Maps/Images/pngtransp.gif";}
var no_sel="<div id='alfinete' style='position:absolute;z-index:20'><img width='"+g_img_marca_w+"' height='"+g_img_marca_h+"' src='"+img_src+"' style='"+img_style+"'></div><div id='number_div' style='position:absolute;left:"+num_left+"px;top:2px;z-index:25;font-size:"+num_size+"px;'>"+num+"</div>";smaps_dbg(no_sel);nome_pequeno=nome.substring(0,59);if(g_qparams.tipo_query>0){zoom=-1;}
var html='<li id="gs_title"><a style="font-weight:bold" href="javascript:smaps_focus('+xml.i+','+zoom+')">'+nome+'</a><br />('+tipo+') '+freg_conc_txt+'<br /></li>';var re;if(nome.length>59){nome_pequeno=nome_pequeno+".";re=new RegExp(nome,"g");html=html.replace(re,nome_pequeno);re=new RegExp("<a ","g");html=html.replace(re,"<a title='"+nome+"' ");}
var desc_marker=(is_loc||tipo.toLowerCase()=="ruas")?freg_conc_txt:("("+tipo+")<br/>"+morada+"<br/>"+zipcode+"<br/>"+freg_conc_txt+"<br/>"+telefone+net_data+email_sep+email_data+desc);marker=gs_createMarker(nome_pequeno,desc_marker,point,no_sel,smaps_const.img_marca_sel,g_img_marca_w,g_img_marca_h,g_img_marca_dx,g_img_marca_dy,(is_loc?undefined:("<div class='gs_mark_img'><img src='"+smaps_const.img_marca_sel+"' border='0'/></div><div class='gs_mark'><span>"+nome_pequeno+"</span></div>")));g_GSMap1.gmap.addOverlay(marker);pontos_pesquisa[i-lowerBound]={indice:((i%g_results_per_win)+1),marker:marker,nome_ascii:xml.nome_ascii};if(i==lowerBound){re=new RegExp("<li ","g");html=html.replace(re,"<li value="+num+" ");}
points=points+html;}
if(g_qparams.tipo_query===0&&!g_locator_callback){document.forms.SearchForm.area[1].checked=g_area_visivel;document.forms.SearchForm.area[0].checked=!g_area_visivel;}
if(!sortudo){show_results();}else{smaps_hide_results(false);}
if(g_qparams.tipo_query===0||!sortudo){var _msg=(anyword?("N&atilde;o foram encontrados registos para a pesquisa <b>"+g_query+"</b>, queria dizer?"):"");var _msg2="";if(upperBound==(g_results_per_win*g_num_wins)){_msg2="Foram encontrados demasiados resultados, por favor refine a pesquisa";}
s$(g_qparams.div_matches).innerHTML=((_msg!="")?smaps_msg_results('warning.gif',_msg):"")+"<div><ol>"+points+"</ol></div>"+
((_msg2!="")?smaps_msg_results('warning.gif',_msg2):"");if(g_qparams.tipo_query>0){s$("pesqIten_opcoes").style.display="block";}}else{s$("pesqIten_opcoes").style.display="none";}
smaps_setCursor(1);if(g_qparams.tipo_query===0||upperBound!=1){smaps_refresh();}
if(sortudo){smaps_focus(1,g_qparams.tipo_query===0?zoom:-1);}}
function smaps_submitPesqForm(){if(!g_map_ready){setTimeout(smaps_submitPesqForm,1000);}else{smaps_pesquisa(s$("caixap").value);}}
function smaps_enter_key(evt){if(!evt){evt=window.event;}
var keyCode=evt?(evt.which?evt.which:evt.keyCode):event.keyCode;if(keyCode==13){smaps_submitPesqForm();}}
function submitItenForm(){if(!g_map_ready){setTimeout(submitItenForm,1000);}else{limpa_percurso_anterior();smaps_pesq_partida();}}
function smaps_setCursor(flag){if(flag==1){document.body.style.cursor="default";}else if(flag==2){document.body.style.cursor="wait";}}
function smaps_pagingControl(size){try{size=Math.ceil(size/g_results_per_win);switch(size){case 1:s$(g_qparams.div_pages).style.display="none";break;case 2:s$(g_qparams.div_pages).style.display="block";s$(g_qparams.div_pg+'1').style.visibility="visible";s$(g_qparams.div_pg+'2').style.visibility="visible";s$(g_qparams.div_pg+'3').style.visibility="hidden";s$(g_qparams.div_pg+'4').style.visibility="hidden";break;case 3:s$(g_qparams.div_pages).style.display="block";s$(g_qparams.div_pg+'1').style.visibility="visible";s$(g_qparams.div_pg+'2').style.visibility="visible";s$(g_qparams.div_pg+'3').style.visibility="visible";s$(g_qparams.div_pg+'4').style.visibility="hidden";break;case 4:s$(g_qparams.div_pages).style.display="block";s$(g_qparams.div_pg+'1').style.visibility="visible";s$(g_qparams.div_pg+'2').style.visibility="visible";s$(g_qparams.div_pg+'3').style.visibility="visible";s$(g_qparams.div_pg+'4').style.visibility="visible";break;default:break;}
s$(g_qparams.div_pg_ant).style.visibility=(g_matches_index>1)?"visible":"hidden";s$(g_qparams.div_pg_seg).style.visibility=(g_matches_index<size)?"visible":"hidden";}catch(e){}}
function smaps_dim_markers(dont_dim_markers_selected,exclude_index){var tmp_a_pontos=g_a_pontos;var tmp_num_pontos=g_num_pontos;g_num_pontos=0;g_a_pontos=[];smaps_dbg("smaps_dim_markers "+dont_dim_markers_selected?1:0);smaps_dbg(g_layers_call_count);for(var i=0;i<tmp_a_pontos.length;i++){if(tmp_a_pontos[i].obj.options.layers_call_count&&(g_layers_call_count-tmp_a_pontos[i].obj.options.layers_call_count<50)){g_a_pontos[g_num_pontos]=tmp_a_pontos[i];g_num_pontos++;}else if(tmp_a_pontos[i].obj.options.guid){g_a_pontos_hash_map[tmp_a_pontos[i].obj.options.guid]=false;}else if((exclude_index===i)||tmp_a_pontos[i].obj.options.permanent||(dont_dim_markers_selected&&tmp_a_pontos[i].obj.options.selected)){g_a_pontos[g_num_pontos]=tmp_a_pontos[i];g_num_pontos++;}}
smaps_dbg("g_num_pontos");smaps_dbg(g_num_pontos);}
function smaps_close_markers(){for(var i=0;i<g_a_pontos.length;i++){if(g_a_pontos[i].obj.options.opened){smaps_esconde(i);}}}
function smaps_dim_markers_category(category){var tmp_a_pontos=g_a_pontos;var tmp_num_pontos=g_num_pontos;g_num_pontos=0;g_a_pontos=[];smaps_dbg("smaps_dim_markers_category");for(var i=0;i<tmp_a_pontos.length;i++){if(tmp_a_pontos[i].obj.options.category!==category){g_a_pontos[g_num_pontos]=tmp_a_pontos[i];g_num_pontos++;}else if(tmp_a_pontos[i].obj.options.guid){g_a_pontos_hash_map[tmp_a_pontos[i].obj.options.guid]=false;}}
smaps_dbg("g_num_pontos");smaps_dbg(g_num_pontos);timer_smaps_map_pontos();}
function show_results(){if(g_locator_widget){s$(g_qparams.div_results).style.visibility="visible";}else{s$(g_qparams.div_results).style.display="block";s$('iten_voltar').style.display="block";if(g_qparams.tipo_query>0){s$('iten_voltar').style.display="block";}
s$('exPesqMaps').style.display="none";if(g_qparams.tipo_query===0){s$('group1_tab1').style.display="block";s$('group1_tab2').style.display="none";}else{s$('group1_tab2').style.display="block";s$('group1_tab1').style.display="none";}
smaps_dbg("hide_banner");try{s$('gs_pub').style.display="none";}catch(e){}}}
function smaps_hide_results(dont_rotate_banner){smaps_dbg("hide_results "+dont_rotate_banner);if(g_locator_widget){s$(g_qparams.div_results).style.visibility="hidden";}else{if(g_qparams.tipo_query===0){s$("iten_results").style.display="none";s$("results").style.display="none";try{s$("pdfdiv").style.display="none";}catch(e){}}}
s$(g_qparams.div_pg_ant).style.visibility="hidden";s$(g_qparams.div_pg+'1').style.visibility="hidden";s$(g_qparams.div_pg+'2').style.visibility="hidden";s$(g_qparams.div_pg+'3').style.visibility="hidden";s$(g_qparams.div_pg+'4').style.visibility="hidden";s$(g_qparams.div_pg_seg).style.visibility="hidden";try{s$('exPesqMaps').style.display="block";s$('group1_tab1').style.display="none";s$('group1_tab2').style.display="none";if(!dont_rotate_banner){if(g_qparams.tipo_query===0){activa_banner();smaps_stats("mapa","limpaResultados","");}}}catch(e){}}
function smaps_photo(nome,url){s$('photo_div').style.visibility="visible";s$('photo_frame').innerHTML="<center><a href='"+url+"' target='_blank'><img id='photo_img' src='"+url+"' title='Ampliar'/></a><br/>"+nome+"<br/><a class='gs_ok' href='#' onclick='close_photo()' style='float:none'>&nbsp;Fechar </a></center>";}
function close_photo(){s$('photo_div').style.visibility="hidden";}
function lTrim(value){var re=/\s*((\S+\s*)*)/;return value.replace(re,"$1");}
function rTrim(value){var re=/((\s*\S+)*)\s*/;return value.replace(re,"$1");}
function smaps_trim(value){return lTrim(rTrim(value));}
function smaps_continente(){navigate_to_async(g_pt_view.y,g_pt_view.x,17-g_pt_view_zoom);smaps_stats("mapa","Continente","");}
function smaps_acores(){navigate_to_async(38.30,-28.0,12);smaps_stats("mapa","Acores","");}
function smaps_acores_W(){navigate_to_async(39.52923,-31.15977,9);smaps_stats("mapa","Acores_ocidental","");}
function smaps_acores_cent(){navigate_to_async(38.68878,-28.10579,10);smaps_stats("mapa","Acores_central","");}
function smaps_acores_E(){navigate_to_async(37.44683,-25.4002,10);smaps_stats("mapa","Acores_oriental","");}
function smaps_madeira(){navigate_to_async(32.80484,-16.87739,9);smaps_stats("mapa","Madeira","");}
function get_sec1970(){var d=new Date();d=(d.valueOf())/1000;d=Math.floor(d);return d;}
function muda_iten(){var modo;for(var i=0;i<=2;i++){if(s$("SearchForm_iten_radios").tipocam2[i].checked){modo=s$("SearchForm_iten_radios").tipocam2[i].value;}}
s$('iten_resumo').style.display="none";smaps_itenerario(modo);}
function smaps_stats(){}
function roda_banner_if_visible(){}
function roda_banner(){}
function activa_banner(){}
function mostra_banner_agora(){}
function smaps_wheel(delta,event){if(delta<0){smaps_zoomout();}else{if(g_ie)center_map(event);else smaps_zoomin();}}
function wheel(event){if(!smaps_mouse_wheel){event.returnValue=true;}
var delta=0;if(!event){event=window.event;}
if(event.wheelDelta){delta=event.wheelDelta/120;}else if(event.detail){delta=-event.detail/3;}
if(delta){smaps_wheel(delta,event);}
if(event.preventDefault){event.preventDefault();}
event.returnValue=false;}
function smaps_page_dim(){var x,y;if(self.innerHeight)
{x=self.innerWidth;y=self.innerHeight;}
else if(document.documentElement&&document.documentElement.clientHeight)
{x=document.documentElement.clientWidth;y=document.documentElement.clientHeight;}
else if(document.body)
{x=document.body.clientWidth;y=document.body.clientHeight;}
this.width=x;this.height=y;}
String.prototype.capitalize=function(){return this.replace(/\w+/g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase();});};svg_power_on_nodes=function(){var SVG={root:'svg',ns:'http://www.w3.org/2000/svg',elements:['a','animate','animateColor','animateMotion','animateTransform','circle','defs','desc','ellipse','font-face','font-face-name','font-face-src','g','glyph','hkern','image','linearGradient','line','metadata','missing-glyph','mpath','path','polygon','polyline','radialGradient','rect','set','stop','switch','text','title','use'],attributes:['accent-height','accumulate','additive','alphabetic','arabic-form','ascent','attributeName','attributeType','baseProfile','bbox','begin','by','calcMode','cap-height','class','color','color-rendering','content','cx','cy','d','descent','display','dur','end','fill','fill-rule','font-family','font-size','font-stretch','font-style','font-variant','font-weight','from','fx','fy','g1','g2','glyph-name','hanging','height','horiz-adv-x','horiz-origin-x','id','ideographic','k','keyPoints','keySplines','keyTimes','lang','mathematical','max','min','name','offset','opacity','origin','overline-position','overline-thickness','panose-1','path','pathLength','points','preserveAspectRatio','r','repeatCount','repeatDur','requiredExtensions','requiredFeatures','restart','rotate','rx','ry','slope','stemh','stemv','stop-color','stop-opacity','strikethrough-position','strikethrough-thickness','stroke','stroke-dasharray','stroke-dashoffset','stroke-linecap','stroke-linejoin','stroke-miterlimit','stroke-width','style','systemLanguage','target','text-anchor','to','transform','type','u1','u2','underline-position','underline-thickness','unicode','unicode-range','units-per-em','values','version','viewBox','visibility','width','widths','x','x-height','x1','x2','y','y1','y2','zoomAndPan','stroke-opacity','fill-opacity']};function deepcopy(module,source,dest,nsmap){for(var i=0;i<source.attributes.length;i++){var oldattr=source.attributes[i];var colon=oldattr.name.indexOf(':');if(colon==-1){for(var j=0;j<module.attributes.length;j++){if(module.attributes[j].toLowerCase()!=oldattr.name){continue;}
dest.setAttribute(module.attributes[j],oldattr.value);break;}}else{var prefix=oldattr.name.slice(0,colon);var name=oldattr.name.slice(colon+1);if(prefix=='xmlns'){var oldmap=nsmap;nsmap={};for(var property in oldmap){nsmap[property]=oldmap[property];}
nsmap[name]=oldattr.value;}else{for(var ns in nsmap){if(ns==prefix){dest.setAttributeNS(nsmap[prefix],name,oldattr.value);}}}}}
var newchild;for(i=0;i<source.childNodes.length;i++){var oldchild=source.childNodes[i];if(oldchild.nodeType==1){for(j=0;j<module.elements.length;j++){if(module.elements[j].toUpperCase()!=oldchild.nodeName){continue;}
newchild=document.createElementNS(module.ns,module.elements[j]);deepcopy(module,oldchild,newchild,nsmap);dest.appendChild(newchild);break;}}else if(oldchild.nodeType==3){newchild=document.createTextNode(oldchild.nodeValue);dest.appendChild(newchild);}}}
var modules=[SVG];for(var i=0;i<modules.length;i++){var module=modules[i];var roots=document.getElementsByTagName(module.root);for(var j=0;j<roots.length;j++){var source=roots[j];if(document.createElementNS){if(source.__proto__!=HTMLUnknownElement.prototype){continue;}
if(source.getAttribute('xmlns')!=module.ns){continue;}
var dest=document.createElementNS(module.ns,module.root);deepcopy(module,source,dest,{});source.parentNode.insertBefore(dest,source);source.parentNode.removeChild(source);}else{var img=document.createElement('img');img.src=module.root+' image';img.title=module.root+' image';source.parentNode.insertBefore(img,source);}}}};function smaps_copy(inElement){if(inElement.createTextRange){var range=inElement.createTextRange();if(range){range.execCommand('Copy');}}else{var flashcopier='flashcopier';if(!document.getElementById(flashcopier)){var divholder=document.createElement('div');divholder.id=flashcopier;document.body.appendChild(divholder);}
document.getElementById(flashcopier).innerHTML='';var divinfo='<embed id="fla" src="'+g_css_server+'/Assets/Maps/_clipboard.swf" FlashVars="clipboard='+encodeURIComponent(inElement.value)+'" width="0" height="0" type="application/x-shockwave-flash"></embed>';document.getElementById(flashcopier).innerHTML=divinfo;}}
g_tiles_layout={params:{extents:{y1:-1.5538711096309215E7,y2:1.5538711096309219E7,x1:-2.0037508342789244E7,x2:2.0037508342789244E7,coord_sys:"wgs84_latlon",web_map_coord_sys:"mercator_sphere"},location:{id:"PT_R3p1",wms_coord_sys:"mercator_sphere",pixels:500,request_pixels:2000,no_inset_zoom:9,max_zoom:1,zoom0_resolution:0.5,num_insets:5,name:"Portugal",insets:[{desc:"0",y1:36.909932,y2:42.15832,x1:-9.53718,x2:-6.168897,y1w:4426559.8943102155,y2w:5184724.593718397,x1w:-1061674.0212037927,x2w:-686718.4727961529},{desc:"1",y1:32.58705,y2:33.12639,x1:-17.29485,x2:-16.27719,y1w:3840619.1612522407,y2w:3912092.163366932,x1w:-1925253.8953460476,x2w:-1811968.5023453648},{desc:"2",y1:39.35359,y2:39.73596,x1:-31.26338,x2:-31.08339,y1w:4772447.609596271,y2w:4827646.565692395,x1w:-3480223.5420766133,x2w:-3460187.146928732},{desc:"3",y1:38.22869,y2:39.10171,x1:-28.77118,x2:-27.04117,y1w:4611782.603200273,y2w:4736251.146671323,x1w:-3202793.1071216166,x2w:-3010209.2748543457},{desc:"4",y1:36.92642,y2:37.91283,x1:-25.87564,x2:-25.0,y1w:4428855.64067201,y2w:4567118.923522131,x1w:-2880463.068750061,x2w:-2782987.269831839}]}},tiles:{x1:-2.0037508342789244E7,y1:-1.5538711096309215E7,x2:2.0037508342789244E7,y2:1.5538711096309219E7,unit_meters:0,num_zooms:13,zooms:[{level:12,tiles_x:40,tiles_y:32,length_tile:1024000.0},{level:11,tiles_x:80,tiles_y:64,length_tile:512000.0},{level:10,tiles_x:160,tiles_y:124,length_tile:256000.0},{level:9,tiles_x:316,tiles_y:244,length_tile:128000.0},{level:8,tiles_x:628,tiles_y:488,length_tile:64000.0},{level:7,tiles_x:1256,tiles_y:972,length_tile:32000.0},{level:6,tiles_x:2508,tiles_y:1944,length_tile:16000.0},{level:5,tiles_x:5012,tiles_y:3888,length_tile:8000.0},{level:4,tiles_x:10020,tiles_y:7772,length_tile:4000.0},{level:3,tiles_x:20040,tiles_y:15540,length_tile:2000.0},{level:2,tiles_x:40076,tiles_y:31080,length_tile:1000.0},{level:1,tiles_x:80152,tiles_y:62156,length_tile:500.0},{level:0,tiles_x:160304,tiles_y:124312,length_tile:250.0}]}};
SAPO.Exception=function(className)
{if(className){this.init(className);}};SAPO.Exception.prototype={init:function(className)
{try{this.uri='http://services.sapo.pt/Broker/JSExceptionLog';this.errorHandle=false;this.script=false;this.stoReq=false;this.timeoutToClear=3000;this.className=className||false;}catch(e){}},log:function(errorHandle,method)
{return;var errorObj=this.parseErrorHandle(errorHandle);var queryString='';queryString+='?type='+encodeURIComponent(errorObj.type);if(errorObj.className){if(method&&typeof(method)!='undefined'){queryString+='&class='+encodeURIComponent(errorObj.className+'->'+method);}else{queryString+='&class='+encodeURIComponent(errorObj.className);}}
if(errorObj.url){queryString+='&url='+encodeURIComponent(errorObj.url);}
if(errorObj.message){queryString+='&message='+encodeURIComponent(errorObj.message);}
if(errorObj.name){queryString+='&name='+encodeURIComponent(errorObj.name);}
if(errorObj.line){queryString+='&line='+encodeURIComponent(errorObj.line);}
if(errorObj.file){queryString+='&file='+encodeURIComponent(errorObj.file);}
if(errorObj.stack){queryString+='&stack='+encodeURIComponent(errorObj.stack);}
var uri=this.uri+queryString+'&randNum='+Math.round(1000000*Math.random());this.createScriptTag(uri);return(false);},parseErrorHandle:function(errorHandle)
{var errorObj={type:false,className:this.className||false,url:location.href,message:false,name:false,line:false,stack:false,file:false,creation:false};if(typeof(errorHandle)=='string'){errorObj.type='application';errorObj.message=errorHandle;}else if(typeof(errorHandle)=='object'){errorObj.type='library';if(typeof(errorHandle.name)!='undefined'){errorObj.name=errorHandle.name;}
if(typeof(errorHandle.message)!='undefined'){errorObj.message=errorHandle.message;}
if(typeof(errorHandle.line)!='undefined'||typeof(errorHandle.lineNumber)!='undefined'||typeof(errorHandle.number)!='undefined'){errorObj.line=errorHandle.line||errorHandle.lineNumber||errorHandle.number;}
if(typeof(errorHandle.sourceURL)!='undefined'||typeof(errorHandle.fileName)!='undefined'){errorObj.file=errorHandle.sourceURL||errorHandle.fileName;}
if(typeof(errorHandle.stack)!='undefined'){errorObj.stack=errorHandle.stack;}}
return errorObj;},createScriptTag:function(uri)
{try{this.script=document.createElement('SCRIPT');this.script.type='text/javascript';this.script.src=uri;this.script.charset='utf-8';document.getElementsByTagName('HEAD')[0].appendChild(this.script);this.callBack();}catch(e){}},removeScriptTag:function()
{if(this.script){this.script.parentNode.removeChild(this.script);this.script=null;}},callBack:function()
{this.stoReq=setTimeout(function(){this.removeScriptTag();if(this.stoReq){clearTimeout(this.stoReq);}}.bindObj(this),this.timeoutToClear);}};
if(!SAPO.Widget||typeof(SAPO.Widget)=='undefined'){SAPO.namespace('Widget');}
SAPO.Widget.Thumbs=function(options)
{if(SAPO.Exception&&typeof(SAPO.Exception)!='undefined'){this.exception=new SAPO.Exception('SAPO::Widget.Thumbs');}else{this.exception=false;}
if(options!='undefined'){this.init(options);}else{this.init({});}};SAPO.Widget.Thumbs.prototype={init:function(options)
{options=Object.extend({url:false,targetUrl:false,mail:false,ondemand:false,type:'thumbnail',instance:false,savetxt:'Guardar',timeout:"10",longdelay:"5",shortdelay:"1",notop:"0",size:0,divid:false},arguments[0]||{});try{this.options=options;}catch(e){if(this.exception){this.exception.log(e);}}
if(window.location.protocol=='https:'){this.protocol='https://ssl.sapo.pt/';}else{this.protocol='http://';}
if(options.instance===false){this.instance=Math.round(10000*Math.random());var cmd='pdf'+this.instance+'=this';eval(cmd);}
this.type=options.type;this.req=0;this.limitReq=100;this.stoReq=false;this.errorReq=0;this.limitErrorReq=10;this.stoErrorReq=false;this.rand=Math.round(10000*Math.random());this.jsonName='json'+this.rand;this.urlJSON=false;this.urlObject=false;this.u=options.targetUrl?options.targetUrl:options.url;this.notop=options.notop;this.timeout=options.timeout;this.longdelay=options.longdelay;this.shortdelay=options.shortdelay;if(options.url.length>0&&options.type=='pdf'){this.mail=options.mail;var html='<div class="pdfthumb">';html+='<div id="hiddenelement'+this.rand+'" style="display:none"></div>';html+='<div id="element'+this.rand+'" style="display:inline;height:20px;width:60px"></div>';html+='</div>';if(options.divid){document.getElementById(options.divid).innerHTML=html;}
else
{document.write(html);}
this.hiddenelement=document.getElementById('hiddenelement'+this.rand);this.element=document.getElementById('element'+this.rand);if(options.ondemand){this.element.innerHTML='<a href="javascript:pdf'+this.instance+'.renderObject()"><img src="'+this.protocol+'js.sapo.pt/Assets/Images/Thumbs/pdf.png" border="0">Gerar PDF</a>';return;}}
if(options.url.length>0&&options.type=='thumbnail'){this.dimensions={0:[68,50],1:[111,82],2:[150,112],3:[200,150],4:[250,187],5:[300,225],6:[400,300]};this.w=this.dimensions[options.size][0];this.h=this.dimensions[options.size][1];this.f=options.size;html='<div class="webthumb">';html+='<div id="hiddenelement'+this.rand+'" style="display:none;height:'+this.h+'px;width:'+this.w+'px"></div>';html+='<div id="element'+this.rand+'" style="display:inline;height:'+this.h+'px;width:'+this.w+'px"></div>';html+='</div>';if(options.divid){document.getElementById(options.divid).innerHTML=html;}
else
{document.write(html);}}
this.hiddenelement=document.getElementById('hiddenelement'+this.rand);this.element=document.getElementById('element'+this.rand);this.renderObject();},sendMail:function(urlObject,url,id)
{mail=document.getElementById('mail'+id).value;form=document.getElementById('mf'+id);msg=document.getElementById('msg'+id);form.style.display='none';if(SAPO.Utility.Validator.mail(mail)===false){msg.innerHTML='E-mail inv&aacute;lido';msg.style.display='inline';return false;}
mailscript=document.createElement('SCRIPT');mailscript.type='text/javascript';mailscript.charset='utf-8';mailscript.src=this.protocol+'webthumbs.sapo.pt/mailjson?mail='+mail+'&url='+encodeURIComponent(url)+'&referer='+encodeURIComponent(document.URL);document.getElementsByTagName('HEAD')[0].appendChild(mailscript);msg.innerHTML='PDF enviado por mail';msg.style.display='inline';return false;},renderObject:function()
{this.setUrl();this.createScriptTag();this.deb=true;},setUrl:function()
{if(!this.u.match(/^http:\/\/|^https:\/\//i)){this.u='http://'+this.u;}
if(this.type=='pdf'){this.urlJSON=this.protocol+'webthumbs.sapo.pt/pdfjson?url='+encodeURIComponent(this.u)+'&jsonTag='+this.jsonName+'&rand='+Math.round(10000*Math.random());}
if(this.type=='thumbnail'){this.urlJSON=this.protocol+'webthumbs.sapo.pt/json?size='+this.f+'&url='+encodeURIComponent(this.u)+'&jsonTag='+this.jsonName+'&rand='+Math.round(10000*Math.random());if(this.notop==="1"){this.urlJSON+='&notop=1';}}
this.urlJSON+='&timeout='+this.timeout;this.urlJSON+='&longdelay='+this.longdelay;this.urlJSON+='&shortdelay='+this.shortdelay;},createScriptTag:function()
{this.script=document.createElement('SCRIPT');this.script.type='text/javascript';this.script.charset='utf-8';this.script.src=this.urlJSON;document.getElementsByTagName('HEAD')[0].appendChild(this.script);switch(this.type){case"pdf":this.getPDF();break;case"thumbnail":this.getImage();break;}},getPDF:function()
{try{if(this.req<this.limitReq){this.urlObject=eval(this.jsonName).pdf[0].i;if(eval(this.jsonName).pdf[0].x=='noavail'){this.errorReq++;if(this.errorReq<this.limitErrorReq){this.script.parentNode.removeChild(this.script);this.script=null;this.script=false;eval(this.jsonName).pdf=false;this.req=0;this.onLoading();if(this.stoErrorReq!==false){clearTimeout(this.stoErrorReq);}
this.setUrl();this.stoErrorReq=setTimeout(function(){this.createScriptTag();}.bindObj(this),4000);}else{this.onFail(unescape(this.u));this.script.parentNode.removeChild(this.script);}}else{this.onComplete(this.urlObject,unescape(this.u));this.script.parentNode.removeChild(this.script);}}else{this.onFail(unescape(this.u));this.script.parentNode.removeChild(this.script);}}catch(e){this.req++;if(this.stoReq!==false){clearTimeout(this.stoReq);}
this.stoReq=setTimeout(function(){this.getPDF();}.bindObj(this),100);}},getImage:function()
{try{if(this.req<this.limitReq){this.urlObject=eval(this.jsonName).image[0].i;if(eval(this.jsonName).image[0].x=='noavail'){this.errorReq++;if(this.errorReq<this.limitErrorReq){this.script.parentNode.removeChild(this.script);this.script=null;this.script=false;eval(this.jsonName).image=false;this.req=0;this.onLoading();if(this.stoErrorReq!==false){clearTimeout(this.stoErrorReq);}
this.setUrl();this.stoErrorReq=setTimeout(function(){this.createScriptTag();}.bindObj(this),4000);}else{this.onComplete(this.urlObject,unescape(this.u),eval(this.jsonName).image[0].w);this.script.parentNode.removeChild(this.script);}}else{this.onComplete(this.urlObject,unescape(this.u),eval(this.jsonName).image[0].w);this.script.parentNode.removeChild(this.script);}}else{this.urlObject=this.protocol+'js.sapo.pt/Assets/Images/Thumbs/noavail_'+this.f+'.gif';this.onComplete(this.urlObject,unescape(this.u),0);this.script.parentNode.removeChild(this.script);}}catch(e){this.req++;if(this.stoReq!==false){clearTimeout(this.stoReq);}
this.stoReq=setTimeout(function(){this.getImage();}.bindObj(this),100);}},debug:function(txt)
{if(this.deb){document.getElementById('debug').innerHTML+=txt+'<br/>';}},onLoading:function()
{switch(this.type){case"pdf":this.element.innerHTML='<img src="'+this.protocol+'js.sapo.pt/Assets/Images/Thumbs/mkpdf.png">A gerar PDF';break;case"thumbnail":var load='<img width='+this.w+' style="border:2px dotted #DCDDD5;background-color:#eee" height='+this.h+' src="'+this.protocol+'js.sapo.pt/Assets/Images/Thumbs/bigwheel_'+this.f+'.gif" alt="loading" />';this.element.innerHTML=load;break;}},onComplete:function(urlObject,url,failover)
{switch(this.type){case"pdf":if(this.mail){this.hiddenelement.innerHTML='<a href="'+urlObject+'"><img src="'+this.protocol+'js.sapo.pt/Assets/Images/Thumbs/pdf.png" border="0">'+this.options.savetxt+'</a><img OnClick="getElementById(\'mf'+this.instance+'\').style.display=\'inline\';getElementById(\'msg'+this.instance+'\').style.display=\'none\';" src="'+this.protocol+'js.sapo.pt/Assets/Images/Thumbs/enviar.gif" border="0"><form style="display:none" id="mf'+this.instance+'" action="" method="post" onsubmit="pdf'+this.instance+'.sendMail(\''+urlObject+'\',\''+url+'\',\''+this.instance+'\');return false;"><input id="mail'+this.instance+'" type="text" size="15" name="m" value="e-mail de destino" style="color:#c0c0c0" autocomplete="off" onfocus="this.value=\'\';this.style.color=\'black\';"></form><div id="msg'+this.instance+'" style="display:inline"><a href="#" onClick="getElementById(\'mf'+this.instance+'\').style.display=\'inline\';getElementById(\'msg'+this.instance+'\').style.display=\'none\';return false;">Enviar por E-Mail</div>';}
else
{this.hiddenelement.innerHTML='<a href="'+urlObject+'"><img src="'+this.protocol+'js.sapo.pt/Assets/Images/Thumbs/pdf.png" border="0">'+this.options.savetxt+'</a>';}
break;case"thumbnail":var link=document.createElement("a");link.setAttribute('href',this.u);link.setAttribute('target','_new');var scriptElement=document.createElement("img");scriptElement.src=urlObject.replace(/http\:\/\//,this.protocol);scriptElement.width=this.w;scriptElement.height=this.h;scriptElement.style.position='relative';scriptElement.style.left='0px';scriptElement.style.top='0px';if(failover===0){scriptElement.style.border='1px dotted #000000';}
else
{scriptElement.style.border='1px dotted #FFFF00';}
link.appendChild(scriptElement);this.hiddenelement.appendChild(link);break;}
this.switchDivs();},onFail:function(url)
{this.hiddenelement.innerHTML='<img src="'+this.protocol+'js.sapo.pt/Assets/Images/Thumbs/warning.png">Ocorreu um erro';this.switchDivs();},switchDivs:function(){this.hiddenelement.style.display='inline';this.element.parentNode.replaceChild(this.hiddenelement,this.element);}};
function showImage(img){return(function(){img.style.display='inline';});}
if(!SAPO.Widget||typeof(SAPO.Widget)=='undefined'){SAPO.namespace('Widget');}
SAPO.Widget.Maps=function(options)
{if(SAPO.Exception&&typeof(SAPO.Exception)!='undefined'){this.exception=new SAPO.Exception('SAPO::Widget.Maps');}else{this.exception=false;}
if(options!='undefined'){this.init(options);}else{this.init({});}};SAPO.Widget.Maps.prototype={init:function(options)
{options=Object.extend({divid:false,mapcss:false,width:800,height:500,top:10,left:10,bottom:10,right:10,tabheight:20,markers:{},selfrender:false,align:'left',instance:false,maxdesc:90,scrollbar_safe_size:30},arguments[0]||{});SAPO.logReferer('http://js.sapo.pt/SAPO/Widget/Maps/1');var screen_size=new smaps_page_dim();if(options.divid&&!options.width&&!options.height){var spot=document.getElementById(options.divid);options.width=(spot.style.width)?parseInt(spot.style.width):screen_size.width-options.scrollbar_safe_size;options.height=(spot.style.height)?parseInt(spot.style.height):screen_size.height-options.scrollbar_safe_size;}
var width=options.width;var height=options.height;options.width-=options.left+options.right;options.height-=options.bottom+options.top+options.tabheight;var default_css={'#outsidesmaps':{'overflow':'hidden','width':width+'px','height':height+'px','margin':'0 0 0 0','padding':'0 0 0 0','float':options.align},'#smapa':{'position':'relative','top':options.top+'px','left':options.left+'px','right':options.right+'px','bottom':options.bottom+'px','width':options.width+'px','height':(options.height+options.tabheight)+'px','padding':'0 0 0 0','background-color':'white'},'#smapa .tab':{'height':options.tabheight+'px','font-family':'verdana','font-size':'1.1em','overflow':'hidden'},'#smapa .map_pin':{'position':'absolute','top':'-2px','left':'20px','margin':'2px 0 0 0','border':'1px solid black','padding-left':'2px','padding-right':'2px','background-color':'#eeeeee','font-weight':'bold','font-size':'0.8em','color':'#484848','font-family':'verdana','white-space':'nowrap'}};try{this.options=options;}catch(e){if(this.exception){this.exception.log(e);}}
if(options.instance===false){this.instance=Math.round(10000*Math.random());var cmd='maps'+this.instance+'=this';eval(cmd);}
if(this.options.mapcss===false){SAPO.Utility.CSS.set(default_css);this.options.mapcss='smapa';}
if(this.options.selfrender===true){cmd='maps'+this.instance+'.renderMap()';eval(cmd);}},renderMap:function(){var Markers=this.options.markers;if(!Markers.mapa){if(this.options.divid===false){document.write("<div id='outsidesmaps'><div id='"+this.options.mapcss+"'></div></div>");var cssdiv=document.getElementById(this.options.mapcss);}
else
{var spot=document.getElementById(this.options.divid);var framediv=document.createElement('div');framediv.setAttribute('id','outsidesmaps');var cssdiv=document.createElement('div');cssdiv.setAttribute('id',this.options.mapcss);framediv.appendChild(cssdiv);spot.appendChild(framediv);}
if(this.options.maptitle){var title=document.createElement('div');title.className="tab";title.innerHTML=this.options.maptitle;cssdiv.appendChild(title);}
if(Markers.map_options===undefined){Markers.map_options={};}
Markers.map_options.divid=this.options.mapcss;Markers.map_options.render_opts={size:{width:this.options.width,height:this.options.height}};Markers.mapa=new SAPO.Geo.Map(Markers.map_options);}
var lat_center,lon_center,min_lat,max_lat,min_lon,max_lon;var count=0;if(Markers.rss!==undefined&&Markers.rss!==null){for(var i=0;i<Markers.rss.channel.item.length;i++){var mk=Markers.rss.channel.item[i];var lat,lon;if(mk['georss:point']){var args=mk['georss:point'].value.split(" ");lat=args[0];lon=args[1];}else{lat=mk['geo:lat'];lon=mk['geo:lon'];}
var content_parent=mk;if(mk['media:group']){content_parent=mk['media:group'];}
var cont=content_parent['media:thumbnail'];if(!cont){cont=content_parent['media:content'];if(cont&&cont['media:thumbnail']){cont=cont['media:thumbnail'];}}
var icon_url,icon_w,icon_h;if(cont){icon_url=cont['url'];icon_w=cont['width'];icon_h=cont['height'];if(icon_w>200){icon_h=icon_h*200/icon_w;icon_w=200;}}
if(i===0){lat_center=lat;lon_center=lon;min_lat=lat;max_lat=lat;min_lon=lon;max_lon=lon;}else{lat_center=lat_center+lat;lon_center=lon_center+lon;if(lat>max_lat){max_lat=lat;}
if(lat<min_lat){min_lat=lat;}
if(lon>max_lon){max_lon=lon;}
if(lon<min_lon){min_lon=lon;}}
if(!lat||!lon){continue;}
count++;var icon={},icon_selected={};if(icon_url&&icon_w&&icon_h){icon={image:icon_url,iconSize:{width:icon_w,height:icon_h},infoWindowAnchor:{x:parseInt(icon_w/2),y:parseInt(icon_h/2)},iconAnchor:{x:parseInt(icon_w/2),y:0}};icon_selected=icon;}
if(typeof(Markers.icon)!="undefined"){icon=Object.extend(Markers.icon,icon);}
if(typeof(Markers.icon_selected)=="undefined"){icon_selected.image=smaps_const.img_marca_sel;}else{icon_selected=Object.extend(Markers.icon_selected,icon_selected);}
if(icon_selected.display_titles){icon_selected.title="<img border='0' src='"+icon_selected.image+"'/><span class='map_pin'>"+mk.title+"</span>";}
var full_desc=mk.description;if(mk.link&&mk.link.length>0){if(!mk.description||mk.description.length===0){mk.description="»";}
full_desc=mk.description.substring(0,this.options.maxdesc)+"<br/><a href='"+mk.link+"' target='_blank'>Site...</a>";}
var marker_opts={icon:icon,title:mk.title,icon_selected:icon_selected,permanent:true,selected:true,opened:false,visibility_fn:mk.visibility_fn};Markers.mapa.addMarker(lat,lon,marker_opts,full_desc);}}
if(count>0&&(!Markers.map_options.lat)){lat_center=lat_center/count;lon_center=lon_center/count;var largura=lon_degrees_2_meters(max_lon-min_lon);var tmp=lat_degrees_2_meters(max_lat-min_lat);if(tmp>largura){largura=tmp;}
Markers.mapa.map.setCenterAndWidth(new GLatLng(lat_center,lon_center),largura*2);Markers.map_options.lat=Markers.map_options.lon=0;}
if(!Markers.mapa.map.isRendered()){Markers.mapa.map.render();}else{Markers.mapa.map.refresh();}},addRSSMarkers:function(rss,callback_name){smaps_getRSS_Markers(rss,callback_name);},addRSSMarkersWithXSL:function(rss,callback_name,xsl){smaps_getRSS_Markers_xsl(rss,callback_name,xsl);},clearMarkers:function(refresh){smaps_del_markers();if(refresh){smaps_refresh();}else{timer_smaps_map_pontos();}},activateMarkerMode:function(){smaps_estou_aqui();},disableDefaultLayers:function(){smaps_default_layers_active=false;},enableDefaultLayers:function(){smaps_default_layers_active=true;},addRSSlayer:function(key,rss,callback_name,xsl_optional,expires_sec,zoom_required){smaps_addRSS_Markers_xsl_byRadius(key,rss,callback_name,xsl_optional,expires_sec,zoom_required);smaps_refresh_layers();},removeRSSLayer:function(key){if(smaps_rss_layers[key])
smaps_rss_layers[key]=null;},disableMouseWheel:function(){smaps_mouse_wheel=false;},enableMouseWheel:function(){smaps_mouse_wheel=true;},onResize:function(autoSize){this.destroy_map();if(autoSize){this.options.width=0;this.options.height=0;}
this.init(this.options);},destroy_map:function(){this.options.mapcss=false;Markers=this.options.markers;Markers.map_options.lat=Markers.mapa.getLatitude();Markers.map_options.lon=Markers.mapa.getLongitude();Markers.map_options.zoom=Markers.mapa.getZoom();Markers.mapa=null;Markers.rss=null;s$(this.options.divid).innerHTML="";},refreshMarkers:function(){timer_smaps_map_pontos();}};
var $=YAHOO.util.Dom.get;ContextMenu={yDom:YAHOO.util.Dom,yEvent:YAHOO.util.Event,_active:false,_dialog_on:false,_result_on:false,findElement:function(event,tagName)
{var element=event.target||event.srcElement;while(element.parentNode&&(!element.tagName||(element.tagName.toUpperCase()!=tagName.toUpperCase()))){element=element.parentNode;}
return element;},showContextMenu:function(campo,result)
{this.yEvent.removeListener(document,'mouseup',this.hideContextMenu,this,true);var context=$("context");var mais_q=$("mais_q");context.setAttribute('s:result',result);if(this._active){context.style.display='none';mais_q.style.display='none';this._active=false;}
new Image().src='http://pesquisa.sapo.pt/static/CM/';$("ct_newwin").href=$("ttl_"+result).href;$("ct_tags").href="http://tags.sapo.pt/post?v=3&url="+$("ttl_"+result).href+"&title="+SAPO.Utility.String.stripTags($("ttl_"+result).innerHTML)+"&tags="+$("id_q").value;var ss_hosts=['ct_search','ss_host','as_sitesearch'];var host=$("ttl_"+result).getAttribute('s:host');$("ss_host").innerHTML=host;$("ct_search").innerHTML=host;$("as_sitesearch").value=host;$('sendmail_link').value=$("ttl_"+result).href;$('sendmail_keywords').value=$("id_q").value;$('sendmail_title').value=SAPO.Utility.String.stripTags($("ttl_"+result).innerHTML);$("ssq").value=$("id_q").value+' ';var context=$('context');var pos=this.yDom.getXY(campo);context.style.display='block';context.style.left=(parseInt(pos[0],10)+(-6))+'px';context.style.top=(parseInt(pos[1],10)+(-12))+'px';this.yEvent.addListener(document,'mouseup',this.hideContextMenu,this,true);setTimeout(function(){this._active=true;}.bindObj(this),300);},hideContextMenu:function(e,teste)
{if(this._active){this.yEvent.removeListener(document,'mouseup',this.hideContextMenu,this,true);var context=$('context');var mais_q=$('mais_q');if(typeof(teste)!='undefined'&&teste===true){this.yEvent.removeListener(document,'mouseup',this.hideContextMenu,this,true);context.style.display='none';if(mais_q.style.display!='none'){mais_q.style.display='none';}
if(this._dialog_on!=false){$(this._dialog_on).style.display='none';this._dialog_on=false;this._result_on=false;}
this._active=false;}else{var elm=this.findElement(e,'DIV');if(elm.id!='context'&&elm.id!='mais_q'){this.yEvent.removeListener(document,'mouseup',this.hideContextMenu,this,true);context.style.display='none';if(mais_q.style.display!='none'){mais_q.style.display='none';}
this._active=false;}
if(this._dialog_on!=false){if(elm.className!='close'){$(this._result_on).setAttribute('s:currentDialog','');this._result_on=false;}
if(elm.parentNode.id!=this._dialog_on){$(this._dialog_on).style.display='none';this._dialog_on=false;this._active=false;this.yEvent.removeListener(document,'mouseup',this.hideContextMenu,this,true);}}}}}};function showDialog(dialog,result,hideOnOut)
{ContextMenu.yEvent.removeListener(document,'mouseup',ContextMenu.hideContextMenu,ContextMenu,true);ContextMenu._dialog_on=false;ContextMenu._active=false;new Image().src='http://pesquisa.sapo.pt/static/CM/D/'+dialog;result=result||$('context').getAttribute('s:result');if(!result){return false;}
var li_obj;if(typeof result=='object'){li_obj=result.parentNode.parentNode.parentNode;$('context').setAttribute('s:result',li_obj.id);}else{li_obj=$(result);}
var curr_dialog=li_obj.getAttribute('s:currentDialog');if(curr_dialog){$(curr_dialog).style.display='none';$('dialog').appendChild($(curr_dialog));li_obj.setAttribute('s:currentDialog','');if(curr_dialog==dialog){return;}}
var show_obj=$(dialog);show_obj.style.display='block';li_obj.appendChild(show_obj);li_obj.setAttribute('s:currentDialog',dialog);var rt_script=$(dialog+'_scr');if(rt_script){if(rt_script.getAttribute('s:type')=='thumbnail'){thumb=new SAPO.Widget.Thumbs({'type':'thumbnail','url':li_obj.getElementsByTagName('A').item(0).href,'size':'6','divid':dialog+'_scr'});}else{thumb=new SAPO.Widget.Thumbs({'type':'pdf','url':li_obj.getElementsByTagName('A').item(0).href,'mail':true,'divid':dialog+'_scr'});}}
if(hideOnOut&&typeof(hideOnOut)!='undefined'){ContextMenu.yEvent.addListener(document,'mouseup',ContextMenu.hideContextMenu,ContextMenu,true);ContextMenu._dialog_on=show_obj.id;ContextMenu._result_on=li_obj.id;setTimeout(function(){ContextMenu._active=true;},300);}}
function runtimeScript(div_id,url)
{var script=document.createElement('SCRIPT');script.type='text/javascript';script.charset='utf-8';script.src=url;$(div_id).appendChild(script);}
function toggle(what)
{ContextMenu.yEvent.removeListener(document,'mouseup',ContextMenu.hideContextMenu,ContextMenu,true);var where=$(what);if(where.style.display=="none"){where.style.display="block";ContextMenu.yEvent.addListener(document,'mouseup',ContextMenu.hideContextMenu,ContextMenu,true);setTimeout(function(){ContextMenu._active=true;},300);}else{where.style.display="none";ContextMenu.yEvent.removeListener(document,'mouseup',ContextMenu.hideContextMenu,ContextMenu,true);}}
function pos_ads()
{var ads_pos=[{'src':'dlleft','dst':'adl'},{'src':'dlright','dst':'sapo_adr'},{'src':'dlbottom','dst':'adb'}];var got_sapo_wide=0;for(i in ads_pos){var dl_obj=$(ads_pos[i].src);if(dl_obj){var dst_c=$(ads_pos[i].dst+'container');if(!dst_c){return;}
dst_c.appendChild(dl_obj);$(ads_pos[i].dst).style.display='block';if(ads_pos[i].dst=='adl'){got_sapo_wide=1;};}}if(!got_sapo_wide&&$('adl')&&$('sponsor_wide')){$('adl').innerHTML=$('sponsor_wide').innerHTML;$('adl').style.display='block';}}
function highlight(what)
{if(what.className=='hover'){what.className='';}else{what.className='hover';}}
function toggleAdvancedSearch()
{$('barra').value='mundial';var ajaxObject={URI:'/rp/imgs/2006/lib/adv.html',DEST:'q_adv',handleSuccess:function(o){$(this.DEST).innerHTML=o.responseText;},startRequest:function(){YAHOO.util.Connect.asyncRequest('GET',this.URI,callback);}};var callback={success:ajaxObject.handleSuccess,failure:ajaxObject.handleFailure,scope:ajaxObject};ajaxObject.startRequest();toggle('q_adv');}
function setCookie(name,value,expires,path,domain,secure){var curCookie=name+"="+escape(value)+
((expires)?"; expires="+expires:"")+
((path)?"; path="+path:"")+
((domain)?"; domain="+domain:"")+
((secure)?"; secure":"");document.cookie=curCookie;}
function getCookie(name){var dc=document.cookie;var prefix=name+"=";var begin=dc.indexOf("; "+prefix);if(begin==-1){begin=dc.indexOf(prefix);if(begin!=0)return null;}else
begin+=2;var end=document.cookie.indexOf(";",begin);if(end==-1)
end=dc.length;return unescape(dc.substring(begin+prefix.length,end));}
function setST(st,op){setCookie('st',st,'Sun, 17-Jan-2038 19:14:07 GMT;','/',document.domain);$('stInfo').innerHTML="Prefer&ecirc;ncia guardada, a op&ccedil;&atilde;o <strong>"+op+"</strong> ser&aacute; usada nas pr&oacute;ximas pesquisas.";}
function obj(o){return document.getElementById(o);}
Event.observe(document,'click',function(evt,foo){var no_changes=1;if($('mapborder'))$('mapborder').style.height='293px';if($('telefone')&&$('telefone').style.display=='block'){if($('telefone').getAttribute('s:visible')==1){$('telefone').style.display='none';no_changes=0;$('telefone').setAttribute('s:visible',0);}else{$('telefone').setAttribute('s:visible',1);}}
var a=Event.findElement(evt,"A");if(typeof(s_sid)=='string'&&no_changes&&typeof(a)!='undefined')lks(a,evt);});function lks(a_obj,evt){var params=[];if(a_obj.href==document.location+"#")return;if(!a_obj.href)return;params.push("u="+escape(a_obj.href));params.push("id="+escape(a_obj.id));params.push("q="+escape(keywords));params.push("ts="+s_timestamp);params.push("sid="+s_sid);params.push("rid="+escape(a_obj.getAttribute("s:rid")));params.push("b="+escape(a_obj.getAttribute("s:b")));params.push("rt="+escape(a_obj.getAttribute("s:title")));params.push("xy="+Event.pointerX(evt)+'x'+Event.pointerY(evt));new Image().src="/clk?"+params.join("&");}
function abrir(){for(var i=0;i<arguments.length;i++){dl=$(arguments[i]);if(dl)dl.style.display='block';}
return false;}
function fechar(id){for(var i=0;i<arguments.length;i++){var obj=document.getElementById(arguments[i]);if(obj!=null)
obj.style.display='none';}
return false;}
var escolhido=null;var containerActualPai='paiLateralContainer';function closeDetails(){$('fotoPai').getElementsByTagName('img')[0].src='http://sl.pt/rp/imgs/2006/img/pai/0.gif';fechar(containerActualPai,'d_logo','d_acti','d_slogan','detalhesHandlerV','detalhesHandlerH','d_paginas','paiVerPdf','paiVerMapa','paiVerFoto','paiVerInfo','mapaPai','fotoPai','infoPai','sendVcard','detalhes_pai');obj("detalhesHandlerH").style.top="4px";obj("detalhesHandlerV").style.bottom='';obj("detalhesHandlerV").style.top='-8px';if(escolhido!=null){escolhido.className='';escolhido=null;}}
function beacon(obj,ev){var rnd=Math.floor(Math.random()*100000000);var site_type=barra=='pbi'?'SAPO%20white':barra=='pai'?'SAPO%20yellow':'SAPO%20WEB%20Yellow';var u='mfinfo.site_language=pt_PT&random='+rnd+'&mfinfo.site_type='+site_type;if(!ev['linkplace']){ev['linkplace']=((barra=='pai')||(barra=='pbi'))?'result.link':'resulttab.text';}
u+='&mfinfo.linktype='+ev['linktype'];u+='&mfinfo.linkplace='+ev['linkplace'];if(barra!='pbi')u+='&mfinfo.show_listingType=business';if(obj['mf'])u+=obj['mf'];var base_url=barra=='pbi'?'http://pbi.pai.pt/moniforce/tracking.html?':'http://www.pai.pt/moniforce/tracking.html?';new Image().src=base_url+u;new Image().src='/static/PAi/action?'+u;}
function resizePaiImg(obj,sx,sy){if(obj.width>sx||obj.height>sy){r=obj.width/obj.height;if(r>1){obj.width=sx;obj.height=sy/r;}
else{obj.width=sx*r;obj.height=sy;}}}
function sendVcard(){$('vCardNumber').disabled=true;$('vCardSend').disabled=true;beacon(curPaiRes,{'linktype':'vcardsms','linkplace':'resulttab.text'});vd=$('vCardData').innerHTML;var uri='/paiRequest/vCard?to='+$('vCardNumber').value+buildVcard(curPaiRes);var ajaxObject={URI:uri,DEST:'vCardMsg',handleSuccess:function(o){$(this.DEST).innerHTML=o.responseText+'<br />';if(o.responseText!='SMS enviado.'){$('vCardNumber').disabled=false;$('vCardSend').disabled=false;}},startRequest:function(){YAHOO.util.Connect.asyncRequest("GET",this.URI,callback);}};var callback={success:ajaxObject.handleSuccess,failure:ajaxObject.handleSuccess,scope:ajaxObject};ajaxObject.startRequest();return false;}
function buildVcard(pR){return'&name='
+SAPO.Utility.Url.base64Encode(pR['name']).replace(/=/g,'')
+'&mainphone='
+SAPO.Utility.Url.base64Encode(pR['mainphone']).replace(/=/g,'')
+'&address='
+SAPO.Utility.Url.base64Encode(pR['postalcode']).replace(/=/g,'');}
function verMapa(){beacon(curPaiRes,{'linktype':'detailmap','linkplace':'resulttab.text'});fechar('fotoPai','infoPai');abrir('mapaPai');}
function verInfo(){beacon(curPaiRes,{'linktype':'detailtext','linkplace':'resulttab.text'});fechar('fotoPai','mapaPai');abrir('infoPai');}
function verFoto(){beacon(curPaiRes,{'linktype':'detailphoto','linkplace':'resulttab.text'});if(obj('fotoPai').getAttribute('foto')!=''){obj('fotoPai').innerHTML='<img src="'+obj('fotoPai').getAttribute('foto')+'" alt="Fotografia" onload="resizePaiImg( this, 300, 293 )"/>'}
fechar('infoPai','mapaPai');abrir('fotoPai');}
function paiOver(obj){if(escolhido!=obj)obj.className='over';}
function paiOut(obj){if(escolhido!=obj)obj.className='';}
var lastNmr;function tlf(nmr,paiData,fax,pbi){if(lastNmr!=nmr){beacon(paiData,{'linktype':(fax?'showfaxnumber':'showphonenumber')});}
lastNmr=nmr;var hnmr;hnmr=(fax==1)?paiData['faxNumber']:paiData['mainphone'];if(hnmr&&(hnmr!=nmr.getAttribute('s:tlf'))){nmr.innerHTML=hnmr;nmr.setAttribute('s:tlf',hnmr);return false;}
obj('n_nome_empresa').innerHTML=paiData['name'];obj('n_telefone').innerHTML=hnmr;abrir('telefone');fadeInObj('telefone',null,null);return false;}
function email(nmr,hnmr){if(hnmr&&(hnmr!=nmr.innerHTML)){nmr.innerHTML=hnmr;nmr.href="mailto:"+hnmr;return false;}
return true;}
paiMapObj='';paiMapMarker='';function resultado(paiRes,idResultado,paiID,pbi){beacon(paiRes,{'linktype':'detail','linkplace':'resulttab.text'});curPaiRes=paiRes;paiRes['pbi']=pbi;$('vCardNumber').disabled=false;$('vCardSend').disabled=false;$('vCardMsg').innerHTML='';if(paiRes.length!=undefined)return false;var cssP='pai';if(paiRes['pbi']==1)cssP='pbi';if(!paiRes['nome'])paiRes['nome']=paiRes['name'];if(!paiRes['heading'])paiRes['heading']=paiRes['headings'];if(!paiRes['postalcode'])paiRes['postalcode']=paiRes['postalCode'];if(!paiRes['fullAddress'])paiRes['fullAddress']=paiRes['streetAddress']+'<br />'+paiRes['postalcode'];closeDetails();containerActualPai=idResultado;abrir(containerActualPai);obj(containerActualPai).appendChild(obj('detalhes_pai'));var objCSS=obj('detalhes_pai').style;objCSS.position='absolute';if(containerActualPai=='paiLateralContainer'){objCSS.right='256px';objCSS.top='0';objCSS.left='';objCSS.height='';objCSS.zIndex='9000';obj('detalhesContacts').style.cssFloat='right';obj('detalhesContacts').style.styleFloat='right';}
else{obj('detalhesContacts').style.cssFloat='left';obj('detalhesContacts').style.styleFloat='left';objCSS.zIndex='9999';}
obj('d_quem').innerHTML=paiRes['nome'];if(paiRes['slogan']!=''){obj('d_slogan').innerHTML=paiRes['slogan'];abrir('d_slogan');}
if(paiRes['logoUrl']!=''){abrir('d_logo');obj('d_logo').innerHTML='<img src="'+paiRes['logoUrl']+'" alt="Logotipo: '+paiRes['nome']+'" />';}
if(paiRes['heading']!=undefined&&paiRes['heading']!=''){obj('d_acti').innerHTML=paiRes['heading'];abrir('d_acti');}
obj('d_addr').innerHTML=(paiRes['section']!=''?'<i>'+paiRes['section']+'</i><br />':'')+paiRes['fullAddress'];var contactos='';if(paiRes['mainphone'])contactos+='<a class="'+cssP+'_tlf" href="#" onclick="return tlf(this,paiAddresses['+paiID+'], 0, '+pbi+');">'+paiRes['mainphone']+'</a>';if(paiRes['mobile'])contactos+='<a class="'+cssP+'_tlf" href="#" onclick="return tlf(this,paiAddresses['+paiID+'], 0, '+pbi+');">'+paiRes['mobile']+'</a>';if(paiRes['faxNumber'])contactos+='<a class="'+cssP+'_fax" href="#" onclick="return tlf(this,paiAddresses['+paiID+'], 1, '+pbi+');">'+paiRes['faxNumber']+'</a>';if(paiRes['pdf']){var beaconCode="beacon(curPaiRes, {'linktype': 'pdfbrochure', 'linkplace': 'resulttab.text'});";$('paiVerPdf').innerHTML='<a onclick="'+beaconCode+'" class="'+cssP+'_pdf" href="'+paiRes['pdf']+'">detalhes em PDF</a>';abrir('paiVerPdf');}
paiRes['email']=paiRes['email']||paiRes['homeEmail']||paiRes['otherEmail']||paiRes['emailAddresses'];if(paiRes['email']){var beaconCode="beacon(curPaiRes, {'linktype': 'email', 'linkplace': 'resulttab.text'});";var strEmail=(paiRes['email'].length>19?paiRes['email'].substr(0,19)+'...':paiRes['email']);contactos+='<a onclick="'+beaconCode+'" class="'+cssP+'_email" href="mailto:'+paiRes['email']+'" title="'+paiRes['email']+'">'+strEmail+'</a>';}
if(paiRes['website']){var beaconCode="beacon(curPaiRes, {'linktype': 'website', 'linkplace': 'resulttab.text'});";var strWeb=paiRes['website'].replace(/http:\/\//i,'');if(strWeb.length>19)strWeb=strWeb.substr(0,21)+'...';contactos+='<a onclick="'+beaconCode+'" class="'+cssP+'_www" href="'+paiRes['website']+'" title="'+paiRes['website']+'">'+strWeb+'</a>';}
obj('d_cont').innerHTML=contactos;var paginas_p='';if(paiRes['paginas_p']){obj('d_paginas').innerHTML=paginas_p;}
var cont=0;if(paiRes['info']!=''){obj('d_infoPai').innerHTML=paiRes['info'];abrir('paiVerInfo','infoPai');cont++;}
if(paiRes['latitude']&&paiRes['longitude']){if(!paiMapMarker){paiMapMarker={"rss":{"channel":{"copyright":"&copy;2005, PT.COM","description":"Pesquisa Not&iacute;cias por title:lisboa","item":[{"author":paiRes['title'],"dc:date":"2006-10-25T23:19:00Z","description":paiRes['mainphone'],"guid":"http:\/\//www.sapo.pt","link":paiRes['websites'],"title":paiRes['name'],"geo:lat":paiRes['latitude'],"geo:lon":paiRes['longitude']}]}}};paiMapMarker.map_options={mapcontrol:"large",zoom:14,lat:paiRes['latitude'],lon:paiRes['longitude'],locator_callback:null,extents_callback:null,extents_callback_delay:5000,navArea:false};paiMapMarker.icon={image:"http://mapas.sapo.pt/imgs/feed.png",iconSize:{x:16,y:16},infoWindowAnchor:{x:8,y:0},iconAnchor:{x:8,y:0}}
paiMapMarker.icon_selected={image:"http://localhost:8080/static/css/pai/../img/ico_pai.png",iconSize:{x:16,y:16},infoWindowAnchor:{x:8,y:0},iconAnchor:{x:8,y:0}}
paiMapObj=new SAPO.Widget.Maps({divid:'mapaPai',selfrender:true,markers:paiMapMarker,width:390,height:293});}
else{var marker_opts={icon:paiMapMarker.icon,title:paiRes["name"],icon_selected:paiMapMarker.icon_selected,selected:true,opened:false};paiMapMarker.mapa.addMarker(paiRes['latitude'],paiRes['longitude'],marker_opts,paiRes['mainphone']);paiMapMarker.mapa.centerAndZoom(paiRes['latitude'],paiRes['longitude'],14)}
$('smapa').style.left='0px';$('smapa').style.top='0px';abrir('mapaPai','paiVerMapa');fechar('infoPai');cont++;}
if(paiRes['picture']!=''||paiRes['logo']!=''){if(paiRes['logo']!=''){window.clearTimeout(timer['logoFade']);var strFade=(paiRes['picture']!=''?'iniFoto();':'');obj('fotoPai').innerHTML='<img id="logoFade" src="'+paiRes['logo']+'" alt="Logotipo: '+paiRes['nome']+'" onload="resizePaiImg( this, 300, 293 ); '+strFade+'" style="filter: alpha(opacity:100); opacity:1;"/>'
obj('fotoPai').setAttribute('foto',paiRes['picture']);}
else{obj('fotoPai').innerHTML='<img src="'+paiRes['picture']+'" alt="" onload="resizePaiImg( this, 300, 293 );"/>'
obj('fotoPai').setAttribute('foto','');}
abrir('paiVerFoto','fotoPai');fechar('infoPai','mapaPai');cont++;if(paiRes['picture']!=''&&paiRes['logo']!='')cont++;}
if(cont>0){if(containerActualPai!='paiLateralContainer'){abrir('detalhesHandlerV');objCSS.bottom='';objCSS.top='4px';objCSS.left='0';}
objCSS.width='574px';if(cont==1)fechar('paiVerInfo','paiVerMapa','paiVerFoto');}
else{objCSS.width='175px';if(containerActualPai!='paiLateralContainer'){$(containerActualPai).style.clear='none';abrir('detalhesHandlerH');objCSS.bottom='';1
objCSS.top='-6px';objCSS.left='5px';objCSS.height='';}}
objCSS.display='block';var o=obj("detalhes_pai");return false;}
function esc(bt){bt.className='escolhido';escolhido=bt;return false;}
function nop(lat,lon){window.status=lat+","+lon;}
function area_fn(xlon0,ylat0,xlon1,ylat1){window.status=xlon0+","+ylat0+","+xlon1+","+ylat1;}
function addP(){}
function alturaObj(o){var y=0;if(document.implementation.hasFeature("CSS","2.0")){y=document.defaultView.getComputedStyle(o,null).getPropertyCSSValue("height").getFloatValue(5);y+=+4+10+1;}
else if(o.clientHeight!=null)y=o.offsetHeight;return Math.round(y);}
function yBaseObj(o){var y=0;if(o.offsetParent){y+=o.offsetTop;while(o=o.offsetParent)y+=o.offsetTop;}
return Math.round(y);}
function yBaseJanela(){var y=0;if(self.innerHeight)y=self.innerHeight;else if(document.documentElement&&document.documentElement.clientHeight)y=document.documentElement.clientHeight;else if(document.body)y=document.body.clientHeight;if(typeof(window.pageYOffset)=='number')y+=window.pageYOffset;else if(document.body&&document.body.scrollTop)y+=document.body.scrollTop;else if(document.documentElement&&document.documentElement.scrollTop)y+=document.documentElement.scrollTop;return Math.round(y);}
fade_speed=25;fade_quantidade=3;timer=new Array();function get_transp(obj){if(!obj)return null;if(obj.filters!=undefined)return obj.filters.alpha.opacity;else if(obj.style.opacity!=undefined)return obj.style.opacity*100;else return null;}
function set_transp(obj,valor){if(obj.filters!=undefined)obj.filters.alpha.opacity=valor;else if(obj.style.opacity!=undefined)obj.style.opacity=valor/100;return;}
function iniFoto(){var img_tmp=new Image();img_tmp.onload=function(){timer['logoFade']=window.setTimeout("fadeOutObj('logoFade', null, fimFoto)",4500);}
img_tmp.src=obj('fotoPai').getAttribute('foto');}
function fimFoto(){var strTimer="timer['logoFade'] = window.setTimeout(\'fadeInObj(\\\''+this.id+'\\\',null,null)\',fade_speed)";obj('fotoPai').innerHTML='<img id="logoFade" src="'+obj('fotoPai').getAttribute('foto')+'" alt="Fotografia" onload="resizePaiImg( this, 300, 293 ); '+strTimer+'" style="filter: alpha(opacity:0); opacity:0;"/>';}
function fadeOutObj(id,funcIni,funcFim){objecto=obj(id);window.clearTimeout(timer[id]);if(get_transp(objecto)>0){if(get_transp(objecto)==100&&funcIni!=null)funcIni();set_transp(objecto,get_transp(objecto)-fade_quantidade);timer[id]=window.setTimeout("fadeOutObj('"+id+"', "+funcIni+", "+funcFim+")",fade_speed);}
else{set_transp(objecto,0);if(funcFim!=null)funcFim();}}
function fadeInObj(id,funcIni,funcFim){objecto=obj(id);window.clearTimeout(timer[id]);if(get_transp(objecto)<100){if(get_transp(objecto)==0&&funcIni!=null)funcIni();set_transp(objecto,get_transp(objecto)+fade_quantidade);timer[id]=window.setTimeout("fadeInObj('"+id+"', "+funcIni+", "+funcFim+")",fade_speed);}
else{set_transp(objecto,100);if(funcFim!=null)funcFim();}}