function SwitchState(evt){
	if((evt=checkEvent(evt))){
		var oElem=evt.target;
		do{
			if(oElem.nodeType == 1 && cmnMatch_class(oElem, 'preview'))
				break;
		}while(oElem=oElem.parentNode)
		
		if(oElem){
			for(var i=0; i<aPreviews.length; i++){
				if(aPreviews[i].oElem == oElem) {
					aPreviews[i].open();
				}
				else {
					aPreviews[i].close();
				}
			}
		}
	}
}


var aPreviews = new Array();

function initPhotoGallery() {
	var oPreviewContainer = document.getElementById('photo_gallery_preview');
	var oLargeContainer = document.getElementById('photo_gallery_large');

	for (var iDivIdx = 0; (oDiv = oPreviewContainer.getElementsByTagName('div')[iDivIdx]); iDivIdx++) {
		if (cmnMatch_class(oDiv, 'preview')) {
			aPreviews[aPreviews.length] = new PhotoGalleryPreview(oDiv);
		}
	}

	if( aPreviews[0] ) {
		cmnSet_class(oPreviewContainer, 'js_enabled');
		cmnSet_class(oLargeContainer, 'js_enabled');
		aPreviews[0].open();
	}
}

function PhotoGalleryPreview(oElem){
	this.oElem = oElem;

	this.oLarge = document.getElementById('large_' + this.oElem.id);
	if(!this.oLarge) return null;

	cmnSet_class(this.oElem, 'closed');
	cmnSet_class(this.oLarge, 'closed');

	cmnAdd_event(this.oElem, 'click', SwitchState);
}

PhotoGalleryPreview.prototype.open=function(){
	cmnSet_class(this.oElem, 'opened', 'closed');
	cmnSet_class(this.oLarge, 'opened', 'closed');
}

PhotoGalleryPreview.prototype.close=function(){
	cmnSet_class(this.oElem, 'closed', 'opened');
	cmnSet_class(this.oLarge, 'closed', 'opened');
}