/* --------- /javascripts/prototype1602.js --------- */ 

var Prototype={Version:'1.6.0.2',Browser:{IE:!!(window.attachEvent&&!window.opera),Opera:!!window.opera,WebKit:navigator.userAgent.indexOf('AppleWebKit/')>-1,Gecko:navigator.userAgent.indexOf('Gecko')>-1&&navigator.userAgent.indexOf('KHTML')==-1,MobileSafari:!!navigator.userAgent.match(/Apple.*Mobile.*Safari/)},BrowserFeatures:{XPath:!!document.evaluate,ElementExtensions:!!window.HTMLElement,SpecificElementExtensions:document.createElement('div').__proto__&&document.createElement('div').__proto__!==document.createElement('form').__proto__},ScriptFragment:'<script[^>]*>([\\S\\s]*?)<\/script>',JSONFilter:/^\/\*-secure-([\s\S]*)\*\/\s*$/,emptyFunction:function(){},K:function(x){return x}};if(Prototype.Browser.MobileSafari)
Prototype.BrowserFeatures.SpecificElementExtensions=false;var Class={create:function(){var parent=null,properties=$A(arguments);if(Object.isFunction(properties[0]))
parent=properties.shift();function klass(){this.initialize.apply(this,arguments);}
Object.extend(klass,Class.Methods);klass.superclass=parent;klass.subclasses=[];if(parent){var subclass=function(){};subclass.prototype=parent.prototype;klass.prototype=new subclass;parent.subclasses.push(klass);}
for(var i=0;i<properties.length;i++)
klass.addMethods(properties[i]);if(!klass.prototype.initialize)
klass.prototype.initialize=Prototype.emptyFunction;klass.prototype.constructor=klass;return klass;}};Class.Methods={addMethods:function(source){var ancestor=this.superclass&&this.superclass.prototype;var properties=Object.keys(source);if(!Object.keys({toString:true}).length)
properties.push("toString","valueOf");for(var i=0,length=properties.length;i<length;i++){var property=properties[i],value=source[property];if(ancestor&&Object.isFunction(value)&&value.argumentNames().first()=="$super"){var method=value,value=Object.extend((function(m){return function(){return ancestor[m].apply(this,arguments)};})(property).wrap(method),{valueOf:function(){return method},toString:function(){return method.toString()}});}
this.prototype[property]=value;}
return this;}};var Abstract={};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.isUndefined(object))return'undefined';if(object===null)return'null';return object.inspect?object.inspect():String(object);}catch(e){if(e instanceof RangeError)return'...';throw e;}},toJSON:function(object){var type=typeof object;switch(type){case'undefined':case'function':case'unknown':return;case'boolean':return object.toString();}
if(object===null)return'null';if(object.toJSON)return object.toJSON();if(Object.isElement(object))return;var results=[];for(var property in object){var value=Object.toJSON(object[property]);if(!Object.isUndefined(value))
results.push(property.toJSON()+': '+value);}
return'{'+results.join(', ')+'}';},toQueryString:function(object){return $H(object).toQueryString();},toHTML:function(object){return object&&object.toHTML?object.toHTML():String.interpret(object);},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);},isElement:function(object){return object&&object.nodeType==1;},isArray:function(object){return object!=null&&typeof object=="object"&&'splice'in object&&'join'in object;},isHash:function(object){return object instanceof Hash;},isFunction:function(object){return typeof object=="function";},isString:function(object){return typeof object=="string";},isNumber:function(object){return typeof object=="number";},isUndefined:function(object){return typeof object=="undefined";}});Object.extend(Function.prototype,{argumentNames:function(){var names=this.toString().match(/^[\s\(]*function[^(]*\((.*?)\)/)[1].split(",").invoke("strip");return names.length==1&&!names[0]?[]:names;},bind:function(){if(arguments.length<2&&Object.isUndefined(arguments[0]))return this;var __method=this,args=$A(arguments),object=args.shift();return function(){return __method.apply(object,args.concat($A(arguments)));}},bindAsEventListener:function(){var __method=this,args=$A(arguments),object=args.shift();return function(event){return __method.apply(object,[event||window.event].concat(args));}},curry:function(){if(!arguments.length)return this;var __method=this,args=$A(arguments);return function(){return __method.apply(this,args.concat($A(arguments)));}},delay:function(){var __method=this,args=$A(arguments),timeout=args.shift()*1000;return window.setTimeout(function(){return __method.apply(__method,args);},timeout);},wrap:function(wrapper){var __method=this;return function(){return wrapper.apply(this,[__method.bind(this)].concat($A(arguments)));}},methodize:function(){if(this._methodized)return this._methodized;var __method=this;return this._methodized=function(){return __method.apply(null,[this].concat($A(arguments)));};}});Function.prototype.defer=Function.prototype.delay.curry(0.01);Date.prototype.toJSON=function(){return'"'+this.getUTCFullYear()+'-'+
(this.getUTCMonth()+1).toPaddedString(2)+'-'+
this.getUTCDate().toPaddedString(2)+'T'+
this.getUTCHours().toPaddedString(2)+':'+
this.getUTCMinutes().toPaddedString(2)+':'+
this.getUTCSeconds().toPaddedString(2)+'Z"';};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;}};RegExp.prototype.match=RegExp.prototype.test;RegExp.escape=function(str){return String(str).replace(/([.*+?^=!:${}()|[\]\/\\])/g,'\\$1');};var PeriodicalExecuter=Class.create({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);},execute:function(){this.callback(this);},stop:function(){if(!this.timer)return;clearInterval(this.timer);this.timer=null;},onTimerEvent:function(){if(!this.currentlyExecuting){try{this.currentlyExecuting=true;this.execute();}finally{this.currentlyExecuting=false;}}}});Object.extend(String,{interpret:function(value){return value==null?'':String(value);},specialChar:{'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','\\':'\\\\'}});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=Object.isUndefined(count)?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 String(this);},truncate:function(length,truncation){length=length||30;truncation=Object.isUndefined(truncation)?'...':truncation;return this.length>length?this.slice(0,length-truncation.length)+truncation:String(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 self=arguments.callee;self.text.data=this;return self.div.innerHTML;},unescapeHTML:function(){var div=new Element('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 key=decodeURIComponent(pair.shift());var value=pair.length>1?pair.join('='):pair[0];if(value!=undefined)value=decodeURIComponent(value);if(key in hash){if(!Object.isArray(hash[key]))hash[key]=[hash[key]];hash[key].push(value);}
else hash[key]=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);},times:function(count){return count<1?'':new Array(count+1).join(this);},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.gsub(/[\x00-\x1f\\]/,function(match){var character=String.specialChar[match[0]];return character?character:'\\u00'+match[0].charCodeAt().toPaddedString(2,16);});if(useDoubleQuotes)return'"'+escapedString.replace(/"/g,'\\"')+'"';return"'"+escapedString.replace(/'/g,'\\\'')+"'";},toJSON:function(){return this.inspect(true);},unfilterJSON:function(filter){return this.sub(filter||Prototype.JSONFilter,'#{1}');},isJSON:function(){var str=this;if(str.blank())return false;str=this.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"/g,'');return(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(str);},evalJSON:function(sanitize){var json=this.unfilterJSON();try{if(!sanitize||json.isJSON())return eval('('+json+')');}catch(e){}
throw new SyntaxError('Badly formed JSON string: '+this.inspect());},include:function(pattern){return this.indexOf(pattern)>-1;},startsWith:function(pattern){return this.indexOf(pattern)===0;},endsWith:function(pattern){var d=this.length-pattern.length;return d>=0&&this.lastIndexOf(pattern)===d;},empty:function(){return this=='';},blank:function(){return/^\s*$/.test(this);},interpolate:function(object,pattern){return new Template(this,pattern).evaluate(object);}});if(Prototype.Browser.WebKit||Prototype.Browser.IE)Object.extend(String.prototype,{escapeHTML:function(){return this.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;');},unescapeHTML:function(){return this.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');}});String.prototype.gsub.prepareReplacement=function(replacement){if(Object.isFunction(replacement))return replacement;var template=new Template(replacement);return function(match){return template.evaluate(match)};};String.prototype.parseQuery=String.prototype.toQueryParams;Object.extend(String.prototype.escapeHTML,{div:document.createElement('div'),text:document.createTextNode('')});with(String.prototype.escapeHTML)div.appendChild(text);var Template=Class.create({initialize:function(template,pattern){this.template=template.toString();this.pattern=pattern||Template.Pattern;},evaluate:function(object){if(Object.isFunction(object.toTemplateReplacements))
object=object.toTemplateReplacements();return this.template.gsub(this.pattern,function(match){if(object==null)return'';var before=match[1]||'';if(before=='\\')return match[2];var ctx=object,expr=match[3];var pattern=/^([^.[]+|\[((?:.*?[^\\])?)\])(\.|\[|$)/;match=pattern.exec(expr);if(match==null)return before;while(match!=null){var comp=match[1].startsWith('[')?match[2].gsub('\\\\]',']'):match[1];ctx=ctx[comp];if(null==ctx||''==match[3])break;expr=expr.substring('['==match[3]?match[1].length:match[0].length);match=pattern.exec(expr);}
return before+String.interpret(ctx);});}});Template.Pattern=/(^|.|\r|\n)(#\{(.*?)\})/;var $break={};var Enumerable={each:function(iterator,context){var index=0;iterator=iterator.bind(context);try{this._each(function(value){iterator(value,index++);});}catch(e){if(e!=$break)throw e;}
return this;},eachSlice:function(number,iterator,context){iterator=iterator?iterator.bind(context):Prototype.K;var index=-number,slices=[],array=this.toArray();while((index+=number)<array.length)
slices.push(array.slice(index,index+number));return slices.collect(iterator,context);},all:function(iterator,context){iterator=iterator?iterator.bind(context):Prototype.K;var result=true;this.each(function(value,index){result=result&&!!iterator(value,index);if(!result)throw $break;});return result;},any:function(iterator,context){iterator=iterator?iterator.bind(context):Prototype.K;var result=false;this.each(function(value,index){if(result=!!iterator(value,index))
throw $break;});return result;},collect:function(iterator,context){iterator=iterator?iterator.bind(context):Prototype.K;var results=[];this.each(function(value,index){results.push(iterator(value,index));});return results;},detect:function(iterator,context){iterator=iterator.bind(context);var result;this.each(function(value,index){if(iterator(value,index)){result=value;throw $break;}});return result;},findAll:function(iterator,context){iterator=iterator.bind(context);var results=[];this.each(function(value,index){if(iterator(value,index))
results.push(value);});return results;},grep:function(filter,iterator,context){iterator=iterator?iterator.bind(context):Prototype.K;var results=[];if(Object.isString(filter))
filter=new RegExp(filter);this.each(function(value,index){if(filter.match(value))
results.push(iterator(value,index));});return results;},include:function(object){if(Object.isFunction(this.indexOf))
if(this.indexOf(object)!=-1)return true;var found=false;this.each(function(value){if(value==object){found=true;throw $break;}});return found;},inGroupsOf:function(number,fillWith){fillWith=Object.isUndefined(fillWith)?null:fillWith;return this.eachSlice(number,function(slice){while(slice.length<number)slice.push(fillWith);return slice;});},inject:function(memo,iterator,context){iterator=iterator.bind(context);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,context){iterator=iterator?iterator.bind(context):Prototype.K;var result;this.each(function(value,index){value=iterator(value,index);if(result==null||value>=result)
result=value;});return result;},min:function(iterator,context){iterator=iterator?iterator.bind(context):Prototype.K;var result;this.each(function(value,index){value=iterator(value,index);if(result==null||value<result)
result=value;});return result;},partition:function(iterator,context){iterator=iterator?iterator.bind(context):Prototype.K;var trues=[],falses=[];this.each(function(value,index){(iterator(value,index)?trues:falses).push(value);});return[trues,falses];},pluck:function(property){var results=[];this.each(function(value){results.push(value[property]);});return results;},reject:function(iterator,context){iterator=iterator.bind(context);var results=[];this.each(function(value,index){if(!iterator(value,index))
results.push(value);});return results;},sortBy:function(iterator,context){iterator=iterator.bind(context);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(Object.isFunction(args.last()))
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,filter:Enumerable.findAll,member:Enumerable.include,entries:Enumerable.toArray,every:Enumerable.all,some:Enumerable.any});function $A(iterable){if(!iterable)return[];if(iterable.toArray)return iterable.toArray();var length=iterable.length||0,results=new Array(length);while(length--)results[length]=iterable[length];return results;}
if(Prototype.Browser.WebKit){$A=function(iterable){if(!iterable)return[];if(!(Object.isFunction(iterable)&&iterable=='[object NodeList]')&&iterable.toArray)return iterable.toArray();var length=iterable.length||0,results=new Array(length);while(length--)results[length]=iterable[length];return results;};}
Array.from=$A;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(Object.isArray(value)?value.flatten():[value]);});},without:function(){var values=$A(arguments);return this.select(function(value){return!values.include(value);});},reverse:function(inline){return(inline!==false?this:this.toArray())._reverse();},reduce:function(){return this.length>1?this:this[0];},uniq:function(sorted){return this.inject([],function(array,value,index){if(0==index||(sorted?array.last()!=value:!array.include(value)))
array.push(value);return array;});},intersect:function(array){return this.uniq().findAll(function(item){return array.detect(function(value){return item===value});});},clone:function(){return[].concat(this);},size:function(){return this.length;},inspect:function(){return'['+this.map(Object.inspect).join(', ')+']';},toJSON:function(){var results=[];this.each(function(object){var value=Object.toJSON(object);if(!Object.isUndefined(value))results.push(value);});return'['+results.join(', ')+']';}});if(Object.isFunction(Array.prototype.forEach))
Array.prototype._each=Array.prototype.forEach;if(!Array.prototype.indexOf)Array.prototype.indexOf=function(item,i){i||(i=0);var length=this.length;if(i<0)i=length+i;for(;i<length;i++)
if(this[i]===item)return i;return-1;};if(!Array.prototype.lastIndexOf)Array.prototype.lastIndexOf=function(item,i){i=isNaN(i)?this.length:(i<0?this.length+i:i)+1;var n=this.slice(0,i).reverse().indexOf(item);return(n<0)?n:i-n-1;};Array.prototype.toArray=Array.prototype.clone;function $w(string){if(!Object.isString(string))return[];string=string.strip();return string?string.split(/\s+/):[];}
if(Prototype.Browser.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(Object.isArray(arguments[i])){for(var j=0,arrayLength=arguments[i].length;j<arrayLength;j++)
array.push(arguments[i][j]);}else{array.push(arguments[i]);}}
return array;};}
Object.extend(Number.prototype,{toColorPart:function(){return this.toPaddedString(2,16);},succ:function(){return this+1;},times:function(iterator){$R(0,this,true).each(iterator);return this;},toPaddedString:function(length,radix){var string=this.toString(radix||10);return'0'.times(length-string.length)+string;},toJSON:function(){return isFinite(this)?this.toString():'null';}});$w('abs round ceil floor').each(function(method){Number.prototype[method]=Math[method].methodize();});function $H(object){return new Hash(object);};var Hash=Class.create(Enumerable,(function(){function toQueryPair(key,value){if(Object.isUndefined(value))return key;return key+'='+encodeURIComponent(String.interpret(value));}
return{initialize:function(object){this._object=Object.isHash(object)?object.toObject():Object.clone(object);},_each:function(iterator){for(var key in this._object){var value=this._object[key],pair=[key,value];pair.key=key;pair.value=value;iterator(pair);}},set:function(key,value){return this._object[key]=value;},get:function(key){return this._object[key];},unset:function(key){var value=this._object[key];delete this._object[key];return value;},toObject:function(){return Object.clone(this._object);},keys:function(){return this.pluck('key');},values:function(){return this.pluck('value');},index:function(value){var match=this.detect(function(pair){return pair.value===value;});return match&&match.key;},merge:function(object){return this.clone().update(object);},update:function(object){return new Hash(object).inject(this,function(result,pair){result.set(pair.key,pair.value);return result;});},toQueryString:function(){return this.map(function(pair){var key=encodeURIComponent(pair.key),values=pair.value;if(values&&typeof values=='object'){if(Object.isArray(values))
return values.map(toQueryPair.curry(key)).join('&');}
return toQueryPair(key,values);}).join('&');},inspect:function(){return'#<Hash:{'+this.map(function(pair){return pair.map(Object.inspect).join(': ');}).join(', ')+'}>';},toJSON:function(){return Object.toJSON(this.toObject());},clone:function(){return new Hash(this);}}})());Hash.prototype.toTemplateReplacements=Hash.prototype.toObject;Hash.from=$H;var ObjectRange=Class.create(Enumerable,{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(Object.isFunction(responder[callback])){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=Class.create({initialize:function(options){this.options={method:'post',asynchronous:true,contentType:'application/x-www-form-urlencoded',encoding:'UTF-8',parameters:'',evalJSON:true,evalJS:true};Object.extend(this.options,options||{});this.options.method=this.options.method.toLowerCase();if(Object.isString(this.options.parameters))
this.options.parameters=this.options.parameters.toQueryParams();else if(Object.isHash(this.options.parameters))
this.options.parameters=this.options.parameters.toObject();}});Ajax.Request=Class.create(Ajax.Base,{_complete:false,initialize:function($super,url,options){$super(options);this.transport=Ajax.getTransport();this.request(url);},request:function(url){this.url=url;this.method=this.options.method;var params=Object.clone(this.options.parameters);if(!['get','post'].include(this.method)){params['_method']=this.method;this.method='post';}
this.parameters=params;if(params=Object.toQueryString(params)){if(this.method=='get')
this.url+=(this.url.include('?')?'&':'?')+params;else if(/Konqueror|Safari|KHTML/.test(navigator.userAgent))
params+='&_=';}
try{var response=new Ajax.Response(this);if(this.options.onCreate)this.options.onCreate(response);Ajax.Responders.dispatch('onCreate',this,response);this.transport.open(this.method.toUpperCase(),this.url,this.options.asynchronous);if(this.options.asynchronous)this.respondToReadyState.bind(this).defer(1);this.transport.onreadystatechange=this.onStateChange.bind(this);this.setRequestHeaders();this.body=this.method=='post'?(this.options.postBody||params):null;this.transport.send(this.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(Object.isFunction(extras.push))
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(){var status=this.getStatus();return!status||(status>=200&&status<300);},getStatus:function(){try{return this.transport.status||0;}catch(e){return 0}},respondToReadyState:function(readyState){var state=Ajax.Request.Events[readyState],response=new Ajax.Response(this);if(state=='Complete'){try{this._complete=true;(this.options['on'+response.status]||this.options['on'+(this.success()?'Success':'Failure')]||Prototype.emptyFunction)(response,response.headerJSON);}catch(e){this.dispatchException(e);}
var contentType=response.getHeader('Content-type');if(this.options.evalJS=='force'||(this.options.evalJS&&this.isSameOrigin()&&contentType&&contentType.match(/^\s*(text|application)\/(x-)?(java|ecma)script(;.*)?\s*$/i)))
this.evalResponse();}
try{(this.options['on'+state]||Prototype.emptyFunction)(response,response.headerJSON);Ajax.Responders.dispatch('on'+state,this,response,response.headerJSON);}catch(e){this.dispatchException(e);}
if(state=='Complete'){this.transport.onreadystatechange=Prototype.emptyFunction;}},isSameOrigin:function(){var m=this.url.match(/^\s*https?:\/\/[^\/]*/);return!m||(m[0]=='#{protocol}//#{domain}#{port}'.interpolate({protocol:location.protocol,domain:document.domain,port:location.port?':'+location.port:''}));},getHeader:function(name){try{return this.transport.getResponseHeader(name)||null;}catch(e){return null}},evalResponse:function(){try{return eval((this.transport.responseText||'').unfilterJSON());}catch(e){this.dispatchException(e);}},dispatchException:function(exception){(this.options.onException||Prototype.emptyFunction)(this,exception);Ajax.Responders.dispatch('onException',this,exception);}});Ajax.Request.Events=['Uninitialized','Loading','Loaded','Interactive','Complete'];Ajax.Response=Class.create({initialize:function(request){this.request=request;var transport=this.transport=request.transport,readyState=this.readyState=transport.readyState;if((readyState>2&&!Prototype.Browser.IE)||readyState==4){this.status=this.getStatus();this.statusText=this.getStatusText();this.responseText=String.interpret(transport.responseText);this.headerJSON=this._getHeaderJSON();}
if(readyState==4){var xml=transport.responseXML;this.responseXML=Object.isUndefined(xml)?null:xml;this.responseJSON=this._getResponseJSON();}},status:0,statusText:'',getStatus:Ajax.Request.prototype.getStatus,getStatusText:function(){try{return this.transport.statusText||'';}catch(e){return''}},getHeader:Ajax.Request.prototype.getHeader,getAllHeaders:function(){try{return this.getAllResponseHeaders();}catch(e){return null}},getResponseHeader:function(name){return this.transport.getResponseHeader(name);},getAllResponseHeaders:function(){return this.transport.getAllResponseHeaders();},_getHeaderJSON:function(){var json=this.getHeader('X-JSON');if(!json)return null;json=decodeURIComponent(escape(json));try{return json.evalJSON(this.request.options.sanitizeJSON||!this.request.isSameOrigin());}catch(e){this.request.dispatchException(e);}},_getResponseJSON:function(){var options=this.request.options;if(!options.evalJSON||(options.evalJSON!='force'&&!(this.getHeader('Content-type')||'').include('application/json'))||this.responseText.blank())
return null;try{return this.responseText.evalJSON(options.sanitizeJSON||!this.request.isSameOrigin());}catch(e){this.request.dispatchException(e);}}});Ajax.Updater=Class.create(Ajax.Request,{initialize:function($super,container,url,options){this.container={success:(container.success||container),failure:(container.failure||(container.success?null:container))};options=Object.clone(options);var onComplete=options.onComplete;options.onComplete=(function(response,json){this.updateContent(response.responseText);if(Object.isFunction(onComplete))onComplete(response,json);}).bind(this);$super(url,options);},updateContent:function(responseText){var receiver=this.container[this.success()?'success':'failure'],options=this.options;if(!options.evalScripts)responseText=responseText.stripScripts();if(receiver=$(receiver)){if(options.insertion){if(Object.isString(options.insertion)){var insertion={};insertion[options.insertion]=responseText;receiver.insert(insertion);}
else options.insertion(receiver,responseText);}
else receiver.update(responseText);}}});Ajax.PeriodicalUpdater=Class.create(Ajax.Base,{initialize:function($super,container,url,options){$super(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(response){if(this.options.decay){this.decay=(response.responseText==this.lastText?this.decay*this.options.decay:1);this.lastText=response.responseText;}
this.timer=this.onTimerEvent.bind(this).delay(this.decay*this.frequency);},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(Object.isString(element))
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(Element.extend(query.snapshotItem(i)));return results;};}
if(!window.Node)var Node={};if(!Node.ELEMENT_NODE){Object.extend(Node,{ELEMENT_NODE:1,ATTRIBUTE_NODE:2,TEXT_NODE:3,CDATA_SECTION_NODE:4,ENTITY_REFERENCE_NODE:5,ENTITY_NODE:6,PROCESSING_INSTRUCTION_NODE:7,COMMENT_NODE:8,DOCUMENT_NODE:9,DOCUMENT_TYPE_NODE:10,DOCUMENT_FRAGMENT_NODE:11,NOTATION_NODE:12});}
(function(){var element=this.Element;this.Element=function(tagName,attributes){attributes=attributes||{};tagName=tagName.toLowerCase();var cache=Element.cache;if(Prototype.Browser.IE&&attributes.name){tagName='<'+tagName+' name="'+attributes.name+'">';delete attributes.name;return Element.writeAttribute(document.createElement(tagName),attributes);}
if(!cache[tagName])cache[tagName]=Element.extend(document.createElement(tagName));return Element.writeAttribute(cache[tagName].cloneNode(false),attributes);};Object.extend(this.Element,element||{});}).call(window);Element.cache={};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,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content))return element.update().insert(content);content=Object.toHTML(content);element.innerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;},replace:function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();else if(!Object.isElement(content)){content=Object.toHTML(content);var range=element.ownerDocument.createRange();range.selectNode(element);content.evalScripts.bind(content).defer();content=range.createContextualFragment(content.stripScripts());}
element.parentNode.replaceChild(content,element);return element;},insert:function(element,insertions){element=$(element);if(Object.isString(insertions)||Object.isNumber(insertions)||Object.isElement(insertions)||(insertions&&(insertions.toElement||insertions.toHTML)))
insertions={bottom:insertions};var content,insert,tagName,childNodes;for(var position in insertions){content=insertions[position];position=position.toLowerCase();insert=Element._insertionTranslations[position];if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){insert(element,content);continue;}
content=Object.toHTML(content);tagName=((position=='before'||position=='after')?element.parentNode:element).tagName.toUpperCase();childNodes=Element._getContentFromAnonymousElement(tagName,content.stripScripts());if(position=='top'||position=='after')childNodes.reverse();childNodes.each(insert.curry(element));content.evalScripts.bind(content).defer();}
return element;},wrap:function(element,wrapper,attributes){element=$(element);if(Object.isElement(wrapper))
$(wrapper).writeAttribute(attributes||{});else if(Object.isString(wrapper))wrapper=new Element(wrapper,attributes);else wrapper=new Element('div',wrapper);if(element.parentNode)
element.parentNode.replaceChild(wrapper,element);wrapper.appendChild(element);return wrapper;},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 $(element).select("*");},firstDescendant:function(element){element=$(element).firstChild;while(element&&element.nodeType!=1)element=element.nextSibling;return $(element);},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(Object.isString(selector))
selector=new Selector(selector);return selector.match($(element));},up:function(element,expression,index){element=$(element);if(arguments.length==1)return $(element.parentNode);var ancestors=element.ancestors();return Object.isNumber(expression)?ancestors[expression]:Selector.findElement(ancestors,expression,index);},down:function(element,expression,index){element=$(element);if(arguments.length==1)return element.firstDescendant();return Object.isNumber(expression)?element.descendants()[expression]:element.select(expression)[index||0];},previous:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.previousElementSibling(element));var previousSiblings=element.previousSiblings();return Object.isNumber(expression)?previousSiblings[expression]:Selector.findElement(previousSiblings,expression,index);},next:function(element,expression,index){element=$(element);if(arguments.length==1)return $(Selector.handlers.nextElementSibling(element));var nextSiblings=element.nextSiblings();return Object.isNumber(expression)?nextSiblings[expression]:Selector.findElement(nextSiblings,expression,index);},select:function(){var args=$A(arguments),element=$(args.shift());return Selector.findChildElements(element,args);},adjacent:function(){var args=$A(arguments),element=$(args.shift());return Selector.findChildElements(element.parentNode,args).without(element);},identify:function(element){element=$(element);var id=element.readAttribute('id'),self=arguments.callee;if(id)return id;do{id='anonymous_element_'+self.counter++}while($(id));element.writeAttribute('id',id);return id;},readAttribute:function(element,name){element=$(element);if(Prototype.Browser.IE){var t=Element._attributeTranslations.read;if(t.values[name])return t.values[name](element,name);if(t.names[name])name=t.names[name];if(name.include(':')){return(!element.attributes||!element.attributes[name])?null:element.attributes[name].value;}}
return element.getAttribute(name);},writeAttribute:function(element,name,value){element=$(element);var attributes={},t=Element._attributeTranslations.write;if(typeof name=='object')attributes=name;else attributes[name]=Object.isUndefined(value)?true:value;for(var attr in attributes){name=t.names[attr]||attr;value=attributes[attr];if(t.values[attr])name=t.values[attr](element,value);if(value===false||value===null)
element.removeAttribute(name);else if(value===true)
element.setAttribute(name,name);else element.setAttribute(name,value);}
return element;},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;return(elementClassName.length>0&&(elementClassName==className||new RegExp("(^|\\s)"+className+"(\\s|$)").test(elementClassName)));},addClassName:function(element,className){if(!(element=$(element)))return;if(!element.hasClassName(className))
element.className+=(element.className?' ':'')+className;return element;},removeClassName:function(element,className){if(!(element=$(element)))return;element.className=element.className.replace(new RegExp("(^|\\s+)"+className+"(\\s+|$)"),' ').strip();return element;},toggleClassName:function(element,className){if(!(element=$(element)))return;return element[element.hasClassName(className)?'removeClassName':'addClassName'](className);},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.blank();},descendantOf:function(element,ancestor){element=$(element),ancestor=$(ancestor);var originalAncestor=ancestor;if(element.compareDocumentPosition)
return(element.compareDocumentPosition(ancestor)&8)===8;if(element.sourceIndex&&!Prototype.Browser.Opera){var e=element.sourceIndex,a=ancestor.sourceIndex,nextAncestor=ancestor.nextSibling;if(!nextAncestor){do{ancestor=ancestor.parentNode;}
while(!(nextAncestor=ancestor.nextSibling)&&ancestor.parentNode);}
if(nextAncestor&&nextAncestor.sourceIndex)
return(e>a&&e<nextAncestor.sourceIndex);}
while(element=element.parentNode)
if(element==originalAncestor)return true;return false;},scrollTo:function(element){element=$(element);var pos=element.cumulativeOffset();window.scrollTo(pos[0],pos[1]);return element;},getStyle:function(element,style){element=$(element);style=style=='float'?'cssFloat':style.camelize();var value=element.style[style];if(!value){var css=document.defaultView.getComputedStyle(element,null);value=css?css[style]:null;}
if(style=='opacity')return value?parseFloat(value):1.0;return value=='auto'?null:value;},getOpacity:function(element){return $(element).getStyle('opacity');},setStyle:function(element,styles){element=$(element);var elementStyle=element.style,match;if(Object.isString(styles)){element.style.cssText+=';'+styles;return styles.include('opacity')?element.setOpacity(styles.match(/opacity:\s*(\d?\.?\d*)/)[1]):element;}
for(var property in styles)
if(property=='opacity')element.setOpacity(styles[property]);else
elementStyle[(property=='float'||property=='cssFloat')?(Object.isUndefined(elementStyle.styleFloat)?'cssFloat':'styleFloat'):property]=styles[property];return element;},setOpacity:function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0: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.getStyle(element,'overflow')||'auto';if(element._overflow!=='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;},cumulativeOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;element=element.offsetParent;}while(element);return Element._returnOffset(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!=='static')break;}}while(element);return Element._returnOffset(valueL,valueT);},absolutize:function(element){element=$(element);if(element.getStyle('position')=='absolute')return;var offsets=element.positionedOffset();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';return element;},relativize:function(element){element=$(element);if(element.getStyle('position')=='relative')return;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;return element;},cumulativeScrollOffset:function(element){var valueT=0,valueL=0;do{valueT+=element.scrollTop||0;valueL+=element.scrollLeft||0;element=element.parentNode;}while(element);return Element._returnOffset(valueL,valueT);},getOffsetParent: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);},viewportOffset:function(forElement){var valueT=0,valueL=0;var element=forElement;do{valueT+=element.offsetTop||0;valueL+=element.offsetLeft||0;if(element.offsetParent==document.body&&Element.getStyle(element,'position')=='absolute')break;}while(element=element.offsetParent);element=forElement;do{if(!Prototype.Browser.Opera||element.tagName=='BODY'){valueT-=element.scrollTop||0;valueL-=element.scrollLeft||0;}}while(element=element.parentNode);return Element._returnOffset(valueL,valueT);},clonePosition:function(element,source){var options=Object.extend({setLeft:true,setTop:true,setWidth:true,setHeight:true,offsetTop:0,offsetLeft:0},arguments[2]||{});source=$(source);var p=source.viewportOffset();element=$(element);var delta=[0,0];var parent=null;if(Element.getStyle(element,'position')=='absolute'){parent=element.getOffsetParent();delta=parent.viewportOffset();}
if(parent==document.body){delta[0]-=document.body.offsetLeft;delta[1]-=document.body.offsetTop;}
if(options.setLeft)element.style.left=(p[0]-delta[0]+options.offsetLeft)+'px';if(options.setTop)element.style.top=(p[1]-delta[1]+options.offsetTop)+'px';if(options.setWidth)element.style.width=source.offsetWidth+'px';if(options.setHeight)element.style.height=source.offsetHeight+'px';return element;}};Element.Methods.identify.counter=1;Object.extend(Element.Methods,{getElementsBySelector:Element.Methods.select,childElements:Element.Methods.immediateDescendants});Element._attributeTranslations={write:{names:{className:'class',htmlFor:'for'},values:{}}};if(Prototype.Browser.Opera){Element.Methods.getStyle=Element.Methods.getStyle.wrap(function(proceed,element,style){switch(style){case'left':case'top':case'right':case'bottom':if(proceed(element,'position')==='static')return null;case'height':case'width':if(!Element.visible(element))return null;var dim=parseInt(proceed(element,style),10);if(dim!==element['offset'+style.capitalize()])
return dim+'px';var properties;if(style==='height'){properties=['border-top-width','padding-top','padding-bottom','border-bottom-width'];}
else{properties=['border-left-width','padding-left','padding-right','border-right-width'];}
return properties.inject(dim,function(memo,property){var val=proceed(element,property);return val===null?memo:memo-parseInt(val,10);})+'px';default:return proceed(element,style);}});Element.Methods.readAttribute=Element.Methods.readAttribute.wrap(function(proceed,element,attribute){if(attribute==='title')return element.title;return proceed(element,attribute);});}
else if(Prototype.Browser.IE){Element.Methods.getOffsetParent=Element.Methods.getOffsetParent.wrap(function(proceed,element){element=$(element);var position=element.getStyle('position');if(position!=='static')return proceed(element);element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value;});$w('positionedOffset viewportOffset').each(function(method){Element.Methods[method]=Element.Methods[method].wrap(function(proceed,element){element=$(element);var position=element.getStyle('position');if(position!=='static')return proceed(element);var offsetParent=element.getOffsetParent();if(offsetParent&&offsetParent.getStyle('position')==='fixed')
offsetParent.setStyle({zoom:1});element.setStyle({position:'relative'});var value=proceed(element);element.setStyle({position:position});return value;});});Element.Methods.getStyle=function(element,style){element=$(element);style=(style=='float'||style=='cssFloat')?'styleFloat':style.camelize();var value=element.style[style];if(!value&&element.currentStyle)value=element.currentStyle[style];if(style=='opacity'){if(value=(element.getStyle('filter')||'').match(/alpha\(opacity=(.*)\)/))
if(value[1])return parseFloat(value[1])/100;return 1.0;}
if(value=='auto'){if((style=='width'||style=='height')&&(element.getStyle('display')!='none'))
return element['offset'+style.capitalize()]+'px';return null;}
return value;};Element.Methods.setOpacity=function(element,value){function stripAlpha(filter){return filter.replace(/alpha\([^\)]*\)/gi,'');}
element=$(element);var currentStyle=element.currentStyle;if((currentStyle&&!currentStyle.hasLayout)||(!currentStyle&&element.style.zoom=='normal'))
element.style.zoom=1;var filter=element.getStyle('filter'),style=element.style;if(value==1||value===''){(filter=stripAlpha(filter))?style.filter=filter:style.removeAttribute('filter');return element;}else if(value<0.00001)value=0;style.filter=stripAlpha(filter)+'alpha(opacity='+(value*100)+')';return element;};Element._attributeTranslations={read:{names:{'class':'className','for':'htmlFor'},values:{_getAttr:function(element,attribute){return element.getAttribute(attribute,2);},_getAttrNode:function(element,attribute){var node=element.getAttributeNode(attribute);return node?node.value:"";},_getEv:function(element,attribute){attribute=element.getAttribute(attribute);return attribute?attribute.toString().slice(23,-2):null;},_flag:function(element,attribute){return $(element).hasAttribute(attribute)?attribute:null;},style:function(element){return element.style.cssText.toLowerCase();},title:function(element){return element.title;}}}};Element._attributeTranslations.write={names:Object.extend({cellpadding:'cellPadding',cellspacing:'cellSpacing'},Element._attributeTranslations.read.names),values:{checked:function(element,value){element.checked=!!value;},style:function(element,value){element.style.cssText=value?value:'';}}};Element._attributeTranslations.has={};$w('colSpan rowSpan vAlign dateTime accessKey tabIndex '+'encType maxLength readOnly longDesc').each(function(attr){Element._attributeTranslations.write.names[attr.toLowerCase()]=attr;Element._attributeTranslations.has[attr.toLowerCase()]=attr;});(function(v){Object.extend(v,{href:v._getAttr,src:v._getAttr,type:v._getAttr,action:v._getAttrNode,disabled:v._flag,checked:v._flag,readonly:v._flag,multiple:v._flag,onload:v._getEv,onunload:v._getEv,onclick:v._getEv,ondblclick:v._getEv,onmousedown:v._getEv,onmouseup:v._getEv,onmouseover:v._getEv,onmousemove:v._getEv,onmouseout:v._getEv,onfocus:v._getEv,onblur:v._getEv,onkeypress:v._getEv,onkeydown:v._getEv,onkeyup:v._getEv,onsubmit:v._getEv,onreset:v._getEv,onselect:v._getEv,onchange:v._getEv});})(Element._attributeTranslations.read.values);}
else if(Prototype.Browser.Gecko&&/rv:1\.8\.0/.test(navigator.userAgent)){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1)?0.999999:(value==='')?'':(value<0.00001)?0:value;return element;};}
else if(Prototype.Browser.WebKit){Element.Methods.setOpacity=function(element,value){element=$(element);element.style.opacity=(value==1||value==='')?'':(value<0.00001)?0:value;if(value==1)
if(element.tagName=='IMG'&&element.width){element.width++;element.width--;}else try{var n=document.createTextNode(' ');element.appendChild(n);element.removeChild(n);}catch(e){}
return element;};Element.Methods.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 Element._returnOffset(valueL,valueT);};}
if(Prototype.Browser.IE||Prototype.Browser.Opera){Element.Methods.update=function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content))return element.update().insert(content);content=Object.toHTML(content);var tagName=element.tagName.toUpperCase();if(tagName in Element._insertionTranslations.tags){$A(element.childNodes).each(function(node){element.removeChild(node)});Element._getContentFromAnonymousElement(tagName,content.stripScripts()).each(function(node){element.appendChild(node)});}
else element.innerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;};}
if('outerHTML'in document.createElement('div')){Element.Methods.replace=function(element,content){element=$(element);if(content&&content.toElement)content=content.toElement();if(Object.isElement(content)){element.parentNode.replaceChild(content,element);return element;}
content=Object.toHTML(content);var parent=element.parentNode,tagName=parent.tagName.toUpperCase();if(Element._insertionTranslations.tags[tagName]){var nextSibling=element.next();var fragments=Element._getContentFromAnonymousElement(tagName,content.stripScripts());parent.removeChild(element);if(nextSibling)
fragments.each(function(node){parent.insertBefore(node,nextSibling)});else
fragments.each(function(node){parent.appendChild(node)});}
else element.outerHTML=content.stripScripts();content.evalScripts.bind(content).defer();return element;};}
Element._returnOffset=function(l,t){var result=[l,t];result.left=l;result.top=t;return result;};Element._getContentFromAnonymousElement=function(tagName,html){var div=new Element('div'),t=Element._insertionTranslations.tags[tagName];if(t){div.innerHTML=t[0]+html+t[1];t[2].times(function(){div=div.firstChild});}else div.innerHTML=html;return $A(div.childNodes);};Element._insertionTranslations={before:function(element,node){element.parentNode.insertBefore(node,element);},top:function(element,node){element.insertBefore(node,element.firstChild);},bottom:function(element,node){element.appendChild(node);},after:function(element,node){element.parentNode.insertBefore(node,element.nextSibling);},tags:{TABLE:['<table>','</table>',1],TBODY:['<table><tbody>','</tbody></table>',2],TR:['<table><tbody><tr>','</tr></tbody></table>',3],TD:['<table><tbody><tr><td>','</td></tr></tbody></table>',4],SELECT:['<select>','</select>',1]}};(function(){Object.extend(this.tags,{THEAD:this.tags.TBODY,TFOOT:this.tags.TBODY,TH:this.tags.TD});}).call(Element._insertionTranslations);Element.Methods.Simulated={hasAttribute:function(element,attribute){attribute=Element._attributeTranslations.has[attribute]||attribute;var node=$(element).getAttributeNode(attribute);return node&&node.specified;}};Element.Methods.ByTag={};Object.extend(Element,Element.Methods);if(!Prototype.BrowserFeatures.ElementExtensions&&document.createElement('div').__proto__){window.HTMLElement={};window.HTMLElement.prototype=document.createElement('div').__proto__;Prototype.BrowserFeatures.ElementExtensions=true;}
Element.extend=(function(){if(Prototype.BrowserFeatures.SpecificElementExtensions)
return Prototype.K;var Methods={},ByTag=Element.Methods.ByTag;var extend=Object.extend(function(element){if(!element||element._extendedByPrototype||element.nodeType!=1||element==window)return element;var methods=Object.clone(Methods),tagName=element.tagName,property,value;if(ByTag[tagName])Object.extend(methods,ByTag[tagName]);for(property in methods){value=methods[property];if(Object.isFunction(value)&&!(property in element))
element[property]=value.methodize();}
element._extendedByPrototype=Prototype.emptyFunction;return element;},{refresh:function(){if(!Prototype.BrowserFeatures.ElementExtensions){Object.extend(Methods,Element.Methods);Object.extend(Methods,Element.Methods.Simulated);}}});extend.refresh();return extend;})();Element.hasAttribute=function(element,attribute){if(element.hasAttribute)return element.hasAttribute(attribute);return Element.Methods.Simulated.hasAttribute(element,attribute);};Element.addMethods=function(methods){var F=Prototype.BrowserFeatures,T=Element.Methods.ByTag;if(!methods){Object.extend(Form,Form.Methods);Object.extend(Form.Element,Form.Element.Methods);Object.extend(Element.Methods.ByTag,{"FORM":Object.clone(Form.Methods),"INPUT":Object.clone(Form.Element.Methods),"SELECT":Object.clone(Form.Element.Methods),"TEXTAREA":Object.clone(Form.Element.Methods)});}
if(arguments.length==2){var tagName=methods;methods=arguments[1];}
if(!tagName)Object.extend(Element.Methods,methods||{});else{if(Object.isArray(tagName))tagName.each(extend);else extend(tagName);}
function extend(tagName){tagName=tagName.toUpperCase();if(!Element.Methods.ByTag[tagName])
Element.Methods.ByTag[tagName]={};Object.extend(Element.Methods.ByTag[tagName],methods);}
function copy(methods,destination,onlyIfAbsent){onlyIfAbsent=onlyIfAbsent||false;for(var property in methods){var value=methods[property];if(!Object.isFunction(value))continue;if(!onlyIfAbsent||!(property in destination))
destination[property]=value.methodize();}}
function findDOMClass(tagName){var klass;var trans={"OPTGROUP":"OptGroup","TEXTAREA":"TextArea","P":"Paragraph","FIELDSET":"FieldSet","UL":"UList","OL":"OList","DL":"DList","DIR":"Directory","H1":"Heading","H2":"Heading","H3":"Heading","H4":"Heading","H5":"Heading","H6":"Heading","Q":"Quote","INS":"Mod","DEL":"Mod","A":"Anchor","IMG":"Image","CAPTION":"TableCaption","COL":"TableCol","COLGROUP":"TableCol","THEAD":"TableSection","TFOOT":"TableSection","TBODY":"TableSection","TR":"TableRow","TH":"TableCell","TD":"TableCell","FRAMESET":"FrameSet","IFRAME":"IFrame"};if(trans[tagName])klass='HTML'+trans[tagName]+'Element';if(window[klass])return window[klass];klass='HTML'+tagName+'Element';if(window[klass])return window[klass];klass='HTML'+tagName.capitalize()+'Element';if(window[klass])return window[klass];window[klass]={};window[klass].prototype=document.createElement(tagName).__proto__;return window[klass];}
if(F.ElementExtensions){copy(Element.Methods,HTMLElement.prototype);copy(Element.Methods.Simulated,HTMLElement.prototype,true);}
if(F.SpecificElementExtensions){for(var tag in Element.Methods.ByTag){var klass=findDOMClass(tag);if(Object.isUndefined(klass))continue;copy(T[tag],klass.prototype);}}
Object.extend(Element,Element.Methods);delete Element.ByTag;if(Element.extend.refresh)Element.extend.refresh();Element.cache={};};document.viewport={getDimensions:function(){var dimensions={};var B=Prototype.Browser;$w('width height').each(function(d){var D=d.capitalize();dimensions[d]=(B.WebKit&&!document.evaluate)?self['inner'+D]:(B.Opera)?document.body['client'+D]:document.documentElement['client'+D];});return dimensions;},getWidth:function(){return this.getDimensions().width;},getHeight:function(){return this.getDimensions().height;},getScrollOffsets:function(){return Element._returnOffset(window.pageXOffset||document.documentElement.scrollLeft||document.body.scrollLeft,window.pageYOffset||document.documentElement.scrollTop||document.body.scrollTop);}};var Selector=Class.create({initialize:function(expression){this.expression=expression.strip();this.compileMatcher();},shouldUseXPath:function(){if(!Prototype.BrowserFeatures.XPath)return false;var e=this.expression;if(Prototype.Browser.WebKit&&(e.include("-of-type")||e.include(":empty")))
return false;if((/(\[[\w-]*?:|:checked)/).test(this.expression))
return false;return true;},compileMatcher:function(){if(this.shouldUseXPath())
return this.compileXPathMatcher();var e=this.expression,ps=Selector.patterns,h=Selector.handlers,c=Selector.criteria,le,p,m;if(Selector._cache[e]){this.matcher=Selector._cache[e];return;}
this.matcher=["this.matcher = function(root) {","var r = root, h = Selector.handlers, c = false, n;"];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in ps){p=ps[i];if(m=e.match(p)){this.matcher.push(Object.isFunction(c[i])?c[i](m):new Template(c[i]).evaluate(m));e=e.replace(m[0],'');break;}}}
this.matcher.push("return h.unique(n);\n}");eval(this.matcher.join('\n'));Selector._cache[this.expression]=this.matcher;},compileXPathMatcher:function(){var e=this.expression,ps=Selector.patterns,x=Selector.xpath,le,m;if(Selector._cache[e]){this.xpath=Selector._cache[e];return;}
this.matcher=['.//*'];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in ps){if(m=e.match(ps[i])){this.matcher.push(Object.isFunction(x[i])?x[i](m):new Template(x[i]).evaluate(m));e=e.replace(m[0],'');break;}}}
this.xpath=this.matcher.join('');Selector._cache[this.expression]=this.xpath;},findElements:function(root){root=root||document;if(this.xpath)return document._getElementsByXPath(this.xpath,root);return this.matcher(root);},match:function(element){this.tokens=[];var e=this.expression,ps=Selector.patterns,as=Selector.assertions;var le,p,m;while(e&&le!==e&&(/\S/).test(e)){le=e;for(var i in ps){p=ps[i];if(m=e.match(p)){if(as[i]){this.tokens.push([i,Object.clone(m)]);e=e.replace(m[0],'');}else{return this.findElements(document).include(element);}}}}
var match=true,name,matches;for(var i=0,token;token=this.tokens[i];i++){name=token[0],matches=token[1];if(!Selector.assertions[name](element,matches)){match=false;break;}}
return match;},toString:function(){return this.expression;},inspect:function(){return"#<Selector:"+this.expression.inspect()+">";}});Object.extend(Selector,{_cache:{},xpath:{descendant:"//*",child:"/*",adjacent:"/following-sibling::*[1]",laterSibling:'/following-sibling::*',tagName:function(m){if(m[1]=='*')return'';return"[local-name()='"+m[1].toLowerCase()+"' or local-name()='"+m[1].toUpperCase()+"']";},className:"[contains(concat(' ', @class, ' '), ' #{1} ')]",id:"[@id='#{1}']",attrPresence:function(m){m[1]=m[1].toLowerCase();return new Template("[@#{1}]").evaluate(m);},attr:function(m){m[1]=m[1].toLowerCase();m[3]=m[5]||m[6];return new Template(Selector.xpath.operators[m[2]]).evaluate(m);},pseudo:function(m){var h=Selector.xpath.pseudos[m[1]];if(!h)return'';if(Object.isFunction(h))return h(m);return new Template(Selector.xpath.pseudos[m[1]]).evaluate(m);},operators:{'=':"[@#{1}='#{3}']",'!=':"[@#{1}!='#{3}']",'^=':"[starts-with(@#{1}, '#{3}')]",'$=':"[substring(@#{1}, (string-length(@#{1}) - string-length('#{3}') + 1))='#{3}']",'*=':"[contains(@#{1}, '#{3}')]",'~=':"[contains(concat(' ', @#{1}, ' '), ' #{3} ')]",'|=':"[contains(concat('-', @#{1}, '-'), '-#{3}-')]"},pseudos:{'first-child':'[not(preceding-sibling::*)]','last-child':'[not(following-sibling::*)]','only-child':'[not(preceding-sibling::* or following-sibling::*)]','empty':"[count(*) = 0 and (count(text()) = 0 or translate(text(), ' \t\r\n', '') = '')]",'checked':"[@checked]",'disabled':"[@disabled]",'enabled':"[not(@disabled)]",'not':function(m){var e=m[6],p=Selector.patterns,x=Selector.xpath,le,v;var exclusion=[];while(e&&le!=e&&(/\S/).test(e)){le=e;for(var i in p){if(m=e.match(p[i])){v=Object.isFunction(x[i])?x[i](m):new Template(x[i]).evaluate(m);exclusion.push("("+v.substring(1,v.length-1)+")");e=e.replace(m[0],'');break;}}}
return"[not("+exclusion.join(" and ")+")]";},'nth-child':function(m){return Selector.xpath.pseudos.nth("(count(./preceding-sibling::*) + 1) ",m);},'nth-last-child':function(m){return Selector.xpath.pseudos.nth("(count(./following-sibling::*) + 1) ",m);},'nth-of-type':function(m){return Selector.xpath.pseudos.nth("position() ",m);},'nth-last-of-type':function(m){return Selector.xpath.pseudos.nth("(last() + 1 - position()) ",m);},'first-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-of-type'](m);},'last-of-type':function(m){m[6]="1";return Selector.xpath.pseudos['nth-last-of-type'](m);},'only-of-type':function(m){var p=Selector.xpath.pseudos;return p['first-of-type'](m)+p['last-of-type'](m);},nth:function(fragment,m){var mm,formula=m[6],predicate;if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';if(mm=formula.match(/^(\d+)$/))
return'['+fragment+"= "+mm[1]+']';if(mm=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(mm[1]=="-")mm[1]=-1;var a=mm[1]?Number(mm[1]):1;var b=mm[2]?Number(mm[2]):0;predicate="[((#{fragment} - #{b}) mod #{a} = 0) and "+"((#{fragment} - #{b}) div #{a} >= 0)]";return new Template(predicate).evaluate({fragment:fragment,a:a,b:b});}}}},criteria:{tagName:'n = h.tagName(n, r, "#{1}", c);      c = false;',className:'n = h.className(n, r, "#{1}", c);    c = false;',id:'n = h.id(n, r, "#{1}", c);           c = false;',attrPresence:'n = h.attrPresence(n, r, "#{1}", c); c = false;',attr:function(m){m[3]=(m[5]||m[6]);return new Template('n = h.attr(n, r, "#{1}", "#{3}", "#{2}", c); c = false;').evaluate(m);},pseudo:function(m){if(m[6])m[6]=m[6].replace(/"/g,'\\"');return new Template('n = h.pseudo(n, "#{1}", "#{6}", r, c); c = false;').evaluate(m);},descendant:'c = "descendant";',child:'c = "child";',adjacent:'c = "adjacent";',laterSibling:'c = "laterSibling";'},patterns:{laterSibling:/^\s*~\s*/,child:/^\s*>\s*/,adjacent:/^\s*\+\s*/,descendant:/^\s/,tagName:/^\s*(\*|[\w\-]+)(\b|$)?/,id:/^#([\w\-\*]+)(\b|$)/,className:/^\.([\w\-\*]+)(\b|$)/,pseudo:/^:((first|last|nth|nth-last|only)(-child|-of-type)|empty|checked|(en|dis)abled|not)(\((.*?)\))?(\b|$|(?=\s|[:+~>]))/,attrPresence:/^\[([\w]+)\]/,attr:/\[((?:[\w-]*:)?[\w-]+)\s*(?:([!^$*~|]?=)\s*((['"])([^\4]*?)\4|([^'"][^\]]*?)))?\]/},assertions:{tagName:function(element,matches){return matches[1].toUpperCase()==element.tagName.toUpperCase();},className:function(element,matches){return Element.hasClassName(element,matches[1]);},id:function(element,matches){return element.id===matches[1];},attrPresence:function(element,matches){return Element.hasAttribute(element,matches[1]);},attr:function(element,matches){var nodeValue=Element.readAttribute(element,matches[1]);return nodeValue&&Selector.operators[matches[2]](nodeValue,matches[5]||matches[6]);}},handlers:{concat:function(a,b){for(var i=0,node;node=b[i];i++)
a.push(node);return a;},mark:function(nodes){var _true=Prototype.emptyFunction;for(var i=0,node;node=nodes[i];i++)
node._countedByPrototype=_true;return nodes;},unmark:function(nodes){for(var i=0,node;node=nodes[i];i++)
node._countedByPrototype=undefined;return nodes;},index:function(parentNode,reverse,ofType){parentNode._countedByPrototype=Prototype.emptyFunction;if(reverse){for(var nodes=parentNode.childNodes,i=nodes.length-1,j=1;i>=0;i--){var node=nodes[i];if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}}else{for(var i=0,j=1,nodes=parentNode.childNodes;node=nodes[i];i++)
if(node.nodeType==1&&(!ofType||node._countedByPrototype))node.nodeIndex=j++;}},unique:function(nodes){if(nodes.length==0)return nodes;var results=[],n;for(var i=0,l=nodes.length;i<l;i++)
if(!(n=nodes[i])._countedByPrototype){n._countedByPrototype=Prototype.emptyFunction;results.push(Element.extend(n));}
return Selector.handlers.unmark(results);},descendant:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
h.concat(results,node.getElementsByTagName('*'));return results;},child:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++){for(var j=0,child;child=node.childNodes[j];j++)
if(child.nodeType==1&&child.tagName!='!')results.push(child);}
return results;},adjacent:function(nodes){for(var i=0,results=[],node;node=nodes[i];i++){var next=this.nextElementSibling(node);if(next)results.push(next);}
return results;},laterSibling:function(nodes){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
h.concat(results,Element.nextSiblings(node));return results;},nextElementSibling:function(node){while(node=node.nextSibling)
if(node.nodeType==1)return node;return null;},previousElementSibling:function(node){while(node=node.previousSibling)
if(node.nodeType==1)return node;return null;},tagName:function(nodes,root,tagName,combinator){var uTagName=tagName.toUpperCase();var results=[],h=Selector.handlers;if(nodes){if(combinator){if(combinator=="descendant"){for(var i=0,node;node=nodes[i];i++)
h.concat(results,node.getElementsByTagName(tagName));return results;}else nodes=this[combinator](nodes);if(tagName=="*")return nodes;}
for(var i=0,node;node=nodes[i];i++)
if(node.tagName.toUpperCase()===uTagName)results.push(node);return results;}else return root.getElementsByTagName(tagName);},id:function(nodes,root,id,combinator){var targetNode=$(id),h=Selector.handlers;if(!targetNode)return[];if(!nodes&&root==document)return[targetNode];if(nodes){if(combinator){if(combinator=='child'){for(var i=0,node;node=nodes[i];i++)
if(targetNode.parentNode==node)return[targetNode];}else if(combinator=='descendant'){for(var i=0,node;node=nodes[i];i++)
if(Element.descendantOf(targetNode,node))return[targetNode];}else if(combinator=='adjacent'){for(var i=0,node;node=nodes[i];i++)
if(Selector.handlers.previousElementSibling(targetNode)==node)
return[targetNode];}else nodes=h[combinator](nodes);}
for(var i=0,node;node=nodes[i];i++)
if(node==targetNode)return[targetNode];return[];}
return(targetNode&&Element.descendantOf(targetNode,root))?[targetNode]:[];},className:function(nodes,root,className,combinator){if(nodes&&combinator)nodes=this[combinator](nodes);return Selector.handlers.byClassName(nodes,root,className);},byClassName:function(nodes,root,className){if(!nodes)nodes=Selector.handlers.descendant([root]);var needle=' '+className+' ';for(var i=0,results=[],node,nodeClassName;node=nodes[i];i++){nodeClassName=node.className;if(nodeClassName.length==0)continue;if(nodeClassName==className||(' '+nodeClassName+' ').include(needle))
results.push(node);}
return results;},attrPresence:function(nodes,root,attr,combinator){if(!nodes)nodes=root.getElementsByTagName("*");if(nodes&&combinator)nodes=this[combinator](nodes);var results=[];for(var i=0,node;node=nodes[i];i++)
if(Element.hasAttribute(node,attr))results.push(node);return results;},attr:function(nodes,root,attr,value,operator,combinator){if(!nodes)nodes=root.getElementsByTagName("*");if(nodes&&combinator)nodes=this[combinator](nodes);var handler=Selector.operators[operator],results=[];for(var i=0,node;node=nodes[i];i++){var nodeValue=Element.readAttribute(node,attr);if(nodeValue===null)continue;if(handler(nodeValue,value))results.push(node);}
return results;},pseudo:function(nodes,name,value,root,combinator){if(nodes&&combinator)nodes=this[combinator](nodes);if(!nodes)nodes=root.getElementsByTagName("*");return Selector.pseudos[name](nodes,value,root);}},pseudos:{'first-child':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(Selector.handlers.previousElementSibling(node))continue;results.push(node);}
return results;},'last-child':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(Selector.handlers.nextElementSibling(node))continue;results.push(node);}
return results;},'only-child':function(nodes,value,root){var h=Selector.handlers;for(var i=0,results=[],node;node=nodes[i];i++)
if(!h.previousElementSibling(node)&&!h.nextElementSibling(node))
results.push(node);return results;},'nth-child':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root);},'nth-last-child':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,true);},'nth-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,false,true);},'nth-last-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,formula,root,true,true);},'first-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,"1",root,false,true);},'last-of-type':function(nodes,formula,root){return Selector.pseudos.nth(nodes,"1",root,true,true);},'only-of-type':function(nodes,formula,root){var p=Selector.pseudos;return p['last-of-type'](p['first-of-type'](nodes,formula,root),formula,root);},getIndices:function(a,b,total){if(a==0)return b>0?[b]:[];return $R(1,total).inject([],function(memo,i){if(0==(i-b)%a&&(i-b)/a>=0)memo.push(i);return memo;});},nth:function(nodes,formula,root,reverse,ofType){if(nodes.length==0)return[];if(formula=='even')formula='2n+0';if(formula=='odd')formula='2n+1';var h=Selector.handlers,results=[],indexed=[],m;h.mark(nodes);for(var i=0,node;node=nodes[i];i++){if(!node.parentNode._countedByPrototype){h.index(node.parentNode,reverse,ofType);indexed.push(node.parentNode);}}
if(formula.match(/^\d+$/)){formula=Number(formula);for(var i=0,node;node=nodes[i];i++)
if(node.nodeIndex==formula)results.push(node);}else if(m=formula.match(/^(-?\d*)?n(([+-])(\d+))?/)){if(m[1]=="-")m[1]=-1;var a=m[1]?Number(m[1]):1;var b=m[2]?Number(m[2]):0;var indices=Selector.pseudos.getIndices(a,b,nodes.length);for(var i=0,node,l=indices.length;node=nodes[i];i++){for(var j=0;j<l;j++)
if(node.nodeIndex==indices[j])results.push(node);}}
h.unmark(nodes);h.unmark(indexed);return results;},'empty':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++){if(node.tagName=='!'||(node.firstChild&&!node.innerHTML.match(/^\s*$/)))continue;results.push(node);}
return results;},'not':function(nodes,selector,root){var h=Selector.handlers,selectorType,m;var exclusions=new Selector(selector).findElements(root);h.mark(exclusions);for(var i=0,results=[],node;node=nodes[i];i++)
if(!node._countedByPrototype)results.push(node);h.unmark(exclusions);return results;},'enabled':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(!node.disabled)results.push(node);return results;},'disabled':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(node.disabled)results.push(node);return results;},'checked':function(nodes,value,root){for(var i=0,results=[],node;node=nodes[i];i++)
if(node.checked)results.push(node);return results;}},operators:{'=':function(nv,v){return nv==v;},'!=':function(nv,v){return nv!=v;},'^=':function(nv,v){return nv.startsWith(v);},'$=':function(nv,v){return nv.endsWith(v);},'*=':function(nv,v){return nv.include(v);},'~=':function(nv,v){return(' '+nv+' ').include(' '+v+' ');},'|=':function(nv,v){return('-'+nv.toUpperCase()+'-').include('-'+v.toUpperCase()+'-');}},split:function(expression){var expressions=[];expression.scan(/(([\w#:.~>+()\s-]+|\*|\[.*?\])+)\s*(,|$)/,function(m){expressions.push(m[1].strip());});return expressions;},matchElements:function(elements,expression){var matches=$$(expression),h=Selector.handlers;h.mark(matches);for(var i=0,results=[],element;element=elements[i];i++)
if(element._countedByPrototype)results.push(element);h.unmark(matches);return results;},findElement:function(elements,expression,index){if(Object.isNumber(expression)){index=expression;expression=false;}
return Selector.matchElements(elements,expression||'*')[index||0];},findChildElements:function(element,expressions){expressions=Selector.split(expressions.join(','));var results=[],h=Selector.handlers;for(var i=0,l=expressions.length,selector;i<l;i++){selector=new Selector(expressions[i].strip());h.concat(results,selector.findElements(element));}
return(l>1)?h.unique(results):results;}});if(Prototype.Browser.IE){Object.extend(Selector.handlers,{concat:function(a,b){for(var i=0,node;node=b[i];i++)
if(node.tagName!=="!")a.push(node);return a;},unmark:function(nodes){for(var i=0,node;node=nodes[i];i++)
node.removeAttribute('_countedByPrototype');return nodes;}});}
function $$(){return Selector.findChildElements(document,$A(arguments));}
var Form={reset:function(form){$(form).reset();return form;},serializeElements:function(elements,options){if(typeof options!='object')options={hash:!!options};else if(Object.isUndefined(options.hash))options.hash=true;var key,value,submitted=false,submit=options.submit;var data=elements.inject({},function(result,element){if(!element.disabled&&element.name){key=element.name;value=$(element).getValue();if(value!=null&&(element.type!='submit'||(!submitted&&submit!==false&&(!submit||key==submit)&&(submitted=true)))){if(key in result){if(!Object.isArray(result[key]))result[key]=[result[key]];result[key].push(value);}
else result[key]=value;}}
return result;});return options.hash?data:Object.toQueryString(data);}};Form.Methods={serialize:function(form,options){return Form.serializeElements(Form.getElements(form),options);},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(form).invoke('disable');return form;},enable:function(form){form=$(form);Form.getElements(form).invoke('enable');return form;},findFirstElement:function(form){var elements=$(form).getElements().findAll(function(element){return'hidden'!=element.type&&!element.disabled;});var firstByIndex=elements.findAll(function(element){return element.hasAttribute('tabIndex')&&element.tabIndex>=0;}).sortBy(function(element){return element.tabIndex}).first();return firstByIndex?firstByIndex:elements.find(function(element){return['input','select','textarea'].include(element.tagName.toLowerCase());});},focusFirstElement:function(form){form=$(form);form.findFirstElement().activate();return form;},request:function(form,options){form=$(form),options=Object.clone(options||{});var params=options.parameters,action=form.readAttribute('action')||'';if(action.blank())action=window.location.href;options.parameters=form.serialize(true);if(params){if(Object.isString(params))params=params.toQueryParams();Object.extend(options.parameters,params);}
if(form.hasAttribute('method')&&!options.method)
options.method=form.method;return new Ajax.Request(action,options);}};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 Object.toQueryString(pair);}}
return'';},getValue:function(element){element=$(element);var method=element.tagName.toLowerCase();return Form.Element.Serializers[method](element);},setValue:function(element,value){element=$(element);var method=element.tagName.toLowerCase();Form.Element.Serializers[method](element,value);return element;},clear:function(element){$(element).value='';return element;},present:function(element){return $(element).value!='';},activate:function(element){element=$(element);try{element.focus();if(element.select&&(element.tagName.toLowerCase()!='input'||!['button','reset','submit'].include(element.type)))
element.select();}catch(e){}
return element;},disable:function(element){element=$(element);element.blur();element.disabled=true;return element;},enable:function(element){element=$(element);element.disabled=false;return element;}};var Field=Form.Element;var $F=Form.Element.Methods.getValue;Form.Element.Serializers={input:function(element,value){switch(element.type.toLowerCase()){case'checkbox':case'radio':return Form.Element.Serializers.inputSelector(element,value);default:return Form.Element.Serializers.textarea(element,value);}},inputSelector:function(element,value){if(Object.isUndefined(value))return element.checked?element.value:null;else element.checked=!!value;},textarea:function(element,value){if(Object.isUndefined(value))return element.value;else element.value=value;},select:function(element,index){if(Object.isUndefined(index))
return this[element.type=='select-one'?'selectOne':'selectMany'](element);else{var opt,value,single=!Object.isArray(index);for(var i=0,length=element.length;i<length;i++){opt=element.options[i];value=this.optionValue(opt);if(single){if(value==index){opt.selected=true;return;}}
else opt.selected=index.include(value);}}},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=Class.create(PeriodicalExecuter,{initialize:function($super,element,frequency,callback){$super(callback,frequency);this.element=$(element);this.lastValue=this.getValue();},execute:function(){var value=this.getValue();if(Object.isString(this.lastValue)&&Object.isString(value)?this.lastValue!=value:String(this.lastValue)!=String(value)){this.callback(this.element,value);this.lastValue=value;}}});Form.Element.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.Element.getValue(this.element);}});Form.Observer=Class.create(Abstract.TimedObserver,{getValue:function(){return Form.serialize(this.element);}});Abstract.EventObserver=Class.create({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,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(Abstract.EventObserver,{getValue:function(){return Form.Element.getValue(this.element);}});Form.EventObserver=Class.create(Abstract.EventObserver,{getValue:function(){return Form.serialize(this.element);}});if(!window.Event)var Event={};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,KEY_INSERT:45,cache:{},relatedTarget:function(event){var element;switch(event.type){case'mouseover':element=event.fromElement;break;case'mouseout':element=event.toElement;break;default:return null;}
return Element.extend(element);}});Event.Methods=(function(){var isButton;if(Prototype.Browser.IE){var buttonMap={0:1,1:4,2:2};isButton=function(event,code){return event.button==buttonMap[code];};}else if(Prototype.Browser.WebKit){isButton=function(event,code){switch(code){case 0:return event.which==1&&!event.metaKey;case 1:return event.which==1&&event.metaKey;default:return false;}};}else{isButton=function(event,code){return event.which?(event.which===code+1):(event.button===code);};}
return{isLeftClick:function(event){return isButton(event,0)},isMiddleClick:function(event){return isButton(event,1)},isRightClick:function(event){return isButton(event,2)},element:function(event){var node=Event.extend(event).target;return Element.extend(node.nodeType==Node.TEXT_NODE?node.parentNode:node);},findElement:function(event,expression){var element=Event.element(event);if(!expression)return element;var elements=[element].concat(element.ancestors());return Selector.findElement(elements,expression,0);},pointer:function(event){return{x:event.pageX||(event.clientX+
(document.documentElement.scrollLeft||document.body.scrollLeft)),y:event.pageY||(event.clientY+
(document.documentElement.scrollTop||document.body.scrollTop))};},pointerX:function(event){return Event.pointer(event).x},pointerY:function(event){return Event.pointer(event).y},stop:function(event){Event.extend(event);event.preventDefault();event.stopPropagation();event.stopped=true;}};})();Event.extend=(function(){var methods=Object.keys(Event.Methods).inject({},function(m,name){m[name]=Event.Methods[name].methodize();return m;});if(Prototype.Browser.IE){Object.extend(methods,{stopPropagation:function(){this.cancelBubble=true},preventDefault:function(){this.returnValue=false},inspect:function(){return"[object Event]"}});return function(event){if(!event)return false;if(event._extendedByPrototype)return event;event._extendedByPrototype=Prototype.emptyFunction;var pointer=Event.pointer(event);Object.extend(event,{target:event.srcElement,relatedTarget:Event.relatedTarget(event),pageX:pointer.x,pageY:pointer.y});return Object.extend(event,methods);};}else{Event.prototype=Event.prototype||document.createEvent("HTMLEvents").__proto__;Object.extend(Event.prototype,methods);return Prototype.K;}})();Object.extend(Event,(function(){var cache=Event.cache;function getEventID(element){if(element._prototypeEventID)return element._prototypeEventID[0];arguments.callee.id=arguments.callee.id||1;return element._prototypeEventID=[++arguments.callee.id];}
function getDOMEventName(eventName){if(eventName&&eventName.include(':'))return"dataavailable";return eventName;}
function getCacheForID(id){return cache[id]=cache[id]||{};}
function getWrappersForEventName(id,eventName){var c=getCacheForID(id);return c[eventName]=c[eventName]||[];}
function createWrapper(element,eventName,handler){var id=getEventID(element);var c=getWrappersForEventName(id,eventName);if(c.pluck("handler").include(handler))return false;var wrapper=function(event){if(!Event||!Event.extend||(event.eventName&&event.eventName!=eventName))
return false;Event.extend(event);handler.call(element,event);};wrapper.handler=handler;c.push(wrapper);return wrapper;}
function findWrapper(id,eventName,handler){var c=getWrappersForEventName(id,eventName);return c.find(function(wrapper){return wrapper.handler==handler});}
function destroyWrapper(id,eventName,handler){var c=getCacheForID(id);if(!c[eventName])return false;c[eventName]=c[eventName].without(findWrapper(id,eventName,handler));}
function destroyCache(){for(var id in cache)
for(var eventName in cache[id])
cache[id][eventName]=null;}
if(window.attachEvent){window.attachEvent("onunload",destroyCache);}
return{observe:function(element,eventName,handler){element=$(element);var name=getDOMEventName(eventName);var wrapper=createWrapper(element,eventName,handler);if(!wrapper)return element;if(element.addEventListener){element.addEventListener(name,wrapper,false);}else{element.attachEvent("on"+name,wrapper);}
return element;},stopObserving:function(element,eventName,handler){element=$(element);var id=getEventID(element),name=getDOMEventName(eventName);if(!handler&&eventName){getWrappersForEventName(id,eventName).each(function(wrapper){Event.stopObserving(element,eventName,wrapper.handler);});return element;}else if(!eventName){Object.keys(getCacheForID(id)).without("element").each(function(eventName){Event.stopObserving(element,eventName);});return element;}
var wrapper=findWrapper(id,eventName,handler);if(!wrapper)return element;if(element.removeEventListener){element.removeEventListener(name,wrapper,false);}else{element.detachEvent("on"+name,wrapper);}
destroyWrapper(id,eventName,handler);return element;},fire:function(element,eventName,memo){element=$(element);if(element==document&&document.createEvent&&!element.dispatchEvent)
element=document.documentElement;var event;if(document.createEvent){event=document.createEvent("HTMLEvents");event.initEvent("dataavailable",true,true);}else{event=document.createEventObject();event.eventType="ondataavailable";}
event.eventName=eventName;event.memo=memo||{};if(document.createEvent){element.dispatchEvent(event);}else{element.fireEvent(event.eventType,event);}
return Event.extend(event);}};})());Object.extend(Event,Event.Methods);Element.addMethods({fire:Event.fire,observe:Event.observe,stopObserving:Event.stopObserving});Object.extend(document,{fire:Element.Methods.fire.methodize(),observe:Element.Methods.observe.methodize(),stopObserving:Element.Methods.stopObserving.methodize(),loaded:false});(function(){var timer;function fireContentLoadedEvent(){if(document.loaded)return;if(timer)window.clearInterval(timer);document.fire("dom:loaded");document.loaded=true;}
if(document.addEventListener){if(Prototype.Browser.WebKit){timer=window.setInterval(function(){if(/loaded|complete/.test(document.readyState))
fireContentLoadedEvent();},0);Event.observe(window,"load",fireContentLoadedEvent);}else{document.addEventListener("DOMContentLoaded",fireContentLoadedEvent,false);}}else{document.write("<script id=__onDOMContentLoaded defer src=//:><\/script>");$("__onDOMContentLoaded").onreadystatechange=function(){if(this.readyState=="complete"){this.onreadystatechange=null;fireContentLoadedEvent();}};}})();Hash.toQueryString=Object.toQueryString;var Toggle={display:Element.toggle};Element.Methods.childOf=Element.Methods.descendantOf;var Insertion={Before:function(element,content){return Element.insert(element,{before:content});},Top:function(element,content){return Element.insert(element,{top:content});},Bottom:function(element,content){return Element.insert(element,{bottom:content});},After:function(element,content){return Element.insert(element,{after:content});}};var $continue=new Error('"throw $continue" is deprecated, use "return" instead');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;},within:function(element,x,y){if(this.includeScrollOffsets)
return this.withinIncludingScrolloffsets(element,x,y);this.xcomp=x;this.ycomp=y;this.offset=Element.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=Element.cumulativeScrollOffset(element);this.xcomp=x+offsetcache[0]-this.deltaX;this.ycomp=y+offsetcache[1]-this.deltaY;this.offset=Element.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;},cumulativeOffset:Element.Methods.cumulativeOffset,positionedOffset:Element.Methods.positionedOffset,absolutize:function(element){Position.prepare();return Element.absolutize(element);},relativize:function(element){Position.prepare();return Element.relativize(element);},realOffset:Element.Methods.cumulativeScrollOffset,offsetParent:Element.Methods.getOffsetParent,page:Element.Methods.viewportOffset,clone:function(source,target,options){options=options||{};return Element.clonePosition(target,source,options);}};if(!document.getElementsByClassName)document.getElementsByClassName=function(instanceMethods){function iter(name){return name.blank()?null:"[contains(concat(' ', @class, ' '), ' "+name+" ')]";}
instanceMethods.getElementsByClassName=Prototype.BrowserFeatures.XPath?function(element,className){className=className.toString().strip();var cond=/\s/.test(className)?$w(className).map(iter).join(''):iter(className);return cond?document._getElementsByXPath('.//*'+cond,element):[];}:function(element,className){className=className.toString().strip();var elements=[],classNames=(/\s/.test(className)?$w(className):null);if(!classNames&&!className)return elements;var nodes=$(element).getElementsByTagName('*');className=' '+className+' ';for(var i=0,child,cn;child=nodes[i];i++){if(child.className&&(cn=' '+child.className+' ')&&(cn.include(className)||(classNames&&classNames.all(function(name){return!name.toString().blank()&&cn.include(' '+name+' ');}))))
elements.push(Element.extend(child));}
return elements;};return function(className,parentElement){return $(parentElement||document.body).getElementsByClassName(className);};}(Element.Methods);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);Element.addMethods();/* --------- /javascripts/dashwire.js --------- */ 

