function SetClickable(element, callback) {
	if (callback) {
		element.click(function(e) {
			e.preventDefault();
			e.stopPropagation();
			element.addClass('taphl');			
			setTimeout(function() { $('.taphl').removeClass('taphl'); }, 700);

			var itemId = $(this).attr('itemId'); // need to pass identifiers
			setTimeout(function() { return callback(itemId); }, 50);
		});
	}
}

function SetClickable2(element, callback, params) {
	if (callback) {
		element.click(function(e) {
			e.preventDefault();
			e.stopPropagation();
			element.addClass('taphl');			
			setTimeout(function() { $('.taphl').removeClass('taphl'); }, 700);
			setTimeout(function() { return callback(params); }, 50);
		});
	}
}


function CreateButton1(data, bullet) {
	var template = GetTemplateByCode('Button1');
	
	if (!data) { data = {}; }
	if (data.title) { template.find('[val=title]').html(data.title); }
	if (data.className) { template.addClass(data.className); }
//	if (data.onclick) { template.click(data.onclick); }
	if (data.onclick) { SetClickable(template, data.onclick); }
	if (data.itemId) { template.attr('itemId', data.itemId); }
	
	if (!bullet) { bullet = {}; }
	if (bullet.className) { template.find('[val=bullet]').addClass(bullet.className); }
	return template;
}

function CreateButton2(data) {
	var template = GetTemplateByCode('Button2');
	
	if (!data) { data = {}; }
	if (data.className) { template.addClass(data.className); }
//	if (data.onclick) { template.click(data.onclick); }
	if (data.onclick) { SetClickable(template, data.onclick); }
	if (data.itemId) { template.attr('itemId', data.itemId); }
	return template;
}

function CreateButton3(data) {
	var template = GetTemplateByCode('Button3');
	
	if (!data) { data = {}; }
	if (data.title) { template.html(data.title); }
	if (data.className) { template.addClass(data.className); }
//	if (data.onclick) { template.click(data.onclick); }
	if (data.onclick) { SetClickable(template, data.onclick); }
	if (data.itemId) { template.attr('itemId', data.itemId); }
	return template;
}

function CreateButton4(data) {
	var template = GetTemplateByCode('Button4');
	
	if (!data) { data = {}; }
	if (data.title) { template.html(data.title); }
	if (data.className) { template.addClass(data.className); }
//	if (data.onclick) { template.click(data.onclick); }
	if (data.onclick) { SetClickable(template, data.onclick); }
	if (data.itemId) { template.attr('itemId', data.itemId); }
	return template;
}

function CreateBlockDetails(data, image, more) {
	var template = GetTemplateByCode('BlockDetails');
	
	if (!data) { data = {}; }
	if (data.title) { template.find('[val=title]').html(data.title); }
	if (data.subtitle) { template.find('[val=subtitle]').html(data.subtitle); }
	if (data.note) { template.find('[val=note]').html(data.note); }
	if (data.content1) { template.find('[val=content1]').html(data.content1); }
	if (data.content2) { template.find('[val=content2]').html(data.content2); }
	
	if (!image) { image = {}; }
	if (image.className) { template.find('[val=image]').addClass(image.className); }
	if (image.data) { template.find('[val=image]').css({ 'background-image' : 'url("'+image.data+'")' }); }
	if (image.onclick) { template.find('[val=image]').click(image.onclick); }
//	if (data.onclick) { SetClickable(template.find('[val=image]'), data.onclick); }
//	if (data.itemId) { template.find('[val=image]').attr('itemId', data.itemId); }

	if (!more) { more = {}; }
	if (more.className) { template.find('[val=more]').addClass(more.className); }
	if (more.text) { template.find('[val=more]').html(more.text); }

	return template;
}

function CreateBlockNote(data) {
	var template = GetTemplateByCode('BlockNote');
	
	if (!data) { data = {}; }
	if (data.text) { template.find('[val=text]').html(data.text); }
	if (data.image) { template.find('[val=imageNote]').css({ 'background-image' : 'url("'+data.image+'")' }); }

	return template;
}

function CreateBlockInfo(data) {
	var template = GetTemplateByCode('BlockInfo');
	
	if (!data) { data = {}; }
	if (data.name1) { template.find('[val=name1]').html(data.name1); }
	if (data.name2) { template.find('[val=name2]').html(data.name2); }
	if (data.value1) { template.find('[val=value1]').html(data.value1); }
	if (data.value2) { template.find('[val=value2]').html(data.value2); }

	return template;
}

