function checkRegisterForm(el) {
	checkRequired(el);
	var emailRegEx = /^[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,8}$/i;
	if (el.email.value != el.emailverify.value) {
		$(el.email).addClassName('error');
		$(el.emailverify).addClassName('error');
	} else {
		$(el.email).removeClassName('error');
		$(el.emailverify).removeClassName('error');
	}
	if (el.email.value.search(emailRegEx) == -1) {
		$(el.email).addClassName('error');
		$(el.emailverify).addClassName('error');
	} else {
		$(el.email).removeClassName('error');
		$(el.emailverify).removeClassName('error');
	}
	if (el.pass.value != el.passverify.value || el.pass.value.length < 8) {
		$(el.pass).addClassName('error');
		$(el.passverify).addClassName('error');
	} else {
		$(el.pass).removeClassName('error');
		$(el.passverify).removeClassName('error');
	}
	if (countAge($(el.birthYear).value, $(el.birthMonth).value,
			$(el.birthDay).value) < 18) {
		$('birthDayError').addClassName("error");
		$(el.birthDay).addClassName('error');
		$(el.birthMonth).addClassName('error');
		$(el.birthYear).addClassName('error');
	} else {
		$('birthDayError').removeClassName("error");
		$(el.birthDay).removeClassName('error');
		$(el.birthMonth).removeClassName('error');
		$(el.birthYear).removeClassName('error');
	}
	if (el.cellPhone.value == "" && el.phone.value == "") {
		$(el.cellPhone).addClassName('error');
		$(el.phone).addClassName('error');
	} else {
		$(el.cellPhone).removeClassName('error');
		$(el.phone).removeClassName('error');
		if (el.cellPhone.value != ""
				&& el.cellPhone.value.length < el.cellPhone
						.getAttribute("minlength")) {
			$(el.cellPhone).addClassName('error');
		} else {
			$(el.cellPhone).removeClassName('error');
		}
		if (el.phone.value != ""
				&& el.phone.value.length < el.phone.getAttribute("minlength")) {
			$(el.phone).addClassName('error');
		} else {
			$(el.phone).removeClassName('error');
		}
	}
	var haveErrors = $(el).select('.error');
	if (haveErrors.length > 0)
		return false;
	else
		el.submit();
}
function SaveSettings(el) {
	checkRequired(el);
	if ($(el.birthYear)) {
		if (countAge($(el.birthYear).value, $(el.birthMonth).value,
				$(el.birthDay).value) < 18) {
			$('birthDayError').addClassName("error");
			$(el.birthDay).addClassName('error');
			$(el.birthMonth).addClassName('error');
			$(el.birthYear).addClassName('error');
		} else {
			$('birthDayError').removeClassName("error");
			$(el.birthDay).removeClassName('error');
			$(el.birthMonth).removeClassName('error');
			$(el.birthYear).removeClassName('error');
		}
	}
	var haveErrors = $(el).select('.error');
	if (haveErrors.length > 0)
		return false;
	else
		el.submit();
}
function countAge(y, m, d) {
	var now = new Date();
	if (y && m && d) {
		var born = new Date(y, m * 1 - 1, d);
		var years = new Date(now.getTime() - born.getTime());
		var base = new Date(0);
		var age = years.getFullYear() - base.getFullYear();
		return age;
	}
	return 0;
}
function checkRequired(el) {
	var required = $(el).select('.required');
	var verify = true;
	for ( var i = 0; i < required.length; i++) {
		if (required[i].value == ""
				|| required[i].value.length < required[i]
						.getAttribute("minlength")) {
			required[i].addClassName('error');
			verify = false;
		} else {
			required[i].removeClassName('error');
		}
	}
	return verify;
}
function preCalc() {
	var form = $('transactionForm');
	if (!form)
		return false;
	form.doTransaction.disabled = true;
	form.amount.value = form.amount.value.replace(",", ".");
	if (isNaN(Number(form.amount.value.replace(",", ".")))) {
		$(form.amount).addClassName("error");
	} else {
		$(form.amount).removeClassName("error");
	}
	$('payCurrency').innerHTML = form.fromAccount.options[form.fromAccount.selectedIndex]
			.getAttribute("lang");
	$('receiveCurrency').innerHTML = form.toAccount.options[form.toAccount.selectedIndex]
			.getAttribute("lang");
	if ((form.fromAccount.options[form.fromAccount.selectedIndex].title == form.toAccount.options[form.toAccount.selectedIndex].title && form.fromAccount.options[form.fromAccount.selectedIndex].lang == form.toAccount.options[form.toAccount.selectedIndex].lang)
			|| (form.fromAccount.options[form.fromAccount.selectedIndex].title == 'SEK' && form.toAccount.options[form.toAccount.selectedIndex].title == 'BANK')
			|| (form.fromAccount.options[form.fromAccount.selectedIndex].title == 'BANK' && form.toAccount.options[form.toAccount.selectedIndex].title == 'BANK')) {
		form.toAccount.selectedIndex = 0;
	}
	if (form.fromAccount.options[form.fromAccount.selectedIndex].title == 'BANK'
			|| form.fromAccount.options[form.fromAccount.selectedIndex].title == 'SEK') {
		form["service[advancepay]"].disabled = false;
		var advanceDisabled = false;
	} else {
		form["service[advancepay]"].disabled = true;
		var advanceDisabled = true;
	}
	if (form.fromAccount.options[form.fromAccount.selectedIndex]
			.getAttribute("lang") == form.toAccount.options[form.toAccount.selectedIndex]
			.getAttribute("lang")) {
		form["service[fixedrate]"].disabled = true;
		var fixedDisabled = true;
	} else {
		form["service[fixedrate]"].disabled = false;
		var fixedDisabled = false;
	}
	if (form.advanceDisabled.value == "1")
		var advanceDisabled = true;
	if (form["service[fixedrate]"].checked) {
		form["service[advancepay]"].disabled = true;
	} else {
		if (advanceDisabled != true)
			form["service[advancepay]"].disabled = false;
	}
	if (form["service[advancepay]"].checked) {
		form["service[fixedrate]"].disabled = true;
	} else {
		if (fixedDisabled != true)
			form["service[fixedrate]"].disabled = false;
	}
	if (form.fromAccount.value != "" && form.toAccount.value != "") {
		$('amounts').setStyle( {
			display : 'block'
		});
		if (form.amount.value > 0) {
			$('services').setStyle( {
				display : 'block'
			});
			$('submitButton').setStyle( {
				display : 'block'
			});
		} else {
			$('services').setStyle( {
				display : 'none'
			});
			$('submitButton').setStyle( {
				display : 'none'
			});
		}
	} else {
		$('amounts').setStyle( {
			display : 'none'
		});
		$('services').setStyle( {
			display : 'none'
		});
		$('submitButton').setStyle( {
			display : 'none'
		});
	}
	if (form.fromAccount.value == "" || form.toAccount.value == ""
			|| form.amount.value <= 0) {
		$('preview').setStyle( {
			display : 'none'
		});
		return false;
	}
	new Ajax.Request(
			'/calc.php',
			{
				parameters : form.serialize(),
				onSuccess : function(req) {
					var data = eval('(' + req.responseText + ')');
					$('payAmount').innerHTML = Math.round(data.payAmount * 100) / 100;
					$('getAmount').innerHTML = Math.round(data.getAmount * 100) / 100;
					try {
						$('fromAccount').innerHTML = data.fromAccount.accountNumber
								+ ' ('
								+ data.fromAccount.typeName
								+ ' '
								+ data.fromAccount.currencyName + ')';
						$('toAccount').innerHTML = data.toAccount.accountNumber
								+ ' (' + data.toAccount.typeName + ' '
								+ data.toAccount.currencyName + ')';
						$('fromCurrency').innerHTML = data.fromAccount.currencyName;
						$('toCurrency').innerHTML = data.toAccount.currencyName;
						form.payAmount.value = data.payAmount;
						form.getAmount.value = data.getAmount;
						form.rate.value = data.rate;
						form.feeAmount.value = data.feeAmount;
						form.feeType.value = data.feeType;
						form.fee.value = data.feeOrg;
					} catch (e) {
						alert(e.message);
					}
					
					if (data.getAmount <= 0) {
						form.doTransaction.disabled = true;
						$('transTooSmall').setStyle( {
							display : 'block'
						});
					} else {
						form.doTransaction.disabled = false;
						$('transTooSmall').setStyle( {
							display : 'none'
						});
					}
					if (data.outOfBound == true) {
						form.doTransaction.disabled = true;
						$('outOfBound').setStyle( {
							display : 'block'
						});
					} else {
						form.doTransaction.disabled = false;
						$('outOfBound').setStyle( {
							display : 'none'
						});
					}
					if (data.notUnique == true) {
						form.doTransaction.disabled = true;
						$('notUnique').setStyle( {
							display : 'block'
						});
					} else {
						form.doTransaction.disabled = false;
						$('notUnique').setStyle( {
							display : 'none'
						});
					}
					if (data.notUnique == true || data.outOfBound == true
							|| data.getAmount <= 0) {
						form.doTransaction.disabled = true;
						$('preCalc').setStyle( {
							display : 'none'
						});
					} else {
						$('preCalc').setStyle( {
							display : ''
						});
					}
					if (data.rate == 1) {
						$('rateInfo').setStyle( {
							display : 'none'
						});
					} else {
						$('rateInfo').setStyle( {
							display : ''
						});
					}
					if (data.service.smsreceipt) {
						$('smsFee').setStyle( {
							display : ''
						});
					} else {
						$('smsFee').setStyle( {
							display : 'none'
						});
					}
					if (data.service.fixedrate) {
						$('fixedFee').setStyle( {
							display : ''
						});
					} else {
						$('fixedFee').setStyle( {
							display : 'none'
						});
					}
					if (data.service.advancepay) {
						if (data.feeType == 'minimum') {
							$('advanceFee' + data.toAccount.currencyName)
									.setStyle( {
										display : ''
									});
							$('advanceFee').setStyle( {
								display : 'none'
							});
						} else {
							$('advanceFee').setStyle( {
								display : ''
							});
							$('advanceFeeSEK').setStyle( {
								display : 'none'
							});
							$('advanceFeeUSD').setStyle( {
								display : 'none'
							});
							$('advanceFeeEUR').setStyle( {
								display : 'none'
							});
						}
					} else {
						$('advanceFee').setStyle( {
							display : 'none'
						});
						$('advanceFeeSEK').setStyle( {
							display : 'none'
						});
						$('advanceFeeUSD').setStyle( {
							display : 'none'
						});
						$('advanceFeeEUR').setStyle( {
							display : 'none'
						});
					}
					$('currentRate').innerHTML = Math.round(data.rate * 10000) / 10000;
					if (data.buysellrate == "buy")
						$('buysellrate').innerHTML = 'Sälj';
					else
						$('buysellrate').innerHTML = 'Köp';
					if (data.feeType == 'minimum')
						$('currentFee').innerHTML = data.feeAmount
								+ ' '
								+ form.fromAccount.options[form.fromAccount.selectedIndex]
										.getAttribute("lang");
					else
						$('currentFee').innerHTML = data.feePercentage + '%';
					$('preview').setStyle( {
						display : 'block',
						background : "#ffffff"
					});
					new Effect.Highlight($('preview'), {
						startcolor : '#ffaa33',
						endcolor : '#ffffff',
						restorecolor : true
					});
				},
				onFailure : function(req) {
					alert(req.responseText);
				}
			});
}
function SetTransactionStatus(hash, statusId) {
	new Ajax.Request('/my/editTransaction.php',
			{
				parameters : '&doUpdateStatus=1&hash=' + hash + '&statusId='
						+ statusId,
				onSuccess : function(req) {
					document.location.href = document.location.href;
				},
				onFailure : function(req) {
					alert("Kunde inte uppdatera order");
				}
			});
}
Event.observe(window, 'load', function() {
	$$('.number').each(
			function(el) {
				el.onkeydown = function(e) {
					if (!e)
						var e = window.event;
					if ((e.keyCode > 45 && e.keyCode < 58)
							|| (e.keyCode > 95 && e.keyCode < 106)
							|| e.keyCode == 8 || e.keyCode == 9)
						return true;
					else
						return false;
				}
			});
	$$('.alpha').each(
			function(el) {
				el.onkeydown = function(e) {
					if (!e)
						var e = window.event;
					if ((e.keyCode > 64 && e.keyCode < 90) || e.keyCode == 32
							|| e.keyCode == 109 || e.keyCode == 8
							|| e.keyCode == 192 || e.keyCode == 221
							|| e.keyCode == 222 || e.keyCode == 9)
						return true;
					else
						return false;
				}
			});
});
function addAccountForm(form) {
	if (form.accountType.value < 1)
		return false;
	$(form.bankName).removeClassName("required").removeClassName("error").parentNode.parentNode.style.display = 'none';
	$(form.swift).removeClassName("required").removeClassName("error").parentNode.parentNode.style.display = 'none';
	$(form.accountNumber).removeClassName("required").removeClassName("error").parentNode.parentNode.style.display = 'none';
	$(form.clearingNumber).removeClassName("required").removeClassName("error").parentNode.parentNode.style.display = 'none';
	$(form.description).parentNode.parentNode.style.display = 'none';
	if (form.accountType.options[form.accountType.selectedIndex].title == 'BANK USD') {
		$(form.bankName).addClassName("required").parentNode.parentNode.style.display = 'block';
		$(form.swift).addClassName("required").parentNode.parentNode.style.display = 'block';
		$(form.accountNumber).addClassName("required").parentNode.parentNode.style.display = 'block';
		$(form.description).parentNode.parentNode.style.display = 'block';
	} else if (form.accountType.options[form.accountType.selectedIndex].title == 'BANK SEK') {
		$(form.bankName).addClassName("required").parentNode.parentNode.style.display = 'block';
		$(form.accountNumber).addClassName("required").parentNode.parentNode.style.display = 'block';
		$(form.clearingNumber).addClassName("required").parentNode.parentNode.style.display = 'block';
	} else {
		$(form.accountNumber).addClassName("required").parentNode.parentNode.style.display = 'block';
	}
}
function viewTerms() {
	if (window.showModalDialog) {
		window.showModalDialog("/terms.php", "Terms",
				"dialogWidth:350px;dialogHeight:450px");
	} else {
		window
				.open(
						'/terms.php',
						'Terms',
						'height=450,width=350,toolbar=no,directories=no,status=no,continued from previous linemenubar=no,scrollbars=no,resizable=no ,modal=yes');
	}
}
function markAll(inputname, check) {
	for ( var i = 0; i < check.form.elements.length; i++) {
		if (check.form.elements[i].name.match(inputname)) {
			check.form.elements[i].checked = check.checked;
		}
	}
}
function help(elm, str) {
	new Ajax.Request(
			'/help.php',
			{
				parameters : '&string=' + str,
				onSuccess : function(req) {
					try {
						var help = req.responseText;
						if (!$('pop')) {
							var lightbox = $(document.createElement('div'));
							lightbox.id = 'pop';
						} else {
							var lightbox = $('pop');
						}
						lightbox.innerHTML = help
								+ '<a href="javascript:void(0)" class="floatRight" onclick="$(\'pop\').hide()">Stäng</a>';
						$(elm.parentNode).insert( {
							after : lightbox
						});
						lightbox.show();
					} catch (e) {
						alert(e.message);
					}
				}
			});
	return false;
}