Dashwire=function(){};Dashwire.Base=Class.create();Dashwire.Logger={log:function(message)
{if(window.console!=null)
{console.log(message)}}}
window.log=Dashwire.Logger.log
window.track=function(path)
{if(window.pageTracker)
{pageTracker._trackPageview(path);}}
function onData(data)
{try
{log(data);eval("Dashwire.PushServer.action = "+data);action=Dashwire.PushServer.action;log(action);if(action!=null&&Dashwire[action.module])
{Dashwire[action.module][action.method](action.parameters);dw.audible_notification(action.module,action.method,action.parameters);}}
catch(e)
{log(e);}}
Dashwire.Utility={reload:function()
{window.location.reload(true);}};Dashwire.PushServer={onConnect:function(status)
{},onDisconnect:function()
{},onData:function(data)
{log(data);}};Object.extend(Dashwire.Base.prototype,{initialize:function()
{this.observe_resize();},observe_resize:function()
{Event.observe(window,'resize',function(){this.resize()}.bind(this),false);},audible_notification:function(module,method,parameters)
{if(module=='Messages'&&method=='created'&&parameters.length==1&&parameters[0].message_type=='received')
{if(Prototype.Browser.IE)
{$('dashwire_flash').playAudibleNotification();}
else
{$('dashwire_embed').playAudibleNotification();}}},reload:function()
{Dashwire.Window.close_all_windows();this.reload_templates();this.reload_media();this.popup_photos();},filter_backspace:function(e)
{var event=Event.extend(e);var element=Element.extend(event.target);if(event.keyCode==Event.KEY_BACKSPACE)
{if((element.tagName.toLowerCase()=='input'&&(element.type.toLowerCase()=='text'||element.type.toLowerCase()=='password'))||element.tagName.toLowerCase()=='textarea')
{return;}
event.stop();}},start2:function()
{this.data={};Dashwire.Window.overlay=this.overlay=new Dashwire.Overlay('overlay',{});this.overlay.resize();this.overlay.dom_element.style.opacity="0.85"
this.overlay.dom_element.style.filter='alpha(opacity='+85+')';Dashwire.Window.windows=this.windows={};['upload','bookmarks','rotate','group','profile_editor','publish','send','share','feedback','modules','messages','phones','calls','contact_messages','message','compose','contact','contacts','avatar','confirm','media','media_sheet','media_manager','personalize','post','news','settings_editor','unsent'].each(function(name){this.windows[name]=new Dashwire.Window(name+'_window','popup',name,{width:'35em'});}.bind(this));this.windows.contact.reposition=this.windows.contact.reposition_top;this.thumbnail_sizes={'micro':16,'mini':32,'thumb':64,'mobile':128,'medium':320,'big':480,'large':640};this.photo_page=0;this.news_page=1;this.news_pages_total=0;Event.observe(document,'keypress',function(e){return dw.keypress(e);},false);Event.observe(window,'scroll',function(e){return dw.scroll(e);},false);window.onkeypress=this.filter_backspace;window.onkeydown=this.filter_backspace;},start_drag_and_drop:function()
{this.modules=Sortable.create("modules",{endeffect:function(element){Draggable._dragging[element]=false;dw.layout_changed();},starteffect:function(element){Draggable._dragging[element]=true;},tag:'div',overlap:'horizontal',constraint:false});},comment_preview:function()
{var params=Form.serialize('comment_form_id');new Ajax.Request('/comment/preview/',{asynchronous:true,evalScripts:true,parameters:params});},rate:function(element,score)
{var form=$(((element.parentNode).parentNode).id);var score_field=form.down('.rating_score');score_field.value=score;var params=Form.serialize(element.parentNode.parentNode);new Ajax.Request('/rating/create',{asynchronous:true,evalScripts:true,parameters:params});this.activity_indicator_start();},flag:function(element,media_id)
{var params='media_id='+media_id;var args={method:'post',asynchronous:true,evalScripts:true,parameters:params,onLoading:function(){element.innerHTML='Flagging <img src="/images/loader.gif">';},onComplete:function(){element.innerHTML='Flagged';}}
new Ajax.Request('/media/flag',args);},rater_reset:function(element)
{var siblings=element.childNodes;for(var index=0;index<siblings.length;index++)
{var sibling=siblings[index];sibling.src='/images/rating-star-clear.gif';}},rater_highlight:function(element)
{var siblings=element.parentNode.childNodes;var src='/images/rating-star.gif';for(var index=0;index<siblings.length;index++)
{var sibling=siblings[index];sibling.src=src;if(sibling==element)
{src='/images/rating-star-clear.gif';}}},window_remove:function(element,event)
{this.window_collapse(element,event);this.layout_changed();Event.stop(event);},window_collapse:function(element,event)
{element.parentNode.parentNode.hide();},unselect_all:function()
{if(document.selection&&document.selection.empty){document.selection.empty();}else if(window.getSelection){sel=window.getSelection();if(sel&&sel.removeAllRanges){sel.removeAllRanges();}}},visible_modules:function()
{var visible_sections=$$('#modules .section').select(function(section){return section.parentNode.parentNode.parentNode.parentNode.parentNode.style.display!='none';});return visible_sections.collect(function(section){return section.id.sub('_section','');});},layout_changed:function()
{var modules_json='['+this.visible_modules().collect(function(e){return"'"+e+"'"}).join(',')+']';var params=encodeURIComponent('user[layout]')+"="+modules_json;new Ajax.Request('/user/update/',{asynchronous:true,evalScripts:true,parameters:params});},start_module:function(name)
{var moduleRunner=Dashwire.AvailableModules[name.capitalize().camelize()];if(moduleRunner)
{moduleRunner.start();this.windows.modules.close();}},update_modules:function()
{var modules=Form.getElements('modules_form').select(function(element){return element.checked;}).collect(function(element){return element.value});var modules_json='['+modules.collect(function(e){return"'"+e+"'"}).join(',')+']';var params=encodeURIComponent('user[layout]')+"="+modules_json;new Ajax.Request('/user/update/',{asynchronous:false,evalScripts:true,parameters:params});this.windows.modules.close();window.location.reload();},update_mobile_contact_tags:function()
{this.data.mobile_contact_tags=Dashwire.Contacts.tags.keys();},configure_call:function(call)
{this.set_date_time(call);if(call.contact_id)
{var contact=Dashwire.Contacts.get(call.contact_id);if(contact)
{var calls=contact.calls||[];calls.push(call);contact.calls=calls;}}},configure_message:function(message)
{this.set_date_time(message);message.search=message.search+" "+(message.body?message.body.toLowerCase():'');if(message.contact_id)
{var contact=Dashwire.Contacts.get(message.contact_id);if(contact)
{var messages=contact.messages||[];messages.push(message);contact.messages=messages;}}},configure_contact:function(contact)
{},configure_contacts:function()
{this.data.mobile_contacts=Dashwire.Contacts.Indexed.values().select(function(contact){if(contact.telephone&&contact.telephone.mobile)
{return contact.telephone.mobile;}})
this.update_mobile_contact_tags();this.data.sorted_contacts=Dashwire.Contacts.Indexed.values().sortBy(function(contact){return contact.name;})
Dashwire.Calls.Indexed.values().each(function(call){this.configure_call(call);}.bind(this));Dashwire.Messages.Indexed.values().each(function(message){this.configure_message(message);}.bind(this));},resize_modules:function()
{var modules=$('modules')
if(modules!=null)
{max_width=modules.getDimensions().width
this.module_width=parseInt(max_width/4)-2
$$('.module').each(function(m){m.style.width=this.module_width+'px'}.bind(this))
var profile=$('profile_section');if(profile)
{profile.parentNode.parentNode.parentNode.parentNode.parentNode.style.width=(this.module_width*2)+'px';}
var contact_list=$('contact_list');if(contact_list)
{contact_list.style.overflow='hidden';contact_list.style.width=(this.module_width-16)+'px';}
var message_list=$('message_list');if(message_list)
{message_list.style.overflow='hidden';message_list.style.width=(this.module_width-16)+'px';}}},resize:function()
{try{this.resize_modules();if(this.overlay)
{this.overlay.resize();}
if(this.windows!=null)
{if(this.windows.media_sheet.visible())
{this.media_sheet_resize();this.windows.media_sheet.reposition();}
if(this.windows.media_manager.visible())
{m.popup();}
if(this.windows.messages.visible())
{this.windows.messages.maximize('messages_wrapper');this.windows.messages.reposition();}
if(this.windows.contacts.visible())
{this.windows.contacts.maximize(['contacts_container','contacts_tags_container']);this.windows.contacts.reposition_top();}
if(this.windows.contact.visible())
{this.windows.contact.reposition_top();dw.overlay.resize();}
if(this.windows.phones.visible())
{this.windows.phones.maximize('phones_container');this.windows.phones.reposition();}}}catch(err){log("resize failed");}},start_ads:function()
{this.ads=$$('.ad_image').reverse();this.ad_index=0;setTimeout(function(){this.next_ad()}.bind(this),10000);},next_ad:function()
{this.ads[this.ad_index].hide();this.ad_index++;if(this.ad_index>=this.ads.length)
{this.ad_index=0;this.ads.each(function(ad){ad.show();})}
setTimeout(function(){this.next_ad()}.bind(this),10000);},phone_mouse_over:function(phone)
{phone.style.border='2px solid #f79100';},phone_mouse_out:function(phone)
{phone.style.border='2px solid #f0f0f0';},phone_select:function(phone)
{$('user_phone_id').value=phone.id;$('selected_phone').innerHTML=phone.innerHTML;$('phone_selector').hide();$('user_form').show();Field.focus('user_login');var inputs=Form.getElements('user_form_id');var first_empty=inputs.find(function(i){return(i.type=='text'||i.type=='password')&&i.value==''});if(first_empty)
{Field.focus(first_empty);}
else
{Field.focus('user_login');}},signup_phone_select:function(phone)
{$('user_phone_id').value=phone.id;$('selected_phone').innerHTML=phone.innerHTML;if($F("user_phone_number").length<8){$('phone_selector').hide();$('user_form').show();$("continue").show();$("user_phone_number").focus();}else{$("user_form_id").submit();}},display_phone_selector:function()
{$('phone_selector').show();$('user_form').hide();Field.focus('filter');},filter_phones:function(filter_string)
{var filter=filter_string.toLowerCase();var matches=[];for(var index=0;index<phones.length;index++)
{var phone=phones[index];if(phone.name.match(filter))
{$(phone.id.toString()).show();}
else
{$(phone.id.toString()).hide();}}},overlay_click:function(element)
{Dashwire.Window.close_top_window();},window_close:function(element)
{Dashwire.Window.close(element);},is_contacts_dropdown_visible:function()
{return(this.contacts_dropdown&&this.contacts_dropdown.style.display!='none');},hide_contacts_dropdown:function()
{if(this.contacts_dropdown){this.contacts_dropdown.hide();}},is_contact_labeler_visible:function()
{return(this.contact_labeler&&this.contact_labeler.style.display!='none');},is_popup_visible:function()
{var overlay=$('RB_overlay');return(overlay&&overlay.style.display!='none'||Dashwire.Window.first_visible());},calculate_aspect_ratio:function(media)
{if(media.rotation%180!=0)
{return media.height/media.width;}
else
{return media.width/media.height;}},calculate_thumbnail_height:function(media,size)
{var aspect_ratio=this.calculate_aspect_ratio(media);var orientation=this.media_get_orientation(media.id);if(orientation=="portrait")
{return this.thumbnail_sizes[size];}
else
{return this.thumbnail_sizes[size]/aspect_ratio;}},calculate_thumbnail_width:function(media,size)
{return this.calculate_aspect_ratio(media)*this.calculate_thumbnail_height(media,size);},media_get_orientation:function(media_id)
{var media=this.get_media_item(media_id);if(media.rotation%180!=0)
{return(media.width<media.height)?'landscape':'portrait'}
else
{return(media.width>media.height)?'landscape':'portrait'}},media_get_preferred_display_size:function(display_purpose,media_id)
{media_orientation=this.media_get_orientation(media_id);switch(display_purpose)
{case"display":{display_size=(media_orientation=="portrait")?"big":"large";break;}
case"edit":{display_size="medium";break;}};return display_size;},post_create:function()
{if($('post_body').value.strip().length>0)
{var params=Form.serialize('post_form');new Ajax.Request('/media/create/',{asynchronous:true,evalScripts:true,parameters:params});this.activity_indicator_start();}
this.windows.post.close();},feedback_create:function()
{if($('feedback_body').value.strip().length>0)
{var params=Form.serialize('feedback_form');new Ajax.Request('/feedback/create/',{asynchronous:true,evalScripts:true,parameters:params});this.activity_indicator_start();}
this.windows.feedback.close();},set_image_src:function(id,image,size)
{var element=$(id);if(element)
{element.src=this.src(image,size);}},avatar_refresh:function(user)
{Dashwire.User.src=user.src;var image=Dashwire.Images.get(user.photo_id);if(image)
{this.set_image_src('profile_avatar',image,'thumb');this.set_image_src('settings_preview_avatar',image,'thumb');if($('settings_avatar_picker'))
{$('settings_avatar_picker').setStyle('background-image:url('+this.src(image,'mobile')+')');}}},avatar_update:function(media_id)
{track('/dashboard/settings/popup/update_avatar');var params="user[photo_id]="+media_id;this.user_update(params,function(transport){this.avatar_refresh(transport.responseJSON)}.bind(this));this.windows.media_manager.close();},user_update:function(params,response_handler)
{var options={method:'put',parameters:params,onSuccess:response_handler}
new Ajax.Request('/users/'+Dashwire.User.id+'.json',options);},src:function(media,size)
{return Dashwire.TemplateUtilities.src(media,size);},contact_media_new:function(media_id)
{var photo=Dashwire.Images.get(media_id);var contact=dw.current_contact
contact["media_id"]=media_id
contact["src"]=this.src(photo,'thumb');dw.current_contact=contact
$('contact_media_new').src=contact["src"];this.windows.media_manager.close();},contact_media_update:function(media_id)
{var contact=dw.current_contact
var params="contact_image[contact_id]="+contact.id+"&contact_image[media_id]="+media_id;new Ajax.Request('/contact_images.json',{method:'post',parameters:params,onSuccess:function(){var media=this.get_media_item(media_id);$('contact_media').src=dw.src(media,'thumb');Dashwire.Contacts.refresh();}.bind(this)});this.windows.media_manager.close();},select_background:function(url)
{var params=Hash.toQueryString({'user[background_image]':url})
new Ajax.Request('/user/update/',{asynchronous:true,evalScripts:true,parameters:params});this.update_background_image(url);this.windows.profile_editor.close();},popup_bookmarks:function(tile)
{if(this.windows.bookmarks.controller)
{this.windows.bookmarks.controller.destroy();}
this.windows.bookmarks.controller=new PopupBookmarksController(tile);this.windows.bookmarks.update({content:this.windows.bookmarks.controller.render()});this.windows.bookmarks.width(784);this.windows.bookmarks.reposition();this.windows.bookmarks.show();this.windows.bookmarks.controller.applyBehaviors();this.windows.bookmarks.controller.close=function(){this.windows.bookmarks.close();}.bind(this);},profile_editor:function()
{this.windows.profile_editor.update({backgrounds:Dashwire.Backgrounds});this.windows.profile_editor.maximize('backgrounds_container');this.windows.profile_editor.reposition();this.windows.profile_editor.show();},settings_editor:function(which_tab)
{this.settings_tab(which_tab);this.windows.settings_editor.show();},settings_tab:function(which_tab)
{this.windows.settings_editor.update({user:Dashwire.User,which_tab:which_tab});completion_function=function(){return(true)};if(which_tab=="public_page")
{completion_function=this.settings_public_page;}
if(which_tab=="my_account")
{completion_function=this.settings_my_account.bind(this);}
if(which_tab=='sharing')
{completion_function=this.settings_sharing_load_accounts;}
new Ajax.Updater($("settings_panel"),"/settings/"+which_tab,{method:'get',onComplete:completion_function});this.windows.settings_editor.maximize_width('settings_container');this.windows.settings_editor.reposition_top();track('/dashboard/settings/popup/'+which_tab);},privacy_settings_tab:function()
{this.windows.settings_editor.update({user:Dashwire.User,which_tab:'privacy'});completion_function=function(){return(true)};new Ajax.Updater($("settings_panel"),'/preferences/edit/'+Dashwire.User.preferences.id,{method:'get',onComplete:completion_function})
this.windows.settings_editor.maximize_width('settings_container');this.windows.settings_editor.reposition_top();},update_privacy_settings:function()
{var params=Form.serialize('privacy_settings_form');new Ajax.Request('/preferences/update/'+Dashwire.User.preferences.id,{method:"put",parameters:params});},clear_event:function(event)
{return false;},settings_public_page:function()
{},settings_sharing_load_accounts:function()
{dw.settings_twitter_account_status();dw.settings_facebook_account_status();dw.settings_friendfeed_account_status();dw.settings_flickr_account_status();},settings_twitter_account_status:function()
{new Ajax.Request('/twitter/account_status',{method:'get',onLoading:function(){$('twitter_account_status').hide();$('twitter_account_loading').show();},onComplete:function(){$('twitter_account_loading').hide();}});},settings_facebook_account_status:function()
{new Ajax.Request('/facebook/account_status',{method:'get',onLoading:function(){$('facebook_account_status').hide();$('facebook_account_loading').show();},onComplete:function(){$('facebook_account_loading').hide();}});},settings_friendfeed_account_status:function()
{new Ajax.Request('/friendfeed/account_status',{method:'get',onLoading:function(){$('friendfeed_account_status').hide();$('friendfeed_account_loading').show();},onComplete:function(){$('friendfeed_account_loading').hide();}});},settings_flickr_account_status:function()
{new Ajax.Request('/flickr/account_status',{method:'get',onLoading:function(){$('flickr_account_status').hide();$('flickr_account_loading').show();},onComplete:function(){$('flickr_account_loading').hide();}});},settings_user_save:function(event)
{if(event.keyCode==Event.KEY_RETURN)
{this.update_user('settings_user');}},settings_my_account:function()
{$('user_password').observe('keypress',this.settings_user_save.bind(this));$('user_password_confirmation').observe('keypress',this.settings_user_save.bind(this));},popup_modules:function()
{var modules=this.visible_modules();var all_modules=this.all_modules.without.apply(this.all_modules,modules);all_modules.unshift(modules);this.windows.modules.update({user_modules:modules,modules:all_modules.flatten(),available:[]});this.windows.modules.width(672);this.windows.modules.reposition();this.windows.modules.show();},popup_post:function()
{this.windows.post.update({});this.windows.post.width(672);this.windows.post.reposition();this.windows.post.show();Field.focus('post_body');},popup_news:function()
{this.windows.news.update({user:Dashwire.User});this.news_update_table();this.windows.news.reposition();this.windows.news.show();},news_page_older:function()
{this.news_page=this.news_page+1;var params="page="+this.news_page;new Ajax.Request('/json/news',{asynchronous:true,evalScripts:true,parameters:params});},news_page_newer:function()
{if(this.news_page>1)
{this.news_page=this.news_page-1;var params="page="+this.news_page;new Ajax.Request('/json/news',{asynchronous:true,evalScripts:true,parameters:params});}},news_update_table:function()
{var news=Dashwire.News;var context={template:Dashwire.Templates.content.news_table,news:news};$('news_table_container').update(context.template());if(dw.news_page==1){$("news_page_newer_link").hide();$("news_page_newer_disabled").show();}else{$("news_page_newer_link").show();$("news_page_newer_disabled").hide();}
if(dw.news_page==Dashwire.news_pages_total){$("news_page_older_link").hide();$("news_page_older_disabled").show();}else{$("news_page_older_link").show();$("news_page_older_disabled").hide();}},news_display_fix:function()
{this.news_update_table();dw.windows.news.reposition();},update_local_media:function(media_id,form_id)
{var hash=Form.serialize(form_id,true);var result=this.hash_extract(hash,'media');this.get_media_item(media_id)=$H(this.get_media_item(media_id)).merge(result);},popup_upload:function(tile)
{if(this.windows.upload.controller)
{this.windows.upload.controller.destroy();}
this.windows.upload.controller=new PopupUploadController(tile);this.windows.upload.update({content:this.windows.upload.controller.render()});this.windows.upload.width(640);this.windows.upload.show();this.windows.upload.controller.close=function(){this.windows.upload.close();}.bind(this);this.windows.upload.controller.applyBehaviors();this.windows.upload.reposition();},popup_feedback:function()
{this.windows.feedback.update({});this.windows.feedback.width(672);this.windows.feedback.reposition();this.windows.feedback.show();Field.focus('feedback_body');},popup_invitation_request:function()
{Dashwire.Window.overlay=new Dashwire.Overlay('overlay',{});Dashwire.Window.overlay.resize();var window=new Dashwire.Window('invitation_request_window','popup','invitation_request',{width:'35em'});Dashwire.Window.windows={invitation_request:window};window.update({});window.width(672);window.reposition();window.show();Field.focus('invitation_email');},get_media_item:function(id)
{return Dashwire.Images.get(id)||Dashwire.Videos.get(id);},next_media_id:function(id)
{var resource=dw.get_ordered_resource(id);var index=dw.get_resource_index(resource,id);var size=resource.size();var next_id=null;if(index<size-1)
{next_id=resource[index+1];}
else
{next_id=resource[0];}
return next_id;},previous_media_id:function(id)
{var resource=dw.get_ordered_resource(id);var index=dw.get_resource_index(resource,id);var size=resource.size();var previous_id=null;if(index==0)
{previous_id=resource[size-1];}
else
{previous_id=resource[index-1];}
return previous_id;},get_resource_index:function(resource,id)
{var index=null;resource.each(function(r,i){if(r==id)
{index=i;}});return index;},get_ordered_resource:function(id)
{var resource=[];var found=false;Dashwire.Images.Ordered.each(function(r){if(r==id)
{resource=Dashwire.Images.Ordered;found=true;}});if(!found)
{Dashwire.Videos.Ordered.each(function(r){if(r==id)
{resource=Dashwire.Videos.Ordered;}});}
return resource;},popup_rotate:function(id)
{var media=this.get_media_item(id);if(media)
{this.windows.rotate.update({media:media});this.windows.rotate.reposition();this.windows.rotate.show();}},popup_media:function(id)
{var media=this.get_media_item(id);this.windows.media.update({media:media});var image=$('media_box_image');if(image)
{var proper_size_for_media=this.media_get_preferred_display_size("display",id);image.src=this.src(media,proper_size_for_media);media_type='images';}
else
{media_type='videos';}
if(image)
{image.style.height=this.calculate_thumbnail_height(media,proper_size_for_media)+'px';}
var em_width=Element.getDimensions('em').width/100.0;var width=this.calculate_thumbnail_width(media,proper_size_for_media);this.windows.media.width(width+(em_width*2));this.windows.media.reposition();this.windows.media.show();var previous_id=this.previous_media_id(id);var next_id=this.next_media_id(id);var viewer_options={container_id:'media_box_container',opacity_on:70,opacity_off:30,parent:this.windows.media,left:function(){dw.popup_media(previous_id);track('/dashboard/'+media_type+'/popup/previous');},right:function(){dw.popup_media(next_id);track('/dashboard/'+media_type+'/popup/next');}};var viewer=new Dashwire.Viewer(viewer_options);document.fe=new Dashwire.DashboardFieldEditor({track_prefix:'/dashboard/'+media_type+'/popup/title/'});},media_sheet_resize:function()
{var page_width=dw.windows.media_sheet.client_width();var popup_border_width=15;var thumb_width=320;var scroll_bar_width=15;var em_width=Element.getDimensions('em').width/100.0;var max_content_width=page_width-(popup_border_width*2)-(em_width*4);var thumb_rows=parseInt(max_content_width/(thumb_width+em_width));if(thumb_rows<1){thumb_rows=1;}
var content_width=parseInt((thumb_width+em_width)*thumb_rows)+scroll_bar_width;$$('#media_sheet_window .center')[0].style.width=content_width+'px';this.windows.media_sheet.width(content_width+(popup_border_width*2));this.windows.media_sheet.maximize_height('media_container');},popup:function(type,source)
{switch(type)
{case"images":m.popup();break;case"videos":m.popup('Video');break;case"contacts":this.popup_contacts();break;case"feedback":this.popup_feedback();break;case"calls":this.popup_calls();break;case"messages":this.popup_messages();break;case"settings":this.settings_editor('my_account');break;};track('/dashboard/'+type+'/'+source+'/expand');},popup_photos:function()
{m.popup();},video_stop:function()
{var container=$('media_box_container');if(container)
{container.update('');}},video_toggle:function()
{var video=$('media_box_video');var image=$('media_box_image');if(video)video.toggle();if(image)image.toggle();},popup_videos:function()
{m.popup('Video');},update_local_contact:function(contact_id,form_id)
{var old_tags=Dashwire.Contacts.get(contact_id).tags;var hash=Form.serialize(form_id,true);var result=this.hash_extract(hash,'contact');Dashwire.Contacts.get(contact_id)=$H(Dashwire.Contacts.get(contact_id)).merge(result);var new_tags=result.tags;this.update_local_contact_tags(old_tags,new_tags,contact_id);return result;},array_exclude:function(a,b)
{return a.reject(function(element){return b.include(element)});},delete_hash_value_array_element:function(hash,key,element)
{var array=hash.get(key);if(array)
{var new_array=array.without(element);if(new_array.length>0)
{hash.set(key,new_array);}
else
{hash.unset(key);}}},insert_hash_value_array_element:function(hash,key,element)
{var array=hash.get(key);if(array)
{if(!array.include(element))
{array.push(element);}}
else
{hash.set(key,[element]);}},update_local_contact_tags:function(old_tags,new_tags,contact_id)
{var delete_tags=this.array_exclude(old_tags,new_tags);var insert_tags=this.array_exclude(new_tags,old_tags);delete_tags.each(function(tag){this.delete_hash_value_array_element(Dashwire.Contacts.tags,tag,contact_id)}.bind(this));insert_tags.each(function(tag){this.insert_hash_value_array_element(Dashwire.Contacts.tags,tag,contact_id)}.bind(this));},make_contact_labeler:function(element_to_relabel)
{if($("contact_labeler")){$("contact_labeler").remove();}
html="<div id='contact_labeler' style='z-index:100;position:absolute;'><div style='display:none;' class='select_dropdown' id='contact_labeler_contents' style=''>&nbsp;</div></div>";new Insertion.Top(element_to_relabel,html);top_position=(Position.positionedOffset($(element_to_relabel))[1]+Element.getDimensions($(element_to_relabel))["height"])+"px";left_position=(Position.positionedOffset($(element_to_relabel))[0])+"px";$(element_to_relabel).style.top=top_position;$(element_to_relabel).style.left=left_position;$(element_to_relabel).style.width=element_to_relabel.getDimensions().width;},contact_labeler_finish:function(element_to_relabel)
{this.contact_labeler.finish_function();if($("contact_labeler")){$("contact_labeler").hide();$("contact_labeler").remove();}
this.contact_labeler=null;},contact_labeler_clear_selected:function()
{var selected=$$('#'+this.contact_labeler.id+' a.selected')
selected.each(function(one_selected){one_selected.className='';});},populate_contact_labeler:function(element_to_relabel)
{this.make_contact_labeler(element_to_relabel);this.contact_labeler=$('contact_labeler_contents');this.contact_labeler.finish_function=function(thing){dw.get_data_from_contact_labeler(thing)};this.contact_labeler.element_to_relabel=element_to_relabel;current_value=element_to_relabel.title;if($(element_to_relabel).id.indexOf("contact_fields_telephone_")>=0){this.contact_labeler.options=dw.contact_telephone_labels;}
option_html="";for(i=0;i<this.contact_labeler.options.length;i++){option_html+="<a onclick='dw.contact_labeler.finish_function(\""+this.contact_labeler.options[i]+"\");return(false);' title='"+this.contact_labeler.options[i]+"' ";if(this.contact_labeler.options[i]==current_value){option_html+=" class='selected' ";}
option_html+=" href='#' >"+this.contact_labeler.options[i]+"</a>";}
this.contact_labeler.show();this.contact_labeler.update(option_html);},get_data_from_contact_labeler:function(chosen)
{if(chosen){this.contact_labeler.element_to_relabel.title=chosen;this.contact_labeler.element_to_relabel.update(chosen);}else{}
return true;},add_contact_detail:function(category)
{contact=dw.current_contact;if(category=="contact_telephone_numbers"){html="<tr></tr>";newElement=new Insertion.Before($("contact_telephone_numbers_controls"),html);counter=Element.getElementsBySelector($(category),"tr ").length-1;default_labels=dw.contact_telephone_labels;used_labels=Array();Element.getElementsBySelector($("contact_telephone_numbers"),"div.dropdown_container ").each(function(thing){used_labels.push(thing.innerHTML);})
suggested_labels=default_labels.without.apply(default_labels,used_labels)
if(suggested_labels.length<1){default_label=dw.contact_telephone_labels[0];}else{default_label=suggested_labels[0];}
var context={template:Dashwire.Templates.content.contact_telephone_form,counter:counter,default_label:default_label};$("contact_telephone_numbers_controls").previous().update(context.template());all_form_elements=Element.getElementsBySelector($("contact_telephone_numbers"),"input")
Form.Element.focus(all_form_elements[all_form_elements.length-1])}
if(category=="contact_email_addresses"){html="<tr></tr>";newElement=new Insertion.Before($("contact_email_controls"),html);counter=Element.getElementsBySelector($(category),"tr ").length-1;var context={template:Dashwire.Templates.content.contact_email_form,counter:counter};$("contact_email_controls").previous("tr").update(context.template());all_form_elements=Element.getElementsBySelector($("contact_email_addresses"),"input")
Form.Element.focus(all_form_elements[all_form_elements.length-1])}
if(category=="home_address"){var context={template:Dashwire.Templates.content.contact_address_form,which_address:"home"};$("contact_home_address_div").update(context.template());Form.Element.focus("contact_fields_home_address_street");}
if(category=="work_address"){var context={template:Dashwire.Templates.content.contact_address_form,which_address:"work"};$("contact_work_address_div").update(context.template());Form.Element.focus("contact_fields_work_address_street");}
dw.overlay.resize();return true;},remove_contact_detail:function(category,which_item)
{contact=dw.current_contact;if(category=="contact_telephone_numbers"){elementToRemove=$(which_item).up('tr');elementToRemove.remove();}
if(category=="contact_email_addresses"){elementToRemove=$(which_item).up('tr');elementToRemove.remove();}
if(category=="contact_home_address"){var context={template:Dashwire.Templates.content.contact_address_add,which_address:"home"};$("contact_home_address_div").replace(context.template());}
if(category=="contact_work_address"){var context={template:Dashwire.Templates.content.contact_address_add,which_address:"work"};$("contact_work_address_div").replace(context.template());}
dw.overlay.resize();return true;},contact_update:function(contact_id)
{var hash=this.update_local_contact(contact_id,'contact_form');$('contact_tags').value=hash.tags.join(',');var params=Form.serialize('contact_form');new Ajax.Request('/contact/update/'+contact_id,{asynchronous:true,evalScripts:true,parameters:params});this.activity_indicator_start();this.windows.contact.close();if(this.windows.contacts.visible())
{this.contacts_update_tags();}},popup_contact:function(id)
{dw.contact_telephone_labels=['mobile','work','home','fax','pager','other'];dw.contact_form_status_stack=$A();if(id&&typeof(id)=='number')
{var contact=Dashwire.Contacts.get(id);dw.current_contact=contact;view_to_show="view";}
else
{var contact={src:"/images/avatars/default-mobile.gif",id:0,name:'',telephone:{mobile:['']},address_home:{'':''},email:[''],tags:[]};if(typeof(id)=='string')
{contact.telephone.mobile=[id];}
dw.current_contact=contact;view_to_show="create";}
dw.hide_scrollbars('contacts_container');dw.hide_scrollbars('calls_table_container');this.windows.contact.update({user:Dashwire.User,contact:contact});dw.overlay.resize();this.windows.contact.show();this.windows.contact.width(915);this.windows.contact.reposition_top();this.show_contact_name(view_to_show);this.show_contact_telephone(view_to_show);this.show_contact_email(view_to_show);this.show_contact_company(view_to_show);this.show_contact_address(view_to_show);this.show_contact_more(view_to_show);if(view_to_show=="create"){Form.Element.focus("contact_fields_name_given");this.set_contact_tabindex()}},hide_scrollbars:function(element_id){if(!this.hidden_scrollbars){this.hidden_scrollbars=new Array();}
var container=$(element_id);if(container){var what_and_where=new Array();what_and_where['offset-y']=Position.realOffset(container)[1];what_and_where['element-id']=element_id;this.hidden_scrollbars.push(what_and_where);container.setStyle({'overflow':'hidden'});}},restore_scrollbars:function(){if(this.hidden_scrollbars){for(i=0;i<this.hidden_scrollbars.length;i++){var params=this.hidden_scrollbars[i];var container=$(params['element-id']);var current=Position.realOffset(container)[1];container.setStyle({'overflow':'auto'});container.scrollTop=params['offset-y']-current;}
this.hidden_scrollbars=new Array;}},set_contact_tabindex:function()
{$$('#contact_box .contact_text').each(function(element,index){element.tabindex=index;});},show_contact_company:function(view_or_edit,focus_on)
{var contact=dw.current_contact;if(view_or_edit=="cancel"){view_or_edit="view";}
if(view_or_edit=="edit"){dw.contact_form_status_stack.push("contact_company");}else{dw.contact_form_status_stack=dw.contact_form_status_stack.without("contact_company");}
var context={template:Dashwire.Templates.content.contact_company,user:Dashwire.User,contact:contact,view_or_edit:view_or_edit};$('contact_company').update(context.template());dw.overlay.resize();;dw.set_contact_tabindex();},save_contact_company:function()
{var contact=dw.current_contact;var contact_company=$('contact_fields_company_name').value;if(contact_company.length>0)
{contact.company_name=contact_company;}
else
{delete contact.company_name;}
dw.current_contact=contact;if(contact.id!=0)
{dw.save_current_contact();}
view_or_edit="view";},show_contact_name:function(view_or_edit,focus_on)
{var contact=dw.current_contact;if(view_or_edit=="cancel"){view_or_edit="view";}
if(view_or_edit=="edit"){dw.contact_form_status_stack.push("contact_name");}else{dw.contact_form_status_stack=dw.contact_form_status_stack.without("contact_name");}
var context={template:Dashwire.Templates.content.contact_name,user:Dashwire.User,contact:contact,view_or_edit:view_or_edit};$('contact_name').update(context.template());dw.overlay.resize();;if(focus_on){focus_on_this=$("contact_fields_name_"+focus_on)
Form.Element.focus(focus_on_this);Form.Element.select(focus_on_this);}else if(view_or_edit=="edit"){focus_on_this=$("contact_fields_name_given")
Form.Element.focus(focus_on_this);Form.Element.select(focus_on_this);}else if(view_or_edit=="create"){focus_on_this=$("contact_fields_name_given")
Form.Element.focus(focus_on_this);}
dw.set_contact_tabindex();},prune_hash:function(hash)
{hash.keys().each(function(key){if(this.get(key).blank())
{this.unset(key);}}.bind(hash));return hash;},save_contact_name:function()
{var contact=dw.current_contact;var contact_name=this.prune_hash($H($('contact_name_form').serialize(true)));if(contact_name.size()>0)
{contact.name=contact_name.toObject();}
else
{delete contact.name;}
dw.current_contact=contact;if(contact.id!=0)
{dw.save_current_contact();}
view_or_edit="view";},show_contact_telephone:function(view_or_edit,focus_on)
{var contact=dw.current_contact;if(view_or_edit=='cancel')
{view_or_edit='view';}
if(view_or_edit=='edit')
{dw.contact_form_status_stack.push('contact_telephone');}
else
{dw.contact_form_status_stack=dw.contact_form_status_stack.without('contact_telephone');}
var phone_numbers_slots=$H(contact.telephone).keys();var phone_numbers=$H(contact.telephone).values();var context={template:Dashwire.Templates.content.contact_telephone,user:Dashwire.User,contact:contact,phone_numbers_slots:phone_numbers_slots,phone_numbers:phone_numbers,view_or_edit:view_or_edit};$('contact_telephone').update(context.template());dw.overlay.resize();;if(focus_on)
{my_row=Element.extend(focus_on);which_input_to_focus_on=my_row.previousSiblings().length;Form.Element.focus($("contact_telephone_numbers").getElementsBySelector("input")[which_input_to_focus_on]);Form.Element.select($("contact_telephone_numbers").getElementsBySelector("input")[which_input_to_focus_on]);}
if((phone_numbers_slots<1)&&(view_or_edit=="edit"))
{dw.add_contact_detail("contact_telephone_numbers");}
dw.set_contact_tabindex();},save_contact_telephone:function()
{var contact=dw.current_contact;var labels_to_read=$('contact_telephone_numbers').select('.dropdown_container');var values_to_read=$('contact_telephone_numbers').select('input');var telephone_numbers=$H();for(index=0;index<labels_to_read.length;index++)
{var title=labels_to_read[index].title;var value=values_to_read[index].value;if(telephone_numbers.keys().indexOf(title)<0)
{this_number=new Array();this_number.push(value);telephone_numbers.set(title,this_number);}
else
{telephone_numbers.get(title).push(value);}}
if(telephone_numbers.values().flatten().without("").length>0)
{contact.telephone=telephone_numbers.toObject();}
else
{delete contact.telephone;}
dw.current_contact=contact;if(contact.id!=0)
{dw.save_current_contact();}
view_or_edit="view";},show_contact_email:function(view_or_edit,focus_on)
{var my_row=null;if(focus_on)
{focus_on=Element.extend(focus_on);my_row=focus_on.up('tr');}
var contact=dw.current_contact;if(view_or_edit=="cancel"){view_or_edit="view";}
if(view_or_edit=="edit"){dw.contact_form_status_stack.push("contact_email");}else{dw.contact_form_status_stack=dw.contact_form_status_stack.without("contact_email");}
var emails=contact["email"]||[];var email_quantity=emails.length;var context={template:Dashwire.Templates.content.contact_email,user:Dashwire.User,contact:contact,emails:emails,email_quantity:email_quantity,view_or_edit:view_or_edit};$('contact_email').update(context.template());dw.overlay.resize();;if((email_quantity<1)&&(view_or_edit=="edit")){dw.add_contact_detail("contact_email_addresses");}
if(focus_on){which_input_to_focus_on=my_row.previousSiblings().length;Form.Element.focus($("contact_email_addresses").getElementsBySelector("input")[which_input_to_focus_on]);Form.Element.select($("contact_email_addresses").getElementsBySelector("input")[which_input_to_focus_on]);}else if(view_or_edit=="edit"){if($("contact_email_addresses").getElementsBySelector("input").length==1){Form.Element.focus($("contact_email_addresses").getElementsBySelector("input")[0]);}}
dw.set_contact_tabindex();},save_contact_email:function()
{var contact=dw.current_contact;var values_to_read=$('contact_email_addresses').select('input');var emails=[];for(var index=0;index<values_to_read.length;index++)
{emails.push(values_to_read[index].value);}
if(emails.without('').length>0)
{contact.email=emails;}
else
{delete contact.email;}
dw.current_contact=contact;if(contact.id!=0)
{dw.save_current_contact();}},show_contact_address:function(view_or_edit,focus_on)
{var contact=dw.current_contact;if(view_or_edit=="cancel")
{view_or_edit="view";}
if(view_or_edit=="edit")
{dw.contact_form_status_stack.push("contact_address");}
else
{dw.contact_form_status_stack=dw.contact_form_status_stack.without("contact_address");}
var contact=dw.current_contact;var home_address=$H(contact.address_home);var has_home_address=home_address.size();var work_address=$H(contact.address_work);var has_work_address=work_address.size();var template={render:Dashwire.Templates.content.contact_address,user:Dashwire.User,contact:contact,home_address:contact.address_home||{},work_address:contact.address_work||{},has_home_address:has_home_address,has_work_address:has_work_address,view_or_edit:view_or_edit};$('contact_address').update(template.render());dw.overlay.resize();;if(focus_on)
{document.checkit=focus_on;focus_on_this=$("contact_fields_"+focus_on.title);Form.Element.focus(focus_on_this);Form.Element.select(focus_on_this);}
dw.set_contact_tabindex();},contact_address_field_to_hash:function(field_id)
{var field=$(field_id);if(field)
{var address=this.prune_hash($H(field.serialize(true)));if(address.any())
{return address.toObject();}}
return null;},save_contact_address:function()
{var contact=dw.current_contact;contact.address_home=this.contact_address_field_to_hash('contact_home_address');contact.address_work=this.contact_address_field_to_hash('contact_work_address');if(contact.id!=0)
{dw.save_current_contact();}
view_or_edit="view";},show_contact_more:function(view_or_edit)
{var contact=dw.current_contact;if(view_or_edit=='cancel')
{view_or_edit='view';}
if(view_or_edit=='edit')
{dw.contact_form_status_stack.push('contact_more');}
else
{dw.contact_form_status_stack=dw.contact_form_status_stack.without('contact_more');}
var tags=contact.tags;var has_tags=tags.any();var template={render:Dashwire.Templates.content.contact_more,user:Dashwire.User,contact:contact,tags:tags,has_tags:has_tags,view_or_edit:view_or_edit};$('contact_more').update(template.render());dw.overlay.resize();if(view_or_edit=="edit")
{Event.observe($('contact_tags'),'keypress',function(e){if(e.keyCode==Event.KEY_RETURN){dw.save_contact_more();dw.show_contact_more('view');return false;}},false);Form.Element.focus('contact_tags');}
dw.set_contact_tabindex();},save_contact_more:function()
{var new_tags=dw.tags_split($F('contact_tags'));var contact=dw.current_contact;var contact_id=contact.id;var old_tags=[];if(contact_id>0)
{old_tags=Dashwire.Contacts.get(contact_id).tags;}
this.update_local_contact_tags(old_tags,new_tags,contact_id);contact.tags=new_tags;dw.current_contact=contact;if(contact.id!=0)
{dw.save_current_contact();}
view_or_edit="view";},create_contact:function()
{view_to_show="view";this.save_contact_name();this.save_contact_telephone();this.save_contact_email();this.save_contact_address();this.save_contact_more();this.save_contact_company();dw.save_current_contact();this.show_contact_name(view_to_show);this.show_contact_telephone(view_to_show);this.show_contact_email(view_to_show);this.show_contact_address(view_to_show);this.show_contact_more(view_to_show);this.show_contact_company(view_to_show);},log:function(message)
{Dashwire.Logger.log(message);},save_current_contact:function()
{var contact=dw.current_contact;if(contact.id!=0)
{Dashwire.Contacts.update_with_params(this.package_current_contact(),contact.id);}
else
{Dashwire.Contacts.create(this.package_current_contact());this.windows.contact.close();}
this.contacts_update_table();},package_current_contact:function()
{var contact=dw.current_contact;var parts=[];if(contact.company_name!=null)
{parts.push("contact[company_name]"+"="+encodeURIComponent(contact.company_name));}
if(contact.unique_id!=null)
{parts.push("contact[unique_id]"+"="+encodeURIComponent(contact.unique_id));}
if(contact.media_id!=null)
{parts.push("contact[media_id]"+"="+contact.media_id);}
if(contact.tags!=null)
{parts.push("contact[tags]"+"="+contact.tags);}
$H(contact["name"]).each(function(pair){key="contact[name]["+pair.key+"]";value=pair.value;parts.push(key+"="+encodeURIComponent(value));});$A(contact["email"]).each(function(email){key="contact[email][]";value=email;parts.push(key+"="+value);});$H(contact["address_home"]).each(function(pair){key="contact[address_home]["+pair.key+"]";value=pair.value;parts.push(key+"="+encodeURIComponent(value));});$H(contact["address_work"]).each(function(pair){key="contact[address_work]["+pair.key+"]";value=pair.value;parts.push(key+"="+encodeURIComponent(value));});$H(contact["telephone"]).each(function(pair){pair.value.each(function(number){key="contact[telephone]["+pair.key+"][]";value=number;parts.push(key+"="+encodeURIComponent(value));});});return parts.join("&");},delete_current_contact:function()
{var contact=dw.current_contact;if(contact.id!=0)
{Dashwire.Contacts.remove(contact.id);Dashwire.Contacts.Ordered=Dashwire.Contacts.Ordered.without(contact.id);if(this.data.sorted_contact_ids!=null)
{this.data.sorted_contact_ids=this.data.sorted_contact_ids.without(contact.id);}
this.contacts_update_results();var options={method:'delete',onSuccess:function(transport){Dashwire.Contacts.destroyed([transport.responseJSON]);}.bind(Dashwire.Contact)};new Ajax.Request('/contacts/'+contact.id+'.json',options);}},contact_search_results:function(ids,query)
{if(query==this.contacts_query)
{this.data.sorted_contact_ids=ids;this.data.sorted_contacts=[];if(this.contacts_query!=null&&this.contacts_query.length!=0)
{ids.each(function(id){this.data.sorted_contacts.push(Dashwire.Contacts.get(id))}.bind(this));}
else
{Dashwire.Contacts.Ordered.each(function(id){this.data.sorted_contacts.push(Dashwire.Contacts.get(id))}.bind(this));}
this.contacts_update_table();}},contacts_update_results:function()
{this.data.sorted_contacts=[];if(this.contacts_query!=null&&this.contacts_query.length!=0)
{this.data.sorted_contact_ids.each(function(id){this.data.sorted_contacts.push(Dashwire.Contacts.get(id))}.bind(this));}
else
{Dashwire.Contacts.Ordered.each(function(id){this.data.sorted_contacts.push(Dashwire.Contacts.get(id))}.bind(this));}
this.contacts_update_table();},contacts_by_tag:function(tag)
{$('contacts_search').value='Search Contacts';var link=$('contacts_sms');var ids;if(tag)
{ids=Dashwire.Contacts.tags.get(tag);link.innerHTML='&nbsp;-&nbsp;<a href="#" onclick="dw.popup_compose(['+ids.join(',')+']);">send group message</a>';link.show();}
else
{ids=Dashwire.Contacts.Ordered;link.hide();}
this.data.sorted_contacts=[];ids.each(function(id){this.data.sorted_contacts.push(Dashwire.Contacts.get(id))}.bind(this));this.contacts_update_table();this.contacts_update_tags(tag);},contacts_filter:function(default_text)
{this.contacts_query=$('contacts_search').value;if(this.contacts_query.length!=0&&this.contacts_query.toLowerCase()!=default_text.toLowerCase())
{Dashwire.Contacts.search(this.contacts_query,this.contact_search_results.bind(this));}
else
{this.data.sorted_contacts=[];Dashwire.Contacts.Ordered.each(function(id){this.data.sorted_contacts.push(Dashwire.Contacts.get(id))}.bind(this));this.contacts_update_table();}},contacts_update_table:function()
{var contacts_container=$('contacts_container');if(contacts_container!=null)
{var contacts=this.data.sorted_contacts;var context={template:Dashwire.Templates.content.contacts_table,contacts:contacts};$('contacts_container').update(context.template());$('contacts_count').update(contacts.length);this.contacts_update_tags();}},contacts_update_tags:function(selected_tag)
{var template={render:Dashwire.Templates.content.contacts_tags,tag_names:Dashwire.Contacts.tags.keys().sort(),tags:Dashwire.Contacts.tags._object,count:Dashwire.Contacts.Ordered.size(),selected_tag:selected_tag};$('contacts_tags_container').update(template.render());},popup_contacts:function(id)
{this.windows.contacts.update({snip:function(e){return(e+'e');}});this.contacts_query='';this.data.sorted_contacts=[];Dashwire.Contacts.Ordered.each(function(id){this.data.sorted_contacts.push(Dashwire.Contacts.get(id))}.bind(this));this.contacts_update_table();this.windows.contacts.maximize(['contacts_container','contacts_tags_container']);this.windows.contacts.reposition();this.windows.contacts.show();},update_background_image:function(background_image)
{if($("public_page_preview")){$("public_page_preview").style.backgroundImage="url('"+background_image+"')";}
if($("settings_background_picker")){$("settings_background_picker").style.backgroundImage="url('"+background_image+"')";}},update_user:function(form_id)
{var user=Dashwire.User;var parts=[];parts.push("user[email]"+"="+$("user_email").value);parts.push("user[country_id]"+"="+$("user_country").value);parts.push("user[phone_number]"+"="+$("user_phone_number").value);if(($("user_password").value.length>0)||($("user_password_confirmation").value.length>0)){parts.push("user[password]"+"="+$("user_password").value);parts.push("user[password_confirmation]"+"="+$("user_password_confirmation").value);}
var parameters=parts.join("&");document.para=parameters;http_method="put";var url="/settings/user_update";new Ajax.Request(url,{method:http_method,parameters:parameters});},update_user_restful:function(form_id){log("SAVING RESTFUL");var user=Dashwire.User;var url="/users/"+user.id+".js";http_method="put";var parts=[];parts.push("user[email]"+"="+$("user_email").value);parts.push("user[country_id]"+"="+$("user_country").value);if(($("user_password").value.length>0)||($("user_password_confirmation").value.length>0)){parts.push("user[password]"+"="+$("user_password").value);parts.push("user[password_confirmation]"+"="+$("user_password_confirmation").value);}
var parameters=parts.join("&");document.para=parameters;new Ajax.Request(url,{method:http_method,parameters:parameters});},settings_errors:function(messages){if(messages.length<1){$("settings_errors").show();$("settings_errors").style.backgroundColor="white";$("settings_errors").style.padding="5px";$("settings_errors").style.color="#444444";$("settings_errors").update("Saved.");new Effect.Highlight($("settings_errors"),{startcolor:"#cccccc",endcolor:"#ffffff"});}else{$("settings_errors").show();$("settings_errors").style.backgroundColor="red";$("settings_errors").style.padding="5px";$("settings_errors").style.color="#ffffff";$("settings_errors").update(messages);new Effect.Highlight($("settings_errors"),{startcolor:"#FF5A00",endcolor:"#ff0000"});}},phone_refresh:function(user)
{var new_phone=user.phone;Dashwire.User.phone=new_phone;var template={render:Dashwire.Templates.tiles.phone_section,user:user};var element=$("phone_section").down('.tile_section_body');element.update(template.render());},switch_phone:function(phone_id)
{var old_phone=Dashwire.User.phone;var new_phone=Dashwire.Phones.Indexed.get(phone_id);if(this.windows.phones.visible())
{dw.windows.phones.width(760);dw.windows.phones.reposition_top();var template={render:Dashwire.Templates.content.phone_switched,old_phone:old_phone,new_phone:new_phone};$("phones_box").update(template.render());track('/dashboard/settings/popup/switch_phones');}},update_phone:function(phone_id)
{var params="user[phone_id]="+phone_id;var button=$('switch_phone_button');button.value='Switching..';this.user_update(params,function(transport){this.phone_refresh(transport.responseJSON)
button.value='Done!';this.windows.phones.close();this.windows.settings_editor.close();}.bind(this));track('/dashboard/settings/popup/update_phone');},phones_filter:function()
{this.phones_query=$('phones_search').value;if(this.phones_query.length!=1)
{this.phones_update_container();}},phones_update_container:function()
{var phones=this.elements_filter(Dashwire.Phones.Ordered,this.phones_query);var context={template:Dashwire.Templates.content.phones_container,phones:phones,user:Dashwire.User};$('phones_container').update(context.template());},popup_phones:function(id)
{this.windows.phones.update({phones:Dashwire.Phones.Ordered});this.phones_query='';this.phones_update_container();this.windows.phones.maximize('phones_container');this.windows.phones.reposition();this.windows.phones.show();Field.focus('phones_search');new Form.Element.Observer('phones_search',.3,function(){dw.phones_filter();}.bind(this));track('/dashboard/settings/popup/phones');},messages_sort:function(field,direction)
{previous_messages_sort_field=this.messages_sort_field;previous_messages_sort_direction=this.messages_sort_direction;if(field==previous_messages_sort_field){direction=(previous_messages_sort_direction=="ascending")?"descending":"ascending";}
this.messages_sort_field=field;this.messages_sort_direction=direction;var new_direction=direction=='ascending'?'descending':'ascending';var icon=$(field+'_sort_indicator');icon.src='/images/icons/'+direction+'.gif';['name','seconds','folder'].without(field).each(function(name){$(name+'_sort_indicator').hide()});icon.show();this.messages_update_table();},messages_filter:function(default_text)
{this.messages_query=$('messages_search').value;if(this.messages_query.length!=0&&this.messages_query.toLowerCase()!=default_text.toLowerCase())
{Dashwire.Messages.search(this.messages_query,this.message_search_results.bind(this));}
else
{this.data.sorted_messages=[];Dashwire.Messages.Ordered.each(function(id){this.data.sorted_messages.push(Dashwire.Messages.get(id))}.bind(this));this.messages_update_table(true);}},message_search_results:function(ids)
{this.data.sorted_message_ids=ids;this.data.sorted_messages=[];if(this.messages_query!=null&&this.messages_query.length!=0)
{ids.each(function(id){this.data.sorted_messages.push(Dashwire.Messages.get(id))}.bind(this));this.messages_update_table();}
else
{Dashwire.Messages.Ordered.each(function(id){this.data.sorted_messages.push(Dashwire.Messages.get(id))}.bind(this));this.messages_update_table(true);}},elements_filter:function(elements,filter,contact_id_filter)
{if(contact_id_filter)
{elements=elements.select(function(e){return e.contact_id==contact_id_filter;}.bind(this))}
var terms=filter.split(' ').sortBy(function(e){return-e.length;});for(var index=0;index<terms.length;index++)
{this.term=terms[index];elements=elements.select(function(e){return e.search.indexOf(this.term)!=-1;}.bind(this))}
return elements;},messages_update_table:function(restore)
{var checked_ids=this.messages_collect_checked();var messages=this.messages_contact_id?Dashwire.Contacts.get(this.messages_contact_id).messages:Dashwire.Messages.Indexed.values();if(!restore){}
if(this.data.sorted_messages)
{messages=this.data.sorted_messages;}
else
{this.data.sorted_messages=[];Dashwire.Messages.Ordered.each(function(id){this.data.sorted_messages.push(Dashwire.Messages.get(id))}.bind(this));}
var field=this.messages_sort_field;var compare=eval("compare = function ("+(this.messages_sort_direction=='ascending'?'a,b':'b,a')+") { if ( a['"+field+"'] < b['"+field+"'] ) { return -1; } else { if ( a['"+field+"'] > b['"+field+"'] ) { return 1; } else { return 0; } } }")
messages=messages.sort(compare);var display_messages=messages.slice(0,500);var template=Object.extend({render:Dashwire.Templates.content.messages_table,messages:display_messages},Dashwire.TemplateUtilities);$('messages_wrapper').update(template.render());$('messages_count').update(messages.length);this.messages_check(checked_ids);},popup_messages:function(contact_id)
{this.messages_contact_id=contact_id;var contact=Dashwire.Contacts.get(contact_id);this.windows.messages.update({contact:contact});this.windows.messages.maximize('messages_wrapper');this.windows.messages.reposition();this.windows.messages.show();this.data.sorted_messages=[];Dashwire.Messages.Ordered.each(function(id){this.data.sorted_messages.push(Dashwire.Messages.get(id))}.bind(this));this.messages_query='';this.messages_sort_field='seconds';this.messages_sort_direction='descending';this.messages_update_table();},message_forward:function(message_id)
{this.popup_message(message_id);this.message_forward_form();},message_reply:function(message_id)
{this.popup_message(message_id);this.message_reply_form();},popup_unsent:function()
{this.windows.unsent.update({});this.windows.unsent.reposition();this.windows.unsent.show();},popup_message:function(message_id)
{var message=Dashwire.Messages.get(message_id);var contact=Dashwire.Contacts.get(message.contact_id);this.windows.message.update({message:message,contact:contact?contact:{}});this.windows.message.reposition();this.windows.message.show();dw.hide_scrollbars('messages_wrapper');this.contacts_textarea=$('message_recipients');this.working_window=$('message_window');this.remaining_element=$('message_remaining');this.tags_array=Dashwire.Contacts.tags.keys();this.contacts_setup_dropdown_entries('mobile');Event.observe($('message_recipients'),'keypress',function(e){return dw.contacts_dropdown_keypress(e);},false);new Form.Element.Observer('message_recipients',.1,function(){dw.populate_contact_dropdown();}.bind(this));},contacts_setup_dropdown_entries:function()
{dw.contacts_array=[];var options=$A(arguments);var include_mobile=options.include('mobile');var include_telephone=options.include('telephone');var include_email=options.include('email');var include_login=options.include('login');for(var index=0;index<Dashwire.Contacts.Ordered.length;index++)
{var contact=Dashwire.Contacts.get(Dashwire.Contacts.Ordered[index]);if(include_mobile)
{if(contact.telephone!=null&&contact.telephone.mobile!=null)
{number=contact.telephone.mobile[0];label=contact.formatted_name+' ('+number+')';dw.contacts_array.push({id:contact.id,label:label,search:label.toLowerCase()});}}
if(include_telephone)
{if(contact.telephone!=null)
{$H(contact.telephone).values().flatten().each(function(number){label=contact.formatted_name+' ('+number+')';dw.contacts_array.push({id:contact.id,label:label,search:label.toLowerCase()});});}}
if(include_email)
{if(contact.email!=null)
{[contact.email].flatten().each(function(email){var email_clean=email.replace(' ','');if(email_clean!='')
{label=contact.formatted_name+' ('+email+')';dw.contacts_array.push({id:contact.id,label:label,search:label.toLowerCase()});}});}}
if(include_login)
{if(contact.login!=null)
{label=contact.formatted_name+' ('+contact.login+')';dw.contacts_array.push({id:contact.id,label:label,search:label.toLowerCase()});}}}},skype_call:function(phone_number,tracking_code)
{window.location.href="skype:"+phone_number+"?call";if(tracking_code)
{track(tracking_code);}},contact_compose_textarea_reset:function(event)
{var field=$('compose_phone_number');if(field.value==this.contact_compose_textarea_message)
{field.value='';}},popup_compose:function(contact_id)
{var contact=Dashwire.Contacts.get(contact_id);this.windows.compose.update({contact:contact});this.windows.compose.reposition();this.windows.compose.show();this.contacts_textarea=$('compose_phone_number');this.remaining_element=$('compose_remaining');this.working_window=$('compose_window');this.tags_array=Dashwire.Contacts.tags.keys();this.contacts_setup_dropdown_entries('mobile');if(contact_id==null)
{this.contact_compose_textarea_message="start typing friend’s name or phone number";this.contacts_textarea.value=this.contact_compose_textarea_message;var recipients_field=$('compose_phone_number');recipients_field.observe('click',this.contact_compose_textarea_reset.bind(this));recipients_field.observe('keypress',this.contact_compose_textarea_reset.bind(this));Field.select(recipients_field);}
if(contact)
{this.contacts_textarea.value=this.contacts_render_recipient(contact)+'; ';Field.focus('compose_body');}
else if(typeof(contact_id)=='object')
{var invalid_contact=false;var contact_ids=contact_id;for(index=0;index<contact_ids.length;index++)
{var contact=Dashwire.Contacts.get(contact_ids[index]);invalid_contact=true;if(contact&&contact.telephone&&contact.telephone.mobile)
{this.contacts_textarea.value=this.contacts_textarea.value+this.contacts_render_recipient(contact)+'; ';invalid_contact=false;}}
if(invalid_contact){$('compose_box_alert').innerHTML="One or more of your contacts does not have a mobile number and cannot be sent an SMS message."
$('compose_box_alert').show();}
Field.focus('compose_body');}
else
{if(contact_id)
{$('compose_phone_number').value=contact_id+'; ';Field.focus('compose_body');}
else
{Field.select('compose_phone_number');}}
Event.observe($('compose_phone_number'),'keydown',function(e){return dw.contacts_dropdown_keypress(e);},false);new Form.Element.Observer('compose_phone_number',.1,function(){dw.populate_contact_dropdown();}.bind(this));},popup_group:function()
{var context={template:Dashwire.Templates.content.group};this.windows.group.update(context);this.windows.group.reposition();this.windows.group.show();this.contacts_textarea=$('group_members');this.remaining_element=$('group_remaining');this.working_window=$('group_window');this.tags_array=Dashwire.Contacts.tags.keys();this.contacts_setup_dropdown_entries('telephone','email');Field.focus('group_members');Event.observe($('group_members'),'keydown',function(e){return dw.contacts_dropdown_keypress(e);},false);new Form.Element.Observer('group_members',.1,function(){dw.populate_contact_dropdown();}.bind(this));},group_create:function()
{var params=Form.serialize('group_form_id');new Ajax.Request('/contacts/group/',{method:'post',asynchronous:false,evalScripts:true,parameters:params});this.windows.group.close();},media_send:function()
{var params=Form.serialize('send_form_id');new Ajax.Request('/user/alert/',{asynchronous:true,evalScripts:true,parameters:params});this.windows.send.close();this.activity_indicator_start();},popup_send:function(media_id)
{var media=this.get_media_item(media_id);this.windows.media.close();this.windows.send.update({media:media});this.windows.send.width(780);this.windows.send.reposition();this.windows.send.show();Field.focus('media_send_recipients');this.contacts_textarea=$('media_send_recipients');this.remaining_element=$('compose_remaining');this.working_window=$('send_window');this.tags_array=Dashwire.Contacts.tags.keys();this.contacts_setup_dropdown_entries('mobile','email');Event.observe($('media_send_recipients'),'keypress',function(e){return dw.contacts_dropdown_keypress(e);},false);new Form.Element.Observer('media_send_recipients',.1,function(){dw.populate_contact_dropdown();}.bind(this));},share_send:function(button)
{var f=$('media_share');var share=Form.serialize('media_share',true);var recipients=f.down('div');var media_id=$('media_id_field').value;share.media_id=media_id;var share_tab=share.tab;delete share.tab;share[share_tab=='sms'?'phone_numbers':'emails']=recipients.select('.id').pluck('innerHTML');var body=$H({share:share}).toJSON();new Ajax.Request('/share.json',{method:'post',contentType:'application/json',encoding:'',asynchronous:true,evalScripts:true,postBody:body,onLoading:function(transport){$('publish_tabs_body').update('<h2>Sharing...</h2>');},onSuccess:function(transport){$('publish_tabs_body').update('<h2>Done! <a href="#" onclick="dw.popup_publish('+media_id+' , \''+share_tab+'\' );">Send to another friend.</a></h2>');}});},popup_publish:function(media_id,default_tab)
{track('/dashboard/images/popup/share');var media=this.get_media_item(media_id);this.windows.publish.update({media:media});var image=$('publish_box_image');var proper_size_for_media=this.media_get_preferred_display_size("edit",media_id);image.src=this.src(media,proper_size_for_media);image.style.height=this.calculate_thumbnail_height(media,proper_size_for_media)+'px';this.windows.publish.width(780);this.windows.publish.reposition();this.windows.publish.show();if(media['type']=='Image')
{var items=[{label:"SMS",id:'sms',select_handler:this.sms_tab_select.bind(this),icon:'images/icons/tab_sms.png'},{label:"Email",id:'email',select_handler:this.email_tab_select.bind(this),icon:'images/icons/tab_email.png'},{label:"Web",id:'web',select_handler:this.web_tab_select.bind(this),icon:'images/icons/tab_web.png'}];}
else
{var items=[{label:"Email",id:'email',select_handler:this.email_tab_select.bind(this),icon:'images/icons/tab_email.png'},{label:"Web",id:'web',select_handler:this.web_tab_select.bind(this),icon:'images/icons/tab_web.png'}];}
var tab_options={container_id:'publish_tabs',body_id:'publish_tabs_body',default_item:default_tab,object:media,items:items};var tabs=new Dashwire.Controls.Tabs(tab_options);document.fe=new Dashwire.DashboardFieldEditor({track_prefix:'/dashboard/'+media['type']+'/share/title/'});},sms_tab_select:function(){var sms_text_box=new Dashwire.Controls.SmsTextBox({container_id:'sms_recipients'});sms_text_box.build();},email_tab_select:function(){var email_text_box=new Dashwire.Controls.EmailTextBox({container_id:'email_recipients'});email_text_box.build();},web_tab_select:function(){},media_hide:function(media_id){new Ajax.Request('/media/'+media_id+'.json',{method:'put',parameters:'media[private]=1'});},media_unhide:function(media_id){new Ajax.Request('/media/'+media_id+'.json',{method:'put',parameters:'media[private]=0'});},bebo_login:function(media_id,next_url)
{window.open(next_url,"mywindow","status=1,toolbar=0,width=646,height=436");},bebo_upload:function()
{$('twitter_login').hide();$('bebo_upload_status').innerHTML='Posting to bebo...';var params=Form.serialize('publish_form_id');new Ajax.Request('/bebo/upload/',{asynchronous:true,evalScripts:true,parameters:params});track('/dashboard/bebo/share/upload');},facebook_login:function(login_url)
{window.open(login_url,"mywindow","status=1,toolbar=0,width=650,height=650");},facebook_upload:function()
{$('twitter_login').hide();$('facebook_upload_status').innerHTML='Posting to Facebook...';var params=Form.serialize('publish_form_id');new Ajax.Request('/facebook/media_upload/',{asynchronous:true,evalScripts:true,parameters:params});track('/dashboard/facebook/share/upload');},update_status_sharing:function(field)
{var value=(field.checked)?1:0;var params=encodeURIComponent(field.name)+"="+value;if(field.name.match('facebook'))
{var params="enabled="+value;new Ajax.Request('/facebook/status/',{asynchronous:true,evalScripts:true,parameters:params});}},flickr_login:function(login_url,media_id)
{window.open(login_url,"mywindow","status=1,toolbar=0,width=838,height=520");},flickr_upload:function()
{$('flickr_upload_status').innerHTML='Uploading your photo...';var params=Form.serialize('publish_form_id');new Ajax.Request('/flickr/upload/',{asynchronous:true,evalScripts:true,parameters:params});track('/dashboard/flickr/share/upload');},twitter_reset:function()
{$('twitter_upload_status').hide();$('twitter_login').hide();$('twitter_upload_link').show();},twitter_upload:function()
{$('twitter_upload_link').hide();$('twitter_upload_status').innerHTML='Sending to Twitter...';$('twitter_upload_status').show();var params=Form.serialize('publish_form_id');new Ajax.Request('/twitter/upload/',{asynchronous:true,evalScripts:true,parameters:params});track('/dashboard/twitter/share/upload');},twitter_login:function(login_form)
{var params=Form.serialize(login_form);$('twitter_upload_status').innerHTML='Signing in to Twitter...';$('twitter_upload_status').show();if($('publish_form_id'))
{var media_params=Form.serialize('publish_form_id');params=params+'&'+media_params;}
if($('status_updates'))
{var status_params=Form.serialize('status_updates');params=params+'&'+status_params;}
new Ajax.Request('/twitter/login/',{asynchronous:true,evalScripts:true,parameters:params});},twitter_status:function(field)
{var value=(field.checked)?1:0;var params="enabled="+value;new Ajax.Request('/twitter/status',{asynchronous:true,evalScripts:true,parameters:params});},friendfeed_reset:function()
{$('friendfeed_upload_status').hide();$('friendfeed_login').hide();$('friendfeed_upload_link').show();},friendfeed_upload:function()
{$('friendfeed_upload_link').hide();$('friendfeed_upload_status').innerHTML='Sending to Friendfeed...';$('friendfeed_upload_status').show();var params=Form.serialize('publish_form_id');new Ajax.Request('/friendfeed/upload/',{asynchronous:true,evalScripts:true,parameters:params});track('/dashboard/friendfeed/share/upload');},friendfeed_login:function(login_form)
{$('friendfeed_upload_status').innerHTML='Signing in to FriendFeed...';$('friendfeed_upload_status').show();var params=Form.serialize(login_form);if($('publish_form_id'))
{var media_params=Form.serialize('publish_form_id');params=params+'&'+media_params;}
new Ajax.Request('/friendfeed/login/',{asynchronous:true,evalScripts:true,parameters:params});},make_address_dropdown:function(media_id)
{if($("address_dropdown")){$("address_dropdown").remove();}
html="<div id='address_dropdown' style='z-index:100;position:absolute;width:300px;'><div style='display:none;' class='contacts_dropdown' id='address_dropdown_contacts' style='width:300px;'>&nbsp;</div></div>";new Insertion.Bottom(this.working_window,html);top_position=(Position.positionedOffset(this.contacts_textarea)[1]+Element.getDimensions(this.contacts_textarea)["height"])+"px";left_position=(Position.positionedOffset(this.contacts_textarea)[0])+"px";$("address_dropdown").style.top=top_position;$("address_dropdown").style.left=left_position;},populate_contact_dropdown:function()
{var partial=this.partial=this.contacts_textarea.value.split(';').last().strip();this.make_address_dropdown();this.contacts_dropdown=$('address_dropdown_contacts');if(partial.length>0)
{var matching_tags=this.tags_array.select(function(tag){return tag.indexOf(this.partial)!=-1;}.bind(this));var matching_contacts=this.elements_filter(this.contacts_array,partial.toLowerCase());matching_tags.sort();matching_contacts.sort();var contact_slice=5;var tag_slice=5;if(matching_tags.length<5){contact_slice=10-matching_tags.length;}
if(matching_contacts.length<5){tag_slice=10-matching_tags.length;}
matching_tags=matching_tags.slice(0,tag_slice);matching_contacts=matching_contacts.slice(0,contact_slice);var context={template:Dashwire.Templates.content.contact_dropdown,matching_contacts:matching_contacts,matching_tags:matching_tags};this.contacts_dropdown.update(context.template());if((matching_tags.length+matching_contacts.length)>0){var selected=$$('#'+this.contacts_dropdown.id+' div').first()
selected.className='selected';this.contacts_dropdown.show();}else{this.hide_contacts_dropdown();}}else{this.hide_contacts_dropdown();}},calls_sort:function(field,direction)
{previous_calls_sort_field=this.calls_sort_field;previous_calls_sort_direction=this.calls_sort_direction;if(field==previous_calls_sort_field){direction=(previous_calls_sort_direction=="ascending")?"descending":"ascending";}
this.calls_sort_field=field;this.calls_sort_direction=direction;var new_direction=direction=='ascending'?'descending':'ascending';var icon=$('calls_'+field+'_sort_indicator');icon.src='/images/icons/'+direction+'.gif';icon.show();['name','duration','seconds','folder'].without(field).each(function(name){$('calls_'+name+'_sort_indicator').hide()});this.calls_update_table();},calls_filter:function(default_text)
{this.calls_query=$('calls_search').value.toLowerCase();if(this.calls_query.length!=0&&this.calls_query.toLowerCase()!=default_text.toLowerCase())
{Dashwire.Calls.search(this.calls_query,this.call_search_results.bind(this));}
else
{this.data.sorted_calls=[];Dashwire.Calls.Ordered.each(function(id){this.data.sorted_calls.push(Dashwire.Calls.get(id))}.bind(this));this.calls_update_table(true);}},call_search:function(filter,default_text)
{if(filter!=default_text){params={query:filter};new Ajax.Request('/calls/search.json',{asynchronous:true,evalScripts:true,parameters:params});}},call_search_results:function(ids)
{this.data.sorted_call_ids=ids;this.data.sorted_calls=[];if(this.calls_query!=null&&this.calls_query.length!=0)
{ids.each(function(id){this.data.sorted_calls.push(Dashwire.Calls.get(id))}.bind(this));this.calls_update_table();}
else
{Dashwire.Calls.Ordered.each(function(id){this.data.sorted_calls.push(Dashwire.Calls.get(id))}.bind(this));this.calls_update_table(true);}},calls_update_table:function()
{var checked_ids=this.calls_collect_checked();var calls=this.calls_contact_id?Dashwire.Contacts.get(this.calls_contact_id).calls:Dashwire.Calls.Indexed.values();var field=this.calls_sort_field;var compare=eval("compare = function ("+(this.calls_sort_direction=='ascending'?'a,b':'b,a')+") { if ( a['"+field+"'] < b['"+field+"'] ) { return -1; } else { if ( a['"+field+"'] > b['"+field+"'] ) { return 1; } else { return 0; } } }")
if(this.data.sorted_calls)
{calls=this.data.sorted_calls;}
else
{this.data.sorted_calls=[];Dashwire.Calls.Ordered.each(function(id){this.data.sorted_calls.push(Dashwire.Calls.get(id))}.bind(this));}
calls=calls.sort(compare);var display_calls=calls.slice(0,500);var template=Object.extend({render:Dashwire.Templates.content.calls_table,calls:display_calls},Dashwire.TemplateUtilities);$('calls_table_container').update(template.render());$('calls_count').update(calls.length);this.calls_check(checked_ids);},popup_calls:function(contact_id)
{this.calls_contact_id=contact_id;var contact=Dashwire.Contacts.get(contact_id);this.windows.calls.update({contact:contact});this.data.sorted_calls=null;this.calls_query='';this.calls_sort_field='seconds';this.calls_sort_direction='descending';this.calls_update_table();this.windows.calls.maximize('calls_table_container');this.windows.calls.reposition();this.windows.calls.show();},popup_call:function(call_id)
{var call=Dashwire.Calls.get(call_id);this.popup_contact(call.contact_id);},popup_show:function(id)
{$('contact_filter').blur();$('message_filter').blur();},popup_show_fixed:function(id)
{$('contact_filter').blur();$('message_filter').blur();},set_date_time:function(object)
{object.date=__T(object.seconds,'%m/%d/%Y')
object.time=__T(object.seconds,'%I:%M %p')},tags_split:function(tags)
{return tags.replace(/,/g,' ').split(' ').select(function(tag){return tag.length});},hash_extract:function(hash,model)
{var result=$H({});for(name in hash)
{if(name.indexOf(model+'[')==0)
{key=name.substr(model.length+1,name.length-model.length-2);if(key!='tags')
{result[key]=hash[name];}
else
{result[key]=this.tags_split(hash[name]);}}}
return result;},media_update:function(media_id)
{var params=Form.serialize('media_properties_form');var degrees=$('media_rotation').value;if(!this.images_updated)
{this.images_updated={refresh:function(){},updated:function(images)
{if(dw.windows.media.visible())
{var form=$$('.editor form');if(images[0].id==form[0].getInputs()[0].value){dw.windows.media.close();dw.popup_media(images[0].id);}}}}
Dashwire.Images.add_listener(this.images_updated);}
if(degrees!=Dashwire.Images.get(media_id).rotation)
{var media=this.get_media_item(media_id);media.rotating=true;Dashwire.Images.refresh();this.windows.media.close();this.popup_media(media_id);}
new Ajax.Request('/media/'+media_id+'.json',{method:'put',parameters:params,onSuccess:function(){Dashwire.Images.refresh();Dashwire.Videos.refresh();}});this.windows.rotate.close();},media_delete:function(media_id)
{if(confirm('Delete this item?'))
{var media=this.get_media_item(media_id);switch(media.type)
{case"Image":Dashwire.Images.destroy(media_id);break;case"Video":Dashwire.Videos.destroy(media_id);break;}
this.windows.media.close();return true;}
else
{return false;}},media_rotate:function(id,delta)
{var angle=parseInt($('media_rotation').value)+delta;angle=((angle+360)%360);$('media_rotation').value=angle;var media=this.get_media_item(id);var url=Dashwire.TemplateUtilities.src(media,'medium');var new_src=url.replace('.jpg','-'+angle+'.jpg')
$('rotate_box_image').src=new_src;},media_refresh:function(media_id)
{var image=$('media_box_image');var media=this.get_media_item(media_id);preferred_display_size=this.media_get_preferred_display_size("edit",media_id);image.src=eval("media."+preferred_display_size)+Math.random();image.style.height=this.calculate_thumbnail_height(media,preferred_display_size)+'px';return true;},media_download:function(media_id)
{var media=this.get_media_item(media_id);window.location.href='/media/download/'+media.guid;},contacts_select_contact:function()
{if(this.contacts_dropdown.visible())
{var selected=$$('#'+this.contacts_dropdown.id+' div.selected div').first();this.cselected=selected;var contact='';var all=this.contacts_textarea.value.split(';').collect(function(e){return e.strip()});all.pop();this.m_all2=all;if(selected)
{all.push(selected.nextSiblings()[0].innerHTML);}
else
{var selected=$$('#'+this.contacts_dropdown.id+' div.selected').first();var tags=Dashwire.Contacts.tags.get(selected.innerHTML);tags.each(function(contact_id){var contact=Dashwire.Contacts.get(contact_id);if(this.contacts_textarea==$('compose_phone_number')){if((contact.telephone&&contact.telephone.mobile)||(contact.dashwire_user))
{all.push(this.contacts_render_recipient(contact));}}else{if((contact.telephone&&contact.telephone.mobile)||(contact.email))
{all.push(this.contacts_render_recipient(contact));}}}.bind(this))}
this.contacts_textarea.value=all.uniq().join('; ')+'; ';this.hide_contacts_dropdown();return true;}
else
{return false;}},contacts_render_recipient:function(contact)
{if(contact.dashwire_user){return contact.formatted_name+' ('+contact.dashwire_user+')';}else if(contact.telephone){if(contact.telephone.mobile){return contact.formatted_name+' ('+contact.telephone.mobile[0]+')';}else if(contact.email){return contact.formatted_name+' ('+contact.email+')';}}else if(contact.email){return contact.formatted_name+' ('+contact.email+')';}
return contact.formatted_name;},contacts_previous_contact:function()
{var selected=$$('#'+this.contacts_dropdown.id+' div.selected').first()
if(selected.previousSibling)
{selected.className='';selected.previousSibling.className='selected';}},contacts_next_contact:function()
{var selected=$$('#'+this.contacts_dropdown.id+' div.selected').first()
if(selected.nextSibling)
{selected.className='';selected.nextSibling.className='selected';}},contacts_clear_selected:function()
{var selected=$$('#'+this.contacts_dropdown.id+' div.selected')
selected.each(function(one_selected){one_selected.className='';});},contacts_highlight_this_recipient:function(div)
{this.contacts_clear_selected();div.className='selected';},contacts_choose_this_recipient:function()
{this.contacts_select_contact();this.contacts_textarea.focus();},compose_limit:function(field,event,count)
{if(field.value.length>=count&&event.charCode!=0)
{return false;}
return true;},compose_notify:function(field,event)
{var length=field.value.length;if(length>160)
{field.value=field.value.truncate(160,'');length=160;}
this.remaining_element.innerHTML=''+(160-length);},compose_remaining:function(length)
{},mouseover:function(element)
{Element.addClassName(element,'hover');},mouseout:function(element)
{Element.removeClassName(element,'hover');},popup_personalize:function(product_id)
{if(product_id==null)
{product_id=Dashwire.ProductTypes.theme.first()}
var product=Dashwire.Products[product_id];var category=product.product_type;var product_ids=$A(Dashwire.ProductTypes[category]);var label=category;var purchaseable=!(Dashwire.User.purchases.indexOf(product_id)!=-1||product.price==0);if(purchaseable)
{button='/images/buttons/purchase.gif'}
else
{button='/images/buttons/send-to-phone.gif'}
this.windows.personalize.update({personalize:Dashwire.ProductTypes,label:label,product_ids:product_ids,products:Dashwire.Products,product:product,purchaseable:purchaseable,purchase_button:button});this.windows.personalize.width(740);if(this.windows.personalize.hidden())
{this.windows.personalize.reposition();}
this.windows.personalize.show();this.unselect_all();},popup_confirm:function(product_id)
{var product=Dashwire.Products[product_id];this.windows.confirm.update({product:product,user:Dashwire.User});this.windows.confirm.reposition();this.windows.confirm.show();},change_card:function()
{window.location.href='/payment/'+$('confirm_product_id').value;},complete_purchase:function()
{var params=Form.serialize('complete_purchase_form');new Ajax.Request('/confirm/'+$('confirm_product_id').value,{asynchronous:true,evalScripts:true,parameters:params});this.activity_indicator_start();this.windows.confirm.close();this.windows.personalize.close();},product_send_to_phone:function(id)
{new Ajax.Request('/product/send_to_phone/'+id,{asynchronous:true,evalScripts:true});this.activity_indicator_start();this.windows.personalize.close();},product_purchase:function(id)
{var product=Dashwire.Products[id];if(Dashwire.User.purchases.indexOf(id)!=-1||product.price==0)
{this.product_send_to_phone(id);}
else
{if(Dashwire.User.cc_tail)
{this.popup_confirm(id);}
else
{window.location.href='/confirm/'+id;}}},product_rate:function(id,score)
{this.activity_indicator_start();new Ajax.Request('/product/rate/'+id+'/'+score,{asynchronous:true,evalScripts:true});},activity_indicator_start:function()
{$('activity_indicator').show();},activity_indicator_stop:function()
{$('activity_indicator').hide();},update_purchases:function(product_ids)
{Dashwire.User.purchases=product_ids;},message_reply_form:function()
{$('message_action').value='reply';$('message_forward_form').hide();$('message_reply_form').show();Field.focus('message_body');$('send_button').show();this.windows.message.reposition();},message_forward_form:function()
{$('message_action').value='forward';$('message_reply_form').hide();$('message_forward_form').show();Field.focus('message_recipients');$('send_button').show();this.windows.message.reposition();},table_row_highlight:function(row)
{row.style.backgroundColor="#f6f6f6";},table_row_unhighlight:function(row)
{row.style.backgroundColor="";},message_send:function()
{var params='';switch($('message_action').value)
{case'forward':params=Form.Element.serialize('message_recipients');new Ajax.Request('/message/forward/'+$('message_id').value,{asynchronous:true,evalScripts:true,parameters:params});track('/dashboard/messages/popup/forward/send');break;case'reply':params=Form.Element.serialize('message_body');new Ajax.Request('/message/reply/'+$('message_id').value,{asynchronous:true,evalScripts:true,parameters:params});track('/dashboard/messages/popup/reply/send');break;}
setTimeout(function(){window.layout.tiles.get('messages_tile').refresh()},65000);this.windows.message.close();},refresh_messages:function()
{var messages_tile=window.layout.tiles.get('messages_tile');if(messages_tile)
{messages_tile.refresh();}
var conversations_tile=window.layout.tiles.get('conversations_tile');if(conversations_tile)
{conversations_tile.refresh();}},defer_messages_refresh:function()
{setTimeout(this.refresh_messages.bind(this),65000);},compose_send:function()
{var params=Form.serialize('compose_form_id');new Ajax.Request('/message/compose/',{asynchronous:true,evalScripts:true,parameters:params});this.windows.compose.close();this.defer_messages_refresh();},messages_remove:function(message_ids)
{message_ids.each(function(i){var message=Dashwire.Messages.get(i);Dashwire.Messages.remove(i);if(dw.windows.messages.visible())
{$('message_row_'+i).remove();}
var count=$('messages_count')
if(count)
{count.update(parseInt(count.innerHTML)-1);}
if(message.contact_id)
{var contact=Dashwire.Contacts.get(message.contact_id);if(contact&&contact.messages)
{contact.messages=contact.messages.without(message);}}})},message_delete:function(message_id)
{if(confirm('Delete this message?'))
{Dashwire.Messages.destroy(message_id);if($('message_form')){this.messages_update_table();}
this.windows.message.close();}},messages_delete_selected:function()
{var messages_form=$('messages_form');var message_count=0;var delete_ids=this.messages_collect_checked();if(delete_ids.length>0&&confirm('Delete selected messages?'))
{this.messages_remove(delete_ids);Dashwire.Messages.batch_destroy(delete_ids);}},messages_collect_checked:function(messages_form)
{var message_ids=new Array;var messages_form=$('messages_form');for(i=0;i<messages_form.elements.length;i++)
{if(messages_form.elements[i].checked==true&&messages_form.elements[i].type!='hidden'&&messages_form.elements[i].type!='button')
{message_ids.push(messages_form.elements[i].value)}}
return message_ids;},messages_check:function(message_ids)
{var messages_form=$('messages_form');message_ids.each(function(i){messages_form['message_id_'+message_ids[i]].checked=true;})},messages_toggle_select_all:function()
{var messages_form=$('messages_form');var toggle=false;if(messages_form.all_selected.value=='0')
{toggle=true;messages_form.all_selected.value='1';}
else
{toggle=false;messages_form.all_selected.value='0';}
for(i=0;i<messages_form.elements.length;i++)
{messages_form.elements[i].checked=toggle;}},calls_remove:function(call_ids)
{for(j=0;j<call_ids.length;j++)
{var call_id=call_ids[j];if(this.windows.calls.visible())
{var row=$('call_row_'+call_id);if(row)
{row.remove();}}
var count=$('calls_count');if(count&&parseInt(count.innerHTML)>0)
{count.update(parseInt(count.innerHTML)-1);}}},calls_delete_selected:function()
{var calls_form=$('calls_form');var call_count=0;var delete_ids=this.calls_collect_checked();if(delete_ids.length>0&&confirm('Delete selected calls?'))
{this.calls_remove(delete_ids);Dashwire.Calls.batch_destroy(delete_ids);}},calls_collect_checked:function()
{var call_ids=new Array;var calls_form=$('calls_form');for(i=0;i<calls_form.elements.length;i++)
{if(calls_form.elements[i].checked==true&&calls_form.elements[i].type!='hidden')
{call_ids.push(calls_form.elements[i].value)}}
return call_ids;},calls_uncheck_all:function()
{var calls_form=$('calls_form');for(i=0;i<calls_form.elements.length;i++)
{if(calls_form.elements[i].type!='hidden')
{calls_form.elements[i].checked=false;}}
calls_form.all_selected.value='0';},calls_check:function(call_ids)
{var calls_form=$('calls_form');for(i=0;i<call_ids.length;i++)
{calls_form['call_id_'+call_ids[i]].checked=true;}},calls_toggle_select_all:function()
{var calls_form=$('calls_form');var toggle=false;if(calls_form.all_selected.value=='0')
{toggle=true;calls_form.all_selected.value='1';}
else
{toggle=false;calls_form.all_selected.value='0';}
for(i=0;i<calls_form.elements.length;i++)
{calls_form.elements[i].checked=toggle;}},friendship_accept:function(user_login)
{var parameters="friend="+user_login;new Ajax.Request('/users/accept_friendship',{method:"post",parameters:parameters,asynchronous:true,evalScripts:true});},friendship_deny:function(user_login)
{var parameters="friend="+user_login;new Ajax.Request('/users/deny_friendship',{method:"post",parameters:parameters,asynchronous:true,evalScripts:true});},message_search:function(filter,default_text)
{if(filter!=default_text){params=Form.Element.serialize('message_filter');new Ajax.Request('/message/search',{asynchronous:true,evalScripts:true,parameters:params});}},contact_search:function(filter,default_text)
{if(filter!=default_text){params=Form.Element.serialize('contact_filter');new Ajax.Request('/contact/search',{asynchronous:true,evalScripts:true,parameters:params});}},calls:function(show_type)
{var types=['missed','dialed','received'];for(var index=0;index<types.length;index++)
{var type=types[index];if(type==show_type)
{Element.show('calls_'+type);Element.addClassName('link_'+type,'current');}
else
{Element.hide('calls_'+type);Element.removeClassName('link_'+type,'current');}}},contacts_dropdown_keypress:function(event)
{switch(event.keyCode)
{case Event.KEY_ESC:this.hide_contacts_dropdown();Event.stop(event);break;case Event.KEY_RETURN:case Event.KEY_TAB:if(this.contacts_select_contact())
{Event.stop(event);}
break;case Event.KEY_UP:this.contacts_previous_contact();Event.stop(event);break;case Event.KEY_DOWN:this.contacts_next_contact();Event.stop(event);break;}
return true;},scroll:function(event)
{var top_window=Dashwire.Window.get_top_window();if(top_window)
{}},handle_contact_form_events:function(event){parent_form=Event.element(event).up('form');if(parent_form){parent_form=parent_form.id;}else{parent_form="global";}
document.parent_form=parent_form;switch(event.keyCode){case Event.KEY_ESC:if(dw.current_contact.id!=0){switch(parent_form){case"contact_work_address":dw.show_contact_address('view');Event.stop(event);break;case"contact_home_address":dw.show_contact_address('view');Event.stop(event);break;case"contact_emails":dw.show_contact_email('view');Event.stop(event);break;case"contact_more_details":dw.show_contact_more('view');Event.stop(event);break;case"contact_telephone":dw.show_contact_telephone('view');Event.stop(event);break;case"contact_name_form":dw.show_contact_name('view');Event.stop(event);break;case"global":if(dw.contact_form_status_stack.length>0){eval("dw.show_"+dw.contact_form_status_stack.last()+"(\'view\');");}else{Dashwire.Window.close_top_window();}
Event.stop(event);break;}
return true;break;}else{Event.stop(event);return false;}
break;case Event.KEY_RETURN:if(dw.current_contact.id==0){dw.create_contact();}else{switch(parent_form){case"contact_work_address":dw.save_contact_address();dw.show_contact_address('view');Event.stop(event);break;case"contact_home_address":dw.save_contact_address();dw.show_contact_address('view');Event.stop(event);break;case"contact_emails":dw.save_contact_email();dw.show_contact_email('view');Event.stop(event);break;case"contact_more_details":dw.save_contact_more();dw.show_contact_more('view');Event.stop(event);break;case"contact_telephone":dw.save_contact_telephone();dw.show_contact_telephone('view');Event.stop(event);break;case"contact_name_form":dw.save_contact_name();dw.show_contact_name('view');Event.stop(event);break;}}
return true;break;}},keypress:function(event)
{if(this.is_contact_labeler_visible())
{this.contact_labeler_finish(null);Event.stop(event);}
else if(this.is_popup_visible())
{current_window=this.is_popup_visible().id;if(current_window=="contact_window"){switch(event.keyCode)
{case Event.KEY_ESC:if(dw.is_contact_labeler_visible()){dw.contact_labeler_finish();}else{return(dw.handle_contact_form_events(event));}
Event.stop(event);break;case Event.KEY_RETURN:return(dw.handle_contact_form_events(event));break;case Event.KEY_TAB:break;}
return true;}else if(current_window=="media_manager_window"){switch(event.keyCode)
{case Event.KEY_ESC:Dashwire.Window.close_top_window();Event.stop(event);break;case Event.KEY_SHIFT:break;case Event.KEY_CTRL:break;case Event.KEY_TAB:break;}
return true;}else if(current_window=="modules_window"){switch(event.keyCode)
{case Event.KEY_RETURN:dw.update_modules();break;}
return true;}else{switch(event.keyCode)
{case Event.KEY_ESC:Dashwire.Window.close_top_window();Event.stop(event);break;}
return true;}}
else
{if(event.keyCode==Event.KEY_BACKSPACE)
{this.filter_backspace(event);}
switch(event.charCode)
{case Event.KEY_C:break;}}
return true;},search_focus:function(field,text)
{if(field.value.length!=0){if(field.value==text){field.value='';}else{field.select();}}},search_blur:function(field,text)
{if(field.value.length==0){field.value=text;}},clear_field:function(field,text)
{if(field.value==text){field.value='';}else if(field.value==''){field.value=text;}},restore_field:function(field,text)
{if(field.value==''){field.value=text;}},autocomplete_with:function(element_id,items_callback)
{this.input_element=element_id;this.dropdown_element=element_id+'_autocomplete_dropdown';this.items_callback=items_callback;Event.observe($(element_id),'keydown',function(e){return dw.autocomplete_keypress(e);},false);new Form.Element.Observer(element_id,.2,function(){dw.autocomplete_populate();}.bind(this));},autocomplete_keypress:function(event)
{if($(this.dropdown_element)&&$(this.dropdown_element).visible()){switch(event.keyCode)
{case Event.KEY_ESC:$(this.dropdown_element).hide();Event.stop(event);break;case Event.KEY_RETURN:dw.autocomplete_select_selected_or_first($(this.dropdown_element));Event.stop(event);break;case Event.KEY_TAB:dw.autocomplete_select_selected_or_first($(this.dropdown_element));Event.stop(event);break;case Event.KEY_UP:dw.autocomplete_previous_item(this);Event.stop(event);break;case Event.KEY_DOWN:dw.autocomplete_next_item(this);Event.stop(event);break;}}
return true;},autocomplete_populate:function()
{dw.autocomplete_create_dropdown(this.input_element,this.dropdown_element);var filter=$(this.input_element).value.split(', ').last();var filtered_items=this.autocomplete_filter(eval(this.items_callback),filter);$(this.dropdown_element).hide();for(i=0;i<filtered_items.length;i++){html='<div style="cursor:pointer;" class="autocomplete_item" onmouseover="dw.autocomplete_highlight_item(this);" onclick="dw.autocomplete_select_item(this);">'+filtered_items[i]+'</div>';new Insertion.Bottom(this.dropdown_element,html);}
if(i>0){$(this.dropdown_element).show();dw.autocomplete_hilight_first($(this.dropdown_element));}else{$(this.dropdown_element).hide();}},autocomplete_create_dropdown:function(input_element,dropdown_element)
{if($(dropdown_element)){$(dropdown_element).remove();}
html="<div id='"+dropdown_element+"' class='autocomplete_dropdown_container' style='z-index:500;position:relative;display:none;'></div>";new Insertion.After(input_element,html);},autocomplete_next_item:function(input_field)
{dropdown=$(input_field.input_element+'_autocomplete_dropdown');selected=dw.autocomplete_find_selected(dropdown);if(selected){next=selected.nextSiblings().first();if(next){dw.autocomplete_highlight_item(next);}}else{dw.autocomplete_highlight_item(dropdown.descendants().first());}},autocomplete_previous_item:function(input_field)
{dropdown=$(input_field.input_element+'_autocomplete_dropdown');selected=dw.autocomplete_find_selected(dropdown);if(selected){previous=selected.previousSiblings().first();if(previous){dw.autocomplete_highlight_item(previous);}}else{dw.autocomplete_highlight_item(dropdown.descendants().first());}},autocomplete_highlight_item:function(element)
{element.nextSiblings().each(function(item){item.removeClassName('selected')});element.previousSiblings().each(function(item){item.removeClassName('selected')});element.addClassName('selected');},autocomplete_select_item:function(element)
{if(element){dropdown_element=element.ancestors().first().id;if($(dropdown_element).visible()){parts=dropdown_element.split('_');parts.pop();parts.pop();input_element=parts.join('_');current_items=$(input_element).value.split(', ');current_items.pop();current_items.push(element.innerHTML)
$(input_element).value=current_items.join(', ')+', ';$(dropdown_element).hide();return true;}else{return true;}}else{return true;}},autocomplete_filter:function(elements,filter)
{if(filter.length>0){var terms=filter.split(' ').sortBy(function(e){return-e.length;});for(var index=0;index<terms.length;index++)
{this.term=terms[index];elements=elements.select(function(e){return e.indexOf(this.term)!=-1;}.bind(this))}}else{elements=new Array;}
return elements.sort();},autocomplete_select_selected_or_first:function(dropdown)
{var selected=dw.autocomplete_find_selected(dropdown);if(!selected){selected=dw.autocomplete_hilight_first(dropdown);}
dw.autocomplete_select_item(selected);},autocomplete_hilight_first:function(dropdown)
{first=dropdown.descendants().first();dw.autocomplete_highlight_item(first);return first;},autocomplete_find_selected:function(dropdown)
{selected=null;dropdown.descendants().each(function(item){if(item.classNames().toString().indexOf('selected')!=-1){selected=item}});return selected;},autocomplete_active:function(field_name)
{var active=false;var dropdown=$(field_name+'_autocomplete_dropdown');if(dropdown&&dropdown.visible()){active=true;}
return active;},track_public_settings:function()
{if($('preferences_public_photos_enabled').checked)
{track('/public/settings/images/enable');}
else
{track('/public/settings/images/disable');}
if($('preferences_public_videos_enabled').checked)
{track('/public/settings/vidoes/enable');}
else
{track('/public/settings/vidoes/disable');}}});Object.extend(Event,{_domReady:function(){if(arguments.callee.done)return;arguments.callee.done=true;if(this._timer)clearInterval(this._timer);this._readyCallbacks.each(function(f){f()});this._readyCallbacks=null;},onDOMReady:function(f){if(!this._readyCallbacks){var domReady=this._domReady.bind(this);if(document.addEventListener)
document.addEventListener("DOMContentLoaded",domReady,false);if(/WebKit/i.test(navigator.userAgent)){this._timer=setInterval(function(){if(/loaded|complete/.test(document.readyState))domReady();},10);}
Event.observe(window,'load',domReady);Event._readyCallbacks=[];}
Event._readyCallbacks.push(f);}});/* --------- /javascripts/lowpro.js --------- */ 

