//
// $Id: Location.js,v 1.1 2010/07/10 16:48:25 steve Exp $
//
var Location = function() {

    this.html     = new Html()
    this.thickbox = new ThickBoxGeneric()
    this.url      = new Url()

    this.initLocation = function() {

        var self = this

        self.thickbox.init()

        self.id = self.url.clickedUrlArg('Id')
                       
        if (self.id) {
            self.loadLocation()         
        } else {
            $('#locationTitle').html('New Location')
            self.html.setCheckBoxValue($('#locationTable .initialChecked'), 1)
            self.showTable()
        }

        $('#locationSaveButton').click( function() { self.saveLocation() })
    }

    this.initTab = function() {

        var self = this

        self.thickbox.applyThickBox($('#contactUsTabContent a.thickbox'))

        $('#contactUsTabContent .useLocation').click( function () { self.useLocation($(this)) })
        $('#contactUsTabContent .showLocation').click( function () { self.showOnSite($(this)) })
    }

    this.loadLocation = function() {

        var self = this

        $.ajax({
                  type:     'POST',
                  url:      CMSURL,
                  data:     'Action=loadLocation&Id=' + self.id,
                  dataType: 'json',
                  timeout:  40000,
            error:
                function() {
                    return false;
                },
            success:
                function(data) {
                    if (data.Error) {
                        alert(data.Message)
                    } else {
                        $('#locationTitle').html("Edit '" + data.Location.name + "'")
                        $('#name').val(data.Location.name)
                        self.html.setCheckBoxValue($('#nameShow'), data.Location.nameshow)
                        $('#companyNo').val(data.Location.companyno)
                        self.html.setCheckBoxValue($('#companyNoShow'), data.Location.companynoshow)
                        $('#vatNo').val(data.Location.vatno)
                        self.html.setCheckBoxValue($('#vatNoShow'), data.Location.vatnoshow)

                        self.showTable()
                    }
                }
        })
    }

    this.showTable = function() {

        $('#locationTable').show()
    }

    this.showOnSite = function() {

        var self = this
        alert('showOnSite')
    }

    this.useLocation = function(elem) {

        var self = this

        var id  = $(elem).attr('id').split('_')
        id      = id[1]
        var val = self.html.getCheckBoxValue($(elem))

        $('#location_' + id).addClass('invalid')
        if (val) {
            if (! confirm('Use this location on Contact Us pages?')) {
                $('#location_' + id).removeClass('invalid')
                self.html.setCheckBoxValue($(elem), 0)
                return
            }
            action = 'useLocation'
        } else {
            if (! confirm('Stop using this location on Contact Us pages?')) {
                $('#location_' + id).removeClass('invalid')
                self.html.setCheckBoxValue($(elem), 1)
                return
            }
            action = 'unUseLocation'
        }
        $('#location_' + id).removeClass('invalid')

        $.ajax({
                  type:     'POST',
                  url:      CMSURL,
                  data:     'Action=' + action + '&Id=' + id,
                  dataType: 'json',
                  timeout:  40000,
            error:
                function() {
                    return false;
                },
            success:
                function(data) {
                    if (data.Error) {
                        alert(data.Message)
                    }
                }
        })
    }

    this.saveLocation = function() {

        var self = this

        var name          = $('#name').val()
        var nameShow      = self.html.getCheckBoxValue($('#nameShow'))
        var vatNo         = $('#vatNo').val()
        var vatNoShow     = self.html.getCheckBoxValue($('#vatNoShow'))
        var companyNo     = $('#companyNo').val()
        var companyNoShow = self.html.getCheckBoxValue($('#companyNoShow'))

        $.ajax({
                  type:     'POST',
                  url:      CMSURL,
                  data:     'Action=saveLocation&Id=' + self.id +
                                               '&Name=' + name + 
                                               '&NameShow=' + nameShow + 
                                               '&CompanyNo=' + companyNo + 
                                               '&CompanyNoShow=' + companyNoShow + 
                                               '&VATNo=' + vatNo + 
                                               '&VATNoShow=' + vatNoShow,
                  dataType: 'json',
                  timeout:  40000,
            error:
                function() {
                    return false;
                },
            success:
                function(data) {
                    if (data.Error) {
                        alert(data.Message)
                    } else {
                        $('#contactUsTabContent').html(data.Content)
                        self.initTab()
                        if (self.id) {
                            alert('Location updated')         
                        } else {
                            alert('Location created')         
                        }
                    }
                    tb_remove()
                }
        })
    }
}
