var j2kimage = {
    PANACCURACY: 3,

    init: function()
    {
        if (frames)
            this.iframe = frames['j2kiframe'];
        else
            this.iframe = document.getElementById('j2kiframe');
        this.image = document.getElementById('j2kimage');
        var baseurl = this.serverurl + '?file=' + this.filepath
        if (document.getElementById('thumbnail'))
        	document.getElementById('thumbnail').src = baseurl + '&maxwidth=100&maxheight=100&mode=thumbnail&format=image/jpeg';
        if (this.upperleftx && this.upperlefty && this.lowerrightx && this.lowerrighty && this.mag)
        	url = baseurl + '&action=zoomto&upperleftx=' + this.upperleftx + '&upperlefty=' + this.upperlefty + '&lowerrightx=' + this.lowerrightx + '&lowerrighty=' + this.lowerrighty + '&mag=' + this.mag;
        else
            url = baseurl + '&action=init';
        url += '&maxwidth=' + this.maxwidth + '&maxheight=' + this.maxheight + '&mode=navigator';
        this.loadURL(url);
    },

    loadURL: function(url)
    {
        if (this.iframe.location && this.iframe.location.href)
            this.iframe.location.href = url;
        else
            this.iframe.src = url;
    },

    onSceneData: function()
    {
        this.kvp = new Object();
        if (this.iframe.contentDocument)
            var iframedoc = this.iframe.contentDocument;
        else
            var iframedoc = this.iframe.document;
        var kvpentries = iframedoc.getElementsByTagName('ul')[0].getElementsByTagName('li');
        for (index = 0; index < kvpentries.length; index++) {
            var keyword = kvpentries.item(index).getAttribute('id');
            var value = kvpentries.item(index).firstChild.data;
            this.kvp[keyword] = value;
        }
        if (document.getElementById('j2kimageform'))
        {
	        document.getElementById('upperleftx').value = this.kvp['upperleftx'];
	        document.getElementById('upperlefty').value = this.kvp['upperlefty'];
	        document.getElementById('lowerrightx').value = this.kvp['lowerrightx'];
	        document.getElementById('lowerrighty').value = this.kvp['lowerrighty'];
	        document.getElementById('mag').value = this.kvp['mag'];
	        document.getElementById('imagewidth').value = this.kvp['imagewidth'];
	        document.getElementById('imageheight').value = this.kvp['imageheight'];
        }
        this.image.src = this.serverurl + '?file=' + this.filepath + '&mode=image&format=image/jpeg' + '&imagewidth=' + this.kvp['imagewidth'] + '&imageheight=' + this.kvp['imageheight'] + '&mag=' + this.kvp['mag'] + '&upperleftx=' + this.kvp['upperleftx'] + '&upperlefty=' + this.kvp['upperlefty'];
    },

    clickedZoomOut: function()
    {
        if (this.kvp['level'] == this.kvp['numoflevels'])
        {
            alert(this.minzoommessage)
            return;
        }
        document.getElementById('action').value = 'zoomout';
        document.getElementById('j2kimageform').submit();
        document.getElementById('action').value = 'zoomin';
    },

    clickedResize: function(newwidth, newheight)
    {
        window.location = window.location.protocol + '//' + window.location.host + window.location.pathname + '?maxwidth=' + newwidth + '&maxheight=' + newheight + '&mode=navigator&upperleftx=' + document.getElementById('upperleftx').value + '&upperlefty=' + document.getElementById('upperlefty').value + '&lowerrightx=' + document.getElementById('lowerrightx').value + '&lowerrighty=' + document.getElementById('lowerrighty').value + '&mag=' + document.getElementById('mag').value;
    },

	clickedViewFullMap: function()
	{
        var url = this.serverurl + '?file=' + this.filepath + '&maxwidth=' + this.maxwidth + '&maxheight=' + this.maxheight + '&mode=navigator&action=init';
        this.loadURL(url);
	},

    clickedPanArrow: function(dir)
    {
        var acc = this.PANACCURACY * 2;
        var lowerrightx = parseInt(this.kvp['lowerrightx']);
        var upperleftx = parseInt(this.kvp['upperleftx']);
        var lowerrighty = parseInt(this.kvp['lowerrighty']);
        var upperlefty = parseInt(this.kvp['upperlefty']);
        var offset_x = Math.round((lowerrightx - upperleftx)/acc);
        var offset_y = Math.round((lowerrighty - upperlefty)/acc);
        switch (dir)
        {
            case 'up':
                upperlefty -= offset_y;
                lowerrighty -= offset_y;
                break;
            case 'down':
                upperlefty += offset_y;
                lowerrighty += offset_y;
                break;
            case 'left':
                upperleftx -= offset_x;
                lowerrightx -= offset_x;
                break;
            case 'right':
                upperleftx += offset_x;
                lowerrightx += offset_x;
                break;
        }
        var url = this.serverurl + '?file=' + this.filepath + '&action=zoomto&upperleftx=' + upperleftx + '&upperlefty=' + upperlefty + '&lowerrightx=' + lowerrightx + '&lowerrighty=' + lowerrighty + '&mag=' + this.kvp['mag'] + '&maxwidth=' + this.maxwidth + '&maxheight=' + this.maxheight + '&mode=navigator';
        this.loadURL(url);
    },

    clickedPrint: function()
    {
        window.location = this.absolute_url + '/' + this.print_template + '?maxwidth=' + this.maxwidth + '&maxheight=' + this.maxheight + '&mode=navigator&upperleftx=' + document.getElementById('upperleftx').value + '&upperlefty=' + document.getElementById('upperlefty').value + '&lowerrightx=' + document.getElementById('lowerrightx').value + '&lowerrighty=' + document.getElementById('lowerrighty').value + '&mag=' + document.getElementById('mag').value;
    },

    clickedReturnToMapFromPrint: function()
    {
        window.location = this.absolute_url + '?maxwidth=' + this.kvp['imagewidth'] + '&maxheight=' + this.kvp['imageheight'] + '&mode=navigator&upperleftx=' + this.kvp['upperleftx'] + '&upperlefty=' + this.kvp['upperlefty'] + '&lowerrightx=' + this.kvp['lowerrightx'] + '&lowerrighty=' + this.kvp['lowerrighty'] + '&mag=' + this.kvp['mag'];
    },
    
    languageSwitch: function(baseurl)
    {
        window.location = baseurl + '?maxwidth=' + this.maxwidth + '&maxheight=' + this.maxheight + '&mode=navigator&upperleftx=' + document.getElementById('upperleftx').value + '&upperlefty=' + document.getElementById('upperlefty').value + '&lowerrightx=' + document.getElementById('lowerrightx').value + '&lowerrighty=' + document.getElementById('lowerrighty').value + '&mag=' + document.getElementById('mag').value;
    }
}

