HD.CommunityDAO=function(A){this.config=A||{};
this.config.secure=this.config.secure||false;
if(this.config.secure&&typeof this.config.secure=="boolean"){this.config.secure="https://www.harley-davidson.com/"
}this.mediaBaseUrl="http://media.kickstatic.com/";
this.mediaUrlFields=["thumbUrl","url"];
this.pageNumber=A.startIndex;
this.initialPageIndex=A.startIndex;
this.totalPages=A.startIndex;
this.totalMedia=0;
this.activeItem=null;
this.filters=A.filters||{};
this.activeItemIndexOnPage=0;
this.activeItemPage=A.startIndex;
this.observers=[];
this.ratings=[];
if(!!this.config.restoreState){this.restoreState(typeof this.config.restoreState=="string"?this.config.restoreState:null,true)
}};
HD.CommunityDAO.prototype={getMedia:function(C,H,F,B){this.notifyObservers("getMedia_Start");
this.pageIndex=C;
var E={pageNumber:C};
this.setFilters(E);
var A=this;
var G=H;
var F=F||false;
var D={callback:function(P){var N=P.success?"getMedia_Finish":"getMedia_Error";
var J=P.media;
var K=[];
var L=null;
for(var M=0,O=J.length;
M<O;
M++){var R=J[M];
if(R!=null){if(L!=null){R.previous=L
}if(M<O-1){R.next=J[M+1]
}A.setFacade.call(A,R);
K.push(R)
}L=R
}var Q=B||(G?J.length-1:0);
if(K.length>0&&!F){A.activeItem=K[Q]
}A.totalPages=P.totalPages;
A.pageNumber=P.pageNumber;
A.totalMedia=P.totalMedia;
A.media=K;
P.media=K;
A.notifyObservers.call(A,N,P);
if(K.length>0){var I=K[Q];
if(!F){A.activeItem=null;
A.setActiveItem.call(A,I)
}}},parameters:{siteName:this.config.siteName}};
if(this.config.preloadedMedia==null){CommunityService.getMedia(E,D)
}else{D.callback(this.config.preloadedMedia.getMedia());
this.config.preloadedMedia=null
}},applySecureUrl:function(A){if(this.config.secure){for(var B=0;
B<this.mediaUrlFields.length;
B++){var C=[this.mediaUrlFields[B]];
if(A[C]){A[C]=A[C].replace(this.mediaBaseUrl,this.config.secure)
}}}return A
},hasNextPage:function(){return this.pageNumber<this.totalPages
},hasPreviousPage:function(){return this.pageNumber>this.initialPageIndex
},getNextPage:function(A){if(this.hasNextPage()){this.getMedia(++this.pageNumber,null,A)
}},getSamePage:function(){this.getMedia(this.pageNumber)
},getPreviousPage:function(B,A){if(this.hasPreviousPage()){this.getMedia(--this.pageNumber,B,A)
}},getActiveItem:function(){return this.activeItem
},hasNextItem:function(){if(this.activeItem&&this.activeItem.next!=null){return true
}return this.hasNextPage()
},hasPreviousItem:function(){if(this.activeItem&&this.activeItem.previous!=null){return true
}return this.hasPreviousPage()
},getNextItem:function(){if(this.activeItem.next!=null){this.setActiveItem(this.activeItem.next)
}else{if(this.hasNextPage()){this.getNextPage();
this.notifyObservers("activeItem_PageChange")
}}},getPreviousItem:function(){if(this.activeItem.previous!=null){this.setActiveItem(this.activeItem.previous)
}else{if(this.hasPreviousPage()){this.getPreviousPage(true);
this.notifyObservers("activeItem_PageChange")
}}},setActiveItem:function(A){if(this.activeItem!=null&&this.activeItem.mediaId==A.mediaId){return 
}this.activeItem=A;
this.notifyObservers("activeItem_Change",A)
},setFacade:function(A){if(A!=null){this.applySecureUrl(A);
var D=/^hd:([a-zA-Z0-9_]+?)(=(.+))?$/;
if(A.tags&&A.tags.length>0){A.metaTags={};
for(var B=A.tags.length-1;
B>=0;
B--){var C=A.tags[B].match(D);
if(C){A.tags.splice(B,1);
A.metaTags[C[1]]=C[3]||true
}}}if(HD.community.isBlog(A.contentType)){A.facade=new HD.community.Blog(A)
}else{if(HD.community.isPhoto(A.contentType)){A.facade=new HD.community.Photo(A)
}else{if(HD.community.isVideo(A.contentType)){A.facade=new HD.community.Video(A)
}}}}},getMedium:function(E,G,F){this.notifyObservers("getMedium_Start");
var C={mediaId:E};
this.setFilters(C);
if(F!=null){C.contentType=F
}var A=this;
var D=G;
var B={callback:function(K){var J=K.media;
var I=K.success?"getMedium_Finish":"getMedium_Error";
var H=J[0];
A.setFacade.call(A,H);
A.insertItem.call(A,H);
if(D!=null){D(H)
}A.addCachedMedium.call(A,H);
A.setActiveItem.call(A,H);
A.notifyObservers.call(A,I,H)
},parameters:{siteName:this.config.siteName}};
CommunityService.getMedium(C,B)
},getMultipleMedium:function(C,G,F){this.notifyObservers("getMultipleMedium_Start");
var D={mediaId:(C||[]).join(","),contentType:F||this.config.contentType};
this.setFilters(D);
if(F!=null){D.contentType=F
}var A=this;
var E=G;
var B={callback:function(K){var J=K.media;
var H=K.success?"getMultipleMedium_Finish":"getMultipleMedium_Error";
for(var I=0;
I<J.length;
I++){A.setFacade.call(A,J[I]);
A.insertItem.call(A,J[I]);
A.addCachedMedium.call(A,J[I])
}if(!!E){E(J)
}A.notifyObservers.call(A,H,J)
},parameters:{siteName:this.config.siteName}};
CommunityService.getMultipleMedium(D,B)
},getTags:function(D){this.notifyObservers("getTags_Start");
var C={itemsLimit:D};
this.setFilters(C);
if(C.tags){delete C.tags
}var A=this;
var B={callback:function(H){var E=H.success?"getTags_Finish":"getTags_Error";
var G=/^hd:([a-zA-Z0-9_]+?)(=(.+))?$/;
for(var F=H.tags.length-1;
F>=0;
F--){if(H.tags[F].tagName.match(G)){H.tags.splice(F,1)
}}A.notifyObservers.call(A,E,H)
},parameters:{siteName:this.config.siteName}};
CommunityService.getTags(C,B)
},getMonthly:function(D){this.notifyObservers("getMonthly_Start");
var C={itemsLimit:D};
this.setFilters(C);
var A=this;
var B={callback:function(F){var E=F.success?"getMonthly_Finish":"getMonthly_Error";
A.notifyObservers.call(A,E,F)
},parameters:{siteName:this.config.siteName}};
CommunityService.getMonthly(C,B)
},getAllBlogAuthors:function(D){this.notifyObservers("getAllBlogAuthors_Start");
var C={itemsLimit:D};
this.setFilters(C);
var A=this;
var B={callback:function(F){var E="getAllBlogAuthors_Finish";
A.notifyObservers.call(A,E,F)
},parameters:{siteName:this.config.siteName}};
CommunityService.getAllBlogAuthors(B)
},getFacebookEvents:function(){this.notifyObservers("getFacebookEvents_Start");
var A=this;
var B={callback:function(D){var C="getFacebookEvents_Finish";
A.notifyObservers.call(A,C,D)
},parameters:{siteName:this.config.siteName}};
CommunityService.getAllFacebookEvents(B)
},getFutureFacebookEvents:function(){this.notifyObservers("getFutureFacebookEvents_Start");
var A=this;
var B={callback:function(D){var C="getFutureFacebookEvents_Finish";
A.notifyObservers.call(A,C,D)
},parameters:{siteName:this.config.siteName}};
CommunityService.getFutureFacebookEvents(B)
},getAllFacebookAttendeesForEvent:function(D,B){this.notifyObservers("getFacebookAttendeesForEvent_Start");
var A=this;
var C={callback:function(F){var E="getFacebookAttendeesForEvent_Finish";
A.notifyObservers.call(A,E,F)
},parameters:{siteName:this.config.siteName}};
CommunityService.getAllFacebookAttendeesForEvent(D,B,C)
},getYoutubeMedia:function(D){this.notifyObservers("getYoutube_Start");
var B={numberToReturn:D};
var A=this;
var C={callback:function(F){var E="getYoutube_Finish";
A.notifyObservers.call(A,E,F)
},parameters:{siteName:this.config.siteName}};
CommunityService.getYoutubeMedia(B,C)
},getTwitterFeed:function(){this.notifyObservers("getTwitterFeed_Start");
var A=this;
var B={callback:function(D){var C="getTwitterFeed_Finish";
A.notifyObservers.call(A,C,D)
},parameters:{siteName:this.config.siteName}};
CommunityService.getTwitterFeed(B)
},getPopular:function(D,E){this.notifyObservers("getPopular_Start");
var C={itemsLimit:D};
this.setFilters(C);
if(!HD.util.Common.hasValue(E)){E=HD.SORTS.HIGHEST_RATED
}C.sortType=E;
var A=this;
var B={callback:function(L){var I=L.success?"getPopular_Finish":"getPopular_Error";
var K=L.media;
var G=null;
for(var J=0,F=K.length;
J<F;
J++){var H=K[J];
if(H!=null){if(G!=null){H.previous=G
}if(J<F-1){H.next=K[J+1]
}}A.setFacade.call(A,H);
G=H
}L.media=K;
A.notifyObservers.call(A,I,L)
},parameters:{siteName:this.config.siteName}};
CommunityService.getPopularMedia(C,B)
},getComments:function(D,E){this.notifyObservers("getComments_Start");
var C={mediaId:D};
this.setFilters(C);
if(HD.util.Common.hasValue(E)){C.contentType=E
}var A=this;
var B={callback:function(L){var G=L.success?"getComments_Finish":"getComments_Error";
var J=L.media;
var F=J[0];
var K=F.comments;
for(var H=0;
H<K.length;
H++){var I=K[H].submittedBy;
if(I.match(/^anonymoususer/i)){K[H].submittedBy="anonymous"
}}A.notifyObservers.call(A,G,F)
},parameters:{siteName:this.config.siteName}};
CommunityService.getComments(C,B)
},getFaceoff:function(D){this.notifyObservers("getFaceoff_Start");
this.notifyObservers("getComments_Start");
var A=this;
var C={mediaId:D};
this.setFilters(C);
var B={callback:function(F){if(F.success){A.setFacade(F.faceoff);
for(var G=0;
G<F.media.length;
G++){A.setFacade(F.media[G])
}}var E=F.success?"_Finish":"_Error";
A.notifyObservers("getComments"+E,F.faceoff||null);
A.notifyObservers("getFaceoff"+E,F)
},parameters:{siteName:this.config.siteName}};
CommunityService.getFaceoff(C,B)
},submitMedium:function(D){this.notifyObservers("submitMedium_Start");
var C="";
var B=D;
if(D.type.value!=null&&D.type.value!=""){C="?type="+D.type.value
}var A=this;
HD.util.Common.uploadFile(D,this.config.baseUrl+"/fileUpload"+C,function(G){var E=(G.indexOf("success")>=0)?"submitMedium_Finish":"submitMedium_Error";
var F=new Array(4);
F[0]=G;
F[1]=B.title.value;
F[2]=B.story.value;
F[3]=B.type.value||"";
clearTimeout(HD.UploadWidget.progressTimer);
A.notifyObservers.call(A,E,F)
})
},submitComment:function(D,F,E){this.notifyObservers("submitComment_Start",E);
var C={mediaId:D,comment:E,contentType:F};
this.setFilters(C);
var A=this;
var B={callback:function(I){var H=I.success?"submitComment_Finish":"submitComment_Error";
var G=null;
if(I.success){G=I.media[0];
A.setFacade.call(A,G)
}else{G=I.errors
}HD.util.Analytics.track(A.analyticsCommentString.call(A,G));
A.notifyObservers.call(A,H,G)
},parameters:{siteName:this.config.siteName}};
CommunityService.submitComment(C,B)
},rateMedia:function(E,F,D){this.notifyObservers("rateMedia_Start");
var C={mediaId:E,rating:D,contentType:F};
this.setFilters(C);
var A=this;
var B={callback:function(J){var H=J.success&&J.media!=null?"rateMedia_Finish":"rateMedia_Error";
var G=null;
var I=J.media;
if(I!=null){G=I[0];
A.setFacade.call(A,G);
A.insertItem.call(A,G);
A.addCachedMedium.call(A,G);
HD.util.Analytics.track(A.analyticsRatingString.call(A,G))
}A.notifyObservers.call(A,H,G)
},parameters:{siteName:this.config.siteName}};
CommunityService.rateMedia(C,B)
},insertItem:function(B){var D=this.media;
if(D!=null){for(var C=0,A=D.length;
C<A;
C++){if(D[C]!=null&&D[C].mediaId==B.mediaId){if(C>0){B.previous=D[C-1]
}if(C<A-1){B.next=D[C+1]
}D[C]=B
}}}this.media=D
},getMemberProfile:function(B){this.notifyObservers("getMember_Start");
var D={memberId:B};
this.setFilters(D);
var A=this;
var C={callback:function(F){var G=F.profile;
var E=F.success?"getMember_Finish":"getMember_Error";
A.notifyObservers.call(A,E,G)
},parameters:{siteName:this.config.siteName}};
CommunityService.getMemberProfile(D,C)
},getRatings:function(B){this.notifyObservers("getRatings_Start");
if(B==null){B=this.media
}var H=this.config.siteName;
var C=[];
for(var E=0,G=B.length;
E<G;
E++){var J=B[E];
C.push({mediaId:J.mediaId,contentType:J.contentType,siteName:H})
}var A={ratings:C};
this.setFilters(A);
var D=this;
var F=B;
var I={callback:function(R){var M=R.success?"getRatings_Finish":"getRatings_Error";
var P=R.ratings;
var Q=F;
for(var N=0,K=Q.length;
N<K;
N++){var L=Q[N];
var O=P[N];
if(L!=null&&O!=null){L.currentUserRating=O.rating;
D.addCachedMedium(L);
L.facade.updateRatingWidgets(L)
}}},parameters:{siteName:this.config.siteName}};
CommunityService.getRatings(A,I)
},getCachedMedium:function(F){var B=this.ratings[F];
if(B==null&&this.media!=null){var E=this.media;
for(var D=0,A=E.length;
D<A;
D++){var C=E[D];
if(C!=null&&C.mediaId==F){B=C;
break
}}}return B
},addCachedMedium:function(A){this.ratings[A.mediaId]=A
},setFilters:function(C){var B=this.filters;
var A=this.config;
C.siteName=A.siteName;
if(B.startDate!=null){C.startDate=B.startDate
}if(B.endDate!=null){C.endDate=B.endDate
}if(B.sortType!=null){C.sortType=B.sortType
}if(B.tags!=null){C.tags=B.tags
}if(B.members!=null){C.members=B.members
}if(B.metaTags!=null){C.tags=(C.tags||[]).concat(B.metaTags)
}if(B.author!=null){C.author=B.author
}if(B.contentSubtype!=null){C.contentSubtype=B.contentSubtype
}if(B.numberToReturn!=null){C.numberToReturn=B.numberToReturn
}if(A.categories!=null){C.categories=A.categories
}if(A.contentType!=null&&C.contentType==null){C.contentType=A.contentType
}if(A.pageSize!=null){C.pageSize=A.pageSize
}if(A.thumbWidth!=null){C.thumbWidth=A.thumbWidth
}if(A.mediaWidth!=null){C.mediaWidth=A.mediaWidth
}},setDateRange:function(C,B,A){this.notifyObservers("dateRange_Set",C);
this.filters.startDate=C.startDate;
this.filters.endDate=C.endDate;
if(!B){this.getMedia(1,null,!A)
}},clearDateRange:function(B,A){this.notifyObservers("dateRange_Clear");
delete this.filters.startDate;
delete this.filters.endDate;
if(!B){this.getMedia(1,null,!A)
}},setMetaTags:function(A,C,B){this.filters.metaTags=typeof A=="string"?[A]:A;
if(this.filters.metaTags.length==0){return this.clearMetaTags(C)
}this.notifyObservers("metaTags_Set",this.filters.metaTags);
if(!C){this.getMedia(1,null,!B)
}},clearMetaTags:function(B,A){delete this.filters.metaTags;
this.notifyObservers("metaTags_Clear",[]);
if(!B){this.getMedia(1,null,!A)
}},setTags:function(A,C,B){this.filters.tags=typeof A=="string"?[A]:A;
if(this.filters.tags.length==0){return this.clearTags(C)
}this.notifyObservers("tags_Set",this.filters.tags);
if(!C){this.getMedia(1,null,!B)
}},clearTags:function(B,A){delete this.filters.tags;
this.notifyObservers("tags_Clear",[]);
if(!B){this.getMedia(1,null,!A)
}},setAuthor:function(A,C,B){this.filters.author=A.userName;
if(this.filters.author.length==0){return this.clearAuthor(C)
}this.notifyObservers("author_Set",A);
if(!C){this.getMedia(1,null,!B)
}},clearAuthor:function(B,A){delete this.filters.author;
this.notifyObservers("author_Clear",[]);
if(!B){this.getMedia(1,null,!A)
}},setContentSubtype:function(A,C,B){this.filters.contentSubtype=A;
if(this.filters.contentSubtype.length==0){return this.clearContentSubtype(C)
}this.notifyObservers("contentSubtype_Set",this.filters.contentSubtype);
if(!C){this.getMedia(1,null,!B)
}},clearContentSubtype:function(B,A){delete this.filters.contentSubtype;
this.notifyObservers("contentSubtype_Clear",[]);
if(!B){this.getMedia(1,null,!A)
}},setCategories:function(A,C,B){this.config.categories=A.slice(0);
this.notifyObservers("categories_Set",A);
if(!C){this.getMedia(1,null,!B)
}},setSort:function(A){this.notifyObservers("sortType_Change",A);
this.filters.sortType=A;
this.pageNumber=this.initialPageIndex;
this.getSamePage()
},getSort:function(A){return this.filters.sortType
},isInCurrentPage:function(D){var B=false;
var C=this.media;
for(var A=0;
A<C.length;
A++){if(C[A].mediaId==D){B=true;
break
}}return B
},_generateState:function(){var A={categories:this.config.categories.join(";")};
if(this.filters.tags){A.tags=this.filters.tags.join(";")
}if(this.filters.members){A.members=this.filters.members.join(";")
}if(this.filters.author){A.author=this.filters.author.join(";")
}if(this.filters.contentSubtype){A.contentSubtype=this.filters.contentSubtype.join(";")
}if(this.filters.startDate){A.startDate=this.filters.startDate
}if(this.filters.endDate){A.startDate=this.filters.startDate
}if(this.filters.sortType){A.sortType=this.filters.sortType
}return A
},_applyState:function(A,B){if(!A){return false
}if(typeof A=="string"){A=YAHOO.util.Cookie._parseCookieHash(A)
}if(A.categories){this.setCategories(A.categories.split(";"),true)
}if(A.tags){this.setTags(A.tags.split(";"),true)
}if(A.author){this.setAuthor(A.author)
}if(A.contentSubtype){this.setContentSubtype(A.contentSubtype)
}if(A.startDate){this.filters.startDate=A.startDate
}if(A.endDate){this.filters.endDate=A.endDate
}if(A.sortType){this.filters.sortType=A.sortType
}if(!B){this.getMedia(1)
}return true
},exportState:function(){return YAHOO.util.Cookie._createCookieHashString(this._generateState())
},importState:function(A,B){return this._applyState(A,B)
},storeState:function(A){return YAHOO.util.Cookie.setSubs(A||this.config.siteName,this._generateState())
},restoreState:function(A,B){return this._applyState(YAHOO.util.Cookie.getSubs(A||this.config.siteName),B)
},clearState:function(A){return YAHOO.util.Cookie.remove(A||this.config.siteName)
},analyticsRatingString:function(A){return"default_analyticsRatingString"
},analyticsCommentString:function(A){return"default_analyticsCommentString"
}};
HD.extend(HD.CommunityDAO,[HD.util.Observable]);
HD.register("hd_community_model","HD.CommunityDAO",{version:"1.0",build:"1"});