/**
 *
 * Author: Michael Kinkaid
 * Version 1
 * 
 * The following functions are used within gallery.asp and
 * galleryResults.asp
 *
 **/

//Global values
var advancedOpen = false;
var advancedSearchContent = null;

/**
 * galleryDisplay calls function in designGalleryScroller
 *
 * @param	strDisplaySet		Product set to load 
 */
function galleryDisplay(strDisplaySet) 
{
	getMovieName("designGalleryScroller").startLoad(strDisplaySet);
}

/**
 * getMovieName finds the embedded flash movie depending
 * on the browser type.
 *
 * @param	movieName		The name of the swf file embedded
 * 							in the page.
 */
function getMovieName(movieName) 
{
    if (navigator.appName.indexOf("Microsoft") != -1) {
		return window[movieName]
   }
   else {
       return document[movieName]
   }
}

/**
 * Sends the user entered search query to galleryResults.asp
 */
function runSearch()
{
	var searchQueryObj	= document.getElementById("keyword");
	var searchQuery		= searchQueryObj.value;
	var url;
	var formatSearchQuery;
	var searchColumn;
	
	if((searchQuery != "")&&(searchQuery!= "Enter a keyword")&&(searchQuery!= "Search by Keyword"))
	{
		formatSearchQuery = encodeURIComponent(searchQuery);
		url = "../galleryResults.asp?searchQuery=" + formatSearchQuery;	
		
		if(advancedOpen == true)
		{
			//flag advanced search
			url += "&advancedSearch=true";
			
			//radio options
			var radioCount = document.advancedForm.searchRadio.length;
			var i;
			
			for(i=0;i<radioCount;i++)
			{
				if(document.advancedForm.searchRadio[i].checked)
				{
					searchColumn = document.advancedForm.searchRadio[i].value;
				}
			}
			
			url += "&searchColumn=" + encodeURIComponent(searchColumn);
			
			//date option
			if(document.advancedForm.searchByDate.checked)
			{
				url += "&searchDate=true";
				url += "&fromDay=" + encodeURIComponent(document.advancedForm.fromDay.value);
				url += "&fromMonth=" + encodeURIComponent(document.advancedForm.fromMonth.value);
				url += "&fromYear=" + encodeURIComponent(document.advancedForm.fromYear.value);
				url += "&toDay=" + encodeURIComponent(document.advancedForm.toDay.value);
				url += "&toMonth=" + encodeURIComponent(document.advancedForm.toMonth.value);
				url += "&toYear=" + encodeURIComponent(document.advancedForm.toYear.value);	
			}
			
			
			//customise option
			if(document.advancedForm.searchByCustomize.checked)
			{
				url += "&customise=true";
			}				
		}

		//Run query
		//alert(url);
		window.open(url, "_self");				
	}
	else
	{
		//no info entered, prompt user
		searchQueryObj.value = "Enter a keyword";
	}
}

/**
 * Show the advanced search 
 */
function showAdvancedSearch()
{
	
	//Set open flag
	advancedOpen = true;
	
	//Show advancedSearch element
	var advancedSearchContainer = document.getElementById("advancedSearchContainer");
	advancedSearchContainer.style.margin = "10px 0px 10px 0px";
	
	var showAdvancedButton = document.getElementById("showAdvancedButton");
	var downArrow = document.getElementById("downArrow");
	showAdvancedButton.style.visibility = "hidden";
	downArrow.style.visibility = "hidden";
	advancedSearchContainer.style.visibility = "visible";
	advancedSearchContainer.innerHTML = "Loading Options...";
	
	if(advancedSearchContent == null)
	{
		new Ajax("../advancedSearch2.htm", {
			method: 'get', 
			update: advancedSearchContainer,
			onSuccess: function(responseText) {
		    	advancedSearchContent = responseText;
		  	}
		}).request();
	}
	else
	{
		advancedSearchContainer.innerHTML = advancedSearchContent;
	}
	
}

/**
 * Hide the advanced search 
 */
