
// **********************************************************************
// **********************************************************************

function BCS_BottomBar_CompanyLink(co) {
	var caturl = BCS_GetURL_CatalogDomain();
	var cat_win = null;
	cat_win = window.open(caturl,'catalog');
	cat_win.focus();
}

function BCS_BottomBar_ContactUs(co) {
	var caturl = BCS_GetURL_CatalogDomain();
	caturl += '/contactus.asp';
	var cat_win = null;
	cat_win = window.open(caturl,'catalog');
	cat_win.focus();
}

function BCS_BottomBar_PrivacyPolicy(co) {
	var caturl = BCS_GetURL_CatalogDomain();
	caturl += '/newcatalog.aspx?page=html/bsmprivacy.html';
	var cat_win = null;
	cat_win = window.open(caturl,'catalog');
	cat_win.focus();
}

function BCS_BottomBar_TechSupport(co) {
	var caturl = BCS_GetURL_CatalogDomain();
	caturl += '/newcatalog.aspx?page=support/student.html';
	var cat_win = null;
	cat_win = window.open(caturl,'catalog');
	cat_win.focus();
}





// **********************************************************************
// **********************************************************************


var inBCS_UserViewMode = '';
var BCSBSI_site_tabMods_CONTENT;
var BCSBSI_site_tabMods_PRODUCTS;
var BCS_go_tab = '';
var BCS_go_content = '';

// **********************************************************************
// **********************************************************************
// WaitFor_go function
// Define a function to call after RA is ready.

RA_CtrlWin.RA.WaitFor_go = BCS_RAReady_Go;
RA_CtrlWin.RA.WaitFor_error_go = BCS_RAReady_Error;
RA_CtrlWin.RA.UseClasses = false;


// **********************************************************************
// **********************************************************************
var BCS_showMsg = false;
var BCS_msg = '';
var popupTestWin = null;
function closePopupTestWin () {
	if (popupTestWin) {
		popupTestWin.close();
	}
}

// **********************************************************************
// Body OnLoad function
// This function needs to run some RA set-up logic.
// Any site-specific logic which depends on RA to be ready should go in
// the WaitFor_go function defined in the <head>.

function BCS_main_init() {
	if (RA_CtrlWin.RA.dev_check('any')) BFWDATA.debugMode = true;

	jQuery.support.isIE7 = (document.all && !window.opera && window.XMLHttpRequest) ? true : false;
	if (popupsblocked || cookiesblocked) {
		return false;
	}
//	if (BFW_QStr['carousel']=='true') {
//		BCS_useCarousel = true;
//	}
	$('#BCS_topBarDiv')[0].style.width = '990px';
	$('#BCS_page')[0].style.width = '990px';
	$('#BCS_bottomBarDiv')[0].style.width = '990px';

	$('#BCS_page_grayed').show();
	$('#BCS_loading_msg').show();
	$('#BCS_page_msg').hide();

//	window.focus();

	$('a.NavTree_toggleNode').live('click', BCS_NavTree_ToggleNode);
	$('a.NavTree_loadNode').live('click', BCS_NavTree_LoadNode);
	$('a.NavTree_loadNodeBreadcrumb').live('click', BCS_NavTree_LoadNode);
	$('a.NavTree_loadItem_icon').live('click', BCS_NavTree_LoadItem);
	$('a.NavTree_loadItem').live('click', BCS_NavTree_LoadItem);
	$('#BCS_RA_UserLoginLink_1_w_355').hover(
		BFW_PopOver,
		BFW_PopOverDoNothing
	);
	$('#BCS_RA_UserLoginLink_2_w_445').hover(
		BFW_PopOver,
		BFW_PopOverDoNothing
	);

	BCS_WaitFor_Site();
	BCS_WaitFor_BSI();
	BCS_WaitFor_BSIRA();
	BCS_RA_Site_Init();
}


// **********************************************************************
// **********************************************************************

function BCS_RA_Site_Init () {
//alert('BCS_RA_Site_Init');
	RA_CtrlWin.RA.Init( BCS_RA_User_Inited );
}
function BCS_RA_User_Inited () {
//alert('BCS_RA_User_Inited');
	BFWDATA.setExpanded( new Array('bfw_toc_document_root','BCS_TAB_HOME','BCS_TAB_PREMIUM','BCS_TAB_SCORECARD','BCS_TAB_MODULE_USER','BCS_TAB_MODULE_PRODUCTS','BCS_TAB_MODULE_CONTENT','BCS_TAB_MODULE_PREM_TREE','BCS_TAB_MOD_TREE_TREE','BCS_PRODUCT_RA_SITE') );
	//BFWDATA.setExpanded( new Array('bfw_toc_document_root') );

	BFWDATA.dataDiv = $('#BFWDATA_dataDiv');
	BFWDATA.debugDiv = $('#BFWDATA_debugmsg');
	BFWDATA.loadedData_go = MySite_BFWDATA_ready;
	BFWDATA.loadData( BCS_cacheFileURL +'_json.html' );
}

// **********************************************************************
// **********************************************************************

function MySite_BFWDATA_ready () {
//alert('MySite_BFWDATA_ready');
// ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 
	if (RA_CtrlWin.RA.dev_check('any')) {
		var html = ''
		html += RA_CtrlWin.RA.DisplayAll();
		$('#RA_info_divInner').html( html );
	}
// ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 
// GET ROOT
	for (var i=0; i<BFWDATA.rootItem.data.length; i++) {
		switch (BFWDATA.rootItem.data[i].i_d_n) {
		case 'welcome_text' :
			BCS_welcome_text =  BFWDATA.rootItem.data[i].i_d_v;
			break;
		case 'banner_text' :
			BCS_banner_text =  BFWDATA.rootItem.data[i].i_d_v;
			break;
		case 'tpl_style' :
			BCS_tpl_style =  BFWDATA.rootItem.data[i].i_d_v;
			break;
		case 'tpl_version' :
//			BCS_tpl_version =  BFWDATA.rootItem.data[i].i_d_v +'/';
			break;
		case 'catalog_ISBN' :
			BCS_site_catalogISBN =  BFWDATA.rootItem.data[i].i_d_v;
			break;
		case 'website_ISBN' :
			BCS_site_websiteISBN =  BFWDATA.rootItem.data[i].i_d_v;
			break;
		case 'company' :
			BCS_site_co =  BFWDATA.rootItem.data[i].i_d_v;
			break;
		case 'copyright' :
			BCS_site_copyright =  BFWDATA.rootItem.data[i].i_d_v;
			break;
		case 'breaking_news' :
			BCS_site_news =  BFWDATA.rootItem.data[i].i_d_v;
			break;
		default :
		}
//alert(BCS_tpl_version);
	}
//_0609qa
	if (window.location.href.indexOf('mckayworld8e_0609qa')>-1) BCS_tpl_style = '';
	if (window.location.href.indexOf('henrettaconcise4e_0609qa')>-1) BCS_tpl_style = '';

	$('#BFWDATA_debugmsg').hide();
	$('#BFWDATA_debugmsg_toggle').hide();
	$('#BFWDATA_dataDiv_toggle').hide();
	$('#RA_debugmsg_toggle').hide();
	$('#RA_debugmsg').hide();
	$('#RA_info_div_toggle').hide();

	$(BFWDATA.dataDiv).append( BFWDATA.rootItem.items.length );

	MySite_BFWDATA_drawItem( 'root', BFWDATA.rootItem, 1 );
	MySite_GoTab( 'root', BFWDATA.rootItem );
	$('#dic_root').hide();

	MySite_ToggleItem('root_'+ BFWDATA.rootItem.ID, 1);

	BFWDATA.dumpDebug();
	$('#BFWDATA_debugmsg_toggle').click( function() {
		$('#BFWDATA_debugmsg').toggle();
	});
	$('#BFWDATA_dataDiv_toggle').click( function() {
		$('#BFWDATA_dataDiv').toggle();
	});
	$('#RA_debugmsg_toggle').click( function() {
		$('#RA_debugmsg').toggle();
	});
	$('#RA_info_div_toggle').click( function() {
		$('#RA_info_div').toggle();
	});

	if (RA_CtrlWin.RA.dev_check('any')) {
		$('#dic_root').show();
		$('#BFWDATA_debugmsg').hide();
		$('#BFWDATA_debugmsg_toggle').show();
		$('#BFWDATA_debugmsg').show();
		$('#BFWDATA_dataDiv_toggle').show();
		$('#RA_debugmsg_toggle').show();
		$('#RA_debugmsg').hide();
		$('#RA_info_div_toggle').show();
		$('#RA_info_div').show();
	}

	RA_CtrlWin.RA.WaitFor_clear();
}

