<!-- 
/*
TODO:
	handle AJAX Failure better?: "Could not load Profile. Please try again later."

DESCRIPTION
	1) Decorate Profile Links
	2) Decorate Select lists
	
INTERFACE
	Page:
		profile_atag (class)
		profile_business_select (id)
		profile_region_select (id)
		profile_business_option (class)
		profile_region_option (class)
		
DEPENDS
	grui 
		grui-dom-event
*/

if (typeof GR == "undefined") {
	GR ={};
}
if (typeof GR.profile == "undefined") {
	GR.profile = {};
}

GR.profile.globalDropOverlay;

/* ----------------------------------------------------------- 
	Loader
   ----------------------------------------------------------- */
GR.profile.pageLoader = function(){
	GR.profile.decorateSelectNavigation();
	GR.profile.decorateProfileLinks();		
};
/* ----------------------------------------------------------- 
	Select Navigation
   ----------------------------------------------------------- */
GR.profile.decorateSelectNavigation = function(){
	var regionSelectionNodes = HRGR.util.Dom.getElementsByClassName('profile_region_option', 'option');
	var businessSelectionNodes = HRGR.util.Dom.getElementsByClassName('profile_business_option', 'option');
	var liRegionNodes = new Array();
	var liBusinessNodes = new Array();
	for(var i=0; i<regionSelectionNodes.length; i++){
		var regionClassName = regionSelectionNodes[i].value;
		var regions=HRGR.util.Dom.getElementsByClassName(regionClassName, 'li');
		for(var ii=0; ii<regions.length; ii++){
			liRegionNodes.push(regions[ii]);
		}
	}
	for(var i=0; i<businessSelectionNodes.length; i++){
		var businessClassName = businessSelectionNodes[i].value;
		var businesses=HRGR.util.Dom.getElementsByClassName(businessClassName, 'li');
		for(var ii=0; ii<businesses.length; ii++){
			liBusinessNodes.push(businesses[ii]);	
		}
	}
	
	
	var profileSelectEle = document.getElementById('profile_region_select');
	var obj = { 
		selectNode: profileSelectEle, 
		regionNodes: liRegionNodes
		};
	HRGR.util.Event.addListener(profileSelectEle,"change",GR.profile.selectRegion,obj);
	
	profileSelectEle = document.getElementById('profile_business_select');
	var obj = { 
		selectNode: profileSelectEle, 
		businessNodes: liBusinessNodes
		};
	HRGR.util.Event.addListener(profileSelectEle,"change",GR.profile.selectBusiness,obj);
}; //END GR.profile.decorateSchoolSelects 

GR.profile.selectBusiness = function(e,obj){
	//alert("select business"+obj.businessNodes.length);
	var businessNodes = obj.businessNodes;
	var selectValue = obj.selectNode.value;
	//Hide all except selected businesses
	for(var i=0; i<businessNodes.length; i++){
		if( selectValue == "" ){
			HRGR.util.Dom.setStyle([businessNodes[i]],"display","block");
		} else if( HRGR.util.Dom.hasClass(businessNodes[i],selectValue) ){
			HRGR.util.Dom.setStyle([businessNodes[i]],"display","block");
		} else { 	//Hide all except selected regions
			HRGR.util.Dom.setStyle([businessNodes[i]],"display","none");
		}
	}
}//END GR.profile.selectBusiness


GR.profile.selectRegion = function(e,obj){
	var regionNodes = obj.regionNodes;
	var selectValue = obj.selectNode.value;
	for(var i=0; i<regionNodes.length; i++){
		if( selectValue == "" ){
			HRGR.util.Dom.setStyle([regionNodes[i]],"display","block");
		} else if( HRGR.util.Dom.hasClass(regionNodes[i],selectValue) ){
			HRGR.util.Dom.setStyle([regionNodes[i]],"display","block");
		} else { 	//Hide all except selected regions
			HRGR.util.Dom.setStyle([regionNodes[i]],"display","none");
		}
	}
}//END GR.profile.selectRegion

/* ----------------------------------------------------------- 
	Profile Links
   ----------------------------------------------------------- */
GR.profile.decorateProfileLinks = function(){
	var aTags = HRGR.util.Dom.getElementsByClassName('profile_atag', 'a');
	//GR.profile.setUpDropSheetOverlay();
	for(var i=0; i< aTags.length ;i++){
		var targetUrl = aTags[i].href;
		aTags[i].href="#";
		aTags[i].onclick="return false;";
		HRGR.util.Event.addListener(aTags[i], "click", 
			GR.profile.clickProfile, targetUrl);
	}
}; //END GR.profile.decorateProfileLinks

GR.profile.clickProfile = function(e,sXmlUrl){
	var callbackXmlReqObj = {
		success: function(o) { GR.profile.parseXmlIntoPage(o.responseXML); },
  		failure: function(o) { alert("Could not load Profile. Please try again later."); }
  	};
	var ajaxCall = HRGR.util.Connect.asyncRequest('GET', sXmlUrl, callbackXmlReqObj, null); 
	return false;	
}; //END GR.profile.clickProfile

GR.profile.parseXmlIntoPage = function(textXml){
		var root = textXml.documentElement;
//		if(typeof root == 'undefined' || root == null){
//			root = textXml;
//		}
		var profileHtmlNodes = root.getElementsByTagName("profilehtml");
//alert("length:"+profileHtmlNodes.length);	
		var profileHtml = profileHtmlNodes[0].firstChild.nodeValue;
		GR.profile.createPopup(profileHtml);
}; //GR.profile.parseXmlIntoPage

/* ----------------------------------------------------------- 
	Popup
   ----------------------------------------------------------- */
GR.profile.createPopup = function(contentHtml){
	var overlay;
	
	if(typeof GR.profile.globalDropOverlay == 'undefined' || GR.profile.globalDropOverlay == null){
		overlay = new HRGR.widget.Panel("currentContentSheet",
			{ 
			fixedcenter:true, width:"550px", height:"400px" ,
			visible:false, constraintoviewport:true, 
			modal:true, underlay: "matte", close: true}
			);
		GR.profile.globalDropOverlay = overlay;
	}
	overlay = GR.profile.globalDropOverlay ;
	overlay.setHeader("Profile");
	overlay.setBody(contentHtml);
	overlay.render(document.body);
	//overlay.cfg.setProperty("fixedcenter",false); 
	overlay.show();	
	//set close behavior on mask
	var maskNodes = HRGR.util.Dom.getElementsByClassName('mask');
	for(var i=0; i< maskNodes.length ; i++){
		HRGR.util.Event.addListener(maskNodes[i], 
			"click", GR.profile.destroyPopup);
	}
};

GR.profile.destroyPopup = function(){
	if(typeof GR.profile.globalDropOverlay != 'undefined' && GR.profile.globalDropOverlay != null){
		GR.profile.globalDropOverlay.destroy();
		GR.profile.globalDropOverlay = null;
	}	
};

/* ----------------------------------------------------------- 
	Main
   ----------------------------------------------------------- */

HRGR.util.Event.addListener(window, "load", GR.profile.pageLoader);