// browser
var isMacFirefox = ( navigator.userAgent.indexOf("Mac") > 0 && navigator.userAgent.indexOf("Firefox") > 0 );

// set images
IMAGE_ROOT			= AppRoot + "image/";
IMAGE_PLUS 			= IMAGE_ROOT + "p.gif"
IMAGE_MINUS 		= IMAGE_ROOT + "m.gif"

var inProgress		= false;

var currentOpenMenu = null;
var currOpenMenu = new Array();// Added by PK for SFE ID 433
// expansion settings
var e_intervalID 	= null;
var e_interval		= 12; //HA 12
var e_curcycle		= 0;
var e_maxcycle		= 12;//HA 12
var e_start			= 0;
var e_diff			= 0;
// contraction settings
var c_intervalID 	= null;
var c_interval		= 12; // HA 12
var c_curcycle		= 0;
var c_maxcycle		= 12; //HA 12
var c_start			= 0; 
var c_diff			= 0;

OpenMenu = function( id ,value )
{
	if( e_curcycle > 0 || c_curcycle > 0) return;
	
	//alert("Openmenu called");
	//alert(id);
	//alert(value);
	idqs ="quicksearch";
	// get object
	m = document.getElementById( id );
	//alert(m);
	// make sure that we have a menu
	if( m == null ) return;
	// if the menu is already open, close it
	if(value == "bin")// Added by Pranav kotak for SFE ID 319.
		{
			//alert("Bin called");
			if( isMacFirefox && id == "quicksearch" )
			{ 
			//ShowScrollbars();
			HideScrollbars();
			//contract( m );
			// hide listboxes, textboxs and dropdowns
			// empty out current empty menu
			currentOpenMenu = null;
			// set state
			AJAXHandler.SaveMenuState( "null" );
			AJAXHandler.SaveMenuId( id );//HA
			}
			return;
		}// Added ended by Pranav kotak for SFE ID 319.
	if( (currentOpenMenu == m) || (value == "TwoMenus") || (currOpenMenu[0] == m) || (currOpenMenu[1] == m) || ( id == "browse" ))
	{
		//alert(id);
		//if( isMacFirefox && id == "quicksearch" && value != "TwoMenus" ) HideScrollbars(); //Added by Hemant Angane on 31st Oct 2006 for MAC Firefox Listbox Disappearing Error
		if( isMacFirefox && id == "search" ) HideScrollbars(); //uncommented by Hemant Angane on 31st Oct 2006 for MAC Firefox Listbox Disappearing Error
		if( isMacFirefox && id == "fullsearch")HideScrollbars(); //Added by Hemant Angane on 15th Nov 2006 for MAC Firefox issue.
		
		if(currentOpenMenu == m)
		{
			// current menu
			contract( m );
			// hide listboxes, textboxs and dropdowns
			// empty out current empty menu
			currentOpenMenu = null;
			// set state
			AJAXHandler.SaveMenuState( "null" );
			AJAXHandler.SaveMenuId( id );//HA
		}
		else if(currOpenMenu[0] == m)
		{
			// current menu
			contract( m );
			// hide listboxes, textboxs and dropdowns
			// empty out current empty menu
			currOpenMenu[0] = null;
			// set state
			AJAXHandler.SaveMenuState( "null" );
			AJAXHandler.SaveMenuId( id );//HA
		}
		else if(currOpenMenu[1] == m)
		{
			// current menu
			contract( m );
			// hide listboxes, textboxs and dropdowns
			// empty out current empty menu
			currOpenMenu[1] = null;
			// set state
			AJAXHandler.SaveMenuState( "null" );
			AJAXHandler.SaveMenuId( id );//HA
		}
		else if(value == "TwoMenus")
		{
			expand( m );
			currOpenMenu[0] = m;
			// set state
			AJAXHandler.SaveMenuState( currOpenMenu[0] );
			AJAXHandler.SaveMenuId( id );
		}
		else if( ( id == "browse" ) )
		{
			expand( m );
			currOpenMenu[1] = m;
			// set state
			AJAXHandler.SaveMenuState( currOpenMenu[1] );
			AJAXHandler.SaveMenuId( id );
		}
	}
	else
	{
		if( isMacFirefox && id == "quicksearch" && value != "TwoMenus") HideScrollbars(); //Added  by Hemant Angane on 31st Oct 2006 for MAC Firefox Listbox Disappearing Error
		if( isMacFirefox && id == "search" ) ShowScrollbars(); //uncommented by Hemant Angane on 31st Oct 2006 for MAC Firefox Listbox Disappearing Error
		if( isMacFirefox && id == "fullsearch" )HideScrollbars(); //Added by Hemant Angane on 15th Nov 2006 for MAC Firefox issue.
		if( isMacFirefox && id == "quicksearch" &&  currOpenMenu[0] != null)ShowScrollbars(); //Added by Pranav Kotak on 11th Aug 2008 for MAC Firefox issue.
		if((value == "TwoMenus") || ( id == "browse" ))
		{
		}
		else
		{
			// close current menu (apert from QuickSearch)
			if( currentOpenMenu  )
			{ 
				if(id == "quicksearch")
				{
					contract( currentOpenMenu )
					// update current menu
					currentOpenMenu = m;
				}
				else
				{
					currOpenMenu[0] = m;
				}
			}
			else
			{
				currentOpenMenu = m;
			}
		}
		// expand selected menu
		if(value == "default")
		{
			expand( m );
			currentOpenMenu = m;
		}
		//else if(value == "login")
		//{
		//	contract( m );
		//	HideScrollbars();
		//}
		else
		{
			expand( m );
		}
		// show listboxes, textboxs and dropdowns
		
		// set state
//		AJAXHandler.SaveMenuState( id );
		if(currentOpenMenu)
		{
			AJAXHandler.SaveMenuState( currentOpenMenu );
			AJAXHandler.SaveMenuId( id );
		}
		else
		{
			AJAXHandler.SaveMenuState( currOpenMenu[0] );
			AJAXHandler.SaveMenuId( id );
		}
		
	}
}


