text:
/*

Jappix - An open social platform
These are the microblog JS scripts for Jappix

-------------------------------------------------

License: AGPL
Author: Valérian Saliou
Last revision: 18/06/11

*/

// Completes arrays of an entry's attached files
function attachedMicroblog(selector, tFName, tFURL, tFThumb, tFSource, tFType, tFLength, tFEComments, tFNComments) {
	if($(selector).attr('title'))
		tFName.push($(selector).attr('title'));
	else
		tFName.push('');

	if($(selector).attr('href'))
		tFURL.push($(selector).attr('href'));
	else
		tFURL.push('');

	if($(selector).find('link[rel=self][title=thumb]:first').attr('href'))
		tFThumb.push($(selector).find('link[rel=self][title=thumb]:first').attr('href'));
	else
		tFThumb.push('');

	if($(selector).attr('source'))
		tFSource.push($(selector).attr('source'));
	else
		tFSource.push('');

	if($(selector).attr('type'))
		tFType.push($(selector).attr('type'));
	else
		tFType.push('');

	if($(selector).attr('length'))
		tFLength.push($(selector).attr('length'));
	else
		tFLength.push('');

	// Comments?
	var comments_href_c = $(selector).find('link[rel=replies][title=comments_file]:first').attr('href');

	if(comments_href_c && comments_href_c.match(/^xmpp:(.+)\?;node=(.+)/)) {
		tFEComments.push(RegExp.$1);
		tFNComments.push(decodeURIComponent(RegExp.$2));
	}

	else {
		tFEComments.push('');
		tFNComments.push('');
	}
}