// **********************************************************************
// Function to run if RA initialization errors out

function BCS_RAReady_Error (severity,htmlMsg) {
//	BCS_LogError(10,'site timed out!\nBSI ready:'+BCS_BSI_Ready+'\nRA ready:'+BCS_RA_Ready, 'Oops, something is wrong! The site cannot load at this time. Please try again in a few minutes.');
}

// **********************************************************************
// Function to run after RA is initialized
// Draw the page HTML, or redraw parts of it
// Or redirect/reload for server-side scripts needed after RA

function BCS_RAReady_Go () {
	BCS_RA_Ready = true;
	setTimeout('BCSBSI_InitSite_PostRA();',5);
}


// **********************************************************************
// **********************************************************************

function BCSBSI_InitSite_PostRA () {
//alert('BCSBSI_InitSite_PostRA');
// ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 
// CREATE ARRAY FOR SITE TABS
	BCSBSI_site_tabs = BFWDATA.findItemsByType('BCS TAB');
	var IRX = BFWDATA.findItemsByType('BCS TABX');
	if (IRX.length>0) BCSBSI_site_tabs[BCSBSI_site_tabs.length] = IRX[0];
	BCSBSI_home_tab = BFWDATA.findItemsByType('BCS TAB','HOME')[0];
//alert( BCSBSI_site_tabs.length );
//alert(3);
// ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 
	BCSBSI_site_products = BFWDATA.findItemsByType('BCS PRODUCT');
	for (var iprod in RA_CtrlWin.RA.Products) {if (RA_CtrlWin.RA.Products.hasOwnProperty(iprod)) {
		RA_CtrlWin.RA.Products[iprod].DisplayAll = BCS_Product_GetHTML;
/*
		for (var i=0; i<BCSBSI_site_products.length; i++) {
			switch (RA_CtrlWin.RA.Products[iprod].Type) {
			case 'RA SITE' :
				if ( BCSBSI_site_products[i].link_url == RA_CtrlWin.RA.Products[iprod].ID ) {
					for (var j=0; j<BCSBSI_site_products[i].data.length; j++) {
						switch (BCSBSI_site_products[i].data[j].i_d_n) {
						case 'pack_tag' :
RA_CtrlWin.RA.Products[iprod].Tag = BCSBSI_site_products[i].data[j].i_d_v;
							break;
						case 'pack_more' :
RA_CtrlWin.RA.Products[iprod].LearnMoreLink = BCSBSI_site_products[i].data[j].i_d_v;
							break;
						default :
						}
					}
				}
				break;
			case 'RA CONTENT' :
				if ( BCSBSI_site_products[i].link_url == RA_CtrlWin.RA.Products[iprod].ID ) {
					for (var j=0; j<BCSBSI_site_products[i].data.length; j++) {
						switch (BCSBSI_site_products[i].data[j].i_d_n) {
						case 'pack_tag' :
RA_CtrlWin.RA.Products[iprod].Tag = BCSBSI_site_products[i].data[j].i_d_v;
							break;
						case 'pack_more' :
RA_CtrlWin.RA.Products[iprod].LearnMoreLink = BCSBSI_site_products[i].data[j].i_d_v;
							break;
						default :
						}
					}
				}
				break;
			default :
			}
		}
*/
	}}

// ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 
// SET UP CURRENT LOCATION (BOOKMARKED)
// CREATE TREE NODES FOR COOKIE CRUMB 
// (AND SIBLINGS?)
var msg = '';
	var tmpHashAr = window.location.hash.substring(1).split('__');
msg += 'l='+ tmpHashAr.length;
//for (var i=0; i<tmpHashAr.length; i++) {
//alert(tmpHashAr[i]);
//}
	BCS_go_tab = BCSBSI_home_tab;
	BCS_current_tab = BCSBSI_home_tab;
	if (tmpHashAr.length < 3) {
		tmpHashAr = new Array();
		tmpHashAr[tmpHashAr.length] = '';
		tmpHashAr[tmpHashAr.length] = '';
		tmpHashAr[tmpHashAr.length] = '';
	}
	if (tmpHashAr[0] != '') {
		var tmpHashAr0 = tmpHashAr[0].replace('t_','');
msg += ' --- tab?: '+ tmpHashAr0 +' , ';
		for (var i=0; i<BCSBSI_site_tabs.length; i++) {
msg += BCSBSI_site_tabs[i].ID +' = ';
msg += tmpHashAr0 == BCSBSI_site_tabs[i].ID;
			if ( tmpHashAr0 == BCSBSI_site_tabs[i].ID ) {
				BCS_go_tab = BCSBSI_site_tabs[i];
			}
		}
	}

	if (tmpHashAr[1]) { if (tmpHashAr[1] != '') {
//alert(1);
msg += ' --- content?: '+ tmpHashAr[1] +' , ';
		var retItems_ar = new Array();
		var retItems_gotEm = new Object();
		BCS_CtrlWin.BCS_go_content = BFWDATA.loadItemBottomUp(tmpHashAr[1],true);
		BFWDATA.dumpDebug();
//alert(2);
	}}
	if (tmpHashAr[2]) { if (tmpHashAr[2] == 'i') {
msg += ' --- i?: '+ tmpHashAr[2] +' , ';
		inBCS_UserViewMode = 'i';
	}}
msg += ' --- ct='+ BCS_CtrlWin.BCS_go_tab +' --- cc='+ BCS_CtrlWin.BCS_go_content;
if (BCS_CtrlWin.BCS_go_tab) msg += ' --- ct.ID='+ BCS_CtrlWin.BCS_go_tab.ID;
if (BCS_CtrlWin.BCS_go_content) msg += ' --- cc.ID='+ BCS_CtrlWin.BCS_go_content.ID;
//if (RA_CtrlWin.RA.dev_check()) prompt('msg',msg);
/*
alert( msg );
return;
*/
if (BCS_CtrlWin.BCS_go_content) {
}


// ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 
// INITIAL MESSAGE

	BCS_showMsg = (getCookie('BCS_InitialMsg_OptOut') == true) ? false : inBCS_UserViewMode!='i' && ( BCS_go_tab.type=='BCS TAB' && BCS_go_tab.subtype=='HOME' && BCS_go_content == null );
	BCS_showMsg = (BFW_QStr['msg']=='true') ? true : BCS_showMsg;
	var initialmsg = '';
	for (var i=0; i<BFWDATA.rootItem.data.length; i++) {
		if (BFWDATA.rootItem.data[i].i_d_n=='initial_msg') {
			initialmsg = BFWDATA.rootItem.data[i].i_d_v;
		}
	}
	BCS_showMsg = ( initialmsg == '' ) ? false : BCS_showMsg;
	BCS_msg = BCS_showMsg_GetHTML();

	BCS_showMsg = false;
	if (BCS_showMsg) {
		$('#BCS_page_msg').html(BCS_msg);
		$('#BCS_page_grayed').show();
		$('#BCS_loading_msg').hide();
		$('#BCS_page_msg').show();
		$('#initial_msg_placed').append( initialmsg );
	}




// ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 

	setTimeout('BCS_Draw_PageMod_HomeContent();',5);
	setTimeout('BCS_Draw_PageMod_InteriorJumpTo();',50);
//alert(9)
	if ( RA_CtrlWin.RA.CurrentUser != null) {
		$('.BCS_RA_UserName').html(''+RA_CtrlWin.RA.CurrentUser.FName+' '+RA_CtrlWin.RA.CurrentUser.LName+'');
		BCS_ReDraw_Tabs();
	}
//alert(10)
	BCS_BSI_Ready = true;

// ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 

	BCS_Draw_ToolBar();
//	$('#BCS_topBarDiv').show();
//	BCS_News_start();

//alert('BCSBSI_InitSite_PostRA 2');

}


