function resetCheckedElements()
{
	if (document.MGForm.elements.length > 0) 
	{
		for (cx = 0; cx <= document.MGForm.elements.length; cx++)	
		{
			var objElement = document.MGForm.elements[cx];
			var blnFileCheckBox;
			var blnDirectoryCheckBox;
			
			try
			{
				blnFileCheckBox = (document.MGForm.elements[cx].id.indexOf("File") > -1);
				blnDirectoryCheckBox = (document.MGForm.elements[cx].id.indexOf("Directory") > -1);
			}
			catch(e)
			{
				blnFileCheckBox = false;
				blnDirectoryCheckBox = false;
			}

			if (blnFileCheckBox || blnDirectoryCheckBox)
				objElement.checked = false;
		}
	}
}

function initPage()
{
	resetCheckedElements();
	
	disableSingleButtons("ShowImageUploader", !objApi.isIE || objApi.isOpera);
	
	if (strFiles.length > 0) 
		arrSelected = strFiles.split(",");

	if (strDirectories.length > 0) 
		arrSelected = arrSelected.concat(strDirectories.split(","));

	if (arrSelected.length > 0) 
	{
		disableSingleButtons("Paste", false);
	}
	else
	{
		disableSingleButtons("Paste", true);
	}
}

function disableSingleButtons(strName, blnFlag)
{
	var strClassName = blnFlag ? "disabled" : "enabled";

	try 
	{
		document.getElementById(strName).disabled = blnFlag;
		document.getElementById(strName).className = strClassName;
	}
	catch(e){}
}

function showButtonsForNormalItems() 
{
	var intOrphanItemCount = intOrphanFileCount + intOrphanDirectoryCount
	
	disableSingleButtons("Approve", true);
	disableSingleButtons("Disapprove", true);
	disableSingleButtons("Index", true);
	disableSingleButtons("Delete", true);
	disableSingleButtons("Copy", true);
	
	var blnEmpty = arrDirectories.length + arrFiles.length == 0

	if (intOrphanItemCount == 0)
	{
		disableSingleButtons("Approve", blnEmpty);
		disableSingleButtons("Disapprove", blnEmpty);
		disableSingleButtons("Index", blnEmpty);
		disableSingleButtons("Delete", blnEmpty);
		disableSingleButtons("Copy", blnEmpty);
	}
	else
	{
		disableSingleButtons("Index", blnEmpty);
		disableSingleButtons("Delete", blnEmpty);
	}
}

function showButtonsForOrphanItems() 
{
	var intOrphanItemCount = intOrphanFileCount + intOrphanDirectoryCount
	
	disableSingleButtons("Approve", true);
	disableSingleButtons("Disapprove", true);
	disableSingleButtons("Index", true);
	disableSingleButtons("Delete", true);
	disableSingleButtons("Copy", true);

	var blnEmpty = arrDirectories.length + arrFiles.length == 0
	
	if (intOrphanItemCount > 0)
	{
		disableSingleButtons("Index", false);
		disableSingleButtons("Delete", false);
	}
	else
	{
		disableSingleButtons("Disapprove", blnEmpty);
		disableSingleButtons("Approve", blnEmpty);
		disableSingleButtons("Index", blnEmpty);
		disableSingleButtons("Delete", blnEmpty);
		disableSingleButtons("Copy", blnEmpty);
	}
}

function checkFile(intID)
{
	var cx;
		
	if (!removeFile(intID)) 
	{
		arrFiles.push(intID);
		changeImagesForFile(intID, true);
		changeImagesForRating(intID, true);
	}
	else
	{
		changeImagesForFile(intID, false);
		changeImagesForRating(intID, false);
	}

	intOrphanFileCount = 0 
	for (cx = 0; cx < arrFiles.length; cx++)
	{
		if (document.getElementById("FileElementStatus" + arrFiles[cx]).value != 3)
		{
			++intOrphanFileCount;
		}
		document.getElementById("FileElement" + arrFiles[cx]).className = "ActiveFile";
	}

	if (document.getElementById("FileElementStatus" + intID).value == 3)
		showButtonsForNormalItems(); 
	else
		showButtonsForOrphanItems(); 

}

