

function hideFadeShowAppear(targetDiv, targetSpan) {
	
	var openedIconSpan = document.getElementById(targetSpan);
	
	if (checkIfDisplayPropertyEqualsNone(targetDiv)) {
		Effect.Appear(targetDiv);
		
		if(openedIconSpan != null && openedIconSpan != undefined)
			openedIconSpan.setAttribute("class", "opened");
		
	} else {
		Effect.Fade(targetDiv,{ duration: 0.1 });
		
		if(openedIconSpan != null && openedIconSpan != undefined)
			openedIconSpan.setAttribute("class", "");
	}
}

function hideFadeShowAppearclose(targetDiv1,targetDiv2,targetSpan1,targetSpan2 ) {
	
		var closedIconSpan1 = document.getElementById(targetSpan1);
		var closedIconSpan2 = document.getElementById(targetSpan2);
		
		if(closedIconSpan1 != null && closedIconSpan1 != undefined)
			closedIconSpan1.setAttribute("class", "");
			
		if(closedIconSpan2 != null && closedIconSpan2 != undefined)
			closedIconSpan2.setAttribute("class", "");
				
		Effect.Fade(targetDiv1,{ duration: 0.1 });
		Effect.Fade(targetDiv2,{ duration: 0.1 });
}

function checkIfDisplayPropertyEqualsNone(targetDiv)
{
	var target = document.getElementById(targetDiv);
	if(target != null) {
		if (target.style.display=='none') {
			return true;
		} else {
			return false;
		}
	}
	else {
		// if nothing is found return true, this way the element will continue visible 
		return true;
	}
}

function hideFadeShowAppearFieldsWrapper(target) {
	hideFadeShowAppear(target + "_groupBox");
}
function changeClassToHideShow(target) {
	
	var content = document.getElementById(target + "_content");
	var group = document.getElementById(target + "_groupBox");
	var link = document.getElementById(target + "_link");
	
	if(group != null && link != null && content != null) {
		
		if(content.style.display=='none') {
			Effect.Appear(content , { beforeStart : function() {
				group.setAttribute("class", "groupBox");
				link.setAttribute("class", "icon");
				}});
		} else {
			Effect.Fade(content, { afterFinish : function() {
				group.setAttribute("class", "groupBox closed");
			link.setAttribute("class", "icon");
				}});
		}
	}
}

var $messageBody=jQuery.noConflict();
function hideFadeShowAppearCardMessage(target1,target2,target3) {
	if (checkIfDisplayPropertyEqualsNone(target1)) {
		Effect.Fade(target2,{ duration: 0 });
		Effect.Appear(target1,{ duration: 0.2 });
		
		$messageBody(target3).toggleClass('unread',false);
		$messageBody(target3).toggleClass('active');
	
		var ul = $messageBody("#cardMessagingAllMessages");
		
		if(ul == null || ul == undefined)
			return;
		
		$messageBody(ul).find('li').each(function() {
			
			var truncatedMessage = $messageBody(this).find('p:first');
			if(truncatedMessage == null || truncatedMessage == undefined)
				return;
			
			var completeMessage = $messageBody(this).find('p.completeMessage');
			if(completeMessage == null || completeMessage == undefined)
				return;
			
			var truncatedMessageId = $messageBody(truncatedMessage).attr("id");
			if(truncatedMessageId == null || truncatedMessageId == undefined)
				return;
			
			var completeMessageId = $messageBody(completeMessage).attr("id");
			if(completeMessageId == null || completeMessageId == undefined)
				return;
			
			if (target1 != truncatedMessageId && target1 != completeMessageId) {
				$messageBody(this).toggleClass('active',false);

				Effect.Fade(completeMessageId,{ duration: 0 });
				Effect.Appear(truncatedMessageId,{ duration: 0.1 });
			}
		});
	} else {
		Effect.Fade(target2,{ duration: 0 });
		Effect.Appear(target1,{ duration: 0.1 });
		$messageBody(target3).toggleClass('active',false);
	}
}

var $clickedItem=jQuery.noConflict();
function hideShowGroup(event) {
	var element = event.target || event.srcElement;
	var selected = $clickedItem(element);
	
	if (selected == null || selected == undefined)
		return;
	
	var item = selected.parent().parent();
	
	if (item == null || item == undefined)
		return;
	
	var subItem = $clickedItem(item).find('> :last-child');
	
	if (subItem == null || subItem == undefined)
		return;
	
	$clickedItem(item).toggleClass('open');
	$clickedItem(subItem).toggleClass('hide');
}

$forceHideGroup=jQuery.noConflict();
function forceHideGroup(elementId) {
	var element = document.getElementById(elementId);
	
	if (element === null || element === undefined)
		return;
	
	var subElement = $forceHideGroup(element).find('> :last-child');
	
	if (subElement === null || subElement === undefined || subElement.size() === 0)
		return;
	
	var subElementTarget = subElement[0];
	
	if (subElementTarget === null || subElementTarget === undefined)
		return;
	
	$forceHideGroup(element).addClass('open');
	$forceHideGroup(subElementTarget).addClass('hide');
	
}

