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); });