LowPro={};LowPro.Version='0.5';if(!Element.addMethods)
Element.addMethods=function(o){Object.extend(Element.Methods,o)};DOM={prependChild:function(element,node){$(element).insertBefore(node,element.firstChild);},appendChildren:function(element,children){element=$(element);if(!(children instanceof Array))
children=Array.prototype.slice.call(arguments,1);children.each(function(child){element.appendChild(child)});return children;}};Element.addMethods(DOM);DOM.Builder={tagFunc:function(tag){return function(){var attrs,children;if(arguments.length>0){if(arguments[0].nodeName||typeof arguments[0]=="string")
children=arguments;else{attrs=arguments[0];children=Array.prototype.slice.call(arguments,1);};}
return DOM.Builder.create(tag,attrs,children);};},create:function(tag,attrs,children){attrs=attrs||{};children=children||[];tag=tag.toLowerCase();var el=new Element(tag,attrs);for(var i=0;i<children.length;i++){if(typeof children[i]=='string')
children[i]=document.createTextNode(children[i]);el.appendChild(children[i]);}
return $(el);}};(function(){var els=("p|div|span|strong|em|img|table|tr|td|th|thead|tbody|tfoot|pre|code|"+"h1|h2|h3|h4|h5|h6|ul|ol|li|form|input|textarea|legend|fieldset|"+"select|option|blockquote|cite|br|hr|dd|dl|dt|address|a|button|abbr|acronym|"+"script|link|style|bdo|ins|del|object|param|col|colgroup|optgroup|caption|"+"label|dfn|kbd|samp|var").split("|");var el,i=0;while(el=els[i++])
window['$'+el]=DOM.Builder.tagFunc(el);})();DOM.Builder.fromHTML=function(html){var root;if(!(root=arguments.callee._root))
root=arguments.callee._root=document.createElement('div');root.innerHTML=html;return root.childNodes[0];};Object.extend(Event,{onReady:function(f){document.observe('contentloaded',f);}});Event.observe=Event.observe.wrap(function(proceed,element,eventName,handler){var handler=handler.wrap(function(original,e){if(original(e)===false)e.stop();});proceed(element,eventName,handler)});Element.addMethods({observe:Event.observe});Event.addBehavior=function(rules){var ab=this.addBehavior;Object.extend(ab.rules,rules);if(!ab.responderApplied){Ajax.Responders.register({onComplete:function(){if(Event.addBehavior.reassignAfterAjax)
setTimeout(function(){ab.unload();ab.load(ab.rules)},10);}});ab.responderApplied=true;}
if(ab.autoTrigger){this.onReady(ab.load.bind(ab,rules));}};Object.extend(Event.addBehavior,{rules:{},cache:[],reassignAfterAjax:false,autoTrigger:false,load:function(rules){for(var selector in rules){var observer=rules[selector];var sels=selector.split(',');sels.each(function(sel){var parts=sel.split(/:(?=[a-z]+$)/),css=parts[0],event=parts[1];$$(css).each(function(element){if(event){$(element).observe(event,observer);Event.addBehavior.cache.push([element,event,observer]);}else{if(!element.$$assigned||!element.$$assigned.include(observer)){if(observer.attach)observer.attach(element);else observer.call($(element));element.$$assigned=element.$$assigned||[];element.$$assigned.push(observer);}}});});}},unload:function(){this.cache.each(function(c){Event.stopObserving.apply(Event,c);});this.cache=[];}});Event.observe(window,'unload',Event.addBehavior.unload.bind(Event.addBehavior));$$$=Event.addBehavior;Behavior={create:function(members){var behavior=function(){var behavior=arguments.callee;if(this==window||$H(this).values().include(behavior)){var args=$A(arguments);return function(){var initArgs=[this].concat(args);behavior.attach.apply(behavior,initArgs);};}else{var args=(arguments.length==2&&arguments[1]instanceof Array)?arguments[1]:Array.prototype.slice.call(arguments,1);this.element=$(arguments[0]);this.initialize.apply(this,args);behavior._bindEvents(this);behavior.instances.push(this);}};behavior.prototype.initialize=Prototype.K;Object.extend(behavior.prototype,members);Object.extend(behavior,Behavior.ClassMethods);behavior.instances=[];return behavior;},ClassMethods:{attach:function(element){return new this(element,Array.prototype.slice.call(arguments,1));},_bindEvents:function(bound){for(var member in bound)
if(member.match(/^on(.+)/)&&typeof bound[member]=='function')
bound.element.observe(RegExp.$1,bound[member].bindAsEventListener(bound));}}};/* --------- /javascripts/window.js --------- */ 