function CreateBlockCommon(data) {
	var template = GetTemplateByCode('BlockCommon');
	if (data) { template.html(data); }
	return template;
}

function CreateListCommon(data) {
	var template = GetTemplateByCode('ListCommon');
	if (data) { template.find('[val=items]').html(data); }
	return template;
}

function CreateListFullscreen(data) {
	var template = GetTemplateByCode('ListFullscreen');
	if (data) { template.find('[val=items]').html(data); }
	return template;
}

function CreateBlockWave(data) {
	var template = GetTemplateByCode('BlockWave');
	if (data) { template.prepend(data); }
	return template;
}

function CreateListItemRow(data) {
	var template = GetTemplateByCode('ListItemRow');
	if (data) { template.html(data); }
	return template;
}

function CreateListItemCommon(data, image, bullet, append, prepend) {
	var template = GetTemplateByCode('ListItemCommon');

	if (!data) { data = {}; }
	if (data.title) { template.find('[val=title]').html(data.title); }
	if (data.subtitle) { template.find('[val=subtitle]').html(data.subtitle); }
	if (data.name) { template.find('[val=name]').html(data.name); }
	if (data.subname) { template.find('[val=subname]').html(data.subname); }
	if (data.hint) { template.find('[val=hint]').html(data.hint); } else { template.find('[val=hint]').closest('td').remove(); }
	if (data.className) { template.addClass(data.className); }
//	if (data.onclick) { template.find('[val=item]').click(data.onclick); }
	if (data.onclick) { SetClickable(template.find('[val=item]'), data.onclick); }
	if (data.itemId) { template.find('[val=item]').attr('itemId', data.itemId); }

	if (data.bubble) { 
		template.css({ 'position' : 'relative' });
		template.prepend('<div class="tail"></div>');
	}
	
	
	if (!image) { image = {}; template.find('[val=image]').closest('td').remove(); }
	if (image.id) { template.find('[val=image]').attr('id', image.id); }
	if (image.className) { template.find('[val=image]').addClass(image.className); }
	if (image.data) { template.find('[val=image]').css({ 'background-image' : 'url("'+image.data+'")' }); }

	if (!bullet) { bullet = {}; template.find('[val=bullet]').closest('td').remove(); }
	if (bullet.className) { template.find('[val=bullet]').addClass(bullet.className); }

	if (!append) { append = []; }
	for (var i = 0; i < append.length; i++) { template.find('tr').append(append[i]); }
	
	if (!prepend) { prepend = []; }
	for (var i = 0; i < prepend.length; i++) { template.find('tr').prepend(prepend[i]); }
	
	return template;
}

function CreateListItemIcon(data, image) {
	var template = GetTemplateByCode('ListItemIcon');

	if (!data) { data = {}; }
	if (data.name) { template.find('[val=name]').html(data.name); }
	if (data.className) { template.find('[val=name]').addClass(data.className); }
//	if (data.onclick) { template.click(data.onclick); }
	if (data.onclick) { SetClickable(template, data.onclick); }
	if (data.itemId) { template.attr('itemId', data.itemId); }

	if (!image) { image = {}; }
	if (image.className) { template.find('[val=image]').addClass(image.className); }
	if (image.data) { template.find('[val=image]').css({ 'background-image' : 'url("'+image.data+'")' }); }

	return template;
}

function CreateMultilineInput(data) {
	var template = GetTemplateByCode('MultilineInput');
	if (!data) { data = {}; }
	
	if (data.id) { template.attr('id', data.id); }
	if (data.text) { template.val(data.text); }
	if (data.hint) { template.attr('placeholder', data.hint); }
	if (data.className) { template.addClass(data.className); }
	if (data.itemId) { template.attr('itemId', data.itemId); }
	if (data.onchange) { template.change(data.onchange); }
	
	return template;
}
function CreateTextInput(data) {
	var template = GetTemplateByCode('TextInput');
	if (!data) { data = {}; }
	
	if (data.id) { template.attr('id', data.id); }
	if (data.text) { template.val(data.text); }
	if (data.hint) { template.attr('placeholder', data.hint); }
	if (data.className) { template.addClass(data.className); }
	if (data.onchange) { template.change(data.onchange); }
	
	return template;
}

function CreateCellCommon(data, stopPropagation) {
	var template = GetTemplateByCode('CellCommon');
	if (data.text) { template.html(data.text); }
	if (data.width) { template.css('width', data.width); }
	if (data.className) { template.addClass(data.className); }
	if (stopPropagation) { template.click(function(e) { e.stopPropagation(); }); }
	return template;
}

