var isGecko = navigator.userAgent.indexOf('Gecko') != -1; var hasChanges = false; function setHasChanges(changed) { hasChanges = changed; if($('changesmade')) $('changesmade').style.display = hasChanges ? "block" : "none"; } /** 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"); } /** basket specific **/ function updateProduct(select) { var i = select.selectedIndex; var o = select[i]; var price = o.getAttribute("price"); $('priceHeader').innerHTML = price; } function bbhover(hover, button) { button.className = hover?"buybuttonh":"buybutton"; } function postBuyForm(buyForm) { var form = document.getElementById("basketform"); if(!form) return(true); 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'; buyForm.appendChild(throbber); var formData = "&ajaxRequest=1&" + Form.serialize(buyForm); new Ajax.Request(buyForm.getAttribute("action"), { postBody : formData, onSuccess : 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.message); } throbber.src = '/images/webshop/shoppingcart_add.png'; new Effect.Fade($(throbber), { from: 1.0, to: 0.0, duration: 2 }); if(getCookie("showbasketinfo")!="no") { if(basketInfo==null) { basketInfo = document.createElement("div"); basketInfo.id = "basketinfo"; basketInfo.style.opacity = "0.0"; basketInfo.innerHTML = '
Visa inte detta igen'; $('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 }); } } , 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); } } /** product specific **/ function setDeliveryAsBilling(checkbox,form) { if(form.companyname && form.companyname.value=="") { alert('Företagsnamn saknas!'); checkbox.checked = false; return; } if(form.firstname.value=="") { alert('Förnamn saknas!'); checkbox.checked = false; return; } if(form.lastname.value=="") { alert('Efternamn saknas!'); checkbox.checked = false; return; } if(form.adress1.value=="") { alert('Adress saknas!'); checkbox.checked = false; return; } if(form.zip.value=="") { alert('Postnr saknas!'); checkbox.checked = false; return; } if(form.city.value=="") { alert('Förnamn saknas!'); checkbox.checked = false; return; } if(form.deliverycompanyname) form.deliverycompanyname.value = checkbox.checked ? form.companyname.value : ""; form.deliveryfirstname.value = checkbox.checked ? form.firstname.value : ""; form.deliverylastname.value = checkbox.checked ? form.lastname.value : ""; form.deliverycoadress.value = checkbox.checked ? form.coadress.value : ""; form.deliveryunit.value = checkbox.checked ? form.unit.value : ""; form.deliveryadress.value = checkbox.checked ? form.adress1.value : ""; form.deliveryzip.value = checkbox.checked ? form.zip.value : ""; form.deliverycity.value = checkbox.checked ? form.city.value : ""; if(form.deliverycompanyname) form.deliverycompanyname.disabled = checkbox.checked; form.deliveryfirstname.disabled = checkbox.checked; form.deliverylastname.disabled = checkbox.checked; form.deliverycoadress.disabled = checkbox.checked; form.deliveryunit.disabled = checkbox.checked; form.deliveryadress.disabled = checkbox.checked; form.deliveryzip.disabled = checkbox.checked; form.deliverycity.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 0) { var checked = false; for(var i=0; i0 && virtual[1].selected) { alert('En produkt kan inte både vara virtuell och en variant.'); return false; } if(artnr && artnr.value=="") { alert('Du måste ange ett artnr.'); return false; } if(hasWebshop && price && price.value=="") { alert('Du måste ange ett pris.'); return false; } if(hasWebshop && price && !price.value.match(/^([0-9]*)(\,){0,1}([0-9]+)$/g)) { alert("Priset får bara innehålla siffror samt komma om ören skall anges."); return false; } if(weight && !weight.value.match(/^([0-9]*)(\,){0,1}([0-9]+)$/g)) { alert("Vikten får bara innehålla siffror samt komma."); return false; } if(name && name.value=="") { alert('Du måste ange ett namn.'); return false; } if(templateId) { var selected = false; if(templateId.length) { 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 + ']')); 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) { var tr = template.cloneNode(true); var options = tr.getElementsByTagName("option"); var option = null; for(var i=0;option=options[i];i++) { if(option.selectMe) option.selected = true; } if(copyfrom) { var inputs = tr.getElementsByTagName("input"); 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 markAllProducts(elm, checkbox) { elm.select('input').each(function(e, i) { if(e == checkbox) return; e.checked = checkbox.checked; }); } Behaviour.addLoadEvent(function() { Behaviour.apply(productrules); });