Dashwire.WindowBase=Class.create();Dashwire.WindowBase.prototype={style:function(name,value)
{if(value)
{if(typeof(value)=='number')
{return this.dom_element.style[name]=value+'px';}
else
{return this.dom_element.style[name]=value;}}
else
{return this.dom_element.style[name];}},top:function(top)
{if(typeof(top)=='number')
{return this.dom_element.style.top=top+'px';}
else
{return this.dom_element.style.top=top;}},bottom:function(bottom)
{if(typeof(bottom)=='number')
{return this.dom_element.style.bottom=bottom+'px';}
else
{return this.dom_element.style.bottom=bottom;}},left:function(left)
{if(typeof(left)=='number')
{return this.dom_element.style.left=left+'px';}
else
{return this.dom_element.style.left=left;}},right:function(right)
{if(typeof(right)=='number')
{return this.dom_element.style.right=right+'px';}
else
{return this.dom_element.style.right=right;}},width:function(width)
{if(typeof(width)=='number')
{return this.dom_element.style.width=width+'px';}
else
{return this.dom_element.style.width=width;}},height:function(height)
{if(typeof(height)=='number')
{return this.dom_element.style.height=height+'px';}
else
{return this.dom_element.style.height=height;}},padding:function(padding)
{if(typeof(padding)=='number')
{return this.dom_element.style.padding=padding+'px';}
else
{return this.dom_element.style.padding=padding;}},move_to_top:function()
{var top_z_index=Dashwire.Window.get_top_window_z_index();this.dom_element.style.zIndex=top_z_index+2;Dashwire.Window.reposition_overlay()},visible:function()
{return this.dom_element.style.display!='none';},hidden:function()
{return this.dom_element.style.display=='none';},show:function()
{this.dom_element.style.zIndex=100;this.dom_element.show();this.move_to_top();},hide:function()
{this.dom_element.hide();},close:function()
{this.dom_element.hide();Dashwire.Window.reposition_overlay();var top_window=Dashwire.Window.get_top_window();if(top_window)
{dw.restore_scrollbars();top_window.reposition();}},toggle:function()
{this.dom_element.toggle();},client_width:function()
{var de=document.documentElement;return window.innerWidth||self.innerWidth||(de&&de.clientWidth)||document.body.clientWidth;},client_height:function()
{var de=document.documentElement;return window.innerHeight||self.innerHeight||(de&&de.clientHeight)||document.body.clientHeight;}}
Dashwire.Window=Class.create();Dashwire.Window.reposition_overlay=function()
{if(Dashwire.Window.overlay)
{Dashwire.Window.overlay.resize();Dashwire.Window.overlay.show();Dashwire.Window.overlay.move_to_top();}};Dashwire.Window.close=function(element)
{while(element&&element.window==null)
{element=element.parentNode;}
if(element&&element.window)
{element.window.close();}};Dashwire.Window.get_top_window_z_index=function()
{var top_z_index=100;var top_window=Dashwire.Window.get_top_window();if(top_window)
{top_z_index=parseInt(top_window.dom_element.style.zIndex)}
return top_z_index;};Dashwire.Window.first_visible=function()
{for(var name in Dashwire.Window.windows)
{var win=Dashwire.Window.windows[name];if(win.dom_element.style.display!='none')
{return win;}}
return null;};Dashwire.Window.get_top_window=function()
{var top_window=null;var top_z_index=100;for(var name in Dashwire.Window.windows)
{var win=Dashwire.Window.windows[name];if(win.dom_element.style.display!='none')
{var z_index=parseInt(win.dom_element.style.zIndex)
if(z_index>top_z_index)
{top_window=win;top_z_index=z_index;}}}
return top_window;};Dashwire.Window.close_top_window=function()
{var top_window=Dashwire.Window.get_top_window();if(top_window)
{top_window.close();}};Dashwire.Window.close_all_windows=function()
{for(var name in Dashwire.Window.windows)
{var win=Dashwire.Window.windows[name];if(win.dom_element.style.display!='none')
{win.close();}}};Object.extend(Dashwire.Window.prototype,Dashwire.WindowBase.prototype);Object.extend(Dashwire.Window.prototype,{initialize:function(id,chrome,content,options)
{this.id=id;if(typeof(chrome)=="string")
{this.chrome=Dashwire.Templates.chrome[chrome];}
else
{this.chrome=chrome;}
if(typeof(content)=="string")
{this.content=Dashwire.Templates.content[content];}
else
{this.content=content;}
this.create(options);},create:function(options)
{Element.extend(document.body).insert('<div style="display: none;" id="'+this.id+'"></div>');this.dom_element=$(this.id);this.options=Object.extend({position:'absolute',zIndex:'102'},options||{});Object.extend(this.dom_element.style,this.options);this.dom_element.window=this;},clone:function(id)
{this.dom_element.update($(id).innerHTML);},update:function(context)
{context.render=this.content;var template=Object.extend(context,Dashwire.TemplateUtilities);var body=template.render();var chrome_context={body:body,template:this.chrome}
this.dom_element.update(chrome_context.template());},reposition:function()
{var dimensions=Element.getDimensions(this.dom_element);var width=dimensions.width;var height=dimensions.height;var left=((this.client_width()-width)/2);var top=((this.client_height()-height)/2);if(left<0)
{left=0;}
if(top<0)
{top=0;}
var offset=(document.documentElement.scrollTop||document.body.scrollTop);this.dom_element.style.top=(top+offset)+'px';this.dom_element.style.left=left+'px';},reposition_top:function()
{var dimensions=Element.getDimensions(this.dom_element);var width=dimensions.width;var left=((this.client_width()-width)/2);var top=(20);if(left<0)
{left=0;}
var offset=(document.documentElement.scrollTop||document.body.scrollTop);this.dom_element.style.top=(top+offset)+'px';this.dom_element.style.left=left+'px';},maximize:function(elements_to_resize)
{this.maximize_width();this.maximize_height(elements_to_resize);},maximize_height:function(elements_to_resize)
{if(typeof(elements_to_resize)=='string')
{elements_to_resize=[elements_to_resize];}
elements_to_resize.each(function(element){$(element).hide();});var size=Element.getDimensions(this.dom_element);var em_height=Element.getDimensions('em').height/100.0;var element_height=this.client_height()-size.height-(em_height*4);elements_to_resize.each(function(element){$(element).show();$(element).style.height=element_height+'px';});},maximize_width:function()
{var em_width=Element.getDimensions('em').width/100.0;this.width(this.client_width()-(em_width*4));},resize:function()
{}});Dashwire.Overlay=Class.create();Object.extend(Dashwire.Overlay.prototype,Dashwire.WindowBase.prototype);Object.extend(Dashwire.Overlay.prototype,{initialize:function(id,options)
{this.id=id;this.create(options);},create:function(options)
{Element.extend(document.body).insert('<div onclick="Dashwire.Window.close_top_window();return true;" style="display: none;" id="'+this.id+'"></div>');this.dom_element=$(this.id);this.options=Object.extend({backgroundColor:'black',position:'absolute',top:'0',left:'0',width:'100%',height:'100%'},options||{});Object.extend(this.dom_element.style,this.options);this.resize();},move_to_top:function()
{var top_z_index=Dashwire.Window.get_top_window_z_index();if(top_z_index>100)
{this.dom_element.style.zIndex=top_z_index-1;}
else
{this.hide();}},resize:function()
{var height=0;if(window.innerHeight&&window.scrollMaxY!=null)
{height=window.innerHeight+window.scrollMaxY;}
else if(document.body.scrollHeight>document.body.offsetHeight)
{height=document.body.scrollHeight;}
else
{height=document.body.offsetHeight;}
this.height(height);}});Dashwire.Window.windows={};/* --------- /javascripts/time.js --------- */ 

