var php_content = "contentv2";
var php_side = "sidev2";

function rebuild_limiters()
{
	var limiter = "";
	jQuery(".side_content ul li div").each( function(i,e){
		var current_id = jQuery(e).attr("id");
		if ( jQuery(e).attr("class") == "parent grey" )
		{
			limiter += "&";
			limiter += current_id.substr(2);
			limiter += "=";	
		}
	});
	jQuery("#h_limiters").val(limiter);
	ajaxInit( "content", php_content, "getupdate" );
}

function init_buttons()
{
	jQuery("#cat_clear").unbind('click').click( function(){
		jQuery("#side_cat .side_content ul li div").attr("class","parent grey");
		rebuild_limiters();
	});
	
	jQuery("#cat_sel").unbind('click').click( function(){
		jQuery("#side_cat .side_content ul li div").attr("class","parent green");
		rebuild_limiters();
	});
	
	jQuery("#age_clear").unbind('click').click( function(){
		jQuery("#side_age .side_content ul li div").attr("class","parent grey");
		rebuild_limiters();
	});
	
	jQuery("#age_sel").unbind('click').click( function(){
		jQuery("#side_age .side_content ul li div").attr("class","parent green");
		rebuild_limiters();
	});
	
	jQuery("#type_clear").unbind('click').click( function(){
		jQuery("#side_type .side_content ul li div").attr("class","parent grey");
		rebuild_limiters();
	});
	
	jQuery("#type_sel").unbind('click').click( function(){
		jQuery("#side_type .side_content ul li div").attr("class","parent green");
		rebuild_limiters();
	});	
}

function ajaxInit( elementid, filename, method ) {

	//set variables from form elements and creat url string
	var searchquery = document.getElementById('s').value;
	var url_vars = document.getElementById('h_limiters').value;
	var sort_var = document.getElementById('h_sort').value;
	var page_var = document.getElementById('h_page').value;
	var browse_var = document.getElementById('h_browse').value;
	var atoz_var = document.getElementById('h_atoz').value;

	//show the progress
	anim_in.animate();

	if ( method == "getupdate" ) {
		var sUrl = "id_" + filename + ".php?s=" + searchquery + url_vars + sort_var + browse_var + "&atoz=" + atoz_var + "&pagenum=" + page_var;
	}
	if ( method == "getsearchnew" ) {
		var sUrl = "id_" + filename + ".php?s=" + searchquery + sort_var + browse_var + "&pagenum=" + page_var;
	} 
//			alert(sUrl);

	//call search results
	var callback = { 
		success: function(o) {
			document.getElementById( elementid ).innerHTML =  o.responseText;
			setTimeout ( 'anim_out.animate()', 600 );
			init_buttons();
			if (!isIE6()) {
				Effect.Appear( elementid , { duration: 0.5, from: 0.8, to: 1.0 });
			}
			
			}, 
		failure: function(o) {
			alert("Error Loading Search Application");
			}
	}
	if (!isIE6()) {
		Effect.Fade( elementid, { duration: 0, from: 1.0, to: 0.2 });
	}
	var transaction = YAHOO.util.Connect.asyncRequest('GET', sUrl, callback, null);
	
	initNav();		
}

