		
		////////////////////// end getCookie //////////////////////////////////
		// declarations...
		// The array values and the vElement
		// values are created by the individual .NET
		// controls and can be seen at the bottom 
		// of the page in view source....
		var collectionsCheckAll;
		var categoryCheckAll;
		var collectionsAllOtherSources;
		var collectionsArray;
		var categoryArray;
		var orientationArray;
		var photosIllustrationArray;
		var AdvancedSearchVisible = false;
		var SearchResultsTemp = "";
		var bSubmitToken = false;
		var bAdvancedSearchOn = false;
		
		
		// Comment out in production...
		//window.onerror = errorHandler;
		window.onerror = null;
	
		
		function errorHandler(msg, url, lineNum)
		{
			alert(msg + '\n' + url + '\n' + lineNum + '\n');
			return true;
		}
		///	<summary>
		/// updateAvancedSearchFromCookie()
		///	</summary>
		function updateAdvancedSearchFromCookie()
		{
			if(GetCookie('SearchData') != null)
			{
			
				var searchData = GetCookie("SearchData")
				if(searchData.indexOf('as=True') !=-1)
				{
					AdvancedSearchVisible = true;
				}
				else
				{
					AdvancedSearchVisible = false;
				}
			}
		}
		
		function GetCookie (name) 
		{  

			var arg = name + "=";  

			var alen = arg.length;  

			var clen = document.cookie.length;  

			var i = 0;  

			while (i < clen) {    

			var j = i + alen;    

			if (document.cookie.substring(i, j) == arg) return getCookieVal (j);    

			i = document.cookie.indexOf(" ", i) + 1;    

			if (i == 0) break;   

			}  

			return null;

		}

		function getCookieVal (offset) {  

			var endstr = document.cookie.indexOf (";", offset);  

			if (endstr == -1) { endstr = document.cookie.length; }

			return unescape(document.cookie.substring(offset, endstr));

		}

		function DeleteCookie (name,path,domain) {
		if (GetCookie(name)) {
			document.cookie = name + "=" +
			((path) ? "; path=" + path : "") +
			((domain) ? "; domain=" + domain : "") +
			"; expires=Thu, 01-Jan-70 00:00:01 GMT";
		}
		}

		function turnOnMSO()
		{
			var frm = document.frmSearch;
			var searchData = GetCookie("SearchData")	
			var newSearchData = searchData
			
			if(searchData != null)
			{
				if(bAdvancedSearchOn)
				{
					
					newSearchData = searchData + "&as=True";
				}
				else
				{
					
					if(searchData.indexOf("as=") !=-1)
					{
						newSearchData = searchData.replace(/&as=True/i, "");
						newSearchData = newSearchData.replace(/as=True/i, "");
								
						newSearchData = newSearchData.replace("&as=", "");
					}
					else
					{
						newSearchData = searchData + "&as=True";
						
					}
					
				}
						
				DeleteCookie("SearchData","/","");
				
				document.cookie = "SearchData=" + newSearchData + ";path=/;"
			}
			else
			{
				
				newSearchData = "as=True";
				document.cookie = "SearchData=" + newSearchData + ";path=/;"
			}
			
		}
		////////////////////////////////////
		///	<summary>
		///	Main flip-flop
		/// AdvancedSeachDiv is written to
		/// a .NET literal control in each panel
		/// after reading the cookie (if exists)
		/// on loading the page.  This is how
		/// the persistance across pages works.
		/// The if((getCookie... statement below
		/// is prevent having to double click the
		/// first time to flip between states.
		///	</summary>
		function layout()
		{
			
			if (AdvancedSearchVisible)
			{
				document.getElementById('AdvancedSearchDiv').style.display = "none";
				toggleSearchInResults('on');	
				toggleOnOff('on');
				resetAdvancedFilters();				
				
			}
			else
			{
				document.getElementById('AdvancedSearchDiv').style.display = "block";
				toggleSearchInResults('off');
				toggleOnOff('off');
				resetAdvancedFilters();				
			}
		}
		
		// Toggle Advance Search Panel
		function toggleAdvancedSearch()
		{	
			AdvancedSearchVisible = AdvancedSearchVisible ? false : true;
			
			// toggle cookie value WARNING: - 
			turnOnMSO();
		}
		
		// Toggles the On/Off of the more search options link
		function toggleOnOff(OnOrOff)
		{
			if(OnOrOff == 'on')
			{
				document.getElementById('linkTurnOnOff').innerHTML = vTurnOn;
			}
			else
			{
				document.getElementById('linkTurnOnOff').innerHTML = vTurnOff;
			}
		}
		
		// Toggles the Search in Results DropDown/text
		function toggleSearchInResults(OnOrOff)
		{
			if (vPanelName != 'outline')
			{
				if(OnOrOff == 'on')
				{
					if (!vIsKeywordNull)
					{
						document.getElementById('txtResultsSpan').innerHTML = "";
						document.getElementById(vCategoryDropDown).style.visibility = "visible";
					}
					else
					{
						document.getElementById('txtResultsSpan').innerHTML = "";
						document.getElementById('searchInResultsDiv').style.visibility = "visible";
						document.getElementById(vCategoryDropDown).style.visibility = "visible";					
					}
				}
				else
				{
					if (!vIsKeywordNull)
					{
						document.getElementById('txtResultsSpan').innerHTML = vTextResults;
						document.getElementById(vCategoryDropDown).style.visibility = "hidden";	
					}
					else
					{
						document.getElementById('searchInResultsDiv').style.visibility = "hidden";
						document.getElementById(vCategoryDropDown).style.visibility = "hidden";	
					}
				}
			}
		}
		///	<summary>
		///	Search in Results/Categories
		/// Save the seach results if the
		/// user clicks on another selection
		/// and return them to the hidden field 
		/// if he returns to searching in results.
		///	</summary>
		function searchInResults(control)
		{
			if((control[control.selectedIndex].value != "")
				&& (document.getElementById('hdnSearchInResults').value != ""))
			{
				SearchResultsTemp = document.getElementById('hdnSearchInResults').value;
				document.getElementById('hdnSearchInResults').value = "";
			}
			
			else 
			{
				if((SearchResultsTemp != "") 
					&& (document.getElementById('hdnSearchInResults').value == ""))
				{
					document.getElementById('hdnSearchInResults').value = SearchResultsTemp;
				}
			}
			
		}
				
		function isNullCategories()
		{
			var categoryCheckedCount = 0;
			var categoryUncheckedCount = 0;
			for(var i = 0; i < categoryArray.length; i++)
			{
				if(document.getElementById(categoryArray[i]).checked == true)
					categoryCheckedCount++;
				else
					categoryUncheckedCount++;				
			}
			
			if((categoryCheckedCount == 0) || (categoryUncheckedCount == 0))
				return true; //is Null
			
			return false;
		}
		
		function isNullCollections()
		{
			// Check the categories to see that at least one is unchecked and at least one is checked
			var collectionsCheckedCount = 0;
			var collectionsUncheckedCount = 0;
			for(var i = 0; i < collectionsArray.length; i++)
			{
				if(document.getElementById(collectionsArray[i]).checked == true)
					collectionsCheckedCount++;				
				else
					collectionsUncheckedCount++;				
			}
			
			if((collectionsCheckedCount == 0) || (collectionsUncheckedCount == 0))
				return true; // is Null
			
			return false; // is not null
		}
		
		function isNullSpeficySource()
		{
			if (document.getElementById(vSpecifySource).value == "")
				return true; //null
			else
				return false; //not null
		}
		
		function isNullImageNumber()
		{
			if (document.getElementById(vImageNumbers).value == "")
				return true;
			else
				return false;
		}
		
		function isNullPhographer()
		{
			if (document.getElementById(vPhotographerName).value == "")
				return true;				
			else
				return false;				
		}
		
		function isNullDatePhotographed()
		{
			if (document.getElementById(vDatePhotoOrCreated).value == "")
				return true;
			else
				return false;
		}
		
		function isNullLocation()
		{
			if (document.getElementById(vLocation).value == "")
				return true;
			else
				return false;
		}
		
		function isNullPointOfView()
		{
			var indexPOV = document.getElementById(vPointOfView).selectedIndex;					
								
			if (document.getElementById(vPointOfView).options[indexPOV].value == "")				
				return true;				
			else
				return false;
		}
		
		function isNullPeopleInImages()
		{
			var index = document.getElementById(vPeopleInImage).selectedIndex;					
								
			if (document.getElementById(vPeopleInImage).options[index].value == "")				
				return true;				
			else
				return false;	
		}
		
		function isNullImmediateAvailability()
		{
			var index = document.getElementById(vImmediateAvailability).selectedIndex;					
								
			if (document.getElementById(vImmediateAvailability).options[index].value == "")				
				return true;				
			else
				return false;
		}
		
		function isNullImagesMadeAvailable()
		{
			var isNull = true ;
			if(document.getElementById(vInTheLastRadio).checked)
			{
				if(document.getElementById(vInTheLastTextBox).value != "")
				{
					if(isNaN(parseInt(document.getElementById(vInTheLastTextBox).value)))
					{
						alert("Please Enter a number"); // Localize this...
						document.getElementById(vInTheLastTextBox).focus();
						document.getElementById(vInTheLastTextBox).select();
						return true; //invalid.
					}
					else
					{
						// Remove anything parseInt didn't... e.g. r34s returns 34..
						// Change to integer from date routine?
						document.getElementById(vInTheLastTextBox).value = 
							parseInt(document.getElementById(vInTheLastTextBox).value);
						return false;
					}
				}								
			}
			if((document.getElementById(vBetweenRadio).checked)	&& (document.getElementById(vBetweenTextBox).value != "") 
																&& (document.getElementById(vAndTextBox).value != ""))
			{
				if(!isDate(document.getElementById(vBetweenTextBox).value))
				{
					document.getElementById(vBetweenTextBox).focus();
					document.getElementById(vBetweenTextBox).select();
					return true; //invalid
				}
				else
				{					
					if(!isDate(document.getElementById(vAndTextBox).value))
					{
						document.getElementById(vAndTextBox).focus();
						document.getElementById(vAndTextBox).select();
						return true; //invalid
					}
					else
					{
						return false; // valid
					}
				}
			}
			//alert(vKeywordsEmptyError);
			return isNull;
		}
		
		function isNullOrientation()
		{
			var checkedCount = 0;
			var uncheckedCount = 0;
			for(var i = 0; i < orientationArray.length; i++)
			{
				if(document.getElementById(orientationArray[i]).checked == false)
				{
					uncheckedCount++;
				}
				else
				{
					checkedCount++;
				}
			}
			// If all checked or all unchecked IS NULL
			if((uncheckedCount == 0) || (checkedCount == 0))
			{
				alert('is Null');
				return true;
			}
			alert('not null');
			return false;
		}
		
		function isNullMagazine()
		{
			if (document.getElementById(vMagazine).value == "")
				return true;
			else
				return false;
		}
		
		function isNullDatePublished()
		{
			if((document.getElementById(vDatePublished).value != "") && (document.getElementById(vDatePublished).value != 'mm/dd/yyyy'))
			{
				if(!isDate(document.getElementById(vDatePublished).value))
				{
					document.getElementById(vDatePublished).focus();
					document.getElementById(vDatePublished).select();
					return true;
				}
				else
					return false;
			}
			//alert('date published is null');
			return true;
		}
		
		function validateCoreSearchForm()
		{
			var isValid = false;
			
			//Check RM and RF.
			if((!document.getElementById(vRoyaltyFree).checked) && (!document.getElementById(vRightsManaged).checked))
			{
				alert(vRightsError);
				return false;
			}
			
			if (AdvancedSearchVisible == true)
			{
				// If these conditions are met, we dont need a keyword
				if (!isNullCollections())
					isValid = true;
				if (!isNullSpeficySource())
					isValid = true;
				if (!isNullImageNumber())
					isValid = true;
				if (!isNullPhographer())
					isValid = true;
				if (!isNullDatePhotographed())
					isValid = true;
				if (!isNullLocation())
					isValid = true;
				if (!isNullPointOfView())
					isValid = true;
				/*
				if (!isNullPeopleInImages())
					return true;					 
					*/
				if (!isNullImmediateAvailability())
					isValid = true;
			
				
				if (!isValid)
				{
					if (!isNullImagesMadeAvailable())
						isValid = true;
					else
						{
							alert(vKeywordsEmptyError);
							return false;						
						}
				}
				
										
			}			
			
			if (!isValid)
				alert(vKeywordsEmptyError);
			return isValid ;			
		}
		
		function validateOutlineSearchForm()
		{
			
			if (AdvancedSearchVisible == true)
			{
				// If these conditions are met, we dont need a keyword
				
				if (!isNullImageNumber())
					return true;
				if (!isNullMagazine())
					return true;
				if (!isNullPhographer())
					return true;
				if (!isNullLocation())
					return true;
				if (!isNullPointOfView())
					return true;				
			
				if (!isNullImagesMadeAvailable())
					return true;
				else					
					{
						if (!isNullDatePublished())
						return true;
						else
						{
							alert(vKeywordsEmptyError);
							return false;
						}
					}
				
				// we came this far, with the empty keyword. err out.
				alert(vKeywordsEmptyError);
				return false;				
			}
			else
			{
				alert(vKeywordsEmptyError);
				return false;	
			}
			return true;	
		}
		
		function validateSygmaSearchForm()
		{
			if (AdvancedSearchVisible == true)
			{
				if (!isNullImageNumber())
						return true;
				if (!isNullDatePhotographed())
						return true;
				if (!isNullLocation())
						return true;
				if (!isNullImmediateAvailability())
						return true;
						
				if (!isNullImagesMadeAvailable())
						return true;
					else					
					{
						alert(vKeywordsEmptyError);
						return false;
					}
				
				// we came this far, with the empty keyword. err out.
				alert(vKeywordsEmptyError);
				return false;
			}
			else
			{
				alert(vKeywordsEmptyError);
				return false;	
			}
			return true;
		}
		
		function validateRFSearchForm()
		{
			if (AdvancedSearchVisible == true)
			{
				if (!isNullImageNumber())
					return true;									
				if (!isNullDatePhotographed())
					return true;				
				if (!isNullPhographer())										
					return true;																			
				if (!isNullLocation())
					return true;
				if (!isNullPointOfView())
					return true;
						
				if (!isNullImagesMadeAvailable())
						return true;
					else					
					{	
						alert(vKeywordsEmptyError);
						return false;
					}
				// we came this far, with the empty keyword. err out.
				alert(vKeywordsEmptyError);
				return false;
			}
			else
			{
				alert(vKeywordsEmptyError);
				return false;	
			}
			return true;
		}	
		
		
		///	<summary>
		///	Client side validation
		/// Called from KeywordSearch control.
		///	</summary>
		
		function validateForm()
		{
			
			
			updateSearchInResultsValue();
			
			switch(vPanelName)
			{
				case 'core':
				
					if (document.getElementById(vKeywordsText).value == "")
						return validateCoreSearchForm();
					else
					{
						//Check RM and RF.
						if((!document.getElementById(vRoyaltyFree).checked) && (!document.getElementById(vRightsManaged).checked))
						{
							alert(vRightsError);
							return false;
						}
						return true;	
					}
				case 'outline':
				
					if (document.getElementById(vKeywordsText).value == "")
						return validateOutlineSearchForm();				
				case 'sygma':
					if (document.getElementById(vKeywordsText).value == "")
						return validateSygmaSearchForm();
				case 'rfsearch':
					if (document.getElementById(vKeywordsText).value == "")
						return validateRFSearchForm();
			}
			
			return true;
		}
			
		function updateSearchInResultsValue()
		{
			if (vPanelName != 'outline')
			{
			document.getElementById('hdnSearchInResults').value = document.getElementById(vKeywordsText).value;
			}
			
		}
				
		
		///	<summary>
		///	 Clears the keyword text box when the
		///	 search in results checkbox is checked.
		///  and toggles the search in results.
		///  sets the hidden value to the results
		///  hidden input is also a part of the 
		///  .NET generated JavaScript HTML
		///  in the vSeachCheckBox and vSeachDropDown
		///  strings.
		///	</summary>
		function clearKeywordText(control)
		{
			if(control.checked)
			{
				
				// Add hidden field and transfer value w/(keywords) 
				if(document.getElementById('ddlSearchInResults') != null)
				{
					var index = document.getElementById('ddlSearchInResults').selectedIndex;
					if(document.getElementById('ddlSearchInResults').options[index].value == "")
					{
						document.getElementById('hdnSearchInResults').value =
							document.getElementById(vKeywordsText).value;
						document.getElementById(vKeywordsText).value = "";
					}
				}
				else
				{
					document.getElementById('hdnSearchInResults').value =
							document.getElementById(vKeywordsText).value;
						document.getElementById(vKeywordsText).value = "";
				}
				
			}
			else
			{
				//document.getElementById('hdnSearchInResults').value = "";	
			}
		}
		
		/// <summary>
		///	Reset filters from link
		/// Basic search filters
		/// </summary>
		function resetFilters()
		{
			if(vPanelName == 'core')
			{
				document.getElementById(vRightsManaged).checked = true;
				document.getElementById(vRoyaltyFree).checked = true;
				document.getElementById(vKeywordsText).value = "";
				
				
				for(var i = 0; i < photosIllustrationArray.length; i++)
				{
					document.getElementById(photosIllustrationArray[i]).checked = true;
				}
				for(var i = 0; i < colorBlackAndWhiteArray.length; i++)
				{
					document.getElementById(colorBlackAndWhiteArray[i]).checked = true;
				}
				document.getElementById(vModelReleaseOnly).checked = false;
				
			}
			if(vPanelName == 'outline')
			{
				document.getElementById(vKeywordsText).value = "";
				
				for(var i = 0; i < colorBlackAndWhiteArray.length; i++)
				{
					document.getElementById(colorBlackAndWhiteArray[i]).checked = true;
				}
			}
			if(vPanelName == 'rfsearch')
			{
				document.getElementById(vKeywordsText).value = "";
				
				for(var i = 0; i < photosIllustrationArray.length; i++)
				{
					document.getElementById(photosIllustrationArray[i]).checked = true;
				}
				for(var i = 0; i < colorBlackAndWhiteArray.length; i++)
				{
					document.getElementById(colorBlackAndWhiteArray[i]).checked = true;
				}
				document.getElementById(vModelReleaseOnly).checked = false;
			}
			if(vPanelName == 'sygma')
			{
				document.getElementById(vSygmaCheck).checked = true;
				document.getElementById(vKipaCheck).checked = true;
				for(var i = 0; i < colorBlackAndWhiteArray.length; i++)
				{
					document.getElementById(colorBlackAndWhiteArray[i]).checked = true;
				}
				document.getElementById(vModelReleaseOnly).checked = false;
			}	
			resetAdvancedFilters();
		}
		/// <summary>
		///	Reset Advanced filters from link or toggle...
		/// </summary>
		function resetAdvancedFilters()
		{
			if(vPanelName == 'core' || vPanelName == 'sygma')
			{
				if((AdvancedSearchVisible == true) 
					&& (vLanguageCode != 'en-US')
					&& (vLanguageCode != 'en-GB'))
				{
					document.getElementById(vEnglishOnly).checked = false;
				}

				if(document.getElementById(categoryCheckAll) != null)
				{
					document.getElementById(categoryCheckAll).checked = true;
					SelectAllCategories();
				}
				if(document.getElementById(collectionsCheckAll) != null)
				{
					document.getElementById(collectionsCheckAll).checked = true;
					SelectAllCollections();
				}
			}
			if(vPanelName == 'core')
			{
				document.getElementById(vPhotographerName).value = "";
				document.getElementById(vSpecifySource).value = "";
				document.getElementById(vDatePhotoOrCreated).value = "";
				document.getElementById(vLocation).value = "";
				document.getElementById(vImageNumbers).value = "";
				document.getElementById(vPointOfView).selectedIndex = 0;
				document.getElementById(vPeopleInImage).selectedIndex = 0;
				document.getElementById(vImmediateAvailability).selectedIndex = 0;
				document.getElementById(vSearchImageImageSets).selectedIndex = 0;
				document.getElementById(vSearchInCheckBox).checked = false;
				
				
				
			}
			if(vPanelName == 'outline')
			{
				document.getElementById(vImageNumbers).value = "";
				document.getElementById(vDatePublished).value = "mm/dd/yyyy";	
				document.getElementById(vMagazine).value = "";	
				document.getElementById(vPhotographerName).value = "";	
				document.getElementById(vLocation).value = "";
				document.getElementById(vPeopleInImage).selectedIndex = 0;
				document.getElementById(vPointOfView).selectedIndex = 0;
			}
			if(vPanelName == 'rfsearch')
			{
				document.getElementById(vImageNumbers).value = "";
				document.getElementById(vDatePhotoOrCreated).value = "";
				document.getElementById(vLocation).value = "";
				document.getElementById(vPhotographerName).value = "";
				document.getElementById(vPeopleInImage).selectedIndex = 0;
				document.getElementById(vPointOfView).selectedIndex = 0;
				document.getElementById(vSearchInCheckBox).checked = false;
			}
			if(vPanelName == 'sygma')
			{
				document.getElementById(vImageNumbers).value = "";
				document.getElementById(vDatePhotoOrCreated).value = "";
				document.getElementById(vLocation).value = "";
				document.getElementById(vImmediateAvailability).selectedIndex = 0;
				document.getElementById(vSearchImageImageSets).selectedIndex = 0;
				document.getElementById(vSearchInCheckBox).checked = false;
			}
			//	Orientations reset
			for(var i = 0; i < orientationArray.length; i++)
			{
				document.getElementById(orientationArray[i]).checked = true;
			}
			// Images Made Available reset
			document.getElementById(vInTheLastRadio).checked = true;
			document.getElementById(vInTheLastTextBox).value = "";
			document.getElementById(vBetweenTextBox).value = "mm/dd/yyyy";	// localize this
			document.getElementById(vAndTextBox).value = "mm/dd/yyyy";		// localize this
			
			if(document.getElementById('cbSearchInResults') != null)
			{
				document.getElementById('cbSearchInResults').checked = false;
			}
			if(document.getElementById('ddlSearchInResults') != null)
			{
				document.getElementById('ddlSearchInResults').selectedIndex = 0;
			}
		}

		function CheckCollections()
		{
			var isEveryBoxChecked = true;
						
			for(i = 0; i < collectionsArray.length; i++)
			{
				if(!document.getElementById(collectionsArray[i]).checked)
				{
					isEveryBoxChecked = false;
				}
				if(!document.getElementById(collectionsAllOtherSources).checked)
					isEveryBoxChecked = false;
			}
			
			if(isEveryBoxChecked)
			{
				document.getElementById(collectionsCheckAll).checked = true;
			}
			else
			{
				document.getElementById(collectionsCheckAll).checked = false;
			}			
		
		}
		
		function SelectAllCollections()
		{
			if(document.getElementById(collectionsCheckAll).checked)
			{
				for(var i = 0; i < collectionsArray.length; i++)
				{
					document.getElementById(collectionsArray[i]).checked = true;
				}
				document.getElementById(collectionsAllOtherSources).checked = true;
			}
			else
			{
				for(var i = 0; i < collectionsArray.length; i++)
				{
					document.getElementById(collectionsArray[i]).checked = false;
				}
				document.getElementById(collectionsAllOtherSources).checked = false;
			}
		}
		
		function CheckCategories()
		{
			var isEveryBoxChecked = true;
						
			for(i = 0; i < categoryArray.length; i++)
			{
				if(!document.getElementById(categoryArray[i]).checked)
				{
					isEveryBoxChecked = false;
				}				
			}
			
			if(isEveryBoxChecked)
			{
				document.getElementById(categoryCheckAll).checked = true;
			}
			else
			{
				document.getElementById(categoryCheckAll).checked = false;
			}					
		}
		
		
		
		function SelectAllCategories()
		{
			if(document.getElementById(categoryCheckAll).checked)
			{
				for(var i = 0; i < categoryArray.length; i++)
				{
					document.getElementById(categoryArray[i]).checked = true;
				}				
			}
			else
			{
				for(var i = 0; i < categoryArray.length; i++)
				{
					document.getElementById(categoryArray[i]).checked = false;
				}				
			}
		}
		
			

