/*
 * Biblioteczka fcji uzytecznych do przetwarzania formularzy HTML-owych
 * Zawiera: (wymienione tylko fcje - filtry)
 * 1.checkEmail
 * 2.checkPolishChars
 * 3.checkAtMostChars
 * 4.checkAtLeastChars
 * 5.checkWhiteChars
 * 6.checkRepeated
 * 7.
 * 8.
 * 
 */
//-------------------------------------------------------------------------------------//
function avatarValidate(id,idBad,idOK)
{
	
	if($(id).value=="")
	{
		$(idOK).style.display = 'none'; 
		$(idBad).style.display = 'block'; 		
		return false;
	}
	else
	{
		$(idBad).style.display = 'none';
		showPicture( idOK );
		return true;
	}
} 
//---------------------------------------------------------------------------//
/*
 * 	Fcja ukrywa elementy podane w tablicy, ktore sa wyswietlane przez kod PHP
 */
 function checkRules(elem,idOK,idBad)
 {
	if( $(elem).checked )
	{
		$(idBad).style.display = 'none'; 
		return 0;		
    }
    else
    {   	
		$(idOK).style.display = 'none'; 
		$(idBad).style.display = 'block'; 
		return 1;
    }
 } 
//---------------------------------------------------------------------------//
var Busy = Array(); // tablica zawiera elementy ktore zostaly oznaczone do wyswietlenia jednakze nie zawsze powinne sie wyswietlic, np. pusty login - dl<32 - OK, ale jest pusty ...
//---------------------------------------------------------------------------//
function stopEnter() {

     if (event.keyCode == 13) { event.returnValue = false;}

}
//---------------------------------------------------------------------------//
/*
 * @desc Javascript equivalent for PHP's strstr
 */
function strstr( haystack, needle, bool ) {
    var pos = 0;
    pos = haystack.indexOf( needle );
    if( pos == -1 ){
        return false;
    } else{
        if( bool ){
            return haystack.substr( 0, pos );
        } else{
            return haystack.slice( pos );
        }
    }
}
//---------------------------------------------------------------------------//
/*
 * 	Fcja ukrywa elementy podane w tablicy, ktore sa wyswietlane przez kod PHP
 */
 function hideElements(elemArr)
 {
 	for(i=0;i<elemArr.length;i++)
 	{
		$(elemArr[i]).style.display='none'; 		
 	}
 }
//---------------------------------------------------------------------------//
/*
 * 	Fcja sprawdza czy powtórzone jest takie samo jak pierwsze
 */
 function showPicture(idOK)
 {
 	$(idOK).style.display = 'block';
 }
//---------------------------------------------------------------------------//
/*
 * 	Fcja sprawdza czy powtórzone jest takie samo jak pierwsze
 */
function checkRepeated(idElem1,idElem2,idOK,idBad)
{
    var field1     = $(idElem1); 
    var field2     = $(idElem2);  
	var fieldOK  = $(idOK);    
	var fieldBad = $(idBad);	
	if (field1.value==field2.value)
	{
		fieldBad.style.display = 'none';
		return 0;
    }
    else
    {   	
		fieldOK.style.display = 'none'; 
		fieldBad.style.display = 'block'; 
		return 1;
    }
}
//---------------------------------------------------------------------------//
/*
 * 	Fcja sprawdza czy zmienna jest 'pusta'
 */
function checkEmptyInput(idElem,idOK,idBad)
{
    var field     = $(idElem);   
	var fieldOK  = $(idOK); 
	var fieldBad = $(idBad);	
	var pattern=/^$/
	if (field.value.match(pattern))
	{
		fieldOK.style.display = 'none'; 
		fieldBad.style.display = 'block'; 
		return 1;
    }
    else
    {   	
		fieldBad.style.display = 'none'; 
		return 0;
    }
}
//---------------------------------------------------------------------------//
/*
 * 	Fcja sprawdza czy zmienna zawiera tylko 'białe' znaki
 */