// **********************************************************************
// **********************************************************************

function BCS_WaitFor_BSI () {
//alert('BCS_WaitFor_BSI');
	BCS_BSI_Ready = false;
	BCS_WaitFor_BSI_interval = window.setInterval('BCS_BSI_Ready_check()', 200);
}

function BCS_BSI_Ready_check () {
//alert('BCS_BSI_Ready_check: '+ BCS_BSI_Ready);
	if (BCS_BSI_Ready) {
		BCS_WaitFor_BSI_clear();
	}
}

function BCS_WaitFor_BSI_clear () {
//alert('BCS_WaitFor_BSI_clear');
	BCS_BSI_Ready = true;
	BCS_WaitFor_BSI_interval = window.clearInterval(BCS_WaitFor_BSI_interval);
	BCS_BSI_Ready_Go();
}

function BCS_BSI_Ready_Go () {
//alert('BCS_BSI_Ready_Go');
	BCS_BSIRA_Ready = true;
}


// **********************************************************************
// **********************************************************************

function BCS_WaitFor_BSIRA () {
//alert('BCS_WaitFor_BSIRA');
	BCS_BSIRA_Ready = false;
	BCS_WaitFor_BSIRA_interval = window.setInterval('BCS_BSIRA_Ready_check()', 200);
}

function BCS_BSIRA_Ready_check () {
//alert('BCS_BSIRA_Ready_check: '+ BCS_BSIRA_Ready);
	if (BCS_BSI_Ready && BCS_BSIRA_Ready) {
		BCS_WaitFor_BSIRA_clear();
	}
}

function BCS_WaitFor_BSIRA_clear () {
//alert('BCS_WaitFor_BSIRA_clear');
	BCS_BSIRA_Ready = true;
	BCS_WaitFor_BSIRA_interval = window.clearInterval(BCS_WaitFor_BSIRA_interval);
	BCS_BSIRA_Ready_Go();
}

function BCS_BSIRA_Ready_Go () {
//alert('BCS_BSIRA_Ready_Go');
}

// **********************************************************************
// **********************************************************************

function BCS_WaitFor_Site () {
//alert('BCS_WaitFor_Site');
	BCS_WaitFor_Site_interval = window.setInterval('BCS_WaitFor_Site_state_check()', 300);
	setTimeout('BCS_Site_Ready_TimedOut=true',120000);
}

function BCS_WaitFor_Site_state_check () {
//alert('BCS_WaitFor_Site_state_check: '+ BCS_WaitFor_Site_state);
	if ((BCS_BSI_Ready && BCS_RA_Ready && BCS_BSIRA_Ready) || BCS_Site_Ready_TimedOut) {
		BCS_WaitFor_Site_clear();
	}
}


function BCS_WaitFor_Site_clear () {
//alert('BCS_WaitFor_Site_clear');
	BCS_WaitFor_Site_interval = window.clearInterval(BCS_WaitFor_Site_interval);
//	setTimeout('BCS_Site_Ready_Go();',1500);
	BCS_Site_Ready_Go();
}

function BCS_Site_Ready_Go () {
//alert('BCS_Site_Ready_Go');
//	BCS_Site_Ready_TimedOut = true;
	if (BCS_Site_Ready_TimedOut) {
		if (BCS_BSI_Ready) {
			BCS_LogError(5,'site timed out!\nBSI ready:'+BCS_BSI_Ready+'\nRA ready:'+BCS_RA_Ready, 'Oops, something is wrong! You can continue, but be aware that the site may not function correctly. Or, you can wait a few minutes and reload the site.');
		} else {
			BCS_LogError(10,'site timed out!\nBSI ready:'+BCS_BSI_Ready+'\nRA ready:'+BCS_RA_Ready, 'Oops, something is wrong! The site cannot load at this time. Please try again in a few minutes.');
		}
	} else {
//alert(inBCS_UserViewMode);
		if (!BCS_showMsg) {
			$('#BCS_page_grayed').hide();
			$('#BCS_loading_msg').hide();
			$('#BCS_page_msg').hide();
		}
	}
	if (BCS_BSIRA_Ready) {

// ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** ** 

		for (var i in BCS_Callouts) {if (BCS_Callouts.hasOwnProperty(i)) {
			var _if = $('#BCS_callout_if'+i)[0];
			_if.src = BCS_Callouts[i];
			$('#BCS_callout_div'+i).show();
		}}

//		BCS_setPageContentHelp();
		if ( RA_CtrlWin.RA.CurrentUser != null ) {
			$('.BCS_RA_UserName').html(''+RA_CtrlWin.RA.CurrentUser.FName+' '+RA_CtrlWin.RA.CurrentUser.LName+'');
		}
		setTimeout('BCS_Set_ToolBar_RA();', 5);
		switch (BCS_tpl_style) {
		case 'B' :
		break;
		default :
			setTimeout('BCS_Draw_PageUser();', 5);
			setTimeout('BCS_Draw_PageMod_HomeUser();', 5);
			setTimeout('BCS_Draw_PageMod_HomeProducts();', 5);
		}
		if (BCS_UserViewMode != inBCS_UserViewMode && inBCS_UserViewMode == 'i') {
			BCS_UserViewModeToggle();
		} else if ( BCS_CtrlWin.BCS_go_content ) {
//if (RA_CtrlWin.RA.dev_check()) prompt('BCS_go_tab.ID 1',BCS_CtrlWin.BCS_go_tab.ID);
			BCS_CtrlWin.BCS_changeLocation( BCS_CtrlWin.BCS_go_tab.ID, BCS_CtrlWin.BCS_go_content.ID, BCS_CtrlWin.BCS_UserViewMode );
		} else if ( BCS_CtrlWin.BCS_go_tab ) {
//if (RA_CtrlWin.RA.dev_check()) prompt('BCS_go_tab.ID 2',BCS_CtrlWin.BCS_go_tab.ID);
			BCS_CtrlWin.BCS_changeLocation( BCS_CtrlWin.BCS_go_tab.ID, '', BCS_CtrlWin.BCS_UserViewMode );
		} else {
		}

		dhtmlHistory.addListener(BCS_historyChange);
	}
	BCS_showMsg = false;
	if (BCS_showMsg) {
	} else {
		$('#BCS_page_grayed').hide();
		$('#BCS_loading_msg').hide();
		$('#BCS_page_msg').hide();
	}

//	setTimeout('BCS_main_Resize()',50);
//alert('BCS_Site_Ready_Go DONE');
}

