/**
 * 
 *
 * @version $Id: validators.js,v 1.2 2006/01/30 15:52:46 tomek Exp $
 * @copyright 2003 
 **/
//var isSurveyChanged = false;
//
//function validate_survey_form( frm )
//{
//	if( !isSurveyChanged)
//	{
//		window.alert("Ankieta nie została wypełniona. Nie można wysłać pustej ankiety");
//		frm.elements['search_events_query'].focus();
//		return false;
//	}
//
//	return true;
//}

// wyliczanie ceny dla extra porady
//var eaTrackingState = false;
var eaPeriod = 100;

function validate_recommendation_form( frm )
{
	if( !is_email(frm.elements['recipient'].value) )
	{
		window.alert(JS_MSG_VALIDATE_FORM_EMAIL_REQ);
		frm.elements['recipient'].focus();
		return false;
	}
	if( !is_email(frm.elements['sender'].value) )
	{
		window.alert(JS_MSG_VALIDATE_FORM_EMAIL_REQ);
		frm.elements['sender'].focus();
		return false;
	}

	return true;
}

function eaStartTracking(obj)
{
	//eaTrackingState = true;
	eaTimeout = setTimeout('eaEvalPrice();',eaPeriod);
}

function eaStopTracking()
{
	//eaTrackingState = false;
	clearTimeout(eaTimeout);
}

function eaEvalPrice()
{
	clearTimeout(eaTimeout);
	if(isNaN(OrderService.elements['ea_num'].value) || OrderService.elements['ea_num'].value < 1 || OrderService.elements['ea_num'].value != Math.ceil(OrderService.elements['ea_num'].value))
		OrderService.elements['ea_num'].value = 1;
	OrderService.elements['price'].value = parseFloat(OrderService.elements['ea_num'].value * OrderService.elements['ea_price'].value).toFixed(2);
	eaTimeout = setTimeout('eaEvalPrice();',eaPeriod);
}

function validate_parent_offer_form( frm )
{
	//czy choć jeden checkbox zaznaczony
	var anySelected = false;
	for (i = 0; i < frm.elements['sex[]'].length; i++)
	{
		if(frm.elements['sex[]'][i].checked == true)
			anySelected = true;
	}
	if( !anySelected && frm.elements['sex[]'].length > 0)
	{
		alert(JS_MSG_VALIDATE_FORM_FIELD_ANY_CHECKBOX_REQ);
		frm.elements['sex[]'][0].focus();
		return false;
	}
	
	//czy choć jeden checkbox zaznaczony
	var anySelected = false;
	for (i = 0; i < frm.elements['offer_type[]'].length; i++)
	{
		if(frm.elements['offer_type[]'][i].checked == true)
			anySelected = true;
	}
	if( !anySelected && frm.elements['offer_type[]'].length > 0)
	{
		alert(JS_MSG_VALIDATE_FORM_FIELD_ANY_CHECKBOX_REQ);
		frm.elements['offer_type[]'][0].focus();
		return false;
	}
	
	reqFields = new Array
				(
					'contact',
					'content'
				);
      
	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}
	
  return true;
}

function validate_add_expert_question_form( frm )
{
	reqFields = new Array
				(
					'sex',
					'diseases',
					'hospital',
					'question'
				);
      
	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}

	return true;
}


function validate_parent_add_catentry_form( frm )
{
	reqFields = new Array
				(
					//'entry_type',
					//'category',
					'item_info',
					'firm_name',
          'substantiation'
          //'rate'
				);
      
	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}

	return true;
}

function validate_contact_form( frm )
{
	if( !is_email(frm.elements['email'].value) )
	{
		window.alert(JS_MSG_VALIDATE_FORM_EMAIL_REQ);
		frm.elements['email'].focus();
		return false;
	}
	reqFields = new Array
				(
					'name',
					'company',
					'tel',
					'message'
				);

	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}

	return true;

//	alert("Validate contact form: zrób mnie!!!");
//	return false;
}


function validate_parent_add_question_form( frm )
{
	reqFields = new Array
				(
            	'id_common_cat',
					'subject',
               'content'
				);

	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}

	return true;
}


function validate_recommendation_form( frm )
{
	if( !is_email(frm.elements['recipient'].value) )
	{
		window.alert(JS_MSG_VALIDATE_FORM_EMAIL_REQ);
		frm.elements['recipient'].focus();
		return false;
	}
	if( !is_email(frm.elements['sender'].value) )
	{
		window.alert(JS_MSG_VALIDATE_FORM_EMAIL_REQ);
		frm.elements['sender'].focus();
		return false;
	}

	return true;
}
function validate_your_opinion_form( frm )
{
	reqFields = new Array
				(
					'sender'
				);

	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}

	return true;
}
function validate_enquiry_form( frm )
{
	if( !is_email(frm.elements['email'].value) )
	{
		window.alert(JS_MSG_VALIDATE_FORM_EMAIL_REQ);
		frm.elements['email'].focus();
		return false;
	}
	reqFields = new Array
				(
					'question'
				);

	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}

	return true;
}

