function RGBtoHex(rgb) {var rgb = rgb.replace('rgb(','').replace(')','').split(',');var R = rgb[0];var G = rgb[1];var B = rgb[2];return toHex(R)+toHex(G)+toHex(B)}
function toHex(N) { if (N==null) return "00";N=parseInt(N); if (N==0 || isNaN(N)) return "00";N=Math.max(0,N); N=Math.min(N,255); N=Math.round(N); return "0123456789ABCDEF".charAt((N-N%16)/16) + "0123456789ABCDEF".charAt(N%16);}
function tosIFR( ){
	var template = arguments[0]
	var replacement = template.sSelector;
	if ($$(replacement) && $$(replacement).first() &&  $$(replacement).first().getStyle('color') ) {
		var color = $$(replacement).first().getStyle('color')
		
		if (color.indexOf('rgb(') != -1){
			color = "#"+RGBtoHex(color);
		}
		
		var new_template = template
			new_template.sSelector = replacement;
			new_template.sColor = color;
			
		sIFR.replaceElement( named( new_template ) );
	}
}

/* Register form */
function user_register(){
	var validator = new Validation('registerform', {onSubmit : true});
	Validation.addAllThese([
		['validate-email-custom', 'Please enter a valid email address. For example fred@domain.com .', function (v) {
			/*return !Validation.get('IsEmpty').test(v) && /\w{1,}[@][\w\-]{1,}([.]([\w\-]{1,})){1,3}$/.test(v)*/
			return !Validation.get('IsEmpty').test(v) &&  /^((([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+(\.([a-z]|\d|[!#\$%&'\*\+\-\/=\?\^_`{\|}~]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])+)*)|((\x22)((((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(([\x01-\x08\x0b\x0c\x0e-\x1f\x7f]|\x21|[\x23-\x5b]|[\x5d-\x7e]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(\\([\x01-\x09\x0b\x0c\x0d-\x7f]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF]))))*(((\x20|\x09)*(\x0d\x0a))?(\x20|\x09)+)?(\x22)))@((([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|\d|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.)+(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])|(([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])([a-z]|\d|-|\.|_|~|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])*([a-z]|[\u00A0-\uD7FF\uF900-\uFDCF\uFDF0-\uFFEF])))\.?$/.test(v)
		}],
		['validate-email-confirm', 'Uw bevestigingse-mail komt niet overeen met de ingevoerde e-mailadres.', {
			equalToField : 'email',
			notOneOf : ['test@test.nl']	
		}]
	]);

	if (validator.validate()) {
		$('errormsg','registerform').invoke('hide');
		$('current_email').update($F('email'));
		$('cart_save_user').show();
		setTimeout(function(){register();},2000);
	}else{
		show_error_registerform();
	}
}



function show_error_registerform(){
	$('errormsg').show();
}

function register(){
	new Ajax.Request('/www/scripts/task.php?goto=step3', {
	  parameters : $('registerform').serialize(true),
	  method: 'post',
	  onSuccess  : function(t) {
		var response = fullData = t.responseText.split('**');
		if (response[0] == 'true'){
			window.location.href = '/betaalmethode/';
		}else{
			alert('Er is een fout opgetreden met registreren. Probeer het nog eens.');
		}
	  }
	});
}

function order_save(){
	var debug = false;
	new Ajax.Request('/www/scripts/task.php?goto=save_order', {
	  parameters : $('registerform').serialize(true),
	  method: 'post',
	  onSuccess  : function(t) {
		response = fullData = t.responseText.split('**');
		if(debug == true){
			alert(t.responseText);
		}else{
			if(response[0]) {
				if(response[1] == 1) {
					//iDeal response
					window.location.href = response[2];	
				}else{
					window.location.href = '/bedankt/?order=saved';
				}
			}else{
				window.location.href = '/fout/';
			}
		}
	  }
	});
}

function approve_checkbox(){
	$('delivery_company', 'delivery_address', 'delivery_address_number', 'delivery_postalcode', 'delivery_country', 'delivery_city').invoke('clear');
	if($('approved').checked) {
		$('fieldset-delivery').hide();
	}else{
		$('fieldset-delivery').appear();
	}
}

function set_issuer(id) {
	$('issuerID').value = id;
}

function validate_paymentform(){
	$('errormsg').hide();
	var validator = new Validation('paymentform', {onSubmit : false});
	Validation.addAllThese([
		['validate-one-required', 'Please select one of the above options.', function (v,elm) {
			var p = elm.parentNode;
			var options = p.getElementsByTagName('INPUT');
			return $A(options).any(function(elm) {
				return $F(elm);
			});
		}]
	]);

	if (validator.validate()) {
		return true;
	}else{
		show_error_registerform();
		return false;
	}
}