function formValidatorPaymentBanner(form) {
	checkedCount = getCheckboxCheckedCount(form, 'payment\\[domain]\\[.*]');

	if ( checkedCount == 0 ) {
		alert("Válasszon honlapot");
		return false;
	}

	if ( parseInt(form["payment[order_total]"].value) < parseInt(form["payment[order_min]"].value) ) {
		alert("Minimum rendelési összeg: " + priceFormat(form["payment[order_min]"].value) + " Ft");
		return false;
	}

	return true;
}


function formValidatorPayment(form) {
	element = form["payment[bill_zip]"];
	if ( element != null && checkVisibility(element) ) {
		var pattern = /\d{4}/;
		if( !pattern.test(element.value) ) {
			element.className += ' inputAlert';
			element.focus();
			alert("Nem megfelelő formátum!");
			return false;
		}
	}

	element = form["payment[postal_zip]"];
	if ( element != null && checkVisibility(element) ) {
		var pattern = /\d{4}/;
		if( !pattern.test(element.value) ) {
			element.className += ' inputAlert';
			element.focus();
			alert("Nem megfelelő formátum!");
			return false;
		}
	}

	return true;
}

function checkedAllDomain(form) {
	setCheckboxChecked(form, 'payment\\[domain]\\[.*]', form["payment[all_domain]"].checked);

	calculateBannerTotalPrice(form);
}

function calculateBannerTotalPrice(form) {
	var type           = form["payment[type]"].value;
	var periodNumber   = 0;
	var domainNumber   = 0;
	var chargeTotal    = 0;
	var offerTotal     = 0;

	if ( form["payment[period]"].value > 0 ) {
		periodNumber = parseInt(form["payment[period]"].value);
	}

	totalDomainNumber = getCheckboxCount(form, 'payment\\[domain]\\[.*]');
	checkedDomainNumber = getCheckboxCheckedCount(form, 'payment\\[domain]\\[.*]');
	chargeMonth = getCheckboxCheckedSumma(form, 'payment\\[domain]\\[.*]');

	chargeTotal = chargeMonth*periodNumber;

	//több hónap esetén 3% kedvezmény havonta a második hónaptól, maximum 33%
	if ( periodNumber > 1 ) {
		offerMultiplier = Math.min(0.03*(periodNumber-1), 0.33);
		offer = Math.round(chargeTotal * offerMultiplier);
		chargeTotal -= offer;
		offerTotal += offer;
	}

	//Az összes honlap kiválasztása esetén 50% kedvezmény
	if ( checkedDomainNumber == totalDomainNumber ) {
		offerMultiplier = 0.5;
		offer = Math.round(chargeTotal * offerMultiplier);
		chargeTotal -= offer;
		offerTotal += offer;

		form["payment[all_domain]"].checked = true;
	}
	else {
		form["payment[all_domain]"].checked = false;
	}

/*
	//több honlap esetén 1% kedvezmény honlaponként a második honlaptól, maximum 50%
	if ( checkedDomainNumber > 1 ) {
		offerMultiplier = Math.min(0.01*(checkedDomainNumber-1), 0.5);
		offer = Math.round(chargeTotal * offerMultiplier);
		chargeTotal -= offer;
		offerTotal += offer;
	}
*/

	form["payment[order_total]"].value = chargeTotal;

	if ( chargeTotal > 0 ) {
		amountString = priceFormat(chargeTotal);
		amountString += " Ft";

		offerString = "";
		if ( offerTotal > 0 ) {
			offerString = priceFormat(offerTotal);
			offerString = " &nbsp;&nbsp; (kedvezmény: " + offerString + " Ft)";
		}
		document.getElementById("total_charge_" + type).innerHTML = amountString + offerString;
	}
	else {
		document.getElementById("total_charge_" + type).innerHTML = "Válasszon honlapot";
	}
}

function changePaymentPeriod(form) {
	var type           = form["payment[type]"].value;
	var periodNumber   = 0;
	var chargeMonth    = parseInt(form["payment[charge][month]"].value);
	var chargeTotal    = 0;

	if ( form["payment[period]"].value > 0 ) {
		periodNumber = parseInt(form["payment[period]"].value);
	}

	
	chargeTotal = chargeMonth*periodNumber;

	if ( chargeTotal > 0 ) {
		amountString = chargeTotal + '';
		var rgx = /(\d+)(\d{3})/;
		while (rgx.test(amountString)) {
			amountString = amountString.replace(rgx, '$1' + '.' + '$2');
		}
		document.getElementById("total_charge_" + type).innerHTML = amountString + " Ft";
	}
	else {
		document.getElementById("total_charge_" + type).innerHTML = "Válasszon időszakot";
	}
}

function copyPaymentBillAddress(form) {
	form["payment[postal_name]"].value   = form["payment[bill_name]"].value;
	form["payment[postal_zip]"].value    = form["payment[bill_zip]"].value;
	form["payment[postal_town]"].value   = form["payment[bill_town]"].value;
	form["payment[postal_street]"].value = form["payment[bill_street]"].value;
}

function showPaymentOrderForm(id) {
	document.getElementById("order_button_" + id).style.display = "none";
	document.getElementById("order_form_" + id).style.display = "";
}
function showPaymentOrderForm2(id, pay_mode) {
	document.getElementById("order_button_" + id).style.display = "none";
	document.getElementById("order_form_" + id).style.display = (pay_mode == "sms" ? "" : "none");
	document.getElementById("order_form_transfer_" + id).style.display = (pay_mode == "transfer" ? "" : "none");
}


function getCheckboxCount(form, patternString) {
	var totalCount = 0;
	var pattern = new RegExp('(^' + patternString + '$)');

	for ( i=0; i<form.elements.length; i++ ) {
		if ( form.elements[i].type=="checkbox" ) {
			if ( pattern.test(form.elements[i].name) ) {
				totalCount++;
			}
		}
	}

	return totalCount;
}

function getCheckboxCheckedCount(form, patternString) {
	var checkedCount = 0;
	var pattern = new RegExp('(^' + patternString + '$)');

	for ( i=0; i<form.elements.length; i++ ) {
		if ( form.elements[i].type=="checkbox" ) {
			if ( pattern.test(form.elements[i].name) ) {
				if ( form.elements[i].checked ) {
					checkedCount++;
				}
			}
		}
	}

	return checkedCount;
}

function setCheckboxChecked(form, patternString, checked) {
	var checkedCount = 0;
	var pattern = new RegExp('(^' + patternString + '$)');

	for ( i=0; i<form.elements.length; i++ ) {
		if ( form.elements[i].type=="checkbox" ) {
			if ( pattern.test(form.elements[i].name) ) {
				form.elements[i].checked  = checked;
			}
		}
	}

	return checkedCount;
}

function getCheckboxCheckedSumma(form, patternString) {
	var checkedSumma = 0;
	var pattern = new RegExp('(^' + patternString + '$)');

	for ( i=0; i<form.elements.length; i++ ) {
		if ( form.elements[i].type=="checkbox" ) {
			if ( pattern.test(form.elements[i].name) ) {
				if ( form.elements[i].checked ) {
					checkedSumma += form.elements[i].value * 1;
				}
			}
		}
	}

	return checkedSumma;
}

function priceFormat(amount) {
	var amountString = amount + '';
	var rgx = /(\d+)(\d{3})/;
	while (rgx.test(amountString)) {
		amountString = amountString.replace(rgx, '$1' + '.' + '$2');
	}

	return amountString;
}

