/*
 * Digicrafts Javascript SDK
 * http://www.digicrafts.com.hk/components
 * Copyright (c) 2010 Digicrafts
 * All Rights Reserved.
 * 
 * @version 0.1.0
 * 
 * License information see below:
 * http://www.digicrafts.com.hk/components/license
 * 
 */
var dc=dc||{};if($==undefined){alert("This framework request jQuery 1.3+.")}else{(function(){var A=false,B=/xyz/.test(function(){xyz})?/\b_super\b/:/.*/;this.Class=function(){};Class.extend=function(G){var F=this.prototype;A=true;var E=new this();A=false;for(var D in G){E[D]=typeof G[D]=="function"&&typeof F[D]=="function"&&B.test(G[D])?(function(H,I){return function(){var K=this._super;this._super=F[H];var J=I.apply(this,arguments);this._super=K;return J}})(D,G[D]):G[D]}function C(){if(!A&&this.init){this.init.apply(this,arguments)}}C.prototype=E;C.constructor=C;C.extend=arguments.callee;return C}})();dc.BLANK_IMAGE="data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==";dc.resources_path="resources/";dc.debug_in_win=($.browser.msie||$.browser.opera||(typeof console)=="undefined");dc.log=function(){if(dc.debug){if(dc.debug_in_win&&dc.debug_window==undefined){dc.debug_console=$("body").append('<ul id="DEBUG_WINDOW" style></ul>')}var B="";for(var A=0;A<arguments.length;A++){B+=arguments[A]+" "}if(dc.debug_in_win){dc.debug_console.append('<li style="color:#FF0000;float:none;font-size:.8em;z-index=900;position:relative">'+B+"</li>")}else{console.debug(B)}}};dc.noop=function(){};dc.num=function(A){return parseInt(A,10)||0};$.browser.css3=($.browser.webkit||($.browser.mozilla&&$.browser.version.substr(0,3)=="2.0")||$.browser.opera);dc.transformStyle="-webkit-transform-style";dc.transitionMethod="-webkit-transition";dc.transitionDuration="-webkit-transition-duration";dc.transformMethod="-webkit-transform";dc.css_prefix="-webkit-";if($.browser.mozilla==true){dc.css_prefix="-moz-";dc.transitionMethod="-moz-transition";dc.transformMethod="-moz-transform"}else{if($.browser.opera==true){dc.css_prefix="-o-";dc.transitionMethod="-o-transition";dc.transformMethod="-o-transform"}}dc.IMAGE_CACHE=[];dc.IMAGE_CACHE_TIMER;dc.removeImage=function(A){dc.IMAGE_CACHE.push(A);A.src=dc.BLANK_IMAGE;if(dc.IMAGE_CACHE_TIMER){}else{dc.IMAGE_CACHE_TIMER=setTimeout(function(){clearTimeout(dc.IMAGE_CACHE_TIMER);dc.IMAGE_CACHE_TIMER=null;dc.IMAGE_CACHE=[]},10000)}}}dc.data=dc.data||{};dc.data.DataProvider=Class.extend({source:"",relativepath:true,data:[],loaded:false,onerror:function(A){},oncomplete:function(A){},init:function(A){$.extend(this,A);if(this.source){this.load(this.source)}},length:function(){return this.data.length},getItemAt:function(A){return this.data[A]},load:function(A){this.loaded=false;if(dc.utils.l()){A=null}if($.isArray(A)||$.isPlainObject(A)){this.handleOnComplete(A);return true}},parse:function(A){},handleOnComplete:function(A){this.data=A;this.loaded=true;this.oncomplete(A)}});dc.data.XMLDataProvider=dc.data.DataProvider.extend({load:function(D){this._super(D);var B=this;B.source=D;if(D!=""&&D!=undefined){if($.isArray(D)||$.isPlainObject(D)){}else{if($.browser.msie){var A=false;if(!A){try{A=new ActiveXObject("MSXML2.XMLHTTP")}catch(C){A=false}}if(!A){try{A=new ActiveXObject("Microsoft.XMLHTTP")}catch(C){A=false}}if(!A&&window.XDomainRequest){try{A=new XDomainRequest()}catch(C){A=false}}A.open("get",D);A.onreadystatechange=function(){this.onreadystatechange=null;if(A.readyState==4){var F=new ActiveXObject("Microsoft.XMLDOM");F.async=false;F.loadXML(A.responseText);var E=B.parse(F);B.handleOnComplete(E)}};A.send()}else{$.ajax({url:D,dataType:($.browser.msie)?"text":"xml",success:function(G){this.success=null;var E;if(typeof G=="string"){E=new ActiveXObject("Microsoft.XMLDOM");E.async=false;E.loadXML(G)}else{E=G}var F=B.parse(E);B.handleOnComplete(F)}})}}}}});dc.data.AlbumDataProvider=dc.data.XMLDataProvider.extend({parse:function(D){var C=this;var B=[];var F;var A="";if(C.relativepath==true){F=C.source.split("/");F.pop();if(F.length>0){A=F.join("/")+"/"}}if($(D).find("items").size()>0){$(D).find("item").each(function(){var I=$(this);var H={};H.source=A+I.attr("source");H.thumbnail=A+I.attr("thumbnail");H.category=I.attr("category");$(this).children().each(function(){H[this.nodeName]=$(this).text()});B.push(H)})}else{if($(D).find("mediaGroup").size()>0){$(D).find("item").each(function(){var H={};if($.browser.msie){if($(this).find("description").get(0)){H.description=$(this).find("description").get(0).text}if($(this).find("title").get(0)){H.title=$(this).find("title").get(0).text}if($(this).find("category").get(0)){H.category=$(this).find("category").get(0).text}}else{if($(this).find("description").get(0)){H.description=$(this).find("description").get(0).textContent}if($(this).find("title").get(0)){H.title=$(this).find("title").get(0).textContent}if($(this).find("category").get(0)){H.category=$(this).find("category").get(0).textContent}}$(this).find("rendition").each(function(){var L=$(this);var J=L.attr("size");var M=L.attr("src");var I=L.attr("width");var K=L.attr("height");switch(J){case"small":H.smallSource=A+M;H.smallWidth=I;H.smallHeight=K;break;case"medium":H.mediumSource=A+M;H.mediumWidth=I;H.mediumHeight=K;break;case"large":H.largeSource=A+M;H.largeWidth=I;H.largeHeight=K;break;default:H.thumbSource=A+M;H.thumbWidth=I;H.thumbHeight=K;break}H.thumbnail=H.thumbSource;H.source=H.largeSource;H.width=I;H.height=K});B.push(H)})}else{if($(D).find("gallery").size()>0){var E=A+$(D).find("thumbnail").attr("base");var G=A+$(D).find("large").attr("base");$(D).find("image").each(function(){var I={};var H=$(this);I.thumbnail=E+H.attr("thumbnpath");I.source=G+H.attr("path");I.width=H.attr("width");I.height=H.attr("height");B.push(I)})}}}return B}});dc.mobile=dc.mobile||{};dc.mobile={isMobile:false,isIOS:false,isIPad:false,isIPhone:false,isAndroid:false,isTouch:false,init:function(A,B){this.isIPhone=RegExp("iPhone").test(navigator.userAgent);this.isIPad=RegExp("iPad").test(navigator.userAgent);this.isAndroid=RegExp("Android").test(navigator.userAgent);this.isIOS=(this.isIPhone||this.isIPad);this.isTouch=(this.isIOS||this.isAndroid);this.isMobile=(((A<=320||B<=340)&&!this.isIPhone)||this.isAndroid||this.isIPhone)},initFullscreen:function(){if(this.isIOS){var A='<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0;"/>';A+='<meta name="apple-mobile-web-app-capable" content="yes" />';A+='<meta name="apple-touch-fullscreen" content="yes" />';A+='<meta name="apple-mobile-web-app-status-bar-style" content="none" />';A+='<link rel="apple-touch-icon" href="resources/icon.png" />';$("head").append($(A));$(document).bind("touchmove",function(B){B.preventDefault()})}else{if(this.isAndroid){var A='<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0;"/>';$("head").append($(A));$(document).bind("touchmove",function(B){B.preventDefault()})}}},disableTouch:function(){if(this.isIOS){$("body").bind("touchmove",function(A){A.preventDefault()});$("head meta[name=viewport]").remove();$("head").prepend('<meta name="viewport" content="user-scalable=0" />')}dc.debug=false},enableTouch:function(){if(this.isIOS){$(document).unbind("touchmove");$("head meta[name=viewport]").remove();$("head").prepend('<meta name="viewport" content="user-scalable=1" />')}}};(function(C){dc.mobile.init(C(window).width(),C(window).height());var B=dc.mobile.isIOS?"touchend":"click";var A=dc.mobile.isIOS?"touchstart":"mousedown";C.fn.doubletap=function(E,G,D){var F,H;D=D==null?500:D;if(E==null){C(this).unbind("gesturechange");C(this).unbind(A);C(this).unbind(B)}else{C(this).bind("gesturechange",function(I){H=true});C(this).bind(A,function(I){H=false});C(this).bind(B,function(K){var I=new Date().getTime();var J=C(this).data("lastTouch")||I+1;var L=I-J;clearTimeout(F);if(!H){if(L<D&&L>0){if(E!=null&&typeof E=="function"){E(K)}}else{C(this).data("lastTouch",I);F=setTimeout(function(M){if(G!=null&&typeof G=="function"){G(M)}clearTimeout(F)},D,[K])}C(this).data("lastTouch",I)}})}}})(jQuery);dc.social={};dc.social.Share=function(D){var B="";if(!D){var C='<script src="http://platform.twitter.com/widgets.js" type="text/javascript"><\/script><div><a href="http://twitter.com/share" class="twitter-share-button" data-count="none">Tweet</a></div>';var A='<script src="http://connect.facebook.net/en_US/all.js#xfbml=1"><\/script><fb:like width="45" layout="button_count"></fb:like>';window.fbAsyncInit=function(){dc.social.facebook_ready=true;FB.XFBML.parse()};B='<ul><li class="twitter">'+C+"</li><li>"+A+"</li></ul>"}else{B="Social Icon here"}return B};dc.utils=dc.utils||{};dc.utils.Resize={AUTO:0,AUTO_WIDTH:1,AUTO_HEIGHT:2,STRETCH:3,CLIP:4,AUTO_FILL:5,NONE:999,getSize:function(A,I,G,B,F){if(F==undefined){F=this.AUTO_FILL}var H=A;var E=I;if(F==this.STRETCH){H=G;E=B}else{if(F==this.AUTO_WIDTH){H=G;E=I*G/A}else{if(F==this.AUTO_HEIGHT){E=B;H=A*B/I}else{if(F==this.AUTO){if(B>G){if(A<I){E=B;H=A*B/I;if(H>G){H=G;E=I*G/A}}else{H=G;E=I*G/A;if(E>B){E=B;H=A*B/I}}}else{if(A>I){H=G;E=I*G/A;if(E>B){E=B;H=A*B/I}}else{E=B;H=A*B/I;if(H>G){H=G;E=I*G/A}}}}else{if(F==this.AUTO_FILL){if(B>G){E=B;H=A*B/I;if(H<G){H=G;E=I*G/A}}else{H=G;E=I*G/A;if(E<B){E=B;H=A*B/I}}}}}}}var D=(G-H)/2;var C=(B-E)/2;return{width:H,height:E,tx:D,ty:C}}};dc.utils.ObjectPool={_pool:{},_pool_size:{},createObject:function(B,A){if(this._pool[B]&&this._pool[B].length>0){obj=this._pool[B].pop()}else{obj=new A();if(dc.debug){c=this._pool_size[B]||0;c++;this._pool_size[B]=c}}obj.POOL_NAME=B;return obj},deleteObject:function(A,B){if(this._pool[A]==undefined){this._pool[A]=[]}this._pool[A].push(B)},clean:function(A){},size:function(A){return(this._pool_size[A])?this._pool_size[A]:0}};dc.utils.num=function(A){return parseInt(A,10)||0};dc.utils.keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";dc.utils.l=function(){if(dc.utils.o){return false}else{var B="ZGlnaWNyYWZ0cw==";var A=window.location.hostname.split(".");for(var C in A){if(dc.utils.b(A[C])==B){return false}}}return true};dc.utils.b=function(C){var A="";var J,H,F="";var I,G,E,D="";var B=0;do{J=C.charCodeAt(B++);H=C.charCodeAt(B++);F=C.charCodeAt(B++);I=J>>2;G=((J&3)<<4)|(H>>4);E=((H&15)<<2)|(F>>6);D=F&63;if(isNaN(H)){E=D=64}else{if(isNaN(F)){D=64}}A=A+dc.utils.keyStr.charAt(I)+dc.utils.keyStr.charAt(G)+dc.utils.keyStr.charAt(E)+dc.utils.keyStr.charAt(D);J=H=F="";I=G=E=D=""}while(B<C.length);return A};dc.utils.drag_event=function(A){A.preventDefault()};dc.utils.disableDrag=function(){$("body").bind("dragstart",dc.utils.drag_event)};dc.utils.enableDrag=function(){$("body").unbind("dragstart",dc.utils.drag_event)};dc.utils.disableTouch=function(){$(document).bind("touchmove",function(A){A.preventDefault()})};dc.utils.enableTouch=function(){$(document).unbind("touchmove")};dc.utils.Loader=function(A){var B={index:0,source:"",onload:null,onabort:dc.noop};if(A){$.extend(B,A)}var C=new Image();if(B.onload){C.onload=B.onload}C.onmousedown=function(D){D.preventDefault()};if(B.onabort){C.onabort=B.onabort}C.name=String(B.index);C.src=B.source;return C};dc.utils.LoaderQueue=function(B){var C={source:[],oncomplete:null,onprogress:null,onerror:null};if(B){$.extend(C,B)}function E(G){var F=Number(G.name);D++;if(C.onprogress){C.onprogress(D,A.length,G,F)}if(D==C.source.length){if(C.oncomplete){C.oncomplete(D,A)}}}var A=[];var D=0;$.each(C.source,function(F){A[F]=dc.utils.Loader({index:F,source:C.source[F],onload:function(){$(this).attr("owidth",this.width);$(this).attr("oheight",this.height);E(this)}})});return A};dc.utils.Slideshow=Class.extend({duration:2,timer:null,uitarget:null,isIdeal:true,enabled:true,onnext:function(){},start:function(){if(this.isIdeal&&this.enabled){var A=this;A.isIdeal=false;if(A.uitarget){A.uitarget.addClass("slideshow_pause")}A.timer=setInterval(function(){A.onnext()},A.duration*1000)}},stop:function(A){this.isIdeal=true;if(this.uitarget){this.uitarget.removeClass("slideshow_pause")}if(this.timer){clearInterval(this.timer)}},restart:function(A){this.stop();this.start()},toggle:function(){if(this.isIdeal){this.start()}else{this.stop()}},init:function(A){if(A){$.extend(this,A)}}});dc.ui=dc.ui||{};dc.ui.renderer=dc.ui.renderer||{};dc.button=function(A,C,B){return'<a class="button '+B+'" style="width:'+A+"px;height:"+C+'px"><img src="'+dc.BLANK_IMAGE+'" width="'+A+'" height="'+C+'" align="top"/></a>'};dc.loading=function(){return $('<div class="float loading_indicator">&nbsp;</div>')};dc.ui.Spacer=function(){return $('<div class="clean" style="height:1em;line-height:1em;font-size:1em">&nbsp;</div>')};dc.ui.UIComponent=Class.extend({id:"",width:"",height:"",innerWidth:"",innerHeight:"",x:0,y:0,"class":"",visible:true,ui:null,parent:null,isEventsReady:false,_ui_container:null,_width:"",_height:"",_padding:null,createChildren:function(){this.ui=$('<div class="dc_ui mask float"></div>');if(this["class"]!=""){this.ui.addClass(this["class"])}this._ui_container=this.ui;var A=new Date();if(this.id!=""){this.ui.attr("id",this.id)}},addChild:function(A){A.parent=this;if(A.ui==undefined){this._ui_container.append(A)}else{this._ui_container.append(A.ui)}},removeChild:function(A){A.parent=null;if(A){if(A.ui==undefined){A.detach()}else{A.ui.detach()}}},createComplete:function(){},processEvents:function(A){if(!this.isEventsReady&&A==true){this.addEvents();this.isEventsReady=true}else{if(this.isEventsReady&&A==false){this.isEventsReady=false;this.removeEvents()}}},addEvents:function(){},removeEvents:function(){},init:function(A){$.extend(this,A);this._padding={left:0,right:0,top:0,bottom:0};this._width=this.width;this._height=this.height;this.createChildren();this.processEvents(true);this.createComplete();this.setSize(this.width,this.height)},resize:function(A,B){if(A!=undefined){this.width=A}if(B!=undefined){this.height=B}this.setWidth(this.width);this.setHeight(this.height)},applySize:function(){if(this.ui){this.ui.width(this.innerWidth);this.ui.height(this.innerHeight)}},destroy:function(){this.processEvents(false)},setPosition:function(B,A){if(B==undefined){B=""}if(A==undefined){A=""}this.ui.css({left:B,top:A})},setWidth:function(A){if(A==undefined||A==""||isNaN(A)){this.width="";this.innerWidth=""}else{this._padding.left=dc.num(this.ui.css("padding-left"))+dc.num(this.ui.css("border-left-width"));this._padding.right=dc.num(this.ui.css("padding-right"))+dc.num(this.ui.css("border-right-width"));this.width=A;this.innerWidth=A-this._padding.left-this._padding.right}},getWidth:function(){},setHeight:function(A){if(A==undefined||A==""||isNaN(A)){this.height="";this.innerHeight=""}else{this._padding.top=dc.num(this.ui.css("padding-top"))+dc.num(this.ui.css("border-top-width"));this._padding.bottom=dc.num(this.ui.css("padding-bottom"))+dc.num(this.ui.css("border-bottom-width"));this.height=A;this.innerHeight=A-this._padding.top-this._padding.bottom}},getHeight:function(){},setSize:function(A,B){this.resize(A,B);this.applySize()},setVisible:function(B,A){this.visible=B;if(A){if(B){this.ui.fadeIn()}else{this.ui.fadeOut()}}else{if(B){this.ui.show()}else{this.ui.hide()}}}});dc.ui.Image=dc.ui.UIComponent.extend({img:null,source:"",imageWidth:0,imageHeight:0,onload:dc.noop,createChildren:function(){this._super()},createComplete:function(){this._super();if(this.source){this.setSource(this.source)}},setSize:function(A,C){this._super(A,C);if(this.img){var B=dc.utils.Resize.getSize(this.imageWidth,this.imageHeight,this.width,this.height,0);this.img.width(B.width);this.img.height(B.height);this.img.css({"margin-left":B.tx,"margin-top":B.ty})}},handleImageLoad:function(A){this.imageWidth=A.width;this.imageHeight=A.height;this.ui.append(this.img);this.setSize()},_load:function(B){var A=this;if(this.img){this.img.detach()}else{this.img=$("<img/>")}this.img.load(function(){A.handleImageLoad(this)});this.img.attr("src","");this.img.attr("src",B)},setSource:function(A){if(A){this._load(A)}}});dc.ui.Transition=dc.ui.UIComponent.extend({currentImg:null,nextImg:null,defaultWebkitAnimations:["slide","flip","slideup","swap","cube","pop","fade"],defaultChromeAnimations:["slide","fade","slideup","pop"],defaultAnimations:["slide","fade","slideup","pop"],currentType:"",background:"#000000",prevLayer:null,nextLayer:null,onstart:null,oncomplete:null,startTransition:function(C,A,B){if(this.prevLayer.size()>0){this.prevLayer.empty()}if(this.nextLayer.size()>0){this.nextLayer.empty()}this.nextLayer.append(A);if(C){this.prevLayer.append(C)}this.doAnimation(B)},doAnimation:function(C){var A=this;if(C=="random"){var B=A.defaultAnimations;if($.browser.safari){B=A.defaultWebkitAnimations}else{if(RegExp("chrome").test(navigator.userAgent.toLowerCase())){B=A.defaultChromeAnimations}}C=B[Math.floor(Math.random()*B.length)]}A.currentType=C;if($.browser.webkit){A.nextLayer.one("webkitAnimationEnd",function(){if(A.currentType=="flip"||A.currentType=="swap"||A.currentType=="cube"){A.prevLayer.find("img").removeClass("out "+A.currentType);A.nextLayer.find("img").removeClass("in "+A.currentType)}else{A.prevLayer.removeClass("out "+A.currentType);A.nextLayer.removeClass("in "+A.currentType)}A.oncomplete()});if(C=="flip"||C=="swap"||C=="cube"){A.prevLayer.find("img").addClass("out "+C);A.nextLayer.find("img").addClass("in "+C)}else{A.prevLayer.addClass("out "+C);A.nextLayer.addClass("in "+C)}}else{A.prevLayer.css("left",0);A.prevLayer.css("top",0);A.nextLayer.css("left",0);A.nextLayer.css("top",0);switch(C){case"pop":var D=A.width/A.height;A.nextLayer.css("width",100);A.nextLayer.css("height",100/D);A.nextLayer.css("opacity",0);A.nextLayer.css("left",(A.width-100)/2);A.nextLayer.css("top",(A.height-100/D)/2);A.nextLayer.animate({opacity:1,left:0,top:0,width:A.width,height:A.height},"slow",function(){A.oncomplete()});A.nextLayer.animate({left:A.width},"slow");break;case"slide":A.nextLayer.css({left:A.width});A.nextLayer.animate({left:0},"slow",function(){A.oncomplete()});A.prevLayer.animate({left:-A.width},"slow");break;case"slideup":A.nextLayer.css({top:A.height});A.nextLayer.animate({top:0},"slow",function(){A.oncomplete()});A.prevLayer.animate({top:-A.height},"slow");break;case"fade":default:A.nextLayer.hide();A.nextLayer.fadeIn("slow",function(){A.oncomplete()});break}}},init:function(B){$.browser.safari=/safari/.test(navigator.userAgent.toLowerCase());if($.browser.safari){$.browser.safari=!/chrome/.test(navigator.userAgent.toLowerCase())}var A=this;A.prevLayer=$('<div class="mask float threeD"></div>');A.nextLayer=$('<div class="mask float threeD"></div>');this._super(B);A.ui.addClass("mask");A.ui.append(A.prevLayer);A.ui.append(A.nextLayer)},resize:function(A,C){var B=this;B._super(A,C);B.prevLayer.width(A);B.prevLayer.height(C);B.nextLayer.width(A);B.nextLayer.height(C)}});dc.ui.UILoader=dc.ui.UIComponent.extend({source:"",transition:null,resizemode:dc.utils.Resize.AUTO_FILL,transitionType:"random",background:"#000000",currentLayer:null,transitionLayer:null,image:null,isIdeal:true,loadLater:null,onload:dc.noop,ontransitionstart:dc.noop,ontransitioncomplete:dc.noop,startTransition:function(B){var A=this;A.ontransitionstart();var C=dc.utils.Resize.getSize(B.width,B.height,A.width,A.height,A.resizemode);$(B).width(C.width);$(B).height(C.height);$(B).css("left",C.tx+"px");$(B).css("top",C.ty+"px");A.currentLayer.hide();A.transitionLayer.startTransition(A.image,B,A.transitionType);A.image=B},setBackground:function(A){this.background=A;this.currentLayer.css("background-color",A)},load:function(B){var A=this;if(B){if(A.isIdeal){A.isIdeal=false;if(typeof B=="string"&&B!=""){dc.utils.Loader({source:B,onload:function(){$(this).attr("owidth",this.width);$(this).attr("oheight",this.height);$(this).addClass("float");A.onload(this);this.onload=null;A.startTransition(this)}})}else{A.startTransition(B)}}else{A.loadLater=B}}},createChildren:function(){this._super();var A=this;A.currentLayer=$('<div class="mask float"></div>');A.transitionLayer=new dc.ui.Transition({width:A.width,height:A.height,onstart:function(){A.ontransitionstart()},oncomplete:function(){A.currentLayer.show();A.currentLayer.append(A.image);A.isIdeal=true;if(A.loadLater){A.load(A.loadLater);A.loadLater=null}else{A.ontransitioncomplete()}}});A.transitionLayer.ui.addClass("float")},init:function(B){var A=this;A._super(B);A.ui.append(A.transitionLayer.ui);A.ui.append(A.currentLayer);A.ui.addClass("dc_uiloader float mask");$(document).bind("contextmenu",function(){dc.log("menu");return false});A.load(A.source)},resize:function(A,D){var B=this;B._super(A,D);if(B.currentLayer){B.currentLayer.css("background-color",B.background);B.currentLayer.width(B.width);B.currentLayer.height(B.height);B.transitionLayer.background=B.background;B.transitionLayer.setSize(B.width,B.height)}if(B.image){var C=dc.utils.Resize.getSize($(B.image).attr("owidth"),$(B.image).attr("oheight"),A,D,B.resizemode);$(B.image).width(C.width);$(B.image).height(C.height);$(B.image).css("left",C.tx);$(B.image).css("top",C.ty)}}});dc.ui.Previewer=dc.ui.UIComponent.extend({source:"",isTouch:false,defaultScale:1,maxScale:2,haveEvents:true,container:null,image:null,imgWidth:0,imgHeight:0,scale:1,tempScale:1,minScale:1,lastPointerPosition:{x:0,y:0},lastOffsetPosition:{x:0,y:0},tempOffsetPosition:{x:0,y:0},boundary:{x1:0,y1:0,x2:0,y2:0},isLoaded:false,inControls:false,isGesture:false,isMouseDown:false,isEvents:false,canMove:false,onloadcomplete:dc.noop,ongesturestart:dc.noop,onscalerestored:dc.noop,handleImageLoad:function(B){var A=this;A.onloadcomplete(B);A.isLoaded=true;A.canMove=false;A.imgWidth=B.width;A.imgHeight=B.height;A.container.prepend(A.image);A.calculateConstant();A.addEvents()},handleMouseMove:function(B){if(this.canMove&&this.isMouseDown){var A=this.tempOffsetPosition.x+B.pageX-this.lastPointerPosition.x;var C=this.tempOffsetPosition.y+B.pageY-this.lastPointerPosition.y;this.setPosition(A,C)}},handleMouseDown:function(B){dc.utils.disableDrag();var A=this;$(window).bind("mouseup",function(C){dc.utils.enableDrag();A.handleMouseUp(C)});this.isMouseDown=true;this.initInteractive();this.lastPointerPosition.x=B.pageX;this.lastPointerPosition.y=B.pageY},handleMouseUp:function(A){$(window).unbind("mouseup");this.endInteractive();this.isMouseDown=false},handleTap:function(A){},handleDoubleTap:function(A){if(this.scale>(this.maxScale+this.minScale)/2){this.zoomIn(this.scale-1)}else{this.zoomIn(this.scale+1)}this.ongesturestart()},handleTouchStart:function(A){if(!this.isGesture){this.initInteractive();this.lastPointerPosition.x=A.originalEvent.targetTouches[0].clientX;this.lastPointerPosition.y=A.originalEvent.targetTouches[0].clientY}},handleTouchMove:function(B){if(this.canMove&&!this.isGesture){var A=this.tempOffsetPosition.x+B.originalEvent.targetTouches[0].clientX-this.lastPointerPosition.x;var C=this.tempOffsetPosition.y+B.originalEvent.targetTouches[0].clientY-this.lastPointerPosition.y;this.setPosition(A,C)}},handleTouchEnd:function(A){this.endInteractive()},handleGestureStart:function(A){this.isGesture=true;this.ongesturestart()},handleGestureChange:function(B){this.isGesture=true;var A=B.originalEvent.scale*this.scale;if(A>=this.minScale*0.7){this.setScale(A)}},handleGestureEnd:function(A){this.isGesture=false;this.scale=this.tempScale;if(this.scale!=this.minScale){this.canMove=true}},handleAnimationEnd:function(){this.container.unbind("webkitTransitionEnd");if(this.scale==this.minScale){this.onscalerestored();this.canMove=false}else{this.canMove=true}},calculateConstant:function(){if(this.isLoaded&&this.imgWidth>0&&this.imgHeight>0){var A=dc.utils.Resize.getSize(this.imgWidth,this.imgHeight,this.width*this.defaultScale,this.height*this.defaultScale,0);this.minScale=A.width/this.imgWidth;this.scale=this.minScale;this.setScale(1,false);this.setCenter();this.setScale(this.scale,false)}},calculateBoundary:function(){if(this.isLoaded){if(this.scale<this.minScale){this.scale=this.minScale;this.boundary.x1=0;this.boundary.y1=0;this.boundary.x2=0;this.boundary.y2=0}else{if(this.scale>this.maxScale){this.scale=this.maxScale;this.boundary.x1=(this.width-this.imgWidth)/2;this.boundary.y1=(this.height-this.imgHeight)/2;this.boundary.x2=(this.imgWidth-this.width)/2;this.boundary.y2=(this.imgHeight-this.height)/2}else{this.boundary.x1=(this.imgWidth*this.scale-this.width)/2;this.boundary.y1=(this.imgHeight*this.scale-this.height)/2;this.boundary.x2=(this.width-this.imgWidth*this.scale)/2;this.boundary.y2=(this.height-this.imgHeight*this.scale)/2}}if(this.imgWidth*this.scale<this.width){this.boundary.x1=0;this.boundary.x2=0}if(this.imgHeight*this.scale<this.height){this.boundary.y1=0;this.boundary.y2=0}}},setScale:function(B,A){this.setTransform(this.lastOffsetPosition.x,this.lastOffsetPosition.y,B,A);this.tempScale=B},setCenter:function(){var A=(this.width-this.imgWidth)/2;var B=(this.height-this.imgHeight)/2;this.container.css({left:A,top:B})},setPosition:function(A,B){this.setTransform(A,B,this.scale)},setTransform:function(F,E,I,A){if($.browser.css3){var H=this;if(A){this.scale=I;this.container.css(dc.transitionMethod,"all 0.2s ease-out");this.container.bind("webkitTransitionEnd",function(J){H.handleAnimationEnd()},false)}else{if(A==false){}else{this.container.unbind("webkitTransitionEnd");this.container.css(dc.transitionMethod,"all 0.05s ease-out")}}this.container.css(dc.transformMethod,"translate("+F+"px,"+E+"px) scale("+I+")")}else{var G,D,C,B;G=this.imgWidth*I;D=this.imgHeight*I;C=F+(this.width-G)/2;B=E+(this.height-D)/2;if(A){this.scale=I;this.image.animate({width:G,height:D},{queue:false,duration:"fast"});this.container.animate({left:C,top:B},{queue:false,duration:"fast"})}else{this.image.css({width:G,height:D});this.container.css({left:C,top:B})}}this.lastOffsetPosition.x=F;this.lastOffsetPosition.y=E},initInteractive:function(){this.tempOffsetPosition.x=this.lastOffsetPosition.x;this.tempOffsetPosition.y=this.lastOffsetPosition.y},endInteractive:function(){this.calculateBoundary();this.canMove=true;var A=this.lastOffsetPosition.x;var C=this.lastOffsetPosition.y;var B=this.scale;if(A>this.boundary.x1){A=this.boundary.x1}else{if(A<this.boundary.x2){A=this.boundary.x2}}if(C>this.boundary.y1){C=this.boundary.y1}else{if(C<this.boundary.y2){C=this.boundary.y2}}this.setTransform(A,C,B,true)},addEvents:function(){if(this.image==null||this.isEvents){return }this.isEvents=true;var A=this;var B=this.container;if(A.isTouch){B.bind("touchstart",function(C){dc.mobile.disableTouch();A.handleTouchStart(C)});B.bind("touchmove",function(C){A.handleTouchMove(C)});B.bind("touchend",function(C){dc.mobile.enableTouch();A.handleTouchEnd(C)});B.bind("gesturestart",function(C){A.handleGestureStart(C)});B.bind("gesturechange",function(C){A.handleGestureChange(C)});B.bind("gestureend",function(C){A.handleGestureEnd(C)});B.doubletap(function(C){A.handleDoubleTap(C)},function(C){A.handleTap(C)})}else{B.bind("mousedown",function(C){A.handleMouseDown(C)});B.bind("mousemove",function(C){A.handleMouseMove(C)});B.dblclick(function(C){A.handleDoubleTap(C)})}},removeEvents:function(){if(this.image==null||!this.isEvents){return }this.isEvents=false;var A=this;var B=this.container;if(A.isTouch){B.unbind("touchstart");B.unbind("touchmove");B.unbind("touchend");B.unbind("gesturestart");B.unbind("gesturechange");B.unbind("gestureend")}else{B.unbind("mousedown");B.unbind("mouseup");B.unbind("mousemove")}A.ui.dblclick(null)},load:function(B){if(B&&B!=""){if(B==this.source){this.onloadcomplete(this.image)}else{var A=this;A.isLoaded=false;A.unload();scale=1;A.image=$('<img class="shadow TARGET_IMAGE" onmousedown="dc.noop()" style="position:relative"/>');A.image.bind("load",function(){A.handleImageLoad(this)});A.source=B;A.image.get(0).src=B}}},unload:function(){var A=this;if(A.image){A.removeEvents();A.image.unbind("load");A.image.remove();A.source=""}},zoom:function(A){this.setScale(A,true);this.calculateBoundary();this.endInteractive()},zoomIn:function(A){if(A==undefined){A=this.scale+0.5}if(A>this.maxScale){A=this.maxScale}this.zoom(A)},zoomOut:function(A){if(A==undefined){A=this.scale-0.5}if(A<this.minScale){A=this.minScale}this.zoom(A)},createChildren:function(){this._super();this.ui.addClass("previewer");this.container=$("<div></div>");this.container.css({position:"absolute"})},createComplete:function(){this._super();this.ui.append(this.container)},resize:function(A,B){this._super(A,B);if(this.isLoaded){this.calculateConstant();this.endInteractive()}}});dc.ui.PreviewerWithControls=dc.ui.Previewer.extend({mouseMoveTimer:null,onclosebuttonclick:dc.noop,handleImageLoad:function(A){this._super(A);this.showControls()},handleTap:function(A){this.showControls()},handleDoubleTap:function(A){if($(A.target).hasClass("TARGET_IMAGE")){this._super(A)}},handleMouseMove:function(A){this._super(A);this.showControls()},handleInControls:function(A){this.inControls=A},showControls:function(){var A=this;if(this.mouseMoveTimer){clearTimeout(this.mouseMoveTimer)}this.controls.show();this.mouseMoveTimer=setTimeout(function(){A.controls.fadeOut()},5000)},createChildren:function(){this._super();var A=this;this.controls=$('<ul class="controls corner shadow"></ul>');this.zoomin_button=$("<li>"+dc.button(40,40,"zoomin")+"</li>");this.zoomout_button=$("<li>"+dc.button(40,40,"zoomout")+"</li>");this.close_button=$("<li>"+dc.button(40,40,"close")+"</li>");this.controls.append(this.zoomin_button).append(this.zoomout_button).append(this.close_button);A.zoomin_button.click(function(){A.zoomIn()});A.zoomout_button.click(function(){A.zoomOut()});A.close_button.click(function(){A.onclosebuttonclick()})},createComplete:function(){this._super();this.ui.append(this.controls)}});dc.ui.ScrollControlBase=dc.ui.UIComponent.extend({verticalScrollPolicy:"auto",horizontalScrollPolicy:"auto",verticalScrollPosition:0,horizontalScrollPosition:0,maxVerticalScrollPosition:0,maxHorizontalScrollPosition:0,boundEnabled:true,momentumEnabled:true,center:{x:0,y:0},snap:{x:0,y:0},maskBoundary:{x:0,y:0,h:0,w:0},scrollMask:null,scrollTarget:null,allowScroll:true,isGesture:false,isMove:false,isMouseDown:false,isTouch:false,isAnimate:true,_hscroll:"auto",_vscroll:"auto",_last:{x:0,y:0},_speed:{x:0,y:0},_lastPointerPosition:{x:0,y:0},_lastOffsetPosition:{x:0,y:0},_tempOffsetPosition:{x:0,y:0},handleMouseDown:function(B){var A=this;dc.utils.disableDrag();$("body").bind("mouseup",function(C){dc.utils.enableDrag();A.handleMouseUp(C)});this.isMouseDown=true;this.isMove=false;this.startScroll();this._lastPointerPosition.x=B.pageX;this._lastPointerPosition.y=B.pageY},handleMouseUp:function(A){$("body").unbind("mouseup");this.endScroll();this.isMouseDown=false},handleMouseMove:function(A){if(this.isMouseDown){this.pointerMove(A.pageX,A.pageY)}},handleTouchStart:function(A){if(!this.isGesture){this.isMove=false;this.startScroll();this._lastPointerPosition.x=A.originalEvent.targetTouches[0].clientX;this._lastPointerPosition.y=A.originalEvent.targetTouches[0].clientY}},handleTouchMove:function(A){if(!this.isGesture){this.pointerMove(A.originalEvent.targetTouches[0].clientX,A.originalEvent.targetTouches[0].clientY)}},handleTouchEnd:function(A){this.endScroll()},handleGestureStart:function(A){this.isGesture=true},handleGestureChange:function(A){this.isGesture=true},handleGestureEnd:function(A){this.isGesture=false},handleAnimationEnd:function(){},createChildren:function(){this._super();this.scrollMask=$('<div class="mask float"></div>')},createComplete:function(){this._super();this.addChild(this.scrollMask)},resize:function(A,B){this._super(A,B);dc.log("resize",A,B);this.calculateMaskBoundary();this.scrollMask.css({width:this.maskBoundary.w,height:this.maskBoundary.h,left:this.maskBoundary.x,top:this.maskBoundary.y});this.calculateContentSize();this.calculateMaxScrollPosition()},addEvents:function(){this._super();if(this.ui==null){return }var A=this;if(A.isTouch){A.scrollMask.bind({touchstart:function(B){dc.utils.disableTouch();A.handleTouchStart(B)},touchmove:function(B){A.handleTouchMove(B)},touchend:function(B){dc.utils.enableTouch();A.handleTouchEnd(B)},gesturestart:function(B){A.handleGestureStart(B)},gesturechange:function(B){A.handleGestureChange(B)},gestureend:function(B){A.handleGestureEnd(B)}})}else{A.scrollMask.bind("mousedown",function(B){A.handleMouseDown(B)});A.scrollMask.bind("mousemove",function(B){A.handleMouseMove(B)})}},removeEvents:function(){this._super();if(this.ui==null){return }var A=this;if(A.isTouch){A.scrollMask.unbind("touchstart");A.scrollMask.unbind("touchmove");A.scrollMask.unbind("touchend");A.scrollMask.unbind("gesturestart");A.scrollMask.unbind("gesturechange");A.scrollMask.unbind("gestureend")}else{A.scrollMask.unbind("mousedown");A.scrollMask.unbind("mousemove")}},calculateMaskBoundary:function(){this.maskBoundary.x=0;this.maskBoundary.y=0;this.maskBoundary.w=this.width;this.maskBoundary.h=this.height},calculateMaxScrollPosition:function(){this._hscroll=(this.maxHorizontalScrollPosition==0)?"off":this.horizontalScrollPolicy;this._vscroll=(this.maxVerticalScrollPosition==0)?"off":this.verticalScrollPolicy},calculateContentSize:function(){},startScroll:function(){this._tempOffsetPosition.x=this._lastOffsetPosition.x;this._tempOffsetPosition.y=this._lastOffsetPosition.y},endScroll:function(){this.calculateMaxScrollPosition();this.handleAnimationEnd();var B=this._lastOffsetPosition.x;var D=this._lastOffsetPosition.y;var A=Math.abs(this._speed.x);if(A>8){B=B+A*this._speed.x/10}var C=Math.abs(this._speed.y);if(C>8){D=D+C*this._speed.y/10}if(this.snap.x>5){B=Math.round(B/this.snap.x)*this.snap.x}if(this.snap.y>5){D=Math.round(D/this.snap.y)*this.snap.y}if(B>0){B=0}else{if(B<-this.maxHorizontalScrollPosition){B=-this.maxHorizontalScrollPosition}}if(D>0){D=0}else{if(D<-this.maxVerticalScrollPosition){D=-this.maxVerticalScrollPosition}}this._scrollTo(B,D,0.2)},pointerMove:function(B,D){var C=B-this._lastPointerPosition.x;var A=D-this._lastPointerPosition.y;if(C>5||A>5){this.isMove=true}this._speed.x=B-this._last.x;this._speed.y=D-this._last.y;this._last.x=B;this._last.y=D;this._scrollTo(this._tempOffsetPosition.x+C,this._tempOffsetPosition.y+A,0.02)},_scrollTo:function(A,C,B){if(this.horizontalScrollPosition!=A||this.verticalScrollPosition!=C){if(this._vscroll=="off"){C=0}if(this._hscroll=="off"){A=0}this.horizontalScrollPosition=-A;this.verticalScrollPosition=-C;this._lastOffsetPosition.x=A;this._lastOffsetPosition.y=C;this.scrollTo(A,C,B)}},setScrollPosition:function(A,B){if(A<0){A=0}else{if(A>this.maxHorizontalScrollPosition){A=this.maxHorizontalScrollPosition}}if(B<0){B=0}else{if(B>this.maxVerticalScrollPosition){B=this.maxVerticalScrollPosition}}this._scrollTo(-A,-B,0.2)}});dc.ui.ScrollControl=dc.ui.ScrollControlBase.extend({container:null,createChildren:function(){this._super();this.container=$('<div class="container"></div>');this.ui.addClass("float mask");if($.browser.css3){this.container.css(dc.transformStyle,"preserve-3d");this.container.css(dc.transformMethod,"translate3d(0,0,0)")}this.scrollTarget=this.container},createComplete:function(){this._super();this.scrollMask.append(this.container)},removeAllChildren:function(){this.container.empty()},addEvents:function(){var A=this;if($.browser.css3&&this.scrollTarget){this.scrollTarget.bind("webkitTransitionEnd",function(B){A.handleAnimationEnd()},false)}this._super();this.scrollTarget.unbind("touchstart");this.scrollTarget.unbind("touchmove")},removeEvents:function(){if($.browser.css3){this.container.unbind("webkitTransitionEnd")}this._super()},handleAnimationEnd:function(){},scrollTo:function(A,C,B){this.setTransform(this.container,B,A,C,1)},calculateMaxScrollPosition:function(){var A=dc.utils.num(this.scrollTarget.css("width"));var B=dc.utils.num(this.scrollTarget.css("height"));if(A<=this.maskBoundary.w){this.maxHorizontalScrollPosition=0}else{this.maxHorizontalScrollPosition=A-this.maskBoundary.w}if(B<=this.maskBoundary.h){this.maxVerticalScrollPosition=0}else{this.maxVerticalScrollPosition=B-this.maskBoundary.h}this._super()},setTransform:function(E,C,A,F,D){var B=this;if($.browser.css3){E.css(dc.transitionMethod,"-webkit-transform "+C+"s ease-out");E.css(dc.transformMethod,"translate3d("+(A+this.center.x)+"px, "+(F+this.center.y)+"px, 0)")}else{if(C>0.02){E.animate({left:(A+this.center.x),top:(F+this.center.y)},{queue:false,duration:"fast",complete:function(){B.handleAnimationEnd()}})}else{E.css({left:(A+this.center.x),top:(F+this.center.y)})}}}});dc.ui.renderer.ItemRenderer=dc.ui.UIComponent.extend({index:0,data:null,selected:false,visible:false,onitemselect:dc.noop,handleClick:function(A){this.setSelected(true);this.onitemselect(this)},handleMouseover:function(A){},handleMouseout:function(A){},show:function(){},hide:function(){},setVisible:function(A){if(!A&&this.visible){this.visible=false;this.hide()}else{if(A&&!this.visible){this.visible=true;this.show()}}},setSelected:function(A){this.selected=A},init:function(A){this._super(A);this.ui.addClass("item float")},addEvents:function(){this._super();var A=this;A.ui.bind("click",function(B){A.handleClick(B)});A.ui.bind("mouseover",function(B){A.handleMouseover(B)});A.ui.bind("mouseout",function(B){A.handleMouseout(B)})},removeEvents:function(){this._super();this.ui.unbind("click");this.ui.unbind("mouseover");this.ui.unbind("mouseout")}});dc.ui.ListBase=dc.ui.ScrollControl.extend({source:"",dataProvider:null,sourceLabel:"source",adaptiveRender:false,itemRenderer:dc.ui.ItemRenderer,gap:5,padding:2,items:null,currentItem:null,currentItemData:null,currentItemIndex:-1,currentPositionIndex:0,maxItemCount:0,ondatacomplete:dc.noop,oncomplete:dc.noop,onloaderprogress:dc.noop,onitemselect:dc.noop,handleDataProviderComplete:function(A){this.build()},handleAnimationEnd:function(){this._super();if(this.items&&this.items.length>0){this.calculatePositionIndex();var B=this;var E=0;var A=B.items.length;if(B.adaptiveRender){E=B.currentPositionIndex-2;A=B.currentPositionIndex+B.maxItemCount*2-1}if(E<0){E=0}if(A>=this.items.length){A=this.items.length-1}for(var C in this.items){var D=B.items[C];if(C>=E&&C<=A){D.setVisible(true)}else{D.setVisible(false)}}B.currentItem=B.items[B.currentPositionIndex]}},calculatePositionIndex:function(){if(this.items){this.maxItemCount=this.items.length}},checkCurrentPosition:function(){},calculatMaskBoundary:function(){this._super();this.maskBoundary.w-=this.padding*2;this.maskBoundary.h-=this.padding*2;this.maskBoundary.x=this.padding;this.maskBoundary.y=this.padding},build:function(){var A=this;if(A.dataProvider&&A.dataProvider.loaded&&A.dataProvider.data){}else{return false}this._lastOffsetPosition.x=0;this._lastOffsetPosition.y=0;this.currentItemIndex=0;$.each(A.dataProvider.data,function(B){var C=A.createItem(B,this);C.sourceLabel=A.sourceLabel;if(B%2==1){C.ui.addClass("odd")}A.items[B]=C;A.container.append(C.ui)});this._addEvents();this.scrollMask.append(this.container);this.isAnimate=true;this.handleAnimationEnd();this.setSize();this.oncomplete()},createItem:function(B,D){var A=this;var C=new this.itemRenderer({index:B,data:D,onitemselect:function(E){if(!A.isMove){A.onitemselect(E,E.data);A.setSelectedItemIndex(E.index)}}});return C},destroy:function(){this.currentItemData=this.currentItem=null;if(this.items&&this.items.length>0){this.removeAllChildren()}this.items=[];this.data=null;this.scrollTo(0,0,0,1)},events:null,listeners:null,addEventListener:function(B,A){this.events=this.events||[];this.listeners=this.listeners||[];this.events.push(B);this.listeners.push(A)},_addEvents:function(){if(this.items&&this.items.length>0){for(var B in this.items){for(var A in this.events){this.items[B][this.events[A]]=this.listeners[A]}}}},setDataProvider:function(B){var A=this;this.source=B;if(B==null||B==undefined){}else{if(typeof B=="string"){}else{if($.isArray(B)){A.destroy();A.dataProvider=new dc.data.DataProvider({oncomplete:function(C){A.handleDataProviderComplete(C)}});A.dataProvider.load(B)}else{A.destroy();A.dataProvider=B;B.oncomplete=function(C){A.handleDataProviderComplete(C)};if(B.loaded){A.buld()}}}}},setSelectedItemIndex:function(A){if(this.items&&A<this.items.length){this.currentItemIndex=A;$.each(this.items,function(B){if(B!=A){this.setSelected(false)}});this.currentItem=this.items[A];this.currentItemData=this.currentItem.data;this.currentItem.setSelected(true);this.checkCurrentPosition()}},init:function(A){this._super(A);this.ui.addClass("list");if(this.dataProvider){this.setDataProvider(this.dataProvider)}}});dc.ui.renderer.TileListItemRenderer=dc.ui.renderer.ItemRenderer.extend({container:null,image:null,added:false,loaded:false,resizeMode:5,sourceLabel:"source",_loadingIndicator:null,handleLoaderEvent:function(A){A.onload=null;this.container.append(A);this.added=true;this.loaded=true;this._loadingIndicator=this._loadingIndicator.detach();this.resize()},show:function(){var A=this;if(A.data[this.sourceLabel]&&A.data[this.sourceLabel]!=""){A.image=new Image();A.image.onload=function(){var B=A.data[A.sourceLabel];if(B==undefined){B=A.data.source}$(this).addClass("float");$(this).attr("osource",B);$(this).attr("owidth",this.width);$(this).attr("oheight",this.height);A.handleLoaderEvent(this)};A.image.src=A.data[A.sourceLabel];this.ui.prepend(this._loadingIndicator)}},hide:function(){if(this.image&&this.added){this.added=false;$(this.image).remove();dc.removeImage(this.image);this.image=null;this.source=""}this.loaded=false},createChildren:function(){this._super();this.container=$('<div class="mask" style="position:relative" idx="'+this.index+'"></div>');this._loadingIndicator=dc.loading()},createComplete:function(){this._super();this.addChild(this.container)},resize:function(B,F){this._super(B,F);var C=this;if(C.image&&C.loaded){var A=C.width;var E=C.height;var G=$(C.image);var D=dc.utils.Resize.getSize(G.attr("owidth"),G.attr("oheight"),A,E,C.resizeMode);G.width(D.width);G.height(D.height);G.css("left",D.tx);G.css("top",D.ty);C.container.css({width:A,height:E});D=null;G=null}}});dc.ui.renderer.CaptionTileListItemRenderer=dc.ui.renderer.TileListItemRenderer.extend({caption:null,show:function(){this._super();this.caption.empty();this.caption.append(this.data.title)},createChildren:function(){this._super();this.caption=$('<div class="caption corner">A</div>')},createComplete:function(){this._super();this.addChild(this.caption)},resize:function(A,B){this._super(A,B);this.container.height(this.height-this.caption.height()-32)}});dc.ui.TileBase=dc.ui.ListBase.extend({columnWidth:-1,rowHeight:-1,columnCount:0,rowCount:0,itemResizeMode:5,_columnWidth:100,_rowHeight:100,_cellWidth:0,_cellHeight:0,_columnCount:0,_rowCount:0,_vgap:0,_hgap:0,oncomplete:dc.noop,calculatePositionIndex:function(){if(this.items!=null){this.currentPositionIndex=Math.round(this.horizontalScrollPosition/this._columnWidth);if(this.currentPositionIndex<0){this.currentPositionIndex=0}}},checkCurrentPosition:function(){if(this.vscroll=="off"){var A=(this.currentItemIndex%this._columnCount)*this._columnWidth;if(A<-this.lastOffsetPosition.x||A>=-this.lastOffsetPosition.x+this.width){this._scrollTo(A,-this.lastOffsetPosition.y)}}else{if(this.hscroll=="off"){var B=(this.currentItemIndex%this._rowCount)*this._rowWidth;if(B<-this.lastOffsetPosition.y||B>=-this.lastOffsetPosition.y+this.height){this._scrollTo(-this.lastOffsetPosition.x,B)}}}},calculateContentSize:function(){dc.log("calculateContentSize",this.gap);if(this.ui){var A=Math.min(this.maskBoundary.w,this.maskBoundary.h);this._columnWidth=(this.columnWidth==-1)?A:this.columnWidth;this._rowHeight=(this.rowHeight==-1)?A:this.rowHeight;this._cellWidth=this._columnWidth+this.gap;this._cellHeight=this._rowHeight+this.gap;dc.log("calculateContentSize",this.maskBoundary.w,this.columnWidth,this._columnWidth,this._cellWidth,"gap",this.gap);if(this.items){if(this.columnCount>1){this._columnCount=this.columnCount}else{if(this.columnCount==1){this._columnCount=this.columnCount}else{if(this.rowCount>1){var B=Math.ceil(this.items.length/this.rowCount)*this._cellWidth;if(B<this.maskBoundary.w){B=this.maskBoundary.w}this._columnCount=Math.floor(B/this._cellWidth)}else{if(this.rowCount==1){this._columnCount=this.items.length}else{this._columnCount=Math.floor(this.maskBoundary.w/this._columnWidth)}}}}if(this.rowCount>0){this._rowCount=this.rowCount}else{if(this.columnCount>1){this._rowCount=Math.ceil(this.items.length/this.columnCount)}else{if(this.columnCount==1){this._rowCount=this.items.length}else{this._rowCount=Math.floor(this.maskBoundary.h/this._cellHeight)}}}}dc.log("content size",this._cellWidth,this._columnCount,this._cellHeight,this._rowCount);if(this._cellWidth&&this._cellHeight){this.container.css({width:this._cellWidth*this._columnCount,height:this._cellHeight*this._rowCount})}}},applySize:function(A,C){this._super(A,C);var B=this;this.snap.x=this._cellWidth;this.snap.y=this._cellHeight;if(this.container&&this.items&&this.items.length>0){$.each(this.items,function(G){var E=Math.floor(G/B._columnCount);var F=(G%B._columnCount);this.resizeMode=B.itemResizeMode;this.setSize(B._columnWidth,B._rowHeight);var D=B._cellWidth*F;var H=B._cellHeight*E;this.setPosition(D,H)})}},init:function(B){var A=this;if(B&&B.itemRenderer==undefined){this.itemRenderer=dc.ui.renderer.TileListItemRenderer}this._super(B)}});dc.ui.Thumbnail=dc.ui.TileBase.extend({vertical:false,thumbnailResizeMode:5,controlSize:20,nextButton:null,prevButton:null,calculateMaskBoundary:function(){this._super();if(this.vertical){this.maskBoundary.h=this.maskBoundary.h-this.controlSize*2;this.maskBoundary.y=this.maskBoundary.y+this.controlSize}else{this.maskBoundary.w=this.maskBoundary.w-this.controlSize*2;this.maskBoundary.x=this.maskBoundary.x+this.controlSize}},calculatePositionIndex:function(){if(this.vertical){this.currentPositionIndex=Math.round(this.verticalScrollPosition/this._rowHeight)}else{this.currentPositionIndex=Math.round(this.horizontalScrollPosition/this._columnWidth)}if(this.currentPositionIndex<0){this.currentPositionIndex=0}},createChildren:function(){this._super();var A=this;A.prevButton=$(dc.button(A.controlSize,A.controlSize,"prev"));A.nextButton=$(dc.button(A.controlSize,A.controlSize,"next"));A.prevButton.addClass("float");A.nextButton.addClass("float");A.prevButton.click(function(){A.prevPage()});A.nextButton.click(function(){A.nextPage()})},createComplete:function(){this._super();this.ui.append(this.prevButton);this.ui.append(this.nextButton)},init:function(A){this.itemRenderer=dc.ui.renderer.TileListItemRenderer;this._super(A)},resize:function(A,B){if(this.items){if(this.vertical){this.horizontalScrollPolicy="off";this.verticalScrollPolicy="auto";this.columnCount=1;this.rowCount=this.items.length}else{this.horizontalScrollPolicy="auto";this.verticalScrollPolicy="off";this.columnCount=this.items.length;this.rowCount=1}}this._super(A,B)},applySize:function(A,B){this._super(A,B);this.prevButton.width(self.controlSize);this.prevButton.height(self.controlSize);this.nextButton.width(self.controlSize);this.nextButton.height(self.controlSize);if(this.vertical){this.maxItemCount=Math.floor(this.maskBoundary.h/this._cellHeight);this.prevButton.css({top:0,left:(this.width-this.controlSize)/2,right:"",bottom:""});this.nextButton.css({top:"",left:(this.width-this.controlSize)/2,right:"",bottom:0});this.prevButton.addClass("vertical");this.nextButton.addClass("vertical")}else{this.maxItemCount=Math.floor(this.maskBoundary.w/this._cellWidth);this.prevButton.css({top:(this.height-this.controlSize)/2,left:0,right:"",bottom:""});this.nextButton.css({top:(this.height-this.controlSize)/2,left:"",right:0,bottom:""});this.prevButton.removeClass("vertical");this.nextButton.removeClass("vertical")}},scrollToIndex:function(A){if(A<0){A=0}if(A>=this.items.length+this.maxItemCount){A=this.items.length-1-this.maxItemCount}var B=0;if(this.vertical){B=A*this._cellHeight;this.setScrollPosition(0,B)}else{B=A*this._cellWidth;this.setScrollPosition(B,0)}},nextPage:function(){var A=this.currentPositionIndex+this.maxItemCount;this.scrollToIndex(A)},prevPage:function(){var A=this.currentPositionIndex-this.maxItemCount-1;this.scrollToIndex(A)}});dc.data.LightroomDataProvider=dc.data.XMLDataProvider.extend({parse:function(B){var A={};if(B.childNodes[0].nodeName=="galleryStyle"){$(B).find("appearance").each(function(){$(this).children().each(function(){var C=A[this.nodeName]={};$(this).children().each(function(){C[this.nodeName]=$(this).attr("value")})})})}return A}});dc.lightroom=dc.lightroom||{};dc.lightroom.Parameters=Class.extend({init:function(A){if(A){for(var B in this){if(A[B]!=undefined){if(A[B]=="true"){this[B]=true}else{if(A[B]=="false"){this[B]=false}else{if(isNaN(Number(this[B]))||this[B]==null){this[B]=A[B]}else{this[B]=Number(A[B])}}}}}}}});dc.lightroom.BasicParameters=dc.lightroom.Parameters.extend({logoVisible:true,logoLink:null,title:"Site Title",description:"Site Description Here.",copyright:"&copy;Copyright 2010.",backgroundColor:"#000000",themeColor:"#333333",themeTextColor:"#FFFFFF",themeAlpha:80,backgroundPath:"skin/background.jpg",autoSlideShowEnabled:true,slideShowEnabled:true,slideShowInterval:5,contactName:"contact",contactFileName:"contact.html"});dc.lightroom.Gallery=dc.ui.UIComponent.extend({settings:{},source:null,mediaPath:"media/",logoSource:"logo.png",defaultCategory:"default",allCategoryEnabled:true,loadingAnimation:null,orientation:"landscape",firststart:true,slideshowRandom:false,itemCount:0,basicparameters:{},currentdata:null,currentkey:null,albumdata:null,categorydata:null,slideshowIndex:0,isPreview:false,isGalleryReady:false,isFullscreen:true,handleSourceLoad:function(A){},handleAlbumLoad:function(A){},handleWindowResize:function(){if(window&&document&&$(window).width()>0&&this.ui.parent().width()>0){if(this.isFullscreen){if(dc.mobile.isIPhone){this.setSize($(window).width(),$(window).height()+60)}else{if(dc.mobile.isAndroid){this.setSize($(window).width(),$(window).height())}else{this.setSize($(window).width(),$(window).height())}}if(dc.mobile.isIPhone){scrollTo(0,0)}else{if(dc.mobile.isAndroid){scrollTo(0,window.innerHeight)}}}else{this.setSize(this.ui.parent().width(),this.ui.parent().height())}}},handleSlideShow:function(){if(this.slideshowRandom){this.slideshowIndex=Math.floor(this.currentdata.length*Math.random())}else{this.slideshowIndex++;if(this.slideshowIndex>=this.currentdata.length){this.slideshowIndex=0}}},createChildren:function(){this._super();var A=this;A.loadingAnimation=$('<div class="dc_ui dc_loading">loading...</div>');A.slideshow=new dc.utils.Slideshow({onnext:function(){A.handleSlideShow()}})},initParameters:function(A){dc.log("Lightroom.initParameters()");dc.log(A);this.basicparameters=new dc.lightroom.BasicParameters(A.basic)},layout:function(){dc.log("Lightroom.layout()")},stylesChange:function(){dc.log("Lightroom.stylesChange()");var A=this.basicparameters;if(this.isFullscreen){$("body").css("background-color",A.backgroundColor)}else{this.ui.css("background-color",A.backgroundColor)}this.ui.find(".backgroundColor").css({"background-color":A.themeColor});this.ui.find(".backgroundAlpha").css({opacity:A.themeAlpha/100});this.ui.find(".textColor").css("color",A.themeTextColor);this.slideshow.duration=A.slideShowInterval},galleryReady:function(){dc.log("Lightroom.galleryReady()");if(dc.mobile.isIPhone){scrollTo(0,0)}else{if(dc.mobile.isAndroid){scrollTo(0,window.innerHeight)}}this.isLoading(false);if(this.firststart&&this.basicparameters.autoSlideShowEnabled){this.toggleSlideshow()}this.isGalleryReady=true;this.firststart=false;if(!this.isFullscreen){var A=this;var B=setInterval(function(){clearInterval(B);A.ui.fadeIn();$(window).resize()},900)}},isLoading:function(B){var A=this;if(B){A.ui.append(A.loadingAnimation)}else{A.loadingAnimation.detach()}},getParameterByName:function(B){B=B.replace(/[\[]/,"\\[").replace(/[\]]/,"\\]");var A="[\\?&]"+B+"=([^&#]*)";var D=new RegExp(A);var C=D.exec(window.location.hash);if(C==null){return""}else{return decodeURIComponent(C[1].replace(/\+/g," "))}},insertLiveupdate:function(){var A=this;document.liveUpdate=function(E,D,G,C){var F="failed";var B=E.split(".");if(B==null){if(document.LR_modelManipulation){return"invalidateOldHTML"}return"failed"}if(B[0]=="appearance"){A.setProperty(B[1],B[2],D)}if(dc.lightroom_debug){$("#debug_panel").append("<br/><div>update "+B[2]+" new value: "+D+" valid: "+parameters[parameter]+"</div>")}return"invalidateOldHTML"};if(dc.lightroom_debug){$("body").append('<div id="debug_panel" style="width:400px;font-size:11px;color:#FF0000;position:absolute;z-index=900">Liveupdate Ready</div>')}},startGallery:function(){dc.log("Lightroom.startGallery()");this.stylesChange();this.setSize();this.loadAlbum(this.currentkey);if(this.isPreview){this.insertLiveupdate()}},load:function(B){var A=this;if(B&&B!=""&&A.ui.parent()){A.isLoading(true);if(A.isFullscreen){A.width=$(window).width();A.height=$(window).height();if(dc.mobile.isIPhone){A.height+=60}else{if(dc.mobile.isAndroid){A.height+=40}}}else{A.width=A.ui.parent().width();A.height=A.ui.parent().height()}if(dc.mobile.isIOS){$("body").bind("orientationchange",function(){A.handleWindowResize()}).trigger("orientationchange")}else{$(window).resize(function(){A.handleWindowResize()})}new dc.data.LightroomDataProvider({source:A.settings,oncomplete:function(C){A.initParameters(C);A.loadImageSource(B)}})}},loadImageSource:function(B){dc.log("Lightroom.loadImageSource");var A=this;A.isLoading(true);A.categorydata={"default":[]};new dc.data.AlbumDataProvider({source:B,oncomplete:function(C){A.isLoading(false);A.currentdata=A.albumdata=C;$(C).each(function(){if(this.category){var D=encodeURI(this.category);if(A.categorydata[D]==undefined){A.categorydata[D]=[]}A.categorydata[D].push(this)}A.categorydata["default"].push(this)});A.startGallery()}})},unload:function(){},loadAlbum:function(A){dc.log("Lightroom.loadAlbum(): "+A);this.slideshowIndex=0;this.currentkey=A;if(this.categorydata[A]){this.itemCount=this.categorydata[A].length}else{this.itemCount=0}dc.log(this.itemCount);this.slideshow.enabled=(this.itemCount>1);if(A&&this.basicparameters.autoSlideShowEnabled){this.slideshow.restart()}},setProperty:function(C,D,B){var A=this.basicparameters;if(C=="gallery"){A=this.parameters}if(A[D]!=undefined){success="invalidateOldHTML";if(B=="true"){A[D]=true}else{if(B=="false"){A[D]=false}else{if(isNaN(Number(A[D]))){A[D]=B}else{A[D]=Number(B)}}}this.stylesChange()}},slideshow:null,isSlideshowIdeal:true,toggleSlideshow:function(B){var A=this;if(A.isSlideshowIdeal||B||A.itemCount>1){A.slideshow.start();toggleSlideshow=false}else{A.slideshow.stop();toggleSlideshow=true}},init:function(B){var A=this;A.isPreview=(window.location.protocol=="agwpg:");A._super(B);if(!this.isFullscreen){A.ui.hide()}A.ui.addClass("lightroom_gallery");if(this.isFullscreen){dc.mobile.initFullscreen()}},setSize:function(A,B){this._super(A,B);if(this.width>this.height){this.orientation="landscape"}else{this.orientation="portrait"}if(dc.mobile.isIPhone){if(this.orientation=="landscape"&&this.height>300){this.height=300}if(this.orientation=="portrait"&&this.height>460){this.height=460}this._super(A,this.height)}this.layout();if(dc.mobile.isIPhone){scrollTo(0,10);scrollTo(0,0)}}});dc.lightroom.BasicGallery=dc.lightroom.Gallery.extend({parameterClass:null,parameters:{},meta_title:"",meta_type:"",meta_url:"",meta_image:"",currentLink:"",boundary:{x:0,y:0,w:0,h:0},mouseMoveTimer:null,handleSlideShow:function(){this._super();this.gotoItem(this.slideshowIndex)},handleMouseMove:dc.noop,handleMouseNotMove:dc.noop,handleMouseOver:dc.noop,handleMouseOut:dc.noop,initParameters:function(A){this._super(A);if(this.parameterClass){this.parameters=new this.parameterClass(A.gallery)}},stylesChange:function(){this._super();var A=this.basicparameters;var C=this.parameters;var B=this;if(B.isGalleryReady){if(A.slideShowEnabled){if(A.autoSlideShowEnabled){B.slideshow.start()}else{B.slideshow.stop()}B.slideshow_button.show()}else{B.slideshow.stop();B.slideshow_button.hide()}B.layout()}},prepareMouseEvent:function(B){if(this.isGalleryReady||B){var A=this;if(A.mouseMoveTimer){clearTimeout(A.mouseMoveTimer)}A.handleMouseMove();A.mouseMoveTimer=setTimeout(function(){clearTimeout(A.mouseMoveTimer);A.handleMouseNotMove()},5000)}},addMouseMoveEvent:function(){var A=this;A.prepareMouseEvent(true);if(dc.mobile.isTouch){$("body").bind("touchmove",function(){A.prepareMouseEvent()})}else{A.ui.bind("mousemove",function(){A.prepareMouseEvent()})}this.ui.hover(function(){A.handleMouseOver()},function(){A.handleMouseOut()})},removeMouseMoveEvent:function(){if(dc.mobile.isTouch){$("body").unbind("touchmove")}else{this.ui.unbind("mousemove")}},gotoItem:function(A){},next:function(){var A=this.slideshowIndex+1;if(A>=this.currentdata.length){A=0}this.gotoItem(A)},prev:function(){var A=this.slideshowIndex-1;if(A<0){A=this.currentdata.length-1}this.gotoItem(A)}});
/*
 * Digicrafts Lightroom Gallery
 * http://www.digicrafts.com.hk/components
 * Copyright (c) 2010 Digicrafts
 * All Rights Reserved.
 * 
 * @version 1.0.0
 * 
 * License information see below:
 * http://www.digicrafts.com.hk/components/license
 * 
 */
