import mx.events.EventDispatcher;
import mx.core.UIComponent;
import mx.transitions.Tween
import mx.transitions.easing.*;
import it.sephiroth.image
import it.sephiroth.utils
import flash.filters.*
import flash.geom.*
import flash.display.*
import flash.net.*;
dynamic class it.sephiroth.imageSlider extends UIComponent
{
public var addEventListener :Function
public var removeEventListener:Function
public var dispatchEvent :Function
var boundingBox:MovieClip
var __width:Number
var __height:Number
var _dataProvider:Object
var thumbs_viewer: MovieClip
var showPicInfo: MovieClip
var mainImage: MovieClip
var upperMainBar: MovieClip
var clip_info: MovieClip
var e_card: MovieClip
var download_alert:MovieClip
var miniLoader: MovieClip
var selectedIndex: Number
var oldSelectedIndex:Number
var panoramic: Number
var loader_listener:Object
var ls_comments: Object
var ls_download: Object
var loader:MovieClipLoader
var thumbURL:String
var image_link:TextField
var $file:FileReference;
static var symbolName:String = "imageSlider";
static var symbolOwner = imageSlider;
var className:String = "it.sephiroth.imageSlider";
/**
* constructor
*/
function imageSlider(){
//EventDispatcher.initialize(this);
selectedIndex = 0;
oldSelectedIndex = 0;
$file = new FileReference();
initDownloadListener();
loader = new MovieClipLoader();
loader_listener = new Object();
loader_listener.target = this
loader_listener.onLoadInit = function(target){
this.target.thumbs_viewer.disabled_mask._visible = false
var bg = target._parent._parent._parent.bg
target._parent._alpha = 0
if(this.target.panoramic == 1){
var optimal_size = Stage.width - 100
if(optimal_size > 1024){
optimal_size = 1024
}
if(this.target.mainImage.mainImageContainer.vcr == undefined){
var mc = this.target.mainImage.mainImageContainer.attachMovie("vcr", "vcr", this.target.mainImage.mainImageContainer.getNextHighestDepth(), {_width:optimal_size, _height:250})
this.target.mainImage.mainImageContainer.attachMovie("boundingBox", "boundingBox", this.target.mainImage.mainImageContainer.getNextHighestDepth(), {_width:optimal_size, _height:250, _x:10, _y:10})
mc.setMask(this.target.mainImage.mainImageContainer.boundingBox);
mc._x = 10
mc._y = 10
} else {
var mc = this.target.mainImage.mainImageContainer.vcr
}
mc.attachImage(target)
mc.speed = 2
mc.autospin = true
mc.zoom = 100
this.target._visible = true
new Tween(bg, "_width", Regular.easeOut, bg._width, mc.getSize()[0]+40, .5, true)
new Tween(bg, "_height", Regular.easeOut, bg._height, mc.getSize()[1]+40, .5, true)
if(target._parent._parent._parent._x != (this.target.__width/2) - ((mc.getSize()[0]+40)/2)){
new Tween(target._parent._parent._parent, "_x", Regular.easeOut, target._parent._parent._parent._x, (this.target.__width/2) - ((mc.getSize()[0]+40)/2), .5, true)
}
this.target.miniLoader._visible = false
} else {
/* purge mainImageContainer **/
for(var a in target._parent._parent){
if(target._parent._parent[a] != target._parent){
target._parent._parent[a].removeMovieClip();
}
}
//target._parent._parent.getInstanceAtDepth(target._parent.getDepth()-1).unloadMovie();
var tr = new Tween(bg, "_width", Regular.easeOut, bg._width, target._width+20, .5, true)
new Tween(bg, "_height", Regular.easeOut, bg._height, target._height+20, .5, true)
new Tween(target._parent._parent._parent, "_x", Regular.easeOut, target._parent._parent._parent._x, target._parent._parent._parent._parent.__width/2 - ((target._width+20)/2), .5, true)
tr.target = this.target
tr.mc = target
tr.onMotionFinished = function(evt:Object){
this.target.miniLoader._visible = false
if(random(2) == 1){
// added effect
this.mc._parent._alpha = 100
var img1 = new BitmapData(this.mc._width, this.mc._height, false);
var img2 = new BitmapData(this.mc._width, this.mc._height, false);
img1.draw(this.mc);
this.mc.attachBitmap(img1, 0)
this.mc.attachBitmap(img2, 1)
this.mc._parent.percent = 0
this.mc._parent.onEnterFrame = function(){
img2.threshold(img1, new Rectangle(0, 0, img1.width, img1.height), new Point(0, 0), ">=", (this.percent/100)*0xFFFFFF, 0xFFFFFF, 0xffffff, true);
this.percent += 2
if(this.percent >= 100){
img1.dispose();
img2.dispose();
//this.holder.unloadMovie();
delete this.onEnterFrame
}
}
} else {
// original
target._parent._alpha = 0
if(target._parent._alpha == 0){
new Tween(target._parent, "_alpha", Regular.easeOut, 0, 100, .8, true)
}
}
delete this.onMotionFinished
}
}
// create the link textfield
var image = this.target._dataProvider.result.getItemAt( this.target.selectedIndex )
this.target.displayImageLink( image );
}
loader_listener.onLoadProgress = function(target, loaded, total){
var perc:Number = Math.round(loaded/total*100)
if(perc < 95){
this.target.miniLoader.value = "
loading... " + perc + "% (x)
"
} else {
this.target.miniLoader.value = "loading... " + perc + "%
"
}
}
loader_listener.onLoadError = function(){
this.target.thumbs_viewer.disabled_mask._visible = false
this.target.miniLoader._visible = false
this.target._parent.ErrorMessage("Error loading image...", 2.5);
}
ls_comments = new Object();
ls_comments.target = this;
ls_comments.image_comments = function(evt:Object){
if(this.target.findWindowByName("clip_info") != undefined){
var window = this.target.findWindowByName("clip_info");
if(window.ID == evt.id){
window.comment_text.invalidate();
var text = "";
var c_date, c_user, c_text, c_item;
for(var a = 0; a < evt.result.getLength(); a++){
c_item = evt.result.getItemAt(a);
c_date = utils.formatMySQLDate(c_item.commentDate);
c_user = c_item.userName;
c_text = c_item.commentText;
text += "
" + c_user + " ( " + c_date + " )
" + c_text + "
";
}
text += "";
window.comment_text.text = text;
}
}
}
ls_comments.image_rated = function(evt:Object){
var id = evt.id
var image = this.target._dataProvider.result.getItemAt( this.target.selectedIndex );
if(image.id == id){
image.votes = evt.votes
image.rating = evt.rating
this.target.updateUpperMainBar( image );
}
}
ls_comments.image_commented = function(evt:Object){
/* reload the image comments */
var image = this.target._dataProvider.result.getItemAt( this.target.selectedIndex );
image.comments += 1
this.target.hideCommentPanel();
this.target._parent.getImageComments( evt.id );
this.target.updateUpperMainBar( image );
}
ls_comments.ecard_sent = function(evt:Object){
trace('ls_comments.ecard_sent')
this.target.hideECard();
}
this.dispatchEvent({type:'loaded', target:this})
this._parent.addEventListener("image_comments", ls_comments);
this._parent.addEventListener("image_rated", ls_comments);
this._parent.addEventListener("image_commented", ls_comments);
this._parent.addEventListener("ecard_sent", ls_comments);
boundingBox._visible = true;
}
function init():Void{
EventDispatcher.initialize(this);
boundingBox.onPress = function(){}
boundingBox.useHandCursor = false;
}
private function initDownloadListener():Void{
ls_download = new Object();
ls_download.target = this;
ls_download.onSelect = function(file:FileReference):Void {
this.target.download_alert = this.target.createClassObject(it.sephiroth.mloaderWindow, "download_alert", 14997)
this.target.download_alert._x = Math.round((Stage.width/2) - (this.target.download_alert.getSize()[0]/2))
this.target.download_alert._y = Math.round((Stage.height/2) - (this.target.download_alert.getSize()[1]/2))
this.target.download_alert.label = "downloading image \"" + file.name + "\"";
this.target.download_alert.setStyle("borderColor", 0x009900);
this.target.download_alert.progressBar = true
this.target.download_alert.open(true, false);
this.target.download_alert.addEventListener("close", this.target._parent.ls_thumbloader)
}
ls_download.onCancel = function(file:FileReference):Void {
this.target.download_alert.close();
}
ls_download.onOpen = function(file:FileReference):Void {
trace("onOpen: " + file.name);
}
ls_download.onProgress = function(file:FileReference, bytesLoaded:Number, bytesTotal:Number):Void {
this.target.download_alert.value = Math.round((bytesLoaded/bytesTotal)*100)
}
ls_download.onComplete = function(file:FileReference):Void {
this.target.download_alert.label = "Download Complete!!";
this.target.download_alert.setStyle("borderColor", 0xFFFF00)
this.target.download_alert.close(2);
}
ls_download.onIOError = function(file:FileReference):Void {
this.target.download_alert.label = "There was an Error downloading image..."
this.target.download_alert.setStyle("borderColor", 0xFF0000);
this.target.download_alert.close(2)
}
$file.addListener( ls_download );
}
function createChildren(){
this.attachMovie("thumbs_viewer", "thumbs_viewer", 1, {_y:40});
this.attachMovie("upperMainBar", "upperMainBar", 10, {_y:-40, _x:0});
upperMainBar.backToLibraryBtn.onRelease = function(){
this._parent._parent.hide();
}
thumbs_viewer.prev.onRelease = function(){
this._parent._parent.select( this._parent._parent.selectedIndex-1 );
}
thumbs_viewer.next.onRelease = function(){
this._parent._parent.select( this._parent._parent.selectedIndex+1 );
}
thumbs_viewer.selected_image.onPress = function(){}
thumbs_viewer.selected_image.useHandCursor = false
thumbs_viewer.disabled_mask.onPress = function(){}
thumbs_viewer.disabled_mask.useHandCursor = false
thumbs_viewer.disabled_mask._visible = false
mainImage = this.attachMovie("mainImage", "mainImage", 3);
miniLoader = this.attachMovie("miniLoader", "miniLoader", 4);
miniLoader._visible = false
miniLoader.cancel_loading = function(){
var old_index = this._parent.oldSelectedIndex;
this._visible = false;
this._parent.loader.unloadClip( this._parent.loader['target_clip'] );
this._parent.loader.unloadClip( this._parent.loader['target_clip']._parent );
this._parent.loader.removeListener( this._parent.loader_listener );
this._parent.thumbs_viewer.disabled_mask._visible = false;
this._parent.setSelection( old_index, true, false );
this._parent.updateUpperMainBar( this._parent._dataProvider.result.getItemAt( old_index ));
if(this._parent.mainImage.bg._height > 1){
this._parent.displayImageLink( this._parent._dataProvider.result.getItemAt( old_index ));
}
}
mainImage.bg._width = 0
mainImage.bg._height = 0
upperMainBar.upperMainBarBg._width = Stage.width
upperMainBar.upperMainBarBg._height = 36
upperMainBar.showCommentsBtn.onRelease = function(){
this._parent._parent.displayPicInfo(true, true);
}
upperMainBar.downloadBtn.onRelease = function(){
this._parent._parent.downloadCurrentImage();
}
upperMainBar.ecardBtn.onRelease = function(){
this._parent._parent.displayECard();
}
new Tween(upperMainBar, "_y", Regular.easeOut, -40, 0, 1, true);
/** create the image link textfield **/
image_link = this.createTextField("image_link", 11, 0, 0, 100, 20);
var tf:TextFormat = new TextFormat();
tf.font = "font1";
tf.size = 8;
tf.color = 0x006699;
image_link.autoSize = "left";
image_link.embedFonts = true;
image_link.html = true;
image_link.setNewTextFormat(tf);
image_link.htmlText = "";
}
public function hide(){
this.dispatchEvent({type:"hide", target:this});
var index = this.selectedIndex
var tr = new Tween(this, "_alpha", Regular.easeOut, 100, 0, .5, true);
new Tween(upperMainBar, "_y", Regular.easeOut, 0, -40, .5, true);
tr.target = this;
tr.onMotionFinished = function(){
delete this.target._parent.imageSlider
this.target.removeMovieClip();
}
}
function select(selection:Number){
oldSelectedIndex = this.selectedIndex;
setSelection(selection, true)
}
/**
* Download the current selected image
*/
public function downloadCurrentImage():Void{
var image = _dataProvider.result.getItemAt( selectedIndex );
if(!$file.download( thumbURL + "?id=" + image.id + "&mode=large", image.name)){
this._parent.ErrorMessage("Failed to open save dialog", 2.5);
}
}
/**
* display all the informations about image
*/
public function displayPicInfo(animate:Boolean, updateComments:Boolean):Void{
hideECard();
var index = selectedIndex;
var image = _dataProvider.result.getItemAt( index );
trace("clip_info: " + findWindowByName("clip_info"))
if( findWindowByName("clip_info") == undefined ){
clip_info = this.attachMovie("infoClip", "clip_info", 9);
clip_info._x = Stage.width/2 - clip_info._width/2
clip_info._y = -400
}
ttra('clip_info: ' + clip_info);
clip_info.ID = image.id
clip_info.title.text = image.name
clip_info.description.text = image.description
clip_info.rating_mc.rating = image.rating
clip_info.info.text = "views: " + image.views + newline + Math.round((image.image_weight/1024)*10)/10 + " Kb, size: " + image.image_size + "px"
if(animate == true){
var tr = new Tween( clip_info, "_y", Regular.easeOut, -400, 20, .7, true);
tr.target = this
tr.onMotionFinished = function(){
this.target.loadThumbPreview()
}
}
if( updateComments == true ){
/** retrieve the image comments from the server **/
this._parent.getImageComments( image.id );
}
}
/**
* Hide the info clip
*/
public function hidePicInfo():Void{
hideCommentPanel();
var tr = new Tween( clip_info, "_y", Regular.easeOut, clip_info._y, -400, .5, true );
tr.target = clip_info
tr.onMotionFinished = function(){
delete this.target._parent.clip_info
this.target.removeMovieClip();
}
}
/**
* Open the send e-card form
*/
public function displayECard(){
hidePicInfo();
var index:Number = selectedIndex;
var image:Object = _dataProvider.result.getItemAt(index);
if( findWindowByName("e_card") == undefined ){
e_card = this.attachMovie("ecardClip", "e_card", 8);
e_card._x = Stage.width/2 - e_card._width/2
e_card._y = -400
}
e_card.ID = image.id
e_card.FID = this._parent.getFolderId()
var tr = new Tween( e_card, "_y", Regular.easeOut, -400, 20, 1, true);
tr.target = this
tr.onMotionFinished = function(){
this.target.e_card.from_name.text = this.target._parent.$user.username
this.target.e_card.from_email.text = this.target._parent.$user.email
this.target.loadThumbPreview()
}
}
/**
* Hide the e-card clip
*/
public function hideECard():Void{
var tr = new Tween( e_card, "_y", Regular.easeOut, e_card._y, -400, .5, true );
tr.target = e_card
tr.onMotionFinished = function(){
delete this.target._parent.e_card
this.target.removeMovieClip();
}
}
private function sendEcard(mc:MovieClip){
trace('send ecard');
var id:Number = mc.ID
var fid:Number = mc.FID
var from_name:String = mc.from_name.text
var from_email:String = mc.from_email.text
var to_name:String = mc.to_name.text
var to_email:String = mc.to_email.text
var message:String = mc.message_text.text
var w:Number = it.sephiroth.iGallery.t_width
var h:Number = it.sephiroth.iGallery.t_height
var linkURL:String = this._parent.baseURL
if(utils.string.strip(to_name) == ""){
this._parent.ErrorMessage("Plase specify (to) name", 2)
return
}
if(!utils.string.isEmail(to_email)){
this._parent.ErrorMessage("Plase provide a valid (to) email", 2)
return
}
if(utils.string.strip(from_name) == ""){
this._parent.ErrorMessage("Plase specify (from) name", 2)
return
}
if(!utils.string.isEmail(from_email)){
this._parent.ErrorMessage("Plase provide a valid (from) email", 2)
return
}
if(utils.string.strip(message) == ""){
this._parent.ErrorMessage("Plase insert a message for the e-card", 2)
return
}
this._parent.Send_ECard(id, fid, from_name, from_email, to_name, to_email, message, w, h, linkURL);
}
/**
* display the image direct link below image movieclip
*/
public function displayImageLink(image:Object){
var image_url:String = this._parent.baseURL + "?fid=" + this._parent.getFolderId() + "&id=" + image.id
this.image_link.htmlText = "" + image_url + ""
this.image_link._y = Math.round(Stage.height - 30)
this.image_link._x = Math.round((Stage.width/2) - (this.image_link.textWidth/2))
}
private function loadThumbPreview(){
var window = findWindowByName("clip_info");
if(window == undefined){
window = findWindowByName("e_card");
}
var id = window.ID
window.preview.dummy.unloadMovie();
window.preview.createEmptyMovieClip("dummy", 1)
window.preview.createEmptyMovieClip("holder", 2)
window.preview.dummy.createEmptyMovieClip("holder", 1)
window.preview.dummy._visible = false;
var temp_listener:Object = new Object();
temp_listener.onLoadInit = function(target:MovieClip){
var mainImage = new BitmapData(target._width, target._height, false)
mainImage.draw(target, target.transform.matrix, target.transform.colorTransform, "normal", new Rectangle(target._x, target._y, target._width, target._height))
var tempImage = new BitmapData(target._width, target._height, false, 0xEEEEEE)
window.preview.holder.attachBitmap(mainImage, 10)
window.preview.holder.attachBitmap(tempImage, 11)
window.preview.filters = [new GlowFilter(0x006699, .8, 4, 4, 1, 3), new DropShadowFilter(2, 45, 0x000000, 60, 4, 4, .6, 3)]
target._parent.percent = 100
target._parent.onEnterFrame = function(){
var xpercent:Number = 100-this.percent
tempImage.pixelDissolve(mainImage, new Rectangle(0, 0, 80, 60), new Point(0, 0), 1, 80*60*xpercent/100);
this.percent -= 3
if(this.percent < -3){
delete this.onEnterFrame;
}
}
}
var mcl:MovieClipLoader = new MovieClipLoader();
mcl.addListener( temp_listener );
if(this.panoramic == 1){
mcl.loadClip(thumbURL + "?id=" + id + "&mode=thumb&width=" + window.preview._width + "&height=" + window.preview._height + "&panoramic=1", window.preview.holder);
} else {
mcl.loadClip(thumbURL + "?id=" + id + "&mode=thumb&width=" + window.preview._width + "&height=" + window.preview._height, window.preview.holder);
}
}
function setSize(w:Number, h:Number){
super.setSize(w, h);
thumbs_viewer._x = __width/2 - (260/2)
if(this.panoramic == 1){
mainImage._x = (__width/2) - ((mainImage.mainImageContainer.vcr.getSize()[0]+40)/2)
mainImage._y = thumbs_viewer._y + thumbs_viewer._height + 10
miniLoader._x = __width/2 - miniLoader._width/2
miniLoader._y = mainImage._y + (((mainImage.mainImageContainer.vcr.getSize()[1]+40)/2)) - miniLoader._height/2
} else {
mainImage._x = (__width/2) - (mainImage._width/2)
mainImage._y = thumbs_viewer._y + thumbs_viewer._height + 10
miniLoader._x = __width/2 - miniLoader._width/2
miniLoader._y = mainImage._y + (mainImage._height/2) - miniLoader._height/2
}
if(findWindowByName("clip_info") != undefined){
var window = findWindowByName("clip_info");
window._x = Stage.width/2 - window._width/2
}
boundingBox._width = w;
boundingBox._height = h;
upperMainBar.upperMainBarBg._width = w
image_link._y = Math.round(Stage.height - 30)
image_link._x = Math.round((Stage.width/2) - (image_link.textWidth/2))
}
function set dataProvider(dp:Object):Void{
_dataProvider = dp;
initNavigation();
}
private function initNavigation(){
var path:String
var thumb:MovieClip
for(var a in thumbs_viewer.thumbNavigation){
thumbs_viewer.thumbNavigation.removeMovieClip();
thumbs_viewer.thumbNavigation._x = 50
}
for(var a = 0; a < _dataProvider.result.getLength(); a++){
path = thumbURL + "?id=" + _dataProvider.result.getItemAt(a).id + "&mode=thumb&width=30&height=30"
if(this.panoramic == 1){
path += "&panoramic=1"
}
thumb = thumbs_viewer.thumbNavigation.attachMovie("thumbContainer", "tc_" + a, a+1)
thumb._x = (a*32)
thumb.createEmptyMovieClip("holder", 1)
thumb.path = path;
thumb.index = a;
thumb.onRelease = function(){
this._parent._parent._parent.select(this.index);
}
}
}
public function setSelection(n:Number, animate:Boolean, broadcastEvent:Boolean){
if(n >= 0 && n < _dataProvider.result.getLength()){
if(animate){
new Tween(thumbs_viewer.thumbNavigation, "_x", Regular.easeInOut, thumbs_viewer.thumbNavigation._x, 114-(n*32), .3, true)
} else {
thumbs_viewer.thumbNavigation._x = 114-(n*32)
}
selectedIndex = n
}
if(n <= 0){
thumbs_viewer.prev.enabled = false
} else {
thumbs_viewer.prev.enabled = true
}
if(n >= _dataProvider.result.getLength() - 1){
thumbs_viewer.next.enabled = false
} else {
thumbs_viewer.next.enabled = true
}
/** display thumbs images **/
for(var a = selectedIndex - 2; a < selectedIndex + 3; a++){
if(thumbs_viewer.thumbNavigation["tc_" + a].holder._url == thumbs_viewer.thumbNavigation["tc_" + a]._url){
thumbs_viewer.thumbNavigation["tc_" + a].holder.loadMovie(thumbs_viewer.thumbNavigation["tc_" + a].path)
}
}
/** hide info clip */
if(findWindowByName("clip_info") != undefined){
hidePicInfo();
}
if(broadcastEvent != false){
this.dispatchEvent({type:"change", target:this})
}
}
public function getImageAt(n:Number){
return _dataProvider.result.getItemAt(n);
}
public function show(n:Number){
image_link.htmlText = "";
var image = _dataProvider.result.getItemAt(n)
if(this.panoramic == 1){
if(mainImage.mainImageContainer.mc_holder != undefined){
var mc = mainImage.mainImageContainer.mc_holder
} else {
var mc = mainImage.mainImageContainer.createEmptyMovieClip("mc_holder",mainImage.mainImageContainer.getNextHighestDepth())
mc.createEmptyMovieClip("holder", 1)
}
} else {
var mc = mainImage.mainImageContainer.createEmptyMovieClip("mc_" + mainImage.mainImageContainer.getNextHighestDepth(),mainImage.mainImageContainer.getNextHighestDepth())
mc.createEmptyMovieClip("holder", 1)
}
loader.addListener( loader_listener )
var path:String = thumbURL + "?id=" + image.id + "&mode=middle&width=" + (Stage.width-80) + "&height=" + (Stage.height-150) + "&save=0&force=1"
//trace(path)
if(this.panoramic == 1){
path = thumbURL + "?id=" + image.id + "&mode=large&panoramic=1"
trace(path)
if(this._url.indexOf("file:") == 0){
//
path = "C:\\Documents and Settings\\acrugnola\\Desktop\\Flash 8\\vcr2\\img\\" + ['amsterdam.jpg','ibiza.jpg','greece.jpg','canyon.jpg','vralonis_b1_98.jpg','zoomspag_b1_10.jpg'][selectedIndex]
//
}
}
loader['target_clip'] = mc.holder;
loader.loadClip(path, mc.holder);
miniLoader._visible = true
miniLoader._y = mainImage._y + (mainImage._height/2) - miniLoader._height/2
if(mainImage._width < 2){
miniLoader._y = (Stage.height/2) - miniLoader._height/2
}
miniLoader.value = "loading... (x)
"
thumbs_viewer.disabled_mask._visible = true;
updateUpperMainBar( image )
}
private function updateUpperMainBar(image:Object){
upperMainBar.comment_txt.autoSize = "left"
upperMainBar.votes_txt.autoSize = "left"
upperMainBar.comment_txt.text = "Comments: " + image.comments
upperMainBar.votes_txt.text = "Total votes: " + image.votes
upperMainBar.showCommentsBtn._x = upperMainBar.sp_1._x + 1
upperMainBar.showCommentsBtn._width = upperMainBar.comment_txt._width + 4
upperMainBar.showCommentsBtn._x = upperMainBar.comment_txt._x
upperMainBar.sp_2._x = upperMainBar.comment_txt._x + upperMainBar.comment_txt._width + 5
upperMainBar.rating_mc._x = upperMainBar.sp_2._x + 9
upperMainBar.rating_mc.rating = image.rating
upperMainBar.rating_mc.applyRating(image.rating);
upperMainBar.votes_txt._x = upperMainBar.sp_2._x + 9
upperMainBar.sp_3._x = upperMainBar.rating_mc._x + upperMainBar.rating_mc._width + 9
// download button
upperMainBar.download_txt._x = upperMainBar.sp_3._x + 5
upperMainBar.downloadBtn._x = upperMainBar.sp_3._x + 1
upperMainBar.sp_4._x = upperMainBar.download_txt._x + upperMainBar.download_txt._width + 5
upperMainBar.downloadBtn._width = upperMainBar.sp_4._x - upperMainBar.sp_3._x - 2
// ecard button
upperMainBar.ecard_icon._x = upperMainBar.sp_4._x + 5
upperMainBar.ecard_txt._x = upperMainBar.ecard_icon._x + upperMainBar.ecard_icon._width + 5
upperMainBar.ecardBtn._x = upperMainBar.sp_4._x + 2
upperMainBar.sp_5._x = upperMainBar.ecard_txt._x + upperMainBar.ecard_txt._width + 5
upperMainBar.ecardBtn._width = upperMainBar.sp_5._x - upperMainBar.sp_4._x - 2
}
/**
* find a movieclip in the gallery
*/
public function findWindowByName(n:String){
return this[n];
}
/**
* Vote the selected image (1-5)
*/
public function RateImage(n:Number):Void{
var index = selectedIndex;
var image = _dataProvider.result.getItemAt( index );
this._parent.RateImage(image.id, n);
}
/**
* open the bottom comment panel
*/
public function openCommentPanel():Void{
var window = this.findWindowByName("clip_info")
var tr = new Tween(window.comment_panel, "_y", Regular.easeOut, window.comment_panel._y, 261, .5, true)
tr.target = window.comment_panel
tr.parent = this
tr.onMotionFinished = function(){
this.target.name_txt.text = this.parent._parent.$user.username
Selection.setFocus(this.target.name_txt);
}
}
/**
* hide the comment panel
*/
public function hideCommentPanel():Void{
var window = this.findWindowByName("clip_info")
window.comment_panel.name_txt.text = ""
window.comment_panel.message_txt.text = ""
var tr = new Tween(window.comment_panel, "_y", Regular.easeOut, window.comment_panel._y, 124, .5, true)
}
/**
* send a comment to the server for the specified image
*/
public function sendComment(name:String, message:String, id:Number):Void{
if(name == "" or message == ""){
this._parent.ErrorMessage("Please fill all input fields before!", 2.5);
} else {
this._parent.SendComment(name, message, id);
}
}
}