// Displays a given microblog item
function displayMicroblog(packet, from, hash, mode, way) {
	// Get some values
	var iParse = $(packet.getNode()).find('items item');

	iParse.each(function() {
		// Initialize
		var tTitle, tFiltered, tTime, tDate, tStamp, tBody, tName, tID, tHash, tIndividual, tFEClick;

		// Arrays
		var tFName = [];
		var tFURL = [];
		var tFThumb = [];
		var tFSource = [];
		var tFType = [];
		var tFLength = [];
		var tFEComments = [];
		var tFNComments = [];
		var aFURL = [];
		var aFCat = [];

		// Get the values
		tDate = $(this).find('published').text();
		tBody = $(this).find('body').text();
		tID = $(this).attr('id');
		tName = getBuddyName(from);
		tHash = 'update-' + hex_md5(tName + tDate + tID);

		// Read attached files with a thumb (place them at first)
		$(this).find('link[rel=enclosure]:has(link[rel=self][title=thumb])').each(function() {
			attachedMicroblog(this, tFName, tFURL, tFThumb, tFSource, tFType, tFLength, tFEComments, tFNComments);
		});

		// Read attached files without any thumb
		$(this).find('link[rel=enclosure]:not(:has(link[rel=self][title=thumb]))').each(function() {
			attachedMicroblog(this, tFName, tFURL, tFThumb, tFSource, tFType, tFLength, tFEComments, tFNComments);
		});

		// Get the repeat value
		var uRepeat = [$(this).find('source author name').text(), explodeThis(':', $(this).find('source author uri').text(), 1)];
		var uRepeated = false;

		if(!uRepeat[0])
			uRepeat = [getBuddyName(from), uRepeat[1]];
		if(!uRepeat[1])
			uRepeat = [uRepeat[0], from];

		// Repeated?
		if(uRepeat[1] != from)
			uRepeated = true;

		// Get the comments node
		var entityComments, nodeComments;

		// Get the comments
		var comments_href = $(this).find('link[title=comments]:first').attr('href');

		if(comments_href && comments_href.match(/^xmpp:(.+)\?;node=(.+)/)) {
			entityComments = RegExp.$1;
			nodeComments = decodeURIComponent(RegExp.$2);
		}

		// No comments node?
		if(!entityComments || !nodeComments) {
			entityComments = '';
			nodeComments = '';
		}

		// Get the stamp & time
		if(tDate) {
			tStamp = extractStamp(Date.jab2date(tDate));
			tTime = parseDate(tDate);
		}

		else {
			tStamp = getTimeStamp();
			tTime = '';
		}

		// Get the item geoloc
		var tGeoloc = '';
		var sGeoloc = $(this).find('geoloc[xmlns=' + NS_GEOLOC + ']:first');
		var gLat = sGeoloc.find('lat').text();
		var gLon = sGeoloc.find('lon').text();

		if(gLat && gLon) {
			tGeoloc += '';

			// Human-readable name?
			var gHuman = humanPosition(
		                           sGeoloc.find('locality').text(),
		                           sGeoloc.find('region').text(),
		                           sGeoloc.find('country').text()
		                          );

			if(gHuman)
				tGeoloc += gHuman.htmlEnc();
			else
				tGeoloc += gLat.htmlEnc() + '; ' + gLon.htmlEnc();

			tGeoloc += '';
		}

		// Retrieve the message body
		tTitle = $(this).find('content[type=text]').text();

		if(!tTitle) {
			// Legacy?
			tTitle = $(this).find('title:not(source > title)').text();

			// Last chance?
			if(!tTitle)
				tTitle = tBody;
		}

		// Trim the content
		tTitle = trim(tTitle);

		// Any content?
		if(tTitle) {
			// Apply links to message body
			tFiltered = filterThisMessage(tTitle, tName.htmlEnc(), true);

			// Display the received message
			var html = '
' +
					'
' +
						'
' +
							'' +
						'
' +
					'
' +

					'
' +
						'
';

			// Is it a repeat?
			if(uRepeated)
				html += '';

			html += '' + tName.htmlEnc() + ' ' + tFiltered + '
' +
				'
' + tTime + tGeoloc + '
';

			// Any file to display?
			if(tFURL.length)
				html += '
';

			// Generate an array of the files URL
			for(var a = 0; a < tFURL.length; a++) {
				// Not enough data?
				if(!tFURL[a])
					continue;

				// Push the current URL! (YouTube or file)
				if(tFURL[a].match(/(\w{3,5})(:)(\S+)((\.youtube\.com\/watch(\?v|\?\S+v|\#\!v|\#\!\S+v)\=)|(youtu\.be\/))([^& ]+)((&\S)|(&\S)|\s|$)/gim)) {
					aFURL.push(trim(RegExp.$8));
					aFCat.push('youtube');
				}

				else if(canIntegrateBox(explodeThis('/', tFType[a], 1))) {
					aFURL.push(tFURL[a]);
					aFCat.push(fileCategory(explodeThis('/', tFType[a], 1)));
				}
			}

			// Add each file code
			for(var f = 0; f < tFURL.length; f++) {
				// Not enough data?
				if(!tFURL[f])
					continue;

				// Get the file type
				var tFExt = explodeThis('/', tFType[f], 1);
				var tFCat = fileCategory(tFExt);
				var tFLink = tFURL[f];

				// Youtube video?
				if(tFLink.match(/(\w{3,5})(:)(\S+)((\.youtube\.com\/watch(\?v|\?\S+v|\#\!v|\#\!\S+v)\=)|(youtu\.be\/))([^& ]+)((&\S)|(&\S)|\s|$)/gim)) {
					tFLink = trim(RegExp.$8);
					tFCat = 'youtube';
				}

				// Supported image/video/sound
				if(canIntegrateBox(tFExt) || (tFCat == 'youtube'))
					tFEClick = 'onclick="return applyIntegrateBox(\'' + encodeOnclick(tFLink) + '\', \'' + encodeOnclick(tFCat) + '\', \'' + encodeOnclick(aFURL) + '\', \'' + encodeOnclick(aFCat) + '\', \'' + encodeOnclick(tFEComments) + '\', \'' + encodeOnclick(tFNComments) + '\', \'large\');" ';
				else
					tFEClick = '';

				// Any thumbnail?
				if(tFThumb[f])
					html += '';
				else
					html += '' + tFName[f].htmlEnc() + '';
			}

			if(tFURL.length)
				html += '
';

			// It's my own notice, we can remove it!
			if(from == getXID())
				html += '';

			// Notice from another user
			else {
				// User profile
				html += '';

				// If PEP is enabled
				if(enabledPEP())
					html += '';
			}

			html += '

';

			// Mixed mode
			if((mode == 'mixed') && !exists('.mixed .' + tHash)) {
				// Remove the old element
				if(way == 'push')
					$('#channel .content.mixed .one-update.update_' + hash).remove();

				// Get the nearest element
				var nearest = sortElementByStamp(tStamp, '#channel .mixed .one-update');

				// Append the content at the right position (date relative)
				if(nearest == 0)
					$('#channel .content.mixed').append(html);
				else
					$('#channel .one-update[data-stamp=' + nearest + ']:first').before(html);

				// Show the new item
				if(way == 'push')
					$('#channel .content.mixed .one-update.' + tHash).fadeIn('fast');
				else
					$('#channel .content.mixed .one-update.' + tHash).show();

				// Remove the old notices to make the DOM lighter
				var oneUpdate = '#channel .content.mixed .one-update';

				if($(oneUpdate).size() > 80)
					$(oneUpdate + ':last').remove();

				// Click event on avatar/name
				$('.mixed .' + tHash + ' .avatar-container, .mixed .' + tHash + ' .body b').click(function() {
					getMicroblog(from, hash);
				});
			}

			// Individual mode
			tIndividual = '#channel .content.individual.microblog-' + hash;

			// Can append individual content?
			var can_individual = true;

			if($('#channel .top.individual input[name=comments]').val() && exists(tIndividual + ' .one-update'))
				can_individual = false;

			if(can_individual && exists(tIndividual) && !exists('.individual .' + tHash)) {
				if(mode == 'mixed')
					$(tIndividual).prepend(html);
				else
					$(tIndividual + ' a.more').before(html);

				// Show the new item
				if(way == 'push')
					$('#channel .content.individual .one-update.' + tHash).fadeIn('fast');
				else
					$('#channel .content.individual .one-update.' + tHash).show();

				// Make 'more' link visible
				$(tIndividual + ' a.more').css('visibility', 'visible');

				// Click event on name (if not me!)
				if(from != getXID())
					$('.individual .' + tHash + ' .avatar-container, .individual .' + tHash + ' .body b').click(function() {
						checkChatCreate(from, 'chat');
					});
			}

			// Apply the click event
			$('.' + tHash + ' a.repost:not([data-event=true])').click(function() {
				return publishMicroblog(tTitle, tFName, tFURL, tFType, tFLength, tFThumb, uRepeat, entityComments, nodeComments, tFEComments, tFNComments);
			})

			.attr('data-event', 'true');

			// Apply the hover event
			if(nodeComments)
				$('.' + mode + ' .' + tHash).hover(function() {
					showCommentsMicroblog($(this), entityComments, nodeComments, tHash);
				}, function() {
					if($(this).find('div.comments a.one-comment.loading').size())
						$(this).find('div.comments').remove();
				});
		}
	});

	// Display the avatar of this buddy
	getAvatar(from, 'cache', 'true', 'forget');
}

// Removes a given microblog item
function removeMicroblog(id, hash) {
	/* REF: http://xmpp.org/extensions/xep-0060.html#publisher-delete */

	// Initialize
	var selector = $('.' + hash);
	var get_last = false;

	// Get the latest item for the mixed mode
	if(exists('#channel .content.mixed .' + hash))
		get_last = true;

	// Remove the item from our DOM
	selector.fadeOut('fast', function() {
		$(this).remove();
	});

	// Send the IQ to remove the item (and get eventual error callback)
	var iq = new JSJaCIQ();
	iq.setType('set');

	var pubsub = iq.appendNode('pubsub', {'xmlns': NS_PUBSUB});
	var retract = pubsub.appendChild(iq.buildNode('retract', {'node': NS_URN_MBLOG, 'xmlns': NS_PUBSUB}));
	retract.appendChild(iq.buildNode('item', {'id': id, 'xmlns': NS_PUBSUB}));

	if(get_last)
		con.send(iq, handleRemoveMicroblog);
	else
		con.send(iq, handleErrorReply);

	return false;
}

// Handles the microblog item removal
function handleRemoveMicroblog(iq) {
	// Handle the error reply
	handleErrorReply(iq);

	// Get the latest item
	requestMicroblog(getXID(), '1', false, handleUpdateRemoveMicroblog);
}

// Handles the microblog update
function handleUpdateRemoveMicroblog(iq) {
	// Error?
	if(iq.getType() == 'error')
		return;

	// Initialize
	var xid = bareXID(getStanzaFrom(iq));
	var hash = hex_md5(xid);

	// Display the item!
	displayMicroblog(iq, xid, hash, 'mixed', 'push');
}

// Gets a given microblog comments node
function getCommentsMicroblog(server, node, id) {
	/* REF: http://xmpp.org/extensions/xep-0060.html#subscriber-retrieve-requestall */

	var iq = new JSJaCIQ();
	iq.setType('get');
	iq.setID('get_' + genID() + '-' + id);
	iq.setTo(server);

	var pubsub = iq.appendNode('pubsub', {'xmlns': NS_PUBSUB});
	pubsub.appendChild(iq.buildNode('items', {'node': node, 'xmlns': NS_PUBSUB}));

	con.send(iq, handleCommentsMicroblog);

	return false;
}

// Handles a microblog comments node items
function handleCommentsMicroblog(iq) {
	// Path
	var id = explodeThis('-', iq.getID(), 1);
	var path = 'div.comments[data-id=' + id + '] div.comments-content';

	// Does not exist?
	if(!exists(path))
		return false;

	// Any error?
	if(handleErrorReply(iq)) {
		$(path).html('
' + _e("Could not get the comments!") + '
');

		return false;
	}

	// Initialize
	var data = iq.getNode();
	var server = bareXID(getStanzaFrom(iq));
	var node = $(data).find('items:first').attr('node');
	var users_xid = [];
	var code = '';

	// No node?
	if(!node)
		node = $(data).find('publish:first').attr('node');

	// Get the parent microblog item
	var parent_select = $('#channel .one-update:has(*[data-node=' + node + '])');
	var parent_data = [parent_select.attr('data-xid'), NS_URN_MBLOG, parent_select.attr('data-id')];

	// Get the owner XID
	var owner_xid = parent_select.attr('data-xid');

	// Must we create the complete DOM?
	var complete = true;

	if($(path).find('.one-comment.compose').size())
		complete = false;

	// Add the comment tool
	if(complete)
		code += '
' +
				'<input type="text" placeholder="' + _e("Type your comment here...") + '" />' +
			'
';

	// Append the comments
	$(data).find('item').each(function() {
		// Get comment
		var current_id = $(this).attr('id');
		var current_xid = explodeThis(':', $(this).find('source author uri').text(), 1);
		var current_name = $(this).find('source author name').text();
		var current_date = $(this).find('published').text();
		var current_body = $(this).find('content[type=text]').text();
		var current_bname = getBuddyName(current_xid);

		// Legacy?
		if(!current_body)
			current_body = $(this).find('title:not(source > title)').text();

		// Yet displayed? (continue the loop)
		if($(path).find('.one-comment[data-id=' + current_id + ']').size())
			return;

		// No XID?
		if(!current_xid) {
			current_xid = '';

			if(!current_name)
				current_name = _e("unknown");
		}

		else if(!current_name || (current_bname != getXIDNick(current_xid)))
			current_name = current_bname;

		// Any date?
		if(current_date)
			current_date = relativeDate(current_date);
		else
			current_date = getCompleteTime();

		// Click event
		var onclick = 'false';

		if(current_xid != getXID())
			onclick = 'checkChatCreate(\'' + encodeOnclick(current_xid) + '\', \'chat\')';

		// If this is my comment, add a marker
		var type = 'him';
		var marker = '';
		var remove = '';

		if(current_xid == getXID()) {
			type = 'me';
			marker = '

';
			remove = '' + _e("Remove") + '';
		}

		// New comment?
		var new_class = '';

		if(!complete)
			new_class = ' new';

		// Add the comment
		if(current_body) {
			// Add the XID
			if(!existArrayValue(users_xid, current_xid))
				users_xid.push(current_xid);

			// Add the HTML code
			code += '
' +
					marker +

					'
' +
						'' +
					'
' +

					'
' +
						'' + current_name.htmlEnc() + '' +
						'' + current_date.htmlEnc() + '' +
						remove +

						'
' + filterThisMessage(current_body, current_name, true) + '
' +
					'
' +

					'

' +
				'
';
		}
	});

	// Add the HTML
	if(complete) {
		$(path).html(code);

		// Focus on the compose input
		$(document).oneTime(10, function() {
			$(path).find('.one-comment.compose input').focus();
		});
	}

	else {
		$(path).find('.one-comment.compose').after(code);

		// Beautiful effect
		$(path).find('.one-comment.new').slideDown('fast', function() {
			adaptCommentMicroblog(id);
		}).removeClass('new');
	}

	// Set the good widths
	adaptCommentMicroblog(id);

	// Get the avatars
	for(a in users_xid)
		getAvatar(users_xid[a], 'cache', 'true', 'forget');

	// Add the owner XID
	if(owner_xid && owner_xid.match('@') && !existArrayValue(users_xid, owner_xid))
		users_xid.push(owner_xid);

	// Remove my own XID
	removeArrayValue(users_xid, getXID());

	// DOM events
	if(complete) {
		// Update timer
		$(path).everyTime('60s', function() {
			getCommentsMicroblog(server, node, id);

			logThis('Updating comments node: ' + node + ' on ' + server + '...');
		});

		// Input key event
		$(path).find('.one-comment.compose input').placeholder()
			             .keyup(function(e) {
			             		if((e.keyCode == 13) && $(this).val()) {
			             			// Send the comment!
			             			sendCommentMicroblog($(this).val(), server, node, id, users_xid, parent_data);

			             			// Reset the input value
			             			$(this).val('');

			             			return false;
			             		}
			             });
	}
}

// Shows the microblog comments box
function showCommentsMicroblog(path, entityComments, nodeComments, tHash) {
	// Do not display it twice!
	if(path.find('div.comments').size())
		return;

	// Generate an unique ID
	var idComments = genID();

	// Create comments container
	path.find('div.comments-container').append(
		'
' +
			'

' +
			'
' +
				'' + _e("Show comments") + '' +
			'
' +
		'
'
	);

	// Click event
	path.find('div.comments a.one-comment').click(function() {
		// Set loading info
		$(this).parent().html('
' + _e("Loading comments...") + '
');

		// Request comments
		getCommentsMicroblog(entityComments, nodeComments, idComments);

		// Remove the comments from the DOM if click away
		if(tHash) {
			$('#channel').die('click');

			$('#channel').live('click', function(evt) {
				if(!$(evt.target).parents('.' + tHash).size()) {
					$('#channel').die('click');
					$('#channel .one-update div.comments-content').stopTime();
					$('#channel .one-update div.comments').remove();
				}
			});
		}

		return false;
	});
}

// Sends a comment on a given microblog comments node
function sendCommentMicroblog(value, server, node, id, notifiy_arr, parent_data) {
	/* REF: http://xmpp.org/extensions/xep-0060.html#publisher-publish */

	// Not enough data?
	if(!value || !server || !node)
		return false;

	// Get some values
	var date = getXMPPTime('utc');
	var hash = hex_md5(value + date);

	// New IQ
	var iq = new JSJaCIQ();
	iq.setType('set');
	iq.setTo(server);
	iq.setID('set_' + genID() + '-' + id);

	// PubSub main elements
	var pubsub = iq.appendNode('pubsub', {'xmlns': NS_PUBSUB});
	var publish = pubsub.appendChild(iq.buildNode('publish', {'node': node, 'xmlns': NS_PUBSUB}));
	var item = publish.appendChild(iq.buildNode('item', {'id': hash, 'xmlns': NS_PUBSUB}));
	var entry = item.appendChild(iq.buildNode('entry', {'xmlns': NS_ATOM}));

	// Author infos
	var Source = entry.appendChild(iq.buildNode('source', {'xmlns': NS_ATOM}));
	var author = Source.appendChild(iq.buildNode('author', {'xmlns': NS_ATOM}));
	author.appendChild(iq.buildNode('name', {'xmlns': NS_ATOM}, getName()));
	author.appendChild(iq.buildNode('uri', {'xmlns': NS_ATOM}, 'xmpp:' + getXID()));

	// Create the comment
	entry.appendChild(iq.buildNode('content', {'type': 'text', 'xmlns': NS_ATOM}, value));
	entry.appendChild(iq.buildNode('published', {'xmlns': NS_ATOM}, date));

	con.send(iq);

	// Handle this comment!
	iq.setFrom(server);
	handleCommentsMicroblog(iq);

	// Notify users
	if(notifiy_arr && notifiy_arr.length) {
		// XMPP link to the item
		var href = 'xmpp:' + server + '?;node=' + encodeURIComponent(node) + ';item=' + encodeURIComponent(hash);

		// Loop!
		for(n in notifiy_arr)
			sendNotification(notifiy_arr[n], 'comment', href, value, parent_data);
	}

	return false;
}

// Removes a given microblog comment item
function removeCommentMicroblog(server, node, id) {
	/* REF: http://xmpp.org/extensions/xep-0060.html#publisher-delete */

	// Remove the item from our DOM
	$('.one-comment[data-id=' + id + ']').slideUp('fast', function() {
		// Get the parent ID
		var parent_id = $(this).parents('div.comments').attr('data-id');

		// Remove it!
		$(this).remove();

		// Adapt the width
		adaptCommentMicroblog(parent_id);
	});

	// Send the IQ to remove the item (and get eventual error callback)
	var iq = new JSJaCIQ();
	iq.setType('set');
	iq.setTo(server);

	var pubsub = iq.appendNode('pubsub', {'xmlns': NS_PUBSUB});
	var retract = pubsub.appendChild(iq.buildNode('retract', {'node': node, 'xmlns': NS_PUBSUB}));
	retract.appendChild(iq.buildNode('item', {'id': id, 'xmlns': NS_PUBSUB}));

	con.send(iq);

	return false;
}

// Adapts the comment elements width
function adaptCommentMicroblog(id) {
	var selector = $('div.comments[data-id=' + id + '] div.comments-content');
	var selector_width = selector.width();

	// Change widths
	selector.find('.one-comment.compose input').css('width', selector_width - 60);
	selector.find('.one-comment .comment-container').css('width', selector_width - 55);
}

// Handles the microblog of an user
function handleMicroblog(iq) {
	// Get the from attribute of this IQ
	var from = bareXID(getStanzaFrom(iq));

	// Define the selector path
	var selector = '#channel .top.individual input[name=';

	// Is this request still alive?
	if(from == $(selector + 'jid]').val()) {
		var hash = hex_md5(from);

		// Update the items counter
		var old_count = parseInt($(selector + 'counter]').val());
		$(selector + 'counter]').val(old_count + 20);

		// Display the microblog
		displayMicroblog(iq, from, hash, 'individual', 'request');

		// Hide the waiting icon
		if(enabledPEP())
			waitMicroblog('sync');
		else
			waitMicroblog('unsync');

		// Hide the 'more items' link?
		if($(iq.getNode()).find('item').size() < old_count)
			$('#channel .individual a.more').remove();

		// Get the comments?
		var comments_node = $('#channel .top.individual input[name=comments]').val();

		if(comments_node && comments_node.match(/^xmpp:(.+)\?;node=(.+);item=(.+)/)) {
			// Get the values
			var comments_entity = RegExp.$1;
			comments_node = decodeURIComponent(RegExp.$2);

			// Selectors
			var file_link = $('#channel .individual .one-update p.file a[data-node=' + comments_node + ']');
			var entry_link = $('#channel .individual .one-update:has(*[data-node=' + comments_node + '])');

			// Is it a file?
			if(file_link.size())
				file_link.click();

			// Is it a microblog entry?
			else if(entry_link.size()) {
				showCommentsMicroblog(entry_link, comments_entity, comments_node);
				entry_link.find('a.one-comment').click();
			}
		}
	}

	logThis('Microblog got: ' + from, 3);
}

// Resets the microblog elements
function resetMicroblog() {
	// Reset everything
	$('#channel .individual .one-update div.comments-content').stopTime();
	$('#channel .individual').remove();
	$('#channel .mixed').show();

	// Hide the waiting icon
	if(enabledPEP())
		waitMicroblog('sync');
	else
		waitMicroblog('unsync');

	return false;
}

// Gets the user's microblog to check it exists
function getInitMicroblog() {
	getMicroblog(getXID(), hex_md5(getXID()), true);
}

// Handles the user's microblog to create it in case of error
function handleInitMicroblog(iq) {
	// Any error?
	if((iq.getType() == 'error') && $(iq.getNode()).find('item-not-found').size()) {
		// The node may not exist, create it!
		setupMicroblog('', NS_URN_MBLOG, '1', '1000000', '', '', true);

		logThis('Error while getting microblog, trying to reconfigure the Pubsub node!', 2);
	}
}

// Requests an user's microblog
function requestMicroblog(xid, items, get_item, handler) {
	// Ask the server the user's microblog
	var iq = new JSJaCIQ();
	iq.setType('get');
	iq.setTo(xid);

	var pubsub = iq.appendNode('pubsub', {'xmlns': NS_PUBSUB});
	var ps_items = pubsub.appendChild(iq.buildNode('items', {'node': NS_URN_MBLOG, 'xmlns': NS_PUBSUB}));

	// Request a particular item?
	if(get_item)
		ps_items.appendChild(iq.buildNode('item', {'id': get_item, 'xmlns': NS_PUBSUB}));
	else
		ps_items.setAttribute('max_items', items);

	if(handler)
		con.send(iq, handler);
	else
		con.send(iq, handleMicroblog);

	return false;
}

// Gets the microblog of an user
function getMicroblog(xid, hash, check) {
	/* REF: http://xmpp.org/extensions/xep-0060.html#subscriber-retrieve */

	logThis('Get the microblog: ' + xid, 3);

	// Fire the wait event
	waitMicroblog('fetch');

	// XMPP URI?
	var get_item = '';

	if(xid.match(/^xmpp:(.+)\?;node=(.+);item=(.+)/)) {
		xid = RegExp.$1;
		get_item = decodeURIComponent(RegExp.$3);
	}

	// No hash?
	if(!hash)
		hash = hex_md5(xid);

	// Can display the individual channel?
	if(!check && !exists('#channel .individual')) {
		// Hide the mixed channel
		$('#channel .mixed').hide();

		// Get the channel title depending on the XID
		var cTitle;
		var cShortcuts = '';

		if(xid == getXID())
			cTitle = _e("Your channel");
		else {
			cTitle = _e("Channel of") + ' ' + getBuddyName(xid).htmlEnc();
			cShortcuts = '
' +
						'' +
						'' +
						'' +
						'' +
			             '
';
		}

		// Create a new individual channel
		$('#channel .content.mixed').after(
				'
' +
					'' + _e("More notices...") + '' +
				'
'
						 )

					   .before(
				'
' +
					'
' +
						'' +
					'
' +

					'
' +
						'
' + cTitle + '
' +
						'« ' + _e("Previous") + '' +
					'
' +

					cShortcuts +

					'<input type="hidden" name="jid" value="' + encodeQuotes(xid) + '" />' +
					'<input type="hidden" name="counter" value="20" />' +
				'
'
						 );

		// Display the user avatar
		getAvatar(xid, 'cache', 'true', 'forget');
	}

	// Get the number of items to retrieve
	var items = '0';

	if(!check)
		items = $('#channel .top.individual input[name=counter]').val();

	// Request
	if(check)
		requestMicroblog(xid, items, get_item, handleInitMicroblog);
	else
		requestMicroblog(xid, items, get_item, handleMicroblog);
}

// Show a given microblog waiting status
function waitMicroblog(type) {
	// First hide all the infos elements
	$('#channel .footer div').hide();

	// Display the good one
	$('#channel .footer div.' + type).show();

	// Depending on the type, disable/enable certain tools
	var selector = $('#channel .top input[name=microblog_body]');

	if(type == 'unsync')
		selector.attr('disabled', true);
	else if(type == 'sync')
		$(document).oneTime(10, function() {
			selector.removeAttr('disabled').focus();
		});
}

// Setups a new microblog
function setupMicroblog(entity, node, persist, maximum, access, publish, create) {
	/* REF: http://xmpp.org/extensions/xep-0060.html#owner-create-and-configure */

	// Create the PubSub node
	var iq = new JSJaCIQ();
	iq.setType('set');

	// Any external entity?
	if(entity)
		iq.setTo(entity);

	// Create it?
	if(create) {
		var pubsub = iq.appendNode('pubsub', {'xmlns': NS_PUBSUB});
		pubsub.appendChild(iq.buildNode('create', {'xmlns': NS_PUBSUB, 'node': node}));
	}

	else
		var pubsub = iq.appendNode('pubsub', {'xmlns': NS_PUBSUB_OWNER});

	// Configure it!
	var configure = pubsub.appendChild(iq.buildNode('configure', {'node': node, 'xmlns': NS_PUBSUB}));
	var x = configure.appendChild(iq.buildNode('x', {'xmlns': NS_XDATA, 'type': 'submit'}));

	var field1 = x.appendChild(iq.buildNode('field', {'var': 'FORM_TYPE', 'type': 'hidden', 'xmlns': NS_XDATA}));
	field1.appendChild(iq.buildNode('value', {'xmlns': NS_XDATA}, NS_PUBSUB_NC));

	// Persist items?
	if(persist) {
		var field2 = x.appendChild(iq.buildNode('field', {'var': 'pubsub#persist_items', 'xmlns': NS_XDATA}));
		field2.appendChild(iq.buildNode('value', {'xmlns': NS_XDATA}, persist));
	}

	// Maximum items?
	if(maximum) {
		var field3 = x.appendChild(iq.buildNode('field', {'var': 'pubsub#max_items', 'xmlns': NS_XDATA}));
		field3.appendChild(iq.buildNode('value', {'xmlns': NS_XDATA}, maximum));
	}

	// Access rights?
	if(access) {
		var field4 = x.appendChild(iq.buildNode('field', {'var': 'pubsub#access_model', 'xmlns': NS_XDATA}));
		field4.appendChild(iq.buildNode('value', {'xmlns': NS_XDATA}, access));
	}

	// Publish rights?
	if(publish) {
		var field5 = x.appendChild(iq.buildNode('field', {'var': 'pubsub#publish_model', 'xmlns': NS_XDATA}));
		field5.appendChild(iq.buildNode('value', {'xmlns': NS_XDATA}, publish));
	}

	con.send(iq);
}

// Gets the microblog configuration
function getConfigMicroblog() {
	// Lock the microblog options
	$('#persistent, #maxnotices').attr('disabled', true);

	// Get the microblog configuration
	var iq = new JSJaCIQ();
	iq.setType('get');

	var pubsub = iq.appendNode('pubsub', {'xmlns': NS_PUBSUB_OWNER});
	pubsub.appendChild(iq.buildNode('configure', {'node': NS_URN_MBLOG, 'xmlns': NS_PUBSUB_OWNER}));

	con.send(iq, handleGetConfigMicroblog);
}

// Handles the microblog configuration
function handleGetConfigMicroblog(iq) {
	// Reset the options stuffs
	waitOptions('microblog');

	// Unlock the microblog options
	$('#persistent, #maxnotices').removeAttr('disabled');

	// End if not a result
	if(!iq || (iq.getType() != 'result'))
		return;

	// Initialize the values
	var selector = $(iq.getNode());
	var persistent = '0';
	var maxnotices = '1000000';

	// Get the values
	var xPersistent = selector.find('field[var=pubsub#persist_items] value:first').text();
	var xMaxnotices = selector.find('field[var=pubsub#max_items] value:first').text();

	// Any value?
	if(xPersistent)
		persistent = xPersistent;

	if(xMaxnotices)
		maxnotices = xMaxnotices;

	// Change the maxnotices value
	switch(maxnotices) {
		case '1':
		case '100':
		case '1000':
		case '10000':
		case '100000':
		case '1000000':
			break;

		default:
			maxnotices = '1000000';
			break;
	}

	// Apply persistent value
	if(persistent == '0')
		$('#persistent').attr('checked', false);
	else
		$('#persistent').attr('checked', true);

	// Apply maxnotices value
	$('#maxnotices').val(maxnotices);
}

// Handles the user's microblog
function handleMyMicroblog(packet) {
	// Reset the entire form
	$('#channel .top input[name=microblog_body]').removeAttr('disabled').val('');
	$('#channel .top input[name=microblog_body]').placeholder();
	unattachMicroblog();

	// Check for errors
	handleErrorReply(packet);
}

// Performs the microblog sender checks
function sendMicroblog() {
	logThis('Send a new microblog item', 3);

	// Avoid nasty errors
	try {
		// Get the values
		var selector = $('#channel .top input[name=microblog_body]');
		var body = trim(selector.val());

		// Sufficient parameters
		if(body) {
			// Disable & blur our input
			selector.attr('disabled', true).blur();

			// Files array
			var fName = [];
			var fType = [];
			var fLength = [];
			var fURL = [];
			var fThumb = [];

			// Read the files
			$('#attach .one-file').each(function() {
				// Push the values!
				fName.push($(this).find('a.link').text());
				fType.push($(this).attr('data-type'));
				fLength.push($(this).attr('data-length'));
				fURL.push($(this).find('a.link').attr('href'));
				fThumb.push($(this).attr('data-thumb'));
			});

			// Containing YouTube videos?
			var yt_matches = body.match(/(\w{3,5})(:)(\S+)((\.youtube\.com\/watch(\?v|\?\S+v|\#\!v|\#\!\S+v)\=)|(youtu\.be\/))([^& ]+)((&\S)|(&\S)|\s|$)/gim);

			for(y in yt_matches) {
				fName.push('');
				fType.push('text/html');
				fLength.push('');
				fURL.push(trim(yt_matches[y]));
				fThumb.push('https://img.youtube.com/vi/' + trim(yt_matches[y].replace(/(\w{3,5})(:)(\S+)((\.youtube\.com\/watch(\?v|\?\S+v|\#\!v|\#\!\S+v)\=)|(youtu\.be\/))([^& ]+)((&\S)|(&\S)|\s|$)/gim, '$8')) + '/0.jpg');
			}

			// Send the message on the XMPP network
			publishMicroblog(body, fName, fURL, fType, fLength, fThumb);
		}
	}

	// Return false (security)
	finally {
		return false;
	}
}

// Publishes a given microblog item
function publishMicroblog(body, attachedname, attachedurl, attachedtype, attachedlength, attachedthumb, repeat, comments_entity, comments_node, comments_entity_file, comments_node_file) {
	/* REF: http://xmpp.org/extensions/xep-0277.html */

	// Generate some values
	var time = getXMPPTime('utc');
	var id = hex_md5(body + time);
	var nick = getName();
	var xid = getXID();

	// Define repeat options
	var author_nick = nick;
	var author_xid = xid;

	if(repeat && repeat.length) {
		author_nick = repeat[0];
		author_xid = repeat[1];
	}

	// Define comments options
	var node_create = false;

	if(!comments_entity || !comments_node) {
		node_create = true;
		comments_entity = HOST_PUBSUB;
		comments_node = NS_URN_MBLOG + ':comments/' + id;
	}

	if(!comments_entity_file)
		comments_entity_file = [];
	if(!comments_node_file)
		comments_node_file = [];

	// New IQ
	var iq = new JSJaCIQ();
	iq.setType('set');
	iq.setTo(xid);

	// Create the main XML nodes/childs
	var pubsub = iq.appendNode('pubsub', {'xmlns': NS_PUBSUB});
	var publish = pubsub.appendChild(iq.buildNode('publish', {'node': NS_URN_MBLOG, 'xmlns': NS_PUBSUB}));
	var item = publish.appendChild(iq.buildNode('item', {'id': id, 'xmlns': NS_PUBSUB}));
	var entry = item.appendChild(iq.buildNode('entry', {'xmlns': NS_ATOM}));

	// Create the XML source childs
	var Source = entry.appendChild(iq.buildNode('source', {'xmlns': NS_ATOM}));
	var author = Source.appendChild(iq.buildNode('author', {'xmlns': NS_ATOM}));
	author.appendChild(iq.buildNode('name', {'xmlns': NS_ATOM}, author_nick));
	author.appendChild(iq.buildNode('uri', {'xmlns': NS_ATOM}, 'xmpp:' + author_xid));

	// Create the XML entry childs
	entry.appendChild(iq.buildNode('content', {'type': 'text', 'xmlns': NS_ATOM}, body));
	entry.appendChild(iq.buildNode('published', {'xmlns': NS_ATOM}, time));
	entry.appendChild(iq.buildNode('updated', {'xmlns': NS_ATOM}, time));
	entry.appendChild(iq.buildNode('link', {
			'rel': 'alternate',
			'href': 'xmpp:' + xid + '?;node=' + encodeURIComponent(NS_URN_MBLOG) + ';item=' + encodeURIComponent(id),
			'xmlns': NS_ATOM
	}));

	// Create the attached files nodes
	for(var i = 0; i < attachedurl.length; i++) {
		// Not enough data?
		if(!attachedurl[i])
			continue;

		// Append a new file element
		var file = entry.appendChild(iq.buildNode('link', {'xmlns': NS_ATOM, 'rel': 'enclosure', 'href': attachedurl[i]}));

		// Add attributes
		if(attachedname[i])
			file.setAttribute('title', attachedname[i]);
		if(attachedtype[i])
			file.setAttribute('type', attachedtype[i]);
		if(attachedlength[i])
			file.setAttribute('length', attachedlength[i]);

		// Any thumbnail?
		if(attachedthumb[i])
			file.appendChild(iq.buildNode('link', {'xmlns': NS_URN_MBLOG, 'rel': 'self', 'title': 'thumb', 'type': attachedtype[i], 'href': attachedthumb[i]}));

		// Any comments node?
		if(!comments_entity_file[i] || !comments_node_file[i]) {
			// Generate values
			comments_entity_file[i] = HOST_PUBSUB;
			comments_node_file[i] = NS_URN_MBLOG + ':comments/' + hex_md5(attachedurl[i] + attachedname[i] + attachedtype[i] + attachedlength[i] + time);

			// Create the node
			setupMicroblog(comments_entity_file[i], comments_node_file[i], '1', '1000000', 'open', 'open', true);
		}

		file.appendChild(iq.buildNode('link', {'xmlns': NS_URN_MBLOG, 'rel': 'replies', 'title': 'comments_file', 'href': 'xmpp:' + comments_entity_file[i] + '?;node=' + encodeURIComponent(comments_node_file[i])}));
	}

	// Create the comments child
	entry.appendChild(iq.buildNode('link', {'xmlns': NS_ATOM, 'rel': 'replies', 'title': 'comments', 'href': 'xmpp:' + comments_entity + '?;node=' + encodeURIComponent(comments_node)}));

	// Create the geoloc child
	var geoloc_xml = getDB('geolocation', 'now');

	if(geoloc_xml) {
		// Create two position arrays
		var geo_names  = ['lat', 'lon', 'country', 'countrycode', 'region', 'postalcode', 'locality', 'street', 'building', 'text', 'uri', 'timestamp'];
		var geo_values = parsePosition(XMLFromString(geoloc_xml));

		// New geoloc child
		var geoloc = entry.appendChild(iq.buildNode('geoloc', {'xmlns': NS_GEOLOC}));

		// Append the geoloc content
		for(var g = 0; g < geo_names.length; g++) {
			if(geo_names[g] && geo_values[g])
				geoloc.appendChild(iq.buildNode(geo_names[g], {'xmlns': NS_GEOLOC}, geo_values[g]));
		}
	}

	// Send the IQ
	con.send(iq, handleMyMicroblog);

	// Create the XML comments PubSub nodes
	if(node_create)
		setupMicroblog(comments_entity, comments_node, '1', '1000000', 'open', 'open', true);

	return false;
}

// Attaches a file to a microblog post
function attachMicroblog() {
	// File upload vars
	var attach_options = {
		dataType:	'xml',
		beforeSubmit:	waitMicroblogAttach,
		success:	handleMicroblogAttach
	};

	// Upload form submit event
	$('#attach').submit(function() {
		if(!exists('#attach .wait') && $('#attach input[type=file]').val())
			$(this).ajaxSubmit(attach_options);

		return false;
	});

	// Upload input change event
	$('#attach input[type=file]').change(function() {
		if(!exists('#attach .wait') && $(this).val())
			$('#attach').ajaxSubmit(attach_options);

		return false;
	});
}

// Unattaches a microblog file
function unattachMicroblog(id) {
	// Individual removal?
	if(id)
		$('#attach .one-file[data-id=' + id + ']').remove();
	else
		$('#attach .one-file').remove();

	// Must enable the popup again?
	if(!exists('#attach .one-file')) {
		// Restore the bubble class
		$('#attach').addClass('bubble');

		// Enable the bubble click events
		if(id) {
			$('#attach').hide();
			showBubble('#attach');
		}

		else
			closeBubbles();
	}

	return false;
}

// Wait event for file attaching
function waitMicroblogAttach() {
	// Append the wait icon
	$('#attach input[type=submit]').after('

');

	// Lock the bubble
	$('#attach').removeClass('bubble');
}

// Success event for file attaching
function handleMicroblogAttach(responseXML) {
	// Data selector
	var dData = $(responseXML).find('jappix');

	// Process the returned data
	if(dData.find('error').size()) {
		openThisError(4);

		// Unlock the bubble?
		if(!exists('#attach .one-file')) {
			$('#attach').addClass('bubble').hide();

			// Show the bubble again!
			showBubble('#attach');
		}

		logThis('Error while attaching the file: ' + dData.find('error').text(), 1);
	}

	else {
		// Do not allow this bubble to be hidden
		$('#attach').removeClass('bubble');

		// Get the file values
		var fName = dData.find('title').text();
		var fType = dData.find('type').text();
		var fLength = dData.find('length').text();
		var fURL = dData.find('href').text();
		var fThumb = dData.find('thumb').text();

		// Generate a file ID
		var fID = hex_md5(fURL);

		// Add this file
		$('#attach .attach-subitem').append(
			'
' +
				'' +
				'' + fName.htmlEnc() + '' +
			'
'
		);

		// Click event
		$('#attach .one-file[data-id=' + fID + '] a.remove').click(function() {
			return unattachMicroblog(fID);
		});

		logThis('File attached.', 3);
	}

	// Reset the attach bubble
	$('#attach input[type=file]').val('');
	$('#attach .wait').remove();

	// Focus on the text input
	$(document).oneTime(10, function() {
		$('#channel .top input[name=microblog_body]').focus();
	});
}

// Shows the microblog of an user from his infos
function fromInfosMicroblog(xid, hash) {
	// Renitialize the channel
	resetMicroblog();

	// Switch to the channel
	switchChan('channel');

	// Get the microblog
	getMicroblog(xid, hash);
}

// Plugin launcher
function launchMicroblog() {
	// Keyboard event
	$('#channel .top input[name=microblog_body]').keyup(function(e) {
		// Enter pressed: send the microblog notice
		if((e.keyCode == 13) && !exists('#attach .wait'))
			return sendMicroblog();
	})

	// Placeholder
	.placeholder();

	// Microblog file attacher
	attachMicroblog();
}

redpajama_set_name: RedPajamaGithub


text:
PRESS RELEASE: Over 40 Thousand Events Set to Take Place in 70 Countries in Celebration of Character Day on September 22
Global Initiative Exploring the Importance of Developing One's Character Announces Key Partners & Presenters for Worldwide Event
To host your own event, visit: CharacterDay.org
San Francisco, CA (August 25, 2016) – Today, Emmy-nominated filmmaker and Webby Awards founder, Tiffany Shlain, announced the partners and renowned thought-leaders that will participate in the third annual Character Day event on September 22. The initiative—held across the globe with over 40,000 live events throughout 70 countries, and via a 24-hour Global LiveCast Q&A—will feature experts in the field of character education and will engage schools, corporations, universities, civic and other groups in a conversation about the importance of character development. Participating groups and unique events planned for 2016 have more than quadrupled since 2015. Additional individuals and/or groups interested in hosting their own Character Day event can visit CharacterDay.org to find out how.
Character Day participants will be given access to award-winning films, conversation starter kits, a comprehensive online resource hub and a mobile app that includes over 5,000 pieces of curated content surrounding the importance of character development to help them create and host their own Character Day events. This year, participants are encouraged to join the movement across social media by taking to Facebook, Twitter and Instagram to nominate a friend, family member, community leader or someone they admire who exhibits one or more character strengths (i.e. empathy, grit, humility and courage, etc.). Participants can post their nomination using the official hashtag #CharacterDay2016 across their social profiles.
"Character Day 2016 comes at a crucial time, when what it means to be a good person in our society demands our renewed focus," said the initiative's creator, Tiffany Shlain. "From the way we express ourselves and treat each other online to how we communicate our politics—there is amazing scientific research to draw upon when it comes to how to strengthen one's character."
Speakers from renowned institutions around the world will join the Global LiveCast Q&A to discuss a variety of topics as they relate to one's character. Speakers include: Dr. Martin Seligman, author and psychologist widely considered to be father of the Positive Psychology movement; Dr. Angela Duckworth, Professor of Psychology at the University of Pennsylvania and author of the bestselling GRIT The Power of Passion and Perseverance; Sal Khan, founder of Khan Academy; Rabbi Lord Jonathan Sacks, philosopher, bestselling author and former Chief Rabbi of England.; and Julie Lythcott-Haims, author of the New York Times bestselling book, How to Raise an Adult.
Psychologist Dr. Seligman notes, "Human well-being is not a matter of just smiling and being cheerful. Well-being must be deserved; it must be grounded in character strengths and virtues."
Partner Organizations for Character Day 2016 include: The U.S. State Department, Lady GaGa's Born This Way Foundation with INTEL, The United Nations, U.N. Foundation, Common Sense Media, American Federation of Teachers, The Teachers Guild, and over 75 school districts around the country. The Teachers Guild created a Character Day booklet that will be introduced on Character Day and available to all teachers across the country. Los Angeles Unified School District has declared September 22 Character Day across the city and is encouraging all schools to join the global initiative. Additionally, Washington DC Public Schools, San Francisco Unified, Oakland Unified, UT Dallas, Baltimore's Montgomery County Public Schools, and The Dalai Lama Center for Ethics at MIT have all have signed up to participate. Below, please find a full list of Character Day partners or please visit CharacterDay.org.
To learn more about hosting an event, please visit CharacterDay.org.
Character Day Partners include:
About Character Day
Character Day is an interactive initiative engaging schools, corporations, universities, civic- and faith-based organizations, families and other groups in a global conversation about the importance of character building in today's increasingly distracted and overly-connected world. Anchored by a 24-hour global webcast with thought leaders discussing character from all points around the globe unifying the over 40,000 live events in 70 countries, Character Day participants engage with the topic by screening award-winning short films, engaging with hands-on discussion materials and online resources, and joining the global LiveCast conversation and Q&A session about character from different perspectives. You can sign up for more information about Character Day, and watch the initiative's featured films, including The Science of Character (8 mins), The Adaptable Mind (10 mins) and The Making of a Mensch (10 mins) by visiting CharcterDay.org.
About Let It RippleLet It Ripple's mission is to use film, technology, discussion materials, and live and virtual events to engage people in conversation and action around the complicated subjects that are shaping our lives, while updating these topics through an engaging, accessible, 21st century lens. Over the past ten years, Let It Ripple has created and distributed 28 films, engaged over 50 million people in dialogue, and created a new way of making films, called "Cloud Filmmaking." With this new approach, films are created collaboratively with people all over the world then offered for free as a customizable version to thousands of schools and nonprofits as a means of helping them to further their reach.
Let It Ripple is led by Tiffany Shlain, Emmy-nominated filmmaker and founder of The Webby Awards. Shlain has had four films premiere at Sundance, won over 80 awards, and her work has been singled out by the New York Times as "Examining everything from the big bang to Twitter." Four of the studio's films were selected by The U.S. State Department to screen at embassies around the world as part of the American Film Showcase. The studio's AOL Original hit series, The Future Starts Here, was nominated for an Emmy Award in the category New Approaches: Arts, Lifestyle & Culture, and has over 40 million views. One of the series' most viewed episodes is "Technology Shabbats" where Shlain shares her family's ritual of unplugging from all screens for one day a week for the past six years.
JCC Association of America
Jewish Learning Works
Character.org
John Templeton Foundation
Character Lab
Lady GaGa's Born This Way Foundation with INTEL
CharacterPlus
Live Happy
Class Dojo
Mayerson Academy
Committee for Children Mystic Artists
Common Sense Media Natan
Edutopia PJ Library
Facing History and Ourselves The Greater Good Science Center
Family Online Safety Institute The Teachers Guild
Freshgrade The U.N Foundation
GenerationOn The U.S. Department of State
VIA Institute
International Positive Education Network (IPEN)
Wisdom Labs
Yale Center for Emotional Intelligence
Character Day Press

redpajama_set_name: RedPajamaCommonCrawl


Naraka Chaturdashi / Choti Diwali 2018 Wishes, Images, Quotes & Whatsapp Status: Good Morning and Happy Naraka Chaturdashi 2018 for You and Your Family Choti Diwali (Naraka Chaturdashi) will be celebrated on 6th November 2018 this year.
Naraka Chaturdashi is also called Choti Diwali and Kali Chaudhas. It is said that Hanumanji is also worshiped on this day. It is an illusion that people say that this day is also called the day of Bhoot. On this festival of Choti Diwali, we have brought you Happy Choti Diwali / Naraka Chaturdashi / Kali Chaudas Wishes, Status, Messages & SMS 2018 in Hindi, Marathi, Urdu, Tamil, Telugu & Malayalam.
लक्ष्मी का आगमैन हू। Happy Choti Diwali ...!
ज्ञान, धन और जीवन आपके के साथ रहे.
Wishes square measure one thing that may be of nice use once everyone seems to be far from every for numerous varieties of reasons. the explanations could is also skilled and also could also be personal. however, needs to understand no boundaries. Naraka Chaturdashi Wishes, Quotes, Images. If you wishing to wish Choti Diwali needs to your relatives, then produce the most recent needs and send them via social networking sites and another platform so they will be received on the occasion.
And bring an end to all your strife.
and you attain victory over all evils. I Wish you Happy Naraka Chaturdasi.
The reason for your good health.
Have a bright day With Naraka Chaturdashi.
There's nothing I ask, more than this.
I Wish you a Happy Naraka Chaturdashi.
On nowadays folks conjointly lightweight Diyas and obtain at the side of their family on this pageant. The ingredients needed for puja square measure oil, flowers, Agarbatti, camphor, Diya, sweets, coconut, aarti and thali etc. folks assume that laundry head and applying kajal in their eyes Keeps them aloof from the dangerous sights. The persons related to tantra contemplate that active their mantras on nowadays would increase the ability of their tantras. Here square measure the Chhoti Diwali or Naraka Chaturdashi Wishes, Images, greetings, WhatsApp Status, quotes. Send these to your friends, relatives and expensive ones. Do Check: Happy Diwali Wishes 2018.
Best wishes to hell Chaturdashi.
A lot of hell Chaturdashi.
In the post of Naraka Chaturdashi / Choti Diwali 2018 Wishes, Images, Quotes & Whatsapp Status, we have shared with you Naraka Chaturdashi Wishes Quotes Hindi and Naraka Chaturdashi Images 2018 with you. And do not forget to share this post on WhatsApp and Facebook.


Simple 2 Bedroom House Interior Design - your house is a photograph presentation to absolutely actually in actuality in truth in certainty all persons whom passes via, and there could be no man or female who have is aware about this higher than your associates.
whether or not you are mindful of it, your house defines who you are, and there could be a subtle opposition this is taking vicinity in all and sundry neighborhood to have the residence that looks the.
your residence outdoor is typically the number one element simply if truth be told if truth be told surely totally all people sees that tells them a tale about you.


text:
Home Programs | Sports India
Rinku Hooda, India's Youngest Paralympian: Destiny in his one hand!
The cruel hands of destiny took away one of Rinku Hooda's hands but it had to bend in front of the will of this sports prodigy and turn in his favor as he started achieving milestones one after another on national and international platforms. Read the article to know all about his inspiring tale and secrets behind his achievements so far.
A 3-year-old, little boy was playing around the fields and all of a sudden, the fodder cutting machine attracted the little boy's fancy. That unfortunate moment, he went near it in innocence and in his attempt to explore it, he got his left hand between its blades. The pain was not of the hand being chopped off, but was of losing his hand forever! It was indeed a shock for his family while the child couldn't cope with the trauma. As he grew up he forgot the pain of the ordeal but of course, faced many challenges first to perform basic day to day tasks, adjusting every work to his three limbs only. He learnt to do things naturally as he grew up but the challenge of making a successful career in sports without a hand still stood in his way.
Born on January 1, 1999, in a small village of Dhamar in Rohtak (Haryana), Rinku Hooda never knew what destiny had in store for him. People say that destiny is in our hands but Rinku lost his hand yet made impossible sound stupid in front of him and went on to become one of India's youngest paralympian in Javelin Throw. Bodyandstrength.com talked to Rinku Hooda and he shared his heart-warming story with us with an intention to let the world know that suffering or setback is not end of life, it is the beginning of another, more rewarding one.
A village friend of Rinku helped him to get into sports and as he played, he started feeling very good. Playing sports filled him with healing energy. He started feeling positive and wished to make his career in sports. He went on to win medals on state level. He then started going to the stadium regularly to train himself in athletic sports. In the beginning he used to practice running in 100 meter, 200 meter and 400 meter then he started doing jumps but he couldn't perform up to the mark and couldn't get the desired results in these athletic sports categories. He then tried his right and only hand in javelin throw. He took to this athletic sport like fish takes to water and soon won his first silver medal in javelin throw in national championship held in Gandhinagar in 2015. He had earlier won many medals but couldn't adapt t one particular sport before taking up javelin as his area of sports expertise.
He says that he does workout 3 to 4 hours daily in morning and evening. He can be seen on his instagram, lifting heavy weights with one hand, which a normal person would do with great effort with two hands. He says that he hasn't changed his diet and has kept it simple throughout his training. He talked very highly of his inspiration, idol and mentor, Amit Saroha (established discus throw and club throw Indian athlete). He said that Amit Saroha helped him train such that Rinku can now win international javelin throw championships. Rinku's brother Anuj Hooda helps and encourages him a lot in every possible way from doing all his work to making him reach stadium, almost everything. He has the strong support system in the form of his family.
He recalls going to the Rio Olympics to represent India in the sport. He was very conscious in the presence of very senior and experienced players. He took it as an opportunity to learn as much as possible from their benevolent company. He says that every experience of life and company of sportspersons has made him grow as a human being and as an athlete, particularly, a javelin thrower.
In his message to the people of the nation, he said that like he has won gold medal in Youth Asian Games and Indian national anthem rocked international games stadium, he wishes that every time the gold must go to India only, every time he must listen Indian national anthem there whether it is brought home by him or any other Indian youth.
Bodyandstrength.com salutes the spirit of this young javelin thrower of India and wishes him all the very best on behalf of the country.
National Championships (Silver Medalist)
Rio Olympics (2016) – 5th position
World Championship, London – 4th position
World U20 Para Athletics Championship, Switzerland – Silver Medalist
Youth Asian Games, Dubai – Gold Medalist
Asian Para Games, Jakarta (2018) – Bronze Medalist
paralympics sports india javelin throw asian games rajyavardhan singh rathore bodyandstrength.com
5 Top Notch Muscle Gaining Supplements for Winter Bulking
10 Weight Loss Myths that Need to be Busted!
Beginners Gym Workout Female Weight Loss
Peanut Butter – Here's All you Need to Know!
Read how peanut butter can give you the additional health benefits. This article will provide you th...
Say Bye to Your Negative Thoughts With Yoga
There is no shame to open up about your negative thoughts, we all have second body that is Negative ...
Success is Determination and Hardwork: Soniya Mitra
This athlete coverage shows journey of an fitness model who has several titles to her kitty! Read an...
Hima Das Wins and the Furore: The Practical View!
The internet almost broke with congratulatory messages and the wave of excitement washed away sensib...
Gym with a Heart – Ascend Fitness, Mumbai
Our team's rendezvous with Ascend Fitness gym and its owner was a striking experience and hence, it ...


text:
Mind, Time Management
What the Most Successful People Do Before Breakfast: A Short Guide to Making Over Your Mornings—and Life
What the Most Successful People Do Before Breakfast: A Short Guide to Making Over Your Mornings—and Life – Laura Vanderkam
There are certain habits that successful people do daily. While others are sleeping these people are awake making things happen.
I'm not a morning person but I have learned that if you do want to reach certain goals you sometimes need to have a routine in the morning and change your behavior to change your results.
Time management takes practice.
"Mornings are a madcap time for many of us. We wake up in a haze—often after hitting snooze a few times. Then we rush around to get ready and out the door so we can officially start the day. Before we know it, hours have slipped by without us accomplishing anything beyond downing a cup of coffee, dashing off a few emails, and dishing with our coworkers around the water cooler. By the time the workday wraps up, we're so exhausted and defeated that any motivation to accomplish something in the evening has vanished.
But according to time management expert Laura Vanderkam, mornings hold the key to taking control of our schedules. If we use them wisely, we can build habits that will allow us to lead happier, more productive lives.
Drawing on real-life anecdotes and scientific research that shows why the early hours of the day are so important, Vanderkam reveals how successful people use mornings to help them accomplish things that are often impossible to take care of later in the day. While many of us are still in bed, these folks are scoring daily victories to improve their health, careers, and personal lives without sacrificing their sanity. For instance, former PepsiCo chairman and CEO Steve Reinemund would rise at 5:00 a.m., run four miles, pray, and eat breakfast with his family before heading to work to run a Fortune 500 company.
What the Most Successful People Do Before Breakfast is a fun, practical guide that will inspire you to rethink your morning routine and jump-start your life before the day has even begun."
What the Most Successful People Do Before Breakfast: A Short Guide to Making Over Your Mornings–and Life (A Penguin Special from Por tfolio)


Fragment-based Drug Design (FBDD) has emerged as one of the key strategies in drug design during the past two decades. FBDD hinges on the fact that fragments, as opposed to complete ligands, are easier to optimize and study since they possess lesser molecular complexity and have fewer binding interactions.
When fragments are optimized to bind to parts of a protein's active site, they can gain powerful binding affinity by being linked together. Usually fragments are relatively weak binders, and connecting them with linkers can provide orders of magnitude improvements in the free energy of binding. The reason for this affinity increase is usually stated to be entropic. The rationale is that when two fragments are linked together, the entropic cost that they would have to pay were they to separately bind is already paid for by the linker. Thus the combined free energy is much more favorable than the pairwise free energy. The increase in free energy is quantified by a number called the "linking coefficient", where a value of less than zeo indicates enhanced binding relative to the fragments.
However, such an analysis assumes that the contribution to the binding process from other factors is minimal, and the entropic advantage is the only major player in the affinity increase game. But as with protein-ligand interactions, the picture is more complex. There can be unfavorable enthalpic contributions from the fragments losing favorable binding interactions upon being constrained by linkers. There can sometimes be favorable enthaplic interactions from new contacts between the ligand and protein. And there can be enthalpic and entropic contributions from the linker itself. Thus, dissecting the factors that go into the free energy upon fragment linking is like the classic conundrums of physical organic chemistry which I encountered in college, where controlled experiments are deviously hard, and changing one factor inevitably changes another (when does it not?).
An ideal system for studying the contribution of entropy to FBDD would be a system of two fragments binding to a protein which can be linked together by a single bond and which retain all their existing contacts with the protein upon being linked. Such systems would admittedly be hard to design, but a group of Italian researchers has come up with a neat system linking two very simple fragments, a hydroxamic acid and a benzenesulfonamide, with a single bond.
The fragments and resulting molecule inhibit matrix metalloproteinase (MMP), a key enzyme implicated in cancer and inflammation. The authors perform x-ray crystallographic and isothermal calorimetry (ITC) to investigate the thermodynamics and binding of the individual fragments and their linked counterpart to MMP. They demonstrate that the two fragments preserve their binding modes even when linked together and observe a rather large free energy enhancement of almost 4 kcal/mole on fragment linking.
This is a nice case where a careful analysis and dismissal of other factors points accurately to entropy as the main contributor to enhanced binding of linked fragments.
Nice synopsis of fragment-based design and this article!
I am a student doing my MBA from Symbiosis Institute of Business Management, Bangalore. As a part of my academic curriculum, I am doing a market research report on fragment based drug discovery.
I request you to spare 2-3 minutes of your valuable time to fill this questionnaire.


text:
General Lafayette Statue
Posted on November 25, 2019 February 2, 2021
Statue: General Lafayette
Location: Southeast corner of Lafayette Square
Sculptors: Alexandre Falgulere and Antoni Mercie, French
Cost to taxpayers: between $55,000 – $60,000
Lafayette Park was first referred to by that name beginning in the 1820s. By the time Clark Mill's Andrew Jackson statue was placed in the center of the park in 1853, directly to the north of the White House, the park was officially listed as Lafayette Square.
Lafayette Park and Name
The first newspaper reference of the park's name was in the November 21, 1934 edition of the Alexandria Gazette, which referred to the park, "On the north of the President's house, the ground now called Lafayette square, has been well graded and planted with trees." But the park had been referred to as Lafayette Square since the 50th anniversary celebration of the end of the American Revolution in 1824.
The area north of the White House was part of the President's House park land, but was bare ground with a race track on its western edge, and remained that way until the rebuilding of the President's House after it burned in 1814 during the War of 1812. The park boundaries were defined and trees were planted in 1924.
That year, Lafayette returned to America and made a grand tour. He traveled throughout America during 1824 and 1825 and visited all 24 states at that time. It was during this time of renewed pride in America and with a sense of historic fervor, that Congress first suggested memorializing General Lafayette.
Surrounding the park are buildings that date from the 19th and early 20th centuries. St. John's Church was designed by Benjamin Latrobe in 1816 and is the oldest building on the square. In 1818, Benjamin Latrobe also designed and built Stephan Decatur's house at the corner of 17th and H Streets, NW, the first private building on the square.
General Lafayette
Lafayette, whose title was the Marquis de Lafayette, and whose birth name was Marie-Joseph Paul Yves Roch Gilbert du Motier de Lafayette (1757-1834), was born in France in 1757 to a family with great wealth. Lafayette believed in the cause of the American Revolution (1765 – 1783). Lafayette was appointed by Congress to be a major general in the Army on July 31, 1777. He fought in the Battle of Brandywine in September 1777 where he was injured and in 1878 in the Battle of Rhode Island. In 1781, he and the forces under his command in Virginia blocked Cornwallis' forces, which set up the Surrender of Yorktown.
Lafayette honorably retired from the Army on November 3, 1783. He returned to France and, in May 1779, France's Louis XVI appointed him colonel commanding the regiment of the King's Dragoons. Lafayette remained a lifelong friend of George Washington, and was a member of the Order of the Cincinnati. He died at his home in Paris on May 20, 1834, at the age of 77.
The Lafayette Memorial
Fifty years after Lafayette's death, in 1884, the U.S. Congress passed a bill appropriating $50,000 for the purpose of erecting a statue to the memory of Gen. Lafayette. The bill also created a memorial commission.
In 1888, the statue to Lafayette was finished: constructed by French artists Alexandre Falgulere and Antoni Mercie.
However, the memorial commission could not decide on where to place the statue. The obvious place for the statue, Lafayette Park, already had a statue. The statue to President Andrew Jackson was considered by many as one of the finest pieces of American-made statuary, and had been located in the center of park since 1853.
Discussions on where to place the statue continued for several years. And as of September 9, 1890, the Evening Star reported that "all idea of placing the statue in Lafayette Park as a side attraction to the Jackson statue has been definitely abandoned." The Commission at that time was set on the reservation at 15th and Pennsylvania Avenues NW just south of the Treasury Building. But by November 1890 it was decided that the memorial to Lafayette would be placed in the southeast corner of the the square, and eventually the other corners would be used for three more new statues.
The memorial was finally placed in Lafayette Square on February 20, 1891. The day earlier the Lafayette statue had been hauled out of the Congressional stables where it had been stored since arriving in Washington, D.C., from France a year earlier. There was no dedication ceremony.
On March 30, 1892, Senator Hiscock and Representative Little of New York introduced a petition from Lafayette Post No. 14 G.A.R., of New York and signed by 81 members of the post. The petition recites the fact that the Lafayette monument erected in Washington has never been dedicated, which is an exceptional case in the history of all the monuments or statues erected to the memory of the United States military and naval forces, and says that the appropriate time and occasion for the proper unveiling and acceptance of the statue in the formal manner would be during the coming national encampment of the Grand Army of the Republic to be held in Washington, D.C., September 19, 1892.
Lafayette Statue Design
The memorial to Lafayette is actually a memorial to Lafayette and his Compatriots. The pedestal is Italian marble and the figures are bronze.
The statue to Lafayette shows him standing in a commanding attitude wearing an Army uniform. His left hand is resting on the hilt of his sword and is partially covered with his military cloak; his long sword rests on the ground. His right hand is outstretched and clenches his hat. The statue is about 10 and a half feet in height.
In front of the memorial is a female figure, America or Victory, looking up and offering a sword. Above the figure is a large bronze tablet surrounded by laurel leaves, surmounted by a gargoyle and inscribed with "Lafayette et ses compagnons" — "To Lafayette and his compatriots"
At the rear of the pedestal are two small allegorical figures and an area for a short inscription.
On the east side or left side is a group representing the French naval heroes who assisted in the Revolution. One of the statues is that of Vice Admiral Count Charles Hector Theodat D'Estaing, who brought over the first fleet of French war vessels sent to assist the patriots and who was wounded while leading an the attack on Savannah, then held by the British. D'Estaing is dressed in the French naval costume, and an anchor lies at his feet. His right hand rests on his sword and his left is raised, he looks engaged in conversation with his companion.
Across from D'Estaing is Lieut. General Francois Joseph Paul, Counte de Grasse, who came over in 1781 with twenty-six ships and 250 merchantmen. He assisted in the capture of Cornwallis at Yorktown and received the thanks of Congress for his services. General Washington had a great regard for him, and when he was leaving for the West Indies presented him with two horses as a token of especial esteem. He is represented as listening to the remarks D'Estaing. He, too, is in French uniform and a star glitters on his breast.
On the west or left side are represented Rochambeau and Chevalier Duportaille.
Jean Baptiste Donatieu de Vineur, Comte de Rochambeau, commanded the French forces sent to America. He assisted Lafayette in the Virginia campaign and provided valuable services in the seige of Yorktown. Rochambeau is portrayed in French uniform, and stands next to Duportaille.
Chevalier Louis Lebeque Duportaille was one of four French officers engaged by Benjamin Franklin to serve in the American Army. He had charge of the engineering operations at Yorktown, and was one of the general officers particularly mentioned by Washington in his dispatches. He is represented as a young man, dressed in the Continental uniform. At his feet lies a mortar.
In the rear, or on the north side of the monument, are two little cherubs holding up a large bronze shield, enclosed in scrolls and vinery, with the following inscription:
By the Congress of the U.S.
Gen. Lafayette
His Compatriots
In commemoration of the services rendered by
them during its struggle for
The Lafayette Statue Bill Passed. The Evening Star. December 18, 1884.
The Lafayette Statue. The Evening Star. April 14, 1888.
A Splendid Memorial: The Magnificent Monument to Lafayette and His Countrymen. The Washington Post. August 17, 1890: p9.
Looking for its Home: The Lafayette Monument to Remain in Boxes for Awhile. The Washington Post, August 30, 1890, p8.
Down Went the Trees: They had to Fall to Make Room for the Lafayette Statue. The Washington Post, November 23, 1890, p3.
The Lafayette Statue, The Washington Post, February 19, 1891
Mary Foote Henderson and Meridian Hill Park
Theodore Roosevelt Island
Colonial Settler's Monument
Meridian Hill Park / Malcolm X Park
DC History (24)
NE (2)
NW (37)
Photo Essay (3)
@DCMemorialist
Tweets by DCMemorialist


Fire Link Is a fastest growing establishment in Fire Alarm and Fire Fighting Systems, Security System in U.A.E. The company provides total fire protection solution for the most prestigious developments around U.A.E including residential buildings, commercial complexes, hospitals, mall management and industrial installations.
Our success is solely through constant and continuous strive to maintain our high standards of our customer service.


text:
<?php
if (!isset($_SESSION)) {
  session_start();
}
$MM_authorizedUsers = "";
$MM_donotCheckaccess = "true";

// *** Restrict Access To Page: Grant or deny access to this page
function isAuthorized($strUsers, $strGroups, $UserName, $UserGroup) {
  // For security, start by assuming the visitor is NOT authorized.
  $isValid = False;

  // When a visitor has logged into this site, the Session variable MM_Username set equal to their username.
  // Therefore, we know that a user is NOT logged in if that Session variable is blank.
  if (!empty($UserName)) {
    // Besides being logged in, you may restrict access to only certain users based on an ID established when they login.
    // Parse the strings into arrays.
    $arrUsers = Explode(",", $strUsers);
    $arrGroups = Explode(",", $strGroups);
    if (in_array($UserName, $arrUsers)) {
      $isValid = true;
    }
    // Or, you may restrict access to only certain users based on their username.
    if (in_array($UserGroup, $arrGroups)) {
      $isValid = true;
    }
    if (($strUsers == "") && true) {
      $isValid = true;
    }
  }
  return $isValid;
}

$MM_restrictGoTo = "login.php";
if (!((isset($_SESSION['MM_Username'])) && (isAuthorized("",$MM_authorizedUsers, $_SESSION['MM_Username'], $_SESSION['MM_UserGroup'])))) {
  $MM_qsChar = "?";
  $MM_referrer = $_SERVER['PHP_SELF'];
  if (strpos($MM_restrictGoTo, "?")) $MM_qsChar = "&";
  if (isset($QUERY_STRING) && strlen($QUERY_STRING) > 0)
  $MM_referrer .= "?" . $QUERY_STRING;
  $MM_restrictGoTo = $MM_restrictGoTo. $MM_qsChar . "accesscheck=" . urlencode($MM_referrer);
  header("Location: ". $MM_restrictGoTo);
  exit;
}
?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>

Logout

Welcome back <?php if (isset($_SESSION['MM_UserFName']) && isset($_SESSION['MM_UserLName'])) { echo $_SESSION['MM_UserFName'].' '.$_SESSION['MM_UserLName']; } ?>

Login successful


text:
FG and EchoVC plan to create 35000 jobs with ₦300billion innovation fund
by Ifeanyi Ndiomewese | Jan 27, 2016
The N300 billion innovation fund released by the Federal Government of Nigeria as seed fund to grow local technology startups, is expected to create up to 35,000 jobs in the country. The fund will work in concord with EchoVC Partner's $50 million target seed fund which it promised to inject for the growth of African tech startups. EchoVC is an experienced seed and early stage technology venture capital firm focused on financing and cross-pollinating leading technologies, teams and business models in Nigeria and select markets in sub-Saharan Africa, and as well the sole manager of the Federal Government's pioneering ICT Innovation Fund.
Eghosa Omoigui, the Managing Partner of EchoVC disclosed the company's plan to fill the seed fund and early stage financing gap during a press conference on Monday in Lagos. He said that EchoVC plans to make investment of $25,000 – $1.5 million per startup with a goal of making 40 to 50 investments throughout the life of the fund.
He further said they are in talk with existing investors which includes a mix of domestic and foreign institutional investors and asset managers.
"We made four investments in Nigeria in 2015 and anticipate making up to 10 seed-stage investments in 2016", he said. Further claiming that companies backed up by venture capital have been a major driver of technology innovation, economic growth and job creation over the last 40 years.
"Our focus will be on technologies that support underserved populations. Investments will target high-growth services and scalable products in select markets, with distinct and sustainable competitive advantages, all of which affect daily life and provide essential services in large growing markets" he also added.
The company's investment in disruptive and innovative technology startups in Nigeria that grow to become category leaders, he said would transform opportunities currently available to the ever growing community. Part of the plan of the company to support tech startups, according to him was to fill the seed and early stage gap by providing mentorship and institutional angel funding to promising entrepreneurs and co-developing and stimulating the existing local angel community.
"Our strategy underpins a disruptive approach: to invest at the intersection of consumer, media, commerce, data technology & mobile devices layered by networked knowledge. We target equity and equity-related seed and early stage technology investments in Nigeria (and the broader Pan-African region). "Nigeria, as one of the main growth drivers for Africa, is also one of the primary growth drivers for the firm. We seek to capitalize on Nigeria's burgeoning period of growth in technology innovation and identify and invest in next generation companies that will lead this technology renaissance across the continent.
"The fund will also opportunistically evaluate investment opportunities in Ghana, Kenya, Uganda, Rwanda, Tanzania, and Ethiopia", he explained.
Specific technology sectors of interest according to him includes consumer Internet and Services, Data, Mobile, Social, Digital Media, Content and Advertising, e-commerce, Software, linguistics, Gaming, Business intelligent, last-mile services, among others.
Ifeanyi Ndiomewese
Ifeanyi is a desk reporter-turned administrator. Outside of work, I love to read and travel.


text:
This site, like many others, uses cookies to help improve the user's experience on the site and ensure excellent performance. We encourage becoming acquainted with the basics of cookie use.
This site is controlled by Sigulda Municipality. Personal data may be processed during the use of cookies. By using this site, you consent to the use of cookies defined hereinafter (unless your browser is set to not accept cookies). You should take into account that if you choose to disable the necessary cookies, the website will not be able to function properly.
This website is opened through a browser such as Chrome, Firefox, Safari, Edge, Opera, etc.
Cookies are the information that this browser obtains and saves when you use our site. The next time you visit our website, the browser will remember your actions and will perform some of them automatically, for example, choose the language or control the display of the cookie notification. With the help of cookies, the website is able to maintain the user's individual settings, recognise them and respond accordingly.
Types of cookies and their purpose
There are two types of cookies altogether: session cookies and permanent cookies. Cookies are also divided into first-party or third-party cookies. The following concepts are explained below to help you better understand the nature of cookies and why we use them.
Session cookies allow you to be recognised when you visit a particular website, memorising any changes or choices on a particular site to save them on other pages as well. These cookies allow you to quickly and easily use multiple pages of the same website, avoiding the need to process each visited page. Session cookies are not permanent – they will expire when you close your web browser or pause a session on a particular website.
Permanent cookies are cookies stored on your computer for a specific time after the end of the web browsing session, thus they allow a user's choices or actions to be saved on the site and be used the next time the user visits this site.
First-party cookies are cookies maintained by structures administered by the site's maintainer.
Third party cookies are maintained by other domains that do not belong to us. Third-party cookies can be stored on your computer, phone, or tablet when you browse our website.
List of used cookies
Validity period
Tracking cookies from Google Analytics
They are used to improve our website by analysing user habits. These cookies provide us with information, such as the number of visitors to the website and the pages visited by users, as well as the total time spent on our website (more information – Google Analytics Cookie Usage on Websites)
2 years, 24 hours or just during the session
sigulda_cookies
Site cookie
Determines whether the user has agreed to the terms of use of the cookie and whether to display a statement regarding the use of cookies in the future.
Verifies user session and authorisation details.
Only during the session
Tracking cookies from Google Maps
Google card cookie that captures the card use (more information - Types of cookies used by Google)
Most for 10 years
Revoking consent and limiting the use of cookies
You can change your cookie settings at any time in your web browser. For example, you can revoke your consent to cookie saving by enabling the function that allows you to reject all cookie saving suggestions in your browser. You can find these settings in the "options" or "preferences" menu in your web browser. Below you can find some useful links:
Information about the use of cookies has been prepared on the basis of the requirements of Regulation (EU) 2016/679 of the European Parliament and of the Council of 27 April 2016 on the protection of individuals with regard to the processing of personal data and on the free movement of such data (General Data Protection Regulation), and Directive 2002/58 / EC of the European Parliament and of the Council of 12 July 2002 concerning the processing of personal data and the protection of privacy in the electronic communications sector (Directive on privacy and electronic communications).
Turaida Museum Reserve Gauja National Park Brochures and maps Cable Car over Gauja River Bobsleigh and Luge track Sigulda Castle of Livonian order in Sigulda Public transport Activities Tourism Information Centre Attractions Guestbook


Every year Darbar Day is the culminating point of the week. The programme began with the arrival of the chief guest, thespian, Mr. Sunil Shetty. He was extended a warm welcome. The students of the college presented a march past in his honour. Mr. Sunil Shetty is an icon for aspiring actors, sports persons and fitness enthusiasts. Besides acting in over a 100 films, Mr. Shetty is a film producer and an Entrepreneur.


text:
DLP Planning Ltd
Planning Directors
The DLP Group
Development Promotion
Strategic Planning Research Unit
Sustainable Development and Delivery
DLP Consulting Group Services
Guide to Use Classes Order
Client Briefing
DLP's YouTube Channel
Graduate Scheme
OUTLINE PLANNING PERMISSION SECURED FOR UP TO 65 NEW DWELLINGS IN BACKWELL, NORTH SOMERSET
DLP Planning's Bristol team has secured outline planning permission, on behalf of Taylor Wimpey, for a residential development of up to 65 dwellings on land north of Moor Lane in Backwell, North Somerset.
DLP had previously made representations on the application site on behalf of Taylor Wimpey and secured its allocation as a potential development site within the Backwell Neighbourhood Plan, which was formally 'made' in March 2015.
The design evolved following discussions with Backwell Parish Council and North Somerset Council as well as a well-attended public consultation event in April 2015. Key changes were made to the proposal in response to the feedback that was received from the local community, which included a reduction in the number of dwellings to 65, and the realignment of the site entrance to provide an improved access to an adjoining street. Despite being in outline, a detailed masterplan was prepared, which showed that the northern part of the site could potentially provide an area of open space and act as a buffer zone between the dwellings and the existing railway line which forms the northern site boundary. The details of a new access into the site was addressed as part of the outline planning application, with all other details reserved for the subsequent reserved matters application.
A comprehensive Section 106 package was negotiated, which includes on-site affordable housing provision and a contribution to help address existing local highway issues.
The application received Case Officer recommendation for approval and elicited no objections from the statutory consultees. The application was reported to Planning Committee and received a unanimous vote for approval.
Images courtesy of Taylor Wimpey
dlpOUTLINE PLANNING PERMISSION SECURED FOR UP TO 65 NEW DWELLINGS IN BACKWELL, NORTH SOMERSET 07.21.2016
Sheffield Local Plan Issues and Options Consultation
Former Methodist Chapel Conversion Approved
Committee approve mixed-use development in Newport Pagnell
Local Plan – Call for Sites
Pirate Studios – 42-56 Tottenham Road, Dalston N1 4BZ
DLP Planning Ltd is a part of the DLP Consulting Group Ltd, a multidisciplinary consulting group offering a wide range of services in transportation and transport planning, civil engineering, urban design, architecture and neighbourhood planning.
Sheffield Local Plan Issues and Options Consultation 17/11/2020
Former Methodist Chapel Conversion Approved 17/11/2020
Hosted by uBeHosted @ https://ubehosted.uk
Location (HQ)
4 Abbey Court, Fraser Road, Priory Business Park, Bedford, MK44 3WH