/*funkcja walidująca dane osoby fizycznej (zamówienie)
  -----------------------------------------------
*/
function checkPersonData()
{	/*pobieranie formularza*/
	form=document.getElementById('mainForm');
		/*name*/
	validation_result=changeInputBackground(isCorrectString(form.elements['name'].value),form.elements['name']);
		/*last_name*/
	validation_result=changeInputBackground(isCorrectString(form.elements['last_name'].value),form.elements['last_name']) && validation_result;
		/*mail*/
	validation_result=changeInputBackground(isCorrectMail(form.elements['email'].value),form.elements['email']) && validation_result;
		/*phone*/
	validation_result=changeInputBackground(isPhoneNumber(form.elements['phone'].value),form.elements['phone']) && validation_result;
		/*postal_code*/
	validation_result=changeInputBackground(isPostalCode(form.elements['postal_code'].value),form.elements['postal_code']) && validation_result;
		/*city*/
	validation_result=changeInputBackground(isCorrectString(form.elements['city'].value),form.elements['city']) && validation_result;
	
	return validation_result;
}
/*---------------------------------------------*/

/*funkcja walidująca dane firmy (zamówienie)
  -----------------------------------------------
*/
function checkCompanyData()
{	/*pobieranie formularza*/
	form=document.getElementById('mainForm');
		/*orderer_name*/
	validation_result=changeInputBackground(isCorrectString(form.elements['orderer_name'].value),form.elements['orderer_name']);
		/*receiver_name*/
	validation_result=changeInputBackground(isCorrectString(form.elements['receiver_name'].value),form.elements['receiver_name']) && validation_result;
		/*company_mail*/
	validation_result=changeInputBackground(isCorrectMail(form.elements['company_mail'].value),form.elements['company_mail']) && validation_result;
		/*company_phone*/
	validation_result=changeInputBackground(isPhoneNumber(form.elements['company_phone'].value),form.elements['company_phone']) && validation_result;
		/*company_postal_code*/
	validation_result=changeInputBackground(isPostalCode(form.elements['company_postal_code'].value),form.elements['company_postal_code']) && validation_result;
		/*company_city*/
	validation_result=changeInputBackground(isCorrectString(form.elements['company_city'].value),form.elements['company_city']) && validation_result;
		/*nip*/
	validation_result=changeInputBackground(isNip(form.elements['nip'].value),form.elements['nip']) && validation_result;
	
	return validation_result;
}
/*---------------------------------------------*/

/*funkcja walidująca dane adresowe (zamówienie)
  -----------------------------------------------
*/
function checkAddressData()
{	/*pobieranie formularza*/
	form=document.getElementById('mainForm');
		/*addres_street*/
	validation_result=changeInputBackground((form.elements['addres_street'].value!=''),form.elements['addres_street']);
		/*addres_postal_code*/
	validation_result=changeInputBackground(isPostalCode(form.elements['addres_postal_code'].value),form.elements['addres_postal_code']) && validation_result;
		/*addres_city*/
	validation_result=changeInputBackground(isCorrectString(form.elements['addres_city'].value),form.elements['addres_city']) && validation_result;
	
	return validation_result;
}
/*---------------------------------------------*/


/*funkcja walidująca formularz z zamówieniem
  -----------------------------------------------
*/
function validateOrderForm()
{	/*pobieranie formularza*/
	form=document.getElementById('mainForm');
	
	/*tablica z wymaganymi polami*/
	if(form.elements['orderer_type'].value=='person')
	{	form_elements=new Array('name','last_name','email','street','postal_code','city','phone');
	}
	else
	{	form_elements=new Array('company','orderer_name','receiver_name','company_mail','company_phone','company_street','company_postal_code','company_city','nip');
	}
	
	if(isImportantFilled(form,form_elements)==false)
	{	alert('Proszę uzupełnić wszystkie pola wymagane.');
		return false;
	}
	
	/*walidacja danych*/
	if(form.elements['orderer_type'].value=='person')
	{	/*osoba fizyczna*/
		form_validation=checkPersonData();
	}
	else
	{	/*firma*/
		form_validation=checkCompanyData();
	}
		/*adres dostawy*/
	if(!form.elements['same_address'].checked)
	{	form_validation=checkAddressData();
	}
	
	if(form_validation)
	form.submit();
	else
	alert('Nie wszystkie pola zostały poprawnie wypełnione.');
	
	return false;
}
/*---------------------------------------------*/

