/* #3255e4486c15bf2109a4dcb0c5f09a6b56a8a22ba6b649c5e31631974a8cdfe3# */
var priceLoading = {};
function priceLoadMainFunction() {
	priceLoading.beginPriceLoading();
}
/*some comments*/
(function() {
	var markUpPrefixes = {
		USER_HOME_BRANCH : "warehousecode",
		DEFAULT_BRANCH : "defaultWareHouse",
		LAYOUT_NAME : "layoutName",
		ERP_TYPE : "erpType",
		PRICE_PRECISION : "pricePrecision",
		PART_NUMBER : "idListPrice",
		PRICE_LOADING_API : "getPriceDetailPage.action",
		ITEM_ID : "tempItemId_",
		ITEM_QTY : "itemTxtQty",
		ITEM_EXT_PRICE_SPAN : "spanEx_",
		ALL_BRANCH_AVAILABILITY : "#allBranchHTML",
		QTY_BREAK_TABLE_ID : "qtyBreakTable_"
	};

	var viconicsUrl = "/viconics-contact-us";
	
	function populatePrice(product) {
		partNumber=product.partNumber.replace(/_/g, " ");
		itemId=partNum[partNumber];
		itemHolder = document.getElementById("unitPriceValue_" + itemId);
		if (itemHolder!=null && itemHolder.value > 0) {
			price = itemHolder.value;
		} else {
				price = product.customerPrice, partNumber = product.partNumber, qty = 1, priceLabel = "";
		}
		if (price > 0) {
			priceLabel = preparePriceLabelStr(price, product);
			populatePriceLable(product, priceLabel, price);
			enableAddToCart(product.partNumber);
			if (product.qtyPriceBreak) {
				//quantityBreakPricing.processQtyPriceBreak(product);
			}
		} else {
			populateCallForPrice(product.partNumber, price);
		}
	}

	function populatePriceLable(product, priceLabel, price) {
		itemId=partNum[product.partNumber.replace(/_/g, " ")];
		var qty = 1, i = 0;
		if (product.qty > 0) {
			qty = product.qty;
		}
		var spanPriceLabels = document.getElementById("span_"
				+ itemId);
		if (spanPriceLabels) {
			spanPriceLabels.innerHTML = priceLabel;
		}

		var spanLinkedItems = document.getElementById("spanLinkItem_"
				+ itemId);
		if (spanLinkedItems) {
			spanLinkedItems.innerHTML = priceLabel;
		}
		var priceValues = document.getElementById("priceValue_"
				
				+ itemId);
		if (priceValues) {
			priceValues.value = price;
		}
	}

	function preparePriceLabelStr(price, product) {
		partNumber=product.partNumber;
		partNumber=partNumber.replace(/_/g, " ");
		itemId=partNum[partNumber];
		var uom = "", pricePrecision = getPricePrecision();
		var pricestr = "$" + Number(price).toFixed(pricePrecision);
		var layoutName = getLayoutName();
		if (product.price && product.price > 0) {
			if (layoutName === "ProductDetailPage") {
				pricestr = pricestr;
			} else {
				pricestr = pricestr;
			}
			console.log(itemId);
			console.log(product.partNumber);
			/*if(document.getElementById('uomValue_'+itemId).value!=null){
			document.getElementById('uomValue_'+itemId).value=product.uom;
			}*/
		}
		return pricestr;
	}

	function populateCallForPrice(partNumber, price) {
		var itemHolder, itemId;
		itemId=partNum[partNumber.replace(/_/g, " ")];
		var brandName,
			callForPriceStr = "<span class='priceSpan formatPrice'>Call for Price</span>",
			layoutName = getLayoutName(),
			str = '<a href="' + viconicsUrl + '" target="_blank"><span class="priceSpan">Call for Price</span></a>';
		if(layoutName == "ProductDetailPage") {
			brandName = $('.viconicsDetail[data-itemId="' + itemId + '"]').data('brandname');
			if(brandName && brandName.toLowerCase() == 'viconics') {
				callForPriceStr = str;
			}
		} else if(layoutName == "SubCategoryPage" || layoutName == "ProductList") {
			brandName = $('.viconicsDesc[data-itemId="' + itemId + '"]').data('brandname');
			if(brandName && brandName.toLowerCase() == 'viconics') {
				callForPriceStr = str;
			}
		} else {
			callForPriceStr = "<span class='priceSpan formatPrice'>Call for Price</span>&nbsp;";
		}
		
		itemHolder = document.getElementById("span_" + itemId);
		if (itemHolder) {
			itemHolder.innerHTML = callForPriceStr;
		}
		itemHolder = document.getElementById("spanEx_" + itemId);
		if (itemHolder) {
			itemHolder.innerHTML = callForPriceStr;
		}

		itemHolder = document.getElementById("priceValue_" + itemId);
		if (itemHolder) {
			itemHolder.value = price;
		}
		itemHolder = document.getElementById("unitPriceValue_" + itemId);
		if (itemHolder) {
			itemHolder.value = price;
		}
		disableAddToCart(partNumber);
	}

	function populateAvailability(product) {
		date = product.shipDate;
		if(product.description!=null && product.description!="undefined" && product.description.length>0){
			date = product.description;
		}
		if (date) {
			populateAvailabilityDate(product.partNumber, date);
		} else {
			populateCallForAvailability(product.partNumber);
		}
	}

	function populateAllBranchTotal(partNumber, availability,totalAvailability) {
		if (availability && availability > 0) {
			populateAvailabilityLabel(partNumber, availability,totalAvailability);
		} else {
			populateCallForAvailability(partNumber);
		}
	}
	function populateAvailabilityDate(partNumber, availDate) {
		var itemId = partNum[product.partNumber.replace(/_/g, " ")];
		//var availabilityStr = product.qty;
		//var beforeLoginAvail = totalAvailability;
		var avail= "Available";
		//var avaail = document.getElementsByClassName("Avail1_"+itemId);
		var itemHolder = document.getElementsByClassName("Avail_"+itemId);
		/* var itemHolderlist = document.getElementsByClassName("Available_"+ itemId);
		var i = 0, eachItem;
		if($("#userLogin").val()=="false") {
			availabilityStr = totalAvailability
		} else {
			availabilityStr = product.qty;
		}
		if (avaail && avaail.length > 0) {
			for (i = 0; i < avaail.length; i++) {
				eachItem = avaail[0];
				eachItem.innerHTML = avail;
			}
		}*/
		if (itemHolder && itemHolder.length > 0) {
			for (i = 0; i < itemHolder.length; i++) {
				eachItem = itemHolder[0];
				eachItem.innerHTML = availDate;
			}
		}
		/*if (itemHolderlist && itemHolderlist.length > 0) {
			for (i = 0; i < itemHolderlist.length; i++) {
				eachItem = itemHolderlist[0];
				eachItem.innerHTML = availabilityStr;
			}
		}*/
	}
	function populateAvailabilityLabel(partNumber, availability,totalAvailability) {
		itemId=partNum[product.partNumber.replace(/_/g, " ")];
		var availabilityStr = product.qty;
		var beforeLoginAvail = totalAvailability;
		var avail= "Available";
		var avaail = document.getElementsByClassName("Avail1_"+itemId);
		var itemHolder = document.getElementsByClassName("Avail_"+itemId);
		var itemHolderlist = document.getElementsByClassName("Available_"+ itemId);
		var i = 0, eachItem;
		if($("#userLogin").val()=="false") {
			availabilityStr = totalAvailability
		}
		else
			{
			availabilityStr = product.qty;
			}
		if (avaail && avaail.length > 0) {
			for (i = 0; i < avaail.length; i++) {
				eachItem = avaail[0];
				eachItem.innerHTML = avail;
			}
		}
		if (itemHolder && itemHolder.length > 0) {
			for (i = 0; i < itemHolder.length; i++) {
				eachItem = itemHolder[0];
				eachItem.innerHTML = availabilityStr;
			}
		}
		/*if (document.getElementById('itemTxtSXAvail' + itemId) && ($("#userLogin").val()=="false")) {
			document.getElementById('itemTxtSXAvail' + itemId).value = totalAvailability;
		}
		else{
			document.getElementById('itemTxtSXAvail' + itemId).value = availability;
		}
*/
		if (itemHolderlist && itemHolderlist.length > 0) {
			for (i = 0; i < itemHolderlist.length; i++) {
				eachItem = itemHolderlist[0];
				eachItem.innerHTML = availabilityStr;
			}
		}
	}

	function populateCallForAvailability(partNumber) {
		itemId=partNum[partNumber.replace(/_/g, " ")];
		var availabilityStr = "<span class='cimm_color5'>Call for Availability</span>";
		/*if (document.getElementById('itemTxtSXAvail' + itemId)) {
			document.getElementById('itemTxtSXAvail' + itemId).value = 0;
		}*/
		
		var availabilityElements = document.getElementsByClassName('Avail_'+itemId);
		if(availabilityElements.length<1){
			availabilityElements = document.getElementById('Avail_'+itemId);
		}
		if(availabilityElements!=null){
			for (var i = 0; i < availabilityElements.length; i++) {
				var eachElement = availabilityElements[i];
				eachElement.innerHTML = availabilityStr;
			}
		}
		/*if(product !=null){
		if(product.qty==0)
			{
			disableAddToCart(partNumber);
			}
		}*/
	}

	function populateAllBranchAvailability(product) {
		var branchName, branchAvailability, newBranch;
		branchName = createTableCell(product.branchName);
		branchAvailability = createTableCell(product.branchAvailability);
		newBranch = createTableRow(branchName, branchAvailability);
		partnumber=product.partNumber.replace(/ /g,"_");
		appendToAllBranchAvailability(newBranch,partnumber);
		
	}

	function appendNewBranch(product, branch) {
		//$(markUpPrefixes.ALL_BRANCH_AVAILABILITY + product.partNumber).append(branch);
		$(
				document.getElementById(markUpPrefixes.ALL_BRANCH_AVAILABILITY
						+ product.partNumber)).append(branch);
	}

	function createTableRow(branchName, branchAvailability) {
		return "<tr>" + branchName + branchAvailability + "</tr>";
	}

	function createTableCell(branchData) {
		return "<td class = 'center'> " + branchData + "</td>";
	}

	function appendToAllBranchAvailability(newBranch, partNumber) {
		itemId=partNum[product.partNumber.replace(/_/g, " ")];
		if (document.getElementById("allBranchHTML")) {
			var currentTable = document.getElementById("allBranchHTML");
			$(currentTable).append(newBranch);
		}
		
	}

	function enableAddToCart(partNumber){
		itemId=partNum[product.partNumber.replace(/_/g, " ")];
		if (document.getElementById('enableCart_' + itemId) && document.getElementById('enableCart_' + itemId).classList) {
			document.getElementById('enableCart_' + itemId).classList.remove('btns-disable');
			if( $('#superceded_' + itemId).val() == "" && ($('#discontinuedFlag_' + itemId).val() == "" || $('#discontinuedFlag_' + itemId).val() == "N" || $('#superceded_' + itemId).val() == undefined) && $("#userLogin").val()=="true"){
				$(document.getElementById("enableCart_" + itemId)).addClass('addToCart');
			} else {
				$(document.getElementById("enableCart_" + itemId)).removeClass('addToCart');
				$("#userLogin").val()=="true" && $(document.getElementById("enableCart_" + itemId)).addClass('btns-disable');
			}
		} else {
			$(document.getElementById("enableCart_" + itemId)).removeClass('btns-disable');
			$("#userLogin").val()=="true" && $(document.getElementById("enableCart_" + itemId)).addClass('addToCart');
		}
		if (document.querySelector("[data-partnumber='" + itemId + "']") && document.querySelector("[data-partnumber='" + itemId + "']").classList) {
			document.querySelector("[data-partnumber='" + itemId + "']").removeAttribute('disabled');
			document.querySelector("[data-partnumber='" + itemId + "']").parentElement.classList.remove('btns-disable');
			var productModeItem = document.querySelector("[data-partnumber='"+ itemId + "']");
			var itemId = productModeItem.getAttribute('data-itemid');
			if (document.getElementById('selectItemCheckbox_' + itemId && $('#discontinuedFlag_' + itemId).val() != "Y" )) {
				document.getElementById('selectItemCheckbox_' + itemId).setAttribute('data-addtocartflag', 'Y');
			}
			//productModeItem.setAttribute('data-addtocartflag','Y');			
		} else {
			$(document.getElementById("[data-partnumber='" + itemId + "']"))
					.removeAttr('disabled');
			if( $('.isSupercededItem').val() == "" && ($('#discontinuedFlag_' + itemId).val() == "" || $('#discontinuedFlag_' + itemId).val() == "N")){
				$(document.getElementById("enableCart_" + itemId)).removeClass('btns-disable');
			} 
			else {
				$(document.getElementById("enableCart_" + itemId)).addClass('btns-disable');$(document.getElementById("enableCart_" + itemId)).addClass('btns-disable');
				}
		
		}
	}

	function disableAddToCart(partNumber) {
		//partNumber=product.partNumber.replace(/_/g, " ");
		itemId=partNum[partNumber];
		if (document.getElementById('enableCart_' + itemId)
				&& document.getElementById('enableCart_' + itemId).classList) {
			document.getElementById('enableCart_' + itemId).classList
					.remove('addToCart');
			document.getElementById('enableCart_' + itemId).classList
					.add('btns-disable');
		} else {
			$(document.getElementById("enableCart_" + itemId)).removeClass(
					'addToCart');
			$(document.getElementById("enableCart_" + itemId)).addClass(
					'btns-disable');
		}
		if (document.querySelector("[data-partnumber='" + itemId + "']")) {
			document.querySelector("[data-partnumber='" + itemId + "']")
					.setAttribute('disabled', 'disabled');
		}
	}

	function getProductIdentifier() {
		var i, partNumbers = [], partNumberWithUom, uom, partNumber, minOrderQty;
		var partNumberFields = $("input:hidden[name='"
				+ markUpPrefixes.PART_NUMBER + "']");

		
		if (partNumberFields && partNumberFields.length > 0) {
			for (i = 0; i < partNumberFields.length; i++) {
				partNumber = partNumberFields[i].value.replace(/_/g, " ");
				console.log(partNumber);
				itemId=partNum[partNumber];
				if (document.getElementById('uomValue_' + itemId)) {
					uom = document.getElementById('uomValue_' + itemId).value;
				}
				if (document.getElementById('MinOrderQty_' + itemId)) {
					minOrderQty = document.getElementById('MinOrderQty_' + itemId).value;
				}else{
					minOrderQty=1;
				}
				partNumberWithUom = "";
				if (uom) {
					partNumberWithUom = partNumber + ":" + uom+ ":" +minOrderQty;
				} else {
					partNumberWithUom = partNumber + ":" + ""+ ":" +minOrderQty;
				}
				partNumbers.push(partNumberWithUom.replace(/_/g, " "));
			}
			partNumbers = partNumbers.join(",");
		}
		return partNumbers;
	}

	function requestPriceLoadingAPI(partNumbers) {
		$.ajax({
			url : markUpPrefixes.PRICE_LOADING_API,
			type : "POST",
			data : {
				"productIdList" : partNumbers,
				"loadAllBranchAvailability" : "Y"
			},
			success : function(responseData) {
				if (responseData && responseData !=  '$renderContent') {
					var productDataList = JSON.parse(responseData);
					processPriceLoadingResponse(productDataList);
				} else {
					onPriceLoadingAPIFailure();
					productModeCustomFunc();
				}
			},
			error : function(xhr, status, error) {
				onPriceLoadingAPIFailure();
				productModeCustomFunc();
			}
		});
	}

	
	
	function requestAvailabityAPI(partNumberEntity) {
		$.ajax({
			url : markUpPrefixes.PRICE_LOADING_API,
			type : "POST",
			data : {
				"productIdList" : partNumberEntity,
				"loadAllBranchAvailability" : "Y",
				"LABAvailability" : "Y"
				
			},
			success : function(responseData) {
				if (responseData && responseData !=  '$renderContent') {
					var productDataList = JSON.parse(responseData);
					processAvailabilityResponse(productDataList);
				} else {
					onPriceLoadingAPIFailure();
					
				}
			},
			error : function(xhr, status, error) {
				onPriceLoadingAPIFailure();
			}
		});
	}
	$("#clickforAllBranch").on('click', function(){

		var partNumber=$(this).attr("data-itemid");
		var partNum=$(this).attr("data-partnumber");
		if($("#allBranchHTML_"+partNumber).children().length > 0){
		}else{
		var partNumbersEntity = [], uom, minOrderQty,partNumberWithUom;
		
		if (document.getElementById('MinOrderQty_' + partNumber)) {
			minOrderQty = document.getElementById('MinOrderQty_' + partNumber).value;
		}else{
			minOrderQty=1;
		}
		partNumberWithUom = "";
		if (uom) {
			partNumberWithUom = partNum + ":" + uom+ ":" +minOrderQty;
		} else {
			partNumberWithUom = partNum + ":" + ""+ ":" +minOrderQty;
		}
		partNumbersEntity.push(partNumberWithUom);
		if(partNumbersEntity.length > 0)
			{
			requestAvailabityAPI(partNumbersEntity.toString());
			}
		}
	});

	function processAvailabilityResponse(products) {
		var layoutName = getLayoutName();
		var warehouseCode = $('#wareHouseCode').val();
		var totalAvailability=0.0;
		var priceDispalyed=false;
		date = products.shipDate;
		console(date);
		$("#totalavil_"+itemId).val("");
		for (var i = 0; i < products.length; i++) {
			product = products[i];
			if(product.partNumber!=null && product.partNumber!="undefined"){
				partNumber = product.partNumber;
			}else{
				partNumber = product.erpPartNumber;
			}
			itemId = partNum[partNumber];
			$("#locationWithin").attr("data-partNum",itemId);
			jQuery('#branchAvail').find('.branchAvailHidden').html('');
			wareHouseList = product.branchAvail;
			if(wareHouseList.length>0){
				var table = $('#allBranch').DataTable();
				if (document.getElementById("allBranchHTML").innerHTML) {
					table.destroy();
					document.getElementById("allBranchHTML").innerHTML = "";
				}
				for (var j = 0; j < wareHouseList.length; j++) {
					wareHouseDetails = wareHouseList[j];
					if (wareHouseDetails.branchAvailability > 0) {
						totalAvailability += parseInt(wareHouseDetails.branchAvailability);
						populateAllBranchAvailability(wareHouseDetails);
						var branchAvailHidden = "";
						branchAvailHidden += "<input type='hidden' id='branchAvailHidden_"+wareHouseDetails.branchID+"_"+itemId+"' value='"+wareHouseDetails.branchAvailability+"'/>";
						$('#clickforAllBranch'+itemId).show();
						jQuery('#branchAvail').find('.branchAvailHidden').append(branchAvailHidden);
					}
				}
				if(!$.fn.DataTable.isDataTable('#allBranch')){
					table = jQuery('#allBranch').DataTable({
						"sDom": '<"tabHeader"f>t<"tabFooter clearAfter"p>',
						"ordering": false,
						"language": {
							"paginate": {
					          "next": '<em class="fa fa-caret-right"></em>',
					          "previous": '<em class="fa fa-caret-left"></em>'  
					        }
					    }
					});
				}
				$(("#totalAvail")).html(totalAvailability  + " IN STOCK");
				}
				console.log("total Availability for " + partNumber + " is : " + totalAvailability);
				branchList = [];
			}
		}

	function processPriceLoadingResponse(products) {
	var layoutName = getLayoutName();
	var warehouseCode = $('#wareHouseCode').val();
	var totalAvailability=0.0;
	var priceDispalyed=false;
	var branchAvailHidden = "";
	for (var i = 0; i < products.length; i++) {
		product = products[i];
		if(product.partNumber!=null && product.partNumber!="undefined"){
			partNumber = product.partNumber.replace(/ /g,"_")
		}else{
			partNumber = product.erpPartNumber.replaceAll(' ','_');
		}
		console.log(partNumber);
		itemId=partNum[product.partNumber.replace(/_/g, " ")];
		wareHouseList = product.branchAvail;
		if(wareHouseList.length>0){
		for (var j = 0; j < wareHouseList.length; j++) {
			wareHouseDetails = wareHouseList[j];
			if (wareHouseDetails.branchAvailability !== undefined) {
				totalAvailability += parseInt(wareHouseDetails.branchAvailability);
			}
			if (product.price > 0 && !priceDispalyed) {
                product.partNumber=partNumber;
                    populatePrice(product);
                    priceDispalyed = true;
                }
		}
		}else{
			/*if (product.cimm2BCentralPricingWarehouse.customerPrice > 0 && !priceDispalyed) {
				product.cimm2BCentralPricingWarehouse.partNumber=partNumber;
					populatePrice(product.cimm2BCentralPricingWarehouse);
					priceDispalyed = true;
				}*/
		}
		if(!priceDispalyed){
			populateCallForPrice(partNumber, 0);
			priceDispalyed = true;
		}
		leadItemHolder = document.getElementById("leadTimeLI_" + itemId);
		if(product.leadTime > 0) {
			var lead = product.leadTime;
			if (leadItemHolder) {
				document.getElementById('leadTimeLI_'+ itemId).value = lead;
				leadItemHolder.innerHTML = "<strong>Lead Time: </strong><span>" + lead + "</span>";
			}
		}else{
			leadItemHolder ? leadItemHolder.innerHTML = "" : "";
		}
		populateAvailability(product);
		//populateAllBranchTotal(partNumber, product.qty,totalAvailability);
		console.log("total Availability for " + partNumber + " is : " + totalAvailability);
		$('#totalAvail'+itemId).html(totalAvailability);
		branchList = [];
		totalAvailability = 0;
		priceDispalyed = false;
		qtyBreakDisplayed = false;
		/*jQuery('#myModal'+itemId).find('.modal-body').append(branchAvailHidden);
		if(!$.fn.DataTable.isDataTable('#allBranch'+itemId)){
			table=jQuery('#allBranch'+itemId).DataTable({
				"sDom": '<"tabHeader"f>t<"tabFooter clearAfter"p>',
				"ordering": false,
				"language": {
					"paginate": {
			          "next": '<em class="fa fa-caret-right"></em>',
			          "previous": '<em class="fa fa-caret-left"></em>'  
			        }
			    }
			});
		}*/
	}
	$("[data-select='priceData']").each(function(i){
		if($(this).find("img").length>0){
			var brandName,
				callForPriceStr = "<span class='priceSpan formatPrice'>Call for Price</span>",
				itemId=partNum[partNumber.replace(/_/g, " ")],
				str = '<a href=' + viconicsUrl + ' target="_blank"><span class="priceSpan">Call for Price</span></a>';
			if(layoutName == "ProductDetailPage") {
				brandName = $('.viconicsDetail[data-itemId="' + itemId + '"]').data('brandname');
				if(brandName && brandName.toLowerCase() == 'viconics') {
					callForPriceStr = str;
				}
			} else if(layoutName == "SubCategoryPage" || layoutName == "ProductList") {
				brandName = $('.viconicsDesc[data-itemId="' + itemId + '"]').data('brandname');
				if(brandName && brandName.toLowerCase() == 'viconics') {
					callForPriceStr = str;
				}
			} else {
				callForPriceStr = "<span class='priceSpan formatPrice'>Call for Price</span>";
			}
			$(this).html(callForPriceStr);
		}
	});
	$("[data-select='availability']").each(function(i){
		if($(this).find("img").length>0){
			$(this).html("<span class='cimm_avail not_avail'>Call for Availability</span>");
		}
	});
	//cleanLoading();
	productModeCustomFunc();
	}

	function onPriceLoadingAPIFailure() {

		var callForPriceStr = "<span class='cimm_color5'>"+ "Available for Purchase" + "</span>";
		$("input:hidden[name='idListPrice']").each(function(i) {
			var partNumber = $(this).val();
			if (document.getElementById("priceValue_"+ partNumber) && document.getElementById("priceValue_"+ partNumber).value <= 0) {
				if(document.querySelector("[data-select='addtoCartbtn_"+ partNumber + "']")){
					document.querySelector("[data-select='addtoCartbtn_"+ partNumber + "']").innerHTML = '<a href="javascript:void(0);" class="btn btn-addtocart btns-disable">Add to Cart</a>';
				}
				//$("[data-select='addtoCartbtn_"+ partNumber +"']").html('<a href="javascript:void(0);" class="btn btn-addtocart btns-disable">Add to Cart</a>');
			}
			populateCallForPrice(partNumber, 0);
			populateCallForAvailability(partNumber);
			disableAddToCart(partNumber);
		});
	}

	function getUserHomeBranch() {
		var userHomeBranch = document
				.getElementById(markUpPrefixes.USER_HOME_BRANCH).value;
		return userHomeBranch;
	}

	function getDefaultWareHouse() {
		var defaultBranch = document
				.getElementById(markUpPrefixes.DEFAULT_BRANCH).value;
		return defaultBranch;
	}

	function getLayoutName() {
		var layoutName = document.getElementById(markUpPrefixes.LAYOUT_NAME).value;
		return layoutName;
	}

	function getPricePrecision() {
		var pricePrecision = 2;
		if (document.getElementById(markUpPrefixes.PRICE_PRECISION)) {
			pricePrecision = document
					.getElementById(markUpPrefixes.PRICE_PRECISION).value;
		}
		return pricePrecision;
	}
	function getErpType() {
		var erpType = document.getElementById(markUpPrefixes.ERP_TYPE).value;
		if(erpType && erpType.toUpperCase()=="DEFAULTS"){
			productModeCustomFunc();
			erpType = false;
		}
		return erpType;
	}
	
	function validateErpType() {
		if (getErpType()) {
			return true;
		} else {
			return false;
		}
	}

	priceLoading.beginProductModePriceLoading = function(itemPriceId) {
		if (validateErpType()) {
			var partNumbers = getProductIdentifier(itemPriceId);
			console.log(partNumbers);
			if (partNumbers.length > 0) {
				requestPriceLoadingAPI(partNumbers.toString());
			} else {
				cleanLoading();
			}
		}
	};

	priceLoading.beginPriceLoading = function() {
		if (validateErpType()) {
			var partNumbers = getProductIdentifier();
			if (partNumbers.length > 0) {
				requestPriceLoadingAPI(partNumbers);
			} else {
				console.info("No Part Number are available");
			}
		} else {
			console.info("ERP Type is not available");
			//productModeCustomFunc();
		}
	};

	function productModeCustomFunc() {
		var oTable = $('#childItemTable').DataTable({
			"sPaginationType" : "full_numbers",
			"bSort" : false,
			"bLengthChange" : false,
			"pageLength" : 5,
			"sDom" : 'T<"tabHeader"l><"tablesWrap"t><"tabFooter"ip>',
			"dom" : '<"top"i>rt<"bottom"flp><"clear">',
			"language" : {
				"search" : "_INPUT_",
				"searchPlaceholder" : "Search",
				"sLengthMenu" : "Show _MENU_",
				"oPaginate" : {
					"sPrevious" : "Prev",
					"sNext" : "Next"
				}
			},
			"bSort" : false,
			"aaSorting" : [ [ 0, 'desc' ] ],
			"pagingType" : "simple_numbers",
			"bJQueryUI" : true,
			"bAutoWidth" : false,
			"columnDefs" : [ {
				orderable : false,
				targets : -1
			} ]
		});
		$('#childItemTable tbody').on('click','td.details-control',function() {
			var tr = $(this).closest('tr');
			var row = oTable.row(tr);
			$(".focusLinkedItemTabs").hide();
			if (row.child.isShown()) {
				row.child.hide();
				tr.removeClass('shown');
				$("#linkedItemContentDiv_" + $(this).attr('id')).hide();
				$("#linkedItemAvailable_" + $(this).attr('id')).hide();
				$('td.details-control em').removeClass('fa-minus-circle').addClass('fa-plus-circle');
			} else if (typeof $(tr).attr("data-detailsload") != "undefined" && $(tr).attr("data-detailsload") == "Y") {
				$("[data-rowid='identification']").each(
						function(i) {
							var trHide = $(this).closest('tr');
							var rowHide = oTable.row(trHide);
							if (rowHide.child.isShown()) {
								rowHide.child.hide();
								trHide.removeClass('shown');
							}
						});
				$("#linkedItemContentDiv_" + $(this).attr('id'))
						.show();
				$("#linkedItemAvailable_" + $(this).attr('id'))
						.show();
				$('td.details-control em').removeClass(
						'fa-minus-circle').addClass(
						'fa-plus-circle');
				$(this).closest('tr').find('em').toggleClass(
						'fa-minus-circle');
				row.child.show();
				tr.addClass('shown');
				$("html, body").animate({
					scrollTop : $(tr).offset().top
				}, 1000);
			} else {
				$("[data-rowid='identification']").each(function(i) {
					var trHide = $(this).closest('tr');
					var rowHide = oTable.row(trHide);
					if (rowHide.child.isShown()) {
						rowHide.child.hide();
						trHide.removeClass('shown');
					}
				});
				block("Please Wait");
				var itemPriceId = $(this).attr('id');
				var linkedItemExistFlag = false;
				var domTabsExistFlag = false;
				//$(".focusItemTabs").hide();
				$('td.details-control em').removeClass('fa-minus-circle').addClass('fa-plus-circle');
				$(this).closest('tr').find('em').toggleClass('fa-minus-circle');
				$(tr).attr("data-detailsload", "Y");
				$.ajax({
					type : "POST",
					url : "/itemDetailSolrPage.action?reqType=ItemDetail&codeId="+ $(this).attr('id')+ '&dt=' + new Date(),
					success : function(msg) {
						unblock();
						var addonDetails = "";
						//console.log("Msg: "+msg);
						if (msg != "") {
							if ($(msg).filter("#productAccordionWrapDetailPageContent").length > 0) {
								addonDetails = $(msg).filter("#productAccordionWrapDetailPageContent").html();
								if (addonDetails != null
										&& addonDetails != "") {
									domTabsExistFlag = true;
								}
							}
							if ($(msg).filter("#linkedItemSectionContent").length > 0 && $(".productAccordionWrap").length > 0) {
								var linkedItemContent = $.trim($(msg).filter("#linkedItemSectionContent").html())
								if (linkedItemContent != null && linkedItemContent != "") {
									$(".productAccordionWrap").html(linkedItemContent);
									linkedItemExistFlag = true;
								}
							}
						}
						if (domTabsExistFlag) {
							row.child(addonDetails).show();
							if (linkedItemExistFlag && $("#addOrRemoveCustomerPartNumberContent").length > 0) {
								$("#addOrRemoveCustomerPartNumberContent").show();
							}
						} else {
							row.child("No Details Available").show();
						}
						tr.addClass('shown');
						ProductMode.customDomTabLoad();// For Dom tab
						if (linkedItemExistFlag) {
							$("#linkedItemContentDiv_"+ itemPriceId).show();
							$("#linkedItemAvailable_"+ itemPriceId).show();
						}
						$("html, body").animate({scrollTop : $(tr).offset().top}, 1000);
						setTimeout($.unblockUI, 100);
					}
				});
			}
		});
	}

})();
function loadAvailTable(str,tableName){
	var allBranch =$('#'+tableName).DataTable();
	if(str){
		allBranch.destroy();
		$('#'+tableName+' #allBranchHTML').empty();
		if($('#'+tableName+' #allBranchHTML').length>0){
			$('#'+tableName+' #allBranchHTML').html(str);
		}
	}
}
function filterTable(obj){
	var c = $('#dataSearchValue').val();
	$('#allBranch').DataTable().column(0).search(c).draw();
}
function showLocationWithin(_that){
	var partNumber = $(_that).attr("data-partNum");
	var milesWithin = $('#milesWithin').val();
	var locationZipcode = $("#locationZipcode").val();
	var tableName = "allBranch";
	if(milesWithin!="" && locationZipcode!=""){
		block('Please Wait');
		jQuery.ajax({
			type: "POST",
			url: "CustomLocationsMap.action",
			data: {"selectedZipCode": locationZipcode, "selectedMiles": milesWithin,"responseType":"locationsWithin","partNumber":partNumber},
			success: function(response){
				if(response!=null && response!="" && $.trim(response)!="responseType"){
					$(".searchLocationClone #searchLocation").remove();
					loadAvailTable(response,tableName);
					$("input:hidden[name='filteredBranchAvail_"+partNumber+"']").each(function(i){
						var code = $(this).val();
						if($("#branchAvailHidden_"+code+"_"+partNumber).val()!="undefined" && $("#branchAvailHidden_"+code+"_"+partNumber).val()>0){
							$("#filteredBranchAvail_"+code+"_"+partNumber).html($("#branchAvailHidden_"+code+"_"+partNumber).val());
						}
						else{
							$(this).parent().parent().remove();
						}
					});
					table=jQuery('#'+tableName).DataTable({
						"sDom": '<"tabHeader"f>t<"tabFooter clearAfter"p>',
						"ordering": false,
						"language": {
							"paginate": {
					          "next": '<em class="fa fa-caret-right"></em>',
					          "previous": '<em class="fa fa-caret-left"></em>'  
					        }
					    }
					});
				}
				unblock();
			}
		});
	}else{
		alert("Please enter zipcode");
	}
}


