// ----------------------------------------------------------------------------------------------------
// Air Hollywood DAM - Global JavaScript File (global.js) ~ Sol Media Development
// Developed By Ashley J. Dawson (16/01/06)
// ----------------------------------------------------------------------------------------------------

//Macromedia DOM Search function
function MM_findObj(n, d) //v4.01
{
  var p,i,x;  if(!d) d=document; if((p=n.indexOf("?"))>0&&parent.frames.length) {
  d=parent.frames[n.substring(p+1)].document; n=n.substring(0,p);}
  if(!(x=d[n])&&d.all) x=d.all[n]; for (i=0;!x&&i<d.forms.length;i++) x=d.forms[i][n];
  for(i=0;!x&&d.layers&&i<d.layers.length;i++) x=MM_findObj(n,d.layers[i].document);
  if(!x && d.getElementById) x=d.getElementById(n); return x;
}

//Perform Login
function frmUserLogin()
{
	MM_findObj('frmUserLogin').submit();
}

//Confirm Delete (Redirects on confirm)
function ConfirmDelete(sName, sURL)
{
	if(confirm('Are you sure that you want to delete \''+sName+'\'?'))
		location.assign(sURL);
}

//Confirm sending mail to mailing list
function ConfirmMailSend(sName, sURL)
{
	if(confirm('Are you sure that you want to send \''+sName+'\'?'))
		location.assign(sURL);	
}

//Email validator
function checkMail(email)
{
	var x = email;
	var filter  = /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/;
	if (filter.test(x))
	{
		return true;
	}
	else
	{
		return false;
	}
}

//Validate user form
function chkUserForm()
{
	var frmUsername = MM_findObj('frmUsername').value;
	var frmPassword = MM_findObj('frmPassword').value;
	var frmEmail = MM_findObj('frmEmail').value;
	var frmFirstName = MM_findObj('frmFirstName').value;
	var frmLastName = MM_findObj('frmLastName').value;
	var errMsg = '';
	
	if(frmUsername == '')
	{
		errMsg = errMsg + ' - \'Username\'\n';
	}
	
	if(frmPassword == '')
	{
		errMsg = errMsg + ' - \'Password\'\n';
	}
	
	if(checkMail(frmEmail) == false)
	{
		errMsg = errMsg + ' - \'Email\' is invalid\n';
	}
	
	if(frmFirstName == '')
	{
		errMsg = errMsg + ' - \'First Name\'\n';
	}
	
	if(frmLastName == '')
	{
		errMsg = errMsg + ' - \'Last Name\'\n';
	}
	
	if(errMsg == '')
	{
		return true;
	}
	else
	{
		errMsg = 'Please check the following fields:\n\n' + errMsg;
		alert(errMsg);
		return false;
	}
}

//Populate the Inventory Manager hidden CSV field with select box status IDs
function PopulateInventoryManagerCSV()
{
	var sIDCSV = "";
	var oSels = document.getElementsByTagName('select');
	for(x=0;x<oSels.length;x++)
	{
		var sSelId = oSels[x].id;
		if(sSelId.indexOf('frmStatus') > -1)  // Get only the select boxes for the inventory manager
		{
			sIDCSV += sSelId.substr((sSelId.lastIndexOf('_')+1),sSelId.length) + ',';
		}
	}
	sIDCSV = sIDCSV.substr(0, (sIDCSV.length - 1));
	MM_findObj('frmStatusCSV').value = sIDCSV;
}

//Collapse all submenus in category tree
function CollapseAll(num)
{
	for(x=1;x<num+1;x++)
	{
		if(MM_findObj('menu'+x))
		{
			MM_findObj('menu'+x).style.display = 'none';
			MM_findObj('link'+x).innerHTML = ' + ';
		}
	}
}

//Expand submenus in category tree
function ExpandMenu(id)
{
	if(MM_findObj('menu'+id))
	{
		if(MM_findObj('menu'+id).style.display == 'block')
		{
			MM_findObj('menu'+id).style.display = 'none';
			MM_findObj('link'+id).innerHTML = ' + ';
		}
		else if(MM_findObj('menu'+id).style.display == 'none')
		{
			MM_findObj('menu'+id).style.display = 'block';
			MM_findObj('link'+id).innerHTML = ' - ';
		}
		else
		{
			MM_findObj('menu'+id).style.display = 'none';
			MM_findObj('link'+id).innerHTML = ' + ';
		}
	}
}

