/*
    pt-flicks-lib-min.js

    Contains: pt_util.js pt_image.js pt_form.js pt_flicks.js
*/

/* pt_util.js */
if(typeof(PictureTrail)==='undefined')
var PictureTrail={util:{}};if(typeof(PictureTrail.util)==='undefined')
PictureTrail.util={};PictureTrail.util.setInterval=function(fn,int_ms,config){var r=new PictureTrail.util.IntervalRunner(fn,int_ms,config);r.start();return r;}
PictureTrail.util.IntervalRunner=function(fn,int_ms,config){var interval=false,timeout=false,config=config||{};if(config.scope){fn=function(){fn.call(config.scope,config.argument)};}else if(config.argument){fn=function(){fn(config.argument)};}
this.start=function(){if(interval)return interval;if(timeout){clearTimeout(timeout);timeout=false;}
interval=setInterval(fn,int_ms);if(config.timeout&&config.timeout>int_ms){var _this=this;timeout=setTimeout(function(){_this.stop()},config.timeout);}
return interval;};this.stop=function(){if(interval){clearInterval(interval);}
if(timeout){clearTimeout(timeout);}
interval=timeout=false;}}
PictureTrail.util.attempt=function(func,delay,limit,fail){if(typeof(func)!='function')return;if(!delay||isNaN(delay)||delay<10)
delay=100;if(!limit||isNaN(limit)||limit<1)
limit=100;var thread=function(){try{if(thread.attempts++<thread.limit){if(!func())
setTimeout(thread,thread.delay);return;}}catch(e){}
if(typeof(thread.failover)==='function')
try{thread.failover()}catch(e){}};thread.attempts=0;thread.delay=delay;thread.limit=limit;if(fail)
thread.failover=fail;thread();}
PictureTrail.util.select=function(obj){obj=Dom.get(obj);if(obj){obj.focus();obj.select();}}
PictureTrail.util.clipboard=function(obj,config){obj=Dom.get(obj);config=config||{};var _swf_cb=Dom.get('_swf_clipboard');
if(obj.createTextRange) {var range=obj.createTextRange();range.execCommand('Copy');if (config.success){config.success(config.argument);}return true;}
else if(obj&&_swf_cb){var sel=(typeof(config.select)!=='undefined')?config.select:true;if(sel){PictureTrail.util.select(obj);}
var new_embed=_swf_cb.innerHTML;new_embed=new_embed.replace(/clipboard=[^"]*"/,"clipboard="+encodeURIComponent(obj.value)+'"');_swf_cb.innerHTML=new_embed;if(config.success){config.success(config.argument);}
return true;}
if(config.failure){config.failure(config.argument);}
return false;}
PictureTrail.util.refresh=function(){var refresh=YAHOO.util.Dom.getElementsByClassName('refresh-target');for(var i=0;i<refresh.length;i++){var elem=refresh[i];if(refresh[i].tagName=="IFRAME"){var new_frame=elem.cloneNode(true);elem.parentNode.replaceChild(new_frame,elem);}else{elem.innerHTML=elem.innerHTML;}}}
PictureTrail.util.AutoRefresh=(function(){var __init={};var delay=180000;var API={};API.init=function(class_name,in_delay){if(!class_name)return;if(__init[class_name])return;__init[class_name]=true;if(in_delay&&parseInt(in_delay)>0)
delay=parseInt(in_delay)*1000;window.setInterval(function(){var refresh=YAHOO.util.Dom.getElementsByClassName(class_name);for(var i=0;i<refresh.length;i++){var elem=refresh[i];if(elem.tagName=="IFRAME"){var new_frame=elem.cloneNode(true);elem.parentNode.replaceChild(new_frame,elem);}else{elem.innerHTML=elem.innerHTML;}}},delay);};return API;})();PictureTrail.util.toggleClass=function(elem,classname){if(!elem)return;if(YAHOO.util.Dom.hasClass(elem,classname))
YAHOO.util.Dom.removeClass(elem,classname);else
YAHOO.util.Dom.addClass(elem,classname);}
PictureTrail.util.Cookie={get:function(name){var pattern=new RegExp('(?:^|; )'+escape(name)+'=([^;]*)');var match=document.cookie.match(pattern);if(match){return unescape(match[1]);}else{return null;}},set:function(attr){if(!attr||typeof attr.name=='undefined'){return;}
var toMillis=function(n,factor){if(isNaN(n)){return 0;}else{return(n*factor*1000);}};var name=escape(attr.name);var value='';if(attr.value){value=escape(attr.value);}
var cookie=[name+'='+value];var expires;if(attr.expires instanceof Date){expires=attr.expires;}
var ms=0;if(attr.seconds){ms+=toMillis(attr.seconds,1);}
if(attr.minutes){ms+=toMillis(attr.minutes,60);}
if(attr.hours){ms+=toMillis(attr.hours,3600);}
if(attr.days){ms+=toMillis(attr.days,86400);}
if(attr.weeks){ms+=toMillis(attr.weeks,604800);}
if(attr.months){ms+=toMillis(attr.months,2592000);}
if(attr.years){ms+=toMillis(attr.years,31536000);}
if(expires||ms!=0){if(!expires){expires=new Date();}
var date=new Date(expires.getTime()+ms);cookie.push('expires='+date.toUTCString());}
if(attr.domain){cookie.push('domain='+attr.domain);}
if(attr.path){cookie.push('path='+attr.path);}
if(attr.secure){cookie.push('secure');}
document.cookie=cookie.join('; ');},erase:function(name,path){if(path==null)path="/";PictureTrail.util.Cookie.set({"name":name,"path":path,"expires":new Date(0)});}};PictureTrail.util.SectionSwitcher=(function(){var groups={};function InstanceConstructor(name,default_section,root){if(!name)return;if(groups[name]){return groups[name];}
var current=null,sections={},subscribers=[];var API={};API.init=function(){current=null;API.switchTo(default_section);};API.switchTo=function(section_name){if(!section_name||!sections[section_name])return;var link=sections[section_name].link,section=sections[section_name].section,old_link=current;if(old_link){var old_section_name=current.getAttribute('section_id'),old_section=sections[old_section_name].section;if(old_section_name===section_name)return;if(old_link.parentNode.nodeName==='LI'){YAHOO.util.Dom.removeClass(old_link.parentNode,'active');}else{YAHOO.util.Dom.removeClass(old_link,'active');}
YAHOO.util.Dom.replaceClass(old_section,'block','hide');}
current=link;YAHOO.util.Dom.replaceClass(section,'hide','block');if(current.parentNode.nodeName==='LI'){YAHOO.util.Dom.addClass(current.parentNode,'active');}else{YAHOO.util.Dom.addClass(current,'active');}
for(var i=0,limit=subscribers.length;i<limit;++i){subscribers[i](name,link,old_link);}};API.subscribe=function(callback){if(!callback||typeof(callback)!=='function')return;subscribers[subscribers.length]=callback;};API.getSections=function(){var keys=[];for(var k in sections){keys[keys.length]=k;}
return keys;}
API.getSectionLink=function(section_name){if(section_name&&sections[section_name]){return sections[section_name].link;}
return null;}
API.getSectionContent=function(section_name){if(section_name&&sections[section_name]){return sections[section_name].section;}
return null;}
API.getCurrent=function(){if(current){return current.getAttribute('section_id');}
return null;}
API.hasSection=function(section_name){if(section_name){return(section_name in sections);}
return false;}
function activate(){API.switchTo(this.getAttribute('section_id'));}
root=root||document.getElementsByTagName('BODY').item(0);var section_links=YAHOO.util.Dom.getElementsBy(function(elem){if(elem.getAttribute('section_id')){var grp=elem.getAttribute('group');return(grp&&grp===name);}
return false;},'A',root);for(var i=0,limit=section_links.length;i<limit;++i){var link=section_links[i],section_name=link.getAttribute('section_id'),section=YAHOO.util.Dom.get(section_name);if(!section)continue;sections[section_name]={link:link,section:section};YAHOO.util.Event.on(link,'click',activate);if(!current||section_name===default_section){API.switchTo(section_name);}}
groups[name]=API;return API;}
InstanceConstructor.switchTo=function(group_name,section){if(groups[group_name]){groups[group_name].switchTo(section);}};return InstanceConstructor;})();PictureTrail.util.FlashRefresher=function(){var cache={};function InstanceConstructor(id){if(!cache[id]){var embed=null;var embed_parent=null;var old_src=null;function findEmbed(id){embed=YAHOO.util.Dom.get(id);if(embed&&embed.nodeName!=='EMBED'&&embed.nodeName!=='OBJECT'){var inner_embed=embed.getElementsByTagName('OBJECT').item(0)||embed.getElementsByTagName('EMBED').item(0);embed=inner_embed;}
if(embed){embed_parent=embed.parentNode;old_src=embed_parent.innerHTML;}
return embed;}
cache[id]={refresh:function(new_data,anchor){if(!embed_parent){findEmbed(id);}
if(embed_parent){if(new_data){embed_parent.innerHTML=new_data;}else if(old_src){embed_parent.innerHTML=old_src;}}
if(anchor)document.location.hash=anchor;},showLoadingBox:function(){findEmbed(id);if(embed){embed_parent.innerHTML=["<div id='",embed.id,"' ","style='width: ",embed.offsetWidth,"px; ","height: ",embed.offsetHeight,"px;'",">&nbsp;</div>"].join('');}}};}
return cache[id];};return InstanceConstructor;}();(function(){var INTERVAL_MS=50;var MAX_TIMEOUT=10000;var DEFAULT_TIMEOUT=5000;PictureTrail.util.onWidgetReady=function(widget_id,callback,timeout){if(!callback||typeof(callback)!=='function'){return;}
if(!timeout||typeof(timeout)!=='number'){timeout=DEFAULT_TIMEOUT;}else if(timeout<INTERVAL_MS||timeout>MAX_TIMEOUT){throw new Error("onWidgetReady timeout ("+timeout+") out of bounds");}
YAHOO.util.Event.onAvailable(widget_id,function(){var _this=this;if(this.PercentLoaded()>=100&&this.IsPlaying()){callback.call(_this);return;}
var interval=PictureTrail.util.setInterval(function(){if(_this.PercentLoaded()>=100&&_this.IsPlaying()){interval.stop();callback.call(_this);}},INTERVAL_MS,{timeout:timeout});});}})();PictureTrail.util.SetupPopupDialog=function(clickable,params){var error_message=params.error_message;var popup_dialog;clickable=YAHOO.util.Dom.get(clickable);if(typeof(params.popup_dialog)==='undefined'){popup_dialog=new YAHOO.widget.Panel(params.popup_id,{visible:false,fixedcenter:true,constraintoviewport:true});if(!(typeof(params.popup_header)==='undefined'))
popup_dialog.setHeader(params.popup_header);popup_dialog.render(document.body);}
else{popup_dialog=params.popup_dialog;}
YAHOO.util.Event.on(clickable,'click',function(evt,elt){popup_dialog.setBody('Loading...');popup_dialog.cfg.setProperty('width','200px');popup_dialog.render();popup_dialog.show();popup_dialog.center();YAHOO.util.Connect.asyncRequest('GET',elt,{success:function(o){popup_dialog.setBody(o.responseText);popup_dialog.cfg.setProperty('width',null);popup_dialog.render();popup_dialog.center();},failure:function(o){alert(error_message);document.location=document.location;}});YAHOO.util.Event.stopEvent(evt);},clickable);};

/* pt_image.js */
if(typeof(PictureTrail)==='undefined'){var PictureTrail={image:{}};}
if(typeof(PictureTrail.image)==='undefined'){PictureTrail.image={};}
PictureTrail.image.valign=function(img,y){if(!img.height||img.height==0)
return false;if(img.height>=y)return true;img.style.position='relative';img.style.top=Math.round((y-img.height)/2)+'px';return true;}
PictureTrail.image.scale=function(img,x,y){if(img.width==null||img.width==0||img.height==null||img.height==0)return false;if(img.width<=x&&img.height<=y)return true;var x_ratio=img.width/x,y_ratio=img.height/y;if(x_ratio>y_ratio){img.height=Math.round(img.height*x/img.width);img.width=x;}else{img.width=Math.round(img.width*y/img.height);img.height=y;}
return true;}
PictureTrail.image.thumbify=function(image,px,py){if(typeof(PictureTrail.util)==='undefined')return;(function(){var img=image;var x=px;var y=py;PictureTrail.util.attempt(function(){var result=(PictureTrail.image.scale(img,x,y)&&PictureTrail.image.valign(img,y));return result;},200,30,function(){img.width=x;img.height=y;});})();}
PictureTrail.image.imageToggle=function(elem,active){if(!elem||typeof(elem.src)==='undefined')return;elem.src=elem.src.replace(/(\-off)?.gif$/,(active?'.gif':'-off.gif'));}
PictureTrail.image.AlbumBrowser=function(){var Dom,Event,Conn,initilized=false,nodes={album_form:null,require_login:null,paging:null,image_list:null,submit:null,loading:null,loading_text:null,loading_error:null,add_album:null,manage_album:null,empty_album:null,no_albums:null,album_fieldset:null},albums={},album_selector={type:'static',input:null,submit:null,login:{inputs:[],submit:null}},get_album_uri,paging={page_size:16,next:null,previous:null,status:null,defer_loading:false},thumb_size=100,current_album=null,item_template=null,selected={},allow_multiple=true,subscribers={choose_album:[],click_image:[]},onAlbumLoadStart=new YAHOO.util.CustomEvent('Album Load Start'),onAlbumChange=new YAHOO.util.CustomEvent('Album Change'),onImageClick=new YAHOO.util.CustomEvent('Image Click'),onError=new YAHOO.util.CustomEvent('AlbumBrowser Error');var del={},priv={};this.onAlbumLoadStart=onAlbumLoadStart;this.onAlbumChange=onAlbumChange;this.onImageClick=onImageClick;this.onError=onError;this.init=function(config){if(typeof(YAHOO.util.Dom)==='undefined'||typeof(YAHOO.util.Event)==='undefined'||typeof(YAHOO.util.Connect)==='undefined')return false;Dom=YAHOO.util.Dom;Event=YAHOO.util.Event;Conn=YAHOO.util.Connect;if(typeof(config)!=='object')return false;if(typeof(config.allow_multiple)==='boolean')
allow_multiple=config.allow_multiple;for(var node_name in nodes){if(typeof(config[node_name])==='undefined'){continue;}
nodes[node_name]=Dom.get(config[node_name]);}
nodes.album_form.known_images={};Event.on(nodes.album_form,'submit',del.validateSubmit);this.onError.subscribe(function(){Dom.addClass(nodes.loading,'hide')
album_selector.input.disabled=false;if(album_selector.submit){album_selector.submit.disabled=false;}
Dom.addClass(nodes.loading_text,'hide');Dom.removeClass(nodes.loading_error,'hide');});if(typeof(config.get_album_uri)!=='string')return false;get_album_uri=config.get_album_uri;priv.initAlbumSelector(config);if(typeof(config.page_size)==='number')
paging.page_size=parseInt(config.page_size);var paging_links=nodes.paging.getElementsByTagName('A');paging.status=nodes.paging.getElementsByTagName('SPAN').item(0);paging.previous=paging_links.item(0);paging.next=paging_links.item(1);if(typeof(config.page_loading)==='string'){if(config.page_loading=='deferred')
paging.defer_loading=true;}
thumb_size=config.thumb_size;item_template=document.createElement('LI');var label=document.createElement('LABEL'),img=document.createElement('IMG');label.className='thumb larger_thumb';img.alt='';label.appendChild(img);item_template.appendChild(label);if(nodes.manage_album){Event.on(nodes.manage_album,'click',del.setManageLinkTarget);}
initialized=true;var defer=config.defer_load;if(!defer&&album_selector.type==='select'){var sel=album_selector.input;priv.loadAlbum(sel.options[sel.selectedIndex].value,1000);}
return true;}
this.isInitialized=function(){return initialized;};this.subscribe=function(evt,callback){switch(evt){case'choose_album':onAlbumChange.subscribe(callback);break;case'click_image':onImageClick.subscribe(callback);break;}}
this.previousPage=function(){if(current_album&&current_album.page>1){--current_album.page;if(paging.defer_loading)
priv.loadAlbum(current_album.album_id,null,current_album.page);else
priv.renderImages(current_album);}}
this.nextPage=function(){if(current_album&&current_album.page<Math.ceil(current_album.num_images/paging.page_size)){++current_album.page;if(paging.defer_loading)
priv.loadAlbum(current_album.album_id,null,current_album.page);else
priv.renderImages(current_album);}}
this.refreshAlbum=function(album_id,delay){var album=albums[album_id];if(album){album.images=null;album.page=1;if(album_id==current_album.album_id){priv.loadAlbum(album_id,delay);}}}
this.getCurrentAlbum=function(){return current_album;}
this.chooseAlbum=function(album_id){priv.getAlbum(album_id);}
del.getAlbum=function(e){var album_id=null;var target=Event.getTarget(e);if(target==album_selector.login.submit){album_id={};var flds=album_selector.login.inputs;for(var i=0;i<flds.length;i++){album_id[flds[i].name]=flds[i].value;if(i==0)album_id.id=flds[i].value;}
Event.stopEvent(e);}
else{switch(album_selector.type){case'select':album_id=this.options[this.selectedIndex].value;break;case'manual':album_id=album_selector.input.value;Event.stopEvent(e);break;}}
if(album_id){priv.getAlbum(album_id);}}
del.clickImage=function(e){if(!initialized)return;if(typeof(this.input_element)==='undefined')return;Event.preventDefault(e);if(!allow_multiple){for(var old in selected){if(selected[old]===this)continue;selected[old].input_element.checked=false
Dom.removeClass(selected[old],'selected');delete selected[old];}}
this.input_element.checked=!this.input_element.checked;if(this.input_element.checked){Dom.addClass(this,'selected');selected[this.input_element.value]=this;}else{Dom.removeClass(this,'selected');delete selected[this.input_element.value];}
onImageClick.fire(this);}
del.validateSubmit=function(e){for(var length_check in selected){return true;}
Event.stopEvent(e);alert("First select which photos you want to add");};del.setManageLinkTarget=function(e){var dest=this.href.replace(/&gid=\d+/,'');var album_id=null;if(album_selector.type==='select'){var sel=album_selector.input;album_id=sel.options[sel.selectedIndex].value;}else if(album_selector.type==='manual'){album_id=album_selector.input.value;}
if(album_id){this.href=dest+'&gid='+album_id;}};del.showLoginBox=function(e){priv.showLoginBox('none');};del.hideLoginBox=function(e){priv.hideLoginBox();};priv.initAlbumSelector=function(config){if(!config.album_select){return;}
var alb_src=Dom.get(config.album_select);if(alb_src){switch(alb_src.nodeName.toUpperCase()){case'SELECT':album_selector.input=alb_src;album_selector.type='select';for(var i=0,limit=alb_src.options.length;i<limit;++i){var alb=alb_src.options[i];albums[alb.value]={album_id:alb.value,images:null,page:1};}
Event.on(alb_src,'change',del.getAlbum);break;case'FIELDSET':nodes.album_fieldset=alb_src;var flds=alb_src.getElementsByTagName('INPUT');if(flds.length>1){for(var i=0,limit=flds.length;i<limit;++i){var f=flds[i];switch(f.type.toUpperCase()){case'TEXT':album_selector.input=album_selector.input||f;break;case'SUBMIT':album_selector.submit=album_selector.submit||f;break;}
if(album_selector.input&&album_selector.submit){album_selector.type='manual';Event.on(album_selector.submit,'click',del.getAlbum);break;}}}
break;}}
if(nodes.require_login){var flds=nodes.require_login.getElementsByTagName('INPUT');for(var i=0;i<flds.length;i++){var f=flds[i];switch(f.type.toUpperCase()){case'PASSWORD':album_selector.login.inputs.push(f);break;case'TEXT':album_selector.login.inputs.push(f);break;case'SUBMIT':album_selector.login.submit=f;break;}}
if(album_selector.login.submit){Event.on(album_selector.login.submit,'click',del.getAlbum);}
var username_link=Dom.getElementsByClassName('username_link','a',alb_src)[0];if(username_link){Event.on(username_link,'click',del.showLoginBox);}
var username_url=Dom.getElementsByClassName('username_url','a',nodes.require_login)[0];if(username_url){Event.on(username_url,'click',del.hideLoginBox);}}}
priv.getAlbum=function(album_id){if(!initialized)return;var album=albums[album_id];if(album&&album.images!==null){priv.renderAlbum(album);}
else{priv.loadAlbum(album_id,0);}}
priv.renderAlbum=function(album){current_album=album;Dom.addClass(nodes.loading_error,'hide');if(album.images&&album.num_images>0){priv.renderImages(album);Dom.addClass(nodes.loading_text,'hide');Dom.addClass(nodes.empty_album,'hide');Dom.removeClass(nodes.image_list,'hide');Dom.removeClass(nodes.submit,'hide');Dom.removeClass(nodes.add_album,'hide');Dom.removeClass(nodes.manage_album,'hide');if(album.num_images>paging.page_size){Dom.removeClass(nodes.paging,'hide');}
else{Dom.addClass(nodes.paging,'hide');}}
else{Dom.addClass(nodes.loading_text,'hide');Dom.addClass(nodes.image_list,'hide');Dom.addClass(nodes.paging,'hide');Dom.removeClass(nodes.empty_album,'hide');Dom.addClass(nodes.submit,'hide');for(var test in selected){Dom.removeClass(nodes.submit,'hide');break;}}
if(nodes.require_login&&!Dom.hasClass(nodes.require_login,'hide')){Dom.addClass(nodes.require_login,'hide');var inputs=nodes.require_login.getElementsByTagName('input');for(var i=0;i<inputs.length;i++)
if(inputs[i].type.toUpperCase()=='PASSWORD')inputs[i].value='';}}
priv.loadAlbum=function(album_id,delay,load_page){var album_data;if(!(typeof(album_id)==='string')){album_data=album_id;album_id=album_id.id;}
onAlbumLoadStart.fire(album_id);Dom.addClass(nodes.submit,'hide');album_selector.input.disabled=true;if(album_selector.submit){album_selector.submit.disabled=true;}
Dom.removeClass(nodes.loading,'hide');Dom.addClass(nodes.paging,'hide');Dom.addClass(nodes.image_list,'hide');Dom.addClass(nodes.empty_album,'hide');Dom.addClass(nodes.loading_error,'hide');Dom.addClass(nodes.add_album,'hide');Dom.addClass(nodes.manage_album,'hide');Dom.removeClass(nodes.loading_text,'hide');function executeLoadRequest(){var timestamp=new Date();Conn.initHeader('Content-type','text/x-json');var request_url=get_album_uri;var url_pieces=request_url.split('?');if(url_pieces.length>1){request_url=url_pieces[0]+'/'+album_id+'?t='+timestamp.getTime()+'&'+url_pieces[1];}
else{request_url+='/'+album_id+'?t='+timestamp.getTime()}
if(paging.defer_loading){var desired_page=load_page?load_page:1;request_url+="&page="+desired_page+
"&page_size="+paging.page_size;}
if(album_data&&album_data.service_password){request_url+='&password='+album_data.service_password;}
Conn.asyncRequest('GET',request_url,{success:function(o){if(o.status!=200){onError.fire();return;}
var results=null;try{eval('results = '+o.responseText+';');results=results.json;if(!results){throw new Error('Empty response');}}
catch(e){onError.fire();return;}
if(results.require_login){priv.showLoginBox('private');}
else if(results.incorrect_login){priv.showLoginBox('incorrect_login');}
else{var num_images=(typeof(results.num_images)==='undefined')?(typeof(results.images)==='undefined')?0:results.images.length:results.num_images;var current_page=(typeof(results.page)==='undefined')?1:results.page;albums[album_id]={album_id:album_id,num_images:num_images,images:priv.buildImages(results.images),page:current_page};offset=0;Dom.addClass(nodes.loading,'hide')
album_selector.input.disabled=false;if(album_selector.submit){album_selector.submit.disabled=false;}
priv.renderAlbum(albums[album_id]);Dom.removeClass(nodes.album_fieldset,'hide');onAlbumChange.fire(album_id);}},failure:function(o){if(Conn.isCallInProgress(o))return;onError.fire();},timeout:30000});Conn.resetDefaultHeaders();}
if(delay){setTimeout(executeLoadRequest,delay);}else{executeLoadRequest();}}
priv.showLoginBox=function(warning){Dom.addClass(nodes.album_fieldset,'hide');var private_warning=Dom.getElementsByClassName('private_warning','div',nodes.require_login)[0];var incorrect_login=Dom.getElementsByClassName('incorrect_login','div',nodes.require_login)[0];var username_reminder=Dom.getElementsByClassName('username_reminder','p',nodes.require_login)[0];if(username_reminder)Dom.addClass(username_reminder,'hide');if(private_warning)Dom.addClass(private_warning,'hide');if(incorrect_login)Dom.addClass(incorrect_login,'hide');if(private_warning&&warning=='private'){Dom.removeClass(private_warning,'hide');}
else if(incorrect_login&&warning=='incorrect_login'){Dom.removeClass(incorrect_login,'hide');}
else if(username_reminder){Dom.removeClass(username_reminder,'hide');}
if(warning=='incorrect_login'){var flds=nodes.require_login.getElementsByTagName('INPUT');for(var i=0;i<flds.length;i++){var f=flds[i];if(f.type.toUpperCase()=='TEXT'||f.type.toUpperCase()=='PASSWORD'){f.value='';}}}
Dom.removeClass(nodes.require_login,'hide');Dom.addClass(nodes.loading,'hide');Dom.addClass(nodes.loading_text,'hide');};priv.hideLoginBox=function(){Dom.removeClass(nodes.album_fieldset,'hide');Dom.addClass(nodes.require_login,'hide');album_selector.input.disabled=false;if(album_selector.submit){album_selector.submit.disabled=false;}};priv.buildImages=function(data){if(!data||data.length<1)return[];var item_nodes=[];for(var i=0,limit=data.length;i<limit;++i){var image_data=data[i];if(!nodes.album_form.known_images[image_data.image_id]){var input=document.createElement('INPUT');input.type='checkbox';input.id='image_'+image_data.image_id;input.name='images';input.checked=false;input.className='hide';input.value=image_data.image_id;nodes.album_form.appendChild(input);nodes.album_form.known_images[image_data.image_id]=input;}
var li=item_template.cloneNode(true);var label=li.firstChild;var img=label.firstChild;li.input_element=nodes.album_form.known_images[image_data.image_id];li.image_element=img;label.htmlFor='image_'+image_data.image_id;img.src=image_data.previewUri;if(image_data.thumb_height){img.height=image_data.thumb_height;}
if(image_data.thumb_height){img.width=image_data.thumb_width;}
if(image_data.thumb_height){img.title=image_data.title;}
img.scaled=false;if(nodes.album_form.known_images[image_data.image_id].checked){Dom.addClass(li,'selected');}
Event.on(li,'click',del.clickImage);item_nodes[i]=li;}
return item_nodes;}
priv.renderImages=function(album){start_idx=((album.page||1)-1)*paging.page_size;var list_parent=nodes.image_list.parentNode;var list_sibling=nodes.image_list.nextSibling;list_parent.removeChild(nodes.image_list);var children=nodes.image_list.childNodes;if(children.length>0){var deletes=[],i=0,limit=children.length;for(;i<limit;++i){deletes[i]=children[i];}
for(i=0;i<limit;++i){nodes.image_list.removeChild(deletes[i]);}}
var page_start_idx=paging.defer_loading?0:start_idx;var page_set=album.images.slice(page_start_idx,page_start_idx+paging.page_size);for(var i=0,limit=page_set.length;i<limit;++i){nodes.image_list.appendChild(page_set[i]);if(!page_set[i].image_element.scaled){if(Dom.hasClass(document.body,'IE')){(function(){var this_img=page_set[i].image_element;this_img.onload=function(){PictureTrail.image.thumbify(this_img,thumb_size,thumb_size)};})();}
else{PictureTrail.image.thumbify(page_set[i].image_element,thumb_size,thumb_size);}
page_set[i].image_element.scaled=true;}}
if(list_sibling){list_parent.insertBefore(nodes.image_list,list_sibling);}else{list_parent.appendChild(nodes.image_list);}
if(album.page==1){Dom.addClass(paging.previous,'inactive');}else{Dom.removeClass(paging.previous,'inactive');}
if(album.page==Math.ceil(album.num_images/paging.page_size)){Dom.addClass(paging.next,'inactive');}else{Dom.removeClass(paging.next,'inactive');}
var to=start_idx+paging.page_size;if(to>album.num_images){to=album.num_images;}
paging.status.innerHTML=(start_idx+1)+" - "+to+
" of "+album.num_images;}};PictureTrail.image.PhotoBucket=(function(){var initialized=false;return{initializeWidget:function(iframe_node,src){if(!iframe_node||!src||initialized)return;iframe_node.src=src;initialized=true;}};})();PictureTrail.image.Facebook=(function(){var initialized=false,albums=null,albums_url=null,browser=null,login_button=null,loading_widget=null,no_albums_widget=null;var API={},priv={};API.initializeWidget=function(album_browser,albums_select,albums_action,login_btn,loading,no_albums){if(!albums_select||!albums_action||!album_browser||!login_btn||!loading||initialized)
return;albums=YAHOO.util.Dom.get(albums_select);login_button=YAHOO.util.Dom.get(login_btn);loading_widget=YAHOO.util.Dom.get(loading);browser=album_browser;albums_url=albums_action;no_albums_widget=YAHOO.util.Dom.get(no_albums);priv.loadAlbums(albums_url);};API.reinit=function(){YAHOO.util.Dom.addClass(login_button.parentNode,'hide');YAHOO.util.Dom.removeClass(loading_widget,'hide');priv.loadAlbums(albums_url+'&reinit=1');};priv.loadAlbums=function(url){YAHOO.util.Connect.asyncRequest('GET',url,{success:priv.handleSuccess,failure:priv.handleFailure,timeout:10000});};priv.handleSuccess=function(o){var response=null;eval("response = "+o.responseText);response=response.json;if(response.requires_login){if(login_button){login_button.onclick=function(){window.open(response.login_url,"facebook_login","width=646,height=436,scrollbars=no,menubar=no");};YAHOO.util.Dom.removeClass(login_button.parentNode,'hide');YAHOO.util.Dom.addClass(loading_widget,'hide');}}
else if(response.albums){if(response.albums.length>0){for(var i=0;i<response.albums.length;i++){var album=response.albums[i];var option=new Option(album.name,album.aid);albums.options[albums.options.length]=option;}
YAHOO.util.Dom.removeClass(albums.parentNode,'hide');if(browser!=null)browser.chooseAlbum(albums.value);}
else{if(loading_widget)
YAHOO.util.Dom.addClass(loading_widget,'hide');if(no_albums_widget)
YAHOO.util.Dom.removeClass(no_albums_widget,'hide');}}};priv.handleFailure=function(o){if(o.status==0){setTimeout(API.reinit,500);}
else{alert("Facebook error!");}};return API;})();PictureTrail.image.Uploader=(function(){var Dom,Event,Conn,status_poll_uri,nodes={form:null,fieldset:null,uploads:null},statuses={processing:null,complete:null,limit_reached:null},remaining=15,upload_count=0,double_check=false,auto_upload=false,upload_error=false,subscribers={'upload_complete':[]};function build(config){if(!config)return;Dom=YAHOO.util.Dom;Event=YAHOO.util.Event;Conn=YAHOO.util.Connect;if(typeof(config.fields)==='undefined')return;nodes.fieldset=Dom.get(config.fields);nodes.form=nodes.fieldset.form;nodes.uploads=nodes.fieldset.getElementsByTagName('OL').item(0);for(var node_id in statuses){if(config[node_id]){statuses[node_id]=Dom.get(config[node_id]);}
if(!statuses[node_id])return;}
if(typeof(config.status_poll_uri)!=='string')return;status_poll_uri=config.status_poll_uri;if(typeof(config.limit)==='number'){remaining=parseInt(config.limit);}
if(!(typeof(config.auto_upload)==='undefined')){auto_upload=config.auto_upload;}
Event.on(nodes.form,'submit',function(e){Event.preventDefault(e);return false;});var form_inputs=nodes.form.getElementsByTagName('INPUT');for(var i=form_inputs.length-1;i>=0;--i){var inpt=form_inputs.item(i);if(inpt.type==='submit'||inpt.type==='image'){Event.on(inpt,'click',upload);break;}}
if(remaining==0){setStatus('limit_reached');}else{addUploadInput();}}
function setStatus(stat){var new_status=statuses[stat];for(var s in statuses){if(s===stat)continue;Dom.addClass(statuses[s],'hide');}
if(new_status){Dom.addClass(nodes.fieldset,'hide');Dom.removeClass(new_status,'hide');}else{if(remaining>0||!statuses['limit_reached']){Dom.removeClass(nodes.fieldset,'hide');}else{setStatus('limit_reached');}}}
function raiseError(){upload_error=true;}
function subscribe(evt,callback){var sub_evt=subscribers[evt];if(!sub_evt||typeof(callback)!=='function')return
sub_evt[sub_evt.length]=callback;}
function checkUploadFields(e){var items=nodes.uploads.getElementsByTagName('INPUT');for(var i=0,limit=items.length;i<limit;++i){if(/^\s*$/.test(items.item(i).value))return;}
if(remaining-limit>0){addUploadInput();}
else if(auto_upload){upload();}}
function upload(e){if(e)Event.preventDefault(e);var ok=false,inputs=nodes.uploads.getElementsByTagName('INPUT'),upload_count=0;double_check=false;for(var i=0,limit=inputs.length;i<limit;++i){if(/^\s*$/.test(inputs.item(0).value))continue;ok=true;++upload_count;}
if(!ok){alert("Please choose at least one file to upload");return false;}
setStatus('processing');var upload_form=typeof(this.form)==='undefined'?nodes.form:this.form;upload_error=false;Conn.setForm(upload_form,true,true);Conn.asyncRequest(upload_form.method,upload_form.action,{upload:pollUploadStatus,failure:uploadFailure});return false;}
function pollUploadStatus(o){setTimeout(function(){Conn.asyncRequest('GET',status_poll_uri,{success:processUploadStatus,failure:uploadFailure,timeout:5000});},2000);}
function processUploadStatus(o){var images_processed=0;eval('images_processed = parseInt('+o.responseText+');');if(isNaN(images_processed)){return uploadFailure();}
upload_count-=images_processed;if(images_processed==0){if(double_check){upload_count=0;}else if(upload_count>0){double_check=true;pollUploadStatus();return;}}
double_check=false;if(upload_count>0){pollUploadStatus();return;}
var deletes=[],items=nodes.uploads.childNodes,i=0,limit=items.length;for(;i<limit;++i){deletes[i]=items[i];}
for(i=0;i<limit;++i){nodes.uploads.removeChild(deletes[i]);}
addUploadInput();if(upload_error){uploadFailure();return;}
setStatus('complete');var album_sel=nodes.form.getElementsByTagName('SELECT').item(0),album_id=album_sel.options[album_sel.selectedIndex].value;for(var i=0,limit=subscribers.upload_complete.length;i<limit;++i){subscribers.upload_complete[i]('upload_complete',album_id);}}
function uploadFailure(o){if(o&&Conn.isCallInProgress(o))return;setStatus('ready');alert("Uh oh!  We had trouble processing your photos.  Please try again later.");return false;}
function addUploadInput(){var index=nodes.uploads.childNodes.length+1,li=document.createElement('LI'),input=document.createElement('INPUT');input.type='file';input.name='file'+index;Event.on(input,'change',checkUploadFields);li.appendChild(input);nodes.uploads.appendChild(li);}
function changeLimit(limit,add_field){limit=parseInt(limit);if(limit>0){var add=false;if(add_field&&limit>remaining)add=true;remaining=parseInt(limit);if(add)addUploadInput();}}
return{build:build,setStatus:setStatus,subscribe:subscribe,changeLimit:changeLimit,raiseError:raiseError}})();

/* pt_form.js */
var PictureTrail;if(typeof(PictureTrail)==='undefined'){PictureTrail={form:{}};}
PictureTrail.noop=function(){};if(typeof(PictureTrail.form)==='undefined'){PictureTrail.form={};}
PictureTrail.form.fields=function(form){form=YAHOO.util.Dom.get(form);if(!form){form=document.forms[form];if(!form){return false;}}
var fields={};for(var i=0,limit=form.elements.length;i<limit;++i){var f=form.elements[i];if(/INPUT|TEXTAREA|BUTTON|SELECT/.test(f.nodeName)){fields[f.name]=PictureTrail.form.fieldValue(form,f.name);}}
return fields;}
PictureTrail.form.fieldValue=function(form,name,value,force){if(!name){return null;}
form=YAHOO.util.Dom.get(form);if(!form){form=document.forms[form];if(!form){return false;}}
var field=form.elements.namedItem(name);if(!field){if(force){if(typeof(value)==='object'){var field_container=document.createElement('DIV');YAHOO.util.Dom.setStyle(field_container,'display','none');for(var i=0,limit=value.length;i<limit;++i){var f=document.createElement('INPUT');f.type='checkbox';f.checked=true;f.name=name;f.value=value[i];field_container.appendChild(f);}
form.appendChild(field_container);}else{field=document.createElement('INPUT');field.type='hidden';field.name=name;field.value=value;form.appendChild(field);return field.value;}}else{return null;}}
if(typeof(field.nodeName)==='undefined'){field=field[0];if(!field){return null;}}
if(!/INPUT|BUTTON|SELECT|TEXTAREA/.test(field.nodeName)){return null;}
if(field.nodeName==='SELECT'){if(field.multiple){var vals=[];if(typeof(value)!=='undefined'){var val_map={};if(typeof(value)!=='object'){value=[+value];}
for(var i=0,limit=value.length;i<limit;++i){val_map[value[i]]=true;}
for(var i=0,limit=field.options.length;i<limit;++i){var o=field.options[i];if(val_map[o.value]){o.selected=true;vals[vals.length]=o.value;}else{o.selected=false;o.setAttribute('selected',false);}}}else{for(var i=0,limit=field.options.length;i<limit;++i){var o=field.options[i];if(o.checked){vals[vals.length]=o.value;}}}
return vals;}else{if(typeof(value)!=='undefined'){for(var i=0,limit=field.options.length;i<limit;++i){if(field.options[i].value==value){field.options[i].selected=true;break;}}}
return field.selectedIndex===-1?null:field.options[field.selectedIndex].value;}}
if(field.nodeName==='INPUT'){if(field.type==='radio'){for(var i=0,limit=form[name].length;i<limit;++i){var r=form[name][i];if(typeof(value)!=='undefined'){if(r.value==value){r.checked=true;return r.value;}}else if(r.checked){return r.value;}}
return null;}else if(field.type==='checkbox'){var vals=[];if(typeof(value)!=='undefined'){var val_map={},field_array=form[name];if(typeof(value)!=='object'){value=[+value];}
for(var i=0,limit=value.length;i<limit;++i){val_map[value[i]]=true;}
for(var i=0,limit=field_array.length;i<limit;++i){var c=field_array[i];if(val_map[c.value]){c.checked=true;vals[vals.length]=c.value;}else{c.checked=false;}}}else{for(var i=0,limit=field_array.length;i<limit;++i){var c=field_array[i];if(c.checked){vals[vals.length]=c.value;}}}
return vals;}}
if(typeof(value)!=='undefined'){field.value=value;}
return field.value;;};PictureTrail.form.AsyncForm=function(form_id,async_submit){var Dom=YAHOO.util.Dom,Event=YAHOO.util.Event,Conn=YAHOO.util.Connect;var API={};var form=null,current={},subscribers=[];function hover(e){if(/mouseover/i.test(e.type)){Dom.addClass(this,'hover');}else{Dom.removeClass(this,'hover');}}
function checked(e){var input,label;switch(this.nodeName){case'INPUT':label=this.parentNode;input=this;break;case'LABEL':label=this;input=Dom.get(this.htmlFor)||this.getElementsByTagName('INPUT').item(0);break;case'LI':label=this.getElementsByTagName('LABEL').item(0);input=Dom.get(label.htmlFor)||label.getElementsByTagName('INPUT').item(0);break;default:return false;}
var target=Event.getTarget(e);if(target.nodeName!=='INPUT'){input.checked=true;Event.stopEvent(e);}
var cur=current[input.name];current[input.name]=input;if(!cur)return true;var c_label=cur.parentNode;if(c_label.nodeName==='LABEL'){Dom.removeClass(c_label,'selected');}
if(label&&label.nodeName==='LABEL'){Dom.addClass(label,'selected');}
submitForm();return true;}
function submitForm(e){if(e&&e.type==='submit'){return true;}
var proceed=true,success_callbacks=[],failure_callbacks=[];for(var i=0,limit=subscribers.length;i<limit&&proceed;++i){var sub=subscribers[i];if(typeof(sub)==='object'){if(sub.success)success_callbacks.push(sub.success);if(sub.failure)failure_callbacks.push(sub.failure);if(sub.preprocess){proceed=sub.preprocess(form);}}else if(typeof(sub)==='function'){success_callbacks.push(sub);}}
if(proceed){Conn.setForm(form);Conn.asyncRequest(form.method,form.action,{success:function(o){for(var i=0,limit=success_callbacks.length;i<limit;++i){success_callbacks[i](o,form);}},failure:function(o){if(Conn.isCallInProgress(o))return;for(var i=0,limit=failure_callbacks.length;i<limit;++i){failure_callbacks[i](o,form);}}});}}
API.submitForm=function(e){FIELDS:for(var field in current){if(!current.hasOwnProperty(field)){continue;}
for(var i=0,limit=form[field].length;i<limit;++i){if(form[field][i].checked){current[field]=form[field][i];continue FIELDS;}}}
submitForm(e);};API.refresh=function(){form=Dom.get(form_id);current=[];if(!form){for(var i=0,limit=document.forms.length;i<limit;++i){if(form_id===document.forms[i].id){form=document.forms[i];break;}}
if(!form){alert("Form "+form_id+" could not be found.");return false;}}
if(form.nodeName!=='FORM'){form=form.getElementsByTagName('FORM').item(0);if(!form){return false;}}
if(typeof(form.async)==='undefined'){var async=document.createElement('INPUT');async.type='hidden';async.name='async';async.value=1;form.appendChild(async);}else{form.async.value=1;}
if(async_submit){Event.on(form,'submit',API.submitForm);}
var fields=Dom.getElementsBy(function(elem){return(elem.type==='radio');},'INPUT',form);for(var i=0,limit=fields.length;i<limit;++i){var input=fields[i],target=input,label=null;if(input.parentNode.nodeName==='LABEL'){label=input.parentNode;if(label.parentNode.nodeName==='LI'){label=label.parentNode;}
target=label;}
Event.on(target,'click',checked);if(label){Event.on(label,'mouseover',hover);Event.on(label,'mouseout',hover);if(input.checked){Dom.addClass(label,'selected');}}
if(input.checked){current[input.name]=input;}}
fields=Dom.getElementsBy(function(elem){return(elem.type==='checkbox'||elem.type==='text');},'INPUT',form);for(var i=0,limit=fields.length;i<limit;++i){var evt=fields[i].type==='text'?'change':'click';Event.on(fields[i],evt,submitForm);}
fields=form.getElementsByTagName('SELECT');for(var i=0,limit=fields.length;i<limit;++i){Event.on(fields[i],'change',submitForm);}};API.subscribe=function(callback){subscribers.push(callback)};API.refresh();return API;};PictureTrail.form.Validator={validate:function(form,config){var definedValues={};var inputs=form.getElementsByTagName("INPUT");for(var i=0;i<inputs.length;i++){var set=false;if(inputs[i].type=="checkbox"){set=inputs[i].checked;}else{set=inputs[i].value!="";}
if(set){if(typeof definedValues[inputs[i].name]=="undefined")
definedValues[inputs[i].name]=[];definedValues[inputs[i].name].push(inputs[i]);}}
var failed=[];if(config.requires){for(var element in config.requires){if(typeof config.requires[element]=="function"){if(!config.requires[element](definedValues[element])){failed.push(element);}}else{if(typeof definedValues[element]=="undefined"){failed.push(element);}}}}
if(failed.length>0){if(typeof config.onFailure=="function"){config.onFailure(failed);}
return false;}
return true;}};(function(){var Anim=YAHOO.util.Anim;var Dom=YAHOO.util.Dom;var Event=YAHOO.util.Event;var Connect=YAHOO.util.Connect;PictureTrail.form.TitleForm=function(fieldset){var API={},del={},priv={state:null,original:null,form:fieldset.form,input:Dom.getElementsByClassName('title','INPUT',fieldset)[0],submit:Dom.getElementsByClassName('control_button','INPUT',fieldset)[0],cancel:Dom.getElementsByClassName('clickable','IMG',fieldset)[0],message:Dom.getElementsByClassName('message','SPAN',fieldset)[0],message_reset:true};if(!priv.input){return;}
var TitleState={};(function(){function inactivate(e){Dom.removeClass(fieldset,'active');}
function activate(e){Dom.addClass(fieldset,'active');priv.input.focus();priv.state=TitleState.Active;}
TitleState.Inactive={mouseover:function(e){Dom.addClass(fieldset,'active');},mouseout:inactivate,blur:inactivate,click:activate,submit:Event.stopEvent};TitleState.Active={keyup:function(e){priv.resetMessage();if(priv.valueChanged()){Dom.removeClass(fieldset,'active');Dom.addClass(fieldset,'changed');priv.state=TitleState.Changed;}},blur:function(e){Dom.removeClass(fieldset,'active');priv.state=TitleState.Inactive;},submit:Event.stopEvent};TitleState.Changed={keyup:function(e){priv.resetMessage();if(!priv.valueChanged()){Dom.removeClass(fieldset,'changed');Dom.addClass(fieldset,'active');priv.state=TitleState.Active;}},submit:function(e){Event.stopEvent(e);priv.submitChange()}};})();del.handleEvent=function(e){if(typeof(priv.state[e.type])==='function'){priv.state[e.type](e);}};priv.valueChanged=function(){return priv.input.value!=priv.original;};priv.resetFields=function(){priv.message_reset=false;priv.resetMessage();priv.input.disabled=false;Dom.removeClass(fieldset,'active');Dom.removeClass(fieldset,'changed');priv.state=TitleState.Inactive;};priv.resetMessage=function(){if(priv.message_reset)return;Dom.removeClass(priv.message,'loading');Dom.removeClass(priv.message,'error_message');Dom.removeClass(priv.message,'success_message');priv.message.style.opacity=100;priv.message.innerHTML='';priv.message_reset=true;};priv.submitChange=function(){priv.cancel.focus();Dom.addClass(priv.message,'loading');priv.message.innerHTML='Processing...';Connect.setForm(priv.form);Connect.asyncRequest(priv.form.method,priv.form.action,{success:function(o){priv.resetFields();try{var response=null;eval('response = '+o.responseText+';');response=response.json;if(response.success==1){priv.original=response.title;priv.input.value=response.title;priv.state=TitleState.Inactive;Dom.addClass(priv.message,'success_message');priv.message.innerHTML='name saved';priv.message_reset=false;var fade=new Anim(priv.message,{opacity:{from:1.0,to:0.0}});fade.onComplete.subscribe(priv.resetMessage);setTimeout(function(){fade.animate()},1500);}else{priv.input.value=priv.original;priv.state=TitleState.Inactive;Dom.addClass(priv.message,'error_message');priv.message.innerHTML=response.reason;priv.message_reset=false;}}
catch(e){priv.input.value=priv.original;priv.state=TitleState.Inactive;Dom.replaceClass(priv.message,'success_message','error_message');priv.message.innerHTML="<br/>Sorry!  I couldn't save :(";priv.message_reset=false;}},failure:function(o){if(o.readyState!=4)return;priv.resetFields();priv.input.value=priv.original;priv.state=TitleState.Inactive;Dom.addClass(priv.message,'error_message');priv.message.innerHTML="Sorry!  I couldn't save :(";priv.message_reset=false;},timeout:5000});priv.input.disabled=true;};priv.original=priv.input.value;priv.state=TitleState.Inactive;Event.on(priv.input,'mouseover',del.handleEvent);Event.on(priv.input,'mouseout',del.handleEvent);Event.on(priv.input,'click',del.handleEvent);Event.on(priv.input,'focus',del.handleEvent);Event.on(priv.input,'blur',del.handleEvent);Event.on(priv.input,'keyup',del.handleEvent);Event.on(priv.input,'keypress',del.handleEvent);Event.on(priv.form,'submit',del.handleEvent);Event.on(priv.cancel,'click',function(e){Event.stopEvent(e);priv.input.value=priv.original;priv.resetFields();});return API;};})();PictureTrail.form.ColorPicker=function(element,callback,colors){if(!element)return;var element_obj=null,preview_obj=null,picker_obj=null;var API={};function __setup(){element_obj=this;var preview=YAHOO.util.Dom.get(element+"_preview");picker_obj=YAHOO.util.Dom.get(element+"_picker");if(preview){preview_obj=preview;API.updatePreview();var config={select:function(color){API.select(color);if(callback){callback();}}};if(colors){config.colors=colors;}
var color_menu=new Ext.menu.ColorMenu(config);YAHOO.util.Event.addListener(preview_obj,"click",function(){color_menu.show(picker_obj,"tl-bl?");});}}
YAHOO.util.Event.onAvailable(element,__setup);API.select=function(color){element_obj.value='#'+color;API.updatePreview();};API.updatePreview=function(){var a=new YAHOO.util.ColorAnim(preview_obj,{backgroundColor:{to:element_obj.value}},0.2);if(a.parseColor(element_obj.value))
a.animate();}
return API;};

/* pt_flicks.js */
var PictureTrail;if(typeof(PictureTrail)==='undefined'){PictureTrail={flicks:{}};}
if(typeof(PictureTrail.flicks)==='undefined'){PictureTrail.flicks={};}
PictureTrail.flicks.OptionsHandler=function(dom_node){if(typeof(dom_node)==='undefined'||dom_node==null)return;this.dom_node=YAHOO.util.Dom.get(dom_node);};PictureTrail.flicks.OptionsHandler.prototype={setOption:function(option_name,option_value){var elements=YAHOO.util.Dom.getElementsByClassName(option_name,'div',this.dom_node);for(var i=0;i<elements.length;i++){var element=elements[i];if(!element)continue;var form=element;while(form.tagName.toUpperCase()!='FORM'){form=form.parentNode;if(form.tagName.toUpperCase()=='BODY'){form=null;break;}}
if(form){var form_options=form[option_name];if(typeof(form_options)==='undefined')continue;if(form_options.length){for(var i=0;i<form_options.length;i++){var opt=form_options[i];opt.checked=(opt.value==option_value)?true:false;var label=opt;while(label.tagName.toUpperCase()!='LABEL'){label=label.parentNode;if(label.tagName.toUpperCase()=='BODY'){label=null;break;}}
if(label)YAHOO.util.Dom.removeClass(label,'selected');}}
else{form_options.value=option_value;}}}}};PictureTrail.flicks.CreateController=(function(){var Dom,Event,Conn,Cookie;var step_switcher=null,flick_refresher=null,options_async_form=null,choose_design_action=null,design=null,options_handler=null,image_browser=null,album_browser=null,sections={},save=null,logger=YAHOO;var API={},priv={},del={};API.init=function(config){if(config==null)return;Dom=YAHOO.util.Dom;Event=YAHOO.util.Event;Conn=YAHOO.util.Connect;Cookie=PictureTrail.util.Cookie;if(config.steps_group){step_switcher=new PictureTrail.util.SectionSwitcher(config.steps_group,'designs',Dom.get('flick_controls'));if(step_switcher){step_switcher.subscribe(priv.step);step_switcher.switchTo(Cookie.get('flicks_step')||'designs');var step_names=step_switcher.getSections();for(var i=0,limit=step_names.length;i<limit;++i){var link=step_switcher.getSectionLink(step_names[i]);if(!link)continue;var img=link.getElementsByTagName('IMG').item(0);if(!img)continue;PictureTrail.image.imageToggle(img,step_names[i]!==step_switcher.getCurrent());}}}
flick_refresher=new PictureTrail.util.FlashRefresher(config.flick_embed)
image_browser=config.image_browser;album_browser=config.album_browser;options_async_form=new PictureTrail.form.AsyncForm(config.options);options_async_form.subscribe({preprocess:function(o){flick_refresher.showLoadingBox();return true;},success:function(o){flick_refresher.refresh(o.responseText);},failure:function(o){flick_refresher.refresh();}});choose_design_action=config.choose_design_action;sections.preview=Dom.get(config.preview);sections.options=Dom.get(config.options);sections.flick_images=Dom.get(config.flick_images);sections.step_title=Dom.get(config.step_title);options_handler=new PictureTrail.flicks.OptionsHandler(config.options);var designs=Dom.get(config.designs);if(designs){designs=designs.getElementsByTagName('A');for(var i=0,limit=designs.length;i<limit;++i){var d_link=designs[i],d_item=d_link.parentNode;if(Dom.hasClass(d_item,'selected')){if(design){priv.setDesign(d_item,design);}else{design=d_item;}}
Event.on(d_link,'click',del.chooseDesign);}}
save=Dom.get(config.save);if(save){Event.on(save,'click',del.saveFlick);}};API.step=function(step_name){if(!step_switcher)return;if(!step_switcher.hasSection(step_name)||step_switcher.getCurrent()===step_name){return;}
step_switcher.switchTo(step_name);};API.setOption=function(option_name,option_value){options_handler.setOption(option_name,option_value);};priv.step=function(grp,new_link,old_link){if(!step_switcher)return;var new_button=new_link.getElementsByTagName('IMG').item(0);var old_button=old_link.getElementsByTagName('IMG').item(0);PictureTrail.image.imageToggle(old_button,true);PictureTrail.image.imageToggle(new_button,false);setTimeout(PictureTrail.util.refresh,0);if(step_switcher.getCurrent()==='images'){if((album_browser!=null)&&(!album_browser.getCurrentAlbum())){album_browser.refreshAlbum();}
document.location.hash="images";}else{window.scrollTo(0,0);}
Cookie.set({name:'flicks_step',value:step_switcher.getCurrent(),path:'/'});};priv.setDesign=function(new_design,old_design){Dom.removeClass(old_design,'selected');Dom.addClass(new_design,'selected');design=new_design;};priv.refreshSection=function(sec_name,new_data){if(sections[sec_name]&&new_data){sections[sec_name].innerHTML=new_data;}}
del.chooseDesign=function(e){Event.stopEvent(e);var new_design=this.parentNode,design_name='',action_uri=this.href,action_params='';if(design&&design==new_design){return false;}
action_uri=action_uri.replace(/\?(.*design=([^&]+).*)/,'');action_params=['async=1',RegExp.$1].join('&');design_name=RegExp.$2;window.scrollTo(0,0);flick_refresher.showLoadingBox();Conn.asyncRequest('POST',action_uri,{success:function(o){logger.log("Updating Flick (successful response)");priv.setDesign(new_design,design);var content=o.responseText.split('<delim>');flick_refresher.refresh(content[0]);priv.refreshSection('options',content[1]);priv.refreshSection('flick_images',content[2]);priv.refreshSection('step_title',content[3]);options_async_form.refresh();if(image_browser){logger.log("Refreshing DND");try{Event.onContentReady(image_browser.selectedImagesElement,image_browser.initializeSelectedImages,image_browser);Event.onContentReady(image_browser.remove_image_form,image_browser.initializeRemoveImageForm,image_browser);}catch(e){alert("Error Updating Display: "+e);document.location=document.location;}}else{}
PictureTrail.util.refresh(null,"flick_change");},failure:function(o){if(!Conn.isCallInProgress(o)){document.location=document.location;}},timeout:5000},action_params);};del.saveFlick=function(e){var images=sections.flick_images.getElementsByTagName('IMG');if(!images||images.length==0){Event.preventDefault(e);return false;}}
return API;})();PictureTrail.flicks.EditController=(function(){var Dom,Event;var flick_refresher=null,options_async_form=null,flick_images=null,save=null,logger=YAHOO;var API={},del={};API.init=function(config){if(config==null)return;Dom=YAHOO.util.Dom;Event=YAHOO.util.Event;flick_refresher=new PictureTrail.util.FlashRefresher(config.flick_embed);options_handler=new PictureTrail.flicks.OptionsHandler(config.options);options_async_form=new PictureTrail.form.AsyncForm(config.options);options_async_form.subscribe({preprocess:function(o){flick_refresher.showLoadingBox();return true;},success:function(o){flick_refresher.refresh(o.responseText);},failure:function(o){flick_refresher.refresh();}});flick_images=Dom.get(config.flick_images);save=Dom.get(config.save);if(save){Event.on(save,'click',del.saveFlick);}}
API.step=function(step_name){document.location.hash='images';};API.setOption=function(option_name,option_value){options_handler.setOption(option_name,option_value);};del.saveFlick=function(e){if(flick_images){if(!flick_images.getElementsByTagName('IMG').item(0)){Event.preventDefault(e);return false;}}}
return API;})();(function(){var DDM=YAHOO.util.DragDropMgr,Dom=YAHOO.util.Dom,Event=YAHOO.util.Event,Connect=YAHOO.util.Connect;PictureTrail.flicks.SortList=function(element,group,config){if(element){this.init(element,group,config);this.initFrame();this.logger=this.logger||YAHOO;}
var el=this.getDragEl();YAHOO.util.Dom.setStyle(el,"opacity",0.67);this.goingLeft=false;this.lastX=0;this.dragEndEvent=new YAHOO.util.CustomEvent("dragend",this);this.dragStartEvent=new YAHOO.util.CustomEvent("dragstart",this);}
YAHOO.extend(PictureTrail.flicks.SortList,YAHOO.util.DDProxy,{clickValidator:function(e){var currentTarget=Event.getTarget(e)
if(currentTarget.tagName=="INPUT"||currentTarget.tagName=="TEXTAREA")
{return false;}
return true;},startDrag:function(x,y){this.logger.log(this.id+" startDrag");var dragEl=this.getDragEl();var clickEl=this.getEl();Dom.setStyle(clickEl,"visibility","hidden");dragEl.innerHTML=clickEl.innerHTML;Dom.setStyle(dragEl,"color",Dom.getStyle(clickEl,"color"));Dom.setStyle(dragEl,"backgroundColor",Dom.getStyle(clickEl,"backgroundColor"));Dom.setStyle(dragEl,"border","none");Dom.addClass(dragEl,"flick_image");if(Dom.hasClass(document.body,'IE'))
Dom.addClass(dragEl,"ie_drag");this.dragStartEvent.fire(this);},endDrag:function(e){var srcEl=this.getEl();var proxy=this.getDragEl();Dom.setStyle(proxy,"visibility","visible");var a=new YAHOO.util.Motion(proxy,{points:{to:Dom.getXY(srcEl)}},0.3,YAHOO.util.Easing.easeOut)
var proxyid=proxy.id;var id=this.id;a.onComplete.subscribe(function(){Dom.setStyle(proxyid,"visibility","hidden");Dom.setStyle(id,"visibility","");});a.animate();this.dragEndEvent.fire(this);},onDragDrop:function(e,id){YAHOO.log("DROP: "+id,"warn");},onDrag:function(e,id){this.goingLeft=(this.lastX>=Event.getPageX(e));this.lastX=Event.getPageX(e);},onDragOver:function(e,id){var srcEl=this.getEl();var destEl;if("string"==typeof id){destEl=Dom.get(id);}else{destEl=DDM.getBestMatch(id).getEl();}
var p=destEl.parentNode;if(this.goingLeft){p.insertBefore(srcEl,destEl);}else{p.insertBefore(srcEl,destEl.nextSibling);}
DDM.refreshCache();},onDragEnter:function(e,id){},onDragOut:function(e,id){},toString:function(){return this.id;}});PictureTrail.flicks.ImageBrowser=function(selectedImagesElement,removeImageForm,actions,delete_button_src,hide_on_empty){this.DEFAULT_CAPTION='(your caption)';this.logger=this.logger||YAHOO;this.remove_image_form=removeImageForm;this.clear_captions_action=actions.clear_captions;this.reorder_image_action=actions.reorder_image;this.set_caption_action=actions.set_caption;this.delete_button_src=delete_button_src;this.hide_on_empty=hide_on_empty;this.selectedImagesElement=selectedImagesElement;if(selectedImagesElement)
Event.onContentReady(selectedImagesElement,this.initializeSelectedImages,this);if(removeImageForm){Event.onContentReady(removeImageForm,this.initializeRemoveImageForm,this);}
var _this=this;this.updateCallback={success:function(o){_this.handleUpdate(o);},failure:function(o){_this.handleFailure(o);}};this.refreshCallback={success:function(o){var response=false;try{eval("response = "+o.responseText);response=response.json;}catch(e){alert("Unable to parse response struct: "+e+
"\n"+o.responseText);document.location=document.location;}
if(response){var anchor=o.argument[0];_this.refreshImages(response);_this.refreshFlickControls(response.images);_this.flickRefresher.refresh(null,anchor);}},failure:function(o){if(o.status==0)return;document.location=document.location;},argument:{anchor:'flick_change'},timeout:5000};this.defaultCallback={success:function(o){try{var anchor=o.argument[0];eval("var json = "+o.responseText);if(json.json){_this.flickRefresher.refresh(null,anchor);}else{throw"Invalid response, refreshing the page.";}}catch(e){alert(e);document.location=document.location;}},failure:function(o){if(o.status==0)return;document.location=document.location;},argument:{anchor:'flick_change'},timeout:5000};this.flickRefresher=new PictureTrail.util.FlashRefresher("flick_preview_embed");}
var ImageBrowser=PictureTrail.flicks.ImageBrowser;ImageBrowser.prototype.initializeRemoveImageForm=function(browser){browser.removeImageForm=this;this.browser=browser;var deletes=this.getElementsByTagName('INPUT');if(this.async)this.async.value=1;Event.on(this,"submit",browser.removeImage);if(deletes&&deletes.length>0){var form=this;var limit=deletes.length;for(var i=0;i<limit;++i){Event.on(deletes[i],'click',function(){form.remove_image.value=this.getAttribute('imgid');});}}};ImageBrowser.prototype.refreshFlickControls=function(images){var save=Dom.get('save_button');if(save!=null){if(save.nodeName=='A'){if(images&&images.length){Dom.replaceClass(save,'disabled_button','orange_button');Event.purgeElement(save,false,'click');}else{Dom.replaceClass(save,'orange_button','disabled_button');Event.on(save,'click',function(e){Event.stopEvent(e);return false;});}}else{var activate=(images&&images.length>0);if(activate){if(save.disabled){save.setAttribute('disabled',false);save.disabled=false;}
save.className='';}else{save.disabled='disabled';save.className='disabled';}
PictureTrail.image.imageToggle(save,activate);}}}
ImageBrowser.prototype.refreshImages=function(response){var images=response.images;var max_images=response.max_images;var display=this.currentImages;display.innerHTML="";this.selectedImages=[];var no_images=Dom.get('no_images_message');var no_captions=Dom.get('no_caption_support');if(images==null||images.length==0){if(no_images)Dom.removeClass(no_images,'hide');Dom.addClass(no_captions,'hide');if(this.hide_on_empty)Dom.addClass(this.hide_on_empty,'hide');return;}
if(images.length>0){if(this.hide_on_empty)Dom.removeClass(this.hide_on_empty,'hide');if(no_images){Dom.addClass(no_images,'hide');var bottom_controls=Dom.get('bottom_flick_controls');if(bottom_controls){Dom.removeClass(bottom_controls,'hide');}}}
Dom.addClass(Dom.get('image_limit_warning'),'hide');if(images.length>max_images)
Dom.removeClass(Dom.get('max_images_warning'),'hide');else
Dom.addClass(Dom.get('max_images_warning'),'hide');var removeImageForm=this.removeImageForm;for(var i=0;i<images.length;i++){var img=images[i];var item=document.createElement("LI");item.id="flick_image_"+img.unique_id;item.setAttribute('imgid',img.unique_id);Dom.addClass(item,"flick_image");if(i>=max_images){Dom.addClass(item,"disabled");}
var input=document.createElement("INPUT");input.type="image";input.className="close_x";input.src=this.delete_button_src;input.height=18;input.width=18;input.name="remove_image_button";input.value="X";input.setAttribute('imgid',img.unique_id);if(removeImageForm!=null){Event.on(input,"click",function(ev,form){form.remove_image.value=this.getAttribute('imgid');},removeImageForm);}
var imgdiv=document.createElement("DIV");var thumb=document.createElement('IMG');if(typeof(this.imageData)==='object'&&this.imageData[img.previewUri]){var data=this.imageData[img.previewUri];thumb.height=data.height;thumb.width=data.width;thumb.style.position='relative';thumb.style.top=data.top;thumb.setAttribute('external',1);}else if(typeof(img.external)!=='undefined'){thumb.onload=function(){PictureTrail.image.thumbify(this,100,100);};}else if(typeof(img.thumbHei)!=='undefined'){thumb.height=img.thumbHei;thumb.width=img.thumbWid;}
thumb.src=img.previewUri;imgdiv.appendChild(thumb);item.appendChild(input);item.appendChild(imgdiv);if(this.using_captions){var caption=document.createElement("TEXTAREA");caption.id="cap_"+img.unique_id;caption.name=caption.id;caption.cols=10;caption.rows=2;caption.tabIndex=(i+1);caption.setAttribute('imgid',img.unique_id);if(img.title){caption.value=img.title;caption.original=img.title;}else{caption.className='shaded';caption.value=this.DEFAULT_CAPTION;caption.original='';}
item.appendChild(caption);Event.on(caption,"blur",this.updateCaption,this);Event.on(caption,"focus",this.clearDefaultCaption,this);Dom.addClass(item,"has_caption");}
display.appendChild(item);if(PictureTrail.image.scale(thumb,100,100))
PictureTrail.image.valign(thumb,100);var dnd_item=new PictureTrail.flicks.SortList(item);this.selectedImages.push(dnd_item);var get_el=dnd_item.getEl();var ul;if(get_el){ul=get_el.parentNode;}else{ul=display;}
if(!ul){document.location=document.location;}
var me=this;dnd_item.dragEndEvent.subscribe(me.handleDraggableItems,[me,dnd_item,ul]);dnd_item.dragStartEvent.subscribe(me.handleDraggableItems,[me,dnd_item,ul]);}}
ImageBrowser.prototype.removeImage=function(ev){this.browser.storeImageData();Event.preventDefault(ev);this.browser.flickRefresher.showLoadingBox();YAHOO.util.Connect.asyncRequest(this.method,this.action,this.browser.refreshCallback,"async=1&remove_image="+this.remove_image.value);}
ImageBrowser.prototype.initializeSelectedImages=function(browser){browser.currentImages=this;browser.setupDND(browser.currentImages);var captions=this.getElementsByTagName('TEXTAREA');if(captions&&captions.length>0){browser.using_captions=true;var limit=captions.length;for(var i=0;i<limit;++i){var elem=captions[i];elem.original=elem.value;Event.on(elem,"blur",browser.updateCaption,browser);Event.on(elem,"focus",browser.clearDefaultCaption,browser);if(/^\s*$/.test(elem.value)){Dom.addClass(elem,'shaded');elem.value=browser.DEFAULT_CAPTION;}}}}
ImageBrowser.prototype.setupDND=function(container){if(!container&&this.currentImages){container=this.currentImages;}
if(!container){this.logger.log("Unable to setup DND without image container");throw"Unable to setup DND without image container";}
this.logger.log("Setting up DnD with container: "+container.id+"\n"+container.innerHTML);var draggableElements=container.getElementsByTagName("LI");this.selectedImages=[];if(!draggableElements||draggableElements.length==0){if(container.id){container=Dom.get(container.id);draggableElements=container.getElementsByTagName("LI");this.logger.log("Refreshing container:\n\t"+
container.id+"\n\t"+
"Elements: "+draggableElements.length+"\n\t"+
container.innerHTML);}
if(!draggableElements||draggableElements.length==0){this.logger.log("No elements to configure, ending");return;}}
var limit=draggableElements.length;for(var i=0;i<limit;++i){var elem=draggableElements[i],item=null;this.logger.log(elem.id+" setting up drag event");try{item=new PictureTrail.flicks.SortList(elem);}catch(e){throw"Unable to create SortList item: "+e;}
this.selectedImages.push(item);item.dragEndEvent.subscribe(this.handleDraggableItems,[this,item,container]);item.dragStartEvent.subscribe(this.handleDraggableItems,[this,item,container]);}}
ImageBrowser.prototype.clearCaptions=function(){if(this.currentImages){this.flickRefresher.showLoadingBox();var captions=this.currentImages.getElementsByTagName("TEXTAREA");for(var i=0;i<captions.length;i++){captions[i].value=this.DEFAULT_CAPTION;Dom.addClass(captions[i],'shaded');}
var callback=this.defaultCallback;callback.argument.anchor=null;YAHOO.util.Connect.asyncRequest('POST',this.clear_captions_action,callback,"stub=stub");}}
ImageBrowser.prototype.handleDraggableItems=function(type,args,params){var browser=params[0];var item=params[1];var ul=params[2];var items=ul.getElementsByTagName("LI");var pos;for(pos=0;pos<items.length;pos++){if(items[pos]==item.getEl())
break;}
if(type=='dragstart'){item.dragInitialPos=pos;}
else if(item.dragInitialPos!=pos){browser.storeImageData();browser.flickRefresher.showLoadingBox();var _this=browser;browser.defaultCallback.anchor=null;YAHOO.util.Connect.asyncRequest('POST',browser.reorder_image_action,{success:function(o){try{eval("var response = "+o.responseText+";");if(response.json){_this.flickRefresher.refresh();var max=response.json.max_images||99;for(var i=0,limit=items.length;i<limit;++i){if(i<max){Dom.removeClass(items[i],'disabled');}else{Dom.addClass(items[i],'disabled');}}}else{throw"Invalid response, refreshing page.";}}
catch(e){alert(e);document.location=document.location;}},failure:_this.defaultCallback.failure,timeout:_this.defaultCallback.timeout},"unique_id="+item.getEl().getAttribute('imgid')+"&to_position="+pos);for(var i=0;i<items.length;i++){var textarea=items[i].getElementsByTagName('TEXTAREA')[0];if(textarea)
textarea.tabIndex=i+1;}}
if(type!='dragstart')item.dragInitialPos=null;}
ImageBrowser.prototype.storeImageData=function(){var images=this.currentImages.getElementsByTagName("IMG");var limit=images.length,imgData={};for(var i=0;i<limit;++i){var img=images.item(i);if(img.getAttribute('external')){imgData[img.src]={height:img.height,width:img.width,top:img.style.top};}}
this.imageData=imgData;}
ImageBrowser.prototype.updateCaption=function(ev,browser){var val=this.value.replace(/^\s+|\s+$/g,'');if(val==browser.DEFAULT_CAPTION)val='';if(val==''){Dom.addClass(this,'shaded');this.value=browser.DEFAULT_CAPTION;}
if(val!=this.original){browser.flickRefresher.showLoadingBox();var callback=browser.defaultCallback;callback.argument.anchor=null;YAHOO.util.Connect.asyncRequest('POST',browser.set_caption_action,callback,"async=1&image="+this.getAttribute('imgid')+
"&caption="+encodeURIComponent(val));}}
ImageBrowser.prototype.clearDefaultCaption=function(ev,browser){this.original=this.value;if(this.value==browser.DEFAULT_CAPTION){this.value=this.original='';Dom.removeClass(this,'shaded');}}
ImageBrowser.prototype.getCurrentImages=function(){var list=[];for(var i=0;i<this.selectedImages.length;i++)
list.push(this.selectedImages[i].toString());return list;}
ImageBrowser.prototype.handleFailure=function(o){if(o.status==0)return;document.location=document.location;}})();

