
// Check for both main "load" events - cms pages sometimes need to wait for the window-load event.
document.observe("dom:loaded", function() {
    cmsPageLoaded();
});
//Event.observe ( window, 'load', function() { cmsPageLoaded(); } );

function cmsPageLoaded() {

//	logTime(moveFooterOnPage, "moveFooterOnPage");

	moveFooterOnPage();

//    checkPageBorders();
//    checkCmsBreadCrumbs();
}

// Double-check after loading product data.
// document.observe("productPage.ProductTable:loaded", handleFooterCheckEvent);
// document.observe("productPage.miniThumbTable:loaded", handleFooterCheckEvent);

function handleFooterCheckEvent(evt) {
		var prodObj = evt.memo;
		if ( prodObj && prodObj.containerID ) {
			checkFooterFromElement( $(prodObj.containerID) )
		}
		evt.stop();
}


function checkFooterFromElement(el) {

	var objSpacer = $('divCmsSpacer');
	if ( objSpacer && el && el.id && el.id.length > 0 &&
		 el.id != 'footer' && 
		 el.id != 'divCmsSpacer' && 
		 el.id != 'divCmsFooter' && 
		 el.id != 'ModuleWrapper' ) {
		
		var spacerHeight = objSpacer.getHeight();
		var elh = el.getHeight();
		var eloffs = el.cumulativeOffset();
		var elt = eloffs['top'];
		
		if ( elt > 133 ) elt -= 133; // subtract header.
		
		elh += elt;
		if ( elh > spacerHeight ) {
			
			objSpacer.style.height = elh + 'px';
			objSpacer.style.width = "100%";
			
			console.log("footer moved to " + objSpacer.style.height + " due to " + el + el.id);
		}
	}
}

function moveFooterOnPage() {
//    $$('div.slide-down-wrapper')[0].style.height = String(parseInt($('cms_servermodule_footer').parentNode.style.top) + 100) + 'px';
    var cmsFooterNode = $('cms_servermodule_footer');
    var contentContainerNode = $$('div.slide-down-wrapper')[0];
    var cmsFooterHeight = 57;
    if (cmsFooterNode.select('div.fma_container').length > 0) {
        cmsFooterHeight += 85;
    }
    if(cmsFooterNode && contentContainerNode) {
        var cmsFooterContainerNode = cmsFooterNode.up();
        if (cmsFooterContainerNode && cmsFooterContainerNode.hasClassName("cms_layer")) {
            contentContainerNode.style.height = parseInt(cmsFooterContainerNode.style.top) + cmsFooterHeight + 'px';
        }
    }
}

function setFullPageBorder() {
	var objSpacer = $('divCmsSpacer');
	if ( objSpacer ) {
		objSpacer.update('');
		objSpacer.addClassName('body-dotted-border');
	}
}

function setHalfPageBorder() {
	var objSpacer = $('divCmsSpacer');
	if ( objSpacer ) {
		var dyr = new Element('div', { 'class': 'dotted-y-r', 'style': "width: 965px; height: 400px;"});
		var dyl = new Element('div', { 'class': 'dotted-y-l', 'style': "width: 965px; height: 400px;"});
		objSpacer.insert(dyl);
		dyl.insert(dyr);
	}
}

function setPageBorderHeight(val) {
	var objSpacer = $('divCmsSpacer');
	if ( objSpacer ) {
		objSpacer.update('');
		
		var dbr = new Element('div', { 
			'class': 'body-dotted-border', 
			'style': "width: 965px; height: "+val+"px; margin: 10px 0 10px 0;"
		});
		
		objSpacer.insert(dbr);
	}
}

// This functions tries to determine if we need to add the dotted borders
function checkPageBorders() {
	// Don't add borders if there is featured content already
	var fc = $$('.feature-content');
	var cc = $$('.cms-feature-content');
	var db = $$('.body-dotted-border');
	var dy = $$('#divCmsSpacer .dotted-y-l');
	
	if ( fc.length > 0 || cc.length > 0 || db.length > 0 || dy.length > 0 )
		return;
	
	var dir = String(uri.directory);
	
	// If the border height is specified, set it here
	// Else go with defaults
	// Franchise and supercats should get a half-border.
	// All others get full border.  (At least this week... :-)

	if ( g_CmsPageParams.pageBorderHeight ) {
		setPageBorderHeight(g_CmsPageParams.pageBorderHeight);
	} else if ( dir.indexOf('/franchise/') < 0 && dir.indexOf('/supercat/') < 0 ) {
		setFullPageBorder();
	} else {
		setPageBorderHeight(281);
		//setHalfPageBorder();
	}
}

function checkCmsBreadCrumbs() {
	var bc = $('breadcrumb');
	if ( bc ) {
		// Show or hide the breadcrumb based on our flag
		if ( g_CmsPageParams.useBreadCrumbs )
			bc.show();
		else
			bc.hide();
	}
}
