var g_isError; 
var g_calId = 0;
var kod_caption = "kod pocztowy i miasto";
var ulica_caption = "ulica i nr domu";

function IsEmpty(value) 
{
	if ((value==null) || 
		(value.length==0))		 
      	return true;   
   else 
		return false; 
}	

function ValidEmail(email)
{
	var filter=/^.+@.+\..{2,3}$/	
 	return filter.test(email);
}

function AddError(error)
{
	$("#error").append(error+"<br />");	
	g_isError = true;
}

function CopyFrom(to)
{
	from = to - 1;
	$("#imie_"+to)[0].value = $("#imie_"+from)[0].value;
	$("#telefon_"+to)[0].value = $("#telefon_"+from)[0].value;
	$("#kod_"+to)[0].value = $("#kod_"+from)[0].value;
	$("#ulica_"+to)[0].value = $("#ulica_"+from)[0].value;
}

function AddCalendar(imie, nazwisko, telefon, email, format, orientacja, wzor, ilosc)
{
	++g_calId;

	var format_value = $("select[@name=format]").attr('value');
	var orientacja_value = $("select[@name=orientacja]").attr('value');
	var wzor_value = $("input[@name=wzor]").attr('value'); 

	var line = imie+' '+nazwisko+' / ';
	line += 'kal '+g_calId+' / ';	
	line += format_value + ' / ';
	if (format >= 4 &&
	    format <= 7) {
        line += wzor_value + ' / ';
	} else 
	if (format < 15)
	{	 
		line += orientacja_value + ' / ';	
		line += wzor_value + ' / ';
	}
	line += ilosc;
	
	if (g_calId > 1)
	{
		var im = $("#imie_"+(g_calId-1))[0].value;
		var tel = $("#telefon_"+(g_calId-1))[0].value;
		var kc = $("#kod_"+(g_calId-1))[0].value;
		var uc = $("#ulica_"+(g_calId-1))[0].value;
	}
	else
	{
		var im = imie+' '+nazwisko;
		var tel = telefon;
		var kc = kod_caption;
		var uc = ulica_caption;
	}
	
	var str = 
'<p>'+
'<input type="hidden" name="format[]" value="'+format+'" />'+
'<input type="hidden" name="orientacja[]" value="'+orientacja+'" />'+
'<input type="hidden" name="wzor[]" value="'+wzor+'" />'+
'<input type="hidden" name="ilosc[]" value="'+ilosc+'" />'+
'<label class="span"><strong>Kalendarz '+g_calId+':</strong></label>'+
'<span>'+line+'</span>'+            
'</p>'+
            
'<p class="short">'+
'<input type="text" id="imie_'+g_calId+'" name="imie_adr[]" value="'+im+'" />'+
'<input type="text" id="telefon_'+g_calId+'" name="telefon_adr[]" value="'+tel+'" />'+
'</p>'+
            
'<p class="short">'+
'<input type="text" id="kod_'+g_calId+'" name="miasto_adr[]" onfocus="focus_element(\'kod\','+g_calId+', kod_caption)" value="'+kc+'" />'+
'<input type="text" id="ulica_'+g_calId+'" name="ulica_adr[]" onfocus="focus_element(\'ulica\','+g_calId+', ulica_caption)" value="'+uc+'" />';

if (g_calId > 1)
{
	str += '<a class="copy" href="javascript:void(0);" onclick="CopyFrom('+(g_calId)+');">kopiuj adres z góry</a>';
} 

str += '</p>'; 

	$("#cal").append(str);
	
	$("select[@name=format]")[0].selectedIndex = 0;
	$("select[@name=orientacja]")[0].selectedIndex = 0;	
	$("input[@name=wzor]")[0].value = "";
	$("input[@name=ilosc]")[0].value = "";
}

function focus_element(eid,id,caption)
{
	var eid = "#"+eid+"_"+id;
	var value = $(eid)[0].value;
	if (value == caption)	
		$(eid).attr("value","");		
}

function CanSubmit()
{
	ClearErrors();
	if (g_calId == 0) 
	{		
		AddError("Należy dodać przynajmniej 1 kalendarz.");
		DisplayErrors();		
		return false;
	}
	
	for (var i=1; i <= g_calId; i++)
	{
		var kid = "#kod_"+i;
		var uid = "#ulica_"+i;
		var kod = $(kid)[0].value;
		var ulica = $(uid)[0].value;
		if ((kod == kod_caption) || 
			(IsEmpty(kod)))
		{
			AddError("Proszę uzupełnić kod pocztowy i adres");
			$(kid).focus();
			DisplayErrors();
			return false;
		}
		if ((ulica == ulica_caption) ||
			(IsEmpty(ulica)))
		{
			AddError("Proszę uzupełnić ulicę i nr domu");
			$(uid).focus();
			DisplayErrors();
			return false;
		}
	}
	
	return true;
}

function DisplayErrors()
{
	$("#error").css("display","block");	
}

function ClearErrors()
{
	g_isError = false;
	$("#error").empty().css("display","none");
}

function checkData()
{
	ClearErrors();
	var imie = $("input[@name=imie]")[0].value;
	var nazwisko = $("input[@name=nazwisko]")[0].value;
	var telefon = $("input[@name=telefon]")[0].value;
	var email = $("input[@name=email]")[0].value;
	var format = $("select[@name=format]")[0].selectedIndex
	var orientacja = $("select[@name=orientacja]")[0].selectedIndex	
	var wzor = $("input[@name=wzor]")[0].value;
	var ilosc = Math.round($("input[@name=ilosc]")[0].value);
	
	if (IsEmpty(imie)) AddError('Pole Imię jest wymagane.');
	if (IsEmpty(nazwisko)) AddError('Pole nazwisko jest wymagane.');
	if (IsEmpty(telefon)) AddError('Pole telefon jest wymagane.');
	if (IsEmpty(email)) AddError('Pole e-mail jest wymagane.');
	else if (!ValidEmail(email)) AddError('Nieprawidłowy adres e-mail.');
	if (format == 0) AddError('Proszę wybrać format kalendarza');
	if (format >= 4 &&
	    format <= 6) {
        if (IsEmpty(wzor)) AddError('Pole wzór jest wymagane.');
	} else 
	if (format < 15)
	{
		if (orientacja == 0) AddError('Proszę wybrać orientację kalendarza');
		if (IsEmpty(wzor)) AddError('Pole wzór jest wymagane.');
	}
	if (isNaN(ilosc) || 
	ilosc <= 0) AddError('Pole ilość jest wymagane');
	
	
	if (g_isError)	
		DisplayErrors();
	else	
		AddCalendar(imie, nazwisko, telefon, email, format, orientacja, wzor, ilosc);		

	return false;	
}

$(document).ready(function()
{	
	$("#id_add").click( function() 
	{ 
		checkData();
	});
	
	$("select[@name=format]").change(function() 
    {
        $("select[@name=orientacja]")[0].disabled = false;
        $("input[@name=wzor]")[0].disabled = false;
        
		var si = $("select[@name=format]")[0].selectedIndex;
		if (si >= 4 &&
		    si <= 6) {
			$("select[@name=orientacja]")[0].disabled = true;
		}
		else
		if (si >= 15) {
			$("select[@name=orientacja]")[0].disabled = true;
			$("input[@name=wzor]")[0].disabled = true;
		}
	});
	
	$("#id_submit").click(function()
	{
		return CanSubmit();
	});
});