function hideAdvancedSearch()
{
	//close open flag
	advancedOpen = false;	
	
	var advancedSearchContainer = document.getElementById("advancedSearchContainer");
	advancedSearchContainer.style.margin = "";
	var showAdvancedButton = document.getElementById("showAdvancedButton");
	var downArrow = document.getElementById("downArrow");
	showAdvancedButton.style.visibility = "visible";	
	downArrow.style.visibility = "visible";
	
	advancedSearchContainer.innerHTML = "";
	advancedSearchContainer.style.visibility = "hidden";
}

/**
 * Toggle the date search on and off 
 */
function toggleDateSearch()
{
	var fromDaySelect = document.getElementById("fromDaySelect");
	var fromMonthSelect = document.getElementById("fromMonthSelect");
	var fromYearSelect = document.getElementById("fromYearSelect");
	var toDaySelect = document.getElementById("toDaySelect");
	var toMonthSelect = document.getElementById("toMonthSelect");
	var toYearSelect = document.getElementById("toYearSelect");
	
	if(fromDaySelect.disabled==false)
	{
		fromDaySelect.disabled=true;
		fromMonthSelect.disabled=true;
		fromYearSelect.disabled=true;
		toDaySelect.disabled=true;
		toMonthSelect.disabled=true;
		toYearSelect.disabled=true;	
	}
	else
	{
		fromDaySelect.disabled=false;
		fromMonthSelect.disabled=false;
		fromYearSelect.disabled=false;
		toDaySelect.disabled=false;
		toMonthSelect.disabled=false;
		toYearSelect.disabled=false;	
	}
}

/**
 * Open Design Browse with the selected product
 */
function openProduct(pID)
{
	url = "flashTools/designLab/DesignBrowse.asp?productID=" + pID
	window.open(url, "_self");
}

function openCategorySelect()
{
	//Open categorySearch.asp in pop-up window
	var theTop	= (screen.height/2)-(180);
	var theLeft	= (screen.width/2)-(303);
	var features = "height=360,width=606,top=" + theTop + ",left=" + theLeft + ",status=yes,toolbar=no,menubar=no,location=no";
	window.open("../selectCategory.asp", "_blank", features);
}

function searchCategory(categoriesText, topCategoryID, middleCategoryID, bottomCategoryID)
{
	//only run search if minimum topCategory is selected
	if(topCategoryID != null)
	{
		if(middleCategoryID == null)
		{
			middleCategoryID = 0;
		}
	
		if(bottomCategoryID == null)
		{
			bottomCategoryID = 0;
		}
		
		var url = "../galleryResults.asp?showSubCategory=true&topCategoryID=" + topCategoryID + "&middleCategoryID=" + middleCategoryID + "&bottomCategoryID=" + bottomCategoryID;
		window.open(url, "_self");	
	}
}

Window.addEvent('domready', function() {	
	var smallSize = new Array();
	var largeSize = new Array();
	 
	var options = $$("#options .button");
	var fx = new Fx.Elements(options, {wait: false, duration: 300, transition: Fx.Transitions.Back.easeOut});
	options.each(function(button, i) {
	
		smallSize[i] = button.getStyle("width").toInt();
		largeSize[i] = smallSize[i] + 80;
	
		button.addEvent("mouseenter", function(event) {
			var o = {};
			o[i] = {width: [button.getStyle("width").toInt(), largeSize[i]]}
			options.each(function(other, j) {
				if(i != j) {
					var w = other.getStyle("width").toInt();
					if(w != smallSize[j]) o[j] = {width: [w, smallSize[j]]};
				}
			});
			fx.start(o);
		});
		
		button.addEvent("click", function(event) {
			var functionCall = this.getProperty('id') + "()";
			eval(functionCall);
		})		
		
	});
	 
	$("options").addEvent("mouseleave", function(event) {
		var o = {};
		options.each(function(button, i) {
			o[i] = {width: [button.getStyle("width").toInt(), smallSize[i]]}
		});
		fx.start(o);
	})
});

function newDesign(){
	galleryDisplay('MostRecent')
}

function highlyRated(){
	galleryDisplay('highlyRated')
}

function kids(){
	galleryDisplay('Kids');
}

function funny(){
	galleryDisplay('Funny');
}

function randomDesign(){
	galleryDisplay('Random')
}
