/*
	showcontent.js
	v110
*/

var session_interval_id = 0;

function showContent(member_id, keepValues, startFrom, entry_id){

	var section = activeSection[PARAM_INDEX_SECTION].toUpperCase();
	var area = "CHANNEL";
	var kind; //= "content"; //members / event
	var tag = '';
	var entry_type = '0';

	if (entry_id == null) entry_id = 0;

	kind = "content";

	if (!keepValues) {
	    oVLOG.init();
		oVLOG.setMaxPerPage(2);
	} else {
	    oVLOG.setMaxPerPage(5);
	}

    switch(activeSection[PARAM_INDEX_AREA]){
		case "vlog":
			area = "CHANNEL";
			kind = "content";
			if (oStrategy.getCurrentPage() == 'mySquare.php') {
			    oVLOG.setMaxPerPage(5);
				oVLOG.setAutoScroll(true);
				kind = activeSection[PARAM_INDEX_CATEGORY];
				setSide_ctntBody_listClass('list_events');
			} else {
			    oVLOG.setAutoScroll(true);
				setSide_ctntBody_listClass('list_ULcontent');
			}
			tag = activeSection[PARAM_INDEX_TAG];
			break;

		case "members":
			area = "MEMBERS";
			kind = "members";
			if (oStrategy.getCurrentPage() == 'mySquare.php') {
				oVLOG.setAutoScroll(false);
				oVLOG.setMaxPerPage(20);

				entry_type = activeSection[PARAM_INDEX_ENTRY_TYPE];
				kind = activeSection[PARAM_INDEX_CATEGORY];
			} else {
//			    oVLOG.setAutoScroll(false);
//				oVLOG.setMaxPerPage(5);
			}

			setSide_ctntBody_listClass('list_members');
			break;

		case "comments":
			if (oStrategy.getCurrentPage() == 'mySquare.php') {
				oVLOG.setAutoScroll(false);
				oVLOG.setMaxPerPage(5);
				setSide_ctntBody_listClass('list_events');
			} else {
//			    oVLOG.setAutoScroll(false);
//				oVLOG.setMaxPerPage(5);
				setSide_ctntBody_listClass('list_ULcontent');
			}

			area = "COMMENTS";
			kind = "comments";
			break;

		case "messages":
			if (oStrategy.getCurrentPage() == 'mySquare.php') {
				oVLOG.setAutoScroll(true);
			}
			area = "MESSAGES";
			kind = "messages";
			setSide_ctntBody_listClass('list_noicns');
			break;

		case "uploads":
			area = "CHANNEL";
			kind = "MYUPLOADS";
			setSide_ctntBody_listClass('list_events');
			break;

		case "added":
			area = "CHANNEL";
			kind = "added";
			setSide_ctntBody_listClass('list_events');
			break;

		case "events":
			area = "EVENTS";
			kind = "events";
			setSide_ctntBody_listClass('list_events');
			break;

		case "mostpopular":
			area = "MOSTPOP";
			kind = activeSection[PARAM_INDEX_CATEGORY];

			switch(kind){
				case "content":
					setSide_ctntBody_listClass( 'list_ULcontent' );
					//entry_type = activeSection[PARAM_INDEX_ENTRY_TYPE];
					break;
				default:
					entry_type = activeSection[PARAM_INDEX_ENTRY_TYPE];
					setSide_ctntBody_listClass( 'list_' + kind);
			}
			break;
		default:
			kind = "content";
	}

	var rowStart = 0;
	if (!keepValues) {
		oVLOG.clear();
	} else {
		if (startFrom != undefined) {
			oVLOG.clear();
			rowStart = startFrom;
		} else {
			rowStart =   oVLOG.getStart() + oVLOG.getNumber();
		}
	}

	if (!member_id) { member_id=''; }
	if (activeSection[PARAM_INDEX_AREA] !== 'messages') {
	    //oVLOG.lastServiceName = 'B0-002' + section + area + kind.toUpperCase() + entry_type + tag;
		oVLOG.runLoadService(section, area, kind.toUpperCase(), entry_type, tag, member_id, rowStart, oVLOG.getMaxPerPage(), entry_id);
	}
	//debug( activeSection + "\n\n" + kind )
	//setSide_ctntBody_listClass("list_ULcontent");

	//reset #side scroll's position
	if (!keepValues) { resolveCSSpath( "side" ,".ibox .dscroll5" ).scrollTop = 0; }
}

