
	// sD = discipline, id="projTbl_disc" below 
	// sD is set when d_discipline.asp or s_projects.asp page is loaded 
	// sC is category, id="projTbl_cat" below 
	// sQ is SQL argument

	// sD=="pr" is "s_projects.asp", show ALL projects in this case
	// HA_AJAX.bannerImages() runs when page is first loaded,  
	// else projectList() runs when category is clicked 

HA_AJAX={

	sLT : '<',
	sGT : '>',
//	sLT : '[', // for <PRE> output 
//	sGT : ']', // for <PRE> output 
	gPage : null, 
	gD : null, 
	gC : null,
	// HA_AJAX.gPage stores the active page; 
	// HA_AJAX.gPage is set by s_projects.asp or d_discipline.asp pages onload functions
	
	// gD (discipline) can only be set or changed from m_projectPage.asp 
	// gC (category) can be set and changed from any page that includes _inc_project_tables.asp
	// gD and gC are global and exist until changed or page is refreshed, this affects primarily m_projectPage.asp 
	// when m_projectPage.asp loads, neither discipline (gD) nor category (gC) are set, so ALL projects are displayed
	// if discipline (gD) is not set and category (gC) "mixed use" is clicked, gC is set to "mu", ALL "mixed use" projects are displayed
	// if discipline (gD) is not set and category (gC) "transportation" is clicked, gC is set to "tr", ALL "transportation" projects are displayed
	// if "architecture" is then clicked, gD is set to "ar" and gC is retained as "tr", then "architecture" "transportation" projects are displayed
	// if "mixed use" is then clicked, gC is set to "mu", and "architecure" "mixed use" projects are displayed
	// if "transportation" is then clicked, gC is set to "tr", "architecture" "transportation" projects are then displayed
	// if "urban design" is then clicked, gD is set to "ur", gC retains its "tr" setting, 
	//     and ALL "urban design" "transportation" projects are displayed
	// if "clear settings" button is clicked, gD and gC are cleared and ALL projects are displayed
	
	// all other pages set HA_AJAX.gPage onload, set gC as categories are clicked, and don't use gD


	xCSS : function(sD,sC){ // changes discipline and category css 
		var aT=["projTbl_cat","projTbl_disc"]; var aA=[];
		for (i=0;i<aT.length;i++) {
			aA=document.getElementById(aT[i]).getElementsByTagName("a");
			for(oA in aA) { try { aA[oA].className="clr_OFF"; } catch (e){} } 
		}
		switch (HA_AJAX.gPage) { //' sent by onload function HA_AJAX.bannerImages('m_pr') where m_pr varies per page
		case 'm_pr': // don't hilite sidebar disciplines for m_projectPage.asp 
			aT=[sD,sC];
			break;
		default: //' HA_AJAX.bannerImages('[ar,la,ur,pr]') for 3 discipline pages + s_projects.asp
			aT=[sD+"_l",sD,sC];
			break;
		}
		for (i=0;i<aT.length;i++) {
			try { document.getElementById(aT[i]).className="clr_ON"; }
			catch (e) { }
		}
	},

	update_xml : function(xmlhttp, id, special){
	//alert("function update_xmlxmlhttp.responseText= \n"+xmlhttp.responseText);
		switch (special) {
			case "HA_AJAX.indexImages":
				$(id).fadeOut('slow', function() {				
						$(id).attr("src",xmlhttp.responseText).fadeIn('slow');			
				});
				break;
			default:
				$(id).hide().html(xmlhttp.responseText).fadeIn('slow');
		}  
	},

	do_xml : function(url, id, afterxml, special){ //'special instructs HA_AJAX.update_xml where to send responseText
	//alert("function HA_AJAX.do_xml\n"+url);
		var xmlhttp=null;
		try { xmlhttp=new XMLHttpRequest(); }
		  // Firefox, Opera 8.0+, Safari
		catch (e)
		  // Internet Explorer
		{ try { xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); }
		catch (e) { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
		} 
		if (!xmlhttp) { alert ("function HA_AJAX.do_xml\n\nYour browser does not support AJAX!\n\n");}
		else 
		{
		    xmlhttp.onreadystatechange= function() { //HA_AJAX.do_xml xmlhttp.status
	//	        if ((xmlhttp.readyState==4) && (xmlhttp.status==200)) { 
		        if (xmlhttp.readyState==4) { 
		        	if (id != "") { 
			        	HA_AJAX.update_xml (xmlhttp, id, special);
	 				}
		        	// special instructs HA_AJAX.update_xml where to send responseText
		        	// afterxml[f] functions run after xmlhttp returns
			        // where (id == "") don't update xml entity, afterxml probably contains a reload page command
		        	if (afterxml) { for (var f in afterxml) {  afterxml[f](); } } 
		        }
	    	};
		    xmlhttp.open("GET",url,true);
		    xmlhttp.send(null);
		}
	},

	indexImages : function(){
		$('#imageContainer').css("backgroundImage","url("+$('#newImage').src+")");
		var afterxml=[]; //'these functions run after xmlhttp returns
		HA_AJAX.do_xml("/code/mkIndexImages.asp", '#newImage', afterxml, "HA_AJAX.indexImages"); 
		var t=setTimeout("HA_AJAX.indexImages()",4000); 
	},


	bannerImages : function(sPage){ // ' bannerImages (called onload only)
		HA_AJAX.gPage=sPage;	
		/* 	store active page for category menus, 
			they will call function projectList and supply only category (sC) */
		switch (HA_AJAX.gPage) {
		case 'm_pr': // m_projectPage.asp
			HA_AJAX.xProjectList('pr','m_pr'); 
			HA_AJAX.xCSS(HA_AJAX.gD); 
			break;
		case 'pr': // s_projects.asp
			HA_AJAX.do_xml("/code/mkBannerImages.asp", '#imageContainer'); 
			HA_AJAX.xProjectList('pr'); 
			HA_AJAX.xCSS(HA_AJAX.gPage); 
			break;
		case 'ar': // discipline.asp
		case 'la': // discipline.asp
		case 'ur': // discipline.asp
			HA_AJAX.do_xml("/code/mkBannerImages.asp", '#imageContainer');
			HA_AJAX.gC='mu'; 
			HA_AJAX.xProjectList("'"+HA_AJAX.gPage+"','"+HA_AJAX.gC+"'"); 
			HA_AJAX.xCSS(HA_AJAX.gPage,HA_AJAX.gC); 
			break;
		default:
		} 
	},

	xProjectList : function(sSql, m_pr){ // m_pr passed by m_projectPage.asp, otherwise null
		HA.db_path("HA_AJAX.xProjectList()");

		var xmlhttp=null;
		try { xmlhttp=new XMLHttpRequest(); }
		  // Firefox, Opera 8.0+, Safari
		catch (e)
		  // Internet Explorer
		  { try { xmlhttp=new ActiveXObject("Msxml2.XMLHTTP"); }
		  catch (e) { xmlhttp=new ActiveXObject("Microsoft.XMLHTTP"); }
		  } 
		if (!xmlhttp) { alert ("function HA_AJAX.do_xml\n\nYour browser does not support AJAX!\n\n");}
		else {
			var url="/code/mkProjectLists.asp?sSql="+sSql+ (m_pr?"&m=m_pr":"");
		    xmlhttp.onreadystatechange= function() { 
		        if ((xmlhttp.readyState==4) && (xmlhttp.status==200)) { 
							var pPT=$("#projectPageText"); 
							if (pPT.length > 0){ pPT.html(""); }//' clears projectPageText if exists
							$('#projTbl_proj').html(xmlhttp.responseText);
		        }
	    	}
//alert("HA_AJAX.xProjectList()url\n"+url);
			xmlhttp.open("GET",url,true); xmlhttp.send(null); 
		}	
	},

	projectList : function(s){ // ' projectList
		(s)?HA_AJAX.gPage=s:null;
	HA.db_txt("HA_AJAX.projectList() HA_AJAX.gPage= " + HA_AJAX.gPage);
		switch (HA_AJAX.gPage) {
		case 'm_pr': // m_projectPage.asp
			var sql="'"+ (HA_AJAX.gD?HA_AJAX.gD:escape("%%")) +"','"+ (HA_AJAX.gC?HA_AJAX.gC:escape("%%")) +"'"; 
			$('#saveAllButton').attr("disabled","disabled");
			HA_AJAX.xProjectList(sql, 'm_pr'); 
			HA_AJAX.xCSS(HA_AJAX.gD,HA_AJAX.gC); 
			break;
		case 'ar': // d_architecture.asp
		case 'la': // d_landscape.asp
		case 'ur': // d_urban.asp
			HA_AJAX.do_xml("/code/mkBannerImages.asp", '#imageContainer');
			HA_AJAX.xProjectList("'"+HA_AJAX.gPage+"','"+HA_AJAX.gC+"'"); 
			HA_AJAX.xCSS(HA_AJAX.gPage,HA_AJAX.gC); 
			break;
		default:
		} 
	}
}
