var $dr=function(func){window.addEvent('domready',function(){func();});}
function d(){if($defined(window.console)){$each(arguments,function(arg){console.debug(arg);});}}
$dr(function(){var flashes=$$('div.flashMessages div.message-success','div.flashMessages div.message-error','div.flashMessages div.message-notice','div.flashMessages div.message-flash');AffAjaxHelper.flashGoByeBye(flashes,5000);});var AffUI={overlay:function(element,styles,properties){if(!$defined(styles))styles={};if(styles===false){var overlay=$(element).retrieve('aff-dom-overlay');if(overlay){$(overlay).destroy();return true;}
return false;}
if($type(styles)=='element'){var overlay=styles;}else{var coords=this.__overlayCoordinates(element);var _styles={'position':'absolute','top':coords.top+'px','left':coords.left+'px','width':coords.width+'px','height':coords.height+'px','background-color':'#FFFFFF','background-image':'url(/img/spinner.gif)','background-position':'50% 50%','background-repeat':'no-repeat','opacity':'0.8'};$extend(_styles,styles);var _properties={'class':'aff-dom-overlay'};if($defined(properties)){$extend(_properties,properties);}
_properties.styles=_styles;var overlay=new Element('div',_properties);}
$(element).setStyles({'position':'relative'});$(element).grab(overlay);$(element).store('aff-dom-overlay',overlay);return overlay;},__overlayCoordinates:function(element){var c=$(element).getSize();var coords={top:0,left:0,width:c.x,height:c.y};$each({top:'border-top-width',left:'border-left-width'},function(border,coord){var style=$(element).getStyle(border);var size=style.match(/(\d+)px/);if(size){coords[coord]=parseInt(coords[coord])-parseInt(size[1]);}});return coords;}}
var AffiloramaUIControl={name:'AffiloramaUIControl',init:function(){if(!$defined(window.AffiloramUI)){window.AffiloramUI=new Hash.Cookie('AFFILORAMA[ui]');}},get:function(key){AffiloramaUIControl.init();return window.AffiloramUI.get(key);},set:function(key,data){AffiloramaUIControl.init();if($type(key)=='object'){window.AffiloramUI.extend(key);}else if($type(key)=='string'&&$defined(data)){var curr=window.AffiloramUI.get(key);if(curr&&$type(curr)=='object'){window.AffiloramUI.set(key,$merge(curr,data));}else{window.AffiloramUI.set(key,data);}}}}
AffiloramaUIControl.ToggleBox=new Class({Implements:[Events,Options],element:null,togglers:[],key:false,options:{togglerText:{show:'show',hide:'hide'}},initialize:function(ele,togs,key,options){this.setOptions(options);var togglers=$$(togs);var element=$(ele);if(element&&togglers){this.key=$defined(key)?key:false;this.element=element;this.togglers=togglers;var updateTogglers=this.updateTogglers.bind(this);element.set('slide',{onComplete:this.setState.bind(this)})
togglers.addEvent('click',function(e){e.stop();element.slide('toggle');updateTogglers();});if(this.key){var state=this.getState();if($defined(state[key])&&state[key]==0){element.slide('hide');updateTogglers(true);}}}},setState:function(){var open=this.element.get('slide').open;if(this.key){var state=this.getState();state[this.key]=open?1:0;AffiloramaUIControl.set('uiTogglebox',state);}
return open;},getState:function(){return AffiloramaUIControl.get('uiTogglebox')||{};},open:function(){this.setState();this.element.slide('out');this.updateTogglers(false);},close:function(){this.setState();this.element.slide('in');this.updateTogglers(true);},updateTogglers:function(force){var open=$defined(force)?force:this.element.get('slide').open;this.togglers.set('text',open?this.options.togglerText.show:this.options.togglerText.hide);}})
var AffAjaxHelper={name:'AffAjaxHelper',urid:function(url){url+='?urid='+$time();return url;},ajaxPaging:function(pageingDiv){var pageLinks=$$('.paging a');pageLinks.each(function(pageLink){pageLink.addEvent('click',function(event){event.stop();AffAjaxHelper.pagingRequest(pageingDiv,this.href);});});},pagingRequest:function(div,url){new Request({onRequest:function(){AffAjaxHelper.loadOverlay(div);},onComplete:function(responseText){AffAjaxHelper.removeOverlay(div,responseText);AffAjaxHelper.ajaxPaging(div);}}).get(AffAjaxHelper.urid(url));},loadOverlay:function(div){var size=div.getScrollSize();var dstyle={'position':'relative'};if(size.y<50){size.y=50;dstyle.height='50px';}
div.set('styles',dstyle);overlay=new Element('div',{'class':'load-overlay','styles':{'position':'absolute','top':0,'width':size.x+'px','height':size.y+'px','background':'#FFFFFF url(/img/spinner.gif) 50% 50% no-repeat','opacity':'0.8'}});div.grab(overlay);return overlay;},removeOverlay:function(div,responseText){div.set('styles',{'height':'auto'});div.set('html',responseText);if(Browser.Engine.trident){AffAjaxHelper.loadOverlay(div);div.set('html',responseText);}
return true;},formPost:function(formEl,formObj,events,requestOptions){if(!$defined(formObj)){var formObj=formEl.getElement('form');}
if(formObj){var enc=formObj.getProperty('enctype');if(!enc||enc!="multipart/form-data"){if(!$defined(requestOptions)){var requestOptions={};}
var request=$merge({url:AffAjaxHelper.urid(formObj.action),method:'post'},requestOptions);formObj.set('send',request);formObj.get('send').addEvents({'request':function(){formObj.fireEvent('beforeLoading',formEl);AffAjaxHelper.loadOverlay(formEl);formObj.fireEvent('afterLoading',formEl);},'complete':function(responseText){formObj.fireEvent('beforeLoaded',[responseText,formEl]);AffAjaxHelper.removeOverlay(formEl,responseText);formObj.fireEvent('afterLoaded',formEl);AffAjaxHelper.formPost(formEl,null,($defined(events)?events:null));}});if($defined(events)){formObj.get('send').addEvents(events);}
formObj.addEvent('submit',function(event){event.stop();this.send();});}}},checkErrors:function(output,check){errorDiv=$(check);if(errorDiv!==null){flashMessage=errorDiv.getElements('div.flashMessages');if(flashMessage!=null){$(output).set('html',flashMessage.get('html'));flashMessage.setStyle('display','none');if(flashMessage.get('html')!=''){new Fx.Scroll(window).toElement(output);}}}},flashGoByeBye:function(eles,time){if($defined(window.flashGoByeByeTimer))$clear(window.flashGoByeByeTimer);var transition={height:0,opacity:0,'padding-top':0,'padding-bottom':0};eles.each(function(el){if(!el.hasClass('nohide')){el.set('morph',{duration:'long',transition:Fx.Transitions.Quad.easeOut});if(el.hasClass('click')){el.set('title','Click to hide this message.');el.addEvent('click',function(){el.morph(transition);});}else{el.morph.delay(time,el,transition);}}});}};var Former={name:'Former',options:{'hints':{'selector':'span.hint','finder':function(hint){return hint.getParent().getNext();}}},activeFields:function(){if(arguments.length>1){$each(arguments,function(formEl){this.activeFields(formEl);},this);return;}else{var formId='#'+arguments[0];}
formEls=$$(formId+' input',formId+' select',formId+' textarea');formEls.addEvents({'focus':function(){this.addClass('active');},'blur':function(){this.removeClass('active');}});},focusHints:function(){if(arguments.length>1){$each(arguments,function(formEl){this.focusHints(formEl);},this);return;}else{var formId=arguments[0];}
var form=$(formId);if(form){var hints=form.getElements(this.options.hints.selector);var finder=this.options.hints.finder;if(hints){hints.each(function(hint){var hintInput=hint.retrieve('hintInput');if($type(hintInput)=='function'){var input=hintInput(hint);}else if(hintInput){var input=$(hintInput)||finder(hint);}else{var input=finder(hint);}
if(input){var div=hint.getParent('div');input.addEvents({'focus':function(){hint.setStyle('display','inline');div.addClass('hintShowing');},'blur':function(){hint.setStyle('display','none');div.removeClass('hintShowing');}});}});}}},clearFocus:function(){var options={focus:$lambda(true),blur:$lambda(true)};$each(arguments,function(f,i){if($type(f)=='object'){options=$merge(options,f);return;}
if(f.get('type')=='password'){Former._clearFocusPass(f,options);}else{f.store('initialValue',f.value);f.addEvents({'focus':function(){var clear=(this.value==this.retrieve('initialValue'));if(options.focus(clear,this)){if(clear){this.value='';}}},'blur':function(){var revert=(this.value=='');if(options.blur(revert,this)){if(revert){this.value=this.retrieve('initialValue');}}}});}});},_clearFocusPass:function(passwordField,options){passwordField.store('initialValue',passwordField.value);var toggle=function(el,show){var state=show?show:'none';el.setStyle('display',state);}
var passwordInput=new Element('input',{'type':'text','value':passwordField.get('value'),'class':passwordField.get('class')});passwordInput.inject(passwordField,'before');toggle(passwordField,false);passwordField.set('value','');var passwordFocus=(function(){var clear=(this.value==this.retrieve('initialValue'));if(options.focus(clear,this,passwordInput)){if(clear){this.value='';}}
try{this.focus();}catch(e){};}).bind(passwordField);var passwordBlur=(function(){if(this.value==''){this.value=this.retrieve('initialValue');}
var revert=(this.value==this.retrieve('initialValue'));if(options.blur(revert,this,passwordInput)){if(revert){toggle(this,false);toggle(passwordInput,'block');}}}).bind(passwordField);var passwordInputFocus=(function(){toggle(this,false);toggle(passwordField,'block');passwordFocus();}).bind(passwordInput);passwordInput.addEvents({'focus':function(){passwordInputFocus();},'blur':function(){}});passwordField.addEvents({'focus':function(){passwordFocus();},'blur':function(){passwordBlur();}});passwordInputFocus();passwordBlur();},remember:function(ele){var confirmText="By ticking this box you will no longer need to log in"+"to Affilorama from this computer.\n\n"+"You can turn this feature off by logging out any time\n\n"+"Please don't use this option unless you are the only person "+"who has access to this computer."
$(ele).addEvent('click',function(){if(this.checked){alert(confirmText);this.removeEvents('click');}});}};var CakeForm={options:{errorElement:'div',errorClass:'error-message'},errors:function(form,jsonResponse,clearErrors){formObj=$type(form)=='element'?form:$(form);if(!formObj){return;}
if(!$defined(clearErrors)||clearErrors){CakeForm.clearErrors(formObj);}
var validation=JSON.decode(jsonResponse);$each(validation,function(errors,model){$each(errors,function(message,field){var fieldEle=$(CakeForm.fieldId(model,field))||$(field);if(fieldEle){CakeForm.setFieldError(fieldEle,message);}});});},setFieldError:function(fieldEle,message,options,clas){var errorClass=$defined(clas)?clas:'error';var errorOptions=$type(options)=='object'?options:{};var div=fieldEle.getParent('div');div.grab(CakeForm.createError(message,errorOptions));div.addClass(errorClass);},clearErrors:function(form,clas){var errorClass=$defined(clas)?clas:'error';formObj=$(form);if(!formObj){return;}
var e=CakeForm.getErrors(formObj);if(e){e.destroy();}
var divs=formObj.getElements('div.input');divs.removeClass(errorClass);},getErrors:function(form){formObj=$type(form)=='element'?form:$(form);if(!formObj){return;}
return formObj.getElements(CakeForm.options.errorElement+'.'+CakeForm.options.errorClass);},clearError:function(model,field,clas){var errorClass=$defined(clas)?clas:'error';if($type(model)=='element'){var fieldEle=model;}else{var fieldEle=$(CakeForm.fieldId(model,field))||$(field);}
if(fieldEle){var div=fieldEle.getParent('div.input');var e=div.getElement(CakeForm.options.errorElement+'.'+CakeForm.options.errorClass);if(e){e.destroy();}
div.removeClass(errorClass);}},createError:function(message,options){var elementOptions={'class':CakeForm.options.errorClass,'html':message}
if($defined(options)){elementOptions=$merge(elementOptions,options);}
var e=new Element(CakeForm.options.errorElement,elementOptions);return e;},formReset:function(form){formObj=$(form);if(!formObj){return;}},fieldId:function(model,field){return model+field.replace(/_/g,'-').camelCase().capitalize();}};Browser.Test={upgradeTest:function(el,where){if(Browser.Engine.trident4){if(!Browser.Test.detect('Browser.Test.trident4')){Browser.Test.prompt('trident4',el,where);}}},cookieTest:function(el,where){if(!Browser.Test.coookie()){Browser.Test.prompt('coookie',el,where);}},coookie:function(){var n='Browser.Test.coookie';var c=Browser.Test.detect(n);if(c){return true;}else{Browser.Test.acknowledge(n)
return Browser.Test.detect(n);}},detect:function(name){return Cookie.read(name);},prompt:function(name,el,where){var layout=new Element('div',{'id':'internalMessage'+name,'class':'message message-internal content '+name,'html':Browser.prompts[name]});var hide=new Element('a',{'href':'#','class':'close','text':'X','title':'Hide this message.'});layout.grab(hide,'top');var ack=this.acknowledge.pass('Browser.Test.'+name,this);hide.addEvent('click',function(e){e.stop();layout.set('morph',{duration:'long',transition:Fx.Transitions.Cubic.easeIn});layout.morph({height:0,opacity:0,'padding-top':0,'padding-bottom':0});layout.destroy.delay(1000,layout);ack();});el.grab(layout,where);},acknowledge:function(name){Cookie.write(name,$time(),{duration:0});}}
Browser.prompts={trident4:'<h3>We have detected you are using Internet Explorer 6</h3>'+'<p>Due to security and the technology used in IE 6 Affilorama will not operate correctly.</p>'+'<p>It is highly recommended you upgrade to one of the following:</p>'+'<ul>'+'<li><a href="http://www.microsoft.com/windows/downloads/ie/getitnow.mspx" target="_blank">Internet Explorer 7</a></li>'+'<li><a href="http://www.mozilla.com/en-US/firefox/" target="_blank">Firefox 3</a></li>'+'<li><a href="http://www.google.com/chrome" target="_blank">Google Chrome</a></li>'+'<li><a href="http://www.apple.com/safari/download/" target="_blank">Safari</a></li>'+'</ul>',coookie:'<h3>Cookies Disabled!</h3>'+'<p>&ldquo;Cookies&rdquo; are small pieces of information that your browser stores on your computer on behalf of a website that you have visited.<br />'+'Affilorama requires you to have cookies enabled, to find out more about about how you can do this visit our <a href="/support">support page</a> and view</p>'+'<p><strong><em>I am getting a &lsquo;Cookie Error&rsquo;?</em><strong></p>',flashVideo:'<div class="message-access">'+'<h3>Hey! Where\'s the video gone?</h3>'+'<p>To view this video you need to have Javascript enabled in your browser and the latest version of Adobe Flash Player. (<a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" target="_blank">Get&nbsp;Flash&nbsp;Player&nbsp;here&nbsp;&raquo;</a>)</p>'+'<p>If you still can\'t see the video (and you\'ve cleared your cache and restarted your computer for good measure) please <a href="/support">let us know</a>.</p>'+'</div>',flashAudio:'<div class="message-access">'+'<h3>Hey! Where\'s the audio gone?</h3>'+'<p>To listen to this audio you need the latest version of Adobe Flash Player. (<a href="http://www.adobe.com/shockwave/download/download.cgi?P1_Prod_Version=ShockwaveFlash" target="_blank">Get&nbsp;Flash&nbsp;Player&nbsp;here&nbsp;&raquo;</a>)</p>'+'<p>If you still can\'t see the audio buttons (and you\'ve cleared your cache and restarted your computer for good measure) please <a href="/support">let us know</a>.</p>'+'</div>'}
function decodeHTML(e){var d=document.createElement('DIV');d.innerHTML=e;if(d.innerText!=undefined){return d.innerText;}
else if(d.textContent!=undefined){return d.textContent;}
var entities=[["&amp;","&"],["&gt;",">"],["&lt;","<"],["&nbsp;"," "]];var clean=e.replace(/<[^>]*>/g,"");for(var i=0,limit=entities.length;i<limit;++i){clean=clean.replace(new RegExp(entities[i][0],"ig"),entities[i][1]);}
return clean;}
function wasLoggedIn(){if(!$defined($('membernav')))
return false;if($("membernav").get("text").replace(/\s*/,'')=="")
return false;return true;}
function sendToLogin(){var url=document.location.href;var m=url.match(/^(.*?\/\/[^\/]+)(.*)$/);if(m)
document.location=m[1]+"/login?return="+(escape(m[2]).replace("+","%2B").replace("/","%2F"));else
document.location="http://www.affilorama.com/login";}
function video_popup(el,url,title,width,height){var w=$defined(width)?width:748;var h=$defined(height)?height:529;var r=new Request({url:url,evalScripts:true});window.videoPopupAdjust=null;r.onSuccess=function(txt){if(!$defined(window.popupCounter))window.popupCounter=1;if($type(window.videoPopupAdjust)=='object'){if($defined(window.videoPopupAdjust.w)){w=w+window.videoPopupAdjust.w;}
if($defined(window.videoPopupAdjust.h)){h=h+window.videoPopupAdjust.h;}
window.videoPopupAdjust=null;}
window.currentLessonPopup=new MochaUI.Window({id:'mywindow'+(window.popupCounter++),title:title,content:txt,width:w,height:h,resizable:false,type:'modal',center:true});}
r.send();}
/* Fri, 3 Sep 2010 05:00:55 GMT js/libs/general.js */