/// <summary>
/// popupHelp()
/// Global redirect
///	</summary>	
function popupHelp()
{
	openHelp('/help/default.aspx?tab=content&pg=/Search/Search_Tips/Search_Tips_Overview.htm');
}
/// <summary>
/// Check date for mm/dd/yyyy format
///	between max and min dates
///	</summary>

// Declaring valid date character, minimum year and maximum year
// Change this for different date range
var dtCh= "/";
var minYear=1900;
var maxYear=2020;

/// <summary>
/// Used by isDate.
///	</summary>
function isInteger(s){
	var i;
    for (i = 0; i < s.length; i++){   
        // Check that current character is number.
        var c = s.charAt(i);
        if (((c < "0") || (c > "9"))) return false;
    }
    // All characters are numbers.
    return true;
}
/// <summary>
/// Used by isDate.
///	</summary>
function stripCharsInBag(s, bag){
	var i;
    var returnString = "";
    // Search through string's characters one by one.
    // If character is not in bag, append to returnString.
    for (i = 0; i < s.length; i++){   
        var c = s.charAt(i);
        if (bag.indexOf(c) == -1) returnString += c;
    }
    return returnString;
}
/// <summary>
/// Used by isDate.
///	</summary>
function daysInFebruary (year){
	// February has 29 days in any year evenly divisible by four,
    // EXCEPT for centurial years which are not also divisible by 400.
    return (((year % 4 == 0) && ( (!(year % 100 == 0)) || (year % 400 == 0))) ? 29 : 28 );
}
/// <summary>
/// Used by isDate.
///	</summary>
function DaysArray(n) {
	for (var i = 1; i <= n; i++) {
		this[i] = 31
		if (i==4 || i==6 || i==9 || i==11) {this[i] = 30;}
		if (i==2) {this[i] = 29}
   } 
   return this;
}
/// <summary>
/// Main date checking function
///	</summary>
function isDate(dtStr){
	var daysInMonth = DaysArray(12);
	var pos1=dtStr.indexOf(dtCh);
	var pos2=dtStr.indexOf(dtCh,pos1+1);
	var strMonth=dtStr.substring(0,pos1);
	var strDay=dtStr.substring(pos1+1,pos2);
	var strYear=dtStr.substring(pos2+1);
	strYr=strYear;
	if (strDay.charAt(0)=="0" && strDay.length>1) 
	{
		strDay=strDay.substring(1);
	}
	if (strMonth.charAt(0)=="0" && strMonth.length>1) 
	{
		strMonth=strMonth.substring(1);
	}
	for (var i = 1; i <= 3; i++) 
	{
		if(strYr.charAt(0)=="0" && strYr.length>1)
		{
			strYr=strYr.substring(1)
		}
	}
	month=parseInt(strMonth);
	day=parseInt(strDay);
	year=parseInt(strYr);
	if (pos1==-1 || pos2==-1)
	{
		alert(vPleaseEnterDateError + "\n" + " " + vDateFormatError);
		return false;
	}
	if (strMonth.length<1 || month<1 || month>12)
	{
		alert(strMonth + " " + vInvalidMonthError);
		return false;
	}
	if (strDay.length<1 || day<1 || day>31 || (month==2 && day>daysInFebruary(year)) || day > daysInMonth[month])
	{
		alert(strDay + " " + vIsNotADayInError + " " + strMonth);
		return false;
	}
	if (strYear.length != 4 || year==0 || year<minYear || year>maxYear)
	{
		alert(vInvalidYearError);
		return false;
	}
	if (dtStr.indexOf(dtCh,pos2+1)!=-1 || isInteger(stripCharsInBag(dtStr, dtCh))==false)
	{
		alert(vPleaseEnterDateError);
		return false;
	}
return true;
}
/// <summary>
/// Used to implement submit 
/// on pressing ENTER when
/// cursor is in KeyWordTextBox
/// in Netscape.  Called from
/// KeywordSearch user control.
///	</summary>
function checkIt(e)
{	
	// If Netscape e.which if not e.keyCode
	var charCode = (navigator.appName == "Netscape") ? e.which : e.keyCode;
	// charCode for enter key
	if(charCode == 13)
	{
		// Click the search button...
		document.getElementById(vSearchButton).click();
	}
}



