var inputs = false;
var targets = [];
Event.observe(window, 'load', function() {
    items = document.getElementsByClassName('item');
	if (targets.length) {
		for (var i=0, c=targets.length; i<c; i++) {
			var target = targets[i];
			toggle(target);
		}
	}
	if (!inputs) {
		makeInputs();
	}
    for (i=0;i<items.length; i++) {
		newHover = $(document.createElement('div'));
		newImg = document.createElement('img');
		newImg.align = "middle";
		newHover.addClassName('hoverImg');
		newHover.hide();
		items[i].popup = newHover;
		newHover.thumbnail = items[i];
		src = items[i].src;
		cleanSrc = src.substring(src.lastIndexOf('/')+1);
		newSrc = src.replace(cleanSrc,"../fullsize/"+cleanSrc);
		newImg.src = newSrc;
		newImg.width = 155;
		newImg.height = 155;
		document.body.appendChild(newHover);
		newHover.appendChild(newImg);

		newHover.setStyle({
			position: "absolute",
			left: Position.cumulativeOffset(items[i])[0] - items[i].popup.getWidth()/2-30 + "px",
			top: Position.cumulativeOffset(items[i])[1] - items[i].popup.getHeight() +"px"
		});
		Event.observe(items[i], 'mousedown', toggle);		
		if (!items[i].hasClassName('nohover')) {		
			Event.observe(items[i], 'mouseout', hideBig);
			Event.observe(items[i], 'mouseover', showBig);
		}
    }
})

function makeInputs() {
    optGroups = $$('.criteria_box_inner');
    for (i=0;i<optGroups.length;i++) {
        newInput = document.createElement('input');
        newInput.type = "hidden";
        newInput.id = optGroups[i].getAttribute('opttype');
        newInput.name = optGroups[i].getAttribute('opttype');
        optGroups[i].appendChild(newInput);
    }
	inputs = true;
}

function toggle(event) {
	if (!inputs) {
		makeInputs();	
	}
    if (event.nodeName) {
        target = event;
    } else {
        target = Event.element(event);
    }
    optNodes = target.parentNode.getElementsByTagName('img');
    if (target.hasClassName('selected')) {
        target.removeClassName('selected');
    } else {
        if (target.parentNode.readAttribute('multiopt')=="false") {
            for (i=0;i<optNodes.length;i++) {
                optNodes[i].removeClassName('selected');
            }
        }
        target.addClassName('selected');
    };
    
    storeSelected(target);
}

function storeSelected(target) {
    var inputField = $(target.up('.criteria_box_inner').readAttribute('opttype'));
	inputField.value = '';    
		
	for (i=0;i<optNodes.length;i++) {
		if (optNodes[i].hasClassName('selected')) {
			inputField.value += optNodes[i].id;
			inputField.value = inputField.value.replace(/,$/, '') + ',';
		}
	}
}

function showBig(event) {
    var target = Event.element(event);
    var top = Position.cumulativeOffset(target)[1] - target.popup.getHeight();
    target.popup.setStyle({
        top: top - getScrollTop(target.parentNode) + 'px'
    });
	if (!target.popup.down('span')) {
		target.popup.innerHTML += '<br/>';
		var newSpan = document.createElement('span');
		target.popup.appendChild(newSpan);
	}
	target.popup.down('span').innerHTML = target.readAttribute('_label');
    target.popup.show();
}

function hideBig(event) {
    target = Event.element(event);
    target.popup.hide();
}

function storeToggle(target) {
	targets.push(target);
}

function getScrollTop(target) {
    target = target || window;
    if (target.document || target.contentDocument) {
        _window = target;
        _document = _window.contentDocument || _window.document;
        target = null;
    }
    if (target) {
        return target.scrollTop;
    } else if (_document.documentElement && _document.documentElement.scrollTop) {
        return _document.documentElement.scrollTop;
    } else if (_document.body && _document.body.scrollTop) {
        return _document.body.scrollTop;
    } else if (_window.pageYOffset) {
        return _window.pageYOffset;
    } else if (_window.scrollY) {
        return _window.scrollY;
    }
    return 0;
}

