/**
 *
 *
 * @version $Id: validators.js,v 1.137 2008/09/16 11:01:18 rk Exp $
 * @copyright 2005
 **/
 function validate_nl_email(frm)
 {
 	if( !is_email(frm.elements['email'].value) )
	{
		window.alert(JS_MSG_VALIDATE_FORM_EMAIL_REQ);
		frm.elements['email'].focus();
		return false;
	}
 }
 
function validate_english_form( frm )
{
	
/*
	if( !frm.elements['id_workshop'].options.selectedIndex > 0) )
	{
		window.alert(JS_MSG_VALIDATE_FORM_SELECT_REQ);
		frm.elements['id_workshop'].focus();
		return false;
	}
*/
	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',
					'phone',
					'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;
		}
	}

	
	if(frm.elements['agree'].checked == false)
    {
      	window.alert( 'Pole akceptacji nie zostało zaznaczone' );
			frm.elements['agree'].focus();
			return false;
	}
			
	return true;

}

 
function validate_opinion_form( frm )
{
	
/*
	if( !frm.elements['id_workshop'].options.selectedIndex > 0) )
	{
		window.alert(JS_MSG_VALIDATE_FORM_SELECT_REQ);
		frm.elements['id_workshop'].focus();
		return false;
	}
*/
	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',
					'subject',
					'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;
}

////////////////////////////

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

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_tale_therapist_ask_form( frm )
{
	var reqFields = new Array
				(
					'age',
					'question'
				);

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

	return true;
}

function validate_club_register_form( frm )
{
	if(frm.elements['accept'].checked != true)
	{
		window.alert(JS_MSG_VALIDATE_FORM_FIELD_CHECKBOX_AGGREE);
		frm.elements['accept'].focus();
		return false;
	}

	return true;
}


function validate_idea_new_form( frm )
{
	if(frm.elements['is_new'].checked == true && frm.elements['new_cat'].value == '')
	{
		window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
		frm.elements['new_cat'].focus();
		return false;
	}

	//frm.elements['id_voivodship'].options.selectedIndex = 0;
	//frm.elements['id_voivodship'].options.item(0).value);

	if(frm.elements['is_new'].checked != true && frm.elements['id_idea_cat'].options.selectedIndex == 0)
	{
		window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
		frm.elements['id_idea_cat'].focus();
		return false;
	}

	var reqFields = new Array
				(
					'name',
					'descr'
				);

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

	return true;
}

function validate_exchange_item_form(frm, isRegistering)
{
	var anySelected = false;
	for(i = 0; i < frm.elements['cats[]'].length; i++)
	{
		if(frm.elements['cats[]'][i].selected == true)
			anySelected = true;
	}
	if( !anySelected && frm.elements['cats[]'].length > 0)
	{
		alert(JS_MSG_VALIDATE_FORM_FIELD_ANY_MULTISELECT_REQ);
		frm.elements['cats[]'].focus();
		return false;
	}

	var reqFields = new Array
				(
					'name',
					'descr',
					'contact'
				);

	for(var i in reqFields)
	{
		if(frm.elements[reqFields[i]] && 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_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 reset_parent_offer_form( frm )
{
	for(i = 0; i < frm.elements['sex[]'].length; i++)
		frm.elements['sex[]'][i].checked = false;

	for(i = 0; i < frm.elements['offer_type[]'].length; i++)
		frm.elements['offer_type[]'][i].checked = false;

	frm.elements['id_voivodship'].options.selectedIndex = 0;
	setOptions(frm.elements['id_voivodship'].options.item(0).value);
	frm.elements['district'].value = '';
	frm.elements['contact'].value = '';
	frm.elements['content'].value = '';
  frm.elements['active'].options.selectedIndex = 0;
}

function validate_add_expert_question_form( frm )
{
	reqFields = new Array
				(
					'sex',
					'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, isRegistering)
{
	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;
	if(frm.elements['login'])
		found1 = frm.elements['login'].value.match( re1 );
	else
		found1 = false;

	if(frm.elements['login'] && !found1 )
	{
		window.alert(JS_MSG_VALIDATE_FORM_LOGIN_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]] && frm.elements[reqFields[i]].value == '' )
		{
			window.alert(JS_MSG_VALIDATE_FORM_FIELD_REQ);
			frm.elements[reqFields[i]].focus();
			return false;
		}
	}
	*/
	if(		 isRegistering
			&& 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(isRegistering && frm.elements['accept_rules'].checked != true)
	{
		window.alert(JS_MSG_VALIDATE_FORM_ACCEPT_RULES);
		frm.elements['accept_rules'].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( !( document.FHelperOffer.offer_typeXbsitter.checked == false &&
			    document.FHelperOffer.offer_typeXhkepper.checked == true &&
			    document.FHelperOffer.offer_typeXtempbsitter.checked == false &&
					document.FHelperOffer.offer_typeXhworkhelp.checked == false
					) &&
   		!(	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 false;
      }

      if(
				 	(FHelperOffer.offer_typeXhworkhelp.checked || FHelperOffer.offer_typeXbsitter.checked || FHelperOffer.offer_typeXhkepper.checked || !FHelperOffer.offer_typeXtempbsitter.checked)
   				&&
					!(
						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;
      }

	if(frm.elements['offer_typeXtempbsitter'].checked && frm.elements['hours_PN[]'].selectedIndex == -1 && frm.elements['hours_WT[]'].selectedIndex == -1 && frm.elements['hours_SR[]'].selectedIndex == -1 && frm.elements['hours_CZW[]'].selectedIndex == -1 && frm.elements['hours_PT[]'].selectedIndex == -1 && frm.elements['hours_SO[]'].selectedIndex == -1 && frm.elements['hours_ND[]'].selectedIndex == -1)
	{
		window.alert(JS_MSG_VALIDATE_FORM_FIELD_HELPER_WORK_HOURS_REQ);
		frm.elements['hours_PN[]'].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;
}

function validate_reference_add(frm)
{
	reqFields = new Array
				(
					'reference',
					'parent_name',
					'parent_contact'
				);

	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['parent_aggreee'].checked)
	{
		window.alert(JS_MSG_PRIVACY_POLICY_AGGREEMENT);
		frm.elements['parent_aggreee'].focus();
		return false;
	}

	return true;
}



// GENERAL USE FUNCTIONS //

function is_email( str )
{
	re = /^(\w[\w._-]*\w|\w)@(\w+(-\w+)?\.)+\w{2,4}$/i;
	//([^ \.\P{alnum}-][\w._-]*[^ \.\P{alnum}-]|[^ \.\P{alnum}-])@(\w+\.)\w{2,4}
	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;
}
