/*@ 02.11.2009 15:25 */
var payTabs=[],pmType,ccTypes=[],currency="USD",currency_rate=1,customerData,console,_cons,Data={},receivedData,
ccAllowedNames=[],requesting,notifyDontUpdate,bannedCountry,theForm;
if(console && console.debug){_cons=console;}else{_cons={debug:function(){}};}
try {document.execCommand("BackgroundImageCache", false, true);}catch(e){}
try {window.onerror=reportError;}catch(e){}
Prototype.Browser.version= (navigator.userAgent.match(/.+(?:rv|it|ra|ie)[\/: ]([\d.]+)/i) || [])[1];
Form.Element.Serializers.inputSelector=function(element, newValue){
if(Object.isUndefined(newValue)){
return element.checked ? element.value: null;
}
var fields=document.getElementsByName(element.name);
for (var i=0; i < fields.length; i++){
if(fields[i].value == newValue){
fields[i].checked=true;
}
}
};
function $1(str){return theForm.select('#'+str)[0];}
function $$1(str){return theForm.select(str);}
function onLoad(){
$(document.body).insert({bottom: '<div id="loading_img"> </div>'});
mouseTrail.init();
Event.observe(document.body, "mousemove", mouseTrail.track);
theForm=$("checkout_form");
request({action: "init"});
$$1("select, input, textarea").each(function(s){
if(!s.id){s.id=s.name;}
});
setClickableEvents($$1(".clickable"));
$1("section_coupon").hide();
$1("returning_fields").hide();
$1("cc_exp_month").update(drawMonthOptions());
$1("cc_exp_year").update(drawYearOptions());
var same_address=$1("same_address");
same_address.onchange=function(){
var sh=$1("shipping_fields");
if(this.value == "1"){
sh.hide();
}else{
sh.show();
}
};
same_address.onchange();
$$1(".section input, .section select, .section textarea").each(function(el){
Event.observe(el, "focus", onFocus);
Event.observe(el, "blur", onBlur);
});
Event.observe("cc_number", "keyup", ccOnChange);
Event.observe(document.body, "click", bodyOnClick);
var lang_sel=$("lang_sel");
if(lang_sel){
Event.observe(lang_sel, "change", langOnChange);
}else{
var img;
$$("td .lang a").each(function(el){
el.href='javascript:changeLanguage("' + el.href + '")';
img=el.down("img");
img.title=img.alt;
});
}
var from=$1("extra_remind_by_phone_from");
if(from){
var oursOptions=drawHoursOptions();
from.update(oursOptions);
from.setValue("09");
var to=$1("extra_remind_by_phone_to").update(oursOptions);
to.setValue("20");
}
}
function request(params){
mouseTrail.start();
pageBtns.disable();
requesting=true;
var requestPOST=cloneObject(params);
new Ajax.Request("connector.php", {
requestHeaders: ["Connection", "close"],
parameters: params,
onSuccess: requestDone.bind(this, requestPOST),
onFailure: function(){
showError({message: Data.texts.errCantConnect});
pageBtns.enable();
requesting=false;
}
});
}
function notify(str1, str2, id){
var params,p={},fl,fla=[];
if(str1 == "cart"){
p.action="cart_change";
var obj=checkObj(customerData.cart);
Object.keys(obj).each(function(n){
if(n == "bonuses"){
return;
}
p["set" + n]=obj[n].amount;
fl=obj[n].flavour;
if(fl){
fla.push(n+'-'+fl[0]);
}
});
if(fla.length>0){
p["flavour"]=fla.join(',');
}
p.shipping_method_id=customerData.shipping;
if(customerData.bonus_id){
p.bonus_id=customerData.bonus_id;
}
}
if(str2 == "remove"){
p["set" + id]=0;
}
request(p);
}
function requestDone(requestPOST, transport){
mouseTrail.stop();
pageBtns.enable();
requesting=false;
var receivedData=transport.responseJSON || transport.responseText.evalJSON();
mergeObject(Data, receivedData);
var response=receivedData.response;
if(response){
if(response.type == "ERROR"){
clearErrors();
var msg=[];
var f=response.fields;
var m=response.message;
if(m){
msg.push(m);
}
if(f){
for (var n in f){
markErrorField(n);
msg.push(f[n]);
}
}
showError({message: msg.join("\n\r")});
}else if(response.type == "SUCCESS"){
document.location=document.location;
}
return;
}
if(requestPOST.action == "init"){
initialize();
}else if(requestPOST.action == "returning_customer"){
setReturningCustomerInfo();
}else if(requestPOST.action == "submit_coupon"){
setCouponDiscount();
}else if(requestPOST.action == "cart_change" && receivedData.cart){
if(receivedData.cart.length==0){
customerData.cart.bonuses=[];
updCart();
return null;
}
var oldCart=cloneObject(customerData.cart);
customerData.cart=cloneObject(receivedData.cart);
if(Object.keys(oldCart).length > Object.keys(customerData.cart).length){
Object.keys(oldCart).each(function(k){
if(!customerData.cart[k]){customerData.cart[k]=oldCart[k];}
});
}
updCart();
}
}
function initialize(){
$$1("div.content")[0].show();
if(!Data.customerInitialData.discount){
Data.customerInitialData.discount={amount: 0, percent: 0};
}
customerData=cloneObject(Data.customerInitialData);
currency=customerData.currency || currency;
currency_rate=customerData.currency_rate || currency_rate;
PMSelector.init();
var cid=customerData.country_id;
var countries=drawCountriesOptions(cid);
var cs=$$1("#shipping-country_id, #billing-country_id, #wire_country_id");
cs.each(function(el){
el.update(countries);
el.onchange=function(){
onCountryChange(el);
if(el.name == "billing-country_id"){
setPhonePref(el.value);
}
};
});
setPhonePref(cid);
updStateSelect($1("shipping-state_id"), cid);
updStateSelect($1("billing-state_id"), cid);
updCart();
theForm.action="javascript:void(0)";
var userInfo;
try{userInfo=(document.cookie + ";").match(/userInfo=(.*?);/)[1];}catch(e){}
if(userInfo){
var n, d=userInfo.toQueryParams();
Data.customerInitialData.form={};
setTimeout(function(){
for (n in d){
if(n.indexOf("set_") == 0 || n.indexOf("shipping_method_id") == 0 || n.indexOf("extra_") == 0){
continue;
}
try {$(n).setValue(d[n]);} catch(e){}
Data.customerInitialData.form[n]=d[n];
}
onCountryChange(cs[0]);
},1);
document.cookie="userInfo=; expires=" + new Date(0).toGMTString();
}else{
Data.customerInitialData.form=theForm.serialize(true);
}
if(customerData.prescript){
$1("addr").update(customerData.prescript_addr);
}else{
$1("extra_info").hide();
}
}
function setClickableEvents(arr){
arr.each(function(el){
Event.observe(el, "mouseover", clickableOver);
Event.observe(el, "mouseout", clickableOut);
Event.observe(el, "click", onClick);
});
}
function bodyOnClick(event){
if(requesting){
Event.stop(event);
return;
}
}
function onClick(event){
if(requesting){
Event.stop(event);
return;
}
var el=event.element();
clickedElement=el;
if(el.tagName == "A"){
return;
}
if(el.tagName == "INPUT"){
if(el.type == "checkbox"){
checkboxOnClick(el);
}else if(el.type == "radio"){
radioOnClick(el);
}
return;
}
var tr=event.findElement("TR");
if(tr && tr != document){
var r=$(tr).select("input")[0];
if(r && !r.disabled && (r.type == "checkbox" || r.type == "radio")){
if(r.type == "checkbox"){
r.checked=!r.checked;
checkboxOnClick(r, tr);
}else if(r.type == "radio"){
r.checked=true;
radioOnClick(r, tr);
}
Event.stop(event);
return;
}
}
}
function checkboxOnClick(chk, tr){
tr=tr || chk.up("TR");
if(tr){
if(chk.checked){
tr.addClassName("selected");
}else{
tr.removeClassName("selected");
}
}
}
function radioOnClick(r, tr){
if(r.name == "shipping_method_id"){
setShippingMethod(r);
return;
}
if(r.name == "bonuses"){
setBonus(r.value);
return;
}
tr=tr || r.up("TR");
var tr1=$1('.selected input[name="' + r.name + '"]').up("tr");
if(tr){
tr.toggleClassName("selected");
tr1.toggleClassName("selected");
}
}
function onFocus(e){
var el=e.element();
el.up("tr").addClassName("focused");
if(el.name.startsWith("extra_remind_by_phone_")){
$("extra_remind_by_phone").setValue("1");
}else if(el.name.startsWith("extra_remind_by_email_")){
$("extra_remind_by_email").setValue("1");
}
}
function onBlur(e){
var el=e.element();
var tr=el.up("tr");
if(tr){
setTimeout(function(){
tr.removeClassName("focused");
},10);
}
}
function onOver(e){
e.element().addClassName("over");
}
function onOut(e){
e.element().removeClassName("over");
}
function clickableOver(e){
var tr=e.findElement("TR");
tr.addClassName("clickable_over");
}
function clickableOut(e){
var tr=e.findElement("TR");
if(tr)tr.removeClassName("clickable_over");
}
function ccOnChange(e){
var el, tr;
if(e){
el=e.element();
tr=e.findElement("TR");
}else{
el=$1("cc_number");
tr=el.up("TR");
}
if(tr)tr.removeClassName("error");
var val=formatCCNumber(el.value);
el.value=val;
if(!val)return;
val=val.replace(/[^\d]/g, "");
var allowed=ccGetAllowed(val);
if(allowed.length == 0){
markErrorField(el, tr);
}else if(allowed.length == 1 && allowed[0] !== PMSelector.pm && e){
PMSelector.setPM(allowed[0]);
if(!el.disabled)el.focus();
}else if(allowed.indexOf(PMSelector.pm) < 0){
markErrorField(el, tr);
}
}
function ccGetAllowed(val){
var allowed=[],r;
ccTypes.each(function(t){
r=new RegExp(ccPattern[t]);
if(r.test(val)){
allowed.push(t);
}
});
return allowed;
}
function showCouponForm(){
var sc=$1("section_coupon");
sc.toggle();
if(!sc.visible()){
clearErrors();
}
}
function drawProducts(){
var n, d, html="",
subtotal=0,
cartCost=0, cartAmount=0, cartItems=0,
free4pills=0, amount=0, price=0, free4pillsString, notices=[];
var obj=checkObj(customerData.cart);
Object.keys(obj).each(function(n){
if(n == "bonuses"){
return;
}
d=cloneObject(obj[n]);
d.id=n;
if(d.not_available){
d.subtotal="&mdash";
d.price="&mdash";
customerData.cart[n].price=0;
d.pckg=Data.texts.productIsNotAvailable;
d.product=Data.texts.unknownProduct;
html += (Strings.prodTR5 + Strings.prodTR2).interpolate(d);
}else{
price=Number(d.price);
amount=Number(d.amount);
subtotal=price * amount;
cartCost += subtotal;
cartAmount += amount;
cartItems += amount*Number(d.items);
d.subtotal = moneyFormat(subtotal);
d.price = moneyFormat(price);
if(d.flavour && d.flavour.length > 1){
d.product += drawFlavourSelect(d);
}
html += (Strings.prodTR1 + Strings.prodTR2).interpolate(d);
}
if(d.note && d.note.length > 1){
notices.push(d.note);
}
});
var tbp=$1("tbody_products");
tbp.update(html);
customerData.cartCost=cartCost;
customerData.cartAmount=cartAmount;
customerData.cartItems=cartItems;
customerData.notices=notices.uniq();
tbp.select("input").each(function(f){
f.onblur=function(){setProdsAmount(this,"blur");};
f.onkeyup=function(){setProdsAmount(this,"keyup");};
});
tbp.select("select").each(function(s){
s.onchange=function(){prodSelectOnChange(this);};
});
}
function drawBonuses(){
var n, d, html="";
var bs=customerData.cart.bonuses;
var func=function(o, single){
var d=cloneObject(o);
d.subtotal=d.price=Data.texts.free.capitalize();
d.amount=1;
if(single){
return (Strings.prodTR3 + Strings.prodTR2).interpolate(d);
}
if(d.id == customerData.bonus_id){
d.selected=" selected";
d.checked='checked="checked"';
}else{}
return (Strings.prodTR4 + Strings.prodTR2).interpolate(d);
};
if(bs && bs.length > 0){
html='<tr class="hr"><td colspan="6">&nbsp;</td></tr>';
bs.each(function(o){
if(o.length > 1){
o.each(function(o1){
html += func(o1);
});
}else{
html += func(o[0], true);
}
});
$1("bonus_title").update("<b>" + Data.texts.yourBonus + "</b>");
$1("tbody_bonuses").update(html);
}else{
$1("bonus_title").update();
$1("tbody_bonuses").update();
}
setClickableEvents($$1("#tbody_bonuses .clickable"));
}
function drawShippingMethods(){
var n, d, html="", price, cost, pi, t;
for (n in Data.shippingMethods){
d=cloneObject(Data.shippingMethods[n]);
if(d.flags && d.flags.match(/\breship\b/)) continue;
price=Number(d.price);
d.id=n;
d.price=moneyFormat(price);
pi=parseInt("0" + d.per_item);
if(pi > 0){
t=pi > 1 ? "per " + pi + " items": Data.texts.perItem;
d.price += ' <span class="small">' + t + "</span>";
}
if(d.free_from_items){
if(d.free_from_items <= customerData.cartItems){
price=0;
d.price=Data.texts.free.capitalize();
}else{
d.price += " (&nbsp;<a href=\"javascript:freeShippingFromItems('" + d.free_from_items + "')\">0.00</a>&nbsp;)";
}
}else if(d.free_from){
if(d.free_from <= customerData.cartCost){
price=0;
d.price=Data.texts.free.capitalize();
}else{
d.price += " (&nbsp;<a href=\"javascript:freeShippingFrom('" + d.free_from + "')\">0.00</a>&nbsp;)";
}
}
if(n == customerData.shipping){
if(customerData.cartAmount == 0){
cost=0;
}else if(pi > 0){
cost=price * Math.ceil(customerData.cartAmount / pi);
}else{
cost=price;
}
if(customerData.cartAmount == 0){
d.price1='';
}else if(cost){
d.price1=moneyFormat(cost);
}else{
d.price1=Data.texts.free.capitalize();
}
d.selected=" selected";
d.checked='checked="checked"';
}
if(!isShippingAvailable({silent:true,mid:n})){
if(n == customerData.shipping){
d.selected=" error";
setTimeout(function(){
whyShippingIsUnavailable(n);
},50);
}else{
d.selected=" not_available";
d.checked='disabled="disabled"';
}
d.title='<span class="na">'+d.title+'</span> (&nbsp;<a href="javascript:whyShippingIsUnavailable('+n+')">?</a>&nbsp;)';
}
html += Strings.shipTR.interpolate(d);
}
customerData.shippingCost=cost;
var tb=$1("tbody_shipping");
tb.update(html);
setClickableEvents(tb.select("tr.clickable"));
}
function freeShippingFrom(n){
moBox.show(Data.texts.freeShippingFrom.interpolate({n: moneyFormat(n)}));
}
function freeShippingFromItems(n){
moBox.show(Data.texts.freeShippingFromItems.interpolate({n:n}));
}
function drawNotices(){
var html, div=$1("section_notices");
if(customerData.notices.length > 0){
html="<li>" + customerData.notices.join("</li><li>") + "</li>";
div.select("ul")[0].update(html);
div.show();
}else{
div.hide();
}
}
function updCart(){
drawProducts();
drawBonuses();
drawShippingMethods();
var disc=customerData.discount;
var discVal;
if(disc.percent > 0){
$1("coupon_discount").update("- " + myRound(disc.percent, 2) + "%");
discVal=customerData.cartCost * disc.percent / 100;
}else{
$1("coupon_discount").update("- " + moneyFormat(disc.amount));
discVal=disc.amount;
}
$1("subtotal").update(moneyFormat(customerData.cartCost));
var tot=customerData.cartCost > 0 ? customerData.cartCost - discVal + customerData.shippingCost: 0;
$1("total").update(moneyFormat(tot));
customerData.cartTotal=tot;
drawNotices();
checkForbiddenness();
}
function setBonus(id){
if(customerData.bonus_id == id){
return;
}
customerData.bonus_id=id;
if(customerData.cartAmount == 0){
updCart();
}else{
notify("cart");
}
}
function setShippingMethod(r){
var id=r.value;
if(customerData.shipping == id){
return;
}
customerData.shipping=id;
if(!isShippingAvailable({silent:true})){
return;
}
if(customerData.cartAmount == 0){
updCart();
}else{
notify("cart");
}
}
function prodSelectOnChange(s){
var n=s.name.split("_");
if(n[0]=="flavour"){
customerData.cart[n[1]].flavour[0]=s.getValue();
notify("cart");
}
}
function setProdsAmount(f, ev){
if(f.disabled || f.hasAttribute("readonly")){
return;
}
if(f.value == "" && ev == "keyup"){
return;
}
var id=f.name.split("_")[1];
var amount=Number(f.value);
if(requesting || isNaN(amount) || customerData.cart[id].amount == amount){
f.value=customerData.cart[id].amount;
return;
}
customerData.cart[id].amount=amount;
notify("cart");
if(ev == "keyup"){
try{$1("set_" + id).focus();}catch(e){}
}
}
function removeProduct(id){
if(requesting){
return;
}
var prod=customerData.cart[id];
var d={prod: prod.product + " - " + prod.pckg.replace("&times;", "\xd7")};
if(!prod.not_available && !confirm(Data.texts.confirmRemove.interpolate(d))){
return;
}
delete customerData.cart[id];
notify("cart", "remove", id);
}
function resetAll(){
if(requesting){
return;
}
if(!confirm(Data.texts.confirmReset)){
return;
}
clearErrors();
var n, d=Data.customerInitialData.form;
for (n in d){
try {
$(n).value=d[n];
} catch(e){}
}
customerData=cloneObject(Data.customerInitialData);
notify("cart");
}
function returningCustomer(){
var rf=$1("returning_fields");
rf.toggle();
$1("billing_fields").toggle();
if(!rf.visible()){
clearErrors();
}
}
function getReturningCustomerInfo(){
var req=makeParamObj($$1("#returning_email, #returning_order_id"));
req.action="returning_customer";
if(req){
request(req);
}
}
function setReturningCustomerInfo(){
var rf=$1("returning_fields");
rf.previous().remove();
rf.remove();
var d=Data.returningCustomer;
$1("billing_fields").toggle();
var n, f;
for (n in d){
if(n.indexOf("state_id") > 0){
continue;
}
f=$(n);
if(f && d[n]){
Data.customerInitialData.form[n]=d[n];
f.setValue(d[n]);
if(n.indexOf("country_id") > 0){
onCountryChange(f);
n=n.split("-country_id")[0] + "-state_id";
f=$(n);
if(f && d[n]){
Data.customerInitialData.form[n]=d[n];
f.setValue(d[n]);
}
}
}
}
$1("same_address").onchange();
var dscnt=d.discount;
if(dscnt && dscnt > 0){
Data.customerInitialData.discount={amount: 0, percent: dscnt};
customerData.discount={amount: 0, percent: dscnt};
updCart();
}
}
function makeParamObj(arr){
clearErrors();
var val, tr;
var o={};
arr.each(function(f){
if(isVisible(f)){
val=$F(f);
if(typeof val == "string" && !val.blank()){
o[f.name]=val;
}else{
tr=f.up(1);
if(tr && tr.hasClassName("req")){
showEmptyFieldError(f, tr);
o=false;
throw $break;
}
}
}
});
return o;
}
function showEmptyFieldError(f, tr){
var fld=$(f);
if(!tr)tr=fld.up("TR");
if(tr)tr.addClassName("error");
var n=tr.down("TH").innerHTML.unescapeHTML().stripTags().strip().replace(":", "");
if(fld.type == "text" || fld.type == "textarea"){
moBox.showError(Data.texts.isEmptyInput.interpolate({name: n}), {focus: fld});
}else{
moBox.showError(Data.texts.isEmptySelect.interpolate({name: n}), {focus: fld});
}
}
function markErrorField(f, tr){
var fld=$(f);
if(!fld)return;
if(!tr)tr=fld.up("TR");
if(tr)tr.addClassName("error");
}
function showError(d){
var f=$(d.field);
if(f){
clearErrors();
markErrorField(d.field, d.tr);
}
moBox.showError(d.message, {focus: f});
}
function clearErrors(o){
if(!o)o=document.body;
o.select("tr.error").each(function(f){
f.removeClassName("error");
});
}
function submitTransaction(event){
if(requesting){
return;
}
updCart();
if(customerData.cartCost == 0){
moBox.showError(Data.texts.cartIsEmpty);
return;
}
if(!$1("billing_fields").visible()){
returningCustomer();
}
var sc=$1("section_coupon");
if(sc){
sc.hide();
}
var req=makeParamObj(
getUserInfoElements()
);
if(!req){
return;
}
if(req.phone.replace(/\D/g, "") == Selects.phones[req["billing-country_id"]]){
showError({message: Data.texts.definePhone,field: "phone"});
return;
}
if(!isShippingAvailable({req:req})){
return;
}
if(PMSelector.isCC){
if(!isCreditCard(req.cc_number)){
showError({message: Data.texts.ccInvalid,field: "cc_number"});
return;
}
var ccAllowed=ccGetAllowed(req.cc_number);
if(ccAllowed.length == 0){
showError({message: Data.texts.ccCantProcess.interpolate({cards: ccAllowedNames.join(", ")})});
return;
}else if(ccAllowed[0] != PMSelector.pm){
PMSelector.setPM(ccAllowed[0]);
checkForbiddenness();
}
if($1("forbidden_products")){
return;
}
if(isCCdateExpired(req.cc_exp_month, req.cc_exp_year)){
showError({message: Data.texts.ccExpired,field: "cc_exp_month"});
return;
}
}else if(PMSelector.pm == "eurodebit"){
var i=1,
val="";
while (i < 5){
val += req["eudebid-" + i] || "";
delete req["eudebid-" + i];
i++;
}
if(val){
req.eurodebit_id=val;
}
}
var n, fl, fla=[];
for (n in customerData.cart){
if(customerData.cart[n].price > 0){
req["set" + n]=customerData.cart[n].amount;
fl=customerData.cart[n].flavour;
if(fl){
fla.push(n+'-'+fl[0]);
}
}
}
if(fla.length>0){
req["flavour"]=fla.join(',');
}
req.shipping_method_id=customerData.shipping;
if(customerData.bonus_id){
req.bonus_id=customerData.bonus_id;
}
req.action="submit_transaction";
req.utime=new Date().toGMTString();
req.screen=screen.width + "x" + screen.height + "x" + screen.colorDepth;
request(req);
}
function onCountryChange(cb){
var c_code=cb.value;
var banned=new RegExp(Data.bannedCountries,'i').test(c_code);
var banned2=$$1("#billing-country_id, #shipping-country_id, #wire_country_id").collect(function(el){
if(el && isVisible(el) && el != cb){
return el.getValue();
}
}).grep(Data.bannedCountries);
if(banned){
PMSelector.onlyWireOn(c_code);
}else if(banned2.length > 0){
PMSelector.onlyWireOn(banned2[0]);
}else if(bannedCountry){
PMSelector.onlyWireOff();
}
var nm=cb.name.split("-country_id")[0];
if(nm){
var st=$1(""+nm + "-state_id");
if(!st){
return;
}
updStateSelect(st, cb.value);
}
updCart();
}
function setPhonePref(c_code){
var inp=$1("phone"),
n=Selects.phones[c_code];
if(n){
inp.value="+ " + n + " - ";
}else{
inp.value="";
}
}
function onStateChange(cb){
var nm=cb.name.split("-state_id")[0];
if(nm){
var c=$1(""+nm + "-country_id");
var us_ca=c.value == "US" || c.value == "CA";
if(cb.value == "_" && us_ca){
c.selectedIndex=0;
}else if(cb.selectedIndex > 1 && !us_ca){
c.selectedIndex=0;
}
}
}
function whyShippingIsUnavailable(n){
if(moBox.active)return;
var params={mid:n};
var available = isShippingAvailableByCountry(params);
if(available){
available = isShippingAvailableByProducts(params);
}
}
function isShippingAvailable(params){
params.mid=params.mid||customerData.shipping;
var available = isShippingAvailableByCountry(params);
if(available){
available = isShippingAvailableByProducts(params);
}
if(!available && !params.silent){
var tr=$1("#shipmethod_" + params.mid).up("TR");
if(tr)tr.className="error";
}
return available;
}
function isShippingAvailableByProducts(params){
var m=Data.shippingMethods[params.mid], available=true,fp=false,prn,obj,r;
if(m.forbidden)	fp=m.forbidden.products;
if(fp && typeof(fp)!='string') fp=fp.join('|');
if(fp && fp.length > 0){
r=RegExp(fp,'i');
Object.values(checkObj(customerData.cart)).each(function(pr){
if(pr.product && pr.amount > 0 && r.test(pr.product)){
if(!params.silent){
window.scrollTo(0, 0);
moBox.showError(Data.texts.forbiddenShippingByProduct.interpolate({method: m.title, product: pr.product}));
}
available=false;
return;
}
});
}
return available;
}
function isShippingAvailableByCountry(params){
var same_address,sc,m,fc=false;
if(params.req){
if(params.req.same_address == "1"){
sc=params.req["billing-country_id"];
}else{
sc=params.req["shipping-country_id"];
}
}else{
if($F("same_address") == "1"){
sc=$F("billing-country_id");
}else{
sc=$F("shipping-country_id");
}
}
m=Data.shippingMethods[params.mid];
if(m.forbidden)	fc=m.forbidden.countries;
if(fc && typeof(fc)!='string') fc=fc.join('|');
if(fc && fc.length > 0 && new RegExp(fc,'i').test(sc)){
if(!params.silent){
window.scrollTo(0, 0);
moBox.showError(Data.texts.forbiddenShipping.interpolate({method: m.title, country: Selects.countries[sc]}));
}
return false;
}
return true;
}
function submitCoupon(){
var val=$F("coupon");
if(val){
request({coupon: val, action: "submit_coupon"});
}else{
var fld=$1("coupon");
var tr=fld.up("TR");
if(tr)tr.addClassName("error");
moBox.showError(Data.texts.isEmptyCoupon, {focus:fld});
}
}
function checkForbiddenness(){
var t=PMSelector.pm, ul, h, div=$1("forbidden_products"),
sectionDiv=$$1("#section_" + pmType)[0],
cid=$F("billing-country_id");
if(t == "eurodebit" && cid!="" && eurodebit_available_countries.indexOf(cid) < 0){
ul="<li>" + Data.texts.eudebitForbiddenCountry.interpolate({country: "<b>" + Selects.countries[cid] + "</b>"}) + ".</li>";
h="<div>" + Data.texts.forbiddenMethod.interpolate({ul:ul}) + "</div>";
chkFrbSub(div, h, sectionDiv);
return;
}
var minAmount,maxAmount;
try {
if(PMSelector.isCC){
minAmount=Data.paymentMethods.cc[t].min_amount;
maxAmount=Data.paymentMethods.cc[t].max_amount;
}else{
minAmount=Data.paymentMethods[t].min_amount;
maxAmount=Data.paymentMethods[t].max_amount;
}
} catch(e){}
if(minAmount && customerData.cartTotal < minAmount){
ul="<li>" + Data.texts.amountLessThanMin.interpolate({val: moneyFormat(minAmount)}) + ".</li>";
h="<div>" + Data.texts.forbiddenMethod.interpolate({ul:ul}) + "</div>";
chkFrbSub(div, h, sectionDiv);
return;
}else if(maxAmount && customerData.cartTotal > maxAmount){
ul="<li>" + Data.texts.amountOverThanMax.interpolate({val: moneyFormat(maxAmount)}) + ".</li>";
h="<div>" + Data.texts.forbiddenMethod.interpolate({ul:ul}) + "</div>";
chkFrbSub(div, h, sectionDiv);
return;
}
var productsInCart=[];
var obj=checkObj(customerData.cart);
Object.values(obj).each(function(pr){
if(pr.product && pr.amount > 0){
productsInCart.push(pr.product);
}
});
var forbiddenProducts={};
var fp=null,
fp1;
var strNames=PMSelector.isCC ? Strings.ccNames: strNames=Strings.pmNames;
try {
if(PMSelector.isCC){
fp=Data.paymentMethods.cc[t].forbidden.products;
}else{
fp=Data.paymentMethods[t].forbidden.products;
}
} catch(e){}
if(fp && fp.length > 0){
fp.each(function(n1){
productsInCart.each(function(n2){
if(n2.toLowerCase().indexOf(n1.toLowerCase()) >= 0){
fp1=forbiddenProducts[n2];
if(!fp1){
fp1=forbiddenProducts[n2]=[];
}
fp1.push(strNames[t]);
}
});
});
}
var ks=Object.keys(forbiddenProducts);
if(ks.length == 0){
if(div){
div.remove();
sectionDiv.select("input", "select").invoke("enable");
pageBtns.enable();
}
return;
}
ul="";
ks.each(function(k){
ul += "<li>" + Data.texts.ccForbiddenProduct2.interpolate({prod: "<b>" + k + "</b>", cc: "<b>" + strNames[t].replace(/ \(.*?\)/, "") + "</b>"}) + ".</li>";
});
h="<div>" + Data.texts.ccForbiddenProduct1.interpolate({ul: ul}) + "</div>";
chkFrbSub(div, h, sectionDiv);
}
function chkFrbSub(div, h, sectionDiv){
if(div){
div.update(h);
}else{
sectionDiv.insert({before: '<div id="forbidden_products">' + h + "</div>"});
}
pageBtns.disable();
sectionDiv.select("input", "select").invoke("disable");
}
function setCouponDiscount(){
Data.customerInitialData.discount=cloneObject(Data.couponDiscount);
customerData.discount=cloneObject(Data.couponDiscount);
$1("section_coupon").remove();
var t=$1("coupon_discount").previous();
t.update(t.innerHTML.replace(/ \(.*/, " :"));
updCart();
}
var mouseTrail=new function(){
var img, mx, my, on;
this.init=function(){
img=$("loading_img");
};
var move=function(){
img.setStyle({
left: (mx + 15) + "px",
top: (my + 15) + "px",
display: "block"
});
};
this.start=function(){
on=true;
};
this.stop=function(){
img.hide();
on=false;
};
this.track=function(event){
if(!on){
return;
}
mx=Event.pointerX(event);
my=Event.pointerY(event);
move();
};
};
var pageBtns=new function(){
var btns, spans;
this.enable=function(){
getSpans().each(function(s){
s.setOpacity(1);
});
getBtns().each(function(b){
b.enable();
});
};
this.disable=function(){
getSpans().each(function(s){
s.setOpacity(0.5);
});
getBtns().each(function(b){
b.disable();
});
};
var getBtns=function(){
if(!btns){
btns=$$1('input[type="button"]');
}
return btns;
};
var getSpans=function(){
if(!spans){
spans=$$1("span.btn");
}
return spans;
};
};
function changeLanguage(u){
document.cookie="userInfo=" + Form.serializeElements(getUserInfoElements());
document.location.replace(u);
}
function langOnChange(e){
changeLanguage("/checkout.php?lang=" + e.element().getValue());
}
var coo=new function(){
var GetValue=function(Offset){
var End=document.cookie.indexOf(";", Offset);
if(End == -1){
End=document.cookie.length;
}
return unescape(document.cookie.substring(Offset, End));
};
this.get=function(Name){
var Len=Name.length;
var i=0;
while (i < document.cookie.length){
var j=i + Len + 1;
if(document.cookie.substring(i, j) == (Name + "=")){
return GetValue(j);
}
i=document.cookie.indexOf(" ", 1) + 1;
if(i == 0){
break;
}
}
return null;
};
this.set=function(Name, Value, Expire){
var Exp="Friday,25-Feb-2000 12:00:00 GMT";
var date=new Date();
date=new Date(date.getTime() + (Expire * 1000));
document.cookie=Name + "=" + escape(Value) + ";expires=" + date.toGMTString();
};
};
function openSupportWindow(id){
whatIs('http://messenger.providesupport.com/messenger/'+id+'.html', 500, 560);
}
function popItUp(u, w, h){
whatIs(u, w, h);
}
function whatIs(addr, w, h){
var w=w || 500,
h=h || 500,
l=(screen.availWidth - w) / 2,
t=(screen.availHeight - h) / 2,
op="toolbar=no,location=no,directories=no,status=no,scrollbars=yes,resizable=yes,copyhistory=no,width=#{w},height=#{h},left=#{l},top=#{t}";
window.open(addr, "_blank", op.interpolate({w: w,h: h,l: l,t: t}));
}
function isVisible(el){
return el.offsetHeight > 0;
}
function checkObj(obj){
if(obj instanceof Array){
return {};
}else{
return obj;
}
}
function cloneObject(o){
var obj;
if(o instanceof Array){
obj=[];
}else{
obj={};
}
mergeObject(obj, o);
return obj;
}
function mergeObject(obj, o, del){
var exist, val;
for (var i in o){
exist=obj[i] != null;
val=o[i];
if(typeof val == "function"){
continue;
}
if(val === null){
if(del){
delete obj[i];
}else{
obj[i]=null;
}
}else if(typeof val == "object"){
if(!exist){
if(val instanceof Array){
obj[i]=[];
}else{
obj[i]={};
}
}
mergeObject(obj[i], val, del);
}else{
obj[i]=val;
}
}
}
function moneyFormat(x){
return currency + "&nbsp;" + myRound(x,2);
}
function myRound(x, n){
var dec=Math.pow(10, n);
var val=(Math.round(dec * x) / dec).toString();
var i=val.indexOf(".");
var out;
if(i < 0){
out=val + ".00";
}else if(val.length - i == 2){
out=val + "0";
}else{
out=val;
}
return out;
}function drawStateOptions(cid){
var sts=Selects.states[cid];
if(sts){
return drawOptions(sts);
}else{
return "";
}
}
function updStateSelect(st, cid){
var ops=drawStateOptions(cid);
var tr=st.up("tr");
if(ops == ""){
tr.hide();
}else{
tr.show();
st.update(ops);
}
}
function drawOptions(ops, selectedValue, noEmpty, banCheck){
var html;
if(!noEmpty){
if(selectedValue){
html='<option value=""></option>';
}else{
html='<option value="" selected="selected"></option>';
}
}
var r=new RegExp(Data.bannedCountries,'i');
var n, ban, sel;
for (n in ops){
ban="",
sel="";
if(banCheck && r.test(n)){
ban=' class="ban"';
}else if(n == selectedValue){
sel=' selected="selected"';
}
html += "<option" + ban + ' value="' + n + '"' + sel + ">" + ops[n] + "</option>";
}
return html;
}
function drawMonthOptions(){
var h='<option value="" selected="selected"></option>';
var n1, n=0;
while (n < 12){
n++;
n1=n < 10 ? "0" + n: n;
h += '<option value="' + n1 + '">' + n1 + "</option>";
}
return h;
}
function drawYearOptions(){
var n=new Date().getFullYear();
var html='<option value="" selected="selected"></option>';
var n2=n + 8;
while (n < n2){
html += '<option value="' + n + '">' + n + "</option>";
n++;
}
return html;
}
function drawBirthDayOptions(){
var h="",
n1, n=0;
while (n < 31){
n++;
n1=n < 10 ? "0" + n: n;
h += '<option value="' + n1 + '">' + n1 + "</option>";
}
return h;
}
function drawBirthMonthOptions(){
var h="",
n1, n=0;
while (n < 12){
n++;
n1=n < 10 ? "0" + n: n;
h += '<option value="' + n1 + '">' + n1 + "</option>";
}
return h;
}
function drawBirthYearOptions(){
var n=new Date().getFullYear(),
h="",
n1=n - 18,
n2=n - 100;
while (n1 > n2){
h += '<option value="' + n1 + '">' + n1 + "</option>";
n1--;
}
return h;
}
function drawHoursOptions(){
var h="",
n1, n=-1;
while (n < 23){
n++;
n1=n < 10 ? "0" + n: n;
h += '<option value="' + n1 + '">' + n1 + ":00</option>";
}
return h;
}
function drawCountriesOptions(cid){
var n, r, cs=cloneObject(Selects.countries),
ac=Data.availableCountries;
if(ac && ac.length > 0){
r=new RegExp(ac,'i');
for (n in cs){
if(!r.test(n)){
delete cs[n];
}
}
}
return drawOptions(cs, cid, false, true);
}
function myStrip(s){
return s.strip().replace(/\s+/g, " ");
}
function drawFlavourSelect(d){
var ind=d.flavour[0],op_arr=d.flavour[1],
h="",n=-1,sel,d1,flt,flt2;
flt=Data.texts.flavour || "flavour";
flt2=Data.texts.flavourChoose || "";
h += '<option value="-1" selected="selected">Any ' + flt + "</option>";
while(n < op_arr.length - 1){
n++;
d1={n:n,val:op_arr[n]};
if(n == ind){
d1.sel=' selected="selected"';
d1.val += " " + flt;
}
h += '<option value="#{n}"#{sel}>#{val}</option>'.interpolate(d1);
}
return '<select id="flavour_' + d.id + '" name="flavour_' + d.id + '" title="' + flt2 + '">' + h + "</select>";
}
function getUserInfoElements(){
return theForm.getElements().findAll(function(el){ 
return el.name.indexOf('set_')!=0 &&
el.name.indexOf('shipping_method_id')!=0 &&
el.name.indexOf('coupon')!=0 &&
el.type != 'button';
});
}
function isCreditCard(n){
n=n.replace(/[^\d]/g, "");
if(n.length < (((parseInt(n.charAt(0))) == 3) ? 15 : 16)){
return false;
}
var len=n.length;
var parity=len % 2;
var sum=0;
for (i=0; i < len; i++){
var d=Number(n.charAt(i));
if(i % 2 == parity) d=d * 2;
if(d > 9) d=d - 9;
sum += d;
}
return (sum % 10 == 0);
}
function formatCCNumber(n){
n=n.replace(/[^\d]/g, "");
var arr=n.match(/\d{1,4}/g);
if(!arr) return "";
return arr.join(" ");
}
function isCCdateExpired(month, year){
var expires=new Date(year, month, 1);
today=new Date();
var one_day=1000 * 60 * 60 * 24;
return today.getTime() - expires.getTime() >= one_day;
}
function reportError(){
new Ajax.Request("connector.php", {
parameters: {
action: "js_error",
message: arguments[0],
url: arguments[1],
line: arguments[2],
useragent: navigator.userAgent
}
});
return true;
}
var PMSelector=new function(){
var _this=this,
ul, sr, sl, pe, tabIds, tabs, div, divWidth, sel, sections, pmOptions, cc_pic, amex_pic, onlyWireMethods;
this.pm=null;
this.isCC=false;
this.init=function(){
div=$1("method_selector");
sel=$1("payment_method");
cc_pic=$1("cc_pic");
amex_pic=$1("amex_pic");
divWidth=div.getWidth();
draw();
ul=div.down();
onlyWireMethods=["wire", "westernunion", "moneygram"].findAll(function(m){
return Data.paymentMethods[m];
});
Event.observe(sel, "change", _this.setPM.bind(this, sel));
tabs=ul.select("li");
tabs.each(function(el){
Event.observe(el, "mouseover", _this.elOver.bind(this, el));
Event.observe(el, "mouseout", _this.elOut.bind(this, el));
Event.observe(el, "click", _this.setPM.bind(this, el));
});
var lt=tabs.last();
if(lt.getWidth() > 0){
drawScrollers(lt);
}else{
var dspe=new PeriodicalExecuter(function(){
if(lt.getWidth() > 0){
drawScrollers(lt);
dspe.stop();
}
},
0.01);
}
sections={};
$$1("#payment_methods div.section").each(function(s){
sections[s.id.substr(8)]=s;
});
_this.setPM(tabs[0]);
};
var drawScrollers=function(lt){
ul.setStyle({width: divWidth - 12 + "px"});
if(ul.scrollWidth > ul.getWidth()){
sl=new Element("div", {"id": "methods_scroll_left"}).update("&laquo;");
sr=new Element("div", {"id": "methods_scroll_right"}).update("&raquo;");
div.appendChild(sl);
div.appendChild(sr);
Event.observe(sl, "mouseover", _this.scrollLeft);
Event.observe(sl, "mouseout", _this.scrollStop);
Event.observe(sr, "mouseover", _this.scrollRight);
Event.observe(sr, "mouseout", _this.scrollStop);
sl.hide();
}else{
ul.setStyle({width: ""});
}
ul.scrollLeft=0;
};
this.scrollRight=function(){
pe=new PeriodicalExecuter(function(){
if(ul.scrollWidth == ul.scrollLeft + ul.getWidth()){
_this.scrollStop();
sr.hide();
}else{
ul.scrollLeft += 3;
if(!sl.visible()){
sl.show();
}
}
},
0.01);
};
this.scrollLeft=function(){
pe=new PeriodicalExecuter(function(){
if(ul.scrollLeft == 0){
_this.scrollStop();
sl.hide();
}else{
ul.scrollLeft -= 3;
if(!sr.visible()){
sr.show();
}
}
},
0.01);
};
this.scrollStop=function(){
pe.stop();
};
this.elOver=function(el){
if(bannedCountry){
return;
}
if(!el.hasClassName("selected")){
el.setOpacity(0.5);
}
};
this.elOut=function(el){
if(bannedCountry){
return;
}
if(!el.hasClassName("selected")){
el.setOpacity(1);
}
};
this.setPM=function(param){
var el, selVal, id;
if(typeof(param) == "string"){
sel.setValue(param);
el=tabs[tabIds.indexOf(param)];
}else if(param == sel){
el=tabs[sel.selectedIndex];
selVal=sel.getValue();
el=tabs.find(function(s){return s.id.substr(4)==selVal;});
}else if(param.hasClassName("selected")){
return;
}else{
selVal=sel.getValue();
el=param;
id=el.id.substr(4);
if(el.hasClassName("disabled") || bannedCountry && selVal == id){
return;
}
sel.setValue(id);
}
_this.pm=sel.getValue();
tabs.invoke("removeClassName", "selected");
Object.values(sections).invoke("hide");
var cc=Data.paymentMethods.cc;
_this.isCC=cc && Object.keys(cc).indexOf(_this.pm) >= 0;
if(_this.isCC){
sections.cc.show();
ccOnChange();
pmType="cc";
if(_this.pm == "amex"){
cc_pic.hide();
amex_pic.show();
}else{
cc_pic.show();
amex_pic.hide();
}
}else{
sections[_this.pm].show();
pmType=_this.pm;
}
el.setOpacity(1);
el.addClassName("selected");
if(sl){
if(el.offsetLeft + el.getWidth() > ul.getWidth()){
_this.scrollRight();
}else if(el.offsetLeft < ul.scrollLeft){
_this.scrollLeft();
}
}
checkForbiddenness();
};
var tpl={
li: '<li id="tab_#{m}"><img title="#{t}" src="imgs/ajax/#{m}.gif" /></li> ',
op: '<option value="#{m}">#{t}</option>'
};
var draw=function(){
var u="<ul>",
s="";
tabIds=[];
Object.keys(Data.paymentMethods).each(function(k){
if(k == "cc"){
Object.keys(Data.paymentMethods.cc).each(function(k1){
ccTypes.push(k1);
ccAllowedNames.push(Strings.ccNames[k1]);
u += tpl.li.interpolate({m: k1, t: Strings.ccNames[k1]});
s += tpl.op.interpolate({m: k1, t: Strings.ccNames[k1]});
tabIds.push(k1);
});
}else{
u += tpl.li.interpolate({m: k, t: Strings.pmNames[k]});
s += tpl.op.interpolate({m: k, t: Strings.pmNames[k]});
tabIds.push(k);
}
});
u += "</ul>";
div.insert(u);
sel.insert(s);
};
this.onlyWireOn=function(bc){
bannedCountry=bc;
var oldpm=_this.pm;
if(onlyWireMethods.indexOf(oldpm) < 0){
_this.setPM(onlyWireMethods[0]);
}else{
_this.setPM(oldpm);
}
tabs.each(function(el, i){
if(onlyWireMethods.indexOf(el.id.substr(4)) < 0){
el.setOpacity(0.2);
el.addClassName("disabled");
}
});
var ops={},
ms=[];
onlyWireMethods.each(function(m){
ms.push(Strings.pmNames[m]);
ops[m]=Strings.pmNames[m];
});
var ov=$1("only_wire");
if(!ov){
pmOptions=sel.innerHTML;
sel.update(drawOptions(ops, _this.pm, true));
}
var h=Data.texts.bannedCountry.interpolate({
country: Selects.countries[bannedCountry],
methods: ms.join(", ")
});
if(ov){
ov.update(h);
}else{
div.next().insert({top: '<div id="only_wire" class="text warning1">' + h + "</div>"});
}
};
this.onlyWireOff=function(){
bannedCountry=false;
tabs.each(function(el, i){
el.setOpacity(1);
el.removeClassName("disabled");
});
sel.update(pmOptions);
setTimeout(function(){
_this.setPM(_this.pm);
},1);
$1("only_wire").remove();
};
};
var moBox=new function(){
var MB_WIDTH, MB_HEIGHT, contentW, contentH, elementToFocus, bh, MB_, MB_window, MB_content, MB_overlay, MB_HideSelect, MB_WindowTitle, ie6=Prototype.Browser.IE && Prototype.Browser.version < "7.0";
this.active=false;
this.showError=function(html, params){
params=params || {};
params.caption=params.caption || Data.texts.error.capitalize();
moBox.show(html, params);
MB_window.setStyle({borderColor: "#d00"});
MB_content.addClassName("MB_error");
};
this.show=function(html, params){
moBox.active=true;
bh=bh || $$("body, html");
if(!MB_window){
bh[0].insert('<div id="MB_"><div id="MB_overlay"></div><div id="MB_window"><div id="MB_title"><div id="MB_WindowTitle"></div><span class="btn"><input onclick="moBox.mb_remove()" type="button" value="X" title="Close"/></span></div><div id="MB_cont"> </div></div></div>');
MB_=$("MB_");
MB_window=$("MB_window");
MB_overlay=$("MB_overlay");
MB_WindowTitle=$("MB_WindowTitle");
MB_content=$("MB_cont");
if(mb_detectMacXFF()){
MB_overlay.addClassName("MB_overlayMacFFBGHack");
}else{
MB_overlay.addClassName("MB_overlayBG");
}
if(ie6){
MB_.insert('<iframe id="MB_HideSelect"></iframe>');
}
}else{
MB_.show();
}
if(ie6){
bh.invoke("setStyle", {	height: "100%",	width: "100%"});
bh[1].setStyle({overflow: "hidden"});
}
params=params || {};
var caption=params.caption;
if(! (caption && caption != "")){
caption="&nbsp;";
}
MB_WIDTH=(params["width"] * 1) + 30 || 400;
MB_HEIGHT=(params["height"] * 1) + 40 || 200;
contentW=MB_WIDTH - 30;
contentH=MB_HEIGHT - 45;
MB_WindowTitle.update(caption);
html += '<div style="text-align:center;padding:15px 0 0 0;"><span class="btn"><input onclick="moBox.mb_remove()" type="button" value="Close" title="Close"/></span></div>';
MB_content.update(html);
mb_position();
if(params.focus && !params.focus.disabled){
elementToFocus=params.focus;
}
};
this.mb_remove=function(e){
moBox.active=false;
MB_.hide();
MB_window.setStyle({borderColor: ""});
if(ie6){
bh.invoke("setStyle", {height: "auto", width: "auto"});
bh[1].setStyle({overflow: ""});
}
if(elementToFocus){
elementToFocus.focus();
}
elementToFocus=false;
return false;
};
var mb_position=function(){
MB_window.setStyle({marginLeft: "-" + parseInt((MB_WIDTH / 2), 10) + "px", width: MB_WIDTH + "px"});
if (!ie6) {
MB_window.setStyle({marginTop: "-" + parseInt((MB_window.getHeight() / 2), 10) + "px"});
}
};
var mb_detectMacXFF=function(){
var userAgent=navigator.userAgent.toLowerCase();
if(userAgent.indexOf("mac") != -1 && userAgent.indexOf("firefox") != -1){
return true;
}
};
};
var Strings={
hrTR:
'<tr class="hr"><td colspan="6"></td></tr>',
prodTR1:
'<tr id="prod_#{id}" class="selected"><td><img class="pointer" onclick="removeProduct(#{id})" src="imgs/ajax/remove.gif" title="Remove"/></td><td><input class="qty" id="set_#{id}" name="set_#{id}" value="#{amount}"/></td>',
prodTR2:
'<td class="product">#{product}</td><td class="package">#{pckg}</td><td class="price">#{price}</td><td class="subtotal">#{subtotal}</td></tr>',
prodTR3:
'<tr id="prod_#{id}" class="selected"><td></td><td>#{amount}</td>',
prodTR4:
'<tr id="prod_#{id}" class="clickable#{selected}"><td></td><td><input name="bonuses" type="radio" class="radio" id="bonus_#{id}" value="#{id}" #{checked}></td>',
prodTR5:
'<tr id="prod_#{id}" class="selected not_available"><td><img class="pointer" onclick="removeProduct(#{id})" src="imgs/ajax/remove.gif" title="Remove"/></td><td><input class="qty" value="0" readonly="readonly"/></td>',
shipTR:
'<tr class="clickable#{selected}"><td></td><td><input name="shipping_method_id" type="radio" class="radio" value="#{id}" id="shipmethod_#{id}" #{checked}/></td><td>#{title}</td><td>#{delivery}</td><td>#{price}</td><td>#{price1}</td></tr>',
pmNames: {
cc: "Credit card",
wire: "Wire transfer",
eurodebit: "EuroDebit (Online Check EU)",
ach: "ACH (Online Check USA)",
westernunion: "Western Union",
moneygram: "MoneyGram"
},
ccNames: {
visa: 'Visa',
mastercard: 'MasterCard',
amex: 'American Express',
discover: 'Discover',
dinersclub: 'Diners Club',
jcb: 'JCB'
}
};
var ccPattern={
visa: '^4',
mastercard: '^5',
amex: '^3([47]|$)',
dinersclub: '^3(6|$)',
discover: '^6',
jcb: '^3(5|$)([2-8]|$)'
};
var Selects={
states: {
US: {
AL:'Alabama',AK:'Alaska',AZ:'Arizona',AR:'Arkansas',AA:'Armed F. Americas',AE:'Armed F. Other AE',AP:'Armed F. Pacific',CA:'California',CO:'Colorado',CT:'Connecticut',DE:'Delaware',DC:'Dist. of Columbia',FL:'Florida',GA:'Georgia',HI:'Hawaii',ID:'Idaho',IL:'Illinois',IN:'Indiana',IA:'Iowa',KS:'Kansas',KY:'Kentucky',LA:'Louisiana',ME:'Maine',MD:'Maryland',MA:'Massachusetts',MI:'Michigan',MN:'Minnesota',MS:'Mississippi',MO:'Missouri',MT:'Montana',NE:'Nebraska',NV:'Nevada',NH:'New Hampshire',NJ:'New Jersey',NM:'New Mexico',NY:'New York',NC:'North Carolina',ND:'North Dakota',OH:'Ohio',OK:'Oklahoma',OR:'Oregon',PA:'Pennsylvania',RI:'Rhode Island',SC:'South Carolina',SD:'South Dakota',TN:'Tennessee',TX:'Texas',UT:'Utah',VT:'Vermont',VA:'Virginia',WA:'Washington',WV:'West Virginia',WI:'Wisconsin',WY:'Wyoming'
},
AU:{
ACT:'Capital Terr.',NSW:'New South Wales',NT_:'Northern Terr.',QLD:'Queensland',SA:'South Australia',TAS:'Tasmania',VIC:'Victoria',WA_:'Western Australia'
},
CA:{
AB:'Alberta',BC:'British Columbia',MB:'Manitoba',NB:'New Brunswick',NF:'Newfoundland',NT:'Northwest Terr.',NS:'Nova Scotia',NU:'Nunavut',ON:'Ontario',PE:'Prince Edward Isl.',QC:'Quebec',SK:'Saskatchewan',YT:'Yukon'
}
},
countries: {
US:'United States',CA:'Canada',GB:'United Kingdom',AF:'Afghanistan',AL:'Albania',DZ:'Algeria',AS:'American Samoa',AD:'Andorra',AO:'Angola',AI:'Anguilla',AQ:'Antarctica',AG:'Antigua And Barbuda',AR:'Argentina',AM:'Armenia',AW:'Aruba',AU:'Australia',AT:'Austria',AZ:'Azerbaijan',BS:'Bahamas',BH:'Bahrain',BD:'Bangladesh',BB:'Barbados',BY:'Belarus',BE:'Belgium',BZ:'Belize',BJ:'Benin',BM:'Bermuda',BT:'Bhutan',BO:'Bolivia',BA:'Bosnia And Herzegovina',BW:'Botswana',BV:'Bouvet Island',BR:'Brazil',IO:'British Indian Ocean Territory',BN:'Brunei Darussalam',BG:'Bulgaria',BF:'Burkina Faso',BI:'Burundi',KH:'Cambodia',CM:'Cameroon',CV:'Cape Verde',KY:'Cayman Islands',CF:'Central African Republic',TD:'Chad',CL:'Chile',CN:'China',CX:'Christmas Island',CC:'Cocos (Keeling) Islands',CO:'Colombia',KM:'Comoros',CG:'Congo',CD:'Congo',CK:'Cook Islands',CR:'Costa Rica',CI:'Cote D\'ivoire',HR:'Croatia',CU:'Cuba',CY:'Cyprus',CZ:'Czech Republic',DK:'Denmark',DJ:'Djibouti',DM:'Dominica',DO:'Dominican Republic',EC:'Ecuador',EG:'Egypt',SV:'El Salvador',GQ:'Equatorial Guinea',ER:'Eritrea',EE:'Estonia',ET:'Ethiopia',FK:'Falkland Islands (Malvinas)',FO:'Faroe Islands',FJ:'Fiji',FI:'Finland',FR:'France',GF:'French Guiana',PF:'French Polynesia',TF:'French Southern Territories',GA:'Gabon',GM:'Gambia',GE:'Georgia',DE:'Germany',GH:'Ghana',GI:'Gibraltar',GR:'Greece',GL:'Greenland',GD:'Grenada',GP:'Guadeloupe',GU:'Guam',GT:'Guatemala',GN:'Guinea',GW:'Guinea-Bissau',GY:'Guyana',HT:'Haiti',HM:'Heard Island And Mcdonald Islands',VA:'Holy See (Vatican City State)',HN:'Honduras',HK:'Hong Kong',HU:'Hungary',IS:'Iceland',IN:'India',ID:'Indonesia',IR:'Iran, Islamic Republic Of',IQ:'Iraq',IE:'Ireland',IL:'Israel',IT:'Italy',JM:'Jamaica',JP:'Japan',JO:'Jordan',KZ:'Kazakhstan',KE:'Kenya',KI:'Kiribati',KP:'Korea, Democratic People\' Republic Of',KR:'Korea, Republic Of',KW:'Kuwait',KG:'Kyrgyzstan',LA:'Lao Peopl\'s Democratic Republic',LV:'Latvia',LB:'Lebanon',LS:'Lesotho',LR:'Liberia',LY:'Libyan Arab Jamahiriya',LI:'Liechtenstein',LT:'Lithuania',LU:'Luxembourg',MO:'Macao',MK:'Macedonia',MG:'Madagascar',MW:'Malawi',MY:'Malaysia',MV:'Maldives',ML:'Mali',MT:'Malta',MH:'Marshall Islands',MQ:'Martinique',MR:'Mauritania',MU:'Mauritius',YT:'Mayotte',MX:'Mexico',FM:'Micronesia, Federated States Of',MD:'Moldova, Republic Of',MC:'Monaco',MN:'Mongolia',MS:'Montserrat',MA:'Morocco',MZ:'Mozambique',MM:'Myanmar',NA:'Namibia',NR:'Nauru',NP:'Nepal',NL:'Netherlands',AN:'Netherlands Antilles',NC:'New Caledonia',NZ:'New Zealand',NI:'Nicaragua',NE:'Niger',NG:'Nigeria',NU:'Niue',NF:'Norfolk Island',MP:'Northern Mariana Islands',NO:'Norway',OM:'Oman',PK:'Pakistan',PW:'Palau',PS:'Palestinian Territory',PA:'Panama',PG:'Papua New Guinea',PY:'Paraguay',PE:'Peru',PH:'Philippines',PN:'Pitcairn',PL:'Poland',PT:'Portugal',PR:'Puerto Rico',QA:'Qatar',RE:'Reunion',RO:'Romania',
RW:'Rwanda',SH:'Saint Helena',KN:'Saint Kitts And Nevis',LC:'Saint Lucia',PM:'Saint Pierre And Miquelon',VC:'Saint Vincent And The Grenadines',WS:'Samoa',SM:'San Marino',ST:'Sao Tome And Principe',SA:'Saudi Arabia',SN:'Senegal',SC:'Seychelles',SL:'Sierra Leone',SG:'Singapore',SK:'Slovakia',SI:'Slovenia',SB:'Solomon Islands',SO:'Somalia',ZA:'South Africa',GS:'South Georgia',ES:'Spain',LK:'Sri Lanka',SD:'Sudan',SR:'Suriname',SJ:'Svalbard And Jan Mayen',SZ:'Swaziland',SE:'Sweden',CH:'Switzerland',SY:'Syrian Arab Republic',TW:'Taiwan, Province Of China',TJ:'Tajikistan',TZ:'Tanzania, United Republic Of',TH:'Thailand',TL:'Timor-leste',TG:'Togo',TK:'Tokelau',TO:'Tonga',TT:'Trinidad And Tobago',TN:'Tunisia',TR:'Turkey',TM:'Turkmenistan',TC:'Turks And Caicos Islands',TV:'Tuvalu',UG:'Uganda',UA:'Ukraine',AE:'United Arab Emirates',UM:'United States Minor Outlying Islands',UY:'Uruguay',UZ:'Uzbekistan',VU:'Vanuatu',VE:'Venezuela',VN:'Viet Nam',VG:'Virgin Islands, British',VI:'Virgin Islands, U.S.',WF:'Wallis And Futuna',EH:'Western Sahara',YE:'Yemen',YU:'Yugoslavia',ZM:'Zambia',ZW:'Zimbabwe'
},
phones:{
GL:299,DJ:253,JM:1876,AT:43,PG:675,KI:686,SZ:268,YT:269,BN:673,ZM:260,BW:267,AO:244,ZW:263,VC:1784,PR:1787,JP:81,NA:264,TJ:992,LC:1758,MA:212,SV:503,VU:678,MT:356,MN:976,MP:1670,IT:39,WS:685,EG:20,FR:33,PW:680,UZ:998,LR:231,TK:690,BE:32,TN:216,EE:372,CK:682,BY:375,LS:266,NO:47,SA:966,KR:82,ZA:27,PT:351,BF:226,CA:1,AM:374,CM:237,SR:597,MG:261,NP:977,BT:975,PL:48,CF:236,TM:993,AE:971,BA:387,TH:66,KY:1345,PH:63,CC:61,NI:505,NC:687,GU:1671,KZ:7,MM:95,NR:674,DM:1767,NE:227,MR:222,AD:376,TO:676,SE:46,AZ:994,AF:93,NG:234,KE:254,BJ:229,OM:968,VG:1284,VN:84,CI:225,DZ:213,YE:967,LK:94,ID:62,FM:691,GE:995,GM:220,CX:61,LV:371,RU:7,LB:961,FK:500,FI:358,DE:49,MV:960,LU:352,VE:58,BH:973,GI:350,WF:681,RO:40,GP:590,IN:91,AR:54,VI:1340,TV:688,SN:221,AW:297,MX:52,FO:298,MC:377,HN:504,BR:55,IL:972,SB:677,DO:1809,NZ:64,HU:36,UG:256,KH:855,GB:44,BB:1246,HT:509,DK:45,PA:507,QA:974,CV:238,GD:1473,GF:594,MO:853,KM:269,KW:965,HR:385,TC:1649,MQ:596,CZ:420,ES:34,MZ:258,BO:591,AU:61,ST:239,AL:355,IR:98,CG:242,MD:373,TR:90,GN:224,GW:245,BI:257,MK:389,GR:30,AG:1268,CO:57,SI:386,AI:1264,AQ:672,AN:599,JO:962,SM:378,UA:380,CL:56,CU:53,KN:1869,ML:223,ET:251,SC:248,IS:354,NL:31,MS:1664,HK:852,EC:593,MY:60,CR:506,VA:39,SD:249,CN:86,MH:692,BG:359,UY:598,BS:1242,PY:595,TL:670,MU:230,LI:423,CH:41,GH:233,NU:683,US:1,PE:51,SL:232,BZ:501,CY:357,FJ:679,IE:353,TW:886,KP:850,PF:689,ER:291,IQ:964,AS:1684,MW:265,TZ:255,GT:502,GY:592,BM:1441,PK:92,GQ:240,LT:370,SG:65,PM:508,TT:1868,NF:672,TD:235,BD:880,PS:970
}
}
var eurodebit_available_countries=["DE","AT","CH","NL"];