function isWhite(idElem,idOK,idBad)
{
    var field     = $(idElem);   
	var fieldOK  = $(idOK); 
	var fieldBad = $(idBad);	
	var pattern=/^\s+$|^$/
	if (field.value.match(pattern))
	{
		fieldOK.style.display = 'none'; 
		fieldBad.style.display = 'block'; 
		return 1;
    }
    else
    {   	
		fieldBad.style.display = 'none'; 
		return 0;
    }
}
//---------------------------------------------------------------------------//
/*
 * 	Fcja sprawdza czy zmienna zawiera 'białe' znaki
 */
function checkWhiteChars(idElem,idOK,idBad)
{
    var field     = $(idElem);   
	var fieldOK  = $(idOK); 
	var fieldBad = $(idBad);	
	var pattern=/\s|[\r\n]|^$/
	if (field.value.match(pattern))
	{
		fieldOK.style.display = 'none'; 
		fieldBad.style.display = 'block'; 
		return 1;
    }
    else
    {   	
		fieldBad.style.display = 'none'; 
		return 0;
    }
}
//---------------------------------------------------------------------------//
/*
 * 	Fcja sprawdza poprawnosc e-maila
 */
function checkEmail( args )
{
    if( args["idBad"] != undefined )
    {
    	var fieldBad = $( args["idBad"] );
    }
    if(args["fieldOK"] != undefined )
    {
    	var fieldOK = $( args["fieldOK"] );
    }
    var mail     = $( args['idElem'] ).value;   
	var error = 0;
	if (! mail.match( /^[^@]{1,64}@[^@]{1,255}$/ ) )
	{
		if( args['idBad']&& args['fieldOK'] )
    	{
			fieldOK.style.display = 'none'; 
			fieldBad.style.display = 'block'; 
    	}			
		return 1;
    }
    var email_array = mail.split("@");
    var local_array = email_array[0].split(".");
    if( local_array.length>0 )
    {
	    for( i=0;i<local_array.length;i++ )
	    {
	    	if(! local_array[i].match( /^(([A-Za-z0-9!#$%&'*+/=?^_`{|}~-][A-Za-z0-9!#$%&'*+/=?^_`{|}~\.-]{0,63})|(\"[^(\\|\")]{0,62}\"))$/ ) )
	    	{
	    		if( args['idBad']&& args['fieldOK'] )
    			{
		    		fieldOK.style.display = 'none'; 
					fieldBad.style.display = 'block'; 
    			}
				return 1;
	    	}		
	    }
    }
    else
    {
    	if( args['idBad']&& args['fieldOK'] )
    	{
	    	fieldOK.style.display = 'none'; 
			fieldBad.style.display = 'block';
    	} 
		return 1;
    }
    if (! email_array[1].match( /^\[?[0-9\.]+\]?$/ ) )
	{
	    var domain_array = email_array[1].split(".");
	    if( domain_array.length<2 )
	    {
	    	if( args['idBad']&& args['fieldOK'] )
    		{
		    	fieldOK.style.display = 'none'; 
				fieldBad.style.display = 'block';
    		} 
			return 1;
	    }
	    for( i=0;i<domain_array.length;i++ )
	    {
	    	if(! domain_array[i].match( /^(([A-Za-z0-9][A-Za-z0-9-]{0,61}[A-Za-z0-9])|([A-Za-z0-9]+))$/ ) )
	    	{
	    		if( args['idBad']&& args['fieldOK'] )
    			{
		    		fieldOK.style.display = 'none'; 
					fieldBad.style.display = 'block';
    			} 
				return 1;
	    	}		
	    }
	}
	else
	{
		if(! email_array[1].match( /^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/ ))
		{
			if( args['idBad']&& args['fieldOK'] )
    		{
		    	fieldOK.style.display = 'none'; 
				fieldBad.style.display = 'block';
    		} 
			return 1;
		}
	}
	if(args['idBad'])
    {
		fieldBad.style.display = 'none';
    } 
	return 0;
} 
function checkEmailOLD(idElem,idOK,idBad)
{
    var mail     = $(idElem);   
	var fieldOK  = $(idOK); 
	var fieldBad = $(idBad); 
	if ( mail.value.match( /^([\_])*([a-z0-9]+(\.|\_*)?)+@([a-z][a-z0-9\-]+(\.|\-*\.))+[a-z]{2,6}$/ ) )
	{
		fieldBad.style.display = 'none'; 
		return 0;
    }
    else
    {   	
		fieldOK.style.display = 'none'; 
		fieldBad.style.display = 'block'; 
		return 1;
    }
}
//---------------------------------------------------------------------------//
/*
 * 	Fcja sprawdza czy zmienna zawiera 'polskie' znaki
 */
function checkPolishChars(idElem,idOK,idBad)
{
    var field    = $(idElem);   
	var fieldOK  = $(idOK); 
	var fieldBad = $(idBad);
	var error=0;
	var chars=[261,260,280,281,347,380,378,322,243,324,263,211,321,323,346,379,377,262];
	for(j=0;j<field.value.length;j++)
	{
		for(i=0;i<chars.length;i++)
		{
			if(String.fromCharCode(chars[i])==field.value.charAt(j))
			{
				error=1;
				break;
			}
		}
		if(error==1)
		{
			break;
		}
	} 	
	if (error==0)
	{
		fieldBad.style.display = 'none'; 
		return 0;
    }
    else
    {   	
		fieldOK.style.display = 'none'; 
		fieldBad.style.display = 'block'; 
		return 1;
    }
}
//---------------------------------------------------------------------------//
/*
 * 	Fcja sprawdza czy zmienna zawiera co najwyzej spec znakow
 */
function checkAtMostChars(idElem,idOK,idBad,spec)
{
    var field     = $(idElem);   
	var fieldOK  = $(idOK); 
	var fieldBad = $(idBad);	
	if (field.value.length<=spec)
	{
		fieldBad.style.display = 'none';
		return 0;
    }
    else
    {   	
		fieldOK.style.display = 'none'; 
		fieldBad.style.display = 'block'; 
		return 1;
    }
}
//---------------------------------------------------------------------------//
/*
 * 	Fcja sprawdza czy zmienna zawiera co najmniej spec znakow
 */
function checkAtLeastChars(idElem,idOK,idBad,spec)
{
    var field     = $(idElem);   
	var fieldOK  = $(idOK); 
	var fieldBad = $(idBad);	
	if (field.value.length>=spec)
	{
		fieldBad.style.display = 'none'; 
		return 0;
    }
    else
    {   	
		fieldOK.style.display = 'none'; 
		fieldBad.style.display = 'block'; 
		return 1;
    }
}
//---------------------------------------------------------------------------//
/*
 * 	Fcja sprawdza poprawnosc imienia
 */
function checkName(idElem,idOK,idBad)
{
    var field     = $(idElem);   
	var fieldOK  = $(idOK); 
	var fieldBad = $(idBad); 
	if ( field.value.match( /^[a-zA-Z\.\'ąęóśżźńłĄĘÓŚŻŹŃŁ\s-]{2,}$/ ) )
	{
		fieldBad.style.display = 'none';
		return 0;
    }
    else
    {   	
		fieldOK.style.display = 'none'; 
		fieldBad.style.display = 'block'; 
		return 1;
    }
}
//---------------------------------------------------------------------------//
/*
 * 	Fcja sprawdza czy wybrano cos z pola select
 */
function checkSelectChosen( idElem,idOK,idBad )
{
	var fieldOK  = $(idOK); 
	var fieldBad = $(idBad); 	
	if($(idElem).selectedIndex==0)
	{
		fieldOK.style.display = 'none'; 
		fieldBad.style.display = 'block'; 
		return false;
	}
	fieldBad.style.display = 'none';
	return true;
}
/*
*	END OF FILE
*/
