$(document).ready(function() { jQuery.fn.numberFormat = function() { var args = arguments[0] || {}; var number = args.number var decimals = args.decimals var dec_point = args.dec_point var thousands_sep = args.thousands_sep number = (number+'').replace(',', '').replace(' ', ''); var n = !isFinite(+number) ? 0 : +number, prec = !isFinite(+decimals) ? 0 : Math.abs(decimals), sep = (typeof thousands_sep === 'undefined') ? ',' : thousands_sep, dec = (typeof dec_point === 'undefined') ? '.' : dec_point, s = '', toFixedFix = function (n, prec) { var k = Math.pow(10, prec); return '' + Math.round(n * k) / k; }; s = (prec ? toFixedFix(n, prec) : '' + Math.round(n)).split('.'); if (s[0].length > 3) { s[0] = s[0].replace(/\B(?=(?:\d{3})+(?!\d))/g, sep); } if ((s[1] || '').length < prec) { s[1] = s[1] || ''; s[1] += new Array(prec - s[1].length + 1).join('0'); } return s.join(dec); } jQuery.fn.configElementsSelectors = function() { var elementsArr = new Array() elementsArr['title'] = '#variant___title' elementsArr['code'] = '#variant___code', elementsArr['warranty_id'] = '#variant___warranty', elementsArr['availability_id'] = '#variant___availability', elementsArr['price_vat'] = '#variant___priceVat', elementsArr['description'] = '#variant___description', elementsArr['id'] = '#BasketItemProductId', elementsArr['image_id'] = '#variant___image' return elementsArr } jQuery.fn.slug = function() { var args = arguments[0] || {}; var text = args.text return text .toLowerCase() .replace(/ /g,'-') .replace(/[^\w-]+/g,'') } jQuery.fn.sortObj = function(){ var args = arguments[0] || {}; var arr = args.arr var sortedKeys = new Array(); var sortedObj = {}; for (var i in arr){ sortedKeys.push(i); } sortedKeys.sort(); for (var i in sortedKeys){ sortedObj[sortedKeys[i]] = arr[sortedKeys[i]]; } return sortedObj; } jQuery.fn.changeSelect = function() { $('.variantSelect').each(function() { var obj = document.getElementById($(this).attr('id')) var selectedIndex = obj.selectedIndex var selectedValue = obj.options[selectedIndex].value var defaultValue = obj.options[0].value var selIndex = 0 obj.selectedIndex = 0 $(this).trigger('change', { controlled: 'kkk' }) for(var h=0;h \"" + value + "\"\n"; } } } else { dumped_text = "===>"+arr+"<===("+typeof(arr)+")"; } return dumped_text; } jQuery.fn.changeProperties = function() { var k=0 var thisVariant = '' $('.variantSelect').each(function() { var thisSelect = document.getElementById($(this).attr('id')) //if (thisSelect.selectedIndex === 0) { //k++ //} else { thisVariant += thisSelect.options[thisSelect.selectedIndex].value + ' ' //} }) var parentElementsArr = new Array() parentElementsArr = parentValuesArr if (k == 0) { var productsArr = $('#implodedTitles').val().split('|') var slugedClasses = new Array() var slugedThisVariant = $(this).slug({ text: thisVariant.substr( 0, thisVariant.length-1).replace('/', '-') }) var variantsArr = new Array() $.each(productsArr, function(l, lVal) { slugedClasses[l] = $(this).slug({ text: lVal.replace('/', '-') }) }) $('.' + slugedThisVariant).each(function() { variantsArr[$(this).attr('id').replace($(this).attr('class') + '___', '')] = $(this).val() }) var elementsArr = new Array() elementsArr = $(this).configElementsSelectors() for(var items in variantsArr) { if (typeof elementsArr[items] === 'undefined') { } else { if (items == 'title') { variantsArr[items] = parentElementsArr[elementsArr[items]]+' '+variantsArr[items] // append to a title element } if (items == 'price_vat') { variantsArr[items] = $(this).numberFormat({ number: variantsArr[items], decimals: $('#priceDecimals').val(), dec_point: $('#priceDecimalSeparator').val(), thousands_sep: $('#priceThousandSeparator').val() }) + ' ' + $('#priceCurrency').val() } if (items == 'id') { $(elementsArr[items]).val(variantsArr[items]) } if (items == 'image_id') { $(elementsArr[items]).html( 'Mobilní telefon Nokia 8800 Golden Arte White zlatý' ) } else { $(elementsArr[items]).html(variantsArr[items]) } } } //alert($(this).print_r({arr: variantsArr, level: 5})) } else { for(var parentIndex in parentElementsArr) { $(parentIndex).html(parentElementsArr[parentIndex]) } } } //--------------------------------end function declaration ----------------------------------------------------------- $('.variantSelect').each(function() { var thisSelect = document.getElementById($(this).attr('id')) thisSelect.selectedIndex = 0 }) var parentValuesArr = new Array() var tmpSelectorsArr = new Array() tmpSelectorsArr = $(this).configElementsSelectors() for(var selIndex in tmpSelectorsArr) { parentValuesArr[tmpSelectorsArr[selIndex]] = $(tmpSelectorsArr[selIndex]).html() } $('.variantSelect').bind('change', function(event, controlled) { var selectVals = new Array() var productsArr = new Array() var productsAssoc = new Array() var tmpArr = new Array() var selectsForChange = new Array() var newSelectVals = new Array() productsArr = $('#implodedTitles').val().split('|') for(var i=0;i 0) { delete tmpArr[b] } } } } $.each(selectVals, function(c, cVal) { if (selectVals[c].length !== 0) { delete selectVals[c] } else { selectVals[c] = c } }) var d=0 $.each(selectVals, function(e, eVal) { if (typeof selectVals[e] !== 'undefined') { selectsForChange[d] = selectVals[e] d++ } }) for(var f=0;f0) { alert('Vyplňte prosím všechny varianty produktu') return false } else { return true } }) })