var layerSkuId;
var layerProId;
var layerCatId;
var layerFFId;
var layerFCLId;
var layerDWId;
var layerTemplateId;
var layerCatLabel;
var layerLocaleString;
var divCounter;
var pageName;
var elementIdNames;
var imageSrcGlobal;
var quickImgObj;

function getElementIdName(varKey) {
	if(elementIdNames.indexOf(varKey) > -1) {
		if(elementIdNames.indexOf(',', elementIdNames.indexOf(varKey)) == -1) {
			return elementIdNames.substring(elementIdNames.indexOf('*',elementIdNames.indexOf(varKey))+1, elementIdNames.length);
		} else {
			return elementIdNames.substring(elementIdNames.indexOf('*',elementIdNames.indexOf(varKey))+1, elementIdNames.indexOf(',', elementIdNames.indexOf(varKey)));
		}
	}
}

window.addEvent('domready',function(){

	instantiateFilter();
	esg.atg.views.cardsDataLoad.loadData();
	if($('cards_filter').hasClass('filterexpanded')) {
		$('cards_filter').toggleClass('filtercollapsed');
		$('cards_filter').toggleClass('filterexpanded');
	}
	if(($('idAllTypesHid').value!='') || ($('idAllStylesHid').value!='') || ($('idAllHolesHid').value!='')) {
		$("idReset").set('class','filterreset');
	}
	else {
		$("idReset").set('class','filterresetdisplaynone');
	}
});

function populateParams(thisSkuId,thisProId,thisCatId,thisFFId,thisFCLId,thisdwId,thisTemplateId,thisLocaleString,thisCatLabel) {
	layerSkuId=thisSkuId;
	layerProId=thisProId;
	layerCatId=thisCatId;
	layerFFId=thisFFId;
	layerFCLId=thisFCLId;
	layerDWId=thisdwId;
	layerTemplateId=thisTemplateId;
	layerLocaleString=thisLocaleString;
	layerCatLabel=thisCatLabel;
}

function showDetail() {
	window.location=layerTemplateId+"?catId="+layerCatId+"&productId="+layerProId+"&skuId="+layerSkuId;
}

function getFlexUrl() {
	
	var flexUrl = $('cardsFlexLoc').value
		+"?catId="+layerCatId
		+"&skuId="+layerSkuId
		+"&dwId="+layerDWId
		+"&ffInvId="+layerFFId
		+"&layInvId="+layerFCLId
		+"&localeString="+layerLocaleString
		+"&catLabel="+layerCatLabel;
	
	return flexUrl;
}

function displayContent(skuData, formFactorData, minPhotoCount, maxPhotoCount, photoCountLabel, imageSrc) {

    $('quickImg').src = "";
    quickImgObj = new Image();
    quickImgObj.src=imageSrc;

	if($(skuData)) {
		$('skuName').innerHTML=$(skuData).innerHTML;
	} else {
		$('skuName').innerHTML='';
	}
	if($(formFactorData)) {
		$('formFactorName').innerHTML=$(formFactorData).innerHTML;
	} else {
		$('formFactorName').innerHTML='';
	}
	
	if(minPhotoCount != null && maxPhotoCount != null) {
		if(eval(minPhotoCount) == eval(maxPhotoCount)) {
			$('photoName').innerHTML = minPhotoCount + ' ' + photoCountLabel;
		} else {
			$('photoName').innerHTML = minPhotoCount + ' - ' + maxPhotoCount + ' ' + photoCountLabel;
		}
	} else {
		$('photoName').innerHTML = '';
	}

	// fire site catalyst data
	if (skuData) {
		var scSkuIds = ";" + layerSkuId;
		esg.analytics.controller.execute("quickViewOpen", {products: scSkuIds});
	}
	
    displayImage();
}

function displayImage() {
    if(quickImgObj.complete) {
        $('quickImg').src = quickImgObj.src;
    } else {
    	setTimeout('displayImage();',500);
    }
}

function adjustCardsPadHeight(counter) {
	for(var outCount=1;outCount<=counter;outCount++) {
		var newRow = $$('#rowElement'+outCount+' .productcards .pad');
		if($defined(newRow) && newRow.length > 0) {
			var podsheight = newRow.getHeight();
			var newheight = 10;
			for (var i=0; i<podsheight.length; i++){
				if (podsheight[i]>=newheight){
					newheight = podsheight[i];	
				}
			}
			newRow.setStyle('height',newheight);
		}
	}
}