StartMenu = function( id )
{
	
	
	if( id == "search" && isMacFirefox ) ShowScrollbars();
	// get object
	m = document.getElementById( id );
	//alert('ON LOAD MENU ID is ' + id);  //HA 15 NOV
	// make sure the menu is valid
	if( !m ) return;
	// set menu height
	m.style.height = m.firstChild.offsetHeight;
	rollover( document.getElementById("arrow_" + id) );
	// set as current
	currentOpenMenu = m;
	
	if( isMacFirefox && id == "quicksearch" ) HideScrollbars(); //Added  by Hemant Angane on 31st Oct 2006 for MAC Firefox Listbox Disappearing Error
	if( isMacFirefox && id == "search" ) ShowScrollbars(); //uncommented by Hemant Angane on 31st Oct 2006 for MAC Firefox Listbox Disappearing Error
	if( isMacFirefox && id == "fullsearch")HideScrollbars(); //Added by Hemant Angane on 15th Nov 2006 for MAC Firefox issue.
	
}
HideScrollbars = function()
{
	try{ 
	document.getElementById("navigation_lbTimeOfDay1").parentNode.style.height = document.getElementById("navigation_lbTimeOfDay1").offsetHeight + 15;
	document.getElementById("navigation_lbTimeOfDay1").style.display = "none";
	}catch(e){ alert(e) }
	
	try{ 
	document.getElementById("navigation_lbTypeOfShot1").parentNode.style.height = document.getElementById("navigation_lbTypeOfShot1").offsetHeight + 15;
	document.getElementById("navigation_lbTypeOfShot1").style.display = "none";
	}catch(e){}
	
	try{ 
	document.getElementById("navigation_lbIntExt").parentNode.style.height = document.getElementById("navigation_lbIntExt").offsetHeight + 15;
	document.getElementById("navigation_lbIntExt").style.display = "none";
	}catch(e){}
	
	try{ 
	document.getElementById("navigation_lbSourceFormat").parentNode.style.height = document.getElementById("navigation_lbSourceFormat").offsetHeight + 15;
	document.getElementById("navigation_lbSourceFormat").style.display = "none";
	}catch(e){}
	
	try{ 
	document.getElementById("navigation_lbSeason").parentNode.style.height = document.getElementById("navigation_lbSeason").offsetHeight + 15;
	document.getElementById("navigation_lbSeason").style.display = "none";
	}catch(e){}
	
	// leave this in as a hack
	try{ 
	document.getElementById("navigation_lbSeason").parentNode.style.height = document.getElementById("navigation_lbSeason").offsetHeight + 15;
	document.getElementById("navigation_lbSeason").style.display = "none";
	}catch(e){}
	
}

