var javascript_rules = {
    'a' : function(el) {
        el.onclick = function() {
            if (this.href.search(/js=/) == -1) {
                var url = this.href;
                var newUrl = '';
                var add = '?js=1';
                if (this.href.search(/\?/) > -1) {
                    add = '&js=1';
                }
                newUrl = this.href.replace('#',add + '#');
                if (url == newUrl) {
                    this.href += add;
                } else {
                    this.href = newUrl;
                }
            }
        }
    }
}
Behaviour.register(javascript_rules);
var rollover_rules = {
    'img.rollover' : function(el) {
        el.onmouseover = function() {
            parts = this.src.match(/^(.+)\.(\w+)$/);
            if (parts[1] != null && parts[1].match(/_ro/) == null ) {
                this.src = parts[1] + "_ro." + parts[2];
            }
        };
        el.onmouseout = function() {
            parts = this.src.match(/^(.+)_ro\.(\w+)$/);
            if (parts != null ) {
                this.src = parts[1] + "." + parts[2];
            }
        }
    },
    'a.rollover_orange' : function(el) {
        el.onmouseover = function() {
            var image = this.getElementsByTagName("img")[0];
            var parts = image.src.match(/^(.+)\.(\w+)$/);
            if (parts[1] != null && parts[1].match(/_orange/) == null ) {
                image.src = parts[1] + "_orange." + parts[2];
            }
        };
        el.onmouseout = function() {
            var image = this.getElementsByTagName("img")[0];
            var parts = image.src.match(/^(.+)_orange\.(\w+)$/);
            if (parts != null ) {
                image.src = parts[1] + "." + parts[2];
            }
        }
    },
    'ul.nav li' : function(el) {
        el.onmouseover = function() {
            this.className = 'MenuItemOver';
        };
        el.onmouseout = function() {
            this.className = 'MenuItem';
        };
    },
    'a.tip' : function(el) {
        el.onmouseover = function() {
            gettip(this.getElementsByTagName("img")[0].src.replace(/_small/,""));
        };
        el.onclick = function() {
            return false;
        }
    }
}
Behaviour.register(rollover_rules);
var cart_rules = {
	'input.cart_add' : function(el){
	    el.onclick = function() {
	        if (!is_digit(this.form.quantity.value)) {
	            alert("Vul het aantal in.");
	            this.form.quantity.focus();
	        } else if (this.form.articleID.value == "") {
	            alert("Maak uw keuze.");
	            this.form.articleID.focus();
	        } else {
                getSmallCart(this.form.quantity.value,this.form.articleID.value,'addtocart');
	        }
            return false;
	    }
	},
	'input.cart_update' : function(el){
	    el.onclick = function() {
	        if (is_digit(this.form.quantity.value)) {
                updateCart(this.form.quantity.value,this.form.articleID.value,'updatecart');
	        } else {
	            alert("Vul het aantal in.");
	            this.focus();
	        }
            return false;
	    }
	},
	'input.cart_delete' : function(el) {
	    el.onclick = function() {
	        updateCart(0,this.form.articleID.value,'deletefromcart');
	        return false;
	    }
	},
	'select.article' : function(el) {
	    el.onchange = function() {
	        getPhoto(this.form.capID.value,this.value,'','');
	    }
	},
	'select.size_color' : function(el) {
	    el.onchange = function() {
	        getPhoto(this.form.capID.value,this.value,'',this.form.sizeID.value);
	    }
	},
	'select.color_size' : function(el) {
	    el.onchange = function() {
	        getPhoto(this.form.capID.value,this.value,this.form.colorID.value,'');
	    }
	},
	'select.js_only' : function(el) {
	    el.style.display = "inline";
	},
	'select.no_js' : function(el) {
	    el.style.display = "none";
	}
};
Behaviour.register(cart_rules);
var popup_rules = {
    'a.popup' : function(el) {
        el.onclick = function() {
            window.open(this.href,
                'PopUp',
                'width=684,height=350,top=200,left=50%,scrollbars=0,status=no,resizable=0,toolbar=0,titlebar=0,menubar=0,location=0');
            return false;
        }
    },
    'a.status' : function(el) {
        el.onmouseover = function() {
            window.status=this.title;
            return true;
        };
        el.onmouseout = function() {
            window.status='';
            return true;
        }
    }
}
Behaviour.register(popup_rules);
var checkout_rules = {
    'form.auto_submit' : function(el) {
        el.submit();
    },
    'form.password' : function(el) {
        el.onsubmit = function() {
          if(this.password1.value != this.password2.value) {
              setError("password","Uw wachtwoorden zijn ongelijk.");
              return false;
          } else if (!check_pw(this.password1.value)){
              setError("password","Uw wachtwoord is ongeldig. Minimaal 2 cijfers en 6 karakters.");
              return false;
          } else {
              return true;
          }
       }
    },
    'form.register' : function(el) {
        el.onsubmit = function() {
            var submit = true;
            if (this.firstname.value == "") {
                setError("firstname","Vul uw voornaam in.");
                submit = false;
            } else {
                unsetError("firstname");
            }
            if (this.lastname.value == "") {
                setError("lastname","Vul uw naam in.");
                submit = false;
            } else {
                unsetError("lastname");
            }
            if (!this.gender[0].checked && !this.gender[1].checked) {
                setError("gender","Vul uw aanhef in.");
                submit = false;
            } else {
                unsetError("gender");
            }
            if (this.address.value == "") {
            	setError("address","Vul uw adres in.");
                submit = false;
            } else {
                unsetError("address");
            }
            if (/^(\d{4})$/.test(this.postcode1.value) == false) {
                setError("postcode","Uw postcode is onjuist.");
                submit = false;
            } else {
                unsetError("postcode");
            }
            if (this.postcode2.value && /^([a-zA-z]{2})$/.test(this.postcode2.value) == false) {
                setError("postcode","Uw postcode is onjuist.");
                submit = false;
            } else {
                unsetError("postcode");
            }
            if (this.city.value == "") {
            	setError("city","Vul de plaatsnaam in.");
                submit = false;
            } else {
                unsetError("city");
            }
            if (/^[\w-.]+@[\w-.]+\.\w{2,}$/.test(this.email.value) == false) {
            	setError("email","Vul een geldig e-mailadres in.");
                submit = false;
            } else {
                unsetError("email");
            }
            if (this.shipping_firstname.value == "" && !this.shipping.checked) {
            	setError("shipping_firstname","Vul de voornaam in.");
                submit = false;
            } else {
                unsetError("shipping_firstname");
            }
            if (this.shipping_lastname.value == "" && !this.shipping.checked) {
            	setError("shipping_lastname","Vul de achternaam in.");
                submit = false;
            } else {
                unsetError("shipping_lastname");
            }
            if (!this.shipping_gender[0].checked && !this.shipping_gender[1].checked && !this.shipping.checked) {
              	setError("shipping_gender","Vul uw aanhef in.");
                submit = false;
            } else {
                unsetError("shipping_gender");
            }
            if (this.shipping_address.value == "" && !this.shipping.checked) {
            	setError("shipping_address","Vul het verzend adres in.");
                submit = false;
            } else {
                unsetError("shipping_address");
            }
            if (/^(\d{4})$/.test(this.shipping_postcode1.value) == false && !this.shipping.checked) {
                setError("shipping_postcode","De postcode is onjuist.");
                submit = false;
            } else {
                unsetError("shipping_postcode");
            }
            if (this.shipping_postcode2.value && /^([a-zA-z]{2})$/.test(this.shipping_postcode2.value) == false && !this.shipping.checked) {
                setError("shipping_postcode","De postcode is onjuist.");
                submit = false;
            } else {
                unsetError("shipping_postcode");
            }
            if (this.shipping_city.value == "" && !this.shipping.checked) {
            	setError("shipping_city","Vul de plaatsnaam in.");
                submit = false;
            } else {
                unsetError("shipping_city");
            }
            if (this.shipping_country.value == "" && !this.shipping.checked) {
            	setError("shipping_country","Vul het land in.");
                submit = false;
            } else {
                unsetError("shipping_country");
            }
            if (this.command.value == "update") {
                if (this.password1.value != "" && !check_pw(this.password1.value)) {
                	setError("password","Uw wachtwoord is ongeldig. Minimaal 2 cijfers en 6 karakters.");
                	submit = false;
                }
                else if(this.password1.value != this.password2.value) {
                	setError("password","Uw nieuwe wachtwoorden zijn ongelijk.");
                    submit = false;
                } else {
                    unsetError("password");
                }
            }
            if (this.command.value == 'register2') {
                if (!check_pw(this.password1.value)) {
                	setError("password","Uw wachtwoord is ongeldig. Minimaal 2 cijfers en 6 karakters.");
                	submit = false;
                } else if (this.password1.value =='') {
                	setError("password","Vul uw wachtwoord in.");
                	submit = false;
                } else if (this.password2.value =='') {
                	setError("password","Vul uw wachtwoord in.");
                	submit = false;
                } else {
                    unsetError("password");
                }
            }
            return submit;
        }
    },
    '#cb_shipping' : function(el) {
        el.onclick = function() {
            if (this.checked) {
                hide('shippingdetails');
            } else {
                show('shippingdetails');
            }
        }
    },
    'input.auto_upper' : function(el) {
        el.onblur = function() {
            toUpper(this)
        };
        el.onchange = function() {
            toUpper(this)
        };
    },
    'input.auto_blur' : function(el) {
        el.onfocus = function() {
            this.className="fields_on auto_blur";
        };
        el.onblur = function() {
            this.className="fields_off auto_blur";
        }
    }
}
Behaviour.register(checkout_rules);