function setSide_ctntBody_listClass(c){
	var classes = Array ( "list_OLcontent", "list_ULcontent","list_members", "list_events");

	for( var i = 0; i< classes.length; i++){
		KillClass( "side_ctntBody",classes[i] );
	}

	AddClass( "side_ctntBody", c );
}

function setMembersSubMenu(networkName, service) {
	$('mainmenu_submenu-members').show();
	var html = '<h3>' + networkName + '</h3>' +
			 '<h5>Recently Visited:</h5>'+
			 '<ul>';

	if (service.getResult().hasNext()) {
		var serviceRow = null;
		while (service.getResult().hasNext()) {
			var serviceRow = service.getResult().getCurrentRow().split("|!|");
			html += '<li><a href="#" onclick="return member_click(\'' + serviceRow[0] + '\');">' + serviceRow[1] + '</a></li>';
			service.getResult().moveNext();
		}
	} else {
		tml += '<li>None</li>';
	}
	html += '</ul>';

	$('mainmenu_submenu-members').innerHTML = html;
}

function buildPrivateChannelMsg(name) {
	var html = '<table cellpadding="0" cellspacing="0" style="margin-top:30px;">';
	html += '<tr>' +
				'<td colspan="2" class="PrivateChannel">' +
					'<h3>The channel is Private.</h3>' +
					'<h3>Only people within ' + name + '\'s network can access it.</h3>' +
					'<h3>Thank you for your understanding.</h3>' +
				'</td>' +
			'</tr>' +
			'<tr>' +
				'<td align="center">' +
					'<div style="width:120px;height:50px;background:#666" id="bannerAd">Banner 1</div>'+
				'</td>' +
				'<td align="center">' +
					'<div style="width:120px;height:50px;background:#666" id="bannerAd">Banner 2</div>'+
				'</td>' +
			'</tr>';

	html += '</table>';
	$('member_details_data').innerHTML = html;
}



