function urlEncode(str)
{
	return encodeURIComponent(str).replace(/!/g, '%21').replace(/'/g, '%27').replace(/\(/g, '%28').
    	replace(/\)/g, '%29').replace(/\*/g, '%2A').replace(/%20/g, '+');

}

function do2miejsc(value)
{
	var result= Math.floor(value) + '.';
	var cents = 100 * (value-Math.floor(value)) + 0.5;
	result += Math.floor(cents / 10);
	result += Math.floor(cents % 10);
	return result;
}

function zmienZakladke()
{
	var docDaneKlienta 		= document.getElementById('dane_klienta');
	var docInnyAdres 		= document.getElementById('inny_adres');
	var chbxInnyOdbiorca 	= document.getElementById('chbxInnyOdbiorca');
	var inputInnyOdbiorca 	= document.getElementById('innyodb');
	
	if (chbxInnyOdbiorca.checked == true)
	{
		docInnyAdres.style.display = '';
		inputInnyOdbiorca.value = 'y';
	}
	else
	{
		docInnyAdres.style.display = 'none';
		inputInnyOdbiorca.value = 'n';
	}
}

/* kod pocztowy - dopuszczalne formy xx-yyy lub xxyyy */
function sprawdzKodPocztowy(kod, langVer)
{
	var reKodPocztowy = langVer == 'oryg' ? /^\d{2}-?\d{3}$/ : /^([\w-]){0,10}$/;
	return kod.match(reKodPocztowy) != null ? true : false;
}

var atrKlient = new Array('imie', 'nazwisko', 'ulica', 'dom', 'kod', 'kod1', 'kod2', 'miasto', 'telefon', 'email');
var atrInnyAdres = new Array('odbimie', 'odbnazw', 'odbkom', 'odbulica', 'odbdom', 'odbkod', 'odbmiasto');