function pageNext() {
	if(typeof($('currentPageSlot').value)=='undefined') {
		$('currentPageSlot').value = 1;
	} else {
		$('currentPageSlot').value = eval($('currentPageSlot').value) + 1;
	}
	esg.atg.views.cardsPaginate.paginateCards();
}

function pagePrev() {
	if(typeof($('currentPageSlot').value)=='undefined') {
		$('currentPageSlot').value = 1;
	} else {
		$('currentPageSlot').value = eval($('currentPageSlot').value) - 1;
	}
	esg.atg.views.cardsPaginate.paginateCards();
}

function paginateItems(clickedPage) {
	if(typeof(clickedPage)=='undefined') {
		$('currentPageSlot').value = 1;
	} else {
		$('currentPageSlot').value = clickedPage;
	}
	esg.atg.views.cardsPaginate.paginateCards();
	scroll(0,160);
}

function alterCardsPerPage(elementCount) {
	if(elementCount == 1) {
		$('itemsPerPage2').options[$('itemsPerPage').selectedIndex].selected=true;
	} else {
		$('itemsPerPage').options[$('itemsPerPage2').selectedIndex].selected=true;
	}
	esg.atg.views.cardsPaginate.paginateCards();
}

function alterSortOption(elementCount) {
	var selIndex = 0;
	if(elementCount == 1) {
		selIndex = $('sortOptionSelect').selectedIndex;
		$('sortOptionSelect2').options[$('sortOptionSelect').selectedIndex].selected=true;
	} else {
		selIndex = $('sortOptionSelect2').selectedIndex;
		$('sortOptionSelect').options[$('sortOptionSelect2').selectedIndex].selected=true;
	}
	if(selIndex == 0) {
		invokeElementTag('sort_rslt_pop');
	} else if (selIndex == 1) {
		invokeElementTag('sort_rslt_hirate');
	} else {
		invokeElementTag('sort_rslt_lorate');
	}
	esg.atg.views.cardsPaginate.paginateCards();
}

function parentAnchorClicked(headerId, parentId, ajaxInvoke) {
	var classDesc = $(headerId).get('class');
	
	if(classDesc.indexOf('autoselected') == -1) {
		$(headerId).set('class','filterheader autoselected');
		$(headerId+'Hid').value="";
		
		var childElements = $(parentId).getElements('a');
		if(typeof(childElements) != 'undefined') {
			for(var i=0;i<childElements.length;i++) {
				var currentElement=childElements[i];
				if(typeof(currentElement) != 'undefined') {
					currentElement.set('class','subselected');
				}
			}
		}
		
		if($('idAllTypes').get('class').indexOf('autoselected') > -1 && 
				$('idAllStyles').get('class').indexOf('autoselected') > -1 &&
				$('idAllHoles').get('class').indexOf('autoselected') > -1){
			$("idReset").set('class','filterresetdisplaynone');
		}

		if(ajaxInvoke) {
			esg.atg.views.cardsPaginate.paginateCards();
		}
	}
}

function resetFilter(){
	parentAnchorClicked('idAllTypes','cardtype_list',false);
	parentAnchorClicked('idAllStyles','cardstyle_list',false);
	parentAnchorClicked('idAllHoles','cardcount_list',false);
	$("idReset").set('class','filterresetdisplaynone');
	esg.atg.views.cardsPaginate.paginateCards();
}

function childAnchorClicked(headerId, parentId, childId) {
	
	$(headerId).set('class','filterheader unselected');
	if($(childId).get('class').indexOf('subselected') > -1 || 
			$(childId).get('class').indexOf('unselected') > -1) {
		$(childId).set('class','userselected');
	} else {
		$(childId).set('class','unselected');
	}
	
	var selectedChilds = new Array();
	var childElements = $(parentId).getElements('a');
	var unselected = false;
	if(typeof(childElements) != 'undefined') {
		for(var i=0;i<childElements.length;i++) {
			var currentElement=childElements[i];
			if(typeof(currentElement) != 'undefined' && currentElement.get('class').indexOf('userselected') != -1) {
				selectedChilds.push($('hid_' + $(currentElement).get('id')).value);
			} else if(typeof(currentElement) != 'undefined') {
				currentElement.set('class','unselected');
				unselected = true;
			}
		}
	}
	
	if(selectedChilds.length==0 || unselected == false) {
		parentAnchorClicked(headerId, parentId, true);
	} else {
		$(headerId+'Hid').value=selectedChilds.toString();
		$("idReset").set('class','filterreset');
		esg.atg.views.cardsPaginate.paginateCards();
	}
	

}