function callNetworkProfileQuestions (network_id) {
	try {
		var connector = new AjaxConnector();
		var service = new Service("A1-005", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
		service.setMethod('GET');
		service.addParameter("language", oEnviroment.getLanguage().getID());
		service.addParameter("user", oEnviroment.getUser().getID());
		service.addParameter("network_type", network_id);
		service.setOnServiceComplete(null, 'buildNetworkProfileQuestions');
		connector.asyncRun(service);
	} catch (e) {

	}
}

function buildNetworkProfileQuestions (service) {
	var html = '<table cellpadding="0" cellspacing="0">';
	var counter = 0;
	if (service !==null) {
		if (!service.getResult().hasErrors()) {
			while (service.getResult().hasNext()) {
				var serviceRow = service.getResult().getCurrentRow().split("|!|");
				counter++;
				html += '<tr><th></th>' +
							'<td>' +
								'<h3>' + serviceRow[1] + '</h3>' +
							'</td>' +
						'</tr>' +
						'<tr>' +
							'<th>' +
								'<p>' + serviceRow[2] + '</p>' +
							'</th>' +
							'<td>' +
								'<p><textarea cols="60" rows="3" id="answer_' + serviceRow[0] + '">' + serviceRow[3] + '</textarea></p>' +
								'<input type="hidden" value=' + serviceRow[0] + ' id="answer_id_' + counter + '" />' +
							'</td>' +
						'</tr>';

				service.getResult().moveNext();
			}
		}
	}
	html += '<tr><th></th>' +
				'<td >' +
					'<input type="hidden" value=' + counter + ' id="questionCounter" />' +
				'</td>' +
			'</tr></table>';
	$('extended_profile_container').innerHTML = html;
}

function setSlideshowPreview(service) {
	var ret = true;
	var html = '';
	var index = 1;
	while (service.getResult().hasNext()) {
		ret = true;

		var serviceRow = service.getResult().getCurrentRow().split("|!|");
		if (service.getName() == "B1-011") {
			html += buildSlideshowItem(index, serviceRow[0], serviceRow[3] ,serviceRow[4] ,serviceRow[2]);
		} else {
			html += buildSlideshowItem(index, serviceRow[0], serviceRow[1] ,serviceRow[1] ,serviceRow[3]);
		}

		index++;
		service.getResult().moveNext();
	}

	$('slideshowContainer').innerHTML = html;
	Sortable.create('slideshowContainer', '');

	return ret;
}

function buildSlideshowItem(index, id, thumb, image, caption) {
	var html;
	if (image!= undefined) {
		if (!caption) caption = '';
		html = '<li id="slide_' + id + '">' +
				'<table class="form long" cellspacing="0">'+
				'<tr>' +
					'<td>' +
						'<p><input type="checkbox" name="slideCheck" id="slideCheck" value="' + id +'"/>'+
					'</td>' +
					'<th width="32">' +
						'<h1>' + index + '</h1>' +
					'</th>' +
					'<td width="52">' +
						'<img src="images/' + image + '" height="32" />' +
					'</td>' +
					'<td>' +
						'<p>' + caption + '</p>' +
					'</td>' +
				'</tr>' +
				'</table>' +
			'</li>';
	}
	return html;
}


function showErrorMessage(title, description, onCloseMethodName) {
	if (onCloseMethodName) { onCloseMethodName = onCloseMethodName + '();' }

	var html = '<div style="overflow: auto; -moz-background-clip: -moz-initial; -moz-background-origin: -moz-initial; -moz-background-inline-policy: -moz-initial; text-align: center;">' +
			   '<h3 style="margin: 0pt; padding: 0pt; color: #A0917E; font-family: arial; font-size: 14px;">' + description + '</h3>' +
			   '<p><input type="button" name="close" value="Close" style="margin: 0pt; padding: 0pt;" type="submit" onclick="oModalWindow.close();' + onCloseMethodName + '"></p></div>';

	oModalWindow = new Control.Modal(false, {
						containerClassName: 'modalWindowContainer',
						overlayClassName: 'modalWindowOverlay',
						overlayCloseOnClick: false,
						fade: false,
						contents: html
						});
	oModalWindow.open();
}

function pause(millis) {
	var date = new Date();
	var curDate = null;

	do { curDate = new Date(); }
	while(curDate-date < millis);
}

function showConfirmWindow(question, yesHandlerName, noHandlerName) {
	var html = '<div style="overflow:auto;text-align:center;">' +
				'<h3 style="margin:0;padding:0;color:#A0917E;font-family:arial;font-size:14px;">' + question + '</h3>' +
				'<p><input type="button" name="yes" value="Yes" style="margin:0;padding:0;" onclick="oModalWindow.close();' + yesHandlerName + ';"/>' +
				'&nbsp;<input type="button" name="no" value="No" style="margin:0;padding:0;" onclick="oModalWindow.close();' + noHandlerName + '" /></p>' +
				'</div>';

	oModalWindow = new Control.Modal(false, {
						containerClassName: 'modalWindowContainer',
						overlayClassName: 'modalWindowOverlay',
						overlayCloseOnClick: false,
						fade: false,
						contents: html
						});

	oModalWindow.open();
}



function showAddComment(container_id, member_id) {

	html = '<form name="frmComment" id="frmComment">' +
		   	'<table class="form long" cellspacing="0">'+
				'<tr>' +
					'<td>' +
						'<h2 style="margin:0;padding:0;color:#A0917E;font-family:arial;font-size:14px;">Post a comment</h3>' +
					'</td>' +
				'</tr>' +
				'<tr>' +
					'<td>' +
						'<p><textarea cols="70" rows="5" id="field_comment" name="field_comment" style="width: 410px;"></textarea><em class="ok"></em></p>' +
					'</td>' +
				'</tr>' +
		   		'<tr>' +
					'<td width="100%" align="right">' +
						'<p><a href="javascript:send_comment(\'' + member_id + '\')"><img src="localized/en/button_submit_comment.gif" /></a>' +
						'&nbsp;<a href="javascript:submenu_comments_click(\'comments\');"><img src="localized/en/button_cancel_comment.gif" /></a></p>' +
					'</td>' +
				'</tr>' +
			'</table>' +
			'</form>';

	tmpHTML = $(container_id).innerHTML;
	scrollHome($(container_id),0);
	$(container_id).innerHTML = html;
}

function showSendMessage(node, member_id, memberName) {
	html = '<form name="frmMSG" id="frmMSG">' +
			'<div style="overflow:auto;">' +
			'<h3 style="margin:0;padding:0;color:#A0917E;font-family:arial;font-size:14px;">Send Message to ' + memberName + '</h3>' +
			'<p>Note that this message will be sent directly to the user\'s email address</p>' +
			'<p><input type="hidden" id="errorMessage" class="text" size="0" value=""/><em class="ok"></em></p>' +
		   	'<table class="form long" cellspacing="0" width="460px">'+
				'<tr>' +
					'<th><p>Subject</p></th>' +
					'<td>' +
						'<p><input type="text" id="field_member_subject" class="text" size="40" value=""/></p>' +
					'</td>' +
				'</tr>' +
				'<tr>' +
					'<th><p>Message</p></th>' +
					'<td>' +
						'<p><textarea cols="70" rows="12" id="field_member_msg"></textarea></p>' +
					'</td>' +
				'</tr>' +
		   		'<tr>' +
					'<td  align="right" colspan="2">' +
						'<p><a href="javascript:msg_member_send(document.frmMSG, \'' + member_id + '\')"><img src="localized/en/button_submit_comment.gif" /></a>' +
						'&nbsp;<a href="javascript:oModalWindow.close();"><img src="localized/en/button_cancel_comment.gif" /></a>&nbsp;&nbsp;</p>' +
					'</td>' +
				'</tr>' +
			'</table>' +
			'</div></form>';


	oModalWindow = new Control.Modal(false, {

						containerClassName: 'modalWindowContainer',
						overlayClassName: 'modalWindowOverlay',
						overlayCloseOnClick: false,
						fade: false,
						contents: html
						});

	oModalWindow.open();
}


function showShareEntry(section, area, entry_id, type, currentUser, currentEmail) {
	var entryName = 'video';
	if (type == 2) entryName = 'slideshow';

	var link = oEnviroment.getURL() + '?section=' + section + '&area=' + area + '&entry=' + entry_id;

	html = '<form name="frmLink" id="frmLink">' +
			'<div style="overflow:auto;">' +
			'<h3 style="margin:0;padding:0;color:#A0917E;font-family:arial;font-size:14px;">Email this video to a friend</h3>' +
			'<p><input type="hidden" id="errorMessage" class="text" size="0" value=""/><em class="ok"></em></p>' +
		   	'<table class="form long" cellspacing="0" width="400px">'+
				'<tr>' +
					'<td>' +
						'<p>Your Name</p>' +
						'<p><input type="text" id="field_share_yourname" class="text" size="73" value="' + currentUser + '" /></p>' +
					'</td>' +
				'</tr>' +
//				'<tr>' +
//					'<td>' +
//						'<p>Your email</p>' +
//						'<p><input type="text" id="field_share_yourmail" class="text" size="73" value="' + currentEmail + '" /></p>' +
//					'</td>' +
//				'</tr>' +
				'<tr>' +
					'<td>' +
						'<p>Friend\'s email (separate with commas)</p>' +
						'<p><input type="text" id="field_share_emails" class="text" size="73" value="" /></p>' +
					'</td>' +
				'</tr>' +
				'<tr>' +
					'<td>' +
						'<p>Link directly to this ' + entryName + '</p>' +
						'<p><input type="text" id="field_share_link" class="text" disabled="1" size="73" value="' + link + '" /></p>'+
					'</td>' +
				'</tr>' +
				'<tr>' +
					'<td>' +
						'<p>Message (optional)</p>' +
						'<p><textarea cols="70" rows="5" id="field_share_msg" WRAP="physical"></textarea></p>' +
					'</td>' +
				'</tr>' +
		   		'<tr>' +
					'<td  align="right">' +
						'<p><a href="javascript:share_entry_send(document.frmLink)"><img src="localized/en/button_submit_comment.gif" /></a>' +
						'&nbsp;<a href="javascript:copyToClipboard(document.frmLink.field_share_link.value);"><img src="localized/en/button_copy_link.gif" /></a>' +
						'&nbsp;<a href="javascript:oModalWindow.close();"><img src="localized/en/button_cancel_comment.gif" /></a>&nbsp;&nbsp;</p>' +
					'</td>' +
				'</tr>' +
			'</table>' +
			'</div></form>';


	oModalWindow = new Control.Modal(false, {

						containerClassName: 'modalWindowContainer',
						overlayClassName: 'modalWindowOverlay',
						overlayCloseOnClick: false,
						fade: false,
						contents: html
						});

	oModalWindow.open();
}

function showLoadingScreen() {
	html = '<div style="width: 300px; text-align: center;"><img src="rsrc/ajax-loader-big.gif" /><br /><h3>Loading...</h3></div>';
	oLoadingWindow = new Control.Modal(false, {
						containerClassName: 'loadingWindowContainer',
						overlayClassName: 'loadingWindowOverlay',
						overlayCloseOnClick: false,
						opacity: 0.7,
						fade: false,
						contents: html
						});

	oLoadingWindow.open();
	return oLoadingWindow;
}

function closeLoadingScreen() {
	oLoadingWindow.close();
}

function loadBanner(section, container, member) {
	var connector = new AjaxConnector();
	var service = new Service("D0-002", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
	service.setMethod('GET');
	service.addParameter("language", oEnviroment.getLanguage().getID());
	service.addParameter("channel", section);
	service.addParameter("user", member);
	service.addParameter("container", container);
	service.setOnServiceComplete(null, 'loadBannerHandler');
	connector.asyncRun(service);
}

function loadBannerHandler(service) {
	if (service !== null) {
		if (!service.getResult().hasErrors()) {

			var container = service.getParameterByKey("container");
			var serviceRow = service.getResult().getCurrentRow().split("|!|");

			if (parseInt('0' + serviceRow[5],10) == 2) {
				var so = new SWFObject(serviceRow[3], "bannerSWF", serviceRow[2], serviceRow[1], "8", "#000000");
				so.addParam("wmode", "opaque");
				so.write(container);
			} else {
				var element = $(container);
				var bannerHtml = '';
				if (serviceRow[4]) {
					bannerHtml = '<a href="' + serviceRow[4] + '" target="' + serviceRow[6] + '">';
				}
				bannerHtml += '<img src="' + serviceRow[3] + '" alt="banner ad" >'
				if (serviceRow[4]) {
					bannerHtml += '</a>';
				}
				element.innerHTML = bannerHtml;
			}
		}
	}
}

function checkPendingRequests() {
		try {
			var connector = new AjaxConnector();
			var service = new Service("X1-003", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
			service.setMethod('GET');
			service.addParameter("user", oEnviroment.getUser().getID());

			service.setOnServiceComplete(null, 'handlePendingRequests');
			connector.asyncRun(service);
		} catch (e) {
			alert(e.description);
		}
}

function handlePendingRequests(service) {
	if (service !== null) {
		if (!service.getResult().hasErrors()) {

			var container = $("requestsContainer");
			var serviceRow = service.getResult().getCurrentRow().split("|!|");
			if (parseInt('0' + serviceRow[0],10) > 0) {
				container.style.display='';
				var link = $('txtPendingIndicator');
				link.innerHTML = 'You have ' + serviceRow[0] + ' pending requests';
			} else {
				container.style.display='none';
			}
		}
	}
}

function SessionScheduler() {
	var minutes = 1;
	if (session_interval_id == 0 && oEnviroment.isUserLogged()) {
		session_interval_id = setTimeout(function () {
											checkServerSessionStatus();
										 },minutes * 60000);
	} else {
		KillSessionScheduler();
	}
}

function KillSessionScheduler() {
	if (session_interval_id != 0) {
		session_interval_id = 0;
		clearTimeout(session_interval_id);
	}
}

function checkServerSessionStatus() {
	try {
		var connector = new AjaxConnector();
		var service = new Service("X1-004", oEnviroment.getServicePath() + oEnviroment.getServletName(), oEnviroment.getUser().getSID());
		service.setMethod('GET');
		service.addParameter("user", oEnviroment.getUser().getID());

		service.setOnServiceComplete(null, 'handleServerSessionStatus');
		connector.asyncRun(service);
	} catch (e) {
		alert(e.description);
	}
}

function handleServerSessionStatus(service) {
	if (service !== null) {
		if (!service.getResult().hasErrors()) {
			session_interval_id = 0;
			SessionScheduler();
		}
	}
}