// Gallery links
PictureLink.prototype.createPictureLink = _createPictureLink;
PictureLink.prototype.setThumb = _setThumb;
PictureLink.prototype.setCaption = _setCaption;
PictureLink.prototype.setThumbButton = _setThumbButton;
PictureLink.prototype.setCaptionButton = _setCaptionButton;
PictureLink.prototype.addThumbLink = _addThumbLink;
PictureLink.prototype.addCaptionLink = _addCaptionLink;

PictureLink.prototype.removeThumbLink = _removeThumbLink;
PictureLink.prototype.removeCaptionLink = _removeCaptionLink;

PictureLink.prototype.removeAllThumbLink = _removeAllThumbLink;
PictureLink.prototype.removeAllCaptionLink = _removeAllCaptionLink;

function PictureLink(type)
{
	this.type = type;	// type = thumb_link, caption_link
}

function _createPictureLink(parent, pictures)
{
	var thumbs = '';
	var captions = '';
	links_frame = document.createElement('div');
	links_frame.id = 'picture_link_frame';
	
	// show links
	for (j=0; j<this.type.length; j++)
	{
		if (this.type[j] == 'thumb-link')
		{
			thumbs = _createThumbLinks(pictures);
			$(links_frame).appendChild(thumbs);
		}
		if (this.type[j] == 'caption-link')
		{
			captions = _createCaptionLinks(pictures);
			$(links_frame).appendChild(captions);
		}
	}
	$(parent).appendChild(links_frame);
	
	// add actions on links
	for (j=0; j<this.type.length; j++)
	{
		if (this.type[j] == 'thumb-link')
		{
			for(i=0; i<pictures.length; i++)
			{
				_setThumbButton(pictures[i]);
			}
		}
		if (this.type[j] == 'caption-link')
		{
			for(i=0; i<pictures.length; i++)
			{
				_setCaptionButton(pictures[i]);
			}
		}
	}
			
	if (thumbs == '')
		$('caption_view').style.width = '408px';
	if (captions == '')
		$('thumb_view').style.width = '125px';//'413px';

	return thumbs;
}

function _createThumbLinks(pictures)
{
	var thumbWidthConst = galleryConst.thumbWidthConst;
	
	var thumb_view = '';
	var thumbs = '';
	var thumb = '';
	
	thumb_view = document.createElement('div');
	thumb_view.id = 'thumb_view';
	thumb_view.className = 'thumb-view';
	
	thumbs = document.createElement('div');
	thumbs.id = 'thumbs';
	thumbs.className = 'thumbs';
	//thumbs.style.width = thumbWidthConst * pictures.length + 'px';
	thumbs.style.height = thumbWidthConst * pictures.length + 'px';
	
	for(i=0; i<pictures.length; i++)
	{
		thumbs = _createThumbLink(pictures[i]);
	}
	thumb_view.appendChild(thumbs);
	return thumb_view;
}

function _removeAllThumbLink()
{
	if($('thumb_view'))
	{	
		$('thumb_view').removeChild($('thumbs'));
		
		thumbs = document.createElement('div');
		thumbs.id = 'thumbs';
		thumbs.className = 'thumbs';
		$('thumb_view').appendChild(thumbs);
	}
}

function _removeThumbLink(picture_id, gallery_picture_num)
{
	var thumbWidthConst = galleryConst.thumbWidthConst;
	
	var thumbs = $('thumbs');
	if($('thumb_' + picture_id))
	{
		thumbs.removeChild($('thumb_' + picture_id));
		//thumbs.style.width = thumbWidthConst * gallery_picture_num + 'px';
		thumbs.style.height = thumbWidthConst * gallery_picture_num + 'px';
	}
	
	return thumbs;
}

function _createCaptionLinks(pictures)
{
	var caption_view = '';
	var captions = '';
	var caption = '';
	
	caption_view = document.createElement('div');
	caption_view.id = 'caption_view';
	caption_view.className = 'caption-view';
	
	captions = document.createElement('div');
	captions.id = 'captions';
	captions.className = 'captions';
	for(i=0; i<pictures.length; i++)
	{
		captions = _addCaptionLink(pictures[i]);
	}
	caption_view.appendChild(captions);
	return caption_view;
}


function _removeCaptionLink(picture_id)
{
	if ($('caption_' + picture_id))
		$('captions').removeChild($('caption_' + picture_id));
	return thumbs;
}

function _removeAllCaptionLink()
{
	if($('caption_view'))
	{	
		$('caption_view').removeChild($('captions'));
		
		captions = document.createElement('div');
		captions.id = 'captions';
		captions.className = 'captions';
		$('caption_view').appendChild(captions);
	}
}

function _addThumbLink(picture)
{
	if(this.type.toString().search('thumb-link') != -1)
	{
		_createThumbLink(picture);
		_setThumbButton(picture);
	}
}

function _createThumbLink(picture)
{
	var thumbWidthConst = galleryConst.thumbWidthConst;
	var gallery_picture_num = picture.gallery.picture_number;
	
	var thumbs = '';
	var thumb = '';
	
	thumbs = $('thumbs');
	//thumbs.style.width = thumbWidthConst * gallery_picture_num + 'px';
	thumbs.style.height = thumbWidthConst * gallery_picture_num + 'px';
	
	thumb = document.createElement('div');
	thumb.id = 'thumb_' + picture.id;
	thumb.className = 'thumb';
		
	thumb.appendChild(picture.img_thumb);
	thumbs.appendChild(thumb);

	return thumbs;
}

function _addCaptionLink(picture)
{
	if(this.type.toString().search('caption-link') != -1)
	{
		_createCaptionLink(picture);
		_setCaptionButton(picture);
	}
}

function _createCaptionLink(picture)
{
	var captions = '';
	var caption = '';
	
	captions = $('captions');
	
	caption = document.createElement('div');
	caption.id = 'caption_' + picture.id;
	caption.className = 'caption';
		
	caption.appendChild(document.createTextNode(picture.caption));
	captions.appendChild(caption);

	return captions;
}

function _setCaptionButton(picture)
{
	caption = $('caption_' + picture.id);
	if(caption)
		caption.onclick = _linkClicked.bindAsEventListener(picture);
}

function _setThumbButton(picture)
{
	thumb = $('thumb_' + picture.id);
	if(thumb)
		thumb.onclick = _linkClicked.bindAsEventListener(picture);
}

function _linkClicked()
{
	this.gallery.setPicture(this.id);
}

function _setThumb(picture_id, previous_id, currImg, thumbWidthConst, thumbsWidthConst) 
{
	thumb_previous = $('thumb_'+previous_id);
	if(thumb_previous)
		thumb_previous.className = 'thumb';
	
	thumb = $('thumb_'+picture_id);
	if(thumb)
		thumb.className = 'thumb_on';
	
	$('thumb_view').scrollTop = (currImg*thumbWidthConst) - ((thumbsWidthConst/2) - (thumbWidthConst/2));
	//$('thumb_view').scrollLeft = (currImg*thumbWidthConst) - ((thumbsWidthConst/2) - (thumbWidthConst/2));
}

function _setCaption(picture_id, previous_id)
{
	caption_previous = $('caption_'+previous_id);
	if (caption_previous)
		caption_previous.className = 'caption';
	caption = $('caption_'+picture_id);
	if (caption)
		caption.className = 'caption_on';
}