function CreateActionIcon(data, image) {
	var template = GetTemplateByCode('ActionIcon');

	if (!data) { data = {}; }
	if (data.name) { template.find('[val=name]').html(data.name); }
//	if (data.onclick) { template.click(data.onclick); }
	if (data.onclick) { SetClickable(template, data.onclick); }
	if (data.itemId) { template.attr('itemId', data.itemId); }

	if (!image) { image = {}; }
	if (image.className) { template.find('[val=image]').addClass(image.className); }
	if (image.data) { template.find('[val=image]').css({ 'background-image' : 'url("'+image.data+'")' }); }

	return template;
}

function CreateSearchField(data) {
	var template = GetTemplateByCode('SearchField');

	if (!data) { data = {}; }
	if (data.id) { template.attr('id', data.id); }
	if (data.text) { template.val(data.text); }
	if (data.hint) { template.attr('placeholder', data.hint); }
	
	return template;
}

function CreateTabButton(data) {
	var template = GetTemplateByCode('TabButton');

	if (!data) { data = {}; }
	if (data.title) { template.find('a').html(data.title); }
	if (data.width) { template.css('width', data.width); }
	if (data.className) { template.find('a').addClass(data.className); }
//	if (data.onclick) { template.find('a').click(data.onclick); }
	if (data.onclick) { SetClickable(template.find('a'), data.onclick); }
	if (data.itemId) { template.find('a').attr('itemId', data.itemId); }

	return template;
}

function CreateTabBar2(buttons) {
	var template = GetTemplateByCode('TabBar2');
	for (var i = 0; i < buttons.length; i++) {
		template.find('[val=items]').append(buttons[i]);
	}
	return template;
}

function CreateTabBar3(buttons) {
	var template = GetTemplateByCode('TabBar3');
	for (var i = 0; i < buttons.length; i++) {
		template.find('[val=items]').append(buttons[i]);
	}
	return template;
}

function CreateBlockButtons(buttons) {
	var template = GetTemplateByCode('BlockButtons');
	for (var i = 0; i < buttons.length; i++) {
		buttons[i].css({ 'width' : Math.round(100 / buttons.length) + '%' });
		template.find('[val=items]').append(buttons[i]);
	}
	return template;
}

function CreateBlockButtonsInner(buttons) {
	var template = GetTemplateByCode('BlockButtonsInner');
	for (var i = 0; i < buttons.length; i++) {
//		buttons[i].css({ 'width' : Math.round(100 / buttons.length) + '%' });
		template.find('[val=items]').append(buttons[i]);
	}
	return template;
}

function CreateTableInner(data) {
	var template = GetTemplateByCode('TableInner');
	if (!data) { data = {}; }
	if (data.cells) {
		for (var i = 0; i < data.cells.length; i++) {
			template.find('[val=items]').append(data.cells[i]);
		}
	}
	if (data.width) { template.css('width', data.width); }
	if (data.className) { template.addClass(data.className); }
	return template;
}

function CreateBlueButton(data, bullet) {
	var template = GetTemplateByCode('BlueButton');

	if (!data) { data = {}; }
	if (data.name) { template.find('[val=name]').html(data.name); }
	if (data.subname) { template.find('[val=subname]').html(data.subname); }
	if (data.className) { template.addClass(data.className); }
//	if (data.onclick) { template.find('[val=item]').click(data.onclick); }
	if (data.onclick) { SetClickable(template.find('[val=item]'), data.onclick); }
	if (data.itemId) { template.find('[val=item]').attr('itemId', data.itemId); }

	if (!bullet) { bullet = {}; }
	if (bullet.className) { template.find('[val=bullet]').addClass(bullet.className); }

	return template;
}

function CreateGrayButton(data) {
	var template = GetTemplateByCode('GrayButton');

	if (!data) { data = {}; }
	if (data.title) { template.find('a').html(data.title); }
	if (data.width) { template.css('width', data.width); }
	if (data.className) { template.addClass(data.className); }
//	if (data.onclick) { template.find('[val=item]').click(data.onclick); }
	if (data.onclick) { SetClickable(template.find('a'), data.onclick); }
	if (data.itemId) { template.find('a').attr('itemId', data.itemId); }

	return template;
}