dc.ui.renderer.ThumbnailItemRenderer=dc.ui.renderer.TileListItemRenderer.extend({setSelected:function(A){this._super(A);if(this.selected){this.ui.addClass("selected")}else{this.ui.removeClass("selected")}}});dc.lightroom.HTML5PortfolioParameters=dc.lightroom.Parameters.extend({headerPosition:"top",thumbnailPosition:"bottom",thumbnailEnabled:true,thumbnailAutoHide:true,navigationEnabled:true,titleEnabled:true,transitionType:"random",galleryMenuName:"portfolio",resizeMode:0,thumbnailSize:50,thumbnailResizeMode:5});dc.lightroom.HTML5PhotoPortfolio=dc.lightroom.BasicGallery.extend({parameterClass:dc.lightroom.HTML5PortfolioParameters,logo:null,header:null,footer:null,menu:null,menu_container:null,thumbnail:null,thumbnail_container:null,next_thumbnail_key:null,thumbnailAnimation:false,category_container:null,control_container:null,slideshow_control:null,next_button:null,prev_button:null,slideshow_button:null,social_button:null,menu_data:null,about_container:null,handleMouseMove:function(){if(this.parameters.thumbnailAutoHide&&!this.isPanelOpen){this.fadeThumbnail(false)}},handleMouseNotMove:function(){if(this.parameters.thumbnailAutoHide){this.fadeThumbnail(true)}},createChildren:function(){this._super();var A=this;A.uiloader=new dc.ui.UILoader({ontransitionstart:function(){A.isLoading(false)},width:A.width,height:A.height});A.uiloader.ui.css("z-index","0");var C=$('<a href=""><img id="main_logo" src="'+A.mediaPath+A.logoSource+'"/></a>');var G=$('<div id="main_header" class="textColor"></div>');var F=$('<div id="main_footer" class="textColor"><div class="background backgroundColor backgroundAlpha">&nbsp;</div></div>');var B=$('<div class="inner_content"><div class="dc_cleanfloat"></div></div>');var E=$('<div class="inner_content"></div>');var D=$('<ul class="main_menu"></ul>');A.title_container=$('<div class="main_title textColor"><div class="inner_content"></div><div class="background backgroundColor backgroundAlpha">&nbsp;</div></div>');B.prepend(D);B.prepend(C);G.prepend(B);F.prepend(E);G.css("top",-100);F.css("bottom",-100);A.header=G;A.footer=F;A.header_content=B;A.footer_content=E;A.menu=D;A.logo=C;A.thumbnail_container=$('<div class="thumbnail_container"><div class="inner_content"></div><div class="background backgroundColor backgroundAlpha shadow">&nbsp;</div><div class="dc_cleanfloat"></div></div>');A.thumbnail=new dc.ui.TileBase({width:300,height:40,columnWidth:50,rowHeight:50,itemResizeMode:0,verticalScrollPolicy:"off",horizontalScrollPolicy:"auto",isTouch:dc.mobile.isTouch,itemRenderer:dc.ui.renderer.ThumbnailItemRenderer,sourceLabel:"thumbnail",adaptiveRender:false,oncomplete:function(){A.thumbnail.ui.css("left",4);A.resizeThumbnail();A.isLoading(false);A.showThumbnail();if(A.firststart){A.galleryReady()}else{A.loadImage(A.currentdata[A.slideshowIndex])}},onitemselect:function(H,I){A.gotoItem(H.index)}});A.thumbnail_container.find(".inner_content").append('<div class="container_background" style="width: 300px; height: 40px;float:left; "></div>').append(A.thumbnail.ui);A.thumbnail_container.hide();A.slideshow.uitarget=$(dc.button(20,20,"slideshow_play"));A.slideshow_button=$('<li class="_slideshow_button"><div class="theme float backgroundColor backgroundAlpha" style="top:0;z-index:-10;height:100%">&nbsp;</div></li>');A.slideshow_button.append(A.slideshow.uitarget);A.next_button=$('<div class="navigation_button next_button"><a href="#">&nbsp;</a></div>');A.prev_button=$('<div class="navigation_button prev_button"><a href="#">&nbsp;</a></div>');A.next_button.click(function(){A.next()});A.prev_button.click(function(){A.prev()});A.slideshow_button.click(function(){if(A.basicparameters.autoSlideShowEnabled){A.slideshow.stop()}else{A.slideshow.start()}A.basicparameters.autoSlideShowEnabled=!A.basicparameters.autoSlideShowEnabled});A.category=new dc.ui.Thumbnail({vertical:true,width:100,height:100,columnWidth:200,rowHeight:100,adaptiveRender:false,gap:0,horizontalScrollPolicy:"off",isTouch:dc.mobile.isTouch,itemRenderer:dc.ui.renderer.CaptionTileListItemRenderer,onitemselect:function(H,I){A.slideshowRandom=false;A.loadAlbum(I.key);A.togglePanel("category_container_instance")}});A.category.ui.css("position","relative");A.category.ui.css("left",3);A.meta_title=$('<meta property="og:title" content=""/>');A.meta_type=$('<meta property="og:type" content="photo"/>');A.meta_url=$('<meta property="og:url" content=""/>');A.meta_image=$('<meta property="og:image" content=""/>');$("head").append(A.meta_title).append(A.meta_type).append(A.meta_url).append(A.meta_image)},layout:function(){this._super();var B=this;var F=B.parameters;if(B.logo&&B.logo.find("img").get(0).width>B.width/2){B.logo.find("img").css("width",B.width/5*2)}if(B.header){if(B.parameters.headerPosition=="top"){B.header.css({top:0,bottom:""});B.footer.css({bottom:0,top:""});$(".main_menu").css({top:0,bottom:""});B.title_container.css({top:"",bottom:0})}else{B.header.css("top","");B.header.css("bottom",0);B.footer.css({top:0,bottom:""});$(".main_menu").css({top:"",bottom:0});B.title_container.css({top:0,bottom:""})}}if(B.category_container){B.resizeCategory()}if(B.thumbnail_container){B.resizeThumbnail();if(B.isThumbnailOpen){if(dc.mobile.isMobile){if(B.parameters.thumbnailPosition=="top"){B.thumbnail_container.css({top:20,bottom:""})}else{B.thumbnail_container.css({bottom:20,top:""})}}else{var D=B.height*0.1;if(B.parameters.thumbnailPosition=="top"){B.thumbnail_container.css({top:D,bottom:""})}else{B.thumbnail_container.css({bottom:D,top:""})}}}else{}if(this.isGalleryReady){if(F.thumbnailEnabled){B.thumbnail_container.show()}else{B.thumbnail_container.hide()}}}var A=(this.height-this.next_button.height())/2;this.prev_button.css({top:A});this.next_button.css({top:A});if(F.navigationEnabled){this.next_button.show();this.prev_button.show()}else{this.next_button.hide();this.prev_button.hide()}if(B.about_container){var E=B.width*0.8;var C=B.height*0.8;if(dc.mobile.isMobile){E=B.width;C=B.height}B.about_container.css("width",E);B.about_container.css("height",C);if(B.about_container.attr("opened")=="true"){B.about_container.css("left",(B.width-B.about_container.width())/2)}B.about_container.css("top",(B.height-C)/2);B.about_container.find(".inner_content").css("height",C-60);B.menu.find("#menu_item_contact").parent().find(".backgroundColor").css({width:B.menu.find("#menu_item_contact").width()+12});B.menu.find("#menu_item_portfolio").parent().find(".backgroundColor").css({width:B.menu.find("#menu_item_portfolio").width()+12});B.menu.find("._slideshow_button").find(".backgroundColor").css({width:20})}if(B.uiloader){B.uiloader.setSize(B.width,B.height);B.uiloader.ui.css({top:0,left:0})}},stylesChange:function(){this._super();var A=this.basicparameters;var D=this.parameters;var B=this;if(A.logoVisible){B.logo.show()}else{B.logo.hide();B.header.height(50)}if(A.copyright&&A.copyright!=""){B.footer_content.empty();B.footer_content.append(A.copyright);B.footer_content.show()}else{B.footer_content.hide()}if(B.uiloader){B.uiloader.setBackground(A.backgroundColor)}B.transitionType=D.transitionType;if(D.resizeMode!=undefined){B.uiloader.resizemode=D.resizeMode}if(A.logoLink&&A.logoLink!=""){B.logo.attr("href",A.logoLink)}else{B.logo.attr("href","#")}if(B.menu){var C=B.menu.find("#menu_item_portfolio");if(C&&B.menu_data.length>0){C.empty();C.append(D.galleryMenuName)}else{C.empty()}C=B.menu.find("#menu_item_contact");if(C){C.empty();C.append(A.contactName)}}},galleryReady:function(){if(this.firststart){this.isGalleryReady=true;var A=this;A.thumbnail.setSize();A.addMouseMoveEvent();A.uiloader.ontransitioncomplete=function(){if(A.basicparameters.autoSlideShowEnabled){A.slideshow.start()}A.showTitle()};if(!A.isPreview){var B=A.getParameterByName("i");if(B){A.slideshowIndex=B}}A.gotoItem(A.slideshowIndex);if(A.parameters.headerPosition=="top"){$(".main_menu").css({top:0,bottom:""});A.header.css({top:-100,bottom:""});A.footer.css({bottom:-100,top:""});A.header.animate({top:0},"slow");A.footer.animate({bottom:0},"slow")}else{$(".main_menu").css({top:"",bottom:0});A.footer.css({top:-100,bottom:""});A.header.css({bottom:-100,top:""});A.header.animate({bottom:0},"slow");A.footer.animate({top:0},"slow")}}this._super()},startGallery:function(){var A=this;A.buildMenu();A.ui.append(A.uiloader.ui);A.ui.append(A.header);A.ui.append(A.footer);A.ui.append(A.title_container);A.ui.append(A.category_container);A.ui.append(A.thumbnail_container);A.ui.append(A.about_container);if(!A.parameters.navigationEnabled){A.next_button.hide();A.prev_button.hide()}A.ui.append(A.next_button);A.ui.append(A.prev_button);this._super()},loadAlbum:function(B){this._super(B);var A=this;A.isLoading(true);if(B&&A.categorydata[B]){if(A.categorydata[B]){A.currentdata=A.categorydata[B]}if(!A.isThumbnailOpen){A.thumbnail.setDataProvider(A.categorydata[B])}else{A.next_thumbnail_key=B;A.hideThumbnail()}}},loadImage:function(B){if(B&&B!=""){this.slideshow.stop();this.isLoading(true);this.uiloader.transitionType=this.transitionType;this.uiloader.load(B.source);var A="";if(B.title&&B.title!=""){A=B.title}if(B.description&&B.description!=""){A+='<div class="description">'+B.description+"</div>"}this.title_container.hide();this.title_container.find(".inner_content").empty();if(A&&A!=""){this.title_container.find(".inner_content").append(A)}if(!self.isPreview){window.location.hash="#&cat="+escape(this.currentkey)+"&i="+this.slideshowIndex}}},buildPanel:function(E,C){var B='<div class="panel_container" id="'+E+'" opened="false"><div class="inner_content_header textColor">'+C+'<a href="#" class="close_button" >close</a></div><div class="inner_content_wrapper"><div class="inner_content" id="'+E+'_content"><ul></ul><div class="dc_cleanfloat">&nbsp;</div></div></div><div class="theme background backgroundColor backgroundAlpha">&nbsp;</div></div>';var D=$(B);var A=this;D.find("a").bind("click",function(){if(A.basicparameters.autoSlideShowEnabled){A.slideshow.start()}A.togglePanel(E,true)});D.hide();return D},buildMenu:function(){dc.log("Lightroom.basic.buildmenu():");var C=this;C.category_container=C.buildPanel("category_container_instance",C.parameters.galleryMenuName);C.category_container.find(".inner_content").append(C.category.ui);var G=true;var A=C.getParameterByName("cat");var F=null;C.menu_data=[];for(var D in C.categorydata){if(D!="default"){C.menu_data.push({source:C.categorydata[D][0].largeSource,key:D,title:decodeURI(D)});if(G||(A!=null&&D==A)){C.currentkey=D}G=false}}if(C.menu_data.length>0){C.menu_data.sort(function(I,H){var K=I.title.toLowerCase(),J=H.title.toLowerCase();if(K<J){return -1}if(K>J){return 1}return 0});C.category.setDataProvider(C.menu_data)}C.about_container=C.buildPanel("about_container_instance",C.basicparameters.contactName);if(C.isPreview){C.about_container.find(".inner_content").append("You contact html content will show here.")}else{C.about_container.find(".inner_content").append('<iframe src="'+C.basicparameters.contactFileName+'" width="100%" height="100%" frameborder="0"></iframe>')}var E=$('<li style="height:20px"><a href="#" id="menu_item_portfolio" class="textColor">'+C.parameters.galleryMenuName+'</a><div class="theme float backgroundColor backgroundAlpha" style="top:0;z-index:-10;height:100%">&nbsp;</div></li>');C.menu.append(E);E.click(function(){C.slideshowRandom=false;C.togglePanel("about_container_instance",true);C.togglePanel("category_container_instance")});var B=$('<li style="height:20px"><a href="javascript:dc.noop();" id="menu_item_contact" class="textColor">'+C.basicparameters.contactName+'</a><div class="theme float backgroundColor backgroundAlpha" style="top:0;z-index:-10;height:100%">&nbsp;</div></li>');C.menu.append(B);B.click(function(){C.togglePanel("category_container_instance",true);C.togglePanel("about_container_instance")});C.menu.append(C.slideshow_button);if(C.menu_data.length==0){C.slideshowRandom=false;C.currentkey="default"}},resizeCategory:function(){var A=this;if(dc.mobile.isMobile){A.category_container.width(A.width);A.category_container.height(A.height)}else{A.category_container.width(320);A.category_container.height(A.height*0.7)}A.category.columnWidth=A.category_container.width()-6;A.category.columnCount=1;dc.log("setSize");A.category.setSize(320,A.category_container.height()-50);if(A.category_container.attr("opened")=="true"){A.category_container.css("left",(A.width-A.category_container.width())/2)}if(A.isIPhone){A.category_container.css("top",0)}else{A.category_container.css("top",(A.height-A.category_container.height())/2)}},resizeThumbnail:function(){var A=this;var C=A.parameters;A.thumbnail.itemResizeMode=C.thumbnailResizeMode;A.thumbnail.gap=0;A.thumbnail.columnWidth=A.thumbnail.rowHeight=C.thumbnailSize;var B=Math.round((A.width*0.8)/C.thumbnailSize)*C.thumbnailSize;if(A.currentdata){var D=Math.ceil((A.currentdata.length*C.thumbnailSize)/B);if(D*C.thumbnailSize>A.height/8){D=Math.ceil(A.height/8/C.thumbnailSize)}A.thumbnail.rowCount=D;A.thumbnail.height=D*C.thumbnailSize;if(A.currentdata.length*C.thumbnailSize<B){B=A.currentdata.length*C.thumbnailSize}}A.thumbnail.width=B;if(isNaN(A.thumbnail.width)){A.thumbnail.width=10}if(isNaN(A.thumbnail.height)){A.thumbnail.height=10}A.thumbnail.setSize();A.thumbnail_container.width(A.thumbnail.width);A.thumbnail_container.height(A.thumbnail.height);A.thumbnail_container.find(".thumbnailBackground").width(A.thumbnail.width);A.thumbnail_container.find(".thumbnailBackground").height(A.thumbnail.height);A.thumbnail_container.css({left:(A.width-A.thumbnail.width)/2})},isThumbnailOpen:false,showThumbnail:function(){var A=this;if(!A.isThumbnailOpen&&!A.thumbnailAnimation){A.thumbnailAnimation=true;if(this.parameters.thumbnailEnabled){A.thumbnail_container.show();var B;if(A.parameters.thumbnailPosition=="top"){B={top:50}}else{B={bottom:50}}A.thumbnail_container.animate(B,"fast",function(){A.handleThumbnailAnimation(true)})}}},hideThumbnail:function(){var A=this;if(A.isThumbnailOpen&&!A.thumbnailAnimation){A.thumbnailAnimation=true;A.isThumbnailOpen=false;var B;if(A.parameters.thumbnailPosition=="top"){B={top:-A.thumbnail_container.height()-10}}else{B={bottom:-A.thumbnail_container.height()-10}}A.thumbnail_container.animate(B,"fast",function(){A.handleThumbnailAnimation(false)})}},handleThumbnailAnimation:function(B){var A=this;A.thumbnailAnimation=false;if(B){A.isThumbnailOpen=true}else{A.thumbnail_container.hide();if(A.next_thumbnail_key){A.thumbnail.setDataProvider(A.categorydata[A.next_thumbnail_key])}A.next_thumbnail_key=null}},isThumbnailHide:false,fadeThumbnail:function(A){if(A&&!this.isThumbnailHide){this.thumbnail_container.fadeOut();this.next_button.fadeOut();this.prev_button.fadeOut();this.isThumbnailHide=true}else{if(this.isThumbnailHide){if(this.parameters.thumbnailEnabled){this.thumbnail_container.fadeIn()}if(this.parameters.navigationEnabled){this.next_button.fadeIn();this.prev_button.fadeIn()}this.isThumbnailHide=false}}},isPanelOpen:false,openedPanel:{},togglePanel:function(E,C){var A=this;var B=$("#"+E);A.openedPanel[E]=true;if(B.attr("opened")=="true"||C){A.openedPanel[E]=false;A.isPanelOpen=false;A.thumbnail.addEvents();A.showThumbnail();if(B.attr("opened")=="true"){B.animate({top:-B.height()},"fast",function(){$(this).attr("opened","false")}).fadeOut("fast")}if(A.basicparameters.slideShowEnabled&&A.basicparameters.autoSlideShowEnabled){A.slideshow.start()}}else{if(B.attr("opened")=="false"){A.resizeCategory();A.slideshow.stop();A.isPanelOpen=true;A.thumbnail.removeEvents();A.hideThumbnail();B.css("left",(A.width-A.category_container.width())/2);var D=0;B.css("left",(A.width-B.width())/2);B.css("top",-B.height());B.show();if(!A.isIPhone){D=(A.height-B.height())/2}B.animate({top:D},"fast",function(){$(this).attr("opened","true")})}}},showTitle:function(B){var A=this;if(A.parameters.titleEnabled&&this.title_container.find(".inner_content").html()!=""){A.title_container.css("left",-A.title_container.width()-100);if(A.parameters.headerPosition=="top"){A.title_container.css({top:"",bottom:0})}else{A.title_container.css({top:0,bottom:""})}A.title_container.show();A.title_container.animate({left:0})}},gotoItem:function(A){if(A>=0&&A<this.currentdata.length){this.slideshowIndex=A;this.thumbnail.setSelectedItemIndex(this.slideshowIndex);this.loadImage(this.currentdata[this.slideshowIndex])}}});(function(A){A(document).ready(function(){dc.utils.o="x";gallery=new dc.lightroom.HTML5PhotoPortfolio({id:"my_gallery",mediaPath:"media/",settings:"media/style.xml",thumbnailWidth:35,thumbnailHeight:30});A("body").append(gallery.ui);gallery.load("media/index.xml")})})(jQuery);