ShowScrollbars = function()
{
	try{ 
	document.getElementById("navigation_lbTypeOfShot1").style.display = "block";
	}catch(e){}
	
	try{ 
	document.getElementById("navigation_lbIntExt").style.display = "block";
	}catch(e){}
	
	try{ 
	document.getElementById("navigation_lbSourceFormat").style.display = "block";
	}catch(e){}
	
	try{ 
	document.getElementById("navigation_lbSeason").style.display = "block";
	}catch(e){}
	
	try{ 
	document.getElementById("navigation_lbTimeOfDay1").style.display = "block";
	}catch(e){}	
}

expand = function(o)
{
	if( e_curcycle > 0 ) return;
	// open toggle
	rollover( document.getElementById("arrow_" + o.id) );
	// get content height
	e_diff = o.firstChild.offsetHeight;
	// start expansion
	//e_intervalID = setInterval( "expandIncremental('" + o.id + "')", 10 );
	// Added by pranav k to Remove the effect in case of QS
	if(o.id != "quicksearch")
	{
		e_intervalID = setInterval( "expandIncremental('" + o.id + "')", 1 );
	}
	else
	{
		document.getElementById( o.id ).style.height = "36px";
	}
	// Add ended by pranav k to Remove the effect in case of QS
}
expandIncremental = function( id )
{
	// set body height
	document.getElementById( id ).style.height = ease( ++e_curcycle, e_start, e_diff , e_maxcycle ) + "px";
	// stop expansion when cycles are done
	if( e_curcycle >= e_maxcycle ){ clearInterval( e_intervalID ); e_curcycle = 0; }
}
contract = function(o)
{
	if( c_curcycle > 0 ) return;
	// close toggle
	rollout( document.getElementById("arrow_" + o.id) );
	// get content height
	c_start = o.firstChild.offsetHeight;
	// get differential
	c_end = -c_start;
	// start contraction
	//c_intervalID = setInterval( "contractIncremental('" + o.id + "')", 10 );
	// Added by pranav k to Remove the effect in case of QS
	if(o.id != "quicksearch")
	{
		c_intervalID = setInterval( "contractIncremental('" + o.id + "')", 1 );
	}
	else
	{
		document.getElementById( o.id ).style.height = "0px";
	}
	// Add ended by pranav k to Remove the effect in case of QS
}
contractIncremental = function( id )
{
	// set body height
	document.getElementById( id ).style.height = ease( ++c_curcycle, c_start, c_end, c_maxcycle ) + "px";
	// stop contraction when cycles are done
	if( c_curcycle >= c_maxcycle ){ clearInterval( c_intervalID ); c_curcycle = 0; }
}
ease = function (t, b, c, d) { return c*((t=t/d-1)*t*t*t*t + 1) + b; }
// toggle the item's subgroup
t = function( item )
{
	if( item == null || item.id == null ) return;
	var id = item.id.substring( 1, item.id.length );
	// get item's group
	var element = item;
	while( element.tagName.toUpperCase() != "TABLE" ) element = element.parentNode;
	element = element.nextSibling;
	if( element == null || element.className != "mg" ) return;
	// set visual state
	if( element.style.display == "none" || element.style.display == "")
	{
		element.style.display = "block";
		item.src = IMAGE_MINUS;
		// set state
		AJAXHandler.AddOpenCat( id );
	} else {
		element.style.display = "none";
		item.src = IMAGE_PLUS;
		// set state
		AJAXHandler.CloseOpenCat( id );
	}
	// reset offsetheight
	if( currentOpenMenu != null && currentOpenMenu.id == "browse" )
	{
		b = document.getElementById("browse");
		b.style.height = b.firstChild.offsetHeight;
	}
}
// load category
a = function( id )
{ 
	location.href = AppRoot + "footage?cid=" + id;
}
// set menu state
SetCatsState = function( openmenus )
{
	if( openmenus == null || openmenus.length < 1 ) return;
	list = openmenus.split(",");
	for( var i=0; i<list.length; i++ )
	{
		t( document.getElementById( "a" + list[i] ) );
	}
}