function CreatePhotoPicker(data) {
	var template = GetTemplateByCode('PhotoPicker');

	if (!data) { data = {}; }
	if (data.id) { template.find('input').attr('id', data.id); }
	if (data.value) { template.find('input').val(data.value); }
	if (data.className) { template.addClass(data.className); }
//	if (data.onclick) { template.find('[val=item]').click(data.onclick); }
	if (data.onclick) { SetClickable(template, data.onclick); }
	if (data.itemId) { template.attr('itemId', data.itemId); }
	
	return template;
}

function CreateListItemPost(data) {
	var template = GetTemplateByCode('ListItemPost');

	if (!data) { data = {}; }
	if (data.name) { template.find('[val=name]').html(data.name); }
	if (data.picker) { template.find('[val=picker]').html(data.picker); }
	if (data.button) { template.find('[val=button]').html(data.button); }
	if (data.className) { template.addClass(data.className); }
//	if (data.onclick) { template.find('[val=item]').click(data.onclick); }
	if (data.onclick) { SetClickable(template.find('[val=item]'), data.onclick); }
	if (data.itemId) { template.find('[val=item]').attr('itemId', data.itemId); }

	return template;
}

function CreateCommentsPanel(data) {
	var template = GetTemplateByCode('CommentsPanel');

	if (!data) { data = {}; }
	if (data.plus) { template.find('[val=plus]').html(data.plus); }
	if (data.comment) { template.find('[val=comment]').html(data.comment); }
	if (data.like) { template.find('[val=like]').html(data.like); }
	if (data.className) { template.addClass(data.className); }
//	if (data.onclick) { template.find('[val=item]').click(data.onclick); }
	if (data.onclickPlus) { SetClickable(template.find('[val=plus]'), data.onclickPlus); }
	if (data.itemIdPlus) { template.find('[val=plus]').attr('itemId', data.itemIdPlus); }
	if (data.onclickComment) { SetClickable(template.find('[val=comment]'), data.onclickComment); }
	if (data.itemIdComment) { template.find('[val=comment]').attr('itemId', data.itemIdComment); }
	if (data.onclickLike) { SetClickable(template.find('[val=like]'), data.onclickLike); }
	if (data.itemIdLike) { template.find('[val=like]').attr('itemId', data.itemIdLike); }

	template.click(function(e) { e.stopPropagation(); e.preventDefault(); });
	
	return template;
}

function CreateInlineImage(data) {
	var template = GetTemplateByCode('InlineImage');

	if (!data) { data = {}; }
	if (data.data) { template.css({ 'background-image' : 'url("'+data.data+'")' }); }
	if (data.className) { template.addClass(data.className); }
//	if (data.onclick) { template.find('[val=item]').click(data.onclick); }
	if (data.onclick) { SetClickable(template, data.onclick); }
	if (data.itemId) { template.attr('itemId', data.itemId); }

	return template;
}

function CreateImage(data) {
	var template = GetTemplateByCode('Image');

	if (!data) { data = {}; }
	if (data.src) { template.attr('src', data.src); }
	if (data.className) { template.addClass(data.className); }
	if (data.width) { template.css('width', data.width); }
//	if (data.onclick) { template.find('[val=item]').click(data.onclick); }
	if (data.onclick) { SetClickable(template, data.onclick); }
	if (data.itemId) { template.attr('itemId', data.itemId); }
	if (data.onload) { template.load(data.onload); }

	return template;
}

function CreateAgoTimer(time) {
	var template = GetTemplateByCode('AgoTimer');
	if (time) { template.attr('time', time); }
	return template;
}

function CreateOption(data) {
	var template = GetTemplateByCode('Option');

	if (!data) { data = {}; }
	if (data.name) { template.html(data.name); }
	if (data.value) { template.attr('value', data.value); }
	if (data.selected) { template.attr('selected', 'selected'); }
	if (data.className) { template.addClass(data.className); }
	
	return template;
}

function CreateListItemSelect(data) {
	var template = GetTemplateByCode('ListItemSelect');

	if (!data) { data = {}; }
	if (data.id) { template.find('[val=name]').attr('for', data.id); }
	if (data.name) { template.find('[val=name]').html(data.name); }
	if (data.className) { template.find('[val=name]').addClass(data.className); }

	if (!data.items) { data.items = []; }
	for (var i = 0; i < data.items.length; i++) {
		template.find('[val=select]').append(data.items[i]);
	}
	if (data.id) { template.find('[val=select]').attr('id', data.id); }
	if (data.onchange) { template.find('[val=select]').change(data.onchange); }
	
	return template;
}

