var _ecshopDefaultLang = 'is';
var _ecshopFloatingMenuXAdjustment = '855';
var _ecshopFloatingMenuYAdjustment = '0';
var _ecshopPriceFormatCulture = 'is-IS';
var _ecshopSignInPage = './pages/vefverslun/innskraning';
var _ecshopIdleTimeout = '60';
var _ecshopUserComments = 'true';
var _ecshopSaveBasket = 'true';
var _ecshopSearchColumns = '6';
var _ecshopSearchProductsPerPage = '6';
var _ecshopSearchSortBy1 = '1';
var _ecshopSearchSortBy2 = '2';
var _ecshopWebsiteId = '833';
var _ecshopHost = '/portfarma';
var _ecWords=[];_ecWords['product-tooltips.product-sendtofriend.en'] = "Click here to sent this product to your friend";_ecWords['product-tooltips.product-sendtofriend.is'] = "Smelltu hér til að senda vini upplýsingar um þessa vöru";_ecWords['product-tooltips.product-sort-highest-rated.en'] = "Smelltu hér til að raða eftir einkunn";_ecWords['product-buttons.product-sort-high-to-low.en'] = "Price, high to low";_ecWords['product-buttons.product-sort-high-to-low.is'] = "Verð frá hæsta niður í lægsta";_ecWords['product-buttons.product-sort-low-to-high.en'] = "Price, low to high";_ecWords['product-buttons.product-sort-low-to-high.is'] = "Verð frá lægsta upp í hæsta";_ecWords['product-buttons.product-sort-newest.en'] = "Nýjast fyrst";_ecWords['product-buttons.product-sort-newest.is'] = "Nýjast fyrst";_ecWords['product-buttons.product-viewall.en'] = "Skoða allar vörur í";_ecWords['product-buttons.product-viewall.is'] = "Skoða allar vörur í";_ecWords['product-buttons.product-view-details.en'] = "View more details";_ecWords['product-buttons.product-view-details.is'] = "View more details";_ecWords['product-buttons.product-write-a-comments.en'] = "Skrifaðu ummæli";_ecWords['product-buttons.product-write-a-comments.is'] = "Skrifaðu ummæli";_ecWords['product-headings.product-available-packages.en'] = "Útfærslur";_ecWords['product-headings.product-available-packages.is'] = "Útfærslur";_ecWords['product-headings.product-comments.en'] = "Ummæli";_ecWords['product-headings.product-comments.is'] = "Ummæli";_ecWords['product-labels.product-limited-stock-alert.is'] = "The quantity you entered exceeds our available stock.";_ecWords['product-labels.product-name.en'] = "Vöruheiti";_ecWords['product-labels.product-name.is'] = "Vöruheiti";_ecWords['product-labels.product-new.en'] = "New product";_ecWords['product-labels.product-new.is'] = "Ný vara";_ecWords['product-labels.product-nocomments.en'] = "No reviews have been submitted for this product. Be the first one! Click on --Write a comment-- now.";_ecWords['product-labels.product-nocomments.is'] = "Engin ummæli hafa verið skrifuð. Viltu vera fyrst(ur)? Smalltu á hlekkin hér til hliðar, við kunnun vel að meta þitt álit.";_ecWords['product-labels.product-sale-price.en'] = "Útsöluverð";_ecWords['product-labels.product-sale-price.is'] = "Útsöluverð";_ecWords['product-labels.product-select-color.en'] = "Select color";_ecWords['product-labels.product-select-color.is'] = "Select color";_ecWords['product-labels.product-serial.en'] = "S.nr.";_ecWords['product-labels.product-serial.is'] = "Vörunr.";_ecWords['product-labels.product-shopfor.en'] = "Shop for";_ecWords['product-tooltips.product-rate-product.is'] = "Smelltu á stjörnu til að gefa þessari vöru einkunn";_ecWords['product-tooltips.product-sort-highest-rated.is'] = "Smelltu hér til að raða eftir einkunn";_ecWords['product-tooltips.product-sort-high-to-low.en'] = "Smellið hér til að raða eftir verði";_ecWords['product-tooltips.product-sort-high-to-low.is'] = "Smellið hér til að raða eftir verði";_ecWords['product-tooltips.product-sort-low-to-high.en'] = "Click here to sort by lowest to highest price";_ecWords['product-tooltips.product-sort-low-to-high.is'] = "Smelltu hér til að flokka verð frá lægsta upp í hæsta";_ecWords['product-tooltips.product-sort-newest.en'] = "Smellið hér til að sýna nýjar vörur efst";_ecWords['product-tooltips.product-sort-newest.is'] = "Smellið hér til að sýna nýjar vörur efst";_ecWords['product-tooltips.product-views-grid.en'] = "Click here to show products in a grid view";_ecWords['product-tooltips.product-views-grid.is'] = "Sýna vörur með myndum";_ecWords['product-tooltips.product-views-table.en'] = "Click here to show products in a table view";_ecWords['product-tooltips.product-views-table.is'] = "Smellið hér til að skoða vörur í lista formi";_ecWords['product-buttons.product-add-to-basket.en'] = "Setja í körfu";_ecWords['product-buttons.product-add-to-basket.is'] = "Setja í körfu";_ecWords['product-buttons.product-add-to-wishlist.en'] = "Bæta við óskalista";_ecWords['product-buttons.product-add-to-wishlist.is'] = "Bæta við óskalista";_ecWords['product-buttons.product-backtocategory.en'] = "Aftur á vöruflokk";_ecWords['product-buttons.product-backtocategory.is'] = "Aftur á vöruflokk";_ecWords['product-buttons.product-button-all.en'] = "All";_ecWords['product-buttons.product-button-all.is'] = "All";_ecWords['product-buttons.product-buy-this-product-online.en'] = "Kaupa þessu vöru í vefverslun";_ecWords['product-buttons.product-buy-this-product-online.is'] = "Kaupa þessu vöru í vefverslun";_ecWords['product-buttons.product-click-to-buy.en'] = "Smellið hér til að kaupa";_ecWords['product-buttons.product-click-to-buy.is'] = "Smellið hér til að kaupa";_ecWords['product-buttons.product-paging-per-page.en'] = "products";_ecWords['product-buttons.product-paging-per-page.is'] = "vörur";_ecWords['product-buttons.product-see-large-image.en'] = "Sjá stærri mynd";_ecWords['product-buttons.product-see-large-image.is'] = "Sjá stærri mynd";_ecWords['product-buttons.product-sendtofriend.en'] = "Send product info";_ecWords['product-buttons.product-sendtofriend.is'] = "Senda til vinar";_ecWords['product-buttons.product-sort-highest-rated.en'] = "Hæstu einkunn";_ecWords['product-buttons.product-sort-highest-rated.is'] = "Hæstu einkunn";_ecWords['product-labels.product-package-alert.is'] = "Please wait while the package loads so you can select the package that you are interested in.";_ecWords['product-labels.product-package-redirect.en'] = "Please complete your selections before adding to the basket. Thank you";_ecWords['product-labels.product-package-redirect.is'] = "Please complete your selections before adding to the basket. Thank you";_ecWords['product-labels.product-price.en'] = "Verð";_ecWords['product-labels.product-price.is'] = "Verð";_ecWords['product-labels.product-pricefrom.en'] = "Verð frá";_ecWords['product-labels.product-pricefrom.is'] = "Verð frá";_ecWords['product-labels.product-properties.en'] = "Eigindi";_ecWords['product-labels.product-properties.is'] = "Eigindi";_ecWords['product-labels.product-quantity.en'] = "Magn";_ecWords['product-labels.product-quantity.is'] = "Magn";_ecWords['product-labels.product-rate-appendix.en'] = "star rating";_ecWords['product-labels.product-rate-appendix.is'] = "stjörnur";_ecWords['product-labels.product-rated.en'] = "You have rated this product";_ecWords['product-labels.product-rated.is'] = "You have rated this product";_ecWords['product-labels.product-rate-prefix.en'] = "Give this product a";_ecWords['product-labels.product-rate-prefix.is'] = "Gefa þessari vöru";_ecWords['product-labels.product-rate-product.en'] = "Gefðu þessari vöru einkunn";_ecWords['product-labels.product-rate-product.is'] = "Gefðu þessari vöru einkunn";_ecWords['product-labels.product-shopfor.is'] = "Shop for";_ecWords['product-labels.product-sold-out.en'] = "Sold out";_ecWords['product-labels.product-sold-out.is'] = "Uppselt";_ecWords['product-labels.product-special-offer.en'] = "Special offer";_ecWords['product-labels.product-special-offer.is'] = "Tilboð";_ecWords['product-labels.product-stock.en'] = "Til á lager";_ecWords['product-labels.product-stock.is'] = "Til á lager";_ecWords['product-tooltips.product-view-more-products-of-same-category.is'] = "Sýna vörur í sama vöruflokki";_ecWords['product-tooltips.product-add-to-basket.en'] = "Click here to add this product to the basket";_ecWords['product-tooltips.product-add-to-basket.is'] = "Click here to add this product to the basket";_ecWords['product-tooltips.product-add-to-wishlist.en'] = "Click here to add this product to wish list.";_ecWords['product-tooltips.product-add-to-wishlist.is'] = "Click here to add this product to wish list.";_ecWords['product-tooltips.product-click-to-buy.en'] = "This link will take you to the product detail page where you can add it to your basket.";_ecWords['product-tooltips.product-click-to-buy.is'] = "This link will take you to the product detail page where you can add it to your basket.";_ecWords['product-tooltips.product-paging-per-page.en'] = "Smelltu hér til að sýna";_ecWords['product-tooltips.product-paging-per-page.is'] = "Smelltu hér til að sýna";_ecWords['product-tooltips.product-rate-product.en'] = "Smelltu á stjörnu til að gefa þessari vöru einkunn";_ecWords['common-buttons.common-staffname.is'] = "Staff Name :";_ecWords['common-buttons.common-staffgsm.is'] = "GSM :";_ecWords['common-labels.common-accept.en'] = "Accept";_ecWords['common-labels.common-accept.is'] = "Samþykkja";_ecWords['common-labels.common-address-note.en'] = "(einhver hjálpartexti)";_ecWords['common-labels.common-address-note.is'] = "(einhver hjálpartexti)";_ecWords['common-labels.common-all.en'] = "All";_ecWords['common-labels.common-all.is'] = "Allar";_ecWords['common-labels.common-email.en'] = "Netfang";_ecWords['common-labels.common-email.is'] = "Netfang";_ecWords['common-labels.common-email-footer.en'] = "Eirberg ehf. | Copyright 2008";_ecWords['common-labels.common-email-footer.is'] = "Eirberg ehf. | Copyright 2008";_ecWords['common-labels.common-email-your-password.en'] = "Your password is";_ecWords['common-labels.common-email-your-password.is'] = "Your password is";_ecWords['common-labels.common-field-address.en'] = "Heimilisfang";_ecWords['common-labels.common-field-address.is'] = "Heimilisfang";_ecWords['common-labels.common-field-addressdescription.en'] = "Lína 2";_ecWords['common-labels.common-field-addressdescription.is'] = "Lína 2";_ecWords['common-labels.common-field-city.en'] = "Borg";_ecWords['common-labels.common-field-city.is'] = "Borg";_ecWords['common-labels.common-new-user-msg.en'] = "New to the site? Click below to create an account.";_ecWords['common-labels.common-new-user-msg.is'] = "Nýr notandi? Smelltu hér fyrir neðan til að skrá þig.";_ecWords['common-labels.common-optional.en'] = "val";_ecWords['common-labels.common-optional.is'] = "val";_ecWords['common-labels.common-privacy-policy.en'] = "Persónulegar upplýsingar";_ecWords['common-labels.common-privacy-policy.is'] = "Persónulegar upplýsingar";_ecWords['common-labels.common-registration-update.en'] = "Update registration";_ecWords['common-labels.common-registration-update.is'] = "Update registration";_ecWords['common-labels.common-day-tuesday.en'] = "Þriðjudagur";_ecWords['common-labels.common-registration-update-text.en'] = "If you want to change the e-mail or password associated with your account, you may do so below. Be sure to click on the Save changes button when you are done.";_ecWords['common-labels.common-registration-update-text.is'] = "If you want to change the e-mail or password associated with your account, you may do so below. Be sure to click on the Save changes button when you are done.";_ecWords['common-labels.common-required-information.en'] = "The registration process should only take a few minutes to complete - just fill in your details below noting that fields marked (*) are mandatory.";_ecWords['common-labels.common-required-information.is'] = "Skráning tekur aðeins örskamma stund - Fyllið inn upplýsingarnar hér að neðan. Fylla þarf í all reiti merkta(*)";_ecWords['common-labels.common-search-all-cats.en'] = "Leita í öllum flokkum";_ecWords['common-labels.common-search-all-cats.is'] = "Leita í öllum flokkum";_ecWords['common-labels.common-search-input.en'] = "Skrifa leitarorð";_ecWords['common-labels.common-search-input.is'] = "Skrifa leitarorð";_ecWords['common-labels.common-search-noresults.en'] = "0 matches for";_ecWords['common-labels.common-search-noresults.is'] = "0 matches for";_ecWords['common-labels.common-search-numofresults.en'] = "Number of results found";_ecWords['common-labels.common-search-numofresults.is'] = "Number of results found";_ecWords['common-labels.common-terms-and-conditions.en'] = "Skilmálar";_ecWords['common-labels.common-terms-and-conditions.is'] = "Skilmálar";_ecWords['common-labels.nav-rootpage.en'] = "Forsíða";_ecWords['common-labels.nav-rootpage.is'] = "Forsíða";_ecWords['common-labels.common-time-format.en'] = "HH:mm tt";_ecWords['common-labels.common-time-format.is'] = "HH:mm tt";_ecWords['common-labels.common-login-incorrect.en'] = "The e-mail or password you entered was incorrect. Please try again.";_ecWords['common-labels.common-login-incorrect.is'] = "The e-mail or password you entered was incorrect. Please try again.";_ecWords['common-labels.common-login-noregistration-text.en'] = "You can complete your order without having to register on the site and signing in. Just click on the button below.";_ecWords['common-labels.common-login-noregistration-text.is'] = "You can complete your order without having to register on the site and signing in. Just click on the button below.";_ecWords['common-labels.common-logout-text.en'] = "Click on the button below to log out.";_ecWords['common-labels.common-logout-text.is'] = "Click on the button below to log out.";_ecWords['common-labels.common-month-apr.en'] = "Apríl";_ecWords['common-labels.common-month-apr.is'] = "Apríl";_ecWords['common-labels.common-month-aug.en'] = "Ágúst";_ecWords['common-labels.common-month-aug.is'] = "Ágúst";_ecWords['common-labels.common-month-dec.en'] = "Desember";_ecWords['common-labels.common-month-dec.is'] = "Desember";_ecWords['common-labels.common-month-feb.en'] = "Febrúar";_ecWords['common-labels.common-month-feb.is'] = "Febrúar";_ecWords['common-labels.common-month-jan.en'] = "Janúar";_ecWords['common-labels.common-month-jan.is'] = "Janúar";_ecWords['common-labels.common-month-jul.en'] = "Júlí";_ecWords['common-labels.common-month-jul.is'] = "Júlí";_ecWords['common-labels.common-month-jun.en'] = "Júní";_ecWords['common-labels.common-month-jun.is'] = "Júní";_ecWords['common-labels.common-month-mar.en'] = "Mars";_ecWords['common-labels.common-month-mar.is'] = "Mars";_ecWords['common-labels.common-month-may.en'] = "Maí";_ecWords['common-labels.common-month-may.is'] = "Maí";_ecWords['common-labels.common-month-nov.en'] = "Nóvember";_ecWords['common-labels.common-month-nov.is'] = "Nóvember";_ecWords['common-labels.common-month-oct.en'] = "Október";_ecWords['common-labels.common-month-oct.is'] = "Október";_ecWords['common-labels.common-month-sep.en'] = "September";_ecWords['common-labels.common-month-sep.is'] = "September";_ecWords['common-labels.common-field-username.is'] = "Username";_ecWords['common-labels.common-forgotten-password-text.en'] = "Type in your e-mail here and click on Send password. We will send you your password by e-mail immediately.";_ecWords['common-labels.common-forgotten-password-text.is'] = "Type in your e-mail here and click on Send password. We will send you your password by e-mail immediately.";_ecWords['common-labels.common-form-validate-ccexpired.en'] = "This card is expired";_ecWords['common-labels.common-form-validate-ccexpired.is'] = "This card is expired";_ecWords['common-labels.common-form-validate-emailmismatch.en'] = "Netföng stemma ekki";_ecWords['common-labels.common-form-validate-emailmismatch.is'] = "Netföng stemma ekki";_ecWords['common-labels.common-form-validate-ismissing.en'] = "vantar";_ecWords['common-labels.common-form-validate-ismissing.is'] = "vantar";_ecWords['common-labels.common-form-validate-lessthanone.en'] = "";_ecWords['common-labels.common-form-validate-lessthanone.is'] = "";_ecWords['common-labels.common-form-validate-notvalid.en'] = "er ekki rétt";_ecWords['common-labels.common-form-validate-notvalid.is'] = "er ekki rétt";_ecWords['common-labels.common-form-validate-passwordmismatch.en'] = "Lykilorð stemma ekki";_ecWords['common-labels.common-form-validate-passwordmismatch.is'] = "Lykilorð stemma ekki";_ecWords['common-labels.common-form-validate-singlechar.en'] = "must be greater than one";_ecWords['common-labels.common-form-validate-singlechar.is'] = "must be greater than one";_ecWords['common-labels.common-link-youraccounttext.en'] = "Click here to visit your account page.";_ecWords['common-labels.common-link-youraccounttext.is'] = "Click here to visit your account page.";_ecWords['common-labels.common-login-email-doesnt-exist.en'] = "We were unable to match your login information to an account in our records. Please make sure you have entered in the correct e-mail and password.";_ecWords['common-labels.common-login-email-doesnt-exist.is'] = "We were unable to match your login information to an account in our records. Please make sure you have entered in the correct e-mail and password.";_ecWords['common-labels.common-day-monday.en'] = "Mánudagur";_ecWords['common-labels.common-day-monday.is'] = "Mánudagur";_ecWords['common-labels.common-day-tuesday.is'] = "Þriðjudagur";_ecWords['common-labels.common-day-wednesday.en'] = "Miðvikudagur";_ecWords['common-labels.common-day-wednesday.is'] = "Miðvikudagur";_ecWords['common-labels.common-field-verification.en'] = "Verification";_ecWords['common-labels.common-field-verification.is'] = "Skrifaðu textan á myndinni";_ecWords['common-labels.common-newsletter-valid-email.en'] = "Please enter valid email address";_ecWords['common-labels.common-newsletter-valid-email.is'] = "Netfangið sem þ£ hefur gefið upp er ekki r‚tt. Vinsamlegast reynið aftur";_ecWords['common-labels.common-mail.en'] = "Enter e-mail address";_ecWords['common-labels.common-mail.is'] = "Skráðu þig hér";_ecWords['common-labels.common-search-noresults-try-another-word.en'] = "Try widening your search by typing a different search criteria or selecting a different or all categories.";_ecWords['common-labels.common-search-noresults-try-another-word.is'] = "Try widening your search by typing a different search criteria or selecting a different or all categories.";_ecWords['common-labels.common-field-password.is'] = "Password";_ecWords['common-labels.common-date-format.en'] = "ddd, dd MMM yyyy";_ecWords['common-labels.common-date-format.is'] = "ddd, dd MMM yyyy";_ecWords['common-labels.common-day-thursday.en'] = "Fimmtudagur";_ecWords['common-labels.common-day-thursday.is'] = "Fimmtudagur";_ecWords['common-labels.common-day-friday.en'] = "Föstudagur";_ecWords['common-labels.common-day-friday.is'] = "Föstudagur";_ecWords['common-labels.common-day-saturday.en'] = "Laugardagur";_ecWords['common-labels.common-day-saturday.is'] = "Laugardagur";_ecWords['common-labels.common-day-sunday.en'] = "Sunnudagur";_ecWords['common-labels.common-day-sunday.is'] = "Sunnudagur";_ecWords['common-labels.common-field-ssn.en'] = "Kennitala";_ecWords['common-labels.common-field-ssn.is'] = "Kennitala";_ecWords['common-labels.common-form-validate-sixchar.en'] = "must be more than six character";_ecWords['common-labels.common-form-validate-sixchar.is'] = "must be more than six character";_ecWords['common-labels.common-login-dont-show-login.en'] = "Dont show login page again";_ecWords['common-labels.common-login-dont-show-login.is'] = "Dont show login page again";_ecWords['common-labels.common-field-email.en'] = "Netfang";_ecWords['common-labels.common-field-email.is'] = "Netfang";_ecWords['common-labels.common-field-email-new.en'] = "New E-mail";_ecWords['common-labels.common-field-email-new.is'] = "Nýtt póstfang (email)";_ecWords['common-labels.common-field-firstname.en'] = "Name";_ecWords['common-labels.common-field-firstname.is'] = "Fornafn";_ecWords['common-labels.common-field-firstname-new.en'] = "New firstname";_ecWords['common-labels.common-field-firstname-new.is'] = "Nýtt fornafn";_ecWords['common-labels.common-field-lastname.en'] = "Eftirnafn";_ecWords['common-labels.common-field-lastname.is'] = "Eftirnafn";_ecWords['common-labels.common-field-message.en'] = "Message";_ecWords['common-labels.common-field-message.is'] = "Hvað finst þér?";_ecWords['common-labels.common-field-name.en'] = "Name";_ecWords['common-labels.common-field-name.is'] = "Nafn eða stutt fyrirsögn";_ecWords['common-labels.common-field-password.en'] = "Password";_ecWords['common-labels.common-field-password-new.en'] = "New password";_ecWords['common-labels.common-field-password-new.is'] = "Nýtt lykilorð";_ecWords['common-labels.common-field-password-old.en'] = "Old password";_ecWords['common-labels.common-field-password-old.is'] = "Old password";_ecWords['common-labels.common-field-password-retype.en'] = "Re-type password";_ecWords['common-labels.common-field-password-retype.is'] = "Re-type password";_ecWords['common-labels.common-field-phone.en'] = "Sími";_ecWords['common-labels.common-field-phone.is'] = "Sími";_ecWords['account-labels.mani -test.en'] = "manikandan";_ecWords['account-labels.mani -test.is'] = "manikandan";_ecWords['product-labels.product-comment-posted.en'] = "Thank you for your input. A moderator for the site will review your comment and once approved, you will be able to see it here on the website.";_ecWords['product-labels.product-comment-posted.is'] = "Takk kærlega fyrir að deila með okkur áliti þínu. Álitið fer nú í samþykktarferli og mun birtast von bráðar hér á síðunni.";_ecWords['product-labels.product-depth.en'] = "Dýpt";_ecWords['product-labels.product-depth.is'] = "Dýpt";_ecWords['product-labels.product-description.en'] = "Description";_ecWords['product-labels.product-description.is'] = "Vörulýsing";_ecWords['product-labels.product-discount.en'] = "Afsláttur";_ecWords['product-labels.product-discount.is'] = "Afsláttur";_ecWords['product-labels.product-email-sendtofriend-footer.en'] = "Copyright 2008 | EC Software";_ecWords['product-labels.product-email-sendtofriend-footer.is'] = "Copyright 2008 | EC Software";_ecWords['product-labels.product-email-sendtofriend-sentbecause.en'] = "Þú fékkst þennan póst af því að sendandinn telur að þú munir hafa gaman af. Njóttu vel!";_ecWords['product-labels.product-email-sendtofriend-sentbecause.is'] = "Þú fékkst þennan póst af því að sendandinn telur að þú munir hafa gaman af. Njóttu vel!";_ecWords['product-labels.product-email-sendtofriend-sentby.en'] = "Þessi póstur kom frá";_ecWords['product-labels.product-email-sendtofriend-sentby.is'] = "Þessi póstur kom frá";_ecWords['product-labels.product-email-sendtofriend-sentfrom.en'] = "Hann var sendur frá";_ecWords['product-tooltips.product-view-more-products-of-same-category.en'] = "Click here to view more products from the same category";_ecWords['product-labels.product-noimage.en'] = "Engin mynd til";_ecWords['product-labels.product-noimage.is'] = "Engin mynd til";_ecWords['product-labels.product-nostock.en'] = "Þessi vara er uppseld.";_ecWords['product-labels.product-nostock.is'] = "Þessi vara er uppseld.";_ecWords['product-labels.product-nostock-addtobasket.en'] = "Vara væntaleg. Þú getur lagt inn pöntun.";_ecWords['product-labels.product-nostock-addtobasket.is'] = "Vara væntaleg. Þú getur lagt inn pöntun.";_ecWords['product-labels.product-no-stock-alert.en'] = "Out of stock";_ecWords['product-labels.product-no-stock-alert.is'] = "Out of stock";_ecWords['product-labels.product-now-only.en'] = "Nú aðeins";_ecWords['product-labels.product-now-only.is'] = "Nú aðeins";_ecWords['product-labels.product-optional-product.en'] = "None selected";_ecWords['product-labels.product-optional-product.is'] = "Ekkert valið";_ecWords['product-labels.product-package-alert.en'] = "Please wait while the package loads so you can select the package that you are interested in.";_ecWords['common-labels.common-field-pobox.en'] = "PO Box";_ecWords['common-labels.common-field-pobox.is'] = "PO Box";_ecWords['common-labels.common-field-postalcode.en'] = "Póstnúmer";_ecWords['common-labels.common-field-postalcode.is'] = "Póstnúmer";_ecWords['common-labels.common-field-region.en'] = "Land";_ecWords['common-labels.common-field-region.is'] = "Land";_ecWords['common-labels.common-field-state.en'] = "Sýsla / Svæði";_ecWords['common-labels.common-field-state.is'] = "Sýsla / Svæði";_ecWords['common-labels.common-field-username.en'] = "Username";_ecWords['common-headings.common-email-your-password.en'] = "Your password";_ecWords['common-headings.common-email-your-password.is'] = "Þitt lykilorð";_ecWords['common-headings.common-error.en'] = "Error";_ecWords['common-headings.common-error.is'] = "Ansans vandræði - Villa";_ecWords['common-headings.common-field-newsletter.en'] = "Newsletter";_ecWords['common-headings.common-field-newsletter.is'] = "Fréttabréf";_ecWords['common-headings.common-forgotten-password.en'] = "Forgotten password";_ecWords['common-headings.common-forgotten-password.is'] = "Forgotten password";_ecWords['common-headings.common-login-mail-sent.en'] = "The mail was sent!";_ecWords['common-headings.common-login-mail-sent.is'] = "The mail was sent!";_ecWords['common-headings.common-login-noregistration.en'] = "Continue without registering";_ecWords['common-headings.common-login-noregistration.is'] = "Continue without registering";_ecWords['common-headings.common-login-register.en'] = "Create an account";_ecWords['common-headings.common-login-register.is'] = "Takk kærlega fyrir að stofna notenda hjá Eirberg.is";_ecWords['common-headings.common-login-sign-in.en'] = "Sign in";_ecWords['common-headings.common-login-sign-in.is'] = "Innskráning";_ecWords['common-headings.common-login-signout.en'] = "Sign out";_ecWords['common-headings.common-login-signout.is'] = "Útskráning";_ecWords['common-headings.common-registration-successful.en'] = "Skráning tókst";_ecWords['common-headings.common-registration-successful.is'] = "Skráning tókst";_ecWords['common-headings.common-search-headings.en'] = "Leit";_ecWords['common-headings.common-search-headings.is'] = "Leit";_ecWords['common-headings.common-search-results.en'] = "Search results";_ecWords['common-headings.common-search-results.is'] = "Search results";_ecWords['common-headings.common-success.en'] = "Success!";_ecWords['common-headings.common-success.is'] = "Aðgerð tókst!";_ecWords['common-headings.nav-header.en'] = "Síður";_ecWords['common-headings.nav-header.is'] = "Síður";_ecWords['common-headings.nav-sitemap.en'] = "Veftré";_ecWords['common-headings.nav-sitemap.is'] = "Veftré";_ecWords['common-headings.common-login-sign-up.en'] = "Sign up";_ecWords['common-headings.common-login-sign-up.is'] = "Sign up";_ecWords['common-headings.common-newsletter.en'] = "Skráðu þig hér";_ecWords['common-headings.common-newsletter.is'] = "Skráðu þig hér";_ecWords['common-buttons.common-cancel.en'] = "Hætta við";_ecWords['common-buttons.common-cancel.is'] = "Hætta við";_ecWords['common-buttons.common-close-window.en'] = "Loka glugga";_ecWords['common-buttons.common-close-window.is'] = "Loka glugga";_ecWords['common-buttons.common-email-password.en'] = "Send password";_ecWords['common-buttons.common-email-password.is'] = "Send password";_ecWords['common-buttons.common-go-back.en'] = "Til baka";_ecWords['common-buttons.common-go-back.is'] = "Til baka";_ecWords['common-buttons.common-go-button.en'] = "Áfram";_ecWords['common-buttons.common-go-button.is'] = "Áfram";_ecWords['common-buttons.common-link-youraccount.en'] = "Smelltu hér til að fara á Þitt svæði";_ecWords['common-buttons.common-link-youraccount.is'] = "Smelltu hér til að fara á Þitt svæði";_ecWords['common-buttons.common-login.en'] = "Click here to log in";_ecWords['common-buttons.common-login.is'] = "Click here to log in";_ecWords['common-buttons.common-login-email-password.en'] = "Send password";_ecWords['common-buttons.common-login-email-password.is'] = "Send password";_ecWords['common-buttons.common-login-forgotten-password.en'] = "I have forgotten my password. Please send it to me.";_ecWords['common-buttons.common-login-forgotten-password.is'] = "I have forgotten my password. Please send it to me.";_ecWords['common-buttons.common-logout.en'] = "Logout";_ecWords['common-buttons.common-logout.is'] = "Logout";_ecWords['common-buttons.common-ok.en'] = "OK";_ecWords['common-buttons.common-ok.is'] = "OK";_ecWords['common-buttons.common-print-page.en'] = "Prentvæn útgáfa";_ecWords['common-buttons.common-print-page.is'] = "Prentvæn útgáfa";_ecWords['common-buttons.common-read-more.en'] = "Lesa meira";_ecWords['common-buttons.common-read-more.is'] = "Lesa meira";_ecWords['common-buttons.common-register.en'] = "Click here to submit your registration";_ecWords['common-buttons.common-register.is'] = "Halda áfram ...";_ecWords['common-buttons.common-registration.en'] = "New registration";_ecWords['common-buttons.common-registration.is'] = "Ný skráning";_ecWords['common-buttons.common-save.en'] = "Save";_ecWords['common-buttons.common-save.is'] = "Save";_ecWords['common-buttons.common-save-changes.en'] = "Save changes";_ecWords['common-buttons.common-save-changes.is'] = "Vista breytingar";_ecWords['common-buttons.common-search-advanced.en'] = "Ítarleit";_ecWords['common-buttons.common-search-advanced.is'] = "Ítarleit";_ecWords['common-buttons.common-send.en'] = "Senda";_ecWords['common-buttons.common-send.is'] = "Senda";_ecWords['common-buttons.nav-next-page.en'] = "Næsta síða";_ecWords['common-buttons.nav-next-page.is'] = "Næsta síða";_ecWords['common-buttons.nav-previous-page.en'] = "Fyrri síða";_ecWords['common-buttons.nav-previous-page.is'] = "Fyrri síða";_ecWords['common-tooltips.common-field-imgregenerate.is'] = "If you are unable to see the letters, please click on the image to generate a new word";_ecWords['common-tooltips.common-field-verification.en'] = "Please verify your submission by typing in the letters that appear in the image";_ecWords['common-tooltips.common-field-verification.is'] = "Please verify your submission by typing in the letters that appear in the image";_ecWords['common-tooltips.common-read-more.en'] = "Smellið hér til að skoða ítarbirtingu";_ecWords['common-tooltips.common-read-more.is'] = "Smellið hér til að skoða ítarbirtingu";_ecWords['common-tooltips.common-go-back.en'] = "Smellið hér til að fara til baka á fyrri síðu";_ecWords['common-tooltips.common-go-back.is'] = "Smellið hér til að fara til baka á fyrri síðu";_ecWords['common-tooltips.common-print-page.en'] = "Smellið hér til að skoða prentvæna útgáfu";_ecWords['common-tooltips.common-print-page.is'] = "Smellið hér til að skoða prentvæna útgáfu";_ecWords['common-tooltips.common-registration.en'] = "Click here for new registration";_ecWords['common-tooltips.common-registration.is'] = "Click here for new registration";_ecWords['common-tooltips.nav-next-page.en'] = "Smellið hér til að fara á næstu síðu";_ecWords['common-tooltips.nav-next-page.is'] = "Smellið hér til að fara á næstu síðu";_ecWords['common-tooltips.nav-previous-page.en'] = "Smellið hér til að fara á fyrri síðu";_ecWords['common-tooltips.nav-previous-page.is'] = "Smellið hér til að fara á fyrri síðu";_ecWords['common-tooltips.common-field-imgregenerate.en'] = "If you are unable to see the letters, please click on the image to generate a new word";_ecWords['common-tooltips.common-close-window.en'] = "Click here to close";_ecWords['common-tooltips.common-close-window.is'] = "Click here to close";_ecWords['common-errors.common-register-incorrect-old-password.en'] = "Please check, you have entered correct old password!";_ecWords['common-errors.common-error-ecs01.en'] = "An error occurred when connecting to the webservice. An e-mail has been sent to the admin with more details. We apologize for the inconvenience.";_ecWords['common-errors.common-error-ecs01.is'] = "An error occurred when connecting to the webservice. An e-mail has been sent to the admin with more details. We apologize for the inconvenience.";_ecWords['common-errors.common-error-ecs02.en'] = "The image verification failed. Please make sure you type in the word that you see in the image. If you are unable to read it, click on the image to get a new word.";_ecWords['common-errors.common-error-ecs02.is'] = "The image verification failed. Please make sure you type in the word that you see in the image. If you are unable to read it, click on the image to get a new word.";_ecWords['common-errors.common-error-ecs03.en'] = "The address you tried to delete was not found. It may have been deleted already.";_ecWords['common-errors.common-error-ecs03.is'] = "The address you tried to delete was not found. It may have been deleted already.";_ecWords['common-errors.common-error-ecs04.en'] = "You are not allowed to create any more addresses.";_ecWords['common-errors.common-error-ecs04.is'] = "You are not allowed to create any more addresses.";_ecWords['common-errors.common-registration-no-modification.en'] = "It is not possible to modify your account information on this page. Please visit the Your Account page to update your personal information.";_ecWords['common-errors.common-register-incorrect-old-password.is'] = "Please check, you have entered correct old password!";_ecWords['common-errors.common-register-err.en'] = "Please check your";_ecWords['common-errors.common-register-err.is'] = "Please check your";_ecWords['common-errors.common-registration-no-modification.is'] = "It is not possible to modify your account information on this page. Please visit the Your Account page to update your personal information.";_ecWords['common-errors.common-registration-not-allowed.en'] = "Registration is not allowed";_ecWords['common-errors.common-registration-not-allowed.is'] = "Registration is not allowed";_ecWords['common-errors.common-registration-userexist.en'] = "A user with the same e-mail address already exists. Please choose a different e-mail address to continue. If you think you may have already registered, you can use the Forgot password feature to have your password sent to you in an e-mail.";_ecWords['common-errors.common-registration-userexist.is'] = "A user with the same e-mail address already exists. Please choose a different e-mail address to continue. If you think you may have already registered, you can use the Forgot password feature to have your password sent to you in an e-mail.";_ecWords['common-errors.common-search-novalue.en'] = "Please type in a search value before starting the search.";_ecWords['common-errors.common-search-novalue.is'] = "Please type in a search value before starting the search.";_ecWords['common-messages.common-login-password-sent.en'] = "Please check your mail client in order to retrieve your password before logging in.";_ecWords['common-messages.common-login-password-sent.is'] = "Please check your mail client in order to retrieve your password before logging in.";_ecWords['common-messages.common-newsletter-registration-successful.en'] = "Við munum senda þér fréttabréfið frá og með næsta tölublaði";_ecWords['common-messages.common-newsletter-registration-successful.is'] = "Við munum senda þér fréttabréfið frá og með næsta tölublaði";_ecWords['common-messages.common-registration-admin-confirm.en'] = "Þú munt fá sendan tölvupóst um leið og kerfistjórinn okkar hefur samþykkt skráninguna þína";_ecWords['common-messages.common-registration-admin-confirm.is'] = "Þú munt fá sendan tölvupóst um leið og kerfistjórinn okkar hefur samþykkt skráninguna þína";_ecWords['common-messages.common-registration-msg-adminconfirm.en'] = "Our site requires that all registrations are approved by an administrator, so an e-mail has been sent for approval. Once approved, you will receive an e-mail confirmation and will be able to log in.";_ecWords['common-messages.common-registration-msg-adminconfirm.is'] = "Our site requires that all registrations are approved by an administrator, so an e-mail has been sent for approval. Once approved, you will receive an e-mail confirmation and will be able to log in.";_ecWords['common-messages.common-registration-msg-emailconfirm.en'] = "Thank you for registering! Please confirm the registration by clicking on the link in the e-mail that we have just sent.";_ecWords['common-messages.common-registration-msg-emailconfirm.is'] = "Takk kærlega fyrir skráninguna! Vinsamlegast staðfestið skráninguna.&nbsp;Smellið á hlekkinn í tölvupósti, sem hefur verið sendur til þín.";_ecWords['common-messages.common-registration-success.en'] = "Your account has been created successfully. Click on the link below to login to access your account pages.";_ecWords['common-messages.common-registration-success.is'] = "Your account has been created successfully. Click on the link below to login to access your account pages.";_ecWords['common-messages.common-registration-updated.en'] = "The registration was updated";_ecWords['common-messages.common-registration-updated.is'] = "The registration was updated";_ecWords['common-messages.common-searching.en'] = "searching...";_ecWords['common-messages.common-searching.is'] = "searching...";_ecWords['common-messages.Newsletter-validation.en'] = "You have already been subcribed";_ecWords['common-messages.Newsletter-validation.is'] = "Þú ert núþegar á póstlista";_ecWords['common-messages.postlist-success-message.en'] = "You have been subcribed successfully!";_ecWords['common-messages.postlist-success-message.is'] = "You have been subcribed successfully!";_ecWords['product-messages.product-quantity-zero.en'] = "Quantity should not be zero";_ecWords['product-messages.product-quantity-zero.is'] = "Magn verður að vera meira en núll";_ecWords['product-messages.product-comment-posting.en'] = "Posting comment...";_ecWords['product-messages.product-comment-posting.is'] = "Posting comment...";_ecWords['product-messages.product-limitedstock-no-stock.en'] = "You have entered a quantity that is higher than our stock availability.";_ecWords['product-messages.product-limitedstock-no-stock.is'] = "You have entered a quantity that is higher than our stock availability.";_ecWords['product-messages.product-limitedstock-zero-stock.en'] = "You have entered a quantity that is higher than our stock availability. You can still add it to your basket, and we will ship the remaining units once they become available.";_ecWords['product-messages.product-limitedstock-zero-stock.is'] = "You have entered a quantity that is higher than our stock availability. You can still add it to your basket, and we will ship the remaining units once they become available.";_ecWords['product-messages.product-updating-list.en'] = "Updating product list...";_ecWords['product-messages.product-updating-list.is'] = "Uppfæri vörulista...";_ecWords['product-params.product-shopping-page.en'] = "/vorur/";_ecWords['product-params.product-shopping-page.is'] = "/vorur/";_ecWords['common-labels.breadcrumb-you-are-here.en'] = "You are here:";_ecWords['common-labels.breadcrumb-you-are-here.is'] = "Þú ert hér:";_ecWords['product-errors.product-select-variation.en'] = "Please select variations:";_ecWords['product-errors.product-select-variation.is'] = "Please select variations:";_ecWords['product-errors.product-invalid-quantity.en'] = "Quantity can be only numbers";_ecWords['product-errors.product-invalid-quantity.is'] = "Magn á að vera tala";_ecWords['product-buttons.product-outofstock-addtobasket.en'] = "Out of stock";_ecWords['product-buttons.product-outofstock-addtobasket.is'] = "Ekki á lager";_ecWords['common-labels.common-field-ssn_is.en'] = "SSN";_ecWords['common-labels.common-field-ssn_is.is'] = "SSN";_ecWords['common-labels.common-field-Fyrirtæki.en'] = "Company";_ecWords['common-labels.common-field-Fyrirtæki.is'] = "Company";_ecWords['common-labels.common-field-Fyrirtæki (ef við á).en'] = "Fyrirtæki (ef við á)";_ecWords['common-labels.common-field-Fyrirtæki (ef við á).is'] = "Fyrirtæki (ef við á)";_ecWords['common-labels.common-field-kennitala.en'] = "Kennitala";_ecWords['common-labels.common-field-kennitala.is'] = "Kennitala";_ecWords['product-params.product-control-design.en'] = "img-title-serial-price-desc-button";_ecWords['product-params.product-control-design.is'] = "img-title-serial-price-desc-button";_ecWords['product-params.product-control-stock.en'] = "zero-stock";_ecWords['product-params.product-control-stock.is'] = "zero-stock";_ecWords['product-params.product-currency-symbol.en'] = "ISK";_ecWords['product-params.product-price-rounding.en'] = "1";_ecWords['product-params.product-reviews-category.en'] = "User Comments";_ecWords['product-params.product-reviews-showmax.en'] = "5";_ecWords['product-params.product-value-missingfrom-xml.en'] = "Value missing from XML";_ecWords['product-params.product-currency-show.en'] = "after";_ecWords['common-buttons.common-link-youraccounttext.en'] = "Click here to visit your account page.";_ecWords['product-params.product-reviews-showmax.is'] = "5";_ecWords['common-labels.contactus-Thanks.en'] = "Thanks for your message.";_ecWords['common-labels.contactus-Thanks.is'] = "Takk fyrir. Fyrirspurnin hefur verið send.";_ecWords['common-labels.newsletter-subscription-earlier.en'] = "You have been subscribed already!";_ecWords['common-labels.newsletter-subscription-earlier.is'] = "Þú ert nú þegar á póstlista!";_ecWords['product-params.product-value-missingfrom-xml.is'] = "Upplýsingar um vöru vantar í&nbsp;XML skrá";_ecWords['common-labels.common-field-Kennitala fyrirtækis.en'] = "Kennitala fyrirtækis";_ecWords['common-labels.common-field-Kennitala fyrirtækis.is'] = "Kennitala fyrirtækis";_ecWords['product-params.product-price-rounding.is'] = "1";_ecWords['common-buttons.common-link-youraccounttext.is'] = "Click here to visit your account page.";_ecWords['product-params.product-reviews-category.is'] = "Ummæli notenda";_ecWords['product-params.product-currency-show.is'] = "after";_ecWords['product-params.product-currency-symbol.is'] = "ISK";_ecWords['product-params.product-limit-characters.en'] = "30";_ecWords['product-params.product-limit-characters.is'] = "30";_ecWords['product-params.product-pagelimit-dotpages.en'] = "3";_ecWords['product-params.product-pagelimit-dotpages.is'] = "3";_ecWords['product-params.product-pagelimit-maxpages.en'] = "5";_ecWords['product-params.product-pagelimit-maxpages.is'] = "5";_ecWords['product-params.product-minimum-productsperpage.en'] = "8";_ecWords['product-params.product-minimum-productsperpage.is'] = "8";_ecWords['product-params.product-limit-title.en'] = "1";_ecWords['product-params.product-limit-title.is'] = "1";_ecWords['product-params.product-culture-language.en'] = "is-IS";_ecWords['product-params.product-culture-language.is'] = "is-IS";_ecWords['product-params.product-medium-productsperpage.en'] = "16";_ecWords['product-params.product-medium-productsperpage.is'] = "16";_ecWords['product-params.product-maximum-productsperpage.en'] = "32";_ecWords['product-params.product-maximum-productsperpage.is'] = "32";_ecWords['common-labels.common-field-kennitalafyrirtaeki.en'] = "SSN of company";_ecWords['common-labels.common-field-kennitalafyrirtaeki.is'] = "SSN of company";_ecWords['checkout-labels.common-field-Fyrirtæki.en'] = "Fyrirtæki (ef við á)";_ecWords['checkout-labels.common-field-Fyrirtæki.is'] = "Fyrirtæki (ef við á)";_ecWords['product-headings.product-see-also.is'] = "Tengdar vörur";_ecWords['account-labels.catalog-confirmation-heading.is'] = "Vörulistapöntun";_ecWords['account-labels.catalog-confirmation-sub-heading.is'] = "Takk fyrir pöntunina";_ecWords['catalog-headings.catalog-email-user-heading.is'] = "Vörulistapöntun";_ecWords['catalog-message.catalog-mail-subject.is'] = "Vörulistapöntun á heimasíðu";_ecWords['catalog-message.catalog-email-user-orderlist.is'] = "Kærar þakkir fyrir að panta eftirfarandi bæklinga:";_ecWords['catalog-message.catalog-email-admin-orderlist.is'] = "Listi yfir vörulistapantanir:";_ecWords['common-errors.common-select-catalog.is'] = "Vinsamlegast veljið bækling";_ecWords['catalog-headings.catalog-confirmation-heading.is'] = "Vörulistapöntun";_ecWords['catalog-headings.catalog-confirmation-sub-heading.is'] = "Takk fyrir pöntunina";_ecWords['catalog-params.catalog-group-param.is'] = "Vörulistapöntun";_ecWords['common-messages.common-newsletter-success.is'] = "Skráning tókst";_ecWords['common-tooltips.common-view-more-detail.is'] = "Smelltu hér til að fá nánari upplýsingar";_ecWords['catalog-message.catalog-error-not-processed.is'] = "Við biðjumst velvirðingar, en ekki er hægt að afgreiða beiðni þína að svo stöddu.";_ecWords['catalog-headings.catalog-user-information.is'] = "Upplýsingar um notanda";_ecWords['catalog-params.catalog-group-param-mail.is'] = "Póstlisti";_ecWords['product-headings.product-allproducts.is'] = "Allar vörur";_ecWords['product-headings.product-moreproducts.is'] = "Önnur herbergi";_ecWords['common-headings.common-shortcuts.is'] = "Flýtileiðir";_ecWords['common-labels.common-field-vatnumber.is'] = "Kennitala";_ecWords['product-labels.product-email-sendtofriend-sentfrom.is'] = "Hann var sendur frá";_ecWords['product-labels.product-email-sendtofriend-subject.en'] = "Áhugaverð vara í ecShop";_ecWords['product-labels.product-email-sendtofriend-subject.is'] = "Áhugaverð vara í ecShop";_ecWords['product-headings.product-email-sendtofriend-heading.en'] = "Vinurinn þinn sendi þér þetta";_ecWords['product-headings.product-email-sendtofriend-heading.is'] = "Vinurinn þinn sendi þér þetta";_ecWords['product-headings.product-empty-category.en'] = "There are no product in this category.";_ecWords['product-headings.product-empty-category.is'] = "There are no product in this category.";_ecWords['product-headings.product-featured-paging-heading.en'] = "More products";_ecWords['product-headings.product-featured-paging-heading.is'] = "More products";_ecWords['product-headings.product-form-sendtofriend-heading.en'] = "Senda til vinar";_ecWords['product-headings.product-form-sendtofriend-heading.is'] = "Senda til vinar";_ecWords['product-headings.product-paging-heading.en'] = "Síður";_ecWords['product-headings.product-paging-heading.is'] = "Síður";_ecWords['product-headings.product-related-heading.en'] = "You might also like";_ecWords['product-headings.product-related-heading.is'] = "You might also like";_ecWords['product-headings.product-description.is'] = "Lýsing";_ecWords['product-headings.product-custom-property.en'] = "Properties:";_ecWords['product-headings.product-custom-property.is'] = "Properties:";_ecWords['product-headings.product-perpage-heading.en'] = "Sýna";_ecWords['product-headings.product-perpage-heading.is'] = "Sýna";_ecWords['product-headings.product-pricing-options.en'] = "Verðmöguleikar";_ecWords['product-headings.product-pricing-options.is'] = "Verðmöguleikar";_ecWords['product-headings.product-product-rating.en'] = "Einkunn";_ecWords['product-headings.product-product-rating.is'] = "Einkunn";_ecWords['product-labels.product-unit.en'] = "Magn";_ecWords['product-labels.product-unit.is'] = "Magn";_ecWords['product-labels.product-variation-color.en'] = "Color";_ecWords['product-labels.product-variation-color.is'] = "Litur";_ecWords['product-labels.product-vat.en'] = "VSK.";_ecWords['product-labels.product-vat.is'] = "VSK.";_ecWords['product-labels.product-views-grid.en'] = "Grid";_ecWords['product-labels.product-views-grid.is'] = "Grid";_ecWords['product-labels.product-views-table.en'] = "Table";_ecWords['product-labels.product-views-table.is'] = "Table";_ecWords['product-labels.product-weight.en'] = "Þyngd";_ecWords['product-labels.product-weight.is'] = "Þyngd";_ecWords['product-labels.product-width.en'] = "Breidd";_ecWords['product-labels.product-width.is'] = "Breidd";_ecWords['product-labels.product-zoom-in.en'] = "Súmaðu inn með því að færa músina yfir myndina";_ecWords['product-labels.product-zoom-in.is'] = "Súmaðu inn með því að færa músina yfir myndina";_ecWords['product-tooltips.product-read-more.en'] = "Skoða þessa vöru";_ecWords['product-tooltips.product-read-more.is'] = "Skoða þessa vöru";_ecWords['product-labels.product-form-sendtofriend-friends-e-mail.en'] = "Netfang vinar";_ecWords['product-labels.product-form-sendtofriend-friends-e-mail.is'] = "Netfang vinar";_ecWords['product-labels.product-form-sendtofriend-friends-name.en'] = "Nafn vinar";_ecWords['product-labels.product-already-rated.en'] = "You have already rated this product";_ecWords['product-labels.product-already-rated.is'] = "You have already rated this product";_ecWords['product-labels.product-also-cheap.en'] = "Þessar eru líka ódýrar";_ecWords['product-labels.product-also-cheap.is'] = "Þessar eru líka ódýrar";_ecWords['product-labels.product-budgetoffline.en'] = "Útsala endar";_ecWords['product-labels.product-budgetoffline.is'] = "Útsala endar";_ecWords['product-labels.product-budgetonline.en'] = "Útsala byrjar";_ecWords['product-labels.product-budgetonline.is'] = "Útsala byrjar";_ecWords['product-labels.product-budgetprice.en'] = "Útsöluverð";_ecWords['product-labels.product-budgetprice.is'] = "Útsöluverð";_ecWords['product-labels.product-category.en'] = "Vöruflokkur";_ecWords['product-labels.product-category.is'] = "Vöruflokkur";_ecWords['product-labels.product-selectbox-default-text.en'] = "Select";_ecWords['product-labels.product-selectbox-default-text.is'] = "Select";_ecWords['product-labels.product-back-to-search.en'] = "Back to search";_ecWords['product-labels.product-back-to-search.is'] = "Back to search";_ecWords['product-labels.product-vat-incl.en'] = "including VAT";_ecWords['product-labels.product-vat-incl.is'] = "með vsk.";_ecWords['product-labels.product-not-available.en'] = "This product is not available right now";_ecWords['product-labels.product-not-available.is'] = "This product is not available right now";_ecWords['product-labels.product-search-hide-result.en'] = "Hide search result";_ecWords['product-labels.product-search-hide-result.is'] = "Hide search result";_ecWords['product-labels.product-form-sendtofriend-friends-name.is'] = "Nafn vinar";_ecWords['product-labels.product-form-sendtofriend-message.en'] = "Skilaboð";_ecWords['product-labels.product-form-sendtofriend-message.is'] = "Skilaboð";_ecWords['product-labels.product-form-sendtofriend-your-e-mail.en'] = "Þitt netfang";_ecWords['product-labels.product-form-sendtofriend-your-e-mail.is'] = "Þitt netfang";_ecWords['product-labels.product-height.en'] = "Height";_ecWords['product-labels.product-height.is'] = "Height";_ecWords['product-labels.product-limited-stock-alert.en'] = "The quantity you entered exceeds our available stock.";_ecWords['product-headings.product-products-in-package.en'] = "Vörur í pakka";_ecWords['product-headings.product-products-in-package.is'] = "Vörur í pakka";_ecWords['product-headings.product-relatedproducts.en'] = "Tengdar vörur";_ecWords['product-headings.product-relatedproducts.is'] = "Tengdar vörur";_ecWords['product-headings.product-review-product.en'] = "Review this product";_ecWords['product-headings.product-review-product.is'] = "Takk kærlega fyrir&nbsp;að&nbsp;deila með okkur reynslu þinni&nbsp;";_ecWords['product-headings.product-sort-heading.en'] = "Raða eftir";_ecWords['product-headings.product-sort-heading.is'] = "Raða eftir";_ecWords['product-headings.product-views-heading.en'] = "View";_ecWords['product-headings.product-views-heading.is'] = "View";function _ecTranslate(word) {if (_ecWords[word]) {return _ecWords[word];}else{return '[ERR: ]' + word ;}}eval(function(p,a,c,k,e,r){e=function(c){return(c<a?'':e(parseInt(c/a)))+((c=c%a)>35?String.fromCharCode(c+29):c.toString(36))};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('(G(){9(1m E!="W")H w=E;H E=18.15=G(a,b){I 6 7u E?6.5N(a,b):1u E(a,b)};9(1m $!="W")H D=$;18.$=E;H u=/^[^<]*(<(.|\\s)+>)[^>]*$|^#(\\w+)$/;E.1b=E.3A={5N:G(c,a){c=c||U;9(1m c=="1M"){H m=u.2S(c);9(m&&(m[1]||!a)){9(m[1])c=E.4D([m[1]],a);J{H b=U.3S(m[3]);9(b)9(b.22!=m[3])I E().1Y(c);J{6[0]=b;6.K=1;I 6}J c=[]}}J I 1u E(a).1Y(c)}J 9(E.1n(c))I 1u E(U)[E.1b.2d?"2d":"39"](c);I 6.6v(c.1c==1B&&c||(c.4c||c.K&&c!=18&&!c.1y&&c[0]!=W&&c[0].1y)&&E.2h(c)||[c])},4c:"1.2.1",7Y:G(){I 6.K},K:0,21:G(a){I a==W?E.2h(6):6[a]},2o:G(a){H b=E(a);b.4Y=6;I b},6v:G(a){6.K=0;1B.3A.1a.16(6,a);I 6},N:G(a,b){I E.N(6,a,b)},4I:G(a){H b=-1;6.N(G(i){9(6==a)b=i});I b},1x:G(f,d,e){H c=f;9(f.1c==3X)9(d==W)I 6.K&&E[e||"1x"](6[0],f)||W;J{c={};c[f]=d}I 6.N(G(a){L(H b 1i c)E.1x(e?6.R:6,b,E.1e(6,c[b],e,a,b))})},17:G(b,a){I 6.1x(b,a,"3C")},2g:G(e){9(1m e!="5i"&&e!=S)I 6.4n().3g(U.6F(e));H t="";E.N(e||6,G(){E.N(6.3j,G(){9(6.1y!=8)t+=6.1y!=1?6.6x:E.1b.2g([6])})});I t},5m:G(b){9(6[0])E(b,6[0].3H).6u().3d(6[0]).1X(G(){H a=6;1W(a.1w)a=a.1w;I a}).3g(6);I 6},8m:G(a){I 6.N(G(){E(6).6q().5m(a)})},8d:G(a){I 6.N(G(){E(6).5m(a)})},3g:G(){I 6.3z(1q,Q,1,G(a){6.58(a)})},6j:G(){I 6.3z(1q,Q,-1,G(a){6.3d(a,6.1w)})},6g:G(){I 6.3z(1q,P,1,G(a){6.12.3d(a,6)})},50:G(){I 6.3z(1q,P,-1,G(a){6.12.3d(a,6.2q)})},2D:G(){I 6.4Y||E([])},1Y:G(t){H b=E.1X(6,G(a){I E.1Y(t,a)});I 6.2o(/[^+>] [^+>]/.14(t)||t.1g("..")>-1?E.4V(b):b)},6u:G(e){H f=6.1X(G(){I 6.67?E(6.67)[0]:6.4R(Q)});H d=f.1Y("*").4O().N(G(){9(6[F]!=W)6[F]=S});9(e===Q)6.1Y("*").4O().N(G(i){H c=E.M(6,"2P");L(H a 1i c)L(H b 1i c[a])E.1j.1f(d[i],a,c[a][b],c[a][b].M)});I f},1E:G(t){I 6.2o(E.1n(t)&&E.2W(6,G(b,a){I t.16(b,[a])})||E.3m(t,6))},5V:G(t){I 6.2o(t.1c==3X&&E.3m(t,6,Q)||E.2W(6,G(a){I(t.1c==1B||t.4c)?E.2A(a,t)<0:a!=t}))},1f:G(t){I 6.2o(E.1R(6.21(),t.1c==3X?E(t).21():t.K!=W&&(!t.11||E.11(t,"2Y"))?t:[t]))},3t:G(a){I a?E.3m(a,6).K>0:P},7c:G(a){I 6.3t("."+a)},3i:G(b){9(b==W){9(6.K){H c=6[0];9(E.11(c,"24")){H e=c.4Z,a=[],Y=c.Y,2G=c.O=="24-2G";9(e<0)I S;L(H i=2G?e:0,33=2G?e+1:Y.K;i<33;i++){H d=Y[i];9(d.26){H b=E.V.1h&&!d.9V["1Q"].9L?d.2g:d.1Q;9(2G)I b;a.1a(b)}}I a}J I 6[0].1Q.1p(/\\r/g,"")}}J I 6.N(G(){9(b.1c==1B&&/4k|5j/.14(6.O))6.2Q=(E.2A(6.1Q,b)>=0||E.2A(6.2H,b)>=0);J 9(E.11(6,"24")){H a=b.1c==1B?b:[b];E("9h",6).N(G(){6.26=(E.2A(6.1Q,a)>=0||E.2A(6.2g,a)>=0)});9(!a.K)6.4Z=-1}J 6.1Q=b})},4o:G(a){I a==W?(6.K?6[0].3O:S):6.4n().3g(a)},6H:G(a){I 6.50(a).28()},6E:G(i){I 6.2J(i,i+1)},2J:G(){I 6.2o(1B.3A.2J.16(6,1q))},1X:G(b){I 6.2o(E.1X(6,G(a,i){I b.2O(a,i,a)}))},4O:G(){I 6.1f(6.4Y)},3z:G(f,d,g,e){H c=6.K>1,a;I 6.N(G(){9(!a){a=E.4D(f,6.3H);9(g<0)a.8U()}H b=6;9(d&&E.11(6,"1I")&&E.11(a[0],"4m"))b=6.4l("1K")[0]||6.58(U.5B("1K"));E.N(a,G(){H a=c?6.4R(Q):6;9(!5A(0,a))e.2O(b,a)})})}};G 5A(i,b){H a=E.11(b,"1J");9(a){9(b.3k)E.3G({1d:b.3k,3e:P,1V:"1J"});J E.5f(b.2g||b.6s||b.3O||"");9(b.12)b.12.3b(b)}J 9(b.1y==1)E("1J",b).N(5A);I a}E.1k=E.1b.1k=G(){H c=1q[0]||{},a=1,2c=1q.K,5e=P;9(c.1c==8o){5e=c;c=1q[1]||{}}9(2c==1){c=6;a=0}H b;L(;a<2c;a++)9((b=1q[a])!=S)L(H i 1i b){9(c==b[i])6r;9(5e&&1m b[i]==\'5i\'&&c[i])E.1k(c[i],b[i]);J 9(b[i]!=W)c[i]=b[i]}I c};H F="15"+(1u 3D()).3B(),6p=0,5c={};E.1k({8a:G(a){18.$=D;9(a)18.15=w;I E},1n:G(a){I!!a&&1m a!="1M"&&!a.11&&a.1c!=1B&&/G/i.14(a+"")},4a:G(a){I a.2V&&!a.1G||a.37&&a.3H&&!a.3H.1G},5f:G(a){a=E.36(a);9(a){9(18.6l)18.6l(a);J 9(E.V.1N)18.56(a,0);J 3w.2O(18,a)}},11:G(b,a){I b.11&&b.11.27()==a.27()},1L:{},M:G(c,d,b){c=c==18?5c:c;H a=c[F];9(!a)a=c[F]=++6p;9(d&&!E.1L[a])E.1L[a]={};9(b!=W)E.1L[a][d]=b;I d?E.1L[a][d]:a},30:G(c,b){c=c==18?5c:c;H a=c[F];9(b){9(E.1L[a]){2E E.1L[a][b];b="";L(b 1i E.1L[a])1T;9(!b)E.30(c)}}J{2a{2E c[F]}29(e){9(c.53)c.53(F)}2E E.1L[a]}},N:G(a,b,c){9(c){9(a.K==W)L(H i 1i a)b.16(a[i],c);J L(H i=0,48=a.K;i<48;i++)9(b.16(a[i],c)===P)1T}J{9(a.K==W)L(H i 1i a)b.2O(a[i],i,a[i]);J L(H i=0,48=a.K,3i=a[0];i<48&&b.2O(3i,i,3i)!==P;3i=a[++i]){}}I a},1e:G(c,b,d,e,a){9(E.1n(b))b=b.2O(c,[e]);H f=/z-?4I|7T-?7Q|1r|69|7P-?1H/i;I b&&b.1c==4W&&d=="3C"&&!f.14(a)?b+"2T":b},1o:{1f:G(b,c){E.N((c||"").2l(/\\s+/),G(i,a){9(!E.1o.3K(b.1o,a))b.1o+=(b.1o?" ":"")+a})},28:G(b,c){b.1o=c!=W?E.2W(b.1o.2l(/\\s+/),G(a){I!E.1o.3K(c,a)}).66(" "):""},3K:G(t,c){I E.2A(c,(t.1o||t).3s().2l(/\\s+/))>-1}},2k:G(e,o,f){L(H i 1i o){e.R["3r"+i]=e.R[i];e.R[i]=o[i]}f.16(e,[]);L(H i 1i o)e.R[i]=e.R["3r"+i]},17:G(e,p){9(p=="1H"||p=="2N"){H b={},42,41,d=["7J","7I","7G","7F"];E.N(d,G(){b["7C"+6]=0;b["7B"+6+"5Z"]=0});E.2k(e,b,G(){9(E(e).3t(\':3R\')){42=e.7A;41=e.7w}J{e=E(e.4R(Q)).1Y(":4k").5W("2Q").2D().17({4C:"1P",2X:"4F",19:"2Z",7o:"0",1S:"0"}).5R(e.12)[0];H a=E.17(e.12,"2X")||"3V";9(a=="3V")e.12.R.2X="7g";42=e.7e;41=e.7b;9(a=="3V")e.12.R.2X="3V";e.12.3b(e)}});I p=="1H"?42:41}I E.3C(e,p)},3C:G(h,j,i){H g,2w=[],2k=[];G 3n(a){9(!E.V.1N)I P;H b=U.3o.3Z(a,S);I!b||b.4y("3n")==""}9(j=="1r"&&E.V.1h){g=E.1x(h.R,"1r");I g==""?"1":g}9(j.1t(/4u/i))j=y;9(!i&&h.R[j])g=h.R[j];J 9(U.3o&&U.3o.3Z){9(j.1t(/4u/i))j="4u";j=j.1p(/([A-Z])/g,"-$1").2p();H d=U.3o.3Z(h,S);9(d&&!3n(h))g=d.4y(j);J{L(H a=h;a&&3n(a);a=a.12)2w.4w(a);L(a=0;a<2w.K;a++)9(3n(2w[a])){2k[a]=2w[a].R.19;2w[a].R.19="2Z"}g=j=="19"&&2k[2w.K-1]!=S?"2s":U.3o.3Z(h,S).4y(j)||"";L(a=0;a<2k.K;a++)9(2k[a]!=S)2w[a].R.19=2k[a]}9(j=="1r"&&g=="")g="1"}J 9(h.3Q){H f=j.1p(/\\-(\\w)/g,G(m,c){I c.27()});g=h.3Q[j]||h.3Q[f];9(!/^\\d+(2T)?$/i.14(g)&&/^\\d/.14(g)){H k=h.R.1S;H e=h.4v.1S;h.4v.1S=h.3Q.1S;h.R.1S=g||0;g=h.R.71+"2T";h.R.1S=k;h.4v.1S=e}}I g},4D:G(a,e){H r=[];e=e||U;E.N(a,G(i,d){9(!d)I;9(d.1c==4W)d=d.3s();9(1m d=="1M"){d=d.1p(/(<(\\w+)[^>]*?)\\/>/g,G(m,a,b){I b.1t(/^(70|6Z|6Y|9Q|4t|9N|9K|3a|9G|9E)$/i)?m:a+"></"+b+">"});H s=E.36(d).2p(),1s=e.5B("1s"),2x=[];H c=!s.1g("<9y")&&[1,"<24>","</24>"]||!s.1g("<9w")&&[1,"<6T>","</6T>"]||s.1t(/^<(9u|1K|9t|9r|9p)/)&&[1,"<1I>","</1I>"]||!s.1g("<4m")&&[2,"<1I><1K>","</1K></1I>"]||(!s.1g("<9m")||!s.1g("<9k"))&&[3,"<1I><1K><4m>","</4m></1K></1I>"]||!s.1g("<6Y")&&[2,"<1I><1K></1K><6L>","</6L></1I>"]||E.V.1h&&[1,"1s<1s>","</1s>"]||[0,"",""];1s.3O=c[1]+d+c[2];1W(c[0]--)1s=1s.5p;9(E.V.1h){9(!s.1g("<1I")&&s.1g("<1K")<0)2x=1s.1w&&1s.1w.3j;J 9(c[1]=="<1I>"&&s.1g("<1K")<0)2x=1s.3j;L(H n=2x.K-1;n>=0;--n)9(E.11(2x[n],"1K")&&!2x[n].3j.K)2x[n].12.3b(2x[n]);9(/^\\s/.14(d))1s.3d(e.6F(d.1t(/^\\s*/)[0]),1s.1w)}d=E.2h(1s.3j)}9(0===d.K&&(!E.11(d,"2Y")&&!E.11(d,"24")))I;9(d[0]==W||E.11(d,"2Y")||d.Y)r.1a(d);J r=E.1R(r,d)});I r},1x:G(c,d,a){H e=E.4a(c)?{}:E.5o;9(d=="26"&&E.V.1N)c.12.4Z;9(e[d]){9(a!=W)c[e[d]]=a;I c[e[d]]}J 9(E.V.1h&&d=="R")I E.1x(c.R,"9e",a);J 9(a==W&&E.V.1h&&E.11(c,"2Y")&&(d=="9d"||d=="9a"))I c.97(d).6x;J 9(c.37){9(a!=W){9(d=="O"&&E.11(c,"4t")&&c.12)6G"O 94 93\'t 92 91";c.90(d,a)}9(E.V.1h&&/6C|3k/.14(d)&&!E.4a(c))I c.4p(d,2);I c.4p(d)}J{9(d=="1r"&&E.V.1h){9(a!=W){c.69=1;c.1E=(c.1E||"").1p(/6O\\([^)]*\\)/,"")+(3I(a).3s()=="8S"?"":"6O(1r="+a*6A+")")}I c.1E?(3I(c.1E.1t(/1r=([^)]*)/)[1])/6A).3s():""}d=d.1p(/-([a-z])/8Q,G(z,b){I b.27()});9(a!=W)c[d]=a;I c[d]}},36:G(t){I(t||"").1p(/^\\s+|\\s+$/g,"")},2h:G(a){H r=[];9(1m a!="8P")L(H i=0,2c=a.K;i<2c;i++)r.1a(a[i]);J r=a.2J(0);I r},2A:G(b,a){L(H i=0,2c=a.K;i<2c;i++)9(a[i]==b)I i;I-1},1R:G(a,b){9(E.V.1h){L(H i=0;b[i];i++)9(b[i].1y!=8)a.1a(b[i])}J L(H i=0;b[i];i++)a.1a(b[i]);I a},4V:G(b){H r=[],2f={};2a{L(H i=0,6y=b.K;i<6y;i++){H a=E.M(b[i]);9(!2f[a]){2f[a]=Q;r.1a(b[i])}}}29(e){r=b}I r},2W:G(b,a,c){9(1m a=="1M")a=3w("P||G(a,i){I "+a+"}");H d=[];L(H i=0,4g=b.K;i<4g;i++)9(!c&&a(b[i],i)||c&&!a(b[i],i))d.1a(b[i]);I d},1X:G(c,b){9(1m b=="1M")b=3w("P||G(a){I "+b+"}");H d=[];L(H i=0,4g=c.K;i<4g;i++){H a=b(c[i],i);9(a!==S&&a!=W){9(a.1c!=1B)a=[a];d=d.8M(a)}}I d}});H v=8K.8I.2p();E.V={4s:(v.1t(/.+(?:8F|8E|8C|8B)[\\/: ]([\\d.]+)/)||[])[1],1N:/6w/.14(v),34:/34/.14(v),1h:/1h/.14(v)&&!/34/.14(v),35:/35/.14(v)&&!/(8z|6w)/.14(v)};H y=E.V.1h?"4h":"5h";E.1k({5g:!E.V.1h||U.8y=="8x",4h:E.V.1h?"4h":"5h",5o:{"L":"8w","8v":"1o","4u":y,5h:y,4h:y,3O:"3O",1o:"1o",1Q:"1Q",3c:"3c",2Q:"2Q",8u:"8t",26:"26",8s:"8r"}});E.N({1D:"a.12",8q:"15.4e(a,\'12\')",8p:"15.2I(a,2,\'2q\')",8n:"15.2I(a,2,\'4d\')",8l:"15.4e(a,\'2q\')",8k:"15.4e(a,\'4d\')",8j:"15.5d(a.12.1w,a)",8i:"15.5d(a.1w)",6q:"15.11(a,\'8h\')?a.8f||a.8e.U:15.2h(a.3j)"},G(i,n){E.1b[i]=G(a){H b=E.1X(6,n);9(a&&1m a=="1M")b=E.3m(a,b);I 6.2o(E.4V(b))}});E.N({5R:"3g",8c:"6j",3d:"6g",8b:"50",89:"6H"},G(i,n){E.1b[i]=G(){H a=1q;I 6.N(G(){L(H j=0,2c=a.K;j<2c;j++)E(a[j])[n](6)})}});E.N({5W:G(a){E.1x(6,a,"");6.53(a)},88:G(c){E.1o.1f(6,c)},87:G(c){E.1o.28(6,c)},86:G(c){E.1o[E.1o.3K(6,c)?"28":"1f"](6,c)},28:G(a){9(!a||E.1E(a,[6]).r.K){E.30(6);6.12.3b(6)}},4n:G(){E("*",6).N(G(){E.30(6)});1W(6.1w)6.3b(6.1w)}},G(i,n){E.1b[i]=G(){I 6.N(n,1q)}});E.N(["85","5Z"],G(i,a){H n=a.2p();E.1b[n]=G(h){I 6[0]==18?E.V.1N&&3y["84"+a]||E.5g&&38.33(U.2V["5a"+a],U.1G["5a"+a])||U.1G["5a"+a]:6[0]==U?38.33(U.1G["6n"+a],U.1G["6m"+a]):h==W?(6.K?E.17(6[0],n):S):6.17(n,h.1c==3X?h:h+"2T")}});H C=E.V.1N&&3x(E.V.4s)<83?"(?:[\\\\w*57-]|\\\\\\\\.)":"(?:[\\\\w\\82-\\81*57-]|\\\\\\\\.)",6k=1u 47("^>\\\\s*("+C+"+)"),6i=1u 47("^("+C+"+)(#)("+C+"+)"),6h=1u 47("^([#.]?)("+C+"*)");E.1k({55:{"":"m[2]==\'*\'||15.11(a,m[2])","#":"a.4p(\'22\')==m[2]",":":{80:"i<m[3]-0",7Z:"i>m[3]-0",2I:"m[3]-0==i",6E:"m[3]-0==i",3v:"i==0",3u:"i==r.K-1",6f:"i%2==0",6e:"i%2","3v-46":"a.12.4l(\'*\')[0]==a","3u-46":"15.2I(a.12.5p,1,\'4d\')==a","7X-46":"!15.2I(a.12.5p,2,\'4d\')",1D:"a.1w",4n:"!a.1w",7W:"(a.6s||a.7V||15(a).2g()||\'\').1g(m[3])>=0",3R:\'"1P"!=a.O&&15.17(a,"19")!="2s"&&15.17(a,"4C")!="1P"\',1P:\'"1P"==a.O||15.17(a,"19")=="2s"||15.17(a,"4C")=="1P"\',7U:"!a.3c",3c:"a.3c",2Q:"a.2Q",26:"a.26||15.1x(a,\'26\')",2g:"\'2g\'==a.O",4k:"\'4k\'==a.O",5j:"\'5j\'==a.O",54:"\'54\'==a.O",52:"\'52\'==a.O",51:"\'51\'==a.O",6d:"\'6d\'==a.O",6c:"\'6c\'==a.O",2r:\'"2r"==a.O||15.11(a,"2r")\',4t:"/4t|24|6b|2r/i.14(a.11)",3K:"15.1Y(m[3],a).K",7S:"/h\\\\d/i.14(a.11)",7R:"15.2W(15.32,G(1b){I a==1b.T;}).K"}},6a:[/^(\\[) *@?([\\w-]+) *([!*$^~=]*) *(\'?"?)(.*?)\\4 *\\]/,/^(:)([\\w-]+)\\("?\'?(.*?(\\(.*?\\))?[^(]*?)"?\'?\\)/,1u 47("^([:.#]*)("+C+"+)")],3m:G(a,c,b){H d,2b=[];1W(a&&a!=d){d=a;H f=E.1E(a,c,b);a=f.t.1p(/^\\s*,\\s*/,"");2b=b?c=f.r:E.1R(2b,f.r)}I 2b},1Y:G(t,o){9(1m t!="1M")I[t];9(o&&!o.1y)o=S;o=o||U;H d=[o],2f=[],3u;1W(t&&3u!=t){H r=[];3u=t;t=E.36(t);H l=P;H g=6k;H m=g.2S(t);9(m){H p=m[1].27();L(H i=0;d[i];i++)L(H c=d[i].1w;c;c=c.2q)9(c.1y==1&&(p=="*"||c.11.27()==p.27()))r.1a(c);d=r;t=t.1p(g,"");9(t.1g(" ")==0)6r;l=Q}J{g=/^([>+~])\\s*(\\w*)/i;9((m=g.2S(t))!=S){r=[];H p=m[2],1R={};m=m[1];L(H j=0,31=d.K;j<31;j++){H n=m=="~"||m=="+"?d[j].2q:d[j].1w;L(;n;n=n.2q)9(n.1y==1){H h=E.M(n);9(m=="~"&&1R[h])1T;9(!p||n.11.27()==p.27()){9(m=="~")1R[h]=Q;r.1a(n)}9(m=="+")1T}}d=r;t=E.36(t.1p(g,""));l=Q}}9(t&&!l){9(!t.1g(",")){9(o==d[0])d.44();2f=E.1R(2f,d);r=d=[o];t=" "+t.68(1,t.K)}J{H k=6i;H m=k.2S(t);9(m){m=[0,m[2],m[3],m[1]]}J{k=6h;m=k.2S(t)}m[2]=m[2].1p(/\\\\/g,"");H f=d[d.K-1];9(m[1]=="#"&&f&&f.3S&&!E.4a(f)){H q=f.3S(m[2]);9((E.V.1h||E.V.34)&&q&&1m q.22=="1M"&&q.22!=m[2])q=E(\'[@22="\'+m[2]+\'"]\',f)[0];d=r=q&&(!m[3]||E.11(q,m[3]))?[q]:[]}J{L(H i=0;d[i];i++){H a=m[1]=="#"&&m[3]?m[3]:m[1]!=""||m[0]==""?"*":m[2];9(a=="*"&&d[i].11.2p()=="5i")a="3a";r=E.1R(r,d[i].4l(a))}9(m[1]==".")r=E.4X(r,m[2]);9(m[1]=="#"){H e=[];L(H i=0;r[i];i++)9(r[i].4p("22")==m[2]){e=[r[i]];1T}r=e}d=r}t=t.1p(k,"")}}9(t){H b=E.1E(t,r);d=r=b.r;t=E.36(b.t)}}9(t)d=[];9(d&&o==d[0])d.44();2f=E.1R(2f,d);I 2f},4X:G(r,m,a){m=" "+m+" ";H c=[];L(H i=0;r[i];i++){H b=(" "+r[i].1o+" ").1g(m)>=0;9(!a&&b||a&&!b)c.1a(r[i])}I c},1E:G(t,r,h){H d;1W(t&&t!=d){d=t;H p=E.6a,m;L(H i=0;p[i];i++){m=p[i].2S(t);9(m){t=t.7O(m[0].K);m[2]=m[2].1p(/\\\\/g,"");1T}}9(!m)1T;9(m[1]==":"&&m[2]=="5V")r=E.1E(m[3],r,Q).r;J 9(m[1]==".")r=E.4X(r,m[2],h);J 9(m[1]=="["){H g=[],O=m[3];L(H i=0,31=r.K;i<31;i++){H a=r[i],z=a[E.5o[m[2]]||m[2]];9(z==S||/6C|3k|26/.14(m[2]))z=E.1x(a,m[2])||\'\';9((O==""&&!!z||O=="="&&z==m[5]||O=="!="&&z!=m[5]||O=="^="&&z&&!z.1g(m[5])||O=="$="&&z.68(z.K-m[5].K)==m[5]||(O=="*="||O=="~=")&&z.1g(m[5])>=0)^h)g.1a(a)}r=g}J 9(m[1]==":"&&m[2]=="2I-46"){H e={},g=[],14=/(\\d*)n\\+?(\\d*)/.2S(m[3]=="6f"&&"2n"||m[3]=="6e"&&"2n+1"||!/\\D/.14(m[3])&&"n+"+m[3]||m[3]),3v=(14[1]||1)-0,d=14[2]-0;L(H i=0,31=r.K;i<31;i++){H j=r[i],12=j.12,22=E.M(12);9(!e[22]){H c=1;L(H n=12.1w;n;n=n.2q)9(n.1y==1)n.4U=c++;e[22]=Q}H b=P;9(3v==1){9(d==0||j.4U==d)b=Q}J 9((j.4U+d)%3v==0)b=Q;9(b^h)g.1a(j)}r=g}J{H f=E.55[m[1]];9(1m f!="1M")f=E.55[m[1]][m[2]];f=3w("P||G(a,i){I "+f+"}");r=E.2W(r,f,h)}}I{r:r,t:t}},4e:G(b,c){H d=[];H a=b[c];1W(a&&a!=U){9(a.1y==1)d.1a(a);a=a[c]}I d},2I:G(a,e,c,b){e=e||1;H d=0;L(;a;a=a[c])9(a.1y==1&&++d==e)1T;I a},5d:G(n,a){H r=[];L(;n;n=n.2q){9(n.1y==1&&(!a||n!=a))r.1a(n)}I r}});E.1j={1f:G(g,e,c,h){9(E.V.1h&&g.4j!=W)g=18;9(!c.2u)c.2u=6.2u++;9(h!=W){H d=c;c=G(){I d.16(6,1q)};c.M=h;c.2u=d.2u}H i=e.2l(".");e=i[0];c.O=i[1];H b=E.M(g,"2P")||E.M(g,"2P",{});H f=E.M(g,"2t",G(){H a;9(1m E=="W"||E.1j.4T)I a;a=E.1j.2t.16(g,1q);I a});H j=b[e];9(!j){j=b[e]={};9(g.4S)g.4S(e,f,P);J g.7N("43"+e,f)}j[c.2u]=c;6.1Z[e]=Q},2u:1,1Z:{},28:G(d,c,b){H e=E.M(d,"2P"),2L,4I;9(1m c=="1M"){H a=c.2l(".");c=a[0]}9(e){9(c&&c.O){b=c.4Q;c=c.O}9(!c){L(c 1i e)6.28(d,c)}J 9(e[c]){9(b)2E e[c][b.2u];J L(b 1i e[c])9(!a[1]||e[c][b].O==a[1])2E e[c][b];L(2L 1i e[c])1T;9(!2L){9(d.4P)d.4P(c,E.M(d,"2t"),P);J d.7M("43"+c,E.M(d,"2t"));2L=S;2E e[c]}}L(2L 1i e)1T;9(!2L){E.30(d,"2P");E.30(d,"2t")}}},1F:G(d,b,e,c,f){b=E.2h(b||[]);9(!e){9(6.1Z[d])E("*").1f([18,U]).1F(d,b)}J{H a,2L,1b=E.1n(e[d]||S),4N=!b[0]||!b[0].2M;9(4N)b.4w(6.4M({O:d,2m:e}));b[0].O=d;9(E.1n(E.M(e,"2t")))a=E.M(e,"2t").16(e,b);9(!1b&&e["43"+d]&&e["43"+d].16(e,b)===P)a=P;9(4N)b.44();9(f&&f.16(e,b)===P)a=P;9(1b&&c!==P&&a!==P&&!(E.11(e,\'a\')&&d=="4L")){6.4T=Q;e[d]()}6.4T=P}I a},2t:G(d){H a;d=E.1j.4M(d||18.1j||{});H b=d.O.2l(".");d.O=b[0];H c=E.M(6,"2P")&&E.M(6,"2P")[d.O],3q=1B.3A.2J.2O(1q,1);3q.4w(d);L(H j 1i c){3q[0].4Q=c[j];3q[0].M=c[j].M;9(!b[1]||c[j].O==b[1]){H e=c[j].16(6,3q);9(a!==P)a=e;9(e===P){d.2M();d.3p()}}}9(E.V.1h)d.2m=d.2M=d.3p=d.4Q=d.M=S;I a},4M:G(c){H a=c;c=E.1k({},a);c.2M=G(){9(a.2M)a.2M();a.7L=P};c.3p=G(){9(a.3p)a.3p();a.7K=Q};9(!c.2m&&c.65)c.2m=c.65;9(E.V.1N&&c.2m.1y==3)c.2m=a.2m.12;9(!c.4K&&c.4J)c.4K=c.4J==c.2m?c.7H:c.4J;9(c.64==S&&c.63!=S){H e=U.2V,b=U.1G;c.64=c.63+(e&&e.2R||b.2R||0);c.7E=c.7D+(e&&e.2B||b.2B||0)}9(!c.3Y&&(c.61||c.60))c.3Y=c.61||c.60;9(!c.5F&&c.5D)c.5F=c.5D;9(!c.3Y&&c.2r)c.3Y=(c.2r&1?1:(c.2r&2?3:(c.2r&4?2:0)));I c}};E.1b.1k({3W:G(c,a,b){I c=="5Y"?6.2G(c,a,b):6.N(G(){E.1j.1f(6,c,b||a,b&&a)})},2G:G(d,b,c){I 6.N(G(){E.1j.1f(6,d,G(a){E(6).5X(a);I(c||b).16(6,1q)},c&&b)})},5X:G(a,b){I 6.N(G(){E.1j.28(6,a,b)})},1F:G(c,a,b){I 6.N(G(){E.1j.1F(c,a,6,Q,b)})},7x:G(c,a,b){9(6[0])I E.1j.1F(c,a,6[0],P,b)},25:G(){H a=1q;I 6.4L(G(e){6.4H=0==6.4H?1:0;e.2M();I a[6.4H].16(6,[e])||P})},7v:G(f,g){G 4G(e){H p=e.4K;1W(p&&p!=6)2a{p=p.12}29(e){p=6};9(p==6)I P;I(e.O=="4x"?f:g).16(6,[e])}I 6.4x(4G).5U(4G)},2d:G(f){5T();9(E.3T)f.16(U,[E]);J E.3l.1a(G(){I f.16(6,[E])});I 6}});E.1k({3T:P,3l:[],2d:G(){9(!E.3T){E.3T=Q;9(E.3l){E.N(E.3l,G(){6.16(U)});E.3l=S}9(E.V.35||E.V.34)U.4P("5S",E.2d,P);9(!18.7t.K)E(18).39(G(){E("#4E").28()})}}});E.N(("7s,7r,39,7q,6n,5Y,4L,7p,"+"7n,7m,7l,4x,5U,7k,24,"+"51,7j,7i,7h,3U").2l(","),G(i,o){E.1b[o]=G(f){I f?6.3W(o,f):6.1F(o)}});H x=P;G 5T(){9(x)I;x=Q;9(E.V.35||E.V.34)U.4S("5S",E.2d,P);J 9(E.V.1h){U.7f("<7d"+"7y 22=4E 7z=Q "+"3k=//:><\\/1J>");H a=U.3S("4E");9(a)a.62=G(){9(6.2C!="1l")I;E.2d()};a=S}J 9(E.V.1N)E.4B=4j(G(){9(U.2C=="5Q"||U.2C=="1l"){4A(E.4B);E.4B=S;E.2d()}},10);E.1j.1f(18,"39",E.2d)}E.1b.1k({39:G(g,d,c){9(E.1n(g))I 6.3W("39",g);H e=g.1g(" ");9(e>=0){H i=g.2J(e,g.K);g=g.2J(0,e)}c=c||G(){};H f="4z";9(d)9(E.1n(d)){c=d;d=S}J{d=E.3a(d);f="5P"}H h=6;E.3G({1d:g,O:f,M:d,1l:G(a,b){9(b=="1C"||b=="5O")h.4o(i?E("<1s/>").3g(a.40.1p(/<1J(.|\\s)*?\\/1J>/g,"")).1Y(i):a.40);56(G(){h.N(c,[a.40,b,a])},13)}});I 6},7a:G(){I E.3a(6.5M())},5M:G(){I 6.1X(G(){I E.11(6,"2Y")?E.2h(6.79):6}).1E(G(){I 6.2H&&!6.3c&&(6.2Q||/24|6b/i.14(6.11)||/2g|1P|52/i.14(6.O))}).1X(G(i,c){H b=E(6).3i();I b==S?S:b.1c==1B?E.1X(b,G(a,i){I{2H:c.2H,1Q:a}}):{2H:c.2H,1Q:b}}).21()}});E.N("5L,5K,6t,5J,5I,5H".2l(","),G(i,o){E.1b[o]=G(f){I 6.3W(o,f)}});H B=(1u 3D).3B();E.1k({21:G(d,b,a,c){9(E.1n(b)){a=b;b=S}I E.3G({O:"4z",1d:d,M:b,1C:a,1V:c})},78:G(b,a){I E.21(b,S,a,"1J")},77:G(c,b,a){I E.21(c,b,a,"45")},76:G(d,b,a,c){9(E.1n(b)){a=b;b={}}I E.3G({O:"5P",1d:d,M:b,1C:a,1V:c})},75:G(a){E.1k(E.59,a)},59:{1Z:Q,O:"4z",2z:0,5G:"74/x-73-2Y-72",6o:Q,3e:Q,M:S},49:{},3G:G(s){H f,2y=/=(\\?|%3F)/g,1v,M;s=E.1k(Q,s,E.1k(Q,{},E.59,s));9(s.M&&s.6o&&1m s.M!="1M")s.M=E.3a(s.M);9(s.1V=="4b"){9(s.O.2p()=="21"){9(!s.1d.1t(2y))s.1d+=(s.1d.1t(/\\?/)?"&":"?")+(s.4b||"5E")+"=?"}J 9(!s.M||!s.M.1t(2y))s.M=(s.M?s.M+"&":"")+(s.4b||"5E")+"=?";s.1V="45"}9(s.1V=="45"&&(s.M&&s.M.1t(2y)||s.1d.1t(2y))){f="4b"+B++;9(s.M)s.M=s.M.1p(2y,"="+f);s.1d=s.1d.1p(2y,"="+f);s.1V="1J";18[f]=G(a){M=a;1C();1l();18[f]=W;2a{2E 18[f]}29(e){}}}9(s.1V=="1J"&&s.1L==S)s.1L=P;9(s.1L===P&&s.O.2p()=="21")s.1d+=(s.1d.1t(/\\?/)?"&":"?")+"57="+(1u 3D()).3B();9(s.M&&s.O.2p()=="21"){s.1d+=(s.1d.1t(/\\?/)?"&":"?")+s.M;s.M=S}9(s.1Z&&!E.5b++)E.1j.1F("5L");9(!s.1d.1g("8g")&&s.1V=="1J"){H h=U.4l("9U")[0];H g=U.5B("1J");g.3k=s.1d;9(!f&&(s.1C||s.1l)){H j=P;g.9R=g.62=G(){9(!j&&(!6.2C||6.2C=="5Q"||6.2C=="1l")){j=Q;1C();1l();h.3b(g)}}}h.58(g);I}H k=P;H i=18.6X?1u 6X("9P.9O"):1u 6W();i.9M(s.O,s.1d,s.3e);9(s.M)i.5C("9J-9I",s.5G);9(s.5y)i.5C("9H-5x-9F",E.49[s.1d]||"9D, 9C 9B 9A 5v:5v:5v 9z");i.5C("X-9x-9v","6W");9(s.6U)s.6U(i);9(s.1Z)E.1j.1F("5H",[i,s]);H c=G(a){9(!k&&i&&(i.2C==4||a=="2z")){k=Q;9(d){4A(d);d=S}1v=a=="2z"&&"2z"||!E.6S(i)&&"3U"||s.5y&&E.6R(i,s.1d)&&"5O"||"1C";9(1v=="1C"){2a{M=E.6Q(i,s.1V)}29(e){1v="5k"}}9(1v=="1C"){H b;2a{b=i.5s("6P-5x")}29(e){}9(s.5y&&b)E.49[s.1d]=b;9(!f)1C()}J E.5r(s,i,1v);1l();9(s.3e)i=S}};9(s.3e){H d=4j(c,13);9(s.2z>0)56(G(){9(i){i.9q();9(!k)c("2z")}},s.2z)}2a{i.9o(s.M)}29(e){E.5r(s,i,S,e)}9(!s.3e)c();I i;G 1C(){9(s.1C)s.1C(M,1v);9(s.1Z)E.1j.1F("5I",[i,s])}G 1l(){9(s.1l)s.1l(i,1v);9(s.1Z)E.1j.1F("6t",[i,s]);9(s.1Z&&!--E.5b)E.1j.1F("5K")}},5r:G(s,a,b,e){9(s.3U)s.3U(a,b,e);9(s.1Z)E.1j.1F("5J",[a,s,e])},5b:0,6S:G(r){2a{I!r.1v&&9n.9l=="54:"||(r.1v>=6N&&r.1v<9j)||r.1v==6M||E.V.1N&&r.1v==W}29(e){}I P},6R:G(a,c){2a{H b=a.5s("6P-5x");I a.1v==6M||b==E.49[c]||E.V.1N&&a.1v==W}29(e){}I P},6Q:G(r,b){H c=r.5s("9i-O");H d=b=="6K"||!b&&c&&c.1g("6K")>=0;H a=d?r.9g:r.40;9(d&&a.2V.37=="5k")6G"5k";9(b=="1J")E.5f(a);9(b=="45")a=3w("("+a+")");I a},3a:G(a){H s=[];9(a.1c==1B||a.4c)E.N(a,G(){s.1a(3f(6.2H)+"="+3f(6.1Q))});J L(H j 1i a)9(a[j]&&a[j].1c==1B)E.N(a[j],G(){s.1a(3f(j)+"="+3f(6))});J s.1a(3f(j)+"="+3f(a[j]));I s.66("&").1p(/%20/g,"+")}});E.1b.1k({1A:G(b,a){I b?6.1U({1H:"1A",2N:"1A",1r:"1A"},b,a):6.1E(":1P").N(G(){6.R.19=6.3h?6.3h:"";9(E.17(6,"19")=="2s")6.R.19="2Z"}).2D()},1z:G(b,a){I b?6.1U({1H:"1z",2N:"1z",1r:"1z"},b,a):6.1E(":3R").N(G(){6.3h=6.3h||E.17(6,"19");9(6.3h=="2s")6.3h="2Z";6.R.19="2s"}).2D()},6J:E.1b.25,25:G(a,b){I E.1n(a)&&E.1n(b)?6.6J(a,b):a?6.1U({1H:"25",2N:"25",1r:"25"},a,b):6.N(G(){E(6)[E(6).3t(":1P")?"1A":"1z"]()})},9c:G(b,a){I 6.1U({1H:"1A"},b,a)},9b:G(b,a){I 6.1U({1H:"1z"},b,a)},99:G(b,a){I 6.1U({1H:"25"},b,a)},98:G(b,a){I 6.1U({1r:"1A"},b,a)},96:G(b,a){I 6.1U({1r:"1z"},b,a)},95:G(c,a,b){I 6.1U({1r:a},c,b)},1U:G(k,i,h,g){H j=E.6D(i,h,g);I 6[j.3L===P?"N":"3L"](G(){j=E.1k({},j);H f=E(6).3t(":1P"),3y=6;L(H p 1i k){9(k[p]=="1z"&&f||k[p]=="1A"&&!f)I E.1n(j.1l)&&j.1l.16(6);9(p=="1H"||p=="2N"){j.19=E.17(6,"19");j.2U=6.R.2U}}9(j.2U!=S)6.R.2U="1P";j.3M=E.1k({},k);E.N(k,G(c,a){H e=1u E.2j(3y,j,c);9(/25|1A|1z/.14(a))e[a=="25"?f?"1A":"1z":a](k);J{H b=a.3s().1t(/^([+-]=)?([\\d+-.]+)(.*)$/),1O=e.2b(Q)||0;9(b){H d=3I(b[2]),2i=b[3]||"2T";9(2i!="2T"){3y.R[c]=(d||1)+2i;1O=((d||1)/e.2b(Q))*1O;3y.R[c]=1O+2i}9(b[1])d=((b[1]=="-="?-1:1)*d)+1O;e.3N(1O,d,2i)}J e.3N(1O,a,"")}});I Q})},3L:G(a,b){9(E.1n(a)){b=a;a="2j"}9(!a||(1m a=="1M"&&!b))I A(6[0],a);I 6.N(G(){9(b.1c==1B)A(6,a,b);J{A(6,a).1a(b);9(A(6,a).K==1)b.16(6)}})},9f:G(){H a=E.32;I 6.N(G(){L(H i=0;i<a.K;i++)9(a[i].T==6)a.6I(i--,1)}).5n()}});H A=G(b,c,a){9(!b)I;H q=E.M(b,c+"3L");9(!q||a)q=E.M(b,c+"3L",a?E.2h(a):[]);I q};E.1b.5n=G(a){a=a||"2j";I 6.N(G(){H q=A(6,a);q.44();9(q.K)q[0].16(6)})};E.1k({6D:G(b,a,c){H d=b&&b.1c==8Z?b:{1l:c||!c&&a||E.1n(b)&&b,2e:b,3J:c&&a||a&&a.1c!=8Y&&a};d.2e=(d.2e&&d.2e.1c==4W?d.2e:{8X:8W,8V:6N}[d.2e])||8T;d.3r=d.1l;d.1l=G(){E(6).5n();9(E.1n(d.3r))d.3r.16(6)};I d},3J:{6B:G(p,n,b,a){I b+a*p},5q:G(p,n,b,a){I((-38.9s(p*38.8R)/2)+0.5)*a+b}},32:[],2j:G(b,c,a){6.Y=c;6.T=b;6.1e=a;9(!c.3P)c.3P={}}});E.2j.3A={4r:G(){9(6.Y.2F)6.Y.2F.16(6.T,[6.2v,6]);(E.2j.2F[6.1e]||E.2j.2F.6z)(6);9(6.1e=="1H"||6.1e=="2N")6.T.R.19="2Z"},2b:G(a){9(6.T[6.1e]!=S&&6.T.R[6.1e]==S)I 6.T[6.1e];H r=3I(E.3C(6.T,6.1e,a));I r&&r>-8O?r:3I(E.17(6.T,6.1e))||0},3N:G(c,b,e){6.5u=(1u 3D()).3B();6.1O=c;6.2D=b;6.2i=e||6.2i||"2T";6.2v=6.1O;6.4q=6.4i=0;6.4r();H f=6;G t(){I f.2F()}t.T=6.T;E.32.1a(t);9(E.32.K==1){H d=4j(G(){H a=E.32;L(H i=0;i<a.K;i++)9(!a[i]())a.6I(i--,1);9(!a.K)4A(d)},13)}},1A:G(){6.Y.3P[6.1e]=E.1x(6.T.R,6.1e);6.Y.1A=Q;6.3N(0,6.2b());9(6.1e=="2N"||6.1e=="1H")6.T.R[6.1e]="8N";E(6.T).1A()},1z:G(){6.Y.3P[6.1e]=E.1x(6.T.R,6.1e);6.Y.1z=Q;6.3N(6.2b(),0)},2F:G(){H t=(1u 3D()).3B();9(t>6.Y.2e+6.5u){6.2v=6.2D;6.4q=6.4i=1;6.4r();6.Y.3M[6.1e]=Q;H a=Q;L(H i 1i 6.Y.3M)9(6.Y.3M[i]!==Q)a=P;9(a){9(6.Y.19!=S){6.T.R.2U=6.Y.2U;6.T.R.19=6.Y.19;9(E.17(6.T,"19")=="2s")6.T.R.19="2Z"}9(6.Y.1z)6.T.R.19="2s";9(6.Y.1z||6.Y.1A)L(H p 1i 6.Y.3M)E.1x(6.T.R,p,6.Y.3P[p])}9(a&&E.1n(6.Y.1l))6.Y.1l.16(6.T);I P}J{H n=t-6.5u;6.4i=n/6.Y.2e;6.4q=E.3J[6.Y.3J||(E.3J.5q?"5q":"6B")](6.4i,n,0,1,6.Y.2e);6.2v=6.1O+((6.2D-6.1O)*6.4q);6.4r()}I Q}};E.2j.2F={2R:G(a){a.T.2R=a.2v},2B:G(a){a.T.2B=a.2v},1r:G(a){E.1x(a.T.R,"1r",a.2v)},6z:G(a){a.T.R[a.1e]=a.2v+a.2i}};E.1b.6m=G(){H c=0,3E=0,T=6[0],5t;9(T)8L(E.V){H b=E.17(T,"2X")=="4F",1D=T.12,23=T.23,2K=T.3H,4f=1N&&3x(4s)<8J;9(T.6V){5w=T.6V();1f(5w.1S+38.33(2K.2V.2R,2K.1G.2R),5w.3E+38.33(2K.2V.2B,2K.1G.2B));9(1h){H d=E("4o").17("8H");d=(d=="8G"||E.5g&&3x(4s)>=7)&&2||d;1f(-d,-d)}}J{1f(T.5l,T.5z);1W(23){1f(23.5l,23.5z);9(35&&/^t[d|h]$/i.14(1D.37)||!4f)d(23);9(4f&&!b&&E.17(23,"2X")=="4F")b=Q;23=23.23}1W(1D.37&&!/^1G|4o$/i.14(1D.37)){9(!/^8D|1I-9S.*$/i.14(E.17(1D,"19")))1f(-1D.2R,-1D.2B);9(35&&E.17(1D,"2U")!="3R")d(1D);1D=1D.12}9(4f&&b)1f(-2K.1G.5l,-2K.1G.5z)}5t={3E:3E,1S:c}}I 5t;G d(a){1f(E.17(a,"9T"),E.17(a,"8A"))}G 1f(l,t){c+=3x(l)||0;3E+=3x(t)||0}}})();',62,616,'||||||this|||if|||||||||||||||||||||||||||||||||function|var|return|else|length|for|data|each|type|false|true|style|null|elem|document|browser|undefined||options|||nodeName|parentNode||test|jQuery|apply|css|window|display|push|fn|constructor|url|prop|add|indexOf|msie|in|event|extend|complete|typeof|isFunction|className|replace|arguments|opacity|div|match|new|status|firstChild|attr|nodeType|hide|show|Array|success|parent|filter|trigger|body|height|table|script|tbody|cache|string|safari|start|hidden|value|merge|left|break|animate|dataType|while|map|find|global||get|id|offsetParent|select|toggle|selected|toUpperCase|remove|catch|try|cur|al|ready|duration|done|text|makeArray|unit|fx|swap|split|target||pushStack|toLowerCase|nextSibling|button|none|handle|guid|now|stack|tb|jsre|timeout|inArray|scrollTop|readyState|end|delete|step|one|name|nth|slice|doc|ret|preventDefault|width|call|events|checked|scrollLeft|exec|px|overflow|documentElement|grep|position|form|block|removeData|rl|timers|max|opera|mozilla|trim|tagName|Math|load|param|removeChild|disabled|insertBefore|async|encodeURIComponent|append|oldblock|val|childNodes|src|readyList|multiFilter|color|defaultView|stopPropagation|args|old|toString|is|last|first|eval|parseInt|self|domManip|prototype|getTime|curCSS|Date|top||ajax|ownerDocument|parseFloat|easing|has|queue|curAnim|custom|innerHTML|orig|currentStyle|visible|getElementById|isReady|error|static|bind|String|which|getComputedStyle|responseText|oWidth|oHeight|on|shift|json|child|RegExp|ol|lastModified|isXMLDoc|jsonp|jquery|previousSibling|dir|safari2|el|styleFloat|state|setInterval|radio|getElementsByTagName|tr|empty|html|getAttribute|pos|update|version|input|float|runtimeStyle|unshift|mouseover|getPropertyValue|GET|clearInterval|safariTimer|visibility|clean|__ie_init|absolute|handleHover|lastToggle|index|fromElement|relatedTarget|click|fix|evt|andSelf|removeEventListener|handler|cloneNode|addEventListener|triggered|nodeIndex|unique|Number|classFilter|prevObject|selectedIndex|after|submit|password|removeAttribute|file|expr|setTimeout|_|appendChild|ajaxSettings|client|active|win|sibling|deep|globalEval|boxModel|cssFloat|object|checkbox|parsererror|offsetLeft|wrapAll|dequeue|props|lastChild|swing|handleError|getResponseHeader|results|startTime|00|box|Modified|ifModified|offsetTop|evalScript|createElement|setRequestHeader|ctrlKey|callback|metaKey|contentType|ajaxSend|ajaxSuccess|ajaxError|ajaxStop|ajaxStart|serializeArray|init|notmodified|POST|loaded|appendTo|DOMContentLoaded|bindReady|mouseout|not|removeAttr|unbind|unload|Width|keyCode|charCode|onreadystatechange|clientX|pageX|srcElement|join|outerHTML|substr|zoom|parse|textarea|reset|image|odd|even|before|quickClass|quickID|prepend|quickChild|execScript|offset|scroll|processData|uuid|contents|continue|textContent|ajaxComplete|clone|setArray|webkit|nodeValue|fl|_default|100|linear|href|speed|eq|createTextNode|throw|replaceWith|splice|_toggle|xml|colgroup|304|200|alpha|Last|httpData|httpNotModified|httpSuccess|fieldset|beforeSend|getBoundingClientRect|XMLHttpRequest|ActiveXObject|col|br|abbr|pixelLeft|urlencoded|www|application|ajaxSetup|post|getJSON|getScript|elements|serialize|clientWidth|hasClass|scr|clientHeight|write|relative|keyup|keypress|keydown|change|mousemove|mouseup|mousedown|right|dblclick|resize|focus|blur|frames|instanceof|hover|offsetWidth|triggerHandler|ipt|defer|offsetHeight|border|padding|clientY|pageY|Left|Right|toElement|Bottom|Top|cancelBubble|returnValue|detachEvent|attachEvent|substring|line|weight|animated|header|font|enabled|innerText|contains|only|size|gt|lt|uFFFF|u0128|417|inner|Height|toggleClass|removeClass|addClass|replaceAll|noConflict|insertAfter|prependTo|wrap|contentWindow|contentDocument|http|iframe|children|siblings|prevAll|nextAll|wrapInner|prev|Boolean|next|parents|maxLength|maxlength|readOnly|readonly|class|htmlFor|CSS1Compat|compatMode|compatible|borderTopWidth|ie|ra|inline|it|rv|medium|borderWidth|userAgent|522|navigator|with|concat|1px|10000|array|ig|PI|NaN|400|reverse|fast|600|slow|Function|Object|setAttribute|changed|be|can|property|fadeTo|fadeOut|getAttributeNode|fadeIn|slideToggle|method|slideUp|slideDown|action|cssText|stop|responseXML|option|content|300|th|protocol|td|location|send|cap|abort|colg|cos|tfoot|thead|With|leg|Requested|opt|GMT|1970|Jan|01|Thu|area|Since|hr|If|Type|Content|meta|specified|open|link|XMLHTTP|Microsoft|img|onload|row|borderLeftWidth|head|attributes'.split('|'),0,{}))
// ecshoplibrary.vars.js
/*
*   Release notes
*   ----------------------------------------------------------------
*   Name: ecShopLibraryVars - Collection of global variables
*   Authors: R&D / Special Projects
*   Version: 2.05
*   Last modified: 14 Nov 2008 by Jai
*
*   Note: This file is maintained in the .NET solution "ecShop".
*   Do not modify it directly on the server.
*                                            
*   Naming conventions:                                
*   - global variables: _ecshopXXXX
*
*   Last modified:
*   Added variables for manage stock, re order level and stock lowest level 
*/


//Global variables
var _ecshopDebug = false; //Set to true for debugging
var _ecshopCookieDebug = false; //Set to true to debug cookie values in the checkout
var _ecshopUseCookiesInCheckout = true; //Set to false to disable cookies in the checkout process
var _ecshopXmlAttributes = new Array('firstname','middlename','lastname','address','addressdescription','apartment','careof','postalcode','city','state','pobox','region','phone','mobile','fax','organisation','vatnumber'); //This array contains all the available values for an address in ecWeb
var _ecshopAddressFormat = null;
var _ecshopShopParam = "";
var _ecshopCurrentUrl = document.location.href;
var _ecshopCheckoutCookie = "ecshopshopinfo" + _ecshopWebsiteId;
var _ecshopNodeCookie = "ecshopshopnodes" + _ecshopWebsiteId;
var _ecshopCookieArray = new Array();
var _ecshopNodeArray = new Array();
var _ecshopGettingFormat = false;
var _ecshopUserId = "";
var _ecshopUserEmail = "";
var _ecshopBasketPageId;
var _ecshopBasketPositionId;
var _ecshopOrderPageId;
var _ecshopOrderPositionId;
var _ecshopOptionXml = new Array();
var _ecshopVariationParam = new Array();
var _ecshopOldOptions = "";
var _ecshopNewOptions = "";
var _ecshopRedirect = "";
var _ecshopImageNameArray = new Array();
var _ecshopImageVersionArray = new Array();
var _ecshopImageThumbnailArray = new Array();
var _ecshopImageOriginalArray = new Array();
var _ecshopImageCounter = 0;
var _ecshopZoomText = "";
var _ecshopLargeText = "";
var _ecshopShippingRates = new Array();
var _ecshopShippingRatesFormatted = new Array();
var _ecshopOrderTotal = new Array();
var _ecshopOrderFormatted = new Array();
var _ecshopShippingName = new Array();
var _ecshopShippingDescription = new Array();
var _ecshopShippingTime = new Array();
var _ecshopShippingGuid = new Array();
var _ecshopShippingTotalContainer;
var _ecshopOrderTotalContainer;
var _ecshopShippingDescriptionContainer;
var _ecshopSelectedShippingPrice;
var _ecshopSelectedShippingPriceFormatted;
var _ecshopSelectedShippingGuid;
var _ecshopSelectedShippingPosition;
var _ecshopShippingPricesCollection = new Array();
var _ecshopShippingPricesCollectionFormatted = new Array();
var _ecshopShippingGuidCollection = new Array();
var _ecshopOrderTotalPrice = new Array();
var _ecshopOrderTotalPriceFormatted = new Array();
var _ecshopShippingPrefix;
var _ecshopAveragePrefix;
var _ecshopDaysText;
var _ecshopCurrency;
var _ecshopOrderXML = "";
var _ecshopOrderElement = "";
var _ecshopHideAdded = false;
var _ecshopAddingProduct = false;
var _ecshopTransformContainers = new Array();
var _ecshopPackagePriceArray = new Array();
var _ecshopPriceLabel = "";
var _ecshopStockLabel = "";
var _ecshopImageLabel = "";
var _ecshopPackageImage = "";
var _ecshopPackageLink = "";
var _ecshopStockType = "";
var _ecshopNoStockMsg = "";
var _ecshopRatingProductId;
var _ecshopRatingContainerId;
var _ecshopUserRating;
var _ecshopAccountUser = "";
var _ecshopPageType = ""; 
var _ecshopAddressContainer = "";
var _ecshopGetWebshop = false;
var _ecshopCheckoutLink = "";
var _ecshopYouJustAddedHeader = "";
var _ecshopLastPage = ""; //Used in news detail and product details to add the title of the item as the last page in the document.title
var _ecshopSaveInvoiceXml = "";
var _ecshopSaveInvoiceCookie = "";
var _ecshopAddedBasketTimer = null;
var _ecshopDropdownBasketTimer = null;
var _ecshopTimeoutObject = null;
var _ecshopTempX = 0;
var _ecshopTempY = 0;
var _ecshopInOrderProcess = false;
var _ecshopObserveTimer = false;
var _ecshopPreviousHistoryStep = "";
var _ecshopBreadCrumbContainer = "";
var _ecshopBreadCrumbs = "";
var _ecshopShippingRetainCookie = "1";
var _ecshopSelectedShippingGuidCookie = "ecshopselectedshippingguid" + _ecshopWebsiteId;
var _ecshopSelectedShippingPositionCookie = "ecshopselectedshippingposition" + _ecshopWebsiteId;
var _ecshopUserLoggedInCookie = "ecshopuserloggedin" + _ecshopWebsiteId;
var _ecshopShopParamCookie = "ecshopshopparam" + _ecshopWebsiteId;
var _ecshopProductRatingCookie = "ecshopproductrating" + _ecshopWebsiteId;
var _ecshopLangCookie = "ecshoplang" + _ecshopWebsiteId;
var _ecshopOkButton = "";
var _ecshopCancelButton = "";
var _ecshopCloseWindow = "";
var _ecshopRemoveLastProdHeading = "";
var _ecshopRemoveLastProdMessage = "";
var _ecshopRedirectTo = "";
var _ecshopCheckoutComplete = false;
var _ecshopLastOpenedProduct = "";
var _ecshopPreLoading = false;
var _ecshopSearchCookie = "ecshopsearch" + _ecshopWebsiteId;
var _ecshopSearchValuesCookie = "ecshopsearchvalues" + _ecshopWebsiteId;
var _ecshopProductsInBasketGuidArray = new Array();
var _ecshopProductsInBasketQuantityArray = new Array();
var _ecshopTimeoutCookie = "ecshoptimeout" + _ecshopWebsiteId;
var _ecshopDynamicRateSelected = false;
var _ecshopDynamicRatePostalcode = "";
var _ecshopDynamicRate = "";
var _ecshopDynamicRateValid = false;
var _ecshopSelectedDeliveryTime = "";
var _ecshopSelectedDeliveryDate = "";
var _ecshopSelectedDeliveryAgent = "";
var _ecshopManageStock = "";
var _ecshopReOrderLevel = "";
var _ecshopStockLowestLevel = "";
var _ecshopProductGuidArray = new Array();
var _ecshopCreditLimitPrice = "";
var _ecshopPackAllVariations = "";

//ecshoplibrary.core.js
/*
*   Release notes
*   ----------------------------------------------------------------
*   Name: ecShopLibrary
*   Authors: R&D / Special Projects
*   Version: 2.16
*   Last modified: 24 June 2009 by Jai
*
*   Note: This file is maintained in the .NET solution "ecShop".
*   Do not modify it directly on the server.
*                                            
*   Naming conventions:                                
*   - global variables: _ecshopXXXX
*   - functions: ecShopXXX()
*
*   Last modified:
*   Changed payment description to payment type and implemented save basket, delete basket and update current basket.
*   
*   
*/

_ecshopOkButton = ecTranslate("common-buttons.common-ok");
_ecshopCancelButton = ecTranslate("common-buttons.common-cancel");
_ecshopCloseWindow = ecTranslate("common-buttons.common-close-window");
_ecshopRemoveLastProdHeading = ecTranslate("checkout-headings.checkout-remove-last-product-from-basket-heading");
_ecshopRemoveLastProdMessage = ecTranslate("checkout-messages.checkout-remove-last-product-from-basket-message");
_ecshopClearBasketHeading = ecTranslate("checkout-headings.checkout-clear-basket-heading");
_ecshopClearBasketMessage = ecTranslate("checkout-messages.checkout-clear-basket-message");
_ecshopCancelOrderHeading = ecTranslate("checkout-headings.checkout-cancel-order-heading");
_ecshopCancelOrderMessage = ecTranslate("checkout-messages.checkout-cancel-order-message");
_ecshopYouJustAddedHeader = ecTranslate("basket-labels.basket-just-added");
_ecshopShowSearchResult = ecTranslate("product-labels.product-back-to-search");
_ecshopHideSearchResult = ecTranslate("product-labels.product-search-hide-result");
_ecshopZoomText = ecTranslate("product-labels.product-zoom-in");
_ecshopLargeText = ecTranslate("product-buttons.product-see-large-image");
_ecshopSelectboxDefaultText = ecTranslate("product-labels.product-selectbox-default-text");
_ecshopCreditLimitHeading = ecTranslate("basket-headings.basket-credit-limit-exceeds");
_ecshopCreditLimitMessageStart = ecTranslate("basket-messages.basket-credit-limit-exceeds-message-start");
_ecshopCreditLimitMessageEnd = ecTranslate("basket-messages.basket-credit-limit-exceeds-message-end");
_ecshopStockLimitHeading = ecTranslate("basket-headings.basket-stock-limit-exceeds");
_ecshopNoStockMsg = ecTranslate("product-labels.product-nostock");
_ecshopPriceFromLabel = ecTranslate("product-labels.product-pricefrom");

// *************************************\\
//                                      \\
//              Login                   \\
//                                      \\
// *************************************\\
    
    function dontShowLogin(obj) {
        if(obj.checked)
            ecShopAddOrUpdateArray("dontregister","true");
    }

// *************************************\\
//                                      \\
//          Save Basket                 \\
//                                      \\
// *************************************\\

function ecShopSaveBasket(loginLink, url, param, value, userId){
    if (userId.length > 0) {
		if(url.indexOf("savebasket&delete=true") > -1){
			var splitUrl = url.split("?");
			url = splitUrl[0];
		}
		document.location.href = checkUrl(url, param, value);
    } else {
        document.location.href = loginLink;
    }
}

function ecShopDeleteBasket(url, param, value) {
	document.location.href = checkUrl(url, param, value);
}

function ecShopSetAsCurrentBasket(productsGuid, crntBasketCnt, optionstring, clearCrntBasket) {
	var hiddenFieldObj = document.getElementById("addproductsave");
	var hiddenOptionsObj = document.getElementById("options");

	if(hiddenFieldObj)
		hiddenFieldObj.value = productsGuid;

	if(hiddenOptionsObj)
		hiddenOptionsObj.value = optionstring;
	
	if(crntBasketCnt > 0 && clearCrntBasket) {
		ecShopClearBasketReceipt();
		setTimeout("ecShopAddCurrentBasket()",2000);
	} else {
		ecShopAddCurrentBasket();
	}
}

function ecShopAddCurrentBasket() {
	document.savebasketform.submit();
	if (navigator.appName == 'Microsoft Internet Explorer') {
		history.go(0);
	} else {
		window.location.reload();
	}
}

function checkUrl(url, param, value) {
	var re = new RegExp("([?|&])" + param + ".*?(&|$)","i");
	
	if (url.match(re)) 
        return url.replace(re,'$1' + param + value + '$2');
    else if(url.indexOf("?") <= -1)
        return url + '?' + param + value;
	else
		return url + '&' + param + value;
}

// *************************************\\
//                                      \\
//          Checkout Process            \\
//                                      \\
// *************************************\\

function ecShopGoToCheckout(loginLink, checkoutLink, userId) {
    var cookieValue = readCookie(_ecshopUserLoggedInCookie);

    if (cookieValue == 'undefined' || cookieValue == '' || cookieValue == null) {
        cookieValue = "0";
    }
	
	//if (cookieValue == "1") {
    if (userId.length > 0) {
        link = checkoutLink;
    } else {
        link = loginLink;
    }
    var dontRegister = ecShopReturnFieldFromCookie("dontregister");
    var checkoutStep = 1;
    var updateLink = (link.indexOf('sign_in') > 0) ? link : (link + "#step" + checkoutStep);
    ecShopGoogleTrackCheckout(checkoutStep);
    if (dontRegister == "true" && checkoutLink.length > 0) {
        location.replace(checkoutLink + '#step' + checkoutStep);
    } else {
        var currentUrl = document.location.href;
        if (currentUrl.indexOf('#step4') > 0) {
            location.replace(link + "#step1");
            if (navigator.appName == 'Microsoft Internet Explorer') {
                history.go(0);
            } else {
                window.location.reload();
            }
        } else {
            location.replace(updateLink);
        }
    }
}

function ecShopLoadCheckout() {
    _ecshopInOrderProcess = true;
    
    ecShopChangeSelectedTab(1);
    //This will monitor if the user is leaving the checkout without completing it.
    //window.onbeforeunload = ecShopLeaveCheckout;
    window.onunload = ecShopLeaveCheckout;

    if(_ecshopUserId.length > 0) {
        // Checkout for registered user
        ecShopGetAddresses("webshop", _ecshopUserId, "ecshopfx_address_list", true);
    }
    else {
        // Checkout for non-registered user
        if(_ecshopAddressFormat != null) {
            ecShopLoadStep1NotRegistered(_ecshopAddressFormat);
        } else {
            ecShop.Web.Soap.ecShopWS.GetAddressForm(ecShopLoadStep1NotRegistered, OnError);            
        }
    }
}

function ecShopLeaveCheckout() {
    _ecshopInOrderProcess = false;
    clearInterval(_ecshopObserveTimer);

    if(_ecshopUseCookiesInCheckout) {
        ecShopAddOrUpdateArray("leftcheckout", true);
    }
}

function ecShopUpdateCheckoutUrl(step) {
    if(location.hash != "#step" + step) {
        //location.href = location.pathname + location.search + "#step" + step;
    }
}

function ecShopLoadStep1Registered() {
        
    //Check if users are coming back to the order process after leaving it once
    //if yes, take them back to the step they were on.
    if(_ecshopUseCookiesInCheckout) {
        var leftCheckout = ecShopReturnFieldFromCookie("leftcheckout");
        
        if(leftCheckout == "true") {            
            var selectedBilling = ecShopReturnFieldFromCookie("selectedbilling");
            var selectedShipping = 0;

            if(selectedBilling == null || selectedBilling == "") {
                selectedBilling = 0;
            } else {
                var selectedBillingOption = document.getElementById("ecshopfx_billing_radio_" + selectedBilling);
                
                if(selectedBillingOption) {
                    selectedBillingOption.checked = true;
                }
            }

            var showShipping = ecShopReturnFieldFromCookie("showshipping");

            if(showShipping == "true") {
                var shippingAddressContainer = document.getElementById("ecshopfx_other_shipping_address");
                
                selectedShipping = ecShopReturnFieldFromCookie("selectedshipping");
                
                if(selectedShipping == null || selectedShipping == "") {
                    selectedShipping = 0;
                } else {
                    var selectedShippingOption = document.getElementById("ecshopfx_shipping_radio_" + selectedBilling);
                
                    if(selectedShippingOption) {
                        selectedShippingOption.checked = true;
                    }
                }
                
                if(shippingAddressContainer) {
                    shippingAddressContainer.checked = true;
                    toggleObject("ecshopfx_shipping_address");
                }
            }
            
            var step = ecShopReturnFieldFromCookie("step"); 
                        
            if(step.length > 0) {
                
                if(step == 2 || step == 3) {
                    goStep2();
                    ecShopUpdateCheckoutUrl(2);
                }
            }
            
            //Reset left checkout value
            ecShopAddOrUpdateArray("leftcheckout", false);
        }
    }
}

function ecShopLoadStep1NotRegistered(results) {  
    if(_ecshopAddressFormat == null) {
        _ecshopAddressFormat = results;
    }
    
    //3. Generate the HTML for the address format
    
    ecShopCreateAddressForm(results, "ecshopfx_billing_box", _ecshopShopParam, "billing");
    
    //4. If cookies should be used, check if the cookie exists and fill the address with values from the cookie

    //Check if users are coming back to the order process after leaving it once
    //if yes, take them back to the step they were on.
    if(_ecshopUseCookiesInCheckout) {
        var leftCheckout = ecShopReturnFieldFromCookie("leftcheckout");       
        
        if(leftCheckout == "true") {

            ecShopUpdateAddressFromCookie("billing");
        
            //Check if shipping address was previously entered and load it from the cookie
            var showShipping = ecShopReturnFieldFromCookie("showshipping");
                   
            if(showShipping == "true") {
                var shippingAddressContainer = document.getElementById("ecshopfx_other_shipping_address");
                
                if(shippingAddressContainer) {
                    shippingAddressContainer.checked = true;
                    //this updates the shipping address
                    ecShopShowShippingAddress();
                }
            }
            
            //Update e-mail
            var email = ecShopReturnFieldFromCookie("email");            
            var container = document.getElementById(_ecshopShopParam + "email");
            
            if(container) {
                if(container.value == "") {
                    container.value = email;
                }
            }
            
            var step = ecShopReturnFieldFromCookie("step"); 
            
            if(step.length > 0) {

                if(step == 2 || step == 3) {
                    goStep2();
                    ecShopUpdateCheckoutUrl(2);
                } 
            }
            
            //Reset left checkout value
            ecShopAddOrUpdateArray("leftcheckout", false);
        }
    }
}

function ecShopCreateAddressForm(results, elementId, param, prefix) {
    if(prefix == undefined)
        prefix = "";

    var html = '';

    for(var i = 0; i < results.length; i++) {
        var collection = "common-labels.";
        var word = "common-field-" + results[i].Xml;
        var translation = ecTranslate(collection + word);
        
        var name = (translation.indexOf(word) > -1) ? results[i].Name : translation;
               
        html += '<div class="clear">';
        html += '   <label for="' + param + prefix + results[i].Xml + '">' + (results[i].Validation.indexOf("validate") > -1 ? '* ' : '') + ' ' + name + '</label>';
        
        if(results[i].IsReadOnly) {
            html += '   <input id="' + param + prefix + results[i].Xml + '" name="' + param + results[i].Xml + '" class="' + results[i].Validation + '" size="20" maxlength="' + results[i].MaxLength + '" value="' + results[i].DefaultValue + '" readonly="readonly"></input>';            
        } else {
            html += '   <input id="' + param + prefix + results[i].Xml + '" name="' + param + results[i].Xml + '" class="' + results[i].Validation + '" size="20" maxlength="' + results[i].MaxLength + '" value=""></input>';
        }
        html += '</div>';
    }        

    ReplaceContent(elementId, html);
}

function ecShopShowShippingAddress() {
    var shippingAddress = document.getElementById("ecshopfx_shipping_address");
    
    if(shippingAddress) {
        toggleObject("ecshopfx_shipping_address");
        
        if(shippingAddress.className.indexOf("ecshop_hide") < 0) {
            var shippingBox = document.getElementById("ecshopfx_shipping_box");
            
            if(shippingBox) {
                ecShopCreateAddressForm(_ecshopAddressFormat, "ecshopfx_shipping_box", _ecshopShopParam, "shipping");
                
                if(_ecshopUseCookiesInCheckout) ecShopUpdateAddressFromCookie("shipping");                
            }
        }
    }
    
    var shippingCheckBox = document.getElementById("ecshopfx_other_shipping_address");
    
    if(shippingCheckBox) {
        ecShopAddOrUpdateArray("showshipping", shippingCheckBox.checked);
    }
}

function ecShopLoadAddressesFromStep1(billingOption, shippingOption) {
    if(_ecshopAddressFormat == null) {
        ecShopGetAddressFormatArray();  
        setTimeout("ecShopLoadAddressesFromStep1('" + billingOption + "', '" + shippingOption + "')", 500); 
    } else {
        if(billingOption == undefined) billingOption = 0;
        if(shippingOption == undefined) shippingOption = 0;

        if(billingOption > 0) {
            var billingRadio = document.getElementById("ecshopfx_billing_radio_" + billingOption);

            if(billingRadio) {
                billingRadio.checked = true;
            }
            
            ecShopAddOrUpdateArray("selectedbilling", billingOption);
        }

        var billingHTML = ecShopLoadAddress("billing", billingOption);
        
        ReplaceContent("ecshopfx_billing_from_step_1", billingHTML);
        
        var shippingAddressContainer = document.getElementById("ecshopfx_other_shipping_address");
        
        if(shippingAddressContainer.checked) {
            if(shippingOption > 0) {
                var shippingRadio = document.getElementById("ecshopfx_shipping_radio_" + shippingOption);

                if(shippingRadio) {
                    shippingRadio.checked = true;
                }
                
                ecShopAddOrUpdateArray("selectedshipping", shippingOption);
            }
            
            var shippingHTML = ecShopLoadAddress("shipping", shippingOption);
            
            
            ReplaceContent("ecshopfx_shipping_from_step_1", shippingHTML);
            hideObject("ecshopfx_same_as_billing");
        } else {
            ReplaceContent("ecshopfx_shipping_from_step_1", billingHTML);
            showObject("ecshopfx_same_as_billing");
        }
    }
}

function ecShopLoadAddress(prefix, option) {
    var html = '';
    var array = _ecshopCookieArray;
    
    if(option == undefined) {
        option = 0;
    }
    
    if(_ecshopUseCookiesInCheckout && option == 0) {
        ecShopUpdateAddressFromCookie(prefix);
    }
    
    for(var i = 0; i < _ecshopAddressFormat.length; i++) {
        var value = "";
        var container = "";
        
        if(option > 0) {
            var id = "ecshopfx_" + prefix + "_option_" + option + "_" + _ecshopAddressFormat[i].Xml;
            
            container = document.getElementById(id);
                           
            if(container) {
                value = container.innerHTML;
            }
        } else {
            container = document.getElementById(_ecshopShopParam + prefix + _ecshopAddressFormat[i].Xml);
            
            if(container) {
                value = container.value;
            }
        }
            
        if(value == "" || value == undefined || value == "undefined") {
            value = array[prefix + _ecshopAddressFormat[i].Xml];
        } 
        
        if(value != "" && value != undefined) {
            html += value;
            
            if(_ecshopAddressFormat[i].LineBreak) {
                html += '<br/>';
            } else {
                html += ' ';
            }                
        }
    }        
    
    return html;
}

function ecShopChooseAddress(option, prefix) {
    for(var i = 0; i < _ecshopXmlAttributes.length; i++) {
        var id = "ecshopfx_" + prefix + "_option_" + option + "_" + _ecshopXmlAttributes[i];
        var container = document.getElementById(id);

        if(container) {
            var value = container.innerHTML;
            
            ecShopAddOrUpdateArray(prefix + _ecshopXmlAttributes[i], value);
        } 
    }      
}

function ecShopLoadMethods(method, type) {
    var value = ecShopReturnFieldFromCookie(method);
    var name = ecShopReturnFieldFromCookie(type);
        
    if(value.length > 0) {
        var radioOptions = document.getElementsByName(_ecshopShopParam + method);
        
        if(radioOptions) {
            for(var i = 0; i < radioOptions.length; i++) {
                if(radioOptions[i].value == (name + "|" + value)) {
                    radioOptions[i].checked = true;
                    
                    return true;
                }
            }
        }
    }
    
    return false;
}

var addressXml = "";
function ecShopCreateOrderAddressXml(prefix, addresses) {
    var name = "";
    
    if(addresses == undefined) {
		addresses = "1";
		addressXml = "";
	}

    if(prefix == "shipping") {
        var showShipping = ecShopReturnFieldFromCookie("showshipping");
        var shippingAddressExists = ecShopReturnFieldFromCookie("shippingfirstname");

        if(showShipping == "false" || shippingAddressExists == undefined || shippingAddressExists == "") {
            prefix = "billing";
        } 
    }
    
    for(var i = 0; i < _ecshopXmlAttributes.length; i++) {
		var value = ecShopReturnFieldFromCookie(prefix + _ecshopXmlAttributes[i]);
		name = (prefix == "billing" && addresses == "2") ? "custom_billing_" + _ecshopXmlAttributes[i] : _ecshopXmlAttributes[i];
        
        if(value != undefined) {
            addressXml += "<attribute><name>" + name + "</name><value>" + value + "</value></attribute>";        
        }
    }

    if(prefix == "shipping") {
		ecShopCreateOrderAddressXml("billing", "2");
		return addressXml;
	} else {
		return addressXml;
	}
}

// Checkout - Cookie functions

/** idle timer starts **/

function ecShopTrackIdleTime() {
    var obj = document.body;
    
    if (obj.attachEvent) {
        obj.attachEvent('onmousemove',ecShopCallResetCounter);
        obj.attachEvent('onkeydown',ecShopCallResetCounter);
    }
    else if (obj.addEventListener) {
        try {
            emulateAttachEvent();
            obj.attachEvent('mousemove',ecShopCallResetCounter);
            obj.attachEvent('keydown',ecShopCallResetCounter);
        
        } catch (err) {
            obj.onmousemove = ecShopCallResetCounter;
            obj.onkeydown = ecShopCallResetCounter;
        }
    }

    ecShopStartCounter();
}

function ecShopLogout() {
    createCookie('ecwebuserid' + _ecshopWebsiteId + 'd', '', 0);
    createCookie(_ecshopUserLoggedInCookie, '', 0);
}

function ecShopIncreaseCounter() { 
    var x = 0;
    x = (readCookie(_ecshopTimeoutCookie) != null || readCookie(_ecshopTimeoutCookie) != undefined) ? readCookie(_ecshopTimeoutCookie) : 0;
    var currentCount = parseInt(x); //force to a number
    var delay = 60000;
    var pageTimeout = parseInt(_ecshopIdleTimeout); //force to a number
	
    if(currentCount < pageTimeout) {
        currentCount = currentCount+1;
        createCookie(_ecshopTimeoutCookie,currentCount,1); 
        _ecshopTimeoutObject = setTimeout("ecShopIncreaseCounter()",delay);
    } else if(currentCount >= pageTimeout) {
        clearTimeout(_ecshopTimeoutObject);
        createCookie(_ecshopTimeoutCookie,'-1',-1);
        
        //Delete the login cookies
        ecShopLogout();

        //Delete shop cookies
        ecShopDeleteAllCookies();
        
        var currentUrl = document.location.href;
        
        if(currentUrl.toLowerCase().indexOf('checkout') > -1 || currentUrl.toLowerCase().indexOf('account') > -1) {
            document.location.href = ecShopReturnHost();
        }
        
    }
}

function ecShopStartCounter() {
    createCookie(_ecshopTimeoutCookie,'0',1);
    ecShopIncreaseCounter();
}

function ecShopResetCounter() {
    clearTimeout(_ecshopTimeoutObject);
    ecShopStartCounter();
}

function ecShopCallResetCounter() {
    ecShopResetCounter();
}

ecShopAddLoadEvent(ecShopTrackIdleTime);

/** idle timer ends **/





function ecShopSaveNodesInCookie() {   
    var arrayValues = "";
    
    for(var x=0; x < _ecshopNodeArray.length; x++) {
        arrayValues += _ecshopNodeArray[x] + "|";
    }
    
    createCookie(_ecshopNodeCookie, arrayValues, 1);
}

function ecShopReturnNodesFromCookie(cookie) {
    var arrayValues = readCookie(cookie);
    var nodeCount = 0;
    var nodes = new Array();
    
    if(arrayValues == null) {
        arrayValues = "";        
    }
    
    if(arrayValues.length > 0) {
        var tmpArray = arrayValues.split("|");
        
        for(var y=0; y < tmpArray.length; y++) {
            if(tmpArray[y] != "") {
                nodes[nodeCount] = tmpArray[y];
                nodeCount++;
            }
        }        
    }
    
    return nodes;
}

function ecShopReturnArray(type) {
    if(type == undefined) {
        type = "";
    }

    if(type == "nodes") {
        if(_ecshopNodeArray.length == 0) {
            _ecshopNodeArray = ecShopReturnNodesFromCookie(_ecshopNodeCookie);
        }
        
        return _ecshopNodeArray;
    } else {
        if(_ecshopCookieArray["billingfirstname"] == undefined || _ecshopCookieArray["billingfirstname"] == "") {
            _ecshopCookieArray = ecShopReturnArrayFromCookie(_ecshopCheckoutCookie);
        }
        
        return _ecshopCookieArray;
    }
}

function ecShopAddOrUpdateArray(node, value) {
    _ecshopCookieArray = ecShopReturnArray();
    _ecshopNodeArray = ecShopReturnArray("nodes");
    
    var check = _ecshopCookieArray[node];
        
    if(check == null || check == undefined) {
        _ecshopNodeArray[_ecshopNodeArray.length] = node;
        ecShopSaveNodesInCookie();
    }
    
    _ecshopCookieArray[node] = value;    
    
    if(_ecshopUseCookiesInCheckout) {
        ecShopSaveArrayInCookie(_ecshopCheckoutCookie, _ecshopCookieArray);
    }
}

function ecShopSaveArrayInCookie(cookie, array) {
    var arrayValues = "";
    
    for(var z = 0; z < _ecshopNodeArray.length; z++) {
        arrayValues += _ecshopNodeArray[z] + ":ecsplit:" + array[_ecshopNodeArray[z]] + "^ecsplit^";
    }

    createCookie(cookie, arrayValues, 1);
}

function ecShopReturnArrayFromCookie(cookie) {
    var cookieValue = readCookie(cookie);
    var cookieArray = new Array();
    
    if(cookieValue == null) {
        cookieValue = "";
    }
    
    if(cookieValue.length > 0) {
        var elements = cookieValue.split("^ecsplit^");
        
        for(var a = 0; a < elements.length; a++) {
            if(elements[a].length > 0) {
                var values = elements[a].split(":ecsplit:");
                
                if(values[0] != null && values[1] != null) {
                    cookieArray[values[0]] = values[1];
                }
            }
        }
    }
    
    return cookieArray;
}

function ecShopReturnFieldFromCookie(field) {
    _ecshopCookieArray = ecShopReturnArray();
    
    var value = _ecshopCookieArray[field];
    
    if(value != null) {
        return value;
    } else {
        return "";
    }
}

function ecShopUpdateAddressFromCookie(prefix) {
    _ecshopCookieArray = ecShopReturnArray(); 
    
    for(var b = 0; b < _ecshopXmlAttributes.length; b++) {
        var container = document.getElementById(_ecshopShopParam + prefix + _ecshopXmlAttributes[b]);
        
        if(container) {
            var value = _ecshopCookieArray[prefix + _ecshopXmlAttributes[b]];
            
            if(value != null && container.value == "") {
                container.value = value;
            }
        }        
    }
}

function ecShopSaveAddressInArray(prefix) {
    for(var c = 0; c < _ecshopXmlAttributes.length; c++) {
        var container = document.getElementById(_ecshopShopParam + prefix + _ecshopXmlAttributes[c]);
        
        if(container) {
            ecShopAddOrUpdateArray(prefix + _ecshopXmlAttributes[c], container.value);
        }        
    }    
}

// Checkout - Cookie functions end

// Checkout - Checkout history
function ecShopHistoryStep(step, goingback) {
    var returnToCheckoutStep = false;
    _ecshopInOrderProcess = true;
        
    if(step == 1) {
        goBackToStep1();
    } else {    
        if(_ecshopUseCookiesInCheckout) {
            var leftCheckout = ecShopReturnFieldFromCookie("leftcheckout");

            if(leftCheckout == "true") {
                returnToCheckoutStep = true;
            }
        } 
        
        if(!returnToCheckoutStep) {
            ecShopCheckoutStep(step, goingback);
        }
    }
}

function ecShopCheckoutStep(step, goingback) {
    if(goingback == undefined) goingback = false;
    
    if(goingback) {
        if(step == 1) goBackToStep1();
        else if(step == 2) goBackToStep2();
    } else  {
        if(step == 2) goStep2();
        else if(step == 3) goStep3();
        else if(step == 4) goStep4();
    }
}

//Deprecated function - check if it's used in XSLTs, delete if not.
var _ecshopHistoryInterval = null;

function ecShopCheckHistory() {
    /*var hash = location.hash.replace("#step","");
    
    var currentlyOpenStep = 1;
    
    for(var i = 1; i < 5; i++) {
        var container = document.getElementById("ecshopfx_container_step" + i);
        
        if(container) {
            if(container.className.indexOf("ecshop_hide") < 0) {
                currentlyOpenStep = i;
            }
        }
    }
    
    if(hash != currentlyOpenStep && hash != "4") {        
        ecShopHistoryStep(hash);
    }
    
    _ecshopHistoryInterval = setTimeout("ecShopCheckHistory()", 200);
    */
}

//Deprecated function - check if it's used in XSLTs, delete if not.
function ecShopGoToStepFromHistory(step) {
}

//Ajax back button history support
//Temporarily disabled. Not supported in webpayment - Tinna
if(_ecshopInOrderProcess || location.href.toLowerCase().indexOf("checkout") > -1) {
    if (navigator.appName == 'Microsoft Internet Explorer') {
    } else {
        //ecShopAddLoadEvent(ecShopCheckHistory);
    }
}
// Checkout - Processing steps

function goBackToStep1() {
    ecShopCheckoutTransform(1);
}

function goStep2() {

    var userId = _ecshopUserId;
    //var missingText = _ecshopValidateIsMissingText;
    //var incorrectText = _ecshopValidateNotValidText;
    var shippingAddressContainer = document.getElementById("ecshopfx_other_shipping_address");
        
    if(shippingAddressContainer) {
        ecShopAddOrUpdateArray("showshipping", shippingAddressContainer.checked);
    }
    
    if(userId == "") {

        //if(validateForm("ecshopfx_billingAddressForm", missingText, "", incorrectText, "")) {
        if(validateForm("ecshopfx_billingAddressForm")) {
            ecShopSaveAddressInArray("billing");
                
            var emailContainer = document.getElementById(_ecshopShopParam + "email");
            ecShopAddOrUpdateArray("email",emailContainer.value);
            
            if(shippingAddressContainer.checked) {                
                //if(validateForm("ecshopfx_shipping_address", missingText, "", incorrectText, "")) {
                if(validateForm("ecshopfx_shipping_address")) {
                    ecShopSaveAddressInArray("shipping");
                } else {                    
                    ecShopUpdateStepUrl(2, 1);
                    ecShopUpdateCheckoutUrl(1);
                    return;
                }
            }
        } else {
            return;
        }
        
        ecShopLoadAddressesFromStep1();
    } else {
        var selectedShippingAddress = 0;
        var selectedBillingAddress = getSelectedValue("billing_options");
        
        ecShopAddOrUpdateArray("email", _ecshopUserEmail);
        ecShopAddOrUpdateArray("userid", userId);
        
        if(selectedBillingAddress > 0) {
            ecShopChooseAddress(selectedBillingAddress, "billing");
            
            if(shippingAddressContainer.checked) {
                selectedShippingAddress = getSelectedValue("shipping_options");
                
                if(selectedShippingAddress > 0) {
                    ecShopChooseAddress(selectedShippingAddress, "shipping");
                } else {
                    CreateError(ecTranslate("checkout-errors.checkout-address-select-shipping-address"));
                    ecShopUpdateStepUrl(2, 1);
                    ecShopUpdateCheckoutUrl(1);
                    return;
                }
            }
        } else {
            CreateError(ecTranslate("checkout-errors.checkout-address-select-billing-address"));
            ecShopUpdateStepUrl(2, 1);
            ecShopUpdateCheckoutUrl(1);
            return;
        }
        
        ecShopLoadAddressesFromStep1(selectedBillingAddress, selectedShippingAddress);
    }
    
    //Save the selected shipping address postal code in case dynamic shipping rate is selected.
    var selectedShippingPostcode = ecShopReturnFieldFromCookie("shippingpostalcode");
    var selectedBillingPostcode = ecShopReturnFieldFromCookie("billingpostalcode");
       
    /* Calculate dynamic shipping rate if selected */
    _ecshopDynamicRatePostalcode = (selectedShippingPostcode != "") ? selectedShippingPostcode : selectedBillingPostcode;
    ecShopSelectShippingMethod();
    
    ecShopCheckoutTransform(2);

}

function ecShopSelectShippingMethod() {
    var selected_shipping_obj = getSelectedObj('ec_webshop_page_6_shippingmethod');   
    var selected_shipping_pos = (selected_shipping_obj) ? selected_shipping_obj.getAttribute("id").replace("ship","") : 1;
    var selected_shipping = getSelectedValue('ec_webshop_page_6_shippingmethod'); 
    var shippingValue = selected_shipping.split('|');
    var shippingMethod = (shippingValue.length > 0) ? shippingValue[0] : "";
    var shippingGuid = (shippingValue.length > 1) ? shippingValue[1] : "";
    
    var inpShippingRestriction = document.getElementById("ecshopfx_shipping_restriction_" + shippingGuid);
    var orderPrice = document.getElementById("ecshopfx_total_product_price").value;

    if(inpShippingRestriction && inpShippingRestriction.value == "dynamic-rate") {
        var txtShippingRestrictions = document.getElementById("ecshopfx_shipping_dynamic_" + shippingGuid);       
                
        _ecshopDynamicRateSelected = true;
        
        ecShopFillDynamicShippingRate(txtShippingRestrictions, false, 'ecshopfx_shipping_price', 'ecshopfx_totalprice', selected_shipping_pos, orderPrice);
    } else if(inpShippingRestriction && inpShippingRestriction.value == "dynamic-rate-orderprice") {

        _ecshopDynamicRateSelected = true;
        ecShopGetDynamicShippingRate('ecshopfx_shipping_price', 'ecshopfx_totalprice', selected_shipping_pos, orderPrice);
    } else {
        _ecshopDynamicRateSelected = false;
    }
}

function goBackToStep2() {
    ecShopCheckoutTransform(2, true);
}

function goStep3() {
    var step3Container = document.getElementById("ecshopfx_container_step3");
    
    if(step3Container) {
        step3Container.innerHTML = "";
    }
    
    if(_ecshopCheckoutComplete) {
       // document.location.href = _ecshopRedirectTo;
    }
    else {
        var isWebpayment = false;
        var typeOfWebpayment = "";
        var ecshop_err = "";
        var selected_shipping = getSelectedValue('ec_webshop_page_6_shippingmethod'); 
        var selected_payment = getSelectedValue('ec_webshop_page_6_paymentmethod');       
        var selected_payment_obj = getSelectedObj('ec_webshop_page_6_paymentmethod');
        var transactionFactory = "";
        
        if(selected_shipping != -1 && selected_payment != -1) {        
            var paymentValue = selected_payment.split('|');
            var paymentMethod = (paymentValue.length > 0) ? paymentValue[0] : "";
            var paymentGuid = (paymentValue.length > 1) ? paymentValue[1] : "";
            var paymentInputId = selected_payment_obj.getAttribute("id");
            var paymentType = "";
            var payexFactoryObj = document.getElementById('payex_factory' + paymentGuid);
            
            if(paymentInputId != null) {
                var paymentTypeObj = document.getElementById("ecshopfx_" + paymentInputId);
                
                if(paymentTypeObj) {
                    paymentType = paymentTypeObj.innerHTML;
                }
            }
            
            ecShopAddOrUpdateArray("paymentmethod", paymentGuid);
            ecShopAddOrUpdateArray("paymentname", paymentMethod);

            var shippingValue = selected_shipping.split('|');
            var shippingMethod = (shippingValue.length > 0) ? shippingValue[0] : "";
            var shippingGuid = (shippingValue.length > 1) ? shippingValue[1] : "";
            
            ecShopAddOrUpdateArray("shippingmethod", shippingGuid);
            ecShopAddOrUpdateArray("shippingname", shippingMethod);
            
            //Validate credit card information
            if(selected_payment != -1) {
				if(payexFactoryObj) {
					transactionFactory = payexFactoryObj.value;
				}
				
                if(paymentType.toLowerCase() == 'credit card'){
                    var selected_cardType = getSelectedValue('credit_card_type');
                    
                    //Storing the selected credit card type in the ecshopshopinfo cookie array
                    ecShopAddOrUpdateArray("ecshopcardtype", selected_cardType);

                    var expiredText = ecTranslate("common-labels.common-form-validate-ccexpired");
                    
                    //if(!validateForm("ecshopfx_credit_card_info", _ecshopValidateIsMissingText, "", _ecshopValidateNotValidText, expiredText)) {
                    if(!validateForm("ecshopfx_credit_card_info")) {
                        ecShopUpdateStepUrl(3, 2);
                        ecShopUpdateCheckoutUrl(2);
                        return;
                    }
                } else if(transactionFactory == 'LifeKreditorPG,LifeKreditorPG.KreditorPG'){
                    var enteredSsnValue = document.getElementById("kreditor_ssn").value;
                    
                    //if(!validateForm("ecshopfx_kreditor", _ecshopValidateIsMissingText, "", _ecshopValidateNotValidText, "")) {
                    if(!validateForm("ecshopfx_kreditor")) {
                        ecShopUpdateStepUrl(3, 2);
                        ecShopUpdateCheckoutUrl(2);
                        return;
                    }
                } else if(transactionFactory == 'PayexPayment3DSecureReDirect,PayexPayment3DSecureReDirect.PayexPayment3DSecureReDirect' && selected_payment.split("|")[0] != 'card') {
					var objPayExCash = document.getElementById('payex_bank');
                    
                    if(objPayExCash.options[objPayExCash.selectedIndex].value == 0) {
						CreateError(ecTranslate("checkout-errors.checkout-payment-select-bank"));
                        ecShopUpdateStepUrl(3, 2);
                        ecShopUpdateCheckoutUrl(2);
                        return;
                    }
                }
            }
            
            var shippingRestriction = document.getElementById("ecshopfx_shipping_restriction_" + shippingGuid);
            var shippingAgent = document.getElementById("ecshopfx_shipping_agent");
            
            if(shippingRestriction && shippingRestriction.value == "dynamic-rate") {
                if(!_ecshopDynamicRateValid) {
                    ecshop_err = ecTranslate("checkout-errors.checkout-select-valid-shipping");
                    
                    CreateError(ecshop_err);
                    ecShopUpdateStepUrl(3, 2);
                    ecShopUpdateCheckoutUrl(2);
                    
                    return;
                }
                
                if(shippingAgent && _ecshopSelectedDeliveryAgent == "") {
                    ecshop_err = ecTranslate("checkout-errors.checkout-select-valid-shippingtime");
                    
                    CreateError(ecshop_err);
                    ecShopUpdateStepUrl(3, 2);
                    ecShopUpdateCheckoutUrl(2);
                    
                    return;
                }
            }
        } else {
            if(selected_shipping == -1) {
                ecshop_err = ecTranslate("checkout-errors.checkout-select-shipping") + "<br/>";
            }
            if(selected_payment == -1) {
                ecshop_err += ecTranslate("checkout-errors.checkout-select-payment") + "\n";
            }
            
            CreateError(ecshop_err);
            ecShopUpdateStepUrl(3, 2);
            ecShopUpdateCheckoutUrl(2);

            return;
        }
        
        hideObject("ecshopfx_container_step1");
        hideObject("ecshopfx_container_step2");
        showObject("ecshopfx_container_step3");
    
        var ecshop_orderXML = "";
        
        if(_ecshopDynamicRateSelected) {
            
            ecshop_orderXML += '<orderinfo><paymentmethod>' + paymentGuid + '</paymentmethod><shippingmethod updaterate="' + _ecshopDynamicRate + '">' + shippingGuid + '</shippingmethod><attributes><attribute><name>dynamic_shippingcost</name><value>'  + _ecshopDynamicRate +  '</value></attribute><attribute><name>deliverydate</name><value>' + _ecshopSelectedDeliveryTime + '|' + _ecshopSelectedDeliveryDate + '</value></attribute>';
        } else {
            ecshop_orderXML += '<orderinfo><paymentmethod>' + paymentGuid + '</paymentmethod><shippingmethod>' + shippingGuid + '</shippingmethod><attributes><attribute><name>dynamic_shippingcost</name><value>0</value></attribute>';
        }

		ecshop_orderXML += ecShopCreateOrderAddressXml("shipping");
        ecshop_orderXML += "<attribute><name>email</name><value>" + ecShopReturnFieldFromCookie("email") + "</value></attribute>";
       
        if(getSelectedValue('ec_webshop_page_6_paymentmethod') != -1){
            var ecshop_selectedPayment = getSelectedValue('ec_webshop_page_6_paymentmethod');
			var objPayExCash = document.getElementById("payex_bank");
			
            if(paymentType.toLowerCase() == 'credit card'){
                 // Credit card informations
                 var objCreditCardMonth = document.getElementById('exp_month');
                 var objCreditCardYear = document.getElementById('exp_year');
                 var objCVC = document.getElementById('cvc');
                 var objNameOnCard = document.getElementById('name_on_card');

                 ecshop_orderXML += "<attribute><name>credit_card_expire</name><value>" + objCreditCardMonth.options[objCreditCardMonth.selectedIndex].value + "/" + objCreditCardYear.options[objCreditCardYear.selectedIndex].value + "</value></attribute>";
                 ecshop_orderXML += "<attribute><name>credit_card_number</name><value>" + document.getElementById('card_number').value + "</value></attribute>";
                 ecshop_orderXML += "<attribute><name>cardtype</name><value>" + getSelectedValue('credit_card_type') + "</value></attribute>";
                 ecshop_orderXML += "<attribute><name>cvc</name><value>" + objCVC.value + "</value></attribute>";
                 ecshop_orderXML += "<attribute><name>name_on_card</name><value>" + objNameOnCard.value + "</value></attribute>";
            } else if(transactionFactory == 'LifeKreditorPG,LifeKreditorPG.KreditorPG') {
				var objCreditSsn = document.getElementById("kreditor_ssn");

				if(objCreditSsn) {
					ecshop_orderXML += "<attribute><name>ssn_number</name><value>" + objCreditSsn.value + "</value></attribute>";
				}
			} else if(objPayExCash) {
					ecshop_orderXML += "<attribute><name>bank_name</name><value>" + objPayExCash.options[objPayExCash.selectedIndex].value + "</value></attribute>";
			}
        }
        
        // Attributes for user comments
        if(_ecshopUserComments == "true") {
            var ecshopUserComments = document.getElementById("ecshopfx_usercomments");
            
            if(ecshopUserComments && ecshopUserComments.value.length > 0) {
                ecshop_orderXML += "<attribute><name>notes</name><value>" + HtmlEncode(ecshopUserComments.value) + "</value></attribute>";
            } else if(ecshopUserComments){
                ecshop_orderXML += "<attribute><name>notes</name><value>N/A</value></attribute>";
            }
        }
        
         
        ecshop_orderXML += "</attributes><queryparams><querystring><name>confirm</name><value>false</value></querystring>";
        ecshop_orderXML += "<querystring><name>infostage</name><value>confirm</value></querystring></queryparams></orderinfo>";
       
        ecShopCheckoutTransform(3);

        ecShopUpdateOrder('confirm', 'false', HtmlEncode(ecshop_orderXML), 'ecshopfx_container_step3', 'orderprocess', isWebpayment, typeOfWebpayment);
         
    }
}

function goStep4(refId) {

    if(refId == undefined)
    {
        refId = "";
    }

    clearTimeout(_ecshopHistoryInterval);

    disable('ecshopfx_gostep4');

    ecShopProcessPayment(refId);
}

function ecShopProcessPayment(refId) {
	var err = '';

    if(_ecshopCheckoutComplete) {
       // document.location.href = _ecshopRedirectTo;
    } else {
		var isWebpayment = false;
		var typeOfWebpayment = "";
        var typeOfRedirectModel = "";
        var selected_payment = getSelectedValue('ec_webshop_page_6_paymentmethod');       
        var selected_payment_obj = getSelectedObj('ec_webshop_page_6_paymentmethod');
        
        if(selected_payment != -1) {
            var paymentValue = selected_payment.split('|');
            var paymentInputId = selected_payment_obj.getAttribute("id");
            var paymentType = "";
            
            if(paymentInputId != null) {
                var paymentTypeObj = document.getElementById("ecshopfx_" + paymentInputId);
                
                if(paymentTypeObj) {
                    paymentType = paymentTypeObj.innerHTML;
                }
            }
		
    
            if(paymentType.toLowerCase().indexOf("webpayment-redirect") > -1) {
                if(paymentType.toLowerCase().indexOf("webpayment-redirect-valitorconnectpg") > -1) {
                    isWebpayment = true;
                    typeOfRedirectModel = paymentType.toLowerCase().replace("webpayment-redirect-","");
                } else {
					typeOfRedirectModel = paymentType.toLowerCase().replace("webpayment-","");
				}
            }
        }
    }
    
    var privacyPolicy = document.getElementById('privacy_policy');
    var terms = document.getElementById('terms_and_conditions');

    if(privacyPolicy && terms) {
        if( (!privacyPolicy.checked) || (!terms.checked) ){
           
            if( !(privacyPolicy.checked) && !(terms.checked) ){
                err = ecTranslate("checkout-errors.checkout-accept-both-policyandterms");
            }
            else if( !(terms.checked) ){
                err = ecTranslate("checkout-errors.checkout-accept-termsandconditions");
            }
            else if(!privacyPolicy.checked) {
                err = ecTranslate("checkout-errors.checkout-accept-privacyandpolicy");
            }
        }
        
        // If not accepted the Terms and conditions
        if(err != '') {
            CreateError(err);
            enable('ecshopfx_gostep4');
            ecShopUpdateStepUrl(4, 3);
            
            return;
        }
    }
 
   if ((ecShopReturnFieldFromCookie("paymentmethod") && typeOfRedirectModel.toLowerCase() == 'redirect' || typeOfRedirectModel.toLowerCase() == 'valitorconnectpg') && refId == "") {
		var orderFormContainer = document.getElementById("ecshopfx_redirect_model_webpayment");
		if(typeOfRedirectModel.toLowerCase() == 'valitorconnectpg'){
			var container = document.getElementById("ecshopfx_container_step3");
			var iframeHtml = '<iframe name="webpayment" id="webpayment" src="about:blank" height="100%" width="100%" class="ecshop_webpayment_iframe" frameborder="0" scrolling="0"></iframe>';
			container.innerHTML = iframeHtml;
			
			hideObject("ecshopfx_container_step1");
			hideObject("ecshopfx_container_step2");
			showObject("ecshopfx_container_step3"); 
			        
			// Extra function for the stuff AD needs to add in to in step 3
		    try {
				_ecShopPostStep2Webpayment();
		    } catch (e){}
		    
		    if(orderFormContainer) {
				orderFormContainer.setAttribute("target","webpayment");
                orderFormContainer.submit();
			}
		     
		} else if(typeOfRedirectModel.toLowerCase() == 'redirect') {			
			if(orderFormContainer) {
				orderFormContainer.submit();
			} 
		} 
	   
   } else {
    var ecshop_orderXML = "";

    if(_ecshopDynamicRateSelected) {
        ecshop_orderXML += '<orderinfo><paymentmethod>' + ecShopReturnFieldFromCookie("paymentmethod") + '</paymentmethod><shippingmethod updaterate="' + _ecshopDynamicRate + '">' + ecShopReturnFieldFromCookie("shippingmethod") + '</shippingmethod><attributes><attribute><name>deliverydate</name><value>' + _ecshopSelectedDeliveryTime + '|' + _ecshopSelectedDeliveryDate + '</value></attribute>';
    } else {
        ecshop_orderXML += '<orderinfo><paymentmethod>' + ecShopReturnFieldFromCookie("paymentmethod") + '</paymentmethod><shippingmethod>' + ecShopReturnFieldFromCookie("shippingmethod") + '</shippingmethod><attributes>';
    }
    
    ecshop_orderXML += ecShopCreateOrderAddressXml("shipping");
    ecshop_orderXML += "<attribute><name>email</name><value>" + ecShopReturnFieldFromCookie("email") + "</value></attribute>";


    var selected_payment = getSelectedValue('ec_webshop_page_6_paymentmethod');       
    var selected_payment_obj = getSelectedObj('ec_webshop_page_6_paymentmethod');

    if(selected_payment != -1) {        
        var paymentInputId = selected_payment_obj.getAttribute("id");
        var paymentType = "";
            
        if(paymentInputId != null) {
            var paymentTypeObj = document.getElementById("ecshopfx_" + paymentInputId);
                
            if(paymentTypeObj) {
                paymentType = paymentTypeObj.innerHTML;
            }
        }

        var ecshop_selectedPayment = getSelectedValue('ec_webshop_page_6_paymentmethod');
        
        if(paymentType.toLowerCase() == 'credit card'){
        
             // Credit card informations
             var objCreditCardMonth = document.getElementById('exp_month');
             var objCreditCardYear = document.getElementById('exp_year');
             var objCVC = document.getElementById('cvc');

             ecshop_orderXML += "<attribute><name>credit_card_expire</name><value>" + objCreditCardMonth.options[objCreditCardMonth.selectedIndex].value + "/" + objCreditCardYear.options[objCreditCardYear.selectedIndex].value + "</value></attribute>";
             ecshop_orderXML += "<attribute><name>credit_card_number</name><value>" + document.getElementById('card_number').value+"</value></attribute>";
             ecshop_orderXML += "<attribute><name>cardtype</name><value>" + getSelectedValue('credit_card_type') +"</value></attribute>";
             ecshop_orderXML += "<attribute><name>cvc</name><value>" + objCVC.value + "</value></attribute>";
             ecshop_orderXML += "<attribute><name>name_on_card</name><value>" + ecShopReturnFieldFromCookie("billingfirstname") + ' ' + ecShopReturnFieldFromCookie("billinglastname") + "</value></attribute>";
        }
    }

    // Attributes for user comments
    if(_ecshopUserComments == "true") {
        var ecshopUserComments = document.getElementById("ecshopfx_usercomments");
        
        if(ecshopUserComments && ecshopUserComments.value.length > 0) {
            ecshop_orderXML += "<attribute><name>notes</name><value>" + HtmlEncode(ecshopUserComments.value) + "</value></attribute>";
        } else if(ecshopUserComments){
            ecshop_orderXML += "<attribute><name>notes</name><value></value></attribute>";
        }
    }
    
    
    ecshop_orderXML += "</attributes><queryparams><querystring><name>confirm</name><value>true</value></querystring></queryparams></orderinfo>";

    ecShopCheckoutTransform(4);    
    
    ecShopUpdateOrder('confirm', 'true', HtmlEncode(ecshop_orderXML), 'ecshop_checkout_container', 'orderreceipt', false, "", refId);    
  }
}

//Performs necessary functions to go from one step to another
function ecShopCheckoutTransform(step, goingback) {
    if(goingback == undefined) {
        goingback = false;
    }
    
    ecShopChangeSelectedTab(step);
    
    if(!goingback) ecShopGoogleTrackCheckout(step);   
    if(step < 4) ecShopAddOrUpdateArray("step", step);   
    
    for(var i = 1; i < 5; i++) {
        if(i == step) {
            showObject("ecshopfx_container_step" + i);
        } else {
            hideObject("ecshopfx_container_step" + i);
        }
    }
}

function ecShopUpdateStepUrl(current, wanted) {
    ecShopAddOrUpdateArray("step", wanted);
}

function ecShopChangeSelectedTab(currentStep) {
    var title = ecTranslate("checkout-headings.checkout-map");
    
    for(var i = 1; i < 5; i++) {
        var step = document.getElementById("step" + i + "_tab_lbl");
        var separate = document.getElementById("step" + i + "_sep");
               
        if(i == currentStep) {
            separate.className = "sep current";
            step.className = "current";
        } else if(i < currentStep) {
            separate.className = "sep completed";
            step.className = "completed";
        } else {
            separate.className = "sep";
            step.className = "";
        }
        
        if(i <= currentStep) {
            title += " > " + step.innerHTML.replace("&amp;","&");        
        }
    }
    
    document.title = title;
}

function ecShopUpdateOrder(stage, createOrder, orderxml, elementID, entity, isWebpayment, typeOfWebpayment, webpaymentRefId)
{
    if(createOrder == "true") {
        CreateUpdate(ecTranslate("checkout-labels.checkout-submitting-order"));
    } else if(createOrder == "false" && stage != "info") {
        CreateUpdate(ecTranslate("checkout-labels.checkout-preparing-order"));
    }
    
    if(entity == undefined)
        entity = "orderprocess";
    
    if(isWebpayment == undefined)
        isWebpayment = false;
    
    if(typeOfWebpayment == undefined)
        typeOfWebpayment = "";
        
    if(webpaymentRefId == undefined)
        webpaymentRefId = "";
    
    var _pageId = _ecshopOrderPageId;
    var _positionId = _ecshopOrderPositionId;
    var _pageType = "1";
    var _stage = stage;
    var _createorder = createOrder;
    var _orderXML = orderxml;

    var soapBodyOrderProcess = new SOAPObject("orderProcess");
    soapBodyOrderProcess.ns = "http://tempuri.org/";
    soapBodyOrderProcess.appendChild(new SOAPObject("pageId")).val(_pageId);
    soapBodyOrderProcess.appendChild(new SOAPObject("positionId")).val(_positionId);
    soapBodyOrderProcess.appendChild(new SOAPObject("pageType")).val(_pageType);
    soapBodyOrderProcess.appendChild(new SOAPObject("stage")).val(_stage);
    soapBodyOrderProcess.appendChild(new SOAPObject("createorder")).val(_createorder);
    soapBodyOrderProcess.appendChild(new SOAPObject("orderInfoXml")).val(_orderXML);
   
    //Create a new SOAP Request
    var OrderSR = new SOAPRequest("http://tempuri.org/orderProcess", soapBodyOrderProcess); //Request is now ready to be sent to a web-service
    OrderSR.addNamespace("xsi","http://www.w3.org/2001/XMLSchema-instance");
    OrderSR.addNamespace("xsd","http://www.w3.org/2001/XMLSchema");
    //Lets send it
    SOAPClient.Proxy = ecShopReturnHost() + "/editor/soap/ecbusiness.asmx"; //Specify web-service address (if local to your domain) or a proxy file
    SOAPClient.SOAPServer = ecShopReturnHost() + "/editor/soap/ecbusiness.asmx";
    SOAPClient.SendRequest(OrderSR,orderProcessResponse); //Send request to server and assign callback function
    _ecshopOrderXML = "";
    
        
    function orderProcessResponse(orderRespObj, orderRespText, orderRespXml) 
    {
        try 
        {
            var responseMessage = orderRespObj.Body[0].orderProcessResponse[0].orderProcessResult[0].root[0];
			var orderHtmlData = responseMessage.htmldata[0].Text;
			var orderXmlData = orderRespText;
			var orderHtmlStart = orderHtmlData.indexOf('<!--'+ entity + '-starts-->');
			var orderHtmlEnd = orderHtmlData.indexOf('<!--' + entity + '-ends-->');
			
			var orderShippingStart = orderHtmlData.indexOf('<!--shipping-starts-->');
			var orderShippingEnd = orderHtmlData.indexOf('<!--shipping-ends-->');
			var orderShipping = orderHtmlData.substring(orderShippingStart,orderShippingEnd);
			
			var orderErrorStart = orderHtmlData.indexOf('<!--ordererror-starts-->');
			var orderErrorEnd = orderHtmlData.indexOf('<!--ordererror-ends-->');
			var orderError = orderHtmlData.substring(orderErrorStart,orderErrorEnd);
			
			var container = document.getElementById(elementID);
			
			if(createOrder == "true") {
				
			    if(orderError.length > 0) {
			        CreateError(orderError);
			        enable('ecshopfx_gostep4');
			    } else {
			        if(container) {
			            container.innerHTML = orderHtmlData.substring(orderHtmlStart,orderHtmlEnd);
			        }
			        
			        //Even though the basket has been emptied, since we are using Ajax, we need to manually reset the HTML.
			        ecShopResetBasketHtml();
                    
                    //Save xml for invoice
			        var receiptStarts = "<!--receiptxml-starts-->";
		            var receiptXmlStartsHere = orderHtmlData.indexOf(receiptStarts);
		            var receiptXmlStart = receiptXmlStartsHere + receiptStarts.length;
		            var receiptXmlEnd = orderHtmlData.indexOf('<!--receiptxml-ends-->');
		            
		            var receiptXml = orderHtmlData.substring(receiptXmlStart,receiptXmlEnd);
			        
                    _ecshopSaveInvoiceXml = receiptXml;
                    
			        //Deleting the cookie created for webshop
			        ecShopDeleteAllCookies();
			        // Redirects to home page when the user clicks on browser back button from 4th step
			        //_ecshopCheckoutComplete = true;
			        
			        //Resetting the checkout monitor
			        window.onbeforeunload = null;
			        clearInterval(_ecshopObserveTimer);
                    
                    ecShopHideAndShow('ecshopfx_container_step',4);
                    
                    //To hide Related product container in 4th step
                    var relatedProductContainer = document.getElementById("related_products_container");
                    if (relatedProductContainer) {
                        relatedProductContainer.innerHTML = "";
                    } 
                    
                    var googleAnalyticsStarts = "<!--googleanalytics-starts-->";
		            var googleHtmlStartsHere = orderHtmlData.indexOf(googleAnalyticsStarts);
		            var googleHtmlStart = googleHtmlStartsHere + googleAnalyticsStarts.length;
		            var googleHtmlEnd = orderHtmlData.indexOf('<!--googleanalytics-ends-->');
		            var googleAnalytics = orderHtmlData.substring(googleHtmlStart,googleHtmlEnd);
    			
			        if(googleAnalytics.length > 0) {
                        //This executes the google analytics transaction code found in ecShop - Receipt v2.0
                        ecShopGoogleTrackOrder(googleAnalytics);
                    }
                }
                
                //Update shop comments with webpayment and dynamic delivery information
                
                if(responseMessage.information[0].orders !=undefined)
                { 
                    var orderId = responseMessage.information[0].orders[0].order[0].guid[0].Text;
                    var shopId = responseMessage.information[0].shop[0].guid[0].Text;

                    var shipmentComment = '<p><strong>Sendingarmáti</strong><br/>';
                    shipmentComment += 'Sendingartími: ' + _ecshopSelectedDeliveryTime + '<br/>';
                    shipmentComment += 'Sendingardagur: ' + _ecshopSelectedDeliveryDate + '<br/>';
                    shipmentComment += '</p>';
                    
                    if(webpaymentRefId != "" && _ecshopDynamicRateSelected) {
                        ecShopUpdateWebpaymentOrder(orderId, shopId, webpaymentRefId, shipmentComment);
                    } else if(webpaymentRefId != "" && !_ecshopDynamicRateSelected) {
                        ecShopUpdateWebpaymentOrder(orderId, shopId, webpaymentRefId);
                    } else if(_ecshopDynamicRateSelected) {
                        ecShopUpdateOrderComments(orderId, shopId, shipmentComment);
                    }
                }
                // Extra function for the stuffs AD needs to add in to in step 4
		        try {
		            _ecShopPostStep3();
		        } catch (e){
		        }
			} else if(stage == "confirm") {
			    ecShopHideAndShow('ecshopfx_container_step',3);
			    
			    //Save checkout cookie for invoice
			    _ecshopSaveInvoiceCookie = readCookie(_ecshopCheckoutCookie);
			    
			    if(isWebpayment) {
			      /*  var iframeHtml = '<form id="webpayment_form" method="post" target="webpayment" action="' + ecShopReturnHost() + '/upload/files/templates/controls/' + typeOfWebpayment + '.aspx">';
			        iframeHtml += '<input id="ecshopfx_webpayment_xml" name="OrderXmlVal" type="hidden"/>';
			        iframeHtml += '<input id="ecshopfx_webpayment_process" name="process" value="1" type="hidden"/>';
			        iframeHtml += '<input id="ecshopfx_webpayment_shippingdate" name="shippingdate" value="" type="hidden"/>';
			        iframeHtml += '<input id="ecshopfx_webpayment_shippingtime" name="shippingtime" value="" type="hidden"/>';
			        iframeHtml += '<input id="ecshopfx_webpayment_currency" name="currency" value="' + ecTranslate("basket-labels.basket-currency") + '" type="hidden"/>';
			        iframeHtml += '<input id="ecshopfx_webpayment_ftext" name="failuretext" value="' + ecTranslate("checkout-errors.checkout-webpayment-failure") + '" type="hidden"/>';
			        iframeHtml += '<input id="ecshopfx_webpayment_stext" name="successtext" value="' + ecTranslate("checkout-labels.checkout-webpayment-success") + '" type="hidden"/>';
			        iframeHtml += '<input id="ecshopfx_webpayment_shipping" name="shippingtext" value="' + ecTranslate("basket-labels.basket-shipping-cost") + '" type="hidden"/>';
                    iframeHtml += '<input id="ecshopfx_webpayment_md5" name="md5" value="' + ecTranslate("checkout-errors.checkout-webpayment-md5") + '" type="hidden"/>';
                    iframeHtml += '</form>';
			        iframeHtml += '<iframe name="webpayment" id="webpayment" src="about:blank" height="100%" width="100%" class="ecshop_webpayment_iframe" frameborder="0" scrolling="0"></iframe>';
			        container.innerHTML = iframeHtml;

			        document.getElementById("ecshopfx_webpayment_xml").value = orderXmlData;
			        
			        if(_ecshopDynamicRateSelected) {
			            document.getElementById("ecshopfx_webpayment_shippingtime").value = _ecshopSelectedDeliveryTime;
			            document.getElementById("ecshopfx_webpayment_shippingdate").value = _ecshopSelectedDeliveryDate;
			        }
			        
			        document.getElementById("webpayment_form").submit();
			        
			        hideObject("ecshopfx_container_step1");
			        hideObject("ecshopfx_container_step2");
			        showObject("ecshopfx_container_step3"); 
			        
			        // Extra function for the stuff AD needs to add in to in step 3
		            try {
		                _ecShopPostStep2Webpayment();
		            } catch (e){
		            }*/
			    } else {
			        if(container) {
			            container.innerHTML = orderHtmlData.substring(orderHtmlStart,orderHtmlEnd);
			        }
    			    
			        var addressPreview = document.getElementById("ecshopfx_address_preview");
    			    
                    if(addressPreview) {
                        ReplaceContent("ecshopfx_address_confirmation",addressPreview.innerHTML);
                    }
                    
                    // Reading the selected cardType from the cookie and displaying the value in the card type container
                    var cardType = ecShopReturnFieldFromCookie("ecshopcardtype");
                    var cardTypeContainer = document.getElementById('ecshopfx_cardtype');
                    
                    if(cardType == "" || cardType == 'undefined' || cardType == null)
                        cardType = "";
                        
                    if(cardType.length > 0) {
                        if(cardTypeContainer)
                            cardTypeContainer.innerHTML = ecShopReturnFieldFromCookie("ecshopcardtype");
                    }
                    
                    //Temporarily disabled. Not supported in webpayment - Tinna
                    /*if (navigator.appName == 'Microsoft Internet Explorer') {
                        //Attach events to buttons
                        $('#ecshopfx_goback2').history(function() {
                            goBackToStep2();
                        });
                        $('#ecshopfx_gostep4').history(function() {
                            ecShopCheckoutStep(4);
                        });
                    }*/

                    // Extra function for the stuff AD needs to add in to in step 3
		            /*try {
		                _ecShopPostStep2();
		            } catch (e){
		            }*/
		        }
		        
		        
			} else {
			    //For step 2 when updating the basket
		        if(container) {
		            container.innerHTML = orderHtmlData.substring(orderHtmlStart,orderHtmlEnd);
		        }
		        
		        var shippingContainer = document.getElementById("ecshopfx_shipping_methods");
		        
		        if(shippingContainer) {
		            shippingContainer.innerHTML = orderShipping;
		            
		            ecShopUpdateShippingCollection();
		        }
		        // Extra function for the stuffs AD needs to add in to in step 2
		        /*try {
		            _ecShopPostStep1();
		        } catch (e){
		        }*/
			}
			
			DeleteUpdate();
        } 
        catch(e)
        { 
            CreateError(e);
            DeleteUpdate();
        }
    }
}

function ecShopDeleteAllCookies() {
    createCookie(_ecshopShopParamCookie,'',0);
    createCookie(_ecshopSelectedShippingGuidCookie,'',0);
    createCookie(_ecshopSelectedShippingPositionCookie,'', 0);
    createCookie(_ecshopCheckoutCookie,'',0);
    createCookie(_ecshopNodeCookie,'',0);
    _ecshopCookieArray = new Array();
    _ecshopNodeArray = new Array();
}

function ecShopSaveInvoice()
{
    document.getElementById("ecshopfx_SaveInvoiceVal").value = _ecshopSaveInvoiceXml;
    document.getElementById("ecshopfx_Addrs_Cookie").value = _ecshopSaveInvoiceCookie;
    
    document.ecshopfx_saveinvoice.submit();    
}

function ecShopUpdateWebpaymentOrder(orderId, shopId, refId, comments) {
    if(comments == undefined) {
        comments = "";
    }
    
    ecShop.Web.Soap.ecShopWS.UpdateWebpaymentOrderComments(shopId, orderId, refId, comments, OnOrderCommentsUpdated, OnError);
}

function ecShopUpdateOrderComments(orderId, shopId, comments) {
    ecShop.Web.Soap.ecShopWS.UpdateOrderComments(shopId, orderId, comments, OnOrderCommentsUpdated, OnError);
}

function OnOrderCommentsUpdated() {
}


// *************************************\\
//                                      \\
//       Checkout Process Ends          \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//           Basket functions           \\
//                                      \\
// *************************************\\


//Add product to basket 
function ecShopAddProduct(prod_id, quantity, imageUrl, imageName, version, productName, stock, optionString, variationType)
{   
	var error = "";

    if(variationType == undefined) {
        variationType = "";
    }
	
    if(!validateNumerics(quantity)) {
		error = ecTranslate("product-errors.product-invalid-quantity");
    } else if (optionString == null || optionString == '') {
		var option = 1;
        var options = '<options><option prodid="' + prod_id + '">';

        if (document.getElementById('ecshopfx_' + prod_id + "_1") != null)
        {
            options  = options + '<attribs>';
            while(document.getElementById('ecshopfx_' + prod_id + '_' + option))
            {
                var selectObj = document.getElementById('ecshopfx_' + prod_id + '_' + option);
                var selectedOption = '';
                var value = '';
                var name = '';
                
                if(selectObj.tagName.toLowerCase() == 'select') {
					selectedOption = selectObj.options[selectObj.selectedIndex];
					value = selectedOption.value;
					name = selectedOption.getAttribute("title");
                } else if(selectObj.tagName.toLowerCase() == 'span'){
					selectedOption = selectObj.getAttribute("title").split(":");
					value = selectedOption[1];
					name = selectedOption[0];
                }

                if(value != '0') {
					options  = options + '<attrib><name>' + name + '</name><value>' + value + '</value></attrib>';
					option++;
                } else {
					//error += name + ", ";
					error = (error != "" ? error + "," + name : ecTranslate("product-errors.product-select-variation") + ":" + name);

					option++;
                }
            }
            
            var ecshopColor = document.getElementById("ecshopfx_color_selection");
            
            if(ecshopColor != null && ecshopColor.value.length > 0) {
                options  = options + ecshopColor.value + '</attribs>';
            } else {
                options  = options + '</attribs>';
            }
        } else if(document.getElementById("ecshopfx_color_selection")) {
            
            options  = options + '<attribs>';
            var ecshopColor = document.getElementById("ecshopfx_color_selection");
            
            if(ecshopColor != null && ecshopColor.value.length > 0) {
                options  = options + ecshopColor.value + '</attribs>';
            } else {
                options  = options + '</attribs>';
            }
        }
            
        options  = options + '</option></options>';
    } else {
        options = optionString;
    }
    
    if(document.getElementById('prod_image')) {
        var imagePath = document.getElementById('prod_image').src;
        var imagePathSplit = imagePath.split("ecshop_detail_");

        imageUrl = imagePathSplit[0];
        imageName = imagePathSplit[1];       
    }

	if(error.length > 0) {
		CreateError(error);
    } else {
		if(productName != "") {
			try {
				ecShopJustAddedToBasket(productName, imageUrl, imageName, version);
			} catch(err){
				//alert(err.description);
			}
		}

		try {
			ecShopAddProductToBasket(prod_id, quantity, HtmlEncode(options), variationType);
		} catch(err){
			//alert(err.description);
		}
    }
}

function ecShopJustAddedToBasket(product, imageUrl, imageName, version) {
    var container = document.getElementById("ecshopfx_small_cart");
    var html = '<div id="ecshop_added_to_basket" class="ecshop_basket ecshop_hide">';
    html += '<div class="content just_added">';
    html += '<h3>' + _ecshopYouJustAddedHeader + '</h3>';
    
    if(imageUrl.length > 0) {
        var imgSrc =  imageUrl + version + imageName;
        html += '<div class="product_img"><img src="' + imgSrc + '" /></div>';    
    }
    
    html += '<h2>' + product + '</h2>';
    html += '</div>';
    html += '</div>';
    
    if(container) {
        container.innerHTML = html;
        
        floatingMenu.menu = document.getElementById("ecshop_added_to_basket");
        floatingMenu.computeShifts();
        
        var locationY = (floatingMenu.shiftY + parseInt(_ecshopFloatingMenuYAdjustment));
        var locationX = (floatingMenu.shiftX + parseInt(_ecshopFloatingMenuXAdjustment));
        
        if(floatingMenu.shiftY > 170) {
            if (document.layers)
            {
                floatingMenu.menu.left = locationX;
                floatingMenu.menu.top = locationY;
            }
            else
            {
                floatingMenu.menu.style.left = locationX + 'px';
                floatingMenu.menu.style.top = locationY + 'px';
            }
        }
        showObject("ecshop_added_to_basket");
    }

    if(_ecshopAddedBasketTimer != null) {
        clearTimeout(_ecshopAddedBasketTimer);
    }
    
    _ecshopAddedBasketTimer = setTimeout("ecShopHideJustAdded()",2000);
}

function ecShopHideJustAdded() {
    FadeItem('ecshop_added_to_basket','out',2000, true);
}

function ecShopShowBasket() {
    if(_ecshopDropdownBasketTimer != null) {
        clearTimeout(_ecshopDropdownBasketTimer);
    }
    
    hideObject("ecshop_added_to_basket");
    showObject("ecshop_small_basket_dropdown");
    showObject("ecshopfx_dropdown_basket");    
}

function ecShopHideBasket() {
    _ecshopDropdownBasketTimer = setTimeout("ecShopFadeBasket()",2000);
}

function ecShopFadeBasket() {
    FadeItem('ecshopfx_dropdown_basket','out',3000, false);
}

// Function to "Add product to basket - Calling web service"

function ecShopAddProductToBasket(productId, quantity, option, variationType)
{
    _ecshopAddingProduct = true;
    
    var action = "add";
    var elementID = "ecshop_small_basket";
    var comments = variationType;
    
    var pageId = _ecshopBasketPageId;
    var positionId = _ecshopBasketPositionId;
    var pageType = "2"; 
    var Url = document.location.href;

    //Check if the user is in the order process, if yes, call:
    //ecShopUpdateBasketInfoStage(productID, qty, action, option, elementID);
    
    //else
   // ecShopUpdateBasket(productId, quantity, action, comments, option, elementID, pageId, positionId, pageType);
    try {
        if(Url.indexOf("?ec_webshop_page") > 0) {
            ecShopUpdateBasketInfoStage(productId, quantity, action, option, elementID);
        } else {
            ecShopUpdateBasket(productId, quantity, action, comments, option, elementID, pageId, positionId, pageType);
        }
    } catch(err) {
        //alert(err.description);
    }
        
}

//Checks for existing stock while entering the quantity ****/
function quantityCheck(pos, customField)
{
    var enteredQty = document.getElementById('product_qty' + pos).value;
    var existingStock = document.getElementById('ecshopfx_product_stock_hidden' + pos).value;
    if(enteredQty==0){
	         CreateError(ecTranslate("product-messages.product-quantity-zero"));
	}
    if(parseInt(existingStock) < parseInt(enteredQty))
    {
        if(customField == 'zero-stock' || customField == '') {
            //CreateError(ecTranslate("product-messages.product-limitedstock-zero-stock"));
		
        } else if(customField == 'no-stock' || customField == 'hide-stock') {
            CreateError(ecTranslate("product-messages.product-limitedstock-no-stock"));
            
            if(!existingStock > 0) {
                document.getElementById('product_qty' + pos).value = "1";
            } else {
                document.getElementById('product_qty' + pos).value = existingStock;
            }
        }
    }
}

// Function to "Redirect package products in list view to detail view"
function redirectPackageProducts(prodId, detailUrl)
{
    _ecshopLastOpenedProduct = prodId;
    
    var header = ecTranslate("product-labels.product-package-alert");
    var text = ecTranslate("product-labels.product-package-redirect");

    CreateUpdate(text);
    window.setTimeout("closePackagePopup('" + detailUrl + "')",2000);
}

function closePackagePopup(detailUrl)
{
    DeleteUpdate();
    ecShopGoToProductDetail(detailUrl)
}

function UpdateProductCount(prodID, qty, action, option, operation)
{    
    var elementID = 'ecshop_checkout_container';
    
    if(typeof(operation) == 'undefined')
        operation = 'empty'; 
    
    if(operation == 'dec')
    {
        if(qty == 1)
        {
            action = "remove";
            qty = 1;
        }
        else {        
            qty--;
        }
    }

    if(operation == 'inc')
        qty++;

    ecShopUpdateLargeBasket(prodID, qty, action, HtmlEncode(option), elementID);
}

function UpdateProductQuantity(obj, oldQty, prodID, action, option)
{
    var elementID = 'ecshop_checkout_container';    
    validateNumber(obj);
    
    var qty = obj.value;
    
    if(qty == 0) {
        action = "remove";
        qty = 1;
    }
    
    if(obj.value != "" && oldQty != qty) {    
        ecShopUpdateLargeBasket(prodID, qty, action, HtmlEncode(option), elementID);
    }
}

// Function used to change the variation in the basket and updating both small and large basket

var _ecshopFirstVariation = true;
var _ecshopPreviousVariationText = null;
var _ecshopPreviousVariationMenu = null;
var _ecshopPreviousLink = null;
var _ecshopPreviousFunction = null;

function ecShopCancelVariation() {
    if(_ecshopPreviousVariationMenu != null) {
        hideObject(_ecshopPreviousVariationMenu);
    }
    if(_ecshopPreviousVariationText != null) {
        showObject(_ecshopPreviousVariationText);
    }
    if(_ecshopPreviousLink != null) {
        _ecshopPreviousLink.innerHTML = ecTranslate("basket-buttons.basket-modify");
        _ecshopPreviousLink.onclick = _ecshopPreviousFunction;
    }
    
    var cancelObject = document.getElementById("ecshopfx_cancel_variation");
    
    if(cancelObject) {
        cancelObject.parentNode.removeChild(cancelObject);
    }
}

function ecShopChangeVariation(obj, qty, objPropDisplay, objPropSelect, prodRow, optionXML, inOrderProcess){
    if(inOrderProcess == undefined) {
        inOrderProcess = false;
    }
    
    var variationText = objPropDisplay;
    var variationMenu = objPropSelect;
    
    //Lets hide the previously selected object if the user did not click on Save,
    //instead clicked on Modify for another variation 
    if(_ecshopFirstVariation) {
        _ecshopFirstVariation = false;
    } else {
        if(_ecshopPreviousVariationMenu != null) {
            hideObject(_ecshopPreviousVariationMenu);
        }
        if(_ecshopPreviousVariationText != null) {
            showObject(_ecshopPreviousVariationText);
        }
        if(_ecshopPreviousLink != null) {
            _ecshopPreviousLink.innerHTML = ecTranslate("basket-buttons.basket-modify");
            _ecshopPreviousLink.onclick = _ecshopPreviousFunction;
        }
    }
    
    _ecshopPreviousVariationMenu = variationMenu;
    _ecshopPreviousVariationText = variationText;
    _ecshopPreviousLink = obj;
    _ecshopPreviousFunction = obj.onclick;
    
    hideObject(objPropDisplay);
    showObject(objPropSelect);
    obj.innerHTML = ecTranslate("basket-buttons.basket-variation-save");
    
    var cancelObject = document.getElementById("ecshopfx_cancel_variation");
    
    if(cancelObject) {
        cancelObject.parentNode.removeChild(cancelObject);
    }
    
    cancelObject = document.createElement("span");
    cancelObject.setAttribute("id","ecshopfx_cancel_variation");
    cancelObject.setAttribute("title",_ecshopCancelButton);
    cancelObject.innerHTML = " (x)";
    cancelObject.onclick = function() {
        ecShopCancelVariation();
    }
    cancelObject.style.cursor = "pointer";
    
    obj.parentNode.appendChild(cancelObject);
    
    obj.onclick = function() {
        var selectedProperty = objPropSelect.options[objPropSelect.selectedIndex].value.split('|');
        var reg = new RegExp(">" + selectedProperty[0] + "</name><value>[^>]*</value>", "i");
        var replaceStr = ">" + selectedProperty[0] + "</name><value>" + selectedProperty[1] + "</value>";
        
        var oldOptionStr = optionXML;
        _ecshopOldOptions = HtmlEncode(optionXML);
        
        var newOptionStr = optionXML.replace(reg,replaceStr);
        _ecshopNewOptions = HtmlEncode(newOptionStr);
        
        obj.innerHTML = ecTranslate("basket-buttons.basket-variation-updating");
    
        if(!inOrderProcess) {
            ecShopUpdateLargeBasket(_ecshopVariationParam[prodRow][0], qty, 'remove', HtmlEncode(oldOptionStr), 'ecshop_checkout_container', false, false, true);
        } else { 
            var ecshop_orderXML = "<orderinfo>"
            var selected_payment = getSelectedValue('ec_webshop_page_6_paymentmethod');
            var selected_shipping = getSelectedValue('ec_webshop_page_6_shippingmethod');

            if(selected_payment!=-1){
                paymentValue = selected_payment.split('|');
                ecshop_orderXML += "<paymentmethod>"+paymentValue[1]+"</paymentmethod>";
            }

            if(selected_shipping!=-1){
                shippingValue = selected_shipping.split('|');
                
                if(_ecshopDynamicRateSelected) {
                    ecshop_orderXML += '<shippingmethod updaterate="' + _ecshopDynamicRate + '">' + shippingValue[1] + '</shippingmethod><attributes><attribute><name>deliverydate</name><value>' + _ecshopSelectedDeliveryTime + '|' + _ecshopSelectedDeliveryDate + '</value></attribute></attributes>';
                } else {
                    ecshop_orderXML += '<shippingmethod>' + shippingValue[1] + '</shippingmethod>';
                }
                
            }
            ecshop_orderXML += "</orderinfo>";
            
            var elementId = "ecshop_small_basket";
            
            ecShopUpdateOrderBasket(_ecshopVariationParam[prodRow][0], qty, 'remove', HtmlEncode(oldOptionStr), HtmlEncode(ecshop_orderXML), elementId, false, true, true);
        }
    };
}

function ecShopEmptyBasketConfirmation(productID, qty, action, option, divID, process) {
    var heading = '';
    var message = '';
    if(process == 1) {
		heading = _ecshopRemoveLastProdHeading;
		message = _ecshopRemoveLastProdMessage;
    } else if(process == 'cancel') {
		heading = _ecshopCancelOrderHeading;
		message = _ecshopCancelOrderMessage;
    } else if(process == 'clear') {
		heading = _ecshopClearBasketHeading;
		message = _ecshopClearBasketMessage;
    }
    var html = '<div class="ecshop_form_container">';
    html += '<p>' + message + '</p>';
    html += '<div class="buttons"><button onclick="ecShopUpdateBasketInfoStage(\'' + productID + '\',\'' + qty + '\',\'' + action + '\',\'' + escape(option) + '\',\'' + divID + '\',true);removePopup(\'last_product\')" class="ecshop_send">' + _ecshopOkButton + '</button><button onclick="removePopup(\'last_product\')" class="ecshop_cancel">' + _ecshopCancelButton + '<br/><span>' + _ecshopCloseWindow + '</span></button></div>';
    html += '<div class="clear"></div></div>';  
    
    CreateConfirmation(heading, html, "last_product");
}

function checkUpdateBasket(productID, qty, action, option, operation, divID, noOfProductsInBasket)
{
    if(noOfProductsInBasket == 1 || noOfProductsInBasket == "clear" || noOfProductsInBasket == "cancel") {
         ecShopEmptyBasketConfirmation(productID, qty, action, option, divID, noOfProductsInBasket);
    } else {
         ecShopUpdateBasketInfoStage(productID, qty, action, escape(option), divID);
    }
}

function ecShopUpdateBasketInfoStage(productID, qty, action, option, divID, redirect) {
   /* if(action == "clear") {
        ecShopDeleteAllCookies();
    }*/
    if(redirect == undefined)
        redirect = false;
        
    option = unescape(option);
    
    var ecshop_orderXML = "<orderinfo>"
    var selected_payment = getSelectedValue('ec_webshop_page_6_paymentmethod');
    var selected_shipping = getSelectedValue('ec_webshop_page_6_shippingmethod');

    if(selected_payment!=-1){
        paymentValue = selected_payment.split('|');
        ecshop_orderXML += "<paymentmethod>"+paymentValue[1]+"</paymentmethod>";
    }

    if(selected_shipping!=-1){
        shippingValue = selected_shipping.split('|');
        
        if(_ecshopDynamicRateSelected) {
            ecshop_orderXML += '<shippingmethod updaterate="' + _ecshopDynamicRate + '">' + shippingValue[1] + '</shippingmethod><attributes><attribute><name>deliverydate</name><value>' + _ecshopSelectedDeliveryTime + '|' + _ecshopSelectedDeliveryDate + '</value></attribute></attributes>';
        } else {
            ecshop_orderXML += '<shippingmethod>' + shippingValue[1] + '</shippingmethod>';
        }
        
    }
    ecshop_orderXML += "</orderinfo>";
    
    if(redirect) {
        _ecshopRedirect = _ecshopRedirectTo;
    } else {
        _ecshopRedirect = "";
    }

    ecShopUpdateOrderBasket(productID, qty, action, HtmlEncode(option), HtmlEncode(ecshop_orderXML), divID);
}

function updateBasketInfoStage(productID, qty, action, option, operation, divID, noOfProductsInBasket)
{
    option = unescape(option);

    if(typeof(operation) == undefined || operation == '')
        operation='empty'; 

    if(operation=='dec')
    {
        if(qty==1)
        {
            if(noOfProductsInBasket == 1) {
                ecShopEmptyBasketConfirmation(productID, qty, "remove", option, divID, 1);
                return;
            }
            else {
                action = "remove";
            }
        }
        else {
            qty--;
        }
    }

    if(operation=='inc')
        qty++;
   
    ecShopUpdateBasketInfoStage(productID, qty, action, option, divID)
}

function updateQuantityInfoStage(obj, oldQty, productID, option, divID, noOfProductsInBasket)
{
    option = unescape(option);

    var action = "update";
    var qty = obj.value;
    
    if(qty == 0) {
        if(noOfProductsInBasket == 1) {
            ecShopEmptyBasketConfirmation(productID, oldQty, "remove", option, divID);
            return;
        } else {
            action = "remove";
        }
    }
    
    if(obj.value != "" && oldQty != qty) {
        ecShopUpdateBasketInfoStage(productID, qty, action, option, divID)
    }
}

/*** SHIPPING RATES CALCULATION AND DISPLAY ***/

function ecShopResetShippingArrays() {
    _ecshopShippingRates = new Array();
    _ecshopShippingRatesFormatted = new Array();
    _ecshopOrderTotal = new Array();
    _ecshopOrderTotalFormated = new Array();
    _ecshopOrderFormatted = new Array();
    _ecshopShippingName = new Array();
    _ecshopShippingDescription = new Array();
    _ecshopShippingTime = new Array();
    _ecshopShippingGuid = new Array();
}

function ecShopAddToShippingArrays(position, shippingRates, shippingRatesFormatted, orderTotal, orderTotalFormated, orderFormatted, shippingName, shippingDescription, shippingTime, shippingGuid) {
    _ecshopShippingRates[position] = shippingRates;
    _ecshopShippingRatesFormatted[position] = shippingRatesFormatted;
    _ecshopOrderTotal[position] = orderTotal;
    _ecshopOrderTotalFormated[position] = orderTotalFormated;
    _ecshopOrderFormatted[position] = orderFormatted;
    _ecshopShippingName[position] = shippingName;
    _ecshopShippingDescription[position] = shippingDescription;
    _ecshopShippingTime[position] = shippingTime;
    _ecshopShippingGuid[position] = shippingGuid;
}

function ecShopLoadShippingRates() {
    var selectedShippingRate = 1;
    var shipCookie = readCookie(_ecshopSelectedShippingGuidCookie);
    
    if(shipCookie != "") {
        for(var i = 1; i < _ecshopShippingGuid.length; i++) {
            if(shipCookie == _ecshopShippingGuid[i]) {
                selectedShippingRate = i;
            }
        }
    }

    ecShopShowShippingRates(selectedShippingRate, 'ecshopfx_shipping_rate', 'ecshopfx_order_total', 'ecshopfx_current_shipping_description', ecTranslate('basket-labels.basket-shipping-sentwith'),ecTranslate('basket-labels.basket-shipping-time'),ecTranslate('basket-labels.basket-shipping-days'),ecTranslate('basket-labels.basket-currency'));
}


//Calculate and display shipping rates in the large basket
function ecShopShowShippingRates(position, shippingTotalContainerId, orderTotalContainerId, shippingDescriptionContainerId, shippingPrefix, averagePrefix, daysText) {
    var shippingDescriptionContainer = document.getElementById(shippingDescriptionContainerId);
    var orderTotalContainer = document.getElementById(orderTotalContainerId);
    var shippingTotalContainer = document.getElementById(shippingTotalContainerId);
     
    _ecshopShippingTotalContainer = shippingTotalContainerId;
    _ecshopOrderTotalContainer = orderTotalContainerId;
    _ecshopShippingDescriptionContainer = shippingDescriptionContainerId;
    _ecshopShippingPrefix = shippingPrefix;
    _ecshopAveragePrefix = averagePrefix;
    _ecshopDaysText = daysText;
    
    if(_ecshopShippingRetainCookie == '1') {
    
        //Storing the selected shipping method in the cookie
        createCookie(_ecshopSelectedShippingGuidCookie, _ecshopShippingGuid[position], 1);
        //createCookie(_ecshopSelectedShippingPriceCookie, _ecshopShippingRates[position], 1);   
        //createCookie(_ecshopSelectedShippingPriceFormattedCookie, _ecshopShippingRatesFormatted[position], 1);   
        createCookie(_ecshopSelectedShippingPositionCookie, position, 1); 

        _ecshopShippingRetainCookie = "0";
    }
    
    if(shippingDescriptionContainer) {
        var html = '<p><strong>' + shippingPrefix + ': ' + _ecshopShippingName[position] + '</strong><br/>';
        html += replaceBreaks(unescape(decodeURI(_ecshopShippingDescription[position]))) + '</p>';
        html += '<p><small>' + averagePrefix + ': ' + _ecshopShippingTime[position] + ' ' + daysText + '</small></p>';
        
        shippingDescriptionContainer.innerHTML = html;
    }
    
    if(shippingTotalContainer) {
        shippingTotalContainer.innerHTML = _ecshopShippingRatesFormatted[position];
    }
    
    if(orderTotalContainer) {
        var orderPrice = orderTotalContainer.className;
        
        if(orderPrice != null && orderPrice != _ecshopOrderTotal[position]) {
            var totalOrder = (orderPrice * 1) + (_ecshopShippingRates[position] * 1);
            var decimaldigits = "0";
            orderTotalContainer.innerHTML = ecShopFormatPrice(_ecshopPriceFormatCulture, totalOrder, decimaldigits);
           
        } else {     
            orderTotalContainer.innerHTML = _ecshopOrderFormatted[position];
        }
    }
}

function ecShopFormatPrice(culture, price, decimaldigits){
    ecShop.Web.Soap.ecShopWS.FormatNumberByCulture(culture, price, decimaldigits, OnFormatePrice, OnError);
}
function OnFormatePrice(results) {
    var orderTotalContainer = document.getElementById('ecshopfx_order_total');
    orderTotalContainer.innerHTML = results;
}

function ecShopChangeShippingRates(shippingTotalContainerId, orderTotalContainerId, shippingDescriptionContainerId, shippingPrefix, averagePrefix, daysText, cost, courier, orderCost) {
    _ecshopShippingRetainCookie = "1";
    
    var html = '<h3>Available shipping rates</h3>';
    html += '<table cellpadding="3" cellspacing="0" width="100%">';
    html += '<thead>';
    html += '<tr><th>' + courier + '</th><th>' + averagePrefix + '</th><th>' + cost + '</th></tr>';
    html += '</thead>';
    html += '<tbody>';

    for(var i = 1; i < _ecshopShippingRates.length; i++) {
        html += '<tr onclick="ecShopDoChangeShippingRates(\'' + i + '\', \'' + shippingTotalContainerId + '\', \'' + orderTotalContainerId + '\', \'' + shippingDescriptionContainerId + '\', \'' + shippingPrefix + '\', \'' + averagePrefix + '\', \'' + daysText + '\')">';
        html += '<td>' + _ecshopShippingName[i] + '</td>';
        html += '<td>' + _ecshopShippingTime[i] + ' ' + daysText + '</td>';
        html += '<td>' + _ecshopShippingRatesFormatted[i] + '</td>';    
        html += '</tr>';
    }    

    html += '</tbody>';    
    html += '</table>';
    
    createPopup(html, "ecshop_shipping_rates", "shippingrates");
}

function ecShopDoChangeShippingRates(position, shippingTotalContainerId, orderTotalContainerId, shippingDescriptionContainerId, shippingPrefix, averagePrefix, daysText) {
    ecShopShowShippingRates(position, shippingTotalContainerId, orderTotalContainerId, shippingDescriptionContainerId, shippingPrefix, averagePrefix, daysText);
    removePopup("shippingrates");    
}

function ecShopUpdateShippingRates() {
    var shippingPosition = readCookie(_ecshopSelectedShippingPositionCookie);

    if(shippingPosition == null || shippingPosition == "") { 
        shippingPosition = 1;
    }   
    
    ecShopShowShippingRates(shippingPosition, _ecshopShippingTotalContainer,_ecshopOrderTotalContainer,_ecshopShippingDescriptionContainer,_ecshopShippingPrefix, _ecshopAveragePrefix,_ecshopDaysText,_ecshopCurrency);
    
    var container = document.getElementById(_ecshopOrderTotalContainer);
    
    if(container) {
        var orderPrice = container.getAttribute("price");
        
        if(orderPrice != null) {
            var totalOrder = (orderPrice * 1) + (_ecshopShippingRates[shippingPosition] * 1);
            container.innerHTML = formatNumber(totalOrder) + ' ' + _ecshopCurrency;
        }
    }
}

function ecShopUpdateShippingCollection() {
    if(_ecshopSelectedShippingPosition != null && _ecshopSelectedShippingPosition != '') {
        ecShopHideAndShow('ecshopfx_shipDesc',_ecshopSelectedShippingPosition);
        
        ecShopSelectShippingMethod();
    }
}

//Display shipping rates in the order form
function ecShopAddToShippingCollection(position, guid, price, formattedPrice, orderPrice, orderPriceFormatted) {
    _ecshopShippingGuidCollection[position] = guid;
    _ecshopShippingPricesCollection[position] = price;
    _ecshopShippingPricesCollectionFormatted[position] = formattedPrice;
    _ecshopOrderTotalPrice[position] = orderPrice;
    _ecshopOrderTotalPriceFormatted[position] = orderPriceFormatted;
}

function ecShopSetSelectedShippingCollection(position, guid, price, formattedPrice) {
    _ecshopSelectedShippingPosition = position;
    _ecshopSelectedShippingGuid = guid;
    _ecshopSelectedShippingPrice = price;
    _ecshopSelectedShippingPriceFormatted = formattedPrice;
}

function ecShopLoadSelectedShippingCollection() {
    var totalPriceContainer = document.getElementById("ecshopfx_totalprice");
    var shippingPriceContainer = document.getElementById("ecshopfx_shipping_price");

    if(_ecshopSelectedShippingPosition != null) {
        if(totalPriceContainer) {
            totalPriceContainer.innerHTML = _ecshopOrderTotalPriceFormatted[_ecshopSelectedShippingPosition];
        }
        
        if(shippingPriceContainer) {
            shippingPriceContainer.innerHTML = _ecshopSelectedShippingPriceFormatted;
        }
    }
}

function ecShopProcessShipping(objShippingDesc, objShippingPrice, objTotalPrice, pos, totalOrderPrice){
   // Show the selected shipping description and hide the rest
   ecShopHideAndShow(objShippingDesc,pos);
   createCookie(_ecshopSelectedShippingGuidCookie, _ecshopShippingGuidCollection[pos], 1);
   _ecshopSelectedShippingPosition = pos;

   document.getElementById(objShippingPrice).innerHTML = _ecshopShippingPricesCollectionFormatted[pos];
   document.getElementById(objTotalPrice).innerHTML = totalOrderPrice;
   
   ecShopSelectShippingMethod();
}

// Function for displaying related description when any option in shipping/payment selected 
// E.g. showDescription('ec_webshop_page_6_paymentmethod', 'paydesc')
function ecShopShowDescription(objGroupName, objToShow){
   var objCollections = document.getElementsByName(objGroupName);
   
   for(i=0; i < objCollections.length; i++){
        if(objCollections[i].checked)
             ecShopHideAndShow(objToShow,(i+1));
   }
}

// Dynamic shipping rate calculation

function ecShopGetDynamicShippingRate(objShippingPrice, objTotalPrice, pos, orderPrice) {
    var selected_shipping = getSelectedValue('ec_webshop_page_6_shippingmethod'); 
    var shippingValue = selected_shipping.split('|');
    var shippingMethod = (shippingValue.length > 0) ? shippingValue[0] : "";
    var shippingGuid = (shippingValue.length > 1) ? shippingValue[1] : "";

    var inpShippingRestriction = document.getElementById("ecshopfx_shipping_restriction_" + shippingGuid);
    var ecshopProductsInBasketGuid = document.getElementById("ecshopfx_products_in_basket_guid_array").value;
    var ecshopProductsInBasketQuantity = document.getElementById("ecshopfx_products_in_basket_quantity_array").value;
    
    _ecshopProductsInBasketGuidArray = ecshopProductsInBasketGuid.split("|");
    _ecshopProductsInBasketQuantityArray = ecshopProductsInBasketQuantity.split("|");
    
    if(_ecshopProductsInBasketGuidArray.length > 0) {
        var agentObj = document.getElementById("ecshopfx_shipping_agent");
        var defaultAgent = (agentObj) ? agentObj.value : "";
        var agent = (_ecshopSelectedDeliveryAgent.length > 0) ? _ecshopSelectedDeliveryAgent : defaultAgent;
        var postcodeObj = document.getElementById("ecshopfx_shipping_postcode");
        var postcode = (postcodeObj) ? postcodeObj.value : "";
        
        if(postcode == "" && _ecshopDynamicRatePostalcode != "") {
            postcode = _ecshopDynamicRatePostalcode;
        }
        
        var products = new Array();
        products[0] = "";

        var quantities = new Array();
        quantities[0] = 0;
        
        for(var i = 1; i < _ecshopProductsInBasketGuidArray.length; i++) {
            products[i] = _ecshopProductsInBasketGuidArray[i];
            quantities[i] = _ecshopProductsInBasketQuantityArray[i];
        }
        
        if (inpShippingRestriction && inpShippingRestriction.value == 'dynamic-rate-orderprice'){
            postcode = 0;
        }

        //if(validateForm("ecshopfx_shipping_dynamic_" + shippingGuid, _ecshopValidateIsMissingText, "", _ecshopValidateNotValidText)) {
        if(validateForm("ecshopfx_shipping_dynamic_" + shippingGuid)) {
            CreateUpdate(ecTranslate("basket-labels.basket-updating"));
            
            ecShop.Web.Soap.ecShopWS.GetShippingRate(agent, postcode, products, quantities, orderPrice, OnShowShippingCost, OnShippingCostError);
        }
     }
    
    function OnShowShippingCost(results) {
        DeleteUpdate();
        
        _ecshopDynamicRateValid = true;

        document.getElementById(objShippingPrice).innerHTML = results.FormattedCost;
        document.getElementById(objTotalPrice).innerHTML = results.FormattedTotal;
        document.getElementById("ecshopfx_dynamicrate_" + shippingGuid).innerHTML = results.FormattedCost;
        
        _ecshopDynamicRate = results.Cost;
        
    }
    
    function OnShippingCostError(error) {
        _ecshopDynamicRateValid = false;
        OnError(error);
    }
}

function ecShopFillDynamicShippingRate(obj, showPostCode, objShippingPrice, objTotalPrice, pos, orderPrice) {
    if(showPostCode == undefined) {
        showPostCode = true;
    }

    var html = '';
    
    if (showPostCode) {
        html += '<div>';
        html += ' <label for="ecshopfx_shipping_postcode">' + ecTranslate("checkout-labels.checkout-shipping-selectpostcode") + ' *</label>';
        html += ' <input id="ecshopfx_shipping_postcode" class="validate number" />';
        html += ' </div>';
    }
    
    if(ecShopIsShortDistance(_ecshopDynamicRatePostalcode)) {
        html += ' <div>';
        html += ' <label for="ecshopfx_shipping_agent">' + ecTranslate("checkout-labels.checkout-shipping-selectdeliverytime") + ' *</label>';
        html += ' <input id="ecshopfx_shipping_agent" type="hidden" value="H10-12"/>';
        html += ecShopCreateDynamicRateTable(pos);
        html += ' </div>';
    }
    
    if(showPostCode) {      
        html += ' <button onclick="ecShopGetDynamicShippingRate(\'' + objShippingPrice + '\', \'' + objTotalPrice + '\', \'' + pos + '\', \'' + orderPrice + '\')" class="ecshop_send">Sjá sendingarkostnað</button>';  
    }  
    
    if(obj) {
        obj.innerHTML = html;
    }
    
    if(!showPostCode) {
        ecShopGetDynamicShippingRate(objShippingPrice, objTotalPrice, pos, orderPrice);
    }
}

function ecShopCreateDynamicRateTable(pos) {
    var html = '<table cellpadding="3" cellspacing="0" class="clear dynamic-rate" id="ecshopfx_dynamicrate_table_' + pos + '">';
    var today = new Date();
    var weekday = new Array(7);
    weekday[0] = ecTranslate("common-labels.common-day-sunday");
    weekday[1] = ecTranslate("common-labels.common-day-monday");
    weekday[2] = ecTranslate("common-labels.common-day-tuesday");
    weekday[3] = ecTranslate("common-labels.common-day-wednesday");
    weekday[4] = ecTranslate("common-labels.common-day-thursday");
    weekday[5] = ecTranslate("common-labels.common-day-friday");
    weekday[6] = ecTranslate("common-labels.common-day-saturday");

    var agentArray = new Array("H11-13", "H13-15", "H14-16", "H17-19", "H18-21");       
    var slotsArray = new Array("11 - 13", "13 - 15", "14 - 16", "17 - 19", "18 - 21");
    var availableOnWeekdaysArray = new Array(true, false, true, false, true);
    var availableOnSaturdayArray = new Array(true, false, true, true, false);
    var availableOnSundayArray = new Array(false, true, false, true, false);
    
    html += '<tr>';
    
    var currentDate = "";
    var savedDate = "";
    var currentWeekday = "";
    
    //Write headers
    for(var j = 0; j < 4; j++) {        
        currentDate = new Date();
        currentDate.setDate(currentDate.getDate()+(1+j));
        
        savedDate = currentDate.toDateString();
        currentWeekday = currentDate.getDay();
            
        html += '<th>' + weekday[currentWeekday] + '</th>';        
    }
    
    html += '</tr>';
    
    //Write time slots
    for(var i = 0; i < agentArray.length; i++) {
        
        html += '<tr>';
        
        for(var j = 0; j < 4; j++) {
            currentDate = new Date();
            currentDate.setDate(currentDate.getDate()+(1+j));
            
            savedDate = currentDate.toDateString();
            currentWeekday = currentDate.getDay();

            if((currentWeekday == 0 && availableOnSundayArray[i]) || (currentWeekday == 6 && availableOnSaturdayArray[i]) || ((currentWeekday > 0 && currentWeekday < 6) && availableOnWeekdaysArray[i])) {             
                html += '<td onclick="ecShopSetSelectedDeliveryTime(this,\'ecshopfx_dynamicrate_table_' + pos + '\',\'' + agentArray[i] + '\',\'' + slotsArray[i] + '\', \'' + savedDate + '\')" class="click-me">' + slotsArray[i] + '</td>';
            } else {
                html += '<td class="na">&nbsp;</td>';
            }
        }
        
        html += '</tr>';
    }
    
    html += '</table>';
    
    return html;    
}

function ecShopSetSelectedDeliveryTime(obj, table, agent, time, date) {
    var agentObj = document.getElementById("ecshopfx_shipping_agent");
    
    if(agentObj) {
        agentObj.value = agent;
    }

    _ecshopSelectedDeliveryAgent = agent;
    _ecshopSelectedDeliveryTime = time;
    _ecshopSelectedDeliveryDate = date;
    
    var tableObj = document.getElementById(table);
    var tableCells = tableObj.getElementsByTagName("td");
    
    for(var i = 0; i < tableCells.length; i++) {
        if(tableCells[i].className == "selected") {
            tableCells[i].className = "click-me"
        }
    }
    
    obj.className = "selected";
}

function ecShopIsShortDistance(postalCode) {
    var isShortDistance = false;

    if(postalCode == "") {
        isShortDistance = true;
    } else if(postalCode >= 101 && postalCode <= 113) {
            isShortDistance = true;
    } else if(postalCode >= 116 && postalCode <= 172) {
            isShortDistance = true;
    } else if(postalCode >= 200 && postalCode <= 225) {
            isShortDistance = true;
    } else if(postalCode == 270) {
            isShortDistance = true;
    }
    
    return isShortDistance;
}

// ecShop Basket Webservice - These functions interact with ecWeb

function TransformBasketXml(xml, array, containers) {
    _ecshopTransformContainers = containers;
    
    ecShop.Web.Soap.ecShopWS.TransformBasketXml(xml, array, OnTransformBasket, OnError);
}

function OnTransformBasket(results) {
    if(results.length > 0) {
        var containers = _ecshopTransformContainers;
        _ecshopTransformContainers = new Array();
        
        for(var i = 0; i < containers.length; i++) {
            var container = document.getElementById(containers[i]);
            
            ReplaceHtml(containers[i], results[i], i);
        }
        
        ecShopUpdateShippingRates();
    }
}

// The following functions are used in conjunction with jquery to update the basket in ecWeb.
function ecShopClearBasketReceipt(){
	ecShopUpdateLargeBasket ('', '0', 'clear', '', 'ecshop_small_basket')
}

function ecShopUpdateLargeBasket(productId, quantity, action, option, elementID, updateOrder, updateHtml, changeVariation) {
    
    var pageId = _ecshopBasketPageId;
    var positionId = _ecshopBasketPositionId;
    var pageType = "2"; //Don't know why this value is required - TODO: Ask ED

    if(updateHtml == undefined)
        updateHtml = true;
    
    if(updateOrder == undefined)
        updateOrder = false;
        
    if(changeVariation == undefined)
        changeVariation = false;


    ecShopUpdateBasket(productId, quantity, action, "", option, elementID, pageId, positionId, pageType, updateHtml, updateOrder, changeVariation)
}

function ecShopUpdateOrderBasket(productId, quantity, action, option, orderXML, elementID, updateHtml, updateOrder, changeVariation) {
    
    if(updateHtml == undefined)
        updateHtml = true;
        
    if(changeVariation == undefined)
        changeVariation = false;
        
    if(updateOrder == undefined)
        updateOrder = true; 
        
    _ecshopOrderXML = orderXML;
    
    ecShopUpdateLargeBasket(productId, quantity, action, option, elementID, updateOrder, updateHtml, changeVariation);    
}

function ecShopUpdateBasket(productId, quantity, action, comments, option, elementID, pageId, positionId, pageType, updateHtml, updateOrder, changeVariation)
{
    if(updateHtml == undefined)
        updateHtml = true;
    
    if(updateHtml) {
        CreateUpdate(ecTranslate("basket-labels.basket-updating"));
    }
        
    if(updateOrder == undefined)
        updateOrder = false;
        
    if(changeVariation == undefined)
        changeVariation = false;
    
    _ecshopShippingRetainCookie = '0';
       
    var soapBody = new SOAPObject("processBasket");
    soapBody.ns = "http://tempuri.org/";
    soapBody.appendChild(new SOAPObject("pageId")).val(pageId);
    soapBody.appendChild(new SOAPObject("positionId")).val(positionId);
    soapBody.appendChild(new SOAPObject("pageType")).val(pageType);
    soapBody.appendChild(new SOAPObject("productId")).val(productId);
    soapBody.appendChild(new SOAPObject("quantity")).val(quantity);
    soapBody.appendChild(new SOAPObject("comments")).val(comments);
    soapBody.appendChild(new SOAPObject("action")).val(action);
    soapBody.appendChild(new SOAPObject("option")).val(option);
   
    //Create a new SOAP Request
    var sr = new SOAPRequest("http://tempuri.org/processBasket", soapBody); //Request is now ready to be sent to a web-service
    sr.addNamespace("xsi","http://www.w3.org/2001/XMLSchema-instance");
    sr.addNamespace("xsd","http://www.w3.org/2001/XMLSchema");
    //Lets send it
    SOAPClient.Proxy = ecShopReturnHost() + "/editor/soap/ecbusiness.asmx"; //Specify web-service address (if local to your domain) or a proxy file
    SOAPClient.SOAPServer = ecShopReturnHost() + "/editor/soap/ecbusiness.asmx";
    SOAPClient.ContentType = "text/xml";
    SOAPClient.SendRequest(sr, processResponse); //Send request to server and assign callback function

    function processResponse(respObj, respText, respXml) 
    {
        try 
        {   
            var responseMessage = respObj.Body[0].processBasketResponse[0].processBasketResult[0].root[0];
            var htmlData = responseMessage.htmldata[0].Text;
            			
			if(changeVariation) {
			    //Call the webservice again to add the new variations
                ecShopUpdateBasket(productId, quantity, 'add', comments, _ecshopNewOptions, elementID, pageId, positionId, pageType, true, updateOrder, false);
            } 
            else { 
                if(updateHtml) {  
  
                    var transformXsltArray = new Array();    
                    var transformContainerArray = new Array();

                    var allContainerArray = new Array("ecshop_small_basket", "ecshop_large_cart");
                    var allXsltNameArray = new Array("ecShop - Small cart v2.0", "ecShop - Large cart v2.0");
                    var arrayCounter = 0;
                    var transform = false;
                                                    
                    for(var i = 0; i < allContainerArray.length; i++) {
                        var container = document.getElementById(allContainerArray[i]);

                        if(container) {
                            if(allContainerArray[i] == elementID) {
                                ReplaceHtml(elementID, htmlData, i);
                            } else {
                                transformXsltArray[arrayCounter] = allXsltNameArray[i];
                                transformContainerArray[arrayCounter] = allContainerArray[i];
                                arrayCounter++;
                                transform = true;
                            }
                        }
                    }
                    
                    if(transform) {  
                        var currentUrl = document.location.href;
                        
                        if(currentUrl.indexOf("?ec_webshop_page") < 0) {
                            TransformBasketXml(respText, transformXsltArray, transformContainerArray);
                        }
                    }                                
					
					// Credit limit
					if(htmlData.indexOf("ecshopfx_credit_limit") > -1) {
						CreateMessage(_ecshopCreditLimitHeading, _ecshopCreditLimitMessageStart + " " + _ecshopCreditLimitPrice + ". " + _ecshopCreditLimitMessageEnd, "credit_limit_exceeds");
					}
					
					// Stock limit
					if(htmlData.indexOf("ecshopfx_stock_limitexceed") > -1){
						CreateMessage(_ecshopStockLimitHeading, _ecshopNoStockMsg, "stock_limit_exceeds");
					}
                }
                
                if(updateOrder) {
                    var currentLocation = document.location.href;
                    
                    if(_ecshopRedirect != "") {
                    
                        var redirect = _ecshopRedirect;
                        
                        _ecshopRedirect = "";
                        
                        if(currentLocation.indexOf("?ec_webshop_page") > 0) {
                            document.location.href = redirect;
                        }
                        else {
                            DeleteUpdate();
                        }
                        
                    } else if(currentLocation.indexOf("?ec_webshop_page") > 0 && _ecshopOrderXML.length > 0) {
                        var currentStep = ecShopReturnFieldFromCookie("step"); 
                        
                        if (currentStep == '3') {                        
                            ecShopUpdateOrder("info", "false", _ecshopOrderXML, "ecshop_basket_container_step3", "basketinfostep3");
                        } else {
                            ecShopUpdateOrder("info", "false", _ecshopOrderXML, "ecshop_basket_container", "basketinfo");
                        }
                    } else {            
                        DeleteUpdate();
                    }
                } else {            
                    DeleteUpdate();
                }
            }
        } 
        catch(err) { 
			if(respText != "" || respText != undefined) 
				CreateError(err.description + "<br/><br/>" + respText);
            DeleteUpdate();
        }
    }
}

function ecShopResetBasketHtml() {
    var smallCart = document.getElementById("ecshop_small_cart");
    var dropdownCart = document.getElementById("ecshop_small_basket_dropdown");
    
    if(smallCart) {
        var basketText = ecTranslate("basket-labels.basket-is-empty");
        smallCart.innerHTML = ' <span class="basket_center"><span class="basket_center_content">' + basketText + '</span></span>';
    }
    
    if(dropdownCart) {
        dropdownCart.innerHTML = "";
    }
}

function ecShopGetRelatedProducts() {

    ecShop.Web.Soap.ecShopWS.GetRelatedProducts(_ecshopProductGuidArray, OnRelatedProducts, OnError);
}
function OnRelatedProducts(results) {
    var relatedProductContainer = document.getElementById("related_products_container");
    if(relatedProductContainer) {
        relatedProductContainer.innerHTML = results;
    }
}

function ecShopMoreRelatedProducts(currentPageDivId, currentPage, noOfPages) {
    for(var i=1; i <= noOfPages; i++) {
        var container = document.getElementById(currentPageDivId);
        
        if(container) { 
            if(i == currentPage) {
                hideObject('page' + currentPage);
            } 
                showObject(currentPageDivId);
        }
    }
}
// *************************************\\
//                                      \\
//        Basket Functions End          \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//   Product list / detail functions    \\
//                                      \\
// *************************************\\

function ecShopBottomPagingDisplay(toDivId, fromDivId){
    if(toDivId == undefined) {
        toDivId = "ecshop_bottom_paging";
    }
    if(fromDivId == undefined){
        fromDivId = "ecshop_top_paging";
    }

    toContainer = document.getElementById(toDivId);
    fromContainer = document.getElementById(fromDivId);
    
    if(toContainer && fromContainer) {
        toContainer.innerHTML = fromContainer.innerHTML;
    }
}

// The following functions are used to display prices for unlimited package variations (dropdown selections) 

function ecShopSaveColorSelection(obj, name, value) {
    var ecshopColorXml = document.getElementById("ecshopfx_color_selection");
    
    //Create the option XML for the selected color
    if(ecshopColorXml) {
        var option = '<attrib><name>' + name + '</name><value>' + value + '</value></attrib>';
        
        ecshopColorXml.value = HtmlEncode(option);
    }
          
    //Change the styles of the color samples, and high-light the currently selected color
    var parent = obj.parentNode;
    
    for(var i = 0; i < parent.childNodes.length; i++) {
        var child = parent.childNodes[i];
        
        child.className = child.className.replace(" selected","").replace("selected","");
    }
    
    obj.className += " selected";    
    
    //Update the package to get thec correct image, stock and price
    var ecshopColorPackage = document.getElementById("ecshopfx_color_package");
    
    if(ecshopColorPackage) {
        ecshopColorPackage.value = name + ":" + value + "|";
    }

    ecShopUpdatePackagePrice();
}

function ecShopShowProductDetail(id) {
    var oldContainer = null;
    
    if(_ecshopLastOpenedProduct == "") {
        _ecshopLastOpenedProduct = readCookie("ecshoptable" + _ecshopWebsiteId);
    }
    
    if(_ecshopLastOpenedProduct != "" && _ecshopLastOpenedProduct != id) {
        oldContainer = document.getElementById("ecshopfx_detail_" + _ecshopLastOpenedProduct);
        var lineContainer = document.getElementById("ecshopfx_table_line_" + _ecshopLastOpenedProduct);
        
        if(oldContainer) {
            hideObject(oldContainer);
            lineContainer.className = "line";
        }
    }

    var rowContainer = document.getElementById("ecshopfx_detail_" + id);
    var lineContainer = document.getElementById("ecshopfx_table_line_" + id);
    
    if(rowContainer) {
        if(rowContainer.className.indexOf("ecshop_hide") > -1) {
            showObject(rowContainer);
            lineContainer.className = "line with_bkg";
        } else {
            hideObject(rowContainer);
            lineContainer.className = "line";
        }
    }
    
    _ecshopLastOpenedProduct = id;
}

function ecShopGoToProductDetail(url) {
    createCookie("ecshoptable" + _ecshopWebsiteId, _ecshopLastOpenedProduct, 1);
    document.location.href = url;
}

function ecShopResetPackagePricing(stockType) {
    _ecshopPackagePriceArray = new Array();
    _ecshopPriceLabel = ecTranslate("product-labels.product-price");
    _ecshopStockLabel = ecTranslate("product-labels.product-stock");
    _ecshopImageLabel = ecTranslate("product-labels.product-noimage");
    _ecshopStockType = stockType;
}

function displayPackagePrice(currentPrice, actualPrice, priceLabel) {
	if(currentPrice == undefined) {
		currentPrice = (lowestBudgetPrice == "") ? lowestPrice : lowestBudgetPrice;
	}
	if(actualPrice == undefined) {
		actualPrice = lowestPrice;
	}
	if(priceLabel == undefined) {
		priceLabel = _ecshopPriceFromLabel;
	}
	
	/*Update price*/
    var priceContainer = document.getElementById("ecshopfx_product_price");
    var priceHiddenContainer = document.getElementById("ecshopfx_product_price_hidden");
	var priceStrikeContainer = document.getElementById("strike");
    
    if(priceContainer)
        priceContainer.innerHTML = '<span class="label">' + priceLabel + ':</span> <span class="value">' + currentPrice + '</span>';
    
    if(priceHiddenContainer)
        priceHiddenContainer.value = currentPrice;

    if((currentPrice != actualPrice) && priceStrikeContainer) {
        priceStrikeContainer.innerHTML = '<span class="label">' + priceLabel + ':</span> <span class="value">' + actualPrice + '</span>';
        showObject("strike");
    } else {
		hideObject("strike");
    }
}

function ecShopUpdatePackagePrice() {
    var priceLabel = _ecshopPriceLabel;
    var stockLabel = _ecshopStockLabel;
    var noImage = _ecshopImageLabel;
    var stockType = _ecshopStockType;

    /*Form current package*/
    var container = document.getElementById("ecshopfx_product_variations");
    var selectBoxes = container.getElementsByTagName("select");
    var currentPackage = '';

    for(var i = 0; i < selectBoxes.length; i++) {
        var index = selectBoxes[i].selectedIndex;
        var value = selectBoxes[i].options[index].value;
        var name = selectBoxes[i].options[index].getAttribute("title");
        currentPackage += name + ":" + value + "|";
    }
    
    var ecshopColorPackage = document.getElementById("ecshopfx_color_package");
    
    if(ecshopColorPackage) {
        currentPackage += ecshopColorPackage.value;
    }
    /*Check package combination*/
    for(var i = 1; i < _ecshopPackagePriceArray.length; i++) {
        if(_ecshopPackagePriceArray[i][0] == currentPackage) {
            /*Update price*/
			displayPackagePrice(_ecshopPackagePriceArray[i][1], _ecshopPackagePriceArray[i][6], priceLabel);
           
            /*Update stock*/
            if(_ecshopPackagePriceArray[i][3] <= 0){
                var displayStock = "0";
            } else {
                displayStock = _ecshopPackagePriceArray[i][3];
            }
            
            var stockContainer = document.getElementById("ecshopfx_product_stock");
            var stockHiddenContainer = document.getElementById("ecshopfx_product_stock_hidden");
            
            if(stockContainer)
                stockContainer.innerHTML = '<span class="label">' + stockLabel + ':</span> <span class="value">' + displayStock + '</span>';
				showObject("ecshopfx_product_stock");
            if(stockHiddenContainer)
                stockHiddenContainer.value = displayStock;
            
            if(_ecshopManageStock) {
                if(stockType == 'zero-stock') {
					if(_ecshopPackagePriceArray[i][3] < parseInt(_ecshopReOrderLevel) && _ecshopPackagePriceArray[i][3] > parseInt(_ecshopStockLowestLevel)) {
                        showObject("ecshopfx_product_out_of_stock_addtobasket");
                        hideObject("ecshopfx_product_out_of_stock");
                        showObject("ecshopfx_buy_button");
                        hideObject("ecshopfx_stock_available_date");
                    } else if(_ecshopPackagePriceArray[i][3] <= parseInt(_ecshopStockLowestLevel)) {
                        hideObject("ecshopfx_product_out_of_stock_addtobasket");
                        showObject("ecshopfx_product_out_of_stock");
                        hideObject("ecshopfx_buy_button");
                        
                        // Site specific : Life - Display stock available date
						if(_ecshopPackagePriceArray[i][13].length > 0) {
							displayStockAvailabaleDate(i);
						}
                    } else {
                        hideObject("ecshopfx_product_out_of_stock");
                        hideObject("ecshopfx_product_out_of_stock_addtobasket");
                        showObject("ecshopfx_buy_button");
                        hideObject("ecshopfx_stock_available_date");
                    }
                } else if((stockType == 'no-stock')||(stockType == 'hide-stock')) {
                    if(_ecshopPackagePriceArray[i][3] <= 0) {
                        hideObject("ecshopfx_buy_button");
                        showObject("ecshopfx_product_out_of_stock");
						
						// Site specific : Life - Display stock available date
						if(_ecshopPackagePriceArray[i][13].length > 0) {
							displayStockAvailabaleDate(i);
						}
                    } else {
                        hideObject("ecshopfx_product_out_of_stock");
                        showObject("ecshopfx_buy_button");   
                        hideObject("ecshopfx_stock_available_date");                 
                    }
                } 
            }
            
            //Change images - if image exist, show it, otherwise go back to the default image for the package.
            var imageContainer = document.getElementById("ecshopfx_image_viewer");
            var largeImage = document.getElementById("ecshopfx_large_image");
            
            //On first load - save the default image and link to a global variable for later use
            if(imageContainer && _ecshopPackageImage.length == 0) {
                _ecshopPackageImage = imageContainer.innerHTML;
                _ecshopPackageLink = largeImage.href;
            }
            
            if(imageContainer) {
                if(_ecshopPackagePriceArray[i][4].length == 0) {
                    if(_ecshopPackageImage.length > 0) {
                        imageContainer.innerHTML = _ecshopPackageImage;

                        if(largeImage) {
                            largeImage.href = _ecshopPackageLink;
                        }
                    } else {
                        imageContainer.innerHTML = noImage;
                    }
                } else {
                    var imageObj = new Image();
                    imageObj.src = _ecshopPackagePriceArray[i][4];
                    
                    var height = imageObj.height;
                    
					var imageSize = getImageSize(_ecshopPackagePriceArray[i][4]);
                        
                    imageContainer.innerHTML = '<img alt="' + _ecshopPackagePriceArray[i][2] + '"' + imageSize[1] + imageSize[0] + 'src="' + imageObj.src + '" id="prod_image" jqimg="' + _ecshopPackagePriceArray[i][5] + '"/>';
                    
                    if(largeImage) {
                        largeImage.href = _ecshopPackagePriceArray[i][5];
                    }
                }
                
				if(_ecshopPackagePriceArray[i][7].length > 0 && _ecshopPackagePriceArray[i][11] == "1") {
					
					var splitThumbArray = _ecshopPackagePriceArray[i][7].split("|");
					var splitThumbImgName = _ecshopPackagePriceArray[i][10].split("|");
					moreImageContainer = document.getElementById("ecshopfx_more_images");

					if(moreImageContainer) {
						var thumbImageHtml = '';
						
						for(var j=0; j < splitThumbArray.length-1; j++){
							thumbImageHtml += '<a href="javascript:void(0)" onclick="ecShopSwapImageInViewer(' + i + ', ' + j + ');">';
							thumbImageHtml += '<img class="image" src="' + splitThumbArray[j] + '" border="0" id="img_1" alt="' + splitThumbImgName[j] + '" />';
							thumbImageHtml += '</a>';
						}
						moreImageContainer.innerHTML = thumbImageHtml;
					}
					showObject("ecshopfx_more_images");
				} else {
				    hideObject("ecshopfx_more_images");
				}
            }
            
            // Display custom property
            if(_ecshopPackagePriceArray[i][12].length > 0) {
                var customPropertyContainer = document.getElementById("ecshopfx_custom_property");
                if(customPropertyContainer) {
                    var html = '';
                    var properties = _ecshopPackagePriceArray[i][12].split("|");
                    
                    html += '<div class="product_custom_property">';
                    html += '<h5>' + ecTranslate("product-headings.product-custom-property") + '</h5>';

                    for(var k=0; k<properties.length-1; k++) {
                        var splitProperties = properties[k].split(":");
                        html += '<span class="property_name">' + splitProperties[0] + '</span> : ';
                        html += '<span class="property_value">' + splitProperties[1] + '</span><br />';
                    }
                    html += '<div class="clear"></div>';
                    customPropertyContainer.innerHTML = html;
                    showObject("ecshopfx_custom_property");
                }
            } else if(_ecshopPackagePriceArray[i][12].length == 0) {
				hideObject("ecshopfx_custom_property");
            }
        }
    }
}

function ecShopAddToPackagePricing(pos, package, price, image, imageName, imagePath, stock, totalPrice, manageStock, reOrderLevel, stockLowestLevel, thumbImage, thumbVersion, thumbOriginal, thumbImgName, thumbImgExist, customProperty, stockAvailableDate) {

    var imageVersion = (imagePath.length > 0 && imageName.length > 0) ? (imagePath + 'ecshop_detail_' + imageName) : "";
    var imageOriginal = (imagePath.length > 0 && imageName.length > 0) ? (imagePath + 'ecshop_zoom_' + imageName) : "";

    _ecshopPackagePriceArray[pos] = [];
    _ecshopPackagePriceArray[pos][0] = package;
    _ecshopPackagePriceArray[pos][1] = price;
    /*_ecshopPackagePriceArray[pos][2] = image;*/
    _ecshopPackagePriceArray[pos][2] = imageName;
    _ecshopPackagePriceArray[pos][3] = stock;
    _ecshopPackagePriceArray[pos][4] = imageVersion;
    _ecshopPackagePriceArray[pos][5] = imageOriginal;
    _ecshopPackagePriceArray[pos][6] = totalPrice;
    _ecshopPackagePriceArray[pos][7] = thumbImage;
    _ecshopPackagePriceArray[pos][8] = thumbOriginal;
    _ecshopPackagePriceArray[pos][9] = thumbVersion;
    _ecshopPackagePriceArray[pos][10] = thumbImgName;
    _ecshopPackagePriceArray[pos][11] = thumbImgExist;
    _ecshopPackagePriceArray[pos][12] = customProperty;
    _ecshopPackagePriceArray[pos][13] = stockAvailableDate;
    _ecshopManageStock = manageStock;
    _ecshopReOrderLevel = reOrderLevel;
    _ecshopStockLowestLevel = stockLowestLevel;
}

// Stock available date
function displayStockAvailabaleDate(i) {
	var stockAvailableDateObj = document.getElementById("ecshopfx_stock_available_date");
	
	if(stockAvailableDateObj) {
		var html = '';
		var splitDate = _ecshopPackagePriceArray[i][13].split(":");
		
		html += '<span class="label">' + splitDate[0] + '</span>';
		html += '<span class="value">' + splitDate[1] + '</span>';
		
		stockAvailableDateObj.innerHTML = html;
		showObject("ecshopfx_stock_available_date");
	}
	return;
}
// Product images 

function ecShopShowImageViewer(fixedImgPath, fixedImgName, version) {
    var fixedOriginalImg = fixedImgPath + "ecshop_zoom_" + fixedImgName;
    var fixedVariationImg = fixedImgPath + version + fixedImgName;
    
    var imageViewer = document.getElementById('ecshopfx_image_viewer');
    var largeViewer = document.getElementById('ecshopfx_large_image');

    if(imageViewer) {
        var imageObj = new Image();
        imageObj.src = fixedVariationImg;
        
		var imageSize = getImageSize(fixedVariationImg);
       
        imageViewer.innerHTML = '<img src="' + imageObj.src + '"' + imageSize[1] + imageSize[0] + ' id="prod_image" jqimg="' + fixedOriginalImg + '" alt=""/>';
        
    }
    if(largeViewer) {
         largeViewer.href = fixedOriginalImg;
    }    
}



function ecShopAddProductImages(name, version, thumbnail, original) {
    _ecshopImageNameArray[_ecshopImageCounter] = name;
    _ecshopImageVersionArray[_ecshopImageCounter] = version;
    _ecshopImageThumbnailArray[_ecshopImageCounter] = thumbnail;
    _ecshopImageOriginalArray[_ecshopImageCounter] = original;

    _ecshopImageCounter++;
}

function ecShopLoadProductImages(pos) {
    //Preload all images;
    var imageVersionObj = new Image();
    var imageZoomObj = new Image();
    var imageThumbObj = new Image();
    var versionImage = "";
    var originalImage = "";
    var imageName = "";
    
    if(_ecshopImageNameArray.length > 0) {
        for(var i = 0; i < _ecshopImageVersionArray.length; i++) {
            imageVersionObj.src = _ecshopImageVersionArray[i];
            imageZoomObj.src = _ecshopImageOriginalArray[i];
        }
        versionImage = _ecshopImageVersionArray[0];
        originalImage = _ecshopImageOriginalArray[0];
        imageName = _ecshopImageNameArray[0];
    } else if(pos != undefined) {
        imageVersionObj.src = _ecshopPackagePriceArray[pos][4];
        imageZoomObj.src = _ecshopPackagePriceArray[pos][5];
        versionImage = _ecshopPackagePriceArray[pos][4];
        originalImage = _ecshopPackagePriceArray[pos][5];
        imageName = _ecshopPackagePriceArray[pos][2];
    }
    var container = document.getElementById("ecshopfx_image");
    
    if(container) {
        var firstImageObj = new Image();
        firstImageObj.src = versionImage;
      
		var VersionImageSize = getImageSize(versionImage, "1");

        var html = '<div class="image_container">';
        html += '   <div class="product_img">';
        html += '       <div class="jqzoom" id="ecshopfx_image_viewer">'
        html += '           <img jqimg="' + originalImage + '"' + VersionImageSize[1] + VersionImageSize[0] + ' src="' + firstImageObj.src + '" alt="' + imageName + '" />';
        html += '       </div>';
        html += '</div>';
        html += '<div class="image_options">';
		html += _ecshopZoomText;
        html += '   <div class="product_larger_view">';
        //html += '       <a id="ecshopfx_large_image" href="' + originalImage + '" rel="lightbox">' + _ecshopLargeText + '</a>';
	html += '       <a id="ecshopfx_large_image" href="' + originalImage + '" rel="lightbox"><span class="hide">' + _ecshopLargeText + '</span></a>';
        html += '   </div>';
        html += '</div></div>';
        html += '<div class="clear"></div>';
        html += '<div class="more_images" id="ecshopfx_more_images">';
        
        if(_ecshopImageNameArray.length > 1) {
        
            for(var i = 0; i < _ecshopImageNameArray.length; i++) {
                html += '<a href="javascript:void(0)" onclick="ecShopSwapImageInViewer(' + i + ');">';
                html += '<img class="image" src="' + _ecshopImageThumbnailArray[i] + '" border="0" id="img_1" alt="' + _ecshopImageNameArray[i] + '" />';
                html += '</a>';
            }
            html += '</div><div class="clear"></div><p class="ecshop_hide"></div>';		
        } else if(pos != undefined) {
            if(_ecshopPackagePriceArray[pos][7].length > 0 && _ecshopPackagePriceArray[pos][11] == "1") {
                html += '<div class="more_images" id="ecshopfx_more_images">';
                
                var splitThumbArray = _ecshopPackagePriceArray[pos][7].split("|");
                var splitThumbImgName = _ecshopPackagePriceArray[pos][10].split("|");
			    
			    for(var i = 0; i < splitThumbArray.length-1; i++) {
                    html += '<a href="javascript:void(0)" onclick="ecShopSwapImageInViewer(' + pos + ', ' + i + ');">';
                    html += '<img class="image" src="' + splitThumbArray[i] + '" border="0" id="img_1" alt="' + splitThumbImgName[i] + '" />';
                    html += '</a>';
                }
            }
        }
        html += '</div><div class="clear"></div><p class="ecshop_hide"></div>';		

        container.innerHTML = html;
        initLightbox();
    } 
}

function getImageSize(image, firstLoad){
	if(firstLoad == undefined)
		firstLoad = 0;
	
	var imageObj = new Image();
	var imageSize = new Array();
	
    imageObj.src = image;
        
	var height = imageObj.height;
    var width = imageObj.width;
    
    if(firstLoad == "1") {
	    imageSize[1] = (height > 5) ? ' height="' + height + '"' : "";
		imageSize[0] = (width > 5) ? ' width="' + width + '"' : "";
	} else if (height < 5 || width < 5) {
		if(height < 5)
			imageSize[1] = imageObj.height > 5 ? 'height="' + imageObj.height  + '"' : "";
		if(width < 5)
			imageSize[0] = imageObj.width > 5 ? 'width="' + imageObj.width + '"' : "";
	} else {
		imageSize[1] = 'height="' + height + '"';
		imageSize[0] = 'width="' + width + '"';
	}
	
	return imageSize;

}

function ecShopSwapImageInViewer(pos, imgPos) {
    var imageViewer = document.getElementById("ecshopfx_image_viewer");
    var largeViewer = document.getElementById("ecshopfx_large_image");
    var versionImage = "";
    var originalImage = "";
    var imageName = "";
    
    if((imgPos == undefined)) {
        versionImage = _ecshopImageVersionArray[pos];
        originalImage = _ecshopImageOriginalArray[pos];
        imageName = _ecshopImageNameArray[pos];
    } else {
        versionImage = _ecshopPackagePriceArray[pos][9].split("|")[imgPos];
        originalImage = _ecshopPackagePriceArray[pos][8].split("|")[imgPos]
        imageName = _ecshopPackagePriceArray[pos][10].split("|")[imgPos];
    }
    
    if(imageViewer) {
        var imageVersionObj = new Image();
        imageVersionObj.src = versionImage;
       
		var imageSize = getImageSize(versionImage);
        
        var imageZoomObj = new Image();
        imageZoomObj.src = originalImage;
    
        var html = '<img jqimg="' + imageZoomObj.src + '"' + imageSize[0] + imageSize[1] + 'src="' + imageVersionObj.src + '" alt="' + imageName + '" />';
        imageViewer.innerHTML = html;        
    }
    
    if(largeViewer) {
        largeViewer.href = originalImage;
    }
}
/*Start: Functions to hide invalid combination in options*/
function ecShopGroupCombination(obj, ecshopSelectedCombination) {
	var index = obj.selectedIndex;
    var selectedValue = obj.options[index].value;
    var selectedName = obj.options[index].getAttribute("title");
	var changeBoxes = new Array();
	var groupOtherVariations = '';
	var removeSelected = '';
	var groupSelectedOptions = '';
	
    for(var i=1; i<=noOfPackage; i++){
		var splitCombination = ecshopSelectedCombination.split("|");
        var splitVariation = _ecshopPackagePriceArray[i][0].split("|");
        var selectedOption = selectedName + ":" + selectedValue + "|";
        
        if(splitVariation.length == splitCombination.length) {
			removeSelected = _ecshopPackagePriceArray[i][0].replace(selectedOption,"");
			groupOtherVariations += removeSelected;
        } else if(_ecshopPackagePriceArray[i][0].indexOf(ecshopSelectedCombination) > -1) {
		    removeSelected = _ecshopPackagePriceArray[i][0].replace(ecshopSelectedCombination,"");
			groupOtherVariations += removeSelected;
        } 
    }
    
    changeBoxes[0] = removeSelected;
    changeBoxes[1] = groupOtherVariations;
    
	ecShopFormSelectOptions(obj, changeBoxes);
}

function ecShopFormSelectOptions(obj, changeBoxes) {
	var container = document.getElementById("ecshopfx_product_variations");
    var selectBoxes = container.getElementsByTagName("select");
    var selectBoxNames = '';
    var splitGroup = '';
    var splitValue = '';
    var selectedId = obj.getAttribute("id");
    var attribName = '';
	
	var splitCombination = changeBoxes[0].split("|");
    for(var j=0; j < splitCombination.length-1; j++){
        var splitVariation = splitCombination[j].split(":");
        selectBoxNames += splitVariation[0] + "|";
    }

    var splitAttribNames = selectBoxNames.split("|");
    for(var k=0; k<splitAttribNames.length-1; k++){
        splitGroup = changeBoxes[1].split('|');
        var options = '';
        
        for(var l=0; l<splitGroup.length; l++){
            var splitGroupName = splitGroup[l].split(":");
            
            if(splitAttribNames[k] == splitGroupName[0]) {
                attribName = splitGroupName[0];
                
                if(attribName == splitGroupName[0] && options.indexOf(splitGroupName[0]) <= -1) {
                    options += attribName + ":";
                }
                if(splitValue.indexOf(splitGroupName[1]) <= -1){
                    splitValue += splitGroupName[1] + "|";
                
                    if(attribName == splitGroupName[0]) {
                        options += splitGroupName[1] + "~";
                    }
                }
            } 
        }

        for(var m=1; m<=selectBoxes.length; m++){
            var splitSelectBoxId = selectedId.split("_");
            var otherSelectBoxId = splitSelectBoxId[0] + "_" + splitSelectBoxId[1] + "_" + m;
            var otherSelectBoxObj = document.getElementById(otherSelectBoxId);
            var selectedObj = document.getElementById(selectedId);

            if(otherSelectBoxId != selectedId) {
                if(otherSelectBoxObj && (attribName == otherSelectBoxObj.options[otherSelectBoxObj.selectedIndex].getAttribute("title"))){
					var index = otherSelectBoxObj.selectedIndex;
					var selectedValue = otherSelectBoxObj.options[index].value;
					var selectedName = otherSelectBoxObj.options[index].getAttribute("title");
					
					otherSelectBoxObj.innerHTML = '';
                    var splitTitle = options.split(":");
                    var splitOptions = splitTitle[1].split("~");

                    addOption(otherSelectBoxObj, "0", _ecshopSelectboxDefaultText + " " + splitTitle[0], splitTitle[0], selectedName, selectedValue);
                        
                    for(var n=0; n<splitOptions.length-1; n++) {
                        addOption(otherSelectBoxObj, splitOptions[n], splitOptions[n], splitTitle[0], selectedName, selectedValue);
                    }
                } 
            } 
        }
    }
    ecShopUpdatePackagePrice();
}

function SwapCombinations(ecshopSelectedCombination) {
	var arrangedCombination = '';
	var splitCombination = ecshopSelectedCombination.split("|");
	
	for (var y=1; y<initialArray.length; y++) {
		for (var x=0; x<splitCombination.length; x++) {
			var splitNames = splitCombination[x].split(":");
			
			if (splitNames[0] == initialArray[y]) {
				arrangedCombination += splitCombination[x] + "|";
			}
		}
	}
	return arrangedCombination;
}

function ecShopUpdatePackageOptions(obj) {
	var index = obj.selectedIndex;
    var selectedValue = obj.options[index].value;
    var selectedName = obj.options[index].getAttribute("title");
	var container = document.getElementById("ecshopfx_product_variations");
    var selectBoxes = container.getElementsByTagName("select");
    
    if(_ecshopPackAllVariations.length == 0){
        for(var i=1; i<=noOfPackage; i++){
			_ecshopPackAllVariations += _ecshopPackagePriceArray[i][0];
        }
	}
    
	if(selectedValue == "0") {
		var options = "";
		var optionValue = "";
		
		for(var i=1; i<=noOfPackage; i++){
			if(_ecshopPackagePriceArray[i][0].indexOf(selectedName) > -1) {
				splitVariation = _ecshopPackagePriceArray[i][0].split("|");
				for(var j=0; j<splitVariation.length; j++) {
					optionValue = splitVariation[j].split(":");
					if(selectedName == optionValue[0]){
						if(options.indexOf(optionValue[1]) <= -1) {
							options += optionValue[1] + "|";
						}
					}
				}
			}
		}
		var splitOptions = options.split("|");
		var existingOptions = obj.getElementsByTagName("option");
		
		if(splitOptions.length > existingOptions.length){
			obj.innerHTML = "";
			addOption(obj, "0", _ecshopSelectboxDefaultText + " " + selectedName, selectedName);
			for(var i=0; i<splitOptions.length-1; i++) {
				addOption(obj, splitOptions[i], splitOptions[i], selectedName);
			}
		}
	} else {
		if(ecshopSelectedCombination.indexOf(selectedName) > -1){
			var selectedCombination = selectedName + ":" + selectedValue;
			var splitExistingCombination = ecshopSelectedCombination.split('|');

			for(var i=0; i<splitExistingCombination.length; i++){
				if(splitExistingCombination[i].indexOf(selectedName) > -1) {
					ecshopSelectedCombination = ecshopSelectedCombination.replace(splitExistingCombination[i],selectedCombination);
				} 
			}
		} else {
			ecshopSelectedCombination += selectedName + ":" + selectedValue + "|";
		}
	    
		ecshopSelectedCombination = SwapCombinations(ecshopSelectedCombination);

		if(_ecshopPackAllVariations.indexOf(ecshopSelectedCombination) <= -1) {
			ecshopSelectedCombination = selectedName + ":" + selectedValue + "|";
		}      

		ecShopGroupCombination(obj, ecshopSelectedCombination);
    }
}

function ecshopDisplayOptions() {
    var container = document.getElementById("ecshopfx_product_variations");
    var selectBoxes = container.getElementsByTagName("select");
    var group = '';
    var attribName = '';

    for(var i=1; i<=noOfPackage; i++){
        group += _ecshopPackagePriceArray[i][0];
    } 
              
    var splitGroup = group.split("|");
    
    for(var j=0; j<selectBoxes.length; j++){
        var selectBoxesId = selectBoxes[j].getAttribute("id");
        var attribName = selectBoxes[j].options[selectBoxes[j].selectedIndex].getAttribute("title");
        var optionHtml = '';    
        selectBoxes[j].innerHTML = '';
        
        addOption(selectBoxes[j], "0", _ecshopSelectboxDefaultText + " " + attribName, attribName);
        
        for(var k=0; k<splitGroup.length; k++){
            var splitGroupAttrib = splitGroup[k].split(":");
            
            if(splitGroupAttrib[0].indexOf(attribName) > -1 && optionHtml.indexOf(splitGroupAttrib[1]) <= -1) {
                
                optionHtml += '<option value="' + splitGroupAttrib[1] + '" title="' + splitGroupAttrib[0] + '">' + splitGroupAttrib[1] + '</option>';
                attribName = splitGroupAttrib[0];
             
                addOption(selectBoxes[j], splitGroupAttrib[1], splitGroupAttrib[1], splitGroupAttrib[0]);
            }
        }
    }
}

function getOtherSelection(check, currentOptTitle) {
	var container = document.getElementById("ecshopfx_product_variations");
    var selectBoxes = container.getElementsByTagName("select");

	for(var j=0; j<selectBoxes.length; j++){
		var selectBoxId = selectBoxes[j].getAttribute("id");
		var attribName = selectBoxes[j].options[selectBoxes[j].selectedIndex].getAttribute("title");
		var attribValue = selectBoxes[j].options[selectBoxes[j].selectedIndex].value;
		
		if(attribName != currentOptTitle) {
			if(check.indexOf(attribName) <= -1 && attribValue != "0") {
				check += attribName + ":" + attribValue;
			}
		}
	}
	return check;
	
}

function addOption(objSelect, optValue, optText, optTitle, oldOptName, oldOptValue)
{
	var anOption = document.createElement("option");
	anOption.setAttribute("title",optTitle);
	anOption.value = optValue;
	// For firefox browser
	anOption.text = optText;
	// For IE browser
	anOption.innerText = optText;

	if(optText == oldOptValue && optTitle == oldOptName) {
	    var check = ecshopSelectedCombination;
	    	        
	    if(check.indexOf(optTitle) > -1) {
	        check = check.replace(oldOptName + ":" + oldOptValue + "|", optTitle + ":" + optValue + "|");
        } else {
            check += optTitle + ":" + optValue + "|";
        }
        check = getOtherSelection(check, optTitle);
        check = SwapCombinations(check);
        
        if(_ecshopPackAllVariations.indexOf(check) > -1) {
            anOption.setAttribute("selected","selected");
        }
	}
	
	objSelect.appendChild(anOption);
}
/*End: Functions to hide invalid combination in options*/

// *************************************\\
//                                      \\
// Product list / detail functions end  \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//            Util functions            \\
//                                      \\
// *************************************\\

// ecShopAddLoadEvent()
// Adds event to window.onload without overwriting currently assigned onload functions.
// Function found at Simon Willison's weblog - http://simon.incutio.com/

function ecShopAddLoadEvent(func) {	    
	var oldonload = window.onload;
	if (typeof window.onload != 'function'){
        window.onload = func;
	} else {
        window.onload = function(){
		oldonload();
		func();
		}
	}
}

function ecShopGetFrameContent(id, html) {
    var divObj = document.getElementById(id);
                
    if(divObj) {
        ReplaceContent(id, html);
    }
}

function ecShopReturnHost() {
    return _ecshopHost;
}

function createCookie(name, value, days) {
    if (days) {
        var date = new Date();
        date.setTime(date.getTime()+(days*24*60*60*1000));
        var expires = "; expires="+date.toGMTString();
    } else var expires = "";
    
    document.cookie = name+"="+value+expires+"; path=/";
}

function readCookie(cookieName)
{
    var cookieVal = "";
    
    if(document.cookie.length > 0)
    {
        cookieStart = document.cookie.indexOf(cookieName+"=");
        
        if(cookieStart != -1)
        {
            cookieStart = cookieStart+cookieName.length+1;
            cookieEnd = document.cookie.indexOf(";",cookieStart);
            if(cookieEnd == -1) cookieEnd = document.cookie.length;
            
            cookieVal = unescape(document.cookie.substring(cookieStart,cookieEnd));
        }
    }
    
    if(cookieVal == null || cookieVal == "null")
        cookieVal = "";
    
    return cookieVal;
}

function emulateAttachEvent() {
    HTMLDocument.prototype.attachEvent = HTMLElement.prototype.attachEvent = function (eventName, eventHandler) {
        var shortTypeName = eventName.replace(/on/, "");
        eventHandler._ieEmuEventHandler = function (e) {
            window.event = e;
            return eventHandler();
        };
        this.addEventListener(shortTypeName, eventHandler._ieEmuEventHandler, false);
    };
    HTMLDocument.prototype.detachEvent = HTMLElement.prototype.detachEvent = function (eventName, eventHandler) {
        var shortTypeName = eventName.replace(/on/, "");
        if (typeof eventHandler._ieEmuEventHandler == "function")
            this.removeEventListener(shortTypeName, eventHandler._ieEmuEventHandler, false);
        else
            this.removeEventListener(shortTypeName, eventHandler, true);
    };
}

function formatNumber(number) {
    var isCulture = Sys.CultureInfo._parse('{"name":"","numberFormat":{"CurrencyDecimalDigits":0,"CurrencyDecimalSeparator":",","IsReadOnly":true,"CurrencyGroupSizes":[3],"NumberGroupSizes":[3],"PercentGroupSizes":[3],"CurrencyGroupSeparator":".","CurrencySymbol":"\u00A4","NaNSymbol":"NaN","CurrencyNegativePattern":0,"NumberNegativePattern":1,"PercentPositivePattern":0,"PercentNegativePattern":0,"NegativeInfinitySymbol":"-Infinity","NegativeSign":"-","NumberDecimalDigits":0,"NumberDecimalSeparator":",","NumberGroupSeparator":".","CurrencyPositivePattern":0,"PositiveInfinitySymbol":"Infinity","PositiveSign":"+","PercentDecimalDigits":2,"PercentDecimalSeparator":",","PercentGroupSeparator":".","PercentSymbol":"%","PerMilleSymbol":"\u2030","NativeDigits":["0","1","2","3","4","5","6","7","8","9"],"DigitSubstitution":1},"dateTimeFormat":{"AMDesignator":"AM","Calendar":{"MinSupportedDateTime":"@-62135568000000@","MaxSupportedDateTime":"@253402300799999@","AlgorithmType":1,"CalendarType":1,"Eras":[1],"TwoDigitYearMax":2029,"IsReadOnly":true},"DateSeparator":"/","FirstDayOfWeek":0,"CalendarWeekRule":0,"FullDateTimePattern":"dddd, dd MMMM yyyy HH:mm:ss","LongDatePattern":"dddd, dd MMMM yyyy","LongTimePattern":"HH:mm:ss","MonthDayPattern":"MMMM dd","PMDesignator":"PM","RFC1123Pattern":"ddd, dd MMM yyyy HH\':\'mm\':\'ss \'GMT\'","ShortDatePattern":"MM/dd/yyyy","ShortTimePattern":"HH:mm","SortableDateTimePattern":"yyyy\'-\'MM\'-\'dd\'T\'HH\':\'mm\':\'ss","TimeSeparator":":","UniversalSortableDateTimePattern":"yyyy\'-\'MM\'-\'dd HH\':\'mm\':\'ss\'Z\'","YearMonthPattern":"yyyy MMMM","AbbreviatedDayNames":["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],"ShortestDayNames":["Su","Mo","Tu","We","Th","Fr","Sa"],"DayNames":["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],"AbbreviatedMonthNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthNames":["January","February","March","April","May","June","July","August","September","October","November","December",""],"IsReadOnly":true,"NativeCalendarName":"Gregorian Calendar","AbbreviatedMonthGenitiveNames":["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec",""],"MonthGenitiveNames":["January","February","March","April","May","June","July","August","September","October","November","December",""]}}');

    return Math.round(number)._toFormattedString('n0', isCulture)
}

function HtmlEncode(text)
{
	return text.replace(/&/g,'&amp;').replace(/</g,'&lt;').replace(/>/g,'&gt;')
}

//  The below function used to show the current object and hide the other series of objects 
//  For eg. if the function is called like ecShopHideAndShow(selectObj, 2), the function make the selectObj2 to the show mode 
//  and rest of objects like selectObj1, selectObj3, selectObj4, etc. will be hidden 

function ecShopHideAndShow(objName, pos){
    var obj;
    var clsName;

    for(var i = 1; document.getElementById(objName+i)!= null; i++){
        obj = document.getElementById(objName+i);
		
        if(pos == i) {
            showObject(obj);
        }
        else {
            hideObject(obj)
        }
    }
}

function getSelectedValue(radioObjName){
   //This function returns the value of the radio button checked, if nothing is checked then returns -1
   var objR = document.getElementsByName(radioObjName);

   for(i=0;i<objR.length;i++){
        if (objR[i].checked)
             return objR[i].value;
   }

   return -1;
}

function getSelectedObj(radioObjName){
   //This function returns the value of the radio button checked, if nothing is checked then returns -1
   var objR = document.getElementsByName(radioObjName);

   for(i=0;i<objR.length;i++){
        if (objR[i].checked)
             return objR[i];
   }

   return -1;
}

function replaceBreaks(str) {
    var regExpLt = /(&lt;)/g;
    var regExpGt = /(&gt;)/g;
    
    return str.replace(regExpGt, ">").replace(regExpLt, "<");
}


function ReplaceHtml(containerId, html, pos) {
    var container = document.getElementById(containerId);
    
    if(pos == undefined) {
        pos = 0;
    }
    
    if(container) {
        var parent = container.parentNode;

        var tempElement = document.createElement("div");
        tempElement.setAttribute("id","temp_replacement_" + pos);
        tempElement.style.display = "none";
        
        tempElement.innerHTML = html.replace(containerId, containerId + "_temp_" + pos);
        parent.appendChild(tempElement);
        
        var cleanHtml = document.getElementById(containerId + "_temp_" + pos).innerHTML;
        
        container.innerHTML = cleanHtml;        
        parent.removeChild(tempElement);
    }
}

function ecShopGetStyle(el,styleProp)
{
	var x = document.getElementById(el);

	if (x.currentStyle)
		var y = x.currentStyle[styleProp];
	else if (window.getComputedStyle)
		var y = document.defaultView.getComputedStyle(x,null).getPropertyValue(styleProp);

	return y;
}

//For Captcha image verification in forms
function LoadCaptcha() {
    ecShop.Web.Soap.ecShopWS.GetCaptcha(OnSuccessCaptcha);
}

function OnSuccessCaptcha(results) {
    var s1 = results[0];
    var s2 = results[1];
    var s3 = results[2];
    
    var captcha = document.getElementById("captchaimg");
    
    if(captcha) {
        captcha.src = s3 + '/upload/files/templates/controls/CaptchaImage.aspx?height=100&width=200&text=' + s1;
        document.getElementById("captchahash").value = s2;
    }
}

//For web services
function OnError(error) {
    if(error.get_message().indexOf("ecshop-error:") > -1) {
        var word = error.get_message().replace("ecshop-error:","");

        CreateError(ecTranslate(word));
    } else {
        CreateError(error.get_message());
    }
    DeleteUpdate();
}

//word needs to be label.name
function ecTranslate(word) {
    var lang = readCookie(_ecshopLangCookie);
        
    if(lang == "" || lang == null) 
        lang = _ecshopDefaultLang;

    //_ecTranslate is a function from the ecWeb translation module js file
    //This file needs to be added to the area templates
    //Location: /webpages/templates/translation/js/translation.js
    try {
        return _ecTranslate(word + "." + lang);
    } catch(err) {
        return word + "[JSERR]";
    }
}

function ecShopGetCurrentLang() {
    var lang = readCookie(_ecshopLangCookie);
        
    if(lang == "" || lang == null) 
        lang = _ecshopDefaultLang;
        
    return lang;
}

function disable(id)
{
	hideObject(id);
}

function enable(id)
{
	showObject(id);
}

function ReplaceContent(elementId, html) {
    var container = document.getElementById(elementId);
    
    if(container != null) {
        container.innerHTML = html;
    }
}
/*** Common partial rendering starts ***/
function LoadPartialRender() {
    var render = readCookie("ecshoppartialrender" + _ecshopWebsiteId);
    
    if(render != null && render.length > 0) {
        var rendering = render.split("|");

        if(rendering.length > 2) {        
            var anchors = document.getElementsByTagName("a");
            
            var currentUrl = document.location.href;
            var currentLang = ecShopGetCurrentLang();
            
            var href = rendering[1];
            
            // Check if the user changed the language of the site
            var languageIndex = href.indexOf("lang=");
            
            var startIndex = languageIndex + 5;
            var endIndex = languageIndex + 7;
            
            if(href.length < endIndex) {
                endIndex = href.length;
            }
            
            var selectedLang = href.substring(startIndex,endIndex);
            
            if(selectedLang != currentLang) {
                href = href.replace("lang=" + selectedLang,"lang=" + currentLang);
            }          
            //end lang check            
            
           // var link = rendering[1].replace("&view=table","").replace("&view=grid","").replace("&lang=" + selectedLang,"");
            var previousUrl = "";
            
            if(rendering[2].indexOf("&category_name=") > -1 || currentUrl.indexOf("&category_name=") > -1) {
                var removeCatNamePrev = rendering[2].split("&category_name=");
                var removeCatNameCrnt = currentUrl.split("&category_name=");
                previousUrl = removeCatNamePrev[0];
                currentUrl = removeCatNameCrnt[0];
            } else {
                var previousUrl = rendering[2];
            }
            
            if(currentUrl == previousUrl) {         
                var divId = "pr_225_130_" + rendering[0];
                var divObj = document.getElementById(divId);
                webSite = divObj.getAttribute("webSite");
                siteName = divObj.getAttribute("siteName");
                handlerPage = "/" + siteName + staticHandlerPath; 
                tagId = divId;                        
                        
                getContent("", href, divId, ""); 
            } else {
                createCookie("ecshoppartialrender" + _ecshopWebsiteId, "", 0);
                showObject("ecshop_product_container");
            }
        } else {
            showObject("ecshop_product_container");
        }
    } else {
        showObject("ecshop_product_container");
    }
}

function PrePartialRender(anchor, modulePosition) {
    var ahref = anchor.href;
    createCookie("ecshoppartialrender" + _ecshopWebsiteId, modulePosition + "|" + ahref + "|" + document.location.href, 1);    
}

function partialRenderLoading() {
    if(!_ecshopPreLoading) {
        CreateUpdate(ecTranslate("product-messages.product-updating-list"));
        _ecshopPreLoading = false;
    }
}

function partialRenderLoaded() {    
    DeleteUpdate();      
    
    var lastOpenedProduct = readCookie("ecshoptable" + _ecshopWebsiteId);
    
    if(lastOpenedProduct != "") {
        oldContainer = document.getElementById("ecshopfx_detail_" + lastOpenedProduct);
        lineContainer = document.getElementById("ecshopfx_table_line_" + lastOpenedProduct);

        if(oldContainer) {
            showObject(oldContainer);
            lineContainer.className = "line with_bkg";
        }
        
        _ecshopLastOpenedProduct = lastOpenedProduct;
        createCookie("ecshoptable" + _ecshopWebsiteId, "", 0);
    }
    
    showObject("ecshop_product_container");
	LoadCompareProducts();

}
/*** Common partial rendering ends ***/

function trim(text) {
    return text.replace(/^\s*|\s*$/g, "");
}

/*** Common popups ***/

var _zIndex = 500;

function createPopup(html, nameOfClass, id) {
    var container = document.getElementById("ecshop-hover_" + id);
    
    if(container == null) {
        container = document.createElement("div");
    } else {
        container.innerHTML = "";
    }    

    container.className = "ecshop_hover_window";
    container.setAttribute("id","ecshop-hover_" + id);
    container.style.zIndex = _zIndex++;

    var popup = document.createElement("div");
    popup.className = "ecshop_hover_content " + nameOfClass;
    popup.setAttribute("id","ecshop-content_" + id);
    
    var closeWindow = document.createElement("div");
    closeWindow.className = "ecshop_hover_close";
    closeWindow.innerHTML = '<a href="javascript:removePopup(\'' + id + '\')" class="img_replace" title="' + _ecshopCloseWindow + '"><span>' + _ecshopCloseWindow + '</span></a>';
    
    var content = document.createElement("div");    
    content.innerHTML = html;
    
    popup.appendChild(content);
    popup.appendChild(closeWindow);
     
    container.appendChild(popup);    

    var parent = document.body;    
    parent.insertBefore(container, parent.firstChild);
}

function removePopup(id) {
    var popup = document.getElementById("ecshop-hover_" + id);

    if(popup) {
       popup.parentNode.removeChild(popup);
    }
}

//Common confirmations/messages/errors to the user

function CreateError(error) {
    var html = '<h2>' + ecTranslate("common-headings.common-error") + '</h2><p>' + error + '</p>';

    createPopup(html, "ecshop_error", "ecshoperror");
}

function CreateConfirmation(header, content, id) {
    var html = '<h2>' + header + '</h2>' + content;
    
    createPopup(html, "ecshop_confirmation", id);
}

function CreateMessage(header, text, id) {
    var html = '<h2>' + header + '</h2><p>' + text + '</p>';

    createPopup(html, "ecshop_message", id);
    
    //automatically fade away
    setTimeout("FadeItem('ecshop-content_" + id + "','out',1000)",3000, true);
    
    //remove popup when faded
    setTimeout("removePopup('" + id + "')",5000);
}

function FadeItem(id, direction, speed, deleteItem) {   
    if(speed == undefined)
        speed = 1000;
        
    if(direction == undefined)
        direction = "out";
 
    if(direction == "in") {
        $("#" + id).fadeIn(speed);
    } else if(direction == "out") {
        $("#" + id).fadeOut(speed);
    }
    
    /*if(deleteItem == undefined) {
        deleteItem = true;
    }
    
    if(deleteItem) {
        deleteObject(id);
    }*/
}

// Create / Delete update 
// Used when creating small process/update notifications to the user to let them know that there's a process going on.

// Examples: 
// - When adding or removing from the basket
// - Creating or editing an address
// - Searching for products

function CreateUpdate(text) {
    var html = '<p>' + text + '</p>';

    createPopup(html, "ecshop_update", "ecshop_update");
}

function DeleteUpdate() {
    removePopup("ecshop_update");
}

function showObject(elementId) {
    var object = null;
    
    if(typeof(elementId) == "string") {
        object = document.getElementById(elementId);
    } else {
        object = elementId;
    }
        
    if(object) {
        if(object.className.indexOf(" ecshop_hide") > -1) {
            object.className = object.className.replace(" ecshop_hide","");
        } else if(object.className.indexOf("ecshop_hide") > -1) {
            object.className = object.className.replace("ecshop_hide","");
        } else if(object.className.indexOf(" ecshop_obscure") > -1) {
            object.className = object.className.replace(" ecshop_obscure","");
        } else if(object.className.indexOf("ecshop_obscure") > -1) {
            object.className = object.className.replace("ecshop_obscure","");
        }
        
        if(object.style.display == 'none') {
            object.style.display = '';
        }
        
        if(object.style.visibility == 'hidden') {
            object.style.visibility = '';
        }
    }
}

function obscureObject(elementId) {
    var object = null;
    
    if(typeof(elementId) == "string") {
        object = document.getElementById(elementId);
    } else {
        object = elementId;
    }   

    if(object) { 
        if(object.className.indexOf("ecshop_obscure") == -1) { 
            if(object.className.length > 0) {
                object.className += " ecshop_obscure";
            } else {
                object.className = "ecshop_obscure";
            }
        }
    }
}

function hideObject(elementId) {
    var object = null;
    
    if(typeof(elementId) == "string") {
        object = document.getElementById(elementId);
    } else {
        object = elementId;
    }   

    if(object) { 
        if(object.className.indexOf("ecshop_hide") == -1) { 
            if(object.className.length > 0) {
                object.className += " ecshop_hide";
            } else {
                object.className = "ecshop_hide";
            }
        }
    }
}

function deleteObject(elementId) {
    var object = document.getElementById(elementId);
    
    if(object) {
        var parent = object.parentNode;
        
        if(parent) {
            object.parentNode.removeChild(object);
        }
    }
}

function toggleObject(elementId) {
    var object = document.getElementById(elementId);
    
    if(object) {
        if(object.className.indexOf("ecshop_hide") == -1) {
            hideObject(elementId);            
        } else {
            showObject(elementId);
        }
    } 
}

function overwriteInnerHTML(elementObj,oldText,newText) {
    
    if(elementObj) {
        if(elementObj.innerHTML.indexOf(oldText) > -1) {
            elementObj.innerHTML = newText;
        } else {
            elementObj.innerHTML = oldText;
        } 
    }
    
}
// Main function to retrieve mouse x-y pos.s

function ecShopCaptureMouse(e) {
    if (!document.all) {
        _ecshopTempX = e.pageX
        _ecshopTempY = e.pageY
    }
}

function ecShopCaptureHistory(e) {
    if (document.all) { // grab the x-y pos.s if browser is IE
        _ecshopTempX = event.clientX
        _ecshopTempY = event.clientY
    }
    
    if(_ecshopTempY < 1) {
        return ecTranslate("checkout-errors.checkout-navigate-back");
    }
}

// *************************************\\
//                                      \\
//         Util functions end           \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//   Forum functions (product review)   \\
//                                      \\
// *************************************\\

function GetComments(productId) {
    /*
        Check if #ecshop_product_reviews is display:none or not,
        if it is "none", do not get the comments.
    */
    
    var userComments = document.getElementById("ecshop_product_reviews");
    
    if(userComments) {
        var elementStyle = ecShopGetStyle("ecshop_product_reviews","display").toLowerCase();
        
        if(elementStyle != "none") {
            if(productId != undefined) {  
                ecShop.Web.Soap.ecShopWS.GetPosts(productId, OnComments, OnError);
            }
        }
    }
}

function getForumForm(prodId, productSerial, catName)
{    
    var results = "";
    var productSerial =  (productSerial.indexOf("\'") > -1) ? productSerial.replace("\'","\\'") : productSerial;

    var header = ecTranslate("product-headings.product-review-product");
    var name = ecTranslate("common-labels.common-field-name");
    var message = ecTranslate("common-labels.common-field-message");
    var imgVerification = ecTranslate("common-labels.common-field-verification");
    var imgTooltip = ecTranslate("common-tooltips.common-field-verification");
    var imgRegenerate = ecTranslate("common-tooltips.common-field-imgregenerate");
    var sendButton = ecTranslate("common-buttons.common-send");
    var cancelButton = _ecshopCancelButton;
    var closeButton = _ecshopCloseWindow;
    
    results += '<h2>' + header + '</h2>';
    results += '<div class="ecshop_form_container" id="comment_container">';    
    results += '<div>';
    results += '<label for="comment_author">' + name + ' *</label>';
    results += '<input id="comment_author" maxlength="30" size="30" class="validate"/>';
    results += '</div>';
    results += '<div>';
    results += '<label for="comment_content">' + message + ' *</label>';
    results += '<textarea id="comment_content" rows="3" cols="30" class="validate"></textarea>';
    results += '</div>';
    results += '<div>';
    results += '<input type="hidden" id="captchahash" value=""/>';
    results += '<div class="ecshop_captcha"><img id="captchaimg" src="' + ecShopReturnHost() + '/upload/files/templates/controls/captcha.gif" onclick="return LoadCaptcha();" height="100" width="200" alt="Image verification" title="' + imgRegenerate + '" /></div>';
    results += '</div>';
    results += '<div>';
    results += '<label for="captcha_input" title="' + imgTooltip + '">' + imgVerification +' *</label>';
    results += '<input type="text" id="captcha_input" size="20" class="validate" maxlength="20" />';
    results += '</div>';
    results += '<div class="ecshop_form_buttons">';
    results += '<button onclick="postComment(\'' + prodId + '\',\'' + productSerial + '\',\''+ catName + '\')" class="ecshop_send">' + sendButton + '</button><button onclick="removePopup(\'forum-form\')" class="ecshop_cancel">' + cancelButton + '<br/><span>' + closeButton + '</span></button>';
    results += '<div class="clear"></div>';
    results += '</div>';
    results += '</div>';
    
    LoadCaptcha();

    createPopup(results,"ecshop_create-address","forum-form");    
}

function postComment(productId, productSerial, catName)
{
    var name = document.getElementById('comment_author').value;
    var email = ""; //Not used in release v1.0 or v2.0
    var postText = document.getElementById('comment_content').value;
    var captchaInput = document.getElementById('captcha_input').value;
    var captchaHash = document.getElementById('captchahash').value;
    var firstPost = document.getElementById("ecshopfx_first_post").value;
    var status = 0; //0: Post is submitted as unapproved, 1: Post is submitted as approved
    var customProperties = "<root/>"; //<root/>: no custom properties, else use XML structure for ptyxml
    var fromEditor = "true"; //false: status will always be 0, true: status will take given value 1 or 0
    
    //if(validateForm("comment_container",_ecshopValidateIsMissingText,"",_ecshopValidateNotValidText,"")) 
    if(validateForm("comment_container")) 
    {
        CreateUpdate(ecTranslate("product-messages.product-comment-posting"));
        ecShop.Web.Soap.ecShopWS.PostComment(productId, catName, productSerial, postText, name, email, customProperties, fromEditor, status, firstPost, captchaHash, captchaInput, OnPostComments, OnError);        
    }    
}

function OnPostComments() {
    DeleteUpdate();
    CreateMessage(ecTranslate("common-headings.common-success"),ecTranslate("product-labels.product-comment-posted"),"postedcomment");
    removePopup("forum-form");
    document.getElementById("ecshopfx_first_post").value = "false";         
}

function OnComments(results) {    
    DeleteUpdate();
    
    if(results.indexOf("class=\"ecshop_forum\"") > -1) {
        ReplaceContent("ecshopfx_product_comments", results);
        document.getElementById("ecshopfx_first_post").value = "false"; 
    } else if(results.indexOf("class=\"ecshop_forum_empty\"") > -1) {
        ReplaceContent("ecshopfx_product_comments", ecTranslate("product-labels.product-nocomments"));
        document.getElementById("ecshopfx_first_post").value = "false"; 
    } else if(results.indexOf("<threaderror>") > -1 || results == "") {
        ReplaceContent("ecshopfx_product_comments", ecTranslate("product-labels.product-nocomments"));
        document.getElementById("ecshopfx_first_post").value = "true";
    } 
}

// *************************************\\
//                                      \\
//        Forum functions end           \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//         Account management           \\
//                                      \\
// *************************************\\

var _ecshopRedirectParamIndex = _ecshopCurrentUrl.indexOf("?noredirect=true&from=");

if(_ecshopRedirectParamIndex > -1) {
    var redirectTo = _ecshopCurrentUrl.substring(_ecshopRedirectParamIndex, _ecshopCurrentUrl.length);
    
    document.location.href = _ecshopSignInPage;
}

// *************************************\\
//                                      \\
//       Account management end         \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//         Address management           \\
//                                      \\
// *************************************\\

// Count and List Address 

function ecShopAccountLoadAddress() {
    ecShopGetAddresses(_ecshopPageType, _ecshopAccountUser, 'ecshopfx_address_list');
}

function ecShopGetAddresses(pageType, userId, addressContainer, webshop) {    
    if(webshop == undefined)
        webshop = false;
    
    _ecshopPageType = pageType;
    _ecshopAccountUser = userId;  
    _ecshopAddressContainer  = addressContainer; 
    _ecshopGetWebshop = webshop;
    
    if(userId == 0 || userId == null) {        
        document.getElementById(addressContainer).innerHTML = ecTranslate("account-labels.account-order-message-anonymoususer");        
    }
    
    else if(userId != null) {
        CreateUpdate(ecTranslate("account-labels.account-address-loading"));
        ecShop.Web.Soap.ecShopWS.GetAddresses(userId, pageType, OnListAddresses, OnError);   
    } 
}
          
function OnListAddresses(results) {  
   if(results.length > 0 ) {
        ReplaceContent(_ecshopAddressContainer, results);
    } 
    else if(results.length == 0) {       
        var html = '<div class="ecshop_form_container" id="ecshop_form_container">';
        html += '<h3>'+ ecTranslate("account-headings.account-address-create") + '</h3>';                
        html += '<button class="ecshop_send" value="add_address" onclick="addAddress(\'' + _ecshopAccountUser + '\')">' + ecTranslate("account-buttons.account-address-create") + '</button>';
        html += '</div><div class="clear"></div>';
        ReplaceContent(_ecshopAddressContainer, html);
    }
    
    DeleteUpdate();
    
    if(_ecshopGetWebshop) {
        ecShopLoadStep1Registered();
        _ecshopGetWebshop = false;
    }
} 

// Add Address 

function ecShopAddAddress() {                            
    ecShopGetAddressForm();
}
    
function ecShopGetAddressForm() {
    if(_ecshopAddressFormat != null) {
        OnAddressForm(_ecshopAddressFormat);
    } else {
        ecShop.Web.Soap.ecShopWS.GetAddressForm(OnAddressForm, OnError);
    }
}

function OnAddressForm(results) {  
    if(_ecshopAddressFormat == null) {
        _ecshopAddressFormat = results;
    }

    var html = '<div class="ecshop_form_container" id="ecshop_address_form">';
    html += '<h3>' + ecTranslate("account-headings.account-address-create") + '</h3>';

    for(var i = 0; i < results.length; i++) {
        var collection = "common-labels.";
        var word = "common-field-" + results[i].Xml;
        var translation = ecTranslate(collection + word);
        
        var name = (translation != undefined && translation.indexOf(word) > -1) ? results[i].Name : translation;
        
        html += '<div><label for="infoId_' + results[i].Id + '">' + name + ((results[i].Validation.indexOf("validate") > -1) ? ' *' : '') + '</label>';
        
        if(results[i].IsReadOnly) {
            html += '<input id="infoId_' + results[i].Id + '" maxlength="50" size="30" class="' + results[i].Validation + '" value="' + results[i].DefaultValue + '" readonly="readonly"/></div>';    
        } else {
            html += '<input id="infoId_' + results[i].Id + '" maxlength="50" size="30" class="' + results[i].Validation + '" /></div>';
        }
    }        
    html += '<div class="buttons">';
    html += '<button onclick="ecShopCreateAddress()" class="ecshop_send">' + ecTranslate("common-buttons.common-save") + '</button>';
    html += '<button onclick="removePopup(\'create-address\')" class="ecshop_cancel">' + _ecshopCancelButton + '<br/><span>' + _ecshopCloseWindow + '</span></button>';
    html += '</div>';
    html += '<div class="clear"></div></div>';    
   
    createPopup(html,"ecshop_create-address","create-address");        
}

function ecShopCreateAddress() {
    var addressContainer = document.getElementById("ecshop_address_form");     
    var inputs = addressContainer.getElementsByTagName("input");
    var inputIdArray = new Array();
    var inputValueArray = new Array();
    var isPrimary = 0;
    
    for(var i = 0; i < inputs.length; i++) {
        var name = inputs[i].getAttribute("id");
        
        if(name.indexOf("infoId") > -1) {
            var id = name.replace("infoId_","");
            var value = inputs[i].value;
            
            inputIdArray[i] = id;
            inputValueArray[i] = value;
        }
    }

    //if(validateForm("ecshop_address_form",_ecshopValidateIsMissingText,"",_ecshopValidateNotValidText)) {
    if(validateForm("ecshop_address_form")) {
        removePopup("create-address");   
        CreateUpdate(ecTranslate("account-labels.account-address-saving"));
        ecShop.Web.Soap.ecShopWS.CreateAddress(_ecshopAccountUser, inputIdArray, inputValueArray,_ecshopPageType, isPrimary, OnCreateAddress, OnError);
    }
}

function OnCreateAddress(results) {
    CreateMessage(ecTranslate("common-headings.common-success"),ecTranslate("account-labels.account-address-created"),"addaddress_message"); 
    OnListAddresses(results);
}

function ecShopShowAddress(addressId) {     
    ecShop.Web.Soap.ecShopWS.GetAddress(addressId, OnShowAddress);
}

function OnShowAddress(results) {
    if(results != null) {
        var html = '<div class="ecshop_form_container" id="ecshop_form_container">';
        html += '<h3>' + ecTranslate("account-headings.account-address-edit") + '</h3>';     
        
        for(var i = 0; i < results.Details.length; i++) {           
            if(results.Details[i].Info.Deleted == 0) {
                var collection = "common-labels.";
                var word = "common-field-" + results.Details[i].Info.Xml;
                var translation = ecTranslate(collection + word);
        
                var name = (translation.indexOf(word) > -1) ? results.Details[i].Info.Name : translation;
                               
                html += '<div><label for="infoId_' + results.Details[i].InfoID + '">' + name + ((results.Details[i].Info.Validation.indexOf("validate") > -1) ? ' *' : '') + '</label> ';
                
                if(results.Details[i].Info.IsReadOnly) {
                    html += '<input readonly="readonly" id="infoId_' + results.Details[i].InfoID + '" maxlength="50" size="30" value="' + results.Details[i].Info.DefaultValue + '" /></div>';
                } else {
                    html += '<input class="' + results.Details[i].Info.Validation + '" id="infoId_' + results.Details[i].InfoID + '" maxlength="50" size="30" value="' + results.Details[i].InfoValue + '" /></div>';
                }
            }
        }
        html += '<div class="buttons"><button onclick="ecShopUpdateAddress(\'' + results.AddressId + '\',\'' + results.UserId + '\')" class="ecshop_send">' + ecTranslate("common-buttons.common-save-changes") + '</button>';
        html += '<button onclick="removePopup(\'edit-address\')" class="ecshop_cancel">' + _ecshopCancelButton + '<br/><span>' + _ecshopCloseWindow + '</span></button></div>';
        html += '<div class="clear"></div></div>';
     
        createPopup(html,"ecshop_create-address","edit-address");          
    }
}

function ecShopUpdateAddress(addressId) {
    var addressContainer = document.getElementById("ecshop_form_container");        
    var inputs = addressContainer.getElementsByTagName("input");
    var inputIdArray = new Array();
    var inputValueArray = new Array();
    var isPrimary = 0;
    
    for(var i = 0; i < inputs.length; i++) {
        var name = inputs[i].getAttribute("id");
        
        if(name.indexOf("infoId") > -1) {        
            var id = name.replace("infoId_","");
            var value = inputs[i].value;
            
            inputIdArray[i] = id;
            inputValueArray[i] = value;
        }
    }
    
    //if(validateForm("ecshop_form_container", _ecshopValidateIsMissingText, "", _ecshopValidateNotValidText)) {
    if(validateForm("ecshop_form_container")) {
        removePopup("edit-address");
        CreateUpdate(ecTranslate("account-labels.account-address-updating"));
        ecShop.Web.Soap.ecShopWS.EditAddress(addressId, _ecshopAccountUser, inputIdArray, inputValueArray,_ecshopPageType, isPrimary, OnUpdateAddress, OnError);
    }
}

function OnUpdateAddress(results) {
    CreateMessage(ecTranslate("common-headings.common-success"), ecTranslate("account-labels.account-address-created"), "addaddress_message"); 
    OnListAddresses(results);
}

function ecShopDeleteAddress(addressId) {
     var html = '<div class="ecshop_form_container">';
     html += '<p>' + ecTranslate("account-labels.account-address-delete") + '</p>';    
     html += '<div class="buttons"><button onclick="ecShopDoDeleteAddress(\'' + addressId + '\')" class="ecshop_send">' + _ecshopOkButton + '</button>';
     html += '<button onclick="removePopup(\'confirm-delete\')" class="ecshop_cancel">' + _ecshopCancelButton + '<br/><span>' + _ecshopCloseWindow + '</span></button></div>';
     html += '<div class="clear"></div></div>';  
     CreateConfirmation(ecTranslate("account-headings.account-address-delete"),html,"confirm-delete");   
}

function ecShopDoDeleteAddress(addressId) {
    removePopup("confirm-delete");
    ecShop.Web.Soap.ecShopWS.DeleteAddress(addressId, _ecshopPageType, OnListAddresses, OnError);
    CreateMessage(ecTranslate("common-headings.common-success"), ecTranslate("account-labels.account-address-deleted"),"deleteaddress_message");  
    window.setTimeout("removePopup('deleteaddress_message')",1000);    
}

//Used in checkout process
function ecShopGetAddressFormatArray() {
    if(!_ecshopGettingFormat) {
        _ecshopGettingFormat = true;
        ecShop.Web.Soap.ecShopWS.GetAddressForm(ecShopOnGetAddressFormatArray, OnError);
    }
}

function ecShopOnGetAddressFormatArray(results) {
    _ecshopAddressFormat = results;
    _ecshopGettingFormat = false;
} 

// *************************************\\
//                                      \\
//       Address management ends        \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//            Order history             \\
//                                      \\
// *************************************\\


function ecShopFilterOrder(objTable,objSelect,selectedIndex1,selectedIndex2,selectedIndex3,selectedIndex4) { 
    var selectedIndex = objSelect.selectedIndex;     
    var selectedYear = objSelect.options[selectedIndex].value;          

    if(selectedYear == selectedIndex1) {
        CreateError(ecTranslate("account-labels.account-order-filter-alert"));        
    }
    else if(selectedYear == selectedIndex2) {
        CreateUpdate(ecTranslate("account-messages.account-updating-the-orderlist"));
        ecShopFilter(objTable,selectedPeriod,2);                           
    }
    else if(selectedYear == selectedIndex3) {     
        CreateUpdate(ecTranslate("account-messages.account-updating-the-orderlist"));                               
        
        var date = new Date();
        var now = new Date(date.getTime() - (14*24*60*60*1000)); 
        
        seletedMonth = now.getMonth() + 1;
        
        var selectedPeriod = now.getFullYear().toString() + (seletedMonth < 10 ? "0" + seletedMonth.toString() : seletedMonth.toString()) + (now.getDate() < 10 ? "0" + now.getDate().toString() : now.getDate().toString());     
        ecShopFilter(objTable,selectedPeriod,1);   
    }    
    else if(selectedYear == selectedIndex4) {  
        CreateUpdate(ecTranslate("account-messages.account-updating-the-orderlist"));   
        
        var date = new Date();
        var now = new Date(date.getTime() - (182*24*60*60*1000));
        seletedMonth = now.getMonth() + 1;                           
        
        var selectedPeriod = now.getFullYear().toString() + (seletedMonth < 10 ? "0" + seletedMonth.toString() : seletedMonth.toString()) + (now.getDate() < 10 ? "0" + now.getDate().toString() : now.getDate().toString());                                                              
        ecShopFilter(objTable,selectedPeriod,1);    
    }                      
    else {        
        CreateUpdate(ecTranslate("account-messages.account-updating-the-orderlist"));                    
        ecShopFilter(objTable,selectedYear,0);   
    }                        
}           

function ecShopFilter(table,selectedValue,cell) { 
    var hideRow; 

    for (var i = 0 ; i < table.rows.length;i++) {        
        hideRow = false;
        
        var cels = table.rows[i].getElementsByTagName('td');  

        if(cell == 0 && cels[cell].innerHTML != selectedValue) {
            hideRow = true; 
        } else if(cell == 1 && cels[cell].innerHTML < selectedValue) { 
            hideRow = true; 
        } else {
            hideRow=false;
        }
        
        if (hideRow) { 
            table.rows[i].style.display = 'none';
        } else {
            table.rows[i].style.display = '';
        }
    }
    
    setTimeout("DeleteUpdate()", 2000);
}


// *************************************\\
//                                      \\
//         Order history ends           \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//          Validation functions        \\
//                                      \\
// *************************************\\

//function validateForm(formId, missingText, passwordText, incorrectText, expiredText, singleChar) {
function validateForm(formId) {
	var missingText = (ecTranslate("common-labels.common-form-validate-ismissing").length > 0) ? ecTranslate("common-labels.common-form-validate-ismissing") : "";
	var passwordText = (ecTranslate("common-labels.common-form-validate-passwordmismatch").length > 0) ? ecTranslate("common-labels.common-form-validate-passwordmismatch") : "";
	var incorrectText = (ecTranslate("common-labels.common-form-validate-notvalid").length > 0) ? ecTranslate("common-labels.common-form-validate-notvalid") : "";
	var expiredText = (ecTranslate("common-labels.common-form-validate-ccexpired").length > 0) ? ecTranslate("common-labels.common-form-validate-ccexpired") : "";
	var singleChar = (ecTranslate("common-labels.common-form-validate-singlechar").length > 0) ? ecTranslate("common-labels.common-form-validate-singlechar") : "";
	var sixChar = (ecTranslate("common-labels.common-form-validate-sixchar").length > 0) ? ecTranslate("common-labels.common-form-validate-sixchar") : "";
	
   /* if(!missingText)
        missingText = "";
    
    if(!passwordText)
        passwordText = "";
        
    if(!incorrectText)
        incorrectText = "";
        
    if(!expiredText)
        expiredText = "";
        
    if(!singleChar) {
        singleChar = "";
    }*/
   
    var form = document.getElementById(formId);
    var inputs = form.getElementsByTagName("input");    
    var textareas = form.getElementsByTagName("textarea");
    var selects = form.getElementsByTagName("select");
        
    var validatedInputs = validateElements(inputs, missingText, passwordText, incorrectText, expiredText, singleChar, sixChar);
    var validatedTextareas = validateElements(textareas, missingText, passwordText, incorrectText, expiredText, singleChar, sixChar);
    var validatedSelects = validateElements(selects, missingText, passwordText, incorrectText, expiredText, singleChar, sixChar);
        
    return (validatedInputs && validatedTextareas && validatedSelects);
}

function validateElements(inputs, missingText, passwordText, incorrectText, expiredText, singleChar, sixChar) {
    
    var validated = true; 
    
    for(var i = 0; i < inputs.length; i++)
    { 
        var currInput = inputs[i];
        var parent = currInput.parentNode;
        var label;
        var missing;
        var smallText;               
                              
        var checkEmail = (currInput.className.indexOf("email") > -1 && !validateEmail(currInput.value)); 
        var checkAlphabet = (currInput.className.indexOf("alphabet") > -1 && !validateAlphabet(currInput.value));
        var checkAlphanumeric = (currInput.className.indexOf("alphanumeric") > -1 && !validateAlphaNumerics(currInput.value));
        var checkNumerics = (currInput.className.indexOf("number") > -1 && !validateNumerics(currInput.value));          
        var checkCVC = (currInput.className.indexOf("cvc") > -1 && !validateCVCNumber(currInput.value));
        var checkCCN = (currInput.className.indexOf("ccn") > -1 && !validateCreditCardNumber(currInput.value));
        var checkCEXP = (currInput.className.indexOf("cexp") > -1 && !validateCCExpires(currInput.value,currInput.className));
        var checkSSN = (currInput.className.indexOf("ssn") > -1 && !validateSSN(currInput.value));
        var checkEmailConfirm = (currInput.className.indexOf("cmail_") > -1 && !validateEmailConfirm(currInput.value, currInput.className));
        var checkPassword = (currInput.className.indexOf("password_") > -1 && !validatePassword(currInput.value, currInput.className));
        var checkSelectList = (currInput.className.indexOf("select") > -1 && !validateSelect(currInput));
        var checkSingle = (currInput.className.indexOf("single") > -1 && !validateSingle(currInput.value));
        var checkPhone = (currInput.className.indexOf("phone") > -1 && !validatePhone(currInput.value));

        //Validate mandatory fields
        if(currInput.className.indexOf("validate") > -1 || currInput.className.indexOf("required") > -1) {             
           
            currInput.className = currInput.className.replace("required","validate");
            
            label = parent.getElementsByTagName("label")[0];           
                        
            if(label != null) {          
               
                var origLabel = (label.getAttribute("orig") != null && label.getAttribute("orig") != "") ? label.getAttribute("orig") : label.innerHTML;                                         
                label.innerHTML = origLabel;
                label.className = label.className.replace(" error","").replace("error","");
            }
                       
            if(trim(currInput.value) == "" ||checkEmail || checkSSN || checkPassword || checkEmailConfirm || checkCVC || checkCCN || checkCEXP || checkSelectList || checkAlphabet || checkAlphanumeric || checkNumerics || checkSingle || checkPhone)
            {                    
                validated = false;
                currInput.className = currInput.className.replace("validate","required");
                               
                label = parent.getElementsByTagName("label")[0];
                
                if(label) {
                    var origLabel = (label.getAttribute("orig") != null && label.getAttribute("orig") != "") ? label.getAttribute("orig") : label.innerHTML;
              
                    var errorLabel = "";
                    
                    label.setAttribute("orig", origLabel);
                    
                    if(trim(currInput.value) == "") {
                        errorLabel = origLabel.replace(" *","") + " " + missingText;                                            
                    } else if (checkPassword || checkEmailConfirm) {
                        errorLabel = passwordText;
                    } else if(checkCCN || checkCVC || checkEmail || checkSSN || checkAlphabet || checkAlphanumeric || checkNumerics) {
                        errorLabel = origLabel.replace(" *","") + " " + incorrectText;
                    } else if(checkCEXP) {
                        errorLabel = expiredText;
                    } else if(checkPhone) {
                        errorLabel = origLabel.replace(" *","") + " " + sixChar;
                    } else if(checkSingle) {
                        errorLabel = origLabel.replace(" *","") + " " + singleChar;
                    } else if(checkSelectList){
                        errorLabel = origLabel.replace(" *","") + " " + missingText;
                    }  
                    
                    label.innerHTML = errorLabel;
                    
                    if(label.className == "") {
                        label.className = "error";
                    } else {
                        label.className += " error";
                    }
                }
            }
        } else if((currInput.className.indexOf("optional") > -1 || currInput.className.indexOf("incorrect") > -1) && trim(currInput.value) != "") {
            
            //Validate optional fields if they are filled in
            currInput.className = currInput.className.replace("incorrect","optional");
            
            label = parent.getElementsByTagName("label")[0];
            
            if(label) {
                var origLabel = (label.getAttribute("orig") != null && label.getAttribute("orig") != "") ? label.getAttribute("orig") : label.innerHTML;
                
                label.innerHTML = origLabel;
                label.className = label.className.replace(" error","").replace("error","");
                
                if(checkEmail || checkSSN || checkPassword || checkEmailConfirm || checkCVC || checkCCN || checkCEXP || checkAlphabet || checkAlphanumeric || checkNumerics || checkSingle || checkPhone)
                {
                    validated = false;
                    currInput.className = currInput.className.replace("optional","incorrect");
                    
                    label = parent.getElementsByTagName("label")[0];
                    origLabel = (label.getAttribute("orig") != null && label.getAttribute("orig") != "") ? label.getAttribute("orig") : label.innerHTML;
                    
                    errorLabel = "";                             
            
                    label.setAttribute("orig", origLabel);
                    
                    if(incorrectText == "") {
                        incorrectText = missingText;
                    }

                    if(checkSSN || checkCCN || checkCVC || checkAlphabet || checkAlphanumeric || checkNumerics) {
                        errorLabel = origLabel.replace(" *","") + " " + incorrectText;
                    } else if(checkCEXP) {
                        errorLabel = expiredText;
                    } else if(checkSingle) {
                        errorLabel = origLabel.replace(" *","") + " " + singleChar;
                    } else if(checkPhone) {
                        errorLabel = origLabel.replace(" *","") + " " + sixChar;
                    } else {
                        errorLabel = origLabel.replace(" *","") + " " + missingText;
                    }                
                    
                    label.innerHTML = errorLabel;
                    
                    if(label.className == "") {
                        label.className = "error";
                    } else {
                        label.className += " error";
                    }
                }
            }
        }
        /*else {            
            label = parent.getElementsByTagName("label")[0];
            
            if(label != null) {
                var origLabel = (label.getAttribute("orig") && label.getAttribute("orig") != "") ? label.getAttribute("orig") : label.innerHTML;
                
                label.innerHTML = origLabel;
                label.className = label.className.replace(" error","").replace("error","");
            }            
        }*/
    }
    
    return validated;
}

function validateSingle(value) {
    if(value.length > 1) 
        return true;
    else 
        return false;
}

function validatePhone(value) {
    if(value.length > 6) 
        return true;
    else 
        return false;
}

function validateSelect(objSelect){
    if(objSelect.options[objSelect.selectedIndex].value == '0')
        return false;
    return true;
}

function validateName(str){
    var reg = new RegExp("[\\[\\]{}%*`~^$#@&()|!=(0-9)]","gi"); 
    if (reg.test(str))
        return false;
    return true;
}

function validatePassword(value, compareValueObj) {
    var tmp1 = compareValueObj.replace("validate ","");
    var tmp2 = tmp1.replace("required ","");
    var compareValue = document.getElementById(tmp2.replace("password_","")).value;
    
    if(value != compareValue)
		return false;
    else
        return true;
}

function validateSSN(src)
{
    var regex = /[0-9]/g;
    
    if(src.length != 10) {
        return false;
    } else {
        if(regex.test(src))
        {
            return true;
        }
        else {
            return false;
        }
    }
}

function validateEmail(src)
{
    var regex=/([a-zA-Z0-9_-])+(\.{0,1})+([a-zA-Z0-9_-])+([\.][a-zA-Z0-9_-]+){0,1}@{1}([a-zA-Z0-9_-])+(\.{1})+([a-zA-Z0-9]{0,4})+(\.{0,1})+[a-zA-Z]{2,4}$/;

    if(regex.test(src)) {
         return true;
    } else {
        return false;
    }
}

function validateEmailConfirm(value, compareValueObj) {
    var tmp1 = compareValueObj.replace("validate ","");
    var tmp2 = tmp1.replace("required ","");
    var compareValue = document.getElementById(tmp2.replace("cmail_","")).value;
    
    if(value != compareValue)
        return false;
    else
        return true;
}

function validateNumerics(src) {
    var allowed = /^-{0,1}\d+$/;
    
    if(allowed.test(src)) {
        return true;
    }else {
        return false;
    }
}

function validateAlphaNumerics(src) {
    var allowed = /[a-z0-9]/g;
    
    if(allowed.test(src)) {
        return true;
    }else {
        return false;
    }
}

function validateAlphabet(src) {
    var allowed = /[a-z]/g;
    
    if(allowed.test(src)) {
        return true;
    }else {
        return false;
    }
}

function validateNumber(obj) {
    var allowed = /[^0-9]/g;
    
    var value = obj.value;
    
    obj.value = value.replace(allowed,'');
}

function validateCreditCardNumber(CCN)
{
    var Valid_Numbers = "0123456789";
    var CreditCard_Numbers = "";
    
    for (var i=0; i < CCN.length; i++)
    {
        Temp = CCN.charAt(i);
        if (Valid_Numbers.indexOf(Temp,0) != -1) { CreditCard_Numbers += Temp; }
    }
    
    var Sum_CreditCard = CreditCard_Numbers.length / 2;
    
    if (Sum_CreditCard < 6.5 || Sum_CreditCard > 8 || Sum_CreditCard == 7)
        return false;
    
    var CreditCard_Even = Math.floor(Sum_CreditCard);
    var CreditCard_Odd = Math.ceil(Sum_CreditCard) - CreditCard_Even;
    var Temp2 = 0;

    for (var i=0; i<CreditCard_Even; i++)
    {
        a = CreditCard_Numbers.charAt(i*2+CreditCard_Odd) * 2;
        Temp2 += a > 9 ? Math.floor(a/10 + a%10) : a;
    }

    for (var i=0; i<CreditCard_Even+CreditCard_Odd; i++) {
        Temp2 += CreditCard_Numbers.charAt(i*2+1-CreditCard_Odd) * 1;
    }

    return (Temp2%10 == 0);
    return false;
}

function validateCVCNumber(src) {
    var cv=/^\d{3}$/;
    
    if (src.length > 3)
    {
        return false;
    }    
    else if (src.length < 3)
    {
        return false;
    }
    else if (src.search(cv)==-1)
    {
        return false;
    }
    else {
        return true;
    }
}

//Checks if the credit card has expired or not
function validateCCExpires(month, yearClass) {
    var yearId = yearClass.replace("validate ","").replace("required ","").replace("cexp_","");
    var yearObj = document.getElementById(yearId);
    
    var year = yearObj.options[yearObj.selectedIndex].text;

    var today = new Date();
    var currentMonth = (today.getMonth() + 1);
    var currentYear = today.getFullYear();
    
    if(month.substring(0,1) == 0) {
        month = month.substring(1,2);
    }
    
    if(currentYear < year) {
        return true;
    } else if (currentYear == year && currentMonth <= month) {
        return true;
    }
    else {
        return false;
    }
}

//Converts an optional field to a mandatory field
function makeMandatory(fieldToChangeId, nameOfClass) {
    var fieldToChange = document.getElementById(fieldToChangeId);
    fieldToChange.className = nameOfClass;
    
    var label = fieldToChange.parentNode.getElementsByTagName("label")[0];
    
    if(label != null) {        
        if(label.innerHTML.indexOf("*") < 0) {
            label.innerHTML = label.innerHTML + " *";
        }
    }
}

//Converts a mandatory field to an optional field
function makeOptional(fieldToChangeId) {
    var fieldToChange = document.getElementById(fieldToChangeId);
    var parent = fieldToChange.parentNode;
    
    fieldToChange.className = "";
    var label = parent.getElementsByTagName("label")[0];
    
    if(label != null) {        
        label.innerHTML = label.innerHTML.replace(" *","");
    }
    
    if(parent.getElementsByTagName("small").length > 0) {
        var smallText = parent.getElementsByTagName("small")[0];
        parent.removeChild(smallText);
    }
}

//Limit the number of characters in a text area 
function limitCharacters(obj,limit) {
    var text = obj.value;
    
    if(text.length > limit) {
        obj.value = text.substring(0,limit);
    }
}

//Clear a form on cancel
function clearForm(form) {
    var formContainer = document.getElementById(form);
    var formValues = formContainer.getElementsByTagName("input");
        
    for(var i = 0; i < formValues.length; i++) {
        var input = formValues[i];
        
        if(input.type == "text" || input.type == "hidden" || input.type == "password") {
            input.value = "";
        } else if(input.type == "checkbox") {
            input.checked = false;
        }
    }
}

// *************************************\\
//                                      \\
//      Validation functions end        \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//           Webtree functions          \\
//                                      \\
// *************************************\\

//Breadcrumbs - merge webtree and product category
function ecShopAddToBreadCrumbs(containerId, name, url, isLast, webTreePathLength) {
   _ecshopBreadCrumbContainer = containerId;

   if(isLast) {
         _ecshopBreadCrumbs += '<span class="sep"> > </span><span class="location">' + name + '</span>';
    } else {
         _ecshopBreadCrumbs += '<span class="sep"> > </span><a href="' + url + '">' + name + '</a>';
	 //_ecshopBreadCrumbs += '<a href="' + url + '">' + name + '</a>';
    }   
}

function ecShopLoadBreadCrumbs() {

    var container = document.getElementById(_ecshopBreadCrumbContainer);
    
    if(container) {
        container.innerHTML += _ecshopBreadCrumbs;
    }
    
    //ecShopChangePageTitle();
}

//Change the page title to the 
function ecShopChangePageTitle() {

    var ie = document.all;
    var breadCrumbContainer = document.getElementById("breadcrumb_container");    
    var lastPage = (_ecshopLastPage.length > 0) ? _ecshopLastPage + " - " : "";       
    if(breadCrumbContainer) { 
        if(ie) {
             //document.title = lastPage + ecShopReverseBreadcrumbs(breadCrumbContainer.innerText);
	document.title = ecShopReverseBreadcrumbs(breadCrumbContainer.innerText);
        } else {
             //document.title = lastPage + ecShopReverseBreadcrumbs(breadCrumbContainer.textContent);
        	document.title =  ecShopReverseBreadcrumbs(breadCrumbContainer.textContent);
          }
    }
	if(document.title.indexOf('Forsíða')!=-1)
		document.title = document.title.replace('Forsíða','Portfarma');
}

function ecShopReverseBreadcrumbs(breadcrumbs) {
    var breadcrumbsList = breadcrumbs.split(" > ");
    var reversedBreadcrumbs = "";
    
    for(var i = breadcrumbsList.length-1; i >= 0; i--) {
        if(breadcrumbsList[i] != "") {
            reversedBreadcrumbs += breadcrumbsList[i];
            
            if(i > 0) {
                reversedBreadcrumbs += " - ";
            }
        }
    }
    
    return reversedBreadcrumbs;
}

function ecShopHideCategoryTree() {
    var area = document.getElementById("content_area");
    var container = document.getElementById("content_container");

    if(area) {
      area.className = "right_sidebar";
    }

    if(container) {
      container.className = "product";
    }
}

// *************************************\\
//                                      \\
//        Webtree functions end         \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//        Product Send to friend        \\
//                                      \\
// *************************************\\

function sendToFriend() {
    //if(validateForm("ecshop_send_to_friend_popup",_ecshopValidateIsMissingText,"",_ecshopValidateNotValidText)) {
    if(validateForm("ecshop_send_to_friend_popup")) {
    
        var productPrice = document.getElementById("ecshopfx_product_price_hidden");

        if(productPrice) {
            document.getElementById("item_price").value = productPrice.value;
        }

        document.getElementById("buy_link").value = document.location.href;
        document.getElementById("ecshopfx_send_to_friend").submit();
    }
}

function OnSendToFriend(buttonType) {
    if (buttonType == 'undefined') {
        buttonType = "sent";
    }
    hideObject("ecshop_send_to_friend_popup");
    document.getElementById("friend_name").value = "";
    document.getElementById("friend_email").value = "";
    document.getElementById("your_email").value = "";
    document.getElementById("message").value = "";
                    
    if(!(buttonType == 'clear')) {
        CreateMessage(ecTranslate("common-headings.common-success"),ecTranslate("common-headings.common-login-mail-sent"),'send-to-friend');
    }
}

// *************************************\\
//                                      \\
//     Product Send to friend Ends      \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//            Product rating            \\
//                                      \\
// *************************************\\

/*** function: showProductRating(params) 
*
*    Available params:
*    totalRating = total rating for this product
*    totalVotes = total votes this product has received
*    productId = ID of the product
*    containerId = div#id of the container where the stars should be generated
***/

function showProductRating(totalRating, totalVotes, productId, containerId) {
    if(totalRating == "")
        totalRating = 0;
        
    if(totalVotes == "")
        totalVotes = 0;
    
    var ratingContainer = document.getElementById(containerId);
    
    _ecshopRatingContainerId = containerId;
    _ecshopRatingProductId = productId;
    
    if(ratingContainer) {
        var ratingCookie = readCookie(_ecshopProductRatingCookie);       
        var alreadyVoted = false;
        
        if(ratingCookie == null){
            ratingCookie = "";
        }
        
        if(ratingCookie.length > 0 && ratingCookie.indexOf(productId + "|") > -1) {
            alreadyVoted = true;
            
            var msgContainer = document.getElementById("ecshopfx_rating_status");
        
            if(msgContainer) {
                msgContainer.innerHTML = ecTranslate("product-labels.product-rated");
            }
        }
    
        var averageRating = (totalVotes > 0) ? Math.round(totalRating/totalVotes) : 0;
        var html = '';

        for(var i = 1; i <= 5; i++) {
            var star = (averageRating != 0 && averageRating >= i) ? "full" : "empty";
            
            if(alreadyVoted) {
                html += '<div title="' + ecTranslate("product-labels.product-already-rated") + '" class="star ' + star + '"></div>';
            } else {
                html += '<div title="' + ecTranslate("product-labels.product-rate-prefix") + ' ' + i + ' ' + ecTranslate("product-labels.product-rate-appendix") + '" class="star ' + star + ' vote" onclick="updateProductRating(\'' + totalRating + '\',\'' + totalVotes + '\',\'' + i + '\',\'' + productId + '\')"></div>';
            }
        }

        html += '<span>' + averageRating + '/5</span>';
    
        ratingContainer.innerHTML = html;
    }
}

function updateProductRating(totalRating, totalVotes, vote, productId) {
    _ecshopUserRating = vote;
    ecShop.Web.Soap.ecShopWS.UpdateProductRating(totalRating, totalVotes, vote, productId, OnProductRatingUpdated, OnError);
}

function OnProductRatingUpdated(results) {
    if(results.length > 1) {
        var ratingCookie = readCookie(_ecshopProductRatingCookie);
        
        var ratingCookieValue = "";
        
        if(ratingCookie != null && ratingCookie != "") {
            ratingCookieValue = ratingCookie + _ecshopRatingProductId + "|";
        } else {
            ratingCookieValue = _ecshopRatingProductId + "|";
        }
        
        createCookie(_ecshopProductRatingCookie, ratingCookieValue, 365);
    
        //Set stars as user's rating
        showProductRating(_ecshopUserRating, 1, _ecshopRatingProductId, _ecshopRatingContainerId);
        
        var msgContainer = document.getElementById("ecshopfx_rating_status");
        
        if(msgContainer) {
            msgContainer.innerHTML = ecTranslate("product-labels.product-rated");
            msgContainer.className += " high-light";
            setTimeout("removeHighLight('ecshopfx_rating_status')",3000);
        }
        
        _ecshopRatingContainerId = null;
        _ecshopRatingProductId = null;
        _ecshopUserRating = null;
    }
}

function removeHighLight(containerId) {
    var container = document.getElementById(containerId);
    
    if(container) {
        var oldClass = container.className;
        
        if(oldClass.indexOf(" high-light") > -1) {
            container.className = oldClass.replace(" high-light","");
        } else {
            container.className = oldClass.replace("high-light","");    
        }
    }
}

// *************************************\\
//                                      \\
//          Product rating end          \\
//                                      \\
// *************************************\\


// *************************************\\
//                                      \\
//            Product search            \\
//                                      \\
// *************************************\\

function ecShopSearch(rowFrom, rowTo, sortBy1, sortBy2, columns, key, category) {

    var defaultValue = document.getElementById("ecshopfx_search_default").value;
    
    if(columns == undefined) {
        var columnField = document.getElementById("ecshopfx_search_columns");
        
        if(columnField != null && columnField.value.length > 0) {
            columns = columnField.value;
        } else {
            columns = _ecshopSearchColumns;
        }
    }
    
    if(key == undefined) {
        var keyField = document.getElementById("ecshopfx_search_word");
        
        if(keyField != null) {
            key = keyField.value;
        } else {
            key = "";
        }
    }
    
    if(category == undefined) {
        var categoryField = document.getElementById("ecshopfx_search_cat");
        
        if(categoryField != null && categoryField.selectedIndex != 0) {
            category = categoryField.value;
        } else {
            category = "";
        }
    }
    
    if(rowFrom == undefined) {
        rowFrom = null;
    }
    
    if(rowTo == undefined) {
        rowTo = null;
    }
    
    if(sortBy1 == undefined) {
        sortBy1 = null;
    }
    
    if(sortBy2 == undefined) {
        sortBy2 = null;
    }

    if(key != defaultValue && key != "") {
        ecShopCloseSearch();
        ecShopGoogleTrackSearch(key, category);
        CreateUpdate(ecTranslate("common-messages.common-searching"));   
        
        ProductSearchList.ProductsFrom = rowFrom;
        ProductSearchList.ProdctsTo = rowTo;
        ProductSearchList.SortBy1 = sortBy1;
        ProductSearchList.SortBy2 = sortBy2;
        ProductSearchList.Key = key;
        ProductSearchList.Cat = category;
        ProductSearchList.Columns = columns;
        
        ProductSearchList.Reset();
        
        ecShopSaveSearch();
        
        ecShop.Web.Soap.ecShopWS.SearchProducts(rowFrom, rowTo, sortBy1, sortBy2, category, key, columns, OnProductSearch, OnError);
    } else {
        CreateError(ecTranslate("common-errors.common-search-novalue"));
    }
}

function ecShopSaveSearch() {
    var searchValues = "key:" + ProductSearchList.Key + "|cat:" + ProductSearchList.Cat + "|columns:" + ProductSearchList.Columns + "|currentPage:" + ProductSearchList.CurrentPage;

    createCookie(_ecshopSearchValuesCookie, searchValues, 1);
}

function ecShopGetSearch() {

    var searchValues = readCookie(_ecshopSearchValuesCookie);
    
    if((searchValues != null || searchValues != undefined) && searchValues.length > 0) {
        var values = searchValues.split("|");
        
        return values;
    }
}

function ecShopSearchEvent(e) {
    var keycode; 

    var browser = navigator.userAgent;

    if(browser.toLowerCase().indexOf('firefox') < 0) {
        if (window.event) 
        {
            keycode = window.event.keyCode; 
        }
        else if (e) 
        {
            keycode = e.keyCode; 
        }
        
        if (keycode == 13)
        {
            //If the user presses enter, activate the search
            ecShopSearch();
        }
    }
}

function OnProductSearch(results) {
    DeleteUpdate();
    
    ecShopOnSearchResult(results);
    
    $('div#ecshop_search').slideToggle("slow");
}

/*Start : Maintain search in all pages*/
function ecShopCheckSavedSearch() {
    var searchResultsCookie = readCookie(_ecshopSearchCookie);
    
    if(searchResultsCookie == "1") {        
        ecShopCreateSearchButton(_ecshopShowSearchResult, "ecshop_search_toggle");
        
        
        var values = ecShopGetSearch();
        if((values != null || values != undefined) && values.length > 2) {
            if(values[3].split(":")[1] > 1) {
                ProductSearchList.CurrentPage = values[3].split(":")[1];
            }
        }
        ecShopLoadSavedSearch();
    } 
}

function ecShopCreateSearchButton(html, nameOfclass) {
    var container = document.getElementById("ecshop_search_toogle");
    
    if(container == null) {
        container = document.createElement("div");
    } else {
        container.innerHTML = "";
    }    

    container.className = nameOfclass; 
    container.setAttribute("id","ecshop_search_toogle");
    container.style.zIndex = _zIndex++;

    var content = document.createElement("div");
    content.setAttribute("id","ecshop_search_toogle_text");
    content.innerHTML = html; 
       
    var closeWindow = document.createElement("div");
    closeWindow.className = "ecshop_hover_close";
    closeWindow.innerHTML = '<a href="javascript:ecShopCloseSearch()" class="img_replace" title="' + _ecshopCloseWindow + '"><span>' + _ecshopCloseWindow + '</span></a>';
    
    container.appendChild(content);
    container.appendChild(closeWindow);  

    var parent = document.body;    
    parent.insertBefore(container, parent.firstChild);
    
    $('div#ecshop_search_toogle_text').click(function () {
        ecShopPositionToggle(true);
        $('div#ecshop_search').slideToggle("slow", ecShopPositionToggle);
    });
}

function ecShopPositionToggle(start) {
    if(start == undefined)
        start = false;
    
    var toggle = document.getElementById("ecshop_search_toogle");
    var search = document.getElementById("ecshop_search");
    var changeTextObj = document.getElementById("ecshop_search_toogle_text");
    
    
    if(start) {
        if(search.style.display == 'none') {
            toggle.style.position = 'relative';
        }
    } else {
        if(search.style.display == 'none') {
            toggle.style.position = 'absolute';
        }
    }
    
    if(start && changeTextObj) {
        overwriteInnerHTML(changeTextObj,_ecshopShowSearchResult,_ecshopHideSearchResult);
    }
}

function ecShopCloseSearch() {
    var popup = document.getElementById("ecshop_search_toogle");
    var searchContainer = document.getElementById("ecshop_search");
    
    if(popup) {
        popup.parentNode.removeChild(popup);
    }
    
    if(searchContainer)
        searchContainer.parentNode.removeChild(searchContainer);
    
    createCookie(_ecshopSearchCookie, "", 0);
    createCookie(_ecshopSearchValuesCookie, "", 0);
}

function ecShopLoadSavedSearch() {
    var values = ecShopGetSearch();
    
    if((values != null || values != undefined) && values.length > 2) {
        ProductSearchList.Key = values[0].replace("key:","");
        ProductSearchList.Cat = values[1].replace("cat:","");
        ProductSearchList.Columns = values[2].replace("columns:","");
    }

    ecShop.Web.Soap.ecShopWS.GetSearchFromSession(ecShopOnSearchResult, OnError);
}

function ecShopOnSearchResult(results) {
    var searchContainer = document.getElementById("ecshop_search");
    
    if(searchContainer) {
        searchContainer.innerHTML = "";
    } else {
        searchContainer = document.createElement("div");
    }

    searchContainer.setAttribute("id", "ecshop_search");
    searchContainer.className = "ecshop_search_results";
    searchContainer.style.display = 'none';
    searchContainer.style.zIndex = _zIndex++;
    
    var searchHTML = '<div class="ecshop_hover_close"><a href="javascript:ecShopCloseSearch()" class="img_replace" title="' + _ecshopCloseWindow + '"><span>' + _ecshopCloseWindow + '</span></a></div>';
    searchHTML += results;
    searchHTML += '<div class="clear"></div>'; 
    
    searchContainer.innerHTML = searchHTML;
    
    document.body.insertBefore(searchContainer, document.body.firstChild);
}

ecShopAddLoadEvent(ecShopCheckSavedSearch);
/*End : Maintain search in all pages*/



var ProductSearchList = {
    ProductsPerPage : _ecshopSearchProductsPerPage,
    ProductsFrom : null,
    ProductsTo: null,
    CurrentPage : 1,
    SortBy1 : 1,
    SortBy2 : 3,
    View : 'grid',
    Key : '',
    Cat : '',
    Columns : 3,
    
    PrevPage: function()
    {
        if(this.CurrentPage > 1)
        {
            this.CurrentPage--;
            this.ProductsTo = (this.ProductsPerPage * this.CurrentPage);
            this.ProductsFrom = (this.ProductsPerPage * this.CurrentPage) - this.ProductsPerPage + 1;
                        
            this.Update();
        }
    },
    
    NextPage: function()
    {
        this.ProductsFrom = (this.ProductsPerPage * this.CurrentPage) + 1;
        this.CurrentPage++;
        this.ProductsTo = (this.ProductsPerPage * this.CurrentPage);
        this.Update();        
    },
    
    ChangeView: function(view)
    {
        this.View = view;
        this.Update();
    },
    
    SetPage: function(PageNo)
    {
        this.ProductsFrom = (this.ProductsPerPage * (PageNo - 1)) + 1;
        this.ProductsTo = (this.ProductsPerPage * PageNo);
        this.CurrentPage = PageNo;
        this.Update();
    },
    
    SortProduct: function(SortOrder)
    {
        this.SortBy1 = SortOrder;
        this.Update();
    },
    
    Reset: function()
    {
        this.ProductsPerPage = _ecshopSearchProductsPerPage;
        this.ProductsFrom = 1;
        this.ProductsTo = _ecshopSearchProductsPerPage;
        this.CurrentPage = 1;
        this.SortBy1 = 1;
    },
    
    Update: function() {
        ecShopSaveSearch();
    
        ecShop.Web.Soap.ecShopWS.SearchProducts(this.ProductsFrom, this.ProductsTo, this.SortBy1, this.SortBy2, this.Cat, this.Key, this.Columns, OnProductSearchUpdated, OnError);
    }
}

function OnProductSearchUpdated(results) {
    var container = document.getElementById("ecshop_search");
    
    if(container) {
        var searchHTML = '<div class="ecshop_hover_close"><a href="javascript:ecShopCloseSearch()" class="img_replace" title="' + _ecshopCloseWindow + '"><span>' + _ecshopCloseWindow + '</span></a></div>';
        searchHTML += results;
        searchHTML += '<div class="clear"></div>'; 
            
        container.innerHTML = searchHTML;
    }    
}

// *************************************\\
//                                      \\
//         Product search ends          \\
//                                      \\
// *************************************\\







// *************************************\\
//                                      \\
//         Invoice Print Starts         \\
//                                      \\
// *************************************\\

function ecShopPrintInvoice() {
    var disp_setting="toolbar=yes,location=no,directories=yes,menubar=yes,"; 
    disp_setting+="scrollbars=yes,height=800,width=800;top=100";                
    var content_value = document.getElementById("ecshop_printinvoice_container").innerHTML;                
    var docprint = window.open("","",disp_setting); 
    docprint.document.open();             
    docprint.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:asp><head><title>PrintInvoice</title>');     
    docprint.document.write('<link href="' + ecShopReturnHost() + '/webpages/templates/css/global.css" media="all" rel="stylesheet" type="text/css">');  
    docprint.document.write('<link href="' + ecShopReturnHost() + '/webpages/templates/css/webshop.css" media="all" rel="stylesheet" type="text/css" />');  
    docprint.document.write('<link href="' + ecShopReturnHost() + '/webpages/templates/css/font.css" media="all" rel="stylesheet" type="text/css" />');                                   
    docprint.document.write('</head><body id="print" onload="window.print()">');
    docprint.document.write('<div id="ecshop_product_container" class="basket_view">' + content_value + '</div>');          
    docprint.document.write('</body></html>'); 
    docprint.document.close(); 
    docprint.focus(); 
}

// *************************************\\
//                                      \\
//         Invoice Print ends         \\
//                                      \\
// *************************************\\


// *************************************\\
//                                      \\
//         Order history Print Starts   \\
//                                      \\
// *************************************\\

function ecShopPrintOrder_history() {
    var disp_setting="toolbar=yes,location=no,directories=yes,menubar=yes,"; 
    disp_setting+="scrollbars=yes,height=800,width=800;top=100";                
    var content_value = document.getElementById("ecshop_printOrderHistory_container").innerHTML;                
    var docprint = window.open("","",disp_setting); 
    docprint.document.open();             
    docprint.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:asp><head><title>PrintOrderHistory</title>');     
    docprint.document.write('<link href="' + ecShopReturnHost() + '/webpages/templates/css/global.css" media="all" rel="stylesheet" type="text/css">');  
    docprint.document.write('<link href="' + ecShopReturnHost() + '/webpages/templates/css/webshop.css" media="all" rel="stylesheet" type="text/css" />');  
    docprint.document.write('<link href="' + ecShopReturnHost() + '/webpages/templates/css/font.css" media="all" rel="stylesheet" type="text/css" />');                                   
    docprint.document.write('</head><body id="print" onload="window.print()">');
    docprint.document.write('<div class="site_container">');
    docprint.document.write('<div id="content_container">');
    docprint.document.write('<div id="ecshop_product_container" class="account_view">' + content_value + '</div>');          
    docprint.document.write('</div></div></body></html>'); 
    docprint.document.close(); 
    docprint.focus(); 
}

// *************************************\\
//                                      \\
//         Order history  Print ends    \\
//                                      \\
// *************************************\\




// *************************************\\
//                                      \\
//         Order detail Print Starts   \\
//                                      \\
// *************************************\\

function ecShopPrintOrder_detail() {
    var disp_setting="toolbar=yes,location=no,directories=yes,menubar=yes,"; 
    disp_setting+="scrollbars=yes,height=800,width=900;top=100;";                
    var content_value = document.getElementById("ecshop_printOrderdetail_container").innerHTML;                
    var docprint = window.open("","",disp_setting); 
    docprint.document.open();             
    docprint.document.write('<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml" xmlns:asp><head><title>PrintOrderHistory</title>');     
    docprint.document.write('<link href="' + ecShopReturnHost() + '/webpages/templates/css/global.css" media="all" rel="stylesheet" type="text/css">');  
    docprint.document.write('<link href="' + ecShopReturnHost() + '/webpages/templates/css/webshop.css" media="all" rel="stylesheet" type="text/css" />');  
    docprint.document.write('<link href="' + ecShopReturnHost() + '/webpages/templates/css/font.css" media="all" rel="stylesheet" type="text/css" />');                                   
    docprint.document.write('</head><body id="print" onload="window.print()">');

    docprint.document.write('<div class="site_container">');
    docprint.document.write('<div id="content_container">');
    docprint.document.write('<div id="ecshop_product_container" class="account_view">' + content_value + '</div>');          
    docprint.document.write('</div></div></body></html>'); 
    docprint.document.close(); 
    docprint.focus(); 
}

// *************************************\\
//                                      \\
//         Order detail  Print ends    \\
//                                      \\
// *************************************\\




// *************************************\\
//                                      \\
//          Google Analytics            \\
//                                      \\
// *************************************\\

// Calls in the 4th step
function ecShopGoogleTrackOrder(order) {
    if(pageTracker != null) {
        try {
            eval(order);   
        } catch(err) {

        }
    } 
}
// Calls for all the 3 steps in checkout
function ecShopGoogleTrackCheckout(step) {
    if(pageTracker != null) {
        pageTracker._trackPageview("/checkout/step" + step + ".html");
    }
}
// Calls when click on search go button
function ecShopGoogleTrackSearch(key, cat) {
    if(pageTracker != null) {
        pageTracker._trackPageview("/quicksearch/search.html?search=" + key + "&cat=" + cat);
    }
}

// *************************************\\
//                                      \\
//        Google Analytics ends         \\
//                                      \\
// *************************************\\


// *************************************\\
//                                      \\
//        Product Compare               \\
//                                      \\
// *************************************\\

function ecShopCompareProducts(positionId) {

    var productslists = compareContainer.value.split(",");
    var query = document.location.href.split("?")[1];
   
    if(productslists.length > 2) {
        var productarray = new Array(); 
        
        productarray = compareContainer.value.split(',');
	
        if(productarray.length > 1) {
            if(query != undefined)
            {  
            if(query.length > 0  ) {
                document.location.href = 'http://' + document.domain + window.location.pathname + '?SelectedProducts=' + productslists + '&ew_' + positionId + '_p_comp=true&' + query;
            } }
              else {
                document.location.href = 'http://' + document.domain + window.location.pathname + '?SelectedProducts=' + productslists + '&ew_' + positionId + '_p_comp=true';
            }
        } else {
		CreateError("Please select atleast 2 products to compare");      
            	//CreateError(ecTranslate("product-error.product-compare-limit"));
		}
    } else {
        CreateError("Please select atleast 2 products to compare");      
	}  
}

var newdiv;
var anchor;
var link;
var productlistArray = "";  
var str1 = "Remove";
var drag =" ";

function LoadCompareProducts() {
        

	
	$("#ecshop_product_list h3").draggable({ helper: "clone", opacity: "0.5" });
	
	$(".dropZone").droppable({
	
	accept: "#ecshop_product_list h3",
        hoverClass: "dropHover",
        drop: function(ev, ui)
        { 
	    var draggedItem = ui.draggable.clone().addClass("droppedItem");
            var str = (draggedItem[0].id);
            var productid = str.substring(2,38);
            var prodIdObj = document.getElementById(productid);
	
            if(cnt < 4) {
                if((compareContainer.value).indexOf(productid) <= -1) {
                    $(this).append(draggedItem);
                    var removeLink = document.createElement("a");
                    removeLink.innerHTML = "Remove";
                    removeLink. id = "remove_link";
                    removeLink.href = "#";
                    $(this).append(removeLink);
                    cntIncrease(productid);
		    removeLink.onclick = function() {
                        $(".dropZone").children().remove("#" + draggedItem[0].id );
                        cntDecrease(productid); 
                    } 

                    draggedItem[0].appendChild(removeLink);
                   	$(this).append(draggedItem);
			

			
                } else {
                    CreateMessage("Already exists!", "The selected product already exist in compare list. Please select another product if you wish.", "already_exist");
                }
            } else {
                CreateMessage("Compare limit exceeds", "You can compare only 4 products at a time", "limit_exceeds");
                if(prodIdObj.checked) {
                    prodIdObj.checked = false;
                }
            }       
        }   
    });
}

function ecShopClearCompareBox() {
	if(compareContainer.value.length > 0) {
		var removeSelection = compareContainer.value.split(",");

		for(var i=0; i < removeSelection.length-1; i++) {
			cntDecrease(removeSelection[i]);
		}
	}
	
}

function ecShopInsertProducts(productid,productname) { 
    var prodIdObj = document.getElementById(productid);

    if(prodIdObj.checked) {  
		ecShopInsert(productid,productname);
    } else {
		remove(productid);		
    }
}

function remove(productid) {
    var productlistArray = productid; 
    var a = document.getElementById("a_"+productid);
    var b = document.getElementById("drop_"+productid);
    var idHTMLexist = b||a;
    var parent = idHTMLexist.parentNode;
    parent.removeChild(idHTMLexist);
    cntDecrease(productid);
} 

function ecShopInsert(productid,productname) { 
    var productlistArray = productid; 
    var str = productname;  
    var prodIdObj = document.getElementById(productid);

    if(cnt >= 4) {
        CreateMessage("Compare limit exceeds", "You can compare only 4 products at a time", "limit_exceeds");
        if(prodIdObj.checked) {
            prodIdObj.checked = false;
        }
    } else {
		if(compareContainer.value.indexOf(productid) <= -1) {  
			newdiv = document.createElement("div");
			newdiv. className = "droppedItem";
			newdiv.id = "drop_" + productid;
			newdiv.name = "drop_" + productid;   
			objinnerHTML.appendChild(newdiv);
			
			anchor = document.createElement("a");
			anchor. className = "dropped_product";
			anchor.appendChild(document.createTextNode(str));
			anchor.setAttribute("href","javascript:void(0);"); 
			
			link = document.createElement("a");  			
			link.className = "remove_link";
			link.appendChild(document.createTextNode(str1));
			link.setAttribute("href","javascript:void(0);");
			
			newdiv.appendChild(anchor);
			newdiv.appendChild(link);
			cntIncrease(productid);
			link.onclick = function(){remove(productid)};  
		} else {
			CreateMessage("Already exists!", "The selected product already exist in compare list. Please select another product if you wish.", "already_exist");
		}
    }
}

function cntIncrease(productid) {

	
    var prodIdObj = document.getElementById(productid);

    cnt = eval(cnt + 1);
    productlistArray += productid + ",";
    compareContainer.value = productlistArray;
	
    if(!(prodIdObj).checked) {
		prodIdObj.checked = true;
    }
}

function cntDecrease(productid) {
    var prodIdObj = document.getElementById(productid);

    cnt = eval(cnt - 1);
    productlistArray = productlistArray.replace(productid + ",", "");
    compareContainer.value = productlistArray;

    if(prodIdObj.checked) {
        prodIdObj.checked = false;
    }
}

// *************************************\\
//                                      \\
//        Newsletter Subscription       \\
//                                      \\
// *************************************\\
var mailText = ""; 
function ecValidateNewsletter() { 
    var correctEmail = true;   
    var showError = document.getElementById("ecshopfx_error");
                        
    //if(validateForm("registrationform_newsletter", _ecshopValidateIsMissingText, "", _ecshopValidateNotValidText, "")) {
    if(validateForm("registrationform_newsletter")) {
        mailText=document.getElementById('emailid').value;
        if(mailText != "")
            frameXml();
        else
            CreateError(ecTranslate("common-errors.common-select-catalog"));
    } else if(showError) {
        showObject("ecshopfx_error");
    } 
}   

function frameXml(){
    //Frame users Detail               
    var userXml = '<root><registeredusers><users uniquefieldscope="group" uniquefield="email">';
    var mailXml ='<user><groupname>'+ catalog_group_name_mail +'</groupname>';
    mailXml = mailXml + "<email>"+ document.getElementById('emailid').value +"</email>";
    mailXml = mailXml + "</user>";
    userXml = userXml + mailXml ;
    userXml = userXml + "</users></registeredusers></root>";
    newsLetterSubscription(userXml);                              
}

function newsLetterSubscription(userXml)
{
    var userName = _ecshopEditorUserName;
    var passWord = _ecshopEditorPassword;
    var soapBodyImportUsers = new SOAPObject("importUsers");
    
    soapBodyImportUsers.ns = "http://tempuri.org/";
    soapBodyImportUsers.appendChild(new SOAPObject("XML")).val(userXml);
    soapBodyImportUsers.appendChild(new SOAPObject("username")).val(userName);
    soapBodyImportUsers.appendChild(new SOAPObject("password")).val(passWord);
    
    var ImportSR = new SOAPRequest("http://tempuri.org/importUsers", soapBodyImportUsers); //Request is now ready to be sent to a web-service
    ImportSR.addNamespace("xsi","http://www.w3.org/2001/XMLSchema-instance");
    ImportSR.addNamespace("xsd","http://www.w3.org/2001/XMLSchema");
    SOAPClient.Proxy = ecShopReturnHost() + "/editor/soap/registeredusers.asmx"; //Specify web-service address (if local to your domain) or a proxy file
    SOAPClient.SOAPServer = ecShopReturnHost() + "/editor/soap/registeredusers.asmx";
    
    SOAPClient.SendRequest(ImportSR,importUsersResponse);
}
function importUsersResponse(importRespObj, importRespText, importRespXml)
{    
    var userHtmlData = importRespText;
    var userHtmlStart = userHtmlData.indexOf('<faultstring>');
    var userHtmlEnd = userHtmlData.indexOf('</faultstring>');
    var userError = userHtmlData.substring(userHtmlStart,userHtmlEnd);
    
    if(userError.length > 0)
	    CreateMessage(ecTranslate("common-messages.Newsletter-validation"),'','');
    else
        CreateMessage(ecTranslate("common-messages.postlist-success-message"),'','');
}

// Property.js
function _ecShopPostStep2Webpayment() { var contentContainer = document.getElementById("content_container"); if(contentContainer) { contentContainer.className = ""; hideObject("second_container"); var contentArea = document.getElementById("content_area"); if(contentArea) { contentArea.className = "right_sidebar";}
}
}
function _ecshopPostWebpayment() { var contentContainer = document.getElementById("content_container"); if(contentContainer) { contentContainer.className = "right_menu"; showObject("second_container"); var contentArea = document.getElementById("content_area"); if(contentArea) { contentArea.className = "";}
}
}

// Common.js
// THIRD PARTY CODE - NOT MAINTAINED BY ECSHOP
// Version: 2.0 - Updated 30. september 2008


//***** jquery and lightbox functions *******/
_ecshopCloseButton = ecTranslate("common-buttons.common-close-window");
_ecshopCloseToolTips = ecTranslate("common-tooltips.common-close-window");


(function($){
    $.fn.jqueryzoom=function(options){
        var settings={
            xzoom:200,
            yzoom:200,
            offset:10,
            position:"right",
            lens:1,
            preload:1
        };
        if(options){$.extend(settings,options)}
        var noalt='';$(this).hover(function(){
            var imageLeft=$(this).offset().left;
            var imageTop=$(this).offset().top;
            var imageWidth=$(this).children('img').get(0).offsetWidth;
            var imageHeight=$(this).children('img').get(0).offsetHeight;
            noalt=$(this).children("img").attr("alt");
            var bigimage=$(this).children("img").attr("jqimg");
            $(this).children("img").attr("alt",'');
            if($("div.zoomdiv").get().length==0){
                $(this).after("<div class='zoomdiv'><img class='bigimg' src='"+bigimage+"'/></div>");
                $(this).append("<div class='jqZoomPup'>&nbsp;</div>")
            }
            if(settings.position=="right"){
                if(imageLeft+imageWidth+settings.offset+settings.xzoom>screen.width){
                    leftpos=imageLeft-settings.offset-settings.xzoom
                }
                else{leftpos=imageLeft+imageWidth+settings.offset}
            }
            else{
                leftpos=imageLeft-settings.xzoom-settings.offset;
                if(leftpos<0){
                    leftpos=imageLeft+imageWidth+settings.offset
            }
        }
        var zoomdivTop = '0';
        var zoomdivLeft = '380px';
        //$("div.zoomdiv").css({top:imageTop,left:leftpos});
        $("div.zoomdiv").css({top:zoomdivTop,left:zoomdivLeft});
        $("div.zoomdiv").width(settings.xzoom);
        $("div.zoomdiv").height(settings.yzoom);
        $("div.zoomdiv").show();
        if(!settings.lens){
            $(this).css('cursor','crosshair')
        }
        $(document.body).mousemove(function(e){
            mouse=new MouseEvent(e);
            var bigwidth=$(".bigimg").get(0).offsetWidth;
            var bigheight=$(".bigimg").get(0).offsetHeight;
            var scaley='x';
            var scalex='y';
            if(isNaN(scalex)|isNaN(scaley)){
                var scalex=(bigwidth/imageWidth);
                var scaley=(bigheight/imageHeight);
                $("div.jqZoomPup").width((settings.xzoom)/scalex);
                $("div.jqZoomPup").height((settings.yzoom)/scaley);
                if(settings.lens){
                    $("div.jqZoomPup").css('visibility','visible')
                }
            }
            xpos=mouse.x-$("div.jqZoomPup").width()/2-imageLeft;
            ypos=mouse.y-$("div.jqZoomPup").height()/2-imageTop;
            if(settings.lens){
                xpos=(mouse.x-$("div.jqZoomPup").width()/2<imageLeft)?0:(mouse.x+$("div.jqZoomPup").width()/2>imageWidth+imageLeft)?(imageWidth-$("div.jqZoomPup").width()-2):xpos;ypos=(mouse.y-$("div.jqZoomPup").height()/2<imageTop)?0:(mouse.y+$("div.jqZoomPup").height()/2>imageHeight+imageTop)?(imageHeight-$("div.jqZoomPup").height()-2):ypos
            }
            if(settings.lens){
                $("div.jqZoomPup").css({
                    top:ypos,
                    left:xpos
                })
            }
            scrolly=ypos;
            $("div.zoomdiv").get(0).scrollTop=scrolly*scaley;scrollx=xpos;
            $("div.zoomdiv").get(0).scrollLeft=(scrollx)*scalex
        })
   },
   function(){
        $(this).children("img").attr("alt",noalt);
        $(document.body).unbind("mousemove");
        if(settings.lens){
            $("div.jqZoomPup").remove()
        }
        $("div.zoomdiv").remove()
   });
   count=0;
   if(settings.preload){
    $('body').append("<div style='display:none;' class='jqPreload"+count+"'>sdsdssdsd</div>");
    $(this).each(function(){
        var imagetopreload=$(this).children("img").attr("jqimg");var content=jQuery('div.jqPreload'+count+'').html();
        jQuery('div.jqPreload'+count+'').html(content+'<img src=\"'+imagetopreload+'\">')
    })
 }
 }
 })(jQuery);
 function MouseEvent(e){
    this.x=e.pageX;
    this.y=e.pageY
 }
 
 
 
 /* light box starts */
 
 /*
	Lightbox JS: Fullsize Image Overlays 
	by Lokesh Dhakar - http://www.huddletogether.com

	For more information on this script, visit:
	http://huddletogether.com/projects/lightbox/

	Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
	(basically, do anything you want, just leave my name and link)
	
	Table of Contents
	-----------------
	Configuration
	
	Functions
	- getPageScroll()
	- getPageSize()
	- pause()
	- getKey()
	- listenKey()
	- showLightbox()
	- hideLightbox()
	- initLightbox()
	- addLoadEvent()
	
	Function Calls
	- addLoadEvent(initLightbox)

*/



//
// Configuration
//

// If you would like to use a custom loading image or close button reference them in the next two lines.
var loadingImage = 'loading.gif';		
var closeButton = 'close.gif';
//var closeButton = _ecshopHost + '/upload/images/templates/close_window.gif';		

//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.org
//
function getPageScroll(){

	var yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
	}

	arrayPageScroll = new Array('',yScroll) 
	return arrayPageScroll;
}



//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.org
// Edit for Firefox by pHaez
//
function getPageSize(){
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = document.body.scrollWidth;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	if (self.innerHeight) {	// all except Explorer
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}

	// for small pages with total width less then width of the viewport
	if(xScroll < windowWidth){	
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;
	}


	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	return arrayPageSize;
}


//
// pause(numberMillis)
// Pauses code execution for specified time. Uses busy code, not good.
// Code from http://www.faqts.com/knowledge_base/view.phtml/aid/1602
//
function pause(numberMillis) {
	var now = new Date();
	var exitTime = now.getTime() + numberMillis;
	while (true) {
		now = new Date();
		if (now.getTime() > exitTime)
			return;
	}
}

//
// getKey(key)
// Gets keycode. If 'x' is pressed then it hides the lightbox.
//

function getKey(e){
	if (e == null) { // ie
		keycode = event.keyCode;
	} else { // mozilla
		keycode = e.which;
	}
	key = String.fromCharCode(keycode).toLowerCase();
	
	if(key == 'x'){ hideLightbox(); }
}


//
// listenKey()
//
function listenKey () {	document.onkeypress = getKey; }
	

//
// showLightbox()
// Preloads images. Pleaces new image in lightbox then centers and displays.
//
function showLightbox(objLink)
{
	// prep objects
	var objOverlay = document.getElementById('overlay');
	var objLightbox = document.getElementById('lightbox');
	var objCaption = document.getElementById('lightboxCaption');
	var objImage = document.getElementById('lightboxImage');
	var objLoadingImage = document.getElementById('loadingImage');
	var objLightboxDetails = document.getElementById('lightboxDetails');

	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	// center loadingImage if it exists
	if (objLoadingImage) {
		objLoadingImage.style.top = (arrayPageScroll[1] + ((arrayPageSize[3] - 35 - objLoadingImage.height) / 2) + 'px');
		objLoadingImage.style.left = (((arrayPageSize[0] - 20 - objLoadingImage.width) / 2) + 'px');
		objLoadingImage.style.display = 'block';
	}

	// set height of Overlay to take up whole page and show
	objOverlay.style.height = (arrayPageSize[1] + 'px');
	objOverlay.style.display = 'block';

	// preload image
	imgPreload = new Image();

	imgPreload.onload=function(){
		objImage.src = objLink.href;

		// center lightbox and make sure that the top and left values are not negative
		// and the image placed outside the viewport
		var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - imgPreload.height) / 2);
		var lightboxLeft = ((arrayPageSize[0] - 20 - imgPreload.width) / 2);
		
		objLightbox.style.top = (lightboxTop < 0) ? "0px" : lightboxTop + "px";
		objLightbox.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";


		objLightboxDetails.style.width = imgPreload.width + 'px';
		
		if(objLink.getAttribute('title')){
			objCaption.style.display = 'block';
			//objCaption.style.width = imgPreload.width + 'px';
			objCaption.innerHTML = objLink.getAttribute('title');
		} else {
			objCaption.style.display = 'none';
		}
		
		// A small pause between the image loading and displaying is required with IE,
		// this prevents the previous image displaying for a short burst causing flicker.
		if (navigator.appVersion.indexOf("MSIE")!=-1){
			pause(250);
		} 

		if (objLoadingImage) {	objLoadingImage.style.display = 'none'; }

		// Hide select boxes as they will 'peek' through the image in IE
		selects = document.getElementsByTagName("select");
        for (i = 0; i != selects.length; i++) {
                selects[i].style.visibility = "hidden";
        }

	
		objLightbox.style.display = 'block';

		// After image is loaded, update the overlay height as the new image might have
		// increased the overall page height.
		arrayPageSize = getPageSize();
		objOverlay.style.height = (arrayPageSize[1] + 'px');
		
		// Check for 'x' keypress
		listenKey();

		return false;
	}

	imgPreload.src = objLink.href;
	
}





//
// hideLightbox()
//
function hideLightbox()
{
	// get objects
	objOverlay = document.getElementById('overlay');
	objLightbox = document.getElementById('lightbox');

	// hide lightbox and overlay
	objOverlay.style.display = 'none';
	objLightbox.style.display = 'none';

	// make select boxes visible
	selects = document.getElementsByTagName("select");
    for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}

	// disable keypress listener
	document.onkeypress = '';
}




//
// initLightbox()
// Function runs on window load, going through link tags looking for rel="lightbox".
// These links receive onclick events that enable the lightbox display for their targets.
// The function also inserts html markup at the top of the page which will be used as a
// container for the overlay pattern and the inline image.
//
function initLightbox()
{
	
	if (!document.getElementsByTagName){ return; }
	var anchors = document.getElementsByTagName("a");

	// loop through all anchor tags
	for (var i=0; i<anchors.length; i++){
		var anchor = anchors[i];

		if (anchor.getAttribute("href") && (anchor.getAttribute("rel") == "lightbox")){
			anchor.onclick = function () {showLightbox(this); return false;}
		}
	}

	// the rest of this code inserts html at the top of the page that looks like this:
	//
	// <div id="overlay">
	//		<a href="#" onclick="hideLightbox(); return false;"><img id="loadingImage" /></a>
	//	</div>
	// <div id="lightbox">
	//		<a href="#" onclick="hideLightbox(); return false;" title="Click anywhere to close image">
	//			<img id="closeButton" />		
	//			<img id="lightboxImage" />
	//		</a>
	//		<div id="lightboxDetails">
	//			<div id="lightboxCaption"></div>
	//			<div id="keyboardMsg"></div>
	//		</div>
	// </div>
	
	var objBody = document.getElementsByTagName("body").item(0);
	
	// create overlay div and hardcode some functional styles (aesthetic styles are in CSS file)
	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id','overlay');
	objOverlay.onclick = function () {hideLightbox(); return false;}
	objOverlay.style.display = 'none';
	objOverlay.style.position = 'absolute';
	objOverlay.style.top = '0';
	objOverlay.style.left = '0';
	objOverlay.style.zIndex = '90';
 	objOverlay.style.width = '100%';
	objBody.insertBefore(objOverlay, objBody.firstChild);
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	// preload and create loader image
	var imgPreloader = new Image();
	
	// if loader image found, create link to hide lightbox and create loadingimage
	imgPreloader.onload=function(){

		var objLoadingImageLink = document.createElement("a");
		objLoadingImageLink.setAttribute('href','#');
		objLoadingImageLink.onclick = function () {hideLightbox(); return false;}
		objOverlay.appendChild(objLoadingImageLink);
		
		var objLoadingImage = document.createElement("img");
		objLoadingImage.src = loadingImage;
		objLoadingImage.setAttribute('id','loadingImage');
		objLoadingImage.style.position = 'absolute';
		objLoadingImage.style.zIndex = '150';
		objLoadingImageLink.appendChild(objLoadingImage);

		imgPreloader.onload=function(){};	//	clear onLoad, as IE will flip out w/animated gifs

		return false;
	}

	imgPreloader.src = loadingImage;

	// create lightbox div, same note about styles as above
	var objLightbox = document.createElement("div");
	objLightbox.setAttribute('id','lightbox');
	objLightbox.style.display = 'none';
	objLightbox.style.position = 'absolute';
	objLightbox.style.zIndex = '100';	
	objBody.insertBefore(objLightbox, objOverlay.nextSibling);
	
	// create link
	var objLink = document.createElement("a");
	objLink.setAttribute('href','#');
	objLink.setAttribute('title',_ecshopCloseToolTips);
	objLink.onclick = function () {hideLightbox(); return false;}
	objLightbox.appendChild(objLink);

	// preload and create close button image
	var imgPreloadCloseButton = new Image();

	// if close button image found, 
	imgPreloadCloseButton.onload=function(){

		var objCloseButton = document.createElement("img");
		objCloseButton.src = closeButton;
		objCloseButton.setAttribute('id','closeButton');
		objCloseButton.style.position = 'absolute';
		objCloseButton.style.right = '0';
		objCloseButton.style.zIndex = '200';
		objLink.appendChild(objCloseButton);

		return false;
	}

	imgPreloadCloseButton.src = closeButton;

	// create image
	var objImage = document.createElement("img");
	objImage.setAttribute('id','lightboxImage');
	objLink.appendChild(objImage);
	
	// create details div, a container for the caption and keyboard message
	var objLightboxDetails = document.createElement("div");
	objLightboxDetails.setAttribute('id','lightboxDetails');
	objLightbox.appendChild(objLightboxDetails);

	// create caption
	var objCaption = document.createElement("div");
	objCaption.setAttribute('id','lightboxCaption');
	objCaption.style.display = 'none';
	objLightboxDetails.appendChild(objCaption);

	// create keyboard message
	var objKeyboardMsg = document.createElement("div");
	objKeyboardMsg.setAttribute('id','keyboardMsg');
	objKeyboardMsg.innerHTML = '<a href="#" title="' + _ecshopCloseToolTips + '" onclick="hideLightbox(); return false;"><kbd>' + _ecshopCloseButton + '</kbd></a>';
	objLightboxDetails.appendChild(objKeyboardMsg);
}
/*Code added for alert window*/

function removePopup(id) {
    var popup = document.getElementById("ecshop-hover_" + id);

    if(popup) {
       popup.parentNode.removeChild(popup);
    }
    
    var step3Container = document.getElementById('ecshopfx_container_step3');
    
    if(step3Container && step3Container.className != 'ecshop_hide')
               try {
                       enableElements(step3Container);
               } 
               catch (err) {
               //alert(err.description);
               }
}

function enableElements(el) {
        if(el.disabled == undefined) {
               el.disabled = false;
        }
        try {
               if(el.disabled == true)
                       el.disabled = false;
    }
    catch(E){}
                
    if (el.childNodes && el.childNodes.length > 0) {
               for (var x = 0; x < el.childNodes.length; x++) {
                       enableElements(el.childNodes[x]);
               }
    }
}
function disableElements(el) {
        if(el.disabled == undefined) {
               el.disabled = false;
        }
        try {
               if(el.disabled == false)
                       el.disabled = true;
    }
    catch(E){}
                
    if (el.childNodes && el.childNodes.length > 0) {
               for (var x = 0; x < el.childNodes.length; x++) {
                       disableElements(el.childNodes[x]);
        }
    }
}

//Common confirmations/messages/errors to the user

function CreateError(error) {
    var html = '<h2>' + ecTranslate("common-headings.common-error") + '</h2><p>' + error + '</p>';

    createPopup(html, "ecshop_error", "ecshoperror");
    var step3Container = document.getElementById('ecshopfx_container_step3');
    
    if(step3Container && step3Container.className != 'ecshop_hide')
               try {
                       disableElements(step3Container);
               } 
               catch (err) {
                       //alert(err.description);
               }
}





/* lightbox ends */

/* Script by: www.jtricks.com
 * Version: 20071210
 * Latest version:
 * www.jtricks.com/javascript/navigation/floating.html
 */

var floatingMenuId = 'ecshopfx_small_cart';
var floatingMenu =
{
    targetX: 0,
    targetY: 0,

    hasInner: typeof(window.innerWidth) == 'number',
    hasElement: document.documentElement
        && document.documentElement.clientWidth,

    menu:
        document.getElementById
        ? document.getElementById(floatingMenuId)
        : document.all
          ? document.all[floatingMenuId]
          : document.layers[floatingMenuId]
};

floatingMenu.move = function ()
{
    if (document.layers)
    {
        floatingMenu.menu.left = floatingMenu.nextX;
        floatingMenu.menu.top = floatingMenu.nextY;
    }
    else
    {
        floatingMenu.menu.style.left = floatingMenu.nextX + 'px';
        floatingMenu.menu.style.top = floatingMenu.nextY + 'px';
    }
}

floatingMenu.computeShifts = function ()
{
    var de = document.documentElement;

    floatingMenu.shiftX =
        floatingMenu.hasInner
        ? pageXOffset
        : floatingMenu.hasElement
          ? de.scrollLeft
          : document.body.scrollLeft;
    if (floatingMenu.targetX < 0)
    {
        if (floatingMenu.hasElement && floatingMenu.hasInner)
        {
            // Handle Opera 8 problems
            floatingMenu.shiftX +=
                de.clientWidth > window.innerWidth
                ? window.innerWidth
                : de.clientWidth
        }
        else
        {
            floatingMenu.shiftX +=
                floatingMenu.hasElement
                ? de.clientWidth
                : floatingMenu.hasInner
                  ? window.innerWidth
                  : document.body.clientWidth;
        }
    }

    floatingMenu.shiftY = 
        floatingMenu.hasInner
        ? pageYOffset
        : floatingMenu.hasElement
          ? de.scrollTop
          : document.body.scrollTop;
    if (floatingMenu.targetY < 0)
    {
        if (floatingMenu.hasElement && floatingMenu.hasInner)
        {
            // Handle Opera 8 problems
            floatingMenu.shiftY +=
                de.clientHeight > window.innerHeight
                ? window.innerHeight
                : de.clientHeight
        }
        else
        {
            floatingMenu.shiftY +=
                floatingMenu.hasElement
                ? document.documentElement.clientHeight
                : floatingMenu.hasInner
                  ? window.innerHeight
                  : document.body.clientHeight;
        }
    }
}

floatingMenu.doFloat = function()
{
    var stepX, stepY;

    floatingMenu.computeShifts();

    stepX = (floatingMenu.shiftX + 
        floatingMenu.targetX - floatingMenu.nextX) * .07;
    if (Math.abs(stepX) < .5)
    {
        stepX = floatingMenu.shiftX +
            floatingMenu.targetX - floatingMenu.nextX;
    }

    stepY = (floatingMenu.shiftY + 
        floatingMenu.targetY - floatingMenu.nextY) * .07;
    if (Math.abs(stepY) < .5)
    {
        stepY = floatingMenu.shiftY + 
            floatingMenu.targetY - floatingMenu.nextY;
    }

    if (Math.abs(stepX) > 0 ||
        Math.abs(stepY) > 0)
    {
        floatingMenu.nextX += stepX;
        floatingMenu.nextY += stepY;
        floatingMenu.move();
    }

    //setTimeout('floatingMenu.doFloat()', 20);
};

// addEvent designed by Aaron Moore
floatingMenu.addEvent = function(element, listener, handler)
{
    if(typeof element[listener] != 'function' || 
       typeof element[listener + '_num'] == 'undefined')
    {
        element[listener + '_num'] = 0;
        if (typeof element[listener] == 'function')
        {
            element[listener + 0] = element[listener];
            element[listener + '_num']++;
        }
        element[listener] = function(e)
        {
            var r = true;
            e = (e) ? e : window.event;
            for(var i = element[listener + '_num'] -1; i >= 0; i--)
            {
                if(element[listener + i](e) == false)
                    r = false;
            }
            return r;
        }
    }

    //if handler is not already stored, assign it
    for(var i = 0; i < element[listener + '_num']; i++)
        if(element[listener + i] == handler)
            return;
    element[listener + element[listener + '_num']] = handler;
    element[listener + '_num']++;
};

floatingMenu.init = function()
{
    floatingMenu.menu = document.getElementById(floatingMenuId);
    floatingMenu.initSecondary();
    //floatingMenu.doFloat();
};

// Some browsers init scrollbars only after
// full document load.
floatingMenu.initSecondary = function()
{
    floatingMenu.computeShifts();
    floatingMenu.nextX = floatingMenu.shiftX +
        floatingMenu.targetX;
    floatingMenu.nextY = floatingMenu.shiftY +
        floatingMenu.targetY;
    floatingMenu.move();
}

/*if (document.layers)
    floatingMenu.addEvent(window, 'onload', floatingMenu.init);
else
{
    floatingMenu.init();
    floatingMenu.addEvent(window, 'onload',
        floatingMenu.initSecondary);
}*/

if(floatingMenu.menu != null) {
    ecShopAddLoadEvent(floatingMenu.init);
    }/* use this javascript to manipulate the design */

window.onload = function (e) {
    var shadowedBorder    = RUZEE.ShadedBorder.create({ corner:12, shadow:20, border:1 });
    shadowedBorder.render('div.shop-wrapper');
}/*
 Automatic, anti-aliased rounded corners.
 
 By Steven Wittens
 Based on http://pro.html.it/esempio/nifty/
 
 Thanks to Jacob from Oddlabs.com for fixing two nasty bugs.
*/

function NiftyCheck() {
  if(!document.getElementById || !document.createElement) {
    return false;
  }
  var b = navigator.userAgent.toLowerCase();
  if (b.indexOf("msie 5") > 0 && b.indexOf("opera") == -1) {
    return false;
  }
  return true;
}

function Rounded(selector, topBkg, bottomBkg, topColor, bottomColor, sizex, sizey, addBottom, addTop) {
    if(addBottom == null || addBottom == undefined)
        addBottom = true;

    if(addTop == null || addTop == undefined)
        addTop = true;

    var i;
    var v = getElementsBySelector(selector);
    
    var l = v.length;
    
    for (i = 0; i < l; i++) {
        if(addTop) {
            AddTop(v[i], topBkg, topColor, sizex, sizey);
        }

        if(addBottom) {
            AddBottom(v[i], bottomBkg, bottomColor, sizex, sizey);
        }
    }
}

Math.sqr = function (x) {
    return x*x;
};

function Blend(a, b, alpha) {
    var ca = Array(
        parseInt('0x' + a.substring(1, 3)), 
        parseInt('0x' + a.substring(3, 5)), 
        parseInt('0x' + a.substring(5, 7))
    );
    var cb = Array(
        parseInt('0x' + b.substring(1, 3)), 
        parseInt('0x' + b.substring(3, 5)), 
        parseInt('0x' + b.substring(5, 7))
    );
    r = '0' + Math.round(ca[0] + (cb[0] - ca[0])*alpha).toString(16);
    g = '0' + Math.round(ca[1] + (cb[1] - ca[1])*alpha).toString(16);
    b = '0' + Math.round(ca[2] + (cb[2] - ca[2])*alpha).toString(16);
    return '#'
    + r.substring(r.length - 2)
    + g.substring(g.length - 2)
    + b.substring(b.length - 2);
}

function AddTop(el, bk, color, sizex, sizey) {
  var i, j;
  var d = document.createElement("div");
  d.style.backgroundColor = bk;
  d.className = "rounded";
  var lastarc = 0;
  for (i = 1; i <= sizey; i++) {
    var coverage, arc2, arc3;
    // Find intersection of arc with bottom of pixel row
    arc = Math.sqrt(1.0 - Math.sqr(1.0 - i / sizey)) * sizex;
    // Calculate how many pixels are bg, fg and blended.
    var n_bg = sizex - Math.ceil(arc);
    var n_fg = Math.floor(lastarc);
    var n_aa = sizex - n_bg - n_fg;
    // Create pixel row wrapper
    var x = document.createElement("div");
    var y = d;
    x.style.margin = "0px " + n_bg +"px";
    // Make a wrapper per anti-aliased pixel (at least one)
    for (j = 1; j <= n_aa; j++) {
      // Calculate coverage per pixel
      // (approximates circle by a line within the pixel)
      if (j == 1) {
        if (j == n_aa) {
          // Single pixel
          coverage = ((arc + lastarc) * .5) - n_fg;
        }
        else {
          // First in a run
          arc2 = Math.sqrt(1.0 - Math.sqr(1.0 - (n_bg + 1) / sizex)) * sizey;
          coverage = (arc2 - (sizey - i)) * (arc - n_fg - n_aa + 1) * .5;
        }
      }
      else if (j == n_aa) {
        // Last in a run
        arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
        coverage = 1.0 - (1.0 - (arc2 - (sizey - i))) * (1.0 - (lastarc - n_fg)) * .5;
      }
      else {
        // Middle of a run
        arc3 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j) / sizex)) * sizey;
        arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
        coverage = ((arc2 + arc3) * .5) - (sizey - i);
      }
      
      x.style.backgroundColor = Blend(bk, color, coverage);
      y.appendChild(x);
      y = x;
      var x = document.createElement("div");
      x.style.margin = "0px 1px";
    }
    x.style.backgroundColor = color;
    y.appendChild(x);
    lastarc = arc;
  }
  el.insertBefore(d, el.firstChild);
}

function AddBottom(el, bk, color, sizex, sizey) {
  var i, j;
  var d = document.createElement("div");
  d.className = "rounded";
  d.style.backgroundColor = bk;
  var lastarc = 0;
  for (i = 1; i <= sizey; i++) {
    var coverage, arc2, arc3;
    // Find intersection of arc with bottom of pixel row
    arc = Math.sqrt(1.0 - Math.sqr(1.0 - i / sizey)) * sizex;
    // Calculate how many pixels are bg, fg and blended.
    var n_bg = sizex - Math.ceil(arc);
    var n_fg = Math.floor(lastarc);
    var n_aa = sizex - n_bg - n_fg;
    // Create pixel row wrapper
    var x = document.createElement("div");
    var y = d;
    x.style.margin = "0px " + n_bg + "px";
    // Make a wrapper per anti-aliased pixel (at least one)
    for (j = 1; j <= n_aa; j++) {
      // Calculate coverage per pixel
      // (approximates circle by a line within the pixel)
      if (j == 1) {
        if (j == n_aa) {
          // Single pixel
          coverage = ((arc + lastarc) * .5) - n_fg;
        }
        else {
          // First in a run
          arc2 = Math.sqrt(1.0 - Math.sqr(1.0 - (n_bg + 1) / sizex)) * sizey;
          coverage = (arc2 - (sizey - i)) * (arc - n_fg - n_aa + 1) * .5;
        }
      }
      else if (j == n_aa) {
        // Last in a run
        arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
        coverage = 1.0 - (1.0 - (arc2 - (sizey - i))) * (1.0 - (lastarc - n_fg)) * .5;
      }
      else {
        // Middle of a run
        arc3 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j) / sizex)) * sizey;
        arc2 = Math.sqrt(1.0 - Math.sqr((sizex - n_bg - j + 1) / sizex)) * sizey;
        coverage = ((arc2 + arc3) * .5) - (sizey - i);
      }
      
      x.style.backgroundColor = Blend(bk, color, coverage);
      y.insertBefore(x, y.firstChild);
      y = x;
      var x = document.createElement("div");
      x.style.margin = "0px 1px";
    }
    x.style.backgroundColor = color;
    y.insertBefore(x, y.firstChild);
    lastarc = arc;
  }
  el.appendChild(d);
}

function getElementsBySelector(selector) {
  var i;
  var s = [];
  var selid = "";
  var selclass = "";
  var tag = selector;
  var objlist = [];
  if (selector.indexOf(" ") > 0) {  //descendant selector like "tag#id tag"
    s = selector.split(" ");
    var fs = s[0].split("#");
    if (fs.length == 1) {
      return objlist;
    }
    return document.getElementById(fs[1]).getElementsByTagName(s[1]);
  }
  if (selector.indexOf("#") > 0) { //id selector like "tag#id"
    s = selector.split("#");
    tag = s[0];
    selid = s[1];
  }
  if (selid != "") {
    objlist.push(document.getElementById(selid));
    return objlist;
  }
  if (selector.indexOf(".") > 0) {  //class selector like "tag.class"
    s = selector.split(".");
    tag = s[0];
    selclass = s[1];
  }
  var v = document.getElementsByTagName(tag);  // tag selector like "tag"
  if (selclass == "") {
    return v;
  }
  for (i = 0; i < v.length; i++) {
    if (v[i].className == selclass) {
      objlist.push(v[i]);
    }
  }
  return objlist;
}


/**
 * RUZEE.ShadedBorder 0.6.1
 * (c) 2006 Steffen Rusitschka
 *
 * RUZEE.ShadedBorder is freely distributable under the terms of an MIT-style license.
 * For details, see http://www.ruzee.com/
 */

var RUZEE = window.RUZEE || {};

RUZEE.ShadedBorder = {

create: function(opts) {
  var isie = /msie/i.test(navigator.userAgent) && !window.opera;
  var isie6 = isie && !window.XMLHttpRequest;
  function sty(el, h) {
    for(k in h) {
      if (/ie_/.test(k)) {
        if (isie) el.style[k.substr(3)]=h[k];
      } else el.style[k]=h[k];
    }
  }
  function crdiv(h) {
    var el=document.createElement("div");
    el.className = "sb-gen";
    sty(el, h);
    return el;
  }
  function op(v) {
    v = v<0 ? 0 : v;
    if (v>0.99999) return "";
    return isie ? " filter:alpha(opacity=" + (v*100) + ");" : " opacity:" + v + ';';
  }

  var sr = opts.shadow || 0;
  var r = opts.corner || 0;
  var bor = 0;
  var bow = opts.border || 0;
  var boo = opts.borderOpacity || 1;
  var shadow = sr != 0;
  var lw = r > sr ? r : sr;
  var rw = lw;
  var th = lw;
  var bh = lw;
  if (bow > 0) {
    bor = r;
    r = r - bow;
  }
  var cx = r != 0 && shadow ? Math.round(lw/3) : 0;
  var cy = cx;
  var cs = Math.round(cx/2);
  var iclass = r > 0 ? "sb-inner" : "sb-shadow";
  var sclass = "sb-shadow";
  var bclass = "sb-border";
  var edges = opts.edges || "trlb";
  if (!/t/i.test(edges)) th=0;
  if (!/b/i.test(edges)) bh=0;
  if (!/l/i.test(edges)) lw=0;
  if (!/r/i.test(edges)) rw=0;

  var p = { position:"absolute", left:"0", top:"0", width:lw + "px", height:th + "px", 
            ie_fontSize:"1px", overflow:"hidden", margin:"0", padding:"0" }; var tl = crdiv(p);
  delete p.left; p.right="0"; p.width=rw + "px"; var tr = crdiv(p);
  delete p.top; p.bottom="0"; p.height=bh + "px"; var br = crdiv(p);
  delete p.right; p.left="0"; p.width=lw + "px"; var bl = crdiv(p);

  var tw = crdiv({ position:"absolute", width:"100%", height:th + "px", ie_fontSize:"1px",
                   top:"0", left:"0", overflow:"hidden", margin:"0", padding:"0" });
  var t = crdiv({ position:"relative", height:th + "px", ie_fontSize:"1px",
                  margin:"0 "+ rw + "px 0 " + lw + "px", overflow:"hidden", padding:"0" });
  tw.appendChild(t);

  var bw = crdiv({ position:"absolute", left:"0", bottom:"0", width:"100%", height:bh + "px", 
                   ie_fontSize:"1px", overflow:"hidden", margin:"0", padding:"0" });
                   
  var b = crdiv({ position:"relative", height:bh + "px", ie_fontSize:"1px",
                  margin:"0 "+ rw + "px 0 " + lw + "px", overflow:"hidden", padding:"0" });
                  
  bw.appendChild(b);

  var mw = crdiv({ position:"absolute", top:(-bh)+"px", left:"0", width:"100%", height:"100%",
                   overflow:"hidden", ie_fontSize:"1px", padding:"0", margin:"0" });

  function corner(el,t,l) {
    var w = l ? lw : rw;
    var h = t ? th : bh;
    var s = t ? cs : -cs;
    var dsb = []; var dsi = []; var dss = [];
    
    var xp=0; var xd=1; if (l) { xp=w-1; xd=-1; }
    for (var x=0; x<w; ++x) {
      var yp=h-1; var yd=-1; if (t) { yp=0; yd=1; }
      var finished=false;
      for (var y=h-1; y>=0 && !finished; --y) {
        var div = '<div style="position:absolute; top:' + yp + 'px; left:' + xp + 'px; ' +
                  'width:1px; height:1px; overflow:hidden; margin:0; padding:0;';

        var xc = x - cx; var yc = y - cy - s;
        var d = Math.sqrt(xc*xc+yc*yc);
        var doShadow = false;

        if (r > 0) {
          // draw border
          if (xc < 0 && yc < bor && yc >= r || yc < 0 && xc < bor && xc >= r) {
            dsb.push(div + op(boo) + '" class="' + bclass + '"></div>');
          } else
          if (d<bor && d>=r-1 && xc>=0 && yc>=0) {
            var dd = div;
            if (d>=bor-1) {
              dd += op((bor-d)*boo);
              doShadow = true;
            } else dd += op(boo);
            dsb.push(dd + '" class="' + bclass + '"></div>');
          }
          
          // draw inner
          var dd = div + ' z-index:2;' + (t ? 'background-position:0 -' + (r-yc-1) + 'px;' : 'background-image:none;');
          var finish = function() {
            if (!t) dd = dd.replace(/top\:\d+px/, "top:0px");
            dd = dd.replace(/height\:1px/, "height:" + (y+1) + "px");
            dsi.push(dd + '" class="' + iclass + '"></div>');
            finished = true;
          };
          if (xc < 0 && yc < r || yc < 0 && xc < r) {
            finish();
          } else
          if (d<r && xc>=0 && yc>=0) {
            if (d>=r-1) {
              dd += op(r-d);
              doShadow = true;
              dsi.push(dd + '" class="' + iclass + '"></div>');
            } else {
              finish();
            }
          } else doShadow = true;
        } else doShadow = true;
        
        // draw shadow
        if (sr > 0 && doShadow) {
          d = Math.sqrt(x*x+y*y);
          if (d<sr) {
            dss.push(div + ' z-index:0; ' + op(1-(d/sr)) + '" class="' + sclass + '"></div>');
          }
        }
        yp += yd;
      }
      xp += xd;
    }
    el.innerHTML = dss.concat(dsb.concat(dsi)).join('');
  }
  
  function mid(mw) {
    var ds = [];

    ds.push('<div style="position:relative; top:' + (th+bh) + 'px; height:5000px; ' +
            ' margin:0 ' + (rw-r-cx) + 'px 0 ' + (lw-r-cx) + 'px; ' +
            ' padding:0; overflow:hidden;' +
            ' background-position:0 ' + (th > 0 ? -(r+cy+cs) : '0') + 'px;"' +
            ' class="' + iclass + '"></div>');

    var dd = '<div style="position:absolute; width:1px;' +
        ' top:' + (th+bh) + 'px; height:2048px; padding:0; margin:0;';
    if (sr>0) {
      for (var x=0; x<lw-r-cx; ++x) {
        ds.push(dd + ' left:' + x + 'px;' + op((x+1.0)/lw) + 
            '" class="' + sclass + '"></div>');
      }

      for (var x=0; x<rw-r-cx; ++x) {
        ds.push(dd + ' right:' + x + 'px;' + op((x+1.0)/rw) + 
            '" class="' + sclass + '"></div>');
      }
    }

    if (bow > 0) {
      var su = ' width:' + bow + 'px;' + op(boo) + '" class="' + bclass + '"></div>';
      ds.push(dd + ' left:' + (lw-bor-cx) + 'px;' + su);
      ds.push(dd + ' right:' + (rw-bor-cx) + 'px;' + su);
    }

    mw.innerHTML = ds.join('');
  }

  function tb(el, t) {
    var ds = [];
    var h = t ? th : bh;
    var dd = '<div style="height:1px; overflow:hidden; position:absolute; margin:0; padding:0;' +
        ' width:100%; left:0px; ';
    var s = t ? cs : -cs;
    for (var y=0; y<h-s-cy-r; ++y) {
      if (sr>0) ds.push(dd + (t ? 'top:' : 'bottom:') + y + 'px;' + op((y+1)*1.0/h) + 
          '" class="' + sclass + '"></div>');
    }
    if (y >= bow) {
      ds.push(dd + (t ? 'top:' : 'bottom:') + (y - bow) + 'px;' + op(boo) +
          ' height:' + bow + 'px;" class="' + bclass + '"></div>');
    }

    ds.push(dd + (t ? 'background-position-y:0; top:' : 
                      'background-image:none; bottom:') + y + 'px;' +
        ' height:' + (r+cy+s) + 'px;" class="' + iclass + '"></div>');

    el.innerHTML = ds.join('');
  }

  corner(tl, true, true); corner(tr, true, false);
  corner(bl, false, true); corner(br, false, false);
  mid(mw); tb(t, true); tb(b, false);

  return {
    render: function(el) {
      if (typeof el == 'string') el = getElementsBySelector(el);
      if (el.length != undefined) {
        for (var i=0; i<el.length; ++i) this.render(el[i]);
        return;
      }
      el.className += " sb";
      sty(el, { position:"relative", background:"transparent" });

      // remove generated children
      var node = el.firstChild;
      while (node) {
        var nextNode = node.nextSibling;
        if (node.nodeType == 1 && node.className == 'sb-gen')
          el.removeChild(node);
        node = nextNode;
      }

      var iel = el.firstChild;

      var twc = tw.cloneNode(true);
      var mwc = mw.cloneNode(true);
      var bwc = bw.cloneNode(true);
      
      el.insertBefore(tl.cloneNode(true), iel); el.insertBefore(tr.cloneNode(true), iel);
      el.insertBefore(bl.cloneNode(true), iel); el.insertBefore(br.cloneNode(true), iel);
      el.insertBefore(twc, iel); el.insertBefore(mwc, iel);
      el.insertBefore(bwc, iel);

      if (isie6) {
        el.onmouseover=function() { this.className+=" hover"; }
        el.onmouseout=function() { this.className=this.className.replace(/ hover/,""); }
      }
      if (isie) {
        function resize() {
          twc.style.width = bwc.style.width = mwc.style.width = el.offsetWidth + "px";
          mwc.firstChild.style.height = el.offsetHeight + "px";
        }
        el.onresize=resize;
        resize();
      }
    }
  };
}
}