function toggleFilter(filterList) {
	// opens or closes the filter
	
	if($('cards_filter').hasClass('filterexpanded')) {
		$$('.filterlist').setStyle('overflow-y', 'hidden');
		$$('.filterlistbroad').setStyle('overflow-y', 'hidden');
	}
	
	filterList.toggle();
	// applies the appropriate class to the filter. filter must start with 'filtercollapsed'
	$('cards_filter').toggleClass('filtercollapsed');
	$('cards_filter').toggleClass('filterexpanded');
	
	if($('cards_filter').hasClass('filterexpanded')) {
		setTimeout("$$('.filterlist').setStyle('overflow-y', 'auto');",100);
		setTimeout("$$('.filterlistbroad').setStyle('overflow-y', 'auto');",100);
	}
}

function instantiateFilter() {
	// instantiate the sliding menu
	var filterList = new Fx.Slide('filter_list',{duration:'300'}).hide();
	$$('.filterlistbroad').setStyle('overflow', 'hidden');
	$$('.filterlist').setStyle('overflow', 'hidden');
	
	// add the events to the menu trigger button
	$('filter_trigger').addEvent('click', function(e){
		
		invokeElementTag('nar_rslt');
		adjustPageFooterIE();
		e.stop();
		toggleFilter(filterList);
	});
	
	if('true'==$('isFilterOpen').value) {
		toggleFilter(filterList);
	}
	
	$('cards_filter').removeClass('unseen');
}

// closes popup onclick outside the quicklook dialog.
function quicklookclose() {
	$('cardsOptionstop').removeClass('unseen');
	$('cardsOptionsbot').removeClass('unseen');
	showHideLayer('quicklookdialog',0);
	showHideLayer('quicklookdialogfade',0);
}

// sets position of magnify dialog.
function quicklookPos(posobj){
	$('cardsOptionstop').addClass('unseen');
	$('cardsOptionsbot').addClass('unseen');
	if(typeof(window.scrollY) == 'undefined') {//For IE
		if(document.documentElement.scrollTop == 0) {
	    	$('quicklookdialog').setStyle('top',100);
		} else {
			$('quicklookdialog').setStyle('top',document.documentElement.scrollTop+20);
		}
	} else {//For FF
		if(window.scrollY == 0) {
	    	$('quicklookdialog').setStyle('top',100);
		} else {
			$('quicklookdialog').setStyle('top',window.scrollY+20);
		}
	}
}

function showSpeedBump() {
	var url =  getFlexUrl();
	//using the code from photopicker/js/esg/controller.js
	var anonUploadCookie = Cookie.get('ANON_UPLOAD');
	// See if CAS speedbump dialogs exist
	if (esg.ident && esg.ident.views && esg.ident.views.anonUploadDialogObj) {
	// If the user is anonymous and no anon upload cookie show the speedbump
		if (esg.ident.model.isAnon) {
				if (anonUploadCookie || Cookie.get('AnonPrompt')) {
						// Anon user w/cookie - redirect to spm page
						location.href=url;
				}
				else {
					// Anon user w/o cookie - set cookie, show speedbump
					//Cookie.set('ANON_UPLOAD', '1', {path:'/'})
					
					esg.ident.views.anonUploadDialogObj.display(function() {location.href=url;}, url);
				}
		}
		else {
			// Signed in user - redirecting to spm page
			Cookie.remove('ANON_UPLOAD');
			location.href=url;
		}
	} else {
		// Speedbump dialogs not available - redirecting to spm page
		location.href=url;
	}
	
	return false;
}

function getStarted(pElement) {
	
	// fire site catalyst data
	esg.analytics.controller.execute("applicationStart",{});
	
	if(esg.utility.flashDetect(null, null, true)) {
		return showSpeedBump();
	} 
	return false;
}

function invokeElementTag(elementId, suffix) {

}

function invokeFilterElementTag(elementId, anchorId) {
	var aHtml = $(anchorId).innerHTML;
	if(aHtml.indexOf('span') > -1) {
		aHtml = $$('#'+ anchorId + ' span')[0].innerHTML;
	}
	invokeElementTag(elementId, aHtml);
}