function CreateCommentsLikesPanel(comments, likes, itemId) {
	var clickComments = function(itemId) { screens[603].itemId = itemId; return ShowScreen(603); };
	var clickItemId = itemId;
	
	var comments = CreateCommentsPanel({ 
		'comment' : (comments > 0 ? comments : 'No') + ' comments', 
		'like' : (likes > 0 ? likes : 'No') + ' persons', 
		'onclickPlus' : clickComments, 
		'itemIdPlus' : itemId,
		'onclickComment' : clickComments, 
		'itemIdComment' : itemId,
		'onclickLike' : clickComments,
		'itemIdLike' : itemId
	});
	return comments;
}

function CreateImageSlider(images, index) {
	var template = GetTemplateByCode('ImageSlider');

	for (var i = 0; i < images.length; i++) {
		template.append(images[i]);
	}
	template.attr('index', index);
	
	var ts = function(event) {
		event.preventDefault();
		var touches = event.originalEvent.touches;
		if (touches && touches.length && touches.length > 0) {
			$(this).attr('posX', touches[0].pageX);
			$(this).attr('posY', touches[0].pageY);
			$(this).attr('toPosX', touches[0].pageX);
			$(this).attr('toPosY', touches[0].pageY);
		}
	};
	var tm = function(event) {
		event.preventDefault();
		var touches = event.originalEvent.touches;
		if (touches && touches.length && touches.length > 0) {
			$(this).attr('toPosX', touches[0].pageX);
			$(this).attr('toPosY', touches[0].pageY);
			
			var posX = parseInt($(this).attr('posX'));
			var posY = parseInt($(this).attr('posY'));
			var toPosX = parseInt($(this).attr('toPosX'));
			var toPosY = parseInt($(this).attr('toPosY'));
		}
	};
	var te = function(event) {
		event.preventDefault();
		var posX = parseInt($(this).attr('posX'));
		var posY = parseInt($(this).attr('posY'));
		var toPosX = parseInt($(this).attr('toPosX'));
		var toPosY = parseInt($(this).attr('toPosY'));
		$(this).attr('posX', null);
		$(this).attr('posY', null);
		$(this).attr('toPosX', null);
		$(this).attr('toPosY', null);
		
		var treshholdX = 40;
		var treshholdY = 40;
		var deltaX = toPosX - posX;
		var deltaY = toPosY - posY;
		var moveX = Math.abs(deltaX) < treshholdX ? 0 : Math.abs(deltaX) / deltaX;
		var moveY = Math.abs(deltaY) < treshholdY ? 0 : Math.abs(deltaX) / deltaX;

		var images = $(this).children('div');
		var imgCount = images.size();
		var imgWidth = images.eq(0).outerWidth();
		var shift = 0;//imgWidth / 2;
		
		var index = parseInt($(this).attr('index'));
		index = index ? index : 0;

		var newIndex = index - moveX;
		if (newIndex < 0) { newIndex = 0; }
		if (newIndex >= imgCount) { newIndex = imgCount - 1; }
		$(this).attr('index', newIndex);
		
		
		$(this).children('div').css({
			'-webkit-transform' : 'translate3d(-'+(newIndex * imgWidth + shift)+'px, 0px, 0px)',
			'-webkit-transition' : '-webkit-transform 400ms ease-in-out'
		});

	};
	template.bind('touchstart', ts);
	template.bind('touchmove', tm);
	template.bind('touchend', te);

	return template;
}