function validate_search_form( frm )
{
	

	
	if(frm.elements['search_query'].value.length < 1 || !found1 || found2 )
	{
		window.alert("Nieprawidłowe słowa kluczowe.\n Nie używaj znaków specjalnych.");
		frm.elements['search_query'].focus();
		return false;
	}

	return true;
}

function validate_nl_subscribe_form( frm )
{
	if( !is_email(frm.elements['nl_email'].value) )
	{
		window.alert("Nieprawidłowy adres email.\n Wprowadź ponownie.");
		frm.elements['nl_email'].focus();
		return false;
	}
	
	return true;
}

function validate_profile_form(frm, checkPass)
{
	if( !is_email(frm.elements['email'].value) )
	{
		window.alert(JS_MSG_VALIDATE_FORM_EMAIL_REQ);
		frm.elements['email'].focus();
		return false;
	}
	
	re1 = /^[a-z0-9]+$/i;
	found1 = frm.elements['login'].value.match( re1 );
	
	if( frm.elements['login'] && !found1 )
	{
		window.alert("Nieprawidłowy login.\nNie używaj znaków specjalnych, spacji i polskich liter.");
		//window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
		frm.elements['login'].focus();
		return false;
	}
	
	reqFields = new Array
				(
					'forename',
					'surname',
					'address',
					'postal_code',
					'city',
					'country'
				);
				
	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}
	
	if(		 checkPass
			&& frm.elements['pass'].value.length <= 3
			|| frm.elements['pass'].value != frm.elements['confirm'].value 
		)
	{
		window.alert(JS_MSG_VALIDATE_FORM_PASS_REQ);
		frm.elements['pass'].focus();
		return false;
	}
	
	if(frm.elements['mailing'].checked)
	{
		var anySelected = false;
		for(i = 0; i < frm.elements['mailing_cats'].options.length; i++)
			if(frm.elements['mailing_cats'].options[i].selected)
			{
				anySelected = true;
				break;
			}
		
		if( !anySelected)
		{
			window.alert(JS_MSG_VALIDATE_FORM_FILL_SURVEY);
			frm.elements['mailing_cats'].focus();
			return false;
		}
	}
	return true;
}

function validate_register_form( frm )
{
	if( !is_email(frm.elements['email'].value) )
	{
		window.alert( reqEmailMsg );
		frm.elements['email'].focus();
		return false;
	}
	reqFields = new Array
				(
					'firm',
					'profile',
					'address',
					'country',
					'tel',
					'fax',
					'contact_person',
					'email',
					'pass'
				);
				
	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert( reqFieldMsg );
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}
	
	if( 
			   frm.elements['pass'].value.length <= 3
			|| frm.elements['pass'].value != frm.elements['confirm'].value 
		)
	{
		window.alert( reqPassConfrmMsg );
		frm.elements['pass'].focus();
		return false;
	}
	return true;
}

function validate_edit_profile_form( frm )
{
	if( !is_email(frm.elements['email'].value) )
	{
		window.alert( reqEmailMsg );
		frm.elements['email'].focus();
		return false;
	}
	reqFields = new Array
				(
					'firm',
					'profile',
					'address',
					'country',
					'tel',
					'fax',
					'contact_person',
					'email'
				);
				
	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert( reqFieldMsg );
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}
	
	if(frm.elements['pass'].value != frm.elements['confirm'].value)
	{
		window.alert( reqPassConfrmMsgEdit );
		frm.elements['pass'].focus();
		return false;
	}
	return true;
}

function validate_login_form( frm )
{
	if(frm.elements['remind_field'].value == 'email' && !is_email(frm.elements['psi_user'].value))
	{
		window.alert( reqEmailMsg );
		frm.elements['psi_user'].focus();
		return false;
	}
	
	if(frm.elements['remind_field'].value != 'email' && !is_email(frm.elements['remind_field'].value))
	{
		window.alert( reqEmailMsg );
		frm.elements['remind_field'].focus();
		return false;
	}
	
	return true;
}