//Check/uncheck selected box and children
function CheckBoxes(id)
{
	var num = MM_findObj('frmCategoryCount').value + 1;
	var sCatStr = ''
	var aCatStr = MM_findObj('frmCat'+id).value;
	aCatStr = aCatStr.split('|');
	//Check/uncheck children
	for(x=1;x<num;x++)
	{
		if(MM_findObj('frmCat'+x))
		{
			sCatStr = MM_findObj('frmCat'+x).value;
			if(sCatStr.indexOf('|'+id+'|') > -1)
			{
				if(MM_findObj('frmCat'+id).checked)
				{
					MM_findObj('frmCat'+x).checked = true;
					//If parent expand category tree
					if(MM_findObj('menu'+x))
					{
						if(MM_findObj('menu'+x).style.display == 'none')
						{
							ExpandMenu(x);
						}
					}
				}
				else
				{
					MM_findObj('frmCat'+x).checked = false;
				}
			}
		}
	}
	//Check/uncheck parentage
	for(x=2;x<aCatStr.length-2;x++)
	{
		if(MM_findObj('frmCat'+id).checked)
		{
			MM_findObj('frmCat'+aCatStr[x]).checked = true;
		}
	}
}

//Show all selected category ids
function ShowSelectedIds()
{
	var num = MM_findObj('frmCategoryCount').value + 1;
	allChecked = '';
	for(x=1;x<num;x++)
	{
		if(MM_findObj('frmCat'+x))
		{
			if(MM_findObj('frmCat'+x).checked)
			{
				allChecked += MM_findObj('frmCat'+x).id + ',';
			}
		}
	}
	allChecked = allChecked.replace(/frmCat/g,'');
	allChecked = allChecked.substring(0,(allChecked.length-1))
	if(!allChecked)
	{
		alert("No checked items");
	}
	else
	{
		MM_findObj('frmSelectedCategories').value = allChecked;
		//alert(MM_findObj('frmSelectedCategories').value);
	}
}

//Check search form value
function ChkForm()
{
	if(MM_findObj('frmCategory').value == '')
	{
		return false;
	}
	return true;
}

//Populate search dropdowns
function PopulateSelect()
{
	var frmType = MM_findObj('frmType').value;
	MM_findObj('frmCategory').length = 0;
	if(frmType == 'stock_footage')
	{
		for(x=0;x<aStock.length;x++)
		{
			sStock = aStock[x].split('|');
			oNewOption = new Option(sStock[1],sStock[0]);
			MM_findObj('frmCategory').options.add(oNewOption);
		}
	}
	else
	{
		for(x=0;x<aProps.length;x++)
		{
			sProps = aProps[x].split('|');
			oNewOption = new Option(sProps[1],sProps[0]);
			MM_findObj('frmCategory').options.add(oNewOption);
		}
	}
}

//Add sub-category
function AddToCategory()
{
	var oFrmCat = document.getElementsByName('frmCat');
	var x;
	var selCat;
	var isSelected = false;
	// Get value of selected option
	for(x=0;x<oFrmCat.length;x++)
	{
		if(oFrmCat[x].checked)
		{
			selCat = oFrmCat[x].value;
			isSelected = true;
		}
	}
	if(isSelected)
	{
		selCat = selCat.substring(1,(selCat.length-1))
		var aContents = selCat.split('|');
		var sURL = document.URL;
		if(sURL.indexOf('action') > 0)
		{
			sURL = sURL.substring(0,sURL.length-12)
		}
		MM_findObj('selID').value = aContents[0];
		MM_findObj('frmCategoryTree').action = sURL + '?action=add_form';
		MM_findObj('frmCategoryTree').submit();
	}
	else
	{
		alert('Please select a parent gallery');
	}
}

//Edit Category
function EditCategory()
{
	var oFrmCat = document.getElementsByName('frmCat');
	var x;
	var selCat;
	var isSelected = false;
	// Get value of selected option
	for(x=0;x<oFrmCat.length;x++)
	{
		if(oFrmCat[x].checked)
		{
			selCat = oFrmCat[x].value;
			isSelected = true;
		}
	}
	if(isSelected)
	{
		var sURL = document.URL;
		if(sURL.indexOf('action') > 0)
		{
			sURL = sURL.substring(0,sURL.length-12)
		}
		selCat = selCat.substring(1,(selCat.length-1))
		var aContents = selCat.split('|');
		MM_findObj('selID').value = aContents[0];
		MM_findObj('frmCategoryTree').action = sURL + '?action=edit_form';
		MM_findObj('frmCategoryTree').submit();
	}
	else
	{
		alert('Please select a gallery to edit');
	}
}