function CreateImagePager(images, index, onchange) {
	var template = GetTemplateByCode('ImagePager');

	for (var i = 0; i < images.length; i++) {
		template.append(images[i]);
	}
	template.attr('index', index);
	template.change(onchange);
	
	var ts = function(event) {
		event.preventDefault();
		var touches = event.originalEvent.touches;
		if (touches && touches.length && touches.length > 0) {
			$(this).attr('posX', touches[0].pageX);
			$(this).attr('posY', touches[0].pageY);
			$(this).attr('toPosX', touches[0].pageX);
			$(this).attr('toPosY', touches[0].pageY);
		}
	};
	var tm = function(event) {
		event.preventDefault();
		var touches = event.originalEvent.touches;
		if (touches && touches.length && touches.length > 0) {
			$(this).attr('toPosX', touches[0].pageX);
			$(this).attr('toPosY', touches[0].pageY);
			
			var posX = parseInt($(this).attr('posX'));
			var posY = parseInt($(this).attr('posY'));
			var toPosX = parseInt($(this).attr('toPosX'));
			var toPosY = parseInt($(this).attr('toPosY'));
		}
	};
	var te = function(event) {
		event.preventDefault();
		var posX = parseInt($(this).attr('posX'));
		var posY = parseInt($(this).attr('posY'));
		var toPosX = parseInt($(this).attr('toPosX'));
		var toPosY = parseInt($(this).attr('toPosY'));
		$(this).attr('posX', null);
		$(this).attr('posY', null);
		$(this).attr('toPosX', null);
		$(this).attr('toPosY', null);
		
		var treshholdX = 40;
		var treshholdY = 40;
		var deltaX = toPosX - posX;
		var deltaY = toPosY - posY;
		var moveX = Math.abs(deltaX) < treshholdX ? 0 : Math.abs(deltaX) / deltaX;
		var moveY = Math.abs(deltaY) < treshholdY ? 0 : Math.abs(deltaX) / deltaX;

		var images = $(this).children('div');
		var imgCount = images.size();
		var imgWidth = images.eq(0).outerWidth();
		
		var index = parseInt($(this).attr('index'));
		index = index ? index : 0;

		var newIndex = index - moveX;
		if (newIndex < 0) { newIndex = 0; }
		if (newIndex >= imgCount) { newIndex = imgCount - 1; }
		$(this).attr('index', newIndex);
		
		$(this).children('div').css({
			'-webkit-transform' : 'translate3d(-'+(newIndex * imgWidth)+'px, 0px, 0px)',
			'-webkit-transition' : '-webkit-transform 400ms ease-in-out'
		});

		if (newIndex != index) { template.trigger('change'); }
	};
	template.bind('touchstart', ts);
	template.bind('touchmove', tm);
	template.bind('touchend', te);
	
	
	return template;
}

function CreateBlockSlider(objs, data) {
	if (!data) { data = {}; }
	var imgStyle = data.imgStyle ? data.imgStyle : 'imageH w shadePic1 framePic2';
	var images = [];
	for (var i = 0; i < objs.length; i++) {
		var obj = objs[i];
		images.push($('<div></div>').append(CreateInlineImage({ 
			'className' : imgStyle, 
			'data' : obj.IMAGE_URL, 
			'onclick' : data.onclick, 
			'itemId' : i.toString() 
		})));
	}
	return CreateImageSlider(images, data.index ? data.index : 0);
}

function CreateBlockGallery(objs, data) {
	var template = GetTemplateByCode('ImageGallery');

	if (!data) { data = {}; }
	var imgStyle = data.imgStyle ? data.imgStyle : 'imageH w shadePic1 framePic2';
	var images = [];
	for (var i = 0; i < objs.length; i++) {
		var obj = objs[i];
		images.push($('<div></div>').append(CreateInlineImage({ 
			'className' : imgStyle, 
			'data' : obj.IMAGE_URL, 
			'onclick' : data.onclick, 
			'itemId' : i.toString() 
		})));
	}

	for (var i = 0; i < images.length; i++) {
		template.append(images[i]);
	}
		
	return template;
}

function CreateBlockPager(objs, data) {
	if (!data) { data = {}; }
	var imgStyle = data.imgStyle ? data.imgStyle : 'imageI';
	var images = [];
	for (var i = 0; i < objs.length; i++) {
		var obj = objs[i];
		images.push(CreateInlineImage({ 
			'className' : imgStyle, 
			'data' : obj.IMAGE_URL, 
			'onclick' : data.onclick, 
			'itemId' : i.toString() 
		}));
	}
	return CreateImagePager(images, data.index ? data.index : 0, data.onchange);
}

function CreateFloatPanel(data) {
	var template = GetTemplateByCode('FloatPanel');
	if (!data) { data = {}; }

	if (data.className) { template.addClass(data.className); }
	if (data.text) { template.find('[val=text]').html(data.text); }
	if (data.subtext) { template.find('[val=subtext]').html(data.subtext); }
	if (data.onclickL) { /*SetClickable(template.find('[val=l]'), data.onclickL);*/ template.find('[val=l]').click(data.onclickL); }
	if (data.itemIdL) { template.find('[val=l]').attr('itemId', data.itemIdL); }
	if (data.onclickR) { /*SetClickable(template.find('[val=r]'), data.onclickR);*/ template.find('[val=r]').click(data.onclickR); }
	if (data.itemIdR) { template.find('[val=r]').attr('itemId', data.itemIdR); }
	
	
	return template;
}


function CreateVideo(data) {
	var template = GetTemplateByCode('Video');
	if (!data) { data = {}; }

	if (data.className) { template.addClass(data.className); }
	if (data.video) { template.attr('src', data.video); }
	
	return template;
}

