/* BSH 2005 */
/* Last revision: 16.06.2005*/
/* 
	This file contains javascript functions for 
   	Teletek MultiImagesPlaceholderControl	
*/
/* window style for resource windows */
var IDS_WIN_TELETEK_ADDIMAGE_FEATURES = "toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=yes, scrollbars=yes, width=640, height=250";
var IDS_WIN_TELETEK_BROWSE_FEATURES = "toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=yes, scrollbars=yes, width=640, height=480";
var IDS_WIN_TELETEK_EDITIMAGE_FEATURES  = "toolbar=no, directories=no, location=no, status=no, menubar=no, resizable=yes, scrollbars=yes, width=640, height=250";

/* trim string function */
function trim(inputString) {
   // Removes leading and trailing spaces from the passed string. Also removes
   // consecutive spaces and replaces it with one space. If something besides
   // a string is passed in (null, custom object, etc.) then return the input.
   if (typeof inputString != "string") { return inputString; }
   var retValue = inputString;
   var ch = retValue.substring(0, 1);
   while (ch == " ") { // Check for spaces at the beginning of the string
      retValue = retValue.substring(1, retValue.length);
      ch = retValue.substring(0, 1);
   }
   ch = retValue.substring(retValue.length-1, retValue.length);
   while (ch == " ") { // Check for spaces at the end of the string
      retValue = retValue.substring(0, retValue.length-1);
      ch = retValue.substring(retValue.length-1, retValue.length);
   }
   while (retValue.indexOf("  ") != -1) { // Note that there are two spaces in the string - look for multiple spaces within the string
      retValue = retValue.substring(0, retValue.indexOf("  ")) + retValue.substring(retValue.indexOf("  ")+1, retValue.length); // Again, there are two spaces in each of the strings
   }
   return retValue; // Return the trimmed string back to the user
} // Ends the "trim" function


/* Clear values for selected image on placeholder control*/
function WBC_ClearSelectedImage(controlID, thIdx)
{
	var hiddenElement = WBC_GetHiddenElementByIdx(controlID, thIdx);
	if(hiddenElement != null)
	{
		var imageElement = document.getElementById(controlID + '_th' + thIdx);
		if(imageElement != null)
		{
			hiddenElement.value = '';
			imageElement.src = 	__CMS_WEBAPP_PATH + "CMS/WebAuthor/Dialogs/TeletekNewsImages/i/empty.gif";;
			imageElement.alt = 'Empty';
		}
	}
}

/* Open AddImage.aspx page */
function WBC_OpenAddImage(controlID, thIdx)
{
	//__CMS_WEBAPP_PATH is defined by MCMS in the page where placeholder resides
	var strAddImageUrl = __CMS_WEBAPP_PATH + "CMS/WebAuthor/Dialogs/TeletekNewsImages/AddImage.aspx?";
	strAddImageUrl = strAddImageUrl + "wbc_controlid=" + controlID;
	strAddImageUrl = strAddImageUrl + "&wbc_thidx=" + thIdx;
	
	WBC_openWindowOnFocus(strAddImageUrl, 'AddImage', IDS_WIN_TELETEK_ADDIMAGE_FEATURES);
}

/* Open EditImage.aspx page*/
function WBC_OpenEditImage(controlID, thIdx)
{
	var hiddenElement = WBC_GetHiddenElementByIdx(controlID, thIdx);
	if(hiddenElement != null)
	{
		var s = new String(hiddenElement.value);
		var valuesArray = s.split(",");
		
		var imageUrl = '';
		var thumbnailUrl = '';
		var comment = '';
		
		if(valuesArray.length == 3)
		{
			imageUrl = valuesArray[0];
			thumbnailUrl = valuesArray[1];
			comment = valuesArray[2];
		}
		if( (imageUrl != '') && (thumbnailUrl != '') )	
		{
			//__CMS_WEBAPP_PATH is defined by MCMS in the page where placeholder resides
			var strEditImageUrl = __CMS_WEBAPP_PATH + "CMS/WebAuthor/Dialogs/TeletekNewsImages/EditImage.aspx?";
			var params = "wbc_controlid=" + controlID;
			params = params + "&wbc_thidx=" + thIdx;
			params = params + "&wbc_imageurl=" + encodeURI(imageUrl);
			params = params + "&wbc_thurl=" + encodeURI(thumbnailUrl);
			params = params + "&wbc_comment=" + encodeURI(comment);
			strEditImageUrl = strEditImageUrl + params;
			
			WBC_openWindowOnFocus(strEditImageUrl, 'EditImage', IDS_WIN_TELETEK_EDITIMAGE_FEATURES);
		}
		else
		{
			alert("No properties to edit!");
		}	
	}	
}

/* Open browser page */
function WBC_OpenImagesBrowser(controlID)
{
	var strURL;

	//__CMS_WEBAPP_PATH is not defined by MCMS in the dialog page
	var strPropertiesBrowserUrl = "/Bella/CMS/WebAuthor/Dialogs/TeletekNewsImages/ImagesBrowser.aspx?";
	strURL = strPropertiesBrowserUrl + "wbc_controlid=" + controlID;
	WBC_openWindowOnFocus(strURL, 'ImagesBrowser', IDS_WIN_TELETEK_BROWSE_FEATURES);
}

