
// 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() {
	moveFooterOnPage();
    checkPageBorders();
    checkCmsBreadCrumbs();
	 checkCmSpTags();
}

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

function checkCmSpTags() {
	var links = $$('#layer1233761379953 .link-details-arrow').each( function(element) {
		checkLink(element);
	});
	
	//console.log(links);

}

function checkLink(element) {
	//if ( !element.get('manual_cm_sp') ){ 
	var link = element.href;
	var linkArray = link.split("/");
	var lastElement = '';
	//console.log(linkArray);
	if (linkArray[3] == 'cms') {
		var tmpl = linkArray.length - 1;
		//var lastEl = tmpl.split(".");
		//lastElement = lastEl[1];
		lastElement = linkArray.length - 1
	} else {
		lastElement = linkArray.length - 2;
	}
	element.setAttribute('manual_cm_sp', 'Lnav-_-' + linkArray[lastElement] + '-_-Main');
	// }
	//console.log(el);
}

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() {
	var footObj = $('divCmsFooter');
	if ( footObj )
		footObj.show();
	
	if ( g_CmsPageParams.pageContentHeight ) {
		// Force page to fixed height
		var objSpacer = $('divCmsSpacer');
		if ( objSpacer ) {
			objSpacer.style.height = g_CmsPageParams.pageContentHeight + 'px';
			objSpacer.style.width = "100%";
		}
	} else {
		// Try to derive height
		$$('div').each( function(el) {
			checkFooterFromElement(el);
		});
	}
}

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();
	}
}