/* Image Preview Control javascript functions */

function fnEnableHighlight(imgObj, panelObj)
{
	
	document.getElementById(imgObj).src = "/images/btn_box_on_cropped.gif";
	document.getElementById(panelObj).className = "PanelHighlightOn";
}

function fnAddToLightBox(productKey, corbisID, imgObj, panelObj, hiddenLightBox, IsLoggedOn)
{
	
	if (IsLoggedOn == false)
	{
		//User is NOT logged on
		top.frames[1].addToLightbox('', productKey, corbisID, false);
	}
	else
	{
		//User is logged on
		top.frames[1].location = "/previewpane/previewpanes.aspx?tab=Folders&mainpage=Search&actn=addlightbox&mediauids=" + productKey + "&corbisid=" + corbisID;
		//fnEnableHighlight(imgObj, panelObj);
	}
	document.getElementById(hiddenLightBox).value = "";
	
}

function fnAddToQuickPic(productKey, corbisID, imgObj, panelObj, IsLoggedOn)
{
	if (IsLoggedOn == false)
	{
		//user is NOT logged on
		top.frames[1].addToQuickPic('', productKey, corbisID, false);
	}
	else
	{
		//user is logged on
		top.frames[1].location = "/previewpane/previewpanes.aspx?tab=quickpic&mainpage=Search&actn=addquickpic&mediauids=" + productKey + "&corbisid=" + corbisID;
	}
	fnEnableHighlight(imgObj, panelObj);
}

