//-------------------------------------------------------------------------------------//
// Wyswietla pola formularza
//-------------------------------------------------------------------------------------//

	function form_show_elements( formid )
	{
		var form = $( formid );

		document.write("<table border=1>");

		document.write("<tr><th></th><th>NAME</th><th>VAL</th><th>TYPE</th><th>ID</th><th>CLASS</th></tr>" );

		for(i=0; i<form.elements.length; i++)
		{
			document.write("<tr><td>Pole "+i+" </td><td>" + form.elements[i].name + "</td><td>" + form.elements[i].value + "</td><td>"  + form.elements[i].type + "</td><td>"  + form.elements[i].id + "</td><td>"  + form.elements[i].className + "</td></tr>" );
		}

		document.write("</table>");
	}

//-------------------------------------------------------------------------------------//
// INPUT - TEXT
//-------------------------------------------------------------------------------------//

	function form_check_text_login(element) {
		var len_ok1 = element.value.length > 1;
		var len_ok2 = element.value.length < 51;
		var len_ok = len_ok1 && len_ok2;
		var str_ok = element.value && element.value.indexOf(" ") == -1  && element.value.indexOf("\t") == -1;
		if (str_ok && len_ok) {
			if ($('status_'+element.name)) {
				$('status_'+element.name  ).innerHTML = "<span class='ok'>"+js_komunikat['ok']+"</span>";
			}
			return 0;
		} else {
			if (!len_ok1) {
				msg = 'login_short';
			} else {
				msg = 'wypelnij_login';
			}
			if ($('status_'+element.name)) {
				$('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat[msg]+"</span>";
			}
			form_highlight(element.name);
			return 1;
		}
	}

//-------------------------------------------------------------------------------------//
// INPUT - TEXT
//-------------------------------------------------------------------------------------//


	function form_check_text_isnumeric( element )
	{
		if (element.value.match(/^[0-9]+$/) )
		{
		    if($('status_'+element.name))
				$('status_'+element.name  ).innerHTML = "<span class='ok'>"+js_komunikat['ok']+"</span>";
			return 0;	//bez bledow
		}
		else
		{
		    if($('status_'+element.name))
				$('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['numeric']+"</span>";
				form_highlight(element.name);
			return 1;	//blad

		}
	}

//-------------------------------------------------------------------------------------//
// INPUT - TEXT
//-------------------------------------------------------------------------------------//


function form_check_text_numeric_fields(element, type) {
	name = element.name;
	value = element.value;
	if (type == 'gsm') {
		if (!form_check_text_gsm(value)) {
			form_status(name, type);
			form_highlight(name);
			return 1;
		}
	} else if (type == 'nip') {
		if (!form_check_text_nip(value)) {
			form_status(name, type);
			form_highlight(name);
			return 1;
		}
	} else if (type == 'pesel') {
		if (!form_check_text_pesel(value)) {
			form_status(name, type);
			form_highlight(name);
			return 1;
		}
	} else {
		if (!value.match(/^[0-9]+$/)) {
			form_status(name, 'numeric');
			form_highlight(name);
			return 1;
		}
	}
	form_status(name, 'ok');
	return 0;
}

//-------------------------------------------------------------------------------------//
// INPUT - TEXT
//-------------------------------------------------------------------------------------//

	function form_check_text_nip(nip)
	{
		var i;
		var scales9 = [6, 5, 7, 2, 3, 4, 5, 6, 7];
		var result=0;
		nip = nip.replace(/-/g, '');
		if (!nip.match(/^[0-9]+$/)) {
			return false;
		}
		if (nip.length==10 )
		{
			for( i=0;i<9;i++ )
			{
				result += nip.charAt(i)*scales9[i];
			}
			return ( result%11==nip.charAt(9));
		}
		return false;
	}

	function form_check_text_pesel(pesel)
	{
		/* PESELu jednak nie potrzebujemy - wik 2009-11-19 */
		return true;
		/*
		var i;
		var scales10 = [1, 3, 7, 9, 1, 3, 7, 9, 1, 3];
		var result=0;
		if (!pesel.match(/^[0-9]+$/)) {
			return false;
		}
		if (pesel.length==11 )
		{
			for( i=0;i<10;i++ )
			{
				result += pesel.charAt(i)*scales10[i];
			}
			return ( 10-result%10==pesel.charAt(10));
		}
		return false;
		*/
	}

// SPRWAWDZANIE POPRAWNOSCI EMAILA

	function form_check_text_email( element )
	{
		if (/^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/.test( element.value ))
		{
			if($('status_'+element.name))
				$('status_'+element.name  ).innerHTML = "<span class='ok'>"+js_komunikat['ok']+"</span>";
			return 0;	//bez bledow	

		}
		else
		{
			if($('status_'+element.name))
				$('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['email_invalid']+"</span>";
				form_highlight(element.name);
			return 1;	//blad
		}
	}


	function form_check_text_rejectspecjalchars( element )
	{
		if (element.value )
		{
			if (/^([A-Za-z0-9\_\. ])*$/.test( element.value ))
			{
				if($('status_'+element.name))
					$('status_'+element.name  ).innerHTML = "<span class='ok'>"+js_komunikat['ok']+"</span>";
				return 0;	//bez bledow	
	
			}
			else
			{
				if($('status_'+element.name))
					$('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['allowed_chars']+"</span>";
					form_highlight(element.name);
				return 1;	//blad
			}
	 	}
	 	else
	 	{
			if ($('status_'+element.name  ) )
			  $('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['wypelnij_to_pole']+"</span>";
			  form_highlight(element.name);
			return 1;	//blad
	 	}	
	}

	 function form_check_text_dateDMY( element )  {

		if (element.value )
		{
			if (/^[0-9]{4}-[0-9]{2}-[0-9]{2}$/.test( element.value ))
			{
				if($('status_'+element.name))
					$('status_'+element.name  ).innerHTML = "<span class='ok'>"+js_komunikat['ok']+"</span>";
				return 0;	//bez bledow	
	
			}
			else
			{
				if($('status_'+element.name))
					$('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['date_format_incorrect']+"</span>";
					form_highlight(element.name);
				return 1;	//blad
			}
	 	}
	 	else
	 	{
			if ($('status_'+element.name  ) )
			  $('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['wypelnij_to_pole']+"</span>";
			  form_highlight(element.name);
			return 1;	//blad
	 	}	

	}

	 function form_check_text_timeHM( element )  {

		if (element.value )
		{
			if (/^[0-1]{1}[0-9]{1}:[0-5]{1}[0-9]{1}$/.test( element.value )  ||  /^2[0-3]{1}:[0-5]{1}[0-9]{1}$/.test( element.value ) )
			{
				if($('status_'+element.name))
					$('status_'+element.name  ).innerHTML = "<span class='ok'>"+js_komunikat['ok']+"</span>";
				return 0;	//bez bledow	
	
			}
			else
			{
				if($('status_'+element.name))
					$('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['time_format_incorrect']+"</span>";
					form_highlight(element.name);
				return 1;	//blad
			}
	 	}
	 	else
	 	{
			if ($('status_'+element.name  ) )
			  $('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['wypelnij_to_pole']+"</span>";
			  form_highlight(element.name);
			return 1;	//blad
	 	}	

	}



//-------------------------------------------------------------------------------------//
// INPUT - PASSWORD
//-------------------------------------------------------------------------------------//

	function form_check_passwordcompare( element )
	{

		var repeat = 'repeat_'+(element.id);
		var len_err = element.value.length < 6 || element.value.length > 50;
		var rep_err = element.value != $(repeat).value;

		if (len_err  || rep_err)
		{
			if (len_err) {
				if($('status_'+element.name))
					$('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['password_short']+"</span>";
					form_highlight(element.name);
				return 1;	//blad
			}
			if (rep_err) {
				if($('status_'+element.name))
					$('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['password_doesnt_compare']+"</span>";
					form_highlight(element.name);
				return 1;	//blad
			}
		}
		else
		{
			if($('status_'+element.name))
				$('status_'+element.name  ).innerHTML = "<span class='ok' >"+js_komunikat['ok']+"</span>";
			return 0;	//bez bledu
		}

	}

// Sprawdza INPUT typu PASSWORD -----------------------------------------------------------//

	function form_check_password( element )
	{
		//SZUKAM DokŁADNIEJ
		if (element.className.match( /^.*vpasswordcompare.*$/ )  )
		{
			return form_check_passwordcompare( element );
		}
		if (element.className.match( /^.*vpasswordempty.*$/ )  )
			if ($('status_'+element.name  ) && !element.value )
			{
			  $('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['wypelnij_to_pole']+"</span>";
			  form_highlight(element.name);
			  return 1;
			}
			
		return 0;
	}
// sprawdzamy poprawnosc dla nazwy domeny	-----------------------------------------------------------//

	function form_check_text_domain( element )
	{
			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<element.value.length;j++)
			{
				for(k=0;k<chars.length;k++)
				{
					if(String.fromCharCode(chars[k])==element.value.charAt(j))
					{
						error=1;
						break;
					}
				}
				if(error==1)
				{
					break;
				}
			}
			var pattern=/\s|[\r\n]|^$/
			if (element.value.match(pattern))
				error=2;
			var pattern=/[\.]|[!]|[~]|[`]|[@]|[#]|[$]|[%]|[\^]|[&]|[\*]|[(]|[)]|[=]|[+]|[|]|[\/]|[']|["]|[;]|[:]|[<]|[>]|[\?]|[\[]|[\]]|[\{]|[\}]|[\\]$/
			if (element.value.match(pattern))
				error=3;
			return error;
	}

// Sprawdza INPUT typu TEXT -----------------------------------------------------------//

function form_check_text( element , messageboxid ) {
	//SZUKAM DokŁADNIEJ
	if ($('status_'+element.name)) {
		$('status_'+element.name).innerHTML='';
	}
	if (element.className.match(/^.*vdomain.*$/) && element.value) {
		var response = form_check_text_domain( element );         // sprawdzamy poprawnosc dla nazwy domeny
		if (response == 1) {
			$('status_'+element.name  ).innerHTML ='<br><span class=\'bad\' >'+js_komunikat['polskie_znaki_domena']+'</span>';
		} else if(response == 2) {
			$('status_'+element.name  ).innerHTML ='<br><span class=\'bad\' >'+js_komunikat['biale_znaki_domena']+'</span>';
		} else if(response == 3) {
			$('status_'+element.name  ).innerHTML ='<br><span class=\'bad\' >'+js_komunikat['specjalne_znaki_domena']+'</span>';
		}
		return response;
	}
	if (element.className.match( /^.*vnumeric.*$/ )  ) {
		if (element.value ) {
			return  form_check_text_isnumeric( element );			//input-text LOGIN
		}
	}
	if (element.className.match( /^.*vpesel.*$/ )  ) {
		return  form_check_text_numeric_fields( element , 'pesel' );			//input-text LOGIN
	}
	if (element.className.match( /^.*vnip.*$/ )  ) {
		return  form_check_text_numeric_fields( element , 'nip' );			//input-text LOGIN
	}
	if (element.className.match( /^.*vgsm.*$/ )  ) {
		return  form_check_text_numeric_fields( element , 'gsm' );			//input-text LOGIN
	}
	if (element.className.match( /^.*vlogin.*$/ )  ) {
		return  form_check_text_login( element );			//input-text LOGIN
	}
	if (element.className.match( /^.*vemail.*$/ ) && element.value ) {
		return form_check_text_email( element );         // INPUT text EMAIL
	}
	if (element.className.match( /^.*vrejectspecjalchars.*$/ )  ) {
		return form_check_text_rejectspecjalchars( element );         // zezwala na ([a-zA-Z0-9 _\.])*
	}
	if (element.className.match( /^.*vdateDMY.*$/ ) )  { // zezwala na yyyy-mm-dd
		return form_check_text_dateDMY( element );
	}
	if (element.className.match( /^.*vtimeHM.*$/ ) ) {
		return  form_check_text_timeHM( element );
	}
	if (element.className.match( /^.*vno.*$/ )  ) {  //  brak walidacji
		return 0;
	}
	//OGOLNA
	if (element.value ) {
		if ($('status_'+element.name  ) ) {
			$('status_'+element.name  ).innerHTML = "<span class='ok'>"+js_komunikat['ok']+"</span>";
		}
		return 0;	//bez bledow
	} else {
		var add_str="";
		if ($('shopCartFinalize' )) {
			add_str = "<br>";
		}
		if ($('status_'+element.name  ) ) {
			$('status_'+element.name  ).innerHTML = add_str+"<span class='bad' >"+js_komunikat['wypelnij_to_pole']+"</span>";
		}
		form_highlight(element.name );
		return 1;	//blad
	}
}

//-------------------------------------------------------------------------------------//
// SELECT
//-------------------------------------------------------------------------------------//

	function form_check_select( element )
	{
		if (element.value!='0')
		{
		    if ($('status_'+element.name  ) )
			  $('status_'+element.name  ).innerHTML = "<span class='ok'>"+js_komunikat['ok']+"</span>";
			return 0;	//bez bledow
		}
		else
		{
		    if ($('status_'+element.name  ) )
			    $('status_'+element.name  ).innerHTML = "<span class='bad'>"+js_komunikat['wypelnij_to_pole']+"</span>";
			return 1;	//blad
		}
	}

//-------------------------------------------------------------------------------------//
// TEXTAREA
//-------------------------------------------------------------------------------------//

	function form_check_textarea( element )
	{
//SZUKAM DokŁADNIEJ
		if (element.className.match( /^.*vno.*$/ )  )	return 0;
		// NIE WALIDUJ TEGO POLA

		if(element.getAttribute("wysiwyg"))
		  var check_val = FCKeditorAPI.GetInstance(element.id).GetHTML();
		else
		  var check_val = element.value;

		if (check_val )
		{
		    if ($('status_'+element.name  ) )
			    $('status_'+element.name  ).innerHTML = "<span class='ok'>"+js_komunikat['ok']+"</span>";
			return 0;	//bez bledow
		}
		else
		{
		    if ($('status_'+element.name  ) )
			    $('status_'+element.name  ).innerHTML = "<span class='bad'>"+js_komunikat['wypelnij_to_pole']+"</span>";
			    form_highlight(element.name);
			return 1;	//blad
		}
	}

//-------------------------------------------------------------------------------------//
// INPUT - HIDDEN
//-------------------------------------------------------------------------------------//

	function form_check_hidden( element )
	{
		if (element.value )	return 0;	//bez bledow
			  		   else return 1;	//blad
	}

//-------------------------------------------------------------------------------------//
// INPUT - CHECKBOX
//-------------------------------------------------------------------------------------//

	function form_check_checkbox( element)
	{
		if (element.className.match( /^.*vrequired.*$/ )  )
		{
			return form_check_checkbox_required( element );
		}
		return 0;
	}

	function form_check_checkbox_required( element )
	{
		if (element.checked )
		{
		    if ($('status_'+element.name  ) )
			  $('status_'+element.name  ).innerHTML = "<span class='ok'>"+js_komunikat['ok']+"</span>";
			return 0;	//bez bledow
		}
		else
		{
		    if ($('status_'+element.name  ) )
			  $('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['acceptance_required']+"</span>";
			return 1;	//blad
		}
	}

//-------------------------------------------------------------------------------------//
// INPUT - FILE REQUIRED
//-------------------------------------------------------------------------------------//

      function form_check_file( element ) {

		if (element.className.match( /^.*vrequired.*$/ )  )
		{
			return form_check_file_required( element );
		}
		return 0;

      }


      function form_check_file_required( element ) {

      	if (element.value )
      	{
      		if ($('status_'+element.name  ) )
			  $('status_'+element.name  ).innerHTML = "<span class='ok'>"+js_komunikat['ok']+"</span>";
      		return 0;
      	}else {
		
		    if ($('status_'+element.name  ) )
			  $('status_'+element.name  ).innerHTML = "<span class='bad' >"+js_komunikat['wypelnij_to_pole']+"</span>";
			  form_highlight(element.name);
			return 1;	//blad
      	}
      }
//-------------------------------------------------------------------------------------//
// C H E C K - F O R M
//-------------------------------------------------------------------------------------//
//form_check('chooseDomainName',
//'/index.php?event=sprawdznazwedomeny&amp;tpl_ajax=zamowserwerwritualnyajax',
//'message_',
//'/')
function form_check(formid, post_url, event, get_url, get_target, newpage) {
	//form_show_elements( formid );
	var bledy = 0;
	var dane = "";
	var form = $( formid );
	var elements = new Array();
	var postData = '';
	var nb_txt=0;

	form = document.getElementById(formid);

	//reset(formid);
	messageboxid = 'message_';
	/*
	if ($('message')) {
		messageboxid = 'message';
	} else {
		if ($('message_'+formid)) {
			messageboxid = 'message_'+formid;
		}
	}
    */
//	$(messageboxid).innerHTML='';
	

	for (i=0; i<form.elements.length; i++) {
		if (form.elements[i].getAttribute("wysiwyg")) {
			dane += form.elements[i].name+"="+FCKeditorAPI.GetInstance(form.elements[i].id).GetHTML()+"&"
		} else {
			dane += form.elements[i].name+"="+form.elements[i].value+"&"
		}
		type = form.elements[i].type;
		if (type == 'text') {
			bledy += form_check_text( form.elements[i] , messageboxid );
			if ($('shopCartFinalize') ) {
				var resp = find_the_same(elements,form.elements[i].value);
				bledy += resp;
				if (resp >0 ) {
					$('status_'+form.elements[i].name  ).innerHTML ='<br><span class=\'bad\' >'+js_komunikat['powtorzenie_nazwy_domeny']+'</span>';
				}
				elements.push(form.elements[i].value);
				// resp = check_length( form.elements[i].value , 2 );
				// bledy +=	resp;
				// if (resp >0 )
				// 	  $('status_'+form.elements[i].name  ).innerHTML ='<br><span class=\'bad\' >'+js_komunikat['za_krotka_domena']+'</span>';
			}
		}
		if (type == 'password') {
			bledy += form_check_password(form.elements[i]);
		}
		if (type == 'textarea'	) {
			bledy += form_check_textarea(form.elements[i]);
		}
		if (type == 'select-one') {
			bledy += form_check_select(form.elements[i]);
		}
		if (type == 'checkbox') {
			bledy += form_check_checkbox(form.elements[i]);
		}
		if (type == 'file') {
			bledy += form_check_file(form.elements[i]);
		}
		if (post_url) {
			nb_txt++;
			var adds;
			if (nb_txt==1 ) {
				adds = '';
			} else {
				adds = '&';
			}
			postData=postData+adds+form.elements[i].name+'='+form.elements[i].value;
		}
	}

	//wyslanie lub nie

	if (bledy == 0 ) {
		if (post_url) {
			var name = event;
			$(name).innerHTML = '<div style="text-align:center"><img src="'+get_url+'img/cms/loading.gif" alt="trwa ładowanie..." /></div>';
			xajax_updatePostElement(post_url, name, postData+"");
		} else {
			form.submit();
		}
		return true;
	} else {
		if (formid != 'chooseDomainName') {
			$(messageboxid).innerHTML='<span>'+js_komunikat['bledy_w_formularzu']+'</span>';
		}
	}
}

	function find_the_same( arr , element )
	{
		for( var i in arr )
		{
			if (arr[i]==element && element )
				return 1;
		}
		return 0;
	}
	function check_length( element , n )
	{
		if (element.length<n && element )
			return 1;
		else
			return 0;
	}
//-------------------------------------------------------------------------------------//
// A S K  D E L E T E  -  F O R M
//-------------------------------------------------------------------------------------//

	function ask_delete( formid , url , html_id )
	{
		var dane = "";
		var form = $( formid );
		var element_id = 0 ;

		for(i=0; i<form.elements.length; i++)
		{
			if (form.elements[i].name != 'no' ) dane += form.elements[i].name+"="+form.elements[i].value+"&"

			if (form.elements[i].type == 'hidden' ) element_id=form.elements[i].value;
		}

		if (dane && url)
		{
			xajax_updatePost(url, 'message', dane ,'removeMeFromParent("'+html_id+element_id+'");window.parent.hideBluebox();');
		}

	}
/* wysylanie formularza przez wcisniecie entera, onkeypress musi byc w ostatnim polu formularza lub w jakims ktorym chcemy */
function submitenter(myfield,e,formid)
{
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;

	if (keycode == 13)
	   {
		   reset(formid);
		   form_check(formid);
//		   myfield.form.submit();
		   return false;
	   }
	else
	   return true;
}

function sendenter(formID,url,idDiv,e,fr_url)
{
	var keycode;
	if (window.event) keycode = window.event.keyCode;
	else if (e) keycode = e.which;
	else return true;

	if (keycode == 13)
	   {
		   reset(formID);
		   form_check(formID,url,idDiv,fr_url);
		   return false;
	   }
	else
	   return true;
}

/*resetuje wszystkie ostrzezenia*/
function reset(formid)
{
	var myform=$(formid);
	for(i=0;i<myform.length;i++)
	{
		if((obj = $('status_'+myform[i].name)))
		{
			obj.innerHTML='';
		}
	}
}

function form_clean_class(obj)
{
	if(obj.className.search(/redInput/) != -1) {
	  obj.className = obj.className.replace(/ redInput/,"");
	  obj.onfocus = function(e){return 0;};
	}
}

function form_highlight(elname)
{
    var elobject = $( elname );
	elobject.className = elobject.className + " redInput";
	elobject.onfocus = function(e){form_clean_class(elobject);};
}

function form_status(el_name, type) {
	if ($('status_'+el_name)) {
		$('status_'+el_name).innerHTML = "<span class='bad' >"+js_komunikat[type]+"</span>";
	}
}

function form_check_text_gsm(gsm) {
	if ($('checkSMS').value == 0) {
		return true;
	}
	if (!gsm.match(/^\+[0-9]{2,3}\.[0-9]{9}$/)) {
		return false;
	}
	return true;
}
