
var MooTools={'version':'1.2.4','build':'0d9113241a90b9cd5643b926795852a2026710d4'};var Native=function(options){options=options||{};var name=options.name;var legacy=options.legacy;var protect=options.protect;var methods=options.implement;var generics=options.generics;var initialize=options.initialize;var afterImplement=options.afterImplement||function(){};var object=initialize||legacy;generics=generics!==false;object.constructor=Native;object.$family={name:'native'};if(legacy&&initialize)object.prototype=legacy.prototype;object.prototype.constructor=object;if(name){var family=name.toLowerCase();object.prototype.$family={name:family};Native.typize(object,family);}
var add=function(obj,name,method,force){if(!protect||force||!obj.prototype[name])obj.prototype[name]=method;if(generics)Native.genericize(obj,name,protect);afterImplement.call(obj,name,method);return obj;};object.alias=function(a1,a2,a3){if(typeof a1=='string'){var pa1=this.prototype[a1];if((a1=pa1))return add(this,a2,a1,a3);}
for(var a in a1)this.alias(a,a1[a],a2);return this;};object.implement=function(a1,a2,a3){if(typeof a1=='string')return add(this,a1,a2,a3);for(var p in a1)add(this,p,a1[p],a2);return this;};if(methods)object.implement(methods);return object;};Native.genericize=function(object,property,check){if((!check||!object[property])&&typeof object.prototype[property]=='function')object[property]=function(){var args=Array.prototype.slice.call(arguments);return object.prototype[property].apply(args.shift(),args);};};Native.implement=function(objects,properties){for(var i=0,l=objects.length;i<l;i++)objects[i].implement(properties);};Native.typize=function(object,family){if(!object.type)object.type=function(item){return($type(item)===family);};};(function(){var natives={'Array':Array,'Date':Date,'Function':Function,'Number':Number,'RegExp':RegExp,'String':String};for(var n in natives)new Native({name:n,initialize:natives[n],protect:true});var types={'boolean':Boolean,'native':Native,'object':Object};for(var t in types)Native.typize(types[t],t);var generics={'Array':["concat","indexOf","join","lastIndexOf","pop","push","reverse","shift","slice","sort","splice","toString","unshift","valueOf"],'String':["charAt","charCodeAt","concat","indexOf","lastIndexOf","match","replace","search","slice","split","substr","substring","toLowerCase","toUpperCase","valueOf"]};for(var g in generics){for(var i=generics[g].length;i--;)Native.genericize(natives[g],generics[g][i],true);}})();var Hash=new Native({name:'Hash',initialize:function(object){if($type(object)=='hash')object=$unlink(object.getClean());for(var key in object)this[key]=object[key];return this;}});Hash.implement({forEach:function(fn,bind){for(var key in this){if(this.hasOwnProperty(key))fn.call(bind,this[key],key,this);}},getClean:function(){var clean={};for(var key in this){if(this.hasOwnProperty(key))clean[key]=this[key];}
return clean;},getLength:function(){var length=0;for(var key in this){if(this.hasOwnProperty(key))length++;}
return length;}});Hash.alias('forEach','each');Array.implement({forEach:function(fn,bind){for(var i=0,l=this.length;i<l;i++)fn.call(bind,this[i],i,this);}});Array.alias('forEach','each');function $A(iterable){if(iterable.item){var l=iterable.length,array=new Array(l);while(l--)array[l]=iterable[l];return array;}
return Array.prototype.slice.call(iterable);};function $arguments(i){return function(){return arguments[i];};};function $chk(obj){return!!(obj||obj===0);};function $clear(timer){clearTimeout(timer);clearInterval(timer);return null;};function $defined(obj){return(obj!=undefined);};function $each(iterable,fn,bind){var type=$type(iterable);((type=='arguments'||type=='collection'||type=='array')?Array:Hash).each(iterable,fn,bind);};function $empty(){};function $extend(original,extended){for(var key in(extended||{}))original[key]=extended[key];return original;};function $H(object){return new Hash(object);};function $lambda(value){return($type(value)=='function')?value:function(){return value;};};function $merge(){var args=Array.slice(arguments);args.unshift({});return $mixin.apply(null,args);};function $mixin(mix){for(var i=1,l=arguments.length;i<l;i++){var object=arguments[i];if($type(object)!='object')continue;for(var key in object){var op=object[key],mp=mix[key];mix[key]=(mp&&$type(op)=='object'&&$type(mp)=='object')?$mixin(mp,op):$unlink(op);}}
return mix;};function $pick(){for(var i=0,l=arguments.length;i<l;i++){if(arguments[i]!=undefined)return arguments[i];}
return null;};function $random(min,max){return Math.floor(Math.random()*(max-min+1)+min);};function $splat(obj){var type=$type(obj);return(type)?((type!='array'&&type!='arguments')?[obj]:obj):[];};var $time=Date.now||function(){return+new Date;};function $try(){for(var i=0,l=arguments.length;i<l;i++){try{return arguments[i]();}catch(e){}}
return null;};function $type(obj){if(obj==undefined)return false;if(obj.$family)return(obj.$family.name=='number'&&!isFinite(obj))?false:obj.$family.name;if(obj.nodeName){switch(obj.nodeType){case 1:return'element';case 3:return(/\S/).test(obj.nodeValue)?'textnode':'whitespace';}}else if(typeof obj.length=='number'){if(obj.callee)return'arguments';else if(obj.item)return'collection';}
return typeof obj;};function $unlink(object){var unlinked;switch($type(object)){case'object':unlinked={};for(var p in object)unlinked[p]=$unlink(object[p]);break;case'hash':unlinked=new Hash(object);break;case'array':unlinked=[];for(var i=0,l=object.length;i<l;i++)unlinked[i]=$unlink(object[i]);break;default:return object;}
return unlinked;};var Browser=$merge({Engine:{name:'unknown',version:0},Platform:{name:(window.orientation!=undefined)?'ipod':(navigator.platform.match(/mac|win|linux/i)||['other'])[0].toLowerCase()},Features:{xpath:!!(document.evaluate),air:!!(window.runtime),query:!!(document.querySelector)},Plugins:{},Engines:{presto:function(){return(!window.opera)?false:((arguments.callee.caller)?960:((document.getElementsByClassName)?950:925));},trident:function(){return(!window.ActiveXObject)?false:((window.XMLHttpRequest)?((document.querySelectorAll)?6:5):4);},webkit:function(){return(navigator.taintEnabled)?false:((Browser.Features.xpath)?((Browser.Features.query)?525:420):419);},gecko:function(){return(!document.getBoxObjectFor&&window.mozInnerScreenX==null)?false:((document.getElementsByClassName)?19:18);}}},Browser||{});Browser.Platform[Browser.Platform.name]=true;Browser.detect=function(){for(var engine in this.Engines){var version=this.Engines[engine]();if(version){this.Engine={name:engine,version:version};this.Engine[engine]=this.Engine[engine+version]=true;break;}}
return{name:engine,version:version};};Browser.detect();Browser.Request=function(){return $try(function(){return new XMLHttpRequest();},function(){return new ActiveXObject('MSXML2.XMLHTTP');},function(){return new ActiveXObject('Microsoft.XMLHTTP');});};Browser.Features.xhr=!!(Browser.Request());Browser.Plugins.Flash=(function(){var version=($try(function(){return navigator.plugins['Shockwave Flash'].description;},function(){return new ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version');})||'0 r0').match(/\d+/g);return{version:parseInt(version[0]||0+'.'+version[1],10)||0,build:parseInt(version[2],10)||0};})();function $exec(text){if(!text)return text;if(window.execScript){window.execScript(text);}else{var script=document.createElement('script');script.setAttribute('type','text/javascript');script[(Browser.Engine.webkit&&Browser.Engine.version<420)?'innerText':'text']=text;document.head.appendChild(script);document.head.removeChild(script);}
return text;};Native.UID=1;var $uid=(Browser.Engine.trident)?function(item){return(item.uid||(item.uid=[Native.UID++]))[0];}:function(item){return item.uid||(item.uid=Native.UID++);};var Window=new Native({name:'Window',legacy:(Browser.Engine.trident)?null:window.Window,initialize:function(win){$uid(win);if(!win.Element){win.Element=$empty;if(Browser.Engine.webkit)win.document.createElement("iframe");win.Element.prototype=(Browser.Engine.webkit)?window["[[DOMElement.prototype]]"]:{};}
win.document.window=win;return $extend(win,Window.Prototype);},afterImplement:function(property,value){window[property]=Window.Prototype[property]=value;}});Window.Prototype={$family:{name:'window'}};new Window(window);var Document=new Native({name:'Document',legacy:(Browser.Engine.trident)?null:window.Document,initialize:function(doc){$uid(doc);doc.head=doc.getElementsByTagName('head')[0];doc.html=doc.getElementsByTagName('html')[0];if(Browser.Engine.trident&&Browser.Engine.version<=4)$try(function(){doc.execCommand("BackgroundImageCache",false,true);});if(Browser.Engine.trident)doc.window.attachEvent('onunload',function(){doc.window.detachEvent('onunload',arguments.callee);doc.head=doc.html=doc.window=null;});return $extend(doc,Document.Prototype);},afterImplement:function(property,value){document[property]=Document.Prototype[property]=value;}});Document.Prototype={$family:{name:'document'}};new Document(document);Array.implement({every:function(fn,bind){for(var i=0,l=this.length;i<l;i++){if(!fn.call(bind,this[i],i,this))return false;}
return true;},filter:function(fn,bind){var results=[];for(var i=0,l=this.length;i<l;i++){if(fn.call(bind,this[i],i,this))results.push(this[i]);}
return results;},clean:function(){return this.filter($defined);},indexOf:function(item,from){var len=this.length;for(var i=(from<0)?Math.max(0,len+from):from||0;i<len;i++){if(this[i]===item)return i;}
return-1;},map:function(fn,bind){var results=[];for(var i=0,l=this.length;i<l;i++)results[i]=fn.call(bind,this[i],i,this);return results;},some:function(fn,bind){for(var i=0,l=this.length;i<l;i++){if(fn.call(bind,this[i],i,this))return true;}
return false;},associate:function(keys){var obj={},length=Math.min(this.length,keys.length);for(var i=0;i<length;i++)obj[keys[i]]=this[i];return obj;},link:function(object){var result={};for(var i=0,l=this.length;i<l;i++){for(var key in object){if(object[key](this[i])){result[key]=this[i];delete object[key];break;}}}
return result;},contains:function(item,from){return this.indexOf(item,from)!=-1;},extend:function(array){for(var i=0,j=array.length;i<j;i++)this.push(array[i]);return this;},getLast:function(){return(this.length)?this[this.length-1]:null;},getRandom:function(){return(this.length)?this[$random(0,this.length-1)]:null;},include:function(item){if(!this.contains(item))this.push(item);return this;},combine:function(array){for(var i=0,l=array.length;i<l;i++)this.include(array[i]);return this;},erase:function(item){for(var i=this.length;i--;i){if(this[i]===item)this.splice(i,1);}
return this;},empty:function(){this.length=0;return this;},flatten:function(){var array=[];for(var i=0,l=this.length;i<l;i++){var type=$type(this[i]);if(!type)continue;array=array.concat((type=='array'||type=='collection'||type=='arguments')?Array.flatten(this[i]):this[i]);}
return array;},hexToRgb:function(array){if(this.length!=3)return null;var rgb=this.map(function(value){if(value.length==1)value+=value;return value.toInt(16);});return(array)?rgb:'rgb('+rgb+')';},rgbToHex:function(array){if(this.length<3)return null;if(this.length==4&&this[3]==0&&!array)return'transparent';var hex=[];for(var i=0;i<3;i++){var bit=(this[i]-0).toString(16);hex.push((bit.length==1)?'0'+bit:bit);}
return(array)?hex:'#'+hex.join('');}});Function.implement({extend:function(properties){for(var property in properties)this[property]=properties[property];return this;},create:function(options){var self=this;options=options||{};return function(event){var args=options.arguments;args=(args!=undefined)?$splat(args):Array.slice(arguments,(options.event)?1:0);if(options.event)args=[event||window.event].extend(args);var returns=function(){return self.apply(options.bind||null,args);};if(options.delay)return setTimeout(returns,options.delay);if(options.periodical)return setInterval(returns,options.periodical);if(options.attempt)return $try(returns);return returns();};},run:function(args,bind){return this.apply(bind,$splat(args));},pass:function(args,bind){return this.create({bind:bind,arguments:args});},bind:function(bind,args){return this.create({bind:bind,arguments:args});},bindWithEvent:function(bind,args){return this.create({bind:bind,arguments:args,event:true});},attempt:function(args,bind){return this.create({bind:bind,arguments:args,attempt:true})();},delay:function(delay,bind,args){return this.create({bind:bind,arguments:args,delay:delay})();},periodical:function(periodical,bind,args){return this.create({bind:bind,arguments:args,periodical:periodical})();}});Number.implement({limit:function(min,max){return Math.min(max,Math.max(min,this));},round:function(precision){precision=Math.pow(10,precision||0);return Math.round(this*precision)/precision;},times:function(fn,bind){for(var i=0;i<this;i++)fn.call(bind,i,this);},toFloat:function(){return parseFloat(this);},toInt:function(base){return parseInt(this,base||10);}});Number.alias('times','each');(function(math){var methods={};math.each(function(name){if(!Number[name])methods[name]=function(){return Math[name].apply(null,[this].concat($A(arguments)));};});Number.implement(methods);})(['abs','acos','asin','atan','atan2','ceil','cos','exp','floor','log','max','min','pow','sin','sqrt','tan']);String.implement({test:function(regex,params){return((typeof regex=='string')?new RegExp(regex,params):regex).test(this);},contains:function(string,separator){return(separator)?(separator+this+separator).indexOf(separator+string+separator)>-1:this.indexOf(string)>-1;},trim:function(){return this.replace(/^\s+|\s+$/g,'');},clean:function(){return this.replace(/\s+/g,' ').trim();},camelCase:function(){return this.replace(/-\D/g,function(match){return match.charAt(1).toUpperCase();});},hyphenate:function(){return this.replace(/[A-Z]/g,function(match){return('-'+match.charAt(0).toLowerCase());});},capitalize:function(){return this.replace(/\b[a-z]/g,function(match){return match.toUpperCase();});},escapeRegExp:function(){return this.replace(/([-.*+?^${}()|[\]\/\\])/g,'\\$1');},toInt:function(base){return parseInt(this,base||10);},toFloat:function(){return parseFloat(this);},hexToRgb:function(array){var hex=this.match(/^#?(\w{1,2})(\w{1,2})(\w{1,2})$/);return(hex)?hex.slice(1).hexToRgb(array):null;},rgbToHex:function(array){var rgb=this.match(/\d{1,3}/g);return(rgb)?rgb.rgbToHex(array):null;},stripScripts:function(option){var scripts='';var text=this.replace(/<script[^>]*>([\s\S]*?)<\/script>/gi,function(){scripts+=arguments[1]+'\n';return'';});if(option===true)$exec(scripts);else if($type(option)=='function')option(scripts,text);return text;},substitute:function(object,regexp){return this.replace(regexp||(/\\?\{([^{}]+)\}/g),function(match,name){if(match.charAt(0)=='\\')return match.slice(1);return(object[name]!=undefined)?object[name]:'';});}});Hash.implement({has:Object.prototype.hasOwnProperty,keyOf:function(value){for(var key in this){if(this.hasOwnProperty(key)&&this[key]===value)return key;}
return null;},hasValue:function(value){return(Hash.keyOf(this,value)!==null);},extend:function(properties){Hash.each(properties||{},function(value,key){Hash.set(this,key,value);},this);return this;},combine:function(properties){Hash.each(properties||{},function(value,key){Hash.include(this,key,value);},this);return this;},erase:function(key){if(this.hasOwnProperty(key))delete this[key];return this;},get:function(key){return(this.hasOwnProperty(key))?this[key]:null;},set:function(key,value){if(!this[key]||this.hasOwnProperty(key))this[key]=value;return this;},empty:function(){Hash.each(this,function(value,key){delete this[key];},this);return this;},include:function(key,value){if(this[key]==undefined)this[key]=value;return this;},map:function(fn,bind){var results=new Hash;Hash.each(this,function(value,key){results.set(key,fn.call(bind,value,key,this));},this);return results;},filter:function(fn,bind){var results=new Hash;Hash.each(this,function(value,key){if(fn.call(bind,value,key,this))results.set(key,value);},this);return results;},every:function(fn,bind){for(var key in this){if(this.hasOwnProperty(key)&&!fn.call(bind,this[key],key))return false;}
return true;},some:function(fn,bind){for(var key in this){if(this.hasOwnProperty(key)&&fn.call(bind,this[key],key))return true;}
return false;},getKeys:function(){var keys=[];Hash.each(this,function(value,key){keys.push(key);});return keys;},getValues:function(){var values=[];Hash.each(this,function(value){values.push(value);});return values;},toQueryString:function(base){var queryString=[];Hash.each(this,function(value,key){if(base)key=base+'['+key+']';var result;switch($type(value)){case'object':result=Hash.toQueryString(value,key);break;case'array':var qs={};value.each(function(val,i){qs[i]=val;});result=Hash.toQueryString(qs,key);break;default:result=key+'='+encodeURIComponent(value);}
if(value!=undefined)queryString.push(result);});return queryString.join('&');}});Hash.alias({keyOf:'indexOf',hasValue:'contains'});var Event=new Native({name:'Event',initialize:function(event,win){win=win||window;var doc=win.document;event=event||win.event;if(event.$extended)return event;this.$extended=true;var type=event.type;var target=event.target||event.srcElement;while(target&&target.nodeType==3)target=target.parentNode;if(type.test(/key/)){var code=event.which||event.keyCode;var key=Event.Keys.keyOf(code);if(type=='keydown'){var fKey=code-111;if(fKey>0&&fKey<13)key='f'+fKey;}
key=key||String.fromCharCode(code).toLowerCase();}else if(type.match(/(click|mouse|menu)/i)){doc=(!doc.compatMode||doc.compatMode=='CSS1Compat')?doc.html:doc.body;var page={x:event.pageX||event.clientX+doc.scrollLeft,y:event.pageY||event.clientY+doc.scrollTop};var client={x:(event.pageX)?event.pageX-win.pageXOffset:event.clientX,y:(event.pageY)?event.pageY-win.pageYOffset:event.clientY};if(type.match(/DOMMouseScroll|mousewheel/)){var wheel=(event.wheelDelta)?event.wheelDelta/120:-(event.detail||0)/3;}
var rightClick=(event.which==3)||(event.button==2);var related=null;if(type.match(/over|out/)){switch(type){case'mouseover':related=event.relatedTarget||event.fromElement;break;case'mouseout':related=event.relatedTarget||event.toElement;}
if(!(function(){while(related&&related.nodeType==3)related=related.parentNode;return true;}).create({attempt:Browser.Engine.gecko})())related=false;}}
return $extend(this,{event:event,type:type,page:page,client:client,rightClick:rightClick,wheel:wheel,relatedTarget:related,target:target,code:code,key:key,shift:event.shiftKey,control:event.ctrlKey,alt:event.altKey,meta:event.metaKey});}});Event.Keys=new Hash({'enter':13,'up':38,'down':40,'left':37,'right':39,'esc':27,'space':32,'backspace':8,'tab':9,'delete':46});Event.implement({stop:function(){return this.stopPropagation().preventDefault();},stopPropagation:function(){if(this.event.stopPropagation)this.event.stopPropagation();else this.event.cancelBubble=true;return this;},preventDefault:function(){if(this.event.preventDefault)this.event.preventDefault();else this.event.returnValue=false;return this;}});function Class(params){if(params instanceof Function)params={initialize:params};var newClass=function(){Object.reset(this);if(newClass._prototyping)return this;this._current=$empty;var value=(this.initialize)?this.initialize.apply(this,arguments):this;delete this._current;delete this.caller;return value;}.extend(this);newClass.implement(params);newClass.constructor=Class;newClass.prototype.constructor=newClass;return newClass;};Function.prototype.protect=function(){this._protected=true;return this;};Object.reset=function(object,key){if(key==null){for(var p in object)Object.reset(object,p);return object;}
delete object[key];switch($type(object[key])){case'object':var F=function(){};F.prototype=object[key];var i=new F;object[key]=Object.reset(i);break;case'array':object[key]=$unlink(object[key]);break;}
return object;};new Native({name:'Class',initialize:Class}).extend({instantiate:function(F){F._prototyping=true;var proto=new F;delete F._prototyping;return proto;},wrap:function(self,key,method){if(method._origin)method=method._origin;return function(){if(method._protected&&this._current==null)throw new Error('The method "'+key+'" cannot be called.');var caller=this.caller,current=this._current;this.caller=current;this._current=arguments.callee;var result=method.apply(this,arguments);this._current=current;this.caller=caller;return result;}.extend({_owner:self,_origin:method,_name:key});}});Class.implement({implement:function(key,value){if($type(key)=='object'){for(var p in key)this.implement(p,key[p]);return this;}
var mutator=Class.Mutators[key];if(mutator){value=mutator.call(this,value);if(value==null)return this;}
var proto=this.prototype;switch($type(value)){case'function':if(value._hidden)return this;proto[key]=Class.wrap(this,key,value);break;case'object':var previous=proto[key];if($type(previous)=='object')$mixin(previous,value);else proto[key]=$unlink(value);break;case'array':proto[key]=$unlink(value);break;default:proto[key]=value;}
return this;}});Class.Mutators={Extends:function(parent){this.parent=parent;this.prototype=Class.instantiate(parent);this.implement('parent',function(){var name=this.caller._name,previous=this.caller._owner.parent.prototype[name];if(!previous)throw new Error('The method "'+name+'" has no parent.');return previous.apply(this,arguments);}.protect());},Implements:function(items){$splat(items).each(function(item){if(item instanceof Function)item=Class.instantiate(item);this.implement(item);},this);}};var Chain=new Class({$chain:[],chain:function(){this.$chain.extend(Array.flatten(arguments));return this;},callChain:function(){return(this.$chain.length)?this.$chain.shift().apply(this,arguments):false;},clearChain:function(){this.$chain.empty();return this;}});var Events=new Class({$events:{},addEvent:function(type,fn,internal){type=Events.removeOn(type);if(fn!=$empty){this.$events[type]=this.$events[type]||[];this.$events[type].include(fn);if(internal)fn.internal=true;}
return this;},addEvents:function(events){for(var type in events)this.addEvent(type,events[type]);return this;},fireEvent:function(type,args,delay){type=Events.removeOn(type);if(!this.$events||!this.$events[type])return this;this.$events[type].each(function(fn){fn.create({'bind':this,'delay':delay,'arguments':args})();},this);return this;},removeEvent:function(type,fn){type=Events.removeOn(type);if(!this.$events[type])return this;if(!fn.internal)this.$events[type].erase(fn);return this;},removeEvents:function(events){var type;if($type(events)=='object'){for(type in events)this.removeEvent(type,events[type]);return this;}
if(events)events=Events.removeOn(events);for(type in this.$events){if(events&&events!=type)continue;var fns=this.$events[type];for(var i=fns.length;i--;i)this.removeEvent(type,fns[i]);}
return this;}});Events.removeOn=function(string){return string.replace(/^on([A-Z])/,function(full,first){return first.toLowerCase();});};var Options=new Class({setOptions:function(){this.options=$merge.run([this.options].extend(arguments));if(!this.addEvent)return this;for(var option in this.options){if($type(this.options[option])!='function'||!(/^on[A-Z]/).test(option))continue;this.addEvent(option,this.options[option]);delete this.options[option];}
return this;}});var Element=new Native({name:'Element',legacy:window.Element,initialize:function(tag,props){var konstructor=Element.Constructors.get(tag);if(konstructor)return konstructor(props);if(typeof tag=='string')return document.newElement(tag,props);return document.id(tag).set(props);},afterImplement:function(key,value){Element.Prototype[key]=value;if(Array[key])return;Elements.implement(key,function(){var items=[],elements=true;for(var i=0,j=this.length;i<j;i++){var returns=this[i][key].apply(this[i],arguments);items.push(returns);if(elements)elements=($type(returns)=='element');}
return(elements)?new Elements(items):items;});}});Element.Prototype={$family:{name:'element'}};Element.Constructors=new Hash;var IFrame=new Native({name:'IFrame',generics:false,initialize:function(){var params=Array.link(arguments,{properties:Object.type,iframe:$defined});var props=params.properties||{};var iframe=document.id(params.iframe);var onload=props.onload||$empty;delete props.onload;props.id=props.name=$pick(props.id,props.name,iframe?(iframe.id||iframe.name):'IFrame_'+$time());iframe=new Element(iframe||'iframe',props);var onFrameLoad=function(){var host=$try(function(){return iframe.contentWindow.location.host;});if(!host||host==window.location.host){var win=new Window(iframe.contentWindow);new Document(iframe.contentWindow.document);$extend(win.Element.prototype,Element.Prototype);}
onload.call(iframe.contentWindow,iframe.contentWindow.document);};var contentWindow=$try(function(){return iframe.contentWindow;});((contentWindow&&contentWindow.document.body)||window.frames[props.id])?onFrameLoad():iframe.addListener('load',onFrameLoad);return iframe;}});var Elements=new Native({initialize:function(elements,options){options=$extend({ddup:true,cash:true},options);elements=elements||[];if(options.ddup||options.cash){var uniques={},returned=[];for(var i=0,l=elements.length;i<l;i++){var el=document.id(elements[i],!options.cash);if(options.ddup){if(uniques[el.uid])continue;uniques[el.uid]=true;}
if(el)returned.push(el);}
elements=returned;}
return(options.cash)?$extend(elements,this):elements;}});Elements.implement({filter:function(filter,bind){if(!filter)return this;return new Elements(Array.filter(this,(typeof filter=='string')?function(item){return item.match(filter);}:filter,bind));}});Document.implement({newElement:function(tag,props){if(Browser.Engine.trident&&props){['name','type','checked'].each(function(attribute){if(!props[attribute])return;tag+=' '+attribute+'="'+props[attribute]+'"';if(attribute!='checked')delete props[attribute];});tag='<'+tag+'>';}
return document.id(this.createElement(tag)).set(props);},newTextNode:function(text){return this.createTextNode(text);},getDocument:function(){return this;},getWindow:function(){return this.window;},id:(function(){var types={string:function(id,nocash,doc){id=doc.getElementById(id);return(id)?types.element(id,nocash):null;},element:function(el,nocash){$uid(el);if(!nocash&&!el.$family&&!(/^object|embed$/i).test(el.tagName)){var proto=Element.Prototype;for(var p in proto)el[p]=proto[p];};return el;},object:function(obj,nocash,doc){if(obj.toElement)return types.element(obj.toElement(doc),nocash);return null;}};types.textnode=types.whitespace=types.window=types.document=$arguments(0);return function(el,nocash,doc){if(el&&el.$family&&el.uid)return el;var type=$type(el);return(types[type])?types[type](el,nocash,doc||document):null;};})()});if(window.$==null)Window.implement({$:function(el,nc){return document.id(el,nc,this.document);}});Window.implement({$$:function(selector){if(arguments.length==1&&typeof selector=='string')return this.document.getElements(selector);var elements=[];var args=Array.flatten(arguments);for(var i=0,l=args.length;i<l;i++){var item=args[i];switch($type(item)){case'element':elements.push(item);break;case'string':elements.extend(this.document.getElements(item,true));}}
return new Elements(elements);},getDocument:function(){return this.document;},getWindow:function(){return this;}});Native.implement([Element,Document],{getElement:function(selector,nocash){return document.id(this.getElements(selector,true)[0]||null,nocash);},getElements:function(tags,nocash){tags=tags.split(',');var elements=[];var ddup=(tags.length>1);tags.each(function(tag){var partial=this.getElementsByTagName(tag.trim());(ddup)?elements.extend(partial):elements=partial;},this);return new Elements(elements,{ddup:ddup,cash:!nocash});}});(function(){var collected={},storage={};var props={input:'checked',option:'selected',textarea:(Browser.Engine.webkit&&Browser.Engine.version<420)?'innerHTML':'value'};var get=function(uid){return(storage[uid]||(storage[uid]={}));};var clean=function(item,retain){if(!item)return;var uid=item.uid;if(Browser.Engine.trident){if(item.clearAttributes){var clone=retain&&item.cloneNode(false);item.clearAttributes();if(clone)item.mergeAttributes(clone);}else if(item.removeEvents){item.removeEvents();}
if((/object/i).test(item.tagName)){for(var p in item){if(typeof item[p]=='function')item[p]=$empty;}
Element.dispose(item);}}
if(!uid)return;collected[uid]=storage[uid]=null;};var purge=function(){Hash.each(collected,clean);if(Browser.Engine.trident)$A(document.getElementsByTagName('object')).each(clean);if(window.CollectGarbage)CollectGarbage();collected=storage=null;};var walk=function(element,walk,start,match,all,nocash){var el=element[start||walk];var elements=[];while(el){if(el.nodeType==1&&(!match||Element.match(el,match))){if(!all)return document.id(el,nocash);elements.push(el);}
el=el[walk];}
return(all)?new Elements(elements,{ddup:false,cash:!nocash}):null;};var attributes={'html':'innerHTML','class':'className','for':'htmlFor','defaultValue':'defaultValue','text':(Browser.Engine.trident||(Browser.Engine.webkit&&Browser.Engine.version<420))?'innerText':'textContent'};var bools=['compact','nowrap','ismap','declare','noshade','checked','disabled','readonly','multiple','selected','noresize','defer'];var camels=['value','type','defaultValue','accessKey','cellPadding','cellSpacing','colSpan','frameBorder','maxLength','readOnly','rowSpan','tabIndex','useMap'];bools=bools.associate(bools);Hash.extend(attributes,bools);Hash.extend(attributes,camels.associate(camels.map(String.toLowerCase)));var inserters={before:function(context,element){if(element.parentNode)element.parentNode.insertBefore(context,element);},after:function(context,element){if(!element.parentNode)return;var next=element.nextSibling;(next)?element.parentNode.insertBefore(context,next):element.parentNode.appendChild(context);},bottom:function(context,element){element.appendChild(context);},top:function(context,element){var first=element.firstChild;(first)?element.insertBefore(context,first):element.appendChild(context);}};inserters.inside=inserters.bottom;Hash.each(inserters,function(inserter,where){where=where.capitalize();Element.implement('inject'+where,function(el){inserter(this,document.id(el,true));return this;});Element.implement('grab'+where,function(el){inserter(document.id(el,true),this);return this;});});Element.implement({set:function(prop,value){switch($type(prop)){case'object':for(var p in prop)this.set(p,prop[p]);break;case'string':var property=Element.Properties.get(prop);(property&&property.set)?property.set.apply(this,Array.slice(arguments,1)):this.setProperty(prop,value);}
return this;},get:function(prop){var property=Element.Properties.get(prop);return(property&&property.get)?property.get.apply(this,Array.slice(arguments,1)):this.getProperty(prop);},erase:function(prop){var property=Element.Properties.get(prop);(property&&property.erase)?property.erase.apply(this):this.removeProperty(prop);return this;},setProperty:function(attribute,value){var key=attributes[attribute];if(value==undefined)return this.removeProperty(attribute);if(key&&bools[attribute])value=!!value;(key)?this[key]=value:this.setAttribute(attribute,''+value);return this;},setProperties:function(attributes){for(var attribute in attributes)this.setProperty(attribute,attributes[attribute]);return this;},getProperty:function(attribute){var key=attributes[attribute];var value=(key)?this[key]:this.getAttribute(attribute,2);return(bools[attribute])?!!value:(key)?value:value||null;},getProperties:function(){var args=$A(arguments);return args.map(this.getProperty,this).associate(args);},removeProperty:function(attribute){var key=attributes[attribute];(key)?this[key]=(key&&bools[attribute])?false:'':this.removeAttribute(attribute);return this;},removeProperties:function(){Array.each(arguments,this.removeProperty,this);return this;},hasClass:function(className){return this.className.contains(className,' ');},addClass:function(className){if(!this.hasClass(className))this.className=(this.className+' '+className).clean();return this;},removeClass:function(className){this.className=this.className.replace(new RegExp('(^|\\s)'+className+'(?:\\s|$)'),'$1');return this;},toggleClass:function(className){return this.hasClass(className)?this.removeClass(className):this.addClass(className);},adopt:function(){Array.flatten(arguments).each(function(element){element=document.id(element,true);if(element)this.appendChild(element);},this);return this;},appendText:function(text,where){return this.grab(this.getDocument().newTextNode(text),where);},grab:function(el,where){inserters[where||'bottom'](document.id(el,true),this);return this;},inject:function(el,where){inserters[where||'bottom'](this,document.id(el,true));return this;},replaces:function(el){el=document.id(el,true);el.parentNode.replaceChild(this,el);return this;},wraps:function(el,where){el=document.id(el,true);return this.replaces(el).grab(el,where);},getPrevious:function(match,nocash){return walk(this,'previousSibling',null,match,false,nocash);},getAllPrevious:function(match,nocash){return walk(this,'previousSibling',null,match,true,nocash);},getNext:function(match,nocash){return walk(this,'nextSibling',null,match,false,nocash);},getAllNext:function(match,nocash){return walk(this,'nextSibling',null,match,true,nocash);},getFirst:function(match,nocash){return walk(this,'nextSibling','firstChild',match,false,nocash);},getLast:function(match,nocash){return walk(this,'previousSibling','lastChild',match,false,nocash);},getParent:function(match,nocash){return walk(this,'parentNode',null,match,false,nocash);},getParents:function(match,nocash){return walk(this,'parentNode',null,match,true,nocash);},getSiblings:function(match,nocash){return this.getParent().getChildren(match,nocash).erase(this);},getChildren:function(match,nocash){return walk(this,'nextSibling','firstChild',match,true,nocash);},getWindow:function(){return this.ownerDocument.window;},getDocument:function(){return this.ownerDocument;},getElementById:function(id,nocash){var el=this.ownerDocument.getElementById(id);if(!el)return null;for(var parent=el.parentNode;parent!=this;parent=parent.parentNode){if(!parent)return null;}
return document.id(el,nocash);},getSelected:function(){return new Elements($A(this.options).filter(function(option){return option.selected;}));},getComputedStyle:function(property){if(this.currentStyle)return this.currentStyle[property.camelCase()];var computed=this.getDocument().defaultView.getComputedStyle(this,null);return(computed)?computed.getPropertyValue([property.hyphenate()]):null;},toQueryString:function(){var queryString=[];this.getElements('input, select, textarea',true).each(function(el){if(!el.name||el.disabled||el.type=='submit'||el.type=='reset'||el.type=='file')return;var value=(el.tagName.toLowerCase()=='select')?Element.getSelected(el).map(function(opt){return opt.value;}):((el.type=='radio'||el.type=='checkbox')&&!el.checked)?null:el.value;$splat(value).each(function(val){if(typeof val!='undefined')queryString.push(el.name+'='+encodeURIComponent(val));});});return queryString.join('&');},clone:function(contents,keepid){contents=contents!==false;var clone=this.cloneNode(contents);var clean=function(node,element){if(!keepid)node.removeAttribute('id');if(Browser.Engine.trident){node.clearAttributes();node.mergeAttributes(element);node.removeAttribute('uid');if(node.options){var no=node.options,eo=element.options;for(var j=no.length;j--;)no[j].selected=eo[j].selected;}}
var prop=props[element.tagName.toLowerCase()];if(prop&&element[prop])node[prop]=element[prop];};if(contents){var ce=clone.getElementsByTagName('*'),te=this.getElementsByTagName('*');for(var i=ce.length;i--;)clean(ce[i],te[i]);}
clean(clone,this);return document.id(clone);},destroy:function(){Element.empty(this);Element.dispose(this);clean(this,true);return null;},empty:function(){$A(this.childNodes).each(function(node){Element.destroy(node);});return this;},dispose:function(){return(this.parentNode)?this.parentNode.removeChild(this):this;},hasChild:function(el){el=document.id(el,true);if(!el)return false;if(Browser.Engine.webkit&&Browser.Engine.version<420)return $A(this.getElementsByTagName(el.tagName)).contains(el);return(this.contains)?(this!=el&&this.contains(el)):!!(this.compareDocumentPosition(el)&16);},match:function(tag){return(!tag||(tag==this)||(Element.get(this,'tag')==tag));}});Native.implement([Element,Window,Document],{addListener:function(type,fn){if(type=='unload'){var old=fn,self=this;fn=function(){self.removeListener('unload',fn);old();};}else{collected[this.uid]=this;}
if(this.addEventListener)this.addEventListener(type,fn,false);else this.attachEvent('on'+type,fn);return this;},removeListener:function(type,fn){if(this.removeEventListener)this.removeEventListener(type,fn,false);else this.detachEvent('on'+type,fn);return this;},retrieve:function(property,dflt){var storage=get(this.uid),prop=storage[property];if(dflt!=undefined&&prop==undefined)prop=storage[property]=dflt;return $pick(prop);},store:function(property,value){var storage=get(this.uid);storage[property]=value;return this;},eliminate:function(property){var storage=get(this.uid);delete storage[property];return this;}});window.addListener('unload',purge);})();Element.Properties=new Hash;Element.Properties.style={set:function(style){this.style.cssText=style;},get:function(){return this.style.cssText;},erase:function(){this.style.cssText='';}};Element.Properties.tag={get:function(){return this.tagName.toLowerCase();}};Element.Properties.html=(function(){var wrapper=document.createElement('div');var translations={table:[1,'<table>','</table>'],select:[1,'<select>','</select>'],tbody:[2,'<table><tbody>','</tbody></table>'],tr:[3,'<table><tbody><tr>','</tr></tbody></table>']};translations.thead=translations.tfoot=translations.tbody;var html={set:function(){var html=Array.flatten(arguments).join('');var wrap=Browser.Engine.trident&&translations[this.get('tag')];if(wrap){var first=wrapper;first.innerHTML=wrap[1]+html+wrap[2];for(var i=wrap[0];i--;)first=first.firstChild;this.empty().adopt(first.childNodes);}else{this.innerHTML=html;}}};html.erase=html.set;return html;})();if(Browser.Engine.webkit&&Browser.Engine.version<420)Element.Properties.text={get:function(){if(this.innerText)return this.innerText;var temp=this.ownerDocument.newElement('div',{html:this.innerHTML}).inject(this.ownerDocument.body);var text=temp.innerText;temp.destroy();return text;}};Element.Properties.events={set:function(events){this.addEvents(events);}};Native.implement([Element,Window,Document],{addEvent:function(type,fn){var events=this.retrieve('events',{});events[type]=events[type]||{'keys':[],'values':[]};if(events[type].keys.contains(fn))return this;events[type].keys.push(fn);var realType=type,custom=Element.Events.get(type),condition=fn,self=this;if(custom){if(custom.onAdd)custom.onAdd.call(this,fn);if(custom.condition){condition=function(event){if(custom.condition.call(this,event))return fn.call(this,event);return true;};}
realType=custom.base||realType;}
var defn=function(){return fn.call(self);};var nativeEvent=Element.NativeEvents[realType];if(nativeEvent){if(nativeEvent==2){defn=function(event){event=new Event(event,self.getWindow());if(condition.call(self,event)===false)event.stop();};}
this.addListener(realType,defn);}
events[type].values.push(defn);return this;},removeEvent:function(type,fn){var events=this.retrieve('events');if(!events||!events[type])return this;var pos=events[type].keys.indexOf(fn);if(pos==-1)return this;events[type].keys.splice(pos,1);var value=events[type].values.splice(pos,1)[0];var custom=Element.Events.get(type);if(custom){if(custom.onRemove)custom.onRemove.call(this,fn);type=custom.base||type;}
return(Element.NativeEvents[type])?this.removeListener(type,value):this;},addEvents:function(events){for(var event in events)this.addEvent(event,events[event]);return this;},removeEvents:function(events){var type;if($type(events)=='object'){for(type in events)this.removeEvent(type,events[type]);return this;}
var attached=this.retrieve('events');if(!attached)return this;if(!events){for(type in attached)this.removeEvents(type);this.eliminate('events');}else if(attached[events]){while(attached[events].keys[0])this.removeEvent(events,attached[events].keys[0]);attached[events]=null;}
return this;},fireEvent:function(type,args,delay){var events=this.retrieve('events');if(!events||!events[type])return this;events[type].keys.each(function(fn){fn.create({'bind':this,'delay':delay,'arguments':args})();},this);return this;},cloneEvents:function(from,type){from=document.id(from);var fevents=from.retrieve('events');if(!fevents)return this;if(!type){for(var evType in fevents)this.cloneEvents(from,evType);}else if(fevents[type]){fevents[type].keys.each(function(fn){this.addEvent(type,fn);},this);}
return this;}});Element.NativeEvents={click:2,dblclick:2,mouseup:2,mousedown:2,contextmenu:2,mousewheel:2,DOMMouseScroll:2,mouseover:2,mouseout:2,mousemove:2,selectstart:2,selectend:2,keydown:2,keypress:2,keyup:2,focus:2,blur:2,change:2,reset:2,select:2,submit:2,load:1,unload:1,beforeunload:2,resize:1,move:1,DOMContentLoaded:1,readystatechange:1,error:1,abort:1,scroll:1};(function(){var $check=function(event){var related=event.relatedTarget;if(related==undefined)return true;if(related===false)return false;return($type(this)!='document'&&related!=this&&related.prefix!='xul'&&!this.hasChild(related));};Element.Events=new Hash({mouseenter:{base:'mouseover',condition:$check},mouseleave:{base:'mouseout',condition:$check},mousewheel:{base:(Browser.Engine.gecko)?'DOMMouseScroll':'mousewheel'}});})();Element.Properties.styles={set:function(styles){this.setStyles(styles);}};Element.Properties.opacity={set:function(opacity,novisibility){if(!novisibility){if(opacity==0){if(this.style.visibility!='hidden')this.style.visibility='hidden';}else{if(this.style.visibility!='visible')this.style.visibility='visible';}}
if(!this.currentStyle||!this.currentStyle.hasLayout)this.style.zoom=1;if(Browser.Engine.trident)this.style.filter=(opacity==1)?'':'alpha(opacity='+opacity*100+')';this.style.opacity=opacity;this.store('opacity',opacity);},get:function(){return this.retrieve('opacity',1);}};Element.implement({setOpacity:function(value){return this.set('opacity',value,true);},getOpacity:function(){return this.get('opacity');},setStyle:function(property,value){switch(property){case'opacity':return this.set('opacity',parseFloat(value));case'float':property=(Browser.Engine.trident)?'styleFloat':'cssFloat';}
property=property.camelCase();if($type(value)!='string'){var map=(Element.Styles.get(property)||'@').split(' ');value=$splat(value).map(function(val,i){if(!map[i])return'';return($type(val)=='number')?map[i].replace('@',Math.round(val)):val;}).join(' ');}else if(value==String(Number(value))){value=Math.round(value);}
this.style[property]=value;return this;},getStyle:function(property){switch(property){case'opacity':return this.get('opacity');case'float':property=(Browser.Engine.trident)?'styleFloat':'cssFloat';}
property=property.camelCase();var result=this.style[property];if(!$chk(result)){result=[];for(var style in Element.ShortStyles){if(property!=style)continue;for(var s in Element.ShortStyles[style])result.push(this.getStyle(s));return result.join(' ');}
result=this.getComputedStyle(property);}
if(result){result=String(result);var color=result.match(/rgba?\([\d\s,]+\)/);if(color)result=result.replace(color[0],color[0].rgbToHex());}
if(Browser.Engine.presto||(Browser.Engine.trident&&!$chk(parseInt(result,10)))){if(property.test(/^(height|width)$/)){var values=(property=='width')?['left','right']:['top','bottom'],size=0;values.each(function(value){size+=this.getStyle('border-'+value+'-width').toInt()+this.getStyle('padding-'+value).toInt();},this);return this['offset'+property.capitalize()]-size+'px';}
if((Browser.Engine.presto)&&String(result).test('px'))return result;if(property.test(/(border(.+)Width|margin|padding)/))return'0px';}
return result;},setStyles:function(styles){for(var style in styles)this.setStyle(style,styles[style]);return this;},getStyles:function(){var result={};Array.flatten(arguments).each(function(key){result[key]=this.getStyle(key);},this);return result;}});Element.Styles=new Hash({left:'@px',top:'@px',bottom:'@px',right:'@px',width:'@px',height:'@px',maxWidth:'@px',maxHeight:'@px',minWidth:'@px',minHeight:'@px',backgroundColor:'rgb(@, @, @)',backgroundPosition:'@px @px',color:'rgb(@, @, @)',fontSize:'@px',letterSpacing:'@px',lineHeight:'@px',clip:'rect(@px @px @px @px)',margin:'@px @px @px @px',padding:'@px @px @px @px',border:'@px @ rgb(@, @, @) @px @ rgb(@, @, @) @px @ rgb(@, @, @)',borderWidth:'@px @px @px @px',borderStyle:'@ @ @ @',borderColor:'rgb(@, @, @) rgb(@, @, @) rgb(@, @, @) rgb(@, @, @)',zIndex:'@','zoom':'@',fontWeight:'@',textIndent:'@px',opacity:'@'});Element.ShortStyles={margin:{},padding:{},border:{},borderWidth:{},borderStyle:{},borderColor:{}};['Top','Right','Bottom','Left'].each(function(direction){var Short=Element.ShortStyles;var All=Element.Styles;['margin','padding'].each(function(style){var sd=style+direction;Short[style][sd]=All[sd]='@px';});var bd='border'+direction;Short.border[bd]=All[bd]='@px @ rgb(@, @, @)';var bdw=bd+'Width',bds=bd+'Style',bdc=bd+'Color';Short[bd]={};Short.borderWidth[bdw]=Short[bd][bdw]=All[bdw]='@px';Short.borderStyle[bds]=Short[bd][bds]=All[bds]='@';Short.borderColor[bdc]=Short[bd][bdc]=All[bdc]='rgb(@, @, @)';});(function(){Element.implement({scrollTo:function(x,y){if(isBody(this)){this.getWindow().scrollTo(x,y);}else{this.scrollLeft=x;this.scrollTop=y;}
return this;},getSize:function(){if(isBody(this))return this.getWindow().getSize();return{x:this.offsetWidth,y:this.offsetHeight};},getScrollSize:function(){if(isBody(this))return this.getWindow().getScrollSize();return{x:this.scrollWidth,y:this.scrollHeight};},getScroll:function(){if(isBody(this))return this.getWindow().getScroll();return{x:this.scrollLeft,y:this.scrollTop};},getScrolls:function(){var element=this,position={x:0,y:0};while(element&&!isBody(element)){position.x+=element.scrollLeft;position.y+=element.scrollTop;element=element.parentNode;}
return position;},getOffsetParent:function(){var element=this;if(isBody(element))return null;if(!Browser.Engine.trident)return element.offsetParent;while((element=element.parentNode)&&!isBody(element)){if(styleString(element,'position')!='static')return element;}
return null;},getOffsets:function(){if(this.getBoundingClientRect){var bound=this.getBoundingClientRect(),html=document.id(this.getDocument().documentElement),htmlScroll=html.getScroll(),elemScrolls=this.getScrolls(),elemScroll=this.getScroll(),isFixed=(styleString(this,'position')=='fixed');return{x:bound.left.toInt()+elemScrolls.x-elemScroll.x+((isFixed)?0:htmlScroll.x)-html.clientLeft,y:bound.top.toInt()+elemScrolls.y-elemScroll.y+((isFixed)?0:htmlScroll.y)-html.clientTop};}
var element=this,position={x:0,y:0};if(isBody(this))return position;while(element&&!isBody(element)){position.x+=element.offsetLeft;position.y+=element.offsetTop;if(Browser.Engine.gecko){if(!borderBox(element)){position.x+=leftBorder(element);position.y+=topBorder(element);}
var parent=element.parentNode;if(parent&&styleString(parent,'overflow')!='visible'){position.x+=leftBorder(parent);position.y+=topBorder(parent);}}else if(element!=this&&Browser.Engine.webkit){position.x+=leftBorder(element);position.y+=topBorder(element);}
element=element.offsetParent;}
if(Browser.Engine.gecko&&!borderBox(this)){position.x-=leftBorder(this);position.y-=topBorder(this);}
return position;},getPosition:function(relative){if(isBody(this))return{x:0,y:0};var offset=this.getOffsets(),scroll=this.getScrolls();var position={x:offset.x-scroll.x,y:offset.y-scroll.y};var relativePosition=(relative&&(relative=document.id(relative)))?relative.getPosition():{x:0,y:0};return{x:position.x-relativePosition.x,y:position.y-relativePosition.y};},getCoordinates:function(element){if(isBody(this))return this.getWindow().getCoordinates();var position=this.getPosition(element),size=this.getSize();var obj={left:position.x,top:position.y,width:size.x,height:size.y};obj.right=obj.left+obj.width;obj.bottom=obj.top+obj.height;return obj;},computePosition:function(obj){return{left:obj.x-styleNumber(this,'margin-left'),top:obj.y-styleNumber(this,'margin-top')};},setPosition:function(obj){return this.setStyles(this.computePosition(obj));}});Native.implement([Document,Window],{getSize:function(){if(Browser.Engine.presto||Browser.Engine.webkit){var win=this.getWindow();return{x:win.innerWidth,y:win.innerHeight};}
var doc=getCompatElement(this);return{x:doc.clientWidth,y:doc.clientHeight};},getScroll:function(){var win=this.getWindow(),doc=getCompatElement(this);return{x:win.pageXOffset||doc.scrollLeft,y:win.pageYOffset||doc.scrollTop};},getScrollSize:function(){var doc=getCompatElement(this),min=this.getSize();return{x:Math.max(doc.scrollWidth,min.x),y:Math.max(doc.scrollHeight,min.y)};},getPosition:function(){return{x:0,y:0};},getCoordinates:function(){var size=this.getSize();return{top:0,left:0,bottom:size.y,right:size.x,height:size.y,width:size.x};}});var styleString=Element.getComputedStyle;function styleNumber(element,style){return styleString(element,style).toInt()||0;};function borderBox(element){return styleString(element,'-moz-box-sizing')=='border-box';};function topBorder(element){return styleNumber(element,'border-top-width');};function leftBorder(element){return styleNumber(element,'border-left-width');};function isBody(element){return(/^(?:body|html)$/i).test(element.tagName);};function getCompatElement(element){var doc=element.getDocument();return(!doc.compatMode||doc.compatMode=='CSS1Compat')?doc.html:doc.body;};})();Element.alias('setPosition','position');Native.implement([Window,Document,Element],{getHeight:function(){return this.getSize().y;},getWidth:function(){return this.getSize().x;},getScrollTop:function(){return this.getScroll().y;},getScrollLeft:function(){return this.getScroll().x;},getScrollHeight:function(){return this.getScrollSize().y;},getScrollWidth:function(){return this.getScrollSize().x;},getTop:function(){return this.getPosition().y;},getLeft:function(){return this.getPosition().x;}});Native.implement([Document,Element],{getElements:function(expression,nocash){expression=expression.split(',');var items,local={};for(var i=0,l=expression.length;i<l;i++){var selector=expression[i],elements=Selectors.Utils.search(this,selector,local);if(i!=0&&elements.item)elements=$A(elements);items=(i==0)?elements:(items.item)?$A(items).concat(elements):items.concat(elements);}
return new Elements(items,{ddup:(expression.length>1),cash:!nocash});}});Element.implement({match:function(selector){if(!selector||(selector==this))return true;var tagid=Selectors.Utils.parseTagAndID(selector);var tag=tagid[0],id=tagid[1];if(!Selectors.Filters.byID(this,id)||!Selectors.Filters.byTag(this,tag))return false;var parsed=Selectors.Utils.parseSelector(selector);return(parsed)?Selectors.Utils.filter(this,parsed,{}):true;}});var Selectors={Cache:{nth:{},parsed:{}}};Selectors.RegExps={id:(/#([\w-]+)/),tag:(/^(\w+|\*)/),quick:(/^(\w+|\*)$/),splitter:(/\s*([+>~\s])\s*([a-zA-Z#.*:\[])/g),combined:(/\.([\w-]+)|\[(\w+)(?:([!*^$~|]?=)(["']?)([^\4]*?)\4)?\]|:([\w-]+)(?:\(["']?(.*?)?["']?\)|$)/g)};Selectors.Utils={chk:function(item,uniques){if(!uniques)return true;var uid=$uid(item);if(!uniques[uid])return uniques[uid]=true;return false;},parseNthArgument:function(argument){if(Selectors.Cache.nth[argument])return Selectors.Cache.nth[argument];var parsed=argument.match(/^([+-]?\d*)?([a-z]+)?([+-]?\d*)?$/);if(!parsed)return false;var inta=parseInt(parsed[1],10);var a=(inta||inta===0)?inta:1;var special=parsed[2]||false;var b=parseInt(parsed[3],10)||0;if(a!=0){b--;while(b<1)b+=a;while(b>=a)b-=a;}else{a=b;special='index';}
switch(special){case'n':parsed={a:a,b:b,special:'n'};break;case'odd':parsed={a:2,b:0,special:'n'};break;case'even':parsed={a:2,b:1,special:'n'};break;case'first':parsed={a:0,special:'index'};break;case'last':parsed={special:'last-child'};break;case'only':parsed={special:'only-child'};break;default:parsed={a:(a-1),special:'index'};}
return Selectors.Cache.nth[argument]=parsed;},parseSelector:function(selector){if(Selectors.Cache.parsed[selector])return Selectors.Cache.parsed[selector];var m,parsed={classes:[],pseudos:[],attributes:[]};while((m=Selectors.RegExps.combined.exec(selector))){var cn=m[1],an=m[2],ao=m[3],av=m[5],pn=m[6],pa=m[7];if(cn){parsed.classes.push(cn);}else if(pn){var parser=Selectors.Pseudo.get(pn);if(parser)parsed.pseudos.push({parser:parser,argument:pa});else parsed.attributes.push({name:pn,operator:'=',value:pa});}else if(an){parsed.attributes.push({name:an,operator:ao,value:av});}}
if(!parsed.classes.length)delete parsed.classes;if(!parsed.attributes.length)delete parsed.attributes;if(!parsed.pseudos.length)delete parsed.pseudos;if(!parsed.classes&&!parsed.attributes&&!parsed.pseudos)parsed=null;return Selectors.Cache.parsed[selector]=parsed;},parseTagAndID:function(selector){var tag=selector.match(Selectors.RegExps.tag);var id=selector.match(Selectors.RegExps.id);return[(tag)?tag[1]:'*',(id)?id[1]:false];},filter:function(item,parsed,local){var i;if(parsed.classes){for(i=parsed.classes.length;i--;i){var cn=parsed.classes[i];if(!Selectors.Filters.byClass(item,cn))return false;}}
if(parsed.attributes){for(i=parsed.attributes.length;i--;i){var att=parsed.attributes[i];if(!Selectors.Filters.byAttribute(item,att.name,att.operator,att.value))return false;}}
if(parsed.pseudos){for(i=parsed.pseudos.length;i--;i){var psd=parsed.pseudos[i];if(!Selectors.Filters.byPseudo(item,psd.parser,psd.argument,local))return false;}}
return true;},getByTagAndID:function(ctx,tag,id){if(id){var item=(ctx.getElementById)?ctx.getElementById(id,true):Element.getElementById(ctx,id,true);return(item&&Selectors.Filters.byTag(item,tag))?[item]:[];}else{return ctx.getElementsByTagName(tag);}},search:function(self,expression,local){var splitters=[];var selectors=expression.trim().replace(Selectors.RegExps.splitter,function(m0,m1,m2){splitters.push(m1);return':)'+m2;}).split(':)');var items,filtered,item;for(var i=0,l=selectors.length;i<l;i++){var selector=selectors[i];if(i==0&&Selectors.RegExps.quick.test(selector)){items=self.getElementsByTagName(selector);continue;}
var splitter=splitters[i-1];var tagid=Selectors.Utils.parseTagAndID(selector);var tag=tagid[0],id=tagid[1];if(i==0){items=Selectors.Utils.getByTagAndID(self,tag,id);}else{var uniques={},found=[];for(var j=0,k=items.length;j<k;j++)found=Selectors.Getters[splitter](found,items[j],tag,id,uniques);items=found;}
var parsed=Selectors.Utils.parseSelector(selector);if(parsed){filtered=[];for(var m=0,n=items.length;m<n;m++){item=items[m];if(Selectors.Utils.filter(item,parsed,local))filtered.push(item);}
items=filtered;}}
return items;}};Selectors.Getters={' ':function(found,self,tag,id,uniques){var items=Selectors.Utils.getByTagAndID(self,tag,id);for(var i=0,l=items.length;i<l;i++){var item=items[i];if(Selectors.Utils.chk(item,uniques))found.push(item);}
return found;},'>':function(found,self,tag,id,uniques){var children=Selectors.Utils.getByTagAndID(self,tag,id);for(var i=0,l=children.length;i<l;i++){var child=children[i];if(child.parentNode==self&&Selectors.Utils.chk(child,uniques))found.push(child);}
return found;},'+':function(found,self,tag,id,uniques){while((self=self.nextSibling)){if(self.nodeType==1){if(Selectors.Utils.chk(self,uniques)&&Selectors.Filters.byTag(self,tag)&&Selectors.Filters.byID(self,id))found.push(self);break;}}
return found;},'~':function(found,self,tag,id,uniques){while((self=self.nextSibling)){if(self.nodeType==1){if(!Selectors.Utils.chk(self,uniques))break;if(Selectors.Filters.byTag(self,tag)&&Selectors.Filters.byID(self,id))found.push(self);}}
return found;}};Selectors.Filters={byTag:function(self,tag){return(tag=='*'||(self.tagName&&self.tagName.toLowerCase()==tag));},byID:function(self,id){return(!id||(self.id&&self.id==id));},byClass:function(self,klass){return(self.className&&self.className.contains&&self.className.contains(klass,' '));},byPseudo:function(self,parser,argument,local){return parser.call(self,argument,local);},byAttribute:function(self,name,operator,value){var result=Element.prototype.getProperty.call(self,name);if(!result)return(operator=='!=');if(!operator||value==undefined)return true;switch(operator){case'=':return(result==value);case'*=':return(result.contains(value));case'^=':return(result.substr(0,value.length)==value);case'$=':return(result.substr(result.length-value.length)==value);case'!=':return(result!=value);case'~=':return result.contains(value,' ');case'|=':return result.contains(value,'-');}
return false;}};Selectors.Pseudo=new Hash({checked:function(){return this.checked;},empty:function(){return!(this.innerText||this.textContent||'').length;},not:function(selector){return!Element.match(this,selector);},contains:function(text){return(this.innerText||this.textContent||'').contains(text);},'first-child':function(){return Selectors.Pseudo.index.call(this,0);},'last-child':function(){var element=this;while((element=element.nextSibling)){if(element.nodeType==1)return false;}
return true;},'only-child':function(){var prev=this;while((prev=prev.previousSibling)){if(prev.nodeType==1)return false;}
var next=this;while((next=next.nextSibling)){if(next.nodeType==1)return false;}
return true;},'nth-child':function(argument,local){argument=(argument==undefined)?'n':argument;var parsed=Selectors.Utils.parseNthArgument(argument);if(parsed.special!='n')return Selectors.Pseudo[parsed.special].call(this,parsed.a,local);var count=0;local.positions=local.positions||{};var uid=$uid(this);if(!local.positions[uid]){var self=this;while((self=self.previousSibling)){if(self.nodeType!=1)continue;count++;var position=local.positions[$uid(self)];if(position!=undefined){count=position+count;break;}}
local.positions[uid]=count;}
return(local.positions[uid]%parsed.a==parsed.b);},index:function(index){var element=this,count=0;while((element=element.previousSibling)){if(element.nodeType==1&&++count>index)return false;}
return(count==index);},even:function(argument,local){return Selectors.Pseudo['nth-child'].call(this,'2n+1',local);},odd:function(argument,local){return Selectors.Pseudo['nth-child'].call(this,'2n',local);},selected:function(){return this.selected;},enabled:function(){return(this.disabled===false);}});Element.Events.domready={onAdd:function(fn){if(Browser.loaded)fn.call(this);}};(function(){var domready=function(){if(Browser.loaded)return;Browser.loaded=true;window.fireEvent('domready');document.fireEvent('domready');};window.addEvent('load',domready);if(Browser.Engine.trident){var temp=document.createElement('div');(function(){($try(function(){temp.doScroll();return document.id(temp).inject(document.body).set('html','temp').dispose();}))?domready():arguments.callee.delay(50);})();}else if(Browser.Engine.webkit&&Browser.Engine.version<525){(function(){(['loaded','complete'].contains(document.readyState))?domready():arguments.callee.delay(50);})();}else{document.addEvent('DOMContentLoaded',domready);}})();var JSON=new Hash(this.JSON&&{stringify:JSON.stringify,parse:JSON.parse}).extend({$specialChars:{'\b':'\\b','\t':'\\t','\n':'\\n','\f':'\\f','\r':'\\r','"':'\\"','\\':'\\\\'},$replaceChars:function(chr){return JSON.$specialChars[chr]||'\\u00'+Math.floor(chr.charCodeAt()/16).toString(16)+(chr.charCodeAt()%16).toString(16);},encode:function(obj){switch($type(obj)){case'string':return'"'+obj.replace(/[\x00-\x1f\\"]/g,JSON.$replaceChars)+'"';case'array':return'['+String(obj.map(JSON.encode).clean())+']';case'object':case'hash':var string=[];Hash.each(obj,function(value,key){var json=JSON.encode(value);if(json)string.push(JSON.encode(key)+':'+json);});return'{'+string+'}';case'number':case'boolean':return String(obj);case false:return'null';}
return null;},decode:function(string,secure){if($type(string)!='string'||!string.length)return null;if(secure&&!(/^[,:{}\[\]0-9.\-+Eaeflnr-u \n\r\t]*$/).test(string.replace(/\\./g,'@').replace(/"[^"\\\n\r]*"/g,'')))return null;return eval('('+string+')');}});Native.implement([Hash,Array,String,Number],{toJSON:function(){return JSON.encode(this);}});var Cookie=new Class({Implements:Options,options:{path:false,domain:false,duration:false,secure:false,document:document},initialize:function(key,options){this.key=key;this.setOptions(options);},write:function(value){value=encodeURIComponent(value);if(this.options.domain)value+='; domain='+this.options.domain;if(this.options.path)value+='; path='+this.options.path;if(this.options.duration){var date=new Date();date.setTime(date.getTime()+this.options.duration*24*60*60*1000);value+='; expires='+date.toGMTString();}
if(this.options.secure)value+='; secure';this.options.document.cookie=this.key+'='+value;return this;},read:function(){var value=this.options.document.cookie.match('(?:^|;)\\s*'+this.key.escapeRegExp()+'=([^;]*)');return(value)?decodeURIComponent(value[1]):null;},dispose:function(){new Cookie(this.key,$merge(this.options,{duration:-1})).write('');return this;}});Cookie.write=function(key,value,options){return new Cookie(key,options).write(value);};Cookie.read=function(key){return new Cookie(key).read();};Cookie.dispose=function(key,options){return new Cookie(key,options).dispose();};var Swiff=new Class({Implements:[Options],options:{id:null,height:1,width:1,container:null,properties:{},params:{quality:'high',allowScriptAccess:'always',wMode:'transparent',swLiveConnect:true},callBacks:{},vars:{}},toElement:function(){return this.object;},initialize:function(path,options){this.instance='Swiff_'+$time();this.setOptions(options);options=this.options;var id=this.id=options.id||this.instance;var container=document.id(options.container);Swiff.CallBacks[this.instance]={};var params=options.params,vars=options.vars,callBacks=options.callBacks;var properties=$extend({height:options.height,width:options.width},options.properties);var self=this;for(var callBack in callBacks){Swiff.CallBacks[this.instance][callBack]=(function(option){return function(){return option.apply(self.object,arguments);};})(callBacks[callBack]);vars[callBack]='Swiff.CallBacks.'+this.instance+'.'+callBack;}
params.flashVars=Hash.toQueryString(vars);if(Browser.Engine.trident){properties.classid='clsid:D27CDB6E-AE6D-11cf-96B8-444553540000';params.movie=path;}else{properties.type='application/x-shockwave-flash';properties.data=path;}
var build='<object id="'+id+'"';for(var property in properties)build+=' '+property+'="'+properties[property]+'"';build+='>';for(var param in params){if(params[param])build+='<param name="'+param+'" value="'+params[param]+'" />';}
build+='</object>';this.object=((container)?container.empty():new Element('div')).set('html',build).firstChild;},replaces:function(element){element=document.id(element,true);element.parentNode.replaceChild(this.toElement(),element);return this;},inject:function(element){document.id(element,true).appendChild(this.toElement());return this;},remote:function(){return Swiff.remote.apply(Swiff,[this.toElement()].extend(arguments));}});Swiff.CallBacks={};Swiff.remote=function(obj,fn){var rs=obj.CallFunction('<invoke name="'+fn+'" returntype="javascript">'+__flash__argumentsToXML(arguments,2)+'</invoke>');return eval(rs);};var Fx=new Class({Implements:[Chain,Events,Options],options:{fps:50,unit:false,duration:500,link:'ignore'},initialize:function(options){this.subject=this.subject||this;this.setOptions(options);this.options.duration=Fx.Durations[this.options.duration]||this.options.duration.toInt();var wait=this.options.wait;if(wait===false)this.options.link='cancel';},getTransition:function(){return function(p){return-(Math.cos(Math.PI*p)-1)/2;};},step:function(){var time=$time();if(time<this.time+this.options.duration){var delta=this.transition((time-this.time)/this.options.duration);this.set(this.compute(this.from,this.to,delta));}else{this.set(this.compute(this.from,this.to,1));this.complete();}},set:function(now){return now;},compute:function(from,to,delta){return Fx.compute(from,to,delta);},check:function(){if(!this.timer)return true;switch(this.options.link){case'cancel':this.cancel();return true;case'chain':this.chain(this.caller.bind(this,arguments));return false;}
return false;},start:function(from,to){if(!this.check(from,to))return this;this.from=from;this.to=to;this.time=0;this.transition=this.getTransition();this.startTimer();this.onStart();return this;},complete:function(){if(this.stopTimer())this.onComplete();return this;},cancel:function(){if(this.stopTimer())this.onCancel();return this;},onStart:function(){this.fireEvent('start',this.subject);},onComplete:function(){this.fireEvent('complete',this.subject);if(!this.callChain())this.fireEvent('chainComplete',this.subject);},onCancel:function(){this.fireEvent('cancel',this.subject).clearChain();},pause:function(){this.stopTimer();return this;},resume:function(){this.startTimer();return this;},stopTimer:function(){if(!this.timer)return false;this.time=$time()-this.time;this.timer=$clear(this.timer);return true;},startTimer:function(){if(this.timer)return false;this.time=$time()-this.time;this.timer=this.step.periodical(Math.round(1000/this.options.fps),this);return true;}});Fx.compute=function(from,to,delta){return(to-from)*delta+from;};Fx.Durations={'short':250,'normal':500,'long':1000};Fx.CSS=new Class({Extends:Fx,prepare:function(element,property,values){values=$splat(values);var values1=values[1];if(!$chk(values1)){values[1]=values[0];values[0]=element.getStyle(property);}
var parsed=values.map(this.parse);return{from:parsed[0],to:parsed[1]};},parse:function(value){value=$lambda(value)();value=(typeof value=='string')?value.split(' '):$splat(value);return value.map(function(val){val=String(val);var found=false;Fx.CSS.Parsers.each(function(parser,key){if(found)return;var parsed=parser.parse(val);if($chk(parsed))found={value:parsed,parser:parser};});found=found||{value:val,parser:Fx.CSS.Parsers.String};return found;});},compute:function(from,to,delta){var computed=[];(Math.min(from.length,to.length)).times(function(i){computed.push({value:from[i].parser.compute(from[i].value,to[i].value,delta),parser:from[i].parser});});computed.$family={name:'fx:css:value'};return computed;},serve:function(value,unit){if($type(value)!='fx:css:value')value=this.parse(value);var returned=[];value.each(function(bit){returned=returned.concat(bit.parser.serve(bit.value,unit));});return returned;},render:function(element,property,value,unit){element.setStyle(property,this.serve(value,unit));},search:function(selector){if(Fx.CSS.Cache[selector])return Fx.CSS.Cache[selector];var to={};Array.each(document.styleSheets,function(sheet,j){var href=sheet.href;if(href&&href.contains('://')&&!href.contains(document.domain))return;var rules=sheet.rules||sheet.cssRules;Array.each(rules,function(rule,i){if(!rule.style)return;var selectorText=(rule.selectorText)?rule.selectorText.replace(/^\w+/,function(m){return m.toLowerCase();}):null;if(!selectorText||!selectorText.test('^'+selector+'$'))return;Element.Styles.each(function(value,style){if(!rule.style[style]||Element.ShortStyles[style])return;value=String(rule.style[style]);to[style]=(value.test(/^rgb/))?value.rgbToHex():value;});});});return Fx.CSS.Cache[selector]=to;}});Fx.CSS.Cache={};Fx.CSS.Parsers=new Hash({Color:{parse:function(value){if(value.match(/^#[0-9a-f]{3,6}$/i))return value.hexToRgb(true);return((value=value.match(/(\d+),\s*(\d+),\s*(\d+)/)))?[value[1],value[2],value[3]]:false;},compute:function(from,to,delta){return from.map(function(value,i){return Math.round(Fx.compute(from[i],to[i],delta));});},serve:function(value){return value.map(Number);}},Number:{parse:parseFloat,compute:Fx.compute,serve:function(value,unit){return(unit)?value+unit:value;}},String:{parse:$lambda(false),compute:$arguments(1),serve:$arguments(0)}});Fx.Tween=new Class({Extends:Fx.CSS,initialize:function(element,options){this.element=this.subject=document.id(element);this.parent(options);},set:function(property,now){if(arguments.length==1){now=property;property=this.property||this.options.property;}
this.render(this.element,property,now,this.options.unit);return this;},start:function(property,from,to){if(!this.check(property,from,to))return this;var args=Array.flatten(arguments);this.property=this.options.property||args.shift();var parsed=this.prepare(this.element,this.property,args);return this.parent(parsed.from,parsed.to);}});Element.Properties.tween={set:function(options){var tween=this.retrieve('tween');if(tween)tween.cancel();return this.eliminate('tween').store('tween:options',$extend({link:'cancel'},options));},get:function(options){if(options||!this.retrieve('tween')){if(options||!this.retrieve('tween:options'))this.set('tween',options);this.store('tween',new Fx.Tween(this,this.retrieve('tween:options')));}
return this.retrieve('tween');}};Element.implement({tween:function(property,from,to){this.get('tween').start(arguments);return this;},fade:function(how){var fade=this.get('tween'),o='opacity',toggle;how=$pick(how,'toggle');switch(how){case'in':fade.start(o,1);break;case'out':fade.start(o,0);break;case'show':fade.set(o,1);break;case'hide':fade.set(o,0);break;case'toggle':var flag=this.retrieve('fade:flag',this.get('opacity')==1);fade.start(o,(flag)?0:1);this.store('fade:flag',!flag);toggle=true;break;default:fade.start(o,arguments);}
if(!toggle)this.eliminate('fade:flag');return this;},highlight:function(start,end){if(!end){end=this.retrieve('highlight:original',this.getStyle('background-color'));end=(end=='transparent')?'#fff':end;}
var tween=this.get('tween');tween.start('background-color',start||'#ffff88',end).chain(function(){this.setStyle('background-color',this.retrieve('highlight:original'));tween.callChain();}.bind(this));return this;}});Fx.Morph=new Class({Extends:Fx.CSS,initialize:function(element,options){this.element=this.subject=document.id(element);this.parent(options);},set:function(now){if(typeof now=='string')now=this.search(now);for(var p in now)this.render(this.element,p,now[p],this.options.unit);return this;},compute:function(from,to,delta){var now={};for(var p in from)now[p]=this.parent(from[p],to[p],delta);return now;},start:function(properties){if(!this.check(properties))return this;if(typeof properties=='string')properties=this.search(properties);var from={},to={};for(var p in properties){var parsed=this.prepare(this.element,p,properties[p]);from[p]=parsed.from;to[p]=parsed.to;}
return this.parent(from,to);}});Element.Properties.morph={set:function(options){var morph=this.retrieve('morph');if(morph)morph.cancel();return this.eliminate('morph').store('morph:options',$extend({link:'cancel'},options));},get:function(options){if(options||!this.retrieve('morph')){if(options||!this.retrieve('morph:options'))this.set('morph',options);this.store('morph',new Fx.Morph(this,this.retrieve('morph:options')));}
return this.retrieve('morph');}};Element.implement({morph:function(props){this.get('morph').start(props);return this;}});Fx.implement({getTransition:function(){var trans=this.options.transition||Fx.Transitions.Sine.easeInOut;if(typeof trans=='string'){var data=trans.split(':');trans=Fx.Transitions;trans=trans[data[0]]||trans[data[0].capitalize()];if(data[1])trans=trans['ease'+data[1].capitalize()+(data[2]?data[2].capitalize():'')];}
return trans;}});Fx.Transition=function(transition,params){params=$splat(params);return $extend(transition,{easeIn:function(pos){return transition(pos,params);},easeOut:function(pos){return 1-transition(1-pos,params);},easeInOut:function(pos){return(pos<=0.5)?transition(2*pos,params)/2:(2-transition(2*(1-pos),params))/2;}});};Fx.Transitions=new Hash({linear:$arguments(0)});Fx.Transitions.extend=function(transitions){for(var transition in transitions)Fx.Transitions[transition]=new Fx.Transition(transitions[transition]);};Fx.Transitions.extend({Pow:function(p,x){return Math.pow(p,x[0]||6);},Expo:function(p){return Math.pow(2,8*(p-1));},Circ:function(p){return 1-Math.sin(Math.acos(p));},Sine:function(p){return 1-Math.sin((1-p)*Math.PI/2);},Back:function(p,x){x=x[0]||1.618;return Math.pow(p,2)*((x+1)*p-x);},Bounce:function(p){var value;for(var a=0,b=1;1;a+=b,b/=2){if(p>=(7-4*a)/11){value=b*b-Math.pow((11-6*a-11*p)/4,2);break;}}
return value;},Elastic:function(p,x){return Math.pow(2,10*--p)*Math.cos(20*p*Math.PI*(x[0]||1)/3);}});['Quad','Cubic','Quart','Quint'].each(function(transition,i){Fx.Transitions[transition]=new Fx.Transition(function(p){return Math.pow(p,[i+2]);});});var Request=new Class({Implements:[Chain,Events,Options],options:{url:'',data:'',headers:{'X-Requested-With':'XMLHttpRequest','Accept':'text/javascript, text/html, application/xml, text/xml, */*'},async:true,format:false,method:'post',link:'ignore',isSuccess:null,emulation:true,urlEncoded:true,encoding:'utf-8',evalScripts:false,evalResponse:false,noCache:false},initialize:function(options){this.xhr=new Browser.Request();this.setOptions(options);this.options.isSuccess=this.options.isSuccess||this.isSuccess;this.headers=new Hash(this.options.headers);},onStateChange:function(){if(this.xhr.readyState!=4||!this.running)return;this.running=false;this.status=0;$try(function(){this.status=this.xhr.status;}.bind(this));this.xhr.onreadystatechange=$empty;if(this.options.isSuccess.call(this,this.status)){this.response={text:this.xhr.responseText,xml:this.xhr.responseXML};this.success(this.response.text,this.response.xml);}else{this.response={text:null,xml:null};this.failure();}},isSuccess:function(){return((this.status>=200)&&(this.status<300));},processScripts:function(text){if(this.options.evalResponse||(/(ecma|java)script/).test(this.getHeader('Content-type')))return $exec(text);return text.stripScripts(this.options.evalScripts);},success:function(text,xml){this.onSuccess(this.processScripts(text),xml);},onSuccess:function(){this.fireEvent('complete',arguments).fireEvent('success',arguments).callChain();},failure:function(){this.onFailure();},onFailure:function(){this.fireEvent('complete').fireEvent('failure',this.xhr);},setHeader:function(name,value){this.headers.set(name,value);return this;},getHeader:function(name){return $try(function(){return this.xhr.getResponseHeader(name);}.bind(this));},check:function(){if(!this.running)return true;switch(this.options.link){case'cancel':this.cancel();return true;case'chain':this.chain(this.caller.bind(this,arguments));return false;}
return false;},send:function(options){if(!this.check(options))return this;this.running=true;var type=$type(options);if(type=='string'||type=='element')options={data:options};var old=this.options;options=$extend({data:old.data,url:old.url,method:old.method},options);var data=options.data,url=String(options.url),method=options.method.toLowerCase();switch($type(data)){case'element':data=document.id(data).toQueryString();break;case'object':case'hash':data=Hash.toQueryString(data);}
if(this.options.format){var format='format='+this.options.format;data=(data)?format+'&'+data:format;}
if(this.options.emulation&&!['get','post'].contains(method)){var _method='_method='+method;data=(data)?_method+'&'+data:_method;method='post';}
if(this.options.urlEncoded&&method=='post'){var encoding=(this.options.encoding)?'; charset='+this.options.encoding:'';this.headers.set('Content-type','application/x-www-form-urlencoded'+encoding);}
if(this.options.noCache){var noCache='noCache='+new Date().getTime();data=(data)?noCache+'&'+data:noCache;}
var trimPosition=url.lastIndexOf('/');if(trimPosition>-1&&(trimPosition=url.indexOf('#'))>-1)url=url.substr(0,trimPosition);if(data&&method=='get'){url=url+(url.contains('?')?'&':'?')+data;data=null;}
this.xhr.open(method.toUpperCase(),url,this.options.async);this.xhr.onreadystatechange=this.onStateChange.bind(this);this.headers.each(function(value,key){try{this.xhr.setRequestHeader(key,value);}catch(e){this.fireEvent('exception',[key,value]);}},this);this.fireEvent('request');this.xhr.send(data);if(!this.options.async)this.onStateChange();return this;},cancel:function(){if(!this.running)return this;this.running=false;this.xhr.abort();this.xhr.onreadystatechange=$empty;this.xhr=new Browser.Request();this.fireEvent('cancel');return this;}});(function(){var methods={};['get','post','put','delete','GET','POST','PUT','DELETE'].each(function(method){methods[method]=function(){var params=Array.link(arguments,{url:String.type,data:$defined});return this.send($extend(params,{method:method}));};});Request.implement(methods);})();Element.Properties.send={set:function(options){var send=this.retrieve('send');if(send)send.cancel();return this.eliminate('send').store('send:options',$extend({data:this,link:'cancel',method:this.get('method')||'post',url:this.get('action')},options));},get:function(options){if(options||!this.retrieve('send')){if(options||!this.retrieve('send:options'))this.set('send',options);this.store('send',new Request(this.retrieve('send:options')));}
return this.retrieve('send');}};Element.implement({send:function(url){var sender=this.get('send');sender.send({data:this,url:url||sender.options.url});return this;}});Request.HTML=new Class({Extends:Request,options:{update:false,append:false,evalScripts:true,filter:false},processHTML:function(text){var match=text.match(/<body[^>]*>([\s\S]*?)<\/body>/i);text=(match)?match[1]:text;var container=new Element('div');return $try(function(){var root='<root>'+text+'</root>',doc;if(Browser.Engine.trident){doc=new ActiveXObject('Microsoft.XMLDOM');doc.async=false;doc.loadXML(root);}else{doc=new DOMParser().parseFromString(root,'text/xml');}
root=doc.getElementsByTagName('root')[0];if(!root)return null;for(var i=0,k=root.childNodes.length;i<k;i++){var child=Element.clone(root.childNodes[i],true,true);if(child)container.grab(child);}
return container;})||container.set('html',text);},success:function(text){var options=this.options,response=this.response;response.html=text.stripScripts(function(script){response.javascript=script;});var temp=this.processHTML(response.html);response.tree=temp.childNodes;response.elements=temp.getElements('*');if(options.filter)response.tree=response.elements.filter(options.filter);if(options.update)document.id(options.update).empty().set('html',response.html);else if(options.append)document.id(options.append).adopt(temp.getChildren());if(options.evalScripts)$exec(response.javascript);this.onSuccess(response.tree,response.elements,response.html,response.javascript);}});Element.Properties.load={set:function(options){var load=this.retrieve('load');if(load)load.cancel();return this.eliminate('load').store('load:options',$extend({data:this,link:'cancel',update:this,method:'get'},options));},get:function(options){if(options||!this.retrieve('load')){if(options||!this.retrieve('load:options'))this.set('load',options);this.store('load',new Request.HTML(this.retrieve('load:options')));}
return this.retrieve('load');}};Element.implement({load:function(){this.get('load').send(Array.link(arguments,{data:Object.type,url:String.type}));return this;}});Request.JSON=new Class({Extends:Request,options:{secure:true},initialize:function(options){this.parent(options);this.headers.extend({'Accept':'application/json','X-Request':'JSON'});},success:function(text){this.response.json=JSON.decode(text,this.options.secure);this.onSuccess(this.response.json,text);}});
var TrimPath;(function(){if(TrimPath==null)
TrimPath=new Object();if(TrimPath.evalEx==null)
TrimPath.evalEx=function(src){return eval(src);};var UNDEFINED;if(Array.prototype.pop==null)
Array.prototype.pop=function(){if(this.length===0){return UNDEFINED;}
return this[--this.length];};if(Array.prototype.push==null)
Array.prototype.push=function(){for(var i=0;i<arguments.length;++i){this[this.length]=arguments[i];}
return this.length;};TrimPath.parseTemplate=function(tmplContent,optTmplName,optEtc){if(optEtc==null)
optEtc=TrimPath.parseTemplate_etc;var funcSrc=parse(tmplContent,optTmplName,optEtc);var func=TrimPath.evalEx(funcSrc,optTmplName,1);if(func!=null)
return new optEtc.Template(optTmplName,tmplContent,funcSrc,func,optEtc);return null;}
try{String.prototype.process=function(context,optFlags){var template=TrimPath.parseTemplate(this,null);if(template!=null)
return template.process(context,optFlags);return this;}}catch(e){}
TrimPath.parseTemplate_etc={};TrimPath.parseTemplate_etc.statementTag="forelse|for|if|elseif|else|var|macro";TrimPath.parseTemplate_etc.statementDef={"if":{delta:1,prefix:"if (",suffix:") {",paramMin:1},"else":{delta:0,prefix:"} else {"},"elseif":{delta:0,prefix:"} else if (",suffix:") {",paramDefault:"true"},"/if":{delta:-1,prefix:"}"},"for":{delta:1,paramMin:3,prefixFunc:function(stmtParts,state,tmplName,etc){if(stmtParts[2]!="in")
throw new etc.ParseError(tmplName,state.line,"bad for loop statement: "+stmtParts.join(' '));var iterVar=stmtParts[1];var listVar="__LIST__"+iterVar;return["var ",listVar," = ",stmtParts[3],";","var __LENGTH_STACK__;","if (typeof(__LENGTH_STACK__) == 'undefined' || !__LENGTH_STACK__.length) __LENGTH_STACK__ = new Array();","__LENGTH_STACK__[__LENGTH_STACK__.length] = 0;","if ((",listVar,") != null) { ","var ",iterVar,"_ct = 0;","for (var ",iterVar,"_index in ",listVar,") { ",iterVar,"_ct++;","if (typeof(",listVar,"[",iterVar,"_index]) == 'function' || ",listVar,"[",iterVar,"_index].name === 'array') {continue;}","__LENGTH_STACK__[__LENGTH_STACK__.length - 1]++;","var ",iterVar," = ",listVar,"[",iterVar,"_index];"].join("");}},"forelse":{delta:0,prefix:"} } if (__LENGTH_STACK__[__LENGTH_STACK__.length - 1] == 0) { if (",suffix:") {",paramDefault:"true"},"/for":{delta:-1,prefix:"} }; delete __LENGTH_STACK__[__LENGTH_STACK__.length - 1];"},"var":{delta:0,prefix:"var ",suffix:";"},"macro":{delta:1,prefixFunc:function(stmtParts,state,tmplName,etc){var macroName=stmtParts[1].split('(')[0];return["var ",macroName," = function",stmtParts.slice(1).join(' ').substring(macroName.length),"{ var _OUT_arr = []; var _OUT = { write: function(m) { if (m) _OUT_arr.push(m); } }; "].join('');}},"/macro":{delta:-1,prefix:" return _OUT_arr.join(''); };"}}
TrimPath.parseTemplate_etc.modifierDef={"eat":function(v){return"";},"escape":function(s){return String(s).replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;");},"capitalize":function(s){return String(s).toUpperCase();},"default":function(s,d){return s!=null?s:d;}}
TrimPath.parseTemplate_etc.modifierDef.h=TrimPath.parseTemplate_etc.modifierDef.escape;TrimPath.parseTemplate_etc.Template=function(tmplName,tmplContent,funcSrc,func,etc){this.process=function(context,flags){if(context==null)
context={};if(context._MODIFIERS==null)
context._MODIFIERS={};if(context.defined==null)
context.defined=function(str){return(context[str]!=undefined);};for(var k in etc.modifierDef){if(context._MODIFIERS[k]==null)
context._MODIFIERS[k]=etc.modifierDef[k];}
if(flags==null)
flags={};var resultArr=[];var resultOut={write:function(m){resultArr.push(m);}};try{func(resultOut,context,flags);}catch(e){if(flags.throwExceptions==true)
throw e;var result=new String(resultArr.join("")+"[ERROR: "+e.toString()+(e.message?'; '+e.message:'')+"]");result["exception"]=e;return result;}
return resultArr.join("");}
this.name=tmplName;this.source=tmplContent;this.sourceFunc=funcSrc;this.toString=function(){return"TrimPath.Template ["+tmplName+"]";}}
TrimPath.parseTemplate_etc.ParseError=function(name,line,message){this.name=name;this.line=line;this.message=message;}
TrimPath.parseTemplate_etc.ParseError.prototype.toString=function(){return("TrimPath template ParseError in "+this.name+": line "+this.line+", "+this.message);}
var parse=function(body,tmplName,etc){body=cleanWhiteSpace(body);var funcText=["var TrimPath_Template_TEMP = function(_OUT, _CONTEXT, _FLAGS) { with (_CONTEXT) {"];var state={stack:[],line:1};var endStmtPrev=-1;while(endStmtPrev+1<body.length){var begStmt=endStmtPrev;begStmt=body.indexOf("{",begStmt+1);while(begStmt>=0){var endStmt=body.indexOf('}',begStmt+1);var stmt=body.substring(begStmt,endStmt);var blockrx=stmt.match(/^\{(cdata|minify|eval)/);if(blockrx){var blockType=blockrx[1];var blockMarkerBeg=begStmt+blockType.length+1;var blockMarkerEnd=body.indexOf('}',blockMarkerBeg);if(blockMarkerEnd>=0){var blockMarker;if(blockMarkerEnd-blockMarkerBeg<=0){blockMarker="{/"+blockType+"}";}else{blockMarker=body.substring(blockMarkerBeg+1,blockMarkerEnd);}
var blockEnd=body.indexOf(blockMarker,blockMarkerEnd+1);if(blockEnd>=0){emitSectionText(body.substring(endStmtPrev+1,begStmt),funcText);var blockText=body.substring(blockMarkerEnd+1,blockEnd);if(blockType=='cdata'){emitText(blockText,funcText);}else if(blockType=='minify'){emitText(scrubWhiteSpace(blockText),funcText);}else if(blockType=='eval'){if(blockText!=null&&blockText.length>0)
funcText.push('_OUT.write( (function() { '+blockText+' })() );');}
begStmt=endStmtPrev=blockEnd+blockMarker.length-1;}}}else if(body.charAt(begStmt-1)!='$'&&body.charAt(begStmt-1)!='\\'){var offset=(body.charAt(begStmt+1)=='/'?2:1);if(body.substring(begStmt+offset,begStmt+10+offset).search(TrimPath.parseTemplate_etc.statementTag)==0)
break;}
begStmt=body.indexOf("{",begStmt+1);}
if(begStmt<0)
break;var endStmt=body.indexOf("}",begStmt+1);if(endStmt<0)
break;emitSectionText(body.substring(endStmtPrev+1,begStmt),funcText);emitStatement(body.substring(begStmt,endStmt+1),state,funcText,tmplName,etc);endStmtPrev=endStmt;}
emitSectionText(body.substring(endStmtPrev+1),funcText);if(state.stack.length!=0)
throw new etc.ParseError(tmplName,state.line,"unclosed, unmatched statement(s): "+state.stack.join(","));funcText.push("}}; TrimPath_Template_TEMP");return funcText.join("");}
var emitStatement=function(stmtStr,state,funcText,tmplName,etc){var parts=stmtStr.slice(1,-1).split(' ');var stmt=etc.statementDef[parts[0]];if(stmt==null){emitSectionText(stmtStr,funcText);return;}
if(stmt.delta<0){if(state.stack.length<=0)
throw new etc.ParseError(tmplName,state.line,"close tag does not match any previous statement: "+stmtStr);state.stack.pop();}
if(stmt.delta>0)
state.stack.push(stmtStr);if(stmt.paramMin!=null&&stmt.paramMin>=parts.length)
throw new etc.ParseError(tmplName,state.line,"statement needs more parameters: "+stmtStr);if(stmt.prefixFunc!=null)
funcText.push(stmt.prefixFunc(parts,state,tmplName,etc));else
funcText.push(stmt.prefix);if(stmt.suffix!=null){if(parts.length<=1){if(stmt.paramDefault!=null)
funcText.push(stmt.paramDefault);}else{for(var i=1;i<parts.length;i++){if(i>1)
funcText.push(' ');funcText.push(parts[i]);}}
funcText.push(stmt.suffix);}}
var emitSectionText=function(text,funcText){if(text.length<=0)
return;var nlPrefix=0;var nlSuffix=text.length-1;while(nlPrefix<text.length&&(text.charAt(nlPrefix)=='\n'))
nlPrefix++;while(nlSuffix>=0&&(text.charAt(nlSuffix)==' '||text.charAt(nlSuffix)=='\t'))
nlSuffix--;if(nlSuffix<nlPrefix)
nlSuffix=nlPrefix;if(nlPrefix>0){funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');var s=text.substring(0,nlPrefix).replace('\n','\\n');if(s.charAt(s.length-1)=='\n')
s=s.substring(0,s.length-1);funcText.push(s);funcText.push('");');}
var lines=text.substring(nlPrefix,nlSuffix+1).split('\n');for(var i=0;i<lines.length;i++){emitSectionTextLine(lines[i],funcText);if(i<lines.length-1)
funcText.push('_OUT.write("\\n");\n');}
if(nlSuffix+1<text.length){funcText.push('if (_FLAGS.keepWhitespace == true) _OUT.write("');var s=text.substring(nlSuffix+1).replace('\n','\\n');if(s.charAt(s.length-1)=='\n')
s=s.substring(0,s.length-1);funcText.push(s);funcText.push('");');}}
var emitSectionTextLine=function(line,funcText){var endMarkPrev='}';var endExprPrev=-1;while(endExprPrev+endMarkPrev.length<line.length){var begMark="${",endMark="}";var begExpr=line.indexOf(begMark,endExprPrev+endMarkPrev.length);if(begExpr<0)
break;if(line.charAt(begExpr+2)=='%'){begMark="${%";endMark="%}";}
var endExpr=line.indexOf(endMark,begExpr+begMark.length);if(endExpr<0)
break;emitText(line.substring(endExprPrev+endMarkPrev.length,begExpr),funcText);var exprArr=line.substring(begExpr+begMark.length,endExpr).replace(/\|\|/g,"#@@#").split('|');for(var k in exprArr){if(exprArr[k].replace)
exprArr[k]=exprArr[k].replace(/#@@#/g,'||');}
funcText.push('_OUT.write(');emitExpression(exprArr,exprArr.length-1,funcText);funcText.push(');');endExprPrev=endExpr;endMarkPrev=endMark;}
emitText(line.substring(endExprPrev+endMarkPrev.length),funcText);}
var emitText=function(text,funcText){if(text==null||text.length<=0)
return;text=text.replace(/\\/g,'\\\\');text=text.replace(/\n/g,'\\n');text=text.replace(/"/g,'\\"');funcText.push('_OUT.write("');funcText.push(text);funcText.push('");');}
var emitExpression=function(exprArr,index,funcText){var expr=exprArr[index];if(index<=0){funcText.push(expr);return;}
var parts=expr.split(':');funcText.push('_MODIFIERS["');funcText.push(parts[0]);funcText.push('"](');emitExpression(exprArr,index-1,funcText);if(parts.length>1){funcText.push(',');funcText.push(parts[1]);}
funcText.push(')');}
var cleanWhiteSpace=function(result){result=result.replace(/\t/g,"    ");result=result.replace(/\r\n/g,"\n");result=result.replace(/\r/g,"\n");result=result.replace(/^(\s*\S*(\s+\S+)*)\s*$/,'$1');return result;}
var scrubWhiteSpace=function(result){result=result.replace(/^\s+/g,"");result=result.replace(/\s+$/g,"");result=result.replace(/\s+/g," ");result=result.replace(/^(\s*\S*(\s+\S+)*)\s*$/,'$1');return result;}
TrimPath.parseDOMTemplate=function(elementId,optDocument,optEtc){if(optDocument==null)
optDocument=document;var element=optDocument.getElementById(elementId);var content=element.value;if(content==null)
content=element.innerHTML;content=content.replace(/&lt;/g,"<").replace(/&gt;/g,">");return TrimPath.parseTemplate(content,elementId,optEtc);}
TrimPath.processDOMTemplate=function(elementId,context,optFlags,optDocument,optEtc){return TrimPath.parseDOMTemplate(elementId,optDocument,optEtc).process(context,optFlags);}})();
var xVal=xVal||{};xVal.Plugins=xVal.Plugins||{};xVal.Messages=xVal.Messages||{};xVal.AttachValidator=function(elementPrefix,rulesConfig,pluginName){if(pluginName!=null)
this.Plugins[pluginName].AttachValidator(elementPrefix,rulesConfig);else
for(var key in this.Plugins){this.Plugins[key].AttachValidator(elementPrefix,rulesConfig);return;}};var Page_Validators;var Page_ValidationActive;xVal.Plugins["AspNetNative"]={AttachValidator:function(elementPrefix,rulesConfig){Page_Validators=Page_Validators||new Array();for(var i=0;i<rulesConfig.Fields.length;i++){var fieldName=rulesConfig.Fields[i].FieldName;var fieldRules=rulesConfig.Fields[i].FieldRules;var elemId=this._makeAspNetMvcHtmlHelperID((elementPrefix?elementPrefix+".":"")+fieldName);var elem=document.getElementById(elemId);if(elem){for(var j=0;j<fieldRules.length;j++){var ruleName=fieldRules[j].RuleName;var ruleParams=fieldRules[j].RuleParameters;var errorText=(typeof(fieldRules[j].Message)=='undefined'?null:fieldRules[j].Message);this._attachRuleToDOMElement(ruleName,ruleParams,errorText,elem,elementPrefix);}}}
Page_ValidationActive=false;if(typeof(ValidatorOnLoad)=="function")
ValidatorOnLoad();},_makeAspNetMvcHtmlHelperID:function(fullyQualifiedModelName){return fullyQualifiedModelName.replace(".","_");},_attachRuleToDOMElement:function(ruleName,ruleParams,errorText,element,elementPrefix){var ruleConfig=this._getAspNetRuleConfig(ruleName,ruleParams,errorText,elementPrefix);if(ruleConfig==null)
return;var parentForm=element;while(parentForm.tagName!="FORM"){parentForm=parentForm.parentNode;if(parentForm==null)
alert("Error: Element "+element.id+" is not in a form");}
this._ensureValidationEnabledOnForm(parentForm);var messageContainer=this._createMessageContainer(element,ruleConfig.errorMessage);Page_Validators[Page_Validators.length]=messageContainer;messageContainer.controltovalidate=element.id;messageContainer.errormessage=ruleConfig.errorMessage;messageContainer.display="Dynamic";messageContainer.evaluationfunction=ruleConfig.evaluationFunction;for(var i=0;i<ruleConfig.params.length;i++)
messageContainer[ruleConfig.params[i].name]=ruleConfig.params[i].value;},_formatString:function(pattern,params){for(var i=0;i<params.length;i++)
pattern=pattern.replace("{"+i+"}",params[i]||"");return pattern;},_formatDate:function(date){var result=date.getFullYear()+"-"+(date.getMonth()+1)+"-"+date.getDate();if(date.getHours()+date.getMinutes()+date.getSeconds()!=0)
result+=" "+date.getHours()+":"+date.getMinutes()+":"+date.getSeconds();return result.replace(/\b(\d)\b/g,'0$1');},_getAspNetRuleConfig:function(ruleName,ruleParams,fixedErrorText,elementPrefix){switch(ruleName){case"Required":return{evaluationFunction:"RequiredFieldValidatorEvaluateIsValid",params:[{name:"initialvalue",value:""}],errorMessage:fixedErrorText||xVal.Messages.Required||"Please enter a value."};case"Range":var message;var min=null,max=null;var messageParams=[];if(ruleParams.Type!="datetime"){min=typeof(ruleParams.Min)=='undefined'?null:ruleParams.Min;max=typeof(ruleParams.Max)=='undefined'?null:ruleParams.Max;if(min!=null)messageParams.push(min);if(max!=null)messageParams.push(max);}else{if(typeof(ruleParams.MinYear)!='undefined')
min=new Date(ruleParams.MinYear,ruleParams.MinMonth-1,ruleParams.MinDay,ruleParams.MinHour,ruleParams.MinMinute,ruleParams.MinSecond);if(typeof(ruleParams.MaxYear)!='undefined')
max=new Date(ruleParams.MaxYear,ruleParams.MaxMonth-1,ruleParams.MaxDay,ruleParams.MaxHour,ruleParams.MaxMinute,ruleParams.MaxSecond);if(min!=null)messageParams.push(this._formatDate(min));if(max!=null)messageParams.push(this._formatDate(max));}
var defaultMessageSet=(ruleParams.Type=="datetime")?[xVal.Messages.Range_DateTime_Min,xVal.Messages.Range_DateTime_Max,xVal.Messages.Range_DateTime_MinMax]:(ruleParams.Type=="string")?[xVal.Messages.Range_String_Min,xVal.Messages.Range_String_Max,xVal.Messages.Range_String_MinMax]:[xVal.Messages.Range_Numeric_Min,xVal.Messages.Range_Numeric_Max,xVal.Messages.Range_Numeric_MinMax];defaultMessageSet[0]=defaultMessageSet[0]||"Please enter a value of at least {0}.";defaultMessageSet[1]=defaultMessageSet[1]||"Please enter a value no more than {0}.";defaultMessageSet[2]=defaultMessageSet[2]||"Please enter a value between {0} and {1}.";message=(min!=null)?((max!=null)?defaultMessageSet[2]:defaultMessageSet[1]):defaultMessageSet[1];var aspNetNativeType=ruleParams.Type=="string"?"String":ruleParams.Type=="integer"?"Integer":ruleParams.Type=="decimal"?"Double":ruleParams.Type=="datetime"?"Date":alert("Unknown range type:"+ruleParams.Type);if(aspNetNativeType!="Date"){min=""+(min||Number.MIN_VALUE);max=""+(max||Number.MAX_VALUE);}
return{evaluationFunction:ruleParams.Type!="datetime"?"RangeValidatorEvaluateIsValid":"xVal_AspNetNative_Range_DateTime",params:[{name:"decimalchar",value:"."},{name:"type",value:aspNetNativeType},{name:"minimumvalue",value:min},{name:"maximumvalue",value:max}],errorMessage:this._formatString(fixedErrorText||message,messageParams)};case"RegEx":return{evaluationFunction:"xVal_AspNetNative_RegEx",params:[{name:"pattern",value:ruleParams.Pattern},{name:"options",value:typeof(ruleParams.Options)=='undefined'?"":ruleParams.Options}],errorMessage:fixedErrorText||xVal.Messages.Regex||"Please enter a valid value."};case"StringLength":var min=typeof(ruleParams.MinLength)=='undefined'?null:ruleParams.MinLength;var max=typeof(ruleParams.MaxLength)=='undefined'?null:ruleParams.MaxLength;var messageParams=[];if(min!=null)messageParams.push(min);if(max!=null)messageParams.push(max);var pattern="^.{"+(min||"0")+","+(max||"")+"}$";var message;if(min!=null){if(max!=null)
message=xVal.Messages.StringLength_MinMax||"Please enter a value between {0} and {1} characters long.";else
message=xVal.Messages.StringLength_Min||"Please enter a value at least {0} characters long.";}
else
message=xVal.Messages.StringLength_Max||"Please enter a value no more than {0} characters long.";return{evaluationFunction:"xVal_AspNetNative_RegEx",params:[{name:"pattern",value:pattern},{name:"options",value:""}],errorMessage:this._formatString(fixedErrorText||message,messageParams)};case"DataType":if(ruleParams.Type=="CreditCardLuhn"){return{evaluationFunction:"xVal_AspNetNative_CreditCardLuhn",params:[],errorMessage:fixedErrorText||xVal.Messages.DataType_CreditCardLuhn||"Please enter a valid credit card number."};}
var pattern,message;switch(ruleParams.Type){case"EmailAddress":pattern="^[\\w\\.=-]+@[\\w\\.-]+\\.[\\w]{2,}$";message=xVal.Messages.DataType_EmailAddress||"Please enter a valid email address.";break;case"Integer":pattern="^\\-?\\d+$";message=xVal.Messages.DataType_Integer||"Please enter a number.";break;case"Decimal":pattern="^\\-?\\d+(\\.\\d+)?$";message=xVal.Messages.DataType_Decimal||"Please enter a decimal number.";break;case"Date":pattern="^(\\d{1,2}[/\\-\\.\\s]\\d{1,2}[/\\-\\.\\s](\\d{2}|\\d{4}))|((\\d{2}|\\d{4})[/\\-\\.\\s]\\d{1,2}[/\\-\\.\\s]\\d{1,2})$";message=xVal.Messages.DataType_Date||"Please enter a valid date.";break;case"DateTime":pattern="^(\\d{1,2}[/\\-\\.\\s]\\d{1,2}[/\\-\\.\\s](\\d{2}|\\d{4}))|((\\d{2}|\\d{4})[/\\-\\.\\s]\\d{1,2}[/\\-\\.\\s]\\d{1,2})\\s+\\d{1,2}\\:\\d{2}(\\:\\d{2})?$";message=xVal.Messages.DataType_DateTime||"Please enter a valid date and time.";break;case"Currency":pattern="^\\-?\\D?\\s?\\-?\\s?([0-9]{1,3},([0-9]{3},)*[0-9]{3}|[0-9]+)(.[0-9][0-9])?$";message=xVal.Messages.DataType_Currency||"Please enter a currency value.";break;}
return{evaluationFunction:"xVal_AspNetNative_RegEx",params:[{name:"pattern",value:pattern},{name:"options",value:"i"}],errorMessage:fixedErrorText||message};case"Comparison":var elemToCompareId=this._makeAspNetMvcHtmlHelperID((elementPrefix?elementPrefix+".":"")+ruleParams.PropertyToCompare);if(document.getElementById(elemToCompareId)==null)
return;var operator=ruleParams.ComparisonOperator=="Equals"?"Equal":ruleParams.ComparisonOperator=="DoesNotEqual"?"NotEqual":null;if(operator==null)
return;var message;if(ruleParams.ComparisonOperator=="Equals")
message=xVal.Messages.Comparison_Equals||"This value must be the same as {0}.";if(ruleParams.ComparisonOperator=="DoesNotEqual")
message=xVal.Messages.Comparison_DoesNotEqual||"This value must be different from {1}.";return{evaluationFunction:"CompareValidatorEvaluateIsValid",params:[{name:"controltocompare",value:elemToCompareId},{name:"operator",value:operator}],errorMessage:this._formatString(fixedErrorText||message,[ruleParams.PropertyToCompare])};case"Custom":var ruleFunction=this._parseAsFunctionWithWarnings(ruleParams.Function);if(ruleFunction!=null){var evaluatedParams=ruleParams.Parameters=="null"?null:eval("("+ruleParams.Parameters+")");return{evaluationFunction:"xVal_AspNetNative_CustomJavaScriptFunction",params:[{name:"ruleFunction",value:ruleFunction},{name:"params",value:evaluatedParams}],errorMessage:fixedErrorText||message};}
break;}
return null;},_parseAsFunctionWithWarnings:function(functionString){var result;try{result=eval("("+functionString+")")}
catch(ex){alert("Custom rule error: Could not find or could not parse the function '"+functionString+"'");return null;}
if(typeof(result)!='function'){alert("Custom rule error: The JavaScript object '"+functionString+"' is not a function.");return null;}
return result;},_hideElementOnChange:function(elementToWatch,elementToHide){var handler=function(){elementToHide.style.display="none";};if(elementToWatch.addEventListener)
elementToWatch.addEventListener('change',handler,false);else
elementToWatch.attachEvent('onchange',handler);},_createMessageContainer:function(element,initialText){var insertAfterElem=element;var spans=document.getElementsByTagName("SPAN");for(var i=0;i<spans.length;i++){if(spans[i].getAttribute("htmlfor")==element.id){insertAfterElem=spans[i];this._hideElementOnChange(element,insertAfterElem);break;}}
var result=document.createElement("span");result.id=element.id+"_Msg";result.innerHTML=initialText;result.style.color="Red";result.style.display="none";if(insertAfterElem.nextSibling)
insertAfterElem.parentNode.insertBefore(result,insertAfterElem.nextSibling);else
insertAfterElem.parentNode.appendChild(result);return result;},_ensureValidationEnabledOnForm:function(formElement){if(!formElement._xVal_ValidationEnabledOnForm){formElement._xVal_ValidationEnabledOnForm=true;formElement.onsubmit=function(){return(Page_ValidationActive?ValidatorCommonOnSubmit():false);};var inputControls=formElement.getElementsByTagName("INPUT");for(var i=0;i<inputControls.length;i++){if(inputControls[i].type&&(inputControls[i].type.toLowerCase()=='submit')){inputControls[i].onclick=function(){WebForm_DoPostBackWithOptions(new WebForm_PostBackOptions(this.name||this.id||"","",true,"","",false,false));};}}}}};function xVal_AspNetNative_RegEx(val){var value=ValidatorGetValue(val.controltovalidate);if(ValidatorTrim(value).length==0)
return true;var regex=val.options==""?new RegExp(val.pattern):new RegExp(val.pattern,val.options);return regex.test(value);}
function xVal_AspNetNative_Range_DateTime(val){var value=ValidatorGetValue(val.controltovalidate);if(ValidatorTrim(value).length==0)
return true;var min=val.minimumvalue;var max=val.maximumvalue;var parsedValue=Date.parse(value);if(isNaN(parsedValue))
return false;else
parsedValue=new Date(parsedValue);if(min!=null)
if(parsedValue<min)return false;if(max!=null)
if(parsedValue>max)return false;return true;}
function xVal_AspNetNative_CreditCardLuhn(val){var value=ValidatorGetValue(val.controltovalidate);if(ValidatorTrim(value).length==0)
return true;value=value.replace(/\D/g,"");if(value=="")return false;var sum=0;for(var i=value.length-2;i>=0;i-=2)
sum+=Array(0,2,4,6,8,1,3,5,7,9)[parseInt(value.charAt(i),10)];for(var i=value.length-1;i>=0;i-=2)
sum+=parseInt(value.charAt(i),10);return(sum%10)==0;}
function xVal_AspNetNative_CustomJavaScriptFunction(context){var value=ValidatorGetValue(context.controltovalidate);if(ValidatorTrim(value).length==0)
return true;return context.ruleFunction(value,context.controltovalidate,context.params);}
MundiaLogger=new Class({initialize:function(logLevel){this.LEVEL_DEBUG=5;this.LEVEL_INFO=4;this.LEVEL_WARN=3;this.LEVEL_ERROR=2;this.LEVEL_FATAL=1;this.LEVEL_NAMES=['','Fatal','Error','Warn','Info','Debug'];this._logLevel=logLevel;},debug:function(message){this._log(message,this.LEVEL_DEBUG);},info:function(message){this._log(message,this.LEVEL_INFO);},warn:function(message){this._log(message,this.LEVEL_WARN);},error:function(message,err){this._log(message,this.LEVEL_ERROR,err);},fatal:function(message,err){this._log(message,this.LEVEL_FATAL,err);},_log:function(message,logLevel,err){if(logLevel<=this._logLevel){var logMessage=message;var lineNumber=0;if(err){logMessage+='\n \t\t';if(err.name){logMessage+=err.name+': ';}
logMessage+=err.message;if(err.lineNumber){lineNumber=err.lineNumber;}
else if(err.line){lineNumber=err.line;}
else if(err.number){lineNumber=err.number;}}
if(this._logLevel===this.LEVEL_DEBUG){switch(logLevel){case this.LEVEL_DEBUG:console.debug(logMessage);break;case this.LEVEL_INFO:console.info(logMessage);break;case this.LEVEL_WARN:console.warn(logMessage);break;case this.LEVEL_ERROR:if(!err){console.error(logMessage);}
break;case this.LEVEL_FATAL:if(!err){console.error(logMessage);}
break;default:break;}}
var request=new Request({url:'/'+Page.ViewData["CountryCode"]+'/Log/'+this.getLevelName(logLevel),method:'post'});var data=new Hash({message:logMessage,url:window.location.href,line:lineNumber});request.send(data.toQueryString());}},getLevelName:function(logLevel){var levelName='';if(logLevel>0&&logLevel<this.LEVEL_NAMES.length){levelName=this.LEVEL_NAMES[logLevel];}
return levelName;}});if(typeof(console)=='undefined'){console={log:function(){},debug:function(){},info:function(){},warn:function(){},error:function(){}};}
var Log=new MundiaLogger(g_logLevel);window.onerror=function(message,url,line){Log.error('Unhandled client page error.',{message:message,lineNumber:line});};
var Mundia={namespaces:function(){var a=arguments,o=null,i,j,d;for(i=0;i<a.length;i=i+1){d=(""+a[i]).split(".");o=Mundia;for(j=(d[0]==="Mundia")?1:0;j<d.length;j=j+1){o[d[j]]=o[d[j]]||{};o=o[d[j]];}}
return o;}};var $isEmpty=function(value){var isEmpty=true;if($hasValue(value)&&value.toString().trim().length>0){isEmpty=false;}
return isEmpty;};var $hasValue=function(obj){return obj!==undefined&&obj!==null&&obj!=='';};Function.implement({bindWithArgs:function(){var bindArgs=Array.slice(arguments);var bind=Array.shift(bindArgs);var self=this;return function(){var args=Array.slice(arguments).extend(bindArgs);var returns=function(){return self.apply(bind||null,args);};return returns();};}});var $mootools=$;if(typeof(SVGAnimatedString)!='undefined'){SVGAnimatedString.prototype.contains=function(value){return false;};}
Element.implement({containsPoint:function(x,y){var isContained=false;var coord=this.getCoordinates();if(x>=coord.left&&x<=coord.right&&y>=coord.top&&y<=coord.bottom){isContained=true;}
return isContained;},get_visible:function(){return!this.hasClass('hidden');},set_visible:function(visible){if(visible){this.removeClass('hidden');}
else{this.addClass('hidden');}}});Class.Mutators.Binds=function(binds){return binds;};Class.Mutators.initialize=function(initialize){return function(){$splat(this.Binds).each(function(name){var original=this[name];if(original){this[name]=original.bind(this);}},this);return initialize.apply(this,arguments);};};Array.prototype.remove=function(from,to){var rest=this.slice((to||from)+1||this.length);this.length=from<0?this.length+from:from;return this.push.apply(this,rest);};
Mundia.MessageBox={Icon:{Error:1,Warning:2,Information:3,Question:4},_dialog:null,showError:function(text,caption){this.show(text,caption,this.Icon.Error);},show:function(text,caption,icon,callback){if(!this._dialog){this._initializeDialog();}
this._dialog.set_message(text);this._dialog.set_title(caption);this._dialog.set_callback(callback);this._dialog.show();},_initializeDialog:function(){this._dialog=new Mundia.controls.MessageBoxDialog('message-box-dialog');this._dialog._preRender();this._dialog._execute();}};
Mundia.Object={QUERY_STRING_START_REGEX:/^[&?]/i,encodeAsQuery:function(obj)
{var query='';if($chk(obj))
{for(var name in obj)
{var type=$type(obj[name]);if(type&&type!=='function'&&type!=='object'&&type!=='array')
{query+=name+'='+obj[name]+'&';}}}
if(query.length>0)
{query=query.replace(/&$/,'');query=encodeURI(query);}
return query;},decodeFromQuery:function(query)
{var valueObj={};if(!$isEmpty(query))
{var pairs=query.replace(this.QUERY_STRING_START_REGEX,'').split('&');for(var i=0;i<pairs.length;i++)
{var keyValue=pairs[i].split('=');valueObj[keyValue[0]]=keyValue[1];}}
return valueObj;},isEmptyOrDefault:function(value,defaultValue,valueType)
{var isEmpty=true;if(!$isEmpty(value))
{if(!$isEmpty(defaultValue))
{if(value!=defaultValue)
{isEmpty=false;}}
else
{var type=this._getJavaScriptType(valueType);if($isEmpty(type))
{type=$type(value);}
switch(type)
{case'string':isEmpty=$isEmpty(value);break;case'number':isEmpty=value===0||value==='0';break;case'boolean':isEmpty=value===false;break;case'array':case'collection':case'arguments':isEmpty=value.length===0;break;default:isEmpty=false;break;}}}
return isEmpty;},_getJavaScriptType:function(valueType)
{var type='';if(!$isEmpty(valueType))
{switch(valueType)
{case'String':type='string';break;case'Boolean':type='boolean';break;case'Int16':case'Int32':case'Int64':case'Double':case'Float':type='number';break;default:break;}}
return type;}};
Mundia.Localizer={DEFAULT_DATA_STORE_KEY:'Default',_dataStores:{},getThousandsSeparator:function(){return',';},addToDataStores:function(dataStores){for(storeKey in dataStores){dataStores[storeKey]=new Hash(dataStores[storeKey]);if(this._dataStores[storeKey]){this._dataStores[storeKey]=dataStores[storeKey].combine(this._dataStores[storeKey]);}
else{this._dataStores[storeKey]=dataStores[storeKey];}}},getString:function(key,dataStore){var value='';var dataStoreKey=dataStore;if($isEmpty(dataStoreKey)){dataStoreKey=this.DEFAULT_DATA_STORE_KEY;}
if(this._dataStores[dataStoreKey]){value=this._dataStores[dataStoreKey][key];}
if($isEmpty(value)&&dataStoreKey!==this.DEFAULT_DATA_STORE_KEY){value=this._dataStores[this.DEFAULT_DATA_STORE_KEY][key];}
if($isEmpty(value)){value=key;}
return value;}};
Mundia.LocalizedFormatter={THOUSANDS_SEPARATOR_REGEX:/(-)/,_thousandsSeparator:',',formatNumber:function(number){var thousandsSeparator=Mundia.Localizer.getThousandsSeparator();number+='';x=number.split('.');x1=x[0];x2=x.length>1?'.'+x[1]:'';var rgx=/(\d+)(\d{3})/;while(rgx.test(x1)){x1=x1.replace(rgx,'$1'+','+'$2');}
return x1+x2;}};
Mundia.Dom={IMAGE_OVER_REGEX:/(\/[^\/]+?)(_over)?(\.[^\.]*)$/i,addCss:function(css){var styleElement=document.createElement("style");styleElement.type="text/css";if(styleElement.styleSheet){styleElement.styleSheet.cssText=css;}else{styleElement.appendChild(document.createTextNode(css));}
document.getElementsByTagName("head")[0].appendChild(styleElement);},parseXml:function(xmlString){var xml=null;try
{xml=new ActiveXObject('Microsoft.XMLDOM');xml.async='false';xml.loadXML(xmlString);}
catch(e)
{try
{var parser=new DOMParser();xml=parser.parseFromString(xmlString,'text/xml');}
catch(e){}}
return xml;},isTagNameUpperCase:function(node){return node.tagName===node.tagName.toUpperCase();},getTagName:function(tagName,isUpperCase){return isUpperCase?tagName.toUpperCase():tagName;},setDefaultButton:function(field,button){var input=$(field);if($chk(input)){input.addEvent("keydown",function(event){if(event.key==="enter"){event.stop();var buttonElement=$(button);if($chk(buttonElement)){buttonElement.fireEvent("click",event);}}});}},changeClass:function(el,isAdd,className){if(isAdd){$(el).addClass(className);}
else{$(el).removeClass(className);}},attachImageMouseOver:function(el){var element=$(el);element.addEvent('mouseover',this._image_mouseOver);element.addEvent('mouseout',this._image_mouseOut);},getMarginAndPaddingOffset:function(element,dimension,scaledContainer,emPerPixel){var emScale=parseFloat(scaledContainer.getStyle('font-size').replace(this.UNITS_REGEX,''));var scaledEmToPixels=emPerPixel*emScale;var margin=element.getStyle('margin-'+dimension);var marginValue=parseFloat(margin.replace(this.UNITS_REGEX,''));if(margin.contains('em')){marginValue=marginValue*scaledEmToPixels;}
var padding=element.getStyle('padding-'+dimension);var paddingValue=parseFloat(padding.replace(this.UNITS_REGEX,''));if(padding.contains('em')){paddingValue=paddingValue*scaledEmToPixels;}
return marginValue+paddingValue;},_image_mouseOver:function(event){var element=$(event.target);var src=element.get('src');if(!$isEmpty(src)){src=src.replace(Mundia.Dom.IMAGE_OVER_REGEX,'$1_over$3');element.set('src',src);}},_image_mouseOut:function(event){var element=$(event.target);var src=element.get('src');if(!$isEmpty(src)){src=src.replace(Mundia.Dom.IMAGE_OVER_REGEX,'$1$3');element.set('src',src);}},escapeHTML:function(str){var div=document.createElement('div');var text=document.createTextNode(str);div.appendChild(text);return div.innerHTML;},submitForm:function(form){var formElement=$(form);var formEvent=new Event({type:'submit',target:formElement,returnValue:true});formElement.fireEvent('submit',formEvent);if(formEvent.event.returnValue){formElement.submit();}
return formEvent.returnValue;},enableFormSubmit:function(formEl,isEnabled){$(formEl).getElements('.submit, input[type=submit]').each(function(element){if(isEnabled){element.disabled=false;element.removeClass('disabled');}
else{element.disabled=true;element.addClass('disabled');}});},clearForm:function(form){var formEl=$(form);formEl.getElements('input[type=text], input[type=file], textarea').each(function(element){element.set('value','');});formEl.getElements('select').each(function(element){element.selectedIndex=0;});formEl.getElements('input[type=checkbox], input[type=radio]').each(function(element){element.checked=false;});formEl.getElements('.validation-notification').each(function(element){element.removeClass('invalid-notification');});formEl.getElements('.validator').each(function(element){element.removeClass('invalid-result');});},getInputType:function(el){var inputType='';var element=$(el);if($hasValue(element)){inputType=element.get('tag');if(inputType=='input'){inputType=element.get('type');}}
return inputType;},readCustomAttributes:function(el,attributes){var element=$(el);for(name in attributes){var value=element.get('tgn:'+name);if(!$isEmpty(value)){attributes[name]=value;}}
return attributes;},appendScript:function(text){var script=document.createElement('script');script.setAttribute('type','text/javascript');script[(Browser.Engine.webkit&&Browser.Engine.version<420)?'innerText':'text']=text;document.head.appendChild(script);},adoptToBody:function(el){var ieBodyEl=$$('.ieBody');if(ieBodyEl.length>0){$(el).inject(ieBodyEl[0]);}
else{$(el).inject(document.body);}}};
Mundia.WebContext={SECURE_SCHEME_REGEX:/^https:/i,SERVICE_EXTENSION:'.svc',initialize:function(standardUrl,secureUrl,staticContentUrl,controllerName,isLoggedIn){this._standardUrl=standardUrl;this._secureUrl=secureUrl;this._staticContentUrl=staticContentUrl;this._controllerName=controllerName;this._isLoggedIn=isLoggedIn;this._isSecure=this.SECURE_SCHEME_REGEX.test(window.location.href);},get_isSecure:function(){return this._isSecure;},get_isLoggedIn:function(){return this._isLoggedIn;},get_currentUrl:function(){var currentUrl='';if(this.get_isSecure()){currentUrl=this.get_secureUrl();}
else{currentUrl=this.get_standardUrl();}
return currentUrl;},get_staticContentUrl:function(){return this._staticContentUrl;},get_standardUrl:function(){return this._standardUrl;},get_secureUrl:function(){return this._secureUrl;},getServiceUrl:function(serviceCall){var parts=serviceCall.split('.');if(parts.length!=2){throw'A service class and method must be specified!';}
var serviceName=parts[0];var method=parts[1];var curUrl=Page.Url.isNameRace()?'http://www.mundialocal.com':this.get_currentUrl();var serviceUrl=curUrl+'/Services/'+serviceName+this.SERVICE_EXTENSION+'/';if(this.get_isSecure()){serviceUrl+='Secure';}
else{serviceUrl+='Standard';}
serviceUrl+='/'+method;return serviceUrl;},get_controllerName:function(){return this._controllerName;},authorize:function(isForceLogin){if(isForceLogin||!this._isLoggedIn){window.location=Page.Url.secureAction('SignIn','Account',{RedirectUrl:window.location.pathname});}
return this._isLoggedIn;}};
Mundia.UrlUtility={WHITESPACE_REGEX:/\s+/ig,DASH_REGEX:/\s*--*\s*/,QUERY_STRING_START_REGEX:/^[^&=]*(\?|$)/,QUERY_STRING_END_REGEX:/\?.*$/,SPACE_CHARACTER_REGEX:/\+/ig,encodeSurname:function(surname){var encoded='';if(!$isEmpty(surname)){encoded=surname.trim();encoded=encoded.replace(this.DASH_REGEX,'--');encoded=encoded.replace(this.WHITESPACE_REGEX,'-');encoded=encodeURIComponent(encoded);}
return encoded;},decodeUri:function(uri){var decoded='';if(!$isEmpty(uri)){decoded=decodeURIComponent(uri.replace(this.SPACE_CHARACTER_REGEX,'%20'));}
return decoded;},mergeParams:function(url,params){var fullUrl=url;if(!$isEmpty(url)){fullUrl=url.toString();var paramHash=new Hash(params);var urlParams=this.getParams(fullUrl);paramHash.combine(urlParams);fullUrl=fullUrl.replace(this.QUERY_STRING_END_REGEX,'')+'?'+paramHash.toQueryString();}
return fullUrl;},getParams:function(url){var params={};if(!$isEmpty(url)){var queryString=url.replace(this.QUERY_STRING_START_REGEX,'');if(!$isEmpty(queryString)){var queryItems=queryString.split('&');if($hasValue(queryItems)){for(var i=0;i<queryItems.length;i++){var param=queryItems[i].split("=");params[param[0]]=this.decodeUri(param[1]);}}}}
return params;},parseUri:function(str){var o=this.parseUri_options,m=o.parser[o.strictMode?"strict":"loose"].exec(str),uri={},i=14;while(i>0){i--;uri[o.key[i]]=m[i]||"";}
uri[o.q.name]={};uri[o.key[12]].replace(o.q.parser,function($0,$1,$2){if($1){uri[o.q.name][$1]=$2;}});return uri;},parseUri_options:{strictMode:false,key:["source","protocol","authority","userInfo","user","password","host","port","relative","path","directory","file","query","anchor"],q:{name:"queryKey",parser:/(?:^|&)([^&=]*)=?([^&]*)/g},parser:{strict:/^(?:([^:\/?#]+):)?(?:\/\/((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?))?((((?:[^?#\/]*\/)*)([^?#]*))(?:\?([^#]*))?(?:#(.*))?)/,loose:/^(?:(?![^:@]+:[^:@\/]*@)([^:\/?#.]+):)?(?:\/\/)?((?:(([^:@]*)(?::([^:@]*))?)?@)?([^:\/?#]*)(?::(\d*))?)(((\/(?:[^?#](?![^?#\/]*\.[^?#\/.]+(?:[?#]|$)))*\/?)?([^?#\/]*))(?:\?([^#]*))?(?:#(.*))?)/}}};
Mundia.UrlHelper=new Class({initialize:function(controllerName){},standardAction:function(actionName,controllerName,routeValues){return Mundia.WebContext.get_standardUrl()+this.action(actionName,controllerName,routeValues);},secureAction:function(actionName,controllerName,routeValues){return Mundia.WebContext.get_secureUrl()+this.action(actionName,controllerName,routeValues);},staticContent:function(contentUrl){return Mundia.WebContext.get_staticContentUrl()+contentUrl;},isExternal:function(){var path=Mundia.UrlUtility.parseUri(window.location.href).path;if((path.toLowerCase().match(/^\/external\//))){return true;}
return false;},isNameRace:function(){var hostArray=Mundia.UrlUtility.parseUri(window.location.href).host.split('.');var host;if(hostArray.length>2){host=hostArray[1];}
else{host=hostArray[0];}
if(host.toLowerCase().match(/^mundianamerace/)||host.toLowerCase().match(/^namerace/)){return true;}
return false;},_addExternalName:function(path){if((path.toLowerCase().match(/^external/))){return path;}
return'/External'+path;},action:function(actionName,controllerName,routeValues){var url='';var controller=controllerName;if($isEmpty(controller)){controller=Mundia.WebContext.get_controllerName();}
var lowerController=controller.toLowerCase();var lowerAction=actionName.toLowerCase();if(lowerController==='tree'&&lowerAction==='family'){var pidAndTid='';if($hasValue(routeValues)&&$chk(routeValues.tid)&&$chk(routeValues.pid)){pidAndTid='/'+routeValues.tid+'/'+routeValues.pid;}
url='/'+controller+pidAndTid+
this._getQueryString(routeValues,{tid:true,pid:true});}else if(lowerController==='tree'&&lowerAction==='pedigree'){var personIdAndTreeId='';if($hasValue(routeValues)&&$chk(routeValues.tid)&&$chk(routeValues.pid)){personIdAndTreeId='/'+routeValues.tid+'/'+routeValues.pid;}
url='/'+controller+'/'+actionName+personIdAndTreeId+
this._getQueryString(routeValues,{tid:true,pid:true});}
else if(lowerController==='person'&&lowerAction==='index'){url='/'+controller+'/'+routeValues.tid+'/'+routeValues.pid+
this._getQueryString(routeValues,{tid:true,pid:true});}
else if(lowerController==='tree'&&lowerAction==='hintmerge'){var personAndTreeId='';if($hasValue(routeValues)&&$chk(routeValues.tid)&&$chk(routeValues.pid)){personAndTreeId='/'+routeValues.tid+'/'+routeValues.pid;}
url='/'+controller+'/'+actionName+personAndTreeId+
this._getQueryString(routeValues,{tid:true,pid:true});}
else if(lowerController==='tree'&&lowerAction==='selectself'){url='/'+controller+'/'+actionName+'/'+routeValues.treeId+
this._getQueryString(routeValues,{treeId:true});}
else{url='/'+controller+'/'+actionName+this._getQueryString(routeValues);}
url='/'+Page.ViewData["CountryCode"]+url;if(this.isExternal()){return this._addExternalName(url);}
return url;},_getQueryString:function(routeValues,ignoreValues){var queryString='';var queryValues={};if(ignoreValues){for(var name in routeValues){if(!ignoreValues[name]){queryValues[name]=routeValues[name];}}}
else{queryValues=routeValues;}
queryString=Mundia.Object.encodeAsQuery(queryValues);if(!$isEmpty(queryString)){queryString='?'+queryString;}
return queryString;},correctPath:function(href,alertOnly){var path=Mundia.UrlUtility.parseUri(href).path.toLowerCase();if(Page.Url.isExternal()){return this.forceExternal(href,alertOnly);}
else{return path;}},forceExternal:function(href,alertOnly){var path=Mundia.UrlUtility.parseUri(href).path.toLowerCase();if(path.match('^/external/')=='/external/'){return path;}
else{if(alertOnly&&Page.ViewData["AlertBadLinks"]){alert("Local Envirnment Warning: link ("+path+") is not external -- see console in firebug for output");console.log('path: '+path);return path;}
else if(alertOnly){return path;}
return"/External"+path;}},adjustLinksInsideElement:function(elementId,correctPath,forceExternal,alertOnly){if($(elementId)){$(elementId).getElements('a').each(function(link){var parsedUri=Mundia.UrlUtility.parseUri(link.get('href'));if(!link.get('href')||(link.get('href').match('^#')=='#')||(link.get('href').match('^javascript')=='javascript')||(link.get('target')==='_blank')){return;}
if(!$isEmpty(parsedUri.host)){if(alertOnly&&link.get('href')&&!link.get('href').test('mundia[a-z]*\.com','i')){if(Page.ViewData["AlertBadLinks"]){alert("Local Envirnment Warning: link isn't in mundia domain and doesn't have target=_blank -- potential facebook problem");console.log(link);}
return;}
else if(link.get('href')&&!link.get('href').test('mundia[a-z]*\.com','i')){link.set('target','_blank');return;}}
if(forceExternal){link.set('href',Page.Url.forceExternal(link.get('href'),alertOnly)+"?"+parsedUri.query);}
else if(correctPath){link.set('href',Page.Url.correctPath(link.get('href'),alertOnly)+"?"+parsedUri.query);}});}}});
Mundia.StringParser={parseBool:function(value){var parsedValue=null;if(!$isEmpty(value)){var compareValue=value.trim().toLowerCase();if(compareValue==='true'||compareValue==='1'){parsedValue=true;}
else if(compareValue==='false'||compareValue==='0'){parsedValue=false;}}
return parsedValue;}};
Mundia.ValidationManager={_validatorTypes:{},_validatorCounts:{},generateValidatorId:function(fieldName,validatorType){var id=fieldName+'_'+validatorType;if(this._validatorCounts[id]){this._validatorCounts[id]++;id+=this._validatorCounts[id];}
else{this._validatorCounts[id]=1;}
return id;},registerValidator:function(name,type){this._validatorTypes[name]=type;},getInputElement:function(fieldName){var inputElement=$$('[name='+fieldName+']')[0];if(!inputElement){inputElement=$(fieldName.replace('.','_'));}
return inputElement;},getFieldName:function(modelPrefix,propertyName){return(modelPrefix==='Default'||$isEmpty(modelPrefix)?'':modelPrefix+'.')+propertyName;},createValidator:function(modelPrefix,validatorParams){var validator=null;validatorParams.FieldName=(modelPrefix!='Default'?modelPrefix+'.':'')+validatorParams.PropertyName;var type=this._validatorTypes[validatorParams.ValidatorType];if(type){validator=new type(validatorParams);}
return validator;},validateForm:function(form){var isValid=true;var allValidators=Page.validators;var inputs=$(form).getElements('input[type=text], input[type=checkbox], input[type=radio], textarea, select');if(inputs){for(var i=0;i<inputs.length;i++){var inputName=inputs[i].get('name');var fieldValidators=allValidators[inputName];if(fieldValidators){var isFieldValid=true;for(var v=0;isFieldValid&&v<fieldValidators.length;v++){var validator=fieldValidators[v];if(validator&&!validator.validate()){isFieldValid=false;isValid=false;}}}}}
var validationSummary=$$('.validates-'+$(form).get('id'))[0];if(validationSummary){if(isValid){validationSummary.removeClass('invalid-notification');}
else{validationSummary.addClass('invalid-notification');}}
return isValid;},attachValidationToForms:function(){var forms=$$('form');if(forms){for(var i=0;i<forms.length;i++){var form=forms[i];if(!form.retrieve('hasValidation')&&!form.hasClass('manual-validation')){form.addEvent('submit',this._form_validateSubmit.bindWithEvent(this));form.store('hasValidation',true);}}}},_form_validateSubmit:function(event){if(!this.validateForm(event.target)){event.stop();}}};
Mundia.namespaces("controls");Mundia.controls.LanguageSelect=new Class({name:'',initialize:function(nameOfControl){this.name=nameOfControl;}});
Mundia.namespaces('controls');Mundia.controls.Control=new Class({Implements:Events,initialize:function(elementId){this._elementId=elementId;this._element=null;this._isRendered=false;this._isPreRendered=false;this._parent=null;},get_parent:function(){return this._parent;},set_parent:function(control){this._parent=control;},get_elementId:function(){return this._elementId;},get_element:function(){return this._element;},get_isRendered:function(){return this._isRendered;},get_isPreRendered:function(){return this._isPreRendered;},update:function(){},_execute:function(){if(!this._isPreRendered){this._preRender();}
this._render();this._attachEvents();},_preRender:function(){this._isPreRendered=true;},_render:function(){this._element=$(this._elementId);this._isRendered=true;},_attachEvents:function(){}});
Mundia.namespaces('controls');Mundia.controls.ContainerControl=new Class({Extends:Mundia.controls.Control,initialize:function(elementId){this.parent(elementId);this.controls={};},getChildElementId:function(childId){return this.get_elementId()+'-'+childId;},getChildElement:function(childId){return $(this.getChildElementId(childId));},update:function(){for(var name in this.controls){this.controls[name].update();}},_preRender:function(){this.parent();this._createControls();this._preRenderControls();},_execute:function(){this.parent();this._executeControls();},_createControls:function(){},_preRenderControls:function(){for(var name in this.controls){var control=this.controls[name];control.set_parent(this);control._preRender();}},_executeControls:function(){for(var name in this.controls){this.controls[name]._execute();}}});
Mundia.controls.Dialog=new Class({Extends:Mundia.controls.ContainerControl,DOCUMENT_NODE_TYPE:9,PROCESSING_INSTRUCTION_NODE_TYPE:7,DOCUMENT_TYPE_NODE_TYPE:10,SIGNIN_PAGE_REGEX:/^\s*<!--MUNDIA_SIGNIN-->/,HTML_TAG_REGEX:/(<\/?html>)|(<\/?head>)|(<\/?body>)*/ig,HTML_TAG_REDIRECT:/^\s*<\?xml-stylesheet\s/i,JSON_REGEX:/^\s*[{\[]/,initialize:function(elementId,viewUrl,width,height){this.parent(elementId);this._viewUrl=viewUrl;this._originalViewUrl=viewUrl;this._originalParams='';this._width=($chk(width)?width:300);this._height=($chk(height)?height:200);this._loadingImage;this._overlayElementId=elementId+'_overlay';this._overlayElement;this._isLoaded=false;this.showAfterLoad=false;this.method='get';this._onLoadComplete=null;},get_isLoaded:function(){return this._isLoaded;},_execute:function(){this._render();},_render:function(){this._overlayElement=new Element('div',{'id':this._overlayElementId,'class':'dialog-overlay','opacity':0.6});this._loadingImage=new Element('img',{'id':'loadingImg','src':Page.Url.staticContent("/images/circle_green_clockwise.gif"),'styles':{'top':'50%','left':'50%','position':'relative'}});this._overlayElement.adopt(this._loadingImage);Mundia.Dom.adoptToBody(this._overlayElement);var dialogElement=new Element('div',{'id':this.get_elementId(),'class':'dialog','styles':{'width':'auto','height':'auto','margin-left':(this._width/2)*-1,'margin-top':(this._height/2)*-1}});(function(){if(Page.Url.isExternal()){dialogElement.setStyle('position','fixed');dialogElement.setStyle('top','190px');dialogElement.setStyle('margin-top','');}}.bind(this)).delay(1);Mundia.Dom.adoptToBody(dialogElement);this.parent();},show:function(params,reload,loadonly){if($hasValue(params)){this._originalParams=params;var newUrl=Mundia.UrlUtility.mergeParams(this._originalViewUrl,params);if(newUrl!==this._viewUrl){this._isLoaded=false;this._viewUrl=newUrl;}
else if($hasValue(reload)){if(reload===true){this._isLoaded=false;}}}
else if($hasValue(reload)){if(reload===true){this._isLoaded=false;}}
if(!this.showAfterLoad){if(loadonly===undefined||loadonly===false){this._setVisible(true);}}
if(!this._isLoaded){this.load();this._isLoaded=true;}},hide:function(){this._setVisible(false);},load:function(){this._overlayElement.addClass('loading');this.get_element().set('load',{evalScripts:true,onFailure:this._load_failure.bind(this),onSuccess:this._load_success.bind(this),headers:{'mundia-request-type':'ajax'},method:this.method,noCache:true});if(this.method==='ajax-post'){Mundia.AjaxManager.doSimpleRequest(this._originalViewUrl,this._originalParams,'post',this._postLoadSuccess.bind(this),this._postLoadFailed.bind(this));}
else{this.get_element().load(this._viewUrl);}},_postLoadSuccess:function(text,xml,formEl,success){var element=this.get_element();if($hasValue(element)){element.set('html',text);}
this._executeControls();Page.update();if($hasValue(this._onLoadComplete)){this._onLoadComplete();}
this._attachEvents();this._onLoadSuccess();},_postLoadFailed:function(text,xml){this.load_failure(text);},_setVisible:function(makeVisible){var style=makeVisible?'block':'none';this._overlayElement.setStyle('display',style);this.get_element().setStyle('display',style);if(style==='block'){window.scroll(0,0);}},_onLoadSuccess:function(){if(this.showAfterLoad){this._setVisible(true);}
this._overlayElement.removeClass('loading');this._loadingImage.addClass('hidden');},_load_success:function(responseTree,responseElements,responseHTML,responseJavaScript){try{if(this.HTML_TAG_REDIRECT.test(responseHTML)){var url;var responsexml;if(responseTree.length>0){url=responseTree[0].get('url');}
else{responsexml=Mundia.Dom.parseXml(responseHTML);for(var i=0;i<responsexml.childNodes.length;i++){var item=responsexml.childNodes.item(i);var tagName=item.tagName?item.tagName.toLowerCase():item.nodeName.toLowerCase();if(tagName=='redirect'){url=item.getAttribute('url');break;}}}
if(!$isEmpty(url)){window.location=url;}
if(!responsexml){responsexml=Mundia.Dom.parseXml(responseHTML);}
var firstChild=$hasValue(responsexml.firstChild)?responsexml.firstChild:'';var rootElement=responsexml.firstChild.nodeType===this.PROCESSING_INSTRUCTION_NODE_TYPE?responsexml.childNodes.item(1):firstChild;var rootTagName=rootElement.tagName.toLowerCase();if(rootTagName==='errors'){var errorsRoot=rootElement;var errors=new Mundia.ActionErrorCollection(errorsRoot);this.displayErrors(errors.actionPrevented,'ActionPrevented');this.displayErrors(errors.cosmetic,'Cosmetic');this._handleAjaxFailure(null,'Error rendering AJAX views!\nError performing action!','Error Performing Action',null,errors);this._overlayElement.removeClass('loading');return;}}
var regex=/link[^>]*href="([^"]*)"/igm;responseHTML.match(regex);for(i=1;i<10;i++){if($hasValue(RegExp['$'+i])){$(document.head).adopt(new Element('link').set('rel','stylesheet').set('type','text/css').set('href',RegExp['$'+i]));}}
this._executeControls();Page.update();if($hasValue(this._onLoadComplete)){this._onLoadComplete();}
this._attachEvents();this._onLoadSuccess();}
catch(err){var message='Exception while process _load_success.';Mundia.MessageBox.showError('Error retrieving dialog information!','Error Loading Dialog');Log.error(message,err);this._onLoadSuccess();}},displayErrors:function(actionErrors,severity){var errorContainer=null;var severityLower=severity.toLowerCase();if(severityLower==='actionprevented'){errorContainer=$('action-prevented-error-container');}
else if(severityLower==='cosmetic'){errorContainer=$('cosmetic-error-container');}
if(errorContainer&&actionErrors&&actionErrors.length>0){var errorList=errorContainer.getElement('ul');for(var i=0;i<actionErrors.length;i++){var error=actionErrors[i];errorList.appendChild(new Element('li',{html:error.localizedMessage}));}
errorContainer.addClass('has-action-errors');}},_handleAjaxFailure:function(failureFunction,message,caption,xhr,errors){if($hasValue(failureFunction)){failureFunction(xhr,{message:message,caption:caption,errors:errors});}
else if(!errors){Mundia.MessageBox.showError(message,caption);}},_load_failure:function(xhr){Mundia.MessageBox.showError('Error retrieving dialog information!','Error Loading Dialog');}});
Mundia.namespaces("controls");Mundia.controls.UpgradeBrowserDialog=new Class({Extends:Mundia.controls.Dialog,initialize:function(elementId){var viewUrl=Page.Url.standardAction('UpgradeBrowser','Error');this.parent(elementId,viewUrl,475,375);},_attachEvents:function(){this.get_element().getElement('.close-button').addEvent('click',this._closeButton_click.bind(this));},_closeButton_click:function(event)
{event.stop();this.hide();}});
Mundia.namespaces("controls");Mundia.controls.InactiveAccountDialog=new Class({Extends:Mundia.controls.Dialog,initialize:function(elementId){var viewUrl=Page.Url.standardAction('InactiveAccount','Error');this.parent(elementId,viewUrl,350,375);},_attachEvents:function(){$$('.close-button, .cancel').removeEvents();$$('.close-button, .cancel').addEvent('click',function(event){event.stop();if(!Page.Url.isExternal()){var facebookC=new Mundia.facebookconnect.FacebookConnect();facebookC.SetOnSuccessAction(function(){document.location.href=Page.Url.standardAction('SignOut','Account');});facebookC.SetOnFailureAction(function(){document.location.href=Page.Url.standardAction('SignOut','Account');});facebookC.FacebookSignout();}
else{window.location.href=window.location.href;}}.bind(this));}});
Mundia.namespaces("sitetracking");Mundia.sitetracking.AsyncEventSender=new Class({Extends:Mundia.controls.Control,initialize:function(){this.parent();},_render:function(){this.parent();},_attachEvents:function(){this.parent();},RegisterDialogEvent:function(dialogName){},RegisterClickEvent:function(description,aTagElement){var s=s_gi(s_account);s.linkTrackVars='events,eVar6';s.eVar6=description;s.events='event2';s.linkTrackEvents='event2';s.tl(aTagElement,'o',aTagElement.id);},RegisterAsyncPostEvent:function(){},RegisterAsyncGetEvent:function(){}});
Mundia.namespaces('controls.localizer');Mundia.namespaces('controls');Mundia.controls.Page=new Class({Extends:Mundia.controls.ContainerControl,initialize:function(){this.parent(document.body);this.properties={};this.ViewData={};this._pageType=null;this._isReady=false;this.Url=new Mundia.UrlHelper();this._submitClickHandler=this._formSubmitLink_click.bindWithEvent(this);this._formSubmitHandler=this._form_submit.bind(this);this._validatorInfo={};this.validators={};this._DisplayedBrowserUpgrade=false;this.properties.surnameBaseUrl='/Surnames/';this.HIDE_POPUP_DELAY=300;this.POPUP_OFFSET={x:-11,y:-28};this.ARROW_OFFSET=15;this.MENU_OFFSET=60;this._hidePopupTimeoutId=null;this._getPopupDataTimeoutId=null;this.GET_DATA_DELAY=500;this._canViewCard=false;this._popupCache={};},_createControls:function(){this.parent();if(!Page.Url.isNameRace()){this.controls.upgradeDialog=new Mundia.controls.UpgradeBrowserDialog('upgrade-browser-dialog');}
if(this.ViewData["inactiveAccount"]){this.controls.inactiveAccountDialog=new Mundia.controls.InactiveAccountDialog('inactive-account-dialog');}
this.controls.externalLinkAdjuster=new Mundia.controls.ExternalLinkAdjuster();this.controls.asyncEventSender=new Mundia.sitetracking.AsyncEventSender();this._createValidators();},_render:function(){this.parent();if(this.ViewData["isLocalizationEditor"]){this.controls.localizationEditor=new Mundia.controls.localizer.Localizer('localization-editor',$('View-Prefix').get('html'));}
if($('hover-card-view')){$(document.body).adopt($('hover-card-view'));}
this._loadDelayedImages.delay(50);},_loadDelayedImages:function(){$$('.delay-image').each(function(image){image.set('src',image.get('tgn:src'));});},_executeControls:function(){this.parent();this._replacePhotosWithFacebookPhotos();if(this.ViewData["isCrowdSourceTranslator"]){if($hasValue(Mundia.controls.crowdsourcer)){this.controls.crowdSourcer=new Mundia.controls.crowdsourcer.CrowdSourcer();}}
this._executeValidators();},_createValidators:function(){for(var modelPrefix in this._validatorInfo){var modelValidators=this._validatorInfo[modelPrefix];for(var i=0;i<modelValidators.length;i++){var validatorParams=modelValidators[i];var fieldName=Mundia.ValidationManager.getFieldName(modelPrefix,validatorParams.PropertyName);var inputElement=Mundia.ValidationManager.getInputElement(fieldName);if(inputElement){if(!this.validators[fieldName]){this.validators[fieldName]=[];}
var validator=Mundia.ValidationManager.createValidator(modelPrefix,validatorParams);this.validators[fieldName].push(validator);}}}
this._validatorInfo={};},_executeValidators:function(){for(var fieldName in this.validators){var validators=this.validators[fieldName];for(var i=0;i<validators.length;i++){var validator=validators[i];if($hasValue(validator)){validator._execute();}}}},_attachEvents:function(){Mundia.ValidationManager.attachValidationToForms();this._wireUpFormSubmits();this._wireUpFacebookLinks();var languageTop=$('language-top');if(languageTop){languageTop.addEvent('change',this._languageSelect_change.bind(this));}
var languageBottom=$('language-bottom');if(languageBottom){languageBottom.addEvent('change',this._languageSelect_change.bind(this));}
this._setupDenyLinks();this._checkClientTimeZone();$$('#action-prevented-error-container .close').addEvent('click',this._actionPreventedErrorClose_click.bind(this));$$('#cosmetic-error-container .minimize').addEvent('click',this._cosmeticErrorMinimize_click.bind(this));$$('#cosmetic-error-container .maximize').addEvent('click',this._cosmeticErrorMaximize_click.bind(this));var hoverCardView=$('hover-card-view');if(hoverCardView){$$('.mundia-hover-card-link').addEvent('mouseover',this._mouseOverHoverLink.bindWithArgs(this,'hovercard'));$$('.mundia-hover-card-link').addEvent('mouseout',this._mouseOutHoverLink.bind(this));hoverCardView.addEvent('mouseout',this._mouseOverHoverView.bind(this));}
if($('hover-card-view')){$('hover-card-view').addEvent('mouseleave',function(event){$('hover-card-view').set_visible(false);});}
(function(){if(this.controls.inactiveAccountDialog){this.controls.inactiveAccountDialog.show();}
else{this.checkVersion();}}.bind(this)).delay(1);},_mouseOverHoverLink:function(event,actionType){this._showHoverCard(event,actionType);},_showHoverCard:function(event,actionType,pid,tid){var popup=$('hover-card-view');var isHoverCard=true;if(actionType=='personinfo'){isHoverCard=false;}
if(popup){var target=$(event.target);if(target.match('a')||(!isHoverCard&&target.match('li'))){this._hidePopupAsync();var customerId=target.get('tgn:customerId');var userId=target.get('tgn:userId');if(customerId||userId||(pid&&tid)){if(this._getPopupDataTimeoutId){clearTimeout(this._getPopupDataTimeoutId);}
var cachedCard=null;var delayTime=this.GET_DATA_DELAY;if(isHoverCard){if(customerId){cachedCard=this._popupCache[customerId];}
if(!cachedCard&&userId){cachedCard=this._popupCache[userId];}}
else{if(pid){cachedCard=this._popupCache[pid];}}
popup.addClass('target-loading-hover-card');this._getLoadingCard();if(cachedCard){$('hover-card-details').set('html',cachedCard);this._getPopupDataTimeoutId=this._showCachedCard.delay(this.GET_DATA_DELAY,this,target);target.addEvent('mouseleave',this._mouseOutHoverLink.bindWithArgs(this,isHoverCard));}
else{if(isHoverCard){this._getPopupDataTimeoutId=this._getHoverCardInfo.delay(this.GET_DATA_DELAY,this,target);target.addEvent('mouseleave',this._mouseOutHoverLink.bindWithArgs(this,isHoverCard));}
else{target.set('tgn:pid',pid);target.set('tgn:tid',tid);this._getPopupDataTimeoutId=this._getPersonInfoCard.delay(this.GET_DATA_DELAY,this,target);popup.addEvent('mouseenter',this._mouseOverHoverView.bind(this));popup.addEvent('mouseleave',this._hideHoverCard);target.addEvent('mouseleave',this._mouseOutHoverLink.bindWithArgs(this,isHoverCard));if($('tagging-dialog-search-results')){$('tagging-dialog-search-results').addEvent('mouseleave',this._hideHoverCard);}}}
var personPosition=target.getPosition();var popupBoxWidth=popup.getSize().x;var position={x:personPosition.x-popupBoxWidth+this.POPUP_OFFSET.x,y:personPosition.y+this.POPUP_OFFSET.y};var arrow=$('hover-card-arrow-id');var boundary=document.body.getSize().x/2;var mouseOverPosition=event.page.x;var toppos=(personPosition.y+this.POPUP_OFFSET.y)+'px';var rightPosVal=((boundary*2)-personPosition.x-this.POPUP_OFFSET.x);var asize=target.getSize().x;if(mouseOverPosition<boundary){rightPosVal=personPosition.x+target.getWidth()+this.ARROW_OFFSET;popup.removeClass('card-arrow-right');popup.addClass('card-arrow-left');var switched=true;}
else{popup.removeClass('card-arrow-left');popup.addClass('card-arrow-right');switched=false;}
var rightpos=rightPosVal+'px';if(!switched){popup.setStyles({top:toppos,left:'auto',right:rightpos});}
else{popup.setStyles({top:toppos,right:'auto',left:rightpos});}}}}},_hideHoverCard:function(){var popup=$('hover-card-view');popup.removeClass('target-loading-hover-card');if(popup){popup.set_visible(false);}},_hideHoverCardAndRemoveTargetClass:function(event){var popup=$('hover-card-view');if(popup){popup.removeClass('target-loading-hover-card');}},_showCachedCard:function(target){var popup=$('hover-card-view');if(popup.hasClass('target-loading-hover-card')){popup.set_visible(true);}},_getHoverCardInfo:function(target){var popup=$('hover-card-view');if(popup.hasClass('target-loading-hover-card')){var customerId=target.get('tgn:customerId');var userId=target.get('tgn:userId');var pid=target.get('tgn:pid');var tid=target.get('tgn:tid');if(customerId||userId){Mundia.AjaxManager.doSimpleGetRequest(Page.Url.action('GetHoverCardInfo','HoverCard'),{customerId:customerId,userId:userId,tid:tid,pid:pid},this._getHoverCardInfoSuccess.bind(this));}}},_getPersonInfoCard:function(target){var popup=$('hover-card-view');if(popup.hasClass('target-loading-hover-card')){var pid=target.get('tgn:pid');var tid=target.get('tgn:tid');if(pid&&tid){Mundia.AjaxManager.doSimpleGetRequest(Page.Url.action('GetPersonInfoCard','HoverCard'),{pid:pid,tid:tid},this._getPersonInfoCardSuccess.bind(this));}}},_getLoadingCard:function(){var outerDiv=new Element('div',{'class':'loading-hover-card'});var innerDiv=new Element('div',{'class':'loading-inner-hover-card'});var img=new Element('img',{'src':Page.Url.staticContent('/images/spinner_24x24_lightbg.gif'),'alt':Mundia.Localizer.getString('Shared.Image.Alt.Loading')});var span=new Element('span').set('html',Mundia.Localizer.getString('Shared.Image.Alt.Loading'));innerDiv.adopt(img);innerDiv.adopt(span);outerDiv.adopt(innerDiv);if($('hover-card-view')&&$('hover-card-details')){$('hover-card-details').empty();$('hover-card-details').adopt(outerDiv);$('hover-card-view').set_visible(true);}},_getPersonInfoCardSuccess:function(){var popup=$('hover-card-view');var tagMenu=$('tagging-menu');var ieBodyEl=$$('.ieBody');if(ieBodyEl.length>0){popup.inject(ieBodyEl[0]);}
popup.set_visible(true);if(tagMenu){var menuCoord=tagMenu.getCoordinates();var containerCoord=$('image-container').getCoordinates();if($('hover-card-arrow-id')){if(menuCoord.left-popup.getSize().x<containerCoord.left){$('hover-card-arrow-id').removeClass('card-arrow-right');$('hover-card-arrow-id').addClass('card-arrow-left');}
else{$('hover-card-arrow-id').addClass('card-arrow-right');$('hover-card-arrow-id').removeClass('card-arrow-left');}}}
var html=$('hover-card-details').get('html');var personId=$('person-popup-member-id').value;this._popupCache[personId]=html;},_getHoverCardInfoSuccess:function(){$('hover-card-view').set_visible(true);var html=$('hover-card-details').get('html');var personId=$('person-popup-member-id').value;this._popupCache[personId]=html;},_mouseOutHoverLink:function(event,isHoverCard){event.stop();var target=$(event.target);if(target.match('a')||(!isHoverCard&&target.match('li'))){if(this._hidePopupTimeoutId){clearTimeout(this._hidePopupTimeoutId);}
this._hidePopupTimeoutId=this._hidePopupAsync.delay(this.HIDE_POPUP_DELAY);}},_mouseOverHoverView:function(event){if(this._hidePopupTimeoutId){clearTimeout(this._hidePopupTimeoutId);}},_hidePopupAsync:function(){if(this._hidePopupTimeoutId){clearTimeout(this._hidePopupTimeoutId);}
if($('hover-card-view')){$('hover-card-view').set_visible(false);}},getInternetExplorerVersion:function()
{var rv=-1;if(navigator.appName=='Microsoft Internet Explorer'){var ua=navigator.appVersion;var re=new RegExp("MSIE ([0-9]{1,}[\.0-9]{0,})");if($hasValue(re.exec(ua))){rv=parseFloat(RegExp.$1);}}
return rv;},checkVersion:function(){if(this._DisplayedBrowserUpgrade===false||this._DisplayedBrowserUpgrade==='false'){var msg="";var ver=this.getInternetExplorerVersion();if(ver>-1&&ver<7.0&&this.ViewData['ViewedUpgradeBrowserDialog']===false&&(!Page.Url.isNameRace())){this.controls.upgradeDialog.show();}}},_setupDenyLinks:function(){$$('a.deny-dialog-link').addEvent('click',this._denyLinkClick.bind(this));$$('a.deny-dialog-link-premium').addEvent('click',this._denyLinkClickPremium.bind(this));},_checkClientTimeZone:function(){var dt=new Date();var tz=-dt.getTimezoneOffset();var dateTimeCookie=Cookie.write('ClientDateTime',dt.toString(),{duration:365});var timeZoneOffsetCookie=Cookie.write('ClientTimeZone',tz.toString(),{duration:365});},_setSelectedEmailFromWindow:function(contact){if($hasValue(this.emailSelectionCallback)){this.emailSelectionCallback(contact);}},_facebookInviteSelected:function(){if($hasValue(this.facebookAuthenticationCallback)){this.facebookAuthenticationCallback();}},_actionPreventedErrorClose_click:function(event){event.stop();var errorContainer=$('action-prevented-error-container');errorContainer.removeClass('has-action-errors');var errorList=$(errorContainer.getElement('ul'));errorList.empty();},_cosmeticErrorMinimize_click:function(event){event.stop();$('cosmetic-error-container').addClass('error-display-minimized');},_cosmeticErrorMaximize_click:function(event){event.stop();$('cosmetic-error-container').removeClass('error-display-minimized');},_formSubmitLink_click:function(event){event.stop();var target=$(event.target);if(target.get('tag')!=='a'){target=target.getParent('a');}
if(!target.hasClass('disabled')){var form=$(event.target).getParent('form');Mundia.Dom.submitForm(form);}},_languageSelect_change:function(event){var selectedCulture=$(event.target.id).get('value');var previousCulture=$('current-culture-field').get('value');if($hasValue(selectedCulture)&&selectedCulture.length>0&&selectedCulture!==previousCulture){Mundia.AjaxManager.send({'culture':selectedCulture},this.Url.action('SetLanguage','Util'),'post',this._updateLanguage.bind(this));}},_updateLanguage:function(){window.location.reload();},set_pageType:function(pageType){this._pageType=pageType;Page._initializeCustomType();},_window_domReady:function(event){this._executePageFlow();this._isReady=true;},_executePageFlow:function(){Page._execute();},_initializeCustomType:function(){if($chk(this._pageType)){var customPage=new this._pageType();for(var name in this.properties){customPage.properties[name]=this.properties[name];}
for(name in this.ViewData){customPage.ViewData[name]=this.ViewData[name];}
for(name in this._validatorInfo){customPage._validatorInfo[name]=this._validatorInfo[name];}
Page=customPage;}
Page._preRender();},addValidators:function(modelPrefix,validators){var prefixKey=modelPrefix;if($isEmpty(prefixKey)){prefixKey='Default';}
var validatorsHash=validators;if(this._validatorInfo[prefixKey]){this._validatorInfo[prefixKey]=validatorsHash.combine(this._validatorInfo[prefixKey]);}
else{this._validatorInfo[prefixKey]=validators;}},_becomeMemberLink_click:function(event){event.stop();this.controls.newAccountJSDialog.show();},_denyLinkClick:function(event){event.stop();var msgelement=$(event.target);var msgparent=msgelement.getParent('.deny-dialog-link');if(msgelement.hasClass('deny-dialog-link')){msgparent=msgelement;}
var returnUrl="";if(msgparent.hasClass('deny-dialog-link')){returnUrl=msgparent.get("href");}
window.location=Page.Url.standardAction('Create','Account',{returnUrl:encodeURIComponent(returnUrl),membershipLevel:'basic',deny:'true'});},_denyLinkClickPremium:function(event){event.stop();var msgelement=$(event.target);var msgparent=msgelement.getParent('.deny-dialog-link-premium');if(msgelement.hasClass('deny-dialog-link-premium')){msgparent=msgelement;}
var returnUrl="";if(msgparent.hasClass('deny-dialog-link-premium')){returnUrl=msgparent.get("href");}
window.location=Page.Url.standardAction('Create','Account',{returnUrl:encodeURIComponent(returnUrl),membershipLevel:'premium',deny:'true'});},_wireUpFacebookLinks:function(){document.body.getElements('.Facebook-attach-or-Signin').each(function(item){item.addEvent('click',function(event){var facebookC=new Mundia.facebookconnect.FacebookConnect();event.preventDefault();var itm=item;if((itm.get('href')!=='#')&&(itm.get('href').toLowerCase().indexOf("facebooksigninpage")<0)){facebookC.SetOnSuccessAction(function(){location.href=itm.get('href');});}
else{facebookC.SetOnSuccessAction(function(){location.reload(true);});}
facebookC.SetOnFailureAction(function(){location.reload(true);});facebookC.FacebookSignin();});});document.body.getElements('.tell-facebook-friends').each(function(item){item.addEvent('click',function(event){event.stop();var facebookC=new Mundia.facebookconnect.FacebookConnect(function(){location.href=Page.Url.standardAction('Import','Contacts');}.bind(this),null,null);facebookC.FacebookSignin();});});},_replacePhotosWithFacebookPhotos:function(){$$('.facebook-photo').each(function(image){var tags=Mundia.Object.decodeFromQuery(image.get('tgn:info'));var preSrc=image.get('src');if(preSrc.test('c.muncn[a-z]*\.com','i')){var facebookId=tags["facebookId"];image.set('src',Page.Url.staticContent('/images/profile-image-loading.gif'));Mundia.AjaxManager.send({},Page.Url.action('GetFacebookProfileImageUrl','Facebook')+'/'+facebookId,'post',this._updateFacebookImage.bindWithArgs(this,image,preSrc));}}.bind(this));},_updateFacebookImage:function(text,xml,a,imageElement,prevUrl){text=JSON.decode(text);if(text.url===""){imageElement.set('src',prevUrl);}
else{imageElement.set('src',text.url);}},_wireUpFormSubmits:function(containerElement){if(!$hasValue(containerElement)){containerElement=document.body;}
$(containerElement).getElements('form').each(function(form){form.removeEvent('submit',Page._formSubmitHandler);form.addEvent('submit',Page._formSubmitHandler);});var count=0;$(containerElement).getElements('.submit').each(function(item){var form=item.getParent('form');if(form){var submitElements=item.getParent('form').getElements('input[type=submit]');if(submitElements.length===0){var submit=new Element('input',{'type':'submit','class':'hidden-submit'});submit.inject(item,'after');}
item.removeEvent('click',Page._submitClickHandler);item.addEvent('click',Page._submitClickHandler);}});},_form_submit:function(event){var target=$(event.target);if(target.get('tag')!=='form'){target=target.getParent('form');}
Mundia.Dom.enableFormSubmit(target,false);},update:function(containerElement){this.parent();Mundia.ValidationManager.attachValidationToForms();this._wireUpFormSubmits(containerElement);this._setupDenyLinks();},updateViewData:function(viewData){for(var key in viewData){this.ViewData[key]=viewData[key];}}});var Page=new Mundia.controls.Page();$(window).addEvent('ourDomReady',Page._window_domReady.bind(Page));
Mundia.namespaces("controls");Mundia.controls.Validator=new Class({Extends:Mundia.controls.Control,initialize:function(validatorParams){this.parent(validatorParams.FieldName);this._errorMessage=validatorParams.ErrorMessage;this._defaultValue=validatorParams.DefaultValue;this._valueType=validatorParams.PropertyType;this._validatorType=validatorParams.ValidatorType;this._validatorId=Mundia.ValidationManager.generateValidatorId(validatorParams.FieldName,this._validatorType);this._inputElement=null;this._isValid=true;},get_validatorId:function(){return this._validatorId;},get_validatorType:function(){return this._validatorType;},get_valueType:function(){return this._valueType;},get_isValid:function(){return this._isValid;},get_defaultValue:function(){return this._defaultValue;},get_errorMessage:function(){return this._errorMessage;},get_inputElement:function(){return this._inputElement;},get_fieldName:function(){return this.get_elementId();},getInputValue:function(){return this.get_inputElement().get('value');},getValidatorClassName:function(){return'validates-'+this.get_fieldName().toLowerCase().replace('.','-');},_render:function(){this.parent();this._element=$$('.'+this.getValidatorClassName())[0];this._inputElement=Mundia.ValidationManager.getInputElement(this.get_fieldName());var validationValues=this._inputElement.retrieve('validationValues');if(!validationValues){validationValues={};this._inputElement.store('validationValues',validationValues);}
validationValues[this._validatorId]={errorMessage:this.get_errorMessage(),isValid:true};},validate:function(){var value=this.getInputValue();this._isValid=this._executeValidate(value);var validationValues=this._inputElement.retrieve('validationValues');validationValues[this._validatorId].isValid=this._isValid;this._applyValidationStyle();return this._isValid;},_applyValidationStyle:function(){var isValid=true;var errorMessage='';var validationValues=this._inputElement.retrieve('validationValues');for(var validatorId in validationValues){if(!validationValues[validatorId].isValid){isValid=false;errorMessage=validationValues[validatorId].errorMessage;}}
if(!isValid){this.get_inputElement().addClass('invalid-field');this.get_element().addClass('invalid-result');this.get_element().set('title',errorMessage);}
else{this.get_inputElement().removeClass('invalid-field');this.get_element().removeClass('invalid-result');}},_executeValidate:function(value){var isValid=true;if(!Mundia.Object.isEmptyOrDefault(value,this.get_defaultValue(),this.get_valueType())){isValid=this._validateValue(value);}
return isValid;},_validateValue:function(value){return true;},_attachEvents:function(){this.parent();var inputElement=this.get_inputElement();this._attachValidationEvents(inputElement);},_attachValidationEvents:function(inputElement){var inputType=Mundia.Dom.getInputType(inputElement);if(inputType==='text'||inputType==='textarea'){inputElement.addEvent('keyup',this._input_keyup.bindWithEvent(this));}
else if(inputType==='select'){inputElement.addEvent('change',this._input_change.bindWithEvent(this));}
inputElement.addEvent('blur',this._input_blur.bindWithEvent(this));},_input_blur:function(event){if(this._inputElement.retrieve('wasValueEntered')){this.validate();}},_input_keyup:function(event){var value=this._inputElement.get('value');if(value&&value.length>0){this._inputElement.store('wasValueEntered',true);}},_input_change:function(event){this._inputElement.store('wasValueEntered',true);}});
Mundia.namespaces("controls");Mundia.controls.RequiredValidator=new Class({Extends:Mundia.controls.Validator,initialize:function(validatorParams){this.parent(validatorParams);},_executeValidate:function(value){var inputValue=this.getInputValue();return!Mundia.Object.isEmptyOrDefault(inputValue,this.get_defaultValue(),this.get_valueType());}});Mundia.ValidationManager.registerValidator('Required',Mundia.controls.RequiredValidator);
Mundia.namespaces("controls");Mundia.controls.CompareValidator=new Class({Extends:Mundia.controls.Validator,initialize:function(validatorParams){this.parent(validatorParams);this._compareFieldName=Mundia.ValidationManager.getFieldName(validatorParams.ModelPrefix,validatorParams.ComparePropertyName);this._compareType=validatorParams.CompareType;},get_compareFieldName:function(){return this._compareFieldName;},get_compareType:function(){return this._compareType;},_attachEvents:function(){this.parent();var compareElement=Mundia.ValidationManager.getInputElement(this._compareFieldName);this._attachValidationEvents(compareElement);},_validateValue:function(value){var isValid=true;var compareElement=Mundia.ValidationManager.getInputElement(this._compareFieldName);if(compareElement){var compareValue=compareElement.get('value');switch(this._compareType){case'Equal':isValid=value==compareValue;break;case'NotEqual':isValid=value!=compareValue;break;case'GreaterThan':isValid=value>compareValue;break;case'GreaterThanEqual':isValid=value>=compareValue;break;case'LessThan':isValid=value<compareValue;break;case'LessThanEqual':isValid=value<=compareValue;break;default:break;}}
return isValid;}});Mundia.ValidationManager.registerValidator('Compare',Mundia.controls.CompareValidator);
Mundia.namespaces("controls");Mundia.controls.DataTypeValidator=new Class({Extends:Mundia.controls.Validator,initialize:function(validatorParams){this.parent(validatorParams);this.INTEGER_REGEX=new RegExp("^\\-?\\d+$");this.DECIMAL_REGEX=new RegExp("^\\-?\\d+(\\.\\d+)?$");this.DATE_REGEX=new RegExp("^(\\d{1,2}[/\\-\\.\\s]\\d{1,2}[/\\-\\.\\s](\\d{2}|\\d{4}))|((\\d{2}|\\d{4})[/\\-\\.\\s]\\d{1,2}[/\\-\\.\\s]\\d{1,2})$");this.DATE_TIME_REGEX=new RegExp("^(\\d{1,2}[/\\-\\.\\s]\\d{1,2}[/\\-\\.\\s](\\d{2}|\\d{4}))|((\\d{2}|\\d{4})[/\\-\\.\\s]\\d{1,2}[/\\-\\.\\s]\\d{1,2})\\s+\\d{1,2}\\:\\d{2}(\\:\\d{2})?$");this._dataType=validatorParams.DataType;this._minPasswordLength=validatorParams.MinPasswordLength;this._maxPasswordLength=validatorParams.MaxPasswordLength;},get_dataType:function(){return this._dataType;},_validateValue:function(value){var isValid=true;var textValue=value.trim();switch(this._dataType){case'Email':isValid=Mundia.controls.DataTypeValidator.EMAIL_ADDRESS_REGEX.test(textValue);break;case'Integer':isValid=this.INTEGER_REGEX.test(textValue);break;case'Decimal':isValid=this.DECIMAL_REGEX.test(textValue);break;case'Date':isValid=this.DATE_REGEX.test(textValue);break;case'DateTime':isValid=this.DATE_TIME_REGEX.test(textValue);break;case'Password':isValid=textValue.length>=this._minPasswordLength&&textValue.length<=this._maxPasswordLength;break;default:break;}
return isValid;}});Mundia.ValidationManager.registerValidator('DataType',Mundia.controls.DataTypeValidator);Mundia.controls.DataTypeValidator.EMAIL_ADDRESS_REGEX=new RegExp("^[\\w\\.=-]+@[\\w\\.-]+\\.[\\w]{2,}$");
Mundia.namespaces("controls");Mundia.controls.RangeValidator=new Class({Extends:Mundia.controls.Validator,initialize:function(validatorParams){this.parent(validatorParams);this._minimum=validatorParams.Minimum;this._maximum=validatorParams.Maximum;},get_minimum:function(){return this._minimum;},get_maximum:function(){return this._maximum;},_validateValue:function(value){return value>=this._minimum&&value<=this._maximum;}});Mundia.ValidationManager.registerValidator('Range',Mundia.controls.RangeValidator);
Mundia.namespaces("controls");Mundia.controls.StringLengthValidator=new Class({Extends:Mundia.controls.Validator,initialize:function(validatorParams){this.parent(validatorParams);this._minimumLength=validatorParams.MinimumLength;this._maximumLength=validatorParams.MaximumLength;},get_minimumLength:function(){return this._minimumLength;},get_maximumLength:function(){return this._maximumLength;},_validateValue:function(value){var textValue=value.trim();return textValue.length>=this._minimumLength&&textValue.length<=this._maximumLength;}});Mundia.ValidationManager.registerValidator('StringLength',Mundia.controls.StringLengthValidator);
Mundia.namespaces("controls");Mundia.controls.RegularExpressionValidator=new Class({Extends:Mundia.controls.Validator,initialize:function(validatorParams){this.parent(validatorParams);this._pattern=validatorParams.Pattern;this._options=validatorParams.Options;this._regex=new RegExp(this._pattern,this._options);},get_pattern:function(){return this._pattern;},get_options:function(){return this._options;},_validateValue:function(value){var textValue=value.trim();return this._regex.test(textValue);}});Mundia.ValidationManager.registerValidator('RegularExpression',Mundia.controls.RegularExpressionValidator);
Mundia.namespaces("controls");Mundia.controls.CommentSectionControl=new Class({Extends:Mundia.controls.ContainerControl,initialize:function(elementId){this.parent(elementId);},_attachEvents:function(){this.parent();if(this.get_element()){this.get_element().addEvent('click',this._handleCommentEvents);}
this._wireUpCommentForms();},update:function(){this.parent();this._wireUpCommentForms();},_wireUpCommentForms:function(){var self=this;if(this.get_element()){this.get_element().getElements('.add-comment-form').each(function(item){var el=$(item);el.removeEvents('submit');Mundia.AjaxManager.addTrigger(el.get('id'),'',el.get('id'),self._submitForm_success.bindWithArgs(self,el.get('id')),self._submitForm_failure.bindWithArgs(self,el.get('id')),'submit');el.getElements('textarea').addEvent('blur',function(event){var target=$(event.target);if(target.get('value')===""){var formEl=target.getParent('form');formEl.addClass('hidden');formEl.getParent().getChildren('.FacebookCommentBox').removeClass('hidden');}});});}},_handleCommentEvents:function(event){var target=$(event.target);if(target.get('tag')==='a'){var parentDiv=target.getParent('div.actions');if($hasValue(target.getParent('div.actions'))){if(Mundia.WebContext.authorize()){if(target.hasClass('add-comment')){event.stop();var formEl=parentDiv.getElement('form');if(formEl.hasClass('hidden')){formEl.removeClass('hidden');formEl.getElement('textarea').focus();formEl.getParent().getChildren('.FacebookCommentBox').addClass('hidden');}
else{formEl.addClass('hidden');formEl.getParent().getChildren('.FacebookCommentBox').removeClass('hidden');}}}}
else if(target.hasClass('expand-comments')){var parent=target.getParent('div');if(parent.hasClass('collapsed')){event.stop();target.addClass('hidden');parent.removeClass('collapsed');}}}},_submitForm_success:function(text,xml,isModelStateValid,formEl){var formElement=$(formEl);var itemId=formElement.get('id').replace(/comment-form-/,'');var commentContainer=$('comments-'+itemId);if($hasValue(commentContainer)&&commentContainer.hasClass('hidden')){commentContainer.removeClass('hidden');}
if(Page.Url.isExternal()){if(formElement.getParent().getChildren('.reg-comment').length!==0){formElement.getParent().getChildren('.reg-comment').dispose();var div=new Element('div').addClass('FacebookCommentBox').set({'styles':{'margin-top':'-16px'}});div.set('html','<span ><a href="#" class="add-comment disableFacebookLink">'+Mundia.Localizer.getString('Shared.Comment.WriteComment')+'</a> </span>');formElement.getParent().adopt(div);formElement.addClass('hidden');formElement.set({'styles':{'margin-top':'-16px'}});}}
Mundia.Dom.clearForm(formElement);formElement.getElement('textarea').focus();},_submitForm_failure:function(xhr,error,formEl){var errors=error.errors;if(!errors.isModelStateValid){var errorMessage='';for(var key in errors.modelState){var propertyErrors=errors.modelState[key];for(var i=0;i<propertyErrors.length;i++){errorMessage+=propertyErrors[i].localizedMessage+'  ';}}
var formElement=$(formEl);if(formElement){var validatorEl=formElement.getElement('.validates-content');validatorEl.set('title',errorMessage);validatorEl.addClass('invalid-result');}}}});
Mundia.namespaces("controls");Mundia.controls.MessageBoxDialog=new Class({Extends:Mundia.controls.Dialog,initialize:function(elementId){var viewUrl=Page.Url.action('MessageBox','Util');this.parent(elementId,viewUrl,300,120);this._message='';this._title='';this._callback=null;},get_message:function(message){return this._message;},set_message:function(message){this._message=message;this._updateContent();},get_title:function(title){return this._title;},set_title:function(title){this._title=title;this._updateContent();},set_callback:function(callback){this._callback=callback;},_updateContent:function(){var dialogEl=this.get_element();if(this._isLoaded){if($hasValue(dialogEl.getElement('.title'))&&$hasValue(dialogEl.getElement('.message'))){dialogEl.getElement('.title').set('html',this._title);dialogEl.getElement('.message').set('html',this._message);}}},_attachEvents:function(){this.parent();this.get_element().getElements('.close-button, .ok-button').addEvent('click',this._closeButton_click.bind(this));},_onLoadSuccess:function(){this.parent();this._updateContent();},_closeButton_click:function(event){event.stop();this.hide();if(this._callback){this._callback();}}});
Mundia.namespaces("controls");Mundia.controls.ExternalLinkAdjuster=new Class({Extends:Mundia.controls.Control,initialize:function(){},_render:function(){if(Page.Url.isExternal()){if($('activity-welcome-message')){Page.Url.adjustLinksInsideElement('activity-welcome-message',true,false,false);}
if($('body-content-control')){Page.Url.adjustLinksInsideElement('body-content-control',true,false,false);}
Page.Url.adjustLinksInsideElement('content',true,false,true);}
var parsedUri=Mundia.UrlUtility.parseUri(window.location.href);if($hasValue(parsedUri.queryKey["url"])){if((parsedUri.queryKey["url"].toLowerCase().match(/^\/external\//))){Page.Url.adjustLinksInsideElement('content');Page.Url.adjustLinksInsideElement('header',true,true,false);}}}});
Mundia.ActionError=new Class({initialize:function(errorNode){this.invariantMessage=errorNode.getAttribute('invariantMessage');this.localizedMessage=errorNode.getAttribute('localizedMessage');this.exceptionType=errorNode.getAttribute('exceptionType');}});
Mundia.ActionErrorCollection=new Class({initialize:function(errorsNode){this.isModelStateValid=errorsNode.getAttribute('isModelStateValid').toLowerCase()=='true';this.hasActionPreventedErrors=errorsNode.getAttribute('hasActionPreventedErrors').toLowerCase()=='true';this.hasCosmeticErrors=errorsNode.getAttribute('hasCosmeticErrors').toLowerCase()=='true';this.actionPrevented=[];this.cosmetic=[];this.modelState={};var isTagUpper=Mundia.Dom.isTagNameUpperCase(errorsNode);if(this.hasActionPreventedErrors){var actionPreventedChildren=errorsNode.getElementsByTagName(Mundia.Dom.getTagName('actionPrevented',isTagUpper))[0].getElementsByTagName(Mundia.Dom.getTagName('error',isTagUpper));for(var preventedIndex=0;preventedIndex<actionPreventedChildren.length;preventedIndex++){var preventedNode=actionPreventedChildren.item(preventedIndex);this.actionPrevented.push(new Mundia.ActionError(preventedNode));}}
if(this.hasCosmeticErrors){var cosmeticChildren=errorsNode.getElementsByTagName(Mundia.Dom.getTagName('cosmetic',isTagUpper))[0].getElementsByTagName(Mundia.Dom.getTagName('error',isTagUpper));for(var cosmeticIndex=0;cosmeticIndex<cosmeticChildren.length;cosmeticIndex++){var cosmeticNode=cosmeticChildren.item(cosmeticIndex);this.cosmetic.push(new Mundia.ActionError(cosmeticNode));}}
if(!this.isModelStateValid){var modelStateProperties=errorsNode.getElementsByTagName(Mundia.Dom.getTagName('modelState',isTagUpper))[0].getElementsByTagName(Mundia.Dom.getTagName('property',isTagUpper));for(var propertyIndex=0;propertyIndex<modelStateProperties.length;propertyIndex++){var propertyNode=modelStateProperties.item(propertyIndex);var propertyName=propertyNode.getAttribute('key');var errorArray=[];var propertyErrors=propertyNode.getElementsByTagName(Mundia.Dom.getTagName('error',isTagUpper));for(var errorIndex=0;errorIndex<propertyErrors.length;errorIndex++){var propErrorNode=propertyErrors.item(errorIndex);errorArray.push(new Mundia.ActionError(propErrorNode));}
this.modelState[propertyName]=errorArray;}}},getAllErrors:function(){return this.actionPrevented.combine(this.cosmetic);}});
Mundia.AjaxManager={DOCUMENT_NODE_TYPE:9,PROCESSING_INSTRUCTION_NODE_TYPE:7,DOCUMENT_TYPE_NODE_TYPE:10,SIGNIN_PAGE_REGEX:/^\s*<!--MUNDIA_SIGNIN-->/,HTML_TAG_REGEX:/(<\/?html[^>]*>)|(<\/?head[^>]*>)|(<\/?body[^>]*>)*/ig,JSON_REGEX:/^\s*[{\[]/,MAX_LOG_RESPONSE:550,addFormTrigger:function(formId,successFunction,failureFunction){return this.addTrigger(formId,'',formId,successFunction,failureFunction,'submit');},addTrigger:function(formId,ajaxAction,targetId,successFunction,failureFunction,eventType){var triggerHandler=null;if($isEmpty(eventType)){eventType='click';}
var target=$(targetId);if($hasValue(target)){target.removeEvents(eventType);triggerHandler=function(event){event.stop();Mundia.AjaxManager.submitForm(formId,ajaxAction,successFunction,failureFunction);return false;}.bind(this);target.addEvent(eventType,triggerHandler);}
return triggerHandler;},removeFormTrigger:function(formId,triggerHandler){this.removeTrigger(formId,'submit',triggerHandler);},removeTrigger:function(targetId,eventType,triggerHandler){var target=$(targetId);if(target&&triggerHandler){target.removeEvent(eventType,triggerHandler);}},submitForm:function(formId,ajaxAction,successFunction,failureFunction){var form=$(formId);if($hasValue(form)){try{var hasFile=false;var fileElements=form.getElements('input[type=file]');for(var i=0;!hasFile&&i<fileElements.length;i++){var fileEl=fileElements[i];if(!$isEmpty(fileEl.get('value'))){hasFile=true;}}
if(hasFile){this._iframeSubmitForm(form,ajaxAction,successFunction,failureFunction);}
else{this._standardSubmitForm(form,ajaxAction,successFunction,failureFunction);}}
catch(err){var message='Unable to submit form through AJAX.';Log.error(message,err);this._handleAjaxFailure(failureFunction,message,'Error Unable To Submit');}}
else{Mundia.MessageBox.showError('Error submitting form!\nThe form was not found.','Form Not Found');}},_iframeSubmitForm:function(form,ajaxAction,successFunction,failureFunction){var iframeId=form.get('id')+'_async-iframe';var iframeEl=$(iframeId);this._disposeIframe(iframeId);iframeEl=new Element('iframe',{id:iframeId,name:iframeId,src:'about:blank','class':'async-submit-iframe'});iframeEl.injectInside(document.body);form.set({enctype:'multipart/form-data',encoding:'multipart/form-data',target:iframeId});iframeEl.addEvent('load',this._iframeEl_load.bindWithArgs(this,form.get('id'),successFunction,failureFunction,iframeId));var requesttype=form.getElement('input[name=mundia-request-type]');if(!requesttype){form.adopt(new Element('input',{type:'hidden',name:'mundia-request-type',value:'ajax'}));}
form.submit();},_iframeEl_load:function(formId,successFunction,failureFunction,iframeId){try{var iframeEl=document.getElementById(iframeId);var doc=null;if(iframeEl.contentDocument){doc=iframeEl.contentDocument;}else if(iframeEl.contentWindow){doc=iframeEl.contentWindow.document;}else{doc=window.frames[iframeId].document;}
if(doc.location.href!="about:blank"){if(doc.nodeType==this.DOCUMENT_NODE_TYPE&&$hasValue(doc.firstChild)){if(Browser.Engine.trident){var xmlText='';for(var i=0;i<doc.childNodes.length;i++){var node=doc.childNodes.item(i);xmlText+=node.outerHTML;}
xmlText=xmlText.replace(this.HTML_TAG_REGEX,'');xmlText=xmlText.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');doc=Mundia.Dom.parseXml(xmlText);}
this.processAjaxResult('',doc,formId,successFunction,failureFunction);}
else if(doc.body){var resultText=doc.body.innerHTML;this.processAjaxResult(resultText,null,formId,successFunction,failureFunction);}
else{this._handleAjaxFailure(failureFunction,'Unable to submit IFrame through AJAX.\nInvalid document result.','Error Loading IFrame Result');}}
else{this._handleAjaxFailure(failureFunction,'Unable to submit IFrame through AJAX.\nLoad event fired early.','Error Loading IFrame Result');}}
catch(err){var message='Unable to load form result through IFrame.';Log.error(message,err);this._handleAjaxFailure(failureFunction,message,'Error Loading Result');}
this._disposeIframe.delay(1,iframeId);},_disposeIframe:function(iframeId,formId){var iframeForm=$(formId);if(iframeForm){var requesttype=form.getElement('input[name=mundia-request-type]');if(!requesttype){requesttype.dispose();}}
var iframeEl=$(iframeId);if(iframeEl){iframeEl.removeEvents();$(iframeEl).dispose();}},_standardSubmitForm:function(form,ajaxAction,successFunction,failureFunction){var request=form.get('send');request.setHeader('mundia-request-type','ajax');request.removeEvents('success');request.removeEvents('failure');var formId=form.get('id');request.addEvent('success',this._request_success.bindWithArgs(this,formId,successFunction,failureFunction));request.addEvent('failure',this._request_failure.bindWithArgs(this,formId,failureFunction));var ajaxField=$(formId+'-ajaxAction');if($hasValue(ajaxField)){ajaxField.set('value',ajaxAction);}
else{ajaxField=new Element('input',{'type':'hidden','name':'ajaxAction','id':formId+'-ajaxAction','value':ajaxAction});ajaxField.inject(form);}
request.send();},doSimpleGetRequest:function(url,values,successFunction,failureFunction){this.send(values,url,'get',successFunction,failureFunction);},doSimpleRequest:function(url,values,method,successFunction,failureFunction){this.sendWithoutProcessing(values,url,method,successFunction,failureFunction);},updateSessionProperties:function(jsonNameValueObject,successFunction,failureFunction){this.send(jsonNameValueObject,Page.Url.action('UpdateSessionVariables','Util'),'POST',successFunction,failureFunction);},send:function(values,url,method,successFunction,failureFunction){var request=new Request({url:url,method:method,headers:{'mundia-request-type':'ajax'},noCache:true});request.removeEvents('success');request.removeEvents('failure');request.addEvent('success',this._request_success.bindWithArgs(this,null,successFunction,failureFunction));request.addEvent('failure',this._request_failure.bindWithArgs(this,null,failureFunction));var queryValues=Mundia.Object.encodeAsQuery(values);request.send(queryValues);},_request_success:function(text,xml,formEl,successFunction,failureFunction){try{this.processAjaxResult(text,xml,formEl,successFunction,failureFunction);}
catch(err){var message='Unable to process AJAX result.';Log.error(message,err);this._handleAjaxFailure(failureFunction,message,'Error Processing Result');}},sendWithoutProcessing:function(values,url,method,successFunction,failureFunction){var request=new Request({url:url,method:method,headers:{'mundia-request-type':'ajax'},noCache:true});request.removeEvents('success');request.removeEvents('failure');request.addEvent('success',this._request_success_basic.bindWithArgs(this,null,successFunction,failureFunction));request.addEvent('failure',this._request_failure.bindWithArgs(this,null,failureFunction));var queryValues=Mundia.Object.encodeAsQuery(values);request.send(queryValues);},_request_success_basic:function(text,xml,formEl,successFunction,failureFunction){try{successFunction(text,xml,formEl,true);}
catch(err){var message='Unable to process AJAX result.';Log.error(message,err);this._handleAjaxFailure(failureFunction,message,'Error Processing Result');}},_removeCDataTags:function(value){return value.replace('<![CDATA[','').replace(']]>','');},processAjaxResult:function(text,xml,formEl,successFunction,failureFunction){if($hasValue(formEl)){Mundia.Dom.enableFormSubmit(formEl,true);}
if(this.SIGNIN_PAGE_REGEX.test(text)){Mundia.WebContext.authorize(true);return;}
if(this.JSON_REGEX.test(text)){if($hasValue(successFunction)){successFunction(text,JSON.decode(text),true);}}
else if($hasValue(xml)&&xml.nodeType===this.DOCUMENT_NODE_TYPE&&xml.firstChild&&xml.firstChild.nodeType!==this.DOCUMENT_TYPE_NODE_TYPE){var rootElement=xml.firstChild.nodeType===this.PROCESSING_INSTRUCTION_NODE_TYPE?xml.childNodes.item(1):xml.firstChild;var rootTagName=rootElement.tagName.toLowerCase();if(rootTagName==='success'){if($hasValue(successFunction)){successFunction(text,xml,true);}}
else if(rootTagName==='redirect'){if($hasValue(successFunction)){successFunction(text,xml,true);}
var url=rootElement.getAttribute('url');if(!$isEmpty(url)){window.location=url;}
else{var message='Unable to redirect to new URL\nURL is empty.';Log.error(message);this._handleAjaxFailure(failureFunction,message,'Error Redirecting');}}
else if(rootTagName==='errors'){var errorsRoot=rootElement;var errors=new Mundia.ActionErrorCollection(errorsRoot);this.displayErrors(errors.actionPrevented,'ActionPrevented');this.displayErrors(errors.cosmetic,'Cosmetic');this._handleAjaxFailure(failureFunction,'Error rendering AJAX views!\nError performing action!','Error Performing Action',null,errors);}
else if($hasValue(rootElement)&&rootElement.tagName.toLowerCase()==='views'){var renderSuccessful=true;var views=rootElement.childNodes;var isModelStateValid=rootElement.getAttribute('isModelStateValid').toLowerCase()=='true';if($hasValue(views)&&views.length!==0){for(var i=0;i<views.length;i++){var viewNode=views[i];if(viewNode.tagName.toLowerCase()==='view'){var elementId=viewNode.getAttribute('elementId');var renderingType=viewNode.getAttribute('renderingType');renderSuccessful=renderSuccessful&this._renderView(elementId,viewNode,failureFunction,renderingType);}}
if(renderSuccessful){this._renderScripts(rootElement);Page.update(elementId);if($hasValue(successFunction)){successFunction(text,xml,isModelStateValid);}}}
else{var viewsMessage='Error rendering AJAX views!\nNo views in result!';Log.error(viewsMessage);this._handleAjaxFailure(failureFunction,viewsMessage,'Error Rendering Views');}}
else{var viewEl=rootElement;if(viewEl.tagName.toLowerCase()==='view'){var viewElementId=viewEl.getAttribute('elementId');var viewRenderingType=viewEl.getAttribute('renderingType');var isStateValid=viewEl.getAttribute('isModelStateValid').toLowerCase()=='true';if(this._renderView(viewElementId,viewEl,failureFunction,viewRenderingType)){this._renderScripts(viewEl);Page.update(viewElementId);if($hasValue(successFunction)){successFunction(text,xml,isStateValid);}}}
else{var viewMessage='Error rendering AJAX views!\nNo views in result!';Log.error(viewMessage);this._handleAjaxFailure(failureFunction,viewMessage,'Error Rendering Views');}}}
else{var xmlMessage='Invalid AJAX result, result is not JSON or XML.';Log.error(xmlMessage);this._handleAjaxFailure(failureFunction,xmlMessage,'Error Retrieving Views');}},displayErrors:function(actionErrors,severity){var errorContainer=null;var severityLower=severity.toLowerCase();if(severityLower==='actionprevented'){errorContainer=$('action-prevented-error-container');}
else if(severityLower==='cosmetic'){errorContainer=$('cosmetic-error-container');}
if(errorContainer&&actionErrors&&actionErrors.length>0){var errorList=errorContainer.getElement('ul');for(var i=0;i<actionErrors.length;i++){var error=actionErrors[i];errorList.appendChild(new Element('li',{html:error.localizedMessage}));}
errorContainer.addClass('has-action-errors');}},_request_failure:function(xhr,formEl,failureFunction){var requestedUrl='';if($hasValue(formEl)){Mundia.Dom.enableFormSubmit(formEl,true);requestedUrl='\n Request URL:\t'+$(formEl).get('action');}
var response=xhr.responseText;if(response.length>this.MAX_LOG_RESPONSE){response=response.substring(0,this.MAX_LOG_RESPONSE);}
Log.error('Error retrieving AJAX views, request failure.\n Status:\t'+xhr.status+requestedUrl+'\n Response:\n'+response);this._handleAjaxFailure(failureFunction,'Error retrieving AJAX views, request failure!','Error Retrieving Views',xhr);},_renderView:function(elementId,view,failureFunction,renderingType){var isTagUpper=Mundia.Dom.isTagNameUpperCase(view);var contentTagName=Mundia.Dom.getTagName('content',isTagUpper);var html=this._removeCDataTags(view.getElementsByTagName(contentTagName)[0].firstChild.nodeValue);var isRendered=false;var viewElement=$(elementId);if($hasValue(viewElement)){if(viewElement.match('textarea')){switch(renderingType){case this.RenderType.InjectTop:var currentValue=viewElement.get('value');viewElement.set('value',html+currentValue);break;case this.RenderType.InjectBottom:var viewValue=viewElement.get('value');viewElement.set('value',viewValue+html);break;case this.RenderType.Replace:default:viewElement.set('value',html);break;}}
else{switch(renderingType){case this.RenderType.InjectTop:var currentHTML=viewElement.get('html');viewElement.set('html',html+currentHTML);break;case this.RenderType.InjectBottom:var viewHtml=viewElement.get('html');viewElement.set('html',viewHtml+html);break;case this.RenderType.Replace:default:viewElement.set('html',html);break;}}
isRendered=true;}
else{this._handleAjaxFailure(failureFunction,'The AJAX view element to be rendered to was not found!','View Element Not Found');}
return isRendered;},_handleAjaxFailure:function(failureFunction,message,caption,xhr,errors){if($hasValue(failureFunction)){failureFunction(xhr,{message:message,caption:caption,errors:errors});}
else if(!errors){Mundia.MessageBox.showError(message,caption);}},RenderType:{Replace:"Replace",InjectTop:"InjectTop",InjectBottom:"InjectBottom"},_renderScripts:function(view){var isTagUpper=Mundia.Dom.isTagNameUpperCase(view);var scriptTagName=Mundia.Dom.getTagName('script',isTagUpper);var scriptNodes=view.getElementsByTagName(scriptTagName);if(scriptNodes.length>0){var scriptNode=scriptNodes[0];if($hasValue(scriptNode)&&scriptNode.nodeValue!==""){var scripts=this._removeCDataTags(scriptNode.firstChild.nodeValue);Mundia.Dom.appendScript(scripts);}}}};
Mundia.namespaces("contacts.importer");Mundia.contacts.importer.ContactProviderControl=new Class({Extends:Mundia.controls.Control,Binds:['_setSelectedProvider'],initialize:function(elementId,onSelectedCallback,fbConnectMethod,facebookLinkClickCallback){this.parent(elementId);this.selectedCallback=onSelectedCallback;this.fbConnectMethod=fbConnectMethod;this.facebookLinkClickedMethod=facebookLinkClickCallback;},_attachEvents:function(){this.parent();var facebookTab=$('Facebook');if(facebookTab){facebookTab.addEvent('click',this._setSelectedProvider);}
$('Yahoo').addEvent('click',this._setSelectedProvider);$('Hotmail').addEvent('click',this._setSelectedProvider);$('Gmail').addEvent('click',this._setSelectedProvider);$('AOL').addEvent('click',this._setSelectedProvider);var sectionNone=$('None');if(sectionNone){sectionNone.addEvent('click',this._setSelectedProvider);}
var emailForm=$('email-auth-form');if(emailForm){emailForm.addEvent('submit',this._validateEmailForm.bind(this));}
var facebookInvite=$('facebook-invite');if(this.fbConnectMethod&&facebookInvite){facebookInvite.addEvent('click',this.fbConnectMethod.bind(this));}
else if(facebookInvite){facebookInvite.addEvent('click',this._ensureFBConnect.bind(this));}
else{var facebookInviteSingle=$('facebook-invite-single');if(facebookInviteSingle){facebookInviteSingle.addEvent('click',this._singleInviteClicked.bind(this));}}},_singleInviteClicked:function(event){$('provider').value='facebook';$('email-auth-form').submit();},_validateEmailForm:function(evt){if($('email').value===''||$('password').value===''){evt.stop();$('required-fields').setStyle('display','block');if($('email').value===''){$('email').addClass('invalid');}
if($('password').value===''){$('password').addClass('invalid');}
Mundia.Dom.enableFormSubmit($(evt.target),true);return false;}
$('required-fields').setStyle('display','none');$('email').removeClass('invalid');$('password').removeClass('invalid');return true;},_ensureFBConnect:function(evt){evt.stop();var facebookC=new Mundia.facebookconnect.FacebookConnect();facebookC.SetOnSuccessAction(function(){var nextAction=function(result){window.location.href=Page.Url.standardAction("SelectFacebookFriendsAndFamily","Contacts");};facebookC.SetOnSuccessAction(nextAction);facebookC.SetOnFailureAction(nextAction);facebookC.CheckWallPermissions(nextAction);});facebookC.FacebookSignin();},_setSelectedProvider:function(evt){if(evt){evt.stop();}
var target=$(evt.target);if(!target.hasClass('provider')){target=target.getParent('.provider');}
var targetId=target.get('id');this._highlightSelected(targetId);var manualInfo=$('manual-info');switch(targetId){case'Facebook':$('email-info').addClass('hidden');if(manualInfo){manualInfo.addClass('hidden');}
$('facebook-info').removeClass('hidden');break;case'None':$('email-info').addClass('hidden');if(manualInfo){manualInfo.removeClass('hidden');}
$('facebook-info').addClass('hidden');break;case'Yahoo':case'Hotmail':case'Gmail':case'AOL':$('email-info').removeClass('hidden');if(manualInfo){manualInfo.addClass('hidden');}
$('facebook-info').addClass('hidden');break;default:break;}
if(targetId!=='Facebook'&&targetId!=='None'){if($('provider').value!==targetId){$('provider').value=targetId;$('required-fields').setStyle('display','none');$('email').removeClass('invalid');$('password').removeClass('invalid');$$('.invalid-notification').removeClass('invalid-notification');$('email').value='';$('password').value='';}}
if(this.selectedCallback){this.selectedCallback(targetId);}},_highlightSelected:function(selectedId){var facebookTab=$('Facebook');if(facebookTab){facebookTab.removeClass('selected');}
$('Yahoo').removeClass('selected');$('Hotmail').removeClass('selected');$('Gmail').removeClass('selected');$('AOL').removeClass('selected');var sectionNone=$('None');if(sectionNone){sectionNone.removeClass('selected');}
var selectedItem=$(selectedId);if(selectedItem){selectedItem.addClass('selected');}}});
Mundia.namespaces("controls");Mundia.namespaces("contacts.importer");Mundia.controls.InviteDialog=new Class({Extends:Mundia.controls.Dialog,initialize:function(elementId,facebookUrlCallBack){this._tid=0;this._pid=0;this._firstName='';this._lastName='';this._email='';this.facebookUrlCallBack=facebookUrlCallBack;var viewUrl=Page.Url.standardAction('Invite','Invitation');this.parent(elementId,viewUrl,700,400);},_createControls:function(){this.parent();},_attachEvents:function(){if($('cancel-invite')){$('cancel-invite').addEvent('click',this._closeButton_click.bind(this));}
if($('addPhotoLink-invite')){$('addPhotoLink-invite').addEvent('click',this._toggleAddProfilePhotoArea.bind(this));}
var facebookInvite=$('facebook-invite');if(facebookInvite){facebookInvite.addEvent('click',this._facebookInvite.bind(this));}
Mundia.AjaxManager.addFormTrigger('invite-form',this._formSend_success.bind(this),null);var closeButton=this.get_element().getElement('.close-button');if(closeButton){closeButton.addEvent('click',this._closeButton_click.bind(this));}
var languageChangeLink=$('language-change-link');if(languageChangeLink){languageChangeLink.addEvent('click',this._openChangeLanguage.bind(this));}
var inviteAddressBook=$('invite-address-book');if(inviteAddressBook){inviteAddressBook.addEvent('click',this._openContactSelect.bind(this));}
var language_control=$('select_language_control');if(language_control){language_control.addEvent('change',this._setLanguage.bind(this));}},_sendInvite:function(event){Mundia.AjaxManager.submitForm('invite-form','',this._formSend_success.bind(this),null);},_formSend_success:function(text,xml,isModelStateValid){this._attachEvents();if(isModelStateValid){this.fireEvent('closed',[true]);Mundia.MessageBox.show('<h4>'+Mundia.Localizer.getString('Invitation.SendInvite.Success')+'</h4>');this.hide();location.reload(true);}},_setLanguage:function(event){var language_control=$('select_language_control');var language=language_control.get('value');var message=$('message-body');if(message){message.value='';}
$('invite-culture').value=language;Mundia.AjaxManager.doSimpleGetRequest(Page.Url.action('ChangeLanguageMessage','Invitation'),{language:language},null);},_openChangeLanguage:function(event){var languageSection=$('language-section-id');if(languageSection){languageSection.removeClass('hidden');$('language-change-link').addClass('hidden');}},_openContactSelect:function(event){window.Page.facebookAuthenticationCallback=function(){this._facebookInvite();}.bind(this);window.Page.emailSelectionCallback=function(contact){var inviteEmailBox=$('inviteEmailBox');if(inviteEmailBox){inviteEmailBox.value=contact.email;}}.bind(this);var popupAuthWindow=window.open(Page.Url.secureAction('InvitationAuthentication','Invitation'),'','location=0,resizable=0,menubar=0,status=0,scrollbars=0,width=597,height=170');},_facebookInvite:function(event){if($hasValue(event)&&$hasValue(event.stop)){event.stop();}
var fromCustomerId=$('invite-fromcustomerid').value;var pid=$('invite-topid').value;var tid=$('invite-totid').value;var facebookId=$('invite-facebookid').value;var givenName=$('invite-givenname').value;var surname=$('invite-surname').value;var invitation={'FromCustomerId':fromCustomerId,'ToCustomer.Pid':pid,'ToCustomer.Tid':tid,'ToCustomer.GivenName':givenName,'ToCustomer.Surname':surname,'ToCustomer.Email':'','ToCustomer.Email-orig':'','SelectedLanguage':'',friendFacebookId:facebookId,'Message':''};var amountToInvite=(invitation['ToCustomer.Pid']===0||invitation['ToCustomer.Pid']==='0')?100:1;var turl=window.location.href;if(this.facebookUrlCallBack!==null&&this.facebookUrlCallBack!==undefined){turl=this.facebookUrlCallBack;}
var parsed=Mundia.UrlUtility.parseUri(turl);var queryParams="";for(var property in parsed.queryKey){if(property.toString()!=='showinvite'){queryParams+=property.toString()+'='+parsed.queryKey[property]+'&';}}
var newUri=parsed.protocol+"://"+parsed.host+parsed.path+'/'+"?"+queryParams;invitation.returnUrl=encodeURIComponent(newUri);var facebookC=new Mundia.facebookconnect.FacebookConnect();facebookC.SetOnSuccessAction(function(){var nextAction=function(result){if($hasValue(invitation.friendFacebookId)&&invitation.friendFacebookId!='0'){facebookC.InviteSingleFriend(Page.Url.standardAction('CreateGuidInviteFromFbReturn','Invitation',invitation),invitation);}
else{facebookC.InviteFriends(Page.Url.standardAction('CreateGuidInviteFromFbReturn','Invitation',invitation),amountToInvite,'family',invitation);}
this.fireEvent('closed',[false]);this.hide();}.bind(this);facebookC.SetOnSuccessAction(nextAction);facebookC.SetOnFailureAction(nextAction);facebookC.CheckWallPermissions(nextAction);}.bind(this));facebookC.FacebookSignin();},_closeButton_click:function(event){event.stop();this.fireEvent('closed',[false]);this.hide();},show:function(params){var givenname=$('to_givenname');var surname=$('to_surname');if(givenname){givenname.value='';}
if(surname){surname.value='';}
this._tid=params.tid;this._pid=params.pid;this._firstName=encodeURIComponent(params.firstName);this._lastName=encodeURIComponent(params.lastName);this._email=encodeURIComponent(params.email);this.parent(params,true,true);},_onLoadSuccess:function(){this.parent();if($('facebook-only-invite')){$$('.facebook-tmp-submit')[0].fireEvent('autoclick',$$('.facebook-tmp-submit')[0]);}
else{this._setVisible(true);}},_toggleAddProfilePhotoArea:function(){if($('profilePhotoArea').hasClass('hidden')){$('profilePhotoArea').removeClass('hidden');}
else{$('profilePhotoArea').addClass('hidden');}},_updateAgreementCheck:function(){$('agreeToContentSubmission').value=$('AgreeToContentSubmission').value;}});
Mundia.namespaces("facebookconnect");Mundia.facebookconnect.FacebookConnect=new Class({UserLinkedFacebookAccount:1,UserToldFriendsAndFamily:2,UserPostedFamilyNewsToFacebookViaLink:3,UserPostedFamilyNewsToFacebookViaCheckbox:4,UserSignedInToFacebook:5,UserInvitedFriendsToTreeViaFacebook:6,UserAcceptedInvitationFromFacebook:7,UserVisitedMundiaFromAWallPost:8,UserAddedSideBarNodesFromFacebookList:9,_noteLoginStatus:false,_postedViaLink:true,initialize:function(onSuccess,onFailure,onCommunicationError){this.facebookApiId=Page.ViewData.FacebookApiKey;this.onSuccessAction=onSuccess;this.onFailureAction=onFailure;this.onComErrorAction=onCommunicationError;this.delayTime=1000;},SetOnSuccessAction:function(newAction){this.onSuccessAction=newAction;},SetOnFailureAction:function(newAction){this.onFailureAction=newAction;},SetOnCommunicationErrorAction:function(newAction){this.onComErrorAction=newAction;},FacebookSignout:function(){var sessionId=this.facebookApiId;this._faceBookSignoutHelper(sessionId,function(){this._callSuccessAction();}.bind(this));},FacebookPartialSignin:function(){var sessionId=this.facebookApiId;this._faceBookSigninHelper(sessionId,function(){this._callSuccessAction();}.bind(this));},FacebookSignin:function(){var sessionId=this.facebookApiId;this._faceBookSigninHelper(sessionId,function(){var nocache=Math.random();var api=FB.Facebook.apiClient;var request=new Request.JSON({method:'POST',headers:{'Content-Type':'application/json'},urlEncoded:false,async:true,url:Page.Url.action('ValidateLoggedInFacebookWithCurrentUser','Account',{userid:api.get_session().uid,cacheprevention:nocache}),onSuccess:this._facebookSigninSuccess.bind(this),onFailure:this._facebookSigninFailure.bind(this)}).send();}.bind(this));},FacebookLinkAccountAlreadySignedIn:function(){var sessionId=this.facebookApiId;this._faceBookSigninHelper(sessionId,function(){var nocache=Math.random();var api=FB.Facebook.apiClient;var request=new Request.JSON({method:'POST',headers:{'Content-Type':'application/json'},urlEncoded:false,async:true,url:Page.Url.action('LinkFacebookAccountAlreadySignedIn','Account',{userid:api.get_session().uid,cacheprevention:nocache}),onSuccess:this._facebookLinkSuccess.bind(this),onFailure:this._facebookLinkFailure.bind(this)}).send();}.bind(this));},FacebookUnLinkAccountAlreadySignedInk:function(){var request=new Request.JSON({method:'POST',headers:{'Content-Type':'application/json'},urlEncoded:false,async:true,url:Page.Url.action('UnLinkFacebookAccount','Account'),onSuccess:this._facebookUnLinkSuccess.bind(this),onFailure:this._facebookUnLinkFailure.bind(this)}).send();},isConnected:function(callbackOnFalse,callbackOnTrue){this.FacebookInit();FB.ensureInit(function(){var connected=($hasValue(FB)&&$hasValue(FB.Facebook)&&$hasValue(FB.Facebook.apiClient)&&$hasValue(FB.Facebook.apiClient.get_session()));if(!connected){if($hasValue(callbackOnFalse)){callbackOnFalse();}}
else{if($hasValue(callbackOnTrue)){callbackOnTrue();}}}.bind(this));},CheckEmailPermissions:function(actionOnTrue){this._checkPermissionForNonMundiaUser('email',actionOnTrue);},CheckPhotoPermissionsNonMundiaMember:function(actionOnTrue){this._checkPermissionForNonMundiaUser('user_photos',actionOnTrue);},CheckPhotoPermissions:function(actionOnTrue){this._checkPermission('user_photos',actionOnTrue);},CheckWallPermissions:function(actionOnTrue){this._checkPermission('publish_stream',actionOnTrue);},CheckReadWallPermissions:function(actionOnTrue){this._checkPermission('read_stream',actionOnTrue);},GetUserProfile:function(actionOnTrue){var actionWhenCalled=this._captureActionState();this._requirePartialLogin(function(res){this._restoreActionState(actionWhenCalled);this._getUserProfileInformation(actionOnTrue);}.bind(this));},PostQuestionToWall:function(message,facebookId,guid,headerText,actionText){var actionWhenCalled=this._captureActionState();this.CheckWallPermissions(function(res){this._restoreActionState(actionWhenCalled);this._postQuestionToWall(res,message,facebookId,guid,headerText,actionText);}.bind(this));},PostMessageToWall:function(message,facebookId){var actionWhenCalled=this._captureActionState();this.CheckWallPermissions(function(res){this._restoreActionState(actionWhenCalled);this._postMessageToWall(res,message,facebookId);}.bind(this));},PostJustJoinedToWall:function(){var actionWhenCalled=this._captureActionState();this.CheckWallPermissions(function(res){this._restoreActionState(actionWhenCalled);this._postJustJoinedToWall(res);}.bind(this));},AddFacebookInfoToMundiaDialog:function(){var addDataModal=new Mundia.facebookconnect.AddFacebookInfoToMundiaDialog('add-data-modal',function(){this._callSuccessAction();}.bind(this));addDataModal._execute();addDataModal.show();},PullFacebookProfilePhotoAndSetAsOwn:function(){var actionWhenCalled=this._captureActionState();this._requireLogin(function(){this._restoreActionState(actionWhenCalled);this._pullFacebookProfilePhotoAndSetAsOwn();}.bind(this));},FacebookInit:function(){if(Mundia.WebContext.get_isSecure()){FB.init(this.facebookApiId,'/xd_receiver_ssl.htm');}
else{FB.init(this.facebookApiId,'/xd_receiver.htm');}},GetFriendsNotIncludingFamily:function(){var actionWhenCalled=this._captureActionState();this._requireLogin(function(){this._restoreActionState(actionWhenCalled);this._getFriendsNotIncludingFamily();}.bind(this));},GetFamily:function(){var actionWhenCalled=this._captureActionState();this._requireLogin(function(){this._restoreActionState(actionWhenCalled);this._getFamily();}.bind(this));},GetAllFriends:function(){var actionWhenCalled=this._captureActionState();this._requireLogin(function(){this._restoreActionState(actionWhenCalled);this._getAllFriends();}.bind(this));},InviteFriends:function(urlToReturnTo,maxNumberOfFriends,relationship,invitationParams){var actionWhenCalled=this._captureActionState();this._requireLogin(function(){this._restoreActionState(actionWhenCalled);var invitePopup=new Mundia.facebookconnect.InviteFacebookFriendsModal('invite-model-facebook',urlToReturnTo,maxNumberOfFriends,relationship,invitationParams['ToCustomer.GivenName']+" "+invitationParams['ToCustomer.Surname']);invitePopup._execute();invitePopup.show(invitationParams);this.NoteFacebookEvent(this.UserInvitedFriendsToTreeViaFacebook,FB.Facebook.apiClient.get_session().uid);}.bind(this));},TagInviteFriends:function(urlToReturnTo,maxNumberOfFriends,relationship,invitationParams){var actionWhenCalled=this._captureActionState();this._requireLogin(function(){this._restoreActionState(actionWhenCalled);var invitePopup=new Mundia.facebookconnect.TagInviteFacebookFriendsModal('invite-model-facebook',urlToReturnTo,maxNumberOfFriends,relationship,invitationParams['ToCustomer.GivenName']+" "+invitationParams['ToCustomer.Surname']);invitePopup._execute();invitePopup.show(invitationParams);this.NoteFacebookEvent(this.UserInvitedFriendsToTreeViaFacebook,FB.Facebook.apiClient.get_session().uid);}.bind(this));},InviteSingleFriend:function(urlToReturnTo,invitationParams){invitationParams.isSingleRequest=true;var actionWhenCalled=this._captureActionState();this._requireLogin(function(){this._restoreActionState(actionWhenCalled);var invitePopup=new Mundia.facebookconnect.SingleFriendRequestModal('invite-single-modal-facebook',urlToReturnTo,invitationParams.friendFacebookId,invitationParams['ToCustomer.GivenName'],invitationParams.returnUrl);invitePopup._execute();invitePopup.show(invitationParams);this.NoteFacebookEvent(this.UserInvitedFriendsToTreeViaFacebook,FB.Facebook.apiClient.get_session().uid);}.bind(this));},AskAFamilyMember:function(urlToReturnTo,askFamilyMemberParams){var actionWhenCalled=this._captureActionState();this._requireLogin(function(){this._restoreActionState(actionWhenCalled);var askFamilyPopup=new Mundia.facebookconnect.AskFamilyMemberViaFacebookModal('ask-family-member-via-facebook-modal',urlToReturnTo,askFamilyMemberParams.friendFacebookId,askFamilyMemberParams.ResponderGivenName,askFamilyMemberParams.returnUrl,askFamilyMemberParams.headerText,askFamilyMemberParams.actionText);askFamilyPopup._execute();askFamilyPopup.show(askFamilyMemberParams);}.bind(this));},NoteFacebookEvent:function(eventType,facebookUserId){var nocache=Math.random();var request=new Request.JSON({method:'POST',headers:{'Content-Type':'application/json'},urlEncoded:false,async:true,url:Page.Url.action('AddEvent','Facebook',{facebookUserId:facebookUserId,eventType:eventType,cacheprevention:nocache})}).send();},GetPicturesFromFacebookAccount:function(){},FacebookEmailHash:function(emailAddress){var normalized=this._facebookNormalize(emailAddress);var crc32Ver=this._CRC32(normalized);var md5Hash=this._MD5(normalized);return crc32Ver+"_"+md5Hash;},FacebookNormalize:function(emailAddress){var lwerCase=emailAddress.toLowerCase();var trimmed=this._trim(lwerCase);return trimmed;},getCurrentUserFacebookId:function(){var currentUsersId='0';if($hasValue(FB)&&$hasValue(FB.Facebook)){var api=FB.Facebook.apiClient;if($hasValue(api)&&$hasValue(api.get_session())){currentUsersId=''+api.get_session().uid;}}
return currentUsersId;},_captureActionState:function(){var state={suc:this.onSuccessAction,fail:this.onFailureAction,err:this.onComErrorAction};this.onSuccessAction=undefined;this.onFailureAction=undefined;this.onComErrorAction=undefined;return state;},_restoreActionState:function(capturedState){this.onSuccessAction=capturedState.suc;this.onFailureAction=capturedState.fail;this.onComErrorAction=capturedState.err;},_requireLogin:function(actionToRun){this.onSuccessAction=actionToRun;this.FacebookSignin();},_requirePartialLogin:function(actionToRun){this.onSuccessAction=actionToRun;this.FacebookPartialSignin();},_checkPermission:function(permission,actionOnTrue){var actionWhenCalled=this._captureActionState();this._requireLogin(function(){this._restoreActionState(actionWhenCalled);this._checkPermissionAuthorized(permission,actionOnTrue);}.bind(this));},_checkPermissionForNonMundiaUser:function(permission,actionOnTrue){var actionWhenCalled=this._captureActionState();this._requirePartialLogin(function(){this._restoreActionState(actionWhenCalled);this._checkPermissionAuthorized(permission,actionOnTrue);}.bind(this));},_checkPermissionAuthorized:function(permission,actionOnTrue){var hasPermission;var api=FB.Facebook.apiClient;api.users_hasAppPermission(permission,function(event){hasPermission=event;if(hasPermission===0||hasPermission==='0'){FB.Connect.showPermissionDialog(permission,function(result){if(actionOnTrue!==undefined){actionOnTrue(result!==''&&result!==false);}}.bind(this));}
else{actionOnTrue(true);}}.bind(this));},_pullFacebookProfilePhotoAndSetAsOwn:function(){var nocache=Math.random();var request=new Request.JSON({method:'POST',headers:{'Content-Type':'application/json'},urlEncoded:false,async:false,url:Page.Url.action('UpdateProfileWithFacebookProfilePicture','Facebook',{cacheprevention:nocache}),onSuccess:this._uploadPhotoSuccess.bind(this),onFailure:this._uploadPhotoFailure.bind(this)}).send();},_postMessageToWall:function(res,message,facebookId){if(!res){Mundia.MessageBox.show(Mundia.Localizer.getString("facebookconnect.FacebookConnect.Canceled"),Mundia.Localizer.getString('facebookconnect.FacebookConnect.CanceledHeader'));return;}
var userId=facebookId||FB.Facebook.apiClient.get_session().uid;var attachment={'href':'http://apps.facebook.com/mundia-family-tree/?facebookentrance=wall&senderid='+userId,'media':[{'type':'image','src':'http://c.muncn.com/images/facebookLeaf.png','href':'http://apps.facebook.com/mundia-family-tree/?facebookentrance=wall&senderid='+FB.Facebook.apiClient.get_session().uid}]};this._postToWall(message,attachment,null,userId);},_postQuestionToWall:function(res,message,facebookId,guid,headerText,actionText){if(!res){Mundia.MessageBox.show(Mundia.Localizer.getString("facebookconnect.FacebookConnect.Canceled"),Mundia.Localizer.getString('facebookconnect.FacebookConnect.CanceledHeader'));return;}
var userId=facebookId||FB.Facebook.apiClient.get_session().uid;var attachment={'name':headerText,'href':Page.Url.standardAction('AskAFamilyResponseForm','AskFamilyMember',{familyInfoRequestId:guid}),'caption':'','media':[{'type':'image','src':'http://c.muncn.com/images/logo.png','href':'http://apps.facebook.com/mundia-family-tree/?facebookentrance=justjoined&senderid='+FB.Facebook.apiClient.get_session().uid}]};var actionLinks=[{'text':actionText,'href':Page.Url.standardAction('AskAFamilyResponseForm','AskFamilyMember',{familyInfoRequestId:guid})}];this._postToWall(message,attachment,actionLinks,userId);},_postToWall:function(message,attachment,actionLinks,facebookId){var userId=facebookId;if(this._postedViaLink){this.NoteFacebookEvent(this.UserPostedFamilyNewsToFacebookViaLink,userId);}
else{this.NoteFacebookEvent(this.UserPostedFamilyNewsToFacebookViaCheckbox,userId);}
FB.Connect.streamPublish(message,attachment,actionLinks,userId,null,function(pId,e,data){this._completePostTowall(pId,e,data);}.bind(this),true,null);},_postJustJoinedToWall:function(res){if(!res){Mundia.MessageBox.show(Mundia.Localizer.getString("facebookconnect.FacebookConnect.Canceled"),Mundia.Localizer.getString('facebookconnect.FacebookConnect.CanceledHeader'));return;}
var attachment={'name':Mundia.Localizer.getString('facebookconnect.FacebookConnect.GlobalFamilyHistory'),'href':'http://apps.facebook.com/mundia-family-tree/?facebookentrance=justjoined&senderid='+FB.Facebook.apiClient.get_session().uid,'caption':Mundia.Localizer.getString('facebookconnect.FacebookConnect.Caption'),'media':[{'type':'image','src':'http://c.muncn.com/images/logo.png','href':'http://apps.facebook.com/mundia-family-tree/?facebookentrance=justjoined&senderid='+FB.Facebook.apiClient.get_session().uid}]};var actionlinks=[{'text':Mundia.Localizer.getString('Shared.Facebook.GetYourTreeLink'),'href':'http://www.mundia.com'}];if(this._postedViaLink){this.NoteFacebookEvent(this.UserPostedFamilyNewsToFacebookViaLink,FB.Facebook.apiClient.get_session().uid);}
else{this.NoteFacebookEvent(this.UserPostedFamilyNewsToFacebookViaCheckbox,FB.Facebook.apiClient.get_session().uid);}
FB.Connect.streamPublish(Mundia.Localizer.getString('Web.Content.scripts.Mundia.facebookconnect.FacebookConnect.JustJoined'),attachment,actionlinks,null,null,function(pId,e,data){this._completePostTowall(pId,e,data);}.bind(this),true,null);},_completePostTowall:function(pId,ex,data){if($hasValue(ex)){this._callSuccessAction();}
else{this._callFailureAction();}},_getFriendsNotIncludingFamily:function(){var nocache=Math.random();var request=new Request.JSON({method:'POST',headers:{'Content-Type':'application/json'},urlEncoded:false,async:true,url:Page.Url.action('GetFriendsWithoutFamily','Facebook',{cacheprevention:nocache,facebookId:FB.Facebook.apiClient.get_session().uid}),onSuccess:function(responseJson){this._callSuccessAction(responseJson);}.bind(this),onFailure:function(responseJson){this._callSuccessAction(null);}.bind(this)}).send();},_getAllFriends:function(){var nocache=Math.random();var request=new Request.JSON({method:'POST',headers:{'Content-Type':'application/json'},urlEncoded:false,async:true,url:Page.Url.action('GetAllFriends','Facebook',{cacheprevention:nocache,facebookId:FB.Facebook.apiClient.get_session().uid}),onSuccess:function(responseJson){this._callSuccessAction(responseJson);}.bind(this),onFailure:function(responseJson){this._callSuccessAction(null);}.bind(this)}).send();},_getFamily:function(){var nocache=Math.random();var request=new Request.JSON({method:'POST',headers:{'Content-Type':'application/json'},urlEncoded:false,async:true,url:Page.Url.action('GetFamily','Facebook',{cacheprevention:nocache,facebookId:FB.Facebook.apiClient.get_session().uid}),onSuccess:function(responseJson){this._callSuccessAction(responseJson);}.bind(this),onFailure:function(responseJson){this._callSuccessAction(null);}.bind(this)}).send();},_getUserProfileInformation:function(actionOnTrue){var nocache=Math.random();var request=new Request.JSON({method:'POST',headers:{'Content-Type':'application/json'},urlEncoded:false,async:true,url:Page.Url.action('GetProfileInfo','Facebook',{facebookId:FB.Facebook.apiClient.get_session().uid,cacheprevention:nocache}),onSuccess:function(response){actionOnTrue(response);}.bind(this),onFailure:function(response){this._grabProfileInfoFailure();}.bind(this)}).send();},_callSuccessAction:function(result){if(this.onSuccessAction!=undefined){this.onSuccessAction(result);}},_callFailureAction:function(result){if(this.onFailureAction!=undefined){this.onFailureAction(result);}},_callCommErrAction:function(result){if(this.onComErrorAction!=undefined){this.onComErrorAction(result);}},_facebookSigninSuccess:function(responseJSON){if(responseJSON.status==='error'){switch(responseJSON.ErrorNum){case 1:Mundia.MessageBox.show(responseJSON.Message,Mundia.Localizer.getString('facebookconnect.FacebookConnect.InvalidAccount'));break;case 2:Mundia.MessageBox.show(responseJSON.Message,Mundia.Localizer.getString('facebookconnect.FacebookConnect.InvalidAccount'));break;case 3:var api=FB.Facebook.apiClient;var nocache=Math.random();var request=new Request.JSON({method:'POST',headers:{'Content-Type':'application/json'},urlEncoded:false,async:false,url:Page.Url.action('LinkFacebookAccountAlreadySignedIn','Account',{userid:api.get_session().uid,cacheprevention:nocache}),onSuccess:this._facebookLinkSuccess.bind(this),onFailure:this._facebookLinkFailure.bind(this)}).send();return;default:break;}
(function(){this._faceBookSignoutHelper(responseJSON.Id,function(){this._callFailureAction();}.bind(this));}.bind(this)).delay(this.delayTime);}
else if(responseJSON.status==='failure'){this._showMundiaSignIn();}
else{if(this._noteLoginStatus){this._noteLoginStatus=false;this.NoteFacebookEvent(this.UserSignedInToFacebook,FB.Facebook.apiClient.get_session().uid);}
this._updateImage();this._callSuccessAction();}},_updateImage:function(){if($('facebook-prof-image')){if(!$chk($('facebook-prof-image').get('html'))){$('facebook-prof-image').set('html','<fb:profile-pic uid="'+FB.Facebook.apiClient.get_session().uid+'" size="square" facebook-logo="true"></fb:profile-pic>');(function(){this.FacebookInit();}.bind(this)).delay(200);}}},_facebookCheckSuccess:function(responseJSON){if(responseJSON.status==='error'){this.CheckLoggedResult=false;}
else{this.CheckLoggedResult=true;}},_facebookUnLinkSuccess:function(responseJSON,responseText){Mundia.MessageBox.show(Mundia.Localizer.getString('facebookconnect.FacebookConnect.SuccessfullyUnlinked'),Mundia.Localizer.getString('facebookconnect.FacebookConnect.Success'));(function(){this._faceBookSignoutHelper(responseJSON.Id,function(){this._callSuccessAction();}.bind(this));}.bind(this)).delay(this.delayTime);},_facebookLinkSuccess:function(responseJSON,responseText){if(responseJSON.status==='error'){switch(responseJSON.ErrorNum){case 1:Mundia.MessageBox.show(responseJSON.Message,Mundia.Localizer.getString('facebookconnect.FacebookConnect.InvalidAccount'));break;case 2:Mundia.MessageBox.show(responseJSON.Message,Mundia.Localizer.getString('facebookconnect.FacebookConnect.NotSignedInFacebook'));break;case 3:Mundia.MessageBox.show(responseJSON.Message,Mundia.Localizer.getString('facebookconnect.FacebookConnect.NotSignedInMundia'));break;default:break;}
(function(){this._faceBookSignoutHelper(responseJSON.Id,function(){this._callFailureAction();}.bind(this));}.bind(this)).delay(this.delayTime);}
else{this.NoteFacebookEvent(this.UserLinkedFacebookAccount,FB.Facebook.apiClient.get_session().uid);this.NoteFacebookEvent(this.UserSignedInToFacebook,FB.Facebook.apiClient.get_session().uid);this._updateImage();var linkedModal=new Mundia.account.successfullyLinked.SuccessfullyLinkedModel('linked-model-success',function(){this._callSuccessAction();}.bind(this));linkedModal._execute();linkedModal.show();}},_uploadPhotoSuccess:function(responseJSON,responseText){if(responseJSON.success==='false'){Mundia.MessageBox.show(responseJSON.message,Mundia.Localizer.getString('Web.Content.scripts.Mundia.facebookconnect.FacebookConnect.UpdateError'));}
else{this._callSuccessAction();}},_facebookLinkFailure:function(responseJSON,responseText){Mundia.MessageBox.show(Mundia.Localizer.getString('facebookconnect.FacebookConnect.ServerErrorLink'),Mundia.Localizer.getString('facebookconnect.FacebookConnect.CommunicationError'));(function(){this._callCommErrAction();}.bind(this)).delay(this.delayTime);},_facebookSigninFailure:function(event){Mundia.MessageBox.show(Mundia.Localizer.getString('facebookconnect.FacebookConnect.ServerErrorSignin'),Mundia.Localizer.getString('facebookconnect.FacebookConnect.CommunicationError'));(function(){this._callCommErrAction();}.bind(this)).delay(this.delayTime);},_facebookUnLinkFailure:function(responseJSON,responseText){Mundia.MessageBox.show(Mundia.Localizer.getString('facebookconnect.FacebookConnect.ServerErrorRemove'),Mundia.Localizer.getString('facebookconnect.FacebookConnect.CommunicationError'));(function(){this._callCommErrAction();}.bind(this)).delay(this.delayTime);},_facebookCheckFailure:function(){Mundia.MessageBox.show(Mundia.Localizer.getString('facebookconnect.FacebookConnect.ServerErrorSignin'),Mundia.Localizer.getString('facebookconnect.FacebookConnect.CommunicationError'));(function(){this._callCommErrAction();}.bind(this)).delay(this.delayTime);},_uploadPhotoFailure:function(){Mundia.MessageBox.show(Mundia.Localizer.getString('Web.Client.Controllers.FacebookController.FailedToAddPicture'),Mundia.Localizer.getString('facebookconnect.FacebookConnect.CommunicationError'));(function(){this._callCommErrAction();}.bind(this)).delay(this.delayTime);},_grabProfileInfoFailure:function(){Mundia.MessageBox.show(Mundia.Localizer.getString('Mundia.facebookconnect.FacebookConnect.FailedToGetProfileInfo'),Mundia.Localizer.getString('facebookconnect.FacebookConnect.CommunicationError'));(function(){this._callCommErrAction();}.bind(this)).delay(this.delayTime);},_showMundiaSignIn:function(){document.location.href=Page.Url.secureAction("LinkFacebookNotSignedIn","Account");},_openWorkingDialog:function(){document.body.style.cursor='wait';},_closeWorkingDialog:function(){document.body.style.cursor='default';},_faceBookSigninHelper:function(facebookId,functionToExecute){this.FacebookInit();FB.ensureInit(function(){if(!$hasValue(FB.Facebook.apiClient)||!$hasValue(FB.Facebook.apiClient.get_session())){this._noteLoginStatus=true;}
FB.Connect.get_status().waitUntilReady(function(status){FB.Connect.requireSession(function(){FB.Facebook.get_sessionWaitable().waitUntilReady(function(){if(Page.ViewData.FbPermissionsSeen===false){var desiredPerms='publish_stream,read_stream,user_photos,email,user_birthday,user_hometown,user_location';FB.Connect.showPermissionDialog(desiredPerms,function(perms){if(perms===desiredPerms){Mundia.AjaxManager.updateSessionProperties({FbPermissionsSeen:true});Page.ViewData.FbPermissionsSeen=true;}
functionToExecute();});}
else{functionToExecute();}});});});}.bind(this));},_faceBookSignoutHelper:function(facebookId,functionToExecute){this.FacebookInit();FB.ensureInit(function(){FB.Connect.logout(functionToExecute);}.bind(this));},_trim:function(str){return this._ltrim(this._rtrim(str));},_ltrim:function(str){chars="\\s";return str.replace(new RegExp("^["+chars+"]+","g"),"");},_rtrim:function(str){chars="\\s";return str.replace(new RegExp("["+chars+"]+$","g"),"");},_CRC32:function(str){function Utf8Encode(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}
else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}
return utftext;}
str=Utf8Encode(str);var table="00000000 77073096 EE0E612C 990951BA 076DC419 706AF48F E963A535 9E6495A3 0EDB8832 79DCB8A4 E0D5E91E 97D2D988 09B64C2B 7EB17CBD E7B82D07 90BF1D91 1DB71064 6AB020F2 F3B97148 84BE41DE 1ADAD47D 6DDDE4EB F4D4B551 83D385C7 136C9856 646BA8C0 FD62F97A 8A65C9EC 14015C4F 63066CD9 FA0F3D63 8D080DF5 3B6E20C8 4C69105E D56041E4 A2677172 3C03E4D1 4B04D447 D20D85FD A50AB56B 35B5A8FA 42B2986C DBBBC9D6 ACBCF940 32D86CE3 45DF5C75 DCD60DCF ABD13D59 26D930AC 51DE003A C8D75180 BFD06116 21B4F4B5 56B3C423 CFBA9599 B8BDA50F 2802B89E 5F058808 C60CD9B2 B10BE924 2F6F7C87 58684C11 C1611DAB B6662D3D 76DC4190 01DB7106 98D220BC EFD5102A 71B18589 06B6B51F 9FBFE4A5 E8B8D433 7807C9A2 0F00F934 9609A88E E10E9818 7F6A0DBB 086D3D2D 91646C97 E6635C01 6B6B51F4 1C6C6162 856530D8 F262004E 6C0695ED 1B01A57B 8208F4C1 F50FC457 65B0D9C6 12B7E950 8BBEB8EA FCB9887C 62DD1DDF 15DA2D49 8CD37CF3 FBD44C65 4DB26158 3AB551CE A3BC0074 D4BB30E2 4ADFA541 3DD895D7 A4D1C46D D3D6F4FB 4369E96A 346ED9FC AD678846 DA60B8D0 44042D73 33031DE5 AA0A4C5F DD0D7CC9 5005713C 270241AA BE0B1010 C90C2086 5768B525 206F85B3 B966D409 CE61E49F 5EDEF90E 29D9C998 B0D09822 C7D7A8B4 59B33D17 2EB40D81 B7BD5C3B C0BA6CAD EDB88320 9ABFB3B6 03B6E20C 74B1D29A EAD54739 9DD277AF 04DB2615 73DC1683 E3630B12 94643B84 0D6D6A3E 7A6A5AA8 E40ECF0B 9309FF9D 0A00AE27 7D079EB1 F00F9344 8708A3D2 1E01F268 6906C2FE F762575D 806567CB 196C3671 6E6B06E7 FED41B76 89D32BE0 10DA7A5A 67DD4ACC F9B9DF6F 8EBEEFF9 17B7BE43 60B08ED5 D6D6A3E8 A1D1937E 38D8C2C4 4FDFF252 D1BB67F1 A6BC5767 3FB506DD 48B2364B D80D2BDA AF0A1B4C 36034AF6 41047A60 DF60EFC3 A867DF55 316E8EEF 4669BE79 CB61B38C BC66831A 256FD2A0 5268E236 CC0C7795 BB0B4703 220216B9 5505262F C5BA3BBE B2BD0B28 2BB45A92 5CB36A04 C2D7FFA7 B5D0CF31 2CD99E8B 5BDEAE1D 9B64C2B0 EC63F226 756AA39C 026D930A 9C0906A9 EB0E363F 72076785 05005713 95BF4A82 E2B87A14 7BB12BAE 0CB61B38 92D28E9B E5D5BE0D 7CDCEFB7 0BDBDF21 86D3D2D4 F1D4E242 68DDB3F8 1FDA836E 81BE16CD F6B9265B 6FB077E1 18B74777 88085AE6 FF0F6A70 66063BCA 11010B5C 8F659EFF F862AE69 616BFFD3 166CCF45 A00AE278 D70DD2EE 4E048354 3903B3C2 A7672661 D06016F7 4969474D 3E6E77DB AED16A4A D9D65ADC 40DF0B66 37D83BF0 A9BCAE53 DEBB9EC5 47B2CF7F 30B5FFE9 BDBDF21C CABAC28A 53B39330 24B4A3A6 BAD03605 CDD70693 54DE5729 23D967BF B3667A2E C4614AB8 5D681B02 2A6F2B94 B40BBE37 C30C8EA1 5A05DF1B 2D02EF8D";if(typeof(crc)=="undefined"){crc=0;}
var x=0;var y=0;crc=crc^(-1);for(var i=0,iTop=str.length;i<iTop;i++){y=(crc^str.charCodeAt(i))&0xFF;x="0x"+table.substr(y*9,8);crc=(crc>>>8)^x;}
var resCrc=crc^(-1);resCrc=(resCrc<0)?4294967296+resCrc:resCrc;return resCrc;},_MD5:function(string){function RotateLeft(lValue,iShiftBits){return(lValue<<iShiftBits)|(lValue>>>(32-iShiftBits));}
function AddUnsigned(lX,lY){var lX4,lY4,lX8,lY8,lResult;lX8=(lX&0x80000000);lY8=(lY&0x80000000);lX4=(lX&0x40000000);lY4=(lY&0x40000000);lResult=(lX&0x3FFFFFFF)+(lY&0x3FFFFFFF);if(lX4&lY4){return(lResult^0x80000000^lX8^lY8);}
if(lX4|lY4){if(lResult&0x40000000){return(lResult^0xC0000000^lX8^lY8);}else{return(lResult^0x40000000^lX8^lY8);}}else{return(lResult^lX8^lY8);}}
function F(x,y,z){return(x&y)|((~x)&z);}
function G(x,y,z){return(x&z)|(y&(~z));}
function H(x,y,z){return(x^y^z);}
function I(x,y,z){return(y^(x|(~z)));}
function FF(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(F(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);}
function GG(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(G(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);}
function HH(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(H(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);}
function II(a,b,c,d,x,s,ac){a=AddUnsigned(a,AddUnsigned(AddUnsigned(I(b,c,d),x),ac));return AddUnsigned(RotateLeft(a,s),b);}
function ConvertToWordArray(string){var lWordCount;var lMessageLength=string.length;var lNumberOfWords_temp1=lMessageLength+8;var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1%64))/64;var lNumberOfWords=(lNumberOfWords_temp2+1)*16;var lWordArray=Array(lNumberOfWords-1);var lBytePosition=0;var lByteCount=0;while(lByteCount<lMessageLength){lWordCount=(lByteCount-(lByteCount%4))/4;lBytePosition=(lByteCount%4)*8;lWordArray[lWordCount]=(lWordArray[lWordCount]|(string.charCodeAt(lByteCount)<<lBytePosition));lByteCount++;}
lWordCount=(lByteCount-(lByteCount%4))/4;lBytePosition=(lByteCount%4)*8;lWordArray[lWordCount]=lWordArray[lWordCount]|(0x80<<lBytePosition);lWordArray[lNumberOfWords-2]=lMessageLength<<3;lWordArray[lNumberOfWords-1]=lMessageLength>>>29;return lWordArray;}
function WordToHex(lValue){var WordToHexValue="",WordToHexValue_temp="",lByte,lCount;for(lCount=0;lCount<=3;lCount++){lByte=(lValue>>>(lCount*8))&255;WordToHexValue_temp="0"+lByte.toString(16);WordToHexValue=WordToHexValue+WordToHexValue_temp.substr(WordToHexValue_temp.length-2,2);}
return WordToHexValue;}
function Utf8Encode(string){string=string.replace(/\r\n/g,"\n");var utftext="";for(var n=0;n<string.length;n++){var c=string.charCodeAt(n);if(c<128){utftext+=String.fromCharCode(c);}
else if((c>127)&&(c<2048)){utftext+=String.fromCharCode((c>>6)|192);utftext+=String.fromCharCode((c&63)|128);}
else{utftext+=String.fromCharCode((c>>12)|224);utftext+=String.fromCharCode(((c>>6)&63)|128);utftext+=String.fromCharCode((c&63)|128);}}
return utftext;}
var x=Array();var k,AA,BB,CC,DD,a,b,c,d;var S11=7,S12=12,S13=17,S14=22;var S21=5,S22=9,S23=14,S24=20;var S31=4,S32=11,S33=16,S34=23;var S41=6,S42=10,S43=15,S44=21;string=Utf8Encode(string);x=ConvertToWordArray(string);a=0x67452301;b=0xEFCDAB89;c=0x98BADCFE;d=0x10325476;for(k=0;k<x.length;k+=16){AA=a;BB=b;CC=c;DD=d;a=FF(a,b,c,d,x[k+0],S11,0xD76AA478);d=FF(d,a,b,c,x[k+1],S12,0xE8C7B756);c=FF(c,d,a,b,x[k+2],S13,0x242070DB);b=FF(b,c,d,a,x[k+3],S14,0xC1BDCEEE);a=FF(a,b,c,d,x[k+4],S11,0xF57C0FAF);d=FF(d,a,b,c,x[k+5],S12,0x4787C62A);c=FF(c,d,a,b,x[k+6],S13,0xA8304613);b=FF(b,c,d,a,x[k+7],S14,0xFD469501);a=FF(a,b,c,d,x[k+8],S11,0x698098D8);d=FF(d,a,b,c,x[k+9],S12,0x8B44F7AF);c=FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);b=FF(b,c,d,a,x[k+11],S14,0x895CD7BE);a=FF(a,b,c,d,x[k+12],S11,0x6B901122);d=FF(d,a,b,c,x[k+13],S12,0xFD987193);c=FF(c,d,a,b,x[k+14],S13,0xA679438E);b=FF(b,c,d,a,x[k+15],S14,0x49B40821);a=GG(a,b,c,d,x[k+1],S21,0xF61E2562);d=GG(d,a,b,c,x[k+6],S22,0xC040B340);c=GG(c,d,a,b,x[k+11],S23,0x265E5A51);b=GG(b,c,d,a,x[k+0],S24,0xE9B6C7AA);a=GG(a,b,c,d,x[k+5],S21,0xD62F105D);d=GG(d,a,b,c,x[k+10],S22,0x2441453);c=GG(c,d,a,b,x[k+15],S23,0xD8A1E681);b=GG(b,c,d,a,x[k+4],S24,0xE7D3FBC8);a=GG(a,b,c,d,x[k+9],S21,0x21E1CDE6);d=GG(d,a,b,c,x[k+14],S22,0xC33707D6);c=GG(c,d,a,b,x[k+3],S23,0xF4D50D87);b=GG(b,c,d,a,x[k+8],S24,0x455A14ED);a=GG(a,b,c,d,x[k+13],S21,0xA9E3E905);d=GG(d,a,b,c,x[k+2],S22,0xFCEFA3F8);c=GG(c,d,a,b,x[k+7],S23,0x676F02D9);b=GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);a=HH(a,b,c,d,x[k+5],S31,0xFFFA3942);d=HH(d,a,b,c,x[k+8],S32,0x8771F681);c=HH(c,d,a,b,x[k+11],S33,0x6D9D6122);b=HH(b,c,d,a,x[k+14],S34,0xFDE5380C);a=HH(a,b,c,d,x[k+1],S31,0xA4BEEA44);d=HH(d,a,b,c,x[k+4],S32,0x4BDECFA9);c=HH(c,d,a,b,x[k+7],S33,0xF6BB4B60);b=HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);a=HH(a,b,c,d,x[k+13],S31,0x289B7EC6);d=HH(d,a,b,c,x[k+0],S32,0xEAA127FA);c=HH(c,d,a,b,x[k+3],S33,0xD4EF3085);b=HH(b,c,d,a,x[k+6],S34,0x4881D05);a=HH(a,b,c,d,x[k+9],S31,0xD9D4D039);d=HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);c=HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);b=HH(b,c,d,a,x[k+2],S34,0xC4AC5665);a=II(a,b,c,d,x[k+0],S41,0xF4292244);d=II(d,a,b,c,x[k+7],S42,0x432AFF97);c=II(c,d,a,b,x[k+14],S43,0xAB9423A7);b=II(b,c,d,a,x[k+5],S44,0xFC93A039);a=II(a,b,c,d,x[k+12],S41,0x655B59C3);d=II(d,a,b,c,x[k+3],S42,0x8F0CCC92);c=II(c,d,a,b,x[k+10],S43,0xFFEFF47D);b=II(b,c,d,a,x[k+1],S44,0x85845DD1);a=II(a,b,c,d,x[k+8],S41,0x6FA87E4F);d=II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);c=II(c,d,a,b,x[k+6],S43,0xA3014314);b=II(b,c,d,a,x[k+13],S44,0x4E0811A1);a=II(a,b,c,d,x[k+4],S41,0xF7537E82);d=II(d,a,b,c,x[k+11],S42,0xBD3AF235);c=II(c,d,a,b,x[k+2],S43,0x2AD7D2BB);b=II(b,c,d,a,x[k+9],S44,0xEB86D391);a=AddUnsigned(a,AA);b=AddUnsigned(b,BB);c=AddUnsigned(c,CC);d=AddUnsigned(d,DD);}
var temp=WordToHex(a)+WordToHex(b)+WordToHex(c)+WordToHex(d);return temp.toLowerCase();}});
Mundia.namespaces("facebookconnect");Mundia.facebookconnect.AddFacebookInfoToMundiaDialog=new Class({Extends:Mundia.controls.Dialog,initialize:function(elementId,actionOnComplete){var viewUrl=Page.Url.action('AddFacebookInfoToMundiaPopup','Facebook');this.parent(elementId,viewUrl,760,415);this.actionComplete=actionOnComplete;},_attachEvents:function(){if($('facebook-copy-profile-pic')){$('facebook-copy-profile-pic').addEvent('click',this._facebookCopyProfilePic.bind(this));}
if($('facebook-copy-name')){$('facebook-copy-name').addEvent('click',this._facebookCopyName.bind(this));}
if($('facebook-copy-gender')){$('facebook-copy-gender').addEvent('click',this._facebookCopyGender.bind(this));}
if($('facebook-copy-birthdate')){$('facebook-copy-birthdate').addEvent('click',this._facebookCopyBirthdate.bind(this));}
if($('facebook-copy-location')){$('facebook-copy-location').addEvent('click',this._facebookCopyLocation.bind(this));}
if($('facebook-copy-hometown')){$('facebook-copy-hometown').addEvent('click',this._facebookCopyHometown.bind(this));}
if($('save')){$('save').addEvent('click',this._save.bind(this));}
if($('cancel')){$('cancel').addEvent('click',this._cancel.bind(this));}},_save:function(event){event.stop();var target=$(event.target);target.addClass('disabled');if($('facebook-copy-profile-pic')){if($('facebook-copy-profile-pic').checked){var facebookC=new Mundia.facebookconnect.FacebookConnect();facebookC.SetOnSuccessAction(function(){this._saveContinue();}.bind(this));facebookC.SetOnFailureAction(function(){this._saveContinue();}.bind(this));facebookC.PullFacebookProfilePhotoAndSetAsOwn();return;}}
this._saveContinue();},_cancel:function(event){event.stop();var target=$(event.target);target.addClass('disabled');if(this.actionComplete!=undefined){this.actionComplete();}
this.hide();},_saveContinue:function(){var dataToSend={};if(this._isChecked('facebook-copy-name')){dataToSend.Name=this._getStringValueOfField('facebook-copy-name');}
if(this._isChecked('facebook-copy-gender')){dataToSend.Gender=this._getStringValueOfField('facebook-copy-gender');}
if(this._isChecked('facebook-copy-birthdate')){dataToSend.Birthday=this._getStringValueOfField('facebook-copy-birthdate');}
if(this._isChecked('facebook-copy-location')){dataToSend.Location=this._getStringValueOfField('facebook-copy-location');}
if(this._isChecked('facebook-copy-hometown')){dataToSend.Hometown=this._getStringValueOfField('facebook-copy-hometown');}
var stringRequest=new Request.JSON({method:'POST',headers:{'Content-Type':'application/json'},urlEncoded:false,url:Page.Url.action('UpdateProfileFromFacebook','Facebook'),data:dataToSend,async:true,onSuccess:this._successCallback.bind(this),onFailure:this._failureCallback.bind(this)}).send();},_successCallback:function(responseJSON){if(this.actionComplete!=undefined){this.actionComplete();}
this.hide();},_failureCallback:function(responseJSON){if(this.actionComplete!=undefined){this.actionComplete();}},_isChecked:function(idName){if($(idName)){if($(idName).checked){return true;}}
return false;},_getStringValueOfField:function(idName,isTextbox){if(isTextbox===null||isTextbox===undefined){isTextbox=false;}
return this._lrtrim((this._getCheckboxDiv($(idName))).get((isTextbox)?'value':'html'));},_getCheckboxDiv:function(clickedNode){return clickedNode.getParent().getParent().getChildren('.val')[0];},_facebookCopyProfilePic:function(event){if($(event.target).checked){$('photo').getChildren('.previous-pic').addClass('hidden');$('photo').getChildren('.new-pic').removeClass('hidden');}
else{$('photo').getChildren('.previous-pic').removeClass('hidden');$('photo').getChildren('.new-pic').addClass('hidden');}},_facebookCopyName:function(event){if($(event.target).checked){var td=this._getCheckboxDiv($(event.target));var name=td.get('html');name=this._lrtrim(name);var nameArray=name.split(' ');var fname='';var lname='';if(nameArray.length>1){fname=nameArray[0];lname=nameArray[nameArray.length-1];}
else{lname=name;}
$('given-name').set('value',fname);$('surname').set('value',lname);}
else{$('given-name').set('value',this._lrtrim($('given-name-orig').get('html')));$('surname').set('value',this._lrtrim($('surname-orig').get('html')));}},_facebookCopyGender:function(event){var td=this._getCheckboxDiv($(event.target));},_facebookCopyBirthdate:function(event){var value=this._getCheckboxDiv($(event.target));},_facebookCopyLocation:function(event){if($(event.target).checked){var td=this._getCheckboxDiv($(event.target));var location=td.get('html');location=this._lrtrim(location);$('residance-place').set('value',location);}
else{$('residance-place').set('value',this._lrtrim($('residance-place-orig').get('html')));}},_facebookCopyHometown:function(event){if($(event.target).checked){var td=this._getCheckboxDiv($(event.target));var location=td.get('html');location=this._lrtrim(location);$('birth-place').set('value',location);}
else{$('birth-place').set('value',this._lrtrim($('birth-place-orig').get('html')));}},_lrtrim:function(value){var ltrimed=value.replace(/^\s+/,"");return ltrimed.replace(/\s+$/,"");}});
Mundia.namespaces("facebookconnect");Mundia.facebookconnect.InviteFacebookSharedModal=new Class({Extends:Mundia.controls.Dialog,_sharedInitialize:function(elementId,urlToReturnTo,maxNumberOfFriends,relationship,friendName){this.returnUrl=urlToReturnTo;this.maxNumberOfFriends=maxNumberOfFriends;this.relationship=relationship;this.friendName=friendName;this.header=(!$hasValue(this.friendName)||maxNumberOfFriends>1)?Mundia.Localizer.getString("Web.Content.scripts.Mundia.facebookconnect.InviteFacebookFriendsModel.InviteFamily"):Mundia.Localizer.getString("Web.Content.scripts.Mundia.facebookconnect.InviteFacebookFriendsModel.InviteHeader").substitute({name:this.friendName});if(this.maxNumberOfFriends===undefined||isNaN(this.maxNumberOfFriends)){this.maxNumberOfFriends=35;}
if(this.relationship==undefined){this.relationship="friends";}
this.uriPath="AcceptInviteClickedFromInsideFbFbml/";},_sharedAttachEvents:function(){this.uri=Page.ViewData["FacebookCanvasUrl"]+this.uriPath+this._lrtrim($('fb-invite-invition-guid').get('html'));$('facebookServerFbml').set('html','<fb:serverfbml style="width: 630px; margin-left:-65px" >'+'<script type="text/fbml">'+'<fb:fbml >'+'<fb:request-form style="background-color:#94a3c4 !important; padding-left:2px !important; padding-top:2px; padding-bottom:2px;" action="'+this.returnUrl+'&invitationGuid='+this._lrtrim($('fb-invite-invition-guid').get('html'))+'" method="POST" invite="true" type="Mundia" content="'+Mundia.Localizer.getString("Web.Content.scripts.Mundia.facebookconnect.InviteFacebookFriendsModel.MessageBody")+' <fb:req-choice url=\''+this.uri+'\' label=\''+Mundia.Localizer.getString("Web.Content.scripts.Mundia.facebookconnect.InviteFacebookFriendsModel.JoinMundia")+'\'/> ">'+'<fb:multi-friend-selector email_invite="false" showborder="true" rows="4" cols="4" max="'+this.maxNumberOfFriends+'" actiontext="'+this.header+'"> '+'</fb:request-form>'+'</fb:fbml>'+'</script>'+'</fb:serverfbml>');(function(){var facebookC=new Mundia.facebookconnect.FacebookConnect();facebookC.FacebookInit();}.bind(this)).delay(200);},_lrtrim:function(value){var ltrimed=value.replace(/^\s+/,"");return ltrimed.replace(/\s+$/,"");}});
Mundia.namespaces("facebookconnect");Mundia.facebookconnect.InviteFacebookFriendsModal=new Class({Extends:Mundia.controls.Dialog,Implements:Mundia.facebookconnect.InviteFacebookSharedModal,initialize:function(elementId,urlToReturnTo,maxNumberOfFriends,relationship,friendName){this._sharedInitialize(elementId,urlToReturnTo,maxNumberOfFriends,relationship,friendName);this.parent(elementId,Page.Url.standardAction('InviteFacebookFriendsPopup','Account'),566,630);},_attachEvents:function(){this.parent();this._sharedAttachEvents();}});
Mundia.namespaces("facebookconnect");Mundia.facebookconnect.TagInviteFacebookFriendsModal=new Class({Extends:Mundia.controls.Dialog,Implements:Mundia.facebookconnect.InviteFacebookSharedModal,initialize:function(elementId,urlToReturnTo,maxNumberOfFriends,relationship,friendName){this._sharedInitialize(elementId,urlToReturnTo,maxNumberOfFriends,relationship,friendName);this.parent(elementId,Page.Url.standardAction('InviteFacebookFriendsPopup','Account'),566,630);},_attachEvents:function(){this.parent();this._sharedAttachEvents();}});
Mundia.namespaces("facebookconnect");Mundia.facebookconnect.SingleFriendRequestModal=new Class({Extends:Mundia.controls.Dialog,initialize:function(elementId,urlToReturnTo,friendId,friendName,skipUrl){this.returnUrl=urlToReturnTo;this.friendName=friendName;this.friendId=friendId;this.skipUri=skipUrl;if(!$hasValue(this.skipUri)){this.skipUri='?';}
this.header=Mundia.Localizer.getString("Web.Content.scripts.Mundia.facebookconnect.InviteFacebookFriendsModel.InviteHeader").substitute({name:this.friendName});var viewUrl=Page.Url.standardAction('InviteFacebookFriendsPopup','Account');this.uriPath="AcceptInviteClickedFromInsideFbFbml/";this.parent(elementId,viewUrl,700,700);},_attachEvents:function(){this.uri=Page.ViewData["FacebookCanvasUrl"]+this.uriPath+this._lrtrim($('fb-invite-invition-guid').get('html'));this.returnUrl+="&InvitationGuid="+this._lrtrim($('fb-invite-invition-guid').get('html'));$$('#invite-single-modal-facebook .close-button','#invite-single-modal-facebook .close').addEvent('click',function(event){event.stop();$('invite-single-modal-facebook').dispose();if(!this.skipUri.contains('?')){this.skipUri+='?';}
window.location.href=this.skipUri+'&wasInviteCanceled=true';}.bind(this));$('facebookServerFbml').set('html','<fb:serverfbml style="width: 630px;" >'+'<script type="text/fbml">'+'<div style="background-color:red">'+'<fb:fbml >'+'<fb:request-form style="background-color:#F9F7E2 !important; padding-left:2px !important; padding-top:2px; padding-bottom:2px; height:422px" action="'+this.returnUrl+'" method="POST" invite="true" type="Mundia" content="'+Mundia.Localizer.getString("Web.Content.scripts.Mundia.facebookconnect.InviteFacebookFriendsModel.MessageBody")+' <fb:req-choice url=\''+this.uri+'\' label=\''+Mundia.Localizer.getString("Web.Content.scripts.Mundia.facebookconnect.InviteFacebookFriendsModel.JoinMundia")+'\'/> ">'+'<fb:profile-pic uid="'+this.friendId+'" linked="false" style="float:left; max-width:200px; max-height:170px; padding-left:25px; padding-top:45px" size="normal" />'+'<img src="http://c.muncn.com/images/tree-create-bg.png" style="bottom:0;float:left;left:50%;margin-left:-325px;position:absolute;width:650px;" /> '+'<div style="float:right;font-size: larger; position:relative; left:15px; top:40px; width:400px; margin:0 auto; color: #D14F00;"><h1 style="color: #D14F00;font-size:16px">'+this.header+'</h1><div style="margin-top:10px; margin-bottom:10px; color:black"><span style="margin-top:10px; color:black">'+Mundia.Localizer.getString("Web.Content.scripts.Mundia.facebookconnect.SingleFriendRequestModal.BodyText")+'</span></div><fb:request-form-submit uid="'+this.friendId+'" />'+'</div><br/>'+'</fb:request-form>'+'</fb:fbml>'+'</div>'+'</script>'+'</fb:serverfbml>');(function(){var facebookC=new Mundia.facebookconnect.FacebookConnect();facebookC.FacebookInit();}.bind(this)).delay(200);},_lrtrim:function(value){var ltrimed=value.replace(/^\s+/,"");return ltrimed.replace(/\s+$/,"");},_closeButton_click:function(event){},_continueButton_click:function(event){}});
Mundia.namespaces("facebookconnect");Mundia.facebookconnect.AskFamilyMemberViaFacebookModal=new Class({Extends:Mundia.controls.Dialog,initialize:function(elementId,urlToReturnTo,friendId,friendName,skipUrl,headerText,actionText){this.returnUrl=urlToReturnTo;this.friendName=friendName;this.friendId=friendId;this.skipUri=skipUrl;this.message=$('message-body').value;this.header=headerText;this.action=actionText;var viewUrl=Page.Url.standardAction('InviteFacebookFriendsPopup','Account');this.parent(elementId,viewUrl,700,700);},_attachEvents:function(){$$('#invite-single-modal-facebook .close-button','#invite-single-modal-facebook .close').addEvent('click',function(event){event.stop();$('invite-single-modal-facebook').dispose();window.location.href=this.skipUri;}.bind(this));$('facebookServerFbml').set('html','<fb:serverfbml style="width: 630px;" >'+'<script type="text/fbml">'+'<div style="background-color:red">'+'<fb:fbml >'+'<fb:request-form style="background-color:#F9F7E2 !important; padding-left:2px !important; padding-top:2px; padding-bottom:2px; height:422px" action="'+this.skipUri+'" method="POST" invite="true" type="Mundia" content="'+this.message+' <fb:req-choice url=\''+this.returnUrl+'\' label=\''+this.action+'\'/> ">'+'<fb:profile-pic uid="'+this.friendId+'" linked="false" style="float:left; max-width:200px; max-height:170px; padding-left:25px; padding-top:45px" size="normal" />'+'<img src="http://c.muncn.com/images/tree-create-bg.png" style="bottom:0;float:left;left:50%;margin-left:-325px;position:absolute;width:650px;" /> '+'<div style="float:right;font-size: larger; position:relative; left:15px; top:40px; width:400px; margin:0 auto; color: #D14F00;"><h1 style="color: #D14F00;font-size:16px">'+this.header+'</h1><div style="margin-top:10px; margin-bottom:10px; color:black; width:300px"><span style="margin-top:10px; color:black; ">'+this.message+'</span></div><fb:request-form-submit uid="'+this.friendId+'" />'+'</div><br/>'+'</fb:request-form>'+'</fb:fbml>'+'</div>'+'</script>'+'</fb:serverfbml>');(function(){var facebookC=new Mundia.facebookconnect.FacebookConnect();facebookC.FacebookInit();}.bind(this)).delay(200);},_lrtrim:function(value){var ltrimed=value.replace(/^\s+/,"");return ltrimed.replace(/\s+$/,"");},_closeButton_click:function(event){},_continueButton_click:function(event){}});
Mundia.namespaces("account.successfullyLinked");Mundia.account.successfullyLinked.SuccessfullyLinkedStateMachine=new Class({_state:function(state){var facebookC=new Mundia.facebookconnect.FacebookConnect();if(state==1){if($('check-box-tell-your-friends')){if($('check-box-tell-your-friends').checked){facebookC.SetOnSuccessAction(function(){this._state(2);}.bind(this));facebookC.SetOnFailureAction(function(){this._state(2);}.bind(this));facebookC.SetOnCommunicationErrorAction(function(){this._state(2);}.bind(this));facebookC.PostJustJoinedToWall();return;}}
this._state(2);return;}
else if(state==2){if($('check-box-add-facebook-pictures')){if($('check-box-add-facebook-pictures').checked){facebookC.SetOnSuccessAction(function(){this._state(3);}.bind(this));facebookC.SetOnFailureAction(function(){this._state(3);}.bind(this));facebookC.SetOnCommunicationErrorAction(function(){this._state(3);}.bind(this));facebookC.AddFacebookInfoToMundiaDialog();return;}}
this._state(3);return;}
else if(state==3){if($('check-box-invite-your-facebook-friends')){if($('check-box-invite-your-facebook-friends')){if($('check-box-invite-your-facebook-friends').checked){window.location.href=Page.Url.action('SelectFacebookFriendsAndFamily','Contacts');return;}}}
this._completeState();return;}}});
Mundia.namespaces("account.successfullyLinked");Mundia.account.successfullyLinked.SuccessfullyLinkedModel=new Class({Extends:Mundia.controls.Dialog,Implements:Mundia.account.successfullyLinked.SuccessfullyLinkedStateMachine,initialize:function(elementId,onContinueAction){this.OnContinueAction=onContinueAction;var viewUrl=Page.Url.action('SuccessfullyLinkedAccountPopup','Account');this.parent(elementId,viewUrl,976,575);},_attachEvents:function(){$('cancel-new-facebook-actions').addEvent('click',this._closeButton_click.bind(this));$('continue-new-facebook-actions').addEvent('click',this._continueButton_click.bind(this));},_closeButton_click:function(event){event.stop();this.hide();if(this.OnContinueAction!=undefined){this.OnContinueAction();}},_continueButton_click:function(event){event.stop();this._state(1);return;},_completeState:function(){this.hide();if(this.OnContinueAction!=undefined){this.OnContinueAction();}}});
function initPage(){clearInputs();buttonsOpt();initNav();}
if(window.addEventListener){window.addEventListener("load",initPage,false);}
else if(window.attachEvent&&!window.opera){window.attachEvent("onload",initPage);}
function clearInputs(){var _el=document.getElementsByTagName('input');for(var i=0;i<_el.length;i++){if(_el[i].type=='password'||(_el[i].type=='text'&&_el[i].id==='enter-family')){var temp=true;}}}
function buttonsOpt(){var _el=$$('.button');for(var i=0;i<_el.length;i++){var element=_el[i];element.onmouseover=function(){element.addClass('hover');};element.onmouseout=function(){element.removeClass('hover');};element.onmousedown=function(){element.addClass('on-down');};element.onmouseup=function(){element.removeClass('on-down');};}}
function initMap(){var el_h=document.getElementById('homeMap');var _popup=document.getElementById('map-popup');if(el_h&&_popup){var _timer;var popup_h=_popup.parentNode;var _btn=document.getElementsByTagName('li');for(var i=0;i<_btn.length;i++){var _box=_btn[i].getElementsByTagName('div')[0];if(_box){_btn[i]._box=_box;_btn[i].onmouseover=function(){displayPopup(this);};_btn[i].onmouseout=function(){hidePopup();};}}
popup_h.onmouseover=function(){if(_timer){clearTimeout(_timer);}};popup_h.onmouseout=function(){hidePopup();};function displayPopup(_btn){popup_h.className=popup_h.className.replace('left-popup','');if(_timer){clearTimeout(_timer);}
_popup.innerHTML=_btn._box.innerHTML;popup_h.style.display='block';var _t=_btn.offsetTop;var _l=_btn.offsetLeft-popup_h.offsetWidth;if(_l<0){_l=_btn.offsetLeft;popup_h.className+=' left-popup';}
popup_h.style.top=(_t-28)+'px';popup_h.style.left=(_l+2)+'px';}
function hidePopup(){_timer=setTimeout(function(){popup_h.style.display='none';popup_h.style.top='-6666px';popup_h.className=popup_h.className.replace('left-popup','');_popup.innerHTML='';},100);}}}
function initNav()
{var navRoot=document.getElementById("table");if(navRoot){var lis=navRoot.getElementsByTagName("li");for(var i=0;i<lis.length;i++)
{lis[i].onmouseover=function(){this.className+=" hover";};lis[i].onmouseout=function(){this.className=this.className.replace(new RegExp("hover"),"");};}}}
var _selectHeight=22;var _forms=document.getElementsByTagName('form');var inputs=new Array();var selects=new Array();var labels=new Array();var radios=new Array();var radioLabels=new Array();var checkboxes=new Array();var checkboxLabels=new Array();var buttons=new Array();var all_selects=false;var active_select=null;var agt=navigator.userAgent.toLowerCase();var isMac=is_mac();var selectText="please select";var IN_CFORMS=true;var check_marker=false;function is_mac(){if(navigator.appVersion.indexOf("Safari")!=-1)
{if(!window.getComputedStyle)
{return true;}}
return false;}
function initCastomForms(){if(!document.getElementById){return false;}
getElements();separateElements();replaceSelects();var _selects=document.getElementsByTagName('select');var _SelctClassName=[];if(_selects){for(var i=0;i<_selects.length;i++){if(!$(_selects[i]).hasClass('countrySelectionDropdown')&&!$(_selects[i]).hasClass('outtaHere')){_SelctClassName[i]=' drop-'+_selects[i].className;}}
for(var j=0;j<_SelctClassName.length;j++){var _selectDrop=document.getElementById('optionsDiv'+j);if(_selectDrop){if(_SelctClassName[j]){_selectDrop.className+=_SelctClassName[j];}}}}
return true;}
function getElements(){for(var nf=0;nf<document.getElementsByTagName("form").length;nf++){for(var nfi=0;nfi<document.forms[nf].getElementsByTagName("input").length;nfi++){inputs.push(document.forms[nf].getElementsByTagName("input")[nfi]);}
for(var nfl=0;nfl<document.forms[nf].getElementsByTagName("label").length;nfl++){labels.push(document.forms[nf].getElementsByTagName("label")[nfl]);}
for(var nfs=0;nfs<document.forms[nf].getElementsByTagName("select").length;nfs++){selects.push(document.forms[nf].getElementsByTagName("select")[nfs]);}
if(document.forms[nf].className.indexOf("custom-check")!=-1){check_marker=true;}}}
function separateElements(){var r=0;var c=0;var t=0;var rl=0;var cl=0;var tl=0;var b=0;for(var q=0;q<inputs.length;q++){if(inputs[q].type=="radio"){radios[r]=inputs[q];++r;for(var w=0;w<labels.length;w++){if((inputs[q].id)&&labels[w].htmlFor==inputs[q].id)
{radioLabels[rl]=labels[w];++rl;}}}
if(inputs[q].type=="checkbox"){checkboxes[c]=inputs[q];++c;for(var w2=0;w2<labels.length;w2++){if((inputs[q].id)&&(labels[w2].htmlFor==inputs[q].id))
{checkboxLabels[cl]=labels[w2];++cl;}}}
if((inputs[q].type=="submit")||(inputs[q].type=="button")){buttons[b]=inputs[q];++b;}}}
function replaceRadios(){for(var q=0;q<radios.length;q++){radios[q].className+=" outtaHere";var radioArea=document.createElement("div");if(radios[q].checked){radioArea.className="radioAreaChecked";}
else
{radioArea.className="radioArea";}
radioArea.id="myRadio"+q;radios[q].parentNode.insertBefore(radioArea,radios[q]);radios[q]._ra=radioArea;radioArea.onclick=new Function('rechangeRadios('+q+')');if(radioLabels[q])
{radioLabels[q].onclick=new Function('rechangeRadios('+q+')');}}
return true;}
function checkRadios(who){var what=radios[who]._ra;for(var q=0;q<radios.length;q++){if((radios[q]._ra.className=="radioAreaChecked")&&(radios[q]._ra.nextSibling.name==radios[who].name))
{radios[q]._ra.className="radioArea";}}
what.className="radioAreaChecked";}
function changeRadios(who){if(radios[who].checked){for(var q=0;q<radios.length;q++){if(radios[q].name==radios[who].name){radios[q].checked=false;}
radios[who].checked=true;checkRadios(who);}}}
function rechangeRadios(who){if(!radios[who].checked){for(var q=0;q<radios.length;q++){if(radios[q].name==radios[who].name){radios[q].checked=false;}
radios[who].checked=true;checkRadios(who);}}}
function replaceCheckboxes(){if(check_marker){for(var q=0;q<checkboxes.length;q++){checkboxes[q].className+=" outtaHere";var checkboxArea=document.createElement("div");if(checkboxes[q].checked){checkboxArea.className="checkboxAreaChecked";}
else{checkboxArea.className="checkboxArea";}
checkboxArea.id="myCheckbox"+q;checkboxes[q].parentNode.insertBefore(checkboxArea,checkboxes[q]);checkboxes[q]._ca=checkboxArea;checkboxArea.onclick=checkboxArea.onclick2=new Function('rechangeCheckboxes('+q+')');if(checkboxLabels[q])
{checkboxLabels[q].onclick=new Function('changeCheckboxes('+q+')');}
checkboxes[q].onkeydown=checkEvent;}
return true;}}
function checkCheckboxes(who,action){var what=checkboxes[who]._ca;if(action===true||action==='true'){what.className="checkboxAreaChecked";what.checked=true;}
if(action===false||action==='false'){what.className="checkboxArea";what.checked=false;}}
function changeCheckboxes(who){if(checkboxes[who].checked){checkCheckboxes(who,false);}
else{checkCheckboxes(who,true);}}
function rechangeCheckboxes(who){var tester=false;if(checkboxes[who].checked===true){tester=false;}
else{tester=true;}
checkboxes[who].checked=tester;checkCheckboxes(who,tester);}
function checkEvent(e){if(!e){e=window.event;}
if(e.keyCode==32){for(var q=0;q<checkboxes.length;q++){if(this==checkboxes[q]){changeCheckboxes(q);}}}}
function replaceSelects(){for(var q=0;q<selects.length;q++){if(!selects[q].replaced&&selects[q].offsetWidth&&$(selects[q]).hasClass('custom'))
{selects[q]._number=q;var selectArea=document.createElement("div");var left=document.createElement("span");left.className="left";selectArea.appendChild(left);var disabled=document.createElement("span");disabled.className="disabled";selectArea.appendChild(disabled);selects[q]._disabled=disabled;var center=document.createElement("span");var button=document.createElement("a");var text=document.createTextNode(selectText);center.id="mySelectText"+q;center.onclick=showOptions.bindWithEvent(center,q);var stWidth=selects[q].offsetWidth;selectArea.style.width=stWidth+"px";if(selects[q].parentNode.className.indexOf("type2")!=-1){button.href="javascript:showOptions("+q+",true)";}else{button.href="javascript:showOptions("+q+",false)";}
button.className="selectButton";selectArea.className="selectArea";selectArea.className+=" "+selects[q].className;selectArea.id="sarea"+q;center.className="center";center.appendChild(text);selectArea.appendChild(center);selectArea.appendChild(button);selects[q].className+=" outtaHere";selects[q].parentNode.insertBefore(selectArea,selects[q]);var optionsDiv=document.createElement("div");if(selects[q].id.indexOf('bottom')!=-1){optionsDiv._b=true;}
var optionsList=document.createElement("ul");optionsDiv.innerHTML+="<div class='select-top'><div></div></div>";optionsDiv.appendChild(optionsList);selects[q]._options=optionsList;optionsDiv.style.width=stWidth+"px";optionsDiv._parent=selectArea;optionsDiv.className="optionsDivInvisible";optionsDiv.id="optionsDiv"+q;populateSelectOptions(selects[q]);optionsDiv.innerHTML+="<div class='select-bottom'><div class='select-bottom-left'></div><div class='select-bottom-right'></div></div>";document.getElementsByTagName("body")[0].appendChild(optionsDiv);selects[q].replaced=true;}
all_selects=true;}}
function populateSelectOptions(me){me._options.innerHTML="";for(var w=0;w<me.options.length;w++){var optionHolder=document.createElement('li');var optionLink=document.createElement('a');var optionTxt;if(me.options[w].title.indexOf('image')!=-1){optionTxt=document.createElement('img');optionSpan=document.createElement('span');optionTxt.src=me.options[w].title;optionSpan=document.createTextNode(me.options[w].text);}else{optionTxt=document.createTextNode(me.options[w].text);}
optionLink.href="javascript:selectLanguage('"+me.id+"',"+w+","+me._number+");";if(me.options[w].title.indexOf('image')!=-1){optionLink.appendChild(optionTxt);optionLink.appendChild(optionSpan);}else{optionLink.appendChild(optionTxt);}
optionHolder.appendChild(optionLink);me._options.appendChild(optionHolder);if(me.options[w].selected){selectMe(me.id,w,me._number);optionHolder.style.display='none';}}
if(me.disabled){me._disabled.style.display="block";}
else{me._disabled.style.display="none";}}
function selectLanguage(selectFieldId,linkNo,selectNo){if(selectFieldId.indexOf('top')>-1){if(document.getElementById('language-bottom')){document.getElementById('language-bottom').options[linkNo].selected=true;}}
else{if(document.getElementById('language-top')){document.getElementById('language-top').options[linkNo].selected=true;}}
selectMe(selectFieldId,linkNo,selectNo);}
function selectMe(selectFieldId,linkNo,selectNo){selectField=selects[selectNo];for(var k=0;k<selectField.options.length;k++){if(k==linkNo){selectField.options[k].selected=true;if(document.getElementById('optionsDiv'+selectNo)){document.getElementById('optionsDiv'+selectNo).getElementsByTagName('li')[k].style.display='none';}}
else{selectField.options[k].selected=false;if(document.getElementById('optionsDiv'+selectNo)){document.getElementById('optionsDiv'+selectNo).getElementsByTagName('li')[k].style.display='block';}}}
if(document.getElementById("mySelectText1")){updateText(0,selectField,linkNo);updateText(1,selectField,linkNo);}
else{updateText(selectNo,selectField,linkNo);}
if(selectField.isLoaded){$(selectField).fireEvent('change',{target:selectField});}
else{selectField.isLoaded=true;}}
function updateText(selectNo,selectField,linkNo){textVar=document.getElementById("mySelectText"+selectNo);if(!textVar){return;}
var newText;var optionSpan;if(selectField.options[linkNo].title.indexOf('image')!=-1){newText=document.createElement('img');newText.src=selectField.options[linkNo].title;optionSpan=document.createElement('span');optionSpan=document.createTextNode(selectField.options[linkNo].text);}else{newText=document.createTextNode(selectField.options[linkNo].text);}
if(selectField.options[linkNo].title.indexOf('image')!=-1){if(textVar.childNodes.length>1){textVar.removeChild(textVar.childNodes[0]);}
textVar.replaceChild(newText,textVar.childNodes[0]);textVar.appendChild(optionSpan);}else{if(textVar.childNodes.length>1){textVar.removeChild(textVar.childNodes[0]);}
textVar.replaceChild(newText,textVar.childNodes[0]);}}
function showOptions(event,g){if(!$chk(g)){g=event;}
_elem=document.getElementById("optionsDiv"+g);var divArea=document.getElementById("sarea"+g);if(active_select&&active_select!=_elem){active_select.className=active_select.className.replace('optionsDivVisible','');active_select.className+=" optionsDivInvisible";active_select.style.height="auto";active_select._p.className=active_select._p.className.replace('opened','');}
if(_elem.className.indexOf("optionsDivInvisible")!=-1){_elem.style.left="-9999px";if(_elem._b){_elem.className=_elem.className.replace('optionsDivInvisible','');_elem.className+=" optionsDivVisible";if(_elem.className.indexOf('bottom')==-1){_elem.className+=' bottom';}
_elem.style.top=findPosY(divArea)-_elem.offsetHeight+'px';}
else{_elem.style.top=findPosY(divArea)+_selectHeight+'px';_elem.className=_elem.className.replace('optionsDivInvisible','');_elem.className+=" optionsDivVisible";}
if(divArea.className.indexOf('opened')==-1){divArea.className+=' opened';}
_elem.style.left=findPosX(divArea)+'px';active_select=_elem;active_select._p=divArea;if(document.documentElement)
{document.documentElement.onclick=hideSelectOptions;}
else
{window.onclick=hideSelectOptions;}}
else if(_elem.className.indexOf("optionsDivVisible")!=-1){_elem.style.height="auto";_elem.className=_elem.className.replace('optionsDivVisible','');_elem.className+=" optionsDivInvisible";divArea.className=divArea.className.replace('opened','');}}
function hideSelectOptions(e)
{if(active_select)
{if(!e){e=window.event;}
var _target=(e.target||e.srcElement);if(isElementBefore(_target,'selectArea')===0&&isElementBefore(_target,'optionsDiv')===0)
{active_select.className=active_select.className.replace('optionsDivVisible','');active_select.className=active_select.className.replace('optionsDivInvisible','');active_select.className+=" optionsDivInvisible";active_select._p.className=active_select._p.className.replace('opened','');active_select=false;if(document.documentElement)
{document.documentElement.onclick=function(){};}
else
{window.onclick=null;}}}}
function isElementBefore(_el,_class)
{var _parent=_el;do
{_parent=_parent.parentNode;}
while(_parent&&$hasValue(_parent.className)&&_parent.className.indexOf(_class)==-1)
if(_parent.className&&_parent.className.indexOf(_class)!=-1)
{return 1;}
else
{return 0;}}
function findPosY(obj){var posTop=0;while(obj.offsetParent){posTop+=obj.offsetTop;obj=obj.offsetParent;}
return posTop;}
function findPosX(obj){var posLeft=0;while(obj.offsetParent){posLeft+=obj.offsetLeft;obj=obj.offsetParent;}
return posLeft;}
window.onload=initCastomForms;