function sprawdzDaneDostawy()
{
	var inputInnyOdb = document.getElementById('innyodb');
	var isError = false;
	var emailEmpty = false;
	var emailValid = true;
	
	/* Sprawdzenie kodu rabatowego */
	if ( !przeliczZamowienie(true)) {
		return false;
	}
	
	if (inputInnyOdb.value == 'n')
	{
		for (var i = 0, cnt = atrKlient.length; i < cnt; i++)
		{
			try
			{
				var id = document.getElementById(atrKlient[i]);
				var idError = document.getElementById(atrKlient[i]+'_error');
				
				/* email */
				if (atrKlient[i] == 'email' && id.value != '')
				{
					var reEmail = /^([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)$/i;
					if (!id.value.match(reEmail))
					{
						id.style.border = '1px solid #dd0000';
						idError.style.display = '';
						isError = true;
						emailValid = false;
					}
					else
					{
						id.style.border = '';
						idError.style.display = 'none';
					}
					continue;
				}
				if ( ( atrKlient[i] == 'kod' || atrKlient[i] == 'kod1' ) && id.value != '' )
				{
					var kodValue = id.value;
					if (atrKlient[i] == 'kod1')
					{
						var kod2 = document.getElementById('kod2');
						kodValue = id.value + '-' + kod2.value;
					}
					if (!sprawdzKodPocztowy(kodValue, LANG_VER))
					{
						isError = true;
						
						id.style.border = '1px solid #dd0000';
						
						if (atrKlient[i] == 'kod1')
						{
							kod2.style.border = '1px solid #dd0000';
							document.getElementById('kod1_error').style.display = '';
						}
						else
						{
							idError.style.display = '';
						}
					}
					else
					{
						id.style.border = '';
						if (atrKlient[i] == 'kod1')
						{
							kod2.style.border = '';
						}
						idError.style.display = 'none';
					}
					continue;
				}
				
				if (id.value == '')
				{
					id.style.border = '1px solid #dd0000';
					idError.style.display = '';
					isError = true;
					
					if (atrKlient[i] == 'email')
					{
						emailEmpty = true;
					}
				}
				else
				{
					id.style.border = '';
					idError.style.display = 'none';
				}			
			}
			catch(ex)
			{
				continue;
			}
		}
		if (!emailEmpty && emailValid)
		{
			if (!idKH)
			{
				var loader = document.getElementById('loader');
				var email = document.getElementById('email').value;
				advAJAX.get(
						{
							url: "/tpl/view/check_email.php?email="+urlEncode(email),
							onInitialization : function()
							{
								loader.style.display = '';
							},
							onSuccess : function(obj)
							{
								if (obj.responseText != '1')
								{
									document.getElementById('email_exists_error').style.display = '';
									isError = true;			
								}
								else
								{
									document.getElementById('email_exists_error').style.display = 'none';
								}
								//alert(obj.responseText);
							},
							onError : function(obj)
							{
								alert('Ajax error!');
								loader.style.display = 'none';
							},
							onFinalization : function()
							{
								loader.style.display = 'none';
								if (isError)
								{
									alert(lang['koszyk']['wypelnijDaneDostawy']);
								}
								//alert(isError);
								if(!isError)
								{
									document.getElementById('form').submit();
								}
								return !isError;
							}
						}
				);
			}
			else 
			{
				return !isError;
			}
		}
		return false;
	}
	else if (inputInnyOdb.value == 'y')
	{
		for (var i = 0, cnt = atrInnyAdres.length; i < cnt; i++)
		{
			try
			{
				var id = document.getElementById(atrInnyAdres[i]);
				var idError = document.getElementById(atrInnyAdres[i]+'_error');
				
				if (id.value == '')
				{
					id.style.border = '1px solid #dd0000';
					idError.style.display = '';
					isError = true;
				}
				else
				{
					id.style.border = '';
					idError.style.display = 'none';
				}
			}
			catch(ex)
			{
				continue;
			}
		}
	}
	//alert(isError);
	if (isError)
	{
		alert(lang['koszyk']['wypelnijDaneDostawy']);
	}
	return !isError;
}

function focusOnKod2(obj, target)
{
	if (obj.value.length == 2)
	{
		document.getElementById(target).focus();
	}
}

function przeliczZamowienie(zlozZamowienie)
{
	var kod = document.getElementById('kod_rabatowy').value;
	var reKod = /^\w{12}$/;
	if (!kod.match(reKod)) {
		if (zlozZamowienie && kod.length == 0) {
			return true;
		} else {
			alert(lang['koszyk']['kodNieprawidlowy']);
			return false;
		}
	}
	if (zlozZamowienie && document.getElementById('cpr_container').style.display == 'none') {
		alert(lang['koszyk']['przeliczAbyObliczyc']);
		return false;
	} else if (zlozZamowienie) {
		return true;
	}
	var loader = document.getElementById('loader');
	advAJAX.get(
			{
				url: "/tpl/view/przelicz_zamowienie.php?kod="+urlEncode(kod),
				onInitialization : function()
				{
					loader.style.display = '';
				},
				onSuccess : function(obj)
				{
					//alert(obj.responseText);
					if (obj.responseText == '0') {
						loader.style.display = 'none';
						alert(lang['koszyk']['kodNiepoprawny']);
						location.reload(true);
					} else {
						var jsonData = eval('(' + obj.responseText + ')');
						//alert(jsonData);
						var sumaRabat = 0;
						var kwotaZam = 0;
						var kwotaZamBezRabatu = 0;
						
						var kwotaTransport = parseFloat(document.getElementById('platnosc_kwota').innerHTML);
							
						for(var i = 0, cnt = jsonData.results.length; i < cnt; i++)
						{
							try {
								var idKoszyk = parseInt(jsonData.results[i].id);
								var wartosc = parseFloat(jsonData.results[i].wartosc);
								var wartosc_rabat = parseFloat(jsonData.results[i].wartosc_rabat);
								if (wartosc_rabat > 0) {	
									document.getElementById('cpr_container_id_'+idKoszyk).style.display = '';
									document.getElementById('cena_przed_rabatem_id_'+idKoszyk).innerHTML = wartosc.toFixed(2);
									document.getElementById('cena_id_'+idKoszyk).innerHTML = (wartosc - wartosc_rabat).toFixed(2);
									
									kwotaZamBezRabatu += wartosc;
									kwotaZam += (wartosc - wartosc_rabat);
									sumaRabat += wartosc_rabat;
								}
							} catch(ex) {
								alert(ex.message);
							}
						}
						
						kwotaZam += kwotaTransport;
						kwotaZamBezRabatu += kwotaTransport;
						
						if (sumaRabat > 0) {
							try {
								document.getElementById('suma_rabatu_container').style.display = '';
								document.getElementById('suma_rabatu').innerHTML = sumaRabat.toFixed(2);
								
								document.getElementById('cenakoncowa1').innerHTML = kwotaZam.toFixed(2);
								document.getElementById('cenakoncowa2').innerHTML = kwotaZam.toFixed(2);
								
								document.getElementById('cpr_container').style.display = '';
								document.getElementById('cena_przed_rabatem').innerHTML = kwotaZamBezRabatu.toFixed(2);
							} catch (ex) {
								alert(ex.message);
							}
						}
					}
				},
				onError : function(obj)
				{
					alert('Ajax error!');
				},
				onFinalization : function()
				{
					loader.style.display = 'none';
					return false;
				}
			}
	);
}