//Delete Category
function DeleteCategory()
{
	var oFrmCat = document.getElementsByName('frmCat');
	var x;
	var selCat;
	var isSelected = false;
	// Get value of selected option
	for(x=0;x<oFrmCat.length;x++)
	{
		if(oFrmCat[x].checked)
		{
			selCat = oFrmCat[x].value;
			isSelected = true;
		}
	}
	if(isSelected)
	{
		selCat = selCat.substring(1,(selCat.length-1))
		var aContents = selCat.split('|');
		if(aContents.length > 3)  // if the length of aContents = 3 it is a root category and can not be deleted
		{
			if(confirm('Are you sure you want to delete this gallery? \nAll sub-galleries and images will also be deleted and can not be retrievable'))
				var sURL = document.URL;
				if(sURL.indexOf('action') > 0)
				{
					sURL = sURL.substring(0,sURL.length-12)
				}
				MM_findObj('selID').value = aContents[0];
				MM_findObj('frmCategoryTree').action = '?action=delete';
				MM_findObj('frmCategoryTree').submit();
		}
		else
		{
			// if the length of aContents = 3 it is a root category
			alert('You can not delete a root gallery')
		}
	}
	else
	{
		alert('Please select a gallery');
	}
}

//Redirect back to catagory select page onclick of cancel button
function CategoryCancel()
{
	location.assign('gallerymanager.php');
}

//Confirm Price Code Delete (Submit form on confirm)
function ConfirmPriceCodeDelete(iID, sName) 
{
	if(confirm('Are you sure that you want to delete \''+sName+'\'?'))
	{
		MM_findObj('frmFunction_'+iID).value = 'delete';
		MM_findObj('frmSavePrice_'+iID).submit();
	}
	else
		return false;
}

//Open "send mail" window
function SendItem()
{
	var sURL = document.URL;
	sURL = sURL.replace(/&/g,'[and]');
	window.open('tellafriend.php?sURL='+sURL,'','scrollbars=no,resize=no,toolbar=no,left=10,top=10,status=no,location=no,menubar=no,width=400,height=400');
}

//Validate email address and populate email list
function AddToList()
{
	var sEmail = MM_findObj('frmEmail').value;
	var flag = false;
	if(checkMail(sEmail))
	{
		var oEmailList = MM_findObj('frmEmailList');
		if(oEmailList.length > 0)
		{
			for(x=0;x<oEmailList.length;x++)
			{
				if(sEmail == oEmailList[x].value)
				{
					flag = true;
				}
			}
		}
		if(!flag)
		{
			oNewOption = new Option(sEmail,sEmail);
			MM_findObj('frmEmailList').options.add(oNewOption);
			MM_findObj('frmEmail').value = '';
		}
	}
	else
	{
		alert('You have entered an invalid email address');
	}
}

//Remove email address from list
function RemoveFromList()
{
	var oEmailList = MM_findObj('frmEmailList');
	oEmailList.remove(oEmailList.selectedIndex);
}

//Validate send mail form
function chkSendMail()
{
	var sEmail = MM_findObj('frmFromEmail').value;
	var msg = '';
	var sCSV = '';
	if((checkMail(sEmail)) && (MM_findObj('frmEmailList').length > 0))
	{
		//populare email csv
		for(x=0;x<MM_findObj('frmEmailList').length;x++)
		{
			sCSV += MM_findObj('frmEmailList')[x].value + ',';
		}
		sCSV = sCSV.substring(0,(sCSV.length-1))
		MM_findObj('frmEmailListCSV').value = sCSV;
		return true;
	}
	else
	{
		if(!checkMail(sEmail))
		{
			msg += ' - invlaid \"From\" email address\n';
		}
		if(MM_findObj('frmEmailList').length == 0)
		{
			msg += ' - there are no recipient email addresses\n';
		}
		alert('Please check the following fields:\n\n' + msg);
	}
	return false;
}

//Delete lightbox
function DeleteLightbox(id)
{
	if(confirm('Are you sure you want to delete lightbox id:'+id+'?'))
		location.assign('?action=delete&id='+id);
}

function AddToLightbox(id,ClipId)
{
	alert('Adding clip '+ClipId+' to lightbox '+id);
}

function CheckAll()
{
	var oInput = document.getElementsByTagName('input');
	for(x=0;x<oInput.length;x++)
	{
		var sInputId = oInput[x].id;
		if(sInputId.indexOf('frmItem_') > -1)  // Get only the checkboxes
		{
			oInput[x].checked = true;
		}
	}
}