var strftime_funks={days_ago:function(days){var now=new Date();return new Date(now.getTime()-(days*86400*1000));},zeropad:function(n){return n>9?n:'0'+n;},equalYear:function(date1,date2){return(date1.getFullYear()==date2.getFullYear());},equalDates:function(date1,date2){return((date1.getFullYear()==date2.getFullYear())&&(date1.getMonth()==date2.getMonth())&&(date1.getDate()==date2.getDate()));},a:function(t){return['Sun','Mon','Tue','Wed','Thu','Fri','Sat'][t.getDay()]},A:function(t){return['Sunday','Monday','Tuedsay','Wednesday','Thursday','Friday','Saturday'][t.getDay()]},b:function(t){return['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec'][t.getMonth()]},B:function(t){return['January','February','March','April','May','June','July','August','September','October','November','December'][t.getMonth()]},c:function(t){return t.toString()},d:function(t){return t.getDate()},H:function(t){return this.zeropad(t.getHours())},I:function(t){var hr=(t.getHours()+12)%12;return(hr==0?12:hr);},m:function(t){return this.zeropad(t.getMonth()+1)},M:function(t){return this.zeropad(t.getMinutes())},p:function(t){return this.H(t)<12?'AM':'PM';},S:function(t){return this.zeropad(t.getSeconds())},w:function(t){return t.getDay()},y:function(t){return this.zeropad(this.Y(t)%100);},Y:function(t){return t.getFullYear()},Q:function(t,format_string){if(format_string.indexOf('%Q')==-1){return'';}
var today=new Date();var yesterday=new Date(today.getTime()-86400*1000);if(this.equalDates(today,t)){return"Today";}else if(this.equalDates(yesterday,t)){return"Yesterday";}else{var fmt="%B %d, %Y";fmt=fmt.replace('%B',self.strftime_funks['B'](t));fmt=fmt.replace('%d',self.strftime_funks['d'](t));fmt=fmt.replace('%Y',self.strftime_funks['Y'](t));return fmt;}},Z:function(t,format_string){if(format_string.indexOf('%Z')==-1){return'';}
var today=new Date();var yesterday=new Date(today.getTime()-86400*1000);if(this.equalDates(today,t)){return t.strftime('%I:%M %p');}else if(this.equalDates(yesterday,t)){return"Yesterday "+t.strftime('%I:%M %p');}else if(t>this.days_ago(5)){var days=parseInt((this.days_ago(0).getTime()-t.getTime())/(86400*1000));return days+' days ago '+t.strftime('%I:%M %p');}else if(this.equalYear(yesterday,t)){return t.strftime('%d %b');}else{return t.strftime('%d %b %Y');}},'%':function(t){return'%'}}
Date.prototype.strftime=function(fmt){var t=this;for(var s in strftime_funks){if(s.length==1){fmt=fmt.replace('%'+s,strftime_funks[s](t,fmt));}}
return fmt;};function __T(seconds_since_epoch,fmt){return new Date((seconds_since_epoch)*1000).strftime(fmt);}/* --------- /javascripts/field-editor.js --------- */ 

