/**
 * 
 *
 * @version $Id: validators.js,v 1.85 2005/10/18 08:21:00 kamil 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;
//}

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_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 )
{
 	//alert(frm.elements['catalogue'].value);
	
  if(frm.elements['search_query'].value.length < 1 )
  {
  	if( (frm.elements['voivodship'].selectedIndex < 1) || (frm.elements['catalogue'].value == 0) )
		{
  		window.alert("Proszę wpisać poprawne słowo kluczowe\nlub zaznaczyć kategorię i województwo.");
  	 	return false;
		}
  }
  else
	{
  	re1 = /[\w±ęó¶łżĽćńˇĘÓ¦ŁŻ¬ĆŃ]/i;
  	re2 = /(.*[^\w\s-@\.±ęó¶łżĽćńˇĘÓ¦ŁŻ¬ĆŃ]+)+/i;
  	found1 = frm.elements['search_query'].value.match( re1 );
  	found2 = frm.elements['search_query'].value.match( re2 );
  
  			
  	if(frm.elements['search_query'].value.length < 1 || !found1 || found2 )
  	{
  		window.alert("Proszę wpisać poprawne słowo kluczowe.");
  		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_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_nip( frm )
{
    if( !is_nip(frm.elements['nip'].value) )
	{
		window.alert( reqNipMsg );
		frm.elements['nip'].focus();
		return false;
	}
	
	return true;
}

function validate_add_edit_company_form( frm )
{

	for(var i = 0; i < frm.elements.length; i++)
	{
		if	(
				(frm.elements[i].name == "name" || frm.elements[i].name == "person" || frm.elements[i].name == "update_person"
				|| frm.elements[i].name == "person" || frm.elements[i].name == "address" || frm.elements[i].name == "postal_code"
				|| frm.elements[i].name == "city" || frm.elements[i].name == "tel" || frm.elements[i].name == "fax"
				|| frm.elements[i].name == "www" || frm.elements[i].name == "descr")
				&& frm.elements[i].value == ""
			)
		{
			window.alert( reqFieldMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "nip" && !is_nip(frm.elements[i].value))
		{
			window.alert( reqNipMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "email" && !is_email(frm.elements[i].value))
		{
			window.alert( reqEmailMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "voivodship" && frm.elements[i].selectedIndex == -1)
		{
			window.alert( reqVoiMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "voivodship")
		{
			var selected = new Array();
			var count = 0;

			for(var j = 0; j < frm.voivodship.options.length; j++)
			{
				if(frm.voivodship.options[ j ].selected)
				{
		            selected[count] = frm.voivodship.options[ j ].value;
		            count++;
				}
			}
			frm.elements['voivodship_idx'].value = selected;
		}
		else if(frm.elements[i].name == "catalogue" && frm.elements[i].selectedIndex == -1)
		{
			window.alert( reqCatMsg_2 );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "catalogue")
		{
			frm.elements['catalogue_idx'].value = '';

			for(var j = 0; j < frm.catalogue.options.length; j++)
 			{
			 	if(frm.catalogue.options[ j ].selected && frm.catalogue.options[ j ].value == 0)
		        {
		          	window.alert( reqCatMsg_1 );
		          	frm.elements[i].focus();
					return false;
				}

				if(frm.catalogue.options[ j ].selected && frm.catalogue.options[ j ].value != 0)
    		{
		          	frm.elements['catalogue_idx'].value += frm.catalogue.options[ j ].value + "|";
				}
			}
		}
		else if(frm.elements[i].name == "profile" && frm.elements[i].selectedIndex == -1)
		{
			window.alert( reqProfMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "profile")
		{
			var selected = new Array();
			var count = 0;

			for(var j = 0; j < frm.profile.options.length; j++)
			{
				if(frm.profile.options[ j ].selected)
				{
		            selected[count] = frm.profile.options[ j ].value;
		            count++;
				}
			}
			frm.elements['profile_idx'].value = selected;
		}
	}

	return true;
}


function validate_add_company_offer_form( frm )
{
    for(var i = 0; i < frm.elements.length; i++)
	{
		if	(
				(frm.elements[i].name == "name" || frm.elements[i].name == "address" || frm.elements[i].name == "postal_code"
				|| frm.elements[i].name == "city" || frm.elements[i].name == "tel" || frm.elements[i].name == "fax"
				|| frm.elements[i].name == "www" || frm.elements[i].name == "location" || frm.elements[i].name == "person_quantity"
				|| frm.elements[i].name == "expect" || frm.elements[i].name == "date_expire")
				&& frm.elements[i].value == ""
			)
		{
			window.alert( reqFieldMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "email" && !is_email(frm.elements[i].value))
		{
			window.alert( reqEmailMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "voivodship" && frm.elements[i].selectedIndex == -1)
		{
			window.alert( reqVoiMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "voivodship")
		{
			var selected = new Array();
			var count = 0;

			for(var j = 0; j < frm.voivodship.options.length; j++)
			{
				if(frm.voivodship.options[ j ].selected)
				{
		            selected[count] = frm.voivodship.options[ j ].value;
		            count++;
				}
			}
			frm.elements['voivodship_idx'].value = selected;
		}
	}
	return true;
}

/*
function validate_add_company_offer_form( frm )
{
	if( !is_email(frm.elements['email'].value) )
	{
		window.alert( reqEmailMsg );
		frm.elements['email'].focus();
		return false;
	}

    if(frm.profile.selectedIndex == -1)
	{
        window.alert( reqProfMsg );
		return false;
 	}

	if(frm.voivodship.selectedIndex == -1)
	{
        window.alert( reqVoiMsg );
		return false;
 	}

    var selected = new Array();
	var count = 0;

	for(var i = 0; i < frm.voivodship.options.length; i++)
	{
		if(frm.voivodship.options[ i ].selected)
		{
            selected[count] = frm.voivodship.options[ i ].value;
            count++;
	  	//frm.elements['voivodship_idx'].value += frm.voivodship.options[ i ].value + "|";
		}
	}

	frm.elements['voivodship_idx'].value = selected;

	reqFields = new Array
				(
					'name',
					'address',
					'postal_code',
					'city',
					'tel',
					'fax',
					'www',
					'location',
					'person_quantity',
					'expect',
					'date_expire'
				);

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

	return true;
}
*/