/* function is called in context of AddImage.aspx page to set selected url in textbox */
function WBC_SetImageUrl(controlID, imageUrl)
{
	var textBox = document.getElementById(controlID);
	if(textBox != null)
	{
		textBox.value = imageUrl;
	}
}

/* call before WBC_procsBrowserPropertiesWindow() to prepare paramters */
function CallProcsBrowserWindowFunc(controlID)
{
	//WBC_SELECTEDIMAGEURL is defined in ImagesBrowser.aspx page, and is set by SetSelectedImageUrl function
	//when an image is selected for preview
	if(WBC_SELECTEDIMAGEURL != '')
		WBC_procsBrowserPropertiesWindow(controlID, WBC_SELECTEDIMAGEURL);
	else
		alert('No image selected!');
}

/* Check if opener window still exists and call function to set properties*/
function WBC_procsBrowserPropertiesWindow(controlID, imageUrl)
{
	var pFuncWin = WBC_getFuncWin("WBC_SetImageUrl", top.opener);
	
	if (pFuncWin == null) {
		alert("Placeholder not found!");
	} 
	else
	{
		pFuncWin.WBC_SetImageUrl(controlID, imageUrl);
		top.close();
	}
}

/* call before WBC_procsAddImageWindow() to prepare paramters */
function CallProcsAddImageWindowFunc(controlID, idx, imageurl, thumbnailurl, comment)
{
	WBC_procsAddImageWindow(controlID, idx, imageurl, thumbnailurl, comment);
}

/* Check if opener window still exists and call function to set properties*/
function WBC_procsAddImageWindow(controlID, idx, imageurl, thumbnailurl, comment)
{
	var pFuncWin = WBC_getFuncWin("WBC_SetSelectedImageProperties", top.opener);
	
	if (pFuncWin == null) {
		alert("Placeholder not found!");
	} 
	else
	{
		pFuncWin.WBC_SetSelectedImageProperties(controlID, idx, imageurl, thumbnailurl, comment);
		top.close();
	}
}
/* Set selected imageurl, thumbnailurl and comment in current position in placeholder control */
function WBC_SetSelectedImageProperties(controlID, idx, imageurl, thumbnailurl, comment)
{
	var hiddenElement = WBC_GetHiddenElementByIdx(controlID, idx);
	if(hiddenElement != null)
	{
		var imgElement = document.getElementById(controlID + '_th' + idx);
		if(imgElement != null)
		{
			imgElement.src = thumbnailurl;
			imgElement.alt = comment;
			hiddenElement.value = imageurl + "," + thumbnailurl + "," + comment;
		}
	}
}

/* Preview of selected image in images borwser */
function LoadPreview(url, imgTagID)
{
	var imgElement = document.getElementById(imgTagID);
	if(imgElement != null)
	{
		imgElement.src = url;
		imgElement.style.display = 'block';
	}
}

function SetSelectedImageUrl(url)
{
	WBC_SELECTEDIMAGEURL = url;
}

/* currently selected thumbnail in authoring mode */
var WBC_CurrentThumbnailIdx = 0;

/* call to set a border for selected image in placeholder when editing */
/* thumbnail id format: <controlID>_th<idx> */
function WBC_SelectThumbnail(controlID, thIdx)
{
	var imgElementID = controlID + "_th" + thIdx;
	var element = document.getElementById(imgElementID);
	if(element != null)
	{
		element.className = ( element.className != null ? element.className + ' ' : '') + 'multiimages';
		WBC_CurrentThumbnailIdx = thIdx;
		
		for(var i=0; i<4; i++)
		{
			if(i == thIdx)
				continue;
				
			imgElementID = controlID + "_th" + i;
			var imgElement = document.getElementById(imgElementID);
			if(imgElement != null)
			{
				imgElement.className = '';
			}
		}
	}
}

/* Retrieve element by id in dynamically created array with hidden elements */
function WBC_GetHiddenElementByIdx(controlID, idx)
{
	var tmp;
	
	eval('tmp = WBC_' + controlID + '_HiddenIDs[' + idx + ']');
	
	var element = document.getElementById(tmp);
	
	return element;
}

/* Loads big image when a thumbnail is selected */
function WBC_LoadImageByThumbnail(controlID, idx) 
{
	/*
		images array name format: <controlID>_imageArray
		comments array name format: <controlID>_textArray
		big image element id format: WBC_BigImage_<controlID>
		image comment element id format: WBC_ImageComment_<controlID>
	*/	
	var imageArray = null;
	var textArray = null;
	var bigImageID = null;
	var bigImageElement = null;
	var commentID = null;
	var commentElement = null;
	eval("imageArray = " + controlID + "_imageArray;");
	eval("textArray = " + controlID + "_textArray;");
	eval("bigImageID = 'WBC_BigImage_" + controlID + "';");
	eval("commentID = 'WBC_ImageComment_" +  controlID + "';");
	bigImageElement = document.getElementById(bigImageID); 
	commentElement = document.getElementById(commentID);
	
	if( (imageArray != null) && (textArray != null) && (bigImageElement != null) )
	{
		bigImageElement.src = imageArray[idx];
		bigImageElement.alt = textArray[idx];
		
		if(commentElement != null)
			commentElement.innerHTML = textArray[idx];
	}
}