function validateAcco(form)
{ 
  
	if (isNotEmpty(form.name))
	if (validateCategory(form.category))
	if (validateCountryCity(form.country, form.city))
	//if (isEmail(form.email),'')
	if (isURL(form.www))
	if (isPrice(form.price))
		return true;
	return false;
}

function isURL(elem)
{
	if (!isNotEmpty(elem)) return true;
    var str = elem.value;
    var re = new RegExp("^[A-Za-z]+://[A-Za-z0-9-]+\.[A-Za-z0-9]+");
    if (!str.match(re)) 
    {
      alert("Adres strony jest nieprawidłowy.\nProszę poprawić.");
      elem.focus();
      elem.select();
      return false;
    } 
    else 
    {
        return true;
    }
}

function validateCountryCity(country,city)
{
	if (country.value == '---')
	{
    	alert("Proszę wybrać kraj.");
        return false;
	}
	else	if (city.value == '---' || city.value == '')
	{
    	alert("Proszę wybrać miejscowość.");
        return false;
	}
    return true;
}

function validateCategory(elem)
{
	
	if (elem.value == '---')
	{
    	alert("Proszę wybrać kategorię.");
        return false;
	}
    return true;
}


function clientValidate(form)
{ 
  
  //check if required fields are not empty
  if (isNotEmpty(form.login)) {
   if (isAlphanumeric(form.login, 'polski')) {
    if (isNotEmpty(form.password)) {
     if (isPassword(form.password, 'polski')) {
      if (isNotEmpty(form.passwordrepeat)) {
       if (isNotEmpty(form.email)) {
	    if (isNotEmpty(form.emailrepeat)) {
	     if (isNotEmpty(form.companyorowner)) {
	      if (isEqual(form.passwordrepeat, form.password)) {
	       if (isEmail(form.email), 'deutsch') {
	        if (isEqual(form.emailrepeat, form.email))
	         return true;
	     								}
	    							}	    	
								}
							}
						}
					}
				}
			}
		}
	}
					
	return false;
}

function validateEditUser(form)
{
  if (isNotEmptyPL(form.login)) {
   if (isAlphanumeric(form.login, 'polski')) {
    if (isNotEmptyPL(form.password)) {
     if (isPassword(form.password, 'polski')) {
      if (isNotEmptyPL(form.companyorowner)) {
       if (isNotEmptyPL(form.email)) {
        if (isEmail(form.email, 'polski')) {        
         
          return true;
         
        }
       }
      }
     }
    }
   }
  }
 return false;
}

function validateEmailChange(form)
{
	if (isEmail(form.email,'deutsch'))
		if (isEqual(form.emailrepeat,form.email))
			return true;
	return false;
}

function validatePasswordChange(form)
{
	if (isPassword(form.newpassword,'deutsch'))
		if (isEqual(form.newpasswordrepeat,form.newpassword))
			return true;
	return false;
}


function isEmail(elem, language)
{
	//if (!isNotEmpty(elem)) return true;
    var str = elem.value;
    var re = /^[\w-]+(\.[\w-]+)*@([\w-]+\.)+[a-zA-Z]{2,7}$/;
    if (!str.match(re)) 
    {
        alert("Nieprawidłowy adres email.\nProszę poprawić.");
      
      elem.focus();
      elem.select();
      return false;
    } 
    else 
    {
        return true;
    }
}

function isAlphanumeric(elem, language)
{
	var str = elem.value;
	var re = /^[a-zA-Z0-9_]{5,15}$/;
	if (!str.match(re)) 
    {

    		alert("Login musi zawierać od 5 do 15 znaków.\nJedynie litery, cyfry oraz znak podkreślania są dozwolone.\nProszę poprawić pole");
    	
    	elem.focus();
     	elem.select();
        return false;
    } 
    else 
    {
        return true;
    }
}
function isPassword(elem, language)
{
	var str = elem.value;
	var re = /^[^'"]{5,15}$/;
	if (!str.match(re)) 
    {
    		alert("Hasło musi zawierać od 5 do 15 znaków.\nApostrof oraz cudzysłów są niedozwolone.\nProszę poprawić pole");
    	
    	elem.focus();
     	elem.select();
        return false;
    } 
    else 
    {
        return true;
    }
}

function isNotEmpty(elem) {
    var str = elem.value;
    
    if(str == null || str.length == 0) 
    {
     switch(elem.name)
     {
     	case "login":
        	alert("Nazwa użytkownika nie może być pusta.\nProszę wypełnić to pole.");        	
        break;
        
        case "password":
        	alert("Hasło nie może być puste.\nProszę wypełnić to pole.");
        break;
        
        case "passwordrepeat":
        	alert("Proszę powtórzyć hasło.");
        break;
        
        case "email":
        	alert("Email nie może być pusty.\nProszę wypełnić to pole.");
        break;
        
        case "emailrepeat":
        	alert("Proszę powtórzyć Email.");
        break;
        
        case "companyorowner":
        	alert("Proszę podać nazwę firmy lub imię i nazwisko.");
        break;       

        case "name":
        	alert("Proszę podać nazwę.");
        break;
     }  
     elem.focus();
     elem.select();
     return false;
    } 
    else 
    {
        return true;
    }
}

function isEqual(repeated, original)
{
	if (repeated.value != original.value)
	{
		switch(original.name)
		{
			case "email":
				alert("Podane adresy Email nie są jednakowe.\nProszę to poprawić.");
			break;
			case "password":
				alert("Podane hasła nie są jednakowe.\nProszę to poprawić.");
			break;
			case "adminpassword":
				alert("Uwaga! Hasła nie są jednakowe!");
			break;
		}
		return false;
	}
	
	return true;	
}
function isPrice(elem)
{
	var str = elem.value;
	var re = /^[0-9]{1,3}$/;
	if (!str.match(re)) 
    {
    	alert("Cena powinna być liczbą całkowitą. Proszę to poprawić.");
    	elem.focus();
     	elem.select();
        return false;
    } 
    else 
    {
        return true;
    }
}

function isNotEmptyPL(elem) {
    var str = elem.value;
    
    if(str == null || str.length == 0) 
    {
     switch(elem.name)
     {
     	case "login":
        	alert("Login nie może być pusty.\nProszę poprawić to pole.");        	
        break;
        
        case "password":
        	alert("Hasło nie może być puste.\nProszę poprawić to pole."); 
        break;
               
        case "email":
        	alert("Email nie może być pusty.\nProszę poprawić to pole.");
        break;

        case "companyorowner":
        	alert("Proszę podać imię i nazwisko właściciela lub nazwę firmy.");
        break;       
     }  
     elem.focus();
     elem.select();
     return false;
    } 
    else 
    {
        return true;
    }
}