// **********************************************************************

function BCS_main_uninit() {
//alert('uninit');
	window.scrollTo(0,0);
	try {
		RA_CtrlWin.RA.UnInit();
		$('#BCS_page_grayed').show();
		$('#BCS_loading_msg').show();
		$('#BCS_page_msg').hide();
	}catch(e){}
}




// **********************************************************************
// **********************************************************************

function BCS_historyRecord () {
if (BCS_CtrlWin.dhtmlHistory.isSafari) {
	BCS_historyRecordedSafari = true;
}
if (BCS_CtrlWin.dhtmlHistory.isSafari && RA_CtrlWin.RA.dev_check()) alert('record:'+ BCS_historyRecordedSafari);
	var tmpAr = new Array();
	var str = '';
	if ( BCS_current_content ) {
		tmpAr[tmpAr.length] = BCS_current_tab.ID;
		tmpAr[tmpAr.length] = BCS_current_content.ID;
		tmpAr[tmpAr.length] = BCS_UserViewMode;
		str = ''+ BCS_current_tab.ID +'__'+ BCS_current_content.ID +'__'+BCS_UserViewMode,tmpAr;
		BCS_CtrlWin.dhtmlHistory.add(str);
	} else {
		tmpAr[tmpAr.length] = BCS_current_tab.ID;
		tmpAr[tmpAr.length] = '';
		tmpAr[tmpAr.length] = BCS_UserViewMode;
		str = 't_'+ BCS_current_tab.ID +'____'+ BCS_UserViewMode,tmpAr;
		BCS_CtrlWin.dhtmlHistory.add(str);
	}
//alert('record: '+ str);
//	try {$('#GA')[0].src = 'ga.html?'+ str;}catch(e){}
}

// **********************************************************************
var BCS_NavTree_Load_historyChange = false;
var BCS_historyRecordedSafari = false;
var BCS_historyChangedForward = false;
function BCS_historyChange(newLocation, historyData) {
var msg =  'BCS_historyChange( '+ newLocation +', '+ historyData +' ) -- BCS_historyChangedForward='+ BCS_historyChangedForward;
msg += '<br/>';
	try {
if (BCS_CtrlWin.dhtmlHistory.isSafari && RA_CtrlWin.RA.dev_check()) alert('change after record?:'+ BCS_historyRecordedSafari);
if (BCS_CtrlWin.dhtmlHistory.isSafari && BCS_historyRecordedSafari) {
	BCS_historyRecordedSafari = false;
msg += '<span style="color:#fff">Safari ... '+ BCS_historyRecordedSafari +' ... exiting</span>';
msg += '<br/>';
BFWDATA.logDebug(msg);
BFWDATA.dumpDebug();
	return;
}
if (false && BCS_CtrlWin.dhtmlHistory.isSafari) {
msg += '<span style="color:#fff">Safari ... exiting</span>';
msg += '<br/>';
BFWDATA.logDebug(msg);
BFWDATA.dumpDebug();
return;
}

//		BFWDATA.resetDebug();
		if (RA_CtrlWin.RA.RAif.inited) {
msg += 'RAif.inited'
msg += '<br/>';
			if (!BCS_historyChangedForward) {
				BCS_historyChangedForward = true;
msg += 'go forward'
msg += '<br/>';
				window.history.forward();
			} else {
				BCS_historyChangedForward = false;
			}
			return;
		}
		if (typeof historyData == "object" && historyData != null) alert(1);
		var historyMsg = (typeof historyData == "object" && historyData != null
			? historyStorage.toJSON(historyData)
			: historyData
		);
msg += "<b>A history change has occured:</b> | newLocation=" + newLocation + " | historyData=" + historyMsg + " |";
msg += '<br/>';
		var tmpArr = new Array()
		if (newLocation) tmpArr = newLocation.split('__');
		if ( tmpArr.length == 0 || (tmpArr.length == 1 && tmpArr[0] == '') ) {
msg += 'historyData tmpArr.length == 0'
msg += '<br/>';
			var tmpID = ''
			for (var i=0; i<BCSBSI_site_tabs.length; i++) {
				if ( 'HOME' == BCSBSI_site_tabs[i].subtype ) {
					tmpID = BCSBSI_site_tabs[i].ID;
				}
			}
			if (BCS_UserViewMode!='') BCS_UserViewModeToggle();
			BCS_switchTabs( tmpID );
			BCS_historyRecord();
		} else if ( tmpArr.length>=3 && tmpArr[2] != BCS_UserViewMode ) {
msg += 'BCS_UserViewMode :: '+ tmpArr[2] +' != '+ BCS_UserViewMode
msg += '<br/>';
			BCS_UserViewModeToggle();
		} else if ( tmpArr[0] == '' ) {
msg += 'case 1'
msg += '<br/>';
			var tmpID = ''
			for (var i=0; i<BCSBSI_site_tabs.length; i++) {
				if ( 'HOME' == BCSBSI_site_tabs[i].subtype ) {
					tmpID = BCSBSI_site_tabs[i].ID;
				}
			}
			BCS_switchTabs( tmpID );
			BCS_historyRecord();
		} else {
msg += 'case 2'
msg += '<br/>';
			tmpArr[0] = tmpArr[0].replace('t_','');
			var tmpID = ''
			for (var i=0; i<BCSBSI_site_tabs.length; i++) {
				if ( tmpArr[0] == BCSBSI_site_tabs[i].ID ) {
					tmpID = tmpArr[0];
				}
			}
			BCS_switchTabs( tmpID );
			if ( tmpArr[1] != '' ) {
				var tmpItem = BFWDATA.BSIItems[tmpArr[1]];
				if (tmpItem) {
msg += tmpItem.type;
msg += '<br/>';
					if ( tmpItem.type == 'bfw_toc_document' || tmpItem.type == 'BCS TAB MODULE' || tmpItem.type == 'BCS TAB MOD TREE' ) {
						BCS_NavTree_Load_historyChange = true;
						BCS_NavTree_LoadNode2( tmpArr[1], tmpArr[1] );
					} else {
						BCS_NavTree_Load_historyChange = true;
						BCS_NavTree_LoadItem2( tmpArr[1] );
					}
				} else {
					BCS_historyRecord();
				}
			} else {
				BCS_historyRecord();
			}
		}
		BFWDATA.logDebug(msg);
		BFWDATA.dumpDebug();
	} catch(e) {
msg += ' ERROR ::: line '+ e.lineNumber +' ::: '+ e.message;
msg += '<br/>';
		BFWDATA.logDebug(msg);
		BFWDATA.dumpDebug();
	}
};


// **********************************************************************
// **********************************************************************


function BCS_setPageContentHelp () {
//alert('BCS_setPageContentHelp');
	var BCS_helpTD = $('#BCS_helpTD')[0];
//alert(BCS_helpTD.style.width)
	if (BCS_current_tab.type=='BCS TAB' && BCS_current_tab.subtype=='SCORECARD') {

		BCS_helpTD.innerHTML = ButtonHTML("Need Help?", "javascript:BCS_CtrlWin.BCS_Help(\'scorecarduse\')", "", "primary", false, "medium", "style='width: 90px; float:none; text-align:center'");

	} else if (BCS_current_tab.type=='BCS TAB' && BCS_current_tab.subtype=='PREMIUM') {

		BCS_helpTD.innerHTML = ButtonHTML("Need Help?", "javascript:BCS_CtrlWin.BCS_Help(\'premium\')", "", "primary", false, "medium", "style='width: 90px; float:none; text-align:center'");

	} else if (BCS_current_tab.type=='BCS TAB' && BCS_current_tab.subtype=='HOME' && BCS_current_content != null) {

		BCS_helpTD.innerHTML = ButtonHTML("Need Help?", "javascript:BCS_CtrlWin.BCS_Help(\'contents\')", "", "primary", false, "medium", "style='width: 90px; float:none; text-align:center'");

	} else {

		BCS_helpTD.innerHTML = ButtonHTML("Need Help?", "javascript:BCS_CtrlWin.BCS_Help(\'contents\')", "", "primary", false, "medium", "style='width: 90px; float:none; text-align:center'");

	}
}