function callResults( type , limiter ) {

	//sort results
	if ( type == "sort" ) {
	
		var existing_string = document.getElementById('h_sort').value;
	
		if ( existing_string != "" ) {
			var string_identify = existing_string.search( "sort" );
			if (string_identify == '-1' ) {
			//add the limiter to the existing string
				existing_string = existing_string + limiter;
				var sort_var = existing_string;
			}
			if (string_identify != '-1' ) {
			//parse out the limiter from the existing string
				existing_string = existing_string.replace( "&amp;sort_1=", "" );
				existing_string = existing_string.replace( "&amp;sort_2=", "" );
				existing_string = existing_string.replace( "&amp;sort_3=", "" );
				existing_string = existing_string.replace( "&amp;sort_4=", "" );
				existing_string = limiter;
				var sort_var = existing_string;
			}
		} else {
			if ( existing_string == "" ) {
			//create the limiter if not existent
				var existing_string = limiter;
				var sort_var = limiter;
			}
		}
		
		sortMenuOut(); //hide sort menu
		
		document.getElementById('h_sort').value = existing_string;
		ajaxInit( "content", php_content, "getupdate" );
		
		switch( limiter ) {
			case "&sort_1=" :
  			var select_text = "Sort Order:<a>Type of Resource &gt;&gt;</a>"
  			break;   
			case "&sort_2=" :
  			var select_text = "Sort Order:<a>Recently Updated &gt;&gt;</a>"
  			break;   
			case "&sort_3=" :
  			var select_text = "Sort Order:<a>Ascending (A-Z) &gt;&gt;</a>"
  			break;   
			case "&sort_4=" : 
  			var select_text = "Sort Order:<a>Descending (Z-A) &gt;&gt;</a>"
  			break;  	
			default :
  			var select_text = "Sort Order:<a>Ascending (A-Z) &gt;&gt;</a>"
  			break;  	
		}		
		document.getElementById('sort').innerHTML = select_text;
		

	}
	
	//get page number of results
	if ( type == "page" ) {
		document.getElementById('h_page').value = limiter;
		ajaxInit( "content", php_content, "getupdate" );
		scroll(0,0);
	}

	//sort by limiters
	if ( type == "update" ) {
		
		document.getElementById('h_page').value = "0";
		var existing_string = document.getElementById('h_limiters').value;
	
		if ( existing_string != "" ) {
			
			var string_identify = existing_string.search( limiter );
			if (string_identify == '-1' ) {
			//add the limiter to the existing string
				existing_string = existing_string + limiter;
				var url_vars = existing_string;
			}
			if (string_identify != '-1' ) {
			//parse out the limiter from the existing string
				existing_string = existing_string.replace( limiter, "" );
				var url_vars = existing_string;
			}
		} else {
			if ( existing_string == "" ) {
			//create the limiter if not existent
				var existing_string = limiter;
				var url_vars = limiter;
			}

		}
		document.getElementById('h_limiters').value = existing_string;
		ajaxInit( "content", php_content, "getupdate" );	
		
	}
	
	if ( type == "browse" ) {
		document.getElementById('s').value = "Type Here to Begin";
		document.getElementById('h_limiters').value = "";
		document.getElementById('h_page').value = "0";
		document.getElementById('h_browse').value = limiter;
		document.getElementById('h_atoz').value = '';
		ajaxInit( "side_container", php_side, "getsearchnew" );
		ajaxInit( "content", php_content, "getsearchnew" );
	}

	//create search results			
	if ( type == "search" ) {
		document.getElementById('h_limiters').value = "";
		document.getElementById('h_page').value = "0";
		document.getElementById('h_browse').value = "";
		document.getElementById('h_atoz').value = '';
		existing_string = "";
		ajaxInit( "side_container", php_side, "getsearchnew" );
		ajaxInit( "content", php_content, "getsearchnew" );
	}
	return false;
}

function atoz(letter) {
		document.getElementById('h_atoz').value = letter;
		document.getElementById('h_page').value = "0";
		ajaxInit( "side_container", php_side, "getupdate" );
		ajaxInit( "content", php_content, "getupdate" );
}

function clearResults() {
	var searchquery = document.getElementById('s').value = 'Type Here to Begin';
	document.getElementById('h_atoz').value = '';
	return callResults('search','');
}

//show and hide the sort menu
function sortMenuToggle() {
		Effect.toggle('sortmenu','blind', {
		duration: 0.3,
		queue: {
			position: 'end',
			scope: 'sideScope',
			limit: 1 }
	});
}

function sortMenuOut() {
	Effect.BlindUp('sortmenu', {
		duration: 0.3,
		queue: {
			position: 'end',
			scope: 'sideScope',
			limit: 1 }
	});
}

function highlightSide ( targetEntry )
{
	targetEntry.style.backgroundColor = '#FFFFFF';
}
function restoreSide ( targetEntry )
{
	targetEntry.style.background = 'none';
}

function exSelect( limiter, group ) {
	
	limiter = '&'+limiter+'=';
	hidden_field_id = 'h_'+group+'_attrib';
	complete_list = document.getElementById( hidden_field_id ).value;
	browse_item = document.getElementById( 'h_browse' ).value;
	
	exclude_list = complete_list.replace( limiter, "" );
	
	if ( browse_item != '' )
	{
//		alert('running browse exclusion');
//		alert(browse_item);
		exclude_list = exclude_list.replace( browse_item, "" );
	}
	
	document.getElementById('h_limiters').value = exclude_list;
	ajaxInit( "content", php_content, "getupdate" );	
}


