CoolSpotters.PaginationEffects={PREV:1,NEXT:-1,PlainJane:function(container,new_data,direction,options){container.innerHTML=new_data;if(options.transition_callback!=null)
options.transition_callback();},SlideOff:function(container,new_data,direction,options){container.makeClipping();container.makePositioned();var dims=container.getDimensions();if(container.style.height==null||container.style.height.length==0)
{container.setStyle({height:dims["height"]+"px",width:dims["width"]+"px"});}
var gallery_list=container.firstDescendant();gallery_list.insert({after:new_data});var gal_lists=container.childElements();if(gal_lists.length==2)
{gal_lists[1].absolutize();gal_lists[1].setStyle({left:(-1*direction*dims.width+1)+"px",top:"0px"});var new_one=gal_lists[1];gallery_list.absolutize();gallery_list.style.zIndex="10";return new Effect.Parallel([new Effect.MoveBy(gal_lists[0],0,direction*(dims.width+1)),new Effect.MoveBy(gal_lists[1],0,direction*(dims.width+1))],{duration:0.5,afterFinish:function(effect){gal_lists[0].remove();new_one.style.position="relative";if(options.transition_callback!=null)
options.transition_callback();}});}},VerticalSlide:function(container,new_data,direction,currentPage,requestedPage,totalPages,options){container.style.zIndex="100";var dims=container.getDimensions();container.setStyle({height:dims["height"]+"px",width:dims["width"]+"px"});container.makePositioned();container.makeClipping();var content_container=container.firstDescendant();if(new_data!=null)
{if(direction<0)
{content_container.insert({bottom:new_data});}
else if(direction>0)
{content_container.insert({top:new_data});}}
var children=content_container.childElements();var req_dims=children[requestedPage-1].getDimensions();var margin=5;var slide=null;if(requestedPage>currentPage)
{var cur_dims=children[currentPage-1].getDimensions();diff=requestedPage-currentPage;if(diff==1)
{slide=cur_dims['height']+margin;}
else
{for(i=requestedPage-1;i>=currentPage;i--)
{var r_dims=children[i].getDimensions();slide+=r_dims['height'];slide+=margin;}}}
else
{var cur_dims=children[currentPage-1].getDimensions();diff=currentPage-requestedPage;if(diff==1)
{slide=req_dims['height']+margin;}
else
{for(i=requestedPage+1;i<=currentPage;i++)
{var r_dims=children[i-1].getDimensions();slide+=r_dims['height'];slide+=margin;}}}
content_container.style.zIndex="10";new Effect.Move(content_container,{x:0,y:direction*slide,afterFinish:function(effect){if(options.transition_callback!=null)
options.transition_callback();}});}};CoolSpotters.CSPaginator=Class.create();CoolSpotters.CSPaginator.prototype={content_container:null,page_dots_container:null,page_dots:null,scroller:null,url:null,params:null,totalPages:0,initialPage:0,currentPage:0,currentRequest:null,currentClick:null,options:{method:"get",paramName:"page",defaultParams:null,asynchronous:true,activePageClass:"active",inactivePageClass:null,pagesTag:"li",transition:CoolSpotters.PaginationEffects.PlainJane,pageLoadedCallback:null,transition_callback:null,max_pages:10},initialize:function(container,page_dots,scroller,pagination_url,total_pages,initial_page,options)
{this.options=$H(this.options).update(options||{}).toObject();this.page_dots_container=$(page_dots);if(this.page_dots_container!=null)
{this.page_dots=$A(this.page_dots_container.getElementsBySelector(this.options.pagesTag));this.scroller=$(scroller);this.content_container=$(container);this.totalPages=total_pages;this.url=pagination_url;if(this.totalPages>this.options.max_pages)
this.totalPages=this.options.max_pages;if(initial_page==null)
initial_page=1
this.initialPage=initial_page;this.options.onSuccess=this.presentNewPage.bind(this);this.options.onFailure=this.requestFailed.bind(this);this.options.transition_callback=this.requestCleanup.bind(this);this.setPageState(initial_page);try{Event.observe(this.scroller.getElementsByClassName("scroll-left")[0],"click",this.prevPage.bindAsEventListener(this));Event.observe(this.scroller.getElementsByClassName("scroll-right")[0],"click",this.nextPage.bindAsEventListener(this));var evHandler=this.jumpToPage.bindAsEventListener(this);this.page_dots.each(function(ele){$A(ele.descendants()).each(function(ele2){if(ele2.nodeName.toLowerCase()=="a"){Event.observe(ele2,"click",evHandler);}});});}catch(e)
{}}},setPageState:function(page)
{this.setDotState(this.currentPage-1,false);this.currentPage=page;this.setDotState(this.currentPage-1,true);},setLoadingDotState:function(index)
{if(index<0||index>=this.totalPages)
return;var links=this.page_dots[index].getElementsBySelector("a");if(links!=null&&links.length>0)
links[0].addClassName('dotload');},setDotState:function(index,is_active)
{if(index<0||index>=this.totalPages)
return;var links=this.page_dots[index].getElementsBySelector("a");if(links!=null&&links.length>0)
{if(is_active)
{links[0].removeClassName('dotload');links[0].addClassName("active");}
else
{links[0].removeClassName('dotload');links[0].removeClassName("active");}}},nextPage:function(e){if(e!=null)
e.stop();this.goToPage(this.currentPage+1);},prevPage:function(e){if(e!=null)
e.stop();this.goToPage(this.currentPage-1);},jumpToPage:function(e){if(e!=null)
e.stop();var elem=Event.element(e);var label=elem.innerHTML.stripTags();if(label!=null){var matches=label.match(/Page (\d+)/);if(matches!=null)
this.goToPage(Number(matches[1]));}},goToPage:function(page)
{if(page==null)
page=1;if(this.current_request!=null)
return;if(page==this.currentPage)
return;if(page<this.currentPage)
this.currentClick=CoolSpotters.PaginationEffects.PREV;else
this.currentClick=CoolSpotters.PaginationEffects.NEXT;if(page>this.totalPages)
page=1;if(page<1)
page=this.totalPages;entry=encodeURIComponent(this.options.paramName)+'='+page;this.options.parameters=this.options.callback?this.options.callback(this.element,entry):entry;if(this.options.defaultParams)
this.options.parameters+='&'+this.options.defaultParams;this.current_request=new Ajax.Request(this.url,this.options);this.setLoadingDotState(page-1);},presentNewPage:function(transport)
{var payload=transport.responseText.evalJSON();this.options.transition(this.content_container,payload.new_page,this.currentClick,this.options);this.setPageState(payload.current_page);this.sync_up_controls(payload);if(this.options.pageLoadedCallback!=null)
this.options.pageLoadedCallback(payload);},sync_up_controls:function(payload)
{},requestFailed:function(transport)
{},requestCleanup:function(transport)
{this.current_request=null;this.currentClick=null;}};CoolSpotters.CSArrowPaginator=Class.create();CoolSpotters.CSArrowPaginator.prototype={content_container:null,scroller:null,url:null,params:null,totalPages:0,initialPage:0,currentPage:0,currentRequest:null,requestedPage:null,currentClick:null,footer:null,arrow_up_control:null,arrow_down_control:null,arrow_up_active_control:null,arrow_down_active_control:null,arrow_up_off_control:null,arrow_down_off_control:null,pagesLoaded:null,down_click_listener:null,up_click_listener:null,isLoading:null,options:{method:"get",paramName:"page",fromParamName:"from",toParamName:"to",defaultParams:null,asynchronous:true,activePageClass:"active",inactivePageClass:null,pagesTag:"li",transition:CoolSpotters.PaginationEffects.VerticalSlide,pagesLoaded:null,transition_callback:null},initialize:function(container,scroller,pagination_url,total_pages,initial_page,footer,options)
{this.options=$H(this.options).update($H(options)||{}).toObject();this.scroller=$(scroller);this.content_container=$(container);this.totalPages=total_pages;this.url=pagination_url;if(initial_page==null)
initial_page=1
this.initialPage=initial_page;if(footer!="nil"){this.footer=null;}else{this.footer=$(footer);}
this.options.onSuccess=this.presentNewPage.bind(this);this.options.onFailure=this.requestFailed.bind(this);this.options.onLoading=this.addLoader.bind(this);this.options.onLoaded=this.removeLoader.bind(this);this.options.transition_callback=this.requestCleanup.bind(this);if(this.totalPages>1)
{this.setPageState(initial_page);this.initializePagesLoaded();this.setupControls();this.sync_up_controls();this.setupFooterControls();}},initializePagesLoaded:function()
{this.pagesLoaded=new Array(this.totalPages);for(var i=0;i<this.totalPages;i++)
{this.pagesLoaded[i]=false}
this.pagesLoaded[this.initialPage-1]=true;},addLoader:function()
{},removeLoader:function()
{},setupControls:function()
{disabled_up_link=$(document.createElement("a"));disabled_up_link.id='scroll-up-control'
disabled_up_link.addClassName('scroll-up-dim');disabled_up_link.setStyle({cursor:'default'});disabled_up_link.href='#';link_text=$(document.createTextNode('Up'));disabled_up_link.appendChild(link_text);up_link=$(document.createElement("a"));up_link.id='scroll-up-control'
up_link.addClassName('scroll-up');up_link.href='#';link_text=$(document.createTextNode('Up'));up_link.appendChild(link_text);disabled_down_link=$(document.createElement("a"));disabled_down_link.id='scroll-down-control';disabled_down_link.addClassName('scroll-down-dim');disabled_down_link.setStyle({cursor:'default'});disabled_down_link.href='#';link_text=$(document.createTextNode('Down'));disabled_down_link.appendChild(link_text);down_link=$(document.createElement("a"));down_link.id='scroll-down-control';down_link.addClassName('scroll-down');down_link.href='#';link_text=$(document.createTextNode('Down'));down_link.appendChild(link_text);this.arrow_up_active_control=up_link;this.arrow_down_active_control=down_link;this.arrow_up_off_control=disabled_up_link;this.arrow_down_off_control=disabled_down_link;},setupFooterControls:function()
{bottom_link=$(document.createElement("a"));bottom_link.id='scroll-up-bottom'
bottom_link.href='#';link_text=$(document.createTextNode('Bottom'));bottom_link.appendChild(link_text);top_link=$(document.createElement("a"));top_link.id='scroll-up-top'
top_link.href='#';link_text=$(document.createTextNode('Top'));top_link.appendChild(link_text);bottom_list_item=$(document.createElement('li'));top_list_item=$(document.createElement('li'));bottom_list_item.appendChild(bottom_link);top_list_item.appendChild(top_link);if(this.footer!=null){footer_container=this.footer.firstDescendant();bottom_element=footer_container.appendChild(bottom_list_item);top_element=footer_container.appendChild(top_list_item);Event.observe($('scroll-up-bottom'),"click",this.lastPage.bindAsEventListener(this));Event.observe($('scroll-up-top'),"click",this.firstPage.bindAsEventListener(this));}},setPageState:function(page)
{this.currentPage=page;},nextPage:function(e){if(e!=null)
e.stop();if(!this.isLoading)
this.goToPage(this.currentPage+1);},prevPage:function(e){if(e!=null)
e.stop();if(!this.isLoading)
this.goToPage(this.currentPage-1);},dontGoAnywhere:function(e){if(e!=null)
e.stop();},jumpToPage:function(e){if(e!=null)
e.stop();var elem=Event.element(e);var label=elem.innerHTML.stripTags();if(label!=null){var matches=label.match(/Page (\d+)/);if(matches!=null)
this.goToPage(Number(matches[1]));}},goToPage:function(page)
{if(page==null)
page=1;if(this.current_request!=null)
return;if(page==this.currentPage)
return;if(page<this.currentPage)
this.currentClick=CoolSpotters.PaginationEffects.PREV;else
this.currentClick=CoolSpotters.PaginationEffects.NEXT;if(this.hasLoadedPage(page)&&!this.isLoading)
{this.requestedPage=page;this.presentNewPage(null);}
else
{entry=encodeURIComponent(this.options.paramName)+'='+page;this.options.parameters=this.options.callback?this.options.callback(this.element,entry):entry;if(this.options.defaultParams)
this.options.parameters+='&'+$H(this.options.defaultParams).toQueryString();this.current_request=new Ajax.Request(this.url,this.options);this.requestedPage=page;this.isLoading=true;loader_span=this.scroller.getElementsBySelector('span.scroll-load');if(loader_span!=null)
Element.show(loader_span[0]);}},firstPage:function(e)
{if(e!=null)
e.stop();if(!this.isLoading)
{if(this.current_request!=null)
return;if(this.currentPage==1)
return;this.requestedPage=1;this.currentClick=CoolSpotters.PaginationEffects.PREV;this.options.transition(this.content_container,null,this.currentClick,this.currentPage,this.requestedPage,this.options);this.setPageState(this.requestedPage);this.sync_up_controls(null);}},lastPage:function(e)
{if(e!=null)
e.stop();if(!this.isLoading)
{if(this.current_request!=null)
return;if(this.currentPage==this.totalPages)
return;this.requestedPage=this.totalPages;this.currentClick=CoolSpotters.PaginationEffects.NEXT;var all_pages_loaded=true;var last_page_loaded=0;for(var i=this.currentPage;i<=this.totalPages;i++)
{if(!this.hasLoadedPage(i))
{last_page_loaded=i;all_pages_loaded=false;break;}}
if(all_pages_loaded)
{this.options.transition(this.content_container,null,this.currentClick,this.currentPage,this.requestedPage,this.options);this.setPageState(this.requestedPage);this.sync_up_controls(null);}
else
{entry=encodeURIComponent(this.options.fromParamName)+'='+last_page_loaded;entry+='&'+encodeURIComponent(this.options.toParamName)+'='+this.totalPages;this.options.parameters=this.options.callback?this.options.callback(this.element,entry):entry;if(this.options.defaultParams)
this.options.parameters+='&'+$H(this.options.defaultParams).toQueryString();this.current_request=new Ajax.Request(this.url,this.options);}}},hasLoadedPage:function(page)
{loaded=false;if(this.pagesLoaded!=null&&this.pagesLoaded[page-1])
{loaded=true;}
return loaded;},setAllPagesLoaded:function()
{for(var i=0;i<this.totalPages;i++)
{this.pagesLoaded[i]=true;}},presentNewPage:function(transport)
{this.isLoading=true;var payload=null;if(transport!=null)
payload=transport.responseText;this.options.transition(this.content_container,payload,this.currentClick,this.currentPage,this.requestedPage,this.totalPages,this.options);if(this.options.pageLoadedCallback!=null)
this.options.pageLoadedCallback(payload);},sync_up_controls:function(payload)
{if(this.currentPage==0)
this.currentPage=1;if(this.currentPage>this.totalPages)
this.currentPage=this.totalPages;if(this.arrow_up_control!=null)
Event.stopObserving(this.arrow_up_control,"click",this.up_link_listener);if(this.arrow_down_control!=null)
Event.stopObserving(this.arrow_down_control,"click",this.down_link_listener);if(this.currentPage==1&&this.totalPages==1)
{this.arrow_up_control=null;this.arrow_down_control=null;}
else if(this.currentPage==1&&this.totalPages>1)
{this.arrow_up_control=this.arrow_up_off_control;this.arrow_down_control=this.arrow_down_active_control;this.up_link_listener=this.dontGoAnywhere.bindAsEventListener(this);this.down_link_listener=this.nextPage.bindAsEventListener(this);Event.observe(this.arrow_up_control,"click",this.up_link_listener);Event.observe(this.arrow_down_control,"click",this.down_link_listener);}
else if(this.currentPage==this.totalPages)
{this.arrow_up_control=this.arrow_up_active_control;this.arrow_down_control=this.arrow_down_off_control;this.up_link_listener=this.prevPage.bindAsEventListener(this);this.down_link_listener=this.dontGoAnywhere.bindAsEventListener(this);Event.observe(this.arrow_up_control,"click",this.up_link_listener);Event.observe(this.arrow_down_control,"click",this.down_link_listener);}
else if(this.currentPage>1&&this.currentPage<this.totalPages)
{this.arrow_up_control=this.arrow_up_active_control;this.arrow_down_control=this.arrow_down_active_control;this.up_link_listener=this.prevPage.bindAsEventListener(this);this.down_link_listener=this.nextPage.bindAsEventListener(this);Event.observe(this.arrow_up_control,"click",this.up_link_listener);Event.observe(this.arrow_down_control,"click",this.down_link_listener);}
this.renderControls();},renderControls:function()
{if(this.scroller!=null)
this.scroller.getElementsBySelector('a').each(function(ele){ele.remove();})
if(this.arrow_down_control!=null&&this.scroller!=null)
this.scroller.insert({top:this.arrow_down_control});if(this.arrow_up_control!=null&&this.scroller!=null)
this.scroller.insert({top:this.arrow_up_control});},requestFailed:function(transport)
{},requestCleanup:function(transport)
{this.current_request=null;this.currentClick=null;this.pagesLoaded[this.requestedPage-1]=true;if(this.requestedPage==this.totalPages)
this.setAllPagesLoaded();this.setPageState(this.requestedPage);this.sync_up_controls(null);this.requestedPage=null;this.isLoading=false;loader_span=this.scroller.getElementsBySelector('span.scroll-load');if(loader_span!=null)
Element.hide(loader_span[0]);},reset:function(total_pages,initial_page)
{this.totalPages=total_pages;if(initial_page==null)
initial_page=1
this.initialPage=initial_page;this.setPageState(initial_page);this.initializePagesLoaded();this.sync_up_controls(null);this.content_container.down().setStyle({top:'0px'})}};CoolSpotters.CSDiscussions=Class.create();CoolSpotters.CSDiscussions.prototype={discussion_form_html:null,discussion_container:null,comments_url:null,options:{method:"get",reply_link_class:"reply_link",edit_link_class:"edit_link",new_link_class:"post-new",new_link_nested:true,report_link_class:"report_link",includeActivityFeed:false,autogrow_textareas:true,form_element_id:"moveable_discussion_form",parent_id_field:"reply_parent_id_field",cancel_class:"post-cancel",cancel_link_nested:true,submit_class:"post-comment",return_url_field:"return_url",param_name:'p',pagination_loader:'.paginator_loader',discussion_header:'comment_header'},form_element:null,parent_id_field:null,discussion_form_element:null,resizeable_controller:null,in_edit_mode:false,swapped_content:null,textarea:null,post_new_bottom:$('post_new_bottom'),initialize:function(url,discussion_container,discussion_form_html,post_new_bottom,options)
{this.options=$H(this.options).update(options||{}).toObject();this.discussion_form_html=discussion_form_html;this.discussion_container=$(discussion_container);this.comments_url=url;this.post_new_bottom=post_new_bottom;this.createFormControl();this.wireUpComments();this.wireUpPagination();},wireUpComments:function()
{var reply_links=this.discussion_container.getElementsBySelector("a.reply_link");this.post_new_bottom=$('post_new_bottom');if(reply_links!=null)
{var this_class=this;$A(reply_links).each(function(ele,index){Event.observe(ele,"click",this_class.reply_link_clicked.bindAsEventListener(this_class));});}
var edit_links=this.discussion_container.getElementsBySelector("a.edit_link");if(edit_links!=null)
{var this_class=this;$A(edit_links).each(function(ele,index){Event.observe(ele,"click",this_class.edit_link_clicked.bindAsEventListener(this_class));});}
var report_links=this.discussion_container.getElementsBySelector("a.report_link");if(report_links!=null)
{var this_class=this;report_links.each(function(ele,index){Event.observe(ele,"click",this_class.report_link_clicked.bindAsEventListener(this_class));});}
var delete_links=this.discussion_container.getElementsBySelector("a.delete_link");if(delete_links!=null)
{var this_class=this;delete_links.each(function(ele,index){Event.observe(ele,"click",this_class.delete_link_clicked.bindAsEventListener(this_class));});}
var post_news=this.discussion_container.getElementsBySelector(".post-new");if(post_news!=null)
{var this_class=this;var new_link_nested=this.options.new_link_nested;$A(post_news).each(function(ele,index){if(new_link_nested)
ele=ele.down(0);Event.observe(ele,"click",this_class.new_comment_link_clicked.bindAsEventListener(this_class));});}
var post_new_link=$('post_new_comment_link')
if(post_new_link!=null)
{Event.observe(post_new_link,"click",this_class.new_comment_link_clicked.bindAsEventListener(this_class));}},createFormControl:function()
{this.discussion_form_element=$(document.createElement("div"));this.discussion_form_element.id=this.options.form_element_id;this.form_element=$(document.createElement("form"));this.form_element.action=this.comments_url;this.form_element.method="post";this.form_element.innerHTML=this.discussion_form_html;this.discussion_form_element.appendChild(this.form_element);var tas=this.discussion_form_element.getElementsByTagName("textarea");if(tas!=null&&tas.length>0)
{this.textarea=tas[0];this.resizeable_controller=new ResizeableTextarea(this.textarea);}
var inputs=this.form_element.getElementsByTagName("input");for(var k=0;k<inputs.length;k++)
{if(inputs[k].id==this.options.parent_id_field)
{this.parent_id_field=inputs[k];}else if(inputs[k].id==this.options.return_url_field)
{this.return_url_field=inputs[k];}}
this.submit_button=this.form_element.getElementsBySelector("."+this.options.submit_class)[0];Event.observe(this.submit_button,"click",this.submit_clicked.bindAsEventListener(this));this.return_url_field.value=document.location;},remove_form:function()
{if(this.discussion_form_element.parentNode!=null){if(this.in_edit_mode)
{this.discussion_form_element.hide();this.discussion_form_element.insert({after:this.swapped_content});this.swapped_content.show();var input=this.form_element.down(0);if(input.name=="_method")
{input.remove();}
this.form_element.action=this.comments_url;this.discussion_form_element.remove();this.textarea.removeClassName("ajaxload1");this.discussion_form_element.removeClassName("tier2");this.in_edit_mode=false;}else{this.discussion_form_element.remove();this.discussion_form_element.removeClassName("tier2");}
this.resizeable_controller.reset();}},add_form:function(target,position,parent_id)
{this.parent_id_field.value=parent_id
this.textarea.value="";var hash={};hash[position]=this.discussion_form_element;$(target).insert(hash);this.discussion_form_element.show();this.cancel_link=this.form_element.getElementsBySelector("."+this.options.cancel_class)[0];if(this.options.cancel_link_nested)
this.cancel_link=this.cancel_link.down(0);Event.observe(this.cancel_link,"click",this.cancel_clicked.bindAsEventListener(this));this.hidePostNewLinks();if(this.textarea!=null)
this.textarea.focus();this.comment_errors=$('comment-errors');this.comment_errors.hide();this.submit_button.up('span').className='form-btn-disabled';this.form_validator=new CoolSpotters.SimpleValidator(this.textarea,this.submit_button,{submit_enable_style:'form-btn',submit_disable_style:'form-btn-disabled'});this.form_interceptor=new CoolSpotters.FormButtonInterceptor(this.submit_button,{loading_text:'Posting',old_label:'Post!',add_style:'form-btn-ajax',remove_style:''});},enter_edit_mode:function(target_comment)
{if(target_comment!=null)
{var comment_id=this.parse_comment_id(target_comment);this.form_element.action=this.comments_url+"/"+comment_id;this.form_element.insert({top:"<input type=\"hidden\" name=\"_method\" value=\"put\" />"});target_comment.hide();if(target_comment.hasClassName("tier2"))
this.discussion_form_element.addClassName("tier2");this.cancel_link=this.form_element.getElementsBySelector("."+this.options.cancel_class)[0];if(this.options.cancel_link_nested)
this.cancel_link=this.cancel_link.down(0);Event.observe(this.cancel_link,"click",this.cancel_clicked.bindAsEventListener(this));target_comment.insert({before:this.discussion_form_element});this.textarea.value="";this.resizeable_controller.reset();this.discussion_form_element.show();this.textarea.addClassName("ajaxload1");this.swapped_content=target_comment.remove();this.in_edit_mode=true;this.hidePostNewLinks();this.form_interceptor=new CoolSpotters.FormButtonInterceptor(this.submit_button,{loading_text:'Posting',old_label:'Post!',add_style:'form-btn-ajax',remove_style:'form-btn',nested_buttons:true,ajax_special:true});new Ajax.Request(this.comments_url+"/"+comment_id+"/edit.js",{method:"get",onSuccess:this.received_edit_data.bind(this),onFailure:this.ajax_error.bind(this),onComplete:this.ajax_complete.bind(this)});}},received_edit_data:function(transport)
{var data=transport.responseText.evalJSON(true);this.textarea.value=data["comment"];this.parent_id_field.value=data["parent_id"];this.resizeable_controller.resize();},ajax_error:function(transport)
{alert("There was an error loading your comment for edit");this.remove_form();},ajax_complete:function(transport)
{this.textarea.removeClassName("ajaxload1");this.resizeable_controller.resize();this.textarea.focus();},ajax_submit_error:function(transport)
{alert("There was a problem submitting your comment.");},ajax_submit_complete:function(transport)
{if(this.form_interceptor!=null)
{this.form_interceptor.toggle();this.form_interceptor.unwire_events();}
this.form_interceptor=null;if(this.form_validator!=null)
this.form_validator.halt();this.form_validator=null;this.showPostNewLinks();this.textarea.removeClassName("ajaxload1");this.resizeable_controller.reset();this.remove_form();},parse_comment_id:function(element)
{var edit_link=element.getElementsBySelector('a.edit_link')[0]
var matches=edit_link.href.match(/\/(\d+)\/edit/);if(matches!=null&&matches.length>=2)
{return matches[1];}
else
{return null;}},parse_reply_comment_id:function(element)
{var matches=element.id.match(/(\d+)/);if(matches!=null&&matches.length>=2)
{return matches[0];}
else
return null;},reply_link_clicked:function(e)
{if(e!=null)
e.stop();this.hidePostNewLinks();this.remove_form();this.discussion_form_element.addClassName("tier2");var element=e.element();var target_comment=element.up(".post");var positioning_element=target_comment;var position="before";var parent_id=null;if(target_comment!=null)
{if(target_comment.hasClassName("tier2"))
{while(target_comment.hasClassName("tier2"))
{if(target_comment.previous("div.post"))
{target_comment=target_comment.previous("div.post");}
else
{target_comment=target_comment.up().previous();break;}}
last_reply=null;while(positioning_element!=null&&positioning_element.hasClassName("tier2"))
{last_reply=positioning_element;positioning_element=positioning_element.next(".post");}
if(positioning_element==null)
{positioning_element=last_reply;position="after";}}else{positioning_element=target_comment.next(".post");last_reply=target_comment;while(positioning_element!=null&&positioning_element.hasClassName("tier2"))
{last_reply=positioning_element;positioning_element=positioning_element.next(".post");}
if(positioning_element==null)
{positioning_element=last_reply;position="after";}}
parent_id=this.parse_reply_comment_id(target_comment);this.add_form(positioning_element,position,parent_id);}},edit_link_clicked:function(e)
{if(e!=null)
e.stop();this.remove_form();var element=e.element();var target_comment=element.up(".post");if(target_comment!=null)
{this.enter_edit_mode(target_comment);}},delete_link_clicked:function(e)
{if(e!=null)
e.stop();ele=Event.element(e);if(ele!=null)
{new Ajax.Request(ele.href,{method:'get'});}},report_link_clicked:function(e)
{if(e!=null)
e.stop();},new_comment_link_clicked:function(e)
{if(e!=null)
{ele=Event.element(e);e.stop();}
if(!CoolSpotters.LoggedInState)
{CoolSpotters.ModalDialog.mustlogin({dialog_class:'tool-container twide',modal_width:644,mustlogin_action:"Comments",cancel_text:'Close'});return false;}
this.remove_form();var links=this.discussion_container.getElementsBySelector("."+this.options.new_link_class);if(links!=null&&links.length>0)
{this.add_form(links[links.length-1],"after",null);this.resizeable_controller.reset();}
if(ele.id=='post_new_comment_link')
{Effect.ScrollTo(this.form_element,{offset:-20})}
return false;},cancel_clicked:function(e)
{if(e!=null)
e.stop();this.remove_form();this.showPostNewLinks();if(this.form_validator!=null)
this.form_validator.halt();this.form_validator=null;this.resizeable_controller.resize();},submit_clicked:function(e)
{if(e!=null)
e.stop();var ele=Event.element(e);var comment_url=null;var comment_id=this.parse_comment_id_from_action(ele.form.action);if(this.in_edit_mode)
comment_url=this.comments_url+"/"+comment_id;else
comment_url=this.comments_url;new Ajax.Request(comment_url,{method:"post",parameters:Form.serialize(this.discussion_form_element),onFailure:this.ajax_submit_error.bind(this),onComplete:this.ajax_submit_complete.bind(this)});},attachLinkEvents:function(comment_id)
{var comment_element=$('comment_id_'+comment_id)
var reply_links=comment_element.getElementsBySelector("a.reply_link");if(reply_links!=null)
{var this_class=this;$A(reply_links).each(function(ele,index){Event.observe(ele,"click",this_class.reply_link_clicked.bindAsEventListener(this_class));});}
var edit_links=comment_element.getElementsBySelector("a.edit_link");if(edit_links!=null)
{var this_class=this;$A(edit_links).each(function(ele,index){Event.observe(ele,"click",this_class.edit_link_clicked.bindAsEventListener(this_class));});}
var report_links=comment_element.getElementsBySelector("a.report_link");if(report_links!=null)
{var this_class=this;report_links.each(function(ele,index){Event.observe(ele,"click",this_class.report_link_clicked.bindAsEventListener(this_class));});}
var delete_links=comment_element.getElementsBySelector("a.delete_link");if(delete_links!=null)
{var this_class=this;delete_links.each(function(ele,index){Event.observe(ele,"click",this_class.delete_link_clicked.bindAsEventListener(this_class));});}},wireUpPagination:function()
{var comment_navs=$$("div#comments-nav");if(comment_navs!=null)
{var this_class=this;$A(comment_navs).each(function(ele,index){var pagination_links=ele.getElementsBySelector("a.page");if(pagination_links!=null)
{$A(pagination_links).each(function(ele,index){Event.observe(ele,"click",this_class.pagination_link_clicked.bindAsEventListener(this_class));});}});}},pagination_link_clicked:function(e)
{if(e!=null)
e.stop();var ele=Event.element(e);comment_pg=this.parse_comment_page(ele.href);loader=$$(this.options.pagination_loader);if(loader!=null)
loader[0].show();new Ajax.Request(this.comments_url,{method:"get",parameters:{'p':comment_pg},onComplete:this.afterPaginate.bind(this)});},parse_comment_page:function(str)
{var matches=str.match(/p=(\d+)/);if(matches!=null&&matches.length>=2)
return matches[1];else
return null;},parse_comment_id_from_action:function(str)
{var matches=str.match(/comments\/(\d+)/);if(matches!=null&&matches.length>=2)
return matches[1];else
return null;},afterPaginate:function()
{loader=$$(this.options.pagination_loader);if(loader!=null)
loader[0].hide();this.wireUpComments();this.wireUpPagination();Effect.ScrollTo(this.options.discussion_header);},showPostNewLinks:function()
{if(this.post_new_bottom!=null)
this.post_new_bottom.show();},hidePostNewLinks:function()
{if(this.post_new_bottom!=null)
this.post_new_bottom.hide();}};CoolSpotters.TabManager=Class.create({locked:false,initialize:function()
{this.locked=false;},lock:function()
{this.locked=true;},unlock:function()
{this.locked=false;},unlocked:function()
{return!this.locked;},locked:function()
{return this.locked;}});CoolSpotters.TabController=Class.create({manager:null,tabs:null,initialize:function()
{this.manager=new CoolSpotters.TabManager();this.tabs=[];},addTab:function(tab)
{tab.addManager(this.manager);this.tabs.push(tab);},resize:function(tab)
{this.tabs.each(function(t){t.resize();});}});CoolSpotters.Tab=Class.create({element:null,tab_element:null,container:null,manager:null,initialize:function(element,tab_element,container)
{this.element=$(element);this.tab_element=$(tab_element);this.container=$(container);Event.observe(this.element,"click",this.handle_click.bindAsEventListener(this));},handle_click:function(e)
{if(e!=null)
{e.stop();}
var manager=this.manager;if(!this.tab_element.visible()&&manager.unlocked())
{manager.lock();var tab_dimensions=this.tab_element.getDimensions();var current_tab_header=$$('li a.selected').first();var current_tab=this.container.getElementsBySelector('div.visible_tab')[0];current_tab_header.removeClassName('selected');current_tab.removeClassName('visible_tab');this.element.addClassName('selected');var tab=this.tab_element;var container=this.container;var tooltip=$('tooltip-holder');if(tooltip!=null)
tooltip.hide();current_tab.hide();this.effect=new Effect.Morph(container,{duration:0.4,style:{height:tab_dimensions.height+'px'},afterFinish:function(effect){tab.show();tab.addClassName('visible_tab');manager.unlock();}});}},addManager:function(mgr)
{this.manager=mgr;},resize:function()
{if(this.tab_element.visible())
{var tab_dimensions=this.tab_element.getDimensions();var container=this.container;this.effect=new Effect.Morph(container,{duration:0.4,style:{height:tab_dimensions.height+'px'}});}}});CoolSpotters.DetailToggle=Class.create({options:{hide_text:'Less about me',show_text:'More about me'},initialize:function(ele,targ,options)
{this.element=$(ele);this.target_element=$(targ);this.options=this.options=$H(this.options).update(options||{}).toObject();Event.observe(this.element,'click',this.on_click.bindAsEventListener(this));},on_click:function(e)
{if(e!=null)
{e.stop();}
if(this.in_progress)
{return false;}
else
{element=this.element;if(this.target_element.visible())
{element=this.element;show_text=this.options.show_text
this.target_element.blindUp({duration:0.2,queue:{position:'end',scope:'description_scope'},afterFinish:function(){element.innerHTML=show_text;}});}
else
{element=this.element;hide_text=this.options.hide_text;this.target_element.blindDown({duration:0.2,queue:{position:'end',scope:'description_scope'},afterFinish:function(){element.innerHTML=hide_text;}});}}}})
CoolSpotters.PhotoSwap=Class.create();CoolSpotters.PhotoSwap.prototype={parent_id:null,parent_name:null,eles:null,initialize:function(object_class,parent_id,user_id){this.eles=$$(object_class);this.parent_name=parent_id;this.parent_id=$(parent_id);this.user_id=user_id;this.attach();},swapContent:function(e){for(var i=0;i<this.eles.length;i++)
{link=this.eles[i].down("a.photo-link")
if(link!=null){Event.stopObserving(link,"click");link.href="javascript:void(0);";}}
ele=Event.element(e);e.stop();var list_item=ele.up("li");var new_main_photo=list_item.down("span").innerHTML;var old_main_photo=this.parent_id.down("span").innerHTML;new Ajax.Request("cs/users/swap_photos?main_photo_id="+new_main_photo+"&sub_photo_id="+old_main_photo+"&user_id="+this.user_id+"&div_id="+list_item.id);},attach:function(){for(var i=0;i<this.eles.length;i++)
{link=this.eles[i].down("a.photo-link");if(link!=null){Event.stopObserving(link,"click");Event.observe(link,"click",this.swapContent.bindAsEventListener(this));}}}};var isIE=(navigator.appVersion.indexOf("MSIE")!=-1)?true:false;var isWin=(navigator.appVersion.toLowerCase().indexOf("win")!=-1)?true:false;var isOpera=(navigator.userAgent.indexOf("Opera")!=-1)?true:false;function ControlVersion()
{var version;var axo;var e;try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");version=axo.GetVariable("$version");}catch(e){}
if(!version)
{try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");version="WIN 6,0,21,0";axo.AllowScriptAccess="always";version=axo.GetVariable("$version");}catch(e){}}
if(!version)
{try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");version=axo.GetVariable("$version");}catch(e){}}
if(!version)
{try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.3");version="WIN 3,0,18,0";}catch(e){}}
if(!version)
{try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");version="WIN 2,0,0,11";}catch(e){version=-1;}}
return version;}
function GetSwfVer(){var flashVer=-1;if(navigator.plugins!=null&&navigator.plugins.length>0){if(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]){var swVer2=navigator.plugins["Shockwave Flash 2.0"]?" 2.0":"";var flashDescription=navigator.plugins["Shockwave Flash"+swVer2].description;var descArray=flashDescription.split(" ");var tempArrayMajor=descArray[2].split(".");var versionMajor=tempArrayMajor[0];var versionMinor=tempArrayMajor[1];var versionRevision=descArray[3];if(versionRevision==""){versionRevision=descArray[4];}
if(versionRevision[0]=="d"){versionRevision=versionRevision.substring(1);}else if(versionRevision[0]=="r"){versionRevision=versionRevision.substring(1);if(versionRevision.indexOf("d")>0){versionRevision=versionRevision.substring(0,versionRevision.indexOf("d"));}}
var flashVer=versionMajor+"."+versionMinor+"."+versionRevision;}}
else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.6")!=-1)flashVer=4;else if(navigator.userAgent.toLowerCase().indexOf("webtv/2.5")!=-1)flashVer=3;else if(navigator.userAgent.toLowerCase().indexOf("webtv")!=-1)flashVer=2;else if(isIE&&isWin&&!isOpera){flashVer=ControlVersion();}
return flashVer;}
function DetectFlashVer(reqMajorVer,reqMinorVer,reqRevision)
{versionStr=GetSwfVer();if(versionStr==-1){return false;}else if(versionStr!=0){if(isIE&&isWin&&!isOpera){tempArray=versionStr.split(" ");tempString=tempArray[1];versionArray=tempString.split(",");}else{versionArray=versionStr.split(".");}
var versionMajor=versionArray[0];var versionMinor=versionArray[1];var versionRevision=versionArray[2];if(versionMajor>parseFloat(reqMajorVer)){return true;}else if(versionMajor==parseFloat(reqMajorVer)){if(versionMinor>parseFloat(reqMinorVer))
return true;else if(versionMinor==parseFloat(reqMinorVer)){if(versionRevision>=parseFloat(reqRevision))
return true;}}
return false;}}
function AC_AddExtension(src,ext)
{if(src.indexOf('?')!=-1)
return src.replace(/\?/,ext+'?');else
return src+ext;}
function AC_Generateobj(objAttrs,params,embedAttrs)
{var str='';if(isIE&&isWin&&!isOpera)
{str+='<object ';for(var i in objAttrs)
str+=i+'="'+objAttrs[i]+'" ';for(var i in params)
str+='><param name="'+i+'" value="'+params[i]+'" /> ';str+='></object>';}else{str+='<embed ';for(var i in embedAttrs)
str+=i+'="'+embedAttrs[i]+'" ';str+='> </embed>';}
document.write(str);}
function AC_FL_RunContent(){var ret=AC_GetArgs
(arguments,".swf","movie","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000","application/x-shockwave-flash");AC_Generateobj(ret.objAttrs,ret.params,ret.embedAttrs);}
function AC_GetArgs(args,ext,srcParamName,classid,mimeType){var ret=new Object();ret.embedAttrs=new Object();ret.params=new Object();ret.objAttrs=new Object();for(var i=0;i<args.length;i=i+2){var currArg=args[i].toLowerCase();switch(currArg){case"classid":break;case"pluginspage":ret.embedAttrs[args[i]]=args[i+1];break;case"src":case"movie":args[i+1]=AC_AddExtension(args[i+1],ext);ret.embedAttrs["src"]=args[i+1];ret.params[srcParamName]=args[i+1];break;case"onafterupdate":case"onbeforeupdate":case"onblur":case"oncellchange":case"onclick":case"ondblClick":case"ondrag":case"ondragend":case"ondragenter":case"ondragleave":case"ondragover":case"ondrop":case"onfinish":case"onfocus":case"onhelp":case"onmousedown":case"onmouseup":case"onmouseover":case"onmousemove":case"onmouseout":case"onkeypress":case"onkeydown":case"onkeyup":case"onload":case"onlosecapture":case"onpropertychange":case"onreadystatechange":case"onrowsdelete":case"onrowenter":case"onrowexit":case"onrowsinserted":case"onstart":case"onscroll":case"onbeforeeditfocus":case"onactivate":case"onbeforedeactivate":case"ondeactivate":case"type":case"codebase":ret.objAttrs[args[i]]=args[i+1];break;case"id":case"width":case"height":case"align":case"vspace":case"hspace":case"class":case"title":case"accesskey":case"name":case"tabindex":ret.embedAttrs[args[i]]=ret.objAttrs[args[i]]=args[i+1];break;default:ret.embedAttrs[args[i]]=ret.params[args[i]]=args[i+1];}}
ret.objAttrs["classid"]=classid;if(mimeType)ret.embedAttrs["type"]=mimeType;return ret;}
CoolSpotters.AjaxPaginate=Class.create({objectContainer:null,paginateContainer:null,url:null,name_id:null,options:{paginateClass:"page",preFix:"favorite_",loader:"paginator_loader",sel:false},initialize:function(objectContainer,paginateContainer,url,name_id,options){this.options=$H(this.options).update(options||{}).toObject();this.objectContainer=objectContainer;this.paginateContainer=paginateContainer;this.url=url;this.name_id=name_id;this.clickClass=this.paginate_link_clicked.bindAsEventListener(this);this.attachEvents();},paginate_link_clicked:function(e){if(e!=null)
e.stop();ele=Event.element(e);var matches=ele.href.match(/page=(\d+)/);var page_num=null;if(matches!=null)
page_num=matches[1];if(page_num!=null){var holder=$(this.options.preFix+'list_holder');var loader=$(this.paginateContainer).getElementsBySelector('.'+this.options.loader);if(loader!=null)
loader[0].show();var sel="";if(this.options.sel!=false)
sel=$(this.options.sel);if(sel!=null||sel!="")
sel=sel.innerHTML
new Ajax.Request(this.url,{method:"get",parameters:{object_container:this.objectContainer,page:page_num,name_id:this.name_id,sel:sel}});}},attachEvents:function(){links=$(this.paginateContainer).getElementsBySelector('.'+this.options.paginateClass);if(links!=null)
{var this_class=this;$A(links).each(function(ele,index){Event.observe(ele,"click",this_class.clickClass);});}}});CoolSpotters.AjaxSearchPaginate=Class.create(CoolSpotters.AjaxPaginate,{paginate_link_clicked:function(e){if(e!=null)
e.stop();ele=Event.element(e);var matches=ele.href.match(/page=(\d+)/);var page_num=null;if(matches!=null)
page_num=matches[1];if(page_num!=null){var holder=$(this.options.preFix+'list_holder');var loader=$(this.paginateContainer).getElementsBySelector('.'+this.options.loader);if(loader!=null)
loader[0].show();var sel="";if(this.options.sel!=false)
sel=$(this.options.sel);if(sel!=null||sel!="")
sel=sel.innerHTML
new Ajax.Request(ele.href,{method:"get",parameters:{object_container:this.objectContainer,page:page_num,name_id:this.name_id,sel:sel}});}}});