/*
Script: pageview.js
	Contains <pageview>

Author:
	Alan Roemen

Class: PageView
	<No Description>

Options:
	storeSettings: true
	start: 0
	perPage: 2
	perPageViews: [10,25,50,75,'all']
	timeout: Amount of time sharethis window will remain open. Default: false (false means it will timeout)
	baseURL : URL of script. Default: false
	duration: Amount of time to transition pop window opening. Default: 500
	transition: Fx.Transitions.quadInOut
	className : Class name to CSS class. Default: 'PageView'
	scriptName: 'pageview'
	cookieName: 'EnewsPageView'
	navPrev: true
	navNext: true
	navPrevText: 'Previous Posts'
	navNextText: 'Recent Posts'
	centerOffsets: PopUp offsets. Default: {x: -35, y: 18}
	oldStyle: true

Events:
	onShow - optionally you can alter the default onShow behaviour with this option (like displaying a fade in effect);
*/
var PageView=new Class({options:{onShow:function(A){A.setStyle("height",A.getSize().scrollSize.y);A.effects({duration:this.options.duration,transition:this.options.transition}).custom({"opacity":[0,1]})},storeSettings:true,start:0,perPage:10,perPageViews:[10,25,50,75,"all"],timeout:4000,baseURL:false,duration:1000,transition:Fx.Transitions.quadInOut,className:"PageView",scriptName:"pageview",cookieName:"EnewsPageView",navPrev:true,navNext:true,navPrevText:"Previous Posts",navNextText:"Recent Posts",centerOffsets:{x:0,y:18},oldStyle:true},initialize:function(D,A){this.fields=$$(D);this.setOptions(A);if(this.options.perPageViews[0]>=this.fields.length){return }this.cookie=new Hash.Cookie(this.options.cookieName);if(this.options.storeSettings){if(this.cookie.get("perPage")){this.options.perPage=this.cookie.get("perPage")}else{this.cookie.extend({"perPage":this.options.perPage})}}else{this.cookie.empty()}if(!this.options.baseURL){var C=document.getElementsByTagName("script");for(var B=0;B<C.length;B++){if(C[B].src&&(C[B].src.indexOf(this.options.scriptName+".js")!=-1)){var E=C[B].src;this.options.baseURL=E.substring(0,E.lastIndexOf("/"));break}}this.documentBasePath=document.location.href;if(this.documentBasePath.indexOf("?")!=-1){this.documentBasePath=this.documentBasePath.substring(0,this.documentBasePath.indexOf("?"))}this.documentBasePath=this.documentBasePath.substring(0,this.documentBasePath.lastIndexOf("/"));if(this.options.baseURL.indexOf("://")==-1&&this.options.baseURL.charAt(0)!="/"){this.options.baseURL=this.documentBasePath+"/"+this.options.baseURL}}if(this.options.className!==false){new Asset.css(this.options.baseURL+"/"+this.options.scriptName+".css",{id:"style"})}this.Scroll=new Fx.Scroll(window);this.current=this.options.start.toInt();this.centerActive=false;this.firstRun()},firstRun:function(){this.fields.each(function(B,A){if(A>=this.current&&A<(this.current+this.options.perPage)){B.setStyle("overflow","hidden")}else{B.setStyles({"height":0,"overflow":"hidden","opacify":0})}}.bind(this));this.toolbar=new Element("div",{"class":this.options.className,"styles":{"border-top":"1px solid #ececec"}}).injectAfter(this.fields[this.fields.length-1]);this.previous=new Element("div",{"events":{"click":(function(){this.current+=this.options.perPage.toInt();this.build()}).bindWithEvent(this),"mouseover":(function(){this.previous.addClass("hoverover")}).bindWithEvent(this),"mouseout":(function(){this.previous.removeClass("hoverover")}).bindWithEvent(this)}}).setHTML(this.options.navPrevText).injectInside(this.toolbar);if(this.options.navPrev===true){new Element("img",{"src":this.options.baseURL+"/prev.gif","title":this.options.navPrevText}).injectTop(this.previous)}else{if(this.options.navPrev!==false){new Element("img",{"src":this.options.baseURL+"/"+this.options.navPrev,"title":this.options.navPrevText}).injectTop(this.previous)}}if((this.current+this.options.perPage)>=(this.fields.length)){this.previous.setStyle("visibility","hidden")}this.centerDiv=new Element("div",{"styles":{"text-align":"center","width":"34%"}}).injectInside(this.toolbar);if(this.options.oldStyle){this.oldStyle()}else{this.newStyle()}this.next=new Element("div",{"styles":{"text-align":"right","visibility":"hidden"},"events":{"click":(function(){this.current-=this.options.perPage.toInt();this.build()}).bindWithEvent(this),"mouseover":(function(){this.next.addClass("hoverover")}).bindWithEvent(this),"mouseout":(function(){this.next.removeClass("hoverover")}).bindWithEvent(this)}}).setHTML(this.options.navNextText).injectInside(this.toolbar);if(this.options.navNext===true){new Element("img",{"src":this.options.baseURL+"/next.gif","title":this.options.navNextText}).injectInside(this.next)}else{if(this.options.navNext!==false){new Element("img",{"src":this.options.baseURL+"/"+this.options.navPrev,"title":this.options.navNextText}).injectInside(this.next)}}},oldStyle:function(){var A;this.centerOptions=new Element("select",{"events":{"change":(function(){this.options.perPage=this.centerOptions.value;this.build(false)}).bindWithEvent(this)}}).injectTop(this.centerDiv);this.options.perPageViews.each(function(C){var B=C+" per page";if(C=="all"){C=this.fields.length;B="View All"}A=new Element("option",{"value":C}).setHTML(B).injectInside(this.centerOptions);if(C==this.options.perPage){A.setProperty("selected","selected")}}.bind(this))},newStyle:function(){this.center=new Element("span",{"class":"center_image","events":{"click":(function(A){if(this.centerActive){this.hide()}else{this.changeView()}}).bindWithEvent(this),"mouseover":(function(){this.center.addClass("hover_center")}).bindWithEvent(this),"mouseout":(function(){if(!this.centerActive){this.center.removeClass("hover_center")}}).bindWithEvent(this)}}).setHTML("Viewing "+this.options.perPage).injectTop(this.centerDiv);this.centerOptions=new Element("ul",{"styles":{"position":"absolute","display":"none"}}).injectInside(this.centerDiv);this.options.perPageViews.each(function(B){var A=B+" per page";if(B=="all"){B=this.fields.length;A="View All"}new Element("li",{"events":{"click":(function(){this.options.perPage=B;this.changeView()}).bindWithEvent(this),"mouseover":(function(C){C=new Event(C).stop();C.target.addClass("select_option")}),"mouseout":(function(C){C=new Event(C).stop();C.target.removeClass("select_option")})}}).setHTML(A).injectInside(this.centerOptions)}.bind(this))},build:function(A){if(this.options.storeSettings){this.cookie.extend({"perPage":this.options.perPage})}if(A!==false){this.Scroll.toTop()}else{this.Scroll.toBottom()}this.previous.setStyle("visibility","visible");this.next.setStyle("visibility","visible");if(A===false){if((this.current+this.options.perPage)>this.fields.length){this.current=this.fields.length-this.options.perPage}}if(this.current<0){this.current=0}this.fields.each(function(C,B){C.setStyles({"height":0,"overflow":"hidden","opacify":0});if(B>=this.current&&B<(this.current+this.options.perPage.toInt())){this.fireEvent("onShow",[C])}}.bind(this));if(this.current==0){this.next.setStyle("visibility","hidden")}if((this.current+this.options.perPage.toInt())>=(this.fields.length)){this.previous.setStyle("visibility","hidden")}},changeView:function(){if(this.centerActive){this.hide();this.build(false)}else{var A=this.center.getStyle("border");A=A.replace(/[^0-9,\s]/gi,"");A=A.split(" ");A=this.center.getSize().scrollSize.x-A[0];this.centerOptions.setStyle("width",A);var B=this.center.getPosition();this.centerOptions.setStyles({"top":B.y+this.options.centerOffsets.y,"left":B.x+this.options.centerOffsets.x,"display":"block"});this.centerActive=true;if(this.options.timeout){this.timer=this.hide.delay(this.options.timeout,this)}}},hide:function(){this.center.removeClass("hover_center");this.centerOptions.setStyle("display","none");this.centerActive=false;if(this.fields.length==this.options.perPage){this.center.setHTML("Viewing All")}else{this.center.setHTML("Viewing "+this.options.perPage)}}});PageView.implement(new Events,new Options)