function validate_add_personal_offer_form( frm )
{
	for(var i = 0; i < frm.elements.length; i++)
	{
    	if	(
				(frm.elements[i].name == "name" || frm.elements[i].name == "surname" || frm.elements[i].name == "address"
				|| frm.elements[i].name == "postal_code" || frm.elements[i].name == "city" || frm.elements[i].name == "tel"
				|| frm.elements[i].name == "education" || frm.elements[i].name == "occupation" || frm.elements[i].name == "licence"
				|| frm.elements[i].name == "permission" || frm.elements[i].name == "date_expire" || frm.elements[i].name == "work_loc")
				&& frm.elements[i].value == ""
			)
		{
			window.alert( reqFieldMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "email" && !is_email(frm.elements[i].value))
		{
			window.alert( reqEmailMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "catalogue" && frm.elements[i].selectedIndex == -1)
		{
			window.alert( reqCatMsg_2 );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "catalogue")
		{
			var selected = new Array();
			var count = 0;

			for(var j = 0; j < frm.catalogue.options.length; j++)
			{
				if(frm.catalogue.options[ j ].selected && frm.catalogue.options[ j ].value == 0)
				{
				  	window.alert( reqCatMsg_1 );
				  	frm.elements[i].focus();
					return false;
				}

				if(frm.catalogue.options[ j ].selected && frm.catalogue.options[ j ].value != 0)
				{
				  	selected[count] = frm.catalogue.options[ j ].value;
		            count++;
				}
			}

			frm.elements['catalogue_idx'].value = selected;
		}
		
	}
	return true;
		
}

/*
function validate_add_personal_offer_form( frm )
{
	if( !is_email(frm.elements['email'].value) )
	{
		window.alert( reqEmailMsg );
		frm.elements['email'].focus();
		return false;
	}

	if(frm.catalogue.selectedIndex == -1)
	{
        window.alert( reqCatMsg_2 );
		return false;
	}

    var selected = new Array();
	var count = 0;

	for(var i = 0; i < frm.catalogue.options.length; i++)
	{
		if(frm.catalogue.options[ i ].selected && frm.catalogue.options[ i ].value == 0)
		{
		  	window.alert( reqCatMsg_1 );
			return false;
		}

		if(frm.catalogue.options[ i ].selected && frm.catalogue.options[ i ].value != 0)
		{
		  	selected[count] = frm.catalogue.options[ i ].value;
            count++;
		}
	}

	frm.elements['catalogue_idx'].value = selected;

	reqFields = new Array
				(
					'name',
					'surname',
					'address',
					'postal_code',
					'city',
					'tel',
					'education',
					'occupation',
					'licence',
					'permission',
					'date_expire'
				);

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

	return true;
}
*/

function validate_add_auction_form( frm )
{
    for(var i = 0; i < frm.elements.length; i++)
	{
    	if	(
				(frm.elements[i].name == "name" || frm.elements[i].name == "person" || frm.elements[i].name == "address"
				|| frm.elements[i].name == "postal_code" || frm.elements[i].name == "city" || frm.elements[i].name == "tel"
				|| frm.elements[i].name == "fax" || frm.elements[i].name == "www" 
			 	|| frm.elements[i].name == "location" || frm.elements[i].name == "descr")
				&& frm.elements[i].value == ""
			)
		{
			window.alert( reqFieldMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "nip" && !is_nip(frm.elements[i].value))
		{
			window.alert( reqNipMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "email" && !is_email(frm.elements[i].value))
		{
			window.alert( reqEmailMsg );
			frm.elements[i].focus();
			return false;
		}
		else if((frm.elements[i].name == "date_finish" || frm.elements[i].name == "date_valid") && !is_date_valid(frm.elements[i].value) )
		{
			window.alert( reqDateMsg );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "catalogue" && frm.elements[i].selectedIndex == -1)
		{
			window.alert( reqCatMsg_2 );
			frm.elements[i].focus();
			return false;
		}
		else if(frm.elements[i].name == "catalogue")
		{
			var selected = new Array();
			var count = 0;

			for(var j = 0; j < frm.catalogue.options.length; j++)
			{
				if(frm.catalogue.options[ j ].selected && frm.catalogue.options[ j ].value == 0)
				{
				  	window.alert( reqCatMsg_1 );
				  	frm.elements[i].focus();
					return false;
				}

				if(frm.catalogue.options[ j ].selected && frm.catalogue.options[ j ].value != 0)
				{
				  	selected[count] = frm.catalogue.options[ j ].value;
		            count++;
				}
			}

			frm.elements['catalogue_idx'].value = selected;
		}

	}
	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_searcher_from( frm )
{
	
	if(frm.elements['search_query'].value == ''
			&& frm.profile.options[frm.profile.options.selectedIndex].value == 0
			&& frm.voivodship.options[frm.voivodship.options.selectedIndex].value == 0
			&& frm.catalogue.options[frm.catalogue.options.selectedIndex].value == 0)
	{
		alert( reqFieldSearchMsg );
		return false;
	}
	
	return true;
	
}

function checkCatalogueDepth( frm )
{
    if(frm.elements['catalogue'].selectedIndex == -1)
	{
		window.alert( reqCatMsg_2 );
		frm.elements['catalogue'].focus();
		return false;
	}

    var selected = new Array();
	var count = 0;

	for(var j = 0; j < frm.catalogue.options.length; j++)
	{
		if(frm.catalogue.options[ j ].selected && frm.catalogue.options[ j ].value == 0)
		{
		  	window.alert( reqCatMsg_1 );
     		frm.elements['catalogue'].focus();
			return false;
		}

		if(frm.catalogue.options[ j ].selected && frm.catalogue.options[ j ].value != 0)
		{
		  	selected[count] = frm.catalogue.options[ j ].value;
            count++;
		}
	}

	frm.elements['catalogue_idx'].value = selected;
	
	return true;
}

function is_date_valid( str )
{
	
	re = /[0-9]{4}-[0-9]{2}-[0-9]{2}/;

	found = str.match( re );
	//alert(found);

	if( !found )
		return false;

	return true;
	
}


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;
}
