function ProductGallery(mainId, thumbsId)
{
	this.MainElement = document.getElementById(mainId);
	this.ThumbhElement = document.getElementById(thumbsId);
	this.ImageCount = 37;
}

ProductGallery.prototype.Template = {
	'Main': [
			'<table cellpadding="0" cellspacing="0" style="width:100%; height:100%;">',
				'<tr>',
					'<td><img src="../images/left_top_gallery_corner.jpg"/></td>',
					'<td style="height:8px; background: url(\'../images/top_gallery_border.jpg\') repeat-x;">',
					'</td>',
					'<td><img src="../images/right_top_gallery_corner.jpg"/></td>',
				'</tr>',
				'<tr>',
					'<td style="width:8px; background: url(\'../images/left_gallery_border.jpg\') repeat-y;">',
					'</td>',												
					'<td style="vertical-align:middle; text-align:center;">',
						'<img id="galleryBigImage" src="../images/gallery/1.jpg" />',
					'</td>',
					'<td style="width:8px; background: url(\'../images/right_gallery_border.jpg\') repeat-y;">',
					'</td>',
				'</tr>',
				'<tr>',
					'<td><img src="../images/left_bottom_gallery_corner.jpg"/></td>',
					'<td style="height:8px; background: url(\'../images/bottom_gallery_border.jpg\') repeat-x;">',
					'</td>',
					'<td><img src="../images/right_bottom_gallery_corner.jpg"/></td>',
				'</tr>',
			'</table>'												
	].join(' '),
	'Small' : [
		'<table cellpadding="0" cellspacing="0" style="width:100px; height:100px;clear:left;">',
			'<tr>',
				'<td><img src="../images/left_top_gallery_corner.jpg"/></td>',
				'<td style="height:8px; background: url(\'../images/top_gallery_border.jpg\') repeat-x;">',
				'</td>',
				'<td><img src="../images/right_top_gallery_corner.jpg"/></td>',
			'</tr>',
			'<tr>',
				'<td style="width:8px; background: url(\'../images/left_gallery_border.jpg\') repeat-y;">',
				'</td>',																
				'<td style="vertical-align:middle; text-align:center;"><img height="79" width="79" id="{#smallImageId}" src="../images/gallery/thumbs/{#index}.jpg" style="cursor:pointer;"/>',
				'</td>',
				'<td style="width:8px; background: url(\'../images/right_gallery_border.jpg\') repeat-y;">',
				'</td>',
			'</tr>',
			'<tr>',
				'<td><img src="../images/left_bottom_gallery_corner.jpg"/></td>',
				'<td style="height:8px; background: url(\'../images/bottom_gallery_border.jpg\') repeat-x;">',
				'</td>',
				'<td><img src="../images/right_bottom_gallery_corner.jpg"/></td>',
			'</tr>',
		'</table>'
	].join(' ')
};

ProductGallery.prototype.Bind = function (){
	this.MainElement.innerHTML = this.Template['Main'];
	
	for (var i = 1; i <= this.ImageCount; i++)
	{
		var params = {
			'smallImageId' : 'smallImageId_'+i,
			'index' : i
		};
		var thumbDiv = document.createElement('div');
		thumbDiv.id = 'smallDivImageId_'+i;
		thumbDiv.innerHTML = this.TemplateReplacer(this.Template['Small'],params);
		this.ThumbhElement.appendChild(thumbDiv);
		var imageElement = document.getElementById('smallImageId_'+i);
		addEvent(imageElement, 'click', this.ImageSelected);
		//addEvent(thumbDiv, 'click', this.ImageSelected);
	}
};

ProductGallery.prototype.ImageSelected = function (e){
	var elem = e.srcElement||e.target;
	var id = elem.id;
	var index = id.split('_')[1];
	var imageElement = document.getElementById('galleryBigImage');
	imageElement.src = '../images/gallery/'+index+'.jpg?'+returnGUID();
	var i = 0;
};

ProductGallery.prototype.TemplateReplacer = function(template, paramArray){
	var s = template;
	for(var key in paramArray)
	{
		s = s.replace('{#'+key+'}',paramArray[key]);
	}
	return s;
};

function addEvent( obj, type, fn ) {
  if ( obj.attachEvent ) {
    obj['e'+type+fn] = fn;
    obj[type+fn] = function(){obj['e'+type+fn]( window.event );}
    obj.attachEvent( 'on'+type, obj[type+fn] );
  } else
    obj.addEventListener( type, fn, false );
}

function returnGUID(){
	var guid = "";
	for (var i = 0; i < 32; i++)
		guid += parseInt(Math.random() * 16).toString(16);
	return guid;
};