function sendConfirmation(hash)
{
	new Ajax.Request('/my/editTransaction.php',
	{
		parameters : '&doSendConfirmation=1&hash=' + hash,
		onSuccess : function(req) {
			alert('Specifikation skickad!');
		},
		onFailure : function(req) {
			alert("Kunde inte skicka specifikation");
		}
	});
}

function sortTransList(what) {
	var vars = document.location.search.substring(1).split('&');
	var newsearch = '';
	var ascdesc;
	var orderby = '';
	for ( var i = 0; i < vars.length; i++) {
		if (vars[i].indexOf('ascdesc') != -1) {
			var t = vars[i].split("=");
			ascdesc = t[1];
		} else if (vars[i].indexOf('orderby') != -1) {
			var t = vars[i].split("=");
			orderby = t[1];
		} else {
			var t = vars[i].split("=");
			newsearch += vars[i] + '&';
		}
	}
	if (what == orderby) {
		if (ascdesc == "desc")
			ascdesc = 'asc';
		else if (ascdesc == 'asc')
			ascdesc = 'desc';
		else
			ascdesc = 'asc';
	} else {
		ascdesc = 'asc';
	}
	document.location.search = '?' + newsearch + 'ascdesc=' + ascdesc + '&'
			+ 'orderby=' + what;
}
function clearForm(f) {
	for ( var i = 0; i < f.length; i++) {
		if (f[i].type == "text") {
			f[i].value = '';
		}
		if (f[i].type == "select-one") {
			f[i].selectedIndex = 0;
		}
	}
}

