/* Copyright (c) 2011 Synology Inc. All rights reserved. */

MODULE_PHOTO_SLIDE=Ext.extend(SYNOBLOG_MODULE,{thumb_list:null,slide_img:null,slide_link:null,preLoadImg:null,current_index:0,current_interval:3000,getFormItems:function(){var b=new Ext.XTemplate('<tpl for="."><div class="x-combo-list-item">{album_name_for_display}</div></tpl>');var a=[{synotype:"combo",hideLabel:false,fieldLabel:photo_str_photoalbum,name:"album_name",displayField:"album_name",valueField:"album_name",width:250,resizable:true,tpl:b,store:this.ds=new Ext.data.Store({proxy:new Ext.data.HttpProxy({url:SYNOPHOTO_UTILS.url_prefix+"/photo/blog/modules/photo_slide.php",method:"POST"}),baseParams:{action:"get_all_albums"},reader:new Ext.data.JsonReader({root:"all_albums"},[{name:"album_name"},{name:"album_name_for_display"}]),fields:["album_name","album_name_for_display"]})},{synotype:"combo",hideLabel:false,fieldLabel:photo_str_photo_slide_interval,name:"interval",displayField:"value",valueField:"value",width:250,resizable:true,store:new Ext.data.SimpleStore({fields:["value"],data:[[3],[5],[10],[15],[20]]})}];this.ds.load();return a},init_module:function(){this.updateModuleContent();this.slide_img=Ext.get("photo_slide_img");this.slide_link=Ext.get("photo_slide_a")},updateModuleContent:function(){Ext.Ajax.request({url:SYNOPHOTO_UTILS.url_prefix+"/photo/blog/modules/photo_slide.php",params:{action:"get_setting"},method:"POST",scope:this,success:function(a,b){var c=Ext.util.JSON.decode(a.responseText).data;if(c.album_name!=""&&c.album_name!=null){this.current_interval=c.interval*1000;this.getAlbumPhotoData(c.album_name)}}})},onStartSlideShow:function(){if(this.thumb_list==null||0===this.thumb_list.length){return}if(!this.preLoadImg){this.preLoadImg=this.slide_link.createChild({tag:"img"},this.slide_img.dom)}this.preLoadImg.setVisibilityMode(Ext.Element.DISPLAY);this.preLoadImg.hide();this.preLoadImg.dom.width=0;this.preLoadImg.dom.height=0;this.preLoadImg.dom.onload=this.onPreLoadImgLoad.createDelegate(this);this.preLoadImg.dom.src=this.thumb_list[this.current_index].bigCover.src},onPreLoadImgLoad:function(){this.slide_img.dom.src=this.thumb_list[this.current_index].bigCover.src;this.setImgSize(this.thumb_list[this.current_index].bigCover.width,this.thumb_list[this.current_index].bigCover.height);this.slide_link.dom.title=this.thumb_list[this.current_index].title;this.slide_link.dom.href=SYNOPHOTO_UTILS.url_prefix+"/photo/"+this.thumb_list[this.current_index].url;this.slide_link.dom.target="_blank";this.current_index=this.current_index>=this.thumb_list.length-1?0:this.current_index+1;this.onStartSlideShow.defer(this.current_interval,this)},setImgSize:function(b,c){var a=120;if(b<a&&c<a){this.slide_img.setStyle("height",c+"px");this.slide_img.setStyle("width",b+"px");this.slide_img.setLeft((a-b)/2);this.slide_img.setTop((a-c)/2)}else{if(b>c){this.slide_img.setStyle("height",a+"px");this.slide_img.setStyle("width","");this.slide_img.setLeft((a-b/c*a)/2);this.slide_img.setTop(0)}else{this.slide_img.setStyle("width",a+"px");this.slide_img.setStyle("height","");this.slide_img.setLeft(0);this.slide_img.setTop((a-c/b*a)/2)}}},getAlbumPhotoData:function(a){Ext.Ajax.request({url:SYNOPHOTO_UTILS.url_prefix+"/photo/ajax_handler.php",params:{action:"get_album_photo_list",album_name:a},method:"POST",scope:this,success:function(b,c){this.thumb_list=Ext.util.JSON.decode(b.responseText).photo_list;this.onStartSlideShow()}})}});SYNOBLOG.instance().registerModule("photo_slide",{title:photo_str_photo_slide_title,width:500,height:150},MODULE_PHOTO_SLIDE);