function validate_add_service_form( frm )
{
    for(var i = 0; i < frm.elements.length; i++)
	{
    	if	(
				(
            frm.elements[i].name == "entry_type" || 
            frm.elements[i].name == "category" || 
            frm.elements[i].name == "descr" || 
            
            frm.elements[i].name == "name" || 
            frm.elements[i].name == "address" || 
            frm.elements[i].name == "town" || 
            frm.elements[i].name == "postal_code" || 
            frm.elements[i].name == "tel" ||
            frm.elements[i].name == "tel2" ||
            frm.elements[i].name == "interest" ||
            frm.elements[i].name == "person"						
            )
            
				&& frm.elements[i].value == ""
			)
		{
			window.alert( JS_MSG_FILL_FIELD );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "email2" && !is_email(frm.elements[i].value))
		{
			window.alert( JS_MSG_WRONG_MAIL );
			frm.elements[i].focus();
			return false;
		}
	  	else if(frm.elements[i].name == "voivodship" && frm.elements[i].selectedIndex == -1)
		{
			window.alert( JS_MSG_CHECK_VOIDSHIP );
			frm.elements[i].focus();
			return false;
		}
		
	}
	return true;
}

function validate_helper_offer_form( frm )
{

   if( 
   		!(	frm.elements['offer_typeXbsitter'].checked == true || 
         	frm.elements['offer_typeXhkepper'].checked == true ||
         	frm.elements['offer_typeXtempbsitter'].checked == true || 
         	frm.elements['offer_typeXhworkhelp'].checked == true	
           )
      )
      {
      	window.alert(JS_MSG_VALIDATE_FORM_FIELD_ANY_CHECKBOX_REQ);
   			frm.elements['offer_typeXbsitter'].focus();
       	return false;
      }

	reqFields = new Array
				(	            	
               'name',
					'surname',
					'year_birth',
               'prof_experience'
				);
      
	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}

    if(frm.elements['email'].value == '' && frm.elements['tel'].value == '' && frm.elements['mobile'].value == '')
    {
      window.alert( JS_MSG_FILL_CONTACT );
			frm.elements['tel'].focus();
			return false;
		}
		
		if(frm.elements['agree'].checked == false)
    {
      window.alert( JS_MSG_HELPER_OFFER_AGREE );
			frm.elements['agree'].focus();
			return false;
		}
   
//   if( frm.elements['helperworktime'].checked == false)
//      {
//      	window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
//   		return false;
//      }  
	
	if(isNaN(frm.elements['year_birth'].value) || Math.floor(frm.elements['year_birth'].value) != frm.elements['year_birth'].value)
  {
		window.alert(JS_MSG_VALIDATE_FORM_FIELD_INTEGER_REQ);
		frm.elements['year_birth'].focus();
		return false;
  }  
   if( 
   		!(	frm.elements['child_preferXnl'].checked == true || 
         	frm.elements['child_preferXto1'].checked == true ||
         	frm.elements['child_preferXto3'].checked == true || 
         	frm.elements['child_preferXto6'].checked == true ||
            frm.elements['child_preferXto10'].checked == true	||
            frm.elements['child_preferXabove11'].checked == true		
           )
      )
      {
      	window.alert(JS_MSG_VALIDATE_FORM_FIELD_ANY_CHECKBOX_REQ);
				frm.elements['child_preferXnl'].focus();
   			return true;
      }      
      
         if( 
   		!(	frm.elements['work_timeXfull'].checked == true || 
         	frm.elements['work_timeXnot_full'].checked == true ||
         	frm.elements['work_timeXafternoon'].checked == true || 
         	frm.elements['work_timeXto16'].checked == true ||
            frm.elements['work_timeXweekend'].checked == true	||
            frm.elements['work_timeXevening'].checked == true ||
            frm.elements['work_timeXnight'].checked == true ||		
            frm.elements['work_timeXsettle'].checked == true				
           )
      )
      {
      	window.alert(JS_MSG_VALIDATE_FORM_FIELD_ANY_CHECKBOX_REQ);
   			frm.elements['work_timeXfull'].focus();
       	return false;
      }   
      
   return true;
}

function validate_order_service_form( frm )
{
	reqFields = new Array
				(
					'fname',
					'sname',
					'addr1',
					'addr2',
					'postal_code'
				);
				
	for(var i in reqFields)
	{
		if( frm.elements[reqFields[i]].value == '' )
		{
			window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}
	
	return true;
}



// GENERAL USE FUNCTIONS //

function is_email( str )
{
	re = /.+\@.+\..+/i;

	found = str.match( re );
	//alert(found);
	
	if( !found )
		return false;

	return true;
}

function is_nip( str )
{
	re = /^\d{10}$/;
	found = str.match( re );
	found = found ? 1 : 0;
	//alert("found: " + found);
	if( !found)
		return false;
	
	checkSumParts = '657234567';
	checkSum = 0;
	for(nr = 0; nr < 9; nr++)
		checkSum += checkSumParts.charAt(nr) * str.charAt(nr);
	
	//alert(checkSum);
	return str.charAt(9) == (checkSum % 11 % 10);
	
	return true;
}
