{"content":"\r\n\r\n
View product page<\/a><\/p>\n <\/div>\n<\/div>\t\t\t\t<\/div>\r\n <\/div>\r\n \r\n \r\n \r\n \r\n Overview<\/a><\/li>\r\n Description<\/a><\/li>\r\n <\/ul>\r\n <\/div>\r\n \r\n \r\n Angel pendant 750 yellow gold polished<\/strong><\/a>\r\n \r\n \n\n \n \n \n CHF 779.00<\/span>\t\t\t\t\t\t<\/span>\n\t\t\t\t\t\t<\/br>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tIncl. VAT\t\t\t\t\t\t8.1%\t\t\t\t\t\t<\/br>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\tincl. shipping<\/a>\t\t\t\t\t\t<\/div>\n\t\t\t\t\t\t<\/br>\n\t\t\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t <\/span>\n \n <\/div>\n\n \n on sale!<\/span>\r\n <\/div>\r\n \r\n Be the first to review this product<\/a><\/p>\r\n <\/div>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \n \n\n \n \n Engraving Guardian Angel Wing<\/label>\n +CHF 30.00<\/span><\/span><\/dt>\n\n \n \n Maximum number of characters: 10<\/strong><\/p>\n <\/div>\n<\/dd>\n Engraving Guardian Angel Body<\/label>\n +CHF 30.00<\/span><\/span><\/dt>\n\n \n \n Maximum number of characters: 15<\/strong><\/p>\n <\/div>\n<\/dd>\n \nNecklace<\/label><\/dt>\n\n \n -- Please Select --<\/option>Necklace in 585\/- yellow gold, 38cm +CHF 249.00<\/option>Necklace in 585\/- yellow gold, 40cm +CHF 259.00<\/option>Necklace in 585\/- yellow gold, 42cm +CHF 269.00<\/option>Necklace in 585\/- yellow gold, 45cm +CHF 289.00<\/option>Necklace in 585\/- yellow gold, 50cm +CHF 449.00<\/option><\/select> <\/div>\n<\/dd>\n <\/dl>\n\n\n <\/div>\n\n\r\n\r\n \n \t\tQuantity<\/label>\n \n \t<\/div>\n Add to Cart<\/span><\/span><\/button>\n <\/div>\r\n<\/div>\r\n\r\n <\/fieldset>\r\n <\/form>\r\n \r\n <\/div>\r\n \r\n \r\n Commonly recognised, yellow gold is by far the most popular gold colour in the world and naturally belongs to the most coveted precious metals when it comes to the fabrication of valuable jewellery. The purity of gold is historically specified in carats. 24 carats are the equivalent of pure gold or fine gold. The \u201c750\u201d number stamped in a Tarnoki guardian angel indicates that the piece of jewellery consists of 750 out of 1,000 parts by weight, or 75.0% of pure gold, which is the equivalent of 18 carats.\r\n\r\nThe \u201cSwiss Made\u201d seal of approval guarantees high-quality craftsmanship. <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n<\/div>\r\n\r\n\r\n\r\n","scripts":["\r\n var optionsPrice = new Product.OptionsPrice({\"productId\":\"15\",\"priceFormat\":{\"pattern\":\"CHF %s\",\"precision\":2,\"requiredPrecision\":2,\"decimalSymbol\":\".\",\"groupSymbol\":\",\",\"groupLength\":3,\"integerRequired\":1},\"includeTax\":\"true\",\"showIncludeTax\":true,\"showBothPrices\":false,\"productPrice\":779,\"productOldPrice\":779,\"priceInclTax\":779,\"priceExclTax\":779,\"skipCalculate\":1,\"defaultTax\":8.1,\"currentTax\":8.1,\"idSuffix\":\"_clone\",\"oldPlusDisposition\":0,\"plusDisposition\":0,\"plusDispositionTax\":0,\"oldMinusDisposition\":0,\"minusDisposition\":0,\"tierPrices\":[],\"tierPricesInclTax\":[]});\r\n","\n\nvar DateOption = Class.create({\n\n getDaysInMonth: function(month, year)\n {\n var curDate = new Date();\n if (!month) {\n month = curDate.getMonth();\n }\n if (2 == month && !year) { \/\/ leap year assumption for unknown year\n return 29;\n }\n if (!year) {\n year = curDate.getFullYear();\n }\n return 32 - new Date(year, month - 1, 32).getDate();\n },\n\n reloadMonth: function(event)\n {\n var selectEl = event.findElement();\n var idParts = selectEl.id.split(\"_\");\n if (idParts.length != 3) {\n return false;\n }\n var optionIdPrefix = idParts[0] + \"_\" + idParts[1];\n var month = parseInt($(optionIdPrefix + \"_month\").value);\n var year = parseInt($(optionIdPrefix + \"_year\").value);\n var dayEl = $(optionIdPrefix + \"_day\");\n\n var days = this.getDaysInMonth(month, year);\n\n \/\/remove days\n for (var i = dayEl.options.length - 1; i >= 0; i--) {\n if (dayEl.options[i].value > days) {\n dayEl.remove(dayEl.options[i].index);\n }\n }\n\n \/\/ add days\n var lastDay = parseInt(dayEl.options[dayEl.options.length-1].value);\n for (i = lastDay + 1; i <= days; i++) {\n this.addOption(dayEl, i, i);\n }\n },\n\n addOption: function(select, text, value)\n {\n var option = document.createElement('OPTION');\n option.value = value;\n option.text = text;\n\n if (select.options.add) {\n select.options.add(option);\n } else {\n select.appendChild(option);\n }\n }\n});\ndateOption = new DateOption();\n\n","\n \n var optionFileUpload = {\n productForm : $('product_addtocart_form'),\n formAction : '',\n formElements : {},\n upload : function(element){\n this.formElements = this.productForm.select('input', 'select', 'textarea', 'button');\n this.removeRequire(element.readAttribute('id').sub('option_', ''));\n\n template = '<\\\/iframe>';\n\n Element.insert($('option_'+element.readAttribute('id').sub('option_', '')+'_uploaded_file'), {after: template});\n\n this.formAction = this.productForm.action;\n\n var baseUrl = 'https:\/\/www.tarnoki.com\/ch_en\/catalog\/product\/upload\/';\n var urlExt = 'option_id\/'+element.readAttribute('id').sub('option_', '');\n\n this.productForm.action = parseSidUrl(baseUrl, urlExt);\n this.productForm.target = 'upload_target';\n this.productForm.submit();\n this.productForm.target = '';\n this.productForm.action = this.formAction;\n },\n removeRequire : function(skipElementId){\n for(var i=0; i<\\\/a>Remove file<\\\/a>';\n\n Element.insert($('option_'+data.optionId+'_uploaded_file'), {after: template});\n }\n },\n removeFile : function(optionId)\n {\n $('option_'+optionId+'_uploaded_file').value= '';\n $('option_'+optionId+'_file').show();\n $('option_'+optionId+'').show();\n\n $('option_'+optionId+'_file_box').remove();\n }\n }\n var optionTextCounter = {\n count : function(field,cntfield,maxlimit){\n if (field.value.length > maxlimit){\n field.value = field.value.substring(0, maxlimit);\n } else {\n cntfield.innerHTML = maxlimit - field.value.length;\n }\n }\n }\n\n Product.Options = Class.create();\n Product.Options.prototype = {\n initialize : function(config) {\n this.config = config;\n this.reloadPrice();\n document.observe(\"dom:loaded\", this.reloadPrice.bind(this));\n },\n reloadPrice : function() {\n var config = this.config;\n var skipIds = [];\n $$('body .product-custom-option').each(function(element){\n var optionId = 0;\n element.name.sub(\/[0-9]+\/, function(match){\n optionId = parseInt(match[0], 10);\n });\n if (config[optionId]) {\n var configOptions = config[optionId];\n var curConfig = {price: 0};\n if (element.type == 'checkbox' || element.type == 'radio') {\n if (element.checked) {\n if (typeof configOptions[element.getValue()] != 'undefined') {\n curConfig = configOptions[element.getValue()];\n }\n }\n } else if(element.hasClassName('datetime-picker') && !skipIds.include(optionId)) {\n dateSelected = true;\n $$('.product-custom-option[id^=\"options_' + optionId + '\"]').each(function(dt){\n if (dt.getValue() == '') {\n dateSelected = false;\n }\n });\n if (dateSelected) {\n curConfig = configOptions;\n skipIds[optionId] = optionId;\n }\n } else if(element.type == 'select-one' || element.type == 'select-multiple') {\n if ('options' in element) {\n $A(element.options).each(function(selectOption){\n if ('selected' in selectOption && selectOption.selected) {\n if (typeof(configOptions[selectOption.value]) != 'undefined') {\n curConfig = configOptions[selectOption.value];\n }\n }\n });\n }\n } else {\n if (element.getValue().strip() != '') {\n curConfig = configOptions;\n }\n }\n if(element.type == 'select-multiple' && ('options' in element)) {\n $A(element.options).each(function(selectOption) {\n if (('selected' in selectOption) && typeof(configOptions[selectOption.value]) != 'undefined') {\n if (selectOption.selected) {\n curConfig = configOptions[selectOption.value];\n } else {\n curConfig = {price: 0};\n }\n optionsPrice.addCustomPrices(optionId + '-' + selectOption.value, curConfig);\n optionsPrice.reload();\n }\n });\n } else {\n optionsPrice.addCustomPrices(element.id || optionId, curConfig);\n optionsPrice.reload();\n }\n }\n });\n }\n }\n function validateOptionsCallback(elmId, result) {\n var container = $(elmId).up('ul.options-list');\n if (result == 'failed') {\n container.removeClassName('validation-passed');\n container.addClassName('validation-failed');\n } else {\n container.removeClassName('validation-failed');\n container.addClassName('validation-passed');\n }\n }\n var opConfig = new Product.Options({\"28\":{\"price\":30,\"oldPrice\":30,\"priceValue\":\"30.0000\",\"type\":\"fixed\",\"excludeTax\":27.75,\"includeTax\":30},\"27\":{\"price\":30,\"oldPrice\":30,\"priceValue\":\"30.0000\",\"type\":\"fixed\",\"excludeTax\":27.75,\"includeTax\":30},\"26\":{\"31\":{\"price\":249,\"oldPrice\":249,\"priceValue\":\"249.0000\",\"type\":\"fixed\",\"excludeTax\":230.34,\"includeTax\":249},\"32\":{\"price\":259,\"oldPrice\":259,\"priceValue\":\"259.0000\",\"type\":\"fixed\",\"excludeTax\":239.59,\"includeTax\":259},\"33\":{\"price\":269,\"oldPrice\":269,\"priceValue\":\"269.0000\",\"type\":\"fixed\",\"excludeTax\":248.84,\"includeTax\":269},\"34\":{\"price\":289,\"oldPrice\":289,\"priceValue\":\"289.0000\",\"type\":\"fixed\",\"excludeTax\":267.35,\"includeTax\":289},\"35\":{\"price\":449,\"oldPrice\":449,\"priceValue\":\"449.0000\",\"type\":\"fixed\",\"excludeTax\":415.36,\"includeTax\":449}}});\n \n ","\n\nenUS = {\"m\":{\"wide\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],\"abbr\":[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]}}; \/\/ en_US locale reference\nCalendar._DN = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]; \/\/ full day names\nCalendar._SDN = [\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]; \/\/ short day names\nCalendar._FD = 1; \/\/ First day of the week. \"0\" means display Sunday first, \"1\" means display Monday first, etc.\nCalendar._MN = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]; \/\/ full month names\nCalendar._SMN = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]; \/\/ short month names\nCalendar._am = \"AM\"; \/\/ am\/pm\nCalendar._pm = \"PM\";\n\n\/\/ tooltips\nCalendar._TT = {};\nCalendar._TT[\"INFO\"] = \"About the calendar\";\n\nCalendar._TT[\"ABOUT\"] =\n\"DHTML Date\/Time Selector\\n\" +\n\"(c) dynarch.com 2002-2005 \/ Author: Mihai Bazon\\n\" +\n\"For latest version visit: http:\/\/www.dynarch.com\/projects\/calendar\/\\n\" +\n\"Distributed under GNU LGPL. See http:\/\/gnu.org\/licenses\/lgpl.html for details.\" +\n\"\\n\\n\" +\n\"Date selection:\\n\" +\n\"- Use the \\xab, \\xbb buttons to select year\\n\" +\n\"- Use the \" + String.fromCharCode(0x2039) + \", \" + String.fromCharCode(0x203a) + \" buttons to select month\\n\" +\n\"- Hold mouse button on any of the above buttons for faster selection.\";\nCalendar._TT[\"ABOUT_TIME\"] = \"\\n\\n\" +\n\"Time selection:\\n\" +\n\"- Click on any of the time parts to increase it\\n\" +\n\"- or Shift-click to decrease it\\n\" +\n\"- or click and drag for faster selection.\";\n\nCalendar._TT[\"PREV_YEAR\"] = \"Prev. year (hold for menu)\";\nCalendar._TT[\"PREV_MONTH\"] = \"Prev. month (hold for menu)\";\nCalendar._TT[\"GO_TODAY\"] = \"Go Today\";\nCalendar._TT[\"NEXT_MONTH\"] = \"Next month (hold for menu)\";\nCalendar._TT[\"NEXT_YEAR\"] = \"Next year (hold for menu)\";\nCalendar._TT[\"SEL_DATE\"] = \"Select date\";\nCalendar._TT[\"DRAG_TO_MOVE\"] = \"Drag to move\";\nCalendar._TT[\"PART_TODAY\"] = ' (' + \"Today\" + ')';\n\n\/\/ the following is to inform that \"%s\" is to be the first day of week\nCalendar._TT[\"DAY_FIRST\"] = \"Display %s first\";\n\n\/\/ This may be locale-dependent. It specifies the week-end days, as an array\n\/\/ of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1\n\/\/ means Monday, etc.\nCalendar._TT[\"WEEKEND\"] = \"0,6\";\n\nCalendar._TT[\"CLOSE\"] = \"Close\";\nCalendar._TT[\"TODAY\"] = \"Today\";\nCalendar._TT[\"TIME_PART\"] = \"(Shift-)Click or drag to change value\";\n\n\/\/ date formats\nCalendar._TT[\"DEF_DATE_FORMAT\"] = \"%e %b %Y\";\nCalendar._TT[\"TT_DATE_FORMAT\"] = \"%e %B %Y\";\n\nCalendar._TT[\"WK\"] = \"Week\";\nCalendar._TT[\"TIME\"] = \"Time:\";\n\n","decorateGeneric($$('#product-options-wrapper dl'), ['last']);","\r\n\r\n var productAddToCartForm = new VarienForm('product_addtocart_form');\r\n productAddToCartForm.submit = function(button, url) {\r\n if (this.validator.validate()) {\r\n var form = this.form;\r\n var oldUrl = form.action;\r\n\r\n if (url) {\r\n form.action = url;\r\n }\r\n var e = null;\r\n try {\r\n \t\tvar ajaxForm = $('product_addtocart_form');\r\n \t\tajaxForm.action += '?layovercart=true';\r\n \t\tjQuery.fancybox.showActivity();\r\n ajaxForm.request({\r\n onComplete: function(response) {\r\n if (response.responseText.indexOf(' li:last').replaceWith(jQuery(response.responseText));\r\n \tinitCartDrop();\r\n \tjQuery('#header ul.menu > li:last a.my-cart').trigger('mouseenter');\r\n }\r\n }\r\n });\r\n } catch (e) {\r\n }\r\n this.form.action = oldUrl;\r\n if (e) {\r\n throw e;\r\n }\r\n\r\n if (button && button != 'undefined') {\r\n button.disabled = true;\r\n }\r\n\r\n return false;\r\n }\r\n }.bind(productAddToCartForm);\r\n\r\n productAddToCartForm.submitLight = function(button, url){\r\n if(this.validator) {\r\n var nv = Validation.methods;\r\n delete Validation.methods['required-entry'];\r\n delete Validation.methods['validate-one-required'];\r\n delete Validation.methods['validate-one-required-by-name'];\r\n if (this.validator.validate()) {\r\n if (url) {\r\n this.form.action = url;\r\n }\r\n this.form.submit();\r\n }\r\n Object.extend(Validation.methods, nv);\r\n }\r\n }.bind(productAddToCartForm);\r\n\r\n"],"facebookMeta":""}
Be the first to review this product<\/a><\/p>\r\n <\/div>\r\n \r\n \r\n \r\n \r\n \r\n \r\n \n \n\n \n \n Engraving Guardian Angel Wing<\/label>\n +CHF 30.00<\/span><\/span><\/dt>\n\n \n \n Maximum number of characters: 10<\/strong><\/p>\n <\/div>\n<\/dd>\n Engraving Guardian Angel Body<\/label>\n +CHF 30.00<\/span><\/span><\/dt>\n\n \n \n Maximum number of characters: 15<\/strong><\/p>\n <\/div>\n<\/dd>\n \nNecklace<\/label><\/dt>\n\n \n -- Please Select --<\/option>Necklace in 585\/- yellow gold, 38cm +CHF 249.00<\/option>Necklace in 585\/- yellow gold, 40cm +CHF 259.00<\/option>Necklace in 585\/- yellow gold, 42cm +CHF 269.00<\/option>Necklace in 585\/- yellow gold, 45cm +CHF 289.00<\/option>Necklace in 585\/- yellow gold, 50cm +CHF 449.00<\/option><\/select> <\/div>\n<\/dd>\n <\/dl>\n\n\n <\/div>\n\n\r\n\r\n \n \t\tQuantity<\/label>\n \n \t<\/div>\n Add to Cart<\/span><\/span><\/button>\n <\/div>\r\n<\/div>\r\n\r\n <\/fieldset>\r\n <\/form>\r\n \r\n <\/div>\r\n \r\n \r\n Commonly recognised, yellow gold is by far the most popular gold colour in the world and naturally belongs to the most coveted precious metals when it comes to the fabrication of valuable jewellery. The purity of gold is historically specified in carats. 24 carats are the equivalent of pure gold or fine gold. The \u201c750\u201d number stamped in a Tarnoki guardian angel indicates that the piece of jewellery consists of 750 out of 1,000 parts by weight, or 75.0% of pure gold, which is the equivalent of 18 carats.\r\n\r\nThe \u201cSwiss Made\u201d seal of approval guarantees high-quality craftsmanship. <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n<\/div>\r\n\r\n\r\n\r\n","scripts":["\r\n var optionsPrice = new Product.OptionsPrice({\"productId\":\"15\",\"priceFormat\":{\"pattern\":\"CHF %s\",\"precision\":2,\"requiredPrecision\":2,\"decimalSymbol\":\".\",\"groupSymbol\":\",\",\"groupLength\":3,\"integerRequired\":1},\"includeTax\":\"true\",\"showIncludeTax\":true,\"showBothPrices\":false,\"productPrice\":779,\"productOldPrice\":779,\"priceInclTax\":779,\"priceExclTax\":779,\"skipCalculate\":1,\"defaultTax\":8.1,\"currentTax\":8.1,\"idSuffix\":\"_clone\",\"oldPlusDisposition\":0,\"plusDisposition\":0,\"plusDispositionTax\":0,\"oldMinusDisposition\":0,\"minusDisposition\":0,\"tierPrices\":[],\"tierPricesInclTax\":[]});\r\n","\n\nvar DateOption = Class.create({\n\n getDaysInMonth: function(month, year)\n {\n var curDate = new Date();\n if (!month) {\n month = curDate.getMonth();\n }\n if (2 == month && !year) { \/\/ leap year assumption for unknown year\n return 29;\n }\n if (!year) {\n year = curDate.getFullYear();\n }\n return 32 - new Date(year, month - 1, 32).getDate();\n },\n\n reloadMonth: function(event)\n {\n var selectEl = event.findElement();\n var idParts = selectEl.id.split(\"_\");\n if (idParts.length != 3) {\n return false;\n }\n var optionIdPrefix = idParts[0] + \"_\" + idParts[1];\n var month = parseInt($(optionIdPrefix + \"_month\").value);\n var year = parseInt($(optionIdPrefix + \"_year\").value);\n var dayEl = $(optionIdPrefix + \"_day\");\n\n var days = this.getDaysInMonth(month, year);\n\n \/\/remove days\n for (var i = dayEl.options.length - 1; i >= 0; i--) {\n if (dayEl.options[i].value > days) {\n dayEl.remove(dayEl.options[i].index);\n }\n }\n\n \/\/ add days\n var lastDay = parseInt(dayEl.options[dayEl.options.length-1].value);\n for (i = lastDay + 1; i <= days; i++) {\n this.addOption(dayEl, i, i);\n }\n },\n\n addOption: function(select, text, value)\n {\n var option = document.createElement('OPTION');\n option.value = value;\n option.text = text;\n\n if (select.options.add) {\n select.options.add(option);\n } else {\n select.appendChild(option);\n }\n }\n});\ndateOption = new DateOption();\n\n","\n \n var optionFileUpload = {\n productForm : $('product_addtocart_form'),\n formAction : '',\n formElements : {},\n upload : function(element){\n this.formElements = this.productForm.select('input', 'select', 'textarea', 'button');\n this.removeRequire(element.readAttribute('id').sub('option_', ''));\n\n template = '<\\\/iframe>';\n\n Element.insert($('option_'+element.readAttribute('id').sub('option_', '')+'_uploaded_file'), {after: template});\n\n this.formAction = this.productForm.action;\n\n var baseUrl = 'https:\/\/www.tarnoki.com\/ch_en\/catalog\/product\/upload\/';\n var urlExt = 'option_id\/'+element.readAttribute('id').sub('option_', '');\n\n this.productForm.action = parseSidUrl(baseUrl, urlExt);\n this.productForm.target = 'upload_target';\n this.productForm.submit();\n this.productForm.target = '';\n this.productForm.action = this.formAction;\n },\n removeRequire : function(skipElementId){\n for(var i=0; i<\\\/a>Remove file<\\\/a>';\n\n Element.insert($('option_'+data.optionId+'_uploaded_file'), {after: template});\n }\n },\n removeFile : function(optionId)\n {\n $('option_'+optionId+'_uploaded_file').value= '';\n $('option_'+optionId+'_file').show();\n $('option_'+optionId+'').show();\n\n $('option_'+optionId+'_file_box').remove();\n }\n }\n var optionTextCounter = {\n count : function(field,cntfield,maxlimit){\n if (field.value.length > maxlimit){\n field.value = field.value.substring(0, maxlimit);\n } else {\n cntfield.innerHTML = maxlimit - field.value.length;\n }\n }\n }\n\n Product.Options = Class.create();\n Product.Options.prototype = {\n initialize : function(config) {\n this.config = config;\n this.reloadPrice();\n document.observe(\"dom:loaded\", this.reloadPrice.bind(this));\n },\n reloadPrice : function() {\n var config = this.config;\n var skipIds = [];\n $$('body .product-custom-option').each(function(element){\n var optionId = 0;\n element.name.sub(\/[0-9]+\/, function(match){\n optionId = parseInt(match[0], 10);\n });\n if (config[optionId]) {\n var configOptions = config[optionId];\n var curConfig = {price: 0};\n if (element.type == 'checkbox' || element.type == 'radio') {\n if (element.checked) {\n if (typeof configOptions[element.getValue()] != 'undefined') {\n curConfig = configOptions[element.getValue()];\n }\n }\n } else if(element.hasClassName('datetime-picker') && !skipIds.include(optionId)) {\n dateSelected = true;\n $$('.product-custom-option[id^=\"options_' + optionId + '\"]').each(function(dt){\n if (dt.getValue() == '') {\n dateSelected = false;\n }\n });\n if (dateSelected) {\n curConfig = configOptions;\n skipIds[optionId] = optionId;\n }\n } else if(element.type == 'select-one' || element.type == 'select-multiple') {\n if ('options' in element) {\n $A(element.options).each(function(selectOption){\n if ('selected' in selectOption && selectOption.selected) {\n if (typeof(configOptions[selectOption.value]) != 'undefined') {\n curConfig = configOptions[selectOption.value];\n }\n }\n });\n }\n } else {\n if (element.getValue().strip() != '') {\n curConfig = configOptions;\n }\n }\n if(element.type == 'select-multiple' && ('options' in element)) {\n $A(element.options).each(function(selectOption) {\n if (('selected' in selectOption) && typeof(configOptions[selectOption.value]) != 'undefined') {\n if (selectOption.selected) {\n curConfig = configOptions[selectOption.value];\n } else {\n curConfig = {price: 0};\n }\n optionsPrice.addCustomPrices(optionId + '-' + selectOption.value, curConfig);\n optionsPrice.reload();\n }\n });\n } else {\n optionsPrice.addCustomPrices(element.id || optionId, curConfig);\n optionsPrice.reload();\n }\n }\n });\n }\n }\n function validateOptionsCallback(elmId, result) {\n var container = $(elmId).up('ul.options-list');\n if (result == 'failed') {\n container.removeClassName('validation-passed');\n container.addClassName('validation-failed');\n } else {\n container.removeClassName('validation-failed');\n container.addClassName('validation-passed');\n }\n }\n var opConfig = new Product.Options({\"28\":{\"price\":30,\"oldPrice\":30,\"priceValue\":\"30.0000\",\"type\":\"fixed\",\"excludeTax\":27.75,\"includeTax\":30},\"27\":{\"price\":30,\"oldPrice\":30,\"priceValue\":\"30.0000\",\"type\":\"fixed\",\"excludeTax\":27.75,\"includeTax\":30},\"26\":{\"31\":{\"price\":249,\"oldPrice\":249,\"priceValue\":\"249.0000\",\"type\":\"fixed\",\"excludeTax\":230.34,\"includeTax\":249},\"32\":{\"price\":259,\"oldPrice\":259,\"priceValue\":\"259.0000\",\"type\":\"fixed\",\"excludeTax\":239.59,\"includeTax\":259},\"33\":{\"price\":269,\"oldPrice\":269,\"priceValue\":\"269.0000\",\"type\":\"fixed\",\"excludeTax\":248.84,\"includeTax\":269},\"34\":{\"price\":289,\"oldPrice\":289,\"priceValue\":\"289.0000\",\"type\":\"fixed\",\"excludeTax\":267.35,\"includeTax\":289},\"35\":{\"price\":449,\"oldPrice\":449,\"priceValue\":\"449.0000\",\"type\":\"fixed\",\"excludeTax\":415.36,\"includeTax\":449}}});\n \n ","\n\nenUS = {\"m\":{\"wide\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],\"abbr\":[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]}}; \/\/ en_US locale reference\nCalendar._DN = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]; \/\/ full day names\nCalendar._SDN = [\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]; \/\/ short day names\nCalendar._FD = 1; \/\/ First day of the week. \"0\" means display Sunday first, \"1\" means display Monday first, etc.\nCalendar._MN = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]; \/\/ full month names\nCalendar._SMN = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]; \/\/ short month names\nCalendar._am = \"AM\"; \/\/ am\/pm\nCalendar._pm = \"PM\";\n\n\/\/ tooltips\nCalendar._TT = {};\nCalendar._TT[\"INFO\"] = \"About the calendar\";\n\nCalendar._TT[\"ABOUT\"] =\n\"DHTML Date\/Time Selector\\n\" +\n\"(c) dynarch.com 2002-2005 \/ Author: Mihai Bazon\\n\" +\n\"For latest version visit: http:\/\/www.dynarch.com\/projects\/calendar\/\\n\" +\n\"Distributed under GNU LGPL. See http:\/\/gnu.org\/licenses\/lgpl.html for details.\" +\n\"\\n\\n\" +\n\"Date selection:\\n\" +\n\"- Use the \\xab, \\xbb buttons to select year\\n\" +\n\"- Use the \" + String.fromCharCode(0x2039) + \", \" + String.fromCharCode(0x203a) + \" buttons to select month\\n\" +\n\"- Hold mouse button on any of the above buttons for faster selection.\";\nCalendar._TT[\"ABOUT_TIME\"] = \"\\n\\n\" +\n\"Time selection:\\n\" +\n\"- Click on any of the time parts to increase it\\n\" +\n\"- or Shift-click to decrease it\\n\" +\n\"- or click and drag for faster selection.\";\n\nCalendar._TT[\"PREV_YEAR\"] = \"Prev. year (hold for menu)\";\nCalendar._TT[\"PREV_MONTH\"] = \"Prev. month (hold for menu)\";\nCalendar._TT[\"GO_TODAY\"] = \"Go Today\";\nCalendar._TT[\"NEXT_MONTH\"] = \"Next month (hold for menu)\";\nCalendar._TT[\"NEXT_YEAR\"] = \"Next year (hold for menu)\";\nCalendar._TT[\"SEL_DATE\"] = \"Select date\";\nCalendar._TT[\"DRAG_TO_MOVE\"] = \"Drag to move\";\nCalendar._TT[\"PART_TODAY\"] = ' (' + \"Today\" + ')';\n\n\/\/ the following is to inform that \"%s\" is to be the first day of week\nCalendar._TT[\"DAY_FIRST\"] = \"Display %s first\";\n\n\/\/ This may be locale-dependent. It specifies the week-end days, as an array\n\/\/ of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1\n\/\/ means Monday, etc.\nCalendar._TT[\"WEEKEND\"] = \"0,6\";\n\nCalendar._TT[\"CLOSE\"] = \"Close\";\nCalendar._TT[\"TODAY\"] = \"Today\";\nCalendar._TT[\"TIME_PART\"] = \"(Shift-)Click or drag to change value\";\n\n\/\/ date formats\nCalendar._TT[\"DEF_DATE_FORMAT\"] = \"%e %b %Y\";\nCalendar._TT[\"TT_DATE_FORMAT\"] = \"%e %B %Y\";\n\nCalendar._TT[\"WK\"] = \"Week\";\nCalendar._TT[\"TIME\"] = \"Time:\";\n\n","decorateGeneric($$('#product-options-wrapper dl'), ['last']);","\r\n\r\n var productAddToCartForm = new VarienForm('product_addtocart_form');\r\n productAddToCartForm.submit = function(button, url) {\r\n if (this.validator.validate()) {\r\n var form = this.form;\r\n var oldUrl = form.action;\r\n\r\n if (url) {\r\n form.action = url;\r\n }\r\n var e = null;\r\n try {\r\n \t\tvar ajaxForm = $('product_addtocart_form');\r\n \t\tajaxForm.action += '?layovercart=true';\r\n \t\tjQuery.fancybox.showActivity();\r\n ajaxForm.request({\r\n onComplete: function(response) {\r\n if (response.responseText.indexOf(' li:last').replaceWith(jQuery(response.responseText));\r\n \tinitCartDrop();\r\n \tjQuery('#header ul.menu > li:last a.my-cart').trigger('mouseenter');\r\n }\r\n }\r\n });\r\n } catch (e) {\r\n }\r\n this.form.action = oldUrl;\r\n if (e) {\r\n throw e;\r\n }\r\n\r\n if (button && button != 'undefined') {\r\n button.disabled = true;\r\n }\r\n\r\n return false;\r\n }\r\n }.bind(productAddToCartForm);\r\n\r\n productAddToCartForm.submitLight = function(button, url){\r\n if(this.validator) {\r\n var nv = Validation.methods;\r\n delete Validation.methods['required-entry'];\r\n delete Validation.methods['validate-one-required'];\r\n delete Validation.methods['validate-one-required-by-name'];\r\n if (this.validator.validate()) {\r\n if (url) {\r\n this.form.action = url;\r\n }\r\n this.form.submit();\r\n }\r\n Object.extend(Validation.methods, nv);\r\n }\r\n }.bind(productAddToCartForm);\r\n\r\n"],"facebookMeta":""}
Maximum number of characters: 10<\/strong><\/p>\n <\/div>\n<\/dd>\n Engraving Guardian Angel Body<\/label>\n +CHF 30.00<\/span><\/span><\/dt>\n\n \n \n Maximum number of characters: 15<\/strong><\/p>\n <\/div>\n<\/dd>\n \nNecklace<\/label><\/dt>\n\n \n -- Please Select --<\/option>Necklace in 585\/- yellow gold, 38cm +CHF 249.00<\/option>Necklace in 585\/- yellow gold, 40cm +CHF 259.00<\/option>Necklace in 585\/- yellow gold, 42cm +CHF 269.00<\/option>Necklace in 585\/- yellow gold, 45cm +CHF 289.00<\/option>Necklace in 585\/- yellow gold, 50cm +CHF 449.00<\/option><\/select> <\/div>\n<\/dd>\n <\/dl>\n\n\n <\/div>\n\n\r\n\r\n \n \t\tQuantity<\/label>\n \n \t<\/div>\n Add to Cart<\/span><\/span><\/button>\n <\/div>\r\n<\/div>\r\n\r\n <\/fieldset>\r\n <\/form>\r\n \r\n <\/div>\r\n \r\n \r\n Commonly recognised, yellow gold is by far the most popular gold colour in the world and naturally belongs to the most coveted precious metals when it comes to the fabrication of valuable jewellery. The purity of gold is historically specified in carats. 24 carats are the equivalent of pure gold or fine gold. The \u201c750\u201d number stamped in a Tarnoki guardian angel indicates that the piece of jewellery consists of 750 out of 1,000 parts by weight, or 75.0% of pure gold, which is the equivalent of 18 carats.\r\n\r\nThe \u201cSwiss Made\u201d seal of approval guarantees high-quality craftsmanship. <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n<\/div>\r\n\r\n\r\n\r\n","scripts":["\r\n var optionsPrice = new Product.OptionsPrice({\"productId\":\"15\",\"priceFormat\":{\"pattern\":\"CHF %s\",\"precision\":2,\"requiredPrecision\":2,\"decimalSymbol\":\".\",\"groupSymbol\":\",\",\"groupLength\":3,\"integerRequired\":1},\"includeTax\":\"true\",\"showIncludeTax\":true,\"showBothPrices\":false,\"productPrice\":779,\"productOldPrice\":779,\"priceInclTax\":779,\"priceExclTax\":779,\"skipCalculate\":1,\"defaultTax\":8.1,\"currentTax\":8.1,\"idSuffix\":\"_clone\",\"oldPlusDisposition\":0,\"plusDisposition\":0,\"plusDispositionTax\":0,\"oldMinusDisposition\":0,\"minusDisposition\":0,\"tierPrices\":[],\"tierPricesInclTax\":[]});\r\n","\n\nvar DateOption = Class.create({\n\n getDaysInMonth: function(month, year)\n {\n var curDate = new Date();\n if (!month) {\n month = curDate.getMonth();\n }\n if (2 == month && !year) { \/\/ leap year assumption for unknown year\n return 29;\n }\n if (!year) {\n year = curDate.getFullYear();\n }\n return 32 - new Date(year, month - 1, 32).getDate();\n },\n\n reloadMonth: function(event)\n {\n var selectEl = event.findElement();\n var idParts = selectEl.id.split(\"_\");\n if (idParts.length != 3) {\n return false;\n }\n var optionIdPrefix = idParts[0] + \"_\" + idParts[1];\n var month = parseInt($(optionIdPrefix + \"_month\").value);\n var year = parseInt($(optionIdPrefix + \"_year\").value);\n var dayEl = $(optionIdPrefix + \"_day\");\n\n var days = this.getDaysInMonth(month, year);\n\n \/\/remove days\n for (var i = dayEl.options.length - 1; i >= 0; i--) {\n if (dayEl.options[i].value > days) {\n dayEl.remove(dayEl.options[i].index);\n }\n }\n\n \/\/ add days\n var lastDay = parseInt(dayEl.options[dayEl.options.length-1].value);\n for (i = lastDay + 1; i <= days; i++) {\n this.addOption(dayEl, i, i);\n }\n },\n\n addOption: function(select, text, value)\n {\n var option = document.createElement('OPTION');\n option.value = value;\n option.text = text;\n\n if (select.options.add) {\n select.options.add(option);\n } else {\n select.appendChild(option);\n }\n }\n});\ndateOption = new DateOption();\n\n","\n \n var optionFileUpload = {\n productForm : $('product_addtocart_form'),\n formAction : '',\n formElements : {},\n upload : function(element){\n this.formElements = this.productForm.select('input', 'select', 'textarea', 'button');\n this.removeRequire(element.readAttribute('id').sub('option_', ''));\n\n template = '<\\\/iframe>';\n\n Element.insert($('option_'+element.readAttribute('id').sub('option_', '')+'_uploaded_file'), {after: template});\n\n this.formAction = this.productForm.action;\n\n var baseUrl = 'https:\/\/www.tarnoki.com\/ch_en\/catalog\/product\/upload\/';\n var urlExt = 'option_id\/'+element.readAttribute('id').sub('option_', '');\n\n this.productForm.action = parseSidUrl(baseUrl, urlExt);\n this.productForm.target = 'upload_target';\n this.productForm.submit();\n this.productForm.target = '';\n this.productForm.action = this.formAction;\n },\n removeRequire : function(skipElementId){\n for(var i=0; i<\\\/a>Remove file<\\\/a>';\n\n Element.insert($('option_'+data.optionId+'_uploaded_file'), {after: template});\n }\n },\n removeFile : function(optionId)\n {\n $('option_'+optionId+'_uploaded_file').value= '';\n $('option_'+optionId+'_file').show();\n $('option_'+optionId+'').show();\n\n $('option_'+optionId+'_file_box').remove();\n }\n }\n var optionTextCounter = {\n count : function(field,cntfield,maxlimit){\n if (field.value.length > maxlimit){\n field.value = field.value.substring(0, maxlimit);\n } else {\n cntfield.innerHTML = maxlimit - field.value.length;\n }\n }\n }\n\n Product.Options = Class.create();\n Product.Options.prototype = {\n initialize : function(config) {\n this.config = config;\n this.reloadPrice();\n document.observe(\"dom:loaded\", this.reloadPrice.bind(this));\n },\n reloadPrice : function() {\n var config = this.config;\n var skipIds = [];\n $$('body .product-custom-option').each(function(element){\n var optionId = 0;\n element.name.sub(\/[0-9]+\/, function(match){\n optionId = parseInt(match[0], 10);\n });\n if (config[optionId]) {\n var configOptions = config[optionId];\n var curConfig = {price: 0};\n if (element.type == 'checkbox' || element.type == 'radio') {\n if (element.checked) {\n if (typeof configOptions[element.getValue()] != 'undefined') {\n curConfig = configOptions[element.getValue()];\n }\n }\n } else if(element.hasClassName('datetime-picker') && !skipIds.include(optionId)) {\n dateSelected = true;\n $$('.product-custom-option[id^=\"options_' + optionId + '\"]').each(function(dt){\n if (dt.getValue() == '') {\n dateSelected = false;\n }\n });\n if (dateSelected) {\n curConfig = configOptions;\n skipIds[optionId] = optionId;\n }\n } else if(element.type == 'select-one' || element.type == 'select-multiple') {\n if ('options' in element) {\n $A(element.options).each(function(selectOption){\n if ('selected' in selectOption && selectOption.selected) {\n if (typeof(configOptions[selectOption.value]) != 'undefined') {\n curConfig = configOptions[selectOption.value];\n }\n }\n });\n }\n } else {\n if (element.getValue().strip() != '') {\n curConfig = configOptions;\n }\n }\n if(element.type == 'select-multiple' && ('options' in element)) {\n $A(element.options).each(function(selectOption) {\n if (('selected' in selectOption) && typeof(configOptions[selectOption.value]) != 'undefined') {\n if (selectOption.selected) {\n curConfig = configOptions[selectOption.value];\n } else {\n curConfig = {price: 0};\n }\n optionsPrice.addCustomPrices(optionId + '-' + selectOption.value, curConfig);\n optionsPrice.reload();\n }\n });\n } else {\n optionsPrice.addCustomPrices(element.id || optionId, curConfig);\n optionsPrice.reload();\n }\n }\n });\n }\n }\n function validateOptionsCallback(elmId, result) {\n var container = $(elmId).up('ul.options-list');\n if (result == 'failed') {\n container.removeClassName('validation-passed');\n container.addClassName('validation-failed');\n } else {\n container.removeClassName('validation-failed');\n container.addClassName('validation-passed');\n }\n }\n var opConfig = new Product.Options({\"28\":{\"price\":30,\"oldPrice\":30,\"priceValue\":\"30.0000\",\"type\":\"fixed\",\"excludeTax\":27.75,\"includeTax\":30},\"27\":{\"price\":30,\"oldPrice\":30,\"priceValue\":\"30.0000\",\"type\":\"fixed\",\"excludeTax\":27.75,\"includeTax\":30},\"26\":{\"31\":{\"price\":249,\"oldPrice\":249,\"priceValue\":\"249.0000\",\"type\":\"fixed\",\"excludeTax\":230.34,\"includeTax\":249},\"32\":{\"price\":259,\"oldPrice\":259,\"priceValue\":\"259.0000\",\"type\":\"fixed\",\"excludeTax\":239.59,\"includeTax\":259},\"33\":{\"price\":269,\"oldPrice\":269,\"priceValue\":\"269.0000\",\"type\":\"fixed\",\"excludeTax\":248.84,\"includeTax\":269},\"34\":{\"price\":289,\"oldPrice\":289,\"priceValue\":\"289.0000\",\"type\":\"fixed\",\"excludeTax\":267.35,\"includeTax\":289},\"35\":{\"price\":449,\"oldPrice\":449,\"priceValue\":\"449.0000\",\"type\":\"fixed\",\"excludeTax\":415.36,\"includeTax\":449}}});\n \n ","\n\nenUS = {\"m\":{\"wide\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],\"abbr\":[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]}}; \/\/ en_US locale reference\nCalendar._DN = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]; \/\/ full day names\nCalendar._SDN = [\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]; \/\/ short day names\nCalendar._FD = 1; \/\/ First day of the week. \"0\" means display Sunday first, \"1\" means display Monday first, etc.\nCalendar._MN = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]; \/\/ full month names\nCalendar._SMN = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]; \/\/ short month names\nCalendar._am = \"AM\"; \/\/ am\/pm\nCalendar._pm = \"PM\";\n\n\/\/ tooltips\nCalendar._TT = {};\nCalendar._TT[\"INFO\"] = \"About the calendar\";\n\nCalendar._TT[\"ABOUT\"] =\n\"DHTML Date\/Time Selector\\n\" +\n\"(c) dynarch.com 2002-2005 \/ Author: Mihai Bazon\\n\" +\n\"For latest version visit: http:\/\/www.dynarch.com\/projects\/calendar\/\\n\" +\n\"Distributed under GNU LGPL. See http:\/\/gnu.org\/licenses\/lgpl.html for details.\" +\n\"\\n\\n\" +\n\"Date selection:\\n\" +\n\"- Use the \\xab, \\xbb buttons to select year\\n\" +\n\"- Use the \" + String.fromCharCode(0x2039) + \", \" + String.fromCharCode(0x203a) + \" buttons to select month\\n\" +\n\"- Hold mouse button on any of the above buttons for faster selection.\";\nCalendar._TT[\"ABOUT_TIME\"] = \"\\n\\n\" +\n\"Time selection:\\n\" +\n\"- Click on any of the time parts to increase it\\n\" +\n\"- or Shift-click to decrease it\\n\" +\n\"- or click and drag for faster selection.\";\n\nCalendar._TT[\"PREV_YEAR\"] = \"Prev. year (hold for menu)\";\nCalendar._TT[\"PREV_MONTH\"] = \"Prev. month (hold for menu)\";\nCalendar._TT[\"GO_TODAY\"] = \"Go Today\";\nCalendar._TT[\"NEXT_MONTH\"] = \"Next month (hold for menu)\";\nCalendar._TT[\"NEXT_YEAR\"] = \"Next year (hold for menu)\";\nCalendar._TT[\"SEL_DATE\"] = \"Select date\";\nCalendar._TT[\"DRAG_TO_MOVE\"] = \"Drag to move\";\nCalendar._TT[\"PART_TODAY\"] = ' (' + \"Today\" + ')';\n\n\/\/ the following is to inform that \"%s\" is to be the first day of week\nCalendar._TT[\"DAY_FIRST\"] = \"Display %s first\";\n\n\/\/ This may be locale-dependent. It specifies the week-end days, as an array\n\/\/ of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1\n\/\/ means Monday, etc.\nCalendar._TT[\"WEEKEND\"] = \"0,6\";\n\nCalendar._TT[\"CLOSE\"] = \"Close\";\nCalendar._TT[\"TODAY\"] = \"Today\";\nCalendar._TT[\"TIME_PART\"] = \"(Shift-)Click or drag to change value\";\n\n\/\/ date formats\nCalendar._TT[\"DEF_DATE_FORMAT\"] = \"%e %b %Y\";\nCalendar._TT[\"TT_DATE_FORMAT\"] = \"%e %B %Y\";\n\nCalendar._TT[\"WK\"] = \"Week\";\nCalendar._TT[\"TIME\"] = \"Time:\";\n\n","decorateGeneric($$('#product-options-wrapper dl'), ['last']);","\r\n\r\n var productAddToCartForm = new VarienForm('product_addtocart_form');\r\n productAddToCartForm.submit = function(button, url) {\r\n if (this.validator.validate()) {\r\n var form = this.form;\r\n var oldUrl = form.action;\r\n\r\n if (url) {\r\n form.action = url;\r\n }\r\n var e = null;\r\n try {\r\n \t\tvar ajaxForm = $('product_addtocart_form');\r\n \t\tajaxForm.action += '?layovercart=true';\r\n \t\tjQuery.fancybox.showActivity();\r\n ajaxForm.request({\r\n onComplete: function(response) {\r\n if (response.responseText.indexOf(' li:last').replaceWith(jQuery(response.responseText));\r\n \tinitCartDrop();\r\n \tjQuery('#header ul.menu > li:last a.my-cart').trigger('mouseenter');\r\n }\r\n }\r\n });\r\n } catch (e) {\r\n }\r\n this.form.action = oldUrl;\r\n if (e) {\r\n throw e;\r\n }\r\n\r\n if (button && button != 'undefined') {\r\n button.disabled = true;\r\n }\r\n\r\n return false;\r\n }\r\n }.bind(productAddToCartForm);\r\n\r\n productAddToCartForm.submitLight = function(button, url){\r\n if(this.validator) {\r\n var nv = Validation.methods;\r\n delete Validation.methods['required-entry'];\r\n delete Validation.methods['validate-one-required'];\r\n delete Validation.methods['validate-one-required-by-name'];\r\n if (this.validator.validate()) {\r\n if (url) {\r\n this.form.action = url;\r\n }\r\n this.form.submit();\r\n }\r\n Object.extend(Validation.methods, nv);\r\n }\r\n }.bind(productAddToCartForm);\r\n\r\n"],"facebookMeta":""}
Maximum number of characters: 15<\/strong><\/p>\n <\/div>\n<\/dd>\n \nNecklace<\/label><\/dt>\n\n \n -- Please Select --<\/option>Necklace in 585\/- yellow gold, 38cm +CHF 249.00<\/option>Necklace in 585\/- yellow gold, 40cm +CHF 259.00<\/option>Necklace in 585\/- yellow gold, 42cm +CHF 269.00<\/option>Necklace in 585\/- yellow gold, 45cm +CHF 289.00<\/option>Necklace in 585\/- yellow gold, 50cm +CHF 449.00<\/option><\/select> <\/div>\n<\/dd>\n <\/dl>\n\n\n <\/div>\n\n\r\n\r\n \n \t\tQuantity<\/label>\n \n \t<\/div>\n Add to Cart<\/span><\/span><\/button>\n <\/div>\r\n<\/div>\r\n\r\n <\/fieldset>\r\n <\/form>\r\n \r\n <\/div>\r\n \r\n \r\n Commonly recognised, yellow gold is by far the most popular gold colour in the world and naturally belongs to the most coveted precious metals when it comes to the fabrication of valuable jewellery. The purity of gold is historically specified in carats. 24 carats are the equivalent of pure gold or fine gold. The \u201c750\u201d number stamped in a Tarnoki guardian angel indicates that the piece of jewellery consists of 750 out of 1,000 parts by weight, or 75.0% of pure gold, which is the equivalent of 18 carats.\r\n\r\nThe \u201cSwiss Made\u201d seal of approval guarantees high-quality craftsmanship. <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n <\/div>\r\n<\/div>\r\n\r\n\r\n\r\n","scripts":["\r\n var optionsPrice = new Product.OptionsPrice({\"productId\":\"15\",\"priceFormat\":{\"pattern\":\"CHF %s\",\"precision\":2,\"requiredPrecision\":2,\"decimalSymbol\":\".\",\"groupSymbol\":\",\",\"groupLength\":3,\"integerRequired\":1},\"includeTax\":\"true\",\"showIncludeTax\":true,\"showBothPrices\":false,\"productPrice\":779,\"productOldPrice\":779,\"priceInclTax\":779,\"priceExclTax\":779,\"skipCalculate\":1,\"defaultTax\":8.1,\"currentTax\":8.1,\"idSuffix\":\"_clone\",\"oldPlusDisposition\":0,\"plusDisposition\":0,\"plusDispositionTax\":0,\"oldMinusDisposition\":0,\"minusDisposition\":0,\"tierPrices\":[],\"tierPricesInclTax\":[]});\r\n","\n\nvar DateOption = Class.create({\n\n getDaysInMonth: function(month, year)\n {\n var curDate = new Date();\n if (!month) {\n month = curDate.getMonth();\n }\n if (2 == month && !year) { \/\/ leap year assumption for unknown year\n return 29;\n }\n if (!year) {\n year = curDate.getFullYear();\n }\n return 32 - new Date(year, month - 1, 32).getDate();\n },\n\n reloadMonth: function(event)\n {\n var selectEl = event.findElement();\n var idParts = selectEl.id.split(\"_\");\n if (idParts.length != 3) {\n return false;\n }\n var optionIdPrefix = idParts[0] + \"_\" + idParts[1];\n var month = parseInt($(optionIdPrefix + \"_month\").value);\n var year = parseInt($(optionIdPrefix + \"_year\").value);\n var dayEl = $(optionIdPrefix + \"_day\");\n\n var days = this.getDaysInMonth(month, year);\n\n \/\/remove days\n for (var i = dayEl.options.length - 1; i >= 0; i--) {\n if (dayEl.options[i].value > days) {\n dayEl.remove(dayEl.options[i].index);\n }\n }\n\n \/\/ add days\n var lastDay = parseInt(dayEl.options[dayEl.options.length-1].value);\n for (i = lastDay + 1; i <= days; i++) {\n this.addOption(dayEl, i, i);\n }\n },\n\n addOption: function(select, text, value)\n {\n var option = document.createElement('OPTION');\n option.value = value;\n option.text = text;\n\n if (select.options.add) {\n select.options.add(option);\n } else {\n select.appendChild(option);\n }\n }\n});\ndateOption = new DateOption();\n\n","\n \n var optionFileUpload = {\n productForm : $('product_addtocart_form'),\n formAction : '',\n formElements : {},\n upload : function(element){\n this.formElements = this.productForm.select('input', 'select', 'textarea', 'button');\n this.removeRequire(element.readAttribute('id').sub('option_', ''));\n\n template = '<\\\/iframe>';\n\n Element.insert($('option_'+element.readAttribute('id').sub('option_', '')+'_uploaded_file'), {after: template});\n\n this.formAction = this.productForm.action;\n\n var baseUrl = 'https:\/\/www.tarnoki.com\/ch_en\/catalog\/product\/upload\/';\n var urlExt = 'option_id\/'+element.readAttribute('id').sub('option_', '');\n\n this.productForm.action = parseSidUrl(baseUrl, urlExt);\n this.productForm.target = 'upload_target';\n this.productForm.submit();\n this.productForm.target = '';\n this.productForm.action = this.formAction;\n },\n removeRequire : function(skipElementId){\n for(var i=0; i<\\\/a>Remove file<\\\/a>';\n\n Element.insert($('option_'+data.optionId+'_uploaded_file'), {after: template});\n }\n },\n removeFile : function(optionId)\n {\n $('option_'+optionId+'_uploaded_file').value= '';\n $('option_'+optionId+'_file').show();\n $('option_'+optionId+'').show();\n\n $('option_'+optionId+'_file_box').remove();\n }\n }\n var optionTextCounter = {\n count : function(field,cntfield,maxlimit){\n if (field.value.length > maxlimit){\n field.value = field.value.substring(0, maxlimit);\n } else {\n cntfield.innerHTML = maxlimit - field.value.length;\n }\n }\n }\n\n Product.Options = Class.create();\n Product.Options.prototype = {\n initialize : function(config) {\n this.config = config;\n this.reloadPrice();\n document.observe(\"dom:loaded\", this.reloadPrice.bind(this));\n },\n reloadPrice : function() {\n var config = this.config;\n var skipIds = [];\n $$('body .product-custom-option').each(function(element){\n var optionId = 0;\n element.name.sub(\/[0-9]+\/, function(match){\n optionId = parseInt(match[0], 10);\n });\n if (config[optionId]) {\n var configOptions = config[optionId];\n var curConfig = {price: 0};\n if (element.type == 'checkbox' || element.type == 'radio') {\n if (element.checked) {\n if (typeof configOptions[element.getValue()] != 'undefined') {\n curConfig = configOptions[element.getValue()];\n }\n }\n } else if(element.hasClassName('datetime-picker') && !skipIds.include(optionId)) {\n dateSelected = true;\n $$('.product-custom-option[id^=\"options_' + optionId + '\"]').each(function(dt){\n if (dt.getValue() == '') {\n dateSelected = false;\n }\n });\n if (dateSelected) {\n curConfig = configOptions;\n skipIds[optionId] = optionId;\n }\n } else if(element.type == 'select-one' || element.type == 'select-multiple') {\n if ('options' in element) {\n $A(element.options).each(function(selectOption){\n if ('selected' in selectOption && selectOption.selected) {\n if (typeof(configOptions[selectOption.value]) != 'undefined') {\n curConfig = configOptions[selectOption.value];\n }\n }\n });\n }\n } else {\n if (element.getValue().strip() != '') {\n curConfig = configOptions;\n }\n }\n if(element.type == 'select-multiple' && ('options' in element)) {\n $A(element.options).each(function(selectOption) {\n if (('selected' in selectOption) && typeof(configOptions[selectOption.value]) != 'undefined') {\n if (selectOption.selected) {\n curConfig = configOptions[selectOption.value];\n } else {\n curConfig = {price: 0};\n }\n optionsPrice.addCustomPrices(optionId + '-' + selectOption.value, curConfig);\n optionsPrice.reload();\n }\n });\n } else {\n optionsPrice.addCustomPrices(element.id || optionId, curConfig);\n optionsPrice.reload();\n }\n }\n });\n }\n }\n function validateOptionsCallback(elmId, result) {\n var container = $(elmId).up('ul.options-list');\n if (result == 'failed') {\n container.removeClassName('validation-passed');\n container.addClassName('validation-failed');\n } else {\n container.removeClassName('validation-failed');\n container.addClassName('validation-passed');\n }\n }\n var opConfig = new Product.Options({\"28\":{\"price\":30,\"oldPrice\":30,\"priceValue\":\"30.0000\",\"type\":\"fixed\",\"excludeTax\":27.75,\"includeTax\":30},\"27\":{\"price\":30,\"oldPrice\":30,\"priceValue\":\"30.0000\",\"type\":\"fixed\",\"excludeTax\":27.75,\"includeTax\":30},\"26\":{\"31\":{\"price\":249,\"oldPrice\":249,\"priceValue\":\"249.0000\",\"type\":\"fixed\",\"excludeTax\":230.34,\"includeTax\":249},\"32\":{\"price\":259,\"oldPrice\":259,\"priceValue\":\"259.0000\",\"type\":\"fixed\",\"excludeTax\":239.59,\"includeTax\":259},\"33\":{\"price\":269,\"oldPrice\":269,\"priceValue\":\"269.0000\",\"type\":\"fixed\",\"excludeTax\":248.84,\"includeTax\":269},\"34\":{\"price\":289,\"oldPrice\":289,\"priceValue\":\"289.0000\",\"type\":\"fixed\",\"excludeTax\":267.35,\"includeTax\":289},\"35\":{\"price\":449,\"oldPrice\":449,\"priceValue\":\"449.0000\",\"type\":\"fixed\",\"excludeTax\":415.36,\"includeTax\":449}}});\n \n ","\n\nenUS = {\"m\":{\"wide\":[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],\"abbr\":[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]}}; \/\/ en_US locale reference\nCalendar._DN = [\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"]; \/\/ full day names\nCalendar._SDN = [\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"]; \/\/ short day names\nCalendar._FD = 1; \/\/ First day of the week. \"0\" means display Sunday first, \"1\" means display Monday first, etc.\nCalendar._MN = [\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"]; \/\/ full month names\nCalendar._SMN = [\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"]; \/\/ short month names\nCalendar._am = \"AM\"; \/\/ am\/pm\nCalendar._pm = \"PM\";\n\n\/\/ tooltips\nCalendar._TT = {};\nCalendar._TT[\"INFO\"] = \"About the calendar\";\n\nCalendar._TT[\"ABOUT\"] =\n\"DHTML Date\/Time Selector\\n\" +\n\"(c) dynarch.com 2002-2005 \/ Author: Mihai Bazon\\n\" +\n\"For latest version visit: http:\/\/www.dynarch.com\/projects\/calendar\/\\n\" +\n\"Distributed under GNU LGPL. See http:\/\/gnu.org\/licenses\/lgpl.html for details.\" +\n\"\\n\\n\" +\n\"Date selection:\\n\" +\n\"- Use the \\xab, \\xbb buttons to select year\\n\" +\n\"- Use the \" + String.fromCharCode(0x2039) + \", \" + String.fromCharCode(0x203a) + \" buttons to select month\\n\" +\n\"- Hold mouse button on any of the above buttons for faster selection.\";\nCalendar._TT[\"ABOUT_TIME\"] = \"\\n\\n\" +\n\"Time selection:\\n\" +\n\"- Click on any of the time parts to increase it\\n\" +\n\"- or Shift-click to decrease it\\n\" +\n\"- or click and drag for faster selection.\";\n\nCalendar._TT[\"PREV_YEAR\"] = \"Prev. year (hold for menu)\";\nCalendar._TT[\"PREV_MONTH\"] = \"Prev. month (hold for menu)\";\nCalendar._TT[\"GO_TODAY\"] = \"Go Today\";\nCalendar._TT[\"NEXT_MONTH\"] = \"Next month (hold for menu)\";\nCalendar._TT[\"NEXT_YEAR\"] = \"Next year (hold for menu)\";\nCalendar._TT[\"SEL_DATE\"] = \"Select date\";\nCalendar._TT[\"DRAG_TO_MOVE\"] = \"Drag to move\";\nCalendar._TT[\"PART_TODAY\"] = ' (' + \"Today\" + ')';\n\n\/\/ the following is to inform that \"%s\" is to be the first day of week\nCalendar._TT[\"DAY_FIRST\"] = \"Display %s first\";\n\n\/\/ This may be locale-dependent. It specifies the week-end days, as an array\n\/\/ of comma-separated numbers. The numbers are from 0 to 6: 0 means Sunday, 1\n\/\/ means Monday, etc.\nCalendar._TT[\"WEEKEND\"] = \"0,6\";\n\nCalendar._TT[\"CLOSE\"] = \"Close\";\nCalendar._TT[\"TODAY\"] = \"Today\";\nCalendar._TT[\"TIME_PART\"] = \"(Shift-)Click or drag to change value\";\n\n\/\/ date formats\nCalendar._TT[\"DEF_DATE_FORMAT\"] = \"%e %b %Y\";\nCalendar._TT[\"TT_DATE_FORMAT\"] = \"%e %B %Y\";\n\nCalendar._TT[\"WK\"] = \"Week\";\nCalendar._TT[\"TIME\"] = \"Time:\";\n\n","decorateGeneric($$('#product-options-wrapper dl'), ['last']);","\r\n\r\n var productAddToCartForm = new VarienForm('product_addtocart_form');\r\n productAddToCartForm.submit = function(button, url) {\r\n if (this.validator.validate()) {\r\n var form = this.form;\r\n var oldUrl = form.action;\r\n\r\n if (url) {\r\n form.action = url;\r\n }\r\n var e = null;\r\n try {\r\n \t\tvar ajaxForm = $('product_addtocart_form');\r\n \t\tajaxForm.action += '?layovercart=true';\r\n \t\tjQuery.fancybox.showActivity();\r\n ajaxForm.request({\r\n onComplete: function(response) {\r\n if (response.responseText.indexOf(' li:last').replaceWith(jQuery(response.responseText));\r\n \tinitCartDrop();\r\n \tjQuery('#header ul.menu > li:last a.my-cart').trigger('mouseenter');\r\n }\r\n }\r\n });\r\n } catch (e) {\r\n }\r\n this.form.action = oldUrl;\r\n if (e) {\r\n throw e;\r\n }\r\n\r\n if (button && button != 'undefined') {\r\n button.disabled = true;\r\n }\r\n\r\n return false;\r\n }\r\n }.bind(productAddToCartForm);\r\n\r\n productAddToCartForm.submitLight = function(button, url){\r\n if(this.validator) {\r\n var nv = Validation.methods;\r\n delete Validation.methods['required-entry'];\r\n delete Validation.methods['validate-one-required'];\r\n delete Validation.methods['validate-one-required-by-name'];\r\n if (this.validator.validate()) {\r\n if (url) {\r\n this.form.action = url;\r\n }\r\n this.form.submit();\r\n }\r\n Object.extend(Validation.methods, nv);\r\n }\r\n }.bind(productAddToCartForm);\r\n\r\n"],"facebookMeta":""}