/*funkcja walidująca formularz na stronie oferta dla flot
  -----------------------------------------------
*/
function validateFleetForm()
{	/*pobieranie formularza*/
	form=document.getElementById('mainForm');
	
	/*tablica z wymaganymi polami*/
	form_elements=new Array('name','last_name');
	
	/*sprawdzanie czy pola wymagane zostały wypełnione*/
	if(isImportantFilled(form,form_elements)==false)
	{	alert('Proszę uzupełnić wszystkie pola wymagane.');
		return false;
	}
	
	/*sprawadzenie poprawności pól*/
		/*name*/
	form_validation=changeInputBackground(isCorrectString(form.elements['name'].value),form.elements['name']);
		/*last_name*/
	form_validation=changeInputBackground(isCorrectString(form.elements['last_name'].value),form.elements['last_name']) && form_validation;
		/*phone_number*/
	if(form.elements['phone_number'].value!='')
	form_validation=changeInputBackground(isPhoneNumber(form.elements['phone_number'].value),form.elements['phone_number']) && form_validation;
		/*mail*/
	if(form.elements['email'].value!='')
	form_validation=changeInputBackground(isCorrectMail(form.elements['email'].value),form.elements['email']) && form_validation;
		/*ilość samochodów*/
	if(form.elements['amount_passenger'].value!='')
	form_validation=changeInputBackground(isIntegerString(form.elements['amount_passenger'].value,true),form.elements['amount_passenger']) && form_validation;
	if(form.elements['amount_truck'].value!='')
	form_validation=changeInputBackground(isIntegerString(form.elements['amount_truck'].value,true),form.elements['amount_truck']) && form_validation;
	if(form.elements['amount_delivery'].value!='')
	form_validation=changeInputBackground(isIntegerString(form.elements['amount_delivery'].value,true),form.elements['amount_delivery']) && form_validation;
	
	
	if(form_validation)
	form.submit();
	else
	alert('Nie wszystkie pola zostały poprawnie wypełnione.');
	
	return false;
}
/*---------------------------------------------*/

/*funkcja walidująca formularz na stronie oferta hurtowa
  -----------------------------------------------
*/
function validateSaleForm()
{	/*pobieranie formularza*/
	form=document.getElementById('mainForm');
	
	/*tablica z wymaganymi polami*/
	form_elements=new Array('name','last_name');
	
	/*sprawdzanie czy pola wymagane zostały wypełnione*/
	if(isImportantFilled(form,form_elements)==false)
	{	alert('Proszę uzupełnić wszystkie pola wymagane.');
		return false;
	}
	
	/*sprawadzenie poprawności pól*/
		/*name*/
	form_validation=changeInputBackground(isCorrectString(form.elements['name'].value),form.elements['name']);
		/*last_name*/
	form_validation=changeInputBackground(isCorrectString(form.elements['last_name'].value),form.elements['last_name']) && form_validation;
		/*phone_number*/
	if(form.elements['phone_number'].value!='')
	form_validation=changeInputBackground(isPhoneNumber(form.elements['phone_number'].value),form.elements['phone_number']) && form_validation;
		/*mail*/
	if(form.elements['email'].value!='')
	form_validation=changeInputBackground(isCorrectMail(form.elements['email'].value),form.elements['email']) && form_validation;
	
	if(form_validation)
	form.submit();
	else
	alert('Nie wszystkie pola zostały poprawnie wypełnione.');
	
	return false;
}
/*---------------------------------------------*/