// **********************************************************************
// **********************************************************************

function BCS_showMsg_GetHTML() {
	var box = '';
	box = ''
		+ '<div style="text-align: center; background-color:#ffffff; width:70%;padding:5px 20px 30px 30px;">'
		+ '    <table border="0" cellspacing="0" cellpadding="0" width="100%"><tr>'
		+ '    <tr><td></td>'
		+ '    <td width="10" align="right" valign="top" style="padding:5px 5px 0px 0px; cursor:default"><nobr><a href="JavaScript:void(0);" onclick="BCS_InitialMsg_Close();" style="color:#000;font-size:8pt;font-family:Arial;text-decoration:none;">Close&nbsp;<img height="16" src="'+ BCS_tpl_version +'images/close_1.gif" width="16" align="top" border="0"/></a></nobr></td>'
		+ '    </tr>'
		+ '    <tr><td>'
		+ '    <div id="initial_msg_placed">'


	box += ''
		+ '    </div>'
		+ '    </td>'
		+ '    <td width="10" valign="top">&nbsp;</td>'
		+ '    </tr></table>'
		+ '    </div>'
	return box;
}

// **********************************************************************

function BCS_InitialMsg_Close () {
	BCS_showMsg = false;
	var x = $('#BCS_InitialMsg_OptOut')[0];
	try {
	if (x.checked) {
		setCookie('BCS_InitialMsg_OptOut',1,1,0);
	}
	} catch (e) {}
	$('#BCS_page_msg').hide();
	$('#BCS_loading_msg').hide();
	$('#BCS_page_grayed').hide();
}



// **********************************************************************
// **********************************************************************


function BCS_RAif_init_GetIt (pid) {

	var cartProdCt = 0;
	var cartItemID;
	for (var iitem in RA_CtrlWin.RA.Cart.Items) {if (RA_CtrlWin.RA.Cart.Items.hasOwnProperty(iitem)) {
		if (RA_CtrlWin.RA.Cart.Items[iitem].Product.ID == pid) {
			cartProdCt ++;
			cartItemID = RA_CtrlWin.RA.Cart.Items[iitem].ItemID;
		}
	}}
	if (cartProdCt == 1) {
		RA_CtrlWin.RA.Cart.AddItem( pid, cartItemID);
	}
	setTimeout('BCS_RAif_init_go(\'codeorcart\')',50);
}
function BCS_RAif_init (state,mode) {
	setTimeout('BCS_RAif_init_go(\''+state+'\',\''+mode+'\')',50);
}
function BCS_RAif_init_go (state,mode) {
	if (!state) state = '';
	if (!mode) mode = '';
	$('#BCS_page_grayed').show();
	RA_CtrlWin.RA.RAif.close_site = BCS_RAif_Close;
	RA_CtrlWin.RA.RAif.init(state,mode);
	BCS_CtrlWin.scrollTo(0,0);
}

function BCS_RAif_Close () {
//alert( RA_CtrlWin.RA.RAif.updated +' --- '+ RA_CtrlWin.RA.CurrentUser.ClassPrompt );
	if (RA_CtrlWin.RA.RAif.updated) {
		RA_CtrlWin.RA.RAif.Clear();
		BCS_Set_ToolBar_RA();
		BCS_ReDraw_Tabs();
		BCS_Draw_PageMod_HomeUser();
		BCS_Draw_PageMod_HomeProducts();
		BCS_Draw_PageMod_PremUser();
		if (BCS_current_tab.type=='BCS TAB' && BCS_current_tab.subtype=='SCORECARD') {
			BCS_Draw_PageMod_ScUser();
		}
		BCS_Draw_PageMod_InstUser();
		if ( RA_CtrlWin.RA.CurrentUser != null) {
			$('.BCS_RA_UserName').html(''+RA_CtrlWin.RA.CurrentUser.FName+' '+RA_CtrlWin.RA.CurrentUser.LName+'');
		}

		BCS_Draw_PageUser();

		if ( BCS_current_content != null ) {
			BCS_NavTree_LoadItem2( BCS_current_content.ID );
		} else {
		}

		$('#BCS_page_grayed').hide();
//		BCS_main_Resize();
	} else {
		$('#BCS_page_grayed').hide();
//		BCS_main_Resize();
	}

	if (RA_CtrlWin.RA.dev_check()) {
		var html = '<p style="color:#f00;">updated</p>'
		html += RA_CtrlWin.RA.DisplayAll();
		$('#RA_info_divInner').html( html );
	}

}


// **********************************************************************
// **********************************************************************

function NavTree_Site_Resize() {
	BCS_main_Resize();
}

function BCS_Callout_Resize (ifid){
	try {
		setTimeout('BCS_Callout_Resize_2('+ifid+');',ifid*750);
	} catch(e) {
alert('BCS_Callout_Resize :: ERROR '+ e.lineNumber +' - '+ e.message);
	}
}

function BCS_Callout_Resize_2 (ifid){
	try {
		var _if = $('#BCS_callout_if'+ifid)[0];
		var _win = _if.contentWindow;
		if (_win!=null) {
//alert('r 0 4');
			var h = _win.document.body.offsetHeight;
			h += 0;
//alert(h);
			_if.style.height = h + 'px';
//alert('r 0 5');
		}
//alert('r 1');
	} catch(e) {
alert('BCS_Callout_Resize_2 :: ERROR '+ e.lineNumber +' - '+ e.message);
	}
}

function BCS_IR_Resize(thisH) {
	var IR_if = $('#BCS_IR_if')[0];
	if (thisH) {
		h = thisH;
		h += 20;
	} else {
		var IR_win = IR_if.contentWindow;
		var h = IR_win.document.body.offsetHeight;
		h += 20;
	}
	h = h +'px';
	IR_if.style.height = h;
}

var xct = 0;
function BCS_main_Resize() {
	var h = document.body.offsetHeight;
	var hy = $('#BCS_loading_msg')[0].offsetHeight;
	var hz = $('#BCS_page_msg')[0].offsetHeight;
	var hRA = $('#RAif_div')[0].offsetHeight;
//alert(h +' - '+ hy +' - '+ hz +' - '+ hRA);
	if (hy>h) h = hy;
	if (hz>h) h = hz;
	if (hRA>h) h = hRA;
//if (xct<5) alert('h='+h+', h2='+h2+', h3='+h3);
xct+=1;
	h += 180;
//alert('resize : '+ h);
try {
	if (h>1000) {
		document.getElementById('BCS_page_grayed').style.height = h + 'px';
	} else {
		document.getElementById('BCS_page_grayed').style.height = '1000px';
	}
}catch(e){
//alert(e.message);
}
//alert('resize : '+ h);
}

function RAif_Site_Resize () {
	BCS_main_Resize();
	$('#BCS_page').hide();
	$('#BCS_page_grayed').hide();
	$('#RAif_div').hide();
	$('#BCS_page_grayed').show();
	$('#RAif_div').show();
	$('#BCS_page').show();
}