function SendMultiItem()
{
	var sIDCSV = "";
	var oInput = document.getElementsByTagName('input');
	for(x=0;x<oInput.length;x++)
	{
		var sInputId = oInput[x].id;
		if(sInputId.indexOf('frmItem_') > -1)  // Get only the checkboxes
		{
			if(oInput[x].checked == true)
			{
				sIDCSV += sInputId.substr((sInputId.lastIndexOf('_')+1),sInputId.length) + ',';
			}
		}
	}
	sIDCSV = sIDCSV.substr(0, (sIDCSV.length - 1));
	if(sIDCSV.length > 0)
	{
		window.open('tellafriend.php?sCSV='+sIDCSV,'','scrollbars=no,resize=no,toolbar=no,left=10,top=10,status=no,location=no,menubar=no,width=400,height=400');
	}
	else
	{
		alert('Please select at least one item to send');
	}
}

//Check fields for adding gallery
function ChkAddGallery()
{
	var errMsg = '';
	if(MM_findObj('frmCategoryName').value == '')
	{
		errMsg = errMsg + 'Gallery name is empty\n';
	}
	
	if(MM_findObj('frmCategoryKeywords').value == '')
	{
		errMsg = errMsg + 'Keywords is empty\n';
	}
	
	if((isNaN(MM_findObj('frmNumberImages').value)) || (MM_findObj('frmNumberImages').value > 5) || (MM_findObj('frmNumberImages').value == ''))
	{
		errMsg = errMsg + 'Maximum of 5 images\n';
	}
	
	if(errMsg == '')
	{
		return true;
	}
	else
	{
		errMsg = 'Please check the following fields:\n\n' + errMsg;
		alert(errMsg);
		return false;
	}
}

function ChkImageAdd(num)
{
	var errMsg = '';
	for(x=0;x<num;x++)
	{
		if(MM_findObj('frmImageName'+(x+1)).value == '')
		{
			errMsg = errMsg + 'Image '+(x+1)+': Name is empty\n';
		}
		frmFileContents = MM_findObj('frmFile'+(x+1)).value;
		frmFileExtension = frmFileContents.substr((frmFileContents.lastIndexOf('.')+1),frmFileContents.length);
		if(!ValidExtension(frmFileExtension.toLowerCase()))
		{
			errMsg = errMsg + 'Image '+(x+1)+': Must be file type .gif, .jpg, jpeg or .png\n';
		}
	}
	if(errMsg == '')
	{
		return true;
	}
	else
	{
		errMsg = 'Please check the following fields:\n\n' + errMsg;
		alert(errMsg);
		return false;
	}
}

function ValidExtension(sExt)
{
	aExts = new Array('jpg','jpeg','gif','png');
	for(y=0;y<aExts.length;y++)
	{
		if(sExt == aExts[y])
			return true;
	}
	return false;
}

//Upload images
function ImageUpload(galleryID,ownerID)
{
	var iImageNum = MM_findObj('frmNumberImages').value;
	if((isNaN(iImageNum)) || (iImageNum == '') || (iImageNum > 5))
	{
		alert('You can upload up to 5 images at a time');
	}
	else
	{
		if(confirm('Upload '+iImageNum+' image(s) to gallery id:'+galleryID+'?'))
		{
			location.assign('gallerymanager.php?action=add_images&galleryID='+galleryID+'&frmNumberImages='+iImageNum+'&frmOwnerID='+ownerID);
		}
	}
}

//Update image
function UpdateImage(frmNum)
{
	var image_id = MM_findObj('frmImageID'+frmNum).value;
	var frmImageName = MM_findObj('frmImageName'+frmNum).value;
	var frmImageFormats = MM_findObj('frmImageFormats'+frmNum).value;
	var frmImagePrice = MM_findObj('frmImagePrice'+frmNum).value;
	var gallery_id = MM_findObj('frmID').value;
	location.assign('gallerymanager.php?action=update_image&image_id='+image_id+'&frmImageName='+frmImageName+'&frmImageFormats='+frmImageFormats+'&frmImagePrice='+frmImagePrice+'&gallery_id='+gallery_id);
}

//Delete image
function DeleteImage(frmNum)
{
	var image_id = MM_findObj('frmImageID'+frmNum).value;
	var gallery_id = MM_findObj('frmID').value;
	if(confirm('Are you sure you want to delete this image?'))
		location.assign('gallerymanager.php?action=delete_image&image_id='+image_id+'&gallery_id='+gallery_id);
}
// ----------------------------------------------------------------------------------------------------