/**
 * feature search paragraph
 */

function mouseOver(e){
    e.style.backgroundPosition="0px -30px";
}

function mouseOut(e){
    e.style.backgroundPosition="0px 0px";
}

/**
 * media carousel paragraph
 */

	// #######################   initPage  ###########################
	function initPage() {
  		//alert("gMediaItems " + gMediaItems[0].uuid + " length: " + gMediaItems.length);
		jQuery('.mediaImage_print').css('display', 'none');
		renderMediaScrollerItems(paragraphUUID); // #### render all media scroller items of actual conetnt uuid of this paragraph
		
		// fix media scroller in pressDB when there is only 1 item:
		if ( jQuery('#pressRelease .mediaScrollerArea .mediaScrollerItem').length == 1 ) {
			jQuery('#pressRelease .mediaScrollerArea').hide();
		}

	}


	// ###############   mediaItem   constructor  ###############
	mediaItem = function (type, path, thumbnailPath, mediaElementId, subtitleElementId) {
		this.type = type;
		this.path = path;
		this.thumbnailPath = thumbnailPath;
      	this.subtitleElementId = subtitleElementId;
      	this.mediaElementId = mediaElementId;
      	this.paragraphUUID = paragraphUUID;
      	this.thumbnailElementId = null;
		this.itemNumber = gMediaItems.length;

		gMediaItems[gMediaItems.length] = this; // ## gMediaItems Object array
	}


	// #######################   mediaScrollerBtn  ###########################
	function mediaScrollerBtn(direction, displayUUID) {

		var mediaScroller = document.getElementById('mediaScroller_' + displayUUID);
		if(mediaScroller == null)return;

		// ## check number of media items of media scroller ####
		var mediaArrayOfParagraph = new Array();
		for(var i = 0; i < gMediaItems.length; i++){
			var mediaItem = gMediaItems[i];
    		if(mediaItem.paragraphUUID == displayUUID && mediaItem.path.length > 0 ) {
    			mediaArrayOfParagraph.push(mediaItem);
			}
		}

		var offsetX = 30;
		var stepWidth = gThumbnailWidth + 10.0; // ## thumbnail width and margin right 10px
		var visibleItems = 5;
		var numberOfItems = mediaArrayOfParagraph.length;
		var minLeft = offsetX + (numberOfItems - visibleItems) * stepWidth * -1;

		var maxLeft = offsetX;

		var mediaScrollerWidth = (1.0 * stepWidth * numberOfItems);
		var mediaScrollerVisibleWidth = (1.0 * stepWidth * visibleItems);

		mediaScroller.style.width = mediaScrollerWidth + "px";

		showElement('mediaScrollerBtnPrev_' + displayUUID, true);
		showElement('mediaScrollerBtnNext_' + displayUUID, true);

		// #### PREVIOUS #######
		if(direction == 'previous'){
			gActualLeft = 1.0 *(gActualLeft + stepWidth);

			if(gActualLeft >= maxLeft) {
				gActualLeft = maxLeft;
				showElement('mediaScrollerBtnPrev_' + displayUUID, false);
			} else {
				showElement('mediaScrollerBtnPrev_' + displayUUID, true);
			}

			var widthAndNew = (mediaScrollerVisibleWidth + (-1.0 * gActualLeft) + offsetX) * 1.0;
			var rectString = "rect(0px, " + widthAndNew + "px, " + gThumbnailHeight + "px, " + ((-1.0 * gActualLeft) + offsetX) + "px)";
			mediaScroller.style.clip = rectString;
			mediaScroller.style.left = gActualLeft + "px";
		}

		// #### NEXT #######
		if(direction == 'next'){
			gActualLeft = 1.0 *(gActualLeft - stepWidth);
			if(gActualLeft <= minLeft) {
				gActualLeft = minLeft;
				showElement('mediaScrollerBtnNext_' + displayUUID, false);
			} else {
				showElement('mediaScrollerBtnNext_' + displayUUID, true);
			}

			var widthAndNew = (mediaScrollerVisibleWidth + (-1.0 * gActualLeft) + offsetX) * 1.0;
			var rectString = "rect(0px, " + widthAndNew + "px, " + gThumbnailHeight + "px, " + ((-1.0 * gActualLeft) + offsetX) + "px)";
			mediaScroller.style.clip = rectString;
			mediaScroller.style.left = gActualLeft + "px";
		}

	}

	// #######################   switchMedia  ###########################
	function switchMedia(mediaNumberOfParagrph, displayUUID) {
		var mediaArrayOfParagraph = new Array();

		for(var i = 0; i < gMediaItems.length; i++){
			var mediaItem = gMediaItems[i];
    		if(mediaItem.paragraphUUID == displayUUID && mediaItem.path.length > 0 ) {
    			mediaArrayOfParagraph.push(mediaItem);
			}
		}

		if(mediaNumberOfParagrph >= 0 && mediaNumberOfParagrph < mediaArrayOfParagraph.length){
			mediaItem = mediaArrayOfParagraph[mediaNumberOfParagrph];
			displayMedia(mediaItem.itemNumber, displayUUID);
		}

	}


	// #######################   displayMedia  ###########################
	function displayMedia(displayItemNumber, displayUUID) {
		var mediaItem = gMediaItems[displayItemNumber];
		if (typeof mediaItem != "object") return;

		ShowObjectProperties(mediaItem);

		var mediaStage = document.getElementById('mediaStage_' + mediaItem.paragraphUUID);
		if(mediaStage == null)return;

		// ######### hide/show selected media ########
var prntElDone = false;
		for(var i = 0; i < gMediaItems.length; i++){
			var checkMediaItem = gMediaItems[i];
			var checkMediaElement = document.getElementById(checkMediaItem.mediaElementId);
			if(checkMediaElement != null){

//alert("displaying "+checkMediaItem.type +"     "+ checkMediaItem.mediaElementId +"=="+ mediaItem.mediaElementId);

				// #############   VIDEO   ###############
				if(checkMediaItem.type == 'video' || checkMediaItem.type == 'audio'){
					if(checkMediaItem.mediaElementId == mediaItem.mediaElementId){
						var swfPlayerFile = eads.path.player5resources + "swf/" + eads.path.player5prefix + "player5.x.swf";
						var so = new SWFObject(swfPlayerFile,'ply1',gMediaAreaWidth,gMediaAreaHeight,'9');
						so.addParam('allowfullscreen','true');
						so.addParam('allowscriptaccess','always');
						so.addParam('wmode','opaque');
						so.addVariable('file', mediaItem.path);
					  	so.addVariable('autostart','true');
					  	so.addVariable('stretching','exactfit');
					  	//so.addVariable('skin','http://www.longtailvideo.com/jw/upload/stylish.swf');
					  	so.addVariable('backcolor','EBEBEB');
					  	so.addVariable('frontcolor','7F7D7E');
						so.addVariable('lightcolor','019BE1');

						so.write(checkMediaItem.mediaElementId);

						checkMediaElement.style.display = "block";
						checkMediaElement.style.visibility = "visible";

						//ShowObjectProperties(checkMediaElement);
					} else {
						checkMediaElement.style.display = "none";
						checkMediaElement.style.visibility = "hidden";
					}
				}
				//alert("checkMediaElement: " + checkMediaElement + " currentTime: " + checkMediaElement.currentTime + " paused: " + checkMediaElement.paused );

				// #############   IMAGE   ###############
				if(checkMediaItem.type == 'image'){
					if(checkMediaItem.mediaElementId == mediaItem.mediaElementId){
						checkMediaElement.style.display = "block";
						checkMediaElement.style.visibility = "visible";
					} else {
						checkMediaElement.style.display = "none";
						checkMediaElement.style.visibility = "hidden";
					}
// #############   Reneder element to use during printing
if(!prntElDone )
{

}
				}

			}
		}

		// ########## Update mediaSubtitleArea   ###############
		var subtitleElement = document.getElementById(mediaItem.subtitleElementId);
		if(subtitleElement != null){
			var contentHTML = subtitleElement.innerHTML;
		} else {
			var contentHTML = "";
		}
		setInnerHtml('mediaSubtitleArea_' + mediaItem.paragraphUUID , contentHTML);
	}


	// #######################   renderMediaScrollerItems  ###########################
	function renderMediaScrollerItems() {

		var mediaScroller = document.getElementById('mediaScroller_' + paragraphUUID);
		if(mediaScroller == null)return;

		var hasMediaItems = false;
		var numberOfMediaItems = 0;

		for(var i = 0; i < gMediaItems.length; i++){
			var mediaItem = gMediaItems[i];
			var path = mediaItem.path;
			var type = mediaItem.type;
    		var thumbnailElementId = "mediaScrollerItem_" + i;
    		var thumbnailImageElementId = "mediaScrollerItemThumbnail_" + i;

    		if(mediaItem.paragraphUUID == paragraphUUID && mediaItem.path.length > 0) {
    			// ######  mediaThumbnailElement <SPAN> ELEMENT     ######
				var mediaThumbnailElement = createDOMElement("span" , mediaScroller ,"", "mediaScrollerItem" , thumbnailElementId);
				gMediaItems[i].thumbnailElementId = thumbnailElementId;
				mediaThumbnailElement.setAttribute("uuid", mediaItem.paragraphUUID);
				mediaThumbnailElement.setAttribute("itemNumber", mediaItem.itemNumber);

				attachEventListener(mediaThumbnailElement, "click", "selectMediaElement", false); // ## attach click event listener
				hasMediaItems = true;
				numberOfMediaItems = numberOfMediaItems + 1;

				// ############ DISPLAY THUMBNAIL IMAGE ############
				if(mediaItem.type == 'image'){

					var thumbnailImageElement = createDOMElement("img" , mediaThumbnailElement ,"", "mediaScrollerItemThumbnail" , thumbnailImageElementId);
					thumbnailImageElement.style.width = gThumbnailWidth + "px";
					thumbnailImageElement.style.height = gThumbnailHeight + "px";

					if(mediaItem.thumbnailPath.length > 0){
						thumbnailImageElement.src = mediaItem.thumbnailPath;
					} else {
						thumbnailImageElement.src = mediaItem.path;
					}
				}

				// ############ DISPLAY THUMBNAIL VIDEO ############
				if(mediaItem.type == 'video'){
					var thumbnailImageElement = createDOMElement("div" , mediaThumbnailElement ,"", "mediaScrollerItemThumbnail_Video" , thumbnailImageElementId);
					thumbnailImageElement.style.width = gThumbnailWidth + "px";
					thumbnailImageElement.style.height = gThumbnailHeight + "px";

					if(mediaItem.thumbnailPath.length > 0){
						thumbnailImageElement.style.backgroundImage = 'url(' + mediaItem.thumbnailPath + ')';
						thumbnailImageElement.style.backgroundPosition = '0px 0px';
					}

				}

				// ############ DISPLAY THUMBNAIL AUDIO ############
				if(mediaItem.type == 'audio'){
					var thumbnailImageElement = createDOMElement("div" , mediaThumbnailElement ,"", "mediaScrollerItemThumbnail_Audio" , thumbnailImageElementId);
					thumbnailImageElement.style.width = gThumbnailWidth + "px";
					thumbnailImageElement.style.height = gThumbnailHeight + "px";

					if(mediaItem.thumbnailPath.length > 0){
						thumbnailImageElement.style.backgroundImage = 'url(' + mediaItem.thumbnailPath + ')';
						thumbnailImageElement.style.backgroundPosition = '0px 0px';
					}
				}


				//alert("mediaThumbnailElement " + mediaThumbnailElement);
			}
		}


		// ### display first item of pragraph ####
		if(hasMediaItems == true){
			if(numberOfMediaItems > 5){
				showElement('mediaScrollerBtnPrev_' + paragraphUUID, false);
				showElement('mediaScrollerBtnNext_' + paragraphUUID, true);
			} else {
				showElement('mediaScrollerBtnPrev_' + paragraphUUID, false);
				showElement('mediaScrollerBtnNext_' + paragraphUUID, false);
			}

			switchMedia(0, paragraphUUID);
		}

	}


	// #######################   selectMediaElement  ###########################
	function selectMediaElement(_itm, _puid) {
		var itemNumber = _itm;
		var paragraphUUID = _puid;
	if(!_itm || !_puid)
	{
		if (typeof this.event != "undefined"){
			itemNumber = this.event.srcElement.parentNode.itemNumber;
			var paragraphUUID = this.event.srcElement.parentNode.paragraphUUID;
		} else {
			itemNumber = this.getAttribute('itemNumber');
			var paragraphUUID = this.getAttribute('uuid');
		}
	}
/*
*/

		displayMedia(itemNumber, paragraphUUID);
		//alert("selectMediaElement id: " + this.id + " itemNumber: " + itemNumber + " paragraphUUID: " + uuid);

	}


	// ###############   showElement    ###############
	function showElement(id, status){
		if(status == null){var status = true;}

		var element = document.getElementById(id);
		if(element != null) {
			if(status == false){
				element.style.visibility = "hidden";
			}

			if(status == true){
				element.style.visibility = "visible";
			}
		}
	}

	// ### ShowObjectProperties  ###
	function ShowObjectProperties(mObject) {
		var errorDiv = document.getElementById('errorDiv');
		var contentHTML = '';
		if(errorDiv != null){
    		for (var i in mObject) {
        		contentHTML += '<BR><B>' + i + '</B> = ' + mObject[i];
    		}
    		setInnerHtml('errorDiv' , contentHTML);
    	}
	}
	
	