// **********************************************************************
// **********************************************************************

function BCS_ShowPopInWindow_SiteItems () {
	var title, html;

	title = "<b>BCS Site Items</b>";

	BCSBSI_tree.root.expanded = true;
	html = ButtonHTML("Close", "javascript:ClosePopInWindow()", "", "secondary", true, "medium", "style=''")
		+ '<br/><br/>'+ BCSBSI_tree.root.GetHTML();
		;

	ShowPopInWindow(title, html, null, 800, 46, 50);
}


// **********************************************************************
// **********************************************************************


function BCS_GetCompanyNameHTML (co) {
	var html = '';
	switch (co) {
		case 'WOR' :
			html += 'Worth Publishers';
			break;
		case 'BSM' :
			html += 'Bedford / St. Martin&rsquo;s';
			break;
		case 'WHF' :
			html += 'W. H. Freeman';
			break;
		default :
			html += 'Bedford, Freeman and Worth Publishers';
			break;
	}
	return html;
}


// **********************************************************************
// **********************************************************************


function BCS_changeLocation ( tab_id, content_id, userViewMode ) {
var msg =  'BCS_changeLocation( '+ tab_id +', '+ content_id +', '+ userViewMode +' (?= '+ BCS_UserViewMode +') )';
msg += '<br/>';
	try {
//		BFWDATA.resetDebug();
		if (userViewMode != BCS_UserViewMode) {
msg += 1;
			if (tab_id!='') {
				BCS_switchTabs(tab_id);
				BCS_historyRecord();
			} else {
				var xtid;
				for (var i=0; i<BCSBSI_site_tabs.length; i++) {
					if (BCSBSI_site_tabs[i].subtype=='INSTRUCTOR') {
						xtid = BCSBSI_site_tabs[i].ID;
					}
				}
				if (xtid) {
					BCS_switchTabs(xtid);
					BCS_historyRecord();
				}
			}
		} else if (content_id!='' && BFWDATA.BSIItems[content_id]) {
			var item = BFWDATA.BSIItems[content_id];
			if ( item.type == 'bfw_toc_document' || item.type == 'BCS TAB MODULE' || item.type == 'BCS TAB MOD TREE' ) {
msg += 2;
				if (BCS_current_tab) {
				if (BCS_current_tab.ID != tab_id) {
				BCS_switchTabs(tab_id);
				}
				}
				var modTreeID = item.ID;
				var tmpL = 1;
				BCS_NavTree_LoadNode2( modTreeID, item.ID, tmpL);
			} else {
msg += 3;
				if (BCS_current_tab) {
				if (BCS_current_tab.ID != tab_id) {
				BCS_switchTabs(tab_id);
				}
				}
				BCS_NavTree_LoadItem2( content_id );
			}
		} else {
msg += 4;
			BCS_switchTabs(tab_id);
			BCS_historyRecord();
		}
		BFWDATA.logDebug(msg);
		BFWDATA.dumpDebug();
	} catch(e) {
msg += ' ERROR ::: line '+ e.lineNumber +' ::: '+ e.message;
msg += '<br/>';
		BFWDATA.logDebug(msg);
		BFWDATA.dumpDebug();
	}
}


// **********************************************************************
// **********************************************************************


function BCS_switchTabs ( tab_id ) {
var msg =  'BCS_switchTabs( '+ tab_id +' )';
msg += '<br/>';
	try {
		var newTab_item;
		var newTab_item_id;
		for (var i=0; i<BCSBSI_site_tabs.length; i++) {
			if ( tab_id == BCSBSI_site_tabs[i].ID ) {
				newTab_item = BCSBSI_site_tabs[i];
				newTab_item_id = tab_id;
			}
		}
		var newTabTD = $('#BCS_tab_'+ newTab_item_id +'')[0];

		var oldTab_item = BCS_current_tab;
		var oldTabTD = $('#BCS_tab_'+ BCS_current_tab.ID +'')[0];

		BCS_current_tab = newTab_item;

		$('#BCS_Mod_Interior_Bridge_Right').html( BCS_GetHTML_Loading() );
		BCS_current_content = null;

		var tabStat = 'tabOff';
		oldTabTD.innerHTML = BCS_getTabHTML( oldTab_item, tabStat );

		tabStat = 'tabOn';
		newTabTD.innerHTML = BCS_getTabHTML( newTab_item, tabStat );

		BCS_Draw_PageContent();
		BCS_setPageContentHelp();

		setTimeout('BCS_main_Resize()',50);

		BFWDATA.logDebug(msg);
		BFWDATA.dumpDebug();
	} catch(e) {
msg += ' ERROR ::: line '+ e.lineNumber +' ::: '+ e.message;
msg += '<br/>';
		BFWDATA.logDebug(msg);
		BFWDATA.dumpDebug();
	}
}


// **********************************************************************
// **********************************************************************

var BCS_News = null;
var BCS_News_CONTENT = null;

var BCS_News_RIGHTTOLEFT = false;
var BCS_News_SPEED = 1;
var BCS_News_PAUSED = false;
var BCS_News_interval = null;
var BCS_News_ict = 0;

function BCS_News_start() {
	BCS_News_ict++;
	if (BCS_News_ict>10) BCS_News_ict = 0;

	BCS_News_interval = clearInterval(BCS_News_interval);
	var BCS_News_Supported = false;
	BCS_News = $('#BCS_News')[0];
	BCS_News_CONTENT = $('#BCS_News').html();

	BCS_News.style.width = $('#BCS_page')[0].offsetWidth - $('#BCS_toolbarTable')[0].offsetWidth +'px';
	BCS_News_WIDTH = $('#BCS_News')[0].offsetWidth;

	// Firefox
	if (navigator.userAgent.indexOf('Firefox')!=-1 || navigator.userAgent.indexOf('Safari')!=-1) {
		BCS_News_Supported = true;
	}
	// IE
	if (navigator.userAgent.indexOf('MSIE')!=-1 && navigator.userAgent.indexOf('Opera')==-1) {
		BCS_News_Supported = true;
	}
	if(!BCS_News_Supported) {
		BCS_News.outerHTML = '';
	} else {
		BCS_News.scrollLeft = BCS_News_RIGHTTOLEFT ? BCS_News.scrollWidth - BCS_News.offsetWidth : 0;

/*
		$('#BCS_News')[0].innerHTML = '<div id="BCS_News_ict_'+BCS_News_ict+'" style="display:inline;text-align:center;white-space:nowrap;"><nobr><img src="images/nothing.gif" style="width:'+Math.round(BCS_News_WIDTH/1)+'px;height:1px;">'+ BCS_News_CONTENT +'<img src="images/nothing.gif" style="width:'+Math.round(BCS_News_WIDTH/1)+'px;height:1px;"></nobr></div>';
//prompt('',$('#BCS_News')[0].innerHTML);
		BCS_News.style.display='block';
*/
		$('#BCS_News').html('<div id="BCS_News_ict_'+BCS_News_ict+'" style="display:inline;text-align:center;white-space:nowrap;"><nobr><img src="images/nothing.gif" style="width:'+Math.round(BCS_News_WIDTH/1)+'px;height:1px;">'+ BCS_News_CONTENT +'<img src="images/nothing.gif" style="width:'+Math.round(BCS_News_WIDTH/1)+'px;height:1px;"></nobr></div>');
//prompt('',$('#BCS_News')[0].innerHTML);
		$('#BCS_News').show();
//		BCS_News_interval = setInterval('BCS_News_tick();',30);
		BCS_News_tick(BCS_News_ict);
	}
}