function fnAddToCart(productKey, corbisID, imgObj, panelObj, hiddenCart, IsLoggedOn)
{
	document.getElementById(hiddenCart).value = "";
	if (IsLoggedOn == false)
	{
		//User is NOT logged on
		top.frames[1].addToCart(productKey, corbisID);
	}
	else
	{
		//User is logged on
		top.frames[1].location = "/previewpane/previewpanes.aspx?tab=Folders&mainpage=Search&actn=addcart&mediauids=" + productKey + "&corbisid=" + corbisID;
		fnEnableHighlight(imgObj, panelObj);
	}
	
}

function fnGetLightBoxImage(corbisid)
{
	var lightBoxImgArray = document.getElementsByName("imglightbox" + corbisid);
	if (lightBoxImgArray.length == 1)
	{
		var lightBoxImg = lightBoxImgArray(0);
//alert("lightBoxImg exists");
	}
	else
	{
		var lightBoxImg = null;
//alert("lightBoxImg is null");
	}
	return lightBoxImg;
}

function fnGetCartImage(corbisid)
{
	var cartImgArray = document.getElementsByName("imgcart" + corbisid);
	if (cartImgArray.length == 1)
	{
		var cartImg = cartImgArray(0);
//alert("cartImg exists");
	}
	else
	{
		var cart2ImgArray = document.getElementsByName("imgcart2" + corbisid);
		if (cart2ImgArray.length == 1)
		{
			var cartImg = cart2ImgArray(0);
//alert("cartImg2 exists");
		}
		else
		{
			var cartImg = null;
//			alert("cartImg is null");
		}
	}
	return cartImg;
}