var EditableLinkBehavior=Behavior.create({initialize:function(options)
{this.options=options;this.listener=this.options.listener;},onclick:function(event)
{var source=Element.extend(event.target);var editing=source;if(!source.hasClassName('editable'))
{editing=source.up('.editable');}
var editor=editing.next('.editor');var editing_content=editing.down('.edit_content');this.listener.set_elements(editing,editor,editing_content);this.listener.hide_editing();this.listener.show_editor();}});var FieldEditorBehavior=Behavior.create({initialize:function(options)
{this.options=options;this.listener=this.options.listener;},onclick:function(event)
{var source=Element.extend(event.target);if(source.type=='button'||source.type=='submit')
{if(source.type=='button')
{this.listener.reset();}
if(source.type=='submit')
{this.listener.update();}}},onkeypress:function(event)
{var source=Element.extend(event.target);switch(event.keyCode)
{case Event.KEY_ESC:this.listener.reset();event.stop();break;case Event.KEY_RETURN:if(source.hasClassName('comment_button'))
{if(source.value=='Save')
{this.listener.update();}
else if(source.value=='Cancel')
{this.listener.reset();}}
else
{this.listener.update();}
event.stop();break;}}});Dashwire.FieldEditor=Class.create();Object.extend(Dashwire.FieldEditor.prototype,{initialize:function(options)
{this.behavior_rules={'.editor':FieldEditorBehavior({listener:this}),'.editor_link':EditableLinkBehavior({listener:this})};this.options=Object.extend({track_prefix:'/field_editor/'},options||{});this.load_behavior_rules();},set_elements:function(editing,editor,editing_content)
{this.editing=editing;this.editor=editor;this.edit_field=this.editor.down('.edit_field');this.editing_content=editing_content;this.original_value=editing_content.innerHTML;},hide_editing:function()
{this.editing.hide();},show_editing:function()
{this.editing.show();},hide_editor:function()
{this.editor.hide();},show_editor:function()
{this.editor.show();this.edit_field.focus();this.edit_field.select();track(this.options.track_prefix+'edit');},reset:function()
{this.edit_field.value=this.original_value;this.editor.hide();this.editing.show();track(this.options.track_prefix+'cancel');},load_behavior_rules:function()
{Event.addBehavior.load(this.behavior_rules);}});Dashwire.DashboardFieldEditor=Class.create(Dashwire.FieldEditor);Object.extend(Dashwire.DashboardFieldEditor.prototype,{update:function()
{var new_value=this.edit_field.value;var f=this.editor.down('form');var media_id=f.getElements()[0].value;var media=dw.get_media_item(media_id);var m={id:media_id,title:new_value};var params=f.serialize();this.editor.hide();this.editing_content.update(new_value);this.original_value=new_value;this.editing.show();switch(media.type)
{case"Image":Dashwire.Images.update(m);break;case"Video":Dashwire.Videos.update(m);break;}
track(this.options.track_prefix+'save');}});Dashwire.PublicFieldEditor=Class.create(Dashwire.FieldEditor);Object.extend(Dashwire.PublicFieldEditor.prototype,{update:function()
{var new_value=this.edit_field.value;var f=this.editor.down('form');var media_id=f.getElements()[0].value;var params=f.serialize();this.editor.hide();this.editing_content.innerHTML=new_value;this.original_value=new_value;this.editing.show();new Ajax.Request('/media/'+media_id+'.json',{method:'put',parameters:params});track(this.options.track_prefix+'save');}});