function BCS_News_tick(ict) {
	if ($('#BCS_News_ict_'+ict)[0]) {
	if(!BCS_News_PAUSED) {
		BCS_News.scrollLeft += BCS_News_SPEED * (BCS_News_RIGHTTOLEFT ? -1 : 1);
	}
	if(BCS_News_RIGHTTOLEFT && BCS_News.scrollLeft <= 0) {
		BCS_News.scrollLeft = BCS_News.scrollWidth - BCS_News.offsetWidth;
	}
	if(!BCS_News_RIGHTTOLEFT && BCS_News.scrollLeft >= BCS_News.scrollWidth - BCS_News.offsetWidth) {
		BCS_News.scrollLeft = 0;
	}
	window.setTimeout('BCS_News_tick('+ict+')', 30);
	}
}



// **********************************************************************
// **********************************************************************


function BCS_LogError (severity,strRecord,htmlMsg) {
	if (!htmlMsg) htmlMsg = strRecord.replace('\n','<br/>');
	if (severity>5) {
		htmlMsg += '<br/><br/><a href="JavaScript:window.location.reload()">try again</a>';
htmlMsg += '<br/><br/><a href="JavaScript:BCS_LogError_Close()">continue</a>';
	} else {
		htmlMsg += '<br/><br/><a href="JavaScript:BCS_LogError_Close()">continue</a> - <a href="JavaScript:window.location.reload()">try again</a>';
	}
	htmlMsg += '<br/><br/>error code:'+ severity;
	htmlMsg += '<br/>BSI ready:'+BCS_BSI_Ready+'<br/>BSIRA ready:'+BCS_BSIRA_Ready+'<br/>RA ready:'+BCS_RA_Ready;
//	htmlMsg += '<br/>URL:'+window.location.href;
	htmlMsg = '<div style="background-color:#fff">'+ htmlMsg +'</div>';
	var logMsg = '';
//	logMsg += strRecord+'\n';
	logMsg += '\nerror code:'+ severity +'\nBSI:'+BCS_BSI_Ready+'\nRA:'+BCS_RA_Ready;
	logMsg += '\nURL:'+window.location.href.replace('http://','');
	var d = new Date();
	logMsg += '\nTime:'+ d.toString();
	logMsg += '\nNavigator:'+ navigator.appName +' --- '+ navigator.appVersion +' --- '+ navigator.userAgent +' --- '+ navigator.cookieEnabled;
	var url = 'http://'+ RA_CtrlWin.RA.RARootDomain +'/RA/LogError.asp?msg='+ encodeURIComponent(logMsg);
var BCSError = new Error("BCSError");
BCSError.name = 'BCSError';
	BFW_Errors.add(BCSError,severity);
	BFW_Errors.LogErrors();
//prompt('',url);
	$('#hide')[0].src=url;
	var yInner = $('#BCS_loading_msgInner')[0];
	yInner.style.textAlign = 'left';
	yInner.style.width = '450px';
	yInner.style.height = '200px';
	$(yInner).html( htmlMsg );
	$('#BCS_page_grayed').show();
	$('#BCS_loading_msg').show();
	$('#BCS_page_msg').hide();
}
function BCS_LogError_Close () {

	BCS_showMsg = (getCookie('BCS_InitialMsg_OptOut') == true) ? false : BCS_UserViewMode!='i' && ( BCS_current_tab.type=='BCS TAB' && BCS_current_tab.subtype=='HOME' && BCS_current_content == null );
	BCS_showMsg = (BFW_QStr['msg']=='true') ? true : BCS_showMsg;
	var initialmsg = '';
	for (var i=0; i<BFWDATA.rootItem.data.length; i++) {
		if (BFWDATA.rootItem.data[i].i_d_n=='initial_msg') {
			initialmsg = BFWDATA.rootItem.data[i].i_d_v;
		}
	}
//	BCS_showMsg = ( initialmsg == '' ) ? false : BCS_showMsg;
	BCS_msg = BCS_showMsg_GetHTML();

	var yInner = $('#BCS_loading_msgInner')[0];
	var htmlMsg = '<br/><br/><br/>loading, please wait...';
	yInner.style.textAlign = 'center';
	yInner.style.width = '300px';
	yInner.style.height = '100px';
	$('#BCS_loading_msg').html(BCS_msg);

	BCS_showMsg = false;
	if (BCS_showMsg) {
		$('#BCS_page_msg').html(BCS_msg);
		$('#BCS_page_grayed').show();
		$('#BCS_loading_msg').hide();
		$('#BCS_page_msg').show();
//alert( $(box).length );
		$('#initial_msg_placed').append( initialmsg );
	} else {
		$('#BCS_page_grayed').hide();
		$('#BCS_loading_msg').hide();
		$('#BCS_page_msg').hide();
	}
	BCS_main_Resize();
	dhtmlHistory.addListener(BCS_historyChange);
	if (BCS_UserViewMode != inBCS_UserViewMode && inBCS_UserViewMode == 'i') {
		BCS_UserViewModeToggle();
	}
}



// **********************************************************************
// **********************************************************************


function MySite_BFWDATA_drawItem ( treeID, item, level ) {
	var msg = 'MySite_BFWDATA_drawItem';
	try {
//alert(treeID+', '+item.ID+', '+level);
		msg += '('+ treeID+','+item.ID+','+level +')';
		if ($('#di_'+ treeID +'_'+ item.ID).length > 0) return;
		var theLevel = item.TOClevel;
		if (level) theLevel = level;
		var html = '';
		var m = new Number( 25 * (theLevel-1) );
		html += '<div class="di" id="di_'+ treeID +'_'+ item.ID +'" style="margin-left:'+ m +'px">';
		html += '<a id="t_'+ treeID +'_'+ item.ID +'" href="JavaScript:MySite_GoTab(\'tab_'+ item.ID +'\')">'+ item.title +'</a>';
		html += ' (<span style="font-size:10px;">';
		html += '<a id="a_'+ treeID +'_'+ item.ID +'" href="JavaScript:MySite_ToggleItem(\''+ treeID +'_'+ item.ID +'\', '+ theLevel +')">';
		if (item.expanded) {
			html += 'collapse';
		} else {
			html += 'expand';
		}
		html += '</a>';
		html += ' - <a id="d_'+ treeID +'_'+ item.ID +'" href="JavaScript:MySite_ToggleData(\''+ treeID +'_'+ item.ID +'\', '+ theLevel +')">show data</a>';
		html += '</span>)';
		html += '</div>';
		html += '<div class="did" id="did_'+ treeID +'_'+ item.ID +'">';
		html += '</div>';
		html += '<div class="dic" id="dic_'+ treeID +'_'+ item.ID +'">';
		html += '</div>';

		var div = null;
		if (theLevel==1) {
			div = $('#dic_'+ treeID );
		} else {
			div = $('#dic_'+ treeID +'_'+ BFWDATA.BSIItems[item.PID].ID );
		}

//alert( item.PID +' :: '+ $(div).length );
		$(div).append( html );

		if (item.expanded) {
			for (var i=0; i<item.items.length; i++) {
				MySite_BFWDATA_drawItem( treeID, item.items[i], theLevel+1 );
			}
		}
	} catch(e) {
		msg += ' ERROR ::: '+ e.message;
	}
	msg += '<br/><br/>';
	BFWDATA.logDebug(msg);
	BFWDATA.dumpDebug();
}