//side menu
function changeSide( targetEntry, condition ) {
	
	// variables for parent and subMenu divs
	subID = 'ss_'+targetEntry;
	parentID = 's_'+targetEntry;
	//menuID = 'dc_'+targetEntry;
	
	switch( condition ) {
		case 'textOver' :
			if ( $(parentID).hasClassName('green') ) {
				$(parentID).removeClassName('green');
				$(parentID).addClassName('red');
			}
			break;  
		case 'textOut' :
			if ( $(parentID).hasClassName('red') ) {
				$(parentID).removeClassName('red');
				$(parentID).addClassName('green');
			}
			break;  
		case 'textClick' :
			if ( $(parentID).hasClassName('grey') ) {
				$(parentID).removeClassName('grey');
				$(parentID).addClassName('green');
			} else {
				$(parentID).removeClassName('red');
				$(parentID).addClassName('grey');
			}
			callResults('update','&'+targetEntry+'=');
			break;  
		case 'subShow' :
			document.getElementById( subID ).style.display = 'block';
			break;  
		case 'subHide' :
			document.getElementById( subID ).style.display = 'none';
			break; 
		case 'subOver' :
			document.getElementById( subID ).style.backgroundColor = '#FFFFFF';
			break; 
		case 'subOut' :
			document.getElementById( subID ).style.backgroundColor = '#EFF7F7;';
			break; 
		case 'subClick' :
			document.getElementById('h_limiters').value = '';
			$( subID ).hide();
			callString = "&b="+targetEntry;
			callResults('browse', callString);
			break; 
	}
}

function isIE6() {
	if (window.XMLHttpRequest) {
		return false;
	} else {
		return /msie/i.test(navigator.userAgent) && !/opera/i.test(navigator.userAgent);
	}
}

function setHeight() {
	if ((isIE6() == true) && ( document.body.clientWidth > 800 )) {
		var sideHeight = document.getElementById('side').offsetHeight;
		var entryHeight = document.getElementById('results').offsetHeight + 60;
		if (sideHeight < 400) sideHeight = 500;
		if (entryHeight < 400) entryHeight = 500;
		if ( sideHeight >= entryHeight) {
			document.getElementById('setheight').style.height = sideHeight;
		} else {
			document.getElementById('setheight').style.height = entryHeight;
		}
	}
}

function entryClass(targetElement) {
	if (targetElement.className == 'entry_content entry_content_over') {
		targetElement.className = 'entry_content';
	} else {
		targetElement.className = 'entry_content entry_content_over';
	}
}

function preloadImages() {
  var d=document; if(d.images){ if(!d.MM_p) d.MM_p=new Array();
    var i,j=d.MM_p.length,a=preloadImages.arguments; for(i=0; i<a.length; i++)
    if (a[i].indexOf("#")!=0){ d.MM_p[j]=new Image; d.MM_p[j++].src=a[i];}
	}
}

function clickClear(thisfield, defaulttext) {
	if (thisfield.value == defaulttext) {
		thisfield.value = "";
	}
}

function clickRecall(thisfield, defaulttext) {
	if (thisfield.value == "") {
		thisfield.value = defaulttext;
	}
}

function showContent(){
	setTimeout("Effect.Fade('preloading', {duration: 0.2});Effect.BlindUp('preloading', {duration: 0.2});", 1000);
	setTimeout("$('bgc').hide();",1300);
}

var anim_in = {
	animate: function() {
		
		var queue = Effect.Queues.get('loadScope');
		queue.each(function(e) { e.cancel() });
	
		Effect.Appear('loading_status', {
			duration: 0.4,
			queue: {
				position: 'end',
				scope: 'loadScope'
			}
		});
	}
}

var anim_out = {
	animate: function() {
		
		Effect.Fade('loading_status', {
			duration: 0.4,
			queue: {
				position: 'end',
				scope: 'loadScope'
			}
		});

	}
}

function sideToggle(element) {
	if (isIE6() == false) {
	Effect.toggle(element,'blind', {
		duration: 0.4,
		queue: {
			position: 'end',
			scope: 'sideScope',
			limit: 1 }
	});
	}
}

initNav = function() {
	var lis = getElementsByClassName(document, "ul", "dropmenu");
	for (var i=0; i<lis.length; i++)
	{
		var drops = lis[i].getElementsByTagName("ul");
		if (drops.length)
		{
			lis[i].onmouseover = function()
			{
				this.className += " hover";
			}
			lis[i].onmouseout = function()
			{
				this.className = this.className.replace("hover", "");
			}
		}
	}
}

function getElementsByClassName(oElm, strTagName, strClassName){
	var arrElements = (strTagName == "*" && oElm.all)? oElm.all : oElm.getElementsByTagName(strTagName);
	var arrReturnElements = new Array();
	strClassName = strClassName.replace(/\-/g, "\\-");
	var oRegExp = new RegExp("(^|\\s)" + strClassName + "(\\s|$)");
	var oElement;
	for(var i=0; i<arrElements.length; i++){
		oElement = arrElements[i];
		if(oRegExp.test(oElement.className)){
			arrReturnElements.push(oElement);
		}
	}
	return (arrReturnElements)
}

preloadImages('inc/img/ajax-loader.gif','inc/img/cb_green.png','inc/img/cb_grey.png','inc/img/cb_red.png');