function fnGetQuickPicImage(corbisid)
{
//alert(corbisid + " 2 ");
	var quickPicImgArray = document.getElementsByName("imgquickpic" + corbisid);
	if (quickPicImgArray.length == 1)
	{
//alert("quickPicImg exists");
		var quickPicImg = quickPicImgArray(0);
	}
	else
	{
		var quickPicImg = null;
//alert("quickPicImg is null");
	}
	return quickPicImg;
}

function fnRemoveFromLightBox(corbisid)
{
//alert("fnRemoveFromLightBox corbisid = " + corbisid);
	fnDisableHighlight(corbisid, fnGetLightBoxImage(corbisid), fnGetCartImage(corbisid), fnGetQuickPicImage(corbisid));
}

function fnRemoveFromCart(corbisid)
{
	fnDisableHighlight(corbisid, fnGetCartImage(corbisid), fnGetLightBoxImage(corbisid), fnGetQuickPicImage(corbisid));
}

function fnRemoveFromQuickPic(corbisid)
{
//alert(corbisid + " 1 ");
	fnDisableHighlight(corbisid, fnGetQuickPicImage(corbisid), fnGetLightBoxImage(corbisid), fnGetCartImage(corbisid));
}

function fnAddToLightBoxFromPP(corbisid)
{
	fnEnableHighlightForPP(corbisid, fnGetLightBoxImage(corbisid));
}