function MySite_GoTab( aID ) {
	var msg = 'MySite_GoTab';
	try {
		msg += '('+ aID +')';
		var x = aID.split('_');
		var treeID = x[0];
		var itemID = x[1];
		if (treeID=='root') {
			$('#dic_tab').hide();
			$('#dic_root').show();
		} else {
			var item = BFWDATA.BSIItems[itemID];
			$('#dic_tab').html('');
			MySite_BFWDATA_drawItem( treeID, item, 1 );
			if (!item.expanded) MySite_ToggleItem( aID, 1 );
			$('#dic_root').hide();
			$('#dic_tab').show();
		}
	} catch(e) {
		msg += ' ERROR ::: '+ e.message;
	}
	msg += '<br/><br/>';
	BFWDATA.logDebug(msg);
	BFWDATA.dumpDebug();
}

function MySite_ToggleItem( aID, level ) {
	var msg = 'MySite_ToggleItem';
	try {
//alert( aID +' - '+ level );
		msg += '('+ aID +','+ level +')';
		var x = aID.split('_');
		var treeID = x[0];
		var itemID = x[1];
		var item = BFWDATA.BSIItems[itemID];

		var theLevel = item.TOClevel;
		if (level) theLevel = level;

		if (item.expanded) {
			$('#dic_' + treeID +'_'+ item.ID).hide();
			$('#a_'+ treeID +'_'+ item.ID).html( 'expand' );
			$('#dic_root_'+ item.ID).hide();
			$('#a_root_'+ item.ID).html( 'expand' );
		} else if (item.items_loaded) {
			$('#dic_' + treeID +'_'+ item.ID).show();
			$('#a_'+ treeID +'_'+ item.ID).html( 'collapse' );
			$('#dic_root_'+ item.ID).show();
			$('#a_root_'+ item.ID).html( 'collapse' );
			for (var i=0; i<item.items.length; i++) {
				MySite_BFWDATA_drawItem( treeID, item.items[i], theLevel+1 );
			}
		} else {
			item.loadChildren();
			$('#dic_' + treeID +'_'+ item.ID).show();
			$('#a_'+ treeID +'_'+ item.ID).html( 'collapse' );
			$('#dic_root_'+ item.ID).show();
			$('#a_root_'+ item.ID).html( 'collapse' );
			for (var i=0; i<item.items.length; i++) {
				MySite_BFWDATA_drawItem( treeID, item.items[i], theLevel+1 );
				MySite_BFWDATA_drawItem( 'root', item.items[i], item.TOClevel+1 );
			}
		}
		item.expanded = !item.expanded;
	} catch(e) {
		msg += ' ERROR ::: '+ e.message;
	}
	msg += '<br/><br/>';
	BFWDATA.logDebug(msg);
	BFWDATA.dumpDebug();
}

function MySite_ToggleData( aID, level ) {
	var msg = 'MySite_ToggleData';
	try {
//alert( aID +' - '+ level );
		msg += '('+ aID +','+ level +')';
		var x = aID.split('_');
		var treeID = x[0];
		var itemID = x[1];
		var item = BFWDATA.BSIItems[itemID];

		if ($('#did_root_'+ item.ID +':visible').length>0) {
			$('#did_' + treeID +'_'+ item.ID).hide();
			$('#d_'+ treeID +'_'+ item.ID).html( 'show data' );
			$('#did_root_'+ item.ID).hide();
			$('#d_root_'+ item.ID).html( 'show data' );
		} else {
			var html = '';
			html += '<p style="font-size:10px"><b>ID</b> = '+ item.ID +'</p>';
			html += '<p style="font-size:10px"><b>type</b> = '+ item.type +'</p>';
			html += '<p style="font-size:10px"><b>subtype</b> = '+ item.subtype +'</p>';
			html += '<p style="font-size:10px"><b>UID</b> = '+ item.UID +'</p>';
			html += '<p style="font-size:10px"><b>PID</b> = '+ item.PID +'</p>';
			html += '<p style="font-size:10px"><b>PUID</b> = '+ item.PUID +'</p>';
			html += '<p style="font-size:10px"><b># children</b> = '+ item.item_id_arr.length +'</p>';
			html += '<p style="font-size:10px"><b>children loaded</b> = '+ item.items_loaded +'</p>';
			var ct = 0;
			for (var i=0; i<item.data.length; i++) {
				html += '<p style="font-size:10px"><b>'+ item.data[i].i_d_n +'</b><br/>'+ item.data[i].i_d_v +'</p>';
				ct++;
			}
			if (ct==0) {
				html += '<p style="font-size:10px"><b>no item data</p>';
			}
			html += '<p style="font-size:10px"><b>qpc</b> = '+ item.qpc +'</p>';
			html += '<p style="font-size:10px"><b>qpc.length</b> = '+ item.qpc.length +'</p>';
			for (var i=0; i<item.qpc.length; i++) {
				html += '<div class="diq" style="border: 1px solid green">';
				html += '<p style="font-size:10px"><b>qpc.roid</b><br/>'+ item.qpc[i].roid +'</p>';
				html += '<p style="font-size:10px"><b>qpc.rotype</b><br/>'+ item.qpc[i].rotype +'</p>';
				html += '<p style="font-size:10px"><b>qpc.curl</b><br/>'+ item.qpc[i].curl +'</p>';
				html += '<p style="font-size:10px"><b>qpc.iff</b><br/>'+ item.qpc[i].iff +'</p>';
				html += '<p style="font-size:10px"><b>qpc.bfwl</b><br/>'+ item.qpc[i].bfwl +'</p>';
				html += '</div>';
			}
			$('#did_' + treeID +'_'+ item.ID).html( html );
			$('#did_' + treeID +'_'+ item.ID).show();
			$('#d_'+ treeID +'_'+ item.ID).html( 'hide data' );
			$('#did_root_'+ item.ID).html( html );
			$('#did_root_'+ item.ID).show();
			$('#d_root_'+ item.ID).html( 'hide data' );
		}
	} catch(e) {
		msg += ' ERROR ::: '+ e.message;
	}
	msg += '<br/><br/>';
	BFWDATA.logDebug(msg);
	BFWDATA.dumpDebug();
}


function demoAlert(val){
	alert(val);
}

function updateText(str){
//	document.getElementById('BCS_carousel_msgBox').innerHTML = str;
//	$('#BCS_carousel_msgBox').html( str );
if (RA_CtrlWin.RA.dev_check()) alert(str);
	$('div.BCS_carousel_box').hide();
	$('#BCS_carousel_box_'+ str).show();
	$('#BCS_carousel_box_PremTab_'+ str).show();
}


function BCS_form_checkEnter(e,thisform){ //e is event object passed from function invocation

	try {
		var theform = thisform;
		if (!theform.submit) theform = thisform.form;

		var characterCode; //literal character code will be stored in this variable
		if (e && e.which) { //if which property of event object is supported (NN4)
			e = e
			characterCode = e.which //character code is contained in NN4's which property
		} else {
			e = event
			characterCode = e.keyCode //character code is contained in IE's keyCode property
		}
		if (characterCode == 13) { //if generated character code is equal to ascii 13 (if enter key)
			theform.submit.click() //submit the form
			return false
		} else {
			return true
		}
	} catch(err) {
		var msg = '';
		msg += this +' - '+ theform.name +' - '+ theform.submit +' - '+ theform.action +' - ';
		if (e && e.which) { //if which property of event object is supported (NN4)
			msg += e +' - ';
		} else {
//			msg += event +' - ';
		}
		msg += err.lineNumber +' - '+ err.message;
		if (false && RA_CtrlWin.RA.dev_check()) alert(msg);
	}
}