function removeFile(intElement) 
{ 
	var cx;
	
	if (arrFiles.length)
	{
		for (cx = 0; cx < arrFiles.length; cx++)
		{
			if (arrFiles[cx] == intElement) 
			{
				document.getElementById("FileElement" + arrFiles[cx]).className = "File";
				arrFiles[cx] = arrFiles[arrFiles.length - 1];
				return arrFiles.pop();
			}
		}
	}
	return false;
}

function checkDirectory(intID)
{
	var cx;

	if (!removeDirectory(intID)) 
	{
		arrDirectories.push(intID);
		changeImagesForDirectory(intID, true);
	}
	else
	{
		changeImagesForDirectory(intID, false);
	}
	
	intOrphanDirectoryCount = 0 
	for (cx = 0; cx < arrDirectories.length; cx++)
	{
		if (document.getElementById("DirectoryElementStatus" + arrDirectories[cx]).value != 3)
		{
			++intOrphanDirectoryCount;
		}
		document.getElementById("DirectoryElement" + arrDirectories[cx]).className = "ActiveDirectory";
	}
	
	if (document.getElementById("DirectoryElementStatus" + intID).value == 3)
		showButtonsForNormalItems(); 
	else
		showButtonsForOrphanItems(); 
}

function removeDirectory(intElement) 
{ 
	var cx;
	
	if (arrDirectories.length)
	{
		for (cx = 0; cx < arrDirectories.length; cx++)
		{
			if (arrDirectories[cx] == intElement)
			{
				document.getElementById("DirectoryElement" + arrDirectories[cx]).className = "Directory";
				arrDirectories[cx] = arrDirectories[arrDirectories.length - 1];
				return arrDirectories.pop();
			}
		}
	}
	return false;
}


function selectAllItems(paramName)
{
	var blnDeselectModeOn;
	intOrphanItemCount = 0;

	var blnDeselectModeOn = (document.getElementById("SelectAll").className == "enabled");

	disableSingleButtons("SelectAll", blnDeselectModeOn);
	disableSingleButtons("DeselectAll", !blnDeselectModeOn);
	
	if (document.MGForm.elements.length > 0) 
	{
		for (cx = 0; cx <= document.MGForm.elements.length; cx++)	
		{
			var objElement = document.MGForm.elements[cx];
			var blnFileCheckBox;
			var blnDirectoryCheckBox;
			
			try	
			{
				blnFileCheckBox = document.MGForm.elements[cx].id.indexOf("checkedFile") > -1;
				blnDirectoryCheckBox = document.MGForm.elements[cx].id.indexOf("checkedDirectory") > -1;
			}
			catch(e)
			{
				blnFileCheckBox = false;
				blnDirectoryCheckBox = false;
			}

			if (blnFileCheckBox)
			{
				var intFileID = objElement.id.substring(11, objElement.id.length)
				
				if (!objElement.checked && blnDeselectModeOn) 
				{
					checkFile(intFileID);
					objElement.checked = true;
					changeImagesForFile(intFileID, true);
					changeImagesForRating(intFileID, true);
				}
				else if (!blnDeselectModeOn) 
				{
					removeFile(intFileID);
					objElement.checked = false;
					changeImagesForFile(intFileID, false);
					changeImagesForRating(intFileID, false);
					showButtonsForNormalItems();
				}
			}

			if (blnDirectoryCheckBox)
			{
				var intDirectoryID = objElement.id.substring(16, objElement.id.length)
						
				if (!objElement.checked && blnDeselectModeOn) 
				{
					checkDirectory(intDirectoryID);
					objElement.checked = true;
					changeImagesForDirectory(intDirectoryID, true);

				}
				else if (!blnDeselectModeOn) 
				{
					removeDirectory(intDirectoryID);
					objElement.checked = false;
					changeImagesForDirectory(intDirectoryID, false);
					showButtonsForNormalItems();
				}
			}
		}
	}
}

