/*
 * Copyright (C) 2005 InstanColor Image Center
 */

function IColor() {
    this.bind = function(args) {
        var element = document.getElementById(args['id']);
        if (!element) {
            this.onError('Cannot find element id=['+args['id']+']');
            return false;
        }
        if (args['mouseoverclass']) {
            element.onmouseover = function() {
                this.className = args['mouseoverclass'];
            }
        }
        if (args['mouseoutclass']) {
            element.onmouseout = function() {
                this.className = args['mouseoutclass'];
            }
        }
        if (args['href']) {
            element.onclick = function() {
                document.location = args['href'];
            }
        }
        return true;
    }
    this.onError = function(msg) {}
}

function ICAlbum(id) {
    var containerID = id;
    var container = document.getElementById(id);
    var chooseCount = 0;
    this.albumID = '';
    this.albumTitle = '';
    this.context = '';
    this.chooseCountInitValue = 0;
    this.start = function() {
        chooseCount = this.chooseCountInitValue;
        var form = document.forms['photos'];
        if (!container) return;
        var elements = container.getElementsByTagName('div');
        for (var i=0; i < elements.length; i++) {
            var element = elements[i];
            var className = element.className;
            element.album = this;
            switch (className) {
            case 'thumbPh picked':
            case 'thumbPh':
                element.isSelected = className.indexOf('picked') >= 0;
                element.select = function(value) {
                    this.isSelected = value;
                    this.className = this.isSelected ? 'thumbPh picked' : 'thumbPh';
                }
                element.onmouseover = function() {
                    this.className = 'thumbPhOver'+(this.isSelected ? ' picked' : '');
                }
                element.onmouseout = function() {
                    this.className = 'thumbPh'+(this.isSelected ? ' picked' : '');
                }
                break;
            case 'thumbImg':
                element.onclick = function() {
                    var url = this.album.context;
                    url += this.album.albumTitle;
                    url += '/album.showPhoto.view';
                    url += '?photoKey='+this.parentNode.id;
                    url += '&eventKey='+this.album.albumID;
                    url += '&st='+(this.parentNode.isSelected?1:0);
                    var winZoom = window.open(url, 'photoDetail', 'width=666,height=576');
                    if (winZoom.focus) winZoom.focus();
                }
                break;
            case 'choose':
                var field = form.elements['photoKey['+element.parentNode.id+']'];
                element.relatedField = field;
                element.isSelected = field.value != '';
                if (element.isSelected) chooseCount++;
                element.onmouseover = function() {
                    this.className = 'chooseOver';
                }
                element.onmouseout = function() {
                    this.className = 'choose';
                }
                element.onclick = function() {
                    this.isSelected = this.parentNode.isSelected = !this.isSelected;
                    if (this.isSelected) {
                       this.parentNode.className = 'thumbPhOver picked';
                       this.relatedField.value = this.parentNode.id;
                       chooseCount++;
                    } else {
                       this.parentNode.className = 'thumbPhOver';
                       this.relatedField.value = '';
                       chooseCount--;
                    }
                    document.getElementById('selectedPhotosQty').innerHTML = chooseCount;
                }
                break;
            case 'opt remove':
                element.onmouseover = function() {
                    this.className = 'opt removeOver';
                }
                element.onmouseout = function() {
                    this.className = 'opt remove';
                }
                element.onclick = function() {
                    var url = this.album.context;
                    url += 'removeAlbum.do';
                    url += '?p='+this.parentNode.id;
                    document.location = url;
                }
                break;
            case 'opt download':
                element.onmouseover = function() {
                    this.className = 'opt downloadOver';
                }
                element.onmouseout = function() {
                    this.className = 'opt download';
                }
                element.onclick = function() {
                    var url = this.album.context;
                    url += 'download/';
                    url += this.album.albumTitle;
                    url += '/'+this.parentNode.id+'.jpg';
                    url += '?pk='+this.parentNode.id;
                    url += '&eventKey='+this.album.albumID;
                    document.location = url;
                }
                break;
            default:
                break;
            }
        }
    }
}

var loader = new Array();
function initialize() {
	for (var i=0; i < loader.length; i++) loader[i]();
};

