//
// $Id: BargeWalkImage.js,v 1.1.1.1 2010/02/26 08:30:04 steve Exp $
//
var BargeWalkImage = function() {

    this.id         = ''
    this.imageDir   = ''
    this.targetDir  = ''
    this.loadFun    = ''
    this.imageSizes = new Array()

    this.html = new Html()
    this.url  = new Url()

    this.init = function() {
    
        var self = this

        self.type      = self.url.clickedUrlArg('Type')
        self.imageDir  = self.url.clickedUrlArg('ImageDir')
        self.targetDir = self.url.clickedUrlArg('TargetDir')
        self.id        = self.url.clickedUrlArg('Id')
        self.noSize    = self.url.clickedUrlArg('NoSize')

        var url = 'Lib/action.php?Action=getIFrameUploadForm'
                + '&ReturnFormat=Text&Type=' + self.type
                + '&ImageDir=' + self.imageDir
                + '&TargetDir=' + self.targetDir
                + '&Id=' + self.id
                + '&NoSize=' + self.noSize

        $('#uploadDiv iframe').attr('src', url)
        $('#addImageClose').click( function() { tb_remove() })
    }
    
    this.initExisting = function() {
    
        var self = this
        
        self.id        = self.url.clickedUrlArg('Id')
        self.type      = self.url.clickedUrlArg('Type')
        self.imageDir  = self.url.clickedUrlArg('ImageDir')
        self.targetDir = self.url.clickedUrlArg('TargetDir')
        self.loadFun   = self.url.clickedUrlArg('LoadFun')

        $.ajax({
                  type:     'POST',
                  url:      AJAXURL,
                  data:     'Action=' + self.loadFun + '&Id=' + self.id,
                  dataType: 'json',
                  timeout:  40000,
            error:
                function() {
                    return false;
                },
            success:
                function(data) {
                    if (data.Error) {
                        alert(data.Message)
                    } else {
                        var len = data.Images.length
                        var str = '<table>'
                                + '<tr>'
                        var n = 0
                        for (var i = 0; i < len; i++) {
                            if (n > 3) {
                                n = 0
                                str = str
                                    + '</tr>'
                                    + '<tr>'
                            }
                            var image = data.Images[i]
                            if (! image.imagesize) {
                                image.imagesize = 'Default'
                            }
                            self.imageSizes[image.imagesize] = 1
                            str = str
                                + '<td align="center">'
                                + '  <div class="existingImageDiv" id="image_' + image.id + '">'
                                + '    <table>'
                                + '      <tr>'
                                + '        <td valign="middle" align="center">'
                                + '          <img src="images/furniture/delete.png" id="deleteImage_' + image.id + '" class="deleteImage"><br>'
                            if (image.defaultimage == 1) {
                                str = str
                                    + '          <input type="checkbox" checked="checked" class="defaultImage defaultImage_' + image.imagesize + '" id="defaultImage_' + image.imagesize + '_' + image.id + '">'
                            } else {
                                str = str
                                    + '          <input type="checkbox" class="defaultImage defaultImage_' + image.imagesize + '" id="defaultImage_' + image.imagesize + '_' + image.id + '">'
                            }
                            str = str
                                + '        </td>'
                                + '        <td align="center">'
                                + '          <div class="existingImage">'
                                + '            <img class="existingImageImg" src="' + self.imageDir + '/' + image.image + '" height="75"><br>'
                                + '            ' + image.image + ' (' + image.imagesize + ')'
                                + '        </td>'
                                + '      </tr>'
                                + '    </table>'
                                + '  </div>'
                                + '</td>'
                            n++
                        }
                        str = str
                            + '</tr>'
                            + '</table>'
                            
                        $('#existingImages').html(str)
                        
                        self.initExistingImages()
                        
                        $('img.existingImageImg').click( function() { self.editImage($(this)) })
                        $('#existingImages').fadeIn()
                    }
                }
        })

        $('#editImageClose').click( function() { self.checkAndClose() })
    }
    
    this.initExistingImages = function() {
    
        var self = this
        
        $('img.deleteImage').click( function() { self.deleteExistingImage($(this)) })
        $('input.defaultImage').click( function() { self.changeExistingImageDefault($(this)) })
    }
    
    this.deleteExistingImage = function(elem) {

        var self = this

        var id = $(elem).attr('id').split('_')
        id     = id[1]
        
        $('#image_' + id).addClass('invalid')
        if (! confirm('Delete this image?')) {
            $('#image_' + id).removeClass('invalid')
            return
        }
        $.ajax({
                  type:     'POST',
                  url:      CMSURL,
                  data:     'Action=deleteImage&Type=' + self.type +
                                              '&Id=' + id,
                  dataType: 'json',
                  timeout:  40000,
            error:
                function() {
                    return false;
                },
            success:
                function(data) {
                    if (data.Error) {
                        alert(data.Message)
                    } else {
                        self.initExisting()
                    }
                }
        })
    }
    
    this.changeExistingImageDefault = function(elem) {

        var self = this

        var thisId = $(elem).attr('id')
        id = thisId.split('_')
        
        var size = id[1]
        id       = id[2]

        $('input.defaultImage_' + size).each(
            function() {
                if ($(this).attr('id') != thisId) {
                    $(this).attr('checked', false)
                }
            })
        var val = self.html.getCheckBoxValue('#' + thisId)

        $.ajax({
                  type:     'POST',
                  url:      CMSURL,
                  data:     'Action=changeDefaultImage&Type=' + self.type +
                                                      '&Id=' + id +
                                                      '&Size=' + size +
                                                      '&Val=' + val,
                  dataType: 'json',
                  timeout:  40000,
            error:
                function() {
                    return false;
                },
            success:
                function(data) {
                    if (data.Error) {
                        alert(data.Message)
                    } else {
                        alert('Default ' + size + ' image changed')
                    }
                }
        })
    }
    
    this.checkAndClose = function() {
    
        var self = this
        
        for(var size in this.imageSizes){
            checked = 0
            $('input.defaultImage_' + size).each(
                function() {
                    if ($(this).attr('checked')) {
                       checked = 1
                    }
                })
            if (! checked) {
                alert('Please select a default ' + size + ' image')
                return
            }
        }
        tb_remove()
    }
}
