var isGecko = navigator.userAgent.indexOf('Gecko') != -1; var hasChanges = false; function setHasChanges(changed) { hasChanges = changed; if($('changesmade')) $('changesmade').style.display = hasChanges ? "block" : "none"; } function hideshowaddress(checked) { if(checked) { $('regularaddressform').show(); $('deliveryheader').show(); $('adressheader').show(); } else { $('regularaddressform').hide(); $('deliveryheader').hide(); $('adressheader').hide(); } } /** webshop specific **/ function setShippingTypesEnabled(id, checkbox) { document.getElementById('shippingTypesRow_' + id).style.display = checkbox.checked ? "block" : "none"; } function setPaymentMethodEnabled(id, checkbox) { document.getElementById('paymentMethodRow_' + id).style.display = checkbox.checked ? "block" : "none"; } function createPayerPaymentWindow(url) { var win = window.open(url,"payer_paymentwindow","status=1,toolbar=0,width=720,height=650"); } function checkConfirmationForm(form, warning) { if(form.termsandconditions && !form.termsandconditions.checked && !form.canceled) { alert(warning); form.termsandconditions.focus(); return(false); } return(true); } /** basket specific **/ var selectBoxData = new Array(); function updateProduct(o, form, productid) { if(o.value == -1) return; var price = o.getAttribute("price"); var compprice = o.getAttribute("compprice"); var compprice_o = o.getAttribute("compprice_o"); var artnr = o.getAttribute("artnr"); var button = $(form.getAttribute("button")); var data = null; for(var i = 0; i < selectBoxData.length; i++) { if(selectBoxData[i].productId == productid) data = selectBoxData[i]; } var product = locateProduct(data, o.value); var parent = locateProduct(data, product.parentId); var root = locateProduct(data, productid); var image = $('productImage_' + productid); var productImageFull = $('productImageFull_' + productid); if(product && productImageFull && product.image && product.thumb && image) { image.width = image.width; image.src = product.thumb; productImageFull.href = product.image; } else if(parent && productImageFull && parent.image && parent.thumb && image) { productImageFull.href = parent.image; image.width = image.width; image.src= parent.thumb; } else if(root && productImageFull && root.image && root.thumb && image) { productImageFull.href = root.image; image.width = image.width; image.src= root.thumb; } if(o.getAttribute("enabled")) { if(o.getAttribute("enabled") == "false") { button.hide(); return; } } button.show(); if($('artnrHeader_' + productid)) $('artnrHeader_' + productid).innerHTML = artnr + " "; if($('priceHeader_' + productid)) { if(compprice_o > 0) { $('priceHeader_' + productid).innerHTML = '' + price + ' ' + compprice + ""; } else { $('priceHeader_' + productid).innerHTML = price + " "; } } else if($('priceHeader')) { if(compprice_o > 0) { $('priceHeader').innerHTML = '' + price + ' ' + compprice + ""; } else { $('priceHeader').innerHTML = '' + price + " "; } } } function buildRadios(productId, myProductId, firstRun, style) { if(myProductId == -1) return; var data = null; for(var i = 0; i < selectBoxData.length; i++) { if(selectBoxData[i].productId == productId) data = selectBoxData[i]; } if(data != null) { var div = $('selectBoxes_' + data.productId); if(!div) return; div.innerHTML = ""; var optionsToCheck = new Array(); var parentItem = locateProduct(data, myProductId); var variations = data.variations; while(variations.length > 0) { var nextVariations = new Array(); var secondDiv = $(document.createElement("DIV")); div.insert(secondDiv); secondDiv.setStyle( { paddingBottom : '10px', float : 'left', width : '150px' }); if(variations[0].header) { secondDiv.appendChild(document.createTextNode(variations[0].header + ": ")); } var hasFirstAvailableChecked = false; var lastOption = null; for(var i = 0; i < variations.length; i++) { var v = variations[i]; var label = $(document.createElement("LABEL")); var option = $(document.createElement("INPUT")); option.type = "radio"; label.insert(document.createElement("br")); label.insert(option); label.appendChild(document.createTextNode(" " + v.name + (v.displayStock ? (" " + v.inStockLabel) : "") + (v.differentPrices && v.variations.length == 0 ? (" - " + v.price + " " + v.currency) : ""))); label.setStyle({ marginRight : '10px' }); option.value = v.productId; option.setAttribute("numChildren", v.variations.length); option.setAttribute("price", v.price); option.setAttribute("artnr", v.artNr); option.disabled = v.disabled == 1 ? true : false; option.setAttribute("name", v.variations.length > 0 ? ("radio_" + myProductId) : "productId"); if(firstRun && !hasFirstAvailableChecked && v.disabled != 1) { hasFirstAvailableChecked = true; optionsToCheck.push(option); } if(locateProduct(v, myProductId)) { if(!firstRun) optionsToCheck.push(option); nextVariations = v.variations; } secondDiv.insert(label); option.onclick = function() { multiUpdate(productId, this.value, false, style); } lastOption = option; } variations = nextVariations; if(variations.length == 0 && lastOption) { updateProduct(lastOption, lastOption.form, productId); } } for(var i = 0; i < optionsToCheck.length; i++) { optionsToCheck[i].setAttribute('checked', true); optionsToCheck[i].setAttribute('selected', true); } } } function buildSelectBoxes(productId, myProductId, firstRun, style) { if(myProductId == -1) return; var data = null; for(var i = 0; i < selectBoxData.length; i++) { if(selectBoxData[i].productId == productId) data = selectBoxData[i]; } if(data != null) { var div = $('selectBoxes_' + data.productId); if(!div) return; div.innerHTML = ""; var parentItem = locateProduct(data, myProductId); var variations = data.variations; while(variations.length > 0) { var selectBox = document.createElement("SELECT"); selectBox.style.marginRight = "5px"; var nextVariations = new Array(); if(variations[0].header) { var option = document.createElement("OPTION"); option.innerHTML = "-- " + variations[0].header; option.value = "-1"; selectBox.appendChild(option); } var secondDiv = document.createElement("DIV"); secondDiv.className = "variant"; secondDiv.appendChild(selectBox); div.appendChild(secondDiv); for(var i = 0; i < variations.length; i++) { var v = variations[i]; var option = document.createElement("OPTION"); option.innerHTML = v.name + (v.displayStock ? (" " + v.inStockLabel) : "") + ((v.differentPrices && v.variations.length == 0) || (v.compprice_o > 0 && v.compprice != v.price && v.variations.length == 0) ? (" - " + v.price + " " + v.currency) : ""); if(v.compprice_o > 0 && v.compprice != v.price) { option.innerHTML = option.innerHTML + (v.variations.length == 0 ? ' (ord. pris ' + v.compprice + ' ' + v.currency + ')' : ''); } option.value = v.productId; option.setAttribute("numChildren", v.variations.length); option.setAttribute("price", v.price); option.setAttribute("compprice", v.compprice); option.setAttribute("compprice_o", v.compprice_o); option.setAttribute("artnr", v.artNr); option.disabled = v.disabled == 1 ? true: false; if(locateProduct(v, myProductId)) { option.selected = firstRun ? "" : "SELECTED"; if(!firstRun) updateProduct(option, selectBox.form, productId); nextVariations = v.variations; } selectBox.appendChild(option); } selectBox.onchange = function() { multiUpdate(productId, this[this.selectedIndex].value, false, style); } variations = nextVariations; if(variations.length == 0) { selectBox.name = "productId"; updateProduct(selectBox[selectBox.selectedIndex], selectBox.form, productId); } } } } function multiUpdate(productId, myProductId, firstRun, style) { if(style == 'radios') buildRadios(productId, myProductId, firstRun, style); else buildSelectBoxes(productId, myProductId, firstRun, style); } function locateProduct(data, productId) { if(data.productId == productId) return(data); if(data.variations) { for(var i=0; i < data.variations.length; i++) { var v = data.variations[i]; if(v.productId == productId) return(v); var nextLevelSearch = locateProduct(v, productId); if(nextLevelSearch) return(nextLevelSearch); } } return(null); } function bbhover(hover, button) { button.className = hover?"buybuttonh":"buybutton"; } var basketFadeTimer = 0; var basketFadeCounter = 10; function postBuyForm(buyForm) { var onProductAddedFunction = null; onProductAddedFunction = function(r) { try { var obj = eval('(' + r.responseText + ')'); if(form.productid.getAttribute("empty") == "empty") form.productid.removeChild(form.productid.options[0]); var exists = null; var selIndex = 0; var children = $(form.productid).childElements(); for(var i=0;i0) form.productid.insertBefore(option,children[0]); else form.productid.appendChild(option); form.productid.selectedIndex = 0; } else if(exists != null) { exists.innerHTML = obj.name + " " + obj.price + " " + obj.currency; exists.setAttribute("count",obj.count); form.productid.selectedIndex = selIndex; } form.countinput.disabled = true; form.countinput.disabled = false; form.countinput.value = obj.count; document.getElementById("sumspan").innerHTML = obj.total; document.getElementById("currencyspan").innerHTML = obj.currency; form.productid.removeAttribute("empty"); } catch(e) { alert(e); } if(getCookie("showbasketinfo") != "no") { var langId = getCookie("tl_language"); var infotext_url = "basket_infotext"; var close_text = "Visa inte detta igen"; if(langId != '' && langId != 1) { infotext_url = "basket_infotext_en"; close_text = "Do not show this again"; } if(basketInfo==null) { basketInfo = document.createElement("div"); basketInfo.id = "basketinfo"; basketInfo.style.opacity = "0.0"; basketInfo.innerHTML = '
' + close_text + ''; $('loginwrap').appendChild(basketInfo); } basketInfo.style.display = "block"; basketInfo.style.opacity = "0.0"; new Effect.Fade($(basketInfo), { from: 0.0, to: 1.0, duration: 0.5 }); } } var form = document.getElementById("basketform"); var isBasketLeft = false; if(!form) { var list = document.getElementById("basketlist"); if(!list) return(true); onProductAddedFunction = function(r) { try { var data = $('basketcontents'); var height = $('basketcontents').getHeight(); var imgMargin = parseInt(height / 2) - 15; data.innerHTML = '
'; new Ajax.Request(r.responseText, { onSuccess : function(rr) { var div = document.createElement("div"); div.innerHTML = rr.responseText; var divs = div.getElementsByTagName("div"); for(var i = 0; i < divs.length; i++) { if(divs[i].id == "basketcontents") { data.innerHTML = divs[i].innerHTML; basketFadeCounter = 50; basketFadeTimer = setInterval(function() { if(basketFadeCounter < 1) { $('loginlinks').style.backgroundColor = ""; clearInterval(basketFadeTimer); } else { $('loginlinks').style.backgroundColor = "#" + (0).toString(16) + (0 + basketFadeCounter).toString(16) + (0).toString(16) + (0 + basketFadeCounter).toString(16) + (0).toString(16) + (0 + basketFadeCounter).toString(16); basketFadeCounter--; } }, 25); break; } } } }); } catch(e) { alert(e); } } isBasketLeft = true; } var selectBoxes = buyForm.getElementsByTagName("select"); for(var i = 0; i < selectBoxes.length; i++) { var sb = selectBoxes[i]; if(sb[sb.selectedIndex].value == -1) { alert(sb[sb.selectedIndex].text); return(false); } } var throbber = document.createElement('img'); throbber.className = 'throbber'; throbber.style.width = '16px'; throbber.style.height = '16px'; throbber.style.marginLeft = '5px'; throbber.src='/images/ajax-loader-snake.gif'; buyFormDiv = $("div" + buyForm.getAttribute("button")); if(buyFormDiv) buyFormDiv.appendChild(throbber); else buyForm.appendChild(throbber); var formData = (isBasketLeft ? "&basketLeft=1": "") + "&ajaxRequest=1&" + Form.serialize(buyForm); new Ajax.Request(buyForm.getAttribute("action"), { postBody : formData, onSuccess : function(r) { throbber.src = '/images/webshop/shoppingcart_add.png'; new Effect.Fade($(throbber), { from: 1.0, to: 0.0, duration: 2 }); try { onProductAddedFunction(r); } catch(e) { alert(e); } } , onFailure : function(r) { alert(r.responseText); } }); return false; } var basketInfo = null; function removeBasketInfo() { setBasketInfoCookie(false); if(basketInfo) { new Effect.Fade($(basketInfo), { from: 1.0, to: 0.0, duration: 0.5 }); } } function closeBasketInfo() { if(basketInfo) { new Effect.Fade($(basketInfo), { from: 1.0, to: 0.0, duration: 0.5 }); } } function setBasketInfoCookie(reset) { var expires = new Date(); expires.setFullYear(new Date().getFullYear() + 1); if(reset) setCookie("showbasketinfo", "yes", expires, "/"); else setCookie("showbasketinfo","no", expires, "/"); } function setCountInput(option) { var productId = option.value; var count = option.getAttribute("count"); document.getElementById("countinput").value = count; } function updateProductCount(form) { var productId = form.productid.value; var count = form.countinput.value; new Ajax.Request("/ebutik/basket.php?setproductcount=1&productId=" + productId + "&count=" + count, { onSuccess : function(r) { try { var obj = eval('(' + r.responseText + ')'); if(count==0) { form.productid.removeChild(form.productid.options[form.productid.selectedIndex]); if(form.productid.options.length>0) { form.countinput.value = form.productid.options[form.productid.selectedIndex].getAttribute("count"); form.countinput.disabled = false; } else { var option = document.createElement("option"); option.appendChild(document.createTextNode("-- Din kundvagn är tom")); form.productid.appendChild(option); form.countinput.disabled = true; form.productid.setAttribute("empty","empty"); } document.getElementById("sumspan").innerHTML = obj.total; document.getElementById("currencyspan").innerHTML = obj.currency; } else { form.productid[form.productid.selectedIndex].text = obj.name + " " + obj.price + " " + obj.currency; form.productid[form.productid.selectedIndex].setAttribute("count", count); document.getElementById("sumspan").innerHTML = obj.total; document.getElementById("currencyspan").innerHTML = obj.currency; } } catch(e) { alert(e); } } , onFailure : function(r) { alert(r.responseText); } }); } function showbasketsub(id) { var obj = document.getElementById(id); obj.style.display = obj.style.display=='block'?'none':'block'; setCookie(id, obj.style.display); } function checkCountInputForEnter(val) { if(!event) var event = window.event; if(event) { if(event.keyCode==13) updateProductCount(val); } } var companyErrorStr = "Företagsnamn saknas!"; var firstnameErrorStr = "Förnamn saknas!"; var lastnameErrorStr = "Efternamn saknas!"; var adressErrorStr = "Adress saknas!"; var zipErrorStr = "Postnr saknas!"; var cityErrorStr = "Stad saknas!"; var countryErrorStr = "Land saknas!"; /** product specific **/ function setDeliveryAsBilling(checkbox, form) { if(form.companyname && form.companyname.value == "") { alert(companyErrorStr); form.companyname.focus(); checkbox.checked = false; return; } if(form.firstname.value == "") { alert(firstnameErrorStr); form.firstname.focus(); checkbox.checked = false; return; } if(form.lastname.value == "") { alert(lastnameErrorStr); form.lastname.focus(); checkbox.checked = false; return; } if(form.adress1.value == "") { alert(adressErrorStr); form.adress1.focus(); checkbox.checked = false; return; } if(form.zip.value == "") { alert(zipErrorStr); form.zip.focus(); checkbox.checked = false; return; } if(form.city.value == "") { alert(cityErrorStr); form.city.focus(); checkbox.checked = false; return; } if(form.country.selectedIndex == 0) { alert(countryErrorStr); form.country.focus(); checkbox.checked = false; return; } if(form.deliverycompanyname) { if(checkbox.checked) form.deliverycompanyname.orgValue = form.deliverycompanyname.value; form.deliverycompanyname.value = checkbox.checked ? form.companyname.value : (form.deliverycompanyname.orgValue ? form.deliverycompanyname.orgValue : form.deliverycompanyname.value); } if(form.deliveryunit) { if(checkbox.checked) form.deliveryunit.orgValue = form.deliveryunit.value; form.deliveryunit.value = checkbox.checked ? form.unit.value : (form.deliveryunit.orgValue ? form.deliveryunit.orgValue : form.deliveryunit.value); } if(checkbox.checked) form.deliveryfirstname.orgValue = form.deliveryfirstname.value; form.deliveryfirstname.value = checkbox.checked ? form.firstname.value : (form.deliveryfirstname.orgValue ? form.deliveryfirstname.orgValue : form.deliveryfirstname.value); if(checkbox.checked) form.deliverylastname.orgValue = form.deliverylastname.value; form.deliverylastname.value = checkbox.checked ? form.lastname.value : (form.deliverylastname.orgValue ? form.deliverylastname.orgValue : form.deliverylastname.value); if(checkbox.checked) form.deliverycoadress.orgValue = form.deliverycoadress.value; form.deliverycoadress.value = checkbox.checked ? form.coadress.value : (form.deliverycoadress.orgValue ? form.deliverycoadress.orgValue : form.deliverycoadress.value); if(checkbox.checked) form.deliveryadress.orgValue = form.deliveryadress.value; form.deliveryadress.value = checkbox.checked ? form.adress1.value : (form.deliveryadress.orgValue ? form.deliveryadress.orgValue : form.deliveryadress.value); if(checkbox.checked) form.deliveryadress2.orgValue = form.deliveryadress2.value; form.deliveryadress2.value = checkbox.checked ? form.adress2.value : (form.deliveryadress2.orgValue ? form.deliveryadress2.orgValue : form.deliveryadress2.value); if(checkbox.checked) form.deliveryzip.orgValue = form.deliveryzip.value; form.deliveryzip.value = checkbox.checked ? form.zip.value : (form.deliveryzip.orgValue ? form.deliveryzip.orgValue : form.deliveryzip.value); if(checkbox.checked) form.deliverycity.orgValue = form.deliverycity.value; form.deliverycity.value = checkbox.checked ? form.city.value : (form.deliverycity.orgValue ? form.deliverycity.orgValue : form.deliverycity.value); if(form.deliverycountry) { if(checkbox.checked) form.deliverycountry.selectedIndexOrgValue = form.deliverycountry.selectedIndex; form.deliverycountry.selectedIndex = checkbox.checked ? form.country.selectedIndex : (form.deliverycountry.selectedIndexOrgValue ? form.deliverycountry.selectedIndexOrgValue : form.deliverycountry.selectedIndex); } if(form.deliverystate) { if(checkbox.checked) form.deliverystate.selectedIndexOrgValue = form.deliverystate.selectedIndex; form.deliverystate.selectedIndex = checkbox.checked ? form.state.selectedIndex : (form.deliverystate.selectedIndexOrgValue ? form.deliverystate.selectedIndexOrgValue : form.deliverystate.selectedIndex); } if(form.deliverycompanyname) form.deliverycompanyname.disabled = checkbox.checked; if(form.deliveryunit) form.deliveryunit.disabled = checkbox.checked; form.deliveryfirstname.disabled = checkbox.checked; form.deliverylastname.disabled = checkbox.checked; form.deliverycoadress.disabled = checkbox.checked; form.deliveryadress.disabled = checkbox.checked; form.deliveryadress2.disabled = checkbox.checked; form.deliveryzip.disabled = checkbox.checked; form.deliverycity.disabled = checkbox.checked; if(form.deliverycountry) form.deliverycountry.disabled = checkbox.checked; if(form.deliverystate) form.deliverystate.disabled = checkbox.checked; } function moveProductUp(row) { var prev = $(row).previous(); if(prev) prev.insertAdjacentElement("beforebegin", row); } function moveProductDown(row) { var next = $(row).next(); if(next) next.insertAdjacentElement("afterend", row); } function moveCategoryChildrenUp(row) { var table = $('productlist'); var rows = table.getElementsByTagName("tr"); var rowsToMove = new Array(); for(var i=rows.length - 1; i >= 0; i--) { if(rows[i].getAttribute("parentNodeId") == row.getAttribute("nodeId")) { rowsToMove.push(rows[i]); } } for(var i=0; i < rowsToMove.length; i++) { row.insertAdjacentElement('afterend', rowsToMove[i]); } for(var i=0; i < rowsToMove.length; i++) { moveCategoryChildrenUp(rowsToMove[i]); } } function moveCategoryUp(row) { var parentId = row.getAttribute("parentNodeId"); var nodeId = row.getAttribute("nodeId"); var table = $('productlist'); if(parentId == "") { var prev = row.previous(); while(prev) { if(prev.getAttribute("parentNodeId") == parentId) { prev.insertAdjacentElement("beforebegin", row); // move children moveCategoryChildrenUp(row); break; } prev = prev.previous(); } } else { var prev = row.previous(); while(prev) { if(prev.getAttribute("parentNodeId") == row.getAttribute("parentNodeId")) { prev.insertAdjacentElement("beforebegin", row); // move children moveCategoryChildrenUp(row); break; } prev = prev.previous(); } } } function moveCategoryDown(row) { var parentId = row.getAttribute("parentNodeId"); var nodeId = row.getAttribute("nodeId"); var table = $('productlist'); if(parentId == "") { var next = row.next(); while(next) { if(next.getAttribute("parentNodeId") == parentId) { moveCategoryUp(next); break; } next = next.next(); } } else { var next = row.next(); while(next) { if(next.getAttribute("parentNodeId") == row.getAttribute("parentNodeId")) { moveCategoryUp(next); break; } next = next.next(); } } } function openhelp(section) { if(section) { $('help_' + section).style.display = ($('help_' + section).style.display=="block")?"none":"block"; } else { var divs = $$('div.tabpage'); if(divs.length == 0) $('help_basic').style.display = ($('help_basic').style.display=="block")?"none":"block"; else for(var i=0;i").replace(/\<\!\-\-id\-\-\>/g,myId); holder.innerHTML = templateData; var dummy = holder.getElementsByTagName("TR").item(0); table.getElementsByTagName("TBODY").item(0).appendChild(dummy); setFile($('ginput[' + myId + ']'), $('gallery[' + myId + ']'), true, $('gallery_' + myId)); return false; } } , '.addFile' : function(el) { el.onclick = function(e) { //attrCount++; var table = $('galleryFiles'); var myId = "newDocument_" + table.rows.length; var template = $('documentTemplate'); var holder = document.createElement('div'); var templateData = template.innerHTML.replace(/\<\;/g,"<").replace(/\>\;/g,">").replace(/\<\!\-\-id\-\-\>/g,myId); holder.innerHTML = templateData; var dummy = holder.getElementsByTagName("TR").item(0); table.getElementsByTagName("TBODY").item(0).appendChild(dummy); setFile($('finput[' + myId + ']'), $('file[' + myId + ']')); return false; } } }; function addVariation(table,template,copyfrom) { for(var i=0;i1) { var checked = false; for(var i=0;idaysInMonth)?"datepickdayd":"datepickday"; if(link.date.getDate()==today.getDate() && link.date.getMonth()==today.getMonth() && link.date.getFullYear()==today.getFullYear()) link.className = link.className = " today"; td.appendChild(link); dc++; } tr = table.insertRow(-1); td = tr.insertCell(-1); td.className = "datepickfoot"; var link = document.createElement("a"); link.appendChild(document.createTextNode("<")); link.href = "javascript:void(0)"; link.datePicker = this; link.className = "datepickprev"; link.onclick = function() { this.datePicker.startDate.setMonth(this.datePicker.startDate.getMonth()-1); this.datePicker.Render(); } td.appendChild(link); td = tr.insertCell(-1); td.className = "datepickfoot"; td.colSpan = 6; td.appendChild(document.createTextNode(this.months[this.startDate.getMonth()] + " - " + this.startDate.getFullYear())); td = tr.insertCell(-1); td.className = "datepickfoot"; var link = document.createElement("a"); link.href = "javascript:void(0)"; link.datePicker = this; link.className = "datepicknext"; link.onclick = function() { this.datePicker.startDate.setMonth(this.datePicker.startDate.getMonth()+1); this.datePicker.Render(); } link.appendChild(document.createTextNode(">")); td.appendChild(link); } , handleCallback : function() { this.datePicker.callback(this.date,false); } , handleWeekCallback : function() { this.datePicker.callback(this.date,true); } , Close : function() { document.body.removeChild(this.div); } } function PickProductDate(event,form,field,weekonly) { var element = event.srcElement; if(!element) element = event.target; var x = findPosX(element); var y = findPosY(element); var datePick = new DatePicker(); datePick.Show(x,y, function(date,weekSelect) { if(field && weekSelect && weekonly) { var startDate = new Date(date); form[field].value = startDate.getWeek(); } else if(field) { var startDate = new Date(date); var startDateStr = startDate.getFullYear() + "-" + (startDate.getMonth()<9?"0":"") + (startDate.getMonth()+1) + "-" + (startDate.getDate()<10?"0":"") + startDate.getDate(); form[field].value = startDateStr; try { form[field + 'Dummy'].value = startDateStr; } catch(e) { } } datePick.Close(); }); //var startdate = DatePicker.Pick(); } function enableDate(f1, f2, f3, checked) { $('postform')[f1].disabled = !checked; $('postform')[f2].disabled = !checked; $('postform')[f3].disabled = !checked; } var lid = 1; var currentIngressLanguage = lid; var currentDescriptionLanguage = lid; var currentListDescriptionLanguage = lid; var currentNameLanguage = lid; var currentHTMLLanguage = lid; var currentPIndexLanguage = lid; var currentIntroLanguage = lid; var currentOutroLanguage = lid; var currentTIndexLanguage = lid; var currentShippingInfoLanguage = lid; var currentUrlLanguage = lid; var currentPUrlLanguage = lid; var currentMetaDescLanguage = lid; var currentMetaTitleLanguage = lid; function getLocaleData(productId, languageId, what, link) { var url = "/modules/products/admin/editProduct.php?getlocaledata=1&productId=" + productId + "&languageId=" + languageId + "&what=" + what; link = $(link); var links = link.parentNode.getElementsByTagName("A"); for(var i=0;i 1) { form.country.onkeydown = function() { $(this).removeClassName("markred"); } form.country.onclick = function() { $(this).removeClassName("markred"); } $(form.country).addClassName("markred"); } else if(form.country.value == "") { form.country.onkeydown = function() { $(this).removeClassName("markred"); } form.country.onclick = function() { $(this).removeClassName("markred"); } $(form.country).addClassName("markred"); } } /*if(form.phone && form.phone.value=="") { form.phone.onkeydown = function() { $(this).removeClassName("markred"); } $(form.phone).addClassName("markred"); }*/ if(form.email && form.email.value=="") { form.email.onkeydown = function() { $(this).removeClassName("markred"); } $(form.email).addClassName("markred"); } var errorStr = ""; if(form.firstname && form.firstname.value=="") { //$('firstnameerror').show(); if(errorStr == "") form.firstname.focus(); errorStr = errorStr + firstnameErrorStr + "\n"; } if(form.lastname && form.lastname.value=="") { if(errorStr == "") form.lastname.focus(); errorStr = errorStr + lastnameErrorStr + "\n"; } if(form.adress1 && form.adress1.value=="") { if(errorStr == "") form.adress1.focus(); errorStr = errorStr + addressErrorStr + "\n"; } if(form.zip && form.zip.value=="") { if(errorStr == "") form.zip.focus(); errorStr = errorStr + zipErrorStr + "\n"; } if(form.city && form.city.value=="") { if(errorStr == "") form.city.focus(); errorStr = errorStr + cityErrorStr + "\n"; } if(form.country) { if(form.options && form.country[form.country.selectedIndex].value == "" && form.country.options.length > 1) { if(errorStr == "") form.country.focus(); errorStr = errorStr + countryErrorStr + "\n"; } else if(form.country.value == "") { if(errorStr == "") form.country.focus(); errorStr = errorStr + countryErrorStr + "\n"; } } if(form.state && form.state.value == "" && form.state.length > 1) { if(errorStr == "") form.email.focus(); errorStr = errorStr + stateErrorStr + "\n"; } if(form.phone && form.phone.value=="") { if(errorStr == "") form.phone.focus(); errorStr = errorStr + phoneErrorStr + "\n"; } /*if(form.phone && form.phone.value=="") { if(errorStr == "") form.phone.focus(); errorStr = errorStr + phoneErrorStr + "\n"; }*/ if(form.email && form.email.value=="") { if(errorStr == "") form.email.focus(); errorStr = errorStr + emailErrorStr + "\n"; } if(errorStr != "") { alert(errorStr); return(false); } else return(true); } function showKlarnaInformation(type, eid, charge) { var left = screen.width / 2 - 320; var top = screen.height / 2 - 244; if(!eid) eid = 2; if(!charge) charge = 0; if(type == "account") { window.open('https://online.klarna.com/account_se.yaws?eid=' + eid, 'klarna_account_info', 'resizable=yes,scrollbars=yes,height=480,width=640,left=' + left + ',top=' + top, false); } else if(type == "invoice") { window.open('https://online.klarna.com/villkor.yaws?eid=' + eid + '&charge=' + charge, 'klarna_account_info', 'resizable=yes,scrollbars=yes,height=480,width=640,left=' + left + ',top=' + top, false); } else { window.open(type, 'klarna_account_info', 'resizable=yes,scrollbars=yes,height=480,width=640,left=' + left + ',top=' + top, false); } } function checkCheckoutFormKlarna(form) { var hasErrors = false; var doFocus = true; for(var i = 0; i < form.elements.length; i++) { var elm = $(form.elements[i]); if(elm.hasClassName('required') && !elm.disabled) { if(elm.value == "") { if(doFocus) elm.focus(); doFocus = false; elm.setStyle({background:'#FFC4C2', border: '1px solid #EA0600'}); hasErrors = true; } else { elm.setStyle({background:'', border: ''}); } } } return(!hasErrors); } var flashShippingPricesTimer = 0; function updateShippingPrices(countryCode) { new Ajax.Request("/modules/webshop/checkout.php?getshippingmethods=true&countryCode=" + countryCode, { onSuccess : function(r) { var json = r.responseText.evalJSON(); for(var j=0;j 0) { flashShippingPricesTimer = setTimeout(flashShippingPrices, 30); } } } function showCurrencySelector(e) { $('currencyselector').toggle(); //o.style.display = "block"; } function showOverlay() { var objBody = document.getElementsByTagName("body").item(0); var objOverlay = document.getElementById("overlay") ? document.getElementById("overlay") : document.createElement("div"); objOverlay.setAttribute('id','overlay'); objOverlay.style.display = 'block'; objOverlay.style.position = "absolute"; objOverlay.style.top = "0px"; objOverlay.style.left = "0px"; objOverlay.style.zIndex = 10000; objBody.appendChild(objOverlay); var size = document.viewport.getDimensions(); var scroll = document.viewport.getScrollOffsets(); objOverlay.style.width = (size.width + scroll.left) + "px"; objOverlay.style.height = (size.height + scroll.top) + "px"; } function addVariationParam(table) { var header = $('variationGuideParamHeader'); var values = $('variationGuideParamValues'); var th = document.createElement("th"); var input = document.createElement("input"); input.type = "text"; input.name = "paramname[]"; input.value = "Parameternamn"; th.appendChild(input); var td = document.createElement("td"); td.appendChild(document.createTextNode(" ")); td.vAlign = "top"; values.appendChild(td); td = document.createElement("td"); td.vAlign = "top"; td.appendChild(document.createTextNode(" ")); values.appendChild(td); var th2 = document.createElement("th"); var link = document.createElement("a"); link.href = "javascript:void(0)"; link.th = th2; link.table = table; link.onclick = function() { addVarationValue(this.th, this.table); } var img = document.createElement("img"); img.src = "/images/icons/page_add.gif"; img.border = 0; link.appendChild(img); th2.appendChild(link); variationGuideParamHeader.appendChild(th); variationGuideParamHeader.appendChild(th2); } function addVarationValue(th, table) { var cellIndex = th.cellIndex - 1; var input = document.createElement("input"); input.name = "value_" + cellIndex + "[]"; var txtNode = document.createTextNode(" "); var br = document.createElement("br"); table.rows[1].cells[cellIndex].appendChild(input); table.rows[1].cells[cellIndex].appendChild(br); } function selectProductIndex(value) { if(value == 1) { $('productIndexTypeOne').style.display = 'block'; $('productIndexTypeTwo').style.display = 'none'; $('productIndexTypeThree').style.display = 'none'; } else if(value == 2) { $('productIndexTypeOne').style.display = 'none'; $('productIndexTypeTwo').style.display = 'block'; $('productIndexTypeThree').style.display = 'none'; } else if(value == 3) { $('productIndexTypeOne').style.display = 'none'; $('productIndexTypeTwo').style.display = 'none'; $('productIndexTypeThree').style.display = 'block'; } } function findProduct(keyword) { new Ajax.Request("/modules/products/admin/settings/?find=" + keyword, { onSuccess : function(r) { var products = r.responseText.evalJSON(); var table = $('searchresult'); table.style.display = "block"; for(var i = table.rows.length - 1; i > 0; i--) { table.deleteRow(i); } for(var i = 0; i < products.length; i++) { var tr = $('searchresult').insertRow(-1); var td = tr.insertCell(-1); td.noWrap = true; var node = document.createTextNode(products[i][1]); td.appendChild(node); td = tr.insertCell(-1); td.noWrap = true; var node = document.createTextNode(products[i][2]); td.appendChild(node); td.width = "100%"; td = tr.insertCell(-1); td.noWrap = true; node = document.createElement("a"); node.href = "javascript:featureProduct(" + products[i][0] + ")"; node.appendChild(document.createTextNode("L?gg till")); td.appendChild(node); } } }); } function featureProduct(productId) { new Ajax.Request("/modules/products/admin/settings/?feature=" + productId, { onSuccess : function(r) { var product = r.responseText.evalJSON(); var table = $('featuredproducts'); if(!$('featured_' + productId)) { var tr = table.insertRow(-1); tr.id = "featured_" + productId; var td0 = tr.insertCell(-1); var td1 = tr.insertCell(-1); var td2 = tr.insertCell(-1); var td3 = tr.insertCell(-1); var moveup = document.createElement("a"); moveup.className = "moveup"; moveup.onclick = function() { moveProductUp($(this.parentNode.parentNode)); } moveup.href = "javascript:void(0)"; var movedown = document.createElement("a"); movedown.className = "movedown"; movedown.onclick = function() { moveProductDown($(this.parentNode.parentNode)); } movedown.href = "javascript:void(0)"; td0.appendChild(moveup); td0.appendChild(movedown); td1.appendChild(document.createTextNode(product[1])); td1.noWrap = true; td2.appendChild(document.createTextNode(product[2])); td2.noWrap = true; var node = document.createElement("a"); node.href = "javascript:unfeatureProduct(" + product[0] + ")"; node.appendChild(document.createTextNode("Ta bort")); td3.appendChild(node); td3.noWrap = true; } else { alert("Produkten finns redan i listan!"); } } }); } function unfeatureProduct(productId, link) { if(!confirm('Är du säker på att du vill ta bort denna produkt från produktindex?')) return; new Ajax.Request("/modules/products/admin/settings/?unfeature=" + productId, { onSuccess : function(r) { if(r.responseText == "ok") { var node = $('featured_' + productId); var table = $('featuredproducts'); node.parentNode.removeChild(node); } } }); } function clearSearch() { var table = $('searchresult'); for(var i = table.rows.length - 1; i > 0; i--) { table.deleteRow(i); } var tr = table.insertRow(-1); var td = tr.insertCell(-1); var em = document.createElement("em"); em.appendChild(document.createTextNode("inget sökresultat, sök m.h.a rutan ovanför")); td.appendChild(em); table.width = "100%"; } function markAllProducts(elm, checkbox, filter) { elm.select('input').each(function(e, i) { if(e == checkbox) return; if(filter) { if(e.name.indexOf(filter) == -1) return; } e.checked = checkbox.checked; }); } function markAllOrders(elm, checkbox) { elm.select('input').each(function(e, i) { if(e == checkbox || !e.name.match(/orderId/)) return; e.checked = checkbox.checked; }); } function acCompleteOrNot() { return(acIndex == -1); } var acTimeout = 0; var acDiv = null; var acIndex = -1; var acDone = false; function productsearchAC(event, field) { event = event || window.event; if(event.keyCode == 40 || event.keyCode == 38 || event.keyCode == 13) { if(acDiv) { if(!acDone) return; var acDivs = acDiv.childElements('.searchresultdiv'); if(event.keyCode == 40) acIndex += (acIndex + 1) >= acDivs.length ? 0 : 1; else if(event.keyCode == 38) acIndex -= acIndex < 1 ? 0 : 1; for(var i = 0; i < acDivs.length; i++) { acDivs[i].removeClassName('searchresultdivselected'); } if(event.keyCode == 13) document.location.href = acDivs[acIndex].childElements('a')[0].href; else acDivs[acIndex].addClassName('searchresultdivselected'); event.cancelBubble = true; return(false); } } clearTimeout(acTimeout); acTimeout = setTimeout(function() { if(document.activeElement != field) { if(acDiv) acDiv.hide(); return; } var s = $(field).getDimensions(); var sc = $(field).cumulativeScrollOffset(); var p = $(field).viewportOffset(); acDiv = !acDiv ? $(document.createElement("DIV")) : acDiv; acDiv.className = "searchbox"; acDiv.setStyle( { position : 'absolute', left : (p.left) + 'px', top : (p.top + s.height + sc.top) + 'px' }); acDiv.show(); acDiv.innerHTML = "
"; acDiv.onclick = function(e) { e = e || window.event; e.cancelBubble = true; } $(document.body).onclick = function(e) { acDiv.hide(); } acDiv.onmousemove = function() { acIndex = -1; var acDivs = acDiv.childElements('.searchresultdiv'); for(var i = 0; i < acDivs.length; i++) { acDivs[i].removeClassName('searchresultdivselected'); } } $(document.body).insert(acDiv); acDone = false; new Ajax.Request("/produkter/?sKeyword=" + escape(field.value) + "&ajaxsearch=true", { onSuccess : function(r) { acIndex = -1; acDone = true; acDiv.innerHTML = r.responseText; } }); }, 750); } function getAdress_payer(pnum, form, agentid, challenge) { new Ajax.Request("/ebutik/getAddress_payer.php?orgnr=" + pnum.value, { onSuccess : function(r) { var obj = r.responseText.evalJSON(); if(obj.consumer.status == -8) { alert('Fel, kunde inte hämta adressen. Felaktigt personnr.'); return; } try { form.firstname.value = obj.consumer.firstname; form.lastname.value = obj.consumer.lastname; if(form.pnum) form.pnum.value = pnum.value; form.adress1.value = obj.consumer.address; form.zip.value = obj.consumer.zipcode; form.city.value = obj.consumer.city; } catch(e) { alert(e); } } , onFailure : function(r) { alert('Kunde inte hämta adressen: ' + r.responseText); } }); } function getAdress(pnum, form) { new Ajax.Request("/ebutik/klarna.php?getAdress=" + pnum.value, { onSuccess : function(r) { var obj = r.responseText.evalJSON(); if(obj.isError) { alert(obj.message); } else { try { if(obj.isCompany && form.company) { form.company.value = obj.companyname; var klarnaorgnr = document.getElementById('klarnaorgnr'); if(klarnaorgnr) klarnaorgnr.style.display = ""; } form.firstname.value = obj.firstname; form.lastname.value = obj.lastname; if(form.pnum) form.pnum.value = pnum.value; if(form.coadress) form.coadress.value = obj.co; form.adress1.value = obj.adress1; form.zip.value = obj.zip; form.city.value = obj.city; if(form.country) form.country.value = obj.countrycode; form.city.value = obj.city; if(form.phone && (obj.phone != "" && obj.cellphone != "")) form.phone.value = obj.phone != "" ? obj.phone : obj.cellphone; } catch(e) { alert(e); } } } , onFailure : function(r) { alert('Kunde inte hämta adressen: ' + r.responseText); } }); } function setupPayment(paymentName, subtype) { if(paymentName == null) { var table = $('paymenttable'); if(table) { var paymentOptions = table.getElementsByTagName('input'); for(var i = 0; i < paymentOptions.length; i++) { if(paymentOptions[i].checked) paymentName = paymentOptions[i].getAttribute("pmtype"); if(paymentOptions[i].checked) subtype = paymentOptions[i].getAttribute("subtype"); } } } var adressForm = $('addressform'); var options = adressForm.getElementsByTagName('input'); for(var i = 0; i < options.length; i++) { if(options[i].name == "klarnapnumbtn" || options[i].name == "payerpnumbtn") continue; if(options[i].name == "klarnapnum") { options[i].disabled = (paymentName != "klarna"); continue; } if(options[i].name == "payerpnum") { options[i].disabled = (paymentName != "payer"); continue; } if(options[i].name == "email") continue; if(options[i].name == "phone") continue; if(options[i].name == "cellphone") continue; if(options[i].name == "discount") continue; options[i].disabled = (paymentName == "klarna"); options[i].disabled = (paymentName == "payer" && (subtype == "invoice" || subtype == "partpayment"|| subtype == "wywallet")); } var options = adressForm.getElementsByTagName('select'); for(var i = 0; i < options.length; i++) { options[i].disabled = (paymentName == "klarna" && options[i].name != "klarnapnum"); options[i].disabled = (paymentName == "payer" && options[i].name != "payerpnum"); } if(paymentName == "klarna") $('klarnaadress').show(); else if($('klarnaadress')) $('klarnaadress').hide(); if(paymentName == "payer") $('payeradress').show(); else if($('payeradress')) $('payeradress').hide(); } function checkCheckoutForm(form) { var hasErrors = false; var doFocus = true; for(var i = 0; i < form.elements.length; i++) { var elm = $(form.elements[i]); if(elm.hasClassName('required') && !elm.disabled) { if(elm.value == "") { if(doFocus) elm.focus(); doFocus = false; elm.setStyle({background:'#FFC4C2', border: '1px solid #EA0600'}); hasErrors = true; } else { elm.setStyle({background:'', border: ''}); } } } return(!hasErrors); } function showKlarnaInformation(type, eid, charge) { var left = screen.width / 2 - 320; var top = screen.height / 2 - 244; if(!eid) eid = 2; if(!charge) charge = 0; if(type == "account") { window.open('https://online.klarna.com/account_se.yaws?eid=' + eid, 'klarna_account_info', 'resizable=yes,scrollbars=yes,height=480,width=640,left=' + left + ',top=' + top, false); } else if(type == "invoice") { window.open('https://online.klarna.com/villkor.yaws?eid=' + eid + '&charge=' + charge, 'klarna_account_info', 'resizable=yes,scrollbars=yes,height=480,width=640,left=' + left + ',top=' + top, false); } else { window.open(type, 'klarna_account_info', 'resizable=yes,scrollbars=yes,height=480,width=640,left=' + left + ',top=' + top, false); } } function calcPrice(form) { var value = parseFloat(form.price.value.replace(",", ".")); var exVat = value * (1.0 / (1.0 + parseFloat(currentVat / 100.0))); currentPriceField.value = (exVat.toFixed(3) + "").replace(".", ","); hidePriceCalc(); } function hidePriceCalc() { calcDiv.hide(); } Behaviour.addLoadEvent(function() { Behaviour.apply(productrules); });