/*funkcja przełączająca między polami formularza
  parametry:
	informator		-	zmienna informująca o tym, który formularz pokazujemy
  -----------------------------------------------
*/
function formHider(informator)
{	part_to_show=informator;
	part_to_hide=(informator=='person' ? 'company' : 'person');
	
	/*część do pokazania*/
	document.getElementById('head_'+part_to_show).style.textDecoration='underline';
	document.getElementById('form_'+part_to_show).style.display='block';
	
	/*część do ukrycia*/
	document.getElementById('head_'+part_to_hide).style.textDecoration='none';
	document.getElementById('form_'+part_to_hide).style.display='none';
	
	/*wartość pola hidden*/
	form=document.getElementById('mainForm');
	form.elements['orderer_type'].value=informator;
}
/*---------------------------------------------*/

/*
		FUNKCJE ZWIĄZANE Z OBSŁUGĄ KOSZYKA
*/
/*funkca wysyłająca ilość wybranych produktów, sprawdzająca najpier czy w inpucie jest liczba całkowita
  parametry:
	link_almost_hole	-	nazwa elementu, który chcemy dodać
	amount_part			-	id elementu, z którego pobieramy
  -----------------------------------------------
*/
function sendAmountWithMe(link_almost_hole,amount_part)
{	how_many_tire_do_u_want=document.getElementById('amount_'+amount_part).value;
	if(isInteger(how_many_tire_do_u_want,true))
	{	window.location.href=link_almost_hole+'/'+how_many_tire_do_u_want;
	}
	else
	return false;
}
/*---------------------------------------------*/
var ab_interval_holder=0;
/*usuwanie elementu z koszyka
  parametry:
	checkbox_element	-	element, który klikneliśmy
	product_name		-	nazwa produktu
	my_host_url			-	adres hosta
  -----------------------------------------------
*/
function deleteTireFromCart(checkbox_element,product_name,my_host_url)
{	if(1)//confirm('Czy napewno chcesz usunąć '+product_name+' z koszyka?'))
	{	/*jeżeli klient potwierdzi usuwanie elementu*/
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		return;
		
		/*pobieranie id elementu*/
		url=my_host_url+"Koszyk/Usun/"+checkbox_element.value;
		
		xmlHttp.onreadystatechange = function() 
		{	if (xmlHttp.readyState==4 && xmlHttp.status==200)
			{	if(xmlHttp.responseText!='')
				{	/*usuwanie elemntu z tabelki*/
					document.getElementById(checkbox_element.value).style.opacity='0.9';
					document.getElementById(checkbox_element.value).style.filter='alpha(opacity=90)';
					ab_interval_holder=setInterval('hideTire(\''+checkbox_element.value+'\',\'cart_with_products\')',100);					
					
					/*uaktualnianie liczby produktów*/
					products_no=document.getElementById('how_many_products').innerHTML;
					products_no_array=products_no.split(' ');
					document.getElementById('how_many_products').innerHTML=(parseInt(products_no_array[0])-1)+' '+products_no_array[1];
					
					document.getElementById('big_price').innerHTML='<span style="color:#FFAA00;">'+xmlHttp.responseText+'&nbsp;zł</span>';
				}
			} 
		};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
}
/*---------------------------------------------*/

/*funkcja wygaszająca, a następnie usuwająca wybraną opone
  parametry:
	tire_element_id		-	id elementu do usunięcia
	table_element_id	-	id tabeli
  -----------------------------------------------
*/
function hideTire(tire_element_id,table_element_id)
{	to_delete=document.getElementById(tire_element_id);
	
	/*pobieranie wartości opacity i filter*/
	opacity_var=to_delete.style.opacity;
	filter_var=to_delete.style.filter;
	opacity_array=opacity_var.split('.');
	filter_var=filter_var.replace(')','');
	filter_array=filter_var.split('=');
	
	/*wygaszanie elementu*/
	for(i=0;i<to_delete.childNodes.length;i++)
	{	element_node=to_delete.childNodes[i];
		if(element_node.style)
		{	element_node.style.opacity='0.'+(parseInt(opacity_array[1])-1);
			element_node.style.filter='alpha(opacity='+(parseInt(filter_array[1])-10)+')';
		}
	}
	to_delete.style.opacity='0.'+(parseInt(opacity_array[1])-1);
	to_delete.style.filter='alpha(opacity='+(parseInt(filter_array[1])-10)+')';
	
	/*jeżeli element został wygaszony to go usuwam*/
	if((parseInt(opacity_array[1])-1)==0)
	{	clearInterval(ab_interval_holder);
		parent_of_it=document.getElementById(table_element_id);
		parent_of_it.removeChild(to_delete);
	}
}
/*---------------------------------------------*/

/*funkcja zmieniająca ilość wybranego produktu i przeliczająca wartość i sumę
  parametry:
	product_name		-	nazwa produktu
	my_host_url			-	adres hosta
  -----------------------------------------------
*/
function changeNoOfTires(product_id,my_host_url)
{	how_many_tire_do_u_want=document.getElementById('amount_'+product_id).value;
	if(isInteger(how_many_tire_do_u_want,true))
	{	/*jeżeli klient wprowadził poprawne dane*/
		xmlHttp=GetXmlHttpObject();
		if (xmlHttp==null)
		return;
		
		/*pobieranie id elementu*/
		url=my_host_url+"Koszyk/Zmien/"+product_id+"/"+how_many_tire_do_u_want;
		
		xmlHttp.onreadystatechange = function() 
		{	if (xmlHttp.readyState==4 && xmlHttp.status==200)
			{	if(xmlHttp.responseText!='')
				{	price_variables=xmlHttp.responseText;
					price_array=price_variables.split(';');
					// alert(price_array);
					document.getElementById('price_for_'+product_id).innerHTML=price_array[0]+'&nbsp;zł';
					document.getElementById('big_price').innerHTML='<span style="color:#FFAA00;">'+price_array[1]+'&nbsp;zł</span>';
				}
			} 
		};
		xmlHttp.open("GET",url,true);
		xmlHttp.send(null);
	}
	else
	return false;
}
/*---------------------------------------------*/

/*
		BUDOWANIE LINKU DO WYSZUKIWARKI
*/
/*funkcja tworząca link do wyszukiwarki
  parametry:
	my_host_url	-	url strony
  -----------------------------------------------
*/
function buildLink(my_host_url)
{	form=document.forms['searcher_form'];
	/*producent*/
	producer_url=( form.elements['producers'].value=='0' ? '' : form.elements['producers'].value+'/');
	/*sezon*/
	season_url=( form.elements['seasons'].value=='0' ? '' : form.elements['seasons'].value+'/');
	/*kategoria*/
	category_url=form.elements['category'].value;
	/*szerokość*/
	width_url=( form.elements['widths'].value=='0' ? '' : form.elements['widths'].value);
		/*ustawienia, gdy szerokość < 120*/
	if(width_url!='')
	width_url='-'+(parseInt(width_url)>120 ? '' : 's')+width_url;
		/*ustawienia, gdy szerokość float*/
	temp=width_url.split('.');
	if(temp.length==2)
	width_url=temp[0]+'+'+temp[1];
	/*profil*/
	profile_url=( form.elements['profiles'].value=='0' ? '' : '-'+form.elements['profiles'].value);
		/*ustawienia, gdy profil float*/
	temp=profile_url.split('.');
	profile_url=temp[0];
	/*średnica*/
	diameter_url=( form.elements['diameters'].value=='0' ? '' : '-r'+form.elements['diameters'].value);	
		/*ustawienia, gdy średnica float*/
	temp=diameter_url.split('.');
	if(temp.length==2)
	diameter_url=temp[0]+'+'+temp[1];
	
	/*budowanie linku*/
	my_host_url+='Produkty/'+producer_url+season_url+category_url+width_url+profile_url+diameter_url;
	
	window.location.href=my_host_url;
}
/*---------------------------------------------*/