function fnAddToCartFromPP(corbisid)
{
	fnEnableHighlightForPP(corbisid, fnGetCartImage(corbisid));
}

function fnCanDisable(img)
{
//	alert("into fnCanDisable");
	if (img == null)
	{
//alert("img is null");
		return true;
	}
	else
	{
		if (img.src.indexOf("btn_box_off_cropped.gif") >= 0)
		{
//alert(img.id + " : " + img.src + " img is off : return true");
			return true;
		}
		else
		{
//alert(img.id + " : " + img.src + " img is on : return false");
			return false;
		}
	}
}

function fnDisableHighlight(corbisid, firstImg, secondImg, thirdImg)
{
//alert("into fnDisableHighlight");
	//fnCanDisable(secondImg);
	if (fnCanDisable(secondImg) & fnCanDisable(thirdImg))
	{
//alert("into if loop");
		var tableArrayNew = document.getElementsByTagName("table");
		for (i = 0; i < tableArrayNew.length; i++)
		{
			if (tableArrayNew(i).id.indexOf("pnlHighlight") >= 0)
			{
				if (tableArrayNew(i).getAttribute("corbisid") == corbisid)
				{
//alert(tableArrayNew(i).id + " " + tableArrayNew(i).getAttribute("corbisid"));			
					tableArrayNew(i).className = "PanelHighlightOff";
				}
			}
		}
	}
	
//	alert("check firstImg");
//	alert(firstImg);
	if (firstImg != null)
	{
//		alert(firstImg.src);
		firstImg.src = "/images/btn_box_off_cropped.gif";
	}
}