function keyDown(e)
{
	if (!e) e = window.event;
	
	if (e.ctrlKey == true && e.keyCode == 81)
		selectAllItems("keyDown");
}

function deletePreview()
{
	try 
	{
		objImg.width = 0;
		objImg.height = 0;
		objImg.RemoveNode();
	}
	catch (e){}
}

function showPreview(strValue)
{
	var intPos = strValue.lastIndexOf(".");
	var strExt = strValue.substr(intPos + 1, strValue.length - intPos - 1);
	
	if(strExt.toLowerCase() == "png" || strExt.toLowerCase() == "jpg" || strExt.toLowerCase() == "jpeg" 
		|| strExt.toLowerCase() == "bmp" || strExt.toLowerCase() == "gif" || strExt.toLowerCase() == "jpe")
	{
		var intThumbnailSize = 380;
		var intThumbnailWidth;
		var intThumbnailHeight;
	
		objImg = document.createElement("img");
		objImg.setAttribute("src", strValue);
		
		intThumbnailWidth = intThumbnailSize;
		intThumbnailHeight = objImg.height * intThumbnailWidth / objImg.width;
		
		objImg.setAttribute("width",intThumbnailWidth);
		objImg.setAttribute("height",intThumbnailHeight);
		document.getElementById("previewbox").appendChild(objImg);

	}
}

function disableSubmitButton(objElement, objHiddenElement)
{
	objSubmitButton = objElement;
	objHiddenSubmitButton = objHiddenElement;
}

function validateForm()
{
	var blnValidationActive = typeof(Page_ValidationActive) != "undefined";
	var blnPageValid = typeof(Page_IsValid) != "undefined" && Page_IsValid && typeof(objSubmitButton) != "undefined";

	if ((!blnValidationActive || blnPageValid) && typeof(objSubmitButton) != "undefined")
	{
		objSubmitButton.style.display = "none";
		document.getElementById(objHiddenSubmitButton).className = "VisibleButton";
		document.getElementById(objHiddenSubmitButton).disabled = true;
	}
	
	return false;
}

function changeImagesForDirectory(intID, blnSetActive)
{
	for (var cx = 0; cx < arrDirectoryImages.length; cx++)
	{
		if (document.getElementById(arrDirectoryImages[cx].name + intID) != null)
			document.getElementById(arrDirectoryImages[cx].name + intID).src = blnSetActive ? arrDirectoryActiveImages[cx].src : arrDirectoryImages[cx].src;
	}
}

function changeImagesForFile(intID, blnSetActive)
{
	for (var cx = 3; cx <= 6; cx++)
	{
		if (document.getElementById(arrFileImages[cx].name + intID) != null)
			document.getElementById(arrFileImages[cx].name + intID).src = blnSetActive ? arrFileActiveImages[cx].src : arrFileImages[cx].src;
	}
}

function changeImagesForRating(intID, blnSetActive)
{
	for (var cx = 1; cx <= 5; cx++)
	{
		if (document.getElementById('s01' + cx + intID) != null)
			document.getElementById('s01' + cx + intID).src = blnSetActive ? arrFileActiveImages[0].src : arrFileImages[0].src;
		if (document.getElementById('s02' + cx + intID) != null)
			document.getElementById('s02' + cx + intID).src = blnSetActive ? arrFileActiveImages[1].src : arrFileImages[1].src;
		if (document.getElementById('s03' + cx + intID) != null)
			document.getElementById('s03' + cx + intID).src = blnSetActive ? arrFileActiveImages[2].src : arrFileImages[2].src;
	}
}
  
            


