function objApi()
{
	this.agent = window.navigator.userAgent.toLowerCase();
	this.formName = "MGForm";
	this.isDOM = typeof(document.getElementById) != "undefined";
	this.isIE = (this.agent.indexOf("msie") >= 0 && typeof(document.all) != "undefined");
	this.isIE4 = (document.all && !this.isDOM);
	this.isNC = this.agent.indexOf("netscape") > -1;
	this.isNC4 = this.isNC && !isDOM;
	this.isMac = this.agent.indexOf("mac") >= 0;
	this.isOpera = (this.agent.indexOf("opera") != -1);
}

var objApi = new objApi();
objApi.formName = "MGForm";  //Put the form name here

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);
		showButtons();
	}
	else
	{
		disableSingleButtons("Paste", true);
	}
}

function disableExtButtons(blnFlag)
{
	disableSingleButtons("Delete", blnFlag);
	disableSingleButtons("Approve", blnFlag);
	disableSingleButtons("Copy", blnFlag);
}

function disableSingleButtons(strName, blnFlag)
{
	var strClassName = blnFlag ? "disabled" : "enabled";

	try 
	{
		document.getElementById(strName).disabled = blnFlag;
		document.getElementById(strName).className = strClassName;
	}
	catch(e)
	{}
}

function showButtons() 
{
	disableExtButtons(!(arrDirectories.length > 0 || arrFiles.length > 0));
	disableSingleButtons("Index", !(arrDirectories.length > 0 || arrFiles.length > 0));

	if (intOrphanItemCount > 0 && intOrphanItemCount == arrDirectories.length + arrFiles.length)
	{
		disableExtButtons(true);
	}
}

//--------------------------------------------------------------------------------------------------------

function checkFile(intID)
{
	var cx;
	
	if (!removeFile(intID)) 
	{
		arrFiles.push(intID);
		changeImagesForFile(intID, true);
		changeImagesForRating(intID, true);
	}
	else
	{
		changeImagesForFile(intID, false);
		changeImagesForRating(intID, false);
	}

	for (cx = 0; cx < arrFiles.length; cx++)
	{
		if (document.getElementById("FileElementStatus" + arrFiles[cx]).value != 3)
		{
			intOrphanItemCount++;
		}
		document.getElementById("FileElement" + arrFiles[cx]).className = "ActiveFile";
	}

	if (document.getElementById("FileElementStatus" + intID).value == 3)
	{
		showButtons(); 
	}
	else
	{
		if (intOrphanItemCount > 0)
		{
			disableSingleButtons("Index", false);
		}
		else
		{
			disableSingleButtons("Index", arrDirectories.length + arrFiles.length == 0);
		}
	}
}

function removeFile(intElement) 
{ 
	var cx;
	
	if (arrFiles.length)
	{
		for (cx = 0; cx < arrFiles.length; cx++)
		{
			if (document.getElementById("FileElementStatus" + arrFiles[cx]).value != 3)
			{
				intOrphanItemCount--;
			}
			
			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);
	}
	
	for (cx = 0; cx < arrDirectories.length; cx++)
	{
		if (document.getElementById("DirectoryElementStatus" + arrDirectories[cx]).value != 3)
		{
			intOrphanItemCount++;
		}
		document.getElementById("DirectoryElement" + arrDirectories[cx]).className = "ActiveDirectory";
	}
	
	if (document.getElementById("DirectoryElementStatus" + intID).value == 3)
	{
		showButtons(); 
	}
	else
	{
		if (intOrphanItemCount > 0)
		{
			disableSingleButtons("Index", false);
		}
		else
		{
			disableSingleButtons("Index", arrDirectories.length + arrFiles.length == 0);
		}
	}
}

function removeDirectory(intElement) 
{ 
	var cx;
	
	if (arrDirectories.length)
	{
		for (cx = 0; cx < arrDirectories.length; cx++)
		{
			if (document.getElementById("DirectoryElementStatus" + arrDirectories[cx]).value != 3)
			{
				intOrphanItemCount--;
			}
			
			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);
					showButtons();
				}
			}

			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);
					showButtons();
				}
			}
		}
	}
}

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 = 156;
		var intThumbnailWidth;
		var intThumbnailHeight;
	
		objImg = document.createElement("img");
		objImg.setAttribute("src", strValue);
		
		var intImageWidth = objImg.width;
		var intImageHeight = objImg.height;

		intThumbnailWidth = intThumbnailSize;
		intThumbnailHeight = intImageHeight * intThumbnailWidth / intImageWidth;
		
		if (objImg.height < objImg.width)
		{
			intThumbnailHeight = intThumbnailWidth;
			intThumbnailWidth = intImageWidth * intThumbnailHeight / intImageHeight;
		}
		
		if (intThumbnailHeight < 600) 
		{
			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;
	}
}
  
            