function fnEnableHighlightForPP(corbisid, img)
{
	//background
	var tableArrayNew = document.getElementsByTagName("table");
	for (i = 0; i < tableArrayNew.length; i++)
	{
		if (tableArrayNew(i).id.indexOf("pnlHighlight") >= 0)
		{
			if (tableArrayNew(i).getAttribute("corbisid") == corbisid)
			{
				tableArrayNew(i).className = "PanelHighlightOn";
			}
		}
	}
	//image
	if (img != null)
	{
		img.src = "/images/btn_box_on_cropped.gif";
	}
}

/* Image Preview Control javascript functions */

/* Search Assistance javascript functions */

function VerifyCheckboxes()
{
	var checkboxColl = document.getElementsByTagName("input");
	var aleastOneChecked = false;
	for (i = 0; i < checkboxColl.length; i++)
	{
		if (checkboxColl[i].type.toLowerCase() == "checkbox")
		{
			if (checkboxColl[i].getAttribute("mode") == "clarification")
			{
				if (checkboxColl[i].checked == true)
				{
					aleastOneChecked = true;
				}
			}
		}
	}
	if (aleastOneChecked == true)
	{
		return true;
	}
	else
	{
		var hiddenColl = document.getElementsByTagName("input");
		for (j = 0; j < hiddenColl.length; j++)
		{
			if (hiddenColl[j].type.toLowerCase() == "hidden")
			{
				if (hiddenColl[j].getAttribute("mode") == "clarification")
				{
					alert(hiddenColl[j].value);
				}
			}
		}
		return false;
	}
}

function fnAddImageSetToLightbox(isuid, IsLoggedOn)
{
	var tableArrayNew = document.getElementsByTagName("table");
	for (i = 0; i < tableArrayNew.length; i++)
	{
		if (tableArrayNew(i).id.indexOf("pnlHighlight") >= 0)
		{
			tableArrayNew(i).className = "PanelHighlightOn";
		}
	}

	var imgArrayNew = document.getElementsByTagName("img");
	for (i = 0; i < imgArrayNew.length; i++)
	{
		if (imgArrayNew(i).id.indexOf("imgLightbox") >= 0)
		{
			imgArrayNew(i).src = "/images/btn_box_on_cropped.gif";
		}
	}

	
	
	if (IsLoggedOn == false)
	{
		//User is NOT logged on
		top.frames[1].addToLightbox('addimageset', isuid, '', false);
	}
	else
	{
		//User is logged on
		top.frames[1].location = "/previewpane/AddToLightbox.aspx?tab=lightbox&mainpage=Search&actn=addimageset&mediauids=" + isuid + "&corbisid=";
	}
}

	updateAdvancedSearchFromCookie();
/* Search Assistance javascript functions */

